
    hjP                        S SK r S SKrS SKrS SKrS SKrS SKrS SKJr  S SKJ	r	  S SK
Jr  SSKJr  \(       a  SSKJr   S SKJrJr   S SKr S S	KJr  S S
KJrJrJr  S SK r S SKrS SKJ r   S SK!J"r"J#r#  S SK$J%r%  S SK&J'r'  S SK(J)r)  SSK*J+r+  SSK,J-r-J.r.  SSK/J0r0  SSK7  \(       a  SSK1J2r2J3r3J4r4J5r5  SSK6J7r7  SSK8J9r:  SSK8J;r<  S r= " S S5      r>S9S jr?S:S jr@S rA\(       a  S rBS  rCS! rDS" rE\=S# 5       rFS;S$ jrGS% rHS& rIS' rJ       S<S(\KS)\LS*\LS+\MS,\LS-\LS.\L4S/ jjrNS=S0 jr9S>S1 jrOS2 rPS3 rQS4 rRS5 rS0 rTS9S6 jrUS9S7 jrVS8 rWg! \ a    SrSr S SKr GN! \ a    Sr  GNf = ff = f! \ a    Sr GN-f = f! \ a    Sr GN+f = f)?    N)
format_exc)unquote)urlretrieve   )run_as_module)Var)ClientSessionClientTimeout)Repo)GitCommandErrorInvalidGitRepositoryErrorNoSuchPathError)ThreadPoolExecutor)partialwraps)_maybe_await)types)get_display_name)CMD_HELP)eodeor)DependencyMissingError   )*)ADDONSHELPLISTLOADED)ultroid_version)download_file)upload_filec                 0   ^  [        T 5      U 4S j5       nU$ )Nc                     >#    [         R                  " 5       R                  [        [        R
                  " 5       S-  S9[        T/U Q70 UD65      I S h  vN $  N7f)N   )max_workers)asyncioget_event_looprun_in_executorr   multiprocessing	cpu_countr   )argskwargsfunctions     )/root/TeamUltroid/pyUltroid/fns/helper.pywrapperrun_async.<locals>.wrapperE   sT     ++-==?+D+D+F+JKH.t.v.
 
 	
 
s   AAAA)r   )r-   r/   s   ` r.   	run_asyncr1   D   s     
8_
 
 N    c                        \ rS rSrSr/ SQrSrg)	KEEP_SAFER   z=Patterns to scan for in plugins before allowing installation.)z
os\.systemz)subprocess\.(run|call|Popen|check_output)z	exec\s*\(z	eval\s*\(z__import__\s*\(zopen\s*\(.*['\"]w['\"]zshutil\.(rmtree|move|copy)zsession\.stringz
get_me\(\)api_idapi_hash N)__name__
__module____qualname____firstlineno____doc__All__static_attributes__r8   r2   r.   r4   r4   R   s    GCr2   r4   c                 T    U R                   (       a  SU R                    3$ [        XS9$ )N@)custom)usernameinline_mention)userrB   s     r.   make_mentionrF   d   s%    }}4==/""$..r2   c                    U(       d  [        U 5      =(       d    SOUn[        U [        R                  5      (       a-  U(       a  SU R                   SU S3$ SU SU R                   S3$ [        U [        R
                  5      (       a>  U R                  (       a-  U(       a  SU R                   SU S3$ SU S	U R                   S3$ U$ )
NzDeleted Accountz<a href="tg://user?id=z">z</a>[z](tg://user?id=)z<a href="https://t.me/z](https://t.me/)r   
isinstancer   UseridChannelrC   )rE   rB   htmlmention_texts       r.   rD   rD   j   s    FL#D)>->RXL$

##+DGG9B|nDII<.y::$&&4==+DMM?"\N$OO<.a@@r2   c           	      X   SSK JnJn   [        U    nX!4 H4  nUR	                  5        H  u  pVXS;   d  M  UR                  U5        M     M6     [        U 	 [        U 	 [        R                  " U 5        g ! [        [        4 a    SU  3nX!4 H  n[        [        [        UR                  5      5      5       Hi  nUR                  U   u  pU
R                  U:X  d  M&  UR                  U	  [        U 	 [        U 	 [        R                  " U 5        MZ  ! [         a     Mg  f = f   M      g f = f)Nr   )asstultroid_botzaddons.) rQ   rR   r   list_event_handlersremove_event_handlerr   r   remove
ValueErrorKeyErrorreversedrangelen_event_buildersr:   )	shortnamerQ   rR   all_funcclientx_nameievcbs              r.   un_plugrf   z   s   $)$")F224=//2 5 * 9Oi ! $")FeC(>(>$?@A//2==D(..q1"9- Oi0#  B *sA   'A3 =A3 3A$D)D))$DD)
D	D)D		D)(D)c           
      `  #    SSK Jn  SSKJn  U R                  (       d  [        U SU S35      I S h  vN $ [        U S5      I S h  vN nU R                  5       I S h  vN nUR                  (       a`  [        UR                  S5      (       aE  UR                  R                  (       a*  UR                  R                  R                  S5      (       d  [        US	5      I S h  vN $ UR                  R                  R                  SS
