ÿØÿà JFIF      ÿÛ C      

!"$"$ÿÛ C  ÿÂ p " ÿÄ              ÿÄ             ÿÚ    ÕÔË®
(%	aA*‚XYD¡(J„¡E¢RE,P€XYae )(E¤²€B¤R¥	BQ¤¢ X«)X…€¤   @  

  ..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ C      

!"$"$ÿÛ C  ÿÂ p " ÿÄ              ÿÄ             ÿÚ    ÕÔË®
(%	aA*‚XYD¡(J„¡E¢RE,P€XYae )(E¤²€B¤R¥	BQ¤¢ X«)X…€¤   @  

  ..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     4 5.8.1                                          	        debian/zsh-common//usr/share/zsh/functions/TCP/tcp_alias  ;       	        debian/zsh-common//usr/share/zsh/functions/TCP/tcp_close ;          h         debian/zsh-common//usr/share/zsh/functions/TCP/tcp_command        (        debian/zsh-common//usr/share/zsh/functions/TCP/tcp_expect E        p        debian/zsh-common//usr/share/zsh/functions/TCP/tcp_fd_handler E               debian/zsh-common//usr/share/zsh/functions/TCP/tcp_log _    
           debian/zsh-common//usr/share/zsh/functions/TCP/tcp_open     	           debian/zsh-common//usr/share/zsh/functions/TCP/tcp_output         (        debian/zsh-common//usr/share/zsh/functions/TCP/tcp_point  N               debian/zsh-common//usr/share/zsh/functions/TCP/tcp_proxy N   x             debian/zsh-common//usr/share/zsh/functions/TCP/tcp_read        8        debian/zsh-common//usr/share/zsh/functions/TCP/tcp_rename   a
     8        debian/zsh-common//usr/share/zsh/functions/TCP/tcp_send                 debian/zsh-common//usr/share/zsh/functions/TCP/tcp_sess !  @      |        debian/zsh-common//usr/share/zsh/functions/TCP/tcp_shoot ! &"               debian/zsh-common//usr/share/zsh/functions/TCP/tcp_spam %  c              debian/zsh-common//usr/share/zsh/functions/TCP/tcp_talk %&               debian/zsh-common//usr/share/zsh/functions/TCP/tcp_wait A     C  f       d қCA       f       <   p   A   @         z               
;  4  P  2# d      A     C  g   |          A       
  A      f       zA    	      0	           A.  %              0	     "     A.  '             0	     ;     A    C
  F   ,    A   "  -      H    C  F   |    A         1  A  /        A           A  0        A  \  C  
     2#       A  A  8    ,             A           ۔     A      F   ,    A   t        
;   +< A  T     1  A.  <   r          A   l  C    1  A  =     %  A              F     E  A,  ?             A      &     A,  B              A,  C         5     A   |      1  A  D   R  ]  A   "  F   R  u             F       A,  G             A      &     A           A>  J   RP  r  A    R    A   "  K   R  u      F       A,  L             A    C  &   |  A      1  11  A  O       A,  Q      2#      A          d       A  <   &  1  A  S     Q	  A     C  F   	  	  A,  V        
     A       %  d  a
  
     A  P    	  1  A  X   R    A    C  F   	  )  q  A.  [      u         A   @        A  _   R  u  A             F       A,  b             A      &     A   "  f            g     <      A,  g      2#      A  h   	  1  A  h     M  A.  i   E   u       q  A.  k      u       A,  m        +4#   A  h        A      f   0  L T  A  8        A  o        A      f       +4#W  A,  t              A,  u      2#      A   l      1  A  v   R  +4#A              F     9  A,  x             A    C  &     A          d       A   C  =  1.  A  }       A  X   *  1%  A       %  A        F   	  	  A,          E     A        %  d         A   P     	  1  A     R  9  A    !  F   	  ]  q  A.        u       A  h  C"      A    C"  f   0  L T  A  8  "      A          A    "  f   L    +4#q  A    #       ۔       A   @  %      A     R  u  A    C%         F       A,               A    &  &     A    C'  F   ,  9      emulate setopt extendedglob cbases local quiet base value alias delete match mbegin mend array integer stat index getopts qd opt delete return  OPTIND > 1  shift ( OPTIND - 1 )  ! #   #tcp_aliases  kvtcp_aliases value print alias: alias for session tcp_by_fd[fd]:-unnamed fd fd arg b delete 0: value given with deletion command. continue match1 match2 base quiet 0: empty value for alias alias continue +tcp_by_name tcp_by_namebase 0: no base session `base' for alias continue tcp_by_namealias tcp_aliasesfd arrayralias unset tcp_by_name[alias] arrayialias array1,index1 arrayindex+1,1 array tcp_aliases[fd] tcp_aliasesfd array 0: `alias' is already a session name. continue  ! +tcp_aliases  typeset tcp_aliases tcp_aliasesfd  alias alias tcp_by_namealias zmodload zsh/parameter  +functions[tcp_on_alias]  tcp_on_alias 0: no such alias `alias' continue arrayralias delete arrayialias array1,index1 arrayindex+1,1 array tcp_aliases[fd] array  +functions[tcp_on_unalias]  tcp_on_unalias alias: alias for session tcp_by_fd[fd]:-unnamed fd fd 0: `alias' is a session name. continue stat A       f       d қCA       f       <   p   A   $  C        
cc   z          A       g              A   0     A      f     =  zA   C  ?  e  0	     
      A.        
cc     0	          A.                0
     b     A            y     0	     r     A.                0
          A                 0	     ;     A      F       A   "  !          C  F   (  A  A           A  #       A   X  	  
  	  A  $        A     C	         F       A    	  F       A     
        u     A  h  C
      A  )        A   "  *   R      
         F     !  A    
  F       A             +<    A   8  C      A  1        A                 A   h  C      A  5        A   "  6   R               F     9  A      F       A       g        2#     A       g             A       g             A              <  P  h        A           A      f     ,   A  p       &         A      F      <  A~  D     1  A.  D   r     -     A.  E      y       A                  A,  K             A,  L      2# 9     A   l  C    1  A  M   R  +4#A              F       A,  O             A      &   	  A,  S      4	  Y	     A           A  T   R  	  A   @  C      A  U   R    A             F     	  A,  X             A    C  &   
  A         1  A>  \   2P    
      
  A   p  C  ,           9  A   8        A  ^        A      f     I  +4#A    C  F   d  }  A      F   d    A   X    
  	  A  g     c+A  B    f   c+4 +4#           F     !  A         1  A  k     a  A  X  C  
  	  A    C  f      +4#A,  n             A.  o             Q  A  q   R    A  p      1	  A&  t         A  "  u   R      C         F       q  A      F       A       F   d    A       F   d  I  A   D  C    1  A>  }   2P  R    r      A      F       A   "     r   	  U          F   d  |  A  8         A          A       f     	  +4#A    !  F     M      emulate setopt extendedglob cbases local quiet alias noclose sessnames getopts aql:ns: opt s.,.OPTARG OPTARG return  OPTIND > 1  shift ( OPTIND - 1) all  #  print Usage: 0 [ -q ] [ -a | [ session ... ] ] ktcp_by_name  ! #sessnames  quiet No TCP sessions open.  ! #sessnames  TCP_SESS  ! #sessnames  No current TCP session. tcp_sess integer stat curstat ztcp_fds line match mbegin mend zmodload zsh/net/tcp ztcp read line bfd 09 ztcp_fdsmatch1 tcp_sess sessnames curstat tcp_by_nametcp_sess No TCP session tcp_sess! continue tcp_sess tcp_by_fdfd tcp_sess Aaargh!  Session for fd fd has disappeared! continue +tcp_aliases tcp_aliasesfd tcp_aliasesfd  +functions[tcp_on_unalias]  tcp_on_unalias alias unset tcp_by_name[alias] tcp_aliases[fd] [Ignoring...] ztcp_fdsfd curstat noclose fd Can't close fd fd; will leave open. eval exec fd>&- tcp_by_name[tcp_sess] tcp_by_fd[fd] curstat Session tcp_sess successfully closed. TCP_SESS TCP_SESS  +functions[tcp_on_close]  tcp_on_close stat    A   B     F       +<      F   $     A           @   $ ۤ e   A      F   $         tcp_send return tcp_read TCP_TIMEOUT:0.3    A       f       d қCA       F       <   A   l      1  A.  2      q          A        G      4          -  A      g      4 P      A   $       p        $  T      A       g   p         A                 P  |      A     C            4      A   $   1  A      f   p      A         0
     
     A    C           0     b     A      e    d 	     0X     )     A,  E      <  q     A   `      
  A.  F             A              F   $  =  A      F       A   T    	  1	  A.  J   r     1     A       F   $  U  A      F       A  p      1	  A.  N   r   1     A       F   d  y  A.  P             q  A      F   d    0
          A    C       ی    0          A      e    ۜ A	     0	       	   A.  Y        a	     0	       
   A.  [      	  	     0	         A    C  F       0     ;     A   (              $   
  H
  e
  
  A      F       A   "  d      
      F   
    A       g      <T      A       %        A  P   4  A      &     A    C  0  (  A  i        A,  j      p       A   "  k          k        A           A  l      @  A   \    
  1
  A  n        A   "  o     Y      F   d    A      F       An  r     1  A  r        A.  s             A            1  ۤ }  A.  w        +      A     C  f        A.  z      P  +    A   \    
  1
  A  |        A   "  }         C  F   d    A      F       A           0  u     A   C   "        A4      1  AN     2p    H    r          A,        T  	     A.        $  1     q  A,        T  Y     A.        $       A  d  C"    1  A.     r          A   "           "  F   d  -  A    "  F           emulate setopt extendedglob tSECONDS float typeset TCP_SECONDS_START SECONDS SECONDS local _expect_opt _expect_pvar _expect_state _expect_arg _expect_ind _expect_read_args float _expect_to1 _expect_to_all _expect_to _expect_new_to integer _expect_i _expect_stat _expect_states getopts al:p:P:qs:t:T: _expect_opt OPTARG pP _expect_pvar OPTARG _expect_pvar azAZ_azAZ_09 print invalid parameter name: _expect_pvar return _expect_pvar _expect 0: parameter names staring `_expect' are reserved. _expect_opt eval _expect_pvar=0 _expect_states _expect_pvar= OPTARG OPTARG _expect_to_all ( SECONDS + OPTARG ) Unhandled option _expect_opt, complain  OPTIND > 1  shift ( OPTIND - 1 ) tcp_expect_lines tcp_expect_lines true  _expect_to_all || _expect_to1  _expect_to  _expect_to1   _expect_to = _expect_to1   _expect_to_all   (_expect_new_to = (_expect_to_all - SECONDS)) <= 0  _expect_pvar _expect_pvar=-1  _expect_to <= 0 || _expect_new_to < _expect_to  _expect_to _expect_new_to tcp_read _expect_read_args _expect_to _expect_stat tcp_read _expect_read_args _expect_stat  _expect_stat  _expect_pvar _expect_stat tcp_expect_lines TCP_LINE _expect_i = 1 _expect_i <= # _expect_i++  _expect_states argv_expect_i b:: match1 match2 _expect_i TCP_LINE _expect_arg _expect_pvar _expect_pvar=$_expect_ind    A   ,     G                2# +    ,   A   A        '                  A      \  17  A          A       G              A   P    	  1  A        5  A      F   c+L q  A.        X       A      !  1!  A           $ ۬ +4#A   `      
  A          A       f   <     +4#A  B        m    C  F     + A   "             F   c+L A              F     !  A     C  f   c+4 +4#A      F       A      F       $  A       F   c+L A     C    1  A    C     (  ۬ +4#   A              F     =  A       f   c+4 +4#A      F       A,  "         	     A       G       @      A  D  	    A    	     (  ۬ +4#ۤ @  A.  %         a     A    C
       ۔         local line sess tcp_by_fd1 TCP_HANDLER_ACTIVE sess TCP_INVALIDATE_ZLE  # > 2  TCP_INVALIDATE_ZLE tcp_read  +functions[tcp_on_awol]  tcp_on_awol  ? == 100  return TCP_INVALIDATE_ZLE print [TCP fd fd (session sess) gone awol; removing from poll list] read [Reading on fd failed; removing from poll list] fdfd:line newline line
