+
    4Ssi*)  ã                   ó¼   € R t ^ RIHt ^ RIHtHtHt ^ RIHt ^ RI	H
t
 ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHtHtHt RR lt ! R R]4      tR tR tRR ltR
# )z(Functions for setting up a Samba Schema.)Ú	b64encode)Úread_and_sub_fileÚsubstitute_varÚcheck_all_substituted)Úsecurity)Úread_ms_schema)Úndr_pack)ÚSamDB©Ú
get_string)Údsdb)ÚOID_COMPARATOR_ANDÚSCOPE_SUBTREEÚSCOPE_ONELEVELNc                 óf   € Vf   / pRp\         P                  P                  W 4      p\        V4      # )NaÈ  O:SAG:SAD:AI(OA;;CR;e12b56b6-0a95-11d1-adbb-00c04fd8d5cd;;SA)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;BA)(A;CI;RPLCLORC;;;AU)(A;CI;RPWPCRCCLCLORCWOWDSW;;;SA)(A;CI;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;89e95b76-444d-4c62-991a-0facbeda640c;;ED)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;89e95b76-444d-4c62-991a-0facbeda640c;;BA)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;RO)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;RO)(OA;;CR;89e95b76-444d-4c62-991a-0facbeda640c;;RO)S:(AU;SA;WPCCDCWOWDSDDTSW;;;WD)(AU;CISA;WP;;;WD)(AU;SA;CR;;;BA)(AU;SA;CR;;;DU)(OU;SA;CR;e12b56b6-0a95-11d1-adbb-00c04fd8d5cd;;WD)(OU;SA;CR;45ec5156-db7e-47bb-b53f-dbeb2d03c40f;;WD))r   Ú
descriptorÚ	from_sddlr   )Ú
domain_sidÚname_mapÚsddlÚsecs   &&  Ú./usr/lib/python3/dist-packages/samba/schema.pyÚget_schema_descriptorr   $   s7   € ØÒØˆðA€Dô. ×
Ñ
×
'Ñ
'¨Ó
9€CÜ�C‹=Ðó    c                   ó„   a € ] tR t^Ct o RRRRRRRRRRRR/tRR lt]R	 4       t]R
 4       tR t	R t
R tR tR tRtV tR# )ÚSchemaÚ2008_R2_oldÚ2008_R2Ú2012Ú2012_R2Ú2016Ú2019Nc                ó¤  a€ ^ RI Hp  Vf   \        P                  4       pWpn        W0n        \        RRR7      V n        Ve   V P                  P                  V4       \        V! R\        P                  V,          ^ ,          ,          4      V! R\        P                  V,          ^,          ,          4      4      V n        R oVe!   RP                  V3R lV 4       4      V n        \        V P                  R	V/4      V n        \        V P                  4       \        \        P!                  V4      4      p	\#        V! R
4      R	VRV	/4      V n        \'        \)        V4      4      P+                  R4      p
\#        V! R4      R	VRV
/4      V n        Ve   WPn        MS! V! R4      4      V n        Ve0   V ;P.                  RP                  R V 4       4      ,          un        \'        V P.                  4      P+                  R4      V n        RV P
                  : RV P.                  : R2pV P1                  W°P                  V P
                  4       R# )é    )Ú
setup_pathNF)Úglobal_schemaÚam_rodczad-schema/%sc                 óˆ   € \        V R 4      ;_uu_ 4       pVP                  4       uuRRR4       #   + '       g   i     R# ; i)ÚrbN)ÚopenÚread)ÚfileÚ	data_files   & r   Ú	read_fileÚ"Schema.__init__.<locals>.read_filez   s*   € Ü�d˜D×!Ô! YØ —~‘~Ó'÷ "×!×!Ó!ús	   •0°A	Ú c              3   óF   <"  € T F  p\        S! V4      4      x € K  	  R # 5i©Nr
   )Ú.0r+   r-   s   & €r   Ú	<genexpr>Ú"Schema.__init__.<locals>.<genexpr>   s$   øé € ð ':Ù38¨4ô (2±)¸D³/×'BÐ'BÛ38ùs   ƒ!ÚSCHEMADNz#provision_schema_basedn_modify.ldifÚ
