+
    4Ssi}  ã                   óB  € R t ^ RIHt ^ RIHt ^ RIHt ^ RIt^ RItR t	R!R lt
R!R ltR!R ltR!R	 ltR!R
 ltR!R ltR!R ltR!R ltR!R ltR!R ltR!R ltR!R ltR!R ltR!R ltR!R ltR!R ltR!R ltR!R ltR!R ltR!R ltR!R ltR!R ltR t R t!R t"R t#R"R  lt$R# )#zFFunctions for setting up a Samba configuration (security descriptors).)Úsecurity)Úndr_pack)Úget_schema_descriptorNc                 ó¼   € R V ,          pVP                  4        F  w  rEVP                  WE4      pK  	  \        P                  P	                  W14      p\        V4      # )ú%s)ÚitemsÚreplacer   Ú
descriptorÚ	from_sddlr   )Úsddl_inÚ
domain_sidÚname_mapÚsddlÚnameÚsidÚsecs   &&&    Ú2/usr/lib/python3/dist-packages/samba/descriptor.pyÚsddl2binaryr   &   sN   € Ø�'�>€Dà—~‘~Ö'‰ˆØ�|‰|˜DÓ&Šñ (ô ×
Ñ
×
'Ñ
'¨Ó
9€CÜ�C‹=Ðó    c                 ó*   € Vf   / pRp\        W V4      # )NÚ ©r   ©r   r   r   s   && r   Úget_empty_descriptorr   0   s   € ØÒØˆà€DÜ�t¨Ó2Ð2r   c                 ó*   € Vf   / pRp\        W V4      # )Nz9O:SYG:SYD:PAI(A;;RPWPCCDCLCRCWOWDSDSW;;;SY)(A;;RPLC;;;BA)r   r   s   && r   Úget_deletedobjects_descriptorr   :   s#   € ØÒØˆð€Dô �t¨Ó2Ð2r   c                 ó*   € Vf   / pRp\        W V4      # )Na  O:EAG:EAD:(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;;RPLCLORC;;;AU)(A;CI;RPWPCRCCDCLCLORCWOWDSDDTSW;;;EA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;CIIO;RPWPCRCCLCLORCWOWDSDSW;;;DA)(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)S:(AU;SA;WPWOWD;;;WD)(AU;SA;CR;;;BA)(AU;SA;CR;;;DU)(OU;SA;CR;45ec5156-db7e-47bb-b53f-dbeb2d03c40f;;WD)r   r   s   && r   Úget_config_descriptorr   D   s$   € ØÒØˆðA€Dô �t¨Ó2Ð2r   c                 ó*   € Vf   / pRp\        W V4      # )Na   D:(A;;LCLORC;;;AU)(OA;;RP;e48d0154-bcf8-11d1-8702-00c04fb96050;;AU)(OA;;RP;d31a8757-2447-4545-8081-3bb610cacbf2;;AU)(OA;;RP;66171887-8f3c-11d0-afda-00c04fd930c9;;AU)(OA;;RP;032160bf-9824-11d1-aec0-0000f80367c1;;AU)(OA;;RP;789ee1eb-8c8e-4e4c-8cec-79b31b7617b5;;AU)(OA;;RP;5706aeaf-b940-4fb2-bcfc-5268683ad9fe;;AU)(A;;RPWPCRCCLCLORCWOWDSW;;;EA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;CC;;;ED)(OA;CIIO;WP;3df793df-9858-4417-a701-735a1ecebf74;bf967a8d-0de6-11d0-a285-00aa003049e2;BA)S:(AU;CISA;WPCRCCDCWOWDSDDT;;;WD)r   r   s   && r   Ú get_config_partitions_descriptorr   Z   s#   € ØÒØˆð*€Dô �t¨Ó2Ð2r   c                 ó*   € Vf   / pRp\        W V4      # )Na  D:(A;;RPLCLORC;;;AU)(OA;CIIO;SW;d31a8757-2447-4545-8081-3bb610cacbf2;f0f8ffab-1191-11d0-a060-00aa006c33ed;RO)(A;;RPWPCRCCLCLORCWOWDSW;;;EA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)S:(AU;CISA;CCDCSDDT;;;WD)(OU;CIIOSA;CR;;f0f8ffab-1191-11d0-a060-00aa006c33ed;WD)(OU;CIIOSA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967ab3-0de6-11d0-a285-00aa003049e2;WD)(OU;CIIOSA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967ab3-0de6-11d0-a285-00aa003049e2;WD)(OU;CIIOSA;WP;3e10944c-c354-11d0-aff8-0000f80367c1;b7b13124-b82e-11d0-afee-0000f80367c1;WD)r   r   s   && r   Úget_config_sites_descriptorr!   o   s$   € ØÒØˆð
f€Dô �t¨Ó2Ð2r   c                 ó*   € Vf   / pRp\        W V4      # )NziD:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;EA)(A;;RPLCLORC;;;BA)(OA;;CR;4ecc03fe-ffc0-4947-b630-eb672a8a9dbc;;WD)r   r   s   && r   Ú!get_config_ntds_quotas_descriptorr#   �   s#   € ØÒØˆð<€Dô �t¨Ó2Ð2r   c                 ó*   € Vf   / pRp\        W V4      # )NzXD:AI(A;;RPLCLORC;;;AU)(A;;RPWPCRCCLCLORCWOWDSW;;;EA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)r   r   s   && r   Ú'get_config_delete_protected1_descriptorr%   Œ   ó#   € ØÒØˆð/€Dô �t¨Ó2Ð2r   c                 ó*   € Vf   / pRp\        W V4      # )NzXD:AI(A;;RPLCLORC;;;WD)(A;;RPWPCRCCLCLORCWOWDSW;;;EA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)r   r   s   && r   Ú)get_config_delete_protected1wd_descriptorr(   —   r&   r   c                 ó*   € Vf   / pRp\        W V4      # )NzZD:AI(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSW;;;EA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)r   r   s   && r   Ú'get_config_delete_protected2_descriptorr*   ¢   r&   r   c                 ó*   € Vf   / pRp\        W V4      # )Naó  O:BAG:BAD:AI(OA;CIIO;RP;4c164200-20c0-11d0-a768-00aa006e0529;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO;RP;4c164200-20c0-11d0-a768-00aa006e0529;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;037088f8-0ae1-11d2-b422-00a0c968f939;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO;RP;037088f8-0ae1-11d2-b422-00a0c968f939;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;RO)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;DD)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a86-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a9c-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967aba-0de6-11d0-a285-00aa003049e2;ED)(OA;;CR;89e95b76-444d-4c62-991a-0facbeda640c;;BA)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;e2a36dc9-ae17-47c3-b58b-be34c55ba633;;S-1-5-32-557)(OA;;RP;c7407360-20bf-11d0-a768-00aa006e0529;;RU)(OA;;RP;b8119fd0-04f6-4762-ab7a-4986c76b3f9a;;RU)(OA;CIIO;RPLCLORC;;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO;RPLCLORC;;bf967a9c-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RPLCLORC;;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;;CR;05c74c5e-4deb-43b4-bd9f-86664c2a7fd5;;AU)(OA;;CR;89e95b76-444d-4c62-991a-0facbeda640c;;ED)(OA;;CR;ccc2dc7d-a6ad-4a7a-8846-c04e3cc53501;;AU)(OA;;CR;280f369c-67c7-438e-ae98-1d46f3c6f541;;AU)(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;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;RP;b8119fd0-04f6-4762-ab7a-4986c76b3f9a;;AU)(OA;CIIO;RPWPCR;91e647de-d96f-4b70-9557-d63ff4f3ccd8;;PS)(OA;CIIO;WP;ea1b7b93-5e48-46d5-bc6c-4df4fda78a35;bf967a86-0de6-11d0-a285-00aa003049e2;PS)(OA;;CR;3e0f7e18-2c7a-4c10-ba82-4d926db99a3e;;CN)(OA;OICI;RPWP;3f78c3e5-f79a-46bd-a0b8-9d18116ddc79;;PS)(OA;CI;RPWP;5b47d60f-6090-40b2-9f37-2a4de88f3063;;KA)(OA;CI;RPWP;5b47d60f-6090-40b2-9f37-2a4de88f3063;;EK)(OA;CIIO;SW;9b026da6-0d3c-465c-8bee-5199d7165cba;bf967a86-0de6-11d0-a285-00aa003049e2;PS)(OA;CIIO;SW;9b026da6-0d3c-465c-8bee-5199d7165cba;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(A;;RPWPCRCCLCLORCWOWDSW;;;DA)(A;CI;RPWPCRCCDCLCLORCWOWDSDDTSW;;;EA)(A;;RPRC;;;RU)(A;CI;LC;;;RU)(A;CI;RPWPCRCCLCLORCWOWDSDSW;;;BA)(A;;RP;;;WD)(A;;RPLCLORC;;;ED)(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)S:AI(OU;CISA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(OU;CISA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(AU;SA;CR;;;DU)(AU;SA;CR;;;BA)(AU;SA;WPWOWD;;;WD)r   r   s   && r   Úget_domain_descriptorr,   ­   s$   € ØÒØˆð7<€Dôp �t¨Ó2Ð2r   c                 ó*   € Vf   / pRp\        W V4      # )NziD:(A;;RPLCLORC;;;AU)(A;;RPWPCRCCLCLORCWOWDSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)S:(AU;SA;WPCR;;;WD)r   r   s   && r   Ú$get_domain_infrastructure_descriptorr.   ì   s#   € ØÒØˆð€Dô �t¨Ó2Ð2r   c                 ó*   € Vf   / pRp\        W V4      # )NaL  D:(OA;CIIO;RP;4c164200-20c0-11d0-a768-00aa006e0529;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO;RP;4c164200-20c0-11d0-a768-00aa006e0529;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;037088f8-0ae1-11d2-b422-00a0c968f939;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO;RP;037088f8-0ae1-11d2-b422-00a0c968f939;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;RO)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;DD)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a86-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a9c-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967aba-0de6-11d0-a285-00aa003049e2;ED)(OA;;CR;89e95b76-444d-4c62-991a-0facbeda640c;;BA)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;e2a36dc9-ae17-47c3-b58b-be34c55ba633;;S-1-5-32-557)(OA;;RP;c7407360-20bf-11d0-a768-00aa006e0529;;RU)(OA;;RP;b8119fd0-04f6-4762-ab7a-4986c76b3f9a;;RU)(OA;CIIO;RPLCLORC;;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO;RPLCLORC;;bf967a9c-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RPLCLORC;;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;;CR;05c74c5e-4deb-43b4-bd9f-86664c2a7fd5;;AU)(OA;;CR;89e95b76-444d-4c62-991a-0facbeda640c;;ED)(OA;;CR;ccc2dc7d-a6ad-4a7a-8846-c04e3cc53501;;AU)(OA;;CR;280f369c-67c7-438e-ae98-1d46f3c6f541;;AU)(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;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;RP;b8119fd0-04f6-4762-ab7a-4986c76b3f9a;;AU)(OA;CIIO;RPWPCR;91e647de-d96f-4b70-9557-d63ff4f3ccd8;;PS)(OA;CIIO;SW;9b026da6-0d3c-465c-8bee-5199d7165cba;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(OA;OICI;RPWP;3f78c3e5-f79a-46bd-a0b8-9d18116ddc79;;PS)(OA;CIIO;SW;9b026da6-0d3c-465c-8bee-5199d7165cba;bf967a86-0de6-11d0-a285-00aa003049e2;PS)(OA;CIIO;WP;ea1b7b93-5e48-46d5-bc6c-4df4fda78a35;bf967a86-0de6-11d0-a285-00aa003049e2;PS)(A;;RPWPCRCCLCLORCWOWDSW;;;DA)(A;CI;RPWPCRCCDCLCLORCWOWDSDDTSW;;;EA)(A;;RPRC;;;RU)(A;CI;LC;;;RU)(A;CI;RPWPCRCCLCLORCWOWDSDSW;;;BA)(A;;RP;;;WD)(A;;RPLCLORC;;;ED)(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)S:(OU;CISA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(OU;CISA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(AU;SA;CR;;;DU)(AU;SA;CR;;;BA)(AU;SA;WPWOWD;;;WD)r   r   s   && r   Úget_domain_builtin_descriptorr0   ù   s$   € ØÒØˆð8€Dôr �t¨Ó2Ð2r   c                 ó*   € Vf   / pRp\        W V4      # )NaY  D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSW;;;DA)(OA;;CCDC;bf967a86-0de6-11d0-a285-00aa003049e2;;AO)(OA;;CCDC;bf967aba-0de6-11d0-a285-00aa003049e2;;AO)(OA;;CCDC;bf967a9c-0de6-11d0-a285-00aa003049e2;;AO)(OA;;CCDC;bf967aa8-0de6-11d0-a285-00aa003049e2;;PO)(A;;RPLCLORC;;;AU)(OA;;CCDC;4828cc14-1437-45bc-9b07-ad6f015e5f28;;AO)S:r   r   s   && r   Úget_domain_computers_descriptorr2   9  s#   € ØÒØˆð	€Dô �t¨Ó2Ð2r   c                 ó*   € Vf   / pRp\        W V4      # )Na&  D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSW;;;DA)(OA;;CCDC;bf967aba-0de6-11d0-a285-00aa003049e2;;AO)(OA;;CCDC;bf967a9c-0de6-11d0-a285-00aa003049e2;;AO)(OA;;CCDC;bf967aa8-0de6-11d0-a285-00aa003049e2;;PO)(A;;RPLCLORC;;;AU)(OA;;CCDC;4828cc14-1437-45bc-9b07-ad6f015e5f28;;AO)S:r   r   s   && r   Úget_domain_users_descriptorr4   J  s#   € ØÒØˆð€Dô �t¨Ó2Ð2r   c                 ó*   € Vf   / pRp\        W V4      # )NzóD:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSW;;;DA)(OA;;CCDC;ce206244-5827-4a86-ba1c-1c0c386c1b64;;AO)(OA;;CCDC;bf967aba-0de6-11d0-a285-00aa003049e2;;AO)(OA;;CCDC;bf967a9c-0de6-11d0-a285-00aa003049e2;;AO)(A;;RPLCLORC;;;AU)S:r   r   s   && r   Ú'get_managed_service_accounts_descriptorr6   Z  s#   € ØÒØˆð€Dô �t¨Ó2Ð2r   c                 ó*   € Vf   / pRp\        W V4      # )Nz”D:(A;;RPLCLORC;;;AU)(A;;RPWPCRCCLCLORCWOWDSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;ED)S:(AU;SA;CCDCWOWDSDDT;;;WD)(AU;CISA;WP;;;WD)r   r   s   && r   Ú!get_domain_controllers_descriptorr8   i  s#   € ØÒØˆð€Dô �t¨Ó2Ð2r   c                 ó*   € Vf   / pRp\        W V4      # )NzXD:AI(A;;RPLCLORC;;;AU)(A;;RPWPCRCCLCLORCWOWDSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)r   r   s   && r   Ú'get_domain_delete_protected1_descriptorr:   x  r&   r   c                 ó*   € Vf   / pRp\        W V4      # )NzZD:AI(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)r   r   s   && r   Ú'get_domain_delete_protected2_descriptorr<   ƒ  r&   r   c                 ó*   € Vf   / pRp\        W V4      # )NaX  O:SYG:BAD:AI(OA;CIIO;RP;4c164200-20c0-11d0-a768-00aa006e0529;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO;RP;4c164200-20c0-11d0-a768-00aa006e0529;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;037088f8-0ae1-11d2-b422-00a0c968f939;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO;RP;037088f8-0ae1-11d2-b422-00a0c968f939;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;RO)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a86-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a9c-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967aba-0de6-11d0-a285-00aa003049e2;ED)(OA;;CR;89e95b76-444d-4c62-991a-0facbeda640c;;BA)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;e2a36dc9-ae17-47c3-b58b-be34c55ba633;;S-1-5-32-557)(OA;;RP;c7407360-20bf-11d0-a768-00aa006e0529;;RU)(OA;;RP;b8119fd0-04f6-4762-ab7a-4986c76b3f9a;;RU)(OA;CIIO;RPLCLORC;;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO;RPLCLORC;;bf967a9c-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RPLCLORC;;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;;CR;05c74c5e-4deb-43b4-bd9f-86664c2a7fd5;;AU)(OA;;CR;89e95b76-444d-4c62-991a-0facbeda640c;;ED)(OA;;CR;ccc2dc7d-a6ad-4a7a-8846-c04e3cc53501;;AU)(OA;;CR;280f369c-67c7-438e-ae98-1d46f3c6f541;;AU)(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;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;RP;b8119fd0-04f6-4762-ab7a-4986c76b3f9a;;AU)(OA;CIIO;RPWPCR;91e647de-d96f-4b70-9557-d63ff4f3ccd8;;PS)(OA;CIIO;SW;9b026da6-0d3c-465c-8bee-5199d7165cba;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(OA;OICI;RPWP;3f78c3e5-f79a-46bd-a0b8-9d18116ddc79;;PS)(OA;CIIO;SW;9b026da6-0d3c-465c-8bee-5199d7165cba;bf967a86-0de6-11d0-a285-00aa003049e2;PS)(OA;CIIO;WP;ea1b7b93-5e48-46d5-bc6c-4df4fda78a35;bf967a86-0de6-11d0-a285-00aa003049e2;PS)(A;;RPWPCRCCLCLORCWOWDSW;;;DA)(A;CI;RPWPCRCCDCLCLORCWOWDSDDTSW;;;EA)(A;;RPRC;;;RU)(A;CI;LC;;;RU)(A;CI;RPWPCRCCLCLORCWOWDSDSW;;;BA)(A;;RP;;;WD)(A;;RPLCLORC;;;ED)(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)S:AI(OU;CISA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(OU;CISA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(AU;SA;CR;;;DU)(AU;SA;CR;;;BA)(AU;SA;WPWOWD;;;WD)r   r   s   && r   Úget_dns_partition_descriptorr>   Ž  s$   € ØÒØˆð6<€Dôn �t¨Ó2Ð2r   c                 ó*   € Vf   / pRp\        W V4      # )NzTO:SYG:SYD:AI(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;CI;RPWPCRCCDCLCRCWOWDSDDTSW;;;ED)r   r   s   && r   Ú'get_dns_forest_microsoft_dns_descriptorr@   Ì  s#   € ØÒØˆð/€Dô �t¨Ó2Ð2r   c                 ó*   € Vf   / pRp\        W V4      # )Nz£O:SYG:SYD:AI(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;CI;RPWPCRCCDCLCRCWOWDSDDTSW;;;DnsAdmins)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;CI;RPWPCRCCDCLCRCWOWDSDDTSW;;;ED)r   r   s   && r   Ú'get_dns_domain_microsoft_dns_descriptorrB   Ö  s#   € ØÒØˆð/€Dô
 �t¨Ó2Ð2r   c                 ó*   € Vf   / pRp\        W V4      # )Nz‡O:SubdomainAdminsG:SubdomainAdminsD:AI(A;;RPWPCRCCLCLORCWOWDSW;;;SubdomainAdmins)(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)r   r   s   && r   Ú+get_paritions_crossref_subdomain_descriptorrD   â  r&   r   c                 óR  € \         P                  ! V R \        V P                  4       4      ,          4      \        3\         P                  ! V R\        V P                  4       4      ,          4      \
        3\         P                  ! V R\        V P                  4       4      ,          4      \        3\         P                  ! V R\        V P                  4       4      ,          4      \        3\         P                  ! V R\        V P                  4       4      ,          4      \        3\         P                  ! V R\        V P                  4       4      ,          4      \        3\         P                  ! V R\        V P                  4       4      ,          4      \        3\         P                  ! V R\        V P                  4       4      ,          4      \        3\         P                  ! V R\        V P                  4       4      ,          4      \        3\         P                  ! V R	\        V P                  4       4      ,          4      \        3\         P                  ! V R \        V P                  4       4      ,          4      \        3\         P                  ! V R\        V P                  4       4      ,          4      \
        3\         P                  ! V R
\        V P                  4       4      ,          4      \         3\         P                  ! V R\        V P                  4       4      ,          4      \"        3\         P                  ! V R\        V P                  4       4      ,          4      \$        3\         P                  ! V R\        V P                  4       4      ,          4      \"        3\         P                  ! V R\        V P                  4       4      ,          4      \"        3\         P                  ! V R\        V P                  4       4      ,          4      \"        3\         P                  ! V R\        V P                  4       4      ,          4      \&        3\         P                  ! V R\        V P                  4       4      ,          4      \&        3\         P                  ! V R\        V P                  4       4      ,          4      \(        3\         P                  ! V R\        V P                  4       4      ,          4      \*        3\         P                  ! V R \        V P-                  4       4      ,          4      \.        3.pV P1                  RR\         P2                  R.R7      pV^ ,          R,           EF5  p\         P                  ! V R\        V P5                  4       4      ,          4      p\         P                  ! WP7                  R4      4      V8X  Ed:   \         P                  ! V R \        V4      ,          4      \8        3pVP;                  V4       \         P                  ! V R\        V4      ,          4      \
        3pVP;                  V4       \         P                  ! V R\        V4      ,          4      \        3pVP;                  V4       \         P                  ! V R\        V4      ,          4      \        3pVP;                  V4       \         P                  ! V R\        V4      ,          4      \<        3pVP;                  V4       EK�  \         P                  ! V R\        V P                  4       4      ,          4      p\         P                  ! WP7                  R4      4      V8X  g   EKÿ  \         P                  ! V R \        V4      ,          4      \8        3pVP;                  V4       \         P                  ! V R\        V4      ,          4      \
        3pVP;                  V4       \         P                  ! V R\        V4      ,          4      \        3pVP;                  V4       \         P                  ! V R\        V4      ,          4      \        3pVP;                  V4       \         P                  ! V R\        V4      ,          4      \        3pVP;                  V4       EK8  	  V# )r   zCN=Deleted Objects,%szCN=LostAndFound,%szCN=System,%szCN=Infrastructure,%szCN=Builtin,%szCN=Computers,%szCN=Users,%szOU=Domain Controllers,%szCN=MicrosoftDNS,CN=System,%szCN=NTDS Quotas,%szCN=LostAndFoundConfig,%szCN=Services,%szCN=Physical Locations,%sz#CN=WellKnown Security Principals,%szCN=ForestUpdates,%szCN=DisplaySpecifiers,%szCN=Extended-Rights,%szCN=Partitions,%szCN=Sites,%sz(objectClass=*)r   ÚnamingContexts)Ú
expressionÚbaseÚscopeÚattrszDC=ForestDnsZones,%sÚutf8zCN=MicrosoftDNS,%szDC=DomainDnsZones,%s)ÚldbÚDnÚstrÚ	domain_dnr,   r   r<   r:   r.   r0   r2   r4   r8   rB   Úget_config_basednr   r#   r(   r%   r*   r   r!   Úget_schema_basednr   ÚsearchÚ
SCOPE_BASEÚget_root_basednÚdecoder>   Úappendr@   )ÚsamdbÚsubcontainersÚcurrentÚncÚdnsforestdnÚcÚdnsdomaindns   &      r   Úget_wellknown_sdsr^   í  s:  € ô 
�Š��tœc %§/¡/Ó"3Ó4Õ4Ó	5Ô7LÐMÜ	�Š�Ð.´°U·_±_Ó5FÓ1GÕGÓ	HÔJgÐhÜ	�Š�Ð+¬c°%·/±/Ó2CÓ.DÕDÓ	EÔGnÐoÜ	�Š��~¬¨E¯O©OÓ,=Ó(>Õ>Ó	?ÔAhÐiÜ	�Š�Ð-´°E·O±OÓ4EÓ0FÕFÓ	GÔImÐnÜ	�Š��¬¨U¯_©_Ó->Ó)?Õ?Ó	@ÔB_Ð`Ü	�Š�Ð(¬3¨u¯©Ó/@Ó+AÕAÓ	BÔDcÐdÜ	�Š��}¤s¨5¯?©?Ó+<Ó'=Õ=Ó	>Ô@[Ð\Ü	�Š�Ð1´C¸¿¹Ó8IÓ4JÕJÓ	KÔMnÐoÜ	�Š�Ð5¼¸E¿O¹OÓ<MÓ8NÕNÓ	OÔQxÐyä	�Š��tœc %×"9Ñ"9Ó";Ó<Õ<Ó	=Ô?TÐUÜ	�Š�Ð.´°U×5LÑ5LÓ5NÓ1OÕOÓ	PÔRoÐpÜ	�Š�Ð*¬S°×1HÑ1HÓ1JÓ-KÕKÓ	LÔNoÐpÜ	�Š�Ð1´C¸×8OÑ8OÓ8QÓ4RÕRÓ	SÔU~ÐÜ	�Š�Ð'¬#¨e×.EÑ.EÓ.GÓ*HÕHÓ	IÔKrÐsÜ	�Š�Ð1´C¸×8OÑ8OÓ8QÓ4RÕRÓ	SÔU~ÐÜ	�Š�Ð<¼sÀ5×CZÑCZÓC\Ó?]Õ]Ó	^ô  aJð  	KÜ	�Š�Ð,¬s°5×3JÑ3JÓ3LÓ/MÕMÓ	NÔPyÐzÜ	�Š�Ð0´3°u×7NÑ7NÓ7PÓ3QÕQÓ	RÔT{Ð|Ü	�Š�Ð.´°U×5LÑ5LÓ5NÓ1OÕOÓ	PÔRyÐzÜ	�Š�Ð)¬C°×0GÑ0GÓ0IÓ,JÕJÓ	KÔMmÐnÜ	�Š��}¤s¨5×+BÑ+BÓ+DÓ'EÕEÓ	FÔHcÐdä	�Š��tœc %×"9Ñ"9Ó";Ó<Õ<Ó	=Ô?TÐUð3€Mð8 �l‰lÐ&7Ø "¬#¯.©.Ø"2Ð!3ð ó 5€Gð �a�jÐ)×*Ñ*ˆä—f’f˜UÐ$:¼cÀ%×BWÑBWÓBYÓ>ZÕ$[Ó\ˆÜ�6Š6�%Ÿ™ 6Ó*Ó+¨{Õ:Ü—’˜˜t¤c¨+Ó&6Õ6Ó7Ô9UÐVˆAØ× Ñ  Ô#Ü—’˜Ð6¼¸[Ó9IÕIÓJÜ.ð0ˆAà× Ñ  Ô#Ü—’˜Ð5¼¸KÓ8HÕHÓIÜ8ð:ˆAà× Ñ  Ô#Ü—’˜Ð3´c¸+Ó6FÕFÓGÜ8ð:ˆAà× Ñ  Ô#Ü—’˜Ð3´c¸+Ó6FÕFÓGÜ8ð:ˆAà× Ñ  Ô#Úä—f’f˜UÐ$:¼cÀ%Ç/Á/ÓBSÓ>TÕ$UÓVˆÜ�6Š6�%Ÿ™ 6Ó*Ó+¨{×:Ü—’˜˜t¤c¨+Ó&6Õ6Ó7Ô9UÐVˆAØ× Ñ  Ô#Ü—’˜Ð6¼¸[Ó9IÕIÓJÜ.ð0ˆAà× Ñ  Ô#Ü—’˜Ð5¼¸KÓ8HÕHÓIÜ8ð:ˆAà× Ñ  Ô#Ü—’˜Ð3´c¸+Ó6FÕFÓGÜ8ð:ˆAà× Ñ  Ô#Ü—’˜Ð3´c¸+Ó6FÕFÓGÜ8ð:ˆAà× Ñ  ×#ñG +ðJ Ðr   c                óø   € \         P                  ! R4      pVP                  V 4      p/ p. VR&   V FE  p\        V^ ,          4      ^ 8”  d   V^ ,          VR&   VR,          P	                  V^,          4       KG  	  V# )znReturn separate ACE of an ACL