fdfd:newline line  A       f       d қCA       f       <   X   A              z             A       G            A        A      f   0  Q  zA        p  A  H   P    0	     
      A.                0	          A.  #              0	          A.  &              0	     r     A.  )             0	     r     A      F        0	         A      F   D    0     ;     A              F   `  y  A      F   D    A   "  7            F   D  ]  A     C      A  9       A   X    
  	  A  :        A              F   `    A      F   D    A       f      P  p  A      F   D    A   L      1  A  B        A       F   `    A      F   D    A   X    
  	  A  J        A              F   `    A      F   D    A   T   )    A  O       A        G     <       p  + A    C    1  A  Q   R    A       G            A       G     J      A          0  U     A  4            A            	  &     q  A        G     <       H	  + A  "  \   R  i	            	  &     A      F   D        emulate setopt cbases extendedglob local append sess close integer activity getopts ascnN  activity++  opt append TCP_SILENT unset TCP_SILENT return print 0: option -opt not handled, oops.  OPTIND > 1  shift ( OPTIND - 1) close  #  0: too many arguments for -c TCP_LOG TCP_LOG_SESS  # == 0 && ! activity  Per-session log: TCP_LOG_SESS:-<none>
Overall log:     TCP_LOG:-<none>
Silent?          TCP_SILENT:+yes:-no  # != 1  0: wrong number of arguments sess typeset append sesslogs integer sesslogs TCP_LOG_SESSN i = 1 i <= #sesslogs i++  sesslogsi TCP_LOG append TCP_LOG  A       f       d қCA       f       <   p   A   B    f      L        F        A       f      L    A   $  C     $  ۬H  p        A   (      0  ۬T  t          A   (      <  ۬`            A   B  C      A      g     <3      A   ,        z   <  P  h          A                     A     C  G     $      A   (   "  A      f   8  Y  zA     }    0#     
      A,  M             A  `      
  A.  N             A              F   4  M  A      F        0#     2     A,  S      <       A  `      
  A.  T             A     C         F   4  M  A      F        0
     b     A    C            0	          A.  [             0
          A    C       	     0	          A.  _      P       0	     ;     A    C  F        A   "  e      <	    C  F   p	  	  A   B  g      	      g     <
      A   B  h      9
      g     <
      A     C  g      
      A      z  1K  A  k      
  A   t      1  AV  l   R    +$   R@          A     C         F   4  9  A      F        Ad  p   ,            A.  q              A,  t      `       A   \  C  
  1
  A&  u      R  	  A              F   4  1  A      F        A     C  $      	    A    C  f        A   "  z   r       	       &   ,  An  {     1  A  {      Q  A.  |        =     A  x    ,            A  X     
  	  A     R    A     C          F   4    A       F        .  A     !    1  A6     2@  R    R    A    !    1  A          A     "     +     z3     AD        $  +    8  +    A    "  F   p	  M  A     #    1  A       + A     #       +    A    $  &   p	  q	  A     $            AV       A       	  A        x  A.          !     A   X  &  
  	  A        Y  A     &         F   4  m  A    C'  F        A     (  g       2#     A    C(  {          -  A   X  (  
  	  A       Y  A     (         F   4    A    )  F        A     )  %   4     A     *    1  A         A.        2#      q  A     *    1  A       Y  A  B  +  f   x       +  F        q	  A     +            A  B  +  F   x  %    +  F        A.        2# M     A,        i       A,          +4#   A   "     2@    c+R  	    -     c+4 +4#  A   h .  ,  +  A    .  f      L $  A  8 /  &  %  A        ]  A   C/  !  1!  A    C/  f       +4#A     /    1  A     R    A   T  /  	    A          A    0  f   4  Y    q  A    0  F   4    A    C1  f   `     q  A    1       ی    A,        $       A    2  &     A  x  3      A     R    A  T  4  	    A          A    C4  f   4    Q  q  A    5  F   4  =  A     C6    1  A6     R@  R    R    A  l  6    1  A       U  A   "     R      7  F   4    A     C7  G     <       t    A    C8  F            emulate setopt extendedglob cbases zmodload zsh/net/tcp return zsh/zutil autoload tcp_alias tcp_close tcp_command tcp_expect tcp_fd_handler autoload tcp_log tcp_output tcp_proxy tcp_read tcp_rename tcp_send autoload tcp_sess tcp_spam tcp_talk tcp_wait tcp_point tcp_shoot  +TCP_SECONDS_START  typeset TCP_SECONDS_START local accept fake nozle sessfile sess quiet sessnames sessargs integer stat getopts a:f:l:qs:z opt accept OPTARG accept :digit: print option -a takes a file descriptor OPTARG fake :digit: option -f takes a file descriptor s.,.OPTARG OPTARG  OPTIND > 1  shift ( OPTIND - 1 )  +tcp_by_fd  tcp_by_fd  +tcp_by_name  tcp_by_name sessassoc  #sessnames  accept Incompatible arguments with `-s' option. sessnames sessassocsess sessfile ZDOTDIR:HOME/.ztcp_sessions sessfile No session file: sessfile read sessargs sessargs1 # continue   +sessassoc[sessargs[1]]  sessassocsessargs1 sessargs[2,-1] sessassocsess Couldn't find session sess in sessfile. accept  # < 2  wrong number arguments host port ( # > 1 ? 2 : 1 ) ( #tcp_by_fd + 1 ) tcp_by_namesessnames1  sessnames[1]++  sessassocsessnames1 host port  #  Usage: 0 [-z] [-a fd | -f fd | host port [ session ] ]
       0 [-z] [ -s session | -l sesslist ] ... REPLY sessnames tcp_by_namesess Session `sess' already exists. sessargs accept ztcp accept sessargs sessassocsess sessargs REPLY tcp_by_fdfd sess tcp_by_namesess nozle zsh/parameter  +functions[tcp_on_open]  tcp_on_open quiet  #sessargs  Session sess (host sessargs[1], port sessargs[2] fd fd): tcp_on_open FAILED. Session sess (fd fd) tcp_on_open FAILED. tcp_close tcp_close continue  #sessargs  Session sess (host sessargs[1], port sessargs[2] fd fd) opened OK. Session sess (fd fd) opened OK. TCP_SESS tcp_by_nameTCP_SESS tcp_by_namesessnames1 Setting default TCP session sessnames[1] TCP_SESS sessnames1 stat   A        f       d қCA        F       <   A   ,  C    p   z                     A   @     A      f   (  I  zA     C  q  0	     2      A.  	              0	          A.               0	          A.                0	          A.                0     ;     A   "        q         C         f     ۔   A      F       A   "              F       A   H  C      A       9  A  $    D             ۔  q  A      "  1  A          A  !   
  1  A.  !   r          A.  "      @  a     q  A.  $      x       A   $  	       4       5  i  A|  '     1  A.  '   r     +:   A.  (             A.  +             q  A.  -        q     A   H        A  /     !  A  $    D      E       ۔    A  d   +  1+  A  3   R  q  A       '   p              A     C    1  A&  5         A  \    
             A  "  9   r     !     "  9               C  &   D  A          A  <   R  ]  A   L      1  A  C     u  A       F   c+L A      F       A           ۔        emulate setopt extendedglob local tprompt sess read_fd tpat quiet cursess getopts F:P:qS: opt OPTARG tprompt OPTARG OPTARG print Can't handle option opt return  OPTIND > 1  shift ( OPTIND - 1 ) TCP_LOG_SESS * TCP_LOG_SESS.sess tprompt sess TCP_SESS cursess c:1 cursess c:0 zformat REPLY tprompt s:sess f:read_fd cursess REPLY %REPLY%P REPLY* TCP_LOG TCP_LOG quiet skip tcp_filter vtcp_filter tpat break skip TCP_INVALIDATE_ZLE unset TCP_INVALIDATE_ZLE   A        f       d қCA        f       <   p   A   \    
  1
  A&       +$   A              F         A    C  F       A          (  @  b3#
3#    A   d  C    1  A    C  f   X  d + A              F      m  A      F       A,        b3#     A   h        A      f   X     A     C         F        A      f   X     A,        
3#     A               &   A     C  f   X     A      f   X         emulate setopt extendedglob cbases print Usage: 0 port
Listen on the given port; send anything that arrives to standard output. return local REPLY ztcp Failed to listen on port 1 REPLY lfd Failed to accept on fd lfd afd A     C  G              A   $       P   e   BJr\  p    A   `  C    
  A.        + l    A              F       A      F   0    A       '   L        l  + A       &     A   B    f     d       F   0    A,               A   B              f   + -  A       '             k#+ A     C  &     A  \    N  A      f      e  A     C  f         A      f            local TCP_LISTEN_FD trap [[ -n $TCP_LISTEN_FD ]] && ztcp -c $TCP_LISTEN_FD; return 1 TERM EXIT PIPE print Usage: 0 port [cmd args... ] return integer port shift ztcp port TCP_LISTEN_FD REPLY  #  SHELL:zsh TCP_LISTEN_FD eval cmd $*  <&$REPLY >&$REPLY 2>&$REPLY &   A       f       d қCA       f       <   p   A       f      L    A   <         z     (  @  X  
ccx  Z+c      A     C  g             A       %        A                8      A       G   X  x      A      <  A      f       zA         0	     
      A.  I      
cc     0	          A.  L      @       0	     "     A.  O              0/     b     A    C  ,     x       A,  R      X  E     A   X    
  	  A  S   R    A              F       A    C  F   L    A.  W      i       0	          A.  ]      (       0'          A,  `      X       A   X  C  
  	  A  a   R    A              F     9  A      F   L    A.  e      i       0          A,  i             A  "  j                  F     -  0	          A.  m             0+          A      ,     X       A   `  C    
  A.  q      !  E  	   A              F       A      F   L    A.  u             0     ;  
   A   "  x                       F     u  A    C  F   L    A   $   #    A  ~     	  A           	     Q  A        Y	  A     C       A     R  	  A   "     R  	              F     	  A       F   L    	  A     R  A
  A     C!         F     
  A    !  F   L    A.        )       A     "  g     <      A     #  %        A   L  #  '                 E   P     E   d     E   x     E        A     #  G           A   l  C$    1  A.               A      $  G     4       (  q  A    C%  g     4       A\       1  A          A          A     '  f      L t  A     '    1  A         A    '      A          A  B  C(       ۤ   i    (  F   L      A  B  )  F     i    )  F   L    A   x *  G  A          A    C*  9  1  A         A    *  F   4  @  3  A   t  C+    1  A          A   "        L    +  F   L    A^       1  A          A        |  A   ,  "    A          A   @  -      A         A    C-         F     A  A  B  -     ,  ۤ M  i    .  F   L      A   @  .      A         A    .         F       A  B  C/       ۤ   i    C/  F   L    A   @  0      A         A    C0         F     9  A  4 0  E     X       A   t  1    1  A    1       ۬   ۔   A     C1  F   4  =  A,        x       A    1  &     A,               A,        x       A,          A     A     3      A          A  |  5       Z+c     A  X  C5  
  	  A.     r     5     A  B  5  f   U  i              ی    A   0  6  F    ۄ   ۜ 5  4 M  q     A     7            A   ,  7  G     <              @  q  A  "     R      8  F   L    A    9  F   L        emulate setopt extendedglob cbases zmodload zsh/mathfunc local drain line quiet block read_fd sess noprint read_fds float timeout timeout_all endtime integer stat getopts abdl:qs:t:T:u: opt s.,.OPTARG tcp_by_namesess read_fd print 0: no such session: sess return read_fdsread_fd tcp_by_nameOPTARG read_fd 0: no such session: sess timeout OPTARG TCP_READ_DEBUG Timeout per-operations is timeout OPTARG s.,.OPTARG read_fd 0x:xdigit::digit: Bad fd in OPTARG read_fds(read_fd) Unhandled option, complain: opt all kvtcp_by_fd  ! #read_fds  TCP_SESS quiet No tcp connection open. tcp_by_nameTCP_SESS TCP session TCP_SESS has gorn! read_fdstcp_by_nameTCP_SESS typeset tcp_lines tcp_lines helper_stat skip tpat reply REPLY newtimeout tSECONDS float TCP_SECONDS_START SECONDS SECONDS  timeout_all   endtime = SECONDS + timeout_all  zsh/zselect block zselect ( int(100*timeout_all + 0.5) ) kread_fds helper_stat zselect  #read_fds  unset  (newtimeout = endtime - SECONDS) <= 0   ! timeout || newtimeout < timeout   timeout = newtimeout   timeout  TCP_READ_DEBUG [tcp_read: selecting timeout timeout on (k)read_fds] zselect ( int(timeout*100 + 0.5) ) TCP_READ_DEBUG [tcp_read: selecting no timeout on (k)read_fds] zselect TCP_READ_DEBUG [tcp_read: returned fds reply] reply2,1 read read_fd read_fds[read_fd] continue helper_stat tcp_by_fdread_fd TCP_SILENT:+q  +tcp_on_read  kvtcp_on_read line val key sess line tcp_output TCP_PROMPT=<-[%s]  sess read_fd noprint line tcp_lines REPLY TCP_LINE REPLY TCP_LINE_FD read_fd drain stat A     C  g       zc#r+    A         1  A           A,        zc#A      A.  	      r++    Q  A  
      i   A,        zc#+    A.        r++      A              F         A      F        A       '             2#   A   X    
  	  A     R  +4#A              F      a  A    C  F        A   X    
  	  A         A              F        A    C  F        A   `      
  A.                A     C         F        A      F        A,  !      u  +4#   A       F       A,  $      %  a     A   "  &   r   u         &        a     A  l  
    1  A    
  f     L   A  <  C
    1  A  )        A    
       a  +4#      local  # == 1  TCP_SESS  # == 2  print Usage: 0 OLD NEW return tcp_by_nameold No such session: old tcp_by_namenew Session new already exists. tcp_by_fdfd old Use tcp_alias to redefine an alias. tcp_by_namenew unset tcp_by_name[old] tcp_by_fdfd new TCP_SESS TCP_SESS zmodload zsh/parameter  +functions[tcp_on_rename]  tcp_on_rename A        f       d қCA        f       <   p   A   0  C  '     z   
cc   2#           A                0      A       G   X  x      A   t C  &  A    C  f       zA  H       0	     
      A.        
cc     0	          A.             0	     r     A.          t    0	          A.                0*     b     A                   A   X    
  	  A     R  ]  A     C         F       A      F   @    A         \       0"          A   X    
  	  A     R    A              F       A    C  F   @    A         \       0     ;     A   "  !             C         F       A      F   @    A   "  &      ,    	  F   `  y  A   h  
      A  (       A    C
              A  *      A  A    
            A   |  C    1  A  -        A   @        A  .   R    A             F     )  A    C  F   @    A       G            A     C  f       8  A       G      L      A   x C  '  A    C  &   p  A   d        A  >       A  B    f     ۔        &     q  A.  A              A      7     L       A,  D      2# 	     A   l  C    1  A  E   R  +4#A              F     i	  A,  G      x       A      &   	  A   $         ۬ +4#
  ۔  -
  A         1  A>  K   RP    +     E
  A              F     
  A     C  F      8  A,  N      x       A      &   p  A  P  C  	    A  Q       A  ,    &    ۄ   ۜ )  4 +4#ی Q  A  "  U   R      C  &     A      F   @        emulate setopt extendedglob cbases local quiet sess nonewline line sessions write_fds integer mystat getopts acl:nqs: opt nonewline s.,.OPTARG tcp_by_namesess print 0: no such session: sess return sessions sess tcp_by_nameOPTARG No such session: OPTARG sessions OPTARG Unhandled option, complain: opt  OPTIND > 1  shift ( OPTIND - 1 ) all sessions ktcp_by_name  ! #sessions  sessions TCP_SESS  ! #sessions  quiet No current TCP session open. TCP_FD_CLOSED trap TCP_FD_CLOSED=1 PIPE TCP_SESS true cat read break * sessions tcp_by_nameTCP_SESS No such session: TCP_SESS continue nonewline line TCP_FD_CLOSED Session TCP_SESS: fd fd unusable. unset TCP_FD_CLOSED continue TCP_OUTPUT tcp_output TCP_OUTPUT TCP_SESS (j. .)* mystat    A        '                   A   t C  -  1-  A       + A  P   )  	  A     R  =   A             r{       + A.                Q  A  	     + A       '              + A       &   (  A       '            @  + A     C  &   (  A       f   X  m    A      &     q  A      C  G     <         + A      F       A               2#     A     C              A,        2# 9     A      
  1  A.      r           A.  !           q  A.  #            A    C	        ۬     A    
  F     q      integer __myfd tcp_by_name1 print such session: __myfd local TCP_SESS shift __cmd eval __cmd $* return typeset name kotcp_by_name tcp_by_namename TCP_SESS name  * __myfd sess:name; fd:fdcur ( __myfd - 1 )   A        f       d қCA        F       <   A     C  g   p      3#    A   \    
  1
  A&       +$   A              F         A      F       A   d  C    1  A    C  f     + + A              F      %  A      F       A,        3#     A              &   A      f            emulate setopt extendedglob local REPLY print Usage: 0 host port
