
    hDu                        d dl mZmZmZ d dlmZ d dlmZmZ d dl	m
Z
mZmZmZmZmZmZmZmZmZ i d ddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2Zd3d4d5d6d7d8d9d:Zd; Z G d< d=e
          Z G d> d?e          Z G d@ dAe          Z G dB dCe          Z G dD dEe          Z G dF dGe          ZdHdIdJZdKdLdMdNZ G dO dPe          Z G dQ dRe          Z  G dS dTe          Z! eee d U            eee dVdWdX            eee!dU            G dY dZe          Z" G d[ d\e          Z# eee"d U            eee#dU            eee"dVdWdWX            G d] d^e          Z$ G d_ d`e          Z% eee$d U            eee%dU            eee$dVdWd X            G da dbe          Z& G dc dde          Z' eee&d U            eee'dU            eee&dVdWdX            G de dfe          Z( G dg dhe          Z) eee(d U            eee)dU            eee(dVdWdX           didjdkdldmdndoZ* G dp dqe          Z+ G dr dse          Z, eee+d U            eee,dU            eee+dVdWdtX            G du dve          Z- G dw dxe          Z. eee-d U            eee.dU            eee-dVdWdX            G dy dze          Z/ G d{ d|e          Z0 eee/d U            eee0dU            eee/dVdWd}X            G d~ de          Z1 G d de          Z2 eee1d U            eee2dU            eee1dVdWdX            G d de          Z3 G d de          Z4 eee3d U            eee4dU            eee3dVdWdX            G d de          Z5 G d de          Z6 eee5d U            eee6dU            eee5dVdWdX            G d de          Z7 G d de          Z8 eee7d U            eee8dU            eee7dVdWdX            G d de          Z9 G d de          Z: eee9d U            eee:dU            eee9dVdWdX            G d de          Z; G d de          Z< eee;d U            eee<dU            eee;dVdWdX            G d de          Z= G d de          Z> eee=d U            eee>dU            eee=dVdWdX            G d de          Z? G d de          Z@ eee?d U            eee@dU            eee?dVdWdX            G d de          ZA G d de          ZB eeeAd U            eeeBdU            eeeAdVdWdX            G d de          ZC G d de          ZD eeeCd U            eeeDdU            eeeCdVdWd
X            G d de          ZE G d de          ZF eeeEd U            eeeFdU            eeeEdVdWdX            G d de          ZG G d de          ZH eeeGd U            eeeHdU            eeeGdVdWdX            G d de          ZI G d de          ZJ eeeId U            eeeJdU            eeeIdVdWdX           dS )    )RPCRPC_CallObject_Name)	unhexlify)Packetbind_layers)
IntFieldIntEnumFieldFieldListField	LongField	XIntField
XLongFieldConditionalFieldPacketListFieldStrLenFieldPacketFieldNFS3_OK   NFS3ERR_PERM   NFS3ERR_NOENT   
NFS3ERR_IO   NFS3ERR_NXIO   NFS3ERR_ACCES   NFS3ERR_EXIST   NFS3ERR_XDEV   NFS3ERR_NODEV   NFS3ERR_NOTDIR   NFS3ERR_ISDIR   NFS3ERR_INVAL   NFS3ERR_FBIG   NFS3ERR_NOSPC   NFS3ERR_ROFS   NFS3ERR_MLINK?   NFS3ERR_NAMETOOLONGNFS3ERR_NOTEMPTYNFS3ERR_DQUOTNFS3ERR_STALENFS3ERR_REMOTENFS3ERR_BADHANDLENFS3ERR_NOT_SYNCNFS3ERR_BAD_COOKIENFS3ERR_NOTSUPPNFS3ERR_TOOSMALLNFS3ERR_SERVERFAULTNFS3ERR_BADTYPENFS3ERR_JUKEBOX)B   E   F   G   i'  i'  i'  i'  i'  i'  i'  i'  NF3REGNF3DIRNF3BLKNF3CHRNF3LNKNF3SOCKNF3FIFO)r   r         r   r      c                 N   t          | t                    rt          |           S t          | t                    r+dd                    t          t          |                     z  S t          | t                    r+dd                    t          t          |                     z  S | S )Nz(%s)z, z[%s])
isinstanceintocttuplejoinmaploctlistxs    U/mounts/lovelace/software/anaconda3/lib/python3.11/site-packages/scapy/contrib/nfs.pyrU   rU   ;   s    !S 1vv!U 0		#dA,,////!T 0		#dA,,////H    c                       e Zd ZdZd ZdS )	OIntFieldz(IntField child with octal representationc                 H    t          |                     ||                    S N)rU   i2h)selfpktrX   s      rY   i2reprzOIntField.i2reprG   s    DHHS!$$%%%rZ   N)__name__
__module____qualname____doc__rb    rZ   rY   r\   r\   E   s)        22& & & & &rZ   r\   c                      e Zd ZdZ edde           edd           edd           edd           edd           edd           ed	d           e	d
ddg edd          d            e
dd           e
dd           edd           edd           edd           edd           edd           edd          gZd ZdS )Fattr3File Attributestyper   modenlinkuidgidsizeusedrdev Nc                     dS Nr   rg   rW   s    rY   <lambda>zFattr3.<lambda>V   s    Q rZ   )
count_fromfsidfileidatime_satime_nsmtime_smtime_nsctime_sctime_nsc                 
    d|fS Nrs   rg   r`   ss     rY   extract_paddingzFattr3.extract_paddingb       1urZ   )rc   rd   re   namer
   ftype3r\   r	   r   r   r   fields_descr   rg   rZ   rY   ri   ri   K   sC       DVQ''	&!!	&!	&!QFHHR..;;	
 	
 	
 	
61
8QAQAQAQ%K*    rZ   ri   c                   r    e Zd ZdZ edd           eddd            eddd	           gZddZd Zd
S )File_ObjectzFile Objectlengthr   fhrZ   c                     | j         S r^   r   ra   s    rY   rv   zFile_Object.<lambda>j   s    sz rZ   length_fromfillc                     d| j         z
  dz  S NrL   r   r   s    rY   rv   zFile_Object.<lambda>k       !cj.A9M rZ   Nc                     |                                 rt          |          }|t          |          }|dd|z
  dz  z  }|| _        || _        || _        d S )N    rL   )isalnumr   lenr   r   r   )r`   new_filehandler   r   s       rY   setzFile_Object.setn   sf    !!## 	7&~66N>((F<q6zQ./D 			rZ   c                 
    d|fS r   rg   r   s     rY   r   zFile_Object.extract_padding|   r   rZ   )NN)	rc   rd   re   r   r	   r   r   r   r   rg   rZ   rY   r   r   f   s        D1D#+A+ABBBFC-M-MNNNK       rZ   r   c                       e Zd ZdZ edd           edd           edd           edd           edd          gZd Zd	S )
