
    g                     d    S r S rSS jrSS jrS rSS jrSS jrSS jrSS jrSS	 jr	SS
 jr
g)z@Network Data Representation (NDR) marshalling and unmarshalling.c                 L    [        U SS5      nUc  [        SU -  5      eU" 5       $ )zaPack a NDR object.

:param object: Object to pack
:return: String object with marshalled object.
__ndr_pack__N%r is not a NDR objectgetattr	TypeError)objectndr_packs     +/usr/lib/python3/dist-packages/samba/ndr.pyr	   r	      s1     v~t4H069:::    c                 \    U " 5       n[        USS5      nUc  [        SU-  5      eU" XS9  U$ )zNDR unpack an object.

:param cls: Class of the object to unpack
:param data: Buffer to unpack
:param allow_remaining: allows remaining data at the end (default=False)
:return: Unpacked object
__ndr_unpack__Nr   allow_remainingr   )clsdatar   r   
ndr_unpacks        r
   r   r   $   s>     UF!148J069::t5Mr   c                 J    [        U SS 5      nUc  [        U  S35      eU" US9$ )N__ndr_print__z is not a NDR objectprint_secretsr   )r   r   	ndr_prints      r
   r   r   4   s4    6I6("6788=11r   c                     [        U SS5      nUc  [        SU -  5      eU" 5       n[        U 5      nU" 5       n[        USS5      nUc  [        SU-  5      eU" USS9  U$ )znCreate a deep copy of a NDR object, using pack/unpack

:param object: Object to copy
:return: The object copy
r   Nr   r   Fr   )r   r   type)r   r	   r   r   copyr   s         r
   ndr_deepcopyr   ;   su     v~t4H069:::D
v,C5D/6J04788tU+Kr   c                 J    [        U SS5      nUc  [        SU -  5      eU" XS9$ )zPack the input of an NDR function object.

:param object: Object to pack
:param bigendian: use LIBNDR_FLAG_BIGENDIAN (default=False)
:param ndr64: use LIBNDR_FLAG_NDR64 (default=False)
:return: String object with marshalled object.
__ndr_pack_in__N%r is not a NDR function object	bigendianndr64r   )r   r    r!   ndr_pack_in_fns       r
   ndr_pack_inr#   N   s5     V%6=N9FBCCI;;r   c                 R    [        U SS5      nUc  [        SU -  5      eU" XUUS9  U $ )aG  Unpack the input of an NDR function object.

:param cls: Class of the object to unpack
:param data: Buffer to unpack
:param bigendian: use LIBNDR_FLAG_BIGENDIAN (default=False)
:param ndr64: use LIBNDR_FLAG_NDR64 (default=False)
:param allow_remaining: allows remaining data at the end (default=False)
:return: Unpacked object
__ndr_unpack_in__Nr   r    r!   r   r   )r   r   r    r!   r   ndr_unpack_in_fns         r
   ndr_unpack_inr(   \   s?     v':DA9FBCCTe%46Mr   c                 J    [        U SS 5      nUc  [        SU -  5      eU" US9$ )N__ndr_print_in__r   r   r   )r   r   ndr_print_in_fns      r
   ndr_print_inr,   n   s3    f&8$?O9FBCC77r   c                 J    [        U SS5      nUc  [        SU -  5      eU" XS9$ )zPack the output of an NDR function object.

:param object: Object to pack
:param bigendian: use LIBNDR_FLAG_BIGENDIAN (default=False)
:param ndr64: use LIBNDR_FLAG_NDR64 (default=False)
:return: String object with marshalled object.
__ndr_pack_out__Nr   r   r   )r   r    r!   ndr_pack_out_fns       r
   ndr_pack_outr0   u   s5     f&8$?O9FBCCY<<r   c                 R    [        U SS5      nUc  [        SU -  5      eU" XUUS9  U $ )aH  Unpack the output of an NDR function object.

:param cls: Class of the object to unpack
:param data: Buffer to unpack
:param bigendian: use LIBNDR_FLAG_BIGENDIAN (default=False)
:param ndr64: use LIBNDR_FLAG_NDR64 (default=False)
:param allow_remaining: allows remaining data at the end (default=False)
:return: Unpacked object
__ndr_unpack_out__Nr   r&   r   )r   r   r    r!   r   ndr_unpack_out_fns         r
   ndr_unpack_outr4      s?      (<dC 9FBCCdu&57Mr   c                 J    [        U SS 5      nUc  [        SU -  5      eU" US9$ )N__ndr_print_out__r   r   r   )r   r   ndr_print_out_fns      r
   ndr_print_outr8      s4    v':DA9FBCC-88r   N)F)FF)FFF)__doc__r	   r   r   r   r#   r(   r,   r0   r4   r8    r   r
   <module>r;      s=   * G	 2&<$8=$9r   