Connect to the given host and port; send standard input. return ztcp Failed to open connection to host 1 port 2 REPLY tfd A       f       d қCA       F       <   A   (  C  '   p               E         A   4    G  p      k#z  4  T  x  
cc      A           p               A       g   p          A        A      f   4  U  zA     k  }  0	     
      A.         
cc     0	     *     A.  "             0
     b     A    	            0	          A.  &      4       0
          A    
            0	          A.  *      x  ۤ    0	          A.  ,             0!     ;     A   "  .      }                F   8  Q  A              F   8    A      F       A   "  4      ,      F   `  y  A       G   p         A           A  7       A                Q  A  9      Y  A   X    
    A  :        A                  A    C     L       A  X    
  	  A  ?      q  A  4                A    C       A     A         1  A  F       A       G   p   k    A       G     J      A  I   
      8  A,  J      kM     A,  K             A.  L        -	     A   X    
  	  A  P      Y  A     C         F   8  A	  A      F       A   X    
  	  A  T      	  A     C         F   8  	  A      F       A   t  C    1  A  Y     
  A.  Z      k#@
       A  [   R  e
  A,  \      k#+    A    C  &   `  A       F     }
  A     ,7           
  A,  c              A   h        A  d      
  A     C     p      +< A  "  f   r       	       &     A         1  A  h     1  A  i   
  1  A.  i   r   U  }  
   A.  j             q  A.  l             A  "$         4   1  a          f   8  ۔   A  T  C  	  1  A  q     e
  A      F     +<   A      f       5      emulate setopt extendedglob local cursess TCP_SESS sessstr TCP_SESS verbose reverse sesslist transmit eval match mbegin mend REPLY sessions getopts ael:rtv opt sessions s.,.OPTARG sessions OPTARG print Option opt not handled. Sorry, spam's off. return  OPTIND > 1  shift ( OPTIND - 1 ) name all sessions kotcp_by_name  ! #sessions   #tcp_spam_list  sessions tcp_spam_list sessions  #tcp_no_spam_list  tcp_no_spam_list sessions sessions:name reverse integer i = 1 i <= #sessions/2 i++  sessionsi sessionsi sessionsi sessionsi tmp No connections to spam.  ! #  No commands given. transmit tcp_send eval TCP_PROMPT:T%s: sessions  +functions[tcp_on_spam]  tcp_on_spam TCP_SESS cmd REPLY done continue verbose TCP_SESS cursess sessstr c:1 sessstr c:0 zformat TCP_PROMPT s:TCP_SESS f:tcp_by_name[TCP_SESS] sessstr $*   A     C  F        A    k     Y   .        A        f       d қCA        F       <   A          p                A  T   )  "  A.     r             A           A     R    A,                A     C     c+     A,  
      1     A       F   h    A       F   c+L A    C         F       q  A.        `       A    C  F   c+}  q  A     C  F       A.                    A,  ,             A  -   	  1  A  -     8  A.  .      m     q  A.  0           A       f   c+t -  A         c+         TCP_TALK_ESCAPE:: tcpacceptlineorexit emulate setopt extendedglob local match mbegin mend BUFFER TCP_TALK_ESCAPE:blank:b match1 BUFFER .acceptline acceptline TCP_SAVE_PS1 unset TCP_SAVE_PS1 print \r[Normal keyboard input restored] BUFFER .acceptline tcp_send BUFFER BUFFER TCP_SAVE_PS1 PS1[T] prompt_subst T[$TCP_SESS]TCP_SAVE_PS1 [T]TCP_SAVE_PS1 tcpacceptlineorexit tcpacceptlineorexit acceptline  A   l  C    1  A.           9       A        G   T   4       t      A    C  g   T   4        A       g   T   { *s#    A          A   H      A        x  A             ۤ +{A          A      &   0      tSECONDS float typeset TCP_SECONDS_START SECONDS SECONDS  to = 1, end = SECONDS + to   SECONDS < end  tcp_read  to = end - SECONDS  return  4 5.8.1                                            	      debian/zsh-common//usr/share/zsh/functions/TCP/tcp_alias     ;       	      debian/zsh-common//usr/share/zsh/functions/TCP/tcp_close               h      debian/zsh-common//usr/share/zsh/functions/TCP/tcp_command           (      debian/zsh-common//usr/share/zsh/functions/TCP/tcp_expect     E        p      debian/zsh-common//usr/share/zsh/functions/TCP/tcp_fd_handler                  debian/zsh-common//usr/share/zsh/functions/TCP/tcp_log    _     
        debian/zsh-common//usr/share/zsh/functions/TCP/tcp_open        	        debian/zsh-common//usr/share/zsh/functions/TCP/tcp_output             (      debian/zsh-common//usr/share/zsh/functions/TCP/tcp_point     N             debian/zsh-common//usr/share/zsh/functions/TCP/tcp_proxy       x           debian/zsh-common//usr/share/zsh/functions/TCP/tcp_read          8      debian/zsh-common//usr/share/zsh/functions/TCP/tcp_rename       
a     8      debian/zsh-common//usr/share/zsh/functions/TCP/tcp_send                 debian/zsh-common//usr/share/zsh/functions/TCP/tcp_sess   !  @      |      debian/zsh-common//usr/share/zsh/functions/TCP/tcp_shoot   !  "&             debian/zsh-common//usr/share/zsh/functions/TCP/tcp_spam   %  c            debian/zsh-common//usr/share/zsh/functions/TCP/tcp_talk   &%             debian/zsh-common//usr/share/zsh/functions/TCP/tcp_wait    A    C   f     dC   A       f       <   p   A  @       z               ;
    4  P #2  d       A    C   g  |           A      
  A       f    z  A    	      	0           .A   %             	0     "     .A   '            	0     ;     A    
C   F  ,     A  "   -     H    C   F  |     A        1  A   /        A          A   0       A  \  C  
    #2        A  A  8    ,             A                A       F  ,     A t       ;
    <+  A T      1  .A   <   r          A  l  C    1  A   =    %   A              F    E  ,A   ?            A       &    ,A   B             ,A   C        5      A  |      1  A   D  R  ]   A  "   F  R  u              F      ,A   G            A       &     A          >A   J  PR  r  A    R     A  "   K  R  u       F      ,A   L            A    C   &  |   A     1  11  A   O      ,A   Q    #2        A         d       A <    &  1  A   S    	Q   A    C   F  	  	  ,A   V       
      A      %  d  
a  
     A  P    	  1  A   X  R    A    C   F  	  )  q  .A   [     u          A  @        A   _  R  u  A              F      ,A   b            A       &     A  "   f            g  <        ,A   g    #2       A   h  	  1  A   h    M  .A   i   E  u       q  .A   k     u       ,A   m     #4+     A  h        A       f  0 L  T  A  8        A   o       A       f    #4+  W  ,A   t             ,A   u    #2        A  l      1  A   v  R#4+   A              F    9  ,A   x            A    C   &     A         d       A   C  =  .1  A   }      A X    *  %1  A       %   A        F  	  	  ,A          E      A       %  d          A  P     	  1  A     R  9  A    !   F  	  ]  q  .A        u       A  h  "C      A    "C   f  0 L  T  A  8  "      A          A    "   f  L  #4+  q  A    #               A  @  %      A     R  u  A    %C          F      ,A               A    &   &    A    'C   F  ,  9    emulate setopt extendedglob cbases local quiet base value alias delete match mbegin mend array integer stat index getopts qd opt delete return  OPTIND > 1  shift ( OPTIND - 1 )  ! #   #tcp_aliases  kvtcp_aliases value print alias: alias for session tcp_by_fd[fd]:-unnamed fd fd arg b delete 0: value given with deletion command. continue match1 match2 base quiet 0: empty value for alias alias continue +tcp_by_name tcp_by_namebase 0: no base session `base' for alias continue tcp_by_namealias tcp_aliasesfd arrayralias unset tcp_by_name[alias] arrayialias array1,index1 arrayindex+1,1 array tcp_aliases[fd] tcp_aliasesfd array 0: `alias' is already a session name. continue  ! +tcp_aliases  typeset tcp_aliases tcp_aliasesfd  alias alias tcp_by_namealias zmodload zsh/parameter  +functions[tcp_on_alias]  tcp_on_alias 0: no such alias `alias' continue arrayralias delete arrayialias array1,index1 arrayindex+1,1 array tcp_aliases[fd] array  +functions[tcp_on_unalias]  tcp_on_unalias alias: alias for session tcp_by_fd[fd]:-unnamed fd fd 0: `alias' is a session name. continue stat    A       f     dC   A       f       <   p   A  $  C      cc
   z             A       g              A 0      A       f    =z  A   C  ?  e  	0     
      .A      cc
       	0          .A                
