
    m`j                        d dl Z d dlZd dlZd dlmZmZ d dlmZ d dlmZ  ee	          
                                j        d         Zedz  Zedz  Zedz  Zed	z  Zd
 ZddZd Zd Zedk    rS	  ej         e                       dS # e$ r0Z ede ej                    ej        d           Y dZ[dS dZ[ww xY wdS )    N)datetimetimezone)Path)Image   imagezlog/image-generation.jsonzimage-brief.jsonzlayout-manifest.jsonc                    t          j                    }|                     d          5 t          fdd          D ]}|                    |           	 d d d            n# 1 swxY w Y   |                                S )Nrbc                  .                          d          S )Ni   )read)handles   script/build-layout.py<lambda>zsha.<locals>.<lambda>   s    &++o">">     r   )hashlibsha256openiterupdate	hexdigest)pathdigestblockr   s      @r   shar      s    ^F	4 !F>>>>DD 	! 	!EMM%    	!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! s   ,A##A'*A'          c                 F   t          j        |                               d          }|                    |t           j        j                   t          j        d||          }|d         |j        z
  dz  }|d         |j        z
  dz  }|	                    |||f           |S )NRGBr      r   )
r   r   convert	thumbnail
ResamplingLANCZOSnewwidthheightpaste)sourcesize
backgroundr   canvasxys          r   fit_padr0      s    Jv&&u--E	OOD%*2333YudJ//F	a5;	1$A	a5<	A%A
LLAMr   c                     |                     d          }|                     |dd           |                    |           d S )Nz	.part.pngPNGT)formatoptimize)with_suffixsavereplace)r   r   temps      r   save_atomicr9   #   sE    K((D	JJtEDJ111LLr   c            	      4   t                                           rt                                          st          d          t	          j        t                               d                    } t	          j        t                              d                    }|                    d          }|                     d          dus0|                     d          |k    s|                     d          durt          d          t          d	z  t          d
z  t          dz  d}d |                     dg           D             }dddd}|	                                D ]\  }}|                    ||         i           }|                                rT|                    d          t          |          k    s.|                    d          dus|                    d          durt          d|           t          dz  }	t          dz  }
t          dz  }t          dz  }t          t          |d         d          |	           t          t          |d         d          |
           t          t          |d         d          |           t          j        d dd!          }t          j        |
                              d           5 }t          j        |                              d           5 }|                    |d"           |                    |d#           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          ||           i }|	df|
df|df|dffD ]\  }}t          j        |          5 }t%          |j                  |t)          |                    t,                              <   |j        |k    rt          d$|           	 d d d            n# 1 swxY w Y   i }g |                                |	|
||R D ]S}|                                j        t          |          d%|t)          |                    t,                              <   Ti d&d'd(d)ddd|d*d+d,d-d.d g d!d/d0d1d2dddd3dd4dd5t)          |d                             t,                              t)          |d                             t,                              d6d7t          |d                   t          |d                   d6d8t)          |                    t,                              d9t          |          d:d;d<d=d>d?d?d@d<dAd@d?dBd<ddCdDd?d@d<dAdE||ddFddGt5          j        t8          j                                                  dH}t>                               t	          j!        |dd'I          dJz   d           tE          t	          j!        dt)          |          ddKdL                     d?S )MNz&image generation receipt/brief missingzutf-8)encodingsource_canon_sha256verifiedTprovider_rendered_text_onlyz#image generation authority mismatchzintro-poster-master.pngzleft-panel-master.pngzright-panel-master.png)introleftrightc                      i | ]}|d          |S )asset ).0rows     r   
<dictcomp>zmain.<locals>.<dictcomp>6   s    JJJcGcJJJr   assetsintro_poster
left_panelright_panelr   text_rendered_by_providerpostprocessed_textFzmaster image mismatch: zintro-poster-1920x1080.pngzleft-panel-656x1080.pngzright-panel-656x1080.pngzlayout-1920x1080.pngr?   )  8  r@   )  rO   rA   r    r   )r   r   )  r   zdimension mismatch: )bytesr   versionr!   statusbuilt_pending_visual_qabuilder_locationagent_localbuilder_toolPillowr%   )name
resamplingmodebackground_rgb	operationz(local static-image resize/pad/paste only&local_static_image_composition_allowedtext_overlay_appliedvideo_created_or_modifiedsource_panel_paths)r@   rA   source_panel_sha256output_pathoutput_sha256r-   rN   rO   )r'   r(   regionsr   rP   )r.   r/   r'   r(   i`  )r.   r/   r'   r(   cleanrQ   )r@   centerrA   pending)requiredrT   r=   )
dimensionsrH   	visual_qa
created_at)ensure_asciiindent
)r=   layoutr`   )rn   )#
GENERATIONis_fileBRIEFRuntimeErrorjsonloads	read_textget	IMAGE_DIRitemsr   r9   r0   r   r&   r   r"   r)   listr+   strrelative_toPROJECTvaluesstatst_sizer   nowr   utc	isoformatMANIFEST
write_textdumpsprint)
generationbriefcanonmastersexpectedaliasesrZ   r   rF   posterr@   rA   rq   	composite
left_imageright_imagerk   expected_sizer   rH   receipts                        r   mainr   )   s    Eu}} ECDDDJ00'0BBCCJJu8899EII+,,E~~j!!--@U1V1VZ_1_1_cmcqcq  sP  dQ  dQ  Y]  d]  d]@AAA663355 G
 KJZ^^Hb-I-IJJJH&}UUGmmoo A A
dll74="--||~~ 	A!2!2c$ii!?!?377KfCgCgosCsCswzw~w~  @T  xU  xU  ]b  xb  xb???@@@ xb55F00D22E//F(,77@@@55t<<<(+66>>>	%|<<I	D			!	!%	(	( 0J
58I8I8Q8QRW8X8X 0\g
F+++Y///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 	6"""J!' 6{8KeU`Madjlxcyz B BmZ 	B9=ej9I9IJs4++G44556z]**"#@$#@#@AAA +	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B F@'..""@F@D@%@@@ e e;?99;;;NZ]^bZcZc1d1ds4##G,,--..1+ 	D 	u	
 	M 	Eeqeqeqrr 	? 	1$ 	$T 	 	$U 	s76?+F+Fw+O+O'P'P[^_fgn_o_{_{  }D  `E  `E  \F  \F  G  G 	GFO(<(<s7SZK[G\G\]] 	s6--g6677 	V  	DD11!" 	!cTBBa#PTUUa#FF
 
#, !"&)OOl8<00::<<3  G6 
7qIIIDP[bccc	$*$#f++W\]]lq
r
r
rsss1sI   (M4-L-!M-L1	1M4L1	5MMMAO//O3	6O3	__main__zLayout blocked: )file)r   )r   rv   sysr   r   pathlibr   PILr   __file__resolveparentsr   rz   rr   rt   r   r   r0   r9   r   __name__exit	Exceptionexcr   stderrrD   r   r   <module>r      s     



 ' ' ' ' ' ' ' '            
$x..
 
 
"
"
*1
-g	22
&&--       E E EP z   &&&SZ8888 s   1B C %B;;C 