§
    Ú ¢jí  ã                  ó„   — d Z ddlmZ ddlZddlmZ ddlmZ  ed¬¦  «         G d	„ d
¦  «        ¦   «         Zdd„Z	dd„Z
dS )z5PoE Bundles2 container header + 256 KiB Oodle chunks.é    )ÚannotationsN)Ú	dataclassé   )Údecompress_chunkT)Úfrozenc                  ó`   — e Zd ZU 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S )ÚBundleHeaderÚintÚuncompressed_sizeÚtotal_payload_sizeÚhead_payload_sizeÚencoderÚblock_countÚgranularityztuple[int, ...]Úblock_sizesÚpayload_offsetN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    ú>C:\Projects\AutoPOE2\src\assistant_tool\ggpk_extract\bundle.pyr	   r	   
   so   € € € € € € àÐÐÑØÐÐÑØÐÐÑØ€L€L�LØÐÐÑØÐÐÑØ Ð Ð Ñ ØÐÐÑÐÐr   r	   ÚblobÚbytesÚreturnc                óJ  — t          | ¦  «        dk     rt          d¦  «        ‚t          j        d| d¦  «        \  }}}| dd|z   …         }t          |¦  «        dk     rt          d¦  «        ‚t          j        d|d¦  «        d         }t          j        d|d¦  «        d         }t          j        d|d	¦  «        d         }t          j        d
d|z  z   |d¦  «        }t          |¦  «        |k    rt          d¦  «        ‚t	          ||||||t          |¦  «        d|z   ¬¦  «        S )Né   zbundle too small for headerz<IIIr   é0   zbundle head payload truncatedz<Ié   é   ú<ÚIzbundle block_sizes truncated)r   r   r   r   r   r   r   r   )ÚlenÚ
ValueErrorÚstructÚunpack_fromr	   Útuple)	r   r   r   r   Úinnerr   r   r   Úsizess	            r   Úparse_bundle_headerr+      s8  € Ý
ˆ4�y„y�2‚~€~ÝÐ6Ñ7Ô7Ð7Ý?EÔ?QÐRXÐZ^Ð`aÑ?bÔ?bÑ<ÐÐ)Ð+<Ø��bÐ,Ñ,Ð,Ô-€EÝ
ˆ5�z„z�B‚€ÝÐ8Ñ9Ô9Ð9ÝÔ   u¨aÑ0Ô0°Ô3€GÝÔ$ T¨5°"Ñ5Ô5°aÔ8€KÝÔ$ T¨5°"Ñ5Ô5°aÔ8€KÝÔ˜s S¨;Ñ%6Ñ6¸¸rÑBÔB€EÝ
ˆ5�z„z�[Ò Ð ÝÐ7Ñ8Ô8Ð8ÝØ+Ø-Ø+ØØØÝ˜%‘L”LØÐ-Ñ-ð	ñ 	ô 	ð 	r   c                óF  — t          | ¦  «        }|j        }t          ¦   «         }|j        }t	          |j        ¦  «        D ]”\  }}| |||z   …         }||z  }||j        k    r|j        n|}t          |¦  «        |k    r&|r|d d…         dk    r|                     |¦  «         n#|                     t          ||¦  «        ¦  «         ||z  }|dk    r nŒ•t          |¦  «        |j        k    r't          dt          |¦  «        › d|j        › �¦  «        ‚t          |¦  «        S )Né   ó   Œr   z%bundle decompress size mismatch: got z
 expected )r+   r   Ú	bytearrayr   Ú	enumerater   r   r$   Úextendr   r%   r   )	r   ÚhdrÚsrc_posÚoutÚ	remainingÚiÚ	comp_sizeÚchunkÚraw_lens	            r   Údecompress_bundler:   /   sA  € Ý
˜dÑ
#Ô
#€CØÔ €GÝ
‰+Œ+€CØÔ%€IÝ! #¤/Ñ2Ô2ð 
ð 
‰ˆˆ9Ø�W˜w¨Ñ2Ð2Ô3ˆØ�9ÑˆØ%.°´Ò%@Ð%@�#”/�/ÀiˆÝˆu‰:Œ:˜Ò Ð ¨%Ð °5¸¸!¸´9ÀÒ3GÐ3GØ�JŠJ�uÑÔÐÐà�JŠJÕ'¨¨wÑ7Ô7Ñ8Ô8Ð8Ø�WÑˆ	Ø˜Š>ˆ>ØˆEð å
ˆ3�x„x�3Ô(Ò(Ð(ÝØ_µC¸±H´HÐ_Ð_ÈÔH]Ð_Ð_ñ
ô 
ð 	
õ �‰:Œ:Ðr   )r   r   r   r	   )r   r   r   r   )Ú__doc__Ú
__future__r   r&   Údataclassesr   Úoodler   r	   r+   r:   r   r   r   ú<module>r?      s¾   ðØ ;Ð ;Ø "Ð "Ð "Ð "Ð "Ð "à €€€Ø !Ð !Ð !Ð !Ð !Ð !à #Ð #Ð #Ð #Ð #Ð #ð €�$ÐÑÔðð ð ð ð ñ ô ñ Ôððð ð ð ð2ð ð ð ð ð r   