
    Ȃj]                        d Z ddlmZ ddlZddlZddlZddlZddlmZ ddl	m
Z
  ee      j                  Zej                  dz  Z ed      Zdd	hZdd
ZddZddZddZedk(  r e e             y)z@Independent verifier for the sealed cleanup-v5 evidence package.    )annotationsN)Path)Anyz5task26-post-lifecycle-cleanup-v4-4a6c7ee5-st_01a00e68zo/home/cube/.hermes/profiles/dualcoachtest/data/post-lifecycle-cleanup-archives/task26-current-4a6c7ee5-20260817inventory.json	SEAL.jsonc                T    t        j                  | dd      dz   j                         S )NT,:	sort_keys
separators
)jsondumpsencode)values    c.omo/evidence/task26/task26-post-lifecycle-cleanup-v5-4a6c7ee5-st_01a00ed7/verify_successor_seal.pycanonr      s#    JJuDtKSSUU    c                d    t        j                  | j                               j                         S )N)hashlibsha256
read_bytes	hexdigest)paths    r   shar      s!    >>$//+,6688r   c           
     |   g }t        j                  | d      D ]i  \  }}}|j                          |j                          |D ]  }t        |      |z  }|j	                         }t        j                  |j                        sJ |       |j                  |j                  |       j                         dt        j                  |j                        dd        |D ]  }t        |      |z  }|j	                         }t        j                  |j                        sJ |       |j                  |j                  |       j                         dt        j                  |j                        dt        |      d        l t        j                  t!        |            j#                         t%        |      fS )NF)followlinksD04o)r   typemodeF)r   r"   r#   r   )oswalksortr   lstatstatS_ISDIRst_modeappendrelative_toas_posixS_IMODES_ISREGr   r   r   r   r   len)rootrowsbasedirsfilesnamer   sts           r   tree_digestr9      sx   !#DWWTu==dE		

D:$DB<<

+1T1+KK!1!1$!7!@!@!BC\`\h\hikisis\tux[y{|	 
 D:$DB<<

+1T1+KK!1!1$!7!@!@!BC\`\h\hikisis\tux[y  GJ  KO  GP  Q  R	  > >>%+&002CI==r   c                    t         dz  j                         } t        j                  |       }t        j                  t         dz  j	                               }t         j                         D ch c]  }|j                         s|j                  ! c}t        z
  }|d   D ch c]  }|d   	 }}||k(  sJ ||z
  ||z
  f       |d   D ]z  }t         |d   z  }|j                         j                  |d   k(  sJ t        j                  |j                         j                        d|d   k(  sJ t        |      |d   k(  rzJ  |d	   t        j                  t!        |d               j#                         k(  sJ |d
   t        j                  |       j#                         k(  sJ |d   |d	   k(  sJ |d   t        t         dz        k(  sJ |d   t        t$        dz        k(  sJ t'        t(              \  }}|d   |k(  sJ t        j                  t         dz  j	                               d   du sJ t        j                  t         dz  j	                               d   d   d   g k(  sJ ddt+        |d         |||d   |d   ddt+        |d         dz   d
}	t-        t        j.                  |	dd             yc c}w c c}w )Nr   r   entriesr   sizer!   r#   r   root_sha256inventory_sha256evidence_root_sha256controller_sha256zcleanup_controller.pyv4_seal_sha256archive_root_sha256zdry-run-receipt.jsoncleanup_replayedFz$controller-verification-receipt.json	poststatesession_process_prooftarget_processesz0task26-cleanup-v5-successor-seal-verification-v1PASST   )
schemastatusevidence_entriesarchive_entriesrB   rA   r@   process_finding_closedrC   checksr	   r   r   )ROOTr   r   loads	read_textiterdiris_filer7   EXCLUDEDr)   st_sizer/   r+   r   r   r   r   r   V4r9   ARCHIVEr1   printr   )
inventory_raw	inventorysealr   actualrowclaimedarchive_sharL   results
             r   mainra   -   s4   ,,88:M

=)I::tk)4467D$(LLNENDdllndiiNEPF&/	&:;&:ss6{&:G;WBv/61ABB#c&k!yy{""c&k111,,tyy{223C8S[HHH4yCM)))	 $
 ]#w~~eIi<P6Q'R'\'\'^^^^"#w~~m'D'N'N'PPPP&'9]+CCCC#$D3J,J(KKKK !Sk)9%::::#.w#7 K%&+555::t44??ABCUVZ____::tDDOOQRS^_`wx  zL  M  QS  S  S  SJV\ruv  AJ  wK  sL  ap  IT  hl  m}  h~  UY  Zm  Un  JN  di  ux  yB  CL  yM  uN  QS  uS  TF	$**Vt

CD' F;s   -J>J>"K__main__)r   r   returnbytes)r   r   rc   str)r2   r   rc   ztuple[str, int])rc   int)__doc__
__future__r   r   r   r%   r)   pathlibr   typingr   __file__parentrO   rV   rW   rT   r   r   r9   ra   __name__
SystemExit r   r   <module>rp      s    F "   	   H~	[[JJ
  A  Bk*V9>$4 z
TV
 r   