
    gn/                         d Z ddlZddlZddlmZmZmZmZmZm	Z	m
Z
mZ dZdZdZdZdd	d
ddZddgZddgZdddddddZddddddddZ G d d      Z G d d e      Z G d! d"e      Zd# Zd$ Zed%k(  r e        d&gZy)'zV
Finding (and Replacing) Nemo

Instant Regular Expressions
Created by Aristide Grange
    N)	SEL_FIRSTSEL_LASTFrameLabel
PhotoImage	ScrollbarTextTkzFinding (and Replacing) Nemozn(.*?)e(.*?)m(.*?)oz
M\1A\2K\3Ia  Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
a  R0lGODlhMAAiAPcAMf/////37//35//n1v97Off///f/9/f37/fexvfOvfeEQvd7QvdrQvdrKfdaKfdSMfdSIe/v9+/v7+/v5+/n3u/e1u/Wxu/Gre+1lO+tnO+thO+Ua+97Y+97Oe97Me9rOe9rMe9jOe9jMe9jIe9aMefe5+fe3ufezuece+eEWudzQudaIedSIedKMedKIedCKedCId7e1t7Wzt7Oxt7Gvd69vd69rd61pd6ljN6UjN6Ue96EY95zY95rUt5rQt5jMd5SId5KIdbn59be3tbGztbGvda1rdaEa9Z7a9Z7WtZzQtZzOdZzMdZjMdZaQtZSOdZSMdZKMdZCKdZCGNY5Ic7W1s7Oxs7Gtc69xs69tc69rc6tpc6llM6clM6cjM6Ue86EY85zWs5rSs5SKc5KKc5KGMa1tcatrcalvcalnMaUpcZ7c8ZzMcZrUsZrOcZrMcZaQsZSOcZSMcZKMcZCKcZCGMYxIcYxGL3Gxr21tb21rb2lpb2crb2cjL2UnL2UlL2UhL2Ec717Wr17Ur1zWr1rMb1jUr1KMb1KIb1CIb0xGLWlrbWlpbWcnLWEe7V7c7VzY7VzUrVSKbVKMbVCMbVCIbU5KbUxIbUxEK2lta2lpa2clK2UjK2MnK2MlK2Ea617e61za61rY61rMa1jSq1aUq1aSq1SQq1KKa0xEKWlnKWcnKWUnKWUhKWMjKWEa6Vza6VrWqVjMaVaUqVaKaVSMaVCMaU5KaUxIaUxGJyclJyMe5yElJyEhJx7e5x7c5xrOZxaQpxSOZxKQpw5IZSMhJSEjJR7c5Rre5RrY5RrUpRSQpRSKZRCOZRCKZQxKZQxIYyEhIx7hIxza4xzY4xrc4xjUoxaa4xaUoxSSoxKQoxCMYw5GIR7c4Rzc4Rre4RjY4RjWoRaa4RSWoRSUoRSMYRKQoRCOYQ5KYQxIXtra3taY3taSntKOXtCMXtCKXNCMXM5MXMxIWtSUmtKSmtKQmtCOWs5MWs5KWs5IWNCKWMxIVIxKUIQCDkhGAAAACH+AS4ALAAAAAAwACIAAAj/AAEIHEiwoMGDCBMqXMiwoUOHMqxIeEiRoZVp7cpZ29WrF4WKIAd208dGAQEVbiTVChUjZMU9+pYQmPmBZpxgvVw+nDdKwQICNVcIXQEkTgKdDdUJ+/nggVAXK1xI3TEA6UIr2uJ8iBqka1cXXTlkqGoVYRZ7iLyqBSs0iiEtZQVKiDGxBI1u3NR6lUpGDKg8MSgEQCphU7Z22vhg0dILXRCpYLuSCcYJT4wqXASBQaBzU7klHxC127OHD7ZDJFpERqRt0x5OnwQpmZmCLEhrbgg4WIHO1RY+nbQ9WRGEDJlmnXwJ+9FBgXMCIzYMVijBBgYMFxIMqJBMSc0Ht7qh/+Gjpte2rnYsYeNlasWIBgQ6yCewIoPCCp/cyP/wgUGbXVu0QcADZNBDnh98gHMLGXYQUw02w61QU3wdbNWDbQVVIIhMMwFF1DaZiPLBAy7E04kafrjSizaK3LFNNc0AAYRQDsAHHQlJ2IDQJ2zE1+EKDjiAijShkECCC8Qgw4cr7ZgyzC2WaHPNLWWoNeNWPiRAw0QFWQFMhz8C+QQ20yAiVSrY+MGOJCsccsst2GCzoHFxxEGGC+8hgs0MB2kyCpgzrUDCbs1Es41UdtATHFFkWELMOtsoQsYcgvRRQw5RSDgGOjZMR1AvPQIq6KCo9AKOJWDd48owQlHR4DXEKP9iyRrK+DNNBTu4RwIPFeTAGUG7hAomkA84gEg1m6ADljy9PBKGGJY4ig0xlsTBRSn98FOFDUC8pwQOPkgHbCGAzhTkA850s0c7j6Hjix9+gBIrMXLeAccWXUCyiRBcBEECdEJ98KtAqtBCYQc/OvDENnl4gYpUxISCIjjzylkGGV9okYUVNogRhAOBuuAEhjG08wOgDYzAgA5bCjIoCe5uwUk80RKTTSppPREGGGCIISOQ9AXBg6cC6WIywvCpoMHAocRBwhP4bHLFLujYkV42xNxBRhAyGrc113EgYtRBerDDDHMoDCyQEL5sE083EkgwQyBhxGFHMM206DUixGxmE0wssbQjCQ4JCaFKFwgQTVAVVhQUwAVPIFJKrHfYYRwi6OCDzzuIJIFhXAD0EccPsYRiSyqKSDpFcWSMIcZRoBMkQyA2BGZDIKSYcggih8TRRg4VxM5QABVYYLxgwiev/PLMCxQQADs=a  R0lGODlhMAAiAPQAMf////f39+/v7+fn597e3tbW1s7OzsbGxr29vbW1ta2traWlpZycnJSUlIyMjISEhHt7e3Nzc2tra2NjY1paWlJSUkpKSkJCQjk5OSkpKRgYGAAAAAAAAAAAAAAAAAAAACH+AS4ALAAAAAAwACIAAAX/ICCOZGmeaKquY2AGLiuvMCAUBuHWc48Kh0iFInEYCb4kSQCxPBiMxkMigRQEgJiSFVBYHNGG0RiZOHjblWAiiY4fkDhEYoBp06dAWfyAQyKAgAwDaHgnB0RwgYASgQ0IhDuGJDAIFhMRVFSLEX8QCJJ4AQM5AgQHTZqqjBAOCQQEkWkCDRMUFQsICQ4Vm5maEwwHOAsPDTpKMAsUDlO4CssTcb+2DAp8YGCyNFoCEsZwFQ3QDRTTVBRS0g1QbgsCd5QAAwgIBwYFAwStzQ8UEdCKVchky0yVBw7YuXkAKt4IAg74vXHVagqFBRgXSCAyYWAVCH0SNhDTitCJfSL5/4RbAPKPhQYYjVCYYAvCP0BxEDaD8CheAAHNwqh8MMGPSwgLeJWhwHSjqkYI+xg4MMCEgQjtRvZ7UAYCpghMF7CxONOWJkYR+rCpY4JlVpVxKDwYWEactKW9mhYRtqCTgwgWEMArERSK1j5q//6T8KXonFsShpiJkAECgQYVjykooCVA0JGHEWNiYCHThTFeb3UkoiCCBgwGEKQ1kuAJlhFwhA71h5SukwUM5qqeCSGBgicEWkfNiWSERtBad4JNIBaQBaQah1ToyGZBAnsIuIJs1qnqiAIVjIE2gnAB1T5x0icgzXT79ipgMOOEH6HBbREBMJCeGEY08IoLAkzB1YYFwjxwSUGSNULQJnNUwRYlCcyEkALIxECAP9cNMMABYpRhy3ZsSLDaR70oUAiABGCkAxowCGCAAfDYIQACXoElGRsdXWDBdg2Y90IWktDYGYAB9PWHP0PMdFZaF07SQgAFNDAMAQg0QA1UC8xoZQl22JGFPgWkOUCOL1pZQyhjxinnnCWEAAA7a<	  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  R0lGODlhMAAjAPQAMf////f39+/v7+fn597e3tbW1s7OzsbGxr29vbW1ta2traWlpZycnJSUlIyMjISEhHt7e3Nzc2tra2NjY1paWlJSUkpKSkJCQjk5OTExMSkpKSEhIRgYGBAQEAgICAAAACH+AS4ALAAAAAAwACMAAAX/ICCOZGmeaKqubOu+gCDANBkIQ1EMQhAghFptYEAkEgjEwXBo7ISvweGgWCwUysPjwTgEoCafTySYIhYMxgLBjEQgCULvCw0QdAZdoVhUIJUFChISEAxYeQM1N1OMTAp+UwZ5eA4TEhFbDWYFdC4ECVMJjwl5BwsQa0umEhUVlhESDgqlBp0rAn5nVpBMDxeZDRQbHBgWFBSWDgtLBnFjKwRYCI9VqQsPs0YKEcMXFq0UEalFDWx4BAO2IwPjppAKDkrTWKYUGd7fEJJFEZpM00cOzCgh4EE8SaoWxKNixQooBRMyZMBwAYIRBhUgLDGS4MoBJeoANMhAgQsaCRZm/5lqaCUJhA4cNHjDoKEDBlJUHqkBlYBTiQUZNGjYMMxDhY3VWk6R4MEDBoMUak5AqoYBqANIBo4wcGGDUKIeLlzVZmWJggsVIkwAZaQSA3kdZzlKkIiEAAlDvW5oOkEBs488JTw44oeUIwdvVTFTUK7uiAAPgubt8GFDhQepqETAQCFU1UMGzlqAgFhUsAcCS0AO6lUDhw8xNRSbENGDhgWSHjWUe6ACbKITizmopZoBa6KvOwj9uuHDhwxyj3xekgDDhw5EvWKo0IB4iQLCOCC/njc7ZQ8UeGvza+ABZZgcxJNc4FO1gc0cOsCUrHevc8tdIMTIAhc4F198G2Qwwd8CBIQUAwEINABBBJUwR9R5wElgVRLwWODBBx4cGB8GEzDQIAo33CGJA8gh+JoH/clUgQU0YvDhdfmJdwEFC6Sjgg8yEPAABsPkh2F22cl2AQbn6QdTghTQ5eAJAQyQAAQV0MSBB9gRVZ4GE1mw5JZOAmiAVi1UWcAZDrDyZXYTeaOhA/bIVuIBPtKQ4h7ViYekUPdcEAEbzTzCRp5CADmAAwj+ORGPBcgwAAHo9ABGCYtm0ChwFHShlRiXhmHlkAcCiOeUodqQw5W0oXLAiamy4MOkjOyAaqxUymApDCEAADs=)FINDfindREPLreplz#FF7B39z#80F121z#DAFC33z#F42548   F   )monaco   white)heightwidthfonthighlightthicknessborderwidth
backgroundz#F7E0D4z#2321F1   
   )verdana   word)bgfgr   r   r   r   wrapc                       e Zd Zd Zd Zd Zy)Zonec                    t        t              }|j                  d       t        dt        |j                                  | _        t        dt        |         | _        t        |      | _	        | j                  j                  d       | j                  j                  d       t        |fi t        | _        | j                  || j                  |       t        t              }t        |fi t        | _        | j                  || j                   |       t#        d	      D ][  }| j                   j%                  t&        |   t&        |          | j                   j%                  d
