MINI MINI MANI MO

Path : /usr/lib64/python2.7/site-packages/sepolgen/
File Upload :
Current File : //usr/lib64/python2.7/site-packages/sepolgen/refparser.pyc


oP\cI@s}ddlZddlZddlZddlZddlmZddlmZddlmZddlmZddlm	Z	dZ
i4ddQ6ddR6ddS6d dT6d!dU6d"dV6d#dW6d$dX6d%dY6d&dZ6d'd[6d(d\6d)d]6d*d^6d+d_6d,d`6d-da6d.db6d/dc6d0dd6d1de6d2df6d3dg6d4dh6d5di6d6dj6d7dk6d8dl6d9dm6d:dn6d;do6d<dp6d=dq6d>dr6d?ds6d@dt6dAdu6dBdv6dCdw6dDdx6dEdy6dFdz6dGd{6dHd|6dId}6dJd~6dKd6dLd6dMd6dOd6dNd6dPd6ZdZdZ
dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'da)da*da+da,e-a.ddZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:dZ;dZ<dZ=dZ>dZ?dZ@dZAdZBdZCdZDdZEdZFdZGdZHdZIdZJdZKdZLdZMdZNdZOdZPdZQdZRdZSdZTdZUdZVdZWdZXdZYdZZdZ[dZ\dZ]dZ^dZ_dZ`dZadZbdZcdZddZedZfdZgdZhdZidZjdZkdZldZmdZndZodZpdZqdardasdZtddeudZvdZwde-eudZxdS(iNi(taccess(tdefaults(tlex(t	refpolicy(tyacctTICKtSQUOTEtOBRACEtCBRACEtSEMItCOLONtOPARENtCPARENtCOMMAtMINUStTILDEtASTERISKtAMPtBARtEXPLtEQUALtFILENAMEt
IDENTIFIERtNUMBERtPATHt	IPV6_ADDRtMODULEt
POLICY_MODULEtREQUIREtSIDtGENFSCONtFS_USE_XATTRtFS_USE_TRANStFS_USE_TASKtPORTCONtNODECONtNETIFCONtPIRQCONtIOMEMCONt	IOPORTCONtPCIDEVICECONt
DEVICETREECONtCLASSt
TYPEATTRIBUTEt
ROLEATTRIBUTEtTYPEt	ATTRIBUTEtATTRIBUTE_ROLEtALIASt	TYPEALIAStBOOLtTRUEtFALSEtIFtELSEtROLEtTYPEStALLOWt	DONTAUDITt
AUDITALLOWt
NEVERALLOWt
PERMISSIVEt
TYPEBOUNDStTYPE_TRANSITIONtTYPE_CHANGEtTYPE_MEMBERtRANGE_TRANSITIONtROLE_TRANSITIONt
OPT_POLICYt	INTERFACEtTUNABLE_POLICYtGEN_REQtTEMPLATEtGEN_CONTEXTtIFELSEtIFDEFtIFNDEFtDEFINEtmodulet
policy_moduletrequiretsidtgenfscontfs_use_xattrtfs_use_transtfs_use_tasktportcontnodecontnetifcontpirqcontiomemcont	ioportcontpcidevicecont
devicetreecontclasst
typeattributet
roleattributettypet	attributetattribute_roletaliast	typealiastboolttruetfalsetiftelsetrolettypestallowt	dontauditt
auditallowt
neverallowt
permissivet
typeboundsttype_transitionttype_changettype_membertrange_transitiontrole_transitiontoptional_policyt	interfacettunable_policytgen_requirettemplatetgen_contexttifelsetifndeftifdeftdefines\`s\'s\{s\}s\;+s\:s\(s\)s\,s\-s\~s\*s\&s\|s\!s\=s[0-9\.]+s/[a-zA-Z0-9)_\.\*/\$]*s 	cCs|S(s2[a-fA-F0-9]{0,4}:[a-fA-F0-9]{0,4}:([a-fA-F0-9]|:)*((tt((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytt_IPV6_ADDRscCs|jjd7_dS(sdnl.*\niN(tlexertlineno(R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytt_m4commentscCs|jddS(sdefine.*refpolicywarn\(.*\niN(tskip(R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytt_refpolicywarn1scCs|jjd7_dS(srefpolicywarn\(.*\niN(RR(R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytt_refpolicywarnscCstj|jd|_|S(s#[a-zA-Z_\$][a-zA-Z0-9_\-\+\.\$\*~]*R(treservedtgettvalueRa(R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytt_IDENTIFIERscCstj|jd|_|S(s\"[a-zA-Z0-9_\-\+\.\$\*~ :]+\"R(RRRRa(R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt
t_FILENAMEscCs|jjd7_dS(s\#.*\niN(RR(R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt	t_commentscCs!d|jdGH|jddS(NsIllegal character '%s'ii(RR(R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytt_errorscCs|jjt|j7_dS(s\n+N(RRtlenR(R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt	t_newlinestcCs{|dkrdSxd|D]\}|dkr/qn||_|dk	r`|jjd||fq|jjd|qWdS(Ni(tNonetparenttchildrentinsert(tstmtsRtvalts((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytcollect-s
	cCsJxC|D];}tj|r5|jtj|q|j|qWdS(N(tsptthas_keytupdatetby_nametadd(tidsRtid((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytexpand9s
cCsjt|dkr3|dr3tjj|dn3t|dkrf|drftjj|dndS(s^statements : statement
                  | statements statement
                  | empty
    iiN(RtmRtappend(tp((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_statementsAscCs|d|d<dS(sstatement : interface
                 | template
                 | obj_perm_set
                 | policy
                 | policy_module_stmt
                 | module_stmt
    iiN((R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_statementKscCsdS(sempty :N((R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_emptyUscCs=tj}|d|_|d|_t|_||d<dS(sHpolicy_module_stmt : POLICY_MODULE OPAREN IDENTIFIER COMMA NUMBER CPARENiiiN(RtModuleDeclarationtnametversiontTrue(RR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_policy_module_stmt`s


	cCs2tj|d}t|d|||d<dS(sainterface : INTERFACE OPAREN TICK IDENTIFIER SQUOTE COMMA TICK interface_stmts SQUOTE CPAREN
    iiiN(Rt	InterfaceR(Rtx((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_interfacehscCs2tj|d}t|d|||d<dS(stemplate : TEMPLATE OPAREN TICK IDENTIFIER SQUOTE COMMA TICK interface_stmts SQUOTE CPAREN
                | DEFINE OPAREN TICK IDENTIFIER SQUOTE COMMA TICK interface_stmts SQUOTE CPAREN
    iiiN(RtTemplateR(RR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt
p_templateoscCsd|d<dS(s4define : DEFINE OPAREN TICK IDENTIFIER SQUOTE CPARENiN(R(R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_definewscCst|dkr-|dr-|d|d<nnt|dkr|dsg|dr|d|d<qq|ds|d|d<q|d|d|d<ndS(slinterface_stmts : policy
                       | interface_stmts policy
                       | empty
    iiiN(R(R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_interface_stmts~s


cCs`tj}t|d|dtt|dkrOt|d|dtn|g|d<dS(soptional_policy : OPT_POLICY OPAREN TICK interface_stmts SQUOTE CPAREN
                       | OPT_POLICY OPAREN TICK interface_stmts SQUOTE COMMA TICK interface_stmts SQUOTE CPAREN
    iRiiiN(RtOptionalPolicyRRRtFalse(Rto((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_optional_policys
cCsmtj}|d|_t|d|dtt|dkr\t|d|dtn|g|d<dS(stunable_policy : TUNABLE_POLICY OPAREN TICK cond_expr SQUOTE COMMA TICK interface_stmts SQUOTE CPAREN
                      | TUNABLE_POLICY OPAREN TICK cond_expr SQUOTE COMMA TICK interface_stmts SQUOTE COMMA TICK interface_stmts SQUOTE CPAREN
    iiRiiiN(Rt
TunablePolicyt	cond_exprRRRR(RR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_tunable_policys
cCsdS(sifelse : IFELSE OPAREN TICK IDENTIFIER SQUOTE COMMA COMMA TICK IDENTIFIER SQUOTE COMMA TICK interface_stmts SQUOTE CPAREN optional_semi
              | IFELSE OPAREN TICK IDENTIFIER SQUOTE COMMA TICK IDENTIFIER SQUOTE COMMA TICK interface_stmts SQUOTE COMMA TICK interface_stmts SQUOTE CPAREN optional_semi
              | IFELSE OPAREN TICK IDENTIFIER SQUOTE COMMA TICK SQUOTE COMMA TICK interface_stmts SQUOTE COMMA TICK interface_stmts SQUOTE CPAREN optional_semi
    N((R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_ifelsescCstj|d}|ddkr,t}nt}t|d|d|t|dkrut|d|dtn|g|d<dS(	s^ifdef : IFDEF OPAREN TICK IDENTIFIER SQUOTE COMMA TICK interface_stmts SQUOTE CPAREN optional_semi
             | IFNDEF OPAREN TICK IDENTIFIER SQUOTE COMMA TICK interface_stmts SQUOTE CPAREN optional_semi
             | IFDEF OPAREN TICK IDENTIFIER SQUOTE COMMA TICK interface_stmts SQUOTE COMMA TICK interface_stmts SQUOTE CPAREN optional_semi
    iiRiRiiN(RtIfDefRRRR(RRtv((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_ifdefs	cCsMtjd|d}t|dkr?|jj|dn||d<dS(sinterface_call : IDENTIFIER OPAREN interface_call_param_list CPAREN
                      | IDENTIFIER OPAREN CPAREN
                      | IDENTIFIER OPAREN interface_call_param_list CPAREN SEMItifnameiiiiN(Rt
InterfaceCallRtargstextend(Rti((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_interface_callscCsCt|dkr#|d|d<n|dd|dg|d<dS(sinterface_call_param : IDENTIFIER
                            | IDENTIFIER MINUS IDENTIFIER
                            | nested_id_set
                            | TRUE
                            | FALSE
                            | FILENAME
    iiit-iN(R(R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_interface_call_params
cCsCt|dkr&|dg|d<n|d|dg|d<dS(sinterface_call_param_list : interface_call_param
                                 | interface_call_param_list COMMA interface_call_param
    iiiiN(R(R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_interface_call_param_listscCs.tj|d}|d|_||d<dS(sRobj_perm_set : DEFINE OPAREN TICK IDENTIFIER SQUOTE COMMA TICK names SQUOTE CPARENiiiN(Rt
ObjPermSettperms(RR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_obj_perm_sets
cCs|d|d<dS(spolicy : policy_stmt
              | optional_policy
              | tunable_policy
              | ifdef
              | ifelse
              | conditional
    iiN((R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_policyscCs"|dr|dg|d<ndS(spolicy_stmt : gen_require
                   | avrule_def
                   | typerule_def
                   | typebound_def
                   | typeattribute_def
                   | roleattribute_def
                   | interface_call
                   | role_def
                   | role_allow
                   | permissive
                   | type_def
                   | typealias_def
                   | attribute_def
                   | attribute_role_def
                   | range_transition_def
                   | role_transition_def
                   | bool
                   | define
                   | initial_sid
                   | genfscon
                   | fs_use
                   | portcon
                   | nodecon
                   | netifcon
                   | pirqcon
                   | iomemcon
                   | ioportcon
                   | pcidevicecon
                   | devicetreecon
    iiN((R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt
p_policy_stmts
cCs=tj}|d|_|d|_t|_||d<dS(s+module_stmt : MODULE IDENTIFIER NUMBER SEMIiiiN(RRRRR(RR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt
p_module_stmts


	cCsdS(slgen_require : GEN_REQ OPAREN TICK requires SQUOTE CPAREN
                   | REQUIRE OBRACE requires CBRACEN((R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt
p_gen_require!scCsdS(ssrequires : require
                | requires require
                | ifdef
                | requires ifdef
    N((R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt
p_requires)scCsdS(srequire : TYPE comma_list SEMI
               | ROLE comma_list SEMI
               | ATTRIBUTE comma_list SEMI
               | ATTRIBUTE_ROLE comma_list SEMI
               | CLASS comma_list SEMI
               | BOOL comma_list SEMI
    N((R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt	p_require1scCsctj}|d|_|d|_|d|_t|dkrU|d|_n||d<dS(ssecurity_context : IDENTIFIER COLON IDENTIFIER COLON IDENTIFIER
                        | IDENTIFIER COLON IDENTIFIER COLON IDENTIFIER COLON mls_range_defiiiiiiN(RtSecurityContexttuserRkRaRtlevel(RR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_security_context;s


cCs%|d}|d|_||d<dS(sQgen_context : GEN_CONTEXT OPAREN security_context COMMA mls_range_def CPAREN
    iiiN(R(RR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt
p_gen_contextHs

cCs|d|d<dS(s<context : security_context
               | gen_context
    iiN((R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt	p_contextSscCs4tj}|d|_|d|_||d<dS(s$initial_sid : SID IDENTIFIER contextiiiN(Rt
InitialSidRtcontext(RR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt
p_initial_sidYs

cCsAtj}|d|_|d|_|d|_||d<dS(s+genfscon : GENFSCON IDENTIFIER PATH contextiiiiN(RtGenfsCont
filesystemtpathR(Rtg((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt
p_genfscon`s



cCstj}|ddkr.tjj|_nD|ddkrPtjj|_n"|ddkrrtjj|_n|d|_|d|_||d<dS(	sfs_use : FS_USE_XATTR IDENTIFIER context SEMI
              | FS_USE_TASK IDENTIFIER context SEMI
              | FS_USE_TRANS IDENTIFIER context SEMI
    iRSRURTiiiN(Rt
FilesystemUsetXATTRRatTASKtTRANSRR(Rtf((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_fs_usejs

cCs|tj}|d|_t|dkrH|d|_|d|_n&|dd|d|_|d|_||d<dS(skportcon : PORTCON IDENTIFIER NUMBER context
               | PORTCON IDENTIFIER NUMBER MINUS NUMBER contextiiiiRiN(RtPortCont	port_typeRtport_numberR(Rtc((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt	p_portcon|s


cCsAtj}|d|_|d|_|d|_||d<dS(sanodecon : NODECON NUMBER NUMBER context
               | NODECON IPV6_ADDR IPV6_ADDR context
    iiiiN(RtNodeContstarttendR(Rtn((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt	p_nodecons



cCsAtj}|d|_|d|_|d|_||d<dS(s.netifcon : NETIFCON IDENTIFIER context contextiiiiN(RtNetifConRytinterface_contexttpacket_context(RR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt
p_netifcons



cCs4tj}|d|_|d|_||d<dS(s pirqcon : PIRQCON NUMBER contextiiiN(RtPirqContpirq_numberR(RR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt	p_pirqcons

cCsotj}t|dkr;|d|_|d|_n&|dd|d|_|d|_||d<dS(sYiomemcon : IOMEMCON NUMBER context
                | IOMEMCON NUMBER MINUS NUMBER contextiiiRiN(RtIomemConRt
device_memR(RR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt
p_iomemcons

cCsotj}t|dkr;|d|_|d|_n&|dd|d|_|d|_||d<dS(s\ioportcon : IOPORTCON NUMBER context
                | IOPORTCON NUMBER MINUS NUMBER contextiiiRiN(Rt	IoportConRtioportR(RR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_ioportcons

cCs4tj}|d|_|d|_||d<dS(s*pcidevicecon : PCIDEVICECON NUMBER contextiiiN(RtPciDeviceContdeviceR(RR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_pcidevicecons

cCs4tj}|d|_|d|_||d<dS(s,devicetreecon : DEVICETREECON NUMBER contextiiiN(Rt
DevicetTeeConRR(RR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_devicetreecons

cCsA|d|d<t|dkr=|dd|d|d<ndS(s[mls_range_def : mls_level_def MINUS mls_level_def
                     | mls_level_def
    iiiRiN(R(R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_mls_range_defscCsJ|d|d<t|dkrF|dddj|d|d<ndS(sRmls_level_def : IDENTIFIER COLON comma_list
                     | IDENTIFIER
    iiit:t,iN(Rtjoin(R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_mls_level_defscCstj|d}t|dkr\|ddkrL|jj|dq|d|_nKt|dkr|d|_t|dkr|jj|dqn||d<dS(	stype_def : TYPE IDENTIFIER COMMA comma_list SEMI
                | TYPE IDENTIFIER SEMI
                | TYPE IDENTIFIER ALIAS names SEMI
                | TYPE IDENTIFIER ALIAS names COMMA comma_list SEMI
    iiiRiiiN(RtTypeRt
attributesRtaliases(RR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt
p_type_defs
cCs!tj|d}||d<dS(s)attribute_def : ATTRIBUTE IDENTIFIER SEMIiiN(Rt	Attribute(Rta((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_attribute_defscCs!tj|d}||d<dS(s3attribute_role_def : ATTRIBUTE_ROLE IDENTIFIER SEMIiiN(RtAttribute_Role(RR
((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_attribute_role_defscCs4tj}|d|_|d|_||d<dS(s5typealias_def : TYPEALIAS IDENTIFIER ALIAS names SEMIiiiN(Rt	TypeAliasRaR
(RR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_typealias_defs

cCsPtj}|d|_t|dkrB|jj|dn||d<dS(sWrole_def : ROLE IDENTIFIER TYPES comma_list SEMI
                | ROLE IDENTIFIER SEMIiiiN(RtRoleRkRRlR(Rtr((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt
p_role_defs

cCs4tj}|d|_|d|_||d<dS(s#role_allow : ALLOW names names SEMIiiiN(Rt	RoleAllowt	src_rolest	tgt_roles(RR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_role_allows

cCstjddS(s"permissive : PERMISSIVE names SEMIiN(RR(R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_permissivescCstj}|ddkr.tjj|_nD|ddkrPtjj|_n"|ddkrrtjj|_n|d|_|d|_|d|_|d|_	||d	<d
S(savrule_def : ALLOW names names COLON names names SEMI
                  | DONTAUDIT names names COLON names names SEMI
                  | AUDITALLOW names names COLON names names SEMI
                  | NEVERALLOW names names COLON names names SEMI
    iRnRoRpiiiiiN(
RtAVRuleR:t	rule_typeR;R<t	src_typest	tgt_typestobj_classesR(RR
((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_avrule_defs



cCstj}|ddkr.tjj|_n"|ddkrPtjj|_n|d|_|d|_|d|_|d|_|d|_	||d	<d
S(styperule_def : TYPE_TRANSITION names names COLON names IDENTIFIER SEMI
                    | TYPE_TRANSITION names names COLON names IDENTIFIER FILENAME SEMI
                    | TYPE_TRANSITION names names COLON names IDENTIFIER IDENTIFIER SEMI
                    | TYPE_CHANGE names names COLON names IDENTIFIER SEMI
                    | TYPE_MEMBER names names COLON names IDENTIFIER SEMI
    iRtRuiiiiiiN(
RtTypeRuleR@RRARRRt	dest_typet	file_name(RR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_typerule_def*s




cCs;tj}|d|_|jj|d||d<dS(s5typebound_def : TYPEBOUNDS IDENTIFIER comma_list SEMIiiiN(Rt	TypeBoundRaRR(RR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_typebound_def=s
cCsLtj}|d|_|ddkr5t|_n	t|_||d<dS(sIbool : BOOL IDENTIFIER TRUE SEMI
            | BOOL IDENTIFIER FALSE SEMIiiRgiN(RtBoolRRtstateR(Rtb((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_boolDs
	cCsmtj}|d|_t|d|dtt|dkr\t|d|dtn|g|d<dS(s conditional : IF OPAREN cond_expr CPAREN OBRACE interface_stmts CBRACE
                    | IF OPAREN cond_expr CPAREN OBRACE interface_stmts CBRACE ELSE OBRACE interface_stmts CBRACE
    iiRii
iN(RtConditionalRRRRR(RR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt
p_conditionalOs
cCs;tj}|d|_|jj|d||d<dS(s<typeattribute_def : TYPEATTRIBUTE IDENTIFIER comma_list SEMIiiiN(Rt
TypeAttributeRaR	R(RR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_typeattribute_defZs
cCs;tj}|d|_|jj|d||d<dS(s<roleattribute_def : ROLEATTRIBUTE IDENTIFIER comma_list SEMIiiiN(Rt
RoleAttributeRktroleattributesR(RR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_roleattribute_defas
cCsdS(srange_transition_def : RANGE_TRANSITION names names COLON names mls_range_def SEMI
                            | RANGE_TRANSITION names names names SEMIN((R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_range_transition_defhscCsdS(s<role_transition_def : ROLE_TRANSITION names names names SEMIN((R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_role_transition_defmscCst|}|dkr,|dg|d<nQ|dkrT|dg|d|d<n)|d|d|dg|d|d<dS(scond_expr : IDENTIFIER
                 | EXPL cond_expr
                 | cond_expr AMP AMP cond_expr
                 | cond_expr BAR BAR cond_expr
                 | cond_expr EQUAL EQUAL cond_expr
                 | cond_expr EXPL EQUAL cond_expr
    iiiiiN(R(Rtl((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_cond_exprqscCstj}t|dkr2t|d|nUt|dkrat|d|t|_n&t|dg|jd|d||d<dS(snames : identifier
             | nested_id_set
             | asterisk
             | TILDE identifier
             | TILDE nested_id_set
             | IDENTIFIER MINUS IDENTIFIER
    iiiRiN(RtIdSetRRRt
complimentR(RR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_namesscCs|dg|d<dS(sidentifier : IDENTIFIERiiN((R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_identifierscCs|dg|d<dS(sasterisk : ASTERISKiiN((R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt
p_asteriskscCs|d|d<dS(s1nested_id_set : OBRACE nested_id_list CBRACE
    iiN((R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_nested_id_setscCs=t|dkr#|d|d<n|d|d|d<dS(s`nested_id_list : nested_id_element
                      | nested_id_list nested_id_element
    iiiN(R(R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_nested_id_listscCsBt|dkr#|d|d<nd|d}|g|d<dS(sxnested_id_element : identifier
                         | MINUS IDENTIFIER
                         | nested_id_set
    iiiRN(R(Rtstr((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_nested_id_elementscCs=t|dkr+|d|d|d<n|d|d<dS(sTcomma_list : nested_id_list
                  | comma_list COMMA nested_id_list
    iiiiN(R(R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_comma_listscCsdS(s/optional_semi : SEMI
                   | emptyN((R((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_optional_semiscCs.dt|j|j|jfatGHtadS(Ns(%s: Syntax error on line %d %s [type=%s](t
parse_fileRRRaterrorRtsuccess(ttok((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytp_errorscCs2|s
iSi}x|D]}|||j<qWdS(N(R(RtmapR((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytprep_spts

cCssts3tjatjddd|ddan|dk	rH|antja|sitja	n|a	dS(NtmethodtLALRtdebugtwrite_tablesi(
tparserRRRRRRtModulet
SupportMacrosR(RNtsupportRJ((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytcreate_globalss!	cCst|||dt_taytj|d|dtWn=tk
r{}dadadt	|dt
janXtsdadt}t
|ntS(NiRJRsinternal parser error: %ss
scould not parse text: "%s"(RPRRRRCRLtparset	ExceptionRR=t	tracebackt
format_excRBt
ValueErrorR(ttextRNRORJtetmsg((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyRQs	"
c	Csg}d}xtj|D]\}}}x|D]}tjj|}tjj||}|ddkr|dkr|}qttjd|dr|j	|d|fqq2|ddkr2|j	|d|fq2q2WqW||fS(Nis.sptsobj_perm_sets.spttpatternsis.if(
RtostwalkRtsplitextRRtretfindallR(	troottmodulestsupport_macrostdirpathtdirnamest	filenamesRtmodnametfilename((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pytlist_headers
s
	"csddlm}tj}g}d}tjj|rtjj|d}|dkrot	d|ntjj
|}	|j|	d|ftt
j\}
}nt|\}}|r|rt	dnfddfd}d}|rd	|tj}||||jj|tjd
}
tjddd
dddddddg
}|
jjtj||jj|
dnrr|jtjdt|}|jdng}x|D]}tj}|d|_y2|rA||d||n||d|Wn;t	k
r}t|d|j|dqnX|jj|rr|jqqWt|rddj|n|S(Ni(tutilRsInvalid file name %sis1could not find support macros (obj_perm_sets.spt)csrj|ndS(N(twrite(RX(toutput(s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyR3scsrd|ny?t|}|j}|j|at|||WnBtk
rl}dStk
r}td|t|fnXdS(Nsparsing file %s
serror parsing file %s: %s(topentreadtcloseRARQtIOErrorRUR=(RRNRtfdttxtRW(RJR(s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyRA7s
sParsing support macros (%s): tcan_execs$1s$2tfiletexecute_no_transRkRltgetattrtlocktexecutetioctlsdone.
tstepssParsing interface filess
s failed to parse some headers: %ss, (RRhRtHeadersRRZRtisfiletsplitRUR\RRgRtheadersRNRRRtAccessVectorRtConsoleProgressBartsyststdoutRRRMRR=tstepR(R_RjRRJRhR|R`RaRRetall_modulesRARRqtavtstatustfailuresRRRW((RJRRjs8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt
parse_headerssb






(IRRRRR	R
RRR
RRRRRRRsFILENAMEs
IDENTIFIERRsPATHRRRRRRRR R!R"R#R$R%R&R'R(R)R*R+R,R-R.R/R0R1R2R3R4R5R6R7R8R9s	DONTAUDITs
AUDITALLOWs
NEVERALLOWR=R>R?sTYPE_CHANGEsTYPE_MEMBERRBRCRDRERFRGsTEMPLATERIRJRKRLRM(yRRZR]RSRRRRRRttokensRtt_TICKtt_SQUOTEtt_OBRACEtt_CBRACEtt_SEMItt_COLONtt_OPARENtt_CPARENtt_COMMAtt_MINUStt_TILDEt
t_ASTERISKtt_AMPtt_BARtt_EXPLtt_EQUALtt_NUMBERtt_PATHtt_ignoreRRRRRRRRRRRRBRARRRCRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR R$R&R*R,R.R1R2R3R5R8R9R:R;R<R>R?R@RERGRLRRPRRQRgR(((s8/usr/lib64/python2.7/site-packages/sepolgen/refparser.pyt<module> s

											
	
							
				
		
	
	
	"				
	
				
							
	
																															
				

OHA YOOOO