:param acl: A string representing the ACL
:return: A hash with different parts
z(\w+)?(\(.*?\))ÚacesÚflags)ÚreÚcompileÚfindallÚlenrV   )ÚaclÚpÚtabÚhashÚes   &    r   Ú
chunck_aclrk   8  sq   € ô 	�
Š
Ð%Ó&€AØ
�)‰)�C‹.€Cà€DØ€Dˆ�LÛˆÜˆq��t‹9�qŒ=Ø˜a�DˆD�‰MØˆV�×Ñ˜A˜a�DÖ!ñ ð
 €Kr   c                ó>  € \         P                  ! R4      pVP                  V 4      p/ pV Fm  pV^ ,          R8X  d   V^,          VR&   V^ ,          R8X  d   V^,          VR&   V^ ,          R8X  d   V^,          VR&   V^ ,          R8X  g   Ka  V^,          VR	&   Ko  	  V# )
z”Return separate parts of the SDDL (owner, group, ...)

:param sddl: An string containing the SDDL to chunk
:return: A hash with the different chunk
z([OGDS]:)(.*?)(?=(?:[GDS]:|$))zO:ÚownerzG:ÚgroupzD:ÚdaclzS:Úsacl)rb   rc   rd   )r   rg   rh   ri   rj   s   &    r   Úchunck_sddlrq   L  s–   € ô 	�
Š
Ð4Ó5€AØ
�)‰)�D‹/€Cà€DÛˆØˆQ�4�4Œ<Ø˜a�DˆD�‰MØˆQ�4�4Œ<Ø˜a�DˆD�‰MØˆQ�4�4Œ<Ø˜Q�4ˆD�‰LØˆQ�4�4Ž<Ø˜Q�4ˆD�‹Lñ ð €Kr   c                óÈ  € \         P                  ! 4       pV P                  Vn        V P                  Vn        V P                  Vn        V P
                  Vn        . pV P                  e   V P                  P                  p\        ^ \        V4      4       FE  pW#,          pVP                  \         P                  ,          '       d   K4  VP                  V4       KG  	  . pV P                  e   V P                  P                  p\        ^ \        V4      4       FE  pW#,          pVP                  \         P                  ,          '       d   K4  VP                  V4       KG  	  V# )zjGet the SD without any inherited ACEs

