Ë
    ålÖiÑe ã                   ó  — d dl Z d dlZd dl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Zd dlZd dlZd dlZd dlmZ d dlmZ d dlmZ  G d„ d«      Z G d„ d	«      Zee_         G d
„ d«      Zee_         G d„ d«      Z e e _         G d„ d«      Z!e!e!_         G d„ d«      Z" G d„ d«      Z#e#e#_         G d„ d«      Z$e$e$_         G d„ d«      Z%e%e%_         G d„ d«      Z&e&e&_         G d„ d«      Z'e'e'_         G d„ d«      Z(e(e(_         G d„ d«      Z)e)e)_         G d „ d!«      Z*e*e*_         G d"„ d#«      Z+e+e+_         G d$„ d%«      Z,e,e,_         G d&„ d'«      Z-e-e-_         G d(„ d)«      Z.e.e._         G d*„ d+«      Z/e/e/_         G d,„ d-«      Z0e0e0_         G d.„ d/«      Z1e1e1_         G d0„ d1«      Z2e2e2_         G d2„ d3«      Z3e3e3_         G d4„ d5«      Z4e4e4_         G d6„ d7«      Z5e5e5_         G d8„ d9«      Z6e6e6_         G d:„ d;«      Z7e7e7_         G d<„ d=«      Z8e8e8_         G d>„ d?«      Z9e9e9_         G d@„ dA«      Z:e:e:_         G dB„ dC«      Z;e;e;_         G dD„ dE«      Z<e<e<_         G dF„ dG«      Z=e=e=_         G dH„ dI«      Z>e>e>_         G dJ„ dK«      Z?e?e?_         G dL„ dM«      Z@e@e@_         G dN„ dO«      ZAeAeA_         G dP„ dQ«      ZBeBeB_         G dR„ dS«      ZCeCeC_         G dT„ dU«      ZDeDeD_         G dV„ dW«      ZEeEeE_         G dX„ dY«      ZFeFeF_         G dZ„ d[«      ZGeGeG_         G d\„ d]«      ZHeHeH_         G d^„ d_«      ZIeIeI_         G d`„ da«      ZJeJeJ_         G db„ dc«      ZKeKeK_         G dd„ de«      ZLeLeL_         G df„ dg«      ZMeMeM_         G dh„ di«      ZNeNeN_         G dj„ dk«      ZOeOeO_         G dl„ dm«      ZPePeP_         G dn„ do«      ZQeQeQ_         G dp„ dq«      ZReReR_         G dr„ ds«      ZS G dt„ du«      ZT G dv„ dw«      ZU G dx„ dy«      ZV G dz„ d{«      ZWeWeW_         G d|„ d}«      ZXeXeX_         G d~„ d«      ZYeYeY_         G d€„ d�«      ZZeZeZ_         G d‚„ dƒ«      Z[e[e[_         G d„„ d…«      Z\e\e\_         G d†„ d‡«      Z]e]e]_         G dˆ„ d‰«      Z^e^e^_         G dŠ„ d‹«      Z_e_e__         G dŒ„ d�«      Z`e`e`_         G dŽ„ d�«      Zaeaea_         G d�„ d‘e«      Zb ebd’d d“«      eb_c         ebd”d•d“«      eb_d         ebd–d—d“«      eb_e         ebd˜d™d“«      eb_f         ebdšd›d“«      eb_g         ebdœd�d“«      eb_h         ebdždŸd“«      eb_i        ebeb_         G d „ d¡«      Zjejej_         G d¢„ d£«      Zkekek_         G d¤„ d¥«      Zlelel_         G d¦„ d§«      Zmemem_         G d¨„ d©en«      Zoeoeo_         G dª„ d««      Zpepep_         G d¬„ d­eo«      Zqeqeq_         G d®„ d¯«      Zrerer_         G d°„ d±«      Zseses_         G d²„ d³eo«      Ztetet_         G d´„ dµet«      Zueueu_         G d¶„ d·«      Zvevev_         G d¸„ d¹«      Zwewew_         G dº„ d»e«      Zx exd¼d d“«      ex_y         exd½d•d“«      ex_z        exex_         G d¾„ d¿e«      Z{ e{dÀd d“«      e{_|         e{dÁd•d“«      e{_}         e{dÂd—d“«      e{_~        e{e{_         G dÃ„ dÄ«      Zee_         G dÅ„ dÆ«      Z€e€e€_         G dÇ„ dÈ«      Z�e�e�_         G dÉ„ dÊ«      Z‚e‚e‚_         G dË„ dÌ«      Zƒeƒeƒ_         G dÍ„ dÎ«      Z„e„e„_         G dÏ„ dÐ«      Z…e…e…_         G dÑ„ dÒ«      Z†e†e†_         G dÓ„ dÔ«      Z‡e‡e‡_         G dÕ„ dÖ«      Zˆeˆeˆ_         G d×„ dØ«      Z‰e‰e‰_         G dÙ„ dÚe«      ZŠeŠeŠ_         G dÛ„ dÜ«      Z‹e‹e‹_         G dÝ„ dÞ«      ZŒeŒeŒ_         G dß„ dàeŠ«      Z�e�e�_         G dá„ dâe�«      ZŽeŽeŽ_         G dã„ dä«      Z�e�e�_         G då„ dæ«      Z�e�e�_         G dç„ dèe«      Z‘e‘e‘_         e’dé«      e_“         e’dê«      e_”         e’dë«      e_•        e�j,                  e_—        dìe+_˜         e™g dí¢«      e‚_š         e›dî«      e‚_œ         G dï„ dðeG«      Z� G dñ„ dòe$«      Zž eŸe+«      D ]  Z e d    dók7  sŒ e¡e+e «       e¢«       e <   Œ  G dô„ dõeL«      Z£dö„ Z¤d÷„ Z¥e¦døk(  re+�jO                  «        dù„ Z§y)úé    N©Úpath)Údatetime)Útimezone)ÚStringIOc                   ó4   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	Ú_hx_AnonObjectFc                 ó   — || _         y ©N©Ú__dict__)ÚselfÚfieldss     úR/var/www/html/strategist-ai/venv_dbt/lib/python3.12/site-packages/daff/__init__.pyÚ__init__z_hx_AnonObject.__init__   s	   € Øˆ�ó    c                 ó,   — t        | j                  «      S r   )Úreprr   ©r   s    r   Ú__repr__z_hx_AnonObject.__repr__   s   € Ü�D—M‘MÓ"Ð"r   c                 ó   — || j                   v S r   r   ©r   Úitems     r   Ú__contains__z_hx_AnonObject.__contains__   s   € Ø�t—}‘}Ð$Ð$r   c                 ó    — | j                   |   S r   r   r   s     r   Ú__getitem__z_hx_AnonObject.__getitem__   s   € Ø�}‰}˜TÑ"Ð"r   c                 ó2   — | j                   rt        d«      ‚y )Nzfield does not exist)Ú_hx_disable_getattrÚAttributeError©r   Únames     r   Ú__getattr__z_hx_AnonObject.__getattr__!   s   € Ø×$Ò$Ü Ð!7Ó8Ð8àr   c                 óf   — d| _         	 t        | |«       d| _         y# t        $ r
 d| _         Y yw xY w©NTF)r   Úgetattrr   )r   Úfields     r   Ú_hx_hasattrz_hx_AnonObject._hx_hasattr&   s>   € Ø#'ˆÔ ð	Ü�D˜%Ô Ø',ˆDÔ$ØøÜò 	Ø',ˆDÔ$Ùð	ús   ‰ �0¯0N)
Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r"   r'   © r   r   r	   r	      s&   „ ØÐòò#ò%ò#òó
r   r	   c                   ó.   — e Zd Zd ZdZg d¢ZdgZd„ Zd„ Zy)ÚEnum©ÚtagÚindexÚparamsÚ__str__c                 ó.   — || _         || _        || _        y r   r.   )r   r/   r0   r1   s       r   r   zEnum.__init__8   s   € ØˆŒØˆŒ
Øˆ�r   c                 óœ   — | j                   €| j                  S | j                  dz   dj                  d„ | j                   D «       «      z   dz   S )Nú(ú, c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   ©Ústr)Ú.0Úvs     r   ú	<genexpr>zEnum.__str__.<locals>.<genexpr>A   s   è ø€ Ò.K¸!¬s°1¯vÑ.Kùs   ‚ú))r1   r/   Újoinr   s    r   r2   zEnum.__str__=   s@   € Ø�K‰KÐØ—8‘8ˆOà—8‘8˜c‘> T§Y¡YÑ.K¸t¿{¹{Ô.KÓ%KÑLÈsÑRÐRr   N)	r(   r)   r*   Ú_hx_class_nameÚ	__slots__Ú
_hx_fieldsÚ_hx_methodsr   r2   r+   r   r   r-   r-   2   s#   „ Ø€NØ*€IÚ+€JØ�+€Kòó
Sr   r-   c                   ó¤   — e Zd Zd ZdZg d¢Zg d¢Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Ú	Alignment)Úmap_a2bÚmap_b2aÚhaÚhbÚtaÚtbÚiaÚibÚ	map_countÚorder_cacheÚorder_cache_has_referenceÚindex_columnsÚmarked_as_identicalÚ	referenceÚmetaÚcompÚhas_additionÚhas_removal)ÚrangeÚtablesÚheadersÚ
setRowlikeÚlinkÚaddIndexColumnsÚgetIndexColumnsÚa2bÚb2aÚcountÚtoStringÚtoOrderÚ
addToOrderÚ	getSourceÚ	getTargetÚgetSourceHeaderÚgetTargetHeaderÚtoOrder3ÚmarkIdenticalÚisMarkedAsIdenticalc                 ó(  ‡ — d ‰ _         d ‰ _        d ‰ _        d ‰ _        d ‰ _        d ‰ _        t        «       ‰ _        t        «       ‰ _        ˆ fd„} |«       ‰ _	        d‰ _
        d ‰ _        d ‰ _        d ‰ _        d‰ _        d‰ _        d‰ _        d‰ _        y )Nc                  ó*   •— d‰ _         ‰ j                   S ©Nr   )rH   r   s   €r   Ú_hx_local_0z'Alignment.__init__.<locals>._hx_local_0U   s   ø€ ØˆDŒGØ—7‘7ˆNr   r   Féÿÿÿÿ)rV   rU   rP   rN   rJ   rI   Úhaxe_ds_IntMaprE   rF   rG   rM   rR   rS   rT   rO   rK   rL   rQ   ©r   rn   s   ` r   r   zAlignment.__init__L   s�   ø€ ØˆÔØ ˆÔØ!ˆÔØˆÔØˆŒØˆŒÜ%Ó'ˆŒÜ%Ó'ˆŒô	ñ “-ˆŒØˆŒØˆŒØˆŒ	ØˆŒ	Ø).ˆÔ&ØˆŒØˆŒØ#(ˆÕ r   c                 ó    — || _         || _        y r   )rG   rH   )r   rG   rH   s      r   rW   zAlignment.rangeb   ó   € ØˆŒØˆ�r   c                 ó    — || _         || _        y r   )rI   rJ   )r   rI   rJ   s      r   rX   zAlignment.tablesf   rs   r   c                 ó    — || _         || _        y r   )rK   rL   )r   rK   rL   s      r   rY   zAlignment.headersj   rs   r   c                  ó   — y r   r+   ©r   Úflags     r   rZ   zAlignment.setRowliken   ó   € Ør   c                 óÜ   — |dk7  r| j                   j                  ||«       nd| _        |dk7  r| j                  j                  ||«       nd| _        | }|j
                  }|dz   |_        | y )Nro   Té   )rE   ÚsetrU   rF   rV   rM   )r   ÚaÚbrn   Ú_hx_local_1s        r   r[   zAlignment.linkq   sg   € Ø�ŠGØ�L‰L×Ñ˜Q˜qÕ!à $ˆDÔØ�ŠGØ�L‰L×Ñ˜Q˜qÕ!à#ˆDÔØˆØ!×+Ñ+ˆØ!,¨q¡ˆÔÚr   c                 ót   — | j                   €t        «       | _         | j                   }|j                  |«       y r   )rP   ÚlistÚappend)r   ÚunitÚ_thiss      r   r\   zAlignment.addIndexColumns   s/   € Ø×ÑÐ&Ü!%£ˆDÔØ×"Ñ"ˆØ�‰�TÕr   c                 ó   — | j                   S r   )rP   r   s    r   r]   zAlignment.getIndexColumns…   ó   € Ø×!Ñ!Ð!r   c                 óN   — | j                   j                  j                  |d «      S r   )rE   ÚhÚget)r   r}   s     r   r^   zAlignment.a2bˆ   ó   € Ø�|‰|�~‰~×!Ñ! ! DÓ)Ð)r   c                 óN   — | j                   j                  j                  |d «      S r   )rF   rˆ   r‰   ©r   r~   s     r   r_   zAlignment.b2a‹   rŠ   r   c                 ó   — | j                   S r   )rM   r   s    r   r`   zAlignment.countŽ   s   € Ø�~‰~Ðr   c                 óp  — dt         j                  | j                  €dn| j                  j                  «       «      z   dz   t         j                  | j                  €dn| j                  j                  «       «      z   }| j
                  �,|€dn|dt        j                  | j
                  «      z   dz   z   }|S )NÚ Únullú // ú (r=   )ÚHxOverridesÚstringOrNullrE   ra   rF   rR   ÚStdÚstring)r   Úresults     r   ra   zAlignment.toString‘   sè   € Øœ×1Ñ1ÀÇÁÐ@T±FÐ\`×\hÑ\h×\qÑ\qÓ\sÓvÑvð  {Añ  Aô  EP÷  E]ñ  E]ð  lp÷  lxñ  lxð  l@ñ  `fð  HL÷  HTñ  HT÷  H]ñ  H]ó  H_ó  Ebñ  bˆØ�N‰NÐ&Ø!' ‘v°VÀ$ÌÏÉÐTX×TbÑTbÓIcÑBcÐgjÑAjÑlˆFØˆr   c                 óØ   — | j                   �| j                  �| j                  sd | _         | j                   €| j                  «       | _         | j                  �d| _        | j                   S ©NT)rN   rR   rO   rh   r   s    r   rb   zAlignment.toOrder—   sa   € Ø×ÑÐ(Ø—‘Ð*Ø×6Ò6Ø'+�DÔ$Ø×ÑÐ$Ø#Ÿ}™}›ˆDÔØ�N‰NÐ&Ø-1ˆDÔ*Ø×ÑÐr   Nc                 ó�   — |€d}| j                   €t        «       | _         | j                   j                  |||«       |dk7  | _        y ©Néþÿÿÿ)rN   ÚOrderingÚaddrO   ©r   ÚlÚrÚps       r   rc   zAlignment.addToOrder¢   sF   € ØˆIØˆAØ×ÑÐ$Ü'›zˆDÔØ×Ñ×Ñ˜Q˜q Ô#Ø*+¨r©'ˆÕ&r   c                 ó   — | j                   S r   )rI   r   s    r   rd   zAlignment.getSourceª   ó   € Ø�w‰wˆr   c                 ó   — | j                   S r   )rJ   r   s    r   re   zAlignment.getTarget­   r¤   r   c                 ó   — | j                   S r   )rK   r   s    r   rf   zAlignment.getSourceHeader°   r¤   r   c                 ó   — | j                   S r   )rL   r   s    r   rg   zAlignment.getTargetHeader³   r¤   r   c                 ó,  ‡— t        «       Š| j                  �€| j                  j                  «       }|j	                  «       rY|j                  «       }t        «       }||_        | j                  |«      |_	        ‰j                  |«       |j	                  «       rŒY| j                  j                  «       }|j	                  «       �r5|j                  «       }| j                  |«      dk(  r)t        «       }d|_        ||_	        ‰j                  |«       |j	                  «       rŒ^�nÕ| j                  j                  «       }|j	                  «       ry|j                  «       }t        «       }||_        | j                  j                  |«      |_        | j                  |«      |_	        ‰j                  |«       |j	                  «       rŒy| j                  j                  j                  «       }|j	                  «       ro|j                  «       }| j                  j                  |«      dk(  r0t        «       }d|_        ||_        d|_	        ‰j                  |«       |j	                  «       rŒo| j                  j                  «       }|j	                  «       re|j                  «       }| j                  |«      dk(  r0t        «       }d|_        d|_        ||_	        ‰j                  |«       |j	                  «       rŒet        ‰«      }t        «       }t        «       }d}|}||k  rW|}	|dz   }|	dk\  r|	t        ‰«      k  r‰|	   nd j                  dk\  r|j                  |	«       n|j                  |	«       ||k  rŒWˆfd„}
|
}ˆfd„}|}| j                  �ˆfd„}|}ˆfd„}|}|j                  t!        j"                  |«      ¬«       |j                  t!        j"                  |«      ¬«       t        «       }d}d}d}|}||k  �rÖ|}	|dz   }|t        |«      k  �r|t        |«      k  �rt$        j'                  ‰|dk\  r|t        |«      k  r||   nd «      }t$        j'                  ‰|dk\  r|t        |«      k  r||   nd «      }|j                  dk(  rN|j                  dk\  r?|j                  dk\  r0|j                  |j                  kD  rH|j                  |«       |dz   }Œä|j                  |j                  kD  r|j                  |«       |dz   }�Œ|j                  |«       |dz   }�Œ-|t        |«      k  rFt$        j'                  ‰|dk\  r|t        |«      k  r||   nd «      }|j                  |«       |dz   }�Œ�|t        |«      k  rFt$        j'                  ‰|dk\  r|t        |«      k  r||   nd «      }|j                  |«       |dz   }�ŒÕ||k  r�ŒÖ|Št)        «       }|j+                  ‰«       | j                  €|j-                  «        |S )	Nro   r   r{   c                 ó®   •— | dk\  r| t        ‰«      k  r‰|    nd j                  |dk\  r|t        ‰«      k  r‰|   j                  z
  S d j                  z
  S rm   )Úlenr¡   ©r}   r~   Úorders     €r   rn   z'Alignment.toOrder3.<locals>._hx_local_0ï   s\   ø€ Ø!" a¢¨A´°E³
ªN�U˜1’XÀ×GÑGÐWXÐ\]ÒW]ÐbcÔfiÐjoÓfpÒbpÈ5ÐQRÉ8×J}ÑJ}Ñ}Ð~Ðvz×J}ÑJ}Ñ}Ð~r   c                 ó   •— | |k(  ry| dk\  r| t        ‰«      k  r‰|    nd j                  dk\  r||dk\  r|t        ‰«      k  r‰|   nd j                  dk\  rU| dk\  r| t        ‰«      k  r‰|    nd j                  |dk\  r|t        ‰«      k  r‰|   j                  z
  S d j                  z
  S | dk\  r| t        ‰«      k  r‰|    nd j                  dk\  ry|dk\  r|t        ‰«      k  r‰|   nd j                  dk\  ry| |z
  S ©Nr   r{   ro   )rª   r    r«   s     €r   r   z'Alignment.toOrder3.<locals>._hx_local_1ò   sA  ø€ Ø�Q’ØØ 1šf¨¬S°«Zª�%˜’(¸T×DÑDÈÒIÐ^_ÐcdÒ^dÐijÔmpÐqvÓmwÒiwÐRWÐXYÒRZð  ~B÷  REñ  REð  IJò  RJØ%&¨!¢V°´C¸³J²˜˜qšÀD×KÑKÐ[\Ð`aÒ[aÐfgÔjmÐnsÓjtÒftÈuÐUVÉx÷  OBñ  OBñ  Bð  CÐz~÷  OBñ  OBñ  Bð  CØ !šV¨¬C°«Jª��q’¸D×CÑCÀqÒHØØ !šV¨¬C°«Jª��q’¸D×CÑCÀqÒHØØ˜‘EˆNr   c                 ó~  •— | |k(  ry| dk\  r| t        ‰«      k  r‰|    nd j                  |dk\  r|t        ‰«      k  r‰|   nd j                  z
  }| dk\  r| t        ‰«      k  r‰|    nd j                  dk\  rÅ|dk\  r|t        ‰«      k  r‰|   nd j                  dk\  rž| dk\  r| t        ‰«      k  r‰|    nd j                  |dk\  r|t        ‰«      k  r‰|   nd j                  z
  }||z  dk  r|S | dk\  r| t        ‰«      k  r‰|    nd j                  |dk\  r|t        ‰«      k  r‰|   nd j                  z
  }|S |S rm   )rª   r¡   r¢   r    )r}   r~   Úo1Úo2Úo3r¬   s        €r   Ú_hx_local_2z'Alignment.toOrder3.<locals>._hx_local_2þ   s•  ø€ Ø˜’FØØ#$¨¢6¨a´#°e³*ªn�u˜Q’xÀ$×IÑIÐYZÐ^_ÒY_ÐdeÔhkÐlqÓhrÒdrÈUÐSTÊXÐx|×LÑLÑ�Ø"# q¢&¨Q´°U³ª^�e˜A’hÀ×HÑHÈAÒMÐbcÐghÒbhÐmnÔqtÐuzÓq{Òm{ÐV[Ð\]ÒV^ð  BF÷  VIñ  VIð  MNò  VNØ'(¨A¢v°!´c¸%³j².˜5 š8Àd×MÑMÐ]^ÐbcÒ]cÐhiÔloÐpuÓlvÒhvÐQVÐWXÒQYð  }A÷  QDñ  QDñ  D�BØ˜b™ AšØ!˜	Ø'(¨A¢v°!´c¸%³j².˜5 š8Àd×MÑMÐ]^ÐbcÒ]cÐhiÔloÐpuÓlvÒhvÐQVÐWXÒQYð  }A÷  QDñ  QDñ  D�BØ�IØ�	r   c                 ó0  •— | |k(  ry| dk\  r| t        ‰«      k  r‰|    nd j                  dk\  �r|dk\  r|t        ‰«      k  r‰|   nd j                  dk\  rì| dk\  r| t        ‰«      k  r‰|    nd j                  |dk\  r|t        ‰«      k  r‰|   nd j                  z
  }| dk\  r| t        ‰«      k  r‰|    nd j                  dk\  r||dk\  r|t        ‰«      k  r‰|   nd j                  dk\  rU| dk\  r| t        ‰«      k  r‰|    nd j                  |dk\  r|t        ‰«      k  r‰|   nd j                  z
  }||z  dk  r|S |S | dk\  r| t        ‰«      k  r‰|    nd j                  dk\  ry|dk\  r|t        ‰«      k  r‰|   nd j                  dk\  ry| |z
  S r®   )rª   r    r¢   )r}   r~   r°   r±   r¬   s       €r   Ú_hx_local_3z'Alignment.toOrder3.<locals>._hx_local_3
  s  ø€ Ø˜’FØØ"# q¢&¨Q´°U³ª^�e˜A’hÀ×HÑHÈAÓMÐbcÐghÒbhÐmnÔqtÐuzÓq{Òm{ÐV[Ð\]ÒV^ð  BF÷  VIñ  VIð  MNò  VNØ'(¨A¢v°!´c¸%³j².˜5 š8Àd×MÑMÐ]^ÐbcÒ]cÐhiÔloÐpuÓlvÒhvÐQVÐWXÒQYð  }A÷  QDñ  QDñ  D�BØ&'¨1¢f°´S¸³Z²˜% š(ÀT×LÑLÐPQÒQÐfgÐklÒflÐqrÔuxÐy~ÓuÒqÐZ_Ð`aÒZbð  FJ÷  ZMñ  ZMð  QRò  ZRØ+,°ª6°a¼#¸e»*²n˜u QšxÈ$×QÑQÐabÐfgÒagÐlmÔpsÐtyÓpzÒlzÐUZÐ[\ÒU]ð  AE÷  UHñ  UHñ  H˜Ø "™W¨šMØ#%˜IØ!˜	Ø!" a¢¨A´°E³
ªN�U˜1’XÀ×GÑGÈ1ÒLØØ!" a¢¨A´°E³
ªN�U˜1’XÀ×GÑGÈ1ÒLØØ˜A™�r   ©Úkey)r�   rR   rE   ÚkeysÚhasNextÚnextÚUnitr    r^   r¡   r‚   rF   r_   r¢   rª   ÚsortÚpython_lib_FunctoolsÚ
cmp_to_keyÚpython_internal_ArrayImplÚ_getr�   ÚsetListÚignoreParent)r   ÚkÚk1rƒ   ÚtopÚremotesÚlocalsÚ_gÚ_g1Úorn   Úremote_sortr   Ú
local_sortr³   rµ   Úrevised_orderÚat_rÚat_lÚurÚulÚur1Úul1r—   r¬   s                           @r   rh   zAlignment.toOrder3¶   s)  ø€ Ü“ˆØ�N‰NÑ"Ø—‘×!Ñ!Ó#ˆAØ—)‘)”+Ø—V‘V“X�Ü“v�Ø�”ØŸ™ "›�”Ø—‘˜TÔ"ð —)‘)•+ð —‘×!Ñ!Ó#ˆAØ—)‘)•+Ø—V‘V“X�Ø—H‘H˜R“L BÒ&Ü›6�DØ�D”FØ�D”FØ—L‘L Ô&ð —)‘)—+ð —‘×!Ñ!Ó#ˆAØ—)‘)”+Ø—V‘V“X�Ü“v�Ø�”ØŸ™×+Ñ+¨BÓ/�”ØŸ™ "›�”Ø—‘˜TÔ"ð —)‘)•+ð —‘×&Ñ&×+Ñ+Ó-ˆAØ—)‘)”+Ø—V‘V“X�Ø—N‘N×&Ñ& rÓ*¨bÒ0Ü›6�DØ�D”FØ�D”FØ�D”FØ—L‘L Ô&ð —)‘)•+ð —‘×!Ñ!Ó#ˆAØ—)‘)”+Ø—V‘V“X�Ø—H‘H˜R“L BÒ&Ü›6�DØ�D”FØ�D”FØ�D”FØ—L‘L Ô&ð —)‘)•+ô �%‹jˆÜ“&ˆÜ“ˆØˆØˆØ�CŠxØˆAØ�q‘&ˆBØ !šV¨¬C°«Jª��q’¸D×CÑCÀqÒHØ—‘˜qÕ!à—‘˜aÔ ð �C‹xô	à!ˆô		ð !ˆ
Ø�N‰NÐ&ô
ð &ˆKôð %ˆJØ�‰Ô.×9Ñ9¸+ÓFˆÔGØ�‰Ô-×8Ñ8¸ÓDˆÔEÜ›ˆØˆØˆØˆØˆØ�C‹xØˆAØ�q‘&ˆBØœ˜G›Ó$¨D´3°v³;Ó,>Ü.×3Ñ3°EÈTÐUVÊYÐ[_ÔbeÐfmÓbnÒ[n¸GÀDºMÐtxÓz�Ü.×3Ñ3°EÈDÐTUÊIÐZ^ÔadÐekÓalÒZl¸FÀ4ºLÐrvÓx�Ø—d‘d˜b’j¨¯©°ª	¸2¿4¹4À1º9ØŸ™˜rŸt™tšØ%×,Ñ,¨RÔ0Ø $ q¡˜Ø Ø—d‘d˜RŸT™T’kØ!×(Ñ(¨Ô,Ø  1™H�DÙØ×$Ñ$ RÔ(Ø˜q™�ÙØ”s˜7“|Ò#Ü/×4Ñ4°UÈdÐVWÊiÐ\`ÔcfÐgnÓcoÒ\o¸WÀTº]ÐuyÓ{�Ø×$Ñ$ SÔ)Ø˜q™�ÙØ”s˜6“{Ò"Ü/×4Ñ4°UÈTÐUVÊYÐ[_ÔbeÐflÓbmÒ[m¸VÀDº\ÐswÓy�Ø×$Ñ$ SÔ)Ø˜q™�Ùð7 �CŒxð8 ˆÜ“ˆØ�‰�uÔØ�N‰NÐ"Ø×ÑÔ!Øˆr   c                 ó   — d| _         y r™   ©rQ   r   s    r   ri   zAlignment.markIdenticalD  s
   € Ø#'ˆÕ r   c                 ó   — | j                   S r   rÕ   r   s    r   rj   zAlignment.isMarkedAsIdenticalG  s   € Ø×'Ñ'Ð'r   r   )r(   r)   r*   r?   r@   rA   rB   r   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   r+   r   r   rD   rD   F   sŠ   „ Ø €Nð h€Iò i€Jò ]€Kò)ò,òòòòòò"ò*ò*òòò	 ó3òòòòòLò\(ó(r   rD   c                   ó   — e Zd Zd ZdZg d¢Zy)ÚCellBuilderr+   ©ÚneedSeparatorÚsetSeparatorÚsetConflictSeparatorÚsetViewÚupdateÚconflictÚmarkerÚlinksN©r(   r)   r*   r?   r@   rB   r+   r   r   rØ   rØ   M  s   „ Ø"€NØ€IÚ�Kr   rØ   c                   ó.   — e Zd Zd ZdZg d¢ZdgZd„ Zd„ Zy)ÚCellInfo)ÚrawÚvalueÚpretty_valueÚcategoryÚcategory_given_trÚ	separatorÚpretty_separatorÚupdatedÚ
conflictedÚpvalueÚlvalueÚrvaluerS   ra   c                 óº   — d | _         d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _	        d | _
        d | _        d | _        y r   )rS   rð   rï   rî   rí   rì   rë   rê   ré   rè   rç   ræ   rå   r   s    r   r   zCellInfo.__init__Z  s`   € ØˆŒ	ØˆŒØˆŒØˆŒØˆŒØˆŒØ $ˆÔØˆŒØ!%ˆÔØˆŒØ ˆÔØˆŒ
Øˆ�r   c                 ó˜  — | j                   s| j                  S | j                  sBt        j	                  | j
                  «      dz   t        j	                  | j                  «      z   S t        j	                  | j                  «      dz   t        j	                  | j
                  «      z   dz   t        j	                  | j                  «      z   S )Nz::z||)rì   ræ   rí   r“   r”   rï   rð   rî   r   s    r   ra   zCellInfo.toStringi  s¸   € Ø—’Ø—:‘:ÐØ—’Ü ×-Ñ-¨d¯k©kÓ:¸TÑAÄ[×E]ÑE]Ð^b×^iÑ^iÓEjÑjÐkÜ×+Ñ+¨D¯K©KÓ8¸4Ñ?Ä;×C[ÑC[Ð\`×\gÑ\gÓChÑhÐlpÑpÔt÷  uMñ  uMð  NR÷  NYñ  NYó  uZñ  Zð  	[r   N©	r(   r)   r*   r?   r@   rA   rB   r   ra   r+   r   r   rä   rä   T  s)   „ Ø€Nð r€Iò s€JØ�,€Kòó[r   rä   c                   ó   — e Zd Zy)ÚClassN©r(   r)   r*   r+   r   r   rõ   rõ   s  ó   … r   rõ   c                   ó"   — e Zd Zd ZdZg d¢Zd„ Zy)ÚColumnChange)ÚprevNamer!   Úpropsc                 ó.   — d | _         d | _        d | _        y r   )rû   r!   rú   r   s    r   r   zColumnChange.__init__{  s   € ØˆŒ
ØˆŒ	Øˆ�r   N©r(   r)   r*   r?   r@   rA   r   r+   r   r   rù   rù   v  s   „ Ø#€NØ-€IÚ.€Jór   rù   c                   ó   — e Zd Zd ZdZg d¢Zy)ÚTabler+   ©ÚgetCellÚsetCellÚgetCellViewÚisResizableÚresizeÚclearÚinsertOrDeleteRowsÚinsertOrDeleteColumnsÚ	trimBlankÚ	get_widthÚ
get_heightÚgetDataÚcloneÚcreateÚgetMetaNrâ   r+   r   r   rÿ   rÿ   ƒ  s   „ Ø€NØ€Iò Z�Kr   rÿ   c                   óœ   — e Zd Zd ZdZg d¢Zg d¢ZegZd„ Z	d„ Z
d„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚCombinedTable)ÚtÚbodyÚheadÚdxÚdyÚcorerS   )ÚallÚgetTabler
  r  r  r  ra   r  r  r  r  r  r  r	  r  r  r  r  c                 ó   — d | _         d | _        || _        d| _        d| _        || _        d | _        |j                  «       dk  s|j                  «       dk  ry |j                  «       }|j                  |j                  dd«      «      dk7  ry d| _        d| _        d}|j                  «       }||k  rU|}|dz   }|j                  |j                  d|«      «      }|�
|dk(  s|dk(  rn | }|j                  }|dz   |_        | ||k  rŒUt        | | j                  | j                  «      | _        t        | | j                  | j                  «      | _        | j                  | _        t        | j                  «      | _         y )Nr   r{   ú@@r�   r�   )rS   r  r  r  r  r  r  r
  r  r  ra   r  ÚCombinedTableHeadÚCombinedTableBodyÚ
SimpleMeta)	r   r  r;   rÈ   rÉ   ÚyÚtxtrn   r   s	            r   r   zCombinedTable.__init__‘  sK  € ØˆŒ	ØˆŒ	ØˆŒØˆŒØˆŒØˆŒ	ØˆŒ	Ø�[‰[‹]˜QÒ Q§\¡\£^°aÒ%7ØØ�M‰M‹OˆØ�J‰J�q—y‘y  1“~Ó&¨$Ò.ØØˆŒØˆŒØˆØ�l‰l‹nˆØ�CŠxØˆAØ�q‘&ˆBØ—*‘*˜QŸY™Y q¨›^Ó,ˆCØ�+ C¨2¢I°c¸V²mØØˆKØ%Ÿ.™.ˆKØ)¨A™oˆKŒNÙð �C‹xô & d¨4¯7©7°4·7±7Ó;ˆŒ	Ü% d¨4¯7©7°4·7±7Ó;ˆŒ	Ø—I‘IˆŒ	Ü˜tŸy™yÓ)ˆ�	r   c                 ó   — | j                   S r   ©r  r   s    r   r  zCombinedTable.all±  ó   € Ø�v‰vˆr   c                 ó   — | S r   r+   r   s    r   r  zCombinedTable.getTable´  ó   € Øˆr   c                 ó6   — | j                   j                  «       S r   )r  r
  r   s    r   r
  zCombinedTable.get_width·  ó   € Ø�y‰y×"Ñ"Ó$Ð$r   c                 ó6   — | j                   j                  «       S r   )r  r  r   s    r   r  zCombinedTable.get_heightº  s   € Ø�y‰y×#Ñ#Ó%Ð%r   c                 ó:   — | j                   j                  ||«      S r   )r  r  ©r   Úxr  s      r   r  zCombinedTable.getCell½  s   € Ø�y‰y× Ñ   1Ó%Ð%r   c                 ó>   — | j                   j                  |||«       y r   )r  r  ©r   r+  r  Úcs       r   r  zCombinedTable.setCellÀ  s   € Ø�	‰	×Ñ˜!˜A˜aÕ r   c                 ó,   — t         j                  | «      S r   ©ÚSimpleTableÚtableToStringr   s    r   ra   zCombinedTable.toStringÃ  ó   € Ü×(Ñ(¨Ó.Ð.r   c                 ó6   — | j                   j                  «       S r   ©r  r  r   s    r   r  zCombinedTable.getCellViewÆ  ó   € Ø�v‰v×!Ñ!Ó#Ð#r   c                 ó6   — | j                   j                  «       S r   )r  r  r   s    r   r  zCombinedTable.isResizableÉ  s   € Ø�y‰y×$Ñ$Ó&Ð&r   c                 ó:   — | j                   j                  ||«      S r   )r  r  ©r   Úwrˆ   s      r   r  zCombinedTable.resizeÌ  s   € Ø�y‰y×Ñ  !Ó$Ð$r   c                 ó8   — | j                   j                  «        y r   )r  r  r   s    r   r  zCombinedTable.clearÏ  s   € Ø�	‰	�‰Õr   c                 ó:   — | j                   j                  ||«      S r   )r  r  ©r   ÚfateÚhfates      r   r  z CombinedTable.insertOrDeleteRowsÒ  s   € Ø�y‰y×+Ñ+¨D°Ó7Ð7r   c                 ó:   — | j                   j                  ||«      S r   )r  r  ©r   r>  Úwfates      r   r  z#CombinedTable.insertOrDeleteColumnsÕ  s   € Ø�y‰y×.Ñ.¨t°EÓ:Ð:r   c                 ó6   — | j                   j                  «       S r   )r  r	  r   s    r   r	  zCombinedTable.trimBlankØ  r'  r   c                  ó   — y r   r+   r   s    r   r  zCombinedTable.getDataÛ  ó   € Ør   c                 ó6   — | j                   j                  «       S r   )r  r  r   s    r   r  zCombinedTable.cloneÞ  s   € Ø�y‰y�‰Ó Ð r   c                 ó6   — | j                   j                  «       S r   )r  r  r   s    r   r  zCombinedTable.createá  s   € Ø�v‰v�}‰}‹Ðr   c                 ó   — | j                   S r   ©rS   r   s    r   r  zCombinedTable.getMetaä  ó   € Ø�y‰yÐr   N)r(   r)   r*   r?   r@   rA   rB   rÿ   Ú_hx_interfacesr   r  r  r
  r  r  r  ra   r  r  r  r  r  r  r	  r  r  r  r  r+   r   r   r  r  Š  s€   „ Ø$€NØA€IÚB€Jò y€KØ�W€Nò*ò@òò%ò&ò&ò!ò/ò$ò'ò%òò8ò;ò%òò!òór   r  c                   ó–   — e Zd Zd ZdZg d¢Zg d¢ZegZd„ Z	d„ Z
d„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)r  )Úparentr  r  r  rS   ©r  r
  r  r  r  ra   r  r  r  r  r  r  r	  r  r  r  r  c                 óf   — d | _         || _        || _        || _        |j	                  «       | _        y r   )rS   rM  r  r  r  ©r   rM  r  r  s       r   r   zCombinedTableBody.__init__ñ  s+   € ØˆŒ	ØˆŒØˆŒØˆŒØ—:‘:“<ˆ�r   c                 ó   — | S r   r+   r   s    r   r  zCombinedTableBody.getTableø  r%  r   c                 ó<   — | j                   j                  «       dz
  S ©Nr{   ©r  r
  r   s    r   r
  zCombinedTableBody.get_widthû  s   € Ø—‘×"Ñ"Ó$ qÑ(Ð)r   c                 óV   — | j                   j                  «       | j                  z
  dz   S rS  )r  r  r  r   s    r   r  zCombinedTableBody.get_heightþ  s#   € Ø—‘×$Ñ$Ó&¨¯©Ñ0°AÑ5Ð6r   c                 óB  — |dk(  rb| j                   €-| j                  j                  «       j                  «       | _         | j                   j	                  || j
                  z   d«      S | j                  j	                  || j
                  z   || j                  z   dz
  «      S ©Nr   r{   )rS   rM  r  ÚasTabler  r  r  r  r*  s      r   r  zCombinedTableBody.getCell  s{   € Ø�ŠFØ—	‘	Ð!Ø ŸK™K×/Ñ/Ó1×9Ñ9Ó;�”	Ø—9‘9×$Ñ$ a¨$¯'©'¡k°1Ó5Ð5Ø�x‰x×Ñ  T§W¡W¡°°D·G±G±¸qÑ/@ÓBÐBr   c                 óØ   — |dk(  r+| j                   j                  || j                  z   d|«       y | j                   j                  || j                  z   || j                  z   dz
  |«       y rW  )r  r  r  r  r-  s       r   r  zCombinedTableBody.setCell  sU   € Ø�ŠFØ�H‰H×Ñ˜a $§'¡'™k¨1¨QÔ/ØØ�‰×Ñ˜!˜dŸg™g™+¨¨T¯W©W©¸Ñ(9¸1Õ=r   c                 ó,   — t         j                  | «      S r   r0  r   s    r   ra   zCombinedTableBody.toString  r3  r   c                 ó6   — | j                   j                  «       S r   ©r  r  r   s    r   r  zCombinedTableBody.getCellView  ó   € Ø�x‰x×#Ñ#Ó%Ð%r   c                 ó6   — | j                   j                  «       S r   )r  r  r   s    r   r  zCombinedTableBody.isResizable  r]  r   c                 óZ   — | j                   j                  |dz   || j                  z   «      S rS  )r  r  r  r9  s      r   r  zCombinedTableBody.resize  s#   € Ø�x‰x�‰  A¡¨¨D¯G©G©Ó5Ð5r   c                 óT   — | j                   j                  «        d| _        d| _        y rm   )r  r  r  r  r   s    r   r  zCombinedTableBody.clear  s   € Ø�‰�‰ÔØˆŒØˆ�r   c                 ó®  — t        «       }d}| j                  }||k  r|}|dz   }|j                  |«       ||k  rŒd}d}|t        |«      k  r]|dk\  r|t        |«      k  r||   nd }|dz   }|rd}Œ2|dk\  r|| j                  z   dz
  n|}	|j                  |	«       |t        |«      k  rŒ]| j                  j                  ||| j                  z   dz
  «      S ©Nr   r{   TF)r�   r  r‚   rª   r  r  )
r   r>  r?  Úfate2rÈ   rÉ   r  ÚhdrÚfr+  s
             r   r  z$CombinedTableBody.insertOrDeleteRows  sÞ   € Ü“ˆØˆØ�g‰gˆØ�CŠxØˆAØ�q‘&ˆBØ�L‰L˜ŒOð �C‹xð ˆØˆØ”C˜“IŠ~Ø 1šW¨¬c°$«iª��b’¸TˆAØ�q‘&ˆBÙØ�ØØ*+¨qª&�1�t—w‘w‘; !Ò#¸ˆAØ�L‰L˜ŒOð ”C˜“I‹~ð �x‰x×*Ñ*¨5°5¸4¿7¹7±?ÀaÑ2GÓIÐIr   c                 ó   — t        «       }d}| j                  dz   }||k  r|}|dz   }|j                  |«       ||k  rŒd}|t        |«      k  rX|dk\  r|t        |«      k  r||   nd }|dz   }|dk\  r|| j                  z   dz   n|}|j                  |«       |t        |«      k  rŒX| j                  j                  ||| j                  z   «      S rW  )r�   r  r‚   rª   r  r  )r   r>  rB  rc  rÈ   rÉ   r+  re  s           r   r  z'CombinedTableBody.insertOrDeleteColumns3  sÍ   € Ü“ˆØˆØ�w‰w˜‰{ˆØ�CŠxØˆAØ�q‘&ˆBØ�L‰L˜ŒOð �C‹xð ˆØ”C˜“IŠ~Ø 1šW¨¬c°$«iª��b’¸TˆAØ�q‘&ˆBØ*+¨qª&�1�t—w‘w‘; !Ò#¸ˆAØ�L‰L˜ŒOð	 ”C˜“I‹~ð
 �x‰x×-Ñ-¨e°U¸T¿W¹W±_ÓFÐFr   c                 ó6   — | j                   j                  «       S r   )r  r	  r   s    r   r	  zCombinedTableBody.trimBlankC  ó   € Ø�x‰x×!Ñ!Ó#Ð#r   c                  ó   — y r   r+   r   s    r   r  zCombinedTableBody.getDataF  rE  r   c                 óH   — t        | j                  j                  «       «      S r   )r  r  r  r   s    r   r  zCombinedTableBody.cloneI  s   € Ü˜TŸX™XŸ^™^Ó-Ó.Ð.r   c                 óH   — t        | j                  j                  «       «      S r   )r  r  r  r   s    r   r  zCombinedTableBody.createL  s   € Ü˜TŸX™XŸ_™_Ó.Ó/Ð/r   c                 ó6   — | j                   j                  «       S r   )rM  r  r   s    r   r  zCombinedTableBody.getMetaO  s   € Ø�{‰{×"Ñ"Ó$Ð$r   N©r(   r)   r*   r?   r@   rA   rB   rÿ   rK  r   r  r
  r  r  r  ra   r  r  r  r  r  r  r	  r  r  r  r  r+   r   r   r  r  ê  s}   „ Ø(€NØ5€IÚ6€Jò r€KØ�W€Nò òò*ò7òCò>ò/ò&ò&ò6òò
Jò(Gò $òò/ò0ó%r   r  c                   ó–   — e Zd Zd ZdZg d¢Zg d¢ZegZd„ Z	d„ Z
d„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)r  ©rM  r  r  r  rN  c                 óX   — || _         || _        || _        |j                  «       | _        y r   ro  rP  s       r   r   zCombinedTableHead.__init__\  s$   € ØˆŒØˆŒØˆŒØ—:‘:“<ˆ�r   c                 ó   — | S r   r+   r   s    r   r  zCombinedTableHead.getTableb  r%  r   c                 ó6   — | j                   j                  «       S r   rT  r   s    r   r
  zCombinedTableHead.get_widthe  rh  r   c                 ó   — | j                   S r   )r  r   s    r   r  zCombinedTableHead.get_heighth  r¤   r   c                 ó*  — |dk(  rs| j                  «       }|j                  | j                  j                  ||«      «      }dt	        |«      k\  rdn|d   dk(  r t
        j                  |dt	        |«      «      S | j                  j                  ||«      S )Nr   r�   ú@r{   )r  ra   r  r  rª   ÚHxStringÚsubstr)r   r+  r  r;   r   s        r   r  zCombinedTableHead.getCellk  s|   € Ø�ŠFØ× Ñ Ó"ˆAØ—*‘*˜TŸX™X×-Ñ-¨a°Ó2Ó3ˆCØœs 3›xš-‘"¨s°1©v¸3Ò>Ü—‘ s¨1¬S°«XÓ6Ð6Ø�x‰x×Ñ  !Ó$Ð$r   c                 ó>   — | j                   j                  |||«       y r   )r  r  r-  s       r   r  zCombinedTableHead.setCells  s   € Ø�‰×Ñ˜˜1˜QÕr   c                 ó,   — t         j                  | «      S r   r0  r   s    r   ra   zCombinedTableHead.toStringv  r3  r   c                 ó6   — | j                   j                  «       S r   r\  r   s    r   r  zCombinedTableHead.getCellViewy  r]  r   c                  ó   — y©NFr+   r   s    r   r  zCombinedTableHead.isResizable|  ó   € Ør   c                  ó   — yr|  r+   r9  s      r   r  zCombinedTableHead.resize  r}  r   c                  ó   — y r   r+   r   s    r   r  zCombinedTableHead.clear‚  ry   r   c                  ó   — yr|  r+   r=  s      r   r  z$CombinedTableHead.insertOrDeleteRows…  r}  r   c                 ó:   — | j                   j                  ||«      S r   )r  r  rA  s      r   r  z'CombinedTableHead.insertOrDeleteColumnsˆ  s   € Ø�x‰x×-Ñ-¨d°5Ó9Ð9r   c                  ó   — yr|  r+   r   s    r   r	  zCombinedTableHead.trimBlank‹  r}  r   c                  ó   — y r   r+   r   s    r   r  zCombinedTableHead.getDataŽ  rE  r   c                  ó   — y r   r+   r   s    r   r  zCombinedTableHead.clone‘  rE  r   c                  ó   — y r   r+   r   s    r   r  zCombinedTableHead.create”  rE  r   c                  ó   — y r   r+   r   s    r   r  zCombinedTableHead.getMeta—  rE  r   Nrm  r+   r   r   r  r  U  sz   „ Ø(€NØ-€IÚ.€Jò r€KØ�W€Nò òò$òò%ò ò/ò&òòòòò:òòòòór   r  c                   ó~   — e Zd Zd ZdZg d¢Zg d¢Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚCompareFlags)ÚorderedÚshow_unchangedÚunchanged_contextÚalways_show_orderÚnever_show_orderÚshow_unchanged_columnsÚunchanged_column_contextÚalways_show_headerÚactsÚidsÚcolumns_to_ignorerX   Úallow_nested_cellsÚwarningsÚdiff_strategyÚpadding_strategyÚ	show_metaÚshow_unchanged_metarM  Úcount_like_a_spreadsheetÚignore_whitespaceÚignore_caseÚignore_epsilonÚterminal_formatÚ
use_glyphsÚ
quote_html)ÚfilterÚallowUpdateÚallowInsertÚallowDeleteÚallowColumnÚgetIgnoredColumnsÚaddPrimaryKeyÚignoreColumnÚaddTableÚ
addWarningÚ
getWarningÚgetNameByRoleÚgetCanonicalNameÚgetIdsByRolec                 óp  — d | _         d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d | _	        d | _
        d | _        d| _        d | _        d | _        d| _        d| _        d | _        d | _        d| _        d| _        d| _        d| _        d | _        d| _        d| _        y )NTFr{   ro   )r—  r‰  rŠ  r‹  rŒ  r�  rŽ  r�  r�  r‘  r’  r“  r”  r•  r–  r˜  r™  rX   rM  rš  r›  rœ  r�  rž  rŸ  r   r   s    r   r   zCompareFlags.__init__£  sÉ   € Ø $ˆÔØˆŒØ#ˆÔØ!"ˆÔØ!&ˆÔØ $ˆÔØ&+ˆÔ#Ø()ˆÔ%Ø"&ˆÔØˆŒ	ØˆŒØ!%ˆÔØ"'ˆÔØˆŒØ!ˆÔØˆŒØ#(ˆÔ ØˆŒØˆŒØ(,ˆÔ%Ø!&ˆÔØ ˆÔØ ˆÔØ#ˆÔØˆŒØˆ�r   c                 ón  — | j                   €wt        «       | _         | | j                   j                  d<   | | j                   j                  d<   | | j                   j                  d<   | | j                   j                  d<   || j                   j                  vry|| j                   j                  |<   y)NrÞ   ÚinsertÚdeleteÚcolumnFT)r‘  Úhaxe_ds_StringMaprˆ   )r   ÚactÚallows      r   r¡  zCompareFlags.filter¿  sŽ   € Ø�I‰IÐÜ)Ó+ˆDŒIØ). YˆD�I‰I�K‰K˜Ñ!Ø). YˆD�I‰I�K‰K˜Ñ!Ø). YˆD�I‰I�K‰K˜Ñ!Ø). YˆD�I‰I�K‰K˜Ñ!Ø˜Ÿ	™	Ÿ™Ñ#ØØ ˆ�	‰	�‰�CÑØr   c                 óš   — | j                   €yd| j                   j                  v r&| j                   j                  j                  dd «      S y)NTrÞ   F©r‘  rˆ   r‰   r   s    r   r¢  zCompareFlags.allowUpdateË  ó;   € Ø�I‰IÐØØ˜Ÿ	™	Ÿ™Ñ#Ø—9‘9—;‘;—?‘? 8¨DÓ1Ð1àr   c                 óš   — | j                   €yd| j                   j                  v r&| j                   j                  j                  dd «      S y)NTr±  Fr¸  r   s    r   r£  zCompareFlags.allowInsertÓ  r¹  r   c                 óš   — | j                   €yd| j                   j                  v r&| j                   j                  j                  dd «      S y)NTr²  Fr¸  r   s    r   r¤  zCompareFlags.allowDeleteÛ  r¹  r   c                 óš   — | j                   €yd| j                   j                  v r&| j                   j                  j                  dd «      S y)NTr³  Fr¸  r   s    r   r¥  zCompareFlags.allowColumnã  r¹  r   c                 óü   — | j                   €y t        «       }d}t        | j                   «      }||k  rH|}|dz   }d|j                  |dk\  r'|t        | j                   «      k  r| j                   |   nd <   ||k  rŒH|S ©Nr   r{   T)r“  r´  rª   rˆ   )r   ÚignorerÈ   rÉ   Úis        r   r¦  zCompareFlags.getIgnoredColumnsë  s‡   € Ø×"Ñ"Ð*ØÜ"Ó$ˆØˆÜ�$×(Ñ(Ó)ˆØ�CŠxØˆAØ�q‘&ˆBØlpˆF�H‰H°1¸²6¸aÄ#Àd×F\ÑF\ÓB]Ò>]�d×,Ñ,¨QÒ/ÐcgÑið �C‹xð ˆr   c                 ót   — | j                   €t        «       | _         | j                   }|j                  |«       y r   )r’  r�   r‚   ©r   r³  r„   s      r   r§  zCompareFlags.addPrimaryKey÷  s*   € Ø�H‰HÐÜ“vˆDŒHØ—‘ˆØ�‰�VÕr   c                 ót   — | j                   €t        «       | _         | j                   }|j                  |«       y r   )r“  r�   r‚   rÂ  s      r   r¨  zCompareFlags.ignoreColumný  s/   € Ø×"Ñ"Ð*Ü%)£VˆDÔ"Ø×&Ñ&ˆØ�‰�VÕr   c                 ót   — | j                   €t        «       | _         | j                   }|j                  |«       y r   )rX   r�   r‚   )r   Útabler„   s      r   r©  zCompareFlags.addTable  s*   € Ø�K‰KÐÜ›&ˆDŒKØ—‘ˆØ�‰�UÕr   c                 ót   — | j                   €t        «       | _         | j                   }|j                  |«       y r   )r•  r�   r‚   )r   Úwarnr„   s      r   rª  zCompareFlags.addWarning	  s*   € Ø�M‰MÐ!Ü ›FˆDŒMØ—‘ˆØ�‰�TÕr   c           	      óŠ   — | j                   }dj                  |D �cg c]  }t        j                  |d«      ‘Œ c}«      S c c}w )Nú
r�   )r•  r>   Úpython_BootÚ	toString1©r   r„   Úx1s      r   r«  zCompareFlags.getWarning  s5   € Ø—‘ˆØ�y‰yÀÖG¸2œ+×/Ñ/°°2Õ6ÒGÓHÐHùÒGó   œA c                 ó
  — |j                  d«      }t        |«      dk  r|S |dk(  rdt        |«      k  r|d   S d S |dk(  r"t        j                  |t        |«      dz
  «      S t        j                  |t        |«      dz
  «      S )Nú:r{   rM  r   Úlocalé   )Úsplitrª   r¿   rÀ   )r   r!   ÚroleÚpartss       r   r¬  zCompareFlags.getNameByRole  s}   € Ø—
‘
˜3“ˆÜ�‹J˜!ŠOØˆKØ�HÒØ !¤C¨£J¢�E˜!‘HÐ9°DÐ9Ø�GŠOÜ,×1Ñ1°%¼#¸e»*Àq¹.ÓJÐJÜ(×-Ñ-¨e´c¸%³jÀ1±nÓFÐFr   c                 ó&   — | j                  |d«      S )NrÑ  )r¬  r    s     r   r­  zCompareFlags.getCanonicalName  s   € Ø×!Ñ! $ wÓ/Ð/r   c                 ó  — t        «       }| j                  €|S d}| j                  }|t        |«      k  rQ|dk\  r|t        |«      k  r||   nd }|dz   }| j                  ||«      }|j	                  |«       |t        |«      k  rŒQ|S rW  )r�   r’  rª   r¬  r‚   )r   rÔ  r—   rÈ   rÉ   r!   r+  s          r   r®  zCompareFlags.getIdsByRole   s‡   € Ü“ˆØ�H‰HÐØˆMØˆØ�h‰hˆØ”C˜“HŠ}Ø! Qšw¨2´°C³ª=�C˜’G¸dˆDØ�q‘&ˆBØ×"Ñ" 4¨Ó-ˆAØ�M‰M˜!Ôð	 ”C˜“H‹}ð
 ˆr   N)r(   r)   r*   r?   r@   rA   rB   r   r¡  r¢  r£  r¤  r¥  r¦  r§  r¨  r©  rª  r«  r¬  r­  r®  r+   r   r   rˆ  rˆ  �  sl   „ Ø#€Nð \€Iò ]€Jò l€Kòò8
òòòòò
òòòòòIòGò0ór   rˆ  c                   ó~   — e Zd Zd ZdZddgZg d¢Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚCompareTable)rT   ÚindexesrT   rÚ  )ÚrunÚalignÚgetComparisonStateÚ	alignCoreÚ
alignCore2ÚalignColumnsÚtestHasSameColumnsÚhasSameColumns2ÚtestIsEqualÚisEqual2ÚcompareCoreÚstoreIndexesÚ
getIndexesÚuseSqlc                 óž   — d | _         || _        |j                  �3|j                  j                  �|j                  j                  |_        y y y r   )rÚ  rT   Úcompare_flagsrM  r¢   )r   rT   s     r   r   zCompareTable.__init__6  sK   € ØˆŒØˆŒ	Ø×ÑÐ*Ø×"Ñ"×)Ñ)Ð5Ø×+Ñ+×2Ñ2�•ð 6ð +r   c                 óî   — | j                  «       rd| j                  _        y| j                  «       }|r?| j                  j                  r)| j                  «       }|r| j                  j                  rŒ)| S r$   )rè  rT   Ú	completedrå  Úrun_to_completion)r   Úmores     r   rÛ  zCompareTable.run=  s^   € Ø�;‰;Œ=Ø"&ˆD�I‰IÔØØ×ÑÓ!ˆÙ˜Ÿ	™	×3Ò3Ø×#Ñ#Ó%ˆDñ ˜Ÿ	™	×3Ó3à�Ðr   c                 óú   — | j                   j                  s'| j                  «        | j                   j                  sŒ't        «       }| j	                  |«       | j                   |_         || j                   _        |S r   )rT   rì  rÛ  rD   rÞ  Ú	alignment)r   rð  s     r   rÜ  zCompareTable.alignF  sW   € Ø—9‘9×&Ò&Ø�H‰HŒJð —9‘9×&Ó&ä“Kˆ	Ø�‰�yÔ!ØŸ™ˆ	ŒØ'ˆ�	‰	ÔØÐr   c                 ó   — | j                   S r   )rT   r   s    r   rÝ  zCompareTable.getComparisonStateO  rJ  r   c                 ó¾  — | j                  «       �rFd }d }d }| j                  j                  €-| j                  j                  }| j                  j                  }nQt        «       |_        | j                  j                  }| j                  j                  }| j                  j                  }d }|�|j                  «       }|€|�|j                  «       }|€|�|j                  «       }t        |||||| j                  j                  «      }|j                  «        | j                  j                  �%|j                  j                  |j                  _        y | j                  j                  €<| j                  || j                  j                  | j                  j                  «       y t        «       |_        | j                  || j                  j                  | j                  j                  «       | j                  |j                  | j                  j                  | j                  j                  «       |j                  j                  |j                  _        y r   )rè  rT   r¢   r}   r~   rD   rR   ÚgetDatabaseÚ
SqlComparerê  ÚapplyrS   rß  )r   rÜ  Útab1Útab2Útab3ÚdbÚscs          r   rÞ  zCompareTable.alignCoreR  s�  € Ø�;‰;�=ØˆDØˆDØˆDØ—	‘	—‘Ð#Ø—y‘y—{‘{�Ø—y‘y—{‘{‘ä"+£+�”Ø—y‘y—{‘{�Ø—y‘y—{‘{�Ø—y‘y—{‘{�ØˆBØÐ Ø×%Ñ%Ó'�Ø� 4Ð#3Ø×%Ñ%Ó'�Ø� 4Ð#3Ø×%Ñ%Ó'�Ü˜B˜t D¨¨e°D·I±I×4KÑ4KÓLˆBØ�H‰HŒJØ—	‘	—‘Ð'Ø',§¡×';Ñ';�—
‘
Ô$ØØ�I‰I�K‰KÐØ�O‰O˜E $§)¡)§+¡+¨d¯i©i¯k©kÔ:ØÜ#›+ˆŒØ�‰˜˜dŸi™iŸk™k¨$¯)©)¯+©+Ô6Ø�‰˜Ÿ™¨¯	©	¯©°D·I±I·K±KÔ@Ø$Ÿ™×3Ñ3ˆ�
‰
Õr   c                 ó4  — |j                   €t        «       |_         | j                  |j                   ||«       |j                   j                  «       }|j	                  |j                  «       |j                  «       «       |j                  ||«       |j                  d«       |j                  «       }|j                  «       }|j                  «       }|j                  «       }d }	d }
d}| j                  j                  �d| j                  j                  j                  }	| j                  j                  j                  «       }
| j                  j                  j                  }t        «       }|j!                  «       }|j!                  «       }d}|j#                  «       }|t%        |«      k  �r2|dk\  r|t%        |«      k  r||   nd }|dz   }|j&                  dk\  rô|j(                  dk\  rå|j*                  dk7  rÖ|
�Ã|j&                  dk\  rR|dk\  rM||j                  «       k  r:|j-                  |j/                  |j&                  |«      «      }||
j0                  v rŒ¾|j(                  dk\  rS|dk\  rN||j                  «       k  r;|j-                  |j/                  |j(                  |«      «      }||
j0                  v r�Œ |j3                  |«       |t%        |«      k  r�Œ2d }|}|}t5        «       }t5        «       }|	��Yt7        | j                  j                  «      }t9        «       }d}|t%        |	«      k  r=|dk\  r|t%        |	«      k  r|	|   nd }|dz   }d|j0                  |<   |t%        |	«      k  rŒ=d}|t%        |«      k  r×|dk\  r|t%        |«      k  r||   nd }|dz   }|j-                  |j/                  |j&                  d«      «      }|j-                  |j/                  |j(                  d«      «      }||j0                  v s||j0                  v r7|j;                  |j&                  |j(                  «       |j=                  |«       |t%        |«      k  rŒ×|j?                  ||d«       | j@                  �| j@                  }|j3                  |«       d}|}||k  �rÕ|}|dz   }|jC                  |«      }|jD                  } |jF                  }!| dk7  s|!dk7  rŒAtH        jK                  |jL                  jN                  d«      }"|jQ                  ||"«       |jS                  |"d«       ||j0                  vr|dz
  }|jS                  |d«       ||k  rŒ´�nd}#t        «       }$t%        |«      |#kD  �rýt        «       }%d}t%        |«      }||k  �r1|}&|dz   }d}'t9        «       }(t9        «       })|&dk\  r|&t%        |«      k  r||&   nd j&                  }*|&dk\  r|&t%        |«      k  r||&   nd j(                  }+d},|}-|,|-k  rP|,}|,dz   },|j-                  |j/                  |*|«      «      }.|.|(j0                  vrd|(j0                  |.<   |'dz   }'|,|-k  rŒPd}/|}0|/|0k  rP|/}1|/dz   }/|j-                  |j/                  |+|1«      «      }2|2|)j0                  vrd|)j0                  |2<   |'dz   }'|/|0k  rŒP|%j3                  |&|'g«       ||k  r�Œ1d„ }3|3}4|%jU                  tW        jX                  |4«      ¬«       g }d}5|%}6|5t%        |6«      k  rV|5}7|5dz   }5|7dk\  r|7t%        |6«      k  r|6|7   nd }8dt%        |8«      k  r|8d   nd }9|j3                  |9«       |5t%        |6«      k  rŒVtZ        j]                  |«      }$|$d|# }$n0d}t%        |«      }||k  r|}&|dz   }|$j3                  |&«       ||k  rŒt_        j`                  t_        jb                  dt%        |$«      «      d	z   «      }:t5        «       };d}|}||k  r|}|dz   }|;jS                  ||«       ||k  rŒt5        «       }<d}=d}|:}||k  �rZ|}>|dz   }|>dk(  rŒ|dk(  r�nFt        «       }?|>}@d}A@dkD  rRtd        jg                  @d«      dk(  r)|?j3                  Adk\  rAt%        |$«      k  r|$A   nd «       @dz	  }@Adz   }A|@dkD  rŒRt7        | j                  j                  «      }Bd},t%        |?«      }-|,|-k  r˜|,}C|,dz   },|Cdk\  rCt%        |?«      k  r|?C   nd }D|Ddk\  rDt%        |«      k  r|D   nd }Bj;                  |j&                  |j(                  «       D|<j0                  vr#|j=                  |«       |<jS                  Dd«       |,|-k  rŒ˜Bj?                  ||d«       |>|:dz
  k(  rB}|j                  «       }E|j                  «       |EkD  r|j                  «       }EEdk  rd}EBji                  «       }F|F}G|GEd
z   z  }G|Gdk\  r|=dkD  s|>|:dz
  k  r�ŒÍ|=dz   }=| j@                  �| j@                  }|j3                  B«       t        «       }H|;jk                  «       }|jm                  «       rç|jo                  «       }1BjC                  |1«      }|jD                  } |jF                  }!| dk7  s|!dk7  rŒTtH        jK                  |jL                  jN                  d«      }I|I|j0                  vrZHj3                  |1«       |jQ                  |1I«       |jS                  |Id«       |1|j0                  vr|dz
  }|jS                  |1d«       |jm                  «       rŒçd}/t%        H«      }0|/|0k  r;|/}J|/dz   }/|;jq                  |Jdk\  rJt%        H«      k  rHJ   nd «       |dz
  }|/|0k  rŒ;||k  r�ŒZ|��d}Kd}Ld}|dk  r÷|}M|dz   }|dkD  rÞd }NLdk(  r
|dkD  r|dz
  }Nd}|},||,k  rÄ|}O|dz   }|OLz  Kz   }P|js                  |P«      }Q|Q�QLz   }N|N|k\  sNdk  rn’Œ8N€Œ;|ju                  P«      }R|jw                  N«      }S|R|Sk7  rŒcN|j0                  v rŒr|jQ                  PN«       |jS                  |Nd«       |jS                  |Pd«       |dz
  }|NLz   }N|N|k\  sNdk  rn|dk(  rn||,k  rŒÄ|dz
  }Kd}L|dk  rŒ÷d}Kd}Ld}|dk  r÷|}M|dz   }|dkD  rÞd }PLdk(  r
|dkD  r|dz
  }Pd}|},||,k  rÄ|}T|dz   }|TLz  Kz   }N|jy                  |N«      }U|U�ULz   }P|P|k\  sPdk  rn’Œ8P€Œ;|ju                  P«      }R|jw                  N«      }S|R|Sk7  rŒcP|j0                  v rŒr|jQ                  PN«       |jS                  |Nd«       |jS                  |Pd«       |dz
  }|PLz   }P|P|k\  sPdk  rn|dk(  rn||,k  rŒÄ|dz
  }Kd}L|dk  rŒ÷d}|}||k  r-|}&|dz   }|&|j0                  vr|jQ                  |&d«       ||k  rŒ-d}|}||k  r-|}&|dz   }|&|j0                  vr|jQ                  d|&«       ||k  rŒ-|dkD  r+|dkD  r%|jQ                  dd«       |j{                  dd«       y y y )NTr   r{   ro   é   c                 ód  — dt        | «      k  r| d   nd dt        |«      k  r|d   nd k  rydt        | «      k  r| d   nd dt        |«      k  r|d   nd kD  rydt        | «      k  r| d   nd dt        |«      k  r|d   nd kD  rydt        | «      k  r| d   nd dt        |«      k  r|d   nd k  ryy©Nr{   ro   r   ©rª   ©r}   r~   s     r   Ú_hx_local_6z,CompareTable.alignCore2.<locals>._hx_local_6å  sµ   € Ø!"¤S¨£V¢˜˜1š°À!ÄcÈ!ÃfÂ*¸!¸Aº$ÐRVÒWØ Ø!"¤S¨£V¢˜˜1š°À!ÄcÈ!ÃfÂ*¸!¸Aº$ÐRVÒWØ!Ø!"¤S¨£V¢˜˜1š°À!ÄcÈ!ÃfÂ*¸!¸Aº$ÐRVÒWØ Ø!"¤S¨£V¢˜˜1š°À!ÄcÈ!ÃfÂ*¸!¸Aº$ÐRVÒWØ!Ør   r¶   rÒ  ç      à?é   gš™™™™™¹?)>rS   rD   rà  rb   rW   r  rX   rZ   r
  r  rT   rê  r’  r¦  r‰  r�   rf   ÚgetListrª   r    r¡   r¢   ra   r  rˆ   r‚   rp   Ú	IndexPairr´  Ú
addColumnsr\   ÚindexTablesrÚ  Ú
queryLocalÚspot_aÚspot_br¿   rÀ   Úitem_bÚlstr[   r|   r¼   r½   r¾   ÚLambdaÚarrayÚMathÚfloorÚpowr“   ÚmodÚ
getTopFreqr¸   r¹   rº   Úremover^   ÚlocalKeyÚ	remoteKeyr_   rY   )Vr   rÜ  r}   r~   Úcolumn_orderr:  rG   rH   Úavr’  r¿  r‰  Úcommon_unitsÚ	ra_headerÚ	rb_headerrÈ   rÉ   rƒ   r!   Úname1Ú	index_topÚ
pending_ctÚreverse_pending_ctÚusedÚused_reverseÚ
ids_as_mapÚidÚnaÚnbr„   ÚjÚcrossr	  r
  ÚjbÚNÚcolumnsÚcolumns_evalrÀ  ÚctÚmemÚmem2ÚcaÚcbÚ_g2Ú_g3r·   Ú_g4Ú_g5Új1Úkey1r  ÚsorterÚ
_g_currentÚ_g_arrayr+  rÍ  Úx2rÅ   ÚpendingÚadded_columnsÚindex_ctrÃ   Úactive_columnsÚkkÚatr0   rÄ   Úcolrˆ   Úwide_top_freqÚratioÚfixedÚvalÚj2ÚoffsetÚscaleÚsgnÚxbÚxa0ÚxaÚxb2ÚkaÚkbÚxb0Úxa2sV                                                                                         r   rß  zCompareTable.alignCore2s  s>  € Ø�J‰JÐÜ"›ˆEŒJØ×Ñ˜%Ÿ*™* Q qÔ)Ø—z‘z×)Ñ)Ó+ˆØ�‰�A—L‘L“N 1§<¡<£>Ô2Ø�‰�Q�qÔØ×Ñ˜ÔØ�K‰K‹MˆØ�\‰\‹^ˆØ�\‰\‹^ˆØ�]‰]‹_ˆØˆØˆØˆØ�I‰I×#Ñ#Ð/Ø—)‘)×)Ñ)×-Ñ-ˆCØ—Y‘Y×,Ñ,×>Ñ>Ó@ˆFØ—i‘i×-Ñ-×5Ñ5ˆGÜ“vˆØ×)Ñ)Ó+ˆ	Ø×)Ñ)Ó+ˆ	ØˆØ×"Ñ"Ó$ˆØ”C˜“H‹}Ø! Qšw¨2´°C³ª=�C˜’G¸dˆDØ�q‘&ˆBØ—&‘&˜A’+ T§V¡V¨q¢[¸$¿&¹&ÀBº,ØÐ&ØŸ&™& Aš+¨Y¸!ª^ÀYÐQR×Q]ÑQ]ÓQ_ÒE_Ø!Ÿ{™{¨1¯9©9°T·V±V¸IÓ+FÓG˜Ø  F§H¡HÑ,Ø$ØŸ&™& Aš+¨Y¸!ª^ÀYÐQR×Q]ÑQ]ÓQ_ÒE_Ø "§¡¨A¯I©I°d·f±f¸YÓ,GÓ H˜Ø! V§X¡XÑ-Ù$Ø×#Ñ# DÔ)ð ”C˜“HŒ}ð ˆ	Øˆ
ØÐÜÓˆÜ%Ó'ˆØ‰OÜ! $§)¡)×"9Ñ"9Ó:ˆIÜ*Ó,ˆJØˆBØœ˜C›’=Ø!# q¢¨R´#°c³(ª]�c˜"’gÀ�Ø˜1‘f�Ø#'�
—‘˜RÑ ð œ˜C›“=ð ˆBØœ˜LÓ)Ò)Ø,.°!ªG¸¼SÀÓ=NÒ8N˜ RÒ(ÐTX�Ø˜1‘f�Ø—[‘[ §¡¨4¯6©6°!Ó!4Ó5�Ø—[‘[ §¡¨4¯6©6°!Ó!4Ó5�Ø˜:Ÿ<™<Ñ'¨R°:·<±<Ñ-?Ø×(Ñ(¨¯©°·±Ô7Ø×)Ñ)¨$Ô/ð œ˜LÓ)Ó)ð ×!Ñ! ! A aÔ(Ø—‘Ð(ØŸ™�Ø—‘˜YÔ'ØˆBØˆCØ˜“8Ø�Ø˜1‘f�Ø!×,Ñ,¨QÓ/�ØŸ™�ØŸ™�Ø˜q’[ v°¢{ØÜ.×3Ñ3°E·L±L×4DÑ4DÀaÓH�Ø—
‘
˜1˜RÔ Ø—‘˜˜A”Ø˜lŸn™nÑ,Ø*<¸qÑ*@Ð&Ø× Ñ   1Ô%ð ˜•8ð ˆAÜ“fˆGÜ�LÓ! AÓ%Ü#›v�Ø�Ü˜,Ó'�Ø˜C“xØ�AØ˜q™&�BØ�BÜ+Ó-�CÜ,Ó.�DØ-.°!ªV¸¼CÀÓ<MÒ8M˜, qš/ÐSW×ZÑZ�BØ-.°!ªV¸¼CÀÓ<MÒ8M˜, qš/ÐSW×ZÑZ�BØ�CØ�CØ š9Ø˜Ø" Q™w˜Ø Ÿk™k¨!¯)©)°B°q«/Ó:˜Ø!$¨¯©¡Ø)*˜CŸE™E #™JØ"$ q¡&˜Bð  ›9ð �CØ�CØ š9Ø ˜Ø" Q™w˜Ø!Ÿ{™{¨1¯9©9°R¸Ó+;Ó<˜Ø!%¨¯©¡Ø+,˜DŸF™F 4™LØ"$ q¡&˜Bð  ›9ð !×'Ñ'¨¨B¨Ô0ð5 ˜C”xò6	ð %�Ø×!Ñ!Ô';×'FÑ'FÀvÓ'NÐ!ÔOØ�Ø�
Ø'�Ø!¤C¨£MÒ1Ø"�AØ",¨q¡.�JØ)*¨aª°A¼¸H»Ò4E˜( 1š+È4�BØ#$¤s¨2£w¢;˜"˜Qš%°D�BØ—I‘I˜b”Mð "¤C¨£MÓ1ô !Ÿ,™, rÓ*�Ø! ! A˜,‘à�Ü˜,Ó'�Ø˜C’xØ�AØ˜q™&�BØ—N‘N 1Ô%ð ˜C“xô —*‘*œdŸh™h q¬¨W«Ó6¸Ñ<Ó>ˆCÜ$Ó&ˆGØˆBØˆCØ˜’8Ø�Ø˜1‘f�Ø—‘˜A˜aÔ ð ˜“8ô +Ó,ˆMØˆHØˆBØˆCØ˜“8Ø�Ø˜1‘f�Ø˜’FØØ !’OÙÜ!%£�Ø�Ø�Ø˜A’vÜ#Ÿ™¨¨AÓ.°!Ò3Ø&×-Ñ-¸bÀAºgÈ"ÌsÐSZË|ÒJ[¨w°rª{ÐaeÔgØ ™'�BØ˜q™&�Bð	 ˜A“vô
 " $§)¡)×"9Ñ"9Ó:�Ø�Ü˜.Ó)�Ø˜S’yØ�BØ ™7�CØ13°q²¸RÄ#ÀnÓBUÒ=U˜>¨"Ò-Ð[_�CØ14¸²¸cÄCÈÓDUÒ>U˜L¨Ò-Ð[_�DØ×$Ñ$ T§V¡V¨D¯F©FÔ3Ø  M§O¡OÑ3Ø×-Ñ-¨dÔ3Ø%×)Ñ)¨#¨dÔ3ð ˜S“yð ×!Ñ! ! A aÔ(Ø˜3 ™7Ò$Ø %�IØ—L‘L“N�Ø—L‘L“N QÒ&ØŸ™›�AØ˜’EØ�AØ %× 0Ñ 0Ó 2�Ø%�Ø 1 r¡6Ñ+�Ø˜S’LØ! Aš¨A°#¸±'ªOÙ Ø$ q™L�Ø—L‘LÐ,Ø ŸL™L�EØ—L‘L Ô'Ü›�Ø—L‘L“N�Ø—i‘i”kØŸ™›�BØ!×,Ñ,¨RÓ0�EØ"Ÿ\™\�FØ"Ÿ\™\�FØ 1š¨6°Qª;Ø Ü3×8Ñ8¸¿¹×9IÑ9IÈ1ÓM�CØ  D§F¡F™]ØŸ™ RÔ(ØŸ
™
 2 cÔ*ØŸ™  QœØ!# |§~¡~Ñ!5Ø2DÀqÑ2HÐ.Ø$×(Ñ(¨¨AÔ.ð —i‘i•kð �Ü˜%“j�Ø˜S’yØ�BØ ™7�CØ—N‘N°°q²¸RÄ#ÀeÃ*º_ E¨"¢IÐRVÔXØ",¨q¡.�Jð	 ˜S“yðA ˜”8ðJ Ñ!ØˆFØˆEØˆBØ˜’6Ø�Ø˜1‘f�Ø ’NØ�BØ "š¨B°ªFØ  1™f˜Ø�CØ�CØ š9Ø!˜Ø" Q™w˜Ø" U™{¨fÑ4˜Ø#Ÿi™i¨›m˜Ø˜OØ"%¨¡+˜BØ!# r¢°°Q²Ø %Ø$Ø˜JØ$Ø&×/Ñ/°Ó3˜Ø&×0Ñ0°Ó4˜Ø "šHØ$Ø $§&¡&™LØ$ØŸ
™
 2 bÔ)ØŸ™  AœØ$×(Ñ(¨¨AÔ.Ø&0°1¡n˜
Ø  5™j˜Ø 2šX¨B°ªFØ!Ø&¨!šOØ!ð5  ›9ð6 ˜q™&�Ø�ðK ˜“6ðL ˆFØˆEØˆBØ˜’6Ø�Ø˜1‘f�Ø&¨Ò*Ø�BØ "š¨B°ªFØ  1™f˜Ø�CØ�CØ š9Ø!˜Ø" Q™w˜Ø" U™{¨fÑ4˜Ø#Ÿi™i¨›m˜Ø˜OØ"%¨¡+˜BØ!# r¢°°Q²Ø %Ø$Ø˜JØ$Ø&×/Ñ/°Ó3˜Ø&×0Ñ0°Ó4˜Ø "šHØ$Ø ,§.¡.Ñ0Ø$ØŸ
™
 2 bÔ)ØŸ™  AœØ$×(Ñ(¨¨AÔ.Ø.@À1Ñ.DÐ*Ø  5™j˜Ø 2šX¨B°ªFØ!Ø.°!Ò3Ø!ð5  ›9ð6 ˜q™&�Ø�ðK ˜“6ðL ˆØˆØ�CŠxØˆAØ�q‘&ˆBØ˜,Ÿ.™.Ñ(Ø—
‘
˜1˜RÔ ð	 �C‹xð
 ˆØˆØ�CŠxØˆAØ�q‘&ˆBØ˜$Ÿ&™&‘[Ø—
‘
˜2˜aÔ ð	 �C‹xð
 �!ŠV˜2 š6Ø�J‰J�q˜ŒOØ�M‰M˜!˜AÕð "ˆVr   c                 óÐ  — |j                  |j                  «       |j                  «       «       |j                  ||«       |j                  d«       d}|j	                  «       }|j	                  «       }d}d}d}	d }
d }d}d}d}d}d}|}||k  �r	|}|dz   }d}|}||k  �rñ|}|dz   }t        «       }t        «       }d}d}||j                  «       k  r…d}|j                  «       }||k  re|}|dz   }|j                  |j                  ||«      «      }||j                  v rd|j                  |<   |dz
  }n||j                  |<   |dz   }||k  rŒe||kD  r|}|}d}||j                  «       k  r…d}|j                  «       }||k  re|} |dz   }|j                  |j                  | |«      «      }!|!|j                  v rd|j                  |!<   |dz
  }n| |j                  |!<   |dz   }||k  rŒe||kD  r|}|}|j                  «       }"|"j                  «       rj|"j                  «       }#|j                  j                  |#d «      }$|j                  j                  |#d «      }%|%�|%dk\  r
|$dk\  r|dz   }|"j                  «       rŒj||	kD  r
|}	|}
|}|}|}||k  r�Œñ||k  r�Œ	|
€r|j                  «       dkD  r&|j                  «       dk(  r|j                  dd«       y |j                  «       dk(  r%|j                  «       dkD  r|j                  dd«       y |
j                  «       }|j                  «       r™|j                  «       }!|
j                  j                  |!d «      }$|j                  j                  |!d «      }%|$�|%�|j                  |$|%«       n)|$�|j                  |$d«       n|%�|j                  d|%«       |j                  «       rŒ™|j                  «       }|j                  «       ro|j                  «       }!|
j                  j                  |!d «      }$|j                  j                  |!d «      }%|$€|%�|j                  d|%«       |j                  «       rŒo|j                  ||«       y )NFrü  r   ro   r{   )rW   r
  rX   rZ   r  r´  r  ra   r  rˆ   r¸   r¹   rº   r‰   rY   r[   )&r   rÜ  r}   r~   ÚslopÚvaÚvbÚra_bestÚrb_bestÚct_bestÚma_bestÚmb_bestr  r  Ú
ra_uniquesÚ
rb_uniquesrÈ   rÉ   Úrar1  r2  ÚrbÚmaÚmbr,  Úuniquesr3  r4  r/  r·   Ú_g6Ú_g7r0  r6  Úkey2Úkey3Úi0Úi1s&                                         r   rà  zCompareTable.alignColumns¹  s-  € Ø�‰�A—K‘K“M !§+¡+£-Ô0Ø�‰�Q�qÔØ×Ñ˜ÔØˆØ�]‰]‹_ˆØ�]‰]‹_ˆØˆØˆØˆØˆØˆØˆ	Øˆ	Øˆ
Øˆ
ØˆØˆØ�C‹xØˆBØ�q‘&ˆBØˆCØˆCØ˜“9Ø�Ø˜Q‘w�Ü&Ó(�Ü&Ó(�Ø�Ø�Ø˜Ÿ™›Ò'Ø�CØŸ+™+›-�CØ š9Ø ˜Ø" Q™w˜Ø Ÿk™k¨!¯)©)°B°rÓ*:Ó;˜Ø 2§4¡4™KØ(*˜BŸD™D ™IØ'.°¡{™Gà(*˜BŸD™D ™IØ'.°¡{˜Gð  ›9ð   *Ò,Ø$&˜	Ø%,˜
Ø�Ø˜Ÿ™›Ò'Ø�CØŸ+™+›-�CØ š9Ø ˜Ø" Q™w˜Ø!Ÿ{™{¨1¯9©9°R¸Ó+;Ó<˜Ø  B§D¡D™LØ)+˜BŸD™D ™JØ'.°¡{™Gà)+˜BŸD™D ™JØ'.°¡{˜Gð  ›9ð   *Ò,Ø$&˜	Ø%,˜
Ø—w‘w“y�Ø—l‘l”nØŸ9™9›;�DØŸ™Ÿ™ $ tÓ,�BØŸ™Ÿ™ $ tÓ,�BØ˜Ø 1šW¨B°!ªGØ"$ q¡&˜Bð —l‘l•nð ˜’LØ �GØ �GØ �GØ �GØ �Gðk ˜”9ð �CŒxðv ˆOØ—‘“ !Ò#¨1¯<©<«>¸QÒ+>Ø—‘˜a Ô#ð ð —<‘<“> QÒ&¨a¯l©l«n¸qÒ.@Ø—‘˜b Ô#ØØ�l‰l‹nˆØ�k‰kŒmØ—8‘8“:ˆDØ—‘—‘˜t DÓ)ˆBØ—‘—‘˜t DÓ)ˆBØ� r ~Ø—
‘
˜2˜bÕ!Ø�.Ø—
‘
˜2˜bÕ!Ø�.Ø—
‘
˜2˜bÔ!ð �k‰k�mð �l‰l‹nˆØ�k‰kŒmØ—8‘8“:ˆDØ—‘—‘˜t DÓ)ˆBØ—‘—‘˜t DÓ)ˆBØ� 2 >Ø—
‘
˜2˜bÔ!ð �k‰k�mð 	�‰�i 	Õ*r   c                 ó  — | j                   j                  }| j                   j                  }| j                   j                  }| j	                  ||«      }|r|�| j	                  ||«      }|| j                   _        d| j                   _        yr™   )rT   r¢   r}   r~   râ  Úhas_same_columnsÚhas_same_columns_known)r   r¢   r}   r~   Úeqs        r   rá  zCompareTable.testHasSameColumns   so   € Ø�I‰I�K‰KˆØ�I‰I�K‰KˆØ�I‰I�K‰KˆØ×!Ñ! ! AÓ&ˆÙ�Q�]Ø×%Ñ% a¨Ó*ˆBØ%'ˆ�	‰	Ô"Ø+/ˆ�	‰	Ô(Ør   c                 ó  — |j                  «       |j                  «       k7  ry|j                  «       dk(  s|j                  «       dk(  ry|j                  «       }d}|j                  «       }||k  rš|}|dz   }|dz   }|j                  «       }||k  r@|}	|dz   }|j                  |j	                  |d«      |j	                  |	d«      «      ry||k  rŒ@|j                  |j	                  |d«      |j	                  |d«      «      sy||k  rŒšy)NFr   Tr{   ©r
  r  r  Úequalsr  ©
r   r}   r~   r  rÈ   rÉ   rÀ  r1  r2  r&  s
             r   râ  zCompareTable.hasSameColumns2+  só   € Ø�K‰K‹M˜QŸ[™[›]Ò*ØØ�\‰\‹^˜qÒ  q§|¡|£~¸Ò':ØØ�]‰]‹_ˆØˆØ�k‰k‹mˆØ�CŠxØˆAØ�q‘&ˆBØ�q‘5ˆCØ—+‘+“-ˆCØ˜’9Ø�Ø˜Q‘w�Ø—9‘9˜QŸY™Y q¨›^¨A¯I©I°a¸«NÔ;Ø ð	 ˜“9ð
 —I‘I˜aŸi™i¨¨!›n¨Q¯Y©Y°q¸«^Ô<Øð �C‹xð r   c                 ó  — | j                   j                  }| j                   j                  }| j                   j                  }| j                   j	                  «        d}| j                   j
                  �&| j                   j
                  j                  «       rd}| j                   j                  �&| j                   j                  j                  «       rd}| j                   j                  �&| j                   j                  j                  «       rd}|r#d| j                   _	        d| j                   _
        y| j                  ||«      }|r|�| j                  ||«      }|| j                   _	        d| j                   _
        y©NFT)rT   r¢   r}   r~   r  Úp_metaÚisNestedÚa_metaÚb_metaÚis_equalÚis_equal_knownrä  )r   r¢   r}   r~   Únestedrk  s         r   rã  zCompareTable.testIsEqualA  s  € Ø�I‰I�K‰KˆØ�I‰I�K‰KˆØ�I‰I�K‰KˆØ�	‰	×ÑÔØˆØ�I‰I×ÑÐ(Ø�y‰y×Ñ×(Ñ(Ô*Ø�Ø�I‰I×ÑÐ(Ø�y‰y×Ñ×(Ñ(Ô*Ø�Ø�I‰I×ÑÐ(Ø�y‰y×Ñ×(Ñ(Ô*Ø�ÙØ!&ˆD�I‰IÔØ'+ˆD�I‰IÔ$ØØ�]‰]˜1˜QÓˆÙ�Q�]Ø—‘˜q Ó#ˆBØˆ�	‰	ÔØ#'ˆ�	‰	Ô Ør   c                 ó   — |j                  «       |j                  «       k7  s!|j                  «       |j                  «       k7  ry|j                  «       }d}|j                  «       }||k  rd|}|dz   }d}|j                  «       }||k  r@|}	|dz   }|j                  |j	                  |	|«      |j	                  |	|«      «      sy||k  rŒ@||k  rŒdy©NFr   r{   Trm  ro  s
             r   rä  zCompareTable.isEqual2[  s½   € Ø�[‰[‹]˜aŸk™k›mÒ+°!·,±,³.ÀAÇLÁLÃNÒ2RØØ�]‰]‹_ˆØˆØ�l‰l‹nˆØ�CŠxØˆAØ�q‘&ˆBØˆCØ—+‘+“-ˆCØ˜’9Ø�Ø˜Q‘w�ØŸ	™	 !§)¡)¨A¨a£.°·±¸1¸Q³Ô@Ø ð	 ˜“9ð �C‹xð r   c                 óì   — | j                   j                  ry| j                   j                  s| j                  «       S | j                   j                  s| j                  «       S d| j                   _        yrq  )rT   rì  rw  rã  rj  rá  r   s    r   rå  zCompareTable.compareCorem  sY   € Ø�9‰9×ÒØØ—	‘	×(Ò(Ø×#Ñ#Ó%Ð%Ø—	‘	×0Ò0Ø×*Ñ*Ó,Ð,Ø"ˆ�	‰	ÔØr   c                 ó"   — t        «       | _        y r   )r�   rÚ  r   s    r   ræ  zCompareTable.storeIndexesw  s   € Ü“vˆ�r   c                 ó   — | j                   S r   )rÚ  r   s    r   rç  zCompareTable.getIndexesz  ó   € Ø�|‰|Ðr   c                 óè  — | j                   j                  €y| j                   j                  «        d}| j                   j                  �&| j                   j                  j	                  «       sd}| j                   j
                  �&| j                   j
                  j	                  «       sd}| j                   j                  �&| j                   j                  j	                  «       sd}| j                   j                  �| j                   j                  €d}| j                   j                  �| j                   j
                  €d}| j                   j                  �| j                   j                  €d}|S rq  )
rT   rê  r  rr  ÚisSqlrt  ru  r¢   r}   r~   )r   Úsqls     r   rè  zCompareTable.useSql}  s  € Ø�I‰I×#Ñ#Ð+ØØ�	‰	×ÑÔØˆØ�I‰I×ÑÐ(Ø—I‘I×$Ñ$×*Ñ*Ô,Ø�Ø�I‰I×ÑÐ(Ø—I‘I×$Ñ$×*Ñ*Ô,Ø�Ø�I‰I×ÑÐ(Ø—I‘I×$Ñ$×*Ñ*Ô,Ø�Ø�Y‰Y�[‰[Ð$¨D¯I©I×,<Ñ,<Ð,DØˆCØ�Y‰Y�[‰[Ð$¨D¯I©I×,<Ñ,<Ð,DØˆCØ�Y‰Y�[‰[Ð$¨D¯I©I×,<Ñ,<Ð,DØˆCØˆ
r   N)r(   r)   r*   r?   r@   rA   rB   r   rÛ  rÜ  rÝ  rÞ  rß  rà  rá  râ  rã  rä  rå  ræ  rç  rè  r+   r   r   rÙ  rÙ  0  sn   „ Ø#€NØ#€IØ˜)Ð$€Jò _€Kò3òòòò4òBDòL
e+òN	òò,ò4ò$òòór   rÙ  c                   ó"   — e Zd Zd ZdZg d¢Zd„ Zy)ÚConflictInfo©ÚrowrA  rî   rï   rð   c                 óJ   — || _         || _        || _        || _        || _        y r   r„  )r   r…  rA  rî   rï   rð   s         r   r   zConflictInfo.__init__›  s%   € ØˆŒØˆŒØˆŒØˆŒØˆ�r   Nrý   r+   r   r   rƒ  rƒ  –  s   „ Ø#€NØ<€IÚ=€Jór   rƒ  c                   óž  — e Zd Zd ZdZg d¢Zg d¢Zg d¢Zd(d„Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd(d„Zd(d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd(d„Zd„ Zed(d„«       Zed(d„«       Zed(d„«       Z ed„ «       Z!ed„ «       Z"ed(d„«       Z#ed(d „«       Z$ed(d!„«       Z%ed"„ «       Z&ed#„ «       Z'ed$„ «       Z(ed%„ «       Z)ed&„ «       Z*ed'„ «       Z+y))ÚCoopy)Úformat_preferenceÚdelim_preferenceÚcsv_eol_preferenceÚextern_preferenceÚoutput_formatÚoutput_format_setÚnested_outputÚ	order_setÚorder_preferenceÚioÚstrategyÚ
css_outputÚfragmentÚflagsÚ	cache_txtÚfail_if_diffÚdiffs_foundÚmvÚstatusÚdaff_cmd)ÚinitÚcheckFormatÚ	setFormatÚgetRendererÚapplyRendererÚrenderTableÚrenderTablesÚ	saveTableÚencodeTableÚ
saveTablesÚsaveTextÚjsonToTablesÚjsonToTableÚuseColorÚrunDiffÚ	loadTableÚcommandÚinstallGitDriverrÛ  Úcoopyhx)ÚVERSIONÚ
diffAsHtmlÚ
diffAsAnsiÚdiffÚgetBlankTablerÜ  ÚpatchÚcompareTablesÚcompareTables3Ú
keepAroundÚcellForÚmainÚshowÚjsonifyÚtablifyNc                 óJ  — d | _         d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _	        d | _
        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        | j)                  «        || _
        y r   )rœ  r›  rš  r™  r˜  r—  r–  r•  r”  r“  r’  r‘  r�  r�  rŽ  r�  rŒ  r‹  rŠ  r‰  r�  )r   r’  s     r   r   zCoopy.__init__¬  s¨   € ØˆŒØˆŒØˆŒØˆÔØ ˆÔØˆŒØˆŒ
ØˆŒØˆŒØˆŒØˆŒØ $ˆÔØˆŒØ!ˆÔØ!%ˆÔØ!ˆÔØ!%ˆÔØ"&ˆÔØ $ˆÔØ!%ˆÔØ�	‰	ŒØˆ�r   c                 óä   — d| _         d | _        d | _        d | _        d| _        d| _        d| _        d| _        d| _        d | _	        d | _
        d| _        d | _        d | _        d| _        d| _        y )NFÚcopy)rŒ  r‰  rŠ  r‹  r�  rŽ  r�  r�  r‘  r“  r”  r•  r–  r—  r˜  r™  r   s    r   r�  z
Coopy.initÄ  s|   € Ø!&ˆÔØ!%ˆÔØ $ˆÔØ"&ˆÔØ#ˆÔØ!&ˆÔØ"ˆÔØˆŒØ %ˆÔØˆŒØˆŒØˆŒØˆŒ
ØˆŒØ!ˆÔØ ˆÕr   c                 ó  — | j                   r| j                  S d}|��µd }d }|€|j                  ddt        |«      «      }ne|j                  dd|dz   «      }|dk(  rt	        d|dz   t        d«      z
  «      n|dz   }|j                  d|t        |«      «      }||kD  r||k  r|n|}|dk\  �r't        j                  ||dz   d «      j                  «       }|}t        |«      }	|	dk(  r|dk(  rd| _        nà|dk(  rd| _        nÓd}nÐ|	d	k(  r’|d
k(  rd
| _        d| _	        n·|dk(  rd| _        nª|dk(  r-d
| _        dj                  t        t        dg«      «      | _	        nx|dk(  rd
| _        d| _	        d
| _        n]|dk(  rd
| _        d| _	        nI|dk(  rd| _        n<d}n9|	dk(  r|dk(  rd| _        n'd}n$|	dk(  r|dk(  rd| _        n|dk(  rd| _        nd}nd}| j                  dk(  xs | j                  dk(  | _        | j                   | _        |S )Nr�   ú.r   r{   ro   é   ÚhtmlÚjsoné   Úcsvú,ÚhtmÚpsvi©ô Ússvú;Útsvú	Úwwwé   Úsqlite3Úsqliteé   Úndjson)rŒ  r‰  Úrfindrª   ÚmaxÚfindrv  rw  ÚlowerrŠ  r>   ÚmapÚchrr�  r‘  )
r   r!   ÚextÚ
startIndexÚptrÀ  Ú	startLeftÚcheckÚext1rn   s
             r   rž  zCoopy.checkFormatÖ  s:  € Ø×!Ò!Ø×)Ñ)Ð)ØˆØÑØˆJØˆBØÐ"Ø—Z‘Z  Q¬¨D«	Ó2‘à—J‘J˜s A¨
°Q©Ó8�ØGHÈBÂwœS  Z°!¡^´s¸3³xÑ$?ÔAÐWXÐ[\ÑW\�	ØŸ	™	 # y´#°d³)Ó<�Ø"'¨!¢)°5¸JÒ3F‘eÐPQ�Ø�a“Ü—o‘o d¨B°©F°DÓ9×?Ñ?ÓA�Ø�Ü! $›i�Ø 1Ò$Ø šØ17˜Õ.Ø &š.Ø17˜Õ.à ™Ø! QÒ&Ø šØ16˜Ô.Ø03˜Õ-Ø %š-Ø17˜Õ.Ø %š-Ø16˜Ô.Ø02·±¼¼CÀÀÓ8IÓ0J˜Õ-Ø %š-Ø16˜Ô.Ø03˜Ô-Ø16˜Õ.Ø %š-Ø16˜Ô.Ø04˜Õ-Ø %š-Ø16˜Õ.à ™Ø! QÒ&Ø 	Ò)Ø19˜Õ.à ™Ø! QÒ&Ø Ò(Ø19˜Õ.Ø (Ò*Ø19˜Õ.à ™à�CØ#×5Ñ5¸Ñ?ÒjÀd×F\ÑF\Ð`hÑFhˆÔØ%)×%7Ñ%7Ð!7ˆÔØˆ
r   c                 óP   — d| _         | j                  d|€dn|z   «       d| _         y )NFrÂ  r�   T)rŒ  rž  r    s     r   rŸ  zCoopy.setFormat  s+   € Ø!&ˆÔØ×Ñ˜#¨4¨<¡¸TÑBÔDØ!%ˆÕr   c                 ó®   — t        «       }|j                  | j                  j                  «       |j	                  | j                  j
                  «       |S r   )Ú
DiffRenderÚusePrettyArrowsr–  rŸ  Ú	quoteHtmlr   )r   Úrenderers     r   r   zCoopy.getRenderer  s>   € Ü“<ˆØ× Ñ  §¡×!6Ñ!6Ô7Ø×Ñ˜4Ÿ:™:×0Ñ0Ô1Øˆr   c                 óZ  — | j                   s|j                  «        | j                  dk(  r*| j                  j	                  |j                  «       «       n | j                  ||j                  «       «       | j                  �*| j                  | j                  |j                  «       «       y)NrÏ  T)	r•  ÚcompleteHtmlr‰  r’  ÚsendToBrowserrÄ  r§  r”  Ú	sampleCss)r   r!   ræ  s      r   r¡  zCoopy.applyRenderer   sw   € Ø—’Ø×!Ñ!Ô#Ø×"Ñ" eÒ+Ø�G‰G×!Ñ! (§-¡-£/Õ2à�M‰M˜$˜xŸ}™}›Ô/Ø�O‰OÐ'Ø�M‰M˜$Ÿ/™/¨(×*<Ñ*<Ó*>Ô?Ør   c                 óh   — | j                  «       }|j                  |«       | j                  ||«      S r   )r   Úrenderr¡  ©r   r!   r  ræ  s       r   r¢  zCoopy.renderTable+  s/   € Ø×#Ñ#Ó%ˆØ�‰˜ÔØ×!Ñ! $ xÓ0Ð0r   c                 óh   — | j                  «       }|j                  |«       | j                  ||«      S r   )r   r£  r¡  rí  s       r   r£  zCoopy.renderTables0  s1   € Ø×#Ñ#Ó%ˆØ×Ñ˜aÔ Ø×!Ñ! $ xÓ0Ð0r   c                 óR   — | j                  |||«      }|€y| j                  ||«      S r™   )r¥  r§  )r   r!   r  rì  r   s        r   r¤  zCoopy.saveTable5  s/   € Ø×Ñ˜t A fÓ-ˆØˆKØØ�}‰}˜T #Ó&Ð&r   c                 óÒ  — | j                   dk7  r| j                  | j                   «       d}| j                  |«       | j                  dk(  r| j                  sd| _        |€ô| j                  dk(  r3t        | j                  | j                  «      }|j                  |«      }|S | j                  dk(  rt        |«      j                  «       }|S | j                  dk(  s| j                  dk(  r| j                  ||«       y | j                  dk(  r| j                  j                  d«       yt        j                  t        j!                  |«      d d	«      }|S |j                  |«      }|S )
NrÀ  r�   rÒ  rÇ  rÔ  rÄ  rÏ  z(! Cannot yet output to sqlite, aborting
z  )r�  rŸ  rž  r‰  rŒ  ÚCsvrŠ  r‹  r¢  ÚNdjsonrì  r’  ÚwriteStderrÚhaxe_format_JsonPrinterÚprintrˆ  r¼  )r   r!   r  rì  r   rÇ  s         r   r¥  zCoopy.encodeTable;  sJ  € Ø×Ñ &Ò(Ø�N‰N˜4×-Ñ-Ô.ØˆØ×Ñ˜ÔØ×#Ñ# xÒ/¸$×:PÒ:PØ%*ˆDÔ"ØˆNØ×&Ñ&¨%Ò/Ü˜$×/Ñ/°×0GÑ0GÓH�Ø—o‘o aÓ(�ð ˆ
ð ×(Ñ(¨HÒ4Ü˜Q“i×&Ñ&Ó(�ð ˆ
ð ×)Ñ)¨VÒ3¸$×:PÑ:PÐTYÒ:YØ× Ñ   aÔ(ØØ×(Ñ(¨HÒ4Ø—‘×#Ñ#Ð$OÔPØä-×3Ñ3´E·M±MÀ!Ó4DÀTÈ$ÓO�ð ˆ
ð —-‘- Ó"ˆCØˆ
r   c                 óZ  — | j                   dk7  r| j                  | j                   «       d}| j                  |«       d }|r!t        | j                  | j
                  |«      }|j                  «       }t        |«      dk(  r!| j                  ||j                  «       |«      S | j                  dk(  s| j                  dk(  r| j                  ||«      S d}t        |«      dk(  s|j                  «       r=|€dn|t        j                  | j                  ||j                  «       |«      «      z   }d	}t        |«      dkD  �r]d}	t        |«      }
|	|
k  �rJ|	}|	dz   }	|j!                  |dk\  r|t        |«      k  r||   nd «      }|��|r	|€dn|d
z   }d	}|€dn|t        j                  t        j                  |dk\  r|t        |«      k  r||   nd «      d
z   «      z   }d}d}t        |dk\  r|t        |«      k  r||   nd «      }||k  r|}|dz   }|€dn|dz   }||k  rŒ|€dn|t        j                  |€dn|d
z   «      z   }|€dn|t        j                  | j                  ||j!                  |dk\  r|t        |«      k  r||   nd «      |«      «      z   }|	|
k  r�ŒJ| j#                  ||«      S )NrÀ  r�   r{   rÄ  rÏ  Fr   r�   TrÉ  ú=)r�  rŸ  rž  ÚTerminalDiffRenderr–  rŠ  ÚgetOrderrª   r¤  Úoner‰  r£  Ú	hasInsDelr“   r”   r¥  r‰   r§  )r   r!   ÚosÚ	use_colorÚis_diffr   rì  r¬   Ú
need_blankrÈ   rÉ   rÀ  r  Úliner1  r2  rg  s                    r   r¦  zCoopy.saveTablesT  s9  € Ø×Ñ &Ò(Ø�N‰N˜4×-Ñ-Ô.ØˆØ×Ñ˜ÔØˆÙÜ'¨¯
©
°4×3HÑ3HÈÓQˆFØ—‘“ˆÜ�‹J˜!ŠOØ—>‘> $ r§v¡v£x°Ó7Ð7Ø×#Ñ# vÒ-°D×4JÑ4JÈeÒ4SØ×$Ñ$ T¨"Ó-Ð-Øˆ
Ü�‹Z˜1Š_ §¡¤Ø!˜k‘F¨s´k×6NÑ6NÈt×O_ÑO_Ð`dÐeg×ekÑekÓemÐntÓOuÓ6vÑvˆCØˆJÜ�‹J˜‹NØˆBÜ�e“*ˆCØ˜“8Ø�Ø˜1‘f�Ø—F‘F¨¨Qª°1´s¸5³z²>˜E !šHÀtÓM�Ø‘MÙ!Ø*-¨+¡¸3À$ÑF˜Ø!%�JØ&) k™F°s¼k×>VÑ>VÔYd×YqÑYqð  @Að  EFò  @Fð  KLô  ORð  SXó  OYò  KYÐsxÐyzÒs{ð  _có  Zeð  hlñ  Zló  ?oñ  o�CØ�DØ�CÜ¨1°ª6°a¼#¸e»*²n˜u QšxÈ$ÓP�CØ š9Ø ˜Ø" Q™w˜Ø+/¨<¡¸TÀSÑ H˜ð  ›9ð '* k™F°s¼k×>VÑ>VÐdhÐdpÑZ`Ðvzð  Cñ  ZCó  ?Fñ  F�CØ&) k™F°s¼k×>VÑ>VÐW[×WgÑWgÐhlÐmo×msÑmsð  BCð  GHò  BHð  MNô  QTð  UZó  Q[ò  M[ÐuzÐ{|Òu}ð  aeó  ngð  hnó  Xoó  ?pñ  p�Cð# ˜”8ð$ �}‰}˜T #Ó&Ð&r   c                 óÜ   — |€-| }|j                   }|€dn||€dn|z   |_         |j                    y|dk7  r| j                  j                  ||«       y| j                  j                  |«       y)Nr�   ú-T)r—  r’  ÚsaveContentÚwriteStdout)r   r!   r   rn   r   s        r   r§  zCoopy.saveText|  s|   € ØˆLØˆKØ%×/Ñ/ˆKØ0;Ð0C¡fÈÐcfÐcnÑY_ÐtwÑ%xˆKÔ!Ø×!Ò!ð
 ð	 �cŠkØ�G‰G×Ñ  SÔ)ð ð �G‰G×Ñ Ô$Ør   c                 ó€   — t         j                  |d«      }|€| j                  |«      S t        || j                  «      S )NrX   )ÚReflectr&   r©  Ú
JsonTablesr–  )r   rÅ  rX   s      r   r¨  zCoopy.jsonToTablesˆ  s9   € Ü—‘˜t HÓ-ˆØˆNØ×#Ñ# DÓ)Ð)Ü˜$˜tŸz™zÓ*Ð*r   c                 ó0  — d }d}t         j                  |«      }|t        |«      k  �rÛ|dk\  r|t        |«      k  r||   nd }|dz   }t        j	                  ||«      }t        j	                  |d«      }|€Œ]t        j	                  |d«      }|€Œvt        t        |«      t        |«      «      }d}	d}
d}t        |«      }||k  �r/|}|dz   }|dk\  r|t        |«      k  r||   nd }|
s.t        t         j                  |«      «      t        |«      k(  rd}	d}
|	sb|}d}t        |«      }||k  rÁ|}|dz   }|dk\  r|t        |«      k  r||   nd }|j                  ||t        j                  |«      «       ||k  rŒMnsd}t        |«      }||k  ra|}|dz   }t        j	                  ||dk\  r|t        |«      k  r||   nd «      }|j                  ||t        j                  |«      «       ||k  rŒa||k  r�Œ/|t        |«      k  r�ŒÛ|�|j                  «        |S )Nr   r{   r*  ÚrowsFT)
rÊ  r   rª   r  r&   r1  r  rˆ  r¹  r	  )r   rÅ  ÚoutputrÈ   rÉ   r!   r  r*  r	  Úhas_hashÚhas_hash_knownr1  r2  rÀ  r…  r  r3  r4  r&  rE  rb  rc  r5  Úval1s                           r   r©  zCoopy.jsonToTableŽ  s  € ØˆØˆÜ× Ñ  Ó&ˆØ”C˜“H‹}Ø! Qšw¨2´°C³ª=�C˜’G¸dˆDØ�q‘&ˆBÜ—‘˜d 4Ó(ˆAÜ—m‘m A iÓ0ˆGØ�ØÜ—=‘=  6Ó*ˆDØ�ØÜ ¤ W£¬c°$«iÓ8ˆFØˆHØ"ˆNØˆCÜ�d“)ˆCØ˜“9Ø�Ø˜Q‘w�Ø"# q¢&¨Q´°T³ª]�t˜A’wÀ�Ù&ÜœK×.Ñ.¨sÓ3Ó4¼¸G»ÒDØ#'˜Ø%)�NÙ Ø�CØ�CÜ˜g›,�CØ š9Ø˜Ø" Q™w˜Ø)*¨aª°A¼¸C»²L˜s 1švÀd˜ØŸ™ q¨¬5¯=©=¸Ó+=Ô>ð	  œ9ð �CÜ˜g›,�CØ š9Ø ˜Ø" Q™w˜Ü&Ÿ}™}¨SÀÀqÂÈRÔRUÐV]ÓR^ÒM^°'¸"²+ÐdhÓj˜ØŸ™ r¨!¬E¯M©M¸$Ó,?Ô@ð	  ›9ð) ˜”9ð ”C˜“HŒ}ðP ÐØ×ÑÔØˆr   c                 ó$  — |j                   dk(  }|j                   €t|�|dk(  rm| j                  dk(  s| j                  dk(  s| j                  dk(  r@| j                  �4| j                  j                  «       r| j                  j	                  «       }|S )NÚansir  rÀ  rÇ  rÊ  )rž  r�  r’  Ú
isTtyKnownÚisTty)r   r–  r
  rý  s       r   rª  zCoopy.useColor¾  s    € Ø×*Ñ*¨fÑ4ˆ	Ø×!Ñ!Ð)Ø�>¨°#ªÀ$×BTÑBTÐX^ÒB^Ðei×ewÑewð  |Aò  fAð  JN÷  J\ñ  J\ð  `eò  JeØ—G‘GÐ'Ø—w‘w×)Ñ)Ô+Ø$(§G¡G§M¡M£O˜	ØÐr   c                 ój  — t         j                  ||||«      }|j                  «       }t        ||«      }t	        dd«      }	t        |	«      }
|j                  |
«       | j                  ||«      }| j                  ||
|d«       | j                  r%|j                  «       }|j                  rd| _        y y y )Nr   T)rˆ  r·  rÜ  Ú	TableDiffr1  ÚTablesÚhiliteWithNestingrª  r¦  r˜  Ú
getSummaryÚ	differentr™  )r   rM  r}   r~   r–  r
  r,  rÜ  ÚtdrÊ   rü  rý  Úsummarys                r   r«  zCoopy.runDiffÇ  s£   € Ü×!Ñ! &¨¨1¨UÓ3ˆØ—‘“
ˆÜ�u˜UÓ#ˆÜ˜˜!ÓˆÜ�A‹YˆØ
×Ñ˜RÔ Ø—M‘M %¨Ó/ˆ	Ø�‰˜˜r )¨DÔ1Ø×ÒØ—m‘m“oˆGØ× Ò Ø#'�Õ ð !ð r   c           
      óè  — | j                  |«      }|dk(  rR| j                  j                  |«      }|€| j                  j                  d«       y t	        || j
                  |«      }|S | j                  j                  |«      }|dk(  r*t        dd«      }t        |«      }|j                  |«       |S |dk(  s|dk(  rt	 t        j                  |fi t        j                  t        dt        j                   i«      «      ¤Ž}	d| _        | j%                  |	«      }|€t&        j)                  d«      ‚|S d	| _        t1        | j2                  «      }t        dd«      }|j5                  ||«       | j6                  €|j9                  «       | _        |�|j;                  «        |S # t*        $ rH}
	 t&        j-                  |
«      j/                  «       }|dk(  rt&        j)                  |«      ‚Y d }
~
Œ»d }
~
ww xY w)
NrÒ  z!! Cannot open database, aborting
rÔ  r   rÅ  r�   Úobject_hookzJSON failedrÇ  )rž  r’  ÚopenSqliteDatabaseró  Ú	SqlTablesr–  Ú
getContentr1  rò  ÚparseÚpython_lib_JsonÚloadsÚpython__KwArgs_KwArgs_Impl_ÚfromTr	   Ú
python_LibÚ
dictToAnonr‰  r¨  Úhaxe_ExceptionÚthrownÚBaseExceptionÚcaughtÚunwraprñ  rŠ  Ú
parseTabler‹  ÚgetDiscoveredEolr	  )r   r!   rÔ  rÛ  r�  Útabr   r  rÔ  rÅ  rÈ   ÚerÇ  r
  s                 r   r¬  zCoopy.loadTableÕ  så  € Ø×Ñ˜tÓ$ˆØ�8ŠOØ—'‘'×,Ñ,¨TÓ2ˆCØ�Ø—‘×#Ñ#Ð$HÔIØÜ˜C §
¡
¨4Ó0ˆCØˆJØ�g‰g× Ñ  Ó&ˆØ�8ŠOÜ˜A˜aÓ ˆAÜ˜A“YˆFØ�L‰L˜ÔØˆHØ�FŠ] ¨¢ð3Ü&×,Ñ,¨Sñ  NÔ3N×3TÑ3TÔUcÐerÔt~÷  uJñ  uJð  eKó  VLó  4Mñ  N�Ø)/�Ô&Ø×%Ñ% dÓ+�Ø�IÜ(×/Ñ/°Ó>Ð>Ø�ð "'ˆÔÜ�$×'Ñ'Ó(ˆÜ˜Q˜qÓ!ˆØ�‰�s˜6Ô"Ø×#Ñ#Ð+Ø&)×&:Ñ&:Ó&<ˆDÔ#ØÐØ×ÑÔØˆøô !ò 3ØÜ"×)Ñ)¨"Ó-×4Ñ4Ó6�Ø˜6’MÜ(×/Ñ/°Ó2Ð2ô "ûð3ús   Â>A2F  Æ 	G1Æ)>G,Ç,G1c                 óX  — d}|j                  «       r|j                  ||«      }|dk7  rÞ|j                  d|€dn|z   «       d}|t        |«      k  r¥|dk\  r|t        |«      k  r||   nd }|dz   }|j                  d«       d }|€|j	                  d«      nt
        j                  |d|«      dk\  }|r|j                  d«       |j                  |«       |r|j                  d«       |t        |«      k  rŒ¥|j                  d«       |j                  «       s|j                  ||«      }|S )	Nr   éç  z$ r�   r{   ú ú"rÉ  )ÚhasAsyncr­  r  rª   r×  rv  ÚindexOfImpl)	r   r’  ÚcmdÚargsr¡   rÈ   ÚargrÜ  Úspaceds	            r   r­  zCoopy.commandû  s  € ØˆØ�;‰;Œ=Ø—
‘
˜3˜tÓ$ˆAØ�ŠHØ�N‰N˜D¨c¨k¡F¸sÑCÔEØˆBØœ˜D›	’>Ø#%¨¢7¨r´C¸³Iª~�t˜B’xÀ4�Ø˜1‘f�Ø—‘˜sÔ#Ø!�
Ø/9Ð/A˜CŸH™H SœMÌ×I]ÑI]Ð^aÐbeÐfpÓIqÐwxÑx�ÙØ—N‘N 4Ô(Ø—‘˜sÔ#ÙØ—N‘N 4Ô(ð œ˜D›	“>ð �N‰N˜4Ô Ø—‘”Ø—
‘
˜3˜tÓ$ˆAØˆr   c           
      óª  — d}| j                   €t        «       | _         d| _        d}|| j                   j                  vr‘|j	                  d«       d}|t        |«      k  rF|dk\  r|t        |«      k  r||   nd }|dz   }|j	                  d|€dn|z   «       |t        |«      k  rŒF|j	                  d«       || j                   j                  |<   d	}|| j                   j                  vr\| j                  |d
dg«      }|dk(  r|S || j                   j                  |<   |dk7  r|j                  d«       y|j	                  d«       g d¢}| j                  dk(  ræd}|t        |«      k  rµ|dk\  r|t        |«      k  r||   nd }|dz   }d|€dn|z   }	|	| j                   j                  vrf| j                  ||dg«      }|dk(  r|S || j                   j                  |	<   |dk(  r-|| _        |j	                  d|€dn|z   dz   |€dn|z   dz   «       n|t        |«      k  rŒµ| j                  dk(  r|j                  d«       yd}|t        |«      k  �r)|dk\  r|t        |«      k  r||   nd }|dz   }d|€dn|z   }|| j                   j                  vrA| j                  |d
dddd|€dn|z   dz   g«      }|dk(  r|S || j                   j                  |<   | j                   j                  j                  |d «      dk(  }
d|€dn|z   }|| j                   j                  vr™| j                  |d
ddd|€dn|z   dz   t        j                  | j                  «      dz   g«      }|dk(  r|S |
r|j	                  d|€dn|z   dz   «       |j	                  d |€dn|z   dz   «       || j                   j                  |<   d!|€dn|z   }|| j                   j                  vrA| j                  |d
dddd"|€dn|z   d#z   g«      }|dk(  r|S || j                   j                  |<   | j                   j                  j                  |d «      dk(  }d$|€dn|z   }|| j                   j                  vrO|s2| j                  |d
ddd"|€dn|z   d%z   d&|€dn|z   d'z   g«      }|dk(  r|S d}|| j                   j                  |<   d(|€dn|z   }|| j                   j                  vr™| j                  |d
ddd"|€dn|z   d#z   t        j                  | j                  «      d)z   g«      }|dk(  r|S |r|j	                  d*|€dn|z   dz   «       |j	                  d+|€dn|z   dz   «       || j                   j                  |<   |t        |«      k  r�Œ)|j                  d,«      s#|j                  d-«       |j                  d.«       yd/}d}d}|j                  |«      s|j	                  d0«       n"|j	                  d1«       |j                  |«      }d2}d}|t        |«      k  �r$|dk\  r|t        |«      k  r||   nd }|dz   }d3|€dn|z   }d }|€|j                  |«      nt        j                  |||«      dk\  r|j                  d4|€dn|z   dz   «       n¡|€dn|t        j                  d3|€dn|z   d5z   |€dn|z   dz   «      z   }|€dn|t        j                  d3|€dn|z   d6z   |€dn|z   dz   «      z   }|j	                  d7«       |j	                  |«       |dk7  r|s	|€dn|dz   }|€dn||€dn|z   }d8}|t        |«      k  r�Œ$|r|j!                  ||«       |j	                  d9«       y):Nr   r�   ÚhellozSetting up git to use daff onr{   z *.r�   z files
Úcan_run_gitÚgitz	--versionr0  z! Cannot run git, aborting
z- Can run git
)Údaffzdaff.rbzdaff.pyÚcan_run_Úversionz
- Can run z as "z"
z(! Cannot find daff, is it in your path?
Úhave_diff_driver_Úconfigz--globalz--getz
diff.daff-z.commandÚadd_diff_driver_z diff --gitz(- Cleared existing daff diff driver for rÉ  z- Added diff driver for Úhave_merge_driver_zmerge.daff-z.driverÚname_merge_driver_z.namezdaff tabular z mergeÚadd_merge_driver_z merge --output %A %O %A %Bz)- Cleared existing daff merge driver for z- Added merge driver for z.git/configz6! This next part needs to happen in a git repository.
z6! Please run again from the root of a git repository.
z.gitattributesz- No .gitattributes file
z!- You have a .gitattributes file
Fz*.z.- Your .gitattributes file already mentions *.z diff=daff-z merge=daff-z1- Placing the following lines in .gitattributes:
Tz- Done!
)r›  r´  rœ  rˆ   r  rª   r­  ró  r‰   r“   r”   Úexistsr  r×  rv  r4  r  )r   r’  Úformatsr¡   r·   rÈ   ÚformatÚdaffsr=  r6  Úhave_diff_driverÚhave_merge_driverÚattrr   ÚpostÚneed_updateÚ_hx_strrÜ  s                     r   r®  zCoopy.installGitDriver  s	  € ØˆØ�K‰KÐÜ+Ó-ˆDŒKØˆDŒMØˆØ˜Ÿ™Ÿ™Ñ%Ø�N‰NÐ:Ô;ØˆBØœ˜G›Ò$Ø)+¨qª°R¼#¸g»,Ò5F˜' "š+ÈD�Ø˜1‘f�Ø—‘ °6°>©ÀvÑ NÔPð œ˜G›Ó$ð �N‰N˜:Ô&Ø!"ˆD�K‰K�M‰M˜#ÑØˆØ˜Ÿ™Ÿ™Ñ%Ø—‘˜R  { mÓ4ˆAØ�S’Ø�Ø!"ˆD�K‰K�M‰M˜#ÑØ�Q’Ø—‘Ð=Ô>ØØ�N‰NÐ,Ô-Ú.ˆØ�M‰M˜RÒØˆBØœ˜E›
’?Ø%'¨1¢W°´c¸%³j²˜˜bš	Àd�Ø˜1‘f�Ø"°°¡fÀ$ÑG�Ø §¡§¡Ñ.ØŸ™ R¨¨i¨[Ó9�AØ˜SšØ ˜Ø*+�D—K‘K—M‘M $Ñ'Ø˜QšØ(,˜œØŸ™¨<ÀTÀ\¹6ÐW[Ñ+\Ð`hÑ*hÐw{ð  xDÑmsð  JNñ  *Oð  SYñ  )Yô  [Øð œ˜E›
“?ð —‘ Ò#Ø—‘ÐJÔKØØˆØ”C˜“LÓ Ø%'¨1¢W°´c¸'³lÒ1B�g˜b’kÈˆFØ�q‘&ˆBØ&°F°N©&ÈÑOˆCØ˜DŸK™KŸM™MÑ)Ø—L‘L  E¨8°ZÀÈLÐflÐftÑ\bð  {Añ  MBð  FPñ  LPð  +Ró  S�Ø˜’HØ�HØ%&�—‘—‘˜cÑ"Ø $§¡§¡× 1Ñ 1°#°dÓ ;¸qÑ @ÐØ%°6°>©ÀvÑNˆCØ˜DŸK™KŸM™MÑ)Ø—L‘L  E¨8°ZÀ<Ð]cÐ]kÑSYÐqwÑCxð  }Gñ  CGô  KV÷  Kcñ  Kcð  dh÷  dqñ  dqó  Krð  uBñ  KBð  +Dó  E�Ø˜’HØ�HÙ#Ø—N‘NÐ%OÐ]cÐ]kÑSYÐqwÑ%xð  }Añ  %Aô  CØ—‘Ð!;ÈÈ¹vÐ]cÑ!dÐhlÑ lÔnØ%&�—‘—‘˜cÑ"Ø'°V°^©6ÈÑPˆCØ˜DŸK™KŸM™MÑ)Ø—L‘L  E¨8°ZÀÈMÐgmÐguÑ]cð  |Bñ  MCð  GPñ  LPð  +Ró  S�Ø˜’HØ�HØ%&�—‘—‘˜cÑ"Ø!%§¡§¡×!2Ñ!2°3°tÓ!<ÀÑ!AÐØ'°V°^©6ÈÑPˆCØ˜DŸK™KŸM™MÑ)Ù)ØŸ™ R¨¨x¸À}ÐbhÐbpÑX^Ðv|ÑG}ð  BIñ  GIð  N]ð  kqð  kyñ  agð  Eñ  NFð  JRñ  MRð  /Tó  U�AØ˜SšØ ˜à�AØ%&�—‘—‘˜cÑ"Ø&°F°N©&ÈÑOˆCØ˜DŸK™KŸM™MÑ)Ø—L‘L  E¨8°ZÀ=Ð^dÐ^lÑTZÐrxÑCyð  ~Gñ  CGô  KV÷  Kcñ  Kcð  dh÷  dqñ  dqó  Krð  uRñ  KRð  +Tó  U�Ø˜’HØ�HÙ$Ø—N‘NÐ%PÐ^dÐ^lÑTZÐrxÑ%yð  ~Bñ  %Bô  DØ—‘Ð!<È&È.ÁÐ^dÑ!eÐimÑ mÔoØ%&�—‘—‘˜cÑ"ðW ”C˜“LÔ ðX —	‘	˜-Ô(Ø�N‰NÐTÔUØ�N‰NÐTÔUØØˆØˆØˆØ—	‘	˜$”Ø�N‰NÐ7Õ8à�N‰NÐ?Ô@Ø—-‘- Ó%ˆCØˆØˆØ”C˜“LÓ Ø%'¨1¢W°´c¸'³lÒ1B�g˜b’kÈˆFØ�q‘&ˆBØ¨¨™v¸VÑDˆGØˆJØ)3Ð);�#—(‘(˜7Ô#Ä8×CWÑCWÐX[Ð\cÐdnÓCoÐuvÒvØ—‘Ð!QÐ_eÐ_mÑU[ÐsyÑ!zð  Cñ  !Cõ  Eà#' <™°T¼[×=UÑ=UÐ[_ÐmsÐm{Ñcið  BHñ  \Ið  MZñ  [Zð  ioð  iwñ  _eð  }Cñ  ZDð  HLñ  YLó  >Oñ  O�Ø#' <™°T¼[×=UÑ=UÐ[_ÐmsÐm{Ñcið  BHñ  \Ið  M[ñ  [[ð  jpð  jxñ  `fð  ~Dñ  ZEð  IMñ  YMó  >Pñ  P�Ø—‘ÐSÔTØ—‘˜tÔ$Ø˜B’Y©Ø&) k™F°s¸dÑB�CØ"% +™°3ÀTÀ\¹6ÐW[Ñ\�Ø"�ð ”C˜“LÔ ñ  Ø�N‰N˜4 Ô$Ø
�‰�{Ô#Ør   c                 ó.  — |€
t        «       }|€t        d«       y| j                  «        || _        d}d }d}d}d}t	        «       | _        d| j
                  _        |�r;d}d}t        |«      }	||	k  �r"|}
|dz   }|
dk\  r|
t        |«      k  r||
   nd }|dk(  rId}t        j                  ||
dz   «      }|
}|dk  rt        |«      |z   }|dk  rd}|||dz    }|||dz   …= �
n³|dk(  rUd}d| _
        t        j                  ||
dz   «      | _        |
}|dk  rt        |«      |z   }|dk  rd}|||dz    }|||dz   …= �
nY|d	k(  r7d}d| _
        |
}|dk  rt        |«      |z   }|dk  rd}|||dz    }|||dz   …= �
n|d
k(  rAd}d| j
                  _        |
}|dk  rt        |«      |z   }|dk  rd}|||dz    }|||dz   …= �	n×|dk(  rAd}d| j
                  _        |
}|dk  rt        |«      |z   }|dk  rd}|||dz    }|||dz   …= �	n‘|dk(  rRd}d| j
                  _        d| j
                  _        |
}|dk  rt        |«      |z   }|dk  rd}|||dz    }|||dz   …= �	n:|dk(  rAd}d| j
                  _        |
}|dk  rt        |«      |z   }|dk  rd}|||dz    }|||dz   …= �nô|dk(  rAd}d| j
                  _        |
}|dk  rt        |«      |z   }|dk  rd}|||dz    }|||dz   …= �n®|dk(  r™d}| j
                  j                   €t#        «       | j
                  _        d| j
                  j                   j$                  t        j                  ||
dz   «      <   |
}|dk  rt        |«      |z   }|dk  rd}|||dz    }|||dz   …= �n|dk(  rrd}t&        j)                  t        j                  ||
dz   «      «      }|dk\  r|| j
                  _        |
}|dk  rt        |«      |z   }|dk  rd}|||dz    } |||dz   …= �n™|dk(  rrd}t&        j)                  t        j                  ||
dz   «      «      }!|!dk\  r|!| j
                  _        |
}"|"dk  rt        |«      |"z   }"|"dk  rd}"||"|"dz    }#||"|"dz   …= �n"|dk(  r2d}d}|
}$|$dk  rt        |«      |$z   }$|$dk  rd}$||$|$dz    }%||$|$dz   …= �në|dk(  r2d}d}|
}&|&dk  rt        |«      |&z   }&|&dk  rd}&||&|&dz    }'||&|&dz   …= �n´|dk(  rYd}d| j
                  _        d| j
                  _        d| _        |
}(|(dk  rt        |«      |(z   }(|(dk  rd}(||(|(dz    })||(|(dz   …= �nV|dk(  rHd}d| j
                  _        d| _        |
}*|*dk  rt        |«      |*z   }*|*dk  rd}*||*|*dz    }+||*|*dz   …= �n	|dk(  rAd}d| j
                  _        |
},|,dk  rt        |«      |,z   },|,dk  rd},||,|,dz    }-||,|,dz   …= �nÃ|dk(  rAd}d| j
                  _        |
}.|.dk  rt        |«      |.z   }.|.dk  rd}.||.|.dz    }/||.|.dz   …= �n}|dk(  rXd}| j5                  t        j                  ||
dz   «      «       |
}0|0dk  rt        |«      |0z   }0|0dk  rd}0||0|0dz    }1||0|0dz   …= �n |dk(  rUd}t        j                  ||
dz   «      | _        d| _        |
}2|2dk  rt        |«      |2z   }2|2dk  rd}2||2|2dz    }3||2|2dz   …= �nÆ|dk(  r�d}| j
                  j:                  €t=        «       | j
                  _        | j
                  j:                  }4|4j?                  t        j                  ||
dz   «      «       |
}5|5dk  rt        |«      |5z   }5|5dk  rd}5||5|5dz    }6||5|5dz   …= �n$|dk(  rbd}| j
                  jA                  t        j                  ||
dz   «      «       |
}7|7dk  rt        |«      |7z   }7|7dk  rd}7||7|7dz    }8||7|7dz   …= �n½|dk(  rRd}d| j
                  _!        d| j
                  _"        |
}9|9dk  rt        |«      |9z   }9|9dk  rd}9||9|9dz    }:||9|9dz   …= �nf|dk(  r>d}d | _        d| _        |
};|;dk  rt        |«      |;z   };|;dk  rd};||;|;dz    }<||;|;dz   …= �n|d!k(  rbd}| j
                  jG                  t        j                  ||
dz   «      «       |
}=|=dk  rt        |«      |=z   }=|=dk  rd}=||=|=dz    }>||=|=dz   …= �n¼|d"k(  s|d#k(  rAd}d| j
                  _$        |
}?|?dk  rt        |«      |?z   }?|?dk  rd}?||?|?dz    }@||?|?dz   …= �nq|d$k(  s|d%k(  rAd}d| j
                  _%        |
}A|Adk  rt        |«      Az   }AAdk  rd}A|A|Adz    }B||A|Adz   …= �n&|d&k(  s|d'k(  r¨d}t        j                  ||
dz   «      }Ct&        jM                  |C«      | j
                  _'        tQ        jR                  | j
                  jN                  «      r|jU                  d(«       y|
}D|Ddk  rt        |«      Dz   }DDdk  rd}D|D|Ddz    }E||D|Ddz   …= �nt|d)k(  rXd}t        j                  ||
dz   «      | j
                  _+        |
}F|Fdk  rt        |«      Fz   }FFdk  rd}F|F|Fdz    }G||F|Fdz   …= �n|d*k(  s|d+k(  r‹d}t        j                  ||
dz   «      }H|Hd,k(  rd-}Hn4Hd.k(  rd/}Hn,Hd0k(  rd1}Hn$Hd2k(  rd }Hn|jU                  d3H€d4nHz   d/z   «       yH| _,        |
}I|Idk  rt        |«      Iz   }IIdk  rd}I|I|Idz    }J||I|Idz   …= n‚|d5k(  r6d}d| _-        |
}K|Kdk  rt        |«      Kz   }KKdk  rd}K|K|Kdz    }L||K|Kdz   …= nG|d6k(  s
|d7k(  s|d8k(  r1d}|
}M|Mdk  rt        |«      Mz   }MMdk  rd}M|M|Mdz    }N||M|Mdz   …= d}n||	k  r�Œ"|r�Œ;dt        |«      k  r|d   nd }Od}P|rd9}Og }	 t        |«      dk  �r	Od:k(  r6|j]                  t^        ja                  tb        jd                  «      d/z   «       yOd;k(  �rf|j]                  d<«       |j]                  d/«       |j]                  d=«       |j]                  d>«       |j]                  d?«       |j]                  d@«       |j]                  d/«       |j]                  dA«       |j]                  dB«       |j]                  dC«       |j]                  dD«       |j]                  dE«       |j]                  dF«       |j]                  dG«       |j]                  dH«       |jU                  d/«       |j]                  dI«       |j]                  dJ«       |j]                  dK«       |jU                  dL«       |jU                  d/«       yt        |«      dk  �rS|jU                  dM«       |jU                  dN«       |jU                  dO«       |jU                  dP«       |jU                  dQ«       |jU                  dR«       |jU                  dS«       |jU                  dT«       |jU                  dU«       |jU                  dV«       |jU                  dW«       |jU                  dX«       |jU                  dY«       |jU                  dZ«       |jU                  d[«       |jU                  d\«       |jU                  d/«       |jU                  d]«       |jU                  d/«       |jU                  d^«       |jU                  d_«       |jU                  d`«       |jU                  da«       |jU                  db«       |jU                  dc«       |jU                  dd«       |jU                  de«       |jU                  df«       |jU                  dg«       |jU                  dh«       |jU                  di«       |jU                  dj«       |jU                  dk«       |jU                  dl«       |jU                  dm«       |jU                  dn«       |jU                  do«       |jU                  dp«       |jU                  dq«       |jU                  dr«       |jU                  ds«       |jU                  dt«       |jU                  du«       |jU                  d/«       |jU                  dv«       |jU                  dw«       |jU                  dx«       |jU                  dy«       |jU                  dz«       |jU                  d{«       ydt        |«      k  r|d   nd }Od}Qtf        ji                  g d|¢|O«      sˆd }R|R€Ojk                  d}«      ntl        jo                  Od}R«      dk(  rd~}Od}QnTd }R|R€Ojk                  d«      ntl        jo                  OdR«      d€k7  r%t        |«      dk(  rd~}Od}Qnt        |«      dk(  rd�}Od}QOd;k(  rNt        |«      Qz
  }S|Q}|dk  rt        |«      |z   }|dk  rd}|||Sz    }||||Sz   …= |}T| jq                  ||T«      S |�r”t        |«      Qz
  }U|Ud‚k7  r0Udƒk7  r+|jU                  d„t&        js                  U«      z   d/z   «       yQ}|dk  rt        |«      |z   }|dk  rd}|||Uz    }||||Uz   …= |}Vt        |«      }Sd}|dk  rt        |«      |z   }|dk  rd}|||Sz    }||||Sz   …= d}Qdt        V«      k  rVd   nd }Wdt        V«      k  rVd   nd }Xdt        V«      k  rVd   nd }Yd…t        V«      k  rVd…   nd }ZUdƒk(  r9|j]                  d†t        V«      k  rVd†   nd «       d‚t        V«      k  rVd‚   nd }X|j]                  d‡W€d4nWz   d/z   «       |j]                  dˆX€d4nXz   d/z   «       |j?                  Y«       |j?                  Z«       d }[t        |«      Qz
  d‰k\  r/| ju                  Qdk\  rQt        |«      k  r|Q   nd dŠ«      }[Qdz   }QQdk\  rQt        |«      k  r|Q   nd }\| ju                  |\d‹«      }]d }^t        |«      Qz
  dk\  rHOd�k7  r*| ju                  t        j                  |dQz   «      dŒ«      }^nt        j                  |dQz   «      }| jv                  | j
                  _<        |r|�|jU                  d�«       \}y|€dŽ}Od~k(  rÄ| j0                  sB| jz                  | j
                  _        | j
                  j.                  sd| j
                  _        | j|                  | j
                  _?        | jZ                  r.	 | j�                  []^| j
                  |«       | j„                  �rgy| j�                  []^| j
                  |«       �nEOd�k(  r0t‡        ]^«      }_|_j‰                  «        | j‹                  ||]«       �nOd�k(  rŒt�        []^| j
                  «      }`|`j‰                  «       }a|adk(  }P|adkD  rG|jU                  t&        js                  a«      d‘z   t^        ja                  |adkD  rd’nd9«      z   d/z   «       | j‹                  |]«       nOd“k(  r| j‹                  |]«       ngOd”k(  r| j�                  |]«       nOOd�k(  rJt‘        ]«      }b|bj“                  d•«       | j•                  ||b| j—                  | j
                  |«      d«       Pry| jZ                  ryy# t‚        $ r}	 Y d }~yd }~ww xY w# t‚        $ rO}	 t˜        j›                  |«      j�                  «       }c| jZ                  st˜        jŸ                  c«      ‚Y d }~yd }~ww xY w)–NzNo system interface availabler{   TFr   z--outputrÒ  z--cssz
--fragmentz--plainz	--unquotez--allz
--all-rowsz--all-columnsz--actz	--contextz--context-columnsz	--inplacez--gitz--unorderedz	--orderedz--colorr  z
--no-colorÚplainz--input-formatz--output-formatz--idz--ignorez--indexz--wwwrÏ  z--tablez-wz--ignore-whitespacez-iz--ignore-casez-dz--ignore-epsilonz/Epsilon for numeric comparison must be numeric
z	--paddingz-ez--eolÚcrlfú
ÚlfrÉ  ÚcrúÚautoz6Expected line ending of either 'crlf' or 'lf' but got r�   z--fail-if-diffÚhelpz-hz--helpr�   r?  r<  z¼You can use daff to improve git's handling of csv files, by using it as a
diff driver (for showing what has changed) and as a merge driver (for merging
changes between multiple versions).
zAutomatic setup
z---------------

zRun:
z  daff git csv
zManual setup
z------------

zcCreate and add a file called .gitattributes in the root directory of your
repository, containing:

z  *.csv diff=daff-csv
z  *.csv merge=daff-csv
z‚
Create a file called .gitconfig in your home directory (or alternatively
open .git/config for a particular repository) and add:

z  [diff "daff-csv"]
z  command = daff diff --git
z  [merge "daff-csv"]
z  name = daff tabular merge
z,  driver = daff merge --output %A %O %A %B

zÝMake sure you can run daff from the command-line as just "daff" - if not,
replace "daff" in the driver and command lines above with the correct way
to call it. Add --no-color if your terminal does not support ANSI colors.z*daff can produce and apply tabular diffs.
z	Call as:
z  daff a.csv b.csv
z@  daff [--color] [--no-color] [--output OUTPUT.csv] a.csv b.csv
z*  daff [--output OUTPUT.html] a.csv b.csv
z  daff [--www] a.csv b.csv
z  daff parent.csv a.csv b.csv
z'  daff --input-format sqlite a.db b.db
z)  daff patch [--inplace] a.csv patch.csv
z0  daff merge [--inplace] parent.csv a.csv b.csv
z-  daff trim [--output OUTPUT.csv] source.csv
z.  daff render [--output OUTPUT.html] diff.csv
z  daff copy in.csv out.tsv
z  daff in.csv
z  daff git
z  daff version
zNThe --inplace option to patch and merge will result in modification of a.csv.
z:If you need more control, here is the full list of flags:
zR  daff diff [--output OUTPUT.csv] [--context NUM] [--all] [--act ACT] a.csv b.csv
zX     --act ACT:     show only a certain kind of change (update, insert, delete, column)
z;     --all:         do not prune unchanged rows or columns
z0     --all-rows:    do not prune unchanged rows
z3     --all-columns: do not prune unchanged columns
zR     --color:       highlight changes with terminal colors (default in terminals)
z6     --context NUM: show NUM rows of context (0=none)
zA     --context-columns NUM: show NUM columns of context (0=none)
zO     --fail-if-diff: return status is 0 if equal, 1 if different, 2 if problem
z\     --id:          specify column name to use as primary key (repeat for multi-column key)
zJ     --ignore:      specify column name to ignore completely (can repeat)
zE     --index:       include row/columns numbers from original tables
zR     --input-format [csv|tsv|ssv|psv|json|sqlite]: set format to expect for input
zD     --eol [crlf|lf|cr|auto]: separator between rows of csv output.
z;     --no-color:    make sure terminal colors are not used
zE     --ordered:     assume row order is meaningful (default for CSV)
zM     --output-format [csv|tsv|ssv|psv|json|copy|html]: set format for output
zM     --padding [dense|sparse|smart]: set padding method for aligning columns
za     --table NAME:  compare the named table, used with SQL sources. If name changes, use 'n1:n2'
zO     --unordered:   assume row order is meaningless (default for json formats)
zM     -w / --ignore-whitespace: ignore changes in leading/trailing whitespace
z4     -i / --ignore-case: ignore differences in case
zL     -d EPS / --ignore-epsilon EPS: ignore small floating point differences
zU  daff render [--output OUTPUT.html] [--css CSS.css] [--fragment] [--plain] diff.csv
zE     --css CSS.css: generate a suitable css file to go with the html
zE     --fragment:    generate just a html fragment rather than a page
zM     --plain:       do not use fancy utf8 characters to make arrows prettier
z?     --unquote:     do not quote html characters in html diffs
z-     --www:         send output to a browser
)r³  rµ  ÚmergeÚtrimrì  r<  r?  rÀ  z--r³  rÂ  ro   rÀ  rÐ  é	   z-Expected 7 or 9 parameters from git, but got rÃ  é   z--- a/z+++ b/rÆ  rM  rÑ  Úremotez7Please do not use --inplace when specifying an output.
r  rµ  rY  z	 conflictÚsrZ  rì  Úuntitled)PÚTableIOrõ  r�  r’  rˆ  r–  r�  rª   r¿   rÀ   r•  r”  rŸ  r   rŠ  rŽ  r‘  r´  rˆ   r•   ÚparseIntr‹  r�  r‰  r�  rž  rŸ  r�  rŽ  r’  r�   r‚   r¨  rŒ  r�  r©  r›  rœ  Ú
parseFloatr�  Úpython_lib_MathÚisnanró  r—  r‹  r˜  r  r“   r”   rˆ  r°  r  Úhasr×  rv  r4  r®  r–   r¬  r“  r–  r‘  r�  r”  r«  r(  r™  ÚHighlightPatchrõ  r¤  ÚMergerr¢  r  rž   r¦  rª  r&  r)  r*  r'  )dr   r6  r’  rî  r
  Úinplacer<  rX  rÈ   rÉ   rÀ  r/   ÚposÚresÚpos1Úres1Úpos2Úres2Úpos3Úres3Úpos4Úres4Úpos5Úres5Úpos6Úres6Úpos7Úres7Úpos8Úres8ÚcontextÚpos9Úres9Úcontext1Úpos10Úres10Úpos11Úres11Úpos12Úres12Úpos13Úres13Úpos14Úres14Úpos15Úres15Úpos16Úres16Úpos17Úres17Úpos18Úres18r„   Úpos19Úres19Úpos20Úres20Úpos21Úres21Úpos22Úres22Úpos23Úres23Úpos24Úres24Úpos25Úres25ÚepsÚpos26Úres26Úpos27Úres27ÚendingÚpos28Úres28Úpos29Úres29Úpos30Úres30r5  ÚokrG  rÜ  Ú_hx_lenÚtypesr,  Úgit_argsÚold_display_pathÚnew_display_pathÚold_fileÚnew_filerM  Úanamer}   r~   ÚpatcherÚmergerÚ	conflictsrü  r.  sd                                                                                                       r   rÛ  z	Coopy.runŽ  sg  € ØˆJÜ“ˆBØˆJÜÐ1Ô2ØØ�	‰	ŒØˆŒØˆØˆØˆØˆØˆÜ!“^ˆŒ
Ø(,ˆ�
‰
Ô%ÚØˆDØˆBÜ�d“)ˆCØ˜“8Ø�Ø˜1‘f�Ø"# q¢&¨Q´°T³ª]�t˜A’wÀ�Ø˜:Ò%Ø�DÜ6×;Ñ;¸DÀ1ÀqÁ5ÓJ�FØ�CØ˜ašÜ" 4›y¨3™˜Ø˜ašØ˜Ø˜s C¨!¡GÐ-�CØ˜S #¨¡'˜]Ð+ÙØ˜W’nØ�DØ$(�D”MÜ&?×&DÑ&DÀTÈAÐPQÉEÓ&S�D”OØ�DØ˜qšÜ # D£	¨DÑ 0˜Ø˜qšØ ˜Ø  d¨Q¡hÐ0�DØ˜T 4¨!¡8˜_Ð-ÙØ˜\Ò)Ø�DØ$(�D”MØ�DØ˜qšÜ # D£	¨DÑ 0˜Ø˜qšØ ˜Ø  d¨Q¡hÐ0�DØ˜T 4¨!¡8˜_Ð-ÙØ˜YÒ&Ø�DØ,1�D—J‘JÔ)Ø�DØ˜qšÜ # D£	¨DÑ 0˜Ø˜qšØ ˜Ø  d¨Q¡hÐ0�DØ˜T 4¨!¡8˜_Ð-ÙØ˜[Ò(Ø�DØ,1�D—J‘JÔ)Ø�DØ˜qšÜ # D£	¨DÑ 0˜Ø˜qšØ ˜Ø  d¨Q¡hÐ0�DØ˜T 4¨!¡8˜_Ð-ÙØ˜W’nØ�DØ04�D—J‘JÔ-Ø8<�D—J‘JÔ5Ø�DØ˜qšÜ # D£	¨DÑ 0˜Ø˜qšØ ˜Ø  d¨Q¡hÐ0�DØ˜T 4¨!¡8˜_Ð-ÙØ˜\Ò)Ø�DØ04�D—J‘JÔ-Ø�DØ˜qšÜ # D£	¨DÑ 0˜Ø˜qšØ ˜Ø  d¨Q¡hÐ0�DØ˜T 4¨!¡8˜_Ð-ÙØ˜_Ò,Ø�DØ8<�D—J‘JÔ5Ø�DØ˜qšÜ # D£	¨DÑ 0˜Ø˜qšØ ˜Ø  d¨Q¡hÐ0�DØ˜T 4¨!¡8˜_Ð-ÙØ˜W’nØ�DØŸ
™
Ÿ™Ð/Ü*;Ó*=˜Ÿ
™
œØW[�D—J‘J—O‘O×%Ñ%Ô&?×&DÑ&DÀTÈAÐPQÉEÓ&SÑTØ�DØ˜qšÜ # D£	¨DÑ 0˜Ø˜qšØ ˜Ø  d¨Q¡hÐ0�DØ˜T 4¨!¡8˜_Ð-ÙØ˜[Ò(Ø�DÜ!Ÿl™lÔ+D×+IÑ+IÈ$ÐQRÐUVÑQVÓ+XÓY�GØ 1šØ7>˜Ÿ
™
Ô4Ø�DØ˜qšÜ # D£	¨DÑ 0˜Ø˜qšØ ˜Ø  d¨Q¡hÐ0�DØ˜T 4¨!¡8˜_Ð-ÙØÐ0Ò0Ø�DÜ"Ÿ|™|Ô,E×,JÑ,JÈ4ÐRSÐVWÑRWÓ,YÓZ�HØ  AšØ>F˜Ÿ
™
Ô;Ø�EØ š	Ü!$ T£¨UÑ!2˜Ø š	Ø !˜Ø  ¨°©	Ð3�EØ˜U E¨A¡IÐ.Ð/ÙØ˜[Ò(Ø�DØ"�GØ�EØ š	Ü!$ T£¨UÑ!2˜Ø š	Ø !˜Ø  ¨°©	Ð3�EØ˜U E¨A¡IÐ.Ð/ÙØ˜W’nØ�DØ�CØ�EØ š	Ü!$ T£¨UÑ!2˜Ø š	Ø !˜Ø  ¨°©	Ð3�EØ˜U E¨A¡IÐ.Ð/ÙØ˜]Ò*Ø�DØ).�D—J‘JÔ&Ø34�D—J‘JÔ0Ø%)�D”NØ�EØ š	Ü!$ T£¨UÑ!2˜Ø š	Ø !˜Ø  ¨°©	Ð3�EØ˜U E¨A¡IÐ.Ð/ÙØ˜[Ò(Ø�DØ)-�D—J‘JÔ&Ø%)�D”NØ�EØ š	Ü!$ T£¨UÑ!2˜Ø š	Ø !˜Ø  ¨°©	Ð3�EØ˜U E¨A¡IÐ.Ð/ÙØ˜YÒ&Ø�DØ17�D—J‘JÔ.Ø�EØ š	Ü!$ T£¨UÑ!2˜Ø š	Ø !˜Ø  ¨°©	Ð3�EØ˜U E¨A¡IÐ.Ð/ÙØ˜\Ò)Ø�DØ18�D—J‘JÔ.Ø�EØ š	Ü!$ T£¨UÑ!2˜Ø š	Ø !˜Ø  ¨°©	Ð3�EØ˜U E¨A¡IÐ.Ð/ÙØÐ-Ò-Ø�DØ—N‘NÔ#<×#AÑ#AÀ$ÈÈQÉÓ#PÔQØ�EØ š	Ü!$ T£¨UÑ!2˜Ø š	Ø !˜Ø  ¨°©	Ð3�EØ˜U E¨A¡IÐ.Ð/ÙØÐ.Ò.Ø�DÜ)B×)GÑ)GÈÈqÐSTÉuÓ)V�DÔ&Ø-1�DÔ*Ø�EØ š	Ü!$ T£¨UÑ!2˜Ø š	Ø !˜Ø  ¨°©	Ð3�EØ˜U E¨A¡IÐ.Ð/ÙØ˜V’mØ�DØŸ
™
Ÿ™Ð.Ü)-«˜Ÿ
™
œØ ŸJ™JŸN™N�EØ—L‘LÔ!:×!?Ñ!?ÀÀqÈ1ÁuÓ!NÔOØ�EØ š	Ü!$ T£¨UÑ!2˜Ø š	Ø !˜Ø  ¨°©	Ð3�EØ˜U E¨A¡IÐ.Ð/ÙØ˜ZÒ'Ø�DØ—J‘J×+Ñ+Ô,E×,JÑ,JÈ4ÐRSÐVWÑRWÓ,YÔZØ�EØ š	Ü!$ T£¨UÑ!2˜Ø š	Ø !˜Ø  ¨°©	Ð3�EØ˜U E¨A¡IÐ.Ð/ÙØ˜YÒ&Ø�DØ37�D—J‘JÔ0Ø27�D—J‘JÔ/Ø�EØ š	Ü!$ T£¨UÑ!2˜Ø š	Ø !˜Ø  ¨°©	Ð3�EØ˜U E¨A¡IÐ.Ð/ÙØ˜W’nØ�DØ).�DÔ&Ø-1�DÔ*Ø�EØ š	Ü!$ T£¨UÑ!2˜Ø š	Ø !˜Ø  ¨°©	Ð3�EØ˜U E¨A¡IÐ.Ò/Ø˜YÒ&Ø�DØ—J‘J×'Ñ'Ô(A×(FÑ(FÀtÈaÐRSÉeÓ(UÔVØ�EØ š	Ü!$ T£¨UÑ!2˜Ø š	Ø !˜Ø  ¨°©	Ð3�EØ˜U E¨A¡IÐ.Ð/ÙØ˜d’{¨Ð0EÒ)EØ�DØ37�D—J‘JÔ0Ø�EØ š	Ü!$ T£¨UÑ!2˜Ø š	Ø !˜Ø  ¨°©	Ð3�EØ˜U E¨A¡IÐ.Ð/ÙØ˜d’{¨°Ò)?Ø�DØ-1�D—J‘JÔ*Ø�EØ š	Ü!$ T£¨UÑ!2˜Ø š	Ø !˜Ø  ¨°©	Ð3�EØ˜U E¨A¡IÐ.Ð/ÙØ˜d’{¨Ð0BÒ)BØ�DÜ3×8Ñ8¸ÀÀAÁÓG�CÜ03·±¸sÓ0C�D—J‘JÔ-Ü&×,Ñ,¨T¯Z©Z×-FÑ-FÔGØŸ™Ð'YÔZØ Ø�EØ š	Ü!$ T£¨UÑ!2˜Ø š	Ø !˜Ø  ¨°©	Ð3�EØ˜U E¨A¡IÐ.Ð/ÙØ˜[Ò(Ø�DÜ2K×2PÑ2PÐQUÐXYÐ\]ÑX]Ó2_�D—J‘JÔ/Ø�EØ š	Ü!$ T£¨UÑ!2˜Ø š	Ø !˜Ø  ¨°©	Ð3�EØ˜U E¨A¡IÐ.Ð/ÙØ˜d’{¨°ªØ�DÜ6×;Ñ;¸DÀ1ÀqÁ5ÓJ�FØ &Ò(Ø!'™Ø  Dš.Ø!%™Ø  Dš.Ø!%™Ø  FÒ*Ø!%™àŸ™Ð)aÐouÐo}Ñekð  DJñ  *Kð  OSñ  )Sô  UØ Ø.4�DÔ+Ø�EØ š	Ü!$ T£¨UÑ!2˜Ø š	Ø !˜Ø  ¨°©	Ð3�EØ˜U E¨A¡IÐ.Ð/ØØÐ-Ò-Ø�DØ(,�DÔ%Ø�EØ š	Ü!$ T£¨UÑ!2˜Ø š	Ø !˜Ø  ¨°©	Ð3�EØ˜U E¨A¡IÐ.Ð/ØØ˜vš¨C°4ªKÀÀxÂØ�DØ�EØ š	Ü!$ T£¨UÑ!2˜Ø š	Ø !˜Ø  ¨°©	Ð3�EØ˜U E¨A¡IÐ.Ð/Ø�DØðq ˜”8ó	 ðz œc $›iš-ˆt�AŠw¨TˆØˆÙØˆCØˆDðH	Ü�D“	˜A“Ø˜9Ò$Ø—N‘N¤K×$<Ñ$<¼U¿]¹]Ó$KÈdÑ$RÔTØØ˜5“LØ—N‘Nð  $eô  fØ—N‘N 4Ô(Ø—N‘NÐ#6Ô7Ø—N‘NÐ#8Ô9Ø—N‘N 8Ô,Ø—N‘NÐ#5Ô6Ø—N‘N 4Ô(Ø—N‘NÐ#3Ô4Ø—N‘NÐ#5Ô6Ø—N‘Nð  $Lô  MØ—N‘NÐ#<Ô=Ø—N‘NÐ#=Ô>Ø—N‘Nð  $lô  mØ—N‘NÐ#<Ô=Ø—N‘NÐ#BÔCØ—N‘N 4Ô(Ø—N‘NÐ#=Ô>Ø—N‘NÐ#BÔCØ—N‘NÐ#SÔTØ—N‘Nð  $Iô  JØ—N‘N 4Ô(ØÜ˜“I “MØ—N‘NÐ#PÔQØ—N‘N <Ô0Ø—N‘NÐ#9Ô:Ø—N‘NÐ#fÔgØ—N‘NÐ#PÔQØ—N‘NÐ#AÔBØ—N‘NÐ#DÔEØ—N‘NÐ#MÔNØ—N‘NÐ#OÔPØ—N‘NÐ#VÔWØ—N‘NÐ#SÔTØ—N‘NÐ#TÔUØ—N‘NÐ#AÔBØ—N‘NÐ#4Ô5Ø—N‘N >Ô2Ø—N‘NÐ#5Ô6Ø—N‘N 4Ô(Ø—N‘NÐ#tÔuØ—N‘N 4Ô(Ø—N‘NÐ#`ÔaØ—N‘NÐ#xÔyØ—N‘NÐ#~ÔØ—N‘NÐ#aÔbØ—N‘NÐ#VÔWØ—N‘NÐ#YÔZØ—N‘NÐ#xÔyØ—N‘NÐ#\Ô]Ø—N‘NÐ#gÔhØ—N‘NÐ#uÔvØ—N‘Nð  $Cô  DØ—N‘NÐ#pÔqØ—N‘NÐ#kÔlØ—N‘NÐ#xÔyØ—N‘NÐ#jÔkØ—N‘NÐ#aÔbØ—N‘NÐ#kÔlØ—N‘NÐ#sÔtØ—N‘NÐ#sÔtØ—N‘Nð  $Hô  IØ—N‘NÐ#uÔvØ—N‘NÐ#sÔtØ—N‘NÐ#ZÔ[Ø—N‘NÐ#rÔsØ—N‘N 4Ô(Ø—N‘NÐ#{Ô|Ø—N‘NÐ#kÔlØ—N‘NÐ#kÔlØ—N‘NÐ#sÔtØ—N‘NÐ#eÔfØ—N‘NÐ#SÔTØØ¤# d£)šm�4˜’7°ˆCØˆFÜ—J‘JÒeÐfiÔjØ!�
Ø*4Ð*<�c—h‘h˜t”nÄH×DXÑDXÐY\Ð]aÐblÓDmÐstÒtØ �CØ‘Fà!%�JØ-7Ð-?˜#Ÿ(™( 3œ-Äx×G[ÑG[Ð\_Ð`cÐdnÓGoÐuwÒwÜ ›I¨šNØ"(˜CØ%&™FÜ! $›i¨1šnØ"(˜CØ%&˜FØ�u’Ü˜t›9 vÑ-�Ø�Ø˜!’GÜ˜t›9 s™?�CØ˜!’GØ�CØ˜3  g¡Ð/�Ø˜˜c G™mÐ,Ð-Ø�Ø×,Ñ,¨R°Ó6Ð6ÚÜ˜$“i &Ñ(�Ø˜1’W B¨!¢GØ—N‘NÐ%TÔWZ×WaÑWaÐbdÓWeÑ%eÐimÑ$mÔoØØ�Ø˜!’GÜ˜t›9 s™?�CØ˜!’GØ�CØ˜3  b¡Ð*�Ø˜˜c B™h˜Ð(Ø�Ü˜d›)�Ø�Ø˜!’GÜ˜t›9 s™?�CØ˜!’GØ�CØ˜3  g¡Ð/�Ø˜˜c G™mÐ,Ð-Ø�Ø34´s¸8³}Ò3D H¨Q¢KÈ$Ð Ø34´s¸8³}Ò3D H¨Q¢KÈ$Ð Ø+,¬s°8«}Ò+<˜H QšKÀ$�Ø+,¬s°8«}Ò+<˜H QšKÀ$�Ø˜!’GØ—N‘N°1´s¸8³}Ò3D H¨Q¢KÈ$ÔPØ78¼3¸x»=Ò7H¨°ªÈdÐ$Ø—‘ Ð7GÐ7O©VÐUeÑ!fÐjnÑ nÔpØ—‘ Ð7GÐ7O©VÐUeÑ!fÐjnÑ nÔpØ—‘˜HÔ%Ø—‘˜HÔ%ØˆFÜ�T“˜VÑ#¨Ò)ØŸ™¸À1ºÈÔRUÐVZÓR[ÒI[¨¨fªÐaeÐgoÓp�Ø  1™*�Ø%+¨q¢[°V¼cÀ$»iÒ5G�T˜&’\ÈTˆEØ—‘˜u WÓ-ˆAØˆAÜ�T“˜VÑ#¨Ò)Ø˜6’MØŸ™Ô'@×'EÑ'EÀdÈQÐQWÉZÓ'YÐZbÓc‘Aä6×;Ñ;¸DÀ1ÀvÁ:ÓO�FØ'+§}¡}ˆD�J‰JÔ$ÙØÐ&Ø—N‘NÐ#]Ô^Ø�ØØ�Ø�Ø�v’ØŸšØ)-×)>Ñ)>�D—J‘JÔ&Ø ŸJ™J×.Ò.Ø78˜Ÿ
™
Ô4Ø04×0BÑ0B�—
‘
Ô-Ø×$Ò$ð!ØŸ™ V¨A¨a°·
±
¸6ÔBð ×'Ó'Ø à—L‘L ¨¨!¨D¯J©J°vÖ>Ø˜’.Ü(¨¨1Ó-�Ø—‘”Ø—‘˜v aÖ(Ø˜’.Ü  q¨¨4¯:©:Ó6�Ø"ŸL™L›N�	Ø 1‘n�Ø ’MØ—N‘N¤c§j¡j°Ó&;¸kÑ&IÌ[×MeÑMeÐqzÐ}~Òq~Ñhkð  GIó  NLñ  &Lð  PTñ  %Tô  VØ—‘˜v aÕ(Ø˜’-Ø—‘˜v aÕ(Ø˜’/Ø× Ñ  ¨Õ*Ø˜’-Ü˜A“Y�Ø—‘�zÔ"Ø—‘  r¨$¯-©-¸¿
¹
À6Ó*JÈ5ÔQñ ØØ×ÒØàøôK )ò !ØÜ ûð!ûô4 ò 	ØÜ×%Ñ% bÓ)×0Ñ0Ó2ˆAØ×%Ò%Ü$×+Ñ+¨AÓ.Ð.Üûð	ús–   î8A	AZ' ðE+AZ' õ.M!AZ' ÁCD	AZ' ÁGAAZ' ÁH IAZ' ÁQ-A>AZ' ÁS,AZ ÁTAZ' ÁTE&AZ' ÁZ	AZ$ÁZAZÁZAZ' ÁZAZ$ÁZ$AZ' ÁZ'	A[?ÁZ0AA[:Á[:A[?c                 óž   — |j                  «       }dt        |«      k  r|d   nd dk(  rt        j                  «       S | j	                  ||«      S )Nr   z--keep)r6  rª   rˆ  r¸  rÛ  )r   r’  r6  s      r   r¯  zCoopy.coopyhxï	  sE   € Ø�w‰w‹yˆØœC ›IšˆT�!ŠW¨4°HÒ<Ü×#Ñ#Ó%Ð%Ø�x‰x˜˜RÓ Ð r   c                 ó´  — t        «       }t        j                  | |||«      }t        j                  ||«      }|j                  �|j                  j                  «       }|€&|j                  �|j                  j                  «       }|€t        dd«      }t        |«      }|j                  |«       t        «       }|j                  |«      j                  «       S rm   )ÚTableComparisonStaterˆ  rÜ  r´  r}   r  r~   r1  r  r  rã  r£  rÄ  )rÑ  r]  r–  rT   r  rÊ   rü  rì  s           r   r±  zCoopy.diffAsHtmlõ	  s¯   € ä#Ó%ˆÜ�[‰[˜˜v e¨DÓ1ˆÜ×Ñ  4Ó(ˆØ�F‰FÐØ—‘—‘“ˆAØˆY˜dŸf™fÐ0Ø—‘—‘“ˆAØˆIÜ˜A˜aÓ ˆAÜ�A‹YˆØ
×Ñ˜RÔ Ü“ˆØ×"Ñ" 2Ó&×+Ñ+Ó-Ð-r   c                 ó²   — t        t        «       «      }d|_        |€
t        «       }d|_        |j                  |j                  | ||d «       |j                  S )Nr�   rÇ  )rˆ  r`  r—  rˆ  r�  r«  rM  )rÑ  r]  r–  Útools       r   r²  zCoopy.diffAsAnsi
  sK   € ä”W“YÓˆØˆŒØˆMÜ “NˆEØ"ˆÔØ�‰�U—\‘\ %¨¨u°TÔ:Ø�~‰~Ðr   c                 óP  — t        «       }t        j                  | |||«      }t        j                  ||«      }|j                  �|j                  j                  «       }|€&|j                  �|j                  j                  «       }|€t        dd«      }|j                  |«       |S rm   )	r¹  rˆ  rÜ  r´  r}   r  r~   r1  Úhilite)rÑ  r]  r–  rT   r  rÊ   s         r   r³  z
Coopy.diff
  s‡   € ä#Ó%ˆÜ�[‰[˜˜v e¨DÓ1ˆÜ×Ñ  4Ó(ˆØ�F‰FÐØ—‘—‘“ˆAØˆY˜dŸf™fÐ0Ø—‘—‘“ˆAØˆIÜ˜A˜aÓ ˆAØ
�	‰	�!ŒØˆr   c                 óÂ   — d }|j                   �|j                   j                  «       }|€&|j                  �|j                  j                  «       }|€t        dd«      }|S rm   )r}   r  r~   r1  )r  rT   rÊ   s      r   r´  zCoopy.getBlankTable
  sS   € àˆØ�F‰FÐØ—‘—‘“ˆAØˆY˜dŸf™fÐ0Ø—‘—‘“ˆAØˆIÜ˜A˜aÓ ˆAØˆr   c                 óâ   — t         j                  | «      |_        t         j                  |«      |_        |€
t	        «       }||_        t        |«      }|j                  «       }t        ||«      }|S r   )	rˆ  r½  r}   r~   rˆ  rê  rÙ  rÜ  r  )rÑ  r]  r–  rT   r,  rÜ  r  s          r   rÜ  zCoopy.align(
  s\   € ä—‘˜uÓ%ˆŒÜ—‘˜vÓ&ˆŒØˆMÜ “NˆEØ"ˆÔÜ˜$ÓˆØ—‘“
ˆÜ�u˜UÓ#ˆØˆ	r   c                 ó†   — t        t        j                  | «      t        j                  |«      «      }|j                  «       S r   )rf  rˆ  r½  rõ  )rÑ  rµ  r–  r´  s       r   rµ  zCoopy.patch4
  s,   € ä ¤§¡¨uÓ!5´e·m±mÀEÓ6JÓKˆØ�}‰}‹Ðr   c                 ó¦   — t        «       }t        j                  | «      |_        t        j                  |«      |_        ||_        t        |«      }|S r   )r¹  rˆ  r½  r}   r~   rê  rÙ  )rÑ  r]  r–  rT   r,  s        r   r¶  zCoopy.compareTables9
  sA   € ä#Ó%ˆÜ—‘˜uÓ%ˆŒÜ—‘˜vÓ&ˆŒØ"ˆÔÜ˜$ÓˆØˆ	r   c                 óÚ   — t        «       }t        j                  | «      |_        t        j                  |«      |_        t        j                  |«      |_        ||_        t        |«      }|S r   )r¹  rˆ  r½  r¢   r}   r~   rê  rÙ  )rM  rÑ  r]  r–  rT   r,  s         r   r·  zCoopy.compareTables3B
  sQ   € ä#Ó%ˆÜ—‘˜vÓ&ˆŒÜ—‘˜uÓ%ˆŒÜ—‘˜vÓ&ˆŒØ"ˆÔÜ˜$ÓˆØˆ	r   c                  ó&  — t        dd«      } t        «       }t        d d «      }t        «       }t	        |«      }t        «       }t        d d «      }t        «       }t        d «      }t        d d d d d «      }	t        «       }
t        d «      }t        d «      }y©Nr{   r   )r1  ÚViterbir  rˆ  ÚIndexrã  rf  rñ  ÚTableModifierrô  ÚSqliteHelperr  r  )Ústr;   r  ÚcfÚidxÚdrÚhprÇ  Útmrú  ÚsqÚsmr,  s                r   r¸  zCoopy.keepAroundL
  s…   € ä˜˜1ÓˆÜ‹IˆÜ�t˜DÓ!ˆÜ‹^ˆÜ�B‹iˆÜ‹\ˆÜ˜D Ó&ˆÜ‹eˆÜ˜4Ó ˆÜ˜˜T $ t¨DÓ1ˆÜ‹^ˆÜ˜ÓˆÜ˜4Ó ˆØr   c                 ó   — | S r   r+   ©r+  s    r   r¹  zCoopy.cellFor]
  ó   € àˆr   c                  ó„   — t        «       } t        «       }|j                  | «      }|dk7  rt        j	                  |«       y y rm   )r`  rˆ  r¯  ÚSysÚexit)r’  ÚcoopyÚrets      r   rº  z
Coopy.maina
  s5   € ä‹YˆÜ“ˆØ�m‰m˜BÓˆØ�1ŠHÜ�H‰H�S�Mð r   c                 óD  — | j                  «       }| j                  «       }d}d}|}||k  ra|}|dz   }d}|}||k  rB|}	|dz   }|€dn|t        j                  | j	                  |	|«      «      z   }|€dn|dz   }||k  rŒB|€dn|dz   }||k  rŒat        t        |«      «       y )Nr�   r   r{   r�   r1  rÉ  )r
  r  r•   r–   r  rõ  r9   )
r  r:  rˆ   r   rÈ   rÉ   r  r1  r2  r+  s
             r   r»  z
Coopy.showi
  sÀ   € à�K‰K‹MˆØ�L‰L‹NˆØˆØˆØˆØ�CŠxØˆAØ�q‘&ˆBØˆCØˆCØ˜’9Ø�Ø˜Q‘w�Ø"% +™°3¼#¿*¹*ÀQÇYÁYÈqÐQRÃ^Ó:TÑT�Ø"% +™°3¸#Ñ=�ð	 ˜“9ð
 "˜k‘F¨s°dÑ:ˆCð �C‹xô 	Œc�#‹h�r   c                 ód  — t        «       }t        «       }| j                  «       }| j                  «       }d}d}|}||k  ra|}|dz   }t        «       }	d}
|}|
|k  r0|
}|
dz   }
| j	                  ||«      }|	j                  |«       |
|k  rŒ0|j                  |	«       ||k  rŒa||j                  d<   |S )Nr�   r   r{   Úsheet)r´  r�   r
  r  r  r‚   rˆ   )r  ÚworkbookrÛ  r:  rˆ   r   rÈ   rÉ   r  r…  r1  r2  r+  r;   s                 r   r¼  zCoopy.jsonify}
  sÀ   € ä$Ó&ˆÜ“ˆØ�K‰K‹MˆØ�L‰L‹NˆØˆØˆØˆØ�CŠxØˆAØ�q‘&ˆBÜ“&ˆCØˆCØˆCØ˜’9Ø�Ø˜Q‘w�Ø—I‘I˜a “N�Ø—
‘
˜1”ð	 ˜“9ð
 �L‰L˜Ôð �C‹xð $ˆ�
‰
�7ÑØˆr   c                 óv   — | €| S t         j                  | d«      }|�| S t        d«      }|j                  | «      S )Nr  r=  )r  r&   Ú
__import__ÚPythonTableView)ÚdataÚget_cell_viewr=  s      r   r½  zCoopy.tablify•
  sB   € àˆLØˆKÜŸ™ d¨=Ó9ˆØÐ%ØˆKÜ˜&Ó!ˆØ×#Ñ# DÓ)Ð)r   r   ),r(   r)   r*   r?   r@   rA   rB   Ú_hx_staticsr   r�  rž  rŸ  r   r¡  r¢  r£  r¤  r¥  r¦  r§  r¨  r©  rª  r«  r¬  r­  r®  rÛ  r¯  Ústaticmethodr±  r²  r³  r´  rÜ  rµ  r¶  r·  r¸  r¹  rº  r»  r¼  r½  r+   r   r   rˆ  rˆ  ¥  s°  „ Ø€Nð z€Iò {€Jò `€Kò G€Kóò0!ò$=ò~&ò
ò	ò1ò
1ó
'óò2&'òP
ò+ò.ò`ò(ò$òLò.zóx_	òB!ð ò.ó ð.ð òó ðð òó ðð ñó ðð ñ	ó ð	ð òó ðð òó ðð òó ðð ñó ðð  ñó ðð ñó ðð ñó ðð& ñó ðð. ñ*ó ñ*r   rˆ  c                   ó"   — e Zd Zd ZdZg d¢Zd„ Zy)Ú
CrossMatch)r	  r
  Úitem_ar  c                 ó<   — d | _         d | _        d | _        d | _        y r   )r  ræ  r
  r	  r   s    r   r   zCrossMatch.__init__§
  s   € ØˆŒØˆŒØˆŒØˆ�r   Nrý   r+   r   r   rå  rå  ¢
  s   „ Ø!€NØ8€IÚ9€Jór   rå  c                   ó^   — e Zd Zd ZdZg d¢Zg d¢Zdd„Zd„ Zdd„Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zy)rñ  )ÚcursorÚ	row_endedÚhas_structureÚdelimÚdiscovered_eolÚpreferred_eol)r¢  Ú
renderCellr+  Ú	makeTableÚparseCellPartÚ	parseCellr,  ÚsetPreferredEolNc                 óh   — |€d}d | _         d| _        d| _        |€dn|| _        d | _        || _        y )NrÈ  r   F)rë  ré  rê  rì  rí  rî  )r   rì  Úeols      r   r   zCsv.__init__¶
  s?   € ØˆMØˆEØ!ˆÔØˆŒØˆŒØ$˜}‘c°EˆŒ
Ø"ˆÔØ ˆÕr   c           	      ó8  — | j                   }|€d}d}|j                  «       }t        |«      }|j                  «       }t	        «       }|j                  «       rŒd}|}	||	k  ra|}
|dz   }|
dkD  r| j                  }|j                  |«       | j                  ||j                  |
«      «      }|j                  |«       ||	k  rŒa|j                  |«       |j                  «       rŒŒdj                  |D �cg c]  }t        j                  |d«      ‘Œ c}«      S c c}w )NrS  r�   r   r{   )rî  r  ÚTableStreamÚwidthr�   Úfetchrì  r‚   rï  r  r>   rÊ  rË  )r   r  rõ  r—   r;   Ústreamr:  ÚtxtsrÈ   rÉ   r+  rÍ  r:  s                r   r¢  zCsv.renderTableÀ
  s÷   € Ø× Ñ ˆØˆKØˆCØˆØ�M‰M‹OˆÜ˜Q“ˆØ�L‰L‹NˆÜ‹vˆØ�l‰lŒnØˆBØˆCØ˜’8Ø�Ø˜1‘f�Ø˜’EØŸ™�BØ—K‘K ”OØ—_‘_ Q v§~¡~°aÓ'8Ó9�Ø—‘˜B”ð ˜“8ð �K‰K˜Ôð �l‰l�nð �w‰w¸tÖD¸œ×-Ñ-¨b°Õ4ÒDÓEÐEùÒDs   Ã3Dc                 óÔ  — |€d}|€y|j                  |«      }|}|sZt        |«      dkD  rLd }dt        |«      k\  rdn|d   dk7  r,t        |«      dz
  }|dk  s|t        |«      k\  rdn||   dk(  }nd}|rd}|�s0d}t        |«      }	||	k  �r|}
|dz   }|
dk  s|
t        |«      k\  rdn||
   }|dk(  s|d	k(  s
|d
k(  s|dk(  rd}nå| j                  }|dt        |«      k\  rdn|d   k(  rºt        | j                  «      dk(  rd}n¦|
t        | j                  «      z   t        |«      k  r{d}d}t        | j                  «      }||k  rX|}|dz   }|
|z   }|dk  s|t        |«      k\  rdn||   }| j                  }||dk  s|t        |«      k\  rdn||   k7  rd}n||k  rŒX|rd}n||	k  r�Œd}|r	|€dn|dz   }d}d}t        |«      }	||	k  rw|}
|dz   }|
dk  s|
t        |«      k\  rdn||
   }|dk(  r	|€dn|dz   }|d	k7  r0|d
k7  r+t        |«      dkD  r|€dn||€dn|z   }d}|€dn||€dn|z   }n|€dn||€dn|z   }||	k  rŒwt        |«      dkD  r|€dn||€dn|z   }|r	|€dn|dz   }|S )NFÚNULLr   r�   r1  r{   Tr2  rV  rÉ  rÎ  r�   )ra   rª   rì  )r   r;   ÚdÚforce_quoterO  Ú
need_quoteÚtmpr0   rÈ   rÉ   rÀ  Úchr„   Úmatchr1  r2  r&  Ú_this1r—   Úline_bufs                       r   rï  zCsv.renderCell×
  s  € ØÐØˆKØˆIØØ—*‘*˜Q“-ˆØ ˆ
ÙÜ�G“˜qÒ Ø�Ø¤3 w£<Ò/‘b°w¸q±zÀsÒJÜ  ›\¨AÑ-�EØ&+¨a¢i°e¼sÀ7»|Ò6K™RÐU\Ð]bÑUcÐilÑl‘Cà�CÙØ!%�JÚØˆBÜ�g“,ˆCØ˜“8Ø�Ø˜1‘f�Ø  1šu¨1´°G³Ò+<‘bÀgÈaÁj�Ø˜T’z¨¨dª
¸2Àº:ÈbÐTXÊjØ!%�JØØŸ
™
�Ø A¬¨U«¢O™B¸5À¹8ÒEÜ˜DŸJ™J›¨1Ò,Ø%)˜
ØØœS §¡›_Ñ,´°W³Ò=Ø $˜Ø˜Ü! $§*¡*›o˜Ø" SšyØ #˜AØ#&¨¡7˜CØ%&¨¡U˜EØ,1°AªI¸EÄSÈÃ\Ò<Q¡2Ð[bÐchÑ[i˜CØ%)§Z¡Z˜FØ #°!°a²%¸aÄ3ÀvÃ;Ò>N©ÐX^Ð_`ÑXaÒ cØ(- Ø %ð  # S›yñ !Ø)-˜JØ!ð7 ˜”8ð8 ˆÙØ!' ‘v°V¸tÑCˆFØˆØˆÜ�'‹lˆØ�CŠxØˆAØ�q‘&ˆBØ˜qš5 q¬C°«LÒ'8‘"À'È!Á*ˆBØ�d’
Ø%+ ^™6¸À4ÑG�Ø�t’ 2¨¢:Ü˜“M AÒ%Ø)/¨™v¸VÐRZÐRbÉÐhpÑq�FØ!�HØ%+ ^™6¸ÈbÈjÁFÐ^`Ña‘à'/Ð'7™V¸XÐTVÐT^É&ÐdfÑg�ð �C‹xô �‹M˜AÒØ!' ‘v°VÈ(ÐJZÁÐ`hÑiˆFÙØ!' ‘v°V¸tÑCˆFØˆr   c                 óF  — |j                  «       syd| _        d| _        d| _        |j	                  dd«       d}d}d}d}| j                  t        |«      k  �rH| j                  |«      }||k\  r|dz   }|j	                  ||«       ||k\  r´|dkD  r˜|dk7  rª|�¨d}d}	|}
|	|
k  rG|	}|	dz   }	|dkD  r	|€dn|dz   }|€dn|t        j                  |j                  ||«      «      z   }|	|
k  rŒGt        t        dt        j                  |«      z   d	z   |€dn|z   d
z   |€dn|z   «      «       n|dz   }|j	                  ||«       |j                  ||dz
  |«       |dz   }| j                  rd}|dz   }| }|j                  }|dz   |_        | | j                  t        |«      k  r�ŒHy)NFr   Tr{   r�   r�   rÈ  zIgnored overflowing row z with cell 'z	' after: )r  ré  rê  rë  r  rª   rñ  r•   r–   r  rõ  r9   r  )r   r   r-  r:  rˆ   r@  ÚyatÚcellr{  rÈ   rÉ   rÀ  Ú_hx_local_4Ú_hx_local_5s                 r   r+  zCsv.parseTable   sþ  € Ø—‘Ô!ØØˆŒØˆŒØ!ˆÔØ�
‰
�1�QŒØˆØˆØˆØˆØ�{‰{œS ›XÓ%Ø×%Ñ% cÓ*ˆDØ�q’Ø˜1‘W�Ø—
‘
˜1˜Q”Ø�a’Ø˜!’GØ š¨4Ð+;Ø"$˜Ø˜Ø˜Ø! CšxØ "˜AØ"$ q¡&˜BØ ! A¢Ø6=°o©FÈ7ÐVYÑ+Y Ø29°/©ÀwÔRU×R\ÑR\Ð]`×]hÑ]hÐijÐknÓ]oÓRpÑ'p˜Gð  " C›xô œcÐ'AÄCÇJÁJÈsÃOÑ'SÐWeÑ&eÐtxð  uAÑjpð  GKñ  &Lð  P[ñ  %[ð  jqð  jyñ  `fð  Fñ  $Gó  Iõ  Jà˜a™�AØ—J‘J˜q ”OØ�K‰K˜˜A ™E 4Ô(Ø�q‘&ˆBØ�~Š~Ø�Ø˜Q‘w�ØˆKØ%×,Ñ,ˆKØ"-°¡/ˆKÔÙð; �{‰{œS ›XÔ%ð< r   c                 óB   — t        dd«      }| j                  ||«       |S rm   )r1  r+  )r   r   r-  s      r   rð  zCsv.makeTableK  s!   € Ü˜!˜AÓˆØ�‰˜˜CÔ Øˆ
r   c           	      ó.  — |€y d| _         t        |«      }d}d}d}d}| j                  }| j                  }t        |«      }	||	k  �r|}
|dz   }t        j	                  ||
«      }|
}|dk7  r|
|k  r|
}| j
                  �rˆ|�s||t        j	                  | j                  d«      k(  rÓt        | j                  «      dk(  r�n‰|
t        | j                  «      z   t        |«      k  r•d}d}t        | j                  «      }||k  rX|}|dz   }|
|z   }|dk  s|t        |«      k\  rdn||   }| j                  }||dk  s|t        |«      k\  rdn||   k7  rd}n||k  rŒX|r|t        | j                  «      dz
  z   }�nÐ|dk(  s|dk(  ràt        j	                  ||
dz   «      }|�Œ||k7  r‡|dk(  s|dk(  r}| j                  €lt        j                  dj                  t        t        |g«      «      «      t        j                  dj                  t        t        |g«      «      «      z   | _        |dz   }| j                  €%dj                  t        t        |g«      «      | _        d| _         næ|d	k(  r[|
| j                  k(  rEd}|}|
|k7  r:|€d
n|t        j                  dj                  t        t        |g«      «      «      z   }�Œz||k(  rd}|€d
n|t        j                  dj                  t        t        |g«      «      «      z   }�Œ½||k(  rd}�ŒÆ|€d
n|t        j                  dj                  t        t        |g«      «      «      z   }||	k  r�Œ|| _        |dk(  rA|dk(  ry ||kD  r6||z
  }t        j                  ||d «      dk(  rt        j                  |dd «      S |S )NFr   r�   r{   é_   Té   é
   é"   r�   rý  )rê  rª   ré  rv  Ú
charCodeAtrë  rì  rí  r“   r”   r>   rÙ  rÚ  rw  )r   r   Úfirst_non_underscoreÚlast_processedÚquotingÚquoter—   ÚstartrÈ   rÉ   rÀ  r  r  r1  r2  r&  r0   r  r„   Úch2Ú_hx_dels                        r   rñ  zCsv.parseCellPartP  sð  € ØˆKØØˆŒÜ" 3›xÐØˆØˆØˆØˆØ—‘ˆØ�[‰[ˆÜ�#‹hˆØ�C‹xØˆAØ�q‘&ˆBÜ×$Ñ$ S¨Ó+ˆBØˆNØ�r’ Ð%9Ò!9Ø'(Ð$Ø×!Ó!ÚØœh×1Ñ1°$·*±*¸QÓ?Ò?Ü §
¡
›O¨qÒ0Ù!Ø¤ T§Z¡Z£Ñ0´S¸³XÒ=Ø$(˜EØ"#˜CÜ"% d§j¡j£/˜CØ#&¨¢9Ø$' Ø'*¨Q¡w Ø)*¨Q© Ø05¸²	ÀÌÈSËÒ@Q¡rÐ[^Ð_dÑ[e Ø(,¯
©
 Ø$'°a¸!²eÀ!ÄsÈ5ÃzÂ/©RÐ[`ÐabÑ[cÒ$eØ,1 EØ$)ð $'¨£9ñ  %Ø2@ÄSÈÏÉÃ_ÐWXÑEXÑ2Z Ù %Ø˜rš¨¨bªÜ&×1Ñ1°#°q¸1±uÓ>˜Ø˜OØ # r¢	Ø%(¨B¢Y°S¸B²YØ(,×(;Ñ(;Ð(CÜ?J×?WÑ?WÐXZ×X_ÑX_Ô`cÔdgÐikÐhlÓ`mÓXnÓ?oÔr}÷  sKñ  sKð  LN÷  LSñ  LSô  TWô  X[ð  ]`ð  \aó  Tbó  Lcó  sdñ  @d¨Ô(;Ø6DÀqÑ6H NØ ×/Ñ/Ð7Ø24·'±'¼#¼cÀ2À$»-Ó2H˜DÔ/Ø)-˜œØØ˜bšØ §¡Ò,Ø&*˜GØ$&˜EØ ! U¢
Ø5;°^©6ÈÔS^×SkÑSkÐln×lsÑlsÔtwÔx{Ð}ð  }Aó  uBó  mCó  TDñ  +D Ù$Ø  EškØ&*˜GØ)/¨™v¸VÄ{×G_ÑG_Ð`b×`gÑ`gÔhkÔloÐqsÐptÓhuÓ`vÓGwÑw�FÙØ˜%’KØ#�GÙØ!' ‘v°V¼{×?WÑ?WÐXZ×X_ÑX_Ô`cÔdgÐikÐhlÓ`mÓXnÓ?oÑoˆFðm �CŒxðn %ˆŒØ�QŠJØ˜&Ò ØØ$ uÒ,Ø/°%Ñ7�Ü—O‘O F¨7°4Ó8¸FÒBÜ#Ÿ?™?¨6°!°DÓ9Ð9Øˆr   c                 óN   — d| _         d| _        d| _        | j                  |«      S ©Nr   F)ré  rê  rë  rñ  ©r   r   s     r   rò  zCsv.parseCell�  s)   € ØˆŒØˆŒØ"ˆÔØ×!Ñ! #Ó&Ð&r   c                 ó   — | j                   S r   )rí  r   s    r   r,  zCsv.getDiscoveredEol£  ó   € Ø×"Ñ"Ð"r   c                 ó   — || _         y r   )rî  )r   rõ  s     r   ró  zCsv.setPreferredEol¦  s
   € Ø ˆÕr   ©NNr   )r(   r)   r*   r?   r@   rA   rB   r   r¢  rï  r+  rð  rñ  rò  r,  ró  r+   r   r   rñ  rñ  °
  sL   „ Ø€NØd€IÚe€Jò P€Kó!òFó.GòR)òVò
KòZ'ò#ó!r   rñ  c                   óD   — e Zd Zd ZdZddgZdgZdgZd„ Zd„ Z	e
d„ «       Zy	)
ÚDate)ÚdateÚdateUTCr"  r#  ra   Ú	makeLocalc                 óB  — d | _         |t        j                  j                  k  rt        j                  j                  }|dk(  rd}t        j                  t        ||dz   ||||d«      «      | _        | j                  j                  t        j                  «      | _         y rW  )
r#  Úpython_lib_datetime_DatetimeÚminÚyearr!  r$  r"  Ú
astimezoneÚpython_lib_datetime_TimezoneÚutc)r   r(  ÚmonthÚdayÚhourÚ_hx_minÚsecs          r   r   zDate.__init__³  sƒ   € ØˆŒØÔ/×3Ñ3×8Ñ8Ò8Ü/×3Ñ3×8Ñ8ˆDØ�1ŠHØˆCÜ—N‘NÔ#?ÀÀeÈaÁiÐQTÐUYÐZaÐbeÐfgÓ#hÓiˆŒ	Ø—y‘y×+Ñ+Ô,H×,LÑ,LÓMˆ�r   c                 ó8   — | j                   j                  d«      S )Nz%Y-%m-%d %H:%M:%S)r"  Ústrftimer   s    r   ra   zDate.toString¼  s   € Ø�y‰y×!Ñ!Ð"5Ó6Ð6r   c                 ó(  — 	 | j                  «       S # t        $ rv}	 t        j                  t        j
                  «      j                  «       j                  } | j                  di t        j                  t        d|i«      «      ¤ŽcY d }~S d }~ww xY w)NÚtzinfor+   )r)  r(  r&  Únowr*  r+  r4  Úreplacer"  r#  r	   )r"  rÈ   r4  s      r   r$  zDate.makeLocal¿  s|   € ð	iØ—?‘?Ó$Ð$øÜò 	iØÜ1×5Ñ5Ô6R×6VÑ6VÓW×bÑbÓd×kÑkˆFØ�4—<‘<ÑhÔ"=×"CÑ"CÄNÐT\Ð^dÐSeÓDfÓ"gÑhÕhûð	iús   ‚ ’	B›A+BÂBÂBN)r(   r)   r*   r?   r@   rA   rB   râ  r   ra   rã  r$  r+   r   r   r!  r!  ¬  sE   „ Ø€NØ#€IØ˜)Ð$€JØ�,€KØ�-€KòNò7ð ñió ñir   r!  c                   ó¾   — e Zd Zd ZdZg d¢Zg d¢Zg d¢Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zedd„«       Zed„ «       Zed„ «       Zy)rã  )Útext_to_insertÚtd_openÚtd_closeÚopenÚpretty_arrowsr   Úsection)rä  rå  r±  Ú
beginTableÚ
setSectionÚbeginRowÚ
insertCellÚendRowÚendTablerÄ  ra   rì  r£  rê  rè  )ÚexamineCellÚ
markSpacesrï  c                 óv   — d | _         d | _        d | _        t        «       | _        d| _        d| _        d| _        y rq  )r=  r:  r9  r�   r8  r;  r<  r   r   s    r   r   zDiffRender.__init__Ò  s7   € ØˆŒØˆŒØˆŒÜ"›fˆÔØˆŒ	Ø!ˆÔØˆ�r   c                 ó   — || _         y r   )r<  rw   s     r   rä  zDiffRender.usePrettyArrowsÛ  ó
   € Ø!ˆÕr   c                 ó   — || _         y r   )r   rw   s     r   rå  zDiffRender.quoteHtmlÞ  s	   € Øˆ�r   c                 ó>   — | j                   }|j                  |«       y r   )r8  r‚   )r   rO  r„   s      r   r±  zDiffRender.insertá  s   € Ø×#Ñ#ˆØ�‰�WÕr   c                 ó4   — | j                  d«       d | _        y )Nz<table>
)r±  r=  r   s    r   r>  zDiffRender.beginTableå  s   € Ø�‰�KÔ Øˆ�r   c                 óX  — || j                   k(  ry | j                   �=| j                  d«       | j                  | j                   «       | j                  d«       || _         | j                   �>| j                  d«       | j                  | j                   «       | j                  d«       y y )Nz</tz>
z<t)r=  r±  )r   rO  s     r   r?  zDiffRender.setSectioné  s�   € Ø�t—|‘|Ò#ØØ�L‰LÐ$Ø�K‰K˜ÔØ�K‰K˜Ÿ™Ô%Ø�K‰K˜ÔØˆŒØ�L‰LÐ$Ø�K‰K˜ÔØ�K‰K˜Ÿ™Ô%Ø�K‰K˜Õð %r   c                 ó–   — d| _         d| _        d}|dk(  rd| _         d| _        |}d}|dk7  rd|€d	n|z   d
z   }| j                  |«       y )Nz<tdz</td>r�   Úheaderz<thz</th>z<tr>z<tr class="r�   z">)r9  r:  r±  )r   ÚmodeÚ	row_classÚtrs       r   r@  zDiffRender.beginRowö  s^   € ØˆŒØˆŒØˆ	Ø�HÒØ ˆDŒLØ#ˆDŒMØˆ	ØˆØ˜ŠOØ!¨yÐ/@¡VÀiÑPÐTYÑYˆBØ�‰�B�r   c                 ó  — d}|dk7  rd|€dn|z   dz   }| j                  t        j                  | j                  «      |€dn|z   dz   «       |�| j                  |«       n| j                  d«       | j                  | j                  «       y )Nr�   z class="r�   r2  ú>)r±  r“   r”   r9  r:  )r   r   rO  Úcell_decorates       r   rA  zDiffRender.insertCell  s   € ØˆØ�BŠJØ)°t°|©VÈÑNÐRVÑVˆMØ�‰”k×.Ñ.¨t¯|©|Ó<È-ÐJ_ÁÐerÑsÐwzÑzÔ|ØˆOØ�K‰K˜Õà�K‰K˜ÔØ�‰�D—M‘MÕ"r   c                 ó&   — | j                  d«       y )Nz</tr>
©r±  r   s    r   rB  zDiffRender.endRow  s   € Ø�‰�IÕr   c                 óH   — | j                  d «       | j                  d«       y )Nz	</table>
)r?  r±  r   s    r   rC  zDiffRender.endTable  s   € Ø�‰˜ÔØ�‰�LÕ!r   c           	      óŠ   — | j                   }dj                  |D �cg c]  }t        j                  |d«      ‘Œ c}«      S c c}w ©Nr�   )r8  r>   rÊ  rË  rÌ  s      r   rÄ  zDiffRender.html  s7   € Ø×#Ñ#ˆØ�w‰w¸uÖE¸œ×-Ñ-¨b°Õ4ÒEÓFÐFùÒErÎ  c                 ó"   — | j                  «       S r   )rÄ  r   s    r   ra   zDiffRender.toString  s   € Ø�y‰y‹{Ðr   c                 ó"  — t         j                  |«      }|j                  «       dk(  s|j                  «       dk(  r| S | }|j	                  «        d}t        «       }|j                  «       }|j                  |j                  dd«      «      }|dk(  rdnd}|dkD  r(|j                  «       dk  s|j                  «       dk  r| S d}|j                  «       }	||	k  �r¤|}
|dz   }d}|j                  |j                  ||
«      «      }|€d}t        j                  ||
||d||||«	       |j                  }|dk(  r|
}|dk(  s|dk(  s
|d	k(  s|d
k(  r| j                  d«       n| j                  d«       |j                  |«       d}|j                  «       }||k  rÐ|}|dz   }t        j                  ||
||j                  ||
«      |dk\  r!|j                  |j                  ||«      «      nd||||«	       | j                  r|j                  n|j                   }| j"                  r$t$        j'                  |j                  |«      «      }|j)                  ||j*                  «       ||k  rŒÐ|j-                  «        ||	k  r�Œ¤|j/                  «        | S )Nr   ro   ú@:@r{   Fr�   ÚspecrN  r0   rS   r  r  )rˆ  r½  r
  r  r>  rä   r  ra   r  rã  rD  rè   r?  r@  r<  rç   ræ   r   ÚStringToolsÚ
htmlEscaperA  ré   rB  rC  )r   r-  rì  Ú
change_rowr  ÚviewÚcornerÚoffrÈ   rÉ   r…  r;  r   Úrow_moder1  r2  r.  rE  s                     r   rì  zDiffRender.render  s�  € Ü�m‰m˜CÓ ˆØ�]‰]‹_ Ò!¨¯©Ó(8¸AÒ(=ØˆKØˆØ×ÑÔØˆ
Ü‹zˆØ�‰Ó ˆØ—‘˜sŸ{™{¨1¨QÓ/Ó0ˆØ ’o‰q¨QˆØ�!ŠGØ—‘“ AÒ%¨C¯N©NÓ,<ÀÒ,AØ�ØˆØ�n‰nÓˆØ�C‹xØˆCØ�q‘&ˆBØˆDØ—-‘- §¡¨C°Ó 4Ó5ˆCØ�Ø�Ü×"Ñ" 3 s¨4°°B°s¸6À$ÀsÔKØ—}‘}ˆHØ˜FÒ"Ø �
Ø˜xÒ'¨h¸&Ò.@ÈÐU\ÒI\ÐemÐqwÒewØ—‘ Õ'à—‘ Ô'Ø�O‰O˜HÔ%ØˆCØ—-‘-“/ˆCØ˜’9Ø�Ø˜Q‘w�Ü×&Ñ& q¨¨T°#·+±+¸aÀÓ2DÐt~ð  CDò  uDÀdÇmÁmÐTW×T_ÑT_Ð`aÐblÓTmÔFnð  LNð  PSð  TZð  [_ð  `cô  dØ-1×-?Ò-?�t×(Ò(ÀdÇjÁj�Ø—?’?Ü%×0Ñ0°·±¸sÓ1CÓD�CØ×!Ñ! # d×&<Ñ&<Ô=ð ˜“9ð �M‰MŒOð5 �CŒxð6 	�‰ÔØˆr   c                 óì  — |j                  «       }d}t        |«      dk  s|j                  «       r!| j                  |j	                  «       «       d}|}t        |«      }||k  r�|}|dz   }|dk\  r|t        |«      k  r||   nd }|j                  |«      }|j                  «       dk  rŒK| j                  d«       | j                  |«       | j                  d«       | j                  |«       ||k  rŒ�| S )Nr   r{   z<h3>z</h3>
)rù  rª   rû  rì  rú  r‰   r  r±  )	r   Útabsr¬   r  rÈ   rÉ   rÀ  r!   r-  s	            r   r£  zDiffRender.renderTablesJ  sÚ   € Ø—‘“ˆØˆÜ�‹Z˜1Š_ §¡Ô!1Ø�K‰K˜Ÿ™›
Ô#ØˆEØˆÜ�%‹jˆØ�CŠxØˆAØ�q‘&ˆBØ ! Q¢¨1¬s°5«zª>�E˜!’H¸tˆDØ—(‘(˜4“.ˆCØ—‘Ó  AÒ%ØØ�K‰K˜ÔØ�K‰K˜ÔØ�K‰K˜	Ô"Ø�K‰K˜Ôð �C‹xð ˆr   c                  ó   — y)NaÒ  .highlighter .add { 
  background-color: #7fff7f;
}

.highlighter .remove { 
  background-color: #ff7f7f;
}

.highlighter td.modify { 
  background-color: #7f7fff;
}

.highlighter td.conflict { 
  background-color: #f00;
}

.highlighter .spec { 
  background-color: #aaa;
}

.highlighter .move { 
  background-color: #ffa;
}

.highlighter .null { 
  color: #888;
}

.highlighter table { 
  border-collapse:collapse;
}

.highlighter td, .highlighter th {
  border: 1px solid #2D4068;
  padding: 3px 7px 2px;
}

.highlighter th, .highlighter .header, .highlighter .meta {
  background-color: #aaf;
  font-weight: bold;
  padding-bottom: 4px;
  padding-top: 5px;
  text-align:left;
}

.highlighter tr.header th {
  border-bottom: 2px solid black;
}

.highlighter tr.index td, .highlighter .index, .highlighter tr.header th.index {
  background-color: white;
  border: none;
}

.highlighter .gap {
  color: #888;
}

.highlighter td {
  empty-cells: show;
  white-space: pre-wrap;
}
r+   r   s    r   rê  zDiffRender.sampleCss_  s   € ð br   c                 ó
  — | j                   j                  dd«       | j                   }| j                  «       }|j                  d|«       | j                   j                  dd«       | j                   }|j                  d«       y )Nr   zM<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<style TYPE='text/css'>
r{   rÒ  z2</style>
</head>
<body>
<div class='highlighter'>
z</div>
</body>
</html>
)r8  r±  rê  r‚   )r   r„   r+  s      r   rè  zDiffRender.completeHtmlb  sm   € Ø×Ñ×"Ñ" 1Ð&zÔ{Ø×#Ñ#ˆØ�N‰NÓˆØ�‰�Q˜ÔØ×Ñ×"Ñ" 1Ð&^Ô_Ø×#Ñ#ˆØ�‰Ð1Õ2r   Nc	                 óì  ‡‡— |€d}|j                  |«      }	d‰_        d‰_        d‰_        d‰_        d‰_        d‰_        ˆfd„}
 |
«       ‰_        |‰_        ‰j                  ‰_	        |€d}|€d}t        |«      dk\  r•dt        |«      k\  rdn|d   dk(  r}dt        |«      k\  rdn|d   dk7  ret        j                  |dd«      }|dk\  rIt        j                  |d|dz
  «      ‰_        t        j                  ||dz   t        |«      «      }d‰_        d}|d	k(  rd
‰_        |dk(  r|dk(  r|dk(  rd‰_        d }|€|j                  d«      nt        j                  |d|«      dk\  rˆfd„} |«       ‰_        nBd }|€|j                  d«      nt        j                  |d|«      dk\  rˆfd„} |«       ‰_        d}|dk(  r	d‰_        �nˆ|dk(  r	d‰_        �nz|dk(  r	d‰_        �nl|dk(  r|�sdd‰_        �n[|dk(  r	d‰_        �nMd }|€|j                  d«      nt        j                  |d|«      dk\  �r|�s|j                  d«      }|}dt        |«      k  r|d   nd }|€|}|j!                  ‰j                  «      }|€d}d }|	s0d }|€|j                  |«      nt        j                  |||«      dk\  }nd}|�r–dŠ|}||k7  r^|	r|j#                  |d«      ‰_        n4d }|€|j                  |«      nt        j                  |||«      dk\  ‰_        ‰j
                  r|}dŠd‰_        |‰_        |‰_        |	rg‰j
                  r6|j%                  |d«      |j%                  |d«      |j%                  |d«      g}n™|j%                  |d«      |j%                  |d«      g}nt|j!                  ‰j                  «      ‰_	        ‰j                  €d‰_	        ‰j                  |k(  rddg}n-‰j                  }|dk(  rt'        |«      n|j                  |«      }|}t        |«      d k\  r¢t(        j+                  |dt,        j/                  dt        |«      k  r|d   nd dt        |«      k  r|d   nd «      «       t(        j+                  |dt,        j/                  dt        |«      k  r|d   nd dt        |«      k  r|d   nd «      «       t        |«      dk\  r‘dt        |«      k  r|d   nd }t(        j+                  |dt,        j/                  |d t        |«      k  r|d    nd «      «       t(        j+                  |d t,        j/                  d t        |«      k  r|d    nd |«      «       dj1                  t3        t4        d!g«      «      ‰_        ‰j                  j1                  |D �cg c]  }t6        j9                  |d«      ‘Œ c}«      ‰_	        ˆˆfd"„} |«       ‰_        ‰j
                  rdnd}|dk\  r|t        |«      k  r||   nd ‰_        t(        j=                  ||dz   «      ‰_        ‰j
                  rdt        |«      k  r|d   nd ‰_         | dk(  r|dkD  rˆfd#„} |«       ‰_        y y y c c}w )$Nr   r�   Fc                  ó>   •— ˆfd„}  | «       ‰_         ‰j                   S )Nc                  ó>   •— ˆfd„}  | «       ‰_         ‰j                   S )Nc                  ó*   •— d ‰ _         ‰ j                   S r   )rð   ©r  s   €r   rn   zUDiffRender.examineCell.<locals>._hx_local_2.<locals>._hx_local_1.<locals>._hx_local_0x  s   ø€ Ø"&�D”KØŸ;™;Ð&r   )rï   )rn   r  s    €r   r   z@DiffRender.examineCell.<locals>._hx_local_2.<locals>._hx_local_1w  s   ø€ ô'ñ *›m�”Ø—{‘{Ð"r   )rî   )r   r  s    €r   r³   z+DiffRender.examineCell.<locals>._hx_local_2v  s   ø€ ô#ñ &›-ˆDŒKØ—;‘;Ðr   rÆ  ru  r{   rS   rÐ  Úmover0   ú+++c                  ó*   •— d‰ _         ‰ j                   S )Nrž   ©rè   rm  s   €r   rµ   z+DiffRender.examineCell.<locals>._hx_local_3“  s   ø€ Ø %�”Ø—}‘}Ð$r   ú---c                  ó*   •— d‰ _         ‰ j                   S )Nr  rq  rm  s   €r   r	  z+DiffRender.examineCell.<locals>._hx_local_4š  s   ø€ Ø$,�D”MØŸ=™=Ð(r   Tú!r]  r  rN  ú...Úgaprž   r  ú->ÚmodifyÚtheirsrß   ÚbeforeÚoursÚafterrÒ  i’!  c                  ó*   •— ‰ ‰_         ‰j                   S r   rq  )Úcatr  s   €€r   r
  z+DiffRender.examineCell.<locals>._hx_local_5ã  s   ø€ Ø,/˜DœMØ#'§=¡=Ð0r   c                  ó*   •— d‰ _         ‰ j                   S )Nr0   rq  rm  s   €r   r  z+DiffRender.examineCell.<locals>._hx_local_6í  s   ø€ Ø '�”Ø—}‘}Ð$r   )!ÚisHashrè   ré   rê   rë   rí   rì   rS   ræ   rç   rª   rv  r4  rw  r×  rÓ  ra   Ú
hashExistsÚhashGetr�   r¿   Ú_setrã  rE  r>   rÙ  rÚ  rÊ  rË  rï   rÀ   rð   rî   )r+  r  ra  rå   ÚvcolÚvrowÚvcornerr  rG  rx  r³   rË  Úremoved_columnrÜ  rµ   r	  ÚtokensÚfullÚpartrO  r  Údivr„   Úpretty_tokensÚrefrÍ  r
  Úoffset1r  r~  s          `                     @r   rD  zDiffRender.examineCellk  s,  ù€ àˆNØˆFØ—‘˜SÓ!ˆØˆŒØ!#ˆÔØˆŒØ "ˆÔØˆŒØˆŒô	ñ  “MˆŒ	ØˆŒ
Ø ŸJ™JˆÔØˆLØˆDØˆLØˆDÜ�$‹i˜1Šn¨a´3°t³9ªn¡bÀDÈÁGÐQTÒ$TÐhiÔmpÐquÓmvÒhvÑ`bð  Cð  DEñ  Fð  LOò  _OÜ×&Ñ& t¨C°Ó2ˆCØ�q’Ü$ŸO™O¨D°°C¸!±GÓ=�”	Ü—‘ t¨S°1©W´c¸$³iÓ@�Ø &�”ØˆØ�CŠKØ"ˆDŒMØ�bŠj ¨!¢°Q¸!²VØ#ˆDŒMØˆ
Ø$.Ð$6ˆd�i‰i˜Ô¼h×>RÑ>RÐSWÐX]Ð^hÓ>iÐopÒpô%ñ &1£]ˆDÕ"àˆJØ(2Ð(:�$—)‘)˜EÔ"Ä(×BVÑBVÐW[Ð\aÐblÓBmÐstÒtô)ñ *5«�Ô&Ø!%�Ø�CŠKØ"ˆDŽMØ�dŠlØ$ˆDŽMØ�eŠmØ!ˆDŽMØ�eŠmÚ"Ø %�–Ø�eŠmØ$ˆDŽMàˆJØ'1Ð'9�$—)‘)˜D”/Ä×AUÑAUÐVZÐ[_Ð`jÓAkÐqrÓrÚ&Ø!ŸZ™Z¨›_�FØ�DØ)*¬S°«[ª˜F 1šI¸d�DØ˜Ø#˜Ø"Ÿm™m¨D¯J©JÓ7�GØ˜Ø"$˜Ø�CÙ"Ø%)˜
Ø9CÐ9K §¡¨dÔ!3ÔS[×SgÑSgÐhoÐptÐuó  TAð  GHñ   H™à"˜ÚØ&˜Ø"˜Ø  DšLÙ%Ø26·/±/À#ÀhÓ2O ¥à-1 
ØMWÐM_°W·\±\À$Ô5GÔgo×g{Ñg{ð  }Dð  EIð  JTó  hUð  [\ñ  4\ ¤Ø#ŸšØ&* Ø&0 Ø'+˜œØ),˜œØ03˜Ô-Ù!Ø#ŸšØ*.¯,©,°s¸8Ó*DÀdÇlÁlÐSVÐW]ÓF^Ð`d×`lÑ`lÐmpÐqyÓ`zÐ){¡à*.¯,©,°s¸8Ó*DÀdÇlÁlÐSVÐW^ÓF_Ð)`¡à04·±¸d×>OÑ>OÓ0P˜DÔ-Ø $× 1Ñ 1Ð 9Ø46 Ô 1Ø $× 1Ñ 1°SÒ 8Ø*,¨b¨¡à(,×(9Ñ(9 Ø;>À"º9¬$¨u¬+ÈEÏKÉKÐX[ÓL\ Ø(.˜Ü ›K¨1Ò,Ü5×:Ñ:¸=È!ÌZ×MbÑMbÐqrÔuxÐyó  vAò  rAÐdjÐklÒdmð  GKð  [\ô  _bð  ció  _jò  [jð  NTð  UVò  NWð  ptó  Nvô  wÜ5×:Ñ:¸=È!ÌZ×MbÑMbÐqrÔuxÐyó  vAò  rAÐdjÐklÒdmð  GKð  [\ô  _bð  ció  _jò  [jð  NTð  UVò  NWð  ptó  Nvô  wÜ ›K¨1Ò,Ø78¼3¸}Ó;MÒ7M =°Ò#3ÐSW˜CÜ5×:Ñ:¸=È!ÌZ×MbÑMbÐcfÐuvÔy|ð  ~Dó  zEò  vEÐhnÐopÒhqð  KOó  NQô  RÜ5×:Ñ:¸=È!ÌZ×MbÑMbÐqrÔuxÐyó  vAò  rAÐdjÐklÒdmð  GKð  MPó  NQô  RØ02·±¼¼CÀÀ»Ó0H˜Ô-Ø,0×,AÑ,A×,FÑ,FÐo|ÖG}ÐikÌ×H]ÑH]Ð^`ÐacÕHdÒG}Ó,~˜Ô)õ1ñ 2=³˜Ô.Ø)-¯ª¡1¸q˜Ø:AÀQº,È7ÔUXÐY_ÓU`ÒK` v¨g¢Ðfj˜œÜ&?×&DÑ&DÀVÈgÐXYÉkÓ&[˜œØŸ?š?Ø89¼CÀ»Kº¨6°!ª9ÈT˜DœKØ�!ŠV˜6 Aš:ô%ñ &1£]ˆDÕ"ð	 &ˆVùò H~s   Ö%Y1c           	      ó8  — | |k(  r| S | �|€| S t         j                  | dd«      }t         j                  |dd«      }||k7  r| S t        d«      }d}d}|t        | «      k  rº|dk  s|t        | «      k\  rdn| |   }d}|t        |«      k  r|dk  s|t        |«      k\  rdn||   }||k(  r|€dn||€dn|z   }|dz   }|dz   }nJ|dk(  r|dz   }n?|€dn|t        j                  dj                  t        t        dg«      «      «      z   }|dz   }|t        | «      k  rŒº|S )Nr1  r�   r   r�   r{   i#$  )	r^  r6  r9   rª   r“   r”   r>   rÙ  rÚ  )	ÚslÚsrÚslcÚsrcÚsloÚilÚirÚclrU  s	            r   rE  zDiffRender.markSpacesò  sE  € à�"ŠHØˆIØˆZ˜b˜jØˆIÜ×!Ñ! " S¨Ó,ˆÜ×!Ñ! " S¨Ó,ˆØ�3ŠJØˆIÜ�"‹gˆØˆØˆØ”C˜“GŠ|Ø š6¨¬c°"«gª‘"¸rÀ"¹vˆBØˆBØ”S˜“W’Ø! Ašv¨B´#°b³'ªM‘bÀ2ÀbÁ6�Ø�b’Ø"% +™°3ÀRÀZ¹6ÐUWÑX�Ø˜1‘f�Ø˜1‘f‘Ø˜’)Ø˜1‘f‘à"% +™°3¼+×:RÑ:RÐSU×SZÑSZÔ[^Ô_bÐdhÐciÓ[jÓSkÓ:lÑl�Ø˜1‘f�ð ”C˜“G‹|ð ˆ
r   c                 óD  — t        «       }|j                  | j                  dd«      «      }|dk(  rdnd}t        j	                  |||| j                  ||«      |j                  | j                  ||«      «      |j                  | j                  ||«      «      |||«	       |S )Nr   r\  r{   )rä   ra   r  rã  rD  )r-  ra  r+  r  r  rb  rc  s          r   rï  zDiffRender.renderCell  s¡   € ä‹zˆØ—‘˜sŸ{™{¨1¨QÓ/Ó0ˆØ ’o‰q¨QˆÜ×Ñ˜q  4¨¯©°A°aÓ(8¸¿¹ÀsÇ{Á{ÐSTÐUXÓGYÓ9ZÐ[_×[hÑ[hÐil×itÑitÐuxÐyzÓi{Ó[|ð  ~Dð  EIð  JMô  	NØˆr   r   )r(   r)   r*   r?   r@   rA   rB   râ  r   rä  rå  r±  r>  r?  r@  rA  rB  rC  rÄ  ra   rì  r£  rê  rè  rã  rD  rE  rï  r+   r   r   rã  rã  Ë  s°   „ Ø!€NØk€IÚl€Jò T€KÚ=€Kòò"òòòòòò	#òò"òGòò,ò\ò*bò3ð òD3ó ðD3ðL ñó ðð8 ñó ñr   rã  c                   ó"   — e Zd Zd ZdZg d¢Zd„ Zy)ÚDiffSummary)Úrow_deletesÚrow_insertsÚrow_updatesÚrow_reordersÚcol_deletesÚcol_insertsÚcol_updatesÚcol_renamesÚcol_reordersÚrow_count_initial_with_headerÚrow_count_final_with_headerÚrow_count_initialÚrow_count_finalÚcol_count_initialÚcol_count_finalr  c                 óä   — d | _         d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _	        d | _
        d | _        d | _        d | _        d | _        d | _        y r   )r  r©  r¨  r§  r¦  r¥  r¤  r£  r¢  r¡  r   rŸ  rž  r�  rœ  r›  r   s    r   r   zDiffSummary.__init__  s�   € ØˆŒØ#ˆÔØ!%ˆÔØ#ˆÔØ!%ˆÔØ+/ˆÔ(Ø-1ˆÔ*Ø ˆÔØˆÔØˆÔØˆÔØˆÔØ ˆÔØˆÔØˆÔØˆÕr   Nrý   r+   r   r   rš  rš    s   „ Ø"€Nð w€Iò x€Jó r   rš  c                   óv   — e Zd Zd ZdZg d¢Zg d¢ZdgZegZ	d„ Z
d„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zed„ «       Zy)ÚFlatCellBuilder)ra  rê   Úconflict_separatorr–  rÙ   ÚquoteForDiffc                 ó<   — d | _         d | _        d | _        || _        y r   )r­  rê   ra  r–  ©r   r–  s     r   r   zFlatCellBuilder.__init__<  s   € Ø"&ˆÔØˆŒØˆŒ	Øˆ�
r   c                  ó   — yr™   r+   r   s    r   rÚ   zFlatCellBuilder.needSeparatorB  rE  r   c                 ó   — || _         y r   )rê   ©r   rê   s     r   rÛ   zFlatCellBuilder.setSeparatorE  s	   € Ø"ˆ�r   c                 ó   — || _         y r   )r­  r³  s     r   rÜ   z$FlatCellBuilder.setConflictSeparatorH  s
   € Ø"+ˆÕr   c                 ó   — || _         y r   ©ra  ©r   ra  s     r   rÝ   zFlatCellBuilder.setViewK  ó	   € Øˆ�	r   c           	      óB  — | j                   j                  t        j                  t        j                  | j                   |«      «      t        j                  | j                  «      z   t        j                  t        j                  | j                   |«      «      z   «      S r   )ra  ÚtoDatumr“   r”   r¬  r®  rê   )r   rÑ  r]  s      r   rÞ   zFlatCellBuilder.updateN  sÊ   € Ø�y‰y× Ñ ¤;×#;Ñ#;¼O×<XÑ<XÐY]×YbÑYbÐchÓ<iÓ#jÔmx÷  nFñ  nFð  GK÷  GUñ  GUó  nVñ  $Vô  Ze÷  Zrñ  Zrô  sB÷  sOñ  sOð  PT÷  PYñ  PYð  Z`ó  saó  Zbñ  #bó  dð  	dr   c                 óš  — t         j                  | j                  j                  |«      «      t         j                  | j                  «      z   t         j                  | j                  j                  |«      «      z   t         j                  | j                  «      z   t         j                  | j                  j                  |«      «      z   S r   )r“   r”   ra  ra   r­  )r   rM  rÑ  r]  s       r   rß   zFlatCellBuilder.conflictQ  s  € Ü×+Ñ+¨D¯I©I×,>Ñ,>¸vÓ,FÓGÌ+×JbÑJbÐcg×czÑczÓJ{Ñ{ô  @K÷  @Xñ  @Xð  Y]÷  Ybñ  Yb÷  Ykñ  Ykð  lqó  Yró  @sñ  sô  wB÷  wOñ  wOð  PT÷  Pgñ  Pgó  whñ  hô  lw÷  lDñ  lDð  EI÷  ENñ  EN÷  EWñ  EWð  X^ó  E_ó  l`ñ  `ð  	ar   c                 ó8   — | j                   j                  |«      S r   ©ra  rº  ©r   Úlabels     r   rà   zFlatCellBuilder.markerT  ó   € Ø�y‰y× Ñ  Ó'Ð'r   c                 óÖ   — | j                   j                  r+|s)| j                  j                  |j	                  «       «      S | j                  j                  |j                  «       «      S r   )r–  rš  ra  rº  ÚtoBase26Stringra   )r   rƒ   Úrow_likes      r   rá   zFlatCellBuilder.linksW  sJ   € Ø�J‰J×/Ò/¹Ø—9‘9×$Ñ$ T×%8Ñ%8Ó%:Ó;Ð;Ø�y‰y× Ñ  §¡£Ó1Ð1r   c                 ó  — d}| j                  |d «      r|S | j                  |«      }d}d}t        |«      }||k  r,|}|dz   }t        j	                  ||«      dk7  rn|dz   }||k  rŒ,t        j                  ||d «      |k(  r	d|€dn|z   }|S )Nrý  r   r{   r  Ú_r�   )rn  ra   rª   rv  r  rw  )r;   rþ  ÚnilrO  ÚscorerÈ   rÉ   rÀ  s           r   r®  zFlatCellBuilder.quoteForDiff\  s¥   € àˆØ�8‰8�A�dÔØˆJØ—*‘*˜Q“-ˆØˆØˆÜ�'‹lˆØ�CŠxØˆAØ�q‘&ˆBÜ×#Ñ# G¨EÓ2°bÒ8ØØ˜Q‘YˆEð �C‹xô �O‰O˜G E¨$Ó/°3Ò6Ø¨¨™f¸WÑEˆGØˆr   N)r(   r)   r*   r?   r@   rA   rB   râ  rØ   rK  r   rÚ   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   rã  r®  r+   r   r   r¬  r¬  4  sh   „ Ø&€NØD€IÚE€JÚ€KØ!Ð"€KØ!�]€Nòòò#ò,òòdòaò(ò2ð
 ñó ñr   r¬  c                   ó   — e Zd Zd ZdZddgZy)ÚRowr+   ÚgetRowStringÚ
isPreambleNrâ   r+   r   r   rÉ  rÉ  r  s   „ Ø€NØ€IØ! <Ð0�Kr   rÉ  c                   óî   — e Zd Zd ZdZg d¢Zg d¢ZegZd$d„Z	d„ Z
d„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd$d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d „ Z%d!„ Z&d"„ Z'd#„ Z(y)%rf  ))Úsourcerµ  ra  Ú
sourceViewrÇ  rN  Ú	headerPreÚ
headerPostÚheaderRenameÚ
headerMoveÚmodifierÚ
currentRowÚ
payloadColÚ
payloadTopÚmodsÚcmodsÚrowInfoÚcellInfoÚrcOffsetrÚ  ÚsourceInPatchColÚpatchInSourceColÚdestInPatchColÚpatchInDestColÚpatchInSourceRowÚlastSourceRowÚactionsÚrowPermutationÚrowPermutationRevÚcolPermutationÚcolPermutationRevÚhaveDroppedColumnsÚ	headerRowÚpreambleRowr–  Úmeta_changeÚprocess_metaÚ	prev_metaÚ	next_metaÚfinished_columnsrS   )ÚresetÚprocessMetarõ  ÚneedSourceColumnsÚneedDestColumnsÚneedSourceIndexÚsetMetaPropÚapplyMetaRowÚapplyRowÚgetDatumÚ	getStringÚgetStringNullÚ	applyMetaÚapplyHeaderÚlookUpÚapplyActionExternalÚapplyActionÚcheckActÚgetPreStringrÊ  rË  ÚsortModsÚprocessModsÚuseMetaForColumnChangesÚuseMetaForRowChangesÚcomputeOrderingÚpermuteRowsÚfillInNewColumnsÚ
finishRowsÚpermuteColumnsÚfinishColumnsNc                 ó¸  — d | _         d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _	        d | _
        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _         d | _!        d | _"        || _#        || _$        || _%        |€tM        «       | _%        |jO                  «       | _(        |jO                  «       | _)        |jU                  «       | _+        y r   ),rî  rí  rì  rë  rê  ré  rè  rç  ræ  rå  rä  rã  râ  rá  rà  rß  rÞ  rÝ  rÜ  rÚ  rÛ  rÚ  rÙ  rØ  r×  rÖ  rÕ  rÔ  rÓ  rÒ  rÑ  rÐ  rÏ  rN  rÇ  rÍ  rµ  r–  rˆ  r  ra  rÎ  r  rS   )r   rÍ  rµ  r–  s       r   r   zHighlightPatch.__init__€  sX  € Ø $ˆÔØˆŒØˆŒØ ˆÔØˆÔØˆÔØˆŒØ"&ˆÔØ!%ˆÔØ"ˆÔØ!%ˆÔØ"ˆÔØˆŒØ!ˆÔØ $ˆÔØ"ˆÔØ"ˆÔØ $ˆÔØ $ˆÔØˆŒØˆŒØˆŒØˆŒØˆŒ
ØˆŒ	ØˆŒØˆŒØˆŒØˆŒØˆŒØ ˆÔØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒ
ØˆŒ
ØˆMÜ%›ˆDŒJØ×%Ñ%Ó'ˆŒ	Ø ×,Ñ,Ó.ˆŒØ—N‘NÓ$ˆ�	r   c                 ó~  ‡ — t        «       ‰ _        t        «       ‰ _        t        «       ‰ _        t        «       ‰ _        d ‰ _        t        «       ‰ _        t        «       ‰ _	        t        «       ‰ _
        t        «       ‰ _        d‰ _        d‰ _        t        «       ‰ _        t        «       ‰ _        ˆ fd„} |«       ‰ _        t        «       ‰ _        d ‰ _        d‰ _        t        «       ‰ _        d ‰ _        d ‰ _        d ‰ _        d ‰ _        d‰ _        d‰ _        d‰ _        d‰ _        d‰ _        d ‰ _         d ‰ _!        d‰ _"        y )Nr   ro   c                  ó>   •— ˆfd„}  | «       ‰_         ‰j                   S )Nc                  ó*   •— d ‰ _         ‰ j                   S r   )rß  r   s   €r   rn   z>HighlightPatch.reset.<locals>._hx_local_1.<locals>._hx_local_0¼  s   ø€ Ø&*�Ô#Ø×*Ñ*Ð*r   )rÝ  ©rn   r   s    €r   r   z)HighlightPatch.reset.<locals>._hx_local_1»  s    ø€ ô+ñ %0£MˆDÔ!Ø×(Ñ(Ð(r   F)#rp   rN  r´  rÏ  rÐ  rÑ  rÒ  rÓ  r�   r×  rØ  rñ  rÇ  rÛ  rÔ  rä   rÙ  rÚ  rÜ  rà  rÚ  rá  râ  rã  rä  rå  ræ  rç  rè  ré  rê  rë  rì  rí  rî  )r   r   s   ` r   rï  zHighlightPatch.reset­  s	  ø€ Ü$Ó&ˆŒÜ*Ó,ˆŒÜ+Ó-ˆŒÜ-Ó/ˆÔØˆŒÜ&Ó(ˆŒÜ“FˆŒ	Ü“VˆŒ
Ü“5ˆŒØˆŒØˆŒÜ“zˆŒÜ ›
ˆŒô	)ñ !,£ˆÔÜ .Ó 0ˆÔØˆŒØˆÔÜ“vˆŒØ"ˆÔØ!%ˆÔØ"ˆÔØ!%ˆÔØ"'ˆÔØˆŒØˆÔØ ˆÔØ!ˆÔØˆŒØˆŒØ %ˆÕr   c                 ó   — d| _         y r™   )rë  r   s    r   rð  zHighlightPatch.processMetaÓ  s
   € Ø ˆÕr   c                 ó¢  ‡ — ‰ j                  «        ‰ j                  j                  «       dk  ry‰ j                  j                  «       dk  ryd‰ j                  z   ‰ _        ‰ j                  j                  «       ‰ _        ‰ j                  j                  «       j                  ‰ j                  j                  dd«      «      }|dk(  rdnd‰ _        d}‰ j                  j                  «       }||k  rm|}|dz   }‰ j                  j                  ‰ j                  j                  ‰ j                  |«      «      }‰ j                  }|j                  |�|nd«       ||k  rŒmˆ fd„} |«       ‰ _        d}‰ j                  j                  «       }||k  r|}|dz   }‰ j                  |«       ||k  rŒ‰ j                  «        ‰ j!                  «        y)NrÒ  Tr{   r   r\  r�   c                  ó>   •— ‰ j                   ‰ _        ‰ j                  S r   )rÛ  rè  r   s   €r   rn   z)HighlightPatch.apply.<locals>._hx_local_0è  s   ø€ Ø!Ÿ]™]ˆDŒNØ—>‘>Ð!r   )rï  rµ  r
  r  rÛ  rÕ  rÖ  r  ra   r  ra  râ  r‚   ré  rö  r
  r  )r   rb  rÈ   rÉ   r¡   rO  r„   rn   s   `       r   rõ  zHighlightPatch.applyÖ  s„  ø€ Ø�
‰
ŒØ�J‰J× Ñ Ó" QÒ&ØØ�J‰J×!Ñ!Ó# aÒ'ØØ˜tŸ}™}Ñ,ˆŒØŸ*™*×.Ñ.Ó0ˆŒØ—‘×'Ñ'Ó)×2Ñ2°4·:±:×3EÑ3EÀaÈÓ3JÓKˆØ &¨%¢™°qˆŒØˆØ�j‰j×#Ñ#Ó%ˆØ�CŠxØˆAØ�q‘&ˆBØ—i‘i×(Ñ(¨¯©×);Ñ);¸D¿M¹MÈ!Ó)LÓMˆGØ—L‘LˆEØ�L‰L wÐ':™'À"ÔFð �C‹xô	"ñ '›=ˆÔØˆØ�j‰j×#Ñ#Ó%ˆØ�CŠxØˆAØ�q‘&ˆBØ�M‰M˜!Ôð �C‹xð 	×ÑÔØ�‰ÔØr   c                 ó  — | j                   �y t        «       | _         t        «       | _        | j                  j	                  «       }d}| j                  j                  «       }||k  rš|}|dz   }|j                  | j                  j                  |d«      «      }| j                  j                  j                  |d «      }|€Œ`| j                   j                  ||«       | j                  j                  ||«       ||k  rŒ™y y rW  )rÜ  rp   rÝ  rÍ  r  r
  ra   r  rÏ  rˆ   r‰   r|   )r   r  rÈ   rÉ   rÀ  r!   r@  s          r   rñ  z HighlightPatch.needSourceColumnsö  sÝ   € Ø×!Ñ!Ð-ØÜ .Ó 0ˆÔÜ .Ó 0ˆÔØ�[‰[×$Ñ$Ó&ˆØˆØ�k‰k×#Ñ#Ó%ˆØ�CŠxØˆAØ�q‘&ˆBØ—;‘;˜tŸ{™{×2Ñ2°1°QÓ7Ó8ˆDØ—‘×!Ñ!×%Ñ% d¨4Ó0ˆBØ�
ØØ×!Ñ!×%Ñ% a¨Ô+Ø×!Ñ!×%Ñ% b¨Ô+ð �C�xr   c                 óÎ  — | j                   �y t        «       | _         t        «       | _        d}| j                  }|t	        |«      k  rž|dk\  r|t	        |«      k  r||   nd }|dz   }|j
                  dk7  r`| j                   j                  |j
                  |j                  «       | j                  j                  |j                  |j
                  «       |t	        |«      k  rŒ�y y r®   )rß  rp   rÞ  rØ  rª   ÚpatchRowr|   ÚdestRow)r   rÈ   rÉ   Úcmods       r   rò  zHighlightPatch.needDestColumns  s¹   € Ø×ÑÐ+ØÜ,Ó.ˆÔÜ,Ó.ˆÔØˆØ�j‰jˆØ”C˜“HŠ}Ø! Qšw¨2´°C³ª=�C˜’G¸dˆDØ�q‘&ˆBØ—‘ Ò#Ø×#Ñ#×'Ñ'¨¯©°d·l±lÔCØ×#Ñ#×'Ñ'¨¯©°T·]±]ÔCð ”C˜“H�}r   c                 ó6  — | j                   �y t        «       }| j                  |_        | j                  |_        t        |«      }|j                  «        |j                  «        |j                  «        |j                  «       | _         | j                  «        y r   )rÚ  r¹  rÍ  r}   r~   rÙ  ræ  rÛ  rÜ  rç  rñ  )r   ÚstaterT   s      r   ró  zHighlightPatch.needSourceIndex  so   € Ø�L‰LÐ$ØÜ$Ó&ˆØ—+‘+ˆŒØ—+‘+ˆŒÜ˜EÓ"ˆØ×ÑÔØ�‰Œ
Ø�
‰
ŒØ—‘Ó(ˆŒØ×ÑÕ r   c                 ó  — |€y |€y ||j                   vrt        «       }||j                   |<   t        «       }||_        ||_        |dk(  rd }||_        |j                   j                  |d «      }|j                  |«       y rY  )rˆ   r�   ÚPropertyChangerú   r!   rE  r‰   r‚   )r   ÚtargetÚcolumn_nameÚ	prop_nameræ   Úvalue1Úchanger„   s           r   rô  zHighlightPatch.setMetaProp#  s~   € ØÐØØÐØØ §¡Ñ(Ü“VˆFØ$*ˆF�H‰H�[Ñ!ÜÓ!ˆØ#ˆŒØˆŒØ�RŠKØˆEØˆŒ
Ø—‘—‘˜[¨Ó.ˆØ�‰�VÕr   c           
      óZ  — | j                  «        |j                  d«      }d}t        |«      dkD  r"t        j	                  |t        |«      dz
  «      }t        |«      dkD  r"t        j	                  |t        |«      dz
  «      }| j
                  €t        «       | _        | j                  €t        «       | _        | j                  }| j                  }||k  �rÔ|}|dz   }| j                  |«      }|}|| j                  j                  v r&| j                  j                  j                  |d «      nd}	d }
d }|	dk7  r| j                  j                  |	d«      }
|| j                   j                  v r&| j                   j                  j                  |d «      }t"        j%                  dd| j&                  |d|d| j(                  «       | j(                  j*                  re| j-                  | j
                  |
|| j(                  j.                  «       | j-                  | j                  ||| j(                  j0                  «       nd| j-                  | j
                  |
|| j(                  j2                  «       | j-                  | j                  ||| j(                  j2                  «       ||k  r�ŒÓy y )Nru  r�   r{   rÒ  r   ro   )rñ  rÓ  rª   r¿   rÀ   rì  r´  rí  rÕ  rÖ  r÷  rÝ  rˆ   r‰   rÍ  r  rN  rã  rD  ra  rÚ  rì   rô  rï   rð   ræ   )r   ÚcodeÚcodesr  rÈ   rÉ   rÀ  r   Ú	idx_patchÚidx_srcÚ	prev_namer!   s               r   rõ  zHighlightPatch.applyMetaRow4  s  € Ø×ÑÔ Ø—
‘
˜3“ˆØˆ	Ü�‹J˜ŠNÜ1×6Ñ6°u¼sÀ5»zÈA¹~ÓOˆIÜ�‹J˜ŠNÜ,×1Ñ1°%¼#¸e»*Àq¹.ÓJˆDØ�N‰NÐ"Ü.Ó0ˆDŒNØ�N‰NÐ"Ü.Ó0ˆDŒNØ�_‰_ˆØ�o‰oˆØ�C‹xØˆAØ�q‘&ˆBØ—-‘- Ó"ˆCØˆIØHQÐUY×UjÑUj×UlÑUlÑHl�t×,Ñ,×.Ñ.×2Ñ2°9¸TÔBÐtvˆGØˆIØˆDØ˜2’Ø ŸK™K×/Ñ/°¸Ó:�	Ø˜TŸ[™[Ÿ]™]Ñ*Ø—{‘{—}‘}×(Ñ(¨°4Ó8�Ü×"Ñ" 1 Q t§y¡y°°R¸¸RÀÇÁÔNØ�}‰}×$Ò$Ø× Ñ  §¡°	¸)ÀDÇMÁM×DXÑDXÔYØ× Ñ  §¡°°Y¸t¿}¹}×?SÑ?SÕTà× Ñ  §¡°	¸)ÀDÇMÁM×DWÑDWÔXØ× Ñ  §¡°°Y¸t¿}¹}×?RÑ?RÔSð% �CŽxr   c                 ól  ‡ ‡— ‰‰ _         ‰dk\  r'‰t        ‰ j                  «      k  r‰ j                  ‰   nd }d}‰dk(  r‰ j                  dkD  rd}�n1|dk(  r6ˆˆ fd„} |«       ‰ _        ‰ j                  «        ‰ j                  d«       d}nö|dk(  r%ˆˆ fd„} |«       ‰ _        ‰ j                  «        d}nÌd }|€|j                  d«      nt        j                  |d|«      dk(  r�‰ j                  j                  d	|€d
n|z   dz   «       ‰‰ _        ‰ j                  |«       ‰ j                  rB|j                  d«      }t        |«      dkD  r,t         j#                  |t        |«      dz
  «      }n	d‰ _        d}d‰ _        d}‰ j                  ry |s£‰ j'                  «        |dk(  r‰ j                  |«       y |dk(  r‰ j                  |«       y |dk(  s|dk(  r‰ j                  |«       y d }|€|j                  d«      nt        j                  |d|«      dk\  r‰ j                  d«       y d‰ _        y y )Nr   FTr  c                  ó*   •— ‰ ‰_         ‰j                   S r   ©rè  ©r¡   r   s   €€r   rn   z,HighlightPatch.applyRow.<locals>._hx_local_0]  ó   ø€ Ø!"�”Ø—~‘~Ð%r   rt  c                  ó*   •— ‰ ‰_         ‰j                   S r   r)  r*  s   €€r   r   z,HighlightPatch.applyRow.<locals>._hx_local_1e  r+  r   ru  z0cannot usefully apply diffs with metadata yet: 'r�   ú'r{   ro  rr  ú+rÐ  rw  ro   )rÔ  rª   râ  rÛ  ré  rû  rþ  rú  r×  rv  r4  r–  rª  rõ  rë  rÓ  r¿   rÀ   rê  r
  rá  )r   r¡   r"  Údonern   r   rÜ  r#  s   ``      r   rö  zHighlightPatch.applyRowV  s   ù€ ØˆŒØ#$¨¢6¨a´#°d·l±lÓ2CÒ.C�—‘˜Q’ÈˆØˆØ�!ŠV˜4Ÿ=™=¨1Ò,ØŠDØ�dŠlõ&ñ  +›}ˆDÔØ×ÑÔØ×Ñ˜TÔ"Ø‰DØ�cŠkõ&ñ  +›}ˆDÔØ�N‰NÔØ‰DàˆJØ&0Ð&8�$—)‘)˜C”.Ä×@TÑ@TÐUYÐZ]Ð^hÓ@iÐopÒpØ—
‘
×%Ñ%Ð(ZÐhlÐhtÑ^dÐz~Ñ(ð  DGñ  (Gô  IØ#$�Ô Ø×!Ñ! $Ô'Ø×$Ò$Ø ŸJ™J s›O�EÜ˜E›
 QšÜ8×=Ñ=¸eÄcÈ%ÃjÐSTÁnÓV™à'+�DÔ$Ø�DØ#'�Ô Ø�Ø×ÒØÙØ×ÑÔ Ø˜’Ø× Ñ  Õ&Ø˜%’-Ø× Ñ  Õ&Ø˜3’; T¨S¢[Ø× Ñ  Õ&à!�
Ø+5Ð+=�d—i‘i ”oÄX×EYÑEYÐZ^Ð_cÐdnÓEoÐuvÒvØ×$Ñ$ TÕ*à)+�DÕ&ð r   c                 óN   — | j                   j                  || j                  «      S r   )rµ  r  rÔ  ©r   r.  s     r   r÷  zHighlightPatch.getDatum‹  s   € Ø�z‰z×!Ñ! ! D§O¡OÓ4Ð4r   c                 óV   — | j                   j                  | j                  |«      «      S r   )ra  ra   r÷  r1  s     r   rø  zHighlightPatch.getStringŽ  s    € Ø�y‰y×!Ñ! $§-¡-°Ó"2Ó3Ð3r   c                 ó`   — | j                  |«      }|€y | j                  j                  |«      S r   )r÷  ra  ra   )r   r.  rþ  s      r   rù  zHighlightPatch.getStringNull‘  s-   € Ø�M‰M˜!ÓˆØˆIØØ�y‰y×!Ñ! !Ó$Ð$r   c                 óÀ   — | j                   }| j                  }||k  rA|}|dz   }| j                  |«      }|dk(  rŒ#| j                  j	                  ||«       ||k  rŒ@y y )Nr{   r�   )rÕ  rÖ  rø  rÓ  r|   )r   rÈ   rÉ   rÀ  r!   s        r   rú  zHighlightPatch.applyMeta—  s^   € Ø�_‰_ˆØ�o‰oˆØ�CŠxØˆAØ�q‘&ˆBØ—>‘> !Ó$ˆDØ˜’
ØØ�M‰M×Ñ˜a Ô%ð �C�xr   c                 óL  — | j                   }| j                  }||k  �rÆ|}|dz   }| j                  |«      }|dk(  r$| j                  j	                  |d«       d| _        ŒG| j                  j                  j                  |d «      }d}|�;t        j                  |d«      dk(  r"d}t        j                  |dt        |«      «      }| j                  j	                  ||«       |�‰t        j                  |d«      dk(  rpt        j                  |dt        |«      dz
  «      }|| j                  j                  |<   || j                  j                  |<   || j                  j                  |<   �ŒS|d	k7  r|| j                  j                  |<   |d
k7  r|| j                  j                  |<   |r4| j                   €t#        «       | _        d| j                   j                  |<   ||k  r�ŒÆ| j%                  «       s0| j&                  j)                  «       dk(  r| j+                  d	«       y y y )Nr{   ru  TFr   é:   é(   rÒ  ro  rr  )rÕ  rÖ  rø  rÓ  r|   rç  rˆ   r‰   rv  r  rw  rª   rN  rÏ  rÐ  rÑ  rÒ  r´  r  rÍ  r  rþ  )r   rÈ   rÉ   rÀ  r!   r  rn  r&  s           r   rû  zHighlightPatch.applyHeader¢  sÝ  € Ø�_‰_ˆØ�o‰oˆØ�C‹xØˆAØ�q‘&ˆBØ—>‘> !Ó$ˆDØ˜’Ø—‘×!Ñ! ! EÔ*Ø*.�Ô'ØØ—-‘-—/‘/×%Ñ% a¨Ó-ˆCØˆDØ�Ü×'Ñ'¨¨AÓ.°"Ò4Ø�DÜ"Ÿ/™/¨#¨a´°C³Ó9�CØ�K‰K�O‰O˜A˜dÔ#Ø�Ü×'Ñ'¨¨AÓ.°"Ò4Ü (§¡°°A´s¸3³xÀ!±|Ó E�IØ23�D—N‘N×$Ñ$ YÑ/Ø./�D—O‘O×%Ñ% dÑ+Ø59�D×%Ñ%×'Ñ'¨	Ñ2ÙØ�u’Ø)*�—‘× Ñ  Ñ&Ø�u’Ø*+�—‘×!Ñ! $Ñ'ÙØ—O‘OÐ+Ü&7Ó&9�D”OØ*+�—‘×!Ñ! $Ñ'ð; �CŒxð< ×)Ñ)Ô+Ø—‘×&Ñ&Ó(¨AÒ-Ø× Ñ  Õ'ð .ð ,r   c                 ó¢  — |€d}| j                   |z   | j                  j                  v r3| j                  j                  j                  | j                   |z   d «      S d}| }|j                   }||z   |_         |j                    | j                   dk\  �rr| j                   | j                  j                  «       k  �rJd}| j                  }|t        |«      k  �r-|dk\  r|t        |«      k  r||   nd }|dz   }|j                  | «      }|j                  dk(  rŒO|j                  dk(  r+t        j                  |j                  j                  d«      }n³| j                   dkD  r”| j                  j                  j                  | j                   dz
  d «      }	|	�_|j                  j                  }
d}|t        |
«      k  r9|dk\  r|t        |
«      k  r|
|   nd }|dz   }||	dz   k(  r|}n|t        |
«      k  rŒ9|t        |«      k  r�Œ-| j                  j                  | j                   |«       | }|j                   }||z
  |_         |j                    |S ©Nr   ro   r{   )rÔ  rà  rˆ   r‰   rµ  r  rÚ  rª   ÚqueryByContentr	  r¿   rÀ   ræ  r  r|   )r   r  r—   rn   r   rÈ   rÉ   rË  r  Úprevr  r1  r…  r	  r
  s                  r   rü  zHighlightPatch.lookUpÇ  s  € ØˆOØˆGØ�_‰_˜wÑ&¨4×+@Ñ+@×+BÑ+BÑBØ×(Ñ(×*Ñ*×.Ñ.°·±À'Ñ0IÈ4ÓPÐPØˆØˆØ!×,Ñ,ˆØ"-°Ñ"7ˆÔØ×ÒØ�_‰_ Ó!¨¯©¸4¿:¹:×;PÑ;PÓ;RÓ)RØˆBØ—,‘,ˆCØœ˜C›“=Ø"$¨¢'¨b´3°s³8ªm�s˜2’wÀ�Ø˜1‘f�Ø×*Ñ*¨4Ó0�Ø—L‘L AÒ%ØØ—L‘L AÒ%Ü6×;Ñ;¸E¿L¹L×<LÑ<LÈaÓP�FØØ—O‘O aÒ'Ø×0Ñ0×2Ñ2×6Ñ6¸¿¹È!Ñ8KÈTÓR�DØÐ(Ø#Ÿl™l×.Ñ.˜Ø˜Ø"¤S¨£Xš~Ø/2°aªx¸CÄ#ÀcÃ(ºN 3 s¢8ÐPT˜CØ#&¨¡7˜CØ #¨°©Ò 3Ø), Ø %ð  #¤S¨£X›~ð œ˜C›”=ð( 	×Ñ×!Ñ! $§/¡/°&Ô9ØˆØ!×,Ñ,ˆØ"-°Ñ"7ˆÔØ×ÒØˆr   c                 ó¶  — |dk(  ry t        «       }||_        | j                  «        |dk7  rt        «       |_        |dk7  rt        «       |_        d}| j                  }| j                  }||k  �r6|}|dz   }| j                  j                  j                  |d «      }|}|| j                  j                  v r&| j                  j                  j                  |d «      }| j                  j                  j                  |d «      }	|	dk(  rŒŸ|�|dk(  rŒ§| j                  j                  | j                  |«      «      }
d}| j                   j"                  r'| j%                  |
«       | j&                  j"                  }|	dk(  rB|dk7  r=|
�;|
dk7  r6|j
                  €t        «       |_        |
|j
                  j                  |<   d}|r•|j                  }| j                  j                  | j&                  j(                  «      }||j                  |<   |j
                  }| j                  j                  | j&                  j*                  «      }||j                  |<   nG|dk(  r|	dk7  r=|
|j
                  j                  |<   n#|	dk7  r|	dk7  r|
|j                  j                  |<   ||k  r�Œ6|j                  d	k(  r
|sy d
|_        | j,                  j/                  |«       y )Nr  ro  rr  Fr{   ru  r�   Tr.  rw  )Ú	RowChangeÚactionrÿ  r´  ÚcondrE  rÕ  rÖ  rN  rˆ   r‰   rÑ  rÓ  rÇ  rò  rù  rÙ  rì   r   rÚ  rï   rð   rS   Ú	changeRow)r   r"  ÚrcÚhave_columnrÈ   rÉ   rÀ  r&  r!   Úcactr   rì   Úthis1ræ   Úthis2r  s                   r   rý  z"HighlightPatch.applyActionExternalï  sc  € Ø�DŠLØÜ‹[ˆØˆŒ	Ø�‰ŒØ�EŠMÜ'Ó)ˆBŒGØ�EŠMÜ&Ó(ˆBŒFØˆØ�_‰_ˆØ�o‰oˆØ�C‹xØˆAØ�q‘&ˆBØŸ™Ÿ™×)Ñ)¨!¨DÓ1ˆIØˆDØ˜T×.Ñ.×0Ñ0Ñ0Ø×(Ñ(×*Ñ*×.Ñ.¨y¸Ó>�Ø—=‘=—?‘?×&Ñ& q¨Ó.ˆDØ˜’ØØ� D¨B¢JØØ—(‘(×$Ñ$ T×%7Ñ%7¸Ó%:Ó;ˆCØˆGØ�|‰|×#Ò#Ø×!Ñ! #Ô&ØŸ-™-×/Ñ/�Ø˜’ d¨e¢mØ�_¨C°2ªIØŸ™˜Ü!2Ó!4˜œØ%(�B—F‘F—H‘H˜T‘NØ"&�KÙØŸ™�ØŸ™×*Ñ*¨4¯=©=×+?Ñ+?Ó@�Ø %�—‘˜‘ØŸ™�ØŸ™×+Ñ+¨D¯M©M×,@Ñ,@ÓA�Ø &�—‘˜’Ø˜%’-Ø˜E’MØ%(�B—F‘F—H‘H˜T’NØ˜5’=¨°ªØ"%�—‘—	‘	˜$‘ðE �CŒxðF �I‰I˜ÒÙØØˆBŒIØ�	‰	×Ñ˜BÕr   c                 óX  ‡ — ‰ j                  «       r‰ j                  |«       y t        «       }||_        |dk(  |_        |dk(  |_        |dk(  |_        ‰ j                  «        ‰ j                  dk(  r‰ j                  d«      ‰ _        ‰ j                  |_
        t        j                  ‰ j                  ‰ j                  dz   «      }|dk7  r|dk7  r‰ j                  d«      |_        |j                  r­t        j                  ‰ j                  ‰ j                  dz
  «      dk7  rUt        j                  ‰ j                  ‰ j                  dz
  «      dk(  rd|_
        d‰ _        n‰ j                  d«      |_
        |j                  |_        |j                   dk7  rd|_        nˆ fd	„} |«       |_        t        j                  ‰ j                  ‰ j                  dz   «      d
k(  r|j                  ‰ _        ‰ j                  |_        |dk(  rd|_        ‰ j&                  }|j)                  |«       y )Nro  rr  rw  ro   r{   ru  r  r   c                  óF   •— ‰ j                  «       ‰ _        ‰ j                  S r   )rü  rá  r   s   €r   rn   z/HighlightPatch.applyAction.<locals>._hx_local_0@  s   ø€ Ø%)§[¡[£]�Ô"Ø×)Ñ)Ð)r   r�   )r  rý  ÚHighlightPatchUnitr"  rž   ÚremrÞ   ró  rá  rü  ÚsourcePrevRowr¿   rÀ   râ  rÔ  ÚsourceNextRowÚ	sourceRowÚsourceRowOffsetr  r×  r‚   )r   r"  r  ÚnextActrn   r„   s   `     r   rþ  zHighlightPatch.applyAction%  sÆ  ø€ Ø×$Ñ$Ô&Ø×$Ñ$ TÔ*ØÜ Ó"ˆØˆŒØ˜5‘=ˆŒØ˜5‘=ˆŒØ˜d‘lˆŒ
Ø×ÑÔØ×Ñ "Ò$Ø!%§¡¨R£ˆDÔØ ×.Ñ.ˆÔÜ+×0Ñ0°·±ÀÇÁÐRSÑ@SÓUˆØ˜Ò W°Ò%5Ø $§¡¨A£ˆCÔØ�7Š7Ü)×.Ñ.¨t¯|©|¸d¿o¹oÐPQÑ>QÓSÐW\Ò\Ü-×2Ñ2°4·<±<À$Ç/Á/ÐTUÑBUÓWÐ[_Ò_Ø()�CÔ%Ø)*�DÕ&à(,¯©°B«�CÔ%Ø×-Ñ-ˆCŒMØ—‘ Ò#Ø&'�Õ#ô*ñ (›MˆCŒMÜ%×*Ñ*¨4¯<©<¸$¿/¹/ÈAÑ:MÓOÐSUÒUØ!$×!2Ñ!2ˆDÔØ—‘ˆŒØ�DŠLØˆCŒMØ—	‘	ˆØ�‰�SÕr   c           
      óÎ   — | j                  | j                  «      }| j                  j                  |k7  r1t        j                  dd| j                  |d|d| j                  «       y y ©Nr   r�   )rø  rÛ  rÙ  ræ   rã  rD  ra  )r   rµ  s     r   rÿ  zHighlightPatch.checkActL  sO   € Ø�n‰n˜TŸ]™]Ó+ˆØ�L‰L×Ñ #Ò%Ü×"Ñ" 1 Q t§y¡y°°R¸¸B¸t¿|¹|ÕLð &r   c           
      ó6  — | j                  «        | j                  j                  s|S t        j	                  dd| j
                  |d| j                  j                  d| j                  «       | j                  j                  s|S | j                  j                  S rP  )	rÿ  rÙ  rì   rã  rD  ra  ræ   rÚ  rï   r  s     r   r   zHighlightPatch.getPreStringQ  sm   € Ø�‰ŒØ—‘×$Ò$ØˆJÜ×Ñ˜q  4§9¡9¨S°°D·L±L×4FÑ4FÀrÈ$Ï-É-ÔXØ—‘×%Ò%ØˆJØ�}‰}×#Ñ#Ð#r   c                 ó”   — | j                   j                  j                  |d «      }|€y| j                  | j	                  |«      «      S )NÚ	NOT_FOUND)rÜ  rˆ   r‰   r   rø  )r   r.  r@  s      r   rÊ  zHighlightPatch.getRowStringZ  sB   € Ø×"Ñ"×$Ñ$×(Ñ(¨¨4Ó0ˆØˆJØØ× Ñ  §¡°Ó!3Ó4Ð4r   c                 ó4   — | j                   | j                  k  S r   )rÔ  ré  r   s    r   rË  zHighlightPatch.isPreamble`  s   € Ø—‘ 4×#3Ñ#3Ñ3Ð4r   c                 ód  — |j                   dk(  r|j                   dk7  ry|j                   dk(  r|j                   dk7  ry|j                  dk(  r|j                  s|j                  dk7  ry|j                  dk7  r|j                  s|j                  dk(  ry|j                  |j                  z   |j                  |j                  z   kD  ry|j                  |j                  z   |j                  |j                  z   k  ry|j                  |j                  kD  ry|j                  |j                  k  ryy)Nr  r{   ro   r   )r"  rL  rž   rM  r  )r   r}   r~   s      r   r  zHighlightPatch.sortModsc  sí   € Ø�V‰V�tŠ^ 1§6¡6¨T¢>ØØ�V‰V�tŠ^ 1§6¡6¨T¢>ØØ�k‰k˜RÒ¨!¯%ª%¸¿¹ÀrÒ8IØØ�k‰k˜RÒ¨!¯%ª%¸¿¹ÀrÒ8IØØ�[‰[˜1×,Ñ,Ñ,°!·+±+À×@QÑ@QÑ2QÒSØØ�[‰[˜1×,Ñ,Ñ,°!·+±+À×@QÑ@QÑ2QÒSØØ�J‰J˜Ÿ™Ò#ØØ�J‰J˜Ÿ™Ò#ØØr   c                 ó  — |j                  t        j                  | j                  «      ¬«       d}d}d}t	        |«      dkD  r$dt	        |«      k  r|d   nd j
                  dk(  rd}d}|t	        |«      k  �rP|dk\  r|t	        |«      k  r||   nd }|dz   }|dk7  rK|}	|j                  |j                  z   }
|	|
k  r+|	}|	dz   }	|j                  ||z   «       |dz   }|dz   }|	|
k  rŒ+|j                  r|j                  d«       |dz
  }n%|j                  r||_        |dz   }|dz   }n||_        |j                  dk\  r+|j                  |j                  z   }|j                  rU|dz   }nO|j                  r)|j                  dk7  r|j                  |j                  z   }n|j                  s|j                  rd}|t	        |«      k  r�ŒP|dk7  r4|}|}	||	k  r+|}|dz   }|j                  ||z   «       |dz   }|dz   }||	k  rŒ+||z   S )Nr¶   r   ro   r{   )r¼   r½   r¾   r  rª   rJ  rL  rM  r‚   rI  rž   r  rK  )r   Úrmodsr>  r¬  rG  Úlastr  rÈ   r  rÉ   r1  rÀ  s               r   r  zHighlightPatch.processModsv  s  € Ø�
‰
Ô,×7Ñ7¸¿¹ÓFˆ
ÔGØˆØˆØˆÜ�‹J˜ŠNØ¤ U£š^��q’°×DÑDÈÒJØ�ØˆØ”C˜“J‹Ø " a¢¨B´°U³ªO�5˜’9ÀˆCØ�q‘&ˆBØ˜’
Ø�Ø—}‘} s×':Ñ':Ñ:�Ø˜S’yØ�AØ ™7�CØ—K‘K  V¡Ô-Ø$ q™j�FØ  1™H�Dð ˜S“yð �wŠwØ—‘˜B”Ø  1™*‘Ø—’Ø$�”Ø  1™*�Ø  1™*‘à$�”Ø—‘ Ò"ØŸ™¨×(;Ñ(;Ñ;�Ø—7’7Ø  1™H‘DØ—'’' × 1Ñ 1°RÒ 7Ø×)Ñ)¨C×,?Ñ,?Ñ?‘Ø—'’'˜SŸWšWØ�ð9 ”C˜“JŒð: �BŠJØˆBØˆCØ˜’8Ø�Ø˜1‘f�Ø—‘˜Q ™ZÔ)Ø  1™*�Ø˜q™�ð ˜“8ð ˜&Ñ Ð!r   c                 óP   — | j                   €y| j                   j                  «       S r|  )rS   ÚuseForColumnChangesr   s    r   r  z&HighlightPatch.useMetaForColumnChanges§  s"   € Ø�I‰IÐØØ�y‰y×,Ñ,Ó.Ð.r   c                 óP   — | j                   €y| j                   j                  «       S r|  )rS   ÚuseForRowChangesr   s    r   r  z#HighlightPatch.useMetaForRowChanges¬  s"   € Ø�I‰IÐØØ�y‰y×)Ñ)Ó+Ð+r   c                 ó˜  — t        «       }t        «       }t        «       }d}d}	|	t        |«      k  �rX|	dk\  r|	t        |«      k  r||	   nd }
|	dz   }	|
j                  s|
j                  rŒG|
j                  dk  rŒW|
j
                  dk\  rq|
j                  }|j                  |
j
                  |«       |
j
                  }|j                  |
j                  |«       |
j
                  dz   |
j                  k7  r|dz   }|
j                  dk\  rq|
j                  }|j                  |
j                  |«       |
j                  }|j                  |
j                  |«       |
j                  dz   |
j                  k7  r|dz   }|	t        |«      k  r�ŒX|dkD  �r»d }d }g }d}	|}|	|k  rO|	}|	dz   }	|j                  j                  |d «      }|�|j                  ||«       n|j                  |«       |	|k  rŒOt        «       }d}d}	|}|	|k  rÂ|	}|	dz   }	|�+||j                  v r|j                  j                  |d «      }nd }|€%t        |«      dk(  rd n|j                  d«      }|}|}|€d}||j                  v r(t        j                  |dz   |«      }||j                  v rŒ(|}|j                  |«       |j                  |d«       |	|k  rŒÂd}	t        |«      }|	|k  r$|	}|	dz   }	t        j                  ||d«       |	|k  rŒ$d}	t        |«      }|	|k  r=|	}|	dz   }	t        j                  ||dk\  r|t        |«      k  r||   nd |«       |	|k  rŒ<y y y r®   )rp   rª   rž   rI  rL  rJ  r|   rK  rˆ   r‰   r‚   Úpopr“   r  r¿   rƒ  )r   r×  ÚpermutationÚpermutationRevÚdimÚto_unitÚ	from_unitÚmeta_from_unitr,  rÈ   r  r;   Úv1Úv2Úv3ré  ÚlogicalÚstartsrÉ   rÀ  Úur   r¬  s                          r   r  zHighlightPatch.computeOrdering±  s]  € Ü Ó"ˆÜ"Ó$ˆ	Ü'Ó)ˆØˆØˆØ”C˜“I‹~Ø! Qšw¨2´°D³	ª>�4˜’8¸tˆCØ�q‘&ˆBØ—’˜3Ÿ7š7ØØ—‘ Ò!ØØ×!Ñ! QÒ&Ø—M‘M�Ø—‘˜C×-Ñ-¨aÔ0Ø×&Ñ&�Ø—‘˜cŸm™m¨BÔ/Ø×&Ñ&¨Ñ*¨s¯}©}Ò<Ø˜q™&�BØ×!Ñ! QÒ&Ø×&Ñ&�Ø—‘˜CŸM™M¨"Ô-Ø—]‘]�Ø—‘˜c×/Ñ/°Ô3Ø—]‘] QÑ&¨3×+<Ñ+<Ò<Ø˜q™&�Bð) ”C˜“IŒ~ð* �‹FØˆFØˆGØˆFØˆBØˆCØ˜’8Ø�Ø˜1‘f�Ø—K‘K—O‘O A dÓ+�Ø�MØ"×&Ñ& q¨Õ+à—M‘M !Ô$ð ˜“8ô "Ó#ˆDØˆGØˆBØˆCØ˜’8Ø�Ø˜1‘f�ØÐ(¨w¸.×:JÑ:JÑ/JØ+×-Ñ-×1Ñ1°'¸$Ó?‘Fà!�FØ�NÜ#& v£;°!Ò#3™¸6¿:¹:Àa»=�AØ�FØ�GØ�NØ�FØ §¡Ñ'Ü(Ÿ_™_¨v¸©z¸SÓA�Fð  §¡Ò'à �Ø×%Ñ% fÔ-Ø—‘˜ Ô"ð# ˜“8ð$ ˆBÜ�nÓ%ˆCØ˜’8Ø�Ø˜1‘f�Ü)×.Ñ.¨{¸A¸rÔBð ˜“8ð ˆBÜ�kÓ"ˆCØ˜’8Ø�Ø˜1‘f�Ü)×.Ñ.¨{ÐRSÐWXÒRXÐ]^ÔadÐesÓatÒ]t¸^ÈAÒ=NÐz~ð  BCô  Dð ˜•8ðY r   c                 óÔ   — t        «       | _        t        «       | _        | j                  | j                  | j                  | j                  | j
                  j                  «       «       y r   )r�   rã  rä  r  r×  rÍ  r  r   s    r   r  zHighlightPatch.permuteRowsý  sJ   € Ü"›fˆÔÜ!%£ˆÔØ×Ñ˜TŸY™Y t×':Ñ':¸4×;QÑ;QÐRV×R]ÑR]×RhÑRhÓRjÕkr   c                 óD  — d}| j                   }|t        |«      k  �rƒ|dk\  r|t        |«      k  r||   nd }|dz   }|j                  �sF|j                  �r9d}| j                  }|t        |«      k  r­|dk\  r|t        |«      k  r||   nd }|dz   }|j
                  dk7  rp|j                  dk7  ra| j                  j                  |j
                  |j
                  «      }| j                  j                  |j                  |j                  |«       |t        |«      k  rŒ­| j                  j                  j                  |j
                  d «      }| j                  j                  |j                  d| j                  j                  |«      «       |t        |«      k  r�Œ‚y y r®   )rØ  rª   rI  rž   r×  r  r  rµ  r  rÍ  r  rN  rˆ   r‰   ra  rº  )	r   rÈ   rÉ   r  r1  r2  r  rþ  rd  s	            r   r  zHighlightPatch.fillInNewColumns  s@  € ØˆØ�j‰jˆØ”C˜“H‹}Ø! Qšw¨2´°C³ª=�C˜’G¸dˆDØ�q‘&ˆBØ—H“HØ—8“8Ø�CØŸ)™)�CØ¤ S£š>Ø+.°!ª8¸¼cÀ#»hº˜s 3šxÈD˜Ø" Q™w˜Ø Ÿ\™\¨RÒ/°s·{±{ÀbÒ7HØ $§
¡
× 2Ñ 2°4·=±=ÀÇÁÓ N˜AØ ŸK™K×/Ñ/°·±¸S¿[¹[ÈÔKð ¤ S£›>ð Ÿ+™+Ÿ-™-×+Ñ+¨D¯M©M¸$Ó?�CØ—K‘K×'Ñ'¨¯©°Q°t·y±y×7HÑ7HÈÓ7MÔNð ”C˜“HŽ}r   c           
      ó°  — | j                  «       ry | j                  j                  «       dk(  r:| j                  j                  «       dk7  r| j                  j	                  dd«       y t        «       }| j                  «        t        | j                  «      dkD  rˆd}| j                  }|t        |«      k  rl|dk\  r|t        |«      k  r||   nd }|dz   }|j                  dk\  r/t        j                  | j                  |j                  «      |_
        |t        |«      k  rŒlt        | j                  «      dkD  r9| j                  j                  | j                  t        | j                  «      «       | j                  | j                  || j                  j                  «       «      }| j                  j                  ||«       | j                  «        d}| j                  }|t        |«      k  �r|dk\  r|t        |«      k  r||   nd }|dz   }|j                   �sÖ|j"                  rÆ| j$                  j'                  «       }|j)                  «       �rŸ|j+                  «       }| j,                  j.                  j1                  |d «      }|�P|dk\  rK| j                  j3                  ||j4                  | j6                  j9                  ||j:                  «      «       |j)                  «       rŒ™�n|j<                  �r÷|j:                  | _        | jA                  «        | jB                  jD                  s�ŒS| jF                  j'                  «       }	|	j)                  «       �r“|	j+                  «       }
| jH                  jK                  | j6                  j9                  |
|j:                  «      «      }tL        jO                  dd| jH                  |d| jB                  jP                  d| jR                  «       | jR                  jD                  sŒ»| jR                  jT                  rŒÒ| jH                  jW                  | jX                  j[                  | jR                  j\                  «      «      }| j,                  j.                  j1                  |
d «      }|�P|dk\  rK| j                  j3                  | j,                  j.                  j1                  |
d «      |j4                  |«       |	j)                  «       r�Œ“|t        |«      k  r�Œ| j_                  «        d}| j                  j                  «       }||k  r¢|}|dz   }| jH                  jK                  | j                  j9                  |d«      «      }| j`                  j.                  j1                  |d «      }|€Œj| j                  j3                  |d| jH                  jW                  |«      «       ||k  rŒ¡y y )Nr   r{   r�   )1r  rÍ  r
  r  r  r�   r  rª   rã  r×  rL  r¿   rÀ   r  r  rò  rI  rž   rÐ  Úiteratorr¹   rº   rß  rˆ   r‰   r  r  rµ  r  r  rÞ   rÔ  rÿ  rÙ  rì   rÏ  ra  ra   rã  rD  ræ   rÚ  rí   rº  rÇ  rò  rð   r  rÑ  )r   r>  rÈ   rÉ   r  r¬  r.  Úc1rG  Úc2Úc3r   rþ  rŽ  rÀ  r!   Ú	next_names                    r   r  zHighlightPatch.finishRows  so  € Ø×$Ñ$Ô&ØØ�K‰K×!Ñ!Ó# qÒ(Ø—‘×&Ñ&Ó(¨AÒ-Ø—‘×"Ñ" 1 QÔ'ØÜ‹vˆØ×ÑÔÜ�×#Ñ#Ó$ qÒ(ØˆBØ—)‘)ˆCØœ˜C›’=Ø"$¨¢'¨b´3°s³8ªm�s˜2’wÀ�Ø˜1‘f�Ø—M‘M QÒ&Ü$=×$BÑ$BÀ4×CVÑCVÐX[×XeÑXeÓ$f�C”Mð	 œ˜C›“=ô
 �×#Ñ#Ó$ qÒ(Ø�K‰K×*Ñ*¨4×+>Ñ+>¼sÀ4×CVÑCVÓ?WÔXØ×"Ñ" 4§9¡9¨T°$·+±+×2HÑ2HÓ2JÓKˆØ�‰×&Ñ& t¨GÔ4Ø×ÑÔØˆØ�i‰iˆØ”C˜“H‹}Ø  Ašg¨"¬s°3«xª-�3�r’7¸TˆCØ�q‘&ˆBØ—G“GØ—7’7ØŸ™×0Ñ0Ó2�AØŸ)™)�+ØŸV™V›X˜Ø!%×!4Ñ!4×!6Ñ!6×!:Ñ!:¸2¸dÓ!C˜Ø#Ð/°vÀ²{Ø ŸK™K×/Ñ/°°s·{±{À4Ç:Á:×CUÑCUÐVXÐY\×YeÑYeÓCfÔgð	 Ÿ)™)Ÿ+ð
 —Z“ZØ&)§l¡l�D”OØ—M‘M”OØ ŸL™L×0Ò0Ù ØŸ™×0Ñ0Ó2�BØŸ*™*�,ØŸW™W›Y˜Ø"Ÿi™i×0Ñ0°·±×1CÑ1CÀBÀsÇ|Á|Ó1TÓU˜Ü"×.Ñ.¨q°°4·9±9¸SÀÀDÇLÁL×DVÑDVÐWYÐZ^×ZgÑZgÔhØ $§¡× 5Ò 5Ø$ØŸ=™=×3Ò3Ø$Ø ŸI™I×-Ñ-¨d¯h©h×.@Ñ.@ÀÇÁ×AUÑAUÓ.VÓW˜Ø"&×"5Ñ"5×"7Ñ"7×";Ñ";¸B¸tÓ"D˜Ø$Ð0¸À1ºØ ŸK™K×/Ñ/°×0CÑ0C×0EÑ0E×0IÑ0IÈ"ÈTÓ0RÐSV×S^ÑS^Ð_`Ôað Ÿ*™*ž,ð# ”C˜“HŒ}ð: 	×ÑÔØˆØ�k‰k×#Ñ#Ó%ˆØ�CŠxØˆAØ�q‘&ˆBØ—9‘9×%Ñ% d§k¡k×&9Ñ&9¸!¸AÓ&>Ó?ˆDØ×)Ñ)×+Ñ+×/Ñ/°°TÓ:ˆIØÐ!ØØ�K‰K×Ñ  ! D§I¡I×$5Ñ$5°iÓ$@ÔAð �C�xr   c                 ó   — | j                   €y t        «       | _        t        «       | _        | j	                  | j
                  | j                  | j                  | j                  j                  «       «       t        | j                  «      dk(  ry y rm   )	rÒ  r�   rå  ræ  r  rØ  rÍ  r
  rª   r   s    r   r	  zHighlightPatch.permuteColumnsV  sr   € Ø�O‰OÐ#ØÜ"›fˆÔÜ!%£ˆÔØ×Ñ˜TŸZ™Z¨×(;Ñ(;¸D×<RÑ<RÐSW×S^ÑS^×ShÑShÓSjÔkÜ�×#Ñ#Ó$¨Ò)Øð *r   c           	      óÎ  — | j                   ry d| _         | j                  «        | j                  }| j                  }||k  �r)|}|dz   }| j                  j
                  j                  |d «      }| j                  j
                  j                  |d «      }|€d}|dk(  r…d}|| j                  j
                  v r&| j                  j
                  j                  |d «      }t        «       }||_
        d|_        ||_        ||_        | j                  }|j                  |«       �nA|dk(  r»t        «       }	||	_
        d|	_        d}
d}d|	_        t#        | j                  «      dkD  rEt$        j'                  | j                  t#        | j                  «      dz
  «      j                  |	_        |	j                  dk7  rd|	_        ||	_        | j                  }|j                  |	«       n�|d	k7  r|d}|| j                  j
                  v r&| j                  j
                  j                  |d «      }t        «       }||_
        ||_        ||_        | j                  }|j                  |«       ||k  r�Œ)d}d}d}t#        | j                  «      dz
  }||k  �rm|}|dz   }|dk\  r'|t#        | j                  «      k  r| j                  |   nd j                  }|dk7  r=|dk7  r8|dk\  r'|t#        | j                  «      k  r| j                  |   nd j                  }|t$        j'                  | j                  |dz   «      _        t#        | j                  «      dz
  |z
  }|dk\  r'|t#        | j                  «      k  r| j                  |   nd j                  }|dk7  r=|dk7  r8|dk\  r'|t#        | j                  «      k  r| j                  |   nd j                  }|t$        j'                  | j                  |dz
  «      _        ||k  r�Œmt/        «       }| j1                  «        | j2                  �ét#        | j4                  «      dkD  rÑd}| j                  }|t#        |«      k  rl|dk\  r|t#        |«      k  r||   nd }|dz   }|j                  dk\  r/t$        j'                  | j4                  |j                  «      |_        |t#        |«      k  rŒl| j7                  «       s9| j8                  j;                  | j4                  t#        | j4                  «      «       | j=                  | j                  || j8                  j?                  «       «      }| j7                  «       s| j8                  j;                  ||«       y d}d}| j                  }|t#        |«      k  r@|dk\  r|t#        |«      k  r||   nd }|dz   }|j                  dk7  rd}n|t#        |«      k  rŒ@|sy t/        «       }tA        «       }d
„ }|}d}t#        |«      }||k  r=|}|dz   }|jC                  | ||dk\  r|t#        |«      k  r||   nd «      «       ||k  rŒ=| j                  «        | jE                  «        d}| jF                  j?                  «       }||k  �rR|}|dz   }tI        «       }|| j                  j
                  v r&| j                  j
                  j                  |d «      nd}d }d }|dk7  r| j8                  jK                  |d«      }| j                  j
                  j                  |d «      dk7  r>|| j                  j
                  v r&| j                  j
                  j                  |d «      }||_&        ||_'        | jP                  �C|| jP                  j
                  v r+| jP                  j
                  j                  |d «      |_)        |j                  |«       ||k  r�ŒR| jT                  jW                  |«       y )NTr{   r�   rr  ro   ro  Fr   ru  c                 ó   — | dk  r| S | dz   S rW  r+   rÒ  s    r   r³   z1HighlightPatch.finishColumns.<locals>._hx_local_2¾  s   € Ø�A’Ø�à˜A™�r   ),rî  rñ  rÕ  rÖ  rÓ  rˆ   r‰   rN  rÝ  rH  r"  rI  rL  r  rØ  r‚   rž   rª   r¿   rÀ   rM  rJ  rK  r�   r	  rÒ  rå  r  rÍ  r  r  r
  rp   r|   rò  rµ  rù   r  rú   r!   rí  rû   rS   ÚalterColumns) r   rÈ   rÉ   rÀ  rµ  rd  r@  r  r„   Úmod1r;  Úcontr  Úat1Úmod2Ú_this2ÚratÚicoder&  Újcoder>  r¬  Úchangedr*  r  r³   Úincr$  r   r%  r&  r!   s                                    r   r
  zHighlightPatch.finishColumns_  sÍ  € Ø× Ò ØØ $ˆÔØ×ÑÔ Ø�_‰_ˆØ�o‰oˆØ�C‹xØˆAØ�q‘&ˆBØ—-‘-—/‘/×%Ñ% a¨Ó-ˆCØ—+‘+—-‘-×#Ñ# A dÓ+ˆCØ�Ø�Ø�u’Ø�Ø˜×.Ñ.×0Ñ0Ñ0Ø×.Ñ.×0Ñ0×4Ñ4°Q°tÓ<�BÜ(Ó*�Ø�”Ø�”Ø "�”Ø �”ØŸ
™
�Ø—‘˜SÖ!Ø˜’,Ü)Ó+�Ø�”	Ø�”Ø�Ø�Ø!#�”Ü˜Ÿ
™
“O aÒ'Ü%>×%CÑ%CÀDÇJÁJÔQTÐUY×U_ÑU_ÓQ`ÐcdÑQdÓ%f×%pÑ%p�D”NØ—N‘N bÒ(Ø+,�DÔ(Ø !�”ØŸ™�Ø—‘˜dÕ#Ø˜’,Ø�Ø˜×.Ñ.×0Ñ0Ñ0Ø×/Ñ/×1Ñ1×5Ñ5°a¸Ó=�CÜ)Ó+�Ø�”	Ø !�”Ø!$�”ØŸ™�Ø—‘˜dÔ#ðS �CŒxðT ˆØˆØˆÜ�4—:‘:‹ Ñ"ˆØ�C‹xØˆAØ�q‘&ˆBØ&'¨1¢f°´S¸¿¹³_Ò1D�T—Z‘Z ’]È$×TÑTˆEØ˜%’ u°¢~Ø'(¨A¢v°!´c¸$¿*¹*³oÒ2E�d—j‘j ’mÈ4×ZÑZ�ØPRÔ%×*Ñ*¨4¯:©:¸¸A¹Ó?ÔMÜ�d—j‘j“/ AÑ%¨Ñ*ˆAØ&'¨1¢f°´S¸¿¹³_Ò1D�T—Z‘Z ’]È$×TÑTˆEØ˜%’ u°¢~Ø()¨Qª°1´s¸4¿:¹:³Ò3F�t—z‘z !’}ÈD×[Ñ[�ØPSÔ%×*Ñ*¨4¯:©:¸¸A¹Ó?ÔMð �CŒxô ‹vˆØ×ÑÔØ�O‰OÐ'Ü�D×'Ñ'Ó(¨1Ò,Ø�Ø—j‘j�ØœC ›H’}Ø&(¨A¢g°"´s¸3³x²-˜3˜rš7ÀT�CØ˜q™&�BØŸ™¨Ò*Ü(A×(FÑ(FÀt×GZÑGZÐ\_×\iÑ\iÓ(j˜œð	 œC ›H“}ð
 ×4Ñ4Ô6Ø—K‘K×5Ñ5°d×6IÑ6IÌ#Èd×NaÑNaÓJbÔcØ×"Ñ" 4§:¡:¨d°4·;±;×3HÑ3HÓ3JÓKˆØ×,Ñ,Ô.Ø�K‰K×-Ñ-¨d°7Ô;ØØˆØˆØ�j‰jˆØ”C˜“HŠ}Ø  Ašg¨"¬s°3«xª-�3�r’7¸TˆCØ�q‘&ˆBØ—‘˜B’Ø�Øð ”C˜“H‹}ñ ØÜ“&ˆÜÓ!ˆò	ð
 ˆØˆÜ�$‹iˆØ�CŠxØˆAØ�q‘&ˆBØ�J‰J�q™¨¨aª°A¼¸D»	²M˜d 1šgÀtÓMÔNð �C‹xð 	×ÑÔ Ø×ÑÔØˆØ�j‰j×"Ñ"Ó$ˆØ�C‹xØˆIØ�q‘&ˆBÜ!“^ˆFØHQÐUY×UjÑUj×UlÑUlÑHl�t×,Ñ,×.Ñ.×2Ñ2°9¸TÔBÐtvˆGØˆIØˆDØ˜2’Ø ŸK™K×/Ñ/°¸Ó:�	Ø—‘—‘×#Ñ# I¨dÓ3°uÒ<Ø §¡§¡Ñ.ØŸ;™;Ÿ=™=×,Ñ,¨Y°tÓ<�DØ'ˆFŒOØˆFŒKØ—‘Ð*Ø˜DŸN™N×,Ñ,Ñ,Ø#'§>¡>×#3Ñ#3×#7Ñ#7¸¸TÓ#B�F”LØ�N‰N˜6Ô"ð# �CŒxð$ 	�	‰	×Ñ˜wÕ'r   r   ))r(   r)   r*   r?   r@   rA   rB   rÉ  rK  r   rï  rð  rõ  rñ  rò  ró  rô  rõ  rö  r÷  rø  rù  rú  rû  rü  rý  rþ  rÿ  r   rÊ  rË  r  r  r  r  r  r  r  r  r	  r
  r+   r   r   rf  rf  y  sÛ   „ Ø%€Nð S	€Iò T	€Jò €KØ�U€Nó+%òZ$&òL!òò@,ò$Dò!òò" TòD3,òj5ò4ò%ò	&ò#(óJ&òP4 òl%òNMò
$ò5ò5òò&/"òb/ò
,ò
JDòXlò
Oò&?BòBóA(r   rf  c                   ó.   — e Zd Zd ZdZg d¢ZdgZd„ Zd„ Zy)rH  )
rž   rI  rÞ   r"  rL  rM  rJ  rK  r  r  ra   c                 ó�   — d| _         d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _	        y )NFro   r   r�   )
rž   rI  rÞ   rL  rM  rJ  rK  r  r  r"  r   s    r   r   zHighlightPatchUnit.__init__ë  sK   € ØˆŒØˆŒØˆŒØˆŒØ ˆÔØˆÔØˆÔØˆŒØˆŒØˆ�	r   c                 óð  — dt         j                  | j                  «      z   dz   t        j	                  | j
                  «      z   dz   t        j	                  | j                  «      z   dz   t        j	                  | j                  «      z   dz   t        j	                  | j                  «      z   dz   t        j	                  | j                  «      z   dz   t        j	                  | j                  «      z   dz   S )Nr5   z patch z source rÐ  r.  z dest r=   )r“   r”   r"  r•   r–   r  rJ  rL  rK  rM  r  r   s    r   ra   zHighlightPatchUnit.toString÷  s–  € Ø ¤;×#;Ñ#;¸D¿I¹IÓ#FÑFÈ)ÑSÔWZ×WaÑWaÐbf×boÑboÓWpÑpÐt~Ñ~ô  CF÷  CMñ  CMð  NR÷  N`ñ  N`ó  Cañ  að  ehñ  hô  lo÷  lvñ  lvð  w{÷  wEñ  wEó  lFñ  Fð  JMñ  Mô  QT÷  Q[ñ  Q[ð  \`÷  \nñ  \nó  Qoñ  oð  svñ  vô  z}÷  zDñ  zDð  EI÷  EYñ  EYó  zZñ  Zð  ^fñ  fô  jm÷  jtñ  jtð  uy÷  uAñ  uAó  jBñ  Bð  FIñ  Ið  	Jr   Nró   r+   r   r   rH  rH  å  s)   „ Ø)€Nð J€Iò K€JØ�,€Kò
óJr   rH  c                   óH   — e Zd Zd ZdZg d¢Zg d¢Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zy	)
rÆ  )
Úitemsr¸   Útop_freqÚheightÚcolsr;   Úindexed_tablerd  r›  rœ  )Ú	addColumnÚ
indexTableÚtoKeyÚtoKeyByContentr  c                 ó
  — d | _         d | _        t        «       | _        t	        «       | _        t	        «       | _        d| _        d| _        d| _	        d| _
        d| _        |�#|j                  | _
        |j                  | _        y y r  )r‰  r;   r´  r…  r�   rˆ  r¸   r†  r‡  rd  r›  rœ  r°  s     r   r   zIndex.__init__  sy   € Ø!ˆÔØˆŒÜ&Ó(ˆŒ
Ü“FˆŒ	Ü“FˆŒ	ØˆŒØˆŒØˆŒØ!&ˆÔØ ˆÔØÐØ%*×%<Ñ%<ˆDÔ"Ø$×0Ñ0ˆDÕð r   c                 ó>   — | j                   }|j                  |«       y r   )rˆ  r‚   ©r   rÀ  r„   s      r   rŠ  zIndex.addColumn  s   € Ø—	‘	ˆØ�‰�Q�r   c                 óŽ  — || _         || _        t        | j                  «      |j	                  «       k7  rE|j	                  «       dkD  r2t
        j                  | j                  |j	                  «       dz
  d «       d}|j	                  «       }||k  �r|}|dz   }|dk\  r'|t        | j                  «      k  r| j                  |   nd }|€3| j                  ||«      }t
        j                  | j                  ||«       | j                  j                  j                  |d «      }|€#t        «       }|| j                  j                  |<   |j                  €t        «       |_        |j                  }|j                  |«       t        |j                  «      }	|	| j                  kD  r|	| _        ||k  r�Œ|j	                  «       | _        y rW  )r‰  rd  rª   r¸   r  r¿   rƒ  rŒ  r…  rˆ   r‰   Ú	IndexItemr  r�   r‚   r†  r‡  )
r   r  rd  rÈ   rÉ   rÀ  r·   r   r„   r,  s
             r   r‹  zIndex.indexTable  s_  € ØˆÔØˆŒÜ�—‘‹^˜qŸ|™|›~Ò-°Q·\±\³^ÀaÒ5GÜ%×*Ñ*¨4¯9©9°q·|±|³~ÈÑ7IÈDÔQØˆØ�l‰l‹nˆØ�C‹xØˆAØ�q‘&ˆBØ#$¨¢6¨a´#°d·i±i³.Ò.@�4—9‘9˜Q’<ÀdˆCØ�Ø—j‘j  1“o�Ü)×.Ñ.¨t¯y©y¸!¸SÔAØ—:‘:—<‘<×#Ñ# C¨Ó-ˆDØ�Ü “{�Ø$(�—
‘
—‘˜SÑ!Ø—‘Ð Ü›6�”Ø—H‘HˆEØ�L‰L˜ŒOÜ�T—X‘X“ˆBØ�T—]‘]Ò"Ø "�”ð# �CŒxð$ —l‘l“nˆ�r   c                 óF  — || j                   k  rdnd}| j                  €|j                  «       | _        d}t        | j                  «      }||k  rÐ|}|dz   }|j                  |dk\  r'|t        | j                  «      k  r| j                  |   nd |«      }| j                  j                  |«      }| j                  rt        j                  |«      }| j                  r|j                  «       }|dkD  r	|€dn|dz   }|�|dk(  s
|dk(  s|dk(  rŒÂ|€dn||€dn|z   }||k  rŒÐ|S ©NrÅ  r�   r   r{   r�   r‘   Ú	undefined)rd  r;   r  rª   rˆ  r  ra   r›  r^  rZ  rœ  rØ  )	r   r  rÀ  ÚwiderÈ   rÉ   rÃ   rþ  r   s	            r   rŒ  zIndex.toKey1  s  € Ø˜TŸX™Xš‘¨RˆØ�F‰FˆNØ—]‘]“_ˆDŒFØˆÜ�$—)‘)‹nˆØ�CŠxØˆAØ�q‘&ˆBØ—	‘	¨1°ª6°a¼#¸d¿i¹i».Ò6H˜4Ÿ9™9 Qš<ÈdÐTUÓVˆAØ—&‘&—/‘/ !Ó$ˆCØ×%Ò%Ü!×&Ñ& sÓ+�Ø×ÒØ—i‘i“k�Ø�A’Ø#' <™°T¸VÑC�Ø�; S¨B¢Y°s¸f²}ÈSÐT_ÒM_ØØ#˜|‘V°ÀCÀK¹&ÐUXÑYˆDð �C‹xð ˆr   c                 óÎ  — |j                  «       rdnd}d}t        | j                  «      }||k  r´|}|dz   }|j                  |dk\  r'|t        | j                  «      k  r| j                  |   nd «      }| j                  rt
        j                  |«      }| j                  r|j                  «       }|dkD  r	|€dn|dz   }|�|dk(  s
|dk(  s|dk(  rŒ¦|€dn||€dn|z   }||k  rŒ´|S r”  )	rË  rª   rˆ  rÊ  r›  r^  rZ  rœ  rØ  )r   r…  r–  rÈ   rÉ   rÃ   r   s          r   r�  zIndex.toKeyByContentG  sð   € ØŸ™Ô(‘¨rˆØˆÜ�$—)‘)‹nˆØ�CŠxØˆAØ�q‘&ˆBØ×"Ñ"°A¸²F¸qÄ3ÀtÇyÁyÃ>Ò?Q D§I¡I¨a¢LÐW[Ó]ˆCØ×%Ò%Ü!×&Ñ& sÓ+�Ø×ÒØ—i‘i“k�Ø�A’Ø#' <™°T¸VÑC�Ø�; S¨B¢Y°s¸f²}ÈSÐT_ÒM_ØØ#˜|‘V°ÀCÀK¹&ÐUXÑYˆDð �C‹xð ˆr   c                 ó   — | j                   S r   )r‰  r   s    r   r  zIndex.getTableZ  r†   r   N)r(   r)   r*   r?   r@   rA   rB   r   rŠ  r‹  rŒ  r�  r  r+   r   r   rÆ  rÆ  ý  s:   „ Ø€Nð A€Iò B€JÚT€Kò1òò%ò6ò,ó&"r   rÆ  c                   ó@   — e Zd Zd ZdZdgZg d¢Zd„ Zd„ Zd„ Z	d„ Z
d„ Zy	)
r’  ©r  r  )rž   Úlengthræ   ÚasListc                 ó   — d | _         y r   rš  r   s    r   r   zIndexItem.__init__f  s	   € Øˆ�r   c                 óœ   — | j                   €t        «       | _         | j                   }|j                  |«       t        | j                   «      S r   )r  r�   r‚   rª   r�  s      r   rž   zIndexItem.addi  s7   € Ø�H‰HÐÜ“vˆDŒHØ—‘ˆØ�‰�QŒÜ�4—8‘8‹}Ðr   c                 ó,   — t        | j                  «      S r   ©rª   r  r   s    r   r›  zIndexItem.lengthp  s   € Ü�4—8‘8‹}Ðr   c                 óT   — dt        | j                  «      k  r| j                  d   S d S rm   r   r   s    r   ræ   zIndexItem.values  s$   € Ø ¤3 t§x¡x£=Ò0�—‘˜‘Ð;°dÐ;r   c                 ó   — | j                   S r   rš  r   s    r   rœ  zIndexItem.asListv  s   € Ø�x‰xˆr   N)r(   r)   r*   r?   r@   rA   rB   r   rž   r›  ræ   rœ  r+   r   r   r’  r’  `  s1   „ Ø €NØ€IØ�€JÚ6€Kòòòò<ór   r’  c                   ó`   — e Zd Zd ZdZg d¢Zg d¢Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zy)r  )rK   rL   rd  Úqualityr–  )	r  r  Ú
queryByKeyr:  r  r  r  r  Ú
getQualityc                 ón   — || _         t        |«      | _        t        |«      | _        d| _        d| _        y rm   )r–  rÆ  rK   rL   r¤  rd  r°  s     r   r   zIndexPair.__init__‚  s-   € ØˆŒ
Ü˜“,ˆŒÜ˜“,ˆŒØˆŒØˆ�r   c                 óp   — | j                   j                  |«       | j                  j                  |«       y r   )rK   rŠ  rL   )r   r/  r0  s      r   r  zIndexPair.addColumns‰  s&   € Ø�‰×Ñ˜"ÔØ�‰×Ñ˜"Õr   c                 ó.  — | j                   j                  ||«       | j                  j                  ||«       || _        d}| j                   j                  j                  «       }|j                  «       r¾|j                  «       }| j                   j                  j                  j                  |d «      }t        |j                  «      }| j                  j                  j                  j                  |d «      }	d}
|	�t        |	j                  «      }
|dk(  r
|
dk(  r|dz   }|j                  «       rŒ¾|j                  «       }|t        j                  d«      r
dz  | _        y t        j                  |«      r
|z  | _        y t        d|«      z  | _        y )Nr   r{   g      ð?)rK   r‹  rL   rd  r…  r¸   r¹   rº   rˆ   r‰   rª   r  r  rc  rd  rÖ  r¤  )r   r}   r~   rd  Úgoodr·   r6  ræ  r	  r  r
  s              r   r  zIndexPair.indexTables�  s3  € Ø�‰×Ñ˜1˜SÔ!Ø�‰×Ñ˜1˜SÔ!ØˆŒØˆØ�g‰g�m‰m× Ñ Ó"ˆØ�k‰kŒmØ—8‘8“:ˆDØ—W‘W—]‘]—_‘_×(Ñ(¨¨dÓ3ˆFÜ˜Ÿ™“_ˆFØ—W‘W—]‘]—_‘_×(Ñ(¨¨dÓ3ˆFØˆFØÐ"Ü˜VŸZ™Z›�Ø˜1’ F¨a¢KØ˜q™�ð �k‰k�mð �L‰L‹NˆØ¬×)>Ñ)>¸sÔ)C Ñ}ˆ�ÔQ`×QfÑQfÐghÔQiÈ1Ñ}ˆ�ÔpsÐtwÐxyÓpzÑ}ˆ�r   c                 óÜ  ‡— t        «       Š| j                  j                  j                  j	                  |d «      ‰_        | j                  j                  j                  j	                  |d «      ‰_        ˆfd„} |«       ‰_        |dk7  r`‰j
                  �$t        ‰j
                  j                  «      ‰_        ‰j                  �$t        ‰j                  j                  «      ‰_        ‰S )Nc                  ó*   •— d‰ _         ‰ j                   S rm   )r
  )r—   s   €r   rn   z)IndexPair.queryByKey.<locals>._hx_local_0¤  s   ø€ ØˆFŒMØ—=‘=Ð r   r�   )rå  rK   r…  rˆ   r‰   ræ  rL   r  r	  rª   r  r
  )r   rN  rn   r—   s      @r   r¥  zIndexPair.queryByKey   s¦   ø€ Ü“ˆØŸ™Ÿ™Ÿ™×+Ñ+¨B¨tÓ4ˆŒØŸ™Ÿ™Ÿ™×+Ñ+¨B¨tÓ4ˆŒô	!ñ $›ˆŒØ�"ŠHØ—‘Ð)Ü # F§M¡M×$5Ñ$5Ó 6�”Ø—‘Ð)Ü # F§M¡M×$5Ñ$5Ó 6�”Øˆr   c                 ón   — t        «       }| j                  j                  |«      }| j                  |«      S r   )rå  rK   r�  r¥  )r   r…  r—   rN  s       r   r:  zIndexPair.queryByContent¯  s,   € Ü“ˆØ�W‰W×#Ñ# CÓ(ˆØ�‰˜rÓ"Ð"r   c                 óŒ   — | j                   j                  | j                   j                  «       |«      }| j                  |«      S r   )rK   rŒ  r  r¥  )r   r…  rN  s      r   r  zIndexPair.queryLocal´  s2   € Ø�W‰W�]‰]˜4Ÿ7™7×+Ñ+Ó-¨cÓ2ˆØ�‰˜rÓ"Ð"r   c                 ój   — | j                   j                  | j                   j                  «       |«      S r   )rK   rŒ  r  ©r   r…  s     r   r  zIndexPair.localKey¸  ó$   € Ø�w‰w�}‰}˜TŸW™W×-Ñ-Ó/°Ó4Ð4r   c                 ój   — | j                   j                  | j                   j                  «       |«      S r   )rL   rŒ  r  r°  s     r   r  zIndexPair.remoteKey»  r±  r   c                 ó´   — | j                   j                  | j                  j                  kD  r| j                   j                  S | j                  j                  S r   )rL   r†  rK   r   s    r   r  zIndexPair.getTopFreq¾  s>   € Ø�G‰G×Ñ˜tŸw™w×/Ñ/Ò/Ø—7‘7×#Ñ#Ð#Ø�w‰w×ÑÐr   c                 ó   — | j                   S r   )r¤  r   s    r   r¦  zIndexPair.getQualityÃ  r~  r   N)r(   r)   r*   r?   r@   rA   rB   r   r  r  r¥  r:  r  r  r  r  r¦  r+   r   r   r  r  |  sL   „ Ø €NØ7€IÚ8€Jò S€Kòòòò&ò#ò
#ò5ò5ò ó
r   r  c                   ó   — e Zd Zd ZdZg d¢Zy)ÚMetar+   )rv  r@  Ú
applyFlagsrX  Ú	cloneMetarZ  r\  ÚgetRowStreamrs  r€  ÚgetNameNrâ   r+   r   r   r¶  r¶  É  s   „ Ø€NØ€Iò q�Kr   r¶  c                   óâ   — e Zd Zd ZdZg d¢Zg d¢ZeegZ	d„ Z
d„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d"d„Z!d„ Z"d„ Z#d„ Z$d„ Z%d „ Z&d!„ Z'y)#Ú	JsonTable)r:  rˆ   r*  r	  rà  Úidx2colr!   )r  r
  r  r  r  ra   r  r  r  r  r  r  r	  r  r  ÚsetMetar  r  rv  r@  r·  rX  r¸  rZ  r\  r¹  rs  r€  rº  c                 ó0  — d | _         d | _        d | _        d | _        || _        t
        j                  |d«      | _        t
        j                  |d«      | _        t        | j                  «      | _        t        | j                  «      | _        t        «       | _        d}t        | j                  «      }||k  rW|}|dz   }|dk\  r'|t        | j                  «      k  r| j                  |   nd }| j                  j                  ||«       ||k  rŒW|| _         y )Nr*  r	  r   r{   )r!   r½  rˆ   r:  rà  r  r&   r*  r	  rª   rp   r|   )r   rà  r!   rÈ   rÉ   rË  r;   s          r   r   zJsonTable.__init__×  sç   € ØˆŒ	ØˆŒØˆŒØˆŒØˆŒ	Ü—}‘} T¨)Ó4ˆŒÜ—M‘M $ vÓ.ˆŒ	Ü�T—\‘\Ó"ˆŒÜ�T—Y‘Y“ˆŒÜ%Ó'ˆŒØˆÜ�$—,‘,ÓˆØ�CŠxØˆCØ�q‘&ˆBØ&)¨Q¢h°3¼¸T¿\¹\Ó9JÒ3J�—‘˜cÒ"ÐPTˆAØ�L‰L×Ñ˜S Ô#ð	 �C‹xð
 ˆ�	r   c                 ó   — | S r   r+   r   s    r   r  zJsonTable.getTableë  r%  r   c                 ó   — | j                   S r   ©r:  r   s    r   r
  zJsonTable.get_widthî  r#  r   c                 ó    — | j                   dz   S rS  ©rˆ   r   s    r   r  zJsonTable.get_heightñ  s   € Ø—‘˜‘
Ðr   c                 ó  — |dk(  r&| j                   j                  j                  |d «      S t        j	                  t
        j                  | j                  |dz
  «      | j                   j                  j                  |d «      «      S rW  )r½  rˆ   r‰   r  r&   r¿   rÀ   r	  r*  s      r   r  zJsonTable.getCellô  sg   € Ø�ŠFØ—<‘<—>‘>×%Ñ% a¨Ó-Ð-Ü�}‰}Ô6×;Ñ;¸D¿I¹IÈÈAÉÓOÐPT×P\ÑP\×P^ÑP^×PbÑPbÐcdÐeiÓPjÓkÐkr   c                 ó   — t        d«       y )NzJsonTable is read-only©rõ  r-  s       r   r  zJsonTable.setCellù  s   € ÜÐ&Õ'r   c                  ó   — yrY  r+   r   s    r   ra   zJsonTable.toStringü  s   € Ør   c                 ó   — t        «       S r   ©Ú
SimpleViewr   s    r   r  zJsonTable.getCellViewÿ  ó
   € Ü‹|Ðr   c                  ó   — yr|  r+   r   s    r   r  zJsonTable.isResizable  r}  r   c                  ó   — yr|  r+   r9  s      r   r  zJsonTable.resize  r}  r   c                  ó   — y r   r+   r   s    r   r  zJsonTable.clear  ry   r   c                  ó   — yr|  r+   r=  s      r   r  zJsonTable.insertOrDeleteRows  r}  r   c                  ó   — yr|  r+   rA  s      r   r  zJsonTable.insertOrDeleteColumns  r}  r   c                  ó   — yr|  r+   r   s    r   r	  zJsonTable.trimBlank  r}  r   c                  ó   — y r   r+   r   s    r   r  zJsonTable.getData  rE  r   c                  ó   — y r   r+   r   s    r   r  zJsonTable.clone  rE  r   c                  ó   — y r   r+   ©r   rS   s     r   r¾  zJsonTable.setMeta  ry   r   c                 ó   — | S r   r+   r   s    r   r  zJsonTable.getMeta  r%  r   c                  ó   — y r   r+   r   s    r   r  zJsonTable.create   rE  r   c                  ó   — yr|  r+   )r   r*  s     r   rv  zJsonTable.alterColumns#  r}  r   c                  ó   — yr|  r+   ©r   rA  s     r   r@  zJsonTable.changeRow&  r}  r   c                  ó   — yr|  r+   r°  s     r   r·  zJsonTable.applyFlags)  r}  r   c                  ó   — y r   r+   r   s    r   rX  zJsonTable.asTable,  rE  r   Nc                  ó   — y r   r+   ©r   rÅ  s     r   r¸  zJsonTable.cloneMeta/  rE  r   c                  ó   — yr|  r+   r   s    r   rZ  zJsonTable.useForColumnChanges2  r}  r   c                  ó   — yr|  r+   r   s    r   r\  zJsonTable.useForRowChanges5  r}  r   c                  ó   — y r   r+   r   s    r   r¹  zJsonTable.getRowStream8  rE  r   c                  ó   — yr|  r+   r   s    r   rs  zJsonTable.isNested;  r}  r   c                  ó   — yr|  r+   r   s    r   r€  zJsonTable.isSql>  r}  r   c                 ó   — | j                   S r   ©r!   r   s    r   rº  zJsonTable.getNameA  rJ  r   r   )(r(   r)   r*   r?   r@   rA   rB   r¶  rÿ   rK  r   r  r
  r  r  r  ra   r  r  r  r  r  r  r	  r  r  r¾  r  r  rv  r@  r·  rX  r¸  rZ  r\  r¹  rs  r€  rº  r+   r   r   r¼  r¼  Ð  s¹   „ Ø €NØH€IÚI€Jò [€KØ˜E�]€Nòò(òòòlò
(òòòòòòòòòòòòòòòòòóòòòòòór   r¼  c                   óŠ   — e Zd Zd ZdZg d¢Zg d¢ZegZd„ Z	d„ Z
d„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)r  ©rù  r  r–  )r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  c           
      ó~  — d | _         || _        t        j                  |d«      }d }t	        |«      }|�Â|j
                  �¶t        «       }d}|j
                  }|t	        |«      k  r=|dk\  r|t	        |«      k  r||   nd }|dz   }d|j                  |<   |t	        |«      k  rŒ=d}d}|t	        |«      k  rA|dk\  r|t	        |«      k  r||   nd }|dz   }||j                  v r|dz   }|t	        |«      k  rŒAt        d|dz   «      | _	        | j                  j                  ddd«       | j                  j                  ddd«       | j                  j                  «       }	d}
d}|t	        |«      k  rÎ|dk\  r|t	        |«      k  r||   nd }|dz   }|�||j                  vrŒ>| j                  j                  d|
|«       t        j                  | j                  d«      }t        j                  ||«      }| j                  j                  d|
|	j                  t        ||«      «      «       |
dz   }
|t	        |«      k  rŒÍy y )	NÚnamesr   r{   TrÒ  r!   rÅ  rX   )r–  rù  r  r&   rª   rX   r´  rˆ   r1  r  r  r  Ú	wrapTabler¼  )r   rÅ  r–  rê  Úallowedr`   rÈ   rÉ   r!   r;   r@  r-  s               r   r   zJsonTables.__init__N  s  € ØˆŒ
ØˆŒÜ—‘˜d 7Ó+ˆØˆÜ�E“
ˆØÐ e§l¡lÐ&>Ü'Ó)ˆGØˆBØ—,‘,ˆCØœ˜C›’=Ø#%¨¢7¨r´C¸³Hª}˜˜BšÀ$�Ø˜1‘f�Ø"&�—	‘	˜$‘ð œ˜C›“=ð ˆEØˆBØœ˜E›
’?Ø%'¨1¢W°´c¸%³j²˜˜bš	Àd�Ø˜1‘f�Ø˜GŸI™IÑ%Ø" Q™Y�Eð	 œ˜E›
“?ô
 ˜Q ¨¡	Ó+ˆŒØ�‰�‰�q˜˜6Ô"Ø�‰�‰�q˜˜7Ô#Ø�F‰F×ÑÓ ˆØˆØˆØ”C˜“JŠØ!# q¢¨R´#°e³*ª_�E˜"’IÀ$ˆDØ�q‘&ˆBØÐ#Ø §¡Ñ*ØØ�F‰F�N‰N˜1˜R Ô%Ü—-‘- §¡¨Ó1ˆCÜ—-‘-  DÓ)ˆCØ�F‰F�N‰N˜1˜R §¡¬I°c¸$Ó,?Ó @ÔAØ�q‘&ˆBð ”C˜“J�r   c                 ó:   — | j                   j                  ||«      S r   ©r  r  r*  s      r   r  zJsonTables.getCellu  ó   € Ø�v‰v�~‰~˜a Ó"Ð"r   c                  ó   — y r   r+   r-  s       r   r  zJsonTables.setCellx  ry   r   c                 ó6   — | j                   j                  «       S r   r5  r   s    r   r  zJsonTables.getCellView{  r6  r   c                  ó   — yr|  r+   r   s    r   r  zJsonTables.isResizable~  r}  r   c                  ó   — yr|  r+   r9  s      r   r  zJsonTables.resize�  r}  r   c                  ó   — y r   r+   r   s    r   r  zJsonTables.clear„  ry   r   c                  ó   — yr|  r+   r=  s      r   r  zJsonTables.insertOrDeleteRows‡  r}  r   c                  ó   — yr|  r+   rA  s      r   r  z JsonTables.insertOrDeleteColumnsŠ  r}  r   c                  ó   — yr|  r+   r   s    r   r	  zJsonTables.trimBlank�  r}  r   c                 ó6   — | j                   j                  «       S r   ©r  r
  r   s    r   r
  zJsonTables.get_width�  ó   € Ø�v‰v×ÑÓ!Ð!r   c                 ó6   — | j                   j                  «       S r   ©r  r  r   s    r   r  zJsonTables.get_height“  ó   € Ø�v‰v× Ñ Ó"Ð"r   c                  ó   — y r   r+   r   s    r   r  zJsonTables.getData–  rE  r   c                  ó   — y r   r+   r   s    r   r  zJsonTables.clone™  rE  r   c                 ó   — t        | dd«      S r™   ©r  r   s    r   r  zJsonTables.getMetaœ  ó   € Ü˜$˜t DÓ)Ð)r   c                  ó   — y r   r+   r   s    r   r  zJsonTables.createŸ  rE  r   N)r(   r)   r*   r?   r@   rA   rB   rÿ   rK  r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r+   r   r   r  r  G  sq   „ Ø!€NØ$€IÚ%€Jò Z€KØ�W€Nò%òN#òò$òòòòòòò"ò#òòò*ór   r  c                   ó<   — e Zd Zd ZdZddgZed„ «       Zed„ «       Zy)r  r+   r  re  c                 óÈ   — t        «       }t        j                  | «      }|j                  «       r2|j	                  «       }|j                  |«       |j                  «       rŒ2|S r   )r�   r“   rn  r¹   rº   r‚   )Úitr}   rÀ  rg  s       r   r  zLambda.arrayª  sJ   € ä‹FˆÜ× Ñ  Ó$ˆØ�i‰iŒkØ—‘“ˆBØ�H‰H�RŒLð �i‰i�kð ˆr   c                 ó¾   — t         j                  | «      }|j                  «       r8|j                  «       }t         j	                  ||«      ry|j                  «       rŒ8yr$   )r“   rn  r¹   rº   rk  )r  Úeltr+  rÍ  s       r   re  z
Lambda.has³  sG   € ä× Ñ  Ó$ˆØ�i‰iŒkØ—‘“ˆBÜ�~‰~˜b Ô%Øð �i‰i�kð r   N)	r(   r)   r*   r?   r@   râ  rã  r  re  r+   r   r   r  r  ¥  s<   „ Ø€NØ€IØ˜EÐ"€Kàñó ðð ñó ñr   r  c                   ód   — e Zd Zd ZdZg d¢Zg d¢ZdgZd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zed„ «       Zy)rg  )rM  rÑ  r]  r–  r¬   Úunitsr  Úcolumn_unitsÚrow_mix_localÚrow_mix_remoteÚcolumn_mix_localÚcolumn_mix_remoter¶  Úconflict_infos)ÚshuffleDimensionÚshuffleColumnsÚshuffleRowsrõ  ÚgetConflictInfosÚaddConflictInfoÚmakeConflictedCellc                 óÈ   — d | _         d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _	        || _
        || _        || _        || _        y r   )r  r¶  r  r  r  r  r  r  r
  r¬   rM  rÑ  r]  r–  )r   rM  rÑ  r]  r–  s        r   r   zMerger.__init__Å  sk   € Ø"ˆÔØˆŒØ!%ˆÔØ $ˆÔØ"ˆÔØ!ˆÔØ ˆÔØ ˆÔØˆŒ
ØˆŒ
ØˆŒØˆŒ
ØˆŒØˆ�
r   c                 ó”  — d}d}|t        |«      k  rÞ|dk\  r|t        |«      k  r||   nd }|dz   }|j                  dk  rb|j                  dk  r1|j                  dk\  rƒ|j	                  |j                  |«       |dz   }na|j	                  |j                  |«       |dz   }n?|j                  dk\  r0|j                  dk\  r!|j	                  |j                  |«       |dz   }|t        |«      k  rŒÞd}|}	||	k  rN|}
|dz   }|j
                  j                  |
d «      }|€|j                  d«       n|j                  |«       ||	k  rŒN|S r®   )rª   r¢   r    r¡   r|   rˆ   r‰   r‚   )r   Ú	dim_unitsr¬  r>  r—  rU  r@  rÈ   ÚcunitrÉ   r+  rË  s               r   r  zMerger.shuffleDimensionÕ  s4  € ØˆØˆØ”C˜	“NÒ"Ø&(¨A¢g°"´s¸9³~Ò2E�Y˜r’]È4ˆEØ�q‘&ˆBØ—‘˜!’Ø—G‘G˜a’KØŸ™ 1šØŸ™˜uŸw™w rÔ*Ø  1™f™à—F‘F˜5Ÿ7™7 2Ô&Ø˜q™&‘BØ—'‘'˜Q’,Ø—G‘G˜q’LØ—F‘F˜5Ÿ7™7 2Ô&Ø˜q™&�Bð ”C˜	“NÓ"ð ˆØˆØ�CŠxØˆAØ�q‘&ˆBØ—$‘$—(‘(˜1˜TÓ"ˆCØ�Ø—‘˜B•à—‘˜CÔ ð �C‹xð ˆ	r   c                 ó"  — t        «       | _        t        «       | _        t        «       }| j	                  | j
                  | j                  j                  «       || j                  | j                  «      }| j                  j                  ||«       y r   )	rp   r  r  r�   r  r  rÑ  r
  r  rA  s      r   r  zMerger.shuffleColumnsó  sw   € Ü .Ó 0ˆÔÜ!/Ó!1ˆÔÜ‹vˆØ×%Ñ% d×&7Ñ&7¸¿
¹
×8LÑ8LÓ8NÈtÐTX×TiÑTiÐjn÷  kAñ  kAó  BˆØ�
‰
×(Ñ(¨¨eÕ4r   c                 ó"  — t        «       | _        t        «       | _        t        «       }| j	                  | j
                  | j                  j                  «       || j                  | j                  «      }| j                  j                  ||«       y r   )	rp   r  r  r�   r  r
  rÑ  r  r  r=  s      r   r  zMerger.shuffleRowsú  si   € Ü+Ó-ˆÔÜ,Ó.ˆÔÜ‹vˆØ×%Ñ% d§j¡j°·±×1FÑ1FÓ1HÈÈd×N`ÑN`Ðae×atÑatÓuˆØ�
‰
×%Ñ% d¨5Õ1r   c           
      ó  — d| _         t        «       | _        t        j	                  | j
                  | j                  | j                  «      }|j                  «       }|j                  «       | _
        | j                  j                  «       | _        |j                  j                  «       | _        | j                  j                  «       | _        | j                   j#                  «       }| j                   j%                  «       }| j                   j'                  «       }| j
                  j)                  «       }d}| j                  }|t+        |«      k  �r_|dk\  r|t+        |«      k  r||   nd }	|dz   }|	j,                  dk\  �r |	j.                  dk\  �r|	j0                  dk\  �r d}
| j                  }|
t+        |«      k  �rã|
dk\  r|
t+        |«      k  r||
   nd }|
dz   }
|j,                  dk\  �r¤|j.                  dk\  �r”|j0                  dk\  �r„| j
                  j3                  |j0                  |	j0                  «      }| j                  j3                  |j.                  |	j.                  «      }|j5                  ||«      �s| j                  j3                  |j,                  |	j,                  «      }|j5                  ||«      r2| j                  j7                  |j,                  |	j,                  |«       n�|j5                  ||«      s‹| j                  j7                  |j,                  |	j,                  t8        j;                  ||||«      «       | }|j                   }|dz   |_         | | j=                  |	j,                  |j,                  ||||«       |
t+        |«      k  r�Œã|t+        |«      k  r�Œ_| j?                  «        | jA                  «        | jB                  jE                  «       }|jG                  «       �r¯|jI                  «       }| jB                  jJ                  jM                  |d «      }d}| j                  }|t+        |«      k  �rJ|dk\  r|t+        |«      k  r||   nd }|dz   }|j,                  dk\  r|j.                  dk\  rp| j                  j7                  || jN                  jJ                  jM                  |j,                  d «      | j                  j3                  ||j.                  «      «       n�|j0                  dk  r~|j.                  dk\  ro| j                  j7                  || jP                  jJ                  jM                  |j.                  d «      | j                  j3                  ||j.                  «      «       |t+        |«      k  r�ŒJ|jG                  «       r�Œ¯| jP                  jE                  «       }|jG                  «       �r|jI                  «       }| jP                  jJ                  jM                  |d «      }d}| j                  }|t+        |«      k  r»|dk\  r|t+        |«      k  r||   nd }|dz   }|j,                  dk\  r~|j.                  dk\  ro| j                  j7                  | jR                  jJ                  jM                  |j,                  d «      || j                  j3                  |j.                  |«      «       |t+        |«      k  rŒ»|jG                  «       r�Œ| j                   S rW  )*r¶  r�   r  rˆ  r·  rM  rÑ  r]  rÜ  rb   r¬   r  r
  rS   r  r  r–  r£  r¤  r¢  r  rª   r    r¡   r¢   r  rn  r  rg  r  r  r  r  r  r¸   r¹   rº   rˆ   r‰   r  r  r  )r   r,  rÜ  Úallow_insertÚallow_deleteÚallow_updatera  rÈ   rÉ   r…  r1  r2  rA  ÚpcellÚrcellÚlcellr³   rµ   r+  rÍ  r:  rƒ   r  Úy1Úy2s                            r   rõ  zMerger.apply  sI  € ØˆŒÜ"›fˆÔÜ×!Ñ! $§+¡+¨d¯j©j¸¿¹ÓEˆØ—‘“
ˆØ—]‘]“_ˆŒ
Ø—Z‘Z×'Ñ'Ó)ˆŒ
Ø!ŸJ™J×.Ñ.Ó0ˆÔØ ×-Ñ-×5Ñ5Ó7ˆÔØ—z‘z×-Ñ-Ó/ˆØ—z‘z×-Ñ-Ó/ˆØ—z‘z×-Ñ-Ó/ˆØ�{‰{×&Ñ&Ó(ˆØˆØ�j‰jˆØ”C˜“H‹}Ø  Ašg¨"¬s°3«xª-�3�r’7¸TˆCØ�q‘&ˆBØ—%‘%˜1“* C§E¡E¨Q£J¸¿¹À»
Ø�Ø×'Ñ'�ØœS ›X“~Ø'*¨a¢x°C¼#¸c»(²N˜3˜sš8È�CØ ™7�CØŸ%™% 1›*¨C¯E©E°Q«JÀÇÁÈÃ
Ø $§¡× 3Ñ 3°C·E±E¸#¿%¹%Ó @˜Ø $§¡× 3Ñ 3°C·E±E¸#¿%¹%Ó @˜Ø $§¡¨E°%Õ 8Ø$(§J¡J×$6Ñ$6°s·u±u¸S¿U¹UÓ$C˜EØ#Ÿ{™{¨5°Ô7Ø $§
¡
× 2Ñ 2°3·5±5¸¿¹¸uÕ EØ&*§k¡k°%¸Ô&>Ø $§
¡
× 2Ñ 2°3·5±5¸¿¹¼v×?XÑ?XÐY]Ð^cÐdiÐjoÓ?pÔ qØ.2 Ø.9×.CÑ.C Ø9DÀq¹ Ô 5Ù +Ø $× 4Ñ 4°S·U±U¸3¿5¹5ÀÀeÈEÐRWÔ Xð! œS ›X”~ð ”C˜“HŒ}ð. 	×ÑÔØ×ÑÔØ×"Ñ"×'Ñ'Ó)ˆØ�i‰i�kØ—‘“ˆBØ×'Ñ'×)Ñ)×-Ñ-¨b°Ó6ˆBØˆBØ—*‘*ˆCØœ˜C›“=Ø#%¨¢7¨r´C¸³Hª}˜˜BšÀ$�Ø˜1‘f�Ø—V‘V˜q’[¨¯©°!ªØ—J‘J×&Ñ& r¨$×*<Ñ*<×*>Ñ*>×*BÑ*BÀ4Ç6Á6È$Ó*OÐPT×P[ÑP[×PcÑPcÐdfÐgk×gmÑgmÓPnÕoØ—v‘v ’z¨¯©°1ªØ—J‘J×&Ñ& r¨$×*=Ñ*=×*?Ñ*?×*CÑ*CÀDÇFÁFÈ4Ó*PÐQU×Q\ÑQ\×QdÑQdÐegÐhl×hnÑhnÓQoÔpð œ˜C›”=ð �i‰iŽkð ×Ñ×$Ñ$Ó&ˆØ�i‰i�kØ—‘“ˆBØ×$Ñ$×&Ñ&×*Ñ*¨2¨dÓ3ˆBØˆBØ×#Ñ#ˆCØœ˜C›’=Ø#%¨¢7¨r´C¸³Hª}˜˜BšÀ$�Ø˜1‘f�Ø—V‘V˜q’[¨¯©°!ªØ—J‘J×&Ñ& t×'<Ñ'<×'>Ñ'>×'BÑ'BÀ4Ç6Á6È$Ó'OÐPRÐSW×S^ÑS^×SfÑSfÐgk×gmÑgmÐnpÓSqÔrð	 œ˜C›“=ð �i‰iŽkð �~‰~Ðr   c                 ó   — | j                   S r   )r  r   s    r   r  zMerger.getConflictInfosC  r  r   c           	      ó¶   — | j                   }t        |||j                  |«      |j                  |«      |j                  |«      «      }|j                  |«       y r   )r  rƒ  ra   r‚   )	r   r…  rA  ra  r!  r#  r"  r„   r+  s	            r   r  zMerger.addConflictInfoF  sF   € Ø×#Ñ#ˆÜ˜˜S §¡¨uÓ!5°d·m±mÀEÓ6JÈ4Ï=É=ÐY^ÓK_Ó`ˆØ�‰�Q�r   c                 ó  — | j                  dt        j                  | j                  |«      «      z   dz   t        j                  | j                  |«      «      z   dz   t        j                  | j                  |«      «      z   «      S )Nz((( z ))) z /// )rº  r“   r”   ra   )ra  r!  r#  r"  s       r   r  zMerger.makeConflictedCellK  sÂ   € à�|‰| ¬+×*BÑ*BÀ4Ç=Á=ÐQVÓCWÓ*XÑ!XÐ\cÑ cÔgr×gÑgð  AE÷  ANñ  ANð  OTó  AUó  hVñ   Vð  Zañ  aô  ep÷  e}ñ  e}ð  ~B÷  ~Kñ  ~Kð  LQó  ~Ró  eSñ  Só  Uð  	Ur   N)r(   r)   r*   r?   r@   rA   rB   râ  r   r  r  r  rõ  r  r  rã  r  r+   r   r   rg  rg  ¾  s_   „ Ø€Nð T€Iò U€JÚw€KØ'Ð(€Kòò ò<5ò2ò@òD#òð
 ñUó ñUr   rg  c                   óL   — e Zd Zd ZdZg d¢Zed„ «       Zed„ «       Zed„ «       Z	y)ÚMoverr+   )Ú	moveUnitsrn  ÚmoveWithoutExtrasc                 ó8  — t        «       }t        «       }t        | «      }d}d}t        «       }t        «       }d}|}	||	k  r³|}
|dz   }|
dk\  r|
t        | «      k  r| |
   nd }|j                  dk\  r}|j                  dk\  rn||j                  k  r|j                  }||j                  k  r|j                  }|j                  |j                  |
«       |j                  |j                  |
«       ||	k  rŒ³d }d}|dz   }	||	k  r<|}
|dz   }|j                  j                  |
d «      }|�|j                  |«       ||	k  rŒ<d}|dz   }	||	k  r<|}
|dz   }|j                  j                  |
d «      }|�|j                  |«       ||	k  rŒ<t        j                  ||«      S )Nro   r   r{   )r�   rª   rp   r    r¡   r|   rˆ   r‰   r‚   r*  r,  )r
  ÚisrcÚidestr¬  ÚltopÚrtopÚin_srcÚin_destrÈ   rÉ   rÀ  rƒ   r;   s                r   r+  zMover.moveUnitsW  s•  € ä‹vˆÜ“ˆÜ�e“*ˆØˆØˆÜÓ!ˆÜ Ó"ˆØˆØˆØ�CŠxØˆAØ�q‘&ˆBØ ! Q¢¨1¬s°5«zª>�E˜!’H¸tˆDØ—‘˜1’ D§F¡F¨a¢KØ˜4Ÿ6™6’MØŸ6™6�DØ˜4Ÿ6™6’MØŸ6™6�DØ—
‘
˜4Ÿ6™6 !Ô$Ø—‘˜DŸF™F 1Ô%ð �C‹xð ˆØˆØ�a‰xˆØ�CŠxØˆAØ�q‘&ˆBØ—‘—‘˜Q˜tÓ$ˆAØ�Ø—‘˜A”ð �C‹xð ˆØ�a‰xˆØ�CŠxØˆAØ�q‘&ˆBØ—	‘	—‘˜a Ó%ˆAØ�Ø—‘˜Q”ð �C‹xô ×&Ñ& t¨EÓ2Ð2r   c                 óê  — t        | «      }t        |«      }t        «       }t        «       }d}|}||k  r7|}|dz   }|j                  |dk\  r|t        | «      k  r| |   nd |«       ||k  rŒ7d}|}||k  r7|}|dz   }|j                  |dk\  r|t        |«      k  r||   nd |«       ||k  rŒ7t        «       }	t        «       }
d }d}|}||k  rF|}|dz   }|dk\  r|t        | «      k  r| |   nd }||j                  v r|	j                  |«       ||k  rŒFd}|}||k  rF|}|dz   }|dk\  r|t        |«      k  r||   nd }||j                  v r|
j                  |«       ||k  rŒFt        j                  |	|
«      S rW  )rª   rp   r|   r�   rˆ   r‚   r*  r,  )r.  r/  r¬  Úlen2r2  r3  rÈ   rÉ   rÀ  r“  Údestr;   s               r   rn  z
Mover.move€  sœ  € ä�d“)ˆÜ�5‹zˆÜÓ!ˆÜ Ó"ˆØˆØˆØ�CŠxØˆAØ�q‘&ˆBØ�J‰J 1¨¢6¨a´#°d³)ªm˜˜QšÀÀqÔIð �C‹xð ˆØˆØ�CŠxØˆAØ�q‘&ˆBØ�K‰K Q¨!¢V°´C¸³J²˜˜qšÀDÈ!ÔLð �C‹xô ‹fˆÜ‹vˆØˆØˆØˆØ�CŠxØˆAØ�q‘&ˆBØ šF q¬3¨t«9¢}��a’¸$ˆAØ�W—Y‘Y‘Ø—
‘
˜1”ð �C‹xð ˆØˆØ�CŠxØˆAØ�q‘&ˆBØ !šV¨¬C°«Jª��q’¸DˆAØ�V—X‘X‘Ø—‘˜A”ð �C‹xô ×&Ñ& s¨4Ó0Ð0r   c                 óœ  ‡— t        | «      t        |«      k7  ry t        | «      dk  rg S t        | «      }t        «       }t        «       Št        «       }t        «       }d}|}||k  r7|}|dz   }|j                  |dk\  r|t        | «      k  r| |   nd |«       ||k  rŒ7d}	d}
d}d }d}d }||k  r‹|dk\  r|t        |«      k  r||   nd }|j                  j	                  |d «      }||
dz   k7  r)|}d}	|j                  ||«       |j                  ||«       n|	dz   }	‰j                  ||	«       |}
|dz   }||k  rŒ‹t        «       }‰j                  «       }|j                  «       r2|j                  «       }|j                  |«       |j                  «       rŒ2ˆfd„}|j                  t        j                  |«      ¬«       t        «       }t        |«      dkD  �rtt        |«      dk(  rd n|j                  d«      }t        |«      }|j                  j	                  |d «      }|j                  j	                  |d «      }|dz
  }|dk\  rö|dk\  r|t        |«      k  r||   nd }|j                  j	                  |d «      }||k  }|j                  j	                  |d «      |k  }||k7  rŒ‰j                  j	                  |d «      }	d}|	}||k  r;|}|dz   }|j                  |dk\  r|t        | «      k  r| |   nd «       |dz   }||k  rŒ;|}|dk  rt        |«      |z   }|dk  rd}|||dz    }|||dz   …= |dz
  }|dk\  rŒöt        |«      dkD  r�Œt|S )Nr{   r   rœ   ro   c                 óŽ   •— ‰j                   j                  |d «      ‰j                   j                  | d «      z
  }|dk(  r| |z
  }|S rm   ©rˆ   r‰   )r}   r~   r³  Úblk_lens      €r   r³   z,Mover.moveWithoutExtras.<locals>._hx_local_2Ð  s@   ø€ Ø—I‘I—M‘M ! DÓ)¨G¯I©I¯M©M¸!¸DÓ,AÑAˆDØ˜’	Ø˜A™�ØˆKr   r¶   )rª   rp   r|   rˆ   r‰   r�   r¸   r¹   rº   r‚   r¼   r½   r¾   r^  )r“  r6  r¬  r2  Úblk_src_locÚblk_dest_locrÈ   rÉ   rÀ  r,  Ú	in_cursorÚ
out_cursorrº   Úblkr;   ÚblksrÃ   rÄ   r³   ÚmovedÚblenÚref_src_locÚref_dest_locÚblkiÚblki_src_locÚto_left_srcÚto_left_destr&  ri  rj  r:  s                                 @r   r,  zMover.moveWithoutExtras§  sb  ø€ ä�‹Hœ˜D›	Ò!ØÜ�‹H˜ŠMØˆIÜ�c“(ˆÜÓ!ˆÜ Ó"ˆÜ$Ó&ˆÜ%Ó'ˆØˆØˆØ�CŠxØˆAØ�q‘&ˆBØ�J‰J ! q¢&¨Q´°S³ª\˜˜Aš¸tÀQÔGð �C‹xð ˆØˆ	Øˆ
ØˆØˆØˆØ˜GÒ#Ø%/°1¢_¸ÄcÈ$ÃiÒ9O��jÒ!ÐUYˆAØ—8‘8—<‘<  $Ó'ˆDØ˜) a™-Ò)Ø�Ø�Ø—‘  DÔ)Ø× Ñ   ZÕ0à˜1‘f�Ø�K‰K˜˜BÔØˆIØ$ q™.ˆJð ˜GÓ#ô ‹vˆØ�L‰L‹NˆØ�i‰iŒkØ—‘“ˆBØ�K‰K˜ŒOð �i‰i�kô	ð
 	�	‰	Ô+×6Ñ6°{ÓCˆ	ÔDÜ“ˆÜ�4‹y˜1‹}Ü  ›Y¨!š^‘4°4·8±8¸A³;ˆCÜ�t“9ˆDØ%Ÿ-™-×+Ñ+¨C°Ó5ˆKØ'Ÿ>™>×-Ñ-¨c°$Ó7ˆLØ˜‘ˆAØ˜’6Ø#$¨¢6¨a´#°d³)ªm˜˜QšÀ�Ø*Ÿ}™}×0Ñ0°°dÓ;�Ø+¨kÑ9�Ø ,§¡× 2Ñ 2°4¸Ó =ÀÑ L�Ø <Ò/Ø Ÿ™Ÿ™ t¨DÓ1�BØ�BØ�CØ š8Ø˜Ø  1™f˜ØŸ™¸<È1Ò;LÐQ]Ô`cÐdgÓ`hÒQh c¨,Ò&7ÐnrÔtØ(4°qÑ(8˜ð	  ›8ð
 �CØ˜ašÜ" 4›y¨3™˜Ø˜ašØ˜Ø˜s C¨!¡GÐ-�CØ˜S #¨¡'˜]Ð+Ø˜‘U�ð+ ˜“6ô �4‹y˜1Œ}ð8 ˆr   N)
r(   r)   r*   r?   r@   râ  rã  r+  rn  r,  r+   r   r   r*  r*  R  sO   „ Ø€NØ€IÚ<€Kàñ&3ó ð&3ðP ñ$1ó ð$1ðL ñKó ñKr   r*  c                   óH   — e Zd Zd ZdZg d¢Zg d¢Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zy	)
rò  )r-  ra  r*  Ú
header_row)Ú	renderRowrì  ÚaddRowÚaddHeaderRowr  c                 óX   — d | _         || _        |j                  «       | _        d| _        y rm   )r*  r-  r  ra  rJ  )r   r-  s     r   r   zNdjson.__init__ý  s%   € ØˆŒØˆŒØ—O‘OÓ%ˆŒ	Øˆ�r   c                 ó   — t        «       }d}| j                  j                  «       }||k  r�|}|dz   }| j                  j	                  | j                  j                  || j                  «      «      }|dk(  r| j                  dk(  rd}| j                  j                  ||«      }||j                  |<   ||k  rŒ�t        j                  |d d «      S )Nr   r{   r\  )
r´  r-  r
  ra  ra   r  rJ  rˆ   rô  rõ  )r   r¡   r…  rÈ   rÉ   r.  r·   ræ   s           r   rK  zNdjson.renderRow  s¹   € ÜÓ!ˆØˆØ�h‰h× Ñ Ó"ˆØ�CŠxØˆAØ�q‘&ˆBØ—)‘)×$Ñ$ T§X¡X×%5Ñ%5°a¸¿¹Ó%HÓIˆCØ�a’˜tŸ™°!Ò3Ø�Ø—H‘H×$Ñ$ Q qÓ)ˆEØˆC�E‰E�#‰Jð �C‹xô '×,Ñ,¨S°°dÓ;Ð;r   c                 ó¸  — d}d}| j                   j                  «       dk(  r|S | j                   j                  «       dk(  r|S | j                   j                  dd«      dk(  rd}|| _        | j                  dz   }| j                   j                  «       }||k  rA|}|dz   }|€dn|t
        j                  | j                  |«      «      z   }|€dn|dz   }||k  rŒA|S )Nr�   r   r\  r{   r�   rÉ  )r-  r  r
  r  rJ  r“   r”   rK  )r   r   rG  rÈ   rÉ   r¡   s         r   rì  zNdjson.render  sß   € ØˆØˆØ�H‰H×ÑÓ! QÒ&ØˆJØ�H‰H×ÑÓ  AÒ%ØˆJØ�H‰H×Ñ˜Q˜qÓ! UÒ*ØˆFØ ˆŒØ�o‰o Ñ!ˆØ�h‰h×!Ñ!Ó#ˆØ�CŠxØˆAØ�q‘&ˆBØ!˜k‘F¨s´k×6NÑ6NÈtÏ~É~Ð^_ÓO`Ó6aÑaˆCØ!˜k‘F¨s°dÑ:ˆCð	 �C‹xð
 ˆ
r   c           
      óî  — t        j                  |fi t        j                  t	        dt
        j                  i«      «      ¤Ž}| j                  €t        «       | _        | j                  j                  «       }| j                  j                  «       }d}d}t        j                  |«      }|t        |«      k  rf|dk\  r|t        |«      k  r||   nd }	|dz   }|	| j                  j                  vr || j                  j                  |	<   |dz   }d}|t        |«      k  rŒf||k\  r|dz   }d}|r| j                  j!                  ||«       d}t        j                  |«      }|t        |«      k  rˆ|dk\  r|t        |«      k  r||   nd }	|dz   }t"        j%                  ||	«      }
| j                  j                  j'                  |	d «      }| j                  j)                  |||
«       |t        |«      k  rŒ‡y y )Nr  Fr   r{   T)r   r!  r"  r#  r	   r$  r%  r*  r´  r-  r
  r  rÊ  r   rª   rˆ   r  r  r&   r‰   r  )r   r¡   r   rÅ  r:  rˆ   r  rÈ   rÉ   r!   r;   r.  s               r   rL  zNdjson.addRow$  sÉ  € Ü×$Ñ$ Sñ  FÔ+F×+LÑ+LÌ^Ð]jÔlv÷  mBñ  mBð  ]Có  NDó  ,Eñ  FˆØ�L‰LÐ Ü,Ó.ˆDŒLØ�H‰H×ÑÓ ˆØ�H‰H×ÑÓ!ˆØˆØˆÜ× Ñ  Ó&ˆØ”C˜“HŠ}Ø! Qšw¨2´°C³ª=�C˜’G¸dˆDØ�q‘&ˆBØ˜TŸ\™\Ÿ^™^Ñ+Ø'(�—‘—‘˜tÑ$Ø˜‘U�Ø�ð ”C˜“H‹}ð �ŠFØ�Q‘ˆAØˆFÙØ�H‰H�O‰O˜A˜aÔ ØˆÜ× Ñ  Ó&ˆØ”C˜“HŠ}Ø! Qšw¨2´°C³ª=�C˜’G¸dˆDØ�q‘&ˆBÜ—‘˜d 4Ó(ˆAØ—‘—‘×"Ñ" 4¨Ó-ˆAØ�H‰H×Ñ˜Q˜q Ô#ð ”C˜“H�}r   c                 óT  — | j                   j                  «       }|}|j                  «       r||j                  «       }| j                  j                  | j                   j                  j                  |d «      || j                  j                  |«      «       |j                  «       rŒ{y y r   )
r*  r¸   r¹   rº   r-  r  rˆ   r‰   ra  rº  )r   r¡   rê  ÚnÚn1s        r   rM  zNdjson.addHeaderRowB  sr   € Ø—‘×!Ñ!Ó#ˆØˆØ�i‰iŒkØ—‘“ˆBØ�H‰H×Ñ˜TŸ\™\Ÿ^™^×/Ñ/°°4Ó8¸¸4¿9¹9×;LÑ;LÈRÓ;PÔQð �i‰i�kr   c                 ó„  — d | _         |j                  d«      }t        |«      }|dk(  r| j                  j	                  «        y t
        j                  ||dz
  «      dk(  r|dz
  }d}|}||k  rB|}|dz   }||z
  dz
  }| j                  |dz   |dk\  r|t        |«      k  r||   nd «       ||k  rŒB| j                  d«       y )NrÉ  r   r{   r�   )	r*  rÓ  rª   r-  r  r¿   rÀ   rL  rM  )r   r   r	  rˆ   rÈ   rÉ   rÀ  r@  s           r   r  zNdjson.parseI  sÆ   € ØˆŒØ�y‰y˜‹ˆÜ�‹IˆØ�ŠFØ�H‰H�N‰NÔØÜ%×*Ñ*¨4°!°a±%Ó9¸RÒ?Ø�Q‘ˆAØˆØˆØ�CŠxØˆAØ�q‘&ˆBØ�q‘5˜A‘+ˆBØ�K‰K˜˜a™¨b°Aªg¸"¼sÀ4»yº. $ r¢(ÈdÔTð	 �C‹xð
 	×Ñ˜!Õr   N)r(   r)   r*   r?   r@   rA   rB   r   rK  rì  rL  rM  r  r+   r   r   rò  rò  ÷  s5   „ Ø€NØ8€IÚ9€JÚL€Kòò<òò&$ò<Rór   rò  c                   ód   — e Zd Zd ZdZdgZg d¢ZegZd„ Z	d„ Z
d„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zy)ÚNestedCellBuilderr¶  ra  )	rÚ   rÛ   rÜ   rÝ   rÞ   rß   rà   Ú	negToNullrá   c                 ó   — d | _         y r   r¶  r   s    r   r   zNestedCellBuilder.__init__e  r¸  r   c                  ó   — yr|  r+   r   s    r   rÚ   zNestedCellBuilder.needSeparatorh  r}  r   c                  ó   — y r   r+   r³  s     r   rÛ   zNestedCellBuilder.setSeparatork  ry   r   c                  ó   — y r   r+   r³  s     r   rÜ   z&NestedCellBuilder.setConflictSeparatorn  ry   r   c                 ó   — || _         y r   r¶  r·  s     r   rÝ   zNestedCellBuilder.setViewq  r¸  r   c                 ó®   — | j                   j                  «       }| j                   j                  |d|«       | j                   j                  |d|«       |S )Nrz  r|  ©ra  ÚmakeHashÚhashSet)r   rÑ  r]  rˆ   s       r   rÞ   zNestedCellBuilder.updatet  sE   € Ø�I‰I×ÑÓ ˆØ�	‰	×Ñ˜!˜H UÔ+Ø�	‰	×Ñ˜!˜G FÔ+Øˆr   c                 óè   — | j                   j                  «       }| j                   j                  |d|«       | j                   j                  |d|«       | j                   j                  |d|«       |S )Nrz  r{  ry  r_  )r   rM  rÑ  r]  rˆ   s        r   rß   zNestedCellBuilder.conflictz  s[   € Ø�I‰I×ÑÓ ˆØ�	‰	×Ñ˜!˜H VÔ,Ø�	‰	×Ñ˜!˜F 5Ô)Ø�	‰	×Ñ˜!˜H VÔ,Øˆr   c                 ó8   — | j                   j                  |«      S r   r½  r¾  s     r   rà   zNestedCellBuilder.marker�  rÀ  r   c                 ó   — |dk  ry |S rm   r+   ©r   r+  s     r   rX  zNestedCellBuilder.negToNull„  s   € Ø�ŠEØØˆr   c                 óx  — | j                   j                  «       }|j                  dk\  r¤| j                   j                  |d| j	                  |j                  «      «       | j                   j                  |d| j	                  |j
                  «      «       | j                   j                  |d| j	                  |j                  «      «       |S | j                   j                  |d| j	                  |j
                  «      «       | j                   j                  |d| j	                  |j                  «      «       |S )Nro   rz  r{  ry  r|  )ra  r`  r¢   ra  rX  r    r¡   )r   rƒ   rÃ  rˆ   s       r   rá   zNestedCellBuilder.links‰  sØ   € Ø�I‰I×ÑÓ ˆØ�F‰F�bŠLØ�I‰I×Ñ˜a ¨¯©¸¿¹Ó)?Ô@Ø�I‰I×Ñ˜a  t§~¡~°d·f±fÓ'=Ô>Ø�I‰I×Ñ˜a ¨¯©¸¿¹Ó)?Ô@ØˆHØ�	‰	×Ñ˜!˜H T§^¡^°D·F±FÓ%;Ô<Ø�	‰	×Ñ˜!˜G D§N¡N°4·6±6Ó$:Ô;Øˆr   N)r(   r)   r*   r?   r@   rA   rB   rØ   rK  r   rÚ   rÛ   rÜ   rÝ   rÞ   rß   rà   rX  rá   r+   r   r   rW  rW  ^  sT   „ Ø(€NØ€IØ�€Jò M€KØ!�]€Nòòòòòòòò(òó
	r   rW  c                   óJ   — e Zd Zd ZdZddgZg d¢Zd„ Zdd„Zd„ Z	d	„ Z
d
„ Zd„ Zy)r�   )r¬   Úignore_parentr¬   rh  )rž   r  rÁ   ra   rÂ   c                 ó0   — t        «       | _        d| _        y r|  )r�   r¬   rh  r   s    r   r   zOrdering.__init__�  s   € Ü“VˆŒ
Ø"ˆÕr   Nc                 ó|   — |€d}| j                   rd}| j                  }t        |||«      }|j                  |«       y r›   )rh  r¬   r»   r‚   )r   r    r¡   r¢   r„   r+  s         r   rž   zOrdering.add¡  s;   € ØˆIØˆAØ×ÒØˆAØ—
‘
ˆÜ��1�Q‹KˆØ�‰�Q�r   c                 ó   — | j                   S r   ©r¬   r   s    r   r  zOrdering.getListª  ó   € Ø�z‰zÐr   c                 ó   — || _         y r   rl  )r   r  s     r   rÁ   zOrdering.setList­  s	   € Øˆ�
r   c                 ó  — d}d}t        | j                  «      }||k  rc|}|dz   }|dkD  r	|€dn|dz   }|€dn|t        j                  |dk\  r'|t        | j                  «      k  r| j                  |   nd «      z   }||k  rŒc|S )Nr�   r   r{   r�   r6   )rª   r¬   r•   r–   ©r   r   rÈ   rÉ   rÀ  s        r   ra   zOrdering.toString°  s—   € ØˆØˆÜ�$—*‘*‹oˆØ�CŠxØˆAØ�q‘&ˆBØ�A’Ø"% +™°3¸$Ñ>�Ø!˜k‘F¨s´c·j±jÐSTÐXYÒSYÐ^_ÔbeÐfj×fpÑfpÓbqÒ^qÀ$Ç*Á*ÈQÂ-Ðw{Ó6}Ñ}ˆCð �C‹xð ˆ
r   c                 ó   — d| _         y r™   )rh  r   s    r   rÂ   zOrdering.ignoreParent¼  rH  r   r   )r(   r)   r*   r?   r@   rA   rB   r   rž   r  rÁ   ra   rÂ   r+   r   r   r�   r�   —  s9   „ Ø€NØ*€IØ˜?Ð+€JÚK€Kò#óòòò
ó"r   r�   c                   ó"   — e Zd Zd ZdZg d¢Zd„ Zy)r  )rú   r!   rE  c                 ó.   — d | _         d | _        d | _        y r   )rE  r!   rú   r   s    r   r   zPropertyChange.__init__Ç  s   € ØˆŒØˆŒ	Øˆ�r   Nrý   r+   r   r   r  r  Â  s   „ Ø%€NØ+€IÚ,€Jór   r  c                   óL   — e Zd Zd ZdZg d¢Zed„ «       Zed„ «       Zed„ «       Z	y)r  r+   )r&   Ú
isFunctionÚcomparec                 ó.   — t         j                  | |«      S r   )rÊ  r&   ©rÊ   r&   s     r   r&   zReflect.fieldÔ  s   € ä× Ñ   5Ó)Ð)r   c                 ó„   — t        j                  | «      s+t        j                  | «      st        j	                  | d«      S y)NÚ	func_codeT)Úpython_lib_InspectÚ
isfunctionÚismethodrÊ  ÚhasField)re  s    r   ru  zReflect.isFunctionØ  s5   € ä$×/Ñ/°Ô2Ô6H×6QÑ6QÐRSÔ6TÜ×'Ñ'¨¨+Ó6Ð6àr   c                 óT   — | €|€y| €y|€yt         j                  | |«      ry| |kD  ryyr®   )r“   rk  r   s     r   rv  zReflect.compareß  s<   € àˆY˜a˜iØØˆIØØˆiØÜ�^‰^˜A˜aÔ ØØ�!ŠeØàr   N)
r(   r)   r*   r?   r@   râ  rã  r&   ru  rv  r+   r   r   r  r  Ï  sK   „ Ø€NØ€IÚ4€Kàñ*ó ð*ð ñó ðð ñó ñr   r  c                   ó6   — e Zd Zd ZdZg d¢ZddgZd„ Zd„ Zd„ Z	y)r=  )r?  rE  Úconflicting_valÚconflicting_parent_valrí   Úis_keyr>  ÚshowMapra   c                 óf   — d | _         d | _        d | _        d | _        d | _        d | _        d | _        y r   )r>  rƒ  rí   r‚  r�  rE  r?  r   s    r   r   zRowChange.__init__ö  s5   € ØˆŒØˆŒØˆŒØ&*ˆÔ#Ø#ˆÔØˆŒØˆ�	r   c                 óv  — |€yd}|j                  «       }|j                  «       r„|j                  «       }|dk7  r	|€dn|dz   }|j                  j	                  |d «      }|€dn|t
        j                  |€dn|dz   t        j                  |«      z   «      z   }|j                  «       rŒ„d|€dz   dz   S |z   dz   S )Nz{}r�   r�   r6   r÷  ú{ ú })	r¸   r¹   rº   rˆ   r‰   r“   r”   r•   r–   )r   Úmr   rÃ   rÄ   r;   s         r   r„  zRowChange.showMapÿ  sÞ   € ØˆIØØˆØ�F‰F‹HˆØ�i‰iŒkØ—‘“ˆBØ�r’	Ø"% +™°3¸$Ñ>�Ø—‘—‘˜˜4Ó ˆAØ!˜k‘F¨s´k×6NÑ6NÐ]_Ð]gÑSYÐmoÐsvÑRvÔz}÷  {Eñ  {Eð  FGó  {Hñ  RHó  7Kñ  KˆCð �i‰i�kð  3 ;˜Ñ8¸DÑ@ÐA°CÑ8¸DÑ@ÐAr   c                 ó  — t         j                  | j                  «      dz   t         j                  | j                  | j                  «      «      z   dz   t         j                  | j                  | j
                  «      «      z   S )Nr1  ú : )r“   r”   r>  r„  r?  rE  r   s    r   ra   zRowChange.toString  s›   € Ü×+Ñ+¨D¯K©KÓ8¸3Ñ>Ä+×BZÑBZÐ[_×[gÑ[gÐhl×hqÑhqÓ[rÓBsÑsÐw|Ñ|ô  AL÷  AYñ  AYð  Z^÷  Zfñ  Zfð  gk÷  goñ  goó  Zpó  Aqñ  qð  	rr   N)
r(   r)   r*   r?   r@   rA   rB   r   r„  ra   r+   r   r   r=  r=  ð  s,   „ Ø €NØn€IÚo€JØ˜jÐ)€KòòBórr   r=  c                   ó   — e Zd Zd ZdZddgZy)Ú	RowStreamr+   ÚfetchColumnsÚfetchRowNrâ   r+   r   r   r�  r�    s   „ Ø €NØ€IØ! :Ð.�Kr   r�  c                   ó    — e Zd Zd ZdZg d¢Zg d¢ZegZdd„Z	d„ Z
d„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)r  )	r  Úname2rowÚname2colÚhas_propertiesÚmetadatar¸   Ú
row_activeÚrow_change_cacheÚmay_be_nested)ÚstoreRowChangesÚ	rowChangeÚ	colChangerA  r…  rv  r  ÚaddMetaDatarX  r¸  rZ  r\  r@  r·  r¹  rs  r€  rº  Nc                 ó&  — |€d}|€d}d | _         d | _        d | _        d | _        d | _        d | _        d | _        d | _        || _        | j                  «        | j                  «        || _        || _         d | _        d | _        d| _        d | _        y r$   )r—  r–  r•  r¸   r”  r“  r’  r‘  r  r™  rš  )r   r  r“  r—  s       r   r   zSimpleMeta.__init__   s›   € ØÐ"Ø!ˆNØÐ!Ø!ˆMØ!ˆÔØ $ˆÔØˆŒØˆŒ	ØˆŒØ"ˆÔØˆŒØˆŒØˆŒØ�‰ÔØ�‰ÔØ,ˆÔØ*ˆÔØˆŒØˆŒ	ØˆŒØ $ˆÕr   c                 ó    — || _         d| _        y r™   )r–  r•  )r   Úchangess     r   r˜  zSimpleMeta.storeRowChanges7  s   € Ø 'ˆÔØˆ�r   c                 ó   — d | _         y r   )r‘  r   s    r   r™  zSimpleMeta.rowChange;  ó	   € Øˆ�r   c                 ó   — d | _         y r   )r’  r   s    r   rš  zSimpleMeta.colChange>  r   r   c                 óÀ  — | j                   j                  «       dk  ry| j                  €vt        «       | _        | j                   j	                  «       }d}|}||k  rD|}|dz   }| j                  }| j                   j                  |d«      }||j                  |<   ||k  rŒD|| j                  j                  vry| j                  j                  j                  |d «      S rþ  )r  r  r’  r´  r
  r  rˆ   r‰   )r   r·   r:  rÈ   rÉ   r.  rD  r6  s           r   rA  zSimpleMeta.colA  sÂ   € Ø�F‰F×ÑÓ !Ò#ØØ�M‰MÐ!Ü-Ó/ˆDŒMØ—‘× Ñ Ó"ˆAØˆBØˆCØ˜’8Ø�Ø˜1‘f�ØŸ™�Ø—v‘v—~‘~ a¨Ó*�Ø !�—‘˜‘ð ˜“8ð ˜Ÿ™Ÿ™Ñ'ØØ�}‰}�‰×"Ñ" 3 tÓ,Ð,r   c                 óÀ  — | j                   j                  «       dk  ry| j                  €vt        «       | _        | j                   j	                  «       }d}|}||k  rD|}|dz   }| j                  }| j                   j                  d|«      }||j                  |<   ||k  rŒD|| j                  j                  vry| j                  j                  j                  |d «      S rþ  )r  r
  r‘  r´  r  r  rˆ   r‰   )r   r·   rˆ   rÈ   rÉ   r¡   rD  r6  s           r   r…  zSimpleMeta.rowS  sÂ   € Ø�F‰F×ÑÓ Ò"ØØ�M‰MÐ!Ü-Ó/ˆDŒMØ—‘×!Ñ!Ó#ˆAØˆBØˆCØ˜’8Ø�Ø˜1‘f�ØŸ™�Ø—v‘v—~‘~ a¨Ó*�Ø !�—‘˜‘ð ˜“8ð ˜Ÿ™Ÿ™Ñ'ØØ�}‰}�‰×"Ñ" 3 tÓ,Ð,r   c                 óÄ  — t        «       }d}| j                  r||j                  d<   |dz   }d}t        |«      }||k  r]|}|dz   }|dk\  r|t        |«      k  r||   nd }|j                  �||j                  |j                  <   |j
                  �|dz   }||k  rŒ]t        «       }d}| j                  j                  «       }||k  rf|}|dz   }d}	| j                  j                  |d«      }
|
|j                  v r|j                  j                  |
d «      }	|j                  |	«       ||k  rŒf| j                  j                  ||«       | j                  rdnd}|}d}t        |«      }||k  r„|}|dz   }|dk\  r|t        |«      k  r||   nd }|j
                  �@|j
                  |j                  k7  r'| j                  j                  |d|j
                  «       |j
                  �|dz   }||k  rŒ„| j                  sy| j                  «        |}d}t        |«      }||k  r¿|}|dz   }|dk\  r|t        |«      k  r||   nd }|j
                  �{d}|j                  }|t        |«      k  r_|dk\  r|t        |«      k  r||   nd }|dz   }| j                  |j
                  |j
                  |j                   «       |t        |«      k  rŒ_|j
                  �|dz   }||k  rŒ¿y)Nr   ru  r{   ro   T)r´  r“  rˆ   rª   rú   r!   r�   r  r
  r  r‰   r‚   r  r  rš  rû   rE  )r   r*  r  rB  rÈ   rÉ   rÀ  rA  r>  Útargetir!   r  r@  r1  r2  Úprops                   r   rv  zSimpleMeta.alterColumnse  sÎ  € Ü"Ó$ˆØˆØ×ÒØ!ˆF�H‰H�S‰MØ˜Q‘YˆEØˆÜ�'‹lˆØ�CŠxØˆAØ�q‘&ˆBØ!" a¢¨A´°G³Ò,<�7˜1’:À$ˆCØ—‘Ð(Ø).�—‘˜Ÿ™Ñ&Ø—‘Ð$Ø ™�ð �C‹xô ‹vˆØˆØ�f‰f×ÑÓ ˆØ�CŠxØˆAØ�q‘&ˆBØˆGØ—6‘6—>‘> ! AÓ&ˆDØ˜Ÿ™Ñ Ø Ÿ(™(Ÿ,™, t¨DÓ1�Ø�K‰K˜Ô ð �C‹xð 	�‰×$Ñ$ T¨%Ô0Ø×*Ò*‘°ˆØˆØˆÜ�'‹lˆØ�CŠxØˆAØ�q‘&ˆBØ!" a¢¨A´°G³Ò,<�7˜1’:À$ˆCØ—‘Ð$Ø—H‘H §¡Ò,Ø—F‘F—N‘N 2 a¨¯©Ô1Ø—‘Ð$Ø˜1‘f�ð �C‹xð ×#Ò#ØØ�‰ÔØˆØˆÜ�'‹lˆØ�CŠxØˆAØ�q‘&ˆBØ!" a¢¨A´°G³Ò,<�7˜1’:À$ˆCØ—‘Ð$Ø�Ø—i‘i�ØœS ›X’~Ø(+¨qª°S¼3¸s»8²^˜C šHÈ�DØ ™7�CØ—L‘L §¡¨$¯)©)°D·H±HÔ=ð œS ›X“~ð —‘Ð$Ø˜1‘f�ð �C‹xð r   c                 óš   — | j                  |«      }|dk(  ry| j                  |«      }|dk(  ry| j                  j                  |||«       y)Nro   FT)r…  rA  r  r  )r   r.  r¡   rE  ÚriÚcis         r   r  zSimpleMeta.setCell£  sG   € Ø�X‰X�a‹[ˆØ�"ŠHØØ�X‰X�a‹[ˆØ�"ŠHØØ�‰�‰�r˜"˜SÔ!Ør   c                 ón  — | j                   €t        «       | _         t        «       | _        || j                   j                  vr%| j                   }t        «       }||j                  |<   | j                   j                  j	                  |d «      }||j                  |<   d| j                  j                  |<   y r™   )r”  r´  r¸   rˆ   r‰   )r   r³  ÚpropertyrE  rD  ræ   rû   s          r   r›  zSimpleMeta.addMetaData­  sˆ   € Ø�M‰MÐ!Ü-Ó/ˆDŒMÜ)Ó+ˆDŒIØ˜4Ÿ=™=Ÿ?™?Ñ*Ø—M‘MˆEÜ%Ó'ˆEØ#ˆE�G‰G�F‰OØ—‘—‘×#Ñ# F¨4Ó0ˆØˆ�‰�ÑØ $ˆ�	‰	�‰�HÒr   c           
      óö  — | j                   r| j                  €| j                  S | j                  €y | j                  j                  «       }t	        «       }| j
                  j                  «       }|j                  «       r2|j                  «       }|j                  |«       |j                  «       rŒ2|j                  t        j                  t        j                  «      ¬«       t        |dz   t        |«      dz   «      }|j!                  ddd«       d}|}||k  �r|}|dz   }| j                  j#                  |d«      }	|j!                  d|z   d|	«       |	| j                  j$                  vrŒX| j                  j$                  j'                  |	d «      }
d}t        |«      }||k  r~|}|dz   }|dk\  r|t        |«      k  r||   nd |
j$                  v rK|j!                  d|z   |dz   |
j$                  j'                  |dk\  r|t        |«      k  r||   nd d «      «       ||k  rŒ~||k  r�Œd}t        |«      }||k  r;|}|dz   }|j!                  d|dz   |dk\  r|t        |«      k  r||   nd «       ||k  rŒ;|S )Nr¶   r{   r   ru  )r“  r”  r  r
  r�   r¸   r¹   rº   r‚   r¼   r½   r¾   r  rv  r1  rª   r  r  rˆ   r‰   )r   r:  rû   rÃ   rÄ   ÚmtrÈ   rÉ   r+  r!   Úvalsr1  r2  rÀ  r  s                  r   rX  zSimpleMeta.asTable¹  s4  € Ø×Ò d§m¡mÐ&;Ø—6‘6ˆMØ�M‰MÐ!ØØ�F‰F×ÑÓˆÜ“ˆØ�I‰I�N‰NÓˆØ�i‰iŒkØ—‘“ˆBØ�L‰L˜Ôð �i‰i�kð 	�
‰
Ô,×7Ñ7¼¿¹ÓHˆ
ÔIÜ˜!˜a™%¤# e£*¨q¡.Ó2ˆØ
�
‰
�1�Q�sÔØˆØˆØ�C‹xØˆAØ�q‘&ˆBØ—6‘6—>‘> ! AÓ&ˆDØ�J‰J˜˜A™˜q Ô&Ø˜TŸ]™]Ÿ_™_Ñ,ØØ—=‘=—?‘?×&Ñ& t¨DÓ1ˆDØˆCÜ�e“*ˆCØ˜’9Ø�Ø˜Q‘w�Ø!" a¢¨A´°E³
ªN�U˜1’XÀÈÏÉÑOØ—J‘J  A¡¨¨A©¨t¯v©v¯z©zÀqÈAÂvÐRSÔVYÐZ_ÓV`ÒR`¸5Àº8ÐfjÐlpÓ/qÔrð	 ˜“9ð �CŒxð ˆÜ�%‹jˆØ�CŠxØˆAØ�q‘&ˆBØ�J‰J�q˜!˜a™%¨a°1ªf¸¼SÀ»Zº %¨¢(ÈTÔSð �C‹xð ˆ	r   c                 ól  — t        |«      }| j                  ��›t        «       |_        | j                  j                  «       }|j	                  «       r:|j                  «       }d|j                  j                  |<   |j	                  «       rŒ:t        «       |_        | j                  j                  «       }|j	                  «       rï|j                  «       }|| j                  j                  vrŒ9| j                  j                  j                  |d «      }t        «       }|j                  «       }|j	                  «       rL|j                  «       }|j                  j                  |d «      }	|	|j                  |<   |j	                  «       rŒL||j                  j                  |<   |j	                  «       rŒï|S r™   )r  r”  r´  r¸   r¹   rº   rˆ   r‰   )
r   rÅ  r—   rÃ   rÄ   r®  Únvalsr¢   Úp1ræ   s
             r   r¸  zSimpleMeta.cloneMetaà  s;  € Ü˜EÓ"ˆØ�M‰MÑ%Ü+Ó-ˆFŒKØ—	‘	—‘Ó ˆAØ—)‘)”+Ø—V‘V“X�Ø$(�—‘—‘˜bÑ!ð —)‘)•+ô 0Ó1ˆFŒOØ—‘×"Ñ"Ó$ˆAØ—)‘)”+Ø—V‘V“X�Ø˜tŸ}™}Ÿ™Ñ.ØØ—}‘}—‘×*Ñ*¨2¨dÓ3�Ü)Ó+�Ø—I‘I“K�Ø—i‘i”kØŸ™›�BØ ŸF™FŸJ™J r¨$Ó/�EØ"'�E—G‘G˜B‘Kð —i‘i•kð ).�—‘×!Ñ! "Ñ%ð —)‘)•+ð ˆr   c                  ó   — yr™   r+   r   s    r   rZ  zSimpleMeta.useForColumnChangesø  rE  r   c                 ó   — | j                   S r   )r•  r   s    r   r\  zSimpleMeta.useForRowChangesû  ó   € Ø�‰Ðr   c                 ó>   — | j                   }|j                  |«       yr|  )r–  r‚   )r   rA  r„   s      r   r@  zSimpleMeta.changeRowþ  s   € Ø×%Ñ%ˆØ�‰�RÔØr   c                  ó   — yr|  r+   r°  s     r   r·  zSimpleMeta.applyFlags  r}  r   c                 ó,   — t        | j                  «      S r   )r÷  r  r   s    r   r¹  zSimpleMeta.getRowStream  s   € Ü˜4Ÿ6™6Ó"Ð"r   c                 ó   — | j                   S r   )r—  r   s    r   rs  zSimpleMeta.isNested	  r†   r   c                  ó   — yr|  r+   r   s    r   r€  zSimpleMeta.isSql  r}  r   c                  ó   — y r   r+   r   s    r   rº  zSimpleMeta.getName  rE  r   r  r   )r(   r)   r*   r?   r@   rA   rB   r¶  rK  r   r˜  r™  rš  rA  r…  rv  r  r›  rX  r¸  rZ  r\  r@  r·  r¹  rs  r€  rº  r+   r   r   r  r    s‡   „ Ø!€Nð G€Iò H€Jò F€KØ�V€Nó%ò.òòò-ò$-ò$<ò|ò
%ò%óNò0òòò
ò#ò"òór   r  c                   óÄ   — e Zd Zd ZdZg d¢Zg d¢ZddgZegZ	d„ Z
d„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zed„ «       Zed„ «       Zy)r1  )rà  r:  rˆ   rS   )r  r
  r  r  r  ra   r  r  r  r  r  r  r	  r  r  r  r¾  r  r2  ÚtableIsSimilarc                 óL   — t        «       | _        || _        || _        d | _        y r   )rp   rà  r:  rˆ   rS   r9  s      r   r   zSimpleTable.__init__  s!   € Ü"Ó$ˆŒ	ØˆŒØˆŒØˆ�	r   c                 ó   — | S r   r+   r   s    r   r  zSimpleTable.getTable#  r%  r   c                 ó   — | j                   S r   rÂ  r   s    r   r
  zSimpleTable.get_width&  r#  r   c                 ó   — | j                   S r   rÄ  r   s    r   r  zSimpleTable.get_height)  r#  r   c                 ón   — | j                   j                  j                  ||| j                  z  z   d «      S r   )rà  rˆ   r‰   r:  r*  s      r   r  zSimpleTable.getCell,  s(   € Ø�y‰y�{‰{�‰  a¨$¯&©&¡jÑ 2°DÓ9Ð9r   c                 ó\   — | j                   j                  ||| j                  z  z   |«       y r   )rà  r|   r:  r-  s       r   r  zSimpleTable.setCell/  s!   € Ø�	‰	�‰�q˜Q §¡™ZÑ)¨1Õ-r   c                 ó,   — t         j                  | «      S r   r0  r   s    r   ra   zSimpleTable.toString2  r3  r   c                 ó   — t        «       S r   rÊ  r   s    r   r  zSimpleTable.getCellView5  rÌ  r   c                  ó   — yr™   r+   r   s    r   r  zSimpleTable.isResizable8  rE  r   c                 ó    — || _         || _        yr™   )r:  rˆ   r9  s      r   r  zSimpleTable.resize;  s   € ØˆŒØˆŒØr   c                 ó"   — t        «       | _        y r   )rp   rà  r   s    r   r  zSimpleTable.clear@  s   € Ü"Ó$ˆ�	r   c                 óÐ  — t        «       }d}t        |«      }||k  r¼|}|dz   }|dk\  r|t        |«      k  r||   nd }|dk7  r�d}| j                  }	||	k  r}|}
|dz   }|| j                  z  |
z   }|| j                  j                  v rF|j                  || j                  z  |
z   | j                  j                  j                  |d «      «       ||	k  rŒ}||k  rŒ¼|| _        || _        y©Nr   r{   ro   T)rp   rª   r:  rà  rˆ   r|   r‰   )r   r>  r?  Údata2rÈ   rÉ   rÀ  r&  r1  r2  r.  rË  s               r   r  zSimpleTable.insertOrDeleteRowsC  sç   € ÜÓ ˆØˆÜ�$‹iˆØ�CŠxØˆAØ�q‘&ˆBØ šF q¬3¨t«9¢}��a’¸$ˆAØ�R’Ø�Ø—f‘f�Ø˜S’yØ�AØ ™7�CØ §¡™J¨!Ñ+�CØ˜tŸy™yŸ{™{Ñ*ØŸ	™	 A¨¯©¡J°!Ñ#3°T·Y±Y·[±[·_±_ÀSÈÓ5NÔOð ˜S“yð �C‹xð ˆŒØˆŒ	Ør   c                 ó¼  — t        «       }d}t        |«      }||k  r²|}|dz   }|dk\  r|t        |«      k  r||   nd }|dk7  r†d}| j                  }	||	k  rs|}
|dz   }|
| j                  z  |z   }|| j                  j                  v r<|j                  |
|z  |z   | j                  j                  j                  |d «      «       ||	k  rŒs||k  rŒ²|| _        || _        yrÉ  )rp   rª   rˆ   r:  rà  r|   r‰   )r   r>  rB  rÊ  rÈ   rÉ   rÀ  r&  r1  r2  r¡   rË  s               r   r  z!SimpleTable.insertOrDeleteColumnsX  sâ   € ÜÓ ˆØˆÜ�$‹iˆØ�CŠxØˆAØ�q‘&ˆBØ šF q¬3¨t«9¢}��a’¸$ˆAØ�R’Ø�Ø—f‘f�Ø˜S’yØ�AØ ™7�CØ §¡™J¨!Ñ+�CØ˜tŸy™yŸ{™{Ñ*ØŸ	™	 A¨¡I°¡?°D·I±I·K±K·O±OÀCÈÓ4MÔNð ˜S“yð �C‹xð ˆŒØˆŒ	Ør   c                 óæ  — | j                   dk(  ry| j                   }|dk\  rd}| j                  «       }|j                  d«      }d}|ryd}| j                  «       }||k  rC|}|dz   }| j	                  || j                   dz
  «      }|j                  ||«      s|�d}n||k  rŒC|r| }	|	j                   }
|
dz
  |	_         |
 |rŒyd}| j                  }|r\| j                  dk(  rnLd}|}||k  r9|}|dz   }| j	                  |dz
  |«      }|j                  ||«      s|�d}n||k  rŒ9|r|dz
  }|rŒ\|| j                  k(  ryt        «       }d}|}||k  r“|}|dz   }d}| j                   }||k  rs|}|dz   }|| j                  z  |z   }|| j                  j                   v r<|j                  ||z  |z   | j                  j                   j                  |d «      «       ||k  rŒs||k  rŒ“|| _        || _        y)Nr   TrÆ  r�   r{   F)rˆ   r  rº  r
  r  rn  r:  rp   rà  r|   r‰   )r   Úh_testra  Úspacerî  rÈ   rÉ   rÀ  r.  rn   r   ÚnwrÊ  r1  r2  r¡   rË  s                    r   r	  zSimpleTable.trimBlankm  s$  € Ø�F‰F�aŠKØØ—‘ˆØ�aŠKØˆFØ×ÑÓ!ˆØ—‘˜RÓ ˆØˆÙØˆBØ—.‘.Ó"ˆCØ˜’8Ø�Ø˜1‘f�Ø—L‘L  D§F¡F¨Q¡JÓ0�ØŸ+™+ a¨Ô.°A°IØ �DØð ˜“8ñ Ø"�Ø)Ÿm™m�Ø!,¨q¡�”Ùò ð ˆØ�V‰VˆÙØ—‘˜!’ØØˆBØˆCØ˜’8Ø�Ø˜1‘f�Ø—L‘L " q¡&¨!Ó,�ØŸ+™+ a¨Ô.°A°IØ �DØð ˜“8ñ Ø˜1‘f�ò ð �$—&‘&ŠLØÜÓ ˆØˆØˆØ�CŠxØˆAØ�q‘&ˆBØˆCØ—&‘&ˆCØ˜’9Ø�Ø˜Q‘w�Ø˜DŸF™F™
 aÑ'�Ø˜4Ÿ9™9Ÿ;™;Ñ&Ø—I‘I  B¡¨!™|¨T¯Y©Y¯[©[¯_©_¸SÀÓ-FÔGð ˜“9ð �C‹xð ˆŒØˆŒ	Ør   c                  ó   — y r   r+   r   s    r   r  zSimpleTable.getData©  rE  r   c                 ó„  — t        | j                  «       | j                  «       «      }d}| j                  «       }||k  rT|}|dz   }d}| j                  «       }||k  r0|}|dz   }|j                  ||| j	                  ||«      «       ||k  rŒ0||k  rŒT| j
                  � | j
                  j                  |«      |_        |S rW  )r1  r
  r  r  r  rS   r¸  )r   r—   rÈ   rÉ   rÀ  r1  r2  r&  s           r   r  zSimpleTable.clone¬  s¼   € Ü˜TŸ^™^Ó-¨d¯o©oÓ.?Ó@ˆØˆØ�o‰oÓˆØ�CŠxØˆAØ�q‘&ˆBØˆCØ—.‘.Ó"ˆCØ˜’9Ø�Ø˜Q‘w�Ø—‘˜q  4§<¡<°°!Ó#4Ô5ð ˜“9ð �C‹xð �I‰IÐ!ØŸ)™)×-Ñ-¨fÓ5ˆFŒKØˆr   c                 óR   — t        | j                  «       | j                  «       «      S r   )r1  r
  r  r   s    r   r  zSimpleTable.create½  s   € Ü˜4Ÿ>™>Ó+¨D¯O©OÓ,=Ó>Ð>r   c                 ó   — || _         y r   rI  rÖ  s     r   r¾  zSimpleTable.setMetaÀ  r¸  r   c                 ó   — | j                   S r   rI  r   s    r   r  zSimpleTable.getMetaÃ  rJ  r   c           	      óº  — | j                  «       }|��:|j                  «       }|��'d}|j                  «       }d}t        |«      }||k  rO|}|dz   }|dkD  r	|€dn|dz   }|€dn|t        j                  |dk\  r|t        |«      k  r||   nd «      z   }||k  rŒO|€dn|dz   }|j                  «       }|�—d}t        |«      }||k  ri|}|dz   }|dkD  r	|€dn|dz   }|€dn|t        j                  |j                  j                  |dk\  r|t        |«      k  r||   nd d «      «      z   }||k  rŒi|€dn|dz   }|j                  «       }|�Œ—|S d}d}| j                  «       }||k  rt|}|dz   }d}	| j                  «       }
|	|
k  rG|	}|	dz   }	|dkD  r	|€dn|dz   }|€dn|t        j                  | j                  ||«      «      z   }|	|
k  rŒG|€dn|dz   }||k  rŒt|S )Nr�   r   r{   r�   rÈ  rÉ  )r  r¹  rŽ  rª   r“   r”   r�  r•   r–   rˆ   r‰   r  r
  r  )r-  rS   rú  r+  rˆ  rÈ   rÉ   rÀ  r…  r1  r2  r&  s               r   r2  zSimpleTable.tableToStringÆ  sa  € à�{‰{‹}ˆØÑØ×&Ñ&Ó(ˆFØÑ"Ø�Ø×*Ñ*Ó,�Ø�Ü˜$“i�Ø˜C’xØ�AØ˜q™&�BØ˜AšØ()¨	™f°q¸CÑ?˜Ø$% I™&°1¼×8PÑ8PÐ]^ÐbcÒ]cÐhiÔloÐptÓluÒhuÐRVÐWXÒRYÐ{ó  9Bñ  B�Að ˜C“xð !" 	‘f¨q°DÑ8�Ø—o‘oÓ'�Ø�Ø�BÜ˜d›)�CØ š8Ø˜Ø  1™f˜Ø šEØ,-¨I¡&¸1ÀÑ!C˜AØ()¨	™f°q¼C¿J¹JÀsÇuÁuÇyÁyÐ]^ÐbcÒ]cÐhiÔloÐptÓluÒhuÐRVÐWXÒRYÐ{ð  BFó  HGó  =Hñ  H˜ð  ›8ð %& I™&°1¸Ñ<�AØ Ÿ/™/Ó+�Cð ‘ð �ØˆØˆØ�n‰nÓˆØ�CŠxØˆAØ�q‘&ˆBØˆCØ—-‘-“/ˆCØ˜’9Ø�Ø˜Q‘w�Ø˜’EØ$% I™&°1¸Ñ;�AØ ! 	‘f¨q´C·J±J¸s¿{¹{È1ÈQÓ?OÓ4PÑP�ð ˜“9ð ˜I‘&¨1°Ñ4ˆAð �C‹xð ˆr   c                 óL  — | j                  «       dk(  s|j                  «       dk(  r/t        j                  | «      }t        j                  |«      }||k(  S | j                  «       |j                  «       k7  ry| j                  «       |j                  «       k7  ry| j	                  «       }d}| j                  «       }||k  rd|}|dz   }d}| j                  «       }	||	k  r@|}
|dz   }|j                  | j                  |
|«      |j                  |
|«      «      sy||	k  rŒ@||k  rŒdy)Nro   Fr   r{   T)r  r1  r2  r
  r  rn  r  )rö  r÷  Útxt1Útxt2r;   rÈ   rÉ   rÀ  r1  r2  r&  s              r   r¼  zSimpleTable.tableIsSimilarõ  s  € à�_‰_Ó "Ò$¨4¯?©?Ó+<ÀÒ+BÜ×,Ñ,¨TÓ2ˆDÜ×,Ñ,¨TÓ2ˆDØ˜D‘LÐ!Ø�N‰NÓ §¡Ó 0Ò0ØØ�O‰OÓ §¡Ó!2Ò2ØØ×ÑÓˆØˆØ�o‰oÓˆØ�CŠxØˆAØ�q‘&ˆBØˆCØ—.‘.Ó"ˆCØ˜’9Ø�Ø˜Q‘w�ØŸ™ §¡¨a°Ó!2°4·<±<ÀÀ!Ó3DÔEØ ð	 ˜“9ð �C‹xð r   N) r(   r)   r*   r?   r@   rA   rB   râ  rÿ   rK  r   r  r
  r  r  r  ra   r  r  r  r  r  r  r	  r  r  r  r¾  r  rã  r2  r¼  r+   r   r   r1  r1    s´   „ Ø"€NØ*€IÚ+€Jò }€KØ"Ð$4Ð5€KØ�W€Nòòòòò:ò.ò/òòòò
%òò*ò*:òxòò"?òòð ñ,ó ð,ð\ ñó ñr   r1  c                   ó   — e Zd Zd ZdZg d¢Zy)ÚViewr+   )ra   rn  rº  r`  ra  r€  r�  r‚  ÚisTabler  rë  Nrâ   r+   r   r   rÚ  rÚ    s   „ Ø€NØ€Iò R�Kr   rÚ  c                   ój   — e Zd Zd ZdZg d¢ZegZd„ Zd„ Z	d„ Z
d„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zy)rË  r+   )ra   rn  rº  r`  ra  r�  r‚  r€  rÛ  r  rë  c                  ó   — y r   r+   r   s    r   r   zSimpleView.__init__  ry   r   c                 ó8   — |€ydt         j                  |«      z   S rY  ©r•   r–   ©r   rþ  s     r   ra   zSimpleView.toString!  s   € ØˆIØØ”S—Z‘Z “]Ñ"Ð#r   c                 óx   — |€|€y|�|€ydt         j                  |«      z   dt         j                  |«      z   k(  S )NTFr�   rß  ©r   Úd1Úd2s      r   rn  zSimpleView.equals&  s?   € ØˆZ˜r˜zØØˆZ˜b˜jØØ”c—j‘j “nÑ$¨2´·
±
¸2³Ñ+>Ñ@ÐAr   c                 ó   — |S r   r+   re  s     r   rº  zSimpleView.toDatum-  ó   € Øˆr   c                 ó   — t        «       S r   )r´  r   s    r   r`  zSimpleView.makeHash0  s   € Ü Ó"Ð"r   c                 ó&   — |}||j                   |<   y r   rÄ  )r   rˆ   rO  rþ  Úhhs        r   ra  zSimpleView.hashSet3  s   € ØˆØˆ�‰ˆWŠr   c                 ó"   — |}||j                   v S r   rÄ  ©r   rˆ   rO  ré  s       r   r�  zSimpleView.hashExists7  s   € ØˆØ˜2Ÿ4™4�Ð r   c                 ó>   — |}|j                   j                  |d «      S r   r9  rë  s       r   r‚  zSimpleView.hashGet;  s   € ØˆØ�t‰t�x‰x˜ Ó%Ð%r   c                 ó6   — t         j                  |t        «      S r   )r•   ÚisOfTyper´  )r   rˆ   s     r   r€  zSimpleView.isHash?  s   € Ü�|‰|˜AÔ/Ó0Ð0r   c                 ó6   — t         j                  |t        «      S r   )r•   rî  rÿ   ©r   r  s     r   rÛ  zSimpleView.isTableB  s   € Ü�|‰|˜AœeÓ$Ð$r   c                 ó   — |S r   r+   rð  s     r   r  zSimpleView.getTableE  ræ  r   c                 ó   — |S r   r+   rð  s     r   rë  zSimpleView.wrapTableH  ræ  r   N)r(   r)   r*   r?   r@   rB   rÚ  rK  r   ra   rn  rº  r`  ra  r�  r‚  r€  rÛ  r  rë  r+   r   r   rË  rË    sX   „ Ø!€NØ€Iò R€KØ�V€Nòò$ò
Bòò#òò!ò&ò1ò%òór   rË  c                   óB   — e Zd Zd ZdZg d¢Zg d¢Zd„ Zd„ Zd„ Z	d„ Z
d„ Zy)	ÚSparseSheet)rˆ   r:  r…  Úzero)r  ÚnonDestructiveResizer‰   r|   c                 óD   ‡ — d ‰ _         d ‰ _        ˆ fd„} |«       ‰ _        y )Nc                  ó*   •— d‰ _         ‰ j                   S rm   rÂ  r   s   €r   rn   z)SparseSheet.__init__.<locals>._hx_local_0W  ó   ø€ ØˆDŒFØ—6‘6ˆMr   )rõ  r…  rˆ   rq   s   ` r   r   zSparseSheet.__init__T  s!   ø€ ØˆŒ	ØˆŒô	ñ “ˆ�r   c                 óH   — t        «       | _        | j                  |||«       y r   )rp   r…  rö  ©r   r:  rˆ   rõ  s       r   r  zSparseSheet.resize\  s   € Ü!Ó#ˆŒØ×!Ñ! ! A dÕ+r   c                 ó.   — || _         || _        || _        y r   )r:  rˆ   rõ  rû  s       r   rö  z SparseSheet.nonDestructiveResize`  s   € ØˆŒØˆŒØˆ�	r   c                 óÂ   — | j                   j                  j                  |d «      }|€| j                  S |j                  j                  |d «      }|€| j                  S |S r   )r…  rˆ   r‰   rõ  )r   r+  r  ré  rE  s        r   r‰   zSparseSheet.gete  sQ   € Ø—‘—‘—‘  $Ó'ˆØˆNØ—9‘9ÐØ�h‰h�l‰l˜1˜TÓ"ˆØˆKØ—9‘9ÐØˆ
r   c                 óÄ   — | j                   j                  j                  |d «      }|€&t        «       }| j                   j	                  ||«       |j	                  ||«       y r   )r…  rˆ   r‰   rp   r|   )r   r+  r  rE  ré  s        r   r|   zSparseSheet.setn  sG   € Ø—‘—‘—‘  $Ó'ˆØˆNÜ#Ó%ˆFØ�H‰H�L‰L˜˜6Ô"Ø�
‰
�1�SÕr   N)r(   r)   r*   r?   r@   rA   rB   r   r  rö  r‰   r|   r+   r   r   rô  rô  N  s/   „ Ø"€NØ)€IÚ*€JÚB€Kòò,òò
ór   rô  c                   óN   — e Zd Zd ZdZg d¢Zg d¢Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zy
)Ú	SqlColumn©r!   ÚprimaryÚ
type_valueÚtype_family)ÚsetNameÚsetPrimaryKeyÚsetTyperº  ÚisPrimaryKeyra   c                 ó<   — d| _         d| _        d | _        d | _        y )Nr�   Fr  r   s    r   r   zSqlColumn.__init__~  s   € ØˆŒ	ØˆŒØˆŒØˆÕr   c                 ó   — || _         y r   ræ  r    s     r   r  zSqlColumn.setName„  r¸  r   c                 ó   — || _         y r   ©r  )r   r  s     r   r  zSqlColumn.setPrimaryKey‡  ó	   € Øˆ�r   c                 ó    — || _         || _        y r   )r  r  )r   ræ   Úfamilys      r   r  zSqlColumn.setTypeŠ  s   € ØˆŒØ!ˆÕr   c                 ó   — | j                   S r   ræ  r   s    r   rº  zSqlColumn.getNameŽ  rJ  r   c                 ó   — | j                   S r   r  r   s    r   r  zSqlColumn.isPrimaryKey‘  r~  r   c                 óˆ   — t         j                  | j                  rdnd«      t         j                  | j                  «      z   S )NÚ*r�   )r“   r”   r  r!   r   s    r   ra   zSqlColumn.toString”  s2   € Ü×(Ñ(°4·<²<©3ÀbÓKÌk×NfÑNfÐgk×gpÑgpÓNqÑqÐrr   N)r(   r)   r*   r?   r@   rA   rB   r   r  r  r  rº  r  ra   r+   r   r   r   r   x  s:   „ Ø €NØ@€IÚA€JÚ`€Kò òòò"òòósr   r   c                   ó\   — e Zd Zd ZdZg d¢Zg d¢Zdd„Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zy)rô  )rù  rÑ  r]  ÚaltÚat0ry  Úat2Údiff_ctrÜ  ÚpeeredÚ
alt_peeredÚneededr–  )Ú
equalArrayÚvalidateSchemaÚdenullr[   Ú	linkQueryÚwhereÚscanColumnsrõ  Nc                 óŒ  — d | _         d | _        d | _        d | _        d | _        d | _        d | _        || _        || _        || _	        || _
        || _        || _        | j                  €t        «       | _        d| _        d| _        |�×|�Õ| j                  j                  «       j                  «       �­| j                  j                  «       j                  «       | j                  j                  «       j                  «       k7  r\|j                  «       j!                  «       j#                  |d| j                  j                  «       j                  «       «       d| _        | j                  �Û|�Ø| j                  j                  «       j                  «       �¯| j                  j                  «       j                  «       | j                  j                  «       j                  «       k7  r]|j                  «       j!                  «       j#                  |d| j                  j                  «       j                  «       «       d| _        y y y y y )NFÚ__peer__TÚ__alt__)r  r  r  r  r  ry  r  rù  rÑ  r]  r  rÜ  r–  rˆ  ró  ÚgetNameForAttachmentÚ	getHelperÚattach)r   rù  rÑ  r]  r  rÜ  r–  s          r   r   zSqlCompare.__init__   sÎ  € ØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒ
ØˆŒØˆŒØˆŒ
ØˆŒ
Ø�J‰JÐÜ%›ˆDŒJØˆŒØˆŒØÐ fÐ&8Ø—‘×'Ñ'Ó)×>Ñ>Ó@ÐLØ—K‘K×+Ñ+Ó-×BÑBÓDÈÏ
É
×H^ÑH^ÓH`×HuÑHuÓHwÒwØ×%Ñ%Ó'×1Ñ1Ó3×:Ñ:¸2¸jÈÏÉ×I`ÑI`ÓIb×IwÑIwÓIyÔzØ"&�D”KØ�X‰XÐ!¨Ð):Ø—‘×$Ñ$Ó&×;Ñ;Ó=ÐIØ—H‘H×(Ñ(Ó*×?Ñ?ÓAÀTÇZÁZ×E[ÑE[ÓE]×ErÑErÓEtÒtØ×%Ñ%Ó'×1Ñ1Ó3×:Ñ:¸2¸iÈÏÉ×H\ÑH\ÓH^×HsÑHsÓHuÔvØ&*�D•Oð uð Jð *;Ð!r   c                 óÞ   — t        |«      t        |«      k7  ryd}t        |«      }||k  rC|}|dz   }|dk\  r|t        |«      k  r||   nd |dk\  r|t        |«      k  r||   nd k7  ry||k  rŒCyrz  rÿ  )r   Úa1Úa2rÈ   rÉ   rÀ  s         r   r  zSqlCompare.equalArray½  sƒ   € Ü�‹G”s˜2“wÒØØˆÜ�"‹gˆØ�CŠxØˆAØ�q‘&ˆBØ˜qš& Q¬¨R«¢[��A’°dÈÈaÊÐTUÔX[Ð\^ÓX_ÒT_ÀÀ1ÂÐeiÒjØð	 �C‹xð
 r   c                 óú  — g }g }d}d}| j                   �…| j                   j                  «       }| j                   j                  «       }t        |«      dk(  rd}| j                  j
                  �| j                  j                  d«      }t        |«      dk(  rd}g }g }| j                  �…| j                  j                  «       }| j                  j                  «       }t        |«      dk(  rd}| j                  j
                  �| j                  j                  d«      }t        |«      dk(  rd}|}|}| j                  �…| j                  j                  «       }| j                  j                  «       }t        |«      dk(  rd}| j                  j
                  �| j                  j                  d«      }t        |«      dk(  rd}|rt        j                  d«      ‚|rt        j                  d«      ‚d}	| j                   � | j                  �| j                  ||«      sd}	| j                   � | j                  �| j                  ||«      sd}	|	r.t        j                  d	t        j                  |||g«      z   «      ‚y)
NFr   TrÑ  r]  rM  zError accessing SQL tablez4sql diff not possible when primary key not availablez0sql diff not possible when primary key changes: )rÑ  ÚgetColumnNamesÚgetPrimaryKeyrª   r–  r’  r®  r]  r  r&  r'  r  r•   r–   )
r   Ú	all_cols1Ú	key_cols1Úaccess_errorÚ
pk_missingÚ	all_cols2Ú	key_cols2Ú	all_cols3Ú	key_cols3Ú	pk_changes
             r   r  zSqlCompare.validateSchemaÉ  sC  € Øˆ	Øˆ	ØˆØˆ
Ø�J‰JÐ"ØŸ
™
×1Ñ1Ó3ˆIØŸ
™
×0Ñ0Ó2ˆIÜ�I“ !Ò#Ø#�Ø—
‘
—‘Ð*Ø ŸJ™J×3Ñ3°GÓ<�	Ü�I“ !Ò#Ø!�
Øˆ	Øˆ	Ø�K‰KÐ#ØŸ™×2Ñ2Ó4ˆIØŸ™×1Ñ1Ó3ˆIÜ�I“ !Ò#Ø#�Ø—
‘
—‘Ð*Ø ŸJ™J×3Ñ3°HÓ=�	Ü�I“ !Ò#Ø!�
Øˆ	Øˆ	Ø�H‰HÐ ØŸ™×/Ñ/Ó1ˆIØŸ™×.Ñ.Ó0ˆIÜ�I“ !Ò#Ø#�Ø—
‘
—‘Ð*Ø ŸJ™J×3Ñ3°HÓ=�	Ü�I“ !Ò#Ø!�
ÙÜ ×'Ñ'Ð(CÓDÐDÙÜ ×'Ñ'Ð(^Ó_Ð_Øˆ	Ø�Z‰ZÐ#¨4¯;©;Ð+BØ—O‘O I¨iÔ8Ø �	Ø�Z‰ZÐ#¨4¯8©8Ð+?Ø—O‘O I¨iÔ8Ø �	ÙÜ ×'Ñ'Ð)[Ô^a×^hÑ^hÐjsÐu~ð  AJð  jKó  _Lñ  *Ló  Nð  NØr   c                 ó   — |€y|S ©Nro   r+   re  s     r   r  zSqlCompare.denullü  s   € ØˆIØØˆr   c                 ó¸  — | }|j                   }|dz   |_         | | j                  j                  d«      }| j                  | j                  j                  d«      «      }| j                  | j                  j                  d«      «      }| j                  | j                  j                  d«      «      }|dk(  r&| j                  }| }|j                  }|dz   |_        | |dk(  r&| j
                  }| }	|	j
                  }
|
dz   |	_        |
 |dk(  r&| j                  }| }|j                  }|dz   |_        | d}|dk\  r„d}| j                  j                  «       }||k  rF|}|dz   }| j                  j                  ||| j                  j                  ||z   «      «       ||k  rŒF|| j                  j                  «       z   }|dk\  r„d}| j                  j                  «       }||k  rF|}|dz   }| j                  j                  ||| j                  j                  ||z   «      «       ||k  rŒF|| j                  j                  «       z   }|dk\  rgd}| j                  j                  «       }||k  rF|}|dz   }| j                  j                  ||| j                  j                  ||z   «      «       ||k  rŒF|dk(  s|dk(  r8| j                  j                  ||«       | j                  j                  ||«       | j                  �X|dk(  s|dk(  rM| j                  j                  j                  ||«       | j                  j                  j                  ||«       y y y )Nr{   r   rÒ  rÆ  éýÿÿÿrÃ  )r  rù  r‰   r  r  ry  r  rÑ  r
  ÚsetCellCacher]  r  rÜ  r[   rc   rR   )r   rn   r   rO  rf  rg  Úi2r³   rµ   r	  r
  r  Ú_hx_local_7rG  rÈ   rÉ   r+  s                    r   r[   zSqlCompare.link  sî  € ØˆØ!×)Ñ)ˆØ*¨Q™ˆÔÙØ�w‰w�{‰{˜1‹~ˆØ�[‰[˜Ÿ™Ÿ™ Q›Ó(ˆØ�[‰[˜Ÿ™Ÿ™ Q›Ó(ˆØ�[‰[˜Ÿ™Ÿ™ Q›Ó(ˆØ�"ŠHØ—‘ˆBØˆKØ%Ÿ/™/ˆKØ*¨Q™ˆKŒOÙØ�"ŠHØ—‘ˆBØˆKØ%Ÿ/™/ˆKØ*¨Q™ˆKŒOÙØ�"ŠHØ—‘ˆBØˆKØ%Ÿ/™/ˆKØ*¨Q™ˆKŒOÙØˆØ�!ŠGØˆBØ—*‘*×&Ñ&Ó(ˆCØ˜’8Ø�Ø˜1‘f�Ø—
‘
×'Ñ'¨¨"¨T¯W©W¯[©[¸!¸f¹*Ó-FÔGð ˜“8ð ˜tŸz™z×3Ñ3Ó5Ñ5ˆFØ�!ŠGØˆBØ—+‘+×'Ñ'Ó)ˆCØ˜’8Ø�Ø˜1‘f�Ø—‘×(Ñ(¨¨2¨d¯g©g¯k©k¸1¸v¹:Ó.GÔHð ˜“8ð ˜tŸ{™{×4Ñ4Ó6Ñ6ˆFØ�!ŠGØˆBØ—(‘(×$Ñ$Ó&ˆCØ˜’8Ø�Ø˜1‘f�Ø—‘×%Ñ% a¨¨4¯7©7¯;©;¸¸F¹
Ó+DÔEð ˜“8ð �QŠY˜T QšYØ�J‰J�O‰O˜B˜rÔ"Ø�J‰J×!Ñ! " RÔ(Ø�H‰HÐ Ø˜’ ¨¢Ø—
‘
×$Ñ$×)Ñ)¨"¨RÔ0Ø—
‘
×$Ñ$×/Ñ/°°2Õ6ð "+ð !r   c                 óþ   — | j                   j                  |d |«      r`| j                   j                  «       r+| j                  «        | j                   j                  «       rŒ+| j                   j	                  «        y y r   )rù  ÚbeginÚreadr[   Úend)r   Úqueryr¬   s      r   r  zSqlCompare.linkQuery<  sM   € Ø�7‰7�=‰=˜˜t EÔ*Ø—'‘'—,‘,”.Ø—	‘	”ð —'‘'—,‘,•.à�G‰G�K‰K�Mð +r   c                 ó$   — |dk(  ryd|€dz   S |z   S )Nr�   z WHERE 1 = 0ú WHERE r�   r+   r  s     r   r   zSqlCompare.whereB  s#   € Ø�2ŠIØ!Ø s {˜VÑ<Ð=¸Ñ<Ð=r   c                 ó˜  — t        «       |_        d}t        |«      }||k  rˆ|}	|dz   }|	dk\  r|	t        |«      k  r||	   nd }
|
|j                  v r7|j                  j	                  |	|j                  j                  |
d «      «       n|j                  j	                  |	d«       ||k  rŒˆd}t        |«      }||k  rQ|}	|dz   }|	dk\  r|	t        |«      k  r||	   nd }
|
|j                  vr|j                  j	                  d|	«       ||k  rŒQ|j                  j                  t        |«      t        |«      «       d}|t        |«      k  r€|dk\  r|t        |«      k  r||   nd }
|dz   }t        |j                  j                  |
d «      |j                  j                  |
d «      «      }|j                  |«       |t        |«      k  rŒy y r®   )	rD   rS   rª   rˆ   r[   r‰   rW   r»   r\   )r   r.  r2  Úkey_colsÚpresent1Úpresent2rÜ  rÈ   rÉ   rÀ  r·   rƒ   s               r   r!  zSqlCompare.scanColumnsG  s”  € Ü“[ˆŒ
ØˆÜ�)‹nˆØ�CŠxØˆAØ�q‘&ˆBØ#$¨¢6¨a´#°i³.Ò.@�9˜Q’<ÀdˆCØ�x—z‘zÑ!Ø—
‘
—‘  (§*¡*§.¡.°°TÓ":Õ;à—
‘
—‘  "Ô%ð �C‹xð ˆÜ�)‹nˆØ�CŠxØˆAØ�q‘&ˆBØ#$¨¢6¨a´#°i³.Ò.@�9˜Q’<ÀdˆCØ˜HŸJ™JÑ&Ø—
‘
—‘  1Ô%ð �C‹xð 	�
‰
×Ñœ˜Y›¬¨I«Ô7ØˆØ”C˜“MÒ!Ø#%¨¢7¨r´C¸³MÒ/A�8˜B’<ÀtˆCØ�q‘&ˆBÜ˜Ÿ
™
Ÿ™ s¨4Ó0°·±·±ÀÀDÓ1IÓJˆDØ×!Ñ! $Ô'ð	 ”C˜“MÕ!r   c                 ó¨+  — | j                   €y | j                  €t        «       | _        | j                  «       sy | j                   j	                  «       }g }g }g }g }g }g }| j
                  }| j
                  ��W| j
                  j                  «       }| j
                  j                  «       }| j
                  j                  «       }| j
                  j                  «       }| j                  j                  �Ù| j                  j                  d«      }t        «       }t        «       }	d}
|
t        |«      k  r=|
dk\  r|
t        |«      k  r||
   nd }|
dz   }
d|	j                  |<   |
t        |«      k  rŒ=d}
|
t        |«      k  rM|
dk\  r|
t        |«      k  r||
   nd }|
dz   }
||	j                  vr|j!                  |«       |
t        |«      k  rŒM| j"                  �(| j"                  j                  «       }|€| j"                  }| j$                  �)| j$                  j                  «       }|€| j$                  }n|}t        «       }t        «       }t        «       }t        «       }t        «       }t        «       }d}d}
t        |«      }|
|k  r4|
}|
dz   }
||j                  |dk\  r|t        |«      k  r||   nd <   |
|k  rŒ4d}
t        |«      }|
|k  r6|
}|
dz   }
|dk\  r|t        |«      k  r||   nd }||j                  |<   |
|k  rŒ6d}
t        |«      }|
|k  rF|
}|
dz   }
|dk\  r|t        |«      k  r||   nd }||j                  vrd}||j                  |<   |
|k  rŒFd}
t        |«      }|
|k  r’|
}|
dz   }
|dk\  r|t        |«      k  r||   nd }||j                  vrd}||j                  |<   ||j                  v r>||j                  v r0|j!                  |«       ||j                  vr|j!                  |«       |
|k  rŒ’t        «       | j                  _        d}
t        |«      }|
|k  rœ|
}|
dz   }
|dk\  r|t        |«      k  r||   nd }||j                  v rA| j                  j&                  j)                  ||j                  j+                  |d «      «       n&| j                  j&                  j)                  |d«       |
|k  rŒœd}
t        |«      }|
|k  r[|
}|
dz   }
|dk\  r|t        |«      k  r||   nd }||j                  vr&| j                  j&                  j)                  d|«       |
|k  rŒ[| j-                  |||||| j                  «       | j                  j/                  | j
                  | j"                  «       | j$                  �d| j-                  |||||| j                  j0                  «       | j                  j0                  j/                  | j
                  | j$                  «       d}d}d}| j
                  �| j
                  j3                  «       }| j"                  �| j"                  j3                  «       }| j$                  �| j$                  j3                  «       }| j4                  rd|€d	n|z   }d
|€d	n|z   }| j6                  r	d|€d	n|z   }d}d}
t        |«      }|
|k  r^|
}|
dz   }
|dkD  r	|€d	n|dz   }|€d	n|t8        j;                  |j=                  |dk\  r|t        |«      k  r||   nd «      «      z   }|
|k  rŒ^d}d}
t        |«      }|
|k  r^|
}|
dz   }
|dkD  r	|€d	n|dz   }|€d	n|t8        j;                  |j=                  |dk\  r|t        |«      k  r||   nd «      «      z   }|
|k  rŒ^d}d}
t        |«      }|
|k  r…|
}|
dz   }
|dkD  r	|€d	n|dz   }|€d	n|t8        j;                  |€d	n|dz   t8        j;                  | j
                  j=                  |dk\  r|t        |«      k  r||   nd «      «      z   «      z   }|
|k  rŒ…d}d}
t        |«      }|
|k  r…|
}|
dz   }
|dkD  r	|€d	n|dz   }|€d	n|t8        j;                  |€d	n|dz   t8        j;                  | j"                  j=                  |dk\  r|t        |«      k  r||   nd «      «      z   «      z   }|
|k  rŒ…d}| j$                  �—d}
t        |«      }|
|k  r…|
}|
dz   }
|dkD  r	|€d	n|dz   }|€d	n|t8        j;                  |€d	n|dz   t8        j;                  | j$                  j=                  |dk\  r|t        |«      k  r||   nd «      «      z   «      z   }|
|k  rŒ…d}d}
t        |«      }|
|k  rq|
}|
dz   }
|dkD  r	|€d	n|dz   }|j=                  |dk\  r|t        |«      k  r||   nd «      }|€d	n|t8        j;                  |€d	n|dz   |€d	n|z   dz   «      z   }|
|k  rŒqd} d}
t        |«      }|
|k  rq|
}|
dz   }
|dkD  r	| €d	n| dz   } |j=                  |dk\  r|t        |«      k  r||   nd «      }| €d	n| t8        j;                  |€d	n|dz   |€d	n|z   dz   «      z   } |
|k  rŒqd}!d}
t        |«      }|
|k  r‚|
}|
dz   }
|dkD  r	|!€d	n|!dz   }!|j=                  |dk\  r|t        |«      k  r||   nd «      }|!€d	n|!t8        j;                  |€d	n|dz   |€d	n|z   dz   |€d	n|z   dz   |€d	n|z   «      z   }!|
|k  rŒ‚d}"| j$                  �”d}
t        |«      }|
|k  r‚|
}|
dz   }
|dkD  r	|"€d	n|"dz   }"|j=                  |dk\  r|t        |«      k  r||   nd «      }|"€d	n|"t8        j;                  |€d	n|dz   |€d	n|z   dz   |€d	n|z   dz   |€d	n|z   «      z   }"|
|k  rŒ‚d}#d}
t        |«      }|
|k  r‚|
}|
dz   }
|dkD  r	|#€d	n|#dz   }#|j=                  |dk\  r|t        |«      k  r||   nd «      }|#€d	n|#t8        j;                  |€d	n|dz   |€d	n|z   dz   |€d	n|z   dz   |€d	n|z   «      z   }#|
|k  rŒ‚d}
t        |«      }|
|k  r�|
}|
dz   }
|dk\  r|t        |«      k  r||   nd }||j                  vrL|#dk7  r	|#€d	n|#dz   }#|j=                  |«      }|#€d	n|#t8        j;                  |€d	n|dz   |€d	n|z   dz   «      z   }#|
|k  rŒ�| j$                  ��0d}
t        |«      }|
|k  r‹|
}|
dz   }
t        |#«      dkD  r	|#€d	n|#dz   }#|j=                  |dk\  r|t        |«      k  r||   nd «      }|#€d	n|#t8        j;                  |€d	n|dz   |€d	n|z   dz   |€d	n|z   dz   |€d	n|z   «      z   }#|
|k  rŒ‹d}
t        |«      }|
|k  r�|
}|
dz   }
|dk\  r|t        |«      k  r||   nd }||j                  vrL|#dk7  r	|#€d	n|#dz   }#|j=                  |«      }|#€d	n|#t8        j;                  |€d	n|dz   |€d	n|z   dz   «      z   }#|
|k  rŒ�d}$g }%d}
t        |«      }|
|k  r¡|
}|
dz   }
|$dk7  r	|$€d	n|$dz   }$dt>        jA                  |«      z   }&|j=                  |dk\  r|t        |«      k  r||   nd «      }|$€d	n|$t8        j;                  |€d	n|dz   |€d	n|z   dz   |&€d	n|&z   «      z   }$|%j!                  |&«       |
|k  rŒ¡d}
t        |«      }|
|k  r¤|
}|
dz   }
|$dk7  r	|$€d	n|$dz   }$dt>        jA                  |«      z   dz   }&|j=                  |dk\  r|t        |«      k  r||   nd «      }|$€d	n|$t8        j;                  |€d	n|dz   |€d	n|z   dz   |&€d	n|&z   «      z   }$|%j!                  |&«       |
|k  rŒ¤| j$                  �¶d}
t        |«      }|
|k  r¤|
}|
dz   }
|$dk7  r	|$€d	n|$dz   }$dt>        jA                  |«      z   dz   }&|j=                  |dk\  r|t        |«      k  r||   nd «      }|$€d	n|$t8        j;                  |€d	n|dz   |€d	n|z   dz   |&€d	n|&z   «      z   }$|%j!                  |&«       |
|k  rŒ¤d}'d}
t        |«      }|
|k  rQ|
}|
dz   }
|dkD  r	|'€d	n|'dz   }'|j=                  |dk\  r|t        |«      k  r||   nd «      }|'€d	n|'|€d	n|z   }'|
|k  rŒQd}(d})d}*d}+|�V|}(| j
                  �|€d	n|dz   |€d	n|z   })| j"                  �|€d	n|dz   |€d	n|z   }*| j$                  �|€d	n|dz   |€d	n|z   }+d| _!        d| _"        d| _#        d| _$        | j"                  �²d|*€d	n|*z   dz   |€d	n|z   dz   |€d	n|z   },| j
                  �k|,€d	n|,t8        j;                  d|€d	n|z   «      z   },|,€d	n|,t8        j;                  d|!€d	n|!z   t8        j;                  | jK                  |«      «      z   «      z   },||k7  rg d¢|z   }-| jM                  |,|-«       | j$                  �²d|+€d	n|+z   d z   |€d	n|z   dz   |€d	n|z   },| j
                  �k|,€d	n|,t8        j;                  d|€d	n|z   «      z   },|,€d	n|,t8        j;                  d|"€d	n|"z   t8        j;                  | jK                  |«      «      z   «      z   },||k7  rg d!¢|z   }-| jM                  |,|-«       | j
                  ��:| j"                  ��-d"|)€d	n|)z   d#z   |*€d	n|*z   d$z   }.| j$                  �$|.€d	n|.t8        j;                  |+€d	n|+d%z   «      z   }.n	|.€d	n|.d&z   }.|.€d	n|.t8        j;                  |$€d	n|$dz   |€d	n|z   «      z   }.||k7  r-|.€d	n|.t8        j;                  d'|€d	n|z   dz   |!€d	n|!z   «      z   }.| j$                  �2||k7  r-|.€d	n|.t8        j;                  d'|€d	n|z   dz   |"€d	n|"z   «      z   }.|.€d	n|.t8        j;                  | jK                  |#«      «      z   }.g d(¢|%z   }/| jM                  |.|/«       | j$                  €¾| j
                  �²d)|)€d	n|)z   d*z   |€d	n|z   dz   |€d	n|z   }0| j"                  �k|0€d	n|0t8        j;                  d|€d	n|z   «      z   }0|0€d	n|0t8        j;                  d|!€d	n|!z   t8        j;                  | jK                  | «      «      z   «      z   }0||k7  rg d+¢|z   }1| jM                  |0|1«       | j$                  �ñd,|)€d	n|)z   d#z   |*€d	n|*z   d$z   }0|0€d	n|0t8        j;                  |+€d	n|+d-z   «      z   }0|0€d	n|0|$€d	n|$z   }0|0€d	n|0t8        j;                  d|€d	n|z   «      z   }0| j"                  �-|0€d	n|0t8        j;                  d.|€d	n|z   dz   |!€d	n|!z   «      z   }0|0€d	n|0t8        j;                  d.|€d	n|z   dz   |"€d	n|"z   «      z   }0|0€d	n|0d/z   }0g d(¢|%z   }1| jM                  |0|1«       | jH                  dk(  r| j                  jO                  «        | j                  S )0NrÑ  r   r{   TFro   r�   zmain.r�   z	__peer__.z__alt__.rÈ  rÂ  z AND z IS NULLz IS z OR z IS NOT z IS NOT NULLÚ__coopy_z AS r~   r.  z-3z)SELECT DISTINCT 0 AS __coopy_code, NULL, z AS rowid, NULL, ú FROM z LEFT JOIN z ON )Ú__coopy_coderý  Úrowidrý  z/SELECT DISTINCT 0 AS __coopy_code, NULL, NULL, z AS rowid, )rL  rý  rý  rM  z#SELECT DISTINCT 2 AS __coopy_code, z AS __coopy_rowid0, z AS __coopy_rowid1, z AS __coopy_rowid2,z NULL,z INNER JOIN )rL  Ú__coopy_rowid0Ú__coopy_rowid1Ú__coopy_rowid2z#SELECT DISTINCT 0 AS __coopy_code, z AS rowid, NULL, NULL, )rL  rM  rý  rý  zSELECT 2 AS __coopy_code, z AS __coopy_rowid2, z LEFT OUTER JOIN z7 WHERE __coopy_rowid1 IS NULL OR __coopy_rowid2 IS NULL)(rù  rÜ  rD   r  rM  rÑ  r-  ÚgetAllButPrimaryKeyr,  r–  r’  r®  r�   r´  rª   rˆ   r‚   r]  r  rS   r[   r‰   r!  rX   rR   ÚgetQuotedTableNamer  r  r“   r”   ÚgetQuotedColumnNamer•   r–   r  ry  r  r  r   r  ri   )2r   Ú
rowid_namerF  Ú	data_colsÚall_colsr.  r2  r4  ÚcommonÚpksrÈ   rA  Úall_common_colsÚdata_common_colsrG  rH  Úpresent3Úpresent_primaryÚhas_column_addrÉ   rÀ  r·   Ú
sql_table1Ú
sql_table2Ú
sql_table3Úsql_key_colsÚsql_all_colsÚsql_all_cols1Úsql_all_cols2Úsql_all_cols3Úsql_key_nullrS  Úsql_key_null2Úsql_key_match2Úsql_key_match3Úsql_data_mismatchÚsql_dbl_colsÚdbl_colsÚbufÚ	sql_orderrM  Úrowid1Úrowid2Úrowid3Úsql_insertsÚsql_inserts_orderÚsql_updatesÚsql_updates_orderÚsql_deletesÚsql_deletes_orders2                                                     r   rõ  zSqlCompare.applyc  sí"  € Ø�G‰GˆOØØ�J‰JÐÜ"›ˆDŒJØ×#Ñ#Ô%ØØ—W‘W—]‘]“_ˆ
ØˆØˆ	ØˆØˆ	Øˆ	Øˆ	Ø—‘ˆØ�J‰JÑ"Ø—z‘z×/Ñ/Ó1ˆHØŸ
™
×6Ñ6Ó8ˆIØ—z‘z×0Ñ0Ó2ˆHØŸ
™
×1Ñ1Ó3ˆIØ—
‘
—‘Ð*ØŸ:™:×2Ñ2°7Ó;�Ü ›F�	Ü'Ó)�Ø�ØœC ›MÒ)Ø+-°ª7°r¼CÀ»MÒ7I˜8 Bš<Èt�CØ˜q™&�BØ!%�C—E‘E˜#‘Jð œC ›MÓ)ð �ØœC ›MÒ)Ø+-°ª7°r¼CÀ»MÒ7I˜8 Bš<Èt�CØ˜q™&�BØ  C§E¡E™\Ø!×(Ñ(¨Ô-ð	 œC ›MÓ)ð
 �K‰KÐ#ØŸ™×2Ñ2Ó4ˆIØ�ØŸ™�Ø�H‰HÐ ØŸ™×/Ñ/Ó1ˆIØ�ØŸ™‘à!ˆIÜ›&ˆÜ›6ÐÜ$Ó&ˆÜ$Ó&ˆÜ$Ó&ˆÜ+Ó-ˆØˆØˆÜ�(‹mˆØ�CŠxØˆAØ�q‘&ˆBØYZˆO×Ñ¨a°1ªf¸¼SÀ»]Ò9J˜x¨š{ÐPTÑVð �C‹xð ˆÜ�)‹nˆØ�CŠxØˆAØ�q‘&ˆBØ#$¨¢6¨a´#°i³.Ò.@�9˜Q’<ÀdˆCØˆH�J‰J�s‰Oð	 �C‹xð
 ˆÜ�)‹nˆØ�CŠxØˆAØ�q‘&ˆBØ#$¨¢6¨a´#°i³.Ò.@�9˜Q’<ÀdˆCØ˜HŸJ™JÑ&Ø!%�ØˆH�J‰J�s‰Oð �C‹xð ˆÜ�)‹nˆØ�CŠxØˆAØ�q‘&ˆBØ#$¨¢6¨a´#°i³.Ò.@�9˜Q’<ÀdˆCØ˜HŸJ™JÑ&Ø!%�ØˆH�J‰J�s‰OØ�x—z‘zÑ!Ø˜8Ÿ:™:Ñ%Ø#×*Ñ*¨3Ô/Ø  O×$5Ñ$5Ñ5Ø(×/Ñ/°Ô4ð �C‹xô $›+ˆ�
‰
ŒØˆÜ�)‹nˆØ�CŠxØˆAØ�q‘&ˆBØ#$¨¢6¨a´#°i³.Ò.@�9˜Q’<ÀdˆCØ�x—z‘zÑ!Ø—
‘
—‘×$Ñ$ Q x§z¡z§~¡~°c¸$Ó'?Õ@à—
‘
—‘×$Ñ$ Q rÔ*ð �C‹xð ˆÜ�)‹nˆØ�CŠxØˆAØ�q‘&ˆBØ#$¨¢6¨a´#°i³.Ò.@�9˜Q’<ÀdˆCØ˜HŸJ™JÑ&Ø—
‘
—‘×$Ñ$ R¨Ô*ð �C‹xð 	×Ñ˜ 9¨X°h¸xÈÏ
É
ÔSØ�
‰
×Ñ˜$Ÿ*™* T§[¡[Ô1Ø�H‰HÐ Ø×Ñ˜Y y°¸(À8ÈDÏJÉJ×L`ÑL`ÔaØ�J‰J× Ñ ×'Ñ'¨¯
©
°4·8±8Ô<Øˆ
Øˆ
Øˆ
Ø�J‰JÐ"ØŸ™×6Ñ6Ó8ˆJØ�K‰KÐ#ØŸ™×7Ñ7Ó9ˆJØ�H‰HÐ ØŸ™×4Ñ4Ó6ˆJØ�;Š;Ø!¨zÐ/A¡VÀzÑRˆJØ%°:Ð3E©È:ÑVˆJØ�?Š?Ø$°*Ð2D©È*ÑUˆJØˆØˆÜ�(‹mˆØ�CŠxØˆAØ�q‘&ˆBØ�A’Ø+7Ð+?¡À\ÐUXÑ X�Ø'3Ð';™VÀÔQ\×QiÑQiÐjp÷  kEñ  kEð  VWð  [\ò  V\ð  abô  ehð  iqó  erò  arð  GOð  PQò  GRð  x|ó  k~ó  Rñ  ˆLð �C‹xð ˆØˆÜ�/Ó"ˆØ�CŠxØˆAØ�q‘&ˆBØ�A’Ø+7Ð+?¡À\ÐUXÑ X�Ø'3Ð';™VÀÔQ\×QiÑQiÐjp÷  kEñ  kEð  ]^ð  bcò  ]cð  hiô  loð  pó  l@ò  h@ð  GVð  WXò  GYð  FJó  kLó  RMñ  MˆLð �C‹xð ˆØˆÜ�)‹nˆØ�CŠxØˆAØ�q‘&ˆBØ�A’Ø,9Ð,A¡&À}ÐX[Ñ![�Ø(5Ð(=™fÀ=ÔT_×TlÑTlð  |Fð  |NÑqwð  T^ð  beñ  qeô  it÷  iAñ  iAð  BF÷  BLñ  BL÷  B`ñ  B`ð  rsð  wxò  rxð  }~ô  ADð  ENó  AOò  }Oð  bkð  lmò  bnð  UYó  B[ó  i\ñ  p\ó  U_ñ  _ˆMð �C‹xð ˆØˆÜ�)‹nˆØ�CŠxØˆAØ�q‘&ˆBØ�A’Ø,9Ð,A¡&À}ÐX[Ñ![�Ø(5Ð(=™fÀ=ÔT_×TlÑTlð  |Fð  |NÑqwð  T^ð  beñ  qeô  it÷  iAñ  iAð  BF÷  BMñ  BM÷  Bañ  Bað  stð  xyò  syð  ~ô  BEð  FOó  BPò  ~Pð  clð  mnò  coð  VZó  B\ó  i]ñ  p]ó  U`ñ  `ˆMð �C‹xð ˆØ�H‰HÐ ØˆBÜ�i“.ˆCØ˜’8Ø�Ø˜1‘f�Ø˜’EØ0=Ð0E¡fÈ=Ð\_Ñ%_�MØ,9Ð,A¡&À}ÔXc×XpÑXpð  @Jð  @RÑu{ð  Xbð  fiñ  uiô  mx÷  mEñ  mEð  FJ÷  FNñ  FN÷  Fbñ  Fbð  tuð  yzò  tzð  @ô  CFð  GPó  CQò  Qð  dmð  noò  dpð  W[ó  F]ó  m^ñ  t^ó  Yañ  "a�ð ˜“8ð ˆØˆÜ�(‹mˆØ�CŠxØˆAØ�q‘&ˆBØ�A’Ø+7Ð+?¡À\ÐU\Ñ \�Ø×*Ñ*¸1Àº6ÀaÌ#ÈhË-ÒFW¨H°QªKÐ]aÓcˆAØ'3Ð';™VÀÔQ\×QiÑQið  zDð  zLÑouð  R\ð  `cñ  ocð  rsð  r{ñ  hnð  ABñ  nCð  GQñ  mQó  RTñ  TˆLð �C‹xð ˆØˆÜ�(‹mˆØ�CŠxØˆAØ�q‘&ˆBØ�A’Ø,9Ð,A¡&À}ÐX_Ñ!_�Ø×*Ñ*¸1Àº6ÀaÌ#ÈhË-ÒFW¨H°QªKÐ]aÓcˆAØ(5Ð(=™fÀ=ÔT_×TlÑTlð  }Gð  }OÑrxð  U_ð  cfñ  rfð  uvð  u~ñ  kqð  DEñ  qFð  JTñ  pTó  UWñ  WˆMð �C‹xð ˆØˆÜ�(‹mˆØ�CŠxØˆAØ�q‘&ˆBØ�A’Ø-;Ð-C¡6ÈÐ[bÑ"b�Ø×*Ñ*¸1Àº6ÀaÌ#ÈhË-ÒFW¨H°QªKÐ]aÓcˆAØ)7Ð)?™vÀ^ÔWb×WoÑWoð  CMð  CUÑx~ð  [eð  ilñ  xlð  {|ð  {Dñ  qwð  JKñ  wLð  PVñ  vVð  eoð  ewñ  [að  }Gñ  uHð  LOñ  tOð  ^_ð  ^gñ  TZð  mnñ  soó  Xrñ  rˆNð �C‹xð ˆØ�H‰HÐ ØˆBÜ�h“-ˆCØ˜’8Ø�Ø˜1‘f�Ø˜’EØ1?Ð1G¡vÈ^Ð_fÑ&f�NØ×.Ñ.¸qÀAºvÈ!ÌcÐRZËmÒJ[°¸²ÐaeÓg�Ø-;Ð-C¡6ÈÔ[f×[sÑ[sð  GQð  GYñ  }Cð  _ið  mpñ  |pð  @ð  Hñ  u{ð  NOñ  {Pð  TZñ  zZð  isð  i{ñ  _eð  AKñ  yLð  PSñ  xSð  bcð  bkñ  X^ð  qrñ  wsó  \vñ  #v�ð ˜“8ð ÐØˆÜÐ"Ó#ˆØ�CŠxØˆAØ�q‘&ˆBØ�A’Ø0AÐ0I¡fÐO`ÐdjÑ%jÐ!Ø×*Ñ*À1ÈÂ6ÈaÔRUÐVfÓRgÒNgÐ,<¸QÒ,?ÐmqÓsˆAØ,=Ð,E¡&ÐK\Ô`k×`xÑ`xð  LVð  L^ñ  BHð  dnð  ruñ  Auð  DEð  DMñ  z@ð  STñ  @Uð  Ycñ  cð  r|ð  rDñ  hnð  JTñ  ~Uð  Y\ñ  }\ð  klð  ktñ  agð  z{ñ  ||ó  añ  "Ðð �C‹xð ˆÜ�)‹nˆØ�CŠxØˆAØ�q‘&ˆBØ#$¨¢6¨a´#°i³.Ò.@�9˜Q’<ÀdˆCØ˜HŸJ™JÑ&Ø%¨Ò+Ø4EÐ4M©&ÐSdÐhnÑ)nÐ%Ø×.Ñ.¨sÓ3�Ø0AÐ0I¡fÐO`Ôdo×d|Ñd|ð  MWð  M_ñ  CIð  eoð  svñ  Bvð  EFð  ENñ  {Að  TUñ  AVð  Zhñ  @hó  ekñ  &kÐ!ð �C‹xð �H‰HÑ ØˆBÜÐ&Ó'ˆCØ˜’8Ø�Ø˜1‘f�ÜÐ)Ó*¨QÒ.Ø4EÐ4M©&ÐSdÐhnÑ)nÐ%Ø×.Ñ.ÀqÈAÂvÐRSÔVYÐZjÓVkÒRkÐ0@ÀÒ0CÐquÓw�Ø0AÐ0I¡fÐO`Ôdo×d|Ñd|ð  PZð  Pbñ  FLð  hrð  vyñ  Eyð  HIð  HQñ  ~Dð  WXñ  DYð  ]gñ  Cgð  v@ð  vHñ  lrð  NXñ  BYð  ]`ñ  A`ð  opð  oxñ  ekð  ~ñ  @@ó  eCñ  &CÐ!ð ˜“8ð ˆBÜ�i“.ˆCØ˜’8Ø�Ø˜1‘f�Ø'(¨A¢v°!´c¸)³nÒ2D�y ’|È$�Ø §
¡
Ñ*Ø)¨RÒ/Ø8IÐ8Q©fÐWhÐlrÑ-rÐ)Ø×2Ñ2°3Ó7�AØ4EÐ4M©&ÐSdÔhs÷  iAñ  iAð  Q[ð  Qcñ  GMð  isð  wzñ  Fzð  IJð  IRñ  Eð  XYñ  EZð  ^lñ  Dló  ioñ  *oÐ%ð ˜“8ð ˆØˆØˆÜ�)‹nˆØ�CŠxØˆAØ�q‘&ˆBØ Ò"Ø+7Ð+?¡À\ÐUXÑ X�Ø¤§
¡
¨1£Ñ-ˆCØ×*Ñ*¸AÀºFÀqÌ3ÈyË>ÒGY¨I°aªLÐ_cÓeˆAØ'3Ð';™VÀÔQ\×QiÑQið  {Eð  {MÑpvð  S]ð  adñ  pdð  stð  s|ñ  ioð  BCñ  oDð  HNñ  nNð  ]`ð  ]hñ  SYð  nqñ  mró  Ruñ  uˆLØ�O‰O˜CÔ ð �C‹xð ˆÜ�)‹nˆØ�CŠxØˆAØ�q‘&ˆBØ Ò"Ø+7Ð+?¡À\ÐUXÑ X�Ø¤§¡¨A£Ñ.°#Ñ5ˆCØ×*Ñ*¸AÀºFÀqÌ3ÈyË>ÒGY¨I°aªLÐ_cÓeˆAØ'3Ð';™VÀÔQ\×QiÑQið  {Eð  {MÑpvð  S]ð  adñ  pdð  stð  s|ñ  ioð  BCñ  oDð  HNñ  nNð  ]`ð  ]hñ  SYð  nqñ  mró  Ruñ  uˆLØ�O‰O˜CÔ ð �C‹xð �H‰HÐ ØˆBÜ�i“.ˆCØ˜’8Ø�Ø˜1‘f�Ø  BÒ&Ø/;Ð/C¡VÈÐY\Ñ$\�LØ"¤S§Z¡Z°£]Ñ2°cÑ9�Ø×.Ñ.ÀÀQÂÈ1ÌsÐS\Ë~ÒK]°	¸!²ÐcgÓi�Ø+7Ð+?¡À\ÔU`×UmÑUmð  Ið  QÑtzð  Wað  ehñ  thð  wxð  w@ñ  msð  FGñ  sHð  LRñ  rRð  adð  alñ  W]ð  ruñ  qvó  Vyñ  !y�Ø—‘ Ô$ð ˜“8ð ˆ	ØˆÜ�(‹mˆØ�CŠxØˆAØ�q‘&ˆBØ�A’Ø(1Ð(9™f¸yÈCÑO�	Ø×*Ñ*¸1Àº6ÀaÌ#ÈhË-ÒFW¨H°QªKÐ]aÓcˆAØ$-Ð$5™&¸9ÐSTÐS\ÉÐbcÑdˆIð �C‹xð ˆØˆØˆØˆØÐ"ØˆEØ—
‘
Ð&Ø&0Ð&8™F¸jÈCÑOÐ^hÐ^pÑTZð  wAñ  B�Ø—‘Ð'Ø&0Ð&8™F¸jÈCÑOÐ^hÐ^pÑTZð  wAñ  B�Ø—‘Ð$Ø&0Ð&8™F¸jÈCÑOÐ^hÐ^pÑTZð  wAñ  B�ØˆŒØˆŒØˆŒØˆŒØ�K‰KÐ#ØJÐX^ÐXfÉfÐlrÑsð  xKñ  Kð  Zgð  Zoñ  PVð  uBñ  Cð  GOñ  Oð  ^hð  ^pñ  TZð  v@ñ  AˆKØ—
‘
Ð&Ø*5Ð*=¡À;ÔR]×RjÑRjÐmzð  ISð  I[ñ  Eð  akñ  nló  Soñ   o�Ø*5Ð*=¡À;ÔR]×RjÑRjÐntð  CQð  CYÑx~ð  _mñ  onô  r}÷  rJñ  rJð  KO÷  KUñ  KUð  Vbó  Kcó  rdñ  ndó  Sgñ   g�Ø˜jÒ(Ú%NÐQZÑ%ZÐ!Ø—‘˜{Ð+<Ô=Ø�H‰HÐ ØPÐ^dÐ^lÑTZÐrxÑyð  ~Kñ  Kð  Zgð  Zoñ  PVð  uBñ  Cð  GOñ  Oð  ^hð  ^pñ  TZð  v@ñ  AˆKØ—
‘
Ð&Ø*5Ð*=¡À;ÔR]×RjÑRjÐmzð  ISð  I[ñ  Eð  akñ  nló  Soñ   o�Ø*5Ð*=¡À;ÔR]×RjÑRjÐntð  CQð  CYÑx~ð  _mñ  onô  r}÷  rJñ  rJð  KO÷  KUñ  KUð  Vbó  Kcó  rdñ  ndó  Sgñ   g�Ø˜jÒ(Ú%NÐQZÑ%ZÐ!Ø—‘˜{Ð+<Ô=Ø�Z‰ZÑ#¨4¯;©;Ñ+BØCÐQWÐQ_ÁvÐekÑlð  qGñ  Gð  V\ð  Vdñ  LRð  jpñ  qð  uKñ  KˆKØ—‘Ð$Ø*5Ð*=¡À;ÔR]×RjÑRjÐx~ð  yGÑntð  MSð  Wlñ  nló  Soñ   o‘à*5Ð*=¡À;ÐRZÑZ�Ø&1Ð&9™F¸{Ìk×NfÑNfð  vBð  vJÑkqð  P\ð  `hñ  khð  wAð  wIñ  msð  OYñ  jZó  O]ñ  ]ˆKØ˜jÒ(Ø*5Ð*=¡À;ÔR]×RjÑRjÐo}ð  LVð  L^ñ  BHð  dnñ  poð  syñ  oyð  HVð  H^ñ  ~Dð  drñ  nsó  Svñ   v�Ø—‘Ð%¨Z¸:Ò-EØ*5Ð*=¡À;ÔR]×RjÑRjÐo}ð  LVð  L^ñ  BHð  dnñ  poð  syñ  oyð  HVð  H^ñ  ~Dð  drñ  nsó  Svñ   v�Ø&1Ð&9™F¸{Ìk×NfÑNfÐgk×gqÑgqð  sDó  hEó  OFñ  FˆKÚ!gÐjrÑ!rÐØ�N‰N˜;Ð'8Ô9Ø�H‰HÐØ—
‘
Ð&Ø#HÐV\ÐVdÉFÐjpÑ#qð  vOñ  #Oð  ^kð  ^sñ  TZð  yFñ  "Gð  KSñ  !Sð  blð  btñ  X^ð  zDñ   E�Ø—K‘KÐ+Ø.9Ð.A¡FÀ{ÔVa×VnÑVnÐq~ð  MWð  M_ñ  CIð  eoñ  rpó  Wsñ  $s�KØ.9Ð.A¡FÀ{ÔVa×VnÑVnÐrxð  GUð  G]ñ  }Cð  cqñ  srô  vA÷  vNñ  vNð  OS÷  OYñ  OYð  Zgó  Ohó  viñ  rió  Wlñ  $l�KØ *Ò,Ú)RÐU^Ñ)^Ð%Ø—N‘N ;Ð/@ÔAØ�H‰HÐ Ø:ÈÈ¹fÐ\bÑcÐg}Ñ}ð  MSð  M[ñ  CIð  agñ  hð  lBñ  BˆKØ&1Ð&9™F¸{Ìk×NfÑNfÐtzð  uCÑjpð  IOð  Siñ  jió  Olñ  lˆKØ&1Ð&9™F¸{ÐYeÐYmÉvÐsñ  AˆKØ&1Ð&9™F¸{Ìk×NfÑNfÐiqð  @Jð  @RÑu{ð  Xbñ  jcó  Ofñ  fˆKØ—‘Ð'Ø*5Ð*=¡À;ÔR]×RjÑRjð  pCð  Q[ð  Qcñ  GMð  isñ  ptð  x~ñ  o~ð  M[ð  Mcñ  CIð  iwñ  nxó  S{ñ   {�Ø&1Ð&9™F¸{Ìk×NfÑNfÐk~ð  MWð  M_ñ  CIð  eoñ  lpð  tzñ  kzð  IWð  I_ñ  Eð  esñ  jtó  Owñ  wˆKØ&1Ð&9™F¸{ð  OHñ  HˆKÚ!gÐjrÑ!rÐØ�N‰N˜;Ð'8Ô9Ø�L‰L˜AÒØ�J‰J×$Ñ$Ô&Ø�z‰zÐr   r  )r(   r)   r*   r?   r@   rA   rB   r   r  r  r  r[   r  r   r!  rõ  r+   r   r   rô  rô  š  sL   „ Ø!€Nð E€Iò F€JÚr€Kó+ò:
ò1òfò
97òvò>ò
(ó8qr   rô  c                   ó   — e Zd Zd ZdZg d¢Zy)ÚSqlDatabaser+   )Ú
getColumnsrR  rS  Úexecr?  r@  r@  r‰   rA  rø  rM  r&  r%  Nrâ   r+   r   r   ry  ry  Ù  s   „ Ø"€NØ€Iò x�Kr   ry  c                   ó   — e Zd Zd ZdZg d¢Zy)Ú	SqlHelperr+   )ÚgetTableNamesÚ	countRowsÚ	getRowIDsr±  r²  rÞ   r'  rv  Nrâ   r+   r   r   r}  r}  à  s   „ Ø €NØ€IÚu�Kr   r}  c                   ó  — e Zd Zd ZdZg d¢Zg d¢Zeee	gZ
d)d„Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d)d „Z'd!„ Z(d"„ Z)d#„ Z*d$„ Z+d%„ Z,d&„ Z-d'„ Z.d(„ Z/y)*ÚSqlTable)	rù  r*  r!   ÚquotedTableNameÚcacheÚcolumnNamesrˆ   ÚhelperÚid2rid)$rz  r-  rQ  r,  rR  rS  r  r;  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  rv  r@  rX  rZ  r\  r¸  r·  ró  r¹  rs  r€  r�  rŽ  rº  Nc                 óà   — d | _         d | _        d | _        || _        || _        || _        |€|j                  «       | _        t        «       | _        d| _	        d | _
        | j                  «        y r8  )r…  rƒ  r*  rù  r!   r†  r&  rp   r„  rˆ   r‡  rz  )r   rù  r!   r†  s       r   r   zSqlTable.__init__î  sb   € ØˆÔØ#ˆÔØˆŒØˆŒØˆŒ	ØˆŒØˆNØŸ,™,›.ˆDŒKÜ#Ó%ˆŒ
ØˆŒØˆŒØ�‰Õr   c                 óš  — | j                   �y | j                  €y | j                  j                  | j                  «      | _         t	        «       | _        d}| j                   }|t        |«      k  r\|dk\  r|t        |«      k  r||   nd }|dz   }| j
                  }|j                  «       }|j                  |«       |t        |«      k  rŒ[y y rW  )	r*  rù  rz  r!   r�   r…  rª   rº  r‚   )r   rÈ   rÉ   rA  r„   r+  s         r   rz  zSqlTable.getColumnsü  sª   € Ø�L‰LÐ$ØØ�G‰GˆOØØ—w‘w×)Ñ)¨$¯)©)Ó4ˆŒÜ›6ˆÔØˆØ�l‰lˆØ”C˜“HŠ}Ø  Ašg¨"¬s°3«xª-�3�r’7¸TˆCØ�q‘&ˆBØ×$Ñ$ˆEØ—‘“ˆAØ�L‰L˜ŒOð ”C˜“H�}r   c                 ó2  — | j                  «        t        «       }d}| j                  }|t        |«      k  r`|dk\  r|t        |«      k  r||   nd }|dz   }|j	                  «       sŒ>|j                  «       }|j                  |«       |t        |«      k  rŒ`|S rW  ©rz  r�   r*  rª   r  rº  r‚   ©r   r—   rÈ   rÉ   rA  r+  s         r   r-  zSqlTable.getPrimaryKey  sŠ   € Ø�‰ÔÜ“ˆØˆØ�l‰lˆØ”C˜“HŠ}Ø  Ašg¨"¬s°3«xª-�3�r’7¸TˆCØ�q‘&ˆBØ×$Ñ$Ô&ØØ—‘“ˆAØ�M‰M˜!Ôð ”C˜“H‹}ð ˆr   c                 ó2  — | j                  «        t        «       }d}| j                  }|t        |«      k  r`|dk\  r|t        |«      k  r||   nd }|dz   }|j	                  «       rŒ>|j                  «       }|j                  |«       |t        |«      k  rŒ`|S rW  r‹  rŒ  s         r   rQ  zSqlTable.getAllButPrimaryKey  sŠ   € Ø�‰ÔÜ“ˆØˆØ�l‰lˆØ”C˜“HŠ}Ø  Ašg¨"¬s°3«xª-�3�r’7¸TˆCØ�q‘&ˆBØ×ÑÔ!ØØ—‘“ˆAØ�M‰M˜!Ôð ”C˜“H‹}ð ˆr   c                 ó:   — | j                  «        | j                  S r   ©rz  r…  r   s    r   r,  zSqlTable.getColumnNames(  ó   € Ø�‰ÔØ×ÑÐr   c                 óž   — | j                   �| j                   S | j                  j                  | j                  «      | _         | j                   S r   )rƒ  rù  rR  r!   r   s    r   rR  zSqlTable.getQuotedTableName,  sA   € Ø× Ñ Ð,Ø×'Ñ'Ð'Ø#Ÿw™w×9Ñ9¸$¿)¹)ÓDˆÔØ×#Ñ#Ð#r   c                 ó8   — | j                   j                  |«      S r   )rù  rS  r    s     r   rS  zSqlTable.getQuotedColumnName2  s   € Ø�w‰w×*Ñ*¨4Ó0Ð0r   c                 ó.  — | j                   dk\  r9|dz
  }|dk\  r6|dk\  r'|t        | j                  «      k  r| j                  |   nd }n|dk(  rd}|dk  rR| j                  «        |dk\  r1|t        | j                  «      k  r| j                  |   j
                  S d j
                  S | j                  j                   j                  |d «      }|�€t        «       }| j                  «        | j                  j                  | j
                  || j                  «       | j                  j                  «       rld}| j                  «       }||k  r:|}|dz   }| j                  j                  |«      }|j                  ||«       ||k  rŒ:| j                  j                  «       rŒl| j                  j                  «        | j                  j                  ||«       | j                  j                   j                  |d «      j                   j                  |d «      S r®   )rˆ   rª   r‡  rz  r*  r!   r„  r‰   rp   rù  r@  r…  r@  r
  r|   rA  )r   r+  r  r…  rÈ   rÉ   rÀ  r;   s           r   r  zSqlTable.getCell5  s�  € Ø�F‰F�aŠKØ�Q‘ˆAØ�Q’Ø'(¨A¢v°!´c¸$¿+¹+Ó6FÒ2F�T—[‘[ ’^ÈD‘Ø�1ŠfØˆAØ�ŠEØ�O‰OÔØ'(¨A¢v°!´c¸$¿,¹,Ó6GÒ2G�D—L‘L ‘O×WÑWÐWÈT×WÑWÐWØ�j‰j�l‰l×Ñ˜q Ó&ˆØ‰KÜ Ó"ˆCØ�O‰OÔØ�G‰G×Ñ˜TŸY™Y q¨×)9Ñ)9Ô:Ø—'‘'—,‘,”.Ø�Ø—n‘nÓ&�Ø˜C’xØ�AØ˜q™&�BØŸ™Ÿ™ A›�AØ—G‘G˜A˜a”Lð	 ˜C“xð —'‘'—,‘,•.ð �G‰G�K‰KŒMØ�J‰J�N‰N˜1˜SÔ!Ø�z‰z�|‰|×Ñ  $Ó'×)Ñ)×-Ñ-¨a°Ó5Ð5r   c                 óè   — | j                   j                  j                  |d «      }|€6t        «       }| j	                  «        | j                   j                  ||«       |}|j                  ||«       y r   )r„  rˆ   r‰   rp   rz  r|   )r   r+  r  r.  r…  r;   s         r   r;  zSqlTable.setCellCacheP  sW   € Ø�j‰j�l‰l×Ñ˜q Ó&ˆØˆKÜ Ó"ˆCØ�O‰OÔØ�J‰J�N‰N˜1˜SÔ!ØˆØ�‰��!�r   c                 ó   — t        d«       y )NzSqlTable cannot set cells yetrÇ  r-  s       r   r  zSqlTable.setCellY  s   € ÜÐ-Õ.r   c                 ó   — t        «       S r   rÊ  r   s    r   r  zSqlTable.getCellView\  rÌ  r   c                  ó   — yr|  r+   r   s    r   r  zSqlTable.isResizable_  r}  r   c                  ó   — yr|  r+   r9  s      r   r  zSqlTable.resizeb  r}  r   c                  ó   — y r   r+   r   s    r   r  zSqlTable.cleare  ry   r   c                  ó   — yr|  r+   r=  s      r   r  zSqlTable.insertOrDeleteRowsh  r}  r   c                  ó   — yr|  r+   rA  s      r   r  zSqlTable.insertOrDeleteColumnsk  r}  r   c                  ó   — yr|  r+   r   s    r   r	  zSqlTable.trimBlankn  r}  r   c                 óL   — | j                  «        t        | j                  «      S r   )rz  rª   r*  r   s    r   r
  zSqlTable.get_widthq  s   € Ø�‰ÔÜ�4—<‘<Ó Ð r   c                 ó:   — | j                   dk\  r| j                   S y)Nr   ro   rÄ  r   s    r   r  zSqlTable.get_heightu  s   € Ø�F‰F�aŠKØ—6‘6ˆMØr   c                  ó   — y r   r+   r   s    r   r  zSqlTable.getDataz  rE  r   c                  ó   — y r   r+   r   s    r   r  zSqlTable.clone}  rE  r   c                  ó   — y r   r+   r   s    r   r  zSqlTable.create€  rE  r   c                 ó   — | S r   r+   r   s    r   r  zSqlTable.getMetaƒ  r%  r   c                 óv   — | j                   j                  | j                  | j                  |«      }d | _        |S r   )r†  rv  rù  r!   r*  )r   r*  r—   s      r   rv  zSqlTable.alterColumns†  s.   € Ø—‘×)Ñ)¨$¯'©'°$·)±)¸GÓDˆØˆŒØˆr   c                 ó  — | j                   €t        d«       y|j                  dk(  r;| j                   j                  | j                  | j
                  |j                  «      S |j                  dk(  r;| j                   j                  | j                  | j
                  |j                  «      S |j                  dk(  rF| j                   j                  | j                  | j
                  |j                  |j                  «      S y)NzNo sql helperFro  rr  rw  )
r†  rõ  r>  r±  rù  r!   rE  r²  r?  rÞ   rÛ  s     r   r@  zSqlTable.changeRow‹  s³   € Ø�K‰KÐÜ�/Ô"ØØ�I‰I˜ÒØ—;‘;×%Ñ% d§g¡g¨d¯i©i¸¿¹Ó?Ð?Ø�i‰i˜5Ò Ø—;‘;×%Ñ% d§g¡g¨d¯i©i¸¿¹Ó@Ð@Ø�i‰i˜4ÒØ—;‘;×%Ñ% d§g¡g¨d¯i©i¸¿¹ÀÇÁÓGÐGØr   c                 óÄ  — d}| j                  «        t        | j                  «      }t        |dz   |«      }|j	                  ddd«       |j	                  ddd«       |j	                  ddd«       d}|}||k  rç|}|dz   }|dz   }|j	                  |d|dk\  r'|t        | j                  «      k  r| j                  |   nd «       |j	                  |d|dk\  r'|t        | j
                  «      k  r| j
                  |   nd j                  «       |j	                  |d|dk\  r'|t        | j
                  «      k  r| j
                  |   nd j                  rdnd	«       ||k  rŒç|S )
NrÆ  r{   r   ru  ÚtyperÒ  r·   r  r�   )rz  rª   r…  r1  r  r*  r  r  )r   Úpctr:  r­  rÈ   rÉ   r+  rÀ  s           r   rX  zSqlTable.asTable—  sE  € ØˆØ�‰ÔÜ�× Ñ Ó!ˆÜ˜!˜a™% Ó%ˆØ
�
‰
�1�Q�sÔØ
�
‰
�1�Q�vÔØ
�
‰
�1�Q�uÔØˆØˆØ�CŠxØˆAØ�q‘&ˆBØ�Q‘ˆAØ�J‰J�q˜°1¸²6¸aÄ#Àd×FVÑFVÓBWÒ>W˜D×,Ñ,¨QÒ/Ð]aÔcØ�J‰J�q˜¨q°Aªv¸!¼cÀ$Ç,Á,Ó>OÒ:O˜DŸL™L¨šOÐUY×eÑeÔfØ�J‰J�q˜¸aÀ1ºfÈÌSÐQU×Q]ÑQ]ÓM^ÒI^¨4¯<©<¸ª?Ðdh×*qÒ*q™IÐxzÔ|ð �C‹xð ˆ	r   c                  ó   — yr™   r+   r   s    r   rZ  zSqlTable.useForColumnChangesª  rE  r   c                  ó   — yr™   r+   r   s    r   r\  zSqlTable.useForRowChanges­  rE  r   c                  ó   — y r   r+   rß  s     r   r¸  zSqlTable.cloneMeta°  rE  r   c                  ó   — yr|  r+   r°  s     r   r·  zSqlTable.applyFlags³  r}  r   c                 ó   — | j                   S r   )rù  r   s    r   ró  zSqlTable.getDatabase¶  r¤   r   c                 óô   — | j                  «        | j                  j                  dt        j	                  | j                  «       «      z   dz   | j                  j                  «       g| j                  «       | S )NúSELECT * FROM z ORDER BY ?)rz  rù  r?  r“   r”   rR  rM  r…  r   s    r   r¹  zSqlTable.getRowStream¹  sv   € Ø�‰ÔØ�‰�‰Ð(¬;×+CÑ+CÀD×D[ÑD[ÓD]Ó+^Ñ^ÐboÑoÐrv×ryÑry×rÑró  sBð  rCð  DH÷  DTñ  DTô  	UØˆr   c                  ó   — yr|  r+   r   s    r   rs  zSqlTable.isNested¾  r}  r   c                  ó   — yr™   r+   r   s    r   r€  zSqlTable.isSqlÁ  rE  r   c                 ó†  — | j                   j                  «       r�t        «       }d}t        | j                  «      }||k  re|}|dz   }|dk\  r'|t        | j                  «      k  r| j                  |   nd }| j                   j                  |«      }||j                  |<   ||k  rŒe|S | j                   j                  «        y rW  )rù  r@  r´  rª   r…  r‰   rˆ   rA  ©r   r…  rÈ   rÉ   rÀ  rÃ   r;   s          r   r�  zSqlTable.fetchRowÄ  sª   € Ø�7‰7�<‰<Œ>Ü#Ó%ˆCØˆBÜ�d×&Ñ&Ó'ˆCØ˜’8Ø�Ø˜1‘f�Ø,-°ªF°q¼3¸t×?OÑ?OÓ;PÒ7P�T×%Ñ% aÒ(ÐVZ�Ø—G‘G—K‘K “N�Ø�—‘�a‘ð ˜“8ð ˆJØ�‰�‰ŒØr   c                 ó:   — | j                  «        | j                  S r   r�  r   s    r   rŽ  zSqlTable.fetchColumnsÓ  r�  r   c                 ó6   — | j                   j                  «       S r   )r!   ra   r   s    r   rº  zSqlTable.getName×  s   € Ø�y‰y×!Ñ!Ó#Ð#r   r   )0r(   r)   r*   r?   r@   rA   rB   r�  r¶  rÿ   rK  r   rz  r-  rQ  r,  rR  rS  r  r;  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  rv  r@  rX  rZ  r\  r¸  r·  ró  r¹  rs  r€  r�  rŽ  rº  r+   r   r   r‚  r‚  ç  sÞ   „ Ø€NØm€IÚn€Jò h€KØ  uÐ-€Nóòò òò ò$ò1ò6ò6ò/òòòòòòòò!òò
òòòòò

òò&òóòòòò
òòò ó$r   r‚  c                   ó0   — e Zd Zd ZdZddgZdgZdd„Zd„ Zy)	ÚSqlTableName©r!   Úprefixr!   r¸  ra   Nc                 ó0   — |€d}|€d}|| _         || _        y rY  r·  )r   r!   r¸  s      r   r   zSqlTableName.__init__ã  s$   € ØˆLØˆDØˆNØˆFØˆŒ	Øˆ�r   c                 ó¼   — | j                   dk(  r| j                  S t        j                  | j                   «      dz   t        j                  | j                  «      z   S )Nr�   rÂ  )r¸  r!   r“   r”   r   s    r   ra   zSqlTableName.toStringë  sI   € Ø�K‰K˜2ÒØ—9‘9ÐÜ×)Ñ)¨$¯+©+Ó6¸Ñ<Ä×@XÑ@XÐY]×YbÑYbÓ@cÑcÐdr   r  ró   r+   r   r   r¶  r¶  Ý  s(   „ Ø#€NØ"€IØ˜(Ð#€JØ�,€Kóóer   r¶  c                   óŠ   — e Zd Zd ZdZg d¢Zg d¢ZegZd„ Z	d„ Z
d„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)r  rè  r   c                 óÚ  — d | _         d | _        || _        | j                  j                  «       }|j	                  |«      }d }t        |«      }|j                  �Ùt        «       }d}|j                  }	|t        |	«      k  r`|dk\  r|t        |	«      k  r|	|   nd }
|dz   }|j                  |
|«      }|j                  |
«      }||j                  |<   |t        |	«      k  rŒ`d}d}|t        |«      k  rA|dk\  r|t        |«      k  r||   nd }
|dz   }|
|j                  v r|dz   }|t        |«      k  rŒAt        d|dz   «      | _        | j                  j                  ddd«       | j                  j                  ddd«       | j                  j                  «       }d}d}|t        |«      k  r¿|dk\  r|t        |«      k  r||   nd }
|dz   }|
}|�+|
|j                  vrŒ@|j                  j                  |
d «      }| j                  j                  d||«       | j                  j                  d||j                  t!        |t#        |
«      «      «      «       |dz   }|t        |«      k  rŒ¾y y )Nr   r{   rÒ  r!   rÅ  )r–  r  rù  r&  r~  rª   rX   r´  r¬  r­  rˆ   r1  r  r  r‰   rë  r‚  r¶  )r   rù  r–  rÔ  r†  rê  rì  r`   rÈ   rÉ   r!   r·   ræ   r;   r@  Úcnames                   r   r   zSqlTables.__init__ú  s7  € ØˆŒ
ØˆŒØˆŒØ—‘×"Ñ"Ó$ˆØ×$Ñ$ RÓ(ˆØˆÜ�E“
ˆØ�L‰LÐ$Ü'Ó)ˆGØˆBØ—,‘,ˆCØœ˜C›’=Ø#%¨¢7¨r´C¸³Hª}˜˜BšÀ$�Ø˜1‘f�Ø×)Ñ)¨$¨tÓ4�Ø×.Ñ.¨tÓ4�Ø!&�—	‘	˜#‘ð œ˜C›“=ð ˆEØˆBØœ˜E›
’?Ø%'¨1¢W°´c¸%³j²˜˜bš	Àd�Ø˜1‘f�Ø˜GŸI™IÑ%Ø" Q™Y�Eð	 œ˜E›
“?ô
 ˜Q ¨¡	Ó+ˆŒØ�‰�‰�q˜˜6Ô"Ø�‰�‰�q˜˜7Ô#Ø�F‰F×ÑÓ ˆØˆØˆØ”C˜“JŠØ!# q¢¨R´#°e³*ª_�E˜"’IÀ$ˆDØ�q‘&ˆBØˆEØÐ#Ø §¡Ñ*ØØŸ	™	Ÿ™ d¨4Ó0�Ø�F‰F�N‰N˜1˜R Ô&Ø�F‰F�N‰N˜1˜R §¡¬H°R¼ÀTÓ8JÓ,KÓ LÔMØ�q‘&ˆBð ”C˜“J�r   c                 ó:   — | j                   j                  ||«      S r   rî  r*  s      r   r  zSqlTables.getCell%  rï  r   c                  ó   — y r   r+   r-  s       r   r  zSqlTables.setCell(  ry   r   c                 ó6   — | j                   j                  «       S r   r5  r   s    r   r  zSqlTables.getCellView+  r6  r   c                  ó   — yr|  r+   r   s    r   r  zSqlTables.isResizable.  r}  r   c                  ó   — yr|  r+   r9  s      r   r  zSqlTables.resize1  r}  r   c                  ó   — y r   r+   r   s    r   r  zSqlTables.clear4  ry   r   c                  ó   — yr|  r+   r=  s      r   r  zSqlTables.insertOrDeleteRows7  r}  r   c                  ó   — yr|  r+   rA  s      r   r  zSqlTables.insertOrDeleteColumns:  r}  r   c                  ó   — yr|  r+   r   s    r   r	  zSqlTables.trimBlank=  r}  r   c                 ó6   — | j                   j                  «       S r   rù  r   s    r   r
  zSqlTables.get_width@  rú  r   c                 ó6   — | j                   j                  «       S r   rü  r   s    r   r  zSqlTables.get_heightC  rý  r   c                  ó   — y r   r+   r   s    r   r  zSqlTables.getDataF  rE  r   c                  ó   — y r   r+   r   s    r   r  zSqlTables.cloneI  rE  r   c                  ó   — y r   r+   r   s    r   r  zSqlTables.createL  rE  r   c                 ó   — t        | dd«      S r™   r  r   s    r   r  zSqlTables.getMetaO  r  r   N)r(   r)   r*   r?   r@   rA   rB   rÿ   rK  r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r+   r   r   r  r  ó  sq   „ Ø €NØ$€IÚ%€Jò Z€KØ�W€Nò)òV#òò$òòòòòòò"ò#òòòó*r   r  c                   óp   — e Zd Zd ZdZg d¢ZegZd„ Zd„ Z	d„ Z
d„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)rÈ  r+   )r~  r  r€  rÞ   r²  r±  r'  ÚcolumnListSqlÚfetchSchemaÚsplitSchemar{  rv  c                  ó   — y r   r+   r   s    r   r   zSqliteHelper.__init__[  ry   r   c                 óî   — d}|j                  |d dg«      sy t        «       }|j                  «       r3|j                  d«      }|j	                  |«       |j                  «       rŒ3|j                  «        |S )Nz?SELECT name FROM sqlite_master WHERE type='table' ORDER BY namer!   r   )r?  r�   r@  r‰   r‚   rA  )r   rù  Úqrê  r+  s        r   r~  zSqliteHelper.getTableNames^  s_   € ØMˆØ—‘˜˜4  Ô)ØÜ“ˆØ�g‰gŒiØ—‘�q“	ˆAØ�L‰L˜ŒOð �g‰g�ið 	�‰ŒØˆr   c                 ó  — dt         j                  |j                  |«      «      z   }|j                  |d dg«      syd}|j	                  «       r"|j                  d«      }|j	                  «       rŒ"|j                  «        |S )NzSELECT COUNT(*) AS ct FROM r,  ro   r   )r“   r”   rR  r?  r@  r‰   rA  )r   rù  r!   rÓ  r,  s        r   r  zSqliteHelper.countRowsi  sl   € Ø*¬[×-EÑ-EÀb×F[ÑF[Ð\`ÓFaÓ-bÑbˆØ—‘˜˜4  Ô'ØØˆØ�g‰gŒiØ—‘˜“ˆBð �g‰g�ià
�‰ŒØˆ	r   c                 ó>  — t        «       }dt        j                  |j                  |«      «      z   dz   }|j	                  |d dg«      sy |j                  «       r3|j                  d«      }|j                  |«       |j                  «       rŒ3|j                  «        |S )NzSELECT ROWID AS r FROM z ORDER BY ROWIDr¡   r   )	r�   r“   r”   rR  r?  r@  r‰   r‚   rA  )r   rù  r!   r—   rÓ  r.  s         r   r€  zSqliteHelper.getRowIDss  s‚   € Ü“ˆØ'¬+×*BÑ*BÀ2×CXÑCXÐY]ÓC^Ó*_Ñ_ÐctÑtˆØ—‘˜˜4  Ô&ØØ�g‰gŒiØ—‘�q“	ˆAØ�M‰M˜!Ôð �g‰g�ið 	�‰ŒØˆr   c                 ó´  — dt         j                  |j                  |«      «      z   dz   }t        «       }|j	                  «       }|j                  «       r™|j                  «       }t        |«      dkD  r	|€dn|dz   }|€dn|t         j                  |j                  |«      «      z   }|€dn|dz   }|j                  j                  |d «      }	|j                  |	«       |j                  «       rŒ™t        |«      }
|€dn|dz   }|j	                  «       }|j                  «       r™|j                  «       }t        |«      |
kD  r	|€dn|dz   }|€dn|t         j                  |j                  |«      «      z   }|€dn|d	z   }|j                  j                  |d «      }	|j                  |	«       |j                  «       rŒ™|j                  ||«      st        d
«       yy)NzUPDATE z SET r   r�   r6   ú = ?rD  ú and z IS ?zProblem with database updateFT©r“   r”   rR  r�   r¸   r¹   rº   rª   rS  rˆ   r‰   r‚   Ú_hx_execrõ  )r   rù  r!   Úcondsr®  rÓ  r  rÃ   rÄ   r+  Úval_lens              r   rÞ   zSqliteHelper.update~  s   € Øœ+×2Ñ2°2×3HÑ3HÈÓ3NÓOÑOÐSZÑZˆÜ‹fˆØ�I‰I‹KˆØ�i‰iŒkØ—‘“ˆBÜ�C“˜1’Ø ! 	‘f¨q°DÑ8�Ø˜I‘&¨1´×0HÑ0HÈ×I_ÑI_Ð`bÓIcÓ0dÑdˆAØ˜I‘&¨1°Ñ6ˆAØ—‘—
‘
˜2˜dÓ#ˆAØ�J‰J�qŒMð �i‰i�kô �c“(ˆØ˜	‰f q¨IÑ5ˆØ�J‰J‹LˆØ�i‰iŒkØ—‘“ˆBÜ�C“˜7Ò"Ø ! 	‘f¨q°GÑ;�Ø˜I‘&¨1´×0HÑ0HÈ×I_ÑI_Ð`bÓIcÓ0dÑdˆAØ˜I‘&¨1°Ñ7ˆAØ—‘—‘˜B˜tÓ$ˆAØ�J‰J�qŒMð �i‰i�kð —‘˜A˜cÔ"ÜÐ0Ô1ØØr   c                 ó  — dt         j                  |j                  |«      «      z   dz   }t        «       }|j	                  «       }|j                  «       r™|j                  «       }t        |«      dkD  r	|€dn|dz   }|€dn|t         j                  |j                  |«      «      z   }|€dn|dz   }|j                  j                  |d «      }|j                  |«       |j                  «       rŒ™|j                  ||«      st        d«       yy	)
NzDELETE FROM rD  r   r�   rØ  r×  zProblem with database deleteFTrÙ  )	r   rù  r!   rÛ  rÓ  r  rÃ   rÄ   r+  s	            r   r²  zSqliteHelper.deleteš  sé   € Øœ{×7Ñ7¸×8MÑ8MÈdÓ8SÓTÑTÐXaÑaˆÜ‹fˆØ�J‰J‹LˆØ�i‰iŒkØ—‘“ˆBÜ�C“˜1’Ø ! 	‘f¨q°GÑ;�Ø˜I‘&¨1´×0HÑ0HÈ×I_ÑI_Ð`bÓIcÓ0dÑdˆAØ˜I‘&¨1°Ñ6ˆAØ—‘—‘˜B˜tÓ$ˆAØ�J‰J�qŒMð �i‰i�kð —‘˜A˜cÔ"ÜÐ0Ô1ØØr   c                 óÞ  — dt         j                  |j                  |«      «      z   dz   }t        «       }|j	                  «       }|j                  «       r�|j                  «       }t        |«      dkD  r	|€dn|dz   }|€dn|t         j                  |j                  |«      «      z   }|j                  j                  |d «      }|j                  |«       |j                  «       rŒ�|€dn|dz   }d}	|j	                  «       }|j                  «       r7|j                  «       }|	r	|€dn|dz   }|€dn|dz   }d	}	|j                  «       rŒ7|€dn|d
z   }|j                  ||«      st        d«       yy	)NúINSERT INTO r’   r   r�   rÈ  z	) VALUES(Fú?Tr=   zProblem with database insertrÙ  )
r   rù  r!   r®  rÓ  r  rÃ   rÄ   r+  Ú
need_commas
             r   r±  zSqliteHelper.insert«  sR  € Øœ{×7Ñ7¸×8MÑ8MÈdÓ8SÓTÑTÐX\Ñ\ˆÜ‹fˆØ�I‰I‹KˆØ�i‰iŒkØ—‘“ˆBÜ�C“˜1’Ø ! 	‘f¨q°CÑ7�Ø˜I‘&¨1´×0HÑ0HÈ×I_ÑI_Ð`bÓIcÓ0dÑdˆAØ—‘—
‘
˜2˜dÓ#ˆAØ�J‰J�qŒMð �i‰i�kð ˜	‰f q¨KÑ7ˆØˆ
Ø�I‰I‹KˆØ�i‰iŒkØ—‘“ˆBÙØ ! 	‘f¨q°CÑ7�Ø˜I‘&¨1°Ñ3ˆAØˆJð �i‰i�kð ˜	‰f q¨CÑ/ˆØ—‘˜A˜cÔ"ÜÐ0Ô1ØØr   c                 óT  — d}d}t        «       }d}|j                  |d g d¢«      sy|j                  «       rA|j                  d«      }||k(  rd}|j                  d«      }	|	|k(  rd}|j                  «       rŒA|j	                  «        |rL|ry|j                  d|€dn|z   d	z   d g «      st        t        d
|€dn|z   «      «       y|j	                  «        |j                  d|€dn|z   d	z   |g«      s&t        t        d|€dn|z   dz   |€dn|z   «      «       y|j	                  «        y)NFzPRAGMA database_list)Úseqr!   Úfiler{   TrÒ  zDETACH `r�   ú`zFailed to detach zATTACH ? AS `zFailed to attach z as )r�   r?  r@  r‰   rA  rõ  r9   rÚ  )
r   rù  r/   Úresource_nameÚtag_presentÚtag_correctr—   rÓ  r!   rä  s
             r   r'  zSqliteHelper.attachÅ  sB  € ØˆØˆÜ“ˆØ"ˆØ—‘˜˜4Ò 7Ô8ØØ�g‰gŒiØ—6‘6˜!“9ˆDØ˜’Ø"�Ø—v‘v˜a“y�Ø˜MÒ)Ø"&�Kð �g‰g�ið 	�‰ŒÙÙØØ—H‘H˜z°s°{©VÈÑLÐPSÑSÐUYÐZ\Ô]Ü”cÐ.¸C¸K±&ÈSÑQÓSÔTØØ�F‰FŒHØ—‘˜o¸3¸;±ÈCÑPÐTWÑWÐZgÐYhÔiÜ”#Ð,¸-Ð:O±ÐUbÑcÐgmÑmÐ|ð  }HÑrxð  NQñ  Ró  Tô  UØØ
�‰ŒØr   c           	      ór   — dj                  |D �cg c]  }t        j                  |d«      ‘Œ c}«      S c c}w )NrÈ  r�   ©r>   rÊ  rË  )r   r+  rÍ  s      r   rÎ  zSqliteHelper.columnListSqlá  s,   € Ø�x‰xÀÖB¸"œ×.Ñ.¨r°"Õ5ÒBÓCÐCùÒBó   �4c                 ó  — |j                  |«      }d}|j                  ||j                  «       gdg«      st        t	        d|€dn|z   «      «       y d}|j                  «       r|j                  d«      }|j                  «        |S )Nz,select sql from sqlite_master where name = ?r�  zCannot find schema for table r�   r�   r   )rR  r?  ra   rõ  r9   r@  r‰   rA  )r   rù  r!   ÚtnamerB  r�  s         r   rÏ  zSqliteHelper.fetchSchemaä  sx   € Ø×%Ñ% dÓ+ˆØ>ˆØ—‘˜ §¡£Ð0°%°Ô9Ü”#Ð6ÀEÀM¹&ÐW\Ñ]Ó_Ô`ØØˆØ�7‰7Œ9Ø—&‘&˜“)ˆCØ
�‰ŒØˆ
r   c                 ó®  — d}t        «       }d}d}d}d}	d}
t        |«      }|
|k  rß|
}|
dz   }
|dk  s|t        |«      k\  rdn||   }|s|r |r|dk(  rd}|r|dk(  rd}|€dn||€dn|z   }ŒJd}|dk(  r|	dz   }	|	dk(  rd	}n|d
k(  r|	dz
  }	|	dk(  rd	}|dk(  rd	}|	dk(  }|rTdt        |«      k\  rdn|d   dk(  r t        j                  |dt        |«      «      }|dk(  r|}n|j	                  |«       d}n|€dn||€dn|z   }|
|k  rŒß|j                  |«      }t        «       }t        «       }d}
t        |«      }|
|k  r‰|
}|
dz   }
|dk\  r|t        |«      k  r||   nd }|dk\  r|t        |«      k  r||   nd |j                  |j                  <   |dk\  r|t        |«      k  r||   nd |j                  |j                  <   |
|k  rŒ‰t        |||||dœ«      S )Nr�   Fr   r{   r2  r-  r�   r5   Tr=   rÈ  r1  )ÚpreamblerÕ  Ú	name2partr*  Úname2column)
r�   rª   rv  rw  r‚   rz  r´  rˆ   r!   r	   )r   rù  r!   r�  rï  rÕ  Údouble_quoteÚsingle_quoteÚtokenÚnestingrÈ   rÉ   rÀ  r  Úbrkr  rˆ  rð  r’  rA  s                       r   rÐ  zSqliteHelper.splitSchemað  s?  € ØˆÜ“ˆØˆØˆØˆØˆØˆÜ�#‹hˆØ�CŠxØˆAØ�q‘&ˆBØ˜qš5 q¬C°«H¢}‘"¸cÀ!¹fˆBÙ¡ÙØ˜dš
Ø',˜ÙØ˜cš	Ø',˜Ø$) M™&°uÈ2È:ÁÐ[]Ñ^�ØØˆCØ�c’	Ø" Q™;�Ø˜q’LØ‘CØ˜’)Ø" Q™;�Ø˜q’LØ�CØ�c’	Ø�Ø !‘|�ÙØ¤3 u£:šo‘b°U¸1±XÀ3ÒFÜ$ŸO™O¨E°!´C¸³JÓ?�EØ ’NØ$‘Hà—L‘L Ô'Ø‘à$) M™&°uÈ2È:ÁÐ[]Ñ^�ðE �C‹xðF �}‰}˜TÓ"ˆÜ%Ó'ˆ	Ü$Ó&ˆØˆÜ�$‹iˆØ�CŠxØˆAØ�q‘&ˆBØ 1šf¨¬S°«Yª�4˜’7¸DˆCØ12°a²¸AÄÀEÃ
ºN U¨1¢XÐPTˆI�K‰K˜Ÿ™Ñ!Ø/0°Aªv¸!¼cÀ$»iº- D¨¢GÈTˆH�J‰J�s—x‘xÑ ð �C‹xô ¨8¸eÐR[Ðhlð  ~Fñ  Gó  Hð  	Hr   c                 ó>   — |j                  |«      st        d«       yy)Nzdatabase problemFT)rÚ  rõ  )r   rù  rB  s      r   rÚ  zSqliteHelper._hx_exec)  s   € Ø—‘˜EÔ"ÜÐ$Ô%ØØr   c                 ó  — d„ }|}| j                  ||«      }| j                  |||«      }|j                  }t        «       }	t        «       }
t        «       }t        «       }|j                  }d}t        |«      }||k  �r|}|dz   }|dk\  r|t        |«      k  r||   nd }|j                  ��ã|j                  �:|j                  }|j                  |«       |j                  }|j                  |«       d}d}|j                  |j                  j                  v rH|j                  j                  j                  |j                  d «      }|j                  }|j                  }|}|}|j                  �™d}|j                  }|t        |«      k  r}|dk\  r|t        |«      k  r||   nd }|dz   }|j                  dk(  r|j                  }|j                  dk(  r%dt         j#                  |j                  «      z   dk(  }|t        |«      k  rŒ}dt$        j'                  |j                  «      z   } ||«      r#|€d	n|t$        j'                  d
|€d	n|z   «      z   }|r	|€d	n|dz   }|	j                  |«       |j                  }|
j                  |«       ||k  r�Œ| j)                  |d«      sy| j+                  |«      }|j-                  |«      }| j)                  |d|€d	n|z   dz   «      sy| j)                  |d|€d	n|z   dz   |€d	n|z   dz   |€d	n|z   «      sy| j)                  |d|€d	n|z   «      sy| j)                  |t$        j'                  |j.                  «      dz   t$        j'                  dj1                  |	D �cg c]  }t2        j5                  |d«      ‘Œ c}«      «      z   dz   «      sy| j)                  |d|€d	n|z   dz   |€d	n|z   dz   |€d	n|z   dz   «      sy| j)                  |d«      sy| j)                  |d«      syyc c}w )Nc                 ó   — | �
| dk(  s| dk(  ryy)Nr�   r�   FTr+   rÒ  s    r   rn   z.SqliteHelper.alterColumns.<locals>._hx_local_00  s   € Ø�) ! r¢'°!°v²+ØØr   r   r{   r�   Fr¦  r·   r  r�   r1  z PRIMARY KEYzBEGIN TRANSACTIONz&CREATE TEMPORARY TABLE __coopy_backup(r=   zINSERT INTO __coopy_backup (z	) SELECT rK  zDROP TABLE r5   r6   rß  r’   z FROM __coopy_backupzDROP TABLE __coopy_backupÚCOMMITT)rÏ  rÐ  rÕ  r�   r*  rª   r!   rú   r‚   rñ  rˆ   r‰   r  r  rû   rE  r•   r–   r“   r”   rÚ  rÎ  rR  rï  r>   rÊ  rË  ) r   rù  r!   r*  rn   ÚnotBlankr�  ÚschemarÕ  ÚnpartsÚnew_column_listÚins_column_listÚsel_column_listrS   rÈ   rÉ   rÀ  r.  r+  rÍ  Ú	orig_typeÚorig_primaryr‰  Ú	next_typeÚnext_primaryr1  r2  r¢   rŠ  r:  ro  rí  s                                    r   rv  zSqliteHelper.alterColumns/  s¦  € ò	ð ˆØ×Ñ˜r $Ó'ˆØ×!Ñ! " T¨#Ó.ˆØ—‘ˆÜ“ˆÜ›&ˆÜ›&ˆÜ›&ˆØ�~‰~ˆØˆÜ�'‹lˆØ�C‹xØˆAØ�q‘&ˆBØ  Ašv¨!¬c°'«lÒ*:�˜’ÀˆAØ—‘Ñ"Ø—J‘JÐ*ØŸ
™
�AØ#×*Ñ*¨1Ô-ØŸ™�BØ#×*Ñ*¨2Ô.Ø�	Ø$�Ø—F‘F˜f×0Ñ0×2Ñ2Ñ2Ø×*Ñ*×,Ñ,×0Ñ0°·±¸Ó=�AØ !§¡�IØ#$§9¡9�LØ%�	Ø+�Ø—G‘GÐ'Ø�CØŸ'™'�CØ¤ S£š>Ø),°ª°c¼CÀ»H²n˜S šXÈ$˜Ø" Q™w˜ØŸF™F fÒ,Ø()¯©˜IØŸF™F ešOØ-/´#·*±*¸Q¿U¹UÓ2CÑ-CÈ	Ñ,Q˜Lð ¤ S£›>ð œ[×5Ñ5°a·f±fÓ=Ñ=�Ù˜IÔ&Ø'+ |™V¸Ä×AYÑAYÐ\_ÐmvÐm~Ñcið  ENñ  ]Oó  BRñ  R�DÙØ'+ |™V¸ÀÑO�DØ—‘˜dÔ#Ø—V‘V�Ø×&Ñ& rÔ*ðG �CŒxðH —‘˜bÐ!4Ô5ØØ×Ñ Ó0ˆØ×%Ñ% dÓ+ˆØ—‘˜bÐ#KÐY[ÐYcÉvÐikÑ#lÐpsÑ"sÔuØØ—‘˜bÐ&DÐRTÐR\ÉÐbdÑ&eÐitÑ%tð  DFð  DNÑyð  TVñ  %Wð  [cñ  $cð  rwð  rñ  hnð  EJñ  #Kô  MØØ—‘˜b -¸U¸]±6ÐPUÑ"VÔXØØ—‘˜b¤K×$<Ñ$<¸V¿_¹_Ó$MÐPSÑ$SÔWb×WoÑWoÐpt×pyÑpyð  ciö  {jð  ]_ô  |G÷  |Qñ  |Qð  RTð  UWõ  |Xò  {jó  qkó  Xlñ  $lð  psñ  #sô  uØØ—‘˜b ~À5À=¹ÐV[Ñ'\Ð`dÑ&dÐsuÐs}Ñioð  DFñ  &Gð  KVñ  %Vð  egð  eoñ  [að  uwñ  $xð  |Rñ  #Rô  TØØ—‘˜bÐ!<Ô=ØØ—‘˜b Ô*ØØùò {js   Í;PN)r(   r)   r*   r?   r@   rB   r}  rK  r   r~  r  r€  rÞ   r²  r±  r'  rÎ  rÏ  rÐ  rÚ  rv  r+   r   r   rÈ  rÈ  U  s`   „ Ø#€NØ€Iò m€KØ�[€Nòò	òò	òò8ò"ò4ò8Dò
ò7HòróFr   rÈ  c                   ól   — e Zd Zd ZdZg d¢Zed„ «       Zed„ «       Zed„ «       Z	ed„ «       Z
ed„ «       Zy)	r•   r+   )rî  r–   ra  ÚshortenPossibleNumberrb  c                 ó¾  ‡‡— | €|€y|€yt        |«      t         k(  r|t        k(  r| d uS t        | t        «      }t        |«      t         k(  r|t        k(  r|ry|sGt        |«      t         k(  r	|t        k(  s,t        |«      t         k(  r|t
        k(  rt        | t        «      ryt        | t        «      }d }d }|s`|r^t        |«      t         k(  rL|t
        k(  rC| }|t        j                  k7  xr |t        j                  k7  xr t        j                  |«       }nd}|rd }	 t        | «      }| |k(  }nd}|r| dk  r| dk\  ry|s2t        |«      t         k(  r |t        k(  rt        | t        t        f«      ryt        |«      t         k(  r|t        k(  rt        | t        «      S t        |«      t         k(  xr	 |t         k(  }|r"t#        j$                  | «      rt'        | d«      ry|ryt        |«      t         k(  xr	 |t(        k(  }	|	r>t        | t         «      s.t#        j$                  | «      rt'        | d«      rt'        | d«      sy|	ryd }	 t        | |«      }|ryt#        j$                  |«      rC|Šd Šˆˆfd„}
|
Š| j*                  }d}|�% ‰|«      rd}	 |S t,        j/                  |«      }|�Œ%|S y# t        $ r}	 d }Y d }~�Œ•d }~ww xY w# t        $ r}	 d}Y d }~Œ‡d }~ww xY w)NFTiÿÿÿi   €Ú_hx_constructsr?   c                 óÞ   •— t        | d«      r| j                  ng }|�Pd}|t        |«      k  r?|dk\  r|t        |«      k  r||   nd }|dz   }|‰k(  ry ‰|«      }|ry|t        |«      k  rŒ?yy)NrK  r   r{   TF)ÚhasattrrK  rª   )Úintfre  rÈ   rÀ  r    ÚclsÚloops        €€r   r   z!Std.isOfType.<locals>._hx_local_1¹  s‚   ø€ Ü-4°TÐ:JÔ-K�T×(Ò(ÐRT�Ø�MØ�BØ¤ A£š;Ø&(¨A¢g°"´s¸1³v²+˜Q˜ršUÀ4˜Ø  1™f˜Ø šHØ#'á $ Q£˜AÙ Ø'+ð ¤ A£›;ð !à r   )r¦  ÚDynamicÚ
isinstanceÚboolÚBoolÚIntÚintÚfloatr  ÚPOSITIVE_INFINITYÚNEGATIVE_INFINITYrc  rd  r(  ÚFloatr9   r-   r{  Úisclassr
  rõ   Ú	__class__rÊ  ÚgetSuperClass)r;   r  ÚisBoolÚvIsFloatr  Útmp1re  rÈ   Ú
isEnumTypeÚisClassTyper   ÚcurrentClassr—   r  r  s                @@r   rî  zStd.isOfType  sä  ù€ àˆY˜a˜iØØˆIØÜ�!‹WœŠ_ 1¬¢<Ø˜T�MÐ"Ü˜AœdÓ#ˆÜ�1‹gœŠo A¬¢I±FØÙ¤d¨1£g´¢o¸AÄºIÔPTÐUVÓPWÔ[_ÒP_ÐfgÔknÒfnô  wAð  BCô  DGô  wHØÜ˜a¤Ó&ˆØˆØˆÙ™h¬d°1«g¼ªoÀAÌÂHØˆAØœ4×1Ñ1Ñ1ÒV¸¼d×>TÑ>TÑ9TÒzÔap×avÑavÐwxÓayÐ]y‰DàˆDÙØˆDðÜ˜1“v�ð ˜‘9‰CàˆCÙ�q˜J’°°[Ò0@ØÙ¤ Q£¬4¢°a¼5²jÌ
ÐSTÔV[Ô]`ÐUaÔHbØÜ�!‹WœŠ_ 1¬¢8Ü˜a¤Ó$Ð$Ü˜A“w¤$‘Ò7¨Q´$©Yˆ
ÙÔ.×6Ñ6°qÔ9¼wÀqÐIYÔ?ZØÙØÜ˜Q›¤4™Ò9¨a´5©jˆÙ¤J¨q´Ô$6Ô=O×=WÑ=WÐXYÔ=ZÔ`gÐhiÐjzÔ`{ô  GNð  OPð  Qaô  GbØÙØØˆð	Ü˜Q˜q“/ˆCñ ØÜ×%Ñ% aÔ(ØˆCØˆDõ!ð  ˆDØŸ;™;ˆLØˆFØÐ+Ù˜Ô%Ø!�FØàˆMô  +×8Ñ8¸ÓF�ð	  Ñ+ð
 ˆMàøôw !ò ØØ–ûðûô2 ò 	ØØ�Cûð	ús0   ÄJ, ÉK Ê,	KÊ5J>Ê>KË	KËKËKc                 ó.   — t         j                  | d«      S rY  )rÊ  rË  ©r^  s    r   r–   z
Std.stringÕ  s   € ä×$Ñ$ Q rÓ*Ð*r   c                 óÒ  — | €y t        | «      }d}||k  r| |   dvrn|dz   }||k  rŒd }||k  r| |   }|dk(  s|dk(  r|dz   }|dk(  }nd}d }|dz   |k  r!| |   }| |dz      }|dk(  xr |dk(  xs |d	k(  }nd}|r|d
z   }|}|r||k  r,| |   dvrn$|dz   }||k  rŒn||k  r| |   dvrn|dz   }||k  rŒ|}||k(  ry t        t        j                  | ||«      |rdnd«      }	|r|	 S |	S )Nr   z 
	r{   r  r.  FÚ0r+  ÚXrÒ  Ú0123456789abcdefABCDEFÚ
0123456789é   r  )rª   r  rv  Ú	substring)
r+  r¬  r0   Ú
isNegativeÚsignÚisHexadecimalÚcurrº   ÚfirstInvalidIndexr—   s
             r   ra  zStd.parseIntÙ  sn  € àˆIØÜ�a“&ˆØˆØ�wŠØ�u‘XÐ!2Ñ2ØØ˜Q‘YˆEð �w‹ð ˆ
Ø�GŠOØ�U‘8ˆDØ˜’ 4¨3¢;Ø ™�Ø #™+‰JàˆJØˆØ�Q‰Y˜'Ò!Ø�E‘(ˆCØ�e˜a‘i‘>ˆDØ! S™jÒR°¸±Ò0PÀ4È3Á;‰Mà!ˆMÙØ˜Q‘YˆEØˆÙØ˜’=Ø˜3™Ð#;Ñ;ØØ˜Q‘w�ð ˜”=ð
 ˜’=Ø˜3™ <Ñ/ØØ˜Q‘w�ð ˜“=ð  ÐØÐ&Ò&ØÜ”X×'Ñ'¨¨%Ð0AÓBÉ-ÁBÐ]_ÓaˆÙØ�7ˆNàˆMr   c                 óF  — d}d}t        | «      }||k  rŒ|}|dz   }|dk  s|t        | «      k\  rdn| |   }t        j                  |d«      }|€	 |S |}|dk(  s2|dk(  s-|dk(  s(|dk(  s#|dk(  s|d	k(  s|d
k(  s|dk(  s|dk(  s
|dk(  s|dk(  r|€dn||€dn|z   }n	 |S ||k  rŒŒ|S )Nr�   r   r{   é9   é8   é7   é6   é5   é4   é3   é2   é1   é0   é.   r�   ©rª   rv  r  )r+  r¡   rÈ   rÉ   rÀ  r.  r1  r2  s           r   r  zStd.shortenPossibleNumber  s3  € àˆØˆÜ�!‹fˆØ�CŠxØˆAØ�q‘&ˆBØ˜aš% a¬3¨q«6¢k‘¸1¸Q¹4ˆAÜ×%Ñ% a¨Ó*ˆCØ�Øð ˆð �Ø! Rši¨c°RªiÀÀrÂ	ÐRUÐY[ÒR[ÐdgÐkmÒdmÐvyÐ}Òvð  ILð  PRò  IRð  [^ð  bdò  [dð  mpð  tvò  mvð  Bð  FHò  Hð  QTð  XZò  QZØ$% I™&°1À1À9¹ÐRSÑT‘AàØˆð �C‹xð ˆr   c                 óÔ   — 	 t        | «      S # t        $ rQ}	 | �4t        j                  | «      }|| k7  rt        j	                  |«      cY d }~S t
        j                  cY d }~S d }~ww xY wr   )r  r(  r•   r  rb  r  ÚNaN)r+  rÈ   Úr1s      r   rb  zStd.parseFloat  sW   € ð	Ü˜“8ˆOøÜò 	ØØ�Ü×.Ñ.¨qÓ1�Ø˜!’GÜŸ>™>¨"Ó-Õ-Ü—8‘8�Oûð	ús&   ‚
 �	A'–1A"ÁA'ÁA"ÁA'Á"A'N)r(   r)   r*   r?   r@   râ  rã  rî  r–   ra  r  rb  r+   r   r   r•   r•   z  sw   „ Ø€NØ€IÚ[€KàñSó ðSðj ñ+ó ð+ð ñ,ó ð,ð\ ñó ðð& ñ	ó ñ	r   r•   c                   ó   — e Zd Zy)r  Nrö   r+   r   r   r  r  *  r÷   r   r  c                   ó   — e Zd Zy)r  Nrö   r+   r   r   r  r  -  r÷   r   r  c                   ó   — e Zd Zy)r  Nrö   r+   r   r   r  r  0  r÷   r   r  c                   ó   — e Zd Zy)r  Nrö   r+   r   r   r  r  3  r÷   r   r  c                   ó,   — e Zd Zd ZdZdgZdgZd„ Zd„ Zy)Ú	StringBuf)r~   r~   Ú
get_lengthc                 ó"   — t        «       | _        y r   )Úpython_lib_io_StringIOr~   r   s    r   r   zStringBuf.__init__<  s   € Ü'Ó)ˆ�r   c                 óÞ   — | j                   j                  «       }| j                   j                  dd«       | j                   j                  «       }| j                   j                  |d«       |S )Nr   rÒ  )r~   ÚtellÚseek)r   ri  r¬  s      r   rE  zStringBuf.get_length?  sI   € Ø�f‰f�k‰k‹mˆØ�‰�‰�A�aÔØ—&‘&—+‘+“-ˆØ�‰�‰�C˜ÔØˆr   N)	r(   r)   r*   r?   r@   rA   rB   r   rE  r+   r   r   rD  rD  6  s$   „ Ø €NØ€IØ�€JØ�.€Kò*ór   rD  c                   óŽ   — e Zd Zd ZdZg d¢Zedd„«       Zed„ «       Zed„ «       Z	ed„ «       Z
ed„ «       Zed	„ «       Zed
„ «       Zy)r^  r+   )r_  ÚisSpaceÚltrimÚrtrimrZ  Úlpadr6  Nc                 ó¶  — t        «       }d}| }|t        |«      k  �r-|}|dz   }t        ||   «      }|}|dk(  rD|r|j                  d«       ní|j                  dj	                  t        t        |g«      «      «       n½|dk(  r|j                  d«       n¦|dk(  rD|r|j                  d	«       n�|j                  dj	                  t        t        |g«      «      «       n]|d
k(  r|j                  d«       nF|dk(  r|j                  d«       n/|j                  dj	                  t        t        |g«      «      «       |t        |«      k  r�Œ-|j                  «       S )Nr   r{   r  z&quot;r�   é&   z&amp;é'   z&#039;é<   z&lt;é>   z&gt;)rG  rª   ÚordÚwriter>   rÙ  rÚ  Úgetvalue)r^  ÚquotesÚbuf_bÚ	_g_offsetÚ_g_sr0   r"  Úcode1s           r   r_  zStringTools.htmlEscapeN  s  € ä&Ó(ˆØˆ	ØˆØœ3˜t›9Ó$ØˆEØ" Q™ˆIÜ�t˜E‘{Ó#ˆDØˆEØ˜’ÙØ—K‘K Õ)à—K‘K §¡¬¬C°°«Ó 8Õ9Ø˜2’+Ø—‘˜GÕ$Ø˜2’+ÙØ—K‘K Õ)à—K‘K §¡¬¬C°°«Ó 8Õ9Ø˜2’+Ø—‘˜FÕ#Ø˜2’+Ø—‘˜FÕ#à—‘˜BŸG™G¤C¬¨T¨F£OÓ4Ô5ð- œ3˜t›9Ô$ð. �~‰~ÓÐr   c                 ó’   — t        | «      dk(  s|dk  s|t        | «      k\  ryt        j                  | |«      }|dkD  r|dk  s|dk(  S y)Nr   Fr\  é   é    Tr;  )r^  ri  r.  s      r   rL  zStringTools.isSpacel  sL   € ä�!‹f˜Šk  a¢°´s¸1³v²ØÜ×Ñ  #Ó&ˆØ�q’5  B¢Ø˜‘GÐàr   c                 óÖ   — t        | «      }d}||k  r7t        j                  | |«      r!|dz   }||k  rt        j                  | |«      rŒ!|dkD  rt        j	                  | |||z
  «      S | S rW  ©rª   r^  rL  rv  rw  ©r^  r    r¡   s      r   rM  zStringTools.ltrimv  sj   € ä�‹FˆØˆØ�A’œ;×.Ñ.¨q°Ô3Ø�Q‘ˆAð �A’œ;×.Ñ.¨q°Õ3à�ŠEÜ—?‘? 1 Q¨¨A©Ó/Ð/àˆHr   c                 óî   — t        | «      }d}||k  rCt        j                  | ||z
  dz
  «      r'|dz   }||k  rt        j                  | ||z
  dz
  «      rŒ'|dkD  rt        j	                  | d||z
  «      S | S rW  ra  rb  s      r   rN  zStringTools.rtrim�  sz   € ä�‹FˆØˆØ�A’œ;×.Ñ.¨q°1°q±5¸A±+Ô?Ø�Q‘ˆAð �A’œ;×.Ñ.¨q°1°q±5¸A±+Õ?à�ŠEÜ—?‘? 1 Q¨¨A©Ó/Ð/àˆHr   c                 óR   — t         j                  t         j                  | «      «      S r   )r^  rM  rN  r"  s    r   rZ  zStringTools.trimŒ  s   € ä× Ñ ¤×!2Ñ!2°1Ó!5Ó6Ð6r   c                 ó”  — t        |«      dk  r| S t        «       }|t        | «      z
  }|j                  «       |k  rDt        j	                  |«      }|j
                  j                  |«       |j                  «       |k  rŒDt        j	                  | «      }|j
                  j                  |«       |j
                  j                  «       S rm   )rª   rD  rE  r•   r–   r~   rV  rW  )r^  r.  r    rm  Ús1s        r   rO  zStringTools.lpad�  s‘   € ä�‹F�aŠKØˆHÜ‹kˆØ”�Q“‰ZˆØ�~‰~Ó !Ò#Ü—‘˜A“ˆBØ�E‰E�K‰K˜ŒOð �~‰~Ó !Ó#ô �Z‰Z˜‹]ˆØ�‰�‰�BŒØ�u‰u�~‰~ÓÐr   c           	      ó´   — |dk(  rt        | «      n| j                  |«      }|j                  |D �cg c]  }t        j	                  |d«      ‘Œ c}«      S c c}w rY  )r�   rÓ  r>   rÊ  rË  )r^  ÚsubÚbyr„   rÍ  s        r   r6  zStringTools.replace�  sE   € à! Rši”�a”¨q¯w©w°s«|ˆØ�w‰w¸uÖE¸œ×-Ñ-¨b°Õ4ÒEÓFÐFùÒEs   ±Ar   )r(   r)   r*   r?   r@   râ  rã  r_  rL  rM  rN  rZ  rO  r6  r+   r   r   r^  r^  I  s�   „ Ø"€NØ€IÚX€Kàò ó ð ð: ñó ðð ñó ðð ñó ðð ñ7ó ð7ð ñ
 ó ð
 ð ñGó ñGr   r^  c                   ó*   — e Zd ZdZdZdgZed„ «       Zy)Úsys_FileSystemzsys.FileSystemr+   rF  c                 ó,   — t        j                  | «      S r   )Úpython_lib_os_PathrF  r   s    r   rF  zsys_FileSystem.exists©  s   € ä!×(Ñ(¨Ó.Ð.r   N)r(   r)   r*   r?   r@   râ  rã  rF  r+   r   r   rk  rk  ¤  s%   „ Ø%€NØ€IØ�*€Kàñ/ó ñ/r   rk  c                   ó~   — e Zd Zd ZdZg d¢Zed„ «       Zed„ «       Zed„ «       Z	ed
d„«       Z
ed„ «       Zed	„ «       Zy)rÕ  r+   )rÖ  r6  ÚgetEnvr­  ÚstdoutÚstderrc                 ó.   — t        j                  | «       y r   )Úpython_lib_SysrÖ  )r"  s    r   rÖ  zSys.exit´  s   € ä×Ñ˜DÕ!r   c                  ó,   — t         j                  } | dd  S rS  )rs  Úargv)ru  s    r   r6  zSys.args¸  s   € ä×"Ñ"ˆØ�A�dˆ|Ðr   c                 óB   — t         j                  j                  | d «      S r   )Úpython_lib_OsÚenvironr‰   r"  s    r   ro  z
Sys.getEnv½  s   € ä×$Ñ$×(Ñ(¨¨4Ó0Ð0r   Nc           
      ó    — |€4t        j                  | fi t        j                  t	        ddi«      «      ¤ŽS t        j                  | g|z   «      S )NÚshellT)Úpython_lib_SubprocessÚcallr"  r#  r	   )r5  r6  s     r   r­  zSys.commandÁ  sM   € àˆLÜ(×-Ñ-¨cÑwÔ4O×4UÑ4UÔVdÐfmÐosÐetÓVuÓ4vÑwÐwä(×-Ñ-°¨u°t©|Ó=Ð=r   c                  óH   — t         j                  t        j                  «      S r   )Úpython_io_IoToolsÚcreateFileOutputFromTextrs  rp  r+   r   r   rp  z
Sys.stdoutÈ  ó   € ä ×9Ñ9¼.×:OÑ:OÓPÐPr   c                  óH   — t         j                  t        j                  «      S r   )r~  r  rs  rq  r+   r   r   rq  z
Sys.stderrÌ  r€  r   r   )r(   r)   r*   r?   r@   râ  rã  rÖ  r6  ro  r­  rp  rq  r+   r   r   rÕ  rÕ  ¯  s‹   „ Ø€NØ€IÚK€Kàñ"ó ð"ð ñó ðð ñ1ó ð1ð ò>ó ð>ð ñQó ðQð ñQó ñQr   rÕ  c                   ó6   — e Zd Zd ZdZg d¢ZddgZd„ Zd„ Zd„ Z	y)r¹  )r¢   r}   r~   rì  rí  rv  rw  ri  rj  rê  rr  rt  ru  rð  ÚchildrenÚchild_orderrï  r  c                 ó  — d | _         d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _	        d | _
        d | _        d | _        d | _        d | _        d | _        | j!                  «        y r   )r„  rƒ  rð  ru  rt  rr  rê  rj  ri  rw  rv  rí  rì  r~   r}   r¢   rï  r   s    r   r   zTableComparisonState.__init__Ø  s�   € ØˆÔØˆŒØˆŒØˆŒØˆŒØˆŒØ!ˆÔØ&*ˆÔ#Ø $ˆÔØ"ˆÔØˆŒØ!%ˆÔØˆŒØˆŒØˆŒØˆŒØ�
‰
�r   c                 ó�   — d| _         d| _        d| _        d| _        d| _        d| _        d | _        d | _        d | _        d | _	        y rq  )
rì  rí  rw  rv  ri  rj  rê  rð  rƒ  r„  r   s    r   rï  zTableComparisonState.resetë  sN   € ØˆŒØ!%ˆÔØ#ˆÔØˆŒØ %ˆÔØ&+ˆÔ#Ø!ˆÔØˆŒØˆŒØˆÕr   c                 óR  — | j                   �+| j                  €| j                   j                  «       | _        | j                  �+| j                  €| j                  j                  «       | _        | j
                  �-| j                  € | j
                  j                  «       | _        y y y r   )r¢   rr  r  r}   rt  r~   ru  r   s    r   r  zTableComparisonState.getMeta÷  sy   € Ø�V‰VÐ t§{¡{Ð':ØŸ&™&Ÿ.™.Ó*ˆDŒKØ�V‰VÐ t§{¡{Ð':ØŸ&™&Ÿ.™.Ó*ˆDŒKØ�V‰VÐ t§{¡{Ð':ØŸ&™&Ÿ.™.Ó*ˆD�Kð (;Ðr   N)
r(   r)   r*   r?   r@   rA   rB   r   rï  r  r+   r   r   r¹  r¹  Ò  s0   „ Ø+€Nð e€Iò f€JØ˜IÐ&€Kòò&
 ó+r   r¹  c                   óð   — e Zd Zd ZdZg d¢Zg d¢Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d „ Z$d!„ Z%d"„ Z&d#„ Z'd$„ Z(y%)&r  )3rÜ  r–  ÚbuilderÚrow_mapÚcol_mapÚ
has_parentr}   r~   r¢   Ú	rp_headerr  r  Ú
is_index_pÚ
is_index_aÚ
is_index_br¬   Ú	row_unitsr  Úshow_rc_numbersÚ	row_movesÚ	col_movesÚ
active_rowÚactive_columnr  r  r   Úallow_columnr;   ÚsepÚconflict_seprü  Úhave_schemaÚtop_line_doneÚhave_additionrµ  ÚpublishÚ
diff_foundÚschema_diff_foundÚpreserve_columnsr›  rœ  r�  rž  rŸ  r   r¡  r¢  r£  Úcolumn_units_updatedrx  Únesting_present)!ÚsetCellBuilderÚgetSeparatorÚisReorderedÚspreadContextÚ	setIgnoreÚcountActiverï  ÚsetupTablesÚscanActivityÚsetupColumnsÚ
setupMovesÚ
scanSchemaÚcheckRcNumbersÚaddRcNumbersÚelideColumnsÚ	addSchemaÚ	addHeaderÚ	checkMetaÚgetMetaTableÚaddMetaÚrefineActivityÚnormalizeStringÚisEqualÚcheckNestingÚscanRowr½  ÚhiliteSingler  ÚhasDifferenceÚhasSchemaDifferencers  rÝ  r  c                 óÎ  — d | _         d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _	        d | _
        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _         d | _!        d | _"        d | _#        d | _$        d | _%        d | _&        d | _'        d | _(        d | _)        d | _*        d | _+        d | _,        d | _-        d | _.        || _/        || _0        d | _1        d| _2        y r|  )3r¢  rx  r¡  r£  r¢  r¡  r   rŸ  rž  r�  rœ  r›  rŸ  rž  r�  rµ  rœ  r›  rš  rü  r™  r˜  r;   r—  r   r  r  r–  r•  r”  r“  r’  r  r‘  r¬   r�  r�  rŽ  r  r  r�  r¢   r~   r}   rŒ  r‹  rŠ  rÜ  r–  r‰  r   )r   rÜ  r–  s      r   r   zTableDiff.__init__  s  € Ø#ˆÔØˆŒØ$(ˆÔ!Ø ˆÔØˆÔØˆÔØˆÔØˆÔØ ˆÔØˆÔØˆÔØˆÔØ!%ˆÔØˆŒØˆŒØˆŒØ!ˆÔØ!ˆÔØˆÔØˆŒØ ˆÔØˆŒØˆŒØ ˆÔØ ˆÔØ ˆÔØ ˆÔØ!ˆÔØˆŒØˆŒØˆŒØ#ˆÔØ ˆÔØˆŒØˆŒ
ØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒ
ØˆŒ
ØˆŒØ %ˆÕr   c                 ó   — || _         y r   )r‰  )r   r‰  s     r   r£  zTableDiff.setCellBuilder=  r  r   c                 óÚ  — |}|j                  «       }|j                  «       }|j                  «       }d}|}	||	k  r‚|}
|dz   }d}|}||k  rl|}|dz   }|j                  |j	                  ||
«      «      }|€Œ0	 d }|€|j                  |«      nt        j                  |||«      dk\  sn
d|€dn|z   }Œ:||k  rŒl||	k  rŒ‚|�«|j                  «       }|j                  «       }d}|}	||	k  r‚|}
|dz   }d}|}||k  rl|}|dz   }|j                  |j	                  ||
«      «      }|€Œ0	 d }|€|j                  |«      nt        j                  |||«      dk\  sn
d|€dn|z   }Œ:||k  rŒl||	k  rŒ‚|S )Nr   r{   r  r�   )r
  r  r  ra   r  r×  rv  r4  )r   r  Út2Úrootr˜  r:  rˆ   ra  rÈ   rÉ   r  r1  r2  r+  r   rÜ  s                   r   r¤  zTableDiff.getSeparator@  sÈ  € ØˆØ�K‰K‹MˆØ�L‰L‹NˆØ�}‰}‹ˆØˆØˆØ�CŠxØˆAØ�q‘&ˆBØˆCØˆCØ˜’9Ø�Ø˜Q‘w�Ø—m‘m A§I¡I¨a°£NÓ3�Ø�KØØØ!%�JØ3=Ð3E §¡¨¤ÌX×MaÑMaÐbeÐfiÐjtÓMuÐ{|Ò|ØØ¨C¨K¡&¸SÑA�Cð	 ð ˜“9ð �C‹xð  ˆNØ—‘“ˆAØ—‘“ˆAØˆBØˆCØ˜’8Ø�Ø˜1‘f�Ø�Ø�Ø˜S’yØ�AØ ™7�CØŸ-™-¨¯
©
°1°Q«Ó8�CØ˜Ø ØØ%)˜
Ø7AÐ7I C§H¡H¨S¤MÔQY×QeÑQeÐfiÐjmÐnxÓQyð  @Aò  #AØ!Ø"°°¡fÀÑE˜ð	 ð ˜S“yð ˜“8ð  ˆ
r   c                 ó8  — d}d}d}d}|}||k  rŠ|}|dz   }|j                   j                  |d «      }	|	€Œ+|	j                  dk\  r |	j                  |k  rd}	 |S |	j                  }|	j                  dk\  r |	j                  |k  rd}	 |S |	j                  }||k  rŒŠ|S )NFro   r   r{   T)rˆ   r‰   r    r¡   )
r   r‰  r,  Ú	reorderedr    r¡   rÈ   rÉ   rÀ  rƒ   s
             r   r¥  zTableDiff.isReorderedn  s¼   € Øˆ	ØˆØˆØˆØˆØ�CŠxØˆAØ�q‘&ˆBØ—3‘3—7‘7˜1˜T“?ˆDØ�ØØ—‘˜!’Ø—F‘F˜Q’JØ $�IØð Ðð —F‘F�Ø—‘˜!’Ø—F‘F˜Q’JØ $�IØàÐð —F‘F�ð �C‹xð  Ðr   c                 ó  — |dkD  �rþ|��ú| dz
  }d}d}t        |«      }||k  rÔ|}|dz   }|dk\  r|t        |«      k  r||   nd dk(  r|dz   }Œ/|dk\  r|t        |«      k  r||   nd dk(  s|dk\  r|t        |«      k  r||   nd dk(  rI||z
  ||z   k  rt        j                  ||d«       nG||z
  |dz   |z   k(  r9t        j                  ||d«       n!|dk\  r|t        |«      k  r||   nd dk(  r|}d}||k  rŒÔt        |«      |z   dz   }d}d}t        |«      }||k  ræ|}	|dz   }t        |«      dz
  |	z
  }|dk\  r|t        |«      k  r||   nd dk(  r|dz   }Œ@|dk\  r|t        |«      k  r||   nd dk(  s|dk\  r|t        |«      k  r||   nd dk(  rI||z
  ||z   k  rt        j                  ||d«       nG||z
  |dz   |z   k(  r9t        j                  ||d«       n!|dk\  r|t        |«      k  r||   nd dk(  r|}d}||k  rŒåy y y y )Nr   r{   r:  rÆ  rÒ  )rª   r¿   rƒ  )
r   r
  r  ÚactiveÚmarkÚskipsrÈ   rÉ   rÀ  r&  s
             r   r¦  zTableDiff.spreadContext†  s‡  € Ø�q‹[ Ñ 2Ø�H˜q‘LˆDØˆEØˆBÜ�e“*ˆCØ˜’8Ø�Ø˜1‘f�Ø"# q¢&¨Q´°V³ª_�V˜A’YÀ$È2ÒMØ" Q™Y�EØØ#$¨¢6¨a´#°f³+ªo�f˜Q’iÀ4ÈAÒMÐbcÐghÒbhÐmnÔqtÐu{Óq|Òm|ÐU[Ð\]ÒU^ð  CGð  LMò  UMØ˜T™¨°%©Ò9Ü1×6Ñ6°v¸qÀ!ÕDØ˜t™8¨7°Q©;¸%Ñ*?ÒAÜ1×6Ñ6°v¸qÀ!ÕDØ$%¨¢F¨q´3°v³;ª�v˜a’yÀDÈQÒNØ�DØ�Eð ˜“8ô ˜“Z 'Ñ)¨QÑ.ˆDØˆEØˆBÜ�e“*ˆCØ˜’8Ø�Ø˜1‘f�Ü˜%“j 1‘n¨Ñ)�Ø"# q¢&¨Q´°V³ª_�V˜A’YÀ$È2ÒMØ" Q™Y�EØØ#$¨¢6¨a´#°f³+ªo�f˜Q’iÀ4ÈAÒMÐbcÐghÒbhÐmnÔqtÐu{Óq|Òm|ÐU[Ð\]ÒU^ð  CGð  LMò  UMØ ™¨°%©Ò9Ü1×6Ñ6°v¸qÀ!ÕDØ !™8¨7°Q©;¸%Ñ*?ÒAÜ1×6Ñ6°v¸qÀ!ÕDØ$%¨¢F¨q´3°v³;ª�v˜a’yÀDÈQÒNØ�DØ�Eð ˜•8ð/ !3ˆ[r   c                 ó  — |j                  «       }|j                  «       |k\  rhd}|j                  «       }||k  rP|}|dz   }|j                  |j	                  ||«      «      }	|	|j
                  vrŒ<|j                  |d«       ||k  rŒOy y y r¾  )r  r  r
  ra   r  rˆ   r|   )
r   r¿  Ú
idx_ignorer-  Úr_headerr;   rÈ   rÉ   rÀ  r!   s
             r   r§  zTableDiff.setIgnore®  s†   € Ø�O‰OÓˆØ�N‰NÓ Ò(ØˆBØ—-‘-“/ˆCØ˜’8Ø�Ø˜1‘f�Ø—z‘z #§+¡+¨a°Ó"9Ó:�Ø §¡Ñ)ØØ—‘˜q Ô&ð ˜•8ð )r   c                 óÞ   — d}d}d}t        |«      }||k  rV|}|dz   }|dk\  r|t        |«      k  r||   nd dkD  }|dk\  r|t        |«      k  r||   nd dk(  }|r|rŒK|sŒN|}|dz   }||k  rŒV|S )Nr   Fr{   rÆ  rÿ  )	r   rÆ  r,  Úshowed_dummyrÈ   rÉ   rÀ  r�  Údummys	            r   r¨  zTableDiff.countActive»  s›   € ØˆØˆØˆÜ�&‹kˆØ�CŠxØˆAØ�q‘&ˆBØ%&¨!¢V°´C¸³K²˜˜qš	ÀTÈQÑNˆGØ#$¨¢6¨a´#°f³+ªo�f˜Q’iÀ4ÈAÑMˆEÙ™,ØÙØØ ˆLØ�q‘&ˆBð �C‹xð ˆ	r   c                 óú  ‡ — d‰ _         ˆ fd„} |«       ‰ _        t        «       ‰ _        t        «       ‰ _        t        «       ‰ _        t        «       ‰ _        t        «       ‰ _        d‰ _        d ‰ _	        d ‰ _
        ˆ fd„} |«       ‰ _        d‰ _        d‰ _        d‰ _        d‰ _        d‰ _        d‰ _        d‰ _        d‰ _        d‰ _        d‰ _        d‰ _        d‰ _        d‰ _        d‰ _        t        «       ‰ _        y )NFc                  ó>   •— ˆfd„}  | «       ‰_         ‰j                   S )Nc                  ó*   •— d‰ _         ‰ j                   S rm   )r  r   s   €r   rn   z9TableDiff.reset.<locals>._hx_local_1.<locals>._hx_local_0Ð  r+  r   )r  r  s    €r   r   z$TableDiff.reset.<locals>._hx_local_1Ï  s   ø€ ô&ñ )›]ˆDŒNØ—>‘>Ð!r   c                  ó>   •— ˆfd„}  | «       ‰_         ‰j                   S )Nc                  ó>   •— ˆfd„}  | «       ‰_         ‰j                   S )Nc                  ó*   •— d‰ _         ‰ j                   S r™   )r—  r   s   €r   r³   zNTableDiff.reset.<locals>._hx_local_4.<locals>._hx_local_3.<locals>._hx_local_2à  s   ø€ Ø(,�DÔ%Ø×,Ñ,Ð,r   )r   ©r³   r   s    €r   rµ   z9TableDiff.reset.<locals>._hx_local_4.<locals>._hx_local_3ß  s    ø€ ô-ñ %0£M�Ô!Ø×(Ñ(Ð(r   )r  )rµ   r   s    €r   r	  z$TableDiff.reset.<locals>._hx_local_4Þ  s    ø€ ô)ñ !,£ˆDÔØ×$Ñ$Ð$r   r�   r   )rŒ  r�  rp   rŽ  r�  r�  rŠ  r‹  r’  r“  r”  r  r˜  r™  r›  rž  rŸ  r›  rœ  r�  rž  rŸ  r   r¡  r¢  r£  r¡  )r   r   r	  s   `  r   rï  zTableDiff.resetÍ  sì   ø€ ØˆŒô	"ñ %›ˆŒÜ(Ó*ˆŒÜ(Ó*ˆŒÜ(Ó*ˆŒÜ%Ó'ˆŒÜ%Ó'ˆŒØ$ˆÔØˆŒØˆŒô	%ñ (›MˆÔØˆŒØˆÔØ"ˆÔØˆŒØ!&ˆÔØˆÔØˆÔØˆÔØˆÔØˆÔØˆÔØˆÔØˆÔØˆÔÜ$2Ó$4ˆÕ!r   c                 ó¢  — | j                   j                  «       | _        | j                  j                  «       | _        | j                   j
                  d u| _        | j                  �rÆ| j                   j                  «       | _        | j                   j
                  j                  «       | _
        | j                   j                  «       | _        | j                   j
                  j                  j                  «       | _        | j                   j
                  j                  j                  «       | _        | j                   j                  j                  «       | _        | j                   j%                  «       �Âd}| j                   j%                  «       }|t'        |«      k  r˜|dk\  r|t'        |«      k  r||   nd }|dz   }|j(                  dk\  r&| j*                  j-                  |j(                  d«       |j.                  dk\  r&| j0                  j-                  |j.                  d«       |t'        |«      k  rŒ˜| j                   j
                  j%                  «       ��]d}| j                   j
                  j%                  «       }|t'        |«      k  �r(|dk\  r|t'        |«      k  r||   nd }|dz   }|j(                  dk\  r&| j*                  j-                  |j(                  d«       |j.                  dk\  r&| j2                  j-                  |j.                  d«       |t'        |«      k  rŒ˜�nŽ| j                   j                  «       | _
        | j                   j                  «       | _        | j                  | _        | j                   j                  j                  «       | _        | j                   | _        | j                   j                  j                  «       | _        | j                   j%                  «       �Âd}| j                   j%                  «       }|t'        |«      k  r˜|dk\  r|t'        |«      k  r||   nd }|dz   }|j(                  dk\  r&| j2                  j-                  |j(                  d«       |j.                  dk\  r&| j0                  j-                  |j.                  d«       |t'        |«      k  rŒ˜| j4                  j7                  «       | _        | j4                  j;                  «       | _        | j4                  j?                  «       | _         | j4                  jC                  «       | _"        | j                  }|€| j                  }|€| j                  }|jG                  «       | _$        | jJ                  jM                  | jH                  «       d| _'        |jQ                  «       }|�|jS                  «       | _'        d| _*        y rb  )+rÜ  rb   r¬   r  r‘  rR   rŒ  rd   r¢   re   r}   r~   rS   rf   r�  rg   r  r  r]   rª   r    rŽ  r|   r¡   r�  r�  r–  r£  r  r¤  r  r¢  r   r¥  r—  r  r;   r‰  rÝ   rx  r  rs  r¢  )r   rÈ   rÉ   Úp2bÚp2ar^   rW  rS   s           r   r©  zTableDiff.setupTablesø  s2  € Ø—Z‘Z×'Ñ'Ó)ˆŒ
ØŸ™×+Ñ+Ó-ˆŒØŸ:™:×/Ñ/°tÐ;ˆŒØ�?‹?Ø—Z‘Z×)Ñ)Ó+ˆDŒFØ—Z‘Z×)Ñ)×3Ñ3Ó5ˆDŒFØ—Z‘Z×)Ñ)Ó+ˆDŒFØ!ŸZ™Z×1Ñ1×6Ñ6×FÑFÓHˆDŒNØ!ŸZ™Z×1Ñ1×6Ñ6×FÑFÓHˆDŒNØ!ŸZ™ZŸ_™_×<Ñ<Ó>ˆDŒNØ—
‘
×*Ñ*Ó,Ð8Ø�Ø—j‘j×0Ñ0Ó2�ØœC ›H’}Ø&(¨A¢g°"´s¸3³x²-˜3˜rš7ÀT�CØ˜q™&�BØŸ™ š
ØŸ™×+Ñ+¨C¯E©E°$Ô7ØŸ™ š
ØŸ™×+Ñ+¨C¯E©E°$Ô7ð œC ›H“}ð —
‘
×$Ñ$×4Ñ4Ó6ÑBØ�Ø—j‘j×*Ñ*×:Ñ:Ó<�ØœC ›H“}Ø&(¨A¢g°"´s¸3³x²-˜3˜rš7ÀT�CØ˜q™&�BØŸ™ š
ØŸ™×+Ñ+¨C¯E©E°$Ô7ØŸ™ š
ØŸ™×+Ñ+¨C¯E©E°$Ô7ð œC ›H•}ð —Z‘Z×)Ñ)Ó+ˆDŒFØ—Z‘Z×)Ñ)Ó+ˆDŒFØ—V‘VˆDŒFØ!ŸZ™ZŸ_™_×<Ñ<Ó>ˆDŒNØ!Ÿ^™^ˆDŒNØ!ŸZ™ZŸ_™_×<Ñ<Ó>ˆDŒNØ—
‘
×*Ñ*Ó,Ð8Ø�Ø—j‘j×0Ñ0Ó2�ØœC ›H’}Ø&(¨A¢g°"´s¸3³x²-˜3˜rš7ÀT�CØ˜q™&�BØŸ™ š
ØŸ™×+Ñ+¨C¯E©E°$Ô7ØŸ™ š
ØŸ™×+Ñ+¨C¯E©E°$Ô7ð œC ›H“}ð !ŸJ™J×2Ñ2Ó4ˆÔØ ŸJ™J×2Ñ2Ó4ˆÔØ ŸJ™J×2Ñ2Ó4ˆÔØ ŸJ™J×2Ñ2Ó4ˆÔØ—‘ˆØˆNØ—V‘VˆFØˆNØ—V‘VˆFØ×#Ñ#Ó%ˆŒØ�‰×Ñ˜TŸV™VÔ$ØˆŒØ�~‰~ÓˆØÐØŸ-™-›/ˆDŒKØ$ˆÕr   c                 óð  — t        «       | _        d | _        | j                  j                  scd}t        | j                  «      }||k  rG|}|dz   }t        j                  | j                  t        | j                  «      dz
  |z
  d«       ||k  rŒG| j                  j                  �sPt        «       | _        d}t        | j                  «      }||k  �r#|}|dz   }d}|dk\  r'|t        | j                  «      k  r| j                  |   nd }|j                  dk\  r2| j                  j                  j                  |j                  d «      rd}|j                  dk\  r2| j                   j                  j                  |j                  d «      rd}|j"                  dk\  r2| j$                  j                  j                  |j"                  d «      rd}t        j                  | j                  ||«       ||k  r�Œ"y y y rW  )r�   r•  r–  r–  rŠ  rª   r‘  r¿   rƒ  rŽ  r  r    r�  rˆ   r‰   r¡   r�  r¢   rŽ  )r   rÈ   rÉ   rÀ  r;   rƒ   s         r   rª  zTableDiff.scanActivity9  s�  € Ü›&ˆŒØ!ˆÔØ—
‘
×)Ò)ØˆBÜ�d—n‘nÓ%ˆCØ˜’8Ø�Ø˜1‘f�Ü)×.Ñ.¨t¯©Ä#ÀdÇnÁnÓBUÐXYÑBYÐ]^ÑA^ÐabÔcð ˜“8ð —
‘
×1Ó1Ü!%£ˆDÔØˆBÜ�d×'Ñ'Ó(ˆCØ˜“8Ø�Ø˜1‘f�Ø�Ø01°Q²¸1¼sÀ4×CTÑCTÓ?UÒ;U˜×)Ñ)¨!Ò,Ð[_�Ø—V‘V˜q’[ d§o¡o×&7Ñ&7×&;Ñ&;¸D¿F¹FÀ4Ô&HØ�AØ—V‘V˜q’[ d§o¡o×&7Ñ&7×&;Ñ&;¸D¿F¹FÀ4Ô&HØ�AØ—V‘V˜q’[ d§o¡o×&7Ñ&7×&;Ñ&;¸D¿F¹FÀ4Ô&HØ�AÜ)×.Ñ.¨t×/AÑ/AÀ1ÀaÔHð ˜–8ð	 2r   c                 ób  — | j                   j                  j                  «       }|j                  «       | _        | j
                  j                  «       }|��Yt        «       }t        «       }t        «       }| j                  ||| j                  | j                  «       | j                  ||| j                  | j                  «       | j                  ||| j                  | j                  «       t        «       }d}t!        | j                  «      }||k  r•|}	|dz   }|	dk\  r'|	t!        | j                  «      k  r| j                  |	   nd }
|
j                  |j"                  v s0|
j$                  |j"                  v s|
j&                  |j"                  v rŒƒ|j)                  |
«       ||k  rŒ•|| _        y y rW  )rÜ  rS   rb   r  r  r–  r¦  rp   r§  r¢   r�  r}   r  r~   r  r�   rª   rˆ   r    r¡   r‚   )r   r  r¿  Úp_ignoreÚa_ignoreÚb_ignoreÚncolumn_unitsrÈ   rÉ   r&  r  s              r   r«  zTableDiff.setupColumnsT  s]  € Ø—z‘z—‘×.Ñ.Ó0ˆØ(×0Ñ0Ó2ˆÔØ—‘×-Ñ-Ó/ˆØÑÜ%Ó'ˆHÜ%Ó'ˆHÜ%Ó'ˆHØ�N‰N˜6 (¨4¯6©6°$·.±.ÔAØ�N‰N˜6 (¨4¯6©6°$·.±.ÔAØ�N‰N˜6 (¨4¯6©6°$·.±.ÔAÜ ›FˆMØˆBÜ�d×'Ñ'Ó(ˆCØ˜’8Ø�Ø˜1‘f�Ø12°a²¸AÄÀD×DUÑDUÓ@VÒ<V˜×*Ñ*¨1Ò-Ð\`�Ø—g‘g §¡Ñ+°·±¸H¿J¹JÑ1FÈUÏWÉWÐX`×XbÑXbÑMbØØ×$Ñ$ UÔ+ð ˜“8ð !.ˆDÕð# r   c                 ó:  — | j                   j                  �rt        «       | _        t        j                  | j                  «      }d}t        |«      }||k  rA|}|dz   }| j                  j                  |dk\  r|t        |«      k  r||   nd |«       ||k  rŒAt        «       | _	        t        j                  | j                  «      }d}t        |«      }||k  rB|}|dz   }| j                  j                  |dk\  r|t        |«      k  r||   nd |«       ||k  rŒAy y y rW  )r–  r‰  rp   r“  r*  r+  r‘  rª   r|   r”  r  )r   ÚmovesrÈ   rÉ   rÀ  s        r   r¬  zTableDiff.setupMovesk  sþ   € Ø�:‰:×ÓÜ+Ó-ˆDŒNÜ—O‘O D§N¡NÓ3ˆEØˆBÜ�e“*ˆCØ˜’8Ø�Ø˜1‘f�Ø—‘×"Ñ"°°Q²¸1¼sÀ5»zº> E¨!¢HÈtÐUVÔWð ˜“8ô ,Ó-ˆDŒNÜ—O‘O D×$5Ñ$5Ó6ˆEØˆBÜ�e“*ˆCØ˜’8Ø�Ø˜1‘f�Ø—‘×"Ñ"°°Q²¸1¼sÀ5»zº> E¨!¢HÈtÐUVÔWð ˜•8ð r   c                 óD  — t        «       | _        d| _        d}t        | j                  «      }||k  �rm|}|dz   }|dk\  r'|t        | j                  «      k  r| j                  |   nd }d}| j
                  j                  r#|| j                  j                  v rd}|rd| _	        d}|j                  dk\  r{|j                  «       dk(  rhd| _        d}| j                  �-| j                  r!t        j                  | j                  |d«       | j                  r| }|j                   }|dz   |_        | |j                  dk  r{|j                  «       dk\  rhd| _        d}| j                  �-| j                  r!t        j                  | j                  |d«       | j                  r| }	|	j"                  }
|
dz   |	_        |
 |j                  dk\  �rs|j                  «       dk\  �r_| j$                  j'                  «       | j(                  k\  �r7| j*                  j'                  «       | j,                  k\  �r| j$                  j/                  |j                  «       | j(                  «      }| j*                  j/                  |j                  | j,                  «      }| j1                  | j2                  ||«      sŽd| _        d	}|€d
n|t4        j7                  | j2                  j9                  |«      «      z   }|€d
n|dz   }| j                  �;t        j                  | j                  |d«       | }|j:                  }|dz   |_        | |r=d|€d
n|z   }d| _        | j                  �d | _        | }|j<                  }|dz   |_        | | j                  }|j?                  |«       ||k  r�Œly y )NFr   r{   Tr�   ro   ro  rr  r5   r�   r=   rÐ  ) r�   rü  rš  rª   r  r–  r‰  r”  rˆ   r’  r¡   Úlpr–  r—  r¿   rƒ  r   rŸ  r¢   r  r�  r~   r  r  r¸  r;   r“   r”   ra   r¢  r£  r‚   )r   rÈ   rÉ   r&  r  rÄ  rµ  rn   r   r³   rµ   ÚppÚbbr  r=  Ú_hx_local_8Ú_hx_local_9r„   s                     r   r­  zTableDiff.scanSchema~  s)  € Ü“fˆŒØ ˆÔØˆÜ�$×#Ñ#Ó$ˆØ�C‹xØˆAØ�q‘&ˆBØ-.°!ªV¸¼CÀ×@QÑ@QÓ<RÒ8R�T×&Ñ& qÒ)ÐX\ˆEØˆIØ�z‰z×!Ò!Ø˜Ÿ™×)Ñ)Ñ)Ø $�IÙØ+/�DÔ(ØˆCØ—‘˜A’ U§X¡X£Z°2Ò%5Ø#'�Ô Ø�Ø×&Ñ&Ð2Ø×(Ò(Ü1×6Ñ6°t×7IÑ7IÈ1ÈaÔPØ×$Ò$Ø"&�KØ"-×"9Ñ"9�KØ/:¸Q©�KÔ+ÙØ—‘˜1’ E§H¡H£J°!¢OØ#'�Ô Ø�Ø×&Ñ&Ð2Ø×(Ò(Ü1×6Ñ6°t×7IÑ7IÈ1ÈaÔPØ×$Ò$Ø"&�KØ"-×"9Ñ"9�KØ/:¸Q©�KÔ+ÙØ—‘˜A“ U§X¡X£Z°1£_Ø—V‘V×&Ñ&Ó(¨D¯N©NÓ:À$Ç&Á&×BSÑBSÓBUÐY]×YgÑYgÓBgØŸ™Ÿ™¨¯©«
°4·>±>ÓB�BØŸ™Ÿ™¨¯©°·±Ó?�BØ ŸL™L¨¯©°°2Ô6Ø+/˜Ô(Ø!˜Ø*-¨+¡¸3Ä+×BZÑBZÐ[_×[aÑ[a×[jÑ[jÐkmÓ[nÓBoÑo˜Ø*-¨+¡¸3À#ÑE˜Ø ×.Ñ.Ð:Ü5×:Ñ:¸4×;MÑ;MÈqÐRSÔTØ*.˜KØ*5×*AÑ*A˜KØ7BÀQ±˜KÔ3Ù'ÙØ¨¨™f¸Ñ=�Ø#'�Ô Ø×&Ñ&Ð2Ø)-�DÔ&Ø"�Ø)×6Ñ6�Ø,7¸!©O�Ô(ÙØ—K‘KˆEØ�L‰L˜Ôðu �CŽxr   c                 ó&  — | j                   s…| j                  j                  rd| _         y | j                  j                  rP| j	                  | j
                  |«      | _         | j                   s"| j	                  | j                  |«      | _         y y y y r™   )r’  r–  rŒ  r‰  r¥  rŠ  r‹  r9  s      r   r®  zTableDiff.checkRcNumbers¿  sw   € Ø×$Ò$Ø�z‰z×+Ò+Ø'+�Õ$Ø—‘×#Ò#Ø'+×'7Ñ'7¸¿¹ÀQÓ'G�Ô$Ø×,Ò,Ø+/×+;Ñ+;¸D¿L¹LÈÓ+K�DÕ(ð -ð $ð %r   c                 ó‚  — d}| j                   �r/| j                  j                  �s|dz   }t        «       }d}|j	                  «       }||k  r!|}|dz   }|j                  |dz   «       ||k  rŒ!|j                  ||j	                  «       dz   «       d}|j                  «       }||k  rv|}|dz   }| j                  j                  j                  |d «      }|€|j                  d|d«       ŒH|j                  d|| j                  j                  |d«      «       ||k  rŒvt        «       }d}|j                  «       }||k  r!|}|dz   }|j                  |dz   «       ||k  rŒ!|j                  ||j                  «       dz   «       d}|j	                  «       }||k  ry|}|dz   }| j                  j                  j                  |dz
  d «      }|€|j                  |dd«       ŒK|j                  |d| j                  j                  |d«      «       ||k  rŒy|j                  dd| j                  j!                  d«      «       |S )Nr{   r   r�   TFr\  )r’  r–  r�  r�   r
  r‚   r  r  rŠ  rˆ   r‰   r  r‰  rá   r  r‹  rà   )r   r
  Úadmin_wr  rÈ   rÉ   rÀ  rƒ   s           r   r¯  zTableDiff.addRcNumbersÈ  s)  € ØˆØ× Ó ¨$¯*©*×*EÓ*EØ ‘{ˆGÜ“VˆFØˆBØ×"Ñ"Ó$ˆCØ˜’8Ø�Ø˜1‘f�Ø—‘˜q 1™uÔ&ð ˜“8ð ×(Ñ(¨°×1AÑ1AÓ1CÀaÑ1GÔIØˆBØ×#Ñ#Ó%ˆCØ˜’8Ø�Ø˜1‘f�Ø—|‘|—~‘~×)Ñ)¨!¨DÓ1�Ø�LØ—N‘N 1 Q rÔ*ØØ—‘˜q  4§<¡<×#5Ñ#5°d¸4Ó#@ÔAð ˜“8ô “VˆFØˆBØ×#Ñ#Ó%ˆCØ˜’8Ø�Ø˜1‘f�Ø—‘˜q 1™uÔ&ð ˜“8ð ×%Ñ% f¨f×.?Ñ.?Ó.AÀAÑ.EÔGØˆBØ×"Ñ"Ó$ˆCØ˜’8Ø�Ø˜1‘f�Ø—|‘|—~‘~×)Ñ)¨1¨q©5°$Ó7�Ø�LØ—N‘N 1 Q rÔ*ØØ—‘˜q  4§<¡<×#5Ñ#5°d¸5Ó#AÔBð ˜“8ð �N‰N˜1˜Q˜tŸ|™|×2Ñ2°5Ó9Ô:Øˆr   c                 óò  — | j                   ��êd}d}t        | j                   «      }||k  rA|}|dz   }|dk\  r'|t        | j                   «      k  r| j                   |   nd dk(  rd}n||k  rŒA|�s‡t        «       }d}|}||k  r|}|dz   }|j                  |«       ||k  rŒ|}d}	t        «       }
d}t        | j                   «      }||k  rŠ|}|dz   }|dk\  r'|t        | j                   «      k  r| j                   |   nd dk(  }|r|	dz   }	nd}	|r|	dkD  r|j                  d«       n)|r|
j                  |«       |j                  |«       |dz   }||k  rŒŠ|j	                  ||«       d}|t        |
«      k  r|dk\  r|t        |
«      k  r|
|   nd }|dz   }d}|j                  «       }||k  r9|}|dz   }|j                  ||| j                  j                  d«      «       ||k  rŒ9|t        |
«      k  rŒ~y y y y )NTr   r{   Fro   ru  )	r–  rª   r�   r‚   r  r  r  r‰  rà   )r   r
  ré  Ú
all_activerÈ   rÉ   rÀ  r>  r@  r,  Údotsrc  rþ  r1  r&  s                  r   r°  zTableDiff.elideColumnsó  s'  € Ø×ÑÑ*ØˆJØˆBÜ�d×(Ñ(Ó)ˆCØ˜’8Ø�Ø˜1‘f�Ø./°1ªf¸¼SÀ×ASÑASÓ=TÒ9T�T×'Ñ'¨Ò*ÐZ^ÐcdÒdØ!&�JØð ˜“8ò Ü“v�Ø�Ø�Ø˜C’xØ�AØ˜q™&�BØ—K‘K ”Nð ˜C“xð �Ø�Ü“v�Ø�Ü˜$×,Ñ,Ó-�Ø˜C’xØ�AØ˜q™&�BØ56¸!²VÀÄCÈ×HZÑHZÓD[Ò@[˜D×.Ñ.¨qÒ1ÐaeÐjkÑk�CÙØ  1™f™à˜Ù " q¢&ØŸ™ B�áØ ŸK™K¨œOØŸ™ BœØ  1™f˜ð ˜C“xð ×,Ñ,¨T°"Ô5Ø�ØœC ›I’~Ø%'¨1¢W°´c¸$³i²˜˜bšÀT�AØ˜q™&�BØ�CØ ×+Ñ+Ó-�CØ š9Ø˜Ø" Q™w˜ØŸ™ q¨¨4¯<©<×+>Ñ+>¸uÓ+EÔFð  ›9ð œC ›I•~ð= ð +r   c           
      ó  — | j                   ró|j                  «       }|j                  t        | j                  «      dz   |dz   «       |j                  d|| j                  j                  d«      «       d}t        | j                  «      }||k  rh|}|dz   }|j                  |dz   || j                  j                  |dk\  r'|t        | j                  «      k  r| j                  |   nd «      «       ||k  rŒhd| _        y y )Nr{   r   rt  T)rš  r  r  rª   r  r  r‰  rà   r;   rº  rü  rŸ  )r   r
  r@  rÈ   rÉ   r&  s         r   r±  zTableDiff.addSchema&   sä   € Ø×ÒØ×"Ñ"Ó$ˆBØ�M‰Mœ3˜t×0Ñ0Ó1°AÑ5¸¸Q¹Ô@Ø�N‰N˜1˜R §¡× 3Ñ 3°CÓ 8Ô9ØˆBÜ�d×'Ñ'Ó(ˆCØ˜’8Ø�Ø˜1‘f�Ø—‘  A¡ r¨$¯&©&¯.©.ÈAÐQRÊFÐWXÔ[^Ð_c×_jÑ_jÓ[kÒWk¸$¿+¹+Àaº.ÐquÓ*wÔxð ˜“8ð &*ˆDÕ"ð r   c                 ó¶  — | j                   j                  �rB|j                  «       }|j                  t	        | j
                  «      dz   |dz   «       |j                  d|| j                  j                  d«      «       d}t	        | j
                  «      }||k  �r¶|}|dz   }|dk\  r'|t	        | j
                  «      k  r| j
                  |   nd }|j                  dk\  rc| j                  j                  «       dk7  �r.|j                  |dz   || j                  j                  |j                  | j                  «      «       né|j                  dk\  rb| j                  j                  «       dk7  r½|j                  |dz   || j                  j                  |j                  | j                  «      «       nx|j!                  «       dk\  re| j"                  j                  «       dk7  rH|j                  |dz   || j"                  j                  |j!                  «       | j$                  «      «       | j&                  j)                  |dz   |«       ||k  r�Œ¶d| _        y y )Nr{   r   r  T)r–  r�  r  r  rª   r  r  r‰  rà   r¡   r~   r  r  r    r}   r  râ  r¢   r�  r‹  r|   r›  )r   r
  r@  rÈ   rÉ   r&  r  s          r   r²  zTableDiff.addHeader3   sÈ  € Ø�:‰:×(Ó(Ø×"Ñ"Ó$ˆBØ�M‰Mœ3˜t×0Ñ0Ó1°AÑ5¸¸Q¹Ô@Ø�N‰N˜1˜R §¡× 3Ñ 3°DÓ 9Ô:ØˆBÜ�d×'Ñ'Ó(ˆCØ˜“8Ø�Ø˜1‘f�Ø12°a²¸AÄÀD×DUÑDUÓ@VÒ<V˜×*Ñ*¨1Ò-Ð\`�Ø—G‘G˜q’LØŸ™×)Ñ)Ó+¨qÓ0ØŸ™¨¨A©¨r°$·&±&·.±.ÀÇÁÈÏÉÓ2XÕYØ—g‘g ’lØŸ™×)Ñ)Ó+¨qÒ0ØŸ™¨¨A©¨r°$·&±&·.±.ÀÇÁÈÏÉÓ2XÕYØ—h‘h“j A’oØŸ™×)Ñ)Ó+¨qÒ0ØŸ™¨¨A©¨r°$·&±&·.±.ÀÇÁÃÈDÏNÉNÓ2[Ô\Ø—‘× Ñ  ! a¡%¨Ô/ð ˜”8ð "&ˆDÕð) )r   c                 óô   — |€y|€'|j                  «       dk(  r|j                  «       dk(  S y|j                  «       |j                  «       dz   k7  ry|j                  «       dk(  s|j                  «       dk(  ryy)NFr{   r   T)r
  r  ©r   r  rS   s      r   r³  zTableDiff.checkMetaJ   ss   € ØˆLØØˆIØ—‘Ó  AÒ%ØŸ™Ó)¨QÑ.Ð/àØ�N‰NÓ !§+¡+£-°!Ñ"3Ò5ØØ�^‰^Ó Ò"¨¯©Ó):¸aÒ)?ØØr   c                 óŽ   — |€!t        dd«      }|j                  ddd«       |S |j                  «       }|€y |j                  «       S )Nr{   r   ru  )r1  r  r  rX  )r   r  r—   rS   s       r   r´  zTableDiff.getMetaTableX   sG   € ØˆIÜ   1Ó%ˆFØ�N‰N˜1˜Q˜sÔ#ØˆMØ�y‰y‹{ˆØˆLØØ�|‰|‹~Ðr   c           	      óþ  — | j                   €| j                  €| j                  €y| j                  j                  sy| j                  | j                   «      }| j                  | j                  «      }| j                  | j                  «      }| j                  | j                   |«      sy| j                  | j                  |«      sy| j                  | j                  |«      syt        dd«      }t        «       }|j                  d«       |j                  d«       d|_
        d|_        t        j                  ||k(  rd n||||«      j                  «       }t        ||«      }d|_        |j#                  |«       |j%                  «       s|j'                  «       �rá|j)                  «       }	|j)                  «       }
|j'                  «       rdnd}|j+                  |j-                  «       |	|
z   |z
  «       |j/                  «       }|}|
}||k  rÃ|}|dz   }d}|j-                  «       }||k  rŸ|}|dz   }|j1                  ||«      }|dk(  r_dt2        j5                  |j7                  |«      «      z   dz   t2        j5                  |j7                  |j1                  d|«      «      «      z   }|j9                  |dz
  |	|z   |z
  |«       ||k  rŒŸ||k  rŒÃ| j:                  �Ÿt=        |j:                  «      |j-                  «       k(  ryd}|j-                  «       }||k  rb|}|dz   }|dk\  r'|t=        |j:                  «      k  r|j:                  |   nd dk\  r$t>        jA                  | j:                  |dz
  d«       ||k  rŒby)	NFr   r  ru  i   TrÒ  r{   )!r}   r~   r¢   r–  r˜  r´  r³  r1  rˆ  r§  r�  r‹  rˆ  r·  rÜ  r  r   r½  r¼  r½  r  r  r
  r  r  r“   r”   ra   r  r–  rª   r¿   rƒ  )r   r
  rt  ru  rr  Ú	meta_diffÚ
meta_flagsÚ
meta_alignr  rˆ   ÚdhrG  r;   rÈ   rÉ   r  r1  r2  r+  r.  rÀ  s                        r   rµ  zTableDiff.addMetab   sW  € Ø�f‰fˆn D§F¡F N¸D¿F¹F¸NØØ—
‘
×$Ò$ØØ×"Ñ" 4§6¡6Ó*ˆØ×"Ñ" 4§6¡6Ó*ˆØ×"Ñ" 4§6¡6Ó*ˆØ—‘˜tŸv™v fÔ-ØØ—‘˜tŸv™v fÔ-ØØ—‘˜tŸv™v fÔ-ØÜ  !Ó$ˆ	Ü!“^ˆ
Ø× Ñ  Ô&Ø× Ñ  Ô%Ø.3ˆ
Ô+Ø'(ˆ
Ô$Ü×)Ñ)°V¸vÒ5E©4ÈVÐU[Ð\bÐcmÓn×tÑtÓvˆ
Ü�z *Ó-ˆØ"ˆÔØ
�	‰	�)ÔØ×ÑÔ "×"8Ñ"8Õ":Ø×!Ñ!Ó#ˆAØ×%Ñ%Ó'ˆBØ×2Ñ2Ô4‘a¸1ˆFØ�M‰M˜&×*Ñ*Ó,¨q°2©v¸Ñ.?ÔAØ×%Ñ%Ó'ˆAØˆBØˆCØ˜’8Ø�Ø˜1‘f�Ø�Ø×)Ñ)Ó+�Ø˜S’yØ�AØ ™7�CØ!×)Ñ)¨!¨AÓ.�AØ˜QšØ"¤[×%=Ñ%=¸a¿j¹jÈ»mÓ%LÑLÐPSÑSÔWb×WoÑWoÐpq×pzÑpzð  |E÷  |Mñ  |Mð  NOð  PQó  |Ró  qSó  XTñ  T˜Ø—N‘N A¨¡E¨Q°©U°fÑ,<¸aÔ@ð ˜S“yð ˜“8ð ×"Ñ"Ð.Ü˜×(Ñ(Ó)¨Y×-@Ñ-@Ó-BÒBØ�BØ#×-Ñ-Ó/�CØ š8Ø˜Ø  1™f˜Ø45¸²F¸qÄ3Àr×GWÑGWÓCXÒ?X˜R×-Ñ-¨aÒ0Ð^bÐghÒhÜ5×:Ñ:¸4×;MÑ;MÐPQÐTUÑPUÐXYÔZð	  ›8ð
 r   c                 ó  — | j                  | j                  | j                  j                  | j                  «       | j                  | j
                  | j                  j                  | j                  «       | j                  �}d}t        | j
                  «      }||k  r`|}|dz   }|dk\  r'|t        | j                  «      k  r| j                  |   nd dk(  r!t        j                  | j                  |d«       ||k  rŒ_y y y )Nr   r{   rÆ  )r¦  r‘  r–  r‹  r•  r  r�  r–  rª   r¿   rƒ  )r   rÈ   rÉ   rÀ  s       r   r¶  zTableDiff.refineActivity™   sÚ   € Ø×Ñ˜4Ÿ>™>¨$¯*©*×*FÑ*FÀtÇÁÔWØ×Ñ˜4×,Ñ,¨T¯Z©Z×-PÑ-PÐQU×QcÑQcÔdØ×ÑÐ*ØˆBÜ�d×'Ñ'Ó(ˆCØ˜’8Ø�Ø˜1‘f�Ø./°1ªf¸¼SÀ×ASÑASÓ=TÒ9T�T×'Ñ'¨Ò*ÐZ^ÐcdÒdÜ-×2Ñ2°4×3EÑ3EÀqÈ!ÔLð	 ˜•8ð +r   c                 ó.  — |€|S | j                   j                  s| j                   j                  s|S |j                  |«      }| j                   j                  rt        j                  |«      }| j                   j                  r|j                  «       }|S r   )r–  r›  rœ  ra   r^  rZ  rØ  )r   r;   rO  r   s       r   r·  zTableDiff.normalizeString¥   sr   € ØˆOØˆNØ—*‘*×.Ò.°$·*±*×2HÒ2HØˆNØ�j‰j˜Ó!ˆØ�:‰:×'Ò'Ü×"Ñ" 3Ó'ˆCØ�:‰:×!Ò!Ø—)‘)“+ˆCØˆ
r   c                 ó  — | j                   j                  dkD  rŽt        j                  |«      }t	        j
                  |«      sdt        j                  |«      }t	        j
                  |«      s:t        j                  t        d«      ||z
  «      | j                   j                  k  ry| j                   j                  s| j                   j                  r%| j                  ||«      | j                  ||«      k(  S |j                  ||«      S )Nr   ÚfabsT)r–  r�  r•   rb  rc  rd  r  r&   r  r›  rœ  r·  rn  )r   r;   Úaarä  ÚfaÚfbs         r   r¸  zTableDiff.isEqual±   sÃ   € Ø�J‰J×%Ñ%¨Ò)Ü—‘ Ó#ˆBÜ#×)Ñ)¨"Ô-Ü—^‘^ BÓ'�Ü'×-Ñ-¨bÔ1ÜŸ™¤d¨6Ó2°B¸±GÓ=ÀÇ
Á
×@YÑ@YÒYØ#Ø�J‰J×(Ò(¨D¯J©J×,BÒ,BØ×(Ñ(¨¨2Ó.°$×2FÑ2FÀqÈÓ2LÑLÐMØ�x‰x˜˜2‹Ðr   c
                 ó@  — d}
|r|
xr |j                  |«      }
|r|
xr |j                  |«      }
|r|
xr |j                  |«      }
|
s|||gS d }d }d }|r|j                  |«      }|r|j                  |«      }|r|j                  |«      }d}t        «       }||_        ||_        ||_        | j                  |_        |j                  «        d }|j                  �|j                  j                  «       }|€&|j                  �|j                  j                  «       }|€.t        j                  |«      dz   t        j                  |	«      z   }| j                  j                  �•| j                  j                  j                   €It#        «       | j                  j                  _        t%        «       | j                  j                  _        d}n,|| j                  j                  j                   j(                  v}|r�d| _        || j                  j                  j                   j(                  |<   | j                  j                  j&                  }|j-                  |«       t/        |«      }|j                  «        n:| j                  j                  j                   j(                  j1                  |d «      }d }d }d }|j2                  j5                  «       s|r|r|r|sd|€dn|z   dz   }|}|}n*|�d|€dn|z   dz   }|�d|€dn|z   dz   }|�d	|€dn|z   dz   }|||gS )
NTFrÅ  ú[r�   ú]z[a.z[b.z[p.)rÛ  r  r¹  r}   r~   r¢   r–  rê  r  rt  rº  ru  r•   r–   rÜ  rT   rƒ  r´  r�   r„  rˆ   r¢  r‚   rÙ  r‰   rð  rj   )r   r;   Úhave_llÚllÚhave_rrÚrrÚhave_pprã  r+  r  Ú
all_tablesÚll_tableÚrr_tableÚpp_tablerv  rT   r·   r„   r,  Úll_outÚrr_outÚpp_outs                         r   r¹  zTableDiff.checkNesting½   s¾  € Øˆ
ÙØ$Ò6¨¯©°2«ˆJÙØ$Ò6¨¯©°2«ˆJÙØ$Ò6¨¯©°2«ˆJÙØ˜˜B�<ÐØˆØˆØˆÙØ—z‘z "“~ˆHÙØ—z‘z "“~ˆHÙØ—z‘z "“~ˆHØˆÜ#Ó%ˆØˆŒØˆŒØˆŒØ!ŸZ™ZˆÔØ�‰ŒØˆØ�K‰KÐ#Ø—+‘+×%Ñ%Ó'ˆCØˆ[ §¡Ð 7Ø—+‘+×%Ñ%Ó'ˆCØˆKÜ—J‘J˜q“M CÑ'¬3¯:©:°a«=Ñ8ˆCØ�J‰J�O‰OÐ'Ø—
‘
—‘×(Ñ(Ð0Ü+<Ó+>�—
‘
—‘Ô(Ü.2«f�—
‘
—‘Ô+Ø‘à # t§z¡z§¡×'?Ñ'?×'AÑ'AÐ A�ÙØ#'ˆDÔ Ø.2ˆD�J‰J�O‰O×$Ñ$×&Ñ& sÑ+Ø—J‘J—O‘O×/Ñ/ˆEØ�L‰L˜ÔÜ˜dÓ#ˆBØ�H‰H�Jà—:‘:—?‘?×+Ñ+×-Ñ-×1Ñ1°#°dÓ;ˆDØˆØˆØˆØ�^‰^×/Ñ/Ô1±wÉÑY`ÑjqØ¨¨™f¸Ñ=ÀÑDˆFØˆFØ‰Fà�Ø ¨c¨k¡F¸sÑCÀsÑJ�Ø�Ø ¨c¨k¡F¸sÑCÀsÑJ�Ø�Ø ¨c¨k¡F¸sÑCÀsÑJ�Ø˜ Ð'Ð'r   c                 óš  — d}d}t        | j                  «      }||k  �rü|}	|dz   }|	dk\  r'|	t        | j                  «      k  r| j                  |	   nd }
d }d }d }d }d }d}d }d}d}d}d}|
j                  dk\  rA|j                  dk\  r2| j                  j                  |
j                  |j                  «      }d}|
j                  dk\  rA|j                  dk\  r2| j
                  j                  |
j                  |j                  «      }d}|
j                  dk\  r‘|j                  dk\  r‚| j                  j                  |
j                  |j                  «      }d}|r|
j                  n|
j                  dk  r3|�1| j                  j                  |«      dk7  r| j                  rd| _        | j                  rb| j                  | j                  ||||||||	«	      }dt        |«      k  r|d   nd }dt        |«      k  r|d   nd }dt        |«      k  r|d   nd }|rj|s|}n•| j                  | j                  ||«      r|}nu|}|}d}| j                  | j                  ||«      sR| j                  | j                  ||«      s5|}d}n0|r,|s|}n)| j                  | j                  ||«      r|}n	|}|}d}n|}|}|�rœ|�| j                  s| j                  �r�|s!|dk(  r| }|j                   }|dz   |_        | d}| j"                  �!t$        j'                  | j"                  |	d«       | j(                  dk(  rs| j*                  j-                  «       rR| j/                  | j
                  | j                  d«      | _        | j*                  j1                  | j(                  «       nd| _        d}|r| j                  | j                  ||«      sd}|sY| j*                  j3                  ||«      }t        | j(                  «      t        | j4                  «      kD  rõ| j(                  | _        nã| j6                  dk(  r¦| j*                  j-                  «       r…t8        j;                  | j/                  | j                  | j
                  d«      «      t8        j;                  | j(                  «      z   | _        | j*                  j=                  | j6                  «       nd	| _        | j*                  j?                  |||«      }| j6                  | _        |	| j@                  jB                  vr6| j@                  jE                  |	d«       | }|jF                  }|dz   |_#        | | j4                  dk(  r| j                  rd
| _        | j4                  dk(  r/|r-| j"                  �!t$        j'                  | j"                  |	d«       | jH                  rS| j"                  �1|	dk\  r'|	t        | j"                  «      k  r| j"                  |	   nd dkD  r|jK                  |	dz   ||«       ||k  r�Œü| jH                  rR|jK                  d|| j*                  jM                  | j4                  «      «       | jN                  jE                  ||«       | j4                  dk7  rCd| _(        | jH                  s/| jR                  �"t$        j'                  | jR                  |d«       y y y y )NFr   r{   Tr�   rÒ  rw  rt  z!->r.  ro  )*rª   r  r¢   r  r    r}   r¡   r~   r;   ra   r—  rœ  rx  r¹  r¸  r   r�  r–  r¿   rƒ  r˜  r‰  rÚ   r¤  rÛ   rÞ   rµ  r™  r“   r”   rÜ   rß   r¡  rˆ   r|   r¡  r�  r  rà   rŠ  rž  r•  )r   rƒ   r
  r@  rÀ  ÚoutÚ
row_updaterÈ   rÉ   r&  r  rã  r	  r	  ÚddÚdd_toÚ
have_dd_toÚ	dd_to_altÚhave_dd_to_altr	  r	  r	  Úndiffr  rn   r   Úis_conflictr³   rµ   s                                r   rº  zTableDiff.scanRowþ   sô  € Øˆ
ØˆÜ�$×#Ñ#Ó$ˆØ�C‹xØˆAØ�q‘&ˆBØ-.°!ªV¸¼CÀ×@QÑ@QÓ<RÒ8R�T×&Ñ& qÒ)ÐX\ˆEØˆBØˆBØˆBØˆBØˆEØˆJØˆIØ"ˆNØˆGØˆGØˆGØ—‘˜A’ T§V¡V¨q¢[Ø—V‘V—^‘^ E§G¡G¨D¯F©FÓ3�Ø�Ø—‘˜A’ T§V¡V¨q¢[Ø—V‘V—^‘^ E§G¡G¨D¯F©FÓ3�Ø�Ø—‘˜A’ T§V¡V¨q¢[Ø—V‘V—^‘^ E§G¡G¨D¯F©FÓ3�Ø�Ù!(�e—g’g¨e¯g©g¸!Ò;Ø˜Ø ŸF™FŸO™O¨BÓ/°2Ò5Ø#×0Ò0Ø59 Ô 2Ø�{Š{Ø×)Ñ)¨$¯&©&°¸¸GÀBÀwÈrÐRSÐTUÓV�Ø"#¤c¨%£j¢.�e˜A’h°d�Ø"#¤c¨%£j¢.�e˜A’h°d�Ø"#¤c¨%£j¢.�e˜A’h°d�ÙÙØ‘BØ—\‘\ $§&¡&¨¨BÔ/Ø‘Bà�BØ�EØ!%�JØ ŸL™L¨¯©°°2Ô6Ø $§¡¨T¯V©V°B°rÔ :Ø(*˜IØ-1™NÙÙØ‘BØ—\‘\ $§&¡&¨¨BÔ/Ø‘Bà�BØ�EØ!%‘Jà�ØˆDÚ 2 >°t×7HÒ7HÈT×M^ÓM^Ù"Ø˜qšØ&*˜Ø&1×&=Ñ&=˜Ø3>À±?˜Ô/Ù#Ø!%�JØ×&Ñ&Ð2Ü-×2Ñ2°4×3EÑ3EÀqÈ!ÔLØ—H‘H ’NØ—|‘|×1Ñ1Ô3Ø#'×#4Ñ#4°T·V±V¸D¿F¹FÀ4Ó#H˜œØŸ™×1Ñ1°$·(±(Õ;à#'˜œØ#�Ù!Ø ŸL™L¨¯©°°iÔ@Ø&*˜Ù#ØŸ<™<×.Ñ.¨r°%Ó8�DÜ˜DŸH™H›¬¨D¯H©H«Ò5Ø#'§8¡8˜�à×)Ñ)¨RÒ/ØŸ<™<×5Ñ5Ô7Ü1<×1IÑ1IÈ$×J[ÑJ[Ð\`×\bÑ\bÐcg×ciÑciÐjmÓJnÓ1oÔr}÷  sKñ  sKð  LP÷  LTñ  LTó  sUñ  2U˜DÔ-Ø ŸL™L×=Ñ=¸d×>OÑ>OÕPà05˜DÔ-ØŸ<™<×0Ñ0°°I¸eÓD�DØ#×0Ñ0�D”HØ˜d×7Ñ7×9Ñ9Ñ9Ø×-Ñ-×1Ñ1°!°DÔ9Ø"&�KØ"-×"9Ñ"9�KØ/:¸Q©�KÔ+ÙØ—‘˜R’ T×%7Ò%7Ø�”Ø—‘˜EÒ!ÙØ×*Ñ*Ð6Ü1×6Ñ6°t×7IÑ7IÈ1ÈaÔPØ�|Š|Ø×'Ñ'Ð/ÐPQÐUVÒPVÐ[\Ô_bÐcg×cuÑcuÓ_vÒ[v°t×7IÑ7IÈ!Ò7Lð  }Að  EFò  7FØ—N‘N A¨¡E¨2¨dÔ3ðU �CŒxðV �<Š<Ø�N‰N˜1˜R §¡× 3Ñ 3°D·H±HÓ =Ô>Ø�L‰L×Ñ˜R Ô%Ø�H‰H˜ŠNØ"ˆDŒOØ—L’LØ—O‘OÐ/Ü-×2Ñ2°4·?±?ÀAÀqÕIð 0ð !ð r   c                 óN   — t         j                  |«      }| j                  |«      S r   )rˆ  r½  r»  )r   r
  s     r   r½  zTableDiff.hilitev!  s!   € Ü—‘˜vÓ&ˆØ× Ñ  Ó(Ð(r   c                 óš  — |j                  «       sy| j                  €@| j                  j                  rt	        «       | _        nt        | j                  «      | _        |j                  dd«       |j                  «        | j                  «        | j                  «        | j                  «        | j                  «        | j                  «        | j                  «        | j                  |«       | j                  |«       | j!                  |«       | j                  j"                  r| j                  j$                  rdnd}|j'                  «       }|j'                  «       }d}|}||k  �r|}|dz   }|dk(  r|| j)                  «        | j+                  | j,                  «      |z   }| j.                  r|dz
  }|}||j'                  «       kD  r(|j                  t1        | j2                  «      dz   |«       d}	d}
d}d}t1        | j4                  «      }||k  �rP|}|dz   }|dk\  r'|t1        | j4                  «      k  r| j4                  |   nd }d}| j                  j6                  r#|| j8                  j:                  v rd}|rd| _        |j>                  dk  r|j@                  dk  rŒ•|j>                  dk(  r |jC                  «       dk  r| j.                  rŒÄ| j                  j"                  | _"        d}|dk(  r]|dk\  r'|t1        | j,                  «      k  r| j,                  |   nd }|d uxr |dkD  | _"        |d uxr |dk(  }|r|	r�Œ5| jD                  s�ŒC|sd}	|}| jD                  r@|dz   }|j'                  «       |k  r(|j                  t1        | j2                  «      dz   |«       |r\d}t1        | j2                  «      dz   }||k  r9|}|dz   }|jG                  ||| jH                  jK                  d«      «       ||k  rŒ9d}	�Œód| _&        d}d	| _'        |r&d
| _'        |dk(  r| }|jP                  }|dz   |_(        | |jR                  dk  rT|j@                  dk  rE|j>                  dk\  r6| jT                  sd}d| _'        |dk(  r|s| }|jV                  }|dz   |_+        | |jR                  dk\  s| jX                  sT|j@                  dk\  rE|j>                  dk  r6| jZ                  sd}d| _'        |dk(  r|s| }|j\                  }|dz   |_.        | |r;| jD                  s-| j,                  �!t^        ja                  | j,                  |d«       �Œ:| jc                  |||||«       ||k  r�ŒP||k  r�Œ| je                  |jg                  «       |j'                  «       «       | ji                  |«      }| jj                  s| jm                  ||«       y)NFr   r{   rÒ  ro   TrÆ  ru  r�   rÐ  ro  rr  r:  )7r  r‰  r–  r”  rW  r¬  r  r  rï  r©  r«  r¬  rª  r­  r±  r²  rµ  rŠ  rŽ  r  r¶  r¨  r•  r›  rª   r  r‘  r‰  r“  rˆ   r’  r¡   r    râ  r�  r  r;   rº  rœ  rµ  rž  r¢   r  rœ  rŒ  r  r›  r¿   rƒ  rº  r®  r
  r¯  r   r°  )r   r
  Úouter_reps_neededÚoutput_heightÚoutput_height_initrÈ   rÉ   r	  r	  rÍ  r    r¡   r1  r2  rÀ  rƒ   rÄ  rÎ  ræ   r@  r3  r4  r&  Úskipr³   rµ   r	  r
  r  r=  ré  s                                  r   r»  zTableDiff.hiliteSinglez!  s4  € Ø×"Ñ"Ô$ØØ�L‰LÐ Ø�z‰z×,Ò,Ü0Ó2�•ä.¨t¯z©zÓ:�”Ø�‰�a˜ÔØ�‰ŒØ�
‰
ŒØ×ÑÔØ×ÑÔØ�‰ÔØ×ÑÔØ�‰ÔØ�‰�vÔØ�‰�vÔØ�‰�VÔØ$(§J¡J×$=Ò$=À$Ç*Á*×BcÒBc™QÐklÐØ×)Ñ)Ó+ˆØ#×.Ñ.Ó0ÐØˆØˆØ�C‹xØˆCØ�q‘&ˆBØ�q’Ø×#Ñ#Ô%Ø×(Ñ(¨¯©Ó9Ð<NÑN�Ø×%Ò%Ø  1™H�DØ 2�Ø˜6×,Ñ,Ó.Ò.Ø—M‘M¤3 t×'8Ñ'8Ó#9¸AÑ#=¸tÔDØ ˆLØˆAØˆAØˆCÜ�d—n‘nÓ%ˆCØ˜“9Ø�Ø˜Q‘w�Ø-.°!ªV¸¼CÀÇÁÓ<OÒ8O˜Ÿ™ qÒ)ÐUY�Ø!�	Ø—:‘:×%Ò%Ø˜TŸ^™^×-Ñ-Ñ-Ø$(˜	Ù Ø/3˜Ô,Ø—V‘V˜a’Z t§v¡v°¢zØØ—f‘f ’k¨¯©«°aª¸t×?QÒ?QØØ#Ÿz™z×8Ñ8�”Ø�Ø˜1’HØ34¸²6¸aÄ#ÀdÇoÁoÓBVÒ>V˜TŸ_™_¨QÒ/Ð\`�EØ%*°$Ð%6Ò$I¸eÀa¹i�D”LØ#¨4Ð/ÒC°uÀ±z�EÙ¡,Ù Ø ŸLšLÙ ÙØ#(�LØ"�Ø—<’<Ø%2°QÑ%6�MØ×)Ñ)Ó+¨mÒ;ØŸ™¤s¨4×+<Ñ+<Ó'=ÀÑ'AÀ=ÔQÙØ�CÜ˜t×0Ñ0Ó1°AÑ5�CØ š9Ø˜Ø" Q™w˜ØŸ™ q¨¨D¯F©F¯N©N¸5Ó,AÔBð  ›9ð $(�LÙØ%*�Ô"Ø�Ø�”ÙØ"�D”HØ˜qšØ&*˜Ø&1×&>Ñ&>˜Ø4?À!±O˜Ô0Ù#Ø—f‘f˜q’j¨¯©°ª
¸D¿F¹FÀaºKØ ×-Ò-Ø#˜Ø$�D”HØ š©DØ&*˜Ø&1×&=Ñ&=˜Ø3>À±?˜Ô/Ù#ØŸ™ !š¨T¯_ª_ÀdÇfÁfÐPQÂkÐ[_×[aÑ[aÐdeÒ[eØ ×-Ò-Ø#˜Ø$�D”HØ š©DØ&*˜Ø&1×&=Ñ&=˜Ø3>À±?˜Ô/Ù#ÙØ ŸLšLØ ŸO™OÐ7Ü5×:Ñ:¸4¿?¹?ÈAÈrÔRÙØ—‘˜T &¨¨A¨cÔ2ðS ˜”9ð! �CŒxðt 	×Ñ˜F×,Ñ,Ó.¨v×/@Ñ/@Ó/BÔCØ×#Ñ# FÓ+ˆØ×%Ò%Ø×Ñ˜f WÔ-Ør   c                 óâ  — |j                  d«      }| j                  |«      }|sy| j                  j                  €y| j                  j                  j                  }|€y| j                  |_        d}|t        |«      k  rî|dk\  r|t        |«      k  r||   nd }|dz   }| j                  j                  j                  j                  j                  |d «      }|j
                  }|j                  «       r.d | j                  j                  j                  j                  |<   Œ±t        || j                  «      }	|j                  |«      }
|xr |	j                  |
«      }|t        |«      k  rŒî|S )NÚbaseFTr   r{   )rž   r»  rÜ  rT   r„  rð  rª   rƒ  rˆ   r‰   rj   r  r–  )r   r
  r	  r—   r¬   rÈ   r!   Úchildrð  r  Úchild_outputs              r   r  zTableDiff.hiliteWithNestingò!  s3  € Ø�z‰z˜&Ó!ˆØ×"Ñ" 4Ó(ˆÙØØ�J‰J�O‰OÐ#ØØ—
‘
—‘×+Ñ+ˆØˆMØØŸ:™:ˆÔØˆØ”C˜“JŠØ!# q¢¨R´#°e³*ª_�E˜"’IÀ$ˆDØ�q‘&ˆBØ—J‘J—O‘O×,Ñ,×.Ñ.×2Ñ2°4¸Ó=ˆEØŸ™ˆIØ×,Ñ,Ô.Ø37�—
‘
—‘×(Ñ(×*Ñ*¨4Ñ0ØÜ˜9 T§Z¡ZÓ0ˆBØ!Ÿ:™: dÓ+ˆLØÒ> §¡°Ó!>ˆFð ”C˜“J‹ð ˆr   c                 ó   — | j                   S r   )rž  r   s    r   r¼  zTableDiff.hasDifference"  r´  r   c                 ó   — | j                   S r   )rŸ  r   s    r   r½  zTableDiff.hasSchemaDifference"  s   € Ø×%Ñ%Ð%r   c                 ó   — | j                   S r   )r¢  r   s    r   rs  zTableDiff.isNested"  s   € Ø×#Ñ#Ð#r   c                 óH   — | j                   €y | j                   j                  S r   )rÜ  rT   r   s    r   rÝ  zTableDiff.getComparisonState"  s   € Ø�J‰JÐØØ�z‰z�‰Ðr   c                 óØ  — t        «       }| j                  |_        | j                  |_        | j                  |_        | j                  |_        | j
                  |_        | j                  |_        | j                  |_        | j                  |_        | j                  |_	        | j                  j                  «       j                  «       |_        | j                  j                  «       j                  «       |_        | j                  j                  «       j                  «       | j                  j!                  «       z
  dz
  |_        | j                  j                  «       j                  «       | j                  j%                  «       z
  dz
  |_        | j                  j                  «       j)                  «       |_        | j                  j                  «       j)                  «       |_        | j                  | j                  z   | j                  z   | j                  z   | j
                  z   | j                  z   | j                  z   | j                  z   | j                  z   dkD  |_        |S rÄ  )rš  r›  rœ  r�  rž  rŸ  r   r¡  r¢  r£  rÜ  rd   r  r¤  re   r¥  rf   r¦  rg   r§  r
  r¨  r©  r  )r   Údss     r   r  zTableDiff.getSummary"  s&  € Ü‹]ˆØ×)Ñ)ˆŒØ×)Ñ)ˆŒØ×)Ñ)ˆŒØ×+Ñ+ˆŒØ×)Ñ)ˆŒØ×)Ñ)ˆŒØ×)Ñ)ˆŒØ×)Ñ)ˆŒØ×+Ñ+ˆŒØ+/¯:©:×+?Ñ+?Ó+A×+LÑ+LÓ+NˆÔ(Ø)-¯©×)=Ñ)=Ó)?×)JÑ)JÓ)LˆÔ&Ø!%§¡×!5Ñ!5Ó!7×!BÑ!BÓ!DÀtÇzÁz×GaÑGaÓGcÑ!cÐghÑ hˆÔØ#Ÿz™z×3Ñ3Ó5×@Ñ@ÓBÀTÇZÁZ×E_ÑE_ÓEaÑaÐefÑfˆÔØ#Ÿz™z×3Ñ3Ó5×?Ñ?ÓAˆÔØ!ŸZ™Z×1Ñ1Ó3×=Ñ=Ó?ˆÔØ $× 0Ñ 0°4×3CÑ3CÑ CÀt×GWÑGWÑWÐ[_×[lÑ[lÑlÐpt÷  qAñ  qAñ  Að  EI÷  EUñ  EUñ  Uð  Y]÷  Yiñ  Yiñ  ið  mq÷  m}ñ  m}ñ  }ð  AE÷  ARñ  ARñ  Rð  VWñ  WˆŒØˆ	r   N))r(   r)   r*   r?   r@   rA   rB   r   r£  r¤  r¥  r¦  r§  r¨  rï  r©  rª  r«  r¬  r­  r®  r¯  r°  r±  r²  r³  r´  rµ  r¶  r·  r¸  r¹  rº  r½  r»  r  r¼  r½  rs  rÝ  r  r+   r   r   r  r    sÝ   „ Ø €Nð B€Iò C€Jò K€Kò3&òjò,ò\ò0&òP'òò$)5òV?%òBIò6.ò.Xò&?òBLò)òV1Gòf*ò&ò.òò5òn
Mò
ò
ò?(òBvJòp)òvòpò2ò&ò$òó
r   r  c                   óp   — e Zd Zd ZdZg d¢Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)r`  r+   )Úvalidr  r  r6  r  ró  r­  r3  rF  r  r  r  ré  c                  ó   — y r   r+   r   s    r   r   zTableIO.__init__5"  ry   r   c                  ó   — yr™   r+   r   s    r   r(	  zTableIO.valid8"  rE  r   c                 ó,   — t         j                  |«      S r   )Úsys_io_Filer  r    s     r   r  zTableIO.getContent;"  s   € Ü×%Ñ% dÓ+Ð+r   c                 ó0   — t         j                  ||«       yr™   )r,	  r  )r   r!   r   s      r   r  zTableIO.saveContent>"  s   € Ü×Ñ  SÔ)Ør   c                 ó*   — t         j                  «       S r   )rÕ  r6  r   s    r   r6  zTableIO.argsB"  s   € Ü�x‰x‹zÐr   c                 óV   — t        «       j                  |j                  dd«      «       y )Núutf-8Ústrict)Ú
get_stdoutrV  Úencoder  s     r   r  zTableIO.writeStdoutE"  s   € Ü‹×Ñ˜3Ÿ:™: g¨xÓ8Õ9r   c                 óJ   — t         j                  «       j                  |«       y r   )rÕ  rq  ÚwriteStringr  s     r   ró  zTableIO.writeStderrH"  s   € Ü�
‰
‹× Ñ  Õ%r   c                 ó^   — 	 t         j                  ||«      S # t        $ r}	 Y d }~yd }~ww xY wrS  )rÕ  r­  r(  )r   r5  r6  rÈ   s       r   r­  zTableIO.commandK"  s.   € ð	Ü—;‘;˜s 4Ó(Ð(øÜò 	ØÜûð	ús   ‚ ˜	,¡'§,c                  ó   — yr|  r+   r   s    r   r3  zTableIO.hasAsyncR"  r}  r   c                 ó,   — t         j                  |«      S r   )rk  rF  ©r   r   s     r   rF  zTableIO.existsU"  s   € Ü×$Ñ$ TÓ*Ð*r   c                  ó   — yr™   r+   r   s    r   r  zTableIO.isTtyKnownX"  rE  r   c                 ó~   — t        d«      j                  j                  «       ryt        j	                  d«      dk(  ryy)NÚsysTÚGIT_PAGER_IN_USEÚtrueF)rÞ  rp  ÚisattyrÕ  ro  r   s    r   r  zTableIO.isTty["  s4   € Ü�eÓ×#Ñ#×*Ñ*Ô,ØÜ�J‰JÐ)Ó*¨fÒ4ØØr   c                 ó   — t        |«      S r   )ÚSqliteDatabaser9	  s     r   r  zTableIO.openSqliteDatabaseb"  s   € Ü˜dÓ#Ð#r   c                 óî   — t        d«      j                  ddd¬«      }|j                  |j                  dd«      «       |j	                  «        t        d«      j                  d	|j                  z   «       y )
NÚtempfileÚwbFz.html)r²  Úsuffixr0	  r1	  Ú
webbrowserzfile://)rÞ  ÚNamedTemporaryFilerV  r3	  Úcloser;  r!   )r   rÄ  re  s      r   ré  zTableIO.sendToBrowsere"  s[   € Ü�zÓ"×5Ñ5°dÀ5ÐQXÐ5ÓYˆØ	�‰�—‘˜G XÓ.Ô/Ø	�‰Œ	Ü�<Ó ×%Ñ% i°!·&±&Ñ&8Õ9r   N)r(   r)   r*   r?   r@   rB   r   r(	  r  r  r6  r  ró  r­  r3  rF  r  r  r  ré  r+   r   r   r`  r`  0"  sZ   „ Ø€NØ€Iò ~€Kòòò,òòò:ò&òòò+òòò$ó:r   r`  c                   ó,   — e Zd Zd ZdZdgZdgZd„ Zd„ Zy)rÇ  r"  r  ÚremoveColumnc                 ó   — || _         y r   r"  rð  s     r   r   zTableModifier.__init__t"  s	   € Øˆ�r   c                 óT  — g }d}| j                   j                  «       }||k  rO|}|dz   }||k  r|j                  |«       n+||kD  r|j                  |dz
  «       n|j                  d«       ||k  rŒO| j                   j                  || j                   j                  «       dz
  «      S r®   )r  r
  r‚   r  )r   r@  r>  rÈ   rÉ   rÀ  s         r   rJ	  zTableModifier.removeColumnw"  s›   € ØˆØˆØ�f‰f×ÑÓ ˆØ�CŠxØˆAØ�q‘&ˆBØ�B’Ø—‘˜A•Ø�b’&Ø—‘˜Q ™UÕ$à—‘˜B”ð �C‹xð �v‰v×+Ñ+¨D°$·&±&×2BÑ2BÓ2DÀqÑ2HÓJÐJr   N)	r(   r)   r*   r?   r@   rA   rB   r   rJ	  r+   r   r   rÇ  rÇ  n"  s&   „ Ø$€NØ€IØ�€JØ!Ð"€KòóKr   rÇ  c                   óN   — e Zd Zd ZdZg d¢Zg d¢ZegZd„ Z	d„ Z
d„ Zd„ Zd„ Zd„ Zy	)
r÷  )r  r@  rˆ   r“  r*  r…  )rŽ  r�  rù  r  rø  c                 óN  — d | _         d | _        || _        d| _        |j	                  «       | _        d | _        | j
                  dk  r^|j                  «       }|€t        j                  d«      ‚|j                  «       | _        | j                  €t        j                  d«      ‚y y )Nro   r   z%Cannot get meta information for tablezCannot iterate table)r…  r*  r  r@  r  rˆ   r“  r  r&  r'  r¹  rð  s      r   r   zTableStream.__init__�"  s•   € ØˆŒØˆŒØˆŒØˆŒØ—‘“ˆŒØˆŒØ�F‰F�QŠJØ—9‘9“;ˆDØ�Ü$×+Ñ+Ð,SÓTÐTØ×(Ñ(Ó*ˆDŒHØ—‘Ð Ü$×+Ñ+Ð,BÓCÐCð !ð r   c                 ó¤  — | j                   �| j                   S | j                  �+| j                  j                  «       | _         | j                   S t        «       | _         d}| j                  j                  «       }||k  rF|}|dz   }| j                   }| j                  j                  |d«      }|j                  |«       ||k  rŒF| j                   S rW  )r*  r“  rŽ  r�   r  r
  r  r‚   )r   rÈ   rÉ   rÀ  r„   r+  s         r   rŽ  zTableStream.fetchColumnsŸ"  s°   € Ø�L‰LÐ$Ø—<‘<ÐØ�H‰HÐ ØŸ8™8×0Ñ0Ó2ˆDŒLØ—<‘<ÐÜ“vˆŒØˆØ�f‰f×ÑÓ ˆØ�CŠxØˆAØ�q‘&ˆBØ—L‘LˆEØ—‘—‘˜q Ó#ˆAØ�L‰L˜ŒOð �C‹xð �|‰|Ðr   c                 ó²  — | j                   �| j                   j                  «       S | j                  | j                  k\  ry t	        «       }d}t        | j                  «      }||k  rp|}|dz   }|dk\  r'|t        | j                  «      k  r| j                  |   nd }| j                  j                  || j                  «      }||j                  |<   ||k  rŒp|S rW  )	r“  r�  r@  rˆ   r´  rª   r*  r  r  r²  s          r   r�  zTableStream.fetchRow°"  s¼   € Ø�H‰HÐ Ø—8‘8×$Ñ$Ó&Ð&Ø�G‰G�t—v‘vÒØÜÓ!ˆØˆÜ�$—,‘,ÓˆØ�CŠxØˆAØ�q‘&ˆBØ$%¨¢F¨q´3°t·|±|Ó3DÒ/D�—‘˜a’È$ˆAØ—‘—‘˜q §¡Ó)ˆAØˆC�E‰E�!‰Hð �C‹xð ˆ
r   c                 ó`  — | j                   dk(  r7| }|j                   }|dz   |_         | | j                  �| j                  «        y| j                  �*d| _         | j                  «       | _        | j                  d uS | }|j                   }|dz   |_         | | j                   | j
                  k  S ©Nro   r{   T)r@  r“  rŽ  r�  r…  rˆ   )r   rn   r   r³   rµ   s        r   rù  zTableStream.fetchÀ"  sž   € Ø�G‰G�rŠMØˆKØ%Ÿ.™.ˆKØ)¨A™oˆKŒNÙØ—‘Ð$Ø×!Ñ!Ô#ØØ�H‰HÐ ØˆDŒGØ—}‘}“ˆDŒHØ—H‘H DÐ(Ð)ØˆØ!—n‘nˆØ%¨™/ˆŒÙØ—‘˜$Ÿ&™&Ñ Ð!r   c                 óŽ  — | j                   dk(  r.|dk\  r'|t        | j                  «      k  r| j                  |   S d S | j                  �W| j                  j                  j                  |dk\  r,|t        | j                  «      k  r| j                  |   d «      S d d «      S | j                  j                  || j                   «      S rm   )r@  rª   r*  r…  rˆ   r‰   r  r  re  s     r   r  zTableStream.getCellÓ"  s�   € Ø�G‰G�qŠLØ'(¨A¢v°!´c¸$¿,¹,Ó6GÒ2G�D—L‘L ‘OÐRÈTÐRØ�H‰HÐ Ø—8‘8—:‘:—>‘>°a¸1²fÀÄSÈÏÉÓEVÒAV 4§<¡<°¡?ÐbfÓgÐgÐ\`ÐbfÓgÐgØ�v‰v�~‰~˜a §¡Ó(Ð(r   c                 óL   — | j                  «        t        | j                  «      S r   )rŽ  rª   r*  r   s    r   rø  zTableStream.widthÚ"  s   € Ø×ÑÔÜ�4—<‘<Ó Ð r   N)r(   r)   r*   r?   r@   rA   rB   r�  rK  r   rŽ  r�  rù  r  rø  r+   r   r   r÷  r÷  ‰"  s<   „ Ø"€NØ9€IÚ:€JÚK€KØ�[€NòDòò"ò "ò&)ó!r   r÷  c                   óH   — e Zd Zd ZdZg d¢Zg d¢Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zy	)
r  )ÚtemplaterX   Útable_orderrð  )rž   rù  r‰   rú  rû  c                 ó\   — d | _         || _        t        «       | _        t	        «       | _        y r   )rð  rV	  r´  rX   r�   rW	  )r   rV	  s     r   r   zTables.__init__ç"  s$   € ØˆŒØ ˆŒÜ'Ó)ˆŒÜ›6ˆÕr   c                 ó¦   — | j                   j                  «       }|| j                  j                  |<   | j                  }|j                  |«       |S r   )rV	  r  rX   rˆ   rW	  r‚   )r   r!   r  r„   s       r   rž   z
Tables.addí"  sB   € Ø�M‰M×ÑÓ!ˆØˆ�‰�‰�dÑØ× Ñ ˆØ�‰�TÔØˆr   c                 ó   — | j                   S r   )rW	  r   s    r   rù  zTables.getOrderô"  s   € Ø×ÑÐr   c                 óN   — | j                   j                  j                  |d «      S r   )rX   rˆ   r‰   r    s     r   r‰   z
Tables.get÷"  s   € Ø�{‰{�}‰}× Ñ   dÓ+Ð+r   c                 ó¦   — | j                   j                  j                  dt        | j                  «      k  r| j                  d   d «      S d d «      S rm   )rX   rˆ   r‰   rª   rW	  r   s    r   rú  z
Tables.oneú"  sG   € Ø�{‰{�}‰}× Ñ ¸¼SÀ×AQÑAQÓ=RÒ9R $×"2Ñ"2°1Ñ"5Ð^bÓcÐcÐX\Ð^bÓcÐcr   c                 óz   — | j                   €y| j                   j                  ry| j                   j                  ryyrq  )rð  rU   rV   r   s    r   rû  zTables.hasInsDelý"  s2   € Ø�N‰NÐ"ØØ�>‰>×&Ò&ØØ�>‰>×%Ò%ØØr   N)r(   r)   r*   r?   r@   rA   rB   r   rž   rù  r‰   rú  rû  r+   r   r   r  r  á"  s5   „ Ø€NØB€IÚC€JÚ@€Kò"òò ò,òdór   r  c                   óD   — e Zd Zd ZdZg d¢Zg d¢Zd	d„Zd„ Zd„ Z	d„ Z
d„ Zy)
rø  )
r#  r  rÇ  r;   Úalign_columnsÚwide_columnsrŸ  r–  rì  r³  )rà  rì  ÚgetTextÚ	pickSizesNc                 ó  — |€d}d | _         d | _        d | _        d | _        d| _        d| _        d| _        || _        |�=|j                  dk(  rd| _        |j                  dk(  rd| _        |j                  | _        |�|nd| _	        || _
        y )NTFÚdenseÚsparserÈ  )r;   rÇ  r  r#  r_	  r`	  rŸ  r–  r—  rì  r³  )r   r–  rì  r³  s       r   r   zTerminalDiffRender.__init__#  sš   € ØˆLØˆDØˆŒØˆŒØˆŒØˆŒ
Ø!ˆÔØ!ˆÔØˆŒØˆŒ
ØÐØ×&Ñ&¨'Ò1Ø%*�Ô"Ø×&Ñ&¨(Ò2Ø$(�Ô!Ø#×.Ñ.ˆDŒOØ!&Ð!2‘e¸#ˆŒ
Øˆ�	r   c                 ó   — || _         y r   )r_	  )r   Úenables     r   rà  zTerminalDiffRender.alignColumns##  s
   € Ø#ˆÕr   c           	      óN  — t        «       | _        d}|j                  «       }|j                  «       }|| _        |j                  «       | _        t        «       | _        d| j                  j                  d<   d| j                  j                  d<   d| j                  j                  d<   d| j                  j                  d<   d	| j                  j                  d
<   d| j                  j                  d<   d| j                  j                  d<   d| j                  j                  d<   d| j                  j                  d<   d }| j                  r| j                  |«      }t        «       }d}|}||k  �rb|}	|dz   }d}
d}d}|}||k  �r5|}|dz   }|�1|
|z
  }d}|}||k  r#|}|dz   }|j                  d«       |dz   }||k  rŒ#|dkD  r‹| j                  j                  j                  dd «      }|j                  |«       | j                  }|j                  |«       | j                  j                  j                  dd «      }|j                  |«       | j!                  ||	d«      }|j                  |«       |�>| j!                  ||	d«      }|t#        |«      z   }|
|dk\  r|t#        |«      k  r||   nd z   }
||k  r�Œ5|j                  d«       ||k  r�Œbd | _        d | _        d | _        d | _        dj%                  |D �cg c]  }t&        j)                  |d«      ‘Œ c}«      S c c}w )Nr�   z[0;1mrN  z[33mÚminorz[0mr/  rS   z[35;1mr]  z[32;1mrž   z[33;1mrß   z[34;1mrx  z[31;1mr  r   r{   r1  TFrS  )rñ  rÇ  r
  r  r  r  r;   r´  r#  rˆ   r_	  rb	  r�   r‚   r‰   rì  ra	  rª   r>   rÊ  rË  )r   r  r—   r:  rˆ   Úsizesrû  rÈ   rÉ   r  r  r@  r1  r2  r+  Úspacesr3  r4  rÀ  rÍ  r:  Úx3Úx4Úbits                           r   rì  zTerminalDiffRender.render&#  sÑ  € Ü“5ˆŒØˆØ�K‰K‹MˆØ�L‰L‹NˆØˆŒØ—‘“ˆŒÜ&Ó(ˆŒ
Ø!,ˆ�
‰
�‰�XÑØ *ˆ�
‰
�‰�WÑØ(ˆ�
‰
�‰�VÑØ*ˆ�
‰
�‰�VÑØ+ˆ�
‰
�‰�VÑØ*ˆ�
‰
�‰�UÑØ#/ˆ�
‰
�‰�ZÑ Ø!-ˆ�
‰
�‰�XÑØ!-ˆ�
‰
�‰�XÑØˆØ×ÒØ—N‘N 1Ó%ˆEÜ‹vˆØˆØˆØ�C‹xØˆAØ�q‘&ˆBØˆFØˆBØˆCØˆCØ˜“9Ø�Ø˜Q‘w�ØÐ%Ø$ r™k�FØ�CØ �CØ š9Ø˜Ø" Q™w˜ØŸ™ CÔ(Ø  1™f˜ð	  ›9ð
 ˜’EØŸ™Ÿ™×)Ñ)¨'°$Ó7�BØ—K‘K ”OØŸ™�BØ—K‘K ”OØŸ™Ÿ™×)Ñ)¨&°Ó6�BØ—K‘K ”OØ—\‘\ ! A dÓ+�Ø—‘˜B”ØÐ%ØŸ,™, q¨¨5Ó1�CØœs 3›x™-�BØ$°A¸²F¸qÄ3ÀuÃ:º~¨¨aªÐSWÑX�Fð1 ˜”9ð2 �K‰K˜ÔðA �CŒxðB ˆŒØˆŒØˆŒØˆŒ
Ø�w‰w¸tÖD¸œ×-Ñ-¨b°Õ4ÒDÓEÐEùÒDs   Ë>L"c                 ó´  — | j                   j                  ||«      }t        j                  | j                   | j                  ||«      }|�r'| j
                  �rd }|j                  �0| j                  j                  j                  |j                  d «      }|j                  �4| j                  j                  j                  |j                  d «      }|�|}|��Z| j                  r|j                  n|j                  }|j                  ��ít        j!                  | j                  j                  j                  dd «      «      t        j!                  |j"                  «      z   t        j!                  | j                  j                  j                  dd «      «      z   |€dn|z   t        j!                  | j                  j                  j                  dd «      «      z   t        j!                  |j                  «      z   t        j!                  | j                  j                  j                  dd «      «      z   }|j$                  ��ît        j!                  | j                  j                  j                  dd «      «      t        j!                  |j$                  «      z   t        j!                  | j                  j                  j                  dd «      «      z   |€dn|z   t&        j)                  |«      z   }�n<| j                  r|j*                  n|j,                  }|€dn|t&        j)                  |«      z   t        j!                  | j                  j                  j                  dd «      «      z   }nÁ|r›| j
                  s�|dk(  r®t        j!                  | j                  j                  j                  dd «      «      t&        j)                  |«      z   t        j!                  | j                  j                  j                  dd «      «      z   }n$| j                  r|j*                  n|j,                  }| j.                  j                  | j                  |«      S )	Nr  rx  r�   rž   r/  rß   r   rN  )r  r  rã  rï  r;   r³  rè   r#  rˆ   r‰   ré   rŸ  rë   rê   rð   r“   r”   rï   rî   r•   r–   rç   ræ   rÇ  )	r   r+  r  ÚcolorrE  r  r"  Úcode_trrê   s	            r   ra	  zTerminalDiffRender.getTextd#  sô  € Ø�f‰f�n‰n˜Q˜qÓ!ˆÜ×$Ñ$ T§V¡V¨D¯F©F°1°QÓ7ˆÚ�d—i“iØˆDØ—‘Ð)Ø—z‘z—|‘|×'Ñ'¨¯©°dÓ;�Ø×&Ñ&Ð2ØŸ*™*Ÿ,™,×*Ñ*¨4×+AÑ+AÀ$ÓG�ØÐ'Ø"�DØÑ Ø7;·²˜T×2Ò2ÈTÏ^É^�	Ø—K‘KÑ+Ü +× 8Ñ 8¸¿¹¿¹×9IÑ9IÈ(ÐSWÓ9XÓ YÔ\g×\tÑ\tÐuy÷  vAñ  vAó  ]Bñ  !Bô  FQ÷  F^ñ  F^ð  _c÷  _iñ  _i÷  _kñ  _k÷  _oñ  _oð  pxð  y}ó  _~ó  Fñ   ð  NWð  N_ñ  DJð  enñ  oô  s~÷  sKñ  sKð  LP÷  LVñ  LV÷  LXñ  LX÷  L\ñ  L\ð  ]bð  cgó  Lhó  siñ  iô  mx÷  mEñ  mEð  FJ÷  FQñ  FQó  mRñ  Rô  Va÷  Vnñ  Vnð  os÷  oyñ  oy÷  o{ñ  o{÷  oñ  oð  @Fð  GKó  oLó  VMñ  M�CØŸ™Ñ/Ü"-×":Ñ":¸4¿:¹:¿<¹<×;KÑ;KÈJÐW[Ó;\Ó"]Ô`k×`xÑ`xÐy}÷  zEñ  zEó  aFñ  #Fô  JU÷  Jbñ  Jbð  cg÷  cmñ  cm÷  coñ  co÷  csñ  csð  t|ð  }Aó  cBó  JCñ  "Cð  R[ð  Rcñ  HNð  irñ  !sô  wz÷  wAñ  wAð  BEó  wFñ   Fšà15·²˜4×,Ò,ÀtÇzÁz�CØ'+ |™V¸ÄÇÁÈCÃÑPÔT_×TlÑTlÐmq×mwÑmw×myÑmy×m}Ñm}ð  Eð  FJó  nKó  ULñ  L‘CÙ˜TŸYšYØ�Q’Ü#×0Ñ0°·±·±×1AÑ1AÀ(È4Ó1PÓQÔTW×T^ÑT^Ð_bÓTcÑcÔgr×gÑgð  AE÷  AKñ  AK÷  AMñ  AM÷  AQñ  AQð  RXð  Y]ó  A^ó  h_ñ  _‘à)-¯ª�4×$Ò$¸t¿z¹zˆCØ�x‰x×"Ñ" 4§6¡6¨#Ó.Ð.r   c                 ó¸  — |j                  «       }|j                  «       }|j                  «       }t        «       }t	        «       }d}|dz
  }d}	|}
|	|
k  �rY|	}|	dz   }	d}d}d}d}d}d}|}||k  rq|}|dz   }| j                  ||d«      }|dk(  r|dk(  r| j                  r|}|dk(  r| j                  s|}t        |«      }||k(  r|}||z   }|||z  z   }||kD  r|}||k  rŒq||z  }||z  ||z  z
  }|dk  rt        j                  nt        j                  |«      }d }	 t        ||dz  z   dz   «      }|}d}|}||k  r7|}|dz   }| j                  ||d«      }t        |«      }||k  r||kD  r|}||k  rŒ7|} |}|dk7  r||k  r|}| j                  r| }|j                  |«       ||z   }|	|
k  r�ŒY|dkD  r| j                  sy |S # t        $ r}	 d }Y d }~Œ¢d }~ww xY w)	Nro   r{   r   Fr  rÒ  r  é‚   )r
  r  r  rñ  r�   ra	  r³  rª   r  r=  rc  Úsqrtr  r(  r`	  r‚   )!r   r  r:  rˆ   r;   rÇ  rj	  r…  ÚtotalrÈ   rÉ   r+  r‰  Úm2ÚmmaxÚmmostmaxÚmminr1  r2  r  r   r¬  ÚmeanÚstddevÚmostr3  Úmost1r4  rb  r$  r×  Úlen1r‰  s!                                    r   rb	  zTerminalDiffRender.pickSizes#  sL  € Ø�K‰K‹MˆØ�L‰L‹NˆØ�M‰M‹OˆÜ‹eˆÜ“ˆØˆØ�Q‘ˆØˆØˆØ�C‹xØˆAØ�q‘&ˆBØˆAØˆBØˆDØˆHØˆDØˆCØˆCØ˜’9Ø�Ø˜Q‘w�Ø—l‘l 1 Q uÓ-�Ø˜T’k¨°ª¸$¿)º)Ø�CØ˜B’Y¨¯ªØ�CÜ˜c›(�Ø˜’HØ"�DØ˜‘[�Ø˜W wÑ.Ñ0�Ø˜d’NØ"�Dð ˜“9ð ˜‘EˆDØ�q‘&˜d T™kÑ+ˆAØ$%¨¢E”d—h’h´×1EÑ1EÀaÓ1HˆFØˆDðÜ˜T f¨q¡jÑ2°cÑ9Ó;�ð ˆEØˆCØˆCØ˜’9Ø�Ø˜Q‘w�Ø—|‘| A b¨Ó/�Ü˜4“y�Ø˜E’MØ˜xšØ#'˜ð ˜“9ð ˆDØˆEØ˜’
Ø˜D’LØ �EØ× Ò Ø�Ø�L‰L˜ÔØ˜U‘]ˆEðk �CŒxðl �SŠ[ 4×#4Ò#4ØØˆøô3 !ò ØØ•ûðús   ÄG Ç	GÇGÇG©NNN)r(   r)   r*   r?   r@   rA   rB   r   rà  rì  ra	  rb	  r+   r   r   rø  rø  	#  s2   „ Ø)€NØs€IÚt€JÚD€Kóò($ò<Fò|/ó6Br   rø  c                   ó<   — e Zd ZdZd Zg d¢Zed„ «       Zed„ «       Zy)Ú	ValueTyper+   )	ÚTNullÚTIntÚTFloatÚTBoolÚTObjectÚ	TFunctionÚTClassÚTEnumÚTUnknownc                 ó   — t        dd| f«      S )Nrˆ	  rÓ  ©r�	  )r.  s    r   rˆ	  zValueType.TClassÊ#  s   € ä˜ 1 q dÓ+Ð+r   c                 ó   — t        dd| f«      S )Nr‰	  rÐ  rŒ	  ©r.  s    r   r‰	  zValueType.TEnumÎ#  s   € ä˜ ! a TÓ*Ð*r   N)	r(   r)   r*   r@   r?   r  rã  rˆ	  r‰	  r+   r   r   r�	  r�	  Å#  s7   „ Ø€IØ €NÚp€Nàñ,ó ð,ð ñ+ó ñ+r   r�	  r‚	  r+   rƒ	  r{   r„	  rÒ  r…	  rÆ  r†	  rÃ  r‡	  rü  rŠ	  r\  c                   ó<   — e Zd Zd ZdZddgZed„ «       Zed„ «       Zy)ÚTyper+   ÚgetClassÚtypeofc                 óô   — | €y | }|�0t         j                  |t        «      st        j                  |«      ry t        | t        «      ry t        | d«      r| j                  S t        | d«      r| j                  S y )NÚ	_hx_classr  )
r“   rk  r9   r{  r  r  r	   r
  r”	  r  )rÊ   r°   s     r   r‘	  zType.getClassà#  sk   € àˆIØØˆØˆ^¤;§>¡>°"´SÔ#9Ô=O×=WÑ=WÐXZÔ=[ØÜ�aœÔ'ØÜ�1�[Ô!Ø—;‘;ÐÜ�1�[Ô!Ø—;‘;Ðàr   c                 ó  — | €t         j                  S t        | t        «      rt         j                  S t        | t
        «      rt         j                  S t        | t        «      rt         j                  S t        | t        «      rt         j                  t        «      S t        | t        «      rt         j                  t        «      S t        | t        «      st        j                  | «      rt         j                  S t        | t         «      rt         j#                  | j$                  «      S t        | t&        «      st)        | d«      rt         j                  | j$                  «      S t+        | «      rt         j,                  S t         j.                  S )Nr”	  )r�	  r‚	  r  r  r…	  r  rƒ	  r  r„	  r9   rˆ	  r�   r	   r{  r  r†	  r-   r‰	  r  r¦  r
  Úcallabler‡	  rŠ	  ©r;   s    r   r’	  zType.typeofð#  s  € àˆIÜ—?‘?Ð"Ü˜œ$ÔÜ—?‘?Ð"Ü˜œ#ÔÜ—>‘>Ð!Ü˜œ%Ô Ü×#Ñ#Ð#Ü˜œ#ÔÜ×#Ñ#¤CÓ(Ð(Ü˜œ$ÔÜ×#Ñ#¤DÓ)Ð)Ü˜œ>Ô*Ô.@×.HÑ.HÈÔ.KÜ×$Ñ$Ð$Ü˜œ$ÔÜ—?‘? 1§;¡;Ó/Ð/Ü˜œ4Ô ¤G¨A¨kÔ$:Ü×#Ñ# A§K¡KÓ0Ð0Ü�aŒ[Ü×&Ñ&Ð&ä×%Ñ%Ð%r   N)	r(   r)   r*   r?   r@   râ  rã  r‘	  r’	  r+   r   r   r�	  r�	  Û#  s<   „ Ø€NØ€IØ˜xÐ(€Kàñó ðð ñ&ó ñ&r   r�	  c                   ó`   — e Zd Zd ZdZg d¢Zg d¢ZdgZdd„Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zed„ «       Zy)r»   ©r    r¡   r¢   )râ  ra   Ú
fromStringÚbase26rÂ  ÚdescribeNc                 óF   — |€d}|€d}|€d}|| _         || _        || _        y r›   r™	  rŸ   s       r   r   zUnit.__init__$  s5   € ØˆIØˆAØˆIØˆAØˆIØˆAØˆŒØˆŒØˆ�r   c                 óP   — | j                   dk(  r| j                  S | j                   S r›   )r¢   r    r   s    r   râ  zUnit.lp$  s   € Ø�F‰F�bŠLØ—6‘6ˆMà—6‘6ˆMr   c                 ó,  — | j                   dk\  ržt        j                  t        j	                  | j                   «      «      dz   t        j                  t        j	                  | j
                  «      «      z   dz   t        j                  t        j	                  | j                  «      «      z   S t        j                  t        j	                  | j
                  «      «      dz   t        j                  t        j	                  | j                  «      «      z   S ©Nro   ú|rÐ  )r¢   r“   r”   r»   rœ	  r    r¡   r   s    r   ra   zUnit.toString#$  sý   € Ø�F‰F�bŠLÜ"×/Ñ/´·±¸d¿f¹fÓ0EÓFÈÑLÔP[×PhÑPhÔim×ivÑivÐw{×w}Ñw}Ói~ÓPÑð  DGñ  Gô  KV÷  Kcñ  Kcô  dh÷  dqñ  dqð  rv÷  rxñ  rxó  dyó  Kzñ  zð  {Ü×)Ñ)¬$¯-©-¸¿¹Ó*?Ó@À3ÑFÌ+×JbÑJbÔcg×cpÑcpÐqu×qwÑqwÓcxÓJyÑyÐzr   c                 ó  — |€dn|dz   }d}d}t        |«      }||k  rn|}|dz   }t        j                  ||«      }|dk\  r|dk  r|dz  }||dz
  z   }n3|dk(  rd	}n+|d
k(  r
|| _        d}n|dk(  r
|| _        d}n|dk(  r|| _        y||k  rŒny)Nr�   r 	  r   r{   r9  r0  r  é-   ro   é|   r6  é]   TF)rª   rv  r  r¢   r    r¡   )r   r   r@  rÈ   rÉ   rÀ  r  s          r   rš	  zUnit.fromString($  sÁ   € Ø˜+‘¨3°#Ñ5ˆØˆØˆÜ�#‹hˆØ�CŠxØˆAØ�q‘&ˆBÜ×$Ñ$ S¨Ó+ˆBØ�r’  r¢Ø˜2‘g�Ø˜R "™WÑ&‘Ø˜’(Ø‘Ø˜’)Ø�”Ø‘Ø˜’(Ø�”Ø‘Ø˜’(Ø�”Øð# �C‹xð$ r   c                 óô   — d}|dk  ryd}	 t         j                  |d«      }|€dn|t         j                  |dk  s|t        |«      k\  rdn||   «      z   }t	        j
                  |dz  «      dz
  }|dk\  s	 |S Œn)NÚABCDEFGHIJKLMNOPQRSTUVWXYZr   r  r�   é   r�   r{   )r“   r  r”   rª   r  r  )r   ÚnumÚalphar	  r0   s        r   r›	  zUnit.base26A$  s£   € Ø,ˆØ�!ŠGØØˆØÜ—O‘O C¨Ó,ˆEØ!˜k‘F¨s´k×6NÑ6NÐY^ÐabÒYbÐinÔruÐv{Ór|Òi|ÑPRð  GLð  MRñ  GSó  7Uñ  UˆCÜ—:‘:˜s R™xÓ)¨AÑ-ˆCØ˜Q’hØØˆ
ð r   c                 ó  — | j                   dk\  r’t        j                  | j                  | j                   «      «      dz   t        j                  | j                  | j                  «      «      z   dz   t        j                  | j                  | j
                  «      «      z   S t        j                  | j                  | j                  «      «      dz   t        j                  | j                  | j
                  «      «      z   S r 	  )r¢   r“   r”   r›	  r    r¡   r   s    r   rÂ  zUnit.toBase26StringN$  sü   € Ø�F‰F�bŠLÜ"×/Ñ/°·±¸D¿F¹FÓ0CÓDÀsÑJÌk×NfÑNfÐgk×grÑgrÐsw×syÑsyÓgzÓN{Ñ{ð  @Cñ  Cô  GR÷  G_ñ  G_ð  `d÷  `kñ  `kð  lp÷  lrñ  lró  `só  Gtñ  tð  uÜ×)Ñ)¨$¯+©+°d·f±fÓ*=Ó>ÀÑDÌ×H`ÑH`Ðae×alÑalÐmq×msÑmsÓatÓHuÑuÐvr   c                 ó>   — | dk\  rdt         j                  | «      z   S y)Nr   r�   r  rß  )rÀ  s    r   rœ	  zUnit.describeS$  s   € à�ŠFØœŸ™ A›Ñ&Ð'àr   r	  )r(   r)   r*   r?   r@   rA   rB   râ  r   râ  ra   rš	  r›	  rÂ  rã  rœ	  r+   r   r   r»   r»   $  sQ   „ Ø€NØ€IÚ €JÚN€KØ�,€Kó	òò{ò
ò2òwð
 ñó ñr   r»   c                   ól   — e Zd Zd ZdZg d¢Zg d¢Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zy)rÅ  )	ÚKÚTr0   rO  Ú
path_validÚ	best_costÚcostr“  r   )rï  ÚsetSizeÚ
assertModeÚaddTransitionÚendTransitionsÚbeginTransitionsÚcalculatePathra   r›  r‰   ÚgetCostc                 ó  ‡ — d ‰ _         d ‰ _        d ‰ _        d ‰ _        d ‰ _        d ‰ _        d ‰ _        ˆ fd„} |«       ‰ _        ‰ j                  «        t        «       ‰ _        t        «       ‰ _        t        «       ‰ _         y )Nc                  ó*   •— d‰ _         ‰ j                   S rm   )r¯	  r   s   €r   rn   z%Viterbi.__init__.<locals>._hx_local_0k$  rù  r   )
r   r“  r²	  r±	  r°	  rO  r0   r®	  rï  rô  rq   s   ` r   r   zViterbi.__init__c$  sh   ø€ ØˆŒ	ØˆŒØˆŒ	ØˆŒØˆŒØˆŒ	ØˆŒ
ô	ñ “ˆŒØ�
‰
ŒÜ“MˆŒ	Ü“=ˆŒÜ“Mˆ�	r   c                 ó<   — d| _         d| _        d| _        d| _        y r  )r0   rO  r°	  r±	  r   s    r   rï  zViterbi.resett$  s   € ØˆŒ
ØˆŒ	ØˆŒØˆ�r   c                 ó2  — || _         || _        | j                  j                  | j                   | j                  d«       | j                  j                  | j                   | j                  d«       | j
                  j                  d| j                  d«       y r9  )r®	  r¯	  r²	  r  r“  r   )r   ÚstatesÚsequence_lengths      r   r³	  zViterbi.setSizez$  sd   € ØˆŒØ ˆŒØ�	‰	×Ñ˜Ÿ™ §¡ qÔ)Ø�‰�‰˜Ÿ™˜tŸv™v bÔ)Ø�	‰	×Ñ˜˜4Ÿ6™6 "Õ%r   c                 ón   — |dk(  r)| j                   dk(  r| }|j                  }|dz   |_        | || _         y rW  )rO  r0   )r   rº   rn   r   s       r   r´	  zViterbi.assertMode�$  s9   € Ø�QŠY˜dŸi™i¨1šnØˆKØ%×+Ñ+ˆKØ!,¨q¡ˆKÔÙØˆ�	r   c                 óF  — d}|| j                   k\  r|dz   | _         d}|| j                   k\  r|dz   | _         d}|r‰| j                  j                  | j                   | j                  d«       | j                  j                  | j                   | j                  d«       | j
                  j                  d| j                  d«       d| _        | j                  d«       | j                  | j                  k\  r�| j                  dz   | _        | j                  j                  | j                   | j                  d«       | j                  j                  | j                   | j                  d«       | j
                  j                  d| j                  d«       d}| j                  dkD  rY|| j                  j                  || j                  dz
  «      z   }| j                  j                  || j                  dz
  «      dk7  }nd}|r¢|| j                  j                  || j                  «      k  s)| j                  j                  || j                  «      dk(  rO| j                  j                  || j                  |«       | j                  j                  || j                  |«       y y y )NFr{   Tr   ro   )r®	  r²	  rö  r¯	  r“  r   r°	  r´	  r0   r‰   r|   )r   Ús0rf  r.  r  Úsourceds         r   rµ	  zViterbi.addTransition‰$  sé  € ØˆØ�$—&‘&ŠLØ˜1‘fˆDŒFØˆFØ�$—&‘&ŠLØ˜1‘fˆDŒFØˆFÙØ�I‰I×*Ñ*¨4¯6©6°$·&±&¸Ô;Ø�H‰H×)Ñ)¨$¯&©&°·±¸Ô;Ø�I‰I×*Ñ*¨1¨T¯V©V°BÔ7ØˆŒØ�‰˜ÔØ�J‰J˜$Ÿ&™&Ò Ø—j‘j 1‘nˆDŒFØ�I‰I×*Ñ*¨4¯6©6°$·&±&¸Ô;Ø�H‰H×)Ñ)¨$¯&©&°·±¸Ô;Ø�I‰I×*Ñ*¨1¨T¯V©V°BÔ7ØˆØ�J‰J˜ŠNØ�T—Y‘Y—]‘] 2 t§z¡z°A¡~Ó7Ñ7ˆAØ—x‘x—|‘| B¨¯
©
°Q©Ó8¸BÑ>‰GàˆGÙØ�T—Y‘Y—]‘] 2 d§j¡jÓ1Ò1¸¿¹¿¹ÀRÈÏ
É
Ó8SÐWYÒ8YØ—	‘	—‘˜b §¡¨AÔ.Ø—‘—‘˜R §
¡
¨2Õ.ð 9Zð r   c                 ó4   — d| _         | j                  d«       y )NFr   ©r°	  r´	  r   s    r   r¶	  zViterbi.endTransitions§$  ó   € ØˆŒØ�‰˜Õr   c                 ó4   — d| _         | j                  d«       y )NFr{   rÅ	  r   s    r   r·	  zViterbi.beginTransitions«$  rÆ	  r   c                 óþ  — | j                   ry | j                  «        d}d}| j                  dk  rd| _         y d}| j                  }||k  r•|}|dz   }| j                  j                  || j                  dz
  «      |k  s|dk(  rW| j                  j                  || j                  dz
  «      dk7  r+| j                  j                  || j                  dz
  «      }|}||k  rŒ•|| _        d}| j                  }||k  r||}|dz   }| j                  dz
  |z
  }| j                  j                  d||«       |dk7  r|dk\  r|| j                  k  st        d«       | j                  j                  ||«      }||k  rŒ|d| _         y )Nr   ro   Tr{   zProblem in Viterbi)r°	  r¶	  r0   r®	  r²	  r‰   r“  r±	  r   r|   rõ  )r   ÚbestÚbestjrÈ   rÉ   r&  rÀ  s          r   r¸	  zViterbi.calculatePath¯$  sk  € Ø�?Š?ØØ×ÑÔØˆØˆØ�J‰J˜!ŠOØ"ˆDŒOØØˆØ�f‰fˆØ�CŠxØˆAØ�q‘&ˆBØ—9‘9—=‘=  D§J¡J°¡NÓ4°tÒ;À%È2Â+ÐX\×X`ÑX`×XdÑXdÐefÐhl×hrÑhrÐuvÑhvÓXxÐ|~ÒX~Ø—y‘y—}‘} Q¨¯
©
°Q©Ó8�Ø�ð �C‹xð ˆŒØˆØ�j‰jˆØ�CŠxØˆAØ�q‘&ˆBØ—*‘*˜q‘. AÑ%ˆAØ�I‰I�M‰M˜!˜A˜eÔ$Ø ’{¨5°Aª:¸UÀTÇVÁVº^ÜÐ*Ô+Ø—H‘H—L‘L  qÓ)ˆEð �C‹xð ˆ�r   c                 óØ  — | j                  «        d}d}| j                  }||k  r„|}|dz   }| j                  j                  d|«      dk(  r
|€dn|dz   }n6|€dn|t        j                  | j                  j                  d|«      «      z   }| j                  dk\  r	|€dn|dz   }||k  rŒ„|€dn|t        j                  d	t        j                  | j                  «       «      z   «      z   }|S )
Nr�   r   r{   ro   r�   r  r  r1  z costs )
r¸	  r0   r   r‰   r•   r–   r®	  r“   r”   r¹	  rp  s        r   ra   zViterbi.toStringÍ$  sè   € Ø×ÑÔØˆØˆØ�j‰jˆØ�CŠxØˆAØ�q‘&ˆBØ—	‘	—‘˜a Ó" bÒ(Ø"% +™°3¸#Ñ=‘à"% +™°3¼#¿*¹*ÀTÇYÁYÇ]Á]ÐSTÐUVÓEWÓ:XÑX�Ø—‘˜"’Ø"% +™°3¸#Ñ=�ð �C‹xð ˜+‘¨3´+×2JÑ2JÈYÔY\×YcÑYcÐdh×dpÑdpÓdrÓYsÑMsÓ2vÑvˆØˆ
r   c                 óX   — | j                   dkD  r| j                  «        | j                   S rm   )r0   r¸	  r   s    r   r›  zViterbi.lengthÞ$  s#   € Ø�J‰J˜ŠNØ×ÑÔ Ø�z‰zÐr   c                 óZ   — | j                  «        | j                  j                  d|«      S rm   )r¸	  r   r‰   )r   rÀ  s     r   r‰   zViterbi.getã$  s#   € Ø×ÑÔØ�y‰y�}‰}˜Q˜qÓ!Ð!r   c                 ó:   — | j                  «        | j                  S r   )r¸	  r±	  r   s    r   r¹	  zViterbi.getCostç$  s   € Ø×ÑÔØ�~‰~Ðr   N)r(   r)   r*   r?   r@   rA   rB   r   rï  r³	  r´	  rµ	  r¶	  r·	  r¸	  ra   r›  r‰   r¹	  r+   r   r   rÅ  rÅ  ]$  sU   „ Ø€NØ]€IÚ^€Jò e€Kò"ò"ò&òò/ò<òòò<ò"ò
"ór   rÅ  c                   ó   — e Zd ZdZdZy)Ú	haxe_IMapz	haxe.IMapr+   N)r(   r)   r*   r?   r@   r+   r   r   rÐ	  rÐ	  î$  s   „ Ø €NØ�Ir   rÐ	  c                   ó€   ‡ — e Zd ZdZdZg d¢Zg d¢ZddgZg Ze	Z
dˆ fd„	Zd„ Zd	„ Zd
„ Zd„ Zed„ «       Zed„ «       Zˆ xZS )r&  zhaxe.Exception)Ú_hx___nativeStackÚ_hx___skipStackÚ_hx___nativeExceptionÚ_hx___previousException)Ú__nativeStackÚ__skipStackÚ__nativeExceptionÚ__previousException)r*  ra   Úget_messageÚ
get_nativer)  r'  c                 ó„  •— d | _         d | _        d | _        d| _        t        ‰| �  |«       || _         |�;t        j                  |t        «      r!|| _        t        j                  «       | _        y | | _        t        j                  «       }t        |«      dk7  r|j                  «        |j                  «        || _        y rm   )rÕ	  rÔ	  rÒ	  rÓ	  Úsuperr   r•   rî  r(  Úhaxe_NativeStackTraceÚexceptionStackÚpython_lib_TracebackÚextract_stackrª   r^  Úreverse)r   ÚmessageÚpreviousÚnativeÚinfosr  s        €r   r   zhaxe_Exception.__init__þ$  sŸ   ø€ Ø'+ˆÔ$Ø%)ˆÔ"Ø!%ˆÔØ ˆÔÜ‰Ñ˜Ô!Ø'/ˆÔ$ØÐ¤S§\¡\°&¼Ô%GØ)/ˆDÔ&Ü%:×%IÑ%IÓ%KˆDÕ"à)-ˆDÔ&Ü(×6Ñ6Ó8ˆEÜ�E“
˜a’Ø—	‘	”Ø�M‰MŒOØ%*ˆDÕ"r   c                 ó   — | j                   S r   ©rÔ	  r   s    r   r*  zhaxe_Exception.unwrap%  ó   € Ø×)Ñ)Ð)r   c                 ó"   — | j                  «       S r   )rÚ	  r   s    r   ra   zhaxe_Exception.toString%  s   € Ø×ÑÓ!Ð!r   c                 ó   — t        | «      S r   r8   r   s    r   rÚ	  zhaxe_Exception.get_message%  s   € Ü�4‹yÐr   c                 ó   — | j                   S r   rè	  r   s    r   rÛ	  zhaxe_Exception.get_native%  ré	  r   c                 ó´   — t         j                  | t        «      r| S t         j                  | t        «      rt        t	        | «      d | «      S t        | d | «      S r   )r•   rî  r&  r(  r9   Úhaxe_ValueException©ræ   s    r   r)  zhaxe_Exception.caught%  sE   € ä�<‰<˜œnÔ-ØˆLÜ�\‰\˜%¤Ô.Ü!¤# e£*¨T°%Ó8Ð8ä& u¨T°%Ó8Ð8r   c                 óÐ   — t         j                  | t        «      r| j                  «       S t         j                  | t        «      r| S t        | «      }|j                  dz   |_        |S rS  )r•   rî  r&  rÛ	  r(  rî	  rÓ	  )ræ   r.  s     r   r'  zhaxe_Exception.thrown%%  sT   € ä�<‰<˜œnÔ-Ø×#Ñ#Ó%Ð%Ü�\‰\˜%¤Ô.ØˆLä# EÓ*ˆAØ!"×!2Ñ!2°QÑ!6ˆAÔØˆHr   r  )r(   r)   r*   r?   r@   rA   rB   râ  rK  Ú	ExceptionÚ	_hx_superr   r*  ra   rÚ	  rÛ	  rã  r)  r'  Ú__classcell__©r  s   @r   r&  r&  ô$  sl   ø„ Ø%€NØl€IÚ]€JÚE€KØ˜XÐ&€KØ€NØ€Iõ+ò$*ò"òò*ð ñ9ó ð9ð ñó ôr   r&  c                   ó<   — e Zd ZdZdZddgZed„ «       Zed„ «       Zy)rÞ	  zhaxe.NativeStackTracer+   Ú	saveStackrß	  c                  ó   — y r   r+   )Ú	exceptions    r   rö	  zhaxe_NativeStackTrace.saveStack8%  s   € àr   c                  óŒ   — t        j                  «       } | d   �*t        j                  | d   «      }|j	                  «        |S g S )NrÒ  )rs  Úexc_inforà	  Ú
extract_tbrâ	  )Úexcræ	  s     r   rß	  z$haxe_NativeStackTrace.exceptionStack<%  sA   € ä×%Ñ%Ó'ˆØ�‰FÐÜ(×3Ñ3°C¸±FÓ;ˆEØ�M‰MŒOØˆLàˆIr   N)	r(   r)   r*   r?   r@   râ  rã  rö	  rß	  r+   r   r   rÞ	  rÞ	  3%  s=   „ Ø,€NØ€IØÐ 0Ð1€Kàñó ðð ñó ñr   rÞ	  c                   óF   ‡ — e Zd ZdZdZdgZdgZg Zg Ze	Z
dˆ fd„	Zd„ Zˆ xZS )rî	  zhaxe.ValueExceptionrï	  ræ   r*  c                 ór   •— d | _         t        ‰| �	  |€dnt        j	                  |«      ||«       || _         y ©Nr�   )ræ   rÝ	  r   r•   r–   )r   ræ   rä	  rå	  r  s       €r   r   zhaxe_ValueException.__init__R%  s2   ø€ ØˆŒ
Ü‰Ñ e m™&¼3¿:¹:ÀeÓ;LÈhÐW]Ô^Øˆ�
r   c                 ó   — | j                   S r   rï	  r   s    r   r*  zhaxe_ValueException.unwrapW%  rm  r   r  )r(   r)   r*   r?   r@   rA   rB   râ  rK  r&  rò	  r   r*  ró	  rô	  s   @r   rî	  rî	  H%  s4   ø„ Ø*€NØ€IØ�€JØ�*€KØ€KØ€NØ€Iõö
r   rî	  c                   óF   — e Zd ZdZdZdgZg d¢ZegZd„ Z	d„ Z
d„ Zd„ Zd	„ Zy
)rp   zhaxe.ds.IntMaprÄ  rˆ   )r|   r  r¸   ra   c                 ó"   — t        «       | _        y r   ©Údictrˆ   r   s    r   r   zhaxe_ds_IntMap.__init__d%  ó   € Ü“ˆ�r   c                 ó"   — || j                   |<   y r   rÄ  )r   r·   ræ   s      r   r|   zhaxe_ds_IntMap.setg%  s   € Øˆ�‰ˆsŠr   c                 ó<   — || j                   vry| j                   |= yrq  rÄ  )r   r·   s     r   r  zhaxe_ds_IntMap.removej%  s   € Ø˜Ÿ™‘ØØ�F‰F�3ˆKØr   c                 óZ   — t        t        | j                  j                  «       «      «      S r   ©Úpython_HaxeIteratorÚiterrˆ   r¸   r   s    r   r¸   zhaxe_ds_IntMap.keysp%  ó   € Ü"¤4¨¯©¯©«Ó#6Ó7Ð7r   c           
      óN  — t        «       }|j                  d«       | j                  «       }|}|j                  «       rÈ|j	                  «       }|j                  t
        j                  |«      «       |j                  d«       |j                  t
        j                  t
        j                  | j                  j                  |d «      «      «      «       |j                  «       r|j                  d«       |j                  «       rŒÈ|j                  d«       |j                  «       S )Nrÿ  z => r6   r 	  )
rG  rV  r¸   r¹   rº   r•   r–   rˆ   r‰   rW  )r   Ús_br  rÀ  rg  s        r   ra   zhaxe_ds_IntMap.toStrings%  s¾   € Ü$Ó&ˆØ�	‰	�#ŒØ�Y‰Y‹[ˆØˆØ�i‰iŒkØ—‘“ˆBØ�I‰I”c—j‘j “nÔ%Ø�I‰I�fÔØ�I‰I”c—j‘j¤§¡¨D¯F©F¯J©J°r¸$Ó,?Ó!@ÓAÔBØ�z‰zŒ|Ø—	‘	˜$”ð �i‰i�kð 	�	‰	�#ŒØ�|‰|‹~Ðr   N)r(   r)   r*   r?   r@   rA   rB   rÐ	  rK  r   r|   r  r¸   ra   r+   r   r   rp   rp   ]%  s8   „ Ø%€NØ€IØ�€JÚ7€KØ�[€Nòòòò8ór   rp   c                   ó:   — e Zd ZdZdZdgZddgZegZd„ Z	d„ Z
d„ Zy	)
r´  zhaxe.ds.StringMaprÄ  rˆ   r¸   rn  c                 ó"   — t        «       | _        y r   r
  r   s    r   r   zhaxe_ds_StringMap.__init__Œ%  r
  r   c                 óZ   — t        t        | j                  j                  «       «      «      S r   r	
  r   s    r   r¸   zhaxe_ds_StringMap.keys�%  r
  r   c                 óZ   — t        t        | j                  j                  «       «      «      S r   )r

  r
  rˆ   Úvaluesr   s    r   rn  zhaxe_ds_StringMap.iterator’%  s   € Ü"¤4¨¯©¯©«Ó#8Ó9Ð9r   N)r(   r)   r*   r?   r@   rA   rB   rÐ	  rK  r   r¸   rn  r+   r   r   r´  r´  …%  s3   „ Ø(€NØ€IØ�€JØ˜:Ð&€KØ�[€Nòò8ó:r   r´  c                   óJ   ‡ — e Zd ZdZdZdgZdgZg Zg Ze	Z
dˆ fd„	Zˆ fd„Zˆ xZS )Úhaxe_exceptions_PosExceptionzhaxe.exceptions.PosException)ÚposInfosr
  ra   c                 ór   •— d | _         t        ‰| �	  ||«       |€t        dddddœ«      | _         y || _         y )Nz	(unknown)r   ©ÚfileNameÚ
lineNumberÚ	classNameÚ
methodName)r
  rÝ	  r   r	   ©r   rã	  rä	  ri  r  s       €r   r   z%haxe_exceptions_PosException.__init__¢%  sG   ø€ ØˆŒÜ‰Ñ˜ Ô*ØˆKÜ*¸ÐSTÐcnð  Jñ  ,Kó  LˆD�MàˆD�Mr   c                 ó´  •— dt         j                  t        ‰| �  «       «      z   dz   t         j                  | j                  j
                  «      z   dz   t         j                  | j                  j                  «      z   dz   t         j                  | j                  j                  «      z   dz   t        j                  | j                  j                  «      z   S )Nr�   z in rÂ  z at rÐ  )r“   r”   rÝ	  ra   r
  r
  r
  r
  r•   r–   r
  )r   r  s    €r   ra   z%haxe_exceptions_PosException.toStringª%  sL  ø€ Øœ[×5Ñ5´e±gÑ6FÓ6HÓIÑIÈVÑSÔWb×WoÑWoÐpt×p}Ñp}÷  qHñ  qHó  XIñ  Ið  MPñ  Pô  T_÷  Tlñ  Tlð  mq÷  mzñ  mz÷  mEñ  mEó  TFñ  Fð  JPñ  Pô  T_÷  Tlñ  Tlð  mq÷  mzñ  mz÷  mCñ  mCó  TDñ  Dð  HKñ  Kô  OR÷  OYñ  OYð  Z^÷  Zgñ  Zg÷  Zrñ  Zró  Osñ  sð  	tr   r  )r(   r)   r*   r?   r@   rA   rB   râ  rK  r&  rò	  r   ra   ró	  rô	  s   @r   r
  r
  ˜%  s;   ø„ Ø3€NØ€IØ�€JØ�,€KØ€KØ€NØ€Iõ ÷tð tr   r
  c                   ó<   ‡ — e Zd ZdZdZg Zg Zg Zg Ze	Z
dˆ fd„	Zˆ xZS )Ú'haxe_exceptions_NotImplementedExceptionz'haxe.exceptions.NotImplementedExceptionr+   c                 ó0   •— |€d}t         ‰| �  |||«       y )NzNot implemented©rÝ	  r   r
  s       €r   r   z0haxe_exceptions_NotImplementedException.__init__º%  s   ø€ ØˆOØ'ˆGÜ‰Ñ˜ ¨#Õ.r   r	  )r(   r)   r*   r?   r@   rA   rB   râ  rK  r
  rò	  r   ró	  rô	  s   @r   r 
  r 
  °%  s0   ø„ Ø>€NØ€IØ€JØ€KØ€KØ€NØ,€I÷/ñ /r   r 
  c                   óZ   — e Zd ZdZdZg d¢Zg d¢ZdgZd„ Zd„ Z	d„ Z
d„ Zd	„ Zedd„«       Zy
)rô  zhaxe.format.JsonPrinter)rm  ÚreplacerÚindentÚprettyÚnind)rV  ÚclassStringÚfieldsStringr  rõ  c                 ó^   — || _         || _        |d u| _        d| _        t	        «       | _        y rm   )r$
  r%
  r&
  r'
  rD  rm  )r   r$
  rÎ  s      r   r   z haxe_format_JsonPrinter.__init__È%  s,   € Ø ˆŒØˆŒØ DÐ(ˆŒØˆŒ	Ü“;ˆ�r   c           	      óF  — | j                   �| j                  ||«      }t        j                  |«      }|j                  }|dk(  r&| j                  j
                  j                  d«       y |dk(  r=| j                  }t        j                  |«      }|j
                  j                  |«       y |dk(  r‘|}|t        j                  k7  r=|t        j                  k7  r*t        j                  |«      st        j                  |«      nd}| j                  }t        j                  |«      }|j
                  j                  |«       y |dk(  r=| j                  }t        j                  |«      }|j
                  j                  |«       y |dk(  r&| j                  |t        j!                  |«      «       y |dk(  r&| j                  j
                  j                  d«       y |d	k(  �r¤|j"                  d   }	|	t$        k(  r| j'                  |«       y |	t(        k(  �r!|}| j                  }d
j+                  t-        t.        dg«      «      }|j
                  j                  |«       t1        |«      }
|
dz
  }d}|
}||k  �rv|}|dz   }|dkD  rH| j                  }d
j+                  t-        t.        dg«      «      }|j
                  j                  |«       n| }|j2                  }|dz   |_        | | j4                  rG| j                  }d
j+                  t-        t.        dg«      «      }|j
                  j                  |«       | j4                  r}t6        j9                  d
| j:                  | j2                  t1        | j:                  «      z  «      }| j                  }t        j                  |«      }|j
                  j                  |«       | j                  ||dk\  r|t1        |«      k  r||   nd «       ||k(  rö| }|j2                  }|dz
  |_        | | j4                  rG| j                  }d
j+                  t-        t.        dg«      «      }|j
                  j                  |«       | j4                  r}t6        j9                  d
| j:                  | j2                  t1        | j:                  «      z  «      }| j                  }t        j                  |«      }|j
                  j                  |«       ||k  r�Œv| j                  }d
j+                  t-        t.        dg«      «      }|j
                  j                  |«       y |	t<        k(  �r|}t?        i «      }|jA                  «       }|jC                  «       r³|jE                  «       }|jF                  jI                  |d «      }tK        ||t        jL                  v rd|z   nSt1        |«      dkD  rDtO        |d   «      dk(  r3tO        |d   «      dk(  r"tO        |t1        |«      dz
     «      dk7  rd|z   n||«       |jC                  «       rŒ³|}| j                  |t        j!                  |«      «       y |	tP        k(  r"|}| j'                  |jS                  «       «       y | jU                  |«       y |dk(  rm|j"                  d   }|j                  }t        j                  |«      }| j                  }t        j                  |«      }|j
                  j                  |«       y |dk(  r&| j                  j
                  j                  d«       y y )Nr   r�   r{   rÒ  rÆ  rÃ  rü  z"<fun>"rÓ  r�   é[   é,   r  r¥	  Ú_hx_r  rÐ  r\  z"???")+r$
  r�	  r’	  r0   rm  r~   rV  r•   r–   r  r  r  rc  rd  r)
  rÊ  r   r1   r9   r  r�   r>   rÙ  rÚ  rª   r'
  r&
  r^  rO  r%
  r´  r	   r¸   r¹   rº   rˆ   r‰   ÚsetattrÚkeywordsrU  r!  ra   r(
  ) r   rÃ   r;   rÈ   r  r„   r^  re  re  r.  r¬  rX  rÉ   r1  rÀ  rn   r   r  rf  rf  r{  Ús2r³   rµ   Ú_this3Ús3rg  Ú_this4Ús4rÊ   rÄ   ræ   s                                    r   rV  zhaxe_format_JsonPrinter.writeÏ%  sü  € Ø�M‰MÐ%Ø—‘˜a Ó"ˆAÜ�[‰[˜‹^ˆØ�h‰hˆØ�1ŠHØ�H‰H�J‰J×Ñ˜VÕ$Ø�QŠhØ—H‘HˆEÜ—
‘
˜1“ˆAØ�G‰G�M‰M˜!ÕØ�QŠhØˆAØ'(¬D×,BÑ,BÒ'BÈ!Ìt×OeÑOeÒJeô  sB÷  sHñ  sHð  IJô  sK”#—*‘*˜Q”-ð  TZˆBØ—H‘HˆEÜ—
‘
˜2“ˆAØ�G‰G�M‰M˜!ÕØ�QŠhØ—H‘HˆEÜ—
‘
˜1“ˆAØ�G‰G�M‰M˜!ÕØ�QŠhØ×Ñ˜a¤× 2Ñ 2°1Ó 5Õ6Ø�QŠhØ�H‰H�J‰J×Ñ˜[Õ)Ø�Q‹hØ—	‘	˜!‘ˆAØ”S’Ø—
‘
˜1•Ø”t“)Ø�ØŸ™�Ø—G‘GœC¤ R D›MÓ*�Ø—‘—‘˜aÔ Ü˜b›'�Ø !™�Ø�Ø�Ø˜S“yØ�AØ ™7�CØ˜AšØ $§¡˜ØŸG™G¤C¬¨R¨D£MÓ2˜ØŸ™Ÿ™ aÕ(à&*˜Ø&1×&6Ñ&6˜Ø,7¸!©O˜Ô(Ù#Ø—{’{Ø!%§¡˜ØŸW™W¤S¬¨b¨T£]Ó3˜ØŸ™Ÿ™ rÔ*Ø—{’{Ü(×-Ñ-¨b°·±¸d¿i¹iÌ#ÈdÏkÉkÓJZÑ>ZÓ\˜Ø!%§¡˜Ü ŸZ™Z¨›^˜ØŸ™Ÿ™ rÔ*Ø—J‘J˜q¨1°ª6°a¼#¸b»'²k " Q¢%ÀtÔMØ˜Tš	Ø&*˜Ø&1×&6Ñ&6˜Ø,7¸!©O˜Ô(Ù#ØŸ;š;Ø%)§X¡X˜FØ!#§¡¬¬S°"°«Ó!7˜BØ"ŸH™HŸN™N¨2Ô.ØŸ;š;Ü!,×!1Ñ!1°"°T·[±[À$Ç)Á)ÌcÐRV×R]ÑR]ÓN^ÑB^Ó!`˜BØ%)§X¡X˜FÜ!$§¡¨B£˜BØ"ŸH™HŸN™N¨2Ô.ðG ˜S”yðH Ÿ™�Ø—G‘GœC¤ R D›MÓ*�Ø—‘—‘˜aÕ ØÔ(Ó(Ø�Ü" 2Ó&�Ø—G‘G“I�Ø—i‘i”kØŸ™›�BØŸD™DŸH™H R¨Ó-�EÜ˜A°"¼×8LÑ8LÑ2L ¨¢ÔknÐoqÓkrÐuvÒkvô  Bð  CEð  FGñ  CHó  Ið  MOò  Oô  Y\ð  ]_ð  `añ  ]bó  Ycð  giò  Yiô  svð  wyô  {~ð  Aó  {Bð  EFñ  {Fñ  wHó  sIð  MOò  sOÐV\Ð_aÒVað  Y[ð  ^cô  dð —i‘i•kð �Ø×!Ñ! "¤[×%7Ñ%7¸Ó%;Õ<Ø”t’)Ø�Ø—
‘
˜2Ÿ;™;›=Õ)à× Ñ  Õ#Ø�QŠhØ—)‘)˜A‘,ˆCØ—‘ˆAÜ—
‘
˜1“ˆAØ—H‘HˆEÜ—
‘
˜1“ˆAØ�G‰G�M‰M˜!ÕØ�QŠhØ�H‰H�J‰J×Ñ˜YÕ'àr   c                 ót   — | j                  |t        j                  t        j	                  |«      «      «       y r   )r)
  rÊ  ÚgetInstanceFieldsr�	  r‘	  )r   r;   s     r   r(
  z#haxe_format_JsonPrinter.classString7&  s&   € Ø×Ñ˜!œK×9Ñ9¼$¿-¹-ÈÓ:JÓKÕLr   c                 óä  — | j                   }dj                  t        t        dg«      «      }|j                  j                  |«       t        |«      }d}d}|}||k  �rS|}	|dz   }|	dk\  r|	t        |«      k  r||	   nd }
t        j                  ||
«      }t        j                  |«      rŒS|r| }|j                  }|dz   |_
        | d}nG| j                   }dj                  t        t        dg«      «      }|j                  j                  |«       | j                  rG| j                   }dj                  t        t        dg«      «      }|j                  j                  |«       | j                  r}t        j                  d| j                  | j                  t        | j                  «      z  «      }| j                   }t        j!                  |«      }|j                  j                  |«       | j#                  |
«       | j                   }dj                  t        t        d	g«      «      }|j                  j                  |«       | j                  rG| j                   }dj                  t        t        d
g«      «      }|j                  j                  |«       | j                  |
|«       ||k  r�ŒS|sö| }|j                  }|dz
  |_
        | | j                  rG| j                   }dj                  t        t        dg«      «      }|j                  j                  |«       | j                  r}t        j                  d| j                  | j                  t        | j                  «      z  «      }| j                   }t        j!                  |«      }|j                  j                  |«       | j                   }dj                  t        t        dg«      «      }|j                  j                  |«       y )Nr�   é{   Tr   r{   Fr-
  r  r6  r_  é}   )rm  r>   rÙ  rÚ  r~   rV  rª   r  r&   ru  r'
  r&
  r^  rO  r%
  r•   r–   r  )r   r;   r   r„   r^  r¬  ÚemptyrÈ   rÉ   rÀ  re  ræ   rn   r   r  rf  re  r{  r1
  r2
  r3
  r4
  r5
  r³   rµ   s                            r   r)
  z$haxe_format_JsonPrinter.fieldsString:&  sæ  € Ø—‘ˆØ�G‰G”Cœ˜S˜E“NÓ#ˆØ�‰�‰�aÔÜ�f“+ˆØˆØˆØˆØ�C‹xØˆAØ�q‘&ˆBØ 1šf¨¬S°«[ª�˜’¸dˆAÜ—M‘M ! AÓ&ˆEÜ×!Ñ! %Ô(ØÙØ"�Ø)×.Ñ.�Ø$/°!¡O�Ô ÙØ‘àŸ™�Ø—G‘GœC¤ R D›MÓ*�Ø—‘—‘˜aÔ Ø�{Š{ØŸ™�Ø—W‘WœS¤ b T›]Ó+�Ø—‘—‘˜rÔ"Ø�{Š{Ü ×%Ñ% b¨¯©°d·i±iÄ#ÀdÇkÁkÓBRÑ6RÓT�ØŸ™�Ü—Z‘Z “^�Ø—‘—‘˜rÔ"Ø�J‰J�qŒMØ—X‘XˆFØ—‘œœS " ›Ó'ˆBØ�H‰H�N‰N˜2ÔØ�{Š{ØŸ™�Ø—W‘WœS¤ b T›]Ó+�Ø—‘—‘˜rÔ"Ø�J‰J�q˜ÔðE �CŒxñF ØˆKØ%×*Ñ*ˆKØ +¨a¡ˆKÔÙØ�{Š{ØŸ™�Ø—G‘GœC¤ R D›MÓ*�Ø—‘—‘˜aÔ Ø�{Š{Ü×$Ñ$ R¨¯©°T·Y±YÄÀTÇ[Á[ÓAQÑ5QÓS�ØŸ™�Ü—J‘J˜q“M�Ø—‘—‘˜aÔ Ø—‘ˆØ�G‰G”Cœ˜S˜E“NÓ#ˆØ�‰�‰�aÕr   c                 ón  — | j                   }dj                  t        t        dg«      «      }|j                  j                  |«       d}t        |«      }||k  �r”|}|dz   }t        ||   «      }|}|dk(  r'| j                   j                  j                  d«       �nJ|dk(  r'| j                   j                  j                  d«       �n|d	k(  r&| j                   j                  j                  d
«       nó|dk(  r&| j                   j                  j                  d«       nÈ|dk(  r&| j                   j                  j                  d«       n�|dk(  r&| j                   j                  j                  d«       nr|dk(  r&| j                   j                  j                  d«       nG| j                   }dj                  t        t        |g«      «      }|j                  j                  |«       ||k  r�Œ”| j                   }dj                  t        t        dg«      «      }|j                  j                  |«       y )Nr�   r  r   r{   r\  z\br[  z\tr  z\né   z\fr  z\rz\"é\   z\\)rm  r>   rÙ  rÚ  r~   rV  rª   rU  )	r   r^  r„   rf  rÀ  r›  r0   r.  ro  s	            r   r  zhaxe_format_JsonPrinter.quotew&  sš  € Ø—‘ˆØ�W‰W”Sœ˜b˜T“]Ó#ˆØ�‰�‰�bÔØˆÜ�Q“ˆØ�6‹zØˆEØ�Q‘ˆAÜ�A�e‘H“ˆAØˆBØ�a’Ø—‘—
‘
× Ñ  Ö'Ø˜’'Ø—‘—
‘
× Ñ  Ö'Ø˜’(Ø—‘—
‘
× Ñ  Õ'Ø˜’(Ø—‘—
‘
× Ñ  Õ'Ø˜’(Ø—‘—
‘
× Ñ  Õ'Ø˜’(Ø—‘—
‘
× Ñ  Õ(Ø˜’(Ø—‘—
‘
× Ñ  Õ(àŸ™�Ø—W‘WœS¤ a S›\Ó*�Ø—‘—‘˜bÔ!ð- �6Œzð. —‘ˆØ�G‰G”Cœ˜R˜D“MÓ"ˆØ�‰�‰�aÕr   Nc                 ó†   — t        ||«      }|j                  d| «       |j                  j                  j	                  «       S rY  )rô  rV  rm  r~   rW  )rÊ   r$
  rÎ  Úprinters       r   rõ  zhaxe_format_JsonPrinter.print˜&  s3   € ä)¨(°5Ó9ˆØ�‰�b˜ÔØ�{‰{�}‰}×%Ñ%Ó'Ð'r   r  )r(   r)   r*   r?   r@   rA   rB   râ  r   rV  r(
  r)
  r  rã  rõ  r+   r   r   rô  rô  Á%  sO   „ Ø.€NØ?€IÚ@€JÚC€KØ�)€KòòfòPMò;òzðB ò(ó ñ(r   rô  c                   ó:   — e Zd ZdZdZddgZdgZd„ Zed	d„«       Z	y)
Úhaxe_io_Byteszhaxe.io.Bytes©r›  r~   r›  r~   ÚofStringc                 ó    — || _         || _        y r   rC
  )r   r›  r~   s      r   r   zhaxe_io_Bytes.__init__§&  s   € ØˆŒØˆ�r   Nc                 óD   — t        | d«      }t        t        |«      |«      S )NzUTF-8)Ú	bytearrayrB
  rª   )r^  Úencodingr~   s      r   rD
  zhaxe_io_Bytes.ofString«&  s   € ä�a˜Ó ˆÜœS ›V AÓ&Ð&r   r   )
r(   r)   r*   r?   r@   rA   râ  r   rã  rD
  r+   r   r   rB
  rB
  ¡&  s5   „ Ø$€NØ€IØ˜C�€JØ�,€Kòð ò'ó ñ'r   rB
  c                   ó   — e Zd ZdZdZddgZy)Úhaxe_io_Encodingr+   zhaxe.io.EncodingÚUTF8Ú	RawNativeN)r(   r)   r*   r@   r?   r  r+   r   r   rJ
  rJ
  ²&  s   „ Ø€IØ'€NØ˜kÐ*�Nr   rJ
  rK
  rL
  c                   ó,   — e Zd ZdZdZg d¢Zed„ «       Zy)Úhaxe_io_Errorr+   zhaxe.io.Error)ÚBlockedÚOverflowÚOutsideBoundsÚCustomc                 ó   — t        dd| f«      S )NrR
  rÆ  )rN
  rŽ	  s    r   rR
  zhaxe_io_Error.Custom¿&  s   € ä˜X q¨1¨$Ó/Ð/r   N)r(   r)   r*   r@   r?   r  rã  rR
  r+   r   r   rN
  rN
  º&  s#   „ Ø€IØ$€NÚG€Nàñ0ó ñ0r   rN
  rO
  rP
  rQ
  c                   óB   — e Zd ZdZdZdgZg d¢Zd„ Zd„ Zd„ Z	d„ Z
dd
„Zy	)Úhaxe_io_Outputúhaxe.io.Output©Ú	bigEndianrX
  )Ú	writeByteÚ
writeBytesÚset_bigEndianÚwriteFullBytesr5	  c                 ó8   — t        d d t        dddddœ«      «      ‚)Nzhaxe/io/Output.hxé/   rV
  rY
  r
  )r 
  r	   r1  s     r   rY
  zhaxe_io_Output.writeByteÎ&  s=   € Ü5°d¸4ÄÐ\oð  @Bð  Qað  q|ñ  P}ó  A~ó  ð  	r   c                 óò   — |dk  s|dk  s||z   |j                   kD  r#t        j                  t        j                  «      ‚|j
                  }|}|dkD  r$| j                  ||   «       |dz   }|dz
  }|dkD  rŒ$|S rW  )r›  r&  r'  rN
  rQ
  r~   rY
  )r   r^  ri  r¬  r~   rÃ   s         r   rZ
  zhaxe_io_Output.writeBytesÑ&  s|   € Ø�AŠg˜G ašK°°w±À!Ç(Á(Ò0JÜ ×'Ñ'¬×(CÑ(CÓDÐDØ�C‰CˆØˆØ�1ŠuØ�N‰N˜1˜S™6Ô"Ø˜‘7ˆCØ�Q‘ˆAð �1‹uð ˆr   c                 ó   — || _         |S r   rW
  rŒ   s     r   r[
  zhaxe_io_Output.set_bigEndianÜ&  s   € ØˆŒØˆr   c                 óV   — |dkD  r$| j                  |||«      }||z   }||z
  }|dkD  rŒ#y y rm   )rZ
  )r   r^  ri  r¬  rÃ   s        r   r\
  zhaxe_io_Output.writeFullBytesà&  s6   € Ø˜Š{Ø—‘  # gÓ.ˆAØ˜‘7ˆCØ ‘{ˆGð ˜�{r   Nc                 ój   — t         j                  ||«      }| j                  |d|j                  «       y rm   )rB
  rD
  r\
  r›  )r   r^  rH
  r~   s       r   r5	  zhaxe_io_Output.writeStringæ&  s*   € Ü×"Ñ" 1 XÓ.ˆØ×Ñ˜A˜a §¡Õ)r   r   )r(   r)   r*   r?   r@   rA   rB   rY
  rZ
  r[
  r\
  r5	  r+   r   r   rU
  rU
  È&  s2   „ Ø%€NØ€IØ�€JÚ_€Kòò	òò$ô*r   rU
  c                   ó6   — e Zd ZdZdZddgZddgZd„ Zd„ Zd	„ Z	y
)Úhaxe_iterators_ArrayIteratorzhaxe.iterators.ArrayIterator)r  Úcurrentr  re
  r¹   rº   c                 ó    — d| _         || _        y rm   ©re
  r  ©r   r  s     r   r   z%haxe_iterators_ArrayIterator.__init__ó&  ó   € ØˆŒØˆ�
r   c                 óF   — | j                   t        | j                  «      k  S r   ©re
  rª   r  r   s    r   r¹   z$haxe_iterators_ArrayIterator.hasNext÷&  ó   € Ø—‘œs 4§:¡:›Ñ.Ð/r   c                 ó   ‡ — ˆ fd„} |«       S )Nc                  óX   •— ˆfd„} t         j                  ‰j                   | «       «      S )Nc                  ó8   •— ‰} | j                   }|dz   | _         |S rS  ©re
  ©rn   r   r   s     €r   r³   zKhaxe_iterators_ArrayIterator.next.<locals>._hx_local_3.<locals>._hx_local_2ü&  ó%   ø€ Ø"�Ø)×1Ñ1�Ø'2°Q¡�Ô#Ø"Ð"r   )r¿   rÀ   r  rÕ  s    €r   rµ   z6haxe_iterators_ArrayIterator.next.<locals>._hx_local_3û&  s#   ø€ ô#ô
 -×1Ñ1°$·*±*¹k»mÓLÐLr   r+   ©r   rµ   s   ` r   rº   z!haxe_iterators_ArrayIterator.nextú&  s   ø€ ô	Mñ ‹}Ðr   N©
r(   r)   r*   r?   r@   rA   rB   r   r¹   rº   r+   r   r   rd
  rd
  í&  s/   „ Ø3€NØ$€IØ˜9Ð%€JØ˜fÐ%€Kòò0ór   rd
  c                   ó6   — e Zd ZdZdZddgZddgZd„ Zd„ Zd	„ Z	y
)Ú$haxe_iterators_ArrayKeyValueIteratorz$haxe.iterators.ArrayKeyValueIteratorrg
  re
  r  r¹   rº   c                 ó    — d| _         || _        y rm   rg
  rh
  s     r   r   z-haxe_iterators_ArrayKeyValueIterator.__init__'  ri
  r   c                 óF   — | j                   t        | j                  «      k  S r   rk
  r   s    r   r¹   z,haxe_iterators_ArrayKeyValueIterator.hasNext'  rl
  r   c                 ó   ‡ — ˆ fd„} |«       S )Nc                  ó„   •— ˆfd„} t        t        j                  ‰j                  ‰j                  «       | «       dœ«      S )Nc                  ó8   •— ‰} | j                   }|dz   | _         |S rS  rp
  rq
  s     €r   r³   zShaxe_iterators_ArrayKeyValueIterator.next.<locals>._hx_local_3.<locals>._hx_local_2'  rr
  r   )ræ   r·   )r	   r¿   rÀ   r  re
  rÕ  s    €r   rµ   z>haxe_iterators_ArrayKeyValueIterator.next.<locals>._hx_local_3'  s7   ø€ ô#ô
 "Ô,E×,JÑ,JÈ4Ï:É:ÐW[×WcÑWcÓ,dÑmxÓmzÑ"{Ó|Ð|r   r+   rs
  s   ` r   rº   z)haxe_iterators_ArrayKeyValueIterator.next'  s   ø€ ô	}ñ ‹}Ðr   Nrt
  r+   r   r   rv
  rv
  '  s/   „ Ø;€NØ$€IØ˜WÐ%€JØ˜fÐ%€Kòò0ór   rv
  c                   ó¬   — e Zd ZdZdZg d¢Zed„ «       Zed„ «       Zed„ «       Z	ed„ «       Z
ed„ «       Zed	„ «       Zed
„ «       Zed„ «       Zed„ «       Zy)rÊ  zpython.Bootr+   )r0
  rË  r   ÚsimpleFieldr~  r&   r7
  r  ÚgetClassFieldsÚprefixLengthÚunhandleKeywordsc                 óÌ  — | €yt        | t        «      r| S |€d}t        |«      dk\  ryt        | t        «      r| ryyt        | t        «      rt        | t        «      st        | «      S t        | t
        «      r;	 | t	        | «      k(  r!t        t        j                  | dz   «      «      S t        | «      S t        | t        «      r¤| }t        |«      }d}|€dn|d	z   }d
}|}||k  rx|}|dz   }d}|d
kD  rd}|€dn|t        j                  |€dn|t        j                  t        j                  |d
k\  r|t        |«      k  r||   nd |«      «      z   «      z   }||k  rŒx|€dn|dz   }|S 	 t        | d«      r| j                  «       S 	 t        | d«      �rÔt        | t         «      rùd }		 t        j#                  | «      }
g }d
}|t        |
«      k  r�|d
k\  r|t        |
«      k  r|
|   nd }|dz   }d|€dn|z   dz   t        j                  t        j                  t        j%                  | |«      |€dn|d	z   «      «      z   }|j'                  |«       |t        |
«      k  rŒ�|}dt        j                  dj)                  |D �cg c]  }|‘Œ c}«      «      z   dz   }	|	€y|	S t        | t*        «      rÓ| }t        |j,                  «      }|d
kD  }|r©d}d
}|}||k  rm|}|dz   }d}|d
kD  rd}|€dn|t        j                  |€dn|t        j                  t        j                  |j,                  |   |«      «      z   «      z   }||k  rŒmt        j                  |j.                  «      dz   |€dz   dz   S |z   dz   S |j.                  S t        | d«      �rC| j0                  j2                  dk7  �rt        j5                  | «      }
g }d
}|t        |
«      k  r�|d
k\  r|t        |
«      k  r|
|   nd }|dz   }d|€dn|z   dz   t        j                  t        j                  t        j%                  | |«      |€dn|d	z   «      «      z   }|j'                  |«       |t        |
«      k  rŒ�|}t        j                  | j6                  «      dz   t        j                  dj)                  |D �cg c]  }|‘Œ c}«      «      z   dz   }	|	S t        j9                  | «      }
g }d
}|t        |
«      k  r�|d
k\  r|t        |
«      k  r|
|   nd }|dz   }d|€dn|z   dz   t        j                  t        j                  t        j%                  | |«      |€dn|d	z   «      «      z   }|j'                  |«       |t        |
«      k  rŒ�|}dt        j                  | j6                  «      z   dz   t        j                  dj)                  |D �cg c]  }|‘Œ c}«      «      z   dz   }	|	S t;        | «      t:        k(  r
| t        k(  ryt;        | «      t:        k(  r
| t        k(  ryt=        | «      ry	 t        | d«      r| j?                  «       S 	 t        | d «      r| jA                  g «      S t        | d!«      r| j2                  S y"t        | «      S # t        $ r}	 t        | «      cY d }~S d }~ww xY w# t        $ r}Y d }~�Œd }~ww xY wc c}w # t        $ r}	 Y d }~yd }~ww xY wc c}w c c}w # t        $ r
}Y d }~Œ®d }~ww xY w)#Nr�   r�   rü  z<...>r>	  Úfalser  rÿ  rÎ  r   r{   rÈ  r 	  ra   r  r‹  r‡  r6   rˆ  z{ ... }r5   r=   r?   r¦  z( z )ú#z#Stringz#ArrayÚfunctionr   r2   r(   z???)!r  r9   rª   r  r  r  r  r  r(  r�   r“   r”   rÊ  rË  r
  ra   r	   r   r}
  r‚   r>   r-   r1   r/   r  r(   r7
  r?   r~
  r¦  r–	  r   r2   )rÊ   r^  rÈ   r°   r    rÉ  rÉ   rÀ  r¸  ÚtoStrr   re  r+  Ú	fieldsStrrÍ  Ú	hasParamsÚ	paramsStrs                    r   rË  zpython_Boot.toString1&'  s¦  € àˆIØÜ�aœÔØˆHØˆIØˆAÜ�‹F�aŠKØÜ�aœÔÙØàÜ�qœÔ¤z°!´DÔ'9Ü�q“6ˆMÜ�aœÔðØœ˜Q›’KÜœtŸz™z¨1¨s©7Ó4Ó5Ð5ä˜q›6�Mô �aœÔØˆBÜ�B“ˆAØˆBØ˜I‘&¨1°Ñ4ˆAØˆBØˆCØ˜’8Ø�Ø˜1‘f�Ø�Ø˜’EØ �FØ!# ‘v°´{×7OÑ7OÐ]cÐ]kÑSYÐqwô  |G÷  |Tñ  |Tô  U`÷  Ujñ  Ujð  uvð  z{ò  u{ð  @Aô  DGð  HJó  DKò  @Kð  lnð  opò  lqð  QUð  WXó  UYó  |Zñ  SZó  8]ñ  ]�ð ˜“8ð  ˜Z‘6¨R°3Ñ6ˆBØˆIð	Ü�q˜Ô$Ø—z‘z“|Ð#ð %ô �1�[Õ!Ü˜!œNÔ+Ø�ð%Ü(×/Ñ/°Ó2�FØ�BØ�CØ¤ V£Ò,Ø,/°1ªH¸¼sÀ6»{Ò9J˜V Cš[ÐPT˜Ø" Q™w˜Ø!¨q¨y¡V¸aÑ@ÀEÑIÌ[×MeÑMeÔfq×f{Ñf{ô  }H÷  }Tñ  }Tð  UVð  WXó  }Yð  fgð  foñ  \bð  uvð  z~ñ  [~ó  g@ó  NAñ  A˜ØŸ	™	 !œð	 ¤ V£Ó,ð
 !#�IØ"¤[×%=Ñ%=¸d¿i¹iÐV_ÖH`ÐPRÊÒH`Ó>aÓ%bÑbÐfjÑj�Eð �MØ$à �LÜ˜!œDÔ!Ø�Ü˜Ÿ	™	“N�Ø ™U�	ÙØ "�IØ�BØ�CØ š8Ø˜Ø  1™f˜Ø!#˜Ø šEØ%(˜FØ09Ð0A¡fÀyÔT_×TlÑTlð  {Að  {IÑpvð  OUô  Yd÷  Yqñ  Yqô  r}÷  rGñ  rGð  HJ÷  HQñ  HQð  RSñ  HTð  UVó  rWó  YXñ  pXó  U[ñ  &[˜	ð  ›8ô *×6Ñ6°r·v±vÓ>ÀÑDÐS\ÐSdÈÑtÐx{Ñ{Ð|ÐjsÑtÐx{Ñ{Ð|àŸ6™6�MÜ�qÐ)Õ*Ø—K‘K×(Ñ(¨FÓ2Ü(×:Ñ:¸1Ó=�FØ�BØ�CØ¤ V£Ò,Ø,/°1ªH¸¼sÀ6»{Ò9J˜V Cš[ÐPT˜Ø" Q™w˜Ø!¨q¨y¡V¸aÑ@ÀEÑIÌ[×MeÑMeÔfq×f{Ñf{ô  }H÷  }Tñ  }Tð  UVð  WXó  }Yð  fgð  foñ  \bð  uvð  z~ñ  [~ó  g@ó  NAñ  A˜ØŸ	™	 !œð	 ¤ V£Ó,ð
 !#�IÜ*×7Ñ7¸×8HÑ8HÓIÈDÑPÔT_×TlÑTlÐmq×mvÑmvð  FOö  xPð  @BÒxzò  xPó  nQó  URñ  Rð  VZñ  Z�EØ �Lä(×7Ñ7¸Ó:�FØ�BØ�CØ¤ V£Ò,Ø,/°1ªH¸¼sÀ6»{Ò9J˜V Cš[ÐPT˜Ø" Q™w˜Ø!¨q¨y¡V¸aÑ@ÀEÑIÌ[×MeÑMeÔfq×f{Ñf{ô  }H÷  }Tñ  }Tð  UVð  WXó  }Yð  fgð  foñ  \bð  uvð  z~ñ  [~ó  g@ó  NAñ  A˜ØŸ	™	 !œð	 ¤ V£Ó,ð
 !#�IØ #¤k×&>Ñ&>¸q×?OÑ?OÓ&PÑ PÐTXÑXÔ\g×\tÑ\tÐuy×u~Ñu~ð  NWö  @Xð  HJò  ACò  @Xó  vYó  ]Zñ  Zð  ^bñ  b�EØ �LÜ�a“œD’ q¬C¢xØ Ü�a“œD’ q¬D¢yØÜ˜Œ{Ø!ðÜ˜1˜ZÔ(ØŸ:™:›<Ð'ð )ô �q˜Ô#Ø—y‘y “}Ð$Ü�q˜Ô$Ø—z‘zÐ!Øä�q“6ˆMøôS !ò ØÜ˜1“v•ûðûô, ò 	Ýûð	üò IaøÜ$ò %ØÜ$ûð%üòH xPùò @Xøô !ò Üûðús…   Á9.Y1 Â(
Y1 Å(Z Æ%B6Z/ É!Z/ É=	Z*ÊZ/ Ò	[Ö3	[Ø[ Ù1	ZÙ:ZÚZÚZÚ	Z'Ú"Z'Ú*Z/ Ú/	[Ú8Z>Ú>[Û	[#Û[#c                 óœ  — g }| �Çt        | d«      r| j                  }|�t        |«      S t        | t        «      rR| j
                  }|j                  «       }t        j                  }|D ]  }|dk7  sŒ	|j                   ||«      «       Œ! |S t        | d«      r4| j
                  }|j                  «       }|D ]  }|j                  |«       Œ |S )NrA   r   r   )
r
  rA   r�   r  r	   r   r¸   rÊ  r€
  r‚   )rÊ   r}   r   rþ  r¸   ÚhandlerrÃ   Úkeys1s           r   r   zpython_Boot.fields¨'  sÆ   € àˆØˆMÜ�q˜Ô&ØŸ™�ØÐ&Ü ›<Ð'Ü˜!œNÔ+Ø—J‘J�Ø—v‘v“x�Ü%×6Ñ6�Øò -�AØÐ2Ó2ØŸ™¡¨£Õ,ð-ð ˆô ˜˜:Ô&Ø—J‘J�ØŸ™›�Øò  �AØ—H‘H˜Q•Kð àˆr   c                 ó  — |€y |t         j                  v rd|z   nSt        |«      dkD  rDt        |d   «      dk(  r3t        |d   «      dk(  r"t        |t        |«      dz
     «      dk7  rd|z   n|}t	        | |«      rt        | |«      S y ©Nr.
  rÒ  r   r  r{   )rÊ  r0
  rª   rU  r
  r%   )rÊ   r&   Úfield1s      r   r}
  zpython_Boot.simpleField¾'  s  € àˆMØØ(-´×1EÑ1EÑ(E�6˜E’>ÔgjÐkpÓgqÐtuÒguô  ~Að  BGð  HIñ  BJó  ~Kð  OQò  ~Qô  [^ð  _dð  efñ  _gó  [hð  lnò  [nô  x{ð  |Aô  CFð  GLó  CMð  PQñ  CQñ  |Só  xTð  XZò  xZÈvÐX]Ê~ð  diˆÜ�1�VÔÜ˜1˜VÓ$Ð$àr   c           	      ó>  — t        | t        «      r| j                  |«      S t        | |t        j
                  v r	d|z   «      S t        |«      dkD  rHt        |d   «      dk(  r7t        |d   «      dk(  r&t        |t        |«      dz
     «      dk7  r	d|z   «      S |«      S r�
  )r  r	   r'   r
  rÊ  r0
  rª   rU  rx  s     r   r~  zpython_Boot.hasFieldÈ'  s%  € ä�aœÔ'Ø—=‘= Ó'Ð'Ü�q°¼×9MÑ9MÑ0M˜6 E™>ó  tð  	tÔorÐsxÓoyÐ|}Òo}ô  FIð  JOð  PQñ  JRó  FSð  WYò  FYô  cfð  glð  mnñ  goó  cpð  tvò  cvô  @Cð  DIô  KNð  OTó  KUð  XYñ  KYñ  D[ó  @\ð  `bò  @bÐW]Ð`eÑWeó  tð  	tð  lqó  tð  	tr   c                 ó�  — |€y t        | t        «      �rž|}t        |«      }|dk(  r¤|dk(  rt        | t        j
                  «      S |t        j                  v rd|z   nSt        |«      dkD  rDt        |d   «      dk(  r3t        |d   «      dk(  r"t        |t        |«      dz
     «      dk7  rd|z   n|}t        | |«      rt        | |«      S d S |dk(  râ|d	k(  rt        | t        j                  «      S |d
k(  rt        | t        j                  «      S |dk(  rt        | t        j                  «      S |t        j                  v rd|z   nSt        |«      dkD  rDt        |d   «      dk(  r3t        |d   «      dk(  r"t        |t        |«      dz
     «      dk7  rd|z   n|}t        | |«      rt        | |«      S d S |dk(  r¤|dk(  rt        | t        j                  «      S |t        j                  v rd|z   nSt        |«      dkD  rDt        |d   «      dk(  r3t        |d   «      dk(  r"t        |t        |«      dz
     «      dk7  rd|z   n|}t        | |«      rt        | |«      S d S |dk(  r¤|dk(  rt        | t        j                  «      S |t        j                  v rd|z   nSt        |«      dkD  rDt        |d   «      dk(  r3t        |d   «      dk(  r"t        |t        |«      dz
     «      dk7  rd|z   n|}t        | |«      rt        | |«      S d S |dk(  r¤|dk(  rt        | t        j                   «      S |t        j                  v rd|z   nSt        |«      dkD  rDt        |d   «      dk(  r3t        |d   «      dk(  r"t        |t        |«      dz
     «      dk7  rd|z   n|}t        | |«      rt        | |«      S d S |dk(  r¤|dk(  rt        | t        j"                  «      S |t        j                  v rd|z   nSt        |«      dkD  rDt        |d   «      dk(  r3t        |d   «      dk(  r"t        |t        |«      dz
     «      dk7  rd|z   n|}t        | |«      rt        | |«      S d S |dk(  rÓ|dk(  rt        | t        j$                  «      S |dk(  rt        | «      S |dk(  rt        | t        j&                  «      S |t        j                  v rd|z   nSt        |«      dkD  rDt        |d   «      dk(  r3t        |d   «      dk(  r"t        |t        |«      dz
     «      dk7  rd|z   n|}t        | |«      rt        | |«      S d S |t        j                  v rd|z   nSt        |«      dkD  rDt        |d   «      dk(  r3t        |d   «      dk(  r"t        |t        |«      dz
     «      dk7  rd|z   n|}t        | |«      rt        | |«      S d S t        | t(        «      �r|}t        |«      }|dk(  r¤|d	k(  rt        | t*        j                  «      S |t        j                  v rd|z   nSt        |«      dkD  rDt        |d   «      dk(  r3t        |d   «      dk(  r"t        |t        |«      dz
     «      dk7  rd|z   n|}t        | |«      rt        | |«      S d S |dk(  �r|dk(  rt        | t*        j,                  «      S |dk(  rt        | t*        j.                  «      S |dk(  rt        | t*        j0                  «      S |dk(  rt        | t*        j2                  «      S |t        j                  v rd|z   nSt        |«      dkD  rDt        |d   «      dk(  r3t        |d   «      dk(  r"t        |t        |«      dz
     «      dk7  rd|z   n|}t        | |«      rt        | |«      S d S |dk(  rÃ|dk(  rt        | t*        j4                  «      S |dk(  rt        | t*        j6                  «      S |t        j                  v rd|z   nSt        |«      dkD  rDt        |d   «      dk(  r3t        |d   «      dk(  r"t        |t        |«      dz
     «      dk7  rd|z   n|}t        | |«      rt        | |«      S d S |dk(  râ|dk(  rt        | t*        j                   «      S |dk(  rt        | t*        j8                  «      S |d k(  rt        | t*        j:                  «      S |t        j                  v rd|z   nSt        |«      dkD  rDt        |d   «      dk(  r3t        |d   «      dk(  r"t        |t        |«      dz
     «      dk7  rd|z   n|}t        | |«      rt        | |«      S d S |d!k(  rÃ|d"k(  rt        | t*        j<                  «      S |d#k(  rt        | t*        j>                  «      S |t        j                  v rd|z   nSt        |«      dkD  rDt        |d   «      dk(  r3t        |d   «      dk(  r"t        |t        |«      dz
     «      dk7  rd|z   n|}t        | |«      rt        | |«      S d S |dk(  râ|d$k(  rt        | t*        j@                  «      S |d%k(  rt        | t*        jB                  «      S |dk(  rt        | t*        j"                  «      S |t        j                  v rd|z   nSt        |«      dkD  rDt        |d   «      dk(  r3t        |d   «      dk(  r"t        |t        |«      dz
     «      dk7  rd|z   n|}t        | |«      rt        | |«      S d S |d&k(  r¤|d'k(  rt        | t*        jD                  «      S |t        j                  v rd|z   nSt        |«      dkD  rDt        |d   «      dk(  r3t        |d   «      dk(  r"t        |t        |«      dz
     «      dk7  rd|z   n|}t        | |«      rt        | |«      S d S |dk(  �r0|d(k(  rt        | t*        jF                  «      S |d)k(  rt        | t*        jH                  «      S |d*k(  rt        | t*        jJ                  «      S |dk(  rt        | «      S |d+k(  rt        | t*        jL                  «      S |d,k(  rt        | t*        jN                  «      S |t        j                  v rd|z   nSt        |«      dkD  rDt        |d   «      dk(  r3t        |d   «      dk(  r"t        |t        |«      dz
     «      dk7  rd|z   n|}t        | |«      rt        | |«      S d S |t        j                  v rd|z   nSt        |«      dkD  rDt        |d   «      dk(  r3t        |d   «      dk(  r"t        |t        |«      dz
     «      dk7  rd|z   n|}t        | |«      rt        | |«      S d S |t        j                  v rd|z   nSt        |«      dkD  rDt        |d   «      dk(  r3t        |d   «      dk(  r"t        |t        |«      dz
     «      dk7  rd|z   n|}t        | |«      rt        | |«      S d S )-Nr  r  r.
  rÒ  r   r  r{   é   ÚlastIndexOfÚtoLowerCaseÚtoUpperCaser[  r)  rü  rÓ  rÐ  ÚindexOfr\  ra   rÓ  ÚcharAtr›  rw  rÃ  rÀ  r>   Úpushr¼   ÚshiftÚslicerâ	  ÚunshiftrÆ  rÙ  r^  Úcontainsrn  r(  ÚkeyValueIteratorÚconcatr¡  r±  r  Úsplice)(r  r9   rª   Úpython_internal_MethodClosurerv  r  rÊ  r0
  rU  r
  r%   r’
  r“
  r”
  r)  rÓ  r•
  ra   r–
  rw  r�   r¿   rÀ  r>   r—
  r¼   r˜
  r™
  râ	  rš
  rÙ  r^  r›
  rn  rœ
  r�
  r¡  r±  r  rž
  )rÊ   r&   rŽ
  rn   r   s        r   r&   zpython_Boot.fieldÎ'  s�  € àˆMØÜ�aœÕØˆFÜ˜f›+ˆKØ˜rÒ!Ø˜lÒ*Ü8¸¼8×;NÑ;NÓOÐOà49¼[×=QÑ=QÑ4Q˜v¨š~ÔsvÐw|Ós}ð  ABò  tBô  JMð  NSð  TUñ  NVó  JWð  []ò  J]ô  gjð  kpð  qrñ  ksó  gtð  xzò  gzô  DGð  HMô  ORð  SXó  OYð  \]ñ  O]ñ  H_ó  D`ð  dfò  DfÐ[aÐdiÒ[ið  pu�FÜ29¸!¸FÔ2CœG A fÓ-ÐOÈ$ÐOØ Ò#Ø˜mÒ+Ü8¸¼8×;OÑ;OÓPÐPØ Ò-Ü8¸¼8×;OÑ;OÓPÐPØ Ò-Ü8¸¼8×;OÑ;OÓPÐPà49¼[×=QÑ=QÑ4Q˜v¨š~ÔsvÐw|Ós}ð  ABò  tBô  JMð  NSð  TUñ  NVó  JWð  []ò  J]ô  gjð  kpð  qrñ  ksó  gtð  xzò  gzô  DGð  HMô  ORð  SXó  OYð  \]ñ  O]ñ  H_ó  D`ð  dfò  DfÐ[aÐdiÒ[ið  pu�FÜ29¸!¸FÔ2CœG A fÓ-ÐOÈ$ÐOØ Ò"Ø˜kÒ)Ü8¸¼8×;MÑ;MÓNÐNà49¼[×=QÑ=QÑ4Q˜v¨š~ÔsvÐw|Ós}ð  ABò  tBô  JMð  NSð  TUñ  NVó  JWð  []ò  J]ô  gjð  kpð  qrñ  ksó  gtð  xzò  gzô  DGð  HMô  ORð  SXó  OYð  \]ñ  O]ñ  H_ó  D`ð  dfò  DfÐ[aÐdiÒ[ið  pu�FÜ29¸!¸FÔ2CœG A fÓ-ÐOÈ$ÐOØ Ò"Ø˜gÒ%Ü8¸¼8¿>¹>ÓJÐJà49¼[×=QÑ=QÑ4Q˜v¨š~ÔsvÐw|Ós}ð  ABò  tBô  JMð  NSð  TUñ  NVó  JWð  []ò  J]ô  gjð  kpð  qrñ  ksó  gtð  xzò  gzô  DGð  HMô  ORð  SXó  OYð  \]ñ  O]ñ  H_ó  D`ð  dfò  DfÐ[aÐdiÒ[ið  pu�FÜ29¸!¸FÔ2CœG A fÓ-ÐOÈ$ÐOØ Ò"Ø˜iÒ'Ü8¸¼8×;KÑ;KÓLÐLà49¼[×=QÑ=QÑ4Q˜v¨š~ÔsvÐw|Ós}ð  ABò  tBô  JMð  NSð  TUñ  NVó  JWð  []ò  J]ô  gjð  kpð  qrñ  ksó  gtð  xzò  gzô  DGð  HMô  ORð  SXó  OYð  \]ñ  O]ñ  H_ó  D`ð  dfò  DfÐ[aÐdiÒ[ið  pu�FÜ29¸!¸FÔ2CœG A fÓ-ÐOÈ$ÐOØ Ò"Ø˜jÒ(Ü8¸¼8×;LÑ;LÓMÐMà49¼[×=QÑ=QÑ4Q˜v¨š~ÔsvÐw|Ós}ð  ABò  tBô  JMð  NSð  TUñ  NVó  JWð  []ò  J]ô  gjð  kpð  qrñ  ksó  gtð  xzò  gzô  DGð  HMô  ORð  SXó  OYð  \]ñ  O]ñ  H_ó  D`ð  dfò  DfÐ[aÐdiÒ[ið  pu�FÜ29¸!¸FÔ2CœG A fÓ-ÐOÈ$ÐOØ Ò"Ø˜hÒ&Ü8¸¼8¿?¹?ÓKÐKØ Ò(Ü˜q›6�MØ Ò(Ü8¸¼8¿?¹?ÓKÐKà49¼[×=QÑ=QÑ4Q˜v¨š~ÔsvÐw|Ós}ð  ABò  tBô  JMð  NSð  TUñ  NVó  JWð  []ò  J]ô  gjð  kpð  qrñ  ksó  gtð  xzò  gzô  DGð  HMô  ORð  SXó  OYð  \]ñ  O]ñ  H_ó  D`ð  dfò  DfÐ[aÐdiÒ[ið  pu�FÜ29¸!¸FÔ2CœG A fÓ-ÐOÈ$ÐOà05¼×9MÑ9MÑ0M˜6 Eš>ÔorÐsxÓoyÐ|}Òo}ô  FIð  JOð  PQñ  JRó  FSð  WYò  FYô  cfð  glð  mnñ  goó  cpð  tvò  cvô  @Cð  DIô  KNð  OTó  KUð  XYñ  KYñ  D[ó  @\ð  `bò  @bÐW]Ð`eÒWeð  lq�Ü.5°a¸Ô.?œ  &Ó)ÐKÀdÐKÜ˜œ$ÕØˆFÜ˜f›+ˆKØ˜rÒ!Ø˜mÒ+Ü8¸Ô;T×;`Ñ;`ÓaÐaà49¼[×=QÑ=QÑ4Q˜v¨š~ÔsvÐw|Ós}ð  ABò  tBô  JMð  NSð  TUñ  NVó  JWð  []ò  J]ô  gjð  kpð  qrñ  ksó  gtð  xzò  gzô  DGð  HMô  ORð  SXó  OYð  \]ñ  O]ñ  H_ó  D`ð  dfò  DfÐ[aÐdiÒ[ið  pu�FÜ29¸!¸FÔ2CœG A fÓ-ÐOÈ$ÐOØ Ó"Ø˜fÒ$Ü8¸Ô;T×;YÑ;YÓZÐZØ Ò&Ü8¸Ô;T×;YÑ;YÓZÐZØ Ò&Ü8¸Ô;T×;YÑ;YÓZÐZØ Ò&Ü8¸Ô;T×;YÑ;YÓZÐZà49¼[×=QÑ=QÑ4Q˜v¨š~ÔsvÐw|Ós}ð  ABò  tBô  JMð  NSð  TUñ  NVó  JWð  []ò  J]ô  gjð  kpð  qrñ  ksó  gtð  xzò  gzô  DGð  HMô  ORð  SXó  OYð  \]ñ  O]ñ  H_ó  D`ð  dfò  DfÐ[aÐdiÒ[ið  pu�FÜ29¸!¸FÔ2CœG A fÓ-ÐOÈ$ÐOØ Ò"Ø˜gÒ%Ü8¸Ô;T×;ZÑ;ZÓ[Ð[Ø Ò'Ü8¸Ô;T×;ZÑ;ZÓ[Ð[à49¼[×=QÑ=QÑ4Q˜v¨š~ÔsvÐw|Ós}ð  ABò  tBô  JMð  NSð  TUñ  NVó  JWð  []ò  J]ô  gjð  kpð  qrñ  ksó  gtð  xzò  gzô  DGð  HMô  ORð  SXó  OYð  \]ñ  O]ñ  H_ó  D`ð  dfò  DfÐ[aÐdiÒ[ið  pu�FÜ29¸!¸FÔ2CœG A fÓ-ÐOÈ$ÐOØ Ò"Ø˜iÒ'Ü8¸Ô;T×;\Ñ;\Ó]Ð]Ø 	Ò)Ü8¸Ô;T×;\Ñ;\Ó]Ð]Ø 	Ò)Ü8¸Ô;T×;\Ñ;\Ó]Ð]à49¼[×=QÑ=QÑ4Q˜v¨š~ÔsvÐw|Ós}ð  ABò  tBô  JMð  NSð  TUñ  NVó  JWð  []ò  J]ô  gjð  kpð  qrñ  ksó  gtð  xzò  gzô  DGð  HMô  ORð  SXó  OYð  \]ñ  O]ñ  H_ó  D`ð  dfò  DfÐ[aÐdiÒ[ið  pu�FÜ29¸!¸FÔ2CœG A fÓ-ÐOÈ$ÐOØ Ò"Ø˜e’OÜ8¸Ô;T×;XÑ;XÓYÐYØ ’oÜ8¸Ô;T×;XÑ;XÓYÐYà49¼[×=QÑ=QÑ4Q˜v¨š~ÔsvÐw|Ós}ð  ABò  tBô  JMð  NSð  TUñ  NVó  JWð  []ò  J]ô  gjð  kpð  qrñ  ksó  gtð  xzò  gzô  DGð  HMô  ORð  SXó  OYð  \]ñ  O]ñ  H_ó  D`ð  dfò  DfÐ[aÐdiÒ[ið  pu�FÜ29¸!¸FÔ2CœG A fÓ-ÐOÈ$ÐOØ Ò"Ø˜jÒ(Ü8¸Ô;T×;]Ñ;]Ó^Ð^Ø 
Ò*Ü8¸Ô;T×;]Ñ;]Ó^Ð^Ø 
Ò*Ü8¸Ô;T×;]Ñ;]Ó^Ð^à49¼[×=QÑ=QÑ4Q˜v¨š~ÔsvÐw|Ós}ð  ABò  tBô  JMð  NSð  TUñ  NVó  JWð  []ò  J]ô  gjð  kpð  qrñ  ksó  gtð  xzò  gzô  DGð  HMô  ORð  SXó  OYð  \]ñ  O]ñ  H_ó  D`ð  dfò  DfÐ[aÐdiÒ[ið  pu�FÜ29¸!¸FÔ2CœG A fÓ-ÐOÈ$ÐOØ Ò#ØÐ0Ò0Ü8¸Ô;T×;eÑ;eÓfÐfà49¼[×=QÑ=QÑ4Q˜v¨š~ÔsvÐw|Ós}ð  ABò  tBô  JMð  NSð  TUñ  NVó  JWð  []ò  J]ô  gjð  kpð  qrñ  ksó  gtð  xzò  gzô  DGð  HMô  ORð  SXó  OYð  \]ñ  O]ñ  H_ó  D`ð  dfò  DfÐ[aÐdiÒ[ið  pu�FÜ29¸!¸FÔ2CœG A fÓ-ÐOÈ$ÐOØ Ó"Ø˜hÒ&Ü8¸Ô;T×;[Ñ;[Ó\Ð\Ø Ò(Ü8¸Ô;T×;[Ñ;[Ó\Ð\Ø Ò(Ü8¸Ô;T×;[Ñ;[Ó\Ð\Ø Ò(Ü˜q›6�MØ Ò(Ü8¸Ô;T×;[Ñ;[Ó\Ð\Ø Ò(Ü8¸Ô;T×;[Ñ;[Ó\Ð\à49¼[×=QÑ=QÑ4Q˜v¨š~ÔsvÐw|Ós}ð  ABò  tBô  JMð  NSð  TUñ  NVó  JWð  []ò  J]ô  gjð  kpð  qrñ  ksó  gtð  xzò  gzô  DGð  HMô  ORð  SXó  OYð  \]ñ  O]ñ  H_ó  D`ð  dfò  DfÐ[aÐdiÒ[ið  pu�FÜ29¸!¸FÔ2CœG A fÓ-ÐOÈ$ÐOà05¼×9MÑ9MÑ0M˜6 Eš>ÔorÐsxÓoyÐ|}Òo}ô  FIð  JOð  PQñ  JRó  FSð  WYò  FYô  cfð  glð  mnñ  goó  cpð  tvò  cvô  @Cð  DIô  KNð  OTó  KUð  XYñ  KYñ  D[ó  @\ð  `bò  @bÐW]Ð`eÒWeð  lq�Ü.5°a¸Ô.?œ  &Ó)ÐKÀdÐKà,1´[×5IÑ5IÑ,I�v ’~ÔknÐotÓkuÐxyÒkyô  BEð  FKð  LMñ  FNó  BOð  SUò  BUô  _bð  chð  ijñ  ckó  _lð  prò  _rô  |ð  @Eô  GJð  KPó  GQð  TUñ  GUñ  @Wó  |Xð  \^ò  |^ÐSYÐ\aÒSað  hmˆFÜ*1°!°FÔ*;”G˜A˜fÓ%ÐGÀ$ÐGr   c                 óš  — t        | d«      rt        | j                  «      ng }t        | d«      r|| j                  z   }t        j                  | «      }|€|S t        j                  |«      }t        |«      }d}|t        |«      k  rC|dk\  r|t        |«      k  r||   nd }|dz   }||vr|j                  |«       |t        |«      k  rŒC|S )NrA   rB   r   r{   )
r
  r�   rA   rB   rÊ  r  r7
  r|   rª   r‚   )r.  re  rú  ÚscArrÚscMaprÈ   Úf1s          r   r7
  zpython_Boot.getInstanceFields`(  sÁ   € ä$+¨A¨lÔ$;ŒT�!—,‘,ÔÀ"ˆÜ�1�]Ô#Ø�Q—]‘]Ñ"ˆAÜ×&Ñ& qÓ)ˆØˆJØˆHä×1Ñ1°"Ó5ˆEÜ˜“JˆEØˆBØœ˜A›’;Ø! Qšw¨2´°A³ª;�a˜’e¸D�Ø˜1‘f�Ø˜u™Ø—L‘L Ô$ð	 œ˜A›“;ð
 ˆLr   c                 óh   — | €y 	 t        | d«      r| j                  S y # t        $ r
}Y d }~y d }~ww xY w)Nrò	  )r
  rò	  r(  )r.  rÈ   s     r   r  zpython_Boot.getSuperClasss(  s<   € àˆIØð	Ü�q˜Ô%Ø—{‘{Ð"ØøÜò 	ÛØûð	ús   … ž	1¬1c                 óL   — t        | d«      r| j                  }t        |«      S g S )Nrâ  )r
  râ  r�   )r.  r+  s     r   r~
  zpython_Boot.getClassFields(  s#   € ä�1�]Ô#Ø—‘ˆAÜ˜“7ˆNàˆIr   c                 óÈ   — t         j                  | dt        j                  «      dk(  r9t         j                  | t        j                  d «      }|t        j                  v r|S | S )Nr   r.
  )rv  rw  rÊ  r
  r0
  )r!   Úreals     r   r€
  zpython_Boot.unhandleKeywords‡(  sM   € ä�O‰O˜D ¤;×#;Ñ#;Ó<ÀÒFÜ—?‘? 4¬×(@Ñ(@ÀÓFˆDØœ×,Ñ,Ñ,Ø�Øˆr   N)r(   r)   r*   r?   r@   râ  rã  rË  r   r}
  r~  r&   r7
  r  r~
  r€
  r+   r   r   rÊ  rÊ  !'  sÐ   „ Ø"€NØ€Iò v€Kàñó ððB ñó ðð* ñó ðð ñtó ðtð
 ñOHó ðOHðb ñó ðð$ ñ	ó ð	ð ñó ðð ñó ñr   rÊ  c                   ó6   — e Zd ZdZdZg d¢ZddgZd„ Zd„ Zd„ Z	y)	r

  zpython.HaxeIterator)r  r+  re  Úcheckedrº   r¹   c                 ó<   — d| _         d| _        d | _        || _        y r|  )r©
  re  r+  r  )r   r  s     r   r   zpython_HaxeIterator.__init__—(  s   € ØˆŒØˆŒØˆŒØˆ�r   c                 ó`   — | j                   s| j                  «        d| _         | j                  S r|  )r©
  r¹   r+  r   s    r   rº   zpython_HaxeIterator.next�(  s"   € Ø—’Ø�L‰LŒNØˆŒØ�v‰vˆr   c                 óT  — | j                   s.	 | j                  j                  «       | _        d| _        d| _         | j                  S # t
        $ rW}	 t        j                  t        j                  |«      j                  «       t        «      rd| _        d | _        n|‚Y d }~Œnd }~ww xY wr$   )r©
  r  Ú__next__r+  re  r(  r•   rî  r&  r)  r*  ÚStopIteration)r   rÈ   s     r   r¹   zpython_HaxeIterator.hasNext£(  sŠ   € Ø—’ð	ØŸ™×)Ñ)Ó+�”Ø�”ð  ˆDŒLØ�x‰xˆøô !ò ØÜ—<‘<¤× 5Ñ 5°bÓ 9× @Ñ @Ó BÄ=ÔQØ$�D”HØ!�D•Fà�Hô ûð	ús   Ž&A Á	B'ÁAB"Â"B'N)
r(   r)   r*   r?   r@   rA   rB   r   rº   r¹   r+   r   r   r

  r

  ‘(  s*   „ Ø*€NØ-€IÚ.€JØ˜9Ð%€Kòòór   r

  c                   ó*   — e Zd ZdZdZdgZed„ «       Zy)r"  zpython._KwArgs.KwArgs_Impl_r+   r#  c                 ó,   — t         j                  | «      S r   )r$  Ú
anonAsDict)rþ  s    r   r#  z!python__KwArgs_KwArgs_Impl_.fromTº(  s   € ä×$Ñ$ QÓ'Ð'r   N)r(   r)   r*   r?   r@   râ  rã  r#  r+   r   r   r"  r"  µ(  s%   „ Ø2€NØ€IØ�)€Kàñ(ó ñ(r   r"  c                   óL   — e Zd ZdZdZg d¢Zed„ «       Zed„ «       Zed„ «       Z	y)r$  z
python.Libr+   )r%  Ú
anonToDictr±
  c                 ó4   — t        | j                  «       «      S r   )r	   rÀ  r—	  s    r   r%  zpython_Lib.dictToAnonÅ(  s   € ä˜aŸf™f›hÓ'Ð'r   c                 óX   — t        | t        «      r| j                  j                  «       S y r   )r  r	   r   rÀ  ©rÊ   s    r   r³
  zpython_Lib.anonToDictÉ(  s    € ä�aœÔ'Ø—:‘:—?‘?Ó$Ð$àr   c                 ó<   — t        | t        «      r| j                  S y r   )r  r	   r   r¶
  s    r   r±
  zpython_Lib.anonAsDictÐ(  s   € ä�aœÔ'Ø—:‘:Ðàr   N)
r(   r)   r*   r?   r@   râ  rã  r%  r³
  r±
  r+   r   r   r$  r$  À(  sK   „ Ø!€NØ€IÚ<€Kàñ(ó ð(ð ñó ðð ñó ñr   r$  c                   ó’  — e Zd ZdZdZg d¢Zed„ «       Zed„ «       Zed„ «       Z	ed„ «       Z
edd	„«       Zedd
„«       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zedd„«       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zy)r¿   zpython.internal.ArrayImplr+   )r�
  rÀ  rn  rœ
  r•
  r’
  r>   ra   r^  r—
  rš
  r  r›
  r˜
  r™
  r¼   rž
  rÙ  r¡  r±  râ	  rÀ   rƒ  c                 ó   — | |z   S r   r+   )r)  r*  s     r   r�
  z python_internal_ArrayImpl.concatÞ(  s   € à�R‘Ðr   c                 ó   — t        | «      S r   )r�   rÒ  s    r   rÀ  zpython_internal_ArrayImpl.copyâ(  s   € ä�A‹wˆr   c                 ó4   — t        | j                  «       «      S r   )r

  Ú__iter__rÒ  s    r   rn  z"python_internal_ArrayImpl.iteratoræ(  s   € ä" 1§:¡:£<Ó0Ð0r   c                 ó   — t        | «      S r   )rv
  rÒ  s    r   rœ
  z*python_internal_ArrayImpl.keyValueIteratorê(  s   € ä3°AÓ6Ð6r   Nc                 óª   — t        | «      }|€dn|dk  r||z   n|}|dk  rd}|}|}||k  r(|}|dz   }t        j                  | |   |«      r|S ||k  rŒ(yr®   ©rª   r“   rk  )r}   r+  Ú	fromIndexr¬  r    rÈ   rÉ   rÀ  s           r   r•
  z!python_internal_ArrayImpl.indexOfî(  sv   € ä�a“&ˆØÐ%‰QÈÐUVÊ¨w¸Ò/BÐ^gˆØ�ŠEØˆAØˆØˆØ�CŠxØˆAØ�q‘&ˆBÜ�~‰~˜a ™d 1Ô%Ø�ð	 �C‹xð
 r   c                 ó¨   — t        | «      }|€|n|dk  r||z   dz   n|dz   }||kD  r|}	 |dz
  }|}|dkD  s	 yt        j                  | |   |«      r|S Œ*r®   r¿
  )r}   r+  rÀ
  r¬  r    r  s         r   r’
  z%python_internal_ArrayImpl.lastIndexOfý(  s}   € ä�a“&ˆØ#Ð+‰WÐU^ÐabÒUb°gÀ	Ñ6IÈQÒ5NÐktÐwxÑkxˆØ�ŠKØˆAØØ�Q‘ˆAØˆCØ˜B’hØð ô �~‰~˜a ™d 1Ô%Ø�ð r   c           	      ór   — |j                  | D �cg c]  }t        j                  |d«      ‘Œ c}«      S c c}w rY  rê  )r+  r˜  rÍ  s      r   r>   zpython_internal_ArrayImpl.join)  s,   € à�x‰xÀÖB¸"œ×.Ñ.¨r°"Õ5ÒBÓCÐCùÒBrë  c                 ó¤   — dt         j                  dj                  | D �cg c]  }t        j	                  |d«      ‘Œ c}«      «      z   dz   S c c}w )Nrÿ  rÈ  r�   r 	  )r“   r”   r>   rÊ  rË  )r+  rÍ  s     r   ra   z"python_internal_ArrayImpl.toString)  sF   € à”{×/Ñ/°·±ÐabÖ9cÐ[]¼+×:OÑ:OÐPRÐSUÕ:VÒ9cÓ0dÓeÑeÐilÑlÐmùÒ9cs    Ac                 ó@   — t        | «      dk(  ry | j                  «       S rm   ©rª   r^  rÒ  s    r   r^  zpython_internal_ArrayImpl.pop)  s   € ä�‹F�aŠKØà—5‘5“7ˆNr   c                 ó:   — | j                  |«       t        | «      S r   )r‚   rª   ©r+  r.  s     r   r—
  zpython_internal_ArrayImpl.push)  s   € à	�‰�ŒÜ�1‹vˆr   c                 ó(   — | j                  d|«       y rm   rV  rÇ
  s     r   rš
  z!python_internal_ArrayImpl.unshift )  s   € à	�‰��A�r   c                 óV   — 	 | j                  |«       y# t        $ r}	 Y d }~yd }~ww xY wr$   )r  r(  )r+  r.  rÈ   s      r   r  z python_internal_ArrayImpl.remove$)  s+   € ð	Ø�H‰H�QŒKØøÜò 	ØÜûð	ús   ‚ ”	(�#£(c                 ó
   — || v S r   r+   rÇ
  s     r   r›
  z"python_internal_ArrayImpl.contains-)  s   € à�Q�ˆr   c                 óB   — t        | «      dk(  ry | j                  d«      S rm   rÅ
  rÒ  s    r   r˜
  zpython_internal_ArrayImpl.shift1)  s   € ä�‹F�aŠKØØ�u‰u�Q‹xˆr   c                 ó   — | || S r   r+   )r+  ri  rA  s      r   r™
  zpython_internal_ArrayImpl.slice7)  s   € à��SˆzÐr   c                 óN   — | j                  t        j                  |«      ¬«       y )Nr¶   )r¼   r½   r¾   ©r+  re  s     r   r¼   zpython_internal_ArrayImpl.sort;)  s   € à	�‰Ô(×3Ñ3°AÓ6ˆÕ7r   c                 óZ   — |dk  rt        | «      |z   }|dk  rd}| |||z    }| |||z   …= |S rm   rÿ  )r+  ri  r¬  rj  s       r   rž
  z python_internal_ArrayImpl.splice?)  sH   € à�!ŠGÜ�q“6˜C‘<ˆCØ�!ŠGØˆCØ��S˜7‘]Ð$ˆØˆc�3˜‘=Ð!Ð"Øˆ
r   c                 ó,   — t        t        || «      «      S r   )r�   rÙ  rÎ
  s     r   rÙ  zpython_internal_ArrayImpl.mapI)  s   € ä”C˜˜!“H‹~Ðr   c                 ó,   — t        t        || «      «      S r   )r�   r¡  rÎ
  s     r   r¡  z python_internal_ArrayImpl.filterM)  s   € ä”F˜1˜Q“KÓ Ð r   c                 ó(   — | j                  ||«       y r   rV  )r}   ri  r+  s      r   r±  z python_internal_ArrayImpl.insertQ)  s   € à	�‰��aÕr   c                 ó$   — | j                  «        y r   )râ	  )r}   s    r   râ	  z!python_internal_ArrayImpl.reverseU)  s   € à	�	‰	�r   c                 ó4   — |dkD  r|t        | «      k  r| |   S y r8  rÿ  )r+  rË  s     r   rÀ   zpython_internal_ArrayImpl._getY)  s   € à�2ŠX˜S¤3 q£6š\Ø�S‘6ˆMàr   c                 ó˜   — t        | «      }||k  r| j                  d «       |dz   }||k  rŒ||k(  r| j                  |«       |S || |<   |S rS  )rª   r‚   )r+  rË  r;   r    s       r   rƒ  zpython_internal_ArrayImpl._set`)  sZ   € ä�‹FˆØ�3ŠwØ�H‰H�TŒNØ�Q‘ˆAð �3‹wð �ŠHØ�H‰H�QŒKð ˆð ˆAˆc‰FØˆr   r   )r(   r)   r*   r?   r@   râ  rã  r�
  rÀ  rn  rœ
  r•
  r’
  r>   ra   r^  r—
  rš
  r  r›
  r˜
  r™
  r¼   rž
  rÙ  r¡  r±  râ	  rÀ   rƒ  r+   r   r   r¿   r¿   Ù(  sâ  „ Ø0€NØ€Iò }€Kàñó ðð ñó ðð ñ1ó ð1ð ñ7ó ð7ð òó ðð òó ðð ñDó ðDð ñnó ðnð ñó ðð ñó ðð ñó ðð ñó ðð ñó ðð ñó ðð
 òó ðð ñ8ó ð8ð ñó ðð ñó ðð ñ!ó ð!ð ñó ðð ñó ðð ñó ðð ñ	ó ñ	r   r¿   c                   ó|   — e Zd Zd ZdZg d¢Zed„ «       Zed„ «       Zed„ «       Z	ed„ «       Z
ed„ «       Zed„ «       Zy	)
r“   r+   )rn  rk  r”   Úmodfr  Ú	mapKwArgsc                 óX   — t        | t        «      rt        | «      S | j                  «       S r   )r  r�   rd
  rn  rÒ  s    r   rn  zHxOverrides.iterators)  s#   € ä�aœÔÜ/°Ó2Ð2Ø�z‰z‹|Ðr   c                 óT   — t        | t        «      st        |t        «      r| |u S | |k(  S r   )r  r�   r   s     r   rk  zHxOverrides.eqy)  s'   € ä�qœÔ¤*¨Q¬tÔ"4Ø˜�6ˆMØ�Q‘ˆr   c                 ó   — | €y| S rÿ	  r+   r"  s    r   r”   zHxOverrides.stringOrNull)  s   € àˆIØàˆHr   c                 ót   — |dk(  rt        d«      S | dk  r|dk  r|  | z   S |  |z   S |dk  r| | z  S | |z  S )Ng        Únanr   )r  r   s     r   r×
  zHxOverrides.modf†)  sZ   € à�ŠHÜ˜“<ÐØ�!ŠeØ�A’Ø˜ ˜r™�|Ð#à˜˜a™�yÐ Ø�!ŠeØ˜˜‘8ˆOà�q‘5ˆLr   c                 óT   — | dk  r|dk  r|  | z   S |  |z   S |dk  r| | z  S | |z  S rm   r+   r   s     r   r  zHxOverrides.mod”)  sI   € à�ŠEØ�A’Ø˜ ˜r™�|Ð#à˜˜a™�yÐ Ø�!ŠeØ˜˜‘8ˆOà�q‘5ˆLr   c                 óv  — t        t        j                  | «      «      }t        t	        |j                  «       «      «      }|j                  «       rh|j                  «       }|j                  |«      }|j                  |«      r%t        ||«      }t        |||«       t        ||«       |j                  «       rŒh|S r   )r	   r$  r³
  r

  r
  r¸   r¹   rº   r‰   r'   r%   r/
  Údelattr)r}   r;   r)  rÃ   rÄ   rE  r+  s          r   rØ
  zHxOverrides.mapKwArgs )  sŠ   € äœJ×1Ñ1°!Ó4Ó5ˆÜ¤ Q§V¡V£X£Ó/ˆØ�i‰iŒkØ—‘“ˆBØ—%‘%˜“)ˆCØ�~‰~˜bÔ!Ü˜B˜r“N�Ü˜˜3˜qÔ!Ü˜˜2”ð �i‰i�kð ˆ	r   N)r(   r)   r*   r?   r@   râ  rã  rn  rk  r”   r×
  r  rØ
  r+   r   r   r“   r“   n)  s‡   „ Ø"€NØ€IÚP€Kàñó ðð
 ñó ðð
 ñó ðð ñó ðð ñ	ó ð	ð ñ
ó ñ
r   r“   c                   ó.   — e Zd ZdZdZddgZdgZd„ Zd„ Zy)	rŸ
  zpython.internal.MethodClosure©ÚobjÚfuncrã
  rä
  Ú__call__c                 ó    — || _         || _        y r   râ
  )r   rã
  rä
  s      r   r   z&python_internal_MethodClosure.__init__µ)  s   € ØˆŒØˆ�	r   c                 ó<   —  | j                   | j                  g|¢­Ž S r   )rä
  rã
  )r   r6  s     r   rå
  z&python_internal_MethodClosure.__call__¹)  s   € Øˆt�y‰y˜Ÿ™Ð( 4Ò(Ð(r   N)	r(   r)   r*   r?   r@   rA   rB   r   rå
  r+   r   r   rŸ
  rŸ
  ¯)  s&   „ Ø4€NØ€IØ˜�€JØ�,€Kòó)r   rŸ
  c                   óÔ   — e Zd Zd ZdZg d¢Zed„ «       Zed„ «       Zed„ «       Z	edd„«       Z
ed„ «       Zed	„ «       Zedd
„«       Zed„ «       Zed„ «       Zedd„«       Zedd„«       Zy)rv  r+   )rÓ  r  r–
  r’
  r”
  r“
  r•
  r4  ra   r)  rw  c                 óD   — |dk(  rt        | «      S | j                  |«      S rY  )r�   rÓ  )r^  rþ  s     r   rÓ  zHxString.splitÄ)  s    € à�ŠGÜ˜“7ˆNà—7‘7˜1“:Ðr   c                 óf   — | �!t        | «      dk(  s|dk  s|t        | «      k\  ry t        | |   «      S rm   )rª   rU  ©r^  r0   s     r   r  zHxString.charCodeAtË)  s3   € àˆyœs 1›v¨š{°5¸1²9ÀUÌcÐRSËfÂ_Øä�q˜‘x“=Ð r   c                 ó4   — |dk  s|t        | «      k\  ry| |   S rP  rÿ  rë
  s     r   r–
  zHxString.charAtÒ)  s   € à�QŠY˜U¤c¨!£fš_Øà�U‘8ˆOr   Nc                 ó\  — |€| j                  |dt        | «      «      S |dk(  r%t        | «      }|dk  r||z   }|dk  rd}||kD  r|S |S | j                  |d|dz   «      }|dk(  rt        d|dz   t        |«      z
  «      n|dz   }| j                  ||t        | «      «      }||kD  r||k  r|S |S )Nr   r�   r{   ro   )rÕ  rª   rÖ  r×  )r^  rO  rÜ  r›  rÀ  rÞ  rß  s          r   r’
  zHxString.lastIndexOfÙ)  sË   € àÐØ—7‘7˜7 A¤s¨1£vÓ.Ð.Ø˜ŠmÜ˜“VˆFØ˜Q’Ø$ zÑ1�
Ø ’NØ!"�JØ˜VÒ#Ø�à!Ð!à—‘˜  Z°!¡^Ó5ˆAØGHÈBÂwœ˜Q ¨a¡´3°w³<Ñ ?ÔAÐWXÐ[\ÑW\ˆIØ—F‘F˜7 I¬s°1«vÓ6ˆEØ˜’ %¨:Ò"5Ø�à�r   c                 ó"   — | j                  «       S r   )Úupperr"  s    r   r”
  zHxString.toUpperCaseð)  ó   € à�w‰w‹yÐr   c                 ó"   — | j                  «       S r   )rØ  r"  s    r   r“
  zHxString.toLowerCaseô)  rð
  r   c                 óV   — |€| j                  |«      S t        j                  | ||«      S r   )r×  rv  r4  )r^  rO  rÜ  s      r   r•
  zHxString.indexOfø)  s+   € àÐØ—6‘6˜'“?Ð"ä×'Ñ'¨¨'°*Ó=Ð=r   c                 óz   — |dk(  r%t        | «      }|dk  r||z   }|dk  rd}||kD  r|S |S | j                  ||«      S )Nr�   r   )rª   r×  )r^  rO  rÜ  r›  s       r   r4  zHxString.indexOfImplÿ)  sS   € à�rŠMÜ˜“VˆFØ˜Q’Ø$ zÑ1�
Ø ’NØ!"�JØ˜VÒ#Ø�à!Ð!Ø�v‰v�g˜zÓ*Ð*r   c                 ó   — | S r   r+   r"  s    r   ra   zHxString.toString*  rÓ  r   c                 óJ   — |dk  rd}|€| |d  S |dk  rd}||k  r| || S | || S rm   r+   )r^  rÜ  ÚendIndexs      r   r)  zHxString.substring*  sN   € à˜ŠNØˆJØÐØ�Z�[�>Ð!à˜1’Ø�Ø˜:Ò%Ø˜ *Ð-Ð-à˜ HÐ-Ð-r   c                 ó`   — |€| |d  S |dk(  ry|dk  rt        | «      |z   }|dk  rd}| |||z    S rP  rÿ  )r^  rÜ  r¬  s      r   rw  zHxString.substr*  sP   € àˆOØ�Z�[�>Ð!à˜1’ØØ˜Q’Ü! !›f zÑ1�
Ø ’NØ!"�JØ�Z ¨gÑ!5Ð7Ð7r   r   )r(   r)   r*   r?   r@   râ  rã  rÓ  r  r–
  r’
  r”
  r“
  r•
  r4  ra   r)  rw  r+   r   r   rv  rv  ¿)  sî   „ Ø€NØ€Iò ^€Kàñó ðð ñ!ó ð!ð ñó ðð òó ðð, ñó ðð ñó ðð ò>ó ð>ð ñ+ó ð+ð ñó ðð ò.ó ð.ð ò
8ó ñ
8r   rv  c                   ó0   — e Zd ZdZdZdgZg Zg Zg Ze	Z
d„ Zy)Úpython_io_NativeOutputzpython.io.NativeOutput)rú  rú  c                 óŒ   — d | _         | j                  d«       || _         |j                  «       st        j	                  d«      ‚y )NFúRead only stream)rú  r[
  Úwritabler&  r'  )r   rú  s     r   r   zpython_io_NativeOutput.__init__8*  s?   € ØˆŒØ×Ñ˜5Ô!ØˆŒØ—‘Ô!Ü ×'Ñ'Ð(:Ó;Ð;ð "r   N)r(   r)   r*   r?   r@   rA   rB   râ  rK  rU
  rò	  r   r+   r   r   rù
  rù
  .*  s,   „ Ø-€NØ€IØ�€JØ€KØ€KØ€NØ€Ió<r   rù
  c                   ó"   — e Zd ZdZdZdgZg d¢Zy)Úpython_io_IOutputzpython.io.IOutputrW
  rX
  ©r[
  rY
  rZ
  r\
  r5	  N)r(   r)   r*   r?   r@   rA   rB   r+   r   r   rþ
  rþ
  B*  s   „ Ø(€NØ€IØ�€JÚ_�Kr   rþ
  c                   ó   — e Zd ZdZdZegZy)Úpython_io_IFileOutputzpython.io.IFileOutputr+   N)r(   r)   r*   r?   r@   rþ
  rK  r+   r   r   r  r  J*  s   „ Ø,€NØ€IØ'Ð(�Nr   r  c                   óJ   ‡ — e Zd ZdZdZg ZddgZg Zg Ze	Z
ˆ fd„Zd„ Zd„ Zˆ xZS )Úpython_io_NativeTextOutputzpython.io.NativeTextOutputr+   rZ
  rY
  c                 ón   •— t         ‰| �  |«       |j                  «       st        j	                  d«      ‚y )Nrû
  )rÝ	  r   rü
  r&  r'  ©r   rú  r  s     €r   r   z#python_io_NativeTextOutput.__init__[*  s1   ø€ Ü‰Ñ˜Ô Ø—‘Ô!Ü ×'Ñ'Ð(:Ó;Ð;ð "r   c                 óX   —  t        | j                  «      |j                  |||z    «      S r   )Ústream_writerú  r~   ©r   r^  ri  r¬  s       r   rZ
  z%python_io_NativeTextOutput.writeBytes`*  s'   € Ø(Œ|˜DŸK™KÓ(¨¯©¨S°#¸±-Ð)AÓBÐBr   c                 óv   — | j                   j                  dj                  t        t        |g«      «      «       y rY  )rú  rV  r>   rÙ  rÚ  r1  s     r   rY
  z$python_io_NativeTextOutput.writeBytec*  s%   € Ø�‰×Ñ˜"Ÿ'™'¤#¤c¨1¨#£,Ó/Õ0r   )r(   r)   r*   r?   r@   rA   rB   râ  rK  rù
  rò	  r   rZ
  rY
  ró	  rô	  s   @r   r  r  Q*  s;   ø„ Ø1€NØ€IØ€JØ Ð-€KØ€KØ€NØ&€Iô<ò
Cö1r   r  c                   ó<   ‡ — e Zd ZdZdZg Zg Zg ZegZ	e
Zˆ fd„Zˆ xZS )Úpython_io_FileTextOutputzpython.io.FileTextOutputr+   c                 ó$   •— t         ‰| �  |«       y r   r"
  r  s     €r   r   z!python_io_FileTextOutput.__init__s*  s   ø€ Ü‰Ñ˜Õ r   )r(   r)   r*   r?   r@   rA   rB   râ  r  rK  r  rò	  r   ró	  rô	  s   @r   r  r  i*  s3   ø„ Ø/€NØ€IØ€JØ€KØ€KØ+Ð,€NØ*€I÷!ð !r   r  c                   ó*   — e Zd ZdZdZdgZed„ «       Zy)r~  zpython.io.IoToolsr+   r  c                 ó*   — t        t        | «      «      S r   )Úsys_io_FileOutputr  r"  s    r   r  z*python_io_IoTools.createFileOutputFromText}*  s   € ä Ô!9¸!Ó!<Ó=Ð=r   N)r(   r)   r*   r?   r@   râ  rã  r  r+   r   r   r~  r~  x*  s&   „ Ø(€NØ€IØ-Ð.€Kàñ>ó ñ>r   r~  c                   ó<   — e Zd ZdZdZddgZed„ «       Zed„ «       Zy)r,	  zsys.io.Filer+   r  r  c                 ó|   — t        j                  | dddd d«      }|j                  d«      }|j                  «        |S )Nr¡   ro   r0	  r�   )Úpython_lib_Builtinsr;  r@  rH	  )r   re  Úcontents      r   r  zsys_io_File.getContentˆ*  s7   € ä×$Ñ$ T¨#¨b°¸¸bÓAˆØ—&‘&˜“*ˆØ	�‰Œ	Øˆr   c                 óz   — t        j                  | dddd d«      }|j                  |«       |j                  «        y )Nr:  ro   r0	  r�   )r  r;  rV  rH	  )r   r  re  s      r   r  zsys_io_File.saveContent�*  s1   € ä×$Ñ$ T¨#¨b°¸¸bÓAˆØ	�‰�ÔØ	�‰�	r   N)	r(   r)   r*   r?   r@   râ  rã  r  r  r+   r   r   r,	  r,	  ƒ*  s<   „ Ø"€NØ€IØ Ð/€Kàñó ðð ñó ñr   r,	  c                   óT   — e Zd ZdZdZdgZg d¢Zg Zg Ze	Z
d„ Zd„ Zd„ Zd„ Zd	„ Zdd„Zy
)r  zsys.io.FileOutput©Úimplr  rÿ
  c                 ó   — || _         y r   r  )r   r  s     r   r   zsys_io_FileOutput.__init__¡*  r¸  r   c                 ó8   — | j                   j                  |«      S r   )r  r[
  rŒ   s     r   r[
  zsys_io_FileOutput.set_bigEndian¤*  s   € Ø�y‰y×&Ñ& qÓ)Ð)r   c                 ó:   — | j                   j                  |«       y r   )r  rY
  r1  s     r   rY
  zsys_io_FileOutput.writeByte§*  s   € Ø�	‰	×Ñ˜AÕr   c                 ó<   — | j                   j                  |||«      S r   )r  rZ
  r  s       r   rZ
  zsys_io_FileOutput.writeBytesª*  s   € Ø�y‰y×#Ñ# A c¨'Ó2Ð2r   c                 ó>   — | j                   j                  |||«       y r   )r  r\
  r  s       r   r\
  z sys_io_FileOutput.writeFullBytes­*  s   € Ø�	‰	× Ñ   3 wÕ/r   Nc                 ó:   — | j                   j                  |«       y r   )r  r5	  )r   r^  rH
  s      r   r5	  zsys_io_FileOutput.writeString°*  s   € Ø�	‰	×Ñ˜aÕ r   r   )r(   r)   r*   r?   r@   rA   rB   râ  rK  rU
  rò	  r   r[
  rY
  rZ
  r\
  r5	  r+   r   r   r  r  —*  sE   „ Ø(€NØ€IØ�€JÚ_€KØ€KØ€NØ€Iòò*òò3ò0ô!r   r  z-infÚinfrÝ
  z1.4.2)!ÚandÚdelÚfromÚnotÚwithÚasÚelifÚglobalÚorÚyieldÚassertÚelseÚifÚpassÚNoneÚbreakÚexceptÚimportÚraiseÚTrueÚclassr{  ÚinÚreturnÚFalseÚcontinueÚfinallyÚisÚtryÚdefÚforÚlambdaÚwhiler.
  c                   óB   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zy
)ÚPythonCellViewc                  ó   — y r   r+   r   s    r   r   zPythonCellView.__init__Á*  ry   r   c                 ó&   — |d k7  rt        |«      S dS rY  r8   rà  s     r   ra   zPythonCellView.toStringÄ*  s   € Ø˜Tš'Œs�1‹vÐ*¨Ð*r   c                 ó0   — t        |«      t        |«      k(  S r   r8   râ  s      r   rn  zPythonCellView.equalsÇ*  s   € Ü�2‹wœ#˜b›'Ñ!Ð!r   c                 ó   — |S r   r+   rà  s     r   rº  zPythonCellView.toDatumÊ*  ræ  r   c                 ó   — i S r   r+   r   s    r   r`  zPythonCellView.makeHashÍ*  s   € Øˆ	r   c                 ó$   — t        |«      t        u S r   )r¦  r
  rà  s     r   r€  zPythonCellView.isHashÐ*  s   € Ü�A‹wœ$ˆÐr   c                 ó   — |||<   y r   r+   )r   rþ  rÃ   r;   s       r   ra  zPythonCellView.hashSetÓ*  s   € Øˆˆ!Šr   c                 ó   — ||   S r   r+   ©r   rþ  rÃ   s      r   r‚  zPythonCellView.hashGetÖ*  s   € Ø�‰tˆr   c                 ó
   — ||v S r   r+   rI  s      r   r�  zPythonCellView.hashExistsÙ*  s   € Ø�Aˆvˆr   N)r(   r)   r*   r   ra   rn  rº  r`  r€  ra  r‚  r�  r+   r   r   r@  r@  À*  s/   „ òò+ò"òòòòòór   r@  c                   óx   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)rß  c                 ó†   — || _         t        |«      | _        d| _        | j                  dkD  rt        |d   «      | _        y y rm   )rà  rª   r‡  rø  )r   rà  s     r   r   zPythonTableView.__init__Þ*  s:   € ØˆŒ	Ü˜$“iˆŒØˆŒ
Ø�;‰;�qŠ=Ü˜T !™W›ˆD�Jð r   c                 ó   — | j                   S r   )rø  r   s    r   r
  zPythonTableView.get_widthå*  rm  r   c                 ó   — | j                   S r   )r‡  r   s    r   r  zPythonTableView.get_heightè*  s   € Ø�{‰{Ðr   c                 ó&   — | j                   |   |   S r   ©rà  r*  s      r   r  zPythonTableView.getCellë*  s   € Ø�y‰y˜‰|˜A‰Ðr   c                 ó(   — || j                   |   |<   y r   rP  r-  s       r   r  zPythonTableView.setCellî*  s   € Øˆ�	‰	�!‰�QŠr   c                 ó,   — t         j                  | «      S r   r0  r   s    r   ra   zPythonTableView.toStringñ*  r3  r   c                 ó   — t        «       S r   )r@  r   s    r   r  zPythonTableView.getCellViewô*  s   € ÜÓÐr   c                  ó   — yr™   r+   r   s    r   r  zPythonTableView.isResizableø*  rE  r   c                 óì  — || _         || _        t        t        | j                  «      «      D ]V  }| j                  |   }|d k(  rg x}| j                  |<   t        |«      |k  sŒ7|j                  d «       t        |«      |k  rŒ ŒX t        | j                  «      |k  rWg }t        |«      D ]  }|j                  d «       Œ | j                  j                  |«       t        | j                  «      |k  rŒWyr™   )rø  r‡  rW   rª   rà  r‚   )r   r:  rˆ   rÀ  r…  s        r   r  zPythonTableView.resizeû*  sÕ   € ØˆŒ
ØˆŒÜ”s˜4Ÿ9™9“~Ó&ò 	!ˆAØ—)‘)˜A‘,ˆCØ�dŠ{Ø%'Ð'��d—i‘i ‘lÜ�c“(˜1“*Ø—
‘
˜4Ô ô �c“(˜1”*ð		!ô �$—)‘)‹n˜QÒØˆCÜ˜1“Xò !�Ø—
‘
˜4Õ ð!à�I‰I×Ñ˜SÔ!ô	 �$—)‘)‹n˜QÓð
 r   c                 óÀ   — t        t        | j                  «      «      D ]/  }| j                  |   }t        t        |«      «      D ]  }d ||<   Œ	 Œ1 d| _        d| _        y rm   )rW   rª   rà  rø  r‡  )r   rÀ  r…  r&  s       r   r  zPythonTableView.clear+  s[   € Ü”s˜4Ÿ9™9“~Ó&ò 	ˆAØ—)‘)˜A‘,ˆCÜœ3˜s›8“_ò �Ø��A’ñð	ð ˆŒ
Øˆ�r   c                  ó   — yr|  r+   r   s    r   r	  zPythonTableView.trimBlank+  r}  r   c                 ó   — | j                   S r   rP  r   s    r   r  zPythonTableView.getData+  rJ  r   c                 ó´  — g }t        t        |«      «      D ]]  }||   }|dk7  sŒ|t        |«      k\  r0t        |t        |«      z
  dz   «      D ]  }|j                  d «       Œ | j                  |   ||<   Œ_ | j                  d d …= t        t        |«      «      D ]   }| j                  j                  ||   «       Œ" | j	                  | j
                  |«       yrR	  )rW   rª   r‚   rà  r  rø  )r   r>  r?  ÚndatarÀ  r&  rÃ   s          r   r  z"PythonTableView.insertOrDeleteRows+  sÇ   € ØˆÜ”s˜4“yÓ!ò 	(ˆAØ�Q‘ˆAØ�"‹uØ”c˜%“j’=Ü" 1¤S¨£Z¡<°¡>Ó2ò +˜ØŸ™ TÕ*ð+àŸ9™9 Q™<��a’ð	(ð �I‰I’aˆLÜ”s˜5“zÓ"ò 	'ˆAØ�I‰I×Ñ˜U 1™XÕ&ð	'à�‰�D—J‘J˜uÔ%Ør   c                 ó:  — || j                   k(  r/|t        |«      k(  r!d}t        |«      D ]  }||   |k7  sŒd} n |ryt        | j                  «      D ]¾  }| j                  |   }g }t        | j                   «      D ]V  }||   dk(  rŒ||   }|t        |«      k\  r0t        |t        |«      z
  dz   «      D ]  }	|j                  d «       Œ ||   ||<   ŒX t        |«      |k  r |j                  d «       t        |«      |k  rŒ || j                  |<   ŒÀ || _         y)NTFro   r{   )rø  rª   rW   r‡  rà  r‚   )
r   r>  rB  rk  rÀ  r…  Únrowr&  r@  rÃ   s
             r   r  z%PythonTableView.insertOrDeleteColumns)+  s(  € Ø�$—*‘*Ò ¬¨D«	Ò!1ØˆBÜ˜5“\ò �Ø˜‘7˜A“:Ø�BÙðñ Øä�t—{‘{Ó#ò 	 ˆAØ—)‘)˜A‘,ˆCØˆDÜ˜4Ÿ:™:Ó&ò "�Ø˜‘7˜B’;ØØ˜!‘W�Ø”s˜4“y’=Ü" 2¤c¨$£i¡<°¡>Ó2ò *˜ØŸ™ DÕ)ð*à˜q™6��R’ð"ô �d“)˜E’/Ø—‘˜DÔ!ô �d“)˜E“/àˆD�I‰I�aŠLð	 ð ˆŒ
Ør   c           	      ó„  — |j                   | j                   k7  ry|j                  | j                  k7  ryt        | j                   «      D ]t  }t        | j                  «      D ]Z  }dt        | j	                  ||«      «      z   }dt        |j	                  ||«      «      z   }||k7  sŒEt        d|z   dz   |z   «         y Œv y)NFr�   z	MISMATCH r1  T)rø  r‡  rW   r9   r  rõ  )r   r  r.  r¡   re  rf  s         r   Ú	isSimilarzPythonTableView.isSimilarD+  s±   € Ø�9‰9�d—j‘jÒ ØØ�:‰:�t—{‘{Ò"ØÜ�t—z‘zÓ"ò 	!ˆAÜ˜4Ÿ;™;Ó'ò !�Øœ#˜dŸl™l¨1¨QÓ/Ó0Ñ0�Øœ#˜cŸk™k¨!¨AÓ.Ó/Ñ/�Ø˜“FÜ˜+ r™/¨CÑ/°"Ñ4Ô5Ú ñ!ð	!ð r   c           
      ó&  — t        g «      }|j                  | j                  «       | j                  «       «       t	        | j
                  «      D ]?  }t	        | j                  «      D ]%  }|j                  ||| j                  ||«      «       Œ' ŒA |S r   )	rß  r  r
  r  rW   rø  r‡  r  r  )r   r—   r.  r¡   s       r   r  zPythonTableView.cloneR+  sz   € Ü  Ó$ˆØ�‰�d—n‘nÓ&¨¯©Ó(9Ô:Ü�t—z‘zÓ"ò 	6ˆAÜ˜4Ÿ;™;Ó'ò 6�Ø—‘˜q  4§<¡<°°!Ó#4Õ5ñ6ð	6ð ˆr   c                 ó   — t        g «      S r   )rß  r   s    r   r  zPythonTableView.createZ+  s   € Ü˜rÓ"Ð"r   c                  ó   — y r   r+   r   s    r   r  zPythonTableView.getMeta]+  rE  r   N)r(   r)   r*   r   r
  r  r  r  ra   r  r  r  r  r	  r  r  r  r^  r  r  r  r+   r   r   rß  rß  Ý*  s\   „ ò&òòòòò/ò òòò òòòò ò6òò#ór   rß  rÅ  c                   óv   — e Zd Zd„ Zd„ Zd„ Zd„ Zg g fd„Zg g fd„Zg g fd„Z	g fd„Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zy)rA	  c                 óô   — dd l }t        |d«      s|j                  |«      }d| _        n|| _        || _        d |_        |j                  «       | _        d | _        t        «       | _	        t        «       | _        y )Nr   ré  Úexternal)rÑ  r
  ÚconnectÚfnamerù  Úisolation_levelré  r…  rñ  ÚquoterrË  ra  )r   rù  rÑ  s      r   r   zSqliteDatabase.__init__c+  s`   € ÛÜ�r˜8Ô$Ø—‘ Ó$ˆBØ#ˆD�JàˆDŒJØˆŒØ!ˆÔØ—i‘i“kˆŒØˆŒä“eˆŒÜ“Lˆ�	r   c                 ó~   — t        |d«      rt        |«      }| j                  j                  | j                  |d«      S )NÚdecodeT)r
  Úunicoderh  rï  ra  r    s     r   rS  z"SqliteDatabase.getQuotedColumnNames+  s2   € Ü�4˜Ô!Ü˜4“=ˆDØ�{‰{×%Ñ% d§i¡i°°tÓ<Ð<r   c                 ól   — | j                   j                  | j                  |j                  «       d«      S r™   )rh  rï  ra  ra   r    s     r   rR  z!SqliteDatabase.getQuotedTableNamey+  s%   € Ø�{‰{×%Ñ% d§i¡i°·±³À$ÓGÐGr   c                 óH  — | j                  |«      }| j                  j                  d|z  «      j                  «       }g }|D ]]  }t	        «       }|j                  |d   «       |j                  |d   dkD  «       |j                  |d   d«       |j                  |«       Œ_ |S )Nzpragma table_info(%s)r{   rü  r   rÒ  rÒ  )	rR  ré  ÚexecuteÚfetchallr   r  r  r  r‚   )r   r!   ÚqnameÚinfor*  r…  r³  s          r   rz  zSqliteDatabase.getColumns|+  s›   € Ø×'Ñ'¨Ó-ˆØ�{‰{×"Ñ"Ð#:¸5Ñ#@ÓA×JÑJÓLˆØˆØò 	#ˆCÜ“[ˆFØ�N‰N˜3˜q™6Ô"Ø× Ñ   Q¡¨¡Ô*Ø�N‰N˜3˜q™6 (Ô+Ø�N‰N˜6Õ"ð	#ð ˆr   c                 óD   — | j                   j                  ||xs g «       yr™   ©ré  rn  ©r   rB  r6  r¬   s       r   r{  zSqliteDatabase.execˆ+  ó   € Ø�‰×Ñ˜E $¢*¨"Ô-Ør   c                 óD   — | j                   j                  ||xs g «       yr™   rs  rt  s       r   rÚ  zSqliteDatabase._hx_execŒ+  ru  r   c                 óD   — | j                   j                  ||xs g «       yr™   rs  rt  s       r   r?  zSqliteDatabase.begin�+  ru  r   c                 óh   — | j                   j                  d| j                  |«      z   dz   |g«       y)Nr®  z WHERE rowid = ?T)ré  rn  rR  )r   r-  r…  r¬   s       r   r@  zSqliteDatabase.beginRow”+  s4   € Ø�‰×ÑÐ,¨t×/FÑ/FÀsÓ/KÑKÐN`Ñ`ÐbeÐafÔgØr   c                 ó^   — | j                   j                  «       | _        | j                  d k7  S r   )ré  Úfetchoner…  r   s    r   r@  zSqliteDatabase.read˜+  s$   € Ø—;‘;×'Ñ'Ó)ˆŒØ�x‰x˜‰~Ðr   c                 ó,   — | j                   |   }|€|S |S r   )r…  )r   r0   r;   s      r   r‰   zSqliteDatabase.getœ+  s   € Ø�H‰H�U‰OˆØˆ9ØˆHØˆr   c                  ó   — y r   r+   r   s    r   rA  zSqliteDatabase.end¢+  ry   r   c                  ó   — y)NrM  r+   r   s    r   rM  zSqliteDatabase.rowid¥+  s   € Ør   c                 ó   — t        «       S r   )rÈ  r   s    r   r&  zSqliteDatabase.getHelper¨+  s
   € Ü‹~Ðr   c                 ó   — | j                   S r   )rf  r   s    r   r%  z#SqliteDatabase.getNameForAttachment«+  rm  r   N)r(   r)   r*   r   rS  rR  rz  r{  rÚ  r?  r@  r@  r‰   rA  rM  r&  r%  r+   r   r   rA	  rA	  b+  sc   „ ò!ò =òHò
ð   bó ð "$¨"ó ð ! ró ð %'ó òòòòòór   rA	  c                  óŠ   — t        t        j                  d«      rt        j                  j                  S t        j                  S ©NÚbuffer)r
  rs  rp  r‚  r+   r   r   r2	  r2	  ­+  s/   € Ü)0´×1FÑ1FÀxÔ)PŒ×	Ñ	×	%Ñ	%ÐlÔVd×VkÑVkÐlr   c                 ó   ‡ — ˆ fd„S )Nc                 óŽ   •— t        ‰d«      r‰j                  j                  | «      S ‰j                  | «      xs t        | «      S r�  )r
  r‚  rV  rª   )r   r^  s    €r   ú<lambda>zstream_write.<locals>.<lambda>°+  s5   ø€ ¬G°A°hÔ,?�Q—X‘X—^‘^ CÓ(€ ÀaÇgÁgÈcÃlÒF^ÔVYÐZ]ÓV^€ r   r+   r"  s   `r   r  r  ¯+  s	   ø€ Û`Ð`r   Ú__main__c                  ó,   — t         j                  «        y r   )rˆ  rº  r+   r   r   rº  rº  ³+  s   € Ü‡�…r   )¨r<	  Úmathrc  r  rü  r   rm  Úinspectr{  rs  Úbuiltinsr  Ú	functoolsr½   rÅ  r   rw  Ú
subprocessr{  Ú	tracebackrà	  r   r&  r   r*  r’  r   rG  r	   r-   r”	  rD   rØ   rä   rõ   rù   rÿ   r  r  r  rˆ  rÙ  rƒ  rˆ  rå  rñ  r!  rã  rš  r¬  rÉ  rf  rH  rÆ  r’  r  r¶  r¼  r  r  rg  r*  rò  rW  r�   r  r  r=  r�  r  r1  rÚ  rË  rô  r   rô  ry  r}  r‚  r¶  r  rÈ  r•   r  r  r  r  rD  r^  rk  rÕ  r¹  r  r`  rÇ  r÷  r  rø  r�	  r‚	  rƒ	  r„	  r…	  r†	  r‡	  rŠ	  r�	  r»   rÅ  rÐ	  rñ	  r&  rÞ	  rî	  rp   r´  r
  r 
  rô  rB
  rJ
  rK
  rL
  rN
  rO
  rP
  rQ
  rU
  rd
  rv
  rÊ  r

  r"  r$  r¿   r“   rŸ
  rv  rù
  rþ
  r  r  r  r~  r,	  r  r  r  r  r=  ÚpiÚPIr°  r|   r0
  rª   r
  r@  rß  Údirr!   r%   ÚvarsrA	  r2	  r  r(   rº  r+   r   r   ú<module>r’     su
  ðó
 ã Û Ý )Û $Û Û &Û (Û Û Û *Û (Ý =Ý =Ý 1÷ñ ÷6Sñ Sð" €„÷B(ñ B(ðH  €	Ô ÷@ñ @ð $€Ô ÷[ñ [ð8 €Ô ÷ Ñ ÷ñ ð &€Ô ÷Zñ Zð €„÷[ñ [ðz (€Ô ÷f%ñ f%ðP 0Ð Ô ÷Cñ CðJ 0Ð Ô ÷Nñ Nð` &€Ô ÷a	ñ a	ðF &€Ô ÷
ñ 
ð &€Ô ÷x*ñ x*ðt' €„÷	ñ 	ð "€
Ô ÷w!ñ w!ðr €„÷iñ ið8 €„÷Jñ JðX
 "€
Ô ÷ ñ  ð. $€Ô ÷9ñ 9ðv ,€Ô ÷1ñ 1ð €„÷g(ñ g(ðR *€Ô ÷Jñ Jð*  2Ð Ô ÷^"ñ ^"ð@ €„÷ñ ð2  €	Ô ÷Hñ HðT  €	Ô ÷qñ qð €„÷rñ rðh  €	Ô ÷Yñ Yðv "€
Ô ÷ñ ð, €Ô ÷OUñ OUðb €Ô ÷añ aðD €„÷bñ bðH €Ô ÷4ñ 4ðl 0Ð Ô ÷&"ñ &"ðP €Ô ÷ñ ð *€Ô ÷ñ ð< €Ô ÷rñ rð>  €	Ô ÷/ñ /ð  €	Ô ÷wñ wðr "€
Ô ÷wñ wðr $€Ô ÷Rñ Rð €„÷1ñ 1ðf "€
Ô ÷%ñ %ðN $€Ô ÷sñ sð>  €	Ô ÷zñ zðx "€
Ô ÷xñ xð $€Ô ÷vñ vð  €	Ô ÷q$ñ q$ðf €Ô ÷eñ eð& &€Ô ÷]*ñ ]*ð~  €	Ô ÷`ñ `ðD	 &€Ô ÷lñ lðZ €„÷ Ñ ÷ �÷ Ñ ÷ Ñ ÷ñ ð   €	Ô ÷WGñ WGðp $€Ô ÷/ñ /ð *€Ô ÷Qñ Qð@ €„÷++ñ ++ðZ "6Ð Ô ÷iñ iðV!  €	Ô ÷9:ñ 9:ðv €Ô ÷Kñ Kð0 (€Ô ÷S!ñ S!ðj $€Ô ÷#ñ #ðJ €Ô ÷xñ xðt  2Ð Ô ô+�ô +ñ ˜G Q¨Ó+€	„Ù˜6 1 bÓ)€	„Ù˜X q¨"Ó-€	Ô Ù˜G Q¨Ó+€	„Ù˜i¨¨BÓ/€	Ô Ù ¨Q°Ó3€	Ô Ù˜z¨1¨bÓ1€	Ô Ø€	Ô ÷,&ñ ,&ðZ €„÷Mñ Mð^ €„÷Lñ Lð\ €Ô ÷ñ ð  €	Ô ô:�Yô :ðx *€Ô ÷ñ ð$ #8Ð Ô ô˜.ô ð$ !4Ð Ô ÷#ñ #ðJ *€Ô ÷:ñ :ð  0Ð Ô ôt >ô tð* *FÐ Ô &ô/Ð.Jô /ð 5\Ð 'Ô 1÷[(ñ [(ðz %<Ð Ô !÷'ñ 'ð (€Ô ô+�tô +ñ )¨°°BÓ7Ð Ô Ù-¨k¸1¸bÓAÐ Ô Ø-Ð Ô ô0�Dô 0ñ & i°°BÓ7€Ô Ù& z°1°bÓ9€Ô Ù+¨O¸QÀÓC€Ô Ø'€Ô ÷ *ñ  *ðD *€Ô ÷ñ ð. *FÐ Ô &÷ñ ð. 2VÐ $Ô .÷lñ lðZ $€Ô ÷ñ ðB !4Ð Ô ÷(ñ (ð )DÐ Ô %÷ñ ð, "€
Ô ÷Qñ Qðd '@Ð Ô #÷=ñ =ð| $€Ô ÷)ñ )ð +HÐ Ô '÷k8ñ k8ðX €Ô ô<˜^ô <ð" $:Ð Ô  ÷`ñ `ð
 0Ð Ô ÷)ñ )ð #8Ð Ô ô1Ð!7ô 1ð* (BÐ Ô $ô!Ð9ô !ð &>Ð Ô "÷>ñ >ð 0Ð Ô ÷ñ ð" $€Ô ô!˜ô !ð8 0Ð Ô á˜v›€Ô Ù˜u›€Ô Ù�‹<€„Ø
×
Ò
€„à€„Ùò  mó  n€Ô Ù˜v›;€Ô ô�Tô ô:A�eô AñD �‹Jò ,€DØˆA�w�#ƒ~Ù˜u dÓ+‰‹ˆtŠð,ôJ�[ô JòVmòaàˆzÒØ‡‚„ór   