0     b     A            y     	0     r     .A                
0          A                 	0     ;     A       F       A  "   !         C   F  (  A   A          A   #       A  X  	  
  	  A   $        A    	C          F      A    	   F       A    
        u     A  h  
C      A   )        A  "   *  R      
          F    !  A    
   F       A           <+      A  8  C      A   1       A                  A  h  C      A   5        A  "   6  R                F    9  A       F       A       g      #2       A       g             A       g             A             <  P  h         A          A       f   ,    A  p        &        A       F     <  ~A   D    1  .A   D   r    -     .A   E     y        A                 ,A   K            ,A   L    #2  9      A  l  C    1  A   M  R#4+   A              F      ,A   O            A       &  	  ,A   S     	4  	Y      A          A   T  R  	   A  @  C      A   U  R    A              F    	  ,A   X            A    C   &  
   A        1  >A   \  P2    
      
   A  p  C  ,           9   A  8        A   ^       A       f    I#4+  A    C   F  d  }  A       F  d     A  X    
  	  A   g  +c  A  B     f+c 4#4+              F    !   A        1  A   k    a  A  X  C  
  	  A    C   f   #4+  ,A   n            .A   o            Q  A   q  R    A  p      	1  &A   t        A  "   u  R      C          F      q  A       F       A       F  d     A       F  d  I   A  D  C    1  >A   }  P2  R    r      A       F       A  "      r  	  U           F  d  |  A  8         A          A        f    	#4+  A    !   F    M    emulate setopt extendedglob cbases local quiet alias noclose sessnames getopts aql:ns: opt s.,.OPTARG OPTARG return  OPTIND > 1  shift ( OPTIND - 1) all  #  print Usage: 0 [ -q ] [ -a | [ session ... ] ] ktcp_by_name  ! #sessnames  quiet No TCP sessions open.  ! #sessnames  TCP_SESS  ! #sessnames  No current TCP session. tcp_sess integer stat curstat ztcp_fds line match mbegin mend zmodload zsh/net/tcp ztcp read line bfd 09 ztcp_fdsmatch1 tcp_sess sessnames curstat tcp_by_nametcp_sess No TCP session tcp_sess! continue tcp_sess tcp_by_fdfd tcp_sess Aaargh!  Session for fd fd has disappeared! continue +tcp_aliases tcp_aliasesfd tcp_aliasesfd  +functions[tcp_on_unalias]  tcp_on_unalias alias unset tcp_by_name[alias] tcp_aliases[fd] [Ignoring...] ztcp_fdsfd curstat noclose fd Can't close fd fd; will leave open. eval exec fd>&- tcp_by_name[tcp_sess] tcp_by_fd[fd] curstat Session tcp_sess successfully closed. TCP_SESS TCP_SESS  +functions[tcp_on_close]  tcp_on_close stat       A  B      F     <+        F   $     A           @ $    e  A       F   $      tcp_send return tcp_read TCP_TIMEOUT:0.3       A       f     dC   A       F       <   A  l      1  .A   2      q          A        G    4           -  A       g    4  P       A  $       p        $  T       A       g  p          A                P  |       A    C            4       A $    1  A       f  p      A         
