Ë
    MÓ®j6 ã                   óÌ
  — d dl Z d dlZd dlZd dlZd dlmc mZ d dlm	Z	 d dl
­ d dlmZ d dlmZ d dlZd dlZd dlmZ dZdZd	Zd
ZdZe› d�Z e	d«      Z G d„ de«      Zdad„ Zd„ Zdefd„Z eefdedede!fd„Z"eefdede!dede!fd„Z#de$fd„Z%dede$fd„Z&efde	de	fd„Z'defd „Z(efd!e	defd"„Z)efd!e	fd#„Z*d$efd%„Z+dõd&e!fd'„Z,d(efd)„Z-d*„ Z.d+„ Z/defd,„Z0död.ed/e1fd0„Z2död.ed/e1fd1„Z3död.ed/e1fd2„Z4de1fd3„Z5defd4„Z6d5d6d7d8d9d:d;d<d=d>d?œ
Z7d÷d@ede1fdA„Z8dBefdC„Z9dDefdE„Z:d@efdF„Z;dBedGe!de1fdH„Z<dDede1fdI„Z=dDede1fdJ„Z>dK„ Z?dL„ Z@dMedefdN„ZAdO„ ZBdødPe!fdQ„ZCdRefdS„ZDdTZEd@ede1fdU„ZFded@efdV„ZGdRefdW„ZHdRefdX„ZIdRefdY„ZJdRefdZ„ZKdRefd[„ZLd\„ ZMd]„ ZNde1fd^„ZOde!fd_„ZPdùd`e!dae!dbe!fdc„ZQdúdde!fde„ZRdf„ ZSd÷dûdg„ZTdødPe!fdh„ZCdi„ ZUdRefdj„ZVdddd-dkœdl„ZWdddd-dkœdm„ZXde1fdn„ZYdüdoede1fdp„ZZdýdoedde!de1fdq„Z[de1fdr„Z\ds„ Z]dþdte^de1fdu„Z_dvede1fdw„Z`dÿdte^de1fdx„Za�d dDedye!de1fdz„Zbd{„ Zcdefd|„Zd�dd}e^de1fd~„Zed„ Zf�dd€e^d�e1fd‚„Zgdƒ„ Zhd„„ Zid…edefd†„Zjd@ed‡edekfdˆ„Zl�d d‰e!ddfdŠ„Zm�dd`e!dae!ddfd‹„Zn�ddŒe!fd�„Zo�ddŽe!d/e1de1fd�„Zpdefd�„Zqdede1fd‘„Zr�dded’e!de1fd“„Zsd”„ Ztd•„ Zud–„ Zv�dd—ed˜e!de1fd™„Zwdš„ Zxd›efdœ„Zyd�edezfdž„Z{dŸed e|defd¡„Z}d÷d¢„Z~�dd—edte^d£e^de1fd¤„Z�d	d¥ed¦ed§e1fd¨„Z€d©Z�dªZ‚d«Zƒd¬Z„d­Z…d®Z†d­Z‡d¯Zˆ e	e‰«      �j                  «       �j                  ZŒeŒd°z  Z�eŒd±z  ZŽeŒd²z  Z�e�fded³e!de!fd´„Z�dede!fdµ„Z‘�d
d¶e!de|fd·„Z’deke   fd¸„Z“�dd¹e|de!dºe!deke   fd»„Z”�d
de!d¶e!deke   fd¼„Z•eefdedede!fd½„Z–�ddedde!d¾e^fd¿„Z—dÀedefdÁ„Z˜dÂekdefdÃ„Z™ e �j4                  dÄe �j6                  «       e �j4                  dÅe �j6                  «      gZœ�ddde!d¾e^ddfdÆ„Z��ddde!ddfdÇ„ZždeŸe!e!f   fdÈ„Z dûdÉ„Z¡dûdÊ„Z¢de1fdË„Z£�ddte^de1fdÌ„Z¤defdÍ„Z¥dÎ„ Z¦de1fdÏ„Z§de1fdÐ„Z¨dûdÑ„Z©dede1fdÒ„Zªdede1fdÓ„Z«d(edefdÔ„Z¬d(edefdÕ„Z­dÖed×e!dØedDedef
dÙ„Z®�ddÖed×e!dÚedefdÛ„Z¯�d
dØedDedÖed×e!de!d¶e!deke   fdÜ„Z°de|ee	f   fdÝ„Z±�ddÞeke   dte^defdß„Z²dàeddfdá„Z³dàedâe	ddfdã„Z´däZµ�ddàedÀedte^defdå„Z¶�ddàedde!defdæ„Z·deddfdç„Z¸dede1fdè„Z¹déZºdêZ»�d
de!d¶e!defdë„Z¼de!defdì„Z½dÂekdefdí„Z¾d¹e|dØedDedÖed×e!de!deke   fdî„Z¿dØedDedÖed×e!de!deke   fdï„ZÀdØedDedÖed×e!de!d¶e!deke   fdð„ZÁdedØedDedÖede1f
dñ„ZÂdedØedDedÖede1f
dò„ZÃeÄdók(  r	 e€dô«       yy(  é    N)ÚPath)Ú*)ÚClient)ÚImage)Útap_one_pointz153.80.251.46i×  z	127.0.0.1i­  zru.ozon.fintech.financezE/ru.ozon.fintech.features.tabber.presentation.finance.FinanceActivityzui_dump.xmlc                   ó   — e Zd ZdZy)ÚActionCancelleduR   Ð”ÐµÐ¹Ñ�Ñ‚Ð²Ð¸Ðµ Ð¿Ð°Ð½ÐµÐ»Ð¸ Ð¿Ñ€Ð¸Ð½ÑƒÐ´Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾ Ð¾Ñ‚Ð¼ÐµÐ½ÐµÐ½Ð¾ Ð¸Ð· UI.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    ú#/var/www/api.ozpay.ru/ozpay/main.pyr	   r	      s   „ Ú\r   r	   c                 ó   — | a y)uY   ÐŸÐ¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÑƒ Ð¾Ñ‚Ð¼ÐµÐ½Ñ‹ (Ð²Ñ‹Ð·Ñ‹Ð²Ð°ÐµÑ‚Ñ�Ñ� Ð¿Ð°Ð½ÐµÐ»ÑŒÑŽ).N©Ú_action_cancel_hook)Úhooks    r   Úset_action_cancel_hookr      s
   € ð Ñr   c                  ó&   — t         �t        «        y y ©Nr   r   r   r   Úcheck_action_cancelledr   $   s   € ÜÐ&ÜÕð 'r   Úmsgc                 ó”   — t         j                   j                  «       j                  d«      }t        d|› d| › �«       t	        «        y )Nz%Y-%m-%d %H:%M:%Sú[z] )ÚdatetimeÚnowÚstrftimeÚprintr   )r   Útss     r   Úlogr!   )   s<   € Ü	×	Ñ	×	Ñ	Ó	 ×	)Ñ	)Ð*=Ó	>€BÜ	ˆAˆbˆT��C�5ˆ/ÔÜÕr   Údevice_nameÚadb_hostÚadb_portc           	      ót  — t        «        t        ||¬«      }t        | «      }t        | «      }|�|€t	        d| ›d|›d|›�«      ‚	 t        |«      }	 |j                  «       }|D ]+  }|j                  |› d|› �k(  sŒt        d|› d|› �«       |c S  	 ddl
}	 |j                  |t        |«      fd	¬
«      5  	 ddd«       	 |j                  ||«       |j                  |› d|› �«      }
|
€;|j                  «       D �cg c]  }|j                  ‘Œ }}t	        d|› d|› d|› �«      ‚t        d|› d|› �«       |
S # t        $ r Y Œów xY w# t        $ r g }Y ŒÂw xY w# 1 sw Y   Œ¢xY w# t        $ r}	t	        d|› d|› d|	› �«      ‚d}	~	ww xY w# t        $ r}	t        d|› d|› d|	› �«       Y d}	~	ŒÙd}	~	ww xY wc c}w )u:   ÐŸÐ¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒÑ�Ñ� Ðº Redroid Ñ‡ÐµÑ€ÐµÐ· ADB daemon.©ÚhostÚportNõ   Ð£ ÑƒÑ�Ñ‚Ñ€Ð¾Ð¹Ñ�Ñ‚Ð²Ð° u8    Ð½Ðµ ÑƒÐºÐ°Ð·Ð°Ð½Ñ‹ IP Ð¸Ð»Ð¸ Ð¿Ð¾Ñ€Ñ‚ Ð² Ð±Ð°Ð·Ðµ: ip=z, port=ú:uC   ÐŸÐ¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¾ Ðº ÑƒÐ¶Ðµ-Ñ�ÑƒÑ‰ÐµÑ�Ñ‚Ð²ÑƒÑŽÑ‰ÐµÐ¼Ñƒ Redroid: r   é   ©ÚtimeoutzRedroid u-    Ð½ÐµÐ´Ð¾Ñ�Ñ‚ÑƒÐ¿ÐµÐ½ (socket probe failed): u4   ÐŸÑ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ðµ: remote_connect Ð´Ð»Ñ� õ    Ð½Ðµ ÑƒÐ´Ð°Ð»Ñ�Ñ�: u8   Ð�Ðµ ÑƒÐ´Ð°Ð»Ð¾Ñ�ÑŒ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒÑ�Ñ� Ðº Redroid õ1   . ÐŸÐ¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ‹Ðµ ÑƒÑ�Ñ‚Ñ€Ð¾Ð¹Ñ�Ñ‚Ð²Ð°: u!   ÐŸÐ¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¾ Ðº Redroid: )r   Ú	AdbClientÚget_ipÚget_portÚRuntimeErrorÚintÚ	ExceptionÚdevicesÚserialr   ÚsocketÚcreate_connectionÚremote_connectÚdevice)r"   r#   r$   Úclientr'   r(   Ú	connectedÚdr8   Úexcr;   s              r   Úconnect_redroidr@   /   sH  € äÔÜ˜H¨8Ô4€FÜ�+Ó€DÜ�KÓ €Dà€|�t�|ÜÐ5°k°_ÐD|ð  ~Bð  }Eð  ELð  MQð  LTð  Uó  Vð  	VðÜ�4‹yˆð
Ø—N‘NÓ$ˆ	Øò 	ˆAØ�x‰x˜d˜V 1 T FÐ+Ó+ÜÐ[Ð\`Ð[aÐabÐcgÐbhÐiÔjØ’ñ	ó ðgØ×%Ñ% t¬S°«YÐ&7ÀÐ%ÓCñ 	Ø÷	ð
mØ×Ñ˜d DÔ)ð �]‰]˜d˜V 1 T FÐ+Ó,€FØ€~Ø'-§~¡~Ó'7Ö8 !�Q—X“XÐ8ˆ	Ð8ÜØFÀtÀfÈAÈdÈVð T>Ø>G¸[ðJó
ð 	
ô
 
Ð-¨d¨V°1°T°FÐ
;Ô<Ø€MøôI ò áðûô ò àŠ	ðú÷	ð 	ûäò gÜ˜X d V¨1¨T¨FÐ2_Ð`cÐ_dÐeÓfÐfûðgûô
 ò mÜÐDÀTÀFÈ!ÈDÈ6ÐQeÐfiÐejÐk×lÑlûðmüò
 9s~   ÁD: Á)E	 Á=E	 ÂE	 ÂE& Â7EÂ9E& ÃF Ã>F5Ä:	EÅEÅ	EÅEÅE#ÅE& Å&	FÅ/FÆFÆ	F2ÆF-Æ-F2r'   r(   c                 óœ  — ddl }| xs dj                  «       } 	 t        |«      }| st        d«      ‚| › d|› �}t        ||¬«      }	 |j                  «       D ]$  }|j                  |k(  sŒ|j                  d«        y	 	 	 |j                  | |fd
¬«      5  	 ddd«       	 |j                  | |«       |j                  |«      }|€;g }		 |j                  «       D �
cg c]  }
|
j                  ‘Œ }	}
t        d|› d|	› �«      ‚	 |j                  d«       y	# t        t        f$ r}t        d«      |‚d}~ww xY w# t        $ r Y ŒÂw xY w# 1 sw Y   Œ¯xY w# t        $ r}t        d|› d|› �«      |‚d}~ww xY w# t        $ r}t        d|› d|› �«      |‚d}~ww xY wc c}
w # t        $ r Y Œ¸w xY w# t        $ r}t        d|› d|› �«      |‚d}~ww xY w)ub   ÐŸÑ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ, Ñ‡Ñ‚Ð¾ host:port Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ÐµÐ½ Ñ‡ÐµÑ€ÐµÐ· ADB. Ð‘ÐµÐ· Ð·Ð°Ð¿Ð¸Ñ�Ð¸ Ð² Ð‘Ð”.r   NÚ u+   ÐŸÐ¾Ñ€Ñ‚ Ð´Ð¾Ð»Ð¶ÐµÐ½ Ð±Ñ‹Ñ‚ÑŒ Ñ‡Ð¸Ñ�Ð»Ð¾Ð¼u   Ð£ÐºÐ°Ð¶Ð¸Ñ‚Ðµ IPr*   r&   úecho okTr+   r,   u0   Ð�Ðµ ÑƒÐ´Ð°Ð»Ð¾Ñ�ÑŒ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒÑ�Ñ� Ðº ú: u   ADB connect Ðº r.   r/   u	   ADB Ð½Ð° u    Ð½Ðµ Ð¾Ñ‚Ð²ÐµÑ‡Ð°ÐµÑ‚: )r8   Ústripr4   Ú	TypeErrorÚ
ValueErrorr3   r0   r6   r7   Úshellr5   r9   r:   r;   )r'   r(   r#   r$   r8   r?   r7   r<   r;   r=   Úitems              r   Ú	probe_adbrJ   a   s/  € ãàŠJ�B×ÑÓ€DðSÜ�4‹yˆñ ÜÐ.Ó/Ð/àˆv�Q�t�fÐ€FÜ˜H¨8Ô4€FðØ—n‘nÓ&ò 	ˆFØ�}‰} Ó&Ø—‘˜YÔ'Ùñ	ðhØ×%Ñ% t¨T l¸AÐ%Ó>ñ 	Ø÷	ð
YØ×Ñ˜d DÔ)ð �]‰]˜6Ó"€FØ€~Øˆ	ð	Ø17·±Ó1AÖB¨˜Ÿ›ÐBˆIÐBô Ø>¸v¸hð G>Ø>G¸[ðJó
ð 	
ð
WØ�‰�YÔð øôW ”zÐ"ò SÜÐHÓIÈsÐRûðSûô ò Ùðú÷	ð 	ûäò hÜÐMÈfÈXÐUWÐX[ÐW\Ð]Ó^ÐdgÐgûðhûô
 ò YÜ˜_¨V¨HÐ4HÈÈÐNÓOÐUXÐXûðYüò CøÜò 	Ùð	ûô ò WÜ˜Y v hÐ.FÀsÀeÐLÓMÐSVÐVûðWús¹   šD Á"D6 Á*D6 Á=D6 Â E ÂEÂE Â E4 ÃF ÃFÃ-F ÄF+ ÄD3Ä"D.Ä.D3Ä6	EÅEÅEÅ
E Å	E1ÅE,Å,E1Å4	FÅ=FÆFÆF Æ	F(Æ'F(Æ+	GÆ4GÇGÚreturnc                 óR   — | j                  «       }|st        d«      ‚t        |«      S )u_   Ð¡Ð½Ñ�Ñ‚ÑŒ Ñ�ÐºÑ€Ð¸Ð½ÑˆÐ¾Ñ‚ Ñ�ÐºÑ€Ð°Ð½Ð° ÑƒÑ�Ñ‚Ñ€Ð¾Ð¹Ñ�Ñ‚Ð²Ð° Ð¸ Ð²ÐµÑ€Ð½ÑƒÑ‚ÑŒ PNG-Ð±Ð°Ð¹Ñ‚Ñ‹.u.   screencap Ð²ÐµÑ€Ð½ÑƒÐ» Ð¿ÑƒÑ�Ñ‚Ð¾Ð¹ Ð¾Ñ‚Ð²ÐµÑ‚)Ú	screencapr3   Úbytes)r;   Údatas     r   Úscreencap_pngrP   –   s)   € à×ÑÓ€DÙÜÐKÓLÐLÜ�‹;Ðr   c                 ó0   — t        | ¬«      }t        |«      S )uv   ÐŸÐ¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒÑ�Ñ� Ðº ÑƒÑ�Ñ‚Ñ€Ð¾Ð¹Ñ�Ñ‚Ð²Ñƒ Ð¸ Ð²ÐµÑ€Ð½ÑƒÑ‚ÑŒ PNG-Ñ�ÐºÑ€Ð¸Ð½ÑˆÐ¾Ñ‚ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ³Ð¾ Ñ�ÐºÑ€Ð°Ð½Ð°.©r"   )r@   rP   ©r"   r;   s     r   Úcapture_screenrT   ž   s   € ä¨Ô5€FÜ˜Ó Ð r   Ú
local_pathc                 óô   — t        «        d}	 | j                  d«       | j                  |t        |«      «       |j                  «       st        d|› �«      ‚|S # t        $ r}t        d|› �«       ‚ d}~ww xY w)uj   ÐŸÐ¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ XML-Ð´Ð°Ð¼Ð¿ UI hierarchy Ñ� ÑƒÑ�Ñ‚Ñ€Ð¾Ð¹Ñ�Ñ‚Ð²Ð° Ð¸ Ñ�Ð¾Ñ…Ñ€Ð°Ð½Ð¸Ñ‚ÑŒ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾.z/sdcard/ui.xmlzuiautomator dump /sdcard/ui.xmlu(   uiautomator dump Ð½Ðµ Ñ�Ñ€Ð°Ð±Ð¾Ñ‚Ð°Ð»: Nu'   Ð¤Ð°Ð¹Ð» Ð´Ð°Ð¼Ð¿Ð° Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½: )r   rH   ÚpullÚstrr5   r   ÚexistsÚFileNotFoundError)r;   rU   Úremote_pathr?   s       r   Údump_ui_xmlr\   ¤   s}   € äÔØ"€KðØ�‰Ð6Ô7Ø�‰�K¤ Z£Ô1ð
 ×ÑÔÜÐ"IÈ*ÈÐ VÓWÐWàÐøô ò ÜÐ8¸¸Ð>Ô?Øûðús   Ž,A Á	A7Á#A2Á2A7c                 ó.   — t        | «      }t        |«      S )ue   ÐžÐ´Ð½Ð° Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ�: Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ Ñ‚ÐµÐºÑ�Ñ‚ Ñ�Ñ€ÐµÐ´Ñ‹ Ð¸Ð· XML-Ð´Ð°Ð¼Ð¿Ð° UI hierarchy.)r\   Úread_dump_text)r;   Ú	dump_paths     r   Úget_dump_textr`   ¶   s   € ä˜FÓ#€IÜ˜)Ó$Ð$r   Úpathc                 óÐ  — t        j                  | «      }|j                  «       }g }|j                  «       D ]‰  }dD ]‚  }|j                  j                  |«      }|sŒ!|j                  «       sŒ2dj                  |j                  «       «      }t        |«      dk\  sŒ`|j                  d«      rŒr|j                  |«       Œ„ Œ‹ dj                  t        j                  |«      «      S )uH   Ð’ÐµÑ€Ð½ÑƒÑ‚ÑŒ Ñ‡Ð¸Ñ�Ñ‚Ñ‹Ð¹ Ñ‚ÐµÐºÑ�Ñ‚ Ð¸Ð· XML-Ð´Ð°Ð¼Ð¿Ð° UI hierarchy.©Útextúcontent-descú é   úandroid.ú
)ÚETÚparseÚgetrootÚiterÚattribÚgetrE   ÚjoinÚsplitÚlenÚ
startswithÚappendÚdictÚfromkeys)ra   ÚtreeÚrootÚtextsÚnodeÚattrÚvalueÚcleans           r   r^   r^   ¼   s²   € ä�8‰8�D‹>€DØ�<‰<‹>€Dà€EØ—	‘	“ò (ˆØ,ò 	(ˆDØ—K‘K—O‘O DÓ)ˆEÚ˜Ÿ™�ØŸ™ §¡£Ó/�Ü�u“: “?¨5×+;Ñ+;¸JÕ+GØ—L‘L Õ'ñ	(ð(ð �9‰9”T—]‘] 5Ó)Ó*Ð*r   c                 óL   — t        j                  | «      }|j                  «       S )uC   Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ XML root Ð¸Ð· Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð´Ð°Ð¼Ð¿Ð°.)rj   rk   rl   )ra   rw   s     r   Úget_dump_rootr   Í   s   € ä�8‰8�D‹>€DØ�<‰<‹>Ðr   Úboundsc                 óæ   — | sy	 t        t        t        j                  d| «      «      \  }}}}||z   dz  ||z   dz  f}||z   dz  |t        d||z
  dz  «      z   f}||||||dœS # t        $ r Y yw xY w)u„   ÐŸÐ°Ñ€Ñ�Ð¸Ñ‚ bounds Ð¸Ð· XML Ð²Ð¸Ð´Ð° 'left top right bottom' Ð¸ Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ Ñ†ÐµÐ½Ñ‚Ñ€ Ð¸ Ð²ÐµÑ€Ñ…Ð½ÑŽÑŽ Ñ�ÐµÑ€ÐµÐ´Ð¸Ð½Ñƒ.Nz-?\d+rg   é
   )ÚleftÚtopÚrightÚbottomÚcenterÚ
top_center)Úmapr4   ÚreÚfindallrG   Úmax)r€   rƒ   r„   r…   r†   r‡   rˆ   s          r   Úparse_boundsr�   Ó   s£   € áØðÜ#&¤s¬B¯J©J°xÀÓ,HÓ#IÑ ˆˆc�5˜&ð �e‰| Ñ! C¨&¡L°QÑ#6Ð7€FØ˜%‘< AÑ% s¬S°°V¸c±\ÀbÑ4HÓ-IÑ'IÐJ€JàØØØØØ ñð øô	 ò Ùðús   …)A$ Á$	A0Á/A0Úmin_yc                 óx   — | sy| d   | d   z
  }| d   | d   z
  }|dk  s|dk  ry| d   \  }}|d	k  s||k  ry||fS )
u~   Ð¢Ð¾Ñ‡ÐºÐ° Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ� Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ð´Ð»Ñ� Ñ€ÐµÐ°Ð»ÑŒÐ½Ð¾ Ð²Ð¸Ð´Ð¸Ð¼Ð¾Ð³Ð¾ ÑƒÐ·Ð»Ð°, Ð½Ðµ [0,0] Ð¸ Ð½Ðµ Ñ�Ñ‚Ð°Ñ‚ÑƒÑ�Ð±Ð°Ñ€.Nr…   rƒ   r†   r„   é(   é   r‡   é   r   )r€   rŽ   ÚwidthÚheightÚxÚys         r   Úusable_tap_pointr—   ç   sd   € áØØ�7‰O˜f V™nÑ,€EØ�HÑ  u¡Ñ-€FØˆr‚z�V˜b’[ØØ�(Ñ�D€A€qØˆ2‚v��U’ØØˆqˆ6€Mr   r|   c                 ó`  — | sy| j                  «       j                  «       }t        j                  d|t        j                  ¬«      }|r|j                  d«      j                  «       n|}ddddd	d
dddddœ
}ddddd	d
dddddœ
}t        j                  d|«      r|S ||v r||   S ||v r||   S y)uf   Normalize UI text like 'Ñ†Ð¸Ñ„Ñ€Ð° 0', 'Ñ†Ð¸Ñ„Ñ€Ð° Ð½Ð¾Ð»ÑŒ', 'digit zero' to a single digit '0'..'9'.Nu   (?:Ñ†Ð¸Ñ„Ñ€Ð°\s*|digit\s*)?(.*)©Úflagsé   Ú0Ú1Ú2Ú3Ú4Ú5Ú6Ú7Ú8Ú9)
ÚzeroÚoneÚtwoÚthreeÚfourÚfiveÚsixÚsevenÚeightÚnine)
u   Ð½Ð¾Ð»ÑŒu   Ð¾Ð´Ð¸Ð½u   Ð´Ð²Ð°u   Ñ‚Ñ€Ð¸u   Ñ‡ÐµÑ‚Ñ‹Ñ€Ðµu   Ð¿Ñ�Ñ‚ÑŒu
   ÑˆÐµÑ�Ñ‚ÑŒu   Ñ�ÐµÐ¼ÑŒu   Ð²Ð¾Ñ�ÐµÐ¼ÑŒu   Ð´ÐµÐ²Ñ�Ñ‚ÑŒz[0-9])rE   ÚlowerrŠ   Ú	fullmatchÚ
IGNORECASEÚgroup)r|   ÚsÚmÚcoreÚen_wordsÚru_wordss         r   Ú_text_to_digitr¹   õ   sÉ   € áØØ�‰‹×ÑÓ€Aä
�‰Ð7¸Ä"Ç-Á-ÔP€AÙ!"ˆ1�7‰7�1‹:×ÑÔ¨€Dð ˜C¨°cÀ3Ø˜C¨#¸ÀSñ€Hð
  S°CÀ3ÐX[Ø s¸ÈSÐbeñ€Hô 
‡|�|�H˜dÔ#ØˆàˆxÑØ˜‰~ÐØˆxÑØ˜‰~ÐØr   c                 ón  — dx}}t        |«      dk(  rû|d   }t        |t        t        f«      r+t        |«      dk\  rt	        |d   «      t	        |d   «      }}nàt        |t
        «      rÐd|v r<t        |d   t        t        f«      r#t	        |d   d   «      t	        |d   d   «      }}n�d|v r<t        |d   t        t        f«      r#t	        |d   d   «      t	        |d   d   «      }}nPd|v rLd|v rHt	        |d   «      t	        |d   «      }}n+t        |«      dk\  r	 t	        |d   «      t	        |d   «      }}|�|€t        d	|› �«       yt        «        t        d
|› d|› �«       	 | j                  d|› d|› �«       y# t        $ r dx}}Y ŒVw xY w# t        $ r}t        d|› �«       Y d}~yd}~ww xY w)up  Ð�Ð°Ð¶Ð¸Ð¼Ð°ÐµÑ‚ Ð½Ð° ÐºÐ¾Ð¾Ñ€Ð´Ð¸Ð½Ð°Ñ‚Ñƒ Ð½Ð° Ñ�ÐºÑ€Ð°Ð½Ðµ.

    ÐŸÐ¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÐµÑ‚ Ð²Ñ‹Ð·Ð¾Ð²Ñ‹ Ð² Ñ‚Ñ€Ñ‘Ñ… Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð°Ñ…:
    - `tap_screen_point(device, x, y)`
    - `tap_screen_point(device, (x, y))` Ð¸Ð»Ð¸ `tap_screen_point(device, [x, y])`
    - `tap_screen_point(device, bounds_dict)` Ð³Ð´Ðµ `bounds_dict` â€” Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚ `parse_bounds()`
    Nr›   r   rg   r‡   rˆ   rƒ   r„   z+tap_screen_point: invalid coordinates args=ztap_screen_point: x=z y=z
input tap rf   ztap failed: )
rr   Ú
isinstanceÚtupleÚlistr4   ru   r5   r!   r   rH   )r;   Úargsr•   r–   Úvr?   s         r   Útap_screen_pointrÀ     s»  € ð €L€AˆÜ
ˆ4ƒy�A‚~Ø�‰GˆÜ�aœ%¤˜Ô'¬C°«F°aªKÜ�q˜‘t“9œc ! A¡$›iˆq‰AÜ˜œ4Ô à˜1‰}¤¨A¨h©K¼%Ä¸Ô!GÜ˜1˜X™; q™>Ó*¬C°°(±¸A±Ó,?�1‘Ø Ñ"¤z°!°L±/ÄEÌ4À=Ô'QÜ˜1˜\™?¨1Ñ-Ó.´°A°l±OÀAÑ4FÓ0G�1‘ð ˜Q‘; 5¨A¡:Ü˜q ™y›>¬3¨q°©x«=�q‘AÜ	ˆT‹�aŠð	Ü�t˜A‘w“<¤ T¨!¡W£ˆqˆAð 	€y�A�IÜÐ9¸$¸Ð@ÔAØäÔÜÐ
˜q˜c  Q CÐ(Ô)ð"Ø�‰�z !  A a SÐ)Õ*øô ò 	ØˆLˆA’ð	ûô ò "Üˆl˜3˜%Ð ×!Ñ!ûð"ús*   ÄF  Å(F Æ FÆFÆ	F4ÆF/Æ/F4c                 óš   — t        «        t        d«       	 | j                  d«       y# t        $ r}t        d|› �«       Y d}~yd}~ww xY w)u)   Ð�Ð°Ð¶Ð¸Ð¼Ð°ÐµÑ‚ ÐºÐ½Ð¾Ð¿ÐºÑƒ Ð½Ð°Ð·Ð°Ð´.zpress_back: sending keyevent 4zinput keyevent 4zpress_back failed: N)r   r!   rH   r5   )r;   r?   s     r   Ú
press_backrÂ   <  sF   € äÔÜÐ(Ô)ð)Ø�‰Ð'Õ(øÜò )ÜÐ! # Ð'×(Ñ(ûð)ús   —) ©	A
²AÁA
c                 ó2   — t        | ¬«      }t        |«       y)up   ÐŸÐ¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒÑ�Ñ� Ðº ÑƒÑ�Ñ‚Ñ€Ð¾Ð¹Ñ�Ñ‚Ð²Ñƒ Ð¸ Ð½Ð°Ð¶Ð°Ñ‚ÑŒ Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð½ÑƒÑŽ ÐºÐ½Ð¾Ð¿ÐºÑƒ Â«Ð�Ð°Ð·Ð°Ð´Â».rR   N)r@   rÂ   rS   s     r   Úpress_device_backrÄ   F  s   € ä¨Ô5€FÜˆvÕr   FÚtext_patternÚexactc           
      óô  — t        | «      }t        d|› �«       t        |«      }t        j                  |dd¬«      }t        d|dd › �«       g }g }g }	|j                  «       D �]6  }
|D �]-  }|
j                  j                  |«      }|€Œ"dj                  |j                  «       «      }|r|j                  d	«      rŒU|	j                  |«       	 |r"|j                  «       |j                  «       k(  }n(t        j                  ||t        j                  ¬
«      du}|sŒ¶t#        |
j                  j                  d«      «      }|€ŒÝ|d   }|d   dk(  r-|d   dk(  r%t        d|› d�«       |j                  |d|f«       �Œ|j                  ||d   |f«       �Œ0 �Œ9 |r%|d   \  }}}t        d|›d|› d|› d|› �«       |||fS |r%|d   \  }}}t        d|›d|› d|› d|› �«       |||fS |	rBdj                  t%        t&        j)                  |	«      «      dd «      }t        d|›d|› �«       yt        d|›d�«       y# t        j                   $ r$ |j                  «       |j                  «       v }Y �ŒYw xY w)uƒ   Ð˜Ñ‰ÐµÑ‚ UI-Ñ�Ð»ÐµÐ¼ÐµÐ½Ñ‚ Ð¿Ð¾ Ñ‚ÐµÐºÑ�Ñ‚Ñƒ/description Ð² Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¼ Ð´Ð°Ð¼Ð¿Ðµ Ð¸ Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ (text, center, attr).z#find_ui_element_by_text: dump_path=ÚunicodeÚxml)ÚencodingÚmethodz'find_ui_element_by_text: dump preview:
NiÐ  rf   rh   r™   r€   r‡   r   r›   z find_ui_element_by_text: found 'z7' but center is (0,0), marking as zero-center candidate©r   r   rˆ   z!find_ui_element_by_text: pattern=z -> found 'z'='z' at top_center=z! -> found zero-center candidate 'ú, é   z not found. candidates=z# not found. dump has no text fields)r\   r!   r   rj   Útostringrm   rn   ro   rp   rq   rs   rt   r°   rŠ   Úsearchr²   Úerrorr�   r½   ru   rv   )r;   rÅ   ÚattrsrÆ   r_   rx   Ú	dump_textÚmatchesÚmatches_zeroÚcandidate_textsrz   r{   r|   rd   Úokr€   r‡   Ú	tap_pointÚpreviews                      r   Úfind_ui_element_by_textrÚ   L  sË  € ä˜FÓ#€IÜÐ
-¨i¨[Ð9Ô:Ü˜Ó#€Dä—‘˜D¨9¸UÔC€IÜÐ
2°9¸U¸dÐ3CÐ2DÐEÔFà€GØ€LØ€Oà—	‘	“ó ?ˆØó 	?ˆDØ—K‘K—O‘O DÓ)ˆEØˆ}ØØ—8‘8˜EŸK™K›MÓ*ˆDÙ˜4Ÿ?™?¨:Ô6ØØ×"Ñ" 4Ô(ð:ÙØŸ™›¨×);Ñ);Ó)=Ñ=‘BäŸ™ <°¼R¿]¹]ÔKÐSWÐW�Bñ Øä! $§+¡+§/¡/°(Ó";Ó<ˆFØˆ~Øà˜HÑ%ˆFØ�a‰y˜AŠ~ &¨¡)¨q¢.ÜÐ6°t°fÐ<sÐtÔuØ×#Ñ# T¨6°4Ð$8Ô9Ùà�N‰N˜D &¨Ñ"6¸Ð=Ö>ò=	?ð?ñB Ø '¨¡
Ñˆˆi˜ÜÐ/°Ð/?¸{È4È&ÐPSÐTXÐSYÐYiÐjsÐitÐuÔvØ�Y Ð$Ð$ñ Ø ,¨Q¡Ñˆˆi˜ÜÐ/°Ð/?Ð?`ÐaeÐ`fÐfiÐjnÐioÐoð  AJð  @Kð  Lô  	MØ�Y Ð$Ð$áØ—)‘)œD¤§¡¨Ó!?Ó@ÀÀ"ÐEÓFˆÜÐ/°Ð/?Ð?VÐW^ÐV_Ð`Ôað ô 	Ð/°Ð/?Ð?bÐcÔdØøôE —8‘8ò :Ø!×'Ñ'Ó)¨T¯Z©Z«\Ð9“ð:ús   ÃAI É 3I7É6I7c                 ó°  — d}	 t        | |||¬«      }|sy|\  }}}t        |t        t        f«      rut	        |«      dk\  rg|d   dk(  r_|d   dk(  rWt        d|› d|dz   › d	�«       	 | j                  d
«       t        j                  d«       |dz  }|dkD  rt        d|› d�«       yŒ¤t        | g|¢­Ž  y# t        $ r}t        d|› �«       Y d}~ŒYd}~ww xY w)u‡   Ð�Ð°Ñ…Ð¾Ð´Ð¸Ñ‚ UI-Ñ�Ð»ÐµÐ¼ÐµÐ½Ñ‚ Ð¿Ð¾ Ñ‚ÐµÐºÑ�Ñ‚Ñƒ/description Ð¸ Ð½Ð°Ð¶Ð¸Ð¼Ð°ÐµÑ‚ Ð² Ð²ÐµÑ€Ñ…Ð½ÑŽÑŽ Ñ�ÐµÑ€ÐµÐ´Ð¸Ð½Ñƒ Ñ�Ð»ÐµÐ¼ÐµÐ½Ñ‚Ð°.r   T©rÒ   rÆ   Frg   r›   z"find_and_tap_ui_element: element 'z.' center is (0,0), swiping to reveal (attempt ú)úinput swipe 700 900 700 300z'find_and_tap_ui_element: swipe failed: Nç       @rÎ   z)find_and_tap_ui_element: giving up after ú swipes)rÚ   r»   r¼   r½   rr   r!   rH   r5   ÚtimeÚsleeprÀ   )	r;   rÅ   rÒ   rÆ   ÚattemptsÚresultÚ_rØ   r?   s	            r   Úfind_and_tap_ui_elementræ   �  s  € ð €HØ
Ü(¨°ÀUÐRWÔXˆÙØà ‰ˆˆ9�aä�i¤%¬ Ô/´C¸	³NÀaÒ4GÈIÐVWÉLÐ\]ÒL]ÐbkÐlmÑbnÐrsÒbsÜÐ4°\°NÐBpÐqyÐz{Ñq{Ðp|Ð|}Ð~ÔðEØ—‘Ð:Ô<ô �J‰J�sŒOØ˜‰MˆHà˜"Š}ÜÐ?À¸zÈÐQÔRØØä˜Ð, )Ó,Øøô ò EÜÐ=¸c¸UÐC×DÑDûðEús   Á&B4 Â4	CÂ=CÃCc                 ó    — t        | |||¬«      S )uU   Ð¡Ð¾Ð²Ð¼ÐµÑ�Ñ‚Ð¸Ð¼Ð°Ñ� Ð¾Ð±ÐµÑ€Ñ‚ÐºÐ° Ð´Ð»Ñ� Ñ�Ñ‚Ð°Ñ€Ð¾Ð³Ð¾ Ð²Ñ‹Ð·Ð¾Ð²Ð° tap_by_text.rÜ   )ræ   )r;   rÅ   rÒ   rÆ   s       r   Útap_by_textrè   ª  s   € ä" 6¨<¸uÈEÔRÐRr   c                 ó’  ‡‡— t        j                  dt         j                  ¬«      Št        j                  dt         j                  ¬«      Šd}	 	 t        t	        | «      «      }t        | «      \  }}g }g }d}|j                  «       D �]k  }	g }
d	D ]f  }|	j                  j                  |«      xs d
}dj                  |j                  «       «      }|sŒD|j                  d«      rŒV|
j                  |«       Œh |
rt        ˆfd„|
D «       «      sŒˆt!        |	j                  j                  d«      «      }|sŒ¯|d   \  }}|dk(  r|dk(  rd}ŒÄt#        |d   |d   z
  «      }t#        |d   |d   z
  «      }|dk  s|dk  rŒ÷||z  |f}t        ˆfd„|
D «       «      r|j                  |«       ||dz  k\  s�Œ-d|cxk  r
|dz  k  s�Œ=n �ŒAt%        |d   |d   «      |dz  k  s�Œ[|j                  |«       �Œn |rt%        |d„ ¬«      d   nd}|rt%        |d„ ¬«      d   nd}|rlt%        |d   |d   «      }t'        |d   |d   «      }|d   |d   z   dz  }||z   dz  }t        d |› d!|› d"|d   › d#|› d$|d   › d#|› d%�«       t)        | ||«       y|r�t%        |d   |d   «      }t'        |d   |d   «      }||z
  }|d   t'        d&t#        |d   |d   z
  «      d'z  «      z   }|t'        d(t+        |d)z  «      «      z   }t        d*|› d!|› d"|d   › d#|› d$|d   › d#|› d%�«       t)        | ||«       y|rD|d+k  r?t        d,|dz   › �«       	 | j-                  d-«       t/        j0                  d/«       |dz  }�Œ&t        d0«       y# t
        $ r}t        d|› �«       Y d}~yd}~ww xY w# t
        $ r}t        d.|› �«       Y d}~Œhd}~ww xY w)1ux  ÐžÑ‚ÐºÑ€Ñ‹Ð²Ð°ÐµÑ‚ Â«ÐžÑ�Ð½Ð¾Ð²Ð½Ð¾Ð¹ Ñ�Ñ‡Ñ‘Ñ‚Â» Ñ‚Ð°Ð¿Ð¾Ð¼ Ð¿Ð¾ Ñ�Ð°Ð¼Ð¾Ð¼Ñƒ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÑƒ, Ð½Ðµ Ð¿Ð¾ Ñ†ÐµÐ½Ñ‚Ñ€Ñƒ ÑˆÐ¸Ñ€Ð¾ÐºÐ¾Ð¹ ÐºÐ°Ñ€Ñ‚Ð¾Ñ‡ÐºÐ¸.

    Ð¦ÐµÐ½Ñ‚Ñ€ Ð²Ð¸Ð´Ð¶ÐµÑ‚Ð° Ð¿Ð¾Ð¿Ð°Ð´Ð°ÐµÑ‚ Ð² Ñ�Ð¾Ñ�ÐµÐ´Ð½Ð¸Ð¹ Ñ�Ð»ÐµÐ¼ÐµÐ½Ñ‚ Ñ�Ð¿Ñ€Ð°Ð²Ð° (ÐºÐ°Ñ€ÑƒÑ�ÐµÐ»ÑŒ / Ð´Ñ€ÑƒÐ³Ð°Ñ� Ð¿Ð»Ð¸Ñ‚ÐºÐ°).
    Ð–Ð¼Ñ‘Ð¼ Ñ�ÐµÑ€ÐµÐ´Ð¸Ð½Ñƒ Ñ‚ÐµÐºÑ�Ñ‚Ð° Â«ÐžÑ�Ð½Ð¾Ð²Ð½Ð¾Ð¹ Ñ�Ñ‡Ñ‘Ñ‚Â».
    u   ÐžÑ�Ð½Ð¾Ð²Ð½Ð¾Ð¹\s+Ñ�Ñ‡[ÐµÑ‘]Ñ‚r™   u'   ^\s*ÐžÑ�Ð½Ð¾Ð²Ð½Ð¾Ð¹\s+Ñ�Ñ‡[ÐµÑ‘]Ñ‚\s*$r   Tztap_main_account: dump failed: NFrc   rB   rf   rh   c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr   )rÐ   )Ú.0ÚpÚpatterns     €r   ú	<genexpr>z#tap_main_account.<locals>.<genexpr>Ì  s   øè ø€ Ò#E¸! G§N¡N°1×$5Ñ#Eùó   ƒr€   r‡   r…   rƒ   r†   r„   r’   r‚   c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr   )Úmatch)rë   rì   Úexact_res     €r   rî   z#tap_main_account.<locals>.<genexpr>Ý  s   øè ø€ Ò4¨�8—>‘> !×$Ñ4ùrï   ç      à?éF   gš™™™™™á?ç333333ã?c                 ó   — | d   S ©Nr   r   ©rI   s    r   ú<lambda>z"tap_main_account.<locals>.<lambda>æ  s
   € °$°q±'€ r   ©Úkeyr›   c                 ó   — | d   S r÷   r   rø   s    r   rù   z"tap_main_account.<locals>.<lambda>ç  s
   € °°Q±€ r   rg   ztap_main_account: title tap (rÍ   z
) bounds=[ú,z][ú]r�   é   r‘   ç)\�Âõ(Ì?z'tap_main_account: left-upper card tap (rÎ   uA   tap_main_account: Ñ�Ð»ÐµÐ¼ÐµÐ½Ñ‚ Ð²Ð½Ðµ Ñ�ÐºÑ€Ð°Ð½Ð°, Ñ�Ð²Ð°Ð¹Ð¿ rÞ   z tap_main_account: swipe failed: rß   uA   tap_main_account: Â«ÐžÑ�Ð½Ð¾Ð²Ð½Ð¾Ð¹ Ñ�Ñ‡Ñ‘Ñ‚Â» Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½)rŠ   Úcompiler²   r   r\   r5   r!   Ú_device_screen_sizerm   rn   ro   rp   rq   rs   rt   Úanyr�   ÚabsÚminrŒ   rÀ   r4   rH   rá   râ   )r;   rã   rx   r?   r“   r”   Úexact_boxesÚ
card_boxesÚany_zerorz   Úpartsr{   r|   rd   r€   ÚcxÚcyÚbox_wÚbox_hrI   ÚtitleÚcardr„   r†   Útap_xÚtap_yrò   rí   s                             @@r   Útap_main_accountr  ¯  s'  ù€ ô �j‰jÐ;Ä2Ç=Á=ÔQ€GÜ�z‰zÐDÌBÏMÉMÔZ€HØ€Hà
ð	Ü ¤¨VÓ!4Ó5ˆDô
 ,¨FÓ3‰ˆˆvØˆØˆ
Øˆà—I‘I“Kó 	(ˆDØˆEØ0ò '�ØŸ™Ÿ™¨Ó-Ò3°�Ø—x‘x §¡£Ó.�Ú §¡°
Õ ;Ø—L‘L Õ&ð	'ñ
 ¤Ó#E¸uÔ#EÔ EØä! $§+¡+§/¡/°(Ó";Ó<ˆFÙØØ˜HÑ%‰FˆB�Ø�QŠw˜2 š7Ø�Øä˜˜w™¨&°©.Ñ8Ó9ˆEÜ˜˜xÑ(¨6°%©=Ñ8Ó9ˆEØ�rŠz˜U RšZØà˜E‘M 6Ð*ˆDÜÓ4¨eÔ4Ô4Ø×"Ñ" 4Ô(à˜ ™Ô$Ø˜%Ô0 6¨D¡=×0Ð0Ü˜˜u™ v¨hÑ'7Ó8¸6ÀC¹<ÔGà×!Ñ! $Ö'ð?	(ñB BM”�KÑ%9Ô:¸1Ò=ÐRVˆÙ?IŒs�:Ñ#7Ô8¸Ò;ÈtˆáÜ�e˜E‘l E¨(¡OÓ4ˆCÜ˜˜u™ u¨X¡Ó7ˆFØ˜6‘] U¨7¡^Ñ3¸Ñ9ˆEØ˜6‘\ aÑ'ˆEÜØ/°¨w°b¸¸ð @Ø  ™=˜/¨¨3¨%¨r°%¸±.Ð1AÀÀ6À(È!ðMôô ˜V U¨EÔ2ØáÜ�d˜5‘k 4¨¡>Ó2ˆCÜ˜˜e™ d¨8¡nÓ5ˆFØ˜S‘LˆEà˜‘L¤3 r¬3¨t°G©}¸tÀF¹|Ñ/KÓ+LÐPQÑ+QÓ#RÑRˆEØœ#˜b¤# e¨d¡lÓ"3Ó4Ñ4ˆEÜØ9¸%¸ÀÀ5À'ð JØ ™<˜.¨¨#¨¨b°°g±°¸qÀÀÈðKôô ˜V U¨EÔ2Øá˜ 2šÜÐSÐT\Ð_`ÑT`ÐSaÐbÔcð>Ø—‘Ð:Ô;ô �J‰J�sŒOØ˜‰MˆHÙäÐOÔPØøôe ò 	ÜÐ1°#°Ð7Ô8Üûð	ûôV ò >ÜÐ6°s°eÐ<×=Ñ=ûð>ús0   ÁN ÍN% Î	N"Î
NÎN"Î%	OÎ.OÏOc                  óH  — t         j                  j                  d«      } | r| S t        d«      t        t        «      j                  «       j                  dz  g}|D ]5  }|j                  «       sŒ	 |j                  d¬«      j                  «       c S  y# t        $ r Y  yw xY w)u�   ÐŸÐ¾Ð¿Ñ‹Ñ‚Ð°Ñ‚ÑŒÑ�Ñ� Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ Ð¸Ð· Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð¾Ð¹ Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ� `LK_PASSWORD` Ð¸Ð»Ð¸ Ñ„Ð°Ð¹Ð»Ð° `password.txt`.ÚLK_PASSWORDzpassword.txtzutf-8)rÊ   N)ÚosÚenvironro   r   Ú__file__ÚresolveÚparentrY   Ú	read_textrE   r5   )ÚpwdÚcandidate_pathsÚpw_files      r   Ú_get_password_from_env_or_filer    s—   € ä
�*‰*�.‰.˜Ó
'€CÙ
Øˆ
ä˜NÓ+¬T´(«^×-CÑ-CÓ-E×-LÑ-LÈ~Ñ-]Ð^€OØ"ò ˆØ�>‰>ÕðØ×(Ñ(°'Ð(Ó:×@Ñ@ÓBÒBðð øô ò Úðús   Á0BÂ	B!Â B!)éx   é¤  )éh  r   )éX  r   )r  r"  )r!  r"  )r"  r"  )r  é   )r!  r#  )r"  r#  )r!  i˜  )
r�   rž   rŸ   r    r¡   r¢   r£   r¤   r¥   rœ   rÓ   c                 ób   ‡— | xs dj                  «       Š‰syg d¢}t        ˆfd„|D «       «      S )u¥   Ð­ÐºÑ€Ð°Ð½ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸, ÐµÑ�Ð»Ð¸ Ð² XML ÐµÑ�Ñ‚ÑŒ Ñ�Ð²Ð½Ñ‹Ðµ Ð¿Ð¾Ð´Ð¿Ð¸Ñ�Ð¸ Ñ†Ð¸Ñ„Ñ€: 'Ñ†Ð¸Ñ„Ñ€Ð° Ð¾Ð´Ð¸Ð½', 'Ñ†Ð¸Ñ„Ñ€Ð° 1', 'digit one', 'digit 1' Ð¸ Ñ‚.Ð¿.rB   F)u   \bÑ†Ð¸Ñ„Ñ€Ð°\s*(?:Ð¾Ð´Ð¸Ð½|1)\bu   \bÑ†Ð¸Ñ„Ñ€Ð°\s*(?:Ð´Ð²Ð°|2)\bu   \bÑ†Ð¸Ñ„Ñ€Ð°\s*(?:Ñ‚Ñ€Ð¸|3)\bu#   \bÑ†Ð¸Ñ„Ñ€Ð°\s*(?:Ñ‡ÐµÑ‚Ñ‹Ñ€Ðµ|4)\bu   \bÑ†Ð¸Ñ„Ñ€Ð°\s*(?:Ð¿Ñ�Ñ‚ÑŒ|5)\bu!   \bÑ†Ð¸Ñ„Ñ€Ð°\s*(?:ÑˆÐµÑ�Ñ‚ÑŒ|6)\bu   \bÑ†Ð¸Ñ„Ñ€Ð°\s*(?:Ñ�ÐµÐ¼ÑŒ|7)\bu#   \bÑ†Ð¸Ñ„Ñ€Ð°\s*(?:Ð²Ð¾Ñ�ÐµÐ¼ÑŒ|8)\bu#   \bÑ†Ð¸Ñ„Ñ€Ð°\s*(?:Ð´ÐµÐ²Ñ�Ñ‚ÑŒ|9)\bu   \bÑ†Ð¸Ñ„Ñ€Ð°\s*(?:Ð½Ð¾Ð»ÑŒ|0)\bz\bdigit\s*(?:one|1)\bz\bdigit\s*(?:two|2)\bz\bdigit\s*(?:three|3)\bz\bdigit\s*(?:four|4)\bz\bdigit\s*(?:five|5)\bz\bdigit\s*(?:six|6)\bz\bdigit\s*(?:seven|7)\bz\bdigit\s*(?:eight|8)\bz\bdigit\s*(?:nine|9)\bz\bdigit\s*(?:zero|0)\bc              3   ój   •K  — | ]*  }t        j                  |‰t         j                  ¬ «      –— Œ, y­w)r™   N)rŠ   rÐ   r²   ©rë   rí   rd   s     €r   rî   z&is_lock_screen_text.<locals>.<genexpr>K  s%   øè ø€ ÒYÀŒr�y‰y˜ $¬b¯m©m×<Ð<ÑYùs   ƒ03)r°   r  )rÓ   rx   Údigit_labelsrd   s      @r   Úis_lock_screen_textr(  /  s5   ø€ àŠO˜×"Ñ"Ó$€DÙØò€Lô, ÓYÈLÔYÓYÐYr   Údigitc                 óè  — t        | «      }t        |«      }d}|j                  «       D ]„  }dD ]y  }|j                  j	                  |«      xs dj                  «       }|sŒ3t        |«      }|€ŒA|t        |«      k(  sŒPt        |j                  j	                  d«      «      }	|	sŒw|	} n |sŒ„ n |€t        d|›d�«      ‚t        d|› d|› �«       t        | |«       t        j                  d	«       y)
uq   Ð�Ð°Ð¶Ð¸Ð¼Ð°ÐµÑ‚ Ñ†Ð¸Ñ„Ñ€Ñƒ Ð¿Ð¾ UI-Ñ�Ð»ÐµÐ¼ÐµÐ½Ñ‚Ñƒ, Ð° Ð½Ðµ Ð¿Ð¾ Ñ�Ñ‚Ð°Ñ‚Ð¸Ñ‡ÐµÑ�ÐºÐ¸Ð¼ ÐºÐ¾Ð¾Ñ€Ð´Ð¸Ð½Ð°Ñ‚Ð°Ð¼.N©rd   re   ÚhintrB   r€   u6   Ð�Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½ UI-Ñ�Ð»ÐµÐ¼ÐµÐ½Ñ‚ Ð´Ð»Ñ� Ñ†Ð¸Ñ„Ñ€Ñ‹ u'    Ð½Ð° Ñ�ÐºÑ€Ð°Ð½Ðµ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸z
Tap digit=z via UI element at center=g333333Ó?)r\   r   rm   rn   ro   rE   r¹   rX   r�   rG   r   rÀ   rá   râ   )
r;   r)  r_   rx   Útargetrz   r{   r|   Úmappedr‡   s
             r   Útap_pin_digitr/  N  s  € ä˜FÓ#€IÜ˜Ó#€DØ€Fà—	‘	“ò ˆØ4ò 		ˆDØ—[‘[—_‘_ TÓ*Ò0¨b×7Ñ7Ó9ˆEÙØÜ# EÓ*ˆFØÑ! f´°E³
Ó&:Ü% d§k¡k§o¡o°hÓ&?Ó@�ÚØ#�FÙð		ò Ùðð €~ÜÐQÐRWÐQZð  [Bð  Có  Dð  	Dä	ˆJ�u�gÐ7¸°xÐ
@ÔAÜ�V˜VÔ$Ü‡J�Jˆs…Or   Úpasswordc                 óH   — | €g S t        j                  dt        | «      «      S )uY   ÐŸÑ€Ð¸Ð²Ð¾Ð´Ð¸Ñ‚ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ Ðº Ñ�Ð¿Ð¸Ñ�ÐºÑƒ Ñ†Ð¸Ñ„Ñ€: '1 5 7 3' -> ['1', '5', '7', '3']z\d)rŠ   r‹   rX   )r0  s    r   Ú_normalize_password_digitsr2  j  s"   € àÐØˆ	Ü�:‰:�eœS ›]Ó+Ð+r   c                 óÂ   — | syt        j                  d| t         j                  ¬«      }|syt        |j	                  d«      «      t        |j	                  d«      «      fS )ug   Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ (Ð²Ð²ÐµÐ´ÐµÐ½Ð¾, Ð²Ñ�ÐµÐ³Ð¾) Ð¿Ð¾ Ñ�Ñ‚Ñ€Ð¾ÐºÐµ 'Ð’Ð²ÐµÐ´ÐµÐ½Ð¾ 1 Ð¸Ð· 4 Ñ†Ð¸Ñ„Ñ€'.rÌ   u0   Ð²Ð²ÐµÐ´ÐµÐ½Ð¾\s+(\d+)\s+Ð¸Ð·\s+(\d+)\s*Ñ†Ð¸Ñ„Ñ€r™   r›   rg   )rŠ   rÐ   r²   r4   r³   )rÓ   rñ   s     r   Úparse_entered_pin_countr4  q  sM   € áØÜ�I‰IÐIÈ9Ô\^×\iÑ\iÔj€EÙØÜˆu�{‰{˜1‹~Ó¤ E§K¡K°£NÓ 3Ð3Ð3r   Úexpected_countc                 óÐ  — t        t        | «      «      \  }}||k\  ryt        | |«       	 t        | «      }t        d«       t        |«       t        j
                  «       dz   }t        j
                  «       |k  r“	 t        | «      }t        |«      \  }	}
|
r|	|k(  rt        d|	› d|
› d	�«       y|
d
k(  r|r||k(  rt        d«       y|	|kD  rt        d|› d|	› d|› �«       yt        j                  d«       t        j
                  «       |k  rŒ“t        d|› d|› �«       y# t        $ r}t        d|› �«       Y d}~Œïd}~ww xY w# t        $ r t        j                  d«       Y �Œw xY w)u›   Ð�Ð°Ð¶Ð¸Ð¼Ð°ÐµÑ‚ Ñ†Ð¸Ñ„Ñ€Ñƒ, Ð¶Ð´Ñ‘Ñ‚ Ð¿Ð¾Ñ�Ð²Ð»ÐµÐ½Ð¸Ñ� Ð½ÑƒÐ¶Ð½Ð¾Ð³Ð¾ count Ð¸ Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ True Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ð¿Ñ€Ð¸ ÑƒÑ�Ð¿ÐµÑˆÐ½Ð¾Ð¼ Ð²Ð²Ð¾Ð´Ðµ.Tu*   === Ð”Ð°Ð¼Ð¿ Ð¿Ð¾Ñ�Ð»Ðµ Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ� ===uI   Ð�Ðµ ÑƒÐ´Ð°Ð»Ð¾Ñ�ÑŒ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ Ð´Ð°Ð¼Ð¿ Ð¿Ð¾Ñ�Ð»Ðµ Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ�: Nç      @çš™™™™™É?u!   ÐŸÑ€Ð¾Ð²ÐµÑ€ÐºÐ°: Ð²Ð²ÐµÐ´ÐµÐ½Ð¾ u    Ð¸Ð· u	    Ñ†Ð¸Ñ„Ñ€r   uƒ   ÐŸÑ€Ð¾Ð²ÐµÑ€ÐºÐ°: Ñ�Ñ‡Ñ‘Ñ‚Ñ‡Ð¸Ðº Ð¿Ñ€Ð¾Ð¿Ð°Ð» Ð¿Ð¾Ñ�Ð»Ðµ Ð¿Ð¾Ñ�Ð»ÐµÐ´Ð½ÐµÐ¹ Ñ†Ð¸Ñ„Ñ€Ñ‹ â€” Ñ�Ñ‡Ð¸Ñ‚Ð°ÐµÐ¼ Ð²Ð²Ð¾Ð´ ÑƒÑ�Ð¿ÐµÑˆÐ½Ñ‹Ð¼u=   Ð¡Ð»Ð¸ÑˆÐºÐ¾Ð¼ Ð¼Ð½Ð¾Ð³Ð¾ Ñ†Ð¸Ñ„Ñ€ Ð¿Ð¾Ñ�Ð»Ðµ Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ� rD   z > Fu   ÐŸÐ¾Ñ�Ð»Ðµ Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ� uM    Ð½Ðµ Ð¿Ð¾Ñ�Ð²Ð¸Ð»Ñ�Ñ� Ð¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ñ‹Ð¹ Ñ�Ñ‡Ñ‘Ñ‚Ñ‡Ð¸Ðº: Ð¾Ð¶Ð¸Ð´Ð°Ð»Ð¾Ñ�ÑŒ )r4  r`   r/  r   r5   rá   râ   )r;   r)  r5  Úbefore_countÚbefore_totalÚ	post_dumpr?   ÚdeadlinerÓ   Úcurrent_countÚtotals              r   Útap_pin_digit_and_waitr?  {  s“  € ä!8¼ÀvÓ9NÓ!OÑ€L�,Ø�~Ò%Øä�&˜%Ô ðaÜ! &Ó)ˆ	ÜÐ:Ô;ÜˆiÔô �y‰y‹{˜SÑ €HÜ
�)‰)‹+˜Ò
 ð	Ü% fÓ-ˆIô
  7°yÓAÑˆ�uá�] nÒ4ÜÐ5°m°_ÀFÈ5È'ÐQZÐ[Ô\Øð �AŠ:™,¨>¸\Ò+IÜð  Xô  YØØ˜>Ò)ÜÐQÐRWÐQXÐXZÐ[hÐZiÐilÐm{Ðl|Ð}Ô~ØÜ�
‰
�3Œô+ �)‰)‹+˜Ó
 ô. 
Ð& u gÐ-zð  |Jð  {Kð  Lô  MØøô9 ò aÜÐYÐZ]ÐY^Ð_×`Ñ`ûðaûô ò 	Ü�J‰J�sŒOÚð	ús)   «!D Á;E Ä	E Ä(D;Ä;E ÅE%Å$E%c           	      óì  — t        |«      }|syt        | «      }t        |«      syt        d|› �«       |D ]$  }	 t	        | |«       t        j                  d	«       Œ& y
# t
        $ rŒ}t        j                  t        |«      «      }|rKt        d|› d|› �«       	 t        | g|¢­Ž  nC# t
        $ r }t        d|› d|› �«       Y d}~Y d}~ yd}~ww xY wt        d|› d|› �«       Y d}~ yY d}~Œ¨d}~ww xY w)u¦  Ð•Ñ�Ð»Ð¸ Ð¾Ñ‚ÐºÑ€Ñ‹Ð»Ñ�Ñ� Ñ�ÐºÑ€Ð°Ð½ Ð¿Ð°Ñ€Ð¾Ð»Ñ� â€” Ð¿Ñ€Ð¾Ñ�Ñ‚Ð¾ Ð²Ð²Ð¾Ð´Ð¸Ñ‚ PIN Ð¿Ð¾ UI-Ñ�Ð»ÐµÐ¼ÐµÐ½Ñ‚Ð°Ð¼, Ð±ÐµÐ· Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ Ñ�Ñ‡Ñ‘Ñ‚Ñ‡Ð¸ÐºÐ°.

    ÐšÐ°Ð¶Ð´Ð°Ñ� Ñ†Ð¸Ñ„Ñ€Ð° Ð½Ð°Ð¶Ð¸Ð¼Ð°ÐµÑ‚Ñ�Ñ� Ð¿Ð¾ Ñ�Ð²Ð¾ÐµÐ¼Ñƒ UI-Ñ�Ð»ÐµÐ¼ÐµÐ½Ñ‚Ñƒ; Ð¿Ñ€Ð¸ Ð¾Ñ‚Ñ�ÑƒÑ‚Ñ�Ñ‚Ð²Ð¸Ð¸ Ñ�Ð»ÐµÐ¼ÐµÐ½Ñ‚Ð° â€” Ð¿Ð¾
    Ñ�Ñ‚Ð°Ñ‚Ð¸Ñ‡ÐµÑ�ÐºÐ¸Ð¼ ÐºÐ¾Ð¾Ñ€Ð´Ð¸Ð½Ð°Ñ‚Ð°Ð¼. Ð¡Ñ‡Ñ‘Ñ‚Ñ‡Ð¸Ðº 'Ð’Ð²ÐµÐ´ÐµÐ½Ð¾ X Ð¸Ð· Y' Ð½Ðµ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ñ�ÐµÑ‚Ñ�Ñ�.
    FzPIN order: zFallback: tap coords for digit=z at u=   Ð�Ðµ ÑƒÐ´Ð°Ð»Ð¾Ñ�ÑŒ Ð½Ð°Ð¶Ð°Ñ‚ÑŒ ÐºÐ¾Ð¾Ñ€Ð´Ð¸Ð½Ð°Ñ‚Ñ‹ Ð´Ð»Ñ� rD   Nua   ÐžÑˆÐ¸Ð±ÐºÐ°: Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½ UI-Ñ�Ð»ÐµÐ¼ÐµÐ½Ñ‚ Ð¸ Ð½ÐµÑ‚ ÐºÐ¾Ð¾Ñ€Ð´Ð¸Ð½Ð°Ñ‚ Ð´Ð»Ñ� Ñ†Ð¸Ñ„Ñ€Ñ‹ r8  T)r2  r`   r(  r   r/  r5   ÚPIN_KEY_COORDSro   rX   rÀ   rá   râ   )r;   r0  r  rÓ   r)  r?   ÚcoordsÚexc2s           r   Úenter_lock_passwordrD  §  s$  € ô % XÓ
.€CÙØä˜fÓ%€IÜ˜yÔ)Øä	ˆK˜�uÐ
ÔØò ˆð	Ü˜& %Ô(ô 	�
‰
�3�ðð" øô ò 	Ü#×'Ñ'¬¨E«
Ó3ˆFÙÜÐ7¸°w¸dÀ6À(ÐKÔLð!Ü$ VÐ5¨fÔ5øÜ ò !ÜÐYÐZ_ÐY`Ð`bÐcgÐbhÐiÔjß ™5ûð!úô ÐyÐzð  zAð  ACð  DGð  CHð  Iô  JÝô 6ûð	úsA   ºAÁ	C3Á'1C.ÂB&Â%C.Â&	CÂ/C
Ã C.Ã
CÃC.Ã.C3c                 ó  — 	 t        | «      }t        |«      }t        |«      }t	        ||¬«      syt        d«       t        d|› �«       t        | |«      }|rt        d|› d�«       yt        d|› d	�«       y# t        $ r Y yw xY w)
uu   Ð•Ñ�Ð»Ð¸ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ Ð½Ð° Ñ�ÐºÑ€Ð°Ð½Ðµ Ð¿Ð°Ñ€Ð¾Ð»Ñ�, Ð²Ð²Ð¾Ð´Ð¸Ñ‚ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ Ð¸ Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ True.F)rx   u7   Ð›Ðš Ð½Ð°Ñ…Ð¾Ð´Ð¸Ñ‚Ñ�Ñ� Ð½Ð° Ñ�ÐºÑ€Ð°Ð½Ðµ Ð¿Ð°Ñ€Ð¾Ð»Ñ�.u#   Ð˜Ñ�Ð¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ: u   ÐŸÐ°Ñ€Ð¾Ð»ÑŒ u    ÑƒÑ�Ð¿ÐµÑˆÐ½Ð¾ Ð²Ð²ÐµÐ´Ñ‘Ð½.Tu.   Ð�Ðµ ÑƒÐ´Ð°Ð»Ð¾Ñ�ÑŒ Ð²Ð²ÐµÑ�Ñ‚Ð¸ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ ú.)r\   r   r^   r5   r(  r   rD  )r;   r0  r_   rx   rÓ   r×   s         r   Úensure_lock_screen_unlockedrG  Ê  sœ   € ðÜ Ó'ˆ	Ü˜YÓ'ˆÜ" 9Ó-ˆ	ô ˜y¨tÕ4Øô 
Ð
CÔDÜ	Ð/°¨zÐ
:Ô;ä	˜V XÓ	.€BÙ	Ü�˜h˜ZÐ'DÐEÔFØä	Ð:¸8¸*ÀAÐ
FÔGØøô! ò Ùðús   ‚!A8 Á8	BÂBc                 óh  — g }| j                  «       D �]  }|j                  j                  d«      dk(  r|j                  |«       Œ4|j                  j                  dd«      xs d}|j                  j                  dd«      xs d}|j                  j                  d«      xs< |j                  j                  d«      xs |j                  j                  d«      xs d}d	|v s:d|j	                  «       v s(t        j                  d
|t
        j                  ¬«      s�Œ|j                  |«       �Œ |S )uo   Ð�Ð°Ð¹Ñ‚Ð¸ ÑƒÐ·Ð»Ñ‹, Ñ�Ð¾Ð¾Ñ‚Ð²ÐµÑ‚Ñ�Ñ‚Ð²ÑƒÑŽÑ‰Ð¸Ðµ Ð¿Ð¾Ð»ÑŽ Ð²Ð²Ð¾Ð´Ð° Ð¿Ð°Ñ€Ð¾Ð»Ñ�/Ð¿Ð¸Ð½Ð° Ð² Ð´Ð°Ð¼Ð¿Ðµ UI.r0  ÚtrueÚclassrB   úresource-idrd   re   r,  ÚEditTextu"   Ð¿Ð°Ñ€Ð¾Ð»|pin|ÐºÐ¾Ð´|password|pinr™   )rm   rn   ro   rt   r°   rŠ   rÐ   r²   )rx   Únodesrz   ÚclsÚresourcerd   s         r   Úfind_password_nodesrP  ã  s   € à€EØ—	‘	“ó ˆà�;‰;�?‰?˜:Ó&¨&Ò0Ø�L‰L˜ÔØà�k‰k�o‰o˜g rÓ*Ò0¨bˆØ—;‘;—?‘? =°"Ó5Ò;¸ˆØ—‘—‘ Ó'Òk¨4¯;©;¯?©?¸>Ó+JÒkÈdÏkÉkÏoÉoÐ^dÓNeÒkÐikˆà˜Ñ 
¨h¯n©nÓ.>Ñ >Ä"Ç)Á)ÐLqÐswô  @B÷  @Mñ  @M÷  CNØ�L‰L˜Öðð €Lr   c                 óZ  — i }| j                  «       D �]  }dD �]  }|j                  j                  |«      xs d}t        |«      }|€Œ1|j                  j                  d«      xs dj	                  «       }|j                  j                  d«      xs d}|dk7  rt        j                  d|«      sŒ™|j                  «       j	                  «       }t        j                  d|t
        j                  ¬«      rŒÞt        |j                  j                  d	«      «      }	|	s�Œ|	||<    �Œ �Œ |S )
u�   Ð�Ð°Ð¹Ñ‚Ð¸ ÐºÐ½Ð¾Ð¿ÐºÑƒ-ÐºÐ»Ð°Ð²Ð¸ÑˆÐ¸ Ñ†Ð¸Ñ„Ñ€Ð¾Ð²Ð¾Ð¹ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ñ‹ Ð½Ð° Ñ�ÐºÑ€Ð°Ð½Ðµ Ð¸ Ð²ÐµÑ€Ð½ÑƒÑ‚ÑŒ Ñ�Ð»Ð¾Ð²Ð°Ñ€ÑŒ digit->(x,y).r+  rB   Ú	clickablerJ  rI  zButton|ImageButton|ImageViewuT   Ð²Ñ‹Ð¹Ñ‚Ð¸|Ð½Ðµ Ð¿Ð¾Ð¼Ð½ÑŽ|Ð½ÐµÐ¿Ð¾Ð¼Ð½ÑŽ|ÐºÐ¾Ð´â€‘Ð¿Ð°Ñ€Ð¾Ð»ÑŒ|ÐºÐ¾Ð´-?Ð¿Ð°Ñ€Ð¾Ð»ÑŒr™   r€   )
rm   rn   ro   r¹   r°   rŠ   rÐ   rE   r²   r�   )
rx   Úkeysrz   r{   r|   r)  rR  rN  Úlowr‡   s
             r   Úfind_key_nodesrU  õ  s  € à€DØ—	‘	“ó ˆà4ó 	ˆDØ—K‘K—O‘O DÓ)Ò/¨RˆEÜ" 5Ó)ˆEØˆ}ØàŸ™Ÿ™¨Ó5Ò;¸×BÑBÓDˆIØ—+‘+—/‘/ 'Ó*Ò0¨bˆCØ˜FÒ"¬2¯9©9Ð5TÐVYÔ+ZØà—+‘+“-×%Ñ%Ó'ˆCÜ�y‰yÐpÐruÔ}÷  ~Kñ  ~Kõ  LØÜ! $§+¡+§/¡/°(Ó";Ó<ˆFÛØ$��U‘Úò#	ðð( €Kr   r´   c                 óL   — | €y| j                  dd«      j                  dd«      S )u\   Ð­ÐºÑ€Ð°Ð½Ð¸Ñ€ÑƒÐµÑ‚ Ñ‚ÐµÐºÑ�Ñ‚ Ð´Ð»Ñ� `adb shell input text` (Ð¿Ñ€Ð¾Ñ�Ñ‚Ð¾Ð¹ Ð¿Ð¾Ð´Ñ…Ð¾Ð´).rB   ú%z%25rf   z%s)Úreplace)r´   s    r   Ú_adb_escape_textrY    s(   € à€yØà�9‰9�S˜%Ó ×(Ñ(¨¨dÓ3Ð3r   c                 óJ  ‡— g }| j                  «       D ]¹  }dD ]²  }|j                  j                  |«      }|sŒ!dj                  |j	                  «       «      }|j                  d«      rŒRt        j                  d|t        j                  ¬«      sŒyt        |j                  j                  d«      «      }|sŒ |j                  ||f«       Œ´ Œ» g }|D ]L  \  }}|j                  «       Št        ˆfd„dD «       «      rŒ+t        |«      d	k  rŒ:|j                  ||f«       ŒN |S )
uu   Ð�Ð°Ñ…Ð¾Ð´Ð¸Ñ‚ ÐºÐ°Ñ€Ñ‚Ð¾Ñ‡ÐºÐ¸ Ð½Ð° Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¼ Ñ�ÐºÑ€Ð°Ð½Ðµ Ð¿Ð¾ Ñ‚ÐµÐºÑ�Ñ‚Ñƒ Ð¸/Ð¸Ð»Ð¸ Ñ†Ð¸Ñ„Ñ€Ð°Ð¼ ÐºÐ°Ñ€Ñ‚Ñ‹.rc   rf   rh   u;   (?:Bank\s+Card|ÐšÐ°Ñ€Ñ‚Ð°|Visa|Mastercard|ÐœÐ¸Ñ€|MIR|\d{4})r™   r€   c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr   r   )rë   Útokenr°   s     €r   rî   z"find_card_nodes.<locals>.<genexpr>+  s   øè ø€ ò  u %ˆu˜Œ~ñ  uùó   ƒ)u   Ð¿Ð¾ÐºÐ°Ð·Ð°Ñ‚ÑŒu   Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒõ   Ð½Ð°Ñ�Ñ‚Ñ€Ð¾Ð¹ÐºÐ¸u   Ð¼ÐµÐ½ÑŽõ   Ð³Ð»Ð°Ð²Ð½Ð°Ñ�õ   Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚õ   Ñ�Ñ‡Ñ‘Ñ‚õ
   Ð²Ñ‹Ñ…Ð¾Ð´õ   Ð¾Ð¿Ð»Ð°Ñ‚Ð¸Ñ‚ÑŒõ   Ð¿ÐµÑ€ÐµÐ²ÐµÑ�Ñ‚Ð¸õ   Ð¿Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÑŒr+   )rm   rn   ro   rp   rq   rs   rŠ   rÐ   r²   r�   rt   r°   r  rr   )	rx   Ú
candidatesrz   r{   r|   rd   r‡   Úfilteredr°   s	           @r   Úfind_card_nodesrh    s  ø€ à€JØ—	‘	“ò 6ˆØ,ò 
	6ˆDØ—K‘K—O‘O DÓ)ˆEÙØØ—8‘8˜EŸK™K›MÓ*ˆDØ�‰˜zÔ*ØÜ�y‰yÐWÐY]Ôeg×erÑerÖsÜ% d§k¡k§o¡o°hÓ&?Ó@�ÚØ×%Ñ% v¨t nÕ5ñ
	6ð6ð €HØ"ò (‰ˆ�Ø—
‘
“ˆÜó  uð  ,tô  uô  uØÜˆt‹9�qŠ=ØØ�‰˜ ˜Õ'ð(ð €Or   Ú	max_cardsc                 ó¬  — g }t        «       }t        |«      D �]¸  }t        | «      }t        |«      }t	        |«      }|sBt        |«      }t        |«      }	|	d   s|	d   s
|	d   s|	d   r|j                  ddi|	¥«        |S |d   \  }
}t        j                  dd	|«      j                  «       }||v r |S |j                  |«       t        | |
«       t        | «      }t        |«      }t        j                  d
|t        j                  ¬«      r%t        | d
«      s |S t        | «      }t        |«      }t        |«      }	|	d   s|	d   s
|	d   s|	d   r|j                  d|i|	¥«       t!        | «       t        | «      }t        |«      }t        j                  d
|t        j                  ¬«      s�Œ˜t	        t        |«      «      r�Œ®t!        | «       �Œ» |S )u�   ÐžÑ‚ÐºÑ€Ñ‹Ð²Ð°ÐµÑ‚ ÐºÐ°Ð¶Ð´ÑƒÑŽ ÐºÐ°Ñ€Ñ‚Ñƒ, Ð½Ð°Ð¶Ð¸Ð¼Ð°ÐµÑ‚ ÐŸÐ¾ÐºÐ°Ð·Ð°Ñ‚ÑŒ, Ð¿Ð°Ñ€Ñ�Ð¸Ñ‚ Ð´Ð°Ð½Ð½Ñ‹Ðµ Ð¸ Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚Ñ�Ñ� Ð½Ð°Ð·Ð°Ð´.Úcard_numberÚ
card_last4ÚexpiryÚcvvÚ
card_labelÚcurrentr   ú\s+rf   õ   ÐŸÐ¾ÐºÐ°Ð·Ð°Ñ‚ÑŒ|Showr™   )ÚsetÚranger\   r   rh  r^   Úparse_card_datart   rŠ   ÚsubrE   ÚaddrÀ   rÐ   r²   rè   rÂ   )r;   ri  ÚresultsÚseenrå   r_   rx   ÚcardsÚcurrent_textÚparsedr‡   ÚlabelÚcard_keyÚdetail_pathÚdetail_textÚ	next_dumpÚ	next_texts                    r   Úparse_all_cardsrƒ  3  sÔ  € à€GÜ‹5€Dä�9Óó &ˆÜ Ó'ˆ	Ü˜YÓ'ˆÜ Ó%ˆáÜ)¨)Ó4ˆLÜ$ \Ó2ˆFØ�mÒ$¨¨|Ò(<ÀÀxÒ@PÐTZÐ[`ÒTaØ—‘ ¨iÐB¸6ÐBÔCØð< €Nð9 ˜a™‰ˆ�Ü—6‘6˜& # uÓ-×3Ñ3Ó5ˆØ�tÑØð2 €Nð1 	�‰�Ôô 	˜ Ô(ä! &Ó)ˆÜ$ [Ó1ˆÜ�9‰9Ð-¨{Ä"Ç-Á-ÕPÜ˜vÐ'?Ô@Øð €Nô & fÓ-ˆKÜ(¨Ó5ˆKä  Ó-ˆØ�-Ò  F¨<Ò$8¸FÀ8Ò<LÐPVÐW\ÒP]Ø�N‰N˜L¨(Ð=°fÐ=Ô>ä�6Ôä Ó'ˆ	Ü" 9Ó-ˆ	Ü�9‰9Ð-¨yÄÇÁ×NÔWfÔgtÐu~Ógö  XAÜ�vÖðM&ðP €Nr   rd   c                 ó8  ‡— h d£}| j                  «       D ]¾  }dj                  |j                  «       «      }|rt        |«      dk  rŒ3|j	                  «       Št        ˆfd„|D «       «      rŒXt        j                  d|«      sŒot        j                  d|«      r|j                  «       c S t        j                  d|«      sŒ®|j                  «       c S  g d¢}|D ];  }t        j                  || «      }|sŒ|j                  d	«      j                  «       c S  y
)u‰   Ð˜Ð·Ð²Ð»ÐµÐºÐ°ÐµÑ‚ Ð¸Ð¼Ñ� Ð²Ð»Ð°Ð´ÐµÐ»ÑŒÑ†Ð° Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚Ð°, Ð½Ð°Ð¿Ñ€Ð¸Ð¼ÐµÑ€: 'Ð•Ð²Ð³ÐµÐ½Ð¸Ð¹ Ð›Ñ�Ð¿Ð¸Ð½' Ð¸Ð»Ð¸ 'Ð•Ð²Ð³ÐµÐ½Ð¸Ð¹ Ð›.'.>   õ	   ÐºÐ°Ñ€Ñ‚aõ
   Ð²Ñ‹Ð¹Ñ‚Ð¸õ   Ð±Ð°Ð»Ð°Ð½Ñ�õ   Ð¿Ñ€Ð¾Ñ„Ð¸Ð»ÑŒõ   Ð¿Ð¾Ð´Ð¿Ð¸Ñ�ÐºÐ°õ   Ð¼Ð¾Ð¸ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ñ‹õ   Ð¾Ñ�Ð½Ð¾Ð²Ð½Ð¾Ð¹ Ñ�Ñ‡Ñ‘Ñ‚ra  r`  rc  rd  re  rf   r+   c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr   r   )rë   Úwordr°   s     €r   rî   z-extract_account_owner_name.<locals>.<genexpr>y  s   øè ø€ Ò1 ˆt�uŒ}Ñ1ùr]  u   [Ð�-Ð¯Ð�Ð°-Ñ�Ñ‘]u!   [Ð�-Ð¯Ð�][Ð°-Ñ�Ñ‘]+\s+[Ð�-Ð¯Ð�]\.uE   [Ð�-Ð¯Ð�][Ð°-Ñ�Ñ‘]+(?:\s+[Ð�-Ð¯Ð�][Ð°-Ñ�Ñ‘]+){1,2}(?:\s+[Ð�-Ð¯Ð�]\.)?)u'   (?m)^[Ð�-Ð¯Ð�][Ð°-Ñ�Ñ‘]+\s+[Ð�-Ð¯Ð�]\.$u=   (?m)^[Ð�-Ð¯Ð�][Ð°-Ñ�Ñ‘]+\s+[Ð�-Ð¯Ð�][Ð°-Ñ�Ñ‘]+\s+[Ð�-Ð¯Ð�]\.$u/   (?m)^[Ð�-Ð¯Ð�][Ð°-Ñ�Ñ‘]+\s+[Ð�-Ð¯Ð�][Ð°-Ñ�Ñ‘]+$uE   (?m)^[Ð�-Ð¯Ð�][Ð°-Ñ�Ñ‘]+\s+[Ð�-Ð¯Ð�][Ð°-Ñ�Ñ‘]+\s+[Ð�-Ð¯Ð�][Ð°-Ñ�Ñ‘]+$r   N)Ú
splitlinesrp   rq   rr   r°   r  rŠ   rÐ   r±   rE   r³   )rd   ÚblockedÚlineÚ	candidateÚpatternsrí   rñ   r°   s          @r   Úextract_account_owner_namer“  c  sö   ø€ ò€Gð —‘Ó!ò %ˆØ—H‘H˜TŸZ™Z›\Ó*ˆ	ÙœC 	›N¨QÒ.ØØ—‘Ó!ˆÜÓ1¨Ô1Ô1ØÜ�y‰yÐ,¨iÔ8ØÜ�<‰<Ð<¸iÔHØ—?‘?Ó$Ò$Ü�<‰<Ð`ÐbkÕlØ—?‘?Ó$Ò$ð%ò€Hð ò *ˆÜ—	‘	˜' 4Ó(ˆÚØ—;‘;˜q“>×'Ñ'Ó)Ò)ð*ð r   )u.   Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸\w*\s+Ð¿Ñ€Ð¸Ð¾Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½u+   Ð¿Ñ€Ð¸Ñ‡Ð¸Ð½Ñ‹ Ð¸ ÐºÐ°Ðº Ð¸Ñ�Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÑŒu'   Ñ�Ñ‡[ÐµÑ‘]Ñ‚\s+Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½u)   Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚\s+Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½u+   ÐºÐ°Ñ€Ñ‚[Ð°Ñ‹Ñƒ]\s+Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½c                 ó¾   ‡— | xs dj                  «       j                  dd«      j                  dd«      Š‰j                  «       syt        ˆfd„t        D «       «      S )ur   Ð‘Ð»Ð¾Ðº Ozon Ð¿Ð¾ Ñ„Ñ€Ð°Ð·Ð°Ð¼ Ñ� Ñ�ÐºÑ€Ð°Ð½Ð°, Ð½Ð°Ð¿Ñ€Ð¸Ð¼ÐµÑ€ 'ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ð¸ Ð¿Ñ€Ð¸Ð¾Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ‹'.rB   õ   Â rf   u   â€¯Fc              3   óJ   •K  — | ]  }t        j                  |‰«      –— Œ y ­wr   )rŠ   rÐ   r&  s     €r   rî   z'is_ozon_blocked_text.<locals>.<genexpr>�  s   øè ø€ ÒK¨GŒr�y‰y˜ $×'ÑKùs   ƒ #)r°   rX  rE   r  ÚOZON_BLOCK_PATTERNS)rÓ   rd   s    @r   Úis_ozon_blocked_textr˜  ˜  sM   ø€ àŠO˜×"Ñ"Ó$×,Ñ,¨V°SÓ9×AÑAÀ(ÈCÓP€DØ�:‰:Œ<ØÜÓKÔ7JÔKÓKÐKr   c                 óž   — |xs dj                  «       rt        |«      ryt        |«      }t        | |rdnd«       |rt	        d| › d�«       |S )u|   Ð¡Ð¾Ñ…Ñ€Ð°Ð½Ð¸Ñ‚ÑŒ Ð² Ð‘Ð”, Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½ Ð»Ð¸ Ozon. ÐŸÑƒÑ�Ñ‚Ð¾Ð¹ Ð´Ð°Ð¼Ð¿ Ð¸ Ñ�ÐºÑ€Ð°Ð½ PIN Ð½Ðµ Ñ‚Ñ€Ð¾Ð³Ð°ÐµÐ¼.rB   Nr›   r   zOzon blocked for u/   : Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¸ Ð¿Ñ€Ð¸Ð¾Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ‹)rE   r(  r˜  Úupdate_blockedr!   )r"   rÓ   r�  s      r   Úsync_ozon_blockedr›     sP   € àŠO˜×"Ñ"Ô$Ô(;¸IÔ(FØÜ" 9Ó-€GÜ�;¡W¡°!Ô4ÙÜÐ ˜}Ð,[Ð\Ô]Ø€Nr   c                 óÜ   — t        | «      }d}t        j                  d| t        j                  ¬«      }|r3|j	                  d«      j                  «       j                  dd«      xs d}||dœS )uq   ÐŸÐ°Ñ€Ñ�Ð¸Ñ‚ Ð±Ð°Ð»Ð°Ð½Ñ� Ð¸ Ð¸Ð¼Ñ� Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚Ð°. Ð•Ñ�Ð»Ð¸ Ð´Ð°Ð½Ð½Ñ‹Ñ… Ð½ÐµÑ‚ â€” Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ None.Nuc   (?:Ð‘Ð°Ð»Ð°Ð½Ñ�|ÐžÑ�Ñ‚Ð°Ñ‚Ð¾Ðº|ÐžÑ�Ð½Ð¾Ð²Ð½Ð¾Ð¹\s+Ñ�Ñ‡Ñ‘Ñ‚|Ð¡Ñ‡Ñ‘Ñ‚)\s*[:\-]?\s*(\d[\d\s.,]*)\s*â‚½r™   r›   rf   rB   )Úaccount_nameÚbalance)r“  rŠ   rÐ   r²   r³   rE   rX  )rd   r�  rž  Úbalance_matchs       r   Úparse_balance_and_account_namer   «  s{   € ä-¨dÓ3€LØ€Gä—I‘Ið  Eð  GKô  SU÷  S`ñ  S`ô  a€MÙØ×%Ñ% aÓ(×.Ñ.Ó0×8Ñ8¸¸bÓAÒIÀTˆà(°WÑ=Ð=r   c                 óL  — t        | «      }d}t        j                  d| «      }|rB|j                  d«      j	                  dd«      j	                  dd«      j	                  dd«      }n9t        j                  d| «      }|r!|j                  d«      j	                  dd«      }||d	œS )
uX   ÐŸÐ°Ñ€Ñ�Ð¸Ñ‚ Ð½Ð¾Ð¼ÐµÑ€ ÐºÐ°Ñ€Ñ‚Ñ‹ Ð¸ Ð¸Ð¼Ñ� Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚Ð°. Ð•Ñ�Ð»Ð¸ Ð½ÐµÑ‚ â€” None.Nú3\+7\s*\(?\d{3}\)?\s*\d{3}\s*[- ]?\d{2}\s*[- ]?\d{2}r   rf   rB   ú(rÝ   z\b(?:\d{4}\s?){4}\b)r�  Únumber)r“  rŠ   rÐ   r³   rX  )rd   r�  r¤  Úphone_matchÚnumber_matchs        r   Úparse_number_and_account_namer§  ·  s›   € ä-¨dÓ3€LØ€Fä—)‘)ÐRÐTXÓY€KÙØ×"Ñ" 1Ó%×-Ñ-¨c°2Ó6×>Ñ>¸sÀBÓG×OÑOÐPSÐUWÓX‰ä—y‘yÐ!7¸Ó>ˆÙØ!×'Ñ'¨Ó*×2Ñ2°3¸Ó;ˆFà(°FÑ;Ð;r   c                 ó¶   — t        j                  d| «      }|rA|j                  d«      j                  dd«      j                  dd«      j                  dd«      S y)u^   ÐŸÐ°Ñ€Ñ�Ð¸Ñ‚ Ð½Ð¾Ð¼ÐµÑ€ Ñ‚ÐµÐ»ÐµÑ„Ð¾Ð½Ð° Ð¸Ð· dump. Ð•Ñ�Ð»Ð¸ Ñ‚ÐµÐ»ÐµÑ„Ð¾Ð½Ð° Ð½ÐµÑ‚ â€” None.r¢  r   rf   rB   r£  rÝ   N)rŠ   rÐ   r³   rX  )rd   r¥  s     r   Úparse_phone_numberr©  Ç  sS   € ä—)‘)ÐRÐTXÓY€KÙØ× Ñ  Ó#×+Ñ+¨C°Ó4×<Ñ<¸SÀ"ÓE×MÑMÈcÐSUÓVÐVØr   c                 ón  — dddddddœ}d}t        j                  || «      r|S t        j                  d| «      }|r@|j                  d«      j                  dd«      j                  dd«      |d	<   |d	   d
d |d<   n<t        j                  d| t         j                  ¬«      }|r|j                  d«      |d<   t        j                  d| «      }|rQ|j                  d«      |d<   t        j                  d| |j                  «       d «      }|r|j                  d«      |d<   t        j                  d| t         j                  ¬«      }|r"|j                  d«      j                  «       |d<   t        j                  d| t         j                  ¬«      }|r"|j                  d«      j                  «       |d<   |S )uj   ÐŸÐ°Ñ€Ñ�Ð¸Ñ‚ Ð½Ð¾Ð¼ÐµÑ€ ÐºÐ°Ñ€Ñ‚Ñ‹, Ñ�Ñ€Ð¾Ðº, CVV, Ñ‚Ð¸Ð¿ Ð¸ last4. Ð•Ñ�Ð»Ð¸ Ð´Ð°Ð½Ð½Ñ‹Ñ… Ð½ÐµÑ‚ â€” None.N)rk  rl  rm  rn  Ú	card_typeÚcard_variantr¢  z\b(?:\d{4}[- ]?){3}\d{4}\br   rf   rB   ú-rk  éüÿÿÿrl  u?   (?:Bank\s+Card|ÐšÐ°Ñ€Ñ‚Ð°|MIR|Visa|Mastercard)[^\n\r]*(\d{4})\br™   r›   z%\b(?:0[1-9]|1[0-2])/(?:\d{2}|\d{4})\brm  z	\b\d{3}\brn  z<\bBank\s+Card\b|\bMIR\s+Pay\s+Ozon\b|\bVisa\b|\bMastercard\br«  u[   Ð’Ð¸Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð°Ñ�\s+ÐºÐ°Ñ€Ñ‚Ð°|ÐšÐ°Ñ€Ñ‚Ð°\s+Ð²\s+Ð¼Ð¾Ð±Ð¸Ð»ÑŒÐ½Ð¾Ð¼\s+Ñ‚ÐµÐ»ÐµÑ„Ð¾Ð½Ðµr¬  )rŠ   rÐ   r³   rX  r²   ÚendrE   )	rd   rO   Úphone_patternÚfull_number_matchÚlast4_matchÚexpiry_matchÚ	cvv_matchÚ
type_matchÚvariant_matchs	            r   ru  ru  Ï  sµ  € ð ØØØØØñ€Dð K€MÜ	‡y�y� Ô%ØˆäŸ	™	Ð"?ÀÓFÐÙØ/×5Ñ5°aÓ8×@Ñ@ÀÀbÓI×QÑQÐRUÐWYÓZˆˆ]ÑØ! -Ñ0°°Ð5ˆˆ\Òä—i‘iÐ bÐdhÔpr×p}Ñp}Ô~ˆÙØ!,×!2Ñ!2°1Ó!5ˆD�Ñä—9‘9ÐEÀtÓL€LÙØ%×+Ñ+¨AÓ.ˆˆX‰ä—I‘I˜l¨D°×1AÑ1AÓ1CÐ1DÐ,EÓFˆ	ÙØ#Ÿ/™/¨!Ó,ˆD�‰Kä—‘ÐZÐ\`Ôhj×huÑhuÔv€JÙØ&×,Ñ,¨QÓ/×5Ñ5Ó7ˆˆ[Ñä—I‘IÐ|ð  Cô  KM÷  KXñ  KXô  Y€MÙØ,×2Ñ2°1Ó5×;Ñ;Ó=ˆˆ^Ñà€Kr   c                 óH  — dj                  | xs dj                  «       «      j                  «       } | r| j                  d«      ryt	        j
                  d| t        j                  ¬«      ryt	        j                  d| t        j                  ¬«      }t        |«      dk7  ry| S )	u‘   Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ñ‹Ð¹ label ÐºÐ°Ñ€Ñ‚Ñ‹, ÐµÑ�Ð»Ð¸ Ñ‚ÐµÐºÑ�Ñ‚ Ñ�Ð¾Ð´ÐµÑ€Ð¶Ð¸Ñ‚ Ñ€Ð¾Ð²Ð½Ð¾ Ð¾Ð´Ð½Ñƒ ÐºÐ°Ñ€Ñ‚Ñƒ; Ð¸Ð½Ð°Ñ‡Ðµ None.rf   rB   rh   Nuw   ÐŸÐ¾ÐºÐ°Ð·Ð°Ñ‚ÑŒ|Show|Ð”ÐµÑ‚Ð°Ð»Ð¸|ÐžÐ¿Ð»Ð°Ñ‚Ð¸Ñ‚ÑŒ|ÐŸÐµÑ€ÐµÐ²ÐµÑ�Ñ‚Ð¸|ÐŸÐ¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÑŒ|Ð—Ð°ÐºÐ°Ð·Ð°Ñ‚ÑŒ\s+ÐºÐ°Ñ€Ñ‚Ñƒr™   u0   (?:Bank\s+Card\s+\d{4}|ÐšÐ°Ñ€Ñ‚Ð°\s+\d{4}|\d{4})r›   )	rp   rq   rE   rs   rŠ   rÐ   r²   r‹   rr   )rd   Úcard_patternss     r   Únormalize_card_labelr¹  ú  s™   € à�8‰8�T’Z˜R×&Ñ&Ó(Ó)×/Ñ/Ó1€DÙ�4—?‘? :Ô.ØÜ	‡y�yð  Lð  NRô  Z\÷  Zgñ  Zgõ  hØä—J‘JÐRÐTXÔ`b×`mÑ`mÔn€MÜ
ˆ=Ó˜QÒØà€Kr   c                 óˆ  — g }| j                  «       D ]á  }|j                  j                  d«      xs |j                  j                  d«      xs d}|sŒBdj                  |j	                  «       «      }t        |«      }|sŒot        |j                  j                  d«      «      }|sŒ–t        |t        «      r|j                  d«      n|}|sŒ¼|d   dkD  sŒÅ|d	   dkD  sŒÎ|j                  ||d
œ«       Œã t        «       }g }	|D ].  }
|
d   }||v rŒ|j                  |«       |	j                  |
«       Œ0 t        |	d„ ¬«      S )uM   Ð�Ð°Ñ…Ð¾Ð´Ð¸Ñ‚ ÐºÐ½Ð¾Ð¿ÐºÐ¸ ÐºÐ°Ñ€Ñ‚ Ð½Ð° Ñ�ÐºÑ€Ð°Ð½Ðµ Ñ�Ð¿Ð¸Ñ�ÐºÐ° ÐºÐ°Ñ€Ñ‚.rd   re   rB   rf   r€   r‡   r   r’   r›   ©r}  r‡   r}  c                 ó"   — | d   d   | d   d   fS )Nr‡   r›   r   r   rø   s    r   rù   z#find_card_buttons.<locals>.<lambda>%  s   € ¨D°©N¸1Ñ,=¸tÀH¹~ÈaÑ?PÐ+Q€ r   rú   )rm   rn   ro   rp   rq   r¹  r�   r»   ru   rt   rs  rw  Úsorted)rx   Úbuttonsrz   r|   rd   r}  r‡   Úcoordry  ÚuniquerI   rû   s               r   Úfind_card_buttonsrÁ  	  s%  € à€GØ—	‘	“ò BˆØ—‘—‘ Ó'ÒP¨4¯;©;¯?©?¸>Ó+JÒPÈbˆÙØØ�x‰x˜Ÿ™›Ó&ˆÜ$ TÓ*ˆÙØä˜dŸk™kŸo™o¨hÓ7Ó8ˆÚä,6°v¼tÔ,D�F—J‘J˜xÔ(È&ˆEò ˜˜q™ B›¨5°©8°b«=Ø—‘¨¸%Ñ@ÕAð!Bô" ‹5€DØ€FØò ˆØ�7‰mˆØ�$‰;ØØ�‰�ŒØ�‰�dÕðô �&ÑQÔRÐRr   c                 ó  — | j                  «       D ]ú  }|j                  j                  d«      xs |j                  j                  d«      xs d}|sŒBdj                  |j	                  «       «      }t        j                  ||t
        j                  ¬«      sŒˆt        |j                  j                  d«      «      }|sŒ¯t        |t        «      r|j                  d«      n|}|sŒÕ|d   dk(  r|d	   dk(  rt        d
|› d�«       Œõ||dœc S  y)u`   Ð˜Ñ‰ÐµÑ‚ ÐºÐ½Ð¾Ð¿ÐºÑƒ/Ñ‚ÐµÐºÑ�Ñ‚ Ð¿Ð¾ Ð¿Ð°Ñ‚Ñ‚ÐµÑ€Ð½Ñƒ, Ð½Ð°Ð¿Ñ€Ð¸Ð¼ÐµÑ€ ÐŸÐ¾ÐºÐ°Ð·Ð°Ñ‚ÑŒ, Show.rd   re   rB   rf   r™   r€   r‡   r   r›   zfind_button_by_label: found 'z' but center is (0,0), skippingr»  N)rm   rn   ro   rp   rq   rŠ   rÐ   r²   r�   r»   ru   r!   )rx   r’  rz   r|   rd   r‡   r¿  s          r   Úfind_button_by_labelrÃ  (  sâ   € à—	‘	“ò 8ˆØ—‘—‘ Ó'ÒP¨4¯;©;¯?©?¸>Ó+JÒPÈbˆÙØØ�x‰x˜Ÿ™›Ó&ˆÜ�9‰9�X˜t¬2¯=©=Ö9Ü! $§+¡+§/¡/°(Ó";Ó<ˆFÚÜ0:¸6Ä4Ô0H˜Ÿ
™
 8Ô,Èf�ÙØØ˜‘8˜q’= U¨1¡X°¢]ÜÐ7¸°vÐ=\Ð]Ô^ØØ!%°Ñ7Ò7ð8ð r   c                 ón  — 	 t        | «      }t        |«      }t        |«      }t        |«      dk  ryd}|D ]3  }|d   }t        j                  d|t        j                  ¬«      sŒ/|dz  }Œ5 |dk  rydj                  d	„ |D «       «      }d
D ]  }||v sŒ y y# t        j                  t        f$ r Y yw xY w)u§   ÐŸÑ€Ð¾Ð²ÐµÑ€Ñ�ÐµÑ‚, Ñ‡Ñ‚Ð¾ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¹ Ñ�ÐºÑ€Ð°Ð½ â€” Ð¸Ð¼ÐµÐ½Ð½Ð¾ Ñ�Ð¿Ð¸Ñ�Ð¾Ðº ÐºÐ°Ñ€Ñ‚, Ð° Ð½Ðµ Ð¿Ñ€Ð¾Ñ�Ñ‚Ð¾ Ð»ÑŽÐ±Ð¾Ð¹ Ð½Ð°Ð±Ð¾Ñ€ Ñ‚ÐµÐºÑ�Ñ‚Ð° Ñ� Ñ†Ð¸Ñ„Ñ€Ð°Ð¼Ð¸.Frg   r   r}  u0   Bank\s+Card\s+\d{4}|ÐšÐ°Ñ€Ñ‚Ð°\s+\d{4}|\b\d{4}\br™   r›   ri   c              3   óB   K  — | ]  }|d    j                  «       –— Œ y­w©r}  N)r°   ©rë   r  s     r   rî   z'screen_has_card_list.<locals>.<genexpr>Q  s   è ø€ Ò?°�t˜G‘}×*Ñ*×,Ñ?ùs   ‚)	rc  re  rd  u   Ð³Ð»Ð°Ð²Ð½Ñ‹Ð¹ Ñ�ÐºÑ€Ð°Ð½u   ÐºÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ñ‹u   Ð³Ð°Ð»ÐµÑ€ÐµÑ�zgoogle playrb  r^  T)r\   r   rj   Ú
ParseErrorrZ   rÁ  rr   rŠ   rÐ   r²   rp   )	r;   r_   rx   rz  Ú
card_countr  r}  Újoinedr\  s	            r   Úscreen_has_card_listrË  <  sÓ   € ðÜ Ó'ˆ	Ü˜YÓ'ˆô ˜dÓ#€EÜ
ˆ5ƒz�A‚~Øà€JØò ˆØ�W‘ˆÜ�9‰9ÐHÈ%ÔWY×WdÑWdÖeØ˜!‰O‰Jðð
 �A‚~Øà�Y‰YÑ?¸Ô?Ó?€Fð
ò ˆð �FŠ?Ùðð øô? �M‰MÔ,Ð-ò Ùðús   ‚B ÂB4Â3B4c                 ó–   — 	 t        | «      }t        |«      }t        t        |«      «      S # t        j                  t        f$ r Y yw xY w)ur   ÐžÐ¿Ñ€ÐµÐ´ÐµÐ»Ñ�ÐµÑ‚ ÐºÐ¾Ð»Ð¸Ñ‡ÐµÑ�Ñ‚Ð²Ð¾ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ñ‹Ñ… ÐºÐ°Ñ€Ñ‚ Ð½Ð° Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¼ Ñ�ÐºÑ€Ð°Ð½Ðµ Ñ�Ð¿Ð¸Ñ�ÐºÐ°.r   )r\   r   rj   rÈ  rZ   rr   rÁ  )r;   r_   rx   s      r   Úcount_open_cardsrÍ  c  sL   € ðÜ Ó'ˆ	Ü˜YÓ'ˆô Ô  Ó&Ó'Ð'øô �M‰MÔ,Ð-ò Ùðús   ‚, ¬AÁAÚstart_yÚend_yÚstepsc                 ó  — t        |«      D ]l  }| j                  d|› d|› d�«       t        j                  d«       	 t	        t        | «      «      }t        j                  d|t        j                  ¬«      sŒl y y# t        $ r Y Œ{w xY w)	u\   Ð¤Ð¸Ð·Ð¸Ñ‡ÐµÑ�ÐºÐ¸ Ð¿Ñ€Ð¾ÐºÑ€ÑƒÑ‡Ð¸Ð²Ð°ÐµÑ‚ Ñ�ÐºÑ€Ð°Ð½ Ð´Ð¾ Ð±Ð»Ð¾ÐºÐ° Ñ€ÐµÐºÐ²Ð¸Ð·Ð¸Ñ‚Ð¾Ð².zinput swipe 350 z 350 z 500çš™™™™™é?uk   Ð ÐµÐºÐ²Ð¸Ð·Ð¸Ñ‚Ñ‹|ÐŸÐ¾ÐºÐ°Ð·Ð°Ñ‚ÑŒ|Show|Ð�Ð¾Ð¼ÐµÑ€ ÐºÐ°Ñ€Ñ‚Ñ‹|CVV|Ð¡Ñ€Ð¾Ðº|Ð”ÐµÐ¹Ñ�Ñ‚Ð²Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð° Ð´Ð¾r™   TF)
rt  rH   rá   râ   r^   r\   r5   rŠ   rÐ   r²   )r;   rÎ  rÏ  rÐ  rå   rd   s         r   Úscroll_until_requisitesrÓ  n  s�   € ä�5‹\ò 
ˆØ�‰Ð'¨ y°°e°W¸DÐAÔBÜ�
‰
�3Œð	Ü!¤+¨fÓ"5Ó6ˆDô �9‰9ð  Dð  FJô  RT÷  R_ñ  R_ö  `Ùð
ð øô ò 	Ùð	ús   ½A<Á<	BÂBrã   c           	      ó  — t        j                  d|t         j                  ¬«      }|r|j                  d«      nd}t	        d«      }d„ }t        |«      D �]L  }	 t        t        | «      «      }	|	�t        t        |	«      «      dk\  r6t        | g|¢­Ž  t        j                  d«       	 t        t        | «      «      }	|	�t        |	d	«      nd}
|
s2t!        | d
¬«       	 t        t        | «      «      }	|	�t        |	d	«      nd}
|
r$t        | g|
d   ¢­Ž  t        j                  d«       t        d«      D ]c  }t	        t#        t        | «      «      «      }|r
|d   s||d<   t%        |«      t%        |«      kD  r|} ||«      r nt        j                  d«       Œe  ||«      s�ŒM n |r
|d   s||d<   |S # t        j                  $ r d}	Y �Œ]w xY w# t        j                  $ r d}	Y �Œ*w xY w# t        j                  $ r d}	Y �Œw xY w)ut  ÐžÑ‚ÐºÑ€Ñ‹Ð²Ð°ÐµÑ‚ ÐºÐ°Ñ€Ñ‚Ñƒ Ð¸Ð· ÐºÐ°Ñ€ÑƒÑ�ÐµÐ»Ð¸, Ð´Ð¾Ñ…Ð¾Ð´Ð¸Ñ‚ Ð´Ð¾ Ñ€ÐµÐºÐ²Ð¸Ð·Ð¸Ñ‚Ð¾Ð², Ð¶Ð¼Ñ‘Ñ‚ ÐŸÐ¾ÐºÐ°Ð·Ð°Ñ‚ÑŒ Ð¸ Ð¿Ð°Ñ€Ñ�Ð¸Ñ‚.

    Ð”ÐµÑ‚Ð°Ð»ÑŒÐ½Ñ‹Ð¹ Ñ�ÐºÑ€Ð°Ð½ Ð¼Ð¾Ð¶ÐµÑ‚ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒÑ�Ñ� Ð½Ðµ Ñ� Ð¿ÐµÑ€Ð²Ð¾Ð³Ð¾ Ñ‚Ð°Ð¿Ð°, ÐºÐ½Ð¾Ð¿ÐºÐ° Â«ÐŸÐ¾ÐºÐ°Ð·Ð°Ñ‚ÑŒÂ» Ð¸Ð½Ð¾Ð³Ð´Ð°
    ÐµÑ‰Ñ‘ Ð½Ðµ Ñ€Ð°Ð·Ð¼ÐµÑ‡ÐµÐ½Ð° (bounds=[0,0]), Ð° Ð½Ð¾Ð¼ÐµÑ€/Ñ�Ñ€Ð¾Ðº/CVV Ð¿Ð¾Ñ�Ð²Ð»Ñ�ÑŽÑ‚Ñ�Ñ� Ð½Ðµ Ð¼Ð³Ð½Ð¾Ð²ÐµÐ½Ð½Ð¾ Ð¸
    Ð¼Ð¾Ð³ÑƒÑ‚ Ñ�Ð½Ð¾Ð²Ð° Ñ�ÐºÑ€Ñ‹Ñ‚ÑŒÑ�Ñ�. ÐŸÐ¾Ñ�Ñ‚Ð¾Ð¼Ñƒ Ð´ÐµÐ»Ð°ÐµÐ¼ Ð½ÐµÑ�ÐºÐ¾Ð»ÑŒÐºÐ¾ Ð¿Ð¾Ð¿Ñ‹Ñ‚Ð¾Ðº Ð¸ Ð±Ñ‹Ñ�Ñ‚Ñ€Ð¾ Ð¾Ð¿Ñ€Ð°ÑˆÐ¸Ð²Ð°ÐµÐ¼ Ð´Ð°Ð¼Ð¿
    Ñ�Ñ€Ð°Ð·Ñƒ Ð¿Ð¾Ñ�Ð»Ðµ Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ� Â«ÐŸÐ¾ÐºÐ°Ð·Ð°Ñ‚ÑŒÂ».
    u*   (?:Bank\s+Card\s+|ÐšÐ°Ñ€Ñ‚Ð°\s+)?(\d{4})\br™   r›   NrB   c                 ó(   — | d   xr | d   xr | d   S )Nrk  rm  rn  r   ©r|  s    r   Ú	_completez'_open_and_parse_card.<locals>._complete‹  s    € Ø�mÑ$ÒK¨°Ñ)9ÒK¸fÀU¹mÐKr   rg   ç      ø?rr  é   )rÐ  r‡   ç      ð?rÿ   rl  rÒ  )rŠ   rÐ   r²   r³   ru  rt  r   r\   rj   rÈ  rr   rÁ  rÀ   rá   râ   rÃ  rÓ  r^   Ú_card_fill_score)r;   r‡   r}  rã   Úfound_last4Úlast4Úbestr×  rå   rx   Úshow_btnr‘  s               r   Ú_open_and_parse_cardrà  ~  s  € ô —)‘)ÐIÈ5ÔXZ×XeÑXeÔf€KÙ$/ˆK×Ñ˜aÔ °T€Eä˜2Ó€DòLô �8‹_ó )ˆð	Ü ¤¨VÓ!4Ó5ˆDð
 ˆ<œ3Ô0°Ó6Ó7¸1Ò<Ü˜VÐ- fÓ-Ü�J‰J�sŒOðÜ$¤[°Ó%8Ó9�ð
 LPÐK[Ô'¨Ð.FÔGÐaeˆÙÜ# F°!Õ4ðÜ$¤[°Ó%8Ó9�ð PTÐO_Ô+¨DÐ2JÔKÐeiˆHáÜ˜VÐ9 h¨xÑ&8Ó9Ü�J‰J�sŒOô �q“ò 	ˆAÜ'¬´{À6Ó7JÓ(KÓLˆIÙ˜Y |Ò4Ø*/�	˜,Ñ'Ü 	Ó*Ô-=¸dÓ-CÒCØ �Ù˜ŒÙÜ�J‰J�s�Oð	ñ �TŽ?ÙðS)ñV �T˜,Ò'Ø"ˆˆ\ÑØ€KøôU �}‰}ò 	Ø‹Dð	ûô —=‘=ò Ø“ðûô —=‘=ò Ø“ðús6   ÁF3Â)GÃG+Æ3GÇGÇG(Ç'G(Ç+HÈHc                 ó,   ‡ — t        ˆ fd„dD «       «      S )u~   ÐšÐ¾Ð»-Ð²Ð¾ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð½Ñ‹Ñ… ÐºÐ»ÑŽÑ‡ÐµÐ²Ñ‹Ñ… Ð¿Ð¾Ð»ÐµÐ¹ ÐºÐ°Ñ€Ñ‚Ñ‹ â€” Ð´Ð»Ñ� Ð²Ñ‹Ð±Ð¾Ñ€Ð° Ð»ÑƒÑ‡ÑˆÐµÐ¹ Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ¸.c              3   óF   •K  — | ]  }‰j                  |«      sŒd –— Œ y­w)r›   N)ro   )rë   rû   r|  s     €r   rî   z#_card_fill_score.<locals>.<genexpr>À  s   øè ø€ ÒP�SÀÇ
Á
È3ÅŒqÑPùs   ƒ!š!)rk  rm  rn  )ÚsumrÖ  s   `r   rÛ  rÛ  ¾  s   ø€ äÓPÐ<ÔPÓPÐPr   c                 ó˜  — t        | «      \  }}|r(t        t        d„ |D «       «      t        |«      z  «      }nt	        dt        |dz  «      «      }t	        dt        |dz  «      «      }t	        dt        |dz  «      «      }t        d|› d	|› d
|› d	|› �«       | j                  d|› d|› d|› d|› d�	«       t        j                  d«       y)ui   Ð¡Ð²Ð°Ð¹Ð¿ ÐºÐ°Ñ€ÑƒÑ�ÐµÐ»Ð¸ ÐºÐ°Ñ€Ñ‚ Ð²Ð»ÐµÐ²Ð¾, Ñ‡Ñ‚Ð¾Ð±Ñ‹ Ð²Ñ‹ÐµÑ…Ð°Ñ‚ÑŒ Ñ�Ð»ÐµÐ´ÑƒÑŽÑ‰Ð¸Ðµ ÐºÐ°Ñ€Ñ‚Ñ‹.c              3   ó,   K  — | ]  }|d    d   –— Œ y­w)r‡   r›   Nr   rÇ  s     r   rî   z,_swipe_card_carousel_left.<locals>.<genexpr>Ç  s   è ø€ Ò8¨$�D˜‘N 1Õ%Ñ8ùs   ‚éÜ   g×£p=
×Ó?éÈ   ç333333ë?r�   ç¸…ëQ¸¾?z%parse_all_cards: swipe carousel left rý   ú -> úinput swipe rf   ú 400rÚ  N)	r  r4   rã  rr   rŒ   r!   rH   rá   râ   )r;   rz  r“   r”   r–   Úx1Úx2s          r   Ú_swipe_card_carousel_leftrï  Ã  sÄ   € ä'¨Ó/�M€Eˆ6ÙÜ”Ñ8°%Ô8Ó8¼3¸u»:ÑEÓF‰ä�”S˜ $™Ó'Ó(ˆÜ	ˆS”#�e˜d‘lÓ#Ó	$€BÜ	ˆR”�U˜T‘\Ó"Ó	#€BÜÐ
/°¨t°1°Q°C°t¸B¸4¸qÀÀÐDÔEØ
‡L�L�< ˜t 1 Q C q¨¨¨A¨a¨S°Ð5Ô6Ü‡J�Jˆs…Or   c           	      óH  — t        | «      sg S d}g }t        «       }d}d}d}t        |«      |k  �rRt        | «      }	 t	        |«      }	t        t        |	«      d„ ¬«      }
t        d„ |
D «       «      }|
D �cg c]  }|d   |vsŒ|‘Œ }}t        |«      |k\  r |st        d	«       t        | |
«       d
}d}d}Œ”|s$||k(  r|dz  }nd}|}|dk\  r	 |S t        | |
«       Œºd}d}|d   }|d   }|j                  |«       t        d|› dt        |«      › d|› d�«       t        | |d   |«      }|d   s|d   s
|d   s|d   r||d<   |j                  |«       t        | «       t!        j"                  d«       t        |«      |k  r�ŒR|S # t
        j                  $ r Y |S w xY wc c}w )u  ÐŸÐ¾ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÑƒ Ð¾Ñ‚ÐºÑ€Ñ‹Ð²Ð°ÐµÑ‚ ÐºÐ°Ð¶Ð´ÑƒÑŽ ÐºÐ°Ñ€Ñ‚Ñƒ, Ð´Ð¾Ñ…Ð¾Ð´Ð¸Ñ‚ Ð´Ð¾ Ñ€ÐµÐºÐ²Ð¸Ð·Ð¸Ñ‚Ð¾Ð², Ð½Ð°Ð¶Ð¸Ð¼Ð°ÐµÑ‚ ÐŸÐ¾ÐºÐ°Ð·Ð°Ñ‚ÑŒ Ð¸ Ð¿Ð°Ñ€Ñ�Ð¸Ñ‚ Ð´Ð°Ð½Ð½Ñ‹Ðµ.

    Ð�Ð° Ñ�ÐºÑ€Ð°Ð½Ðµ Ñ�Ñ‚Ð°Ð±Ð¸Ð»ÑŒÐ½Ð¾ Ð¿Ð¾Ð¼ÐµÑ‰Ð°ÐµÑ‚Ñ�Ñ� 5 ÐºÐ°Ñ€Ñ‚; ÑˆÐµÑ�Ñ‚Ð°Ñ� Ñ‡Ð°Ñ�Ñ‚Ð¾ Ð¾Ð±Ñ€ÐµÐ·Ð°Ð½Ð° Ð¸ Ð¼ÐµÑˆÐ°ÐµÑ‚ Ð´Ð¾Ñ�ÐºÑ€Ð¾Ð»Ð»Ð¸Ñ‚ÑŒ
    Ð¾Ñ�Ñ‚Ð°Ð»ÑŒÐ½Ñ‹Ðµ. ÐŸÐ¾Ñ�Ñ‚Ð¾Ð¼Ñƒ: Ð¿Ñ€Ð¾Ð²ÐµÑ€Ñ�ÐµÐ¼ 5 â†’ Ñ�Ð²Ð°Ð¹Ð¿ ÐºÐ°Ñ€ÑƒÑ�ÐµÐ»Ð¸ Ð²Ð»ÐµÐ²Ð¾ â†’ Ð¾Ñ�Ñ‚Ð°Ð»ÑŒÐ½Ñ‹Ðµ, Ñ� Ð´Ð¾Ð¿. Ñ�Ð²Ð°Ð¹Ð¿Ð°Ð¼Ð¸
    ÐµÑ�Ð»Ð¸ ÐºÐ°Ñ€Ñ‚ ÐµÑ‰Ñ‘ Ð±Ð¾Ð»ÑŒÑˆÐµ.
    é   Nr   Fc                 ó"   — | d   d   | d   d   fS )Nr‡   r   r›   r   rø   s    r   rù   z!parse_all_cards.<locals>.<lambda>é  s"   € À$ÀxÁ.ÐQRÑBSÐUYÐZbÑUcÐdeÑUfÐAg€ r   rú   c              3   ó&   K  — | ]	  }|d    –— Œ y­wrÆ  r   rÇ  s     r   rî   z"parse_all_cards.<locals>.<genexpr>ê  s   è ø€ Ò:¨D˜$˜w�-Ñ:ùs   ‚r}  uY   parse_all_cards: 5 ÐºÐ°Ñ€Ñ‚ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐµÐ½Ñ‹ â€” Ñ�Ð²Ð°Ð¹Ð¿ ÐºÐ°Ñ€ÑƒÑ�ÐµÐ»Ð¸ Ð²Ð»ÐµÐ²Ð¾Tr›   rg   u"   parse_all_cards: Ð¾Ñ‚ÐºÑ€Ñ‹Ð²Ð°ÑŽ z (ú/rÝ   r‡   rk  rl  rm  rn  ro  rÚ  )rË  rs  rr   r\   r   rj   rÈ  r½  rÁ  r¼   r!   rï  rw  rà  rt   rÂ   rá   râ   )r;   ri  Úvisible_before_swiperx  ry  Úlast_signatureÚstagnantÚswiped_after_fiver_   rx   rz  Ú	signaturer  Úpendingr-  r}  r|  s                    r   rƒ  rƒ  Ñ  sò  € ô   Ô'Øˆ	àÐØ€GÜ‹5€DØ€NØ€HØÐä
ˆg‹,˜Ó
"Ü Ó'ˆ	ð	Ü  Ó+ˆDô Ô(¨Ó.Ñ4gÔhˆÜÑ:°EÔ:Ó:ˆ	Ø$)ÖG˜D¨T°'©]À$Ò-F’4ÐGˆÐGäˆt‹9Ð,Ò,Ñ5FÜÐkÔlÜ% f¨eÔ4Ø $ÐØ!ˆNØˆHØáØ˜NÒ*Ø˜A‘‘à�Ø&ˆNØ˜1Š}Øð( €Nô' & f¨eÔ4ØàˆØˆØ˜‘ˆØ�w‘ˆØ�‰�ŒÜÐ0°°°r¼#¸d»)¸ÀAÀiÀ[ÐPQÐRÔSä% f¨f°XÑ.>ÀÓFˆà�-Ò  F¨<Ò$8¸FÀ8Ò<LÐPVÐW\ÒP]Ø#(ˆF�<Ñ Ø�N‰N˜6Ô"ä�6ÔÜ�
‰
�3ŒôY ˆg‹,˜Ô
"ð\ €NøôU �}‰}ò 	ØðR €NðU	üò
 Hs   ½F Á5FÂFÆFÆFc                 ó¤  — | syg }t        | d¬«      D �]*  \  }}|j                  d«      xs d|› �}|j                  d«      xs d}|j                  d«      xs d}|j                  d	«      xs d}|j                  d
«      xs d}|j                  d«      xs d}	|j                  d«      xs d}
|j                  |› d|› �«       |j                  d|› �«       |j                  d|› �«       |j                  d|› �«       |j                  d|› �«       |j                  d|	› �«       |j                  d|
› �«       �Œ- dj                  |«      S )uE   Ð¤Ð¾Ñ€Ð¼Ð¸Ñ€ÑƒÐµÑ‚ Ñ‡Ð¸Ñ‚Ð°ÐµÐ¼Ñ‹Ð¹ Ð²Ñ‹Ð²Ð¾Ð´ Ñ�Ð¿Ð¸Ñ�ÐºÐ° ÐºÐ°Ñ€Ñ‚.z[]r›   )Ústartro  u   ÐšÐ°Ñ€Ñ‚Ð° rk  ÚNonerl  rm  rn  r«  r¬  z. u      Ð½Ð¾Ð¼ÐµÑ€: z
   last4: u      Ñ�Ñ€Ð¾Ðº: z   cvv: u      Ñ‚Ð¸Ð¿: u      Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚: ri   )Ú	enumeratero   rt   rp   )rz  ÚlinesÚidxr  r}  r¤  rÝ  rm  rn  r«  Úvariants              r   Úformat_cards_outputr    sM  € áØà€EÜ˜u¨AÔ.ó 6‰	ˆˆTØ—‘˜Ó&Ò=¨K¸°uÐ*=ˆØ—‘˜-Ó(Ò2¨FˆØ—‘˜Ó&Ò0¨&ˆØ—‘˜(Ó#Ò- vˆØ�h‰h�u‹oÒ' ˆØ—H‘H˜[Ó)Ò3¨Vˆ	Ø—(‘(˜>Ó*Ò4¨fˆà�‰˜�u˜B˜u˜gÐ&Ô'Ø�‰� v hÐ/Ô0Ø�‰�z % Ð)Ô*Ø�‰�} V HÐ-Ô.Ø�‰�x ˜uÐ%Ô&Ø�‰�{ 9 +Ð.Ô/Ø�‰Ð*¨7¨)Ð4Ö5ð6ð" �9‰9�UÓÐr   c                 ó˜  — dddddœ}t        j                  d| t         j                  ¬«      }|r"|j                  d«      j	                  «       |d<   t        j                  d| t         j                  ¬«      }|r6|j                  d«      j                  «       j                  d	d
«      xs d|d<   t        j                  d| t         j                  ¬«      }|r6|j                  d«      j                  «       j                  d	d
«      xs d|d<   t        j                  d| t         j                  ¬«      }|r|j                  d«      |d<   |S )uX   ÐŸÐ°Ñ€Ñ�Ð¸Ñ‚ Ð¾Ð±Ð¾Ñ€Ð¾Ñ‚: Ñ€Ð°Ñ�Ñ…Ð¾Ð´Ñ‹, Ð´Ð¾Ñ…Ð¾Ð´Ñ‹, Ð¼ÐµÑ�Ñ�Ñ†, ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ�.N)ÚmonthÚexpensesÚincomeÚcategoryu›   \b(?:Ð¯Ð½Ð²Ð°Ñ€ÑŒ|Ð¤ÐµÐ²Ñ€Ð°Ð»ÑŒ|ÐœÐ°Ñ€Ñ‚|Ð�Ð¿Ñ€ÐµÐ»ÑŒ|ÐœÐ°Ð¹|Ð˜ÑŽÐ½ÑŒ|Ð˜ÑŽÐ»ÑŒ|Ð�Ð²Ð³ÑƒÑ�Ñ‚|Ð¡ÐµÐ½Ñ‚Ñ�Ð±Ñ€ÑŒ|ÐžÐºÑ‚Ñ�Ð±Ñ€ÑŒ|Ð�Ð¾Ñ�Ð±Ñ€ÑŒ|Ð”ÐµÐºÐ°Ð±Ñ€ÑŒ)\br™   r   r  u$   Ð Ð°Ñ�Ñ…Ð¾Ð´Ñ‹\s*(\d[\d\s.,]*)\s*â‚½r›   rf   rB   r  u"   Ð”Ð¾Ñ…Ð¾Ð´Ñ‹\s*(\d[\d\s.,]*)\s*â‚½r  uœ   (?:ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ð¸|Ð�Ð½Ð°Ð»Ð¸Ñ‚Ð¸ÐºÐ° Ñ„Ð¸Ð½Ð°Ð½Ñ�Ð¾Ð²|Ð�ÐµÑ‚ ÐºÐ°Ñ€Ñ‚|Ð’Ñ‹Ð¿ÑƒÑ�Ñ‚Ð¸Ñ‚ÑŒ ÐºÐ°Ñ€Ñ‚Ñƒ|ÐŸÐµÑ€ÐµÐ¹Ñ‚Ð¸ Ðº Ð°Ð½Ð°Ð»Ð¸Ñ‚Ð¸ÐºÐµ Ñ„Ð¸Ð½Ð°Ð½Ñ�Ð¾Ð²)r  )rŠ   rÐ   r²   r³   Ú
capitalizerE   rX  )rd   rä   Úmonth_matchÚexpenses_matchÚincome_matchÚcategory_matchs         r   Úparse_turnoverr  -  sS  € ð ØØØñ	€Fô —)‘)ð  {ð  }Aô  IK÷  IVñ  IVô  W€KÙØ%×+Ñ+¨AÓ.×9Ñ9Ó;ˆˆw‰ä—Y‘YÐFÈÔTV×TaÑTaÔb€NÙØ+×1Ñ1°!Ó4×:Ñ:Ó<×DÑDÀSÈ"ÓMÒUÐQUˆˆzÑä—9‘9ÐBÀDÔPR×P]ÑP]Ô^€LÙØ'×-Ñ-¨aÓ0×6Ñ6Ó8×@Ñ@ÀÀbÓIÒQÈTˆˆxÑä—Y‘Yð   ð  AEô  MO÷  MZñ  MZô  [€NÙØ+×1Ñ1°!Ó4ˆˆzÑà€Mr   ©Úresource_idrd   Úcontent_descÚcontainsc                óî  — | j                  «       D �]a  }|�N|j                  j                  dd«      xs d}||k(  s)|j                  d|z   «      s|j                  d|z   «      sŒT|��dj	                  |j                  j                  d«      xs dj                  «       «      }|r!|j                  «       |j                  «       vr#Œµ|j                  «       |j                  «       k7  rŒ×|�‡dj	                  |j                  j                  d«      xs dj                  «       «      }|r&|j                  «       |j                  «       vr�Œ9|c S |j                  «       |j                  «       k7  r�Œ`|c S  y)	ui  Ð�Ð°Ð¹Ñ‚Ð¸ Ð¿ÐµÑ€Ð²Ñ‹Ð¹ ÑƒÐ·ÐµÐ» Ð² Ð´Ð°Ð¼Ð¿Ðµ Ð¿Ð¾ resource-id / text / content-desc.

    Ð¡Ð¾Ð²Ð¿Ð°Ð´ÐµÐ½Ð¸Ðµ Ð¿Ð¾ Ñ‚ÐµÐºÑ�Ñ‚Ñƒ/Ð¾Ð¿Ð¸Ñ�Ð°Ð½Ð¸ÑŽ â€” Ñ€ÐµÐ³Ð¸Ñ�Ñ‚Ñ€Ð¾Ð½ÐµÐ·Ð°Ð²Ð¸Ñ�Ð¸Ð¼Ð¾Ðµ. `contains=True` â€” Ð¿Ð¾Ð´Ñ�Ñ‚Ñ€Ð¾ÐºÐ°.
    resource-id Ñ�Ð¾Ð¿Ð¾Ñ�Ñ‚Ð°Ð²Ð»Ñ�ÐµÑ‚Ñ�Ñ� ÐºÐ°Ðº Ð¿Ð¾Ð»Ð½Ð¾Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ Ð¸Ð»Ð¸ ÐºÐ°Ðº Ñ�ÑƒÑ„Ñ„Ð¸ÐºÑ� ':id/<name>'.
    NrK  rB   z:id/rô  rf   rd   re   )rm   rn   ro   Úendswithrp   rq   r°   )	rx   r  rd   r  r  rz   Úridr|   Úcds	            r   Ú
_find_noder  J  sA  € ð —	‘	“ó ˆØÐ"Ø—+‘+—/‘/ -°Ó4Ò:¸ˆCØ˜;Ò&¨#¯,©,°vÀÑ7KÔ*LÐPS×P\ÑP\Ð]`ÐcnÑ]nÔPoØØÐØ—H‘H˜dŸk™kŸo™o¨fÓ5Ò;¸×BÑBÓDÓEˆEÙØ—:‘:“< u§{¡{£}Ñ4ØØ—‘“ $§*¡*£,Ò.ØØÐ#Ø—‘˜4Ÿ;™;Ÿ?™?¨>Ó:Ò@¸b×GÑGÓIÓJˆBÙØ×%Ñ%Ó'¨r¯x©x«zÑ9Ùð Šð —‘“˜|×1Ñ1Ó3Ò3ÙØŠð'ð( r   c                óœ   — t        t        | «      «      }t        |||||¬«      }|€y|t        |j                  j                  d«      «      fS )ul   Ð¡Ð²ÐµÐ¶Ð¸Ð¹ Ð´Ð°Ð¼Ð¿ + Ð¿Ð¾Ð¸Ñ�Ðº ÑƒÐ·Ð»Ð°. Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ (node, bounds_dict) Ð»Ð¸Ð±Ð¾ (None, None).r  )NNr€   )r   r\   r  r�   rn   ro   )r;   r  rd   r  r  rx   rz   s          r   Úfind_node_boundsr  g  sI   € äœ VÓ,Ó-€DÜ�d¨¸$È\ÐdlÔm€DØ€|ØØ”˜dŸk™kŸo™o¨hÓ7Ó8Ð8Ð8r   c                 ór   — t        t        | «      «      }t        |d¬«      }t        |d¬«      }|duxr |duS )uˆ   Ð­ÐºÑ€Ð°Ð½ Ð²Ñ…Ð¾Ð´Ð°: ÐµÑ�Ñ‚ÑŒ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº 'Ð’Ð²ÐµÐ´Ð¸Ñ‚Ðµ Ð½Ð¾Ð¼ÐµÑ€ Ñ‚ÐµÐ»ÐµÑ„Ð¾Ð½Ð°' Ð¸ Ð¿Ð¾Ð»Ðµ Ð²Ð²Ð¾Ð´Ð° Ñ‚ÐµÐ»ÐµÑ„Ð¾Ð½Ð°.u*   Ð’Ð²ÐµÐ´Ð¸Ñ‚Ðµ Ð½Ð¾Ð¼ÐµÑ€ Ñ‚ÐµÐ»ÐµÑ„Ð¾Ð½Ð°©rd   ÚinputEditText©r  N)r   r\   r  )r;   rx   r  Úfields       r   Úis_on_login_screenr  p  s?   € äœ VÓ,Ó-€DÜ�tÐ"NÔO€EÜ�t¨Ô9€EØ˜ÐÒ2 ¨dÐ!2Ð2r   r  c                 óœ  — t        | |¬«      \  }}|�|€t        d|›d�«       yt        | |d   «       t        j                  d«       |j
                  j                  d«      xs d}t        t        |«      d	z   d
«      }| j                  d«       | j                  ddj                  dg|z  «      z   «       t        j                  d«       y)ue   Ð¤Ð¾ÐºÑƒÑ� Ð½Ð° Ð¿Ð¾Ð»Ðµ Ð²Ð²Ð¾Ð´Ð° Ð¸ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ðµ Ð²Ñ�ÐµÐ³Ð¾ Ð²Ð²ÐµÐ´Ñ‘Ð½Ð½Ð¾Ð³Ð¾ Ñ‚ÐµÐºÑ�Ñ‚Ð°.r  u   clear_text_field: Ð¿Ð¾Ð»Ðµ u    Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾Fr‡   ró   rd   rB   rÿ   r‘   zinput keyevent 123úinput keyevent rf   Ú67çš™™™™™Ù?T)r  r!   rÀ   rá   râ   rn   ro   rŒ   rr   rH   rp   )r;   r  rz   r€   rp  Úcounts         r   Úclear_text_fieldr$  x  s³   € ä# F¸ÔD�L€Dˆ&Ø€|�v�~ÜÐ)¨+¨Ð8LÐMÔNØÜ�V˜V HÑ-Ô.Ü‡J�Jˆs„OØ�k‰k�o‰o˜fÓ%Ò+¨€GÜ”�G“˜qÑ  "Ó%€EØ
‡L�LÐ%Ô&Ø
‡L�LÐ" S§X¡X¨t¨f°u©nÓ%=Ñ=Ô>Ü‡J�Jˆs„OØr   c                 óH  — t        j                  ddt        |«      «      }t        d|dz   «      D ]ð  }t	        | |¬«       t        | |¬«      \  }}|�$t        | |d   «       t        j                  d«       |D ]+  }| j                  d|› �«       t        j                  d«       Œ- t        j                  d	«       t        | |¬«      \  }}|�4t        j                  dd|j                  j                  d
«      xs d«      nd}	|	|k(  r yt        d|› d|› d|	›d|›�«       Œò y)uƒ  Ð�Ð°Ð´Ñ‘Ð¶Ð½Ð¾ Ð²Ð²ÐµÑ�Ñ‚Ð¸ Ñ†Ð¸Ñ„Ñ€Ñ‹ Ð² Ð¿Ð¾Ð»Ðµ: Ð¿Ð¾Ñ�Ð¸Ð¼Ð²Ð¾Ð»ÑŒÐ½Ð¾ + Ñ�Ð²ÐµÑ€ÐºÐ° Ñ� Ñ‚ÐµÐºÑ�Ñ‚Ð¾Ð¼ Ð¿Ð¾Ð»Ñ�, Ñ� Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð¾Ð¼.

    `input text` Ð½Ð° redroid Ð¸Ð½Ð¾Ð³Ð´Ð° Ñ‚ÐµÑ€Ñ�ÐµÑ‚ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ‹, Ð¿Ð¾Ñ�Ñ‚Ð¾Ð¼Ñƒ Ð²Ð²Ð¾Ð´Ð¸Ð¼ Ð¿Ð¾ Ð¾Ð´Ð½Ð¾Ð¼Ñƒ Ð¸
    Ð¿Ñ€Ð¾Ð²ÐµÑ€Ñ�ÐµÐ¼ Ð¸Ñ‚Ð¾Ð³Ð¾Ð²Ð¾Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ, Ð¾Ñ‡Ð¸Ñ‰Ð°Ñ� Ð¸ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ñ�Ñ� Ð¿Ñ€Ð¸ Ñ€Ð°Ñ�Ñ…Ð¾Ð¶Ð´ÐµÐ½Ð¸Ð¸.
    ú\DrB   r›   r  r‡   r"  úinput text ré  rõ   rd   Tztype_into_field(u   ): Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° u   : Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¾ u   , Ð¾Ð¶Ð¸Ð´Ð°Ð»Ð¾Ñ�ÑŒ F)rŠ   rv  rX   rt  r$  r  rÀ   rá   râ   rH   rn   ro   r!   )
r;   r  Údigitsrã   Úattemptrz   r€   Úchrå   Úgots
             r   Útype_into_fieldr,  ˆ  s%  € ô �V‰V�E˜2œs 6›{Ó+€FÜ˜˜H q™LÓ)ò BˆÜ˜¨[Õ9Ü'¨¸KÔH‰ˆˆfØÐÜ˜V V¨HÑ%5Ô6Ü�J‰J�sŒOØò 	ˆBØ�L‰L˜; r dÐ+Ô,Ü�J‰J�tÕð	ô 	�
‰
�3ŒÜ" 6°{ÔC‰ˆˆaØBFÐBRŒb�f‰f�U˜B §¡§¡°Ó 7Ò =¸2Ô>ÐXZˆØ�&Š=ÙÜÐ˜{˜mÐ+=¸g¸YÐFYÐZ]ÐY`Ð`uÐv|Ðuð  Aõ  	BðBð r   c                 ó*  — t        t        | «      «      }t        |dd¬«      xs t        |d¬«      }|€yt        d«       t	        | d¬	«      \  }}|€t	        | d
¬«      \  }}|€t        d«       yt        | |d   «       t        j                  d«       y)u�   Ð•Ñ�Ð»Ð¸ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½ Ð´Ð¸Ð°Ð»Ð¾Ð³ 'Ð”Ð»Ñ� Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¾Ð¹ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ ... Ð¿Ñ€ÐµÐ´Ð¾Ñ�Ñ‚Ð°Ð²ÑŒÑ‚Ðµ' â€” Ð½Ð°Ð¶Ð°Ñ‚ÑŒ 'ÐžÑ‚Ð¼ÐµÐ½Ð°'.u(   Ð”Ð»Ñ� Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¾Ð¹ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹T)rd   r  Úpermissions_missing_startr  FuV   ÐžÐ±Ð½Ð°Ñ€ÑƒÐ¶ÐµÐ½ Ð´Ð¸Ð°Ð»Ð¾Ð³ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ð¹ â€” Ð½Ð°Ð¶Ð¸Ð¼Ð°ÑŽ 'ÐžÑ‚Ð¼ÐµÐ½Ð°'u   ÐžÑ‚Ð¼ÐµÐ½Ð°r  Úbutton2uJ   dismiss_permission_dialog: ÐºÐ½Ð¾Ð¿ÐºÐ° 'ÐžÑ‚Ð¼ÐµÐ½Ð°' Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½Ð°r‡   rØ  )r   r\   r  r!   r  rÀ   rá   râ   )r;   rx   Úmarkerrz   r€   s        r   Údismiss_permission_dialogr1  ¡  s›   € äœ VÓ,Ó-€Dä�4ÐHÐSWÔXò 	EÜ�dÐ(CÔDð ð €~ØÜÐ`ÔaÜ# F°Ô@�L€Dˆ&Ø€~Ü'¨¸IÔF‰ˆˆfØ€~ÜÐXÔYØÜ�V˜V HÑ-Ô.Ü‡J�Jˆs„OØr   c                 óþ  — t        | d¬«      \  }}|€y|d   t        d|d   |d   z
  dz  «      z   }|d   d	   }	 | j                  «       }t        j                  t        j                  t        |«      «      «      j                  d
«      }|j                  ||f«      \  }}}	|	dkD  xr |dk  xr |	|z
  dkD  }t        d|› d|› d|› d|› d|	› d|rdnd› �«       |S # t        $ r}
t        d|
› �«       Y d}
~
yd}
~
ww xY w)u}  True/False â€” Ð°ÐºÑ‚Ð¸Ð²Ð½Ð° Ð»Ð¸ ÐºÐ½Ð¾Ð¿ÐºÐ° 'ÐŸÐ¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ Ð½Ð¾Ð²Ñ‹Ð¹ ÐºÐ¾Ð´' (Ñ�Ð¸Ð½Ñ�Ñ� vs Ñ�ÐµÑ€Ð°Ñ� Ñ� Ñ‚Ð°Ð¹Ð¼ÐµÑ€Ð¾Ð¼).

    Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ None, ÐµÑ�Ð»Ð¸ ÐºÐ½Ð¾Ð¿ÐºÐ¸ Ð½ÐµÑ‚ Ð½Ð° Ñ�ÐºÑ€Ð°Ð½Ðµ. ÐžÐ¿Ñ€ÐµÐ´ÐµÐ»Ñ�ÐµÐ¼ Ð¿Ð¾ Ñ†Ð²ÐµÑ‚Ñƒ Ð¿Ð¸ÐºÑ�ÐµÐ»Ñ� Ñƒ Ð»ÐµÐ²Ð¾Ð³Ð¾
    ÐºÑ€Ð°Ñ� ÐºÐ½Ð¾Ð¿ÐºÐ¸: Ð°ÐºÑ‚Ð¸Ð²Ð½Ð°Ñ� ~ (0,91,255), Ð½ÐµÐ°ÐºÑ‚Ð¸Ð²Ð½Ð°Ñ� ~ (245,247,250).
    ÚgetNewCodeButtonr  Nrƒ   rÎ   r…   é   r‡   r›   ÚRGBu;   _get_new_code_button_enabled: screencap Ð½Ðµ ÑƒÐ´Ð°Ð»Ñ�Ñ�: é–   r  éP   zgetNewCode pixel@(rý   z)=(z) -> u   Ð°ÐºÑ‚Ð¸Ð²Ð½Ð°u   Ð½ÐµÐ°ÐºÑ‚Ð¸Ð²Ð½Ð°)r  rŒ   rM   r   ÚopenÚioÚBytesIOrN   ÚconvertÚgetpixelr5   r!   )r;   rz   r€   r•   r–   rO   ÚimageÚrÚgÚbr?   Úis_blues               r   Ú_get_new_code_button_enabledrB  ¶  s$  € ô $ FÐ8JÔK�L€Dˆ&Ø€~ØØˆv‰œ˜R &¨¡/°F¸6±NÑ"BÀqÑ!HÓIÑI€AØˆxÑ˜Ñ€AðØ×ÑÓ!ˆÜ—
‘
œ2Ÿ:™:¤e¨D£kÓ2Ó3×;Ñ;¸EÓBˆØ—.‘. ! Q Ó(‰ˆˆ1ˆað �#‰gÒ2˜!˜c™'Ò2 q¨1¡u°¡l€GÜÐ
˜Q˜C˜q   3 q c¨¨1¨#¨Q¨q¨c°É7Ñ7GÐXlÐ6mÐnÔoØ€Nøô ò ÜÐIÈ#ÈÐOÔPÜûðús   »A'C Ã	C<Ã$C7Ã7C<r-   c                 ó   — t        j                   «       |z   }t        j                   «       |k  r•t        | «      }|€t        d«       nO|rBt        | d¬«      \  }}|�;t        d«       t	        | |d   «       t        j
                  d«       yt        d«       t        j
                  d«       t        j                   «       |k  rŒ•t        d	«       y
)u}   Ð–Ð´Ñ‘Ñ‚, Ð¿Ð¾ÐºÐ° ÐºÐ½Ð¾Ð¿ÐºÐ° 'ÐŸÐ¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ Ð½Ð¾Ð²Ñ‹Ð¹ ÐºÐ¾Ð´' Ñ�Ñ‚Ð°Ð½ÐµÑ‚ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ð¹, Ð¸ Ð½Ð°Ð¶Ð¸Ð¼Ð°ÐµÑ‚ ÐµÑ‘.uP   ÐšÐ½Ð¾Ð¿ÐºÐ° 'ÐŸÐ¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ Ð½Ð¾Ð²Ñ‹Ð¹ ÐºÐ¾Ð´' Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½Ð°, Ð¶Ð´Ñƒ...r3  r  uS   ÐšÐ½Ð¾Ð¿ÐºÐ° 'ÐŸÐ¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ Ð½Ð¾Ð²Ñ‹Ð¹ ÐºÐ¾Ð´' Ð°ÐºÑ‚Ð¸Ð²Ð½Ð° â€” Ð½Ð°Ð¶Ð¸Ð¼Ð°ÑŽr‡   rß   TuU   ÐšÐ½Ð¾Ð¿ÐºÐ° 'ÐŸÐ¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ Ð½Ð¾Ð²Ñ‹Ð¹ ÐºÐ¾Ð´' ÐµÑ‰Ñ‘ Ð² Ñ‚Ð°Ð¹Ð¼ÐµÑ€Ðµ, Ð¶Ð´Ñƒ...ud   Ð¢Ð°Ð¹Ð¼Ð°ÑƒÑ‚ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ� Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ ÐºÐ½Ð¾Ð¿ÐºÐ¸ 'ÐŸÐ¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ Ð½Ð¾Ð²Ñ‹Ð¹ ÐºÐ¾Ð´'F)rá   rB  r!   r  rÀ   râ   )r;   r-   r<  Ústaterz   r€   s         r   Úwait_and_tap_get_new_coderE  Í  sª   € ä�y‰y‹{˜WÑ$€HÜ
�)‰)‹+˜Ò
 Ü,¨VÓ4ˆØˆ=ÜÐbÕcÙÜ+¨FÐ@RÔS‰LˆD�&ØÐ!ÜÐiÔjÜ  ¨°Ñ)9Ô:Ü—
‘
˜3”ØäÐgÔhÜ�
‰
�3Œô �)‰)‹+˜Ó
 ô ÐnÔoØr   Úcodec                 óR  — t        j                  ddt        |«      «      }t        | d¬«      \  }}|€t	        d«       yt        | |d   «       t        j                  d«       |D ]+  }| j                  d	|› �«       t        j                  d
«       Œ- t        j                  d«       y)uÐ  Ð’Ð²Ð¾Ð´Ð¸Ñ‚ 6-Ð·Ð½Ð°Ñ‡Ð½Ñ‹Ð¹ ÐºÐ¾Ð´ Ð² Ð¿Ð¾Ð»Ðµ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ�.

    ÐŸÐ¾Ð»Ðµ ÐºÐ¾Ð´Ð° â€” OTP-Ð²Ð¸Ð´Ð¶ÐµÑ‚: Ð¾Ð½ Ð½Ðµ Ð¾Ñ‚Ð´Ð°Ñ‘Ñ‚ Ð²Ð²ÐµÐ´Ñ‘Ð½Ð½Ñ‹Ð¹ Ñ‚ÐµÐºÑ�Ñ‚ Ð² Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚ `text`, Ð° Ð¿Ñ€Ð¸
    Ð²ÐµÑ€Ð½Ð¾Ð¼ ÐºÐ¾Ð´Ðµ Ozon Ñ�Ð°Ð¼ ÑƒÑ…Ð¾Ð´Ð¸Ñ‚ Ð½Ð° Ñ�ÐºÑ€Ð°Ð½ Ð¿Ð°Ñ€Ð¾Ð»Ñ�. ÐŸÐ¾Ñ�Ñ‚Ð¾Ð¼Ñƒ Ð�Ð• Ñ�Ð²ÐµÑ€Ñ�ÐµÐ¼ Ð¸ Ð�Ð• Ñ‡Ð¸Ñ�Ñ‚Ð¸Ð¼
    Ð¿Ð¾Ð»Ðµ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ â€” Ð¿Ñ€Ð¾Ñ�Ñ‚Ð¾ Ð²Ð²Ð¾Ð´Ð¸Ð¼ Ñ†Ð¸Ñ„Ñ€Ñ‹ Ð¾Ð´Ð¸Ð½ Ñ€Ð°Ð·, Ð¿Ð¾Ñ�Ð¸Ð¼Ð²Ð¾Ð»ÑŒÐ½Ð¾.
    r&  rB   r  r  uG   enter_flash_call_code: Ð¿Ð¾Ð»Ðµ Ð²Ð²Ð¾Ð´Ð° ÐºÐ¾Ð´Ð° Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾Fr‡   ró   r'  g333333Ã?rÚ  T)	rŠ   rv  rX   r  r!   rÀ   rá   râ   rH   )r;   rF  r(  rz   r€   r*  s         r   Úenter_flash_call_coderH  â  s“   € ô �V‰V�E˜2œs 4›yÓ)€FÜ# F¸ÔH�L€Dˆ&Ø€~ÜÐUÔVØÜ�V˜V HÑ-Ô.Ü‡J�Jˆs„OØò ˆØ�‰�{ 2 $Ð'Ô(Ü�
‰
�4Õðô 	‡J�Jˆs„OØr   c                 ó  — t        j                   «       |z   }t        j                   «       |k  rD	 t        t        | «      «      ry	 t        j                  d«       t        j                   «       |k  rŒDy# t        $ r Y Œ9w xY w)uz   Ð–Ð´Ñ‘Ñ‚ Ð¿Ð¾Ñ�Ð²Ð»ÐµÐ½Ð¸Ñ� Ñ�ÐºÑ€Ð°Ð½Ð° Ð¿Ð°Ñ€Ð¾Ð»Ñ� (Ozon Ñ�Ð°Ð¼ Ð¿ÐµÑ€ÐµÐºÐ¸Ð´Ñ‹Ð²Ð°ÐµÑ‚ Ð¿Ñ€Ð¸ Ð²ÐµÑ€Ð½Ð¾Ð¼ ÐºÐ¾Ð´Ðµ).Trß   F)rá   r(  r`   r5   râ   ©r;   r-   r<  s      r   Úwait_for_lock_screenrK  ÷  sp   € ä�y‰y‹{˜WÑ$€HÜ
�)‰)‹+˜Ò
 ð	Ü"¤=°Ó#8Ô9Øð :ô 	�
‰
�3Œô �)‰)‹+˜Ó
 ð øô ò 	Ùð	ús   °A4 Á4	B Á?B Ú
max_roundsc                 óž   — d}t        |«      D ]<  }t        t        | «      «      s |S t        | |«      rd}t	        j
                  d«       Œ> |S )u  Ð’Ð²Ð¾Ð´Ð¸Ñ‚ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ Ð½Ð° Ñ�ÐºÑ€Ð°Ð½Ðµ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸. ÐŸÑ€Ð¸ Ñ�Ñ†ÐµÐ½Ð°Ñ€Ð¸Ð¸ 'Ð¿Ñ€Ð¸Ð´ÑƒÐ¼Ð°Ð¹Ñ‚Ðµ + Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð¸Ñ‚Ðµ'
    ÐºÐ¾Ð´-Ð¿Ð°Ñ€Ð¾Ð»ÑŒ Ð²Ð²Ð¾Ð´Ð¸Ñ‚Ñ�Ñ� Ð´Ð²Ð°Ð¶Ð´Ñ‹, Ð¿Ð¾Ñ�Ñ‚Ð¾Ð¼Ñƒ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ñ�ÐµÐ¼ Ð²Ð²Ð¾Ð´, Ð¿Ð¾ÐºÐ° Ñ�ÐºÑ€Ð°Ð½ Ð¿Ð°Ñ€Ð¾Ð»Ñ� Ð¾Ñ�Ñ‚Ð°Ñ‘Ñ‚Ñ�Ñ�.FTç      @)rt  r(  r`   rG  rá   râ   )r;   r0  rL  Úentered_anyrå   s        r   Úenter_lock_password_repeatedrP    sY   € ð €KÜ�:Óò ˆÜ"¤=°Ó#8Ô9Øð Ðô ' v¨xÔ8ØˆKÜ�
‰
�3�ðð Ðr   c                 óÖ  — 	 t        | «      }d}t        j                  d|t        j                  ¬«      s&t        j                  d|t        j                  ¬«      rd}n(t        j                  d|t        j                  ¬«      rd}d}t        j                  d|«      }|r.d	j                  |j                  d
«      j                  «       «      }|€|€y|xs d|dœS # t        $ r Y yw xY w)uà   ÐžÐ¿Ñ€ÐµÐ´ÐµÐ»Ñ�ÐµÑ‚ Ñ�ÐºÑ€Ð°Ð½ Ð²Ð²Ð¾Ð´Ð° ÐºÐ¾Ð´Ð°: Ñ‚Ð¸Ð¿ Ð´Ð¾Ñ�Ñ‚Ð°Ð²ÐºÐ¸ (Ð·Ð²Ð¾Ð½Ð¾Ðº/Ð¡ÐœÐ¡) Ð¸ Ñ†ÐµÐ»ÐµÐ²Ð¾Ð¹ Ð½Ð¾Ð¼ÐµÑ€.

    Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ {'method': 'call'|'sms'|'code', 'target': '+7 ...'} Ð¸Ð»Ð¸ None.
    Nu    Ð¿Ð¾Ñ�Ð»ÐµÐ´Ð½\w*\s+6\s+Ñ†Ð¸Ñ„Ñ€r™   u   Ð·Ð²Ð¾Ð½Ð¸Ð¼Úcallu>   ÐžÑ‚Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¸\s+ÐºÐ¾Ð´|Ð’Ð²ÐµÐ´Ð¸Ñ‚Ðµ\s+ÐºÐ¾Ð´|Ð¡ÐœÐ¡|SMSÚsmsz\+7[\s\-()0-9]{7,}rf   r   rF  )rË   r-  )r`   r5   rŠ   rÐ   r²   rp   r³   rq   )r;   ÚdumprË   r-  rñ   s        r   Údetect_code_screenrU    sß   € ð
Ü˜VÓ$ˆð €FÜ	‡y�yÐ4°dÄ"Ç-Á-ÕPÔTV×T]ÑT]Ð^mÐosÔ{}÷  |Iñ  |Iõ  UJØ‰Ü	�‰ÐTÐVZÔbd×boÑboÕ	pØˆØ€FÜ�I‰IÐ+¨TÓ2€EÙØ—‘˜%Ÿ+™+ a›.×.Ñ.Ó0Ó1ˆØ€~˜&˜.ØØÒ& °&Ñ9Ð9øô ò Ùðús   ‚C Ã	C(Ã'C(c                 óü   — 	 | j                  d«      xs d}t        j                  d|«      D ]  }|j	                  d«      c S  t        j
                  d|«      }|r|j	                  d«      S dS # t        $ r Y yw xY w)u_   Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ package Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ� Ð½Ð° Ð¿ÐµÑ€ÐµÐ´Ð½ÐµÐ¼ Ð¿Ð»Ð°Ð½Ðµ (Ð¸Ð»Ð¸ '').zdumpsys windowrB   z'mCurrentFocus=Window\{[^}]*\s+([\w.]+)/r›   zmFocusedApp=.*\s+([\w.]+)/)rH   r5   rŠ   Úfinditerr³   rÐ   ©r;   Úoutrñ   s      r   Úget_foreground_packagerZ  (  s€   € ðØ�l‰lÐ+Ó,Ò2°ˆô —‘ÐGÈÓMò ˆØ�{‰{˜1‹~Òðä�I‰IÐ3°SÓ9€EÙ"ˆ5�;‰;�q‹>Ð*¨Ð*øô ò Ùðús   ‚A/ Á/	A;Á:A;Úwaitc                 óð   — t        | «      t        k(  ry	 | j                  dt        › �«       t        j                  |«       t        | «      t        k(  S # t        $ r}t        d|› �«       Y d}~ŒCd}~ww xY w)u�  Ð“Ð°Ñ€Ð°Ð½Ñ‚Ð¸Ñ€ÑƒÐµÑ‚, Ñ‡Ñ‚Ð¾ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ Ozon Ð½Ð° Ð¿ÐµÑ€ÐµÐ´Ð½ÐµÐ¼ Ð¿Ð»Ð°Ð½Ðµ.

    Ð•Ñ�Ð»Ð¸ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ Ð»Ð°ÑƒÐ½Ñ‡ÐµÑ€/Ð´Ñ€ÑƒÐ³Ð¾Ðµ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ, Ñ�ÐºÑ€Ð°Ð½ Ozon Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚ÑŒ Ð½ÐµÐ»ÑŒÐ·Ñ�, Ð¸ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ°
    Ñ�Ð¾Ñ�Ñ‚Ð¾Ñ�Ð½Ð¸Ñ� Ð²Ñ…Ð¾Ð´Ð° Ð»Ð¾Ð¶Ð½Ð¾ Ð¿Ð¾ÐºÐ°Ð·Ñ‹Ð²Ð°ÐµÑ‚ Â«Ð²Ñ…Ð¾Ð´ Ð½Ðµ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Â». ÐŸÐ¾Ñ�Ñ‚Ð¾Ð¼Ñƒ Ð¿Ð¾Ð´Ð½Ð¸Ð¼Ð°ÐµÐ¼ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ.
    Túam start -n z)ensure_ozon_foreground: am start failed: N)rZ  ÚOZON_PACKAGErH   ÚOZON_ACTIVITYr5   r!   rá   râ   )r;   r[  r?   s      r   Úensure_ozon_foregroundr`  4  so   € ô ˜fÓ%¬Ò5Øð?Ø�‰�|¤M ?Ð3Ô4ô 	‡J�JˆtÔÜ! &Ó)¬\Ñ9Ð9øô ò ?ÜÐ7¸°uÐ=×>Ñ>ûð?ús   •A Á	A5ÁA0Á0A5c                 ó–  — t        | ¬«      }t        |«       t        d«      D ]�  }	 t        |«      }t        |«      rdddœc S t        j                  d|t        j                  ¬«      rdd	dœc S t        j                  d
|t        j                  ¬«      rdddœc S t        j                  d«       Œ‘ dddœS # t        $ r d}Y Œ•w xY w)uÛ  ÐŸÑ€Ð¾Ð²ÐµÑ€Ñ�ÐµÑ‚ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¹ Ñ�ÐºÑ€Ð°Ð½ ÑƒÑ�Ñ‚Ñ€Ð¾Ð¹Ñ�Ñ‚Ð²Ð° Ð¸ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ�ÐµÑ‚, Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½ Ð»Ð¸ Ð²Ñ…Ð¾Ð´ Ð² Ð›Ðš.

    Ð’Ñ…Ð¾Ð´ Ñ�Ñ‡Ð¸Ñ‚Ð°ÐµÑ‚Ñ�Ñ� Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð½Ñ‹Ð¼, ÐµÑ�Ð»Ð¸ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ Ñ�ÐºÑ€Ð°Ð½ Ð²Ð²Ð¾Ð´Ð° ÐºÐ¾Ð´-Ð¿Ð°Ñ€Ð¾Ð»Ñ� (PIN) Ð»Ð¸Ð±Ð¾
    Ð³Ð»Ð°Ð²Ð½Ñ‹Ð¹ Ñ�ÐºÑ€Ð°Ð½ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ�. Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ {'logged_in': bool, 'screen': str}.

    ÐŸÐµÑ€ÐµÐ´ Ñ‡Ñ‚ÐµÐ½Ð¸ÐµÐ¼ Ñ�ÐºÑ€Ð°Ð½Ð° Ð¿Ð¾Ð´Ð½Ð¸Ð¼Ð°ÐµÐ¼ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ Ozon Ð½Ð° Ð¿ÐµÑ€ÐµÐ´Ð½Ð¸Ð¹ Ð¿Ð»Ð°Ð½: ÐµÑ�Ð»Ð¸ Ð¾Ð½Ð¾
    Ñ�Ð²Ñ‘Ñ€Ð½ÑƒÑ‚Ð¾ (Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ Ð»Ð°ÑƒÐ½Ñ‡ÐµÑ€/Ð´Ñ€ÑƒÐ³Ð¾Ðµ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ), Ñ�ÐºÑ€Ð°Ð½ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚ÑŒ Ð½ÐµÐ»ÑŒÐ·Ñ� Ð¸ Ð²Ñ…Ð¾Ð´
    Ð»Ð¾Ð¶Ð½Ð¾ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ�Ð»Ñ�Ñ� ÐºÐ°Ðº Ð½ÐµÐ²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð½Ñ‹Ð¹.
    rR   r+   rB   TÚpin)Ú	logged_inÚscreenu²   \bÐ“Ð»Ð°Ð²Ð½Ð°Ñ�\b|ÐžÑ�Ð½Ð¾Ð²Ð½Ð¾Ð¹\s+Ñ�Ñ‡[ÐµÑ‘]Ñ‚|Ð‘Ð°Ð»Ð°Ð½Ñ�|ÐžÑ�Ñ‚Ð°Ñ‚Ð¾Ðº|Ð”Ð¾Ñ…Ð¾Ð´Ñ‹|Ð Ð°Ñ�Ñ…Ð¾Ð´Ñ‹|ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ð¸|ÐžÐ¿Ð»Ð°Ñ‚Ð¸Ñ‚ÑŒ|ÐŸÐ¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÑŒ|ÐŸÐµÑ€ÐµÐ²ÐµÑ�Ñ‚Ð¸r™   Úmainu†   Ð’Ð²ÐµÐ´Ð¸Ñ‚Ðµ\s+Ð½Ð¾Ð¼ÐµÑ€\s+Ñ‚ÐµÐ»ÐµÑ„Ð¾Ð½Ð°|Ð’Ð²ÐµÐ´Ð¸Ñ‚Ðµ\s+ÐºÐ¾Ð´|Ð¿Ð¾Ñ�Ð»ÐµÐ´Ð½\w*\s+6\s+Ñ†Ð¸Ñ„Ñ€|Ð’Ð¾Ð¹Ñ‚Ð¸\s+Ð¿Ð¾\s+Ð¿Ð¾Ñ‡Ñ‚ÐµFÚloginrß   Úunknown)r@   r`  rt  r`   r5   r(  rŠ   rÐ   r²   rá   râ   )r"   r;   rå   rT  s       r   Úcheck_login_staterh  D  sÏ   € ô ¨Ô5€FÜ˜6Ô"ä�1‹Xò ˆð	Ü  Ó(ˆDô ˜tÔ$Ø!%°Ñ7Ò7ä�9‰9ð BØÜ—-‘-õ
ð
 "&°Ñ8Ò8ä�9‰9ð VØÜ—-‘-õ
ð
 "'°'Ñ:Ò:ô 	�
‰
�3�ð1ð4 ¨)Ñ4Ð4øô/ ò 	ØŠDð	ús   §B:Â:CÃCÚnew_code_timeoutÚpress_get_new_codec                 óþ  — |€d„ }t        | ¬«      }t        |«      st        d«      ‚t        d«       t	        |d¬«       t        j                  dd	t        |«      «      }t        |«      d
k(  r|d   dv r|dd }t        d|› �«       t        |d|«      st        d|› �«      ‚|j                  d«       t        j                  d«       t        |d¬«      \  }}	|	€t        |d¬«      \  }}	|	€t        d«      ‚t        ||	d   «       t        j                  d«       t        |«       t        j                  d«       |r$t!        ||¬«      st        d«      ‚t        |«       nt        d«       t#        |«      }
t        d|
› �«       |
|dœ}	  ||«      }t        j                  dd	t        |«      «      }t        |«      dk7  rt        d|›�«      ‚t        d «       t'        ||«      st        d!«      ‚t)        |d"¬«      st        d#«      ‚t        d$«       t+        ||«      st        d%«      ‚t-        | |«       t/        | |«       t        d&| › d'|› d(�«       t1        d)| › d*| › d+�«       y,# t$        $ r
  |«       }Y Œçw xY w)-ug  Ð”Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ (Ð·Ð°Ð»Ð¾Ð³Ð¸Ð½Ð¸Ñ‚ÑŒ) Ð›Ðš Ð² Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ð¸ Ozon Ð¿Ð¾ Ð½Ð¾Ð¼ÐµÑ€Ñƒ Ñ‚ÐµÐ»ÐµÑ„Ð¾Ð½Ð° Ð¸ Ð¿Ð°Ñ€Ð¾Ð»ÑŽ.

    Ð¨Ð°Ð³Ð¸:
      1) Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ°, Ñ‡Ñ‚Ð¾ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ Ñ�ÐºÑ€Ð°Ð½ Ð²Ñ…Ð¾Ð´Ð° (Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº + Ð¿Ð¾Ð»Ðµ Ñ‚ÐµÐ»ÐµÑ„Ð¾Ð½Ð°);
      2) Ð¾Ñ‡Ð¸Ñ�Ñ‚ÐºÐ° Ð¿Ð¾Ð»Ñ� Ð²Ð²Ð¾Ð´Ð°;
      3) Ð²Ð²Ð¾Ð´ Ð½Ð¾Ð¼ÐµÑ€Ð° Ð±ÐµÐ· +7 (Ð½Ð°Ð¿Ñ€Ð¸Ð¼ÐµÑ€ 9000000000);
      4) Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ðµ 'Ð’Ð¾Ð¹Ñ‚Ð¸' (+ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¸Ðµ Ð´Ð¸Ð°Ð»Ð¾Ð³Ð° Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ð¹ Ñ‡ÐµÑ€ÐµÐ· 'ÐžÑ‚Ð¼ÐµÐ½Ð°');
      5) Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ðµ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ 'ÐŸÐ¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ Ð½Ð¾Ð²Ñ‹Ð¹ ÐºÐ¾Ð´' Ð¸ Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ðµ;
      6) Ð·Ð°Ð¿Ñ€Ð¾Ñ� 6-Ð·Ð½Ð°Ñ‡Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð´Ð° Ñƒ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ� (code_provider);
      7) Ð²Ð²Ð¾Ð´ ÐºÐ¾Ð´Ð°;
      8) Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ð° Ð½Ð° Ñ�ÐºÑ€Ð°Ð½ Ð¿Ð°Ñ€Ð¾Ð»Ñ� Ð¸ Ð²Ð²Ð¾Ð´ Ð¿Ð°Ñ€Ð¾Ð»Ñ� Ñ�ÑƒÑ‰ÐµÑ�Ñ‚Ð²ÑƒÑŽÑ‰ÐµÐ¹ Ñ„ÑƒÐ½ÐºÑ†Ð¸ÐµÐ¹;
      9) Ñ�Ð¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ðµ Ð½Ð¾Ð¼ÐµÑ€Ð°/Ð¿Ð°Ñ€Ð¾Ð»Ñ� Ð² Ð‘Ð” Ð¸ Ð¾Ñ‚Ñ‡Ñ‘Ñ‚ Ñ� Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸ÐµÐ¼ Ð¿Ð¾Ð»Ð½Ð¾Ð³Ð¾ Ñ‡ÐµÐºÐ°.

    `code_provider` â€” callable Ð±ÐµÐ· Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð¾Ð², Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÑŽÑ‰Ð¸Ð¹ ÐºÐ¾Ð´ (Ð¿Ð¾ ÑƒÐ¼Ð¾Ð»Ñ‡Ð°Ð½Ð¸ÑŽ input()).
    Nc                  ó4   — t        d«      j                  «       S )NuT   Ð’Ð²ÐµÐ´Ð¸Ñ‚Ðµ 6-Ð·Ð½Ð°Ñ‡Ð½Ñ‹Ð¹ ÐºÐ¾Ð´ Ð¸Ð· Ð²Ñ…Ð¾Ð´Ñ�Ñ‰ÐµÐ³Ð¾ Ð·Ð²Ð¾Ð½ÐºÐ°/Ð¡ÐœÐ¡: )ÚinputrE   r   r   r   Úcode_providerz!add_device.<locals>.code_provider  s   € ÜÐoÓp×vÑvÓxÐxr   rR   u�   Ð¡ÐµÐ¹Ñ‡Ð°Ñ� Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ Ð½Ðµ Ñ�ÐºÑ€Ð°Ð½ Ð²Ñ…Ð¾Ð´Ð°: Ð½ÐµÑ‚ Ð¿Ð¾Ð»Ñ� Ñ‚ÐµÐ»ÐµÑ„Ð¾Ð½Ð° Ð¸Ð»Ð¸ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° 'Ð’Ð²ÐµÐ´Ð¸Ñ‚Ðµ Ð½Ð¾Ð¼ÐµÑ€ Ñ‚ÐµÐ»ÐµÑ„Ð¾Ð½Ð°'u,   Ð­ÐºÑ€Ð°Ð½ Ð²Ñ…Ð¾Ð´Ð° Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´Ñ‘Ð½r  r  r&  rB   é   r   )r£   r¤   r›   u(   Ð’Ð²Ð¾Ð¶Ñƒ Ð½Ð¾Ð¼ÐµÑ€ Ñ‚ÐµÐ»ÐµÑ„Ð¾Ð½Ð°: uP   Ð�Ðµ ÑƒÐ´Ð°Ð»Ð¾Ñ�ÑŒ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾ Ð²Ð²ÐµÑ�Ñ‚Ð¸ Ð½Ð¾Ð¼ÐµÑ€ Ñ‚ÐµÐ»ÐµÑ„Ð¾Ð½Ð° zinput keyevent 111rÒ  ÚsubmitButtonu
   Ð’Ð¾Ð¹Ñ‚Ð¸r  u-   Ð�Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½Ð° ÐºÐ½Ð¾Ð¿ÐºÐ° 'Ð’Ð¾Ð¹Ñ‚Ð¸'r‡   ç      @rÚ  r,   uï   ÐšÐ½Ð¾Ð¿ÐºÐ° 'ÐŸÐ¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ Ð½Ð¾Ð²Ñ‹Ð¹ ÐºÐ¾Ð´' Ð½Ðµ Ñ�Ñ‚Ð°Ð»Ð° Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ð¹ Ð·Ð° Ð¾Ñ‚Ð²ÐµÐ´Ñ‘Ð½Ð½Ð¾Ðµ Ð²Ñ€ÐµÐ¼Ñ� (Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾, Ñ�Ñ€Ð°Ð±Ð¾Ñ‚Ð°Ð» Ð»Ð¸Ð¼Ð¸Ñ‚ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ð¹ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ â€” Ð¿Ð¾Ð¿Ñ€Ð¾Ð±ÑƒÐ¹Ñ‚Ðµ Ð¿Ð¾Ð·Ð¶Ðµ)ux   ÐŸÑ€Ð¾Ð¿ÑƒÑ�ÐºÐ°ÑŽ 'ÐŸÐ¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ Ð½Ð¾Ð²Ñ‹Ð¹ ÐºÐ¾Ð´' â€” Ð¸Ñ�Ð¿Ð¾Ð»ÑŒÐ·ÑƒÑŽ ÐºÐ¾Ð´ Ð¸Ð· Ð¿ÐµÑ€Ð²Ð¾Ð¹ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸u   Ð­ÐºÑ€Ð°Ð½ ÐºÐ¾Ð´Ð°: )r,  r;   rÙ  u;   ÐžÐ¶Ð¸Ð´Ð°Ð»Ñ�Ñ� ÐºÐ¾Ð´ Ð¸Ð· 6 Ñ†Ð¸Ñ„Ñ€, Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¾: u!   ÐšÐ¾Ð´ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½, Ð²Ð²Ð¾Ð¶Ñƒu'   Ð�Ðµ ÑƒÐ´Ð°Ð»Ð¾Ñ�ÑŒ Ð²Ð²ÐµÑ�Ñ‚Ð¸ ÐºÐ¾Ð´ç      9@uz   ÐŸÐ¾Ñ�Ð»Ðµ Ð²Ð²Ð¾Ð´Ð° ÐºÐ¾Ð´Ð° Ð½Ðµ Ð¿Ð¾Ñ�Ð²Ð¸Ð»Ñ�Ñ� Ñ�ÐºÑ€Ð°Ð½ Ð¿Ð°Ñ€Ð¾Ð»Ñ� â€” Ð²ÐµÑ€Ð¾Ñ�Ñ‚Ð½Ð¾, ÐºÐ¾Ð´ Ð½ÐµÐ²ÐµÑ€Ð½Ñ‹Ð¹uF   Ð­ÐºÑ€Ð°Ð½ Ð¿Ð°Ñ€Ð¾Ð»Ñ� Ð¾Ð±Ð½Ð°Ñ€ÑƒÐ¶ÐµÐ½ â€” Ð²Ð²Ð¾Ð¶Ñƒ Ð¿Ð°Ñ€Ð¾Ð»ÑŒuT   Ð�Ðµ ÑƒÐ´Ð°Ð»Ð¾Ñ�ÑŒ Ð²Ð²ÐµÑ�Ñ‚Ð¸ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ Ð½Ð° Ñ�ÐºÑ€Ð°Ð½Ðµ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸u   Ð›Ðš Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½ Ð´Ð»Ñ� 'u   ' (Ð½Ð¾Ð¼ÐµÑ€ z).u   Ð›Ðš 'ul   ' ÑƒÑ�Ð¿ÐµÑˆÐ½Ð¾ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½. Ð ÐµÐºÐ¾Ð¼ÐµÐ½Ð´ÑƒÑŽ Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÑŒ Ð¿Ð¾Ð»Ð½Ñ‹Ð¹ Ñ‡ÐµÐº: full_check('z').T)r@   r  r3   r!   r$  rŠ   rv  rX   rr   r,  rH   rá   râ   r  rÀ   r1  rE  rU  rF   rH  rK  rP  Úupdate_numberÚupdate_passwordr   )r"   r¤  r0  rn  ri  rj  r;   r(  rz   r€   Ú	code_hintÚcode_contextÚraw_coderF  s                 r   Ú
add_devicerx  n  s³  € ð  Ðò	yô ¨Ô5€Fô ˜fÔ%Üð ló
ð 	
ô Ð6Ô7ô �V¨Õ9ô �V‰V�E˜2œs 6›{Ó+€FÜ
ˆ6ƒ{�bÒ˜V A™Y¨*Ñ4Ø˜˜�ˆÜÐ
2°6°(Ð;Ô<Ü˜6 ?°FÔ;ÜÐmÐntÐmuÐvÓwÐwð ‡L�LÐ%Ô&Ü‡J�Jˆs„OÜ# F¸ÔG�L€Dˆ&Ø€~Ü'¨°\ÔB‰ˆˆfØ€~ÜÐJÓKÐKÜ�V˜V HÑ-Ô.Ü‡J�Jˆs„Oô ˜fÔ%Ü‡J�Jˆs„Oñ Ü(¨Ð9IÕJÜðJóð ô 	" &Õ)äð  Gô  	Hô # 6Ó*€IÜÐ
 	˜{Ð+Ô,Ø%°Ñ8€Lð#Ù  Ó.ˆô �6‰6�%˜œS ›]Ó+€DÜ
ˆ4ƒy�A‚~ÜÐXÐY]ÐX`ÐaÓbÐbÜÐ+Ô,ô ! ¨Ô.ÜÐDÓEÐEô   °Õ5Üð  Xó  Yð  	YÜÐPÔQÜ'¨°Ô9ÜÐqÓrÐrô �+˜vÔ&Ü�K Ô*äÐ
(¨¨°^ÀFÀ8È2ÐNÔOÜ	Ø
��ð TØT_ÐS`Ð`cð	eôð øô7 ò #Ù “?Šð#ús   ÆI) É)I<É;I<c                 óT  — d„ }d„ }ddddg dœ}t        | ¬«      }	 t        |«      }t        |«      rct	        d«       t        | «      }|s
t        «       }t	        d|rd	nd› �«       t        ||«      }t	        d
|› �«       t        j                  d«       	 t        |«      }t        |«      }	|	j                  d«      |d<   |	j                  d«      |d<   t        | |«      |d<   |d   xs d}
|
r |
j                  dd«      j                  «       nd}|r�t	        d|› d�«       t        j                  d«       t        ||«       	 t        |«      }t!        |«      }|j                  d«      r|j                  d«      |d<   |j                  d«      |d<    ||«       t        j                  d«       t#        |d¬«       t        |d«      rNt        j                  d«       	 t        |«      }t%        |«      }||d<    ||«       t        j                  d«       t'        |«      r-t        j                  d«       t)        |«      }||d<    ||«       t+        d«       t+        d|j                  d«      › �«       t+        d|j                  d«      › �«       t+        d|j                  d«      › �«       t+        d|j                  d«      › �«       t+        d «       t+        t-        |j                  dg «      «      «       d!„ }	  ||j                  dg «      «      }|j                  d«      |j                  d«      |j                  d«      |j                  d«      d"   |j                  d«      d#   |d$œ}|j                  d«      �|j                  d«      rd%nd&|d<   t/        | |«       t	        d'| › d(|› �«       |S # t        $ r d}Y �Œ¡w xY w# t        $ r d}Y �Œ9w xY w# t        $ r d}Y �Œžw xY w# t        $ r d}Y �Œw xY w# t        $ r}t	        d)| › d*|› �«       Y d}~|S d}~ww xY w)+uÚ  Ð’Ñ‹Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÑŒ Ð¿Ð¾Ð»Ð½Ñ‹Ð¹ Ñ‡ÐµÐº Ð¿Ð¾ ÑˆÐ°Ð³Ð°Ð¼:
    1) Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒÑ�Ñ� Ðº ÑƒÑ�Ñ‚Ñ€Ð¾Ð¹Ñ�Ñ‚Ð²Ñƒ Ð¿Ð¾ Ð¸Ð¼ÐµÐ½Ð¸
    2) ÐµÑ�Ð»Ð¸ Ñ�ÐºÑ€Ð°Ð½ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸ â€” Ð²Ð²ÐµÑ�Ñ‚Ð¸ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ
    3) Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ð¸Ñ‚ÑŒ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¹ Ñ�ÐºÑ€Ð°Ð½ (Ð³Ð»Ð°Ð²Ð½Ð°Ñ�/Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¸/Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚/Ð¾Ñ�Ð½Ð¾Ð²Ð½Ð¾Ð¹ Ñ�Ñ‡ÐµÑ‚)
    4) Ð¿ÐµÑ€ÐµÐ¹Ñ‚Ð¸ Ð½Ð° Ð“Ð»Ð°Ð²Ð½Ð°Ñ� (Ð½Ð°Ð¶Ð¸Ð¼Ð°Ñ� ÐºÐ½Ð¾Ð¿ÐºÑƒ Ð�Ð°Ð·Ð°Ð´ Ð¿Ñ€Ð¸ Ð½ÐµÐ¾Ð±Ñ…Ð¾Ð´Ð¸Ð¼Ð¾Ñ�Ñ‚Ð¸)
    5) Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ Ð±Ð°Ð»Ð°Ð½Ñ� Ð¸ Ð¸Ð¼Ñ�; Ð½Ð°Ð¶Ð°Ñ‚ÑŒ Ð¿Ð¾ Ð¸Ð¼ÐµÐ½Ð¸ -> Ð¿ÐµÑ€ÐµÐ¹Ñ‚Ð¸ Ð² Ð�ÐºÐºÐ°ÑƒÐ½Ñ‚
    6) Ð² Ð�ÐºÐºÐ°ÑƒÐ½Ñ‚: Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚ÑŒ Ð½Ð¾Ð¼ÐµÑ€ Ð¸ Ð¸Ð¼Ñ�, Ð·Ð°Ñ‚ÐµÐ¼ Ð½Ð°Ð¶Ð°Ñ‚ÑŒ Ð�Ð°Ð·Ð°Ð´
    7) Ð½Ð°Ð¹Ñ‚Ð¸ Ð¸ Ð½Ð°Ð¶Ð°Ñ‚ÑŒ 'Ð’Ñ�Ðµ' Ð² Ñ€Ð°Ð·Ð´ÐµÐ»Ðµ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¹
    8) Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚ÑŒ Ð¾Ð±Ð¾Ñ€Ð¾Ñ‚
    9) Ð�Ð°Ð·Ð°Ð´
    10) Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ ÐžÑ�Ð½Ð¾Ð²Ð½Ð¾Ð¹ Ñ�Ñ‡Ñ‘Ñ‚ Ð¸ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚ÑŒ Ð²Ñ�Ðµ ÐºÐ°Ñ€Ñ‚Ñ‹
    11) Ð�Ð°Ð·Ð°Ð´

    Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ Ñ�Ð»Ð¾Ð²Ð°Ñ€ÑŒ Ñ� Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð°Ð¼Ð¸.
    c                 ó`  — 	 t        | «      }t        j                  d|t        j                  ¬«      rd|fS t        j                  d|t        j                  ¬«      rd|fS t        |«      xs t        |«      j                  d«      }|rd|fS t        | «      rd	|fS d
|fS # t        $ r Y yw xY w)N)rg  rB   uN   \bÐ“Ð»Ð°Ð²Ð½Ð°Ñ�\b|ÐžÑ�Ð½Ð¾Ð²Ð½Ð¾Ð¹\s+Ñ�Ñ‡[ÐµÑ‘]Ñ‚|Ð‘Ð°Ð»Ð°Ð½Ñ�|ÐžÑ�Ñ‚Ð°Ñ‚Ð¾Ðºr™   r_  uP   Ð”Ð¾Ñ…Ð¾Ð´Ñ‹|Ð Ð°Ñ�Ñ…Ð¾Ð´Ñ‹|ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ð¸|ÐŸÐ¾Ñ�Ð»ÐµÐ´Ð½Ð¸Ðµ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¸u   Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¸r¤  r`  u   Ð¾Ñ�Ð½Ð¾Ð²Ð½Ð¾Ð¹ Ñ�Ñ‡ÐµÑ‚rg  )	r`   r5   rŠ   rÐ   r²   r©  r§  ro   rË  )r;   rT  Únums      r   Údetect_screenz!full_check.<locals>.detect_screenç  sÑ   € ð	!Ü  Ó(ˆDô
 �9‰9ÐfÐhlÔtv÷  uBñ  uBõ  CØ# TÐ)Ð)ä�9‰9ÐhÐjnÔvx÷  wDñ  wDõ  EØ% tÐ+Ð+ä  Ó&Ò[Ô*GÈÓ*M×*QÑ*QÐRZÓ*[ˆÙØ# TÐ)Ð)ä Ô'Ø.°Ð4Ð4à˜$ˆÐøô# ò 	!Ù ð	!ús   ‚B! Â!	B-Â,B-c                 óJ  — 	 t        | «      }t        |«      }t        |d«      }|rNt        |d   t        t
        f«      rt        | g|d   ¢­Ž  nt        | |d   «       t        j                  d«       y	 t        | «       t        j                  d«       y# t        $ r Y Œ,w xY w©Nu#   ^\s*(Ð�Ð°Ð·Ð°Ð´|Back|â€¹|â†�|<)\s*$r‡   rÚ  T©r\   r   rÃ  r»   r¼   r½   rÀ   rá   râ   r5   rÂ   ©r;   r_   rx   Úbtns       r   Útap_backzfull_check.<locals>.tap_backý  ó›   € ð	Ü# FÓ+ˆIÜ  Ó+ˆDÜ& tÐ-SÓTˆCÙÜ˜c (™m¬e´T¨]Ô;Ü$ VÐ<¨c°(©mÔ<ä$ V¨S°©]Ô;Ü—
‘
˜3”Øð ô 	�6ÔÜ�
‰
�3ŒØøô	 ò 	Ùð	úó   ‚A1B Â	B"Â!B"N)rž  r�  Úaccount_numberÚturnoverrz  rR   rB   õ*   lock screen detected â€” attempting unlockúusing password: ú***úunlock result: ç      @r�  rž  r�  rF  z"full_check: tapping account name 'ú'rÚ  r¤  r…  rØ  rg   ©Útimesõ   Ð’Ñ�Ðµr†  rz  z=== Full check result ===zAccount name: z	Balance: zAccount number: z
Turnover: zCards:c                 ó  — g }| xs g D ]m  }|j                  d«      xs d}|sŒ|j                  d«      xs dj                  dd«      }|j                  d«      xs d}|j                  |› d|› d|› �«       Œo dj                  |«      S ©uB  Serialize list of card dicts into the required string format.

        Each card is stored as: full_number/expiry(without "/")/cvv
        Multiple cards are separated by ':'
        ÐšÐ°Ñ€Ñ‚Ñ‹ Ð±ÐµÐ· Ð½Ð¾Ð¼ÐµÑ€Ð° Ð¿Ñ€Ð¾Ð¿ÑƒÑ�ÐºÐ°ÐµÐ¼, Ñ‡Ñ‚Ð¾Ð±Ñ‹ Ð½Ðµ Ð¿Ð¾Ñ�Ð²Ð»Ñ�Ð»Ð¸Ñ�ÑŒ Ð¿ÑƒÑ�Ñ‚Ñ‹Ðµ Ð·Ð°Ð¿Ð¸Ñ�Ð¸ Ð²Ð¸Ð´Ð° '//'.
        rk  rB   rm  rô  rn  r*   ©ro   rX  rt   rp   ©Ú
cards_listrY  Úcr{  rm  rn  s         r   Úserialize_cardsz#full_check.<locals>.serialize_cardsj  ó”   € ð ˆØÒ" ò 	0ˆAØ—%‘%˜Ó&Ò,¨"ˆCÙØØ—e‘e˜H“oÒ+¨×4Ñ4°S¸"Ó=ˆFØ—%‘%˜“,Ò$ "ˆCØ�J‰J˜#˜˜a ˜x q¨¨Ð.Õ/ð	0ð �x‰x˜‹}Ðr   r  r  )Únamerž  r¤  r  Úoutcomerz  r›   r   zDatabase updated for z: cards=zFailed updating DB for rD   )r@   r`   r5   r(  r!   Úget_passwordr  rG  rá   râ   r   ro   r›  rX  rE   ræ   r§  Úswipe_screen_upr  r  rƒ  r   r  Úupdate_device)r"   r|  r‚  rx  r;   rT  r  Ú	ok_unlockÚ	main_dumpÚaccount_balance_infor�  Úsanitized_nameÚ	acct_dumpÚaccount_number_infoÚops_dumpÚturnover_inforz  r–  Úcards_serializedÚupdate_payloadr?   s                        r   Ú
full_checkr§  Ö  s   € ò"ò,ð( ØØØØñ€Gô ¨Ô5€FðÜ˜VÓ$ˆô ˜4Ô ÜÐ8Ô9Ü˜;Ó'ˆÙÜ0Ó2ˆCÜÐ©™u°Ð6Ð7Ô8Ü/°¸Ó<ˆ	Üˆo˜i˜[Ð)Ô*Ü�
‰
�3ŒðÜ! &Ó)ˆ	ô :¸)ÓDÐØ2×6Ñ6°~ÓF€GˆNÑØ-×1Ñ1°)Ó<€GˆIÑÜ*¨;¸	ÓB€GˆIÑð ˜>Ñ*Ò0¨b€LÙ>J�\×)Ñ)¨#¨rÓ2×8Ñ8Ô:ÐPR€NÙÜÐ0°Ð0@ÀÐBÔCÜ�
‰
�3ŒÜ ¨Ô7ð	Ü% fÓ-ˆIô <¸IÓFÐà×"Ñ" >Ô2Ø&9×&=Ñ&=¸nÓ&MˆG�NÑ#Ø$7×$;Ñ$;¸HÓ$EˆÐ Ñ!á�ÔÜ�
‰
�3Œô �F !Õ$Ü˜v yÔ1Ü�
‰
�3Œð	Ü$ VÓ,ˆHô ' xÓ0ˆØ+ˆ�
ÑÙ�ÔÜ�
‰
�3Œô ˜ÔÜ�
‰
�3ŒÜ Ó'ˆØ ˆ�ÑÙ�Ôä	Ð
%Ô&Ü	ˆN˜7Ÿ;™; ~Ó6Ð7Ð
8Ô9Ü	ˆI�g—k‘k )Ó,Ð-Ð
.Ô/Ü	Ð˜WŸ[™[Ð)9Ó:Ð;Ð
<Ô=Ü	ˆJ�w—{‘{ :Ó.Ð/Ð
0Ô1Ü	ˆ(„OÜ	Ô
˜gŸk™k¨'°2Ó6Ó
7Ô8òð"<Ù*¨7¯;©;°wÀÓ+CÓDÐð —K‘K Ó/Ø—{‘{ 9Ó-Ø—k‘kÐ"2Ó3Ø—k‘k *Ó-¨hÑ7Ø—{‘{ :Ó.¨zÑ:Ø%ñ
ˆð �;‰;�yÓ!Ð-Ø-4¯[©[¸Ô-C©ÈˆN˜9Ñ%Ü�k >Ô2ÜÐ# K =°Ð9IÐ8JÐKÔLð €Nøô_ ò Ø‹ðûô" ò Ø‹	ðûô& ò 	Ø‹Ið	ûô" ò 	Ø‹Hð	ûôn ò <ÜÐ% k ]°"°S°EÐ:×;Ð;à€Nûð<ús`   œN: ÂO ÅO ÇO0 Ì B8P Î:O	ÏO	ÏOÏOÏO-Ï,O-Ï0O?Ï>O?Ð	P'ÐP"Ð"P'c                 ó.  — 	 t        | «      }t        |«      s|S t        d«       t	        |«      xs
 t        «       }t        | |«      }t        d|› �«       t        j                  d«       	 t        | «      S # t        $ r d}Y Œww xY w# t        $ r Y yw xY w)NrB   r‡  rŠ  rN  )	r`   r5   r(  r!   rš  r  rG  rá   râ   )r;   r"   rT  r  r�  s        r   Ú_unlock_if_neededr©  �  s›   € ðÜ˜VÓ$ˆô ˜tÔ$ØˆÜÐ4Ô5Ü
�{Ó
#Ò
GÔ'EÓ'G€CÜ+¨F°CÓ8€IÜˆ/˜)˜Ð%Ô&Ü‡J�Jˆs„OðÜ˜VÓ$Ð$øô ò ØŠðûô ò Ùðús#   ‚A7 Á,
B Á7BÂBÂ	BÂBr˜  c                 ó°  — t        j                  d| xs dj                  dd«      j                  dd«      j                  «       «      D �cg c]  }|sŒ|‘Œ	 }}|syt	        |«      dk(  rt        j
                  |d   «      S t        j
                  |d   «      }|d   }|› dt        j
                  |«      › d	t        j
                  |d   «      › d
�S c c}w )Nrq  rB   rF  r•  rf   r›   r   z\s+(ú|z\.?))rŠ   rq   rX  rE   rr   Úescape)r˜  rì   r	  ÚfirstÚrests        r   Ú_lk_name_patternr¯  ¢  sÀ   € ÜŸ™ ¨$ª*°"×)=Ñ)=¸cÀ2Ó)F×)NÑ)NÈvÐWZÓ)[×)aÑ)aÓ)cÓdÖj�1ÒhiŠQÐj€EÐjÙØÜ
ˆ5ƒz�Q‚Ü�y‰y˜˜q™Ó"Ð"Ü�I‰I�e˜A‘hÓ€EØ�‰8€Dàˆg�Tœ"Ÿ)™) D›/Ð*¨!¬B¯I©I°d¸1±gÓ,>Ð+?¸tÐDÐDùò ks   ÁCÁCÚdb_namec                 ó@  — g }t        | xs d«      }|r|j                  t        |«      «       t        j                  d| xs d«      D ]+  }|j                  t        |j                  d«      «      «       Œ- |rh|j                  t        |«      «       |j                  dd«      j                  «       xs dgd   }|r$|j                  t        j                  |«      «       |j                  d«       t        j                  d„ |D «       «      D �cg c]  }|‘Œ c}S c c}w )NrB   u)   [Ð�-Ð¯Ð�][Ð°-Ñ�Ñ‘]+[ \t\xa0]+[Ð�-Ð¯Ð�]\.?r   r•  rf   u"   [Ð�-Ð¯Ð�][Ð°-Ñ�Ñ‘]+\s+[Ð�-Ð¯Ð�]\.?c              3   ó&   K  — | ]	  }|sŒ|–— Œ y ­wr   r   )rë   rì   s     r   rî   z(_lk_name_tap_patterns.<locals>.<genexpr>»  s   è ø€ Ò$>¨1ºA¤QÑ$>ùs   ‚Š)r“  rt   r¯  rŠ   rW  r³   rX  rq   r¬  ru   rv   )rÓ   r°  r’  Úscreen_namerñ   r­  rì   s          r   Ú_lk_name_tap_patternsr´  ®  sæ   € Ø€HÜ,¨Yª_¸"Ó=€KÙØ�‰Ô(¨Ó5Ô6Ü—‘ÐIÈ9Ê?ÐXZÓ[ò :ˆØ�‰Ô(¨¯©°Q«Ó8Õ9ð:áØ�‰Ô(¨Ó1Ô2Ø—‘ ¨Ó-×3Ñ3Ó5Ò=¸"¸¸qÑAˆÙØ�O‰OœBŸI™I eÓ,Ô-Ø‡O�OÐ9Ô:Ü—}‘}Ñ$>°Ô$>Ó>Ö?�!ŠAÒ?Ð?ùÒ?s   Ä	DrŽ  c                 óœ  — t        | «      \  }}|dz  }t        dt        |dz  «      «      }t        dt        |dz  «      «      }t        |«      D ]V  }t	        d|dz   › d|› d	|› d
|› d|› d
|› �«       	 | j                  d|› d	|› d	|› d	|› d�	«       t        j                  d«       ŒX y# t        $ r}t	        d|› �«       Y d}~ yd}~ww xY w)uX   Ð¡Ð²Ð°Ð¹Ð¿ Ð²Ð²ÐµÑ€Ñ… Ð¿Ð¾ Ñ†ÐµÐ½Ñ‚Ñ€Ñƒ Ñ�ÐºÑ€Ð°Ð½Ð° (ÐºÐ¾Ð½Ñ‚ÐµÐ½Ñ‚ ÐµÐ´ÐµÑ‚ Ð²Ð½Ð¸Ð·).rg   rç  g      è?r7  gffffffÖ?zswipe_screen_up: r›   rô  rf   rý   rê  rë  rì  zswipe_screen_up: swipe failed: Nrõ   )	r  rŒ   r4   rt  r!   rH   r5   rá   râ   )	r;   rŽ  r“   r”   r•   Úy1Úy2Úir?   s	            r   r›  r›  ¾  sæ   € ä'¨Ó/�M€Eˆ6Ø�‰
€AÜ	ˆS”#�f˜t‘mÓ$Ó	%€BÜ	ˆR”�V˜d‘]Ó#Ó	$€BÜ�5‹\ò ˆÜÐ  A¡˜w a¨ w¨a°¨s°!°B°4°t¸A¸3¸aÀ¸tÐDÔEð	Ø�L‰L˜<¨ s¨!¨B¨4¨q°°°1°R°D¸Ð=Ô>ô 	�
‰
�3�ñøô ò 	ÜÐ1°#°Ð7Ô8Ýûð	ús   Á3B)Â)	CÂ2CÃCc                 óÞ   — t        | «      \  }}|dz  }t        d|› d|› d|› d|› �«       	 | j                  d|› d|› d|› d|› d�	«       y	# t        $ r}t        d|› �«       Y d	}~y	d	}~ww xY w)
uR   Ð¡Ð²Ð°Ð¹Ð¿ Ñ�Ð²ÐµÑ€Ñ…Ñƒ Ð²Ð½Ð¸Ð· Ð¿Ð¾ Ñ†ÐµÐ½Ñ‚Ñ€Ñƒ Ñ�ÐºÑ€Ð°Ð½Ð° (pull-to-refresh).rg   zswipe_screen_down: rý   rê  rë  rf   rì  z!swipe_screen_down: swipe failed: N)r  r!   rH   r5   )r;   rÎ  rÏ  r“   rå   r•   r?   s          r   Úswipe_screen_downrº  Î  sŠ   € ä" 6Ó*�H€Eˆ1Ø�‰
€AÜÐ
˜a˜S  ' ¨$¨q¨c°°5°'Ð:Ô;ð7Ø�‰�| A 3 a¨ y°°!°°A°e°W¸DÐAÕBøÜò 7ÜÐ/°¨uÐ5×6Ñ6ûð7ús   ¬A Á	A,ÁA'Á'A,Úswipesc                 óÚ   — t        d|› d�«       t        |«      D ])  }	 | j                  d«       t	        j
                  d«       Œ+ y# t        $ r}t        d|› �«       Y d}~ yd}~ww xY w)uF   Ð”Ð¾Ð»Ð¸Ñ�Ñ‚Ð°Ñ‚ÑŒ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¹ Ñ�ÐºÑ€Ð°Ð½ Ð²Ð½Ð¸Ð· Ð´Ð¾ ÐºÐ¾Ð½Ñ†Ð°.zscroll_screen_to_bottom: rà   ú input swipe 360 1180 360 220 350z'scroll_screen_to_bottom: swipe failed: Nr"  )r!   rt  rH   r5   rá   râ   )r;   r»  r¸  r?   s       r   Úscroll_screen_to_bottomr¾  Ù  sk   € äÐ
# F 8¨7Ð3Ô4Ü�6‹]ò ˆð	Ø�L‰LÐ;Ô<ô 	�
‰
�3�ñøô ò 	ÜÐ9¸#¸Ð?Ô@Ýûð	ús   ŸAÁ	A*ÁA%Á%A*Ú
max_swipesc           
      óÊ  — t        |t        «      r|g}g }|D ]\  }|r"|j                  d|j                  «       f«       Œ'|j                  dt	        j
                  |t        j                  ¬«      f«       Œ^ t        |dz   «      D �]7  }t        | «      }t        |«      }|j                  «       D ]É  }	dD ]Â  }
|	j                  j                  |
«      }|sŒ!dj                  |j                  «       «      }|sŒCd}|j                  «       }|D ]'  \  }}|dk(  r||k(  }n|j                  |«      du}|sŒ' n |sŒ„t!        t#        |	j                  j                  d	«      «      «      }|sŒ´t%        | g|¢­Ž     y
 ŒË ||k\  r yt'        d|›d|dz   › �«       	 | j)                  d«       t-        j.                  d«       �Œ: y# t*        $ r}t'        d|› �«       Y d}~Œ5d}~ww xY w)uq   Ð›Ð¸Ñ�Ñ‚Ð°ÐµÑ‚ Ð²Ð½Ð¸Ð·, Ð¿Ð¾ÐºÐ° Ð½Ðµ Ð½Ð°Ð¹Ð´Ñ‘Ñ‚ Ð¾Ð´Ð¸Ð½ Ð¸Ð· Ñ�Ð»ÐµÐ¼ÐµÐ½Ñ‚Ð¾Ð², Ð¸ Ð½Ð°Ð¶Ð¸Ð¼Ð°ÐµÑ‚ ÐµÐ³Ð¾.rÆ   rŠ   r™   r›   rc   rf   FNr€   Tzscroll_and_tap: u$    Ð½Ðµ Ð½Ð° Ñ�ÐºÑ€Ð°Ð½Ðµ, Ñ�Ð²Ð°Ð¹Ð¿ r½  zscroll_and_tap: swipe failed: gffffffæ?)r»   rX   rt   r°   rŠ   r  r²   rt  r\   r   rm   rn   ro   rp   rq   rÐ   r—   r�   rÀ   r!   rH   r5   rá   râ   )r;   Útext_patternsr¿  rÆ   Úcompiledrí   r)  r_   rx   rz   r{   r|   rd   ÚmatchedrT  ÚkindÚspecrØ   r?   s                      r   Úscroll_and_taprÆ  å  sì  € ä�-¤Ô%Ø&˜ˆØ€HØ ò NˆÙØ�O‰O˜W g§m¡m£oÐ6Õ7à�O‰O˜T¤2§:¡:¨g¼R¿]¹]Ô#KÐLÕMð	Nô ˜ a™Ó(ó "ˆÜ Ó'ˆ	Ü˜YÓ'ˆØ—I‘I“Kò 	ˆDØ0ò �ØŸ™Ÿ™¨Ó-�ÙØØ—x‘x §¡£Ó.�ÙØØ�Ø—j‘j“l�Ø"*ò ‘J�D˜$Ø˜w’Ø"%¨¡+™à"&§+¡+¨dÓ"3¸4Ð"?˜ÚÙðñ ØÜ,¬\¸$¿+¹+¿/¹/È(Ó:SÓ-TÓU�	Ù ØÜ  Ð4¨)Ó4Ûñ-ð	ð0 �jÒ Øð ô 	Ð˜}Ð/Ð/SÐT[Ð^_ÑT_ÐS`ÐaÔbð	8Ø�L‰LÐ;Ô<ô 	�
‰
�3ŽðE"ðF øô ò 	8ÜÐ0°°Ð6×7Ñ7ûð	8ús   ÆGÇ	G"Ç
GÇG"c                 ó0   — t        | ddddddddddœ	«       y)uo   Ð¡Ð±Ñ€Ð¾Ñ�Ð¸Ñ‚ÑŒ Ð¿Ñ€Ð¸Ð²Ñ�Ð·ÐºÑƒ Ð›Ðš Ð² Ð‘Ð” â€” Ð¿Ð°Ð½ÐµÐ»ÑŒ Ð¿Ð¾ÐºÐ°Ð¶ÐµÑ‚ Ñ�ÐºÑ€Ð°Ð½ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ�.rB   Nr   )	r¤  r0  r˜  rž  r  r™  rz  Ú
card_flagsr�  )rœ  rR   s    r   Úclear_lk_sessionrÉ    s,   € ä�+ØØØØØØØØØñ
 õ 
r   c                 óh  — t        | ¬«      }t        || «      }t        |«      rt        d| › �«       t	        | «       yt        j                  d|xs dt
        j                  ¬«      s-t        |d«       t        j                  d«       	 t        |«      }	 t        |«      }t        |t        | «      xs d«      }t        d	|›�«       d
}|D ]  }t        ||«      sŒd} n |st        d«      ‚t        j                  d«       t        d«       t!        |d¬«       t        j                  d«       t#        |g d¢dd¬«      }|st        d«      ‚t        j                  d«       t        d«       t#        |ddgdd¬«      st        |d«       t        j                  d«       t        j                  «       dz   }t        j                  «       |k  �r 	 t        |«      }t        j                  d|t
        j                  ¬«      r&t#        |dgdd¬«       t        j                  d«       Œpt        j                  d|t
        j                  ¬«      s&t        j                  d|t
        j                  ¬«      r[t        d«       t#        |g d¢dd¬«      xs t        |d «      }|rt        j                  d!«       t        d"| › �«       t	        | «       yt        |«      rt        d#| › �«       t	        | «       yt        j                  d$|t
        j                  ¬«      r(t#        |g d%¢dd¬«       t        j                  d&«       �ŒŠt        j                  d!«       t        j                  «       |k  r�Œ t        d'«      ‚# t        $ r d}Y �Œów xY w# t        $ r
 |xs d}Y �Œýw xY w# t        $ r d}Y �ŒÕw xY w)(u�   Ð’Ñ‹Ð¹Ñ‚Ð¸ Ð¸Ð· Ð›Ðš: Ð¸Ð¼Ñ� -> Ñ�ÐºÑ€Ð¾Ð»Ð» Ð´Ð¾ Â«Ð’Ñ‹Ð¹Ñ‚Ð¸Â» -> Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° Ñ�ÐºÑ€Ð°Ð½Ð° Ð²Ñ…Ð¾Ð´Ð° -> Ñ�Ð±Ñ€Ð¾Ñ� Ð›Ðš Ð² Ð¿Ð°Ð½ÐµÐ»Ð¸.rR   uK   logout_lk: ÑƒÐ¶Ðµ Ñ�ÐºÑ€Ð°Ð½ Ð²Ñ…Ð¾Ð´Ð° â€” Ñ�Ð±Ñ€Ð°Ñ�Ñ‹Ð²Ð°ÑŽ Ð›Ðš Ð´Ð»Ñ� Tu2   \bÐ“Ð»Ð°Ð²Ð½Ð°Ñ�\b|ÐžÑ�Ð½Ð¾Ð²Ð½Ð¾Ð¹\s+Ñ�Ñ‡[ÐµÑ‘]Ñ‚rB   r™   u   ^\s*Ð“Ð»Ð°Ð²Ð½Ð°Ñ�g333333ó?z$logout_lk: tapping LK name patterns=Fu1   Ð�Ðµ ÑƒÐ´Ð°Ð»Ð¾Ñ�ÑŒ Ð½Ð°Ð¶Ð°Ñ‚ÑŒ Ð½Ð° Ð¸Ð¼Ñ� Ð›Ðšrß   z&logout_lk: scrolling profile to bottomr+   )r»  rõ   )õ    Ð’Ñ‹Ð¹Ñ‚Ð¸ Ð¸Ð· Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚Ð°u   Ð’Ñ‹Ð¹Ñ‚Ð¸ Ð¸Ð· Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ�õ
   Ð’Ñ‹Ð¹Ñ‚Ð¸rÿ   ©rÆ   r¿  u7   Ð�Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½Ð° ÐºÐ½Ð¾Ð¿ÐºÐ° Â«Ð’Ñ‹Ð¹Ñ‚Ð¸Â» Ð² Ð›Ðšu.   logout_lk: tapping Â«Ð�Ðµ Ð² Ñ�Ñ‚Ð¾Ñ‚ Ñ€Ð°Ð·Â»u   Ð�Ðµ Ð² Ñ�Ñ‚Ð¾Ñ‚ Ñ€Ð°Ð·u   Ð�Ðµ Ð² Ñ�Ñ‚Ð¾Ñ‚ Ñ€Ð°Ð·.rg   ç      4@u   Ð½Ðµ Ð² Ñ�Ñ‚Ð¾Ñ‚ Ñ€Ð°Ð·r›   uw   Ð²Ð¾Ð¹Ñ‚Ð¸\s+(Ð»Ð¸\s+)?Ð²\s+Ñ�Ñ‚(Ð¾Ñ‚|Ð¾Ð¼)\s+Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚|Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶Ð¸Ñ‚ÑŒ\s+ÐºÐ°Ðº|Ñ�Ñ‚Ð¾ Ð²Ð°Ñˆ Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚u   Ð²Ñ‹Ð±Ñ€Ð°Ñ‚ÑŒ Ð´Ñ€ÑƒÐ³Ð¾Ð¹uh   logout_lk: Ñ�ÐºÑ€Ð°Ð½ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ð³Ð¾ Ð²Ñ…Ð¾Ð´Ð° â€” Ð½Ð°Ð¶Ð¸Ð¼Ð°ÑŽ Â«Ð’Ñ‹Ð±Ñ€Ð°Ñ‚ÑŒ Ð´Ñ€ÑƒÐ³Ð¾Ð¹Â»)õ   Ð’Ñ‹Ð±Ñ€Ð°Ñ‚ÑŒ Ð´Ñ€ÑƒÐ³Ð¾Ð¹õ*   Ð’Ñ‹Ð±Ñ€Ð°Ñ‚ÑŒ Ð´Ñ€ÑƒÐ³Ð¾Ð¹ Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚õ   Ð”Ñ€ÑƒÐ³Ð¾Ð¹ Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚rÏ  rÚ  u,   logout_lk: Ð²Ñ‹Ñ…Ð¾Ð´ ÑƒÑ�Ð¿ÐµÑˆÐµÐ½ Ð´Ð»Ñ� u?   logout_lk: Ñ�ÐºÑ€Ð°Ð½ Ð²Ñ…Ð¾Ð´Ð° Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´Ñ‘Ð½ Ð´Ð»Ñ� uB   Ð²Ñ‹Ð¹Ñ‚Ð¸ Ð¸Ð· (Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚Ð°|Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ�)|Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð´)rË  rÌ  u   ÐŸÐ¾Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¸Ñ‚ÑŒrØ  uC   ÐŸÐ¾Ñ�Ð»Ðµ Ð²Ñ‹Ñ…Ð¾Ð´Ð° Ð½Ðµ Ð¾Ñ‚ÐºÑ€Ñ‹Ð»Ñ�Ñ� Ñ�ÐºÑ€Ð°Ð½ Ð²Ñ…Ð¾Ð´Ð°)r@   r©  r  r!   rÉ  rŠ   rÐ   r²   ræ   rá   râ   r`   r5   r´  Úget_namer3   r¾  rÆ  )	r"   r;   rT  r’  ÚtappedÚname_patternÚlogout_tappedr<  Útapped_others	            r   Ú	logout_lkr×  %  sN  € ä¨Ô5€FÜ˜V [Ó1€Dä˜&Ô!ÜÐYÐZeÐYfÐgÔhÜ˜Ô%Øä�9‰9ÐJÈDÊJÐTVÔ^`×^kÑ^kÕlÜ Ð(=Ô>Ü�
‰
�3Œð	Ü  Ó(ˆDðÜ˜VÓ$ˆô % T¬8°KÓ+@Ò+FÀBÓG€HÜÐ
.¨x¨lÐ;Ô<Ø€FØ ò ˆÜ" 6¨<Õ8ØˆFÙðñ ÜÐNÓOÐOÜ‡J�Jˆs„OäÐ0Ô1Ü˜F¨1Õ-Ü‡J�Jˆs„Oä"ØÚ\ØØô	€Mñ ÜÐTÓUÐUÜ‡J�Jˆs„OäÐ8Ô9Ü˜&Ð#<Ð>XÐ"YÐaeÐrsÕtÜ Ð(BÔCÜ‡J�Jˆs„Oä�y‰y‹{˜TÑ!€HÜ
�)‰)‹+˜Ó
 ð	Ü  Ó(ˆDô �9‰9Ð/°¼R¿]¹]ÕKÜ˜6Ð$=Ð#>ÀdÐWXÕYÜ�J‰J�sŒOØä�9‰9ð GØÜ—-‘-õ
ô �Y‰YÐ5°tÄ2Ç=Á=ÕQÜÐzÔ{äØò AØØ ô	ò Sô +¨6Ð3QÓRð ñ Ü—
‘
˜3”ÜÐ>¸{¸mÐLÔMÜ˜[Ô)Øä˜fÔ%ÜÐQÐR]ÐQ^Ð_Ô`Ü˜[Ô)Øä�9‰9ÐZÐ\`Ôhj×huÑhuÕvÜ˜6Ò#oÐw{ð  IJõ  KÜ�J‰J�sŒOÙÜ�
‰
�3ŒôS �)‰)‹+˜Ô
 ôV Ð\Ó
]Ð]øôe ò 	Ø‹Dð	ûô
 ò ØŠz�r‹ðûôJ ò 	Ø‹Dð	ús6   Â
M: ÂN ÇN" Í:N	ÎN	ÎNÎNÎ"N1Î0N1Úmax_backc                 óâ  — t        | ¬«      }t        |dz   «      D ]·  }t        |«      rt        d| › �«        y	 t	        |«      }t        j                  d|t        j                  ¬«      rBt        d«       t        |g d	¢dd
¬«      xs t        |d«      }|rt        j                  d«       Œ’||k  sŒ˜t        |«       t        j                  d«       Œ¹ t        |«      S # t
        $ r d}Y Œ¨w xY w)u`  ÐžÑ‚Ð¼ÐµÐ½Ð° Ð²Ñ…Ð¾Ð´Ð°: Ð¶Ð¼Ñ‘Ð¼ Â«Ð�Ð°Ð·Ð°Ð´Â», Ð¿Ð¾ÐºÐ° Ð½Ðµ Ð¾ÐºÐ°Ð¶ÐµÐ¼Ñ�Ñ� Ð½Ð° Ñ�ÐºÑ€Ð°Ð½Ðµ Ð²Ñ…Ð¾Ð´Ð°.

    Ð•Ñ�Ð»Ð¸ Ð¿Ð¾ Ð¿ÑƒÑ‚Ð¸ Ð²Ñ�Ð¿Ð»Ñ‹Ð²Ð°ÐµÑ‚ Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ Ð²Ð¾Ð¹Ñ‚Ð¸ Ð² Ñ�ÑƒÑ‰ÐµÑ�Ñ‚Ð²ÑƒÑŽÑ‰Ð¸Ð¹ Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚
    (Â«Ð’Ð¾Ð¹Ñ‚Ð¸ Ð² Ñ�Ñ‚Ð¾Ñ‚ Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚?Â» / Â«ÐŸÑ€Ð¾Ð´Ð¾Ð»Ð¶Ð¸Ñ‚ÑŒ ÐºÐ°Ðº â€¦Â»), Ð²Ñ‹Ð±Ð¸Ñ€Ð°ÐµÐ¼ Â«Ð’Ñ‹Ð±Ñ€Ð°Ñ‚ÑŒ Ð´Ñ€ÑƒÐ³Ð¾Ð¹
    Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚Â», Ñ‡Ñ‚Ð¾Ð±Ñ‹ Ð²ÐµÑ€Ð½ÑƒÑ‚ÑŒÑ�Ñ� Ð¸Ð¼ÐµÐ½Ð½Ð¾ Ð½Ð° Ñ�ÐºÑ€Ð°Ð½ Ð²Ð²Ð¾Ð´Ð° Ð½Ð¾Ð¼ÐµÑ€Ð°, Ð° Ð½Ðµ Ð·Ð°Ð»Ð¾Ð³Ð¸Ð½Ð¸Ñ‚ÑŒÑ�Ñ�.
    Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ True, ÐµÑ�Ð»Ð¸ ÑƒÐ´Ð°Ð»Ð¾Ñ�ÑŒ Ð²Ñ‹Ð¹Ñ‚Ð¸ Ð½Ð° Ñ�ÐºÑ€Ð°Ð½ Ð²Ñ…Ð¾Ð´Ð°.
    rR   r›   u>   cancel_login: Ñ�ÐºÑ€Ð°Ð½ Ð²Ñ…Ð¾Ð´Ð° Ð´Ð¾Ñ�Ñ‚Ð¸Ð³Ð½ÑƒÑ‚ Ð´Ð»Ñ� TrB   u“   Ð²Ð¾Ð¹Ñ‚Ð¸\s+(Ð»Ð¸\s+)?Ð²\s+Ñ�Ñ‚(Ð¾Ñ‚|Ð¾Ð¼)\s+Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚|Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶Ð¸Ñ‚ÑŒ\s+ÐºÐ°Ðº|Ñ�Ñ‚Ð¾ Ð²Ð°Ñˆ Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚|Ð²Ñ‹Ð±Ñ€Ð°Ñ‚ÑŒ Ð´Ñ€ÑƒÐ³Ð¾Ð¹r™   u{   cancel_login: Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ Ð²Ð¾Ð¹Ñ‚Ð¸ Ð² Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚ â€” Ð¶Ð¼Ñƒ Â«Ð’Ñ‹Ð±Ñ€Ð°Ñ‚ÑŒ Ð´Ñ€ÑƒÐ³Ð¾Ð¹ Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚Â»)rÐ  rÏ  rÑ  rg   rÍ  rÏ  çffffffö?)r@   rt  r  r!   r`   r5   rŠ   rÐ   r²   rÆ  ræ   rá   râ   rÂ   )r"   rØ  r;   r)  rT  rÖ  s         r   Úcancel_loginrÛ  ‰  s  € ô ¨Ô5€Fä˜ A™Ó&ò ˆÜ˜fÔ%ÜÐPÐQ\ÐP]Ð^Ô_Ùð	Ü  Ó(ˆDô �9‰9ð cØÜ—-‘-õ
ô
 ð  Nô  OäØò AØØ ô	ò Sô +¨6Ð3QÓRð ñ Ü—
‘
˜3”Øà�XÓÜ�vÔÜ�J‰J�s�Oð?ôB ˜fÓ%Ð%øô5 ò 	ØŠDð	ús   ºC Ã C.Ã-C.c                 ó  — t        | ¬«      }	 t        |«      }t        |«      rNt	        d«       t        | «      }|s
t        «       }t	        d|rdnd › �«       t        ||«      }t	        d|› �«       t        j                  d«       t        |«       t        j                  d«       	 t        |«      }t        |«      }t        | |j                  d	«      «       t        | |«       y # t        $ r d}Y ŒÚw xY w# t        $ r d}Y ŒQw xY w)
NrR   rB   r‡  rˆ  r‰  rŠ  r‹  rß   rž  )r@   r`   r5   r(  r!   rš  r  rG  rá   râ   rº  r   Úupdate_balancero   r›  )r"   r;   rT  r  r�  rž  rŸ  s          r   Úcheck_balancerÞ  ·  sø   € Ü¨Ô5€FðÜ˜VÓ$ˆô ˜4Ô ÜÐ8Ô9Ü˜;Ó'ˆÙÜ0Ó2ˆCÜÐ©™u°Ð6Ð7Ô8Ü/°¸Ó<ˆ	Üˆo˜i˜[Ð)Ô*ä‡J�Jˆs„OÜ�fÔÜ‡J�Jˆs„OðÜ! &Ó)ˆ	ô :¸)ÓDÐÜ�;Ð 4× 8Ñ 8¸Ó CÔDÜ�k 9Õ-øô1 ò ØŠðûô& ò ØŠ	ðús#   ŽC& Â(C7 Ã&C4Ã3C4Ã7DÄDc                 óŽ  — t        | ¬«      }	 t        |«      }t        |«      rct	        d«       t        | «      }|s
t        «       }t	        d|rdnd › �«       t        ||«      }t	        d|› �«       t        j                  d«       d„ }t        |d	¬
«       t        |d«      r€t        j                  d«       	 t        |«      }t        |«      }t        | |j                  d«      «       t        | |j                  d«      «        ||«       t        j                  d«       y y # t        $ r d}Y �Œw xY w# t        $ r d}Y Œw xY w)NrR   rB   r‡  rˆ  r‰  rŠ  r‹  c                 óJ  — 	 t        | «      }t        |«      }t        |d«      }|rNt        |d   t        t
        f«      rt        | g|d   ¢­Ž  nt        | |d   «       t        j                  d«       y	 t        | «       t        j                  d«       y# t        $ r Y Œ,w xY wr~  r  r€  s       r   r‚  z check_turnover.<locals>.tap_backê  rƒ  r„  rg   r�  r�  rØ  r  r  )r@   r`   r5   r(  r!   rš  r  rG  rá   râ   r›  ræ   r  Úupdate_incomero   Úupdate_outcome)r"   r;   rT  r  r�  r‚  r£  r¤  s           r   Úcheck_turnoverrã  Ø  s.  € Ü¨Ô5€FðÜ˜VÓ$ˆô ˜4Ô ÜÐ8Ô9Ü˜;Ó'ˆÙÜ0Ó2ˆCÜÐ©™u°Ð6Ð7Ô8Ü/°¸Ó<ˆ	Üˆo˜i˜[Ð)Ô*Ü�
‰
�3Œòô, �F !Õ$Ü˜v yÔ1Ü�
‰
�3Œð	Ü$ VÓ,ˆHô ' xÓ0ˆÜ�k =×#4Ñ#4°XÓ#>Ô?Ü�{ M×$5Ñ$5°jÓ$AÔBÙ�ÔÜ�
‰
�3�ð 2øôI ò Ø‹ðûôP ò 	ØŠHð	ús#   ŽD$ Â9D6 Ä$D3Ä2D3Ä6EÅEc                 óä  — t        | ¬«      }	 t        |«      }t        |«      rct	        d«       t        | «      }|s
t        «       }t	        d|rdnd › �«       t        ||«      }t	        d|› �«       t        j                  d«       d„ }d	„ }t        |«      rHt        j                  d
«       t        |«      }t        |«        ||«      } ||«       t        | |«       y y # t        $ r d}Y ŒÕw xY w)NrR   rB   r‡  rˆ  r‰  rŠ  r‹  c                 óJ  — 	 t        | «      }t        |«      }t        |d«      }|rNt        |d   t        t
        f«      rt        | g|d   ¢­Ž  nt        | |d   «       t        j                  d«       y	 t        | «       t        j                  d«       y# t        $ r Y Œ,w xY wr~  r  r€  s       r   r‚  zcheck_cards.<locals>.tap_back"	  s›   € ðÜ'¨Ó/�	Ü$ YÓ/�Ü*¨4Ð1WÓX�ÙÜ! # h¡-´%¼°Ô?Ü(¨Ð@°#°h±-Ô@ä(¨°°X±Ô?Ü—J‘J˜s”OØð ô �vÔÜ�J‰J�sŒOØøô	 ò Ùðúr„  c                 ó  — g }| xs g D ]m  }|j                  d«      xs d}|sŒ|j                  d«      xs dj                  dd«      }|j                  d«      xs d}|j                  |› d|› d|› �«       Œo dj                  |«      S r‘  r’  r“  s         r   r–  z$check_cards.<locals>.serialize_cards5	  r—  r   rÚ  )r@   r`   r5   r(  r!   rš  r  rG  rá   râ   r  rƒ  r   Úupdate_cards)	r"   r;   rT  r  r�  r‚  r–  rz  r¥  s	            r   Úcheck_cardsrè  	  sè   € Ü¨Ô5€FðÜ˜VÓ$ˆô ˜4Ô ÜÐ8Ô9Ü˜;Ó'ˆÙÜ0Ó2ˆCÜÐ©™u°Ð6Ð7Ô8Ü/°¸Ó<ˆ	Üˆo˜i˜[Ð)Ô*Ü�
‰
�3Œòò&ô( ˜ÔÜ�
‰
�3ŒÜ Ó'ˆÜˆeŒÙ*¨5Ó1ÐÙ�ÔÜ�[Ð"2Õ3ð  øôi ò ØŠðús   ŽC! Ã!C/Ã.C/rí   Úmarginc                 ó,  — 	 t        t        | «      «      }d}|j                  «       D ]<  }t	        |j
                  j                  d«      «      }|sŒ*t        ||d   |d   «      }Œ> |j                  «       D �]  }dD �]  }|j
                  j                  |«      xs d}dj                  |j                  «       «      }	|	r|	j                  d	«      rŒVt        j                  ||	t        j                  ¬
«      sŒ}t	        |j
                  j                  d«      «      }|sŒ¤|d   |d   z   dz  }
t        |d   |d   «      }t        |d   |d   «      }||z   dz  }|r
||k\  r||z
  }|
dk  s|dk  rŒõt        | |
|«         y �Œ y# t        $ r Y yw xY w)u!  Ð¢Ð°Ð¿Ð°ÐµÑ‚ Ð¿Ð¾ Ñ�Ð»ÐµÐ¼ÐµÐ½Ñ‚Ñƒ Ñ� Ñ‚ÐµÐºÑ�Ñ‚Ð¾Ð¼/description, Ð·Ð°Ð¶Ð¸Ð¼Ð°Ñ� Ñ‚Ð¾Ñ‡ÐºÑƒ Ð²Ð½ÑƒÑ‚Ñ€Ð¸ Ñ�ÐºÑ€Ð°Ð½Ð°.

    Ð�ÑƒÐ¶Ð½Ð¾ Ð´Ð»Ñ� Ð½Ð¸Ð¶Ð½Ð¸Ñ… ÐºÐ½Ð¾Ð¿Ð¾Ðº-CTA (Â«Ð—Ð°ÐºÐ°Ð·Ð°Ñ‚ÑŒ ÐºÐ°Ñ€Ñ‚ÑƒÂ», Â«Ð’Ñ‹Ð¿ÑƒÑ�Ñ‚Ð¸Ñ‚ÑŒÂ», Â«ÐžÑ‚Ð»Ð¸Ñ‡Ð½Ð¾Â»),
    Ñƒ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… uiautomator Ð¸Ð½Ð¾Ð³Ð´Ð° Ð¾Ñ‚Ð´Ð°Ñ‘Ñ‚ ÐºÑ€Ð¸Ð²Ñ‹Ðµ bounds (bottom < top, Ð»Ð¸Ð±Ð¾ Ñ†ÐµÐ½Ñ‚Ñ€
    Ð½Ð¸Ð¶Ðµ Ð²Ð¸Ð´Ð¸Ð¼Ð¾Ð¹ Ñ‡Ð°Ñ�Ñ‚Ð¸ Ñ�ÐºÑ€Ð°Ð½Ð°). Ð’ Ñ‚Ð°ÐºÐ¸Ñ… Ñ�Ð»ÑƒÑ‡Ð°Ñ�Ñ… Ð¾Ð±Ñ‹Ñ‡Ð½Ñ‹Ð¹ Ñ‚Ð°Ð¿ Ð¿Ð¾ top_center
    Ð¿Ñ€Ð¾Ð¼Ð°Ñ…Ð¸Ð²Ð°ÐµÑ‚Ñ�Ñ� Ð¼Ð¸Ð¼Ð¾ ÐºÐ½Ð¾Ð¿ÐºÐ¸.
    Fr   r€   r†   r„   rc   rB   rf   rh   r™   rƒ   r…   rg   T)r   r\   r5   rm   r�   rn   ro   rŒ   rp   rq   rs   rŠ   rÐ   r²   r  rÀ   )r;   rí   ré  rx   r”   rz   r@  r{   r|   rd   r
  r„   r†   r  s                 r   Útap_text_clampedrë  R	  s�  € ðÜœ[¨Ó0Ó1ˆð €FØ—	‘	“ò 8ˆÜ˜Ÿ™Ÿ™¨Ó2Ó3ˆÚÜ˜  8¡¨a°©hÓ7‰Fð8ð
 —	‘	“ó ˆØ,ó 	ˆDØ—K‘K—O‘O DÓ)Ò/¨RˆEØ—8‘8˜EŸK™K›MÓ*ˆDÙ˜4Ÿ?™?¨:Ô6ØÜ—9‘9˜W d´"·-±-Õ@ØÜ˜TŸ[™[Ÿ_™_¨XÓ6Ó7ˆAÙØØ�F‘)˜a ™jÑ(¨QÑ.ˆBÜ�a˜‘h  (¡Ó,ˆCÜ˜˜5™ 1 X¡;Ó/ˆFØ˜‘, 1Ñ$ˆBÙ˜" š,Ø˜f‘_�Ø�QŠw˜" š'ØÜ˜V R¨Ô,Úò'	ðð* øô= ò Ùðús   ‚F Æ	FÆFc                 ó  — g }| xs g D ]m  }|j                  d«      xs d}|sŒ|j                  d«      xs dj                  dd«      }|j                  d«      xs d}|j                  |› d|› d|› �«       Œo dj                  |«      S )u  Ð¡ÐµÑ€Ð¸Ð°Ð»Ð¸Ð·ÑƒÐµÑ‚ Ñ�Ð¿Ð¸Ñ�Ð¾Ðº ÐºÐ°Ñ€Ñ‚ Ð² Ñ�Ñ‚Ñ€Ð¾ÐºÑƒ Ð´Ð»Ñ� Ð‘Ð”: full_number/expiry(Ð±ÐµÐ· Â«/Â»)/cvv, ÐºÐ°Ñ€Ñ‚Ñ‹ Ñ‡ÐµÑ€ÐµÐ· ':'.

    ÐšÐ°Ñ€Ñ‚Ñ‹ Ð±ÐµÐ· Ð½Ð¾Ð¼ÐµÑ€Ð° Ð¿Ñ€Ð¾Ð¿ÑƒÑ�ÐºÐ°ÐµÐ¼, Ñ‡Ñ‚Ð¾Ð±Ñ‹ Ð½Ðµ Ð¿Ð¾Ñ�Ð²Ð»Ñ�Ð»Ð¸Ñ�ÑŒ Ð¿ÑƒÑ�Ñ‚Ñ‹Ðµ Ð·Ð°Ð¿Ð¸Ñ�Ð¸ Ð²Ð¸Ð´Ð° '//'.
    rk  rB   rm  rô  rn  r*   r’  r“  s         r   Ú_serialize_cards_for_dbrí  }	  s”   € ð
 €CØÒ˜Bò ,ˆØ�e‰e�MÓ"Ò( bˆÙØØ—%‘%˜“/Ò' R×0Ñ0°°bÓ9ˆØ�e‰e�E‹lÒ ˜bˆØ�
‰
�c�U˜!˜F˜8 1 S EÐ*Õ+ð,ð �8‰8�C‹=Ðr   r}  c                 óº   — t        j                  d| xs d«      }|r|j                  d«      S t        j                  d| xs d«      }|r|j                  d«      S d S )Nz(\d{4})\s*$rB   r›   z(\d{4}))rŠ   rÐ   r³   )r}  rñ   s     r   Ú_card_last4_from_labelrï  �	  sP   € Ü�I‰I�n e¢k¨rÓ2€EÙØ�{‰{˜1‹~ÐÜ�I‰I�j %¢+¨2Ó.€EÙ"ˆ5�;‰;�q‹>Ð,¨Ð,r   Ú
serializedc                 ó(  — t        «       }t        | xs d«      j                  d«      D ]f  }t        j                  dd|r|j                  d«      d   nd«      }|sŒ3|j                  |«       t        |«      dk\  sŒS|j                  |dd  «       Œh |S )NrB   r*   r&  rô  r   rÿ   r®  )rs  rX   rq   rŠ   rv  rw  rr   )rð  rS  Úchunkr{  s       r   Ú_known_card_keysró  •	  s†   € Ü‹5€DÜ�ZÒ% 2Ó&×,Ñ,¨SÓ1ò ˆÜ�f‰f�U˜B¹ §¡¨SÓ!1°!Ò!4À2ÓGˆÙØØ�‰�ŒÜˆs‹8�q‹=Ø�H‰H�S˜˜�XÕðð €Kr   Úexistingr|  c                 ó
  — t        |g«      }|s| xs dS t        j                  dd|j                  d«      xs d«      }t	        | xs d«      j                  d«      D �cg c]  }|j                  «       sŒ|‘Œ }}g }d}|D ]W  }t        j                  dd|j                  d«      d   «      }	|r|	|k(  r|j                  |«       d}ŒG|j                  |«       ŒY |s|j                  d|«       dj                  |«      S c c}w )	u‹   Ð”Ð¾Ð±Ð°Ð²Ð»Ñ�ÐµÑ‚/Ð·Ð°Ð¼ÐµÐ½Ñ�ÐµÑ‚ ÐºÐ°Ñ€Ñ‚Ñƒ Ð² Ñ�ÐµÑ€Ð¸Ð°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ð½Ð¾Ð¹ Ñ�Ñ‚Ñ€Ð¾ÐºÐµ Ð‘Ð”. Ð�Ð¾Ð²Ð°Ñ� ÐºÐ°Ñ€Ñ‚Ð° â€” Ð¿ÐµÑ€Ð²Ð¾Ð¹.rB   r&  rk  r*   Frô  r   T)
rí  rŠ   rv  ro   rX   rq   rE   rt   Úinsertrp   )
rô  r|  Úpiecer{  rì   r	  rY  ÚreplacedÚpartÚpart_nums
             r   Ú_merge_card_into_serializedrû  ¡	  sï   € ä# V HÓ-€EÙØŠ~˜2ÐÜ
�&‰&�˜˜FŸJ™J }Ó5Ò;¸Ó
<€CÜ˜HšN¨Ó+×1Ñ1°#Ó6ÖD�1¸!¿'¹'½)ŠQÐD€EÐDØ
€CØ€HØò ˆÜ—6‘6˜%  T§Z¡Z°£_°QÑ%7Ó8ˆÙ�8˜s’?Ø�J‰J�uÔØ‰Hà�J‰J�tÕðñ Ø�
‰
�1�eÔØ�8‰8�C‹=Ðùò Es   ÁD Á5D c                 óà  — |xs
 t        «       }t        j                  «       dz   }t        j                  «       |k  �r	 t        | «      }t        |«      }t        |«      }d}|D ]  }t        |d   «      }|sŒ||vsŒ|} n |€|r|d   }t        |d«      }	|rt        | |d   |d   «      }
n)|	rt        | |	d   d«      }
nt        j
                  d«       Œ°|
j                  d	«      s3|
j                  d
«      s"|
j                  d«      s|
j                  d«      r|
S t        j
                  d«       t        j                  «       |k  r�Œy# t        $ r t        j
                  d«       Y �ŒFw xY w)u…   ÐŸÐ¾Ñ�Ð»Ðµ Ð²Ñ‹Ð¿ÑƒÑ�ÐºÐ° Ð¾Ñ‚ÐºÑ€Ñ‹Ð²Ð°ÐµÑ‚ Ð½Ð¾Ð²ÑƒÑŽ ÐºÐ°Ñ€Ñ‚Ñƒ, Ð¶Ð¼Ñ‘Ñ‚ Â«ÐŸÐ¾ÐºÐ°Ð·Ð°Ñ‚ÑŒÂ» Ð¸ Ð¿Ð°Ñ€Ñ�Ð¸Ñ‚ Ñ€ÐµÐºÐ²Ð¸Ð·Ð¸Ñ‚Ñ‹.rÎ  rÚ  Nr}  r   rr  r‡   Únewrk  rl  rm  rn  )rs  rá   r\   r   r5   râ   rÁ  rï  rÃ  rà  ro   )r;   Ú
known_keysr<  r_   rx   r¾  r-  r  rÝ  rß  r|  s              r   Ú_parse_issued_cardrÿ  ¶	  sW  € àÒ$œs›u€JÜ�y‰y‹{˜TÑ!€HÜ
�)‰)‹+˜Ó
 ð	Ü# FÓ+ˆIÜ  Ó+ˆDô
 $ DÓ)ˆØˆØò 	ˆDÜ*¨4°©=Ó9ˆEÚ˜ jÒ0Ø�Ùð		ð
 ˆ>™gØ˜Q‘ZˆFä'¨Ð.FÓGˆÙÜ)¨&°&¸Ñ2BÀFÈ7ÁOÓT‰FÙÜ)¨&°(¸8Ñ2DÀeÓL‰Fä�J‰J�sŒOØà�:‰:�mÔ$¨¯
©
°<Ô(@ÀFÇJÁJÈxÔDXÐ\b×\fÑ\fÐglÔ\mØˆMÜ�
‰
�3Œô; �)‰)‹+˜Ô
 ð< øô5 ò 	Ü�J‰J�sŒOÚð	ús   ¿E ÅE-Å,E-Úintervalc                 óF  — t        j                   «       |z   }t        j                   «       |k  rb	 t        | «      }|r't        j                  ||t        j
                  ¬«      ryt        j                  |«       t        j                   «       |k  rŒby# t        $ r d}Y Œdw xY w)uš   Ð–Ð´Ñ‘Ñ‚, Ð¿Ð¾ÐºÐ° Ð² Ð´Ð°Ð¼Ð¿Ðµ Ñ�ÐºÑ€Ð°Ð½Ð° Ð¿Ð¾Ñ�Ð²Ð¸Ñ‚Ñ�Ñ� Ñ‚ÐµÐºÑ�Ñ‚ Ð¿Ð¾ Ð¿Ð°Ñ‚Ñ‚ÐµÑ€Ð½Ñƒ. True â€” ÐµÑ�Ð»Ð¸ Ð¿Ð¾Ñ�Ð²Ð¸Ð»Ñ�Ñ� Ð´Ð¾ Ñ‚Ð°Ð¹Ð¼Ð°ÑƒÑ‚Ð°.rB   r™   TF)rá   r`   r5   rŠ   rÐ   r²   râ   )r;   rí   r-   r   r<  rd   s         r   Úwait_for_text_on_screenr  Û	  s�   € ä�y‰y‹{˜WÑ$€HÜ
�)‰)‹+˜Ò
 ð	Ü  Ó(ˆDñ ”B—I‘I˜g t´2·=±=ÕAØÜ�
‰
�8Ôô �)‰)‹+˜Ó
 ð øô ò 	ØŠDð	ús   °B ÂB ÂB Ú	card_kindÚdesignÚ	update_dbc                 ó¤  — t        | ¬«      }dt        dt        fd„}	 t        |«      }t        |«      rct        d«       t        | «      }|s
t        «       }t        d|rdnd	› �«       t        ||«      }t        d
|› �«       t        j                  d«       d„ }	t        |«      s	 |dd«      S t        j                  d«       t        |dd¬«      s	 |dd«      S t        j                  d«       t        d«      D ]w  }
t        |ddd¬«      r nft        |ddd¬«      r&|j!                  d«       t        j                  d«       t#        |d«      st#        |d«      rt        j                  d«       Œw n t        |dd¬«      s	 |dd «      S t        |d!t%        j&                  |«      › d"�«      s,t        |t%        j&                  |«      «      s |dd#|› d$�«      S t        j                  d«       t        |d%d&¬«      rgt        |d!t%        j&                  |«      › d"�«      s.t        |t%        j&                  |«      «      st        d'|› d(�«       t        j                  d«       nt        d)«       t        |d*d&¬«      s	 |dd+«      S t#        |d,«      st#        |d*«      s	 |dd-«      S t        |d.d/d¬«      s	 |dd0«      S t        d1«       t        j                  d«       t#        |d2«      xs t#        |d3«       t        j                  d«       t)        |rt+        | «      nd«      }t-        ||«      }d	}|rJ	 t+        | «      xs d}|r't/        ||«      }t1        | |«       t        d4|› �«       n|xs d	}t        d5«        |	|«        |	|«        |dd7||¬8«      S # t        $ r d}Y �Œ�w xY w# t        $ r}t        d6|› �«       Y d	}~ŒJd	}~ww xY w)9uD  Ð—Ð°ÐºÐ°Ð·Ñ‹Ð²Ð°ÐµÑ‚ Ð½Ð¾Ð²ÑƒÑŽ ÐºÐ°Ñ€Ñ‚Ñƒ Ozon Ð‘Ð°Ð½ÐºÐ° Ð½Ð° ÑƒÑ�Ñ‚Ñ€Ð¾Ð¹Ñ�Ñ‚Ð²Ðµ.

    ÐŸÑ€Ð¾Ñ…Ð¾Ð´Ð¸Ñ‚ Ð²ÐµÑ�ÑŒ Ñ�Ñ†ÐµÐ½Ð°Ñ€Ð¸Ð¹ Ð²Ñ‹Ð¿ÑƒÑ�ÐºÐ°: ÐžÑ�Ð½Ð¾Ð²Ð½Ð¾Ð¹ Ñ�Ñ‡Ñ‘Ñ‚ â†’ Ð—Ð°ÐºÐ°Ð·Ð°Ñ‚ÑŒ ÐºÐ°Ñ€Ñ‚Ñƒ â†’
    (Ð¿Ñ€Ð¾Ð¼Ð¾-Ñ�ÐºÑ€Ð°Ð½) â†’ Ð²Ñ‹Ð±Ð¾Ñ€ Ñ‚Ð¸Ð¿Ð° ÐºÐ°Ñ€Ñ‚Ñ‹ â†’ Ð²Ñ‹Ð±Ð¾Ñ€ Ð´Ð¸Ð·Ð°Ð¹Ð½Ð° â†’ Ð’Ñ‹Ð¿ÑƒÑ�Ñ‚Ð¸Ñ‚ÑŒ â†’ Ñ�ÐºÑ€Ð°Ð½
    Â«ÐšÐ°Ñ€Ñ‚Ð° Ð³Ð¾Ñ‚Ð¾Ð²Ð°Â» â†’ Ñ‡Ð¸Ñ‚Ð°ÐµÑ‚ Ñ€ÐµÐºÐ²Ð¸Ð·Ð¸Ñ‚Ñ‹ Ð½Ð¾Ð²Ð¾Ð¹ ÐºÐ°Ñ€Ñ‚Ñ‹ â†’ Ð¿Ð¸ÑˆÐµÑ‚ Ð² Ð‘Ð” â†’ Ð´Ð²Ð° Ñ€Ð°Ð·Ð°
    Â«Ð�Ð°Ð·Ð°Ð´Â» Ð½Ð° Ð³Ð»Ð°Ð²Ð½Ñ‹Ð¹ Ñ�ÐºÑ€Ð°Ð½. Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ dict Ñ�Ð¾ Ñ�Ñ‚Ð°Ñ‚ÑƒÑ�Ð¾Ð¼.
    rR   ÚsuccessÚmessagec                 ó,   — t        d|› �«       | |dœ|¥S )Nz
add_card: )r  r  )r!   )r  r  Úextras      r   rä   zadd_card.<locals>.resultó	  s!   € Üˆj˜˜	Ð"Ô#Ø"¨wÑ@¸%Ð@Ð@r   rB   r‡  rˆ  r‰  NrŠ  r‹  c                 óJ  — 	 t        | «      }t        |«      }t        |d«      }|rNt        |d   t        t
        f«      rt        | g|d   ¢­Ž  nt        | |d   «       t        j                  d«       y	 t        | «       t        j                  d«       y# t        $ r Y Œ,w xY wr~  r  r€  s       r   r‚  zadd_card.<locals>.tap_back
  rƒ  r„  FuP   Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½ Â«ÐžÑ�Ð½Ð¾Ð²Ð½Ð¾Ð¹ Ñ�Ñ‡Ñ‘Ñ‚Â» Ð½Ð° Ð³Ð»Ð°Ð²Ð½Ð¾Ð¼ Ñ�ÐºÑ€Ð°Ð½ÐµrØ  u   Ð—Ð°ÐºÐ°Ð·Ð°Ñ‚ÑŒ ÐºÐ°Ñ€Ñ‚ÑƒT)rÆ   u@   Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½Ð° ÐºÐ½Ð¾Ð¿ÐºÐ° Â«Ð—Ð°ÐºÐ°Ð·Ð°Ñ‚ÑŒ ÐºÐ°Ñ€Ñ‚ÑƒÂ»rß   rÿ   u&   Ð’Ñ‹Ð±ÐµÑ€Ð¸Ñ‚Ðµ\s+Ñ‚Ð¸Ð¿\s+ÐºÐ°Ñ€Ñ‚Ñ‹rq  rÚ  )r-   r   u9   Ð—Ð°ÐºÐ°Ð¶Ð¸Ñ‚Ðµ\s+ÐºÐ°Ñ€Ñ‚Ñƒ|Ð—Ð°ÐºÐ°Ð·Ð°Ñ‚ÑŒ ÐºÐ°Ñ€Ñ‚Ñƒró   zinput swipe 360 900 360 600 400u   ^Ð—Ð°ÐºÐ°Ð·Ð°Ñ‚ÑŒ ÐºÐ°Ñ€Ñ‚Ñƒ$r7  r,   uA   Ð½Ðµ Ð¿Ð¾Ñ�Ð²Ð¸Ð»Ñ�Ñ� Ñ�ÐºÑ€Ð°Ð½ Ð²Ñ‹Ð±Ð¾Ñ€Ð° Ñ‚Ð¸Ð¿Ð° ÐºÐ°Ñ€Ñ‚Ñ‹ú^ú$u&   Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½ Ñ‚Ð¸Ð¿ ÐºÐ°Ñ€Ñ‚Ñ‹ Â«õ   Â»u   Ð’Ñ‹Ð±ÐµÑ€Ð¸Ñ‚Ðµ\s+Ð´Ð¸Ð·Ð°Ð¹Ð½ç       @u   add_card: Ð´Ð¸Ð·Ð°Ð¹Ð½ Â«uK   Â» Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½, Ð¿Ñ€Ð¾Ð±ÑƒÐµÐ¼ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶Ð¸Ñ‚ÑŒ Ñ� Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¼u}   add_card: Ñ�ÐºÑ€Ð°Ð½ Ð²Ñ‹Ð±Ð¾Ñ€Ð° Ð´Ð¸Ð·Ð°Ð¹Ð½Ð° Ð½Ðµ Ð¿Ð¾Ñ�Ð²Ð¸Ð»Ñ�Ñ� â€” Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾, Ð´Ð¸Ð·Ð°Ð¹Ð½ ÑƒÐ¶Ðµ Ð²Ñ‹Ð±Ñ€Ð°Ð½u   Ð’Ñ‹Ð¿ÑƒÑ�Ñ‚Ð¸Ñ‚ÑŒu;   Ð½Ðµ Ð¿Ð¾Ñ�Ð²Ð¸Ð»Ð°Ñ�ÑŒ ÐºÐ½Ð¾Ð¿ÐºÐ° Â«Ð’Ñ‹Ð¿ÑƒÑ�Ñ‚Ð¸Ñ‚ÑŒÂ»u   ^Ð’Ñ‹Ð¿ÑƒÑ�Ñ‚Ð¸Ñ‚ÑŒ$u7   Ð½Ðµ ÑƒÐ´Ð°Ð»Ð¾Ñ�ÑŒ Ð½Ð°Ð¶Ð°Ñ‚ÑŒ Â«Ð’Ñ‹Ð¿ÑƒÑ�Ñ‚Ð¸Ñ‚ÑŒÂ»u(   ÐºÐ°Ñ€Ñ‚Ð°\s+Ð³Ð¾Ñ‚Ð¾Ð²Ð°|ÐžÑ‚Ð»Ð¸Ñ‡Ð½Ð¾g      D@uL   Ð½Ðµ Ð´Ð¾Ð¶Ð´Ð°Ð»Ð¸Ñ�ÑŒ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ� Ð²Ñ‹Ð¿ÑƒÑ�ÐºÐ° ÐºÐ°Ñ€Ñ‚Ñ‹u4   add_card: ÐºÐ°Ñ€Ñ‚Ð° ÑƒÑ�Ð¿ÐµÑˆÐ½Ð¾ Ð²Ñ‹Ð¿ÑƒÑ‰ÐµÐ½Ð°u   ^ÐžÑ‚Ð»Ð¸Ñ‡Ð½Ð¾$u   ÐžÑ‚Ð»Ð¸Ñ‡Ð½Ð¾u1   add_card: ÐºÐ°Ñ€Ñ‚Ñ‹ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ñ‹ Ð² Ð‘Ð”: uY   add_card: Ð½Ðµ ÑƒÐ´Ð°Ð»Ð¾Ñ�ÑŒ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚ÑŒ Ñ€ÐµÐºÐ²Ð¸Ð·Ð¸Ñ‚Ñ‹ Ð½Ð¾Ð²Ð¾Ð¹ ÐºÐ°Ñ€Ñ‚Ñ‹uC   add_card: Ð½Ðµ ÑƒÐ´Ð°Ð»Ð¾Ñ�ÑŒ Ð¾Ð±Ð½Ð¾Ð²Ð¸Ñ‚ÑŒ ÐºÐ°Ñ€Ñ‚Ñ‹ Ð² Ð‘Ð”: u   ÐºÐ°Ñ€Ñ‚Ð° Ð²Ñ‹Ð¿ÑƒÑ‰ÐµÐ½Ð°)rz  r  )r@   ÚboolrX   r`   r5   r(  r!   rš  r  rG  rá   râ   r  ræ   rt  r  rH   rë  rŠ   r¬  ró  Ú	get_cardsrÿ  rû  rç  )r"   r  r  r  r;   rä   rT  r  r�  r‚  rå   Úknownr|  r¥  rô  r?   s                   r   Úadd_cardr  é	  sÜ  € ô ¨Ô5€FðAœð A¤só AðÜ˜VÓ$ˆô ˜4Ô ÜÐ8Ô9Ü˜;Ó'ˆÙÜ0Ó2ˆCÜÐ©™u°Ð6Ð7Ô8Ü/°¸Ó<ˆ	Üˆo˜i˜[Ð)Ô*Ü�
‰
�3Œòô( ˜FÔ#Ù�eÐoÓpÐpÜ‡J�Jˆs„Oô # 6Ð+HÐPTÕUÙ�eÐ_Ó`Ð`Ü‡J�Jˆs„Oô �1‹Xò 	ˆÜ" 6Ð+TÐ^aÐloÕpÙÜ" 6Ð+gÐqtð  @Cõ  DØ�L‰LÐ:Ô;Ü�J‰J�sŒOÜ˜FÐ$DÔEÔIYÐZ`ð  cAô  JBÜ�J‰J�sŒOØÙð	ô # 6Ð+TÐ^aÕbÙ�eÐ`ÓaÐaô # 6¨a´·	±	¸)Ó0DÐ/EÀQÐ+GÔHÜ& v¬r¯y©y¸Ó/CÔDÙ˜%Ð#IÈ)ÈÐTVÐ!WÓXÐXÜ‡J�Jˆs„Oô ˜vÐ'IÐSVÕWÜ& v°!´B·I±I¸fÓ4EÐ3FÀaÐ/HÔIÜ*¨6´2·9±9¸VÓ3DÔEÜÐ/°¨xð  8Cð  Dô  EÜ�
‰
�3�äð  Lô  	Mô # 6Ð+@È#ÕNÙ�eÐZÓ[Ð[Ü˜FÐ$;Ô<Ü Ð(=Ô>Ù˜%Ð!ZÓ[Ð[ô # 6Ð+VÐ`dÐorÕsÙ�eÐkÓlÐlÜÐ>Ô?ô 	‡J�Jˆs„OÜ�VÐ0Ó1Ò`Ô5EÀfÐN_Ó5`øÜ‡J�Jˆs„Oô ±yœY {Ô3ÀbÓI€EÜ ¨Ó.€FØÐÙð
	]Ü  Ó-Ò3°ˆHÙÜ#>¸xÈÓ#PÐ Ü˜[Ð*:Ô;ÜÐGÐHXÐGYÐZÕ[à#+Ò#3¨tÐ ÜÐoÔpñ
 ˆVÔÙˆVÔá�$Ð5Ð=MÐTZÔ[Ð[øôg ò Ø‹ðûôX ò 	]ÜÐUÐVYÐUZÐ[×\Ñ\ûð	]ús*   žN Ì7A	N. ÎN+Î*N+Î.	OÎ7O
Ï
Oi¯  i¼  Ú__OZPAY_DOCKER_PS_START__Ú__OZPAY_DOCKER_PS_END__r"  rq  i  ú
macros.mdrz%com.arlosoft.macrodroid-896500008.apkzRuStore-mobile-1.106.0.3.apkÚdefaultc                 óŽ   — t        | «      }|dv r|S 	 t        |«      }d|cxk  rdk  s|S  |S |S # t        t        f$ r |cY S w xY w)ui   ÐŸÐ¾Ñ€Ñ‚ ADB Ð´ÐµÐ²Ð°Ð¹Ñ�Ð° Ð¸Ð· Ð±Ð°Ð·Ñ‹; ÐµÑ�Ð»Ð¸ Ð½Ðµ Ð·Ð°Ð´Ð°Ð½ Ð¸Ð»Ð¸ Ð±Ð¸Ñ‚Ñ‹Ð¹ â€” default (1967).©NrB   r›   éÿÿ  )r2   r4   rF   rG   )r"   r  r(   s      r   Ú_device_adb_portr  }
  se   € ä�KÓ €DØˆzÑØˆðÜ�4‹yˆð �Ô˜ÒØˆð ØˆØ€Køô	 ”zÐ"ò ØŠðús   “0 °AÁAc                 óž   — t        | «      xs i }	 t        |j                  d«      xs d«      }|dk\  r|S dS # t        t        f$ r d}Y Œw xY w)NÚslotr›   )Ú
get_devicer4   ro   rF   rG   )r"   Úrowr  s      r   Ú_device_slotr   ‹
  s[   € Ü
�[Ó
!Ò
' R€CðÜ�3—7‘7˜6“?Ò' aÓ(ˆð ˜1’9ˆ4Ð# !Ð#øô ”zÐ"ò ØŠðús   ‘8 ¸AÁAr  c           	      ó¶   — 	 t        | «      } | dk  rd} | dk(  rdddddddddœS | d	| › �d| › �d| › �d
| › �d| › �d| › �d| › �dœS # t        t        f$ r d} Y ŒJw xY w)u2  Ð˜Ð¼ÐµÐ½Ð° Ð¿Ð°Ð¿Ð¾Ðº Ð¸ ÐºÐ¾Ð½Ñ‚ÐµÐ¹Ð½ÐµÑ€Ð¾Ð² Ð´Ð»Ñ� N-Ð³Ð¾ redroid Ð½Ð° Ð¾Ð´Ð½Ð¾Ð¼ Ñ�ÐµÑ€Ð²ÐµÑ€Ðµ.

    Ð¡Ð»Ð¾Ñ‚ 1 â€” Ð¸Ñ�Ñ…Ð¾Ð´Ð½Ñ‹Ð¹ Ñ�Ñ‚ÐµÐº ~/redroid-proxy (ÑƒÐ¶Ðµ Ð¿Ð¾Ð´Ð½Ñ�Ñ‚Ñ‹Ðµ Ñ�ÐµÑ€Ð²ÐµÑ€Ñ‹).
    Ð¡Ð»Ð¾Ñ‚ 2+ â€” ~/redroid-N / redroidN, ÐºÐ°Ðº Ð² Ð³Ð°Ð¹Ð´Ðµ Ð²Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ Ð´ÐµÐ²Ð°Ð¹Ñ�Ð°.
    r›   z~/redroid-proxyÚredroidÚredroid_dataÚredroid_netzredsocks-proxyÚREDSOCKS)r  ÚdirÚserviceÚ	containerÚvolumeÚnetworkÚredsocksÚchainz
~/redroid-Úredroid_data_Úredroid_net_zredsocks-proxy-)r4   rF   rG   )r  s    r   Úredroid_layoutr/  ”
  s·   € ðÜ�4‹yˆð ˆa‚xØˆØˆq‚yàØ$Ø Ø"Ø$Ø$Ø(Øñ	
ð 		
ð Ø˜D˜6Ð"Ø˜T˜FÐ#Ø˜t˜fÐ%Ø! $ Ð(Ø! $ Ð(Ø% d VÐ,Ø˜D˜6Ð"ñ	ð 	øô ”zÐ"ò ØŠðús   ‚A ÁAÁAc                  ó,   — dt         › d�ddt        › d�gS )Nzprintf '%s\n' 'rŒ  ú	docker ps)ÚDOCKER_PS_STARTÚDOCKER_PS_ENDr   r   r   Ú_docker_ps_commandsr4  ·
  s(   € à
œ?Ð+¨1Ð-ØØ
œ=˜/¨Ð+ðð r   ÚlayoutÚ	sleep_secc                 ó–   — | d   }t        |«      }ddt        |«      › �gt        «       ¢d|› d|› �‘d|› d�‘d‘d‘d|› d	�‘d
‘d|› d�‘S )Nr(  zdocker compose up -d --buildzsleep zdocker exec z setprop service.adb.tcp.port z setprop ctl.restart adbdzsleep 3zecho "ADB PORT:"z getprop service.adb.tcp.portzecho "ADB STATUS:"z getprop init.svc.adbd)r4   r4  )r5  r$   r6  r(  r(   s        r   Ú_redroid_up_commandsr8  ¿
  s°   € Ø�{Ñ#€IÜˆx‹=€Dà&Ø
”�Y“Ð Ð!ðô 
Ó	ðð �y�kÐ!?À¸vÐFð	ð
 �y�kÐ!:Ð;ðð 	ðð 	ðð �y�kÐ!>Ð?ðð 	ðð �y�kÐ!7Ð8ðð r   c                 óL   — t        |«      }d|d   › �dgt        || d¬«      ¢d‘S )Núcd r&  údocker compose downrñ  ©r6  zsleep 10)r/  r8  )r$   r  r5  s      r   Ú_reboot_ssh_commandsr=  Ð
  sD   € Ü˜DÓ!€Fà
ˆf�U‰mˆ_ÐØðô 
˜f h¸!Ô	<ðð 	ð	ð r   c           	      ó‚  — t        | «      }t        | «      }|r|dv ry	 t        |«      }t        ||¬«      }	 |j                  ||«       t        d|› d|› �«       y# t        t        f$ r Y yw xY w# t        $ rD}t        |«      }d|j                  «       v sd|v rY d}~yt        d|› d|› d|› �«       Y d}~yd}~ww xY w)	ug   Ð¡Ð±Ñ€Ð¾Ñ�Ð¸Ñ‚ÑŒ ADB-Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ðµ Ðº ÑƒÑ�Ñ‚Ñ€Ð¾Ð¹Ñ�Ñ‚Ð²Ñƒ, ÐµÑ�Ð»Ð¸ Ð¾Ð½Ð¾ ÐµÑ‰Ñ‘ Ð²Ð¸Ñ�Ð¸Ñ‚.r  Nr&   zADB disconnect r*   zno such deviceÚ0023rD   )r1   r2   r4   rF   rG   r0   Úremote_disconnectr!   r5   rX   r°   )r"   r#   r$   r'   r(   r<   r?   rd   s           r   Údisconnect_redroidrA  Ú
  sÑ   € ä�+Ó€DÜ�KÓ €DÙ�4˜:Ñ%ØðÜ�4‹yˆô ˜H¨8Ô4€Fð4Ø× Ñ   tÔ,Üˆo˜d˜V 1 T FÐ+Õ,øô ”zÐ"ò Ùðûô ò 4Ü�3‹xˆØ˜tŸz™z›|Ñ+¨v¸©~ÜÜˆo˜d˜V 1 T F¨"¨S¨EÐ2×3Ñ3ûð	4ús.   ŸA ¸#A1 ÁA.Á-A.Á1	B>Á:!B9Â B9Â9B>Údelayc           
      óT  — d}t        d|dz   «      D ]F  }t        «        t        | «       	 t        | «      }|j	                  d«       t        d|› d�«       |c S  t        d	|› �«      ‚# t        $ r5}|}t        d|› d|› d|› �«       t        j                  |«       Y d}~Œ�d}~ww xY w)
uY   ÐŸÐ¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒÑ�Ñ� Ð¿Ð¾ ADB Ð¿Ð¾Ñ�Ð»Ðµ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿ÑƒÑ�ÐºÐ° ÐºÐ¾Ð½Ñ‚ÐµÐ¹Ð½ÐµÑ€Ð°.Nr›   rC   u'   reboot: ADB Ð³Ð¾Ñ‚Ð¾Ð² (Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° rÝ   u   reboot: Ð¶Ð´Ñ‘Ð¼ ADB rô  rD   u7   Ð�Ðµ ÑƒÐ´Ð°Ð»Ð¾Ñ�ÑŒ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒÑ�Ñ� Ð¿Ð¾ ADB: )
rt  r   rA  r@   rH   r!   r5   rá   râ   r3   )r"   rã   rB  Úlast_excr)  r;   r?   s          r   Úwait_for_adbrE  ï
  sº   € à€HÜ˜˜H q™LÓ)ò ˆÜÔ Ü˜;Ô'ð	Ü$ [Ó1ˆFØ�L‰L˜Ô#ÜÐ9¸'¸À!ÐDÔEØŠMðô ÐPÐQYÐPZÐ[Ó
\Ð\øô	 ò 	ØˆHÜÐ'¨ y°°(°¸2¸c¸UÐCÔDÜ�J‰J�u×Ñûð	ús   «,A)Á)	B'Á2+B"Â"B'Úcommandc                 óà  — | xs dj                  «       }|syd|v r|j                  d«      ryd|v r|j                  d«      ryd|v r|j                  d«      ryd	|v r|j                  d«      ry
d|v r|j                  d«      ryd|v ryd|v ry|j                  «       dk(  s|j                  «       j                  d«      ry|j                  dd«      d   }t        |«      dkD  r|d d dz   S |S )NrB   zredsocks.confzcat u   Ð·Ð°Ð¿Ð¸Ñ�ÑŒ redsocks.confzentrypoint.shu   Ð·Ð°Ð¿Ð¸Ñ�ÑŒ entrypoint.shzdocker-compose.ymlu   Ð·Ð°Ð¿Ð¸Ñ�ÑŒ docker-compose.ymlÚ
Dockerfileu   Ð·Ð°Ð¿Ð¸Ñ�ÑŒ Dockerfilezredroid.confu&   Ð·Ð°Ð¿Ð¸Ñ�ÑŒ modules-load redroid.confÚOZPAY_DOCKER_PS_STARTu5   docker ps â€” Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° ÐºÐ¾Ð½Ñ‚ÐµÐ¹Ð½ÐµÑ€Ð¾Ð²ÚOZPAY_DOCKER_PS_ENDu   docker ps Ð³Ð¾Ñ‚Ð¾Ð²Ð¾r1  z
docker ps ri   r›   r   r  éu   z...)rE   rs   rq   rr   )rF  rd   r­  s      r   Ú_ssh_command_previewrL    sù   € ØŠM�r× Ñ Ó"€DÙØØ˜$Ñ 4§?¡?°6Ô#:Ø+Ø˜$Ñ 4§?¡?°6Ô#:Ø+Ø˜tÑ#¨¯©¸Ô(?Ø0Ø�tÑ §¡°Ô 7Ø(Ø˜Ñ $§/¡/°&Ô"9Ø7Ø $Ñ&ØFØ Ñ$Ø'Ø‡z�zƒ|�{Ò" d§j¡j£l×&=Ñ&=¸lÔ&KØFØ�J‰J�t˜QÓ Ñ"€EÜ
ˆ5ƒz�CÒØ�T�cˆ{˜UÑ"Ð"Ø€Lr   rx  c                 ó¬  — | xs g D ]Ë  }|j                  d«      xs dj                  «       }t        |«      }|j                  d«      }|j                  d«      xs d}|j                  d«      rd|› �c S |dv rŒt|j                  d«      sd	|v rt	        d
|› d|› d�«       Œœ|j                  «       rd|j                  «       › �nd}d|› d|› |› �c S  y)NrF  rB   Ú	exit_codeÚstdoutÚskippedõ;   SSH-Ñ�ÐµÑ�Ñ�Ð¸Ñ� Ð¾Ð±Ð¾Ñ€Ð²Ð°Ð»Ð°Ñ�ÑŒ Ð´Ð¾ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ‹: ©r   Nr;  ÚOZPAY_DOCKER_PSúreboot: õ    Ð²ÐµÑ€Ð½ÑƒÐ» õ   , Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶Ð°ÐµÐ¼ri   õ)   ÐšÐ¾Ð¼Ð°Ð½Ð´Ð° Ð½Ðµ ÑƒÐ´Ð°Ð»Ð°Ñ�ÑŒ (exit ú): ©ro   rE   rL  rs   r!   ©rx  rI   rF  rÙ   rF  rO  r
  s          r   Ú_reboot_ssh_errorr[    sï   € Ø’˜2ò UˆØ—8‘8˜IÓ&Ò,¨"×3Ñ3Ó5ˆÜ& wÓ/ˆØ�x‰x˜Ó$ˆØ—‘˜(Ó#Ò) rˆØ�8‰8�IÔØPÐQXÐPYÐZÒZØ�9ÑØØ×ÑÐ3Ô4Ð8IÈWÑ8TÜ�(˜7˜) >°$°Ð7MÐNÔOØØ)/¯©¬�"�V—\‘\“^Ð$Ñ%¸RˆØ:¸4¸&ÀÀGÀ9ÈUÈGÐTÒTðUð r   u   ozon\s*Ð±Ð°Ð½Ðºzozon\s*bankc           	      óh  — d}t        d|dz   «      D ]o  }t        «        	 | j                  d«      xs dj                  «       }|dk(  rt        d|› d�«        y t        d|› d|› d	|›�«       t        j                  |«       Œq t        d
|›d�«      ‚# t        $ r}t        |«      }Y d }~Œid }~ww xY w)NrB   r›   zgetprop sys.boot_completedr�   u)   reboot: boot_completed=1 (Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° rÝ   u*   reboot: Ð¶Ð´Ñ‘Ð¼ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÑƒ Android rô  z: boot_completed=u2   Android Ð½Ðµ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¸Ð»Ñ�Ñ� (boot_completed=)
rt  r   rH   rE   r5   rX   r!   rá   râ   r3   )r;   rã   rB  Úlastr)  r?   s         r   Ú_wait_boot_completedr^  3  sÅ   € Ø€DÜ˜˜H q™LÓ)ò 
ˆÜÔ ð	Ø—L‘LÐ!=Ó>ÒDÀ"×KÑKÓMˆDð �3Š;ÜÐ;¸G¸9ÀAÐFÔGÙÜÐ8¸¸	ÀÀ8À*ÐL]Ð^bÐ]eÐfÔgÜ�
‰
�5Õð
ô ÐKÈDÈ8ÐSTÐUÓ
VÐVøô ò 	Ü�s“8�Dûð	ús    #BÂ	B1ÂB,Â,B1c           
      ó  — d }t        d|dz   «      D ](  }t        «        	 t        | «       t        d|› d�«        y  t        d|› �«      ‚# t        $ r5}|}t        d|› d|› d|› �«       t        j                  d«       Y d }~Œrd }~ww xY w)	Nr›   u2   reboot: UI hierarchy Ð³Ð¾Ñ‚Ð¾Ð²Ð° (Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° rÝ   u   reboot: Ð¶Ð´Ñ‘Ð¼ uiautomator rô  rD   rß   u#   UI hierarchy Ð½ÐµÐ´Ð¾Ñ�Ñ‚ÑƒÐ¿Ð½Ð°: )rt  r   r\   r!   r5   rá   râ   r3   )r;   rã   rD  r)  r?   s        r   Ú_wait_ui_readyr`  C  sž   € Ø€HÜ˜˜H q™LÓ)ò 	ˆÜÔ ð	Ü˜ÔÜÐDÀWÀIÈQÐOÔPÙð	ô Ð<¸X¸JÐGÓ
HÐHøô	 ò 	ØˆHÜÐ/°¨y¸¸(¸À2ÀcÀUÐKÔLÜ�J‰J�s�O‰Oûð	ús    AÁ	B	Á+BÂB	c                 óê   — 	 | j                  d«      xs d}t        j                  d|«      }|r4t	        |j                  d«      «      t	        |j                  d«      «      fS y# t        $ r d}Y ŒZw xY w)Nzwm sizerB   z(\d+)\s*x\s*(\d+)r›   rg   )iÐ  i   )rH   r5   rŠ   rÐ   r4   r³   rX  s      r   r  r  R  sn   € ðØ�l‰l˜9Ó%Ò+¨ˆô �I‰IÐ*¨CÓ0€EÙÜ�5—;‘;˜q“>Ó"¤C¨¯©°A«Ó$7Ð7Ð7Øøô ò ØŠðús   ‚A$ Á$A2Á1A2c                 ó  — t        | «      \  }}|dz  }t        dt        |dz  «      «      }t        dt        |dz  «      «      }t        d|› d|› d|› d|› d	|› d
|› d�«       | j	                  d|› d|› d|› d|› d�	«       y )Nrg   rç  rè  r7  r   u   reboot: Ñ�Ð²Ð°Ð¹Ð¿ Ð²Ð²ÐµÑ€Ñ… rý   rê  u    (Ñ�ÐºÑ€Ð°Ð½ r•   rÝ   rë  rf   z 450)r  rŒ   r4   r!   rH   )r;   r“   r”   r•   r¶  r·  s         r   Ú	_swipe_uprc  ]  sž   € Ü'¨Ó/�M€Eˆ6Ø�‰
€AÜ	ˆS”#�f˜t‘mÓ$Ó	%€BÜ	ˆR”�V˜d‘]Ó#Ó	$€BÜÐ
(¨¨¨1¨R¨D°°Q°C°q¸¸¸MÈ%ÈÐPQÐRXÐQYÐYZÐ[Ô\Ø
‡L�L�< ˜s ! B 4 q¨¨¨1¨R¨D°Ð5Õ6r   c                 óª  — dD ],  }	 | j                  d|› �«       t        j                  d«       Œ. 	 t        | «       t        j                  d«       	 | j                  d«       t        j                  d«       y # t        $ r}t        d|› d|› �«       Y d }~Œd }~ww xY w# t        $ r}t        d|› �«       Y d }~Œ€d }~ww xY w# t        $ r Y Œlw xY w)	N)éR   r+   r   zreboot: keyevent rD   r"  u/   reboot: Ñ�Ð²Ð°Ð¹Ð¿ Ñ€Ð°Ð·Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸: rÒ  úinput keyevent 3)rH   r5   r!   rá   râ   rc  )r;   rû   r?   s      r   Ú_unlock_to_homerg  f  sÔ   € Øò ˆð	2Ø�L‰L˜?¨3¨%Ð0Ô1ô 	�
‰
�3�ððEÜ�&Ôô 	‡J�Jˆs„OðØ�‰Ð'Ô(ô 	‡J�Jˆs…Oøô ò 	2ÜÐ# C 5¨¨3¨%Ð0×1Ñ1ûð	2ûô
 ò EÜÐ=¸c¸UÐC×DÑDûðEûô
 ò Ùðús@   ‡A;³B" ÁC Á;	BÂBÂBÂ"	CÂ+B>Â>CÃ	CÃCc                 ó^   — t        | «      }|t        k(  }t        d|xs d› |rdnd› �«       |S )Nu"   reboot: Ð¿ÐµÑ€ÐµÐ´Ð½Ð¸Ð¹ Ð¿Ð»Ð°Ð½ u   â€”z (Ozon)rB   )rZ  r^  r!   )r;   Úpackager×   s      r   Ú_ozon_is_foregroundrj  y  s;   € Ü$ VÓ,€GØ	”LÑ	 €BÜÐ
,¨WÒ-=¸Ð,>ÉB¹yÐTVÐ>WÐXÔYØ€Ir   c                 óú   — t        j                   «       |z   }t        j                   «       |k  rCt        «        t        | «      ryt        j                  d«       t        j                   «       |k  rŒCt        | «      S )NTrÒ  )rá   r   rj  râ   rJ  s      r   Ú_wait_ozon_foregroundrl  €  sY   € Ü�y‰y‹{˜WÑ$€HÜ
�)‰)‹+˜Ò
 ÜÔ Ü˜vÔ&ØÜ�
‰
�3Œô	 �)‰)‹+˜Ó
 ô
 ˜vÓ&Ð&r   c                 óÜ   — g }dD ]U  }| j                   j                  |«      xs dj                  «       }|sŒ3|j                  d«      rŒE|j	                  |«       ŒW dj                  |«      S )N©rd   re   rK  rB   rh   rf   )rn   ro   rE   rs   rt   rp   )rz   r	  r{   r|   s       r   Ú_node_search_blobro  Š  sb   € Ø€EØ7ò  ˆØ—‘—‘ Ó&Ò,¨"×3Ñ3Ó5ˆÚ˜×)Ñ)¨*Õ5Ø�L‰L˜Õð ð �8‰8�E‹?Ðr   c                 óì  — g }| j                  «       D �]-  }t        |«      }|rt        |«      dkD  rŒ d}|j                  «       }d|vr	t        |vrŒ?t
        d   j                  |«      st
        d   j                  |«      rd}n*t        j                  d|t        j                  ¬«      rd}nŒœt        |j                  j                  d«      «      }t        |d	¬
«      }|€|r|d   \  }}	|dkD  r	|	d	kD  r||	f}|€Œêd}
|r+t        d|d   |d   z
  «      t        d|d   |d   z
  «      z  }
|j                  ||
||f«       �Œ0 |sy |j                  d¬«       |d   \  }}}}t!        d|› d|› �«       |S )Nr7  r   Úozonr›   r+   z\bozon\br™   r€   r�   )rŽ   r‡   r…   rƒ   r†   r„   T)Úreverseu   reboot: Ð¸ÐºÐ¾Ð½ÐºÐ° Â«u   Â» @ )rm   ro  rr   r°   r^  ÚOZON_LAUNCHER_PATTERNSrÐ   rŠ   r²   r�   rn   ro   r—   rŒ   rt   Úsortr!   )rx   Úrankedrz   ÚblobÚscorerT  r€   Úpointr•   r–   ÚareaÚ_scoreÚ_areas                r   Ú_find_ozon_launcher_pointr|  “  sŒ  € Ø€FØ—	‘	“ó 2ˆÜ  Ó&ˆÙ”s˜4“y 2’~ØØˆØ�j‰j‹lˆØ˜Ñ¤°TÑ!9ØÜ! !Ñ$×+Ñ+¨DÔ1Ô5KÈAÑ5N×5UÑ5UÐVZÔ5[Ø‰EÜ�Y‰Y�{ D´·±Õ>Ø‰EàÜ˜dŸk™kŸo™o¨hÓ7Ó8ˆÜ  ¨rÔ2ˆØˆ=™VØ˜(Ñ#‰DˆAˆqØ�1Šu˜˜RšØ˜A˜�Øˆ=ØØˆÙÜ�q˜& ™/¨F°6©NÑ:Ó;¼cÀ!ÀVÈHÑEUÐX^Ð_dÑXeÑEeÓ>fÑfˆDØ�‰�u˜d E¨4Ð0Ö1ð32ñ4 ØØ
‡K�K˜€KÔØ!'¨¡Ñ€FˆE�5˜$ÜÐ
! $  u¨U¨GÐ4Ô5Ø€Lr   c                 óš  — 	 t        t        | «      «      }t	        |«      }|€yg }|j                  «       D ]!  }t        |«      }|sŒ|j                  |«       Œ# dj                  t        t        j                  |«      «      d d «      }t        d|xs d› �«       yt        | g|¢­Ž  y# t        $ r}t        d|› �«       Y d }~yd }~ww xY w)Nu9   reboot: Ð´Ð°Ð¼Ð¿ Ð»Ð°ÑƒÐ½Ñ‡ÐµÑ€Ð° Ð½Ðµ Ñ‡Ð¸Ñ‚Ð°ÐµÑ‚Ñ�Ñ�: FrÍ   é   uB   reboot: Ð¸ÐºÐ¾Ð½ÐºÐ° Ozon Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½Ð°. Ð�Ð° Ñ�ÐºÑ€Ð°Ð½Ðµ: u
   Ð¿ÑƒÑ�Ñ‚Ð¾T)r   r\   r5   r!   r|  rm   ro  rt   rp   r½   ru   rv   rÀ   )r;   rx   r?   rx  ry   rz   rv  rÙ   s           r   Ú_tap_ozon_launcher_iconr  ·  sÏ   € ðÜœ[¨Ó0Ó1ˆô & dÓ+€EØ€}ØˆØ—I‘I“Kò 	#ˆDÜ$ TÓ*ˆDÚØ—‘˜TÕ"ð	#ð —)‘)œD¤§¡¨uÓ!5Ó6°s¸Ð;Ó<ˆÜÐPÐQXÒQhÐ\hÐPiÐjÔkØÜ�VÐ$˜eÓ$Øøô ò ÜÐGÈÀuÐMÔNÜûðús   ‚B) Â)	C
Â2CÃC
c                 óJ  — t        d«       	 | j                  d«       t        j                  d«       	 t        | «       t        j                  d«       t        d«      D ]V  }t        «        t        | «      rt        d«        y	t        d
|dz   › �«       	 t        | «       t        j                  d«       ŒX y# t        $ r}t        d|› �«       Y d }~Œ·d }~ww xY w# t        $ r}t        d|› �«       Y d }~Œºd }~ww xY w# t        $ r}t        d|› �«       Y d }~Œ|d }~ww xY w)Nu$   reboot: HOME + Ñ�Ð²Ð°Ð¹Ð¿ Ð²Ð²ÐµÑ€Ñ…rf  u"   reboot: HOME Ð½Ðµ Ð½Ð°Ð¶Ð°Ð»Ñ�Ñ�: rÚ  u1   reboot: Ñ�Ð²Ð°Ð¹Ð¿ Ð²Ð²ÐµÑ€Ñ… Ð½Ðµ ÑƒÐ´Ð°Ð»Ñ�Ñ�: rÚ  r4  u$   reboot: Ð½Ð°Ð¶Ð°Ð» Ð¸ÐºÐ¾Ð½ÐºÑƒ OzonTu?   reboot: Â«Ozon Ð‘Ð°Ð½ÐºÂ» Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½, ÐµÑ‰Ñ‘ Ñ�Ð²Ð°Ð¹Ð¿ r›   u&   reboot: Ñ�Ð²Ð°Ð¹Ð¿ Ð½Ðµ ÑƒÐ´Ð°Ð»Ñ�Ñ�: gÍÌÌÌÌÌì?F)	r!   rH   r5   rá   râ   rc  rt  r   r  )r;   r?   r)  s      r   Ú_open_ozon_from_launcherr�  Ë  s  € ÜÐ.Ô/ð8Ø�‰Ð'Ô(ô 	‡J�Jˆs„OðGÜ�&Ôô 	‡J�Jˆs„Oä˜“8ò 
ˆÜÔ Ü" 6Ô*ÜÐ6Ô7ÙÜÐMÈgÐXYÉkÈ]Ð[Ô\ð	@Ü�fÔô 	�
‰
�3�ð
ð øô) ò 8ÜÐ0°°Ð6×7Ñ7ûð8ûô
 ò GÜÐ?À¸uÐE×FÑFûðGûô ò 	@ÜÐ8¸¸Ð>×?Ñ?ûð	@úsF   �B9 ´C ÂDÂ9	CÃCÃCÃ	C>Ã&C9Ã9C>Ä	D"Ä
DÄD"c                 ó€  — dt         › d�dt         › �dt        › �g}|D ]w  }t        | «      r y t        d|› �«       	 | j	                  |«      xs d}|j                  «       rt        d|j                  «       d d › �«       t        j                  d
«       Œy y # t        $ r}t        d|› d	|› �«       Y d }~Œ7d }~ww xY w)Nz
monkey -p z& -c android.intent.category.LAUNCHER 1zNam start -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -p r]  u   reboot: Ð·Ð°Ð¿ÑƒÑ�Ðº rB   rT  é,  r.   rß   )	r^  r_  rj  r!   rH   rE   r5   rá   râ   )r;   ÚcommandsrF  rY  r?   s        r   Ú_launch_ozon_by_intentr…  æ  sÎ   € à
”\�NÐ"HÐIØ
XÔYeÐXfÐgØ
”}�oÐ&ð€Hð
 ò 
ˆÜ˜vÔ&ÙÜÐ# G 9Ð-Ô.ð	?Ø—,‘,˜wÓ'Ò-¨2ˆCØ�y‰yŒ{Ü�h˜sŸy™y›{¨4¨CÐ0Ð1Ð2Ô3ô 	�
‰
�3�ñ
øô ò 	?Ü�(˜7˜)Ð#7¸°uÐ=×>Ñ>ûð	?ús   ½ABÂ	B=Â"B8Â8B=c                 óX  — t        dt        d›d�«       t        j                  t        «       t	        | «      }t        |«       t        |«       t        |«       t        |«       t        |«       t        |d¬«      s.t        d«       t        |«       t        |d¬«      st        d«      ‚y	)
ur   ÐŸÐ¾Ñ�Ð»Ðµ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿ÑƒÑ�ÐºÐ° ÐºÐ¾Ð½Ñ‚ÐµÐ¹Ð½ÐµÑ€Ð° Ð´Ð¾Ð¶Ð´Ð°Ñ‚ÑŒÑ�Ñ� Android Ð¸ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ Ozon Ð‘Ð°Ð½Ðº.u6   reboot: SSH-ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ‹ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ñ‹, Ð¶Ð´Ñƒ z.0fu    Ñ�r  r,   ua   reboot: Ð¸ÐºÐ¾Ð½ÐºÐ° Ð½Ðµ Ð¾Ñ‚ÐºÑ€Ñ‹Ð»Ð° Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ, Ð·Ð°Ð¿ÑƒÑ�ÐºÐ°ÑŽ Ñ‡ÐµÑ€ÐµÐ· intentç      (@uG   Ozon Ð‘Ð°Ð½Ðº Ð½Ðµ Ð¾Ñ‚ÐºÑ€Ñ‹Ð»Ñ�Ñ� Ð¿Ð¾Ñ�Ð»Ðµ Ð¿ÐµÑ€ÐµÐ·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸T)r!   ÚREBOOT_ADB_WAITrá   râ   rE  r^  r`  rg  r�  rl  r…  r3   rS   s     r   Ú_open_ozon_after_restartr‰  ù  s‹   € äÐ
@ÄÐQTÐ@UÐUXÐYÔZÜ‡J�JŒÔä˜+Ó&€FÜ˜Ô Ü�6ÔÜ�FÔÜ�6Ôä˜VÔ$Ü  °Õ5ÜÐoÔpÜ˜vÔ&Ü$ V°TÕ:ÜÐhÓiÐiØr   c           
      ó,  — ddl m} t        | «      }t        | «      }t	        |«      }t        d| › d|› d|d   › d|› �«       t        | «        || t        ||«      t        d¬	«      }t        |«      }|rt        |«      ‚t        | «       t        d
«       y)uk   ÐŸÐµÑ€ÐµÑ�Ð¾Ð±Ñ€Ð°Ñ‚ÑŒ redroid Ð¿Ð¾ SSH, Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒÑ�Ñ� Ð¿Ð¾ ADB Ð¸ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ Ozon Ð‘Ð°Ð½Ðº.r   ©Úrun_ssh_commandsu   reboot: Ñ�Ñ‚Ð°Ñ€Ñ‚ Ð´Ð»Ñ� ú slot=ú dir=r&  ú
 adb_port=T©r-   Úechou7   reboot: ÑƒÑ�Ð¿ÐµÑˆÐ½Ð¾, Ozon Ð‘Ð°Ð½Ðº Ð½Ð° Ñ�ÐºÑ€Ð°Ð½Ðµ)Ússh_cmdrŒ  r  r   r/  r!   rA  r=  ÚREBOOT_SSH_TIMEOUTr[  r3   r‰  )r"   rŒ  r$   r  r5  rx  Ú	ssh_errors          r   Úreboot_devicer•    sŸ   € å(ä Ó,€HÜ˜Ó$€DÜ˜DÓ!€FÜÐ
$ [ M°¸°v¸UÀ6È%Á=À/ÐQ[Ð\dÐ[eÐfÔgÜ�{Ô#áØÜ˜X tÓ,Ü"Øô	€Gô " 'Ó*€IÙÜ˜9Ó%Ð%ä˜[Ô)ÜÐAÔBØr   c                 ó    — t        | xs d«      j                  dd«      j                  dd«      j                  dd«      j                  dd«      S )NrB   úri   ú\ú\\ú"ú\"©rX   rX  ©r|   s    r   Ú_rebuild_conf_quoterž  &  sC   € äˆEŠK�RÓß	‰��rÓ	ß	‰��rÓ	ß	‰��vÓ	ß	‰��eÓ	ðr   c                 óà   — t        | xs d«      j                  dd«      j                  dd«      j                  dd«      j                  dd«      j                  dd	«      j                  d
d«      S )NrB   r—  ri   r˜  r™  rš  r›  ú`z\`r  z\$rœ  r�  s    r   Ú_rebuild_sh_quoter¡  0  s[   € äˆEŠK�RÓß	‰��rÓ	ß	‰��rÓ	ß	‰��vÓ	ß	‰��eÓ	ß	‰��eÓ	ß	‰��eÓ	ðr   ÚipÚ
proxy_portrf  c           	      óL   — t        |«      }t        |«      }d| › d|› d|› d|› d�	S )NzÀbase {
    log_debug = off;
    log_info = on;
    log = "syslog:daemon";
    daemon = off;
    redirector = iptables;
}

redsocks {
    local_ip = 127.0.0.1;
    local_port = 12345;
    ip = z;
    port = z(;
    type = http-connect;
    login = "z";
    password = "z";
})rž  )r¢  r£  rf  r0  Úlogin_qÚ
password_qs         r   Ú_rebuild_redsocks_confr§  <  sO   € Ü! %Ó(€GÜ$ XÓ.€Jð
ð ˆð Øˆ<ð àˆYð Ø�ð ðð r   r,  c                 ó6  — t        | «      }t        j                  ddt        |xs d«      «      xs d}dj	                  g d‘|› ‘d‘t        |«      › ‘d‘|› ‘d‘|› ‘d‘|› ‘d	‘|› ‘d
‘|› ‘d‘|› ‘d‘|› ‘d‘|› ‘d‘|› ‘d‘|› ‘d‘|› ‘d‘|› ‘d‘|› ‘d‘«      S )Nz[^A-Za-z0-9_]rB   r%  z #!/bin/bash
set -e

PROXY_HOST="z"
PROXY_PORT="u7  "

PROXY_IP=$(getent ahostsv4 "$PROXY_HOST" | head -n1 | awk '{print $1}')

if [ -z "$PROXY_IP" ]; then
    echo "Ð�Ðµ ÑƒÐ´Ð°Ð»Ð¾Ñ�ÑŒ Ð·Ð°Ñ€ÐµÐ·Ð¾Ð»Ð²Ð¸Ñ‚ÑŒ $PROXY_HOST, Ð²Ñ‹Ñ…Ð¾Ð´"
    exit 1
fi

echo "Proxy IP: $PROXY_IP"

redsocks -c /etc/redsocks.conf -p /var/run/redsocks.pid &
sleep 2

iptables -t nat -N z# 2>/dev/null || iptables -t nat -F z

iptables -t nat -A zK -d "$PROXY_IP" -p tcp --dport "$PROXY_PORT" -j RETURN

iptables -t nat -A z+ -d 0.0.0.0/8 -j RETURN
iptables -t nat -A z, -d 10.0.0.0/8 -j RETURN
iptables -t nat -A z- -d 127.0.0.0/8 -j RETURN
iptables -t nat -A z0 -d 169.254.0.0/16 -j RETURN
iptables -t nat -A z/ -d 172.16.0.0/12 -j RETURN
iptables -t nat -A z0 -d 192.168.0.0/16 -j RETURN
iptables -t nat -A z- -d 224.0.0.0/4 -j RETURN
iptables -t nat -A z. -d 240.0.0.0/4 -j RETURN

iptables -t nat -A zI -p tcp -j REDIRECT --to-ports 12345
iptables -t nat -A OUTPUT -p tcp -j us   

echo "redsocks + iptables Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ñ‹ â€” TCP-Ñ‚Ñ€Ð°Ñ„Ð¸Ðº namespace Ð¸Ð´Ñ‘Ñ‚ Ñ‡ÐµÑ€ÐµÐ· Ð¿Ñ€Ð¾ÐºÑ�Ð¸"
wait
)r¡  rŠ   rv  rX   rp   r4   )r¢  r£  r,  Úhost_qÚ
chain_names        r   Ú_rebuild_entrypoint_shr«  R  sž  € Ü˜rÓ"€FÜ—‘Ð(¨"¬c°%Ò2E¸:Ó.FÓGÒUÈ:€J÷$ó $ð ð $ð ˆHð$ðð$ô �‹_Ðð	$ðð	$ð$ �<ð%$ð$  Cð%$ð$ DNÀ,ð%$ð$Oð%$ð( �<ð)$ð( ð)$ð, �<ð-$ð, ð-$ð. �<ð/$ð. ð/$ð0 �<ð1$ð0 ð1$ð2 �<ð3$ð2 ð3$ð4 �<ð5$ð4 ð5$ð6 �<ð7$ð6 ð7$ð8 �<ð9$ð8 ð9$ð: �<ð;$ð: ð;$ð> �<ð?$ð> %ð?$ð@ &0 LðA$ð@1ôA$ð $r   c                 óè   — t        |«      }t        ||| |«      }t        |||d   «      j                  d«      }d}	|d   }
d|
› �dd|	› d|
› d	|› d|	› �d|	› d|
› d
|› d|	› �d|
› d�gt	        ||d¬«      ¢S )Nr,  ri   ÚOZPAY_REBUILD_EOFr&  r:  zdocker compose down -vúcat <<'ú' > ú/redsocks/redsocks.conf
ú/redsocks/entrypoint.sh
ú	chmod +x ú/redsocks/entrypoint.shrÙ  r<  )r/  r§  r«  Úrstripr8  )rf  r0  r¢  r£  r$   r  r5  ÚconfÚentryÚeofÚworkdirs              r   Ú_rebuild_ssh_commandsr¹  |  s·   € Ü˜DÓ!€FÜ! " j°%¸ÓB€DÜ" 2 z°6¸'±?ÓC×JÑJÈ4ÓP€EØ
€CØ�U‰m€Gà
ˆgˆYˆØ Ø
�#��d˜7˜)Ð#<¸T¸FÀ"ÀSÀEÐJØ
�#��d˜7˜)Ð#<¸U¸GÀ2ÀcÀUÐKØ
�G�9Ð3Ð4ðô 
˜f h¸!Ô	<ðð r   c                  óâ   — t         t        t        dœ} | j                  «       D �cg c]  }|j	                  «       rŒ|j
                  ‘Œ! }}|rt        ddj                  |«      z   «      ‚| S c c}w )N)r  Ú
MacroDroidÚRuStoreu:   Ð�Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½Ñ‹ Ñ„Ð°Ð¹Ð»Ñ‹ Ð´Ð»Ñ� ÑƒÑ�Ñ‚Ð°Ð½Ð¾Ð²ÐºÐ¸: rÍ   )Ú
MACROS_MDRÚMACRODROID_APKÚRUSTORE_APKÚvaluesÚis_filer˜  r3   rp   )Úfilesra   Úmissings      r   Ú_rebuild_payload_pathsrÄ  Œ  se   € ä Ü$Üñ€Eð
 &+§\¡\£^ÖJ˜T¸4¿<¹<½>ˆt�y‹yÐJ€GÐJÙÜÐWÐZ^×ZcÑZcÐdkÓZlÑlÓmÐmØ€Lùò Ks
   ¥A,»A,r¾   c                 ór  — dg| D �cg c]  }t        |«      ‘Œ c}¢}dj                  |«      }t        j                  «       }t        d|› �«       	 t	        j
                  |t        j                  t        j                  dd¬«      }g }	 |j                  €J ‚	 t        «        t        j                  «       |z
  |kD  r|j                  «        t        d|› �«      ‚|j                  j                  «       }	|	r3|	j                  d	«      }
|
rt        d|
› �«       |j                  |
«       Œ’|j!                  «       �nt        j"                  d
«       Œ¸|j%                  d¬«      }d	j                  |«      j)                  «       }t        j                  «       |z
  }t        d|d›d|› �«       |dk7  xs& d|j+                  «       v xs d|j+                  «       v }|rt        d|› d|› d	|› �«      ‚|S c c}w # t        $ r}t        d«      |‚d }~ww xY w# t        $ r ‚ t&        $ r |j                  «        ‚ w xY w)NÚadbrf   zadb: Tr›   )rO  Ústderrrd   Úbufsizeu   adb Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½ Ð² PATHu   Ð¢Ð°Ð¹Ð¼Ð°ÑƒÑ‚ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ‹: ri   gš™™™™™©?rg   r,   u   adb: Ð³Ð¾Ñ‚Ð¾Ð²Ð¾ Ð·Ð° z.1fu
    Ñ�, exit=r   zfailed to copyzcouldn't create filerW  rX  )rX   rp   rá   r!   Ú
subprocessÚPopenÚPIPEÚSTDOUTrZ   r3   rO  r   ÚkillÚreadliner´  rt   Úpollrâ   r[  r5   rE   r°   )r¾   r-   rI   ÚcmdrÙ   ÚstartedÚprocr?   Úchunksr�  rd   rF  rY  ÚelapsedÚfaileds                  r   Ú_run_adbrÖ  ˜  s'  € ØÐ
0¨$Ö/ $”C˜•IÒ/Ð
0€CØ�h‰h�s‹m€GÜ�i‰i‹k€GÜˆ%�ˆyÐÔð	EÜ×ÑØÜ—?‘?Ü×$Ñ$ØØô
ˆð €FðØ�{‰{Ð&Ð&Ð&ØÜ"Ô$Ü�y‰y‹{˜WÑ$ wÒ.Ø—	‘	”Ü"Ð%DÀWÀIÐ#NÓOÐOØ—;‘;×'Ñ'Ó)ˆDÙØ—{‘{ 4Ó(�ÙÜ˜% ˜v˜Ô'Ø—M‘M $Ô'ØØ�y‰y‹{Ð&ØÜ�J‰J�tÔð ð �y‰y ˆyÓ#ˆð �)‰)�FÓ
×
!Ñ
!Ó
#€CÜ�i‰i‹k˜GÑ#€GÜÐ
! '¨# ¨j¸¸Ð?Ô@Ø�Q‰YÒbÐ*¨c¯i©i«kÐ9ÒbÐ=SÐWZ×W`ÑW`ÓWbÐ=b€FÙÜÐFÀtÀfÈCÐPWÈyÐXZÐ[^ÐZ_Ð`ÓaÐaØ€JùòY 0øô ò EÜÐ:Ó;ÀÐDûðEûô* ò ØÜò Ø�	‰	ŒØðús*   ‡G0Á6G5 Â
CH Ç5	HÇ>H
È
HÈ$H6r7   c                 ó„   — t        d| gd¬«      }|j                  «       }d|v sd|v sd|v rt        d| › d|xs d	› �«      ‚y )
NÚconnectrÎ   r,   rÕ  ÚunableÚcannotzadb connect rD   u,   Ð½Ðµ ÑƒÐ´Ð°Ð»Ð¾Ñ�ÑŒ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒÑ�Ñ�)rÖ  r°   r3   )r7   rY  rT  s      r   Ú_adb_connectrÛ  È  sU   € Ü
�I˜vÐ&°Ô
3€CØ
�)‰)‹+€CØ�3�˜( c™/¨X¸©_Ü˜\¨&¨°°CÒ4iÐ;iÐ3jÐkÓlÐlð .=r   Úapkc           	      óŒ  — d }t        dd«      D ],  }t        «        	 t        d| dt        |«      gt        ¬«        y  |‚# t
        $ rz}|}t        |«      j                  «       }d|v xs d|v xs d|v xs
 d	|v xs d
|v }|r|dk(  r‚ t        d|j                  › d|› d�«       t        j                  d«       Y d }~Œ¯d }~ww xY w)Nr›   é	   ú-sÚinstallr,   zcan't find servicez	not foundÚofflinezwaiting for devicezdevice offliner4  zadb: install u    Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° u!    Ð½Ðµ ÑƒÐ´Ð°Ð»Ð°Ñ�ÑŒ, Ð¶Ð´Ñƒ 5 Ñ�rñ  )rt  r   rÖ  rX   ÚADB_INSTALL_TIMEOUTr3   r°   r!   r˜  rá   râ   )r7   rÜ  Ú
last_errorr)  r?   rd   Ú	retryables          r   Ú_adb_installrå  Ï  sî   € Ø€JÜ˜˜A“;ò ˆÜÔ ð	Ü�d˜F I¬s°3«xÐ8ÔBUÕVÙð	ð& Ðøô ò 	ØˆJÜ�s“8—>‘>Ó#ˆDà$¨Ð,ò ,Ø $Ð&ò,à Ð$ò,ð (¨4Ð/ò,ð $ tÐ+ð ñ  ¨1¢ØÜ�- §¡˜zÐ)9¸'¸ÐBcÐdÔeÜ�J‰J�q�M‰Mûð	ús   �A Á 	CÁ	A0B>Â>Cz/storage/emulated/0/Downloadc                 ó$   — t        d| d|g|¬«      S )Nrß  rH   r,   )rÖ  )r7   rF  r-   s      r   Ú
_adb_shellrç  ê  s   € Ü�T˜6 7¨GÐ4¸gÔFÐFr   c                 ó¦  — d}t        d|dz   «      D ]˜  }t        «        	 t        | d«       t        | d«      }d|v rt        d|› d�«       t        c S d|v rt        d	|› d�«        y
t        |j                  «       xs d«      }t        d|› d|› �«       t        j                  d«       Œš t        d|› �«      ‚# t
        $ r}|}Y d}~ŒFd}~ww xY w)u[   Ð”Ð¾Ð¶Ð´Ð°Ñ‚ÑŒÑ�Ñ� /sdcard Ð¸ Ñ�Ð¾Ð·Ð´Ð°Ñ‚ÑŒ Download; Ð²ÐµÑ€Ð½ÑƒÑ‚ÑŒ Ð¿ÑƒÑ‚ÑŒ Ð´Ð»Ñ� push.Nr›   z‚mkdir -p /storage/emulated/0/Download /sdcard/Download; rm -rf /storage/emulated/0/Download/macros.mdr /sdcard/Download/macros.mdrz‡if [ -d /storage/emulated/0/Download ]; then echo OK_EMULATED; elif [ -d /sdcard/Download ]; then echo OK_SDCARD; else echo MISSING; fiÚOK_EMULATEDu6   adb: Ð¿Ð°Ð¿ÐºÐ° Download Ð³Ð¾Ñ‚Ð¾Ð²Ð° (Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° rÝ   Ú	OK_SDCARDu>   adb: Ð¿Ð°Ð¿ÐºÐ° /sdcard/Download Ð³Ð¾Ñ‚Ð¾Ð²Ð° (Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° z/sdcard/Downloadu    Download Ð½Ðµ Ð¿Ð¾Ñ�Ð²Ð¸Ð»Ð°Ñ�ÑŒu!   adb: Ð¶Ð´Ñ‘Ð¼ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ðµ rô  rg   u6   Ð�ÐµÑ‚ Ð¿Ð°Ð¿ÐºÐ¸ Download Ð½Ð° ÑƒÑ�Ñ‚Ñ€Ð¾Ð¹Ñ�Ñ‚Ð²Ðµ: )	rt  r   rç  r!   ÚADB_DOWNLOAD_DIRr3   rE   rá   râ   )r7   rã   rã  r)  Úprober?   s         r   Ú_wait_download_dirrí  î  sú   € à€JÜ˜˜H q™LÓ)ò ˆÜÔ ð	ÜØð]ôô
 Øð(óˆEð  Ñ%ÜÐLÈWÈIÐUVÐWÔXÜ'Ò'Ø˜eÑ#ÜÐTÐU\ÐT]Ð]^Ð_Ô`Ù)Ü% e§k¡k£mÒ&YÐ7YÓZˆJô 	Ð/°¨y¸¸(¸ÐDÔEÜ�
‰
�1�ð1ô2 ÐOÐPZÈ|Ð\Ó
]Ð]øô	 ò 	Ø�Jûð	ús#    0B;ÁB;Á(B;Â;	CÃCÃCc                 ó$  — t        «       }t        | «      }t        | «      }|st        d| ›d�«      ‚|› d|› �}t	        d|› �«       t        | «      }t	        d«       t        |«       t	        d|› �«       t        |«       t        |«      }|› d|d   j                  › �}t	        d	|d   j                  › d
|› �«       t        d|dt        |d   «      |gd¬«       t	        d|d   j                  › �«       t        ||d   «       t	        d|d   j                  › �«       t        ||d   «       t	        d«       t        d|dddddddddg«       t        d|ddddg«       t        d|dddd d!d"g«       t        d|ddddg«       t	        d#«       y$)%uc   ÐŸÐ¾Ñ�Ð»Ðµ Ð¿ÐµÑ€ÐµÑ�Ð±Ð¾Ñ€ÐºÐ¸ Ð·Ð°Ð»Ð¸Ñ‚ÑŒ macros.mdr Ð¸ Ð¿Ð¾Ñ�Ñ‚Ð°Ð²Ð¸Ñ‚ÑŒ MacroDroid + RuStore.r)   u    Ð½Ðµ ÑƒÐºÐ°Ð·Ð°Ð½ IPr*   u!   adb: Ð¶Ð´Ñƒ ÑƒÑ�Ñ‚Ñ€Ð¾Ð¹Ñ�Ñ‚Ð²Ð¾ uK   adb: ÑƒÑ�Ñ‚Ñ€Ð¾Ð¹Ñ�Ñ‚Ð²Ð¾ Ð¾Ñ‚Ð²ÐµÑ‡Ð°ÐµÑ‚, Ð¶Ð´Ñƒ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÑƒ AndroiduF   adb: Android Ð·Ð°Ð³Ñ€ÑƒÐ¶ÐµÐ½, Ñ�Ñ‚Ð°Ð²Ð»ÑŽ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ� Ð½Ð° rô  r  z
adb: push u    â†’ rß  Úpushr  r,   u   adb: ÑƒÑ�Ñ‚Ð°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÑŽ r»  r¼  uC   adb: Ð²Ñ‹Ð´Ð°ÑŽ MacroDroid Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ðº ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ�Ð¼rH   rÐ  Úappopsrs  z--userrœ   zcom.arlosoft.macrodroidÚRECEIVE_SENSITIVE_NOTIFICATIONSÚallowÚamz
force-stopÚdevice_configÚputÚsystemuizTandroid.service.notification.redact_sensitive_notifications_from_untrusted_listenersÚfalseu1   adb: MacroDroid Ð¸ RuStore ÑƒÑ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ‹N)rÄ  r1   r  r3   r!   rE  r^  rÛ  rí  r˜  rÖ  rX   rå  )r"   Úpathsr'   r(   r7   r;   Údownload_dirÚremotes           r   Úinstall_rebuild_appsrû    sØ  € ä"Ó$€EÜ�+Ó€DÜ˜KÓ(€DÙÜÐ5°k°_ÐDYÐZÓ[Ð[Øˆv�Q�t�fÐ€FäÐ
+¨F¨8Ð4Ô5Ü˜+Ó&€FÜÐUÔVÜ˜Ô ÜÐ
PÐQWÐPXÐYÔZä�ÔÜ% fÓ-€LØˆ~˜Q˜u \Ñ2×7Ñ7Ð8Ð9€FÜˆ*�U˜<Ñ(×-Ñ-Ð.¨e°F°8Ð<Ô=ÜØ	ˆv�vœs 5¨Ñ#6Ó7¸Ð@Øõô Ð
(¨¨|Ñ)<×)AÑ)AÐ(BÐCÔDÜ�˜˜|Ñ,Ô-ÜÐ
(¨¨yÑ)9×)>Ñ)>Ð(?Ð@ÔAÜ�˜˜yÑ)Ô*ÜÐMÔNÜà�&˜'Ø�8˜U H¨cØ%Ð'HÈ'ð	
ôô ˆd�F˜G T¨<Ð9RÐSÔTÜà�&˜'Ø˜U JØbØð		
ôô ˆd�F˜G T¨<Ð9RÐSÔTÜÐ;Õ<r   c                 óT   — t        d| › �«       t        | «       t        d| › d�«       y)un   ÐŸÐ¾Ñ�Ñ‚Ð°Ð²Ð¸Ñ‚ÑŒ MacroDroid, RuStore Ð¸ Ð·Ð°Ð»Ð¸Ñ‚ÑŒ Ð¼Ð°ÐºÑ€Ð¾Ñ� Ð½Ð° ÑƒÐ¶Ðµ Ð¿Ð¾Ð´Ð½Ñ�Ñ‚Ñ‹Ð¹ Ð´ÐµÐ²Ð°Ð¹Ñ�.u    install-apps: Ñ�Ñ‚Ð°Ñ€Ñ‚ Ð´Ð»Ñ� zinstall-apps: u    Ð³Ð¾Ñ‚Ð¾Ð²T)r!   rû  rR   s    r   Úinstall_device_appsrý  =  s.   € äÐ
*¨;¨-Ð8Ô9Ü˜Ô%Üˆ.˜˜ [Ð1Ô2Ør   a+  FROM debian:bookworm-slim

RUN apt-get update && apt-get install -y --no-install-recommends \
    redsocks iptables dnsutils curl \
    && rm -rf /var/lib/apt/lists/*

COPY redsocks.conf /etc/redsocks.conf
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

ENTRYPOINT ["/entrypoint.sh"]
zNbinder_linux
ashmem_linux
xt_owner
xt_REDIRECT
nf_nat
iptable_nat
xt_addrtype
c                 óÄ   — t        |«      }t        | «      }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�S )Nzservices:
  r'  zO:
    image: kylindemons/redroid:15.0.0_amd64-GApps-latest
    container_name: r(  z,

    privileged: true

    ports:
      - "r*   z"

    volumes:
      - r)  a�  :/data

    command:
      - androidboot.redroid_gpu_mode=guest
      - androidboot.redroid_width=1080
      - androidboot.redroid_height=2400
      - androidboot.redroid_dpi=420

      - ro.product.manufacturer=Xiaomi
      - ro.product.brand=Xiaomi
      - ro.product.model=Xiaomi 14
      - ro.product.name=houji
      - ro.product.device=houji

    restart: unless-stopped

    networks:
      - r*  z

  r+  z<:
    build:
      context: ./redsocks

    container_name: z

    network_mode: "service:z9"

    cap_add:
      - NET_ADMIN

    depends_on:
      zN:
        condition: service_started

    restart: unless-stopped

volumes:
  z:
    name: z

networks:
  z:
    driver: bridge
)r/  r4   )r$   r  r5  r(   s       r   Ú_redroid_composerÿ  \  só   € Ü˜DÓ!€FÜˆx‹=€DðØ	ˆ)ÑÐð à˜KÑ(Ð)ð *
ð
 ˆˆq��ð 	ð 
�Ñ	Ðð 	ð" 
�	Ñ	Ðð à	ˆ*ÑÐð ð ˜JÑ'Ð(ð )à" 9Ñ-Ð.ð /ð ˆiÑÐð ð 
ˆ(ÑÐð Ø�(ÑÐ
ð ð 
ˆ)ÑÐð ði6ð 6r   c                 ó   — t        | d«      S )Nr›   )rÿ  )r$   s    r   Ú_new_device_composer  ˜  s   € Ü˜H aÓ(Ð(r   c                 óÎ  — | xs g D ]Ü  }|j                  d«      xs dj                  «       }t        |«      }|j                  d«      }|j                  d«      xs d}|j                  d«      rd|› �c S |dv rŒt|j                  d«      s|j                  d	«      sd
|v rt	        d|› d|› d�«       Œ­|j                  «       rd|j                  «       › �nd}d|› d|› |› �c S  y)NrF  rB   rN  rO  rP  rQ  rR  z	modprobe zlsmod rS  únew-device: rU  rV  ri   rW  rX  rY  rZ  s          r   Ú_new_device_ssh_errorr  œ  sü   € Ø’˜2ò UˆØ—8‘8˜IÓ&Ò,¨"×3Ñ3Ó5ˆÜ& wÓ/ˆØ�x‰x˜Ó$ˆØ—‘˜(Ó#Ò) rˆØ�8‰8�IÔØPÐQXÐPYÐZÒZØ�9ÑØØ×Ñ˜kÔ*¨g×.@Ñ.@ÀÔ.JÐN_ÐcjÑNjÜ�,˜w˜i ~°d°VÐ;QÐRÔSØØ)/¯©¬�"�V—\‘\“^Ð$Ñ%¸RˆØ:¸4¸&ÀÀGÀ9ÈUÈGÐTÒTðUð r   c                 óX  — t        ||||«      }t        ||| d   «      j                  d«      }t        || d   «      j                  d«      }t        j                  d«      }	d}
| d   }d|› d�d|› �d	|
› d
|› d|	› d|
› �d	|
› d
|› d|› d|
› �d	|
› d
|› d|› d|
› �d|› d�d	|
› d
|› d|› d|
› �gS )Nr,  ri   r  ÚOZPAY_NEW_DEVICE_EOFr&  z	mkdir -p z	/redsocksr:  r®  r¯  z/redsocks/Dockerfile
r°  r±  r²  r³  z/docker-compose.yml
)r§  r«  r´  rÿ  ÚNEW_DEVICE_REDSOCKS_DOCKERFILE)r5  rf  r0  r¢  r£  r$   rµ  r¶  ÚcomposeÚ
dockerfiler·  r¸  s               r   Ú_write_redroid_stack_commandsr
  ®  s  € Ü! " j°%¸ÓB€DÜ" 2 z°6¸'±?ÓC×JÑJÈ4ÓP€EÜ˜x¨°©Ó8×?Ñ?ÀÓE€GÜ/×6Ñ6°tÓ<€JØ
 €CØ�U‰m€Gà
�G�9˜IÐ&Ø
ˆgˆYˆØ
�#��d˜7˜)Ð#9¸*¸ÀRÈÀuÐMØ
�#��d˜7˜)Ð#<¸T¸FÀ"ÀSÀEÐJØ
�#��d˜7˜)Ð#<¸U¸GÀ2ÀcÀUÐKØ
�G�9Ð3Ð4Ø
�#��d˜7˜)Ð#8¸¸	ÀÀCÀ5ÐIðð r   c                 óÀ   — t        d«      }t        j                  d«      }d}dddddd	d
ddddd|› d|› d|› �ddddddddgt        || ||||«      ¢t	        ||d¬«      ¢S )Nr›   ri   r  z%export DEBIAN_FRONTEND=noninteractivezapt update && apt upgrade -yznapt install -y curl wget gnupg2 ca-certificates lsb-release software-properties-common apt-transport-https adbz9modprobe binder_linux devices="binder,hwbinder,vndbinder"zmodprobe ashmem_linuxzmodprobe xt_ownerzmodprobe xt_REDIRECTzmodprobe nf_natzmodprobe iptable_natzmodprobe xt_addrtypezAlsmod | grep -E "binder|ashmem|owner|REDIRECT|nf_nat|iptable_nat"r®  z%' > /etc/modules-load.d/redroid.conf
z$install -m 0755 -d /etc/apt/keyringszWcurl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.ascz&chmod a+r /etc/apt/keyrings/docker.asczìecho "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/nullz
apt updatez_apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginzsystemctl enable --now dockerzdocker compose versionrÙ  r<  )r/  ÚNEW_DEVICE_MODULES_CONFr´  r
  r8  )rf  r0  r¢  r£  r$   r5  Úmodulesr·  s           r   Ú_new_device_ssh_commandsr  À  s«   € Ü˜AÓ€FÜ%×,Ñ,¨TÓ2€GØ
 €Cà/Ø&ØxØCØØØØØØØKØ
�#�Ð<¸W¸IÀRÈÀuÐMØ.ØaØ0ð 	wØØiØ'Ø ð)ô* 
' v¨u°hÀÀJÐPXÓ	Yð+ô, 
˜f h¸!Ô	<ð-ð r   c           	      óh   — t        |«      }g t        || ||||«      ¢d|d   › �‘t        ||d¬«      ¢S )Nr:  r&  r4  r<  )r/  r
  r8  )rf  r0  r¢  r£  r$   r  r5  s          r   Ú_extra_device_ssh_commandsr  Þ  sT   € Ü˜DÓ!€FðÜ	& v¨u°hÀÀJÐPXÓ	Yðà
ˆf�U‰mˆ_Ððô 
˜f h¸!Ô	<ðð r   c                 óÆ  — ddl m} t        |xs d«      j                  «       }|€dn
t        |«      }t        |xs d«      j	                  dd«      j                  «       }	 t        t        |«      j                  «       «      }|st        d«      ‚|st        d	«      ‚|st        d
«      ‚d|cxk  rdk  st        d«      ‚ t        d«      ‚t        | «      }t        | «      }t        |«      }	|dkD  }
t        d| › d|› d|	d   › d|› d|› d|› d|› �«       t        |
sdnd|	d   › �«       t        | «       |
rt        ||||||«      nt        |||||«      } || |t         d¬«      }t#        |«      }|rt        d|› �«       t        |«      ‚t        d«       t%        | «       t'        | ddi«       t        d| › d�«       y# t        t        f$ r}t        d«      |‚d}~ww xY w) u…   ÐŸÐ¾Ñ�Ñ‚Ð°Ð²Ð¸Ñ‚ÑŒ redroid Ð½Ð° Ñ�ÐµÑ€Ð²ÐµÑ€ Ð´ÐµÐ²Ð°Ð¹Ñ�Ð°, Ð·Ð°Ñ‚ÐµÐ¼ Ð·Ð°Ð»Ð¸Ñ‚ÑŒ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ� Ñ‡ÐµÑ€ÐµÐ· ADB Ñ� Ð±Ð¾Ñ‚Ð°.r   r‹  rB   Nrý   rF  õ8   ÐŸÐ¾Ñ€Ñ‚ Ð¿Ñ€Ð¾ÐºÑ�Ð¸ Ð´Ð¾Ð»Ð¶ÐµÐ½ Ð±Ñ‹Ñ‚ÑŒ Ñ‡Ð¸Ñ�Ð»Ð¾Ð¼õ&   Ð£ÐºÐ°Ð¶Ð¸Ñ‚Ðµ Ð»Ð¾Ð³Ð¸Ð½ Ð¿Ñ€Ð¾ÐºÑ�Ð¸õ(   Ð£ÐºÐ°Ð¶Ð¸Ñ‚Ðµ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ Ð¿Ñ€Ð¾ÐºÑ�Ð¸õ   Ð£ÐºÐ°Ð¶Ð¸Ñ‚Ðµ IP Ð¿Ñ€Ð¾ÐºÑ�Ð¸r›   r  õ    ÐŸÐ¾Ñ€Ñ‚ Ð¿Ñ€Ð¾ÐºÑ�Ð¸: 1â€“65535u   new-device: Ñ�Ñ‚Ð°Ñ€Ñ‚ Ð´Ð»Ñ� r�  rŽ  r&  ú proxy=ú@r*   r�  uA   new-device: SSH â€” Ð¿Ð°ÐºÐµÑ‚Ñ‹, Docker, redroid Ð¸ Ð¿Ñ€Ð¾ÐºÑ�Ð¸u/   new-device: SSH â€” Ð´Ð¾Ð¿. ÐºÐ¾Ð½Ñ‚ÐµÐ¹Ð½ÐµÑ€ r(  Tr�  u   new-device: SSH Ð¾ÑˆÐ¸Ð±ÐºÐ°: uF   new-device: SSH Ð³Ð¾Ñ‚Ð¾Ð², Ñ�Ñ‚Ð°Ð²Ð»ÑŽ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ� Ð¿Ð¾ ADBÚneeds_setupr  uG    Ð¿Ð¾Ð´Ð³Ð¾Ñ‚Ð¾Ð²Ð»ÐµÐ½, Ð¶Ð´Ñ‘Ñ‚ Ð½Ð°Ñ�Ñ‚Ñ€Ð¾Ð¹ÐºÐ¸ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð°)r’  rŒ  rX   rE   rX  r4   rF   rG   r3   r  r   r/  r!   rA  r  r  ÚNEW_DEVICE_SSH_TIMEOUTr  rû  rœ  )r"   rf  r0  r¢  r£  rŒ  r?   r$   r  r5  r
  r„  rx  r”  s                 r   Úprovision_new_devicer  ç  s>  € å(ä�’˜Ó×"Ñ"Ó$€EØÐ%‰r¬3¨x«=€HÜ	ˆRŠX�2‹×	Ñ	˜s CÓ	(×	.Ñ	.Ó	0€Bð`Üœ˜Z›×.Ñ.Ó0Ó1ˆ
ñ ÜÐCÓDÐDÙÜÐEÓFÐFÙÜÐ;Ó<Ð<Ø�
Ô#˜eÒ#ÜÐ=Ó>Ð>ð $ÜÐ=Ó>Ð>ä Ó,€HÜ˜Ó$€DÜ˜DÓ!€FØ�1‰H€EÜØ
(¨¨°V¸D¸6ÀÀvÈeÁ}Àoð VØ��q˜˜˜A˜j˜\¨°H°:ð	?ôô ÑSXÑKð  aPð  QWð  Xcñ  Qdð  Peð  _fô  gÜ�{Ô#ñ ô 	# 5¨(°B¸
ÀHÈdÔSä% e¨X°r¸:ÀxÓPð ñ
 ØØÜ&Øô	€Gô & gÓ.€IÙÜÐ,¨Y¨KÐ8Ô9Ü˜9Ó%Ð%äÐPÔQÜ˜Ô%Ü�+ ¨qÐ1Ô2Üˆ,�{�mÐ#jÐkÔlØøôU ”zÐ"ò `ÜÐUÓVÐ\_Ð_ûð`ús   Á!"G  Ç G ÇGÇG c                 ó˜  — ddl m} t        |xs d«      j                  «       }|€dn
t        |«      }t        |xs d«      j	                  dd«      j                  «       }	 t        t        |«      j                  «       «      }|st        d«      ‚|st        d	«      ‚|st        d
«      ‚d|cxk  rdk  st        d«      ‚ t        d«      ‚t        | «      }t        | «      }t        |«      }	t        d| › d|› d|	d   › d|› d|› d|› d|› �«       t        d«       t        | «        || t        ||||||«      t        d¬«      }
t!        |
«      }|rt        d|› �«       t        |«      ‚t        d«       t#        | «       t%        | «       t'        | ddi«       t        d| › d�«       y# t        t        f$ r}t        d«      |‚d}~ww xY w)uj   ÐŸÐµÑ€ÐµÑ�Ð¾Ð±Ñ€Ð°Ñ‚ÑŒ redroid Ñ� Ð¿Ñ€Ð¾ÐºÑ�Ð¸ Ð¸Ð· Ð¿Ð°Ð½ÐµÐ»Ð¸, Ð·Ð°Ñ‚ÐµÐ¼ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ Ozon Ð‘Ð°Ð½Ðº.r   r‹  rB   Nrý   rF  r  r  r  r  r›   r  r  u   rebuild: Ñ�Ñ‚Ð°Ñ€Ñ‚ Ð´Ð»Ñ� r�  rŽ  r&  r  r  r*   r�  uJ   rebuild: SSH â€” Ð¿ÐµÑ€ÐµÑ�Ð±Ð¾Ñ€ÐºÐ° ÐºÐ¾Ð½Ñ‚ÐµÐ¹Ð½ÐµÑ€Ð° Ð¸ Ð¿Ñ€Ð¾ÐºÑ�Ð¸Tr�  u   rebuild: SSH Ð¾ÑˆÐ¸Ð±ÐºÐ°: uC   rebuild: SSH Ð³Ð¾Ñ‚Ð¾Ð², Ñ�Ñ‚Ð°Ð²Ð»ÑŽ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ� Ð¿Ð¾ ADBr  u   rebuild: Ð›Ðš Ñ�Ð±Ñ€Ð¾ÑˆÐµÐ½, u/    Ð¶Ð´Ñ‘Ñ‚ Ð½Ð°Ñ�Ñ‚Ñ€Ð¾Ð¹ÐºÐ¸ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð°)r’  rŒ  rX   rE   rX  r4   rF   rG   r3   r  r   r/  r!   rA  r¹  r“  r[  rû  rÉ  rœ  )r"   rf  r0  r¢  r£  rŒ  r?   r$   r  r5  rx  r”  s               r   Úrebuild_devicer    sí  € å(ä�’˜Ó×"Ñ"Ó$€EØÐ%‰r¬3¨x«=€HÜ	ˆRŠX�2‹×	Ñ	˜s CÓ	(×	.Ñ	.Ó	0€Bð`Üœ˜Z›×.Ñ.Ó0Ó1ˆ
ñ ÜÐCÓDÐDÙÜÐEÓFÐFÙÜÐ;Ó<Ð<Ø�
Ô#˜eÒ#ÜÐ=Ó>Ð>ð $ÜÐ=Ó>Ð>ä Ó,€HÜ˜Ó$€DÜ˜DÓ!€FÜØ
% k ]°&¸¸¸eÀFÈ5ÁMÀ?ð SØ��q˜˜˜A˜j˜\¨°H°:ð	?ôô ÐTÔUÜ�{Ô#áØÜ˜e X¨r°:¸xÈÓNÜ"Øô	€Gô " 'Ó*€IÙÜÐ)¨)¨Ð5Ô6Ü˜9Ó%Ð%äÐMÔNä˜Ô%ä�[Ô!Ü�+ ¨qÐ1Ô2ÜÐ
(¨¨Ð5dÐeÔfØøôO ”zÐ"ò `ÜÐUÓVÐ\_Ð_ûð`ús   Á!"F) Æ)G	Æ8GÇG	Ú__main__Údevice4)r7  )rn  Fr   )rÎ   )i„  rƒ  é   )rÿ   )rK   N)r  )r+   )g     €V@)rr  )rg   )r7  )Nç      ^@T)rç  i  )r‚   )é   F)r4  )é   )g      .@rÚ  )u   Ð’Ð¸Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð°Ñ�u   ÐšÐ»Ð°Ñ�Ñ�Ð¸ÐºÐ°T)r›   )rÙ  )é-   rß   )r�   rß   )r~  )r‡  )r%  )r!  )g      >@)é   )ÅrŠ   r9  rá   rÉ  Úxml.etree.ElementTreeÚetreeÚElementTreerj   Úpathlibr   Údb_apiÚppadb.clientr   r0   ÚPILr   r  r   r   ÚREDROID_HOSTÚREDROID_PORTÚADB_HOSTÚADB_PORTr^  r_  Ú	DUMP_PATHr5   r	   r   r   r   rX   r!   r4   r@   rJ   rN   rP   rT   r\   r`   r^   r   r�   r—   r¹   rÀ   rÂ   rÄ   r  rÚ   ræ   rè   r  r  rA  r(  r/  r2  r4  r?  rD  rG  rP  rU  rY  rh  rƒ  r“  r—  r˜  r›  r   r§  r©  ru  r¹  rÁ  rÃ  rË  rÍ  rÓ  rà  rÛ  rï  r  r  r  r  r  r$  r,  r1  rB  ÚfloatrE  rH  rK  rP  rU  rZ  r`  rh  rx  r§  r©  r¯  r½   r´  r›  rº  r¾  rÆ  rÉ  r×  rÛ  rÞ  rã  rè  rë  rí  rï  rs  ró  ru   rû  rÿ  r  r  ÚDEFAULT_ADB_TCP_PORTÚSLOT_ADB_PORT_STEPr2  r3  r“  rˆ  râ  r  r  r  r  Ú_PROJECT_DIRr½  r¾  r¿  r  r   r/  r4  r8  r=  rA  rE  rL  r[  r  r²   rs  r^  r`  r¼   r  rc  rg  rj  rl  ro  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   ú<module>r6     s‰  ðÛ 	Û 	Û Û ß "Ð "Ý Ü Ý ,Ý Û 	Û Ý 'à€Ø€Ø€Ø€Ø(€Ø�.Ð eÐf€Ù�Ó€	ô]�iô ]ð Ð òòð
ˆSó ð 7?ÐPXñ / ð /°ð /È#ó /ðd 5=Èhñ 2�Cð 2˜sð 2¨cð 2Èó 2ðj˜Uó ð! ð !¨ó !ð ,5ñ  Dð ¸ó ð$%˜Só %ð !*ñ +˜ð +¨có +ð"  )ñ ˜ó ð˜ó ñ( Có ð˜#ó ò<&"òR)ð 3ó ñ>°#ð >Ðmqó >ñB°#ð Ðmqó ñ:S cð SÐaeó Sð
_ ó _ðD¨ó ð" 
Ø	Ø	Ø	Ø	Ø	Ø	Ø	Ø	Ø	ñ€ñZ 3ð Z°dó Zð> ó ð8,¨ó ,ð4 só 4ð)¨#ð )¸sð )Àtó )ðX ¨#ð  °$ó  ðF°#ð ¸$ó ò2ò$ð44˜ð 4 ó 4òñ4- só -ð`) Só )ðXÐ ðL Cð L¨Dó Lð 3ð °3ó ð	>¨ó 	>ð<¨ó <ð ˜Só ð(˜#ó (ðV˜só òSò>ð($ Dó $ðN( ó (ñ¨Sð ¸sð ÐQTó ñ =¸#ó =ò@Qô
ñ? só ?òDð4˜ó ð: %)¨tÀ$ÐQVô ð: -1°tÈ$ÐY^ô 9ð3 $ó 3ñ¨#ð ÀDó ñ ¨ð Àð ÈDó ð2¨ó ò*ñ.¨uð Àó ð*¨ð °ó ñ*
¨%ð 
¸4ó 
ò
°3ð 
ÀCð 
ÐPTó 
ò:ð.	+ có 	+ò:¨ð :¸ó :ò '5òTeÐTYð eÐw{ó eòPwòtð$	E˜3ð 	E 3ó 	Eð@ Sð @°3ð @¸4ó @ò  3ð ¨tó ò 7 sð 7¸ð 7Èó 7ò	¨Có 	ò.°cð .Àtð .ÐX\ó .ðb #ó ða^˜3ð a^ 4ó a^òH+&˜cð +&¨Sð +&¸ó +&ò\.òB3òp?4òD( cð (°3ð (Àó (òVð - #ó -ð	 ð 	¨ó 	ð¨#ð °tð Àó ó*"òJ¨Sð ¸5ð ÐSXð Ðcgó òC\ Sð C\ÈSð C\Ðrvó C\ðL Ð ØÐ Ø-€Ø)€ØÐ Ø€ØÐ ØÐ Ù�H‹~×%Ò%Ó'×.Ò.€Ø˜LÑ(€
ØÐ GÑG€ØÐ;Ñ;€ð 7Kñ  #ð °ð Èsó ð$˜cð $ có $ò ˜ð   Tó  ðF˜T #™Yó ò ð °ð Àð ÈTÐRUÉYó ò" 3ð ¨cð ¸$¸s¹)ó ð :BÐS[ñ 4 Cð 4°3ð 4ÈSó 4ò*]˜cð ]¨Sð ]¸eó ]ð$ #ð ¨#ó ð4˜tð ¨ó ð& €B‡J‚JÐ! 2§=¢=Ó1Ø€B‡J‚Jˆ~˜rŸ}š}Ó-ðÐ òW¨3ð W¸Eð WÈDó Wò I Sð I°$ó Ið 5¨¨c¨¡?ó ó7óð& 4ó ò'¨5ð '¸Dó 'ð˜só ò!ðH tó ð(¨ó ó6ð&¨#ð °$ó ð(˜sð  tó ð2˜sð  só ð	˜Sð 	 Só 	ð˜sð °ð ¸Cð È3ð ÐSVó ò,'˜sð '°ð '¸Cð 'ÐQTó 'òT ð °ð ¸ð È#ð ÐY\ð Ðdgð ÐptÐuxÑpyó ð 	  S¨$ Y¡ó 	ò-�4˜‘9ð - uð -¸ó -ð`m˜ð m ó mð˜ð  4ð ¨Dó ð0 2Ð òG�sð G Sð G°5ð GÀCó Gò^˜sð ^¨cð ^¸3ó ^ð>-= cð -=¨dó -=ð` Sð ¨Tó ð"Ð ðÐ ò9˜sð 9¨#ð 9°có 9ðx) #ð )¨#ó )ð 4ð ¨Có ð$¨$ð °sð Àcð Èsð Ð`cð Ðorð Ðw{Ð|ñ  xAó ð$ Cð °3ð ¸Cð ÈSð Ð\_ð ÐdhÐilÑdmó ð< cð °Sð ¸cð Èsð Ð^að Ðilð ÐquÐvyÑqzó ð3 cð 3°#ð 3Àð 3È#ð 3Ð^bó 3ðl0 ð 0¨Cð 0¸3ð 0ÀCð 0ÐX\ó 0ðf ˆzÒñ ˆYÕð r   