oi*dZddlZddlZddlZddlZddlmZmZmZdZ dZ dZ dZ dZ d Zd Zd@d Zd ZdAdZdZdZdZdZdZdZd@dZdZedkrejdeZedddddd !ed"d#d$d%&ed"d'd()ed"d*d+)ed"d,d-)ed"d.d/)ed"d0d1)ed"d2d3)ed"d4d5)ed"d6d7d89ed"d:d;d<9ed"d=d>)e\Z Z!e!se"d?e!D]#Z#eje#D]Z$ee$e "dSdS)Bz.Stamp a Win32 binary with version information.N)BeginUpdateResourceEndUpdateResourceUpdateResourceii?ic|rdSdS)Nr)debugs GC:\PYTHON\Scheduler\python\Lib\site-packages\win32/lib/win32verstamp.py file_flagsr s q 1c|rdSdS)Nr )is_dlls r file_typers q 1rrctjdtt|dz|z|dz|z|dz|z|dz|ztt |t t|dddS)N lllllllllllllr)structpackVS_FFI_SIGNATUREVS_FFI_STRUCVERSIONVS_FFI_FILEFLAGSMASKr VOS_NT_WINDOWS32r)majminsubbuildr rs r VS_FIXEDFILEINFOr!%st ; c e c e5&  rcLt|dzdS)Nzutf-16le)strencodess r nulltermr(8s FFTM ! !* - --rrc\dt||zdzz }|dkr |t|zzS|S)Nr )len null_byte)r'extrals r pad32r/=s8 c!ffun !"A1uuIM"" HrcRtjdt|dz|zS)Nhr)rrr+r&s r addlenr2Es# ;sCFFQJ ' '! ++rct|}t|}tjdt|dzd}||z }t ||z}t |S)Nhhrr)r(rrr+r/r2keyvalueresults r Stringr9IsZ 3--C UOOE [s5zzQ 2 2F cMF 6]]U "F &>>rct|}tjddd}||z }|D]'\}}|t ||z }t |}(t |S)Nr4rr)r(rritemsr9r/r2)r6datar8kvs r StringTabler?Rso 3--C [q! $ $F cMF 1&A,,v &>>rctjddd}|tdz }t|t d|z}t |S)Nr4rrStringFileInfo040904E4)rrr(r/r?r2)r<r8s r rArA\sN [q! $ $F h'(((F 6]][T:: :F &>>rctjdt|d}|t|z }t ||z}t |S)Nr4r)rrr+r(r/r2r5s r VarrDdsG [s5zz1 - -F hsmmF 6]]U "F &>>rctjddd}|tdz }t|}|D]\}}|t ||z }t |S)Nr4rr VarFileInfo)rrr(r/r;rDr2)r<r8r=r>s r rFrFksm [q! $ $F h}%%%F 6]]F 1#a)) &>>rc4t||||||}tjdt|d} | t dz } t | |z} t | t |zt|z} t| S)Nr4rVS_VERSION_INFO) r!rrr+r(r/rArFr2) rrrr sdatavdatar rffir8s r rHrHts 3S% ? ?C [s3xx + +F h()))F 6]]S F 6]]^E22 2[5G5G GF &>>rc  t|d}|n,#t$r}td|d|Yd}~nd}~wwxYw|j} d|dD}|\}}}} n-#t ttf$rtd|zwxYw|j } | stj |} |j } | tj |} |j|j|j|| |j|j| |j|d } dt)jd d d i} |j}|Ktj |d d v}|j}|Jtj |dd}| D] \}}|d| |< t9|||| | | ||}t;|d}t=|dd |t?|d|j rtd|dSdS)Nza+bzWARNING: File z could not be opened - c,g|]}t|Sr )int).0is r zstamp..s///1A///r.z1--version must be a.b.c.d (all integers) - got %r) Comments CompanyNameFileDescription FileVersion InternalNameLegalCopyrightLegalTrademarksOriginalFilename ProductNameProductVersion Translationr4i irz .dll .pydr_drzStamped:)!opencloseOSErrorprintversionsplit IndexError TypeError ValueError internal_nameospathbasenameoriginal_filenamecommentscompany description copyright trademarksproductrrdllsplitextlowerr endswithr;rHrrrverbose)pathnameoptionsfwhyverbitsvmajvminvsubvbuildifnofnrIrJris_debugr=r>vsr1s r stampr}sG 5 ! !  GGG ExEEEEFFFFFFFFG /CT// #///#' dD&&  : .TTTLsRSSST  C )gx((  #C {gx(($".!+"-  E v{455 E[F ~!!(++A.4466+:K:K:M:MM}H7##H--a06688AA$GG 1 9E!H tT65%6 R RBHa((A1b!R   a$ j(#####$$s $' AA  A&B*B,__main__z%prog [options] filespec ...)rpz-qz--quiet store_falserxTz%don't print status messages to stdout)actiondestdefaulthelpr_z --versionz0.0.0.0zThe version number as m.n.s.b)rrz--dllzpStamp the file as a DLL. Default is to look at the file extension for .dll or .pyd.)rz--debugz!Stamp the file as a debug binary.z --productzThe product name to embed.z --companyzThe company name to embed.z --trademarkszThe trademark string to embed.z --commentszThe comments string to embed.z --copyrightz&The copyright message string to embed.z --descriptionDESCzThe description to embed.)metavarrz--internal-nameNAMEzdThe internal filename to embed. If not specified the base filename is used.z--original-filenamezgThe original filename to embed. If not specified the base filename is used.z9You must supply a file to stamp. Use --help for details.)rr)r)%__doc__globoptparserjr_win32verstamp_pywin32ctypesrrrrrrrr,r rr!r(r/r2r9r?rArDrFrHr__name__ OptionParserparser add_option parse_argsrzargserrorgr{r rr rs44    !        &...     ,,,8$8$8$v z "X "#Aw W W WF    4   K1P  @  b)*QRRR b+,LMMM b+,LMMM b./OPPP b,-LMMM  M L  OV2M  7   :%%''MGT R PQQQ 1  A E!W     ebr