t&        |   z   t(        |          ] y )Nr   )r   gif)formatdatar   )r   left)side   emph)
foreground)r   rootconfigr   imagesupperimageimageDimmedr   imgpackr	   fieldParamsfldinitScrollText
textParamstxtrange
tag_configcolors
emphColors)selfr1   initialFieldinitialTextfrmis         F/var/www/openai/venv/lib/python3.12/site-packages/nltk/app/nemo_app.py__init__zZone.__init__3   s   Dk

g
&u6%++-3HI
%UG:A&6"+{+C<8Dk*z*C;7qAHHq	fQi@HH 2z!}M     c                 \   t        |      }|j                  |j                         |j                  dd       |j                  ddd       |j                  |j                  	       |j                  d
|       |j                  d       t        ddd      j                  d       y )N)commandrighty)r)   fillr(   Tx)r)   expandrJ   )yscrollcommand1.0)rJ   r*   r   ridge)r   bdrelief)r   r.   yviewr4   setinsertr   )r>   rA   r9   contentsscls        rC   r7   zZone.initScrollTextD   s    n

399
%gC(fT4

#''
*

5(#cQ1W-222<rE   c                 ,   t        j                  t              | _        	 | j	                          | j
                  j                  | j                         y # t        j                  $ r) | j
                  j                  | j                         Y y w xY w)N)r1   )	itertoolscycler<   