0     
     A    C           0     b     A      e   d  	     X0     )     ,A   E     <  q      A  `      
  .A   F             A              F  $  =  A       F       A  T    	  	1  .A   J   r    1      A       F  $  U  A       F      A  p      	1  .A   N   r  1      A       F  d  y  .A   P            q  A       F  d    
0          A    C           0          A      e     	A     	0        	  .A   Y       	a     	0        
  .A   [     	  	     	0         A    C   F      0     ;      A  (              $  
   
H  
e  
  A       F       A  "   d     
       F  
     A       g   <  T       A       %       A P    4  A       &     A   C  0  (  A   i       ,A   j     p        A  "   k          k        A          A   l     @   A  \    
  
1  A   n        A  "   o    Y       F  d    A       F      nA   r    1  A   r       .A   s             A           1   }  .A   w      +        A    C   f       .A   z     P +      A  \    
  
1  A   |        A  "   }        C   F  d    A       F       A          0  u     A    C  "       4A       1  NA     p2    H     r         ,A        T  	     .A        $  1     q  ,A        T  Y     .A        $       A  d  "C    1  .A      r          A  "           "   F  d  -  A    "   F        emulate setopt extendedglob tSECONDS float typeset TCP_SECONDS_START SECONDS SECONDS local _expect_opt _expect_pvar _expect_state _expect_arg _expect_ind _expect_read_args float _expect_to1 _expect_to_all _expect_to _expect_new_to integer _expect_i _expect_stat _expect_states getopts al:p:P:qs:t:T: _expect_opt OPTARG pP _expect_pvar OPTARG _expect_pvar azAZ_azAZ_09 print invalid parameter name: _expect_pvar return _expect_pvar _expect 0: parameter names staring `_expect' are reserved. _expect_opt eval _expect_pvar=0 _expect_states _expect_pvar= OPTARG OPTARG _expect_to_all ( SECONDS + OPTARG ) Unhandled option _expect_opt, complain  OPTIND > 1  shift ( OPTIND - 1 ) tcp_expect_lines tcp_expect_lines true  _expect_to_all || _expect_to1  _expect_to  _expect_to1   _expect_to = _expect_to1   _expect_to_all   (_expect_new_to = (_expect_to_all - SECONDS)) <= 0  _expect_pvar _expect_pvar=-1  _expect_to <= 0 || _expect_new_to < _expect_to  _expect_to _expect_new_to tcp_read _expect_read_args _expect_to _expect_stat tcp_read _expect_read_args _expect_stat  _expect_stat  _expect_pvar _expect_stat tcp_expect_lines TCP_LINE _expect_i = 1 _expect_i <= # _expect_i++  _expect_states argv_expect_i b:: match1 match2 _expect_i TCP_LINE _expect_arg _expect_pvar _expect_pvar=$_expect_ind       A  ,      G              #2 +      ,   A   A        '                  A     \  71  A           A       G              A  P    	  1  A        5  A       F+c L  q  .A        X        A     !  !1  A          $ #4+   A  `      
  A           A       f  <   #4+  A  B        m    C   F   +   A  "              F+c L   A              F    !   A    C   f+c 4#4+  A       F      A       F      $   A       F+c L   A    C    1  A    C     ( #4+      A              F    =   A       f+c 4#4+  A       F      ,A   "        	      A       G      @      A  D  	    A    	     ( #4+   @  .A   %        a     A    
