MMCT TEAM
Server IP : 111.118.215.189  /  Your IP : 18.116.81.133
Web Server : Apache
System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64
User : a1673wkz ( 2475)
PHP Version : 8.2.25
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /usr/share/emacs/24.3/lisp/net/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //usr/share/emacs/24.3/lisp/net/tramp.elc
;ELC
;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:10:38 2024
;;; from file /builddir/build/BUILD/emacs-24.3/lisp/net/tramp.el
;;; in Emacs version 24.3.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\210\302\303\304\305\306\307\306\310\311\312&	\210\313\314\315\316\306\303\317\320&\210\313\321\322\323\306\303\317\324&\210\325\326!\2038\313\327\304\330\306\303\317\331&\210\313\332\304\333\306\303\317\334&\210\313\335\336\337\306\303\317\340&\210\313\341\342\343\306\303\317\344&\210\313\345\346\347\311\350\306\303\317\351&	\207" [require tramp-compat custom-declare-group tramp nil "Edit remote files with a combination of ssh, scp, etc." :group files comm :version "22.1" custom-declare-variable tramp-mode t "Whether Tramp is enabled.\nIf it is set to nil, all remote file names are used literally." :type boolean tramp-verbose 3 "Verbosity level for Tramp messages.\nAny level x includes messages for all levels 1 .. x-1.  The levels are\n\n 0  silent (no tramp messages at all)\n 1  errors\n 2  warnings\n 3  connection to remote hosts (default level)\n 4  activities\n 5  internal\n 6  sent and received strings\n 7  file caching\n 8  connection properties\n 9  test commands\n10  traces (huge)." integer boundp backup-directory-alist tramp-backup-directory-alist "Alist of filename patterns and backup directory names.\nEach element looks like (REGEXP . DIRECTORY), with the same meaning like\nin `backup-directory-alist'.  If a Tramp file is backed up, and DIRECTORY\nis a local file name, the backup directory is prepended with Tramp file\nname prefix (method, user, host) of file.\n\n(setq tramp-backup-directory-alist backup-directory-alist)\n\ngives the same backup policy for Tramp files on their hosts like the\npolicy for local files." (repeat (cons (regexp :tag "Regexp matching filename") (directory :tag "Backup directory name"))) tramp-auto-save-directory "Put auto-save files in this directory, if set.\nThe idea is to use a local directory so that auto-saving is faster." (choice (const nil) string) tramp-encoding-shell (if (memq system-type '(windows-nt)) (getenv "COMSPEC") "/bin/sh") "Use this program for encoding and decoding commands on the local host.\nThis shell is used to execute the encoding and decoding command on the\nlocal host, so if you want to use `~' in those commands, you should\nchoose a shell here which groks tilde expansion.  `/bin/sh' normally\ndoes not understand tilde expansion.\n\nFor encoding and decoding, commands like the following are executed:\n\n    /bin/sh -c COMMAND < INPUT > OUTPUT\n\nThis variable can be used to change the \"/bin/sh\" part.  See the\nvariable `tramp-encoding-command-switch' for the \"-c\" part.\n\nIf the shell must be forced to be interactive, see\n`tramp-encoding-command-interactive'.\n\nNote that this variable is not used for remote commands.  There are\nmechanisms in tramp.el which automatically determine the right shell to\nuse for the remote host." (file :must-match t) tramp-encoding-command-switch (if (string-match "cmd\\.exe" tramp-encoding-shell) "/c" "-c") "Use this switch together with `tramp-encoding-shell' for local commands.\nSee the variable `tramp-encoding-shell' for more information." string tramp-encoding-command-interactive (unless (string-match "cmd\\.exe" tramp-encoding-shell) "-i") "Use this switch together with `tramp-encoding-shell' for interactive shells.\nSee the variable `tramp-encoding-shell' for more information." "24.1" (choice (const nil) string)] 10)
#@4820 Alist of methods for remote files.
This is a list of entries of the form (NAME PARAM1 PARAM2 ...).
Each NAME stands for a remote access method.  Each PARAM is a
pair of the form (KEY VALUE).  The following KEYs are defined:
  * `tramp-remote-shell'
    This specifies the shell to use on the remote host.  This
    MUST be a Bourne-like shell.  It is normally not necessary to
    set this to any value other than "/bin/sh": Tramp wants to
    use a shell which groks tilde expansion, but it can search
    for it.  Also note that "/bin/sh" exists on all Unixen,
    this might not be true for the value that you decide to use.
    You Have Been Warned.
  * `tramp-remote-shell-args'
    For implementation of `shell-command', this specifies the
    arguments to let `tramp-remote-shell' run a single command.
  * `tramp-login-program'
    This specifies the name of the program to use for logging in to the
    remote host.  This may be the name of rsh or a workalike program,
    or the name of telnet or a workalike, or the name of su or a workalike.
  * `tramp-login-args'
    This specifies the list of arguments to pass to the above
    mentioned program.  Please note that this is a list of list of arguments,
    that is, normally you don't want to put "-a -b" or "-f foo"
    here.  Instead, you want a list ("-a" "-b"), or ("-f" "foo").
    There are some patterns: "%h" in this list is replaced by the host
    name, "%u" is replaced by the user name, "%p" is replaced by the
    port number, and "%%" can be used to obtain a literal percent character.
    If a list containing "%h", "%u" or "%p" is unchanged during
    expansion (i.e. no host or no user specified), this list is not used as
    argument.  By this, arguments like ("-l" "%u") are optional.
    "%t" is replaced by the temporary file name produced with
    `tramp-make-tramp-temp-file'.  "%k" indicates the keep-date
    parameter of a program, if exists.
  * `tramp-async-args'
    When an asynchronous process is started, we know already that
    the connection works.  Therefore, we can pass additional
    parameters to suppress diagnostic messages, in order not to
    tamper the process output.
  * `tramp-copy-program'
    This specifies the name of the program to use for remotely copying
    the file; this might be the absolute filename of rcp or the name of
    a workalike program.
  * `tramp-copy-args'
    This specifies the list of parameters to pass to the above mentioned
    program, the hints for `tramp-login-args' also apply here.
  * `tramp-copy-keep-date'
    This specifies whether the copying program when the preserves the
    timestamp of the original file.
  * `tramp-copy-keep-tmpfile'
    This specifies whether a temporary local file shall be kept
    for optimization reasons (useful for "rsync" methods).
  * `tramp-copy-recursive'
    Whether the operation copies directories recursively.
  * `tramp-default-port'
    The default port of a method is needed in case of gateway connections.
    Additionally, it is used as indication which method is prepared for
    passing gateways.
  * `tramp-gw-args'
    As the attribute name says, additional arguments are specified here
    when a method is applied via a gateway.
  * `tramp-tmpdir'
    A directory on the remote host for temporary files.  If not
    specified, "/tmp" is taken as default.

What does all this mean?  Well, you should specify `tramp-login-program'
for all methods; this program is used to log in to the remote site.  Then,
there are two ways to actually transfer the files between the local and the
remote side.  One way is using an additional rcp-like program.  If you want
to do this, set `tramp-copy-program' in the method.

Another possibility for file transfer is inline transfer, i.e. the
file is passed through the same buffer used by `tramp-login-program'.  In
this case, the file contents need to be protected since the
`tramp-login-program' might use escape codes or the connection might not
be eight-bit clean.  Therefore, file contents are encoded for transit.
See the variables `tramp-local-coding-commands' and
`tramp-remote-coding-commands' for details.

So, to summarize: if the method is an out-of-band method, then you
must specify `tramp-copy-program' and `tramp-copy-args'.  If it is an
inline method, then these two parameters should be nil.  Methods which
are fit for gateways must have `tramp-default-port' at least.

Notes:

When using `su' or `sudo' the phrase `open connection to a remote
host' sounds strange, but it is used nevertheless, for consistency.
No connection is opened to a remote host, but `su' or `sudo' is
started on the local host.  You should specify a remote host
`localhost' or the name of the local host.  Another host name is
useful only in combination with `tramp-default-proxies-alist'.
(defvar tramp-methods nil (#$ . 3866))
#@167 Call ssh to detect whether it supports the ControlMaster argument.
This function may return nil when the argument is supported, but
shouldn't return t when it isn't.
(defalias 'tramp-detect-ssh-controlmaster #[nil "\300\301\302\217\207" [nil (byte-code "\301\302!rq\210\303\216\304\305\306\307\306\310\311&\210eb\210\312\313\306\307#+\207" [#1=#:temp-buffer generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) call-process "ssh" nil t "-o" "ControlMaster" search-forward-regexp "Missing ControlMaster argument"] 7) ((error))] 3 (#$ . 8731)])
(byte-code "\300\301\302\303\304\305\306\307&\210\300\310\311\312\304\305\306\313&\210\300\314\311\315\304\305\306\316&\210\300\317\311\320\304\305\306\321&\210\300\322\323\324\304\305\306\307&\210\300\325\311\326\304\305\306\327&\210\300\330\311\331\304\305\332\333\306\334&	\210\300\335\336\337\332\333\304\305\306\340&	\207" [custom-declare-variable tramp-default-method (cond ((and (eq system-type 'windows-nt) (executable-find "pscp")) (if (or (fboundp 'password-read) (fboundp 'auth-source-user-or-password) (fboundp 'auth-source-search) (tramp-compat-process-running-p "Pageant")) "pscp" "plink")) ((executable-find "scp") (cond ((tramp-detect-ssh-controlmaster) "scpc") ((or (fboundp 'password-read) (fboundp 'auth-source-user-or-password) (fboundp 'auth-source-search) (getenv "SSH_AUTH_SOCK") (getenv "SSH_AGENT_PID")) "scp") (t "ssh"))) (t "ftp")) "Default method to use for transferring files.\nSee `tramp-methods' for possibilities.\nAlso see `tramp-default-method-alist'." :group tramp :type string tramp-default-method-alist nil "Default method to use for specific host/user pairs.\nThis is an alist of items (HOST USER METHOD).  The first matching item\nspecifies the method to use for a file name which does not specify a\nmethod.  HOST and USER are regular expressions or nil, which is\ninterpreted as a regular expression which always matches.  If no entry\nmatches, the variable `tramp-default-method' takes effect.\n\nIf the file name does not specify the user, lookup is done using the\nempty string for the user name.\n\nSee `tramp-methods' for a list of possibilities for METHOD." (repeat (list (choice :tag "Host regexp" regexp sexp) (choice :tag "User regexp" regexp sexp) (choice :tag "Method name" string (const nil)))) tramp-default-user "Default user to use for transferring files.\nIt is nil by default; otherwise settings in configuration files like\n\"~/.ssh/config\" would be overwritten.  Also see `tramp-default-user-alist'.\n\nThis variable is regarded as obsolete, and will be removed soon." (choice (const nil) string) tramp-default-user-alist "Default user to use for specific method/host pairs.\nThis is an alist of items (METHOD HOST USER).  The first matching item\nspecifies the user to use for a file name which does not specify a\nuser.  METHOD and USER are regular expressions or nil, which is\ninterpreted as a regular expression which always matches.  If no entry\nmatches, the variable `tramp-default-user' takes effect.\n\nIf the file name does not specify the method, lookup is done using the\nempty string for the method name." (repeat (list (choice :tag "Method regexp" regexp sexp) (choice :tag "  Host regexp" regexp sexp) (choice :tag "    User name" string (const nil)))) tramp-default-host (system-name) "Default host to use for transferring files.\nUseful for su and sudo methods mostly." tramp-default-proxies-alist "Route to be followed for specific host/user pairs.\nThis is an alist of items (HOST USER PROXY).  The first matching\nitem specifies the proxy to be passed for a file name located on\na remote target matching USER@HOST.  HOST and USER are regular\nexpressions.  PROXY must be a Tramp filename without a localname\npart.  Method and user name on PROXY are optional, which is\ninterpreted with the default values.  PROXY can contain the\npatterns %h and %u, which are replaced by the strings matching\nHOST or USER, respectively.\n\nHOST, USER or PROXY could also be Lisp forms, which will be\nevaluated.  The result must be a string or nil, which is\ninterpreted as a regular expression which always matches." (repeat (list (choice :tag "Host regexp" regexp sexp) (choice :tag "User regexp" regexp sexp) (choice :tag " Proxy name" string (const nil)))) tramp-save-ad-hoc-proxies "Whether to save ad-hoc proxies persistently." :version "24.3" boolean tramp-restricted-shell-hosts-alist (when (memq system-type '(windows-nt)) (list (concat "\\`" (regexp-quote (system-name)) "\\'"))) "List of hosts, which run a restricted shell.\nThis is a list of regular expressions, which denote hosts running\na registered shell like \"rbash\".  Those hosts can be used as\nproxies only, see `tramp-default-proxies-alist'.  If the local\nhost runs a registered shell, it shall be added to this list, too." (repeat (regexp :tag "Host regexp"))] 10)
#@46 Host names which are regarded as local host.
(defconst tramp-local-host-regexp (byte-code "\300\301\302\303\304 \305\306\257\307\"\310Q\207" ["\\`" regexp-opt "localhost" "localhost6" system-name "127.0.0.1" "::1" t "\\'"] 7) (#$ . 13657))
#@959 Alist of methods for remote files.
This is a list of entries of the form (NAME PAIR1 PAIR2 ...).
Each NAME stands for a remote access method.  Each PAIR is of the form
(FUNCTION FILE).  FUNCTION is responsible to extract user names and host
names from FILE for completion.  The following predefined FUNCTIONs exists:

 * `tramp-parse-rhosts'      for "~/.rhosts" like files,
 * `tramp-parse-shosts'      for "~/.ssh/known_hosts" like files,
 * `tramp-parse-sconfig'     for "~/.ssh/config" like files,
 * `tramp-parse-shostkeys'   for "~/.ssh2/hostkeys/*" like files,
 * `tramp-parse-sknownhosts' for "~/.ssh2/knownhosts/*" like files,
 * `tramp-parse-hosts'       for "/etc/hosts" like files,
 * `tramp-parse-passwd'      for "/etc/passwd" like files.
 * `tramp-parse-netrc'       for "~/.netrc" like files.
 * `tramp-parse-putty'       for PuTTY registered sessions.

FUNCTION can also be a customer defined function.  For more details see
the info pages.
(defvar tramp-completion-function-alist nil (#$ . 13905))
#@44 String marker to surround echoed commands.
(defconst tramp-echo-mark-marker "_echo" (#$ . 14927))
#@44 String length of `tramp-echo-mark-marker'.
(defconst tramp-echo-mark-marker-length (length tramp-echo-mark-marker) (#$ . 15031))
#@437 String mark to be transmitted around shell commands.
Used to separate their echo from the output they produce.  This
will only be used if we cannot disable remote echo via stty.
This string must have no effect on the remote shell except for
producing some echo which can later be detected by
`tramp-echoed-echo-mark-regexp'.  Using `tramp-echo-mark-marker',
followed by an equal number of backspaces to erase them will
usually suffice.
(defconst tramp-echo-mark (byte-code "\302	\303\"P\207" [tramp-echo-mark-marker tramp-echo-mark-marker-length make-string 8] 4) (#$ . 15167))
#@79 Regexp which matches `tramp-echo-mark' as it gets echoed by
the remote shell.
(defconst tramp-echoed-echo-mark-regexp (format "%s\\(\\( \\)?\\)\\{%d\\}" tramp-echo-mark-marker tramp-echo-mark-marker-length) (#$ . 15752))
(byte-code "\300\301\302\303\304\305\306\307\310\311&	\210\300\312\313\314\306\307\310\311&\210\300\315\316\317\306\307\310\320&\210\300\321\322\323\306\307\310\320&\210\300\324\325\326\306\307\310\320&\210\300\327\330\331\306\307\310\320&\210\300\332\333\334\306\307\310\320&\210\300\335\336\337\306\307\310\320&\210\300\340\341\342\306\307\310\320&\210\300\343\344\345\306\307\310\320&\210\300\346\347\350\306\307\310\320&\210\300\351\352\353\306\307\310\320&\207" [custom-declare-variable tramp-local-end-of-line (if (memq system-type '(windows-nt)) "
\n" "\n") "String used for end of line in local processes." :version "24.1" :group tramp :type string tramp-rsh-end-of-line "\n" "String used for end of line in rsh connections.\nI don't think this ever needs to be changed, so please tell me about it\nif you need to change this." tramp-login-prompt-regexp ".*ogin\\( .*\\)?: *" "Regexp matching login-like prompts.\nThe regexp should match at end of buffer.\n\nSometimes the prompt is reported to look like \"login as:\"." regexp tramp-shell-prompt-pattern (concat (if (featurep 'xemacs) #1="" "\\(?:^\\|
\\)") "[^]#$%>\n]*#?[]#$%>] *\\(\\[[0-9;]*[a-zA-Z] *\\)*") "Regexp to match prompts from remote shell.\nNormally, Tramp expects you to configure `shell-prompt-pattern'\ncorrectly, but sometimes it happens that you are connecting to a\nremote host which sends a different kind of shell prompt.  Therefore,\nTramp recognizes things matched by `shell-prompt-pattern' as prompt,\nand also things matched by this variable.  The default value of this\nvariable is similar to the default value of `shell-prompt-pattern',\nwhich should work well in many cases.\n\nThis regexp must match both `tramp-initial-end-of-output' and\n`tramp-end-of-output'." tramp-password-prompt-regexp "^.*\\([pP]assword\\|[pP]assphrase\\).*:? *" "Regexp matching password-like prompts.\nThe regexp should match at end of buffer.\n\nThe `sudo' program appears to insert a `^@' character into the prompt." tramp-wrong-passwd-regexp (concat "^.*" (regexp-opt '("Permission denied" "Login incorrect" "Login Incorrect" "Connection refused" "Connection closed" "Timeout, server not responding." "Sorry, try again." "Name or service not known" "Host key verification failed." "No supported authentication methods left to try!") t) ".*" "\\|" "^.*\\(" "Received signal [0-9]+" "\\).*") "Regexp matching a `login failed' message.\nThe regexp should match at end of buffer." tramp-yesno-prompt-regexp (concat (regexp-opt '("Are you sure you want to continue connecting (yes/no)?") t) "\\s-*") "Regular expression matching all yes/no queries which need to be confirmed.\nThe confirmation should be done with yes or no.\nThe regexp should match at end of buffer.\nSee also `tramp-yn-prompt-regexp'." tramp-yn-prompt-regexp (concat (regexp-opt '("Store key in cache? (y/n)" "Update cached key? (y/n, Return cancels connection)") t) "\\s-*") "Regular expression matching all y/n queries which need to be confirmed.\nThe confirmation should be done with y or n.\nThe regexp should match at end of buffer.\nSee also `tramp-yesno-prompt-regexp'." tramp-terminal-prompt-regexp (concat "\\(" "TERM = (.*)" "\\|" "Terminal type\\? \\[.*\\]" "\\)\\s-*") "Regular expression matching all terminal setting prompts.\nThe regexp should match at end of buffer.\nThe answer will be provided by `tramp-action-terminal', which see." tramp-operation-not-permitted-regexp (concat "\\(" "preserving times.*" "\\|" "set mode" "\\)" ":\\s-*" (regexp-opt '("Operation not permitted") t)) "Regular expression matching keep-date problems in (s)cp operations.\nCopying has been performed successfully already, so this message can\nbe ignored safely." tramp-copy-failed-regexp (concat "\\(.+: " (regexp-opt '("Permission denied" "not a regular file" "is a directory" "No such file or directory") t) "\\)\\s-*") "Regular expression matching copy problems in (s)cp operations." tramp-process-alive-regexp #1# "Regular expression indicating a process has finished.\nIn fact this expression is empty by intention, it will be used only to\ncheck regularly the status of the associated process.\nThe answer will be provided by `tramp-action-process-alive',\n`tramp-action-out-of-band', which see."] 10)
#@317 Prefix to use for temporary files.
If this is a relative file name (such as "tramp."), it is considered
relative to the directory name returned by the function
`tramp-compat-temporary-file-directory' (which see).  It may also be an
absolute file name; don't forget to include a prefix for the filename
part, though.
(defconst tramp-temp-name-prefix "tramp." (#$ . 20235))
#@102 Buffer name for a temporary buffer.
It shall be used in combination with `generate-new-buffer-name'.
(defconst tramp-temp-buffer-name " *tramp temp*" (#$ . 20614))
#@82 File name of a persistent local temporary file.
Useful for "rsync" like methods.
(defvar tramp-temp-buffer-file-name nil (#$ . 20784))
(byte-code "\300\301!\210\302\301\303\304#\210\305\306\307\310\311\312\313\314&\207" [make-variable-buffer-local tramp-temp-buffer-file-name put permanent-local t custom-declare-variable tramp-syntax (if (featurep 'xemacs) 'sep 'ftp) "Tramp filename syntax to be used.\n\nIt can have the following values:\n\n  'ftp -- Ange-FTP respective EFS like syntax (GNU Emacs default)\n  'sep -- Syntax as defined for XEmacs (not available yet for GNU Emacs)\n  'url -- URL-like syntax." :group tramp :type (choice (const :tag "Ange-FTP" ftp) (const :tag "URL" url))] 8)
#@95 String matching the very beginning of Tramp file names.
Used in `tramp-make-tramp-file-name'.
(defconst tramp-prefix-format (byte-code "\301\232\203\302\207\303\232\203\304\207\305\232\203\302\207\306\307!\207" [tramp-syntax ftp "/" sep "/[" url error "Wrong `tramp-syntax' defined"] 2) (#$ . 21487))
#@123 Regexp matching the very beginning of Tramp file names.
Should always start with "^". Derived from `tramp-prefix-format'.
(defconst tramp-prefix-regexp (byte-code "\301\302!P\207" [tramp-prefix-format "^" regexp-quote] 3) (#$ . 21804))
#@38 Regexp matching methods identifiers.
(defconst tramp-method-regexp "[a-zA-Z_0-9-]+" (#$ . 22047))
#@104 String matching delimiter between method and user or host names.
Used in `tramp-make-tramp-file-name'.
(defconst tramp-postfix-method-format (byte-code "\301\232\203\302\207\303\232\203\304\207\305\232\203\306\207\307\310!\207" [tramp-syntax ftp ":" sep "/" url "://" error "Wrong `tramp-syntax' defined"] 2) (#$ . 22152))
#@110 Regexp matching delimiter between method and user or host names.
Derived from `tramp-postfix-method-format'.
(defconst tramp-postfix-method-regexp (regexp-quote tramp-postfix-method-format) (#$ . 22491))
#@29 Regexp matching user names.
(defconst tramp-user-regexp "[^/|: 	]+" (#$ . 22701))
#@58 String matching delimiter between user and domain names.
(defconst tramp-prefix-domain-format "%" (#$ . 22789))
#@101 Regexp matching delimiter between user and domain names.
Derived from `tramp-prefix-domain-format'.
(defconst tramp-prefix-domain-regexp (regexp-quote tramp-prefix-domain-format) (#$ . 22908))
#@31 Regexp matching domain names.
(defconst tramp-domain-regexp "[-a-zA-Z0-9_.]+" (#$ . 23107))
#@47 Regexp matching user names with domain names.
(defconst tramp-user-with-domain-regexp (concat #1="\\(" tramp-user-regexp #2="\\)" tramp-prefix-domain-regexp #1# tramp-domain-regexp #2#) (#$ . 23205))
#@94 String matching delimiter between user and host names.
Used in `tramp-make-tramp-file-name'.
(defconst tramp-postfix-user-format "@" (#$ . 23411))
#@98 Regexp matching delimiter between user and host names.
Derived from `tramp-postfix-user-format'.
(defconst tramp-postfix-user-regexp (regexp-quote tramp-postfix-user-format) (#$ . 23564))
#@29 Regexp matching host names.
(defconst tramp-host-regexp "[a-zA-Z0-9_.-]+" (#$ . 23758))
#@89 String matching left hand side of IPv6 addresses.
Used in `tramp-make-tramp-file-name'.
(defconst tramp-prefix-ipv6-format (byte-code "\301\232\203\302\207\303\232\203\304\207\305\232\203\302\207\306\307!\207" [tramp-syntax ftp "[" sep "" url error "Wrong `tramp-syntax' defined"] 2) (#$ . 23852))
#@92 Regexp matching left hand side of IPv6 addresses.
Derived from `tramp-prefix-ipv6-format'.
(defconst tramp-prefix-ipv6-regexp (regexp-quote tramp-prefix-ipv6-format) (#$ . 24165))
#@33 Regexp matching IPv6 addresses.
(defconst tramp-ipv6-regexp "\\(?:\\(?:[a-zA-Z0-9]+\\)?:\\)+[a-zA-Z0-9.]+" (#$ . 24351))
#@90 String matching right hand side of IPv6 addresses.
Used in `tramp-make-tramp-file-name'.
(defconst tramp-postfix-ipv6-format (byte-code "\301\232\203\302\207\303\232\203\304\207\305\232\203\302\207\306\307!\207" [tramp-syntax ftp "]" sep "" url error "Wrong `tramp-syntax' defined"] 2) (#$ . 24478))
#@94 Regexp matching right hand side of IPv6 addresses.
Derived from `tramp-postfix-ipv6-format'.
(defconst tramp-postfix-ipv6-regexp (regexp-quote tramp-postfix-ipv6-format) (#$ . 24793))
#@64 String matching delimiter between host names and port numbers.
(defconst tramp-prefix-port-format (byte-code "\301\232\203\302\207\303\232\203\302\207\304\232\203\305\207\306\307!\207" [tramp-syntax ftp "#" sep url ":" error "Wrong `tramp-syntax' defined"] 2) (#$ . 24983))
#@105 Regexp matching delimiter between host names and port numbers.
Derived from `tramp-prefix-port-format'.
(defconst tramp-prefix-port-regexp (regexp-quote tramp-prefix-port-format) (#$ . 25273))
#@31 Regexp matching port numbers.
(defconst tramp-port-regexp "[0-9]+" (#$ . 25472))
#@47 Regexp matching host names with port numbers.
(defconst tramp-host-with-port-regexp (concat #1="\\(" tramp-host-regexp #2="\\)" tramp-prefix-port-regexp #1# tramp-port-regexp #2#) (#$ . 25559))
#@57 String matching delimiter after ad-hoc hop definitions.
(defconst tramp-postfix-hop-format "|" (#$ . 25759))
#@98 Regexp matching delimiter after ad-hoc hop definitions.
Derived from `tramp-postfix-hop-format'.
(defconst tramp-postfix-hop-regexp (regexp-quote tramp-postfix-hop-format) (#$ . 25874))
#@100 String matching delimiter between host names and localnames.
Used in `tramp-make-tramp-file-name'.
(defconst tramp-postfix-host-format (byte-code "\301\232\203\302\207\303\232\203\304\207\305\232\203\306\207\307\310!\207" [tramp-syntax ftp ":" sep "]" url "" error "Wrong `tramp-syntax' defined"] 2) (#$ . 26067))
#@104 Regexp matching delimiter between host names and localnames.
Derived from `tramp-postfix-host-format'.
(defconst tramp-postfix-host-regexp (regexp-quote tramp-postfix-host-format) (#$ . 26397))
#@29 Regexp matching localnames.
(defconst tramp-localname-regexp ".*$" (#$ . 26597))
#@75 Regular expression matching a Tramp file name between prefix and postfix.
(defconst tramp-remote-file-name-spec-regexp (byte-code "\306\307\310	\311\306\307\n\310\311\307\306\f\312
\f\310\306
\311\211\260\207" [tramp-method-regexp tramp-postfix-method-regexp tramp-user-regexp tramp-postfix-user-regexp tramp-host-regexp tramp-prefix-ipv6-regexp "\\(?:" "\\(" "\\)" "\\)?" "\\|" tramp-ipv6-regexp tramp-postfix-ipv6-regexp tramp-prefix-port-regexp tramp-port-regexp] 25) (#$ . 26684))
#@821 List of six elements (REGEXP METHOD USER HOST FILE HOP), detailing the Tramp file name structure.

The first element REGEXP is a regular expression matching a Tramp file
name.  The regex should contain parentheses around the method name,
the user name, the host name, and the file name parts.

The second element METHOD is a number, saying which pair of
parentheses matches the method name.  The third element USER is
similar, but for the user name.  The fourth element HOST is similar,
but for the host name.  The fifth element FILE is for the file name.
The last element HOP is the ad-hoc hop definition, which could be a
cascade of several hops.

These numbers are passed directly to `match-string', which see.  That
means the opening parentheses are counted to identify the pair.

See also `tramp-file-name-regexp'.
(defconst tramp-file-name-structure (byte-code "\305\306	\n\307\310	\305\f\311\260\f\312\313\314\315\316\257\207" [tramp-prefix-regexp tramp-remote-file-name-spec-regexp tramp-postfix-hop-regexp tramp-postfix-host-regexp tramp-localname-regexp "\\(" "\\(?:" "\\)+" "\\)?" "\\)" 5 6 7 8 1] 12) (#$ . 27185))
#@240 Value for `tramp-file-name-regexp' for unified remoting.
Emacs (not XEmacs) uses a unified filename syntax for Ange-FTP and
Tramp.  See `tramp-file-name-structure' for more explanations.

On W32 systems, the volume letter must be ignored.
(defconst tramp-file-name-regexp-unified (byte-code "\301>\203\302\207\303\207" [system-type (cygwin windows-nt) "\\`/\\([^[/|:]\\{2,\\}\\|[^/|]\\{2,\\}]\\):" "\\`/\\([^[/|:]+\\|[^/|]+]\\):"] 2) (#$ . 28322))
#@172 Value for `tramp-file-name-regexp' for separate remoting.
XEmacs uses a separate filename syntax for Tramp and EFS.
See `tramp-file-name-structure' for more explanations.
(defconst tramp-file-name-regexp-separate "\\`/\\[.*\\]" (#$ . 28780))
#@114 Value for `tramp-file-name-regexp' for URL-like remoting.
See `tramp-file-name-structure' for more explanations.
(defconst tramp-file-name-regexp-url "\\`/[^/|:]+://" (#$ . 29029))
#@736 Regular expression matching file names handled by Tramp.
This regexp should match Tramp file names but no other file names.
When tramp.el is loaded, this regular expression is prepended to
`file-name-handler-alist', and that is searched sequentially.  Thus,
if the Tramp entry appears rather early in the `file-name-handler-alist'
and is a bit too general, then some files might be considered Tramp
files which are not really Tramp files.

Please note that the entry in `file-name-handler-alist' is made when
this file (tramp.el) is loaded.  This means that this variable must be set
before loading tramp.el.  Alternatively, `file-name-handler-alist' can be
updated after changing this variable.

Also see `tramp-file-name-structure'.
(defconst tramp-file-name-regexp (byte-code "\304\232\203	\207\305\232\203\n\207\306\232\203\207\307\310!\207" [tramp-syntax tramp-file-name-regexp-unified tramp-file-name-regexp-separate tramp-file-name-regexp-url ftp sep url error "Wrong `tramp-syntax' defined"] 2) (#$ . 29217))
#@241 Value for `tramp-completion-file-name-regexp' for unified remoting.
GNU Emacs uses a unified filename syntax for Tramp and Ange-FTP.
See `tramp-file-name-structure' for more explanations.

On W32 systems, the volume letter must be ignored.
(defconst tramp-completion-file-name-regexp-unified (byte-code "\301>\203\302\207\303\207" [system-type (cygwin windows-nt) "\\`/[^/]\\{2,\\}\\'" "\\`/[^/]*\\'"] 2) (#$ . 30251))
#@183 Value for `tramp-completion-file-name-regexp' for separate remoting.
XEmacs uses a separate filename syntax for Tramp and EFS.
See `tramp-file-name-structure' for more explanations.
(defconst tramp-completion-file-name-regexp-separate "\\`/\\([[][^]]*\\)?\\'" (#$ . 30680))
#@125 Value for `tramp-completion-file-name-regexp' for URL-like remoting.
See `tramp-file-name-structure' for more explanations.
(defconst tramp-completion-file-name-regexp-url "\\`/[^/:]+\\(:\\(/\\(/[^/]*\\)?\\)?\\)?\\'" (#$ . 30961))
#@421 Regular expression matching file names handled by Tramp completion.
This regexp should match partial Tramp file names only.

Please note that the entry in `file-name-handler-alist' is made when
this file (tramp.el) is loaded.  This means that this variable must be set
before loading tramp.el.  Alternatively, `file-name-handler-alist' can be
updated after changing this variable.

Also see `tramp-file-name-structure'.
(defconst tramp-completion-file-name-regexp (byte-code "\304\232\203	\207\305\232\203\n\207\306\232\203\207\307\310!\207" [tramp-syntax tramp-completion-file-name-regexp-unified tramp-completion-file-name-regexp-separate tramp-completion-file-name-regexp-url ftp sep url error "Wrong `tramp-syntax' defined"] 2) (#$ . 31199))
(byte-code "\300\301\302\303\304\305\306\307&\210\300\310\311\312\304\305\306\313&\210\300\314\315\316\304\305\306\317&\207" [custom-declare-variable tramp-chunksize (when (and (not (featurep 'xemacs)) (memq system-type '(hpux))) 500) "If non-nil, chunksize for sending input to local process.\nIt is necessary only on systems which have a buggy `process-send-string'\nimplementation.  The necessity, whether this variable must be set, can be\nchecked via the following code:\n\n  (with-temp-buffer\n    (let* ((user \"xxx\") (host \"yyy\")\n           (init 0) (step 50)\n           (sent init) (received init))\n      (while (= sent received)\n        (setq sent (+ sent step))\n        (erase-buffer)\n        (let ((proc (start-process (buffer-name) (current-buffer)\n                                   \"ssh\" \"-l\" user host \"wc\" \"-c\")))\n          (when (memq (process-status proc) '(run open))\n            (process-send-string proc (make-string sent ?\\ ))\n            (process-send-eof proc)\n            (process-send-eof proc))\n          (while (not (progn (goto-char (point-min))\n                             (re-search-forward \"\\\\w+\" (point-max) t)))\n            (accept-process-output proc 1))\n          (when (memq (process-status proc) '(run open))\n            (setq received (string-to-number (match-string 0)))\n            (delete-process proc)\n            (message \"Bytes sent: %s\\tBytes received: %s\" sent received)\n            (sit-for 0))))\n      (if (> sent (+ init step))\n          (message \"You should set `tramp-chunksize' to a maximum of %s\"\n                   (- sent step))\n        (message \"Test does not work\")\n        (display-buffer (current-buffer))\n        (sit-for 30))))\n\nIn the Emacs normally running Tramp, evaluate the above code\n(replace \"xxx\" and \"yyy\" by the remote user and host name,\nrespectively).  You can do this, for example, by pasting it into\nthe `*scratch*' buffer and then hitting C-j with the cursor after the\nlast closing parenthesis.  Note that it works only if you have configured\n\"ssh\" to run without password query, see ssh-agent(1).\n\nYou will see the number of bytes sent successfully to the remote host.\nIf that number exceeds 1000, you can stop the execution by hitting\nC-g, because your Emacs is likely clean.\n\nWhen it is necessary to set `tramp-chunksize', you might consider to\nuse an out-of-the-band method (like \"scp\") instead of an internal one\n(like \"ssh\"), because setting `tramp-chunksize' to non-nil decreases\nperformance.\n\nIf your Emacs is buggy, the code stops and gives you an indication\nabout the value `tramp-chunksize' should be set.  Maybe you could just\nexperiment a bit, e.g. changing the values of `init' and `step'\nin the third line of the code.\n\nPlease raise a bug report via \"M-x tramp-bug\" if your system needs\nthis variable to be set as well." :group tramp :type (choice (const nil) integer) tramp-process-connection-type t "Overrides `process-connection-type' for connections from Tramp.\nTramp binds process-connection-type to the value given here before\nopening a connection to a remote host." (choice (const nil) (const t) (const pty)) tramp-completion-reread-directory-timeout 10 "Defines seconds since last remote command before rereading a directory.\nA remote directory might have changed its contents.  In order to\nmake it visible during file name completion in the minibuffer,\nTramp flushes its cache and rereads the directory contents when\nmore than `tramp-completion-reread-directory-timeout' seconds\nhave been gone since last remote command execution.  A value of `t'\nwould require an immediate reread during filename completion, `nil'\nmeans to use always cached values for the directory contents." (choice (const nil) integer)] 8)
#@44 Connection method for this *tramp* buffer.
(defvar tramp-current-method nil (#$ . 35771))
#@44 Remote login name for this *tramp* buffer.
(defvar tramp-current-user nil (#$ . 35867))
#@38 Remote host for this *tramp* buffer.
(defvar tramp-current-host nil (#$ . 35961))
#@212 Alist of completion handler functions.
Used for file names matching `tramp-file-name-regexp'. Operations
not mentioned here will be handled by Tramp's file name handler
functions, or the normal Emacs functions.
(defconst tramp-completion-file-name-handler-alist '((file-name-all-completions . tramp-completion-handle-file-name-all-completions) (file-name-completion . tramp-completion-handle-file-name-completion)) (#$ . 36050))
#@173 Alist of elements (FUNCTION . HANDLER) for foreign methods handled specially.
If (FUNCTION FILENAME) returns non-nil, then all I/O on that file is done by
calling HANDLER.
(defvar tramp-foreign-file-name-handler-alist nil (#$ . 36486))
#@93 Return the method parameter PARAM.
If the `tramp-methods' entry does not exist, return nil.
(defalias 'tramp-get-method-parameter #[(method param) "\305\305	\n\"\"\211\205\211A@))\207" [param method tramp-methods entry x assoc] 6 (#$ . 36728)])
#@39 Check, whether VEC is a Tramp object.
(defalias 'tramp-file-name-p #[(vec) "\301!\205\nG\302U\207" [vec vectorp 5] 2 (#$ . 36985)])
#@33 Return method component of VEC.
(defalias 'tramp-file-name-method #[(vec) "\301!\205	\302H\207" [vec tramp-file-name-p 0] 2 (#$ . 37126)])
#@31 Return user component of VEC.
(defalias 'tramp-file-name-user #[(vec) "\301!\205	\302H\207" [vec tramp-file-name-p 1] 2 (#$ . 37274)])
#@31 Return host component of VEC.
(defalias 'tramp-file-name-host #[(vec) "\301!\205	\302H\207" [vec tramp-file-name-p 2] 2 (#$ . 37418)])
#@36 Return localname component of VEC.
(defalias 'tramp-file-name-localname #[(vec) "\301!\205	\302H\207" [vec tramp-file-name-p 3] 2 (#$ . 37562)])
#@30 Return hop component of VEC.
(defalias 'tramp-file-name-hop #[(vec) "\301!\205	\302H\207" [vec tramp-file-name-p 4] 2 (#$ . 37716)])
#@45 Return the user name of VEC without domain.
(defalias 'tramp-file-name-real-user #[(vec) "\304 \305\216\306	!\211;\203\307\n\"\203\310\311\n\"\202\n+\207" [save-match-data-internal vec user tramp-user-with-domain-regexp match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) tramp-file-name-user string-match match-string 1] 4 (#$ . 37858)])
#@32 Return the domain name of VEC.
(defalias 'tramp-file-name-domain #[(vec) "\304 \305\216\306	!\211;\205\307\n\"\205\310\311\n\"+\207" [save-match-data-internal vec user tramp-user-with-domain-regexp match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) tramp-file-name-user string-match match-string 2] 4 (#$ . 38257)])
#@43 Return the host name of VEC without port.
(defalias 'tramp-file-name-real-host #[(vec) "\304 \305\216\306	!\211;\203\307\n\"\203\310\311\n\"\202\n+\207" [save-match-data-internal vec host tramp-host-with-port-regexp match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) tramp-file-name-host string-match match-string 1] 4 (#$ . 38632)])
#@32 Return the port number of VEC.
(defalias 'tramp-file-name-port #[(vec) "\305 \306\216\307	!\310	!\n;\203\"\311\f\n\"\203\"\312\313\314\n\"!\206&\315\316\",\207" [save-match-data-internal vec host method tramp-host-with-port-regexp match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) tramp-file-name-method tramp-file-name-host string-match string-to-number match-string 2 tramp-get-method-parameter tramp-default-port] 4 (#$ . 39027)])
#@59 Return t if NAME is a string with Tramp file name syntax.
(defalias 'tramp-tramp-file-p #[(name) "\303 \304\216	;\205\305\n	\"*\207" [save-match-data-internal name tramp-file-name-regexp match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match] 3 (#$ . 39521)])
#@124 Return the right method string to use.
This is METHOD, if non-nil. Otherwise, do a lookup in
`tramp-default-method-alist'.
(defalias 'tramp-find-method #[(method user host) "\206G	\306\211\f\203@\f\211A@\307\n@\206\310
\206 \310\"\203\n\307\nA@\206,\310\n\2062\310\"\203\n\311\n8\306\211\204+\206G\207" [method tramp-default-method-alist item lmethod choices host nil string-match "" 2 user tramp-default-method] 4 (#$ . 39846)])
#@118 Return the right user string to use.
This is USER, if non-nil. Otherwise, do a lookup in
`tramp-default-user-alist'.
(defalias 'tramp-find-user #[(method user host) "\206G	\306\211\f\203@\f\211A@\307\n@\206\310
\206 \310\"\203\n\307\nA@\206,\310\n\2062\310\"\203\n\311\n8\306\211\204+\206G\207" [user tramp-default-user-alist item luser choices method nil string-match "" 2 host tramp-default-user] 4 (#$ . 40307)])
#@103 Return the right host string to use.
This is HOST, if non-nil. Otherwise, it is `tramp-default-host'.
(defalias 'tramp-find-host #[(method user host) "G\302V\203\206\f	\207" [host tramp-default-host 0] 2 (#$ . 40754)])
#@235 Return a `tramp-file-name' structure.
The structure consists of remote method, remote user, remote host
and localname (file name on remote host).  If NODEFAULT is
non-nil, the file name parts are not expanded to their default
values.
(defalias 'tramp-dissect-file-name #[(name &optional nodefault) "\306 \307\216\310	@\n\"\211\204\311\312\n\"\210\313	A@\n\"\313\314	8\n\"\313\315	8\n\"\313\316	8\n\"\313\317	8\n\"\203c\310\"\203Q\320\321\322\323$\310\"\203c\320\321\322\323$\203u\324
\f%\202\221\324\325#\326#\327#
\f%.\207" [save-match-data-internal tramp-file-name-structure name match hop localname match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match error "Not a Tramp file name: %s" match-string 2 3 4 5 replace-match "" nil t vector tramp-find-method tramp-find-user tramp-find-host host user method tramp-prefix-ipv6-regexp tramp-postfix-ipv6-regexp nodefault] 8 (#$ . 40985)])
#@39 A name for the connection buffer VEC.
(defalias 'tramp-buffer-name #[(vec) "\304!\305!\306!\307\nG!\204\310\311\n	$\202!\310\312	#+\207" [vec host user method tramp-file-name-method tramp-file-name-user tramp-file-name-real-host zerop format "*tramp/%s %s@%s*" "*tramp/%s %s*"] 5 (#$ . 41996)])
#@113 Constructs a Tramp file name from METHOD, USER, HOST and LOCALNAME.
When not nil, an optional HOP is prepended.
(defalias 'tramp-make-tramp-file-name #[(method user host localname &optional hop) "	\306\nG!?\205
\nP\306\fG!?\205\f
P\2052\307	\"\2030\nQ\2022\f
\205;
\260\207" [tramp-prefix-format hop method tramp-postfix-method-format user tramp-postfix-user-format zerop string-match host tramp-ipv6-regexp tramp-prefix-ipv6-format tramp-postfix-ipv6-format tramp-postfix-host-format localname] 7 (#$ . 42309)])
#@206 Constructs a Tramp file name from METHOD, USER, HOST and LOCALNAME.
It must not be a complete Tramp file name, but as long as there are
necessary only.  This function will be used in file name completion.
(defalias 'tramp-completion-make-tramp-file-name #[(method user host localname) "\306	G!?\205\f	\nP\306G!?\205\fP\306
G!?\2054\307
\"\2030	
\nQ\2021
P\f\205;\f\260\207" [tramp-prefix-format method tramp-postfix-method-format user tramp-postfix-user-format host zerop string-match tramp-ipv6-regexp tramp-prefix-ipv6-format tramp-postfix-ipv6-format tramp-postfix-host-format localname] 6 (#$ . 42854)])
#@47 Get the connection buffer to be used for VEC.
(defalias 'tramp-get-buffer #[(vec) "\303\304!!\206!r\305\304!!q\210\306\307\310!\311!\312!\313$p)\207" [vec buffer-undo-list default-directory get-buffer tramp-buffer-name get-buffer-create t tramp-make-tramp-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host "/"] 5 (#$ . 43487)])
#@150 Get the connection buffer to be used for VEC.
In case a second asynchronous communication has been started, it is different
from `tramp-get-buffer'.
(defalias 'tramp-get-connection-buffer #[(vec) "\301\302\303#\206\304!\207" [vec tramp-get-connection-property "process-buffer" nil tramp-get-buffer] 4 (#$ . 43855)])
#@145 Get the connection name to be used for VEC.
In case a second asynchronous communication has been started, it is different
from the default one.
(defalias 'tramp-get-connection-name #[(vec) "\301\302\303#\206\304!\207" [vec tramp-get-connection-property "process-name" nil tramp-buffer-name] 4 (#$ . 44182)])
#@148 Get the connection process to be used for VEC.
In case a second asynchronous communication has been started, it is different
from the default one.
(defalias 'tramp-get-connection-process #[(vec) "\301\302!!\207" [vec get-process tramp-get-connection-name] 3 (#$ . 44501)])
#@38 A name for the debug buffer for VEC.
(defalias 'tramp-debug-buffer-name #[(vec) "\304!\305!\306!\307\nG!\204\310\311\n	$\202!\310\312	#+\207" [vec host user method tramp-file-name-method tramp-file-name-user tramp-file-name-real-host zerop format "*debug tramp/%s %s@%s*" "*debug tramp/%s %s*"] 5 (#$ . 44781)])
#@62 Used for highlighting Tramp debug buffers in `outline-mode'.
(defconst tramp-debug-outline-regexp "[0-9]+:[0-9]+:[0-9]+\\.[0-9]+ [a-z0-9-]+ (\\([0-9]+\\)) #" (#$ . 45110))
#@181 Return the depth to which a statement is nested in the outline.
Point must be at the beginning of a header line.

The outline level is equal to the verbosity of the Tramp message.
(defalias 'tramp-debug-outline-level #[nil "\300\301\302!!T\207" [string-to-number match-string 1] 3 (#$ . 45289)])
#@31 Get the debug buffer for VEC.
(defalias 'tramp-get-debug-buffer #[(vec) "r\306\307!!q\210o\203\250\310\311\312!\210\313\314\315!\203#\316\315\317N@!\206\222\320\321!\203:\322\321!\2045\323\321!\205\222\321 \202\222\324\325!\211\205E\326!)\203Q\327\324\325!!\202\222\324\330!\211\205\\\326!)\203h\327\324\330!!\202\222\324\331!\211\205s\326!)\203\327\324\331!!\202\222\332\333!\203\213\327\333!\202\222\334\335!\210\327\336!)\f#\337 \210*\340\305!\210\f\340\341!\210\342!p)\207" [vec buffer-undo-list file-name-handler-alist d tramp-debug-outline-regexp outline-regexp get-buffer-create tramp-debug-buffer-name t require outline nil boundp temporary-file-directory eval standard-value fboundp temp-directory subrp functionp getenv "TEMP" file-directory-p file-name-as-directory "TMP" "TMPDIR" file-exists-p "c:/temp" message "Neither `temporary-file-directory' nor `temp-directory' is defined -- using /tmp." "/tmp" outline-mode make-local-variable outline-level tramp-debug-outline-level default-directory] 3 (#$ . 45591)])
#@157 Append message to debug buffer.
Message is formatted with FMT-STRING as control string and the remaining
ARGS to actually emit the message (if applicable).
(defalias 'tramp-debug-message #[(vec fmt-string &rest args) "\306\307!!\205\203r\310!q\210db\210o\203\311\312\313	\n$c\210n\204$\314c\210\315 \316\317\"c\210\311\320\3218\"c\210)\322\323\211\f\204s\324!A@\211\204R\325\211\202>
9\203k\326
!\327\330\f\"\203i\327\331\f\"\203k\323T\202=\311\332\f\"c\210+\333\311#c)\207" [vec emacs-version tramp-version now fn btf get-buffer tramp-buffer-name tramp-get-debug-buffer format ";; %sEmacs: %s Tramp: %s -*- mode: outline; -*-" "GNU " "\n" current-time format-time-string "%T." "%06d " 2 1 nil backtrace-frame "" symbol-name string-match "^tramp" "^\\(tramp-\\(?:compat-\\(?:funcall\\|with-temp-message\\)\\|debug-message\\|error\\(?:-with-buffer\\)?\\|message\\)\\)$" "%s " apply btn fmt-string args] 6 (#$ . 46654)])
(put 'tramp-debug-message 'byte-optimizer 'byte-compile-inline-expand)
#@162 Show Tramp message in the minibuffer.
This variable is used to disable messages from `tramp-error'.
The messages are visible anyway, because an error is raised.
(defvar tramp-message-show-message t (#$ . 47685))
#@128 Show Tramp progress reporter message in the minibuffer.
This variable is used to disable recursive progress reporter messages.
(defvar tramp-message-show-progress-reporter-message t (#$ . 47904))
#@536 Emit a message depending on verbosity level.
VEC-OR-PROC identifies the Tramp buffer to use.  It can be either a
vector or a process.  LEVEL says to be quiet if `tramp-verbose' is
less than LEVEL.  The message is emitted only if `tramp-verbose' is
greater than or equal to LEVEL.

The message is also logged into the debug buffer when `tramp-verbose'
is greater than or equal 4.

Calls functions `message' and `tramp-debug-message' with FMT-STRING as
control string and the remaining ARGS to actually emit the message (if
applicable).
(defalias 'tramp-message #[(vec-or-proc level fmt-string &rest args) "\300\301\302\217\207" [nil (byte-code "	X\205}\306 \307\216\203;\310X\203;\311\312\313U\203!\314\2026\315U\203+\314\2026\316U\2035\317\2026\320\fP
#\210	\321Y\205|\203d\322!\203d\323\324!!\203dr\324!q\210\325!)\205|\326!\205|\311\327\330\331\"\fP
$*\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) ((error))] 3 (#$ . 48107)])
(put 'tramp-message 'byte-optimizer 'byte-compile-inline-expand)
#@185 Emit an error.
VEC-OR-PROC identifies the connection to use, SIGNAL is the
signal identifier to be raised, remaining args passed to
`tramp-message'.  Finally, signal SIGNAL is raised.
(defalias 'tramp-error #[(vec-or-proc signal fmt-string &rest args) "\306	\307\310\311\n\211\312N\313\314\f#E!C\306\315\316\217,\210\302\n\313\314\f#C\")\207" [tramp-message-show-message vec-or-proc signal fmt-string args level nil 1 "%s" error-message-string error-message apply format (byte-code "	X\205}\306 \307\216\203;\310X\203;\311\312\313U\203!\314\2026\315U\203+\314\2026\316U\2035\317\2026\320\fP
#\210	\321Y\205|\203d\322!\203d\323\324!!\203dr\324!q\210\325!)\205|\326!\205|\311\327\330\331\"\fP
$*\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) ((error))] 10 (#$ . 49482)])
(put 'tramp-error 'byte-optimizer 'byte-compile-inline-expand)
#@177 Emit an error, and show BUFFER.
If BUFFER is nil, show the connection buffer.  Wait for 30", or until
an input event arrives.  The other arguments are passed to `tramp-error'.
(defalias 'tramp-error-with-buffer #[(buffer vec-or-proc signal fmt-string &rest args) "\305 \306\216\307\216\310\311	\n\f%+\207" [#1=#:wconfig vec-or-proc signal fmt-string args current-window-configuration ((set-window-configuration #1#)) ((byte-code "\2036	\2036\305\n!\2046\306 \2046\307\310\311\f!\203 \f\206/\312!\203,\313!\206/\314!!\210\315\316!\210)\305\207" [vec-or-proc tramp-message-show-message tramp-verbose enable-recursive-minibuffers buffer zerop tramp-completion-mode-p t pop-to-buffer bufferp processp process-buffer tramp-get-connection-buffer sit-for 30] 3)) apply tramp-error] 6 (#$ . 50702)])
(put 'tramp-error-with-buffer 'byte-optimizer 'byte-compile-inline-expand)
#@707 Parse a Tramp filename and make components available in the body.

First arg FILENAME is evaluated and dissected into its components.
Second arg VAR is a symbol.  It is used as a variable name to hold
the filename structure.  It is also used as a prefix for the variables
holding the components.  For example, if VAR is the symbol `foo', then
`foo' will be bound to the whole structure, `foo-method' will be bound to
the method component, and so on for `foo-user', `foo-host', `foo-localname',
`foo-hop'.

Remaining args are Lisp expressions to be evaluated (inside an implicit
`progn').

If VAR is nil, then we bind `v' to the structure and `method', `user',
`host', `localname', `hop' to the components.
(defalias 'with-parsed-tramp-file-name '(macro . #[(filename var &rest body) "\303\206\304\305	DD\203\306\307!\310P!\202\311\312\206\304DD\203/\306\307!\313P!\2020\314\315\2066\304DD\203F\306\307!\316P!\202G\317\320\206M\304DD\203]\306\307!\321P!\202^\322\323\206d\304DD\203t\306\307!\324P!\202u\325\326\206{\304DD\257\nBB\207" [var filename body let* v tramp-dissect-file-name intern symbol-name "-method" method tramp-file-name-method "-user" user tramp-file-name-user "-host" host tramp-file-name-host "-localname" localname tramp-file-name-localname "-hop" hop tramp-file-name-hop] 9 (#$ . 51591)]))
(byte-code "\300\301\302\303#\210\300\301\304\305#\210\306\307\310\"\207" [put with-parsed-tramp-file-name lisp-indent-function 2 edebug-form-spec (form symbolp body) tramp-compat-font-lock-add-keywords emacs-lisp-mode ("\\<with-parsed-tramp-file-name\\>")] 4)
(defalias 'tramp-progress-reporter-update #[(reporter &optional value) "A\211\304H\305\n\306 \206\307\"\2054\310\311!\204\312\311!\2054\247\203/@Y\2053\313\"**\207" [reporter parameters message value 3 string-match current-message "" subrp progress-reporter-update functionp progress-reporter-do-update] 4])
#@204 Executes BODY, spinning a progress reporter with MESSAGE.
If LEVEL does not fit for visible messages, or if this is a
nested call of the macro, there are only traces without a visible
progress reporter.
(defalias 'with-tramp-progress-reporter '(macro . #[(vec level message &rest body) "\304\305\306	\307\n\257\310\311\312\313\314	\315BBF\316\317\320\321\322\nE\323BBBDE\324\304\325BB\326\306	\327\n\257F\257\207" [vec level message body let (pr tm) tramp-message "%s..." when and tramp-message-show-progress-reporter-message tramp-message-show-message <= ((min tramp-verbose 3)) ignore-errors setq pr tramp-compat-funcall 'make-progress-reporter (tm (when pr (run-at-time 3 0.1 'tramp-progress-reporter-update pr))) unwind-protect ((tramp-message-show-progress-reporter-message (and tramp-message-show-progress-reporter-message (not tm)))) (if tm (tramp-compat-funcall 'cancel-timer tm)) "%s...done"] 12 (#$ . 53534)]))
(byte-code "\300\301\302\303#\210\300\301\304\305#\210\306\307\310\"\207" [put with-tramp-progress-reporter lisp-indent-function 3 edebug-form-spec t tramp-compat-font-lock-add-keywords emacs-lisp-mode ("\\<with-tramp-progress-reporter\\>")] 4)
#@141 Check in Tramp cache for PROPERTY, otherwise execute BODY and set cache.
FILE must be a local file name on a connection identified via VEC.
(defalias 'with-tramp-file-property '(macro . #[(vec file property &rest body) "\304\305D\306\307\310	\n\311BBBBDC\312\313\314\307\315BE\316	\n\317BBBBF\320BBBBBB\207" [file vec property body if file-name-absolute-p let value tramp-get-file-property ('undef) when (eq value 'undef) setq progn tramp-set-file-property (value) (value)] 12 (#$ . 54713)]))
(byte-code "\300\301\302\303#\210\300\301\304\305#\210\306\307\310\"\207" [put with-tramp-file-property lisp-indent-function 3 edebug-form-spec t tramp-compat-font-lock-add-keywords emacs-lisp-mode ("\\<with-tramp-file-property\\>")] 4)
#@72 Check in Tramp for property PROPERTY, otherwise executes BODY and set.
(defalias 'with-tramp-connection-property '(macro . #[(key property &rest body) "\303\304\305	\306BBBDC\307\310\311\304\312\nBE\313	\314BBBF\315BBB\207" [key property body let value tramp-get-connection-property ('undef) when (eq value 'undef) setq progn tramp-set-connection-property (value) (value)] 9 (#$ . 55454)]))
(byte-code "\301\302\303\304#\210\301\302\305\306#\210\307\310\311\"\210\312\313\314>\203\315\202\316\"\207" [system-type put with-tramp-connection-property lisp-indent-function 2 edebug-form-spec t tramp-compat-font-lock-add-keywords emacs-lisp-mode ("\\<with-tramp-connection-property\\>") defalias tramp-drop-volume-letter (cygwin windows-nt) #[(name) "\302 \303\216\304\305	\"\203\306\307\310\311	$\202	*\207" [save-match-data-internal name match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match "\\`[a-zA-Z]:/" replace-match "/" nil t] 5 "Cut off unnecessary drive letter from file NAME.\nThe functions `tramp-*-handle-expand-file-name' call `expand-file-name'\nlocally on a remote file name.  When the local system is a W32 system\nbut the remote system is Unix, this introduces a superfluous drive\nletter into the file name.  This function removes it."] identity] 4)
#@52 Cleanup connection VEC, but keep the debug buffer.
(defalias 'tramp-cleanup #[(vec) "r\302!q\210\303\304	!\305\"\210\306!\210edU\203\307\310!\210\202%\303\311!\305\"\210\312!)\207" [vec tramp-temp-buffer-name tramp-get-debug-buffer rename-buffer generate-new-buffer-name unique tramp-cleanup-connection kill-buffer nil tramp-debug-buffer-name tramp-get-buffer] 3 (#$ . 56793)])
#@466 Sets the list of completion functions for METHOD.
FUNCTION-LIST is a list of entries of the form (FUNCTION FILE).
The FUNCTION is intended to parse FILE according its syntax.
It might be a predefined FUNCTION, or a user defined FUNCTION.
For the list of predefined FUNCTIONs see `tramp-completion-function-alist'.

Example:

    (tramp-set-completion-function
     "ssh"
     '((tramp-parse-sconfig "/etc/ssh_config")
       (tramp-parse-sconfig "~/.ssh/config")))
(defalias 'tramp-set-completion-function #[(method function-list) "\211\306\307\f\"\f\"	\203`	@	A\235\203!	\306	@	A\"\241\210\310	@@!\203S\311\312	@A@\"\203J
\313>\203S\314\315\316\317\211\211\320	@A@&!\202P\321	@A@!\204Y\306	@\n\"	A\211\204\n\205j\322\304\nB\"*\207" [function-list v r method tramp-completion-function-alist system-type delete assoc functionp string-match "^HKEY_CURRENT_USER" (cygwin windows-nt) zerop tramp-compat-call-process "reg" nil "query" file-exists-p add-to-list] 9 (#$ . 57185)])
#@117 Returns a list of completion functions for METHOD.
For definition of that list see `tramp-set-completion-function'.
(defalias 'tramp-get-completion-function #[(method) "\302D\303	\"AB\207" [method tramp-completion-function-alist tramp-parse-connection-properties assoc] 4 (#$ . 58185)])
(make-variable-buffer-local 'tramp-rfn-eshadow-overlay)
#@161 Set up a minibuffer for `file-name-shadow-mode'.
Adds another overlay hiding filename parts according to Tramp's
special handling of `substitute-in-file-name'.
(defalias 'tramp-rfn-eshadow-setup-minibuffer #[nil "\302J\205x\303\304!\204\305\304!\205/\304\303\306!\204\305\306!\205 \306 \303\306!\204,\305\306!\205.\306 \"\303\307!\204<\305\307!\205@\307\310J!	\205w	@\311=\204i\303\312!\204X\305\312!\203A\312	\211A@	\211A@#\210\202A	\210	A\211\211A@\210\202A)\207" [tramp-rfn-eshadow-overlay props minibuffer-completing-file-name subrp make-overlay functionp minibuffer-prompt-end overlay-properties rfn-eshadow-overlay field overlay-put] 6 (#$ . 58537)])
(byte-code "\300\301!\203\302\301\303\"\210\302\304\305\"\210\300\207" [boundp rfn-eshadow-setup-minibuffer-hook add-hook tramp-rfn-eshadow-setup-minibuffer tramp-unload-hook #[nil "\300\301\302\"\207" [remove-hook rfn-eshadow-setup-minibuffer-hook tramp-rfn-eshadow-setup-minibuffer] 3]] 3)
(defconst tramp-rfn-eshadow-update-overlay-regexp (format "[^%s/~]*\\(/\\|~\\)" tramp-postfix-host-format))
#@249 Update `rfn-eshadow-overlay' to cover shadowed part of minibuffer input.
This is intended to be used as a minibuffer `post-command-hook' for
`file-name-shadow-mode'; the minibuffer should have already
been set up by `rfn-eshadow-setup-minibuffer'.
(defalias 'tramp-rfn-eshadow-update-overlay #[nil "\300\301\302\217\207" [nil (byte-code "\306\307!\204\f\310\307!\203\307\311J!\206!\306\312!\204\310\312!\205!\312 \313\314\306\315!\2041\310\315!\2055\315	d\"!\205r\212\214\316\n\317 	#\206E	Td}\210\320\211	\306\321!\204\\\310\321!\203c\321	dd#\210\306\322!\204o\310\322!\205q\322 -*\207" [non-essential end tramp-rfn-eshadow-update-overlay-regexp tramp-rfn-eshadow-overlay file-name-handler-alist rfn-eshadow-update-overlay-hook subrp overlay-end functionp rfn-eshadow-overlay minibuffer-prompt-end t file-remote-p buffer-substring-no-properties string-match buffer-string nil move-overlay rfn-eshadow-update-overlay] 4) ((error))] 3 (#$ . 59627)])
(byte-code "\300\301!\203\302\301\303\"\210\302\304\305\"\210\300\207" [boundp rfn-eshadow-update-overlay-hook add-hook tramp-rfn-eshadow-update-overlay tramp-unload-hook #[nil "\300\301\302\"\207" [remove-hook rfn-eshadow-update-overlay-hook tramp-rfn-eshadow-update-overlay] 3]] 3)
#@31 Keeps virtual inodes numbers.
(defvar tramp-inodes 0 (#$ . 60890))
#@31 Keeps virtual device numbers.
(defvar tramp-devices 0 (#$ . 60963))
#@166 Return file modes of FILENAME as integer.
If the file modes of FILENAME cannot be determined, return the
value of `default-file-modes', without execute permissions.
(defalias 'tramp-default-file-modes #[(filename) "\301!\206
\302\303 \304\305!\"\207" [filename file-modes logand default-file-modes tramp-compat-octal-to-decimal "0666"] 4 (#$ . 61038)])
#@91 Replace environment variables in FILENAME.
Return the string with the replaced variables.
(defalias 'tramp-replace-environment-variables #[(filename) "\303 \304\216\305\306	\"\211\2032\307\n!\204	\nSH\310=\2042\311\312\313	\"!\2032\314\315\312\316	\"!\317\320	$	+\207" [save-match-data-internal filename idx match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match "$\\(\\w+\\)" zerop 36 getenv match-string 1 replace-match substitute-in-file-name 0 t nil] 6 (#$ . 61399)])
(byte-code "\300\301!\203\302\303\304\"\210\300\207" [fboundp minibuffer-electric-separator mapc #[(x) "\301\302\303\304\305\306\"!\307BB\310BBB!\210\301\311\312\313\314\315\316D\317\316\304\305\306\"!DF\320\316DDFE!\207" [x eval defadvice around intern format "tramp-advice-%s" (activate) ("Invoke `substitute-in-file-name' for Tramp files." (if (and (symbol-value 'minibuffer-electric-file-name-behavior) (tramp-tramp-file-p (buffer-substring))) (let ((s (concat (buffer-substring (point-min) (point)) (string last-command-char)))) (delete-region (point-min) (point)) (insert (substitute-in-file-name s)) (setq ad-return-value last-command-char)) ad-do-it)) add-hook 'tramp-unload-hook lambda nil ad-remove-advice quote 'around ad-activate] 13] (minibuffer-electric-separator minibuffer-electric-tilde)] 3)
#@311 Like `find-operation-coding-system' for Tramp filenames.
Tramp's `insert-file-contents' and `write-region' work over
temporary file names.  If `file-coding-system-alist' contains an
expression, which matches more than the file name suffix, the
coding system might not be determined.  This function repairs it.
(defalias 'tramp-find-file-name-coding-system-alist #[(filename tmpname) "\306	\306\211\203,@\211:\203%\307\n@\f\"\203%\310\300\311
!\nAB\312#\210A\211\204\n\306+\207" [result file-coding-system-alist elt --dolist-tail-- filename tmpname nil string-match add-to-list regexp-quote append] 5 (#$ . 62757)])
#@143 Invoke normal file name handler for OPERATION.
First arg specifies the OPERATION, second arg is a list of arguments to
pass to the OPERATION.
(defalias 'tramp-run-real-handler #[(operation args) "\304\305\306\307\310	=\205\f\nBBBBB	\311	\"*\207" [inhibit-file-name-operation operation inhibit-file-name-handlers args tramp-file-name-handler tramp-vc-file-name-handler tramp-completion-file-name-handler cygwin-mount-name-hook-function cygwin-mount-map-drive-hook-function apply] 7 (#$ . 63392)])
#@144 Invoke `tramp-file-name-handler' for OPERATION.
First arg specifies the OPERATION, second arg is a list of arguments to
pass to the OPERATION.
(defalias 'tramp-completion-run-real-handler #[(operation args) "\304\305\306	=\205\n\nBBB	\307	\"*\207" [inhibit-file-name-operation operation inhibit-file-name-handlers args tramp-completion-file-name-handler cygwin-mount-name-hook-function cygwin-mount-map-drive-hook-function apply] 5 (#$ . 63900)])
#@110 Return file name related to OPERATION file primitive.
ARGS are the arguments OPERATION has been called with.
(defalias 'tramp-file-name-for-operation #[(operation &rest args) "\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\2579\235\203O\376	@!\203J	@\207\377	@!\207\201@\201A\377\201B\201C\201D\201E\201F\201G\201H\201I\201J\201K\201L\201M\257\235\203\261\201N \201O\216\201P	@\"\203\231	@\202\257\201P	A@\"\203\252	A@\202\257\201Qp!*\207\201R=\203\277\201S	8\207\201T\201U\201V\201WF\235\203\345\201Q\201X	@!\203\342	@\202\343p!\207\201Y\201Z\201[\201\\\201]\201^\201_\201`\201a\201b\257\n\235\203\f\f\207\201c\201d\"\207" [operation args save-match-data-internal tramp-file-name-regexp default-directory access-file byte-compiler-base-file-name delete-directory delete-file diff-latest-backup-file directory-file-name directory-files directory-files-and-attributes dired-compress-file dired-uncache file-accessible-directory-p file-attributes file-directory-p file-executable-p file-exists-p file-local-copy file-remote-p file-modes file-name-as-directory file-name-directory file-name-nondirectory file-name-sans-versions file-ownership-preserved-p file-readable-p file-regular-p file-symlink-p file-truename file-writable-p find-backup-file-name find-file-noselect get-file-buffer insert-directory insert-file-contents load make-directory make-directory-internal set-file-modes substitute-in-file-name unhandled-file-name-directory vc-registered set-file-times file-selinux-context set-file-selinux-context abbreviate-file-name create-file-buffer dired-file-modtime dired-make-compressed-filename dired-recursive-delete-directory dired-set-file-modtime dired-shell-unhandle-file-name dired-uucode-file insert-file-contents-literally make-temp-name recover-file vm-imap-check-mail vm-pop-check-mail vm-spool-check-mail file-name-absolute-p expand-file-name add-name-to-file copy-file file-name-all-completions file-name-completion file-newer-than-file-p make-symbolic-link rename-file copy-directory file-in-directory-p file-equal-p dired-make-relative-symlink vm-imap-move-mail vm-pop-move-mail vm-spool-move-mail match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match buffer-file-name write-region 2 set-visited-file-modtime verify-visited-file-modtime make-auto-save-file-name backup-buffer bufferp dired-call-process shell-command process-file start-file-process dired-print-file dired-shell-call-process executable-find start-process call-process call-process-region error "unknown file I/O primitive: %s"] 58 (#$ . 64359)])
#@45 Return foreign file name handler if exists.
(defalias 'tramp-find-foreign-file-name-handler #[(filename) "\306!\205P\307\310\"	\311\211\312
!\2045\313
!\2045\314
!\203/\314
!\315\316\"\235\2035\317 ?\205O\f\203N\f@\fA@!\2035\311A\2025\n,\207" [filename tramp-foreign-file-name-handler-alist res elt handler v tramp-tramp-file-p tramp-dissect-file-name t nil tramp-file-name-method tramp-file-name-user tramp-file-name-host mapcar car tramp-completion-mode-p tramp-methods] 4 (#$ . 67196)])
#@110 Invoke Tramp file name handler.
Falls back to normal file name handler if no Tramp file name handler exists.
(defalias 'tramp-file-name-handler #[(operation &rest args) "\203^\306 \307\216\310\311\312\n#!\313 \314\f!\315\f!\316!\317!\320!\321!\322!\203W\323 \203O \202S\324\325\326\217)\202[\327\n\".\207\327\n\"\207" [tramp-mode save-match-data-internal operation args filename completion match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) tramp-replace-environment-variables apply tramp-file-name-for-operation tramp-completion-mode-p tramp-find-foreign-file-name-handler tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop #[nil "K\306\211<\203\240\n@\307=\203\240\306\310\311!\203\"\312\311\313N@!\206\221\314\315!\2039\316\315!\2044\317\315!\205\221\315 \202\221\320\321!\211\205D\322\f!)\203P\323\320\321!!\202\221\320\324!\211\205[\322\f!)\203g\323\320\324!!\202\221\320\325!\211\205r\322\f!)\203~\323\320\325!!\202\221\326\327!\203\212\323\327!\202\221\330\331!\210\323\332!)\333\n\211*A@)\334\335#\210)\336\337\215\211\336=\203\315+\340\341\342,C-\"C-./0\306\343\344\217,\210\345,-\"\202	\346=\203\377\3061+\347\350\342,C-\"C-./0\306\343\344\217,\210\351+!\210\345,-\")\202	*\207" [foreign result sf file-name-handler-alist d default-directory nil autoload boundp temporary-file-directory eval standard-value fboundp temp-directory subrp functionp getenv "TEMP" file-directory-p file-name-as-directory "TMP" "TMPDIR" file-exists-p "c:/temp" message "Neither `temporary-file-directory' nor `temp-directory' is defined -- using /tmp." "/tmp" load noerror nomessage non-essential (byte-code "\300\301\215\207" [suppress (apply foreign operation args)] 2) 5 "Non-essential received in operation %s" append #2=(byte-code "	X\205}\306 \307\216\203;\310X\203;\311\312\313U\203!\314\2026\315U\203+\314\2026\316U\2035\317\2026\320\fP
#\210	\321Y\205|\203d\322!\203d\323\324!!\203dr\324!q\210\325!)\205|\326!\205|\311\327\330\331\"\fP
$*\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) #3=((error)) tramp-run-real-handler suppress 1 "Suppress received in operation %s" tramp-cleanup x v operation args fmt-string level vec-or-proc tramp-message-show-message] 7] err (funcall #1=#:body) (((debug quit) (byte-code "\306	\307\310\311\nC\"C
\306\312\313\217,\210)\314@A\"\207" [tramp-message-show-message v operation args fmt-string level nil 1 "Interrupt received in operation %s" append #2# #3# signal vec-or-proc err] 6)) (error (byte-code "\203\305	G!\203\n\306>\203\307\207\203&\305	G!\203&\n\310>\203&\207\311\f@\fA\"\207" [completion localname operation filename err zerop (file-exists-p file-directory-p) t (expand-file-name file-name-as-directory) signal] 3))) tramp-run-real-handler foreign v method user host localname hop #1# debug-on-error] 5 (#$ . 67717)])
#@146 If non-nil, then Tramp is currently busy.
Together with `tramp-locker', this implements a locking mechanism
preventing reentrant calls of Tramp.
(defvar tramp-locked nil (#$ . 71112))
#@148 If non-nil, then a caller has locked Tramp.
Together with `tramp-locked', this implements a locking mechanism
preventing reentrant calls of Tramp.
(defvar tramp-locker nil (#$ . 71303))
#@121 Invoke Tramp file name completion handler.
Falls back to normal file name handler if no Tramp file name handler exists.
(defalias 'tramp-completion-file-name-handler #[(operation &rest args) "\306\307	\"\n\203B\f\203B
\310=\2042\311\312!\2042\313\314!\203&\314J\2042\311\315!\2042\311\316!\203B\317 \320\216\321\nA\"*\202G\322\"*\207" [operation tramp-completion-file-name-handler-alist fn directory-sep-char tramp-mode tramp-syntax 47 assoc sep featurep tramp boundp partial-completion-mode ido icicles match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) apply tramp-completion-run-real-handler save-match-data-internal args] 4 (#$ . 71496)])
#@60 Add Tramp file name handlers to `file-name-handler-alist'.
(defalias 'tramp-register-file-name-handlers #[nil "\306\307\"\310	\")\306\311\"\310	\")\312\300\n\307B\"\210\313\307\314\315#\210\312\300\311B\"\210\313\311\314\315#\210\316\317\211\205W
@\320\f\"\211\203N\321\"B)
A\211\2048\317*\207" [file-name-handler-alist a1 tramp-file-name-regexp tramp-completion-file-name-regexp fnh --dolist-tail-- rassq tramp-file-name-handler delq tramp-completion-file-name-handler add-to-list put safe-magic t (epa-file-handler jka-compr-handler) nil rassoc delete entry] 5 (#$ . 72210)])
(tramp-register-file-name-handlers)
#@52 Check, whether OPERATION runs a file name handler.
(defalias 'tramp-exists-file-name-handler #[(operation &rest args) "\300\301\302\217\207" [nil (byte-code "\306\211\n\f\306\307BC\310\f	\"\f\232-\207" [buffer-file-name default-directory file-name-handler-alist fnha operation check-file-name-operation "/" #[(operation &rest args) "	\232\203	\207\n\305	\f\")\207" [check-file-name-operation operation fnha file-name-handler-alist args apply] 3 "Returns OPERATION if it is the one to be checked."] apply args] 4) ((error))] 3 (#$ . 72855)])
(defalias 'tramp-unload-file-name-handlers #[nil "\301\302\303\"\301\302\304\"\"\"\211\207" [file-name-handler-alist delete rassoc tramp-file-name-handler tramp-completion-file-name-handler] 6])
(add-hook 'tramp-unload-hook 'tramp-unload-file-name-handlers)
#@345 If non-nil, external packages signal that they are in file name completion.

This is necessary, because Tramp uses a heuristic depending on last
input event.  This fails when external packages use other characters
but <TAB>, <SPACE> or ?\? for file name completion.  This variable
should never be set globally, the intention is to let-bind it.
(defvar tramp-completion-mode nil (#$ . 73675))
#@69 Check, whether method / user name / host name completion is active.
(defalias 'tramp-completion-mode-p #[nil "\302\303!\203\303J\2061\2061	\304\232\2061\305	!\2051	\306\232\2061\307	!?\2051	\310\232\2061	\311\232\207" [tramp-completion-mode last-input-event boundp non-essential tab natnump 9 event-modifiers 63 32] 2 (#$ . 74073)])
#@175 Check, whether it is possible to connect the remote host w/o side-effects.
This is true, if either the remote host is already connected, or if we are
not in completion mode.
(defalias 'tramp-connectable-p #[(filename) "\306!\205>\307!\310	!\311	!\312	!\313	!\314	!\315 ?\206<\316	!\211\205;\317!\205;\320!\321>).\207" [filename v method user host localname tramp-tramp-file-p tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop tramp-completion-mode-p tramp-get-connection-process processp process-status (run open) hop p] 3 (#$ . 74423)])
#@59 Like `file-name-all-completions' for partial Tramp files.
(defalias 'tramp-completion-handle-file-name-all-completions #[(filename directory) "\306\307	\"!\310\211\211\311\"\312\211#$\313\314\260
\"\203,\315\316
\"\317\320\310\211
\316%\321
!\310%\211&\203\237&@%\322%!'\323%!(\324%!)\325%!*\326'()#+(,\310-*\204\224(\204u)\203\214\327\330\331+!\"\210\332\333\334\335\310-\"\"\"\202\224\332\336+!\".&A\211&\2048*\310%\211&\203\333&@\211%\203\322\311\"%\"\210\317.\fP\310\211%$%\337\302%\306	!G\310O\"\210&A\211&\204\252*\332\n\310\340\341\217\",\207" [filename directory result1 result hop fullname tramp-drop-volume-letter expand-file-name nil string-match "\\(" "\\)+" "\\)" match-string 1 replace-match "" tramp-completion-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-find-method mapc #[(x) "\302	@	A@!\"\211\207" [all-user-hosts x append] 4] tramp-get-completion-function append mapcar #[(x) "\304	\n@A@%\207" [method user host x tramp-get-completion-user-host] 6] delq tramp-get-completion-methods add-to-list (byte-code "\303\304!\203\305\202\f\306\307	\nDC#\207" [fullname filename directory apply tramp-connectable-p tramp-completion-run-real-handler tramp-run-real-handler file-name-all-completions] 5) ((error)) tramp-prefix-regexp tramp-remote-file-name-spec-regexp tramp-postfix-hop-regexp elt --dolist-tail-- method user host localname m tramp-current-user all-user-hosts tramp-prefix-format] 9 (#$ . 75072)])
#@46 Like `file-name-completion' for Tramp files.
(defalias 'tramp-completion-handle-file-name-completion #[(filename directory &optional predicate) "\303\304\305\306	\"\"\n\205\307\310	\"!\205\311#\207" [filename directory predicate try-completion mapcar list file-name-all-completions tramp-connectable-p expand-file-name #[(x) "\303	@\n\"!\207" [predicate x directory expand-file-name] 4]] 7 (#$ . 76646)])
#@110 Returns a list of `tramp-file-name' structures.
They are collected by `tramp-completion-dissect-file-name1'.
(defalias 'tramp-completion-dissect-file-name #[(name) "\306\307\310\311\312\nG!\203\202\n\"
\313	\314\260\315\306\211\211\257
\313	\314\260\306\315\306\211\257
\313	\314\260\306\211\315\306\257
\313\f	\314\260\306\211\315\306\257
\313\316 \313	\314\260	\306\315\317\306\257!
\313\316 \313\f	\314\260\n\306\315\317\306\257\"
\313\316#\313	\314\260	\315\317\306\211\257$
\313\316#\313	\314\260	\315\306\317\306\257%
\313\316#\313\f	\314\260\n\315\306\317\306\257&
\313\316#\313\316 \313	\314\260
\315\317\320\306\257'
\313\316#\313\316 \313\f	\314\260\315\317\320\306\257()\321\232\203
\313\316\313#\322\315O\323#\315\317O\316\313\314\260\202!
\324P\315\320\306\211\257*)\321\232\203I
\313\316\313#\322\315O\323#\315\317O\316\313\314\260\202L
\324P\315\306\320\306\257+\325\326!\"$%&'(*+,\257\"\210\327\306\".\207" [result x-nil tramp-postfix-ipv6-format tramp-postfix-host-format tramp-completion-ipv6-regexp tramp-prefix-regexp nil "\\|\\(\\)" format "[^%s]*" zerop "\\(" "\\)$" 1 "\\)" 2 3 url 0 "\\|" "/$" mapc #[(structure) "\302\303\304	\"\"\207" [structure name add-to-list result tramp-completion-dissect-file-name1] 5] delq tramp-method-regexp tramp-completion-file-name-structure1 tramp-user-regexp tramp-completion-file-name-structure2 tramp-host-regexp tramp-completion-file-name-structure3 tramp-prefix-ipv6-regexp tramp-completion-file-name-structure4 tramp-postfix-user-regexp tramp-completion-file-name-structure5 tramp-completion-file-name-structure6 tramp-postfix-method-regexp tramp-completion-file-name-structure7 tramp-completion-file-name-structure8 tramp-completion-file-name-structure9 tramp-completion-file-name-structure10 tramp-completion-file-name-structure11 tramp-syntax tramp-completion-file-name-structure12 tramp-completion-file-name-structure13 tramp-file-name-structure] 16 (#$ . 77066)])
#@166 Returns a `tramp-file-name' structure matching STRUCTURE.
The structure consists of remote method, remote user,
remote host and localname (filename on remote host).
(defalias 'tramp-completion-dissect-file-name1 #[(structure name) "\306 \307\216\310	@\n\"\205K	A@\205\311	A@\n\"\312	8\205%\311\312	8\n\"\313	8\2051\311\313	8\n\"\314	8\205=\311\314	8\n\"\315
\f\316%,*\207" [save-match-data-internal structure name localname host user match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match match-string 2 3 4 vector nil method] 6 (#$ . 79136)])
#@52 Returns all method completions for PARTIAL-METHOD.
(defalias 'tramp-get-completion-methods #[(partial-method) "\301\302\301\303\"\"\207" [tramp-methods mapcar #[(method) "\205\302\303\304	!P\"\205\305\306\211\211$\207" [method partial-method string-match "^" regexp-quote tramp-completion-make-tramp-file-name nil] 5] car] 5 (#$ . 79756)])
#@129 Returns the most expanded string for user and host name completion.
PARTIAL-USER must match USER, PARTIAL-HOST must match HOST.
(defalias 'tramp-get-completion-user-host #[(method partial-user partial-host user host) "\203-	\203-\n\203&\305\306\307	!P\n\"\203&\206\230\203&\202e\310\211\202e\203G\310\203B\305\306\307!P\"\204e\310\202e	\203a\310\n\203\\\305\306\307	!P\n\"\204e\310\202e\310\211\311G\nG\\!?\205v\312\f\n\310$\207" [partial-user partial-host host user method string-match "^" regexp-quote nil zerop tramp-completion-make-tramp-file-name] 6 (#$ . 80111)])
#@67 Return a (user host) tuple allowed to access.
User is always nil.
(defalias 'tramp-parse-group #[(regexp match-level skip-regexp) "\304\305	\306 \307#\203\304\310\n!D\304w\311V\204\312y\210)\207" [result regexp match-level skip-regexp nil re-search-forward point-at-eol t match-string 0 1] 4 (#$ . 80725)])
#@76 Return a list of (user host) tuples allowed to access.
User is always nil.
(defalias 'tramp-parse-file #[(filename function) "\306\307\310!\203\311\310\312N@!\206\200\313\314!\203(\315\314!\204#\316\314!\205\200\314 \202\200\317\320!\211\2053\321	!)\203?\322\317\320!!\202\200\317\323!\211\205J\321	!)\203V\322\317\323!!\202\200\317\324!\211\205a\321	!)\203m\322\317\324!!\202\200\325\326!\203y\322\326!\202\200\327\330!\210\322\331!)\332!\205\253\333\334!r\fq\210\335\216\336!\210eb\210\306m\204\250 
B\202\233
\237,)\207" [file-name-handler-alist d default-directory filename #1=#:temp-buffer #2=#:--cl-var-- nil boundp temporary-file-directory eval standard-value fboundp temp-directory subrp functionp getenv "TEMP" file-directory-p file-name-as-directory "TMP" "TMPDIR" file-exists-p "c:/temp" message "Neither `temporary-file-directory' nor `temp-directory' is defined -- using /tmp." "/tmp" file-readable-p generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) insert-file-contents function] 3 (#$ . 81046)])
#@88 Return a list of (user host) tuples allowed to access.
Either user or host may be nil.
(defalias 'tramp-parse-rhosts #[(filename) "\301\302\"\207" [filename tramp-parse-file tramp-parse-rhosts-group] 3 (#$ . 82157)])
#@79 Return a (user host) tuple allowed to access.
Either user or host may be nil.
(defalias 'tramp-parse-rhosts-group #[nil "\304\305\306\307\310	\306\311\260\312\n\313 \314#\203 \315\316\317!\316\320!D!\320y\210*\207" [tramp-host-regexp tramp-user-regexp regexp result nil "^\\(" "\\)" "\\([ 	]+" "\\(" "\\)?" re-search-forward point-at-eol t append match-string 3 1] 9 (#$ . 82381)])
#@76 Return a list of (user host) tuples allowed to access.
User is always nil.
(defalias 'tramp-parse-shosts #[(filename) "\301\302\"\207" [filename tramp-parse-file tramp-parse-shosts-group] 3 (#$ . 82776)])
#@67 Return a (user host) tuple allowed to access.
User is always nil.
(defalias 'tramp-parse-shosts-group #[nil "\301\302\303Q\304\305#\207" [tramp-host-regexp tramp-parse-group "^\\(" "\\)" 1 ","] 4 (#$ . 82988)])
#@76 Return a list of (user host) tuples allowed to access.
User is always nil.
(defalias 'tramp-parse-sconfig #[(filename) "\301\302\"\207" [filename tramp-parse-file tramp-parse-sconfig-group] 3 (#$ . 83206)])
#@67 Return a (user host) tuple allowed to access.
User is always nil.
(defalias 'tramp-parse-sconfig-group #[nil "\301\302\303\304R\305\306#\207" [tramp-host-regexp tramp-parse-group "^[ 	]*Host[ 	]+" "\\(" "\\)" 1 ","] 5 (#$ . 83420)])
#@76 Return a list of (user host) tuples allowed to access.
User is always nil.
(defalias 'tramp-parse-shostkeys-sknownhosts #[(dirname regexp) "\306\307\310!\203\311\310\312N@!\206\200\313\314!\203(\315\314!\204#\316\314!\205\200\314 \202\200\317\320!\211\2053\321	!)\203?\322\317\320!!\202\200\317\323!\211\205J\321	!)\203V\322\317\323!!\202\200\317\324!\211\205a\321	!)\203m\322\317\324!!\202\200\325\326!\203y\322\326!\202\200\327\330!\210\322\331!)\321!\205\213\332!\211\306\211 
:\203\301
@\333\334\"\204\272\333!\"\203\272\306\335\336\"D B 
A\211\202\225 \237-\207" [file-name-handler-alist d default-directory dirname files #1=#:--cl-var-- nil boundp temporary-file-directory eval standard-value fboundp temp-directory subrp functionp getenv "TEMP" file-directory-p file-name-as-directory "TMP" "TMPDIR" file-exists-p "c:/temp" message "Neither `temporary-file-directory' nor `temp-directory' is defined -- using /tmp." "/tmp" directory-files string-match "^\\.\\.?$" match-string 1 f #2=#:--cl-var-- regexp] 5 (#$ . 83660)])
#@76 Return a list of (user host) tuples allowed to access.
User is always nil.
(defalias 'tramp-parse-shostkeys #[(dirname) "\302\303	\304Q\"\207" [dirname tramp-host-regexp tramp-parse-shostkeys-sknownhosts "^key_[0-9]+_\\(" "\\)\\.pub$"] 5 (#$ . 84743)])
#@76 Return a list of (user host) tuples allowed to access.
User is always nil.
(defalias 'tramp-parse-sknownhosts #[(dirname) "\302\303	\304Q\"\207" [dirname tramp-host-regexp tramp-parse-shostkeys-sknownhosts "^\\(" "\\)\\.ssh-\\(dss\\|rsa\\)\\.pub$"] 5 (#$ . 85003)])
#@76 Return a list of (user host) tuples allowed to access.
User is always nil.
(defalias 'tramp-parse-hosts #[(filename) "\301\302\"\207" [filename tramp-parse-file tramp-parse-hosts-group] 3 (#$ . 85276)])
#@67 Return a (user host) tuple allowed to access.
User is always nil.
(defalias 'tramp-parse-hosts-group #[nil "\302\303\304	\305\260\306\307#\207" [tramp-ipv6-regexp tramp-host-regexp tramp-parse-group "^\\(" "\\|" "\\)" 1 " 	"] 6 (#$ . 85486)])
#@84 Return a list of (user host) tuples allowed to access.
Host is always "localhost".
(defalias 'tramp-parse-passwd #[(filename) "\302G!\203	\303\207\304	\305\"\207" [tramp-current-user filename zerop (("root" nil)) tramp-parse-file tramp-parse-passwd-group] 3 (#$ . 85737)])
#@75 Return a (user host) tuple allowed to access.
Host is always "localhost".
(defalias 'tramp-parse-passwd-group #[nil "\303\304\305Q\306	\307 \310#\203\311\312!\313D\312y\210\n*\207" [tramp-user-regexp regexp result nil "^\\(" "\\):" re-search-forward point-at-eol t match-string 1 "localhost"] 4 (#$ . 86018)])
#@73 Return a list of (user host) tuples allowed to access.
User may be nil.
(defalias 'tramp-parse-netrc #[(filename) "\301\302\"\207" [filename tramp-parse-file tramp-parse-netrc-group] 3 (#$ . 86340)])
#@64 Return a (user host) tuple allowed to access.
User may be nil.
(defalias 'tramp-parse-netrc-group #[nil "\304\305\306\307\310\306	\307\311\260	\312\n\313 \314#\203\315\316!\315\317!D\317y\210*\207" [tramp-host-regexp tramp-user-regexp regexp result nil "^[ 	]*machine[ 	]+" "\\(" "\\)" "\\([ 	]+login[ 	]+" "\\)?" re-search-forward point-at-eol t match-string 3 1] 10 (#$ . 86547)])
#@76 Return a list of (user host) tuples allowed to access.
User is always nil.
(defalias 'tramp-parse-putty #[(registry-or-dirname) "\305>\2035\306\307!r	q\210\310\216\311\312\313\314\315\314\316\n&!\2053eb\210\314m\2040\317\n!B\202#\237)+\207\320\n\321\f\322Q\"\207" [system-type #1=#:temp-buffer registry-or-dirname #2=#:--cl-var-- tramp-host-regexp (windows-nt) generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) zerop tramp-compat-call-process "reg" nil t "query" tramp-parse-putty-group tramp-parse-shostkeys-sknownhosts "^\\(" "\\)$"] 8 (#$ . 86943)])
#@67 Return a (user host) tuple allowed to access.
User is always nil.
(defalias 'tramp-parse-putty-group #[(registry) "\303\304!\305P\306	\307 \310#\203\303\311\312!D\312y\210\n*\207" [registry regexp result nil regexp-quote "\\\\\\(.+\\)" re-search-forward point-at-eol t match-string 1] 4 (#$ . 87573)])
#@71 Normal hook to be run at the end of `tramp-*-handle-file-local-copy'.
(defvar tramp-handle-file-local-copy-hook nil (#$ . 87887))
#@68 Normal hook to be run at the end of `tramp-*-handle-write-region'.
(defvar tramp-handle-write-region-hook nil (#$ . 88023))
#@45 Like `directory-file-name' for Tramp files.
(defalias 'tramp-handle-directory-file-name #[(directory) "\306!\307	!\310	!\311	!\312	!\313	!\314
G!\2047
\211GSH\315=\2037
\316\230\2047\317\320O\2028.\207" [directory v method user host localname tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop zerop 47 "/" 0 -1 hop] 3 (#$ . 88153)])
#@41 Like `directory-files' for Tramp files.
(defalias 'tramp-handle-directory-files #[(directory &optional full match nosort files-only) "\306!\205c\307\310!!\311\312\"\237\313\211\203U\314\211A@!\f\203-\315\f	\"\203
\203C
\316\232\203=\317	!\204C\306	!\203\203N	P\202O	\nB\202\203^\n\202b\320\n\321\"+\207" [directory item result temp match files-only file-directory-p file-name-as-directory expand-file-name file-name-all-completions "" nil directory-file-name string-match t file-regular-p sort string< full nosort] 3 (#$ . 88592)])
#@56 Like `directory-files-and-attributes' for Tramp files.
(defalias 'tramp-handle-directory-files-and-attributes #[(directory &optional full match nosort id-format) "\304\305\306	\n$\"\207" [directory full match nosort mapcar #[(x) "\304	\203\n\202\305\n\"\"B\207" [x full directory id-format tramp-compat-file-attributes expand-file-name] 5] directory-files] 7 (#$ . 89163)])
#@39 Like `dired-uncache' for Tramp files.
(defalias 'tramp-handle-dired-uncache #[(dir &optional dir-p) "\306\204\307	!\203	\202\310	!!\311\n!\312\n!\313\n!\314\n!\315\n!\316\n\".\207" [dir-p dir v method user host tramp-dissect-file-name file-directory-p file-name-directory tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop tramp-flush-directory-property localname hop] 3 (#$ . 89552)])
#@39 Like `file-exists-p' for Tramp files.
(defalias 'tramp-handle-file-exists-p #[(filename) "\301!??\207" [filename file-attributes] 2 (#$ . 90022)])
#@36 Like `file-modes' for Tramp files.
(defalias 'tramp-handle-file-modes #[(filename) "\302!\206\303	!\205\304\305\306	!8!)\207" [filename truename file-truename file-exists-p tramp-mode-string-to-int 8 file-attributes] 4 (#$ . 90176)])
#@57 Like `file-name-as-directory' but aware of Tramp files.
(defalias 'tramp-handle-file-name-as-directory #[(file) "\302\303\"\304\305	!\306	!\307	!\310\311\312	!\206\313C\"$)\207" [file v tramp-dissect-file-name t tramp-make-tramp-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-run-real-handler file-name-as-directory tramp-file-name-localname ""] 8 (#$ . 90423)])
#@46 Like `file-name-completion' for Tramp files.
(defalias 'tramp-handle-file-name-completion #[(filename directory &optional predicate) "\303!\204\304\305\"\210\306	\307\310\311	\"\"\n\205\312#\207" [directory filename predicate tramp-tramp-file-p error "tramp-handle-file-name-completion invoked on non-tramp directory `%s'" try-completion mapcar list file-name-all-completions #[(x) "\303	@\n\"!\207" [predicate x directory expand-file-name] 4]] 7 (#$ . 90830)])
#@54 Like `file-name-directory' but aware of Tramp files.
(defalias 'tramp-handle-file-name-directory #[(file) "\302\303\"\304\305	!\306	!\307	!\310\311\312	!\206\313C\"$)\207" [file v tramp-dissect-file-name t tramp-make-tramp-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-run-real-handler file-name-directory tramp-file-name-localname ""] 8 (#$ . 91306)])
#@57 Like `file-name-nondirectory' but aware of Tramp files.
(defalias 'tramp-handle-file-name-nondirectory #[(file) "\306!\307	!\310	!\311	!\312	!\313	!\314\315
C\".\207" [file v method user host localname tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop tramp-run-real-handler file-name-nondirectory hop] 3 (#$ . 91704)])
#@48 Like `file-newer-than-file-p' for Tramp files.
(defalias 'tramp-handle-file-newer-than-file-p #[(file1 file2) "\302!\204\303\207\302	!\204\304\207\305\306\307	!8\306\307!8\"\207" [file1 file2 file-exists-p nil t tramp-time-less-p 5 file-attributes] 5 (#$ . 92124)])
#@40 Like `file-regular-p' for Tramp files.
(defalias 'tramp-handle-file-regular-p #[(filename) "\301!\205\302\303!8\304H\305=\207" [filename file-exists-p 8 file-attributes 0 45] 3 (#$ . 92402)])
#@39 Like `file-remote-p' for Tramp files.
(defalias 'tramp-handle-file-remote-p #[(filename &optional identification connected) "\306\307	!\205\210\310	!\311\n!\211\205\312!\205\313!\314>\310\f\203+\315	!\202,	!\316\n!\317\n!\320\n!\321\n!\322\n!\203O\f\205\206\305=\203Z
\202\206\323=\203f\202\206\324=\203r\202\206\325=\203~\202\206\326
\327$.	)\207" [tramp-verbose filename v p c method 3 tramp-tramp-file-p tramp-dissect-file-name tramp-get-connection-process processp process-status (run open) expand-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop user host localname tramp-make-tramp-file-name "" hop connected identification] 6 (#$ . 92604)])
#@40 Like `file-symlink-p' for Tramp files.
(defalias 'tramp-handle-file-symlink-p #[(filename) "\306!\307	!\310	!\311	!\312	!\313	!\314!@\211;\2057\315!\2035\316\n\f$\2027.\207" [filename v method user host localname tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop file-attributes file-name-absolute-p tramp-make-tramp-file-name hop x] 6 (#$ . 93383)])
#@47 Like `find-backup-file-name' for Tramp files.
(defalias 'tramp-handle-find-backup-file-name #[(filename) "\306!\307	!\310	!\311	!\312	!\313	!\314\315!\205.\316J\203,\317\320\316J\"\202.\315J\314\321!\205C\322J\203A\317\323\322J\"\202C\321J
\324\325C\".\207" [filename v method user host localname tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop boundp backup-directory-alist tramp-backup-directory-alist mapcar #[(x) "@A;\203 \304A!\203 \305A!\204 \306	\nA$\202\"AB\207" [x method user host file-name-absolute-p tramp-file-name-p tramp-make-tramp-file-name] 6] bkup-backup-directory-info tramp-bkup-backup-directory-info #[(x) "@CA@;\203%\304A@!\203%\305A@!\204%\306	\nA@$\202(A@C\244AA\244\207" [x method user host file-name-absolute-p tramp-file-name-p tramp-make-tramp-file-name] 6] tramp-run-real-handler find-backup-file-name hop] 4 (#$ . 93847)])
#@46 Like `insert-file-contents' for Tramp files.
(defalias 'tramp-handle-insert-file-contents #[(filename &optional visit beg end replace) "\306 \210\307!\310\211\211\311!\312\f!\313\f!3\314\f!4\315\f!5\316\f!6\310\21178\f\317\320\321\322\"C9:;<\310\323\324\217,\210=\203]>\203]\317?\317^X\203]\310\325\326\217\210\327\216=\205g7?=\330\216\331!\204{\332\333\334D\"\210\202R\335\f!\203\237\310@\3365!)\203\237\337\3405ABCD\257\"\202RB\204\251C\203\372\341\f!\342\343!\204\271\344\343!\203\372\343\fB\203\327C\203\327\321\345B\3465!CBZ	%\202\370B\203\351\321\347B\3465!	$\202\370C\205\370\321\350C\3465!	$\"\210E\340=\205\351E	;\203\351\352
34	$!\202+F;\203(\353F\354#\210F\202+\351!)\355\n\356\357!\"\210	\204B\360
\361\"\203B\nF\362\n\"G\340\n\310\211\211D%).\307!\211HA@,D\207" [filename remote-copy local-copy result v method barf-if-buffer-read-only expand-file-name nil tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop 3 "%s..." format #1="Inserting `%s'" #2=(byte-code "	X\205}\306 \307\216\203;\310X\203;\311\312\313U\203!\314\2026\315U\203+\314\2026\316U\2035\317\2026\320\fP
#\210	\321Y\205|\203d\322!\203d\323\324!!\203dr\324!q\210\325!)\205|\326!\205|\311\327\330\331\"\fP
$*\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) #3=((error)) (byte-code "\303\304!\204\f\305\304!\205\304\306\307\"!\211\205\310\311\312\313	$\303\207" [filename pr tm subrp make-progress-reporter functionp format #1# run-at-time 3 0.1 tramp-progress-reporter-update] 6) ((error)) ((byte-code "\203\306\307!\204\310\307!\203\307!\210	\311\312\313\314\n\"C\315\316\317\217,\207" [tm v filename args fmt-string level subrp cancel-timer functionp 3 "%s...done" format #1# nil #2# #3# vec-or-proc] 6)) ((byte-code "\203	\306	!?\307 \210\310\311!\210\f;\203$
\204 \f\204$\312\f!\210
;\2035\312\313

$!\210\311\207" [visit filename buffer-file-name buffer-read-only local-copy remote-copy file-writable-p set-visited-file-modtime set-buffer-modified-p nil delete-file tramp-make-tramp-file-name tramp-temp-buffer-file-name method user host] 6)) file-exists-p signal file-error "File not found on remote host" tramp-local-host-p file-readable-p tramp-run-real-handler insert-file-contents tramp-make-tramp-temp-file subrp tramp-send-command functionp "dd bs=1 skip=%d if=%s count=%d of=%s" tramp-shell-quote-argument "dd bs=1 skip=%d if=%s of=%s" "dd bs=1 count=%d if=%s of=%s" file-local-copy tramp-make-tramp-file-name copy-file ok set-file-modes tramp-compat-octal-to-decimal "0600" tramp-get-method-parameter tramp-copy-keep-tmpfile tramp-find-file-name-coding-system-alist user host localname hop tm pr args fmt-string level vec-or-proc tramp-message-show-progress-reporter-message tramp-message-show-message tramp-verbose file-name-handler-alist visit beg end replace inhibit-file-name-operation tramp-temp-buffer-file-name file-coding-system-alist x] 9 (#$ . 94835)])
#@30 Like `load' for Tramp files.
(defalias 'tramp-handle-load #[(file &optional noerror nomessage nosuffix must-suffix) "\306\307!!\310	!\311	!\312	!\313	!\314	!+,\204;\315\316P!\203/\316P\202;\315\317P!\203;\317P-\203\215\320!\204\215\321\322\"\204\215	\323\324C./0\32510\326\327\330\211\331N\332\333/.#E!C./20\325\334\335\217,\210\336\332\333/.#C\"-\2103\204\330\315!\204\330	\323\337C./0\32510\326\327\330\211\331N\332\333/.#E!C./20\325\334\335\217,\210\336\332\333/.#C\"-\210\315!\20564?1\325\21156	\340\341\333\342\"C./20\325\334\335\217,\2107\2031\203\3408\343^X\203\325\344\345\217\210\346\2167\205!5?7\347!9\350\216\35193\352\211$\210.\352.\207" [file v method user host localname tramp-dissect-file-name expand-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop file-exists-p ".elc" ".el" file-name-directory string-match "\\.elc?\\'" file-error "File `%s' does not include a `.el' or `.elc' suffix" nil 1 "%s" error-message-string error-message apply format #2=(byte-code "	X\205}\306 \307\216\203;\310X\203;\311\312\313U\203!\314\2026\315U\203+\314\2026\316U\2035\317\2026\320\fP
#\210	\321Y\205|\203d\322!\203d\323\324!!\203dr\324!q\210\325!)\205|\326!\205|\311\327\330\331\"\fP
$*\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) #3=((error)) signal "Cannot load nonexistent file `%s'" 0 "%s..." #1="Loading %s" 3 (byte-code "\303\304!\204\f\305\304!\205\304\306\307\"!\211\205\310\311\312\313	$\303\207" [file pr tm subrp make-progress-reporter functionp format #1# run-at-time 3 0.1 tramp-progress-reporter-update] 6) ((error)) ((byte-code "\203\306\307!\204\310\307!\203\307!\210	\311\312\313\314\n\"C\315\316\317\217,\207" [tm v file args fmt-string level subrp cancel-timer functionp 0 "%s...done" format #1# nil #2# #3# vec-or-proc] 6)) file-local-copy ((delete-file local-copy)) load t hop nosuffix must-suffix args fmt-string vec-or-proc tramp-message-show-message level noerror nomessage tm pr tramp-message-show-progress-reporter-message tramp-verbose local-copy] 10 (#$ . 98283)])
#@39 Like `shell-command' for Tramp files.
(defalias 'tramp-handle-shell-command #[(command &optional output-buffer error-buffer) "\306\307\"\310\311\312\313\n!!\314\"\311\312\313\n!!\315\"B\316	OC\"\317\320
!\203*
\202J
;\2035\321
!\202J
\203?\322p\202J\321	\203H\323\202I\324!\3206!\203W6\202a6;\205a\3216!6	\204\2326\203\232\313\n!7\3127!8\3257!9\3267!:\3277!;\3307!<
\3317!.D\202\233
=\332
!\211>\203\270\333\334!\203\264\317\335\336\217\210\202\270\337\340!\210\f\203\307\341 \210\342\317\322\"\210\202\322r
q\210\317?\343 \210)\f\204\376	\250\203\376\344\345\346=$\211>\347
!\210\350@\351 \210\352>\353\"\210\354>\355\"\210\202f\344\356@\317=\317A&=<\203,r6q\210\357=\211AA@)!\210)\360=\211AA@)!\210\f\203>\361\322!\362 `p\223\210b\210\202fr
q\210deV)\203f\363\364!\203b\365\364!\204[\363\364!\203f\364
!\210\202f\347
!\210.\207" [command asynchronous default-directory args current-buffer-p output-buffer string-match "[ 	]*&[ 	]*\\'" append tramp-get-method-parameter tramp-file-name-method tramp-dissect-file-name tramp-remote-shell tramp-remote-shell-args 0 nil bufferp get-buffer-create t "*Async Shell Command*" "*Shell Command Output*" tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop tramp-make-tramp-temp-file get-buffer-process yes-or-no-p "A command is running.  Kill it? " (kill-process p) ((error)) error "Shell command in progress" barf-if-buffer-read-only push-mark erase-buffer apply start-file-process "*Async Shell*" pop-to-buffer (":%s") shell-mode set-process-sentinel shell-command-sentinel set-process-filter comint-output-filter process-file insert-file-contents delete-file mark mark-marker functionp display-message-or-buffer subrp error-buffer v method user host localname hop buffer p buffer-read-only mode-line-process x] 8 (#$ . 100850)])
#@228 Like `substitute-in-file-name' for Tramp files.
"//" and "/~" substitute only in the local filename part.
If the URL Tramp syntax is chosen, "//" as method delimiter and "/~" at
beginning of local filename are not substituted.
(defalias 'tramp-handle-substitute-in-file-name #[(filename) "\306!\307!\310	!\311	!\312	!\313	!\314	!\315\232\203e
G\316V\203B\317\320
\"\204:\317\321
\316#\203B\322\323C\"\202\214\324\n\205J\323\n!\205Q\323!\f\205X\323\f!
\205a\322\323
C\"$\202\214
;\203\207\317\325
\"\203\207\326!\327\330\331\211
$P\317\332\"\203\207\333P\322\323C\".\207" [filename v method user host localname tramp-replace-environment-variables tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop url 1 string-match "//" "/~" tramp-run-real-handler substitute-in-file-name tramp-make-tramp-file-name ".+?/\\(/\\|~\\)" file-remote-p replace-match "\\1" nil "~$" "/" hop tramp-syntax] 7 (#$ . 102741)])
#@55 Like `unhandled-file-name-directory' for Tramp files.
(defalias 'tramp-handle-unhandled-file-name-directory #[(filename) "\300\301!\207" [expand-file-name "~/"] 2 (#$ . 103767)])
#@22 Send the login name.
(defalias 'tramp-action-login #[(proc vec) ";\204.\306	\307\310#\211\310=\203+\311 \312\216\313\314\315	!!\210\316\317\320!!+\321	\307\n#\210\n)r\315	!q\210	\322\323\324 C\325\326\327\217,\210)	\330\331C\325\326\327\217,\210\332	P\"\207" [tramp-current-user vec value #1=#:wconfig enable-recursive-minibuffers args tramp-get-connection-property "login-as" undef current-window-configuration ((set-window-configuration #1#)) t pop-to-buffer tramp-get-connection-buffer read-string match-string 0 tramp-set-connection-property 6 "\n%s" buffer-string nil (byte-code "	X\205}\306 \307\216\203;\310X\203;\311\312\313U\203!\314\2026\315U\203+\314\2026\316U\2035\317\2026\320\fP
#\210	\321Y\205|\203d\322!\203d\323\324!!\203dr\324!q\210\325!)\205|\326!\205|\311\327\330\331\"\fP
$*\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) ((error)) 3 "Sending login name `%s'" tramp-send-string fmt-string level vec-or-proc tramp-local-end-of-line] 5 (#$ . 103952)])
#@32 Query the user for a password.
(defalias 'tramp-action-password #[(proc vec) "r\306!q\210\307\310\n\"\210\311\312\313\314!C\315\316\317\217,\210\320\321!P\"\210dd}*\207" [proc enable-recursive-minibuffers tramp-password-prompt-regexp vec args fmt-string process-buffer t tramp-check-for-regexp 3 "Sending %s" match-string 1 nil (byte-code "	X\205}\306 \307\216\203;\310X\203;\311\312\313U\203!\314\2026\315U\203+\314\2026\316U\2035\317\2026\320\fP
#\210	\321Y\205|\203d\322!\203d\323\324!!\203dr\324!q\210\325!)\205|\326!\205|\311\327\330\331\"\fP
$*\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) ((error)) process-send-string tramp-read-passwd level vec-or-proc tramp-local-end-of-line] 5 (#$ . 105328)])
#@41 Signal success in finding shell prompt.
(defalias 'tramp-action-succeed #[(proc vec) "\300\301\302\"\207" [throw tramp-action ok] 3 (#$ . 106428)])
#@27 Signal permission denied.
(defalias 'tramp-action-permission-denied #[(proc vec) "\301!\210\302\303\304\"\207" [proc kill-process throw tramp-action permission-denied] 3 (#$ . 106582)])
#@143 Ask the user for confirmation using `yes-or-no-p'.
Send "yes" to remote process on confirmation, abort otherwise.
See also `tramp-action-yn'.
(defalias 'tramp-action-yesno #[(proc vec) "\306 \307\216\310\311 \312\216\313\314!!\210*\315\316\317!!\204$\320\f!\210\321\322\323\"\210r\314!q\210\324\325\326 C\327\330\331\217,\210)\332\333P\"+\207" [#1=#:wconfig enable-recursive-minibuffers save-match-data-internal vec proc args current-window-configuration ((set-window-configuration #1#)) t match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) pop-to-buffer tramp-get-connection-buffer yes-or-no-p match-string 0 kill-process throw tramp-action permission-denied 6 "\n%s" buffer-string nil (byte-code "	X\205}\306 \307\216\203;\310X\203;\311\312\313U\203!\314\2026\315U\203+\314\2026\316U\2035\317\2026\320\fP
#\210	\321Y\205|\203d\322!\203d\323\324!!\203dr\324!q\210\325!)\205|\326!\205|\311\327\330\331\"\fP
$*\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) ((error)) tramp-send-string "yes" fmt-string level vec-or-proc tramp-local-end-of-line] 4 (#$ . 106776)])
#@141 Ask the user for confirmation using `y-or-n-p'.
Send "y" to remote process on confirmation, abort otherwise.
See also `tramp-action-yesno'.
(defalias 'tramp-action-yn #[(proc vec) "\306 \307\216\310\311 \312\216\313\314!!\210*\315\316\317!!\204$\320\f!\210\321\322\323\"\210r\314!q\210\324\325\326 C\327\330\331\217,\210)\332\333P\"+\207" [#1=#:wconfig enable-recursive-minibuffers save-match-data-internal vec proc args current-window-configuration ((set-window-configuration #1#)) t match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) pop-to-buffer tramp-get-connection-buffer y-or-n-p match-string 0 kill-process throw tramp-action permission-denied 6 "\n%s" buffer-string nil (byte-code "	X\205}\306 \307\216\203;\310X\203;\311\312\313U\203!\314\2026\315U\203+\314\2026\316U\2035\317\2026\320\fP
#\210	\321Y\205|\203d\322!\203d\323\324!!\203dr\324!q\210\325!)\205|\326!\205|\311\327\330\331\"\fP
$*\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) ((error)) tramp-send-string "y" fmt-string level vec-or-proc tramp-local-end-of-line] 4 (#$ . 108282)])
#@114 Tell the remote host which terminal type to use.
The terminal type can be configured with `tramp-terminal-type'.
(defalias 'tramp-action-terminal #[(proc vec) "\306\307	C\310\311\312\217,\210r\313!q\210\314\315\316 C\310\311\312\217,\210)\317	P\"\207" [vec tramp-terminal-type args fmt-string level vec-or-proc 5 "Setting `%s' as terminal type." nil (byte-code "	X\205}\306 \307\216\203;\310X\203;\311\312\313U\203!\314\2026\315U\203+\314\2026\316U\2035\317\2026\320\fP
#\210	\321Y\205|\203d\322!\203d\323\324!!\203dr\324!q\210\325!)\205|\326!\205|\311\327\330\331\"\fP
$*\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) ((error)) tramp-get-connection-buffer 6 "\n%s" buffer-string tramp-send-string tramp-local-end-of-line] 4 (#$ . 109778)])
#@40 Check, whether a process has finished.
(defalias 'tramp-action-process-alive #[(proc vec) "\301!\302>?\205
\303\304\305\"\207" [proc process-status (run open) throw tramp-action process-died] 3 (#$ . 110913)])
#@50 Check, whether an out-of-band copy has finished.
(defalias 'tramp-action-out-of-band #[(proc vec) "\306!\307>\203#\310\311!!\203#	\312\313\314\314\315\316\217,\210\317\320\321\"\207\306!\322>\2033\310\311!!\203;\306!\323>\203\204r\324!q\210eb\210\325\314\326#\203p	\327\330\314\314\315\316\217,\210	\312\313\314\314\315\316\217,\210\317\320\321\"\202\202	\312\331\314\314\315\316\217,\210\317\320\332\")\207\314\207" [proc vec args fmt-string level vec-or-proc process-status (stop exit) zerop process-exit-status 3 "Process has finished." nil (byte-code "	X\205}\306 \307\216\203;\310X\203;\311\312\313U\203!\314\2026\315U\203+\314\2026\316U\2035\317\2026\320\fP
#\210	\321Y\205|\203d\322!\203d\323\324!!\203dr\324!q\210\325!)\205|\326!\205|\311\327\330\331\"\fP
$*\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) ((error)) throw tramp-action ok (stop exit) (signal) process-buffer re-search-forward t 5 "'set mode' error ignored." "Process has died." process-died tramp-operation-not-permitted-regexp] 4 (#$ . 111131)])
#@56 Wait for output from the shell and perform one action.
(defalias 'tramp-process-one-action #[(proc vec actions) "\306\211\211\211\211\f\204e\307
\310\"\210\203\n\211A@\311\312\n@J\"\nA@\313\314	C\306\315\316\217,\210\317
	\"\203\313\320\321!C\306\315\316\217,\210
\"\202\f-\207" [action pattern item todo found proc nil tramp-accept-process-output 1 format "\\(%s\\)\\'" 5 "Looking for regexp \"%s\" from remote shell" (byte-code "	X\205}\306 \307\216\203;\310X\203;\311\312\313U\203!\314\2026\315U\203+\314\2026\316U\2035\317\2026\320\fP
#\210	\321Y\205|\203d\322!\203d\323\324!!\203dr\324!q\210\325!)\205|\326!\205|\311\327\330\331\"\fP
$*\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) ((error)) tramp-check-for-regexp "Call `%s'" symbol-name actions vec args fmt-string level vec-or-proc] 5 (#$ . 112562)])
#@189 Perform ACTIONS until success or TIMEOUT.
PROC and VEC indicate the remote connection to be used.  POS, if
set, is the starting point of the region to be deleted in the
connection buffer.
(defalias 'tramp-process-actions #[(proc vec pos actions &optional timeout) "\306\307\310\216	\203\311 \312\313	\"\210\314\315\316\n\f\306$!\317\320#\210\214\307(\321\322\307)*+,\307\323\324\217,\210\325\326\215\211\203\"r\327-!q\210~\210-\330\331\332 C)*+,\307\323\324\217,\210)
\333=\204\241\334-!\210\307-\335
\336=\203u\337\202\200
\340=\203\341\202\200\342\307)*.,/\343 0\344\216\345\216\346\347,.*)%.\2101\247\205\266r\327-!q\210\30721`|*-\207" [#1=#:current-message #2=#:with-temp-message tramp-current-method tramp-current-user tramp-current-host exit #4="" nil ((byte-code "\203	\203\302\303	\"\210\202\302\304!\210\304\207" [#2# #1# message #3="%s" nil] 3)) current-message message #3# tramp-set-connection-property tramp-dissect-file-name tramp-make-tramp-file-name "first-password-request" t 3 "Waiting for prompts from remote shell" (byte-code "	X\205}\306 \307\216\203;\310X\203;\311\312\313U\203!\314\2026\315U\203+\314\2026\316U\2035\317\2026\320\fP
#\210	\321Y\205|\203d\322!\203d\323\324!!\203dr\324!q\210\325!)\205|\326!\205|\311\327\330\331\"\fP
$*\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 #4# 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) ((error)) tramp-action (byte-code "\203\305\306\215\211\305=?\205	)\207\307\n\f#\207" [timeout -with-timeout-value- proc vec actions #5=#:timeout (byte-code "\306\307\310#\211\nB\311\216\312\f
#+\207" [timeout -with-timeout-timer- with-timeout-timers proc vec actions run-with-timer nil #[nil "\300\301\211\"\207" [throw #5#] 3] ((cancel-timer -with-timeout-timer-)) tramp-process-one-action] 5) tramp-process-one-action] 5) tramp-get-connection-buffer 6 "\n%s" buffer-string ok tramp-clear-passwd file-error permission-denied "Permission denied" process-died "Process died" "Login failed" current-window-configuration ((set-window-configuration #6=#:wconfig)) ((byte-code "\2036	\2036\305\n!\2046\306 \2046\307\310\311\f!\203 \f\206/\312!\203,\313!\206/\314!!\210\315\316!\210)\305\207" [vec-or-proc tramp-message-show-message tramp-verbose enable-recursive-minibuffers buffer zerop tramp-completion-mode-p t pop-to-buffer bufferp processp process-buffer tramp-get-connection-buffer sit-for 30] 3)) apply tramp-error proc args fmt-string level vec-or-proc vec signal buffer #6# pos buffer-read-only] 8 (#$ . 113798)])
#@155 Like `accept-process-output' for Tramp processes.
This is needed in order to hide `last-coding-system-used', which is set
for process communication also.
(defalias 'tramp-accept-process-output #[(&optional proc timeout timeout-msecs) "r\306!q\210\307\310\311!D\312\313\314\217,\210\312\211\315\316\215\211\315=\204+\210+\307\317\320 C\312\313\314\217-\207" [proc args fmt-string level vec-or-proc last-coding-system-used process-buffer 10 "%s %s" process-status nil (byte-code "	X\205}\306 \307\216\203;\310X\203;\311\312\313U\203!\314\2026\315U\203+\314\2026\316U\2035\317\2026\320\fP
#\210	\321Y\205|\203d\322!\203d\323\324!!\203dr\324!q\210\325!)\205|\326!\205|\311\327\330\331\"\fP
$*\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) ((error)) #1=#:timeout (byte-code "\305\206\306\307\310#\211\nB\311\216\312\f\205\313$+\207" [timeout -with-timeout-timer- with-timeout-timers proc timeout-msecs run-with-timer 1 nil #[nil "\300\301\211\"\207" [throw #1#] 3] ((cancel-timer -with-timeout-timer-)) accept-process-output t] 6) "\n%s" buffer-string buffer-read-only -with-timeout-value-] 7 (#$ . 116677)])
#@96 Check, whether REGEXP is contained in process buffer of PROC.
Erase echoed commands if exists.
(defalias 'tramp-check-for-regexp #[(proc regexp) "r\306!q\210eb\210\307\310\311#\203D\312	\311\313#\203D\314\224\312	\311\313#\203C\315\310\311#\210\316\317\311\311\320\321\217,\210\322y\210\n`|\210eb\210)\307\310\311#\203|\323\324!\204X\325\324!\205b\324\314dS^#\323\326!\204n\325\326!\205w\326ee\\d^\"\230?\205\203db\210\311\327\330\217)\207" [proc tramp-echoed-echo-mark-regexp begin args fmt-string level process-buffer tramp-get-connection-property "check-remote-echo" nil re-search-forward t 0 tramp-set-connection-property 5 "echo-mark found" (byte-code "	X\205}\306 \307\216\203;\310X\203;\311\312\313U\203!\314\2026\315U\203+\314\2026\316U\2035\317\2026\320\fP
#\210	\321Y\205|\203d\322!\203d\323\324!!\203dr\324!q\210\325!)\205|\326!\205|\311\327\330\331\"\fP
$*\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) ((error)) 1 subrp substring-no-properties functionp buffer-substring-no-properties (re-search-backward regexp nil t) ((error)) vec-or-proc tramp-echo-mark-marker tramp-echo-mark-marker-length] 5 (#$ . 118192)])
#@213 Wait for a REGEXP to appear from process PROC within TIMEOUT seconds.
Expects the output of PROC to be sent to the current buffer.  Returns
the string that matched, or nil.  Waits indefinitely if TIMEOUT is
nil.
(defalias 'tramp-wait-for-regexp #[(proc timeout regexp) "r\306!q\210\307	\"\310 \f\2030\204o\311\310 \n\"\fW\203o\312\313\215\211\312=\204,
\210)\202\204o\314\315\"\210\316!\317>\204f\320\321\322\320$%\"&'\323 (\324\216\325\216\326\327&\"%$%.\210\307	\"\211\2034\330\331\332 C$%)&\320\333\334\217,\210\204\f\203\317\321\335	\fD$%\"&\320*&\315\336\337\"\211\340N\326\341%$#E!C$%)&\320\333\334\217,\210\342\"\326\341%$#C\"-\210\202\321\343	C$%\"&\320*&\315\336\337\"\211\340N\326\341%$#E!C$%)&\320\333\334\217,\210\342\"\326\341%$#C\"-\210+\207" [proc regexp start-time found timeout -with-timeout-value- process-buffer tramp-check-for-regexp current-time tramp-time-diff #1=#:timeout (byte-code "\306\307\310#\211\nB\311\216?\205K\312\f\313\"\210\314\f!\315>\204A\307\f\316\317\307\320 \321\216\322\216\323\324
%.\210\325\f\"\211\202
+\207" [timeout -with-timeout-timer- with-timeout-timers found proc args run-with-timer nil #[nil "\300\301\211\"\207" [throw #1#] 3] ((cancel-timer -with-timeout-timer-)) tramp-accept-process-output 1 process-status (run open) file-error "Process has died" current-window-configuration #3=((set-window-configuration #2=#:wconfig)) #4=((byte-code "\2036	\2036\305\n!\2046\306 \2046\307\310\311\f!\203 \f\206/\312!\203,\313!\206/\314!!\210\315\316!\210)\305\207" [vec-or-proc tramp-message-show-message tramp-verbose enable-recursive-minibuffers buffer zerop tramp-completion-mode-p t pop-to-buffer bufferp processp process-buffer tramp-get-connection-buffer sit-for 30] 3)) apply tramp-error tramp-check-for-regexp fmt-string signal vec-or-proc buffer #2# regexp] 7) tramp-accept-process-output 1 process-status (run open) nil file-error "Process has died" current-window-configuration #3# #4# apply tramp-error 6 "\n%s" buffer-string (byte-code "	X\205}\306 \307\216\203;\310X\203;\311\312\313U\203!\314\2026\315U\203+\314\2026\316U\2035\317\2026\320\fP
#\210	\321Y\205|\203d\322!\203d\323\324!!\203dr\324!q\210\325!)\205|\326!\205|\311\327\330\331\"\fP
$*\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) ((error)) "[[Regexp `%s' not found in %d secs]]" "%s" error-message-string error-message format signal "[[Regexp `%s' not found]]" args fmt-string vec-or-proc buffer #2# level tramp-message-show-message] 11 (#$ . 119725)])
#@246 Send the STRING via connection VEC.

The STRING is expected to use Unix line-endings, but the lines sent to
the remote host use line-endings as defined in the variable
`tramp-rsh-end-of-line'.  The communication buffer is erased before sending.
(defalias 'tramp-send-string #[(vec string) "\306!\307	\310\311#	\204B\312\313\311#\311$#\314\315\316
\211\317N\320\321\f#E!C%#\311\322\323\217,\210\305
\320\321\f#C\"-\210\324	\325\326 #\210\327\315&C%#\311\322\323\217,\210r\330!q\210\311'ed|\210)\331\332\333&\334\"(#\211&\335\230\204\215&\336\311O(\230\204\215&(P&\n\203\333\337\n!\204\333\340&G)\211*)W\205\327\327\341*\211\n\\)^D%#\311\322\323\217,\210\342	&*\211\n\\)^O\"\210*\n\\\211*\202\240*\202\340\342	&\"+\207" [vec p chunksize args fmt-string signal tramp-get-connection-process tramp-get-connection-property "chunksize" nil file-error "Can't send string to remote host -- not logged in" 1 "%s" error-message-string error-message apply format (byte-code "	X\205}\306 \307\216\203;\310X\203;\311\312\313U\203!\314\2026\315U\203+\314\2026\316U\2035\317\2026\320\fP
#\210	\321Y\205|\203d\322!\203d\323\324!!\203dr\324!q\210\325!)\205|\326!\205|\311\327\330\331\"\fP
$*\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 #1="" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) ((error)) tramp-set-connection-property "last-cmd-time" current-time 10 tramp-get-connection-buffer mapconcat identity tramp-compat-split-string "\n" #1# -1 zerop 0 "Sending chunk from %s to %s" process-send-string vec-or-proc tramp-message-show-message level string buffer-read-only tramp-rsh-end-of-line end pos] 11 (#$ . 122698)])
#@76 Returns the virtual inode number.
If it doesn't exist, generate a new one.
(defalias 'tramp-get-inode #[(vec) "\303\304!!\203(\305\304!\306\307$\211\307=\203%\nT\211\310\304!\306	$\210	)\207\nT\211\207" [vec value tramp-inodes file-name-absolute-p tramp-file-name-localname tramp-get-file-property "inode" undef tramp-set-file-property] 6 (#$ . 124692)])
#@77 Returns the virtual device number.
If it doesn't exist, generate a new one.
(defalias 'tramp-get-device #[(vec) "\303\304!\305\306#\211\306=\203\307\nT\211B\310\304!\305	#\210	)\207" [vec value tramp-devices tramp-get-connection-property tramp-get-connection-process "device" undef -1 tramp-set-connection-property] 5 (#$ . 125064)])
#@466 Check, whether the remote parts of FILE1 and FILE2 are identical.
The check depends on method, user and host name of the files.  If
one of the components is missing, the default values are used.
The local file name parts of FILE1 and FILE2 are not taken into
account.

Example:

  (tramp-equal-remote "/ssh::/etc" "/<your host name>:/home")

would yield `t'.  On the other hand, the following check results in nil:

  (tramp-equal-remote "/sudo::/etc" "/su::/etc")
(defalias 'tramp-equal-remote #[(file1 file2) "\302!;\205\302	!;\205\302!\302	!\230\207" [file1 file2 file-remote-p] 3 (#$ . 125412)])
#@70 Converts a ten-letter `drwxrwxrwx'-style mode string into mode bits.
(defalias 'tramp-mode-string-to-int #[(mode-string) "\306	\307\n!)\211\310H\311H\312H8\313H9\314H:\315H;\316H<\317H=\320H>\321 ?\322\216\323\324\f\325\"\203H\326\327!\202W\324\f\330\"\203S\331\202W\332\333\f\"\324
\334\"\203d\326\335!\202s\324
\330\"\203o\331\202s\332\336
\"\3248\337\"\203\201\326\340!\202\256\3248\341\"\203\217\326\342!\202\256\3248\343\"\203\235\326\344!\202\256\3248\330\"\203\251\331\202\256\332\3458\"\3249\325\"\203\274\326\346!\202\315\3249\330\"\203\310\331\202\315\332\3479\"\324:\334\"\203\333\326\350!\202\354\324:\330\"\203\347\331\202\354\332\351:\"\324;\337\"\203\372\326\352!\202'\324;\341\"\203\326\353!\202'\324;\343\"\203\326\354!\202'\324;\330\"\203\"\331\202'\332\355;\"\324<\325\"\2035\326\356!\202F\324<\330\"\203A\331\202F\332\357<\"\324=\334\"\203T\326\360!\202e\324=\330\"\203`\331\202e\332\361=\"\324>\337\"\203s\326\362!\202\240\324>\363\"\203\201\326\364!\202\240\324>\365\"\203\217\326\366!\202\240\324>\330\"\203\233\331\202\240\332\367>\"&	.
\207" [case-fold-search mode-string string mode-chars owner-read owner-write nil vconcat 1 2 3 4 5 6 7 8 9 match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) logior char-equal 114 tramp-compat-octal-to-decimal "00400" 45 0 error "Second char `%c' must be one of `r-'" 119 "00200" "Third char `%c' must be one of `w-'" 120 "00100" 83 "04000" 115 "04100" "Fourth char `%c' must be one of `xsS-'" "00040" "Fifth char `%c' must be one of `r-'" "00020" "Sixth char `%c' must be one of `w-'" "00010" "02000" "02010" "Seventh char `%c' must be one of `xsS-'" "00004" "Eighth char `%c' must be one of `r-'" "00002" "Ninth char `%c' must be one of `w-'" "00001" 84 "01000" 116 "01001" "Tenth char `%c' must be one of `xtT-'" owner-execute-or-setid group-read group-write group-execute-or-setid other-read other-write other-execute-or-sticky save-match-data-internal] 13 (#$ . 126024)])
#@59 Return t if this points to the local host, nil otherwise.
(defalias 'tramp-local-host-p #[(vec) "\305!\211;\205\301\306\n	\"\205\301\307\310!\311\"\205\301\312\313\310!\314!	\315\316\317!\2033\320\317\321N@!\206\242\322\323!\203J\324\323!\204E\325\323!\205\242\323 \202\242\326\327!\211\205U\330\f!)\203a\331\326\327!!\202\242\326\332!\211\205l\330\f!)\203x\331\326\332!!\202\242\326\333!\211\205\203\330\f!)\203\217\331\326\333!!\202\242\334\335!\203\233\331\335!\202\242\336\337!\210\331\340!)$!\205\301\341\342 !\206\301\341\324\343!\204\274\325\343!\205\300\343\344\"!)\207" [vec host tramp-local-host-regexp file-name-handler-alist d tramp-file-name-host string-match tramp-get-method-parameter tramp-file-name-method tramp-login-program file-writable-p tramp-make-tramp-file-name tramp-file-name-user nil boundp temporary-file-directory eval standard-value fboundp temp-directory subrp functionp getenv "TEMP" file-directory-p file-name-as-directory "TMP" "TMPDIR" file-exists-p "c:/temp" message "Neither `temporary-file-directory' nor `temp-directory' is defined -- using /tmp." "/tmp" zerop user-uid tramp-get-remote-uid integer] 9 (#$ . 128112)])
#@76 Return directory for temporary files on the remote host identified by VEC.
(defalias 'tramp-get-remote-tmpdir #[(vec) "\306\307\310#\211\310=\203n\311\312!\313!\314!\315\312!\316\"\206 \317$\320\n!\2032\321\n!\2032\n\202f\322\323\nC\324\325\326\327
\211\330N\331\332\f#E!C \324\333\334\217,\210\305
\331\332\f#C\"-)\335\307	#\210	)\207" [vec value dir args fmt-string signal tramp-get-connection-property "tmpdir" undef tramp-make-tramp-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-get-method-parameter tramp-tmpdir "/tmp" file-directory-p file-writable-p file-error "Directory %s not accessible" nil 1 "%s" error-message-string error-message apply format (byte-code "	X\205}\306 \307\216\203;\310X\203;\311\312\313U\203!\314\2026\315U\203+\314\2026\316U\2035\317\2026\320\fP
#\210	\321Y\205|\203d\322!\203d\323\324!!\203dr\324!q\210\325!)\205|\326!\205|\311\327\330\331\"\fP
$*\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) ((error)) tramp-set-connection-property vec-or-proc tramp-message-show-message level] 11 (#$ . 129309)])
#@108 Create a temporary file on the remote host identified by VEC.
Return the local name of the temporary file.
(defalias 'tramp-make-tramp-temp-file #[(vec) "\306\307	!\"\310\n\204+\311!\312\n!\203\310\211\202\n\313\n!\210\314\n\315\316!\"\210\202	\317\n!\320\f!\321\f!\322\f!\323\f!\324\f!.\207" [tramp-temp-name-prefix vec result prefix v method expand-file-name tramp-get-remote-tmpdir nil make-temp-name file-exists-p set-file-times set-file-modes tramp-compat-octal-to-decimal "0700" tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop user host localname hop] 5 (#$ . 130787)])
#@51 Remove temporary files related to current buffer.
(defalias 'tramp-delete-temp-file-function #[nil ";\205	\301\302\303\217\207" [tramp-temp-buffer-file-name nil (delete-file tramp-temp-buffer-file-name) ((error))] 3 (#$ . 131480)])
(byte-code "\300\301\302\"\210\300\303\304\"\210\305\306!\204!\307\306\310\311\312$\210\313\306\312\"\210\300\303\314\"\210\312\207" [add-hook kill-buffer-hook tramp-delete-temp-file-function tramp-unload-hook #[nil "\300\301\302\"\207" [remove-hook kill-buffer-hook tramp-delete-temp-file-function] 3] tramp-exists-file-name-handler make-auto-save-file-name ad-add-advice (tramp-advice-make-auto-save-file-name nil t (advice lambda nil "Invoke `tramp-*-handle-make-auto-save-file-name' for Tramp files." (if (tramp-tramp-file-p (buffer-file-name)) (setq ad-return-value (tramp-file-name-handler 'make-auto-save-file-name)) ad-do-it))) around nil ad-activate #[nil "\300\301\302\303#\210\304\301!\207" [ad-remove-advice make-auto-save-file-name around tramp-advice-make-auto-save-file-name ad-activate] 4]] 5)
#@72 Set permissions of autosaved remote files to the original permissions.
(defalias 'tramp-set-auto-save-file-modes #[nil "\302 \303!\2052\304 \2052	;\2052	\232?\2052\305	!\204&\306\307\310	#\210\311	\312!\2061\313\314!\")\207" [bfn buffer-auto-save-file-name buffer-file-name tramp-tramp-file-p buffer-modified-p file-exists-p write-region "" nil set-file-modes file-modes tramp-compat-octal-to-decimal "0600"] 4 (#$ . 132531)])
(byte-code "\300\301\302\"\210\300\303\304\"\207" [add-hook auto-save-hook tramp-set-auto-save-file-modes tramp-unload-hook #[nil "\300\301\302\"\207" [remove-hook auto-save-hook tramp-set-auto-save-file-modes] 3]] 3)
#@103 Replace all occurrences of the string FROM with TO in STRING.
ALIST is of the form ((FROM . TO) ...).
(defalias 'tramp-subst-strs-in-string #[(alist string) "\306 \307\216	\203,	@\211@\nA\310\311!
\"\203%\312\f\313\211
$\202	A+\202
*\207" [save-match-data-internal alist pr from to string match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match regexp-quote replace-match t] 6 (#$ . 133193)])
#@138 Read a password from user (compat function).
Consults the auth-source package.
Invokes `password-read' if available, `read-passwd' else.
(defalias 'tramp-read-passwd #[(proc &optional prompt) "\306	\n\307$\f\206!r\310
!q\210\311
,\"\210\312\313\314\315\316!!#)-\317\211./\320!0\3210!1\3220!2\3230!3\3240!4\3250!5\326\327!\203\257\3300\331\317#\203\257\332\333!\203\233\334\333!\204m\335\333!\205|\333\336\316\337	\206v\340\341\n\342&.\343.@\344\"/\335/!\203\223/ \202\225/\211/\202\254\334\345!\204\247\335\345!\203\257\345\346\n#\206\375\335\347!\203\371\3300\331\317#\204\316\334\350!\204\312\335\350!\203\316\350!\210\334\347!\204\332\335\347!\205\337\347-\"6\334\351!\204\355\335\351!\203\363\3516\"\2106)\206\375\352-!\3530\331\317#\210.\n\207" [tramp-current-method tramp-current-user tramp-current-host key prompt proc tramp-make-tramp-file-name "" process-buffer tramp-check-for-regexp format "%s for %s " capitalize match-string 1 nil tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop boundp auth-sources tramp-get-connection-property "first-password-request" fboundp auth-source-search subrp functionp :max :user t :host :port plist-get :secret auth-source-user-or-password "password" password-read password-cache-remove password-cache-add read-passwd tramp-set-connection-property tramp-password-prompt-regexp pw-prompt auth-info auth-passwd v method user host localname hop password] 10 (#$ . 133660)])
#@53 Clear password cache for connection related to VEC.
(defalias 'tramp-clear-passwd #[(vec) "\301\302!\204\f\303\302!\205\302\304\305!\306!\307!\310$!\207" [vec subrp password-cache-remove functionp tramp-make-tramp-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host ""] 6 (#$ . 135228)])
#@36 Evaluated by "(days-to-time 183)".
(defconst tramp-half-a-year '(241 17024) (#$ . 135551))
#@40 Alist mapping month names to integers.
(defconst tramp-parse-time-months '(("jan" . 1) ("feb" . 2) ("mar" . 3) ("apr" . 4) ("may" . 5) ("jun" . 6) ("jul" . 7) ("aug" . 8) ("sep" . 9) ("oct" . 10) ("nov" . 11) ("dec" . 12)) (#$ . 135648))
#@55 Say whether time value T1 is less than time value T2.
(defalias 'tramp-time-less-p #[(t1 t2) "\204\302	\204\f\303@	@W\206#@	@U\205#A@	A@W\207" [t1 t2 (0 0) (0 0)] 2 (#$ . 135892)])
#@80 Subtract two time values.
Return the difference in the format of a time value.
(defalias 'tramp-time-subtract #[(t1 t2) "\204\304	\204\f\305\211A@)	\211A@)W\306@	@\203'\307\202(\310#\2031\311\2022\310\211A@)\\	\211A@)Z)D\207" [t1 t2 x borrow (0 0) (0 0) - 1 0 65536] 5 (#$ . 136090)])
#@129 Return the difference between the two times, in seconds.
T1 and T2 are time values (as returned by `current-time' for example).
(defalias 'tramp-time-diff #[(t1 t2) "\304\305!\203+\304\306!\203+\307\306!\204\310\306!\205\244\306\307\305!\204%\310\305!\205)\305	\"!\207\304\305!\203V\304\311!\203V\307\311!\204C\310\311!\205\244\311\307\305!\204P\310\305!\205T\305	\"!\207\304\312!\203\211\307\312!\204h\310\312!\205\244\312G\313W\203w\314\315\"\202x	G\313W\203\206\314	\316\"\202\207	\"\207\317	\"\320\n@\321_\n\211A@)\322\n8\206\240\323\324\245#)\207" [t1 t2 time x fboundp subtract-time float-time subrp functionp time-to-seconds itimer-time-difference 3 append (0) (0) tramp-time-subtract + 65536.0 2 0 1000000.0] 6 (#$ . 136402)])
#@91 Similar to `shell-quote-argument', but groks newlines.
Only works for Bourne-like shells.
(defalias 'tramp-shell-quote-argument #[(s) "\306\307 \310\216\311\n!\312\313\314\"!\211G\315Y\203'
\316\315O\317\230\203'
\320\321O\322\f
\"\203;\323\313\324\"\325\211
$\202'
-\207" [system-type save-match-data-internal s tramp-rsh-end-of-line nl result not-windows match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) shell-quote-argument regexp-quote format "\\%s" 2 0 "\\~" 1 nil string-match replace-match "'%s'" t] 6 (#$ . 137172)])
#@42 Discard Tramp from loading remote files.
(defalias 'tramp-unload-tramp #[nil "\300\301!\204\f\302\301!\203\301 \210\303\304\305\217\207" [subrp tramp-ftp-enable-ange-ftp functionp nil (byte-code "\300\301\302\"\207" [unload-feature tramp force] 3) ((error))] 3 (#$ . 137763) nil])
(provide 'tramp)

MMCT - 2023