OBJVERSIONÚutf8zprovision_schema_basedn.ldifÚ
DESCRIPTORzprefixMap.txtc              3   ó4   "  € T F  pR V,          x € K  	  R# 5i)z%s
N© )r2   Úmaps   & r   r3   r4   –   s   é € Ð*XÑCW¸C¨6°C¯<ª<ÓCWùs   ‚zdn: z
prefixMap:: z

)Úsamba.provisionr$   r   Údefault_base_schemaÚbase_schemaÚschemadnr	   ÚldbÚset_invocation_idr   Úbase_schemasÚschema_dataÚjoinr   r   ÚstrÚget_versionr   Úschema_dn_modifyr   r   ÚdecodeÚschema_dn_addÚprefixmap_dataÚset_from_ldif)Úselfr   Úinvocationidr?   ÚfilesÚoverride_prefixmapÚadditional_prefixmapr>   r$   Úschema_versionÚdescrÚprefixmap_ldifr-   s   &&&&&&&&    @r   Ú__init__ÚSchema.__init__[   s  ø€ õ 	/ð	ð ÒÜ ×4Ñ4Ó6ˆKà&Ôà Œô  u°eÔ<ˆŒØÒ#Ø�H‰H×&Ñ& |Ô4ä)Ù�~¬×(;Ñ(;¸KÕ(HÈÕ(KÕKÓLÙ�~¬×(;Ñ(;¸KÕ(HÈÕ(KÕKÓLóNˆÔò	(ð ÒØ!Ÿw™wô ':Ù38ó':ó  :ˆDÔô *¨$×*:Ñ*:Ø+5°xÐ*@óBˆÔä˜d×.Ñ.Ô/äœV×/Ñ/°Ó<Ó=ˆÜ 1ÙÐ<Ó=Ø˜ <°Ð@ó!BˆÔô Ô/°
Ó;Ó<×CÑCÀFÓKˆÜ.ÙÐ5Ó6Ø˜ <°Ð7ó9ˆÔð Ò)Ø"4Õá"+©J°Ó,GÓ"HˆDÔàÒ+Ø×Ò 2§7¡7Ñ*XÑCWÓ*XÓ#XÕXÕä'¨×(;Ñ(;Ó<×CÑCÀFÓKˆÕð :>¿¼È×H[ÔH[Ð\ˆØ×Ñ˜>×+;Ñ+;¸T¿]¹]ÖKr   c                 ó   € R# )z&Returns the default base schema to user   r:   r:   r   r   r=   ÚSchema.default_base_schemaž   s   € ñ r   c                ó>   € \         P                  V ,          ^,          # )z=Returns the base schema's object version, e.g. 47 for 2008_R2)r   rB   )r>   s   &r   rF   ÚSchema.get_version£   s   € ô ×"Ñ" ;Õ/°Õ2Ð2r   c                óJ   € \         P                  ! V P                  WV4       R # r1   )r   Ú_dsdb_set_schema_from_ldifr@   )rL   ÚpfÚdfÚdns   &&&&r   rK   ÚSchema.set_from_ldif¨   s   € Ü×'Ò'¨¯©°"¸"Ö=r   c                ó  € V P                   P                  VR 7       V P                   P                  4         V P                   P                  R4       V P                  R,           pV P                   P                  V4       V P                   P                  V P                  4       V P                   P                  V P                  4       V P                   P                  4        R#    T P                   P                  4        h ; i))Úurlzpdn: @ATTRIBUTES
linkID: INTEGER

dn: @INDEXLIST
@IDXATTR: linkID
@IDXATTR: attributeSyntax
@IDXGUID: objectGUID
z1objectGUID: 24e2ca70-b093-4ae8-84c0-2d7ac652a1b8
N)
r@   ÚconnectÚtransaction_startÚadd_ldifrI   Úmodify_ldifrG   rC   Útransaction_commitÚtransaction_cancel)rL   Úschemadb_pathrI   s   && r   Úwrite_to_tmp_ldbÚSchema.write_to_tmp_ldb«   sË   € Ø�‰×Ñ˜]ÐÔ+Ø�‰×"Ñ"Ô$ð	*ð �H‰H×Ñð ô ð !×.Ñ.ØFõGˆMð �H‰H×Ñ˜mÔ,Ø�H‰H× Ñ  ×!6Ñ!6Ô7Ø�H‰H×Ñ˜d×.Ñ.Ô/ð
 �H‰H×'Ñ'Ö)øð		Ø�H‰H×'Ñ'Ô)Øús   ¸BC' Ã'Dc                óB   € \        V P                  V P                  4      # r1   )Úget_linked_attributesr?   r@   ©rL   s   &r   Úlinked_attributesÚSchema.linked_attributesÉ   s   € Ü$ T§]¡]°D·H±HÓ=Ð=r   c                óB   € \        V P                  V P                  4      # r1   )Úget_dnsyntax_attributesr?   r@   rm   s   &r   Údnsyntax_attributesÚSchema.dnsyntax_attributesÌ   s   € Ü& t§}¡}°d·h±hÓ?Ð?r   c                óD   € \         P                  ! V P                  W4      # r1   )r   Ú _dsdb_convert_schema_to_openldapr@   )rL   ÚtargetÚmappings   &&&r   Úconvert_to_openldapÚSchema.convert_to_openldapÏ   s   € Ü×4Ò4°T·X±X¸vÓOÐOr   )r>   r@   rJ   rC   rI   rG   r?   )z"MS-AD_Schema_2K8_R2_Attributes.txtzMS-AD_Schema_2K8_R2_Classes.txté/   )z0Attributes_for_AD_DS__Windows_Server_2008_R2.ldfz-Classes_for_AD_DS__Windows_Server_2008_R2.ldfrz   )z-Attributes_for_AD_DS__Windows_Server_2012.ldfz*Classes_for_AD_DS__Windows_Server_2012.ldfé8   )z,AD_DS_Attributes__Windows_Server_2012_R2.ldfz)AD_DS_Classes__Windows_Server_2012_R2.ldféE   )z*AD_DS_Attributes__Windows_Server_v1803.ldfz'AD_DS_Classes__Windows_Server_v1803.ldféW   )z)AD_DS_Attributes_Windows_Server_v1903.ldfz&AD_DS_Classes_Windows_Server_v1903.ldféX   )NNNNNN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rB   rT   Ústaticmethodr=   rF   rK   ri   rn   rr   rx   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r   C   s™   ø‡ € ð 	ð ð ð ð ð ð ð ð ð ð ð ð!€Lô*ALðF ñó ðð ñ3ó ð3ò>ò*ò<>ò@÷Pð Pr   r   c                 óx  € R R.pVP                  R\         R2V \        VR7      p/ p\        ^ \	        V4      4       Fy  pR\        W5,          R ,          ^ ,          4      ^,           ,          pVP                  V VR\        R7      pVf   KO  VP                  R4      V\        W5,          R,          4      &   K{  	  V# )ÚlinkIDÚlDAPDisplayNamez(&(linkID=*)(!(linkID:z<:=1))(objectclass=attributeSchema)(attributeSyntax=2.5.5.1))©Ú