colorCycle
substituter3   r.   r1   reerrorr2   r>   s    rC   refreshzZone.refreshN   sb    #//&1	4OOHHOO$**O-xx 	4HHOO$"2"2O3	4s   6A 9BBN)__name__
__module____qualname__rD   r7   r_    rE   rC   r#   r#   2   s    N"=4rE   r#   c                       e Zd Zd Zd Zy)FindZonec                 D   t        | j                        }| j                  j                  |d|j	                         z  d|j                         z         	 | j                  j                  d|z   d|j	                  d      z  d|j                  d      z         y #  Y y xY w)N1.0+%scr+   )nextrZ   r9   tag_addstartend)r>   mcolors      rC   addTagszFindZone.addTagsX   s    T__%	AGGI 5y15577JK	HH	AGGFO ;Yv=V	s   AB Bc           
         t         D ]?  }| j                  j                  |dd       | j                  j                  d|z   dd       A t        j                  d      | _        t        j                  | j                  j                  dd      d d t        j                        | _        	 t        j                  d| j                  j                  t        t              z         t        j                  | j                  j                  dt              d| j                  j                  t        t              d| j                  j                  t        d      d d t        j                        | _        | j                  j                  | j                  | j                  j                  dd             y #  | j
                  | _        Y VxY w)	NrN   rk   r+    z(?P<emph>%s)z	(?P<emph>))r<   r9   
