ó
    F±‰jç  ã                  ó6   • S r SSKJr  SSKJr  SSKrSrSS jrg)z^
LZSS-like compressor.

See decompression function in StringTools.c, "DecompressString_LZSS".
é    )Úannotations)ÚdefaultdictNFc                óÊ  ^ ^^• T (       d  g[        T 5      m[        [        5      mSU UU4S jjn[        S5      nSnSnSnS/S-  nUT:  Ga¡  U" U5      u  pxT X3S-    n	TU	   R	                  U5        Sn
Xx-  nUS:  d  US:  a  Sn
US==   S-  ss'   OùUS	::  a3  UR	                  U5        UR	                  US-
  5        US==   S-  ss'   OÀUS
-  nUS-
  nUS:  aE  US:  a?  UR	                  US	-  S
-  5        UR	                  US-  S-	  U-  5        US==   S-  ss'   OkUS:”  aV  US:  aP  UR	                  US	-  S
-  5        UR	                  US-	  S	-  S
-  5        UR	                  U5        US==   S-  ss'   OSn
US==   S-  ss'   U
S:X  a  Sn
SnUR	                  T U   5        X8-  nU
S-  US-	  -  nUS:  a%  US-  X$'   [        U5      nUR	                  S5        SnUT:  a  GM¡  U[        U5      S-
  :X  a  UR                  5         OUS:¼  a  US-  nUS:¼  a  M  US-  X$'   [        (       a#  [        STS[        U5      5        [        SU5        [        U5      $ )zô
LZSS-like compressor.

Uses a byte triplet dict for fast match finding.
Outputs a bit stream with small overhead.

Args:
    data: Input bytes to compress

Returns:
    Compressed bytes (no header/metadata, decompressor must know output size)
ó    c                óþ  >• U S-   T:”  a  gSn[        STU -
  5      nSnSn[        SX-
  U-
  5      nTX S-    nUT;  a  gTU    Hj  nXu:  d  Xp:¼  a  M  Sn[        X U-
  5      n	X‰:  a,  TXx-      TX-      :X  a  US-  nX‰:  a  TXx-      TX-      :X  a  M  Xƒ:”  d  MW  X-
  U-
  U:  d  Md  UnX-
  nMl     TU S-   U S-    n
SUs=:  a  U:  a±  O  XC4$ U
T;   a¦  X-   S-   T:  a›  Sn[        SU S-   U-
  U-
  5      nTU
    Hp  nXu:  a  M
  Sn[        X U-
  TU -
  S-
  5      n	X‰:  a4  TXx-      TU S-   U-      :X  a   US-  nX‰:  a  TXx-      TU S-   U-      :X  a  M   X‹:”  d  Ma  X-
  U-
  U:  d  Mn  UnMr     X³S-   :”  a  S=pCXC4$ )z?Find longest match in sliding window. Returns (offset, length).é   )r   r   i€@  i  r   é   é   )ÚminÚmax)ÚposÚWINDOW_SIZEÚ	MAX_MATCHÚbest_lenÚbest_offsetÚwindow_startÚkeyÚprev_posÚ	match_lenÚmax_lenÚnext_keyÚnext_best_lenÚdataÚ
hash_tableÚ
input_sizes               €€€Ú™C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\Cython/LZSS.pyÚfind_longest_matchÚ)lzss_compress.<locals>.find_longest_match%   s(  ø€ à�‰7�ZÓØð $3ˆä!$ W¨j¸3Ñ.>Ó!?ˆ	à&'ˆØ)*ˆÜ*-¨a°Ñ1BÀYÑ1NÓ*Oˆð �3˜1‘uˆoˆØ�jÓ Øà" 3œˆHØÓ&¨(«/Ùð ˆIÜ˜)¨8¡^Ó4ˆGØÓ%¨$¨xÑ/CÑ*DÈÈSÉ_ÑH]Ó*]Ø˜Q‘�	ð Ó%¨$¨xÑ/CÑ*DÈÈSÉ_ÑH]Õ*]ð Õ#Ø‘> IÑ-°Õ;Ø(�HØ"%¡.’Kñ (ð" ˜˜a™  a¡Ð(ˆØˆxÕ#˜)Õ#ð* Ð&Ð&ð+ )1°JÓ(>À3Á>ÐTUÑCUÐXbÓCbØ/0ˆMÜ˜q #¨¡'¨KÑ"7¸)Ñ"CÓDˆLà& xÔ0�ØÓ*Ùà�	Ü˜i¨x©¸ÀcÑ9IÈAÑ9MÓN�ØÓ)¨d°8Ñ3GÑ.HÈDÐQTÐWXÑQXÐ[dÑQdÑLeÓ.eØ ‘N�Ið  Ó)¨d°8Ñ3GÑ.HÈDÐQTÐWXÑQXÐ[dÑQdÑLeÕ.eð Õ,Ø‘~¨Ñ5¸ÕCØ(1šñ 1ð ¨!™|Ó+Ø)*Ð*�àÐ&Ð&r   ó    r   i  ÿ é   r   r	   é   é€   é    i   i€  é   i @  é   r
   i   éÿ   zBYTES:z->z
ENCODINGS:)r   zcython.Py_ssize_tÚreturnz+tuple[cython.Py_ssize_t, cython.Py_ssize_t])	Úlenr   ÚlistÚ	bytearrayÚappendÚpopÚPRINT_STATSÚprintÚbytes)r   r   Úoutputr   Ú	flags_posÚflagsÚstatsÚoffsetÚlengthr   ÚflagÚlength_bitsr   r   s   `           @@r   Úlzss_compressr8      s�  ú€ ö Øä�T“€Jô œTÓ"€J÷>'ñ >'ôB �uÓ€FØ€CØ#$€IØ €EàˆC�!‰G€Eà
�
Ô
Ù+¨CÓ0‰ˆð �3˜1‘uˆoˆØ�3‰×Ñ˜sÔ#àˆØÑˆð �A‹:˜ !›àˆDØ�!‹H˜‰MŒHØ�t‹^à�M‰M˜&Ô!à�M‰M˜& 1™*Ô%Ø�!‹H˜‰MŒHð �d‰NˆFØ  1™*ˆKà˜fÓ%¨&°FÓ*;à—‘˜v¨™}°Ñ4Ô5Ø—‘ ¨¡°1Ñ4¸ÑCÔDà�a“˜A‘”Ø˜!“ ¨'Ó 2à—‘˜f t™m¨dÑ2Ô3Ø—‘˜v¨™{¨dÑ2°TÑ9Ô:Ø—‘˜kÔ*Ø�a“˜A‘”à�Ø�a“˜A‘“à�1‹9àˆDØˆFØ�M‰M˜$˜s™)Ô$à‰ˆà˜‘˜u¨™zÑ*ˆØ�7‹?Ø %¨¡ˆFÑÜ˜F›ˆIØ�M‰M˜!ÔØˆEðy �
Ö
ð| ”C˜“K !‘OÓ#Ø�
‰
�ð �wÓØ�a‰KˆEð �wÕà! D™LˆÑç‚{Üˆh˜
 D¬#¨f«+Ô6Üˆl˜EÔ"ä�‹=Ðr   )r   r/   r'   r/   )Ú__doc__Ú
__future__r   Úcollectionsr   Úcythonr-   r8   © r   r   Ú<module>r>      s    ðñõ #å #ã à€õhr   