expressionÚbaseÚscopeÚattrszD(&(objectclass=attributeSchema)(linkID=%d)(attributeSyntax=2.5.5.1)))Úbasednr‹   Ú	attributer�   zutf-8)
Úsearchr   r   ÚrangeÚlenÚintÚ	searchoner   rH   rE   )r?   Ú	schemaldbrŽ   ÚresÚ
attributesÚir‹   rv   s   &&      r   rl   rl   Ô   sÓ   € ØÐ(Ð)€EØ
×
Ñ
ð Ü 2Ð3ð 40ð0ð œ^°5ð ó :€Cð €JÜ�1”c˜#“hÖˆð3ä˜3�6 (Õ+¨AÕ.Ó/°!Õ3õ5ˆ
ð ×$Ñ$¨HØ0:Ø/@Ü+8ð %ó :ˆð ÔØ9?¿¹ÀwÓ9OˆJ”s˜3�6Ð"3Õ4Ó5Ó6ñ  ð Ðr   c                 óÆ   € VP                  R V \        RR.R7      p. p\        ^ \        V4      4       F*  pVP	                  \        W$,          R,          4      4       K,  	  V# )zF(&(!(linkID=*))(objectclass=attributeSchema)(attributeSyntax=2.5.5.1))rˆ   r‰   rŠ   )r‘   r   r’   r“   ÚappendrE   )r?   r–   r—   r˜   r™   s   &&   r   rq   rq   ë   se   € Ø
×
Ñ
Ø[Øœ^ØÐ*Ð+ð ó -€Cð €JÜ�1”c˜#“hÖˆØ×Ñœ#˜c�fÐ%6Õ7Ó8Ö9ñ  àÐr   c                ó|   € Vf   \         P                  ! 4       pM\         P                  ! V4      p\        WVR7      # )a7  Load schema for the SamDB from the AD schema files and samba4_schema.ldif

:param schemadn: DN of the schema
:param serverdn: DN of the server

Returns the schema data loaded as an object, with .ldb being a
new ldb with the schema loaded.  This allows certain tests to
operate without a remote or local schema.
)r?   rO   )r   Ú
random_sidÚdom_sidr   )r?   Ú	domainsidrO   s   &&&r   Úldb_with_schemar    ö   s:   € ð ÒÜ×'Ò'Ó)‰	ä×$Ò$ YÓ/ˆ	Ü�)Ø%7ô9ð 9r   r1   )z,cn=schema,cn=configuration,dc=example,dc=comNN)Ú__doc__Úbase64r   Úsambar   r   r   Úsamba.dcerpcr   Úsamba.ms_schemar   Ú	samba.ndrr   Úsamba.samdbr	   Úsamba.commonr   r   r@   r   r   r   r   Úobjectr   rl   rq   r    r:   r   r   Ú<module>rª      sP   ðñ. /å ß JÑ JÝ !Ý *Ý Ý Ý #Ý ß AÑ Aôô>MPˆVô MPòbò.ö9r   