tag_remover\   compilerexr6   get	MULTILINEr   r   rexSelsubrn   )r>   argsrm   s      rC   r[   zFindZone.substituteb   s4   EHHue4HHu=  ::b>::dhhll5%8"=r||L	#JJ~Y(IIJ** HHLL	2HHLLH5HHLL51#26	 DK 	dhhll5%&@A	#((DKs   *CF7 7GNr`   ra   rb   rn   r[   rc   rE   rC   re   re   W   s    BrE   re   c                       e Zd Zd Zd Zy)ReplaceZonec                 @   t         j                  j                  | j                  |j	                               }| j
                  j                  d|j                         | j                  z   z  d|j                         | j                  z   z         | j
                  j                  d|j                         | j                  z   z  |t        | j                               | xj                  t        |      |j                         |j                         z
  z
  z  c_        y )Nrg   )szru   ry   r   groupr9   deleterj   diffrk   rT   rh   rZ   len)r>   rl   ss      rC   rn   zReplaceZone.addTagsy   s    FFJJtyy!''),TYY./aeeg		>Q1R	
 		QWWY%:;QT__@UV		SVquuw233	rE   c                    | j                   j                  dd       | j                   j                  dt        j                   j	                  dd      d d        d| _        t        j                  d| j                  j	                  dd      d d       | _	        t        j                  j                  | j                  t        j                   j	                  dd      d d        y )NrN   rk   rq   r   z\\g<\1>)r9   r   rT   r   rv   r   rex0ry   r6   r   ru   rn   r^   s    rC   r[   zReplaceZone.substitute   s    u%rvvzz%7<=	HHZeU)CCR)HI	


4<<E5!9#2!>?rE   Nr{   rc   rE   rC   r}   r}   x   s    4@rE   r}   c                     t         j                  j                  t         j                         t        j                  j                  t        j                         y )N)r   r6   
after_idler_   rz)_s    rC   launchRefreshr      s.    FFbjj!FFbjj!rE   c                     t               at        j                  dd       t        j                  t               t        j                  dd       t        dt        t              a	t        j                  j                  dt               t        j                  j                  d	t               t        j                  j                  d
t               t        j                  d      t        _        t!        dt"        d      at        j                  d      at        j)                  dt               t        d        t        j+                          y )NFT)r   r      r   )r   r   r   z
<Button-1>z<ButtonRelease-1>z<B1-Motion>rp   r   z(?<!\\)\\([0-9]+)z<Key>)r
   r-   	resizabletitlewindowTitleminsizere   initialFindr@   r   r6   bindr   r\   rt   rx   r}   initialReplr   r   bind_allmainlooprc   rE   rC   appr      s    4DNN%tN,JJ{LLs1L%	&+{	3BFFKKm,FFKK#]3FFKK}-

2BI	V["	-B::*+DMM'=)$MMOrE   __main__r   )__doc__rX   r\   tkinterr   r   r   r   r   r   r	   r
   r   r   r   r@   r/   r<   r=   r5   r8   r#   re   r}   r   r   r`   __all__rc   rE   rC   <module>r      s     	 V V V,$ C# W K% O	
 Y	#
 

"4 "4JBt BB@$ @""
$ zE'rE   