
    KZjQ              
          d dl mZ d dlZd dlZd dlZd dlZd dlZdZ ed          ez  Zedz  Z	e	dz  Z
e	dz  ZdZg d	Zd
Z eej                  dk    r ed          e                                r ed          d Zd ej        dd         D             Zg dZg Zg Z e eee                    D ]A\  Z\  Z\  ZZ ee          Zee         reee         k    r ede            ej        e                                           Z! ej"        d e#e
dz             e#e           e#e           e#e          gdd          Z$ ej        e$j%                  Z&e$j'        s2e&(                    d          dk    se!(                    d          ek    r ede de&           e)                    e!d                    e*                     e#e          eeegedk    rendd           Cededg d dd!eed"	Z+e,                     ej-        e+d#d$%          d&z               ee          Zi Z.d'd e#e
d(z             e#e          gfd)d e#e
d*z             e#e          gfd+d e#e
d,z             e#e           e#e	d-z            gfgZ/e/D ]\  Z0Z1 ej"        e1dd          Z$ ej        e$j%                  e.e0<   e$j'        se.e0         (                    d          dk    rZd.eee.e0d/Z2e	d0z  ,                     ej-        e2d#d$%          d&z               e3 ej-        e2d#1                      ed          dee+d2         ee.ej        4                    ej5        j6                  7                                d3Z2e	d0z  ,                     ej-        e2d#d$%          d&z               e3 ej-        e2d#1                     dS )4    PathNgacmai_20260717_184527z(/data/video-pipeline/GacMaiAudio/project	artifactsscriptsz!story_package_candidate_rev1.json@6648cdf5473d3bf72c759726357ecfcf480feea01424569e866fced1abb6e7e9)@02a7e0a958bbf1195edba0f30d6781dd48562d8b3fa4276e6b516552c5965027N@f6ae5b1c05bbcaa48c26ef9c9c0cf07ca653f981074ba8561076682ffcb043fd@10fa37e411b6a6605be99aaa3a5aff92789ba8b77e1bbbf358b8c3642100f18b   z(usage: assemble_story_rev1 B1 B2_REV1 B3zrev1 already existsc                 r    t          j        |                                                                           S )N)hashlibsha256
read_bytes	hexdigest)ps    h/data/video-pipeline/GacMaiAudio/project/gacmai_20260717_184527/artifacts/scripts/assemble_story_rev1.pyshar      s%    '.00::<<<    c                 ,    g | ]}t          |          S  r   ).0xs     r   
<listcomp>r      s    %%%1tAww%%%r      ))r   r   )      )	      zprotected batch changed python3zvalidate_batch.pyT)capture_outputtextstatuspassedoutline_sha256zbatch gate failed z: parts)pathr   
part_rangeparent_sha256u   Mùa Nở Không Có Tên   Nguyễn Lam Chi)r*   u   Trần Vĩnh Phúcu   Lê Thu Nguyệtu   Phạm Hữu Tườngu   Đỗ Khánh Anu   Vũ Minh Triết@f1b1e90e7000b482a11f7b0475b8091d697e3db70cc16928c4bbc3212d256938)	
project_idtitler%   povnamed_charactersrevisionparent_story_sha256sourcesr&   F   )ensure_asciiindent

validationzvalidate_story.pyduplicationzaudit_duplication.py	alignmentzaudit_story_alignment.pyzlocked_outline_canonical.jsonfailed)r#   story_sha256r2   checksfailed_gatez story_assembly_receipt_rev1.json)r4   r1   )r#   r;   r1   r2   r<   
created_at)8pathlibr   jsonr   
subprocesssysdatetimePRASOUTOUTLINEEXPECTEDPARENT_MIDDLElenargv
SystemExitexistsr   pathsrangesr2   r&   	enumeratezipidxr   abhloads	read_textdrunstrcpstdoutv
returncodegetextendappendstory
write_textdumpsr<   cmdsnamecmdrecprintnowtimezoneutc	isoformatr   r   r   <module>rp      sf         + + + + + + + + + + + + + + + + + + + +TT"LMMaO1RST_R_PQbcdmbm`ars  uX  sXnq  ac  Y`  my  my  my  dl  HJ  zG3sx==!**%OPPP::<< 7jj!6777 < < <%%%%%-A-A-Af"'SUUYss50011 J JMC	5Aa3q66SMWa#&&ZZ8VST8V8V-W-W'W4:akkmm
	##a@S>S:T:TUXUXYZU[U[\_\_`a\b\bcfcfghcici/jz~  EI  !J  !J  !JR  MW  MQ  MW  XZ  Xa  Mb  Mb  KLM  CQUU8__h..!%%8H2I2I72R2RYcYc  eByz  eB  eB~  eB  eB  ZC  ZC  TCaj'..QQRSTPUwz|}w}w}fsfs  DH  *I  *I  J  J  J  J97Yk  @y  @y  @y  EF  ]_  jq  z  @  @  AD  AO  AO  PZ  PT  PZ  [`  ns  {|  P}  P}  P}  ~B  PB  AC  AC  AC  FI  FI  JM  FN  FN  DE  VX  OUYss1%8#899##c((CDmU^_b_bcde{c{_|_|  ~A  ~A  BE  ~F  ~F  UG  FH  JU  W`  ad  ad  ef  gA  eA  aB  aB  CF  CF  GJ  CK  CK  LO  LO  PQ  Rq  Pq  Lr  Lr  Vs  It  u B BHDJN3d555:4:biCXCXfTlM BVD\%%h//99GVZ^__#ab  dF  bF  aR  aR  S]  SW  S]  ^a  ot  |}  S~  S~  S~  C  SC  aD  aD  aD  EJ  EJ  KU  KO  KU  VY  gl  Km  Km  Km  En  En  En  u  u  @A  uB  uB  oB :aeDY>Zelv|  KS  K\  K`  K`  ai  ar  av  Kw  Kw  KA  KA  KC  KC  D  D  FG  Hj  Fj  Ev  Ev  wA  w{  wA  BE  SX  `a  wb  wb  wb  cg  wg  Eh  Eh  Eh  in  in  oy  os  oy  z}  KP  oQ  oQ  oQ  iR  iR  iR  iR  iRr   