C              local line sess tcp_by_fd1 TCP_HANDLER_ACTIVE sess TCP_INVALIDATE_ZLE  # > 2  TCP_INVALIDATE_ZLE tcp_read  +functions[tcp_on_awol]  tcp_on_awol  ? == 100  return TCP_INVALIDATE_ZLE print [TCP fd fd (session sess) gone awol; removing from poll list] read [Reading on fd failed; removing from poll list] fdfd:line newline line
fdfd:newline line     A       f     dC   A       f       <   X   A           z                A       G            A       A       f  0  Qz  A        p  A H    P    	0     
      .A                	0          .A   #             	0          .A   &             	0     r     .A   )            	0     r     A       F       	0         A       F  D    0     ;      A              F  `  y  A       F  D     A  "   7            F  D  ]   A    C      A   9       A  X    
  	  A   :        A              F  `    A       F  D     A       f     P  p  A       F  D     A  L      1  A   B        A       F  `    A       F  D     A  X    
  	  A   J        A              F  `    A       F  D     A T    )    A   O       A        G   <        p +  A    C    1  A   Q  R     A       G            A       G    J       A         0  U     A  4            A            	   &    q   A        G   <        	H +  A  "   \  R  	i            	   &    A       F  D      emulate setopt cbases extendedglob local append sess close integer activity getopts ascnN  activity++  opt append TCP_SILENT unset TCP_SILENT return print 0: option -opt not handled, oops.  OPTIND > 1  shift ( OPTIND - 1) close  #  0: too many arguments for -c TCP_LOG TCP_LOG_SESS  # == 0 && ! activity  Per-session log: TCP_LOG_SESS:-<none>
Overall log:     TCP_LOG:-<none>
Silent?          TCP_SILENT:+yes:-no  # != 1  0: wrong number of arguments sess typeset append sesslogs integer sesslogs TCP_LOG_SESSN i = 1 i <= #sesslogs i++  sesslogsi TCP_LOG append TCP_LOG     A       f     dC   A       f       <   p   A  B     f    L          F        A       f    L      A  $  C     $Ҭ  H  p         A  (      0Ҭ  T  t           A  (      <Ҭ  `             A  B   C     A       g  3<         A  ,      z     <  P  h           A                     A    C   G    $       A (    "  A       f  8  Yz  A     }    #0     
      ,A   M            A  `      
  .A   N             A              F  4  M  A       F       #0     2     ,A   S     <       A  `      
  .A   T             A    C          F  4  M  A       F       
0     b     A    C            	0          .A   [            
0          A    C       	     	0          .A   _     P       	0     ;     A    C   F        A  "   e     	<    C   F  	p  	   A  B   g     	       g  <  
       A  B   h     
9       g  <  
       A    C   g     
       A     z  K1  A   k     
   A  t      1  VA   l  R   $+    @R           A    C          F  4  9  A       F       dA   p  ,            .A   q             ,A   t     `        A  \  C  
  
1  &A   u     R  	   A              F  4  1  A       F        A    C  $      	    A    C   f        A  "   z   r       	       &  ,  nA   {    1  A   {     Q  .A   |       =     A  x    ,            A  X     
  	  A     R     A     C          F  4    A        F       .   A    !    1  6A     @2  R    R    A    !    1  A          A     "   +      3z      DA        $ +     8 +     A    "   F  	p  M   A    #    1  A      +   A    #      +     A    $   &  	p  	q   A    $            VA       A       	  A        x  .A          !      A  X  &  
  	  A        Y   A    &          F  4  m  A    'C   F        A    (   g     #2       A   (C  {          -   A  X  (  
  	  A       Y   A    (          F  4    A    )   F        A    )   %  4      A    *    1  A         .A       #2       q   A    *    1  A       Y  A  B  +   f  x       +   F       	q   A    +            A  B  +   F  x  %    +   F       .A       #2  M     ,A        i       ,A        #4+      A  "     @2  +c  R  	    -   +c 4#4+     A h  .  ,  +  A    .   f    L  $  A 8  /  &  %  A        ]  A   /C  !  !1  A    /C   f    #4+   A    /    1  A     R     A  T  /  	    A          A    0   f  4  Y    q  A    0   F  4    A    1C   f  `     q  A    1           ,A        $       A    2   &    A  x  3      A     R    A  T  4  	    A          A    4C   f  4    Q  q  A    5   F  4  =   A    6C    1  6A     @R  R    R    A  l  6    1  A       U   A  "     R      7   F  4    A     7C   G   <        t    A    8C   F         emulate setopt extendedglob cbases zmodload zsh/net/tcp return zsh/zutil autoload tcp_alias tcp_close tcp_command tcp_expect tcp_fd_handler autoload tcp_log tcp_output tcp_proxy tcp_read tcp_rename tcp_send autoload tcp_sess tcp_spam tcp_talk tcp_wait tcp_point tcp_shoot  +TCP_SECONDS_START  typeset TCP_SECONDS_START local accept fake nozle sessfile sess quiet sessnames sessargs integer stat getopts a:f:l:qs:z opt accept OPTARG accept :digit: print option -a takes a file descriptor OPTARG fake :digit: option -f takes a file descriptor s.,.OPTARG OPTARG  OPTIND > 1  shift ( OPTIND - 1 )  +tcp_by_fd  tcp_by_fd  +tcp_by_name  tcp_by_name sessassoc  #sessnames  accept Incompatible arguments with `-s' option. sessnames sessassocsess sessfile ZDOTDIR:HOME/.ztcp_sessions sessfile No session file: sessfile read sessargs sessargs1 # continue   +sessassoc[sessargs[1]]  sessassocsessargs1 sessargs[2,-1] sessassocsess Couldn't find session sess in sessfile. accept  # < 2  wrong number arguments host port ( # > 1 ? 2 : 1 ) ( #tcp_by_fd + 1 ) tcp_by_namesessnames1  sessnames[1]++  sessassocsessnames1 host port  #  Usage: 0 [-z] [-a fd | -f fd | host port [ session ] ]
       0 [-z] [ -s session | -l sesslist ] ... REPLY sessnames tcp_by_namesess Session `sess' already exists. sessargs accept ztcp accept sessargs sessassocsess sessargs REPLY tcp_by_fdfd sess tcp_by_namesess nozle zsh/parameter  +functions[tcp_on_open]  tcp_on_open quiet  #sessargs  Session sess (host sessargs[1], port sessargs[2] fd fd): tcp_on_open FAILED. Session sess (fd fd) tcp_on_open FAILED. tcp_close tcp_close continue  #sessargs  Session sess (host sessargs[1], port sessargs[2] fd fd) opened OK. Session sess (fd fd) opened OK. TCP_SESS tcp_by_nameTCP_SESS tcp_by_namesessnames1 Setting default TCP session sessnames[1] TCP_SESS sessnames1 stat      A        f     dC   A        F       <   A  ,  C     pz                        A @      A       f  (  Iz  A     C  q  	0     2      .A   	             	0          .A               	0          .A                	0          .A                0     ;      A  "        q         C          f       A       F       A  "               F       A  H  C      A       9  A  $     D              q   A     "  1  A          A   !  
  1  .A   !   r         .A   "     @  a     q  .A   $     x        A  $  	      4        5  i  |A   '    1  .A   '   r  :+     .A   (            .A   +            q  .A   -       q      A  H        A   /    !  A  $     D     E           A d    +  +1  A   3  R  q   A       '   p              A    C    1  &A   5        A  \    
             A  "   9   r    !     "   9              C   &  D  A          A   <  R  ]   A  L      1  A   C    u   A       F+c L  A       F      A                 emulate setopt extendedglob local tprompt sess read_fd tpat quiet cursess getopts F:P:qS: opt OPTARG tprompt OPTARG OPTARG print Can't handle option opt return  OPTIND > 1  shift ( OPTIND - 1 ) TCP_LOG_SESS * TCP_LOG_SESS.sess tprompt sess TCP_SESS cursess c:1 cursess c:0 zformat REPLY tprompt s:sess f:read_fd cursess REPLY %REPLY%P REPLY* TCP_LOG TCP_LOG quiet skip tcp_filter vtcp_filter tpat break skip TCP_INVALIDATE_ZLE unset TCP_INVALIDATE_ZLE      A        f     dC   A        f       <   p   A  \    
  
1  &A      $+     A              F        A    C   F       A         (  @#3b#3
       A  d  C    1  A    C   f  X d +   A              F     m  A       F      ,A      #3b        A  h        A       f  X      A    C          F       A       f  X     ,A      #3
        A               &   A    C   f  X     A       f  X       emulate setopt extendedglob cbases print Usage: 0 port
Listen on the given port; send anything that arrives to standard output. return local REPLY ztcp Failed to listen on port 1 REPLY lfd Failed to accept on fd lfd afd    A    C   G              A  $        P   eBrJ  \  p     A  `  C    
  .A       +l       A              F      A       F  0     A       '  L        l +   A       &     A  B     f   d         F  0    ,A                A  B               f+   -   A       '          #k +   A    C   &    A  \    N  A       f     e   A    C   f        A       f         local TCP_LISTEN_FD trap [[ -n $TCP_LISTEN_FD ]] && ztcp -c $TCP_LISTEN_FD; return 1 TERM EXIT PIPE print Usage: 0 port [cmd args... ] return integer port shift ztcp port TCP_LISTEN_FD REPLY  #  SHELL:zsh TCP_LISTEN_FD eval cmd $*  <&$REPLY >&$REPLY 2>&$REPLY &      A       f     dC   A       f       <   p   A       f    L      A  <       z       (  @  Xcc
  x+Zc         A    C   g             A       %        A               8       A       G  X  x       A     <  A       f    z  A         	0     
      .A   I   cc
       	0          .A   L     @       	0     "     .A   O             /0     b     A    C  ,     x       ,A   R     X  E      A  X    
  	  A   S  R     A              F      A    C   F  L    .A   W     i       	0          .A   ]     (       '0          ,A   `     X        A  X  C  
  	  A   a  R     A              F    9  A       F  L    .A   e     i       0          ,A   i            A  "   j                  F    -  	0          .A   m            +0          A      ,     X        A  `  C    
  .A   q     !  E   	   A              F      A       F  L    .A   u            0     ;   
   A  "   x                       F    u  A    C   F  L     A $    #    A   ~    	  A           	     Q  A        	Y   A     C      A     R  	   A  "     R  	               F    	  A        F  L    	  A     R  
A   A    !C          F    
  A    !   F  L    .A        )        A    "   g  <         A    #   %        A  L  #   '                 E  P      E  d      E  x      E        A    #   G           A  l  $C    1  .A                A     $   G   4        (  q  A    %C   g   4        \A       1  A          A           A    '   f    L  t   A    '    1  A         A    '      A          A  B  (C          i    (   F  L      A  B  )   F    i    )   F  L     A x  *  G  A           A   *C  9  1  A         A    *   F  4  @  3   A  t  +C    1  A           A  "        L    +   F  L    ^A       1  A          A        |  A   ,  "    A           A  @  -      A         A    -C          F    A  A  B  -     ,   M  i    .   F  L       A  @  .      A         A    .          F      A  B  /C          i    /C   F  L     A  @  0      A         A    0C          F    9  A 4  0  E     X        A  t  1    1  A    1              A    1C   F  4  =  ,A        x       A    1   &    ,A               ,A        x       ,A          A      A    3      A          A  |  5     +Zc       A  X  5C  
  	  .A      r    5     A  B  5   f  U  i                   A  0  6  F        5 4  M  q      A    7             A  ,  7   G   <               @  q  A  "     R      8   F  L    A    9   F  L      emulate setopt extendedglob cbases zmodload zsh/mathfunc local drain line quiet block read_fd sess noprint read_fds float timeout timeout_all endtime integer stat getopts abdl:qs:t:T:u: opt s.,.OPTARG tcp_by_namesess read_fd print 0: no such session: sess return read_fdsread_fd tcp_by_nameOPTARG read_fd 0: no such session: sess timeout OPTARG TCP_READ_DEBUG Timeout per-operations is timeout OPTARG s.,.OPTARG read_fd 0x:xdigit::digit: Bad fd in OPTARG read_fds(read_fd) Unhandled option, complain: opt all kvtcp_by_fd  ! #read_fds  TCP_SESS quiet No tcp connection open. tcp_by_nameTCP_SESS TCP session TCP_SESS has gorn! read_fdstcp_by_nameTCP_SESS typeset tcp_lines tcp_lines helper_stat skip tpat reply REPLY newtimeout tSECONDS float TCP_SECONDS_START SECONDS SECONDS  timeout_all   endtime = SECONDS + timeout_all  zsh/zselect block zselect ( int(100*timeout_all + 0.5) ) kread_fds helper_stat zselect  #read_fds  unset  (newtimeout = endtime - SECONDS) <= 0   ! timeout || newtimeout < timeout   timeout = newtimeout   timeout  TCP_READ_DEBUG [tcp_read: selecting timeout timeout on (k)read_fds] zselect ( int(timeout*100 + 0.5) ) TCP_READ_DEBUG [tcp_read: selecting no timeout on (k)read_fds] zselect TCP_READ_DEBUG [tcp_read: returned fds reply] reply2,1 read read_fd read_fds[read_fd] continue helper_stat tcp_by_fdread_fd TCP_SILENT:+q  +tcp_on_read  kvtcp_on_read line val key sess line tcp_output TCP_PROMPT=<-[%s]  sess read_fd noprint line tcp_lines REPLY TCP_LINE REPLY TCP_LINE_FD read_fd drain stat    A    C   g    #cz+r       A        1  A           ,A      #cz   A     .A   	   +r +     Q  A   
      i  ,A      #cz +     .A      +r +        A              F        A       F        A       '           #2     A  X    
  	  A     R#4+   A              F     a  A    C   F        A  X    
  	  A          A              F       A    C   F        A  `      
  .A                 A    C          F       A       F       ,A   !     u#4+      A       F      ,A   $     %  a      A  "   &   r  u          &       a     A  l  
    1  A    
   f   L    A  <  
C    1  A   )       A    
       a#4+      local  # == 1  TCP_SESS  # == 2  print Usage: 0 OLD NEW return tcp_by_nameold No such session: old tcp_by_namenew Session new already exists. tcp_by_fdfd old Use tcp_alias to redefine an alias. tcp_by_namenew unset tcp_by_name[old] tcp_by_fdfd new TCP_SESS TCP_SESS zmodload zsh/parameter  +functions[tcp_on_rename]  tcp_on_rename    A        f     dC   A        f       <   p   A  0  C  '   z   cc
    #2             A               0       A       G  X  x       A t  C  &  A    C   f    z  A H        	0     
      .A      cc
       	0          .A             	0     r     .A         t     	0          .A                *0     b     A                    A  X    
  	  A     R  ]   A    C          F      A       F  @    A         \       "0           A  X    
  	  A     R     A              F      A    C   F  @    A         \       0     ;      A  "   !            C          F      A       F  @     A  "   &     ,    	   F  `  y   A  h  
      A   (      A    
C              A   *     A  A    
             A  |  C    1  A   -        A  @        A   .  R    A              F    )  A    C   F  @     A       G            A    C   f      8   A       G     L       A x  C  '  A    C   &  p   A  d        A   >      A  B     f             &    q  .A   A              A     7     L       ,A   D    #2  	      A  l  C    1  A   E  R#4+   A              F    	i  ,A   G     x       A       &  	   A  $        #4+  
    
-   A        1  >A   K  PR   +      
E   A              F    
   A    C   F     8  ,A   N     x       A       &  p  A  P  C  	    A   Q      A  ,    &        ) 4#4+   Q  A  "   U  R      C   &    A       F  @      emulate setopt extendedglob cbases local quiet sess nonewline line sessions write_fds integer mystat getopts acl:nqs: opt nonewline s.,.OPTARG tcp_by_namesess print 0: no such session: sess return sessions sess tcp_by_nameOPTARG No such session: OPTARG sessions OPTARG Unhandled option, complain: opt  OPTIND > 1  shift ( OPTIND - 1 ) all sessions ktcp_by_name  ! #sessions  sessions TCP_SESS  ! #sessions  quiet No current TCP session open. TCP_FD_CLOSED trap TCP_FD_CLOSED=1 PIPE TCP_SESS true cat read break * sessions tcp_by_nameTCP_SESS No such session: TCP_SESS continue nonewline line TCP_FD_CLOSED Session TCP_SESS: fd fd unusable. unset TCP_FD_CLOSED continue TCP_OUTPUT tcp_output TCP_OUTPUT TCP_SESS (j. .)* mystat       A        '                   A t  C  -  -1  A      +  A P    )  	  A     R   =   A           {r       +  .A                Q  A   	   +   A       '            +   A       &  (   A       '           @ +   A    C   &  (   A       f  X  m    A       &    q   A     C   G   <         +  A       F       A             #2       A    C              ,A       #2  9     A      
  1  .A       r          .A   !          q  .A   #           A    	C             A    
   F    q    integer __myfd tcp_by_name1 print such session: __myfd local TCP_SESS shift __cmd eval __cmd $* return typeset name kotcp_by_name tcp_by_namename TCP_SESS name  * __myfd sess:name; fd:fdcur ( __myfd - 1 )      A        f     dC   A        F       <   A    C   g   p   #3       A  \    
  