WCC_Attrrj   rp   r   r|   r}   r~   r   c                 
    d|fS r   rg   r   s     rY   r   zWCC_Attr.extract_padding   r   rZ   N)rc   rd   re   r   r   r	   r   r   rg   rZ   rY   r   r      sz        D	&!AQAQK    rZ   r   c                   .   e Zd ZdZ edd           ed e            e           edd           edd           e ed e	            e	          d            ed	d           e ed
 e
            e
          d            edd          gZd ZdS )File_From_Dir_PlusFilery   r   filenamecookieattributes_follow
attributesc                     | j         dk    S Nr   r   r   s    rY   rv   zFile_From_Dir_Plus.<lambda>       -2 rZ   handle_follows
filehandlec                     | j         dk    S r   )r   r   s    rY   rv   zFile_From_Dir_Plus.<lambda>       *a/ rZ   value_followsc                 
    d|fS r   rg   r   s     rY   r   z"File_From_Dir_Plus.extract_padding   r   rZ   N)rc   rd   re   r   r   r   r   r	   r   ri   r   r   r   rg   rZ   rY   r   r      s        D	(AJ{;;	(A$a((Kffhh7722	
 	
 	!1%%Kkkmm[AA//	
 	
 	!$$K"    rZ   r   c                       e Zd ZdZ edd           ed e            e           edd           edd          gZd Z	dS )	File_From_Dirr   ry   r   r   r   r   c                 
    d|fS r   rg   r   s     rY   r   zFile_From_Dir.extract_padding   r   rZ   N)
rc   rd   re   r   r   r   r   r	   r   r   rg   rZ   rY   r   r      ss        D	(AJ{;;	(A!$$	K    rZ   r   zDONT SETSETr   r   zDONT CHANGEzSERVER TIMEzCLIENT TIMEr   r   r   c                      e Zd ZdZ edde           e edd          d            edde           e edd          d            ed	de           e ed
d          d            edde           e e	dd          d            edde
           e edd          d            e edd          d            edde
           e edd          d            e edd          d           gZd ZdS )Sattr3Setattr3set_moder   rl   c                     | j         dk    S r   )r   r   s    rY   rv   zSattr3.<lambda>       3<1;L rZ   set_uidrn   c                     | j         dk    S r   )r   r   s    rY   rv   zSattr3.<lambda>       9I rZ   set_gidro   c                     | j         dk    S r   )r   r   s    rY   rv   zSattr3.<lambda>   r   rZ   set_sizerp   c                     | j         dk    S r   )r   r   s    rY   rv   zSattr3.<lambda>   r   rZ   	set_atimerz   c                     | j         dk    S ru   r   r   s    rY   rv   zSattr3.<lambda>       0B rZ   r{   c                     | j         dk    S ru   r   r   s    rY   rv   zSattr3.<lambda>       !1C rZ   	set_mtimer|   c                     | j         dk    S ru   r   r   s    rY   rv   zSattr3.<lambda>   r   rZ   r}   c                     | j         dk    S ru   r   r   s    rY   rv   zSattr3.<lambda>   r   rZ   c                 
    d|fS r   rg   r   s     rY   r   zSattr3.extract_padding   r   rZ   N)rc   rd   re   r   r
   
