PNG  IHDR* pHYs+ IDATx]n#; cdLb Ǚ[at¤_:uP}>!Usă cag޿ ֵNu`ݼTâabO7uL&y^wFٝA"l[|ŲHLN밪4*sG3|Dv}?+y߉{OuOAt4Jj.u]Gz*҉sP'VQKbA1u\`& Af;HWj hsO;ogTu uj7S3/QzUr&wS`M$X_L7r2;aE+ώ%vikDA:dR+%KzƉo>eOth$z%: :{WwaQ:wz%4foɹE[9<]#ERINƻv溂E%P1i01 |Jvҗ&{b?9g=^wζXn/lK::90KwrюO\!ջ3uzuGv^;騢wq<Iatv09:tt~hEG`v;3@MNZD.1]L:{ծI3`L(÷ba")Y.iljCɄae#I"1 `3*Bdz>j<fU40⨬%O$3cGt]j%Fߠ_twJ;ABU8vP3uEԑwQ V:h%))LfraqX-ۿX]v-\9I gl8tzX ]ecm)-cgʒ#Uw=Wlێn(0hPP/ӨtQ“&J35 $=]r1{tLuǮ*i0_;NƝ8;-vݏr8+U-kruȕYr0RnC]*ެ(M:]gE;{]tg(#ZJ9y>utRDRMdr9㪩̞zֹb<ģ&wzJM"iI( .ꮅX)Qw:9,i좜\Ԛi7&N0:asϓc];=ΗOӣ APqz93 y $)A*kVHZwBƺnWNaby>XMN*45~ղM6Nvm;A=jֲ.~1}(9`KJ/V F9[=`~[;sRuk]rєT!)iQO)Y$V ی ۤmzWz5IM Zb )ˆC`6 rRa}qNmUfDsWuˤV{ Pݝ'=Kֳbg,UҘVz2ﴻnjNgBb{? ߮tcsͻQuxVCIY۠:(V뺕 ٥2;t`@Fo{Z9`;]wMzU~%UA蛚dI vGq\r82iu +St`cR.6U/M9IENDB`#!/bin/sh # # Copyright © 2020 Helmut Grohne # Copyright © 2020 Guillem Jover # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . set -e PROGNAME=$(basename "$0") version="1.20.9" EOL="\n" PKGDATADIR_DEFAULT='/usr/share/dpkg' PKGDATADIR="${DPKG_DATADIR:-$PKGDATADIR_DEFAULT}" . "$PKGDATADIR/sh/dpkg-error.sh" show_version() { cat <...] Options: -z, --zero end output line with NUL, not newline. --instdir set the root directory. --root set the root directory. --version show the version. -?, --help show this help message. END } canonicalize() { local src="$1" local root="$DPKG_ROOT" local loop=0 local result="$root" local dst # Check whether the path is relative and make it absolute otherwise. if [ "$src" = "${src#/}" ]; then src="$(pwd)/$src" src="${src#"$root"}" fi # Remove prefixed slashes. while [ "$src" != "${src#/}" ]; do src=${src#/} done while [ -n "$src" ]; do # Get the first directory component. prefix=${src%%/*} # Remove the first directory component from src. src=${src#"$prefix"} # Remove prefixed slashes. while [ "$src" != "${src#/}" ]; do src=${src#/} done # Resolve the first directory component. if [ "$prefix" = . ]; then # Ignore, stay at the same directory. : elif [ "$prefix" = .. ]; then # Go up one directory. result=${result%/*} if [ -n "$root" ] && [ "${result#"$root"}" = "$result" ]; then result="$root" fi elif [ -h "$result/$prefix" ]; then loop=$((loop + 1)) if [ "$loop" -gt 25 ]; then error "too many levels of symbolic links" fi # Resolve the symlink within $result. dst=$(readlink "$result/$prefix") case "$dst" in /*) # Absolute pathname, reset result back to $root. result=$root src="$dst${src:+/$src}" # Remove prefixed slashes. while [ "$src" != "${src#/}" ]; do src=${src#/} done ;; *) # Relative pathname. src="$dst${src:+/$src}" ;; esac else # Otherwise append the prefix. result="$result/$prefix" fi done # We are done, print the resolved pathname, w/o $root. result="${result#"$root"}" printf "%s$EOL" "${result:-/}" } setup_colors DPKG_ROOT="${DPKG_ROOT:-}" export DPKG_ROOT while [ $# -ne 0 ]; do case "$1" in -z|--zero) EOL="\0" ;; --instdir|--root) shift DPKG_ROOT=$1 ;; --instdir=*) DPKG_ROOT="${1#--instdir=}" ;; --root=*) DPKG_ROOT="${1#--root=}" ;; --version) show_version exit 0 ;; --help|-\?) show_usage exit 0 ;; --) shift pathname="$1" ;; -*) badusage "unknown option: $1" ;; *) pathname="$1" ;; esac shift done # Normalize root directory. DPKG_ROOT="${DPKG_ROOT:+$(realpath "$DPKG_ROOT")}" # Remove default root dir. if [ "$DPKG_ROOT" = "/" ]; then DPKG_ROOT="" fi [ -n "$pathname" ] || badusage "missing pathname" if [ "${pathname#"$DPKG_ROOT"}" != "$pathname" ]; then error "link '$pathname' includes root prefix '$DPKG_ROOT'" fi canonicalize "$pathname" exit 0