1  &A      $+     A              F        A       F       A  d  C    1  A    C   f   + +   A              F     %  A       F      ,A      #3        A              &  A       f         emulate setopt extendedglob local REPLY print Usage: 0 host port
Connect to the given host and port; send standard input. return ztcp Failed to open connection to host 1 port 2 REPLY tfd    A       f     dC   A       F       <   A  (  C   '   p               E         A  4    G   p   #kz    4  T  xcc
         A           p               A       g   p          A       A       f  4  Uz  A     k  }  	0     
      .A       cc
       	0     *     .A   "            
0     b     A    	            	0          .A   &     4       
0          A    
            	0          .A   *     x      	0          .A   ,            !0     ;      A  "   .     }                 F  8  Q   A              F  8    A       F       A  "   4     ,       F  `  y   A       G   p         A          A   7      A                Q  A   9     Y   A  X    
    A   :       A                  A    C     L       A  X    
  	  A   ?     q  A  4                A    C       A      A        1  A   F       A       G   pk       A       G    J      A   I  
      8  ,A   J   k  M     ,A   K            .A   L       	-      A  X    
  	  A   P     Y   A    C          F  8  	A  A       F       A  X    
  	  A   T     	   A    C          F  8  	  A       F       A  t  C    1  A   Y    
  .A   Z   #k  
@       A   [  R  
e  ,A   \   #k +     A    C   &  `   A       F    
}  A     7,           
  ,A   c              A  h        A   d     
   A    C     p     <+  A  "   f   r       	       &     A        1  A   h    1  A   i  
  1  .A   i   r  U  }   
  .A   j            q  .A   l            A  $"        4    1  a           f  8     A  T  C  	  1  A   q    