attrs_enumr   r\   r	   r   
times_enumr   r   rg   rZ   rY   r   r      s       DZJ//61--/L/LMMY:..%++-I-IJJY:..%++-I-IJJZJ//61--/L/LMM[!Z00HY""$B$B	
 	
 	HZ##%C%C	
 	
 	[!Z00HY""$B$B	
 	
 	HZ##%C%C	
 	
)K2    rZ   r   c                   >    e Zd ZdZ ed e            e          gZdS )GETATTR_CallzGETATTR Callr   Nrc   rd   re   r   r   r   r   rg   rZ   rY   r   r      s1        DL++--==KKKrZ   r   c                   r    e Zd ZdZ edde           e ed e            e          d           gZ	d Z
dS )GETATTR_ReplyzGETATTR Replystatusr   r   c                     | j         dk    S Nr   r   r   s    rY   rv   zGETATTR_Reply.<lambda>       
a rZ   c                     dS )N)rs   Nrg   r   s     rY   r   zGETATTR_Reply.extract_padding   s    xrZ   N)rc   rd   re   r   r
   nfsstat3r   r   ri   r   r   rg   rZ   rY   r   r      sm        DXq(++Kffhh77''	
 	
K    rZ   r   )mtypei rK   )programpversion	procedurec                   f    e Zd ZdZ ed e            e           ed e            e          gZdS )LOOKUP_CallzLOOKUP Calldirr   Nrc   rd   re   r   r   r   r   r   rg   rZ   rY   r   r      H        DE;;==+66J{;;KKKrZ   r   c                   *   e Zd ZdZ edde           e ed e            e          d            e e	dd          d            e ed e
            e
          d	            e	d
d           e ed e
            e
          d           gZdS )LOOKUP_ReplyzLOOKUP Replyr   r   r   c                     | j         dk    S r   r   r   s    rY   rv   zLOOKUP_Reply.<lambda>   r   rZ   af_filec                     | j         dk    S r   r   r   s    rY   rv   zLOOKUP_Reply.<lambda>      SZ1_ rZ   file_attributesc                 .    | j         dk    o