5      nU[        [        5      ;   a  [        USU S35      I S h  vN $ UR                  R                  R                  SS5      R                  SS5      nUR!                  SU 35      I S h  vN nU R"                  SS  S:w  a  [%        U5      R'                  5       n[)        5       R*                   Hm  n	[,        R.                  " X5      (       d  M   [0        R2                  " U5        UR5                  SU	 SUR                  R                   SU S35      I S h  vN s  $     U" U5        UR                  SS
5      nU[:        ;   aE  SR=                  U5      n
[:        U    H  nX-  n
M	     U
S-  n
[        USU SU
 35      I S h  vN   g U[>        ;   a6  SU S 3n
U
[A        [>        U   5      -  n
[        USU SU
 35      I S h  vN   g  SU S 3n[B        U    H  nXU-   S!-   -  nM     [        USU S"U S35      I S h  vN   g  GN GN GN GNI GN GN GN! [6         a9    [0        R2                  " U5        [        US[9        5        S3SS9I S h  vN  s $ f = f N N Nd! [6         a    [        USU S#35      I S h  vN     g f = f7f)$Nr   )HNDLR)load_addonszPlease use `z install` as reply to a .py file.z`Installing...`documentz.pyz#`Please reply to any python plugin`rS   zPlugin `z` is already installed.ra   -|zaddons/	   fz4**Installation Aborted.**
**Reason:** Occurance of `z` in `zB`.

If you trust the provider and/or know what you're doing, use `zinstall f` to force install.z**ERROR**

``   )timez**Plugin** - `{}`
u   
© @TeamUltroidu   ✓ `Ultroid - Installed`: `u   ` ✓

zPlugin Name-u   

✘ Commands Available-


u   ` ✓

`u   ` ✓)"rS   rh   startup.utilsri   reply_tor   r   get_reply_messagemediahasattrfilerb   endswithreplacelistr   download_mediatextopenreadr4   r>   researchosrV   editBaseExceptionr   r   formatr   strr   )eventrh   ri   okreplyplugsmdlr   danoutputrc   r`   ds                 r.   safeinstallr      so    /~~eW,LM   u/00--//KKZ00



((//R!FGGGzz&&ub14<R8D61H!IJJJZZ__$$S#.66sC@'''"77::ab>S 8==?D {99S''IIbM!#OPSuTZ[`[e[e[j[jZk  lp  qv  pw  wS  T"   '	LO zz%$4<*11$7F$Z  ))Fb8ixPQQQX#D6)HIFc(4.))Fb8ixPQQQJ"4&(GHdAT))A $" <TF*QCqQRRR] 1/ H K7
  	LIIbMR>*,q!AKKKK	L R R S  J" <TF%HIIIJs  1N.L$N.L'N.L* BN.$L-%AN.5L06AN.L3A N.,AN.4L65N.>L9 AN.!M?"?N.!N"N.(6N NN #N.'N.*N.-N.0N.3N.6N.9:M<3M64M<9N.;M<<N.N.N N+"N%#N+(N.*N++N.c                 z  #    SSK Jn  [        U S5      I Sh  vN n[        R                  (       a  [        R
                  (       d  UR                  S5      I Sh  vN $  [        R                  " [        R                  5      R                  [        R
                  5      nUR                  S5      I Sh  vN   UR                  5       n[        SS	5       nUR                  U5        SSS5        U R                  R!                  U R"                  S[$        R&                  S
S9I Sh  vN   [(        R*                  " S5        UR-                  5       I Sh  vN   g GND GN! [         a5  nUR                  U5        UR                  S5      I Sh  vN  s SnA$ SnAff = f N! , (       d  f       N= f N Nb7f)z
post heroku logs
r   LOGSz`Processing...`Nz6Please set `HEROKU_APP_NAME` and `HEROKU_API` in vars.L`HEROKU_API` and `HEROKU_APP_NAME` is wrong! Kindly re-check in config vars.z`Downloading Logs...`zultroid-heroku.logwz**Ultroid Heroku Logs.**)rx   thumbcaption)rS   r   r   r   
HEROKU_APIHEROKU_APP_NAMEr   heroku3from_keyappr   infoget_logr~   writer_   	send_filechat_id	ULTConfigr   r   rV   delete)r   r   xxr   ser   logs          r.   heroku_logsr      sW     	u/003#6#6H  	##CNN3889L9LMC gg-...[[]&,IIbM -ll$$MM%//.	 % 
 	
 	
 			&'iik1 1
  	IIbM^   	
 	/,,	
 	s   F;EAF;EF;!AE" "F;6F$7 F;F&)?F;(F7)-F;F9F;F;"
F!,%FFFF!F;F!!F;&
F40F;9F;c                 ^   #    U R                  SU[        R                  S9I S h  vN   g  N7f)Nz**Ultroid Logs.**)rx   r   )respondr   r   )ultrx   s     r.   def_logsr      s-     kk//  
 	
 	
s   #-+-c                  X   #    [        [        R                   S35      I Sh  vN   g N7f)zUpdate requirements..z2 -m pip install --no-cache-dir -r requirements.txtN)bashsys
executabler8   r2   r.   updateme_requirementsr      s'     ~~PQ
 	
 	
s    *(*c                    [        5       R                  S   R                  R                  S5      R	                  SS5      nU R
                  R                  nS=pES[         SU SU SU S	3	nS
[         SU S3nSnU R                  U5       H  n	USU	R                  5        SU	R                  R                  U5       SUR                  S5       SU	 SU	R                   SU	R                   S3-  nUSU	R                  5        SU	R                  R                  U5       SU	R                   SU	R                   3-  nM     U(       a  [        Xd-   5      [        Xu-   5      4$ XE4$ )zGenerate Changelogs...r   url.gitrS   z<b>Ultroid z updates for <a href=z/tree/z>[z
]</a>:</b>zUltroid z updates for :z%d/%m/%y || %H:%Mu
   

💬 <b>u   </b> 🗓 <b>[z]</b>
<b><a href=/z/commit/u   ]</a></b> 👨‍💻 <code>z</code>u   

💬 u    🗓 [z]
[u   ] 👨‍💻 )r   remotesconfig_readergetrz   active_branchrb   r   iter_commitscountcommitted_datetimestrftimerstripsummaryauthorr   )
repodiffUPSTREAM_REPO_URLac_brch_logtldr_logchch_tld_formcs
             r.   	gen_chlogr      s    FNN1++//6>>vrJ 	 ""''?++@AR@SSYZ_Y``bchbiist?+=qA$""4(AQWWYK~a>R>R>[>[\b>c=ddv  xI  xP  xP  QT  xU  wV  V^  _`  ^a  ac  de  dm  dm  cn  nJ  KL  KS  KS  JT  T[  \  \F)AGGI;ga6J6J6S6STZ6[5\\`abajaj`kkyz{  {C  {C  zD  E  EH ) r{#S)9%:::r2   c                   #    [         R                  " U [         R                  R                  [         R                  R                  S9I Sh  vN nUR	                  5       I Sh  vN u  p4UR                  5       R                  5       =(       d    SnUR                  5       R                  5       nU(       dH  U(       aA  [        R                  " SU5      =n(       a#  XgR                  S5      R                  5        S34$ Xe4$  N N7f)z7
run any command in subprocess and get output or error.)stdoutstderrNz"\/bin\/sh: (.*): ?(\w+): not foundr   
_NOT_FOUND)r&   create_subprocess_shell
subprocessPIPEcommunicatedecodestripr   matchgroupupper)cmdrun_codeprocessr   r   erroutr   s           r.   r   r     s      33!!&&!!&& G
 #..00NF
--/


!
)TC
--/


!CHHA3GG5G;;q>//12*===8O
 1s%   A
DDD$D%BDDc                    #    SSK Jn    [        5       R                  S   R                  R                  S5      R                  SS5      n [        5       nUR.                  R0                  nSUR                  ;  a  UR                  SU5      OS   UR3                  S5      nUR!                  U5        [5        USU 35      I S h  vN u  p[7        U5      $ ! [         a  nU R                  U5         S nAg S nAff = f! [         a7  nU R                  SU S35        [        5       R                  5          S nAg S nAf[         a7  nU R                  S	U S
35        [        5       R                  5          S nAg S nAf[         a    [        R                  " 5       nUR                  SU5      nUR!                  5         UR#                  SUR$                  R&                  5        UR(                  R&                  R+                  UR$                  R&                  5        UR(                  R&                  R-                  S5         GNf = f GN7f)Nr   r   r   r   r   rS   z`directory z is not found`z`Early failure! ro   upstreammainTzHEAD..upstream/)rS   r   r   r   r   r   rz   	Exception	exceptionr   r   __del__r   r   initcreate_remotefetchcreate_headrefsr   headsset_tracking_branchcheckoutr   rb   remoter   bool)
r   off_repoerr   errororiginr   ups_rem	changelog
tl_chnglogs
             r.   updaterr   &  s    6>>!$2266u=EEfbQ'v  ##E0:$,,0NDz8,TXkk*%GMM%"+DOE72K"LLI	?3  r
  		Kwn56 		$UG1-.$ 'yy{##J9!1!12

++FKK,<,<=

  &' Ms   I
A C 
C= A.I
II

C:C50I
5C::I
=
I-D94I
9I-E83I
8CI I
II
c           	         ^^^#    [        U S5       n[        TR                  UUUUU4S jS9I S h  vN nS S S 5        U$  N! , (       d  f       W$ = f7f)Nrbc           	      f   > [         R                  " 5       R                  [        U UTTT5      5      $ Nr&   r'   create_taskprogressr   tr   msgtaimes     r.   <lambda>uploader.<locals>.<lambda>Q  0    7+A+A+C+O+O,r2   )r_   rx   filenameprogress_callback)r~   
uploadabler_   )rx   rb   r   r   r   rn   results     ```  r.   uploaderr  K  sS     	dD	Q!<<	
 
 
 M
 
	 M+   A AAA
AA
AAc           	         ^^^#    [        U S5       n[        TR                  UUUUU4S jS9I S h  vN nS S S 5        U$  N! , (       d  f       W$ = f7f)Nwbc           	      f   > [         R                  " 5       R                  [        U UTTT5      5      $ r   r   r   s     r.   r  downloader.<locals>.<lambda>d  r  r2   )r_   locationr   r  )r~   downloadabler_   )r  rx   r   r   r   fkr  s     ```  r.   
downloaderr  ^  sS     	h	#<<	
 
 
 M
 
	 Mr	  r   postheadheadersobjectre_json
re_contentc                   #    [         (       Ga)  [        US9 IS h  vN n
U(       a  U
R                  OU(       a  U
R                  OU
R                  nU" U /UQ70 U	D6I S h  vN nU(       a!  U" U5      I S h  vN sS S S 5      IS h  vN   $ U(       a(  UR	                  S S9I S h  vN sS S S 5      IS h  vN   $ U(       a)  UR                  5       I S h  vN sS S S 5      IS h  vN   $ U(       d  U(       a  UsS S S 5      IS h  vN   $ UR                  5       I S h  vN sS S S 5      IS h  vN   $ [        S5      e GN' N N N N N Nw Ni NJ N3 N%! , IS h  vN  (       d  f       g = f7f)N)r  )content_typezinstall 'aiohttp' to use this.)aiohttp_clientr  r  r   jsonr   r}   r   )r   r  r  r  evaluater  r  r  r+   r,   r_   methoddatas                r.   async_searcherr  u  s     ~!'22f$(V[[dv{{

F5d5f55D%d^+	 322
 !YYDY99 322 !YY[( 322 v 322 $ 322. %%EFF/ 35+	 3 : 3 ) 3 % 3222s  E4EE4AE"E#E9E:E=E4	E

E4E(E)E,E48E9E4>EEEE4(E)E4.E=E4	E
E4E"E#E&E42E3E4EE
E4EE4EE4E4EE4E1 E#!E1-E4c                 B   ^^#    UU4S jn[        XS9I Sh  vN $  N7f)z1for files, without progress callback with aiohttpc                 <  >#    T(       a9  SU R                   R                  S5      ;   a  S U R                  5       I S h  vN 4$ [        TS5       nUR	                  U R                  5       I S h  vN 5        S S S 5        TS4$  NE N! , (       d  f       TS4$ = f7f)Nzapplication/jsonzContent-Typer  rS   )r  r   r  r~   r   r   )contentrx   rb   validates     r.   	_download download_file.<locals>._download  s|     *goo.A.A..QQw||~---$JJW\\^+, Rx .+ Rxs9   ;BBBB/B
0B8BB
B
B)r  N)r  )linkrb   r#  r$  s    `` r.   r    r      s       9999s   c           
        #    [         (       d  [        X5      S   I S h  vN S 4$ [        (       a	  [        S S9OS n[        US9 IS h  vN nUR                  U 5       IS h  vN nU(       d  [	        U R                  S5      S   5      n[        UR                  R                  SS5      5      =(       d    S nSn[        R                  " 5       n[        US5       n	UR                  R                  S5        S h  vN n
U
(       a  U	R                  U
5        U[        U
5      -  nU(       d  M8  U(       d  MA  [        U" Xv5      5      I S h  vN   M\   GN6 GN N N_ N
 S S S 5        O! , (       d  f       O= fU[        R                  " 5       U-
  4sS S S 5      IS h  vN    sS S S 5      IS h  vN    $ ! , IS h  vN  (       d  f       O= fS S S 5      IS h  vN    g ! , IS h  vN  (       d  f       g = f7f)	Nr   )total)timeoutr   zcontent-lengthr     )r  r    aiohttp_timeoutr   r   
rpartitionintr  rq   r~   r"  iter_chunkedr   r[   r   )download_urlr  r  _timeoutsessionresponse
total_sizedownloaded_size
start_timern   chunks              r.   fast_downloadr8    sw    >"<:1==tCC.=oT*4Hh//7;;|,,"<#:#:3#?#CDX--112BAFGO4JOJh%#+#3#3#@#@#F %'3u:5((ZZ*-oJ   >/,
 $G &%% TYY[:55 -,, 0//,,, 0/////s  H E)H 	E
H G&#E$G&'A6F:E+9E!=E>E!,E+1E+:E+EE+H H G&E!E+!E+"	F:+
E95 F:G&!F$"G&'H 3F64H :G	 GG	G&H G" H &G=,G/-G=9H c                    [        [        U 5      R                  SSS9S   5      nSnUS:X  a  U R                  R                  nUS:X  a  SnU$ S	U;   a  US
:X  a  SnU$ US:X  a  SnU$ Sn U$ SU;   aU  S[        U 5      ;   a  SnU$ S[        U 5      ;   a.  [        U R                  R                  S   5      nSU;   a  SnSnU$ Sn U$ SU;   a  SnU$ Sn U$ US:X  a  SnU$ US:X  a  SnU$ )N(r   )maxsplitr   rS   MessageMediaDocumentzapplication/x-tgstickerzsticker animatedimagez
image/webpstickerz	image/gifz
gif as docz
pic as docvideoDocumentAttributeAnimatedgifDocumentAttributeVideozsupports_streaming=Truezvideo as docaudiorj   MessageMediaPhotopicMessageMediaWebPageweb)r   splitrj   	mime_type
attributes)rv   r   mmimrc   s        r.   	mediainforM    sV   	c%ja03	4B
A	##nn&&++"A4 H3 ^l". H- # * H' !& H% ^*c%j8  H *SZ711!45,1A" H  H ^A H A
 H	 
"	" H 
$	$Hr2   c                    [        [        U S-  5      S5      u  p[        US5      u  p1[        US5      u  pC[        US5      u  pTU(       a  [        U5      S-   OSU(       a  [        U5      S-   OS-   U(       a  [        U5      S-   OS-   U(       a  [        U5      S	-   OS-   U(       a  [        U5      S
-   OS-   nU(       d  gUR                  S5      (       a  US S $ U$ )N  <         zw:rS   zd:zh:zm:s0sr   r*  )divmodr.  r   ry   )millisecondsminutessecondshoursdaysweekstmps          r.   time_formatterr]    s    c,"56;GGR(NE#KDq/KE %#e*t
2!%CI2	/"'CJR	1 %,CL4	5 $+CL3		4  
||C3BxJr2   c                     U (       d  gS H  nU S:  a    O	U S-  n M     [        U [        5      (       a	  U  W S3n U $ [        U [        5      (       a  U S W S3n U $ )Nz0 B)rS   KMGTr+  B.2frJ   r.  float)sizeunits     r.   
humanbytesri    sq    ($; ) $vQ K 
D%	 	 sD6#Kr2   c                     U (       d  g SnS H  nU S:  a    O	U S-  n M     [        U [        5      (       a  U  U 3n U $ [        U [        5      (       a  U S U 3n U $ )NrS   )rS   r_  r`  rc  rb  rO  rd  re  )numberrh  s     r.   numerizerl    sr    D(D=$ ) &#8D6" M 
FE	"	"3<v&Mr2   c                   #    [         R                   " 5       n[        R                  UR                  5      (       a  [        UR                     R                  UR                  5      (       a)  U[        UR                     UR                     -
  S:  a  g O\[        UR                     R                  UR                  U05        O-[        R                  UR                  UR                  U005        [         R                   " 5       U-
  n[        US-  5      S:X  d  X:X  Ga>  U S-  U-  nX-  n	[        X-
  U	-  5      S-  n
SR                  SR                  S [        [        R                  " US	-  5      5      5       5      SR                  S
 [        S[        R                  " US	-  5      -
  5      5       5      [        US5      5      nUSR                  [        U 5      [        U5      [        U	5      [        U
5      5      -   nU(       a*  UR                  SR                  XEU5      5      I S h  vN   g UR                  SR                  XL5      5      I S h  vN   g g  N/ N7f)Ng?g      $@r   d   rO  z`[{0}{1}] {2}%`

rS   c              3   &   #    U  H  nS v   M	     g7f)u   ●Nr8   .0rc   s     r.   	<genexpr>progress.<locals>.<genexpr>1  s     E#DaE#D   r$   c              3   &   #    U  H  nS v   M	     g7f)rS   Nr8   rp  s     r.   rr  rs  2  s     G F1B Frt     r   u2   `{0} of {1}`

`✦ Speed: {2}/s`

`✦ ETA: {3}`

u   `✦ {}`

`File Name: {}`

{}u   `✦ {}`

{})rq   No_Floodr   r   rL   updateroundr   joinrZ   mathfloorri  r]  r   )currentr(  r   start
type_of_ps	file_namenowr   
percentagespeedtime_to_completionprogress_strr\  s                r.   r   r   !  s    
))+C||EMM""EMM"&&uxx00hu}}-ehh773> ? U]]#**EHHc?;38999;DTE\a7#3s]U*
"EOu#<=D,33GGE5JN)C#DEEGGGb4::j1n+E&E FGG*a 
 HOO7#5!5!12	 	 **3:::RUV   **-44ZEFFF1 $4( Gs$   H/I%1I!2(I%I#I%#I%c                   #    [         R                  (       a  [         R                  (       aw   [        R                  " [         R                  5      nUR                  5       [         R                     nU (       a  U R                  S5      I S h  vN   UR                  5         g [        [        R                  5      S:X  a6  [        R                   " [        R"                  [        R"                  SS5        g [        R                   " [        R"                  [        R"                  SS[        R                  S   [        R                  S   [        R                  S   [        R                  S   [        R                  S	   [        R                  S
   5
        g  GN! [         a@  nU (       a  [        U S5      I S h  vN  s S nA$ [        R                  U5         S nAg S nAff = f7f)Nz0`Restarting your app, please wait for a minute!`zK`HEROKU_API` or `HEROKU_APP_NAME` is wrong! Kindly re-check in config vars.r   z-m	pyUltroidr         r$      )r   r   r   r   r   appsr   restartr   r   r   r   r[   r   argvr   execlr   )r   Herokur   r   s       r.   r  r  K  s6    
s~~	%%cnn5F++- 3 34ChhQRRRKKM sxx=AHHS^^S^^T;GHH S 	 a    NN2	s`   +G)A F FF #C6G)F 
G&&G!<F?=G!G&G)G!G)!G&&G)c                   #    SSK JnJn  [        U S5      I S h  vN n US:X  a  [        R
                  (       a  [        R                  (       d  U R                  S5      I S h  vN $ [        R                  " S5      R                  S5      S   n [        R                  " [        R                  5      nUR                  5       [        R
                     nU R                  S	5      I S h  vN   UR                  5       U   R                  S5        g [$        R&                  " 5         g  GN N NB! [          a5  nUR#                  U5        U R                  S
5      I S h  vN  s S nA$ S nAff = f7f)Nr   )	HOSTED_ONr   zShutting Downherokuz.Please Fill `HEROKU_APP_NAME` and `HEROKU_API`DYNO.r   z3`Shutting Down your app, please wait for a minute!`r   )rS   r  r   r   r   r   r   r   r   getenvrH  r   r   r  process_formationscaler   r   r   exit)r   r  r   dynotyper  r   es          r.   shutdownr  l  s    "C)
)CH##"RSSS99V$**3/2		%%cnn5F++- 3 34C((PQQQ!!#H-33A6 	
! * T
 R 	NN1^   	sq   E1D(AE1#D+$,E1AD/ *D-+&D/ E1+E1-D/ /
E.9%E)E!E)#E.$E1)E..E1r   )NF)r   )FFNNFFF)F)NN)Xr&   r{  r   r   r   rq   	tracebackr   urllib.parser   urllib.requestr   rS   r   configsr   aiohttpr	   r  r
   r,  ImportErrorrequestsr   gitr   git.excr   r   r   r)   concurrent.futuresr   	functoolsr   r   telethon.helpersr   telethon.tlr   telethon.utilsr   _miscr   _misc._wrappersr   r   
exceptionsr   dB._corer   r   r   r   versionr   FastTelethonr    r  r!   r  r1   r4   rF   rD   rf   r   r   r   r   r   r   r   r  r  r   r   dictr  r8  rM  r]  ri  rl  rw  r   r  r  r8   r2   r.   <module>r     s     	 	 
      & YSS
   1 $ )  +  & / 55 % 7 3 $/
 6 5Jn@

    **J&2 $G	$G
$G $G 	$G $G $G $GV
:64 L( #GTBe  NO   G  DsM   E E. E= 
E+EE'"E+&E''E+.E:9E:=F	F	