e  A       F   <+    A       f      5    emulate setopt extendedglob local cursess TCP_SESS sessstr TCP_SESS verbose reverse sesslist transmit eval match mbegin mend REPLY sessions getopts ael:rtv opt sessions s.,.OPTARG sessions OPTARG print Option opt not handled. Sorry, spam's off. return  OPTIND > 1  shift ( OPTIND - 1 ) name all sessions kotcp_by_name  ! #sessions   #tcp_spam_list  sessions tcp_spam_list sessions  #tcp_no_spam_list  tcp_no_spam_list sessions sessions:name reverse integer i = 1 i <= #sessions/2 i++  sessionsi sessionsi sessionsi sessionsi tmp No connections to spam.  ! #  No commands given. transmit tcp_send eval TCP_PROMPT:T%s: sessions  +functions[tcp_on_spam]  tcp_on_spam TCP_SESS cmd REPLY done continue verbose TCP_SESS cursess sessstr c:1 sessstr c:0 zformat TCP_PROMPT s:TCP_SESS f:tcp_by_name[TCP_SESS] sessstr $*      A    C   F      A     k      Y   .        A        f     dC   A        F       <   A          p               A T    )  "  .A      r             A          A     R    ,A                 A    C   +c       ,A   
     1      A       F  h     A       F+c L  A    C          F      q  .A        `       A    C   F+c  }  q   A    C   F      .A                    ,A   ,            A   -  	  1  A   -    8  .A   .     m     q  .A   0           A       f+c t  -  A       +c         TCP_TALK_ESCAPE:: tcpacceptlineorexit emulate setopt extendedglob local match mbegin mend BUFFER TCP_TALK_ESCAPE:blank:b match1 BUFFER .acceptline acceptline TCP_SAVE_PS1 unset TCP_SAVE_PS1 print \r[Normal keyboard input restored] BUFFER .acceptline tcp_send BUFFER BUFFER TCP_SAVE_PS1 PS1[T] prompt_subst T[$TCP_SESS]TCP_SAVE_PS1 [T]TCP_SAVE_PS1 tcpacceptlineorexit tcpacceptlineorexit acceptline     A  l  C    1  .A            9       A        G   T 4         t     A    C   g   T 4          A       g   T {#s*      A           A  H      A        x   A           {+  A          A       &  0    tSECONDS float typeset TCP_SECONDS_START SECONDS SECONDS  to = 1, end = SECONDS + to   SECONDS < end  tcp_read  to = end - SECONDS  return  