:param sd: SD to strip
:return: An SD with inherited ACEs stripped
)r   r	   Ú	owner_sidÚ	group_sidÚtypeÚrevisionrp   r`   Úrangere   ra   ÚSEC_ACE_FLAG_INHERITED_ACEÚsacl_addro   Údacl_add)ÚsdÚsd_cleanr`   ÚiÚaces   &    r   Úget_clean_sdr   d  s  € ô ×"Ò"Ó$€HØŸ™€HÔØŸ™€HÔØ—G‘G€H„MØŸ™€HÔà€DØ	‡w�wÒØ�w‰w�|‰|ˆÜ�1”c˜$“iÖ ˆØ�gˆà�y‰yœ8×>Ñ>×>Ö>Ø×Ñ˜cÔ"Ùñ !ð €DØ	‡w�wÒØ�w‰w�|‰|ˆÜ�1”c˜$“iÖ ˆØ�gˆà�y‰yœ8×>Ñ>×>Ö>Ø×Ñ˜cÔ"Ùñ !ð €Or   c                óÜ  € \        V4      P                  V4      p\        V 4      P                  V4      pRp\        V4      p\        V4      p	RV9  d   RpM5RV	9   d/   VR,          V	R,          8w  d   RV	R,          : RVR,          : R2pRV9  d   RV,          pM8RV	9   d2   VR,          V	R,          8w  d   V: R	V	R,          : RVR,          : R2pR
.p
V'       d   V
P                  R4       V
 EFt  pW¸9   Ed5   W¹9   Ed.   \	        4       p\	        4       p\        W‹,          4      p\        W›,          4      pVR,           F  pVP                  V4       K  	  VR,           F  pVP                  V4       K  	  \	        V4       F.  pVV9   g   K  VP                  V4       VP                  V4       K0  	  \        V4      \        V4      ,           ^ 8”  dV   VR8X  d   \        V4      ^ 8X  d   V'       d    R# V: RV: R2pV F  pV: RV: R2pK  	  V F  pV: RV: R2pK  	  EK<  EK?  W¸9   d   W¹9  d   V: RV: R2pEKX  W¸9  g   EKa  W¹9   g   EKj  V: RV: R2pEKw  	  V# )ab  Get the difference between 2 sd

