(typeattribute cil_gen_require)
(roleattribute cil_gen_require)
(handleunknown allow)
(mls true)
(policycap network_peer_controls)
(policycap open_perms)
(sid security)
(sidorder (security))
(sensitivity s0)
(sensitivityorder (s0))
(user system_u)
(userrole system_u object_r)
(userlevel system_u (s0))
(userrange system_u ((s0) (s0)))
(role object_r)
(roletype object_r first_t)
(roletype object_r second_t)
(roletype object_r third_t)
(type first_t)
(type second_t)
(type third_t)
(sidcontext security (system_u object_r first_t ((s0) (s0))))
(class test_class (test_perm))
(classorder (test_class))
(allow first_t self (test_class (test_perm)))