| j        dk    S Nr   r   )r   r   r   s    rY   rv   zLOOKUP_Reply.<lambda>  s    
a<CK1,< rZ   af_dirdir_attributesc                     | j         dk    S r   )r   r   s    rY   rv   zLOOKUP_Reply.<lambda>	  r   rZ   N)rc   rd   re   r   r
   r   r   r   r   r	   ri   r   rg   rZ   rY   r   r      s        DXq(++Kkkmm[AA''	
 	
 	)Q//1L1LMMK)6688V<<<<	
 	
 	1K(&&((F;;''	
 	
KKKrZ   r   c                       e Zd ZdZg ZdS )	NULL_CallzNFS NULL CallNrc   rd   re   r   r   rg   rZ   rY   r   r     s        DKKKrZ   r   c                       e Zd ZdZg ZdS )
NULL_ReplyzNFS NULL ReplyNr   rg   rZ   rY   r   r     s        DKKKrZ   r   c                   >    e Zd ZdZ ed e            e          gZdS )FSINFO_CallzFSINFO Callr   Nr   rg   rZ   rY   r   r   "  1        DL++--==KKKrZ   r   c                   f   e Zd ZdZ edde           edd           e ed e	            e	          d            e edd          d            e ed	d          d
            e edd          d            e edd          d            e edd          d            e edd          d            e edd          d            e e
dd          d            e edd          d            e edd          d            e edd          d           gZdS )FSINFO_ReplyzFSINFO Replyr   r   r   r   c                     | j         dk    S r   r   r   s    rY   rv   zFSINFO_Reply.<lambda>0  r   rZ   rtmaxc                     | j         dk    S r   r   r   s    rY   rv   zFSINFO_Reply.<lambda>2      3:? rZ   rtprefc                     | j         dk    S r   r   r   s    rY   rv   zFSINFO_Reply.<lambda>3      CJ!O rZ   rtmultc                     | j         dk    S r   r   r   s    rY   rv   zFSINFO_Reply.<lambda>4  r  rZ   wtmaxc                     | j         dk    S r   r   r   s    rY   rv   zFSINFO_Reply.<lambda>5  r   rZ   wtprefc                     | j         dk    S r   r   r   s    rY   rv   zFSINFO_Reply.<lambda>6  r  rZ   wtmultc                     | j         dk    S r   r   r   s    rY   rv   zFSINFO_Reply.<lambda>7  r  rZ   dtprefc                     | j         dk    S r   r   r   s    rY   rv   zFSINFO_Reply.<lambda>8  r  rZ   maxfilesizec                     | j         dk    S r   r   r   s    rY   rv   zFSINFO_Reply.<lambda>:      SZ1_ rZ   timedelta_sc                     | j         dk    S r   r   r   s    rY   rv   zFSINFO_Reply.<lambda>=      CJ!O rZ   timedelta_nsc                     | j         dk    S r   r   r   s    rY   rv   zFSINFO_Reply.<lambda>@  r  rZ   
propertiesc                     | j         dk    S r   r   r   s    rY   rv   zFSINFO_Reply.<lambda>C  r  rZ   N)rc   rd   re   r   r
   r   r	   r   r   ri   r   r   r   rg   rZ   rY   r   r   )  s       DXq(++$a((Kffhh7722	
 	
 	'1--/J/JKK(A..0K0KLL(A..0K0KLL'1--/J/JKK(A..0K0KLL(A..0K0KLL(A..0K0KLLImQ'')D)D	
 	
 	H]A&&(C(C	
 	
 	H^Q'')D)D	
 	
 	IlA&&(C(C	
 	
/KKKrZ   r   c                   >    e Zd ZdZ ed e            e          gZdS )PATHCONF_CallzPATHCONF Callr   Nr   rg   rZ   rY   r  r  O  1        DL++--==KKKrZ   r  c                      e Zd ZdZ edde           edd           e ed e	            e	          d            e edd          d            e ed	d          d
            e eddddd          d            e eddddd          d            e eddddd          d            e eddddd          d           g	Z
dS )PATHCONF_ReplyzPATHCONF Replyr   r   r   r   c                     | j         dk    S r   r   r   s    rY   rv   zPATHCONF_Reply.<lambda>]  r   rZ   linkmaxc                     | j         dk    S r   r   r   s    rY   rv   zPATHCONF_Reply.<lambda>_  r   rZ   name_maxc                     | j         dk    S r   r   r   s    rY   rv   zPATHCONF_Reply.<lambda>`      cjAo rZ   no_truncNOYESr   c                     | j         dk    S r   r   r   s    rY   rv   zPATHCONF_Reply.<lambda>c  r   rZ   chown_restrictedc                     | j         dk    S r   r   r   s    rY   rv   zPATHCONF_Reply.<lambda>g  r   rZ   case_insensitivec                     | j         dk    S r   r   r   s    rY   rv   zPATHCONF_Reply.<lambda>k  r   rZ   case_preservingc                     | j         dk    S r   r   r   s    rY   rv   zPATHCONF_Reply.<lambda>o  r   rZ   N)rc   rd   re   r   r
   r   r	   r   r   ri   r   rg   rZ   rY   r  r  V  so       DXq(++$a((Kffhh7722	
 	
 	)Q//1L1LMM*a002M2MNNLQDU(;(;<<''	
 	
 	L+QDU0C0CDD''	
 	
 	L+QDU0C0CDD''	
 	
 	L*A4E/B/BCC''	
 	
+KKKrZ   r  READLOOKUPMODIFYEXTENDDELETEEXECUTE)r   r   rL             c                   V    e Zd ZdZ ed e            e           edde          gZdS )ACCESS_CallzACCESS Callr   check_accessr   N)	rc   rd   re   r   r   r   r
   access_specsr   rg   rZ   rY   r6  r6    sB        DL++--==^Q55KKKrZ   r6  c            	           e Zd ZdZ edde           edd           e ed e	            e	          d            e e
dd          d           gZd	S )
ACCESS_ReplyzACCESS Replyr   r   r   r   c                     | j         dk    S r   r   r   s    rY   rv   zACCESS_Reply.<lambda>  r   rZ   access_rightsc                     | j         dk    S r   r   r   s    rY   rv   zACCESS_Reply.<lambda>      szQ rZ   N)rc   rd   re   r   r
   r   r	   r   r   ri   r   r   rg   rZ   rY   r:  r:    s        DXq(++$a((Kffhh7722	
 	
 	Ioq))+F+F	
 	

KKKrZ   r:  rL   c                       e Zd ZdZ ed e            e           edd           edd           edd           edd	          gZd
S )READDIRPLUS_CallzREADDIRPLUS Callr   r   r   verifierdircounti   maxcounti   N	rc   rd   re   r   r   r   r   r	   r   rg   rZ   rY   r@  r@    sm        DL++--==	(A	*a  S!!T""KKKrZ   r@  c                   @   e Zd ZdZ edde           edd           e ed e	            e	          d            e e
dd          d            e ed	d          d
            e edded           d            e edd          d           gZd ZdS )READDIRPLUS_ReplyzREADDIRPLUS Replyr   r   r   r   c                     | j         dk    S r   r   r   s    rY   rv   zREADDIRPLUS_Reply.<lambda>  r   rZ   rA  c                     | j         dk    S r   r   r   s    rY   rv   zREADDIRPLUS_Reply.<lambda>  s    #*/ rZ   r   c                     | j         dk    S r   r   r   s    rY   rv   zREADDIRPLUS_Reply.<lambda>      cjAo rZ   filesNc                     | j         dk    r8t          |          dk    s|j         dk    rt          |          dk    rt          nd S Nr   r   rL   )r   r   r   ra   lstcurremains       rY   rv   zREADDIRPLUS_Reply.<lambda>  sK    &)&71&<&<SQ#"3q"8"8Fa #"%) rZ   next_cls_cbc                     | j         dk    S r   r   r   s    rY   rv   zREADDIRPLUS_Reply.<lambda>  r   rZ   eofc                     | j         dk    S r   r   r   s    rY   rv   zREADDIRPLUS_Reply.<lambda>      q rZ   c                 
    d|fS r   rg   r   s     rY   r   z!READDIRPLUS_Reply.extract_padding  r   rZ   )rc   rd   re   r   r
   r   r	   r   r   ri   r   r   r   r   r   rg   rZ   rY   rF  rF    s-       DXq(++$a((Kffhh7722	
 	
 	Ij!$$&A&A	
 	
 	H_a((*E*E	
 	
 	O1* *   ('		
 		
 	%++-H-HII/K4    rZ   rF  c                       e Zd ZdZ ed e            e           edd           edd           eddddd	           ed
d           e	ddd            e	ddd           gZ
dS )
WRITE_Callz
WRITE Callr   offsetr   countstableUNSTABLESTABLEr   r   contentsrZ   c                     | j         S r^   r   r   s    rY   rv   zWRITE_Call.<lambda>  s    SZ rZ   r   r   c                     d| j         z
  dz  S r   r   r   s    rY   rv   zWRITE_Call.<lambda>  r   rZ   N)rc   rd   re   r   r   r   r   r	   r
   r   r   rg   rZ   rY   rZ  rZ    s        DL++--==	(A!XqjX">">??1J1G1GHHHFC-M-MNNNKKKrZ   rZ  c                   b   e Zd ZdZ edde           edd           e ed e	            e	          d            edd           e ed e
            e
          d	            e ed
d          d            e eddddd          d            e edd          d           gZdS )WRITE_ReplyzWRITE Replyr   r   	af_beforeattributes_beforec                     | j         dk    S r   re  r   s    rY   rv   zWRITE_Reply.<lambda>      * rZ   af_afterattributes_afterc                     | j         dk    S r   rj  r   s    rY   rv   zWRITE_Reply.<lambda>      ) rZ   r\  c                     | j         dk    S r   r   r   s    rY   rv   zWRITE_Reply.<lambda>  r   rZ   	committedr^  r_  r   c                     | j         dk    S r   r   r   s    rY   rv   zWRITE_Reply.<lambda>  r   rZ   rA  c                     | j         dk    S r   r   r   s    rY   rv   zWRITE_Reply.<lambda>      3:? rZ   Nrc   rd   re   r   r
   r   r	   r   r   r   ri   r   r   rg   rZ   rY   rd  rd    s       DXq(++a  K+XXZZBB**	
 	
 	QK*FFHHf==))	
 	
 	'1--/J/JKKLaZH)E)EFF''	
 	
 	Jz1%%'B'B	
 	
#KKKrZ   rd  rM   c                   j    e Zd ZdZ ed e            e           edd           edd          gZdS )COMMIT_CallzCOMMIT Callr   r[  r   r\  NrD  rg   rZ   rY   rv  rv    sO        DL++--==	(A!KKKrZ   rv  c                      e Zd ZdZ edde           edd           e ed e	            e	          d            edd           e ed e
            e
          d	            e ed
d          d           gZdS )COMMIT_ReplyzCOMMIT Replyr   r   re  rf  c                     | j         dk    S r   rh  r   s    rY   rv   zCOMMIT_Reply.<lambda>  ri  rZ   rj  rk  c                     | j         dk    S r   rm  r   s    rY   rv   zCOMMIT_Reply.<lambda>  rn  rZ   rA  c                     | j         dk    S r   r   r   s    rY   rv   zCOMMIT_Reply.<lambda>  rs  rZ   Nrt  rg   rZ   rY   rx  rx    s        DXq(++a  K+XXZZBB**	
 	
 	QK*FFHHf==))	
 	
 	Jz1%%'B'B	
 	
KKKrZ   rx  c                   |    e Zd ZdZ ed e            e           ed e            e           edd          gZdS )SETATTR_CallzSETATTR Callr   r   checkr   N)	rc   rd   re   r   r   r   r   r	   r   rg   rZ   rY   r}  r}  !  sW        DL++--==L&&((F33!KKKrZ   r}  c                       e Zd ZdZ edde           edd           e ed e	            e	          d            edd           e ed e
            e
          d	           gZd
S )SETATTR_ReplyzSETATTR Replyr   r   re  rf  c                     | j         dk    S r   rh  r   s    rY   rv   zSETATTR_Reply.<lambda>1  ri  rZ   rj  rk  c                     | j         dk    S r   rm  r   s    rY   rv   zSETATTR_Reply.<lambda>6  rn  rZ   Nrc   rd   re   r   r
   r   r	   r   r   r   ri   r   rg   rZ   rY   r  r  *  s        DXq(++a  K+XXZZBB**	
 	
 	QK*FFHHf==))	
 	
KKKrZ   r  c                   >    e Zd ZdZ ed e            e          gZdS )FSSTAT_CallzFSSTAT Callr   Nr   rg   rZ   rY   r  r  B  r   rZ   r  c                      e Zd ZdZ edde           edd           e ed e	            e	          d            e e
dd          d            e e
d	d          d
            e e
dd          d            e e
dd          d            e e
dd          d            e e
dd          d            e edd          d           g
ZdS )FSSTAT_ReplyzFSSTAT Replyr   r   r   r   c                     | j         dk    S r   r   r   s    rY   rv   zFSSTAT_Reply.<lambda>P  r   rZ   tbytesc                     | j         dk    S r   r   r   s    rY   rv   zFSSTAT_Reply.<lambda>R  r   rZ   fbytesc                     | j         dk    S r   r   r   s    rY   rv   zFSSTAT_Reply.<lambda>S  r   rZ   abytesc                     | j         dk    S r   r   r   s    rY   rv   zFSSTAT_Reply.<lambda>T  r   rZ   tfilesc                     | j         dk    S r   r   r   s    rY   rv   zFSSTAT_Reply.<lambda>U  r   rZ   ffilesc                     | j         dk    S r   r   r   s    rY   rv   zFSSTAT_Reply.<lambda>V  r   rZ   afilesc                     | j         dk    S r   r   r   s    rY   rv   zFSSTAT_Reply.<lambda>W  r   rZ   invarsecc                     | j         dk    S r   r   r   s    rY   rv   zFSSTAT_Reply.<lambda>X  r!  rZ   N)rc   rd   re   r   r
   r   r	   r   r   ri   r   r   rg   rZ   rY   r  r  I  sJ       DXq(++$a((Kffhh7722	
 	
 	8Q//1L1LMM8Q//1L1LMM8Q//1L1LMM8Q//1L1LMM8Q//1L1LMM8Q//1L1LMM*a002M2MNNKKKrZ   r  c            
           e Zd ZdZ ed e            e           ed e            e           edddddd	           e ed
 e	            e	          d            e e
dd          d           gZdS )CREATE_CallzCREATE Callr   r   create_modeN	UNCHECKEDGUARDED	EXCLUSIVEr   r   c                     | j         dk    S ru   r  r   s    rY   rv   zCREATE_Call.<lambda>m      1, rZ   rA  r   c                     | j         dk    S ru   r  r   s    rY   rv   zCREATE_Call.<lambda>p  s    3?a3G rZ   )rc   rd   re   r   r   r   r   r
   r   r   r   r   rg   rZ   rY   r  r  c  s        DE;;==+66J{;;]Dk.7.9+; +; 	< 	< 	Kffhh77,,	
 	
 	Jz1%%'G'G	
 	
KKKrZ   r  c                      e Zd ZdZ edde           e edd          d            e ed e	            e	          d            e edd          d	            e ed
 e
            e
          d            edd           e ed e            e          d            edd           e ed e
            e
          d           g	ZdS )CREATE_ReplyzCREATE Replyr   r   r   c                     | j         dk    S r   r   r   s    rY   rv   zCREATE_Reply.<lambda>z  r>  rZ   r   c                 .    | j         dk    o
| j        dk    S r   r   r   r   s    rY   rv   zCREATE_Reply.<lambda>~      
aCC,>!,C rZ   r   c                     | j         dk    S r   r   r   s    rY   rv   zCREATE_Reply.<lambda>      #*/ rZ   r   c                 .    | j         dk    o
| j        dk    S r   r   r   r   s    rY   rv   zCREATE_Reply.<lambda>      
aFC,AQ,F rZ   re  dir_attributes_beforec                     | j         dk    S r   rh  r   s    rY   rv   zCREATE_Reply.<lambda>  ri  rZ   rj  dir_attributes_afterc                     | j         dk    S r   rm  r   s    rY   rv   zCREATE_Reply.<lambda>  rn  rZ   Nrc   rd   re   r   r
   r   r   r	   r   r   ri   r   r   rg   rZ   rY   r  r  u  sU       DXq(++H%q))+F+F	
 	
 	Kkkmm[AACC	
 	
 	H(!,,.I.I	
 	
 	Kffhh77FF	
 	
 	a  K/XFF**	
 	
 	QK.&AA))	
 	
-KKKrZ   r  r2  c                   f    e Zd ZdZ ed e            e           ed e            e          gZdS )REMOVE_CallzREMOVE Callr   r   Nr   rg   rZ   rY   r  r    r   rZ   r  c                       e Zd ZdZ edde           edd           e ed e	            e	          d            edd           e ed e
            e
          d	           gZd
S )REMOVE_ReplyzREMOVE Replyr   r   re  rf  c                     | j         dk    S r   rh  r   s    rY   rv   zREMOVE_Reply.<lambda>  ri  rZ   rj  rk  c                     | j         dk    S r   rm  r   s    rY   rv   zREMOVE_Reply.<lambda>  rn  rZ   Nr  rg   rZ   rY   r  r    s        DXq(++a  K+XXZZBB**	
 	
 	QK*FFHHf==))	
 	
KKKrZ   r     c                       e Zd ZdZ ed e            e           edd           edd           edd          gZ	dS )READDIR_CallzREADDIR Callr   r   r   rA  r\  N)
rc   rd   re   r   r   r   r   r   r	   r   rg   rZ   rY   r  r    s^        DL++--==	(A
:q!!!	KKKrZ   r  c                   :   e Zd ZdZ edde           edd           e ed e	            e	          d            e e
dd          d            e ed	d          d
            e edded           d            e edd          d           gZdS )READDIR_ReplyzREADDIR Replyr   r   r   r   c                     | j         dk    S r   r   r   s    rY   rv   zREADDIR_Reply.<lambda>  r   rZ   rA  c                     | j         dk    S r   r   r   s    rY   rv   zREADDIR_Reply.<lambda>  rs  rZ   r   c                     | j         dk    S r   r   r   s    rY   rv   zREADDIR_Reply.<lambda>  rJ  rZ   rK  Nc                     | j         dk    r8t          |          dk    s|j         dk    rt          |          dk    rt          nd S rM  )r   r   r   rN  s       rY   rv   zREADDIR_Reply.<lambda>  sJ    !$!2a!7!7SQ#"3q"8"8Fa %) rZ   rR  c                     | j         dk    S r   r   r   s    rY   rv   zREADDIR_Reply.<lambda>  r   rZ   rU  c                     | j         dk    S r   r   r   s    rY   rv   zREADDIR_Reply.<lambda>  rW  rZ   )rc   rd   re   r   r
   r   r	   r   r   ri   r   r   r   r   rg   rZ   rY   r  r    s       DXq(++$a((Kffhh7722	
 	
 	Jz1%%'B'B	
 	
 	H_a((*E*E	
 	
 	O}* *   ('	) 	) 	%++-H-HII-KKKrZ   r  r3  c                       e Zd ZdZ ed e            e           ed e            e           ed e            e           ed e            e          gZdS )RENAME_CallzRENAME Calldir_from	name_fromdir_toname_toNr   rg   rZ   rY   r  r    sv        DJ{;;K<<Hkkmm[99I{{}}k::	KKKrZ   r  c                   ~   e Zd ZdZ edde           edd           e ed e	            e	          d            edd           e ed e
            e
          d	            ed
d           e ed e	            e	          d            edd           e ed e
            e
          d           g	ZdS )RENAME_ReplyzRENAME Replyr   r   af_before_fattributes_before_fc                     | j         dk    S r   )r  r   s    rY   rv   zRENAME_Reply.<lambda>  r  rZ   
af_after_fattributes_after_fc                     | j         dk    S r   )r  r   s    rY   rv   zRENAME_Reply.<lambda>      !+ rZ   af_before_tattributes_before_tc                     | j         dk    S r   )r  r   s    rY   rv   zRENAME_Reply.<lambda>  r  rZ   
af_after_tattributes_after_tc                     | j         dk    S r   )r  r   s    rY   rv   zRENAME_Reply.<lambda>  r  rZ   Nr  rg   rZ   rY   r  r    s%       DXq(++""K-xxzz8DD,,	
 	
 	q!!K,ffhh??++	
 	
 	""K-xxzz8DD,,	
 	
 	q!!K,ffhh??++	
 	
%KKKrZ   r     c                       e Zd ZdZ ed e            e           ed e            e           ed e            e          gZdS )	LINK_Callz	LINK Callr   link_dir	link_nameNr   rg   rZ   rY   r  r    s_        DL++--==J{;;K<<KKKrZ   r  c                   *   e Zd ZdZ edde           edd           e ed e	            e	          d            edd           e ed e
            e
          d	            ed
d           e ed e	            e	          d           gZdS )
LINK_Replyz
LINK Replyr   r   r   r   c                     | j         dk    S r   )r   r   s    rY   rv   zLINK_Reply.<lambda>"  s    q( rZ   af_link_beforelink_attributes_beforec                     | j         dk    S r   )r  r   s    rY   rv   zLINK_Reply.<lambda>'  r   rZ   af_link_afterlink_attributes_afterc                     | j         dk    S r   )r  r   s    rY   rv   zLINK_Reply.<lambda>,  s    )Q. rZ   N)rc   rd   re   r   r
   r   r	   r   r   ri   r   r   rg   rZ   rY   r  r    s        DXq(++AK)6688V<<((	
 	
 	!1%%K0((**hGG//	
 	
 	!$$K/6BB..	
 	
KKKrZ   r     c                   f    e Zd ZdZ ed e            e           ed e            e          gZdS )
RMDIR_Callz
RMDIR Callr   r   Nr   rg   rZ   rY   r  r  6  sH        DE;;==+66J{;;KKKrZ   r  c                       e Zd ZdZ edde           edd           e ed e	            e	          d            edd           e ed e
            e
          d	           gZd
S )RMDIR_ReplyzRMDIR Replyr   r   re  rf  c                     | j         dk    S r   rh  r   s    rY   rv   zRMDIR_Reply.<lambda>E  ri  rZ   rj  rk  c                     | j         dk    S r   rm  r   s    rY   rv   zRMDIR_Reply.<lambda>J  rn  rZ   Nr  rg   rZ   rY   r  r  >  s        DXq(++a  K+XXZZBB**	
 	
 	QK*FFHHf==))	
 	
KKKrZ   r  c                   >    e Zd ZdZ ed e            e          gZdS )READLINK_CallzREADLINK Callr   Nr   rg   rZ   rY   r  r  T  r  rZ   r  c            
           e Zd ZdZ edde           edd           e ed e	            e	          d            e ed e
            e
          d           gZd	S )
READLINK_ReplyzREADLINK Replyr   r   r   r   c                     | j         dk    S r   r   r   s    rY   rv   zREADLINK_Reply.<lambda>b  r   rZ   r   c                     | j         dk    S r   r   r   s    rY   rv   zREADLINK_Reply.<lambda>f  r   rZ   N)rc   rd   re   r   r
   r   r	   r   r   ri   r   r   rg   rZ   rY   r  r  [  s        DXq(++$a((Kffhh7722	
 	
 	K
KKMM;??''	
 	
KKKrZ   r  c                   j    e Zd ZdZ ed e            e           edd           edd          gZdS )	READ_Callz	READ Callr   r[  r   r\  NrD  rg   rZ   rY   r  r  r  sO        DL++--==	(A!KKKrZ   r  c                   j   e Zd ZdZ edde           edd           e ed e	            e	          d            e edd          d            e ed	d          d
            e edd          d            e e
ddd           d            e e
ddd           d           gZdS )
READ_Replyz
READ Replyr   r   r   r   c                     | j         dk    S r   r   r   s    rY   rv   zREAD_Reply.<lambda>  r   rZ   r\  c                     | j         dk    S r   r   r   s    rY   rv   zREAD_Reply.<lambda>  r   rZ   rU  c                     | j         dk    S r   r   r   s    rY   rv   zREAD_Reply.<lambda>  rW  rZ   data_lengthc                     | j         dk    S r   r   r   s    rY   rv   zREAD_Reply.<lambda>  r  rZ   datarZ   c                     | j         S r^   r  r   s    rY   rv   zREAD_Reply.<lambda>  s    S_ rZ   r   c                     | j         dk    S r   r   r   s    rY   rv   zREAD_Reply.<lambda>  r   rZ   r   c                     d| j         z
  dz  S r   r  r   s    rY   rv   zREAD_Reply.<lambda>  s    a#/6IQ5N rZ   c                     | j         dk    S r   r   r   s    rY   rv   zREAD_Reply.<lambda>  r   rZ   N)rc   rd   re   r   r
   r   r	   r   r   ri   r   r   rg   rZ   rY   r  r  {  s8       DXq(++$a((Kffhh7722	
 	
 	'1--/J/JKK%++-H-HIIH]A&&(C(C	
 	
 	K1L1LMMM''	
 	
 	K)N)N   ('		
 	
!KKKrZ   r  c                       e Zd ZdZ ed e            e           ed e            e           ed e            e          gZdS )
MKDIR_Callz
MKDIR Callr   dir_namer   N	rc   rd   re   r   r   r   r   r   r   rg   rZ   rY   r  r    s_        DE;;==+66J{;;L&&((F33KKKrZ   r  c                      e Zd ZdZ edde           e edd          d            e ed e	            e	          d            e edd          d	            e ed
 e
            e
          d            edd           e ed e            e          d            edd           e ed e
            e
          d           g	ZdS )MKDIR_ReplyzMKDIR Replyr   r   r   c                     | j         dk    S r   r   r   s    rY   rv   zMKDIR_Reply.<lambda>  r>  rZ   r   c                 .    | j         dk    o
| j        dk    S r   r  r   s    rY   rv   zMKDIR_Reply.<lambda>  r  rZ   r   c                     | j         dk    S r   r   r   s    rY   rv   zMKDIR_Reply.<lambda>  r  rZ   r   c                 .    | j         dk    o
| j        dk    S r   r  r   s    rY   rv   zMKDIR_Reply.<lambda>  r  rZ   re  r  c                     | j         dk    S r   rh  r   s    rY   rv   zMKDIR_Reply.<lambda>  ri  rZ   rj  r  c                     | j         dk    S r   rm  r   s    rY   rv   zMKDIR_Reply.<lambda>  rn  rZ   Nr  rg   rZ   rY   r  r    sU       DXq(++H%q))+F+F	
 	
 	Kkkmm[AACC	
 	
 	H(!,,.I.I	
 	
 	Kffhh77FF	
 	
 	a  K/XFF**	
 	
 	QK.&AA))	
 	
-KKKrZ   r  	   c                       e Zd ZdZ ed e            e           ed e            e           ed e            e           ed e            e          gZdS )SYMLINK_CallzSYMLINK Callr   r  r   r  Nr  rg   rZ   rY   r  r    sv        DE;;==+66J{;;L&&((F33K<<	KKKrZ   r  c                      e Zd ZdZ edde           e edd          d            e ed e	            e	          d            e edd          d	            e ed
 e
            e
          d            edd           e ed e            e          d            edd           e ed e
            e
          d           g	ZdS )SYMLINK_ReplyzSYMLINK Replyr   r   r   c                     | j         dk    S r   r   r   s    rY   rv   zSYMLINK_Reply.<lambda>  r>  rZ   r   c                 .    | j         dk    o
| j        dk    S r   r  r   s    rY   rv   zSYMLINK_Reply.<lambda>  r  rZ   r   c                     | j         dk    S r   r   r   s    rY   rv   zSYMLINK_Reply.<lambda>  r  rZ   r   c                 .    | j         dk    o
| j        dk    S r   r  r   s    rY   rv   zSYMLINK_Reply.<lambda>  r  rZ   re  r  c                     | j         dk    S r   rh  r   s    rY   rv   zSYMLINK_Reply.<lambda>  ri  rZ   rj  r  c                     | j         dk    S r   rm  r   s    rY   rv   zSYMLINK_Reply.<lambda>  rn  rZ   Nr  rg   rZ   rY   r  r    sU       DXq(++H%q))+F+F	
 	
 	Kkkmm[AACC	
 	
 	H(!,,.I.I	
 	
 	Kffhh77FF	
 	
 	a  K/XFF**	
 	
 	QK.&AA))	
 	
-KKKrZ   r  
   N)Kscapy.contrib.oncrpcr   r   r   binasciir   scapy.packetr   r   scapy.fieldsr	   r
   r   r   r   r   r   r   r   r   r   r   rU   r\   ri   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r8  r6  r:  r@  rF  rZ  rd  rv  rx  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rg   rZ   rY   <module>r     s   < ; ; ; ; ; ; ; ; ;       , , , , , , , ,                       y~  |	
 ~            !" #$ 	 ;  B 
 
  & & & & & & & &    V   6    &   4    v          .
 
 
 
 
F 
 
 
 &&
=]CC
    V   >    6       F    CQ ' ' ' ' lFQ!    Ca ( ( ( (    &       6   * CA & & & & CQ ' ' ' ' Hk6A K K K K       
       
 C! $ $ $ $ C1 % % % % Hi!q I I I I    &       6   > CA & & & & CQ ' ' ' ' k6A   
    F       V   < Ca ( ( ( ( Cq ) ) ) ) mVa2   
      &       6    CA & & & & CQ ' ' ' ' Hk6A K K K K    v          @ C! + + + + C"! , , , , b   

 
 
 
 
 
 
 
    &   2 C1 % % % % CA & & & & Hj&1 J J J J    &       6   ( CA & & & & CQ ' ' ' ' k6A   
    6       F   " CQ ' ' ' ' Ca ( ( ( ( lFQ!   
    &       6   & CA & & & & CQ ' ' ' ' k6A   
    &   $    6   > CA & & & & CQ ' ' ' ' Hk6A K K K K    &       6   " CA & & & & CQ ' ' ' ' k6A   
    6       F   8 CQ ' ' ' ' Ca ( ( ( ( lFQ"   
    &       6   6 CA & & & & CQ ' ' ' ' k6A   
              , C! $ $ $ $ C1 % % % % Hi!r J J J J           &   " C1 % % % % CA & & & & Hj&1 K K K K    F       V     Ca ( ( ( ( Cq ) ) ) ) mVa1   
              6 C! $ $ $ $ C1 % % % % Hi!q I I I I           &   > C1 % % % % CA & & & & Hj&1 J J J J    6       F   > CQ ' ' ' ' Ca ( ( ( ( lFQ"     rZ   