This function split the textual representation of ACL into smaller
chunk in order to not to report a simple permutation as a difference

:param refsddl: First sddl to compare
:param cursddl: Second sddl to compare
:param checkSacl: If false we skip the sacl checks
:return: A string that explain difference between sddls
r   rm   z	No owner in current SDz	Owner mismatch: z
 (in ref) z(in current)
rn   z%s	No group in current SDz	Group mismatch: ro   rp   r`   z	Part z@ is different between reference and current here is the detail:
z		z% ACE is not present in the reference
z# ACE is not present in the current
z	Reference ACL hasn't a z part
z	Current ACL hasn't a )	r   Úas_sddlrq   rV   Úsetrk   ÚaddÚremovere   )ÚrefsdÚcursdÚ	domainsidÚ	checkSaclÚignoreAdditionalACEsÚcursddlÚrefsddlÚtxtÚhash_curÚhash_refÚpartsÚpartÚh_curÚh_refÚc_curÚc_refÚelemÚkÚitems   &&&&&              r   Úget_diff_sdsr˜   ‡  s8  € ô ˜5Ó!×)Ñ)¨)Ó4€GÜ˜5Ó!×)Ñ)¨)Ó4€Gà
€CÜ˜7Ó#€HÜ˜7Ó#€Hà�hÔØ(‰Ø	�HÔ	 ¨'Õ!2°h¸wÕ6GÕ!Gà"*¨7×"3Ð"3°X¸g×5FÐ5FðHˆð �hÔØ*¨SÕ0‰Ø	�HÔ	 ¨'Õ!2°h¸wÕ6GÔ!Gã"% x°×'8Ð'8¸(À7×:KÐ:KðMˆð ˆH€EßØ�‰�VÔÜˆØÕ Õ 0ô “EˆEÜ“EˆEÜ˜x�~Ó.ˆEÜ˜x�~Ó.ˆEà˜fŸ˜�Ø—	‘	˜$–ñ &ð ˜fŸ˜�Ø—	‘	˜$–ñ &ô ˜–Z�Ø˜–:Ø—L‘L ”OØ—L‘L –Oñ  ô
 �5‹zœC ›JÕ&¨Ô*Ø˜"”9¤ U£¨q¤ß+Ú!ó ?BÃ4ðI�ó "�Dã,/³ð7’Cñ "ó "�Dã*-«tð5’Cô "ò +ð  Ô $Ô"6Û<?ÃÐF‹CØ×! d×&6Û:=»tÐD‹CñO ðR €Jr   )N)TF)%Ú__doc__Úsamba.dcerpcr   Ú	samba.ndrr   Úsamba.schemar   rL   rb   r   r   r   r   r   r!   r#   r%   r(   r*   r,   r.   r0   r2   r4   r6   r8   r:   r<   r>   r@   rB   rD   r^   rk   rq   r   r˜   © r   r   Ú<module>rž      s­   ðñ6 Må !Ý Ý .Û 
Û 	ò
ô3ô3ô3ô,3ô*3ô$3ô3ô3ô3ô<3ô~
3ô=3ô@3ô"3ô 3ô3ô3ô3ô;3ô|3ô	3ô3òHòVò(ò0 öFLr   