diff --git a/msys2/.gitattributes b/msys2/.gitattributes deleted file mode 100644 index 741c0a207..000000000 --- a/msys2/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -* binary \ No newline at end of file diff --git a/msys2/clang32.exe b/msys2/clang32.exe new file mode 100644 index 000000000..b026c08e6 Binary files /dev/null and b/msys2/clang32.exe differ diff --git a/msys2/clang32.ico b/msys2/clang32.ico new file mode 100644 index 000000000..39039bab1 Binary files /dev/null and b/msys2/clang32.ico differ diff --git a/msys2/clang32.ini b/msys2/clang32.ini new file mode 100644 index 000000000..45e964685 --- /dev/null +++ b/msys2/clang32.ini @@ -0,0 +1,5 @@ +#MSYS=winsymlinks:nativestrict +#MSYS=error_start:mingw64/bin/qtcreator.exe|-debug| +#CHERE_INVOKING=1 +#MSYS2_PATH_TYPE=inherit +MSYSTEM=CLANG32 diff --git a/msys2/clang64.exe b/msys2/clang64.exe index 026d9ded4..ade89fe9f 100644 Binary files a/msys2/clang64.exe and b/msys2/clang64.exe differ diff --git a/msys2/clangarm64.exe b/msys2/clangarm64.exe new file mode 100644 index 000000000..5f81fdd4a Binary files /dev/null and b/msys2/clangarm64.exe differ diff --git a/msys2/clangarm64.ico b/msys2/clangarm64.ico new file mode 100644 index 000000000..088a279db Binary files /dev/null and b/msys2/clangarm64.ico differ diff --git a/msys2/clangarm64.ini b/msys2/clangarm64.ini new file mode 100644 index 000000000..45c98c6b1 --- /dev/null +++ b/msys2/clangarm64.ini @@ -0,0 +1,5 @@ +#MSYS=winsymlinks:nativestrict +#MSYS=error_start:mingw64/bin/qtcreator.exe|-debug| +#CHERE_INVOKING=1 +#MSYS2_PATH_TYPE=inherit +MSYSTEM=CLANGARM64 diff --git a/msys2/dir b/msys2/dir deleted file mode 100644 index e640bffd0..000000000 --- a/msys2/dir +++ /dev/null @@ -1,15 +0,0 @@ -This is the file .../info/dir, which contains the -topmost node of the Info hierarchy, called (dir)Top. -The first time you invoke Info you start off looking at this node. - -File: dir, Node: Top This is the top of the INFO tree - - This (the Directory node) gives a menu of major topics. - Typing "q" exits, "H" lists all Info commands, "d" returns here, - "h" gives a primer for first-timers, - "mEmacs" visits the Emacs manual, etc. - - In Emacs, you can click mouse button 2 on a menu item or cross reference - to select it. - -* Menu: diff --git a/msys2/etc/bash.bashrc b/msys2/etc/bash.bashrc index 4d825de9d..5eaa3334c 100644 --- a/msys2/etc/bash.bashrc +++ b/msys2/etc/bash.bashrc @@ -54,8 +54,12 @@ if [[ -n "$(command -v getent)" ]] && id -G | grep -q "$(getent -w group 'S-1-16 then _ps1_symbol='\[\e[1m\]#\[\e[0m\]' else _ps1_symbol='\$' fi -[[ $(declare -p PS1 2>/dev/null | cut -c 1-11) = 'declare -x ' ]] || \ +case "$(declare -p PS1 2>/dev/null)" in +'declare -x '*) ;; # okay +*) export PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[35m\]$MSYSTEM\[\e[0m\] \[\e[33m\]\w\[\e[0m\]\n'"${_ps1_symbol}"' ' + ;; +esac unset _ps1_symbol # Uncomment to use the terminal colours set in DIR_COLORS diff --git a/msys2/etc/config.site b/msys2/etc/config.site index 6a0d281ea..d02bf2bde 100644 --- a/msys2/etc/config.site +++ b/msys2/etc/config.site @@ -18,4 +18,4 @@ if ( test -z "$prefix" || test "x$prefix" = "xNONE" ) && \ ( test -z "$exec_prefix" || test "x$exec_prefix" = "xNONE" ); then prefix="${MSYSTEM_PREFIX}" && \ ${as_echo-echo} "$config_site_me:${as_lineno-$LINENO}: default prefix set to $prefix" >&5 -fi \ No newline at end of file +fi diff --git a/msys2/etc/inputrc b/msys2/etc/inputrc new file mode 100644 index 000000000..e09ca5b2a --- /dev/null +++ b/msys2/etc/inputrc @@ -0,0 +1,103 @@ +# To the extent possible under law, the author(s) have dedicated all +# copyright and related and neighboring rights to this software to the +# public domain worldwide. This software is distributed without any warranty. +# You should have received a copy of the CC0 Public Domain Dedication along +# with this software. +# If not, see . + +# "\e[3~": delete-char + +# VT +# "\e[1~": beginning-of-line +# "\e[4~": end-of-line + +# kvt +# "\e[H": beginning-of-line +# "\e[F": end-of-line + +# rxvt and konsole (i.e. the KDE-app...) +# "\e[7~": beginning-of-line +# "\e[8~": end-of-line + +# VT220 +# "\eOH": beginning-of-line +# "\eOF": end-of-line + +# Allow 8-bit input/output +# set meta-flag on +# set convert-meta off +# set input-meta on +# set output-meta on +#$if Bash + # Don't ring bell on completion + set bell-style none + + # or, don't beep at me - show me + #set bell-style visible + + # Show all instead of beeping first + set show-all-if-ambiguous off + + # Filename completion/expansion + set completion-ignore-case on + #set show-all-if-ambiguous on + + # Expand homedir name + #set expand-tilde on + + # Append "/" to all dirnames + #set mark-directories on + #set mark-symlinked-directories on + + # visible-stats + # Append a mark according to the file type in a listing + set visible-stats off + set mark-directories on + + # Match all files + #set match-hidden-files on + + # 'Magic Space' + # Insert a space character then performs + # a history expansion in the line + #Space: magic-space +#$endif + +# MSYSTEM is emacs based +$if mode=emacs + # Common to Console & RXVT + "\e[2~": paste-from-clipboard # "Ins. Key" + "\e[5~": beginning-of-history # Page up + "\e[6~": end-of-history # Page down + + $if term=msys # RXVT + "\e[7~": beginning-of-line # Home Key + "\e[8~": end-of-line # End Key + "\e[11~": display-shell-version # F1 + "\e[15~": re-read-init-file # F5 + "\e[12~": "Function Key 2" + "\e[13~": "Function Key 3" + "\e[14~": "Function Key 4" + "\e[17~": "Function Key 6" + "\e[18~": "Function Key 7" + "\e[19~": "Function Key 8" + "\e[20~": "Function Key 9" + "\e[21~": "Function Key 10" + $else + # Eh, normal Console is not really cygwin anymore, is it? Using 'else' instead. -mstormo + # $if term=cygwin # Console + "\e[1~": beginning-of-line # Home Key + "\e[4~": end-of-line # End Key + "\e[3~": delete-char # Delete Key + "\e\e[C": forward-word # Alt-Right + "\e\e[D": backward-word # Alt-Left + "\e[1;5C": forward-word # ctrl + right + "\e[1;5D": backward-word # ctrl + left + "\e[17~": "Function Key 6" + "\e[18~": "Function Key 7" + "\e[19~": "Function Key 8" + "\e[20~": "Function Key 9" + "\e[21~": "Function Key 10" + "\e[23~": "Function Key 11" + $endif +$endif \ No newline at end of file diff --git a/msys2/etc/makepkg.conf b/msys2/etc/makepkg.conf index 82a179f43..1068f1898 100644 --- a/msys2/etc/makepkg.conf +++ b/msys2/etc/makepkg.conf @@ -28,15 +28,6 @@ VCSCLIENTS=('bzr::bzr' 'hg::mercurial' 'svn::subversion') -#-- Using git am to apply patches has benefits, but also downsides -# one being that people without their .gitconfig set get prompts -# and the other being that the sha1s vary each time, so fix them -GIT_COMMITTER_NAME="makepkg" -GIT_COMMITTER_EMAIL="makepkg@msys2.org" -function gitam_mkpkg() { - git am --committer-date-is-author-date "$@" -} - ######################################################################### # ARCHITECTURE, COMPILE FLAGS ######################################################################### @@ -50,8 +41,8 @@ CHOST="x86_64-pc-msys" CC=gcc CXX=g++ CPPFLAGS= -CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe" -CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe" +CFLAGS="-march=nocona -msahf -mtune=generic -O2 -pipe" +CXXFLAGS="-march=nocona -msahf -mtune=generic -O2 -pipe" LDFLAGS="-pipe" #-- Make Flags: change this for DistCC/SMP systems MAKEFLAGS="-j$(($(nproc)+1))" @@ -154,7 +145,7 @@ COMPRESSLZ=(lzip -c -f) ######################################################################### # PKGEXT='.pkg.tar.zst' -SRCEXT='.src.tar.gz' +SRCEXT='.src.tar.zst' ######################################################################### # OTHER diff --git a/msys2/etc/makepkg_mingw.conf b/msys2/etc/makepkg_mingw.conf index e178c64bc..795e6603c 100644 --- a/msys2/etc/makepkg_mingw.conf +++ b/msys2/etc/makepkg_mingw.conf @@ -28,15 +28,6 @@ VCSCLIENTS=('bzr::bzr' 'hg::mercurial' 'svn::subversion') -#-- Using git am to apply patches has benefits, but also downsides -# one being that people without their .gitconfig set get prompts -# and the other being that the sha1s vary each time, so fix them -GIT_COMMITTER_NAME="makepkg" -GIT_COMMITTER_EMAIL="makepkg@msys2.org" -function gitam_mkpkg() { - git am --committer-date-is-author-date "$@" -} - ######################################################################### # ARCHITECTURE, COMPILE FLAGS ######################################################################### @@ -51,9 +42,9 @@ if [[ "$MSYSTEM" == "MINGW64" ]]; then CC="gcc" CXX="g++" CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1" - CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe" - CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe" - LDFLAGS="-pipe -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high" + CFLAGS="-march=nocona -msahf -mtune=generic -O2 -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong" + CXXFLAGS="-march=nocona -msahf -mtune=generic -O2 -pipe" + LDFLAGS="-pipe" elif [[ "$MSYSTEM" == "MINGW32" ]]; then CARCH="i686" CHOST="i686-w64-mingw32" @@ -63,9 +54,9 @@ elif [[ "$MSYSTEM" == "MINGW32" ]]; then CC="gcc" CXX="g++" CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1" - CFLAGS="-march=i686 -mtune=generic -O2 -pipe" - CXXFLAGS="-march=i686 -mtune=generic -O2 -pipe" - LDFLAGS="-pipe -Wl,--dynamicbase,--nxcompat,--no-seh" + CFLAGS="-march=pentium4 -mtune=generic -O2 -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong" + CXXFLAGS="-march=pentium4 -mtune=generic -O2 -pipe" + LDFLAGS="-pipe -Wl,--no-seh -Wl,--large-address-aware" elif [[ "$MSYSTEM" == "CLANG64" ]]; then CARCH="x86_64" CHOST="x86_64-w64-mingw32" @@ -75,9 +66,9 @@ elif [[ "$MSYSTEM" == "CLANG64" ]]; then CC="clang" CXX="clang++" CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1" - CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe" - CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe" - LDFLAGS="-pipe -Wl,--dynamicbase" + CFLAGS="-march=nocona -msahf -mtune=generic -O2 -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong" + CXXFLAGS="-march=nocona -msahf -mtune=generic -O2 -pipe" + LDFLAGS="-pipe" elif [[ "$MSYSTEM" == "CLANG32" ]]; then CARCH="i686" CHOST="i686-w64-mingw32" @@ -87,9 +78,9 @@ elif [[ "$MSYSTEM" == "CLANG32" ]]; then CC="clang" CXX="clang++" CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1" - CFLAGS="-march=i686 -mtune=generic -O2 -pipe" - CXXFLAGS="-march=i686 -mtune=generic -O2 -pipe" - LDFLAGS="-pipe -Wl,--dynamicbase,--no-seh" + CFLAGS="-march=pentium4 -mtune=generic -O2 -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong" + CXXFLAGS="-march=pentium4 -mtune=generic -O2 -pipe" + LDFLAGS="-pipe -Wl,--no-seh -Wl,--large-address-aware" elif [[ "$MSYSTEM" == "CLANGARM64" ]]; then CARCH="aarch64" CHOST="aarch64-w64-mingw32" @@ -99,9 +90,9 @@ elif [[ "$MSYSTEM" == "CLANGARM64" ]]; then CC="clang" CXX="clang++" CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1" - CFLAGS="-O2 -pipe" + CFLAGS="-O2 -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong" CXXFLAGS="-O2 -pipe" - LDFLAGS="-pipe -Wl,--dynamicbase" + LDFLAGS="-pipe" elif [[ "$MSYSTEM" == "UCRT64" ]]; then CARCH="x86_64" CHOST="x86_64-w64-mingw32" @@ -111,8 +102,8 @@ elif [[ "$MSYSTEM" == "UCRT64" ]]; then CC="gcc" CXX="g++" CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1" - CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe" - CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe" + CFLAGS="-march=nocona -msahf -mtune=generic -O2 -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong" + CXXFLAGS="-march=nocona -msahf -mtune=generic -O2 -pipe" LDFLAGS="-pipe" else echo "Unsupported MSYSTEM: $MSYSTEM" @@ -226,7 +217,7 @@ COMPRESSLZ=(lzip -c -f) ######################################################################### # PKGEXT='.pkg.tar.zst' -SRCEXT='.src.tar.gz' +SRCEXT='.src.tar.zst' ######################################################################### # OTHER diff --git a/msys2/etc/msystem b/msys2/etc/msystem index 5e73ad44f..cc09f7fd5 100644 --- a/msys2/etc/msystem +++ b/msys2/etc/msystem @@ -78,7 +78,7 @@ case "${MSYSTEM}" in *) MSYSTEM_PREFIX='/usr' MSYSTEM_CARCH="$(/usr/bin/uname -m)" - MSYSTEM_CHOST="$(/usr/bin/uname -m)-pc-msys" + MSYSTEM_CHOST="${MSYSTEM_CARCH}-pc-msys" export MSYSTEM_PREFIX MSYSTEM_CARCH MSYSTEM_CHOST ;; esac diff --git a/msys2/etc/nanorc b/msys2/etc/nanorc index 399d3ece2..92c1e8c3f 100644 --- a/msys2/etc/nanorc +++ b/msys2/etc/nanorc @@ -58,6 +58,10 @@ ## will be the terminal's width minus this number. # set fill -8 +## Draw a vertical stripe at the given column, to help judge text width. +## (This option does not have a default value.) +# set guidestripe 75 + ## Remember the used search/replace strings for the next session. # set historylog @@ -78,18 +82,19 @@ ## Fall back to slow libmagic to try and determine an applicable syntax. # set magic -## The opening and closing brackets that can be found by bracket -## searches. They cannot contain blank characters. The former set must -## come before the latter set, and both must be in the same order. +## The opening and closing brackets that are found by a matching-bracket +## search. This may not contain blank characters. The opening brackets +## must come before the closing ones, and they must be in the same order. # set matchbrackets "(<[{)>]}" -## Suppress title bar and show file name and editor state at the bottom. +## Suppress the title bar and show the filename plus a cursor-position +## percentage in the space of the status bar. # set minibar ## Enable mouse support, if available for your system. When enabled, ## mouse clicks can be used to place the cursor, set the mark (with a -## double click), and execute shortcuts. The mouse will work in the X -## Window System, and on the console when gpm is running. +## double click), and execute shortcuts. The mouse will work in the +## X Window System, and on the console when gpm is running. # set mouse ## Switch on multiple file buffers (inserting a file will put it into @@ -117,10 +122,9 @@ ## Preserve the XON and XOFF keys (^Q and ^S). # set preserve -## The characters treated as closing punctuation when justifying -## paragraphs. They cannot contain blank characters. Only closing -## punctuation, optionally followed by closing brackets, can end -## sentences. +## The characters treated as closing punctuation when justifying paragraphs. +## This may not contain blank characters. Only these closing punctuations, +## optionally followed by closing brackets, can end sentences. # set punct "!.?" ## Make status-bar messages disappear after 1 keystroke instead of after 20. @@ -142,18 +146,17 @@ ## Save a changed buffer automatically on exit; don't prompt. # set saveonexit -## (The old form of this option, 'set tempfile', is deprecated.) -## Put the cursor on the highlighted item in the file browser, and show -## the cursor in the help viewer; useful for people who use a braille -## display and people with poor vision. +## Put the cursor on the highlighted item in the file browser, and +## show the cursor in the help viewer; useful for people who use a +## braille display and people with poor vision. # set showcursor -## Make the Home key smarter. When Home is pressed anywhere but at the +## Make the Home key smarter: when Home is pressed anywhere but at the ## very beginning of non-whitespace characters on a line, the cursor ## will jump to that beginning (either forwards or backwards). If the -## cursor is already at that position, it will jump to the true -## beginning of the line. +## cursor is already at that position, it will jump to the true start +## of the line (the left edge). # set smarthome ## Spread overlong lines over multiple screen lines. @@ -167,19 +170,18 @@ ## M = mark, L = hard-wrapping long lines, R = recording, S = soft-wrapping. # set stateflags -## Allow nano to be suspended (with ^Z by default). -# set suspendable -## (The old form of this option, 'set suspend', is deprecated.) - ## Use this tab size instead of the default; it must be greater than 0. # set tabsize 8 -## Convert typed tabs to spaces. +## Convert each typed tab to the fitting number of spaces. # set tabstospaces ## Snip whitespace at the end of lines when justifying or hard-wrapping. # set trimblanks +## Save files by default in Unix format (also when they were DOS or Mac). +# set unix + ## The two single-column characters used to display the first characters ## of tabs and spaces. 187 in ISO 8859-1 (0000BB in Unicode) and 183 in ## ISO-8859-1 (0000B7 in Unicode) seem to be good values for these. @@ -201,14 +203,17 @@ ## of a single character, and without affecting the cutbuffer). # set zap +## Hide the bars plus help lines and use the whole terminal as edit area. +# set zero + ## Paint the interface elements of nano. These are examples; there are ## no colors by default, except for errorcolor and spotlightcolor. -# set titlecolor bold,lightwhite,blue -# set promptcolor lightwhite,lightblack -# set statuscolor bold,lightwhite,green -# set errorcolor bold,lightwhite,red -# set spotlightcolor black,lime +# set titlecolor bold,white,blue +# set promptcolor lightwhite,grey +# set statuscolor bold,white,green +# set errorcolor bold,white,red +# set spotlightcolor black,lightyellow # set selectedcolor lightwhite,magenta # set stripecolor ,yellow # set scrollercolor cyan @@ -217,10 +222,10 @@ # set functioncolor green ## In root's .nanorc you might want to use: -# set titlecolor bold,lightwhite,magenta +# set titlecolor bold,white,magenta # set promptcolor black,yellow -# set statuscolor bold,lightwhite,magenta -# set errorcolor bold,lightwhite,red +# set statuscolor bold,white,magenta +# set errorcolor bold,white,red # set spotlightcolor black,orange # set selectedcolor lightwhite,cyan # set stripecolor ,yellow @@ -256,6 +261,9 @@ ## === Key bindings === ## For all details, see 'man nanorc', section REBINDING KEYS. +## If you want to suspend nano with one keystroke (instead of with ^T^Z): +# bind ^Z suspend main + ## The keystroke deletes the word to the right of the cursor. ## On some terminals the keystroke produces ^H, which is ## the ASCII character for backspace, so it is bound by default to the @@ -265,19 +273,39 @@ ## delete the word to the left of the cursor with: # bind ^H chopwordleft main -## For quickly uppercasing or lowercasing the word under the cursor. -## (These effectively do a Ctrl+Right followed by a Shift+Ctrl+Left, -## and then pipe the selected text through a sed command.) -#bind Sh-M-U "Oc|sed 's/.*/\U&/' " main -#bind Sh-M-L "Oc|sed 's/.*/\L&/' " main +## For a more mnemonic Comment keystroke (overriding Cut-from-cursor): +# bind M-K comment main + +## If you want ^L to just refresh the screen and not center the cursor: +# bind ^L refresh main + +## When you sometimes type M-J instead of M-K, or M-T instead of M-R: +# unbind M-J main +# unbind M-T main +## (Those functions are still accessible through ^T^J and ^T^V.) + +## For quickly uppercasing or lowercasing the word under or after the cursor. +## (These effectively select a word and pipe it through a sed command.) +#bind Sh-M-U "{nextword}{mark}{prevword}{execute}|sed 's/.*/\U&/'{enter}" main +#bind Sh-M-L "{nextword}{mark}{prevword}{execute}|sed 's/.*/\L&/'{enter}" main + +## For copying a marked region to the system clipboard: +# bind Sh-M-T "{execute}|xsel -ib{enter}{undo}" main + +## For snipping trailing blanks when you save a file: +# bind ^S "{execute}| sed 's/\s\+$//' {enter}{savefile}" main ## If you would like nano to have keybindings that are more "usual", ## such as ^O for Open, ^F for Find, ^H for Help, and ^Q for Quit, ## then uncomment these: +#bind ^X cut main +#bind ^C copy main +#bind ^V paste all #bind ^Q exit all #bind ^S savefile main #bind ^W writeout main #bind ^O insert main +#set multibuffer #bind ^H help all #bind ^H exit help #bind ^F whereis all @@ -285,24 +313,19 @@ #bind ^B wherewas all #bind ^D findprevious all #bind ^R replace main -#bind ^X cut main -#bind ^C copy main -#bind ^V paste all -#bind ^P location main -#bind ^E execute main -#bind ^A mark main -#unbind ^K main #unbind ^U all #unbind ^N main #unbind ^Y all #unbind M-J main #unbind M-T main +#bind ^A mark main +#bind ^P location main #bind ^T gotoline main #bind ^T gotodir browser #bind ^T cutrestoffile execute #bind ^L linter execute -#bind M-U undo main -#bind M-R redo main +#bind ^E execute main +#bind ^K "{mark}{end}{zap}" main +#bind ^U "{mark}{home}{zap}" main #bind ^Z undo main #bind ^Y redo main -#set multibuffer diff --git a/msys2/etc/pacman.conf b/msys2/etc/pacman.conf index e5d1fc2be..0c7fc3d3f 100644 --- a/msys2/etc/pacman.conf +++ b/msys2/etc/pacman.conf @@ -65,6 +65,14 @@ LocalFileSigLevel = Optional # repo name header and Include lines. You can add preferred servers immediately # after the header, and they will be used before the default mirrors. +# Staging packages: enable at your own risk +# [staging] +# Server = https://repo.msys2.org/staging/ +# SigLevel = Never + +[clangarm64] +Include = /etc/pacman.d/mirrorlist.mingw + [mingw32] Include = /etc/pacman.d/mirrorlist.mingw @@ -74,6 +82,9 @@ Include = /etc/pacman.d/mirrorlist.mingw [ucrt64] Include = /etc/pacman.d/mirrorlist.mingw +[clang32] +Include = /etc/pacman.d/mirrorlist.mingw + [clang64] Include = /etc/pacman.d/mirrorlist.mingw diff --git a/msys2/etc/pacman.d/mirrorlist.clang32 b/msys2/etc/pacman.d/mirrorlist.clang32 index 6ee719265..60f3814c3 100644 --- a/msys2/etc/pacman.d/mirrorlist.clang32 +++ b/msys2/etc/pacman.d/mirrorlist.clang32 @@ -5,27 +5,36 @@ Server = https://mirror.msys2.org/mingw/clang32/ Server = https://repo.msys2.org/mingw/clang32/ ## Tier 1 +Server = https://mirror.umd.edu/msys2/mingw/clang32/ Server = https://mirror.yandex.ru/mirrors/msys2/mingw/clang32/ Server = https://download.nus.edu.sg/mirror/msys2/mingw/clang32/ Server = https://ftp.acc.umu.se/mirror/msys2.org/mingw/clang32/ Server = https://ftp.nluug.nl/pub/os/windows/msys2/builds/mingw/clang32/ Server = https://ftp.osuosl.org/pub/msys2/mingw/clang32/ -Server = https://mirror.clarkson.edu/msys2/mingw/clang32/ Server = https://mirror.internet.asn.au/pub/msys2/mingw/clang32/ Server = https://mirror.selfnet.de/msys2/mingw/clang32/ Server = https://mirror.ufro.cl/msys2/mingw/clang32/ Server = https://mirrors.dotsrc.org/msys2/mingw/clang32/ +Server = https://mirrors.bfsu.edu.cn/msys2/mingw/clang32/ Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/clang32/ Server = https://mirrors.ustc.edu.cn/msys2/mingw/clang32/ +Server = https://mirror.nju.edu.cn/msys2/mingw/clang32/ +Server = https://repo.extreme-ix.org/msys2/mingw/clang32/ +Server = https://mirrors.hit.edu.cn/msys2/mingw/clang32/ +Server = https://mirror.clarkson.edu/msys2/mingw/clang32/ +Server = https://quantum-mirror.hu/mirrors/pub/msys2/mingw/clang32/ +Server = https://mirror2.sandyriver.net/pub/software/msys2/mingw/clang32/ +Server = https://mirror.archlinux.tw/MSYS2/mingw/clang32/ ## Tier 2 -Server = https://sourceforge.net/projects/msys2/files/REPOS/MINGW/clang32/ Server = https://fastmirror.pp.ua/msys2/mingw/clang32/ Server = https://ftp.cc.uoc.gr/mirrors/msys2/mingw/clang32/ Server = https://mirror.jmu.edu/pub/msys2/mingw/clang32/ Server = https://mirrors.piconets.webwerks.in/msys2-mirror/mingw/clang32/ -Server = https://quantum-mirror.hu/mirrors/pub/msys2/mingw/clang32/ Server = https://www2.futureware.at/~nickoe/msys2-mirror/mingw/clang32/ Server = https://mirrors.sjtug.sjtu.edu.cn/msys2/mingw/clang32/ Server = https://mirrors.bit.edu.cn/msys2/mingw/clang32/ Server = https://repo.casualgamer.ca/mingw/clang32/ +Server = https://mirrors.aliyun.com/msys2/mingw/clang32/ +Server = https://mirror.iscas.ac.cn/msys2/mingw/clang32/ +Server = https://mirrors.tencent.com/msys2/mingw/clang32/ diff --git a/msys2/etc/pacman.d/mirrorlist.clang64 b/msys2/etc/pacman.d/mirrorlist.clang64 index 4c859b80a..9aea36253 100644 --- a/msys2/etc/pacman.d/mirrorlist.clang64 +++ b/msys2/etc/pacman.d/mirrorlist.clang64 @@ -5,27 +5,36 @@ Server = https://mirror.msys2.org/mingw/clang64/ Server = https://repo.msys2.org/mingw/clang64/ ## Tier 1 +Server = https://mirror.umd.edu/msys2/mingw/clang64/ Server = https://mirror.yandex.ru/mirrors/msys2/mingw/clang64/ Server = https://download.nus.edu.sg/mirror/msys2/mingw/clang64/ Server = https://ftp.acc.umu.se/mirror/msys2.org/mingw/clang64/ Server = https://ftp.nluug.nl/pub/os/windows/msys2/builds/mingw/clang64/ Server = https://ftp.osuosl.org/pub/msys2/mingw/clang64/ -Server = https://mirror.clarkson.edu/msys2/mingw/clang64/ Server = https://mirror.internet.asn.au/pub/msys2/mingw/clang64/ Server = https://mirror.selfnet.de/msys2/mingw/clang64/ Server = https://mirror.ufro.cl/msys2/mingw/clang64/ Server = https://mirrors.dotsrc.org/msys2/mingw/clang64/ +Server = https://mirrors.bfsu.edu.cn/msys2/mingw/clang64/ Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/clang64/ Server = https://mirrors.ustc.edu.cn/msys2/mingw/clang64/ +Server = https://mirror.nju.edu.cn/msys2/mingw/clang64/ +Server = https://repo.extreme-ix.org/msys2/mingw/clang64/ +Server = https://mirrors.hit.edu.cn/msys2/mingw/clang64/ +Server = https://mirror.clarkson.edu/msys2/mingw/clang64/ +Server = https://quantum-mirror.hu/mirrors/pub/msys2/mingw/clang64/ +Server = https://mirror2.sandyriver.net/pub/software/msys2/mingw/clang64/ +Server = https://mirror.archlinux.tw/MSYS2/mingw/clang64/ ## Tier 2 -Server = https://sourceforge.net/projects/msys2/files/REPOS/MINGW/clang64/ Server = https://fastmirror.pp.ua/msys2/mingw/clang64/ Server = https://ftp.cc.uoc.gr/mirrors/msys2/mingw/clang64/ Server = https://mirror.jmu.edu/pub/msys2/mingw/clang64/ Server = https://mirrors.piconets.webwerks.in/msys2-mirror/mingw/clang64/ -Server = https://quantum-mirror.hu/mirrors/pub/msys2/mingw/clang64/ Server = https://www2.futureware.at/~nickoe/msys2-mirror/mingw/clang64/ Server = https://mirrors.sjtug.sjtu.edu.cn/msys2/mingw/clang64/ Server = https://mirrors.bit.edu.cn/msys2/mingw/clang64/ Server = https://repo.casualgamer.ca/mingw/clang64/ +Server = https://mirrors.aliyun.com/msys2/mingw/clang64/ +Server = https://mirror.iscas.ac.cn/msys2/mingw/clang64/ +Server = https://mirrors.tencent.com/msys2/mingw/clang64/ diff --git a/msys2/etc/pacman.d/mirrorlist.mingw b/msys2/etc/pacman.d/mirrorlist.mingw index 14f462f8c..5ed126daf 100644 --- a/msys2/etc/pacman.d/mirrorlist.mingw +++ b/msys2/etc/pacman.d/mirrorlist.mingw @@ -5,27 +5,36 @@ Server = https://mirror.msys2.org/mingw/$repo/ Server = https://repo.msys2.org/mingw/$repo/ ## Tier 1 +Server = https://mirror.umd.edu/msys2/mingw/$repo/ Server = https://mirror.yandex.ru/mirrors/msys2/mingw/$repo/ Server = https://download.nus.edu.sg/mirror/msys2/mingw/$repo/ Server = https://ftp.acc.umu.se/mirror/msys2.org/mingw/$repo/ Server = https://ftp.nluug.nl/pub/os/windows/msys2/builds/mingw/$repo/ Server = https://ftp.osuosl.org/pub/msys2/mingw/$repo/ -Server = https://mirror.clarkson.edu/msys2/mingw/$repo/ Server = https://mirror.internet.asn.au/pub/msys2/mingw/$repo/ Server = https://mirror.selfnet.de/msys2/mingw/$repo/ Server = https://mirror.ufro.cl/msys2/mingw/$repo/ Server = https://mirrors.dotsrc.org/msys2/mingw/$repo/ +Server = https://mirrors.bfsu.edu.cn/msys2/mingw/$repo/ Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/$repo/ Server = https://mirrors.ustc.edu.cn/msys2/mingw/$repo/ +Server = https://mirror.nju.edu.cn/msys2/mingw/$repo/ +Server = https://repo.extreme-ix.org/msys2/mingw/$repo/ +Server = https://mirrors.hit.edu.cn/msys2/mingw/$repo/ +Server = https://mirror.clarkson.edu/msys2/mingw/$repo/ +Server = https://quantum-mirror.hu/mirrors/pub/msys2/mingw/$repo/ +Server = https://mirror2.sandyriver.net/pub/software/msys2/mingw/$repo/ +Server = https://mirror.archlinux.tw/MSYS2/mingw/$repo/ ## Tier 2 -Server = https://sourceforge.net/projects/msys2/files/REPOS/MINGW/$repo/ Server = https://fastmirror.pp.ua/msys2/mingw/$repo/ Server = https://ftp.cc.uoc.gr/mirrors/msys2/mingw/$repo/ Server = https://mirror.jmu.edu/pub/msys2/mingw/$repo/ Server = https://mirrors.piconets.webwerks.in/msys2-mirror/mingw/$repo/ -Server = https://quantum-mirror.hu/mirrors/pub/msys2/mingw/$repo/ Server = https://www2.futureware.at/~nickoe/msys2-mirror/mingw/$repo/ Server = https://mirrors.sjtug.sjtu.edu.cn/msys2/mingw/$repo/ Server = https://mirrors.bit.edu.cn/msys2/mingw/$repo/ Server = https://repo.casualgamer.ca/mingw/$repo/ +Server = https://mirrors.aliyun.com/msys2/mingw/$repo/ +Server = https://mirror.iscas.ac.cn/msys2/mingw/$repo/ +Server = https://mirrors.tencent.com/msys2/mingw/$repo/ diff --git a/msys2/etc/pacman.d/mirrorlist.mingw32 b/msys2/etc/pacman.d/mirrorlist.mingw32 index 431ed90aa..6cd374d3b 100644 --- a/msys2/etc/pacman.d/mirrorlist.mingw32 +++ b/msys2/etc/pacman.d/mirrorlist.mingw32 @@ -5,27 +5,36 @@ Server = https://mirror.msys2.org/mingw/i686/ Server = https://repo.msys2.org/mingw/i686/ ## Tier 1 +Server = https://mirror.umd.edu/msys2/mingw/i686/ Server = https://mirror.yandex.ru/mirrors/msys2/mingw/i686/ Server = https://download.nus.edu.sg/mirror/msys2/mingw/i686/ Server = https://ftp.acc.umu.se/mirror/msys2.org/mingw/i686/ Server = https://ftp.nluug.nl/pub/os/windows/msys2/builds/mingw/i686/ Server = https://ftp.osuosl.org/pub/msys2/mingw/i686/ -Server = https://mirror.clarkson.edu/msys2/mingw/i686/ Server = https://mirror.internet.asn.au/pub/msys2/mingw/i686/ Server = https://mirror.selfnet.de/msys2/mingw/i686/ Server = https://mirror.ufro.cl/msys2/mingw/i686/ Server = https://mirrors.dotsrc.org/msys2/mingw/i686/ +Server = https://mirrors.bfsu.edu.cn/msys2/mingw/i686/ Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686/ Server = https://mirrors.ustc.edu.cn/msys2/mingw/i686/ +Server = https://mirror.nju.edu.cn/msys2/mingw/i686/ +Server = https://repo.extreme-ix.org/msys2/mingw/i686/ +Server = https://mirrors.hit.edu.cn/msys2/mingw/i686/ +Server = https://mirror.clarkson.edu/msys2/mingw/i686/ +Server = https://quantum-mirror.hu/mirrors/pub/msys2/mingw/i686/ +Server = https://mirror2.sandyriver.net/pub/software/msys2/mingw/i686/ +Server = https://mirror.archlinux.tw/MSYS2/mingw/i686/ ## Tier 2 -Server = https://sourceforge.net/projects/msys2/files/REPOS/MINGW/i686/ Server = https://fastmirror.pp.ua/msys2/mingw/i686/ Server = https://ftp.cc.uoc.gr/mirrors/msys2/mingw/i686/ Server = https://mirror.jmu.edu/pub/msys2/mingw/i686/ Server = https://mirrors.piconets.webwerks.in/msys2-mirror/mingw/i686/ -Server = https://quantum-mirror.hu/mirrors/pub/msys2/mingw/i686/ Server = https://www2.futureware.at/~nickoe/msys2-mirror/mingw/i686/ Server = https://mirrors.sjtug.sjtu.edu.cn/msys2/mingw/i686/ Server = https://mirrors.bit.edu.cn/msys2/mingw/i686/ Server = https://repo.casualgamer.ca/mingw/i686/ +Server = https://mirrors.aliyun.com/msys2/mingw/i686/ +Server = https://mirror.iscas.ac.cn/msys2/mingw/i686/ +Server = https://mirrors.tencent.com/msys2/mingw/i686/ diff --git a/msys2/etc/pacman.d/mirrorlist.mingw64 b/msys2/etc/pacman.d/mirrorlist.mingw64 index 0ea0b9778..b0b93275c 100644 --- a/msys2/etc/pacman.d/mirrorlist.mingw64 +++ b/msys2/etc/pacman.d/mirrorlist.mingw64 @@ -5,27 +5,36 @@ Server = https://mirror.msys2.org/mingw/x86_64/ Server = https://repo.msys2.org/mingw/x86_64/ ## Tier 1 +Server = https://mirror.umd.edu/msys2/mingw/x86_64/ Server = https://mirror.yandex.ru/mirrors/msys2/mingw/x86_64/ Server = https://download.nus.edu.sg/mirror/msys2/mingw/x86_64/ Server = https://ftp.acc.umu.se/mirror/msys2.org/mingw/x86_64/ Server = https://ftp.nluug.nl/pub/os/windows/msys2/builds/mingw/x86_64/ Server = https://ftp.osuosl.org/pub/msys2/mingw/x86_64/ -Server = https://mirror.clarkson.edu/msys2/mingw/x86_64/ Server = https://mirror.internet.asn.au/pub/msys2/mingw/x86_64/ Server = https://mirror.selfnet.de/msys2/mingw/x86_64/ Server = https://mirror.ufro.cl/msys2/mingw/x86_64/ Server = https://mirrors.dotsrc.org/msys2/mingw/x86_64/ +Server = https://mirrors.bfsu.edu.cn/msys2/mingw/x86_64/ Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64/ Server = https://mirrors.ustc.edu.cn/msys2/mingw/x86_64/ +Server = https://mirror.nju.edu.cn/msys2/mingw/x86_64/ +Server = https://repo.extreme-ix.org/msys2/mingw/x86_64/ +Server = https://mirrors.hit.edu.cn/msys2/mingw/x86_64/ +Server = https://mirror.clarkson.edu/msys2/mingw/x86_64/ +Server = https://quantum-mirror.hu/mirrors/pub/msys2/mingw/x86_64/ +Server = https://mirror2.sandyriver.net/pub/software/msys2/mingw/x86_64/ +Server = https://mirror.archlinux.tw/MSYS2/mingw/x86_64/ ## Tier 2 -Server = https://sourceforge.net/projects/msys2/files/REPOS/MINGW/x86_64/ Server = https://fastmirror.pp.ua/msys2/mingw/x86_64/ Server = https://ftp.cc.uoc.gr/mirrors/msys2/mingw/x86_64/ Server = https://mirror.jmu.edu/pub/msys2/mingw/x86_64/ Server = https://mirrors.piconets.webwerks.in/msys2-mirror/mingw/x86_64/ -Server = https://quantum-mirror.hu/mirrors/pub/msys2/mingw/x86_64/ Server = https://www2.futureware.at/~nickoe/msys2-mirror/mingw/x86_64/ Server = https://mirrors.sjtug.sjtu.edu.cn/msys2/mingw/x86_64/ Server = https://mirrors.bit.edu.cn/msys2/mingw/x86_64/ Server = https://repo.casualgamer.ca/mingw/x86_64/ +Server = https://mirrors.aliyun.com/msys2/mingw/x86_64/ +Server = https://mirror.iscas.ac.cn/msys2/mingw/x86_64/ +Server = https://mirrors.tencent.com/msys2/mingw/x86_64/ diff --git a/msys2/etc/pacman.d/mirrorlist.msys b/msys2/etc/pacman.d/mirrorlist.msys index 204b4b45c..08f7d5c20 100644 --- a/msys2/etc/pacman.d/mirrorlist.msys +++ b/msys2/etc/pacman.d/mirrorlist.msys @@ -5,27 +5,36 @@ Server = https://mirror.msys2.org/msys/$arch/ Server = https://repo.msys2.org/msys/$arch/ ## Tier 1 +Server = https://mirror.umd.edu/msys2/msys/$arch/ Server = https://mirror.yandex.ru/mirrors/msys2/msys/$arch/ Server = https://download.nus.edu.sg/mirror/msys2/msys/$arch/ Server = https://ftp.acc.umu.se/mirror/msys2.org/msys/$arch/ Server = https://ftp.nluug.nl/pub/os/windows/msys2/builds/msys/$arch/ Server = https://ftp.osuosl.org/pub/msys2/msys/$arch/ -Server = https://mirror.clarkson.edu/msys2/msys/$arch/ Server = https://mirror.internet.asn.au/pub/msys2/msys/$arch/ Server = https://mirror.selfnet.de/msys2/msys/$arch/ Server = https://mirror.ufro.cl/msys2/msys/$arch/ Server = https://mirrors.dotsrc.org/msys2/msys/$arch/ +Server = https://mirrors.bfsu.edu.cn/msys2/msys/$arch/ Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch/ Server = https://mirrors.ustc.edu.cn/msys2/msys/$arch/ +Server = https://mirror.nju.edu.cn/msys2/msys/$arch/ +Server = https://repo.extreme-ix.org/msys2/msys/$arch/ +Server = https://mirrors.hit.edu.cn/msys2/msys/$arch/ +Server = https://mirror.clarkson.edu/msys2/msys/$arch/ +Server = https://quantum-mirror.hu/mirrors/pub/msys2/msys/$arch/ +Server = https://mirror2.sandyriver.net/pub/software/msys2/msys/$arch/ +Server = https://mirror.archlinux.tw/MSYS2/msys/$arch/ ## Tier 2 -Server = https://sourceforge.net/projects/msys2/files/REPOS/MSYS2/$arch/ Server = https://fastmirror.pp.ua/msys2/msys/$arch/ Server = https://ftp.cc.uoc.gr/mirrors/msys2/msys/$arch/ Server = https://mirror.jmu.edu/pub/msys2/msys/$arch/ Server = https://mirrors.piconets.webwerks.in/msys2-mirror/msys/$arch/ -Server = https://quantum-mirror.hu/mirrors/pub/msys2/msys/$arch/ Server = https://www2.futureware.at/~nickoe/msys2-mirror/msys/$arch/ Server = https://mirrors.sjtug.sjtu.edu.cn/msys2/msys/$arch/ Server = https://mirrors.bit.edu.cn/msys2/msys/$arch/ Server = https://repo.casualgamer.ca/msys/$arch/ +Server = https://mirrors.aliyun.com/msys2/msys/$arch/ +Server = https://mirror.iscas.ac.cn/msys2/msys/$arch/ +Server = https://mirrors.tencent.com/msys2/msys/$arch/ diff --git a/msys2/etc/pacman.d/mirrorlist.ucrt64 b/msys2/etc/pacman.d/mirrorlist.ucrt64 index 5a09ca588..33b83713e 100644 --- a/msys2/etc/pacman.d/mirrorlist.ucrt64 +++ b/msys2/etc/pacman.d/mirrorlist.ucrt64 @@ -5,27 +5,36 @@ Server = https://mirror.msys2.org/mingw/ucrt64/ Server = https://repo.msys2.org/mingw/ucrt64/ ## Tier 1 +Server = https://mirror.umd.edu/msys2/mingw/ucrt64/ Server = https://mirror.yandex.ru/mirrors/msys2/mingw/ucrt64/ Server = https://download.nus.edu.sg/mirror/msys2/mingw/ucrt64/ Server = https://ftp.acc.umu.se/mirror/msys2.org/mingw/ucrt64/ Server = https://ftp.nluug.nl/pub/os/windows/msys2/builds/mingw/ucrt64/ Server = https://ftp.osuosl.org/pub/msys2/mingw/ucrt64/ -Server = https://mirror.clarkson.edu/msys2/mingw/ucrt64/ Server = https://mirror.internet.asn.au/pub/msys2/mingw/ucrt64/ Server = https://mirror.selfnet.de/msys2/mingw/ucrt64/ Server = https://mirror.ufro.cl/msys2/mingw/ucrt64/ Server = https://mirrors.dotsrc.org/msys2/mingw/ucrt64/ +Server = https://mirrors.bfsu.edu.cn/msys2/mingw/ucrt64/ Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/ucrt64/ Server = https://mirrors.ustc.edu.cn/msys2/mingw/ucrt64/ +Server = https://mirror.nju.edu.cn/msys2/mingw/ucrt64/ +Server = https://repo.extreme-ix.org/msys2/mingw/ucrt64/ +Server = https://mirrors.hit.edu.cn/msys2/mingw/ucrt64/ +Server = https://mirror.clarkson.edu/msys2/mingw/ucrt64/ +Server = https://quantum-mirror.hu/mirrors/pub/msys2/mingw/ucrt64/ +Server = https://mirror2.sandyriver.net/pub/software/msys2/mingw/ucrt64/ +Server = https://mirror.archlinux.tw/MSYS2/mingw/ucrt64/ ## Tier 2 -Server = https://sourceforge.net/projects/msys2/files/REPOS/MINGW/ucrt64/ Server = https://fastmirror.pp.ua/msys2/mingw/ucrt64/ Server = https://ftp.cc.uoc.gr/mirrors/msys2/mingw/ucrt64/ Server = https://mirror.jmu.edu/pub/msys2/mingw/ucrt64/ Server = https://mirrors.piconets.webwerks.in/msys2-mirror/mingw/ucrt64/ -Server = https://quantum-mirror.hu/mirrors/pub/msys2/mingw/ucrt64/ Server = https://www2.futureware.at/~nickoe/msys2-mirror/mingw/ucrt64/ Server = https://mirrors.sjtug.sjtu.edu.cn/msys2/mingw/ucrt64/ Server = https://mirrors.bit.edu.cn/msys2/mingw/ucrt64/ Server = https://repo.casualgamer.ca/mingw/ucrt64/ +Server = https://mirrors.aliyun.com/msys2/mingw/ucrt64/ +Server = https://mirror.iscas.ac.cn/msys2/mingw/ucrt64/ +Server = https://mirrors.tencent.com/msys2/mingw/ucrt64/ diff --git a/msys2/etc/pki/ca-trust/extracted/java/cacerts b/msys2/etc/pki/ca-trust/extracted/java/cacerts index a39523a6c..14a67462b 100644 Binary files a/msys2/etc/pki/ca-trust/extracted/java/cacerts and b/msys2/etc/pki/ca-trust/extracted/java/cacerts differ diff --git a/msys2/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt b/msys2/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt index 4923d7b70..9ca211944 100644 --- a/msys2/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt +++ b/msys2/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt @@ -33,6 +33,25 @@ uu8wd+RU4riEmViAqhOLUTpPSPaLtrMwHjAKBggrBgEFBQcDAQwQQUMgUkFJWiBG Tk1ULVJDTQ== -----END TRUSTED CERTIFICATE----- +# AC RAIZ FNMT-RCM SERVIDORES SEGUROS +-----BEGIN TRUSTED CERTIFICATE----- +MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQsw +CQYDVQQGEwJFUzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgw +FgYDVQRhDA9WQVRFUy1RMjgyNjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1S +Q00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4MTIyMDA5MzczM1oXDTQzMTIyMDA5 +MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQtUkNNMQ4wDAYDVQQL +DAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNBQyBS +QUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuB +BAAiA2IABPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LH +sbI6GA60XYyzZl2hNPk2LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oK +Um8BA06Oi6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD +VR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqGSM49BAMDA2kAMGYCMQCu +SuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoDzBOQn5IC +MQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJy +v+cwMTAKBggrBgEFBQcDAQwjQUMgUkFJWiBGTk1ULVJDTSBTRVJWSURPUkVTIFNF +R1VST1M= +-----END TRUSTED CERTIFICATE----- + # ACCVRAIZ1 -----BEGIN TRUSTED CERTIFICATE----- MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UE @@ -298,6 +317,43 @@ CkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1AE47xDqUEpHJWEadIRNyp4iciuRMStuW QW1hem9uIFJvb3QgQ0EgNA== -----END TRUSTED CERTIFICATE----- +# ANF Secure Server Root CA +-----BEGIN TRUSTED CERTIFICATE----- +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 +AQwZQU5GIFNlY3VyZSBTZXJ2ZXIgUm9vdCBDQQ== +-----END TRUSTED CERTIFICATE----- + # Atos TrustedRoot 2011 -----BEGIN TRUSTED CERTIFICATE----- MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UE @@ -322,6 +378,45 @@ KrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6edMC0wFAYIKwYBBQUHAwQGCCsGAQUF BwMBDBVBdG9zIFRydXN0ZWRSb290IDIwMTE= -----END TRUSTED CERTIFICATE----- +# Autoridad de Certificacion Firmaprofesional CIF A62634068 +-----BEGIN TRUSTED CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UE +BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h +cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1 +MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg +Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9 +thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM +cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG +L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i +NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h +X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b +m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy +Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja +EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T +KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF +6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh +OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMB0GA1UdDgQWBBRlzeurNR4APn7VdMAc +tHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4wgZswgZgGBFUd +IAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j +b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABC +AG8AbgBhAG4AbwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAw +ADEANzAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9m +iWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL4QjbEwj4KKE1soCzC1HA01aajTNF +Sa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDbLIpgD7dvlAceHabJ +hfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1ilI45P +Vf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZE +EAEeiGaPcjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV +1aUsIC+nmCjuRfzxuIgALI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2t +CsvMo2ebKHTEm9caPARYpoKdrcd7b/+Alun4jWq9GJAd/0kakFI3ky88Al2CdgtR +5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH9IBk9W6VULgRfhVwOEqw +f9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpfNIbnYrX9 +ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNK +GbqEZycPvEJdvSRUDewdcAZfpLz6IHxVMFEwFAYIKwYBBQUHAwQGCCsGAQUFBwMB +DDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJ +RiBBNjI2MzQwNjg= +-----END TRUSTED CERTIFICATE----- + # Autoridad de Certificacion Firmaprofesional CIF A62634068 -----BEGIN TRUSTED CERTIFICATE----- MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UE @@ -518,35 +613,53 @@ tGWaIZDgqtCYvDi1czyL+NwwMjAKBggrBgEFBQcDBAwkQ2FtZXJmaXJtYSBDaGFt YmVycyBvZiBDb21tZXJjZSBSb290 -----END TRUSTED CERTIFICATE----- -# Camerfirma Global Chambersign Root +# Certainly Root E1 -----BEGIN TRUSTED CERTIFICATE----- -MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEn -MCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQL -ExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENo -YW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYxNDE4WhcNMzcwOTMwMTYxNDE4WjB9 -MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgy -NzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEgMB4G -A1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUA -A4IBDQAwggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0 -Mi+ITaFgCPS3CU6gSS9J1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/s -QJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8Oby4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpV -eAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl6DJWk0aJqCWKZQbua795 -B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c8lCrEqWh -z0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0T -AQH/BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1i -ZXJzaWduLm9yZy9jaGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4w -TcbOX60Qq+UDpfqpFDAOBgNVHQ8BAf8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAH -MCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBjaGFtYmVyc2lnbi5vcmcwKgYD -VR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9yZzBbBgNVHSAE -VDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh -bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0B -AQUFAAOCAQEAPDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUM -bKGKfKX0j//U2K0X1S0E0T9YgOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXi -ryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJPJ7oKXqJ1/6v/2j1pReQvayZzKWG -VwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4IBHNfTIzSJRUTN3c -ecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREest2d/ -AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8DAwMAoGCCsGAQUFBwMEDCJDYW1lcmZp -cm1hIEdsb2JhbCBDaGFtYmVyc2lnbiBSb290 +MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQsw +CQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlu +bHkgUm9vdCBFMTAeFw0yMTA0MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJ +BgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlubHkxGjAYBgNVBAMTEUNlcnRhaW5s +eSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4fxzf7flHh4axpMCK ++IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9YBk2 +QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4 +hevIIgcwCgYIKoZIzj0EAwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozm +ut6Dacpps6kFtZaSF4fC0urQe87YQVt8rgIwRt7qy12a7DLCZRawTDBcMPPaTnOG +BtjOiQRINzf43TNRnXCve1XYAS59BWQOhriRMB8wCgYIKwYBBQUHAwEMEUNlcnRh +aW5seSBSb290IEUx +-----END TRUSTED CERTIFICATE----- + +# Certainly Root R1 +-----BEGIN TRUSTED CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAw +PTELMAkGA1UEBhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2Vy +dGFpbmx5IFJvb3QgUjEwHhcNMjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9 +MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0 +YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANA2 +1B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O5MQT +vqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbed +aFySpvXl8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b0 +1C7jcvk2xusVtyWMOvwlDbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5 +r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGIXsXwClTNSaa/ApzSRKft43jvRl5tcdF5 +cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkNKPl6I7ENPT2a/Z2B7yyQ +wHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQAjeZjOVJ +6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA +2CnbrlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyH +Wyf5QBGenDPBt+U1VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMR +eiFPCyEQtkA6qyI6BJyLm4SGcprSp6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB +/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTgqj8ljZ9EXME66C6u +d0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAszHQNTVfSVcOQr +PbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d +8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi +1wrykXprOQ4vMMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrd +rRT90+7iIgXr0PK3aBLXWopBGsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9di +taY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+gjwN/KUD+nsa2UUeYNrEjvn8K8l7 +lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgHJBu6haEaBQmAupVj +yTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7fpYn +Kx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLy +yCwzk5Iwx06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5n +wXARPbv0+Em34yaXOp/SX3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6 +OV+KmalBWQewLK8wHzAKBggrBgEFBQcDAQwRQ2VydGFpbmx5IFJvb3QgUjE= -----END TRUSTED CERTIFICATE----- # Certigna @@ -669,6 +782,24 @@ PuXaTH4MNMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE QRBdJ3NghVdJIgcwITAKBggrBgEFBQcDAQwTY2VydFNJR04gUm9vdCBDQSBHMg== -----END TRUSTED CERTIFICATE----- +# Certum EC-384 CA +-----BEGIN TRUSTED CERTIFICATE----- +MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQsw +CQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScw +JQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMT +EENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2MDcyNDU0WhcNNDMwMzI2MDcyNDU0 +WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBT +LkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAX +BgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATE +KI6rGFtqvm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7Tm +Fy8as10CW4kjPMIRBSqniBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68Kj +QjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI0GZnQkdjrzife81r1HfS+8 +EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjADVS2m5hjEfO/J +UG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0QoSZ/6vn +nvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8kwKDAUBggr +BgEFBQcDBAYIKwYBBQUHAwEMEENlcnR1bSBFQy0zODQgQ0E= +-----END TRUSTED CERTIFICATE----- + # Certum Root CA -----BEGIN TRUSTED CERTIFICATE----- MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBM @@ -753,6 +884,42 @@ DrW5viSPMDMwFAYIKwYBBQUHAwQGCCsGAQUFBwMBDBtDZXJ0dW0gVHJ1c3RlZCBO ZXR3b3JrIENBIDI= -----END TRUSTED CERTIFICATE----- +# Certum Trusted Root CA +-----BEGIN TRUSTED CERTIFICATE----- +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 +-----END TRUSTED CERTIFICATE----- + # CFCA EV ROOT -----BEGIN TRUSTED CERTIFICATE----- MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJD @@ -829,8 +996,8 @@ tjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcKzBIKinmwPQN/aUv0NCB9szTq jktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvGnrDQWzilm1De fhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZ -d0jQMDgwFAYIKwYBBQUHAwQGCCsGAQUFBwMBDCBDaGFtYmVycyBvZiBDb21tZXJj -ZSBSb290IC0gMjAwOA== +d0jQMC4wCgYIKwYBBQUHAwQMIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAy +MDA4 -----END TRUSTED CERTIFICATE----- # Comodo AAA Services root @@ -945,31 +1112,6 @@ NVOFBkpdn627G190MDowFAYIKwYBBQUHAwQGCCsGAQUFBwMBDCJDT01PRE8gUlNB IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -----END TRUSTED CERTIFICATE----- -# Cybertrust Global Root ------BEGIN TRUSTED CERTIFICATE----- -MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYG -A1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2Jh -bCBSb290MB4XDTA2MTIxNTA4MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UE -ChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBS -b290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+Mi8vRRQZhP/8NN5 -7CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW0ozS -J8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2y -HLtgwEZLAfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iP -t3sMpTjr3kfb1V05/Iin89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNz -FtApD0mpSPCzqrdsxacwOUBdrsTiXSZT8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAY -XSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/ -MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2MDSgMqAw -hi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3Js -MB8GA1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUA -A4IBAQBW7wojoFROlZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMj -Wqd8BfP9IjsO0QbE2zZMcwSO5bAi5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUx -XOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2hO0j9n0Hq0V+09+zv+mKts2o -omcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+TX3EJIrduPuoc -A06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW -WL1WMRJOEcgh4LMRkWXbtKaIOM5VMCQwCgYIKwYBBQUHAwEMFkN5YmVydHJ1c3Qg -R2xvYmFsIFJvb3Q= ------END TRUSTED CERTIFICATE----- - # DigiCert Assured ID Root CA -----BEGIN TRUSTED CERTIFICATE----- MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl @@ -1132,6 +1274,108 @@ vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep IEFzc3VyYW5jZSBFViBSb290IENB -----END TRUSTED CERTIFICATE----- +# DigiCert SMIME ECC P384 Root G5 +-----BEGIN TRUSTED CERTIFICATE----- +MIICHDCCAaOgAwIBAgIQBT9uoAYBcn3tP8OjtqPW7zAKBggqhkjOPQQDAzBQMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xKDAmBgNVBAMTH0Rp +Z2lDZXJ0IFNNSU1FIEVDQyBQMzg0IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcN +NDYwMTE0MjM1OTU5WjBQMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQs +IEluYy4xKDAmBgNVBAMTH0RpZ2lDZXJ0IFNNSU1FIEVDQyBQMzg0IFJvb3QgRzUw +djAQBgcqhkjOPQIBBgUrgQQAIgNiAAQWnVXlttT7+2drGtShqtJ3lT6I5QeftnBm +ICikiOxwNa+zMv83E0qevAED3oTBuMbmZUeJ8hNVv82lHghgf61/6GGSKc8JR14L +HMAfpL/yW7yY75lMzHBrtrrQKB2/vgSjQjBAMB0GA1UdDgQWBBRzemuW20IHi1Jm +wmQyF/7gZ5AurTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAKBggq +hkjOPQQDAwNnADBkAjA3RPUygONx6/Rtz3zMkZrDbnHY0iNdkk2CQm1cYZX2kfWn +CPZql+mclC2YcP0ztgkCMAc8L7lYgl4Po2Kok2fwIMNpvwMsO1CnO69BOMlSSJHW +Dvu8YDB8ZD8SHkV/UT70pjAtMAoGCCsGAQUFBwMEDB9EaWdpQ2VydCBTTUlNRSBF +Q0MgUDM4NCBSb290IEc1 +-----END TRUSTED CERTIFICATE----- + +# DigiCert SMIME RSA4096 Root G5 +-----BEGIN TRUSTED CERTIFICATE----- +MIIFajCCA1KgAwIBAgIQBfa6BCODRst9XOa5W7ocVTANBgkqhkiG9w0BAQwFADBP +MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJzAlBgNVBAMT +HkRpZ2lDZXJ0IFNNSU1FIFJTQTQwOTYgUm9vdCBHNTAeFw0yMTAxMTUwMDAwMDBa +Fw00NjAxMTQyMzU5NTlaME8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2Vy +dCwgSW5jLjEnMCUGA1UEAxMeRGlnaUNlcnQgU01JTUUgUlNBNDA5NiBSb290IEc1 +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4Gpb2fj5fey1e+9f3Vw0 +2Npd0ctldashfFsA1IJvRYVBiqkSAnIy8BT1A3W7Y5dJD0CZCxoeVqfS0OGr3eUE +G+MfFBICiPWggAn2J5pQ8LrjouCsahSRtWs4EHqiMeGRG7e58CtbyHcJdrdRxDYK +mVNURCW3CTWGFwVWkz1BtwLXYh+KkhGH6hFt6ggR3LF4SEmS9rRRgHgj2P7hVho6 +kBNWNInV4pWLX96yzPs/OLeF9+qevy6hLi9NfWoRLjag/xEIBJVV4Bs7Z5OplFXq +Mu0GOn/Cf+OtEyfRNEGzMMO/tIj4A4Kk3z6reHegWZNx593rAAR7zEg5KOAeoxVp +yDayoQuX31XW75GcpPYW91EK7gMjkdwE/+DdOPYiAwDCB3EaEsnXRiqUG83Wuxvu +v75NUFiwC80wdin1z+W2ai92sLBpatBtZRg1fpO8chfBVULNL8Ilu/T9HaFkIlRd +4p5yQYRucZbqRQe2XnpKhp1zZHc4A9IPU6VVIMRN/2hvVanq3XHkT9mFo3xOKQKe +CwnyGlPMAKbd0TT2DcEwsZwCZKw17aWwKbHSlTMP0iAzvewjS/IZ+dqYZOQsMR8u +4Y0cBJUoTYxYzUvlc4KGjOyo1nlc+2S73AxMKPYXr+Jo1haGmNv8AdwxuvicDvko +Rkrh/ZYGRXkRaBdlXIsmh1sCAwEAAaNCMEAwHQYDVR0OBBYEFNGj1FcdT1XbdUxc +Qp5jFs60xjsfMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG +SIb3DQEBDAUAA4ICAQAHpwreU7ua63C/sjaQzeSnuPEM5F1aHXhl/Mm4HiMRV3xp +NW0B/1NQvwcOuscBP1gqlHUDqxwLI9wbih43PR1Yj3PZsypv3xCgWwynyrB/uSSi +ATUy5V5GQevYf3PnQumkUSZ3gQqo6w8KUJ1+iiBn/AuOOhHTxYxgGNlLsfzU8bRJ +Tq6H4dH7dqFf8wbPl5YM6Z51gVxTDSL8NuZJbnTbAIWNfCKgjvsQTNRiE1vvS3Im +i/xOio/+lxBTxXiLQmQbX+CJ/bsJf1DgVIUmEWodZflJKdx8Nt/7PffSrO4yjW6m +fTmcRcTKDfU7tHlTpS9Wx1HFikxkXZBDI45rTBd4zOi/9TvkqEjPrZsM3zJK09kS +jiN4DS2vn6+ePAnClwDtOmkccT8539OPxGb17zaUD/PdkraWX5Cm3XOqpiCUlCVq +CQxy5BMjYEyjyhcue2cA29DN6nofOSZXiTB3y07llUVPX/s2XD35ILU6ECVPkzJa +7sGW6OlWBLBJYU3seKidGMH/2OovVu+VK3sEXmfjVUDtOQT5C3n1aoxcD4makMfN +i97bJjWhbs2zQvKiDzsMjpP/FM/895P35EEIbhlSEQ9TGXN4DM/YhYH4rVXIsJ5G +Y6+cUu5cv/DAWzceCSDSPiPGoRVKDjZ+MMV5arwiiNkMUkAf3U4PZyYW0q0XHDAs +MAoGCCsGAQUFBwMEDB5EaWdpQ2VydCBTTUlNRSBSU0E0MDk2IFJvb3QgRzU= +-----END TRUSTED CERTIFICATE----- + +# DigiCert TLS ECC P384 Root G5 +-----BEGIN TRUSTED CERTIFICATE----- +MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURp +Z2lDZXJ0IFRMUyBFQ0MgUDM4NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2 +MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ +bmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQgUm9vdCBHNTB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1TzvdlHJS +7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp +0zVozptjn4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICIS +B4CIfBFqMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49 +BAMDA2gAMGUCMQCJao1H5+z8blUD2WdsJk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQ +LgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIxAJSdYsiJvRmEFOml+wG4 +DXZDjC5Ty3zfDBeWUDArMAoGCCsGAQUFBwMBDB1EaWdpQ2VydCBUTFMgRUNDIFAz +ODQgUm9vdCBHNQ== +-----END TRUSTED CERTIFICATE----- + +# DigiCert TLS RSA4096 Root G5 +-----BEGIN TRUSTED CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBN +MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMT +HERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcN +NDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQs +IEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS87IE+ +ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG0 +2C+JFvuUAT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgp +wgscONyfMXdcvyej/Cestyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZM +pG2T6T867jp8nVid9E6P/DsjyG244gXazOvswzH016cpVIDPRFtMbzCe88zdH5RD +nU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnVDdXifBBiqmvwPXbzP6Po +sMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9qTXeXAaDx +Zre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cd +Lvvyz6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvX +KyY//SovcfXWJL5/MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNe +XoVPzthwiHvOAbWWl9fNff2C+MIkwcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPL +tgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4EFgQUUTMc7TZArxfTJc1paPKv +TiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcN +AQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw +GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7H +PNtQOa27PShNlnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLF +O4uJ+DQtpBflF+aZfTCIITfNMBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQ +REtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/u4cnYiWB39yhL/btp/96j1EuMPik +AdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9GOUrYU9DzLjtxpdRv +/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh47a+ +p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilw +MUc/dNAUFvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WF +qUITVuwhd4GTWgzqltlJyqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCK +ovfepEWFJqgejF0pW8hL2JpqA15w8oVPbEtoL8pU9ozaMv7Da4M/OMZ+MCowCgYI +KwYBBQUHAwEMHERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzU= +-----END TRUSTED CERTIFICATE----- + # DigiCert Trusted Root G4 -----BEGIN TRUSTED CERTIFICATE----- MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi @@ -1167,27 +1411,100 @@ gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+MDAwFAYIKwYBBQUH AwQGCCsGAQUFBwMBDBhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQ= -----END TRUSTED CERTIFICATE----- -# DST Root CA X3 +# DIGITALSIGN GLOBAL ROOT ECDSA CA -----BEGIN TRUSTED CERTIFICATE----- -MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/ -MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT -DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow -PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD -Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O -rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq -OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b -xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw -7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD -aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV -HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG -SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69 -ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr -AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz -R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5 -JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo -Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQMBwwCgYIKwYBBQUHAwEMDkRT -VCBSb290IENBIFgz +MIICajCCAfCgAwIBAgIUNi2PcoiiKCfkAP8kxi3k6/qdtuEwCgYIKoZIzj0EAwMw +ZDELMAkGA1UEBhMCUFQxKjAoBgNVBAoMIURpZ2l0YWxTaWduIENlcnRpZmljYWRv +cmEgRGlnaXRhbDEpMCcGA1UEAwwgRElHSVRBTFNJR04gR0xPQkFMIFJPT1QgRUNE +U0EgQ0EwHhcNMjEwMTIxMTEwNzUwWhcNNDYwMTE1MTEwNzUwWjBkMQswCQYDVQQG +EwJQVDEqMCgGA1UECgwhRGlnaXRhbFNpZ24gQ2VydGlmaWNhZG9yYSBEaWdpdGFs +MSkwJwYDVQQDDCBESUdJVEFMU0lHTiBHTE9CQUwgUk9PVCBFQ0RTQSBDQTB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABG4Lo6szTRzqSuj8BI0UoH3wCCxfg6uT0dJ7utdJ +fY/sElBf1LnL5fD5M2MfyVfsQNgRC5foUhbMKY70BoYeONw9V8Tuqr3IVAQmWicT +UUc9Hx8ajqiVpDPQzEfMbbj8SKNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME +GDAWgBTOr0qLGnXi8TjnAvAWrV7qZNV7tDAdBgNVHQ4EFgQUzq9Kixp14vE45wLw +Fq1e6mTVe7QwDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMAqIxHGc +RANNjbTHvKiu2TAnNWprFmPX/OdZ4aeJG0wxmiNVRObzQyHVRydvbVcBqgIxAPuy +6uKXf1G1n0jrvG81iahkcKtXds3AxhRgyn/iggBz98w16o4km+UIWccEjHN4/jAu +MAoGCCsGAQUFBwMEDCBESUdJVEFMU0lHTiBHTE9CQUwgUk9PVCBFQ0RTQSBDQQ== +-----END TRUSTED CERTIFICATE----- + +# DIGITALSIGN GLOBAL ROOT RSA CA +-----BEGIN TRUSTED CERTIFICATE----- +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 +U0lHTiBHTE9CQUwgUk9PVCBSU0EgQ0E= +-----END TRUSTED CERTIFICATE----- + +# D-TRUST BR Root CA 1 2020 +-----BEGIN TRUSTED CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQsw +CQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRS +VVNUIEJSIFJvb3QgQ0EgMSAyMDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5 +NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAG +A1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAGByqGSM49AgEGBSuB +BAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7dPYS +zuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0 +QVK5buXuQqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/ +VbNafAkl1bK6CKBrqx9tMA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6g +PKA6hjhodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X2JyX3Jvb3Rf +Y2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVjdG9yeS5kLXRydXN0Lm5l +dC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxPPUQtVHJ1 +c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjO +PQQDAwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFW +wKrY7RjEsK70PvomAjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHV +dWNbFJWcHwHP2NVypw87MCcwCgYIKwYBBQUHAwEMGUQtVFJVU1QgQlIgUm9vdCBD +QSAxIDIwMjA= +-----END TRUSTED CERTIFICATE----- + +# D-TRUST EV Root CA 1 2020 +-----BEGIN TRUSTED CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQsw +CQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRS +VVNUIEVWIFJvb3QgQ0EgMSAyMDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5 +NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAG +A1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAGByqGSM49AgEGBSuB +BAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8ZRCC +/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rD +wpdhQntJraOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3 +OqQo5FD4pPfsazK2/umLMA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6g +PKA6hjhodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X2V2X3Jvb3Rf +Y2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVjdG9yeS5kLXRydXN0Lm5l +dC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxPPUQtVHJ1 +c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjO +PQQDAwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CA +y/m0sRtW9XLS/BnRAjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJb +gfM0agPnIjhQW+0ZT0MWMCcwCgYIKwYBBQUHAwEMGUQtVFJVU1QgRVYgUm9vdCBD +QSAxIDIwMjA= -----END TRUSTED CERTIFICATE----- # D-TRUST Root CA 3 2013 @@ -1273,39 +1590,6 @@ KVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVvw9y4AyHqnxbxLFS1MC8wCgYIKwYB BQUHAwEMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAwOQ== -----END TRUSTED CERTIFICATE----- -# EC-ACC ------BEGIN TRUSTED CERTIFICATE----- -MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB -8zELMAkGA1UEBhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2Vy -dGlmaWNhY2lvIChOSUYgUS0wODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1 -YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYDVQQLEyxWZWdldSBodHRwczovL3d3 -dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UECxMsSmVyYXJxdWlh -IEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMTBkVD -LUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQG -EwJFUzE7MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8g -KE5JRiBRLTA4MDExNzYtSSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBD -ZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZlZ2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQu -bmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJhcnF1aWEgRW50aXRhdHMg -ZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUNDMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R -85iKw5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm -4CgPukLjbo73FCeTae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaV -HMf5NLWUhdWZXqBIoH7nF2W4onW4HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNd -QlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0aE9jD2z3Il3rucO2n5nzbcc8t -lGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw0JDnJwIDAQAB -o4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4 -opvpXY0wfwYDVR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBo -dHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidW -ZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAwDQYJKoZIhvcN -AQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJlF7W2u++AVtd0x7Y -/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNaAl6k -SBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhy -Rp/7SNVel+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOS -Agu+TGbrIP65y7WZf+a2E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xl -nJ2lYJU6Un/10asIbvPuW/mIPX64b24D5EIwFDAKBggrBgEFBQcDAQwGRUMtQUND ------END TRUSTED CERTIFICATE----- - # emSign ECC Root CA - C3 -----BEGIN TRUSTED CERTIFICATE----- MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQG @@ -1632,84 +1916,61 @@ NL/+I5c30jn6PQ0GC7TbO6Orb1wdtn7os4I07QZcJDAtMAoGCCsGAQUFBwMBDB9F LVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -----END TRUSTED CERTIFICATE----- -# Explicitly Distrust DigiNotar Root CA +# E-Tugra Global Root CA ECC v3 -----BEGIN TRUSTED CERTIFICATE----- -MIIFijCCA3KgAwIBAgIQD////////////////////zANBgkqhkiG9w0BAQUFADBf -MQswCQYDVQQGEwJOTDESMBAGA1UEChMJRGlnaU5vdGFyMRowGAYDVQQDExFEaWdp -Tm90YXIgUm9vdCBDQTEgMB4GCSqGSIb3DQEJARYRaW5mb0BkaWdpbm90YXIubmww -HhcNMDcwNzI3MTcxOTM3WhcNMjUwMzMxMTgxOTIyWjBfMQswCQYDVQQGEwJOTDES -MBAGA1UEChMJRGlnaU5vdGFyMRowGAYDVQQDExFEaWdpTm90YXIgUm9vdCBDQTEg -MB4GCSqGSIb3DQEJARYRaW5mb0BkaWdpbm90YXIubmwwggIiMA0GCSqGSIb3DQEB -AQUAA4ICDwAwggIKAoICAQCssFjBAL3YIQgLK5r+blYwBZ8bd5AQQVzDDYcRd46B -8cp86Yxq7Th0Nbva3/m7wAk3tJZzgX0zGpg595NvlX89ubF1h7pRSOiLcD6VBMXY -tsMW2YiwsYcdcNqGtA8Ui3rPENF0NqISe3eGSnnme98CEWilToauNFibJBN4ViIl -HgGLS1Fx+4LMWZZpiFpoU8W5DQI3y0u8ZkqQfioLBQftFl9VkHXYRskbg+IIvvEj -zJkd1ioPgyAVWCeCLvriIsJJsbkBgWqdbZ1Ad2h2TiEqbYRAhU52mXyC8/O3AlnU -JgEbjt+tUwbRrhjd4rI6y9eIOI6sWym5GdOY+RgDz0iChmYLG2kPyes4iHomGgVM -ktck1JbyrFIto0fVUvY//s6EBnCmqj6i8rZWNBhXouSBbefK8GrTx5FrAoNBfBXv -a5pkXuPQPOWx63tdhvvL5ndJzaNl3Pe5nLjkC1+Tz8wwGjIczhxjlaX56uF0i57p -K6kwe6AYHw4YC+VbqdPRbB4HZ4+RS6mKvNJmqpMBiLKR+jFc1abBUggJzQpjotMi -puih2TkGl/VujQKQjBR7P4DNG5y6xFhyI6+2Vp/GekIzKQc/gsnmHwUNzUwoNovT -yD4cxojvXu6JZOkd69qJfjKmadHdzIif0dDJZiHcBmfFlHqabWJMfczgZICynkeO -owIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV -HQ4EFgQUiGi/4I41xDs4a2L3KDuEgcgM100wDQYJKoZIhvcNAQEFBQADggIBADsC -jcs8MOhuoK3yc7NfniUTBAXT9uOLuwt5zlPe5JbF0a9zvNXD0EBVfEB/zRtfCdXy -fJ9oHbtdzno5wozWmHvFg1Wo1X1AyuAe94leY12hE8JdiraKfADzI8PthV9xdvBo -Y6pFITlIYXg23PFDk9Qlx/KAZeFTAnVR/Ho67zerhChXDNjU1JlWbOOi/lmEtDHo -M/hklJRRl6s5xUvt2t2AC298KQ3EjopyDedTFLJgQT2EkTFoPSdE2+Xe9PpjRchM -Ppj1P0G6Tss3DbpmmPHdy59c91Q2gmssvBNhl0L4eLvMyKKfyvBovWsdst+Nbwed -2o5nx0ceyrm/KkKRt2NTZvFCo+H0Wk1Ya7XkpDOtXHAd3ODy63MUkZoDweoAZbwH -/M8SESIsrqC9OuCiKthZ6SnTGDWkrBFfGbW1G/8iSlzGeuQX7yCpp/Q/rYqnmgQl -nQ7KN+ZQ/YxCKQSa7LnPS3K94gg2ryMvYuXKAdNw23yCIywWMQzGNgeQerEfZ1jE -O1hZibCMjFCz2IbLaKPECudpSyDOwR5WS5WpI2jYMNjD67BVUc3l/Su49bsRn1NU -9jQZjHkJNsphFyUXC4KYcwx3dMPVDceoEkzHp1RxRy4sGn3J4ys7SN4nhKdjNrN9 -j6BkOSQNPXuHr2ZcdBtLc7LljPCGmbjlxd+EwbfrMIGXoG4GCCsGAQUFBwMEBggr -BgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMG -CCsGAQUFBwMEBggrBgEFBQcDBQYIKwYBBQUHAwYGCCsGAQUFBwMHBggrBgEFBQcD -CAwlRXhwbGljaXRseSBEaXN0cnVzdCBEaWdpTm90YXIgUm9vdCBDQQ== +MIICpTCCAiqgAwIBAgIUJkYZdzHhT28oNt45UYbm1JeIIsEwCgYIKoZIzj0EAwMw +gYAxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHEwZBbmthcmExGTAXBgNVBAoTEEUtVHVn +cmEgRUJHIEEuUy4xHTAbBgNVBAsTFEUtVHVncmEgVHJ1c3QgQ2VudGVyMSYwJAYD +VQQDEx1FLVR1Z3JhIEdsb2JhbCBSb290IENBIEVDQyB2MzAeFw0yMDAzMTgwOTQ2 +NThaFw00NTAzMTIwOTQ2NThaMIGAMQswCQYDVQQGEwJUUjEPMA0GA1UEBxMGQW5r +YXJhMRkwFwYDVQQKExBFLVR1Z3JhIEVCRyBBLlMuMR0wGwYDVQQLExRFLVR1Z3Jh +IFRydXN0IENlbnRlcjEmMCQGA1UEAxMdRS1UdWdyYSBHbG9iYWwgUm9vdCBDQSBF +Q0MgdjMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASOmCm/xxAeJ9urA8woLNheSBkQ +KczLWYHMjLiSF4mDKpL2w6QdTGLVn9agRtwcvHbB40fQWxPa56WzZkjnIZpKT4YK +fWzqTTKACrJ6CZtpS5iB4i7sAnCWH/31Rs7K3IKjYzBhMA8GA1UdEwEB/wQFMAMB +Af8wHwYDVR0jBBgwFoAU/4Ixcj75xGZsrTie0bBRiKWQzPUwHQYDVR0OBBYEFP+C +MXI++cRmbK04ntGwUYilkMz1MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNp +ADBmAjEA5gVYaWHlLcoNy/EZCL3W/VGSGn5jVASQkZo1kTmZ+gepZpO6yGjUij/6 +7W4WAie3AjEA3VoXK3YdZUKWpqxdinlW2Iob35reX8dQj7FbcQwm32pAAOwzkSFx +vmjkI6TZraE3MCswCgYIKwYBBQUHAwEMHUUtVHVncmEgR2xvYmFsIFJvb3QgQ0Eg +RUNDIHYz -----END TRUSTED CERTIFICATE----- -# Explicitly Distrusted DigiNotar PKIoverheid G2 +# E-Tugra Global Root CA RSA v3 -----BEGIN TRUSTED CERTIFICATE----- -MIIGlTCCBH2gAwIBAgIED////zANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO -TDEXMBUGA1UECgwORGlnaU5vdGFyIEIuVi4xMjAwBgNVBAMMKURpZ2lOb3RhciBQ -S0lvdmVyaGVpZCBDQSBPcmdhbmlzYXRpZSAtIEcyMB4XDTEwMDUxMjA4NTEzOVoX -DTIwMDMyMzA5NTAwNVowWjELMAkGA1UEBhMCTkwxFzAVBgNVBAoMDkRpZ2lOb3Rh -ciBCLlYuMTIwMAYDVQQDDClEaWdpTm90YXIgUEtJb3ZlcmhlaWQgQ0EgT3JnYW5p -c2F0aWUgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALETGQ8n -5mzUVYZL0OyJikWReKxHvUcr5PxF60+0JnNbN9PDf/bj3tej+C1oxQg+S5TW5Icl -NmuEtRh08yhYcy+bas+8BB723t2v/Euq9dtmYiUBJYLe8pdaEG7dXakisQSpI3M6 -+HGtHc+EROtH0a9tyHwoq8fyN3p0X1/FAhSKo1rjG2wB412O2WjW9AkbMtyRtSz1 -IOuMA20mSbiTxIVd2NKbr1ZqzAUzzKBCnjRVRJxroNQS0CtUzbeJDeX26+j7hQEz -T3pr8Z1yM5YO97KEpaUnxCfxUXMpd7pnbv5M3LTioaGBLzlJjUM4E87QpVzChzoA -Z2VCI/E2WQodo1HIvKOUKjHf4zzynRo8BLDvsQowE3O21/OjTAF1FIV4wNeKOViF -UPou5sW+z4s/r4821CUJLdIPrHKT8r+L1FCz+RVQm5n1FNn7i5GjMiYmoPjfO2CB -hoN5WyvrEz0pOsFt3b2ejofWSq40lwXuFKb23Dh+SukkVAc9l2g3RmsNx6ghrxNU -5Alq8U1GCsld+5tPvd77t1TLuDicpzn7ai3Ae42rpadX7EqSijPF4SBcc9iQkiuA -1Q+GGGl8OU+Ehrz3TFvz1bTKoMLwNyLKeVIfU+aq85CwO93yKP2s68UGJKDJ1C8P -WP21nuwPz7JZ0KIEejhqrnL7vfAlYpQJpwULAgMBAAGjggFhMIIBXTBIBgNVHSAE -QTA/MD0GBFUdIAAwNTAzBggrBgEFBQcCARYnaHR0cDovL3d3dy5kaWdpbm90YXIu -bmwvY3BzL3BraW92ZXJoZWlkMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD -AgEGMIGFBgNVHSMEfjB8gBQ5EItJklzbYRIgzUmdGo7anGdAuaFepFwwWjELMAkG -A1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UE -AwwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJvb3QgQ0EgLSBHMoIEAJiW9DBJBgNV -HR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLnBraW92ZXJoZWlkLm5sL0RvbU9yZ2Fu -aXNhdGllTGF0ZXN0Q1JMLUcyLmNybDAdBgNVHQ4EFgQUvF2UO9mrewMlc2HC2y3u -/KuPZaEwDQYJKoZIhvcNAQELBQADggIBAI/8LUy32S3VH73vy/S3aBd1nU7V992c -8Som7Z+ithwD1VOz7AjPNOLjw/S1Fi/Iw77X03OrADb5Gkp+1mPpXka6pbaOFbej -KthDHe9dyB+BhbOL9/889Nn0Rgg/nLwdoNmoTM0lUk4KsSD3H+lD2VRGgROawF50 -bCqYMur8d7sNpaIxmCJ+fHzn2qSt7LcuGhlx+EhQ2kOPLITdwUAn47XwFU6W1Phc -44YpRivXOwfrOH/IhleX0+8qM8QXUNVkaWsra0VeXS8XylpOz8PXOTz1O59GuZvn -DkmXndbV4xsP6o8BTpoTlFkKAgdISxpgq39P7QvYVQ1ob1WcaWUVQuzA3N1srMMW -zgsdVpukxMTSLuAP4kQnK1BppNxi6IohKUJszAA6lnab70DApF53hDJsJio5Zq5d -47m5sixoHx6akAM58KqzpMxJixg06TfJeynHhHxvRBUv7GFZBMlFy6LWUqJ8fymS -1krFi0Ko1P7q2MeHIxjknXp9c0BSmKCubuMFPwUP4KXGbU3tgzeInMfz3EKaarbX -IUk2d/LvGE/FcNme6d63K4v0vH4o3w1AyYVcrp3FMf/QXA61qH7w6S+6r4iu5bXR -WKWvnHGnKQGQg2k3ggW6/AnBCG6MeDvDMwKAP0SFCB3fVVYIrSyFLV2xA+GuqnTF -pPNOujeYe4K5MIGgoG4GCCsGAQUFBwMEBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsG -AQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDBQYI -KwYBBQUHAwYGCCsGAQUFBwMHBggrBgEFBQcDCAwuRXhwbGljaXRseSBEaXN0cnVz -dGVkIERpZ2lOb3RhciBQS0lvdmVyaGVpZCBHMg== +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 -----END TRUSTED CERTIFICATE----- # GDCA TrustAUTH R5 ROOT @@ -1747,26 +2008,6 @@ MTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0jAkMAoGCCsGAQUFBwMBDBZHRENB IFRydXN0QVVUSCBSNSBST09U -----END TRUSTED CERTIFICATE----- -# GeoTrust Primary Certification Authority - G2 ------BEGIN TRUSTED CERTIFICATE----- -MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDEL -MAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChj -KSAyMDA3IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2 -MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 -eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1OVowgZgxCzAJBgNV -BAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykgMjAw -NyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNV -BAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH -MjB2MBAGByqGSM49AgEGBSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcL -So17VDs6bl8VAsBQps8lL33KSLjHUGMcKiEIfJo22Av+0SbFWDEwKCXzXV2juLal -tJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO -BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+EVXVMAoG -CCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGT -qQ7mndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBucz -rD6ogRLQy7rQkgu2npaqBA+KMDswCgYIKwYBBQUHAwEMLUdlb1RydXN0IFByaW1h -cnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMg== ------END TRUSTED CERTIFICATE----- - # Global Chambersign Root - 2008 -----BEGIN TRUSTED CERTIFICATE----- MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYD @@ -1807,25 +2048,24 @@ SqlapskD7+3056huirRXhOukP9DuqqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9O AP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETrP3iZ8ntxPjzxmKfFGBI/5rso M0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVqc5iJWzouE4ge v8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z -09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/BMDYw -FAYIKwYBBQUHAwQGCCsGAQUFBwMBDB5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAt -IDIwMDg= +09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/BMCww +CgYIKwYBBQUHAwQMHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwOA== -----END TRUSTED CERTIFICATE----- # GlobalSign ECC Root CA - R4 -----BEGIN TRUSTED CERTIFICATE----- -MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEk -MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpH -bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX -DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD -QSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu -MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprlOQcJ -FspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAw -DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61F -uOJAf/sKbvu+M8k8o4TVMAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGX -kPoUVy0D7O48027KqGx2vKLeuwIgJ6iFJzWbVsaj8kfSt24bAgAXqmemFZHe+pTs -ewv4n4QwMzAUBggrBgEFBQcDBAYIKwYBBQUHAwEMG0dsb2JhbFNpZ24gRUNDIFJv -b3QgQ0EgLSBSNA== +MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYD +VQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2Jh +bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgw +MTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0g +UjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkWymOx +uYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNV +HQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/ ++wpu+74zyTyjhNUwCgYIKoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147 +bmF0774BxL4YSFlhgjICICadVGNA3jdgUM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm +MDMwFAYIKwYBBQUHAwQGCCsGAQUFBwMBDBtHbG9iYWxTaWduIEVDQyBSb290IENB +IC0gUjQ= -----END TRUSTED CERTIFICATE----- # GlobalSign ECC Root CA - R5 @@ -1869,31 +2109,6 @@ HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4DAqMBQGCCsGAQUFBwMEBggrBgEFBQcD AQwSR2xvYmFsU2lnbiBSb290IENB -----END TRUSTED CERTIFICATE----- -# GlobalSign Root CA - R2 ------BEGIN TRUSTED CERTIFICATE----- -MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G -A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp -Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1 -MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG -A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL -v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8 -eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq -tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd -C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa -zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB -mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH -V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n -bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG -3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs -J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO -291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS -ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd -AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 -TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLjAv -MBQGCCsGAQUFBwMEBggrBgEFBQcDAQwXR2xvYmFsU2lnbiBSb290IENBIC0gUjI= ------END TRUSTED CERTIFICATE----- - # GlobalSign Root CA - R3 -----BEGIN TRUSTED CERTIFICATE----- MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G @@ -1953,6 +2168,143 @@ JJUEeKgDu+6B5dpffItKoZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R F0dsb2JhbFNpZ24gUm9vdCBDQSAtIFI2 -----END TRUSTED CERTIFICATE----- +# GlobalSign Root E46 +-----BEGIN TRUSTED CERTIFICATE----- +MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYx +CzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQD +ExNHbG9iYWxTaWduIFJvb3QgRTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAw +MDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2Ex +HDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkBjtjq +R+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGdd +yXqBPCCjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBQxCpCPtsad0kRLgLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ +7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZkvLtoURMMA/cVi4RguYv/Uo7njLwcAjA8 ++RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+CAezNIm8BZ/3Hobui3Aw +ITAKBggrBgEFBQcDAQwTR2xvYmFsU2lnbiBSb290IEU0Ng== +-----END TRUSTED CERTIFICATE----- + +# GlobalSign Root R46 +-----BEGIN TRUSTED CERTIFICATE----- +MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUA +MEYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYD +VQQDExNHbG9iYWxTaWduIFJvb3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMy +MDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYt +c2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08EsCVeJ +OaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQG +vGIFAha/r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud +316HCkD7rRlr+/fKYIje2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo +0q3v84RLHIf8E6M6cqJaESvWJ3En7YEtbWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSE +y132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvjK8Cd+RTyG/FWaha/LIWF +zXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD412lPFzYE ++cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCN +I/onccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzs +x2sZy/N78CsHpdlseVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqa +ByFrgY/bxFn63iLABJzjqls2k+g9vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC +4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEMBQADggIBAHx4 +7PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg +JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti +2kM3S+LGteWygxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIk +pnnpHs6i58FZFZ8d4kuaPp92CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRF +FRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZmOUdkLG5NrmJ7v2B0GbhWrJKsFjLt +rWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qqJZ4d16GLuc1CLgSk +ZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwyeqiv5 +u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP +4vkYxboznxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6 +N3ec592kD3ZDZopD8p/7DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3 +vouXsXgxT7PntgMTzlSdriVZzH81Xwj3QEUxeCp6MCEwCgYIKwYBBQUHAwEME0ds +b2JhbFNpZ24gUm9vdCBSNDY= +-----END TRUSTED CERTIFICATE----- + +# GlobalSign Secure Mail Root E45 +-----BEGIN TRUSTED CERTIFICATE----- +MIICITCCAaegAwIBAgIQdlP+qicdlUZd1vGe5biQCjAKBggqhkjOPQQDAzBSMQsw +CQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEoMCYGA1UEAxMf +R2xvYmFsU2lnbiBTZWN1cmUgTWFpbCBSb290IEU0NTAeFw0yMDAzMTgwMDAwMDBa +Fw00NTAzMTgwMDAwMDBaMFIxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxT +aWduIG52LXNhMSgwJgYDVQQDEx9HbG9iYWxTaWduIFNlY3VyZSBNYWlsIFJvb3Qg +RTQ1MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE+XmLgUc3iZY/RUlQfxomC5Myfi7A +wKcImsNuj5s+CyLsN1O3b4qwvCc3S22pRjvZH/+loUS7LXO/nkEHXFObUQg6Wrtv +OMcWkXjCShNpHYLfWi8AiJaiLhx0+Z1+ZjeKo0IwQDAOBgNVHQ8BAf8EBAMCAYYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU3xNei1/CQAL9VreUTLYe1aaxFJYw +CgYIKoZIzj0EAwMDaAAwZQIwE7C+13EgPuSrnM42En1fTB8qtWlFM1/TLVqy5IjH +3go2QjJ5naZruuH5RCp7isMSAjEAoGYcToedh8ntmUwbCu4tYMM3xx3NtXKw2cbv +vPL/P/BS3QjnqmR5w+RpV5EvpMt8MC0wCgYIKwYBBQUHAwQMH0dsb2JhbFNpZ24g +U2VjdXJlIE1haWwgUm9vdCBFNDU= +-----END TRUSTED CERTIFICATE----- + +# GlobalSign Secure Mail Root R45 +-----BEGIN TRUSTED CERTIFICATE----- +MIIFcDCCA1igAwIBAgIQdlP+qExQq5+NMrUdA49X3DANBgkqhkiG9w0BAQwFADBS +MQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEoMCYGA1UE +AxMfR2xvYmFsU2lnbiBTZWN1cmUgTWFpbCBSb290IFI0NTAeFw0yMDAzMTgwMDAw +MDBaFw00NTAzMTgwMDAwMDBaMFIxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i +YWxTaWduIG52LXNhMSgwJgYDVQQDEx9HbG9iYWxTaWduIFNlY3VyZSBNYWlsIFJv +b3QgUjQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3HnMbQb5bbvg +VgRsf+B1zC0FSehL3FTsW3eVcr9/Yp2FqYokUF9T5dt0b6QpWxMqCa2axS/C93Y7 +oUVGqkPmJP4rsG8ycBlGWnkmL/w9fV9ky1fMYWGo2ZVu45Wgbn9HEhjW7wPJ+4r6 +mr2CFalVd0sRT1nga8Nx8wzYVNWBaD4TuRUuh4o8RCc2YiRu+CwFcjBhvUKRI8Sd +JafZVJoUozGtgHkMp2NsmKOsV0czH2WW4dDSNdr5cfehpiW1QV3fPmDY0fafpfK4 +zBOqj/mybuGDLZPdPoUa3eixXCYBy0mF/PzS1H+FYoZ0+cvsNSKiDDCPO6t561by ++kLz7fkfRYlAKa3qknTqUv1WtCvaou11wm6rzlKQS/be8EmPmkjUiBltRebMjLnd +ZGBgAkD4uc+8WOs9hbnGCtOcB2aPxxg5I0bhPB6jL1Bhkgs9K2zxo0c4V5GrDY/G +nU0E0iZSXOWl/SotFioBaeepfeE2t7Eqxdmxjb25i87Mi6E+C0jNUJU0xNgIWdhr +JvS+9dQiFwBXya6bBDAznwv731aiyW5Udtqxl2InWQ8RiiIbZJY/qPG3JEqNPFN8 +bYN2PbImSHP1RBYBLQkqjhaWUNBzBl27IkiCTApGWj+A/1zy8pqsLAjg1urwEjiB +T6YQ7UarzBacC89kppkChURnRq39TecCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgGG +MA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKCTFShu7o8IsjXGnmJ5dKexDit7 +MA0GCSqGSIb3DQEBDAUAA4ICAQBFCvjRXKxigdAE17b/V1GJCwzL3iRlN/urnu1m +9OoMGWmJuBmxMFa02fb3vsaul8tF9hGMOjBkTMGfWcBGQggGR2QXeOCVBwbWjKKs +qdk/03tWT/zEhyjftisWI8CfH1vj1kReIk8jBIw1FrV5B4ZcL5fi9ghkptzbqIrj +pHt3DdEpkyggtFOjS05f3sH2dSP8Hzx4T3AxeC+iNVRxBKzIxG3D9pGx/s3uRG6B +9kDFPioBv6tMsQM/DRHkD9Ik4yKIm59fRz1RSeAJN34XITF2t2dxSChLJdcQ6J9h +WRbFPjJOHwzOo8wP5McRByIvOAjdW5frQmxZmpruetCd38XbCUMuCqoZPWvoajB6 +V+a/s2o5qY/j8U9laLa9nyiPoRZaCVA6Mi4dL0QRQqYA5jGY/y2hD+akYFbPedey +Ttew+m4MVyPHzh+lsUxtGUmeDn9wj3E/WCifdd1h4Dq3Obbul9Q1UfuLSWDIPGau +l+6NJllXu3jwelAwCbBgqp9O3Mk+HjrcYpMzsDpUdG8sMUXRaxEyamh29j32ahNe +JJjn6h2az3iCB2D3TRDTgZpFjZ6vm9yAx0OylWikww7oCkcVv1Qz3AHn1aYec9h6 +sr8vreNVMJ7fDkG84BH1oQyoIuHjAKNOcHyS4wTRekKKdZBZ45vRTKJkvXN5m2/y +s8H2PDAtMAoGCCsGAQUFBwMEDB9HbG9iYWxTaWduIFNlY3VyZSBNYWlsIFJvb3Qg +UjQ1 +-----END TRUSTED CERTIFICATE----- + +# GLOBALTRUST 2020 +-----BEGIN TRUSTED CERTIFICATE----- +MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkG +A1UEBhMCQVQxIzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkw +FwYDVQQDExBHTE9CQUxUUlVTVCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYx +MDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAhBgNVBAoTGmUtY29tbWVyY2UgbW9u +aXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAyMDIwMIICIjANBgkq +hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWiD59b +RatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9Z +YybNpyrOVPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3 +QWPKzv9pj2gOlTblzLmMCcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPw +yJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCmfecqQjuCgGOlYx8ZzHyyZqjC0203b+J+ +BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKAA1GqtH6qRNdDYfOiaxaJ +SaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9ORJitHHmkH +r96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj0 +4KlGDfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9Me +dKZssCz3AwyIDMvUclOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIw +q7ejMZdnrY8XD2zHc+0klGvIg5rQmjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2 +nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1UdIwQYMBaAFNwu +H9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA +VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJC +XtzoRlgHNQIw4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd +6IwPS3BD0IL/qMy/pJTAvoe9iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf ++I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS8cE54+X1+NZK3TTN+2/BT+MAi1bi +kvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2HcqtbepBEX4tdJP7 +wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxSvTOB +TI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6C +MUO+1918oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn +4rnvyOL2NSl6dPrFf4IFYqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+I +aFvowdlxfv1k7/9nR4hYJS8+hge9+6jlgqispdNpQ80xiEmEU5LAsTkbOYMBMMTy +qfrQA71yN2BWHzZ8vTmR9W0Nv3vXkjAoMBQGCCsGAQUFBwMEBggrBgEFBQcDAQwQ +R0xPQkFMVFJVU1QgMjAyMA== +-----END TRUSTED CERTIFICATE----- + # Go Daddy Class 2 CA -----BEGIN TRUSTED CERTIFICATE----- MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh @@ -2008,102 +2360,210 @@ dGUgQXV0aG9yaXR5IC0gRzI= # GTS Root R1 -----BEGIN TRUSTED CERTIFICATE----- -MIIFWjCCA0KgAwIBAgIQbkepxUtHDA3sM9CJuRz04TANBgkqhkiG9w0BAQwFADBH -MQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExM -QzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIy -MDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNl -cnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEB -AQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM -f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vX -mX7wCl7raKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7 -zUjwTcLCeoiKu7rPWRnWr4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0P -fyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXWnOunVmSPlk9orj2XwoSPwLxAwAtc -vfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk9+aCEI3oncKKiPo4 -Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zqkUsp -zBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOO -Rc92wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYW -k70paDPvOmbsB4om3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+ -DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgF -lQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV -HQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQADggIBADiW -Cu49tJYeX++dnAsznyvgyv3SjgofQXSlfKqE1OXyHuY3UjKcC9FhHb8owbZEKTV1 -d5iyfNm9dKyKaOOpMQkpAWBz40d8U6iQSifvS9efk+eCNs6aaAyC58/UEBZvXw6Z -XPYfcX3v73svfuo21pdwCxXu11xWajOl40k4DLh9+42FpLFZXvRq4d2h9mREruZR -gyFmxhE+885H7pwoHyXa/6xmld01D1zvICxi/ZG6qcz8WpyTgYMpl0p8WnK0OdC3 -d8t5/Wk6kjftbjhlRn7pYL15iJdfOBL07q9bgsiG1eGZbYwE8na6SfZu6W0eX6Dv -J4J2QPim01hcDyxC2kLGe4g0x8HYRZvBPsVhHdljUEn2NIVq4BjFbkerQUIpm/Zg -DdIx02OYI5NaAIFItO/Nis3Jz5nu2Z6qNuFoS3FJFDYoOj0dzpqPJeaAcWErtXvM -+SUWgeExX6GjfhaknBZqlxi9dnKlC54dNuYvoS++cJEPqOba+MSSQGwlfnuzCdyy -F62ARPBopY+Udf90WuioAnwMCeKpSwughQtiue+hMZL77/ZRBIls6Kl0obsXs7X9 -SQ98POyDGCBDTtWTurQ0sR8WNh8M5mQ5Fkzc4P4dyKliPUDqysU0ArSuiYgzNdws -E3PYJ/HQcu51OyLemGhmW/HGY0dVHLqlCFF1pkglMBkwCgYIKwYBBQUHAwEMC0dU -UyBSb290IFIx +MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQsw +CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU +MBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw +MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp +Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaMf/vo +27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7w +Cl7raKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjw +TcLCeoiKu7rPWRnWr4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0Pfybl +qAj+lug8aJRT7oM6iCsVlgmy4HqMLnXWnOunVmSPlk9orj2XwoSPwLxAwAtcvfaH +szVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk9+aCEI3oncKKiPo4Zor8 +Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zqkUspzBmk +MiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92 +wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70p +aDPvOmbsB4om3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrN +VjzRlwW5y0vtOUucxD/SVRNuJLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQID +AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E +FgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQADggIBAJ+qQibb +C5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe +QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuy +h6f88/qBVRRiClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM4 +7HLwEXWdyzRSjeZ2axfG34arJ45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8J +ZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYciNuaCp+0KueIHoI17eko8cdLiA6Ef +MgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5meLMFrUKTX5hgUvYU/ +Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJFfbdT +6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ +0E6yove+7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm +2tIMPNuzjsmhDYAPexZ3FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bb +bP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3gm3cMCMwFAYIKwYBBQUHAwQGCCsGAQUF +BwMBDAtHVFMgUm9vdCBSMQ== -----END TRUSTED CERTIFICATE----- # GTS Root R2 -----BEGIN TRUSTED CERTIFICATE----- -MIIFWjCCA0KgAwIBAgIQbkepxlqz5yDFMJo/aFLybzANBgkqhkiG9w0BAQwFADBH -MQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExM -QzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIy -MDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNl -cnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEB -AQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv -CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3Kg -GjSY6Dlo7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9Bu -XvAuMC6C/Pq8tBcKSOWIm8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOd -re7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS+LFjKBC4swm4VndAoiaYecb+3yXu -PuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7MkogwTZq9TwtImoS1 -mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJGr61K -8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqj -x5RWIr9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsR -nTKaG73VululycslaVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0 -kzCqgc7dGtxRcw1PcOnlthYhGXmy5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9Ok -twIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV -HQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQADggIBALZp -8KZ3/p7uC4Gt4cCpx/k1HUCCq+YEtN/L9x0Pg/B+E02NjO7jMyLDOfxA325BS0JT -vhaI8dI4XsRomRyYUpOM52jtG2pzegVATX9lO9ZY8c6DR2Dj/5epnGB3GFW1fgiT -z9D2PGcDFWEJ+YF59exTpJ/JjwGLc8R3dtyDovUMSRqodt6Sm2T4syzFJ9MHwAiA -pJiS4wGWAqoC7o87xdFtCjMwc3i5T1QWvwsHoaRc5svJXISPD+AVdyx+Jn7axEvb -pxZ3B7DNdehyQtaVhJ2Gg/LkkM0JR9SLA3DaWsYDQvTtN6LwG1BUSw7YhN4ZKJmB -R64JGz9I0cNv4rBgF/XuIwKl2gBbbZCr7qLpGzvpx0QnRY5rn/WkhLx3+WuXrD5R -RaIRpsyF7gpo8j5QOHokYh4XIDdtak23CZvJ/KRY9bb7nE4Yu5UC56GtmwfuNmsk -0jmGwZODUNKBRqhfYlcsu2xkiAhu7xNUX90txGdj08+JN7+dIPT7eoOboB6BAFDC -5AwiWVIQ7UNWhwD4FFKnHYuTjKJNRn8nxnGbJN7k2oaLDX5rIMHAnuFl2GqjpuiF -izoHCBy69Y9Vmhh1fuXsgWbRIXOhNUQLgD1bnF5vKheW0YMjiGZt5obicDIvUiLn -yOd/xCxgXS/Dr55FBcOEArf9LAhST4Ldo/DUhgkCMBkwCgYIKwYBBQUHAwEMC0dU -UyBSb290IFIy +MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQsw +CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU +MBIGA1UEAxMLR1RTIFJvb3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw +MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp +Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3LvCvpt +nfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY +6Dlo7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAu +MC6C/Pq8tBcKSOWIm8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7k +RXuJVfeKH2JShBKzwkCX44ofR5GmdFrS+LFjKBC4swm4VndAoiaYecb+3yXuPuWg +f9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7MkogwTZq9TwtImoS1mKPV ++3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJGr61K8Yzo +dDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RW +Ir9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKa +G73VululycslaVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCq +gc7dGtxRcw1PcOnlthYhGXmy5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwID +AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E +FgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQADggIBAB/Kzt3H +vqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 +0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyC +B19m3H0Q/gxhswWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2u +NmSRXbBoGOqKYcl3qJfEycel/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMg +yALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVnjWQye+mew4K6Ki3pHrTgSAai/Gev +HyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y59PYjJbigapordwj6 +xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M7YNR +TOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924Sg +JPFI/2R80L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV +7LXTWtiBmelDGDfrs7vRWGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl +6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjWHYbLMCMwFAYIKwYBBQUHAwQGCCsGAQUF +BwMBDAtHVFMgUm9vdCBSMg== -----END TRUSTED CERTIFICATE----- # GTS Root R3 -----BEGIN TRUSTED CERTIFICATE----- -MIICDDCCAZGgAwIBAgIQbkepx2ypcyRAiQ8DVd2NHTAKBggqhkjOPQQDAzBHMQsw -CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU -MBIGA1UEAxMLR1RTIFJvb3QgUjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw -MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp -Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjOPQIBBgUrgQQA -IgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout -736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2A -DDL24CejQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud -DgQWBBTB8Sa6oC2uhYHP0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEAgFuk -fCPAlaUs3L6JbyO5o91lAFJekazInXJ0glMLfalAvWhgxeG4VDvBNhcl2MG9AjEA -njWSdIUlUfUk7GRSJFClH9voy8l27OyCbvWFGFPouOOaKaqW04MjyaR7YbPMAuhd -MBkwCgYIKwYBBQUHAwEMC0dUUyBSb290IFIz +MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYD +VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG +A1UEAxMLR1RTIFJvb3QgUjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw +WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz +IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout736G +jOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL2 +4CejQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW +BBTB8Sa6oC2uhYHP0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7 +VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azTL818+FsuVbu/3ZL3pAzcMeGiAjEA/Jdm +ZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV11RZt+cRLInUue4XMCMw +FAYIKwYBBQUHAwQGCCsGAQUFBwMBDAtHVFMgUm9vdCBSMw== -----END TRUSTED CERTIFICATE----- # GTS Root R4 -----BEGIN TRUSTED CERTIFICATE----- -MIICCjCCAZGgAwIBAgIQbkepyIuUtui7OyrYorLBmTAKBggqhkjOPQQDAzBHMQsw -CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU -MBIGA1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw -MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp -Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQA -IgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu -hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/l -xKvRHYqjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud -DgQWBBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNnADBkAjBqUFJ0 -CMRw3J5QdCHojXohw0+WbhXRIjVhLfoIN+4Zba3bssx9BzT1YBkstTTZbyACMANx -sbqjYAuG7ZoIapVon+Kz4ZNkfF6Tpt95LY2F45TPI11xzPKwTdb+mciUqXWi4zAZ -MAoGCCsGAQUFBwMBDAtHVFMgUm9vdCBSNA== +MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYD +VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG +A1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw +WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz +IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzuhXyi +QHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvR +HYqjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW +BBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D +9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/Cr8deVl5c1RxYIigL9zC2L7F8AjEA8GE8 +p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh4rsUecrNIdSUtUlDMCMw +FAYIKwYBBQUHAwQGCCsGAQUFBwMBDAtHVFMgUm9vdCBSNA== +-----END TRUSTED CERTIFICATE----- + +# HARICA Client ECC Root CA 2021 +-----BEGIN TRUSTED CERTIFICATE----- +MIICWjCCAeGgAwIBAgIQMWjZ2OFiVx7SGUSI5hB98DAKBggqhkjOPQQDAzBvMQsw +CQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2Vh +cmNoIEluc3RpdHV0aW9ucyBDQTEnMCUGA1UEAwweSEFSSUNBIENsaWVudCBFQ0Mg +Um9vdCBDQSAyMDIxMB4XDTIxMDIxOTExMDMzNFoXDTQ1MDIxMzExMDMzM1owbzEL +MAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl +YXJjaCBJbnN0aXR1dGlvbnMgQ0ExJzAlBgNVBAMMHkhBUklDQSBDbGllbnQgRUND +IFJvb3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABAcYrZWWlNBcD4L3 +KkD6AsnJPTamowRqwW2VAYhgElRsXKIrbhM6iJUMHCaGNkqJGbcY3jvoqFAfyt9b +v0mAFdvjMOEdWscqigEH/m0sNO8oKJe8wflXhpWLNc+eWtFolaNCMEAwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUUgjSvjKBJf31GpfsTl8au1PNkK0wDgYDVR0P +AQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMEwxRUZPqOa+w3eyGhhLLYh7WOar +lGtEA7AX/9+Cc0RRLP2THQZ7FNKJ7EAM7yEBLgIwL8kuWmwsHdmV4J6wuVxSfPb4 +OMou8dQd8qJJopX4wVheT/5zCu8xsKsjWBOMi947MCwwCgYIKwYBBQUHAwQMHkhB +UklDQSBDbGllbnQgRUNDIFJvb3QgQ0EgMjAyMQ== +-----END TRUSTED CERTIFICATE----- + +# HARICA Client RSA Root CA 2021 +-----BEGIN TRUSTED CERTIFICATE----- +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 +Um9vdCBDQSAyMDIx +-----END TRUSTED CERTIFICATE----- + +# HARICA TLS ECC Root CA 2021 +-----BEGIN TRUSTED CERTIFICATE----- +MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQsw +CQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2Vh +cmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9v +dCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoXDTQ1MDIxMzExMDEwOVowbDELMAkG +A1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj +aCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJvb3Qg +Q0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7 +KKrxcm1lAEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9Y +STHMmE5gEYd103KUkE+bECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQD +AgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAircJRQO9gcS3ujwLEXQNw +SaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/QwCZ61IygN +nxS2PFOiTAZpffpskcYqSUXm7LcT4TpsMCkwCgYIKwYBBQUHAwEMG0hBUklDQSBU +TFMgRUNDIFJvb3QgQ0EgMjAyMQ== +-----END TRUSTED CERTIFICATE----- + +# HARICA TLS RSA Root CA 2021 +-----BEGIN TRUSTED CERTIFICATE----- +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 +MDIx -----END TRUSTED CERTIFICATE----- # Hellenic Academic and Research Institutions ECC RootCA 2015 @@ -2127,35 +2587,6 @@ BQUHAwQGCCsGAQUFBwMBDDtIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2gg SW5zdGl0dXRpb25zIEVDQyBSb290Q0EgMjAxNQ== -----END TRUSTED CERTIFICATE----- -# Hellenic Academic and Research Institutions RootCA 2011 ------BEGIN TRUSTED CERTIFICATE----- -MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1Ix -RDBCBgNVBAoTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1 -dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1p -YyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIFJvb3RDQSAyMDExMB4XDTExMTIw -NjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYTAkdSMUQwQgYDVQQK -EztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIENl -cnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl -c2VhcmNoIEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEB -BQADggEPADCCAQoCggEBAKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPz -dYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJ -fel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa71HFK9+WXesyHgLacEns -bgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u8yBRQlqD -75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSP -FEDH3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNV -HRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp -5dgTBCPuQSUwRwYDVR0eBEAwPqA8MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQu -b3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQub3JnMA0GCSqGSIb3DQEBBQUA -A4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVtXdMiKahsog2p -6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 -TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7 -dIsXRSZMFpGD/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8Acys -Nnq/onN694/BtZqhFLKPM58N7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXI -l7WdmplNsDz4SgCbZN2fOUvRJ9e4ME8wFAYIKwYBBQUHAwQGCCsGAQUFBwMBDDdI -ZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIFJvb3RD -QSAyMDEx ------END TRUSTED CERTIFICATE----- - # Hellenic Academic and Research Institutions RootCA 2015 -----BEGIN TRUSTED CERTIFICATE----- MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1Ix @@ -2194,6 +2625,40 @@ vm9qp/UsQu0yrbYhnr68ME8wFAYIKwYBBQUHAwQGCCsGAQUFBwMBDDdIZWxsZW5p YyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIFJvb3RDQSAyMDE1 -----END TRUSTED CERTIFICATE----- +# HiPKI Root CA - G1 +-----BEGIN TRUSTED CERTIFICATE----- +MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBP +MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0 +ZC4xGzAZBgNVBAMMEkhpUEtJIFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRa +Fw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3 +YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kgUm9vdCBDQSAtIEcx +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0o9Qw +qNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twv +Vcg3Px+kwJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6 +lZgRZq2XNdZ1AYDgr/SEYYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnz +Qs7ZngyzsHeXZJzA9KMuH5UHsBffMNsAGJZMoYFL3QRtU6M9/Aes1MU3guvklQgZ +KILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfdhSi8MEyr48KxRURHH+CK +FgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj1jOXTyFj +HluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDr +y+K49a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ +/W3c1pzAtH2lsN0/Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgM +a/aOEmem8rJY5AIJEzypuxC00jBF8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6 +fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi +7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqc +SE5XCV0vrPSltJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6Fza +ZsT0pPBWGTMpWmWSBUdGSquEwx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9Tc +XzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07QJNBAsNB1CI69aO4I1258EHBGG3zg +iLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv5wiZqAxeJoBF1Pho +L5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+GpzjLrF +Ne85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wr +kkVbbiVghUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+ +vhV4nYWBSipX3tUZQ9rbyltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQU +YDksswBVLuT1sw5XxJFBAJw/6KXf6vb/yPCtbVKoF6ubYfwSUTXkJf2vqmqGOTAg +MAoGCCsGAQUFBwMBDBJIaVBLSSBSb290IENBIC0gRzE= +-----END TRUSTED CERTIFICATE----- + # Hongkong Post Root CA 1 -----BEGIN TRUSTED CERTIFICATE----- MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsx @@ -2355,6 +2820,22 @@ emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCcw GjAKBggrBgEFBQcDAQwMSVNSRyBSb290IFgx -----END TRUSTED CERTIFICATE----- +# ISRG Root X2 +-----BEGIN TRUSTED CERTIFICATE----- +MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQsw +CQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2gg +R3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00 +MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVTMSkwJwYDVQQKEyBJbnRlcm5ldCBT +ZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNSRyBSb290IFgyMHYw +EAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0HttwW ++1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9 +ItgKbppbd9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZI +zj0EAwMDaAAwZQIwe3lORlCEwkSHRhtFcP9Ymd70/aTSVaYgLXTWNLxBo1BfASdW +tL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5U6VR5CmD1/iQMVtCnwr1 +/q4AaOeMSQ+2b1tbFfLnMBowCgYIKwYBBQUHAwEMDElTUkcgUm9vdCBYMg== +-----END TRUSTED CERTIFICATE----- + # Izenpe.com -----BEGIN TRUSTED CERTIFICATE----- MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4 @@ -2537,33 +3018,6 @@ BgEFBQcDBAYIKwYBBQUHAwEMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbF kXRhbsO6c8OtdHbDoW55 -----END TRUSTED CERTIFICATE----- -# Network Solutions Certificate Authority ------BEGIN TRUSTED CERTIFICATE----- -MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBi -MQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu -MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3Jp -dHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJV -UzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydO -ZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwz -c7MEL7xxjOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPP -OCwGJgl6cvf6UDL4wpPTaaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rl -mGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXTcrA/vGp97Eh/jcOrqnErU2lBUzS1sLnF -BgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc/Qzpf14Dl847ABSHJ3A4 -qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMBAAGjgZcw -gZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIB -BjAPBgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwu -bmV0c29sc3NsLmNvbS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3Jp -dHkuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc8 -6fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q4LqILPxFzBiwmZVRDuwduIj/ -h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/GGUsyfJj4akH -/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv -wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHN -pGxlaKFJdlxDydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1eyMDUwCgYI -KwYBBQUHAwEMJ05ldHdvcmsgU29sdXRpb25zIENlcnRpZmljYXRlIEF1dGhvcml0 -eQ== ------END TRUSTED CERTIFICATE----- - # OISTE WISeKey Global Root GA CA -----BEGIN TRUSTED CERTIFICATE----- MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCB @@ -2636,42 +3090,6 @@ FAYIKwYBBQUHAwQGCCsGAQUFBwMBDB9PSVNURSBXSVNlS2V5IEdsb2JhbCBSb290 IEdDIENB -----END TRUSTED CERTIFICATE----- -# QuoVadis Root CA ------BEGIN TRUSTED CERTIFICATE----- -MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJC -TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0 -aWZpY2F0aW9uIEF1dGhvcml0eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0 -aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAzMTkxODMzMzNaFw0yMTAzMTcxODMz -MzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUw -IwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVR -dW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG -9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Yp -li4kVEAkOPcahdxYTMukJ0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2D -rOpm2RgbaIr1VxqYuvXtdj182d6UajtLF8HVj71lODqV0D1VNk7feVcxKh7YWWVJ -WCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeLYzcS19Dsw3sgQUSj7cug -F+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWenAScOospU -xbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCC -Ak4wPQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVv -dmFkaXNvZmZzaG9yZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREw -ggENMIIBCQYJKwYBBAG+WAABMIH7MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNl -IG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBh -c3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFy -ZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh -Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYI -KwYBBQUHAgEWFmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3T -KbkGGew5Oanwl4Rqy+/fMIGuBgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rq -y+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1p -dGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYD -VQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6tlCL -MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSk -fnIYj9lofFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf8 -7C9TqnN7Az10buYWnuulLsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1R -cHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2xgI4JVrmcGmD+XcHXetwReNDWXcG31a0y -mQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi5upZIof4l/UO/erMkqQW -xFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi5nrQNiOK -SnQ2+TAoMBQGCCsGAQUFBwMEBggrBgEFBQcDAQwQUXVvVmFkaXMgUm9vdCBDQQ== ------END TRUSTED CERTIFICATE----- - # QuoVadis Root CA 1 G3 -----BEGIN TRUSTED CERTIFICATE----- MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQEL @@ -2925,6 +3343,24 @@ CPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR BggrBgEFBQcDAQwOU2VjdXJlVHJ1c3QgQ0E= -----END TRUSTED CERTIFICATE----- +# Security Communication ECC RootCA1 +-----BEGIN TRUSTED CERTIFICATE----- +MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYT +AkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYD +VQQDEyJTZWN1cml0eSBDb21tdW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYx +NjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTELMAkGA1UEBhMCSlAxJTAjBgNVBAoT +HFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNVBAMTIlNlY3VyaXR5 +IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+Cnnfdl +dB9sELLo5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpK +ULGjQjBAMB0GA1UdDgQWBBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu +9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3LsnNdo4gIxwwCMQDAqy0O +be0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70eN9kwOjAU +BggrBgEFBQcDBAYIKwYBBQUHAwEMIlNlY3VyaXR5IENvbW11bmljYXRpb24gRUND +IFJvb3RDQTE= +-----END TRUSTED CERTIFICATE----- + # Security Communication Root CA -----BEGIN TRUSTED CERTIFICATE----- MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEY @@ -2973,26 +3409,39 @@ SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03MDYwFAYIKwYBBQUHAwQGCCsGAQUF BwMBDB5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTI= -----END TRUSTED CERTIFICATE----- -# Sonera Class 2 Root CA +# Security Communication RootCA3 -----BEGIN TRUSTED CERTIFICATE----- -MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEP -MA0GA1UEChMGU29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAx -MDQwNjA3Mjk0MFoXDTIxMDQwNjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNV -BAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJhIENsYXNzMiBDQTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3/Ei9vX+ALTU74W+o -Z6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybTdXnt -5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s -3TmVToMGf+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2Ej -vOr7nQKV0ba5cTppCD8PtOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu -8nYybieDwnPz3BjotJPqdURrBGAgcVeHnfO+oJAjPYok4doh28MCAwEAAaMzMDEw -DwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITTXjwwCwYDVR0PBAQDAgEG -MA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt0jSv9zil -zqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/ -3DEIcbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvD -FNr450kkkdAdavphOe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6 -Tk6ezAyNlNzZRZxe7EJQY670XcSxEtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2 -ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLHllpwrN9MMC4wFAYIKwYBBQUH -AwQGCCsGAQUFBwMBDBZTb25lcmEgQ2xhc3MgMiBSb290IENB +MIIFfzCCA2egAwIBAgIJAOF8N0D9G/5nMA0GCSqGSIb3DQEBDAUAMF0xCzAJBgNV +BAYTAkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMScw +JQYDVQQDEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTMwHhcNMTYwNjE2 +MDYxNzE2WhcNMzgwMTE4MDYxNzE2WjBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc +U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UEAxMeU2VjdXJpdHkg +Q29tbXVuaWNhdGlvbiBSb290Q0EzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC +CgKCAgEA48lySfcw3gl8qUCBWNO0Ot26YQ+TUG5pPDXC7ltzkBtnTCHsXzW7OT4r +CmDvu20rhvtxosis5FaU+cmvsXLUIKx00rgVrVH+hXShuRD+BYD5UpOzQD11EKzA +lrenfna84xtSGc4RHwsENPXY9Wk8d/Nk9A2qhd7gCVAEF5aEt8iKvE1y/By7z/MG +TfmfZPd+pmaGNXHIEYBMwXFAWB6+oHP2/D5Q4eAvJj1+XCO1eXDe+uDRpdYMQXF7 +9+qMHIjH7Iv10S9VlkZ8WjtYO/u62C21Jdp6Ts9EriGmnpjKIG58u4iFW/vAEGK7 +8vknR+/RiTlDxN/e4UG/VHMgly1s2vPUB6PmudhvrvyMGS7TZ2crldtYXLVqAvO4 +g160a75BflcJdURQVc1aEWEhCmHCqYj9E7wtiS/NYeCVvsq1e+F7NGcLH7YMx3we +GVPKp7FKFSBWFHA9K4IsD50VHUeAR/94mQ4xr28+j+2GaR57GIgUssL8gjMunEst ++3A7caoreyYn8xrC3PsXuKHqy6C0rtOUfnrQq8PsOC0RLoi/1D+tEjtCrI8Cbn3M +0V9hvqG8OmpI6iZVIhZdXw3/JzOfGAN0iltSIEdrRU0id4xVJ/CvHozJgyJUt5rQ +T9nO/NkuHJYosQLTA70lUhw0Zk8jq/R3gpYd0VcwCBEF/VfR2ccCAwEAAaNCMEAw +HQYDVR0OBBYEFGQUfPxYchamCik0FW8qy7z8r6irMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBDAUAA4ICAQDcAiMI4u8hOscNtybS +YpOnpSNyByCCYN8Y11StaSWSntkUz5m5UoHPrmyKO1o5yGwBQ8IibQLwYs1OY0PA +FNr0Y/Dq9HHuTofjcan0yVflLl8cebsjqodEV+m9NU1Bu0soo5iyG9kLFwfl9+qd +9XbXv8S2gVj/yP9kaWJ5rW4OH3/uHWnlt3Jxs/6lATWUVCvAUm2PVcTJ0rjLyjQI +UYWg9by0F1jqClx6vWPGOi//lkkZhOpn2ASxYfQAW0q3nHE3GYV5v4GwxxMOdnE+ +OoAGrgYWp421wsTL/0ClXI2lyTrtcoHKXJg80jQDdwj98ClZXSEIx2C/pHF7uNke +gr4Jr2VvKKu/S7XuPghHJ6APbw+LP6yVGPO5DtxnVW5inkYO0QR4ynKudtml+LLf +iAlhi+8kTtFZP1rUPcmTPCtk9YENFpb3ksP+MW/oKjJ0DvRMmEoYDjBU1cXrvMUV +nuiZIesnKwkK2/HmcBhWuwzkvvnoEKQTkrgc4NtnHVMDpCKn3F2SEDzq//wbEBrD +2NCcnWXL0CsnMQMeNuE9dnUM/0Umud1RvCPHX9jYhxBAEg09ODfnRDwYwFMJZI// +1ZqmfHAuc1Uh6N//g7kdPjIe1qZ9LPFm6Vwdp6POXiUyK+OVrCoHzrQoeIY8Laad +TdJ0MN1kURXbg4NR16/9M51NZjA2MBQGCCsGAQUFBwMEBggrBgEFBQcDAQweU2Vj +dXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0Ez -----END TRUSTED CERTIFICATE----- # SSL.com EV Root Certification Authority ECC @@ -3109,41 +3558,6 @@ Ic2wBlX7Jz9TkHCpBB5XJ7kwQDAUBggrBgEFBQcDBAYIKwYBBQUHAwEMKFNTTC5j b20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBSU0E= -----END TRUSTED CERTIFICATE----- -# Staat der Nederlanden EV Root CA ------BEGIN TRUSTED CERTIFICATE----- -MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJO -TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFh -dCBkZXIgTmVkZXJsYW5kZW4gRVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0y -MjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5MMR4wHAYDVQQKDBVTdGFhdCBkZXIg -TmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRlcmxhbmRlbiBFViBS -b290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkkSzrS -M4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nC -UiY4iKTWO0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3d -Z//BYY1jTw+bbRcwJu+r0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46p -rfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13l -pJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gVXJrm0w912fxBmJc+qiXb -j5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr08C+eKxC -KFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS -/ZbV0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0X -cgOPvZuM5l5Tnrmd74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH -1vI4gnPah1vlPNOePqc7nvQDs/nxfRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrP -px9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB -/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwaivsnuL8wbqg7 -MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI -eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u -2dfOWBfoqSmuc0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHS -v4ilf0X8rLiltTMMgsT7B/Zq5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTC -wPTxGfARKbalGAKb12NMcIxHowNDXLldRqANb/9Zjr7dn3LDWyvfjFvO5QxGbJKy -CqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tNf1zuacpzEPuKqf2e -vTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi5Dp6 -Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIa -Gl6I6lD4WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeL -eG9QgkRQP2YGiqtDhFZKDyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8 -FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGyeUN51q1veieQA6TqJIc/2b3Z6fJfUEkc -7uzXLjAuMAoGCCsGAQUFBwMBDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4gRVYgUm9v -dCBDQQ== ------END TRUSTED CERTIFICATE----- - # Staat der Nederlanden Root CA - G3 -----BEGIN TRUSTED CERTIFICATE----- MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO @@ -3175,8 +3589,8 @@ fsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq 4BZ+Extq1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR 1VmiiXTTn74eS9fGbbeIJG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/ QFH1T/U67cjF68IeHRaVesd+QnGTbksVtzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM -94B7IWcnMFkwOjAUBggrBgEFBQcDBAYIKwYBBQUHAwEMIlN0YWF0IGRlciBOZWRl -cmxhbmRlbiBSb290IENBIC0gRzM= +94B7IWcnMFkwMDAKBggrBgEFBQcDBAwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJv +b3QgQ0EgLSBHMw== -----END TRUSTED CERTIFICATE----- # Starfield Class 2 CA @@ -3295,42 +3709,6 @@ Qc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJMC4wFAYIKwYBBQUHAwQGCCsG AQUFBwMBDBZTd2lzc1NpZ24gR29sZCBDQSAtIEcy -----END TRUSTED CERTIFICATE----- -# SwissSign Platinum CA - G2 ------BEGIN TRUSTED CERTIFICATE----- -MIIFwTCCA6mgAwIBAgIITrIAZwwDXU8wDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UE -BhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEjMCEGA1UEAxMaU3dpc3NTaWdu -IFBsYXRpbnVtIENBIC0gRzIwHhcNMDYxMDI1MDgzNjAwWhcNMzYxMDI1MDgzNjAw -WjBJMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMSMwIQYDVQQD -ExpTd2lzc1NpZ24gUGxhdGludW0gQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBAMrfogLi2vj8Bxax3mCq3pZcZB/HL37PZ/pEQtZ2Y5Wu669y -IIpFR4ZieIbWIDkm9K6j/SPnpZy1IiEZtzeTIsBQnIJ71NUERFzLtMKfkr4k2Htn -IuJpX+UFeNSH2XFwMyVTtIc7KZAoNppVRDBopIOXfw0enHb/FZ1glwCNioUD7IC+ -6ixuEFGSzH7VozPY1kneWCqv9hbrS3uQMpe5up1Y8fhXSQQeol0GcN1x2/ndi5ob -jM89o03Oy3z2u5yg+gnOI2Ky6Q0f4nIoj5+saCB9bzuohTEJfwvH6GXp43gOCWcw -izSC+13gzJ2BbWLuCB4ELE6b7P6pT1/9aXjvCR+htL/68++QHkwFix7qepF6w9fl -+zC8bBsQWJj3Gl/QKTIDE0ZNYWqFTFJ0LwYfexHihJfGmfNtf9dng34TaNhxKFrY -zt3oEBSa/m0jh26OWnA81Y0JAKeqvLAxN23IhBQeW71FYyBrS3SMvds6DsHPWhaP -pZjydomyExI7C3d3rLvlPClKknLKYRorXkzig3R3+jVIeoVNjZpTxN94ypeRSCtF -KwH3HBqi7Ri6Cr2D+m+8jVeTO9TUps4e8aCxzqv9KyiaTxvXw3LbpMS/XUz13XuW -ae5ogObnmLo2t/5u7Su9IPhlGdpVCX4l3P5hYnL5fhgC72O00Puv5TtjjGePAgMB -AAGjgawwgakwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O -BBYEFFCvzAeHFUdvOMW0ZdHelarp35zMMB8GA1UdIwQYMBaAFFCvzAeHFUdvOMW0 -ZdHelarp35zMMEYGA1UdIAQ/MD0wOwYJYIV0AVkBAQEBMC4wLAYIKwYBBQUHAgEW -IGh0dHA6Ly9yZXBvc2l0b3J5LnN3aXNzc2lnbi5jb20vMA0GCSqGSIb3DQEBBQUA -A4ICAQAIhab1Fgz8RBrBY+D5VUYI/HAcQiiWjrfFwUF1TglxeeVtlspLpYhg0DB0 -uMoI3LQwnkAHFmtllXcBrqS3NQuB2nEVqXQXOHtYyvkv+8Bldo1bAbl93oI9ZLi+ -FHSjClTTLJUYFzX1UWs/j6KWYTl4a0vlpqD4U99REJNi54Av4tHgvI42Rncz7Lj7 -jposiU0xEQ8mngS7twSNC/K5/FqdOxa3L8iYq/6KUFkuozv8KV2LwUvJ4ooTHbG/ -u0IdUt1O2BReEMYxB+9xJ/cbOQncguqLs5WGXv312l0xpuAxtpTmREl0xRbl9x8D -YSjFyMsSoEJL+WuICI20MhjzdZ/EfwBPBZWcoxcCw7NTm6ogOSkrZvqdr16zktK1 -puEa+S1BaYEUtLS17Yk9zvupnTVCRLEcFHOBzyoBNZox1S2PbYTfgE1X4z/FhHXa -icYwu+uPyyIIoK6q8QNsOktNCaUOcsZWayFCTiMlFGiudgp8DAdwZPmaL/YFOSbG -DI8Zf0NebvRbFS/bYV3mZy8/CJT5YLSYMdp08YSTcU1f+2BY0fvEwW2JorsgH51x -kcsymxM9Pn2SUjWskpSi0xjCfMfqr3YFFt1nJ8J+HAciIfNAChs0B0QTwoRqjt8Z -Wr9/6x3iGjjRXK9HkmuAtTClyY3YqzGBH9/CZjfTk6mFhnll0jAoMAoGCCsGAQUF -BwMEDBpTd2lzc1NpZ24gUGxhdGludW0gQ0EgLSBHMg== ------END TRUSTED CERTIFICATE----- - # SwissSign Silver CA - G2 -----BEGIN TRUSTED CERTIFICATE----- MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UE @@ -3445,6 +3823,41 @@ LvWpCz/UXeHPhJ/iGcJfitYgHuNztzAnMBQGCCsGAQUFBwMEBggrBgEFBQcDAQwP U1pBRklSIFJPT1QgQ0Ey -----END TRUSTED CERTIFICATE----- +# Telia Root CA v2 +-----BEGIN TRUSTED CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQx +CzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UE +AwwQVGVsaWEgUm9vdCBDQSB2MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1 +NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZ +MBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ76zBq +AMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9 +vVYiQJ3q9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9 +lRdU2HhE8Qx3FZLgmEKnpNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTOD +n3WhUidhOPFZPY5Q4L15POdslv5e2QJltI5c0BE0312/UqeBAMN/mUWZFdUXyApT +7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW5olWK8jjfN7j/4nlNW4o +6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNrRBH0pUPC +TEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6 +WT0EBXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63R +DolUK5X6wK0dmBR4M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZI +pEYslOqodmJHixBTB0hXbOKSTbauBcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGj +YzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7Wxy+G2CQ5MB0GA1UdDgQWBBRy +rOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw +AwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ +8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi +0f6X+J8wfBj5tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMM +A8iZGok1GTzTyVR8qPAs5m4HeW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBS +SRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+Cy748fdHif64W1lZYudogsYMVoe+K +TTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygCQMez2P2ccGrGKMOF +6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15h2Er +3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMt +Ty3EHD70sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pT +VmBds9hCG1xLEooc6+t9xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAW +ysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQraVplI/owd8k+BsHMYeB2F326CjYSlKA +rBPuUBQemMcwKDAUBggrBgEFBQcDBAYIKwYBBQUHAwEMEFRlbGlhIFJvb3QgQ0Eg +djI= +-----END TRUSTED CERTIFICATE----- + # TeliaSonera Root CA v1 -----BEGIN TRUSTED CERTIFICATE----- MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAw @@ -3572,30 +3985,6 @@ As8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp QS0y -----END TRUSTED CERTIFICATE----- -# Trustis FPS Root CA ------BEGIN TRUSTED CERTIFICATE----- -MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBF -MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQL -ExNUcnVzdGlzIEZQUyBSb290IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTEx -MzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1RydXN0aXMgTGltaXRlZDEc -MBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQRUN+ -AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihH -iTHcDnlkH5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjj -vSkCqPoc4Vu5g6hBSLwacY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA -0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zto3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlB -OrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEAAaNTMFEwDwYDVR0TAQH/ -BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAdBgNVHQ4E -FgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01 -GX2cGE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmW -zaD+vkAMXBJV+JOCyinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP4 -1BIy+Q7DsdwyhEQsb8tGD+pmQQ9P8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZE -f1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHVl/9D7S3B2l0pKoU/rGXuhg8F -jZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYliB6XzCGcKQEN -ZetX2fNXlrtIzYEwKzAUBggrBgEFBQcDBAYIKwYBBQUHAwEME1RydXN0aXMgRlBT -IFJvb3QgQ0E= ------END TRUSTED CERTIFICATE----- - # Trustwave Global Certification Authority -----BEGIN TRUSTED CERTIFICATE----- MIIF2jCCA8KgAwIBAgIMBfcOhtpJ80Y1LrqyMA0GCSqGSIb3DQEBCwUAMIGIMQsw @@ -3753,6 +4142,42 @@ lo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeMwOzAKBggrBgEFBQcDAQwtVFVCSVRBSyBL YW11IFNNIFNTTCBLb2sgU2VydGlmaWthc2kgLSBTdXJ1bSAx -----END TRUSTED CERTIFICATE----- +# TunTrust Root CA +-----BEGIN TRUSTED CERTIFICATE----- +MIIFszCCA5ugAwIBAgIUEwLV4kBMkkaGFmddtLu7sms+/BMwDQYJKoZIhvcNAQEL +BQAwYTELMAkGA1UEBhMCVE4xNzA1BgNVBAoMLkFnZW5jZSBOYXRpb25hbGUgZGUg +Q2VydGlmaWNhdGlvbiBFbGVjdHJvbmlxdWUxGTAXBgNVBAMMEFR1blRydXN0IFJv +b3QgQ0EwHhcNMTkwNDI2MDg1NzU2WhcNNDQwNDI2MDg1NzU2WjBhMQswCQYDVQQG +EwJUTjE3MDUGA1UECgwuQWdlbmNlIE5hdGlvbmFsZSBkZSBDZXJ0aWZpY2F0aW9u +IEVsZWN0cm9uaXF1ZTEZMBcGA1UEAwwQVHVuVHJ1c3QgUm9vdCBDQTCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMPN0/y9BFPdDCA61YguBUtB9YOCfvdZ +n56eY+hz2vYGqU8ftPkLHzmMmiDQfgbU7DTZhrx1W4eI8NLZ1KMKsmwb60ksPqxd +2JQDoOw05TDENX37Jk0bbjBU2PWARZw5rZzJJQRNmpA+TkBuimvNKWfGzC3gdOgF +VwpIUPp6Q9p+7FuaDmJ2/uqdHYVy7BG7NegfJ7/Boce7SBbdVtfMTqDhuazb1YMZ +GoXRlJfXyqNlC/M4+QKu3fZnz8k/9YosRxqZbwUN/dAdgjH8KcwAWJeRTIAAHDOF +li/LQcKLEITDCSSJH7UP2dl3RxiSlGBcx5kDPP73lad9UKGAwqmDrViWVSHbhlnU +r8a83YFuB9tgYv7sEG7aaAH0gxupPqJbI9dkxt/con3YS7qC0lH4Zr8GRuR5KiY2 +eY8fTpkdso8MDhz/yV3A/ZAQprE38806JG60hZC/gLkMjNWb1sjxVj8agIl6qeIb +MlEsPvLfe/ZdeikZjuXIvTZxi11Mwh0/rViizz1wTaZQmCXcI/m4WEEIcb9PuISg +jwBUFfyRbVinljvrS5YnzWuioYasDXxU5mZMZl+QviGaAkYt5IPCgLnPSz7ofzwB +7I9ezX/SKEIBlYrilz0QIX32nRzFNKHsLA4KUiwSVXAkPcvCFDVDXSdOvsC9qnyW +5/yeYa1E0wCXAgMBAAGjYzBhMB0GA1UdDgQWBBQGmpsfU33x9aTI04Y+oXNZtPdE +ITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFAaamx9TffH1pMjThj6hc1m0 +90QhMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAqgVutt0Vyb+z +xiD2BkewhpMl0425yAA/l/VSJ4hxyXT968pk21vvHl26v9Hr7lxpuhbI87mP0zYu +QEkHDVneixCwSQXi/5E/S7fdAo74gShczNxtr18UnH1YeA32gAm56Q6XKRm4t+v4 +FstVEuTGfbvE7Pi1HE4+Z7/FXxttbUcoqgRYYdZ2vyJ/0Adqp2RT8JeNnYA/u8EH +22Wv5psymsNUk8QcCMNE+3tjEUPRahphanltkE8pjkcFwRJpadbGNjHh/PqAulxP +xOu3Mqz4dWEX1xAZufHSCe96Qp1bWgvUxpVOKs7/B9dPfhgGiPEZtdmYu65xxBzn +dFlY7wyJz4sfdZMaBBSSSFCp61cpABbjNhzI+L/wM9VBD8TMPN3pM0MBkRArHtG5 +Xc0yGYuPjCB31yLEQtyEFpslbei0VXF/sHyz03FJuc9SpAQ/3D2gu68zngowYI7b +nV2UqL1g52KAdoGDDIzMMEZJ4gzSqK/rYXHv5yJiqfdcZGyfFoxnNidF9Ql7v/YQ +CvGwjVRDjAS6oz/v4jXH+XTgbzRB0L9zZVcg+ZtnemZoJE6AZb0QmQZZ8mWvuMZH +u/2QeItBcy6vVR/cO5JyboTT0GFMDcx2V+IthSIVNg3rAZ3r2OvEhJn7wAzMMujj +d9qDRIueVSjAi1jTkD5OGwDxFa2DK5owHjAKBggrBgEFBQcDAQwQVHVuVHJ1c3Qg +Um9vdCBDQQ== +-----END TRUSTED CERTIFICATE----- + # TWCA Global Root CA -----BEGIN TRUSTED CERTIFICATE----- MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcx @@ -3992,35 +4417,54 @@ CgYIKwYBBQUHAwQMPFZlcmlzaWduIENsYXNzIDIgUHVibGljIFByaW1hcnkgQ2Vy dGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMw== -----END TRUSTED CERTIFICATE----- -# VeriSign Universal Root Certification Authority +# vTrus ECC Root CA -----BEGIN TRUSTED CERTIFICATE----- -MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB -vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL -ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp -U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W -ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe -Fw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX -MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0 -IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y -IGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh -bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF -9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH -H26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H -LL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN -/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT -rJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud -EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw -WTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs -exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud -DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4 -sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+ -seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz -4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+ -BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR -lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3 -7M2CYfE45k+XmCpajTBHMBQGCCsGAQUFBwMEBggrBgEFBQcDAQwvVmVyaVNpZ24g -VW5pdmVyc2FsIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHk= +MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMw +RzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAY +BgNVBAMTEXZUcnVzIEVDQyBSb290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDcz +MTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28u +LEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYwEAYHKoZIzj0CAQYF +K4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+cToL0 +v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUd +e4BdS49nTPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYD +VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIw +V53dVvHH4+m4SVBrm2nDb+zDfSXkV5UTQJtS0zvzQBm8JsctBp61ezaf9SXUY2sA +AjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQLYgmRWAD5Tfs0aNoJrSEG +GJTOMB8wCgYIKwYBBQUHAwEMEXZUcnVzIEVDQyBSb290IENB +-----END TRUSTED CERTIFICATE----- + +# vTrus Root CA +-----BEGIN TRUSTED CERTIFICATE----- +MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQEL +BQAwQzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4x +FjAUBgNVBAMTDXZUcnVzIFJvb3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMx +MDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoGA1UEChMTaVRydXNDaGluYSBDby4s +THRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZotsSKYc +IrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykU +AyyNJJrIZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+ +GrPSbcKvdmaVayqwlHeFXgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z9 +8Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KAYPxMvDVTAWqXcoKv8R1w6Jz1717CbMdH +flqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70kLJrxLT5ZOrpGgrIDajt +J8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2AXPKBlim +0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZN +pGvu/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQ +UqqzApVg+QxMaPnu1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHW +OXSuTEGC2/KmSNGzm/MzqvOmwMVO9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMB +AAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYgscasGrz2iTAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAKbqSSaet +8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd +nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1j +bhd47F18iMjrjld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvM +Kar5CKXiNxTKsbhm7xqC5PD48acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIiv +TDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJnxDHO2zTlJQNgJXtxmOTAGytfdELS +S8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554WgicEFOwE30z9J4nfr +I8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4sEb9 +b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNB +UvupLnKWnyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1P +Ti07NEPhmg4NpGaXutIcSkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929ven +sBxXVsFy6K2ir40zSbofitzmdHxghm+Hl3swGzAKBggrBgEFBQcDAQwNdlRydXMg +Um9vdCBDQQ== -----END TRUSTED CERTIFICATE----- # XRamp Global CA Root diff --git a/msys2/etc/pki/ca-trust/extracted/pem/email-ca-bundle.pem b/msys2/etc/pki/ca-trust/extracted/pem/email-ca-bundle.pem index c962268be..94de3ea46 100644 --- a/msys2/etc/pki/ca-trust/extracted/pem/email-ca-bundle.pem +++ b/msys2/etc/pki/ca-trust/extracted/pem/email-ca-bundle.pem @@ -186,6 +186,43 @@ lmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G3mB/ufNPRJLv KrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed -----END CERTIFICATE----- +# Autoridad de Certificacion Firmaprofesional CIF A62634068 +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UE +BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h +cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1 +MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg +Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9 +thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM +cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG +L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i +NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h +X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b +m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy +Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja +EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T +KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF +6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh +OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMB0GA1UdDgQWBBRlzeurNR4APn7VdMAc +tHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4wgZswgZgGBFUd +IAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j +b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABC +AG8AbgBhAG4AbwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAw +ADEANzAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9m +iWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL4QjbEwj4KKE1soCzC1HA01aajTNF +Sa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDbLIpgD7dvlAceHabJ +hfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1ilI45P +Vf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZE +EAEeiGaPcjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV +1aUsIC+nmCjuRfzxuIgALI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2t +CsvMo2ebKHTEm9caPARYpoKdrcd7b/+Alun4jWq9GJAd/0kakFI3ky88Al2CdgtR +5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH9IBk9W6VULgRfhVwOEqw +f9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpfNIbnYrX9 +ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNK +GbqEZycPvEJdvSRUDewdcAZfpLz6IHxV +-----END CERTIFICATE----- + # Autoridad de Certificacion Firmaprofesional CIF A62634068 -----BEGIN CERTIFICATE----- MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UE @@ -309,36 +346,6 @@ eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1erfu tGWaIZDgqtCYvDi1czyL+Nw= -----END CERTIFICATE----- -# Camerfirma Global Chambersign Root ------BEGIN CERTIFICATE----- -MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEn -MCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQL -ExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENo -YW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYxNDE4WhcNMzcwOTMwMTYxNDE4WjB9 -MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgy -NzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEgMB4G -A1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUA -A4IBDQAwggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0 -Mi+ITaFgCPS3CU6gSS9J1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/s -QJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8Oby4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpV -eAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl6DJWk0aJqCWKZQbua795 -B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c8lCrEqWh -z0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0T -AQH/BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1i -ZXJzaWduLm9yZy9jaGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4w -TcbOX60Qq+UDpfqpFDAOBgNVHQ8BAf8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAH -MCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBjaGFtYmVyc2lnbi5vcmcwKgYD -VR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9yZzBbBgNVHSAE -VDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh -bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0B -AQUFAAOCAQEAPDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUM -bKGKfKX0j//U2K0X1S0E0T9YgOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXi -ryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJPJ7oKXqJ1/6v/2j1pReQvayZzKWG -VwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4IBHNfTIzSJRUTN3c -ecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREest2d/ -AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A== ------END CERTIFICATE----- - # Certigna -----BEGIN CERTIFICATE----- MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV @@ -423,6 +430,23 @@ i/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7NzTogVZ96edhBiIL5VaZVDADlN 9u6wWk5JRFRYX0KD -----END CERTIFICATE----- +# Certum EC-384 CA +-----BEGIN CERTIFICATE----- +MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQsw +CQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScw +JQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMT +EENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2MDcyNDU0WhcNNDMwMzI2MDcyNDU0 +WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBT +LkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAX +BgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATE +KI6rGFtqvm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7Tm +Fy8as10CW4kjPMIRBSqniBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68Kj +QjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI0GZnQkdjrzife81r1HfS+8 +EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjADVS2m5hjEfO/J +UG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0QoSZ/6vn +nvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k= +-----END CERTIFICATE----- + # Certum Root CA -----BEGIN CERTIFICATE----- MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBM @@ -504,6 +528,41 @@ XALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLXis7VmFxWlgPF7ncGNf/P DrW5viSP -----END CERTIFICATE----- +# Certum Trusted Root CA +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + # Chambers of Commerce Root - 2008 -----BEGIN CERTIFICATE----- MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD @@ -811,6 +870,55 @@ vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep +OkuE6N36B9K -----END CERTIFICATE----- +# DigiCert SMIME ECC P384 Root G5 +-----BEGIN CERTIFICATE----- +MIICHDCCAaOgAwIBAgIQBT9uoAYBcn3tP8OjtqPW7zAKBggqhkjOPQQDAzBQMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xKDAmBgNVBAMTH0Rp +Z2lDZXJ0IFNNSU1FIEVDQyBQMzg0IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcN +NDYwMTE0MjM1OTU5WjBQMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQs +IEluYy4xKDAmBgNVBAMTH0RpZ2lDZXJ0IFNNSU1FIEVDQyBQMzg0IFJvb3QgRzUw +djAQBgcqhkjOPQIBBgUrgQQAIgNiAAQWnVXlttT7+2drGtShqtJ3lT6I5QeftnBm +ICikiOxwNa+zMv83E0qevAED3oTBuMbmZUeJ8hNVv82lHghgf61/6GGSKc8JR14L +HMAfpL/yW7yY75lMzHBrtrrQKB2/vgSjQjBAMB0GA1UdDgQWBBRzemuW20IHi1Jm +wmQyF/7gZ5AurTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAKBggq +hkjOPQQDAwNnADBkAjA3RPUygONx6/Rtz3zMkZrDbnHY0iNdkk2CQm1cYZX2kfWn +CPZql+mclC2YcP0ztgkCMAc8L7lYgl4Po2Kok2fwIMNpvwMsO1CnO69BOMlSSJHW +Dvu8YDB8ZD8SHkV/UT70pg== +-----END CERTIFICATE----- + +# DigiCert SMIME RSA4096 Root G5 +-----BEGIN CERTIFICATE----- +MIIFajCCA1KgAwIBAgIQBfa6BCODRst9XOa5W7ocVTANBgkqhkiG9w0BAQwFADBP +MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJzAlBgNVBAMT +HkRpZ2lDZXJ0IFNNSU1FIFJTQTQwOTYgUm9vdCBHNTAeFw0yMTAxMTUwMDAwMDBa +Fw00NjAxMTQyMzU5NTlaME8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2Vy +dCwgSW5jLjEnMCUGA1UEAxMeRGlnaUNlcnQgU01JTUUgUlNBNDA5NiBSb290IEc1 +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4Gpb2fj5fey1e+9f3Vw0 +2Npd0ctldashfFsA1IJvRYVBiqkSAnIy8BT1A3W7Y5dJD0CZCxoeVqfS0OGr3eUE +G+MfFBICiPWggAn2J5pQ8LrjouCsahSRtWs4EHqiMeGRG7e58CtbyHcJdrdRxDYK +mVNURCW3CTWGFwVWkz1BtwLXYh+KkhGH6hFt6ggR3LF4SEmS9rRRgHgj2P7hVho6 +kBNWNInV4pWLX96yzPs/OLeF9+qevy6hLi9NfWoRLjag/xEIBJVV4Bs7Z5OplFXq +Mu0GOn/Cf+OtEyfRNEGzMMO/tIj4A4Kk3z6reHegWZNx593rAAR7zEg5KOAeoxVp +yDayoQuX31XW75GcpPYW91EK7gMjkdwE/+DdOPYiAwDCB3EaEsnXRiqUG83Wuxvu +v75NUFiwC80wdin1z+W2ai92sLBpatBtZRg1fpO8chfBVULNL8Ilu/T9HaFkIlRd +4p5yQYRucZbqRQe2XnpKhp1zZHc4A9IPU6VVIMRN/2hvVanq3XHkT9mFo3xOKQKe +CwnyGlPMAKbd0TT2DcEwsZwCZKw17aWwKbHSlTMP0iAzvewjS/IZ+dqYZOQsMR8u +4Y0cBJUoTYxYzUvlc4KGjOyo1nlc+2S73AxMKPYXr+Jo1haGmNv8AdwxuvicDvko +Rkrh/ZYGRXkRaBdlXIsmh1sCAwEAAaNCMEAwHQYDVR0OBBYEFNGj1FcdT1XbdUxc +Qp5jFs60xjsfMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG +SIb3DQEBDAUAA4ICAQAHpwreU7ua63C/sjaQzeSnuPEM5F1aHXhl/Mm4HiMRV3xp +NW0B/1NQvwcOuscBP1gqlHUDqxwLI9wbih43PR1Yj3PZsypv3xCgWwynyrB/uSSi +ATUy5V5GQevYf3PnQumkUSZ3gQqo6w8KUJ1+iiBn/AuOOhHTxYxgGNlLsfzU8bRJ +Tq6H4dH7dqFf8wbPl5YM6Z51gVxTDSL8NuZJbnTbAIWNfCKgjvsQTNRiE1vvS3Im +i/xOio/+lxBTxXiLQmQbX+CJ/bsJf1DgVIUmEWodZflJKdx8Nt/7PffSrO4yjW6m +fTmcRcTKDfU7tHlTpS9Wx1HFikxkXZBDI45rTBd4zOi/9TvkqEjPrZsM3zJK09kS +jiN4DS2vn6+ePAnClwDtOmkccT8539OPxGb17zaUD/PdkraWX5Cm3XOqpiCUlCVq +CQxy5BMjYEyjyhcue2cA29DN6nofOSZXiTB3y07llUVPX/s2XD35ILU6ECVPkzJa +7sGW6OlWBLBJYU3seKidGMH/2OovVu+VK3sEXmfjVUDtOQT5C3n1aoxcD4makMfN +i97bJjWhbs2zQvKiDzsMjpP/FM/895P35EEIbhlSEQ9TGXN4DM/YhYH4rVXIsJ5G +Y6+cUu5cv/DAWzceCSDSPiPGoRVKDjZ+MMV5arwiiNkMUkAf3U4PZyYW0q0XHA== +-----END CERTIFICATE----- + # DigiCert Trusted Root G4 -----BEGIN CERTIFICATE----- MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi @@ -845,6 +953,58 @@ r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1 gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+ -----END CERTIFICATE----- +# DIGITALSIGN GLOBAL ROOT ECDSA CA +-----BEGIN CERTIFICATE----- +MIICajCCAfCgAwIBAgIUNi2PcoiiKCfkAP8kxi3k6/qdtuEwCgYIKoZIzj0EAwMw +ZDELMAkGA1UEBhMCUFQxKjAoBgNVBAoMIURpZ2l0YWxTaWduIENlcnRpZmljYWRv +cmEgRGlnaXRhbDEpMCcGA1UEAwwgRElHSVRBTFNJR04gR0xPQkFMIFJPT1QgRUNE +U0EgQ0EwHhcNMjEwMTIxMTEwNzUwWhcNNDYwMTE1MTEwNzUwWjBkMQswCQYDVQQG +EwJQVDEqMCgGA1UECgwhRGlnaXRhbFNpZ24gQ2VydGlmaWNhZG9yYSBEaWdpdGFs +MSkwJwYDVQQDDCBESUdJVEFMU0lHTiBHTE9CQUwgUk9PVCBFQ0RTQSBDQTB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABG4Lo6szTRzqSuj8BI0UoH3wCCxfg6uT0dJ7utdJ +fY/sElBf1LnL5fD5M2MfyVfsQNgRC5foUhbMKY70BoYeONw9V8Tuqr3IVAQmWicT +UUc9Hx8ajqiVpDPQzEfMbbj8SKNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME +GDAWgBTOr0qLGnXi8TjnAvAWrV7qZNV7tDAdBgNVHQ4EFgQUzq9Kixp14vE45wLw +Fq1e6mTVe7QwDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMAqIxHGc +RANNjbTHvKiu2TAnNWprFmPX/OdZ4aeJG0wxmiNVRObzQyHVRydvbVcBqgIxAPuy +6uKXf1G1n0jrvG81iahkcKtXds3AxhRgyn/iggBz98w16o4km+UIWccEjHN4/g== +-----END CERTIFICATE----- + +# DIGITALSIGN GLOBAL ROOT RSA CA +-----BEGIN CERTIFICATE----- +MIIFtTCCA52gAwIBAgIUXVnIyqsJV/XmtdoplARq/8XUlYcwDQYJKoZIhvcNAQEN +BQAwYjELMAkGA1UEBhMCUFQxKjAoBgNVBAoMIURpZ2l0YWxTaWduIENlcnRpZmlj +YWRvcmEgRGlnaXRhbDEnMCUGA1UEAwweRElHSVRBTFNJR04gR0xPQkFMIFJPT1Qg +UlNBIENBMB4XDTIxMDEyMTEwNTAzNFoXDTQ2MDExNTEwNTAzNFowYjELMAkGA1UE +BhMCUFQxKjAoBgNVBAoMIURpZ2l0YWxTaWduIENlcnRpZmljYWRvcmEgRGlnaXRh +bDEnMCUGA1UEAwweRElHSVRBTFNJR04gR0xPQkFMIFJPT1QgUlNBIENBMIICIjAN +BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyIe2ONMc8N4S+IPHxIriibi0Inp4 ++AxmUWh2NwrVT8JaCLgWXPdyAQk3hIEqVGvXktBs+qinQxI06w7bNw8p/ooxUULo +S5yQqMgsEdP9oCl+zt6U9oLgWLRORSXxIvI90w97VBrcMrbWUU5+QbRXuCzGuQ4u +ylfx1cjTWOel6UIRrtMgJZRp14/Kog3D058HaD8V0mcuU/12gpsLc6kpDZ4RkxQI +mOyeVBJKVqIGFexrbC6SYC6GDa6CH1FN47IH1xAZVyL2qWlEhPPZPaAGv8yIfn/1 +zlulwipqdELqb6b/+Wix0F+9kdJVbzNXTB6d5OKLwYVloOBqnAAAiJLdWAgW8nAx +qBzh3r1OcenWvn61oVrDTfe/m72UpP31qlOTRskmAQRwxKBxus4lZvuRflVw7kkK +TWJ/wlCacvIYZ53pRag0hOj4gfbRWiIeB087s3/dEaVz3L6pGTppqW0bMuKJqqUn +C1p+dOIPZDldfly5wRf8x41eyewk7dLyP3qERTcCvj5rWcTmWxZtwKqeqrVZLixw +VZzMmZaYJFTRjtrKtBG0t3BDH2+QCyCgqHYTZdvbI1p1S6ELMXcK7n1oYRoTjOpR +flxWo1dMXaHrE2W/VBTM8+7c1+w8l/J4Vrjfclxw/M4G3Z/SBzHv51KRns2618AY +RAcxZUkyaRNK648CAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAW +gBS1Nrw8jBqrLPZZGS2DFNqTJRXWhjAdBgNVHQ4EFgQUtTa8PIwaqyz2WRktgxTa +kyUV1oYwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDQUAA4ICAQAU+zElODH4 +ygiyI3Y4rfjTWfXMtFcl4US+fvwW7K76Jp9PZxZKVvD97ccZATSOkFot1oBc7HHS +gSWCHgBx35rR1R0iu9Gl82IPtOvcJHP+plbNmhTFBDUWMaIH66UA4rb4X3L9P2FJ +jt5+TTjXeh50N2xR3L4ABLg4FPMgwe2bpyP9DUKEHX/yc8PQeGPxn+zXW+nxvmyg +SwOejWnhFNqIEIEjU//aVCsLxrmWlQQYRvN7qJfYW2ik5DgcDkXlmNMJrppe7LN5 +DTly8vSUnQ6eYCLmqPZMhc0HgjpoOc09X+M49LavO2tKn2BRRaJAAuWqDOM+0XjU +onScJroFmihwSj6mC9AdSfC6+K5BEH6kBxK9qM8pPVe7x/FDRwA+rnAYWiB7Ccs6 +OnCA5UxgmMEVwR1K98jwm+FyreddaFgLBLGMvJ+3+26LWwRV++sjVdd4UNoly74n +NrskGnkcUdH+E7v/eCzcpL4v9sVLU8+nTJlecKxZiASuZAS/e6Z6TdPod72hflAV +8+9JMIVNIVeq2yx1l62BAYeisXCdHgZaA2CxP6ZtgizUFLGBpeg9iB20cixYN4qO +OJS4c92p4Lj2d6KzfFjermk6tYulGrvy2HQGnP1icyAhdrF+cJ4Z1OsXYhk4mc02 +K0f+McvfueSsCNPYpuvUnn5LZKRVXSsXyQ== +-----END CERTIFICATE----- + # D-TRUST Root CA 3 2013 -----BEGIN CERTIFICATE----- MIIEDjCCAvagAwIBAgIDD92sMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNVBAYTAkRF @@ -1160,17 +1320,16 @@ v8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z # GlobalSign ECC Root CA - R4 -----BEGIN CERTIFICATE----- -MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEk -MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpH -bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX -DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD -QSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu -MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprlOQcJ -FspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAw -DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61F -uOJAf/sKbvu+M8k8o4TVMAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGX -kPoUVy0D7O48027KqGx2vKLeuwIgJ6iFJzWbVsaj8kfSt24bAgAXqmemFZHe+pTs -ewv4n4Q= +MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYD +VQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2Jh +bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgw +MTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0g +UjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkWymOx +uYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNV +HQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/ ++wpu+74zyTyjhNUwCgYIKoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147 +bmF0774BxL4YSFlhgjICICadVGNA3jdgUM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm -----END CERTIFICATE----- # GlobalSign ECC Root CA - R5 @@ -1212,30 +1371,6 @@ DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== -----END CERTIFICATE----- -# GlobalSign Root CA - R2 ------BEGIN CERTIFICATE----- -MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G -A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp -Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1 -MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG -A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL -v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8 -eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq -tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd -C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa -zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB -mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH -V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n -bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG -3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs -J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO -291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS -ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd -AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 -TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== ------END CERTIFICATE----- - # GlobalSign Root CA - R3 -----BEGIN CERTIFICATE----- MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G @@ -1293,6 +1428,90 @@ JJUEeKgDu+6B5dpffItKoZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R 5hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA= -----END CERTIFICATE----- +# GlobalSign Secure Mail Root E45 +-----BEGIN CERTIFICATE----- +MIICITCCAaegAwIBAgIQdlP+qicdlUZd1vGe5biQCjAKBggqhkjOPQQDAzBSMQsw +CQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEoMCYGA1UEAxMf +R2xvYmFsU2lnbiBTZWN1cmUgTWFpbCBSb290IEU0NTAeFw0yMDAzMTgwMDAwMDBa +Fw00NTAzMTgwMDAwMDBaMFIxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxT +aWduIG52LXNhMSgwJgYDVQQDEx9HbG9iYWxTaWduIFNlY3VyZSBNYWlsIFJvb3Qg +RTQ1MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE+XmLgUc3iZY/RUlQfxomC5Myfi7A +wKcImsNuj5s+CyLsN1O3b4qwvCc3S22pRjvZH/+loUS7LXO/nkEHXFObUQg6Wrtv +OMcWkXjCShNpHYLfWi8AiJaiLhx0+Z1+ZjeKo0IwQDAOBgNVHQ8BAf8EBAMCAYYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU3xNei1/CQAL9VreUTLYe1aaxFJYw +CgYIKoZIzj0EAwMDaAAwZQIwE7C+13EgPuSrnM42En1fTB8qtWlFM1/TLVqy5IjH +3go2QjJ5naZruuH5RCp7isMSAjEAoGYcToedh8ntmUwbCu4tYMM3xx3NtXKw2cbv +vPL/P/BS3QjnqmR5w+RpV5EvpMt8 +-----END CERTIFICATE----- + +# GlobalSign Secure Mail Root R45 +-----BEGIN CERTIFICATE----- +MIIFcDCCA1igAwIBAgIQdlP+qExQq5+NMrUdA49X3DANBgkqhkiG9w0BAQwFADBS +MQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEoMCYGA1UE +AxMfR2xvYmFsU2lnbiBTZWN1cmUgTWFpbCBSb290IFI0NTAeFw0yMDAzMTgwMDAw +MDBaFw00NTAzMTgwMDAwMDBaMFIxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i +YWxTaWduIG52LXNhMSgwJgYDVQQDEx9HbG9iYWxTaWduIFNlY3VyZSBNYWlsIFJv +b3QgUjQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3HnMbQb5bbvg +VgRsf+B1zC0FSehL3FTsW3eVcr9/Yp2FqYokUF9T5dt0b6QpWxMqCa2axS/C93Y7 +oUVGqkPmJP4rsG8ycBlGWnkmL/w9fV9ky1fMYWGo2ZVu45Wgbn9HEhjW7wPJ+4r6 +mr2CFalVd0sRT1nga8Nx8wzYVNWBaD4TuRUuh4o8RCc2YiRu+CwFcjBhvUKRI8Sd +JafZVJoUozGtgHkMp2NsmKOsV0czH2WW4dDSNdr5cfehpiW1QV3fPmDY0fafpfK4 +zBOqj/mybuGDLZPdPoUa3eixXCYBy0mF/PzS1H+FYoZ0+cvsNSKiDDCPO6t561by ++kLz7fkfRYlAKa3qknTqUv1WtCvaou11wm6rzlKQS/be8EmPmkjUiBltRebMjLnd +ZGBgAkD4uc+8WOs9hbnGCtOcB2aPxxg5I0bhPB6jL1Bhkgs9K2zxo0c4V5GrDY/G +nU0E0iZSXOWl/SotFioBaeepfeE2t7Eqxdmxjb25i87Mi6E+C0jNUJU0xNgIWdhr +JvS+9dQiFwBXya6bBDAznwv731aiyW5Udtqxl2InWQ8RiiIbZJY/qPG3JEqNPFN8 +bYN2PbImSHP1RBYBLQkqjhaWUNBzBl27IkiCTApGWj+A/1zy8pqsLAjg1urwEjiB +T6YQ7UarzBacC89kppkChURnRq39TecCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgGG +MA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKCTFShu7o8IsjXGnmJ5dKexDit7 +MA0GCSqGSIb3DQEBDAUAA4ICAQBFCvjRXKxigdAE17b/V1GJCwzL3iRlN/urnu1m +9OoMGWmJuBmxMFa02fb3vsaul8tF9hGMOjBkTMGfWcBGQggGR2QXeOCVBwbWjKKs +qdk/03tWT/zEhyjftisWI8CfH1vj1kReIk8jBIw1FrV5B4ZcL5fi9ghkptzbqIrj +pHt3DdEpkyggtFOjS05f3sH2dSP8Hzx4T3AxeC+iNVRxBKzIxG3D9pGx/s3uRG6B +9kDFPioBv6tMsQM/DRHkD9Ik4yKIm59fRz1RSeAJN34XITF2t2dxSChLJdcQ6J9h +WRbFPjJOHwzOo8wP5McRByIvOAjdW5frQmxZmpruetCd38XbCUMuCqoZPWvoajB6 +V+a/s2o5qY/j8U9laLa9nyiPoRZaCVA6Mi4dL0QRQqYA5jGY/y2hD+akYFbPedey +Ttew+m4MVyPHzh+lsUxtGUmeDn9wj3E/WCifdd1h4Dq3Obbul9Q1UfuLSWDIPGau +l+6NJllXu3jwelAwCbBgqp9O3Mk+HjrcYpMzsDpUdG8sMUXRaxEyamh29j32ahNe +JJjn6h2az3iCB2D3TRDTgZpFjZ6vm9yAx0OylWikww7oCkcVv1Qz3AHn1aYec9h6 +sr8vreNVMJ7fDkG84BH1oQyoIuHjAKNOcHyS4wTRekKKdZBZ45vRTKJkvXN5m2/y +s8H2PA== +-----END CERTIFICATE----- + +# GLOBALTRUST 2020 +-----BEGIN CERTIFICATE----- +MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkG +A1UEBhMCQVQxIzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkw +FwYDVQQDExBHTE9CQUxUUlVTVCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYx +MDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAhBgNVBAoTGmUtY29tbWVyY2UgbW9u +aXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAyMDIwMIICIjANBgkq +hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWiD59b +RatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9Z +YybNpyrOVPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3 +QWPKzv9pj2gOlTblzLmMCcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPw +yJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCmfecqQjuCgGOlYx8ZzHyyZqjC0203b+J+ +BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKAA1GqtH6qRNdDYfOiaxaJ +SaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9ORJitHHmkH +r96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj0 +4KlGDfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9Me +dKZssCz3AwyIDMvUclOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIw +q7ejMZdnrY8XD2zHc+0klGvIg5rQmjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2 +nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1UdIwQYMBaAFNwu +H9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA +VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJC +XtzoRlgHNQIw4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd +6IwPS3BD0IL/qMy/pJTAvoe9iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf ++I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS8cE54+X1+NZK3TTN+2/BT+MAi1bi +kvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2HcqtbepBEX4tdJP7 +wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxSvTOB +TI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6C +MUO+1918oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn +4rnvyOL2NSl6dPrFf4IFYqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+I +aFvowdlxfv1k7/9nR4hYJS8+hge9+6jlgqispdNpQ80xiEmEU5LAsTkbOYMBMMTy +qfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg== +-----END CERTIFICATE----- + # Go Daddy Class 2 CA -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh @@ -1319,6 +1538,154 @@ dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf ReYNnyicsbkqWletNw+vHX/bvZ8= -----END CERTIFICATE----- +# GTS Root R1 +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQsw +CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU +MBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw +MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp +Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaMf/vo +27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7w +Cl7raKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjw +TcLCeoiKu7rPWRnWr4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0Pfybl +qAj+lug8aJRT7oM6iCsVlgmy4HqMLnXWnOunVmSPlk9orj2XwoSPwLxAwAtcvfaH +szVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk9+aCEI3oncKKiPo4Zor8 +Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zqkUspzBmk +MiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92 +wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70p +aDPvOmbsB4om3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrN +VjzRlwW5y0vtOUucxD/SVRNuJLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQID +AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E +FgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQADggIBAJ+qQibb +C5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe +QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuy +h6f88/qBVRRiClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM4 +7HLwEXWdyzRSjeZ2axfG34arJ45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8J +ZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYciNuaCp+0KueIHoI17eko8cdLiA6Ef +MgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5meLMFrUKTX5hgUvYU/ +Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJFfbdT +6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ +0E6yove+7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm +2tIMPNuzjsmhDYAPexZ3FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bb +bP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3gm3c +-----END CERTIFICATE----- + +# GTS Root R2 +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQsw +CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU +MBIGA1UEAxMLR1RTIFJvb3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw +MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp +Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3LvCvpt +nfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY +6Dlo7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAu +MC6C/Pq8tBcKSOWIm8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7k +RXuJVfeKH2JShBKzwkCX44ofR5GmdFrS+LFjKBC4swm4VndAoiaYecb+3yXuPuWg +f9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7MkogwTZq9TwtImoS1mKPV ++3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJGr61K8Yzo +dDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RW +Ir9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKa +G73VululycslaVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCq +gc7dGtxRcw1PcOnlthYhGXmy5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwID +AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E +FgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQADggIBAB/Kzt3H +vqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 +0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyC +B19m3H0Q/gxhswWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2u +NmSRXbBoGOqKYcl3qJfEycel/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMg +yALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVnjWQye+mew4K6Ki3pHrTgSAai/Gev +HyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y59PYjJbigapordwj6 +xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M7YNR +TOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924Sg +JPFI/2R80L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV +7LXTWtiBmelDGDfrs7vRWGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl +6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjWHYbL +-----END CERTIFICATE----- + +# GTS Root R3 +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYD +VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG +A1UEAxMLR1RTIFJvb3QgUjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw +WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz +IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout736G +jOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL2 +4CejQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW +BBTB8Sa6oC2uhYHP0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7 +VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azTL818+FsuVbu/3ZL3pAzcMeGiAjEA/Jdm +ZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV11RZt+cRLInUue4X +-----END CERTIFICATE----- + +# GTS Root R4 +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYD +VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG +A1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw +WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz +IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzuhXyi +QHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvR +HYqjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW +BBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D +9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/Cr8deVl5c1RxYIigL9zC2L7F8AjEA8GE8 +p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh4rsUecrNIdSUtUlD +-----END CERTIFICATE----- + +# HARICA Client ECC Root CA 2021 +-----BEGIN CERTIFICATE----- +MIICWjCCAeGgAwIBAgIQMWjZ2OFiVx7SGUSI5hB98DAKBggqhkjOPQQDAzBvMQsw +CQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2Vh +cmNoIEluc3RpdHV0aW9ucyBDQTEnMCUGA1UEAwweSEFSSUNBIENsaWVudCBFQ0Mg +Um9vdCBDQSAyMDIxMB4XDTIxMDIxOTExMDMzNFoXDTQ1MDIxMzExMDMzM1owbzEL +MAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl +YXJjaCBJbnN0aXR1dGlvbnMgQ0ExJzAlBgNVBAMMHkhBUklDQSBDbGllbnQgRUND +IFJvb3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABAcYrZWWlNBcD4L3 +KkD6AsnJPTamowRqwW2VAYhgElRsXKIrbhM6iJUMHCaGNkqJGbcY3jvoqFAfyt9b +v0mAFdvjMOEdWscqigEH/m0sNO8oKJe8wflXhpWLNc+eWtFolaNCMEAwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUUgjSvjKBJf31GpfsTl8au1PNkK0wDgYDVR0P +AQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMEwxRUZPqOa+w3eyGhhLLYh7WOar +lGtEA7AX/9+Cc0RRLP2THQZ7FNKJ7EAM7yEBLgIwL8kuWmwsHdmV4J6wuVxSfPb4 +OMou8dQd8qJJopX4wVheT/5zCu8xsKsjWBOMi947 +-----END CERTIFICATE----- + +# HARICA Client RSA Root CA 2021 +-----BEGIN CERTIFICATE----- +MIIFqjCCA5KgAwIBAgIQVVL4HtsbJCyeu5YYzQIoPjANBgkqhkiG9w0BAQsFADBv +MQswCQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl +c2VhcmNoIEluc3RpdHV0aW9ucyBDQTEnMCUGA1UEAwweSEFSSUNBIENsaWVudCBS +U0EgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTg0NloXDTQ1MDIxMzEwNTg0NVow +bzELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBS +ZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJzAlBgNVBAMMHkhBUklDQSBDbGllbnQg +UlNBIFJvb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB +AIHbV0KQLHQ19Pi4dBlNqwlad0WBc2KwNZ/40LczAIcTtparDlQSMAe8m7dI19EZ +g66O2KnxqQCEsIxenugMj1Rpv/bUCE8mcP4YQWMaszKLQPgHq1cx8MYWdmeatN0v +8tFrxdCShJFxbg8uY+kfU6TdUhPMCYMpgQzFU3VEsQ5nUxjQwx+IS5+UJLQpvLvo +Tv1v0hUdSdyNcPIRGiBRVRG6iG/E91B51qox4oQ9XjLIdypQceULL+m26u+rCjM5 +Dv2PpWdDgo6YaQkJG0DNOGdH6snsl3ES3iT1cjzR90NMJveQsonpRUtVPTEFekHi +lbpDwBfFtoU9GY1kcPNbrM2f0yl1h0uVZ2qm+NHdvJCGiUMpqTdb9V2wJlpTQnaQ +K8+eVmwrVM9cmmXfW4tIYDh8+8ULz3YEYwIzKn31g2fn+sZD/SsP1CYvd6QywSTq +ZJ2/szhxMUTyR7iiZkGh+5t7vMdGanW/WqKM6GpEwbiWtcAyCC17dDVzssrG/q8R +chj258jCz6Uq6nvWWeh8oLJqQAlpDqWW29EAufGIbjbwiLKd8VLyw3y/MIk8Cmn5 +IqRl4ZvgdMaxhZeWLK6Uj1CmORIfvkfygXjTdTaefVogl+JSrpmfxnybZvP+2M/u +vZcGHS2F3D42U5Z7ILroyOGtlmI+EXyzAISep0xxq0o3AgMBAAGjQjBAMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFKDWBz1eJPd7oEQuJFINGaorBJGnMA4GA1Ud +DwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEADUf5CWYxUux57sKo8mg+7ZZF +yzqmmGM/6itNTgPQHILhy9Pl1qtbZyi8nf4MmQqAVafOGyNhDbBX8P7gyr7mkNuD +LL6DjvR5tv7QDUKnWB9p6oH1BaX+RmjrbHjJ4Orn5t4xxdLVLIJjKJ1dqBp+iObn +K/Es1dAFntwtvTdm1ASip62/OsKoO63/jZ0z4LmahKGHH3b0gnTXDvkwSD5biD6q +XGvWLwzojnPCGJGDObZmWtAfYCddTeP2Og1mUJx4e6vzExCuDy+r6GSzGCCdRjVk +JXPqmxBcWDWJsUZIp/Ss1B2eW8yppRoTTyRQqtkbbbFA+53dWHTEwm8UcuzbNZ+4 +VHVFw6bIGig1Oq5l8qmYzq9byTiMMTt/zNyW/eJb1tBZ9Ha6C8tPgxDHQNAdYOkq +5UhYdwxFab4ZcQQk4uMkH0rIwT6Z9ZaYOEgloRWwG9fihBhb9nE1mmh7QMwYXAwk +ndSV9ZmqRuqurL/0FBkk6Izs4/W8BmiKKgwFXwqXdafcfsD913oY3zDROEsfsJhw +v8x8c/BuxDGlpJcdrL/ObCFKvicjZ/MGVoEKkY624QMFMyzaNAhNTlAjrR+lxdR6 +/uoJ7KcoYItGfLXqm91P+edrFcaIz0Pb5SfcBFZub0YV8VYt6FwMc8MjgTggy8kM +ac8sqzuEYDMZUv1pFDM= +-----END CERTIFICATE----- + # Hellenic Academic and Research Institutions ECC RootCA 2015 -----BEGIN CERTIFICATE----- MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzAN @@ -1338,33 +1705,6 @@ lSTAGiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7Sof TUwJCA3sS61kFyjndc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR -----END CERTIFICATE----- -# Hellenic Academic and Research Institutions RootCA 2011 ------BEGIN CERTIFICATE----- -MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1Ix -RDBCBgNVBAoTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1 -dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1p -YyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIFJvb3RDQSAyMDExMB4XDTExMTIw -NjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYTAkdSMUQwQgYDVQQK -EztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIENl -cnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl -c2VhcmNoIEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEB -BQADggEPADCCAQoCggEBAKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPz -dYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJ -fel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa71HFK9+WXesyHgLacEns -bgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u8yBRQlqD -75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSP -FEDH3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNV -HRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp -5dgTBCPuQSUwRwYDVR0eBEAwPqA8MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQu -b3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQub3JnMA0GCSqGSIb3DQEBBQUA -A4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVtXdMiKahsog2p -6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 -TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7 -dIsXRSZMFpGD/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8Acys -Nnq/onN694/BtZqhFLKPM58N7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXI -l7WdmplNsDz4SgCbZN2fOUvRJ9e4 ------END CERTIFICATE----- - # Hellenic Academic and Research Institutions RootCA 2015 -----BEGIN CERTIFICATE----- MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1Ix @@ -1587,42 +1927,6 @@ rYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0EAwMDaAAwZQIwJsdpW9zV Mgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9 -----END CERTIFICATE----- -# QuoVadis Root CA ------BEGIN CERTIFICATE----- -MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJC -TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0 -aWZpY2F0aW9uIEF1dGhvcml0eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0 -aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAzMTkxODMzMzNaFw0yMTAzMTcxODMz -MzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUw -IwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVR -dW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG -9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Yp -li4kVEAkOPcahdxYTMukJ0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2D -rOpm2RgbaIr1VxqYuvXtdj182d6UajtLF8HVj71lODqV0D1VNk7feVcxKh7YWWVJ -WCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeLYzcS19Dsw3sgQUSj7cug -F+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWenAScOospU -xbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCC -Ak4wPQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVv -dmFkaXNvZmZzaG9yZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREw -ggENMIIBCQYJKwYBBAG+WAABMIH7MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNl -IG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBh -c3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFy -ZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh -Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYI -KwYBBQUHAgEWFmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3T -KbkGGew5Oanwl4Rqy+/fMIGuBgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rq -y+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1p -dGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYD -VQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6tlCL -MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSk -fnIYj9lofFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf8 -7C9TqnN7Az10buYWnuulLsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1R -cHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2xgI4JVrmcGmD+XcHXetwReNDWXcG31a0y -mQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi5upZIof4l/UO/erMkqQW -xFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi5nrQNiOK -SnQ2+Q== ------END CERTIFICATE----- - # QuoVadis Root CA 1 G3 -----BEGIN CERTIFICATE----- MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQEL @@ -1788,6 +2092,22 @@ iNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW -----END CERTIFICATE----- +# Security Communication ECC RootCA1 +-----BEGIN CERTIFICATE----- +MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYT +AkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYD +VQQDEyJTZWN1cml0eSBDb21tdW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYx +NjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTELMAkGA1UEBhMCSlAxJTAjBgNVBAoT +HFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNVBAMTIlNlY3VyaXR5 +IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+Cnnfdl +dB9sELLo5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpK +ULGjQjBAMB0GA1UdDgQWBBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu +9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3LsnNdo4gIxwwCMQDAqy0O +be0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70eN9k= +-----END CERTIFICATE----- + # Security Communication Root CA -----BEGIN CERTIFICATE----- MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEY @@ -1833,25 +2153,38 @@ t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6qtnRGEmyR7jTV7JqR50S+kDFy SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 -----END CERTIFICATE----- -# Sonera Class 2 Root CA +# Security Communication RootCA3 -----BEGIN CERTIFICATE----- -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 +TdJ0MN1kURXbg4NR16/9M51NZg== -----END CERTIFICATE----- # SSL.com Root Certification Authority ECC @@ -2003,41 +2336,6 @@ ZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6LqjviOvrv1vA+ACOzB2+htt Qc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ -----END CERTIFICATE----- -# SwissSign Platinum CA - G2 ------BEGIN CERTIFICATE----- -MIIFwTCCA6mgAwIBAgIITrIAZwwDXU8wDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UE -BhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEjMCEGA1UEAxMaU3dpc3NTaWdu -IFBsYXRpbnVtIENBIC0gRzIwHhcNMDYxMDI1MDgzNjAwWhcNMzYxMDI1MDgzNjAw -WjBJMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMSMwIQYDVQQD -ExpTd2lzc1NpZ24gUGxhdGludW0gQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBAMrfogLi2vj8Bxax3mCq3pZcZB/HL37PZ/pEQtZ2Y5Wu669y -IIpFR4ZieIbWIDkm9K6j/SPnpZy1IiEZtzeTIsBQnIJ71NUERFzLtMKfkr4k2Htn -IuJpX+UFeNSH2XFwMyVTtIc7KZAoNppVRDBopIOXfw0enHb/FZ1glwCNioUD7IC+ -6ixuEFGSzH7VozPY1kneWCqv9hbrS3uQMpe5up1Y8fhXSQQeol0GcN1x2/ndi5ob -jM89o03Oy3z2u5yg+gnOI2Ky6Q0f4nIoj5+saCB9bzuohTEJfwvH6GXp43gOCWcw -izSC+13gzJ2BbWLuCB4ELE6b7P6pT1/9aXjvCR+htL/68++QHkwFix7qepF6w9fl -+zC8bBsQWJj3Gl/QKTIDE0ZNYWqFTFJ0LwYfexHihJfGmfNtf9dng34TaNhxKFrY -zt3oEBSa/m0jh26OWnA81Y0JAKeqvLAxN23IhBQeW71FYyBrS3SMvds6DsHPWhaP -pZjydomyExI7C3d3rLvlPClKknLKYRorXkzig3R3+jVIeoVNjZpTxN94ypeRSCtF -KwH3HBqi7Ri6Cr2D+m+8jVeTO9TUps4e8aCxzqv9KyiaTxvXw3LbpMS/XUz13XuW -ae5ogObnmLo2t/5u7Su9IPhlGdpVCX4l3P5hYnL5fhgC72O00Puv5TtjjGePAgMB -AAGjgawwgakwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O -BBYEFFCvzAeHFUdvOMW0ZdHelarp35zMMB8GA1UdIwQYMBaAFFCvzAeHFUdvOMW0 -ZdHelarp35zMMEYGA1UdIAQ/MD0wOwYJYIV0AVkBAQEBMC4wLAYIKwYBBQUHAgEW -IGh0dHA6Ly9yZXBvc2l0b3J5LnN3aXNzc2lnbi5jb20vMA0GCSqGSIb3DQEBBQUA -A4ICAQAIhab1Fgz8RBrBY+D5VUYI/HAcQiiWjrfFwUF1TglxeeVtlspLpYhg0DB0 -uMoI3LQwnkAHFmtllXcBrqS3NQuB2nEVqXQXOHtYyvkv+8Bldo1bAbl93oI9ZLi+ -FHSjClTTLJUYFzX1UWs/j6KWYTl4a0vlpqD4U99REJNi54Av4tHgvI42Rncz7Lj7 -jposiU0xEQ8mngS7twSNC/K5/FqdOxa3L8iYq/6KUFkuozv8KV2LwUvJ4ooTHbG/ -u0IdUt1O2BReEMYxB+9xJ/cbOQncguqLs5WGXv312l0xpuAxtpTmREl0xRbl9x8D -YSjFyMsSoEJL+WuICI20MhjzdZ/EfwBPBZWcoxcCw7NTm6ogOSkrZvqdr16zktK1 -puEa+S1BaYEUtLS17Yk9zvupnTVCRLEcFHOBzyoBNZox1S2PbYTfgE1X4z/FhHXa -icYwu+uPyyIIoK6q8QNsOktNCaUOcsZWayFCTiMlFGiudgp8DAdwZPmaL/YFOSbG -DI8Zf0NebvRbFS/bYV3mZy8/CJT5YLSYMdp08YSTcU1f+2BY0fvEwW2JorsgH51x -kcsymxM9Pn2SUjWskpSi0xjCfMfqr3YFFt1nJ8J+HAciIfNAChs0B0QTwoRqjt8Z -Wr9/6x3iGjjRXK9HkmuAtTClyY3YqzGBH9/CZjfTk6mFhnll0g== ------END CERTIFICATE----- - # SwissSign Silver CA - G2 -----BEGIN CERTIFICATE----- MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UE @@ -2148,6 +2446,40 @@ d05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6+/NNIxuZMzSg LvWpCz/UXeHPhJ/iGcJfitYgHuNztw== -----END CERTIFICATE----- +# Telia Root CA v2 +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQx +CzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UE +AwwQVGVsaWEgUm9vdCBDQSB2MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1 +NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZ +MBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ76zBq +AMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9 +vVYiQJ3q9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9 +lRdU2HhE8Qx3FZLgmEKnpNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTOD +n3WhUidhOPFZPY5Q4L15POdslv5e2QJltI5c0BE0312/UqeBAMN/mUWZFdUXyApT +7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW5olWK8jjfN7j/4nlNW4o +6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNrRBH0pUPC +TEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6 +WT0EBXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63R +DolUK5X6wK0dmBR4M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZI +pEYslOqodmJHixBTB0hXbOKSTbauBcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGj +YzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7Wxy+G2CQ5MB0GA1UdDgQWBBRy +rOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw +AwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ +8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi +0f6X+J8wfBj5tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMM +A8iZGok1GTzTyVR8qPAs5m4HeW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBS +SRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+Cy748fdHif64W1lZYudogsYMVoe+K +TTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygCQMez2P2ccGrGKMOF +6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15h2Er +3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMt +Ty3EHD70sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pT +VmBds9hCG1xLEooc6+t9xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAW +ysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQraVplI/owd8k+BsHMYeB2F326CjYSlKA +rBPuUBQemMc= +-----END CERTIFICATE----- + # TeliaSonera Root CA v1 -----BEGIN CERTIFICATE----- MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAw @@ -2272,29 +2604,6 @@ As8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp 1uwJ -----END CERTIFICATE----- -# Trustis FPS Root CA ------BEGIN CERTIFICATE----- -MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBF -MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQL -ExNUcnVzdGlzIEZQUyBSb290IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTEx -MzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1RydXN0aXMgTGltaXRlZDEc -MBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQRUN+ -AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihH -iTHcDnlkH5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjj -vSkCqPoc4Vu5g6hBSLwacY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA -0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zto3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlB -OrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEAAaNTMFEwDwYDVR0TAQH/ -BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAdBgNVHQ4E -FgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01 -GX2cGE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmW -zaD+vkAMXBJV+JOCyinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP4 -1BIy+Q7DsdwyhEQsb8tGD+pmQQ9P8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZE -f1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHVl/9D7S3B2l0pKoU/rGXuhg8F -jZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYliB6XzCGcKQEN -ZetX2fNXlrtIzYE= ------END CERTIFICATE----- - # Trustwave Global Certification Authority -----BEGIN CERTIFICATE----- MIIF2jCCA8KgAwIBAgIMBfcOhtpJ80Y1LrqyMA0GCSqGSIb3DQEBCwUAMIGIMQsw @@ -2587,36 +2896,6 @@ sH/7NiXaldDxJBQX3RiAa0YjOVT1jmIJBB2UkKab5iXiQkWquJCtvgiPqQtCGJTP cjnhsUPgKM+351psE2tJs//jGHyJizNdrDPXp/naOlXJWBD5qu9ats9LS98q -----END CERTIFICATE----- -# VeriSign Universal Root Certification Authority ------BEGIN CERTIFICATE----- -MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB -vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL -ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp -U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W -ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe -Fw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX -MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0 -IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y -IGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh -bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF -9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH -H26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H -LL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN -/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT -rJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud -EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw -WTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs -exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud -DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4 -sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+ -seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz -4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+ -BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR -lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3 -7M2CYfE45k+XmCpajQ== ------END CERTIFICATE----- - # XRamp Global CA Root -----BEGIN CERTIFICATE----- MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCB diff --git a/msys2/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem b/msys2/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem index 1b8502bbb..f87456806 100644 --- a/msys2/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem +++ b/msys2/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem @@ -32,6 +32,24 @@ RqEIr9baRRmW1FMdW4R58MD3R++Lj8UGrp1MYp3/RgT408m2ECVAdf4WqslKYIYv uu8wd+RU4riEmViAqhOLUTpPSPaLtrM= -----END CERTIFICATE----- +# AC RAIZ FNMT-RCM SERVIDORES SEGUROS +-----BEGIN CERTIFICATE----- +MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQsw +CQYDVQQGEwJFUzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgw +FgYDVQRhDA9WQVRFUy1RMjgyNjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1S +Q00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4MTIyMDA5MzczM1oXDTQzMTIyMDA5 +MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQtUkNNMQ4wDAYDVQQL +DAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNBQyBS +QUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuB +BAAiA2IABPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LH +sbI6GA60XYyzZl2hNPk2LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oK +Um8BA06Oi6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD +VR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqGSM49BAMDA2kAMGYCMQCu +SuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoDzBOQn5IC +MQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJy +v+c= +-----END CERTIFICATE----- + # ACCVRAIZ1 -----BEGIN CERTIFICATE----- MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UE @@ -289,6 +307,42 @@ CkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1AE47xDqUEpHJWEadIRNyp4iciuRMStuW 1KyLa2tJElMzrdfkviT8tQp21KW8EA== -----END CERTIFICATE----- +# ANF Secure Server Root CA +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + # Atos TrustedRoot 2011 -----BEGIN CERTIFICATE----- MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UE @@ -312,6 +366,43 @@ lmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G3mB/ufNPRJLv KrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed -----END CERTIFICATE----- +# Autoridad de Certificacion Firmaprofesional CIF A62634068 +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UE +BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h +cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1 +MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg +Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9 +thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM +cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG +L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i +NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h +X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b +m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy +Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja +EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T +KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF +6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh +OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMB0GA1UdDgQWBBRlzeurNR4APn7VdMAc +tHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4wgZswgZgGBFUd +IAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j +b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABC +AG8AbgBhAG4AbwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAw +ADEANzAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9m +iWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL4QjbEwj4KKE1soCzC1HA01aajTNF +Sa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDbLIpgD7dvlAceHabJ +hfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1ilI45P +Vf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZE +EAEeiGaPcjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV +1aUsIC+nmCjuRfzxuIgALI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2t +CsvMo2ebKHTEm9caPARYpoKdrcd7b/+Alun4jWq9GJAd/0kakFI3ky88Al2CdgtR +5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH9IBk9W6VULgRfhVwOEqw +f9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpfNIbnYrX9 +ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNK +GbqEZycPvEJdvSRUDewdcAZfpLz6IHxV +-----END CERTIFICATE----- + # Autoridad de Certificacion Firmaprofesional CIF A62634068 -----BEGIN CERTIFICATE----- MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UE @@ -471,6 +562,54 @@ zMOl6W8KjptlwlCFtaOgUxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8x L4ysEr3vQCj8KWefshNPZiTEUxnpHikV7+ZtsH8tZ/3zbBt1RqPlShfppNcL -----END CERTIFICATE----- +# Certainly Root E1 +-----BEGIN CERTIFICATE----- +MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQsw +CQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlu +bHkgUm9vdCBFMTAeFw0yMTA0MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJ +BgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlubHkxGjAYBgNVBAMTEUNlcnRhaW5s +eSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4fxzf7flHh4axpMCK ++IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9YBk2 +QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4 +hevIIgcwCgYIKoZIzj0EAwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozm +ut6Dacpps6kFtZaSF4fC0urQe87YQVt8rgIwRt7qy12a7DLCZRawTDBcMPPaTnOG +BtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR +-----END CERTIFICATE----- + +# Certainly Root R1 +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAw +PTELMAkGA1UEBhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2Vy +dGFpbmx5IFJvb3QgUjEwHhcNMjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9 +MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0 +YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANA2 +1B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O5MQT +vqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbed +aFySpvXl8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b0 +1C7jcvk2xusVtyWMOvwlDbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5 +r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGIXsXwClTNSaa/ApzSRKft43jvRl5tcdF5 +cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkNKPl6I7ENPT2a/Z2B7yyQ +wHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQAjeZjOVJ +6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA +2CnbrlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyH +Wyf5QBGenDPBt+U1VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMR +eiFPCyEQtkA6qyI6BJyLm4SGcprSp6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB +/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTgqj8ljZ9EXME66C6u +d0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAszHQNTVfSVcOQr +PbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d +8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi +1wrykXprOQ4vMMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrd +rRT90+7iIgXr0PK3aBLXWopBGsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9di +taY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+gjwN/KUD+nsa2UUeYNrEjvn8K8l7 +lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgHJBu6haEaBQmAupVj +yTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7fpYn +Kx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLy +yCwzk5Iwx06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5n +wXARPbv0+Em34yaXOp/SX3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6 +OV+KmalBWQewLK8= +-----END CERTIFICATE----- + # Certigna -----BEGIN CERTIFICATE----- MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV @@ -588,6 +727,23 @@ PuXaTH4MNMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE QRBdJ3NghVdJIgc= -----END CERTIFICATE----- +# Certum EC-384 CA +-----BEGIN CERTIFICATE----- +MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQsw +CQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScw +JQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMT +EENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2MDcyNDU0WhcNNDMwMzI2MDcyNDU0 +WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBT +LkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAX +BgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATE +KI6rGFtqvm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7Tm +Fy8as10CW4kjPMIRBSqniBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68Kj +QjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI0GZnQkdjrzife81r1HfS+8 +EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjADVS2m5hjEfO/J +UG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0QoSZ/6vn +nvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k= +-----END CERTIFICATE----- + # Certum Trusted Network CA -----BEGIN CERTIFICATE----- MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBM @@ -648,6 +804,41 @@ XALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLXis7VmFxWlgPF7ncGNf/P DrW5viSP -----END CERTIFICATE----- +# Certum Trusted Root CA +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + # CFCA EV ROOT -----BEGIN CERTIFICATE----- MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJD @@ -682,50 +873,6 @@ AAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3CekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ 5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su -----END CERTIFICATE----- -# Chambers of Commerce Root - 2008 ------BEGIN CERTIFICATE----- -MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD -VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0 -IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3 -MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xKTAnBgNVBAMTIENoYW1iZXJz -IG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEyMjk1MFoXDTM4MDcz -MTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBj -dXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIw -EAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEp -MCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0G -CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW9 -28sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKAXuFixrYp4YFs8r/lfTJq -VKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorjh40G072Q -DuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR -5gN/ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfL -ZEFHcpOrUMPrCXZkNNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05a -Sd+pZgvMPMZ4fKecHePOjlO+Bd5gD2vlGts/4+EhySnB8esHnFIbAURRPHsl18Tl -UlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331lubKgdaX8ZSD6e2wsWsSaR6s -+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ0wlf2eOKNcx5 -Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj -ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAx -hduub+84Mxh2EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNV -HQ4EFgQU+SSsD7K1+HnA+mCIG8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1 -+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpN -YWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29t -L2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVy -ZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAt -IDIwMDiCCQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRV -HSAAMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20w -DQYJKoZIhvcNAQEFBQADggIBAJASryI1wqM58C7e6bXpeHxIvj99RZJe6dqxGfwW -PJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH3qLPaYRgM+gQDROpI9CF -5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbURWpGqOt1 -glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaH -FoI6M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2 -pSB7+R5KBWIBpih1YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MD -xvbxrN8y8NmBGuScvfaAFPDRLLmF9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QG -tjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcKzBIKinmwPQN/aUv0NCB9szTq -jktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvGnrDQWzilm1De -fhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg -OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZ -d0jQ ------END CERTIFICATE----- - # Comodo AAA Services root -----BEGIN CERTIFICATE----- MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb @@ -834,30 +981,6 @@ QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl NVOFBkpdn627G190 -----END CERTIFICATE----- -# Cybertrust Global Root ------BEGIN CERTIFICATE----- -MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYG -A1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2Jh -bCBSb290MB4XDTA2MTIxNTA4MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UE -ChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBS -b290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+Mi8vRRQZhP/8NN5 -7CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW0ozS -J8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2y -HLtgwEZLAfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iP -t3sMpTjr3kfb1V05/Iin89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNz -FtApD0mpSPCzqrdsxacwOUBdrsTiXSZT8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAY -XSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/ -MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2MDSgMqAw -hi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3Js -MB8GA1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUA -A4IBAQBW7wojoFROlZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMj -Wqd8BfP9IjsO0QbE2zZMcwSO5bAi5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUx -XOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2hO0j9n0Hq0V+09+zv+mKts2o -omcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+TX3EJIrduPuoc -A06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW -WL1WMRJOEcgh4LMRkWXbtKaIOM5V ------END CERTIFICATE----- - # DigiCert Assured ID Root CA -----BEGIN CERTIFICATE----- MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl @@ -1013,6 +1136,55 @@ vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep +OkuE6N36B9K -----END CERTIFICATE----- +# DigiCert TLS ECC P384 Root G5 +-----BEGIN CERTIFICATE----- +MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURp +Z2lDZXJ0IFRMUyBFQ0MgUDM4NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2 +MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ +bmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQgUm9vdCBHNTB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1TzvdlHJS +7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp +0zVozptjn4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICIS +B4CIfBFqMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49 +BAMDA2gAMGUCMQCJao1H5+z8blUD2WdsJk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQ +LgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIxAJSdYsiJvRmEFOml+wG4 +DXZDjC5Ty3zfDBeWUA== +-----END CERTIFICATE----- + +# DigiCert TLS RSA4096 Root G5 +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBN +MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMT +HERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcN +NDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQs +IEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS87IE+ +ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG0 +2C+JFvuUAT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgp +wgscONyfMXdcvyej/Cestyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZM +pG2T6T867jp8nVid9E6P/DsjyG244gXazOvswzH016cpVIDPRFtMbzCe88zdH5RD +nU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnVDdXifBBiqmvwPXbzP6Po +sMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9qTXeXAaDx +Zre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cd +Lvvyz6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvX +KyY//SovcfXWJL5/MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNe +XoVPzthwiHvOAbWWl9fNff2C+MIkwcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPL +tgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4EFgQUUTMc7TZArxfTJc1paPKv +TiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcN +AQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw +GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7H +PNtQOa27PShNlnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLF +O4uJ+DQtpBflF+aZfTCIITfNMBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQ +REtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/u4cnYiWB39yhL/btp/96j1EuMPik +AdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9GOUrYU9DzLjtxpdRv +/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh47a+ +p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilw +MUc/dNAUFvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WF +qUITVuwhd4GTWgzqltlJyqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCK +ovfepEWFJqgejF0pW8hL2JpqA15w8oVPbEtoL8pU9ozaMv7Da4M/OMZ+ +-----END CERTIFICATE----- + # DigiCert Trusted Root G4 -----BEGIN CERTIFICATE----- MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi @@ -1047,26 +1219,44 @@ r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1 gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+ -----END CERTIFICATE----- -# DST Root CA X3 +# D-TRUST BR Root CA 1 2020 -----BEGIN CERTIFICATE----- -MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/ -MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT -DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow -PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD -Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O -rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq -OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b -xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw -7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD -aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV -HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG -SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69 -ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr -AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz -R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5 -JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo -Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ +MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQsw +CQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRS +VVNUIEJSIFJvb3QgQ0EgMSAyMDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5 +NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAG +A1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAGByqGSM49AgEGBSuB +BAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7dPYS +zuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0 +QVK5buXuQqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/ +VbNafAkl1bK6CKBrqx9tMA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6g +PKA6hjhodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X2JyX3Jvb3Rf +Y2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVjdG9yeS5kLXRydXN0Lm5l +dC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxPPUQtVHJ1 +c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjO +PQQDAwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFW +wKrY7RjEsK70PvomAjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHV +dWNbFJWcHwHP2NVypw87 +-----END CERTIFICATE----- + +# D-TRUST EV Root CA 1 2020 +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQsw +CQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRS +VVNUIEVWIFJvb3QgQ0EgMSAyMDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5 +NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAG +A1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAGByqGSM49AgEGBSuB +BAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8ZRCC +/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rD +wpdhQntJraOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3 +OqQo5FD4pPfsazK2/umLMA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6g +PKA6hjhodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X2V2X3Jvb3Rf +Y2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVjdG9yeS5kLXRydXN0Lm5l +dC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxPPUQtVHJ1 +c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjO +PQQDAwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CA +y/m0sRtW9XLS/BnRAjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJb +gfM0agPnIjhQW+0ZT0MW -----END CERTIFICATE----- # D-TRUST Root Class 3 CA 2 2009 @@ -1123,39 +1313,6 @@ xpeG0ILD5EJt/rDiZE4OJudANCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqX KVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVvw9y4AyHqnxbxLFS1 -----END CERTIFICATE----- -# EC-ACC ------BEGIN CERTIFICATE----- -MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB -8zELMAkGA1UEBhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2Vy -dGlmaWNhY2lvIChOSUYgUS0wODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1 -YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYDVQQLEyxWZWdldSBodHRwczovL3d3 -dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UECxMsSmVyYXJxdWlh -IEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMTBkVD -LUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQG -EwJFUzE7MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8g -KE5JRiBRLTA4MDExNzYtSSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBD -ZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZlZ2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQu -bmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJhcnF1aWEgRW50aXRhdHMg -ZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUNDMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R -85iKw5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm -4CgPukLjbo73FCeTae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaV -HMf5NLWUhdWZXqBIoH7nF2W4onW4HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNd -QlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0aE9jD2z3Il3rucO2n5nzbcc8t -lGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw0JDnJwIDAQAB -o4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4 -opvpXY0wfwYDVR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBo -dHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidW -ZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAwDQYJKoZIhvcN -AQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJlF7W2u++AVtd0x7Y -/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNaAl6k -SBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhy -Rp/7SNVel+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOS -Agu+TGbrIP65y7WZf+a2E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xl -nJ2lYJU6Un/10asIbvPuW/mIPX64b24D5EI= ------END CERTIFICATE----- - # emSign ECC Root CA - C3 -----BEGIN CERTIFICATE----- MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQG @@ -1467,6 +1624,61 @@ y4Q08ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8d NL/+I5c30jn6PQ0GC7TbO6Orb1wdtn7os4I07QZcJA== -----END CERTIFICATE----- +# E-Tugra Global Root CA ECC v3 +-----BEGIN CERTIFICATE----- +MIICpTCCAiqgAwIBAgIUJkYZdzHhT28oNt45UYbm1JeIIsEwCgYIKoZIzj0EAwMw +gYAxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHEwZBbmthcmExGTAXBgNVBAoTEEUtVHVn +cmEgRUJHIEEuUy4xHTAbBgNVBAsTFEUtVHVncmEgVHJ1c3QgQ2VudGVyMSYwJAYD +VQQDEx1FLVR1Z3JhIEdsb2JhbCBSb290IENBIEVDQyB2MzAeFw0yMDAzMTgwOTQ2 +NThaFw00NTAzMTIwOTQ2NThaMIGAMQswCQYDVQQGEwJUUjEPMA0GA1UEBxMGQW5r +YXJhMRkwFwYDVQQKExBFLVR1Z3JhIEVCRyBBLlMuMR0wGwYDVQQLExRFLVR1Z3Jh +IFRydXN0IENlbnRlcjEmMCQGA1UEAxMdRS1UdWdyYSBHbG9iYWwgUm9vdCBDQSBF +Q0MgdjMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASOmCm/xxAeJ9urA8woLNheSBkQ +KczLWYHMjLiSF4mDKpL2w6QdTGLVn9agRtwcvHbB40fQWxPa56WzZkjnIZpKT4YK +fWzqTTKACrJ6CZtpS5iB4i7sAnCWH/31Rs7K3IKjYzBhMA8GA1UdEwEB/wQFMAMB +Af8wHwYDVR0jBBgwFoAU/4Ixcj75xGZsrTie0bBRiKWQzPUwHQYDVR0OBBYEFP+C +MXI++cRmbK04ntGwUYilkMz1MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNp +ADBmAjEA5gVYaWHlLcoNy/EZCL3W/VGSGn5jVASQkZo1kTmZ+gepZpO6yGjUij/6 +7W4WAie3AjEA3VoXK3YdZUKWpqxdinlW2Iob35reX8dQj7FbcQwm32pAAOwzkSFx +vmjkI6TZraE3 +-----END CERTIFICATE----- + +# E-Tugra Global Root CA RSA v3 +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + # GDCA TrustAUTH R5 ROOT -----BEGIN CERTIFICATE----- MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UE @@ -1501,81 +1713,18 @@ T8p+ck0LcIymSLumoRT2+1hEmRSuqguTaaApJUqlyyvdimYHFngVV3Eb7PVHhPOe MTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g== -----END CERTIFICATE----- -# GeoTrust Primary Certification Authority - G2 ------BEGIN CERTIFICATE----- -MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDEL -MAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChj -KSAyMDA3IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2 -MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 -eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1OVowgZgxCzAJBgNV -BAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykgMjAw -NyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNV -BAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH -MjB2MBAGByqGSM49AgEGBSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcL -So17VDs6bl8VAsBQps8lL33KSLjHUGMcKiEIfJo22Av+0SbFWDEwKCXzXV2juLal -tJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO -BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+EVXVMAoG -CCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGT -qQ7mndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBucz -rD6ogRLQy7rQkgu2npaqBA+K ------END CERTIFICATE----- - -# Global Chambersign Root - 2008 ------BEGIN CERTIFICATE----- -MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYD -VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0 -IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3 -MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD -aGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMxNDBaFw0zODA3MzEx -MjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3Vy -cmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAG -A1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAl -BgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZI -hvcNAQEBBQADggIPADCCAgoCggIBAMDfVtPkOpt2RbQT2//BthmLN0EYlVJH6xed -KYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXfXjaOcNFccUMd2drvXNL7 -G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0ZJJ0YPP2 -zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4 -ddPB/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyG -HoiMvvKRhI9lNNgATH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2 -Id3UwD2ln58fQ1DJu7xsepeY7s2MH/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3V -yJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfeOx2YItaswTXbo6Al/3K1dh3e -beksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSFHTynyQbehP9r -6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh -wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsog -zCtLkykPAgMBAAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQW -BBS5CcqcHtvTbDprru1U8VuTBjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDpr -ru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UEBhMCRVUxQzBBBgNVBAcTOk1hZHJp -ZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJmaXJtYS5jb20vYWRk -cmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJmaXJt -YSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiC -CQDJzdPp1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCow -KAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZI -hvcNAQEFBQADggIBAICIf3DekijZBZRG/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZ -UohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6ReAJ3spED8IXDneRRXoz -X1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/sdZ7LoR/x -fxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVz -a2Mg9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yyd -Yhz2rXzdpjEetrHHfoUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMd -SqlapskD7+3056huirRXhOukP9DuqqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9O -AP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETrP3iZ8ntxPjzxmKfFGBI/5rso -M0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVqc5iJWzouE4ge -v8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z -09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B ------END CERTIFICATE----- - # GlobalSign ECC Root CA - R4 -----BEGIN CERTIFICATE----- -MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEk -MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpH -bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX -DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD -QSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu -MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprlOQcJ -FspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAw -DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61F -uOJAf/sKbvu+M8k8o4TVMAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGX -kPoUVy0D7O48027KqGx2vKLeuwIgJ6iFJzWbVsaj8kfSt24bAgAXqmemFZHe+pTs -ewv4n4Q= +MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYD +VQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2Jh +bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgw +MTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0g +UjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkWymOx +uYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNV +HQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/ ++wpu+74zyTyjhNUwCgYIKoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147 +bmF0774BxL4YSFlhgjICICadVGNA3jdgUM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm -----END CERTIFICATE----- # GlobalSign ECC Root CA - R5 @@ -1617,30 +1766,6 @@ DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== -----END CERTIFICATE----- -# GlobalSign Root CA - R2 ------BEGIN CERTIFICATE----- -MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G -A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp -Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1 -MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG -A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL -v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8 -eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq -tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd -C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa -zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB -mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH -V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n -bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG -3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs -J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO -291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS -ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd -AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 -TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== ------END CERTIFICATE----- - # GlobalSign Root CA - R3 -----BEGIN CERTIFICATE----- MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G @@ -1698,6 +1823,88 @@ JJUEeKgDu+6B5dpffItKoZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R 5hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA= -----END CERTIFICATE----- +# GlobalSign Root E46 +-----BEGIN CERTIFICATE----- +MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYx +CzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQD +ExNHbG9iYWxTaWduIFJvb3QgRTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAw +MDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2Ex +HDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkBjtjq +R+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGdd +yXqBPCCjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBQxCpCPtsad0kRLgLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ +7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZkvLtoURMMA/cVi4RguYv/Uo7njLwcAjA8 ++RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+CAezNIm8BZ/3Hobui3A= +-----END CERTIFICATE----- + +# GlobalSign Root R46 +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUA +MEYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYD +VQQDExNHbG9iYWxTaWduIFJvb3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMy +MDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYt +c2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08EsCVeJ +OaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQG +vGIFAha/r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud +316HCkD7rRlr+/fKYIje2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo +0q3v84RLHIf8E6M6cqJaESvWJ3En7YEtbWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSE +y132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvjK8Cd+RTyG/FWaha/LIWF +zXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD412lPFzYE ++cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCN +I/onccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzs +x2sZy/N78CsHpdlseVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqa +ByFrgY/bxFn63iLABJzjqls2k+g9vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC +4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEMBQADggIBAHx4 +7PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg +JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti +2kM3S+LGteWygxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIk +pnnpHs6i58FZFZ8d4kuaPp92CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRF +FRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZmOUdkLG5NrmJ7v2B0GbhWrJKsFjLt +rWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qqJZ4d16GLuc1CLgSk +ZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwyeqiv5 +u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP +4vkYxboznxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6 +N3ec592kD3ZDZopD8p/7DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3 +vouXsXgxT7PntgMTzlSdriVZzH81Xwj3QEUxeCp6 +-----END CERTIFICATE----- + +# GLOBALTRUST 2020 +-----BEGIN CERTIFICATE----- +MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkG +A1UEBhMCQVQxIzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkw +FwYDVQQDExBHTE9CQUxUUlVTVCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYx +MDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAhBgNVBAoTGmUtY29tbWVyY2UgbW9u +aXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAyMDIwMIICIjANBgkq +hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWiD59b +RatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9Z +YybNpyrOVPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3 +QWPKzv9pj2gOlTblzLmMCcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPw +yJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCmfecqQjuCgGOlYx8ZzHyyZqjC0203b+J+ +BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKAA1GqtH6qRNdDYfOiaxaJ +SaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9ORJitHHmkH +r96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj0 +4KlGDfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9Me +dKZssCz3AwyIDMvUclOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIw +q7ejMZdnrY8XD2zHc+0klGvIg5rQmjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2 +nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1UdIwQYMBaAFNwu +H9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA +VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJC +XtzoRlgHNQIw4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd +6IwPS3BD0IL/qMy/pJTAvoe9iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf ++I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS8cE54+X1+NZK3TTN+2/BT+MAi1bi +kvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2HcqtbepBEX4tdJP7 +wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxSvTOB +TI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6C +MUO+1918oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn +4rnvyOL2NSl6dPrFf4IFYqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+I +aFvowdlxfv1k7/9nR4hYJS8+hge9+6jlgqispdNpQ80xiEmEU5LAsTkbOYMBMMTy +qfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg== +-----END CERTIFICATE----- + # Go Daddy Class 2 CA -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh @@ -1751,98 +1958,150 @@ LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI # GTS Root R1 -----BEGIN CERTIFICATE----- -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 +bP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3gm3c -----END CERTIFICATE----- # GTS Root R2 -----BEGIN CERTIFICATE----- -MIIFWjCCA0KgAwIBAgIQbkepxlqz5yDFMJo/aFLybzANBgkqhkiG9w0BAQwFADBH -MQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExM -QzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIy -MDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNl -cnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEB -AQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv -CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3Kg -GjSY6Dlo7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9Bu -XvAuMC6C/Pq8tBcKSOWIm8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOd -re7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS+LFjKBC4swm4VndAoiaYecb+3yXu -PuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7MkogwTZq9TwtImoS1 -mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJGr61K -8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqj -x5RWIr9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsR -nTKaG73VululycslaVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0 -kzCqgc7dGtxRcw1PcOnlthYhGXmy5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9Ok -twIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV -HQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQADggIBALZp -8KZ3/p7uC4Gt4cCpx/k1HUCCq+YEtN/L9x0Pg/B+E02NjO7jMyLDOfxA325BS0JT -vhaI8dI4XsRomRyYUpOM52jtG2pzegVATX9lO9ZY8c6DR2Dj/5epnGB3GFW1fgiT -z9D2PGcDFWEJ+YF59exTpJ/JjwGLc8R3dtyDovUMSRqodt6Sm2T4syzFJ9MHwAiA -pJiS4wGWAqoC7o87xdFtCjMwc3i5T1QWvwsHoaRc5svJXISPD+AVdyx+Jn7axEvb -pxZ3B7DNdehyQtaVhJ2Gg/LkkM0JR9SLA3DaWsYDQvTtN6LwG1BUSw7YhN4ZKJmB -R64JGz9I0cNv4rBgF/XuIwKl2gBbbZCr7qLpGzvpx0QnRY5rn/WkhLx3+WuXrD5R -RaIRpsyF7gpo8j5QOHokYh4XIDdtak23CZvJ/KRY9bb7nE4Yu5UC56GtmwfuNmsk -0jmGwZODUNKBRqhfYlcsu2xkiAhu7xNUX90txGdj08+JN7+dIPT7eoOboB6BAFDC -5AwiWVIQ7UNWhwD4FFKnHYuTjKJNRn8nxnGbJN7k2oaLDX5rIMHAnuFl2GqjpuiF -izoHCBy69Y9Vmhh1fuXsgWbRIXOhNUQLgD1bnF5vKheW0YMjiGZt5obicDIvUiLn -yOd/xCxgXS/Dr55FBcOEArf9LAhST4Ldo/DUhgkC +MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQsw +CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU +MBIGA1UEAxMLR1RTIFJvb3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw +MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp +Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3LvCvpt +nfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY +6Dlo7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAu +MC6C/Pq8tBcKSOWIm8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7k +RXuJVfeKH2JShBKzwkCX44ofR5GmdFrS+LFjKBC4swm4VndAoiaYecb+3yXuPuWg +f9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7MkogwTZq9TwtImoS1mKPV ++3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJGr61K8Yzo +dDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RW +Ir9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKa +G73VululycslaVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCq +gc7dGtxRcw1PcOnlthYhGXmy5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwID +AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E +FgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQADggIBAB/Kzt3H +vqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 +0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyC +B19m3H0Q/gxhswWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2u +NmSRXbBoGOqKYcl3qJfEycel/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMg +yALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVnjWQye+mew4K6Ki3pHrTgSAai/Gev +HyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y59PYjJbigapordwj6 +xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M7YNR +TOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924Sg +JPFI/2R80L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV +7LXTWtiBmelDGDfrs7vRWGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl +6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjWHYbL -----END CERTIFICATE----- # GTS Root R3 -----BEGIN CERTIFICATE----- -MIICDDCCAZGgAwIBAgIQbkepx2ypcyRAiQ8DVd2NHTAKBggqhkjOPQQDAzBHMQsw -CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU -MBIGA1UEAxMLR1RTIFJvb3QgUjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw -MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp -Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjOPQIBBgUrgQQA -IgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout -736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2A -DDL24CejQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud -DgQWBBTB8Sa6oC2uhYHP0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEAgFuk -fCPAlaUs3L6JbyO5o91lAFJekazInXJ0glMLfalAvWhgxeG4VDvBNhcl2MG9AjEA -njWSdIUlUfUk7GRSJFClH9voy8l27OyCbvWFGFPouOOaKaqW04MjyaR7YbPMAuhd +MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYD +VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG +A1UEAxMLR1RTIFJvb3QgUjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw +WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz +IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout736G +jOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL2 +4CejQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW +BBTB8Sa6oC2uhYHP0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7 +VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azTL818+FsuVbu/3ZL3pAzcMeGiAjEA/Jdm +ZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV11RZt+cRLInUue4X -----END CERTIFICATE----- # GTS Root R4 -----BEGIN CERTIFICATE----- -MIICCjCCAZGgAwIBAgIQbkepyIuUtui7OyrYorLBmTAKBggqhkjOPQQDAzBHMQsw -CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU -MBIGA1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw -MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp -Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQA -IgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu -hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/l -xKvRHYqjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud -DgQWBBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNnADBkAjBqUFJ0 -CMRw3J5QdCHojXohw0+WbhXRIjVhLfoIN+4Zba3bssx9BzT1YBkstTTZbyACMANx -sbqjYAuG7ZoIapVon+Kz4ZNkfF6Tpt95LY2F45TPI11xzPKwTdb+mciUqXWi4w== +MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYD +VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG +A1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw +WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz +IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzuhXyi +QHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvR +HYqjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW +BBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D +9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/Cr8deVl5c1RxYIigL9zC2L7F8AjEA8GE8 +p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh4rsUecrNIdSUtUlD +-----END CERTIFICATE----- + +# HARICA TLS ECC Root CA 2021 +-----BEGIN CERTIFICATE----- +MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQsw +CQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2Vh +cmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9v +dCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoXDTQ1MDIxMzExMDEwOVowbDELMAkG +A1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj +aCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJvb3Qg +Q0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7 +KKrxcm1lAEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9Y +STHMmE5gEYd103KUkE+bECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQD +AgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAircJRQO9gcS3ujwLEXQNw +SaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/QwCZ61IygN +nxS2PFOiTAZpffpskcYqSUXm7LcT4Tps +-----END CERTIFICATE----- + +# HARICA TLS RSA Root CA 2021 +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBs +MQswCQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl +c2VhcmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0Eg +Um9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUzOFoXDTQ1MDIxMzEwNTUzN1owbDEL +MAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl +YXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNBIFJv +b3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569l +mwVnlskNJLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE +4VGC/6zStGndLuwRo0Xua2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uv +a9of08WRiFukiZLRgeaMOVig1mlDqa2YUlhu2wr7a89o+uOkXjpFc5gH6l8Cct4M +pbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K5FrZx40d/JiZ+yykgmvw +Kh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEvdmn8kN3b +LW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcY +AuUR0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqB +AGMUuTNe3QvboEUHGjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYq +E613TBoYm5EPWNgGVMWX+Ko/IIqmhaZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHr +W2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQCPxrvrNQKlr9qEgYRtaQQJKQ +CoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8GA1UdEwEB/wQF +MAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAU +X15QvWiWkKQUEapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3 +f5Z2EMVGpdAgS1D0NTsY9FVqQRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxaja +H6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxDQpSbIPDRzbLrLFPCU3hKTwSUQZqP +JzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcRj88YxeMn/ibvBZ3P +zzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5vZSt +jBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0 +/L5H9MG0qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pT +BGIBnfHAT+7hOtSLIBD6Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79 +aPib8qXPMThcFarmlwDB31qlpzmq6YR/PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YW +xw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnnkf3/W9b3raYvAwtt41dU +63ZTGI0RmLo= -----END CERTIFICATE----- # Hellenic Academic and Research Institutions ECC RootCA 2015 @@ -1864,33 +2123,6 @@ lSTAGiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7Sof TUwJCA3sS61kFyjndc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR -----END CERTIFICATE----- -# Hellenic Academic and Research Institutions RootCA 2011 ------BEGIN CERTIFICATE----- -MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1Ix -RDBCBgNVBAoTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1 -dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1p -YyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIFJvb3RDQSAyMDExMB4XDTExMTIw -NjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYTAkdSMUQwQgYDVQQK -EztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIENl -cnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl -c2VhcmNoIEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEB -BQADggEPADCCAQoCggEBAKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPz -dYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJ -fel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa71HFK9+WXesyHgLacEns -bgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u8yBRQlqD -75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSP -FEDH3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNV -HRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp -5dgTBCPuQSUwRwYDVR0eBEAwPqA8MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQu -b3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQub3JnMA0GCSqGSIb3DQEBBQUA -A4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVtXdMiKahsog2p -6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 -TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7 -dIsXRSZMFpGD/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8Acys -Nnq/onN694/BtZqhFLKPM58N7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXI -l7WdmplNsDz4SgCbZN2fOUvRJ9e4 ------END CERTIFICATE----- - # Hellenic Academic and Research Institutions RootCA 2015 -----BEGIN CERTIFICATE----- MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1Ix @@ -1928,6 +2160,39 @@ e7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0 vm9qp/UsQu0yrbYhnr68 -----END CERTIFICATE----- +# HiPKI Root CA - G1 +-----BEGIN CERTIFICATE----- +MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBP +MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0 +ZC4xGzAZBgNVBAMMEkhpUEtJIFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRa +Fw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3 +YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kgUm9vdCBDQSAtIEcx +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0o9Qw +qNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twv +Vcg3Px+kwJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6 +lZgRZq2XNdZ1AYDgr/SEYYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnz +Qs7ZngyzsHeXZJzA9KMuH5UHsBffMNsAGJZMoYFL3QRtU6M9/Aes1MU3guvklQgZ +KILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfdhSi8MEyr48KxRURHH+CK +FgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj1jOXTyFj +HluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDr +y+K49a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ +/W3c1pzAtH2lsN0/Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgM +a/aOEmem8rJY5AIJEzypuxC00jBF8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6 +fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi +7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqc +SE5XCV0vrPSltJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6Fza +ZsT0pPBWGTMpWmWSBUdGSquEwx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9Tc +XzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07QJNBAsNB1CI69aO4I1258EHBGG3zg +iLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv5wiZqAxeJoBF1Pho +L5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+GpzjLrF +Ne85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wr +kkVbbiVghUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+ +vhV4nYWBSipX3tUZQ9rbyltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQU +YDksswBVLuT1sw5XxJFBAJw/6KXf6vb/yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ== +-----END CERTIFICATE----- + # Hongkong Post Root CA 1 -----BEGIN CERTIFICATE----- MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsx @@ -2085,6 +2350,22 @@ mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc= -----END CERTIFICATE----- +# ISRG Root X2 +-----BEGIN CERTIFICATE----- +MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQsw +CQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2gg +R3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00 +MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVTMSkwJwYDVQQKEyBJbnRlcm5ldCBT +ZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNSRyBSb290IFgyMHYw +EAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0HttwW ++1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9 +ItgKbppbd9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZI +zj0EAwMDaAAwZQIwe3lORlCEwkSHRhtFcP9Ymd70/aTSVaYgLXTWNLxBo1BfASdW +tL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5U6VR5CmD1/iQMVtCnwr1 +/q4AaOeMSQ+2b1tbFfLn +-----END CERTIFICATE----- + # Izenpe.com -----BEGIN CERTIFICATE----- MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4 @@ -2260,31 +2541,6 @@ uLjbvrW5KfnaNwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2 XjG4Kvte9nHfRCaexOYNkbQudZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= -----END CERTIFICATE----- -# Network Solutions Certificate Authority ------BEGIN CERTIFICATE----- -MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBi -MQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu -MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3Jp -dHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJV -UzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydO -ZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwz -c7MEL7xxjOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPP -OCwGJgl6cvf6UDL4wpPTaaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rl -mGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXTcrA/vGp97Eh/jcOrqnErU2lBUzS1sLnF -BgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc/Qzpf14Dl847ABSHJ3A4 -qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMBAAGjgZcw -gZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIB -BjAPBgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwu -bmV0c29sc3NsLmNvbS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3Jp -dHkuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc8 -6fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q4LqILPxFzBiwmZVRDuwduIj/ -h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/GGUsyfJj4akH -/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv -wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHN -pGxlaKFJdlxDydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey ------END CERTIFICATE----- - # OISTE WISeKey Global Root GB CA -----BEGIN CERTIFICATE----- MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBt @@ -2326,42 +2582,6 @@ rYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0EAwMDaAAwZQIwJsdpW9zV Mgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9 -----END CERTIFICATE----- -# QuoVadis Root CA ------BEGIN CERTIFICATE----- -MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJC -TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0 -aWZpY2F0aW9uIEF1dGhvcml0eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0 -aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAzMTkxODMzMzNaFw0yMTAzMTcxODMz -MzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUw -IwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVR -dW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG -9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Yp -li4kVEAkOPcahdxYTMukJ0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2D -rOpm2RgbaIr1VxqYuvXtdj182d6UajtLF8HVj71lODqV0D1VNk7feVcxKh7YWWVJ -WCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeLYzcS19Dsw3sgQUSj7cug -F+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWenAScOospU -xbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCC -Ak4wPQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVv -dmFkaXNvZmZzaG9yZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREw -ggENMIIBCQYJKwYBBAG+WAABMIH7MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNl -IG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBh -c3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFy -ZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh -Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYI -KwYBBQUHAgEWFmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3T -KbkGGew5Oanwl4Rqy+/fMIGuBgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rq -y+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1p -dGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYD -VQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6tlCL -MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSk -fnIYj9lofFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf8 -7C9TqnN7Az10buYWnuulLsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1R -cHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2xgI4JVrmcGmD+XcHXetwReNDWXcG31a0y -mQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi5upZIof4l/UO/erMkqQW -xFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi5nrQNiOK -SnQ2+Q== ------END CERTIFICATE----- - # QuoVadis Root CA 1 G3 -----BEGIN CERTIFICATE----- MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQEL @@ -2607,6 +2827,22 @@ CPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR 3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= -----END CERTIFICATE----- +# Security Communication ECC RootCA1 +-----BEGIN CERTIFICATE----- +MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYT +AkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYD +VQQDEyJTZWN1cml0eSBDb21tdW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYx +NjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTELMAkGA1UEBhMCSlAxJTAjBgNVBAoT +HFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNVBAMTIlNlY3VyaXR5 +IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+Cnnfdl +dB9sELLo5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpK +ULGjQjBAMB0GA1UdDgQWBBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu +9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3LsnNdo4gIxwwCMQDAqy0O +be0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70eN9k= +-----END CERTIFICATE----- + # Security Communication Root CA -----BEGIN CERTIFICATE----- MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEY @@ -2652,25 +2888,38 @@ t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6qtnRGEmyR7jTV7JqR50S+kDFy SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 -----END CERTIFICATE----- -# Sonera Class 2 Root CA +# Security Communication RootCA3 -----BEGIN CERTIFICATE----- -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 +TdJ0MN1kURXbg4NR16/9M51NZg== -----END CERTIFICATE----- # SSL.com EV Root Certification Authority ECC @@ -2781,74 +3030,6 @@ oYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NIWuuA8ShY Ic2wBlX7Jz9TkHCpBB5XJ7k= -----END CERTIFICATE----- -# Staat der Nederlanden EV Root CA ------BEGIN CERTIFICATE----- -MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJO -TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFh -dCBkZXIgTmVkZXJsYW5kZW4gRVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0y -MjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5MMR4wHAYDVQQKDBVTdGFhdCBkZXIg -TmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRlcmxhbmRlbiBFViBS -b290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkkSzrS -M4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nC -UiY4iKTWO0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3d -Z//BYY1jTw+bbRcwJu+r0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46p -rfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13l -pJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gVXJrm0w912fxBmJc+qiXb -j5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr08C+eKxC -KFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS -/ZbV0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0X -cgOPvZuM5l5Tnrmd74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH -1vI4gnPah1vlPNOePqc7nvQDs/nxfRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrP -px9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB -/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwaivsnuL8wbqg7 -MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI -eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u -2dfOWBfoqSmuc0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHS -v4ilf0X8rLiltTMMgsT7B/Zq5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTC -wPTxGfARKbalGAKb12NMcIxHowNDXLldRqANb/9Zjr7dn3LDWyvfjFvO5QxGbJKy -CqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tNf1zuacpzEPuKqf2e -vTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi5Dp6 -Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIa -Gl6I6lD4WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeL -eG9QgkRQP2YGiqtDhFZKDyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8 -FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGyeUN51q1veieQA6TqJIc/2b3Z6fJfUEkc -7uzXLg== ------END CERTIFICATE----- - -# Staat der Nederlanden Root CA - G3 ------BEGIN CERTIFICATE----- -MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO -TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFh -dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloX -DTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRl -ciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJv -b3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4yolQP -cPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WW -IkYFsO2tx1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqX -xz8ecAgwoNzFs21v0IJyEavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFy -KJLZWyNtZrVtB0LrpjPOktvA9mxjeM3KTj215VKb8b475lRgsGYeCasH/lSJEULR -9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUurmkVLoR9BvUhTFXFkC4az -5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU51nus6+N8 -6U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7 -Ngzp07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHP -bMk7ccHViLVlvMDoFxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXt -BznaqB16nzaeErAMZRKQFWDZJkBE41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTt -XUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMBAAGjQjBAMA8GA1UdEwEB/wQF -MAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleuyjWcLhL75Lpd -INyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD -U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwp -LiniyMMB8jPqKqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8 -Ipf3YF3qKS9Ysr1YvY2WTxB1v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixp -gZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA8KCWAg8zxXHzniN9lLf9OtMJgwYh -/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b8KKaa8MFSu1BYBQw -0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0rmj1A -fsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq -4BZ+Extq1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR -1VmiiXTTn74eS9fGbbeIJG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/ -QFH1T/U67cjF68IeHRaVesd+QnGTbksVtzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM -94B7IWcnMFk= ------END CERTIFICATE----- - # Starfield Class 2 CA -----BEGIN CERTIFICATE----- MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzEl @@ -3019,6 +3200,40 @@ d05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6+/NNIxuZMzSg LvWpCz/UXeHPhJ/iGcJfitYgHuNztw== -----END CERTIFICATE----- +# Telia Root CA v2 +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQx +CzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UE +AwwQVGVsaWEgUm9vdCBDQSB2MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1 +NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZ +MBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ76zBq +AMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9 +vVYiQJ3q9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9 +lRdU2HhE8Qx3FZLgmEKnpNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTOD +n3WhUidhOPFZPY5Q4L15POdslv5e2QJltI5c0BE0312/UqeBAMN/mUWZFdUXyApT +7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW5olWK8jjfN7j/4nlNW4o +6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNrRBH0pUPC +TEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6 +WT0EBXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63R +DolUK5X6wK0dmBR4M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZI +pEYslOqodmJHixBTB0hXbOKSTbauBcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGj +YzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7Wxy+G2CQ5MB0GA1UdDgQWBBRy +rOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw +AwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ +8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi +0f6X+J8wfBj5tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMM +A8iZGok1GTzTyVR8qPAs5m4HeW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBS +SRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+Cy748fdHif64W1lZYudogsYMVoe+K +TTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygCQMez2P2ccGrGKMOF +6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15h2Er +3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMt +Ty3EHD70sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pT +VmBds9hCG1xLEooc6+t9xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAW +ysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQraVplI/owd8k+BsHMYeB2F326CjYSlKA +rBPuUBQemMc= +-----END CERTIFICATE----- + # TeliaSonera Root CA v1 -----BEGIN CERTIFICATE----- MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAw @@ -3143,29 +3358,6 @@ As8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp 1uwJ -----END CERTIFICATE----- -# Trustis FPS Root CA ------BEGIN CERTIFICATE----- -MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBF -MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQL -ExNUcnVzdGlzIEZQUyBSb290IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTEx -MzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1RydXN0aXMgTGltaXRlZDEc -MBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQRUN+ -AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihH -iTHcDnlkH5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjj -vSkCqPoc4Vu5g6hBSLwacY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA -0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zto3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlB -OrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEAAaNTMFEwDwYDVR0TAQH/ -BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAdBgNVHQ4E -FgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01 -GX2cGE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmW -zaD+vkAMXBJV+JOCyinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP4 -1BIy+Q7DsdwyhEQsb8tGD+pmQQ9P8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZE -f1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHVl/9D7S3B2l0pKoU/rGXuhg8F -jZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYliB6XzCGcKQEN -ZetX2fNXlrtIzYE= ------END CERTIFICATE----- - # Trustwave Global Certification Authority -----BEGIN CERTIFICATE----- MIIF2jCCA8KgAwIBAgIMBfcOhtpJ80Y1LrqyMA0GCSqGSIb3DQEBCwUAMIGIMQsw @@ -3316,6 +3508,41 @@ lzwDGrpDxpa5RXI4s6ehlj2Re37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c lo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM= -----END CERTIFICATE----- +# TunTrust Root CA +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIUEwLV4kBMkkaGFmddtLu7sms+/BMwDQYJKoZIhvcNAQEL +BQAwYTELMAkGA1UEBhMCVE4xNzA1BgNVBAoMLkFnZW5jZSBOYXRpb25hbGUgZGUg +Q2VydGlmaWNhdGlvbiBFbGVjdHJvbmlxdWUxGTAXBgNVBAMMEFR1blRydXN0IFJv +b3QgQ0EwHhcNMTkwNDI2MDg1NzU2WhcNNDQwNDI2MDg1NzU2WjBhMQswCQYDVQQG +EwJUTjE3MDUGA1UECgwuQWdlbmNlIE5hdGlvbmFsZSBkZSBDZXJ0aWZpY2F0aW9u +IEVsZWN0cm9uaXF1ZTEZMBcGA1UEAwwQVHVuVHJ1c3QgUm9vdCBDQTCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMPN0/y9BFPdDCA61YguBUtB9YOCfvdZ +n56eY+hz2vYGqU8ftPkLHzmMmiDQfgbU7DTZhrx1W4eI8NLZ1KMKsmwb60ksPqxd +2JQDoOw05TDENX37Jk0bbjBU2PWARZw5rZzJJQRNmpA+TkBuimvNKWfGzC3gdOgF +VwpIUPp6Q9p+7FuaDmJ2/uqdHYVy7BG7NegfJ7/Boce7SBbdVtfMTqDhuazb1YMZ +GoXRlJfXyqNlC/M4+QKu3fZnz8k/9YosRxqZbwUN/dAdgjH8KcwAWJeRTIAAHDOF +li/LQcKLEITDCSSJH7UP2dl3RxiSlGBcx5kDPP73lad9UKGAwqmDrViWVSHbhlnU +r8a83YFuB9tgYv7sEG7aaAH0gxupPqJbI9dkxt/con3YS7qC0lH4Zr8GRuR5KiY2 +eY8fTpkdso8MDhz/yV3A/ZAQprE38806JG60hZC/gLkMjNWb1sjxVj8agIl6qeIb +MlEsPvLfe/ZdeikZjuXIvTZxi11Mwh0/rViizz1wTaZQmCXcI/m4WEEIcb9PuISg +jwBUFfyRbVinljvrS5YnzWuioYasDXxU5mZMZl+QviGaAkYt5IPCgLnPSz7ofzwB +7I9ezX/SKEIBlYrilz0QIX32nRzFNKHsLA4KUiwSVXAkPcvCFDVDXSdOvsC9qnyW +5/yeYa1E0wCXAgMBAAGjYzBhMB0GA1UdDgQWBBQGmpsfU33x9aTI04Y+oXNZtPdE +ITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFAaamx9TffH1pMjThj6hc1m0 +90QhMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAqgVutt0Vyb+z +xiD2BkewhpMl0425yAA/l/VSJ4hxyXT968pk21vvHl26v9Hr7lxpuhbI87mP0zYu +QEkHDVneixCwSQXi/5E/S7fdAo74gShczNxtr18UnH1YeA32gAm56Q6XKRm4t+v4 +FstVEuTGfbvE7Pi1HE4+Z7/FXxttbUcoqgRYYdZ2vyJ/0Adqp2RT8JeNnYA/u8EH +22Wv5psymsNUk8QcCMNE+3tjEUPRahphanltkE8pjkcFwRJpadbGNjHh/PqAulxP +xOu3Mqz4dWEX1xAZufHSCe96Qp1bWgvUxpVOKs7/B9dPfhgGiPEZtdmYu65xxBzn +dFlY7wyJz4sfdZMaBBSSSFCp61cpABbjNhzI+L/wM9VBD8TMPN3pM0MBkRArHtG5 +Xc0yGYuPjCB31yLEQtyEFpslbei0VXF/sHyz03FJuc9SpAQ/3D2gu68zngowYI7b +nV2UqL1g52KAdoGDDIzMMEZJ4gzSqK/rYXHv5yJiqfdcZGyfFoxnNidF9Ql7v/YQ +CvGwjVRDjAS6oz/v4jXH+XTgbzRB0L9zZVcg+ZtnemZoJE6AZb0QmQZZ8mWvuMZH +u/2QeItBcy6vVR/cO5JyboTT0GFMDcx2V+IthSIVNg3rAZ3r2OvEhJn7wAzMMujj +d9qDRIueVSjAi1jTkD5OGwDxFa2DK5o= +-----END CERTIFICATE----- + # TWCA Global Root CA -----BEGIN CERTIFICATE----- MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcx @@ -3492,34 +3719,53 @@ L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG jjxDah2nGN59PRbxYvnKkKj9 -----END CERTIFICATE----- -# VeriSign Universal Root Certification Authority +# vTrus ECC Root CA -----BEGIN CERTIFICATE----- -MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB -vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL -ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp -U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W -ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe -Fw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX -MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0 -IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y -IGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh -bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF -9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH -H26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H -LL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN -/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT -rJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud -EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw -WTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs -exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud -DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4 -sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+ -seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz -4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+ -BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR -lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3 -7M2CYfE45k+XmCpajQ== +MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMw +RzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAY +BgNVBAMTEXZUcnVzIEVDQyBSb290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDcz +MTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28u +LEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYwEAYHKoZIzj0CAQYF +K4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+cToL0 +v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUd +e4BdS49nTPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYD +VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIw +V53dVvHH4+m4SVBrm2nDb+zDfSXkV5UTQJtS0zvzQBm8JsctBp61ezaf9SXUY2sA +AjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQLYgmRWAD5Tfs0aNoJrSEG +GJTO +-----END CERTIFICATE----- + +# vTrus Root CA +-----BEGIN CERTIFICATE----- +MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQEL +BQAwQzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4x +FjAUBgNVBAMTDXZUcnVzIFJvb3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMx +MDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoGA1UEChMTaVRydXNDaGluYSBDby4s +THRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZotsSKYc +IrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykU +AyyNJJrIZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+ +GrPSbcKvdmaVayqwlHeFXgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z9 +8Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KAYPxMvDVTAWqXcoKv8R1w6Jz1717CbMdH +flqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70kLJrxLT5ZOrpGgrIDajt +J8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2AXPKBlim +0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZN +pGvu/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQ +UqqzApVg+QxMaPnu1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHW +OXSuTEGC2/KmSNGzm/MzqvOmwMVO9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMB +AAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYgscasGrz2iTAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAKbqSSaet +8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd +nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1j +bhd47F18iMjrjld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvM +Kar5CKXiNxTKsbhm7xqC5PD48acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIiv +TDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJnxDHO2zTlJQNgJXtxmOTAGytfdELS +S8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554WgicEFOwE30z9J4nfr +I8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4sEb9 +b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNB +UvupLnKWnyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1P +Ti07NEPhmg4NpGaXutIcSkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929ven +sBxXVsFy6K2ir40zSbofitzmdHxghm+Hl3s= -----END CERTIFICATE----- # XRamp Global CA Root diff --git a/msys2/etc/post-install/01-devices.post b/msys2/etc/post-install/01-devices.post index d5b6fe355..b55203d7d 100644 --- a/msys2/etc/post-install/01-devices.post +++ b/msys2/etc/post-install/01-devices.post @@ -1,31 +1,6 @@ maybe_create_devs () { local DEVDIR=/dev - # Check for ${DEVDIR} directory - if [ -e "${DEVDIR}" -a ! -d "${DEVDIR}" ] - then - # No mercy. Try to remove. - rm -f "${DEVDIR}" - if [ -e "${DEVDIR}" -a ! -d "${DEVDIR}" ] - then - echo - echo "${DEVDIR} is existant but not a directory." - echo "Please fix that manually, otherwise you WILL get problems." - echo - exit 1 - fi - fi - - # Create it if necessary - mkdir -m 755 "${DEVDIR}" 2> /dev/null - if [ ! -e "${DEVDIR}" ] - then - echo - echo "Creating ${DEVDIR} directory failed." - echo "Please fix that manually, otherwise you WILL get problems." - echo - exit 1 - fi # Check for ${DEVDIR}/shm directory (for POSIX semaphores and POSIX shared mem) if [ -e "${DEVDIR}/shm" -a ! -d "${DEVDIR}/shm" ] @@ -44,7 +19,7 @@ maybe_create_devs () # Create it if necessary if [ ! -e "${DEVDIR}/shm" ] then - mkdir -m 1777 "${DEVDIR}/shm" + mkdir "${DEVDIR}/shm" if [ ! -e "${DEVDIR}/shm" ] then echo @@ -71,7 +46,7 @@ maybe_create_devs () # Create it if necessary if [ ! -e "${DEVDIR}/mqueue" ] then - mkdir -m 1777 "${DEVDIR}/mqueue" + mkdir "${DEVDIR}/mqueue" if [ ! -e "${DEVDIR}/mqueue" ] then echo @@ -80,13 +55,6 @@ maybe_create_devs () echo fi fi - - # Install /dev/fd, /dev/std{in,out,err}. The bash builtin test was compiled - # to assume these exist, so use /bin/test to really check. - /usr/bin/test -h /dev/stdin || ln -sf /proc/self/fd/0 /dev/stdin - /usr/bin/test -h /dev/stdout || ln -sf /proc/self/fd/1 /dev/stdout - /usr/bin/test -h /dev/stderr || ln -sf /proc/self/fd/2 /dev/stderr - /usr/bin/test -h /dev/fd || ln -sf /proc/self/fd /dev/fd } maybe_create_devs diff --git a/msys2/etc/post-install/06-windows-files.post b/msys2/etc/post-install/06-windows-files.post index fbedb379f..9e9ac487f 100644 --- a/msys2/etc/post-install/06-windows-files.post +++ b/msys2/etc/post-install/06-windows-files.post @@ -1,27 +1,26 @@ maybe_create_winetc () { local FILES="hosts protocols services networks" - local WINSYS32HOME="$(exec /usr/bin/cygpath -S -w)" - local WINETC="${WINSYS32HOME}\\drivers\\etc" - - if [ ! -d "${WINETC}" ]; then - echo "Directory ${WINETC} does not exist; exiting" >&2 - echo "If directory name is garbage you need to update your msys package" >&2 - exit 1 - fi local mketc= for mketc in ${FILES} do if [ ! -e "/etc/${mketc}" -a ! -L "/etc/${mketc}" ] then + local WINSYS32HOME="$(exec /usr/bin/cygpath -S -w)" + local WINETC="${WINSYS32HOME}\\drivers\\etc" + + if [ ! -d "${WINETC}" ]; then + echo "Directory ${WINETC} does not exist; exiting" >&2 + echo "If directory name is garbage you need to update your msys package" >&2 + exit 1 + fi + # Windows only uses the first 8 characters local WFILE="${WINETC}\\$(exec expr substr "${mketc}" 1 8)" /usr/bin/cp -p -v "${WFILE}" "/etc/${mketc}" fi done - - /usr/bin/chmod 1777 /tmp 2>/dev/null } maybe_create_winetc diff --git a/msys2/etc/post-install/07-pacman-key.post b/msys2/etc/post-install/07-pacman-key.post index 2dd155ad1..c89f993ec 100644 --- a/msys2/etc/post-install/07-pacman-key.post +++ b/msys2/etc/post-install/07-pacman-key.post @@ -7,8 +7,6 @@ maybe_init_keyring () /usr/bin/pacman-key --populate msys2 || true /usr/bin/pacman-key --refresh-keys || true /usr/bin/gpgconf --kill all - - MAYBE_FIRST_START=true fi } diff --git a/msys2/etc/post-install/08-xml-catalog.post b/msys2/etc/post-install/08-xml-catalog.post deleted file mode 100644 index 694411726..000000000 --- a/msys2/etc/post-install/08-xml-catalog.post +++ /dev/null @@ -1,12 +0,0 @@ -maybe_create_xml_catalog () -{ - if [ ! -f "/etc/xml/catalog" ] - then - /usr/bin/mkdir -p /etc/xml - /usr/bin/xmlcatalog --noout --create /etc/xml/catalog - - MAYBE_FIRST_START=true - fi -} - -maybe_create_xml_catalog diff --git a/msys2/etc/profile b/msys2/etc/profile index 20e03e1ba..5f4c1b0a8 100644 --- a/msys2/etc/profile +++ b/msys2/etc/profile @@ -51,8 +51,11 @@ MINGW*|CLANG*|UCRT*) MINGW_MOUNT_POINT="${MINGW_PREFIX}" PATH="${MINGW_MOUNT_POINT}/bin:${MSYS2_PATH}${ORIGINAL_PATH:+:${ORIGINAL_PATH}}" PKG_CONFIG_PATH="${MINGW_MOUNT_POINT}/lib/pkgconfig:${MINGW_MOUNT_POINT}/share/pkgconfig" + PKG_CONFIG_SYSTEM_INCLUDE_PATH="${MINGW_MOUNT_POINT}/include" + PKG_CONFIG_SYSTEM_LIBRARY_PATH="${MINGW_MOUNT_POINT}/lib" ACLOCAL_PATH="${MINGW_MOUNT_POINT}/share/aclocal:/usr/share/aclocal" MANPATH="${MINGW_MOUNT_POINT}/local/man:${MINGW_MOUNT_POINT}/share/man:${MANPATH}" + INFOPATH="${MINGW_MOUNT_POINT}/local/info:${MINGW_MOUNT_POINT}/share/info:${INFOPATH}" ;; *) PATH="${MSYS2_PATH}:/opt/bin${ORIGINAL_PATH:+:${ORIGINAL_PATH}}" @@ -62,6 +65,11 @@ esac CONFIG_SITE="/etc/config.site" MAYBE_FIRST_START=false +if [ ! -d "${HOME}" ]; then + printf "\e[1;32mMSYS2 is starting for the first time. Executing the initial setup.\e[1;0m\n" 1>&2; + MAYBE_FIRST_START=true +fi + SYSCONFDIR="${SYSCONFDIR:=/etc}" # TMP and TEMP as defined in the Windows environment must be kept @@ -69,18 +77,8 @@ SYSCONFDIR="${SYSCONFDIR:=/etc}" # them set to the default Windows temporary directory or unset # can have unexpected consequences for msys2 apps, so we define # our own to match GNU/Linux behaviour. -# -# Note: this uppercase/lowercase workaround does not seem to work. -# In fact, it has been removed from Cygwin some years ago. See: -# -# * https://cygwin.com/git/gitweb.cgi?p=cygwin-apps/base-files.git;a=commitdiff;h=3e54b07 -# * https://cygwin.com/git/gitweb.cgi?p=cygwin-apps/base-files.git;a=commitdiff;h=7f09aef -# ORIGINAL_TMP="${ORIGINAL_TMP:-${TMP}}" ORIGINAL_TEMP="${ORIGINAL_TEMP:-${TEMP}}" -unset TMP TEMP -tmp=$(exec cygpath -w "$ORIGINAL_TMP" 2> /dev/null) -temp=$(exec cygpath -w "$ORIGINAL_TEMP" 2> /dev/null) TMP="/tmp" TEMP="/tmp" @@ -92,14 +90,6 @@ if [ -e "${p}" ] ; then fi unset p -print_flags () -{ - (( $1 & 0x0002 )) && echo -n "binary" || echo -n "text" - (( $1 & 0x0010 )) && echo -n ",exec" - (( $1 & 0x0040 )) && echo -n ",cygexec" - (( $1 & 0x0100 )) && echo -n ",notexec" -} - # Shell dependent settings profile_d () { @@ -148,30 +138,10 @@ then export ACLOCAL_PATH fi -export PATH MANPATH INFOPATH PKG_CONFIG_PATH USER TMP TEMP PRINTER HOSTNAME PS1 SHELL tmp temp ORIGINAL_TMP ORIGINAL_TEMP ORIGINAL_PATH CONFIG_SITE +export PATH MANPATH INFOPATH PKG_CONFIG_PATH PKG_CONFIG_SYSTEM_INCLUDE_PATH PKG_CONFIG_SYSTEM_LIBRARY_PATH USER TMP TEMP PRINTER HOSTNAME PS1 SHELL ORIGINAL_TMP ORIGINAL_TEMP ORIGINAL_PATH CONFIG_SITE unset PATH_SEPARATOR if [ "$MAYBE_FIRST_START" = "true" ]; then - - if [ -f "/usr/bin/update-ca-trust" ] - then - sh /usr/bin/update-ca-trust - fi - - clear - echo - echo - echo "###################################################################" - echo "# #" - echo "# #" - echo "# C A U T I O N #" - echo "# #" - echo "# This is first start of MSYS2. #" - echo "# You MUST restart shell to apply necessary actions. #" - echo "# #" - echo "# #" - echo "###################################################################" - echo - echo + printf "\e[1;32mInitial setup complete. MSYS2 is now ready to use.\e[1;0m\n" 1>&2; fi unset MAYBE_FIRST_START diff --git a/msys2/etc/profile.d/000-msys2.sh b/msys2/etc/profile.d/000-msys2.sh index cfda8e8c9..d2472759b 100644 --- a/msys2/etc/profile.d/000-msys2.sh +++ b/msys2/etc/profile.d/000-msys2.sh @@ -4,3 +4,24 @@ if [ ! "${MINGW_PREFIX}" = "" ]; then XDG_DATA_DIRS="/usr/local/share/:/usr/share/" export XDG_DATA_DIRS="$MINGW_PREFIX/share/:$XDG_DATA_DIRS" fi + +# Warn the user on the first login shell in case we detect a too old Windows version +_warn_deprecated_winver() +{ + if [ "$__MSYS2_WINDOWS_VERSION_WARNING_DONE" = "true" ]; then + return; + fi + + local winver + winver=$(uname -s) # looks like `MINGW64_NT-10.0-22621` + winver=${winver#*-} # strip off `-` + winver=${winver%%-*} # strip off `-`, if any + if [ "$winver" = "6.1" ] || [ "$winver" = "6.2" ]; then + export __MSYS2_WINDOWS_VERSION_WARNING_DONE="true" + printf "\e[1;33mThe MSYS2 project no longer supports Windows 7 and 8.0.\e[1;0m\n" 1>&2; + printf "\e[1;33mFor more information visit https://www.msys2.org/docs/windows_support\e[1;0m\n" 1>&2; + fi +} + +_warn_deprecated_winver; +unset _warn_deprecated_winver; diff --git a/msys2/etc/skel/.inputrc b/msys2/etc/skel/.inputrc deleted file mode 100644 index 818cfba00..000000000 --- a/msys2/etc/skel/.inputrc +++ /dev/null @@ -1,111 +0,0 @@ -# To the extent possible under law, the author(s) have dedicated all -# copyright and related and neighboring rights to this software to the -# public domain worldwide. This software is distributed without any warranty. -# You should have received a copy of the CC0 Public Domain Dedication along -# with this software. -# If not, see . - -# ~/.inputrc: readline initialization file. - -# The copy in your home directory (~/.inputrc) is yours, please -# feel free to customise it to create a shell -# environment to your liking. If you feel a change -# would be benifitial to all, please feel free to send -# a patch to the msys2 mailing list. - -# "\e[3~": delete-char - -# VT -# "\e[1~": beginning-of-line -# "\e[4~": end-of-line - -# kvt -# "\e[H": beginning-of-line -# "\e[F": end-of-line - -# rxvt and konsole (i.e. the KDE-app...) -# "\e[7~": beginning-of-line -# "\e[8~": end-of-line - -# VT220 -# "\eOH": beginning-of-line -# "\eOF": end-of-line - -# Allow 8-bit input/output -# set meta-flag on -# set convert-meta off -# set input-meta on -# set output-meta on -#$if Bash - # Don't ring bell on completion - set bell-style none - - # or, don't beep at me - show me - #set bell-style visible - - # Show all instead of beeping first - set show-all-if-ambiguous off - - # Filename completion/expansion - set completion-ignore-case on - #set show-all-if-ambiguous on - - # Expand homedir name - #set expand-tilde on - - # Append "/" to all dirnames - #set mark-directories on - #set mark-symlinked-directories on - - # visible-stats - # Append a mark according to the file type in a listing - set visible-stats off - set mark-directories on - - # Match all files - #set match-hidden-files on - - # 'Magic Space' - # Insert a space character then performs - # a history expansion in the line - #Space: magic-space -#$endif - -# MSYSTEM is emacs based -$if mode=emacs - # Common to Console & RXVT - "\e[2~": paste-from-clipboard # "Ins. Key" - "\e[5~": beginning-of-history # Page up - "\e[6~": end-of-history # Page down - - $if term=msys # RXVT - "\e[7~": beginning-of-line # Home Key - "\e[8~": end-of-line # End Key - "\e[11~": display-shell-version # F1 - "\e[15~": re-read-init-file # F5 - "\e[12~": "Function Key 2" - "\e[13~": "Function Key 3" - "\e[14~": "Function Key 4" - "\e[17~": "Function Key 6" - "\e[18~": "Function Key 7" - "\e[19~": "Function Key 8" - "\e[20~": "Function Key 9" - "\e[21~": "Function Key 10" - $else - # Eh, normal Console is not really cygwin anymore, is it? Using 'else' instead. -mstormo - # $if term=cygwin # Console - "\e[1~": beginning-of-line # Home Key - "\e[4~": end-of-line # End Key - "\e[3~": delete-char # Delete Key - "\e\e[C": forward-word # Alt-Right - "\e\e[D": backward-word # Alt-Left - "\e[1;5C": forward-word # ctrl + right - "\e[1;5D": backward-word # ctrl + left - "\e[17~": "Function Key 6" - "\e[18~": "Function Key 7" - "\e[19~": "Function Key 8" - "\e[20~": "Function Key 9" - "\e[21~": "Function Key 10" - "\e[23~": "Function Key 11" - $endif -$endif \ No newline at end of file diff --git a/msys2/etc/skel/.profile b/msys2/etc/skel/.profile index 5e8af1207..2976c8f1e 100644 --- a/msys2/etc/skel/.profile +++ b/msys2/etc/skel/.profile @@ -27,26 +27,3 @@ if [ -n "${BASH_VERSION}" ]; then source "${HOME}/.bashrc" fi fi - -agm2() { - local MINGW_DIRS="mingw32 mingw64" - local AG_FIND= - - for dir in ${MINGW_DIRS}; do - if type -p /${dir}/bin/ag >/dev/null; then - AG_FIND=/${dir}/bin/ag - fi - done - - if ! type -p /usr/bin/git >/dev/null; then - echo "bash: git: command not found. Please install \"git\" package." - exit 1 - fi - - if [ -n "$AG_FIND" ]; then - $AG_FIND --makepkg --depth 1 "$@" $(git rev-parse --show-toplevel) - else - echo "bash: ag: conmmand not found. Please install \"mingw-w64-i686-ag\" or \"mingw-w64-x86_64-ag\" package." - exit 1 - fi -} diff --git a/msys2/mingw32.exe b/msys2/mingw32.exe index 2b4adff4a..36bdb2c11 100644 Binary files a/msys2/mingw32.exe and b/msys2/mingw32.exe differ diff --git a/msys2/mingw64.exe b/msys2/mingw64.exe index 18878855d..06e86fd06 100644 Binary files a/msys2/mingw64.exe and b/msys2/mingw64.exe differ diff --git a/msys2/msys2.exe b/msys2/msys2.exe index 381a9796f..09ead1b66 100644 Binary files a/msys2/msys2.exe and b/msys2/msys2.exe differ diff --git a/msys2/msys2_shell.cmd b/msys2/msys2_shell.cmd index 142f0b24d..0d726711d 100644 --- a/msys2/msys2_shell.cmd +++ b/msys2/msys2_shell.cmd @@ -41,6 +41,8 @@ if "x%~1" == "x-mingw32" shift& set /a msys2_shiftCounter+=1& set MSYSTEM=MINGW3 if "x%~1" == "x-mingw64" shift& set /a msys2_shiftCounter+=1& set MSYSTEM=MINGW64& goto :checkparams if "x%~1" == "x-ucrt64" shift& set /a msys2_shiftCounter+=1& set MSYSTEM=UCRT64& goto :checkparams if "x%~1" == "x-clang64" shift& set /a msys2_shiftCounter+=1& set MSYSTEM=CLANG64& goto :checkparams +if "x%~1" == "x-clang32" shift& set /a msys2_shiftCounter+=1& set MSYSTEM=CLANG32& goto :checkparams +if "x%~1" == "x-clangarm64" shift& set /a msys2_shiftCounter+=1& set MSYSTEM=CLANGARM64& goto :checkparams if "x%~1" == "x-mingw" shift& set /a msys2_shiftCounter+=1& (if exist "%WD%..\..\mingw64" (set MSYSTEM=MINGW64) else (set MSYSTEM=MINGW32))& goto :checkparams rem Console types if "x%~1" == "x-mintty" shift& set /a msys2_shiftCounter+=1& set MSYSCON=mintty.exe& goto :checkparams @@ -108,6 +110,12 @@ if "%MSYSTEM%" == "MINGW32" ( ) else if "%MSYSTEM%" == "CLANG64" ( set "CONTITLE=MinGW Clang x64" set "CONICON=clang64.ico" +) else if "%MSYSTEM%" == "CLANG32" ( + set "CONTITLE=MinGW Clang x32" + set "CONICON=clang32.ico" +) else if "%MSYSTEM%" == "CLANGARM64" ( + set "CONTITLE=MinGW Clang ARM64" + set "CONICON=clangarm64.ico" ) else ( set "CONTITLE=MSYS2 MSYS" set "CONICON=msys2.ico" @@ -121,9 +129,9 @@ if NOT EXIST "%WD%mintty.exe" goto startsh set MSYSCON=mintty.exe :startmintty if not defined MSYS2_NOSTART ( - start "%CONTITLE%" "%WD%mintty" -i "/%CONICON%" -t "%CONTITLE%" "/usr/bin/%LOGINSHELL%" --login !SHELL_ARGS! + start "%CONTITLE%" "%WD%mintty" -i "/%CONICON%" -t "%CONTITLE%" "/usr/bin/%LOGINSHELL%" -l !SHELL_ARGS! ) else ( - "%WD%mintty" -i "/%CONICON%" -t "%CONTITLE%" "/usr/bin/%LOGINSHELL%" --login !SHELL_ARGS! + "%WD%mintty" -i "/%CONICON%" -t "%CONTITLE%" "/usr/bin/%LOGINSHELL%" -l !SHELL_ARGS! ) exit /b %ERRORLEVEL% @@ -133,18 +141,18 @@ call :conemudetect || ( exit /b 1 ) if not defined MSYS2_NOSTART ( - start "%CONTITLE%" "%ComEmuCommand%" /Here /Icon "%WD%..\..\%CONICON%" /cmd "%WD%\%LOGINSHELL%" --login !SHELL_ARGS! + start "%CONTITLE%" "%ComEmuCommand%" /Here /Icon "%WD%..\..\%CONICON%" /cmd "%WD%\%LOGINSHELL%" -l !SHELL_ARGS! ) else ( - "%ComEmuCommand%" /Here /Icon "%WD%..\..\%CONICON%" /cmd "%WD%\%LOGINSHELL%" --login !SHELL_ARGS! + "%ComEmuCommand%" /Here /Icon "%WD%..\..\%CONICON%" /cmd "%WD%\%LOGINSHELL%" -l !SHELL_ARGS! ) exit /b %ERRORLEVEL% :startsh set MSYSCON= if not defined MSYS2_NOSTART ( - start "%CONTITLE%" "%WD%\%LOGINSHELL%" --login !SHELL_ARGS! + start "%CONTITLE%" "%WD%\%LOGINSHELL%" -l !SHELL_ARGS! ) else ( - "%WD%\%LOGINSHELL%" --login !SHELL_ARGS! + "%WD%\%LOGINSHELL%" -l !SHELL_ARGS! ) exit /b %ERRORLEVEL% diff --git a/msys2/ucrt64.exe b/msys2/ucrt64.exe index fcb53ba8e..a3aa9539c 100644 Binary files a/msys2/ucrt64.exe and b/msys2/ucrt64.exe differ diff --git a/msys2/usr/bin/[.exe b/msys2/usr/bin/[.exe index 7090bd58c..845331089 100644 Binary files a/msys2/usr/bin/[.exe and b/msys2/usr/bin/[.exe differ diff --git a/msys2/usr/bin/agetty.exe b/msys2/usr/bin/agetty.exe index 42353d57a..fd1a3f3d1 100644 Binary files a/msys2/usr/bin/agetty.exe and b/msys2/usr/bin/agetty.exe differ diff --git a/msys2/usr/bin/arch.exe b/msys2/usr/bin/arch.exe index 06891a652..8ff6c791f 100644 Binary files a/msys2/usr/bin/arch.exe and b/msys2/usr/bin/arch.exe differ diff --git a/msys2/usr/bin/ash.exe b/msys2/usr/bin/ash.exe index bc12bd72e..2474c511d 100644 Binary files a/msys2/usr/bin/ash.exe and b/msys2/usr/bin/ash.exe differ diff --git a/msys2/usr/bin/autopoint b/msys2/usr/bin/autopoint index bb1635048..5588e8eb1 100644 --- a/msys2/usr/bin/autopoint +++ b/msys2/usr/bin/autopoint @@ -1,6 +1,6 @@ #! /bin/sh # -# Copyright (C) 2002-2016 Free Software Foundation, Inc. +# Copyright (C) 2002-2023 Free Software Foundation, Inc. # # 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 @@ -13,7 +13,7 @@ # 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 . +# along with this program. If not, see . # # This file is meant for authors, maintainers, co-maintainers or installers @@ -22,8 +22,8 @@ progname=$0 package=gettext-tools -version=0.19.8.1 -archive_version=0.19.8 +version=0.22 +archive_version=0.22 # Set variables # - gettext_datadir directory where the data files are stored. @@ -197,17 +197,23 @@ Options: -V version copy the infrastructure of the specified gettext version (dangerous)" echo " -Report bugs to ." +Report bugs in the bug tracker at +or by email to ." } -# func_version +# func_version include_config_details # outputs to stdout the --version message. +# Inputs: +# - include_config_details true or false func_version () { echo "$progname (GNU $package) $version" - echo "Uses a versions archive in dirxz format." - echo "Copyright (C) 2002-2013 Free Software Foundation, Inc. -License GPLv3+: GNU GPL version 3 or later + if $1; then + echo "This binary is configured to use a versions archive in dirxz format." + echo + fi + echo "Copyright (C) 2002-2023 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law." echo "Written by" "Bruno Haible" @@ -260,8 +266,12 @@ unset CLICOLOR_FORCE GREP_OPTIONS -V*) # Some people omit the space between -V and the version number. ver=`echo "X$1" | sed -e 's/^X-V//'` shift ;; + --version-without-config ) + # Print version output without build dependent details. + func_version false + exit 0 ;; --version | --versio | --versi | --vers | --ver | --ve | --v ) - func_version + func_version true exit 0 ;; -- ) # Stop option prcessing shift; break ;; @@ -289,17 +299,17 @@ srcdir=`pwd` # Check integrity of package: A configure.in/ac must be present. Sets variable # - configure_in name of configure.in/ac file. -if test -f configure.in; then - configure_in=configure.in +if test -f configure.ac; then + configure_in=configure.ac else - if test -f configure.ac; then - configure_in=configure.ac + if test -f configure.in; then + configure_in=configure.in else # KDE specific convention: configure.in.in if test -f configure.in.in; then configure_in=configure.in.in else - func_fatal_error "Missing configure.in or configure.ac, please cd to your package first." + func_fatal_error "Missing configure.ac or configure.in, please cd to your package first." fi fi fi @@ -321,7 +331,7 @@ func_version_prereq () req="$1" ver="$2" echo "m4_if(m4_version_compare([$ver], [$req]), [-1], [m4_exit([1])])" \ - | "$AUTOM4TE" --language=M4sugar 2>&1 >/dev/null + | "$AUTOM4TE" --language=M4sugar >/dev/null } # If AM_GNU_GETTEXT_REQUIRE_VERSION is used and archive_version is newer than @@ -378,7 +388,10 @@ case "$ver" in 0.16 | 0.16.1 | \ 0.17 | \ 0.18 | 0.18.1 | 0.18.2 | 0.18.3 | \ - 0.19 | 0.19.1 | 0.19.2 | 0.19.3 | 0.19.4 | 0.19.5 | 0.19.6 | 0.19.7 | 0.19.8 ) + 0.19 | 0.19.1 | 0.19.2 | 0.19.3 | 0.19.4 | 0.19.5 | 0.19.6 | 0.19.7 | 0.19.8 | \ + 0.20 | 0.20.2 | \ + 0.21 | 0.21.1 | \ + 0.22 ) ;; *) func_fatal_error "The AM_GNU_GETTEXT_VERSION declaration in your $configure_in @@ -440,6 +453,13 @@ for arg in $xargs; do done IFS="$save_IFS" +if test -z "$omitintl"; then + case "$ver" in + 0.1[0-9] | 0.1[0-9].* ) ;; + *) func_fatal_error "AM_GNU_GETTEXT without 'external' argument is no longer supported in version $ver" ;; + esac +fi + # Check in which directory or directories the po/* infrastructure belongs. configfiles=`"$func_trace" AC_CONFIG_FILES "$configure_in"` # PO directories have a Makefile.in generated from Makefile.in.in. @@ -533,10 +553,10 @@ case "dirxz" in # # But the CVS format is now deprecated, because "cvs init" does not work in # all circumstances - # (see ) + # (see ) # and we are not allowed to distribute the cvs infrastructure files # ourselves - # (see ). + # (see ). # # Check availability of the CVS program. (cvs -v) >/dev/null 2>/dev/null || func_fatal_error "cvs program not found" @@ -610,7 +630,12 @@ case "dirxz" in (git --version) >/dev/null 2>/dev/null || func_fatal_error "git program not found" mkdir "$work_dir/archive" gzip -d -c < "$gettext_datadir/archive.git.tar.gz" | (cd "$work_dir/archive" && tar xf -) - (cd "$work_dir/archive" && git checkout -q "gettext-$ver") || { + (unset GIT_CONFIG + unset XDG_CONFIG_HOME + unset HOME + GIT_CONFIG_NOSYSTEM=1; export GIT_CONFIG_NOSYSTEM + cd "$work_dir/archive" && git checkout -q "gettext-$ver" + ) || { rm -rf "$work_dir" func_fatal_error "infrastructure files for version $ver not found; this is autopoint from GNU $package $version" } @@ -630,7 +655,7 @@ esac func_destfile () { # There are five categories of files: - # ABOUT_NLS -> top level directory + # ABOUT-NLS -> top level directory # config.rpath mkinstalldirs -> $auxdir # m4/* -> $m4dir/ # intl/* -> intl/ diff --git a/msys2/usr/bin/awk.exe b/msys2/usr/bin/awk.exe index 68fb6c7fe..1242d71bd 100644 Binary files a/msys2/usr/bin/awk.exe and b/msys2/usr/bin/awk.exe differ diff --git a/msys2/usr/bin/b2sum.exe b/msys2/usr/bin/b2sum.exe index 18d4657d9..229305e1e 100644 Binary files a/msys2/usr/bin/b2sum.exe and b/msys2/usr/bin/b2sum.exe differ diff --git a/msys2/usr/bin/backup b/msys2/usr/bin/backup new file mode 100644 index 000000000..66f399063 --- /dev/null +++ b/msys2/usr/bin/backup @@ -0,0 +1,257 @@ +#! /bin/sh +# Make backups. + +# Copyright 2004-2006, 2013, 2019 Free Software Foundation + +# This file is part of GNU tar. + +# GNU tar 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 3 of the License, or +# (at your option) any later version. + +# GNU tar 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 . + +# Load library routines +SYSCONFDIR=${SYSCONFDIR-/usr/etc} +. ${LIBDIR-/usr/lib/tar}/backup.sh + +DUMP_LEVEL=0 +TIME= +NOW=`now` + +usage() { + cat - <&2 "$0: tape initialization failed" + exit 1 + fi + rm -f "${VOLNO_FILE}" + + message 1 "processing backup directories" + + set - ${BACKUP_DIRS} + while [ $# -ne 0 ] ; do + date="`date`" + fs="`echo \"${1}\" | sed -e 's/^.*://'`" + fs=`root_fs $fs` + fsname="`echo \"${1}\" | sed -e 's/\//:/g'`" + remotehost="`expr \"${1}\" : '\([^/][^/]*\):.*'`" + if [ -z "$remotehost" ]; then + remotehost=$localhost + fi + + echo "Backing up ${1} at ${date}" + message 10 "fs=$fs" + message 10 "fsname=$fsname" + message 10 "remotehost=$remotehost" + if [ $DUMP_LEVEL -eq 0 ]; then + make_level_log ${remotehost} + else + echo "Last `prev_level` dump on this filesystem was on $PREV_DATE" + remote_run "${remotehost}" cp "`level_log_name ${fsname} $PREV_LEVEL`" "`level_log_name temp`" + fi + + ${DUMP_BEGIN-:} $DUMP_LEVEL $remotehost $fs $fsname + backup_host ${remotehost} \ + "--listed=`level_log_name temp`" \ + "--label='`print_level` backup of ${fs} on ${remotehost} at ${NOW}'" \ + -C ${fs} . + + # 'rsh' doesn't exit with the exit status of the remote command. What + # stupid lossage. TODO: think of a reliable workaround. + if [ $? -ne 0 ] ; then + echo "$0: backup of ${1} failed." 1>&2 + # I'm assuming that the tar will have written an empty + # file to the tape, otherwise I should do a cat here. + else + flush_level_log ${remotehost} ${fsname} + fi + ${MT_STATUS} "$TAPE_FILE" + ${DUMP_END-:} $DUMP_LEVEL $remotehost $fs $fsname + echo "sleeping ${SLEEP_TIME} seconds" + sleep ${SLEEP_TIME} + shift + done + + # Dump any individual files requested. + + if [ "x${BACKUP_FILES}" != "x" ] ; then + message 1 "processing individual files" + + date="`date`" + + if [ $DUMP_LEVEL -eq 0 ]; then + make_level_log $localhost + else + echo "Last `prev_level` dump on this filesystem was on $PREV_DATE" + remote_run "${localhost}" cp "`level_log_name MISC $PREV_LEVEL`" "`level_log_name temp`" + fi + + echo "Backing up miscellaneous files at ${date}" + + ${DUMP_BEGIN-:} $DUMP_LEVEL $localhost MISC MISC + backup_host $localhost \ + "--listed=`level_log_name temp`"\ + "--label='`print_level` backup of miscellaneous files at ${NOW}'" \ + ${BACKUP_FILES} + + if [ $? -ne 0 ] ; then + echo "Backup of miscellaneous files failed." + # I'm assuming that the tar will have written an empty + # file to the tape, otherwise I should do a cat here. + else + flush_level_log $localhost MISC + fi + ${MT_STATUS} "$TAPE_FILE" + ${DUMP_END-:} $DUMP_LEVEL $localhost MISC MISC + else + echo "No miscellaneous files specified" + fi + message 1 "final cleanup" + + $MT_REWIND "${TAPE_FILE}" + $MT_OFFLINE "${TAPE_FILE}" + echo "." +) 2>&1 | tee -a "${LOGFILE}" +RC=$? + +if test "${ADMINISTRATOR}" != NONE; then + echo "Sending the dump log to ${ADMINISTRATOR}" + mail -s "Results of backup started ${startdate}" ${ADMINISTRATOR} < "${LOGFILE}" +fi +exit $RC +# EOF diff --git a/msys2/usr/bin/base32.exe b/msys2/usr/bin/base32.exe index 85522e8e1..ed663717a 100644 Binary files a/msys2/usr/bin/base32.exe and b/msys2/usr/bin/base32.exe differ diff --git a/msys2/usr/bin/base64.exe b/msys2/usr/bin/base64.exe index f58a0fbda..e63e5329d 100644 Binary files a/msys2/usr/bin/base64.exe and b/msys2/usr/bin/base64.exe differ diff --git a/msys2/usr/bin/basename.exe b/msys2/usr/bin/basename.exe index 279df934b..1839a3893 100644 Binary files a/msys2/usr/bin/basename.exe and b/msys2/usr/bin/basename.exe differ diff --git a/msys2/usr/bin/basenc.exe b/msys2/usr/bin/basenc.exe index 5ac6e5f6c..0c3c312cd 100644 Binary files a/msys2/usr/bin/basenc.exe and b/msys2/usr/bin/basenc.exe differ diff --git a/msys2/usr/bin/bash.exe b/msys2/usr/bin/bash.exe index e9af52fac..ea55b6c0b 100644 Binary files a/msys2/usr/bin/bash.exe and b/msys2/usr/bin/bash.exe differ diff --git a/msys2/usr/bin/bashbug b/msys2/usr/bin/bashbug index 5ad697918..e4b81fee8 100644 --- a/msys2/usr/bin/bashbug +++ b/msys2/usr/bin/bashbug @@ -4,10 +4,10 @@ # # The bug address depends on the release status of the shell. Versions # with status `devel', `alpha', `beta', or `rc' mail bug reports to -# chet@cwru.edu and, optionally, to bash-testers@cwru.edu. +# chet.ramey@case.edu and, optionally, to bash-testers@cwru.edu. # Other versions send mail to bug-bash@gnu.org. # -# Copyright (C) 1996-2020 Free Software Foundation, Inc. +# Copyright (C) 1996-2021 Free Software Foundation, Inc. # # 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 @@ -29,9 +29,9 @@ MACHINE="x86_64" OS="msys" CC="gcc" -CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -D_STATIC_BUILD " -RELEASE="5.1" -PATCHLEVEL="8" +CFLAGS="-march=nocona -msahf -mtune=generic -O2 -pipe -D_STATIC_BUILD" +RELEASE="5.2" +PATCHLEVEL="15" RELSTATUS="release" MACHTYPE="x86_64-pc-msys" @@ -102,7 +102,7 @@ esac BASHTESTERS="bash-testers@cwru.edu" case "$RELSTATUS" in -alpha*|beta*|devel*|rc*) BUGBASH=chet@cwru.edu ;; +alpha*|beta*|devel*|rc*) BUGBASH=chet.ramey@case.edu ;; *) BUGBASH=bug-bash@gnu.org ;; esac @@ -132,6 +132,10 @@ if [ -z "$DEFEDITOR" ] && [ -z "$EDITOR" ]; then DEFEDITOR=emacs elif [ -x /usr/bin/xemacs ]; then DEFEDITOR=xemacs + elif [ -x /usr/bin/vim; then + DEFEDITOR=vim + elif [ -x /usr/bin/gvim; then + DEFEDITOR=gvim elif [ -x /usr/bin/nano ]; then DEFEDITOR=nano elif [ -x /usr/contrib/bin/jove ]; then diff --git a/msys2/usr/bin/blkid.exe b/msys2/usr/bin/blkid.exe index bc4b6b117..a038e8fc9 100644 Binary files a/msys2/usr/bin/blkid.exe and b/msys2/usr/bin/blkid.exe differ diff --git a/msys2/usr/bin/brotli.exe b/msys2/usr/bin/brotli.exe index cb4d188a4..886b79020 100644 Binary files a/msys2/usr/bin/brotli.exe and b/msys2/usr/bin/brotli.exe differ diff --git a/msys2/usr/bin/bsdtar.exe b/msys2/usr/bin/bsdtar.exe index e8b21bcf7..22093ac7c 100644 Binary files a/msys2/usr/bin/bsdtar.exe and b/msys2/usr/bin/bsdtar.exe differ diff --git a/msys2/usr/bin/bunzip2.exe b/msys2/usr/bin/bunzip2.exe index d4892e21b..fd27cf30f 100644 Binary files a/msys2/usr/bin/bunzip2.exe and b/msys2/usr/bin/bunzip2.exe differ diff --git a/msys2/usr/bin/bzcat.exe b/msys2/usr/bin/bzcat.exe index d4892e21b..fd27cf30f 100644 Binary files a/msys2/usr/bin/bzcat.exe and b/msys2/usr/bin/bzcat.exe differ diff --git a/msys2/usr/bin/bzip2.exe b/msys2/usr/bin/bzip2.exe index d4892e21b..fd27cf30f 100644 Binary files a/msys2/usr/bin/bzip2.exe and b/msys2/usr/bin/bzip2.exe differ diff --git a/msys2/usr/bin/bzip2recover.exe b/msys2/usr/bin/bzip2recover.exe index 1c26932c7..00a51bff7 100644 Binary files a/msys2/usr/bin/bzip2recover.exe and b/msys2/usr/bin/bzip2recover.exe differ diff --git a/msys2/usr/bin/c_rehash b/msys2/usr/bin/c_rehash index de6251a64..4ba9bb032 100644 --- a/msys2/usr/bin/c_rehash +++ b/msys2/usr/bin/c_rehash @@ -2,9 +2,9 @@ # WARNING: do not edit! # Generated by Makefile from tools/c_rehash.in -# Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 1999-2022 The OpenSSL Project Authors. All Rights Reserved. # -# Licensed under the OpenSSL license (the "License"). You may not use +# Licensed under the Apache License 2.0 (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy # in the file LICENSE in the source distribution or at # https://www.openssl.org/source/license.html @@ -22,7 +22,7 @@ my $x509hash = "-subject_hash"; my $crlhash = "-hash"; my $verbose = 0; my $symlink_exists=eval {symlink("",""); 1}; -if ($^O eq "msys") { $symlink_exists=0 }; +$symlink_exists=0; my $removelinks = 1; ## Parse flags. @@ -30,35 +30,35 @@ while ( $ARGV[0] =~ /^-/ ) { my $flag = shift @ARGV; last if ( $flag eq '--'); if ( $flag eq '-old') { - $x509hash = "-subject_hash_old"; - $crlhash = "-hash_old"; + $x509hash = "-subject_hash_old"; + $crlhash = "-hash_old"; } elsif ( $flag eq '-h' || $flag eq '-help' ) { - help(); + help(); } elsif ( $flag eq '-n' ) { - $removelinks = 0; + $removelinks = 0; } elsif ( $flag eq '-v' ) { - $verbose++; + $verbose++; } else { - print STDERR "Usage error; try -h.\n"; - exit 1; + print STDERR "Usage error; try -h.\n"; + exit 1; } } sub help { - print "Usage: c_rehash [-old] [-h] [-help] [-v] [dirs...]\n"; - print " -old use old-style digest\n"; - print " -h or -help print this help text\n"; - print " -v print files removed and linked\n"; - exit 0; + print "Usage: c_rehash [-old] [-h] [-help] [-v] [dirs...]\n"; + print " -old use old-style digest\n"; + print " -h or -help print this help text\n"; + print " -v print files removed and linked\n"; + exit 0; } eval "require Cwd"; if (defined(&Cwd::getcwd)) { - $pwd=Cwd::getcwd(); + $pwd=Cwd::getcwd(); } else { - $pwd=`pwd`; - chomp($pwd); + $pwd=`pwd`; + chomp($pwd); } # DOS/Win32 or Unix delimiter? Prefix our installdir, then search. @@ -66,94 +66,137 @@ my $path_delim = ($pwd =~ /^[a-z]\:/i) ? ';' : ':'; $ENV{PATH} = "$prefix/bin" . ($ENV{PATH} ? $path_delim . $ENV{PATH} : ""); if (! -x $openssl) { - my $found = 0; - foreach (split /$path_delim/, $ENV{PATH}) { - if (-x "$_/$openssl") { - $found = 1; - $openssl = "$_/$openssl"; - last; - } - } - if ($found == 0) { - print STDERR "c_rehash: rehashing skipped ('openssl' program not available)\n"; - exit 0; - } + my $found = 0; + foreach (split /$path_delim/, $ENV{PATH}) { + if (-x "$_/$openssl") { + $found = 1; + $openssl = "$_/$openssl"; + last; + } + } + if ($found == 0) { + print STDERR "c_rehash: rehashing skipped ('openssl' program not available)\n"; + exit 0; + } } if (@ARGV) { - @dirlist = @ARGV; + @dirlist = @ARGV; } elsif ($ENV{SSL_CERT_DIR}) { - @dirlist = split /$path_delim/, $ENV{SSL_CERT_DIR}; + @dirlist = split /$path_delim/, $ENV{SSL_CERT_DIR}; } else { - $dirlist[0] = "$dir/certs"; + $dirlist[0] = "$dir/certs"; } if (-d $dirlist[0]) { - chdir $dirlist[0]; - $openssl="$pwd/$openssl" if (!-x $openssl); - chdir $pwd; + chdir $dirlist[0]; + $openssl="$pwd/$openssl" if (!-x $openssl); + chdir $pwd; } foreach (@dirlist) { - if (-d $_ ) { - if ( -w $_) { - hash_dir($_); - } else { - print "Skipping $_, can't write\n"; - $errorcount++; - } - } + if (-d $_ ) { + if ( -w $_) { + hash_dir($_); + } else { + print "Skipping $_, can't write\n"; + $errorcount++; + } + } } exit($errorcount); +sub copy_file { + my ($src_fname, $dst_fname) = @_; + + if (open(my $in, "<", $src_fname)) { + if (open(my $out, ">", $dst_fname)) { + print $out $_ while (<$in>); + close $out; + } else { + warn "Cannot open $dst_fname for write, $!"; + } + close $in; + } else { + warn "Cannot open $src_fname for read, $!"; + } +} + sub hash_dir { - my %hashlist; - print "Doing $_[0]\n"; - chdir $_[0]; - opendir(DIR, "."); - my @flist = sort readdir(DIR); - closedir DIR; - if ( $removelinks ) { - # Delete any existing symbolic links - foreach (grep {/^[\da-f]+\.r{0,1}\d+$/} @flist) { - if (-l $_) { - print "unlink $_" if $verbose; - unlink $_ || warn "Can't unlink $_, $!\n"; - } - } - } - FILE: foreach $fname (grep {/\.(pem)|(crt)|(cer)|(crl)$/} @flist) { - # Check to see if certificates and/or CRLs present. - my ($cert, $crl) = check_file($fname); - if (!$cert && !$crl) { - print STDERR "WARNING: $fname does not contain a certificate or CRL: skipping\n"; - next; - } - link_hash_cert($fname) if ($cert); - link_hash_crl($fname) if ($crl); - } + my $dir = shift; + my %hashlist; + + print "Doing $dir\n"; + + if (!chdir $dir) { + print STDERR "WARNING: Cannot chdir to '$dir', $!\n"; + return; + } + + opendir(DIR, ".") || print STDERR "WARNING: Cannot opendir '.', $!\n"; + my @flist = sort readdir(DIR); + closedir DIR; + if ( $removelinks ) { + # Delete any existing symbolic links + foreach (grep {/^[\da-f]+\.r{0,1}\d+$/} @flist) { + if (-l $_) { + print "unlink $_\n" if $verbose; + unlink $_ || warn "Can't unlink $_, $!\n"; + } + } + } + FILE: foreach $fname (grep {/\.(pem|crt|cer|crl)$/} @flist) { + # Check to see if certificates and/or CRLs present. + my ($cert, $crl) = check_file($fname); + if (!$cert && !$crl) { + print STDERR "WARNING: $fname does not contain a certificate or CRL: skipping\n"; + next; + } + link_hash_cert($fname) if ($cert); + link_hash_crl($fname) if ($crl); + } + + chdir $pwd; } sub check_file { - my ($is_cert, $is_crl) = (0,0); - my $fname = $_[0]; - open IN, $fname; - while() { - if (/^-----BEGIN (.*)-----/) { - my $hdr = $1; - if ($hdr =~ /^(X509 |TRUSTED |)CERTIFICATE$/) { - $is_cert = 1; - last if ($is_crl); - } elsif ($hdr eq "X509 CRL") { - $is_crl = 1; - last if ($is_cert); - } - } - } - close IN; - return ($is_cert, $is_crl); + my ($is_cert, $is_crl) = (0,0); + my $fname = $_[0]; + + open(my $in, "<", $fname); + while(<$in>) { + if (/^-----BEGIN (.*)-----/) { + my $hdr = $1; + if ($hdr =~ /^(X509 |TRUSTED |)CERTIFICATE$/) { + $is_cert = 1; + last if ($is_crl); + } elsif ($hdr eq "X509 CRL") { + $is_crl = 1; + last if ($is_cert); + } + } + } + close $in; + return ($is_cert, $is_crl); } +sub compute_hash { + my $fh; + if ( $^O eq "VMS" ) { + # VMS uses the open through shell + # The file names are safe there and list form is unsupported + if (!open($fh, "-|", join(' ', @_))) { + print STDERR "Cannot compute hash on '$fname'\n"; + return; + } + } else { + if (!open($fh, "-|", @_)) { + print STDERR "Cannot compute hash on '$fname'\n"; + return; + } + } + return (<$fh>, <$fh>); +} # Link a certificate to its subject name hash value, each hash is of # the form . where n is an integer. If the hash value already exists @@ -162,72 +205,49 @@ sub check_file { # certificate fingerprints sub link_hash_cert { - my $fname = $_[0]; - $fname =~ s/\"/\\\"/g; - my ($hash, $fprint) = `"$openssl" x509 $x509hash -fingerprint -noout -in "$fname"`; - chomp $hash; - chomp $fprint; - $fprint =~ s/^.*=//; - $fprint =~ tr/://d; - my $suffix = 0; - # Search for an unused hash filename - while(exists $hashlist{"$hash.$suffix"}) { - # Hash matches: if fingerprint matches its a duplicate cert - if ($hashlist{"$hash.$suffix"} eq $fprint) { - print STDERR "WARNING: Skipping duplicate certificate $fname\n"; - return; - } - $suffix++; - } - $hash .= ".$suffix"; - if ($symlink_exists) { - print "link $fname -> $hash\n" if $verbose; - symlink $fname, $hash || warn "Can't symlink, $!"; - } else { - print "copy $fname -> $hash\n" if $verbose; - if (open($in, "<", $fname)) { - if (open($out,">", $hash)) { - print $out $_ while (<$in>); - close $out; - } else { - warn "can't open $hash for write, $!"; - } - close $in; - } else { - warn "can't open $fname for read, $!"; - } - } - $hashlist{$hash} = $fprint; + link_hash($_[0], 'cert'); } # Same as above except for a CRL. CRL links are of the form .r sub link_hash_crl { - my $fname = $_[0]; - $fname =~ s/'/'\\''/g; - my ($hash, $fprint) = `"$openssl" crl $crlhash -fingerprint -noout -in '$fname'`; - chomp $hash; - chomp $fprint; - $fprint =~ s/^.*=//; - $fprint =~ tr/://d; - my $suffix = 0; - # Search for an unused hash filename - while(exists $hashlist{"$hash.r$suffix"}) { - # Hash matches: if fingerprint matches its a duplicate cert - if ($hashlist{"$hash.r$suffix"} eq $fprint) { - print STDERR "WARNING: Skipping duplicate CRL $fname\n"; - return; - } - $suffix++; - } - $hash .= ".r$suffix"; - if ($symlink_exists) { - print "link $fname -> $hash\n" if $verbose; - symlink $fname, $hash || warn "Can't symlink, $!"; - } else { - print "cp $fname -> $hash\n" if $verbose; - system ("cp", $fname, $hash); - warn "Can't copy, $!" if ($? >> 8) != 0; - } - $hashlist{$hash} = $fprint; + link_hash($_[0], 'crl'); +} + +sub link_hash { + my ($fname, $type) = @_; + my $is_cert = $type eq 'cert'; + + my ($hash, $fprint) = compute_hash($openssl, + $is_cert ? "x509" : "crl", + $is_cert ? $x509hash : $crlhash, + "-fingerprint", "-noout", + "-in", $fname); + chomp $hash; + $hash =~ s/^.*=// if !$is_cert; + chomp $fprint; + return if !$hash; + $fprint =~ s/^.*=//; + $fprint =~ tr/://d; + my $suffix = 0; + # Search for an unused hash filename + my $crlmark = $is_cert ? "" : "r"; + while(exists $hashlist{"$hash.$crlmark$suffix"}) { + # Hash matches: if fingerprint matches its a duplicate cert + if ($hashlist{"$hash.$crlmark$suffix"} eq $fprint) { + my $what = $is_cert ? 'certificate' : 'CRL'; + print STDERR "WARNING: Skipping duplicate $what $fname\n"; + return; + } + $suffix++; + } + $hash .= ".$crlmark$suffix"; + if ($symlink_exists) { + print "link $fname -> $hash\n" if $verbose; + symlink $fname, $hash || warn "Can't symlink, $!"; + } else { + print "copy $fname -> $hash\n" if $verbose; + copy_file($fname, $hash); + } + $hashlist{$hash} = $fprint; } diff --git a/msys2/usr/bin/cal.exe b/msys2/usr/bin/cal.exe index f01e598c8..a38ad09dd 100644 Binary files a/msys2/usr/bin/cal.exe and b/msys2/usr/bin/cal.exe differ diff --git a/msys2/usr/bin/captoinfo.exe b/msys2/usr/bin/captoinfo.exe index d166bd67d..ea0400be9 100644 Binary files a/msys2/usr/bin/captoinfo.exe and b/msys2/usr/bin/captoinfo.exe differ diff --git a/msys2/usr/bin/cat.exe b/msys2/usr/bin/cat.exe index 9e3d84861..ce4da3355 100644 Binary files a/msys2/usr/bin/cat.exe and b/msys2/usr/bin/cat.exe differ diff --git a/msys2/usr/bin/cfdisk.exe b/msys2/usr/bin/cfdisk.exe index a33f4acef..d1679dc9d 100644 Binary files a/msys2/usr/bin/cfdisk.exe and b/msys2/usr/bin/cfdisk.exe differ diff --git a/msys2/usr/bin/chattr.exe b/msys2/usr/bin/chattr.exe index ac9c441f1..5ccbbc64f 100644 Binary files a/msys2/usr/bin/chattr.exe and b/msys2/usr/bin/chattr.exe differ diff --git a/msys2/usr/bin/chcon.exe b/msys2/usr/bin/chcon.exe index 18dd10e1f..edb4ae7bc 100644 Binary files a/msys2/usr/bin/chcon.exe and b/msys2/usr/bin/chcon.exe differ diff --git a/msys2/usr/bin/checkupdates b/msys2/usr/bin/checkupdates index 965951cf4..45dfbe41d 100644 --- a/msys2/usr/bin/checkupdates +++ b/msys2/usr/bin/checkupdates @@ -19,36 +19,63 @@ # declare -r myname='checkupdates' -declare -r myver='1.4.0' +declare -r myver='1.9.1' LIBRARY=${LIBRARY:-'/usr/share/makepkg'} DOWNLOAD_CACHE=0 -USE_COLOR=0 +USE_COLOR='y' # Import libmakepkg source "$LIBRARY"/util/message.sh source "$LIBRARY"/util/parseopts.sh +die() { + error "$@" + exit 1 +} + +runcmd() { + if (( EUID != 0 )); then + msg 'Escalating privileges using sudo' + if sudo -v &>/dev/null && sudo -l &>/dev/null; then + sudo "$@" + else + die 'Failed to escalate' + fi + else + "$@" + fi +} + usage() { - cat << __EOF__ + cat < /dev/null -if ! pacman -Sy --dbpath "$CHECKUPDATES_DB" --logfile /dev/null &> /dev/null; then - error 'Cannot fetch updates' - exit 1 +if (( ${SYNC} )); then + mkdir -p "$CHECKUPDATES_DB" + ln -s "${DBPath}/local" "$CHECKUPDATES_DB" &> /dev/null + if ! pacman -Sy --dbpath "$CHECKUPDATES_DB" --logfile /dev/null &> /dev/null; then + die 'Cannot fetch updates' + fi fi mapfile -t updates < <(pacman -Qu --dbpath "$CHECKUPDATES_DB" 2> /dev/null | grep -v '\[.*\]') if (( ${#updates[@]} )); then printf '%s\n' "${updates[@]}" if (( DOWNLOAD_CACHE )); then - sudo pacman -Sw --noconfirm "${updates[@]%% *}" --dbpath "$CHECKUPDATES_DB" --logfile /dev/null + runcmd pacman -Sw --noconfirm "${updates[@]%% *}" --dbpath "$CHECKUPDATES_DB" --logfile /dev/null fi else exit 2 fi - -# vim: set noet: diff --git a/msys2/usr/bin/chgrp.exe b/msys2/usr/bin/chgrp.exe index fd8bc8a88..368b03093 100644 Binary files a/msys2/usr/bin/chgrp.exe and b/msys2/usr/bin/chgrp.exe differ diff --git a/msys2/usr/bin/chmod.exe b/msys2/usr/bin/chmod.exe index 5b1a2a296..d4b4d95bc 100644 Binary files a/msys2/usr/bin/chmod.exe and b/msys2/usr/bin/chmod.exe differ diff --git a/msys2/usr/bin/chown.exe b/msys2/usr/bin/chown.exe index 3de2dfc74..cf2d54727 100644 Binary files a/msys2/usr/bin/chown.exe and b/msys2/usr/bin/chown.exe differ diff --git a/msys2/usr/bin/chroot.exe b/msys2/usr/bin/chroot.exe index dc9b7e80c..1f694f463 100644 Binary files a/msys2/usr/bin/chroot.exe and b/msys2/usr/bin/chroot.exe differ diff --git a/msys2/usr/bin/chrt.exe b/msys2/usr/bin/chrt.exe index b910e3bf8..c3179d399 100644 Binary files a/msys2/usr/bin/chrt.exe and b/msys2/usr/bin/chrt.exe differ diff --git a/msys2/usr/bin/cksum.exe b/msys2/usr/bin/cksum.exe index f26836e48..8faa3a20e 100644 Binary files a/msys2/usr/bin/cksum.exe and b/msys2/usr/bin/cksum.exe differ diff --git a/msys2/usr/bin/clear.exe b/msys2/usr/bin/clear.exe index 4364f8d79..50510a530 100644 Binary files a/msys2/usr/bin/clear.exe and b/msys2/usr/bin/clear.exe differ diff --git a/msys2/usr/bin/col.exe b/msys2/usr/bin/col.exe index 675562dd0..1f538cced 100644 Binary files a/msys2/usr/bin/col.exe and b/msys2/usr/bin/col.exe differ diff --git a/msys2/usr/bin/colcrt.exe b/msys2/usr/bin/colcrt.exe index e006c8718..38b9aa290 100644 Binary files a/msys2/usr/bin/colcrt.exe and b/msys2/usr/bin/colcrt.exe differ diff --git a/msys2/usr/bin/colrm.exe b/msys2/usr/bin/colrm.exe index 1e3c75d91..b9ed7f234 100644 Binary files a/msys2/usr/bin/colrm.exe and b/msys2/usr/bin/colrm.exe differ diff --git a/msys2/usr/bin/column.exe b/msys2/usr/bin/column.exe index 6051d2293..678728d31 100644 Binary files a/msys2/usr/bin/column.exe and b/msys2/usr/bin/column.exe differ diff --git a/msys2/usr/bin/comm.exe b/msys2/usr/bin/comm.exe index 92e5a93a2..9f352175f 100644 Binary files a/msys2/usr/bin/comm.exe and b/msys2/usr/bin/comm.exe differ diff --git a/msys2/usr/bin/core_perl/corelist b/msys2/usr/bin/core_perl/corelist index d440d8239..0765892b7 100644 --- a/msys2/usr/bin/core_perl/corelist +++ b/msys2/usr/bin/core_perl/corelist @@ -1,6 +1,6 @@ #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if $running_under_some_shell; + if 0; # ^ Run only under a shell #!/usr/bin/perl =head1 NAME diff --git a/msys2/usr/bin/core_perl/cpan b/msys2/usr/bin/core_perl/cpan index 98ffe8f80..5e54f7f07 100644 --- a/msys2/usr/bin/core_perl/cpan +++ b/msys2/usr/bin/core_perl/cpan @@ -1,6 +1,6 @@ #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if $running_under_some_shell; + if 0; # ^ Run only under a shell #!/usr/local/bin/perl BEGIN { pop @INC if $INC[-1] eq '.' } @@ -254,9 +254,9 @@ The build tools, L and L use some, while others matter to the levels above them. Some of these are specified by the Perl Toolchain Gang: -Lancaster Concensus: L +Lancaster Consensus: L -Oslo Concensus: L +Oslo Consensus: L =over 4 diff --git a/msys2/usr/bin/core_perl/enc2xs b/msys2/usr/bin/core_perl/enc2xs index 12f92c75d..24941451a 100644 --- a/msys2/usr/bin/core_perl/enc2xs +++ b/msys2/usr/bin/core_perl/enc2xs @@ -1,6 +1,6 @@ #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if $running_under_some_shell; + if 0; # ^ Run only under a shell #!./perl BEGIN { # @INC poking no longer needed w/ new MakeMaker and Makefile.PL's @@ -14,7 +14,7 @@ use warnings; use Getopt::Std; use Config; my @orig_ARGV = @ARGV; -our $VERSION = do { my @r = (q$Revision: 2.23 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; +our $VERSION = do { my @r = (q$Revision: 2.24 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # These may get re-ordered. # RAW is a do_now as inserted by &enter @@ -252,7 +252,12 @@ if ($cname =~ /\.(c|xs)$/i) # VMS may have upcased filenames with DECC$ARGV_PARS END } - if ($cname =~ /(\w+)\.xs$/) + if ($cname =~ /\.c$/i && $Config{ccname} eq "gcc") + { + print C qq(#pragma GCC diagnostic ignored "-Wc++-compat"\n); + } + + if ($cname =~ /\.xs$/i) { print C "#define PERL_NO_GET_CONTEXT\n"; print C "#include \n"; @@ -262,15 +267,15 @@ END print C "#include \"encode.h\"\n\n"; } -elsif ($cname =~ /\.enc$/) +elsif ($cname =~ /\.enc$/i) { $doEnc = 1; } -elsif ($cname =~ /\.ucm$/) +elsif ($cname =~ /\.ucm$/i) { $doUcm = 1; } -elsif ($cname =~ /\.pet$/) +elsif ($cname =~ /\.pet$/i) { $doPet = 1; } @@ -350,7 +355,7 @@ if ($doC) # my ($e2u,$u2e,$rep,$min_el,$max_el,$rsym) = @{$encoding{$enc}}; my ($e2u,$u2e,$rep,$min_el,$max_el) = @{$encoding{$enc}}; #my @info = ($e2u->{Cname},$u2e->{Cname},$rsym,length($rep),$min_el,$max_el); - my $replen = 0; + my $replen = 0; $replen++ while($rep =~ /\G\\x[0-9A-Fa-f]/g); my $sym = "${enc}_encoding"; $sym =~ s/\W+/_/g; @@ -481,7 +486,7 @@ sub compile_ucm #$attr{'subchar'} =~ /^\s*/cg; #push(@byte,$1) while $attr{'subchar'} =~ /\G\\x([0-9a-f]+)/icg; #$erep = join('',map(chr(hex($_)),@byte)); - $erep = $attr{'subchar'}; + $erep = $attr{'subchar'}; $erep =~ s/^\s+//; $erep =~ s/\s+$//; } print "Reading $name ($cs)\n" @@ -586,7 +591,7 @@ sub compile_enc die "$.:${line}Line should be exactly 65 characters long including newline (".length($line).")" unless length ($line) == 65; # Split line into groups of 4 hex digits, convert groups to ints - # This takes 65.35 + # This takes 65.35 # map {hex $_} $line =~ /(....)/g # This takes 63.75 (2.5% less time) # unpack "n*", pack "H*", $line @@ -991,7 +996,7 @@ use vars qw( $_Enc2xs $_Version $_Inc - $_E2X + $_E2X $_Name $_TableFiles $_Now @@ -1114,13 +1119,13 @@ sub _print_expand{ open my $in, $src or die "$src : $!"; if ((my $d = dirname($dst)) ne '.'){ -d $d or mkdir $d, 0755 or die "mkdir $d : $!"; - } + } open my $out, ">", $dst or die "$!"; my $asis = 0; - while (<$in>){ + while (<$in>){ if (/^#### END_OF_HEADER/){ $asis = 1; next; - } + } s/(\$_[A-Z][A-Za-z0-9]+)_/$1/gee unless $asis; print $out $_; } @@ -1325,7 +1330,7 @@ values is as follows: =over 4 -=item |0 +=item |0 Round trip safe. A character decoded to Unicode encodes back to the same byte sequence. Most characters have this flag. @@ -1335,11 +1340,11 @@ same byte sequence. Most characters have this flag. Fallback for unicode -> encoding. When seen, enc2xs adds this character for the encode map only. -=item |2 +=item |2 Skip sub-char mapping should there be no code point. -=item |3 +=item |3 Fallback for encoding -> unicode. When seen, enc2xs adds this character for the decode map only. @@ -1374,15 +1379,15 @@ how to make sure: =over 4 -=item * +=item * Sort your map in Unicode order. =item * When you have a duplicate entry, mark either one with '|1' or '|3'. - -=item * + +=item * And make sure the '|1' or '|3' entry FOLLOWS the '|0' entry. @@ -1400,7 +1405,7 @@ this; -------------------------------------- \xF9\xF9 => U2550 U2550 => \xF9\xF9 \xA2\xA4 => U2550 - + So it is round-trip safe for \xF9\xF9. But if the line above is upside down, here is what happens. @@ -1422,7 +1427,7 @@ Encode/bin directory. =item * -ICU Home Page +ICU Home Page L =item * diff --git a/msys2/usr/bin/core_perl/encguess b/msys2/usr/bin/core_perl/encguess index c88b198dc..245eab991 100644 --- a/msys2/usr/bin/core_perl/encguess +++ b/msys2/usr/bin/core_perl/encguess @@ -1,6 +1,6 @@ #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if $running_under_some_shell; + if 0; # ^ Run only under a shell #!./perl use 5.008001; BEGIN { pop @INC if $INC[-1] eq '.' } @@ -55,7 +55,7 @@ sub list_valid_suspects { } sub HELP_MESSAGE { - exec 'pod2usage', $0 or die "pod2usage: $!" + exec 'pod2usage', $0 or die "pod2usage: $!" } __END__ =head1 NAME @@ -64,7 +64,7 @@ encguess - guess character encodings of files =head1 VERSION -$Id: encguess,v 0.2 2016/08/04 03:15:58 dankogai Exp $ +$Id: encguess,v 0.3 2020/12/02 01:28:17 dankogai Exp $ =head1 SYNOPSIS @@ -80,8 +80,8 @@ show this message and exit. =item -s -specify a list of "suspect encoding types" to test, -seperated by either C<:> or C<,> +specify a list of "suspect encoding types" to test, +separated by either C<:> or C<,> =item -S diff --git a/msys2/usr/bin/core_perl/h2ph b/msys2/usr/bin/core_perl/h2ph index 3df404d2f..4d7116e22 100644 --- a/msys2/usr/bin/core_perl/h2ph +++ b/msys2/usr/bin/core_perl/h2ph @@ -1,6 +1,6 @@ #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if $running_under_some_shell; + if 0; # ^ Run only under a shell BEGIN { pop @INC if $INC[-1] eq '.' } diff --git a/msys2/usr/bin/core_perl/h2xs b/msys2/usr/bin/core_perl/h2xs index 7c7837c63..cee765ea5 100644 --- a/msys2/usr/bin/core_perl/h2xs +++ b/msys2/usr/bin/core_perl/h2xs @@ -1,6 +1,6 @@ #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if $running_under_some_shell; + if 0; # ^ Run only under a shell BEGIN { pop @INC if $INC[-1] eq '.' } @@ -1054,7 +1054,7 @@ my (@const_specs, @const_names); for (sort(keys(%const_names))) { my $v = $const_names{$_}; - + push(@const_specs, ref($v) ? $v : $_); push(@const_names, $_); } diff --git a/msys2/usr/bin/core_perl/instmodsh b/msys2/usr/bin/core_perl/instmodsh index 867040ba1..96b25c79e 100644 --- a/msys2/usr/bin/core_perl/instmodsh +++ b/msys2/usr/bin/core_perl/instmodsh @@ -1,6 +1,6 @@ #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if $running_under_some_shell; + if 0; # ^ Run only under a shell #!/usr/bin/perl -w BEGIN { pop @INC if $INC[-1] eq '.' } diff --git a/msys2/usr/bin/core_perl/json_pp b/msys2/usr/bin/core_perl/json_pp index 7ff2a9b4b..ff3432540 100644 --- a/msys2/usr/bin/core_perl/json_pp +++ b/msys2/usr/bin/core_perl/json_pp @@ -1,6 +1,6 @@ #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if $running_under_some_shell; + if 0; # ^ Run only under a shell #!/usr/bin/perl BEGIN { pop @INC if $INC[-1] eq '.' } @@ -198,7 +198,7 @@ Prints version and exits. $ perl -e'print q|{"foo":"あい","bar":1234567890000000000000000}|' |\ json_pp -f json -t dumper -json_opt pretty,utf8,allow_bignum - + $VAR1 = { 'bar' => bless( { 'value' => [ @@ -214,7 +214,7 @@ Prints version and exits. $ perl -e'print q|{"foo":"あい","bar":1234567890000000000000000}|' |\ json_pp -f json -t dumper -json_opt pretty - + $VAR1 = { 'bar' => '1234567890000000000000000', 'foo' => "\x{e3}\x{81}\x{82}\x{e3}\x{81}\x{84}" @@ -234,7 +234,7 @@ Makamaka Hannyaharamitu, Emakamaka[at]cpan.orgE Copyright 2010 by Makamaka Hannyaharamitu This library is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. +it under the same terms as Perl itself. =cut diff --git a/msys2/usr/bin/core_perl/libnetcfg b/msys2/usr/bin/core_perl/libnetcfg index b1b758762..6a4a1da01 100644 --- a/msys2/usr/bin/core_perl/libnetcfg +++ b/msys2/usr/bin/core_perl/libnetcfg @@ -1,6 +1,6 @@ #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if $running_under_some_shell; + if 0; # ^ Run only under a shell =head1 NAME @@ -24,15 +24,15 @@ Without arguments libnetcfg displays the current configuration. ftp_testhost ftp.funet.fi inet_domain none.such nntp_hosts nntp.none.such - ph_hosts + ph_hosts pop3_hosts pop.none.such smtp_hosts smtp.none.such - snpp_hosts + snpp_hosts test_exist 1 test_hosts 1 time_hosts ntp.none.such # libnetcfg -h for help - $ + $ It tells where the old configuration file was found (if found). @@ -255,9 +255,9 @@ MASK: warn "Bad netmask '$ans'\n"; next MASK; } - } + } - my $mask = sprintf("%d.%d.%d.%d/%d",@ip[0..3],$bits); + my $mask = sprintf("%d.%d.%d.%d/%d",@ip[0..3],$bits); if ($remove) { delete $list{$mask}; @@ -312,7 +312,7 @@ if( -f $libnet_cfg_in ) { %oldcfg = ( %{ local @INC = '.'; do $libnet_cfg_in } ); } -elsif (eval { require Net::Config }) +elsif (eval { require Net::Config }) { $have_old = 1; %oldcfg = %Net::Config::NetConfig; @@ -492,7 +492,7 @@ $cfg{'daytime_hosts'} = get_host_list($msg,$def); $msg = <"; + $messageid = "<$::Config{'version'}_${$}_".time."\@$domain>"; # My username $me = $Is_MSWin32 ? $ENV{'USERNAME'} @@ -322,13 +322,13 @@ EOF } # Prompt for subject of message, if needed - + if ($subject && TrivialSubject($subject)) { $subject = ''; } unless ($subject) { - print + print "First of all, please provide a subject for the report.\n"; if ( not $thanks) { paraprint <. =item Do you have a proper test case? The easier it is to reproduce your bug, the more likely it will be -fixed -- if nobody can duplicate your problem, it probably won't be +fixed -- if nobody can duplicate your problem, it probably won't be addressed. A good test case has most of these attributes: short, simple code; @@ -1357,7 +1354,7 @@ by Perl's test suite). Yes, you can do this by either using the C<-T> option, or by invoking the program as C. Thank-you notes are good. It makes people -smile. +smile. =back @@ -1484,7 +1481,7 @@ testing purposes. =item B<-T> -Send a thank-you note instead of a bug report. +Send a thank-you note instead of a bug report. =item B<-v> diff --git a/msys2/usr/bin/core_perl/perldoc b/msys2/usr/bin/core_perl/perldoc deleted file mode 100644 index 9b9077c12..000000000 --- a/msys2/usr/bin/core_perl/perldoc +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/perl - eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if 0; - -# This "perldoc" file was generated by "perldoc.PL" - -require 5; -BEGIN { - $^W = 1 if $ENV{'PERLDOCDEBUG'}; - pop @INC if $INC[-1] eq '.'; -} -use Pod::Perldoc; -exit( Pod::Perldoc->run() ); - diff --git a/msys2/usr/bin/core_perl/perlivp b/msys2/usr/bin/core_perl/perlivp index 3094b6950..1433956cb 100644 --- a/msys2/usr/bin/core_perl/perlivp +++ b/msys2/usr/bin/core_perl/perlivp @@ -1,8 +1,8 @@ #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if $running_under_some_shell; + if 0; # ^ Run only under a shell -# perlivp v5.32.1 +# perlivp v5.36.1 BEGIN { pop @INC if $INC[-1] eq '.' } @@ -27,14 +27,14 @@ use vars qw(%opt); # allow testing with older versions (do not use our) @opt{ qw/? H h P p V v/ } = qw(0 0 0 0 0 0 0); while ($ARGV[0] =~ /^-/) { - $ARGV[0] =~ s/^-//; + $ARGV[0] =~ s/^-//; for my $flag (split(//,$ARGV[0])) { usage() if '?' =~ /\Q$flag/; usage() if 'h' =~ /\Q$flag/; usage() if 'H' =~ /\Q$flag/; usage("unknown flag: '$flag'") unless 'HhPpVv' =~ /\Q$flag/; warn "$0: '$flag' flag already set\n" if $opt{$flag}++; - } + } shift; } @@ -67,7 +67,7 @@ $tests_total++; print "## Checking Perl version via variable '\$]'.\n" if $opt{'p'}; -my $ivp_VERSION = "5.032001"; +my $ivp_VERSION = "5.036001"; $label = 'Perl version correct'; @@ -263,7 +263,7 @@ for (@modules) { @missing = (); } $label = 'Module files correctly installed'; -if (($installed_total == $installed_there) && +if (($installed_total == $installed_there) && ($installed_total == $version_check)) { print "ok 6 $label\n"; $pass__total++; @@ -354,34 +354,34 @@ Correct by conducting a proper installation. =item * print "# Needed module '$_' does not appear to be properly installed.\n"; -One of the two modules that is used by perlivp was not present in the +One of the two modules that is used by perlivp was not present in the installation. This is a serious error since it adversely affects perlivp's ability to function. You may be able to correct this by performing a proper perl installation. =item * print "# Required module '$_' does not appear to be properly installed.\n"; -An attempt to C failed, even though the list of -extensions indicated that it should succeed. Correct by conducting a proper +An attempt to C failed, even though the list of +extensions indicated that it should succeed. Correct by conducting a proper installation. =item * print "# Unnecessary module 'bLuRfle' appears to be installed.\n"; -This test not coming out ok could indicate that you have in fact installed +This test not coming out ok could indicate that you have in fact installed a bLuRfle.pm module or that the C test may give misleading results with your installation of perl. If yours is the latter case then please let the author know. =item * print "# file",+($#missing == 0) ? '' : 's'," missing from installation:\n"; -One or more files turned up missing according to a run of +One or more files turned up missing according to a run of C validate()> over your installation. Correct by conducting a proper installation. =back -For further information on how to conduct a proper installation consult the -INSTALL file that comes with the perl source and the README file for your +For further information on how to conduct a proper installation consult the +INSTALL file that comes with the perl source and the README file for your platform. =head1 AUTHOR diff --git a/msys2/usr/bin/core_perl/perlthanks b/msys2/usr/bin/core_perl/perlthanks index 5a653b4c7..5bc495521 100644 --- a/msys2/usr/bin/core_perl/perlthanks +++ b/msys2/usr/bin/core_perl/perlthanks @@ -1,10 +1,10 @@ #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if $running_under_some_shell; + if 0; # ^ Run only under a shell -my $config_tag1 = '5.32.1 - Mon Mar 22 22:24:49 GMT 2021'; +my $config_tag1 = '5.36.1 - Thu Jul 13 18:17:31 UTC 2023'; -my $patchlevel_date = 1616451871; +my $patchlevel_date = 1681659354; my @patches = Config::local_patches(); my $patch_tags = join "", map /(\S+)/ ? "+$1 " : (), @patches; @@ -24,7 +24,7 @@ BEGIN { eval { require Mail::Send;}; $::HaveSend = ($@ eq ""); eval { require Mail::Util; } ; - $::HaveUtil = ($@ eq ""); + $::HaveUtil = (!$ENV{PERL_BUILD_PACKAGING} and $@ eq ""); # use secure tempfiles wherever possible eval { require File::Temp; }; $::HaveTemp = ($@ eq ""); @@ -170,7 +170,7 @@ sub Init { if ($opt{T}) { $thanks = 'thanks'; } - + $progname = $thanks ? 'perlthanks' : 'perlbug'; # Target address $address = $opt{a} || ($thanks ? $thanksaddress : ""); @@ -210,7 +210,7 @@ sub Init { # Body of report $body = $opt{b} || ""; - + # Editor $ed = $opt{e} || $ENV{VISUAL} || $ENV{EDITOR} || $ENV{EDIT} || ($Is_VMS && "edit/tpu") @@ -281,7 +281,7 @@ EOF } # Message-Id - rjsf - $messageid = "<$::Config{'version'}_${$}_".time."\@$domain>"; + $messageid = "<$::Config{'version'}_${$}_".time."\@$domain>"; # My username $me = $Is_MSWin32 ? $ENV{'USERNAME'} @@ -322,13 +322,13 @@ EOF } # Prompt for subject of message, if needed - + if ($subject && TrivialSubject($subject)) { $subject = ''; } unless ($subject) { - print + print "First of all, please provide a subject for the report.\n"; if ( not $thanks) { paraprint <. =item Do you have a proper test case? The easier it is to reproduce your bug, the more likely it will be -fixed -- if nobody can duplicate your problem, it probably won't be +fixed -- if nobody can duplicate your problem, it probably won't be addressed. A good test case has most of these attributes: short, simple code; @@ -1357,7 +1354,7 @@ by Perl's test suite). Yes, you can do this by either using the C<-T> option, or by invoking the program as C. Thank-you notes are good. It makes people -smile. +smile. =back @@ -1484,7 +1481,7 @@ testing purposes. =item B<-T> -Send a thank-you note instead of a bug report. +Send a thank-you note instead of a bug report. =item B<-v> diff --git a/msys2/usr/bin/core_perl/piconv b/msys2/usr/bin/core_perl/piconv index 814fe3e4f..6c58e3eb1 100644 --- a/msys2/usr/bin/core_perl/piconv +++ b/msys2/usr/bin/core_perl/piconv @@ -1,6 +1,6 @@ #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if $running_under_some_shell; + if 0; # ^ Run only under a shell #!./perl # $Id: piconv,v 2.8 2016/08/04 03:15:58 dankogai Exp $ # @@ -167,11 +167,11 @@ Common options: lists all available encodings -r,--resolve encoding_alias resolve encoding to its (Encode) canonical name - -f,--from from_encoding + -f,--from from_encoding when omitted, the current locale will be used - -t,--to to_encoding + -t,--to to_encoding when omitted, the current locale will be used - -s,--string string + -s,--string string "string" will be the input instead of STDIN or files The following are mainly of interest to Encode hackers: -C N | -c check the validity of the input diff --git a/msys2/usr/bin/core_perl/pl2pm b/msys2/usr/bin/core_perl/pl2pm index 06ff64a9b..599b5d966 100644 --- a/msys2/usr/bin/core_perl/pl2pm +++ b/msys2/usr/bin/core_perl/pl2pm @@ -1,6 +1,6 @@ #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if $running_under_some_shell; + if 0; # ^ Run only under a shell =head1 NAME @@ -79,7 +79,7 @@ while (<>) { s/\$\[/0/g; } s/open\s+(\w+)/open($1)/g; - + my $export_ok = ''; my $carp =''; diff --git a/msys2/usr/bin/core_perl/pod2html b/msys2/usr/bin/core_perl/pod2html index 5ec34da58..270e9dd30 100644 --- a/msys2/usr/bin/core_perl/pod2html +++ b/msys2/usr/bin/core_perl/pod2html @@ -1,6 +1,6 @@ #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if $running_under_some_shell; + if 0; # ^ Run only under a shell =pod =head1 NAME diff --git a/msys2/usr/bin/core_perl/pod2usage b/msys2/usr/bin/core_perl/pod2usage index d3386d249..d94585520 100644 --- a/msys2/usr/bin/core_perl/pod2usage +++ b/msys2/usr/bin/core_perl/pod2usage @@ -76,7 +76,7 @@ list should be separated by a ':' on Unix (';' on MSWin32 and DOS). =item B<-formatter> I Which text formatter to use. Default is L, or for very old -Perl versions L. An alternative would be e.g. +Perl versions L. An alternative would be e.g. L. =item B<-utf8> @@ -87,7 +87,9 @@ This option assumes that the formatter (see above) understands the option =item I The pathname of a file containing pod documentation to be output in -usage message format (defaults to standard input). +usage message format. If omitted, standard input is read - but the +output is then formatted with L only - unless a specific +formatter has been specified with B<-formatter>. =back @@ -102,7 +104,8 @@ module. Please see L. =head1 SEE ALSO -L, L +L, L, L, L, +L =head1 AUTHOR @@ -141,14 +144,13 @@ pod2usage(VERBOSE => 2) if ($options{man}); ## Dont default to STDIN if connected to a terminal pod2usage(2) if ((@ARGV == 0) && (-t STDIN)); -@ARGV = ('-') unless (@ARGV); if (@ARGV > 1) { print STDERR "pod2usage: Too many filenames given\n\n"; pod2usage(2); } my %usage = (); -$usage{-input} = shift(@ARGV); +$usage{-input} = shift(@ARGV) || \*STDIN; $usage{-exitval} = $options{'exit'} if (defined $options{'exit'}); $usage{-output} = $options{'output'} if (defined $options{'output'}); $usage{-verbose} = $options{'verbose'} if (defined $options{'verbose'}); diff --git a/msys2/usr/bin/core_perl/podchecker b/msys2/usr/bin/core_perl/podchecker index 5f3a921fa..0495c8ab2 100644 --- a/msys2/usr/bin/core_perl/podchecker +++ b/msys2/usr/bin/core_perl/podchecker @@ -66,7 +66,7 @@ POD files are ok. B returns the exit status 1 if at least one of the given POD files has syntax errors. -The status 2 indicates that at least one of the specified +The status 2 indicates that at least one of the specified files does not contain I POD commands. Status 1 overrides status 2. If you want unambiguous diff --git a/msys2/usr/bin/core_perl/prove b/msys2/usr/bin/core_perl/prove index 7d3ea210e..95e24206b 100644 --- a/msys2/usr/bin/core_perl/prove +++ b/msys2/usr/bin/core_perl/prove @@ -1,6 +1,6 @@ #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if $running_under_some_shell; + if 0; # ^ Run only under a shell #!/usr/bin/perl -w BEGIN { pop @INC if $INC[-1] eq '.' } @@ -210,7 +210,7 @@ new problems have been introduced. =item C -Run all tests in normal order. Multple options may be specified, so to +Run all tests in normal order. Multiple options may be specified, so to run all tests with the failures from last time first: $ prove -b --state=failed,all,save diff --git a/msys2/usr/bin/core_perl/ptar b/msys2/usr/bin/core_perl/ptar index fbac1f2a3..f3d15984a 100644 --- a/msys2/usr/bin/core_perl/ptar +++ b/msys2/usr/bin/core_perl/ptar @@ -1,8 +1,9 @@ #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if $running_under_some_shell; + if 0; # ^ Run only under a shell #!/usr/bin/perl use strict; +use warnings; BEGIN { pop @INC if $INC[-1] eq '.' } use File::Find; diff --git a/msys2/usr/bin/core_perl/ptardiff b/msys2/usr/bin/core_perl/ptardiff index 42827812e..a754c8a70 100644 --- a/msys2/usr/bin/core_perl/ptardiff +++ b/msys2/usr/bin/core_perl/ptardiff @@ -1,10 +1,11 @@ #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if $running_under_some_shell; + if 0; # ^ Run only under a shell #!/usr/bin/perl BEGIN { pop @INC if $INC[-1] eq '.' } use strict; +use warnings; use Archive::Tar; use Getopt::Std; diff --git a/msys2/usr/bin/core_perl/ptargrep b/msys2/usr/bin/core_perl/ptargrep index b9dba02ff..b35109e69 100644 --- a/msys2/usr/bin/core_perl/ptargrep +++ b/msys2/usr/bin/core_perl/ptargrep @@ -1,6 +1,6 @@ #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if $running_under_some_shell; + if 0; # ^ Run only under a shell #!/usr/bin/perl ############################################################################## # Tool for using regular expressions against the contents of files in a tar diff --git a/msys2/usr/bin/core_perl/shasum b/msys2/usr/bin/core_perl/shasum index c423b285f..4f6cd9067 100644 --- a/msys2/usr/bin/core_perl/shasum +++ b/msys2/usr/bin/core_perl/shasum @@ -1,6 +1,6 @@ #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if $running_under_some_shell; + if 0; # ^ Run only under a shell #!perl ## shasum: filter for computing SHA digests (ref. sha1sum/md5sum) diff --git a/msys2/usr/bin/core_perl/splain b/msys2/usr/bin/core_perl/splain index 18f2a2769..c7dbc7b4b 100644 --- a/msys2/usr/bin/core_perl/splain +++ b/msys2/usr/bin/core_perl/splain @@ -1,6 +1,6 @@ #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if $running_under_some_shell; + if 0; # ^ Run only under a shell BEGIN { pop @INC if $INC[-1] eq '.' } @@ -33,7 +33,7 @@ Using diagnostics to get stack traces from a misbehaving script: =head2 The C Pragma This module extends the terse diagnostics normally emitted by both the -perl compiler and the perl interpreter (from running perl with a -w +perl compiler and the perl interpreter (from running perl with a -w switch or C), augmenting them with the more explicative and endearing descriptions found in L. Like the other pragmata, it affects the compilation phase of your program rather @@ -43,7 +43,7 @@ To use in your program as a pragma, merely invoke use diagnostics; -at the start (or near the start) of your program. (Note +at the start (or near the start) of your program. (Note that this I enable perl's B<-w> flag.) Your whole compilation will then be subject(ed :-) to the enhanced diagnostics. These still go out B. @@ -51,7 +51,7 @@ These still go out B. Due to the interaction between runtime and compiletime issues, and because it's probably not a very good idea anyway, you may not use C to turn them off at compiletime. -However, you may control their behaviour at runtime using the +However, you may control their behaviour at runtime using the disable() and enable() methods to turn them off and on respectively. The B<-verbose> flag first prints out the L introduction before @@ -77,12 +77,12 @@ trace. =head2 The I Program -While apparently a whole nuther program, I is actually nothing +Another program, I is actually nothing more than a link to the (executable) F module, as well as a link to the F documentation. The B<-v> flag is like the C directive. The B<-p> flag is like the -$diagnostics::PRETTY variable. Since you're post-processing with +$diagnostics::PRETTY variable. Since you're post-processing with I, there's no sense in being able to enable() or disable() processing. Output from I is directed to B, unlike the pragma. @@ -107,8 +107,8 @@ afterwards, do this: perl -w test.pl 2>test.out ./splain < test.out -Note that this is not in general possible in shells of more dubious heritage, -as the theoretical +Note that this is not in general possible in shells of more dubious heritage, +as the theoretical (perl -w test.pl >/dev/tty) >& test.out ./splain < test.out @@ -118,7 +118,7 @@ Because you just moved the existing B to somewhere else. If you don't want to modify your source code, but still have on-the-fly warnings, do this: - exec 3>&1; perl -w test.pl 2>&1 1>&3 3>&- | splain 1>&2 3>&- + exec 3>&1; perl -w test.pl 2>&1 1>&3 3>&- | splain 1>&2 3>&- Nifty, eh? @@ -126,7 +126,7 @@ If you want to control warnings on the fly, do something like this. Make sure you do the C first, or you won't be able to get at the enable() or disable() methods. - use diagnostics; # checks entire compilation phase + use diagnostics; # checks entire compilation phase print "\ntime for 1st bogus diags: SQUAWKINGS\n"; print BOGUS1 'nada'; print "done with 1st bogus\n"; @@ -153,14 +153,14 @@ runtime. Otherwise, they may be embedded in the file itself when the splain package is built. See the F for details. If an extant $SIG{__WARN__} handler is discovered, it will continue -to be honored, but only after the diagnostics::splainthis() function +to be honored, but only after the diagnostics::splainthis() function (the module's $SIG{__WARN__} interceptor) has had its way with your warnings. There is a $diagnostics::DEBUG variable you may set if you're desperately curious what sorts of things are being intercepted. - BEGIN { $diagnostics::DEBUG = 1 } + BEGIN { $diagnostics::DEBUG = 1 } =head1 BUGS @@ -171,7 +171,7 @@ insurmountable. The C<-pretty> directive is called too late to affect matters. You have to do this instead, and I you load the module. - BEGIN { $diagnostics::PRETTY = 1 } + BEGIN { $diagnostics::PRETTY = 1 } I could start up faster by delaying compilation until it should be needed, but this gets a "panic: top_level" when using the pragma form @@ -191,7 +191,7 @@ use 5.009001; use Carp; $Carp::Internal{__PACKAGE__.""}++; -our $VERSION = '1.37'; +our $VERSION = '1.39'; our $DEBUG; our $VERBOSE; our $PRETTY; @@ -239,7 +239,7 @@ CONFIG: { if (open(POD_DIAG, '<', $PODFILE)) { warn "Happy happy podfile from real $PODFILE\n" if $DEBUG; last CONFIG; - } + } if (caller) { INCPATH: { @@ -253,14 +253,14 @@ CONFIG: { last INCPATH; } } - } + } } - } else { + } else { print STDERR "podfile is \n" if $DEBUG; *POD_DIAG = *main::DATA; } } -if (eof(POD_DIAG)) { +if (eof(POD_DIAG)) { die "couldn't find diagnostic data in $PODFILE @INC $0"; } @@ -286,7 +286,8 @@ if (eof(POD_DIAG)) { 'sol' => '/', # Forward slash / solidus 'verbar' => '|', # vertical bar - "Aacute" => "\xC1" # capital A, acute accent + # # capital A, acute accent + "Aacute" => chr utf8::unicode_to_native(0xC1) # etc ); @@ -306,15 +307,15 @@ if (eof(POD_DIAG)) { our %HTML_Escapes; *HTML_Escapes = do { if ($standalone) { - $PRETTY ? \%HTML_2_Latin_1 : \%HTML_2_ASCII_7; + $PRETTY ? \%HTML_2_Latin_1 : \%HTML_2_ASCII_7; } else { - \%HTML_2_Latin_1; + \%HTML_2_Latin_1; } -}; +}; *THITHER = $standalone ? *STDOUT : *STDERR; -my %transfmt = (); +my %transfmt = (); my $transmo = <>>|C<< (.*?) >>|[BC]<(.*?)>/bold($+)/ges; s/[IF]<(.*?)>/italic($1)/ges; s/L<(.*?)>/ @@ -369,11 +370,11 @@ my $over_level = 0; # We look only at =item lines at the first =over level s/S<(.*?)>/ $1 /ges; - } + } unless (/^=/) { - if (defined $header) { - if ( $header eq 'DESCRIPTION' && - ( /Optional warnings are enabled/ + if (defined $header) { + if ( $header eq 'DESCRIPTION' && + ( /Optional warnings are enabled/ || /Some of these messages are generic./ ) ) { @@ -384,10 +385,10 @@ my $over_level = 0; # We look only at =item lines at the first =over level $msg{$header} .= $_; for my $h(@headers) { $msg{$h} .= $_ } ++$seen_body; - undef $for_item; + undef $for_item; } next; - } + } # If we have not come across the body of the description yet, then # the previous header needs to share the same description. @@ -422,7 +423,7 @@ my $over_level = 0; # We look only at =item lines at the first =over level next; } - if( $for_item ) { $header = $for_item; undef $for_item } + if( $for_item ) { $header = $for_item; undef $for_item } else { $header = $1; @@ -455,7 +456,7 @@ my $over_level = 0; # We look only at =item lines at the first =over level $toks[$i] = quotemeta $toks[$i]; $conlen += length( $toks[$i] ); } - } + } my $lhs = join( '', @toks ); $lhs =~ s/(\\\s)+/\\s+/g; # Replace lit space with multi-space match $transfmt{$header}{pat} = @@ -467,14 +468,14 @@ my $over_level = 0; # We look only at =item lines at the first =over level $transfmt{$header}{pat} = " s^\\s*$lhs\\s*\Q$header\E\n\t && return 1;\n"; $transfmt{$header}{len} = length( $header ); - } + } print STDERR __PACKAGE__.": Duplicate entry: \"$header\"\n" if $msg{$header}; $msg{$header} = ''; $seen_body = 0; - } + } close POD_DIAG unless *main::DATA eq *POD_DIAG; @@ -494,19 +495,19 @@ my $over_level = 0; # We look only at =item lines at the first =over level } if ($standalone) { - if (!@ARGV and -t STDIN) { print STDERR "$0: Reading from STDIN\n" } + if (!@ARGV and -t STDIN) { print STDERR "$0: Reading from STDIN\n" } while (defined (my $error = <>)) { splainthis($error) || print THITHER $error; - } + } exit; -} +} my $olddie; my $oldwarn; sub import { shift; - $^W = 1; # yup, clobbered the global variable; + $^W = 1; # yup, clobbered the global variable; # tough, if you want diags, you want diags. return if defined $SIG{__WARN__} && ($SIG{__WARN__} eq \&warn_trap); @@ -538,13 +539,13 @@ sub import { }; warn "Unknown flag: $_"; - } + } $oldwarn = $SIG{__WARN__}; $olddie = $SIG{__DIE__}; $SIG{__WARN__} = \&warn_trap; $SIG{__DIE__} = \&death_trap; -} +} sub enable { &import } @@ -553,7 +554,7 @@ sub disable { return unless $SIG{__WARN__} eq \&warn_trap; $SIG{__WARN__} = $oldwarn || ''; $SIG{__DIE__} = $olddie || ''; -} +} sub warn_trap { my $warning = $_[0]; @@ -563,7 +564,7 @@ sub warn_trap { } else { print STDERR $warning; } - } + } goto &$oldwarn if defined $oldwarn and $oldwarn and $oldwarn ne \&warn_trap; }; @@ -584,7 +585,7 @@ sub death_trap { splainthis($exception) unless $in_eval; if (caller eq __PACKAGE__) { print STDERR "INTERNAL EXCEPTION: $exception"; - } + } &$olddie if defined $olddie and $olddie and $olddie ne \&death_trap; return if $in_eval; @@ -639,7 +640,7 @@ sub splainthis { } } - # remove parenthesis occurring at the end of some messages + # remove parenthesis occurring at the end of some messages s/^\((.*)\)$/$1/; if ($exact_duplicate{$orig}++) { @@ -670,39 +671,39 @@ sub splainthis { if ($msg{$_}) { print THITHER $msg{$_}; } else { - if (0 and $standalone) { + if (0 and $standalone) { print THITHER " **** Error #$old_diag{$_} ", ($real ? "is" : "appears to be"), " an unknown diagnostic message.\n\n"; } return 0; - } + } } return 1; } -} +} sub autodescribe { if ($VERBOSE and not $count) { print THITHER &{$PRETTY ? \&bold : \&noop}("DESCRIPTION OF DIAGNOSTICS"), "\n$msg{DESCRIPTION}\n"; - } -} + } +} -sub unescape { +sub unescape { s { - E< - ( [A-Za-z]+ ) - > - } { - do { + E< + ( [A-Za-z]+ ) + > + } { + do { exists $HTML_Escapes{$1} ? do { $HTML_Escapes{$1} } : do { warn "Unknown escape: E<$1> in $_"; "E<$1>"; - } - } + } + } }egx; } @@ -712,10 +713,10 @@ sub shorten { my $space_place = rindex($line, ' ', 79); if ($space_place != -1) { substr($line, $space_place, 1) = "\n\t"; - } - } + } + } return $line; -} +} 1 unless $standalone; # or it'll complain about itself diff --git a/msys2/usr/bin/core_perl/streamzip b/msys2/usr/bin/core_perl/streamzip index 87b2d23a1..0e1e95092 100644 --- a/msys2/usr/bin/core_perl/streamzip +++ b/msys2/usr/bin/core_perl/streamzip @@ -1,6 +1,6 @@ #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if $running_under_some_shell; + if 0; # ^ Run only under a shell #!/usr/bin/perl # Streaming zip @@ -11,20 +11,31 @@ use warnings; use IO::Compress::Zip qw(zip ZIP_CM_STORE ZIP_CM_DEFLATE - ZIP_CM_BZIP2 - ZIP_CM_LZMA ); + ZIP_CM_BZIP2 ) ; + use Getopt::Long; -my $VERSION = '1.0'; +my $VERSION = '1.002'; my $compression_method = ZIP_CM_DEFLATE; my $stream = 0; my $zipfile = '-'; my $memberName = '-' ; my $zip64 = 0 ; +my $level ; GetOptions("zip64" => \$zip64, "method=s" => \&lookupMethod, + "0" => sub { $level = 0 }, + "1" => sub { $level = 1 }, + "2" => sub { $level = 2 }, + "3" => sub { $level = 3 }, + "4" => sub { $level = 4 }, + "5" => sub { $level = 5 }, + "6" => sub { $level = 6 }, + "7" => sub { $level = 7 }, + "8" => sub { $level = 8 }, + "9" => sub { $level = 9 }, "stream" => \$stream, "zipfile=s" => \$zipfile, "member-name=s" => \$memberName, @@ -36,12 +47,19 @@ GetOptions("zip64" => \$zip64, Usage() if @ARGV; +my @extraOpts = (); + +if ($compression_method == ZIP_CM_DEFLATE && defined $level) +{ + push @extraOpts, (Level => $level) +} zip '-' => $zipfile, Name => $memberName, Zip64 => $zip64, Method => $compression_method, - Stream => $stream + Stream => $stream, + @extraOpts or die "Error creating zip file '$zipfile': $\n" ; exit 0; @@ -54,7 +72,9 @@ sub lookupMethod my %valid = ( store => ZIP_CM_STORE, deflate => ZIP_CM_DEFLATE, bzip2 => ZIP_CM_BZIP2, - lzma => ZIP_CM_LZMA, + lzma => 14, + xz => 95, + zstd => 93, ); my $method = $valid{ lc $value }; @@ -62,48 +82,65 @@ sub lookupMethod Usage("Unknown method '$value'") if ! defined $method; - # If LZMA was rquested, check that it is available - if ($method == ZIP_CM_LZMA) - { - eval ' use IO::Compress::Adapter::Lzma'; - die "Method =. LZMA needs IO::Compress::Adapter::Lzma\n" - if ! defined $IO::Compress::Lzma::VERSION; - } + installModule("Lzma") + if $method == 14 ; + + installModule("Xz") + if $method == 95 ; + + installModule("Zstd") + if $method == 93; $compression_method = $method; } +sub installModule +{ + my $name = shift ; + + eval " use IO::Compress::$name; use IO::Compress::Adapter::$name ; " ; + die "Method '$name' needs IO::Compress::$name\n" + if $@; +} + sub Usage { - die < zip file to stdout. No temporary files are created. +This program will read data from C, compress it into a zip container +and, by default, write a I zip file to C. No temporary +files are created. -The zip container written to stdout is, by necessity, written in streaming -format. Most programs that read Zip files can cope with a streamed zip file, -but if interoperability is important, and your workflow allows you to write the -zip file directly to disk you can create a non-streamed zip file using the C option. +The zip container written to C is, by necessity, written in +streaming format. Most programs that read Zip files can cope with a +streamed zip file, but if interoperability is important, and your workflow +allows you to write the zip file directly to disk you can create a +non-streamed zip file using the C option. =head2 OPTIONS @@ -133,16 +172,16 @@ zip file directly to disk you can create a non-streamed zip file using the C. -Use the C option to enable the creation of a streamed zip file. +Use the C option to force the creation of a streamed zip file. =item -member-name=M @@ -152,16 +191,16 @@ Default is '-'. =item -stream -Ignored when writing to stdout. +Ignored when writing to C. -If the C option is specified, including this option -will trigger the creation of a streamed zip file. +If the C option is specified, including this option will trigger +the creation of a streamed zip file. -Default: Always enabled when writing to stdout, otherwise disabled. +Default: Always enabled when writing to C, otherwise disabled. =item -method=M -Compress using method "M". +Compress using method C. Valid method names are @@ -169,14 +208,26 @@ Valid method names are * deflate Use Deflate compression [Deflault] * bzip2 Use Bzip2 compression * lzma Use LZMA compression + * xz Use xz compression + * zstd Use Zstandard compression -Note that Lzma compress needs IO::Compress::Lzma to be installed. +Note that Lzma compress needs C to be installed. -Default is deflate. +Note that Zstd compress needs C to be installed. + +Default is C. + +=item -0, -1, -2, -3, -4, -5, -6, -7, -8, -9 + +Sets the compression level for C. Ignored for all other compression methods. + +C<-0> means no compression and C<-9> for maximum compression. + +Default is 6 =item -version -Display version number [$VERSION] +Display version number =item -help @@ -184,14 +235,45 @@ Display help =back -=head2 When to use a Streamed Zip File +=head2 Examples -A Zip file created with streaming mode enabled allows you to create a zip file -in situations where you cannot seek backwards/forwards in the file. +Create a zip file bt reading daa from stdin -A good examples is when you are -serving dynamic content from a Web Server straight into a socket -without needing to create a temporary zip file in the filesystsm. + $ echo Lorem ipsum dolor sit | perl ./bin/streamzip >abcd.zip + +Check the contents of C with the standard C utility + + Archive: abcd.zip + Length Date Time Name + --------- ---------- ----- ---- + 22 2021-01-08 19:45 - + --------- ------- + 22 1 file + +Notice how the C is set to C<->. +That is the default for a few zip utilities whwre the member name is not given. + +If you want to explicitly name the file, use the C<-member-name> option as follows + + $ echo Lorem ipsum dolor sit | perl ./bin/streamzip -member-name latin >abcd.zip + + $ unzip -l abcd.zip + Archive: abcd.zip + Length Date Time Name + --------- ---------- ----- ---- + 22 2021-01-08 19:47 latin + --------- ------- + 22 1 file + + +=head2 When to write a Streamed Zip File + +A Streamed Zip File is useful in situations where you cannot seek +backwards/forwards in the file. + +A good examples is when you are serving dynamic content from a Web Server +straight into a socket without needing to create a temporary zip file in +the filesystsm. Similarly if your workfow uses a Linux pipelined commands. @@ -208,8 +290,7 @@ Paul Marquess F. =head1 COPYRIGHT -Copyright (c) 2019 Paul Marquess. All rights reserved. +Copyright (c) 2019-2021 Paul Marquess. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. - diff --git a/msys2/usr/bin/core_perl/xsubpp b/msys2/usr/bin/core_perl/xsubpp index a5672a75f..0d0dd0498 100644 --- a/msys2/usr/bin/core_perl/xsubpp +++ b/msys2/usr/bin/core_perl/xsubpp @@ -1,6 +1,6 @@ #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if $running_under_some_shell; + if 0; # ^ Run only under a shell #!perl use 5.006; BEGIN { pop @INC if $INC[-1] eq '.' } diff --git a/msys2/usr/bin/core_perl/zipdetails b/msys2/usr/bin/core_perl/zipdetails index ff4149e71..493d33666 100644 --- a/msys2/usr/bin/core_perl/zipdetails +++ b/msys2/usr/bin/core_perl/zipdetails @@ -1,6 +1,6 @@ #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' - if $running_under_some_shell; + if 0; # ^ Run only under a shell #!/usr/bin/perl # zipdetails @@ -8,12 +8,30 @@ # Display info on the contents of a Zip file # +use 5.010; # for unpack "Q<" + +BEGIN { + # Check for a 32-bit Perl + if (!eval { pack "Q", 1 }) { + warn "zipdetails requires 64 bit integers, ", + "this Perl has 32 bit integers.\n"; + exit(1); + } +} + BEGIN { pop @INC if $INC[-1] eq '.' } use strict; use warnings ; +no warnings 'portable'; # for unpacking > 2^32 +use feature 'state'; use IO::File; use Encode; +use Getopt::Long; + +my $VERSION = "2.104" ; + +use constant MAX32 => 0xFFFFFFFF ; # Compression types use constant ZIP_CM_STORE => 0 ; @@ -41,8 +59,8 @@ use constant ZIP_CENTRAL_HDR_SIG => 0x02014b50; use constant ZIP_END_CENTRAL_HDR_SIG => 0x06054b50; use constant ZIP64_END_CENTRAL_REC_HDR_SIG => 0x06064b50; use constant ZIP64_END_CENTRAL_LOC_HDR_SIG => 0x07064b50; -use constant ZIP64_ARCHIVE_EXTRA_SIG => 0x08064b50; -use constant ZIP64_DIGITAL_SIGNATURE_SIG => 0x05054b50; +use constant ZIP_ARCHIVE_EXTRA_DATA_SIG => 0x08064b50; +use constant ZIP_DIGITAL_SIGNATURE_SIG => 0x05054b50; use constant ZIP_ARCHIVE_EXTRA_DATA_RECORD_SIG => 0x08064b50; @@ -70,14 +88,16 @@ my %ZIP_CompressionMethods = 9 => 'Enhanced Deflating using Deflate64(tm)', 10 => 'PKWARE Data Compression Library Imploding', 11 => 'Reserved by PKWARE', - 12 => 'BZIP2 ', + 12 => 'BZIP2', 13 => 'Reserved by PKWARE', 14 => 'LZMA', 15 => 'Reserved by PKWARE', - 16 => 'Reserved by PKWARE', + 16 => 'IBM z/OS CMPSC Compression', 17 => 'Reserved by PKWARE', 18 => 'File is compressed using IBM TERSE (new)', 19 => 'IBM LZ77 z Architecture (PFS)', + 93 => 'Zstandard', + 94 => 'MP3', 95 => 'XZ', 96 => 'WinZip JPEG Compression', 97 => 'WavPack compressed data', @@ -96,7 +116,7 @@ my %OS_Lookup = ( 7 => "Macintosh", 8 => "Z-System", 9 => "CP/M", - 10 => "Windoxs NTFS or TOPS-20", + 10 => "Windows NTFS or TOPS-20", 11 => "MVS or NTFS", 12 => "VSE or SMS/QDOS", 13 => "Acorn RISC OS", @@ -118,8 +138,10 @@ my %Lookup = ( ZIP64_END_CENTRAL_REC_HDR_SIG, \&Zip64EndCentralHeader, ZIP64_END_CENTRAL_LOC_HDR_SIG, \&Zip64EndCentralLocator, - # TODO - Archive Encryption Headers + # TODO - Archive Encryption Headers & digital signature #ZIP_ARCHIVE_EXTRA_DATA_RECORD_SIG + #ZIP_DIGITAL_SIGNATURE_SIG + #ZIP_ARCHIVE_EXTRA_DATA_SIG ); my %Extras = ( @@ -138,7 +160,10 @@ my %Extras = ( 0x0017, ['Strong Encryption Header', undef], 0x0018, ['Record Management Controls', undef], 0x0019, ['PKCS#7 Encryption Recipient Certificate List', undef], - + 0x0020, ['Reserved for Timestamp record', undef], + 0x0021, ['Policy Decryption Key Record', undef], + 0x0022, ['Smartcrypt Key Provider Record', undef], + 0x0023, ['Smartcrypt Policy Key Data Record', undef], # The Header ID mappings defined by Info-ZIP and third parties are: @@ -147,7 +172,7 @@ my %Extras = ( 0x07c8, ['Info-ZIP Macintosh (old, J. Lee)', undef], 0x2605, ['ZipIt Macintosh (first version)', undef], 0x2705, ['ZipIt Macintosh v 1.3.5 and newer (w/o full filename)', undef], - 0x2805, ['ZipIt Macintosh v 1.3.5 and newer ', undef], + 0x2805, ['ZipIt Macintosh v 1.3.5 and newer', undef], 0x334d, ["Info-ZIP Macintosh (new, D. Haase's 'Mac3' field)", undef], 0x4154, ['Tandem NSK', undef], 0x4341, ['Acorn/SparkFS (David Pilling)', undef], @@ -176,14 +201,13 @@ my %Extras = ( 0x7855, ['Unix Extra type 2', \&decode_Ux], 0x7875, ['Unix Extra Type 3', \&decode_ux], 0x9901, ['AES Encryption', \&decode_AES], - 0xa11e, ['Data Stream Alignment', undef], - 0xA220, ['Open Packaging Growth Hint', undef ], + 0xa11e, ['Data Stream Alignment', \&decode_DataStreamAlignment], + 0xA220, ['Open Packaging Growth Hint', \&decode_GrowthHint ], 0xCAFE, ['Java Executable', \&decode_Java_exe], 0xfb4a, ['SMS/QDOS', undef], ); -my $VERSION = "1.11" ; my $FH; @@ -193,16 +217,21 @@ my $LocalHeaderCount = 0; my $CentralHeaderCount = 0; my $START; -my $OFFSET = new U64 0; +my $OFFSET = 0 ; my $TRAILING = 0 ; -my $PAYLOADLIMIT = 256; #new U64 256; -my $ZERO = new U64 0 ; +my $PAYLOADLIMIT = 256; +my $ZERO = 0 ; +my $APK = 0 ; +my $START_APK = 0; +my $APK_LEN = 0; + +my $SEEN = Seen->new(); sub prOff { my $offset = shift; my $s = offset($OFFSET); - $OFFSET->add($offset); + $OFFSET += $offset; return $s; } @@ -210,25 +239,7 @@ sub offset { my $v = shift ; - if (ref $v eq 'U64') { - my $hi = $v->getHigh(); - my $lo = $v->getLow(); - - if ($hi) - { - my $hiNib = $NIBBLES - 8 ; - sprintf("%0${hiNib}X", $hi) . - sprintf("%08X", $lo); - } - else - { - sprintf("%0${NIBBLES}X", $lo); - } - } - else { - sprintf("%0${NIBBLES}X", $v); - } - + sprintf("%0${NIBBLES}X", $v); } my ($OFF, $LENGTH, $CONTENT, $TEXT, $VALUE) ; @@ -339,6 +350,11 @@ sub hexDump return $out; } +sub hexValue +{ + return sprintf("%X", $_[0]); +} + sub out { my $data = shift; @@ -402,8 +418,10 @@ sub Value { return Value_v(@value) } elsif ($letter eq 'V') { return Value_V(@value) } - elsif ($letter eq 'VV') - { return Value_VV(@value) } + elsif ($letter eq 'Q<') + { return Value_Q(@value) } + else + { die "here letter $letter"} } sub outer @@ -429,7 +447,7 @@ sub outer } $v = "'" . $v unless $v =~ /^'/; - $v .= "'" unless $v =~ /'$/; + $v .= "'" unless $v =~ /'$/; $hex .= " $v" ; } @@ -468,45 +486,29 @@ sub out_V outer($name, 'V', 4, $cb1, $cb2); } -sub out_VV +sub out_Q { my $name = shift ; my $cb1 = shift ; my $cb2 = shift ; - outer($name, 'VV', 8, $cb1, $cb2); + outer($name, 'Q<', 8, $cb1, $cb2); } -# sub outSomeData -# { -# my $size = shift; -# my $message = shift; - -# my $size64 = U64::mkU64($size); - -# if ($size64->gt($ZERO)) { -# my $size32 = $size64->getLow(); -# if ($size64->gt($PAYLOADLIMIT) ) { -# out0 $size32, $message; -# } else { -# myRead(my $buffer, $size32 ); -# out $buffer, $message, xDump $buffer ; -# } -# } -# } - sub outSomeData { my $size = shift; my $message = shift; + my $redact = shift ; if ($size > 0) { if ($size > $PAYLOADLIMIT) { my $before = $FH->tell(); out0 $size, $message; - # printf "outSomeData %X %X $size %X\n", $before, $FH->tell(), $size; } else { myRead(my $buffer, $size ); + $buffer = "X" x $size + if $redact; out $buffer, $message, xDump $buffer ; } } @@ -544,62 +546,23 @@ sub Value_V sprintf "%08X", $v; } -sub unpackValue_VV +sub unpackValue_Q { - my ($lo, $hi) = unpack ("V V", $_[0]); - Value_VV($lo, $hi); + my $v = unpack ("Q<", $_[0]); + Value_Q($v); } -sub Value_U64 +sub Value_Q { - my $u64 = shift ; - Value_VV($u64->getLow(), $u64->getHigh()); + my $v = shift ; + sprintf "%016X", $v; } -sub Value_VV -{ - my $lo = defined $_[0] ? $_[0] : 0; - my $hi = defined $_[1] ? $_[1] : 0; - - if ($hi == 0) - { - sprintf "%016X", $lo; - } - else - { - sprintf("%08X", $hi) . - sprintf "%08X", $lo; - } -} - -sub Value_VV64 -{ - my $buffer = shift; - - # This needs perl 5.10 - # return unpack "Q<", $buffer; - - my ($lo, $hi) = unpack ("V V" , $buffer); - no warnings 'uninitialized'; - return $hi * (0xFFFFFFFF+1) + $lo; -} - -sub read_U64 +sub read_Q { my $b ; myRead($b, 8); - my ($lo, $hi) = unpack ("V V" , $b); - no warnings 'uninitialized'; - return ($b, new U64 $hi, $lo); -} - -sub read_VV -{ - my $b ; - myRead($b, 8); - my ($lo, $hi) = unpack ("V V" , $b); - no warnings 'uninitialized'; - return ($b, $hi * (0xFFFFFFFF+1) + $lo); + return ($b, unpack ("Q<" , $b)); } sub read_V @@ -624,27 +587,99 @@ sub read_C return ($b, unpack "C", $b); } - -my $opt_verbose = 0; -while (@ARGV && $ARGV[0] =~ /^-/) +sub seekTo { - my $opt = shift; + my $offset = shift ; + my $loc = shift ; - if ($opt =~ /^-h/i) - { - Usage(); - exit; - } - elsif ($opt =~ /^-v/i) - { - $opt_verbose = 1; - } - else { - Usage(); - } + $loc = SEEK_SET + if ! defined $loc ; + + $FH->seek($offset, $loc); + $OFFSET = $FH->tell(); } -Usage() unless @ARGV == 1; +sub scanForSignature +{ + my %sigs = + map { $_ => 1 } + map { substr $_, 2, 2 } # don't want the initial "PK" + map { pack "V", $_ } + ( + ZIP_LOCAL_HDR_SIG , + ZIP_DATA_HDR_SIG , + ZIP_CENTRAL_HDR_SIG , + ZIP_END_CENTRAL_HDR_SIG , + ZIP64_END_CENTRAL_REC_HDR_SIG , + ZIP64_END_CENTRAL_LOC_HDR_SIG , + # ZIP_ARCHIVE_EXTRA_DATA_SIG , + # ZIP_DIGITAL_SIGNATURE_SIG , + # ZIP_ARCHIVE_EXTRA_DATA_RECORD_SIG , + ); + + my $start = $FH->tell(); + + my $last = ''; + my $offset = 0; + my $buffer ; + BUFFER: + while ($FH->read($buffer, 1024 * 1000)) + { + my $combine = $last . $buffer ; + + my $ix = 0; + while (1) + { + $ix = index($combine, "PK", $ix) ; + + if ($ix == -1) + { + $last = ''; + next BUFFER; + } + + my $rest = substr($combine, $ix + 2, 2); + + if (! $sigs{$rest}) + { + $ix += 2; + next; + } + + # possible match + my $here = $FH->tell(); + seekTo($here - length($combine) + $ix); + + return 1; + } + + $last = substr($combine, $ix+4); + } + + return 0; +} + +my $is64In32 = 0; + +my $opt_verbose = 0; +my $opt_scan = 0; +my $opt_Redact = 0; +my $opt_utc = 0; + + +$Getopt::Long::bundling = 1 ; + +GetOptions("h" => \&Usage, + "v" => \$opt_verbose, + "scan" => \$opt_scan, + "redact" => \$opt_Redact, + "utc" => \$opt_utc, + "version" => sub { print "$VERSION\n"; exit }, + ) + or Usage("Invalid command line option\n"); + + +Usage("No zipfile") unless @ARGV == 1; my $filename = shift @ARGV; @@ -654,17 +689,13 @@ die "$filename does not exist\n" die "$filename not a standard file\n" unless -f $filename ; -$FH = new IO::File "<$filename" +$FH = IO::File->new( "<$filename" ) or die "Cannot open $filename: $!\n"; my $FILELEN = -s $filename ; $TRAILING = -s $filename ; -$NIBBLES = U64::nibbles(-s $filename) ; -#$NIBBLES = int ($NIBBLES / 4) + ( ($NIBBLES % 4) ? 1 : 0 ); -#$NIBBLES = 4 * $NIBBLES; -# Minimum of 4 nibbles -$NIBBLES = 4 if $NIBBLES < 4 ; +$NIBBLES = nibbles(-s $filename) ; die "$filename too short to be a zip file\n" if $FILELEN < 22 ; @@ -681,18 +712,65 @@ if(0) $FH->seek(0, SEEK_SET) ; } +my @Messages = (); -our ($CdExists, @CentralDirectory) = scanCentralDirectory($FH); +if ($opt_scan) +{ + my $foundCentralHeader = 0; + my $lastEndsAt = 0; + + while(scanForSignature()) + { + my $here = $FH->tell(); + + my ($buffer, $signature) = read_V(); + + # check for an APK header directly before the first central header + if ($signature == ZIP_CENTRAL_HDR_SIG && $foundCentralHeader == 0) + { + $foundCentralHeader = 1; + + ($START_APK, $APK, $APK_LEN) = chckForAPKSigningBlock($FH, $here) ; + + if ($START_APK) + { + seekTo($lastEndsAt+4); + + scanApkBlock(); + seekTo($here); + next; + } + + seekTo($here + 4); + } + + my $handler = $Lookup{$signature}; + $handler->($signature, $buffer); + + $lastEndsAt = $FH->tell(); + + seekTo($here + 4) ; + } + + dislayMessages(); + exit; + +} + +our ($CdExists, $CdOffset, @CentralDirectory) = scanCentralDirectory($FH); die "No Central Directory records found\n" if ! $CdExists ; -$OFFSET->reset(); +$OFFSET = 0 ; $FH->seek(0, SEEK_SET) ; outSomeData($START, "PREFIX DATA") if defined $START && $START > 0 ; +my $skippedFrom = 0 ; +my $skippedContent = 0 ; + while (1) { last if $FH->eof(); @@ -716,7 +794,7 @@ while (1) my $locOffset = $CentralDirectory[0][0]; my $delta = $locOffset - $here ; - if ($here < $locOffset ) { + if ($here + 4 == $locOffset ) { for (0 .. 3) { $FH->ungetc(ord(substr($buffer, $_, 1))) } @@ -725,18 +803,66 @@ while (1) } } - printf "\n\nUnexpecded END at offset %08X, value %s\n", $here, Value_V($signature); - last; + + if ($here < $CdOffset) + { + if ($APK) + { + scanApkBlock(); + next; + } + + # next + # if scanForSignature() ; + + $skippedFrom = $FH->tell() ; + $skippedContent = $CdOffset - $skippedFrom ; + + printf "\nWARNING!\nZip local header not found at offset 0x%X\n", $skippedFrom; + printf "Skipping 0x%x bytes to Central Directory...\n", $skippedContent; + + push @Messages, + sprintf("Expected Zip header not found at offset 0x%X, ", $skippedFrom) . + sprintf("skipped 0x%X bytes\n", $skippedContent); + + seekTo($CdOffset); + + next; + } + else + { + printf "\n\nUnexpected END at offset %08X, value %s\n", $here, Value_V($signature); + + last; + } } $ZIP64 = 0 if $signature != ZIP_DATA_HDR_SIG ; $handler->($signature, $buffer); } -print "Done\n"; + +dislayMessages(); exit ; +sub dislayMessages +{ + $SEEN->short_summary(); + + $SEEN->summary(); + + + if (@Messages) + { + my $count = scalar @Messages ; + print "\nWARNINGS\n\n"; + print "* $_\n" for @Messages ; + } + + print "Done\n"; +} + sub compressionMethod { my $id = shift ; @@ -748,15 +874,22 @@ sub LocalHeader my $signature = shift ; my $data = shift ; + my $from_offset = $FH->tell() - 4; + print "\n"; ++ $LocalHeaderCount; - out $data, "LOCAL HEADER #" . sprintf("%X", $LocalHeaderCount) , Value_V($signature); + my $hexHdrCount = sprintf("%X", $LocalHeaderCount) ; + out $data, "LOCAL HEADER #$hexHdrCount" , Value_V($signature); my $buffer; - my ($loc, $CDcompressedLength) = @{ shift @CentralDirectory }; - # print "LocalHeader loc $loc CDL $CDcompressedLength\n"; - # TODO - add test to check that the loc from central header matches + my ($loc, $CDcompressedLength, $cdZip64, $zip64Sizes, $cdIndex, $cdEntryOffset) ; + if (! $opt_scan) + { + ($loc, $CDcompressedLength, $cdZip64, $zip64Sizes, $cdIndex, $cdEntryOffset) = @{ shift @CentralDirectory } ; + # my $cdi = sprintf("%X", $cdIndex) ; + # out1 "CENTRAL HEADER #$cdi", sprintf "Offset %s\n", Value_Q($cdEntryOffset); + } out_C "Extract Zip Spec", \&decodeZipVer; out_C "Extract OS", \&decodeOS; @@ -769,7 +902,7 @@ sub LocalHeader out $bcm, "Compression Method", compressionMethod($compressedMethod) ; - out_V "Last Mod Time", sub { scalar getTime(_dosToUnixTime($_[0])) }; + out_V "Last Mod Time", sub { getTime(_dosToUnixTime($_[0])) }; my $crc = out_V "CRC"; my $compressedLength = out_V "Compressed Length"; @@ -779,9 +912,9 @@ sub LocalHeader my $filename ; myRead($filename, $filenameLength); - out $filename, "Filename", "'". $filename . "'"; + outputFilename($filename); - my $cl64 = new U64 $compressedLength ; + my $cl64 = $compressedLength; my %ExtraContext = (); if ($extraLength) { @@ -791,6 +924,29 @@ sub LocalHeader walkExtra($extraLength, \%ExtraContext); } + + my @msg ; + # if ($cdZip64 && ! $ZIP64) + # { + # # Central directory said this was Zip64 + # # some zip files don't have the Zip64 field in the local header + # # seems to be a streaming issue. + # push @msg, "Missing Zip64 extra field in Local Header #$hexHdrCount\n"; + + # if (! $zip64Sizes) + # { + # # Central has a ZIP64 entry that doesn't have sizes + # # Local doesn't have a Zip 64 at all + # push @msg, "Unzip may complain about 'overlapped components' #$hexHdrCount\n"; + # } + # else + # { + # $ZIP64 = 1 + # } + # } + + + my $size = 0; $size = printAes(\%ExtraContext) if $compressedMethod == 99 ; @@ -798,13 +954,13 @@ sub LocalHeader $size += printLzmaProperties() if $compressedMethod == ZIP_CM_LZMA ; - # $CDcompressedLength->subtract($size) - # if $size ; + $CDcompressedLength = $compressedLength + if $opt_scan ; + $CDcompressedLength -= $size; - # if ($CDcompressedLength->getHigh() || $CDcompressedLength->getLow()) { if ($CDcompressedLength) { - outSomeData($CDcompressedLength, "PAYLOAD") ; + outSomeData($CDcompressedLength, "PAYLOAD", $opt_Redact) ; } if ($compressedMethod == 99) { @@ -812,14 +968,51 @@ sub LocalHeader myRead($auth, 10); out $auth, "AES Auth", hexDump($auth); } + + print "WARNING: $_" + for @msg; + + push @Messages, @msg ; + + + # $SEEN->save("LOCAL HEADER #" . sprintf("%X", $LocalHeaderCount), $filename, $from_offset, $from_offset + $CDcompressedLength); } +sub redactFilename +{ + my $filename = shift; + + # Redact everything apart from directory seperators + $filename =~ s([^/])(X)g + if $opt_Redact; + + return $filename; +} + +sub outputFilename +{ + my $filename = shift; + + $filename = redactFilename($filename) ; + + if (length $filename > 256) + { + my $f = substr($filename, 0, 256) ; + out $f, "Filename", "'". $f . "' ..."; + } + else + { + out $filename, "Filename", "'". $filename . "'"; + } +} sub CentralHeader { my $signature = shift ; my $data = shift ; + my $from_offset = $FH->tell() - 4; + ++ $CentralHeaderCount; print "\n"; out $data, "CENTRAL HEADER #" . sprintf("%X", $CentralHeaderCount) . "", Value_V($signature); @@ -827,8 +1020,8 @@ sub CentralHeader out_C "Created Zip Spec", \&decodeZipVer; out_C "Created OS", \&decodeOS; - out_C "Extract Zip Spec", \&decodeZipVer; - out_C "Extract OS", \&decodeOS; + out_C "Extract Zip Spec", \&decodeZipVer; + out_C "Extract OS", \&decodeOS; my ($bgp, $gpFlag) = read_v(); my ($bcm, $compressedMethod) = read_v(); @@ -838,7 +1031,7 @@ sub CentralHeader out $bcm, "Compression Method", compressionMethod($compressedMethod) ; - out_V "Last Mod Time", sub { scalar getTime(_dosToUnixTime($_[0])) }; + out_V "Last Mod Time", sub { getTime(_dosToUnixTime($_[0])) }; my $crc = out_V "CRC"; my $compressedLength = out_V "Compressed Length"; @@ -869,9 +1062,13 @@ sub CentralHeader my $filename ; myRead($filename, $filenameLength); - out $filename, "Filename", "'". $filename . "'"; + outputFilename($filename); + + + my %ExtraContext = ( CRC => $crc, + LocalHdrOffset => $lcl_hdr_offset, + CompressedLength => $compressedLength); - my %ExtraContext = (); if ($extraLength) { my @z64 = ($uncompressedLength, $compressedLength, $lcl_hdr_offset, $disk_start); @@ -886,6 +1083,9 @@ sub CentralHeader myRead($comment, $comment_length); out $comment, "Comment", "'". $comment . "'"; } + + + $SEEN->save("CENTRAL HEADER ref Local #" . sprintf("%X", $CentralHeaderCount), $filename, \%ExtraContext) ; } sub decodeZipVer @@ -917,9 +1117,9 @@ sub Zip64EndCentralHeader my $buff; myRead($buff, 8); - out $buff, "Size of record", unpackValue_VV($buff); + out $buff, "Size of record", unpackValue_Q($buff); - my $size = Value_VV64($buff); + my $size = unpack "Q<", $buff; out_C "Created Zip Spec", \&decodeZipVer; out_C "Created OS", \&decodeOS; @@ -927,14 +1127,16 @@ sub Zip64EndCentralHeader out_C "Extract OS", \&decodeOS; out_V "Number of this disk"; out_V "Central Dir Disk no"; - out_VV "Entries in this disk"; - out_VV "Total Entries"; - out_VV "Size of Central Dir"; - out_VV "Offset to Central dir"; + out_Q "Entries in this disk"; + out_Q "Total Entries"; + out_Q "Size of Central Dir"; + out_Q "Offset to Central dir"; # TODO - - die "Unsupported Size ($size) in Zip64EndCentralHeader\n" - if $size != 44; + if ($size != 44) + { + push @Messages, "Unsupported Size field in Zip64EndCentralHeader: should be 44, got $size\n" + } } @@ -947,7 +1149,7 @@ sub Zip64EndCentralLocator out $data, "ZIP64 END CENTRAL DIR LOCATOR", Value_V($signature); out_V "Central Dir Disk no"; - out_VV "Offset to Central dir"; + out_Q "Offset to Central dir"; out_V "Total no of Disks"; } @@ -987,8 +1189,8 @@ sub DataHeader if ($ZIP64) { - out_VV "Compressed Length" ; - out_VV "Uncompressed Length" ; + out_Q "Compressed Length" ; + out_Q "Uncompressed Length" ; } else { @@ -1014,7 +1216,7 @@ sub GeneralPurposeBits if ($method == ZIP_CM_DEFLATE) { - my $mid = $gp & 0x03; + my $mid = ($gp >> 1) & 0x03 ; out1 "[Bits 1-2]", "$mid '$lookup{$mid}'"; } @@ -1031,9 +1233,8 @@ sub GeneralPurposeBits if ($method == ZIP_CM_IMPLODE) # Imploding { - out1 "[Bit 1]", ($gp & 1 ? "1 '8k" : "0 '4k") . " Sliding Dictionary'" ; - out1 "[Bit 2]", ($gp & 2 ? "1 '3" : "0 '2" ) . " Shannon-Fano - Trees'" ; + out1 "[Bit 1]", ($gp & (1 << 1) ? "1 '8k" : "0 '4k") . " Sliding Dictionary'" ; + out1 "[Bit 2]", ($gp & (2 << 1) ? "1 '3" : "0 '2" ) . " Shannon-Fano Trees'" ; } out1 "[Bit 3]", "1 'Streamed'" if $gp & ZIP_GP_FLAG_STREAMING_MASK; @@ -1054,12 +1255,7 @@ sub seekSet my $size = $_[1]; use Fcntl qw(SEEK_SET); - if (ref $size eq 'U64') { - seek($fh, $size->get64bit(), SEEK_SET); - } - else { - seek($fh, $size, SEEK_SET); - } + seek($fh, $size, SEEK_SET); } @@ -1069,12 +1265,7 @@ sub skip my $size = $_[1]; use Fcntl qw(SEEK_CUR); - if (ref $size eq 'U64') { - seek($fh, $size->get64bit(), SEEK_CUR); - } - else { - seek($fh, $size, SEEK_CUR); - } + seek($fh, $size, SEEK_CUR); } @@ -1123,29 +1314,52 @@ sub walkExtra my $count = 0 ; - if ($XLEN < ZIP_EXTRA_SUBFIELD_ID_SIZE + ZIP_EXTRA_SUBFIELD_LEN_SIZE) - { - # Android zipalign is prime candidate for this non-standard extra field. - myRead($payload, $XLEN); - my $data = hexDump($payload); - - out $payload, "Malformed Extra Data", $data; - - return undef; - } - while ($offset < $XLEN) { ++ $count; - return undef - if $offset + ZIP_EXTRA_SUBFIELD_HEADER_SIZE > $XLEN ; + # Detect if there is not enough data for an extra ID and length. + # Android zipalign and zipflinger are prime candidates for these + # non-standard extra sub-fields. + my $remaining = $XLEN - $offset; + if ($remaining < ZIP_EXTRA_SUBFIELD_HEADER_SIZE) { + # There is not enough left. + # Consume whatever is there and return so parsing + # can continue. + myRead($payload, $remaining); + my $data = hexDump($payload); + + if ($payload =~ /^\x00+$/) + { + out $payload, "Null Padding in Extra"; + } + else + { + out $payload, "Malformed Extra Data", $data; + } + + return undef; + } myRead($id, ZIP_EXTRA_SUBFIELD_ID_SIZE); $offset += ZIP_EXTRA_SUBFIELD_ID_SIZE; my $lookID = unpack "v", $id ; - my ($who, $decoder) = @{ defined $Extras{$lookID} ? $Extras{$lookID} : ['', undef] }; - #my ($who, $decoder) = @{ $Extras{unpack "v", $id} || ['', undef] }; + if ($lookID == 0) + { + # check for null padding at end of extra + my $here = $FH->tell(); + my $rest; + myRead($rest, $XLEN - $offset); + if ($rest =~ /^\x00+$/) + { + out $id . $rest, "Null Padding in Extra"; + return undef; + } + + seekTo($here); + } + + my ($who, $decoder) = @{ $Extras{$lookID} // ['', undef ] }; $who = "$id: $who" if $id =~ /\w\w/ ; @@ -1164,10 +1378,13 @@ sub walkExtra if (! defined $decoder) { - myRead($payload, $subLen); - my $data = hexDump($payload); + if ($subLen) + { + myRead($payload, $subLen); + my $data = hexDump($payload); - out2 $payload, "Extra Payload", $data; + out2 $payload, "Extra Payload", $data; + } } else { @@ -1183,7 +1400,7 @@ sub walkExtra sub full32 { - return $_[0] == 0xFFFFFFFF ; + return $_[0] == MAX32 ; } sub decode_Zip64 @@ -1192,19 +1409,21 @@ sub decode_Zip64 my $context = shift; my $z64Data = $context->{Zip64}; + my $inCentralHdr = $context->{InCentralDir} ; + my $inLocalHdr = ! $inCentralHdr ; $ZIP64 = 1; - if (full32 $z64Data->[0] ) { - out_VV " Uncompressed Size"; + if ($inLocalHdr || full32 $z64Data->[0]) { + out_Q " Uncompressed Size"; } - if (full32 $z64Data->[1] ) { - out_VV " Compressed Size"; + if ($inLocalHdr || full32 $z64Data->[1]) { + $context->{CompressedLength} = out_Q " Compressed Size"; } if (full32 $z64Data->[2] ) { - out_VV " Offset to Local Dir"; + $context->{LocalHdrOffset} = out_Q " Offset to Local Dir"; } if ($z64Data->[3] == 0xFFFF ) { @@ -1214,18 +1433,16 @@ sub decode_Zip64 sub Ntfs2Unix { + my $m = shift; my $v = shift; - my $u64 = shift; # NTFS offset is 19DB1DED53E8000 - my $hex = Value_U64($u64) ; - my $NTFS_OFFSET = new U64 0x19DB1DE, 0xD53E8000 ; - $u64->subtract($NTFS_OFFSET); - my $elapse = $u64->get64bit(); - my $ns = ($elapse % 10000000) * 100; - $elapse = int ($elapse/10000000); - return "$hex '" . localtime($elapse) . + my $hex = Value_Q($v) ; + $v -= 0x19DB1DED53E8000 ; + my $ns = ($v % 10000000) * 100; + my $elapse = int ($v/10000000); + return "$hex '" . getT($elapse) . " " . sprintf("%0dns'", $ns); } @@ -1238,21 +1455,31 @@ sub decode_NTFS_Filetimes out_v " Tag1"; out_v " Size1" ; - my ($m, $s1) = read_U64; + my ($m, $s1) = read_Q; out $m, " Mtime", Ntfs2Unix($m, $s1); - my ($c, $s2) = read_U64; - out $c, " Ctime", Ntfs2Unix($m, $s2); - - my ($a, $s3) = read_U64; + my ($a, $s3) = read_Q; out $m, " Atime", Ntfs2Unix($m, $s3); + + my ($c, $s2) = read_Q; + out $c, " Ctime", Ntfs2Unix($m, $s2); +} + +sub getT +{ + my $time = shift ; + + if ($opt_utc) + { return scalar gmtime($time) } + else + { return scalar localtime($time) } } sub getTime { my $time = shift ; - return "'" . localtime($time) . "'" ; + return "'" . getT($time) . "'"; } sub decode_UT @@ -1301,6 +1528,8 @@ sub decode_UT sub decode_AES { + # ref https://www.winzip.com/win/es/aes_info.html + my $len = shift; my $context = shift; @@ -1326,6 +1555,55 @@ sub decode_AES $context->{AesStrength} = $strength ; } +sub decode_GrowthHint +{ + my $len = shift; + my $context = shift; + my $inCentralHdr = $context->{InCentralDir} ; + + return if $len == 0 ; + + out_v " Signature" ; + out_v " Initial Value"; + + my $padding; + myRead($padding, $len - 4); + my $data = hexDump($padding); + + out2 $padding, "Padding", $data; +} + +sub decode_DataStreamAlignment +{ + my $len = shift; + my $context = shift; + my $inCentralHdr = $context->{InCentralDir} ; + + return if $len == 0 ; + + my ($data, $alignment) = read_v(); + + out $data, " Alignment", Value_v($alignment) ; + + my $recompress_value = $alignment & 0x8000 ? 1 : 0; + + my $recompressing = $recompress_value ? "True" : "False"; + $alignment &= 0x7FFF ; + my $hexAl = sprintf("%X", $alignment); + + out1 " [Bit 15]", "$recompress_value 'Recompress $recompressing'"; + out1 " [Bits 0-14]", "$hexAl 'Minimal Alignment $alignment'"; + + if (! $inCentralHdr && $len - 2 > 0) + { + my $padding; + myRead($padding, $len - 2); + + out2 $padding, "Padding", hexDump($padding); + } +} + + sub decode_UX { my $len = shift; @@ -1431,14 +1709,31 @@ sub decode_Xceed_unicode my $data ; - # guess the fields used for this one + # No public definition available, so guess the fields used for this one + # Data analysis based on output from Fiddler (https://www.telerik.com/fiddler), + # which uses this field + + # First 4 bytes appear to be "NUCX" all the time myRead($data, 4); out $data, " ID", $data; + # Next 2 bytes contains a count of the remaining bytes/2 + # Probably the number of UTF-16 characters, including the + # optional NULL prefix out_v " Length"; - out_v " Null"; - myRead($data, $len - 8); + # next is a UTF16 encode filename + # sometimes preceeded by a two Null bytes + + myRead($data, $len - 6); + + my $prefix = substr($data, 0, 2); + if ($prefix eq "\x00\x00") + { + # Found the Null prefix + out $prefix, " Null", '0000'; + substr($data, 0, 2) = ''; + } out $data, " UTF16LE Name", decode("UTF16LE", $data); } @@ -1486,6 +1781,8 @@ sub decodeMVS sub printAes { + # ref https://www.winzip.com/win/es/aes_info.html + my $context = shift ; my %saltSize = ( @@ -1542,6 +1839,134 @@ sub printLzmaProperties return $len; } +sub readFromOffset +{ + # my $fh = shift; + my $offset = shift; + my $len = shift; + + seekTo($offset) ; + + my $buffer; + myRead($buffer, $len); + # $fh->read($buffer, $len) == $len + length $buffer == $len + or return ''; + + return $buffer; +} + +sub chckForAPKSigningBlock +{ + my $fh = shift; + my $cdOffset = shift; + + # APK Signing Block comes directy before the Central directory + + # If offset less than + # + # len1 8 + # id 4 + # kv with zero len 8 + # len1 8 + # magic 16 + # ---------- + # 44 + + return (0, 0, '') + if $cdOffset < 44; + + # Step 1 - 16 bytes before CD is literal string "APK Sig Block 42" + my $magicOffset = $cdOffset - 16; + my $buffer = readFromOffset($magicOffset, 16); + + return (0, 0, '') + if $buffer ne "APK Sig Block 42" ; + + # Step 2 - read the two length fields + # and check they are identical + $buffer = readFromOffset($cdOffset - 16 - 8, 8); + my $len2 = unpack("Q<", $buffer); + + return (0, 0, '') + if $len2 == 0 ; + + my $startApkOffset = $cdOffset - 8 - $len2 ; + + $buffer = readFromOffset($startApkOffset, 8); + my $len1 = unpack("Q<", $buffer); + + return (0, 0, '') + if $len1 != $len2; + + return ($startApkOffset, $cdOffset - 16 - 8, $buffer); +} + +sub scanApkBlock +{ + state $IDs = { + 0x7109871a => "APK Signature v2", + 0xf05368c0 => "APK Signature v3", + 0x42726577 => "Verity Padding Block", # from https://android.googlesource.com/platform/tools/apksig/+/master/src/main/java/com/android/apksig/internal/apk/ApkSigningBlockUtils.java + 0x6dff800d => "Source Stamp", + 0x504b4453 => "Dependency Info", + 0x71777777 => "APK Channel Block", + 0xff3b5998 => "Zero Block", + 0x2146444e => "Play Metadata", + } ; + + + seekTo($FH->tell() - 4) ; + print "\nAPK SIGNING BLOCK\n"; + + scanApkPadding(''); + out_Q "Block Length Copy #1"; + my $ix = 1; + + while ($FH->tell() < $APK - 8) + { + my ($bytes, $id, $len); + ($bytes, $len) = read_Q ; + out $bytes, "ID/Value Length #" . sprintf("%X", $ix), Value_Q($len); + + ($bytes, $id) = read_V; + + out $bytes, " ID", Value_V($id) . " '" . ($IDs->{$id} // 'Unknown ID') . "'"; + + outSomeData($len-4, " Value"); + ++ $ix; + } + + out_Q "Block Length Copy #2"; + + my $magic ; + myRead($magic, 16); + + out $magic, "Magic", qq['$magic']; +} + +sub scanApkPadding +{ + my $bytes = shift ; + + # padding + my $here = $FH->tell(); + my $got; + myRead($got, $APK - $here); + $got = $bytes . $got; + if ($got =~ /^(\x00+)($APK_LEN)?/) + { + my $len = length $1 ; + seekTo($here - length($bytes)); + outSomeData($len, "Null Padding"); + } + else + { + seekTo($here); + } + +} + sub scanCentralDirectory { my $fh = shift; @@ -1562,18 +1987,21 @@ sub scanCentralDirectory # Now walk the Central Directory Records my $buffer ; + my $cdIndex = 0; while ($fh->read($buffer, 46) == 46 && unpack("V", $buffer) == ZIP_CENTRAL_HDR_SIG) { + my $cdEntryOffset = $fh->tell() - 46; + ++ $cdIndex ; + my $compressedLength = unpack("V", substr($buffer, 20, 4)); my $uncompressedLength = unpack("V", substr($buffer, 24, 4)); my $filename_length = unpack("v", substr($buffer, 28, 2)); my $extra_length = unpack("v", substr($buffer, 30, 2)); my $comment_length = unpack("v", substr($buffer, 32, 2)); my $locHeaderOffset = unpack("V", substr($buffer, 42, 4)); - - $START = $locHeaderOffset - if ! defined $START; + my $cdZip64 = 0; + my $zip64Sizes = 0; skip($fh, $filename_length ) ; @@ -1583,50 +2011,32 @@ sub scanCentralDirectory # $self->smartReadExact(\$extraField, $extra_length); # Check for Zip64 - # my $zip64Extended = findID("\x01\x00", $extraField); + # my SizesExtended = findID("\x01\x00", $extraField); my $zip64Extended = findID(0x0001, $extraField); if ($zip64Extended) { - if ($uncompressedLength == 0xFFFFFFFF) + $cdZip64 = 1; + + if ($uncompressedLength == MAX32) { - $uncompressedLength = Value_VV64 substr($zip64Extended, 0, 8, ""); - # $uncompressedLength = unpack "Q<", substr($zip64Extended, 0, 8, ""); + $uncompressedLength = unpack "Q<", substr($zip64Extended, 0, 8, ""); + $zip64Sizes = 1; } - if ($compressedLength == 0xFFFFFFFF) + if ($compressedLength == MAX32) { - $compressedLength = Value_VV64 substr($zip64Extended, 0, 8, ""); - # $compressedLength = unpack "Q<", substr($zip64Extended, 0, 8, ""); + $compressedLength = unpack "Q<", substr($zip64Extended, 0, 8, ""); + $zip64Sizes = 1; + } - if ($locHeaderOffset == 0xFFFFFFFF) + if ($locHeaderOffset == MAX32) { - $locHeaderOffset = Value_VV64 substr($zip64Extended, 0, 8, ""); - # $locHeaderOffset = unpack "Q<", substr($zip64Extended, 0, 8, ""); + $locHeaderOffset = unpack "Q<", substr($zip64Extended, 0, 8, ""); } } } - my $got = [$locHeaderOffset, $compressedLength] ; - - # my $v64 = new U64 $compressedLength ; - # my $loc64 = new U64 $locHeaderOffset ; - # my $got = [$loc64, $v64] ; - - # if (full32 $compressedLength || full32 $locHeaderOffset) { - # $fh->read($buffer, $extra_length) ; - # # TODO - fix this - # die "xxx $offset $comment_length $filename_length $extra_length" . length($buffer) - # if length($buffer) != $extra_length; - # $got = get64Extra($buffer, full32($uncompressedLength), - # $v64, - # $loc64); - - # # If not Zip64 extra field, assume size is 0xFFFFFFFF - # #$v64 = $got if defined $got; - # } - # else { - # skip($fh, $extra_length) ; - # } + my $got = [$locHeaderOffset, $compressedLength, $cdZip64, $zip64Sizes, $cdIndex, $cdEntryOffset] ; skip($fh, $comment_length ) ; @@ -1637,7 +2047,12 @@ sub scanCentralDirectory # @CD = sort { $a->[0]->cmp($b->[0]) } @CD ; @CD = sort { $a->[0] <=> $b->[0] } @CD ; - return (1, @CD); + + # Set the first Local File Header offset. + $START = $CD[0]->[0] + if @CD ; + + return (1, $offset, @CD); } @@ -1654,10 +2069,13 @@ sub offsetFromZip64 my $got = 0; ($got = $fh->read($buffer, 20)) == 20 # TODO - fix this - or die "xxx $here $got $!" ; + or die "xxx + + + $here $got $!" ; if ( unpack("V", $buffer) == ZIP64_END_CENTRAL_LOC_HDR_SIG ) { - my $cd64 = Value_VV64 substr($buffer, 8, 8); + my $cd64 = unpack "Q<", substr($buffer, 8, 8); $fh->seek($cd64, SEEK_SET) ; @@ -1670,22 +2088,20 @@ sub offsetFromZip64 $fh->read($buffer, 8) == 8 # TODO - fix this or die "xxx" ; - my $size = Value_VV64($buffer); + my $size = unpack "Q<", $buffer; $fh->read($buffer, $size) == $size # TODO - fix this or die "xxx" ; - my $cd64 = Value_VV64 substr($buffer, 36, 8); + my $cd64 = unpack "Q<", substr($buffer, 36, 8); return $cd64 ; } - # TODO - fix this - die "zzz"; + die "Cannot find 'Zip64 end of central directory record': 0x06054b50\nTry running with --scan option.\n" ; } - # TODO - fix this - die "zzz"; + die "Cannot find signature for 'Zip64 end of central directory locator': 0x07064b50 \nTry running with --scan option.\n" ; } use constant Pack_ZIP_END_CENTRAL_HDR_SIG => pack("V", ZIP_END_CENTRAL_HDR_SIG); @@ -1701,6 +2117,9 @@ sub findCentralDirectoryOffset $fh->seek(-22, SEEK_END) ; my $here = $fh->tell(); + my $is64bit = $here > MAX32; + my $over64bit = $here & (~ MAX32); + my $buffer; $fh->read($buffer, 22) == 22 # TODO - fix this @@ -1708,6 +2127,7 @@ sub findCentralDirectoryOffset my $zip64 = 0; my $centralDirOffset ; + if ( unpack("V", $buffer) == ZIP_END_CENTRAL_HDR_SIG ) { $centralDirOffset = unpack("V", substr($buffer, 16, 4)); } @@ -1752,8 +2172,24 @@ sub findCentralDirectoryOffset } } - $centralDirOffset = offsetFromZip64($fh, $here) - if full32 $centralDirOffset ; + if (full32 $centralDirOffset) + { + $centralDirOffset = offsetFromZip64($fh, $here) + } + elsif ($is64bit) + { + # use-case is where a 64-bit zip file doesn't use the 64-bit + # extensions. + print "EOCD not 64-bit $centralDirOffset ($here)\n" ; + + push @Messages, + sprintf "Zip file > 4Gig. Expected 'Offset to Central Dir' to be 0xFFFFFFFF, got 0x%X\n", $centralDirOffset; + + $centralDirOffset += $over64bit; + $is64In32 = 1; + } + + ($START_APK, $APK, $APK_LEN) = chckForAPKSigningBlock($fh, $centralDirOffset); return $centralDirOffset ; } @@ -1807,271 +2243,155 @@ sub _dosToUnixTime use POSIX 'mktime'; + # Force mktime to return a UTC time + local $ENV{TZ} = "UTC"; + my $time_t = mktime( $sec, $min, $hour, $mday, $mon, $year, 0, 0, -1 ); return 0 if ! defined $time_t; return $time_t; } +sub nibbles +{ + my @nibbles = ( + [ 16 => 0x1000000000000000 ], + [ 15 => 0x100000000000000 ], + [ 14 => 0x10000000000000 ], + [ 13 => 0x1000000000000 ], + [ 12 => 0x100000000000 ], + [ 11 => 0x10000000000 ], + [ 10 => 0x1000000000 ], + [ 9 => 0x100000000 ], + [ 8 => 0x10000000 ], + [ 7 => 0x1000000 ], + [ 6 => 0x100000 ], + [ 5 => 0x10000 ], + [ 4 => 0x1000 ], + [ 4 => 0x100 ], + [ 4 => 0x10 ], + [ 4 => 0x1 ], + ); + my $value = shift ; + + for my $pair (@nibbles) + { + my ($count, $limit) = @{ $pair }; + + return $count + if $value >= $limit ; + } +} + { - package U64; - - use constant MAX32 => 0xFFFFFFFF ; - use constant HI_1 => MAX32 + 1 ; - use constant LOW => 0 ; - use constant HIGH => 1; + package Seen; sub new { my $class = shift ; - my $high = 0 ; - my $low = 0 ; + my %object = ( overlaps => [], + duplicates => [], + detail => [], + duplicate_count => 0, + overlap_count => 0, + ) ; - if (@_ == 2) { - $high = shift ; - $low = shift ; - } - elsif (@_ == 1) { - $low = shift ; - } - - bless [$low, $high], $class; + bless \%object, $class; } - sub newUnpack_V64 + sub save { - my $string = shift; + my $self = shift ; + my $hdrId = shift; + my $name = shift; + my $extras = shift; - my ($low, $hi) = unpack "V V", $string ; - bless [ $low, $hi ], "U64"; - } + my $from_offset = $extras->{LocalHdrOffset}; + my $to_offset = $from_offset ; + $to_offset += $extras->{CompressedLength} - 1 ; - sub newUnpack_V32 - { - my $string = shift; + my $crc = $extras->{CRC}; - my $low = unpack "V", $string ; - bless [ $low, 0 ], "U64"; - } + $name = ::redactFilename($name) ; - sub reset - { - my $self = shift; - $self->[HIGH] = $self->[LOW] = 0; - } - - sub clone - { - my $self = shift; - bless [ @$self ], ref $self ; - } - - sub mkU64 - { - my $value = shift; - - return $value - if ref $value eq 'U64'; - - bless [ $value, 0 ], "U64" ; - } - - sub getHigh - { - my $self = shift; - return $self->[HIGH]; - } - - sub getLow - { - my $self = shift; - return $self->[LOW]; - } - - sub get32bit - { - my $self = shift; - return $self->[LOW]; - } - - sub get64bit - { - my $self = shift; - # Not using << here because the result will still be - # a 32-bit value on systems where int size is 32-bits - return $self->[HIGH] * HI_1 + $self->[LOW]; - } - - sub add - { - my $self = shift; - my $value = shift; - - if (ref $value eq 'U64') { - $self->[HIGH] += $value->[HIGH] ; - $value = $value->[LOW]; - } - - my $available = MAX32 - $self->[LOW] ; - - if ($value > $available) { - ++ $self->[HIGH] ; - $self->[LOW] = $value - $available - 1; - } - else { - $self->[LOW] += $value ; - } - - } - - sub subtract - { - my $self = shift; - my $value = shift; - - if (ref $value eq 'U64') { - - if ($value->[HIGH]) { - die "unsupport subtract option" - if $self->[HIGH] == 0 || - $value->[HIGH] > $self->[HIGH] ; - - $self->[HIGH] -= $value->[HIGH] ; + for my $entry ( @{ $self->{detail} } ) + { + if ( $from_offset == $entry->{from} && $to_offset == $entry->{to} && $crc == $entry->{crc}) + { + $self->{duplicate_count} ++; + print "$hdrId: '$name' matches with $entry->{str}\n" } + elsif ( ($from_offset >= $entry->{from} && $from_offset <= $entry->{to} ) || + ($to_offset >= $entry->{from} && $to_offset <= $entry->{to} ) + ) + { + # die "overlap!" + # push @{ $self->{overlap} }, + $self->{overlap_count} ++; - $value = $value->[LOW] ; + print "$hdrId: '$name' overlaps with $entry->{str}\n"; + } } - if ($value > $self->[LOW]) { - -- $self->[HIGH] ; - $self->[LOW] = MAX32 - $value + $self->[LOW] + 1; - } - else { - $self->[LOW] -= $value; - } + # warn "ADD $from_offset $to_offset $hdrId: $name\n"; + push @{ $self->{detail} }, + { + from => $from_offset, + to => $to_offset, + length => $extras->{CompressedLength}, + id => $hdrId, + crc => $crc, + name => $name, + str => "$hdrId: '$name'", + } ; } - sub rshift + sub short_summary { my $self = shift; - my $count = shift; - for (1 .. $count) + my $duplicates = $self->{duplicate_count}; + push @Messages, "$duplicates duplicate entries" + if $duplicates; + + my $overlaps = $self->{overlap_count}; + push @Messages, "$overlaps overlap entries" + if $overlaps; + } + + sub summary + { + my $self = shift ; + + # disable for now + return; + + print "\n"; + for my $entry ( sort { $a->{from}->cmp($b->{from}) } @{ $self->{detail} } ) + { - $self->[LOW] >>= 1; - $self->[LOW] |= 0x80000000 - if $self->[HIGH] & 1 ; - $self->[HIGH] >>= 1; + my $from_offset = $entry->{from}; + my $to_offset = $entry->{to}; + my $hdrId = $entry->{id}; + my $name = $entry->{name}; + print "$hdrId\t" . $entry->{from} . "\n"; + + } } - sub is64bit - { - my $self = shift; - return $self->[HIGH] > 0 ; - } - - sub getPacked_V64 - { - my $self = shift; - - return pack "V V", @$self ; - } - - sub getPacked_V32 - { - my $self = shift; - - return pack "V", $self->[LOW] ; - } - - sub pack_V64 - { - my $low = shift; - - return pack "V V", $low, 0; - } - - sub max32 - { - my $self = shift; - return $self->[HIGH] == 0 && $self->[LOW] == MAX32; - } - - sub stringify - { - my $self = shift; - - return "High [$self->[HIGH]], Low [$self->[LOW]]"; - } - - sub equal - { - my $self = shift; - my $other = shift; - - return $self->[LOW] == $other->[LOW] && - $self->[HIGH] == $other->[HIGH] ; - } - - sub gt - { - my $self = shift; - my $other = shift; - - return $self->cmp($other) > 0 ; - } - - sub cmp - { - my $self = shift; - my $other = shift ; - - if ($self->[LOW] == $other->[LOW]) { - return $self->[HIGH] - $other->[HIGH] ; - } - else { - return $self->[LOW] - $other->[LOW] ; - } - } - - sub nibbles - { - my @nibbles = ( - [ 16 => HI_1 * 0x10000000 ], - [ 15 => HI_1 * 0x1000000 ], - [ 14 => HI_1 * 0x100000 ], - [ 13 => HI_1 * 0x10000 ], - [ 12 => HI_1 * 0x1000 ], - [ 11 => HI_1 * 0x100 ], - [ 10 => HI_1 * 0x10 ], - [ 9 => HI_1 * 0x1 ], - - [ 8 => 0x10000000 ], - [ 7 => 0x1000000 ], - [ 6 => 0x100000 ], - [ 5 => 0x10000 ], - [ 4 => 0x1000 ], - [ 3 => 0x100 ], - [ 2 => 0x10 ], - [ 1 => 0x1 ], - ); - my $value = shift ; - - for my $pair (@nibbles) - { - my ($count, $limit) = @{ $pair }; - - return $count - if $value >= $limit ; - } - - } } sub Usage { + if (@_) + { + warn "$_\n" + for @_ ; + warn "\n"; + } + die < for details). +=over 5 + +=item the offset into the zip file where the item is located. + +=item a textual representation for the item. + +=item an optional hex dump of the item. + +=back + + +The program assumes a prior understanding of the internal structure of Zip +files. You should have a copy of the Zip +L file +at hand to help understand the output from this program. + +=head2 Default Behaviour + +By default the program expects to be given a well-formed zip file. It will +navigate the Zip file by first parsing the zip central directory at the end +of the file. If that is found, it will then walk through the zip records +starting at the beginning of the file. Any badly formed zip data structures +encountered are likely to terminate the program. + +If the program finds any structural problems with the zip file it will +print a summary at the end of the output report. The set of error cases +reported is very much a work in progress, so don't rely on this feature to +find all the possible errors in a zip file. If you have suggestions for +use-cases where this could be enhanced please consider creating an +enhancement request (see L<"SUPPORT">). + +Date/time fields are found in zip files are displayed in local time. Use +the C<--utc> option to display these fields in Coordinated Universal Time +(UTC). + +=head2 Scan-Mode + +If you do have a potentially corrupt zip file, particulatly where the +central directory at the end of the file is absent/incomplete, you can try +usng the C<--scan> option to search for zip records that are still present. + +When Scan-mode is enabled, the program will walk the zip file from the +start, blindly looking for the 4-byte signatures that preceed each of the +zip data structures. If it finds any of the recognised signatures it will +attempt to dump the associated zip record. For very large zip files, this +operation can take a long time to run. + +Note that the 4-byte signatures used in zip files can sometimes match with +random data stored in the zip file, so care is needed interpreting the +results. =head2 OPTIONS =over 5 -=item -v - -Enable Verbose mode - =item -h Display help +=item --redact + +Obscure filenames in the output. Handy for the use case where the zip files +contains sensitive data that cannot be shared. + +=item --scan + +Walk the zip file loking for possible zip records. Can be error-prone. +See L<"Scan-Mode"> + +=item --utc + +By default, date/time fields are displayed in local time. Use this option +to display them in in Coordinated Universal Time (UTC). + +=item -v + +Enable Verbose mode. See L<"Verbose Output">. + +=item --version + +Display version number of the program and exit. + =back +=head2 Default Output By default zipdetails will output the details of the zip file in three columns. @@ -2144,14 +2537,111 @@ This contains a textual description of the field. =item Column 3 If the field contains a numeric value it will be displayed in hex. Zip -stored most numbers in little-endian format - the value displayed will have +stores most numbers in little-endian format - the value displayed will have the little-endian encoding removed. Next, is an optional description of what the value means. - =back +For example, assuming you have a zip file with two entries, like this + + $ unzip -l test.zip + Archive: setup/test.zip + Length Date Time Name + --------- ---------- ----- ---- + 6 2021-03-23 18:52 latters.txt + 6 2021-03-23 18:52 numbers.txt + --------- ------- + 12 2 files + +Running C will gives this output + + $ zipdetails test.zip + + 0000 LOCAL HEADER #1 04034B50 + 0004 Extract Zip Spec 0A '1.0' + 0005 Extract OS 00 'MS-DOS' + 0006 General Purpose Flag 0000 + 0008 Compression Method 0000 'Stored' + 000A Last Mod Time 5277983D 'Tue Mar 23 19:01:58 2021' + 000E CRC 0F8A149C + 0012 Compressed Length 00000006 + 0016 Uncompressed Length 00000006 + 001A Filename Length 000B + 001C Extra Length 0000 + 001E Filename 'letters.txt' + 0029 PAYLOAD abcde. + + 002F LOCAL HEADER #2 04034B50 + 0033 Extract Zip Spec 0A '1.0' + 0034 Extract OS 00 'MS-DOS' + 0035 General Purpose Flag 0000 + 0037 Compression Method 0000 'Stored' + 0039 Last Mod Time 5277983D 'Tue Mar 23 19:01:58 2021' + 003D CRC 261DAFE6 + 0041 Compressed Length 00000006 + 0045 Uncompressed Length 00000006 + 0049 Filename Length 000B + 004B Extra Length 0000 + 004D Filename 'numbers.txt' + 0058 PAYLOAD 12345. + + 005E CENTRAL HEADER #1 02014B50 + 0062 Created Zip Spec 1E '3.0' + 0063 Created OS 03 'Unix' + 0064 Extract Zip Spec 0A '1.0' + 0065 Extract OS 00 'MS-DOS' + 0066 General Purpose Flag 0000 + 0068 Compression Method 0000 'Stored' + 006A Last Mod Time 5277983D 'Tue Mar 23 19:01:58 2021' + 006E CRC 0F8A149C + 0072 Compressed Length 00000006 + 0076 Uncompressed Length 00000006 + 007A Filename Length 000B + 007C Extra Length 0000 + 007E Comment Length 0000 + 0080 Disk Start 0000 + 0082 Int File Attributes 0001 + [Bit 0] 1 Text Data + 0084 Ext File Attributes 81B40000 + 0088 Local Header Offset 00000000 + 008C Filename 'letters.txt' + + 0097 CENTRAL HEADER #2 02014B50 + 009B Created Zip Spec 1E '3.0' + 009C Created OS 03 'Unix' + 009D Extract Zip Spec 0A '1.0' + 009E Extract OS 00 'MS-DOS' + 009F General Purpose Flag 0000 + 00A1 Compression Method 0000 'Stored' + 00A3 Last Mod Time 5277983D 'Tue Mar 23 19:01:58 2021' + 00A7 CRC 261DAFE6 + 00AB Compressed Length 00000006 + 00AF Uncompressed Length 00000006 + 00B3 Filename Length 000B + 00B5 Extra Length 0000 + 00B7 Comment Length 0000 + 00B9 Disk Start 0000 + 00BB Int File Attributes 0001 + [Bit 0] 1 Text Data + 00BD Ext File Attributes 81B40000 + 00C1 Local Header Offset 0000002F + 00C5 Filename 'numbers.txt' + + 00D0 END CENTRAL HEADER 06054B50 + 00D4 Number of this disk 0000 + 00D6 Central Dir Disk no 0000 + 00D8 Entries in this disk 0002 + 00DA Total Entries 0002 + 00DC Size of Central Dir 00000072 + 00E0 Offset to Central Dir 0000005E + 00E4 Comment Length 0000 + Done + + +=head2 Verbose Output + If the C<-v> option is present, column 1 is expanded to include =over 5 @@ -2162,7 +2652,7 @@ The offset from the start of the file in hex. =item * -The length of the filed in hex. +The length of the field in hex. =item * @@ -2171,36 +2661,143 @@ file. =back +Here is the same zip file dumped using the C C<-v> option: + + $ zipdetails -v test.zip + + 0000 0004 50 4B 03 04 LOCAL HEADER #1 04034B50 + 0004 0001 0A Extract Zip Spec 0A '1.0' + 0005 0001 00 Extract OS 00 'MS-DOS' + 0006 0002 00 00 General Purpose Flag 0000 + 0008 0002 00 00 Compression Method 0000 'Stored' + 000A 0004 3D 98 77 52 Last Mod Time 5277983D 'Tue Mar 23 19:01:58 2021' + 000E 0004 9C 14 8A 0F CRC 0F8A149C + 0012 0004 06 00 00 00 Compressed Length 00000006 + 0016 0004 06 00 00 00 Uncompressed Length 00000006 + 001A 0002 0B 00 Filename Length 000B + 001C 0002 00 00 Extra Length 0000 + 001E 000B 6C 65 74 74 Filename 'letters.txt' + 65 72 73 2E + 74 78 74 + 0029 0006 61 62 63 64 PAYLOAD abcde. + 65 0A + + 002F 0004 50 4B 03 04 LOCAL HEADER #2 04034B50 + 0033 0001 0A Extract Zip Spec 0A '1.0' + 0034 0001 00 Extract OS 00 'MS-DOS' + 0035 0002 00 00 General Purpose Flag 0000 + 0037 0002 00 00 Compression Method 0000 'Stored' + 0039 0004 3D 98 77 52 Last Mod Time 5277983D 'Tue Mar 23 19:01:58 2021' + 003D 0004 E6 AF 1D 26 CRC 261DAFE6 + 0041 0004 06 00 00 00 Compressed Length 00000006 + 0045 0004 06 00 00 00 Uncompressed Length 00000006 + 0049 0002 0B 00 Filename Length 000B + 004B 0002 00 00 Extra Length 0000 + 004D 000B 6E 75 6D 62 Filename 'numbers.txt' + 65 72 73 2E + 74 78 74 + 0058 0006 31 32 33 34 PAYLOAD 12345. + 35 0A + + 005E 0004 50 4B 01 02 CENTRAL HEADER #1 02014B50 + 0062 0001 1E Created Zip Spec 1E '3.0' + 0063 0001 03 Created OS 03 'Unix' + 0064 0001 0A Extract Zip Spec 0A '1.0' + 0065 0001 00 Extract OS 00 'MS-DOS' + 0066 0002 00 00 General Purpose Flag 0000 + 0068 0002 00 00 Compression Method 0000 'Stored' + 006A 0004 3D 98 77 52 Last Mod Time 5277983D 'Tue Mar 23 19:01:58 2021' + 006E 0004 9C 14 8A 0F CRC 0F8A149C + 0072 0004 06 00 00 00 Compressed Length 00000006 + 0076 0004 06 00 00 00 Uncompressed Length 00000006 + 007A 0002 0B 00 Filename Length 000B + 007C 0002 00 00 Extra Length 0000 + 007E 0002 00 00 Comment Length 0000 + 0080 0002 00 00 Disk Start 0000 + 0082 0002 01 00 Int File Attributes 0001 + [Bit 0] 1 Text Data + 0084 0004 00 00 B4 81 Ext File Attributes 81B40000 + 0088 0004 00 00 00 00 Local Header Offset 00000000 + 008C 000B 6C 65 74 74 Filename 'letters.txt' + 65 72 73 2E + 74 78 74 + + 0097 0004 50 4B 01 02 CENTRAL HEADER #2 02014B50 + 009B 0001 1E Created Zip Spec 1E '3.0' + 009C 0001 03 Created OS 03 'Unix' + 009D 0001 0A Extract Zip Spec 0A '1.0' + 009E 0001 00 Extract OS 00 'MS-DOS' + 009F 0002 00 00 General Purpose Flag 0000 + 00A1 0002 00 00 Compression Method 0000 'Stored' + 00A3 0004 3D 98 77 52 Last Mod Time 5277983D 'Tue Mar 23 19:01:58 2021' + 00A7 0004 E6 AF 1D 26 CRC 261DAFE6 + 00AB 0004 06 00 00 00 Compressed Length 00000006 + 00AF 0004 06 00 00 00 Uncompressed Length 00000006 + 00B3 0002 0B 00 Filename Length 000B + 00B5 0002 00 00 Extra Length 0000 + 00B7 0002 00 00 Comment Length 0000 + 00B9 0002 00 00 Disk Start 0000 + 00BB 0002 01 00 Int File Attributes 0001 + [Bit 0] 1 Text Data + 00BD 0004 00 00 B4 81 Ext File Attributes 81B40000 + 00C1 0004 2F 00 00 00 Local Header Offset 0000002F + 00C5 000B 6E 75 6D 62 Filename 'numbers.txt' + 65 72 73 2E + 74 78 74 + + 00D0 0004 50 4B 05 06 END CENTRAL HEADER 06054B50 + 00D4 0002 00 00 Number of this disk 0000 + 00D6 0002 00 00 Central Dir Disk no 0000 + 00D8 0002 02 00 Entries in this disk 0002 + 00DA 0002 02 00 Total Entries 0002 + 00DC 0004 72 00 00 00 Size of Central Dir 00000072 + 00E0 0004 5E 00 00 00 Offset to Central Dir 0000005E + 00E4 0002 00 00 Comment Length 0000 + Done + +=head1 LIMITATIONS + +The following zip file features are not supported by this program: + +=over 5 + +=item * + +Multi-part archives. + +=item * + +The strong encryption features defined in the L document. + +=back =head1 TODO -Error handling is still a work in progress. If the program encounters a -problem reading a zip file it is likely to terminate with an unhelpful -error message. +Error handling is a work in progress. If the program encounters a problem +reading a zip file it is likely to terminate with an unhelpful error +message. =head1 SUPPORT General feedback/questions/bug reports should be sent to -L (preferred) or -L. +L. =head1 SEE ALSO -The primary reference for Zip files is the "appnote" document available at -L. +The primary reference for Zip files is +L. An alternative reference is the Info-Zip appnote. This is available from L +For details of WinZip AES encryption see L. The C program that comes with the info-zip distribution (L) can also display details of the structure of a zip file. -See also L, L, -L. - =head1 AUTHOR @@ -2208,8 +2805,7 @@ Paul Marquess F. =head1 COPYRIGHT -Copyright (c) 2011-2019 Paul Marquess. All rights reserved. +Copyright (c) 2011-2022 Paul Marquess. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. - diff --git a/msys2/usr/bin/cp.exe b/msys2/usr/bin/cp.exe index dff02f3ee..3658198bd 100644 Binary files a/msys2/usr/bin/cp.exe and b/msys2/usr/bin/cp.exe differ diff --git a/msys2/usr/bin/csplit.exe b/msys2/usr/bin/csplit.exe index 222dab1e7..b96747d5e 100644 Binary files a/msys2/usr/bin/csplit.exe and b/msys2/usr/bin/csplit.exe differ diff --git a/msys2/usr/bin/curl.exe b/msys2/usr/bin/curl.exe index ef9895299..ee2ca13e4 100644 Binary files a/msys2/usr/bin/curl.exe and b/msys2/usr/bin/curl.exe differ diff --git a/msys2/usr/bin/cut.exe b/msys2/usr/bin/cut.exe index f07370419..8706f824b 100644 Binary files a/msys2/usr/bin/cut.exe and b/msys2/usr/bin/cut.exe differ diff --git a/msys2/usr/bin/cygcheck.exe b/msys2/usr/bin/cygcheck.exe index 25317472c..2d693d458 100644 Binary files a/msys2/usr/bin/cygcheck.exe and b/msys2/usr/bin/cygcheck.exe differ diff --git a/msys2/usr/bin/cygpath.exe b/msys2/usr/bin/cygpath.exe index cc3161484..6b33c60da 100644 Binary files a/msys2/usr/bin/cygpath.exe and b/msys2/usr/bin/cygpath.exe differ diff --git a/msys2/usr/bin/cygwin-console-helper.exe b/msys2/usr/bin/cygwin-console-helper.exe index ae12d4dfe..8d772e00f 100644 Binary files a/msys2/usr/bin/cygwin-console-helper.exe and b/msys2/usr/bin/cygwin-console-helper.exe differ diff --git a/msys2/usr/bin/dash.exe b/msys2/usr/bin/dash.exe index bc12bd72e..2474c511d 100644 Binary files a/msys2/usr/bin/dash.exe and b/msys2/usr/bin/dash.exe differ diff --git a/msys2/usr/bin/date.exe b/msys2/usr/bin/date.exe index d4d4767c0..098d7f113 100644 Binary files a/msys2/usr/bin/date.exe and b/msys2/usr/bin/date.exe differ diff --git a/msys2/usr/bin/db_archive.exe b/msys2/usr/bin/db_archive.exe index e9078f96d..5f85d6047 100644 Binary files a/msys2/usr/bin/db_archive.exe and b/msys2/usr/bin/db_archive.exe differ diff --git a/msys2/usr/bin/db_checkpoint.exe b/msys2/usr/bin/db_checkpoint.exe index d0373bf6d..68c6e3cf8 100644 Binary files a/msys2/usr/bin/db_checkpoint.exe and b/msys2/usr/bin/db_checkpoint.exe differ diff --git a/msys2/usr/bin/db_deadlock.exe b/msys2/usr/bin/db_deadlock.exe index c1cb6dfa4..dc20f719f 100644 Binary files a/msys2/usr/bin/db_deadlock.exe and b/msys2/usr/bin/db_deadlock.exe differ diff --git a/msys2/usr/bin/db_dump.exe b/msys2/usr/bin/db_dump.exe index 0b9996b7a..e6b833b58 100644 Binary files a/msys2/usr/bin/db_dump.exe and b/msys2/usr/bin/db_dump.exe differ diff --git a/msys2/usr/bin/db_hotbackup.exe b/msys2/usr/bin/db_hotbackup.exe index 60bf4174b..4af552920 100644 Binary files a/msys2/usr/bin/db_hotbackup.exe and b/msys2/usr/bin/db_hotbackup.exe differ diff --git a/msys2/usr/bin/db_load.exe b/msys2/usr/bin/db_load.exe index 220feb9ae..ff0b31200 100644 Binary files a/msys2/usr/bin/db_load.exe and b/msys2/usr/bin/db_load.exe differ diff --git a/msys2/usr/bin/db_log_verify.exe b/msys2/usr/bin/db_log_verify.exe index 09a8d911d..dc9986a70 100644 Binary files a/msys2/usr/bin/db_log_verify.exe and b/msys2/usr/bin/db_log_verify.exe differ diff --git a/msys2/usr/bin/db_printlog.exe b/msys2/usr/bin/db_printlog.exe index 04e9b0cbc..9423e0fa2 100644 Binary files a/msys2/usr/bin/db_printlog.exe and b/msys2/usr/bin/db_printlog.exe differ diff --git a/msys2/usr/bin/db_recover.exe b/msys2/usr/bin/db_recover.exe index d6bcf740d..cec63ad57 100644 Binary files a/msys2/usr/bin/db_recover.exe and b/msys2/usr/bin/db_recover.exe differ diff --git a/msys2/usr/bin/db_replicate.exe b/msys2/usr/bin/db_replicate.exe index 4d176507d..e69151f76 100644 Binary files a/msys2/usr/bin/db_replicate.exe and b/msys2/usr/bin/db_replicate.exe differ diff --git a/msys2/usr/bin/db_stat.exe b/msys2/usr/bin/db_stat.exe index f3ba505cd..82c56b213 100644 Binary files a/msys2/usr/bin/db_stat.exe and b/msys2/usr/bin/db_stat.exe differ diff --git a/msys2/usr/bin/db_tuner.exe b/msys2/usr/bin/db_tuner.exe index 3d8d56705..4dce21459 100644 Binary files a/msys2/usr/bin/db_tuner.exe and b/msys2/usr/bin/db_tuner.exe differ diff --git a/msys2/usr/bin/db_upgrade.exe b/msys2/usr/bin/db_upgrade.exe index 5d94d7d36..7734a6c43 100644 Binary files a/msys2/usr/bin/db_upgrade.exe and b/msys2/usr/bin/db_upgrade.exe differ diff --git a/msys2/usr/bin/db_verify.exe b/msys2/usr/bin/db_verify.exe index ac96d2dc0..c1ee4da20 100644 Binary files a/msys2/usr/bin/db_verify.exe and b/msys2/usr/bin/db_verify.exe differ diff --git a/msys2/usr/bin/dd.exe b/msys2/usr/bin/dd.exe index 276279848..cdde505f1 100644 Binary files a/msys2/usr/bin/dd.exe and b/msys2/usr/bin/dd.exe differ diff --git a/msys2/usr/bin/dep-search b/msys2/usr/bin/dep-search deleted file mode 100644 index 6a51e85b6..000000000 --- a/msys2/usr/bin/dep-search +++ /dev/null @@ -1,230 +0,0 @@ -#!/usr/bin/env bash -# -# dep-search - utility for searching library dependencies -# of Windows executables and shared libraries. -# -# The BSD 3-Clause License. https://www.opensource.org/licenses/BSD-3-Clause -# -# This file is part of 'MSYS2' project. -# Copyright (c) 2014 by Alexpux (alexpux doggy gmail dotty com) -# All rights reserved. -# -# Project: MSYS2 ( https://sourceforge.net/projects/msys2/ ) -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# - Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# - Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the distribution. -# - Neither the name of the 'MinGW-W64' nor the names of its contributors may -# be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. -# IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE -# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# - -# ************************************************************************** - -# dep-search uses quite a few external programs during its execution. You -# need to have at least the following installed for dep-search to function: -# binutils, grep, sed -# - -declare -r depsearch_name='dep-search' -declare -r depsearch_version='0.1' -_search_dir=$(pwd) -_search_file= -_search_pattern= -_search_mode=all -_prog_output=plain -_run_mode=dir -_verbose=0 -export LC_ALL=C - -### SUBROUTINES ### - -plain() { - local mesg=$1; shift - printf "${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2 -} - -print_msg0() { - local mesg=$1; shift - printf "${YELLOW}=> ${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2 -} - -print_msg1() { - local mesg=$1; shift - printf "${GREEN}==> ${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2 -} - -print_msg2() { - local mesg=$1; shift - printf "${BLUE} ->${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2 -} - -print_error() { - local mesg=$1; shift - printf "${RED}==> ERROR:${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2 -} - -die() { - # $1 - message to die - printf "$1" - exit 1 -} - -usage() { - printf "$depsearch_name (MSYS2) %s\n" "$depsearch_version" - echo - printf -- "Usage: %s [options]\n" "$0" - echo - printf -- "Options:\n" - printf -- " --directory= Search dependencies in specified directory\n" - printf -- " --file= Search dependencies for specified executable\n" - printf -- " --library= Pattern of library that need to be resolved as dependency\n" - printf -- " --output=[list|plain] Output search result for human(plain) or as list of executables.\n" - printf -- " --verbose Output more information.\n" - echo -} - -version() { - printf "$depsearch_name (MSYS2) %s\n" "$depsearch_version" - printf -- "Copyright (c) 2014 by Alexpux (alexpux doggy gmail dotty com).\n" -} - -process_binary() { - # $1 - windows PE file - # $2 - search pattern - # process all libraries needed by the binary - if [[ -n $2 ]]; then - local _lower_pattern=$(echo $2 | tr 'A-Z' 'a-z') - fi - local _sofile= - for _sofile in $(LC_ALL=C objdump -x "$1" 2>/dev/null | sed -nr 's/.*DLL Name: (.*).*/\1/p') - do - if [[ -n $2 ]]; then - local _lower_sofile=$(echo $_sofile | tr 'A-Z' 'a-z') - if [ "$(echo $_lower_sofile | grep -Eio $_lower_pattern)" = "$_lower_pattern" ]; then - if [[ $_verbose = 1 ]]; then - print_msg2 "$1: $_sofile" - else - print_msg2 "$(basename $1): $_sofile" - fi - fi - else - print_msg2 "$_sofile" - fi - done -} - -process_directory() { - # $1 - derectory to search - # $2 - search pattern - local _file_list=$(find "$1" -type f -name "*.dll" -o -name "*.exe" -o -name "*.so" -o -name "*.pyd") - local _it= - if [[ ${#_file_list[@]} = 0 ]]; then - print_msg1 "There are no executables or dll's in $1." - else - for _it in ${_file_list[@]}; do - if [[ $_verbose = 1 ]]; then - print_msg1 "Processing $_it" - fi - process_binary "$_it" "$2" - done - fi -} - -# check if messages are to be printed using color -unset ALL_OFF BOLD BLUE GREEN RED YELLOW -if [[ -t 2 && ! $USE_COLOR = "n" ]]; then - # prefer terminal safe colored and bold text when tput is supported - if /usr/bin/tput setaf 0 &>/dev/null; then - ALL_OFF="$(/usr/bin/tput sgr0)" - BOLD="$(/usr/bin/tput bold)" - BLUE="${BOLD}$(/usr/bin/tput setaf 4)" - GREEN="${BOLD}$(/usr/bin/tput setaf 2)" - RED="${BOLD}$(/usr/bin/tput setaf 1)" - YELLOW="${BOLD}$(/usr/bin/tput setaf 3)" - else - ALL_OFF="\e[1;0m" - BOLD="\e[1;1m" - BLUE="${BOLD}\e[1;34m" - GREEN="${BOLD}\e[1;32m" - RED="${BOLD}\e[1;31m" - YELLOW="${BOLD}\e[1;33m" - fi -fi -readonly ALL_OFF BOLD BLUE GREEN RED YELLOW - -if [[ $1 = -@(h|-help) ]]; then - usage - exit 0 -elif [[ $1 = -@(V|-version) ]]; then - version - exit 0 -fi - -# parse arguments -while [[ $# > 0 ]]; do - case $1 in - --directory=*) - _search_dir=${1/--directory=/} - _run_mode=dir - if [[ ! -d $_search_dir ]]; then - print_error "Search directory doesn't exists" - exit 1 - fi - ;; - --file=*) - _search_file=${1/--file=/} - _run_mode=file - if [[ ! -f $_search_file ]]; then - print_error "File $_search_file doesn't exists" - exit 1 - fi - ;; - --library=*) - _search_pattern=${1/--library=/} - _search_mode=single - ;; - --output=*) - _prog_output=${1/--output=/} - ;; - --verbose) - _verbose=1 - ;; - --help) usage ;; - *) - die "bad command line: \"$1\". terminate." - ;; - esac - shift -done - -_ext_msg= -if [[ -n $_search_pattern ]]; then - _ext_msg="on $_search_pattern" -fi - -if [[ "$_run_mode" = "file" ]]; then - print_msg0 "Scanning file %s for dependencies %s" "$_search_file" "$_ext_msg" - process_binary "$_search_file" "$_search_pattern" -else - print_msg0 "Scanning directory %s for dependencies %s" "$_search_dir" "$_ext_msg" - process_directory "$_search_dir" "$_search_pattern" -fi - -exit 0 \ No newline at end of file diff --git a/msys2/usr/bin/df.exe b/msys2/usr/bin/df.exe index 3ded1deed..8781ece4b 100644 Binary files a/msys2/usr/bin/df.exe and b/msys2/usr/bin/df.exe differ diff --git a/msys2/usr/bin/dir.exe b/msys2/usr/bin/dir.exe index 928725c8c..63d185bc2 100644 Binary files a/msys2/usr/bin/dir.exe and b/msys2/usr/bin/dir.exe differ diff --git a/msys2/usr/bin/dircolors.exe b/msys2/usr/bin/dircolors.exe index d3b4d311f..30aec2efd 100644 Binary files a/msys2/usr/bin/dircolors.exe and b/msys2/usr/bin/dircolors.exe differ diff --git a/msys2/usr/bin/dirmngr-client.exe b/msys2/usr/bin/dirmngr-client.exe index d10c5cab2..c613b4fcc 100644 Binary files a/msys2/usr/bin/dirmngr-client.exe and b/msys2/usr/bin/dirmngr-client.exe differ diff --git a/msys2/usr/bin/dirmngr.exe b/msys2/usr/bin/dirmngr.exe index 297b8e10f..7e2141f19 100644 Binary files a/msys2/usr/bin/dirmngr.exe and b/msys2/usr/bin/dirmngr.exe differ diff --git a/msys2/usr/bin/dirname.exe b/msys2/usr/bin/dirname.exe index dff4029f5..6ebcda3dd 100644 Binary files a/msys2/usr/bin/dirname.exe and b/msys2/usr/bin/dirname.exe differ diff --git a/msys2/usr/bin/dnsdomainname.exe b/msys2/usr/bin/dnsdomainname.exe index 48ed10f7e..af5b18464 100644 Binary files a/msys2/usr/bin/dnsdomainname.exe and b/msys2/usr/bin/dnsdomainname.exe differ diff --git a/msys2/usr/bin/du.exe b/msys2/usr/bin/du.exe index 29ec335b3..9f8738e6a 100644 Binary files a/msys2/usr/bin/du.exe and b/msys2/usr/bin/du.exe differ diff --git a/msys2/usr/bin/dumper.exe b/msys2/usr/bin/dumper.exe index 558782c75..1610069b5 100644 Binary files a/msys2/usr/bin/dumper.exe and b/msys2/usr/bin/dumper.exe differ diff --git a/msys2/usr/bin/dumpsexp.exe b/msys2/usr/bin/dumpsexp.exe index 4f542a6b7..1a485ea7c 100644 Binary files a/msys2/usr/bin/dumpsexp.exe and b/msys2/usr/bin/dumpsexp.exe differ diff --git a/msys2/usr/bin/echo.exe b/msys2/usr/bin/echo.exe index fdbdc4af7..a70305160 100644 Binary files a/msys2/usr/bin/echo.exe and b/msys2/usr/bin/echo.exe differ diff --git a/msys2/usr/bin/env.exe b/msys2/usr/bin/env.exe index f9610c869..d3408cbf8 100644 Binary files a/msys2/usr/bin/env.exe and b/msys2/usr/bin/env.exe differ diff --git a/msys2/usr/bin/envsubst.exe b/msys2/usr/bin/envsubst.exe index e64592c13..7f38a37d1 100644 Binary files a/msys2/usr/bin/envsubst.exe and b/msys2/usr/bin/envsubst.exe differ diff --git a/msys2/usr/bin/expand.exe b/msys2/usr/bin/expand.exe index 6b8900ce8..11e9b9f8c 100644 Binary files a/msys2/usr/bin/expand.exe and b/msys2/usr/bin/expand.exe differ diff --git a/msys2/usr/bin/expr.exe b/msys2/usr/bin/expr.exe index 9a99cdbc8..74ea339a3 100644 Binary files a/msys2/usr/bin/expr.exe and b/msys2/usr/bin/expr.exe differ diff --git a/msys2/usr/bin/factor.exe b/msys2/usr/bin/factor.exe index 77f72e99c..0f7a5677d 100644 Binary files a/msys2/usr/bin/factor.exe and b/msys2/usr/bin/factor.exe differ diff --git a/msys2/usr/bin/false.exe b/msys2/usr/bin/false.exe index 17ed4d3a6..39b03b688 100644 Binary files a/msys2/usr/bin/false.exe and b/msys2/usr/bin/false.exe differ diff --git a/msys2/usr/bin/fdisk.exe b/msys2/usr/bin/fdisk.exe index 0bf09bae9..7db5838e8 100644 Binary files a/msys2/usr/bin/fdisk.exe and b/msys2/usr/bin/fdisk.exe differ diff --git a/msys2/usr/bin/file.exe b/msys2/usr/bin/file.exe index dfe2304b5..fe5f0a1e1 100644 Binary files a/msys2/usr/bin/file.exe and b/msys2/usr/bin/file.exe differ diff --git a/msys2/usr/bin/find.exe b/msys2/usr/bin/find.exe index 4d51a2e67..7ec505a5a 100644 Binary files a/msys2/usr/bin/find.exe and b/msys2/usr/bin/find.exe differ diff --git a/msys2/usr/bin/findfs.exe b/msys2/usr/bin/findfs.exe index c5e075a61..821e63633 100644 Binary files a/msys2/usr/bin/findfs.exe and b/msys2/usr/bin/findfs.exe differ diff --git a/msys2/usr/bin/flock.exe b/msys2/usr/bin/flock.exe index 5e1d26ddb..d752896f1 100644 Binary files a/msys2/usr/bin/flock.exe and b/msys2/usr/bin/flock.exe differ diff --git a/msys2/usr/bin/fmt.exe b/msys2/usr/bin/fmt.exe index 7c9d48314..482ec49d6 100644 Binary files a/msys2/usr/bin/fmt.exe and b/msys2/usr/bin/fmt.exe differ diff --git a/msys2/usr/bin/fold.exe b/msys2/usr/bin/fold.exe index e243adf22..9ec09600e 100644 Binary files a/msys2/usr/bin/fold.exe and b/msys2/usr/bin/fold.exe differ diff --git a/msys2/usr/bin/fsck.cramfs.exe b/msys2/usr/bin/fsck.cramfs.exe index f4c338520..27a33fda6 100644 Binary files a/msys2/usr/bin/fsck.cramfs.exe and b/msys2/usr/bin/fsck.cramfs.exe differ diff --git a/msys2/usr/bin/fsck.minix.exe b/msys2/usr/bin/fsck.minix.exe index 67342bbb2..223479b77 100644 Binary files a/msys2/usr/bin/fsck.minix.exe and b/msys2/usr/bin/fsck.minix.exe differ diff --git a/msys2/usr/bin/ftp.exe b/msys2/usr/bin/ftp.exe index d4edc82fd..f79693011 100644 Binary files a/msys2/usr/bin/ftp.exe and b/msys2/usr/bin/ftp.exe differ diff --git a/msys2/usr/bin/gapplication.exe b/msys2/usr/bin/gapplication.exe deleted file mode 100644 index b5f27bbdf..000000000 Binary files a/msys2/usr/bin/gapplication.exe and /dev/null differ diff --git a/msys2/usr/bin/gawk-5.1.0.exe b/msys2/usr/bin/gawk-5.1.0.exe deleted file mode 100644 index 68fb6c7fe..000000000 Binary files a/msys2/usr/bin/gawk-5.1.0.exe and /dev/null differ diff --git a/msys2/usr/bin/gawk-5.2.2.exe b/msys2/usr/bin/gawk-5.2.2.exe new file mode 100644 index 000000000..911ee5797 Binary files /dev/null and b/msys2/usr/bin/gawk-5.2.2.exe differ diff --git a/msys2/usr/bin/gawk.exe b/msys2/usr/bin/gawk.exe index 68fb6c7fe..911ee5797 100644 Binary files a/msys2/usr/bin/gawk.exe and b/msys2/usr/bin/gawk.exe differ diff --git a/msys2/usr/bin/gawkbug b/msys2/usr/bin/gawkbug new file mode 100644 index 000000000..e98484df2 --- /dev/null +++ b/msys2/usr/bin/gawkbug @@ -0,0 +1,289 @@ +#!/bin/sh - +# +# gawkbug - create a bug report and mail it to the bug address +# +# All mail defaults to bug-gawk@gnu.org. Unlike the original bashbug +# script, we don't differentiate on the release status. +# +# Copyright (C) 1996-2022 Free Software Foundation, Inc. +# +# 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 3 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 . + +# +# configuration section: +# these variables are filled in by the make target in Makefile +# +MACHINE="x86_64" +OS="msys" +CC="gcc" +CFLAGS="-march=nocona -msahf -mtune=generic -O2 -pipe -DNDEBUG" +VERSION="5.2.2" +MACHTYPE="x86_64-pc-msys" + +PATH=/bin:/usr/bin:/usr/local/bin:$PATH +export PATH + +# Check if TMPDIR is set, default to /tmp +: ${TMPDIR:=/tmp} + +#Securely create a temporary directory for the temporary files +TEMPDIR=$TMPDIR/gbug.$$ +(umask 077 && mkdir "$TEMPDIR") || { + echo "$0: could not create temporary directory" >&2 + exit 1 +} + +TEMPFILE1=$TEMPDIR/gbug1 +TEMPFILE2=$TEMPDIR/gbug2 + +USAGE="Usage: $0 [--help] [--version] [bug-report-email-address]" +VERSTR="GNU gawkbug, version ${VERSION}" + +do_help= do_version= + +while [ $# -gt 0 ] +do + case "$1" in + --help) shift ; do_help=y ;; + --version) shift ; do_version=y ;; + --) shift ; break ;; + -*) echo "gawkbug: ${1}: invalid option" >&2 + echo "$USAGE" >&2 + exit 2 ;; + *) break ;; + esac +done + +if [ -n "$do_version" ] +then + echo "${VERSTR}" + exit 0 +fi + +if [ -n "$do_help" ] +then + echo "${VERSTR}" + echo "${USAGE}" + echo + cat << HERE_EOF +Gawkbug is used to send mail to the Gawk maintainers +for when Gawk doesn't behave like you'd like, or expect. + +Gawkbug will start up your editor (as defined by the shell's +EDITOR environment variable) with a preformatted bug report +template for you to fill in. The report will be mailed to the +bug-gawk mailing list by default. + +Please see https://www.gnu.org/software/gawk/manual/html_node/Bugs.html +for bug reporting instructions. Reading that information before +repoting a bug will make everyones' lives easier. + +If you invoke gawkbug by accident, just quit your editor without +saving any changes to the template, and no bug report will be sent. +HERE_EOF + exit 0 +fi + +# Figure out how to echo a string without a trailing newline +N=`echo 'hi there\c'` +case "$N" in +*c) n=-n c= ;; +*) n= c='\c' ;; +esac + +BUGGAWK=bug-gawk@gnu.org + +BUGADDR="${1-$BUGGAWK}" + +if [ -z "$DEFEDITOR" ] && [ -z "$EDITOR" ] +then + if [ -x /usr/bin/editor ] + then + DEFEDITOR=editor + elif [ -x /usr/bin/vim ] + then + DEFEDITOR=vim + elif [ -x /usr/bin/gvim ] + then + DEFEDITOR=gvim + elif [ -x /usr/local/bin/ce ] + then + DEFEDITOR=ce + elif [ -x /usr/local/bin/emacs ] + then + DEFEDITOR=emacs + elif [ -x /usr/contrib/bin/emacs ] + then + DEFEDITOR=emacs + elif [ -x /usr/bin/emacs ] + then + DEFEDITOR=emacs + elif [ -x /usr/bin/xemacs ] + then + DEFEDITOR=xemacs + elif [ -x /usr/bin/nano ] + then + DEFEDITOR=nano + elif [ -x /usr/contrib/bin/jove ] + then + DEFEDITOR=jove + elif [ -x /usr/local/bin/jove ] + then + DEFEDITOR=jove + elif [ -x /usr/bin/vi ] + then + DEFEDITOR=vi + else + echo "$0: No default editor found: attempting to use vi" >&2 + DEFEDITOR=vi + fi +fi + + +: ${EDITOR=$DEFEDITOR} + +: ${USER=${LOGNAME-`whoami`}} + +trap 'rm -rf "$TEMPDIR"; exit 1' 1 2 3 13 15 +trap 'rm -rf "$TEMPDIR"' 0 + +UN= +if (uname) >/dev/null 2>&1 +then + UN=`uname -a` +fi + +if [ -f /usr/lib/sendmail ] +then + RMAIL="/usr/lib/sendmail" + SMARGS="-i -t" +elif [ -f /usr/sbin/sendmail ] +then + RMAIL="/usr/sbin/sendmail" + SMARGS="-i -t" +else + RMAIL=rmail + SMARGS="$BUGADDR" +fi + +INITIAL_SUBJECT='[50 character or so descriptive subject here (for reference)]' + +cat > "$TEMPFILE1" <> $HOME/dead.gawkbug + echo "$0: mail to ${BUGADDR} failed: report saved in $HOME/dead.gawkbug" >&2 + echo "$0: please send it manually to ${BUGADDR}" >&2 +} + +exit 0 diff --git a/msys2/usr/bin/gdbm_dump.exe b/msys2/usr/bin/gdbm_dump.exe index 91b63aa46..c6fe5f7eb 100644 Binary files a/msys2/usr/bin/gdbm_dump.exe and b/msys2/usr/bin/gdbm_dump.exe differ diff --git a/msys2/usr/bin/gdbm_load.exe b/msys2/usr/bin/gdbm_load.exe index 49c21c89a..c5861a3f8 100644 Binary files a/msys2/usr/bin/gdbm_load.exe and b/msys2/usr/bin/gdbm_load.exe differ diff --git a/msys2/usr/bin/gdbmtool.exe b/msys2/usr/bin/gdbmtool.exe index 0fd83707e..372495b4a 100644 Binary files a/msys2/usr/bin/gdbmtool.exe and b/msys2/usr/bin/gdbmtool.exe differ diff --git a/msys2/usr/bin/gdbus.exe b/msys2/usr/bin/gdbus.exe deleted file mode 100644 index 40d9e54ef..000000000 Binary files a/msys2/usr/bin/gdbus.exe and /dev/null differ diff --git a/msys2/usr/bin/gencat.exe b/msys2/usr/bin/gencat.exe index 94188d5f0..6daab16cf 100644 Binary files a/msys2/usr/bin/gencat.exe and b/msys2/usr/bin/gencat.exe differ diff --git a/msys2/usr/bin/getconf.exe b/msys2/usr/bin/getconf.exe index 2a04072fc..19123589b 100644 Binary files a/msys2/usr/bin/getconf.exe and b/msys2/usr/bin/getconf.exe differ diff --git a/msys2/usr/bin/getent.exe b/msys2/usr/bin/getent.exe index 96329cc52..3adb3f569 100644 Binary files a/msys2/usr/bin/getent.exe and b/msys2/usr/bin/getent.exe differ diff --git a/msys2/usr/bin/getfacl.exe b/msys2/usr/bin/getfacl.exe index 7ebb15c93..4cedb477c 100644 Binary files a/msys2/usr/bin/getfacl.exe and b/msys2/usr/bin/getfacl.exe differ diff --git a/msys2/usr/bin/getopt.exe b/msys2/usr/bin/getopt.exe index 1e8c7a8aa..0292bf3bf 100644 Binary files a/msys2/usr/bin/getopt.exe and b/msys2/usr/bin/getopt.exe differ diff --git a/msys2/usr/bin/gettext.exe b/msys2/usr/bin/gettext.exe index ddfe33fad..3932d6276 100644 Binary files a/msys2/usr/bin/gettext.exe and b/msys2/usr/bin/gettext.exe differ diff --git a/msys2/usr/bin/gettext.sh b/msys2/usr/bin/gettext.sh index f031a43e3..22985cd4a 100644 --- a/msys2/usr/bin/gettext.sh +++ b/msys2/usr/bin/gettext.sh @@ -1,6 +1,6 @@ #! /bin/sh # -# Copyright (C) 2003, 2005-2007, 2011, 2015-2016 Free Software Foundation, Inc. +# Copyright (C) 2003, 2005-2007, 2011, 2018-2023 Free Software Foundation, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by @@ -13,7 +13,7 @@ # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . +# along with this program. If not, see . # # Find a way to echo strings without interpreting backslash. @@ -48,7 +48,7 @@ if test -z "${ZSH_VERSION+set}"; then gettext.sh | */gettext.sh | *\\gettext.sh) progname=$0 package=gettext-runtime - version=0.19.8.1 + version=0.22 # func_usage # outputs to stdout the --help usage message. func_usage () @@ -61,8 +61,8 @@ if test -z "${ZSH_VERSION+set}"; then func_version () { echo "$progname (GNU $package) $version" - echo "Copyright (C) 2003-2007 Free Software Foundation, Inc. -License GPLv2+: GNU GPL version 2 or later + echo "Copyright (C) 2003-2023 Free Software Foundation, Inc. +License GPLv2+: GNU GPL version 2 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law." echo "Written by" "Bruno Haible" @@ -95,6 +95,20 @@ eval_ngettext () { ngettext "$1" "$2" "$3" | (export PATH `envsubst --variables "$1 $2"`; envsubst "$1 $2") } +# eval_pgettext MSGCTXT MSGID +# looks up the translation of MSGID in the context MSGCTXT and substitutes +# shell variables in the result. +eval_pgettext () { + gettext --context="$1" "$2" | (export PATH `envsubst --variables "$2"`; envsubst "$2") +} + +# eval_npgettext MSGCTXT MSGID MSGID-PLURAL COUNT +# looks up the translation of MSGID / MSGID-PLURAL for COUNT in the context +# MSGCTXT and substitutes shell variables in the result. +eval_npgettext () { + ngettext --context="$1" "$2" "$3" "$4" | (export PATH `envsubst --variables "$2 $3"`; envsubst "$2 $3") +} + # Note: This use of envsubst is much safer than using the shell built-in 'eval' # would be. # 1) The security problem with Chinese translations that happen to use a diff --git a/msys2/usr/bin/gettextize b/msys2/usr/bin/gettextize index d97736ad6..2ca2f9a19 100644 --- a/msys2/usr/bin/gettextize +++ b/msys2/usr/bin/gettextize @@ -1,6 +1,6 @@ #! /bin/sh # -# Copyright (C) 1995-1998, 2000-2016 Free Software Foundation, Inc. +# Copyright (C) 1995-1998, 2000-2023 Free Software Foundation, Inc. # # 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 @@ -13,7 +13,7 @@ # 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 . +# along with this program. If not, see . # # This file is meant for authors or maintainers which want to @@ -22,8 +22,8 @@ progname=$0 package=gettext-tools -version=0.19.8.1 -archive_version=0.19.8 +version=0.22 +archive_version=0.22 # Set variables # - gettext_datadir directory where the data files are stored. @@ -192,13 +192,13 @@ Options: --help print this help and exit --version print version information and exit -f, --force force writing of new files even if old exist - --intl install libintl in a subdirectory (deprecated) --po-dir=DIR specify directory with PO files --no-changelog don't update or create ChangeLog files --symlink make symbolic links instead of copying files -n, --dry-run print modifications but don't perform them -Report bugs to ." +Report bugs in the bug tracker at +or by email to ." } # func_version @@ -206,8 +206,8 @@ Report bugs to ." func_version () { echo "$progname (GNU $package) $version" - echo "Copyright (C) 1995-1998, 2000-2013 Free Software Foundation, Inc. -License GPLv3+: GNU GPL version 3 or later + echo "Copyright (C) 1995-2023 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law." echo "Written by" "Ulrich Drepper" @@ -299,9 +299,22 @@ unset CLICOLOR_FORCE GREP_OPTIONS # Warn about deprecated options. if test -n "$intldir"; then - echo "gettextize: warning: the option '--intl' is deprecated and will be removed" 1>&2 + func_fatal_error "The option '--intl' is no longer available." fi +# Require automake 1.9 or newer. +have_automake19= +if (aclocal --version) >/dev/null 2>/dev/null; then + aclocal_version=`aclocal --version | sed -n -e 1p | sed -e 's/^[^0-9]*//'` + case $aclocal_version in + 1.9* | 1.[1-9][0-9]* | [2-9]*) have_automake19=yes ;; + esac +fi +if test -z "$have_automake19"; then + func_fatal_error "You need the 'aclocal' program from automake 1.9 or newer." +fi +min_automake_version=1.9 + # Command-line argument processing. # Analyzes the remaining arguments. # Sets the variables @@ -613,10 +626,7 @@ func_m4ChangeLog_finish () } using_m4ChangeLog=yes -if test ! -f "$srcdir/intl/Makefile.in" && test -n "$intldir"; then - added_acoutput="$added_acoutput intl/Makefile" -fi -if test -f "$srcdir/intl/Makefile.in" && test -z "$intldir"; then +if test -f "$srcdir/intl/Makefile.in"; then removed_acoutput="$removed_acoutput intl/Makefile" fi if test -d "$srcdir/intl"; then @@ -633,19 +643,7 @@ if test -d "$srcdir/intl"; then else echo "Wipe out intl/ subdirectory" fi - if test -z "$intldir"; then - removed_directory=intl - fi -else - if test -n "$intldir"; then - if $doit; then - echo "Creating intl/ subdirectory" - mkdir "$srcdir/intl" || func_fatal_error "failed to create intl/ subdirectory" - else - echo "Create intl/ subdirectory" - fi - added_directories="$added_directories intl" - fi + removed_directory=intl fi $do_changelog && func_ChangeLog_init @@ -681,54 +679,36 @@ for file in *; do func_linkorcopy $file "$gettext_datadir/$file" $file ;; config.rpath) - if test -f "$srcdir/$auxdir$file"; then - : - else - added_extradist="$added_extradist $auxdir$file" - fi func_linkorcopy $file "$gettext_datadir/$file" "$auxdir$file" ;; esac done -# Copy files to intl/ subdirectory. -if test -n "$intldir"; then - cd intl - for file in *; do - if test $file != COPYING.LIB-2.0 && test $file != COPYING.LIB-2.1; then - if test $file != plural.c; then - func_linkorcopy $file "$gettext_datadir/intl/$file" intl/$file - else - # plural.c is a generated file; it must be copied and touched. - func_copy $file intl/$file - if $doit; then - (sleep 2; touch "$srcdir/intl/$file") & - fi - fi - fi - done - cd .. -else - echo "Not copying intl/ directory." - # Tell the user what to put into configure.ac, if it is not already there. - external= - # Need to use func_trace_sed instead of $func_trace, since - # AM_GNU_GETTEXT is not a standard Autoconf trace. - xargs=`func_trace_sed AM_GNU_GETTEXT "$srcdir/$configure_in"` - save_IFS="$IFS"; IFS=: - for arg in $xargs; do - if test 'external' = "$arg"; then - external=yes - break - fi - done - IFS="$save_IFS" - if test -z "$external"; then - please="$please +# Tell the user what to put into configure.ac, if it is not already there. +external= +# Need to use func_trace_sed instead of $func_trace, since +# AM_GNU_GETTEXT is not a standard Autoconf trace. +xargs=`func_trace_sed AM_GNU_GETTEXT "$srcdir/$configure_in"` +save_IFS="$IFS"; IFS=: +for arg in $xargs; do + if test 'external' = "$arg"; then + external=yes + break + fi +done +IFS="$save_IFS" +if test -z "$external"; then + please="$please Please use AM_GNU_GETTEXT([external]) in order to cause autoconfiguration to look for an external libintl. " - fi +fi + +# Tell the user to remove invocations of macros that no longer exist. +if sed -e 's,#.*$,,; s,^dnl .*$,,; s, dnl .*$,,' "$srcdir/$configure_in" | grep AM_GNU_GETTEXT_INTL_SUBDIR >/dev/null; then + please="$please +Please remove the invocation of AM_GNU_GETTEXT_INTL_SUBDIR. +" fi # Copy files to po/ subdirectory. @@ -763,7 +743,7 @@ for podir in $podirs; do func_linkorcopy Makevars.template "$gettext_datadir/po/Makevars.template" "$podir/Makevars.template" if test -f "$srcdir/po/Makevars"; then LC_ALL=C sed -n -e 's/[ ]*\([A-Za-z0-9_]*\)[ ]*=.*/\1/p' < "$srcdir/$podir/Makevars" | LC_ALL=C sort > "$srcdir/$podir/Makevars.tmp1" - LC_ALL=C sed -n -e 's/[ ]*\([A-Za-z0-9_]*\)[ ]*=.*/\1/p' < "$srcdir/$podir/Makevars.template" | LC_ALL=C sort > "$srcdir/$podir/Makevars.tmp2" + LC_ALL=C sed -n -e 's/[ ]*\([A-Za-z0-9_]*\)[ ]*=.*/\1/p' < "$gettext_datadir/po/Makevars.template" | LC_ALL=C sort > "$srcdir/$podir/Makevars.tmp2" missingvars=`LC_ALL=C comm -13 "$srcdir/$podir/Makevars.tmp1" "$srcdir/$podir/Makevars.tmp2"` rm -f "$srcdir/$podir/Makevars.tmp1" "$srcdir/$podir/Makevars.tmp2" if test -n "$missingvars"; then @@ -822,29 +802,15 @@ Please fill $podir/POTFILES.in as described in the documentation. $do_changelog && func_poChangeLog_finish done -# Determine whether we can assume automake 1.9 or newer. -have_automake19= -if (aclocal --version) >/dev/null 2>/dev/null; then - aclocal_version=`aclocal --version | sed -n -e 1p | sed -e 's/^[^0-9]*//'` - case $aclocal_version in - 1.9* | 1.[1-9][0-9]* | [2-9]*) have_automake19=yes ;; - esac -fi - -m4filelist='gettext.m4 iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 nls.m4 - po.m4 progtest.m4' -# With aclocal versions < 1.9 we need all m4 files, otherwise "aclocal -I m4" -# might give an error. (aclocal < 1.9 didn't know which macros are really -# needed, it looked which macros are potentially needed.) -min_automake_version=1.9 -if test -n "$intldir" || test -z "$have_automake19"; then - # Add intldir.m4, intl.m4 and its dependencies. - m4filelist=$m4filelist' codeset.m4 fcntl-o.m4 glibc2.m4 glibc21.m4 intdiv0.m4 - intl.m4 intldir.m4 intlmacosx.m4 intmax.m4 inttypes_h.m4 inttypes-pri.m4 - lcmessage.m4 lock.m4 longlong.m4 printf-posix.m4 size_max.m4 stdint_h.m4 - threadlib.m4 uintmax_t.m4 visibility.m4 wchar_t.m4 wint_t.m4 xsize.m4' - min_automake_version=1.8 -fi +m4filelist=' + build-to-host.m4 + gettext.m4 + host-cpu-c-abi.m4 + iconv.m4 + intlmacosx.m4 + lib-ld.m4 lib-link.m4 lib-prefix.m4 + nls.m4 + po.m4 progtest.m4' # All sorts of bugs could occur if the configure file was remade with the wrong # version of gettext.m4 et al. (because then the configure and the po/Makefile.in.in @@ -1237,7 +1203,7 @@ func_modify_configure_in "(AC_OUTPUT): Remove command that created po/Makefile." sed -e '/^\(dnl \|\)AC_LINK_FILES(\$nls_cv_header_libgt, \$nls_cv_header_intl)$/d' < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp" func_modify_configure_in "(AC_LINK_FILES): Remove invocation." # AM_GNU_GETTEXT_VERSION may not be present, when AM_GNU_GETTEXT_REQUIRE_VERSION is used. -if grep '^AM_GNU_GETTEXT_VERSION(' "$srcdir/$configure_in" 2>&1 >/dev/null; then +if grep '^AM_GNU_GETTEXT_VERSION(' "$srcdir/$configure_in" >/dev/null; then sed -e 's/^AM_GNU_GETTEXT_VERSION([^()]*)/AM_GNU_GETTEXT_VERSION(['"$archive_version"'])/' < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp" func_modify_configure_in "(AM_GNU_GETTEXT_VERSION): Bump to $archive_version." fi @@ -1252,7 +1218,7 @@ for file in `(cd "$srcdir"; find . -name Makefile.am -print; find . -name Makefi fi # INTLLIBS is deprecated because it doesn't distinguish the two # cases: with libtool, without libtool. - if grep '@''INTLLIBS''@' "$srcdir/$file" >/dev/null 2>&1; then + if grep '@''INTLLIBS''@' "$srcdir/$file" >/dev/null; then if test -n "$use_libtool"; then please="$please Please change $file to use @""LTLIBINTL""@ or @""LIBINTL""@ instead of @@ -1268,7 +1234,7 @@ Please change $file to use @""LIBINTL""@ instead of @""INTLLIBS""@. fi # DATADIRNAME is deprecated because we install only .gmo files nowadays, # which can be stored in the platform independent $prefix/share hierarchy. - if grep '@''DATADIRNAME''@' "$srcdir/$file" >/dev/null 2>&1; then + if grep '@''DATADIRNAME''@' "$srcdir/$file" >/dev/null; then please="$please Please change $file to use the constant string \"share\" instead of @""DATADIRNAME""@. @""DATADIRNAME""@ will go away. @@ -1276,14 +1242,14 @@ Please change $file to use the constant string \"share\" instead of fi # INSTOBJEXT is deprecated because we install only .gmo files nowadays, # no catgets .cat catalogs. - if grep '@''INSTOBJEXT''@' "$srcdir/$file" >/dev/null 2>&1; then + if grep '@''INSTOBJEXT''@' "$srcdir/$file" >/dev/null; then please="$please Please change $file to use the constant string \".mo\" instead of @""INSTOBJEXT""@. @""INSTOBJEXT""@ will go away. " fi # GENCAT is deprecated because we install no catgets catalogs anymore. - if grep '@''GENCAT''@' "$srcdir/$file" >/dev/null 2>&1; then + if grep '@''GENCAT''@' "$srcdir/$file" >/dev/null; then please="$please Please change $file to use the constant string \"gencat\" instead of @""GENCAT""@. @""GENCAT""@ will go away. Maybe you don't even need it any more? @@ -1291,7 +1257,7 @@ Please change $file to use the constant string \"gencat\" instead of fi # POSUB is deprecated because it causes "./configure --disable-nls", "make", # "make dist" to create a buggy tarfile. - if grep '@''POSUB''@' "$srcdir/$file" >/dev/null 2>&1; then + if grep '@''POSUB''@' "$srcdir/$file" >/dev/null; then please="$please Please change $file to use the constant string \"po\" instead of @""POSUB""@. @""POSUB""@ will go away. @@ -1301,7 +1267,7 @@ Please change $file to use the constant string \"po\" instead of done # Recommend replacement for deprecated configure variables. -if grep '\$nls_cv_header_' "$srcdir/$configure_in" >/dev/null 2>&1; then +if grep '\$nls_cv_header_' "$srcdir/$configure_in" >/dev/null; then please="$please Please stop using \$nls_cv_header_intl or \$nls_cv_header_libgt in the $configure_in file. Both will go away. Use or \"gettext.h\" instead. @@ -1314,10 +1280,10 @@ if test -f "$srcdir/$auxdir"config.guess && test -f "$srcdir/$auxdir"config.sub; else please="$please You will also need config.guess and config.sub, which you can get from the CVS -of the 'config' project at http://savannah.gnu.org/. The commands to fetch them +of the 'config' project at https://savannah.gnu.org/. The commands to fetch them are -\$ wget 'http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess' -\$ wget 'http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub' +\$ wget 'https://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess' +\$ wget 'https://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub' " fi diff --git a/msys2/usr/bin/gio-querymodules.exe b/msys2/usr/bin/gio-querymodules.exe deleted file mode 100644 index 9e6e49428..000000000 Binary files a/msys2/usr/bin/gio-querymodules.exe and /dev/null differ diff --git a/msys2/usr/bin/gkill.exe b/msys2/usr/bin/gkill.exe index e382d8baa..e166488a8 100644 Binary files a/msys2/usr/bin/gkill.exe and b/msys2/usr/bin/gkill.exe differ diff --git a/msys2/usr/bin/glib-compile-schemas.exe b/msys2/usr/bin/glib-compile-schemas.exe deleted file mode 100644 index 0832299fe..000000000 Binary files a/msys2/usr/bin/glib-compile-schemas.exe and /dev/null differ diff --git a/msys2/usr/bin/gmondump.exe b/msys2/usr/bin/gmondump.exe new file mode 100644 index 000000000..f0fb8cc6d Binary files /dev/null and b/msys2/usr/bin/gmondump.exe differ diff --git a/msys2/usr/bin/gobject-query.exe b/msys2/usr/bin/gobject-query.exe deleted file mode 100644 index 06a1b90bb..000000000 Binary files a/msys2/usr/bin/gobject-query.exe and /dev/null differ diff --git a/msys2/usr/bin/gpg-agent.exe b/msys2/usr/bin/gpg-agent.exe index 4f9f14096..7ce919a72 100644 Binary files a/msys2/usr/bin/gpg-agent.exe and b/msys2/usr/bin/gpg-agent.exe differ diff --git a/msys2/usr/bin/gpg-connect-agent.exe b/msys2/usr/bin/gpg-connect-agent.exe index b650fce95..75b0c0889 100644 Binary files a/msys2/usr/bin/gpg-connect-agent.exe and b/msys2/usr/bin/gpg-connect-agent.exe differ diff --git a/msys2/usr/bin/gpg-error.exe b/msys2/usr/bin/gpg-error.exe index 9974c88e2..1f1f3fd04 100644 Binary files a/msys2/usr/bin/gpg-error.exe and b/msys2/usr/bin/gpg-error.exe differ diff --git a/msys2/usr/bin/gpg-wks-server.exe b/msys2/usr/bin/gpg-wks-server.exe index 836d1f7de..b2f521e36 100644 Binary files a/msys2/usr/bin/gpg-wks-server.exe and b/msys2/usr/bin/gpg-wks-server.exe differ diff --git a/msys2/usr/bin/gpg.exe b/msys2/usr/bin/gpg.exe index 1a3acfced..f181aa656 100644 Binary files a/msys2/usr/bin/gpg.exe and b/msys2/usr/bin/gpg.exe differ diff --git a/msys2/usr/bin/gpgconf.exe b/msys2/usr/bin/gpgconf.exe index a30726fb0..dd5105d2c 100644 Binary files a/msys2/usr/bin/gpgconf.exe and b/msys2/usr/bin/gpgconf.exe differ diff --git a/msys2/usr/bin/gpgme-json.exe b/msys2/usr/bin/gpgme-json.exe index 9382bab3f..94ab903f9 100644 Binary files a/msys2/usr/bin/gpgme-json.exe and b/msys2/usr/bin/gpgme-json.exe differ diff --git a/msys2/usr/bin/gpgme-tool.exe b/msys2/usr/bin/gpgme-tool.exe index 513f4a16a..4345d358a 100644 Binary files a/msys2/usr/bin/gpgme-tool.exe and b/msys2/usr/bin/gpgme-tool.exe differ diff --git a/msys2/usr/bin/gpgparsemail.exe b/msys2/usr/bin/gpgparsemail.exe index 412400035..23e70f9fb 100644 Binary files a/msys2/usr/bin/gpgparsemail.exe and b/msys2/usr/bin/gpgparsemail.exe differ diff --git a/msys2/usr/bin/gpgscm.exe b/msys2/usr/bin/gpgscm.exe index eee77bd49..eba78877d 100644 Binary files a/msys2/usr/bin/gpgscm.exe and b/msys2/usr/bin/gpgscm.exe differ diff --git a/msys2/usr/bin/gpgsm.exe b/msys2/usr/bin/gpgsm.exe index 8c22e8b67..e29e7bee2 100644 Binary files a/msys2/usr/bin/gpgsm.exe and b/msys2/usr/bin/gpgsm.exe differ diff --git a/msys2/usr/bin/gpgsplit.exe b/msys2/usr/bin/gpgsplit.exe index 976431a24..ce0bbe60f 100644 Binary files a/msys2/usr/bin/gpgsplit.exe and b/msys2/usr/bin/gpgsplit.exe differ diff --git a/msys2/usr/bin/gpgtar.exe b/msys2/usr/bin/gpgtar.exe index dfa411d4a..8b161ffc1 100644 Binary files a/msys2/usr/bin/gpgtar.exe and b/msys2/usr/bin/gpgtar.exe differ diff --git a/msys2/usr/bin/gpgv.exe b/msys2/usr/bin/gpgv.exe index d0dada8b8..3046fa26e 100644 Binary files a/msys2/usr/bin/gpgv.exe and b/msys2/usr/bin/gpgv.exe differ diff --git a/msys2/usr/bin/grep.exe b/msys2/usr/bin/grep.exe index 2952c6f6a..187774485 100644 Binary files a/msys2/usr/bin/grep.exe and b/msys2/usr/bin/grep.exe differ diff --git a/msys2/usr/bin/groups.exe b/msys2/usr/bin/groups.exe index df3a66388..26c97a112 100644 Binary files a/msys2/usr/bin/groups.exe and b/msys2/usr/bin/groups.exe differ diff --git a/msys2/usr/bin/gsettings.exe b/msys2/usr/bin/gsettings.exe deleted file mode 100644 index 1986c4655..000000000 Binary files a/msys2/usr/bin/gsettings.exe and /dev/null differ diff --git a/msys2/usr/bin/gunzip b/msys2/usr/bin/gunzip index 0708807f0..a41ea69cd 100644 --- a/msys2/usr/bin/gunzip +++ b/msys2/usr/bin/gunzip @@ -1,7 +1,7 @@ #!/bin/sh # Uncompress files. This is the inverse of gzip. -# Copyright (C) 2007, 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2007, 2010-2022 Free Software Foundation, Inc. # 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 @@ -17,7 +17,7 @@ # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -version="gunzip (gzip) 1.10 +version="gunzip (gzip) 1.12 Copyright (C) 2007, 2011-2018 Free Software Foundation, Inc. This is free software. You may redistribute copies of it under the terms of the GNU General Public License . diff --git a/msys2/usr/bin/gzexe b/msys2/usr/bin/gzexe index a2f15bf3b..efd445e4e 100644 --- a/msys2/usr/bin/gzexe +++ b/msys2/usr/bin/gzexe @@ -13,7 +13,7 @@ # On Ultrix, /bin/sh is too buggy, change the first line to: #!/bin/sh5 -# Copyright (C) 1998, 2002, 2004, 2006-2007, 2010-2018 Free Software +# Copyright (C) 1998, 2002, 2004, 2006-2007, 2010-2022 Free Software # Foundation, Inc. # Copyright (C) 1993 Jean-loup Gailly @@ -36,7 +36,7 @@ nl=' ' IFS=" $tab$nl" -version='gzexe (gzip) 1.10 +version='gzexe (gzip) 1.12 Copyright (C) 2007, 2011-2018 Free Software Foundation, Inc. This is free software. You may redistribute copies of it under the terms of the GNU General Public License . @@ -91,10 +91,11 @@ for i do continue fi if test $decomp -eq 0; then - if sed -e 1d -e 2q "$file" | grep "^skip=[0-9][0-9]*$" >/dev/null; then + case `LC_ALL=C sed -n -e 1d -e '/^skip=[0-9][0-9]*$/p' -e 2q "$file"` in + skip=[0-9] | skip=[0-9][0-9] | skip=[0-9][0-9][0-9]) printf >&2 '%s\n' "$0: $i is already gzexe'd" - continue - fi + continue;; + esac fi if test -u "$file"; then printf >&2 '%s\n' "$0: $i has setuid permission, unchanged" @@ -145,7 +146,7 @@ for i do if test $decomp -eq 0; then (cat <<'EOF' && #!/bin/sh -skip=44 +skip=49 tab=' ' nl=' @@ -202,7 +203,7 @@ EOF else # decompression skip=44 - skip_line=`sed -e 1d -e 2q "$file"` + skip_line=`LC_ALL=C sed -e 1d -e 2q "$file"` case $skip_line in skip=[0-9] | skip=[0-9][0-9] | skip=[0-9][0-9][0-9]) eval "$skip_line";; diff --git a/msys2/usr/bin/gzip.exe b/msys2/usr/bin/gzip.exe index ba14ced02..0f16bb3d0 100644 Binary files a/msys2/usr/bin/gzip.exe and b/msys2/usr/bin/gzip.exe differ diff --git a/msys2/usr/bin/hardlink.exe b/msys2/usr/bin/hardlink.exe index 61d7a4be3..d1fa03e17 100644 Binary files a/msys2/usr/bin/hardlink.exe and b/msys2/usr/bin/hardlink.exe differ diff --git a/msys2/usr/bin/head.exe b/msys2/usr/bin/head.exe index d5d565a82..3cd9f333e 100644 Binary files a/msys2/usr/bin/head.exe and b/msys2/usr/bin/head.exe differ diff --git a/msys2/usr/bin/hexdump.exe b/msys2/usr/bin/hexdump.exe index aaf2d19c5..0ac1dbed8 100644 Binary files a/msys2/usr/bin/hexdump.exe and b/msys2/usr/bin/hexdump.exe differ diff --git a/msys2/usr/bin/hmac256.exe b/msys2/usr/bin/hmac256.exe index 282a66004..76dc56263 100644 Binary files a/msys2/usr/bin/hmac256.exe and b/msys2/usr/bin/hmac256.exe differ diff --git a/msys2/usr/bin/hostid.exe b/msys2/usr/bin/hostid.exe index 76b6aa4c2..51814840d 100644 Binary files a/msys2/usr/bin/hostid.exe and b/msys2/usr/bin/hostid.exe differ diff --git a/msys2/usr/bin/hostname.exe b/msys2/usr/bin/hostname.exe index a6c030d5f..c2cb56b57 100644 Binary files a/msys2/usr/bin/hostname.exe and b/msys2/usr/bin/hostname.exe differ diff --git a/msys2/usr/bin/iconv.exe b/msys2/usr/bin/iconv.exe index 037003072..917229c4e 100644 Binary files a/msys2/usr/bin/iconv.exe and b/msys2/usr/bin/iconv.exe differ diff --git a/msys2/usr/bin/id.exe b/msys2/usr/bin/id.exe index e5e07e85c..096a61112 100644 Binary files a/msys2/usr/bin/id.exe and b/msys2/usr/bin/id.exe differ diff --git a/msys2/usr/bin/info.exe b/msys2/usr/bin/info.exe index deb7d3490..7864c93a9 100644 Binary files a/msys2/usr/bin/info.exe and b/msys2/usr/bin/info.exe differ diff --git a/msys2/usr/bin/infocmp.exe b/msys2/usr/bin/infocmp.exe index d2431782e..87ab2f8a3 100644 Binary files a/msys2/usr/bin/infocmp.exe and b/msys2/usr/bin/infocmp.exe differ diff --git a/msys2/usr/bin/infotocap.exe b/msys2/usr/bin/infotocap.exe index d166bd67d..24cc1a4d9 100644 Binary files a/msys2/usr/bin/infotocap.exe and b/msys2/usr/bin/infotocap.exe differ diff --git a/msys2/usr/bin/install-info.exe b/msys2/usr/bin/install-info.exe index 0a2590348..0ee17e060 100644 Binary files a/msys2/usr/bin/install-info.exe and b/msys2/usr/bin/install-info.exe differ diff --git a/msys2/usr/bin/install.exe b/msys2/usr/bin/install.exe index 11d4b10d3..087bc8f10 100644 Binary files a/msys2/usr/bin/install.exe and b/msys2/usr/bin/install.exe differ diff --git a/msys2/usr/bin/ipcmk.exe b/msys2/usr/bin/ipcmk.exe index b04b884b1..dd0c5c070 100644 Binary files a/msys2/usr/bin/ipcmk.exe and b/msys2/usr/bin/ipcmk.exe differ diff --git a/msys2/usr/bin/isosize.exe b/msys2/usr/bin/isosize.exe index 4b2e5b7d9..7073cdf2c 100644 Binary files a/msys2/usr/bin/isosize.exe and b/msys2/usr/bin/isosize.exe differ diff --git a/msys2/usr/bin/join.exe b/msys2/usr/bin/join.exe index 3df063785..0844edbba 100644 Binary files a/msys2/usr/bin/join.exe and b/msys2/usr/bin/join.exe differ diff --git a/msys2/usr/bin/kbxutil.exe b/msys2/usr/bin/kbxutil.exe index 97c6cce04..5e4d025f4 100644 Binary files a/msys2/usr/bin/kbxutil.exe and b/msys2/usr/bin/kbxutil.exe differ diff --git a/msys2/usr/bin/kill.exe b/msys2/usr/bin/kill.exe index 0cef166e8..69b5153b7 100644 Binary files a/msys2/usr/bin/kill.exe and b/msys2/usr/bin/kill.exe differ diff --git a/msys2/usr/bin/ldd.exe b/msys2/usr/bin/ldd.exe index 1bf83da18..16380119a 100644 Binary files a/msys2/usr/bin/ldd.exe and b/msys2/usr/bin/ldd.exe differ diff --git a/msys2/usr/bin/ldh.exe b/msys2/usr/bin/ldh.exe index f2f958efb..95fc57ab0 100644 Binary files a/msys2/usr/bin/ldh.exe and b/msys2/usr/bin/ldh.exe differ diff --git a/msys2/usr/bin/less.exe b/msys2/usr/bin/less.exe index d1e08cd64..246d7a00f 100644 Binary files a/msys2/usr/bin/less.exe and b/msys2/usr/bin/less.exe differ diff --git a/msys2/usr/bin/lessecho.exe b/msys2/usr/bin/lessecho.exe index 398c74128..ab6555e9a 100644 Binary files a/msys2/usr/bin/lessecho.exe and b/msys2/usr/bin/lessecho.exe differ diff --git a/msys2/usr/bin/lesskey.exe b/msys2/usr/bin/lesskey.exe index 401b93b22..c2b010264 100644 Binary files a/msys2/usr/bin/lesskey.exe and b/msys2/usr/bin/lesskey.exe differ diff --git a/msys2/usr/bin/libtcl8.6.dll b/msys2/usr/bin/libtcl8.6.dll deleted file mode 100644 index 476efa592..000000000 Binary files a/msys2/usr/bin/libtcl8.6.dll and /dev/null differ diff --git a/msys2/usr/bin/link.exe b/msys2/usr/bin/link.exe index 704d96844..b9f38c560 100644 Binary files a/msys2/usr/bin/link.exe and b/msys2/usr/bin/link.exe differ diff --git a/msys2/usr/bin/ln.exe b/msys2/usr/bin/ln.exe index dd9956d6a..69719254f 100644 Binary files a/msys2/usr/bin/ln.exe and b/msys2/usr/bin/ln.exe differ diff --git a/msys2/usr/bin/locale.exe b/msys2/usr/bin/locale.exe index 55375133d..2b5ba2194 100644 Binary files a/msys2/usr/bin/locale.exe and b/msys2/usr/bin/locale.exe differ diff --git a/msys2/usr/bin/locate.exe b/msys2/usr/bin/locate.exe index 5b5ac7f2d..8bc52d01f 100644 Binary files a/msys2/usr/bin/locate.exe and b/msys2/usr/bin/locate.exe differ diff --git a/msys2/usr/bin/logger.exe b/msys2/usr/bin/logger.exe index 755c70bc4..1875044be 100644 Binary files a/msys2/usr/bin/logger.exe and b/msys2/usr/bin/logger.exe differ diff --git a/msys2/usr/bin/logname.exe b/msys2/usr/bin/logname.exe index 4932e1514..533a2b0c4 100644 Binary files a/msys2/usr/bin/logname.exe and b/msys2/usr/bin/logname.exe differ diff --git a/msys2/usr/bin/look.exe b/msys2/usr/bin/look.exe index 5f832f10a..82994c3d9 100644 Binary files a/msys2/usr/bin/look.exe and b/msys2/usr/bin/look.exe differ diff --git a/msys2/usr/bin/ls.exe b/msys2/usr/bin/ls.exe index 6f87562ae..867860857 100644 Binary files a/msys2/usr/bin/ls.exe and b/msys2/usr/bin/ls.exe differ diff --git a/msys2/usr/bin/lsattr.exe b/msys2/usr/bin/lsattr.exe index 4b2efabb6..68ab093a8 100644 Binary files a/msys2/usr/bin/lsattr.exe and b/msys2/usr/bin/lsattr.exe differ diff --git a/msys2/usr/bin/lzcat.exe b/msys2/usr/bin/lzcat.exe index 12546b971..0d72dcfa1 100644 Binary files a/msys2/usr/bin/lzcat.exe and b/msys2/usr/bin/lzcat.exe differ diff --git a/msys2/usr/bin/lzcmp b/msys2/usr/bin/lzcmp index 78b52b3de..57b695f8e 100644 --- a/msys2/usr/bin/lzcmp +++ b/msys2/usr/bin/lzcmp @@ -30,7 +30,7 @@ case ${0##*/} in *) prog=xzdiff; cmp=${DIFF:-diff};; esac -version="$prog (XZ Utils) 5.2.5" +version="$prog (XZ Utils) 5.4.3" usage="Usage: ${0##*/} [OPTION]... FILE1 [FILE2] Compare FILE1 to FILE2, using their uncompressed contents if they are @@ -39,7 +39,7 @@ FILE1 from which the compression format suffix has been stripped. Do comparisons like '$cmp' does. OPTIONs are the same as for '$cmp'. -Report bugs to ." +Report bugs to ." # sed script to escape all ' for the shell, and then (to handle trailing # newlines correctly) turn trailing X on last line into '. @@ -51,7 +51,7 @@ escape=' while :; do case $1 in --h*) printf '%s\n' "$usage" || exit 2; exit;; - --v*) echo "$version" || exit 2; exit;; + --v*) printf '%s\n' "$version" || exit 2; exit;; --) shift; break;; -*\'*) cmp="$cmp '"`printf '%sX\n' "$1" | sed "$escape"`;; -?*) cmp="$cmp '$1'";; @@ -65,14 +65,15 @@ for file; do test "X$file" = X- || <"$file" || exit 2 done -xz1=$xz -xz2=$xz +# xz needs -qQ to ignore warnings like unsupported check type. +xz1="$xz -qQ" +xz2="$xz -qQ" xz_status=0 exec 3>&1 if test $# -eq 1; then case $1 in - *[-.]xz | *[-.]lzma | *.t[lx]z) + *[-.]xz | *[-.]lzma | *[-.]lz | *.t[lx]z) ;; *[-.]bz2 | *.tbz | *.tbz2) xz1=bzip2;; @@ -80,19 +81,23 @@ if test $# -eq 1; then xz1=gzip;; *[-.]lzo | *.tzo) xz1=lzop;; + *[-.]zst | *.tzst) + xz1='zstd -q';; *) - echo >&2 "$0: $1: Unknown compressed file name suffix" + printf '%s\n' "$0: $1: Unknown compressed file name suffix" >&2 exit 2;; esac case $1 in - *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *[-.]lzo) - FILE=`expr "X$1" : 'X\(.*\)[-.][abglmoxzZ2]*$'`;; + *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *[-.]lz | *[-.]lzo | *[-.]zst) + FILE=`expr "X$1" : 'X\(.*\)[-.][abglmostxzZ2]*$'`;; *.t[abglx]z) FILE=`expr "X$1" : 'X\(.*[-.]t\)[abglx]z$'`ar;; *.tbz2) FILE=`expr "X$1" : 'X\(.*[-.]t\)bz2$'`ar;; *.tzo) FILE=`expr "X$1" : 'X\(.*[-.]t\)zo$'`ar;; + *.tzst) + FILE=`expr "X$1" : 'X\(.*[-.]t\)zst$'`ar;; esac xz_status=$( exec 4>&1 @@ -103,36 +108,33 @@ elif test $# -eq 2; then *[-.]bz2 | *.tbz | *.tbz2) xz1=bzip2;; *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) xz1=gzip;; *[-.]lzo | *.tzo) xz1=lzop;; + *[-.]zst | *.tzst) xz1='zstd -q';; esac case $2 in *[-.]bz2 | *.tbz | *.tbz2) xz2=bzip2;; *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) xz2=gzip;; *[-.]lzo | *.tzo) xz2=lzop;; + *[-.]zst | *.tzst) xz2='zstd -q';; esac case $1 in - *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | -) + *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *[-.]lz | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | *[-.]zst | *.tzst | -) case "$2" in - *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | -) + *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *[-.]lz | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | *[-.]zst | *.tzst | -) if test "$1$2" = --; then xz_status=$( exec 4>&1 - ($xz1 -cdfq - 4>&-; echo $? >&4) 3>&- | + ($xz1 -cdf - 4>&-; echo $? >&4) 3>&- | eval "$cmp" - - >&3 ) elif # Reject Solaris 8's buggy /bin/bash 2.03. echo X | (echo X | eval "$cmp" /dev/fd/5 - >/dev/null 2>&1) 5<&0; then + # NOTE: xz_status will contain two numbers. xz_status=$( exec 4>&1 - ($xz1 -cdfq -- "$1" 4>&-; echo $? >&4) 3>&- | - ( ($xz2 -cdfq -- "$2" 4>&-; echo $? >&4) 3>&- 5<&- &-; echo $? >&4) 3>&- | + ( ($xz2 -cdf -- "$2" 4>&-; echo $? >&4) 3>&- 5<&- &3) 5<&0 ) - cmp_status=$? - case $xz_status in - *[1-9]*) xz_status=1;; - *) xz_status=0;; - esac - (exit $cmp_status) else F=`expr "/$2" : '.*/\(.*\)[-.][ablmotxz2]*$'` || F=$prog tmp= @@ -161,10 +163,10 @@ elif test $# -eq 2; then mkdir -- "${TMPDIR-/tmp}/$prog.$$" || exit 2 tmp="${TMPDIR-/tmp}/$prog.$$" fi - $xz2 -cdfq -- "$2" > "$tmp/$F" || exit 2 + $xz2 -cdf -- "$2" > "$tmp/$F" || exit 2 xz_status=$( exec 4>&1 - ($xz1 -cdfq -- "$1" 4>&-; echo $? >&4) 3>&- | + ($xz1 -cdf -- "$1" 4>&-; echo $? >&4) 3>&- | eval "$cmp" - '"$tmp/$F"' >&3 ) cmp_status=$? @@ -175,16 +177,16 @@ elif test $# -eq 2; then *) xz_status=$( exec 4>&1 - ($xz1 -cdfq -- "$1" 4>&-; echo $? >&4) 3>&- | + ($xz1 -cdf -- "$1" 4>&-; echo $? >&4) 3>&- | eval "$cmp" - '"$2"' >&3 );; esac;; *) case "$2" in - *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | -) + *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *[-.]lz | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | *[-.]zst | *.tzst | -) xz_status=$( exec 4>&1 - ($xz2 -cdfq -- "$2" 4>&-; echo $? >&4) 3>&- | + ($xz2 -cdf -- "$2" 4>&-; echo $? >&4) 3>&- | eval "$cmp" '"$1"' - >&3 );; *) @@ -192,10 +194,22 @@ elif test $# -eq 2; then esac;; esac else - echo >&2 "$0: Invalid number of operands; try \`${0##*/} --help' for help" + printf '%s\n' "$0: Invalid number of operands; try \`${0##*/} --help' for help" >&2 exit 2 fi cmp_status=$? -test "$xz_status" -eq 0 || exit 2 +for num in $xz_status ; do + # 0 from decompressor means successful decompression. SIGPIPE from + # decompressor is possible when diff or cmp exits before the whole file + # has been decompressed. In that case we want to retain the exit status + # from diff or cmp. Note that using "trap '' PIPE" is not possible + # because gzip changes its behavior (including exit status) if SIGPIPE + # is ignored. + test "$num" -eq 0 && continue + test "$num" -ge 128 \ + && test "$(kill -l "$num" 2> /dev/null)" = "PIPE" \ + && continue + exit 2 +done exit $cmp_status diff --git a/msys2/usr/bin/lzdiff b/msys2/usr/bin/lzdiff index 78b52b3de..57b695f8e 100644 --- a/msys2/usr/bin/lzdiff +++ b/msys2/usr/bin/lzdiff @@ -30,7 +30,7 @@ case ${0##*/} in *) prog=xzdiff; cmp=${DIFF:-diff};; esac -version="$prog (XZ Utils) 5.2.5" +version="$prog (XZ Utils) 5.4.3" usage="Usage: ${0##*/} [OPTION]... FILE1 [FILE2] Compare FILE1 to FILE2, using their uncompressed contents if they are @@ -39,7 +39,7 @@ FILE1 from which the compression format suffix has been stripped. Do comparisons like '$cmp' does. OPTIONs are the same as for '$cmp'. -Report bugs to ." +Report bugs to ." # sed script to escape all ' for the shell, and then (to handle trailing # newlines correctly) turn trailing X on last line into '. @@ -51,7 +51,7 @@ escape=' while :; do case $1 in --h*) printf '%s\n' "$usage" || exit 2; exit;; - --v*) echo "$version" || exit 2; exit;; + --v*) printf '%s\n' "$version" || exit 2; exit;; --) shift; break;; -*\'*) cmp="$cmp '"`printf '%sX\n' "$1" | sed "$escape"`;; -?*) cmp="$cmp '$1'";; @@ -65,14 +65,15 @@ for file; do test "X$file" = X- || <"$file" || exit 2 done -xz1=$xz -xz2=$xz +# xz needs -qQ to ignore warnings like unsupported check type. +xz1="$xz -qQ" +xz2="$xz -qQ" xz_status=0 exec 3>&1 if test $# -eq 1; then case $1 in - *[-.]xz | *[-.]lzma | *.t[lx]z) + *[-.]xz | *[-.]lzma | *[-.]lz | *.t[lx]z) ;; *[-.]bz2 | *.tbz | *.tbz2) xz1=bzip2;; @@ -80,19 +81,23 @@ if test $# -eq 1; then xz1=gzip;; *[-.]lzo | *.tzo) xz1=lzop;; + *[-.]zst | *.tzst) + xz1='zstd -q';; *) - echo >&2 "$0: $1: Unknown compressed file name suffix" + printf '%s\n' "$0: $1: Unknown compressed file name suffix" >&2 exit 2;; esac case $1 in - *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *[-.]lzo) - FILE=`expr "X$1" : 'X\(.*\)[-.][abglmoxzZ2]*$'`;; + *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *[-.]lz | *[-.]lzo | *[-.]zst) + FILE=`expr "X$1" : 'X\(.*\)[-.][abglmostxzZ2]*$'`;; *.t[abglx]z) FILE=`expr "X$1" : 'X\(.*[-.]t\)[abglx]z$'`ar;; *.tbz2) FILE=`expr "X$1" : 'X\(.*[-.]t\)bz2$'`ar;; *.tzo) FILE=`expr "X$1" : 'X\(.*[-.]t\)zo$'`ar;; + *.tzst) + FILE=`expr "X$1" : 'X\(.*[-.]t\)zst$'`ar;; esac xz_status=$( exec 4>&1 @@ -103,36 +108,33 @@ elif test $# -eq 2; then *[-.]bz2 | *.tbz | *.tbz2) xz1=bzip2;; *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) xz1=gzip;; *[-.]lzo | *.tzo) xz1=lzop;; + *[-.]zst | *.tzst) xz1='zstd -q';; esac case $2 in *[-.]bz2 | *.tbz | *.tbz2) xz2=bzip2;; *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) xz2=gzip;; *[-.]lzo | *.tzo) xz2=lzop;; + *[-.]zst | *.tzst) xz2='zstd -q';; esac case $1 in - *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | -) + *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *[-.]lz | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | *[-.]zst | *.tzst | -) case "$2" in - *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | -) + *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *[-.]lz | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | *[-.]zst | *.tzst | -) if test "$1$2" = --; then xz_status=$( exec 4>&1 - ($xz1 -cdfq - 4>&-; echo $? >&4) 3>&- | + ($xz1 -cdf - 4>&-; echo $? >&4) 3>&- | eval "$cmp" - - >&3 ) elif # Reject Solaris 8's buggy /bin/bash 2.03. echo X | (echo X | eval "$cmp" /dev/fd/5 - >/dev/null 2>&1) 5<&0; then + # NOTE: xz_status will contain two numbers. xz_status=$( exec 4>&1 - ($xz1 -cdfq -- "$1" 4>&-; echo $? >&4) 3>&- | - ( ($xz2 -cdfq -- "$2" 4>&-; echo $? >&4) 3>&- 5<&- &-; echo $? >&4) 3>&- | + ( ($xz2 -cdf -- "$2" 4>&-; echo $? >&4) 3>&- 5<&- &3) 5<&0 ) - cmp_status=$? - case $xz_status in - *[1-9]*) xz_status=1;; - *) xz_status=0;; - esac - (exit $cmp_status) else F=`expr "/$2" : '.*/\(.*\)[-.][ablmotxz2]*$'` || F=$prog tmp= @@ -161,10 +163,10 @@ elif test $# -eq 2; then mkdir -- "${TMPDIR-/tmp}/$prog.$$" || exit 2 tmp="${TMPDIR-/tmp}/$prog.$$" fi - $xz2 -cdfq -- "$2" > "$tmp/$F" || exit 2 + $xz2 -cdf -- "$2" > "$tmp/$F" || exit 2 xz_status=$( exec 4>&1 - ($xz1 -cdfq -- "$1" 4>&-; echo $? >&4) 3>&- | + ($xz1 -cdf -- "$1" 4>&-; echo $? >&4) 3>&- | eval "$cmp" - '"$tmp/$F"' >&3 ) cmp_status=$? @@ -175,16 +177,16 @@ elif test $# -eq 2; then *) xz_status=$( exec 4>&1 - ($xz1 -cdfq -- "$1" 4>&-; echo $? >&4) 3>&- | + ($xz1 -cdf -- "$1" 4>&-; echo $? >&4) 3>&- | eval "$cmp" - '"$2"' >&3 );; esac;; *) case "$2" in - *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | -) + *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *[-.]lz | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | *[-.]zst | *.tzst | -) xz_status=$( exec 4>&1 - ($xz2 -cdfq -- "$2" 4>&-; echo $? >&4) 3>&- | + ($xz2 -cdf -- "$2" 4>&-; echo $? >&4) 3>&- | eval "$cmp" '"$1"' - >&3 );; *) @@ -192,10 +194,22 @@ elif test $# -eq 2; then esac;; esac else - echo >&2 "$0: Invalid number of operands; try \`${0##*/} --help' for help" + printf '%s\n' "$0: Invalid number of operands; try \`${0##*/} --help' for help" >&2 exit 2 fi cmp_status=$? -test "$xz_status" -eq 0 || exit 2 +for num in $xz_status ; do + # 0 from decompressor means successful decompression. SIGPIPE from + # decompressor is possible when diff or cmp exits before the whole file + # has been decompressed. In that case we want to retain the exit status + # from diff or cmp. Note that using "trap '' PIPE" is not possible + # because gzip changes its behavior (including exit status) if SIGPIPE + # is ignored. + test "$num" -eq 0 && continue + test "$num" -ge 128 \ + && test "$(kill -l "$num" 2> /dev/null)" = "PIPE" \ + && continue + exit 2 +done exit $cmp_status diff --git a/msys2/usr/bin/lzegrep b/msys2/usr/bin/lzegrep index e0d06e2fb..1929dcdcd 100644 --- a/msys2/usr/bin/lzegrep +++ b/msys2/usr/bin/lzegrep @@ -29,12 +29,12 @@ xz='xz --format=auto' unset GZIP BZIP BZIP2 LZOP case ${0##*/} in - *egrep*) prog=xzegrep; grep=${GREP:-egrep};; - *fgrep*) prog=xzfgrep; grep=${GREP:-fgrep};; + *egrep*) prog=xzegrep; grep=${GREP:-grep -E};; + *fgrep*) prog=xzfgrep; grep=${GREP:-grep -F};; *) prog=xzgrep; grep=${GREP:-grep};; esac -version="$prog (XZ Utils) 5.2.5" +version="$prog (XZ Utils) 5.4.3" usage="Usage: ${0##*/} [OPTION]... [-e] PATTERN [FILE]... Look for instances of PATTERN in the input FILEs, using their @@ -42,7 +42,7 @@ uncompressed contents if they are compressed. OPTIONs are the same as for '$grep'. -Report bugs to ." +Report bugs to ." # sed script to escape all ' for the shell, and then (to handle trailing # newlines correctly) turn trailing X on last line into '. @@ -57,22 +57,45 @@ files_without_matches=0 no_filename=0 with_filename=0 +# See if -H and --label options are supported (GNU and *BSDs). +if test f:x = "$(eval "echo x | $grep -H --label=f x 2> /dev/null")"; then + grep_supports_label=1 +else + grep_supports_label=0 +fi + while test $# -ne 0; do option=$1 shift optarg= case $option in - (-[0123456789abcdhHiIKLlnoqrRsTuUvVwxyzZ]?*) - arg2=-\'$(expr "X${option}X" : 'X-.[0-9]*\(.*\)' | sed "$escape") + (-[0123456789abcdEFGhHiIKlLnoPqrRsTuUvVwxyzZ]*[!0123456789]*) + # Something like -Fiv was specified, that is, $option contains more + # than one option of which the first option (in this example -F) + # doesn't take an argument. Split the first option into a standalone + # argument and continue parsing the rest of the options (in this example, + # replace -Fiv with -iv in the argument list and set option=-F). + # + # If there are digits [0-9] they are treated as if they were a single + # option character because this syntax is an alias for -C for GNU grep. + # For example, "grep -25F" is equivalent to "grep -C25 -F". If only + # digits are specified like "grep -25" we don't get here because the + # above pattern in the case-statement doesn't match such strings. + arg2=-\'$(LC_ALL=C expr "X${option}X" : 'X-.[0-9]*\(.*\)' | + LC_ALL=C sed "$escape") eval "set -- $arg2 "'${1+"$@"}' - option=$(expr "X$option" : 'X\(-.[0-9]*\)');; + option=$(LC_ALL=C expr "X$option" : 'X\(-.[0-9]*\)');; (--binary-*=* | --[lm]a*=* | --reg*=*) + # These options require an argument and an argument has been provided + # with the --foo=argument syntax. All is good. ;; - (-[ABCDefm] | --binary-* | --file | --[lm]a* | --reg*) + (-[ABCDefmX] | --binary-* | --file | --[lm]a* | --reg*) + # These options require an argument which should now be in $1. + # If it isn't, display an error and exit. case ${1?"$option option requires an argument"} in (*\'*) - optarg=" '"$(printf '%sX\n' "$1" | sed "$escape");; + optarg=" '"$(printf '%sX\n' "$1" | LC_ALL=C sed "$escape");; (*) optarg=" '$1'";; esac @@ -84,7 +107,8 @@ while test $# -ne 0; do (*) case $option in (*\'*) - operands="$operands '"$(printf '%sX\n' "$option" | sed "$escape");; + operands="$operands '"$(printf '%sX\n' "$option" | + LC_ALL=C sed "$escape");; (*) operands="$operands '$option'";; esac @@ -99,7 +123,7 @@ while test $# -ne 0; do (-[ef]* | --file | --file=* | --reg*) have_pat=1;; (--h | --he | --hel | --help) - echo "$usage" || exit 2 + printf '%s\n' "$usage" || exit 2 exit;; (-H | --wi | --wit | --with | --with- | --with-f | --with-fi \ | --with-fil | --with-file | --with-filen | --with-filena | --with-filenam \ @@ -115,13 +139,13 @@ while test $# -ne 0; do (-h | --no-f*) no_filename=1;; (-V | --v | --ve | --ver | --vers | --versi | --versio | --version) - echo "$version" || exit 2 + printf '%s\n' "$version" || exit 2 exit;; esac case $option in (*\'?*) - option=\'$(expr "X${option}X" : 'X\(.*\)' | sed "$escape");; + option=\'$(printf '%sX\n' "$option" | LC_ALL=C sed "$escape");; (*) option="'$option'";; esac @@ -129,18 +153,14 @@ while test $# -ne 0; do grep="$grep $option$optarg" done -if test $files_with_matches -eq 1 || test $files_without_matches -eq 1; then - grep="$grep -q" -fi - eval "set -- $operands "'${1+"$@"}' if test $have_pat -eq 0; then case ${1?"Missing pattern; try \`${0##*/} --help' for help"} in (*\'*) - grep="$grep -- '"$(printf '%sX\n' "$1" | sed "$escape");; + grep="$grep -e '"$(printf '%sX\n' "$1" | LC_ALL=C sed "$escape");; (*) - grep="$grep -- '$1'";; + grep="$grep -e '$1'";; esac shift fi @@ -156,19 +176,22 @@ res=1 for i; do case $i in - *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) uncompress="gzip -cdfq";; - *[-.]bz2 | *[-.]tbz | *.tbz2) uncompress="bzip2 -cdfq";; - *[-.]lzo | *[-.]tzo) uncompress="lzop -cdfq";; - *) uncompress="$xz -cdfq";; + *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) uncompress="gzip -cdf";; + *[-.]bz2 | *[-.]tbz | *.tbz2) uncompress="bzip2 -cdf";; + *[-.]lzo | *[-.]tzo) uncompress="lzop -cdf";; + *[-.]zst | *[-.]tzst) uncompress="zstd -cdfq";; # zstd needs -q. + *) uncompress="$xz -cdfqQ";; # -qQ to ignore warnings like unsupp. check. esac - # Fail if xz or grep (or sed) fails. + # xz_status will hold the decompressor's exit status. + # Exit status of grep (and in rare cases, printf or sed) is + # available as the exit status of this assignment command. xz_status=$( exec 5>&1 ($uncompress -- "$i" 5>&-; echo $? >&5) 3>&- | if test $files_with_matches -eq 1; then - eval "$grep" && { printf '%s\n' "$i" || exit 2; } + eval "$grep -q" && { printf '%s\n' "$i" || exit 2; } elif test $files_without_matches -eq 1; then - eval "$grep" || { + eval "$grep -q" || { r=$? if test $r -eq 1; then printf '%s\n' "$i" || r=2 @@ -178,39 +201,98 @@ for i; do elif test $with_filename -eq 0 && { test $# -eq 1 || test $no_filename -eq 1; }; then eval "$grep" + elif test $grep_supports_label -eq 1; then + # The grep implementation in use allows us to specify the filename + # that grep will prefix to the output lines. This is faster and + # less prone to security bugs than the fallback method that uses sed. + # This also avoids confusing output with GNU grep >= 3.5 (2020-09-27) + # which prints "binary file matches" to stderr instead of stdout. + # + # If reading from stdin, let grep use whatever name it prefers for + # stdin. With GNU grep it is a locale-specific translated string. + if test "x$i" = "x-"; then + eval "$grep -H" + else + eval "$grep -H --label \"\$i\"" + fi else + # Append a colon so that the last character will never be a newline + # which would otherwise get lost in shell command substitution. + i="$i:" + + # Escape & \ | and newlines only if such characters are present + # (speed optimization). case $i in (*' '* | *'&'* | *'\'* | *'|'*) - i=$(printf '%s\n' "$i" | - sed ' - $!N - $s/[&\|]/\\&/g - $s/\n/\\n/g - ');; + # If sed fails, set i to a known safe string to ensure that + # failing sed did not create a half-escaped dangerous string. + i=$(printf '%s\n' "$i" | LC_ALL=C sed 's/[&\|]/\\&/g; $!s/$/\\/') || + i='(unknown filename):';; esac - sed_script="s|^|$i:|" - # Fail if grep or sed fails. + # $i already ends with a colon so do not add it here. + sed_script="s|^|$i|" + + # If grep or sed fails, pick the larger value of the two exit statuses. + # If sed fails, use at least 2 since we use >= 2 to indicate errors. r=$( exec 4>&1 - (eval "$grep" 4>&-; echo $? >&4) 3>&- | sed "$sed_script" >&3 4>&- - ) || r=2 + (eval "$grep" 4>&-; echo $? >&4) 3>&- | + LC_ALL=C sed "$sed_script" >&3 4>&- + ) || { + sed_status=$? + test "$sed_status" -lt 2 && sed_status=2 + test "$r" -lt "$sed_status" && r=$sed_status + } exit $r fi >&3 5>&- ) r=$? - # fail occurred previously, nothing worse can happen - test $res -gt 1 && continue + # If grep or sed or other non-decompression command failed with a signal, + # exit immediately and ignore the possible remaining files. + # + # NOTE: Instead of 128 + signal_number, some shells use + # 256 + signal_number (ksh) or 384 + signal_number (yash). + # This is fine for us since their "exit" and "kill -l" commands take + # this into account. (At least the versions I tried do but there is + # a report of an old ksh variant whose "exit" truncates the exit status + # to 8 bits without any special handling for values indicating a signal.) + test "$r" -ge 128 && exit "$r" - test "$xz_status" -eq 0 || test "$xz_status" -eq 2 \ - || test "$(kill -l "$xz_status" 2> /dev/null)" = "PIPE" || r=2 + if test -z "$xz_status"; then + # Something unusual happened, for example, we got a signal and + # the exit status of the decompressor was never echoed and thus + # $xz_status is empty. Exit immediately and ignore the possible + # remaining files. + exit 2 + elif test "$xz_status" -ge 128; then + # The decompressor died due to a signal. SIGPIPE is ignored since it can + # occur if grep exits before the whole file has been decompressed (grep -q + # can do that). If the decompressor died with some other signal, exit + # immediately and ignore the possible remaining files. + test "$(kill -l "$xz_status" 2> /dev/null)" != "PIPE" && exit "$xz_status" + elif test "$xz_status" -gt 0; then + # Decompression failed but we will continue with the remaining + # files anwyway. Set exit status to at least 2 to indicate an error. + test "$r" -lt 2 && r=2 + fi - # still no match - test $r -eq 1 && continue - - # 0 == match, >=2 == fail - res=$r + # Since res=1 is the initial value, we only need to care about + # matches (r == 0) and errors (r >= 2) here; r == 1 can be ignored. + if test "$r" -ge 2; then + # An error occurred in decompressor, grep, or some other command. Update + # res unless a larger error code has been seen with an earlier file. + test "$res" -lt "$r" && res=$r + elif test "$r" -eq 0; then + # grep found a match and no errors occurred. Update res if no errors have + # occurred with earlier files. + test "$res" -eq 1 && res=0 + fi done -exit $res + +# 0: At least one file matched and no errors occurred. +# 1: No matches were found and no errors occurred. +# >=2: Error. It's unknown if matches were found. +exit "$res" diff --git a/msys2/usr/bin/lzfgrep b/msys2/usr/bin/lzfgrep index e0d06e2fb..1929dcdcd 100644 --- a/msys2/usr/bin/lzfgrep +++ b/msys2/usr/bin/lzfgrep @@ -29,12 +29,12 @@ xz='xz --format=auto' unset GZIP BZIP BZIP2 LZOP case ${0##*/} in - *egrep*) prog=xzegrep; grep=${GREP:-egrep};; - *fgrep*) prog=xzfgrep; grep=${GREP:-fgrep};; + *egrep*) prog=xzegrep; grep=${GREP:-grep -E};; + *fgrep*) prog=xzfgrep; grep=${GREP:-grep -F};; *) prog=xzgrep; grep=${GREP:-grep};; esac -version="$prog (XZ Utils) 5.2.5" +version="$prog (XZ Utils) 5.4.3" usage="Usage: ${0##*/} [OPTION]... [-e] PATTERN [FILE]... Look for instances of PATTERN in the input FILEs, using their @@ -42,7 +42,7 @@ uncompressed contents if they are compressed. OPTIONs are the same as for '$grep'. -Report bugs to ." +Report bugs to ." # sed script to escape all ' for the shell, and then (to handle trailing # newlines correctly) turn trailing X on last line into '. @@ -57,22 +57,45 @@ files_without_matches=0 no_filename=0 with_filename=0 +# See if -H and --label options are supported (GNU and *BSDs). +if test f:x = "$(eval "echo x | $grep -H --label=f x 2> /dev/null")"; then + grep_supports_label=1 +else + grep_supports_label=0 +fi + while test $# -ne 0; do option=$1 shift optarg= case $option in - (-[0123456789abcdhHiIKLlnoqrRsTuUvVwxyzZ]?*) - arg2=-\'$(expr "X${option}X" : 'X-.[0-9]*\(.*\)' | sed "$escape") + (-[0123456789abcdEFGhHiIKlLnoPqrRsTuUvVwxyzZ]*[!0123456789]*) + # Something like -Fiv was specified, that is, $option contains more + # than one option of which the first option (in this example -F) + # doesn't take an argument. Split the first option into a standalone + # argument and continue parsing the rest of the options (in this example, + # replace -Fiv with -iv in the argument list and set option=-F). + # + # If there are digits [0-9] they are treated as if they were a single + # option character because this syntax is an alias for -C for GNU grep. + # For example, "grep -25F" is equivalent to "grep -C25 -F". If only + # digits are specified like "grep -25" we don't get here because the + # above pattern in the case-statement doesn't match such strings. + arg2=-\'$(LC_ALL=C expr "X${option}X" : 'X-.[0-9]*\(.*\)' | + LC_ALL=C sed "$escape") eval "set -- $arg2 "'${1+"$@"}' - option=$(expr "X$option" : 'X\(-.[0-9]*\)');; + option=$(LC_ALL=C expr "X$option" : 'X\(-.[0-9]*\)');; (--binary-*=* | --[lm]a*=* | --reg*=*) + # These options require an argument and an argument has been provided + # with the --foo=argument syntax. All is good. ;; - (-[ABCDefm] | --binary-* | --file | --[lm]a* | --reg*) + (-[ABCDefmX] | --binary-* | --file | --[lm]a* | --reg*) + # These options require an argument which should now be in $1. + # If it isn't, display an error and exit. case ${1?"$option option requires an argument"} in (*\'*) - optarg=" '"$(printf '%sX\n' "$1" | sed "$escape");; + optarg=" '"$(printf '%sX\n' "$1" | LC_ALL=C sed "$escape");; (*) optarg=" '$1'";; esac @@ -84,7 +107,8 @@ while test $# -ne 0; do (*) case $option in (*\'*) - operands="$operands '"$(printf '%sX\n' "$option" | sed "$escape");; + operands="$operands '"$(printf '%sX\n' "$option" | + LC_ALL=C sed "$escape");; (*) operands="$operands '$option'";; esac @@ -99,7 +123,7 @@ while test $# -ne 0; do (-[ef]* | --file | --file=* | --reg*) have_pat=1;; (--h | --he | --hel | --help) - echo "$usage" || exit 2 + printf '%s\n' "$usage" || exit 2 exit;; (-H | --wi | --wit | --with | --with- | --with-f | --with-fi \ | --with-fil | --with-file | --with-filen | --with-filena | --with-filenam \ @@ -115,13 +139,13 @@ while test $# -ne 0; do (-h | --no-f*) no_filename=1;; (-V | --v | --ve | --ver | --vers | --versi | --versio | --version) - echo "$version" || exit 2 + printf '%s\n' "$version" || exit 2 exit;; esac case $option in (*\'?*) - option=\'$(expr "X${option}X" : 'X\(.*\)' | sed "$escape");; + option=\'$(printf '%sX\n' "$option" | LC_ALL=C sed "$escape");; (*) option="'$option'";; esac @@ -129,18 +153,14 @@ while test $# -ne 0; do grep="$grep $option$optarg" done -if test $files_with_matches -eq 1 || test $files_without_matches -eq 1; then - grep="$grep -q" -fi - eval "set -- $operands "'${1+"$@"}' if test $have_pat -eq 0; then case ${1?"Missing pattern; try \`${0##*/} --help' for help"} in (*\'*) - grep="$grep -- '"$(printf '%sX\n' "$1" | sed "$escape");; + grep="$grep -e '"$(printf '%sX\n' "$1" | LC_ALL=C sed "$escape");; (*) - grep="$grep -- '$1'";; + grep="$grep -e '$1'";; esac shift fi @@ -156,19 +176,22 @@ res=1 for i; do case $i in - *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) uncompress="gzip -cdfq";; - *[-.]bz2 | *[-.]tbz | *.tbz2) uncompress="bzip2 -cdfq";; - *[-.]lzo | *[-.]tzo) uncompress="lzop -cdfq";; - *) uncompress="$xz -cdfq";; + *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) uncompress="gzip -cdf";; + *[-.]bz2 | *[-.]tbz | *.tbz2) uncompress="bzip2 -cdf";; + *[-.]lzo | *[-.]tzo) uncompress="lzop -cdf";; + *[-.]zst | *[-.]tzst) uncompress="zstd -cdfq";; # zstd needs -q. + *) uncompress="$xz -cdfqQ";; # -qQ to ignore warnings like unsupp. check. esac - # Fail if xz or grep (or sed) fails. + # xz_status will hold the decompressor's exit status. + # Exit status of grep (and in rare cases, printf or sed) is + # available as the exit status of this assignment command. xz_status=$( exec 5>&1 ($uncompress -- "$i" 5>&-; echo $? >&5) 3>&- | if test $files_with_matches -eq 1; then - eval "$grep" && { printf '%s\n' "$i" || exit 2; } + eval "$grep -q" && { printf '%s\n' "$i" || exit 2; } elif test $files_without_matches -eq 1; then - eval "$grep" || { + eval "$grep -q" || { r=$? if test $r -eq 1; then printf '%s\n' "$i" || r=2 @@ -178,39 +201,98 @@ for i; do elif test $with_filename -eq 0 && { test $# -eq 1 || test $no_filename -eq 1; }; then eval "$grep" + elif test $grep_supports_label -eq 1; then + # The grep implementation in use allows us to specify the filename + # that grep will prefix to the output lines. This is faster and + # less prone to security bugs than the fallback method that uses sed. + # This also avoids confusing output with GNU grep >= 3.5 (2020-09-27) + # which prints "binary file matches" to stderr instead of stdout. + # + # If reading from stdin, let grep use whatever name it prefers for + # stdin. With GNU grep it is a locale-specific translated string. + if test "x$i" = "x-"; then + eval "$grep -H" + else + eval "$grep -H --label \"\$i\"" + fi else + # Append a colon so that the last character will never be a newline + # which would otherwise get lost in shell command substitution. + i="$i:" + + # Escape & \ | and newlines only if such characters are present + # (speed optimization). case $i in (*' '* | *'&'* | *'\'* | *'|'*) - i=$(printf '%s\n' "$i" | - sed ' - $!N - $s/[&\|]/\\&/g - $s/\n/\\n/g - ');; + # If sed fails, set i to a known safe string to ensure that + # failing sed did not create a half-escaped dangerous string. + i=$(printf '%s\n' "$i" | LC_ALL=C sed 's/[&\|]/\\&/g; $!s/$/\\/') || + i='(unknown filename):';; esac - sed_script="s|^|$i:|" - # Fail if grep or sed fails. + # $i already ends with a colon so do not add it here. + sed_script="s|^|$i|" + + # If grep or sed fails, pick the larger value of the two exit statuses. + # If sed fails, use at least 2 since we use >= 2 to indicate errors. r=$( exec 4>&1 - (eval "$grep" 4>&-; echo $? >&4) 3>&- | sed "$sed_script" >&3 4>&- - ) || r=2 + (eval "$grep" 4>&-; echo $? >&4) 3>&- | + LC_ALL=C sed "$sed_script" >&3 4>&- + ) || { + sed_status=$? + test "$sed_status" -lt 2 && sed_status=2 + test "$r" -lt "$sed_status" && r=$sed_status + } exit $r fi >&3 5>&- ) r=$? - # fail occurred previously, nothing worse can happen - test $res -gt 1 && continue + # If grep or sed or other non-decompression command failed with a signal, + # exit immediately and ignore the possible remaining files. + # + # NOTE: Instead of 128 + signal_number, some shells use + # 256 + signal_number (ksh) or 384 + signal_number (yash). + # This is fine for us since their "exit" and "kill -l" commands take + # this into account. (At least the versions I tried do but there is + # a report of an old ksh variant whose "exit" truncates the exit status + # to 8 bits without any special handling for values indicating a signal.) + test "$r" -ge 128 && exit "$r" - test "$xz_status" -eq 0 || test "$xz_status" -eq 2 \ - || test "$(kill -l "$xz_status" 2> /dev/null)" = "PIPE" || r=2 + if test -z "$xz_status"; then + # Something unusual happened, for example, we got a signal and + # the exit status of the decompressor was never echoed and thus + # $xz_status is empty. Exit immediately and ignore the possible + # remaining files. + exit 2 + elif test "$xz_status" -ge 128; then + # The decompressor died due to a signal. SIGPIPE is ignored since it can + # occur if grep exits before the whole file has been decompressed (grep -q + # can do that). If the decompressor died with some other signal, exit + # immediately and ignore the possible remaining files. + test "$(kill -l "$xz_status" 2> /dev/null)" != "PIPE" && exit "$xz_status" + elif test "$xz_status" -gt 0; then + # Decompression failed but we will continue with the remaining + # files anwyway. Set exit status to at least 2 to indicate an error. + test "$r" -lt 2 && r=2 + fi - # still no match - test $r -eq 1 && continue - - # 0 == match, >=2 == fail - res=$r + # Since res=1 is the initial value, we only need to care about + # matches (r == 0) and errors (r >= 2) here; r == 1 can be ignored. + if test "$r" -ge 2; then + # An error occurred in decompressor, grep, or some other command. Update + # res unless a larger error code has been seen with an earlier file. + test "$res" -lt "$r" && res=$r + elif test "$r" -eq 0; then + # grep found a match and no errors occurred. Update res if no errors have + # occurred with earlier files. + test "$res" -eq 1 && res=0 + fi done -exit $res + +# 0: At least one file matched and no errors occurred. +# 1: No matches were found and no errors occurred. +# >=2: Error. It's unknown if matches were found. +exit "$res" diff --git a/msys2/usr/bin/lzgrep b/msys2/usr/bin/lzgrep index e0d06e2fb..1929dcdcd 100644 --- a/msys2/usr/bin/lzgrep +++ b/msys2/usr/bin/lzgrep @@ -29,12 +29,12 @@ xz='xz --format=auto' unset GZIP BZIP BZIP2 LZOP case ${0##*/} in - *egrep*) prog=xzegrep; grep=${GREP:-egrep};; - *fgrep*) prog=xzfgrep; grep=${GREP:-fgrep};; + *egrep*) prog=xzegrep; grep=${GREP:-grep -E};; + *fgrep*) prog=xzfgrep; grep=${GREP:-grep -F};; *) prog=xzgrep; grep=${GREP:-grep};; esac -version="$prog (XZ Utils) 5.2.5" +version="$prog (XZ Utils) 5.4.3" usage="Usage: ${0##*/} [OPTION]... [-e] PATTERN [FILE]... Look for instances of PATTERN in the input FILEs, using their @@ -42,7 +42,7 @@ uncompressed contents if they are compressed. OPTIONs are the same as for '$grep'. -Report bugs to ." +Report bugs to ." # sed script to escape all ' for the shell, and then (to handle trailing # newlines correctly) turn trailing X on last line into '. @@ -57,22 +57,45 @@ files_without_matches=0 no_filename=0 with_filename=0 +# See if -H and --label options are supported (GNU and *BSDs). +if test f:x = "$(eval "echo x | $grep -H --label=f x 2> /dev/null")"; then + grep_supports_label=1 +else + grep_supports_label=0 +fi + while test $# -ne 0; do option=$1 shift optarg= case $option in - (-[0123456789abcdhHiIKLlnoqrRsTuUvVwxyzZ]?*) - arg2=-\'$(expr "X${option}X" : 'X-.[0-9]*\(.*\)' | sed "$escape") + (-[0123456789abcdEFGhHiIKlLnoPqrRsTuUvVwxyzZ]*[!0123456789]*) + # Something like -Fiv was specified, that is, $option contains more + # than one option of which the first option (in this example -F) + # doesn't take an argument. Split the first option into a standalone + # argument and continue parsing the rest of the options (in this example, + # replace -Fiv with -iv in the argument list and set option=-F). + # + # If there are digits [0-9] they are treated as if they were a single + # option character because this syntax is an alias for -C for GNU grep. + # For example, "grep -25F" is equivalent to "grep -C25 -F". If only + # digits are specified like "grep -25" we don't get here because the + # above pattern in the case-statement doesn't match such strings. + arg2=-\'$(LC_ALL=C expr "X${option}X" : 'X-.[0-9]*\(.*\)' | + LC_ALL=C sed "$escape") eval "set -- $arg2 "'${1+"$@"}' - option=$(expr "X$option" : 'X\(-.[0-9]*\)');; + option=$(LC_ALL=C expr "X$option" : 'X\(-.[0-9]*\)');; (--binary-*=* | --[lm]a*=* | --reg*=*) + # These options require an argument and an argument has been provided + # with the --foo=argument syntax. All is good. ;; - (-[ABCDefm] | --binary-* | --file | --[lm]a* | --reg*) + (-[ABCDefmX] | --binary-* | --file | --[lm]a* | --reg*) + # These options require an argument which should now be in $1. + # If it isn't, display an error and exit. case ${1?"$option option requires an argument"} in (*\'*) - optarg=" '"$(printf '%sX\n' "$1" | sed "$escape");; + optarg=" '"$(printf '%sX\n' "$1" | LC_ALL=C sed "$escape");; (*) optarg=" '$1'";; esac @@ -84,7 +107,8 @@ while test $# -ne 0; do (*) case $option in (*\'*) - operands="$operands '"$(printf '%sX\n' "$option" | sed "$escape");; + operands="$operands '"$(printf '%sX\n' "$option" | + LC_ALL=C sed "$escape");; (*) operands="$operands '$option'";; esac @@ -99,7 +123,7 @@ while test $# -ne 0; do (-[ef]* | --file | --file=* | --reg*) have_pat=1;; (--h | --he | --hel | --help) - echo "$usage" || exit 2 + printf '%s\n' "$usage" || exit 2 exit;; (-H | --wi | --wit | --with | --with- | --with-f | --with-fi \ | --with-fil | --with-file | --with-filen | --with-filena | --with-filenam \ @@ -115,13 +139,13 @@ while test $# -ne 0; do (-h | --no-f*) no_filename=1;; (-V | --v | --ve | --ver | --vers | --versi | --versio | --version) - echo "$version" || exit 2 + printf '%s\n' "$version" || exit 2 exit;; esac case $option in (*\'?*) - option=\'$(expr "X${option}X" : 'X\(.*\)' | sed "$escape");; + option=\'$(printf '%sX\n' "$option" | LC_ALL=C sed "$escape");; (*) option="'$option'";; esac @@ -129,18 +153,14 @@ while test $# -ne 0; do grep="$grep $option$optarg" done -if test $files_with_matches -eq 1 || test $files_without_matches -eq 1; then - grep="$grep -q" -fi - eval "set -- $operands "'${1+"$@"}' if test $have_pat -eq 0; then case ${1?"Missing pattern; try \`${0##*/} --help' for help"} in (*\'*) - grep="$grep -- '"$(printf '%sX\n' "$1" | sed "$escape");; + grep="$grep -e '"$(printf '%sX\n' "$1" | LC_ALL=C sed "$escape");; (*) - grep="$grep -- '$1'";; + grep="$grep -e '$1'";; esac shift fi @@ -156,19 +176,22 @@ res=1 for i; do case $i in - *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) uncompress="gzip -cdfq";; - *[-.]bz2 | *[-.]tbz | *.tbz2) uncompress="bzip2 -cdfq";; - *[-.]lzo | *[-.]tzo) uncompress="lzop -cdfq";; - *) uncompress="$xz -cdfq";; + *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) uncompress="gzip -cdf";; + *[-.]bz2 | *[-.]tbz | *.tbz2) uncompress="bzip2 -cdf";; + *[-.]lzo | *[-.]tzo) uncompress="lzop -cdf";; + *[-.]zst | *[-.]tzst) uncompress="zstd -cdfq";; # zstd needs -q. + *) uncompress="$xz -cdfqQ";; # -qQ to ignore warnings like unsupp. check. esac - # Fail if xz or grep (or sed) fails. + # xz_status will hold the decompressor's exit status. + # Exit status of grep (and in rare cases, printf or sed) is + # available as the exit status of this assignment command. xz_status=$( exec 5>&1 ($uncompress -- "$i" 5>&-; echo $? >&5) 3>&- | if test $files_with_matches -eq 1; then - eval "$grep" && { printf '%s\n' "$i" || exit 2; } + eval "$grep -q" && { printf '%s\n' "$i" || exit 2; } elif test $files_without_matches -eq 1; then - eval "$grep" || { + eval "$grep -q" || { r=$? if test $r -eq 1; then printf '%s\n' "$i" || r=2 @@ -178,39 +201,98 @@ for i; do elif test $with_filename -eq 0 && { test $# -eq 1 || test $no_filename -eq 1; }; then eval "$grep" + elif test $grep_supports_label -eq 1; then + # The grep implementation in use allows us to specify the filename + # that grep will prefix to the output lines. This is faster and + # less prone to security bugs than the fallback method that uses sed. + # This also avoids confusing output with GNU grep >= 3.5 (2020-09-27) + # which prints "binary file matches" to stderr instead of stdout. + # + # If reading from stdin, let grep use whatever name it prefers for + # stdin. With GNU grep it is a locale-specific translated string. + if test "x$i" = "x-"; then + eval "$grep -H" + else + eval "$grep -H --label \"\$i\"" + fi else + # Append a colon so that the last character will never be a newline + # which would otherwise get lost in shell command substitution. + i="$i:" + + # Escape & \ | and newlines only if such characters are present + # (speed optimization). case $i in (*' '* | *'&'* | *'\'* | *'|'*) - i=$(printf '%s\n' "$i" | - sed ' - $!N - $s/[&\|]/\\&/g - $s/\n/\\n/g - ');; + # If sed fails, set i to a known safe string to ensure that + # failing sed did not create a half-escaped dangerous string. + i=$(printf '%s\n' "$i" | LC_ALL=C sed 's/[&\|]/\\&/g; $!s/$/\\/') || + i='(unknown filename):';; esac - sed_script="s|^|$i:|" - # Fail if grep or sed fails. + # $i already ends with a colon so do not add it here. + sed_script="s|^|$i|" + + # If grep or sed fails, pick the larger value of the two exit statuses. + # If sed fails, use at least 2 since we use >= 2 to indicate errors. r=$( exec 4>&1 - (eval "$grep" 4>&-; echo $? >&4) 3>&- | sed "$sed_script" >&3 4>&- - ) || r=2 + (eval "$grep" 4>&-; echo $? >&4) 3>&- | + LC_ALL=C sed "$sed_script" >&3 4>&- + ) || { + sed_status=$? + test "$sed_status" -lt 2 && sed_status=2 + test "$r" -lt "$sed_status" && r=$sed_status + } exit $r fi >&3 5>&- ) r=$? - # fail occurred previously, nothing worse can happen - test $res -gt 1 && continue + # If grep or sed or other non-decompression command failed with a signal, + # exit immediately and ignore the possible remaining files. + # + # NOTE: Instead of 128 + signal_number, some shells use + # 256 + signal_number (ksh) or 384 + signal_number (yash). + # This is fine for us since their "exit" and "kill -l" commands take + # this into account. (At least the versions I tried do but there is + # a report of an old ksh variant whose "exit" truncates the exit status + # to 8 bits without any special handling for values indicating a signal.) + test "$r" -ge 128 && exit "$r" - test "$xz_status" -eq 0 || test "$xz_status" -eq 2 \ - || test "$(kill -l "$xz_status" 2> /dev/null)" = "PIPE" || r=2 + if test -z "$xz_status"; then + # Something unusual happened, for example, we got a signal and + # the exit status of the decompressor was never echoed and thus + # $xz_status is empty. Exit immediately and ignore the possible + # remaining files. + exit 2 + elif test "$xz_status" -ge 128; then + # The decompressor died due to a signal. SIGPIPE is ignored since it can + # occur if grep exits before the whole file has been decompressed (grep -q + # can do that). If the decompressor died with some other signal, exit + # immediately and ignore the possible remaining files. + test "$(kill -l "$xz_status" 2> /dev/null)" != "PIPE" && exit "$xz_status" + elif test "$xz_status" -gt 0; then + # Decompression failed but we will continue with the remaining + # files anwyway. Set exit status to at least 2 to indicate an error. + test "$r" -lt 2 && r=2 + fi - # still no match - test $r -eq 1 && continue - - # 0 == match, >=2 == fail - res=$r + # Since res=1 is the initial value, we only need to care about + # matches (r == 0) and errors (r >= 2) here; r == 1 can be ignored. + if test "$r" -ge 2; then + # An error occurred in decompressor, grep, or some other command. Update + # res unless a larger error code has been seen with an earlier file. + test "$res" -lt "$r" && res=$r + elif test "$r" -eq 0; then + # grep found a match and no errors occurred. Update res if no errors have + # occurred with earlier files. + test "$res" -eq 1 && res=0 + fi done -exit $res + +# 0: At least one file matched and no errors occurred. +# 1: No matches were found and no errors occurred. +# >=2: Error. It's unknown if matches were found. +exit "$res" diff --git a/msys2/usr/bin/lzless b/msys2/usr/bin/lzless index a79285627..f23b23967 100644 --- a/msys2/usr/bin/lzless +++ b/msys2/usr/bin/lzless @@ -23,18 +23,18 @@ # specified via XZ_OPT. xz='xz --format=auto' -version='xzless (XZ Utils) 5.2.5' +version='xzless (XZ Utils) 5.4.3' usage="Usage: ${0##*/} [OPTION]... [FILE]... Like 'less', but operate on the uncompressed contents of xz compressed FILEs. Options are the same as for 'less'. -Report bugs to ." +Report bugs to ." case $1 in - --help) echo "$usage" || exit 2; exit;; - --version) echo "$version" || exit 2; exit;; + --help) printf '%s\n' "$usage" || exit 2; exit;; + --version) printf '%s\n' "$version" || exit 2; exit;; esac if test "${LESSMETACHARS+set}" != set; then @@ -47,12 +47,12 @@ if test "${LESSMETACHARS+set}" != set; then LESSMETACHARS="$space$tab$nl'"';*?"()<>[|&^`#\$%=~' fi -if test "$(less -V | { read _ ver _ && echo ${ver}; })" -ge 429; then +if test "$(less -V | { read _ ver _ && echo ${ver%%.*}; })" -ge 429; then # less 429 or later: LESSOPEN pipe will be used on # standard input if $LESSOPEN begins with |-. - LESSOPEN="|-$xz -cdfq -- %s" + LESSOPEN="|-$xz -cdfqQ -- %s" else - LESSOPEN="|$xz -cdfq -- %s" + LESSOPEN="|$xz -cdfqQ -- %s" fi export LESSMETACHARS LESSOPEN diff --git a/msys2/usr/bin/lzma.exe b/msys2/usr/bin/lzma.exe index 12546b971..0d72dcfa1 100644 Binary files a/msys2/usr/bin/lzma.exe and b/msys2/usr/bin/lzma.exe differ diff --git a/msys2/usr/bin/lzmadec.exe b/msys2/usr/bin/lzmadec.exe index dd25d3e5d..d8c6280c6 100644 Binary files a/msys2/usr/bin/lzmadec.exe and b/msys2/usr/bin/lzmadec.exe differ diff --git a/msys2/usr/bin/lzmainfo.exe b/msys2/usr/bin/lzmainfo.exe index 9943bd1b3..81c216cad 100644 Binary files a/msys2/usr/bin/lzmainfo.exe and b/msys2/usr/bin/lzmainfo.exe differ diff --git a/msys2/usr/bin/lzmore b/msys2/usr/bin/lzmore index bec0b0d38..5f60cc187 100644 --- a/msys2/usr/bin/lzmore +++ b/msys2/usr/bin/lzmore @@ -23,16 +23,16 @@ # specified via XZ_OPT. xz='xz --format=auto' -version='xzmore (XZ Utils) 5.2.5' +version='xzmore (XZ Utils) 5.4.3' usage="Usage: ${0##*/} [OPTION]... [FILE]... Like 'more', but operate on the uncompressed contents of xz compressed FILEs. -Report bugs to ." +Report bugs to ." case $1 in - --help) echo "$usage" || exit 2; exit;; - --version) echo "$version" || exit 2; exit;; + --help) printf '%s\n' "$usage" || exit 2; exit;; + --version) printf '%s\n' "$version" || exit 2; exit;; esac oldtty=`stty -g 2>/dev/null` @@ -50,9 +50,9 @@ fi if test $# = 0; then if test -t 0; then - echo "$usage"; exit 1 + printf '%s\n' "$usage"; exit 1 else - $xz -cdfq | eval "${PAGER:-more}" + $xz -cdfqQ | eval "${PAGER:-more}" fi else FIRST=1 @@ -69,8 +69,8 @@ else esac fi if test "$ANS" != 's'; then - echo "------> $FILE <------" - $xz -cdfq -- "$FILE" | eval "${PAGER:-more}" + printf '%s\n' "------> $FILE <------" + $xz -cdfqQ -- "$FILE" | eval "${PAGER:-more}" fi if test -t 1; then FIRST=0 diff --git a/msys2/usr/bin/makepkg b/msys2/usr/bin/makepkg index 7a436eca7..0c90c8054 100644 --- a/msys2/usr/bin/makepkg +++ b/msys2/usr/bin/makepkg @@ -40,7 +40,7 @@ unset CDPATH # Ensure GREP_OPTIONS doesn't screw with our grep calls unset GREP_OPTIONS -declare -r makepkg_version='6.0.0' +declare -r makepkg_version='6.0.2' declare -r confdir='/etc' declare -r BUILDSCRIPT='PKGBUILD' declare -r startdir="$(pwd -P)" @@ -711,7 +711,7 @@ create_package() { msg2 "$(gettext "Compressing package...")" # TODO: Maybe this can be set globally for robustness shopt -s -o pipefail - list_package_files | LANG=C bsdtar --no-fflags --no-xattrs --uid 1 --uname root --gid 1 --gname root -cnf - --null --files-from - | + list_package_files | LANG=C bsdtar --no-fflags --no-read-sparse --no-xattrs --uid 1 --uname root --gid 1 --gname root -cnf - --null --files-from - | compress_as "$PKGEXT" > "${pkg_file}" || ret=$? shopt -u -o pipefail @@ -744,7 +744,7 @@ create_debug_package() { fi done - pkgdesc="Detached debugging symbols for $pkgname" + pkgdesc="Detached debugging symbols for $pkgbase" pkgname=$pkgbase-debug create_package @@ -806,7 +806,7 @@ create_srcpackage() { # TODO: Maybe this can be set globally for robustness shopt -s -o pipefail - LANG=C bsdtar --no-fflags --uid 1 --uname root --gid 1 --gname root -cLf - ${pkgbase} | compress_as "$SRCEXT" > "${pkg_file}" || ret=$? + LANG=C bsdtar --no-fflags --no-read-sparse --uid 1 --uname root --gid 1 --gname root -cLf - ${pkgbase} | compress_as "$SRCEXT" > "${pkg_file}" || ret=$? shopt -u -o pipefail @@ -1207,8 +1207,11 @@ fi pkgbase=${pkgbase:-${pkgname[0]}} -# check the PKGBUILD for some basic requirements -lint_pkgbuild || exit $E_PKGBUILD_ERROR +# MSYS2: lint_pkgbuild is very slow with cygwin bash, so make it opt-in +if (( MAKEPKG_LINT_PKGBUILD )); then + # check the PKGBUILD for some basic requirements + lint_pkgbuild || exit $E_PKGBUILD_ERROR +fi if (( !SOURCEONLY && !PRINTSRCINFO )); then merge_arch_attrs diff --git a/msys2/usr/bin/makepkg-mingw b/msys2/usr/bin/makepkg-mingw index 786265229..15647f0be 100644 --- a/msys2/usr/bin/makepkg-mingw +++ b/msys2/usr/bin/makepkg-mingw @@ -62,70 +62,53 @@ fi readonly ALL_OFF BOLD BLUE GREEN RED YELLOW -# For backwards compatibility -if [[ -z "${MINGW_ARCH}" ]] && [[ -n "${MINGW_INSTALLS}" ]]; then - plain "MINGW_INSTALLS is deprecated, use MINGW_ARCH instead" - MINGW_ARCH="${MINGW_INSTALLS}"; -fi - -MINGW_ARCH="${MINGW_ARCH,,}" -MINGW_ARCH="${MINGW_ARCH:-mingw64 mingw32}" -MINGW_ARCH_ALLOWED=('mingw32' 'mingw64' 'clang32' 'clang64' 'clangarm64' 'ucrt64') - -for _mingw in ${MINGW_ARCH}; do - if [[ ! " ${MINGW_ARCH_ALLOWED[*]} " = *" ${_mingw} "* ]]; then - print_error "MINGW_ARCH: '${_mingw}' unknown, possible values: ${MINGW_ARCH_ALLOWED[*]}" - exit 1 - fi -done - +# For certain flags skip our processing and just forward to makepkg for _arg in "$@"; do - if [ "${_arg}" = "--help" ] || [ "${_arg}" = "-h" ] || [ "${_arg}" = "--version" ] || [ "${_arg}" = "-V" ]; then + if [ "${_arg}" = "--help" ] || [ "${_arg}" = "-h" ]; then + /usr/bin/makepkg "$@" + echo -e "makepkg-mingw:\n" + echo ' $MINGW_ARCH Space separated list of environments to build for.' + echo ' Defaults to the active environment.' + exit 0 + fi + if [ "${_arg}" = "--version" ] || [ "${_arg}" = "-V" ]; then /usr/bin/makepkg "$@" exit 0 fi done -for _mingw in ${MINGW_ARCH}; do - case ${_mingw} in - mingw32) - _msystem=MINGW32 - _compiler="/${_mingw}/bin/gcc.exe" - _toolchain="mingw-w64-i686-toolchain" - ;; - mingw64) - _msystem=MINGW64 - _compiler="/${_mingw}/bin/gcc.exe" - _toolchain="mingw-w64-x86_64-toolchain" - ;; - clang32) - _msystem=CLANG32 - _compiler="/${_mingw}/bin/clang.exe" - _toolchain="mingw-w64-clang-i686-clang" - ;; - clang64) - _msystem=CLANG64 - _compiler="/${_mingw}/bin/clang.exe" - _toolchain="mingw-w64-clang-x86_64-clang" - ;; - clangarm64) - _msystem=CLANGARM64 - _compiler="/${_mingw}/bin/clang.exe" - _toolchain="mingw-w64-clang-aarch64-clang" - ;; - ucrt64) - _msystem=UCRT64 - _compiler="/${_mingw}/bin/gcc.exe" - _toolchain="mingw-w64-ucrt-x86_64-gcc" - ;; - esac +# For backwards compatibility +if [[ -z "${MINGW_ARCH}" ]] && [[ -n "${MINGW_INSTALLS}" ]]; then + print_warning "MINGW_INSTALLS is deprecated, use MINGW_ARCH instead" + MINGW_ARCH="${MINGW_INSTALLS}"; +fi - if [ ! -f "${_compiler}" ]; then - print_warning "You don't have the required toolchain installed for ${_mingw}." - print_warning "To install it run: 'pacman -S ${_toolchain}'" +# Validate or set MINGW_ARCH +MINGW_ARCH_ALLOWED=('mingw32' 'mingw64' 'clang32' 'clang64' 'clangarm64' 'ucrt64') +MINGW_ARCH="${MINGW_ARCH,,}" +if [[ -z "$MINGW_ARCH" ]]; then + # In case MINGW_ARCH isn't set we default to MSYSTEM, or error out + if [[ " ${MINGW_ARCH_ALLOWED[*]} " = *" ${MSYSTEM,,} "* ]]; then + MINGW_ARCH="${MSYSTEM,,}" + else + print_warning 'MINGW_ARCH not set and not called from a MINGW environment, defaulting to mingw64. This will fail in the future!' + MINGW_ARCH='mingw64' fi +else + # Make sure MINGW_ARCH is valid + for _mingw in ${MINGW_ARCH}; do + if [[ ! " ${MINGW_ARCH_ALLOWED[*]} " = *" ${_mingw} "* ]]; then + print_error "MINGW_ARCH: '${_mingw}' unknown, possible values: ${MINGW_ARCH_ALLOWED[*]}" + exit 1 + fi + done +fi +print_msg1 "MINGW_ARCH: ${MINGW_ARCH}" - MSYSTEM="${_msystem}" \ +for _mingw in ${MINGW_ARCH}; do + print_msg2 "Building ${_mingw}..." + + MSYSTEM="${_mingw^^}" \ CHERE_INVOKING=1 \ bash -leo pipefail -c "/usr/bin/makepkg --config /etc/makepkg_mingw.conf \"\$@\"" bash "$@" diff --git a/msys2/usr/bin/makepkg-template b/msys2/usr/bin/makepkg-template index 7f01a49ef..6ec128024 100644 --- a/msys2/usr/bin/makepkg-template +++ b/msys2/usr/bin/makepkg-template @@ -188,7 +188,7 @@ sub usage { sub version { my ($exitstatus) = @_; - printf "makepkg-template (pacman) %s\n", '6.0.0'; + printf "makepkg-template (pacman) %s\n", '6.0.2'; print gettext( 'Copyright (c) 2013-2021 Pacman Development Team .'."\n". 'This is free software; see the source for copying conditions.'."\n". diff --git a/msys2/usr/bin/mcookie.exe b/msys2/usr/bin/mcookie.exe index ca443ce87..7e0757429 100644 Binary files a/msys2/usr/bin/mcookie.exe and b/msys2/usr/bin/mcookie.exe differ diff --git a/msys2/usr/bin/md5sum.exe b/msys2/usr/bin/md5sum.exe index b6ca92968..07ee88101 100644 Binary files a/msys2/usr/bin/md5sum.exe and b/msys2/usr/bin/md5sum.exe differ diff --git a/msys2/usr/bin/minidumper.exe b/msys2/usr/bin/minidumper.exe index cebed8c53..a98787846 100644 Binary files a/msys2/usr/bin/minidumper.exe and b/msys2/usr/bin/minidumper.exe differ diff --git a/msys2/usr/bin/mintty.exe b/msys2/usr/bin/mintty.exe index 84bc0b226..c0b5ab296 100644 Binary files a/msys2/usr/bin/mintty.exe and b/msys2/usr/bin/mintty.exe differ diff --git a/msys2/usr/bin/mkdir.exe b/msys2/usr/bin/mkdir.exe index 8f8c4ac08..50edba24c 100644 Binary files a/msys2/usr/bin/mkdir.exe and b/msys2/usr/bin/mkdir.exe differ diff --git a/msys2/usr/bin/mkfifo.exe b/msys2/usr/bin/mkfifo.exe index 501f24702..d00bf1452 100644 Binary files a/msys2/usr/bin/mkfifo.exe and b/msys2/usr/bin/mkfifo.exe differ diff --git a/msys2/usr/bin/mkfs.bfs.exe b/msys2/usr/bin/mkfs.bfs.exe index 683a9e46b..105ef4bd4 100644 Binary files a/msys2/usr/bin/mkfs.bfs.exe and b/msys2/usr/bin/mkfs.bfs.exe differ diff --git a/msys2/usr/bin/mkfs.cramfs.exe b/msys2/usr/bin/mkfs.cramfs.exe index 5a802942a..58a52b550 100644 Binary files a/msys2/usr/bin/mkfs.cramfs.exe and b/msys2/usr/bin/mkfs.cramfs.exe differ diff --git a/msys2/usr/bin/mkfs.exe b/msys2/usr/bin/mkfs.exe index c21e5b34f..23f099669 100644 Binary files a/msys2/usr/bin/mkfs.exe and b/msys2/usr/bin/mkfs.exe differ diff --git a/msys2/usr/bin/mkfs.minix.exe b/msys2/usr/bin/mkfs.minix.exe index 6195da0ec..d9158bf07 100644 Binary files a/msys2/usr/bin/mkfs.minix.exe and b/msys2/usr/bin/mkfs.minix.exe differ diff --git a/msys2/usr/bin/mkgroup.exe b/msys2/usr/bin/mkgroup.exe index 63030a735..c8cc6165f 100644 Binary files a/msys2/usr/bin/mkgroup.exe and b/msys2/usr/bin/mkgroup.exe differ diff --git a/msys2/usr/bin/mknod.exe b/msys2/usr/bin/mknod.exe index d891c5555..056700f0f 100644 Binary files a/msys2/usr/bin/mknod.exe and b/msys2/usr/bin/mknod.exe differ diff --git a/msys2/usr/bin/mkpasswd.exe b/msys2/usr/bin/mkpasswd.exe index 74ed056b2..db8ab989b 100644 Binary files a/msys2/usr/bin/mkpasswd.exe and b/msys2/usr/bin/mkpasswd.exe differ diff --git a/msys2/usr/bin/mkswap.exe b/msys2/usr/bin/mkswap.exe index 83807cf77..3d4f4c63a 100644 Binary files a/msys2/usr/bin/mkswap.exe and b/msys2/usr/bin/mkswap.exe differ diff --git a/msys2/usr/bin/mktemp.exe b/msys2/usr/bin/mktemp.exe index 6f06001e8..9aa786c5c 100644 Binary files a/msys2/usr/bin/mktemp.exe and b/msys2/usr/bin/mktemp.exe differ diff --git a/msys2/usr/bin/more.exe b/msys2/usr/bin/more.exe index 8d2fe689d..3ca94ed96 100644 Binary files a/msys2/usr/bin/more.exe and b/msys2/usr/bin/more.exe differ diff --git a/msys2/usr/bin/mount.exe b/msys2/usr/bin/mount.exe index b9acbb5ea..2454d6103 100644 Binary files a/msys2/usr/bin/mount.exe and b/msys2/usr/bin/mount.exe differ diff --git a/msys2/usr/bin/mpicalc.exe b/msys2/usr/bin/mpicalc.exe index 995b3651d..e3e89e911 100644 Binary files a/msys2/usr/bin/mpicalc.exe and b/msys2/usr/bin/mpicalc.exe differ diff --git a/msys2/usr/bin/msgattrib.exe b/msys2/usr/bin/msgattrib.exe index 5744bc495..1fa2fb5b1 100644 Binary files a/msys2/usr/bin/msgattrib.exe and b/msys2/usr/bin/msgattrib.exe differ diff --git a/msys2/usr/bin/msgcat.exe b/msys2/usr/bin/msgcat.exe index dcab18f14..fd73d4db2 100644 Binary files a/msys2/usr/bin/msgcat.exe and b/msys2/usr/bin/msgcat.exe differ diff --git a/msys2/usr/bin/msgcmp.exe b/msys2/usr/bin/msgcmp.exe index ec8be38c0..064de11e2 100644 Binary files a/msys2/usr/bin/msgcmp.exe and b/msys2/usr/bin/msgcmp.exe differ diff --git a/msys2/usr/bin/msgcomm.exe b/msys2/usr/bin/msgcomm.exe index 1c0832ea4..b77ea98ce 100644 Binary files a/msys2/usr/bin/msgcomm.exe and b/msys2/usr/bin/msgcomm.exe differ diff --git a/msys2/usr/bin/msgconv.exe b/msys2/usr/bin/msgconv.exe index cfa2e370c..32b43ef2f 100644 Binary files a/msys2/usr/bin/msgconv.exe and b/msys2/usr/bin/msgconv.exe differ diff --git a/msys2/usr/bin/msgen.exe b/msys2/usr/bin/msgen.exe index f8da10c44..504be0f65 100644 Binary files a/msys2/usr/bin/msgen.exe and b/msys2/usr/bin/msgen.exe differ diff --git a/msys2/usr/bin/msgexec.exe b/msys2/usr/bin/msgexec.exe index 95a827231..e83203c4e 100644 Binary files a/msys2/usr/bin/msgexec.exe and b/msys2/usr/bin/msgexec.exe differ diff --git a/msys2/usr/bin/msgfilter.exe b/msys2/usr/bin/msgfilter.exe index 8236741ed..ccb9ac4a2 100644 Binary files a/msys2/usr/bin/msgfilter.exe and b/msys2/usr/bin/msgfilter.exe differ diff --git a/msys2/usr/bin/msgfmt.exe b/msys2/usr/bin/msgfmt.exe index 2840d7060..643683611 100644 Binary files a/msys2/usr/bin/msgfmt.exe and b/msys2/usr/bin/msgfmt.exe differ diff --git a/msys2/usr/bin/msggrep.exe b/msys2/usr/bin/msggrep.exe index 1df54ad58..bb5aab300 100644 Binary files a/msys2/usr/bin/msggrep.exe and b/msys2/usr/bin/msggrep.exe differ diff --git a/msys2/usr/bin/msginit.exe b/msys2/usr/bin/msginit.exe index 1ac4409d4..0295690ba 100644 Binary files a/msys2/usr/bin/msginit.exe and b/msys2/usr/bin/msginit.exe differ diff --git a/msys2/usr/bin/msgmerge.exe b/msys2/usr/bin/msgmerge.exe index 8db8f60cd..2d135f81b 100644 Binary files a/msys2/usr/bin/msgmerge.exe and b/msys2/usr/bin/msgmerge.exe differ diff --git a/msys2/usr/bin/msgunfmt.exe b/msys2/usr/bin/msgunfmt.exe index 7dedab815..476765538 100644 Binary files a/msys2/usr/bin/msgunfmt.exe and b/msys2/usr/bin/msgunfmt.exe differ diff --git a/msys2/usr/bin/msguniq.exe b/msys2/usr/bin/msguniq.exe index efa91026d..56520ba8d 100644 Binary files a/msys2/usr/bin/msguniq.exe and b/msys2/usr/bin/msguniq.exe differ diff --git a/msys2/usr/bin/msys-2.0.dll b/msys2/usr/bin/msys-2.0.dll index e190b032a..0cacd6ba6 100644 Binary files a/msys2/usr/bin/msys-2.0.dll and b/msys2/usr/bin/msys-2.0.dll differ diff --git a/msys2/usr/bin/msys-argp-0.dll b/msys2/usr/bin/msys-argp-0.dll index f25dee539..56bae36be 100644 Binary files a/msys2/usr/bin/msys-argp-0.dll and b/msys2/usr/bin/msys-argp-0.dll differ diff --git a/msys2/usr/bin/msys-asn1-8.dll b/msys2/usr/bin/msys-asn1-8.dll index 560c5088d..8b5e4a826 100644 Binary files a/msys2/usr/bin/msys-asn1-8.dll and b/msys2/usr/bin/msys-asn1-8.dll differ diff --git a/msys2/usr/bin/msys-asprintf-0.dll b/msys2/usr/bin/msys-asprintf-0.dll index 3a625dec4..de5afe4d1 100644 Binary files a/msys2/usr/bin/msys-asprintf-0.dll and b/msys2/usr/bin/msys-asprintf-0.dll differ diff --git a/msys2/usr/bin/msys-assuan-0.dll b/msys2/usr/bin/msys-assuan-0.dll index e3f897e5b..4a6fec0d4 100644 Binary files a/msys2/usr/bin/msys-assuan-0.dll and b/msys2/usr/bin/msys-assuan-0.dll differ diff --git a/msys2/usr/bin/msys-atomic-1.dll b/msys2/usr/bin/msys-atomic-1.dll index c0f441e2f..101fb827c 100644 Binary files a/msys2/usr/bin/msys-atomic-1.dll and b/msys2/usr/bin/msys-atomic-1.dll differ diff --git a/msys2/usr/bin/msys-blkid-1.dll b/msys2/usr/bin/msys-blkid-1.dll index 232b25880..2e8623b44 100644 Binary files a/msys2/usr/bin/msys-blkid-1.dll and b/msys2/usr/bin/msys-blkid-1.dll differ diff --git a/msys2/usr/bin/msys-brotlicommon-1.dll b/msys2/usr/bin/msys-brotlicommon-1.dll index fc5c83f43..b7ba7cfec 100644 Binary files a/msys2/usr/bin/msys-brotlicommon-1.dll and b/msys2/usr/bin/msys-brotlicommon-1.dll differ diff --git a/msys2/usr/bin/msys-brotlidec-1.dll b/msys2/usr/bin/msys-brotlidec-1.dll index d774124b3..dd1573091 100644 Binary files a/msys2/usr/bin/msys-brotlidec-1.dll and b/msys2/usr/bin/msys-brotlidec-1.dll differ diff --git a/msys2/usr/bin/msys-brotlienc-1.dll b/msys2/usr/bin/msys-brotlienc-1.dll index 62491b59e..3b0f7881c 100644 Binary files a/msys2/usr/bin/msys-brotlienc-1.dll and b/msys2/usr/bin/msys-brotlienc-1.dll differ diff --git a/msys2/usr/bin/msys-bz2-1.dll b/msys2/usr/bin/msys-bz2-1.dll index d31f12053..ec39449a1 100644 Binary files a/msys2/usr/bin/msys-bz2-1.dll and b/msys2/usr/bin/msys-bz2-1.dll differ diff --git a/msys2/usr/bin/msys-charset-1.dll b/msys2/usr/bin/msys-charset-1.dll index 9119b2e0e..113616643 100644 Binary files a/msys2/usr/bin/msys-charset-1.dll and b/msys2/usr/bin/msys-charset-1.dll differ diff --git a/msys2/usr/bin/msys-com_err-1.dll b/msys2/usr/bin/msys-com_err-1.dll index 6d81bb617..952f3f1d7 100644 Binary files a/msys2/usr/bin/msys-com_err-1.dll and b/msys2/usr/bin/msys-com_err-1.dll differ diff --git a/msys2/usr/bin/msys-crypt-0.dll b/msys2/usr/bin/msys-crypt-0.dll deleted file mode 100644 index ea07d46d8..000000000 Binary files a/msys2/usr/bin/msys-crypt-0.dll and /dev/null differ diff --git a/msys2/usr/bin/msys-crypt-2.dll b/msys2/usr/bin/msys-crypt-2.dll new file mode 100644 index 000000000..a0cfbe8ae Binary files /dev/null and b/msys2/usr/bin/msys-crypt-2.dll differ diff --git a/msys2/usr/bin/msys-crypto-1.1.dll b/msys2/usr/bin/msys-crypto-1.1.dll deleted file mode 100644 index 77aa7db5b..000000000 Binary files a/msys2/usr/bin/msys-crypto-1.1.dll and /dev/null differ diff --git a/msys2/usr/bin/msys-crypto-3.dll b/msys2/usr/bin/msys-crypto-3.dll new file mode 100644 index 000000000..9e9dcd59b Binary files /dev/null and b/msys2/usr/bin/msys-crypto-3.dll differ diff --git a/msys2/usr/bin/msys-curl-4.dll b/msys2/usr/bin/msys-curl-4.dll index e1c179b72..7ec936851 100644 Binary files a/msys2/usr/bin/msys-curl-4.dll and b/msys2/usr/bin/msys-curl-4.dll differ diff --git a/msys2/usr/bin/msys-db-5.3.dll b/msys2/usr/bin/msys-db-5.3.dll index 27ba1ba68..97d4db87b 100644 Binary files a/msys2/usr/bin/msys-db-5.3.dll and b/msys2/usr/bin/msys-db-5.3.dll differ diff --git a/msys2/usr/bin/msys-db_cxx-5.3.dll b/msys2/usr/bin/msys-db_cxx-5.3.dll index 6699940f6..96afe5356 100644 Binary files a/msys2/usr/bin/msys-db_cxx-5.3.dll and b/msys2/usr/bin/msys-db_cxx-5.3.dll differ diff --git a/msys2/usr/bin/msys-edit-0.dll b/msys2/usr/bin/msys-edit-0.dll index 20909c2f4..d112219c1 100644 Binary files a/msys2/usr/bin/msys-edit-0.dll and b/msys2/usr/bin/msys-edit-0.dll differ diff --git a/msys2/usr/bin/msys-expat-1.dll b/msys2/usr/bin/msys-expat-1.dll index c2e3e309d..8853af606 100644 Binary files a/msys2/usr/bin/msys-expat-1.dll and b/msys2/usr/bin/msys-expat-1.dll differ diff --git a/msys2/usr/bin/msys-exslt-0.dll b/msys2/usr/bin/msys-exslt-0.dll index 2d270fde8..d5f2b85eb 100644 Binary files a/msys2/usr/bin/msys-exslt-0.dll and b/msys2/usr/bin/msys-exslt-0.dll differ diff --git a/msys2/usr/bin/msys-fdisk-1.dll b/msys2/usr/bin/msys-fdisk-1.dll index 9bbadd281..35d42dcfc 100644 Binary files a/msys2/usr/bin/msys-fdisk-1.dll and b/msys2/usr/bin/msys-fdisk-1.dll differ diff --git a/msys2/usr/bin/msys-ffi-7.dll b/msys2/usr/bin/msys-ffi-7.dll deleted file mode 100644 index b558b49eb..000000000 Binary files a/msys2/usr/bin/msys-ffi-7.dll and /dev/null differ diff --git a/msys2/usr/bin/msys-ffi-8.dll b/msys2/usr/bin/msys-ffi-8.dll new file mode 100644 index 000000000..ae1c17c38 Binary files /dev/null and b/msys2/usr/bin/msys-ffi-8.dll differ diff --git a/msys2/usr/bin/msys-formw6.dll b/msys2/usr/bin/msys-formw6.dll index 6fcdbb314..9481da809 100644 Binary files a/msys2/usr/bin/msys-formw6.dll and b/msys2/usr/bin/msys-formw6.dll differ diff --git a/msys2/usr/bin/msys-gcc_s-seh-1.dll b/msys2/usr/bin/msys-gcc_s-seh-1.dll index e622ed1e1..65bee0322 100644 Binary files a/msys2/usr/bin/msys-gcc_s-seh-1.dll and b/msys2/usr/bin/msys-gcc_s-seh-1.dll differ diff --git a/msys2/usr/bin/msys-gcrypt-20.dll b/msys2/usr/bin/msys-gcrypt-20.dll index ad75c923f..dedd64d2b 100644 Binary files a/msys2/usr/bin/msys-gcrypt-20.dll and b/msys2/usr/bin/msys-gcrypt-20.dll differ diff --git a/msys2/usr/bin/msys-gdbm-6.dll b/msys2/usr/bin/msys-gdbm-6.dll index f7c0c439e..a669aa0c6 100644 Binary files a/msys2/usr/bin/msys-gdbm-6.dll and b/msys2/usr/bin/msys-gdbm-6.dll differ diff --git a/msys2/usr/bin/msys-gdbm_compat-4.dll b/msys2/usr/bin/msys-gdbm_compat-4.dll index bda1bfea6..6b6e7eeb3 100644 Binary files a/msys2/usr/bin/msys-gdbm_compat-4.dll and b/msys2/usr/bin/msys-gdbm_compat-4.dll differ diff --git a/msys2/usr/bin/msys-gettextlib-0-19-8-1.dll b/msys2/usr/bin/msys-gettextlib-0-19-8-1.dll deleted file mode 100644 index adea36488..000000000 Binary files a/msys2/usr/bin/msys-gettextlib-0-19-8-1.dll and /dev/null differ diff --git a/msys2/usr/bin/msys-gettextlib-0-22.dll b/msys2/usr/bin/msys-gettextlib-0-22.dll new file mode 100644 index 000000000..843e0da69 Binary files /dev/null and b/msys2/usr/bin/msys-gettextlib-0-22.dll differ diff --git a/msys2/usr/bin/msys-gettextpo-0.dll b/msys2/usr/bin/msys-gettextpo-0.dll index c5b55516e..70b07f5aa 100644 Binary files a/msys2/usr/bin/msys-gettextpo-0.dll and b/msys2/usr/bin/msys-gettextpo-0.dll differ diff --git a/msys2/usr/bin/msys-gettextsrc-0-19-8-1.dll b/msys2/usr/bin/msys-gettextsrc-0-19-8-1.dll deleted file mode 100644 index 624512ac9..000000000 Binary files a/msys2/usr/bin/msys-gettextsrc-0-19-8-1.dll and /dev/null differ diff --git a/msys2/usr/bin/msys-gettextsrc-0-22.dll b/msys2/usr/bin/msys-gettextsrc-0-22.dll new file mode 100644 index 000000000..9f95f24a9 Binary files /dev/null and b/msys2/usr/bin/msys-gettextsrc-0-22.dll differ diff --git a/msys2/usr/bin/msys-gfortran-5.dll b/msys2/usr/bin/msys-gfortran-5.dll index 91b18c748..056355dd8 100644 Binary files a/msys2/usr/bin/msys-gfortran-5.dll and b/msys2/usr/bin/msys-gfortran-5.dll differ diff --git a/msys2/usr/bin/msys-gio-2.0-0.dll b/msys2/usr/bin/msys-gio-2.0-0.dll deleted file mode 100644 index aa1204fe4..000000000 Binary files a/msys2/usr/bin/msys-gio-2.0-0.dll and /dev/null differ diff --git a/msys2/usr/bin/msys-glib-2.0-0.dll b/msys2/usr/bin/msys-glib-2.0-0.dll deleted file mode 100644 index a56af53f9..000000000 Binary files a/msys2/usr/bin/msys-glib-2.0-0.dll and /dev/null differ diff --git a/msys2/usr/bin/msys-gmodule-2.0-0.dll b/msys2/usr/bin/msys-gmodule-2.0-0.dll deleted file mode 100644 index dace5cc27..000000000 Binary files a/msys2/usr/bin/msys-gmodule-2.0-0.dll and /dev/null differ diff --git a/msys2/usr/bin/msys-gmp-10.dll b/msys2/usr/bin/msys-gmp-10.dll index 9528024ba..44f110ce2 100644 Binary files a/msys2/usr/bin/msys-gmp-10.dll and b/msys2/usr/bin/msys-gmp-10.dll differ diff --git a/msys2/usr/bin/msys-gmpxx-4.dll b/msys2/usr/bin/msys-gmpxx-4.dll index e1a37aaf0..859400218 100644 Binary files a/msys2/usr/bin/msys-gmpxx-4.dll and b/msys2/usr/bin/msys-gmpxx-4.dll differ diff --git a/msys2/usr/bin/msys-gnutls-30.dll b/msys2/usr/bin/msys-gnutls-30.dll index 6f014b4ec..39bba7cc5 100644 Binary files a/msys2/usr/bin/msys-gnutls-30.dll and b/msys2/usr/bin/msys-gnutls-30.dll differ diff --git a/msys2/usr/bin/msys-gnutlsxx-28.dll b/msys2/usr/bin/msys-gnutlsxx-28.dll deleted file mode 100644 index dd0152cf0..000000000 Binary files a/msys2/usr/bin/msys-gnutlsxx-28.dll and /dev/null differ diff --git a/msys2/usr/bin/msys-gnutlsxx-30.dll b/msys2/usr/bin/msys-gnutlsxx-30.dll new file mode 100644 index 000000000..0d073461f Binary files /dev/null and b/msys2/usr/bin/msys-gnutlsxx-30.dll differ diff --git a/msys2/usr/bin/msys-gobject-2.0-0.dll b/msys2/usr/bin/msys-gobject-2.0-0.dll deleted file mode 100644 index 5031c94a7..000000000 Binary files a/msys2/usr/bin/msys-gobject-2.0-0.dll and /dev/null differ diff --git a/msys2/usr/bin/msys-gomp-1.dll b/msys2/usr/bin/msys-gomp-1.dll index e2437052f..6fbe41700 100644 Binary files a/msys2/usr/bin/msys-gomp-1.dll and b/msys2/usr/bin/msys-gomp-1.dll differ diff --git a/msys2/usr/bin/msys-gpg-error-0.dll b/msys2/usr/bin/msys-gpg-error-0.dll index 00e68e015..794a58424 100644 Binary files a/msys2/usr/bin/msys-gpg-error-0.dll and b/msys2/usr/bin/msys-gpg-error-0.dll differ diff --git a/msys2/usr/bin/msys-gpgme-11.dll b/msys2/usr/bin/msys-gpgme-11.dll index 900d6a0f5..ffb7b3a68 100644 Binary files a/msys2/usr/bin/msys-gpgme-11.dll and b/msys2/usr/bin/msys-gpgme-11.dll differ diff --git a/msys2/usr/bin/msys-gpgmepp-6.dll b/msys2/usr/bin/msys-gpgmepp-6.dll index c3a665fe1..150ab65a1 100644 Binary files a/msys2/usr/bin/msys-gpgmepp-6.dll and b/msys2/usr/bin/msys-gpgmepp-6.dll differ diff --git a/msys2/usr/bin/msys-gssapi-3.dll b/msys2/usr/bin/msys-gssapi-3.dll index f0dc4779e..f7828cdfa 100644 Binary files a/msys2/usr/bin/msys-gssapi-3.dll and b/msys2/usr/bin/msys-gssapi-3.dll differ diff --git a/msys2/usr/bin/msys-gthread-2.0-0.dll b/msys2/usr/bin/msys-gthread-2.0-0.dll deleted file mode 100644 index 409e19f5a..000000000 Binary files a/msys2/usr/bin/msys-gthread-2.0-0.dll and /dev/null differ diff --git a/msys2/usr/bin/msys-hcrypto-4.dll b/msys2/usr/bin/msys-hcrypto-4.dll index 97491ec67..a6c78af6b 100644 Binary files a/msys2/usr/bin/msys-hcrypto-4.dll and b/msys2/usr/bin/msys-hcrypto-4.dll differ diff --git a/msys2/usr/bin/msys-hdb-9.dll b/msys2/usr/bin/msys-hdb-9.dll index 0b4c25575..d6b10fad1 100644 Binary files a/msys2/usr/bin/msys-hdb-9.dll and b/msys2/usr/bin/msys-hdb-9.dll differ diff --git a/msys2/usr/bin/msys-heimbase-1.dll b/msys2/usr/bin/msys-heimbase-1.dll index 948c7e012..214b0f05b 100644 Binary files a/msys2/usr/bin/msys-heimbase-1.dll and b/msys2/usr/bin/msys-heimbase-1.dll differ diff --git a/msys2/usr/bin/msys-heimntlm-0.dll b/msys2/usr/bin/msys-heimntlm-0.dll index d636a29a1..734020414 100644 Binary files a/msys2/usr/bin/msys-heimntlm-0.dll and b/msys2/usr/bin/msys-heimntlm-0.dll differ diff --git a/msys2/usr/bin/msys-history8.dll b/msys2/usr/bin/msys-history8.dll index ae51ef1b4..8b1140ee8 100644 Binary files a/msys2/usr/bin/msys-history8.dll and b/msys2/usr/bin/msys-history8.dll differ diff --git a/msys2/usr/bin/msys-hogweed-6.dll b/msys2/usr/bin/msys-hogweed-6.dll index b72accbdb..2715257ce 100644 Binary files a/msys2/usr/bin/msys-hogweed-6.dll and b/msys2/usr/bin/msys-hogweed-6.dll differ diff --git a/msys2/usr/bin/msys-hx509-5.dll b/msys2/usr/bin/msys-hx509-5.dll index 14b9ebfe1..14ca43447 100644 Binary files a/msys2/usr/bin/msys-hx509-5.dll and b/msys2/usr/bin/msys-hx509-5.dll differ diff --git a/msys2/usr/bin/msys-iconv-2.dll b/msys2/usr/bin/msys-iconv-2.dll index 074485c89..42f610604 100644 Binary files a/msys2/usr/bin/msys-iconv-2.dll and b/msys2/usr/bin/msys-iconv-2.dll differ diff --git a/msys2/usr/bin/msys-icudata68.dll b/msys2/usr/bin/msys-icudata68.dll deleted file mode 100644 index c5daa98ca..000000000 Binary files a/msys2/usr/bin/msys-icudata68.dll and /dev/null differ diff --git a/msys2/usr/bin/msys-icui18n68.dll b/msys2/usr/bin/msys-icui18n68.dll deleted file mode 100644 index f013275b0..000000000 Binary files a/msys2/usr/bin/msys-icui18n68.dll and /dev/null differ diff --git a/msys2/usr/bin/msys-icuio68.dll b/msys2/usr/bin/msys-icuio68.dll deleted file mode 100644 index a2e6b4b33..000000000 Binary files a/msys2/usr/bin/msys-icuio68.dll and /dev/null differ diff --git a/msys2/usr/bin/msys-icutest68.dll b/msys2/usr/bin/msys-icutest68.dll deleted file mode 100644 index fbfe31cc3..000000000 Binary files a/msys2/usr/bin/msys-icutest68.dll and /dev/null differ diff --git a/msys2/usr/bin/msys-icutu68.dll b/msys2/usr/bin/msys-icutu68.dll deleted file mode 100644 index a6e763c1f..000000000 Binary files a/msys2/usr/bin/msys-icutu68.dll and /dev/null differ diff --git a/msys2/usr/bin/msys-icuuc68.dll b/msys2/usr/bin/msys-icuuc68.dll deleted file mode 100644 index 672180446..000000000 Binary files a/msys2/usr/bin/msys-icuuc68.dll and /dev/null differ diff --git a/msys2/usr/bin/msys-idn2-0.dll b/msys2/usr/bin/msys-idn2-0.dll index c39658449..d6f5f7747 100644 Binary files a/msys2/usr/bin/msys-idn2-0.dll and b/msys2/usr/bin/msys-idn2-0.dll differ diff --git a/msys2/usr/bin/msys-intl-8.dll b/msys2/usr/bin/msys-intl-8.dll index affdcd7ec..f0852c0ee 100644 Binary files a/msys2/usr/bin/msys-intl-8.dll and b/msys2/usr/bin/msys-intl-8.dll differ diff --git a/msys2/usr/bin/msys-kadm5clnt-7.dll b/msys2/usr/bin/msys-kadm5clnt-7.dll index 79981e20c..84ee93eaa 100644 Binary files a/msys2/usr/bin/msys-kadm5clnt-7.dll and b/msys2/usr/bin/msys-kadm5clnt-7.dll differ diff --git a/msys2/usr/bin/msys-kadm5srv-8.dll b/msys2/usr/bin/msys-kadm5srv-8.dll index 4da9bc5b4..8cebb10a6 100644 Binary files a/msys2/usr/bin/msys-kadm5srv-8.dll and b/msys2/usr/bin/msys-kadm5srv-8.dll differ diff --git a/msys2/usr/bin/msys-kafs-0.dll b/msys2/usr/bin/msys-kafs-0.dll index e43ef03c1..86c2842c9 100644 Binary files a/msys2/usr/bin/msys-kafs-0.dll and b/msys2/usr/bin/msys-kafs-0.dll differ diff --git a/msys2/usr/bin/msys-kdc-2.dll b/msys2/usr/bin/msys-kdc-2.dll index 0a0b7ea9e..5415853cc 100644 Binary files a/msys2/usr/bin/msys-kdc-2.dll and b/msys2/usr/bin/msys-kdc-2.dll differ diff --git a/msys2/usr/bin/msys-krb5-26.dll b/msys2/usr/bin/msys-krb5-26.dll index 6d65a5833..35d5386be 100644 Binary files a/msys2/usr/bin/msys-krb5-26.dll and b/msys2/usr/bin/msys-krb5-26.dll differ diff --git a/msys2/usr/bin/msys-ksba-8.dll b/msys2/usr/bin/msys-ksba-8.dll index 83017da94..8bd5f567b 100644 Binary files a/msys2/usr/bin/msys-ksba-8.dll and b/msys2/usr/bin/msys-ksba-8.dll differ diff --git a/msys2/usr/bin/msys-lz4-1.dll b/msys2/usr/bin/msys-lz4-1.dll index ec47efcb8..8ac41992b 100644 Binary files a/msys2/usr/bin/msys-lz4-1.dll and b/msys2/usr/bin/msys-lz4-1.dll differ diff --git a/msys2/usr/bin/msys-lzma-5.dll b/msys2/usr/bin/msys-lzma-5.dll index 6a7ef38ff..2c2248654 100644 Binary files a/msys2/usr/bin/msys-lzma-5.dll and b/msys2/usr/bin/msys-lzma-5.dll differ diff --git a/msys2/usr/bin/msys-magic-1.dll b/msys2/usr/bin/msys-magic-1.dll index 569290d7d..096989c26 100644 Binary files a/msys2/usr/bin/msys-magic-1.dll and b/msys2/usr/bin/msys-magic-1.dll differ diff --git a/msys2/usr/bin/msys-menuw6.dll b/msys2/usr/bin/msys-menuw6.dll index 1c6428b9e..ebfa5d6eb 100644 Binary files a/msys2/usr/bin/msys-menuw6.dll and b/msys2/usr/bin/msys-menuw6.dll differ diff --git a/msys2/usr/bin/msys-metalink-3.dll b/msys2/usr/bin/msys-metalink-3.dll deleted file mode 100644 index 5d93074be..000000000 Binary files a/msys2/usr/bin/msys-metalink-3.dll and /dev/null differ diff --git a/msys2/usr/bin/msys-mpfr-6.dll b/msys2/usr/bin/msys-mpfr-6.dll index 590f8ef72..1d672e64d 100644 Binary files a/msys2/usr/bin/msys-mpfr-6.dll and b/msys2/usr/bin/msys-mpfr-6.dll differ diff --git a/msys2/usr/bin/msys-ncurses++w6.dll b/msys2/usr/bin/msys-ncurses++w6.dll index 9ab6cdf94..4816800cf 100644 Binary files a/msys2/usr/bin/msys-ncurses++w6.dll and b/msys2/usr/bin/msys-ncurses++w6.dll differ diff --git a/msys2/usr/bin/msys-ncursesw6.dll b/msys2/usr/bin/msys-ncursesw6.dll index 632115a20..f39aa6a78 100644 Binary files a/msys2/usr/bin/msys-ncursesw6.dll and b/msys2/usr/bin/msys-ncursesw6.dll differ diff --git a/msys2/usr/bin/msys-nettle-8.dll b/msys2/usr/bin/msys-nettle-8.dll index 1cefddc52..0d4bfd13e 100644 Binary files a/msys2/usr/bin/msys-nettle-8.dll and b/msys2/usr/bin/msys-nettle-8.dll differ diff --git a/msys2/usr/bin/msys-nghttp2-14.dll b/msys2/usr/bin/msys-nghttp2-14.dll index 859a00cfb..910c19365 100644 Binary files a/msys2/usr/bin/msys-nghttp2-14.dll and b/msys2/usr/bin/msys-nghttp2-14.dll differ diff --git a/msys2/usr/bin/msys-otp-0.dll b/msys2/usr/bin/msys-otp-0.dll index e536825ec..2f61ee79c 100644 Binary files a/msys2/usr/bin/msys-otp-0.dll and b/msys2/usr/bin/msys-otp-0.dll differ diff --git a/msys2/usr/bin/msys-p11-kit-0.dll b/msys2/usr/bin/msys-p11-kit-0.dll index b783179e0..e7c6de305 100644 Binary files a/msys2/usr/bin/msys-p11-kit-0.dll and b/msys2/usr/bin/msys-p11-kit-0.dll differ diff --git a/msys2/usr/bin/msys-panelw6.dll b/msys2/usr/bin/msys-panelw6.dll index 165a1191a..49b03b2aa 100644 Binary files a/msys2/usr/bin/msys-panelw6.dll and b/msys2/usr/bin/msys-panelw6.dll differ diff --git a/msys2/usr/bin/msys-pcre-1.dll b/msys2/usr/bin/msys-pcre-1.dll index 6a9752477..6d37c51f8 100644 Binary files a/msys2/usr/bin/msys-pcre-1.dll and b/msys2/usr/bin/msys-pcre-1.dll differ diff --git a/msys2/usr/bin/msys-pcre2-8-0.dll b/msys2/usr/bin/msys-pcre2-8-0.dll index 9c9e62d74..b446d01d3 100644 Binary files a/msys2/usr/bin/msys-pcre2-8-0.dll and b/msys2/usr/bin/msys-pcre2-8-0.dll differ diff --git a/msys2/usr/bin/msys-perl5_32.dll b/msys2/usr/bin/msys-perl5_32.dll deleted file mode 100644 index 44513fc0a..000000000 Binary files a/msys2/usr/bin/msys-perl5_32.dll and /dev/null differ diff --git a/msys2/usr/bin/msys-perl5_36.dll b/msys2/usr/bin/msys-perl5_36.dll new file mode 100644 index 000000000..cd5510073 Binary files /dev/null and b/msys2/usr/bin/msys-perl5_36.dll differ diff --git a/msys2/usr/bin/msys-psl-5.dll b/msys2/usr/bin/msys-psl-5.dll index 806a7e792..495b2eac2 100644 Binary files a/msys2/usr/bin/msys-psl-5.dll and b/msys2/usr/bin/msys-psl-5.dll differ diff --git a/msys2/usr/bin/msys-quadmath-0.dll b/msys2/usr/bin/msys-quadmath-0.dll index 9fc16ffc2..734267836 100644 Binary files a/msys2/usr/bin/msys-quadmath-0.dll and b/msys2/usr/bin/msys-quadmath-0.dll differ diff --git a/msys2/usr/bin/msys-readline8.dll b/msys2/usr/bin/msys-readline8.dll index caea09dd5..383ad56aa 100644 Binary files a/msys2/usr/bin/msys-readline8.dll and b/msys2/usr/bin/msys-readline8.dll differ diff --git a/msys2/usr/bin/msys-roken-18.dll b/msys2/usr/bin/msys-roken-18.dll index 4d5c2d1f7..727a7d50f 100644 Binary files a/msys2/usr/bin/msys-roken-18.dll and b/msys2/usr/bin/msys-roken-18.dll differ diff --git a/msys2/usr/bin/msys-sl-0.dll b/msys2/usr/bin/msys-sl-0.dll index 1e5211f1b..82b544c56 100644 Binary files a/msys2/usr/bin/msys-sl-0.dll and b/msys2/usr/bin/msys-sl-0.dll differ diff --git a/msys2/usr/bin/msys-smartcols-1.dll b/msys2/usr/bin/msys-smartcols-1.dll index 027a0b1d7..6c64bfd66 100644 Binary files a/msys2/usr/bin/msys-smartcols-1.dll and b/msys2/usr/bin/msys-smartcols-1.dll differ diff --git a/msys2/usr/bin/msys-sqlite3-0.dll b/msys2/usr/bin/msys-sqlite3-0.dll index 3a34db0f3..a592ff814 100644 Binary files a/msys2/usr/bin/msys-sqlite3-0.dll and b/msys2/usr/bin/msys-sqlite3-0.dll differ diff --git a/msys2/usr/bin/msys-ssh2-1.dll b/msys2/usr/bin/msys-ssh2-1.dll index 36e887366..6b3e4a457 100644 Binary files a/msys2/usr/bin/msys-ssh2-1.dll and b/msys2/usr/bin/msys-ssh2-1.dll differ diff --git a/msys2/usr/bin/msys-ssl-1.1.dll b/msys2/usr/bin/msys-ssl-1.1.dll deleted file mode 100644 index 814608fd7..000000000 Binary files a/msys2/usr/bin/msys-ssl-1.1.dll and /dev/null differ diff --git a/msys2/usr/bin/msys-ssl-3.dll b/msys2/usr/bin/msys-ssl-3.dll new file mode 100644 index 000000000..7e8a7dc0e Binary files /dev/null and b/msys2/usr/bin/msys-ssl-3.dll differ diff --git a/msys2/usr/bin/msys-stdc++-6.dll b/msys2/usr/bin/msys-stdc++-6.dll index 5bc9fb40c..405032179 100644 Binary files a/msys2/usr/bin/msys-stdc++-6.dll and b/msys2/usr/bin/msys-stdc++-6.dll differ diff --git a/msys2/usr/bin/msys-tasn1-6.dll b/msys2/usr/bin/msys-tasn1-6.dll index 1ac76aa9c..81add91a7 100644 Binary files a/msys2/usr/bin/msys-tasn1-6.dll and b/msys2/usr/bin/msys-tasn1-6.dll differ diff --git a/msys2/usr/bin/msys-ticw6.dll b/msys2/usr/bin/msys-ticw6.dll index 82baf20e7..33fdf2684 100644 Binary files a/msys2/usr/bin/msys-ticw6.dll and b/msys2/usr/bin/msys-ticw6.dll differ diff --git a/msys2/usr/bin/msys-unistring-2.dll b/msys2/usr/bin/msys-unistring-2.dll deleted file mode 100644 index 42e81d2cc..000000000 Binary files a/msys2/usr/bin/msys-unistring-2.dll and /dev/null differ diff --git a/msys2/usr/bin/msys-unistring-5.dll b/msys2/usr/bin/msys-unistring-5.dll new file mode 100644 index 000000000..303338941 Binary files /dev/null and b/msys2/usr/bin/msys-unistring-5.dll differ diff --git a/msys2/usr/bin/msys-uuid-1.dll b/msys2/usr/bin/msys-uuid-1.dll index 22c3ab99a..93e70c0b4 100644 Binary files a/msys2/usr/bin/msys-uuid-1.dll and b/msys2/usr/bin/msys-uuid-1.dll differ diff --git a/msys2/usr/bin/msys-wind-0.dll b/msys2/usr/bin/msys-wind-0.dll index 0a44be512..cd082e79e 100644 Binary files a/msys2/usr/bin/msys-wind-0.dll and b/msys2/usr/bin/msys-wind-0.dll differ diff --git a/msys2/usr/bin/msys-xml2-2.dll b/msys2/usr/bin/msys-xml2-2.dll index 47b36aed6..ca8edaad5 100644 Binary files a/msys2/usr/bin/msys-xml2-2.dll and b/msys2/usr/bin/msys-xml2-2.dll differ diff --git a/msys2/usr/bin/msys-xslt-1.dll b/msys2/usr/bin/msys-xslt-1.dll index 7a61d6096..28e87e9f8 100644 Binary files a/msys2/usr/bin/msys-xslt-1.dll and b/msys2/usr/bin/msys-xslt-1.dll differ diff --git a/msys2/usr/bin/msys-z.dll b/msys2/usr/bin/msys-z.dll index 02a153d10..df6c55eb6 100644 Binary files a/msys2/usr/bin/msys-z.dll and b/msys2/usr/bin/msys-z.dll differ diff --git a/msys2/usr/bin/msys-zstd-1.dll b/msys2/usr/bin/msys-zstd-1.dll index 95d26d569..0657f8716 100644 Binary files a/msys2/usr/bin/msys-zstd-1.dll and b/msys2/usr/bin/msys-zstd-1.dll differ diff --git a/msys2/usr/bin/mv.exe b/msys2/usr/bin/mv.exe index 03498178a..2c125b8f5 100644 Binary files a/msys2/usr/bin/mv.exe and b/msys2/usr/bin/mv.exe differ diff --git a/msys2/usr/bin/namei.exe b/msys2/usr/bin/namei.exe index 02f449210..2b59bc3e0 100644 Binary files a/msys2/usr/bin/namei.exe and b/msys2/usr/bin/namei.exe differ diff --git a/msys2/usr/bin/nano.exe b/msys2/usr/bin/nano.exe index c737f8877..9d9a7a459 100644 Binary files a/msys2/usr/bin/nano.exe and b/msys2/usr/bin/nano.exe differ diff --git a/msys2/usr/bin/nettle-hash.exe b/msys2/usr/bin/nettle-hash.exe index 22de42fab..f52977d4b 100644 Binary files a/msys2/usr/bin/nettle-hash.exe and b/msys2/usr/bin/nettle-hash.exe differ diff --git a/msys2/usr/bin/nettle-lfib-stream.exe b/msys2/usr/bin/nettle-lfib-stream.exe index d65bba50f..f003c5b4b 100644 Binary files a/msys2/usr/bin/nettle-lfib-stream.exe and b/msys2/usr/bin/nettle-lfib-stream.exe differ diff --git a/msys2/usr/bin/nettle-pbkdf2.exe b/msys2/usr/bin/nettle-pbkdf2.exe index 14c991b50..7f59a9b89 100644 Binary files a/msys2/usr/bin/nettle-pbkdf2.exe and b/msys2/usr/bin/nettle-pbkdf2.exe differ diff --git a/msys2/usr/bin/ngettext.exe b/msys2/usr/bin/ngettext.exe index ea6ecff74..c8dc7a493 100644 Binary files a/msys2/usr/bin/ngettext.exe and b/msys2/usr/bin/ngettext.exe differ diff --git a/msys2/usr/bin/nice.exe b/msys2/usr/bin/nice.exe index 584d038f9..8772bbc37 100644 Binary files a/msys2/usr/bin/nice.exe and b/msys2/usr/bin/nice.exe differ diff --git a/msys2/usr/bin/nl.exe b/msys2/usr/bin/nl.exe index 336c78941..76761669f 100644 Binary files a/msys2/usr/bin/nl.exe and b/msys2/usr/bin/nl.exe differ diff --git a/msys2/usr/bin/nohup.exe b/msys2/usr/bin/nohup.exe index 238e770fa..fde05e149 100644 Binary files a/msys2/usr/bin/nohup.exe and b/msys2/usr/bin/nohup.exe differ diff --git a/msys2/usr/bin/nologin.exe b/msys2/usr/bin/nologin.exe index 5d20cec27..78638aa17 100644 Binary files a/msys2/usr/bin/nologin.exe and b/msys2/usr/bin/nologin.exe differ diff --git a/msys2/usr/bin/nproc.exe b/msys2/usr/bin/nproc.exe index 2d47568f3..2ac3cb8ba 100644 Binary files a/msys2/usr/bin/nproc.exe and b/msys2/usr/bin/nproc.exe differ diff --git a/msys2/usr/bin/numfmt.exe b/msys2/usr/bin/numfmt.exe index 564d39d6a..e31d86e39 100644 Binary files a/msys2/usr/bin/numfmt.exe and b/msys2/usr/bin/numfmt.exe differ diff --git a/msys2/usr/bin/od.exe b/msys2/usr/bin/od.exe index a0eea2c24..cbda2fce5 100644 Binary files a/msys2/usr/bin/od.exe and b/msys2/usr/bin/od.exe differ diff --git a/msys2/usr/bin/openssl.exe b/msys2/usr/bin/openssl.exe index bb3a53060..c6d31d68a 100644 Binary files a/msys2/usr/bin/openssl.exe and b/msys2/usr/bin/openssl.exe differ diff --git a/msys2/usr/bin/p11-kit.exe b/msys2/usr/bin/p11-kit.exe index c57e76430..90829ba01 100644 Binary files a/msys2/usr/bin/p11-kit.exe and b/msys2/usr/bin/p11-kit.exe differ diff --git a/msys2/usr/bin/paccache b/msys2/usr/bin/paccache index 590114600..32b50aa36 100644 --- a/msys2/usr/bin/paccache +++ b/msys2/usr/bin/paccache @@ -23,7 +23,7 @@ shopt -s nullglob shopt -s extglob declare -r myname='paccache' -declare -r myver='1.4.0' +declare -r myver='1.9.1' LIBRARY=${LIBRARY:-'/usr/share/makepkg'} @@ -56,7 +56,7 @@ pkgfilter() { } function parse_filename(filename, - atime, mtime, parts, count, i, pkgname, arch) { + atime, mtime, parts, count, i, pkgname, arch) { if (0 + min_atime + min_mtime != 0) { # atime and mtime are in the first two columns and the @@ -175,7 +175,7 @@ summarize() { printf -v output "finished: %d packages moved to '%s'" "$filecount" "$movedir" elif (( dryrun )); then if (( verbose )); then - msg "Candidate packages:" + msg 'Candidate packages:' while read -r pkg; do if (( verbose >= 3 )); then [[ $pkg =~ $pkg_re ]] && name=${BASH_REMATCH[1]} arch=${BASH_REMATCH[2]} @@ -202,38 +202,38 @@ usage() { cat < [options] [targets...] +Usage: ${myname} [options] [target ...] - Operations: - -d, --dryrun perform a dry run, only finding candidate packages. - -m, --move move candidate packages to "dir". - -r, --remove remove candidate packages. +Operations: + -d, --dryrun perform a dry run, only finding candidate packages + -m, --move move candidate packages to "dir" + -r, --remove remove candidate packages - Options: - --min-atime