sbuild (Debian sbuild) 0.78.1 (09 February 2019) on mjolnir +==============================================================================+ | mkvtoolnix 61.0.0-1 (amd64) Tue, 31 Aug 2021 02:18:33 +0000 | +==============================================================================+ Package: mkvtoolnix Version: 61.0.0-1 Source Version: 61.0.0-1 Distribution: unstable Machine Architecture: arm64 Host Architecture: amd64 Build Architecture: arm64 Build Profiles: cross nocheck Build Type: any I: NOTICE: Log filtering will replace 'var/run/schroot/mount/crossqa-sid-4f09339f-3911-4fb8-bb5d-4232c572e8cf' with '<>' I: NOTICE: Log filtering will replace 'build/mkvtoolnix-bmwWnv/resolver-eaqnQr' with '<>' +------------------------------------------------------------------------------+ | Update chroot | +------------------------------------------------------------------------------+ Get:1 http://mirror.einval.org/debian sid InRelease [165 kB] Ign:2 http://mirror.einval.org/debian sid/main Sources.diff/Index Ign:3 http://mirror.einval.org/debian sid/main arm64 Packages.diff/Index Get:2 http://mirror.einval.org/debian sid/main Sources.diff/Index [63.6 kB] Ign:2 http://mirror.einval.org/debian sid/main Sources.diff/Index Ign:3 http://mirror.einval.org/debian sid/main arm64 Packages.diff/Index Get:4 http://mirror.einval.org/debian sid/main amd64 Packages [8771 kB] Get:5 http://mirror.einval.org/debian sid/main Sources [9178 kB] Get:6 http://mirror.einval.org/debian sid/main arm64 Packages [8623 kB] Fetched 26.7 MB in 7s (3812 kB/s) Reading package lists... Reading package lists... Building dependency tree... Reading state information... Calculating upgrade... The following packages will be upgraded: binutils binutils-aarch64-linux-gnu binutils-common libbinutils libctf-nobfd0 libctf0 6 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 5676 kB of archives. After this operation, 441 kB disk space will be freed. Get:1 http://mirror.einval.org/debian sid/main arm64 libctf0 arm64 2.37-5 [87.3 kB] Get:2 http://mirror.einval.org/debian sid/main arm64 libctf-nobfd0 arm64 2.37-5 [149 kB] Get:3 http://mirror.einval.org/debian sid/main arm64 binutils arm64 2.37-5 [61.6 kB] Get:4 http://mirror.einval.org/debian sid/main arm64 binutils-aarch64-linux-gnu arm64 2.37-5 [2484 kB] Get:5 http://mirror.einval.org/debian sid/main arm64 libbinutils arm64 2.37-5 [609 kB] Get:6 http://mirror.einval.org/debian sid/main arm64 binutils-common arm64 2.37-5 [2286 kB] debconf: delaying package configuration, since apt-utils is not installed Fetched 5676 kB in 0s (61.4 MB/s) (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12270 files and directories currently installed.) Preparing to unpack .../0-libctf0_2.37-5_arm64.deb ... Unpacking libctf0:arm64 (2.37-5) over (2.37-4) ... Preparing to unpack .../1-libctf-nobfd0_2.37-5_arm64.deb ... Unpacking libctf-nobfd0:arm64 (2.37-5) over (2.37-4) ... Preparing to unpack .../2-binutils_2.37-5_arm64.deb ... Unpacking binutils (2.37-5) over (2.37-4) ... Preparing to unpack .../3-binutils-aarch64-linux-gnu_2.37-5_arm64.deb ... Unpacking binutils-aarch64-linux-gnu (2.37-5) over (2.37-4) ... Preparing to unpack .../4-libbinutils_2.37-5_arm64.deb ... Unpacking libbinutils:arm64 (2.37-5) over (2.37-4) ... Preparing to unpack .../5-binutils-common_2.37-5_arm64.deb ... Unpacking binutils-common:arm64 (2.37-5) over (2.37-4) ... Setting up binutils-common:arm64 (2.37-5) ... Setting up libctf-nobfd0:arm64 (2.37-5) ... Setting up libbinutils:arm64 (2.37-5) ... Setting up libctf0:arm64 (2.37-5) ... Setting up binutils-aarch64-linux-gnu (2.37-5) ... Setting up binutils (2.37-5) ... Processing triggers for libc-bin (2.31-17) ... +------------------------------------------------------------------------------+ | Fetch source files | +------------------------------------------------------------------------------+ Check APT --------- Checking available source versions... Download source files with APT ------------------------------ Reading package lists... Need to get 7673 kB of source archives. Get:1 http://mirror.einval.org/debian sid/main mkvtoolnix 61.0.0-1 (dsc) [2275 B] Get:2 http://mirror.einval.org/debian sid/main mkvtoolnix 61.0.0-1 (tar) [7662 kB] Get:3 http://mirror.einval.org/debian sid/main mkvtoolnix 61.0.0-1 (diff) [8140 B] Fetched 7673 kB in 0s (58.8 MB/s) Download complete and in download only mode I: NOTICE: Log filtering will replace 'build/mkvtoolnix-bmwWnv/mkvtoolnix-61.0.0' with '<>' I: NOTICE: Log filtering will replace 'build/mkvtoolnix-bmwWnv' with '<>' +------------------------------------------------------------------------------+ | Install package build dependencies | +------------------------------------------------------------------------------+ Setup apt archive ----------------- Merged Build-Depends: debhelper-compat (= 13), libboost-math-dev, rake, po4a, libbz2-dev, libflac-dev, libmatroska-dev (>= 1.6.3~), libogg-dev, libvorbis-dev, ruby:any, liblzo2-dev, zlib1g-dev, libcurl4-gnutls-dev, pkg-config, libboost-date-time-dev, libpugixml-dev, qtbase5-dev, libboost-filesystem-dev, nlohmann-json3-dev, xsltproc, docbook-xsl, qtmultimedia5-dev, libfmt-dev (>= 6.1.0), autoconf-archive, libcmark-dev (>= 0.28.3~), libdvdread-dev, libutfcpp-dev, libebml-dev (>= 1.4.2~), libgmp-dev, libc-dev, libstdc++-dev, build-essential:arm64, fakeroot:arm64, crossbuild-essential-amd64:arm64, libc-dev:amd64, libstdc++-dev:amd64 Filtered Build-Depends: debhelper-compat (= 13), libboost-math-dev, rake, po4a, libbz2-dev, libflac-dev, libmatroska-dev (>= 1.6.3~), libogg-dev, libvorbis-dev, ruby:any, liblzo2-dev, zlib1g-dev, libcurl4-gnutls-dev, pkg-config, libboost-date-time-dev, libpugixml-dev, qtbase5-dev, libboost-filesystem-dev, nlohmann-json3-dev, xsltproc, docbook-xsl, qtmultimedia5-dev, libfmt-dev (>= 6.1.0), autoconf-archive, libcmark-dev (>= 0.28.3~), libdvdread-dev, libutfcpp-dev, libebml-dev (>= 1.4.2~), libgmp-dev, libc-dev, libstdc++-dev, build-essential:arm64, fakeroot:arm64, crossbuild-essential-amd64:arm64, libc-dev:amd64, libstdc++-dev:amd64 dpkg-deb: building package 'sbuild-build-depends-main-dummy' in '/<>/apt_archive/sbuild-build-depends-main-dummy.deb'. Ign:1 copy:/<>/apt_archive ./ InRelease Get:2 copy:/<>/apt_archive ./ Release [963 B] Ign:3 copy:/<>/apt_archive ./ Release.gpg Get:4 copy:/<>/apt_archive ./ Sources [615 B] Get:5 copy:/<>/apt_archive ./ Packages [705 B] Fetched 2283 B in 0s (54.3 kB/s) Reading package lists... Reading package lists... Install main build dependencies (apt-based resolver) ---------------------------------------------------- Installing build dependencies Reading package lists... Building dependency tree... Reading state information... The following additional packages will be installed: autoconf autoconf-archive automake autopoint autotools-dev binutils-x86-64-linux-gnu bsdextrautils ca-certificates cpp-10-x86-64-linux-gnu cpp-x86-64-linux-gnu cross-config crossbuild-essential-amd64 debhelper dh-autoreconf dh-strip-nondeterminism docbook-xsl dpkg-cross dwz file fontconfig fontconfig-config fonts-dejavu-core g++-10-x86-64-linux-gnu g++-x86-64-linux-gnu gcc-10-base:amd64 gcc-10-cross-base gcc-10-x86-64-linux-gnu gcc-10-x86-64-linux-gnu-base gcc-11-base:amd64 gcc-11-cross-base gcc-x86-64-linux-gnu gettext gettext-base groff-base intltool-debian iso-codes libarchive-zip-perl libasan6:amd64 libasan6-amd64-cross libasound2:amd64 libasound2-data libasyncns0:amd64 libatomic1:amd64 libatomic1-amd64-cross libavahi-client3:amd64 libavahi-common-data:amd64 libavahi-common3:amd64 libblkid-dev:amd64 libblkid1:amd64 libboost-date-time-dev:amd64 libboost-date-time1.74-dev:amd64 libboost-date-time1.74.0:amd64 libboost-filesystem-dev:amd64 libboost-filesystem1.74-dev:amd64 libboost-filesystem1.74.0:amd64 libboost-math-dev:amd64 libboost-math1.74-dev:amd64 libboost-math1.74.0:amd64 libboost-serialization1.74-dev:amd64 libboost-serialization1.74.0:amd64 libboost-system1.74-dev:amd64 libboost-system1.74.0:amd64 libboost1.74-dev:amd64 libbrotli1 libbrotli1:amd64 libbsd0 libbsd0:amd64 libbz2-1.0:amd64 libbz2-dev:amd64 libc6:amd64 libc6-amd64-cross libc6-dev:amd64 libc6-dev-amd64-cross libcap2 libcap2:amd64 libcap2-bin libcmark-dev:amd64 libcmark0.30.1:amd64 libcom-err2:amd64 libconfig-auto-perl libconfig-inifiles-perl libcrypt-dev:amd64 libcrypt1:amd64 libcups2:amd64 libcurl3-gnutls:amd64 libcurl4-gnutls-dev:amd64 libdb5.3:amd64 libdbus-1-3 libdbus-1-3:amd64 libdebhelper-perl libdebian-dpkgcross-perl libdouble-conversion3 libdouble-conversion3:amd64 libdrm-amdgpu1:amd64 libdrm-common libdrm-intel1:amd64 libdrm-nouveau2:amd64 libdrm-radeon1:amd64 libdrm2:amd64 libdvdread-dev:amd64 libdvdread8:amd64 libdw1:amd64 libebml-dev:amd64 libebml5:amd64 libedit2 libedit2:amd64 libegl-dev:amd64 libegl-mesa0:amd64 libegl1:amd64 libelf1 libelf1:amd64 libevdev2 libevdev2:amd64 libexpat1 libexpat1:amd64 libffi-dev:amd64 libffi7:amd64 libfile-homedir-perl libfile-stripnondeterminism-perl libfile-which-perl libflac-dev:amd64 libflac8:amd64 libfmt-dev:amd64 libfmt7:amd64 libfontconfig1 libfontconfig1:amd64 libfreetype6 libfreetype6:amd64 libgbm1:amd64 libgcc-10-dev:amd64 libgcc-10-dev-amd64-cross libgcc-s1:amd64 libgcc-s1-amd64-cross libgcrypt20:amd64 libgl-dev:amd64 libgl1:amd64 libgl1-mesa-dri:amd64 libglapi-mesa:amd64 libglib2.0-0 libglib2.0-0:amd64 libglib2.0-bin libglib2.0-data libglib2.0-dev:amd64 libglib2.0-dev-bin libglu1-mesa:amd64 libglu1-mesa-dev:amd64 libglvnd0:amd64 libglx-dev:amd64 libglx-mesa0:amd64 libglx0:amd64 libgmp-dev:amd64 libgmp10:amd64 libgmpxx4ldbl:amd64 libgnutls30:amd64 libgomp1:amd64 libgomp1-amd64-cross libgpg-error0:amd64 libgraphite2-3:amd64 libgssapi-krb5-2:amd64 libgstreamer-gl1.0-0:amd64 libgstreamer-plugins-base1.0-0:amd64 libgstreamer1.0-0:amd64 libgudev-1.0-0 libgudev-1.0-0:amd64 libharfbuzz0b:amd64 libhogweed6:amd64 libice6:amd64 libicu67 libicu67:amd64 libidn2-0:amd64 libinput-bin libinput10:amd64 libio-string-perl libitm1:amd64 libitm1-amd64-cross libjpeg62-turbo:amd64 libk5crypto3:amd64 libkeyutils1:amd64 libkrb5-3:amd64 libkrb5support0:amd64 libldap-2.4-2:amd64 libllvm12:amd64 liblocale-gettext-perl liblsan0:amd64 liblsan0-amd64-cross liblz4-1:amd64 liblzma5:amd64 liblzo2-2:amd64 liblzo2-dev:amd64 libmagic-mgc libmagic1 libmatroska-dev:amd64 libmatroska7:amd64 libmd0 libmd0:amd64 libmd4c0:amd64 libmount-dev:amd64 libmount1:amd64 libmpdec3 libmtdev1:amd64 libncursesw6 libnettle8:amd64 libnghttp2-14:amd64 libnsl-dev:amd64 libnsl2:amd64 libogg-dev:amd64 libogg0:amd64 libopus0:amd64 liborc-0.4-0:amd64 libosp5 libp11-kit0:amd64 libpciaccess0:amd64 libpcre16-3:amd64 libpcre2-16-0 libpcre2-16-0:amd64 libpcre2-32-0:amd64 libpcre2-8-0:amd64 libpcre2-dev:amd64 libpcre2-posix2:amd64 libpcre3:amd64 libpcre3-dev:amd64 libpcre32-3:amd64 libpcrecpp0v5:amd64 libpipeline1 libpng16-16 libpng16-16:amd64 libpod-parser-perl libpsl5:amd64 libpthread-stubs0-dev:amd64 libpugixml-dev:amd64 libpugixml1v5:amd64 libpulse0:amd64 libpython3-stdlib libpython3.9-minimal libpython3.9-stdlib libqt5concurrent5:amd64 libqt5core5a libqt5core5a:amd64 libqt5dbus5 libqt5dbus5:amd64 libqt5gui5:amd64 libqt5multimedia5:amd64 libqt5multimediagsttools5:amd64 libqt5multimediaquick5:amd64 libqt5multimediawidgets5:amd64 libqt5network5:amd64 libqt5printsupport5:amd64 libqt5qml5:amd64 libqt5qmlmodels5:amd64 libqt5quick5:amd64 libqt5sql5:amd64 libqt5test5:amd64 libqt5widgets5:amd64 libqt5xml5:amd64 libquadmath0:amd64 libquadmath0-amd64-cross libreadline8 librtmp1:amd64 libruby2.7 libsasl2-2:amd64 libsasl2-modules-db:amd64 libselinux1:amd64 libselinux1-dev:amd64 libsensors-config libsensors5:amd64 libsepol1:amd64 libsepol1-dev:amd64 libsgmls-perl libsigsegv2 libsm6:amd64 libsndfile1:amd64 libsqlite3-0 libssh2-1:amd64 libssl1.1:amd64 libstdc++-10-dev:amd64 libstdc++-10-dev-amd64-cross libstdc++6:amd64 libstdc++6-amd64-cross libsub-override-perl libsystemd0:amd64 libtasn1-6:amd64 libtinfo6:amd64 libtirpc-dev:amd64 libtirpc3:amd64 libtool libtsan0:amd64 libtsan0-amd64-cross libubsan1:amd64 libubsan1-amd64-cross libuchardet0 libudev1:amd64 libunistring2:amd64 libunwind8:amd64 libutfcpp-dev:amd64 libuuid1:amd64 libvorbis-dev:amd64 libvorbis0a:amd64 libvorbisenc2:amd64 libvorbisfile3:amd64 libvulkan-dev:amd64 libvulkan1:amd64 libwacom-common libwacom2 libwacom2:amd64 libwayland-client0:amd64 libwayland-cursor0:amd64 libwayland-egl1:amd64 libwayland-server0:amd64 libwrap0:amd64 libx11-6:amd64 libx11-data libx11-dev:amd64 libx11-xcb1:amd64 libxau-dev:amd64 libxau6:amd64 libxcb-dri2-0:amd64 libxcb-dri3-0:amd64 libxcb-glx0:amd64 libxcb-icccm4:amd64 libxcb-image0:amd64 libxcb-keysyms1:amd64 libxcb-present0:amd64 libxcb-randr0:amd64 libxcb-render-util0:amd64 libxcb-render0:amd64 libxcb-shape0:amd64 libxcb-shm0:amd64 libxcb-sync1:amd64 libxcb-util1:amd64 libxcb-xfixes0:amd64 libxcb-xinerama0:amd64 libxcb-xinput0:amd64 libxcb-xkb1:amd64 libxcb1:amd64 libxcb1-dev:amd64 libxdmcp-dev:amd64 libxdmcp6:amd64 libxext-dev:amd64 libxext6:amd64 libxfixes3:amd64 libxkbcommon-x11-0:amd64 libxkbcommon0:amd64 libxml-libxml-perl libxml-namespacesupport-perl libxml-sax-base-perl libxml-sax-perl libxml-simple-perl libxml2 libxml2:amd64 libxrender1:amd64 libxshmfence1:amd64 libxslt1.1 libxxf86vm1:amd64 libyaml-0-2 libyaml-perl libyaml-tiny-perl libz3-4:amd64 libzstd1:amd64 linux-libc-dev:amd64 linux-libc-dev-amd64-cross m4 man-db media-types nlohmann-json3-dev opensp openssl pkg-config po-debconf po4a python3 python3-distutils python3-lib2to3 python3-minimal python3.9 python3.9-minimal qt5-qmake:amd64 qt5-qmake-bin qtbase5-dev:amd64 qtbase5-dev-tools qtchooser qtmultimedia5-dev:amd64 rake readline-common ruby ruby-minitest ruby-net-telnet ruby-power-assert ruby-rubygems ruby-test-unit ruby-xmlrpc ruby2.7 rubygems-integration sensible-utils sgml-base shared-mime-info ucf uuid-dev:amd64 x11-common x11proto-dev x11proto-xext-dev xkb-data xml-core xorg-sgml-doctools xsltproc xtrans-dev zlib1g:amd64 zlib1g-dev:amd64 Suggested packages: gnu-standards autoconf-doc binutils-doc gcc-10-locales cpp-doc dh-make dbtoepub docbook-xsl-doc-html | docbook-xsl-doc-pdf | docbook-xsl-doc-text | docbook-xsl-doc docbook-xsl-saxon fop libsaxon-java libxalan2-java libxslthl-java xalan binutils-multiarch g++-10-multilib-x86-64-linux-gnu gcc-10-doc gcc-10-multilib-x86-64-linux-gnu manpages-dev flex bison gdb-x86-64-linux-gnu gcc-doc gettext-doc libasprintf-dev libgettextpo-dev groff isoquery libasound2-plugins:amd64 alsa-utils libboost1.74-doc:amd64 libboost-atomic1.74-dev:amd64 libboost-chrono1.74-dev:amd64 libboost-container1.74-dev:amd64 libboost-context1.74-dev:amd64 libboost-contract1.74-dev:amd64 libboost-coroutine1.74-dev:amd64 libboost-exception1.74-dev:amd64 libboost-fiber1.74-dev:amd64 libboost-graph1.74-dev:amd64 libboost-graph-parallel1.74-dev:amd64 libboost-iostreams1.74-dev:amd64 libboost-locale1.74-dev:amd64 libboost-log1.74-dev:amd64 libboost-mpi1.74-dev:amd64 libboost-mpi-python1.74-dev:amd64 libboost-numpy1.74-dev:amd64 libboost-program-options1.74-dev:amd64 libboost-python1.74-dev:amd64 libboost-random1.74-dev:amd64 libboost-regex1.74-dev:amd64 libboost-stacktrace1.74-dev:amd64 libboost-test1.74-dev:amd64 libboost-thread1.74-dev:amd64 libboost-timer1.74-dev:amd64 libboost-type-erasure1.74-dev:amd64 libboost-wave1.74-dev:amd64 libboost1.74-tools-dev:amd64 libmpfrc++-dev:amd64 libntl-dev:amd64 libboost-nowide1.74-dev:amd64 glibc-doc:amd64 libc-l10n:amd64 locales:amd64 libnss-nis:amd64 libnss-nisplus:amd64 manpages-dev:amd64 cups-common:amd64 libcurl4-doc:amd64 libgnutls28-dev:amd64 libidn11-dev:amd64 libkrb5-dev:amd64 libldap2-dev:amd64 librtmp-dev:amd64 libssh2-1-dev:amd64 libdvdcss-dev:amd64 libdvdcss2:amd64 libfmt-doc:amd64 rng-tools:amd64 libgirepository1.0-dev:amd64 libglib2.0-doc:amd64 libgdk-pixbuf2.0-bin | libgdk-pixbuf2.0-dev libxml2-utils gmp-doc:amd64 libgmp10-doc:amd64 libmpfr-dev:amd64 gnutls-bin:amd64 krb5-doc:amd64 krb5-user:amd64 libvisual-0.4-plugins:amd64 gstreamer1.0-tools:amd64 opus-tools:amd64 pciutils:amd64 pulseaudio:amd64 libthai0 libthai0:amd64 qt5-image-formats-plugins:amd64 qtwayland5:amd64 qt5-qmltooling-plugins:amd64 lm-sensors lm-sensors:amd64 sgmlspl sgmls-doc libstdc++-10-doc:amd64 libtool-doc gfortran | fortran95-compiler gcj-jdk libx11-doc:amd64 libxcb-doc:amd64 libxext-doc:amd64 libyaml-shell-perl m4-doc apparmor less www-browser doc-base sgml-data libmail-box-perl python3-doc python3-tk python3-venv python3.9-venv python3.9-doc binfmt-support default-libmysqlclient-dev:amd64 firebird-dev:amd64 libpq-dev:amd64 libsqlite3-dev:amd64 unixodbc-dev:amd64 readline-doc ri ruby-dev bundler sgml-base-doc Recommended packages: docbook-xml curl | wget | lynx alsa-ucm-conf alsa-topology-conf bzip2-doc:amd64 libpam-cap dbus dbus:amd64 libarchive-cpio-perl xdg-user-dirs xdg-user-dirs:amd64 libgpg-error-l10n:amd64 gstreamer1.0-gl:amd64 gstreamer1.0-plugins-base:amd64 krb5-locales:amd64 libldap-common:amd64 libgpm2 publicsuffix:amd64 qttranslations5-l10n qttranslations5-l10n:amd64 libqt5svg5:amd64 qt5-gtk-platformtheme:amd64 libqt5sql5-sqlite:amd64 | libqt5sql5-mysql:amd64 | libqt5sql5-odbc:amd64 | libqt5sql5-psql:amd64 | libqt5sql5-tds:amd64 | libqt5sql5-ibase:amd64 libsasl2-modules:amd64 libltdl-dev uuid-runtime:amd64 mesa-vulkan-drivers:amd64 | vulkan-icd:amd64 libwacom-bin libwacom-bin:amd64 libwww-perl libxml-sax-expat-perl libyaml-libyaml-perl | libyaml-syck-perl libmail-sendmail-perl libterm-readkey-perl libtext-wrapi18n-perl libunicode-linebreak-perl libqt5opengl5-dev:amd64 zip fonts-lato libjs-jquery The following NEW packages will be installed: autoconf autoconf-archive automake autopoint autotools-dev binutils-x86-64-linux-gnu bsdextrautils ca-certificates cpp-10-x86-64-linux-gnu cpp-x86-64-linux-gnu cross-config crossbuild-essential-amd64 debhelper dh-autoreconf dh-strip-nondeterminism docbook-xsl dpkg-cross dwz file fontconfig fontconfig-config fonts-dejavu-core g++-10-x86-64-linux-gnu g++-x86-64-linux-gnu gcc-10-base:amd64 gcc-10-cross-base gcc-10-x86-64-linux-gnu gcc-10-x86-64-linux-gnu-base gcc-11-base:amd64 gcc-11-cross-base gcc-x86-64-linux-gnu gettext gettext-base groff-base intltool-debian iso-codes libarchive-zip-perl libasan6:amd64 libasan6-amd64-cross libasound2:amd64 libasound2-data libasyncns0:amd64 libatomic1:amd64 libatomic1-amd64-cross libavahi-client3:amd64 libavahi-common-data:amd64 libavahi-common3:amd64 libblkid-dev:amd64 libblkid1:amd64 libboost-date-time-dev:amd64 libboost-date-time1.74-dev:amd64 libboost-date-time1.74.0:amd64 libboost-filesystem-dev:amd64 libboost-filesystem1.74-dev:amd64 libboost-filesystem1.74.0:amd64 libboost-math-dev:amd64 libboost-math1.74-dev:amd64 libboost-math1.74.0:amd64 libboost-serialization1.74-dev:amd64 libboost-serialization1.74.0:amd64 libboost-system1.74-dev:amd64 libboost-system1.74.0:amd64 libboost1.74-dev:amd64 libbrotli1 libbrotli1:amd64 libbsd0 libbsd0:amd64 libbz2-1.0:amd64 libbz2-dev:amd64 libc6:amd64 libc6-amd64-cross libc6-dev:amd64 libc6-dev-amd64-cross libcap2 libcap2:amd64 libcap2-bin libcmark-dev:amd64 libcmark0.30.1:amd64 libcom-err2:amd64 libconfig-auto-perl libconfig-inifiles-perl libcrypt-dev:amd64 libcrypt1:amd64 libcups2:amd64 libcurl3-gnutls:amd64 libcurl4-gnutls-dev:amd64 libdb5.3:amd64 libdbus-1-3 libdbus-1-3:amd64 libdebhelper-perl libdebian-dpkgcross-perl libdouble-conversion3 libdouble-conversion3:amd64 libdrm-amdgpu1:amd64 libdrm-common libdrm-intel1:amd64 libdrm-nouveau2:amd64 libdrm-radeon1:amd64 libdrm2:amd64 libdvdread-dev:amd64 libdvdread8:amd64 libdw1:amd64 libebml-dev:amd64 libebml5:amd64 libedit2 libedit2:amd64 libegl-dev:amd64 libegl-mesa0:amd64 libegl1:amd64 libelf1 libelf1:amd64 libevdev2 libevdev2:amd64 libexpat1 libexpat1:amd64 libffi-dev:amd64 libffi7:amd64 libfile-homedir-perl libfile-stripnondeterminism-perl libfile-which-perl libflac-dev:amd64 libflac8:amd64 libfmt-dev:amd64 libfmt7:amd64 libfontconfig1 libfontconfig1:amd64 libfreetype6 libfreetype6:amd64 libgbm1:amd64 libgcc-10-dev:amd64 libgcc-10-dev-amd64-cross libgcc-s1:amd64 libgcc-s1-amd64-cross libgcrypt20:amd64 libgl-dev:amd64 libgl1:amd64 libgl1-mesa-dri:amd64 libglapi-mesa:amd64 libglib2.0-0 libglib2.0-0:amd64 libglib2.0-bin libglib2.0-data libglib2.0-dev:amd64 libglib2.0-dev-bin libglu1-mesa:amd64 libglu1-mesa-dev:amd64 libglvnd0:amd64 libglx-dev:amd64 libglx-mesa0:amd64 libglx0:amd64 libgmp-dev:amd64 libgmp10:amd64 libgmpxx4ldbl:amd64 libgnutls30:amd64 libgomp1:amd64 libgomp1-amd64-cross libgpg-error0:amd64 libgraphite2-3:amd64 libgssapi-krb5-2:amd64 libgstreamer-gl1.0-0:amd64 libgstreamer-plugins-base1.0-0:amd64 libgstreamer1.0-0:amd64 libgudev-1.0-0 libgudev-1.0-0:amd64 libharfbuzz0b:amd64 libhogweed6:amd64 libice6:amd64 libicu67 libicu67:amd64 libidn2-0:amd64 libinput-bin libinput10:amd64 libio-string-perl libitm1:amd64 libitm1-amd64-cross libjpeg62-turbo:amd64 libk5crypto3:amd64 libkeyutils1:amd64 libkrb5-3:amd64 libkrb5support0:amd64 libldap-2.4-2:amd64 libllvm12:amd64 liblocale-gettext-perl liblsan0:amd64 liblsan0-amd64-cross liblz4-1:amd64 liblzma5:amd64 liblzo2-2:amd64 liblzo2-dev:amd64 libmagic-mgc libmagic1 libmatroska-dev:amd64 libmatroska7:amd64 libmd0 libmd0:amd64 libmd4c0:amd64 libmount-dev:amd64 libmount1:amd64 libmpdec3 libmtdev1:amd64 libncursesw6 libnettle8:amd64 libnghttp2-14:amd64 libnsl-dev:amd64 libnsl2:amd64 libogg-dev:amd64 libogg0:amd64 libopus0:amd64 liborc-0.4-0:amd64 libosp5 libp11-kit0:amd64 libpciaccess0:amd64 libpcre16-3:amd64 libpcre2-16-0 libpcre2-16-0:amd64 libpcre2-32-0:amd64 libpcre2-8-0:amd64 libpcre2-dev:amd64 libpcre2-posix2:amd64 libpcre3:amd64 libpcre3-dev:amd64 libpcre32-3:amd64 libpcrecpp0v5:amd64 libpipeline1 libpng16-16 libpng16-16:amd64 libpod-parser-perl libpsl5:amd64 libpthread-stubs0-dev:amd64 libpugixml-dev:amd64 libpugixml1v5:amd64 libpulse0:amd64 libpython3-stdlib libpython3.9-minimal libpython3.9-stdlib libqt5concurrent5:amd64 libqt5core5a libqt5core5a:amd64 libqt5dbus5 libqt5dbus5:amd64 libqt5gui5:amd64 libqt5multimedia5:amd64 libqt5multimediagsttools5:amd64 libqt5multimediaquick5:amd64 libqt5multimediawidgets5:amd64 libqt5network5:amd64 libqt5printsupport5:amd64 libqt5qml5:amd64 libqt5qmlmodels5:amd64 libqt5quick5:amd64 libqt5sql5:amd64 libqt5test5:amd64 libqt5widgets5:amd64 libqt5xml5:amd64 libquadmath0:amd64 libquadmath0-amd64-cross libreadline8 librtmp1:amd64 libruby2.7 libsasl2-2:amd64 libsasl2-modules-db:amd64 libselinux1:amd64 libselinux1-dev:amd64 libsensors-config libsensors5:amd64 libsepol1:amd64 libsepol1-dev:amd64 libsgmls-perl libsigsegv2 libsm6:amd64 libsndfile1:amd64 libsqlite3-0 libssh2-1:amd64 libssl1.1:amd64 libstdc++-10-dev:amd64 libstdc++-10-dev-amd64-cross libstdc++6:amd64 libstdc++6-amd64-cross libsub-override-perl libsystemd0:amd64 libtasn1-6:amd64 libtinfo6:amd64 libtirpc-dev:amd64 libtirpc3:amd64 libtool libtsan0:amd64 libtsan0-amd64-cross libubsan1:amd64 libubsan1-amd64-cross libuchardet0 libudev1:amd64 libunistring2:amd64 libunwind8:amd64 libutfcpp-dev:amd64 libuuid1:amd64 libvorbis-dev:amd64 libvorbis0a:amd64 libvorbisenc2:amd64 libvorbisfile3:amd64 libvulkan-dev:amd64 libvulkan1:amd64 libwacom-common libwacom2 libwacom2:amd64 libwayland-client0:amd64 libwayland-cursor0:amd64 libwayland-egl1:amd64 libwayland-server0:amd64 libwrap0:amd64 libx11-6:amd64 libx11-data libx11-dev:amd64 libx11-xcb1:amd64 libxau-dev:amd64 libxau6:amd64 libxcb-dri2-0:amd64 libxcb-dri3-0:amd64 libxcb-glx0:amd64 libxcb-icccm4:amd64 libxcb-image0:amd64 libxcb-keysyms1:amd64 libxcb-present0:amd64 libxcb-randr0:amd64 libxcb-render-util0:amd64 libxcb-render0:amd64 libxcb-shape0:amd64 libxcb-shm0:amd64 libxcb-sync1:amd64 libxcb-util1:amd64 libxcb-xfixes0:amd64 libxcb-xinerama0:amd64 libxcb-xinput0:amd64 libxcb-xkb1:amd64 libxcb1:amd64 libxcb1-dev:amd64 libxdmcp-dev:amd64 libxdmcp6:amd64 libxext-dev:amd64 libxext6:amd64 libxfixes3:amd64 libxkbcommon-x11-0:amd64 libxkbcommon0:amd64 libxml-libxml-perl libxml-namespacesupport-perl libxml-sax-base-perl libxml-sax-perl libxml-simple-perl libxml2 libxml2:amd64 libxrender1:amd64 libxshmfence1:amd64 libxslt1.1 libxxf86vm1:amd64 libyaml-0-2 libyaml-perl libyaml-tiny-perl libz3-4:amd64 libzstd1:amd64 linux-libc-dev:amd64 linux-libc-dev-amd64-cross m4 man-db media-types nlohmann-json3-dev opensp openssl pkg-config po-debconf po4a python3 python3-distutils python3-lib2to3 python3-minimal python3.9 python3.9-minimal qt5-qmake:amd64 qt5-qmake-bin qtbase5-dev:amd64 qtbase5-dev-tools qtchooser qtmultimedia5-dev:amd64 rake readline-common ruby ruby-minitest ruby-net-telnet ruby-power-assert ruby-rubygems ruby-test-unit ruby-xmlrpc ruby2.7 rubygems-integration sbuild-build-depends-main-dummy:amd64 sensible-utils sgml-base shared-mime-info ucf uuid-dev:amd64 x11-common x11proto-dev x11proto-xext-dev xkb-data xml-core xorg-sgml-doctools xsltproc xtrans-dev zlib1g:amd64 zlib1g-dev:amd64 0 upgraded, 408 newly installed, 0 to remove and 0 not upgraded. Need to get 352 MB of archives. After this operation, 1648 MB of additional disk space will be used. Get:1 copy:/<>/apt_archive ./ sbuild-build-depends-main-dummy 0.invalid.0 [1136 B] Get:2 http://mirror.einval.org/debian sid/main arm64 bsdextrautils arm64 2.37.2-1 [143 kB] Get:3 http://mirror.einval.org/debian sid/main arm64 libuchardet0 arm64 0.0.7-1 [67.9 kB] Get:4 http://mirror.einval.org/debian sid/main arm64 groff-base arm64 1.22.4-6 [883 kB] Get:5 http://mirror.einval.org/debian sid/main arm64 libpipeline1 arm64 1.5.3-1 [33.0 kB] Get:6 http://mirror.einval.org/debian sid/main arm64 man-db arm64 2.9.4-2 [1336 kB] Get:7 http://mirror.einval.org/debian sid/main arm64 autoconf-archive all 20210219-1 [767 kB] Get:8 http://mirror.einval.org/debian sid/main arm64 liblocale-gettext-perl arm64 1.07-4+b1 [18.9 kB] Get:9 http://mirror.einval.org/debian sid/main amd64 gcc-11-base amd64 11.2.0-3 [204 kB] Get:10 http://mirror.einval.org/debian sid/main amd64 libgcc-s1 amd64 11.2.0-3 [42.0 kB] Get:11 http://mirror.einval.org/debian sid/main amd64 libc6 amd64 2.31-17 [2812 kB] Get:12 http://mirror.einval.org/debian sid/main amd64 libgpg-error0 amd64 1.42-3 [79.0 kB] Get:13 http://mirror.einval.org/debian sid/main amd64 libgcrypt20 amd64 1.8.7-6 [563 kB] Get:14 http://mirror.einval.org/debian sid/main amd64 liblz4-1 amd64 1.9.3-2 [57.5 kB] Get:15 http://mirror.einval.org/debian sid/main amd64 liblzma5 amd64 5.2.5-2 [168 kB] Get:16 http://mirror.einval.org/debian sid/main amd64 libzstd1 amd64 1.4.8+dfsg-2.1 [319 kB] Get:17 http://mirror.einval.org/debian sid/main amd64 libsystemd0 amd64 247.9-1 [376 kB] Get:18 http://mirror.einval.org/debian sid/main arm64 libpython3.9-minimal arm64 3.9.2-1 [797 kB] Get:19 http://mirror.einval.org/debian sid/main arm64 libexpat1 arm64 2.2.10-2 [83.1 kB] Get:20 http://mirror.einval.org/debian sid/main arm64 python3.9-minimal arm64 3.9.2-1 [1884 kB] Get:21 http://mirror.einval.org/debian sid/main arm64 python3-minimal arm64 3.9.2-3 [38.2 kB] Get:22 http://mirror.einval.org/debian sid/main arm64 media-types all 4.0.0 [30.3 kB] Get:23 http://mirror.einval.org/debian sid/main arm64 libmpdec3 arm64 2.5.1-2 [84.4 kB] Get:24 http://mirror.einval.org/debian sid/main arm64 libncursesw6 arm64 6.2+20201114-4 [121 kB] Get:25 http://mirror.einval.org/debian sid/main arm64 readline-common all 8.1-2 [73.8 kB] Get:26 http://mirror.einval.org/debian sid/main arm64 libreadline8 arm64 8.1-2 [160 kB] Get:27 http://mirror.einval.org/debian sid/main arm64 libsqlite3-0 arm64 3.36.0-2 [768 kB] Get:28 http://mirror.einval.org/debian sid/main arm64 libpython3.9-stdlib arm64 3.9.2-1 [1658 kB] Get:29 http://mirror.einval.org/debian sid/main arm64 python3.9 arm64 3.9.2-1 [466 kB] Get:30 http://mirror.einval.org/debian sid/main arm64 libpython3-stdlib arm64 3.9.2-3 [21.4 kB] Get:31 http://mirror.einval.org/debian sid/main arm64 python3 arm64 3.9.2-3 [37.9 kB] Get:32 http://mirror.einval.org/debian sid/main arm64 sgml-base all 1.30 [15.1 kB] Get:33 http://mirror.einval.org/debian sid/main amd64 gcc-10-base amd64 10.3.0-8 [205 kB] Get:34 http://mirror.einval.org/debian sid/main arm64 sensible-utils all 0.0.17 [21.5 kB] Get:35 http://mirror.einval.org/debian sid/main arm64 openssl arm64 1.1.1l-1 [829 kB] Get:36 http://mirror.einval.org/debian sid/main arm64 ca-certificates all 20210119 [158 kB] Get:37 http://mirror.einval.org/debian sid/main arm64 libmagic-mgc arm64 1:5.39-3 [273 kB] Get:38 http://mirror.einval.org/debian sid/main arm64 libmagic1 arm64 1:5.39-3 [121 kB] Get:39 http://mirror.einval.org/debian sid/main arm64 file arm64 1:5.39-3 [69.1 kB] Get:40 http://mirror.einval.org/debian sid/main arm64 gettext-base arm64 0.21-4 [173 kB] Get:41 http://mirror.einval.org/debian sid/main arm64 ucf all 3.0043 [74.0 kB] Get:42 http://mirror.einval.org/debian sid/main arm64 libsigsegv2 arm64 2.13-1 [34.7 kB] Get:43 http://mirror.einval.org/debian sid/main arm64 m4 arm64 1.4.18-5 [199 kB] Get:44 http://mirror.einval.org/debian sid/main arm64 autoconf all 2.71-2 [343 kB] Get:45 http://mirror.einval.org/debian sid/main arm64 autotools-dev all 20180224.1+nmu1 [77.1 kB] Get:46 http://mirror.einval.org/debian sid/main arm64 automake all 1:1.16.4-1 [819 kB] Get:47 http://mirror.einval.org/debian sid/main arm64 autopoint all 0.21-4 [510 kB] Get:48 http://mirror.einval.org/debian sid/main arm64 gcc-10-x86-64-linux-gnu-base arm64 10.2.1-6cross1 [202 kB] Get:49 http://mirror.einval.org/debian sid/main arm64 cpp-10-x86-64-linux-gnu arm64 10.2.1-6cross1 [46.2 MB] Get:50 http://mirror.einval.org/debian sid/main arm64 cpp-x86-64-linux-gnu arm64 4:10.2.1-1 [16.8 kB] Get:51 http://mirror.einval.org/debian sid/main arm64 cross-config all 2.6.18+nmu1 [31.5 kB] Get:52 http://mirror.einval.org/debian sid/main arm64 binutils-x86-64-linux-gnu arm64 2.37-5 [2045 kB] Get:53 http://mirror.einval.org/debian sid/main amd64 gcc-10-cross-base all 10.3.0-8cross1 [200 kB] Get:54 http://mirror.einval.org/debian sid/main arm64 gcc-11-cross-base all 11.2.0-2cross1 [200 kB] Get:55 http://mirror.einval.org/debian sid/main arm64 libgcc-s1-amd64-cross all 11.2.0-2cross1 [42.0 kB] Get:56 http://mirror.einval.org/debian sid/main arm64 libgomp1-amd64-cross all 11.2.0-2cross1 [104 kB] Get:57 http://mirror.einval.org/debian sid/main arm64 libitm1-amd64-cross all 11.2.0-2cross1 [25.5 kB] Get:58 http://mirror.einval.org/debian sid/main arm64 libatomic1-amd64-cross all 11.2.0-2cross1 [8780 B] Get:59 http://mirror.einval.org/debian sid/main arm64 libasan6-amd64-cross all 11.2.0-2cross1 [2135 kB] Get:60 http://mirror.einval.org/debian sid/main arm64 liblsan0-amd64-cross all 11.2.0-2cross1 [887 kB] Get:61 http://mirror.einval.org/debian sid/main arm64 libtsan0-amd64-cross all 11.2.0-2cross1 [2075 kB] Get:62 http://mirror.einval.org/debian sid/main arm64 libc6-amd64-cross all 2.31-17cross3 [1568 kB] Get:63 http://mirror.einval.org/debian sid/main arm64 libstdc++6-amd64-cross all 11.2.0-2cross1 [535 kB] Get:64 http://mirror.einval.org/debian sid/main arm64 libubsan1-amd64-cross all 11.2.0-2cross1 [838 kB] Get:65 http://mirror.einval.org/debian sid/main arm64 libquadmath0-amd64-cross all 11.2.0-2cross1 [145 kB] Get:66 http://mirror.einval.org/debian sid/main amd64 libgcc-10-dev-amd64-cross all 10.3.0-8cross1 [2323 kB] Get:67 http://mirror.einval.org/debian sid/main arm64 gcc-10-x86-64-linux-gnu arm64 10.2.1-6cross1 [52.2 MB] Get:68 http://mirror.einval.org/debian sid/main arm64 gcc-x86-64-linux-gnu arm64 4:10.2.1-1 [1460 B] Get:69 http://mirror.einval.org/debian sid/main arm64 linux-libc-dev-amd64-cross all 5.10.46-4cross3 [1468 kB] Get:70 http://mirror.einval.org/debian sid/main arm64 libc6-dev-amd64-cross all 2.31-17cross3 [2254 kB] Get:71 http://mirror.einval.org/debian sid/main amd64 libstdc++-10-dev-amd64-cross all 10.3.0-8cross1 [1733 kB] Get:72 http://mirror.einval.org/debian sid/main arm64 g++-10-x86-64-linux-gnu arm64 10.2.1-6cross1 [49.2 MB] Get:73 http://mirror.einval.org/debian sid/main arm64 g++-x86-64-linux-gnu arm64 4:10.2.1-1 [1180 B] Get:74 http://mirror.einval.org/debian sid/main arm64 libconfig-inifiles-perl all 3.000003-1 [52.1 kB] Get:75 http://mirror.einval.org/debian sid/main arm64 libio-string-perl all 1.08-3.1 [11.8 kB] Get:76 http://mirror.einval.org/debian sid/main arm64 libicu67 arm64 67.1-7 [8467 kB] Get:77 http://mirror.einval.org/debian sid/main arm64 libxml2 arm64 2.9.10+dfsg-6.7 [629 kB] Get:78 http://mirror.einval.org/debian sid/main arm64 libxml-namespacesupport-perl all 1.12-1.1 [14.9 kB] Get:79 http://mirror.einval.org/debian sid/main arm64 libxml-sax-base-perl all 1.09-1.1 [20.7 kB] Get:80 http://mirror.einval.org/debian sid/main arm64 libxml-sax-perl all 1.02+dfsg-1 [59.0 kB] Get:81 http://mirror.einval.org/debian sid/main arm64 libxml-libxml-perl arm64 2.0134+dfsg-2+b1 [326 kB] Get:82 http://mirror.einval.org/debian sid/main arm64 libxml-simple-perl all 2.25-1 [72.0 kB] Get:83 http://mirror.einval.org/debian sid/main arm64 libyaml-perl all 1.30-1 [67.7 kB] Get:84 http://mirror.einval.org/debian sid/main arm64 libconfig-auto-perl all 0.44-1.1 [19.0 kB] Get:85 http://mirror.einval.org/debian sid/main arm64 libfile-which-perl all 1.23-1 [16.6 kB] Get:86 http://mirror.einval.org/debian sid/main arm64 libfile-homedir-perl all 1.006-1 [43.8 kB] Get:87 http://mirror.einval.org/debian sid/main arm64 libdebian-dpkgcross-perl all 2.6.18+nmu1 [30.5 kB] Get:88 http://mirror.einval.org/debian sid/main arm64 dpkg-cross all 2.6.18+nmu1 [41.6 kB] Get:89 http://mirror.einval.org/debian sid/main arm64 crossbuild-essential-amd64 all 12.9 [6708 B] Get:90 http://mirror.einval.org/debian sid/main arm64 libdebhelper-perl all 13.4.1 [191 kB] Get:91 http://mirror.einval.org/debian sid/main arm64 libtool all 2.4.6-15 [513 kB] Get:92 http://mirror.einval.org/debian sid/main arm64 dh-autoreconf all 20 [17.1 kB] Get:93 http://mirror.einval.org/debian sid/main arm64 libarchive-zip-perl all 1.68-1 [104 kB] Get:94 http://mirror.einval.org/debian sid/main arm64 libsub-override-perl all 0.09-2 [10.2 kB] Get:95 http://mirror.einval.org/debian sid/main arm64 libfile-stripnondeterminism-perl all 1.12.0-1 [26.3 kB] Get:96 http://mirror.einval.org/debian sid/main arm64 dh-strip-nondeterminism all 1.12.0-1 [15.4 kB] Get:97 http://mirror.einval.org/debian sid/main arm64 libelf1 arm64 0.185-2 [171 kB] Get:98 http://mirror.einval.org/debian sid/main arm64 dwz arm64 0.14-1 [90.0 kB] Get:99 http://mirror.einval.org/debian sid/main arm64 gettext arm64 0.21-4 [1261 kB] Get:100 http://mirror.einval.org/debian sid/main arm64 intltool-debian all 0.35.0+20060710.5 [26.8 kB] Get:101 http://mirror.einval.org/debian sid/main arm64 po-debconf all 1.0.21+nmu1 [248 kB] Get:102 http://mirror.einval.org/debian sid/main arm64 debhelper all 13.4.1 [1039 kB] Get:103 http://mirror.einval.org/debian sid/main arm64 xml-core all 0.18+nmu1 [23.8 kB] Get:104 http://mirror.einval.org/debian sid/main arm64 docbook-xsl all 1.79.2+dfsg-1 [1237 kB] Get:105 http://mirror.einval.org/debian sid/main arm64 libbrotli1 arm64 1.0.9-2+b2 [267 kB] Get:106 http://mirror.einval.org/debian sid/main arm64 libpng16-16 arm64 1.6.37-3 [289 kB] Get:107 http://mirror.einval.org/debian sid/main arm64 libfreetype6 arm64 2.10.4+dfsg-1 [393 kB] Get:108 http://mirror.einval.org/debian sid/main arm64 fonts-dejavu-core all 2.37-2 [1069 kB] Get:109 http://mirror.einval.org/debian sid/main arm64 fontconfig-config all 2.13.1-4.2 [281 kB] Get:110 http://mirror.einval.org/debian sid/main arm64 libfontconfig1 arm64 2.13.1-4.2 [344 kB] Get:111 http://mirror.einval.org/debian sid/main arm64 fontconfig arm64 2.13.1-4.2 [416 kB] Get:112 http://mirror.einval.org/debian sid/main arm64 iso-codes all 4.7.0-1 [2836 kB] Get:113 http://mirror.einval.org/debian sid/main amd64 libasan6 amd64 11.2.0-3 [2049 kB] Get:114 http://mirror.einval.org/debian sid/main arm64 libasound2-data all 1.2.5.1-1 [38.6 kB] Get:115 http://mirror.einval.org/debian sid/main amd64 libasound2 amd64 1.2.5.1-1 [373 kB] Get:116 http://mirror.einval.org/debian sid/main amd64 libasyncns0 amd64 0.8-6+b2 [12.9 kB] Get:117 http://mirror.einval.org/debian sid/main amd64 libatomic1 amd64 11.2.0-3 [9060 B] Get:118 http://mirror.einval.org/debian sid/main amd64 libavahi-common-data amd64 0.8-5 [124 kB] Get:119 http://mirror.einval.org/debian sid/main amd64 libavahi-common3 amd64 0.8-5 [58.4 kB] Get:120 http://mirror.einval.org/debian sid/main amd64 libdbus-1-3 amd64 1.12.20-2 [219 kB] Get:121 http://mirror.einval.org/debian sid/main amd64 libavahi-client3 amd64 0.8-5 [62.1 kB] Get:122 http://mirror.einval.org/debian sid/main amd64 libblkid1 amd64 2.37.2-1 [201 kB] Get:123 http://mirror.einval.org/debian sid/main amd64 linux-libc-dev amd64 5.10.46-4 [1362 kB] Get:124 http://mirror.einval.org/debian sid/main amd64 libcrypt1 amd64 1:4.4.25-1 [89.1 kB] Get:125 http://mirror.einval.org/debian sid/main amd64 libcrypt-dev amd64 1:4.4.25-1 [104 kB] Get:126 http://mirror.einval.org/debian sid/main amd64 libcom-err2 amd64 1.46.4-1 [75.2 kB] Get:127 http://mirror.einval.org/debian sid/main amd64 libkrb5support0 amd64 1.18.3-7 [65.4 kB] Get:128 http://mirror.einval.org/debian sid/main amd64 libk5crypto3 amd64 1.18.3-7 [113 kB] Get:129 http://mirror.einval.org/debian sid/main amd64 libkeyutils1 amd64 1.6.1-2 [15.4 kB] Get:130 http://mirror.einval.org/debian sid/main amd64 libssl1.1 amd64 1.1.1l-1 [1555 kB] Get:131 http://mirror.einval.org/debian sid/main amd64 libkrb5-3 amd64 1.18.3-7 [363 kB] Get:132 http://mirror.einval.org/debian sid/main amd64 libgssapi-krb5-2 amd64 1.18.3-7 [165 kB] Get:133 http://mirror.einval.org/debian sid/main amd64 libtirpc3 amd64 1.3.2-2 [83.9 kB] Get:134 http://mirror.einval.org/debian sid/main amd64 libnsl2 amd64 1.3.0-2 [39.5 kB] Get:135 http://mirror.einval.org/debian sid/main amd64 libtirpc-dev amd64 1.3.2-2 [190 kB] Get:136 http://mirror.einval.org/debian sid/main amd64 libnsl-dev amd64 1.3.0-2 [66.4 kB] Get:137 http://mirror.einval.org/debian sid/main amd64 libc6-dev amd64 2.31-17 [2255 kB] Get:138 http://mirror.einval.org/debian sid/main amd64 libuuid1 amd64 2.37.2-1 [84.3 kB] Get:139 http://mirror.einval.org/debian sid/main amd64 uuid-dev amd64 2.37.2-1 [95.4 kB] Get:140 http://mirror.einval.org/debian sid/main amd64 libblkid-dev amd64 2.37.2-1 [231 kB] Get:141 http://mirror.einval.org/debian sid/main amd64 libgomp1 amd64 11.2.0-3 [106 kB] Get:142 http://mirror.einval.org/debian sid/main amd64 libitm1 amd64 11.2.0-3 [26.1 kB] Get:143 http://mirror.einval.org/debian sid/main amd64 liblsan0 amd64 11.2.0-3 [885 kB] Get:144 http://mirror.einval.org/debian sid/main amd64 libtsan0 amd64 11.2.0-3 [2015 kB] Get:145 http://mirror.einval.org/debian sid/main amd64 libstdc++6 amd64 11.2.0-3 [575 kB] Get:146 http://mirror.einval.org/debian sid/main amd64 libubsan1 amd64 11.2.0-3 [833 kB] Get:147 http://mirror.einval.org/debian sid/main amd64 libquadmath0 amd64 11.2.0-3 [145 kB] Get:148 http://mirror.einval.org/debian sid/main amd64 libgcc-10-dev amd64 10.3.0-8 [2322 kB] Get:149 http://mirror.einval.org/debian sid/main amd64 libstdc++-10-dev amd64 10.3.0-8 [1750 kB] Get:150 http://mirror.einval.org/debian sid/main amd64 libboost1.74-dev amd64 1.74.0-9 [9534 kB] Get:151 http://mirror.einval.org/debian sid/main amd64 libboost-date-time1.74.0 amd64 1.74.0-9 [241 kB] Get:152 http://mirror.einval.org/debian sid/main amd64 libboost-serialization1.74.0 amd64 1.74.0-9 [340 kB] Get:153 http://mirror.einval.org/debian sid/main amd64 libboost-serialization1.74-dev amd64 1.74.0-9 [383 kB] Get:154 http://mirror.einval.org/debian sid/main amd64 libboost-date-time1.74-dev amd64 1.74.0-9 [250 kB] Get:155 http://mirror.einval.org/debian sid/main amd64 libboost-date-time-dev amd64 1.74.0.3 [4332 B] Get:156 http://mirror.einval.org/debian sid/main amd64 libboost-filesystem1.74.0 amd64 1.74.0-9 [283 kB] Get:157 http://mirror.einval.org/debian sid/main amd64 libboost-system1.74.0 amd64 1.74.0-9 [241 kB] Get:158 http://mirror.einval.org/debian sid/main amd64 libboost-system1.74-dev amd64 1.74.0-9 [243 kB] Get:159 http://mirror.einval.org/debian sid/main amd64 libboost-filesystem1.74-dev amd64 1.74.0-9 [304 kB] Get:160 http://mirror.einval.org/debian sid/main amd64 libboost-filesystem-dev amd64 1.74.0.3 [4368 B] Get:161 http://mirror.einval.org/debian sid/main amd64 libboost-math1.74.0 amd64 1.74.0-9 [521 kB] Get:162 http://mirror.einval.org/debian sid/main amd64 libboost-math1.74-dev amd64 1.74.0-9 [599 kB] Get:163 http://mirror.einval.org/debian sid/main amd64 libboost-math-dev amd64 1.74.0.3 [4532 B] Get:164 http://mirror.einval.org/debian sid/main amd64 libbrotli1 amd64 1.0.9-2+b2 [279 kB] Get:165 http://mirror.einval.org/debian sid/main arm64 libmd0 arm64 1.0.3-3 [27.9 kB] Get:166 http://mirror.einval.org/debian sid/main arm64 libbsd0 arm64 0.11.3-1 [106 kB] Get:167 http://mirror.einval.org/debian sid/main amd64 libmd0 amd64 1.0.3-3 [28.0 kB] Get:168 http://mirror.einval.org/debian sid/main amd64 libbsd0 amd64 0.11.3-1 [108 kB] Get:169 http://mirror.einval.org/debian sid/main amd64 libbz2-1.0 amd64 1.0.8-4 [45.8 kB] Get:170 http://mirror.einval.org/debian sid/main amd64 libbz2-dev amd64 1.0.8-4 [30.1 kB] Get:171 http://mirror.einval.org/debian sid/main amd64 libcap2 amd64 1:2.44-1 [23.6 kB] Get:172 http://mirror.einval.org/debian sid/main arm64 libcap2 arm64 1:2.44-1 [23.2 kB] Get:173 http://mirror.einval.org/debian sid/main arm64 libcap2-bin arm64 1:2.44-1 [32.0 kB] Get:174 http://mirror.einval.org/debian sid/main amd64 libcmark0.30.1 amd64 0.30.1-2 [114 kB] Get:175 http://mirror.einval.org/debian sid/main amd64 libcmark-dev amd64 0.30.1-2 [135 kB] Get:176 http://mirror.einval.org/debian sid/main amd64 libgmp10 amd64 2:6.2.1+dfsg-1 [564 kB] Get:177 http://mirror.einval.org/debian sid/main amd64 libnettle8 amd64 3.7.3-1 [270 kB] Get:178 http://mirror.einval.org/debian sid/main amd64 libhogweed6 amd64 3.7.3-1 [320 kB] Get:179 http://mirror.einval.org/debian sid/main amd64 libunistring2 amd64 0.9.10-6 [384 kB] Get:180 http://mirror.einval.org/debian sid/main amd64 libidn2-0 amd64 2.3.2-2 [95.3 kB] Get:181 http://mirror.einval.org/debian sid/main amd64 libffi7 amd64 3.3-6 [23.1 kB] Get:182 http://mirror.einval.org/debian sid/main amd64 libp11-kit0 amd64 0.23.22-1 [337 kB] Get:183 http://mirror.einval.org/debian sid/main amd64 libtasn1-6 amd64 4.17.0-2 [55.2 kB] Get:184 http://mirror.einval.org/debian sid/main amd64 libgnutls30 amd64 3.7.2-2 [1350 kB] Get:185 http://mirror.einval.org/debian sid/main amd64 zlib1g amd64 1:1.2.11.dfsg-2 [90.4 kB] Get:186 http://mirror.einval.org/debian sid/main amd64 libcups2 amd64 2.3.3op2-6 [350 kB] Get:187 http://mirror.einval.org/debian sid/main amd64 libdb5.3 amd64 5.3.28+dfsg1-0.8 [687 kB] Get:188 http://mirror.einval.org/debian sid/main amd64 libsasl2-modules-db amd64 2.1.27+dfsg-2.1 [69.1 kB] Get:189 http://mirror.einval.org/debian sid/main amd64 libsasl2-2 amd64 2.1.27+dfsg-2.1 [106 kB] Get:190 http://mirror.einval.org/debian sid/main amd64 libldap-2.4-2 amd64 2.4.59+dfsg-1 [232 kB] Get:191 http://mirror.einval.org/debian sid/main amd64 libnghttp2-14 amd64 1.43.0-1 [77.1 kB] Get:192 http://mirror.einval.org/debian sid/main amd64 libpsl5 amd64 0.21.0-1.2 [57.3 kB] Get:193 http://mirror.einval.org/debian sid/main amd64 librtmp1 amd64 2.4+20151223.gitfa8646d.1-2+b2 [60.8 kB] Get:194 http://mirror.einval.org/debian sid/main amd64 libssh2-1 amd64 1.9.0-3 [169 kB] Get:195 http://mirror.einval.org/debian sid/main amd64 libcurl3-gnutls amd64 7.74.0-1.3+b1 [338 kB] Get:196 http://mirror.einval.org/debian sid/main amd64 libcurl4-gnutls-dev amd64 7.74.0-1.3+b1 [429 kB] Get:197 http://mirror.einval.org/debian sid/main arm64 libdbus-1-3 arm64 1.12.20-2 [208 kB] Get:198 http://mirror.einval.org/debian sid/main arm64 libdouble-conversion3 arm64 3.1.5-6.1 [37.6 kB] Get:199 http://mirror.einval.org/debian sid/main amd64 libdouble-conversion3 amd64 3.1.5-6.1 [41.0 kB] Get:200 http://mirror.einval.org/debian sid/main arm64 libdrm-common all 2.4.107-2 [15.2 kB] Get:201 http://mirror.einval.org/debian sid/main amd64 libdrm2 amd64 2.4.107-2 [43.8 kB] Get:202 http://mirror.einval.org/debian sid/main amd64 libdrm-amdgpu1 amd64 2.4.107-2 [28.8 kB] Get:203 http://mirror.einval.org/debian sid/main amd64 libpciaccess0 amd64 0.16-1 [53.6 kB] Get:204 http://mirror.einval.org/debian sid/main amd64 libdrm-intel1 amd64 2.4.107-2 [72.4 kB] Get:205 http://mirror.einval.org/debian sid/main amd64 libdrm-nouveau2 amd64 2.4.107-2 [27.1 kB] Get:206 http://mirror.einval.org/debian sid/main amd64 libdrm-radeon1 amd64 2.4.107-2 [30.4 kB] Get:207 http://mirror.einval.org/debian sid/main amd64 libdvdread8 amd64 6.1.2-1 [90.4 kB] Get:208 http://mirror.einval.org/debian sid/main arm64 libglib2.0-0 arm64 2.68.4-1 [1300 kB] Get:209 http://mirror.einval.org/debian sid/main arm64 pkg-config arm64 0.29.2-1 [63.6 kB] Get:210 http://mirror.einval.org/debian sid/main amd64 libdvdread-dev amd64 6.1.2-1 [106 kB] Get:211 http://mirror.einval.org/debian sid/main amd64 libelf1 amd64 0.185-2 [172 kB] Get:212 http://mirror.einval.org/debian sid/main amd64 libdw1 amd64 0.185-2 [236 kB] Get:213 http://mirror.einval.org/debian sid/main amd64 libebml5 amd64 1.4.2-1 [62.8 kB] Get:214 http://mirror.einval.org/debian sid/main amd64 libebml-dev amd64 1.4.2-1 [38.4 kB] Get:215 http://mirror.einval.org/debian sid/main amd64 libtinfo6 amd64 6.2+20201114-4 [341 kB] Get:216 http://mirror.einval.org/debian sid/main amd64 libedit2 amd64 3.1-20210714-1 [97.0 kB] Get:217 http://mirror.einval.org/debian sid/main arm64 libedit2 arm64 3.1-20210714-1 [92.5 kB] Get:218 http://mirror.einval.org/debian sid/main amd64 libglvnd0 amd64 1.3.2-1 [53.6 kB] Get:219 http://mirror.einval.org/debian sid/main amd64 libexpat1 amd64 2.2.10-2 [96.9 kB] Get:220 http://mirror.einval.org/debian sid/main amd64 libwayland-server0 amd64 1.19.0-2 [34.5 kB] Get:221 http://mirror.einval.org/debian sid/main amd64 libgbm1 amd64 21.2.1-1 [76.6 kB] Get:222 http://mirror.einval.org/debian sid/main amd64 libglapi-mesa amd64 21.2.1-1 [74.6 kB] Get:223 http://mirror.einval.org/debian sid/main amd64 libwayland-client0 amd64 1.19.0-2 [27.0 kB] Get:224 http://mirror.einval.org/debian sid/main amd64 libxau6 amd64 1:1.0.9-1 [19.7 kB] Get:225 http://mirror.einval.org/debian sid/main amd64 libxdmcp6 amd64 1:1.1.2-3 [26.3 kB] Get:226 http://mirror.einval.org/debian sid/main amd64 libxcb1 amd64 1.14-3 [140 kB] Get:227 http://mirror.einval.org/debian sid/main arm64 libx11-data all 2:1.7.2-1 [311 kB] Get:228 http://mirror.einval.org/debian sid/main amd64 libx11-6 amd64 2:1.7.2-1 [772 kB] Get:229 http://mirror.einval.org/debian sid/main amd64 libx11-xcb1 amd64 2:1.7.2-1 [203 kB] Get:230 http://mirror.einval.org/debian sid/main amd64 libxcb-dri2-0 amd64 1.14-3 [103 kB] Get:231 http://mirror.einval.org/debian sid/main amd64 libxcb-dri3-0 amd64 1.14-3 [102 kB] Get:232 http://mirror.einval.org/debian sid/main amd64 libxcb-present0 amd64 1.14-3 [101 kB] Get:233 http://mirror.einval.org/debian sid/main amd64 libxcb-sync1 amd64 1.14-3 [105 kB] Get:234 http://mirror.einval.org/debian sid/main amd64 libxcb-xfixes0 amd64 1.14-3 [105 kB] Get:235 http://mirror.einval.org/debian sid/main amd64 libxshmfence1 amd64 1.3-1 [8820 B] Get:236 http://mirror.einval.org/debian sid/main amd64 libegl-mesa0 amd64 21.2.1-1 [144 kB] Get:237 http://mirror.einval.org/debian sid/main amd64 libegl1 amd64 1.3.2-1 [34.8 kB] Get:238 http://mirror.einval.org/debian sid/main amd64 libxcb-glx0 amd64 1.14-3 [118 kB] Get:239 http://mirror.einval.org/debian sid/main amd64 libxcb-shm0 amd64 1.14-3 [101 kB] Get:240 http://mirror.einval.org/debian sid/main amd64 libxext6 amd64 2:1.3.3-1.1 [52.7 kB] Get:241 http://mirror.einval.org/debian sid/main amd64 libxfixes3 amd64 1:5.0.3-2 [22.1 kB] Get:242 http://mirror.einval.org/debian sid/main amd64 libxxf86vm1 amd64 1:1.1.4-1+b2 [20.8 kB] Get:243 http://mirror.einval.org/debian sid/main amd64 libicu67 amd64 67.1-7 [8622 kB] Get:244 http://mirror.einval.org/debian sid/main amd64 libxml2 amd64 2.9.10+dfsg-6.7 [693 kB] Get:245 http://mirror.einval.org/debian sid/main amd64 libz3-4 amd64 4.8.10-1 [6949 kB] Get:246 http://mirror.einval.org/debian sid/main amd64 libllvm12 amd64 1:12.0.1-6 [19.1 MB] Get:247 http://mirror.einval.org/debian sid/main arm64 libsensors-config all 1:3.6.0-7 [32.3 kB] Get:248 http://mirror.einval.org/debian sid/main amd64 libsensors5 amd64 1:3.6.0-7 [52.3 kB] Get:249 http://mirror.einval.org/debian sid/main amd64 libvulkan1 amd64 1.2.162.0-1 [103 kB] Get:250 http://mirror.einval.org/debian sid/main amd64 libgl1-mesa-dri amd64 21.2.1-1 [10.4 MB] Get:251 http://mirror.einval.org/debian sid/main amd64 libglx-mesa0 amd64 21.2.1-1 [184 kB] Get:252 http://mirror.einval.org/debian sid/main amd64 libglx0 amd64 1.3.2-1 [35.7 kB] Get:253 http://mirror.einval.org/debian sid/main amd64 libgl1 amd64 1.3.2-1 [89.5 kB] Get:254 http://mirror.einval.org/debian sid/main arm64 xorg-sgml-doctools all 1:1.11-1.1 [22.1 kB] Get:255 http://mirror.einval.org/debian sid/main arm64 x11proto-dev all 2020.1-1 [594 kB] Get:256 http://mirror.einval.org/debian sid/main amd64 libxau-dev amd64 1:1.0.9-1 [22.9 kB] Get:257 http://mirror.einval.org/debian sid/main amd64 libxdmcp-dev amd64 1:1.1.2-3 [42.2 kB] Get:258 http://mirror.einval.org/debian sid/main arm64 xtrans-dev all 1.4.0-1 [98.7 kB] Get:259 http://mirror.einval.org/debian sid/main amd64 libpthread-stubs0-dev amd64 0.4-1 [5344 B] Get:260 http://mirror.einval.org/debian sid/main amd64 libxcb1-dev amd64 1.14-3 [176 kB] Get:261 http://mirror.einval.org/debian sid/main amd64 libx11-dev amd64 2:1.7.2-1 [841 kB] Get:262 http://mirror.einval.org/debian sid/main amd64 libglx-dev amd64 1.3.2-1 [16.3 kB] Get:263 http://mirror.einval.org/debian sid/main amd64 libgl-dev amd64 1.3.2-1 [100 kB] Get:264 http://mirror.einval.org/debian sid/main amd64 libegl-dev amd64 1.3.2-1 [19.6 kB] Get:265 http://mirror.einval.org/debian sid/main arm64 libevdev2 arm64 1.11.0+dfsg-1 [31.7 kB] Get:266 http://mirror.einval.org/debian sid/main amd64 libevdev2 amd64 1.11.0+dfsg-1 [34.0 kB] Get:267 http://mirror.einval.org/debian sid/main amd64 libffi-dev amd64 3.3-6 [56.5 kB] Get:268 http://mirror.einval.org/debian sid/main amd64 libogg0 amd64 1.3.4-0.1 [27.3 kB] Get:269 http://mirror.einval.org/debian sid/main amd64 libflac8 amd64 1.3.3-2 [112 kB] Get:270 http://mirror.einval.org/debian sid/main amd64 libogg-dev amd64 1.3.4-0.1 [204 kB] Get:271 http://mirror.einval.org/debian sid/main amd64 libflac-dev amd64 1.3.3-2 [161 kB] Get:272 http://mirror.einval.org/debian sid/main amd64 libfmt7 amd64 7.1.3+ds1-5 [110 kB] Get:273 http://mirror.einval.org/debian sid/main amd64 libfmt-dev amd64 7.1.3+ds1-5 [142 kB] Get:274 http://mirror.einval.org/debian sid/main amd64 libpng16-16 amd64 1.6.37-3 [294 kB] Get:275 http://mirror.einval.org/debian sid/main amd64 libfreetype6 amd64 2.10.4+dfsg-1 [418 kB] Get:276 http://mirror.einval.org/debian sid/main amd64 libfontconfig1 amd64 2.13.1-4.2 [347 kB] Get:277 http://mirror.einval.org/debian sid/main amd64 libpcre2-8-0 amd64 10.36-2 [247 kB] Get:278 http://mirror.einval.org/debian sid/main amd64 libselinux1 amd64 3.1-3 [88.1 kB] Get:279 http://mirror.einval.org/debian sid/main amd64 libmount1 amd64 2.37.2-1 [215 kB] Get:280 http://mirror.einval.org/debian sid/main amd64 libpcre3 amd64 2:8.39-13 [343 kB] Get:281 http://mirror.einval.org/debian sid/main amd64 libglib2.0-0 amd64 2.68.4-1 [1390 kB] Get:282 http://mirror.einval.org/debian sid/main arm64 libglib2.0-data all 2.68.4-1 [1190 kB] Get:283 http://mirror.einval.org/debian sid/main arm64 libglib2.0-bin arm64 2.68.4-1 [141 kB] Get:284 http://mirror.einval.org/debian sid/main arm64 python3-lib2to3 all 3.9.2-1 [77.8 kB] Get:285 http://mirror.einval.org/debian sid/main arm64 python3-distutils all 3.9.2-1 [143 kB] Get:286 http://mirror.einval.org/debian sid/main arm64 libglib2.0-dev-bin arm64 2.68.4-1 [181 kB] Get:287 http://mirror.einval.org/debian sid/main amd64 libsepol1 amd64 3.1-1 [265 kB] Get:288 http://mirror.einval.org/debian sid/main amd64 libsepol1-dev amd64 3.1-1 [338 kB] Get:289 http://mirror.einval.org/debian sid/main amd64 libpcre2-16-0 amd64 10.36-2 [231 kB] Get:290 http://mirror.einval.org/debian sid/main amd64 libpcre2-32-0 amd64 10.36-2 [220 kB] Get:291 http://mirror.einval.org/debian sid/main amd64 libpcre2-posix2 amd64 10.36-2 [49.1 kB] Get:292 http://mirror.einval.org/debian sid/main amd64 libpcre2-dev amd64 10.36-2 [731 kB] Get:293 http://mirror.einval.org/debian sid/main amd64 libselinux1-dev amd64 3.1-3 [168 kB] Get:294 http://mirror.einval.org/debian sid/main amd64 libmount-dev amd64 2.37.2-1 [78.4 kB] Get:295 http://mirror.einval.org/debian sid/main amd64 libpcre16-3 amd64 2:8.39-13 [259 kB] Get:296 http://mirror.einval.org/debian sid/main amd64 libpcre32-3 amd64 2:8.39-13 [250 kB] Get:297 http://mirror.einval.org/debian sid/main amd64 libpcrecpp0v5 amd64 2:8.39-13 [152 kB] Get:298 http://mirror.einval.org/debian sid/main amd64 libpcre3-dev amd64 2:8.39-13 [650 kB] Get:299 http://mirror.einval.org/debian sid/main amd64 zlib1g-dev amd64 1:1.2.11.dfsg-2 [190 kB] Get:300 http://mirror.einval.org/debian sid/main amd64 libglib2.0-dev amd64 2.68.4-1 [1592 kB] Get:301 http://mirror.einval.org/debian sid/main amd64 libglu1-mesa amd64 9.0.1-1 [168 kB] Get:302 http://mirror.einval.org/debian sid/main amd64 libglu1-mesa-dev amd64 9.0.1-1 [207 kB] Get:303 http://mirror.einval.org/debian sid/main amd64 libgmpxx4ldbl amd64 2:6.2.1+dfsg-1 [337 kB] Get:304 http://mirror.einval.org/debian sid/main amd64 libgmp-dev amd64 2:6.2.1+dfsg-1 [643 kB] Get:305 http://mirror.einval.org/debian sid/main amd64 libgraphite2-3 amd64 1.3.14-1 [81.2 kB] Get:306 http://mirror.einval.org/debian sid/main amd64 libunwind8 amd64 1.3.2-2 [54.5 kB] Get:307 http://mirror.einval.org/debian sid/main amd64 libgstreamer1.0-0 amd64 1.18.4-2.1 [2230 kB] Get:308 http://mirror.einval.org/debian sid/main amd64 liborc-0.4-0 amd64 1:0.4.32-1 [192 kB] Get:309 http://mirror.einval.org/debian sid/main amd64 libgstreamer-plugins-base1.0-0 amd64 1.18.4-2 [2154 kB] Get:310 http://mirror.einval.org/debian sid/main amd64 libudev1 amd64 247.9-1 [167 kB] Get:311 http://mirror.einval.org/debian sid/main amd64 libgudev-1.0-0 amd64 237-2 [15.1 kB] Get:312 http://mirror.einval.org/debian sid/main amd64 libwayland-cursor0 amd64 1.19.0-2 [14.6 kB] Get:313 http://mirror.einval.org/debian sid/main amd64 libwayland-egl1 amd64 1.19.0-2 [8472 B] Get:314 http://mirror.einval.org/debian sid/main amd64 libgstreamer-gl1.0-0 amd64 1.18.4-2 [1519 kB] Get:315 http://mirror.einval.org/debian sid/main arm64 libgudev-1.0-0 arm64 237-2 [14.3 kB] Get:316 http://mirror.einval.org/debian sid/main amd64 libharfbuzz0b amd64 2.7.4-1 [1471 kB] Get:317 http://mirror.einval.org/debian sid/main arm64 x11-common all 1:7.7+23 [252 kB] Get:318 http://mirror.einval.org/debian sid/main amd64 libice6 amd64 2:1.0.10-1 [58.5 kB] Get:319 http://mirror.einval.org/debian sid/main arm64 libwacom-common all 1.11-1 [52.2 kB] Get:320 http://mirror.einval.org/debian sid/main arm64 libwacom2 arm64 1.11-1 [21.4 kB] Get:321 http://mirror.einval.org/debian sid/main arm64 libinput-bin arm64 1.16.4-3 [23.1 kB] Get:322 http://mirror.einval.org/debian sid/main amd64 libmtdev1 amd64 1.1.6-1 [23.0 kB] Get:323 http://mirror.einval.org/debian sid/main amd64 libwacom2 amd64 1.11-1 [22.3 kB] Get:324 http://mirror.einval.org/debian sid/main amd64 libinput10 amd64 1.16.4-3 [118 kB] Get:325 http://mirror.einval.org/debian sid/main amd64 libjpeg62-turbo amd64 1:2.0.6-4 [151 kB] Get:326 http://mirror.einval.org/debian sid/main amd64 liblzo2-2 amd64 2.10-2 [56.9 kB] Get:327 http://mirror.einval.org/debian sid/main amd64 liblzo2-dev amd64 2.10-2 [104 kB] Get:328 http://mirror.einval.org/debian sid/main amd64 libmatroska7 amd64 1.6.3-2 [118 kB] Get:329 http://mirror.einval.org/debian sid/main amd64 libmatroska-dev amd64 1.6.3-2 [35.8 kB] Get:330 http://mirror.einval.org/debian sid/main amd64 libmd4c0 amd64 0.4.8-1 [44.2 kB] Get:331 http://mirror.einval.org/debian sid/main amd64 libopus0 amd64 1.3.1-0.1 [190 kB] Get:332 http://mirror.einval.org/debian sid/main arm64 libosp5 arm64 1.5.2-13+b2 [884 kB] Get:333 http://mirror.einval.org/debian sid/main arm64 libpcre2-16-0 arm64 10.36-2 [202 kB] Get:334 http://mirror.einval.org/debian sid/main arm64 libpod-parser-perl all 1.63-2 [96.1 kB] Get:335 http://mirror.einval.org/debian sid/main amd64 libpugixml1v5 amd64 1.11.4-1 [90.5 kB] Get:336 http://mirror.einval.org/debian sid/main amd64 libpugixml-dev amd64 1.11.4-1 [110 kB] Get:337 http://mirror.einval.org/debian sid/main amd64 libvorbis0a amd64 1.3.7-1 [93.0 kB] Get:338 http://mirror.einval.org/debian sid/main amd64 libvorbisenc2 amd64 1.3.7-1 [80.6 kB] Get:339 http://mirror.einval.org/debian sid/main amd64 libsndfile1 amd64 1.0.31-2 [188 kB] Get:340 http://mirror.einval.org/debian sid/main amd64 libwrap0 amd64 7.6.q-31 [59.0 kB] Get:341 http://mirror.einval.org/debian sid/main amd64 libpulse0 amd64 15.0+dfsg1-2 [293 kB] Get:342 http://mirror.einval.org/debian sid/main arm64 shared-mime-info arm64 2.0-1 [700 kB] Get:343 http://mirror.einval.org/debian sid/main amd64 libqt5core5a amd64 5.15.2+dfsg-10 [1822 kB] Get:344 http://mirror.einval.org/debian sid/main amd64 libqt5concurrent5 amd64 5.15.2+dfsg-10 [71.1 kB] Get:345 http://mirror.einval.org/debian sid/main arm64 libqt5core5a arm64 5.15.2+dfsg-10 [1681 kB] Get:346 http://mirror.einval.org/debian sid/main arm64 libqt5dbus5 arm64 5.15.2+dfsg-10 [218 kB] Get:347 http://mirror.einval.org/debian sid/main amd64 libqt5dbus5 amd64 5.15.2+dfsg-10 [229 kB] Get:348 http://mirror.einval.org/debian sid/main amd64 libqt5network5 amd64 5.15.2+dfsg-10 [658 kB] Get:349 http://mirror.einval.org/debian sid/main amd64 libsm6 amd64 2:1.2.3-1 [35.1 kB] Get:350 http://mirror.einval.org/debian sid/main amd64 libxcb-icccm4 amd64 0.4.1-1.1 [27.4 kB] Get:351 http://mirror.einval.org/debian sid/main amd64 libxcb-util1 amd64 0.4.0-1+b1 [23.2 kB] Get:352 http://mirror.einval.org/debian sid/main amd64 libxcb-image0 amd64 0.4.0-1+b3 [24.3 kB] Get:353 http://mirror.einval.org/debian sid/main amd64 libxcb-keysyms1 amd64 0.4.0-1+b2 [16.4 kB] Get:354 http://mirror.einval.org/debian sid/main amd64 libxcb-randr0 amd64 1.14-3 [113 kB] Get:355 http://mirror.einval.org/debian sid/main amd64 libxcb-render0 amd64 1.14-3 [111 kB] Get:356 http://mirror.einval.org/debian sid/main amd64 libxcb-render-util0 amd64 0.3.9-1+b1 [18.3 kB] Get:357 http://mirror.einval.org/debian sid/main amd64 libxcb-shape0 amd64 1.14-3 [102 kB] Get:358 http://mirror.einval.org/debian sid/main amd64 libxcb-xinerama0 amd64 1.14-3 [101 kB] Get:359 http://mirror.einval.org/debian sid/main amd64 libxcb-xinput0 amd64 1.14-3 [126 kB] Get:360 http://mirror.einval.org/debian sid/main amd64 libxcb-xkb1 amd64 1.14-3 [126 kB] Get:361 http://mirror.einval.org/debian sid/main arm64 xkb-data all 2.33-1 [748 kB] Get:362 http://mirror.einval.org/debian sid/main amd64 libxkbcommon0 amd64 1.0.3-2 [101 kB] Get:363 http://mirror.einval.org/debian sid/main amd64 libxkbcommon-x11-0 amd64 1.0.3-2 [16.6 kB] Get:364 http://mirror.einval.org/debian sid/main amd64 libxrender1 amd64 1:0.9.10-1 [33.0 kB] Get:365 http://mirror.einval.org/debian sid/main amd64 libqt5gui5 amd64 5.15.2+dfsg-10 [3320 kB] Get:366 http://mirror.einval.org/debian sid/main amd64 libqt5multimedia5 amd64 5.15.2-3 [287 kB] Get:367 http://mirror.einval.org/debian sid/main amd64 libqt5widgets5 amd64 5.15.2+dfsg-10 [2348 kB] Get:368 http://mirror.einval.org/debian sid/main amd64 libqt5multimediawidgets5 amd64 5.15.2-3 [44.1 kB] Get:369 http://mirror.einval.org/debian sid/main amd64 libqt5multimediagsttools5 amd64 5.15.2-3 [101 kB] Get:370 http://mirror.einval.org/debian sid/main amd64 libqt5qml5 amd64 5.15.2+dfsg-8 [1318 kB] Get:371 http://mirror.einval.org/debian sid/main amd64 libqt5qmlmodels5 amd64 5.15.2+dfsg-8 [193 kB] Get:372 http://mirror.einval.org/debian sid/main amd64 libqt5quick5 amd64 5.15.2+dfsg-8 [1557 kB] Get:373 http://mirror.einval.org/debian sid/main amd64 libqt5multimediaquick5 amd64 5.15.2-3 [46.4 kB] Get:374 http://mirror.einval.org/debian sid/main amd64 libqt5printsupport5 amd64 5.15.2+dfsg-10 [222 kB] Get:375 http://mirror.einval.org/debian sid/main amd64 libqt5sql5 amd64 5.15.2+dfsg-10 [144 kB] Get:376 http://mirror.einval.org/debian sid/main amd64 libqt5test5 amd64 5.15.2+dfsg-10 [169 kB] Get:377 http://mirror.einval.org/debian sid/main amd64 libqt5xml5 amd64 5.15.2+dfsg-10 [147 kB] Get:378 http://mirror.einval.org/debian sid/main arm64 rubygems-integration all 1.18 [6704 B] Get:379 http://mirror.einval.org/debian sid/main arm64 ruby2.7 arm64 2.7.4-1 [747 kB] Get:380 http://mirror.einval.org/debian sid/main arm64 ruby-rubygems all 3.2.5-2 [281 kB] Get:381 http://mirror.einval.org/debian sid/main arm64 ruby arm64 1:2.7+2 [11.7 kB] Get:382 http://mirror.einval.org/debian sid/main arm64 rake all 13.0.3-1 [84.7 kB] Get:383 http://mirror.einval.org/debian sid/main arm64 ruby-minitest all 5.13.0-1 [57.3 kB] Get:384 http://mirror.einval.org/debian sid/main arm64 ruby-net-telnet all 0.1.1-2 [12.5 kB] Get:385 http://mirror.einval.org/debian sid/main arm64 ruby-power-assert all 1.1.7-2 [11.5 kB] Get:386 http://mirror.einval.org/debian sid/main arm64 ruby-test-unit all 3.3.9-1 [86.1 kB] Get:387 http://mirror.einval.org/debian sid/main arm64 ruby-xmlrpc all 0.3.0-2 [23.7 kB] Get:388 http://mirror.einval.org/debian sid/main arm64 libyaml-0-2 arm64 0.2.2-1 [45.1 kB] Get:389 http://mirror.einval.org/debian sid/main arm64 libruby2.7 arm64 2.7.4-1 [4031 kB] Get:390 http://mirror.einval.org/debian sid/main arm64 libsgmls-perl all 1.03ii-36 [26.5 kB] Get:391 http://mirror.einval.org/debian sid/main amd64 libutfcpp-dev amd64 2.3.4-1.1 [7444 B] Get:392 http://mirror.einval.org/debian sid/main amd64 libvorbisfile3 amd64 1.3.7-1 [26.1 kB] Get:393 http://mirror.einval.org/debian sid/main amd64 libvorbis-dev amd64 1.3.7-1 [327 kB] Get:394 http://mirror.einval.org/debian sid/main amd64 libvulkan-dev amd64 1.2.162.0-1 [586 kB] Get:395 http://mirror.einval.org/debian sid/main arm64 x11proto-xext-dev all 2020.1-1 [3404 B] Get:396 http://mirror.einval.org/debian sid/main amd64 libxext-dev amd64 2:1.3.3-1.1 [107 kB] Get:397 http://mirror.einval.org/debian sid/main arm64 libxslt1.1 arm64 1.1.34-4 [228 kB] Get:398 http://mirror.einval.org/debian sid/main arm64 libyaml-tiny-perl all 1.73-1 [32.3 kB] Get:399 http://mirror.einval.org/debian sid/main arm64 nlohmann-json3-dev all 3.9.1-1 [684 kB] Get:400 http://mirror.einval.org/debian sid/main arm64 opensp arm64 1.5.2-13+b2 [414 kB] Get:401 http://mirror.einval.org/debian sid/main arm64 po4a all 0.62-1 [1796 kB] Get:402 http://mirror.einval.org/debian sid/main arm64 qt5-qmake-bin arm64 5.15.2+dfsg-10 [913 kB] Get:403 http://mirror.einval.org/debian sid/main arm64 qtchooser arm64 66-2 [24.9 kB] Get:404 http://mirror.einval.org/debian sid/main amd64 qt5-qmake amd64 5.15.2+dfsg-10 [249 kB] Get:405 http://mirror.einval.org/debian sid/main arm64 qtbase5-dev-tools arm64 5.15.2+dfsg-10 [716 kB] Get:406 http://mirror.einval.org/debian sid/main amd64 qtbase5-dev amd64 5.15.2+dfsg-10 [1151 kB] Get:407 http://mirror.einval.org/debian sid/main amd64 qtmultimedia5-dev amd64 5.15.2-3 [50.3 kB] Get:408 http://mirror.einval.org/debian sid/main arm64 xsltproc arm64 1.1.34-4 [124 kB] debconf: delaying package configuration, since apt-utils is not installed Fetched 352 MB in 5s (76.5 MB/s) Selecting previously unselected package bsdextrautils. (Reading database ... 12270 files and directories currently installed.) Preparing to unpack .../00-bsdextrautils_2.37.2-1_arm64.deb ... Unpacking bsdextrautils (2.37.2-1) ... Selecting previously unselected package libuchardet0:arm64. Preparing to unpack .../01-libuchardet0_0.0.7-1_arm64.deb ... Unpacking libuchardet0:arm64 (0.0.7-1) ... Selecting previously unselected package groff-base. Preparing to unpack .../02-groff-base_1.22.4-6_arm64.deb ... Unpacking groff-base (1.22.4-6) ... Selecting previously unselected package libpipeline1:arm64. Preparing to unpack .../03-libpipeline1_1.5.3-1_arm64.deb ... Unpacking libpipeline1:arm64 (1.5.3-1) ... Selecting previously unselected package man-db. Preparing to unpack .../04-man-db_2.9.4-2_arm64.deb ... Unpacking man-db (2.9.4-2) ... Selecting previously unselected package autoconf-archive. Preparing to unpack .../05-autoconf-archive_20210219-1_all.deb ... Unpacking autoconf-archive (20210219-1) ... Selecting previously unselected package liblocale-gettext-perl. Preparing to unpack .../06-liblocale-gettext-perl_1.07-4+b1_arm64.deb ... Unpacking liblocale-gettext-perl (1.07-4+b1) ... Selecting previously unselected package gcc-11-base:amd64. Preparing to unpack .../07-gcc-11-base_11.2.0-3_amd64.deb ... Unpacking gcc-11-base:amd64 (11.2.0-3) ... Selecting previously unselected package libgcc-s1:amd64. Preparing to unpack .../08-libgcc-s1_11.2.0-3_amd64.deb ... Unpacking libgcc-s1:amd64 (11.2.0-3) ... Selecting previously unselected package libc6:amd64. Preparing to unpack .../09-libc6_2.31-17_amd64.deb ... Unpacking libc6:amd64 (2.31-17) ... Selecting previously unselected package libgpg-error0:amd64. Preparing to unpack .../10-libgpg-error0_1.42-3_amd64.deb ... Unpacking libgpg-error0:amd64 (1.42-3) ... Selecting previously unselected package libgcrypt20:amd64. Preparing to unpack .../11-libgcrypt20_1.8.7-6_amd64.deb ... Unpacking libgcrypt20:amd64 (1.8.7-6) ... Selecting previously unselected package liblz4-1:amd64. Preparing to unpack .../12-liblz4-1_1.9.3-2_amd64.deb ... Unpacking liblz4-1:amd64 (1.9.3-2) ... Selecting previously unselected package liblzma5:amd64. Preparing to unpack .../13-liblzma5_5.2.5-2_amd64.deb ... Unpacking liblzma5:amd64 (5.2.5-2) ... Selecting previously unselected package libzstd1:amd64. Preparing to unpack .../14-libzstd1_1.4.8+dfsg-2.1_amd64.deb ... Unpacking libzstd1:amd64 (1.4.8+dfsg-2.1) ... Setting up gcc-11-base:amd64 (11.2.0-3) ... Setting up libgcc-s1:amd64 (11.2.0-3) ... Setting up libc6:amd64 (2.31-17) ... Setting up libgpg-error0:amd64 (1.42-3) ... Setting up libgcrypt20:amd64 (1.8.7-6) ... Setting up liblz4-1:amd64 (1.9.3-2) ... Setting up liblzma5:amd64 (5.2.5-2) ... Setting up libzstd1:amd64 (1.4.8+dfsg-2.1) ... Selecting previously unselected package libsystemd0:amd64. (Reading database ... 14344 files and directories currently installed.) Preparing to unpack .../libsystemd0_247.9-1_amd64.deb ... Unpacking libsystemd0:amd64 (247.9-1) ... Selecting previously unselected package libpython3.9-minimal:arm64. Preparing to unpack .../libpython3.9-minimal_3.9.2-1_arm64.deb ... Unpacking libpython3.9-minimal:arm64 (3.9.2-1) ... Selecting previously unselected package libexpat1:arm64. Preparing to unpack .../libexpat1_2.2.10-2_arm64.deb ... Unpacking libexpat1:arm64 (2.2.10-2) ... Selecting previously unselected package python3.9-minimal. Preparing to unpack .../python3.9-minimal_3.9.2-1_arm64.deb ... Unpacking python3.9-minimal (3.9.2-1) ... Setting up libpython3.9-minimal:arm64 (3.9.2-1) ... Setting up libexpat1:arm64 (2.2.10-2) ... Setting up python3.9-minimal (3.9.2-1) ... /usr/bin/which: this version of `which' is deprecated; use `command -v' in scripts instead. Selecting previously unselected package python3-minimal. (Reading database ... 14640 files and directories currently installed.) Preparing to unpack .../0-python3-minimal_3.9.2-3_arm64.deb ... Unpacking python3-minimal (3.9.2-3) ... Selecting previously unselected package media-types. Preparing to unpack .../1-media-types_4.0.0_all.deb ... Unpacking media-types (4.0.0) ... Selecting previously unselected package libmpdec3:arm64. Preparing to unpack .../2-libmpdec3_2.5.1-2_arm64.deb ... Unpacking libmpdec3:arm64 (2.5.1-2) ... Selecting previously unselected package libncursesw6:arm64. Preparing to unpack .../3-libncursesw6_6.2+20201114-4_arm64.deb ... Unpacking libncursesw6:arm64 (6.2+20201114-4) ... Selecting previously unselected package readline-common. Preparing to unpack .../4-readline-common_8.1-2_all.deb ... Unpacking readline-common (8.1-2) ... Selecting previously unselected package libreadline8:arm64. Preparing to unpack .../5-libreadline8_8.1-2_arm64.deb ... Unpacking libreadline8:arm64 (8.1-2) ... Selecting previously unselected package libsqlite3-0:arm64. Preparing to unpack .../6-libsqlite3-0_3.36.0-2_arm64.deb ... Unpacking libsqlite3-0:arm64 (3.36.0-2) ... Selecting previously unselected package libpython3.9-stdlib:arm64. Preparing to unpack .../7-libpython3.9-stdlib_3.9.2-1_arm64.deb ... Unpacking libpython3.9-stdlib:arm64 (3.9.2-1) ... Selecting previously unselected package python3.9. Preparing to unpack .../8-python3.9_3.9.2-1_arm64.deb ... Unpacking python3.9 (3.9.2-1) ... Selecting previously unselected package libpython3-stdlib:arm64. Preparing to unpack .../9-libpython3-stdlib_3.9.2-3_arm64.deb ... Unpacking libpython3-stdlib:arm64 (3.9.2-3) ... Setting up python3-minimal (3.9.2-3) ... Selecting previously unselected package python3. (Reading database ... 15078 files and directories currently installed.) Preparing to unpack .../000-python3_3.9.2-3_arm64.deb ... Unpacking python3 (3.9.2-3) ... Selecting previously unselected package sgml-base. Preparing to unpack .../001-sgml-base_1.30_all.deb ... Unpacking sgml-base (1.30) ... Selecting previously unselected package gcc-10-base:amd64. Preparing to unpack .../002-gcc-10-base_10.3.0-8_amd64.deb ... Unpacking gcc-10-base:amd64 (10.3.0-8) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../003-sensible-utils_0.0.17_all.deb ... Unpacking sensible-utils (0.0.17) ... Selecting previously unselected package openssl. Preparing to unpack .../004-openssl_1.1.1l-1_arm64.deb ... Unpacking openssl (1.1.1l-1) ... Selecting previously unselected package ca-certificates. Preparing to unpack .../005-ca-certificates_20210119_all.deb ... Unpacking ca-certificates (20210119) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../006-libmagic-mgc_1%3a5.39-3_arm64.deb ... Unpacking libmagic-mgc (1:5.39-3) ... Selecting previously unselected package libmagic1:arm64. Preparing to unpack .../007-libmagic1_1%3a5.39-3_arm64.deb ... Unpacking libmagic1:arm64 (1:5.39-3) ... Selecting previously unselected package file. Preparing to unpack .../008-file_1%3a5.39-3_arm64.deb ... Unpacking file (1:5.39-3) ... Selecting previously unselected package gettext-base. Preparing to unpack .../009-gettext-base_0.21-4_arm64.deb ... Unpacking gettext-base (0.21-4) ... Selecting previously unselected package ucf. Preparing to unpack .../010-ucf_3.0043_all.deb ... Moving old data out of the way Unpacking ucf (3.0043) ... Selecting previously unselected package libsigsegv2:arm64. Preparing to unpack .../011-libsigsegv2_2.13-1_arm64.deb ... Unpacking libsigsegv2:arm64 (2.13-1) ... Selecting previously unselected package m4. Preparing to unpack .../012-m4_1.4.18-5_arm64.deb ... Unpacking m4 (1.4.18-5) ... Selecting previously unselected package autoconf. Preparing to unpack .../013-autoconf_2.71-2_all.deb ... Unpacking autoconf (2.71-2) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../014-autotools-dev_20180224.1+nmu1_all.deb ... Unpacking autotools-dev (20180224.1+nmu1) ... Selecting previously unselected package automake. Preparing to unpack .../015-automake_1%3a1.16.4-1_all.deb ... Unpacking automake (1:1.16.4-1) ... Selecting previously unselected package autopoint. Preparing to unpack .../016-autopoint_0.21-4_all.deb ... Unpacking autopoint (0.21-4) ... Selecting previously unselected package gcc-10-x86-64-linux-gnu-base:arm64. Preparing to unpack .../017-gcc-10-x86-64-linux-gnu-base_10.2.1-6cross1_arm64.deb ... Unpacking gcc-10-x86-64-linux-gnu-base:arm64 (10.2.1-6cross1) ... Selecting previously unselected package cpp-10-x86-64-linux-gnu. Preparing to unpack .../018-cpp-10-x86-64-linux-gnu_10.2.1-6cross1_arm64.deb ... Unpacking cpp-10-x86-64-linux-gnu (10.2.1-6cross1) ... Selecting previously unselected package cpp-x86-64-linux-gnu. Preparing to unpack .../019-cpp-x86-64-linux-gnu_4%3a10.2.1-1_arm64.deb ... Unpacking cpp-x86-64-linux-gnu (4:10.2.1-1) ... Selecting previously unselected package cross-config. Preparing to unpack .../020-cross-config_2.6.18+nmu1_all.deb ... Unpacking cross-config (2.6.18+nmu1) ... Selecting previously unselected package binutils-x86-64-linux-gnu. Preparing to unpack .../021-binutils-x86-64-linux-gnu_2.37-5_arm64.deb ... Unpacking binutils-x86-64-linux-gnu (2.37-5) ... Selecting previously unselected package gcc-10-cross-base. Preparing to unpack .../022-gcc-10-cross-base_10.3.0-8cross1_all.deb ... Unpacking gcc-10-cross-base (10.3.0-8cross1) ... Selecting previously unselected package gcc-11-cross-base. Preparing to unpack .../023-gcc-11-cross-base_11.2.0-2cross1_all.deb ... Unpacking gcc-11-cross-base (11.2.0-2cross1) ... Selecting previously unselected package libgcc-s1-amd64-cross. Preparing to unpack .../024-libgcc-s1-amd64-cross_11.2.0-2cross1_all.deb ... Unpacking libgcc-s1-amd64-cross (11.2.0-2cross1) ... Selecting previously unselected package libgomp1-amd64-cross. Preparing to unpack .../025-libgomp1-amd64-cross_11.2.0-2cross1_all.deb ... Unpacking libgomp1-amd64-cross (11.2.0-2cross1) ... Selecting previously unselected package libitm1-amd64-cross. Preparing to unpack .../026-libitm1-amd64-cross_11.2.0-2cross1_all.deb ... Unpacking libitm1-amd64-cross (11.2.0-2cross1) ... Selecting previously unselected package libatomic1-amd64-cross. Preparing to unpack .../027-libatomic1-amd64-cross_11.2.0-2cross1_all.deb ... Unpacking libatomic1-amd64-cross (11.2.0-2cross1) ... Selecting previously unselected package libasan6-amd64-cross. Preparing to unpack .../028-libasan6-amd64-cross_11.2.0-2cross1_all.deb ... Unpacking libasan6-amd64-cross (11.2.0-2cross1) ... Selecting previously unselected package liblsan0-amd64-cross. Preparing to unpack .../029-liblsan0-amd64-cross_11.2.0-2cross1_all.deb ... Unpacking liblsan0-amd64-cross (11.2.0-2cross1) ... Selecting previously unselected package libtsan0-amd64-cross. Preparing to unpack .../030-libtsan0-amd64-cross_11.2.0-2cross1_all.deb ... Unpacking libtsan0-amd64-cross (11.2.0-2cross1) ... Selecting previously unselected package libc6-amd64-cross. Preparing to unpack .../031-libc6-amd64-cross_2.31-17cross3_all.deb ... Unpacking libc6-amd64-cross (2.31-17cross3) ... Selecting previously unselected package libstdc++6-amd64-cross. Preparing to unpack .../032-libstdc++6-amd64-cross_11.2.0-2cross1_all.deb ... Unpacking libstdc++6-amd64-cross (11.2.0-2cross1) ... Selecting previously unselected package libubsan1-amd64-cross. Preparing to unpack .../033-libubsan1-amd64-cross_11.2.0-2cross1_all.deb ... Unpacking libubsan1-amd64-cross (11.2.0-2cross1) ... Selecting previously unselected package libquadmath0-amd64-cross. Preparing to unpack .../034-libquadmath0-amd64-cross_11.2.0-2cross1_all.deb ... Unpacking libquadmath0-amd64-cross (11.2.0-2cross1) ... Selecting previously unselected package libgcc-10-dev-amd64-cross. Preparing to unpack .../035-libgcc-10-dev-amd64-cross_10.3.0-8cross1_all.deb ... Unpacking libgcc-10-dev-amd64-cross (10.3.0-8cross1) ... Selecting previously unselected package gcc-10-x86-64-linux-gnu. Preparing to unpack .../036-gcc-10-x86-64-linux-gnu_10.2.1-6cross1_arm64.deb ... Unpacking gcc-10-x86-64-linux-gnu (10.2.1-6cross1) ... Selecting previously unselected package gcc-x86-64-linux-gnu. Preparing to unpack .../037-gcc-x86-64-linux-gnu_4%3a10.2.1-1_arm64.deb ... Unpacking gcc-x86-64-linux-gnu (4:10.2.1-1) ... Selecting previously unselected package linux-libc-dev-amd64-cross. Preparing to unpack .../038-linux-libc-dev-amd64-cross_5.10.46-4cross3_all.deb ... Unpacking linux-libc-dev-amd64-cross (5.10.46-4cross3) ... Selecting previously unselected package libc6-dev-amd64-cross. Preparing to unpack .../039-libc6-dev-amd64-cross_2.31-17cross3_all.deb ... Unpacking libc6-dev-amd64-cross (2.31-17cross3) ... Selecting previously unselected package libstdc++-10-dev-amd64-cross. Preparing to unpack .../040-libstdc++-10-dev-amd64-cross_10.3.0-8cross1_all.deb ... Unpacking libstdc++-10-dev-amd64-cross (10.3.0-8cross1) ... Selecting previously unselected package g++-10-x86-64-linux-gnu. Preparing to unpack .../041-g++-10-x86-64-linux-gnu_10.2.1-6cross1_arm64.deb ... Unpacking g++-10-x86-64-linux-gnu (10.2.1-6cross1) ... Selecting previously unselected package g++-x86-64-linux-gnu. Preparing to unpack .../042-g++-x86-64-linux-gnu_4%3a10.2.1-1_arm64.deb ... Unpacking g++-x86-64-linux-gnu (4:10.2.1-1) ... Selecting previously unselected package libconfig-inifiles-perl. Preparing to unpack .../043-libconfig-inifiles-perl_3.000003-1_all.deb ... Unpacking libconfig-inifiles-perl (3.000003-1) ... Selecting previously unselected package libio-string-perl. Preparing to unpack .../044-libio-string-perl_1.08-3.1_all.deb ... Unpacking libio-string-perl (1.08-3.1) ... Selecting previously unselected package libicu67:arm64. Preparing to unpack .../045-libicu67_67.1-7_arm64.deb ... Unpacking libicu67:arm64 (67.1-7) ... Selecting previously unselected package libxml2:arm64. Preparing to unpack .../046-libxml2_2.9.10+dfsg-6.7_arm64.deb ... Unpacking libxml2:arm64 (2.9.10+dfsg-6.7) ... Selecting previously unselected package libxml-namespacesupport-perl. Preparing to unpack .../047-libxml-namespacesupport-perl_1.12-1.1_all.deb ... Unpacking libxml-namespacesupport-perl (1.12-1.1) ... Selecting previously unselected package libxml-sax-base-perl. Preparing to unpack .../048-libxml-sax-base-perl_1.09-1.1_all.deb ... Unpacking libxml-sax-base-perl (1.09-1.1) ... Selecting previously unselected package libxml-sax-perl. Preparing to unpack .../049-libxml-sax-perl_1.02+dfsg-1_all.deb ... Unpacking libxml-sax-perl (1.02+dfsg-1) ... Selecting previously unselected package libxml-libxml-perl. Preparing to unpack .../050-libxml-libxml-perl_2.0134+dfsg-2+b1_arm64.deb ... Unpacking libxml-libxml-perl (2.0134+dfsg-2+b1) ... Selecting previously unselected package libxml-simple-perl. Preparing to unpack .../051-libxml-simple-perl_2.25-1_all.deb ... Unpacking libxml-simple-perl (2.25-1) ... Selecting previously unselected package libyaml-perl. Preparing to unpack .../052-libyaml-perl_1.30-1_all.deb ... Unpacking libyaml-perl (1.30-1) ... Selecting previously unselected package libconfig-auto-perl. Preparing to unpack .../053-libconfig-auto-perl_0.44-1.1_all.deb ... Unpacking libconfig-auto-perl (0.44-1.1) ... Selecting previously unselected package libfile-which-perl. Preparing to unpack .../054-libfile-which-perl_1.23-1_all.deb ... Unpacking libfile-which-perl (1.23-1) ... Selecting previously unselected package libfile-homedir-perl. Preparing to unpack .../055-libfile-homedir-perl_1.006-1_all.deb ... Unpacking libfile-homedir-perl (1.006-1) ... Selecting previously unselected package libdebian-dpkgcross-perl. Preparing to unpack .../056-libdebian-dpkgcross-perl_2.6.18+nmu1_all.deb ... Unpacking libdebian-dpkgcross-perl (2.6.18+nmu1) ... Selecting previously unselected package dpkg-cross. Preparing to unpack .../057-dpkg-cross_2.6.18+nmu1_all.deb ... Unpacking dpkg-cross (2.6.18+nmu1) ... Selecting previously unselected package crossbuild-essential-amd64. Preparing to unpack .../058-crossbuild-essential-amd64_12.9_all.deb ... Unpacking crossbuild-essential-amd64 (12.9) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../059-libdebhelper-perl_13.4.1_all.deb ... Unpacking libdebhelper-perl (13.4.1) ... Selecting previously unselected package libtool. Preparing to unpack .../060-libtool_2.4.6-15_all.deb ... Unpacking libtool (2.4.6-15) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../061-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../062-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libsub-override-perl. Preparing to unpack .../063-libsub-override-perl_0.09-2_all.deb ... Unpacking libsub-override-perl (0.09-2) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../064-libfile-stripnondeterminism-perl_1.12.0-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.12.0-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../065-dh-strip-nondeterminism_1.12.0-1_all.deb ... Unpacking dh-strip-nondeterminism (1.12.0-1) ... Selecting previously unselected package libelf1:arm64. Preparing to unpack .../066-libelf1_0.185-2_arm64.deb ... Unpacking libelf1:arm64 (0.185-2) ... Selecting previously unselected package dwz. Preparing to unpack .../067-dwz_0.14-1_arm64.deb ... Unpacking dwz (0.14-1) ... Selecting previously unselected package gettext. Preparing to unpack .../068-gettext_0.21-4_arm64.deb ... Unpacking gettext (0.21-4) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../069-intltool-debian_0.35.0+20060710.5_all.deb ... Unpacking intltool-debian (0.35.0+20060710.5) ... Selecting previously unselected package po-debconf. Preparing to unpack .../070-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../071-debhelper_13.4.1_all.deb ... Unpacking debhelper (13.4.1) ... Selecting previously unselected package xml-core. Preparing to unpack .../072-xml-core_0.18+nmu1_all.deb ... Unpacking xml-core (0.18+nmu1) ... Selecting previously unselected package docbook-xsl. Preparing to unpack .../073-docbook-xsl_1.79.2+dfsg-1_all.deb ... Unpacking docbook-xsl (1.79.2+dfsg-1) ... Selecting previously unselected package libbrotli1:arm64. Preparing to unpack .../074-libbrotli1_1.0.9-2+b2_arm64.deb ... Unpacking libbrotli1:arm64 (1.0.9-2+b2) ... Selecting previously unselected package libpng16-16:arm64. Preparing to unpack .../075-libpng16-16_1.6.37-3_arm64.deb ... Unpacking libpng16-16:arm64 (1.6.37-3) ... Selecting previously unselected package libfreetype6:arm64. Preparing to unpack .../076-libfreetype6_2.10.4+dfsg-1_arm64.deb ... Unpacking libfreetype6:arm64 (2.10.4+dfsg-1) ... Selecting previously unselected package fonts-dejavu-core. Preparing to unpack .../077-fonts-dejavu-core_2.37-2_all.deb ... Unpacking fonts-dejavu-core (2.37-2) ... Selecting previously unselected package fontconfig-config. Preparing to unpack .../078-fontconfig-config_2.13.1-4.2_all.deb ... Unpacking fontconfig-config (2.13.1-4.2) ... Selecting previously unselected package libfontconfig1:arm64. Preparing to unpack .../079-libfontconfig1_2.13.1-4.2_arm64.deb ... Unpacking libfontconfig1:arm64 (2.13.1-4.2) ... Selecting previously unselected package fontconfig. Preparing to unpack .../080-fontconfig_2.13.1-4.2_arm64.deb ... Unpacking fontconfig (2.13.1-4.2) ... Selecting previously unselected package iso-codes. Preparing to unpack .../081-iso-codes_4.7.0-1_all.deb ... Unpacking iso-codes (4.7.0-1) ... Selecting previously unselected package libasan6:amd64. Preparing to unpack .../082-libasan6_11.2.0-3_amd64.deb ... Unpacking libasan6:amd64 (11.2.0-3) ... Selecting previously unselected package libasound2-data. Preparing to unpack .../083-libasound2-data_1.2.5.1-1_all.deb ... Unpacking libasound2-data (1.2.5.1-1) ... Selecting previously unselected package libasound2:amd64. Preparing to unpack .../084-libasound2_1.2.5.1-1_amd64.deb ... Unpacking libasound2:amd64 (1.2.5.1-1) ... Selecting previously unselected package libasyncns0:amd64. Preparing to unpack .../085-libasyncns0_0.8-6+b2_amd64.deb ... Unpacking libasyncns0:amd64 (0.8-6+b2) ... Selecting previously unselected package libatomic1:amd64. Preparing to unpack .../086-libatomic1_11.2.0-3_amd64.deb ... Unpacking libatomic1:amd64 (11.2.0-3) ... Selecting previously unselected package libavahi-common-data:amd64. Preparing to unpack .../087-libavahi-common-data_0.8-5_amd64.deb ... Unpacking libavahi-common-data:amd64 (0.8-5) ... Selecting previously unselected package libavahi-common3:amd64. Preparing to unpack .../088-libavahi-common3_0.8-5_amd64.deb ... Unpacking libavahi-common3:amd64 (0.8-5) ... Selecting previously unselected package libdbus-1-3:amd64. Preparing to unpack .../089-libdbus-1-3_1.12.20-2_amd64.deb ... Unpacking libdbus-1-3:amd64 (1.12.20-2) ... Selecting previously unselected package libavahi-client3:amd64. Preparing to unpack .../090-libavahi-client3_0.8-5_amd64.deb ... Unpacking libavahi-client3:amd64 (0.8-5) ... Selecting previously unselected package libblkid1:amd64. Preparing to unpack .../091-libblkid1_2.37.2-1_amd64.deb ... Unpacking libblkid1:amd64 (2.37.2-1) ... Selecting previously unselected package linux-libc-dev:amd64. Preparing to unpack .../092-linux-libc-dev_5.10.46-4_amd64.deb ... Unpacking linux-libc-dev:amd64 (5.10.46-4) ... Selecting previously unselected package libcrypt1:amd64. Preparing to unpack .../093-libcrypt1_1%3a4.4.25-1_amd64.deb ... Unpacking libcrypt1:amd64 (1:4.4.25-1) ... Selecting previously unselected package libcrypt-dev:amd64. Preparing to unpack .../094-libcrypt-dev_1%3a4.4.25-1_amd64.deb ... Unpacking libcrypt-dev:amd64 (1:4.4.25-1) ... Selecting previously unselected package libcom-err2:amd64. Preparing to unpack .../095-libcom-err2_1.46.4-1_amd64.deb ... Unpacking libcom-err2:amd64 (1.46.4-1) ... Selecting previously unselected package libkrb5support0:amd64. Preparing to unpack .../096-libkrb5support0_1.18.3-7_amd64.deb ... Unpacking libkrb5support0:amd64 (1.18.3-7) ... Selecting previously unselected package libk5crypto3:amd64. Preparing to unpack .../097-libk5crypto3_1.18.3-7_amd64.deb ... Unpacking libk5crypto3:amd64 (1.18.3-7) ... Selecting previously unselected package libkeyutils1:amd64. Preparing to unpack .../098-libkeyutils1_1.6.1-2_amd64.deb ... Unpacking libkeyutils1:amd64 (1.6.1-2) ... Selecting previously unselected package libssl1.1:amd64. Preparing to unpack .../099-libssl1.1_1.1.1l-1_amd64.deb ... Unpacking libssl1.1:amd64 (1.1.1l-1) ... Selecting previously unselected package libkrb5-3:amd64. Preparing to unpack .../100-libkrb5-3_1.18.3-7_amd64.deb ... Unpacking libkrb5-3:amd64 (1.18.3-7) ... Selecting previously unselected package libgssapi-krb5-2:amd64. Preparing to unpack .../101-libgssapi-krb5-2_1.18.3-7_amd64.deb ... Unpacking libgssapi-krb5-2:amd64 (1.18.3-7) ... Selecting previously unselected package libtirpc3:amd64. Preparing to unpack .../102-libtirpc3_1.3.2-2_amd64.deb ... Unpacking libtirpc3:amd64 (1.3.2-2) ... Selecting previously unselected package libnsl2:amd64. Preparing to unpack .../103-libnsl2_1.3.0-2_amd64.deb ... Unpacking libnsl2:amd64 (1.3.0-2) ... Selecting previously unselected package libtirpc-dev:amd64. Preparing to unpack .../104-libtirpc-dev_1.3.2-2_amd64.deb ... Unpacking libtirpc-dev:amd64 (1.3.2-2) ... Selecting previously unselected package libnsl-dev:amd64. Preparing to unpack .../105-libnsl-dev_1.3.0-2_amd64.deb ... Unpacking libnsl-dev:amd64 (1.3.0-2) ... Selecting previously unselected package libc6-dev:amd64. Preparing to unpack .../106-libc6-dev_2.31-17_amd64.deb ... Unpacking libc6-dev:amd64 (2.31-17) ... Selecting previously unselected package libuuid1:amd64. Preparing to unpack .../107-libuuid1_2.37.2-1_amd64.deb ... Unpacking libuuid1:amd64 (2.37.2-1) ... Selecting previously unselected package uuid-dev:amd64. Preparing to unpack .../108-uuid-dev_2.37.2-1_amd64.deb ... Unpacking uuid-dev:amd64 (2.37.2-1) ... Selecting previously unselected package libblkid-dev:amd64. Preparing to unpack .../109-libblkid-dev_2.37.2-1_amd64.deb ... Unpacking libblkid-dev:amd64 (2.37.2-1) ... Selecting previously unselected package libgomp1:amd64. Preparing to unpack .../110-libgomp1_11.2.0-3_amd64.deb ... Unpacking libgomp1:amd64 (11.2.0-3) ... Selecting previously unselected package libitm1:amd64. Preparing to unpack .../111-libitm1_11.2.0-3_amd64.deb ... Unpacking libitm1:amd64 (11.2.0-3) ... Selecting previously unselected package liblsan0:amd64. Preparing to unpack .../112-liblsan0_11.2.0-3_amd64.deb ... Unpacking liblsan0:amd64 (11.2.0-3) ... Selecting previously unselected package libtsan0:amd64. Preparing to unpack .../113-libtsan0_11.2.0-3_amd64.deb ... Unpacking libtsan0:amd64 (11.2.0-3) ... Selecting previously unselected package libstdc++6:amd64. Preparing to unpack .../114-libstdc++6_11.2.0-3_amd64.deb ... Unpacking libstdc++6:amd64 (11.2.0-3) ... Selecting previously unselected package libubsan1:amd64. Preparing to unpack .../115-libubsan1_11.2.0-3_amd64.deb ... Unpacking libubsan1:amd64 (11.2.0-3) ... Selecting previously unselected package libquadmath0:amd64. Preparing to unpack .../116-libquadmath0_11.2.0-3_amd64.deb ... Unpacking libquadmath0:amd64 (11.2.0-3) ... Selecting previously unselected package libgcc-10-dev:amd64. Preparing to unpack .../117-libgcc-10-dev_10.3.0-8_amd64.deb ... Unpacking libgcc-10-dev:amd64 (10.3.0-8) ... Selecting previously unselected package libstdc++-10-dev:amd64. Preparing to unpack .../118-libstdc++-10-dev_10.3.0-8_amd64.deb ... Unpacking libstdc++-10-dev:amd64 (10.3.0-8) ... Selecting previously unselected package libboost1.74-dev:amd64. Preparing to unpack .../119-libboost1.74-dev_1.74.0-9_amd64.deb ... Unpacking libboost1.74-dev:amd64 (1.74.0-9) ... Selecting previously unselected package libboost-date-time1.74.0:amd64. Preparing to unpack .../120-libboost-date-time1.74.0_1.74.0-9_amd64.deb ... Unpacking libboost-date-time1.74.0:amd64 (1.74.0-9) ... Selecting previously unselected package libboost-serialization1.74.0:amd64. Preparing to unpack .../121-libboost-serialization1.74.0_1.74.0-9_amd64.deb ... Unpacking libboost-serialization1.74.0:amd64 (1.74.0-9) ... Selecting previously unselected package libboost-serialization1.74-dev:amd64. Preparing to unpack .../122-libboost-serialization1.74-dev_1.74.0-9_amd64.deb ... Unpacking libboost-serialization1.74-dev:amd64 (1.74.0-9) ... Selecting previously unselected package libboost-date-time1.74-dev:amd64. Preparing to unpack .../123-libboost-date-time1.74-dev_1.74.0-9_amd64.deb ... Unpacking libboost-date-time1.74-dev:amd64 (1.74.0-9) ... Selecting previously unselected package libboost-date-time-dev:amd64. Preparing to unpack .../124-libboost-date-time-dev_1.74.0.3_amd64.deb ... Unpacking libboost-date-time-dev:amd64 (1.74.0.3) ... Selecting previously unselected package libboost-filesystem1.74.0:amd64. Preparing to unpack .../125-libboost-filesystem1.74.0_1.74.0-9_amd64.deb ... Unpacking libboost-filesystem1.74.0:amd64 (1.74.0-9) ... Selecting previously unselected package libboost-system1.74.0:amd64. Preparing to unpack .../126-libboost-system1.74.0_1.74.0-9_amd64.deb ... Unpacking libboost-system1.74.0:amd64 (1.74.0-9) ... Selecting previously unselected package libboost-system1.74-dev:amd64. Preparing to unpack .../127-libboost-system1.74-dev_1.74.0-9_amd64.deb ... Unpacking libboost-system1.74-dev:amd64 (1.74.0-9) ... Selecting previously unselected package libboost-filesystem1.74-dev:amd64. Preparing to unpack .../128-libboost-filesystem1.74-dev_1.74.0-9_amd64.deb ... Unpacking libboost-filesystem1.74-dev:amd64 (1.74.0-9) ... Selecting previously unselected package libboost-filesystem-dev:amd64. Preparing to unpack .../129-libboost-filesystem-dev_1.74.0.3_amd64.deb ... Unpacking libboost-filesystem-dev:amd64 (1.74.0.3) ... Selecting previously unselected package libboost-math1.74.0:amd64. Preparing to unpack .../130-libboost-math1.74.0_1.74.0-9_amd64.deb ... Unpacking libboost-math1.74.0:amd64 (1.74.0-9) ... Selecting previously unselected package libboost-math1.74-dev:amd64. Preparing to unpack .../131-libboost-math1.74-dev_1.74.0-9_amd64.deb ... Unpacking libboost-math1.74-dev:amd64 (1.74.0-9) ... Selecting previously unselected package libboost-math-dev:amd64. Preparing to unpack .../132-libboost-math-dev_1.74.0.3_amd64.deb ... Unpacking libboost-math-dev:amd64 (1.74.0.3) ... Selecting previously unselected package libbrotli1:amd64. Preparing to unpack .../133-libbrotli1_1.0.9-2+b2_amd64.deb ... Unpacking libbrotli1:amd64 (1.0.9-2+b2) ... Selecting previously unselected package libmd0:arm64. Preparing to unpack .../134-libmd0_1.0.3-3_arm64.deb ... Unpacking libmd0:arm64 (1.0.3-3) ... Selecting previously unselected package libbsd0:arm64. Preparing to unpack .../135-libbsd0_0.11.3-1_arm64.deb ... Unpacking libbsd0:arm64 (0.11.3-1) ... Selecting previously unselected package libmd0:amd64. Preparing to unpack .../136-libmd0_1.0.3-3_amd64.deb ... Unpacking libmd0:amd64 (1.0.3-3) ... Selecting previously unselected package libbsd0:amd64. Preparing to unpack .../137-libbsd0_0.11.3-1_amd64.deb ... Unpacking libbsd0:amd64 (0.11.3-1) ... Selecting previously unselected package libbz2-1.0:amd64. Preparing to unpack .../138-libbz2-1.0_1.0.8-4_amd64.deb ... Unpacking libbz2-1.0:amd64 (1.0.8-4) ... Selecting previously unselected package libbz2-dev:amd64. Preparing to unpack .../139-libbz2-dev_1.0.8-4_amd64.deb ... Unpacking libbz2-dev:amd64 (1.0.8-4) ... Selecting previously unselected package libcap2:amd64. Preparing to unpack .../140-libcap2_1%3a2.44-1_amd64.deb ... Unpacking libcap2:amd64 (1:2.44-1) ... Selecting previously unselected package libcap2:arm64. Preparing to unpack .../141-libcap2_1%3a2.44-1_arm64.deb ... Unpacking libcap2:arm64 (1:2.44-1) ... Selecting previously unselected package libcap2-bin. Preparing to unpack .../142-libcap2-bin_1%3a2.44-1_arm64.deb ... Unpacking libcap2-bin (1:2.44-1) ... Selecting previously unselected package libcmark0.30.1:amd64. Preparing to unpack .../143-libcmark0.30.1_0.30.1-2_amd64.deb ... Unpacking libcmark0.30.1:amd64 (0.30.1-2) ... Selecting previously unselected package libcmark-dev:amd64. Preparing to unpack .../144-libcmark-dev_0.30.1-2_amd64.deb ... Unpacking libcmark-dev:amd64 (0.30.1-2) ... Selecting previously unselected package libgmp10:amd64. Preparing to unpack .../145-libgmp10_2%3a6.2.1+dfsg-1_amd64.deb ... Unpacking libgmp10:amd64 (2:6.2.1+dfsg-1) ... Selecting previously unselected package libnettle8:amd64. Preparing to unpack .../146-libnettle8_3.7.3-1_amd64.deb ... Unpacking libnettle8:amd64 (3.7.3-1) ... Selecting previously unselected package libhogweed6:amd64. Preparing to unpack .../147-libhogweed6_3.7.3-1_amd64.deb ... Unpacking libhogweed6:amd64 (3.7.3-1) ... Selecting previously unselected package libunistring2:amd64. Preparing to unpack .../148-libunistring2_0.9.10-6_amd64.deb ... Unpacking libunistring2:amd64 (0.9.10-6) ... Selecting previously unselected package libidn2-0:amd64. Preparing to unpack .../149-libidn2-0_2.3.2-2_amd64.deb ... Unpacking libidn2-0:amd64 (2.3.2-2) ... Selecting previously unselected package libffi7:amd64. Preparing to unpack .../150-libffi7_3.3-6_amd64.deb ... Unpacking libffi7:amd64 (3.3-6) ... Selecting previously unselected package libp11-kit0:amd64. Preparing to unpack .../151-libp11-kit0_0.23.22-1_amd64.deb ... Unpacking libp11-kit0:amd64 (0.23.22-1) ... Selecting previously unselected package libtasn1-6:amd64. Preparing to unpack .../152-libtasn1-6_4.17.0-2_amd64.deb ... Unpacking libtasn1-6:amd64 (4.17.0-2) ... Selecting previously unselected package libgnutls30:amd64. Preparing to unpack .../153-libgnutls30_3.7.2-2_amd64.deb ... Unpacking libgnutls30:amd64 (3.7.2-2) ... Selecting previously unselected package zlib1g:amd64. Preparing to unpack .../154-zlib1g_1%3a1.2.11.dfsg-2_amd64.deb ... Unpacking zlib1g:amd64 (1:1.2.11.dfsg-2) ... Selecting previously unselected package libcups2:amd64. Preparing to unpack .../155-libcups2_2.3.3op2-6_amd64.deb ... Unpacking libcups2:amd64 (2.3.3op2-6) ... Selecting previously unselected package libdb5.3:amd64. Preparing to unpack .../156-libdb5.3_5.3.28+dfsg1-0.8_amd64.deb ... Unpacking libdb5.3:amd64 (5.3.28+dfsg1-0.8) ... Selecting previously unselected package libsasl2-modules-db:amd64. Preparing to unpack .../157-libsasl2-modules-db_2.1.27+dfsg-2.1_amd64.deb ... Unpacking libsasl2-modules-db:amd64 (2.1.27+dfsg-2.1) ... Selecting previously unselected package libsasl2-2:amd64. Preparing to unpack .../158-libsasl2-2_2.1.27+dfsg-2.1_amd64.deb ... Unpacking libsasl2-2:amd64 (2.1.27+dfsg-2.1) ... Selecting previously unselected package libldap-2.4-2:amd64. Preparing to unpack .../159-libldap-2.4-2_2.4.59+dfsg-1_amd64.deb ... Unpacking libldap-2.4-2:amd64 (2.4.59+dfsg-1) ... Selecting previously unselected package libnghttp2-14:amd64. Preparing to unpack .../160-libnghttp2-14_1.43.0-1_amd64.deb ... Unpacking libnghttp2-14:amd64 (1.43.0-1) ... Selecting previously unselected package libpsl5:amd64. Preparing to unpack .../161-libpsl5_0.21.0-1.2_amd64.deb ... Unpacking libpsl5:amd64 (0.21.0-1.2) ... Selecting previously unselected package librtmp1:amd64. Preparing to unpack .../162-librtmp1_2.4+20151223.gitfa8646d.1-2+b2_amd64.deb ... Unpacking librtmp1:amd64 (2.4+20151223.gitfa8646d.1-2+b2) ... Selecting previously unselected package libssh2-1:amd64. Preparing to unpack .../163-libssh2-1_1.9.0-3_amd64.deb ... Unpacking libssh2-1:amd64 (1.9.0-3) ... Selecting previously unselected package libcurl3-gnutls:amd64. Preparing to unpack .../164-libcurl3-gnutls_7.74.0-1.3+b1_amd64.deb ... Unpacking libcurl3-gnutls:amd64 (7.74.0-1.3+b1) ... Selecting previously unselected package libcurl4-gnutls-dev:amd64. Preparing to unpack .../165-libcurl4-gnutls-dev_7.74.0-1.3+b1_amd64.deb ... Unpacking libcurl4-gnutls-dev:amd64 (7.74.0-1.3+b1) ... Selecting previously unselected package libdbus-1-3:arm64. Preparing to unpack .../166-libdbus-1-3_1.12.20-2_arm64.deb ... Unpacking libdbus-1-3:arm64 (1.12.20-2) ... Selecting previously unselected package libdouble-conversion3:amd64. Preparing to unpack .../167-libdouble-conversion3_3.1.5-6.1_amd64.deb ... Unpacking libdouble-conversion3:amd64 (3.1.5-6.1) ... Selecting previously unselected package libdouble-conversion3:arm64. Preparing to unpack .../168-libdouble-conversion3_3.1.5-6.1_arm64.deb ... Unpacking libdouble-conversion3:arm64 (3.1.5-6.1) ... Selecting previously unselected package libdrm-common. Preparing to unpack .../169-libdrm-common_2.4.107-2_all.deb ... Unpacking libdrm-common (2.4.107-2) ... Selecting previously unselected package libdrm2:amd64. Preparing to unpack .../170-libdrm2_2.4.107-2_amd64.deb ... Unpacking libdrm2:amd64 (2.4.107-2) ... Selecting previously unselected package libdrm-amdgpu1:amd64. Preparing to unpack .../171-libdrm-amdgpu1_2.4.107-2_amd64.deb ... Unpacking libdrm-amdgpu1:amd64 (2.4.107-2) ... Selecting previously unselected package libpciaccess0:amd64. Preparing to unpack .../172-libpciaccess0_0.16-1_amd64.deb ... Unpacking libpciaccess0:amd64 (0.16-1) ... Selecting previously unselected package libdrm-intel1:amd64. Preparing to unpack .../173-libdrm-intel1_2.4.107-2_amd64.deb ... Unpacking libdrm-intel1:amd64 (2.4.107-2) ... Selecting previously unselected package libdrm-nouveau2:amd64. Preparing to unpack .../174-libdrm-nouveau2_2.4.107-2_amd64.deb ... Unpacking libdrm-nouveau2:amd64 (2.4.107-2) ... Selecting previously unselected package libdrm-radeon1:amd64. Preparing to unpack .../175-libdrm-radeon1_2.4.107-2_amd64.deb ... Unpacking libdrm-radeon1:amd64 (2.4.107-2) ... Selecting previously unselected package libdvdread8:amd64. Preparing to unpack .../176-libdvdread8_6.1.2-1_amd64.deb ... Unpacking libdvdread8:amd64 (6.1.2-1) ... Selecting previously unselected package libglib2.0-0:arm64. Preparing to unpack .../177-libglib2.0-0_2.68.4-1_arm64.deb ... Unpacking libglib2.0-0:arm64 (2.68.4-1) ... Selecting previously unselected package pkg-config. Preparing to unpack .../178-pkg-config_0.29.2-1_arm64.deb ... Unpacking pkg-config (0.29.2-1) ... Selecting previously unselected package libdvdread-dev:amd64. Preparing to unpack .../179-libdvdread-dev_6.1.2-1_amd64.deb ... Unpacking libdvdread-dev:amd64 (6.1.2-1) ... Selecting previously unselected package libelf1:amd64. Preparing to unpack .../180-libelf1_0.185-2_amd64.deb ... Unpacking libelf1:amd64 (0.185-2) ... Selecting previously unselected package libdw1:amd64. Preparing to unpack .../181-libdw1_0.185-2_amd64.deb ... Unpacking libdw1:amd64 (0.185-2) ... Selecting previously unselected package libebml5:amd64. Preparing to unpack .../182-libebml5_1.4.2-1_amd64.deb ... Unpacking libebml5:amd64 (1.4.2-1) ... Selecting previously unselected package libebml-dev:amd64. Preparing to unpack .../183-libebml-dev_1.4.2-1_amd64.deb ... Unpacking libebml-dev:amd64 (1.4.2-1) ... Selecting previously unselected package libtinfo6:amd64. Preparing to unpack .../184-libtinfo6_6.2+20201114-4_amd64.deb ... Unpacking libtinfo6:amd64 (6.2+20201114-4) ... Selecting previously unselected package libedit2:amd64. Preparing to unpack .../185-libedit2_3.1-20210714-1_amd64.deb ... Unpacking libedit2:amd64 (3.1-20210714-1) ... Selecting previously unselected package libedit2:arm64. Preparing to unpack .../186-libedit2_3.1-20210714-1_arm64.deb ... Unpacking libedit2:arm64 (3.1-20210714-1) ... Selecting previously unselected package libglvnd0:amd64. Preparing to unpack .../187-libglvnd0_1.3.2-1_amd64.deb ... Unpacking libglvnd0:amd64 (1.3.2-1) ... Selecting previously unselected package libexpat1:amd64. Preparing to unpack .../188-libexpat1_2.2.10-2_amd64.deb ... Unpacking libexpat1:amd64 (2.2.10-2) ... Selecting previously unselected package libwayland-server0:amd64. Preparing to unpack .../189-libwayland-server0_1.19.0-2_amd64.deb ... Unpacking libwayland-server0:amd64 (1.19.0-2) ... Selecting previously unselected package libgbm1:amd64. Preparing to unpack .../190-libgbm1_21.2.1-1_amd64.deb ... Unpacking libgbm1:amd64 (21.2.1-1) ... Selecting previously unselected package libglapi-mesa:amd64. Preparing to unpack .../191-libglapi-mesa_21.2.1-1_amd64.deb ... Unpacking libglapi-mesa:amd64 (21.2.1-1) ... Selecting previously unselected package libwayland-client0:amd64. Preparing to unpack .../192-libwayland-client0_1.19.0-2_amd64.deb ... Unpacking libwayland-client0:amd64 (1.19.0-2) ... Selecting previously unselected package libxau6:amd64. Preparing to unpack .../193-libxau6_1%3a1.0.9-1_amd64.deb ... Unpacking libxau6:amd64 (1:1.0.9-1) ... Selecting previously unselected package libxdmcp6:amd64. Preparing to unpack .../194-libxdmcp6_1%3a1.1.2-3_amd64.deb ... Unpacking libxdmcp6:amd64 (1:1.1.2-3) ... Selecting previously unselected package libxcb1:amd64. Preparing to unpack .../195-libxcb1_1.14-3_amd64.deb ... Unpacking libxcb1:amd64 (1.14-3) ... Selecting previously unselected package libx11-data. Preparing to unpack .../196-libx11-data_2%3a1.7.2-1_all.deb ... Unpacking libx11-data (2:1.7.2-1) ... Selecting previously unselected package libx11-6:amd64. Preparing to unpack .../197-libx11-6_2%3a1.7.2-1_amd64.deb ... Unpacking libx11-6:amd64 (2:1.7.2-1) ... Selecting previously unselected package libx11-xcb1:amd64. Preparing to unpack .../198-libx11-xcb1_2%3a1.7.2-1_amd64.deb ... Unpacking libx11-xcb1:amd64 (2:1.7.2-1) ... Selecting previously unselected package libxcb-dri2-0:amd64. Preparing to unpack .../199-libxcb-dri2-0_1.14-3_amd64.deb ... Unpacking libxcb-dri2-0:amd64 (1.14-3) ... Selecting previously unselected package libxcb-dri3-0:amd64. Preparing to unpack .../200-libxcb-dri3-0_1.14-3_amd64.deb ... Unpacking libxcb-dri3-0:amd64 (1.14-3) ... Selecting previously unselected package libxcb-present0:amd64. Preparing to unpack .../201-libxcb-present0_1.14-3_amd64.deb ... Unpacking libxcb-present0:amd64 (1.14-3) ... Selecting previously unselected package libxcb-sync1:amd64. Preparing to unpack .../202-libxcb-sync1_1.14-3_amd64.deb ... Unpacking libxcb-sync1:amd64 (1.14-3) ... Selecting previously unselected package libxcb-xfixes0:amd64. Preparing to unpack .../203-libxcb-xfixes0_1.14-3_amd64.deb ... Unpacking libxcb-xfixes0:amd64 (1.14-3) ... Selecting previously unselected package libxshmfence1:amd64. Preparing to unpack .../204-libxshmfence1_1.3-1_amd64.deb ... Unpacking libxshmfence1:amd64 (1.3-1) ... Selecting previously unselected package libegl-mesa0:amd64. Preparing to unpack .../205-libegl-mesa0_21.2.1-1_amd64.deb ... Unpacking libegl-mesa0:amd64 (21.2.1-1) ... Selecting previously unselected package libegl1:amd64. Preparing to unpack .../206-libegl1_1.3.2-1_amd64.deb ... Unpacking libegl1:amd64 (1.3.2-1) ... Selecting previously unselected package libxcb-glx0:amd64. Preparing to unpack .../207-libxcb-glx0_1.14-3_amd64.deb ... Unpacking libxcb-glx0:amd64 (1.14-3) ... Selecting previously unselected package libxcb-shm0:amd64. Preparing to unpack .../208-libxcb-shm0_1.14-3_amd64.deb ... Unpacking libxcb-shm0:amd64 (1.14-3) ... Selecting previously unselected package libxext6:amd64. Preparing to unpack .../209-libxext6_2%3a1.3.3-1.1_amd64.deb ... Unpacking libxext6:amd64 (2:1.3.3-1.1) ... Selecting previously unselected package libxfixes3:amd64. Preparing to unpack .../210-libxfixes3_1%3a5.0.3-2_amd64.deb ... Unpacking libxfixes3:amd64 (1:5.0.3-2) ... Selecting previously unselected package libxxf86vm1:amd64. Preparing to unpack .../211-libxxf86vm1_1%3a1.1.4-1+b2_amd64.deb ... Unpacking libxxf86vm1:amd64 (1:1.1.4-1+b2) ... Selecting previously unselected package libicu67:amd64. Preparing to unpack .../212-libicu67_67.1-7_amd64.deb ... Unpacking libicu67:amd64 (67.1-7) ... Selecting previously unselected package libxml2:amd64. Preparing to unpack .../213-libxml2_2.9.10+dfsg-6.7_amd64.deb ... Unpacking libxml2:amd64 (2.9.10+dfsg-6.7) ... Selecting previously unselected package libz3-4:amd64. Preparing to unpack .../214-libz3-4_4.8.10-1_amd64.deb ... Unpacking libz3-4:amd64 (4.8.10-1) ... Selecting previously unselected package libllvm12:amd64. Preparing to unpack .../215-libllvm12_1%3a12.0.1-6_amd64.deb ... Unpacking libllvm12:amd64 (1:12.0.1-6) ... Selecting previously unselected package libsensors-config. Preparing to unpack .../216-libsensors-config_1%3a3.6.0-7_all.deb ... Unpacking libsensors-config (1:3.6.0-7) ... Selecting previously unselected package libsensors5:amd64. Preparing to unpack .../217-libsensors5_1%3a3.6.0-7_amd64.deb ... Unpacking libsensors5:amd64 (1:3.6.0-7) ... Selecting previously unselected package libvulkan1:amd64. Preparing to unpack .../218-libvulkan1_1.2.162.0-1_amd64.deb ... Unpacking libvulkan1:amd64 (1.2.162.0-1) ... Selecting previously unselected package libgl1-mesa-dri:amd64. Preparing to unpack .../219-libgl1-mesa-dri_21.2.1-1_amd64.deb ... Unpacking libgl1-mesa-dri:amd64 (21.2.1-1) ... Selecting previously unselected package libglx-mesa0:amd64. Preparing to unpack .../220-libglx-mesa0_21.2.1-1_amd64.deb ... Unpacking libglx-mesa0:amd64 (21.2.1-1) ... Selecting previously unselected package libglx0:amd64. Preparing to unpack .../221-libglx0_1.3.2-1_amd64.deb ... Unpacking libglx0:amd64 (1.3.2-1) ... Selecting previously unselected package libgl1:amd64. Preparing to unpack .../222-libgl1_1.3.2-1_amd64.deb ... Unpacking libgl1:amd64 (1.3.2-1) ... Selecting previously unselected package xorg-sgml-doctools. Preparing to unpack .../223-xorg-sgml-doctools_1%3a1.11-1.1_all.deb ... Unpacking xorg-sgml-doctools (1:1.11-1.1) ... Selecting previously unselected package x11proto-dev. Preparing to unpack .../224-x11proto-dev_2020.1-1_all.deb ... Unpacking x11proto-dev (2020.1-1) ... Selecting previously unselected package libxau-dev:amd64. Preparing to unpack .../225-libxau-dev_1%3a1.0.9-1_amd64.deb ... Unpacking libxau-dev:amd64 (1:1.0.9-1) ... Selecting previously unselected package libxdmcp-dev:amd64. Preparing to unpack .../226-libxdmcp-dev_1%3a1.1.2-3_amd64.deb ... Unpacking libxdmcp-dev:amd64 (1:1.1.2-3) ... Selecting previously unselected package xtrans-dev. Preparing to unpack .../227-xtrans-dev_1.4.0-1_all.deb ... Unpacking xtrans-dev (1.4.0-1) ... Selecting previously unselected package libpthread-stubs0-dev:amd64. Preparing to unpack .../228-libpthread-stubs0-dev_0.4-1_amd64.deb ... Unpacking libpthread-stubs0-dev:amd64 (0.4-1) ... Selecting previously unselected package libxcb1-dev:amd64. Preparing to unpack .../229-libxcb1-dev_1.14-3_amd64.deb ... Unpacking libxcb1-dev:amd64 (1.14-3) ... Selecting previously unselected package libx11-dev:amd64. Preparing to unpack .../230-libx11-dev_2%3a1.7.2-1_amd64.deb ... Unpacking libx11-dev:amd64 (2:1.7.2-1) ... Selecting previously unselected package libglx-dev:amd64. Preparing to unpack .../231-libglx-dev_1.3.2-1_amd64.deb ... Unpacking libglx-dev:amd64 (1.3.2-1) ... Selecting previously unselected package libgl-dev:amd64. Preparing to unpack .../232-libgl-dev_1.3.2-1_amd64.deb ... Unpacking libgl-dev:amd64 (1.3.2-1) ... Selecting previously unselected package libegl-dev:amd64. Preparing to unpack .../233-libegl-dev_1.3.2-1_amd64.deb ... Unpacking libegl-dev:amd64 (1.3.2-1) ... Selecting previously unselected package libevdev2:arm64. Preparing to unpack .../234-libevdev2_1.11.0+dfsg-1_arm64.deb ... Unpacking libevdev2:arm64 (1.11.0+dfsg-1) ... Selecting previously unselected package libevdev2:amd64. Preparing to unpack .../235-libevdev2_1.11.0+dfsg-1_amd64.deb ... Unpacking libevdev2:amd64 (1.11.0+dfsg-1) ... Selecting previously unselected package libffi-dev:amd64. Preparing to unpack .../236-libffi-dev_3.3-6_amd64.deb ... Unpacking libffi-dev:amd64 (3.3-6) ... Selecting previously unselected package libogg0:amd64. Preparing to unpack .../237-libogg0_1.3.4-0.1_amd64.deb ... Unpacking libogg0:amd64 (1.3.4-0.1) ... Selecting previously unselected package libflac8:amd64. Preparing to unpack .../238-libflac8_1.3.3-2_amd64.deb ... Unpacking libflac8:amd64 (1.3.3-2) ... Selecting previously unselected package libogg-dev:amd64. Preparing to unpack .../239-libogg-dev_1.3.4-0.1_amd64.deb ... Unpacking libogg-dev:amd64 (1.3.4-0.1) ... Selecting previously unselected package libflac-dev:amd64. Preparing to unpack .../240-libflac-dev_1.3.3-2_amd64.deb ... Unpacking libflac-dev:amd64 (1.3.3-2) ... Selecting previously unselected package libfmt7:amd64. Preparing to unpack .../241-libfmt7_7.1.3+ds1-5_amd64.deb ... Unpacking libfmt7:amd64 (7.1.3+ds1-5) ... Selecting previously unselected package libfmt-dev:amd64. Preparing to unpack .../242-libfmt-dev_7.1.3+ds1-5_amd64.deb ... Unpacking libfmt-dev:amd64 (7.1.3+ds1-5) ... Selecting previously unselected package libpng16-16:amd64. Preparing to unpack .../243-libpng16-16_1.6.37-3_amd64.deb ... Unpacking libpng16-16:amd64 (1.6.37-3) ... Selecting previously unselected package libfreetype6:amd64. Preparing to unpack .../244-libfreetype6_2.10.4+dfsg-1_amd64.deb ... Unpacking libfreetype6:amd64 (2.10.4+dfsg-1) ... Selecting previously unselected package libfontconfig1:amd64. Preparing to unpack .../245-libfontconfig1_2.13.1-4.2_amd64.deb ... Unpacking libfontconfig1:amd64 (2.13.1-4.2) ... Selecting previously unselected package libpcre2-8-0:amd64. Preparing to unpack .../246-libpcre2-8-0_10.36-2_amd64.deb ... Unpacking libpcre2-8-0:amd64 (10.36-2) ... Selecting previously unselected package libselinux1:amd64. Preparing to unpack .../247-libselinux1_3.1-3_amd64.deb ... Unpacking libselinux1:amd64 (3.1-3) ... Selecting previously unselected package libmount1:amd64. Preparing to unpack .../248-libmount1_2.37.2-1_amd64.deb ... Unpacking libmount1:amd64 (2.37.2-1) ... Selecting previously unselected package libpcre3:amd64. Preparing to unpack .../249-libpcre3_2%3a8.39-13_amd64.deb ... Unpacking libpcre3:amd64 (2:8.39-13) ... Selecting previously unselected package libglib2.0-0:amd64. Preparing to unpack .../250-libglib2.0-0_2.68.4-1_amd64.deb ... Unpacking libglib2.0-0:amd64 (2.68.4-1) ... Selecting previously unselected package libglib2.0-data. Preparing to unpack .../251-libglib2.0-data_2.68.4-1_all.deb ... Unpacking libglib2.0-data (2.68.4-1) ... Selecting previously unselected package libglib2.0-bin. Preparing to unpack .../252-libglib2.0-bin_2.68.4-1_arm64.deb ... Unpacking libglib2.0-bin (2.68.4-1) ... Selecting previously unselected package python3-lib2to3. Preparing to unpack .../253-python3-lib2to3_3.9.2-1_all.deb ... Unpacking python3-lib2to3 (3.9.2-1) ... Selecting previously unselected package python3-distutils. Preparing to unpack .../254-python3-distutils_3.9.2-1_all.deb ... Unpacking python3-distutils (3.9.2-1) ... Selecting previously unselected package libglib2.0-dev-bin. Preparing to unpack .../255-libglib2.0-dev-bin_2.68.4-1_arm64.deb ... Unpacking libglib2.0-dev-bin (2.68.4-1) ... Selecting previously unselected package libsepol1:amd64. Preparing to unpack .../256-libsepol1_3.1-1_amd64.deb ... Unpacking libsepol1:amd64 (3.1-1) ... Selecting previously unselected package libsepol1-dev:amd64. Preparing to unpack .../257-libsepol1-dev_3.1-1_amd64.deb ... Unpacking libsepol1-dev:amd64 (3.1-1) ... Selecting previously unselected package libpcre2-16-0:amd64. Preparing to unpack .../258-libpcre2-16-0_10.36-2_amd64.deb ... Unpacking libpcre2-16-0:amd64 (10.36-2) ... Selecting previously unselected package libpcre2-32-0:amd64. Preparing to unpack .../259-libpcre2-32-0_10.36-2_amd64.deb ... Unpacking libpcre2-32-0:amd64 (10.36-2) ... Selecting previously unselected package libpcre2-posix2:amd64. Preparing to unpack .../260-libpcre2-posix2_10.36-2_amd64.deb ... Unpacking libpcre2-posix2:amd64 (10.36-2) ... Selecting previously unselected package libpcre2-dev:amd64. Preparing to unpack .../261-libpcre2-dev_10.36-2_amd64.deb ... Unpacking libpcre2-dev:amd64 (10.36-2) ... Selecting previously unselected package libselinux1-dev:amd64. Preparing to unpack .../262-libselinux1-dev_3.1-3_amd64.deb ... Unpacking libselinux1-dev:amd64 (3.1-3) ... Selecting previously unselected package libmount-dev:amd64. Preparing to unpack .../263-libmount-dev_2.37.2-1_amd64.deb ... Unpacking libmount-dev:amd64 (2.37.2-1) ... Selecting previously unselected package libpcre16-3:amd64. Preparing to unpack .../264-libpcre16-3_2%3a8.39-13_amd64.deb ... Unpacking libpcre16-3:amd64 (2:8.39-13) ... Selecting previously unselected package libpcre32-3:amd64. Preparing to unpack .../265-libpcre32-3_2%3a8.39-13_amd64.deb ... Unpacking libpcre32-3:amd64 (2:8.39-13) ... Selecting previously unselected package libpcrecpp0v5:amd64. Preparing to unpack .../266-libpcrecpp0v5_2%3a8.39-13_amd64.deb ... Unpacking libpcrecpp0v5:amd64 (2:8.39-13) ... Selecting previously unselected package libpcre3-dev:amd64. Preparing to unpack .../267-libpcre3-dev_2%3a8.39-13_amd64.deb ... Unpacking libpcre3-dev:amd64 (2:8.39-13) ... Selecting previously unselected package zlib1g-dev:amd64. Preparing to unpack .../268-zlib1g-dev_1%3a1.2.11.dfsg-2_amd64.deb ... Unpacking zlib1g-dev:amd64 (1:1.2.11.dfsg-2) ... Selecting previously unselected package libglib2.0-dev:amd64. Preparing to unpack .../269-libglib2.0-dev_2.68.4-1_amd64.deb ... Unpacking libglib2.0-dev:amd64 (2.68.4-1) ... Selecting previously unselected package libglu1-mesa:amd64. Preparing to unpack .../270-libglu1-mesa_9.0.1-1_amd64.deb ... Unpacking libglu1-mesa:amd64 (9.0.1-1) ... Selecting previously unselected package libglu1-mesa-dev:amd64. Preparing to unpack .../271-libglu1-mesa-dev_9.0.1-1_amd64.deb ... Unpacking libglu1-mesa-dev:amd64 (9.0.1-1) ... Selecting previously unselected package libgmpxx4ldbl:amd64. Preparing to unpack .../272-libgmpxx4ldbl_2%3a6.2.1+dfsg-1_amd64.deb ... Unpacking libgmpxx4ldbl:amd64 (2:6.2.1+dfsg-1) ... Selecting previously unselected package libgmp-dev:amd64. Preparing to unpack .../273-libgmp-dev_2%3a6.2.1+dfsg-1_amd64.deb ... Unpacking libgmp-dev:amd64 (2:6.2.1+dfsg-1) ... Selecting previously unselected package libgraphite2-3:amd64. Preparing to unpack .../274-libgraphite2-3_1.3.14-1_amd64.deb ... Unpacking libgraphite2-3:amd64 (1.3.14-1) ... Selecting previously unselected package libunwind8:amd64. Preparing to unpack .../275-libunwind8_1.3.2-2_amd64.deb ... Unpacking libunwind8:amd64 (1.3.2-2) ... Selecting previously unselected package libgstreamer1.0-0:amd64. Preparing to unpack .../276-libgstreamer1.0-0_1.18.4-2.1_amd64.deb ... Unpacking libgstreamer1.0-0:amd64 (1.18.4-2.1) ... Selecting previously unselected package liborc-0.4-0:amd64. Preparing to unpack .../277-liborc-0.4-0_1%3a0.4.32-1_amd64.deb ... Unpacking liborc-0.4-0:amd64 (1:0.4.32-1) ... Selecting previously unselected package libgstreamer-plugins-base1.0-0:amd64. Preparing to unpack .../278-libgstreamer-plugins-base1.0-0_1.18.4-2_amd64.deb ... Unpacking libgstreamer-plugins-base1.0-0:amd64 (1.18.4-2) ... Selecting previously unselected package libudev1:amd64. Preparing to unpack .../279-libudev1_247.9-1_amd64.deb ... Unpacking libudev1:amd64 (247.9-1) ... Selecting previously unselected package libgudev-1.0-0:amd64. Preparing to unpack .../280-libgudev-1.0-0_237-2_amd64.deb ... Unpacking libgudev-1.0-0:amd64 (237-2) ... Selecting previously unselected package libwayland-cursor0:amd64. Preparing to unpack .../281-libwayland-cursor0_1.19.0-2_amd64.deb ... Unpacking libwayland-cursor0:amd64 (1.19.0-2) ... Selecting previously unselected package libwayland-egl1:amd64. Preparing to unpack .../282-libwayland-egl1_1.19.0-2_amd64.deb ... Unpacking libwayland-egl1:amd64 (1.19.0-2) ... Selecting previously unselected package libgstreamer-gl1.0-0:amd64. Preparing to unpack .../283-libgstreamer-gl1.0-0_1.18.4-2_amd64.deb ... Unpacking libgstreamer-gl1.0-0:amd64 (1.18.4-2) ... Selecting previously unselected package libgudev-1.0-0:arm64. Preparing to unpack .../284-libgudev-1.0-0_237-2_arm64.deb ... Unpacking libgudev-1.0-0:arm64 (237-2) ... Selecting previously unselected package libharfbuzz0b:amd64. Preparing to unpack .../285-libharfbuzz0b_2.7.4-1_amd64.deb ... Unpacking libharfbuzz0b:amd64 (2.7.4-1) ... Selecting previously unselected package x11-common. Preparing to unpack .../286-x11-common_1%3a7.7+23_all.deb ... Unpacking x11-common (1:7.7+23) ... Selecting previously unselected package libice6:amd64. Preparing to unpack .../287-libice6_2%3a1.0.10-1_amd64.deb ... Unpacking libice6:amd64 (2:1.0.10-1) ... Selecting previously unselected package libwacom-common. Preparing to unpack .../288-libwacom-common_1.11-1_all.deb ... Unpacking libwacom-common (1.11-1) ... Selecting previously unselected package libwacom2:arm64. Preparing to unpack .../289-libwacom2_1.11-1_arm64.deb ... Unpacking libwacom2:arm64 (1.11-1) ... Selecting previously unselected package libinput-bin. Preparing to unpack .../290-libinput-bin_1.16.4-3_arm64.deb ... Unpacking libinput-bin (1.16.4-3) ... Selecting previously unselected package libmtdev1:amd64. Preparing to unpack .../291-libmtdev1_1.1.6-1_amd64.deb ... Unpacking libmtdev1:amd64 (1.1.6-1) ... Selecting previously unselected package libwacom2:amd64. Preparing to unpack .../292-libwacom2_1.11-1_amd64.deb ... Unpacking libwacom2:amd64 (1.11-1) ... Selecting previously unselected package libinput10:amd64. Preparing to unpack .../293-libinput10_1.16.4-3_amd64.deb ... Unpacking libinput10:amd64 (1.16.4-3) ... Selecting previously unselected package libjpeg62-turbo:amd64. Preparing to unpack .../294-libjpeg62-turbo_1%3a2.0.6-4_amd64.deb ... Unpacking libjpeg62-turbo:amd64 (1:2.0.6-4) ... Selecting previously unselected package liblzo2-2:amd64. Preparing to unpack .../295-liblzo2-2_2.10-2_amd64.deb ... Unpacking liblzo2-2:amd64 (2.10-2) ... Selecting previously unselected package liblzo2-dev:amd64. Preparing to unpack .../296-liblzo2-dev_2.10-2_amd64.deb ... Unpacking liblzo2-dev:amd64 (2.10-2) ... Selecting previously unselected package libmatroska7:amd64. Preparing to unpack .../297-libmatroska7_1.6.3-2_amd64.deb ... Unpacking libmatroska7:amd64 (1.6.3-2) ... Selecting previously unselected package libmatroska-dev:amd64. Preparing to unpack .../298-libmatroska-dev_1.6.3-2_amd64.deb ... Unpacking libmatroska-dev:amd64 (1.6.3-2) ... Selecting previously unselected package libmd4c0:amd64. Preparing to unpack .../299-libmd4c0_0.4.8-1_amd64.deb ... Unpacking libmd4c0:amd64 (0.4.8-1) ... Selecting previously unselected package libopus0:amd64. Preparing to unpack .../300-libopus0_1.3.1-0.1_amd64.deb ... Unpacking libopus0:amd64 (1.3.1-0.1) ... Selecting previously unselected package libosp5. Preparing to unpack .../301-libosp5_1.5.2-13+b2_arm64.deb ... Unpacking libosp5 (1.5.2-13+b2) ... Selecting previously unselected package libpcre2-16-0:arm64. Preparing to unpack .../302-libpcre2-16-0_10.36-2_arm64.deb ... Unpacking libpcre2-16-0:arm64 (10.36-2) ... Selecting previously unselected package libpod-parser-perl. Preparing to unpack .../303-libpod-parser-perl_1.63-2_all.deb ... Adding 'diversion of /usr/bin/podselect to /usr/bin/podselect.bundled by libpod-parser-perl' Adding 'diversion of /usr/share/man/man1/podselect.1.gz to /usr/share/man/man1/podselect.bundled.1.gz by libpod-parser-perl' Unpacking libpod-parser-perl (1.63-2) ... Selecting previously unselected package libpugixml1v5:amd64. Preparing to unpack .../304-libpugixml1v5_1.11.4-1_amd64.deb ... Unpacking libpugixml1v5:amd64 (1.11.4-1) ... Selecting previously unselected package libpugixml-dev:amd64. Preparing to unpack .../305-libpugixml-dev_1.11.4-1_amd64.deb ... Unpacking libpugixml-dev:amd64 (1.11.4-1) ... Selecting previously unselected package libvorbis0a:amd64. Preparing to unpack .../306-libvorbis0a_1.3.7-1_amd64.deb ... Unpacking libvorbis0a:amd64 (1.3.7-1) ... Selecting previously unselected package libvorbisenc2:amd64. Preparing to unpack .../307-libvorbisenc2_1.3.7-1_amd64.deb ... Unpacking libvorbisenc2:amd64 (1.3.7-1) ... Selecting previously unselected package libsndfile1:amd64. Preparing to unpack .../308-libsndfile1_1.0.31-2_amd64.deb ... Unpacking libsndfile1:amd64 (1.0.31-2) ... Selecting previously unselected package libwrap0:amd64. Preparing to unpack .../309-libwrap0_7.6.q-31_amd64.deb ... Unpacking libwrap0:amd64 (7.6.q-31) ... Selecting previously unselected package libpulse0:amd64. Preparing to unpack .../310-libpulse0_15.0+dfsg1-2_amd64.deb ... Unpacking libpulse0:amd64 (15.0+dfsg1-2) ... Selecting previously unselected package shared-mime-info. Preparing to unpack .../311-shared-mime-info_2.0-1_arm64.deb ... Unpacking shared-mime-info (2.0-1) ... Selecting previously unselected package libqt5core5a:amd64. Preparing to unpack .../312-libqt5core5a_5.15.2+dfsg-10_amd64.deb ... Unpacking libqt5core5a:amd64 (5.15.2+dfsg-10) ... Selecting previously unselected package libqt5concurrent5:amd64. Preparing to unpack .../313-libqt5concurrent5_5.15.2+dfsg-10_amd64.deb ... Unpacking libqt5concurrent5:amd64 (5.15.2+dfsg-10) ... Selecting previously unselected package libqt5core5a:arm64. Preparing to unpack .../314-libqt5core5a_5.15.2+dfsg-10_arm64.deb ... Unpacking libqt5core5a:arm64 (5.15.2+dfsg-10) ... Selecting previously unselected package libqt5dbus5:arm64. Preparing to unpack .../315-libqt5dbus5_5.15.2+dfsg-10_arm64.deb ... Unpacking libqt5dbus5:arm64 (5.15.2+dfsg-10) ... Selecting previously unselected package libqt5dbus5:amd64. Preparing to unpack .../316-libqt5dbus5_5.15.2+dfsg-10_amd64.deb ... Unpacking libqt5dbus5:amd64 (5.15.2+dfsg-10) ... Selecting previously unselected package libqt5network5:amd64. Preparing to unpack .../317-libqt5network5_5.15.2+dfsg-10_amd64.deb ... Unpacking libqt5network5:amd64 (5.15.2+dfsg-10) ... Selecting previously unselected package libsm6:amd64. Preparing to unpack .../318-libsm6_2%3a1.2.3-1_amd64.deb ... Unpacking libsm6:amd64 (2:1.2.3-1) ... Selecting previously unselected package libxcb-icccm4:amd64. Preparing to unpack .../319-libxcb-icccm4_0.4.1-1.1_amd64.deb ... Unpacking libxcb-icccm4:amd64 (0.4.1-1.1) ... Selecting previously unselected package libxcb-util1:amd64. Preparing to unpack .../320-libxcb-util1_0.4.0-1+b1_amd64.deb ... Unpacking libxcb-util1:amd64 (0.4.0-1+b1) ... Selecting previously unselected package libxcb-image0:amd64. Preparing to unpack .../321-libxcb-image0_0.4.0-1+b3_amd64.deb ... Unpacking libxcb-image0:amd64 (0.4.0-1+b3) ... Selecting previously unselected package libxcb-keysyms1:amd64. Preparing to unpack .../322-libxcb-keysyms1_0.4.0-1+b2_amd64.deb ... Unpacking libxcb-keysyms1:amd64 (0.4.0-1+b2) ... Selecting previously unselected package libxcb-randr0:amd64. Preparing to unpack .../323-libxcb-randr0_1.14-3_amd64.deb ... Unpacking libxcb-randr0:amd64 (1.14-3) ... Selecting previously unselected package libxcb-render0:amd64. Preparing to unpack .../324-libxcb-render0_1.14-3_amd64.deb ... Unpacking libxcb-render0:amd64 (1.14-3) ... Selecting previously unselected package libxcb-render-util0:amd64. Preparing to unpack .../325-libxcb-render-util0_0.3.9-1+b1_amd64.deb ... Unpacking libxcb-render-util0:amd64 (0.3.9-1+b1) ... Selecting previously unselected package libxcb-shape0:amd64. Preparing to unpack .../326-libxcb-shape0_1.14-3_amd64.deb ... Unpacking libxcb-shape0:amd64 (1.14-3) ... Selecting previously unselected package libxcb-xinerama0:amd64. Preparing to unpack .../327-libxcb-xinerama0_1.14-3_amd64.deb ... Unpacking libxcb-xinerama0:amd64 (1.14-3) ... Selecting previously unselected package libxcb-xinput0:amd64. Preparing to unpack .../328-libxcb-xinput0_1.14-3_amd64.deb ... Unpacking libxcb-xinput0:amd64 (1.14-3) ... Selecting previously unselected package libxcb-xkb1:amd64. Preparing to unpack .../329-libxcb-xkb1_1.14-3_amd64.deb ... Unpacking libxcb-xkb1:amd64 (1.14-3) ... Selecting previously unselected package xkb-data. Preparing to unpack .../330-xkb-data_2.33-1_all.deb ... Unpacking xkb-data (2.33-1) ... Selecting previously unselected package libxkbcommon0:amd64. Preparing to unpack .../331-libxkbcommon0_1.0.3-2_amd64.deb ... Unpacking libxkbcommon0:amd64 (1.0.3-2) ... Selecting previously unselected package libxkbcommon-x11-0:amd64. Preparing to unpack .../332-libxkbcommon-x11-0_1.0.3-2_amd64.deb ... Unpacking libxkbcommon-x11-0:amd64 (1.0.3-2) ... Selecting previously unselected package libxrender1:amd64. Preparing to unpack .../333-libxrender1_1%3a0.9.10-1_amd64.deb ... Unpacking libxrender1:amd64 (1:0.9.10-1) ... Selecting previously unselected package libqt5gui5:amd64. Preparing to unpack .../334-libqt5gui5_5.15.2+dfsg-10_amd64.deb ... Unpacking libqt5gui5:amd64 (5.15.2+dfsg-10) ... Selecting previously unselected package libqt5multimedia5:amd64. Preparing to unpack .../335-libqt5multimedia5_5.15.2-3_amd64.deb ... Unpacking libqt5multimedia5:amd64 (5.15.2-3) ... Selecting previously unselected package libqt5widgets5:amd64. Preparing to unpack .../336-libqt5widgets5_5.15.2+dfsg-10_amd64.deb ... Unpacking libqt5widgets5:amd64 (5.15.2+dfsg-10) ... Selecting previously unselected package libqt5multimediawidgets5:amd64. Preparing to unpack .../337-libqt5multimediawidgets5_5.15.2-3_amd64.deb ... Unpacking libqt5multimediawidgets5:amd64 (5.15.2-3) ... Selecting previously unselected package libqt5multimediagsttools5:amd64. Preparing to unpack .../338-libqt5multimediagsttools5_5.15.2-3_amd64.deb ... Unpacking libqt5multimediagsttools5:amd64 (5.15.2-3) ... Selecting previously unselected package libqt5qml5:amd64. Preparing to unpack .../339-libqt5qml5_5.15.2+dfsg-8_amd64.deb ... Unpacking libqt5qml5:amd64 (5.15.2+dfsg-8) ... Selecting previously unselected package libqt5qmlmodels5:amd64. Preparing to unpack .../340-libqt5qmlmodels5_5.15.2+dfsg-8_amd64.deb ... Unpacking libqt5qmlmodels5:amd64 (5.15.2+dfsg-8) ... Selecting previously unselected package libqt5quick5:amd64. Preparing to unpack .../341-libqt5quick5_5.15.2+dfsg-8_amd64.deb ... Unpacking libqt5quick5:amd64 (5.15.2+dfsg-8) ... Selecting previously unselected package libqt5multimediaquick5:amd64. Preparing to unpack .../342-libqt5multimediaquick5_5.15.2-3_amd64.deb ... Unpacking libqt5multimediaquick5:amd64 (5.15.2-3) ... Selecting previously unselected package libqt5printsupport5:amd64. Preparing to unpack .../343-libqt5printsupport5_5.15.2+dfsg-10_amd64.deb ... Unpacking libqt5printsupport5:amd64 (5.15.2+dfsg-10) ... Selecting previously unselected package libqt5sql5:amd64. Preparing to unpack .../344-libqt5sql5_5.15.2+dfsg-10_amd64.deb ... Unpacking libqt5sql5:amd64 (5.15.2+dfsg-10) ... Selecting previously unselected package libqt5test5:amd64. Preparing to unpack .../345-libqt5test5_5.15.2+dfsg-10_amd64.deb ... Unpacking libqt5test5:amd64 (5.15.2+dfsg-10) ... Selecting previously unselected package libqt5xml5:amd64. Preparing to unpack .../346-libqt5xml5_5.15.2+dfsg-10_amd64.deb ... Unpacking libqt5xml5:amd64 (5.15.2+dfsg-10) ... Selecting previously unselected package rubygems-integration. Preparing to unpack .../347-rubygems-integration_1.18_all.deb ... Unpacking rubygems-integration (1.18) ... Selecting previously unselected package ruby2.7. Preparing to unpack .../348-ruby2.7_2.7.4-1_arm64.deb ... Unpacking ruby2.7 (2.7.4-1) ... Selecting previously unselected package ruby-rubygems. Preparing to unpack .../349-ruby-rubygems_3.2.5-2_all.deb ... Unpacking ruby-rubygems (3.2.5-2) ... Selecting previously unselected package ruby. Preparing to unpack .../350-ruby_1%3a2.7+2_arm64.deb ... Unpacking ruby (1:2.7+2) ... Selecting previously unselected package rake. Preparing to unpack .../351-rake_13.0.3-1_all.deb ... Unpacking rake (13.0.3-1) ... Selecting previously unselected package ruby-minitest. Preparing to unpack .../352-ruby-minitest_5.13.0-1_all.deb ... Unpacking ruby-minitest (5.13.0-1) ... Selecting previously unselected package ruby-net-telnet. Preparing to unpack .../353-ruby-net-telnet_0.1.1-2_all.deb ... Unpacking ruby-net-telnet (0.1.1-2) ... Selecting previously unselected package ruby-power-assert. Preparing to unpack .../354-ruby-power-assert_1.1.7-2_all.deb ... Unpacking ruby-power-assert (1.1.7-2) ... Selecting previously unselected package ruby-test-unit. Preparing to unpack .../355-ruby-test-unit_3.3.9-1_all.deb ... Unpacking ruby-test-unit (3.3.9-1) ... Selecting previously unselected package ruby-xmlrpc. Preparing to unpack .../356-ruby-xmlrpc_0.3.0-2_all.deb ... Unpacking ruby-xmlrpc (0.3.0-2) ... Selecting previously unselected package libyaml-0-2:arm64. Preparing to unpack .../357-libyaml-0-2_0.2.2-1_arm64.deb ... Unpacking libyaml-0-2:arm64 (0.2.2-1) ... Selecting previously unselected package libruby2.7:arm64. Preparing to unpack .../358-libruby2.7_2.7.4-1_arm64.deb ... Unpacking libruby2.7:arm64 (2.7.4-1) ... Selecting previously unselected package libsgmls-perl. Preparing to unpack .../359-libsgmls-perl_1.03ii-36_all.deb ... Unpacking libsgmls-perl (1.03ii-36) ... Selecting previously unselected package libutfcpp-dev:amd64. Preparing to unpack .../360-libutfcpp-dev_2.3.4-1.1_amd64.deb ... Unpacking libutfcpp-dev:amd64 (2.3.4-1.1) ... Selecting previously unselected package libvorbisfile3:amd64. Preparing to unpack .../361-libvorbisfile3_1.3.7-1_amd64.deb ... Unpacking libvorbisfile3:amd64 (1.3.7-1) ... Selecting previously unselected package libvorbis-dev:amd64. Preparing to unpack .../362-libvorbis-dev_1.3.7-1_amd64.deb ... Unpacking libvorbis-dev:amd64 (1.3.7-1) ... Selecting previously unselected package libvulkan-dev:amd64. Preparing to unpack .../363-libvulkan-dev_1.2.162.0-1_amd64.deb ... Unpacking libvulkan-dev:amd64 (1.2.162.0-1) ... Selecting previously unselected package x11proto-xext-dev. Preparing to unpack .../364-x11proto-xext-dev_2020.1-1_all.deb ... Unpacking x11proto-xext-dev (2020.1-1) ... Selecting previously unselected package libxext-dev:amd64. Preparing to unpack .../365-libxext-dev_2%3a1.3.3-1.1_amd64.deb ... Unpacking libxext-dev:amd64 (2:1.3.3-1.1) ... Selecting previously unselected package libxslt1.1:arm64. Preparing to unpack .../366-libxslt1.1_1.1.34-4_arm64.deb ... Unpacking libxslt1.1:arm64 (1.1.34-4) ... Selecting previously unselected package libyaml-tiny-perl. Preparing to unpack .../367-libyaml-tiny-perl_1.73-1_all.deb ... Unpacking libyaml-tiny-perl (1.73-1) ... Selecting previously unselected package nlohmann-json3-dev. Preparing to unpack .../368-nlohmann-json3-dev_3.9.1-1_all.deb ... Unpacking nlohmann-json3-dev (3.9.1-1) ... Selecting previously unselected package opensp. Preparing to unpack .../369-opensp_1.5.2-13+b2_arm64.deb ... Unpacking opensp (1.5.2-13+b2) ... Selecting previously unselected package po4a. Preparing to unpack .../370-po4a_0.62-1_all.deb ... Unpacking po4a (0.62-1) ... Selecting previously unselected package qt5-qmake-bin. Preparing to unpack .../371-qt5-qmake-bin_5.15.2+dfsg-10_arm64.deb ... Unpacking qt5-qmake-bin (5.15.2+dfsg-10) ... Selecting previously unselected package qtchooser. Preparing to unpack .../372-qtchooser_66-2_arm64.deb ... Unpacking qtchooser (66-2) ... Selecting previously unselected package qt5-qmake:amd64. Preparing to unpack .../373-qt5-qmake_5.15.2+dfsg-10_amd64.deb ... Unpacking qt5-qmake:amd64 (5.15.2+dfsg-10) ... Selecting previously unselected package qtbase5-dev-tools. Preparing to unpack .../374-qtbase5-dev-tools_5.15.2+dfsg-10_arm64.deb ... Unpacking qtbase5-dev-tools (5.15.2+dfsg-10) ... Selecting previously unselected package qtbase5-dev:amd64. Preparing to unpack .../375-qtbase5-dev_5.15.2+dfsg-10_amd64.deb ... Unpacking qtbase5-dev:amd64 (5.15.2+dfsg-10) ... Selecting previously unselected package qtmultimedia5-dev:amd64. Preparing to unpack .../376-qtmultimedia5-dev_5.15.2-3_amd64.deb ... Unpacking qtmultimedia5-dev:amd64 (5.15.2-3) ... Selecting previously unselected package xsltproc. Preparing to unpack .../377-xsltproc_1.1.34-4_arm64.deb ... Unpacking xsltproc (1.1.34-4) ... Selecting previously unselected package sbuild-build-depends-main-dummy:amd64. Preparing to unpack .../378-sbuild-build-depends-main-dummy_0.invalid.0_amd64.deb ... Unpacking sbuild-build-depends-main-dummy:amd64 (0.invalid.0) ... Setting up libconfig-inifiles-perl (3.000003-1) ... Setting up libexpat1:amd64 (2.2.10-2) ... Setting up media-types (4.0.0) ... Setting up libpipeline1:arm64 (1.5.3-1) ... Setting up libboost-system1.74.0:amd64 (1.74.0-9) ... Setting up libgraphite2-3:amd64 (1.3.14-1) ... Setting up libfile-which-perl (1.23-1) ... Setting up libxau6:amd64 (1:1.0.9-1) ... Setting up libdouble-conversion3:arm64 (3.1.5-6.1) ... Setting up libkeyutils1:amd64 (1.6.1-2) ... Setting up libsgmls-perl (1.03ii-36) ... Setting up libogg0:amd64 (1.3.4-0.1) ... Setting up linux-libc-dev-amd64-cross (5.10.46-4cross3) ... Setting up bsdextrautils (2.37.2-1) ... update-alternatives: using /usr/bin/write.ul to provide /usr/bin/write (write) in auto mode Setting up libpcre16-3:amd64 (2:8.39-13) ... Setting up libicu67:arm64 (67.1-7) ... Setting up ruby-power-assert (1.1.7-2) ... Setting up libmagic-mgc (1:5.39-3) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libyaml-0-2:arm64 (0.2.2-1) ... Setting up libglib2.0-0:arm64 (2.68.4-1) ... No schema files found: doing nothing. Setting up libglvnd0:amd64 (1.3.2-1) ... Setting up libssl1.1:amd64 (1.1.1l-1) ... Setting up libdebhelper-perl (13.4.1) ... Setting up libbrotli1:amd64 (1.0.9-2+b2) ... Setting up libbrotli1:arm64 (1.0.9-2+b2) ... Setting up libsqlite3-0:arm64 (3.36.0-2) ... Setting up libffi7:amd64 (3.3-6) ... Setting up x11-common (1:7.7+23) ... invoke-rc.d: could not determine current runlevel All runlevel operations denied by policy invoke-rc.d: policy-rc.d denied execution of restart. Setting up libsensors-config (1:3.6.0-7) ... Setting up libnghttp2-14:amd64 (1.43.0-1) ... Setting up libmagic1:arm64 (1:5.39-3) ... Setting up libunistring2:amd64 (0.9.10-6) ... Setting up linux-libc-dev:amd64 (5.10.46-4) ... Setting up libxml-namespacesupport-perl (1.12-1.1) ... Setting up gettext-base (0.21-4) ... Setting up xkb-data (2.33-1) ... Setting up liblzo2-2:amd64 (2.10-2) ... Setting up zlib1g:amd64 (1:1.2.11.dfsg-2) ... Setting up libcrypt1:amd64 (1:4.4.25-1) ... Setting up libidn2-0:amd64 (2.3.2-2) ... Setting up autoconf-archive (20210219-1) ... Setting up libcom-err2:amd64 (1.46.4-1) ... Setting up file (1:5.39-3) ... Setting up libogg-dev:amd64 (1.3.4-0.1) ... Setting up libgomp1:amd64 (11.2.0-3) ... Setting up libffi-dev:amd64 (3.3-6) ... Setting up libunwind8:amd64 (1.3.2-2) ... Setting up libyaml-perl (1.30-1) ... Setting up libyaml-tiny-perl (1.73-1) ... Setting up libpthread-stubs0-dev:amd64 (0.4-1) ... Setting up libpcre2-16-0:amd64 (10.36-2) ... Setting up libpcre2-16-0:arm64 (10.36-2) ... Setting up libsystemd0:amd64 (247.9-1) ... Setting up libcap2:amd64 (1:2.44-1) ... Setting up libcap2:arm64 (1:2.44-1) ... Setting up libasan6:amd64 (11.2.0-3) ... Setting up libflac8:amd64 (1.3.3-2) ... Setting up libkrb5support0:amd64 (1.18.3-7) ... Setting up libosp5 (1.5.2-13+b2) ... Setting up libcap2-bin (1:2.44-1) ... Setting up ruby-minitest (5.13.0-1) ... Setting up libasound2-data (1.2.5.1-1) ... Setting up libxml-sax-base-perl (1.09-1.1) ... Setting up libio-string-perl (1.08-3.1) ... Setting up xtrans-dev (1.4.0-1) ... Setting up gcc-10-base:amd64 (10.3.0-8) ... Setting up libpcre3:amd64 (2:8.39-13) ... Setting up autotools-dev (20180224.1+nmu1) ... Setting up libpcre2-32-0:amd64 (10.36-2) ... Setting up libglib2.0-data (2.68.4-1) ... Setting up cross-config (2.6.18+nmu1) ... Setting up libutfcpp-dev:amd64 (2.3.4-1.1) ... Setting up libjpeg62-turbo:amd64 (1:2.0.6-4) ... Setting up libdvdread8:amd64 (6.1.2-1) ... Setting up qt5-qmake-bin (5.15.2+dfsg-10) ... Setting up ruby-test-unit (3.3.9-1) ... Setting up libnettle8:amd64 (3.7.3-1) ... Setting up libx11-data (2:1.7.2-1) ... Setting up libgmp10:amd64 (2:6.2.1+dfsg-1) ... Setting up libavahi-common-data:amd64 (0.8-5) ... Setting up libdbus-1-3:amd64 (1.12.20-2) ... Setting up libdbus-1-3:arm64 (1.12.20-2) ... Setting up ruby-net-telnet (0.1.1-2) ... Setting up libsigsegv2:arm64 (2.13-1) ... Setting up libopus0:amd64 (1.3.1-0.1) ... Setting up libquadmath0:amd64 (11.2.0-3) ... Setting up libp11-kit0:amd64 (0.23.22-1) ... Setting up libpng16-16:amd64 (1.6.37-3) ... Setting up libpng16-16:arm64 (1.6.37-3) ... Setting up libpcre32-3:amd64 (2:8.39-13) ... Setting up libatomic1:amd64 (11.2.0-3) ... Setting up libvorbis0a:amd64 (1.3.7-1) ... Setting up libuuid1:amd64 (2.37.2-1) ... Setting up liborc-0.4-0:amd64 (1:0.4.32-1) ... Setting up libpod-parser-perl (1.63-2) ... Setting up autopoint (0.21-4) ... Setting up pkg-config (0.29.2-1) ... Setting up fonts-dejavu-core (2.37-2) ... Setting up libc6-amd64-cross (2.31-17cross3) ... Setting up libsensors5:amd64 (1:3.6.0-7) ... Setting up libpcre2-8-0:amd64 (10.36-2) ... Setting up libncursesw6:arm64 (6.2+20201114-4) ... Setting up libk5crypto3:amd64 (1.18.3-7) ... Setting up libglapi-mesa:amd64 (21.2.1-1) ... Setting up gcc-10-cross-base (10.3.0-8cross1) ... Setting up libmtdev1:amd64 (1.1.6-1) ... Setting up libvulkan1:amd64 (1.2.162.0-1) ... Setting up liblzo2-dev:amd64 (2.10-2) ... Setting up libudev1:amd64 (247.9-1) ... Setting up libsepol1:amd64 (3.1-1) ... Setting up libcmark0.30.1:amd64 (0.30.1-2) ... Setting up gcc-11-cross-base (11.2.0-2cross1) ... Setting up libmd0:amd64 (1.0.3-3) ... Setting up libmd0:arm64 (1.0.3-3) ... Setting up sensible-utils (0.0.17) ... Setting up libasyncns0:amd64 (0.8-6+b2) ... Setting up libxshmfence1:amd64 (1.3-1) ... Setting up libcrypt-dev:amd64 (1:4.4.25-1) ... Setting up libuchardet0:arm64 (0.0.7-1) ... Setting up libasound2:amd64 (1.2.5.1-1) ... Setting up gcc-10-x86-64-linux-gnu-base:arm64 (10.2.1-6cross1) ... Setting up libmpdec3:arm64 (2.5.1-2) ... Setting up libtasn1-6:amd64 (4.17.0-2) ... Setting up libmd4c0:amd64 (0.4.8-1) ... Setting up libsub-override-perl (0.09-2) ... Setting up libssh2-1:amd64 (1.9.0-3) ... Setting up xorg-sgml-doctools (1:1.11-1.1) ... Setting up sgml-base (1.30) ... Setting up libkrb5-3:amd64 (1.18.3-7) ... Setting up libwayland-egl1:amd64 (1.19.0-2) ... Setting up nlohmann-json3-dev (3.9.1-1) ... Setting up libboost-date-time1.74.0:amd64 (1.74.0-9) ... Setting up libbz2-1.0:amd64 (1.0.8-4) ... Setting up libgcc-s1-amd64-cross (11.2.0-2cross1) ... Setting up libfile-homedir-perl (1.006-1) ... Setting up openssl (1.1.1l-1) ... Setting up libbsd0:amd64 (0.11.3-1) ... Setting up libbsd0:arm64 (0.11.3-1) ... Setting up libdrm-common (2.4.107-2) ... Setting up libelf1:amd64 (0.185-2) ... Setting up libelf1:arm64 (0.185-2) ... Setting up libevdev2:amd64 (1.11.0+dfsg-1) ... Setting up libevdev2:arm64 (1.11.0+dfsg-1) ... Setting up readline-common (8.1-2) ... Setting up ruby-xmlrpc (0.3.0-2) ... Setting up libdb5.3:amd64 (5.3.28+dfsg1-0.8) ... Setting up libxml2:arm64 (2.9.10+dfsg-6.7) ... Setting up libblkid1:amd64 (2.37.2-1) ... Setting up iso-codes (4.7.0-1) ... Setting up libstdc++6:amd64 (11.2.0-3) ... Setting up liblocale-gettext-perl (1.07-4+b1) ... Setting up libgudev-1.0-0:arm64 (237-2) ... Setting up liblsan0:amd64 (11.2.0-3) ... Setting up qtchooser (66-2) ... Setting up libitm1:amd64 (11.2.0-3) ... Setting up libasan6-amd64-cross (11.2.0-2cross1) ... Setting up libvorbisenc2:amd64 (1.3.7-1) ... Setting up libtinfo6:amd64 (6.2+20201114-4) ... Setting up binutils-x86-64-linux-gnu (2.37-5) ... Setting up libwacom-common (1.11-1) ... Setting up libtsan0:amd64 (11.2.0-3) ... Setting up libxkbcommon0:amd64 (1.0.3-2) ... Setting up libstdc++6-amd64-cross (11.2.0-2cross1) ... Setting up libwayland-client0:amd64 (1.19.0-2) ... Setting up x11proto-dev (2020.1-1) ... Setting up libpcrecpp0v5:amd64 (2:8.39-13) ... Setting up libfile-stripnondeterminism-perl (1.12.0-1) ... Setting up libwayland-server0:amd64 (1.19.0-2) ... Setting up libebml5:amd64 (1.4.2-1) ... Setting up libice6:amd64 (2:1.0.10-1) ... Setting up libpciaccess0:amd64 (0.16-1) ... Setting up libdw1:amd64 (0.185-2) ... Setting up libxdmcp6:amd64 (1:1.1.2-3) ... Setting up libdouble-conversion3:amd64 (3.1.5-6.1) ... Setting up libflac-dev:amd64 (1.3.3-2) ... Setting up libpsl5:amd64 (0.21.0-1.2) ... Setting up libvulkan-dev:amd64 (1.2.162.0-1) ... Setting up libxcb1:amd64 (1.14-3) ... Setting up gettext (0.21-4) ... Setting up libhogweed6:amd64 (3.7.3-1) ... Setting up libxcb-xfixes0:amd64 (1.14-3) ... Setting up libxau-dev:amd64 (1:1.0.9-1) ... Setting up qt5-qmake:amd64 (5.15.2+dfsg-10) ... Setting up libxcb-xinput0:amd64 (1.14-3) ... Setting up libicu67:amd64 (67.1-7) ... Setting up libtool (2.4.6-15) ... Setting up libdvdread-dev:amd64 (6.1.2-1) ... Setting up libxcb-render0:amd64 (1.14-3) ... Setting up liblsan0-amd64-cross (11.2.0-2cross1) ... Setting up libxcb-glx0:amd64 (1.14-3) ... Setting up libc6-dev-amd64-cross (2.31-17cross3) ... Setting up libedit2:amd64 (3.1-20210714-1) ... Setting up libedit2:arm64 (3.1-20210714-1) ... Setting up libreadline8:arm64 (8.1-2) ... Setting up libxcb-keysyms1:amd64 (0.4.0-1+b2) ... Setting up libxcb-shape0:amd64 (1.14-3) ... Setting up libtsan0-amd64-cross (11.2.0-2cross1) ... Setting up libavahi-common3:amd64 (0.8-5) ... Setting up libsepol1-dev:amd64 (3.1-1) ... Setting up libglib2.0-bin (2.68.4-1) ... Setting up cpp-10-x86-64-linux-gnu (10.2.1-6cross1) ... Setting up m4 (1.4.18-5) ... Setting up libxcb-render-util0:amd64 (0.3.9-1+b1) ... Setting up libboost-filesystem1.74.0:amd64 (1.74.0-9) ... Setting up libxcb-shm0:amd64 (1.14-3) ... Setting up libxcb-icccm4:amd64 (0.4.1-1.1) ... Setting up opensp (1.5.2-13+b2) ... Setting up libgomp1-amd64-cross (11.2.0-2cross1) ... Setting up libpugixml1v5:amd64 (1.11.4-1) ... Setting up libxcb-util1:amd64 (0.4.0-1+b1) ... Setting up libxcb-xkb1:amd64 (1.14-3) ... Setting up libxcb-image0:amd64 (0.4.0-1+b3) ... Setting up intltool-debian (0.35.0+20060710.5) ... Setting up libsasl2-modules-db:amd64 (2.1.27+dfsg-2.1) ... Setting up libxcb-present0:amd64 (1.14-3) ... Setting up libitm1-amd64-cross (11.2.0-2cross1) ... Setting up libselinux1:amd64 (3.1-3) ... Setting up ca-certificates (20210119) ... Updating certificates in /etc/ssl/certs... 129 added, 0 removed; done. Setting up libvorbisfile3:amd64 (1.3.7-1) ... Setting up libxdmcp-dev:amd64 (1:1.1.2-3) ... Setting up libz3-4:amd64 (4.8.10-1) ... Setting up libxcb-xinerama0:amd64 (1.14-3) ... Setting up libgnutls30:amd64 (3.7.2-2) ... Setting up libgmpxx4ldbl:amd64 (2:6.2.1+dfsg-1) ... Setting up libatomic1-amd64-cross (11.2.0-2cross1) ... Setting up libfreetype6:amd64 (2.10.4+dfsg-1) ... Setting up libfreetype6:arm64 (2.10.4+dfsg-1) ... Setting up libxcb-sync1:amd64 (1.14-3) ... Setting up librtmp1:amd64 (2.4+20151223.gitfa8646d.1-2+b2) ... Setting up libcmark-dev:amd64 (0.30.1-2) ... Setting up shared-mime-info (2.0-1) ... Setting up libxkbcommon-x11-0:amd64 (1.0.3-2) ... Setting up libquadmath0-amd64-cross (11.2.0-2cross1) ... Setting up libgssapi-krb5-2:amd64 (1.18.3-7) ... Setting up libubsan1-amd64-cross (11.2.0-2cross1) ... Setting up ucf (3.0043) ... Setting up libpcre2-posix2:amd64 (10.36-2) ... Setting up libqt5core5a:arm64 (5.15.2+dfsg-10) ... Setting up libsasl2-2:amd64 (2.1.27+dfsg-2.1) ... Setting up autoconf (2.71-2) ... Setting up libboost-math1.74.0:amd64 (1.74.0-9) ... Setting up libubsan1:amd64 (11.2.0-3) ... Setting up libxcb-dri2-0:amd64 (1.14-3) ... Setting up dh-strip-nondeterminism (1.12.0-1) ... Setting up libboost-serialization1.74.0:amd64 (1.74.0-9) ... Setting up x11proto-xext-dev (2020.1-1) ... Setting up libdrm2:amd64 (2.4.107-2) ... Setting up dwz (0.14-1) ... Setting up groff-base (1.22.4-6) ... Setting up libmatroska7:amd64 (1.6.3-2) ... Setting up libqt5dbus5:arm64 (5.15.2+dfsg-10) ... Setting up libmount1:amd64 (2.37.2-1) ... Setting up libwayland-cursor0:amd64 (1.19.0-2) ... Setting up libxcb-randr0:amd64 (1.14-3) ... Setting up xml-core (0.18+nmu1) ... Setting up libebml-dev:amd64 (1.4.2-1) ... Setting up libxslt1.1:arm64 (1.1.34-4) ... Setting up libfmt7:amd64 (7.1.3+ds1-5) ... Setting up libx11-6:amd64 (2:1.7.2-1) ... Setting up libsndfile1:amd64 (1.0.31-2) ... Setting up libwacom2:arm64 (1.11-1) ... Setting up libsm6:amd64 (2:1.2.3-1) ... Setting up libxml2:amd64 (2.9.10+dfsg-6.7) ... Setting up libavahi-client3:amd64 (0.8-5) ... Setting up libpython3.9-stdlib:arm64 (3.9.2-1) ... Setting up libpython3-stdlib:arm64 (3.9.2-3) ... Setting up libdrm-amdgpu1:amd64 (2.4.107-2) ... Setting up cpp-x86-64-linux-gnu (4:10.2.1-1) ... Setting up automake (1:1.16.4-1) ... update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode Setting up libvorbis-dev:amd64 (1.3.7-1) ... Setting up libtirpc3:amd64 (1.3.2-2) ... Setting up libxcb-dri3-0:amd64 (1.14-3) ... Setting up libx11-xcb1:amd64 (2:1.7.2-1) ... Setting up libdrm-nouveau2:amd64 (2.4.107-2) ... Setting up po4a (0.62-1) ... Setting up libgmp-dev:amd64 (2:6.2.1+dfsg-1) ... Setting up libxcb1-dev:amd64 (1.14-3) ... Setting up libxrender1:amd64 (1:0.9.10-1) ... Setting up libgbm1:amd64 (21.2.1-1) ... Setting up libglib2.0-0:amd64 (2.68.4-1) ... /var/lib/dpkg/info/libglib2.0-0:amd64.postinst: 64: /usr/lib/x86_64-linux-gnu/glib-2.0/glib-compile-schemas: Exec format error /var/lib/dpkg/info/libglib2.0-0:amd64.postinst: 65: /usr/lib/x86_64-linux-gnu/glib-2.0/gio-querymodules: Exec format error Setting up libdrm-radeon1:amd64 (2.4.107-2) ... Setting up fontconfig-config (2.13.1-4.2) ... Setting up libgcc-10-dev-amd64-cross (10.3.0-8cross1) ... Setting up libmatroska-dev:amd64 (1.6.3-2) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up libgcc-10-dev:amd64 (10.3.0-8) ... Setting up libdrm-intel1:amd64 (2.4.107-2) ... Setting up xsltproc (1.1.34-4) ... Setting up libpugixml-dev:amd64 (1.11.4-1) ... Setting up libx11-dev:amd64 (2:1.7.2-1) ... Setting up libxext6:amd64 (2:1.3.3-1.1) ... Setting up libldap-2.4-2:amd64 (2.4.59+dfsg-1) ... Setting up libcurl3-gnutls:amd64 (7.74.0-1.3+b1) ... Setting up rubygems-integration (1.18) ... Setting up libcurl4-gnutls-dev:amd64 (7.74.0-1.3+b1) ... Setting up man-db (2.9.4-2) ... Not building database; man-db/auto-update is not 'true'. Setting up libxml-sax-perl (1.02+dfsg-1) ... update-perl-sax-parsers: Registering Perl SAX parser XML::SAX::PurePerl with priority 10... update-perl-sax-parsers: Updating overall Perl SAX parser modules info file... Creating config file /etc/perl/XML/SAX/ParserDetails.ini with new version Setting up libxxf86vm1:amd64 (1:1.1.4-1+b2) ... Setting up libinput-bin (1.16.4-3) ... Setting up dh-autoreconf (20) ... Setting up qtbase5-dev-tools (5.15.2+dfsg-10) ... Setting up libegl-mesa0:amd64 (21.2.1-1) ... Setting up libtirpc-dev:amd64 (1.3.2-2) ... Setting up libxfixes3:amd64 (1:5.0.3-2) ... Setting up libllvm12:amd64 (1:12.0.1-6) ... Setting up libfmt-dev:amd64 (7.1.3+ds1-5) ... Setting up libqt5core5a:amd64 (5.15.2+dfsg-10) ... Setting up libxext-dev:amd64 (2:1.3.3-1.1) ... Setting up libxml-libxml-perl (2.0134+dfsg-2+b1) ... update-perl-sax-parsers: Registering Perl SAX parser XML::LibXML::SAX::Parser with priority 50... update-perl-sax-parsers: Registering Perl SAX parser XML::LibXML::SAX with priority 50... update-perl-sax-parsers: Updating overall Perl SAX parser modules info file... Replacing config file /etc/perl/XML/SAX/ParserDetails.ini with new version Setting up libcups2:amd64 (2.3.3op2-6) ... Setting up libqt5dbus5:amd64 (5.15.2+dfsg-10) ... Setting up libnsl2:amd64 (1.3.0-2) ... Setting up libegl1:amd64 (1.3.2-1) ... Setting up libharfbuzz0b:amd64 (2.7.4-1) ... Setting up libfontconfig1:amd64 (2.13.1-4.2) ... Setting up libfontconfig1:arm64 (2.13.1-4.2) ... Setting up libqt5test5:amd64 (5.15.2+dfsg-10) ... Setting up gcc-10-x86-64-linux-gnu (10.2.1-6cross1) ... Setting up libqt5concurrent5:amd64 (5.15.2+dfsg-10) ... Setting up libgudev-1.0-0:amd64 (237-2) ... Setting up libgstreamer1.0-0:amd64 (1.18.4-2.1) ... Setcap worked! gst-ptp-helper is not suid! Setting up python3.9 (3.9.2-1) ... Setting up fontconfig (2.13.1-4.2) ... Regenerating fonts cache... done. Setting up libstdc++-10-dev-amd64-cross (10.3.0-8cross1) ... Setting up gcc-x86-64-linux-gnu (4:10.2.1-1) ... Setting up libgl1-mesa-dri:amd64 (21.2.1-1) ... Setting up debhelper (13.4.1) ... Setting up libgstreamer-plugins-base1.0-0:amd64 (1.18.4-2) ... Setting up python3 (3.9.2-3) ... Setting up g++-10-x86-64-linux-gnu (10.2.1-6cross1) ... Setting up libqt5network5:amd64 (5.15.2+dfsg-10) ... Setting up libqt5sql5:amd64 (5.15.2+dfsg-10) ... Setting up libqt5xml5:amd64 (5.15.2+dfsg-10) ... Setting up libwrap0:amd64 (7.6.q-31) ... Setting up libqt5qml5:amd64 (5.15.2+dfsg-8) ... Setting up libxml-simple-perl (2.25-1) ... Setting up libnsl-dev:amd64 (1.3.0-2) ... Setting up g++-x86-64-linux-gnu (4:10.2.1-1) ... Setting up libc6-dev:amd64 (2.31-17) ... Setting up python3-lib2to3 (3.9.2-1) ... Setting up libwacom2:amd64 (1.11-1) ... Setting up libbz2-dev:amd64 (1.0.8-4) ... Setting up python3-distutils (3.9.2-1) ... Setting up libglib2.0-dev-bin (2.68.4-1) ... Setting up libinput10:amd64 (1.16.4-3) ... Setting up libqt5qmlmodels5:amd64 (5.15.2+dfsg-8) ... Setting up libstdc++-10-dev:amd64 (10.3.0-8) ... Setting up libboost1.74-dev:amd64 (1.74.0-9) ... Setting up libglx-mesa0:amd64 (21.2.1-1) ... Setting up libpcre2-dev:amd64 (10.36-2) ... Setting up libglx0:amd64 (1.3.2-1) ... Setting up libpulse0:amd64 (15.0+dfsg1-2) ... Setting up libselinux1-dev:amd64 (3.1-3) ... Setting up libpcre3-dev:amd64 (2:8.39-13) ... Setting up libconfig-auto-perl (0.44-1.1) ... Setting up libgl1:amd64 (1.3.2-1) ... Setting up uuid-dev:amd64 (2.37.2-1) ... Setting up libboost-system1.74-dev:amd64 (1.74.0-9) ... Setting up libboost-serialization1.74-dev:amd64 (1.74.0-9) ... Setting up zlib1g-dev:amd64 (1:1.2.11.dfsg-2) ... Setting up libglx-dev:amd64 (1.3.2-1) ... Setting up libglu1-mesa:amd64 (9.0.1-1) ... Setting up libboost-math1.74-dev:amd64 (1.74.0-9) ... Setting up libboost-filesystem1.74-dev:amd64 (1.74.0-9) ... Setting up libgl-dev:amd64 (1.3.2-1) ... Setting up libboost-filesystem-dev:amd64 (1.74.0.3) ... Setting up libdebian-dpkgcross-perl (2.6.18+nmu1) ... Setting up libblkid-dev:amd64 (2.37.2-1) ... Setting up libegl-dev:amd64 (1.3.2-1) ... Setting up libboost-math-dev:amd64 (1.74.0.3) ... Setting up libqt5gui5:amd64 (5.15.2+dfsg-10) ... Setting up libqt5widgets5:amd64 (5.15.2+dfsg-10) ... Setting up libqt5multimedia5:amd64 (5.15.2-3) ... Setting up libqt5printsupport5:amd64 (5.15.2+dfsg-10) ... Setting up libboost-date-time1.74-dev:amd64 (1.74.0-9) ... Setting up libgstreamer-gl1.0-0:amd64 (1.18.4-2) ... Setting up libglu1-mesa-dev:amd64 (9.0.1-1) ... Setting up libboost-date-time-dev:amd64 (1.74.0.3) ... Setting up libqt5multimediawidgets5:amd64 (5.15.2-3) ... Setting up qtbase5-dev:amd64 (5.15.2+dfsg-10) ... Setting up libqt5multimediagsttools5:amd64 (5.15.2-3) ... Setting up libqt5quick5:amd64 (5.15.2+dfsg-8) ... Setting up libmount-dev:amd64 (2.37.2-1) ... Setting up dpkg-cross (2.6.18+nmu1) ... Setting up libglib2.0-dev:amd64 (2.68.4-1) ... Setting up crossbuild-essential-amd64 (12.9) ... Setting up libqt5multimediaquick5:amd64 (5.15.2-3) ... Setting up qtmultimedia5-dev:amd64 (5.15.2-3) ... Setting up rake (13.0.3-1) ... Setting up ruby-rubygems (3.2.5-2) ... Setting up libruby2.7:arm64 (2.7.4-1) ... Setting up ruby2.7 (2.7.4-1) ... Setting up ruby (1:2.7+2) ... Processing triggers for libc-bin (2.31-17) ... Processing triggers for sgml-base (1.30) ... Setting up docbook-xsl (1.79.2+dfsg-1) ... Setting up sbuild-build-depends-main-dummy:amd64 (0.invalid.0) ... Processing triggers for ca-certificates (20210119) ... Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... done. +------------------------------------------------------------------------------+ | Check architectures | +------------------------------------------------------------------------------+ Arch check ok (amd64 included in any) +------------------------------------------------------------------------------+ | Build environment | +------------------------------------------------------------------------------+ Kernel: Linux 5.9.0-0.bpo.2-arm64 #1 SMP Debian 5.9.6-1~bpo10+1 (2020-11-19) arm64 (aarch64) Toolchain package versions: binutils_2.37-5 dpkg-dev_1.20.9 g++-10_10.3.0-8 gcc-10_10.3.0-8 libc6-dev_2.31-17 libstdc++-10-dev_10.3.0-8 libstdc++-10-dev-amd64-cross_10.3.0-8cross1 libstdc++6_11.2.0-3 libstdc++6-amd64-cross_11.2.0-2cross1 linux-libc-dev_5.10.46-4 Package versions: adduser_3.118 apt_2.3.8 autoconf_2.71-2 autoconf-archive_20210219-1 automake_1:1.16.4-1 autopoint_0.21-4 autotools-dev_20180224.1+nmu1 base-files_12 base-passwd_3.5.51 bash_5.1-3+b1 binutils_2.37-5 binutils-aarch64-linux-gnu_2.37-5 binutils-common_2.37-5 binutils-x86-64-linux-gnu_2.37-5 bsdextrautils_2.37.2-1 bsdutils_1:2.37.2-1 build-essential_12.9 bzip2_1.0.8-4 ca-certificates_20210119 coreutils_8.32-4 cpp_4:10.2.1-1 cpp-10_10.3.0-8 cpp-10-x86-64-linux-gnu_10.2.1-6cross1 cpp-x86-64-linux-gnu_4:10.2.1-1 cross-config_2.6.18+nmu1 crossbuild-essential-amd64_12.9 dash_0.5.11+git20210120+802ebd4-1 debconf_1.5.77 debhelper_13.4.1 debian-archive-keyring_2021.1.1 debianutils_5.4-3 dh-autoreconf_20 dh-strip-nondeterminism_1.12.0-1 diffutils_1:3.7-5 docbook-xsl_1.79.2+dfsg-1 dpkg_1.20.9 dpkg-cross_2.6.18+nmu1 dpkg-dev_1.20.9 dwz_0.14-1 fakeroot_1.25.3-1.1 file_1:5.39-3 findutils_4.8.0-1 fontconfig_2.13.1-4.2 fontconfig-config_2.13.1-4.2 fonts-dejavu-core_2.37-2 g++_4:10.2.1-1 g++-10_10.3.0-8 g++-10-x86-64-linux-gnu_10.2.1-6cross1 g++-x86-64-linux-gnu_4:10.2.1-1 gcc_4:10.2.1-1 gcc-10_10.3.0-8 gcc-10-base_10.3.0-8 gcc-10-cross-base_10.3.0-8cross1 gcc-10-x86-64-linux-gnu_10.2.1-6cross1 gcc-10-x86-64-linux-gnu-base_10.2.1-6cross1 gcc-11-base_11.2.0-3 gcc-11-cross-base_11.2.0-2cross1 gcc-x86-64-linux-gnu_4:10.2.1-1 gettext_0.21-4 gettext-base_0.21-4 gpgv_2.2.27-2 grep_3.6-1 groff-base_1.22.4-6 gzip_1.10-4 hostname_3.23 init-system-helpers_1.60 intltool-debian_0.35.0+20060710.5 iso-codes_4.7.0-1 libacl1_2.3.1-1 libapt-pkg6.0_2.3.8 libarchive-zip-perl_1.68-1 libasan6_11.2.0-3 libasan6-amd64-cross_11.2.0-2cross1 libasound2_1.2.5.1-1 libasound2-data_1.2.5.1-1 libasyncns0_0.8-6+b2 libatomic1_11.2.0-3 libatomic1-amd64-cross_11.2.0-2cross1 libattr1_1:2.5.1-1 libaudit-common_1:3.0.5-1 libaudit1_1:3.0.5-1 libavahi-client3_0.8-5 libavahi-common-data_0.8-5 libavahi-common3_0.8-5 libbinutils_2.37-5 libblkid-dev_2.37.2-1 libblkid1_2.37.2-1 libboost-date-time-dev_1.74.0.3 libboost-date-time1.74-dev_1.74.0-9 libboost-date-time1.74.0_1.74.0-9 libboost-filesystem-dev_1.74.0.3 libboost-filesystem1.74-dev_1.74.0-9 libboost-filesystem1.74.0_1.74.0-9 libboost-math-dev_1.74.0.3 libboost-math1.74-dev_1.74.0-9 libboost-math1.74.0_1.74.0-9 libboost-serialization1.74-dev_1.74.0-9 libboost-serialization1.74.0_1.74.0-9 libboost-system1.74-dev_1.74.0-9 libboost-system1.74.0_1.74.0-9 libboost1.74-dev_1.74.0-9 libbrotli1_1.0.9-2+b2 libbsd0_0.11.3-1 libbz2-1.0_1.0.8-4 libbz2-dev_1.0.8-4 libc-bin_2.31-17 libc-dev-bin_2.31-17 libc6_2.31-17 libc6-amd64-cross_2.31-17cross3 libc6-dev_2.31-17 libc6-dev-amd64-cross_2.31-17cross3 libcap-ng0_0.7.9-2.2+b1 libcap2_1:2.44-1 libcap2-bin_1:2.44-1 libcc1-0_11.2.0-3 libcmark-dev_0.30.1-2 libcmark0.30.1_0.30.1-2 libcom-err2_1.46.4-1 libconfig-auto-perl_0.44-1.1 libconfig-inifiles-perl_3.000003-1 libcrypt-dev_1:4.4.25-1 libcrypt1_1:4.4.25-1 libctf-nobfd0_2.37-5 libctf0_2.37-5 libcups2_2.3.3op2-6 libcurl3-gnutls_7.74.0-1.3+b1 libcurl4-gnutls-dev_7.74.0-1.3+b1 libdb5.3_5.3.28+dfsg1-0.8 libdbus-1-3_1.12.20-2 libdebconfclient0_0.260 libdebhelper-perl_13.4.1 libdebian-dpkgcross-perl_2.6.18+nmu1 libdouble-conversion3_3.1.5-6.1 libdpkg-perl_1.20.9 libdrm-amdgpu1_2.4.107-2 libdrm-common_2.4.107-2 libdrm-intel1_2.4.107-2 libdrm-nouveau2_2.4.107-2 libdrm-radeon1_2.4.107-2 libdrm2_2.4.107-2 libdvdread-dev_6.1.2-1 libdvdread8_6.1.2-1 libdw1_0.185-2 libebml-dev_1.4.2-1 libebml5_1.4.2-1 libedit2_3.1-20210714-1 libegl-dev_1.3.2-1 libegl-mesa0_21.2.1-1 libegl1_1.3.2-1 libelf1_0.185-2 libevdev2_1.11.0+dfsg-1 libexpat1_2.2.10-2 libfakeroot_1.25.3-1.1 libffi-dev_3.3-6 libffi7_3.3-6 libfile-homedir-perl_1.006-1 libfile-stripnondeterminism-perl_1.12.0-1 libfile-which-perl_1.23-1 libflac-dev_1.3.3-2 libflac8_1.3.3-2 libfmt-dev_7.1.3+ds1-5 libfmt7_7.1.3+ds1-5 libfontconfig1_2.13.1-4.2 libfreetype6_2.10.4+dfsg-1 libgbm1_21.2.1-1 libgcc-10-dev_10.3.0-8 libgcc-10-dev-amd64-cross_10.3.0-8cross1 libgcc-s1_11.2.0-3 libgcc-s1-amd64-cross_11.2.0-2cross1 libgcrypt20_1.8.7-6 libgdbm-compat4_1.20-1 libgdbm6_1.20-1 libgl-dev_1.3.2-1 libgl1_1.3.2-1 libgl1-mesa-dri_21.2.1-1 libglapi-mesa_21.2.1-1 libglib2.0-0_2.68.4-1 libglib2.0-bin_2.68.4-1 libglib2.0-data_2.68.4-1 libglib2.0-dev_2.68.4-1 libglib2.0-dev-bin_2.68.4-1 libglu1-mesa_9.0.1-1 libglu1-mesa-dev_9.0.1-1 libglvnd0_1.3.2-1 libglx-dev_1.3.2-1 libglx-mesa0_21.2.1-1 libglx0_1.3.2-1 libgmp-dev_2:6.2.1+dfsg-1 libgmp10_2:6.2.1+dfsg-1 libgmpxx4ldbl_2:6.2.1+dfsg-1 libgnutls30_3.7.2-2 libgomp1_11.2.0-3 libgomp1-amd64-cross_11.2.0-2cross1 libgpg-error0_1.42-3 libgraphite2-3_1.3.14-1 libgssapi-krb5-2_1.18.3-7 libgstreamer-gl1.0-0_1.18.4-2 libgstreamer-plugins-base1.0-0_1.18.4-2 libgstreamer1.0-0_1.18.4-2.1 libgudev-1.0-0_237-2 libharfbuzz0b_2.7.4-1 libhogweed6_3.7.3-1 libice6_2:1.0.10-1 libicu67_67.1-7 libidn2-0_2.3.2-2 libinput-bin_1.16.4-3 libinput10_1.16.4-3 libio-string-perl_1.08-3.1 libisl23_0.23-1 libitm1_11.2.0-3 libitm1-amd64-cross_11.2.0-2cross1 libjpeg62-turbo_1:2.0.6-4 libk5crypto3_1.18.3-7 libkeyutils1_1.6.1-2 libkrb5-3_1.18.3-7 libkrb5support0_1.18.3-7 libldap-2.4-2_2.4.59+dfsg-1 libllvm12_1:12.0.1-6 liblocale-gettext-perl_1.07-4+b1 liblsan0_11.2.0-3 liblsan0-amd64-cross_11.2.0-2cross1 liblz4-1_1.9.3-2 liblzma5_5.2.5-2 liblzo2-2_2.10-2 liblzo2-dev_2.10-2 libmagic-mgc_1:5.39-3 libmagic1_1:5.39-3 libmatroska-dev_1.6.3-2 libmatroska7_1.6.3-2 libmd0_1.0.3-3 libmd4c0_0.4.8-1 libmount-dev_2.37.2-1 libmount1_2.37.2-1 libmpc3_1.2.0-1 libmpdec3_2.5.1-2 libmpfr6_4.1.0-3 libmtdev1_1.1.6-1 libncursesw6_6.2+20201114-4 libnettle8_3.7.3-1 libnghttp2-14_1.43.0-1 libnsl-dev_1.3.0-2 libnsl2_1.3.0-2 libogg-dev_1.3.4-0.1 libogg0_1.3.4-0.1 libopus0_1.3.1-0.1 liborc-0.4-0_1:0.4.32-1 libosp5_1.5.2-13+b2 libp11-kit0_0.23.22-1 libpam-modules_1.4.0-10 libpam-modules-bin_1.4.0-10 libpam-runtime_1.4.0-10 libpam0g_1.4.0-10 libpciaccess0_0.16-1 libpcre16-3_2:8.39-13 libpcre2-16-0_10.36-2 libpcre2-32-0_10.36-2 libpcre2-8-0_10.36-2 libpcre2-dev_10.36-2 libpcre2-posix2_10.36-2 libpcre3_2:8.39-13 libpcre3-dev_2:8.39-13 libpcre32-3_2:8.39-13 libpcrecpp0v5_2:8.39-13 libperl5.32_5.32.1-5 libpipeline1_1.5.3-1 libpng16-16_1.6.37-3 libpod-parser-perl_1.63-2 libpsl5_0.21.0-1.2 libpthread-stubs0-dev_0.4-1 libpugixml-dev_1.11.4-1 libpugixml1v5_1.11.4-1 libpulse0_15.0+dfsg1-2 libpython3-stdlib_3.9.2-3 libpython3.9-minimal_3.9.2-1 libpython3.9-stdlib_3.9.2-1 libqt5concurrent5_5.15.2+dfsg-10 libqt5core5a_5.15.2+dfsg-10 libqt5dbus5_5.15.2+dfsg-10 libqt5gui5_5.15.2+dfsg-10 libqt5multimedia5_5.15.2-3 libqt5multimediagsttools5_5.15.2-3 libqt5multimediaquick5_5.15.2-3 libqt5multimediawidgets5_5.15.2-3 libqt5network5_5.15.2+dfsg-10 libqt5printsupport5_5.15.2+dfsg-10 libqt5qml5_5.15.2+dfsg-8 libqt5qmlmodels5_5.15.2+dfsg-8 libqt5quick5_5.15.2+dfsg-8 libqt5sql5_5.15.2+dfsg-10 libqt5test5_5.15.2+dfsg-10 libqt5widgets5_5.15.2+dfsg-10 libqt5xml5_5.15.2+dfsg-10 libquadmath0_11.2.0-3 libquadmath0-amd64-cross_11.2.0-2cross1 libreadline8_8.1-2 librtmp1_2.4+20151223.gitfa8646d.1-2+b2 libruby2.7_2.7.4-1 libsasl2-2_2.1.27+dfsg-2.1 libsasl2-modules-db_2.1.27+dfsg-2.1 libseccomp2_2.5.1-1 libselinux1_3.1-3 libselinux1-dev_3.1-3 libsemanage-common_3.1-1 libsemanage1_3.1-1+b2 libsensors-config_1:3.6.0-7 libsensors5_1:3.6.0-7 libsepol1_3.1-1 libsepol1-dev_3.1-1 libsgmls-perl_1.03ii-36 libsigsegv2_2.13-1 libsm6_2:1.2.3-1 libsmartcols1_2.37.2-1 libsndfile1_1.0.31-2 libsqlite3-0_3.36.0-2 libssh2-1_1.9.0-3 libssl1.1_1.1.1l-1 libstdc++-10-dev_10.3.0-8 libstdc++-10-dev-amd64-cross_10.3.0-8cross1 libstdc++6_11.2.0-3 libstdc++6-amd64-cross_11.2.0-2cross1 libsub-override-perl_0.09-2 libsystemd0_247.9-1 libtasn1-6_4.17.0-2 libtinfo6_6.2+20201114-4 libtirpc-common_1.3.2-2 libtirpc-dev_1.3.2-2 libtirpc3_1.3.2-2 libtool_2.4.6-15 libtsan0_11.2.0-3 libtsan0-amd64-cross_11.2.0-2cross1 libubsan1_11.2.0-3 libubsan1-amd64-cross_11.2.0-2cross1 libuchardet0_0.0.7-1 libudev1_247.9-1 libunistring2_0.9.10-6 libunwind8_1.3.2-2 libutfcpp-dev_2.3.4-1.1 libuuid1_2.37.2-1 libvorbis-dev_1.3.7-1 libvorbis0a_1.3.7-1 libvorbisenc2_1.3.7-1 libvorbisfile3_1.3.7-1 libvulkan-dev_1.2.162.0-1 libvulkan1_1.2.162.0-1 libwacom-common_1.11-1 libwacom2_1.11-1 libwayland-client0_1.19.0-2 libwayland-cursor0_1.19.0-2 libwayland-egl1_1.19.0-2 libwayland-server0_1.19.0-2 libwrap0_7.6.q-31 libx11-6_2:1.7.2-1 libx11-data_2:1.7.2-1 libx11-dev_2:1.7.2-1 libx11-xcb1_2:1.7.2-1 libxau-dev_1:1.0.9-1 libxau6_1:1.0.9-1 libxcb-dri2-0_1.14-3 libxcb-dri3-0_1.14-3 libxcb-glx0_1.14-3 libxcb-icccm4_0.4.1-1.1 libxcb-image0_0.4.0-1+b3 libxcb-keysyms1_0.4.0-1+b2 libxcb-present0_1.14-3 libxcb-randr0_1.14-3 libxcb-render-util0_0.3.9-1+b1 libxcb-render0_1.14-3 libxcb-shape0_1.14-3 libxcb-shm0_1.14-3 libxcb-sync1_1.14-3 libxcb-util1_0.4.0-1+b1 libxcb-xfixes0_1.14-3 libxcb-xinerama0_1.14-3 libxcb-xinput0_1.14-3 libxcb-xkb1_1.14-3 libxcb1_1.14-3 libxcb1-dev_1.14-3 libxdmcp-dev_1:1.1.2-3 libxdmcp6_1:1.1.2-3 libxext-dev_2:1.3.3-1.1 libxext6_2:1.3.3-1.1 libxfixes3_1:5.0.3-2 libxkbcommon-x11-0_1.0.3-2 libxkbcommon0_1.0.3-2 libxml-libxml-perl_2.0134+dfsg-2+b1 libxml-namespacesupport-perl_1.12-1.1 libxml-sax-base-perl_1.09-1.1 libxml-sax-perl_1.02+dfsg-1 libxml-simple-perl_2.25-1 libxml2_2.9.10+dfsg-6.7 libxrender1_1:0.9.10-1 libxshmfence1_1.3-1 libxslt1.1_1.1.34-4 libxxf86vm1_1:1.1.4-1+b2 libxxhash0_0.8.0-2 libyaml-0-2_0.2.2-1 libyaml-perl_1.30-1 libyaml-tiny-perl_1.73-1 libz3-4_4.8.10-1 libzstd1_1.4.8+dfsg-2.1 linux-libc-dev_5.10.46-4 linux-libc-dev-amd64-cross_5.10.46-4cross3 login_1:4.8.1-1 lsb-base_11.1.0 m4_1.4.18-5 make_4.3-4.1 man-db_2.9.4-2 mawk_1.3.4.20200120-2 media-types_4.0.0 mount_2.37.2-1 ncurses-base_6.2+20201114-4 ncurses-bin_6.2+20201114-4 nlohmann-json3-dev_3.9.1-1 opensp_1.5.2-13+b2 openssl_1.1.1l-1 passwd_1:4.8.1-1 patch_2.7.6-7 perl_5.32.1-5 perl-base_5.32.1-5 perl-modules-5.32_5.32.1-5 pkg-config_0.29.2-1 po-debconf_1.0.21+nmu1 po4a_0.62-1 python3_3.9.2-3 python3-distutils_3.9.2-1 python3-lib2to3_3.9.2-1 python3-minimal_3.9.2-3 python3.9_3.9.2-1 python3.9-minimal_3.9.2-1 qt5-qmake_5.15.2+dfsg-10 qt5-qmake-bin_5.15.2+dfsg-10 qtbase5-dev_5.15.2+dfsg-10 qtbase5-dev-tools_5.15.2+dfsg-10 qtchooser_66-2 qtmultimedia5-dev_5.15.2-3 rake_13.0.3-1 readline-common_8.1-2 rpcsvc-proto_1.4.2-4 ruby_1:2.7+2 ruby-minitest_5.13.0-1 ruby-net-telnet_0.1.1-2 ruby-power-assert_1.1.7-2 ruby-rubygems_3.2.5-2 ruby-test-unit_3.3.9-1 ruby-xmlrpc_0.3.0-2 ruby2.7_2.7.4-1 rubygems-integration_1.18 sbuild-build-depends-main-dummy_0.invalid.0 sed_4.7-1 sensible-utils_0.0.17 sgml-base_1.30 shared-mime-info_2.0-1 sysvinit-utils_2.96-7 tar_1.34+dfsg-1 tzdata_2021a-1 ucf_3.0043 util-linux_2.37.2-1 uuid-dev_2.37.2-1 x11-common_1:7.7+23 x11proto-dev_2020.1-1 x11proto-xext-dev_2020.1-1 xkb-data_2.33-1 xml-core_0.18+nmu1 xorg-sgml-doctools_1:1.11-1.1 xsltproc_1.1.34-4 xtrans-dev_1.4.0-1 xz-utils_5.2.5-2 zlib1g_1:1.2.11.dfsg-2 zlib1g-dev_1:1.2.11.dfsg-2 +------------------------------------------------------------------------------+ | Build | +------------------------------------------------------------------------------+ Unpack source ------------- -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Format: 3.0 (quilt) Source: mkvtoolnix Binary: mkvtoolnix, mkvtoolnix-gui Architecture: any Version: 61.0.0-1 Maintainer: Christian Marillat Homepage: https://mkvtoolnix.download/index.html Standards-Version: 4.5.1 Build-Depends: debhelper-compat (= 13), libboost-math-dev, rake, po4a, libbz2-dev, libflac-dev, libmatroska-dev (>= 1.6.3~), libogg-dev, libvorbis-dev, ruby:any, liblzo2-dev, zlib1g-dev, libcurl4-gnutls-dev, pkg-config, libboost-date-time-dev, libpugixml-dev, qtbase5-dev, libboost-filesystem-dev, nlohmann-json3-dev, xsltproc, docbook-xsl, qtmultimedia5-dev, libfmt-dev (>= 6.1.0), autoconf-archive, libcmark-dev (>= 0.28.3~), libdvdread-dev, libutfcpp-dev, libebml-dev (>= 1.4.2~), libgmp-dev Package-List: mkvtoolnix deb graphics optional arch=any mkvtoolnix-gui deb graphics optional arch=any Checksums-Sha1: 9e37dc678d0724636141d23204d027ee8c933223 7662500 mkvtoolnix_61.0.0.orig.tar.xz 23e1c3ae4b7f93faf7b96445f59569d30948491f 8140 mkvtoolnix_61.0.0-1.debian.tar.xz Checksums-Sha256: 7b8dd54d7d464a4fbdbc5315be9f000b904d0cd3b4711910059ce66c7778935b 7662500 mkvtoolnix_61.0.0.orig.tar.xz b9a833c1a24193b77590c07cbb7c5ed291e4ce265aa10c0eae21afc9050358c6 8140 mkvtoolnix_61.0.0-1.debian.tar.xz Files: b2ad5d77016b3f2aeeaeba61575bb1e4 7662500 mkvtoolnix_61.0.0.orig.tar.xz 28ac11523031ad13284f3da21be682f4 8140 mkvtoolnix_61.0.0-1.debian.tar.xz -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEpAH/mTaPofmBUt51XICMK2VVgRcFAmEs+v8ACgkQXICMK2VV gRfkvRAAsV/xWr0XldGrf92F0PZShQeMRHFlpfOpr93ZKIk+DEs0Wmj0subAAtRn tfSEgR7TFkLOXjJtFBl9cFA0gr6RPOPUdvhPMXT/r8OjJ3TO1kP1JimMhAjIcJAR UEwV31RaCD+hEyoe4cXxpeGNzVPsvPdjdx9REoAmqfDVu31c4mTuSmxTJtNjLmh8 GJzMtb8XfCfzRIx4gXuR7KRFB5ryctW0zdiy1plQf7fYmkhlEJxFFeVfYSC1dTi0 JoG3iL+FrjG5Sqznbr8rpw1jMd92PykOmk+70UjklUf7gOurzAPLk9eyDiS6GDz7 zxEdhjre2wkCnxl2k2McNbtbniiXfqLQaPGsKJUe3F+AGF/phQnA+r1zx+slYXmg VLs/FYWdbMAUtfWqUo+D4cRANIsyjs4rUdCSF2UymlS448nlIjv9Qr4JRbFmUq49 4pghvtJvlhocY6+udjlFmieZT5PCvHmD1YpcgRLoccbRqd+XjYRx34w9lB7UPTpn 6jmUiYaGkqjNqQ5qiMKsOdLwkgzw8Ye7/z1LVETYpgkUvDwkkTXEBO6DKsNSjjGY lYRaHr9Pwuh+UNT9VTXrbeyFQ+qOXE9/Ao8SYQx4NoDX0bxhes7gOO9luqkOyKHZ 36CgRzIbiQxnes7kGyuODICg+htsqKpB6OBilzvLnBGzCpR4Kv8= =RVe7 -----END PGP SIGNATURE----- gpgv: unknown type of key resource 'trustedkeys.kbx' gpgv: keyblock resource '/tmp/dpkg-verify-sig.aLsuUaKg/trustedkeys.kbx': General error gpgv: Signature made Mon Aug 30 15:36:31 2021 UTC gpgv: using RSA key A401FF99368FA1F98152DE755C808C2B65558117 gpgv: Can't check signature: No public key dpkg-source: warning: failed to verify signature on ./mkvtoolnix_61.0.0-1.dsc dpkg-source: info: extracting mkvtoolnix in /<> dpkg-source: info: unpacking mkvtoolnix_61.0.0.orig.tar.xz dpkg-source: info: unpacking mkvtoolnix_61.0.0-1.debian.tar.xz Check disk space ---------------- Sufficient free space for build +------------------------------------------------------------------------------+ | Starting Timed Build Commands | +------------------------------------------------------------------------------+ ulimit -c --------- 0 I: Finished running 'ulimit -c'. Finished processing commands. -------------------------------------------------------------------------------- User Environment ---------------- APT_CONFIG=/var/lib/sbuild/apt.conf CONFIG_SITE=/etc/dpkg-cross/cross-config.amd64 DEB_BUILD_OPTIONS=nocheck HOME=/sbuild-nonexistent LANG=en_GB.UTF-8 LC_ALL=C.UTF-8 LOGNAME=helmutg PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games SCHROOT_ALIAS_NAME=crossqa-sid SCHROOT_CHROOT_NAME=crossqa-sid SCHROOT_COMMAND=env SCHROOT_GID=1002 SCHROOT_GROUP=helmutg SCHROOT_SESSION_ID=crossqa-sid-4f09339f-3911-4fb8-bb5d-4232c572e8cf SCHROOT_UID=1002 SCHROOT_USER=helmutg SHELL=/bin/sh USER=helmutg dpkg-buildpackage ----------------- Command: dpkg-buildpackage -aamd64 -Pcross,nocheck -us -uc -B -rfakeroot --jobs-try=1 dpkg-buildpackage: info: source package mkvtoolnix dpkg-buildpackage: info: source version 61.0.0-1 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Christian Marillat dpkg-architecture: warning: specified GNU system type x86_64-linux-gnu does not match CC system type aarch64-linux-gnu, try setting a correct CC environment variable dpkg-source --before-build . dpkg-buildpackage: info: host architecture amd64 fakeroot debian/rules clean dh clean debian/rules override_dh_clean make[1]: Entering directory '/<>' [ ! -f build-config ] || rake clean:dist dh_clean config.status rake.d/dependecy.d/*.rb src/input/*.d \ config.h build-config ac/ax_boost_base.m4 make[1]: Leaving directory '/<>' debian/rules build-arch dh build-arch dh_update_autotools_config -a debian/rules override_dh_autoreconf make[1]: Entering directory '/<>' cp /usr/share/aclocal/ax_boost_base.m4 ac dh_autoreconf ac/other_features.m4:7: warning: The macro `AC_HELP_STRING' is obsolete. ac/other_features.m4:7: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/other_features.m4:7: the top level ac/initialization.m4:22: warning: The macro `AC_HEADER_STDC' is obsolete. ac/initialization.m4:22: You should run autoupdate. ./lib/autoconf/headers.m4:704: AC_HEADER_STDC is expanded from... ac/initialization.m4:22: the top level ac/c++-features.m4:258: warning: The macro `AC_TRY_COMPILE' is obsolete. ac/c++-features.m4:258: You should run autoupdate. ./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from... ac/c++-features.m4:1: AX_CXX_STD_CXX_FLAG is expanded from... ac/c++-features.m4:258: the top level ac/c++-features.m4:259: warning: The macro `AC_TRY_COMPILE' is obsolete. ac/c++-features.m4:259: You should run autoupdate. ./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from... ac/c++-features.m4:32: AX_CXX17_ATTRIBUTE_MAYBE_UNUSED is expanded from... ac/c++-features.m4:259: the top level ac/c++-features.m4:260: warning: The macro `AC_TRY_COMPILE' is obsolete. ac/c++-features.m4:260: You should run autoupdate. ./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from... ac/c++-features.m4:90: AX_CXX17_NESTED_NAMESPACE_DEFINITION is expanded from... ac/c++-features.m4:260: the top level ac/c++-features.m4:261: warning: The macro `AC_TRY_COMPILE' is obsolete. ac/c++-features.m4:261: You should run autoupdate. ./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from... ac/c++-features.m4:59: AX_CXX17_STRUCTURED_BINDINGS is expanded from... ac/c++-features.m4:261: the top level ac/c++-features.m4:262: warning: The macro `AC_TRY_COMPILE' is obsolete. ac/c++-features.m4:262: You should run autoupdate. ./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from... ac/c++-features.m4:113: AX_CXX17_STD_OPTIONAL is expanded from... ac/c++-features.m4:262: the top level ac/c++-features.m4:263: warning: The macro `AC_TRY_COMPILE' is obsolete. ac/c++-features.m4:263: You should run autoupdate. ./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from... ac/c++-features.m4:140: AX_CXX17_STD_GCD is expanded from... ac/c++-features.m4:263: the top level ac/c++-features.m4:264: warning: The macro `AC_TRY_COMPILE' is obsolete. ac/c++-features.m4:264: You should run autoupdate. ./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from... ac/c++-features.m4:163: AX_CXX17_CONSTEXPR_IF is expanded from... ac/c++-features.m4:264: the top level ac/c++-features.m4:265: warning: The macro `AC_TRY_COMPILE' is obsolete. ac/c++-features.m4:265: You should run autoupdate. ./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from... ac/c++-features.m4:186: AX_CXX17_FILESYSTEM_LIBRARY is expanded from... ac/c++-features.m4:265: the top level ac/c++-features.m4:266: warning: The macro `AC_TRY_LINK' is obsolete. ac/c++-features.m4:266: You should run autoupdate. ./lib/autoconf/general.m4:2920: AC_TRY_LINK is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from... ac/c++-features.m4:209: AX_CXX17_LIBSTDCPPFS is expanded from... ac/c++-features.m4:266: the top level ac/endianess.m4:9: warning: The macro `AC_HELP_STRING' is obsolete. ac/endianess.m4:9: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/endianess.m4:9: the top level ac/extra_inc_lib.m4:5: warning: The macro `AC_HELP_STRING' is obsolete. ac/extra_inc_lib.m4:5: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/extra_inc_lib.m4:5: the top level ac/extra_inc_lib.m4:8: warning: The macro `AC_HELP_STRING' is obsolete. ac/extra_inc_lib.m4:8: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/extra_inc_lib.m4:8: the top level ac/drmingw.m4:2: warning: The macro `AC_HELP_STRING' is obsolete. ac/drmingw.m4:2: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/drmingw.m4:2: the top level ac/drmingw.m4:8: warning: The macro `AC_TRY_LINK' is obsolete. ac/drmingw.m4:8: You should run autoupdate. ./lib/autoconf/general.m4:2920: AC_TRY_LINK is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from... ac/drmingw.m4:8: the top level ac/debugging_profiling.m4:6: warning: The macro `AC_HELP_STRING' is obsolete. ac/debugging_profiling.m4:6: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/debugging_profiling.m4:6: the top level ac/debugging_profiling.m4:25: warning: The macro `AC_HELP_STRING' is obsolete. ac/debugging_profiling.m4:25: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/debugging_profiling.m4:25: the top level ac/debugging_profiling.m4:44: warning: The macro `AC_HELP_STRING' is obsolete. ac/debugging_profiling.m4:44: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/debugging_profiling.m4:44: the top level ac/debugging_profiling.m4:76: warning: The macro `AC_HELP_STRING' is obsolete. ac/debugging_profiling.m4:76: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/debugging_profiling.m4:76: the top level ac/debugging_profiling.m4:94: warning: The macro `AC_HELP_STRING' is obsolete. ac/debugging_profiling.m4:94: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/debugging_profiling.m4:94: the top level ac/precompiled_headers.m4:6: warning: The macro `AC_HELP_STRING' is obsolete. ac/precompiled_headers.m4:6: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/precompiled_headers.m4:6: the top level ac/inttypes.m4:7: warning: The macro `AC_TRY_COMPILE' is obsolete. ac/inttypes.m4:7: You should run autoupdate. ./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ac/inttypes.m4:7: the top level ac/inttypes.m4:26: warning: The macro `AC_TRY_COMPILE' is obsolete. ac/inttypes.m4:26: You should run autoupdate. ./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ac/inttypes.m4:26: the top level ac/iconv.m4:12: warning: The macro `AC_TRY_LINK' is obsolete. ac/iconv.m4:12: You should run autoupdate. ./lib/autoconf/general.m4:2920: AC_TRY_LINK is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from... ac/iconv.m4:12: the top level ac/iconv.m4:36: warning: The macro `AC_TRY_COMPILE' is obsolete. ac/iconv.m4:36: You should run autoupdate. ./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ac/iconv.m4:36: the top level ac/nl_langinfo.m4:6: warning: The macro `AC_TRY_COMPILE' is obsolete. ac/nl_langinfo.m4:6: You should run autoupdate. ./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ac/nl_langinfo.m4:6: the top level ac/nl_langinfo.m4:19: warning: The macro `AC_TRY_COMPILE' is obsolete. ac/nl_langinfo.m4:19: You should run autoupdate. ./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ac/nl_langinfo.m4:19: the top level ac/static.m4:5: warning: The macro `AC_HELP_STRING' is obsolete. ac/static.m4:5: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/static.m4:5: the top level ac/flac.m4:12: warning: The macro `AC_HELP_STRING' is obsolete. ac/flac.m4:12: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/flac.m4:12: the top level ac/nlohmann_jsoncpp.m4:6: warning: The macro `AC_TRY_COMPILE' is obsolete. ac/nlohmann_jsoncpp.m4:6: You should run autoupdate. ./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from... ac/nlohmann_jsoncpp.m4:6: the top level ac/fmt.m4:6: warning: The macro `AC_TRY_COMPILE' is obsolete. ac/fmt.m4:6: You should run autoupdate. ./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from... ac/fmt.m4:6: the top level ac/fmt.m4:6: warning: The macro `AC_TRY_COMPILE' is obsolete. ac/fmt.m4:6: You should run autoupdate. ./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from... ac/fmt.m4:6: the top level ac/zlib.m4:12: warning: The macro `AC_TRY_LINK' is obsolete. ac/zlib.m4:12: You should run autoupdate. ./lib/autoconf/general.m4:2920: AC_TRY_LINK is expanded from... ac/zlib.m4:12: the top level ac/qt6.m4:9: warning: The macro `AC_HELP_STRING' is obsolete. ac/qt6.m4:9: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/qt6.m4:9: the top level ac/qt6.m4:148: warning: The macro `AC_TRY_LINK' is obsolete. ac/qt6.m4:148: You should run autoupdate. ./lib/autoconf/general.m4:2920: AC_TRY_LINK is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ac/qt6.m4:148: the top level ac/qt6.m4:189: warning: The macro `AC_HELP_STRING' is obsolete. ac/qt6.m4:189: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/qt6.m4:189: the top level ac/qt6.m4:192: warning: The macro `AC_HELP_STRING' is obsolete. ac/qt6.m4:192: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/qt6.m4:192: the top level ac/qt5.m4:9: warning: The macro `AC_HELP_STRING' is obsolete. ac/qt5.m4:9: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/qt5.m4:9: the top level ac/qt5.m4:123: warning: The macro `AC_TRY_LINK' is obsolete. ac/qt5.m4:123: You should run autoupdate. ./lib/autoconf/general.m4:2920: AC_TRY_LINK is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ac/qt5.m4:123: the top level ac/qt5.m4:244: warning: The macro `AC_HELP_STRING' is obsolete. ac/qt5.m4:244: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/qt5.m4:244: the top level ac/qt5.m4:247: warning: The macro `AC_HELP_STRING' is obsolete. ac/qt5.m4:247: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/qt5.m4:247: the top level ac/qt5.m4:249: warning: The macro `AC_HELP_STRING' is obsolete. ac/qt5.m4:249: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/qt5.m4:249: the top level ac/qt5.m4:251: warning: The macro `AC_HELP_STRING' is obsolete. ac/qt5.m4:251: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/qt5.m4:251: the top level ac/gtest.m4:29: warning: The macro `AC_TRY_COMPILE' is obsolete. ac/gtest.m4:29: You should run autoupdate. ./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ac/gtest.m4:1: AX_GTEST is expanded from... ac/gtest.m4:29: the top level ac/ax_docbook.m4:2: warning: The macro `AC_HELP_STRING' is obsolete. ac/ax_docbook.m4:2: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/ax_docbook.m4:2: the top level ac/ax_docbook.m4:37: warning: The macro `AC_HELP_STRING' is obsolete. ac/ax_docbook.m4:37: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/ax_docbook.m4:37: the top level ac/dvdread.m4:5: warning: The macro `AC_HELP_STRING' is obsolete. ac/dvdread.m4:5: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/dvdread.m4:5: the top level ac/po4a.m4:6: warning: The macro `AC_HELP_STRING' is obsolete. ac/po4a.m4:6: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/po4a.m4:6: the top level ac/po4a.m4:17: warning: The macro `AC_HELP_STRING' is obsolete. ac/po4a.m4:17: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/po4a.m4:17: the top level ac/translations.m4:4: warning: The macro `AC_HELP_STRING' is obsolete. ac/translations.m4:4: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ac/translations.m4:4: the top level configure.ac:55: warning: AC_OUTPUT should be used without arguments. configure.ac:55: You should run autoupdate. make[1]: Leaving directory '/<>' debian/rules override_dh_auto_configure make[1]: Entering directory '/<>' dh_auto_configure -- \ --docdir='${datarootdir}/doc/mkvtoolnix-gui' \ --disable-update-check --enable-debug ./configure --build=aarch64-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-option-checking --disable-silent-rules --libdir=\${prefix}/lib/x86_64-linux-gnu --runstatedir=/run --disable-maintainer-mode --disable-dependency-tracking --host=x86_64-linux-gnu --docdir=\${datarootdir}/doc/mkvtoolnix-gui --disable-update-check --enable-debug configure: loading site script /etc/dpkg-cross/cross-config.amd64 checking build system type... aarch64-unknown-linux-gnu checking host system type... x86_64-pc-linux-gnu checking target system type... x86_64-pc-linux-gnu checking for x86_64-linux-gnu-gcc... x86_64-linux-gnu-gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... yes checking for suffix of object files... o checking whether the compiler supports GNU C... yes checking whether x86_64-linux-gnu-gcc accepts -g... yes checking for x86_64-linux-gnu-gcc option to enable C11 features... none needed checking whether x86_64-linux-gnu-gcc and cc understand -c and -o together... yes checking how to run the C preprocessor... x86_64-linux-gnu-gcc -E checking for x86_64-linux-gnu-g++... x86_64-linux-gnu-g++ checking whether the compiler supports GNU C++... yes checking whether x86_64-linux-gnu-g++ accepts -g... yes checking for x86_64-linux-gnu-g++ option to enable C++11 features... none needed checking how to run the C++ preprocessor... x86_64-linux-gnu-g++ -E checking whether make sets $(MAKE)... yes checking for a BSD-compatible install... /usr/bin/install -c checking for x86_64-linux-gnu-ranlib... x86_64-linux-gnu-ranlib checking for x86_64-linux-gnu-strip... x86_64-linux-gnu-strip checking for x86_64-linux-gnu-ar... x86_64-linux-gnu-ar checking for x86_64-linux-gnu-ld... x86_64-linux-gnu-ld checking for x86_64-linux-gnu-strings... x86_64-linux-gnu-strings checking for x86_64-linux-gnu-objdump... x86_64-linux-gnu-objdump checking for x86_64-linux-gnu-pkg-config... /usr/bin/x86_64-linux-gnu-pkg-config checking pkg-config is at least version 0.9.0... yes checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for inttypes.h... (cached) yes checking for stdint.h... (cached) yes checking for sys/types.h... (cached) yes checking for sys/syscall.h... yes checking for stropts.h... no checking for syscall... yes checking compiler type and version... gcc 10.2.1 checking for lld... no checking for support for the "-std=c++17" flag... -std=c++17 checking for support for C++17 feature "attribute 'maybe_unused'"... yes checking for support for C++17 feature "nested namespace definition"... yes checking for support for C++17 feature "structured bindings"... yes checking for support for C++17 feature "std::optional"... yes checking for support for C++17 feature "std::gcd"... yes checking for support for C++17 feature "constexpr if"... yes checking for support for C++17 feature "file system library"... yes checking for libraries to link against for the file system library... -lstdc++fs checking whether the byte order is big-endian... (cached) no checking if being compiled with mingw32... no checking for int64_t... yes checking for uint64_t... yes checking size of int... 4 checking size of long... 8 checking size of long long... 8 checking for iconv.h... yes checking for iconv... yes checking for iconv declaration... extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); checking for nl_langinfo... yes checking for ogg_sync_init in -logg... yes checking for ogg/ogg.h... yes checking for vorbis_synthesis_init in -lvorbis... yes checking for vorbis/codec.h... yes checking for FLAC__stream_decoder_new in -lFLAC... yes checking for FLAC__StreamMetadata_StreamInfo.sample_rate... yes checking for FLAC__stream_decoder_skip_single_frame in -lFLAC... yes checking for EBML... yes checking for MATROSKA... yes checking for PUGIXML... yes configure: Using the system version of the pugixml library checking nlohmann's json-cpp... yes configure: Using the system version of nlohmann json-cpp checking for utf8.h... yes configure: Using the system version of UTF8-CPP checking fmt... yes checking for ZLIB... yes checking for x86_64-linux-gnu-qmake6... no checking for qmake6... no checking for Qt 6... no: qmake6 not found checking for x86_64-linux-gnu-qmake-qt5... no checking for qmake-qt5... no checking for x86_64-linux-gnu-qmake... /usr/bin/x86_64-linux-gnu-qmake checking for qmake's version... 5.15.2 checking for lconvert... /usr/bin/lconvert checking for moc... /usr/lib/qt5/bin/moc checking for rcc... /usr/lib/qt5/bin/rcc checking for uic... /usr/lib/qt5/bin/uic checking for Qt 5... yes checking for libcmark... yes checking for boostlib >= 1.66.0 (106600)... yes checking for Boost's multi-precision library with GMP backend... yes checking for boost/operators.hpp... yes checking for main in -lgtest_main... no checking for gtest/gtest.h... no checking for valgrind... no checking for main in -lbenchmark... no checking for benchmark/benchmark.h... no checking for pandoc... no checking for DocBook XSL root directory... /usr/share/xml/docbook/stylesheet/nwalsh checking for xsltproc... /usr/bin/xsltproc checking whether xsltproc works... yes checking POSIX termios... yes checking whether termios.h defines TIOCGWINSZ... no checking whether sys/ioctl.h defines TIOCGWINSZ... yes checking for sys/ioctl.h... yes checking for dvdread... yes checking for po4a... /usr/bin/po4a checking for po4a-translate... /usr/bin/po4a-translate checking whether po4a-translate works... yes checking for gettext... yes checking for msgfmt... /usr/bin/msgfmt checking for libintl.h... yes checking the translations to install... bg ca cs de es eu fr it ja ko lt nl pl pt pt_BR ro ru sr_RS sr_RS@latin sv tr uk zh_CN zh_TW checking the manpage translation languages to install... bg ca de es fr it ja ko nl pl ru uk zh_CN zh_TW configure: creating ./config.status config.status: creating build-config config.status: creating config.h The mkvtoolnix configuration is complete. Optional features that are built: * debugging information * pre-compiled headers * FLAC audio * MKVToolNix GUI (with Qt 5) * DVD chapter support via libdvdread * man page translations (po4a) * translations (gettext) Optional features that are NOT built: * online update check in the GUI * profiling support * compiler optimizations * development technique 'address sanitizer' * development technique 'undefined behavior sanitizer' * make a static build of the applications make[1]: Leaving directory '/<>' debian/rules override_dh_auto_build make[1]: Entering directory '/<>' rake -j 1 SCAN pch candidates (total=519, .c=4, .cpp=428, .moc=87) VERIFY-PO-FMT po/zh_TW.po MSGFMT po/zh_TW.po VERIFY-PO-FMT po/zh_CN.po MSGFMT po/zh_CN.po VERIFY-PO-FMT po/uk.po MSGFMT po/uk.po VERIFY-PO-FMT po/tr.po MSGFMT po/tr.po VERIFY-PO-FMT po/sv.po MSGFMT po/sv.po VERIFY-PO-FMT po/sr_RS@latin.po MSGFMT po/sr_RS@latin.po VERIFY-PO-FMT po/sr_RS.po MSGFMT po/sr_RS.po VERIFY-PO-FMT po/ru.po MSGFMT po/ru.po VERIFY-PO-FMT po/ro.po MSGFMT po/ro.po VERIFY-PO-FMT po/pt_BR.po MSGFMT po/pt_BR.po VERIFY-PO-FMT po/pt.po MSGFMT po/pt.po VERIFY-PO-FMT po/pl.po MSGFMT po/pl.po VERIFY-PO-FMT po/nl.po MSGFMT po/nl.po VERIFY-PO-FMT po/lt.po MSGFMT po/lt.po VERIFY-PO-FMT po/ko.po MSGFMT po/ko.po VERIFY-PO-FMT po/ja.po MSGFMT po/ja.po VERIFY-PO-FMT po/it.po MSGFMT po/it.po VERIFY-PO-FMT po/fr.po MSGFMT po/fr.po VERIFY-PO-FMT po/eu.po MSGFMT po/eu.po VERIFY-PO-FMT po/es.po MSGFMT po/es.po VERIFY-PO-FMT po/de.po MSGFMT po/de.po VERIFY-PO-FMT po/cs.po MSGFMT po/cs.po VERIFY-PO-FMT po/ca.po MSGFMT po/ca.po VERIFY-PO-FMT po/bg.po MSGFMT po/bg.po PO4A doc/man/mkvtoolnix-gui.xml (zh_TW) PO4A doc/man/mkvtoolnix-gui.xml (zh_TW) XSLTPROC doc/man/zh_TW/mkvtoolnix-gui.xml PO4A doc/man/mkvpropedit.xml (zh_TW) XSLTPROC doc/man/zh_TW/mkvpropedit.xml PO4A doc/man/mkvextract.xml (zh_TW) XSLTPROC doc/man/zh_TW/mkvextract.xml PO4A doc/man/mkvinfo.xml (zh_TW) XSLTPROC doc/man/zh_TW/mkvinfo.xml PO4A doc/man/mkvmerge.xml (zh_TW) XSLTPROC doc/man/zh_TW/mkvmerge.xml PO4A doc/man/mkvtoolnix-gui.xml (zh_CN) PO4A doc/man/mkvtoolnix-gui.xml (zh_CN) XSLTPROC doc/man/zh_CN/mkvtoolnix-gui.xml PO4A doc/man/mkvpropedit.xml (zh_CN) XSLTPROC doc/man/zh_CN/mkvpropedit.xml PO4A doc/man/mkvextract.xml (zh_CN) XSLTPROC doc/man/zh_CN/mkvextract.xml PO4A doc/man/mkvinfo.xml (zh_CN) XSLTPROC doc/man/zh_CN/mkvinfo.xml PO4A doc/man/mkvmerge.xml (zh_CN) XSLTPROC doc/man/zh_CN/mkvmerge.xml PO4A doc/man/mkvtoolnix-gui.xml (uk) PO4A doc/man/mkvtoolnix-gui.xml (uk) XSLTPROC doc/man/uk/mkvtoolnix-gui.xml PO4A doc/man/mkvpropedit.xml (uk) XSLTPROC doc/man/uk/mkvpropedit.xml PO4A doc/man/mkvextract.xml (uk) XSLTPROC doc/man/uk/mkvextract.xml PO4A doc/man/mkvinfo.xml (uk) XSLTPROC doc/man/uk/mkvinfo.xml PO4A doc/man/mkvmerge.xml (uk) XSLTPROC doc/man/uk/mkvmerge.xml PO4A doc/man/mkvtoolnix-gui.xml (ru) PO4A doc/man/mkvtoolnix-gui.xml (ru) XSLTPROC doc/man/ru/mkvtoolnix-gui.xml PO4A doc/man/mkvpropedit.xml (ru) XSLTPROC doc/man/ru/mkvpropedit.xml PO4A doc/man/mkvextract.xml (ru) XSLTPROC doc/man/ru/mkvextract.xml PO4A doc/man/mkvinfo.xml (ru) XSLTPROC doc/man/ru/mkvinfo.xml PO4A doc/man/mkvmerge.xml (ru) XSLTPROC doc/man/ru/mkvmerge.xml PO4A doc/man/mkvtoolnix-gui.xml (pl) PO4A doc/man/mkvtoolnix-gui.xml (pl) XSLTPROC doc/man/pl/mkvtoolnix-gui.xml PO4A doc/man/mkvpropedit.xml (pl) XSLTPROC doc/man/pl/mkvpropedit.xml PO4A doc/man/mkvextract.xml (pl) XSLTPROC doc/man/pl/mkvextract.xml PO4A doc/man/mkvinfo.xml (pl) XSLTPROC doc/man/pl/mkvinfo.xml PO4A doc/man/mkvmerge.xml (pl) XSLTPROC doc/man/pl/mkvmerge.xml PO4A doc/man/mkvtoolnix-gui.xml (nl) PO4A doc/man/mkvtoolnix-gui.xml (nl) XSLTPROC doc/man/nl/mkvtoolnix-gui.xml PO4A doc/man/mkvpropedit.xml (nl) XSLTPROC doc/man/nl/mkvpropedit.xml PO4A doc/man/mkvextract.xml (nl) XSLTPROC doc/man/nl/mkvextract.xml PO4A doc/man/mkvinfo.xml (nl) XSLTPROC doc/man/nl/mkvinfo.xml PO4A doc/man/mkvmerge.xml (nl) XSLTPROC doc/man/nl/mkvmerge.xml PO4A doc/man/mkvtoolnix-gui.xml (ko) PO4A doc/man/mkvtoolnix-gui.xml (ko) XSLTPROC doc/man/ko/mkvtoolnix-gui.xml PO4A doc/man/mkvpropedit.xml (ko) XSLTPROC doc/man/ko/mkvpropedit.xml PO4A doc/man/mkvextract.xml (ko) XSLTPROC doc/man/ko/mkvextract.xml PO4A doc/man/mkvinfo.xml (ko) XSLTPROC doc/man/ko/mkvinfo.xml PO4A doc/man/mkvmerge.xml (ko) XSLTPROC doc/man/ko/mkvmerge.xml PO4A doc/man/mkvtoolnix-gui.xml (ja) PO4A doc/man/mkvtoolnix-gui.xml (ja) XSLTPROC doc/man/ja/mkvtoolnix-gui.xml PO4A doc/man/mkvpropedit.xml (ja) XSLTPROC doc/man/ja/mkvpropedit.xml PO4A doc/man/mkvextract.xml (ja) XSLTPROC doc/man/ja/mkvextract.xml PO4A doc/man/mkvinfo.xml (ja) XSLTPROC doc/man/ja/mkvinfo.xml PO4A doc/man/mkvmerge.xml (ja) XSLTPROC doc/man/ja/mkvmerge.xml PO4A doc/man/mkvtoolnix-gui.xml (it) PO4A doc/man/mkvtoolnix-gui.xml (it) XSLTPROC doc/man/it/mkvtoolnix-gui.xml PO4A doc/man/mkvpropedit.xml (it) XSLTPROC doc/man/it/mkvpropedit.xml PO4A doc/man/mkvextract.xml (it) XSLTPROC doc/man/it/mkvextract.xml PO4A doc/man/mkvinfo.xml (it) XSLTPROC doc/man/it/mkvinfo.xml PO4A doc/man/mkvmerge.xml (it) XSLTPROC doc/man/it/mkvmerge.xml PO4A doc/man/mkvtoolnix-gui.xml (fr) PO4A doc/man/mkvtoolnix-gui.xml (fr) XSLTPROC doc/man/fr/mkvtoolnix-gui.xml PO4A doc/man/mkvpropedit.xml (fr) XSLTPROC doc/man/fr/mkvpropedit.xml PO4A doc/man/mkvextract.xml (fr) XSLTPROC doc/man/fr/mkvextract.xml PO4A doc/man/mkvinfo.xml (fr) XSLTPROC doc/man/fr/mkvinfo.xml PO4A doc/man/mkvmerge.xml (fr) XSLTPROC doc/man/fr/mkvmerge.xml PO4A doc/man/mkvtoolnix-gui.xml (es) PO4A doc/man/mkvtoolnix-gui.xml (es) XSLTPROC doc/man/es/mkvtoolnix-gui.xml PO4A doc/man/mkvpropedit.xml (es) XSLTPROC doc/man/es/mkvpropedit.xml PO4A doc/man/mkvextract.xml (es) XSLTPROC doc/man/es/mkvextract.xml PO4A doc/man/mkvinfo.xml (es) XSLTPROC doc/man/es/mkvinfo.xml PO4A doc/man/mkvmerge.xml (es) XSLTPROC doc/man/es/mkvmerge.xml PO4A doc/man/mkvtoolnix-gui.xml (de) PO4A doc/man/mkvtoolnix-gui.xml (de) XSLTPROC doc/man/de/mkvtoolnix-gui.xml PO4A doc/man/mkvpropedit.xml (de) XSLTPROC doc/man/de/mkvpropedit.xml PO4A doc/man/mkvextract.xml (de) XSLTPROC doc/man/de/mkvextract.xml PO4A doc/man/mkvinfo.xml (de) XSLTPROC doc/man/de/mkvinfo.xml PO4A doc/man/mkvmerge.xml (de) XSLTPROC doc/man/de/mkvmerge.xml PO4A doc/man/mkvtoolnix-gui.xml (ca) PO4A doc/man/mkvtoolnix-gui.xml (ca) XSLTPROC doc/man/ca/mkvtoolnix-gui.xml PO4A doc/man/mkvpropedit.xml (ca) XSLTPROC doc/man/ca/mkvpropedit.xml PO4A doc/man/mkvextract.xml (ca) XSLTPROC doc/man/ca/mkvextract.xml PO4A doc/man/mkvinfo.xml (ca) XSLTPROC doc/man/ca/mkvinfo.xml PO4A doc/man/mkvmerge.xml (ca) XSLTPROC doc/man/ca/mkvmerge.xml PO4A doc/man/mkvtoolnix-gui.xml (bg) PO4A doc/man/mkvtoolnix-gui.xml (bg) XSLTPROC doc/man/bg/mkvtoolnix-gui.xml PO4A doc/man/mkvpropedit.xml (bg) XSLTPROC doc/man/bg/mkvpropedit.xml PO4A doc/man/mkvextract.xml (bg) XSLTPROC doc/man/bg/mkvextract.xml PO4A doc/man/mkvinfo.xml (bg) XSLTPROC doc/man/bg/mkvinfo.xml PO4A doc/man/mkvmerge.xml (bg) XSLTPROC doc/man/bg/mkvmerge.xml XSLTPROC doc/man/mkvtoolnix-gui.xml XSLTPROC doc/man/mkvpropedit.xml XSLTPROC doc/man/mkvextract.xml XSLTPROC doc/man/mkvinfo.xml XSLTPROC doc/man/mkvmerge.xml CXX src/common/common_pch.h CXX src/common/xml/xml.cpp CXX src/common/xml/ebml_tags_converter.cpp CXX src/common/xml/ebml_segmentinfo_converter.cpp CXX src/common/xml/ebml_converter.cpp CXX src/common/xml/ebml_chapters_converter.cpp CXX src/common/tags/vorbis.cpp CXX src/common/tags/tags.cpp CXX src/common/strings/utf8.cpp CXX src/common/strings/table_formatter.cpp CXX src/common/strings/parsing.cpp CXX src/common/strings/formatting.cpp CXX src/common/strings/editing.cpp CXX src/common/path/unix.cpp CXX src/common/path/common.cpp CXX src/common/mm_file_io/unix.cpp CXX src/common/mm_file_io/common.cpp CXX src/common/image/png.cpp CXX src/common/image/jpeg.cpp CXX src/common/hevc/util.cpp CXX src/common/hevc/hevcc.cpp CXX src/common/hevc/es_parser.cpp CXX src/common/fs_sys_helpers/unix.cpp CXX src/common/fs_sys_helpers/common.cpp CXX src/common/compression/zlib.cpp CXX src/common/compression/header_removal.cpp CXX src/common/checksums/md5.cpp CXX src/common/checksums/crc.cpp CXX src/common/checksums/base.cpp CXX src/common/checksums/adler32.cpp CXX src/common/chapters/writer.cpp CXX src/common/chapters/dvd.cpp CXX src/common/chapters/cue_parser.cpp CXX src/common/chapters/chapters.cpp CXX src/common/chapters/bluray.cpp CXX src/common/bluray/util.cpp CXX src/common/bluray/track_chapter_names.cpp CXX src/common/bluray/mpls.cpp CXX src/common/bluray/index.cpp CXX src/common/bluray/disc_library.cpp CXX src/common/bluray/clpi.cpp CXX src/common/avc_hevc/types.cpp CXX src/common/avc_hevc/es_parser.cpp CXX src/common/avc/util.cpp CXX src/common/avc/es_parser.cpp CXX src/common/avc/avcc.cpp CXX src/common/webvtt.cpp CXX src/common/webm.cpp CXX src/common/wavpack.cpp CXX src/common/w64.cpp CXX src/common/vp9.cpp CXX src/common/vobsub.cpp CXX src/common/vint.cpp CXX src/common/version.cpp CXX src/common/vc1.cpp CXX src/common/unique_numbers.cpp CXX src/common/truehd.cpp CXX src/common/translation.cpp CXX src/common/track_statistics.cpp CXX src/common/theora.cpp CXX src/common/terminal.cpp CXX src/common/stereo_mode.cpp CXX src/common/spu.cpp CXX src/common/split_point.cpp CXX src/common/split_arg_parsing.cpp CXX src/common/samples_to_timestamp_converter.cpp CXX src/common/random.cpp CXX src/common/property_element.cpp CXX src/common/output.cpp CXX src/common/opus.cpp CXX src/common/mpeg4_p2.cpp CXX src/common/mpeg1_2.cpp CXX src/common/mpeg.cpp CXX src/common/mp3.cpp CXX src/common/mm_write_buffer_io.cpp CXX src/common/mm_text_io.cpp CXX src/common/mm_stdio.cpp CXX src/common/mm_read_buffer_io.cpp CXX src/common/mm_proxy_io.cpp CXX src/common/mm_null_io.cpp CXX src/common/mm_multi_file_io.cpp CXX src/common/mm_mpls_multi_file_io.cpp CXX src/common/mm_mem_io.cpp CXX src/common/mm_io_x.cpp CXX src/common/mm_io.cpp CXX src/common/mime.cpp CXX src/common/memory.cpp CXX src/common/math.cpp CXX src/common/markdown.cpp CXX src/common/logger.cpp CXX src/common/locale_string.cpp CXX src/common/locale.cpp CXX src/common/kax_info.cpp CXX src/common/kax_file.cpp CXX src/common/kax_element_names.cpp CXX src/common/kax_analyzer.cpp CXX src/common/kate.cpp CXX src/common/json.cpp CXX src/common/ivf.cpp CXX src/common/iso639_language_list.cpp CXX src/common/iso639.cpp CXX src/common/iso3166_country_list.cpp CXX src/common/iso3166.cpp CXX src/common/iso15924_script_list.cpp CXX src/common/iso15924.cpp CXX src/common/image.cpp CXX src/common/id3.cpp CXX src/common/iana_language_subtag_registry_list.cpp CXX src/common/iana_language_subtag_registry.cpp CXX src/common/hdmv_textst.cpp CXX src/common/hdmv_pgs.cpp CXX src/common/hacks.cpp CXX src/common/frame_timing.cpp CXX src/common/fourcc.cpp CXX src/common/flac.cpp CXX src/common/file_types.cpp CXX src/common/endian.cpp CXX src/common/ebml.cpp CXX src/common/dts_parser.cpp CXX src/common/dts.cpp CXX src/common/dovi_meta.cpp CXX src/common/doc_type_version_handler_p.cpp CXX src/common/doc_type_version_handler.cpp CXX src/common/dirac.cpp CXX src/common/debugging.cpp CXX src/common/date_time.cpp CXX src/common/content_decoder.cpp CXX src/common/compression.cpp CXX src/common/common.cpp CXX src/common/command_line.cpp CXX src/common/codec.cpp CXX src/common/cli_parser.cpp CXX src/common/character_sets.cpp CXX src/common/bswap.cpp CXX src/common/bitvalue.cpp CXX src/common/bcp47_re.cpp CXX src/common/bcp47.cpp CXX src/common/base64.cpp CXX src/common/av1.cpp CXX src/common/ape.cpp CXX src/common/amf.cpp CXX src/common/ac3.cpp CXX src/common/aac.cpp AR src/common/libmtxcommon.a RANLIB src/common/libmtxcommon.a RCC src/mkvtoolnix-gui/qt_resources.qrc CXX src/mkvtoolnix-gui/qt_resources.cpp UIC src/mkvtoolnix-gui/forms/watch_jobs/tool.ui UIC src/mkvtoolnix-gui/forms/main_window/main_window.ui CXX src/mkvtoolnix-gui/watch_jobs/tool.cpp UIC src/mkvtoolnix-gui/forms/watch_jobs/tab.ui CXX src/mkvtoolnix-gui/watch_jobs/tab.cpp CXX src/mkvtoolnix-gui/util/widget.cpp CXX src/mkvtoolnix-gui/util/waiting_spinner_widget.cpp CXX src/mkvtoolnix-gui/util/unix_font.cpp CXX src/mkvtoolnix-gui/util/tree.cpp UIC src/mkvtoolnix-gui/forms/util/text_display_dialog.ui CXX src/mkvtoolnix-gui/util/text_display_dialog.cpp CXX src/mkvtoolnix-gui/util/system_information.cpp CXX src/mkvtoolnix-gui/util/style_helper.cpp UIC src/mkvtoolnix-gui/forms/util/string_list_configuration_widget.ui CXX src/mkvtoolnix-gui/util/string_list_configuration_widget.cpp CXX src/mkvtoolnix-gui/util/string.cpp CXX src/mkvtoolnix-gui/util/sleep_inhibitor/linux_logind.cpp CXX src/mkvtoolnix-gui/util/sleep_inhibitor.cpp UIC src/mkvtoolnix-gui/forms/util/side_by_side_multi_select.ui CXX src/mkvtoolnix-gui/util/side_by_side_multi_select.cpp CXX src/mkvtoolnix-gui/util/settings.cpp CXX src/mkvtoolnix-gui/util/serial_worker_queue.cpp CXX src/mkvtoolnix-gui/util/recently_used_strings.cpp CXX src/mkvtoolnix-gui/util/process.cpp CXX src/mkvtoolnix-gui/util/option_file.cpp CXX src/mkvtoolnix-gui/util/network_access_manager.cpp CXX src/mkvtoolnix-gui/util/model.cpp CXX src/mkvtoolnix-gui/util/message_box.cpp CXX src/mkvtoolnix-gui/util/media_player.cpp UIC src/mkvtoolnix-gui/forms/util/language_display_widget.ui CXX src/mkvtoolnix-gui/util/language_display_widget.cpp UIC src/mkvtoolnix-gui/forms/util/language_dialog.ui CXX src/mkvtoolnix-gui/util/language_dialog.cpp CXX src/mkvtoolnix-gui/util/language_combo_box.cpp CXX src/mkvtoolnix-gui/util/kax_info.cpp CXX src/mkvtoolnix-gui/util/kax_analyzer.cpp CXX src/mkvtoolnix-gui/util/json_config_file.cpp CXX src/mkvtoolnix-gui/util/json.cpp CXX src/mkvtoolnix-gui/util/installation_checker.cpp CXX src/mkvtoolnix-gui/util/ini_config_file.cpp CXX src/mkvtoolnix-gui/util/header_view_manager.cpp CXX src/mkvtoolnix-gui/util/font.cpp CXX src/mkvtoolnix-gui/util/files_drag_drop_widget.cpp CXX src/mkvtoolnix-gui/util/files_drag_drop_handler.cpp CXX src/mkvtoolnix-gui/util/file_type_filter.cpp CXX src/mkvtoolnix-gui/util/file_identifier.cpp CXX src/mkvtoolnix-gui/util/file_dialog.cpp CXX src/mkvtoolnix-gui/util/file.cpp CXX src/mkvtoolnix-gui/util/fancy_tab_widget.cpp CXX src/mkvtoolnix-gui/util/elide_label.cpp CXX src/mkvtoolnix-gui/util/date_time.cpp CXX src/mkvtoolnix-gui/util/country_combo_box.cpp CXX src/mkvtoolnix-gui/util/container.cpp CXX src/mkvtoolnix-gui/util/config_file.cpp CXX src/mkvtoolnix-gui/util/command_line_options.cpp CXX src/mkvtoolnix-gui/util/combo_box_base.cpp CXX src/mkvtoolnix-gui/util/character_set_combo_box.cpp CXX src/mkvtoolnix-gui/util/cache.cpp CXX src/mkvtoolnix-gui/util/basic_tree_view.cpp CXX src/mkvtoolnix-gui/util/basic_tab_widget.cpp CXX src/mkvtoolnix-gui/util/basic_line_edit.cpp CXX src/mkvtoolnix-gui/mkvtoolnix_gui.cpp CXX src/mkvtoolnix-gui/mime_types.cpp CXX src/mkvtoolnix-gui/merge/track_model.cpp CXX src/mkvtoolnix-gui/merge/track.cpp UIC src/mkvtoolnix-gui/forms/merge/tool.ui CXX src/mkvtoolnix-gui/merge/tool.cpp UIC src/mkvtoolnix-gui/forms/merge/tab.ui CXX src/mkvtoolnix-gui/merge/tab.cpp CXX src/mkvtoolnix-gui/merge/source_file_model.cpp CXX src/mkvtoolnix-gui/merge/source_file.cpp UIC src/mkvtoolnix-gui/forms/merge/select_playlist_dialog.ui CXX src/mkvtoolnix-gui/merge/select_playlist_dialog.cpp UIC src/mkvtoolnix-gui/forms/merge/select_disc_library_information_dialog.ui CXX src/mkvtoolnix-gui/merge/select_disc_library_information_dialog.cpp CXX src/mkvtoolnix-gui/merge/output.cpp CXX src/mkvtoolnix-gui/merge/mux_config.cpp CXX src/mkvtoolnix-gui/merge/input.cpp CXX src/mkvtoolnix-gui/merge/file_identification_thread.cpp UIC src/mkvtoolnix-gui/forms/merge/executable_location_dialog.ui CXX src/mkvtoolnix-gui/merge/executable_location_dialog.cpp CXX src/mkvtoolnix-gui/merge/disc_library_information_widget.cpp UIC src/mkvtoolnix-gui/forms/merge/command_line_dialog.ui CXX src/mkvtoolnix-gui/merge/command_line_dialog.cpp CXX src/mkvtoolnix-gui/merge/attachments.cpp CXX src/mkvtoolnix-gui/merge/attachment_model.cpp CXX src/mkvtoolnix-gui/merge/attachment.cpp CXX src/mkvtoolnix-gui/merge/attached_file_model.cpp UIC src/mkvtoolnix-gui/forms/merge/ask_scan_for_playlists_dialog.ui CXX src/mkvtoolnix-gui/merge/ask_scan_for_playlists_dialog.cpp UIC src/mkvtoolnix-gui/forms/merge/additional_command_line_options_dialog.ui CXX src/mkvtoolnix-gui/merge/additional_command_line_options_dialog.cpp UIC src/mkvtoolnix-gui/forms/merge/adding_appending_files_dialog.ui CXX src/mkvtoolnix-gui/merge/adding_appending_files_dialog.cpp CXX src/mkvtoolnix-gui/main_window/update_checker.cpp CXX src/mkvtoolnix-gui/main_window/taskbar_progress.cpp UIC src/mkvtoolnix-gui/forms/main_window/status_bar_progress_widget.ui CXX src/mkvtoolnix-gui/main_window/status_bar_progress_widget.cpp UIC src/mkvtoolnix-gui/forms/main_window/select_character_set_dialog.ui CXX src/mkvtoolnix-gui/main_window/select_character_set_dialog.cpp UIC src/mkvtoolnix-gui/forms/main_window/prefs_run_program_widget.ui CXX src/mkvtoolnix-gui/main_window/prefs_run_program_widget.cpp UIC src/mkvtoolnix-gui/forms/main_window/preferences_dialog.ui CXX src/mkvtoolnix-gui/main_window/preferences_dialog.cpp CXX src/mkvtoolnix-gui/main_window/main_window.cpp UIC src/mkvtoolnix-gui/forms/main_window/available_update_info_dialog.ui CXX src/mkvtoolnix-gui/main_window/available_update_info_dialog.cpp UIC src/mkvtoolnix-gui/forms/jobs/tool.ui CXX src/mkvtoolnix-gui/jobs/tool.cpp CXX src/mkvtoolnix-gui/jobs/program_runner/linux_program_runner.cpp CXX src/mkvtoolnix-gui/jobs/program_runner.cpp CXX src/mkvtoolnix-gui/jobs/mux_job.cpp CXX src/mkvtoolnix-gui/jobs/model.cpp CXX src/mkvtoolnix-gui/jobs/job.cpp CXX src/mkvtoolnix-gui/jobs/info_job.cpp UIC src/mkvtoolnix-gui/forms/info/tool.ui CXX src/mkvtoolnix-gui/info/tool.cpp UIC src/mkvtoolnix-gui/forms/info/tab.ui CXX src/mkvtoolnix-gui/info/tab.cpp CXX src/mkvtoolnix-gui/info/model.cpp UIC src/mkvtoolnix-gui/forms/info/job_settings_widget.ui CXX src/mkvtoolnix-gui/info/job_settings_widget.cpp UIC src/mkvtoolnix-gui/forms/info/job_settings_dialog.ui CXX src/mkvtoolnix-gui/info/job_settings_dialog.cpp CXX src/mkvtoolnix-gui/info/initial_scan.cpp CXX src/mkvtoolnix-gui/info/info_config.cpp UIC src/mkvtoolnix-gui/forms/info/element_viewer_dialog.ui CXX src/mkvtoolnix-gui/info/element_viewer_dialog.cpp CXX src/mkvtoolnix-gui/info/element_reader.cpp CXX src/mkvtoolnix-gui/info/element_highlighter.cpp UIC src/mkvtoolnix-gui/forms/header_editor/value_page.ui CXX src/mkvtoolnix-gui/header_editor/value_page.cpp CXX src/mkvtoolnix-gui/header_editor/unsigned_integer_value_page.cpp UIC src/mkvtoolnix-gui/forms/header_editor/track_type_page.ui CXX src/mkvtoolnix-gui/header_editor/track_type_page.cpp CXX src/mkvtoolnix-gui/header_editor/track_name_page.cpp CXX src/mkvtoolnix-gui/header_editor/top_level_page.cpp UIC src/mkvtoolnix-gui/forms/header_editor/tool.ui CXX src/mkvtoolnix-gui/header_editor/tool.cpp CXX src/mkvtoolnix-gui/header_editor/time_value_page.cpp UIC src/mkvtoolnix-gui/forms/header_editor/tab.ui CXX src/mkvtoolnix-gui/header_editor/tab.cpp CXX src/mkvtoolnix-gui/header_editor/string_value_page.cpp CXX src/mkvtoolnix-gui/header_editor/page_model.cpp CXX src/mkvtoolnix-gui/header_editor/page_base.cpp CXX src/mkvtoolnix-gui/header_editor/language_value_page.cpp CXX src/mkvtoolnix-gui/header_editor/language_ietf_value_page.cpp CXX src/mkvtoolnix-gui/header_editor/float_value_page.cpp CXX src/mkvtoolnix-gui/header_editor/empty_page.cpp CXX src/mkvtoolnix-gui/header_editor/bool_value_page.cpp CXX src/mkvtoolnix-gui/header_editor/bit_value_page.cpp UIC src/mkvtoolnix-gui/forms/header_editor/attachments_page.ui CXX src/mkvtoolnix-gui/header_editor/attachments_page.cpp UIC src/mkvtoolnix-gui/forms/header_editor/attached_file_page.ui CXX src/mkvtoolnix-gui/header_editor/attached_file_page.cpp CXX src/mkvtoolnix-gui/header_editor/ascii_string_value_page.cpp UIC src/mkvtoolnix-gui/forms/header_editor/action_for_dropped_files_dialog.ui CXX src/mkvtoolnix-gui/header_editor/action_for_dropped_files_dialog.cpp CXX src/mkvtoolnix-gui/gui_cli_parser.cpp UIC src/mkvtoolnix-gui/forms/chapter_editor/tool.ui CXX src/mkvtoolnix-gui/chapter_editor/tool.cpp UIC src/mkvtoolnix-gui/forms/chapter_editor/tab.ui CXX src/mkvtoolnix-gui/chapter_editor/tab.cpp UIC src/mkvtoolnix-gui/forms/chapter_editor/renumber_sub_chapters_parameters_dialog.ui CXX src/mkvtoolnix-gui/chapter_editor/renumber_sub_chapters_parameters_dialog.cpp CXX src/mkvtoolnix-gui/chapter_editor/name_model.cpp UIC src/mkvtoolnix-gui/forms/chapter_editor/mass_modification_dialog.ui CXX src/mkvtoolnix-gui/chapter_editor/mass_modification_dialog.cpp UIC src/mkvtoolnix-gui/forms/chapter_editor/generate_sub_chapters_parameters_dialog.ui CXX src/mkvtoolnix-gui/chapter_editor/generate_sub_chapters_parameters_dialog.cpp CXX src/mkvtoolnix-gui/chapter_editor/chapter_model.cpp CXX src/mkvtoolnix-gui/app.cpp MOC src/mkvtoolnix-gui/watch_jobs/tool.h CXX src/mkvtoolnix-gui/watch_jobs/tool.moc MOC src/mkvtoolnix-gui/watch_jobs/tab.h CXX src/mkvtoolnix-gui/watch_jobs/tab.moc MOC src/mkvtoolnix-gui/util/waiting_spinner_widget.h CXX src/mkvtoolnix-gui/util/waiting_spinner_widget.moc MOC src/mkvtoolnix-gui/util/text_display_dialog.h CXX src/mkvtoolnix-gui/util/text_display_dialog.moc MOC src/mkvtoolnix-gui/util/string_list_configuration_widget.h CXX src/mkvtoolnix-gui/util/string_list_configuration_widget.moc MOC src/mkvtoolnix-gui/util/side_by_side_multi_select.h CXX src/mkvtoolnix-gui/util/side_by_side_multi_select.moc MOC src/mkvtoolnix-gui/util/settings.h CXX src/mkvtoolnix-gui/util/settings.moc MOC src/mkvtoolnix-gui/util/serial_worker_queue.h CXX src/mkvtoolnix-gui/util/serial_worker_queue.moc MOC src/mkvtoolnix-gui/util/process.h CXX src/mkvtoolnix-gui/util/process.moc MOC src/mkvtoolnix-gui/util/network_access_manager.h CXX src/mkvtoolnix-gui/util/network_access_manager.moc MOC src/mkvtoolnix-gui/util/media_player.h CXX src/mkvtoolnix-gui/util/media_player.moc MOC src/mkvtoolnix-gui/util/language_display_widget.h CXX src/mkvtoolnix-gui/util/language_display_widget.moc MOC src/mkvtoolnix-gui/util/language_dialog.h CXX src/mkvtoolnix-gui/util/language_dialog.moc MOC src/mkvtoolnix-gui/util/language_combo_box.h CXX src/mkvtoolnix-gui/util/language_combo_box.moc MOC src/mkvtoolnix-gui/util/kax_info.h CXX src/mkvtoolnix-gui/util/kax_info.moc MOC src/mkvtoolnix-gui/util/installation_checker.h CXX src/mkvtoolnix-gui/util/installation_checker.moc MOC src/mkvtoolnix-gui/util/header_view_manager.h CXX src/mkvtoolnix-gui/util/header_view_manager.moc MOC src/mkvtoolnix-gui/util/files_drag_drop_widget.h CXX src/mkvtoolnix-gui/util/files_drag_drop_widget.moc MOC src/mkvtoolnix-gui/util/files_drag_drop_handler.h CXX src/mkvtoolnix-gui/util/files_drag_drop_handler.moc MOC src/mkvtoolnix-gui/util/file_identifier.h CXX src/mkvtoolnix-gui/util/file_identifier.moc MOC src/mkvtoolnix-gui/util/fancy_tab_widget.h CXX src/mkvtoolnix-gui/util/fancy_tab_widget.moc MOC src/mkvtoolnix-gui/util/elide_label.h CXX src/mkvtoolnix-gui/util/elide_label.moc MOC src/mkvtoolnix-gui/util/country_combo_box.h CXX src/mkvtoolnix-gui/util/country_combo_box.moc MOC src/mkvtoolnix-gui/util/config_file.h CXX src/mkvtoolnix-gui/util/config_file.moc MOC src/mkvtoolnix-gui/util/combo_box_base.h CXX src/mkvtoolnix-gui/util/combo_box_base.moc MOC src/mkvtoolnix-gui/util/character_set_combo_box.h CXX src/mkvtoolnix-gui/util/character_set_combo_box.moc MOC src/mkvtoolnix-gui/util/basic_tree_view.h CXX src/mkvtoolnix-gui/util/basic_tree_view.moc MOC src/mkvtoolnix-gui/util/basic_tab_widget.h CXX src/mkvtoolnix-gui/util/basic_tab_widget.moc MOC src/mkvtoolnix-gui/util/basic_line_edit.h CXX src/mkvtoolnix-gui/util/basic_line_edit.moc MOC src/mkvtoolnix-gui/merge/track_model.h CXX src/mkvtoolnix-gui/merge/track_model.moc MOC src/mkvtoolnix-gui/merge/tool.h CXX src/mkvtoolnix-gui/merge/tool.moc MOC src/mkvtoolnix-gui/merge/tab.h CXX src/mkvtoolnix-gui/merge/tab.moc MOC src/mkvtoolnix-gui/merge/source_file_model.h CXX src/mkvtoolnix-gui/merge/source_file_model.moc MOC src/mkvtoolnix-gui/merge/select_playlist_dialog.h CXX src/mkvtoolnix-gui/merge/select_playlist_dialog.moc MOC src/mkvtoolnix-gui/merge/select_disc_library_information_dialog.h CXX src/mkvtoolnix-gui/merge/select_disc_library_information_dialog.moc MOC src/mkvtoolnix-gui/merge/file_identification_thread.h CXX src/mkvtoolnix-gui/merge/file_identification_thread.moc MOC src/mkvtoolnix-gui/merge/executable_location_dialog.h CXX src/mkvtoolnix-gui/merge/executable_location_dialog.moc MOC src/mkvtoolnix-gui/merge/disc_library_information_widget.h CXX src/mkvtoolnix-gui/merge/disc_library_information_widget.moc MOC src/mkvtoolnix-gui/merge/command_line_dialog.h CXX src/mkvtoolnix-gui/merge/command_line_dialog.moc MOC src/mkvtoolnix-gui/merge/attachment_model.h CXX src/mkvtoolnix-gui/merge/attachment_model.moc MOC src/mkvtoolnix-gui/merge/attached_file_model.h CXX src/mkvtoolnix-gui/merge/attached_file_model.moc MOC src/mkvtoolnix-gui/merge/ask_scan_for_playlists_dialog.h CXX src/mkvtoolnix-gui/merge/ask_scan_for_playlists_dialog.moc MOC src/mkvtoolnix-gui/merge/additional_command_line_options_dialog.h CXX src/mkvtoolnix-gui/merge/additional_command_line_options_dialog.moc MOC src/mkvtoolnix-gui/merge/adding_appending_files_dialog.h CXX src/mkvtoolnix-gui/merge/adding_appending_files_dialog.moc MOC src/mkvtoolnix-gui/main_window/update_checker.h CXX src/mkvtoolnix-gui/main_window/update_checker.moc MOC src/mkvtoolnix-gui/main_window/tool_base.h CXX src/mkvtoolnix-gui/main_window/tool_base.moc MOC src/mkvtoolnix-gui/main_window/taskbar_progress.h CXX src/mkvtoolnix-gui/main_window/taskbar_progress.moc MOC src/mkvtoolnix-gui/main_window/status_bar_progress_widget.h CXX src/mkvtoolnix-gui/main_window/status_bar_progress_widget.moc MOC src/mkvtoolnix-gui/main_window/select_character_set_dialog.h CXX src/mkvtoolnix-gui/main_window/select_character_set_dialog.moc MOC src/mkvtoolnix-gui/main_window/prefs_run_program_widget.h CXX src/mkvtoolnix-gui/main_window/prefs_run_program_widget.moc MOC src/mkvtoolnix-gui/main_window/preferences_dialog.h CXX src/mkvtoolnix-gui/main_window/preferences_dialog.moc MOC src/mkvtoolnix-gui/main_window/main_window.h CXX src/mkvtoolnix-gui/main_window/main_window.moc MOC src/mkvtoolnix-gui/main_window/available_update_info_dialog.h CXX src/mkvtoolnix-gui/main_window/available_update_info_dialog.moc MOC src/mkvtoolnix-gui/jobs/tool.h CXX src/mkvtoolnix-gui/jobs/tool.moc MOC src/mkvtoolnix-gui/jobs/program_runner/linux_program_runner.h CXX src/mkvtoolnix-gui/jobs/program_runner/linux_program_runner.moc MOC src/mkvtoolnix-gui/jobs/program_runner.h CXX src/mkvtoolnix-gui/jobs/program_runner.moc MOC src/mkvtoolnix-gui/jobs/mux_job.h CXX src/mkvtoolnix-gui/jobs/mux_job.moc MOC src/mkvtoolnix-gui/jobs/model.h CXX src/mkvtoolnix-gui/jobs/model.moc MOC src/mkvtoolnix-gui/jobs/job.h CXX src/mkvtoolnix-gui/jobs/job.moc MOC src/mkvtoolnix-gui/jobs/info_job.h CXX src/mkvtoolnix-gui/jobs/info_job.moc MOC src/mkvtoolnix-gui/info/tool.h CXX src/mkvtoolnix-gui/info/tool.moc MOC src/mkvtoolnix-gui/info/tab.h CXX src/mkvtoolnix-gui/info/tab.moc MOC src/mkvtoolnix-gui/info/model.h CXX src/mkvtoolnix-gui/info/model.moc MOC src/mkvtoolnix-gui/info/job_settings_widget.h CXX src/mkvtoolnix-gui/info/job_settings_widget.moc MOC src/mkvtoolnix-gui/info/job_settings_dialog.h CXX src/mkvtoolnix-gui/info/job_settings_dialog.moc MOC src/mkvtoolnix-gui/info/element_viewer_dialog.h CXX src/mkvtoolnix-gui/info/element_viewer_dialog.moc MOC src/mkvtoolnix-gui/info/element_reader.h CXX src/mkvtoolnix-gui/info/element_reader.moc MOC src/mkvtoolnix-gui/header_editor/value_page.h CXX src/mkvtoolnix-gui/header_editor/value_page.moc MOC src/mkvtoolnix-gui/header_editor/track_type_page.h CXX src/mkvtoolnix-gui/header_editor/track_type_page.moc MOC src/mkvtoolnix-gui/header_editor/track_name_page.h CXX src/mkvtoolnix-gui/header_editor/track_name_page.moc MOC src/mkvtoolnix-gui/header_editor/top_level_page.h CXX src/mkvtoolnix-gui/header_editor/top_level_page.moc MOC src/mkvtoolnix-gui/header_editor/tool.h CXX src/mkvtoolnix-gui/header_editor/tool.moc MOC src/mkvtoolnix-gui/header_editor/tab.h CXX src/mkvtoolnix-gui/header_editor/tab.moc MOC src/mkvtoolnix-gui/header_editor/page_model.h CXX src/mkvtoolnix-gui/header_editor/page_model.moc MOC src/mkvtoolnix-gui/header_editor/page_base.h CXX src/mkvtoolnix-gui/header_editor/page_base.moc MOC src/mkvtoolnix-gui/header_editor/empty_page.h CXX src/mkvtoolnix-gui/header_editor/empty_page.moc MOC src/mkvtoolnix-gui/header_editor/attachments_page.h CXX src/mkvtoolnix-gui/header_editor/attachments_page.moc MOC src/mkvtoolnix-gui/header_editor/attached_file_page.h CXX src/mkvtoolnix-gui/header_editor/attached_file_page.moc MOC src/mkvtoolnix-gui/header_editor/action_for_dropped_files_dialog.h CXX src/mkvtoolnix-gui/header_editor/action_for_dropped_files_dialog.moc MOC src/mkvtoolnix-gui/chapter_editor/tool.h CXX src/mkvtoolnix-gui/chapter_editor/tool.moc MOC src/mkvtoolnix-gui/chapter_editor/tab.h CXX src/mkvtoolnix-gui/chapter_editor/tab.moc MOC src/mkvtoolnix-gui/chapter_editor/renumber_sub_chapters_parameters_dialog.h CXX src/mkvtoolnix-gui/chapter_editor/renumber_sub_chapters_parameters_dialog.moc MOC src/mkvtoolnix-gui/chapter_editor/name_model.h CXX src/mkvtoolnix-gui/chapter_editor/name_model.moc MOC src/mkvtoolnix-gui/chapter_editor/mass_modification_dialog.h CXX src/mkvtoolnix-gui/chapter_editor/mass_modification_dialog.moc MOC src/mkvtoolnix-gui/chapter_editor/generate_sub_chapters_parameters_dialog.h CXX src/mkvtoolnix-gui/chapter_editor/generate_sub_chapters_parameters_dialog.moc MOC src/mkvtoolnix-gui/chapter_editor/chapter_model.h CXX src/mkvtoolnix-gui/chapter_editor/chapter_model.moc MOC src/mkvtoolnix-gui/app.h CXX src/mkvtoolnix-gui/app.moc LINK src/mkvtoolnix-gui/mkvtoolnix-gui CXX src/propedit/track_target.cpp CXX src/propedit/target.cpp CXX src/propedit/tag_target.cpp CXX src/propedit/segment_info_target.cpp CXX src/propedit/propedit_cli_parser.cpp CXX src/propedit/propedit.cpp CXX src/propedit/options.cpp CXX src/propedit/chapter_target.cpp CXX src/propedit/change.cpp CXX src/propedit/attachment_target.cpp AR src/propedit/libmtxpropedit.a RANLIB src/propedit/libmtxpropedit.a LINK src/mkvpropedit CC lib/librmff/rmff.c CC lib/librmff/mb_file_io.c AR lib/librmff/librmff.a RANLIB lib/librmff/librmff.a CXX lib/avilib-0.6.10/xio.cpp CC lib/avilib-0.6.10/avimisc.c CC lib/avilib-0.6.10/avilib.c AR lib/avilib-0.6.10/libavi.a RANLIB lib/avilib-0.6.10/libavi.a CXX src/extract/xtr_webvtt.cpp CXX src/extract/xtr_wav.cpp CXX src/extract/xtr_vobsub.cpp CXX src/extract/xtr_tta.cpp CXX src/extract/xtr_textsubs.cpp CXX src/extract/xtr_rmff.cpp CXX src/extract/xtr_ogg.cpp CXX src/extract/xtr_mpeg1_2.cpp CXX src/extract/xtr_ivf.cpp CXX src/extract/xtr_hevc.cpp CXX src/extract/xtr_hdmv_textst.cpp CXX src/extract/xtr_hdmv_pgs.cpp CXX src/extract/xtr_base.cpp CXX src/extract/xtr_avi.cpp CXX src/extract/xtr_avc.cpp CXX src/extract/xtr_alac.cpp CXX src/extract/xtr_aac.cpp CXX src/extract/tracks.cpp CXX src/extract/track_spec.cpp CXX src/extract/tags.cpp CXX src/extract/options.cpp CXX src/extract/extract_cli_parser.cpp CXX src/extract/cuesheets.cpp CXX src/extract/cues.cpp CXX src/extract/chapters.cpp CXX src/extract/attachments.cpp AR src/extract/libmtxextract.a RANLIB src/extract/libmtxextract.a CXX src/extract/mkvextract.cpp LINK src/mkvextract CXX src/info/mkvinfo.cpp CXX src/info/info_cli_parser.cpp LINK src/mkvinfo CXX src/mpegparser/MPEGVideoBuffer.cpp CXX src/mpegparser/M2VParser.cpp CXX src/mpegparser/CircBuffer.cpp AR src/mpegparser/libmpegparser.a RANLIB src/mpegparser/libmpegparser.a CXX src/output/p_webvtt.cpp CXX src/output/p_wavpack.cpp CXX src/output/p_vpx.cpp CXX src/output/p_vorbis.cpp CXX src/output/p_vobsub.cpp CXX src/output/p_vobbtn.cpp CXX src/output/p_video_for_windows.cpp CXX src/output/p_vc1.cpp CXX src/output/p_tta.cpp CXX src/output/p_truehd.cpp CXX src/output/p_theora.cpp CXX src/output/p_textsubs.cpp CXX src/output/p_ssa.cpp CXX src/output/p_realaudio.cpp CXX src/output/p_quicktime.cpp CXX src/output/p_prores.cpp CXX src/output/p_pcm.cpp CXX src/output/p_passthrough.cpp CXX src/output/p_opus.cpp CXX src/output/p_mpeg4_p2.cpp CXX src/output/p_mpeg1_2.cpp CXX src/output/p_mp3.cpp CXX src/output/p_kate.cpp CXX src/output/p_hevc_es.cpp CXX src/output/p_hevc.cpp CXX src/output/p_hdmv_textst.cpp CXX src/output/p_hdmv_pgs.cpp CXX src/output/p_generic_video.cpp CXX src/output/p_flac.cpp CXX src/output/p_dvbsub.cpp CXX src/output/p_dts.cpp CXX src/output/p_dirac.cpp CXX src/output/p_avc_hevc_es.cpp CXX src/output/p_avc_es.cpp CXX src/output/p_avc.cpp CXX src/output/p_av1.cpp CXX src/output/p_alac.cpp CXX src/output/p_ac3.cpp CXX src/output/p_aac.cpp AR src/output/libmtxoutput.a RANLIB src/output/libmtxoutput.a CXX src/input/wav_pcm_demuxer.cpp CXX src/input/wav_dts_demuxer.cpp CXX src/input/wav_ac3wav_demuxer.cpp CXX src/input/wav_ac3acm_demuxer.cpp CXX src/input/unsupported_types_signature_prober.cpp CXX src/input/truehd_ac3_splitting_packet_converter.cpp CXX src/input/teletext_to_srt_packet_converter.cpp CXX src/input/subtitles.cpp CXX src/input/r_webvtt.cpp CXX src/input/r_wavpack.cpp CXX src/input/r_wav.cpp CXX src/input/r_vobsub.cpp CXX src/input/r_vobbtn.cpp CXX src/input/r_vc1.cpp CXX src/input/r_usf.cpp CXX src/input/r_tta.cpp CXX src/input/r_truehd.cpp CXX src/input/r_ssa.cpp CXX src/input/r_srt.cpp CXX src/input/r_real.cpp CXX src/input/r_qtmp4.cpp CXX src/input/r_ogm_flac.cpp CXX src/input/r_ogm.cpp CXX src/input/r_obu.cpp CXX src/input/r_mpeg_ts.cpp CXX src/input/r_mpeg_ps.cpp CXX src/input/r_mpeg_es.cpp CXX src/input/r_mp3.cpp CXX src/input/r_microdvd.cpp CXX src/input/r_matroska.cpp CXX src/input/r_ivf.cpp CXX src/input/r_hevc.cpp CXX src/input/r_hdmv_textst.cpp CXX src/input/r_hdmv_pgs.cpp CXX src/input/r_flv.cpp CXX src/input/r_flac.cpp CXX src/input/r_dv.cpp CXX src/input/r_dts.cpp CXX src/input/r_dirac.cpp CXX src/input/r_coreaudio.cpp CXX src/input/r_avi.cpp CXX src/input/r_avc.cpp CXX src/input/r_ac3.cpp CXX src/input/r_aac.cpp CXX src/input/dvbsub_pes_framing_removal_packet_converter.cpp CXX src/input/bluray_pcm_channel_layout_packet_converter.cpp CXX src/input/aac_framing_packet_converter.cpp AR src/input/libmtxinput.a RANLIB src/input/libmtxinput.a CXX src/merge/webm.cpp CXX src/merge/track_info.cpp CXX src/merge/timestamp_factory.cpp CXX src/merge/timestamp_calculator.cpp CXX src/merge/reader_detection_and_creation.cpp src/merge/reader_detection_and_creation.cpp: In substitution of ‘template std::function(const std::shared_ptr&, const probe_range_info_t&)>& std::function(const std::shared_ptr&, const probe_range_info_t&)>::operator=<_Functor>(std::reference_wrapper<_Tp>) [with _Functor = ]’: src/merge/reader_detection_and_creation.cpp:173:54: required from here src/merge/reader_detection_and_creation.cpp:173:54: internal compiler error: Segmentation fault 173 | type_probe_map[mtx::file_type_e::avc_es] = &do_probe; | ^~~~~~~~~~~~~~~~~~~~~~~~~ 0xbfabd3 crash_signal ../../src/gcc/toplev.c:328 0x68594c synthesize_method(tree_node*) ../../src/gcc/cp/method.c:1536 0x6f3f73 maybe_instantiate_noexcept(tree_node*, int) ../../src/gcc/cp/pt.c:25338 0x6f8ad3 resolve_overloaded_unification ../../src/gcc/cp/pt.c:22255 0x6f8ad3 unify_one_argument ../../src/gcc/cp/pt.c:21801 0x70b153 type_unification_real ../../src/gcc/cp/pt.c:21945 0x70faaf fn_type_unification(tree_node*, tree_node*, tree_node*, tree_node* const*, unsigned int, tree_node*, unification_kind_t, int, conversion**, bool, bool) ../../src/gcc/cp/pt.c:21325 0x5d878f add_template_candidate_real ../../src/gcc/cp/call.c:3417 0x5d8eeb add_template_candidate ../../src/gcc/cp/call.c:3502 0x5d8eeb add_candidates ../../src/gcc/cp/call.c:5855 0x5d95ff add_candidates ../../src/gcc/cp/call.c:5770 0x5d95ff add_operator_candidates ../../src/gcc/cp/call.c:5974 0x5e1f43 build_new_op_1 ../../src/gcc/cp/call.c:6182 0x5e2a5f build_new_op(op_location_t const&, tree_code, int, tree_node*, tree_node*, tree_node*, tree_node**, int) ../../src/gcc/cp/call.c:6573 0x7579d3 cp_build_modify_expr(unsigned int, tree_node*, tree_code, tree_node*, int) ../../src/gcc/cp/typeck.c:8574 0x757f43 build_x_modify_expr(unsigned int, tree_node*, tree_code, tree_node*, int) ../../src/gcc/cp/typeck.c:8833 0x6a973b cp_parser_assignment_expression ../../src/gcc/cp/parser.c:9909 0x6a9833 cp_parser_expression ../../src/gcc/cp/parser.c:10035 0x6abc47 cp_parser_expression_statement ../../src/gcc/cp/parser.c:11696 0x6b6397 cp_parser_statement ../../src/gcc/cp/parser.c:11492 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See for instructions. Preprocessed source stored into /tmp/cchpzJMp.out file, please attach this to your bugreport. === BEGIN GCC DUMP === 26201: // Target: x86_64-linux-gnu 26201: // Configured with: ../src/configure -v --with-pkgversion='Debian 10.2.1-6' --with-bugurl=file:///usr/share/doc/gcc-10/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-10 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --without-target-system-zlib --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-10-cross-dcOD2T/gcc-10-cross-15/gcc/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-10-cross-dcOD2T/gcc-10-cross-15/gcc/debian/tmp-gcn/usr,hsa --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=x86_64-linux-gnu --program-prefix=x86_64-linux-gnu- --includedir=/usr/x86_64-linux-gnu/include --with-build-config=bootstrap-lto-lean --enable-link-mutex 26201: // Thread model: posix 26201: // Supported LTO compression algorithms: zlib 26201: // gcc version 10.2.1 20210110 (Debian 10.2.1-6) 26201: // 26201: // src/merge/reader_detection_and_creation.cpp: In substitution of ‘template std::function(const std::shared_ptr&, const probe_range_info_t&)>& std::function(const std::shared_ptr&, const probe_range_info_t&)>::operator=<_Functor>(std::reference_wrapper<_Tp>) [with _Functor = ]’: 26201: // src/merge/reader_detection_and_creation.cpp:173:54: required from here 26201: // src/merge/reader_detection_and_creation.cpp:173:54: internal compiler error: Segmentation fault 26201: // 173 | type_probe_map[mtx::file_type_e::avc_es] = &do_probe; 26201: // | ^~~~~~~~~~~~~~~~~~~~~~~~~ 26201: // 0xbfabd3 crash_signal 26201: // ../../src/gcc/toplev.c:328 26201: // 0x68594c synthesize_method(tree_node*) 26201: // ../../src/gcc/cp/method.c:1536 26201: // 0x6f3f73 maybe_instantiate_noexcept(tree_node*, int) 26201: // ../../src/gcc/cp/pt.c:25338 26201: // 0x6f8ad3 resolve_overloaded_unification 26201: // ../../src/gcc/cp/pt.c:22255 26201: // 0x6f8ad3 unify_one_argument 26201: // ../../src/gcc/cp/pt.c:21801 26201: // 0x70b153 type_unification_real 26201: // ../../src/gcc/cp/pt.c:21945 26201: // 0x70faaf fn_type_unification(tree_node*, tree_node*, tree_node*, tree_node* const*, unsigned int, tree_node*, unification_kind_t, int, conversion**, bool, bool) 26201: // ../../src/gcc/cp/pt.c:21325 26201: // 0x5d878f add_template_candidate_real 26201: // ../../src/gcc/cp/call.c:3417 26201: // 0x5d8eeb add_template_candidate 26201: // ../../src/gcc/cp/call.c:3502 26201: // 0x5d8eeb add_candidates 26201: // ../../src/gcc/cp/call.c:5855 26201: // 0x5d95ff add_candidates 26201: // ../../src/gcc/cp/call.c:5770 26201: // 0x5d95ff add_operator_candidates 26201: // ../../src/gcc/cp/call.c:5974 26201: // 0x5e1f43 build_new_op_1 26201: // ../../src/gcc/cp/call.c:6182 26201: // 0x5e2a5f build_new_op(op_location_t const&, tree_code, int, tree_node*, tree_node*, tree_node*, tree_node**, int) 26201: // ../../src/gcc/cp/call.c:6573 26201: // 0x7579d3 cp_build_modify_expr(unsigned int, tree_node*, tree_code, tree_node*, int) 26201: // ../../src/gcc/cp/typeck.c:8574 26201: // 0x757f43 build_x_modify_expr(unsigned int, tree_node*, tree_code, tree_node*, int) 26201: // ../../src/gcc/cp/typeck.c:8833 26201: // 0x6a973b cp_parser_assignment_expression 26201: // ../../src/gcc/cp/parser.c:9909 26201: // 0x6a9833 cp_parser_expression 26201: // ../../src/gcc/cp/parser.c:10035 26201: // 0x6abc47 cp_parser_expression_statement 26201: // ../../src/gcc/cp/parser.c:11696 26201: // 0x6b6397 cp_parser_statement 26201: // ../../src/gcc/cp/parser.c:11492 26201: // Please submit a full bug report, 26201: // with preprocessed source if appropriate. 26201: // Please include the complete backtrace with any bug report. 26201: // See for instructions. 26201: 26201: // /usr/lib/gcc-cross/x86_64-linux-gnu/10/cc1plus -quiet -I /usr/include/x86_64-linux-gnu/qt5/QtWidgets -I /usr/include/x86_64-linux-gnu/qt5 -I /usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I /usr/include/x86_64-linux-gnu/qt5 -I /usr/include/x86_64-linux-gnu/qt5/QtGui -I /usr/include/x86_64-linux-gnu/qt5 -I /usr/include/x86_64-linux-gnu/qt5/QtNetwork -I /usr/include/x86_64-linux-gnu/qt5 -I /usr/include/x86_64-linux-gnu/qt5/QtConcurrent -I /usr/include/x86_64-linux-gnu/qt5 -I /usr/include/x86_64-linux-gnu/qt5/QtDBus -I /usr/include/x86_64-linux-gnu/qt5 -I /usr/include/x86_64-linux-gnu/qt5/QtCore -I /usr/include/x86_64-linux-gnu/qt5 -I /usr/include -I . -I lib -I lib/avilib-0.6.10 -I src -imultiarch x86_64-linux-gnu -MMD src/merge/reader_detection_and_creation.d -MF /<>/rake.d/dependency.d/tmp/src_merge_reader_detection_and_creation_o.d -MQ src/merge/reader_detection_and_creation.o -dD -D_GNU_SOURCE -D _FILE_OFFSET_BITS=64 -D QT_NO_KEYWORDS -D MTX_LOCALE_DIR="/usr/share/locale" -D MTX_PKG_DATA_DIR="/usr/share/mkvtoolnix" -D MTX_DOC_DIR="/usr/share/doc/mkvtoolnix-gui" -D DEBUG -D _FORTIFY_SOURCE=2 -D QT_WIDGETS_LIB -D QT_MULTIMEDIA_LIB -D QT_GUI_LIB -D QT_NETWORK_LIB -D QT_CONCURRENT_LIB -D QT_DBUS_LIB -D QT_CORE_LIB -D PIC -include src/common/common_pch.h src/merge/reader_detection_and_creation.cpp -quiet -dumpbase reader_detection_and_creation.cpp -mtune=generic -march=x86-64 -auxbase-strip src/merge/reader_detection_and_creation.o -g3 -g -O2 -Wall -Wno-comment -Wfatal-errors -Wdate-time -Wnon-virtual-dtor -Wextra -Wno-missing-field-initializers -Wunused -Wpedantic -Wno-maybe-uninitialized -Wlogical-op -Wno-extra-semi -Wmisleading-indentation -Wduplicated-cond -Wshadow=compatible-local -Wduplicated-branches -Wno-deprecated-copy -Wformat=1 -Werror=format-security -std=c++17 -fstack-protector-strong -ffile-prefix-map=/<>=. -fstack-protector-strong -fPIC -fno-var-tracking -fasynchronous-unwind-tables -o - -frandom-seed=0 -fdump-noaddr 26201: 26201: # 1 "src/merge/reader_detection_and_creation.cpp" 26201: # 1 "/<>//" 26201: # 1 "" 26201: #define __STDC__ 1 26201: #define __cplusplus 201703L 26201: #define __STDC_UTF_16__ 1 26201: #define __STDC_UTF_32__ 1 26201: #define __STDC_HOSTED__ 1 26201: #define __GNUC__ 10 26201: #define __GNUC_MINOR__ 2 26201: #define __GNUC_PATCHLEVEL__ 1 26201: #define __VERSION__ "10.2.1 20210110" 26201: #define __ATOMIC_RELAXED 0 26201: #define __ATOMIC_SEQ_CST 5 26201: #define __ATOMIC_ACQUIRE 2 26201: #define __ATOMIC_RELEASE 3 26201: #define __ATOMIC_ACQ_REL 4 26201: #define __ATOMIC_CONSUME 1 26201: #define __pic__ 2 26201: #define __PIC__ 2 26201: #define __OPTIMIZE__ 1 26201: #define __FINITE_MATH_ONLY__ 0 26201: #define _LP64 1 26201: #define __LP64__ 1 26201: #define __SIZEOF_INT__ 4 26201: #define __SIZEOF_LONG__ 8 26201: #define __SIZEOF_LONG_LONG__ 8 26201: #define __SIZEOF_SHORT__ 2 26201: #define __SIZEOF_FLOAT__ 4 26201: #define __SIZEOF_DOUBLE__ 8 26201: #define __SIZEOF_LONG_DOUBLE__ 16 26201: #define __SIZEOF_SIZE_T__ 8 26201: #define __CHAR_BIT__ 8 26201: #define __BIGGEST_ALIGNMENT__ 16 26201: #define __ORDER_LITTLE_ENDIAN__ 1234 26201: #define __ORDER_BIG_ENDIAN__ 4321 26201: #define __ORDER_PDP_ENDIAN__ 3412 26201: #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ 26201: #define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ 26201: #define __SIZEOF_POINTER__ 8 26201: #define __GNUG__ 10 26201: #define __SIZE_TYPE__ long unsigned int 26201: #define __PTRDIFF_TYPE__ long int 26201: #define __WCHAR_TYPE__ int 26201: #define __WINT_TYPE__ unsigned int 26201: #define __INTMAX_TYPE__ long int 26201: #define __UINTMAX_TYPE__ long unsigned int 26201: #define __CHAR16_TYPE__ short unsigned int 26201: #define __CHAR32_TYPE__ unsigned int 26201: #define __SIG_ATOMIC_TYPE__ int 26201: #define __INT8_TYPE__ signed char 26201: #define __INT16_TYPE__ short int 26201: #define __INT32_TYPE__ int 26201: #define __INT64_TYPE__ long int 26201: #define __UINT8_TYPE__ unsigned char 26201: #define __UINT16_TYPE__ short unsigned int 26201: #define __UINT32_TYPE__ unsigned int 26201: #define __UINT64_TYPE__ long unsigned int 26201: #define __INT_LEAST8_TYPE__ signed char 26201: #define __INT_LEAST16_TYPE__ short int 26201: #define __INT_LEAST32_TYPE__ int 26201: #define __INT_LEAST64_TYPE__ long int 26201: #define __UINT_LEAST8_TYPE__ unsigned char 26201: #define __UINT_LEAST16_TYPE__ short unsigned int 26201: #define __UINT_LEAST32_TYPE__ unsigned int 26201: #define __UINT_LEAST64_TYPE__ long unsigned int 26201: #define __INT_FAST8_TYPE__ signed char 26201: #define __INT_FAST16_TYPE__ long int 26201: #define __INT_FAST32_TYPE__ long int 26201: #define __INT_FAST64_TYPE__ long int 26201: #define __UINT_FAST8_TYPE__ unsigned char 26201: #define __UINT_FAST16_TYPE__ long unsigned int 26201: #define __UINT_FAST32_TYPE__ long unsigned int 26201: #define __UINT_FAST64_TYPE__ long unsigned int 26201: #define __INTPTR_TYPE__ long int 26201: #define __UINTPTR_TYPE__ long unsigned int 26201: #define __GXX_WEAK__ 1 26201: #define __DEPRECATED 1 26201: #define __GXX_RTTI 1 26201: #define __cpp_rtti 199711L 26201: #define __GXX_EXPERIMENTAL_CXX0X__ 1 26201: #define __cpp_binary_literals 201304L 26201: #define __cpp_hex_float 201603L 26201: #define __cpp_raw_strings 200710L 26201: #define __cpp_unicode_literals 200710L 26201: #define __cpp_user_defined_literals 200809L 26201: #define __cpp_lambdas 200907L 26201: #define __cpp_decltype 200707L 26201: #define __cpp_attributes 200809L 26201: #define __cpp_rvalue_reference 200610L 26201: #define __cpp_rvalue_references 200610L 26201: #define __cpp_variadic_templates 200704L 26201: #define __cpp_initializer_lists 200806L 26201: #define __cpp_delegating_constructors 200604L 26201: #define __cpp_nsdmi 200809L 26201: #define __cpp_inheriting_constructors 201511L 26201: #define __cpp_ref_qualifiers 200710L 26201: #define __cpp_alias_templates 200704L 26201: #define __cpp_return_type_deduction 201304L 26201: #define __cpp_init_captures 201304L 26201: #define __cpp_generic_lambdas 201304L 26201: #define __cpp_decltype_auto 201304L 26201: #define __cpp_aggregate_nsdmi 201304L 26201: #define __cpp_variable_templates 201304L 26201: #define __cpp_digit_separators 201309L 26201: #define __cpp_unicode_characters 201411L 26201: #define __cpp_static_assert 201411L 26201: #define __cpp_namespace_attributes 201411L 26201: #define __cpp_enumerator_attributes 201411L 26201: #define __cpp_nested_namespace_definitions 201411L 26201: #define __cpp_fold_expressions 201603L 26201: #define __cpp_nontype_template_args 201411L 26201: #define __cpp_range_based_for 201603L 26201: #define __cpp_constexpr 201603L 26201: #define __cpp_if_constexpr 201606L 26201: #define __cpp_capture_star_this 201603L 26201: #define __cpp_inline_variables 201606L 26201: #define __cpp_aggregate_bases 201603L 26201: #define __cpp_deduction_guides 201703L 26201: #define __cpp_noexcept_function_type 201510L 26201: #define __cpp_template_auto 201606L 26201: #define __cpp_structured_bindings 201606L 26201: #define __cpp_variadic_using 201611L 26201: #define __cpp_guaranteed_copy_elision 201606L 26201: #define __cpp_nontype_template_parameter_auto 201606L 26201: #define __cpp_sized_deallocation 201309L 26201: #define __cpp_aligned_new 201606L 26201: #define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16 26201: #define __cpp_template_template_args 201611L 26201: #define __cpp_threadsafe_static_init 200806L 26201: #define __EXCEPTIONS 1 26201: #define __cpp_exceptions 199711L 26201: #define __GXX_ABI_VERSION 1014 26201: #define __SCHAR_MAX__ 0x7f 26201: #define __SHRT_MAX__ 0x7fff 26201: #define __INT_MAX__ 0x7fffffff 26201: #define __LONG_MAX__ 0x7fffffffffffffffL 26201: #define __LONG_LONG_MAX__ 0x7fffffffffffffffLL 26201: #define __WCHAR_MAX__ 0x7fffffff 26201: #define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1) 26201: #define __WINT_MAX__ 0xffffffffU 26201: #define __WINT_MIN__ 0U 26201: #define __PTRDIFF_MAX__ 0x7fffffffffffffffL 26201: #define __SIZE_MAX__ 0xffffffffffffffffUL 26201: #define __SCHAR_WIDTH__ 8 26201: #define __SHRT_WIDTH__ 16 26201: #define __INT_WIDTH__ 32 26201: #define __LONG_WIDTH__ 64 26201: #define __LONG_LONG_WIDTH__ 64 26201: #define __WCHAR_WIDTH__ 32 26201: #define __WINT_WIDTH__ 32 26201: #define __PTRDIFF_WIDTH__ 64 26201: #define __SIZE_WIDTH__ 64 26201: #define __INTMAX_MAX__ 0x7fffffffffffffffL 26201: #define __INTMAX_C(c) c ## L 26201: #define __UINTMAX_MAX__ 0xffffffffffffffffUL 26201: #define __UINTMAX_C(c) c ## UL 26201: #define __INTMAX_WIDTH__ 64 26201: #define __SIG_ATOMIC_MAX__ 0x7fffffff 26201: #define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) 26201: #define __SIG_ATOMIC_WIDTH__ 32 26201: #define __INT8_MAX__ 0x7f 26201: #define __INT16_MAX__ 0x7fff 26201: #define __INT32_MAX__ 0x7fffffff 26201: #define __INT64_MAX__ 0x7fffffffffffffffL 26201: #define __UINT8_MAX__ 0xff 26201: #define __UINT16_MAX__ 0xffff 26201: #define __UINT32_MAX__ 0xffffffffU 26201: #define __UINT64_MAX__ 0xffffffffffffffffUL 26201: #define __INT_LEAST8_MAX__ 0x7f 26201: #define __INT8_C(c) c 26201: #define __INT_LEAST8_WIDTH__ 8 26201: #define __INT_LEAST16_MAX__ 0x7fff 26201: #define __INT16_C(c) c 26201: #define __INT_LEAST16_WIDTH__ 16 26201: #define __INT_LEAST32_MAX__ 0x7fffffff 26201: #define __INT32_C(c) c 26201: #define __INT_LEAST32_WIDTH__ 32 26201: #define __INT_LEAST64_MAX__ 0x7fffffffffffffffL 26201: #define __INT64_C(c) c ## L 26201: #define __INT_LEAST64_WIDTH__ 64 26201: #define __UINT_LEAST8_MAX__ 0xff 26201: #define __UINT8_C(c) c 26201: #define __UINT_LEAST16_MAX__ 0xffff 26201: #define __UINT16_C(c) c 26201: #define __UINT_LEAST32_MAX__ 0xffffffffU 26201: #define __UINT32_C(c) c ## U 26201: #define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL 26201: #define __UINT64_C(c) c ## UL 26201: #define __INT_FAST8_MAX__ 0x7f 26201: #define __INT_FAST8_WIDTH__ 8 26201: #define __INT_FAST16_MAX__ 0x7fffffffffffffffL 26201: #define __INT_FAST16_WIDTH__ 64 26201: #define __INT_FAST32_MAX__ 0x7fffffffffffffffL 26201: #define __INT_FAST32_WIDTH__ 64 26201: #define __INT_FAST64_MAX__ 0x7fffffffffffffffL 26201: #define __INT_FAST64_WIDTH__ 64 26201: #define __UINT_FAST8_MAX__ 0xff 26201: #define __UINT_FAST16_MAX__ 0xffffffffffffffffUL 26201: #define __UINT_FAST32_MAX__ 0xffffffffffffffffUL 26201: #define __UINT_FAST64_MAX__ 0xffffffffffffffffUL 26201: #define __INTPTR_MAX__ 0x7fffffffffffffffL 26201: #define __INTPTR_WIDTH__ 64 26201: #define __UINTPTR_MAX__ 0xffffffffffffffffUL 26201: #define __GCC_IEC_559 2 26201: #define __GCC_IEC_559_COMPLEX 2 26201: #define __FLT_EVAL_METHOD__ 0 26201: #define __FLT_EVAL_METHOD_TS_18661_3__ 0 26201: #define __DEC_EVAL_METHOD__ 2 26201: #define __FLT_RADIX__ 2 26201: #define __FLT_MANT_DIG__ 24 26201: #define __FLT_DIG__ 6 26201: #define __FLT_MIN_EXP__ (-125) 26201: #define __FLT_MIN_10_EXP__ (-37) 26201: #define __FLT_MAX_EXP__ 128 26201: #define __FLT_MAX_10_EXP__ 38 26201: #define __FLT_DECIMAL_DIG__ 9 26201: #define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F 26201: #define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F 26201: #define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F 26201: #define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F 26201: #define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F 26201: #define __FLT_HAS_DENORM__ 1 26201: #define __FLT_HAS_INFINITY__ 1 26201: #define __FLT_HAS_QUIET_NAN__ 1 26201: #define __DBL_MANT_DIG__ 53 26201: #define __DBL_DIG__ 15 26201: #define __DBL_MIN_EXP__ (-1021) 26201: #define __DBL_MIN_10_EXP__ (-307) 26201: #define __DBL_MAX_EXP__ 1024 26201: #define __DBL_MAX_10_EXP__ 308 26201: #define __DBL_DECIMAL_DIG__ 17 26201: #define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L) 26201: #define __DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L) 26201: #define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L) 26201: #define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L) 26201: #define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L) 26201: #define __DBL_HAS_DENORM__ 1 26201: #define __DBL_HAS_INFINITY__ 1 26201: #define __DBL_HAS_QUIET_NAN__ 1 26201: #define __LDBL_MANT_DIG__ 64 26201: #define __LDBL_DIG__ 18 26201: #define __LDBL_MIN_EXP__ (-16381) 26201: #define __LDBL_MIN_10_EXP__ (-4931) 26201: #define __LDBL_MAX_EXP__ 16384 26201: #define __LDBL_MAX_10_EXP__ 4932 26201: #define __DECIMAL_DIG__ 21 26201: #define __LDBL_DECIMAL_DIG__ 21 26201: #define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L 26201: #define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L 26201: #define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L 26201: #define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L 26201: #define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L 26201: #define __LDBL_HAS_DENORM__ 1 26201: #define __LDBL_HAS_INFINITY__ 1 26201: #define __LDBL_HAS_QUIET_NAN__ 1 26201: #define __FLT32_MANT_DIG__ 24 26201: #define __FLT32_DIG__ 6 26201: #define __FLT32_MIN_EXP__ (-125) 26201: #define __FLT32_MIN_10_EXP__ (-37) 26201: #define __FLT32_MAX_EXP__ 128 26201: #define __FLT32_MAX_10_EXP__ 38 26201: #define __FLT32_DECIMAL_DIG__ 9 26201: #define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32 26201: #define __FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32 26201: #define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32 26201: #define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32 26201: #define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32 26201: #define __FLT32_HAS_DENORM__ 1 26201: #define __FLT32_HAS_INFINITY__ 1 26201: #define __FLT32_HAS_QUIET_NAN__ 1 26201: #define __FLT64_MANT_DIG__ 53 26201: #define __FLT64_DIG__ 15 26201: #define __FLT64_MIN_EXP__ (-1021) 26201: #define __FLT64_MIN_10_EXP__ (-307) 26201: #define __FLT64_MAX_EXP__ 1024 26201: #define __FLT64_MAX_10_EXP__ 308 26201: #define __FLT64_DECIMAL_DIG__ 17 26201: #define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64 26201: #define __FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64 26201: #define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64 26201: #define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64 26201: #define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64 26201: #define __FLT64_HAS_DENORM__ 1 26201: #define __FLT64_HAS_INFINITY__ 1 26201: #define __FLT64_HAS_QUIET_NAN__ 1 26201: #define __FLT128_MANT_DIG__ 113 26201: #define __FLT128_DIG__ 33 26201: #define __FLT128_MIN_EXP__ (-16381) 26201: #define __FLT128_MIN_10_EXP__ (-4931) 26201: #define __FLT128_MAX_EXP__ 16384 26201: #define __FLT128_MAX_10_EXP__ 4932 26201: #define __FLT128_DECIMAL_DIG__ 36 26201: #define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128 26201: #define __FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128 26201: #define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128 26201: #define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128 26201: #define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128 26201: #define __FLT128_HAS_DENORM__ 1 26201: #define __FLT128_HAS_INFINITY__ 1 26201: #define __FLT128_HAS_QUIET_NAN__ 1 26201: #define __FLT32X_MANT_DIG__ 53 26201: #define __FLT32X_DIG__ 15 26201: #define __FLT32X_MIN_EXP__ (-1021) 26201: #define __FLT32X_MIN_10_EXP__ (-307) 26201: #define __FLT32X_MAX_EXP__ 1024 26201: #define __FLT32X_MAX_10_EXP__ 308 26201: #define __FLT32X_DECIMAL_DIG__ 17 26201: #define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x 26201: #define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x 26201: #define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x 26201: #define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x 26201: #define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x 26201: #define __FLT32X_HAS_DENORM__ 1 26201: #define __FLT32X_HAS_INFINITY__ 1 26201: #define __FLT32X_HAS_QUIET_NAN__ 1 26201: #define __FLT64X_MANT_DIG__ 64 26201: #define __FLT64X_DIG__ 18 26201: #define __FLT64X_MIN_EXP__ (-16381) 26201: #define __FLT64X_MIN_10_EXP__ (-4931) 26201: #define __FLT64X_MAX_EXP__ 16384 26201: #define __FLT64X_MAX_10_EXP__ 4932 26201: #define __FLT64X_DECIMAL_DIG__ 21 26201: #define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x 26201: #define __FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x 26201: #define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x 26201: #define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x 26201: #define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x 26201: #define __FLT64X_HAS_DENORM__ 1 26201: #define __FLT64X_HAS_INFINITY__ 1 26201: #define __FLT64X_HAS_QUIET_NAN__ 1 26201: #define __DEC32_MANT_DIG__ 7 26201: #define __DEC32_MIN_EXP__ (-94) 26201: #define __DEC32_MAX_EXP__ 97 26201: #define __DEC32_MIN__ 1E-95DF 26201: #define __DEC32_MAX__ 9.999999E96DF 26201: #define __DEC32_EPSILON__ 1E-6DF 26201: #define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF 26201: #define __DEC64_MANT_DIG__ 16 26201: #define __DEC64_MIN_EXP__ (-382) 26201: #define __DEC64_MAX_EXP__ 385 26201: #define __DEC64_MIN__ 1E-383DD 26201: #define __DEC64_MAX__ 9.999999999999999E384DD 26201: #define __DEC64_EPSILON__ 1E-15DD 26201: #define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD 26201: #define __DEC128_MANT_DIG__ 34 26201: #define __DEC128_MIN_EXP__ (-6142) 26201: #define __DEC128_MAX_EXP__ 6145 26201: #define __DEC128_MIN__ 1E-6143DL 26201: #define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL 26201: #define __DEC128_EPSILON__ 1E-33DL 26201: #define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL 26201: #define __REGISTER_PREFIX__ 26201: #define __USER_LABEL_PREFIX__ 26201: #define __GNUC_STDC_INLINE__ 1 26201: #define __STRICT_ANSI__ 1 26201: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 26201: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 26201: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 26201: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 26201: #define __GCC_ATOMIC_BOOL_LOCK_FREE 2 26201: #define __GCC_ATOMIC_CHAR_LOCK_FREE 2 26201: #define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 26201: #define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 26201: #define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 26201: #define __GCC_ATOMIC_SHORT_LOCK_FREE 2 26201: #define __GCC_ATOMIC_INT_LOCK_FREE 2 26201: #define __GCC_ATOMIC_LONG_LOCK_FREE 2 26201: #define __GCC_ATOMIC_LLONG_LOCK_FREE 2 26201: #define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 26201: #define __GCC_ATOMIC_POINTER_LOCK_FREE 2 26201: #define __HAVE_SPECULATION_SAFE_VALUE 1 26201: #define __GCC_HAVE_DWARF2_CFI_ASM 1 26201: #define __PRAGMA_REDEFINE_EXTNAME 1 26201: #define __SSP_STRONG__ 3 26201: #define __SIZEOF_INT128__ 16 26201: #define __SIZEOF_WCHAR_T__ 4 26201: #define __SIZEOF_WINT_T__ 4 26201: #define __SIZEOF_PTRDIFF_T__ 8 26201: #define __amd64 1 26201: #define __amd64__ 1 26201: #define __x86_64 1 26201: #define __x86_64__ 1 26201: #define __SIZEOF_FLOAT80__ 16 26201: #define __SIZEOF_FLOAT128__ 16 26201: #define __ATOMIC_HLE_ACQUIRE 65536 26201: #define __ATOMIC_HLE_RELEASE 131072 26201: #define __GCC_ASM_FLAG_OUTPUTS__ 1 26201: #define __k8 1 26201: #define __k8__ 1 26201: #define __code_model_small__ 1 26201: #define __MMX__ 1 26201: #define __SSE__ 1 26201: #define __SSE2__ 1 26201: #define __FXSR__ 1 26201: #define __SSE_MATH__ 1 26201: #define __SSE2_MATH__ 1 26201: #define __MMX_WITH_SSE__ 1 26201: #define __SEG_FS 1 26201: #define __SEG_GS 1 26201: #define __gnu_linux__ 1 26201: #define __linux 1 26201: #define __linux__ 1 26201: #define __unix 1 26201: #define __unix__ 1 26201: #define __ELF__ 1 26201: #define __DECIMAL_BID_FORMAT__ 1 26201: # 1 "" 26201: #define _GNU_SOURCE 1 26201: #define _FILE_OFFSET_BITS 64 26201: #define QT_NO_KEYWORDS 1 26201: #define MTX_LOCALE_DIR "/usr/share/locale" 26201: #define MTX_PKG_DATA_DIR "/usr/share/mkvtoolnix" 26201: #define MTX_DOC_DIR "/usr/share/doc/mkvtoolnix-gui" 26201: #define DEBUG 1 26201: #define _FORTIFY_SOURCE 2 26201: #define QT_WIDGETS_LIB 1 26201: #define QT_MULTIMEDIA_LIB 1 26201: #define QT_GUI_LIB 1 26201: #define QT_NETWORK_LIB 1 26201: #define QT_CONCURRENT_LIB 1 26201: #define QT_DBUS_LIB 1 26201: #define QT_CORE_LIB 1 26201: #define PIC 1 26201: # 1 "/usr/x86_64-linux-gnu/include/stdc-predef.h" 1 3 26201: # 19 "/usr/x86_64-linux-gnu/include/stdc-predef.h" 3 26201: #define _STDC_PREDEF_H 1 26201: # 38 "/usr/x86_64-linux-gnu/include/stdc-predef.h" 3 26201: #define __STDC_IEC_559__ 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __STDC_IEC_559_COMPLEX__ 1 26201: # 58 "/usr/x86_64-linux-gnu/include/stdc-predef.h" 3 26201: #define __STDC_ISO_10646__ 201706L 26201: # 1 "" 2 26201: # 1 "./src/common/common_pch.h" 1 26201: # 1 "src/common/common.h" 1 26201: # 14 "src/common/common.h" 26201: 26201: 26201: #undef min 26201: #undef max 26201: 26201: # 1 "src/common/os.h" 1 26201: # 13 "src/common/os.h" 26201: 26201: 26201: # 1 "./config.h" 1 26201: 26201: 26201: 26201: 26201: #define GWINSZ_IN_SYS_IOCTL 1 26201: 26201: 26201: 26201: 26201: 26201: #define HAVE_BOOST 26201: 26201: 26201: #define HAVE_BOOST_OPERATORS_HPP 1 26201: 26201: 26201: #define HAVE_CMARK 26201: 26201: 26201: #define HAVE_DVDREAD 26201: 26201: 26201: #define HAVE_FLAC_DECODER_SKIP 1 26201: 26201: 26201: #define HAVE_FLAC_FORMAT_H 1 26201: 26201: 26201: 26201: 26201: 26201: #define HAVE_GETTEXT 1 26201: 26201: 26201: 26201: 26201: 26201: #define HAVE_ICONV_H 1 26201: 26201: 26201: #define HAVE_INTTYPES_H 1 26201: 26201: 26201: #define HAVE_LIBINTL_H 1 26201: 26201: 26201: 26201: 26201: 26201: #define HAVE_NLOHMANN_JSONCPP 1 26201: 26201: 26201: #define HAVE_NL_LANGINFO 1 26201: # 62 "./config.h" 26201: #define HAVE_OGG_OGG_H 1 26201: 26201: 26201: 26201: 26201: 26201: #define HAVE_QT 1 26201: 26201: 26201: #define HAVE_QTDBUS 1 26201: 26201: 26201: 26201: 26201: 26201: #define HAVE_STDINT_H 1 26201: 26201: 26201: #define HAVE_STDIO_H 1 26201: 26201: 26201: #define HAVE_STDLIB_H 1 26201: 26201: 26201: #define HAVE_STRINGS_H 1 26201: 26201: 26201: #define HAVE_STRING_H 1 26201: 26201: 26201: 26201: 26201: 26201: #define HAVE_SYSCALL 1 26201: 26201: 26201: #define HAVE_SYS_IOCTL_H 1 26201: 26201: 26201: #define HAVE_SYS_STAT_H 1 26201: 26201: 26201: #define HAVE_SYS_SYSCALL_H 1 26201: 26201: 26201: #define HAVE_SYS_TYPES_H 1 26201: 26201: 26201: #define HAVE_TIOCGWINSZ 1 26201: 26201: 26201: #define HAVE_UNISTD_H 1 26201: 26201: 26201: 26201: 26201: 26201: #define HAVE_UTF8_H 1 26201: 26201: 26201: #define HAVE_VORBIS_CODEC_H 1 26201: 26201: 26201: #define ICONV_CONST 26201: # 134 "./config.h" 26201: #define PACKAGE_BUGREPORT "https://gitlab.com/mbunkus/mkvtoolnix/issues/" 26201: 26201: 26201: #define PACKAGE_NAME "MKVToolNix" 26201: 26201: 26201: #define PACKAGE_STRING "MKVToolNix 61.0.0" 26201: 26201: 26201: #define PACKAGE_TARNAME "mkvtoolnix" 26201: 26201: 26201: #define PACKAGE_URL "" 26201: 26201: 26201: #define PACKAGE_VERSION "61.0.0" 26201: 26201: 26201: #define SIZEOF_INT 4 26201: 26201: 26201: #define SIZEOF_LONG 8 26201: 26201: 26201: #define SIZEOF_LONG_LONG 8 26201: 26201: 26201: 26201: 26201: #define STDC_HEADERS 1 26201: 26201: 26201: 26201: 26201: 26201: #define USE_PRECOMPILED_HEADERS 1 26201: # 16 "src/common/os.h" 2 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define COMP_GCC 26201: #define SYS_UNIX 26201: # 36 "src/common/os.h" 26201: #define SYS_LINUX 26201: # 56 "src/common/os.h" 26201: #define PACKED_STRUCTURE __attribute__((__packed__)) 26201: # 20 "src/common/common.h" 2 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/algorithm" 1 3 26201: # 56 "/usr/x86_64-linux-gnu/include/c++/10/algorithm" 3 26201: #define _GLIBCXX_ALGORITHM 1 26201: 26201: 26201: # 59 "/usr/x86_64-linux-gnu/include/c++/10/algorithm" 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/utility" 1 3 26201: # 56 "/usr/x86_64-linux-gnu/include/c++/10/utility" 3 26201: #define _GLIBCXX_UTILITY 1 26201: 26201: 26201: # 59 "/usr/x86_64-linux-gnu/include/c++/10/utility" 3 26201: # 68 "/usr/x86_64-linux-gnu/include/c++/10/utility" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_CXX_CONFIG_H 1 26201: 26201: 26201: #define _GLIBCXX_RELEASE 10 26201: 26201: 26201: #define __GLIBCXX__ 20210828 26201: # 46 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_PURE __attribute__ ((__pure__)) 26201: 26201: 26201: 26201: #define _GLIBCXX_CONST __attribute__ ((__const__)) 26201: 26201: 26201: 26201: #define _GLIBCXX_NORETURN __attribute__ ((__noreturn__)) 26201: # 67 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY 1 26201: 26201: 26201: #define _GLIBCXX_VISIBILITY(V) __attribute__ ((__visibility__ (#V))) 26201: # 84 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_USE_DEPRECATED 1 26201: 26201: 26201: 26201: #define _GLIBCXX_DEPRECATED __attribute__ ((__deprecated__)) 26201: #define _GLIBCXX_DEPRECATED_SUGGEST(ALT) __attribute__ ((__deprecated__ ("use '" ALT "' instead"))) 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX17_DEPRECATED [[__deprecated__]] 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX20_DEPRECATED(MSG) 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_ABI_TAG_CXX11 __attribute ((__abi_tag__ ("cxx11"))) 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_NODISCARD [[__nodiscard__]] 26201: # 127 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_CONSTEXPR constexpr 26201: #define _GLIBCXX_USE_CONSTEXPR constexpr 26201: # 137 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX14_CONSTEXPR constexpr 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX17_CONSTEXPR constexpr 26201: # 155 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX20_CONSTEXPR 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX17_INLINE inline 26201: # 170 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_NOEXCEPT noexcept 26201: #define _GLIBCXX_NOEXCEPT_IF(...) noexcept(__VA_ARGS__) 26201: #define _GLIBCXX_USE_NOEXCEPT noexcept 26201: #define _GLIBCXX_THROW(_EXC) 26201: # 183 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_NOTHROW _GLIBCXX_USE_NOEXCEPT 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_THROW_OR_ABORT(_EXC) (throw (_EXC)) 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_NOEXCEPT_PARM , bool _NE 26201: #define _GLIBCXX_NOEXCEPT_QUAL noexcept (_NE) 26201: # 212 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_EXTERN_TEMPLATE 1 26201: # 262 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: 26201: # 262 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: namespace std 26201: { 26201: typedef long unsigned int size_t; 26201: typedef long int ptrdiff_t; 26201: 26201: 26201: typedef decltype(nullptr) nullptr_t; 26201: 26201: } 26201: 26201: #define _GLIBCXX_USE_DUAL_ABI 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_USE_CXX11_ABI 1 26201: 26201: 26201: 26201: namespace std 26201: { 26201: inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } 26201: } 26201: namespace __gnu_cxx 26201: { 26201: inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } 26201: } 26201: #define _GLIBCXX_NAMESPACE_CXX11 __cxx11:: 26201: #define _GLIBCXX_BEGIN_NAMESPACE_CXX11 namespace __cxx11 { 26201: #define _GLIBCXX_END_NAMESPACE_CXX11 } 26201: #define _GLIBCXX_DEFAULT_ABI_TAG _GLIBCXX_ABI_TAG_CXX11 26201: # 304 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_INLINE_VERSION 0 26201: # 334 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_BEGIN_NAMESPACE_VERSION 26201: #define _GLIBCXX_END_NAMESPACE_VERSION 26201: # 393 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_STD_C std 26201: #define _GLIBCXX_BEGIN_NAMESPACE_CONTAINER 26201: #define _GLIBCXX_END_NAMESPACE_CONTAINER 26201: # 404 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_STD_A std 26201: #define _GLIBCXX_BEGIN_NAMESPACE_ALGO 26201: #define _GLIBCXX_END_NAMESPACE_ALGO 26201: 26201: 26201: 26201: 26201: #undef _GLIBCXX_LONG_DOUBLE_COMPAT 26201: # 423 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_NAMESPACE_LDBL 26201: #define _GLIBCXX_BEGIN_NAMESPACE_LDBL 26201: #define _GLIBCXX_END_NAMESPACE_LDBL 26201: 26201: 26201: #define _GLIBCXX_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_NAMESPACE_CXX11 26201: #define _GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_BEGIN_NAMESPACE_CXX11 26201: #define _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_END_NAMESPACE_CXX11 26201: # 476 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define __glibcxx_assert(_Condition) 26201: # 501 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(A) 26201: 26201: 26201: #define _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(A) 26201: 26201: 26201: 26201: #define _GLIBCXX_BEGIN_EXTERN_C extern "C" { 26201: #define _GLIBCXX_END_EXTERN_C } 26201: 26201: #define _GLIBCXX_USE_ALLOCATOR_NEW 1 26201: # 522 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/os_defines.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/os_defines.h" 3 26201: #define _GLIBCXX_OS_DEFINES 1 26201: 26201: 26201: 26201: 26201: 26201: #define __NO_CTYPE 1 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/features.h" 1 3 26201: # 19 "/usr/x86_64-linux-gnu/include/features.h" 3 26201: #define _FEATURES_H 1 26201: # 120 "/usr/x86_64-linux-gnu/include/features.h" 3 26201: #undef __USE_ISOC11 26201: #undef __USE_ISOC99 26201: #undef __USE_ISOC95 26201: #undef __USE_ISOCXX11 26201: #undef __USE_POSIX 26201: #undef __USE_POSIX2 26201: #undef __USE_POSIX199309 26201: #undef __USE_POSIX199506 26201: #undef __USE_XOPEN 26201: #undef __USE_XOPEN_EXTENDED 26201: #undef __USE_UNIX98 26201: #undef __USE_XOPEN2K 26201: #undef __USE_XOPEN2KXSI 26201: #undef __USE_XOPEN2K8 26201: #undef __USE_XOPEN2K8XSI 26201: #undef __USE_LARGEFILE 26201: #undef __USE_LARGEFILE64 26201: #undef __USE_FILE_OFFSET64 26201: #undef __USE_MISC 26201: #undef __USE_ATFILE 26201: #undef __USE_GNU 26201: #undef __USE_FORTIFY_LEVEL 26201: #undef __KERNEL_STRICT_NAMES 26201: #undef __GLIBC_USE_ISOC2X 26201: #undef __GLIBC_USE_DEPRECATED_GETS 26201: #undef __GLIBC_USE_DEPRECATED_SCANF 26201: 26201: 26201: 26201: 26201: #define __KERNEL_STRICT_NAMES 26201: # 161 "/usr/x86_64-linux-gnu/include/features.h" 3 26201: #define __GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) 26201: # 175 "/usr/x86_64-linux-gnu/include/features.h" 3 26201: #define __glibc_clang_prereq(maj,min) 0 26201: 26201: 26201: 26201: #define __GLIBC_USE(F) __GLIBC_USE_ ## F 26201: # 194 "/usr/x86_64-linux-gnu/include/features.h" 3 26201: #undef _ISOC95_SOURCE 26201: #define _ISOC95_SOURCE 1 26201: #undef _ISOC99_SOURCE 26201: #define _ISOC99_SOURCE 1 26201: #undef _ISOC11_SOURCE 26201: #define _ISOC11_SOURCE 1 26201: #undef _ISOC2X_SOURCE 26201: #define _ISOC2X_SOURCE 1 26201: #undef _POSIX_SOURCE 26201: #define _POSIX_SOURCE 1 26201: #undef _POSIX_C_SOURCE 26201: #define _POSIX_C_SOURCE 200809L 26201: #undef _XOPEN_SOURCE 26201: #define _XOPEN_SOURCE 700 26201: #undef _XOPEN_SOURCE_EXTENDED 26201: #define _XOPEN_SOURCE_EXTENDED 1 26201: #undef _LARGEFILE64_SOURCE 26201: #define _LARGEFILE64_SOURCE 1 26201: #undef _DEFAULT_SOURCE 26201: #define _DEFAULT_SOURCE 1 26201: #undef _ATFILE_SOURCE 26201: #define _ATFILE_SOURCE 1 26201: # 226 "/usr/x86_64-linux-gnu/include/features.h" 3 26201: #undef _DEFAULT_SOURCE 26201: #define _DEFAULT_SOURCE 1 26201: 26201: 26201: 26201: 26201: 26201: #define __GLIBC_USE_ISOC2X 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __USE_ISOC11 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __USE_ISOC99 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __USE_ISOC95 1 26201: 26201: 26201: 26201: 26201: 26201: #define __USE_ISOC11 1 26201: 26201: 26201: 26201: 26201: #define __USE_ISOCXX11 1 26201: #define __USE_ISOC99 1 26201: # 278 "/usr/x86_64-linux-gnu/include/features.h" 3 26201: #undef _POSIX_SOURCE 26201: #define _POSIX_SOURCE 1 26201: #undef _POSIX_C_SOURCE 26201: #define _POSIX_C_SOURCE 200809L 26201: # 316 "/usr/x86_64-linux-gnu/include/features.h" 3 26201: #define __USE_POSIX 1 26201: 26201: 26201: 26201: #define __USE_POSIX2 1 26201: 26201: 26201: 26201: #define __USE_POSIX199309 1 26201: 26201: 26201: 26201: #define __USE_POSIX199506 1 26201: 26201: 26201: 26201: #define __USE_XOPEN2K 1 26201: #undef __USE_ISOC95 26201: #define __USE_ISOC95 1 26201: #undef __USE_ISOC99 26201: #define __USE_ISOC99 1 26201: 26201: 26201: 26201: #define __USE_XOPEN2K8 1 26201: #undef _ATFILE_SOURCE 26201: #define _ATFILE_SOURCE 1 26201: 26201: 26201: 26201: #define __USE_XOPEN 1 26201: 26201: #define __USE_XOPEN_EXTENDED 1 26201: #define __USE_UNIX98 1 26201: #undef _LARGEFILE_SOURCE 26201: #define _LARGEFILE_SOURCE 1 26201: 26201: 26201: #define __USE_XOPEN2K8 1 26201: #define __USE_XOPEN2K8XSI 1 26201: 26201: #define __USE_XOPEN2K 1 26201: #define __USE_XOPEN2KXSI 1 26201: #undef __USE_ISOC95 26201: #define __USE_ISOC95 1 26201: #undef __USE_ISOC99 26201: #define __USE_ISOC99 1 26201: # 372 "/usr/x86_64-linux-gnu/include/features.h" 3 26201: #define __USE_LARGEFILE 1 26201: 26201: 26201: 26201: #define __USE_LARGEFILE64 1 26201: 26201: 26201: 26201: #define __USE_FILE_OFFSET64 1 26201: 26201: 26201: 26201: #define __USE_MISC 1 26201: 26201: 26201: 26201: #define __USE_ATFILE 1 26201: 26201: 26201: 26201: #define __USE_GNU 1 26201: 26201: 26201: 26201: 26201: 26201: #define __USE_FORTIFY_LEVEL 2 26201: # 411 "/usr/x86_64-linux-gnu/include/features.h" 3 26201: #define __GLIBC_USE_DEPRECATED_GETS 0 26201: # 434 "/usr/x86_64-linux-gnu/include/features.h" 3 26201: #define __GLIBC_USE_DEPRECATED_SCANF 0 26201: # 447 "/usr/x86_64-linux-gnu/include/features.h" 3 26201: #undef __GNU_LIBRARY__ 26201: #define __GNU_LIBRARY__ 6 26201: 26201: 26201: 26201: #define __GLIBC__ 2 26201: #define __GLIBC_MINOR__ 31 26201: 26201: #define __GLIBC_PREREQ(maj,min) ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min)) 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 1 3 26201: # 19 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: #define _SYS_CDEFS_H 1 26201: # 34 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: #undef __P 26201: #undef __PMT 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __LEAF , __leaf__ 26201: #define __LEAF_ATTR __attribute__ ((__leaf__)) 26201: # 61 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: #define __THROW throw () 26201: #define __THROWNL throw () 26201: #define __NTH(fct) __LEAF_ATTR fct throw () 26201: #define __NTHNL(fct) fct throw () 26201: # 94 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: #define __glibc_clang_has_extension(ext) 0 26201: 26201: 26201: 26201: 26201: #define __P(args) args 26201: #define __PMT(args) args 26201: 26201: 26201: 26201: 26201: #define __CONCAT(x,y) x ## y 26201: #define __STRING(x) #x 26201: 26201: 26201: #define __ptr_t void * 26201: 26201: 26201: 26201: 26201: #define __BEGIN_DECLS extern "C" { 26201: #define __END_DECLS } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) 26201: #define __bos0(ptr) __builtin_object_size (ptr, 0) 26201: 26201: 26201: #define __warndecl(name,msg) extern void name (void) __attribute__((__warning__ (msg))) 26201: 26201: #define __warnattr(msg) __attribute__((__warning__ (msg))) 26201: #define __errordecl(name,msg) extern void name (void) __attribute__((__error__ (msg))) 26201: # 148 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: #define __flexarr [] 26201: #define __glibc_c99_flexarr_available 1 26201: # 174 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: #define __REDIRECT(name,proto,alias) name proto __asm__ (__ASMNAME (#alias)) 26201: 26201: #define __REDIRECT_NTH(name,proto,alias) name proto __THROW __asm__ (__ASMNAME (#alias)) 26201: 26201: #define __REDIRECT_NTHNL(name,proto,alias) name proto __THROWNL __asm__ (__ASMNAME (#alias)) 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname) 26201: #define __ASMNAME2(prefix,cname) __STRING (prefix) cname 26201: # 208 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: #define __attribute_malloc__ __attribute__ ((__malloc__)) 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __attribute_alloc_size__(params) __attribute__ ((__alloc_size__ params)) 26201: # 226 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: #define __attribute_pure__ __attribute__ ((__pure__)) 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __attribute_const__ __attribute__ ((__const__)) 26201: # 242 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: #define __attribute_used__ __attribute__ ((__used__)) 26201: #define __attribute_noinline__ __attribute__ ((__noinline__)) 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __attribute_deprecated__ __attribute__ ((__deprecated__)) 26201: # 261 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: #define __attribute_deprecated_msg__(msg) __attribute__ ((__deprecated__ (msg))) 26201: # 274 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: #define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x))) 26201: # 284 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: #define __attribute_format_strfmon__(a,b) __attribute__ ((__format__ (__strfmon__, a, b))) 26201: # 293 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: #define __nonnull(params) __attribute__ ((__nonnull__ params)) 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __attribute_warn_unused_result__ __attribute__ ((__warn_unused_result__)) 26201: 26201: 26201: #define __wur __attribute_warn_unused_result__ 26201: # 318 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: #undef __always_inline 26201: #define __always_inline __inline __attribute__ ((__always_inline__)) 26201: # 328 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: #define __attribute_artificial__ __attribute__ ((__artificial__)) 26201: # 346 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: #define __extern_inline extern __inline __attribute__ ((__gnu_inline__)) 26201: #define __extern_always_inline extern __always_inline __attribute__ ((__gnu_inline__)) 26201: # 356 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: #define __fortify_function __extern_always_inline __attribute_artificial__ 26201: 26201: 26201: 26201: 26201: 26201: #define __va_arg_pack() __builtin_va_arg_pack () 26201: #define __va_arg_pack_len() __builtin_va_arg_pack_len () 26201: # 390 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: #define __restrict_arr 26201: # 402 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: #define __glibc_unlikely(cond) __builtin_expect ((cond), 0) 26201: #define __glibc_likely(cond) __builtin_expect ((cond), 1) 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __glibc_has_attribute(attr) __has_attribute (attr) 26201: # 429 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: #define __attribute_nonstring__ __attribute__ ((__nonstring__)) 26201: 26201: 26201: 26201: 26201: 26201: #undef __attribute_copy__ 26201: 26201: 26201: 26201: #define __attribute_copy__(arg) __attribute__ ((__copy__ (arg))) 26201: # 452 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/wordsize.h" 1 3 26201: 26201: 26201: 26201: #define __WORDSIZE 64 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __WORDSIZE_TIME64_COMPAT32 1 26201: 26201: #define __SYSCALL_WORDSIZE 64 26201: # 453 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/long-double.h" 1 3 26201: # 21 "/usr/x86_64-linux-gnu/include/bits/long-double.h" 3 26201: #define __LONG_DOUBLE_USES_FLOAT128 0 26201: # 454 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 2 3 26201: # 475 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: #define __LDBL_REDIR1(name,proto,alias) name proto 26201: #define __LDBL_REDIR(name,proto) name proto 26201: #define __LDBL_REDIR1_NTH(name,proto,alias) name proto __THROW 26201: #define __LDBL_REDIR_NTH(name,proto) name proto __THROW 26201: #define __LDBL_REDIR_DECL(name) 26201: 26201: #define __REDIRECT_LDBL(name,proto,alias) __REDIRECT (name, proto, alias) 26201: #define __REDIRECT_NTH_LDBL(name,proto,alias) __REDIRECT_NTH (name, proto, alias) 26201: # 493 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: #define __glibc_macro_warning1(message) _Pragma (#message) 26201: #define __glibc_macro_warning(message) __glibc_macro_warning1 (GCC warning message) 26201: # 514 "/usr/x86_64-linux-gnu/include/sys/cdefs.h" 3 26201: #define __HAVE_GENERIC_SELECTION 0 26201: # 462 "/usr/x86_64-linux-gnu/include/features.h" 2 3 26201: # 477 "/usr/x86_64-linux-gnu/include/features.h" 3 26201: #define __USE_EXTERN_INLINES 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/gnu/stubs.h" 1 3 26201: # 10 "/usr/x86_64-linux-gnu/include/gnu/stubs.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/gnu/stubs-64.h" 1 3 26201: # 10 "/usr/x86_64-linux-gnu/include/gnu/stubs-64.h" 3 26201: #define __stub___compat_bdflush 26201: #define __stub_chflags 26201: #define __stub_fchflags 26201: #define __stub_gtty 26201: #define __stub_lchmod 26201: #define __stub_revoke 26201: #define __stub_setlogin 26201: #define __stub_sigreturn 26201: #define __stub_sstk 26201: #define __stub_stty 26201: # 11 "/usr/x86_64-linux-gnu/include/gnu/stubs.h" 2 3 26201: # 486 "/usr/x86_64-linux-gnu/include/features.h" 2 3 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/os_defines.h" 2 3 26201: 26201: 26201: 26201: 26201: 26201: #undef _GLIBCXX_HAVE_GETS 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC __GLIBC_PREREQ(2,23) 26201: 26201: 26201: 26201: #define _GLIBCXX_NATIVE_THREAD_ID pthread_self() 26201: # 523 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 2 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/cpu_defines.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/cpu_defines.h" 3 26201: #define _GLIBCXX_CPU_DEFINES 1 26201: # 526 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 2 3 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_PSEUDO_VISIBILITY(V) 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_WEAK_DEFINITION 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_USE_WEAK_REF __GXX_WEAK__ 26201: # 558 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_TXN_SAFE 26201: #define _GLIBCXX_TXN_SAFE_DYN 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_USE_STD_SPEC_FUNCS 1 26201: # 577 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_FAST_MATH 0 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __N(msgid) (msgid) 26201: 26201: 26201: #undef min 26201: #undef max 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_USE_C99_MATH _GLIBCXX11_USE_C99_MATH 26201: 26201: 26201: #define _GLIBCXX_USE_C99_COMPLEX _GLIBCXX11_USE_C99_COMPLEX 26201: 26201: 26201: #define _GLIBCXX_USE_C99_STDIO _GLIBCXX11_USE_C99_STDIO 26201: 26201: 26201: #define _GLIBCXX_USE_C99_STDLIB _GLIBCXX11_USE_C99_STDLIB 26201: 26201: 26201: #define _GLIBCXX_USE_C99_WCHAR _GLIBCXX11_USE_C99_WCHAR 26201: # 639 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_USE_FLOAT128 1 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP 1 26201: #define _GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE 1 26201: #define _GLIBCXX_HAVE_BUILTIN_LAUNDER 1 26201: #define _GLIBCXX_BUILTIN_IS_SAME_AS(T,U) __is_same_as(T, U) 26201: 26201: #define _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED 1 26201: # 680 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_USE_TBB_PAR_BACKEND __has_include() 26201: 26201: 26201: 26201: 26201: 26201: #define _PSTL_PAR_BACKEND_SERIAL 26201: 26201: 26201: #define _PSTL_ASSERT(_Condition) __glibcxx_assert(_Condition) 26201: #define _PSTL_ASSERT_MSG(_Condition,_Message) __glibcxx_assert(_Condition) 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/pstl/pstl_config.h" 1 3 26201: # 11 "/usr/x86_64-linux-gnu/include/c++/10/pstl/pstl_config.h" 3 26201: #define _PSTL_CONFIG_H 26201: 26201: 26201: #define _PSTL_VERSION 9000 26201: #define _PSTL_VERSION_MAJOR (_PSTL_VERSION / 1000) 26201: #define _PSTL_VERSION_MINOR ((_PSTL_VERSION % 1000) / 10) 26201: #define _PSTL_VERSION_PATCH (_PSTL_VERSION % 10) 26201: # 29 "/usr/x86_64-linux-gnu/include/c++/10/pstl/pstl_config.h" 3 26201: #define _PSTL_USAGE_WARNINGS 0 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define _PSTL_PRAGMA(x) _Pragma(#x) 26201: 26201: 26201: #define _PSTL_STRING_AUX(x) #x 26201: #define _PSTL_STRING(x) _PSTL_STRING_AUX(x) 26201: #define _PSTL_STRING_CONCAT(x,y) x #y 26201: 26201: 26201: 26201: #define _PSTL_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) 26201: # 54 "/usr/x86_64-linux-gnu/include/c++/10/pstl/pstl_config.h" 3 26201: #define _PSTL_PRAGMA_SIMD _PSTL_PRAGMA(omp simd) 26201: #define _PSTL_PRAGMA_DECLARE_SIMD _PSTL_PRAGMA(omp declare simd) 26201: #define _PSTL_PRAGMA_SIMD_REDUCTION(PRM) _PSTL_PRAGMA(omp simd reduction(PRM)) 26201: # 70 "/usr/x86_64-linux-gnu/include/c++/10/pstl/pstl_config.h" 3 26201: #define _PSTL_PRAGMA_FORCEINLINE 26201: 26201: 26201: 26201: #define _PSTL_PRAGMA_SIMD_SCAN(PRM) _PSTL_PRAGMA(omp simd reduction(inscan, PRM)) 26201: #define _PSTL_PRAGMA_SIMD_INCLUSIVE_SCAN(PRM) _PSTL_PRAGMA(omp scan inclusive(PRM)) 26201: #define _PSTL_PRAGMA_SIMD_EXCLUSIVE_SCAN(PRM) _PSTL_PRAGMA(omp scan exclusive(PRM)) 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define _PSTL_CPP17_EXECUTION_POLICIES_PRESENT (_MSC_VER >= 1912) 26201: 26201: #define _PSTL_CPP14_2RANGE_MISMATCH_EQUAL_PRESENT (_MSC_VER >= 1900 || __cplusplus >= 201300L || __cpp_lib_robust_nonmodifying_seq_ops == 201304) 26201: 26201: #define _PSTL_CPP14_MAKE_REVERSE_ITERATOR_PRESENT (_MSC_VER >= 1900 || __cplusplus >= 201402L || __cpp_lib_make_reverse_iterator == 201402) 26201: 26201: #define _PSTL_CPP14_INTEGER_SEQUENCE_PRESENT (_MSC_VER >= 1900 || __cplusplus >= 201402L) 26201: #define _PSTL_CPP14_VARIABLE_TEMPLATES_PRESENT (!__INTEL_COMPILER || __INTEL_COMPILER >= 1700) && (_MSC_FULL_VER >= 190023918 || __cplusplus >= 201402L) 26201: 26201: 26201: #define _PSTL_EARLYEXIT_PRESENT (__INTEL_COMPILER >= 1800) 26201: #define _PSTL_MONOTONIC_PRESENT (__INTEL_COMPILER >= 1800) 26201: 26201: 26201: #define _PSTL_UDR_PRESENT 1 26201: 26201: 26201: 26201: 26201: 26201: #define _PSTL_UDS_PRESENT 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define _PSTL_PRAGMA_SIMD_EARLYEXIT 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define _PSTL_PRAGMA_SIMD_ORDERED_MONOTONIC(PRM) 26201: #define _PSTL_PRAGMA_SIMD_ORDERED_MONOTONIC_2ARGS(PRM1,PRM2) 26201: # 130 "/usr/x86_64-linux-gnu/include/c++/10/pstl/pstl_config.h" 3 26201: #define _PSTL_PRAGMA_DECLARE_REDUCTION(NAME,OP) _PSTL_PRAGMA(omp declare reduction(NAME:OP : omp_out(omp_in)) initializer(omp_priv = omp_orig)) 26201: 26201: 26201: 26201: 26201: 26201: #define _PSTL_PRAGMA_VECTOR_UNALIGNED 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define _PSTL_USE_NONTEMPORAL_STORES_IF_ALLOWED 26201: 26201: 26201: 26201: 26201: 26201: #define _PSTL_PRAGMA_LOCATION " [Parallel STL message]: " 26201: 26201: 26201: #define _PSTL_PRAGMA_MESSAGE_IMPL(x) _PSTL_PRAGMA(message(_PSTL_STRING_CONCAT(_PSTL_PRAGMA_LOCATION, x))) 26201: 26201: 26201: 26201: 26201: 26201: #define _PSTL_PRAGMA_MESSAGE(x) 26201: #define _PSTL_PRAGMA_MESSAGE_POLICIES(x) 26201: 26201: 26201: 26201: #define _PSTL_CPP11_STD_ROTATE_BROKEN ((__GLIBCXX__ && __GLIBCXX__ < 20150716) || (_MSC_VER && _MSC_VER < 1800)) 26201: 26201: #define _PSTL_ICC_18_OMP_SIMD_BROKEN (__INTEL_COMPILER == 1800) 26201: # 693 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 2 3 26201: # 701 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_HAVE_ACOSF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_ACOSL 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_ALIGNED_ALLOC 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_ARPA_INET_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_ASINF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_ASINL 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_ATAN2F 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_ATAN2L 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_ATANF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_ATANL 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_ATOMIC_LOCK_POLICY 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_AT_QUICK_EXIT 1 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_HAVE_CEILF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_CEILL 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_COMPLEX_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_COSF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_COSHF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_COSHL 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_COSL 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_DIRENT_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_DLFCN_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_ENDIAN_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_EXCEPTION_PTR_SINCE_GCC46 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_EXECINFO_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_EXPF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_EXPL 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_FABSF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_FABSL 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_FCNTL_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_FENV_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_FINITE 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_FINITEF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_FINITEL 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_FLOAT_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_FLOORF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_FLOORL 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_FMODF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_FMODL 1 26201: # 827 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_HAVE_FREXPF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_FREXPL 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_GETIPINFO 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_GETS 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_HYPOT 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_HYPOTF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_HYPOTL 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_ICONV 1 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_HAVE_INT64_T 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_INT64_T_LONG 1 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_HAVE_INTTYPES_H 1 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_HAVE_ISINFF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_ISINFL 1 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_HAVE_ISNANF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_ISNANL 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_ISWBLANK 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_LC_MESSAGES 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_LDEXPF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_LDEXPL 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_LIBINTL_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_LIMIT_AS 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_LIMIT_DATA 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_LIMIT_FSIZE 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_LIMIT_RSS 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_LIMIT_VMEM 0 26201: 26201: 26201: #define _GLIBCXX_HAVE_LINK 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_LINUX_FUTEX 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_LINUX_RANDOM_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_LINUX_TYPES_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_LOCALE_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_LOG10F 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_LOG10L 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_LOGF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_LOGL 1 26201: # 947 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_HAVE_MBSTATE_T 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_MEMALIGN 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_MEMORY_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_MODF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_MODFF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_MODFL 1 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_HAVE_NETDB_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_NETINET_IN_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_NETINET_TCP_H 1 26201: # 983 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_HAVE_POLL 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_POLL_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_POSIX_MEMALIGN 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_POWF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_POWL 1 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_HAVE_QUICK_EXIT 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_READLINK 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_SETENV 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_SINCOS 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_SINCOSF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_SINCOSL 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_SINF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_SINHF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_SINHL 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_SINL 1 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_HAVE_SOCKATMARK 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_SQRTF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_SQRTL 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_STDALIGN_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_STDBOOL_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_STDINT_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_STDLIB_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_STRERROR_L 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_STRERROR_R 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_STRINGS_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_STRING_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_STRTOF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_STRTOLD 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_STRUCT_DIRENT_D_TYPE 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_STRXFRM_L 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_SYMLINK 1 26201: 26201: 26201: 26201: #define _GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT 1 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_HAVE_SYS_IOCTL_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_SYS_IPC_H 1 26201: # 1101 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_HAVE_SYS_PARAM_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_SYS_RESOURCE_H 1 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_HAVE_SYS_SEM_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_SYS_SOCKET_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_SYS_STATVFS_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_SYS_STAT_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_SYS_SYSINFO_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_SYS_TIME_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_SYS_TYPES_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_SYS_UIO_H 1 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_HAVE_S_ISREG 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_TANF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_TANHF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_TANHL 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_TANL 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_TGMATH_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_TIMESPEC_GET 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_TLS 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_TRUNCATE 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_UCHAR_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_UNISTD_H 1 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_HAVE_UTIME_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_VFWSCANF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_VSWSCANF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_VWSCANF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_WCHAR_H 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_WCSTOF 1 26201: 26201: 26201: #define _GLIBCXX_HAVE_WCTYPE_H 1 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_HAVE_WRITEV 1 26201: # 1395 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL 1 26201: 26201: 26201: #define _GLIBCXX_ICONV_CONST 26201: 26201: 26201: 26201: #define LT_OBJDIR ".libs/" 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_PACKAGE_BUGREPORT "" 26201: 26201: 26201: #define _GLIBCXX_PACKAGE_NAME "package-unused" 26201: 26201: 26201: #define _GLIBCXX_PACKAGE_STRING "package-unused version-unused" 26201: 26201: 26201: #define _GLIBCXX_PACKAGE_TARNAME "libstdc++" 26201: 26201: 26201: #define _GLIBCXX_PACKAGE_URL "" 26201: 26201: 26201: #define _GLIBCXX_PACKAGE__GLIBCXX_VERSION "version-unused" 26201: # 1441 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define STDC_HEADERS 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_DARWIN_USE_64_BIT_INODE 1 26201: # 1457 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX11_USE_C99_COMPLEX 1 26201: 26201: 26201: 26201: #define _GLIBCXX11_USE_C99_MATH 1 26201: 26201: 26201: 26201: #define _GLIBCXX11_USE_C99_STDIO 1 26201: 26201: 26201: 26201: #define _GLIBCXX11_USE_C99_STDLIB 1 26201: 26201: 26201: 26201: #define _GLIBCXX11_USE_C99_WCHAR 1 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX98_USE_C99_COMPLEX 1 26201: 26201: 26201: 26201: #define _GLIBCXX98_USE_C99_MATH 1 26201: 26201: 26201: 26201: #define _GLIBCXX98_USE_C99_STDIO 1 26201: 26201: 26201: 26201: #define _GLIBCXX98_USE_C99_STDLIB 1 26201: 26201: 26201: 26201: #define _GLIBCXX98_USE_C99_WCHAR 1 26201: 26201: 26201: #define _GLIBCXX_ATOMIC_BUILTINS 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_FULLY_DYNAMIC_STRING 0 26201: 26201: 26201: #define _GLIBCXX_HAS_GTHREADS 1 26201: 26201: 26201: #define _GLIBCXX_HOSTED 1 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_MANGLE_SIZE_T m 26201: # 1524 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_RES_LIMITS 1 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_STDIO_EOF -1 26201: 26201: 26201: #define _GLIBCXX_STDIO_SEEK_CUR 1 26201: 26201: 26201: #define _GLIBCXX_STDIO_SEEK_END 2 26201: 26201: 26201: #define _GLIBCXX_SYMVER 1 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_SYMVER_GNU 1 26201: # 1555 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++config.h" 3 26201: #define _GLIBCXX_USE_C11_UCHAR_CXX11 1 26201: 26201: 26201: 26201: #define _GLIBCXX_USE_C99 1 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_USE_C99_COMPLEX_TR1 1 26201: 26201: 26201: 26201: #define _GLIBCXX_USE_C99_CTYPE_TR1 1 26201: 26201: 26201: 26201: #define _GLIBCXX_USE_C99_FENV_TR1 1 26201: 26201: 26201: 26201: #define _GLIBCXX_USE_C99_INTTYPES_TR1 1 26201: 26201: 26201: 26201: #define _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 1 26201: 26201: 26201: 26201: #define _GLIBCXX_USE_C99_MATH_TR1 1 26201: 26201: 26201: 26201: #define _GLIBCXX_USE_C99_STDINT_TR1 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_USE_CLOCK_MONOTONIC 1 26201: 26201: 26201: #define _GLIBCXX_USE_CLOCK_REALTIME 1 26201: 26201: 26201: 26201: #define _GLIBCXX_USE_DECIMAL_FLOAT 1 26201: 26201: 26201: 26201: #define _GLIBCXX_USE_DEV_RANDOM 1 26201: 26201: 26201: #define _GLIBCXX_USE_FCHMOD 1 26201: 26201: 26201: #define _GLIBCXX_USE_FCHMODAT 1 26201: 26201: 26201: #define _GLIBCXX_USE_GETTIMEOFDAY 1 26201: 26201: 26201: #define _GLIBCXX_USE_GET_NPROCS 1 26201: 26201: 26201: #define _GLIBCXX_USE_INT128 1 26201: 26201: 26201: #define _GLIBCXX_USE_LFS 1 26201: 26201: 26201: #define _GLIBCXX_USE_LONG_LONG 1 26201: 26201: 26201: #define _GLIBCXX_USE_LSTAT 1 26201: 26201: 26201: #define _GLIBCXX_USE_NANOSLEEP 1 26201: 26201: 26201: #define _GLIBCXX_USE_NLS 1 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_USE_PTHREAD_COND_CLOCKWAIT 1 26201: 26201: 26201: #define _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK 1 26201: 26201: 26201: 26201: #define _GLIBCXX_USE_PTHREAD_RWLOCK_CLOCKLOCK 1 26201: 26201: 26201: #define _GLIBCXX_USE_PTHREAD_RWLOCK_T 1 26201: 26201: 26201: 26201: #define _GLIBCXX_USE_RANDOM_TR1 1 26201: 26201: 26201: #define _GLIBCXX_USE_REALPATH 1 26201: 26201: 26201: #define _GLIBCXX_USE_SCHED_YIELD 1 26201: 26201: 26201: #define _GLIBCXX_USE_SC_NPROCESSORS_ONLN 1 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_USE_SENDFILE 1 26201: 26201: 26201: #define _GLIBCXX_USE_ST_MTIM 1 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_USE_TMPNAM 1 26201: 26201: 26201: #define _GLIBCXX_USE_UTIME 1 26201: 26201: 26201: 26201: #define _GLIBCXX_USE_UTIMENSAT 1 26201: 26201: 26201: #define _GLIBCXX_USE_WCHAR_T 1 26201: 26201: 26201: #define _GLIBCXX_VERBOSE 1 26201: 26201: 26201: #define _GLIBCXX_X86_RDRAND 1 26201: 26201: 26201: #define _GLIBCXX_X86_RDSEED 1 26201: 26201: 26201: #define _GTHREAD_USE_MUTEX_TIMEDLOCK 1 26201: # 69 "/usr/x86_64-linux-gnu/include/c++/10/utility" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_relops.h" 1 3 26201: # 65 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_relops.h" 3 26201: #define _STL_RELOPS_H 1 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: namespace rel_ops 26201: { 26201: # 85 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_relops.h" 3 26201: template 26201: inline bool 26201: operator!=(const _Tp& __x, const _Tp& __y) 26201: { return !(__x == __y); } 26201: # 98 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_relops.h" 3 26201: template 26201: inline bool 26201: operator>(const _Tp& __x, const _Tp& __y) 26201: { return __y < __x; } 26201: # 111 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_relops.h" 3 26201: template 26201: inline bool 26201: operator<=(const _Tp& __x, const _Tp& __y) 26201: { return !(__y < __x); } 26201: # 124 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_relops.h" 3 26201: template 26201: inline bool 26201: operator>=(const _Tp& __x, const _Tp& __y) 26201: { return !(__x < __y); } 26201: } 26201: 26201: 26201: } 26201: # 70 "/usr/x86_64-linux-gnu/include/c++/10/utility" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_pair.h" 1 3 26201: # 57 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_pair.h" 3 26201: #define _STL_PAIR_H 1 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/move.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/move.h" 3 26201: #define _MOVE_H 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline constexpr _Tp* 26201: __addressof(_Tp& __r) noexcept 26201: { return __builtin_addressof(__r); } 26201: 26201: 26201: 26201: 26201: } 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/type_traits" 1 3 26201: # 30 "/usr/x86_64-linux-gnu/include/c++/10/type_traits" 3 26201: #define _GLIBCXX_TYPE_TRAITS 1 26201: 26201: 26201: # 33 "/usr/x86_64-linux-gnu/include/c++/10/type_traits" 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 56 "/usr/x86_64-linux-gnu/include/c++/10/type_traits" 3 26201: template 26201: struct integral_constant 26201: { 26201: static constexpr _Tp value = __v; 26201: typedef _Tp value_type; 26201: typedef integral_constant<_Tp, __v> type; 26201: constexpr operator value_type() const noexcept { return value; } 26201: 26201: 26201: #define __cpp_lib_integral_constant_callable 201304 26201: 26201: constexpr value_type operator()() const noexcept { return value; } 26201: 26201: }; 26201: 26201: template 26201: constexpr _Tp integral_constant<_Tp, __v>::value; 26201: 26201: 26201: typedef integral_constant true_type; 26201: 26201: 26201: typedef integral_constant false_type; 26201: 26201: template 26201: using __bool_constant = integral_constant; 26201: 26201: 26201: #define __cpp_lib_bool_constant 201505 26201: template 26201: using bool_constant = integral_constant; 26201: 26201: 26201: 26201: 26201: template 26201: struct conditional; 26201: 26201: template 26201: struct __type_identity 26201: { using type = _Type; }; 26201: 26201: template 26201: using __type_identity_t = typename __type_identity<_Tp>::type; 26201: 26201: template 26201: struct __or_; 26201: 26201: template<> 26201: struct __or_<> 26201: : public false_type 26201: { }; 26201: 26201: template 26201: struct __or_<_B1> 26201: : public _B1 26201: { }; 26201: 26201: template 26201: struct __or_<_B1, _B2> 26201: : public conditional<_B1::value, _B1, _B2>::type 26201: { }; 26201: 26201: template 26201: struct __or_<_B1, _B2, _B3, _Bn...> 26201: : public conditional<_B1::value, _B1, __or_<_B2, _B3, _Bn...>>::type 26201: { }; 26201: 26201: template 26201: struct __and_; 26201: 26201: template<> 26201: struct __and_<> 26201: : public true_type 26201: { }; 26201: 26201: template 26201: struct __and_<_B1> 26201: : public _B1 26201: { }; 26201: 26201: template 26201: struct __and_<_B1, _B2> 26201: : public conditional<_B1::value, _B2, _B1>::type 26201: { }; 26201: 26201: template 26201: struct __and_<_B1, _B2, _B3, _Bn...> 26201: : public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type 26201: { }; 26201: 26201: template 26201: struct __not_ 26201: : public __bool_constant 26201: { }; 26201: 26201: 26201: 26201: template 26201: inline constexpr bool __or_v = __or_<_Bn...>::value; 26201: template 26201: inline constexpr bool __and_v = __and_<_Bn...>::value; 26201: 26201: #define __cpp_lib_logical_traits 201510 26201: 26201: template 26201: struct conjunction 26201: : __and_<_Bn...> 26201: { }; 26201: 26201: template 26201: struct disjunction 26201: : __or_<_Bn...> 26201: { }; 26201: 26201: template 26201: struct negation 26201: : __not_<_Pp> 26201: { }; 26201: 26201: template 26201: inline constexpr bool conjunction_v = conjunction<_Bn...>::value; 26201: 26201: template 26201: inline constexpr bool disjunction_v = disjunction<_Bn...>::value; 26201: 26201: template 26201: inline constexpr bool negation_v = negation<_Pp>::value; 26201: 26201: 26201: 26201: 26201: template 26201: struct is_reference; 26201: template 26201: struct is_function; 26201: template 26201: struct is_void; 26201: template 26201: struct __is_array_unknown_bounds; 26201: 26201: 26201: 26201: 26201: template 26201: constexpr true_type __is_complete_or_unbounded(__type_identity<_Tp>) 26201: { return {}; } 26201: 26201: template 26201: constexpr typename __or_< 26201: is_reference<_NestedType>, 26201: is_function<_NestedType>, 26201: is_void<_NestedType>, 26201: __is_array_unknown_bounds<_NestedType> 26201: >::type __is_complete_or_unbounded(_TypeIdentity) 26201: { return {}; } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct __success_type 26201: { typedef _Tp type; }; 26201: 26201: struct __failure_type 26201: { }; 26201: 26201: template 26201: struct remove_cv; 26201: 26201: 26201: template 26201: using __remove_cv_t = typename remove_cv<_Tp>::type; 26201: 26201: template 26201: struct is_const; 26201: 26201: 26201: 26201: template 26201: struct __is_void_helper 26201: : public false_type { }; 26201: 26201: template<> 26201: struct __is_void_helper 26201: : public true_type { }; 26201: 26201: 26201: template 26201: struct is_void 26201: : public __is_void_helper<__remove_cv_t<_Tp>>::type 26201: { }; 26201: 26201: template 26201: struct __is_integral_helper 26201: : public false_type { }; 26201: 26201: template<> 26201: struct __is_integral_helper 26201: : public true_type { }; 26201: 26201: template<> 26201: struct __is_integral_helper 26201: : public true_type { }; 26201: 26201: template<> 26201: struct __is_integral_helper 26201: : public true_type { }; 26201: 26201: template<> 26201: struct __is_integral_helper 26201: : public true_type { }; 26201: 26201: 26201: template<> 26201: struct __is_integral_helper 26201: : public true_type { }; 26201: # 284 "/usr/x86_64-linux-gnu/include/c++/10/type_traits" 3 26201: template<> 26201: struct __is_integral_helper 26201: : public true_type { }; 26201: 26201: template<> 26201: struct __is_integral_helper 26201: : public true_type { }; 26201: 26201: template<> 26201: struct __is_integral_helper 26201: : public true_type { }; 26201: 26201: template<> 26201: struct __is_integral_helper 26201: : public true_type { }; 26201: 26201: template<> 26201: struct __is_integral_helper 26201: : public true_type { }; 26201: 26201: template<> 26201: struct __is_integral_helper 26201: : public true_type { }; 26201: 26201: template<> 26201: struct __is_integral_helper 26201: : public true_type { }; 26201: 26201: template<> 26201: struct __is_integral_helper 26201: : public true_type { }; 26201: 26201: template<> 26201: struct __is_integral_helper 26201: : public true_type { }; 26201: 26201: template<> 26201: struct __is_integral_helper 26201: : public true_type { }; 26201: # 364 "/usr/x86_64-linux-gnu/include/c++/10/type_traits" 3 26201: template 26201: struct is_integral 26201: : public __is_integral_helper<__remove_cv_t<_Tp>>::type 26201: { }; 26201: 26201: template 26201: struct __is_floating_point_helper 26201: : public false_type { }; 26201: 26201: template<> 26201: struct __is_floating_point_helper 26201: : public true_type { }; 26201: 26201: template<> 26201: struct __is_floating_point_helper 26201: : public true_type { }; 26201: 26201: template<> 26201: struct __is_floating_point_helper 26201: : public true_type { }; 26201: # 392 "/usr/x86_64-linux-gnu/include/c++/10/type_traits" 3 26201: template 26201: struct is_floating_point 26201: : public __is_floating_point_helper<__remove_cv_t<_Tp>>::type 26201: { }; 26201: 26201: 26201: template 26201: struct is_array 26201: : public false_type { }; 26201: 26201: template 26201: struct is_array<_Tp[_Size]> 26201: : public true_type { }; 26201: 26201: template 26201: struct is_array<_Tp[]> 26201: : public true_type { }; 26201: 26201: template 26201: struct __is_pointer_helper 26201: : public false_type { }; 26201: 26201: template 26201: struct __is_pointer_helper<_Tp*> 26201: : public true_type { }; 26201: 26201: 26201: template 26201: struct is_pointer 26201: : public __is_pointer_helper<__remove_cv_t<_Tp>>::type 26201: { }; 26201: 26201: 26201: template 26201: struct is_lvalue_reference 26201: : public false_type { }; 26201: 26201: template 26201: struct is_lvalue_reference<_Tp&> 26201: : public true_type { }; 26201: 26201: 26201: template 26201: struct is_rvalue_reference 26201: : public false_type { }; 26201: 26201: template 26201: struct is_rvalue_reference<_Tp&&> 26201: : public true_type { }; 26201: 26201: template 26201: struct __is_member_object_pointer_helper 26201: : public false_type { }; 26201: 26201: template 26201: struct __is_member_object_pointer_helper<_Tp _Cp::*> 26201: : public __not_>::type { }; 26201: 26201: 26201: template 26201: struct is_member_object_pointer 26201: : public __is_member_object_pointer_helper<__remove_cv_t<_Tp>>::type 26201: { }; 26201: 26201: template 26201: struct __is_member_function_pointer_helper 26201: : public false_type { }; 26201: 26201: template 26201: struct __is_member_function_pointer_helper<_Tp _Cp::*> 26201: : public is_function<_Tp>::type { }; 26201: 26201: 26201: template 26201: struct is_member_function_pointer 26201: : public __is_member_function_pointer_helper<__remove_cv_t<_Tp>>::type 26201: { }; 26201: 26201: 26201: template 26201: struct is_enum 26201: : public integral_constant 26201: { }; 26201: 26201: 26201: template 26201: struct is_union 26201: : public integral_constant 26201: { }; 26201: 26201: 26201: template 26201: struct is_class 26201: : public integral_constant 26201: { }; 26201: 26201: 26201: template 26201: struct is_function 26201: : public __bool_constant::value> { }; 26201: 26201: template 26201: struct is_function<_Tp&> 26201: : public false_type { }; 26201: 26201: template 26201: struct is_function<_Tp&&> 26201: : public false_type { }; 26201: 26201: #define __cpp_lib_is_null_pointer 201309 26201: 26201: template 26201: struct __is_null_pointer_helper 26201: : public false_type { }; 26201: 26201: template<> 26201: struct __is_null_pointer_helper 26201: : public true_type { }; 26201: 26201: 26201: template 26201: struct is_null_pointer 26201: : public __is_null_pointer_helper<__remove_cv_t<_Tp>>::type 26201: { }; 26201: 26201: 26201: template 26201: struct __is_nullptr_t 26201: : public is_null_pointer<_Tp> 26201: { } __attribute__ ((__deprecated__ ("use '" "std::is_null_pointer" "' instead"))); 26201: 26201: 26201: 26201: 26201: template 26201: struct is_reference 26201: : public __or_, 26201: is_rvalue_reference<_Tp>>::type 26201: { }; 26201: 26201: 26201: template 26201: struct is_arithmetic 26201: : public __or_, is_floating_point<_Tp>>::type 26201: { }; 26201: 26201: 26201: template 26201: struct is_fundamental 26201: : public __or_, is_void<_Tp>, 26201: is_null_pointer<_Tp>>::type 26201: { }; 26201: 26201: 26201: template 26201: struct is_object 26201: : public __not_<__or_, is_reference<_Tp>, 26201: is_void<_Tp>>>::type 26201: { }; 26201: 26201: template 26201: struct is_member_pointer; 26201: 26201: 26201: template 26201: struct is_scalar 26201: : public __or_, is_enum<_Tp>, is_pointer<_Tp>, 26201: is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type 26201: { }; 26201: 26201: 26201: template 26201: struct is_compound 26201: : public __not_>::type { }; 26201: 26201: template 26201: struct __is_member_pointer_helper 26201: : public false_type { }; 26201: 26201: template 26201: struct __is_member_pointer_helper<_Tp _Cp::*> 26201: : public true_type { }; 26201: 26201: 26201: template 26201: struct is_member_pointer 26201: : public __is_member_pointer_helper<__remove_cv_t<_Tp>>::type 26201: { }; 26201: 26201: template 26201: struct is_same; 26201: 26201: template 26201: using __is_one_of = __or_...>; 26201: 26201: 26201: template 26201: using __is_signed_integer = __is_one_of<__remove_cv_t<_Tp>, 26201: signed char, signed short, signed int, signed long, 26201: signed long long 26201: # 604 "/usr/x86_64-linux-gnu/include/c++/10/type_traits" 3 26201: >; 26201: 26201: 26201: template 26201: using __is_unsigned_integer = __is_one_of<__remove_cv_t<_Tp>, 26201: unsigned char, unsigned short, unsigned int, unsigned long, 26201: unsigned long long 26201: # 623 "/usr/x86_64-linux-gnu/include/c++/10/type_traits" 3 26201: >; 26201: 26201: 26201: template 26201: using __is_standard_integer 26201: = __or_<__is_signed_integer<_Tp>, __is_unsigned_integer<_Tp>>; 26201: 26201: 26201: template using __void_t = void; 26201: 26201: 26201: 26201: template 26201: struct __is_referenceable 26201: : public false_type 26201: { }; 26201: 26201: template 26201: struct __is_referenceable<_Tp, __void_t<_Tp&>> 26201: : public true_type 26201: { }; 26201: 26201: 26201: 26201: 26201: template 26201: struct is_const 26201: : public false_type { }; 26201: 26201: template 26201: struct is_const<_Tp const> 26201: : public true_type { }; 26201: 26201: 26201: template 26201: struct is_volatile 26201: : public false_type { }; 26201: 26201: template 26201: struct is_volatile<_Tp volatile> 26201: : public true_type { }; 26201: 26201: 26201: template 26201: struct is_trivial 26201: : public integral_constant 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: 26201: template 26201: struct is_trivially_copyable 26201: : public integral_constant 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: 26201: template 26201: struct is_standard_layout 26201: : public integral_constant 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: 26201: 26201: template 26201: struct 26201: 26201: is_pod 26201: : public integral_constant 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: 26201: template 26201: struct is_literal_type 26201: : public integral_constant 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: 26201: template 26201: struct is_empty 26201: : public integral_constant 26201: { }; 26201: 26201: 26201: template 26201: struct is_polymorphic 26201: : public integral_constant 26201: { }; 26201: 26201: 26201: #define __cpp_lib_is_final 201402L 26201: 26201: template 26201: struct is_final 26201: : public integral_constant 26201: { }; 26201: 26201: 26201: 26201: template 26201: struct is_abstract 26201: : public integral_constant 26201: { }; 26201: 26201: template::value> 26201: struct __is_signed_helper 26201: : public false_type { }; 26201: 26201: template 26201: struct __is_signed_helper<_Tp, true> 26201: : public integral_constant 26201: { }; 26201: 26201: 26201: template 26201: struct is_signed 26201: : public __is_signed_helper<_Tp>::type 26201: { }; 26201: 26201: 26201: template 26201: struct is_unsigned 26201: : public __and_, __not_>> 26201: { }; 26201: # 770 "/usr/x86_64-linux-gnu/include/c++/10/type_traits" 3 26201: template 26201: _Up 26201: __declval(int); 26201: 26201: template 26201: _Tp 26201: __declval(long); 26201: 26201: template 26201: auto declval() noexcept -> decltype(__declval<_Tp>(0)); 26201: 26201: template 26201: struct extent; 26201: 26201: template 26201: struct remove_all_extents; 26201: 26201: template 26201: struct __is_array_known_bounds 26201: : public integral_constant::value > 0)> 26201: { }; 26201: 26201: template 26201: struct __is_array_unknown_bounds 26201: : public __and_, __not_>> 26201: { }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: struct __do_is_destructible_impl 26201: { 26201: template().~_Tp())> 26201: static true_type __test(int); 26201: 26201: template 26201: static false_type __test(...); 26201: }; 26201: 26201: template 26201: struct __is_destructible_impl 26201: : public __do_is_destructible_impl 26201: { 26201: typedef decltype(__test<_Tp>(0)) type; 26201: }; 26201: 26201: template, 26201: __is_array_unknown_bounds<_Tp>, 26201: is_function<_Tp>>::value, 26201: bool = __or_, is_scalar<_Tp>>::value> 26201: struct __is_destructible_safe; 26201: 26201: template 26201: struct __is_destructible_safe<_Tp, false, false> 26201: : public __is_destructible_impl::type>::type 26201: { }; 26201: 26201: template 26201: struct __is_destructible_safe<_Tp, true, false> 26201: : public false_type { }; 26201: 26201: template 26201: struct __is_destructible_safe<_Tp, false, true> 26201: : public true_type { }; 26201: 26201: 26201: template 26201: struct is_destructible 26201: : public __is_destructible_safe<_Tp>::type 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: struct __do_is_nt_destructible_impl 26201: { 26201: template 26201: static __bool_constant().~_Tp())> 26201: __test(int); 26201: 26201: template 26201: static false_type __test(...); 26201: }; 26201: 26201: template 26201: struct __is_nt_destructible_impl 26201: : public __do_is_nt_destructible_impl 26201: { 26201: typedef decltype(__test<_Tp>(0)) type; 26201: }; 26201: 26201: template, 26201: __is_array_unknown_bounds<_Tp>, 26201: is_function<_Tp>>::value, 26201: bool = __or_, is_scalar<_Tp>>::value> 26201: struct __is_nt_destructible_safe; 26201: 26201: template 26201: struct __is_nt_destructible_safe<_Tp, false, false> 26201: : public __is_nt_destructible_impl::type>::type 26201: { }; 26201: 26201: template 26201: struct __is_nt_destructible_safe<_Tp, true, false> 26201: : public false_type { }; 26201: 26201: template 26201: struct __is_nt_destructible_safe<_Tp, false, true> 26201: : public true_type { }; 26201: 26201: 26201: template 26201: struct is_nothrow_destructible 26201: : public __is_nt_destructible_safe<_Tp>::type 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: template 26201: struct __is_constructible_impl 26201: : public __bool_constant<__is_constructible(_Tp, _Args...)> 26201: { }; 26201: 26201: 26201: template 26201: struct is_constructible 26201: : public __is_constructible_impl<_Tp, _Args...> 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: 26201: template 26201: struct is_default_constructible 26201: : public __is_constructible_impl<_Tp>::type 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: template::value> 26201: struct __is_copy_constructible_impl; 26201: 26201: template 26201: struct __is_copy_constructible_impl<_Tp, false> 26201: : public false_type { }; 26201: 26201: template 26201: struct __is_copy_constructible_impl<_Tp, true> 26201: : public __is_constructible_impl<_Tp, const _Tp&> 26201: { }; 26201: 26201: 26201: template 26201: struct is_copy_constructible 26201: : public __is_copy_constructible_impl<_Tp> 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: template::value> 26201: struct __is_move_constructible_impl; 26201: 26201: template 26201: struct __is_move_constructible_impl<_Tp, false> 26201: : public false_type { }; 26201: 26201: template 26201: struct __is_move_constructible_impl<_Tp, true> 26201: : public __is_constructible_impl<_Tp, _Tp&&> 26201: { }; 26201: 26201: 26201: template 26201: struct is_move_constructible 26201: : public __is_move_constructible_impl<_Tp> 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: template 26201: struct __is_nt_constructible_impl 26201: : public false_type 26201: { }; 26201: 26201: template 26201: struct __is_nt_constructible_impl 26201: : public __bool_constant()...))> 26201: { }; 26201: 26201: template 26201: struct __is_nt_constructible_impl 26201: : public __bool_constant(std::declval<_Arg>()))> 26201: { }; 26201: 26201: template 26201: struct __is_nt_constructible_impl 26201: : public __bool_constant 26201: { }; 26201: 26201: template 26201: struct __is_nt_constructible_impl 26201: : public __bool_constant::type())> 26201: { }; 26201: # 1001 "/usr/x86_64-linux-gnu/include/c++/10/type_traits" 3 26201: template 26201: using __is_nothrow_constructible_impl 26201: = __is_nt_constructible_impl<__is_constructible(_Tp, _Args...), 26201: _Tp, _Args...>; 26201: 26201: 26201: template 26201: struct is_nothrow_constructible 26201: : public __is_nothrow_constructible_impl<_Tp, _Args...>::type 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: 26201: template 26201: struct is_nothrow_default_constructible 26201: : public __is_nothrow_constructible_impl<_Tp>::type 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: 26201: template::value> 26201: struct __is_nothrow_copy_constructible_impl; 26201: 26201: template 26201: struct __is_nothrow_copy_constructible_impl<_Tp, false> 26201: : public false_type { }; 26201: 26201: template 26201: struct __is_nothrow_copy_constructible_impl<_Tp, true> 26201: : public __is_nothrow_constructible_impl<_Tp, const _Tp&> 26201: { }; 26201: 26201: 26201: template 26201: struct is_nothrow_copy_constructible 26201: : public __is_nothrow_copy_constructible_impl<_Tp>::type 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: template::value> 26201: struct __is_nothrow_move_constructible_impl; 26201: 26201: template 26201: struct __is_nothrow_move_constructible_impl<_Tp, false> 26201: : public false_type { }; 26201: 26201: template 26201: struct __is_nothrow_move_constructible_impl<_Tp, true> 26201: : public __is_nothrow_constructible_impl<_Tp, _Tp&&> 26201: { }; 26201: 26201: 26201: template 26201: struct is_nothrow_move_constructible 26201: : public __is_nothrow_move_constructible_impl<_Tp>::type 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: 26201: template 26201: struct is_assignable 26201: : public __bool_constant<__is_assignable(_Tp, _Up)> 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: template::value> 26201: struct __is_copy_assignable_impl; 26201: 26201: template 26201: struct __is_copy_assignable_impl<_Tp, false> 26201: : public false_type { }; 26201: 26201: template 26201: struct __is_copy_assignable_impl<_Tp, true> 26201: : public __bool_constant<__is_assignable(_Tp&, const _Tp&)> 26201: { }; 26201: 26201: 26201: template 26201: struct is_copy_assignable 26201: : public __is_copy_assignable_impl<_Tp>::type 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: template::value> 26201: struct __is_move_assignable_impl; 26201: 26201: template 26201: struct __is_move_assignable_impl<_Tp, false> 26201: : public false_type { }; 26201: 26201: template 26201: struct __is_move_assignable_impl<_Tp, true> 26201: : public __bool_constant<__is_assignable(_Tp&, _Tp&&)> 26201: { }; 26201: 26201: 26201: template 26201: struct is_move_assignable 26201: : public __is_move_assignable_impl<_Tp>::type 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: template 26201: struct __is_nt_assignable_impl 26201: : public integral_constant() = declval<_Up>())> 26201: { }; 26201: 26201: template 26201: struct __is_nothrow_assignable_impl 26201: : public __and_<__bool_constant<__is_assignable(_Tp, _Up)>, 26201: __is_nt_assignable_impl<_Tp, _Up>> 26201: { }; 26201: 26201: 26201: template 26201: struct is_nothrow_assignable 26201: : public __is_nothrow_assignable_impl<_Tp, _Up> 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: template::value> 26201: struct __is_nt_copy_assignable_impl; 26201: 26201: template 26201: struct __is_nt_copy_assignable_impl<_Tp, false> 26201: : public false_type { }; 26201: 26201: template 26201: struct __is_nt_copy_assignable_impl<_Tp, true> 26201: : public __is_nothrow_assignable_impl<_Tp&, const _Tp&> 26201: { }; 26201: 26201: 26201: template 26201: struct is_nothrow_copy_assignable 26201: : public __is_nt_copy_assignable_impl<_Tp> 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: template::value> 26201: struct __is_nt_move_assignable_impl; 26201: 26201: template 26201: struct __is_nt_move_assignable_impl<_Tp, false> 26201: : public false_type { }; 26201: 26201: template 26201: struct __is_nt_move_assignable_impl<_Tp, true> 26201: : public __is_nothrow_assignable_impl<_Tp&, _Tp&&> 26201: { }; 26201: 26201: 26201: template 26201: struct is_nothrow_move_assignable 26201: : public __is_nt_move_assignable_impl<_Tp> 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: 26201: template 26201: struct is_trivially_constructible 26201: : public __bool_constant<__is_trivially_constructible(_Tp, _Args...)> 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: 26201: template 26201: struct is_trivially_default_constructible 26201: : public __bool_constant<__is_trivially_constructible(_Tp)> 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: struct __do_is_implicitly_default_constructible_impl 26201: { 26201: template 26201: static void __helper(const _Tp&); 26201: 26201: template 26201: static true_type __test(const _Tp&, 26201: decltype(__helper({}))* = 0); 26201: 26201: static false_type __test(...); 26201: }; 26201: 26201: template 26201: struct __is_implicitly_default_constructible_impl 26201: : public __do_is_implicitly_default_constructible_impl 26201: { 26201: typedef decltype(__test(declval<_Tp>())) type; 26201: }; 26201: 26201: template 26201: struct __is_implicitly_default_constructible_safe 26201: : public __is_implicitly_default_constructible_impl<_Tp>::type 26201: { }; 26201: 26201: template 26201: struct __is_implicitly_default_constructible 26201: : public __and_<__is_constructible_impl<_Tp>, 26201: __is_implicitly_default_constructible_safe<_Tp>> 26201: { }; 26201: 26201: template::value> 26201: struct __is_trivially_copy_constructible_impl; 26201: 26201: template 26201: struct __is_trivially_copy_constructible_impl<_Tp, false> 26201: : public false_type { }; 26201: 26201: template 26201: struct __is_trivially_copy_constructible_impl<_Tp, true> 26201: : public __and_<__is_copy_constructible_impl<_Tp>, 26201: integral_constant> 26201: { }; 26201: 26201: 26201: template 26201: struct is_trivially_copy_constructible 26201: : public __is_trivially_copy_constructible_impl<_Tp> 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: template::value> 26201: struct __is_trivially_move_constructible_impl; 26201: 26201: template 26201: struct __is_trivially_move_constructible_impl<_Tp, false> 26201: : public false_type { }; 26201: 26201: template 26201: struct __is_trivially_move_constructible_impl<_Tp, true> 26201: : public __and_<__is_move_constructible_impl<_Tp>, 26201: integral_constant> 26201: { }; 26201: 26201: 26201: template 26201: struct is_trivially_move_constructible 26201: : public __is_trivially_move_constructible_impl<_Tp> 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: 26201: template 26201: struct is_trivially_assignable 26201: : public __bool_constant<__is_trivially_assignable(_Tp, _Up)> 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: template::value> 26201: struct __is_trivially_copy_assignable_impl; 26201: 26201: template 26201: struct __is_trivially_copy_assignable_impl<_Tp, false> 26201: : public false_type { }; 26201: 26201: template 26201: struct __is_trivially_copy_assignable_impl<_Tp, true> 26201: : public __bool_constant<__is_trivially_assignable(_Tp&, const _Tp&)> 26201: { }; 26201: 26201: 26201: template 26201: struct is_trivially_copy_assignable 26201: : public __is_trivially_copy_assignable_impl<_Tp> 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: template::value> 26201: struct __is_trivially_move_assignable_impl; 26201: 26201: template 26201: struct __is_trivially_move_assignable_impl<_Tp, false> 26201: : public false_type { }; 26201: 26201: template 26201: struct __is_trivially_move_assignable_impl<_Tp, true> 26201: : public __bool_constant<__is_trivially_assignable(_Tp&, _Tp&&)> 26201: { }; 26201: 26201: 26201: template 26201: struct is_trivially_move_assignable 26201: : public __is_trivially_move_assignable_impl<_Tp> 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: 26201: template 26201: struct is_trivially_destructible 26201: : public __and_<__is_destructible_safe<_Tp>, 26201: __bool_constant<__has_trivial_destructor(_Tp)>> 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: 26201: 26201: template 26201: struct has_virtual_destructor 26201: : public integral_constant 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct alignment_of 26201: : public integral_constant 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: 26201: template 26201: struct rank 26201: : public integral_constant { }; 26201: 26201: template 26201: struct rank<_Tp[_Size]> 26201: : public integral_constant::value> { }; 26201: 26201: template 26201: struct rank<_Tp[]> 26201: : public integral_constant::value> { }; 26201: 26201: 26201: template 26201: struct extent 26201: : public integral_constant { }; 26201: 26201: template 26201: struct extent<_Tp[_Size], _Uint> 26201: : public integral_constant::value> 26201: { }; 26201: 26201: template 26201: struct extent<_Tp[], _Uint> 26201: : public integral_constant::value> 26201: { }; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct is_same 26201: 26201: : public integral_constant 26201: 26201: 26201: 26201: { }; 26201: # 1410 "/usr/x86_64-linux-gnu/include/c++/10/type_traits" 3 26201: template 26201: struct is_base_of 26201: : public integral_constant 26201: { }; 26201: 26201: template, is_function<_To>, 26201: is_array<_To>>::value> 26201: struct __is_convertible_helper 26201: { 26201: typedef typename is_void<_To>::type type; 26201: }; 26201: 26201: #pragma GCC diagnostic push 26201: #pragma GCC diagnostic ignored "-Wctor-dtor-privacy" 26201: template 26201: class __is_convertible_helper<_From, _To, false> 26201: { 26201: template 26201: static void __test_aux(_To1) noexcept; 26201: 26201: template(std::declval<_From1>()))> 26201: static true_type 26201: __test(int); 26201: 26201: template 26201: static false_type 26201: __test(...); 26201: 26201: public: 26201: typedef decltype(__test<_From, _To>(0)) type; 26201: }; 26201: #pragma GCC diagnostic pop 26201: 26201: 26201: template 26201: struct is_convertible 26201: : public __is_convertible_helper<_From, _To>::type 26201: { }; 26201: 26201: 26201: template 26201: using __is_array_convertible 26201: = is_convertible<_FromElementType(*)[], _ToElementType(*)[]>; 26201: 26201: template, is_function<_To>, 26201: is_array<_To>>::value> 26201: struct __is_nt_convertible_helper 26201: : is_void<_To> 26201: { }; 26201: 26201: #pragma GCC diagnostic push 26201: #pragma GCC diagnostic ignored "-Wctor-dtor-privacy" 26201: template 26201: class __is_nt_convertible_helper<_From, _To, false> 26201: { 26201: template 26201: static void __test_aux(_To1) noexcept; 26201: 26201: template 26201: static 26201: __bool_constant(std::declval<_From1>()))> 26201: __test(int); 26201: 26201: template 26201: static false_type 26201: __test(...); 26201: 26201: public: 26201: using type = decltype(__test<_From, _To>(0)); 26201: }; 26201: #pragma GCC diagnostic pop 26201: 26201: 26201: template 26201: struct __is_nothrow_convertible 26201: : public __is_nt_convertible_helper<_From, _To>::type 26201: { }; 26201: # 1508 "/usr/x86_64-linux-gnu/include/c++/10/type_traits" 3 26201: template 26201: struct remove_const 26201: { typedef _Tp type; }; 26201: 26201: template 26201: struct remove_const<_Tp const> 26201: { typedef _Tp type; }; 26201: 26201: 26201: template 26201: struct remove_volatile 26201: { typedef _Tp type; }; 26201: 26201: template 26201: struct remove_volatile<_Tp volatile> 26201: { typedef _Tp type; }; 26201: 26201: 26201: template 26201: struct remove_cv 26201: { using type = _Tp; }; 26201: 26201: template 26201: struct remove_cv 26201: { using type = _Tp; }; 26201: 26201: template 26201: struct remove_cv 26201: { using type = _Tp; }; 26201: 26201: template 26201: struct remove_cv 26201: { using type = _Tp; }; 26201: 26201: 26201: template 26201: struct add_const 26201: { typedef _Tp const type; }; 26201: 26201: 26201: template 26201: struct add_volatile 26201: { typedef _Tp volatile type; }; 26201: 26201: 26201: template 26201: struct add_cv 26201: { 26201: typedef typename 26201: add_const::type>::type type; 26201: }; 26201: 26201: 26201: 26201: #define __cpp_lib_transformation_trait_aliases 201304 26201: 26201: 26201: template 26201: using remove_const_t = typename remove_const<_Tp>::type; 26201: 26201: 26201: template 26201: using remove_volatile_t = typename remove_volatile<_Tp>::type; 26201: 26201: 26201: template 26201: using remove_cv_t = typename remove_cv<_Tp>::type; 26201: 26201: 26201: template 26201: using add_const_t = typename add_const<_Tp>::type; 26201: 26201: 26201: template 26201: using add_volatile_t = typename add_volatile<_Tp>::type; 26201: 26201: 26201: template 26201: using add_cv_t = typename add_cv<_Tp>::type; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct remove_reference 26201: { typedef _Tp type; }; 26201: 26201: template 26201: struct remove_reference<_Tp&> 26201: { typedef _Tp type; }; 26201: 26201: template 26201: struct remove_reference<_Tp&&> 26201: { typedef _Tp type; }; 26201: 26201: template::value> 26201: struct __add_lvalue_reference_helper 26201: { typedef _Tp type; }; 26201: 26201: template 26201: struct __add_lvalue_reference_helper<_Tp, true> 26201: { typedef _Tp& type; }; 26201: 26201: 26201: template 26201: struct add_lvalue_reference 26201: : public __add_lvalue_reference_helper<_Tp> 26201: { }; 26201: 26201: template::value> 26201: struct __add_rvalue_reference_helper 26201: { typedef _Tp type; }; 26201: 26201: template 26201: struct __add_rvalue_reference_helper<_Tp, true> 26201: { typedef _Tp&& type; }; 26201: 26201: 26201: template 26201: struct add_rvalue_reference 26201: : public __add_rvalue_reference_helper<_Tp> 26201: { }; 26201: 26201: 26201: 26201: template 26201: using remove_reference_t = typename remove_reference<_Tp>::type; 26201: 26201: 26201: template 26201: using add_lvalue_reference_t = typename add_lvalue_reference<_Tp>::type; 26201: 26201: 26201: template 26201: using add_rvalue_reference_t = typename add_rvalue_reference<_Tp>::type; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct __cv_selector; 26201: 26201: template 26201: struct __cv_selector<_Unqualified, false, false> 26201: { typedef _Unqualified __type; }; 26201: 26201: template 26201: struct __cv_selector<_Unqualified, false, true> 26201: { typedef volatile _Unqualified __type; }; 26201: 26201: template 26201: struct __cv_selector<_Unqualified, true, false> 26201: { typedef const _Unqualified __type; }; 26201: 26201: template 26201: struct __cv_selector<_Unqualified, true, true> 26201: { typedef const volatile _Unqualified __type; }; 26201: 26201: template::value, 26201: bool _IsVol = is_volatile<_Qualified>::value> 26201: class __match_cv_qualifiers 26201: { 26201: typedef __cv_selector<_Unqualified, _IsConst, _IsVol> __match; 26201: 26201: public: 26201: typedef typename __match::__type __type; 26201: }; 26201: 26201: 26201: template 26201: struct __make_unsigned 26201: { typedef _Tp __type; }; 26201: 26201: template<> 26201: struct __make_unsigned 26201: { typedef unsigned char __type; }; 26201: 26201: template<> 26201: struct __make_unsigned 26201: { typedef unsigned char __type; }; 26201: 26201: template<> 26201: struct __make_unsigned 26201: { typedef unsigned short __type; }; 26201: 26201: template<> 26201: struct __make_unsigned 26201: { typedef unsigned int __type; }; 26201: 26201: template<> 26201: struct __make_unsigned 26201: { typedef unsigned long __type; }; 26201: 26201: template<> 26201: struct __make_unsigned 26201: { typedef unsigned long long __type; }; 26201: # 1730 "/usr/x86_64-linux-gnu/include/c++/10/type_traits" 3 26201: template::value, 26201: bool _IsEnum = is_enum<_Tp>::value> 26201: class __make_unsigned_selector; 26201: 26201: template 26201: class __make_unsigned_selector<_Tp, true, false> 26201: { 26201: using __unsigned_type 26201: = typename __make_unsigned<__remove_cv_t<_Tp>>::__type; 26201: 26201: public: 26201: using __type 26201: = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; 26201: }; 26201: 26201: class __make_unsigned_selector_base 26201: { 26201: protected: 26201: template struct _List { }; 26201: 26201: template 26201: struct _List<_Tp, _Up...> : _List<_Up...> 26201: { static constexpr size_t __size = sizeof(_Tp); }; 26201: 26201: template 26201: struct __select; 26201: 26201: template 26201: struct __select<_Sz, _List<_Uint, _UInts...>, true> 26201: { using __type = _Uint; }; 26201: 26201: template 26201: struct __select<_Sz, _List<_Uint, _UInts...>, false> 26201: : __select<_Sz, _List<_UInts...>> 26201: { }; 26201: }; 26201: 26201: 26201: template 26201: class __make_unsigned_selector<_Tp, false, true> 26201: : __make_unsigned_selector_base 26201: { 26201: 26201: using _UInts = _List; 26201: 26201: using __unsigned_type = typename __select::__type; 26201: 26201: public: 26201: using __type 26201: = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template<> 26201: struct __make_unsigned 26201: { 26201: using __type 26201: = typename __make_unsigned_selector::__type; 26201: }; 26201: # 1806 "/usr/x86_64-linux-gnu/include/c++/10/type_traits" 3 26201: template<> 26201: struct __make_unsigned 26201: { 26201: using __type 26201: = typename __make_unsigned_selector::__type; 26201: }; 26201: 26201: template<> 26201: struct __make_unsigned 26201: { 26201: using __type 26201: = typename __make_unsigned_selector::__type; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct make_unsigned 26201: { typedef typename __make_unsigned_selector<_Tp>::__type type; }; 26201: 26201: 26201: template<> 26201: struct make_unsigned; 26201: 26201: 26201: 26201: template 26201: struct __make_signed 26201: { typedef _Tp __type; }; 26201: 26201: template<> 26201: struct __make_signed 26201: { typedef signed char __type; }; 26201: 26201: template<> 26201: struct __make_signed 26201: { typedef signed char __type; }; 26201: 26201: template<> 26201: struct __make_signed 26201: { typedef signed short __type; }; 26201: 26201: template<> 26201: struct __make_signed 26201: { typedef signed int __type; }; 26201: 26201: template<> 26201: struct __make_signed 26201: { typedef signed long __type; }; 26201: 26201: template<> 26201: struct __make_signed 26201: { typedef signed long long __type; }; 26201: # 1884 "/usr/x86_64-linux-gnu/include/c++/10/type_traits" 3 26201: template::value, 26201: bool _IsEnum = is_enum<_Tp>::value> 26201: class __make_signed_selector; 26201: 26201: template 26201: class __make_signed_selector<_Tp, true, false> 26201: { 26201: using __signed_type 26201: = typename __make_signed<__remove_cv_t<_Tp>>::__type; 26201: 26201: public: 26201: using __type 26201: = typename __match_cv_qualifiers<_Tp, __signed_type>::__type; 26201: }; 26201: 26201: 26201: template 26201: class __make_signed_selector<_Tp, false, true> 26201: { 26201: typedef typename __make_unsigned_selector<_Tp>::__type __unsigned_type; 26201: 26201: public: 26201: typedef typename __make_signed_selector<__unsigned_type>::__type __type; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template<> 26201: struct __make_signed 26201: { 26201: using __type 26201: = typename __make_signed_selector::__type; 26201: }; 26201: # 1932 "/usr/x86_64-linux-gnu/include/c++/10/type_traits" 3 26201: template<> 26201: struct __make_signed 26201: { 26201: using __type 26201: = typename __make_signed_selector::__type; 26201: }; 26201: 26201: template<> 26201: struct __make_signed 26201: { 26201: using __type 26201: = typename __make_signed_selector::__type; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct make_signed 26201: { typedef typename __make_signed_selector<_Tp>::__type type; }; 26201: 26201: 26201: template<> 26201: struct make_signed; 26201: 26201: 26201: 26201: template 26201: using make_signed_t = typename make_signed<_Tp>::type; 26201: 26201: 26201: template 26201: using make_unsigned_t = typename make_unsigned<_Tp>::type; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct remove_extent 26201: { typedef _Tp type; }; 26201: 26201: template 26201: struct remove_extent<_Tp[_Size]> 26201: { typedef _Tp type; }; 26201: 26201: template 26201: struct remove_extent<_Tp[]> 26201: { typedef _Tp type; }; 26201: 26201: 26201: template 26201: struct remove_all_extents 26201: { typedef _Tp type; }; 26201: 26201: template 26201: struct remove_all_extents<_Tp[_Size]> 26201: { typedef typename remove_all_extents<_Tp>::type type; }; 26201: 26201: template 26201: struct remove_all_extents<_Tp[]> 26201: { typedef typename remove_all_extents<_Tp>::type type; }; 26201: 26201: 26201: 26201: template 26201: using remove_extent_t = typename remove_extent<_Tp>::type; 26201: 26201: 26201: template 26201: using remove_all_extents_t = typename remove_all_extents<_Tp>::type; 26201: 26201: 26201: 26201: 26201: template 26201: struct __remove_pointer_helper 26201: { typedef _Tp type; }; 26201: 26201: template 26201: struct __remove_pointer_helper<_Tp, _Up*> 26201: { typedef _Up type; }; 26201: 26201: 26201: template 26201: struct remove_pointer 26201: : public __remove_pointer_helper<_Tp, __remove_cv_t<_Tp>> 26201: { }; 26201: 26201: 26201: template, 26201: is_void<_Tp>>::value> 26201: struct __add_pointer_helper 26201: { typedef _Tp type; }; 26201: 26201: template 26201: struct __add_pointer_helper<_Tp, true> 26201: { typedef typename remove_reference<_Tp>::type* type; }; 26201: 26201: template 26201: struct add_pointer 26201: : public __add_pointer_helper<_Tp> 26201: { }; 26201: 26201: 26201: 26201: template 26201: using remove_pointer_t = typename remove_pointer<_Tp>::type; 26201: 26201: 26201: template 26201: using add_pointer_t = typename add_pointer<_Tp>::type; 26201: 26201: 26201: template 26201: struct __aligned_storage_msa 26201: { 26201: union __type 26201: { 26201: unsigned char __data[_Len]; 26201: struct __attribute__((__aligned__)) { } __align; 26201: }; 26201: }; 26201: # 2067 "/usr/x86_64-linux-gnu/include/c++/10/type_traits" 3 26201: template::__type)> 26201: struct aligned_storage 26201: { 26201: union type 26201: { 26201: unsigned char __data[_Len]; 26201: struct __attribute__((__aligned__((_Align)))) { } __align; 26201: }; 26201: }; 26201: 26201: template 26201: struct __strictest_alignment 26201: { 26201: static const size_t _S_alignment = 0; 26201: static const size_t _S_size = 0; 26201: }; 26201: 26201: template 26201: struct __strictest_alignment<_Tp, _Types...> 26201: { 26201: static const size_t _S_alignment = 26201: alignof(_Tp) > __strictest_alignment<_Types...>::_S_alignment 26201: ? alignof(_Tp) : __strictest_alignment<_Types...>::_S_alignment; 26201: static const size_t _S_size = 26201: sizeof(_Tp) > __strictest_alignment<_Types...>::_S_size 26201: ? sizeof(_Tp) : __strictest_alignment<_Types...>::_S_size; 26201: }; 26201: # 2106 "/usr/x86_64-linux-gnu/include/c++/10/type_traits" 3 26201: template 26201: struct aligned_union 26201: { 26201: private: 26201: static_assert(sizeof...(_Types) != 0, "At least one type is required"); 26201: 26201: using __strictest = __strictest_alignment<_Types...>; 26201: static const size_t _S_len = _Len > __strictest::_S_size 26201: ? _Len : __strictest::_S_size; 26201: public: 26201: 26201: static const size_t alignment_value = __strictest::_S_alignment; 26201: 26201: typedef typename aligned_storage<_S_len, alignment_value>::type type; 26201: }; 26201: 26201: template 26201: const size_t aligned_union<_Len, _Types...>::alignment_value; 26201: 26201: 26201: 26201: template::value, 26201: bool _IsFunction = is_function<_Up>::value> 26201: struct __decay_selector; 26201: 26201: 26201: template 26201: struct __decay_selector<_Up, false, false> 26201: { typedef __remove_cv_t<_Up> __type; }; 26201: 26201: template 26201: struct __decay_selector<_Up, true, false> 26201: { typedef typename remove_extent<_Up>::type* __type; }; 26201: 26201: template 26201: struct __decay_selector<_Up, false, true> 26201: { typedef typename add_pointer<_Up>::type __type; }; 26201: 26201: 26201: template 26201: class decay 26201: { 26201: typedef typename remove_reference<_Tp>::type __remove_type; 26201: 26201: public: 26201: typedef typename __decay_selector<__remove_type>::__type type; 26201: }; 26201: 26201: 26201: template 26201: using __decay_t = typename decay<_Tp>::type; 26201: 26201: template 26201: class reference_wrapper; 26201: 26201: 26201: template 26201: struct __strip_reference_wrapper 26201: { 26201: typedef _Tp __type; 26201: }; 26201: 26201: template 26201: struct __strip_reference_wrapper > 26201: { 26201: typedef _Tp& __type; 26201: }; 26201: 26201: template 26201: using __decay_and_strip = __strip_reference_wrapper<__decay_t<_Tp>>; 26201: 26201: 26201: 26201: 26201: template 26201: struct enable_if 26201: { }; 26201: 26201: 26201: template 26201: struct enable_if 26201: { typedef _Tp type; }; 26201: 26201: 26201: template 26201: using __enable_if_t = typename enable_if<_Cond, _Tp>::type; 26201: 26201: template 26201: using _Require = __enable_if_t<__and_<_Cond...>::value>; 26201: 26201: 26201: 26201: template 26201: struct conditional 26201: { typedef _Iftrue type; }; 26201: 26201: 26201: template 26201: struct conditional 26201: { typedef _Iffalse type; }; 26201: 26201: 26201: template 26201: using __remove_cvref_t 26201: = typename remove_cv::type>::type; 26201: 26201: 26201: template 26201: struct common_type; 26201: 26201: 26201: 26201: struct __do_common_type_impl 26201: { 26201: template 26201: using __cond_t 26201: = decltype(true ? std::declval<_Tp>() : std::declval<_Up>()); 26201: 26201: 26201: 26201: template 26201: static __success_type<__decay_t<__cond_t<_Tp, _Up>>> 26201: _S_test(int); 26201: # 2239 "/usr/x86_64-linux-gnu/include/c++/10/type_traits" 3 26201: template 26201: static __failure_type 26201: _S_test_2(...); 26201: 26201: template 26201: static decltype(_S_test_2<_Tp, _Up>(0)) 26201: _S_test(...); 26201: }; 26201: 26201: 26201: template<> 26201: struct common_type<> 26201: { }; 26201: 26201: 26201: template 26201: struct common_type<_Tp0> 26201: : public common_type<_Tp0, _Tp0> 26201: { }; 26201: 26201: 26201: template, typename _Dp2 = __decay_t<_Tp2>> 26201: struct __common_type_impl 26201: { 26201: 26201: 26201: using type = common_type<_Dp1, _Dp2>; 26201: }; 26201: 26201: template 26201: struct __common_type_impl<_Tp1, _Tp2, _Tp1, _Tp2> 26201: : private __do_common_type_impl 26201: { 26201: 26201: 26201: using type = decltype(_S_test<_Tp1, _Tp2>(0)); 26201: }; 26201: 26201: 26201: template 26201: struct common_type<_Tp1, _Tp2> 26201: : public __common_type_impl<_Tp1, _Tp2>::type 26201: { }; 26201: 26201: template 26201: struct __common_type_pack 26201: { }; 26201: 26201: template 26201: struct __common_type_fold; 26201: 26201: 26201: template 26201: struct common_type<_Tp1, _Tp2, _Rp...> 26201: : public __common_type_fold, 26201: __common_type_pack<_Rp...>> 26201: { }; 26201: 26201: 26201: 26201: 26201: template 26201: struct __common_type_fold<_CTp, __common_type_pack<_Rp...>, 26201: __void_t> 26201: : public common_type 26201: { }; 26201: 26201: 26201: template 26201: struct __common_type_fold<_CTp, _Rp, void> 26201: { }; 26201: 26201: template::value> 26201: struct __underlying_type_impl 26201: { 26201: using type = __underlying_type(_Tp); 26201: }; 26201: 26201: template 26201: struct __underlying_type_impl<_Tp, false> 26201: { }; 26201: 26201: 26201: template 26201: struct underlying_type 26201: : public __underlying_type_impl<_Tp> 26201: { }; 26201: 26201: template 26201: struct __declval_protector 26201: { 26201: static const bool __stop = false; 26201: }; 26201: 26201: template 26201: auto declval() noexcept -> decltype(__declval<_Tp>(0)) 26201: { 26201: static_assert(__declval_protector<_Tp>::__stop, 26201: "declval() must not be used!"); 26201: return __declval<_Tp>(0); 26201: } 26201: 26201: 26201: template 26201: class result_of; 26201: 26201: 26201: 26201: #define __cpp_lib_result_of_sfinae 201210 26201: 26201: struct __invoke_memfun_ref { }; 26201: struct __invoke_memfun_deref { }; 26201: struct __invoke_memobj_ref { }; 26201: struct __invoke_memobj_deref { }; 26201: struct __invoke_other { }; 26201: 26201: 26201: template 26201: struct __result_of_success : __success_type<_Tp> 26201: { using __invoke_type = _Tag; }; 26201: 26201: 26201: struct __result_of_memfun_ref_impl 26201: { 26201: template 26201: static __result_of_success().*std::declval<_Fp>())(std::declval<_Args>()...) 26201: ), __invoke_memfun_ref> _S_test(int); 26201: 26201: template 26201: static __failure_type _S_test(...); 26201: }; 26201: 26201: template 26201: struct __result_of_memfun_ref 26201: : private __result_of_memfun_ref_impl 26201: { 26201: typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; 26201: }; 26201: 26201: 26201: struct __result_of_memfun_deref_impl 26201: { 26201: template 26201: static __result_of_success()).*std::declval<_Fp>())(std::declval<_Args>()...) 26201: ), __invoke_memfun_deref> _S_test(int); 26201: 26201: template 26201: static __failure_type _S_test(...); 26201: }; 26201: 26201: template 26201: struct __result_of_memfun_deref 26201: : private __result_of_memfun_deref_impl 26201: { 26201: typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; 26201: }; 26201: 26201: 26201: struct __result_of_memobj_ref_impl 26201: { 26201: template 26201: static __result_of_success().*std::declval<_Fp>() 26201: ), __invoke_memobj_ref> _S_test(int); 26201: 26201: template 26201: static __failure_type _S_test(...); 26201: }; 26201: 26201: template 26201: struct __result_of_memobj_ref 26201: : private __result_of_memobj_ref_impl 26201: { 26201: typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; 26201: }; 26201: 26201: 26201: struct __result_of_memobj_deref_impl 26201: { 26201: template 26201: static __result_of_success()).*std::declval<_Fp>() 26201: ), __invoke_memobj_deref> _S_test(int); 26201: 26201: template 26201: static __failure_type _S_test(...); 26201: }; 26201: 26201: template 26201: struct __result_of_memobj_deref 26201: : private __result_of_memobj_deref_impl 26201: { 26201: typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; 26201: }; 26201: 26201: template 26201: struct __result_of_memobj; 26201: 26201: template 26201: struct __result_of_memobj<_Res _Class::*, _Arg> 26201: { 26201: typedef __remove_cvref_t<_Arg> _Argval; 26201: typedef _Res _Class::* _MemPtr; 26201: typedef typename conditional<__or_, 26201: is_base_of<_Class, _Argval>>::value, 26201: __result_of_memobj_ref<_MemPtr, _Arg>, 26201: __result_of_memobj_deref<_MemPtr, _Arg> 26201: >::type::type type; 26201: }; 26201: 26201: template 26201: struct __result_of_memfun; 26201: 26201: template 26201: struct __result_of_memfun<_Res _Class::*, _Arg, _Args...> 26201: { 26201: typedef typename remove_reference<_Arg>::type _Argval; 26201: typedef _Res _Class::* _MemPtr; 26201: typedef typename conditional::value, 26201: __result_of_memfun_ref<_MemPtr, _Arg, _Args...>, 26201: __result_of_memfun_deref<_MemPtr, _Arg, _Args...> 26201: >::type::type type; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template> 26201: struct __inv_unwrap 26201: { 26201: using type = _Tp; 26201: }; 26201: 26201: template 26201: struct __inv_unwrap<_Tp, reference_wrapper<_Up>> 26201: { 26201: using type = _Up&; 26201: }; 26201: 26201: template 26201: struct __result_of_impl 26201: { 26201: typedef __failure_type type; 26201: }; 26201: 26201: template 26201: struct __result_of_impl 26201: : public __result_of_memobj<__decay_t<_MemPtr>, 26201: typename __inv_unwrap<_Arg>::type> 26201: { }; 26201: 26201: template 26201: struct __result_of_impl 26201: : public __result_of_memfun<__decay_t<_MemPtr>, 26201: typename __inv_unwrap<_Arg>::type, _Args...> 26201: { }; 26201: 26201: 26201: struct __result_of_other_impl 26201: { 26201: template 26201: static __result_of_success()(std::declval<_Args>()...) 26201: ), __invoke_other> _S_test(int); 26201: 26201: template 26201: static __failure_type _S_test(...); 26201: }; 26201: 26201: template 26201: struct __result_of_impl 26201: : private __result_of_other_impl 26201: { 26201: typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type; 26201: }; 26201: 26201: 26201: template 26201: struct __invoke_result 26201: : public __result_of_impl< 26201: is_member_object_pointer< 26201: typename remove_reference<_Functor>::type 26201: >::value, 26201: is_member_function_pointer< 26201: typename remove_reference<_Functor>::type 26201: >::value, 26201: _Functor, _ArgTypes... 26201: >::type 26201: { }; 26201: 26201: template 26201: struct result_of<_Functor(_ArgTypes...)> 26201: : public __invoke_result<_Functor, _ArgTypes...> 26201: { }; 26201: 26201: 26201: 26201: template::__type)> 26201: using aligned_storage_t = typename aligned_storage<_Len, _Align>::type; 26201: 26201: template 26201: using aligned_union_t = typename aligned_union<_Len, _Types...>::type; 26201: 26201: 26201: template 26201: using decay_t = typename decay<_Tp>::type; 26201: 26201: 26201: template 26201: using enable_if_t = typename enable_if<_Cond, _Tp>::type; 26201: 26201: 26201: template 26201: using conditional_t = typename conditional<_Cond, _Iftrue, _Iffalse>::type; 26201: 26201: 26201: template 26201: using common_type_t = typename common_type<_Tp...>::type; 26201: 26201: 26201: template 26201: using underlying_type_t = typename underlying_type<_Tp>::type; 26201: 26201: 26201: template 26201: using result_of_t = typename result_of<_Tp>::type; 26201: 26201: 26201: 26201: #define __cpp_lib_void_t 201411 26201: 26201: template using void_t = void; 26201: 26201: 26201: 26201: template class _Op, typename... _Args> 26201: struct __detector 26201: { 26201: using value_t = false_type; 26201: using type = _Default; 26201: }; 26201: 26201: 26201: template class _Op, 26201: typename... _Args> 26201: struct __detector<_Default, __void_t<_Op<_Args...>>, _Op, _Args...> 26201: { 26201: using value_t = true_type; 26201: using type = _Op<_Args...>; 26201: }; 26201: 26201: 26201: template class _Op, 26201: typename... _Args> 26201: using __detected_or = __detector<_Default, void, _Op, _Args...>; 26201: 26201: 26201: template class _Op, 26201: typename... _Args> 26201: using __detected_or_t 26201: = typename __detected_or<_Default, _Op, _Args...>::type; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_HAS_NESTED_TYPE(_NTYPE) template> struct __has_ ##_NTYPE : false_type { }; template struct __has_ ##_NTYPE<_Tp, __void_t> : true_type { }; 26201: # 2624 "/usr/x86_64-linux-gnu/include/c++/10/type_traits" 3 26201: template 26201: struct __is_swappable; 26201: 26201: template 26201: struct __is_nothrow_swappable; 26201: 26201: template 26201: class tuple; 26201: 26201: template 26201: struct __is_tuple_like_impl : false_type 26201: { }; 26201: 26201: template 26201: struct __is_tuple_like_impl> : true_type 26201: { }; 26201: 26201: 26201: template 26201: struct __is_tuple_like 26201: : public __is_tuple_like_impl<__remove_cvref_t<_Tp>>::type 26201: { }; 26201: 26201: template 26201: 26201: inline 26201: _Require<__not_<__is_tuple_like<_Tp>>, 26201: is_move_constructible<_Tp>, 26201: is_move_assignable<_Tp>> 26201: swap(_Tp&, _Tp&) 26201: noexcept(__and_, 26201: is_nothrow_move_assignable<_Tp>>::value); 26201: 26201: template 26201: 26201: inline 26201: __enable_if_t<__is_swappable<_Tp>::value> 26201: swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) 26201: noexcept(__is_nothrow_swappable<_Tp>::value); 26201: 26201: namespace __swappable_details { 26201: using std::swap; 26201: 26201: struct __do_is_swappable_impl 26201: { 26201: template(), std::declval<_Tp&>()))> 26201: static true_type __test(int); 26201: 26201: template 26201: static false_type __test(...); 26201: }; 26201: 26201: struct __do_is_nothrow_swappable_impl 26201: { 26201: template 26201: static __bool_constant< 26201: noexcept(swap(std::declval<_Tp&>(), std::declval<_Tp&>())) 26201: > __test(int); 26201: 26201: template 26201: static false_type __test(...); 26201: }; 26201: 26201: } 26201: 26201: template 26201: struct __is_swappable_impl 26201: : public __swappable_details::__do_is_swappable_impl 26201: { 26201: typedef decltype(__test<_Tp>(0)) type; 26201: }; 26201: 26201: template 26201: struct __is_nothrow_swappable_impl 26201: : public __swappable_details::__do_is_nothrow_swappable_impl 26201: { 26201: typedef decltype(__test<_Tp>(0)) type; 26201: }; 26201: 26201: template 26201: struct __is_swappable 26201: : public __is_swappable_impl<_Tp>::type 26201: { }; 26201: 26201: template 26201: struct __is_nothrow_swappable 26201: : public __is_nothrow_swappable_impl<_Tp>::type 26201: { }; 26201: 26201: 26201: #define __cpp_lib_is_swappable 201603 26201: 26201: 26201: 26201: template 26201: struct is_swappable 26201: : public __is_swappable_impl<_Tp>::type 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: 26201: template 26201: struct is_nothrow_swappable 26201: : public __is_nothrow_swappable_impl<_Tp>::type 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: 26201: 26201: template 26201: inline constexpr bool is_swappable_v = 26201: is_swappable<_Tp>::value; 26201: 26201: 26201: template 26201: inline constexpr bool is_nothrow_swappable_v = 26201: is_nothrow_swappable<_Tp>::value; 26201: 26201: 26201: namespace __swappable_with_details { 26201: using std::swap; 26201: 26201: struct __do_is_swappable_with_impl 26201: { 26201: template(), std::declval<_Up>())), 26201: typename 26201: = decltype(swap(std::declval<_Up>(), std::declval<_Tp>()))> 26201: static true_type __test(int); 26201: 26201: template 26201: static false_type __test(...); 26201: }; 26201: 26201: struct __do_is_nothrow_swappable_with_impl 26201: { 26201: template 26201: static __bool_constant< 26201: noexcept(swap(std::declval<_Tp>(), std::declval<_Up>())) 26201: && 26201: noexcept(swap(std::declval<_Up>(), std::declval<_Tp>())) 26201: > __test(int); 26201: 26201: template 26201: static false_type __test(...); 26201: }; 26201: 26201: } 26201: 26201: template 26201: struct __is_swappable_with_impl 26201: : public __swappable_with_details::__do_is_swappable_with_impl 26201: { 26201: typedef decltype(__test<_Tp, _Up>(0)) type; 26201: }; 26201: 26201: 26201: template 26201: struct __is_swappable_with_impl<_Tp&, _Tp&> 26201: : public __swappable_details::__do_is_swappable_impl 26201: { 26201: typedef decltype(__test<_Tp&>(0)) type; 26201: }; 26201: 26201: template 26201: struct __is_nothrow_swappable_with_impl 26201: : public __swappable_with_details::__do_is_nothrow_swappable_with_impl 26201: { 26201: typedef decltype(__test<_Tp, _Up>(0)) type; 26201: }; 26201: 26201: 26201: template 26201: struct __is_nothrow_swappable_with_impl<_Tp&, _Tp&> 26201: : public __swappable_details::__do_is_nothrow_swappable_impl 26201: { 26201: typedef decltype(__test<_Tp&>(0)) type; 26201: }; 26201: 26201: 26201: template 26201: struct is_swappable_with 26201: : public __is_swappable_with_impl<_Tp, _Up>::type 26201: { }; 26201: 26201: 26201: template 26201: struct is_nothrow_swappable_with 26201: : public __is_nothrow_swappable_with_impl<_Tp, _Up>::type 26201: { }; 26201: 26201: 26201: 26201: template 26201: inline constexpr bool is_swappable_with_v = 26201: is_swappable_with<_Tp, _Up>::value; 26201: 26201: 26201: template 26201: inline constexpr bool is_nothrow_swappable_with_v = 26201: is_nothrow_swappable_with<_Tp, _Up>::value; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template::value, typename = void> 26201: struct __is_invocable_impl : false_type { }; 26201: 26201: 26201: template 26201: struct __is_invocable_impl<_Result, _Ret, 26201: true, 26201: __void_t> 26201: : true_type 26201: { }; 26201: 26201: #pragma GCC diagnostic push 26201: #pragma GCC diagnostic ignored "-Wctor-dtor-privacy" 26201: 26201: template 26201: struct __is_invocable_impl<_Result, _Ret, 26201: false, 26201: __void_t> 26201: { 26201: private: 26201: 26201: 26201: static typename _Result::type _S_get(); 26201: 26201: template 26201: static void _S_conv(_Tp); 26201: 26201: 26201: template(_S_get()))> 26201: static true_type 26201: _S_test(int); 26201: 26201: template 26201: static false_type 26201: _S_test(...); 26201: 26201: public: 26201: using type = decltype(_S_test<_Ret>(1)); 26201: }; 26201: #pragma GCC diagnostic pop 26201: 26201: template 26201: struct __is_invocable 26201: : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>::type 26201: { }; 26201: 26201: template 26201: constexpr bool __call_is_nt(__invoke_memfun_ref) 26201: { 26201: using _Up = typename __inv_unwrap<_Tp>::type; 26201: return noexcept((std::declval<_Up>().*std::declval<_Fn>())( 26201: std::declval<_Args>()...)); 26201: } 26201: 26201: template 26201: constexpr bool __call_is_nt(__invoke_memfun_deref) 26201: { 26201: return noexcept(((*std::declval<_Tp>()).*std::declval<_Fn>())( 26201: std::declval<_Args>()...)); 26201: } 26201: 26201: template 26201: constexpr bool __call_is_nt(__invoke_memobj_ref) 26201: { 26201: using _Up = typename __inv_unwrap<_Tp>::type; 26201: return noexcept(std::declval<_Up>().*std::declval<_Fn>()); 26201: } 26201: 26201: template 26201: constexpr bool __call_is_nt(__invoke_memobj_deref) 26201: { 26201: return noexcept((*std::declval<_Tp>()).*std::declval<_Fn>()); 26201: } 26201: 26201: template 26201: constexpr bool __call_is_nt(__invoke_other) 26201: { 26201: return noexcept(std::declval<_Fn>()(std::declval<_Args>()...)); 26201: } 26201: 26201: template 26201: struct __call_is_nothrow 26201: : __bool_constant< 26201: std::__call_is_nt<_Fn, _Args...>(typename _Result::__invoke_type{}) 26201: > 26201: { }; 26201: 26201: template 26201: using __call_is_nothrow_ 26201: = __call_is_nothrow<__invoke_result<_Fn, _Args...>, _Fn, _Args...>; 26201: 26201: 26201: template 26201: struct __is_nothrow_invocable 26201: : __and_<__is_invocable<_Fn, _Args...>, 26201: __call_is_nothrow_<_Fn, _Args...>>::type 26201: { }; 26201: 26201: #pragma GCC diagnostic push 26201: #pragma GCC diagnostic ignored "-Wctor-dtor-privacy" 26201: struct __nonesuchbase {}; 26201: struct __nonesuch : private __nonesuchbase { 26201: ~__nonesuch() = delete; 26201: __nonesuch(__nonesuch const&) = delete; 26201: void operator=(__nonesuch const&) = delete; 26201: }; 26201: #pragma GCC diagnostic pop 26201: 26201: 26201: #define __cpp_lib_is_invocable 201703 26201: 26201: 26201: template 26201: struct invoke_result 26201: : public __invoke_result<_Functor, _ArgTypes...> 26201: { }; 26201: 26201: 26201: template 26201: using invoke_result_t = typename invoke_result<_Fn, _Args...>::type; 26201: 26201: 26201: template 26201: struct is_invocable 26201: : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>::type 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Fn>{}), 26201: "_Fn must be a complete class or an unbounded array"); 26201: }; 26201: 26201: 26201: template 26201: struct is_invocable_r 26201: : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, _Ret>::type 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Fn>{}), 26201: "_Fn must be a complete class or an unbounded array"); 26201: }; 26201: 26201: 26201: template 26201: struct is_nothrow_invocable 26201: : __and_<__is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>, 26201: __call_is_nothrow_<_Fn, _ArgTypes...>>::type 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Fn>{}), 26201: "_Fn must be a complete class or an unbounded array"); 26201: }; 26201: 26201: template 26201: struct __is_nt_invocable_impl : false_type { }; 26201: 26201: template 26201: struct __is_nt_invocable_impl<_Result, _Ret, 26201: __void_t> 26201: : __or_, 26201: __is_nothrow_convertible> 26201: { }; 26201: 26201: 26201: template 26201: struct is_nothrow_invocable_r 26201: : __and_<__is_nt_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, _Ret>, 26201: __call_is_nothrow_<_Fn, _ArgTypes...>>::type 26201: { }; 26201: 26201: 26201: template 26201: inline constexpr bool is_invocable_v = is_invocable<_Fn, _Args...>::value; 26201: 26201: 26201: template 26201: inline constexpr bool is_nothrow_invocable_v 26201: = is_nothrow_invocable<_Fn, _Args...>::value; 26201: 26201: 26201: template 26201: inline constexpr bool is_invocable_r_v 26201: = is_invocable_r<_Ret, _Fn, _Args...>::value; 26201: 26201: 26201: template 26201: inline constexpr bool is_nothrow_invocable_r_v 26201: = is_nothrow_invocable_r<_Ret, _Fn, _Args...>::value; 26201: 26201: 26201: 26201: #define __cpp_lib_type_trait_variable_templates 201510L 26201: template 26201: inline constexpr bool is_void_v = is_void<_Tp>::value; 26201: template 26201: inline constexpr bool is_null_pointer_v = is_null_pointer<_Tp>::value; 26201: template 26201: inline constexpr bool is_integral_v = is_integral<_Tp>::value; 26201: template 26201: inline constexpr bool is_floating_point_v = is_floating_point<_Tp>::value; 26201: template 26201: inline constexpr bool is_array_v = is_array<_Tp>::value; 26201: template 26201: inline constexpr bool is_pointer_v = is_pointer<_Tp>::value; 26201: template 26201: inline constexpr bool is_lvalue_reference_v = 26201: is_lvalue_reference<_Tp>::value; 26201: template 26201: inline constexpr bool is_rvalue_reference_v = 26201: is_rvalue_reference<_Tp>::value; 26201: template 26201: inline constexpr bool is_member_object_pointer_v = 26201: is_member_object_pointer<_Tp>::value; 26201: template 26201: inline constexpr bool is_member_function_pointer_v = 26201: is_member_function_pointer<_Tp>::value; 26201: template 26201: inline constexpr bool is_enum_v = is_enum<_Tp>::value; 26201: template 26201: inline constexpr bool is_union_v = is_union<_Tp>::value; 26201: template 26201: inline constexpr bool is_class_v = is_class<_Tp>::value; 26201: template 26201: inline constexpr bool is_function_v = is_function<_Tp>::value; 26201: template 26201: inline constexpr bool is_reference_v = is_reference<_Tp>::value; 26201: template 26201: inline constexpr bool is_arithmetic_v = is_arithmetic<_Tp>::value; 26201: template 26201: inline constexpr bool is_fundamental_v = is_fundamental<_Tp>::value; 26201: template 26201: inline constexpr bool is_object_v = is_object<_Tp>::value; 26201: template 26201: inline constexpr bool is_scalar_v = is_scalar<_Tp>::value; 26201: template 26201: inline constexpr bool is_compound_v = is_compound<_Tp>::value; 26201: template 26201: inline constexpr bool is_member_pointer_v = is_member_pointer<_Tp>::value; 26201: template 26201: inline constexpr bool is_const_v = is_const<_Tp>::value; 26201: template 26201: inline constexpr bool is_volatile_v = is_volatile<_Tp>::value; 26201: template 26201: inline constexpr bool is_trivial_v = is_trivial<_Tp>::value; 26201: template 26201: inline constexpr bool is_trivially_copyable_v = 26201: is_trivially_copyable<_Tp>::value; 26201: template 26201: inline constexpr bool is_standard_layout_v = is_standard_layout<_Tp>::value; 26201: #pragma GCC diagnostic push 26201: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 26201: template 26201: 26201: inline constexpr bool is_pod_v = is_pod<_Tp>::value; 26201: #pragma GCC diagnostic pop 26201: template 26201: inline constexpr bool is_literal_type_v = is_literal_type<_Tp>::value; 26201: template 26201: inline constexpr bool is_empty_v = is_empty<_Tp>::value; 26201: template 26201: inline constexpr bool is_polymorphic_v = is_polymorphic<_Tp>::value; 26201: template 26201: inline constexpr bool is_abstract_v = is_abstract<_Tp>::value; 26201: template 26201: inline constexpr bool is_final_v = is_final<_Tp>::value; 26201: template 26201: inline constexpr bool is_signed_v = is_signed<_Tp>::value; 26201: template 26201: inline constexpr bool is_unsigned_v = is_unsigned<_Tp>::value; 26201: template 26201: inline constexpr bool is_constructible_v = 26201: is_constructible<_Tp, _Args...>::value; 26201: template 26201: inline constexpr bool is_default_constructible_v = 26201: is_default_constructible<_Tp>::value; 26201: template 26201: inline constexpr bool is_copy_constructible_v = 26201: is_copy_constructible<_Tp>::value; 26201: template 26201: inline constexpr bool is_move_constructible_v = 26201: is_move_constructible<_Tp>::value; 26201: template 26201: inline constexpr bool is_assignable_v = is_assignable<_Tp, _Up>::value; 26201: template 26201: inline constexpr bool is_copy_assignable_v = is_copy_assignable<_Tp>::value; 26201: template 26201: inline constexpr bool is_move_assignable_v = is_move_assignable<_Tp>::value; 26201: template 26201: inline constexpr bool is_destructible_v = is_destructible<_Tp>::value; 26201: template 26201: inline constexpr bool is_trivially_constructible_v = 26201: is_trivially_constructible<_Tp, _Args...>::value; 26201: template 26201: inline constexpr bool is_trivially_default_constructible_v = 26201: is_trivially_default_constructible<_Tp>::value; 26201: template 26201: inline constexpr bool is_trivially_copy_constructible_v = 26201: is_trivially_copy_constructible<_Tp>::value; 26201: template 26201: inline constexpr bool is_trivially_move_constructible_v = 26201: is_trivially_move_constructible<_Tp>::value; 26201: template 26201: inline constexpr bool is_trivially_assignable_v = 26201: is_trivially_assignable<_Tp, _Up>::value; 26201: template 26201: inline constexpr bool is_trivially_copy_assignable_v = 26201: is_trivially_copy_assignable<_Tp>::value; 26201: template 26201: inline constexpr bool is_trivially_move_assignable_v = 26201: is_trivially_move_assignable<_Tp>::value; 26201: template 26201: inline constexpr bool is_trivially_destructible_v = 26201: is_trivially_destructible<_Tp>::value; 26201: template 26201: inline constexpr bool is_nothrow_constructible_v = 26201: is_nothrow_constructible<_Tp, _Args...>::value; 26201: template 26201: inline constexpr bool is_nothrow_default_constructible_v = 26201: is_nothrow_default_constructible<_Tp>::value; 26201: template 26201: inline constexpr bool is_nothrow_copy_constructible_v = 26201: is_nothrow_copy_constructible<_Tp>::value; 26201: template 26201: inline constexpr bool is_nothrow_move_constructible_v = 26201: is_nothrow_move_constructible<_Tp>::value; 26201: template 26201: inline constexpr bool is_nothrow_assignable_v = 26201: is_nothrow_assignable<_Tp, _Up>::value; 26201: template 26201: inline constexpr bool is_nothrow_copy_assignable_v = 26201: is_nothrow_copy_assignable<_Tp>::value; 26201: template 26201: inline constexpr bool is_nothrow_move_assignable_v = 26201: is_nothrow_move_assignable<_Tp>::value; 26201: template 26201: inline constexpr bool is_nothrow_destructible_v = 26201: is_nothrow_destructible<_Tp>::value; 26201: template 26201: inline constexpr bool has_virtual_destructor_v = 26201: has_virtual_destructor<_Tp>::value; 26201: template 26201: inline constexpr size_t alignment_of_v = alignment_of<_Tp>::value; 26201: template 26201: inline constexpr size_t rank_v = rank<_Tp>::value; 26201: template 26201: inline constexpr size_t extent_v = extent<_Tp, _Idx>::value; 26201: 26201: template 26201: inline constexpr bool is_same_v = __is_same_as(_Tp, _Up); 26201: 26201: 26201: 26201: 26201: template 26201: inline constexpr bool is_base_of_v = is_base_of<_Base, _Derived>::value; 26201: template 26201: inline constexpr bool is_convertible_v = is_convertible<_From, _To>::value; 26201: 26201: 26201: #define __cpp_lib_has_unique_object_representations 201606 26201: 26201: template 26201: struct has_unique_object_representations 26201: : bool_constant<__has_unique_object_representations( 26201: remove_cv_t> 26201: )> 26201: { 26201: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 26201: "template argument must be a complete class or an unbounded array"); 26201: }; 26201: 26201: template 26201: inline constexpr bool has_unique_object_representations_v 26201: = has_unique_object_representations<_Tp>::value; 26201: 26201: 26201: 26201: #define __cpp_lib_is_aggregate 201703 26201: 26201: template 26201: struct is_aggregate 26201: : bool_constant<__is_aggregate(remove_cv_t<_Tp>)> 26201: { }; 26201: 26201: 26201: template 26201: inline constexpr bool is_aggregate_v = is_aggregate<_Tp>::value; 26201: # 3461 "/usr/x86_64-linux-gnu/include/c++/10/type_traits" 3 26201: 26201: } 26201: # 58 "/usr/x86_64-linux-gnu/include/c++/10/bits/move.h" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 74 "/usr/x86_64-linux-gnu/include/c++/10/bits/move.h" 3 26201: template 26201: constexpr _Tp&& 26201: forward(typename std::remove_reference<_Tp>::type& __t) noexcept 26201: { return static_cast<_Tp&&>(__t); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: constexpr _Tp&& 26201: forward(typename std::remove_reference<_Tp>::type&& __t) noexcept 26201: { 26201: static_assert(!std::is_lvalue_reference<_Tp>::value, "template argument" 26201: " substituting _Tp is an lvalue reference type"); 26201: return static_cast<_Tp&&>(__t); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: constexpr typename std::remove_reference<_Tp>::type&& 26201: move(_Tp&& __t) noexcept 26201: { return static_cast::type&&>(__t); } 26201: 26201: 26201: template 26201: struct __move_if_noexcept_cond 26201: : public __and_<__not_>, 26201: is_copy_constructible<_Tp>>::type { }; 26201: # 118 "/usr/x86_64-linux-gnu/include/c++/10/bits/move.h" 3 26201: template 26201: constexpr typename 26201: conditional<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&>::type 26201: move_if_noexcept(_Tp& __x) noexcept 26201: { return std::move(__x); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __cpp_lib_addressof_constexpr 201603 26201: # 138 "/usr/x86_64-linux-gnu/include/c++/10/bits/move.h" 3 26201: template 26201: inline constexpr _Tp* 26201: addressof(_Tp& __r) noexcept 26201: { return std::__addressof(__r); } 26201: 26201: 26201: 26201: template 26201: const _Tp* addressof(const _Tp&&) = delete; 26201: 26201: 26201: template 26201: 26201: inline _Tp 26201: __exchange(_Tp& __obj, _Up&& __new_val) 26201: { 26201: _Tp __old_val = std::move(__obj); 26201: __obj = std::forward<_Up>(__new_val); 26201: return __old_val; 26201: } 26201: 26201: 26201: 26201: #define _GLIBCXX_MOVE(__val) std::move(__val) 26201: #define _GLIBCXX_FORWARD(_Tp,__val) std::forward<_Tp>(__val) 26201: # 179 "/usr/x86_64-linux-gnu/include/c++/10/bits/move.h" 3 26201: template 26201: 26201: inline 26201: 26201: typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, 26201: is_move_constructible<_Tp>, 26201: is_move_assignable<_Tp>>::value>::type 26201: 26201: 26201: 26201: swap(_Tp& __a, _Tp& __b) 26201: noexcept(__and_, is_nothrow_move_assignable<_Tp>>::value) 26201: 26201: { 26201: 26201: 26201: 26201: 26201: _Tp __tmp = std::move(__a); 26201: __a = std::move(__b); 26201: __b = std::move(__tmp); 26201: } 26201: 26201: 26201: 26201: 26201: template 26201: 26201: inline 26201: 26201: typename enable_if<__is_swappable<_Tp>::value>::type 26201: 26201: 26201: 26201: swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) 26201: noexcept(__is_nothrow_swappable<_Tp>::value) 26201: { 26201: for (size_t __n = 0; __n < _Nm; ++__n) 26201: swap(__a[__n], __b[__n]); 26201: } 26201: 26201: 26201: 26201: } 26201: # 60 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_pair.h" 2 3 26201: # 69 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_pair.h" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 80 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_pair.h" 3 26201: struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; 26201: 26201: 26201: inline constexpr piecewise_construct_t piecewise_construct = 26201: piecewise_construct_t(); 26201: 26201: 26201: 26201: 26201: template 26201: class tuple; 26201: 26201: template 26201: struct _Index_tuple; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct _PCC 26201: { 26201: template 26201: static constexpr bool _ConstructiblePair() 26201: { 26201: return __and_, 26201: is_constructible<_T2, const _U2&>>::value; 26201: } 26201: 26201: template 26201: static constexpr bool _ImplicitlyConvertiblePair() 26201: { 26201: return __and_, 26201: is_convertible>::value; 26201: } 26201: 26201: template 26201: static constexpr bool _MoveConstructiblePair() 26201: { 26201: return __and_, 26201: is_constructible<_T2, _U2&&>>::value; 26201: } 26201: 26201: template 26201: static constexpr bool _ImplicitlyMoveConvertiblePair() 26201: { 26201: return __and_, 26201: is_convertible<_U2&&, _T2>>::value; 26201: } 26201: 26201: template 26201: static constexpr bool _CopyMovePair() 26201: { 26201: using __do_converts = __and_, 26201: is_convertible<_U2&&, _T2>>; 26201: using __converts = typename conditional<__implicit, 26201: __do_converts, 26201: __not_<__do_converts>>::type; 26201: return __and_, 26201: is_constructible<_T2, _U2&&>, 26201: __converts 26201: >::value; 26201: } 26201: 26201: template 26201: static constexpr bool _MoveCopyPair() 26201: { 26201: using __do_converts = __and_, 26201: is_convertible>; 26201: using __converts = typename conditional<__implicit, 26201: __do_converts, 26201: __not_<__do_converts>>::type; 26201: return __and_, 26201: is_constructible<_T2, const _U2&&>, 26201: __converts 26201: >::value; 26201: } 26201: }; 26201: 26201: template 26201: struct _PCC 26201: { 26201: template 26201: static constexpr bool _ConstructiblePair() 26201: { 26201: return false; 26201: } 26201: 26201: template 26201: static constexpr bool _ImplicitlyConvertiblePair() 26201: { 26201: return false; 26201: } 26201: 26201: template 26201: static constexpr bool _MoveConstructiblePair() 26201: { 26201: return false; 26201: } 26201: 26201: template 26201: static constexpr bool _ImplicitlyMoveConvertiblePair() 26201: { 26201: return false; 26201: } 26201: }; 26201: 26201: 26201: template class __pair_base 26201: { 26201: 26201: template friend struct pair; 26201: __pair_base() = default; 26201: ~__pair_base() = default; 26201: __pair_base(const __pair_base&) = default; 26201: __pair_base& operator=(const __pair_base&) = delete; 26201: 26201: }; 26201: # 210 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_pair.h" 3 26201: template 26201: struct pair 26201: : private __pair_base<_T1, _T2> 26201: { 26201: typedef _T1 first_type; 26201: typedef _T2 second_type; 26201: 26201: _T1 first; 26201: _T2 second; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template , 26201: __is_implicitly_default_constructible<_U2>> 26201: ::value, bool>::type = true> 26201: 26201: constexpr pair() 26201: : first(), second() { } 26201: 26201: 26201: template , 26201: is_default_constructible<_U2>, 26201: __not_< 26201: __and_<__is_implicitly_default_constructible<_U1>, 26201: __is_implicitly_default_constructible<_U2>>>> 26201: ::value, bool>::type = false> 26201: explicit constexpr pair() 26201: : first(), second() { } 26201: # 256 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_pair.h" 3 26201: using _PCCP = _PCC; 26201: 26201: 26201: 26201: template() 26201: && _PCCP::template 26201: _ImplicitlyConvertiblePair<_U1, _U2>(), 26201: bool>::type=true> 26201: constexpr pair(const _T1& __a, const _T2& __b) 26201: : first(__a), second(__b) { } 26201: 26201: 26201: template() 26201: && !_PCCP::template 26201: _ImplicitlyConvertiblePair<_U1, _U2>(), 26201: bool>::type=false> 26201: explicit constexpr pair(const _T1& __a, const _T2& __b) 26201: : first(__a), second(__b) { } 26201: # 288 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_pair.h" 3 26201: template 26201: using _PCCFP = _PCC::value 26201: || !is_same<_T2, _U2>::value, 26201: _T1, _T2>; 26201: 26201: 26201: template::template 26201: _ConstructiblePair<_U1, _U2>() 26201: && _PCCFP<_U1, _U2>::template 26201: _ImplicitlyConvertiblePair<_U1, _U2>(), 26201: bool>::type=true> 26201: constexpr pair(const pair<_U1, _U2>& __p) 26201: : first(__p.first), second(__p.second) { } 26201: 26201: template::template 26201: _ConstructiblePair<_U1, _U2>() 26201: && !_PCCFP<_U1, _U2>::template 26201: _ImplicitlyConvertiblePair<_U1, _U2>(), 26201: bool>::type=false> 26201: explicit constexpr pair(const pair<_U1, _U2>& __p) 26201: : first(__p.first), second(__p.second) { } 26201: 26201: 26201: 26201: constexpr pair(const pair&) = default; 26201: constexpr pair(pair&&) = default; 26201: 26201: 26201: template(), 26201: bool>::type=true> 26201: constexpr pair(_U1&& __x, const _T2& __y) 26201: : first(std::forward<_U1>(__x)), second(__y) { } 26201: 26201: template(), 26201: bool>::type=false> 26201: explicit constexpr pair(_U1&& __x, const _T2& __y) 26201: : first(std::forward<_U1>(__x)), second(__y) { } 26201: 26201: template(), 26201: bool>::type=true> 26201: constexpr pair(const _T1& __x, _U2&& __y) 26201: : first(__x), second(std::forward<_U2>(__y)) { } 26201: 26201: template(), 26201: bool>::type=false> 26201: explicit pair(const _T1& __x, _U2&& __y) 26201: : first(__x), second(std::forward<_U2>(__y)) { } 26201: 26201: template() 26201: && _PCCP::template 26201: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 26201: bool>::type=true> 26201: constexpr pair(_U1&& __x, _U2&& __y) 26201: : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } 26201: 26201: template() 26201: && !_PCCP::template 26201: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 26201: bool>::type=false> 26201: explicit constexpr pair(_U1&& __x, _U2&& __y) 26201: : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } 26201: 26201: 26201: template::template 26201: _MoveConstructiblePair<_U1, _U2>() 26201: && _PCCFP<_U1, _U2>::template 26201: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 26201: bool>::type=true> 26201: constexpr pair(pair<_U1, _U2>&& __p) 26201: : first(std::forward<_U1>(__p.first)), 26201: second(std::forward<_U2>(__p.second)) { } 26201: 26201: template::template 26201: _MoveConstructiblePair<_U1, _U2>() 26201: && !_PCCFP<_U1, _U2>::template 26201: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 26201: bool>::type=false> 26201: explicit constexpr pair(pair<_U1, _U2>&& __p) 26201: : first(std::forward<_U1>(__p.first)), 26201: second(std::forward<_U2>(__p.second)) { } 26201: 26201: template 26201: 26201: pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>); 26201: 26201: pair& 26201: operator=(typename conditional< 26201: __and_, 26201: is_copy_assignable<_T2>>::value, 26201: const pair&, const __nonesuch&>::type __p) 26201: { 26201: first = __p.first; 26201: second = __p.second; 26201: return *this; 26201: } 26201: 26201: pair& 26201: operator=(typename conditional< 26201: __and_, 26201: is_move_assignable<_T2>>::value, 26201: pair&&, __nonesuch&&>::type __p) 26201: noexcept(__and_, 26201: is_nothrow_move_assignable<_T2>>::value) 26201: { 26201: first = std::forward(__p.first); 26201: second = std::forward(__p.second); 26201: return *this; 26201: } 26201: 26201: template 26201: 26201: typename enable_if<__and_, 26201: is_assignable<_T2&, const _U2&>>::value, 26201: pair&>::type 26201: operator=(const pair<_U1, _U2>& __p) 26201: { 26201: first = __p.first; 26201: second = __p.second; 26201: return *this; 26201: } 26201: 26201: template 26201: 26201: typename enable_if<__and_, 26201: is_assignable<_T2&, _U2&&>>::value, 26201: pair&>::type 26201: operator=(pair<_U1, _U2>&& __p) 26201: { 26201: first = std::forward<_U1>(__p.first); 26201: second = std::forward<_U2>(__p.second); 26201: return *this; 26201: } 26201: 26201: 26201: void 26201: swap(pair& __p) 26201: noexcept(__and_<__is_nothrow_swappable<_T1>, 26201: __is_nothrow_swappable<_T2>>::value) 26201: { 26201: using std::swap; 26201: swap(first, __p.first); 26201: swap(second, __p.second); 26201: } 26201: 26201: private: 26201: template 26201: 26201: pair(tuple<_Args1...>&, tuple<_Args2...>&, 26201: _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>); 26201: 26201: }; 26201: 26201: 26201: 26201: 26201: template pair(_T1, _T2) -> pair<_T1, _T2>; 26201: 26201: 26201: 26201: template 26201: inline constexpr bool 26201: operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 26201: { return __x.first == __y.first && __x.second == __y.second; } 26201: # 487 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_pair.h" 3 26201: template 26201: inline constexpr bool 26201: operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 26201: { return __x.first < __y.first 26201: || (!(__y.first < __x.first) && __x.second < __y.second); } 26201: 26201: 26201: template 26201: inline constexpr bool 26201: operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 26201: { return !(__x == __y); } 26201: 26201: 26201: template 26201: inline constexpr bool 26201: operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 26201: { return __y < __x; } 26201: 26201: 26201: template 26201: inline constexpr bool 26201: operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 26201: { return !(__y < __x); } 26201: 26201: 26201: template 26201: inline constexpr bool 26201: operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 26201: { return !(__x < __y); } 26201: # 524 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_pair.h" 3 26201: template 26201: inline 26201: 26201: 26201: typename enable_if<__and_<__is_swappable<_T1>, 26201: __is_swappable<_T2>>::value>::type 26201: 26201: 26201: 26201: swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) 26201: noexcept(noexcept(__x.swap(__y))) 26201: { __x.swap(__y); } 26201: 26201: 26201: template 26201: typename enable_if, 26201: __is_swappable<_T2>>::value>::type 26201: swap(pair<_T1, _T2>&, pair<_T1, _T2>&) = delete; 26201: # 564 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_pair.h" 3 26201: template 26201: constexpr pair::__type, 26201: typename __decay_and_strip<_T2>::__type> 26201: make_pair(_T1&& __x, _T2&& __y) 26201: { 26201: typedef typename __decay_and_strip<_T1>::__type __ds_type1; 26201: typedef typename __decay_and_strip<_T2>::__type __ds_type2; 26201: typedef pair<__ds_type1, __ds_type2> __pair_type; 26201: return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y)); 26201: } 26201: # 583 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_pair.h" 3 26201: 26201: } 26201: # 71 "/usr/x86_64-linux-gnu/include/c++/10/utility" 2 3 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/initializer_list" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/initializer_list" 3 26201: #define _INITIALIZER_LIST 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/initializer_list" 3 26201: 26201: 26201: 26201: 26201: 26201: #pragma GCC visibility push(default) 26201: 26201: 26201: 26201: namespace std 26201: { 26201: 26201: template 26201: class initializer_list 26201: { 26201: public: 26201: typedef _E value_type; 26201: typedef const _E& reference; 26201: typedef const _E& const_reference; 26201: typedef size_t size_type; 26201: typedef const _E* iterator; 26201: typedef const _E* const_iterator; 26201: 26201: private: 26201: iterator _M_array; 26201: size_type _M_len; 26201: 26201: 26201: constexpr initializer_list(const_iterator __a, size_type __l) 26201: : _M_array(__a), _M_len(__l) { } 26201: 26201: public: 26201: constexpr initializer_list() noexcept 26201: : _M_array(0), _M_len(0) { } 26201: 26201: 26201: constexpr size_type 26201: size() const noexcept { return _M_len; } 26201: 26201: 26201: constexpr const_iterator 26201: begin() const noexcept { return _M_array; } 26201: 26201: 26201: constexpr const_iterator 26201: end() const noexcept { return begin() + size(); } 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: constexpr const _Tp* 26201: begin(initializer_list<_Tp> __ils) noexcept 26201: { return __ils.begin(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: constexpr const _Tp* 26201: end(initializer_list<_Tp> __ils) noexcept 26201: { return __ils.end(); } 26201: } 26201: 26201: #pragma GCC visibility pop 26201: # 77 "/usr/x86_64-linux-gnu/include/c++/10/utility" 2 3 26201: 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: template 26201: struct tuple_size; 26201: 26201: 26201: 26201: 26201: 26201: template::type, 26201: typename = typename enable_if::value>::type, 26201: size_t = tuple_size<_Tp>::value> 26201: using __enable_if_has_tuple_size = _Tp; 26201: 26201: template 26201: struct tuple_size> 26201: : public tuple_size<_Tp> { }; 26201: 26201: template 26201: struct tuple_size> 26201: : public tuple_size<_Tp> { }; 26201: 26201: template 26201: struct tuple_size> 26201: : public tuple_size<_Tp> { }; 26201: 26201: 26201: template 26201: struct tuple_element; 26201: 26201: 26201: template 26201: using __tuple_element_t = typename tuple_element<__i, _Tp>::type; 26201: 26201: template 26201: struct tuple_element<__i, const _Tp> 26201: { 26201: typedef typename add_const<__tuple_element_t<__i, _Tp>>::type type; 26201: }; 26201: 26201: template 26201: struct tuple_element<__i, volatile _Tp> 26201: { 26201: typedef typename add_volatile<__tuple_element_t<__i, _Tp>>::type type; 26201: }; 26201: 26201: template 26201: struct tuple_element<__i, const volatile _Tp> 26201: { 26201: typedef typename add_cv<__tuple_element_t<__i, _Tp>>::type type; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: #define __cpp_lib_tuple_element_t 201402L 26201: 26201: template 26201: using tuple_element_t = typename tuple_element<__i, _Tp>::type; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct __is_tuple_like_impl> : true_type 26201: { }; 26201: 26201: 26201: template 26201: struct tuple_size> 26201: : public integral_constant { }; 26201: 26201: 26201: template 26201: struct tuple_element<0, std::pair<_Tp1, _Tp2>> 26201: { typedef _Tp1 type; }; 26201: 26201: 26201: template 26201: struct tuple_element<1, std::pair<_Tp1, _Tp2>> 26201: { typedef _Tp2 type; }; 26201: 26201: template 26201: struct __pair_get; 26201: 26201: template<> 26201: struct __pair_get<0> 26201: { 26201: template 26201: static constexpr _Tp1& 26201: __get(std::pair<_Tp1, _Tp2>& __pair) noexcept 26201: { return __pair.first; } 26201: 26201: template 26201: static constexpr _Tp1&& 26201: __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept 26201: { return std::forward<_Tp1>(__pair.first); } 26201: 26201: template 26201: static constexpr const _Tp1& 26201: __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept 26201: { return __pair.first; } 26201: 26201: template 26201: static constexpr const _Tp1&& 26201: __const_move_get(const std::pair<_Tp1, _Tp2>&& __pair) noexcept 26201: { return std::forward(__pair.first); } 26201: }; 26201: 26201: template<> 26201: struct __pair_get<1> 26201: { 26201: template 26201: static constexpr _Tp2& 26201: __get(std::pair<_Tp1, _Tp2>& __pair) noexcept 26201: { return __pair.second; } 26201: 26201: template 26201: static constexpr _Tp2&& 26201: __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept 26201: { return std::forward<_Tp2>(__pair.second); } 26201: 26201: template 26201: static constexpr const _Tp2& 26201: __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept 26201: { return __pair.second; } 26201: 26201: template 26201: static constexpr const _Tp2&& 26201: __const_move_get(const std::pair<_Tp1, _Tp2>&& __pair) noexcept 26201: { return std::forward(__pair.second); } 26201: }; 26201: 26201: template 26201: constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& 26201: get(std::pair<_Tp1, _Tp2>& __in) noexcept 26201: { return __pair_get<_Int>::__get(__in); } 26201: 26201: template 26201: constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&& 26201: get(std::pair<_Tp1, _Tp2>&& __in) noexcept 26201: { return __pair_get<_Int>::__move_get(std::move(__in)); } 26201: 26201: template 26201: constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& 26201: get(const std::pair<_Tp1, _Tp2>& __in) noexcept 26201: { return __pair_get<_Int>::__const_get(__in); } 26201: 26201: template 26201: constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&& 26201: get(const std::pair<_Tp1, _Tp2>&& __in) noexcept 26201: { return __pair_get<_Int>::__const_move_get(std::move(__in)); } 26201: 26201: 26201: 26201: #define __cpp_lib_tuples_by_type 201304 26201: 26201: template 26201: constexpr _Tp& 26201: get(pair<_Tp, _Up>& __p) noexcept 26201: { return __p.first; } 26201: 26201: template 26201: constexpr const _Tp& 26201: get(const pair<_Tp, _Up>& __p) noexcept 26201: { return __p.first; } 26201: 26201: template 26201: constexpr _Tp&& 26201: get(pair<_Tp, _Up>&& __p) noexcept 26201: { return std::move(__p.first); } 26201: 26201: template 26201: constexpr const _Tp&& 26201: get(const pair<_Tp, _Up>&& __p) noexcept 26201: { return std::move(__p.first); } 26201: 26201: template 26201: constexpr _Tp& 26201: get(pair<_Up, _Tp>& __p) noexcept 26201: { return __p.second; } 26201: 26201: template 26201: constexpr const _Tp& 26201: get(const pair<_Up, _Tp>& __p) noexcept 26201: { return __p.second; } 26201: 26201: template 26201: constexpr _Tp&& 26201: get(pair<_Up, _Tp>&& __p) noexcept 26201: { return std::move(__p.second); } 26201: 26201: template 26201: constexpr const _Tp&& 26201: get(const pair<_Up, _Tp>&& __p) noexcept 26201: { return std::move(__p.second); } 26201: 26201: #define __cpp_lib_exchange_function 201304 26201: 26201: 26201: template 26201: 26201: inline _Tp 26201: exchange(_Tp& __obj, _Up&& __new_val) 26201: { return std::__exchange(__obj, std::forward<_Up>(__new_val)); } 26201: 26201: 26201: 26201: 26201: 26201: template struct _Index_tuple { }; 26201: # 307 "/usr/x86_64-linux-gnu/include/c++/10/utility" 3 26201: template 26201: struct _Build_index_tuple 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: using __type = _Index_tuple<__integer_pack(_Num)...>; 26201: 26201: }; 26201: 26201: 26201: 26201: #define __cpp_lib_integer_sequence 201304 26201: 26201: 26201: template 26201: struct integer_sequence 26201: { 26201: typedef _Tp value_type; 26201: static constexpr size_t size() noexcept { return sizeof...(_Idx); } 26201: }; 26201: 26201: 26201: template 26201: using make_integer_sequence 26201: 26201: 26201: 26201: = integer_sequence<_Tp, __integer_pack(_Num)...>; 26201: 26201: 26201: #undef _GLIBCXX_USE_MAKE_INTEGER_SEQ 26201: 26201: 26201: template 26201: using index_sequence = integer_sequence; 26201: 26201: 26201: template 26201: using make_index_sequence = make_integer_sequence; 26201: 26201: 26201: template 26201: using index_sequence_for = make_index_sequence; 26201: 26201: 26201: 26201: 26201: struct in_place_t { 26201: explicit in_place_t() = default; 26201: }; 26201: 26201: inline constexpr in_place_t in_place{}; 26201: 26201: template struct in_place_type_t 26201: { 26201: explicit in_place_type_t() = default; 26201: }; 26201: 26201: template 26201: inline constexpr in_place_type_t<_Tp> in_place_type{}; 26201: 26201: template struct in_place_index_t 26201: { 26201: explicit in_place_index_t() = default; 26201: }; 26201: 26201: template 26201: inline constexpr in_place_index_t<_Idx> in_place_index{}; 26201: 26201: template 26201: struct __is_in_place_type_impl : false_type 26201: { }; 26201: 26201: template 26201: struct __is_in_place_type_impl> : true_type 26201: { }; 26201: 26201: template 26201: struct __is_in_place_type 26201: : public __is_in_place_type_impl<_Tp> 26201: { }; 26201: 26201: #define __cpp_lib_as_const 201510 26201: template 26201: constexpr add_const_t<_Tp>& as_const(_Tp& __t) noexcept { return __t; } 26201: 26201: template 26201: void as_const(const _Tp&&) = delete; 26201: # 473 "/usr/x86_64-linux-gnu/include/c++/10/utility" 3 26201: 26201: } 26201: # 61 "/usr/x86_64-linux-gnu/include/c++/10/algorithm" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 1 3 26201: # 57 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: #define _STL_ALGOBASE_H 1 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/functexcept.h" 1 3 26201: # 37 "/usr/x86_64-linux-gnu/include/c++/10/bits/functexcept.h" 3 26201: #define _FUNCTEXCEPT_H 1 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/exception_defines.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/exception_defines.h" 3 26201: #define _EXCEPTION_DEFINES_H 1 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/bits/exception_defines.h" 3 26201: #define __try try 26201: #define __catch(X) catch(X) 26201: #define __throw_exception_again throw 26201: # 41 "/usr/x86_64-linux-gnu/include/c++/10/bits/functexcept.h" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: void 26201: __throw_bad_exception(void) __attribute__((__noreturn__)); 26201: 26201: 26201: void 26201: __throw_bad_alloc(void) __attribute__((__noreturn__)); 26201: 26201: 26201: void 26201: __throw_bad_cast(void) __attribute__((__noreturn__)); 26201: 26201: void 26201: __throw_bad_typeid(void) __attribute__((__noreturn__)); 26201: 26201: 26201: void 26201: __throw_logic_error(const char*) __attribute__((__noreturn__)); 26201: 26201: void 26201: __throw_domain_error(const char*) __attribute__((__noreturn__)); 26201: 26201: void 26201: __throw_invalid_argument(const char*) __attribute__((__noreturn__)); 26201: 26201: void 26201: __throw_length_error(const char*) __attribute__((__noreturn__)); 26201: 26201: void 26201: __throw_out_of_range(const char*) __attribute__((__noreturn__)); 26201: 26201: void 26201: __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__)) 26201: __attribute__((__format__(__gnu_printf__, 1, 2))); 26201: 26201: void 26201: __throw_runtime_error(const char*) __attribute__((__noreturn__)); 26201: 26201: void 26201: __throw_range_error(const char*) __attribute__((__noreturn__)); 26201: 26201: void 26201: __throw_overflow_error(const char*) __attribute__((__noreturn__)); 26201: 26201: void 26201: __throw_underflow_error(const char*) __attribute__((__noreturn__)); 26201: 26201: 26201: void 26201: __throw_ios_failure(const char*) __attribute__((__noreturn__)); 26201: 26201: void 26201: __throw_ios_failure(const char*, int) __attribute__((__noreturn__)); 26201: 26201: 26201: void 26201: __throw_system_error(int) __attribute__((__noreturn__)); 26201: 26201: 26201: void 26201: __throw_future_error(int) __attribute__((__noreturn__)); 26201: 26201: 26201: void 26201: __throw_bad_function_call() __attribute__((__noreturn__)); 26201: 26201: 26201: } 26201: # 61 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/cpp_type_traits.h" 1 3 26201: # 33 "/usr/x86_64-linux-gnu/include/c++/10/bits/cpp_type_traits.h" 3 26201: #define _CPP_TYPE_TRAITS_H 1 26201: 26201: 26201: # 36 "/usr/x86_64-linux-gnu/include/c++/10/bits/cpp_type_traits.h" 3 26201: # 67 "/usr/x86_64-linux-gnu/include/c++/10/bits/cpp_type_traits.h" 3 26201: extern "C++" { 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: struct __true_type { }; 26201: struct __false_type { }; 26201: 26201: template 26201: struct __truth_type 26201: { typedef __false_type __type; }; 26201: 26201: template<> 26201: struct __truth_type 26201: { typedef __true_type __type; }; 26201: 26201: 26201: 26201: template 26201: struct __traitor 26201: { 26201: enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; 26201: typedef typename __truth_type<__value>::__type __type; 26201: }; 26201: 26201: 26201: template 26201: struct __are_same 26201: { 26201: enum { __value = 0 }; 26201: typedef __false_type __type; 26201: }; 26201: 26201: template 26201: struct __are_same<_Tp, _Tp> 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: 26201: template 26201: struct __is_void 26201: { 26201: enum { __value = 0 }; 26201: typedef __false_type __type; 26201: }; 26201: 26201: template<> 26201: struct __is_void 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: 26201: 26201: 26201: template 26201: struct __is_integer 26201: { 26201: enum { __value = 0 }; 26201: typedef __false_type __type; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: template<> 26201: struct __is_integer 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: template<> 26201: struct __is_integer 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: template<> 26201: struct __is_integer 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: template<> 26201: struct __is_integer 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: 26201: template<> 26201: struct __is_integer 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: # 184 "/usr/x86_64-linux-gnu/include/c++/10/bits/cpp_type_traits.h" 3 26201: template<> 26201: struct __is_integer 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: template<> 26201: struct __is_integer 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: 26201: template<> 26201: struct __is_integer 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: template<> 26201: struct __is_integer 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: template<> 26201: struct __is_integer 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: template<> 26201: struct __is_integer 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: template<> 26201: struct __is_integer 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: template<> 26201: struct __is_integer 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: template<> 26201: struct __is_integer 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: template<> 26201: struct __is_integer 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: #define __INT_N(TYPE) template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; 26201: # 282 "/usr/x86_64-linux-gnu/include/c++/10/bits/cpp_type_traits.h" 3 26201: #undef __INT_N 26201: 26201: 26201: 26201: 26201: template 26201: struct __is_floating 26201: { 26201: enum { __value = 0 }; 26201: typedef __false_type __type; 26201: }; 26201: 26201: 26201: template<> 26201: struct __is_floating 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: template<> 26201: struct __is_floating 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: template<> 26201: struct __is_floating 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: 26201: 26201: 26201: template 26201: struct __is_pointer 26201: { 26201: enum { __value = 0 }; 26201: typedef __false_type __type; 26201: }; 26201: 26201: template 26201: struct __is_pointer<_Tp*> 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: 26201: 26201: 26201: template 26201: struct __is_arithmetic 26201: : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > 26201: { }; 26201: 26201: 26201: 26201: 26201: template 26201: struct __is_scalar 26201: : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> > 26201: { }; 26201: 26201: 26201: 26201: 26201: template 26201: struct __is_char 26201: { 26201: enum { __value = 0 }; 26201: typedef __false_type __type; 26201: }; 26201: 26201: template<> 26201: struct __is_char 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: 26201: template<> 26201: struct __is_char 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: 26201: template 26201: struct __is_byte 26201: { 26201: enum { __value = 0 }; 26201: typedef __false_type __type; 26201: }; 26201: 26201: template<> 26201: struct __is_byte 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: template<> 26201: struct __is_byte 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: template<> 26201: struct __is_byte 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: 26201: enum class byte : unsigned char; 26201: 26201: template<> 26201: struct __is_byte 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: # 423 "/usr/x86_64-linux-gnu/include/c++/10/bits/cpp_type_traits.h" 3 26201: template struct iterator_traits; 26201: 26201: 26201: template 26201: struct __is_nonvolatile_trivially_copyable 26201: { 26201: enum { __value = __is_trivially_copyable(_Tp) }; 26201: }; 26201: 26201: 26201: 26201: 26201: template 26201: struct __is_nonvolatile_trivially_copyable 26201: { 26201: enum { __value = 0 }; 26201: }; 26201: 26201: 26201: template 26201: struct __memcpyable 26201: { 26201: enum { __value = 0 }; 26201: }; 26201: 26201: template 26201: struct __memcpyable<_Tp*, _Tp*> 26201: : __is_nonvolatile_trivially_copyable<_Tp> 26201: { }; 26201: 26201: template 26201: struct __memcpyable<_Tp*, const _Tp*> 26201: : __is_nonvolatile_trivially_copyable<_Tp> 26201: { }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct __memcmpable 26201: { 26201: enum { __value = 0 }; 26201: }; 26201: 26201: 26201: template 26201: struct __memcmpable<_Tp*, _Tp*> 26201: : __is_nonvolatile_trivially_copyable<_Tp> 26201: { }; 26201: 26201: template 26201: struct __memcmpable 26201: : __is_nonvolatile_trivially_copyable<_Tp> 26201: { }; 26201: 26201: template 26201: struct __memcmpable<_Tp*, const _Tp*> 26201: : __is_nonvolatile_trivially_copyable<_Tp> 26201: { }; 26201: 26201: 26201: 26201: 26201: template::__value> 26201: struct __is_memcmp_ordered 26201: { 26201: static const bool __value = _Tp(-1) > _Tp(1); 26201: }; 26201: 26201: template 26201: struct __is_memcmp_ordered<_Tp, false> 26201: { 26201: static const bool __value = false; 26201: }; 26201: 26201: 26201: template 26201: struct __is_memcmp_ordered_with 26201: { 26201: static const bool __value = __is_memcmp_ordered<_Tp>::__value 26201: && __is_memcmp_ordered<_Up>::__value; 26201: }; 26201: 26201: template 26201: struct __is_memcmp_ordered_with<_Tp, _Up, false> 26201: { 26201: static const bool __value = false; 26201: }; 26201: 26201: 26201: 26201: template<> 26201: struct __is_memcmp_ordered_with 26201: { static constexpr bool __value = true; }; 26201: 26201: template 26201: struct __is_memcmp_ordered_with<_Tp, std::byte, _SameSize> 26201: { static constexpr bool __value = false; }; 26201: 26201: template 26201: struct __is_memcmp_ordered_with 26201: { static constexpr bool __value = false; }; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct __is_move_iterator 26201: { 26201: enum { __value = 0 }; 26201: typedef __false_type __type; 26201: }; 26201: 26201: 26201: 26201: template 26201: 26201: inline _Iterator 26201: __miter_base(_Iterator __it) 26201: { return __it; } 26201: 26201: 26201: } 26201: } 26201: # 62 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/ext/type_traits.h" 1 3 26201: # 30 "/usr/x86_64-linux-gnu/include/c++/10/ext/type_traits.h" 3 26201: #define _EXT_TYPE_TRAITS 1 26201: 26201: 26201: # 33 "/usr/x86_64-linux-gnu/include/c++/10/ext/type_traits.h" 3 26201: 26201: 26201: 26201: 26201: extern "C++" { 26201: 26201: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: template 26201: struct __enable_if 26201: { }; 26201: 26201: template 26201: struct __enable_if 26201: { typedef _Tp __type; }; 26201: 26201: 26201: 26201: template 26201: struct __conditional_type 26201: { typedef _Iftrue __type; }; 26201: 26201: template 26201: struct __conditional_type 26201: { typedef _Iffalse __type; }; 26201: 26201: 26201: 26201: template 26201: struct __add_unsigned 26201: { 26201: private: 26201: typedef __enable_if::__value, _Tp> __if_type; 26201: 26201: public: 26201: typedef typename __if_type::__type __type; 26201: }; 26201: 26201: template<> 26201: struct __add_unsigned 26201: { typedef unsigned char __type; }; 26201: 26201: template<> 26201: struct __add_unsigned 26201: { typedef unsigned char __type; }; 26201: 26201: template<> 26201: struct __add_unsigned 26201: { typedef unsigned short __type; }; 26201: 26201: template<> 26201: struct __add_unsigned 26201: { typedef unsigned int __type; }; 26201: 26201: template<> 26201: struct __add_unsigned 26201: { typedef unsigned long __type; }; 26201: 26201: template<> 26201: struct __add_unsigned 26201: { typedef unsigned long long __type; }; 26201: 26201: 26201: template<> 26201: struct __add_unsigned; 26201: 26201: template<> 26201: struct __add_unsigned; 26201: 26201: 26201: 26201: template 26201: struct __remove_unsigned 26201: { 26201: private: 26201: typedef __enable_if::__value, _Tp> __if_type; 26201: 26201: public: 26201: typedef typename __if_type::__type __type; 26201: }; 26201: 26201: template<> 26201: struct __remove_unsigned 26201: { typedef signed char __type; }; 26201: 26201: template<> 26201: struct __remove_unsigned 26201: { typedef signed char __type; }; 26201: 26201: template<> 26201: struct __remove_unsigned 26201: { typedef short __type; }; 26201: 26201: template<> 26201: struct __remove_unsigned 26201: { typedef int __type; }; 26201: 26201: template<> 26201: struct __remove_unsigned 26201: { typedef long __type; }; 26201: 26201: template<> 26201: struct __remove_unsigned 26201: { typedef long long __type; }; 26201: 26201: 26201: template<> 26201: struct __remove_unsigned; 26201: 26201: template<> 26201: struct __remove_unsigned; 26201: 26201: 26201: 26201: template 26201: inline bool 26201: __is_null_pointer(_Type* __ptr) 26201: { return __ptr == 0; } 26201: 26201: template 26201: inline bool 26201: __is_null_pointer(_Type) 26201: { return false; } 26201: 26201: 26201: inline bool 26201: __is_null_pointer(std::nullptr_t) 26201: { return true; } 26201: 26201: 26201: 26201: template::__value> 26201: struct __promote 26201: { typedef double __type; }; 26201: 26201: 26201: 26201: 26201: template 26201: struct __promote<_Tp, false> 26201: { }; 26201: 26201: template<> 26201: struct __promote 26201: { typedef long double __type; }; 26201: 26201: template<> 26201: struct __promote 26201: { typedef double __type; }; 26201: 26201: template<> 26201: struct __promote 26201: { typedef float __type; }; 26201: 26201: template::__type, 26201: typename _Up2 = typename __promote<_Up>::__type> 26201: struct __promote_2 26201: { 26201: typedef __typeof__(_Tp2() + _Up2()) __type; 26201: }; 26201: 26201: template::__type, 26201: typename _Up2 = typename __promote<_Up>::__type, 26201: typename _Vp2 = typename __promote<_Vp>::__type> 26201: struct __promote_3 26201: { 26201: typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type; 26201: }; 26201: 26201: template::__type, 26201: typename _Up2 = typename __promote<_Up>::__type, 26201: typename _Vp2 = typename __promote<_Vp>::__type, 26201: typename _Wp2 = typename __promote<_Wp>::__type> 26201: struct __promote_4 26201: { 26201: typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type; 26201: }; 26201: 26201: 26201: } 26201: } 26201: # 63 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/ext/numeric_traits.h" 1 3 26201: # 30 "/usr/x86_64-linux-gnu/include/c++/10/ext/numeric_traits.h" 3 26201: #define _EXT_NUMERIC_TRAITS 1 26201: 26201: 26201: # 33 "/usr/x86_64-linux-gnu/include/c++/10/ext/numeric_traits.h" 3 26201: 26201: 26201: 26201: 26201: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 50 "/usr/x86_64-linux-gnu/include/c++/10/ext/numeric_traits.h" 3 26201: template 26201: struct __is_integer_nonstrict 26201: : public std::__is_integer<_Tp> 26201: { 26201: using std::__is_integer<_Tp>::__value; 26201: 26201: 26201: enum { __width = __value ? sizeof(_Tp) * 8 : 0 }; 26201: }; 26201: 26201: template 26201: struct __numeric_traits_integer 26201: { 26201: 26201: static_assert(__is_integer_nonstrict<_Value>::__value, 26201: "invalid specialization"); 26201: 26201: 26201: 26201: 26201: static const bool __is_signed = (_Value)(-1) < 0; 26201: static const int __digits 26201: = __is_integer_nonstrict<_Value>::__width - __is_signed; 26201: 26201: 26201: static const _Value __max = __is_signed 26201: ? (((((_Value)1 << (__digits - 1)) - 1) << 1) + 1) 26201: : ~(_Value)0; 26201: static const _Value __min = __is_signed ? -__max - 1 : (_Value)0; 26201: }; 26201: 26201: template 26201: const _Value __numeric_traits_integer<_Value>::__min; 26201: 26201: template 26201: const _Value __numeric_traits_integer<_Value>::__max; 26201: 26201: template 26201: const bool __numeric_traits_integer<_Value>::__is_signed; 26201: 26201: template 26201: const int __numeric_traits_integer<_Value>::__digits; 26201: 26201: 26201: 26201: #define _GLIBCXX_INT_N_TRAITS(T,WIDTH) template<> struct __is_integer_nonstrict { enum { __value = 1 }; typedef std::__true_type __type; enum { __width = WIDTH }; }; template<> struct __is_integer_nonstrict { enum { __value = 1 }; typedef std::__true_type __type; enum { __width = WIDTH }; }; 26201: # 128 "/usr/x86_64-linux-gnu/include/c++/10/ext/numeric_traits.h" 3 26201: template<> struct __is_integer_nonstrict<__int128> { enum { __value = 1 }; typedef std::__true_type __type; enum { __width = 128 }; }; template<> struct __is_integer_nonstrict { enum { __value = 1 }; typedef std::__true_type __type; enum { __width = 128 }; }; 26201: 26201: 26201: #undef _GLIBCXX_INT_N_TRAITS 26201: 26201: 26201: 26201: template 26201: using __int_traits = __numeric_traits_integer<_Tp>; 26201: 26201: 26201: #define __glibcxx_floating(_Tp,_Fval,_Dval,_LDval) (std::__are_same<_Tp, float>::__value ? _Fval : std::__are_same<_Tp, double>::__value ? _Dval : _LDval) 26201: 26201: 26201: 26201: #define __glibcxx_max_digits10(_Tp) (2 + __glibcxx_floating(_Tp, __FLT_MANT_DIG__, __DBL_MANT_DIG__, __LDBL_MANT_DIG__) * 643L / 2136) 26201: 26201: 26201: 26201: #define __glibcxx_digits10(_Tp) __glibcxx_floating(_Tp, __FLT_DIG__, __DBL_DIG__, __LDBL_DIG__) 26201: 26201: 26201: #define __glibcxx_max_exponent10(_Tp) __glibcxx_floating(_Tp, __FLT_MAX_10_EXP__, __DBL_MAX_10_EXP__, __LDBL_MAX_10_EXP__) 26201: 26201: 26201: 26201: 26201: template 26201: struct __numeric_traits_floating 26201: { 26201: 26201: static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 64) * 643L / 2136); 26201: 26201: 26201: static const bool __is_signed = true; 26201: static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 18); 26201: static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 4932); 26201: }; 26201: 26201: template 26201: const int __numeric_traits_floating<_Value>::__max_digits10; 26201: 26201: template 26201: const bool __numeric_traits_floating<_Value>::__is_signed; 26201: 26201: template 26201: const int __numeric_traits_floating<_Value>::__digits10; 26201: 26201: template 26201: const int __numeric_traits_floating<_Value>::__max_exponent10; 26201: 26201: template 26201: struct __numeric_traits 26201: : public __conditional_type<__is_integer_nonstrict<_Value>::__value, 26201: __numeric_traits_integer<_Value>, 26201: __numeric_traits_floating<_Value> >::__type 26201: { }; 26201: 26201: 26201: } 26201: 26201: #undef __glibcxx_floating 26201: #undef __glibcxx_max_digits10 26201: #undef __glibcxx_digits10 26201: #undef __glibcxx_max_exponent10 26201: # 64 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 2 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator_base_types.h" 1 3 26201: # 60 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator_base_types.h" 3 26201: #define _STL_ITERATOR_BASE_TYPES_H 1 26201: 26201: 26201: # 63 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator_base_types.h" 3 26201: # 74 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator_base_types.h" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 93 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator_base_types.h" 3 26201: struct input_iterator_tag { }; 26201: 26201: 26201: struct output_iterator_tag { }; 26201: 26201: 26201: struct forward_iterator_tag : public input_iterator_tag { }; 26201: 26201: 26201: 26201: struct bidirectional_iterator_tag : public forward_iterator_tag { }; 26201: 26201: 26201: 26201: struct random_access_iterator_tag : public bidirectional_iterator_tag { }; 26201: # 125 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator_base_types.h" 3 26201: template 26201: struct iterator 26201: { 26201: 26201: typedef _Category iterator_category; 26201: 26201: typedef _Tp value_type; 26201: 26201: typedef _Distance difference_type; 26201: 26201: typedef _Pointer pointer; 26201: 26201: typedef _Reference reference; 26201: }; 26201: # 149 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator_base_types.h" 3 26201: template 26201: struct iterator_traits; 26201: 26201: 26201: 26201: 26201: template> 26201: struct __iterator_traits { }; 26201: 26201: 26201: 26201: template 26201: struct __iterator_traits<_Iterator, 26201: __void_t> 26201: { 26201: typedef typename _Iterator::iterator_category iterator_category; 26201: typedef typename _Iterator::value_type value_type; 26201: typedef typename _Iterator::difference_type difference_type; 26201: typedef typename _Iterator::pointer pointer; 26201: typedef typename _Iterator::reference reference; 26201: }; 26201: 26201: 26201: template 26201: struct iterator_traits 26201: : public __iterator_traits<_Iterator> { }; 26201: # 209 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator_base_types.h" 3 26201: template 26201: struct iterator_traits<_Tp*> 26201: { 26201: typedef random_access_iterator_tag iterator_category; 26201: typedef _Tp value_type; 26201: typedef ptrdiff_t difference_type; 26201: typedef _Tp* pointer; 26201: typedef _Tp& reference; 26201: }; 26201: 26201: 26201: template 26201: struct iterator_traits 26201: { 26201: typedef random_access_iterator_tag iterator_category; 26201: typedef _Tp value_type; 26201: typedef ptrdiff_t difference_type; 26201: typedef const _Tp* pointer; 26201: typedef const _Tp& reference; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline constexpr 26201: typename iterator_traits<_Iter>::iterator_category 26201: __iterator_category(const _Iter&) 26201: { return typename iterator_traits<_Iter>::iterator_category(); } 26201: 26201: 26201: 26201: 26201: template 26201: using __iterator_category_t 26201: = typename iterator_traits<_Iter>::iterator_category; 26201: 26201: template 26201: using _RequireInputIter = 26201: __enable_if_t, 26201: input_iterator_tag>::value>; 26201: 26201: template> 26201: struct __is_random_access_iter 26201: : is_base_of 26201: { 26201: typedef is_base_of _Base; 26201: enum { __value = _Base::value }; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 66 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator_base_funcs.h" 1 3 26201: # 60 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator_base_funcs.h" 3 26201: #define _STL_ITERATOR_BASE_FUNCS_H 1 26201: 26201: 26201: # 63 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator_base_funcs.h" 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/concept_check.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/concept_check.h" 3 26201: #define _CONCEPT_CHECK_H 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/concept_check.h" 3 26201: # 48 "/usr/x86_64-linux-gnu/include/c++/10/bits/concept_check.h" 3 26201: #define __glibcxx_function_requires(...) 26201: #define __glibcxx_class_requires(_a,_b) 26201: #define __glibcxx_class_requires2(_a,_b,_c) 26201: #define __glibcxx_class_requires3(_a,_b,_c,_d) 26201: #define __glibcxx_class_requires4(_a,_b,_c,_d,_e) 26201: # 65 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator_base_funcs.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/debug/assertions.h" 1 3 26201: # 30 "/usr/x86_64-linux-gnu/include/c++/10/debug/assertions.h" 3 26201: #define _GLIBCXX_DEBUG_ASSERTIONS_H 1 26201: 26201: 26201: 26201: #define _GLIBCXX_DEBUG_ASSERT(_Condition) 26201: #define _GLIBCXX_DEBUG_PEDASSERT(_Condition) 26201: #define _GLIBCXX_DEBUG_ONLY(_Statement) 26201: 26201: 26201: 26201: 26201: #define __glibcxx_requires_non_empty_range(_First,_Last) 26201: #define __glibcxx_requires_nonempty() 26201: #define __glibcxx_requires_subscript(_N) 26201: # 66 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator_base_funcs.h" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: template struct _List_iterator; 26201: template struct _List_const_iterator; 26201: 26201: 26201: template 26201: inline constexpr 26201: typename iterator_traits<_InputIterator>::difference_type 26201: __distance(_InputIterator __first, _InputIterator __last, 26201: input_iterator_tag) 26201: { 26201: 26201: 26201: 26201: typename iterator_traits<_InputIterator>::difference_type __n = 0; 26201: while (__first != __last) 26201: { 26201: ++__first; 26201: ++__n; 26201: } 26201: return __n; 26201: } 26201: 26201: template 26201: inline constexpr 26201: typename iterator_traits<_RandomAccessIterator>::difference_type 26201: __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, 26201: random_access_iterator_tag) 26201: { 26201: 26201: 26201: 26201: return __last - __first; 26201: } 26201: 26201: 26201: 26201: template 26201: ptrdiff_t 26201: __distance(std::_List_iterator<_Tp>, 26201: std::_List_iterator<_Tp>, 26201: input_iterator_tag); 26201: 26201: template 26201: ptrdiff_t 26201: __distance(std::_List_const_iterator<_Tp>, 26201: std::_List_const_iterator<_Tp>, 26201: input_iterator_tag); 26201: # 135 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator_base_funcs.h" 3 26201: template 26201: inline constexpr 26201: typename iterator_traits<_InputIterator>::difference_type 26201: distance(_InputIterator __first, _InputIterator __last) 26201: { 26201: 26201: return std::__distance(__first, __last, 26201: std::__iterator_category(__first)); 26201: } 26201: 26201: template 26201: inline constexpr void 26201: __advance(_InputIterator& __i, _Distance __n, input_iterator_tag) 26201: { 26201: 26201: 26201: ; 26201: while (__n--) 26201: ++__i; 26201: } 26201: 26201: template 26201: inline constexpr void 26201: __advance(_BidirectionalIterator& __i, _Distance __n, 26201: bidirectional_iterator_tag) 26201: { 26201: 26201: 26201: 26201: if (__n > 0) 26201: while (__n--) 26201: ++__i; 26201: else 26201: while (__n++) 26201: --__i; 26201: } 26201: 26201: template 26201: inline constexpr void 26201: __advance(_RandomAccessIterator& __i, _Distance __n, 26201: random_access_iterator_tag) 26201: { 26201: 26201: 26201: 26201: if (__builtin_constant_p(__n) && __n == 1) 26201: ++__i; 26201: else if (__builtin_constant_p(__n) && __n == -1) 26201: --__i; 26201: else 26201: __i += __n; 26201: } 26201: # 200 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator_base_funcs.h" 3 26201: template 26201: inline constexpr void 26201: advance(_InputIterator& __i, _Distance __n) 26201: { 26201: 26201: typename iterator_traits<_InputIterator>::difference_type __d = __n; 26201: std::__advance(__i, __d, std::__iterator_category(__i)); 26201: } 26201: 26201: 26201: 26201: template 26201: inline constexpr _InputIterator 26201: next(_InputIterator __x, typename 26201: iterator_traits<_InputIterator>::difference_type __n = 1) 26201: { 26201: 26201: 26201: std::advance(__x, __n); 26201: return __x; 26201: } 26201: 26201: template 26201: inline constexpr _BidirectionalIterator 26201: prev(_BidirectionalIterator __x, typename 26201: iterator_traits<_BidirectionalIterator>::difference_type __n = 1) 26201: { 26201: 26201: 26201: 26201: std::advance(__x, -__n); 26201: return __x; 26201: } 26201: 26201: 26201: 26201: 26201: } 26201: # 67 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 1 3 26201: # 61 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: #define _STL_ITERATOR_H 1 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/ptr_traits.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/ptr_traits.h" 3 26201: #define _PTR_TRAITS_H 1 26201: # 42 "/usr/x86_64-linux-gnu/include/c++/10/bits/ptr_traits.h" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: class __undefined; 26201: 26201: 26201: template 26201: struct __get_first_arg 26201: { using type = __undefined; }; 26201: 26201: template class _Template, typename _Tp, 26201: typename... _Types> 26201: struct __get_first_arg<_Template<_Tp, _Types...>> 26201: { using type = _Tp; }; 26201: 26201: template 26201: using __get_first_arg_t = typename __get_first_arg<_Tp>::type; 26201: 26201: 26201: template 26201: struct __replace_first_arg 26201: { }; 26201: 26201: template class _Template, typename _Up, 26201: typename _Tp, typename... _Types> 26201: struct __replace_first_arg<_Template<_Tp, _Types...>, _Up> 26201: { using type = _Template<_Up, _Types...>; }; 26201: 26201: template 26201: using __replace_first_arg_t = typename __replace_first_arg<_Tp, _Up>::type; 26201: 26201: template 26201: using __make_not_void 26201: = typename conditional::value, __undefined, _Tp>::type; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct pointer_traits 26201: { 26201: private: 26201: template 26201: using __element_type = typename _Tp::element_type; 26201: 26201: template 26201: using __difference_type = typename _Tp::difference_type; 26201: 26201: template 26201: struct __rebind : __replace_first_arg<_Tp, _Up> { }; 26201: 26201: template 26201: struct __rebind<_Tp, _Up, __void_t>> 26201: { using type = typename _Tp::template rebind<_Up>; }; 26201: 26201: public: 26201: 26201: using pointer = _Ptr; 26201: 26201: 26201: using element_type 26201: = __detected_or_t<__get_first_arg_t<_Ptr>, __element_type, _Ptr>; 26201: 26201: 26201: using difference_type 26201: = __detected_or_t; 26201: 26201: 26201: template 26201: using rebind = typename __rebind<_Ptr, _Up>::type; 26201: 26201: static _Ptr 26201: pointer_to(__make_not_void& __e) 26201: { return _Ptr::pointer_to(__e); } 26201: 26201: static_assert(!is_same::value, 26201: "pointer type defines element_type or is like SomePointer"); 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct pointer_traits<_Tp*> 26201: { 26201: 26201: typedef _Tp* pointer; 26201: 26201: typedef _Tp element_type; 26201: 26201: typedef ptrdiff_t difference_type; 26201: 26201: template 26201: using rebind = _Up*; 26201: 26201: 26201: 26201: 26201: 26201: 26201: static pointer 26201: pointer_to(__make_not_void& __r) noexcept 26201: { return std::addressof(__r); } 26201: }; 26201: 26201: 26201: template 26201: using __ptr_rebind = typename pointer_traits<_Ptr>::template rebind<_Tp>; 26201: 26201: template 26201: constexpr _Tp* 26201: __to_address(_Tp* __ptr) noexcept 26201: { 26201: static_assert(!std::is_function<_Tp>::value, "not a function pointer"); 26201: return __ptr; 26201: } 26201: 26201: 26201: template 26201: constexpr typename std::pointer_traits<_Ptr>::element_type* 26201: __to_address(const _Ptr& __ptr) 26201: { return std::__to_address(__ptr.operator->()); } 26201: # 210 "/usr/x86_64-linux-gnu/include/c++/10/bits/ptr_traits.h" 3 26201: 26201: } 26201: # 67 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 2 3 26201: # 76 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: #define __cpp_lib_array_constexpr 201803L 26201: # 85 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 124 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: template 26201: class reverse_iterator 26201: : public iterator::iterator_category, 26201: typename iterator_traits<_Iterator>::value_type, 26201: typename iterator_traits<_Iterator>::difference_type, 26201: typename iterator_traits<_Iterator>::pointer, 26201: typename iterator_traits<_Iterator>::reference> 26201: { 26201: protected: 26201: _Iterator current; 26201: 26201: typedef iterator_traits<_Iterator> __traits_type; 26201: 26201: public: 26201: typedef _Iterator iterator_type; 26201: typedef typename __traits_type::pointer pointer; 26201: 26201: typedef typename __traits_type::difference_type difference_type; 26201: typedef typename __traits_type::reference reference; 26201: # 163 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: constexpr 26201: reverse_iterator() : current() { } 26201: 26201: 26201: 26201: 26201: explicit constexpr 26201: reverse_iterator(iterator_type __x) : current(__x) { } 26201: 26201: 26201: 26201: 26201: constexpr 26201: reverse_iterator(const reverse_iterator& __x) 26201: : current(__x.current) { } 26201: 26201: 26201: reverse_iterator& operator=(const reverse_iterator&) = default; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: constexpr 26201: reverse_iterator(const reverse_iterator<_Iter>& __x) 26201: : current(__x.base()) { } 26201: 26201: 26201: 26201: 26201: constexpr iterator_type 26201: base() const 26201: { return current; } 26201: # 209 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: constexpr reference 26201: operator*() const 26201: { 26201: _Iterator __tmp = current; 26201: return *--__tmp; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: constexpr pointer 26201: operator->() const 26201: 26201: 26201: 26201: 26201: { 26201: 26201: 26201: _Iterator __tmp = current; 26201: --__tmp; 26201: return _S_to_pointer(__tmp); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: constexpr reverse_iterator& 26201: operator++() 26201: { 26201: --current; 26201: return *this; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: constexpr reverse_iterator 26201: operator++(int) 26201: { 26201: reverse_iterator __tmp = *this; 26201: --current; 26201: return __tmp; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: constexpr reverse_iterator& 26201: operator--() 26201: { 26201: ++current; 26201: return *this; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: constexpr reverse_iterator 26201: operator--(int) 26201: { 26201: reverse_iterator __tmp = *this; 26201: ++current; 26201: return __tmp; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: constexpr reverse_iterator 26201: operator+(difference_type __n) const 26201: { return reverse_iterator(current - __n); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: constexpr reverse_iterator& 26201: operator+=(difference_type __n) 26201: { 26201: current -= __n; 26201: return *this; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: constexpr reverse_iterator 26201: operator-(difference_type __n) const 26201: { return reverse_iterator(current + __n); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: constexpr reverse_iterator& 26201: operator-=(difference_type __n) 26201: { 26201: current += __n; 26201: return *this; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: constexpr reference 26201: operator[](difference_type __n) const 26201: { return *(*this + __n); } 26201: # 363 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: private: 26201: template 26201: static constexpr _Tp* 26201: _S_to_pointer(_Tp* __p) 26201: { return __p; } 26201: 26201: template 26201: static constexpr pointer 26201: _S_to_pointer(_Tp __t) 26201: { return __t.operator->(); } 26201: }; 26201: # 386 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: template 26201: inline constexpr bool 26201: operator==(const reverse_iterator<_Iterator>& __x, 26201: const reverse_iterator<_Iterator>& __y) 26201: { return __x.base() == __y.base(); } 26201: 26201: template 26201: inline constexpr bool 26201: operator<(const reverse_iterator<_Iterator>& __x, 26201: const reverse_iterator<_Iterator>& __y) 26201: { return __y.base() < __x.base(); } 26201: 26201: template 26201: inline constexpr bool 26201: operator!=(const reverse_iterator<_Iterator>& __x, 26201: const reverse_iterator<_Iterator>& __y) 26201: { return !(__x == __y); } 26201: 26201: template 26201: inline constexpr bool 26201: operator>(const reverse_iterator<_Iterator>& __x, 26201: const reverse_iterator<_Iterator>& __y) 26201: { return __y < __x; } 26201: 26201: template 26201: inline constexpr bool 26201: operator<=(const reverse_iterator<_Iterator>& __x, 26201: const reverse_iterator<_Iterator>& __y) 26201: { return !(__y < __x); } 26201: 26201: template 26201: inline constexpr bool 26201: operator>=(const reverse_iterator<_Iterator>& __x, 26201: const reverse_iterator<_Iterator>& __y) 26201: { return !(__x < __y); } 26201: 26201: 26201: 26201: template 26201: inline constexpr bool 26201: operator==(const reverse_iterator<_IteratorL>& __x, 26201: const reverse_iterator<_IteratorR>& __y) 26201: { return __x.base() == __y.base(); } 26201: 26201: template 26201: inline constexpr bool 26201: operator<(const reverse_iterator<_IteratorL>& __x, 26201: const reverse_iterator<_IteratorR>& __y) 26201: { return __y.base() < __x.base(); } 26201: 26201: template 26201: inline constexpr bool 26201: operator!=(const reverse_iterator<_IteratorL>& __x, 26201: const reverse_iterator<_IteratorR>& __y) 26201: { return !(__x == __y); } 26201: 26201: template 26201: inline constexpr bool 26201: operator>(const reverse_iterator<_IteratorL>& __x, 26201: const reverse_iterator<_IteratorR>& __y) 26201: { return __y < __x; } 26201: 26201: template 26201: inline constexpr bool 26201: operator<=(const reverse_iterator<_IteratorL>& __x, 26201: const reverse_iterator<_IteratorR>& __y) 26201: { return !(__y < __x); } 26201: 26201: template 26201: inline constexpr bool 26201: operator>=(const reverse_iterator<_IteratorL>& __x, 26201: const reverse_iterator<_IteratorR>& __y) 26201: { return !(__x < __y); } 26201: # 526 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: template 26201: inline constexpr auto 26201: operator-(const reverse_iterator<_IteratorL>& __x, 26201: const reverse_iterator<_IteratorR>& __y) 26201: -> decltype(__y.base() - __x.base()) 26201: { return __y.base() - __x.base(); } 26201: 26201: 26201: template 26201: inline constexpr reverse_iterator<_Iterator> 26201: operator+(typename reverse_iterator<_Iterator>::difference_type __n, 26201: const reverse_iterator<_Iterator>& __x) 26201: { return reverse_iterator<_Iterator>(__x.base() - __n); } 26201: 26201: 26201: 26201: template 26201: inline constexpr reverse_iterator<_Iterator> 26201: __make_reverse_iterator(_Iterator __i) 26201: { return reverse_iterator<_Iterator>(__i); } 26201: 26201: 26201: #define __cpp_lib_make_reverse_iterator 201402 26201: 26201: 26201: 26201: 26201: template 26201: inline constexpr reverse_iterator<_Iterator> 26201: make_reverse_iterator(_Iterator __i) 26201: { return reverse_iterator<_Iterator>(__i); } 26201: # 567 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: template 26201: 26201: auto 26201: __niter_base(reverse_iterator<_Iterator> __it) 26201: -> decltype(__make_reverse_iterator(__niter_base(__it.base()))) 26201: { return __make_reverse_iterator(__niter_base(__it.base())); } 26201: 26201: template 26201: struct __is_move_iterator > 26201: : __is_move_iterator<_Iterator> 26201: { }; 26201: 26201: template 26201: 26201: auto 26201: __miter_base(reverse_iterator<_Iterator> __it) 26201: -> decltype(__make_reverse_iterator(__miter_base(__it.base()))) 26201: { return __make_reverse_iterator(__miter_base(__it.base())); } 26201: # 598 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: template 26201: class back_insert_iterator 26201: : public iterator 26201: { 26201: protected: 26201: _Container* container; 26201: 26201: public: 26201: 26201: typedef _Container container_type; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: explicit 26201: back_insert_iterator(_Container& __x) 26201: : container(std::__addressof(__x)) { } 26201: # 638 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: 26201: back_insert_iterator& 26201: operator=(const typename _Container::value_type& __value) 26201: { 26201: container->push_back(__value); 26201: return *this; 26201: } 26201: 26201: 26201: back_insert_iterator& 26201: operator=(typename _Container::value_type&& __value) 26201: { 26201: container->push_back(std::move(__value)); 26201: return *this; 26201: } 26201: 26201: 26201: 26201: 26201: back_insert_iterator& 26201: operator*() 26201: { return *this; } 26201: 26201: 26201: 26201: back_insert_iterator& 26201: operator++() 26201: { return *this; } 26201: 26201: 26201: 26201: back_insert_iterator 26201: operator++(int) 26201: { return *this; } 26201: }; 26201: # 685 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: template 26201: 26201: inline back_insert_iterator<_Container> 26201: back_inserter(_Container& __x) 26201: { return back_insert_iterator<_Container>(__x); } 26201: # 701 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: template 26201: class front_insert_iterator 26201: : public iterator 26201: { 26201: protected: 26201: _Container* container; 26201: 26201: public: 26201: 26201: typedef _Container container_type; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: explicit 26201: front_insert_iterator(_Container& __x) 26201: : container(std::__addressof(__x)) { } 26201: # 741 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: 26201: front_insert_iterator& 26201: operator=(const typename _Container::value_type& __value) 26201: { 26201: container->push_front(__value); 26201: return *this; 26201: } 26201: 26201: 26201: front_insert_iterator& 26201: operator=(typename _Container::value_type&& __value) 26201: { 26201: container->push_front(std::move(__value)); 26201: return *this; 26201: } 26201: 26201: 26201: 26201: 26201: front_insert_iterator& 26201: operator*() 26201: { return *this; } 26201: 26201: 26201: 26201: front_insert_iterator& 26201: operator++() 26201: { return *this; } 26201: 26201: 26201: 26201: front_insert_iterator 26201: operator++(int) 26201: { return *this; } 26201: }; 26201: # 788 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: template 26201: 26201: inline front_insert_iterator<_Container> 26201: front_inserter(_Container& __x) 26201: { return front_insert_iterator<_Container>(__x); } 26201: # 808 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: template 26201: class insert_iterator 26201: : public iterator 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: typedef typename _Container::iterator _Iter; 26201: 26201: protected: 26201: _Container* container; 26201: _Iter iter; 26201: 26201: 26201: public: 26201: 26201: typedef _Container container_type; 26201: # 840 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: 26201: insert_iterator(_Container& __x, _Iter __i) 26201: : container(std::__addressof(__x)), iter(__i) {} 26201: # 876 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: 26201: insert_iterator& 26201: operator=(const typename _Container::value_type& __value) 26201: { 26201: iter = container->insert(iter, __value); 26201: ++iter; 26201: return *this; 26201: } 26201: 26201: 26201: insert_iterator& 26201: operator=(typename _Container::value_type&& __value) 26201: { 26201: iter = container->insert(iter, std::move(__value)); 26201: ++iter; 26201: return *this; 26201: } 26201: 26201: 26201: 26201: 26201: insert_iterator& 26201: operator*() 26201: { return *this; } 26201: 26201: 26201: 26201: insert_iterator& 26201: operator++() 26201: { return *this; } 26201: 26201: 26201: 26201: insert_iterator& 26201: operator++(int) 26201: { return *this; } 26201: }; 26201: # 932 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: template 26201: inline insert_iterator<_Container> 26201: inserter(_Container& __x, typename _Container::iterator __i) 26201: { return insert_iterator<_Container>(__x, __i); } 26201: 26201: 26201: 26201: 26201: 26201: } 26201: 26201: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 954 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: template 26201: class __normal_iterator 26201: { 26201: protected: 26201: _Iterator _M_current; 26201: 26201: typedef std::iterator_traits<_Iterator> __traits_type; 26201: 26201: public: 26201: typedef _Iterator iterator_type; 26201: typedef typename __traits_type::iterator_category iterator_category; 26201: typedef typename __traits_type::value_type value_type; 26201: typedef typename __traits_type::difference_type difference_type; 26201: typedef typename __traits_type::reference reference; 26201: typedef typename __traits_type::pointer pointer; 26201: 26201: 26201: 26201: 26201: 26201: constexpr __normal_iterator() noexcept 26201: : _M_current(_Iterator()) { } 26201: 26201: explicit 26201: __normal_iterator(const _Iterator& __i) noexcept 26201: : _M_current(__i) { } 26201: 26201: 26201: template 26201: 26201: __normal_iterator(const __normal_iterator<_Iter, 26201: typename __enable_if< 26201: (std::__are_same<_Iter, typename _Container::pointer>::__value), 26201: _Container>::__type>& __i) noexcept 26201: : _M_current(__i.base()) { } 26201: 26201: 26201: 26201: reference 26201: operator*() const noexcept 26201: { return *_M_current; } 26201: 26201: 26201: pointer 26201: operator->() const noexcept 26201: { return _M_current; } 26201: 26201: 26201: __normal_iterator& 26201: operator++() noexcept 26201: { 26201: ++_M_current; 26201: return *this; 26201: } 26201: 26201: 26201: __normal_iterator 26201: operator++(int) noexcept 26201: { return __normal_iterator(_M_current++); } 26201: 26201: 26201: 26201: __normal_iterator& 26201: operator--() noexcept 26201: { 26201: --_M_current; 26201: return *this; 26201: } 26201: 26201: 26201: __normal_iterator 26201: operator--(int) noexcept 26201: { return __normal_iterator(_M_current--); } 26201: 26201: 26201: 26201: reference 26201: operator[](difference_type __n) const noexcept 26201: { return _M_current[__n]; } 26201: 26201: 26201: __normal_iterator& 26201: operator+=(difference_type __n) noexcept 26201: { _M_current += __n; return *this; } 26201: 26201: 26201: __normal_iterator 26201: operator+(difference_type __n) const noexcept 26201: { return __normal_iterator(_M_current + __n); } 26201: 26201: 26201: __normal_iterator& 26201: operator-=(difference_type __n) noexcept 26201: { _M_current -= __n; return *this; } 26201: 26201: 26201: __normal_iterator 26201: operator-(difference_type __n) const noexcept 26201: { return __normal_iterator(_M_current - __n); } 26201: 26201: 26201: const _Iterator& 26201: base() const noexcept 26201: { return _M_current; } 26201: }; 26201: # 1086 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: template 26201: 26201: inline bool 26201: operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, 26201: const __normal_iterator<_IteratorR, _Container>& __rhs) 26201: noexcept 26201: { return __lhs.base() == __rhs.base(); } 26201: 26201: template 26201: 26201: inline bool 26201: operator==(const __normal_iterator<_Iterator, _Container>& __lhs, 26201: const __normal_iterator<_Iterator, _Container>& __rhs) 26201: noexcept 26201: { return __lhs.base() == __rhs.base(); } 26201: 26201: template 26201: 26201: inline bool 26201: operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, 26201: const __normal_iterator<_IteratorR, _Container>& __rhs) 26201: noexcept 26201: { return __lhs.base() != __rhs.base(); } 26201: 26201: template 26201: 26201: inline bool 26201: operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, 26201: const __normal_iterator<_Iterator, _Container>& __rhs) 26201: noexcept 26201: { return __lhs.base() != __rhs.base(); } 26201: 26201: 26201: template 26201: inline bool 26201: operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, 26201: const __normal_iterator<_IteratorR, _Container>& __rhs) 26201: noexcept 26201: { return __lhs.base() < __rhs.base(); } 26201: 26201: template 26201: 26201: inline bool 26201: operator<(const __normal_iterator<_Iterator, _Container>& __lhs, 26201: const __normal_iterator<_Iterator, _Container>& __rhs) 26201: noexcept 26201: { return __lhs.base() < __rhs.base(); } 26201: 26201: template 26201: inline bool 26201: operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, 26201: const __normal_iterator<_IteratorR, _Container>& __rhs) 26201: noexcept 26201: { return __lhs.base() > __rhs.base(); } 26201: 26201: template 26201: 26201: inline bool 26201: operator>(const __normal_iterator<_Iterator, _Container>& __lhs, 26201: const __normal_iterator<_Iterator, _Container>& __rhs) 26201: noexcept 26201: { return __lhs.base() > __rhs.base(); } 26201: 26201: template 26201: inline bool 26201: operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, 26201: const __normal_iterator<_IteratorR, _Container>& __rhs) 26201: noexcept 26201: { return __lhs.base() <= __rhs.base(); } 26201: 26201: template 26201: 26201: inline bool 26201: operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, 26201: const __normal_iterator<_Iterator, _Container>& __rhs) 26201: noexcept 26201: { return __lhs.base() <= __rhs.base(); } 26201: 26201: template 26201: inline bool 26201: operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, 26201: const __normal_iterator<_IteratorR, _Container>& __rhs) 26201: noexcept 26201: { return __lhs.base() >= __rhs.base(); } 26201: 26201: template 26201: 26201: inline bool 26201: operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, 26201: const __normal_iterator<_Iterator, _Container>& __rhs) 26201: noexcept 26201: { return __lhs.base() >= __rhs.base(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: 26201: 26201: 26201: inline auto 26201: operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, 26201: const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept 26201: -> decltype(__lhs.base() - __rhs.base()) 26201: 26201: 26201: 26201: 26201: 26201: { return __lhs.base() - __rhs.base(); } 26201: 26201: template 26201: 26201: inline typename __normal_iterator<_Iterator, _Container>::difference_type 26201: operator-(const __normal_iterator<_Iterator, _Container>& __lhs, 26201: const __normal_iterator<_Iterator, _Container>& __rhs) 26201: noexcept 26201: { return __lhs.base() - __rhs.base(); } 26201: 26201: template 26201: 26201: inline __normal_iterator<_Iterator, _Container> 26201: operator+(typename __normal_iterator<_Iterator, _Container>::difference_type 26201: __n, const __normal_iterator<_Iterator, _Container>& __i) 26201: noexcept 26201: { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } 26201: 26201: 26201: } 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: template 26201: 26201: _Iterator 26201: __niter_base(__gnu_cxx::__normal_iterator<_Iterator, _Container> __it) 26201: noexcept(std::is_nothrow_copy_constructible<_Iterator>::value) 26201: { return __it.base(); } 26201: # 1276 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: namespace __detail 26201: { 26201: # 1292 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: } 26201: # 1303 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: template 26201: class move_iterator 26201: 26201: 26201: 26201: { 26201: _Iterator _M_current; 26201: 26201: using __traits_type = iterator_traits<_Iterator>; 26201: 26201: using __base_ref = typename __traits_type::reference; 26201: 26201: 26201: public: 26201: using iterator_type = _Iterator; 26201: # 1327 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: typedef typename __traits_type::iterator_category iterator_category; 26201: typedef typename __traits_type::value_type value_type; 26201: typedef typename __traits_type::difference_type difference_type; 26201: 26201: typedef _Iterator pointer; 26201: 26201: 26201: typedef typename conditional::value, 26201: typename remove_reference<__base_ref>::type&&, 26201: __base_ref>::type reference; 26201: 26201: 26201: constexpr 26201: move_iterator() 26201: : _M_current() { } 26201: 26201: explicit constexpr 26201: move_iterator(iterator_type __i) 26201: : _M_current(std::move(__i)) { } 26201: 26201: template 26201: constexpr 26201: move_iterator(const move_iterator<_Iter>& __i) 26201: : _M_current(__i.base()) { } 26201: 26201: template 26201: constexpr 26201: move_iterator& operator=(const move_iterator<_Iter>& __i) 26201: { 26201: _M_current = __i.base(); 26201: return *this; 26201: } 26201: 26201: 26201: constexpr iterator_type 26201: base() const 26201: { return _M_current; } 26201: # 1374 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: constexpr reference 26201: operator*() const 26201: 26201: 26201: 26201: { return static_cast(*_M_current); } 26201: 26201: 26201: constexpr pointer 26201: operator->() const 26201: { return _M_current; } 26201: 26201: constexpr move_iterator& 26201: operator++() 26201: { 26201: ++_M_current; 26201: return *this; 26201: } 26201: 26201: constexpr move_iterator 26201: operator++(int) 26201: { 26201: move_iterator __tmp = *this; 26201: ++_M_current; 26201: return __tmp; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: constexpr move_iterator& 26201: operator--() 26201: { 26201: --_M_current; 26201: return *this; 26201: } 26201: 26201: constexpr move_iterator 26201: operator--(int) 26201: { 26201: move_iterator __tmp = *this; 26201: --_M_current; 26201: return __tmp; 26201: } 26201: 26201: constexpr move_iterator 26201: operator+(difference_type __n) const 26201: { return move_iterator(_M_current + __n); } 26201: 26201: constexpr move_iterator& 26201: operator+=(difference_type __n) 26201: { 26201: _M_current += __n; 26201: return *this; 26201: } 26201: 26201: constexpr move_iterator 26201: operator-(difference_type __n) const 26201: { return move_iterator(_M_current - __n); } 26201: 26201: constexpr move_iterator& 26201: operator-=(difference_type __n) 26201: { 26201: _M_current -= __n; 26201: return *this; 26201: } 26201: 26201: constexpr reference 26201: operator[](difference_type __n) const 26201: 26201: 26201: 26201: { return std::move(_M_current[__n]); } 26201: # 1479 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: }; 26201: 26201: template 26201: inline constexpr bool 26201: operator==(const move_iterator<_IteratorL>& __x, 26201: const move_iterator<_IteratorR>& __y) 26201: 26201: 26201: 26201: { return __x.base() == __y.base(); } 26201: # 1498 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: template 26201: inline constexpr bool 26201: operator!=(const move_iterator<_IteratorL>& __x, 26201: const move_iterator<_IteratorR>& __y) 26201: { return !(__x == __y); } 26201: 26201: 26201: template 26201: inline constexpr bool 26201: operator<(const move_iterator<_IteratorL>& __x, 26201: const move_iterator<_IteratorR>& __y) 26201: 26201: 26201: 26201: { return __x.base() < __y.base(); } 26201: 26201: template 26201: inline constexpr bool 26201: operator<=(const move_iterator<_IteratorL>& __x, 26201: const move_iterator<_IteratorR>& __y) 26201: 26201: 26201: 26201: { return !(__y < __x); } 26201: 26201: template 26201: inline constexpr bool 26201: operator>(const move_iterator<_IteratorL>& __x, 26201: const move_iterator<_IteratorR>& __y) 26201: 26201: 26201: 26201: { return __y < __x; } 26201: 26201: template 26201: inline constexpr bool 26201: operator>=(const move_iterator<_IteratorL>& __x, 26201: const move_iterator<_IteratorR>& __y) 26201: 26201: 26201: 26201: { return !(__x < __y); } 26201: # 1549 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: template 26201: inline constexpr bool 26201: operator==(const move_iterator<_Iterator>& __x, 26201: const move_iterator<_Iterator>& __y) 26201: { return __x.base() == __y.base(); } 26201: 26201: template 26201: inline constexpr bool 26201: operator!=(const move_iterator<_Iterator>& __x, 26201: const move_iterator<_Iterator>& __y) 26201: { return !(__x == __y); } 26201: 26201: template 26201: inline constexpr bool 26201: operator<(const move_iterator<_Iterator>& __x, 26201: const move_iterator<_Iterator>& __y) 26201: { return __x.base() < __y.base(); } 26201: 26201: template 26201: inline constexpr bool 26201: operator<=(const move_iterator<_Iterator>& __x, 26201: const move_iterator<_Iterator>& __y) 26201: { return !(__y < __x); } 26201: 26201: template 26201: inline constexpr bool 26201: operator>(const move_iterator<_Iterator>& __x, 26201: const move_iterator<_Iterator>& __y) 26201: { return __y < __x; } 26201: 26201: template 26201: inline constexpr bool 26201: operator>=(const move_iterator<_Iterator>& __x, 26201: const move_iterator<_Iterator>& __y) 26201: { return !(__x < __y); } 26201: 26201: 26201: 26201: template 26201: inline constexpr auto 26201: operator-(const move_iterator<_IteratorL>& __x, 26201: const move_iterator<_IteratorR>& __y) 26201: -> decltype(__x.base() - __y.base()) 26201: { return __x.base() - __y.base(); } 26201: 26201: template 26201: inline constexpr move_iterator<_Iterator> 26201: operator+(typename move_iterator<_Iterator>::difference_type __n, 26201: const move_iterator<_Iterator>& __x) 26201: { return __x + __n; } 26201: 26201: template 26201: inline constexpr move_iterator<_Iterator> 26201: make_move_iterator(_Iterator __i) 26201: { return move_iterator<_Iterator>(std::move(__i)); } 26201: 26201: template::value_type>::value, 26201: _Iterator, move_iterator<_Iterator>>::type> 26201: inline constexpr _ReturnType 26201: __make_move_if_noexcept_iterator(_Iterator __i) 26201: { return _ReturnType(__i); } 26201: 26201: 26201: 26201: template::value, 26201: const _Tp*, move_iterator<_Tp*>>::type> 26201: inline constexpr _ReturnType 26201: __make_move_if_noexcept_iterator(_Tp* __i) 26201: { return _ReturnType(__i); } 26201: # 2276 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: template 26201: auto 26201: __niter_base(move_iterator<_Iterator> __it) 26201: -> decltype(make_move_iterator(__niter_base(__it.base()))) 26201: { return make_move_iterator(__niter_base(__it.base())); } 26201: 26201: template 26201: struct __is_move_iterator > 26201: { 26201: enum { __value = 1 }; 26201: typedef __true_type __type; 26201: }; 26201: 26201: template 26201: auto 26201: __miter_base(move_iterator<_Iterator> __it) 26201: -> decltype(__miter_base(__it.base())) 26201: { return __miter_base(__it.base()); } 26201: 26201: #define _GLIBCXX_MAKE_MOVE_ITERATOR(_Iter) std::make_move_iterator(_Iter) 26201: #define _GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(_Iter) std::__make_move_if_noexcept_iterator(_Iter) 26201: # 2306 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_iterator.h" 3 26201: template 26201: using __iter_key_t = remove_const_t< 26201: typename iterator_traits<_InputIterator>::value_type::first_type>; 26201: 26201: template 26201: using __iter_val_t = 26201: typename iterator_traits<_InputIterator>::value_type::second_type; 26201: 26201: template 26201: struct pair; 26201: 26201: template 26201: using __iter_to_alloc_t = 26201: pair>, 26201: __iter_val_t<_InputIterator>>; 26201: 26201: 26201: 26201: } 26201: # 68 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 2 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/debug/debug.h" 1 3 26201: # 30 "/usr/x86_64-linux-gnu/include/c++/10/debug/debug.h" 3 26201: #define _GLIBCXX_DEBUG_MACRO_SWITCH_H 1 26201: # 48 "/usr/x86_64-linux-gnu/include/c++/10/debug/debug.h" 3 26201: namespace std 26201: { 26201: namespace __debug { } 26201: } 26201: 26201: 26201: 26201: 26201: namespace __gnu_debug 26201: { 26201: using namespace std::__debug; 26201: 26201: template 26201: struct _Safe_iterator; 26201: } 26201: 26201: 26201: 26201: #define __glibcxx_requires_cond(_Cond,_Msg) 26201: #define __glibcxx_requires_valid_range(_First,_Last) 26201: #define __glibcxx_requires_can_increment(_First,_Size) 26201: #define __glibcxx_requires_can_increment_range(_First1,_Last1,_First2) 26201: #define __glibcxx_requires_can_decrement_range(_First1,_Last1,_First2) 26201: #define __glibcxx_requires_sorted(_First,_Last) 26201: #define __glibcxx_requires_sorted_pred(_First,_Last,_Pred) 26201: #define __glibcxx_requires_sorted_set(_First1,_Last1,_First2) 26201: #define __glibcxx_requires_sorted_set_pred(_First1,_Last1,_First2,_Pred) 26201: #define __glibcxx_requires_partitioned_lower(_First,_Last,_Value) 26201: #define __glibcxx_requires_partitioned_upper(_First,_Last,_Value) 26201: #define __glibcxx_requires_partitioned_lower_pred(_First,_Last,_Value,_Pred) 26201: #define __glibcxx_requires_partitioned_upper_pred(_First,_Last,_Value,_Pred) 26201: #define __glibcxx_requires_heap(_First,_Last) 26201: #define __glibcxx_requires_heap_pred(_First,_Last,_Pred) 26201: #define __glibcxx_requires_string(_String) 26201: #define __glibcxx_requires_string_len(_String,_Len) 26201: #define __glibcxx_requires_irreflexive(_First,_Last) 26201: #define __glibcxx_requires_irreflexive2(_First,_Last) 26201: #define __glibcxx_requires_irreflexive_pred(_First,_Last,_Pred) 26201: #define __glibcxx_requires_irreflexive_pred2(_First,_Last,_Pred) 26201: # 70 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 2 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/predefined_ops.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/predefined_ops.h" 3 26201: #define _GLIBCXX_PREDEFINED_OPS_H 1 26201: 26201: namespace __gnu_cxx 26201: { 26201: namespace __ops 26201: { 26201: struct _Iter_less_iter 26201: { 26201: template 26201: constexpr 26201: bool 26201: operator()(_Iterator1 __it1, _Iterator2 __it2) const 26201: { return *__it1 < *__it2; } 26201: }; 26201: 26201: constexpr 26201: inline _Iter_less_iter 26201: __iter_less_iter() 26201: { return _Iter_less_iter(); } 26201: 26201: struct _Iter_less_val 26201: { 26201: 26201: constexpr _Iter_less_val() = default; 26201: 26201: 26201: 26201: 26201: 26201: explicit 26201: _Iter_less_val(_Iter_less_iter) { } 26201: 26201: template 26201: 26201: bool 26201: operator()(_Iterator __it, _Value& __val) const 26201: { return *__it < __val; } 26201: }; 26201: 26201: 26201: inline _Iter_less_val 26201: __iter_less_val() 26201: { return _Iter_less_val(); } 26201: 26201: 26201: inline _Iter_less_val 26201: __iter_comp_val(_Iter_less_iter) 26201: { return _Iter_less_val(); } 26201: 26201: struct _Val_less_iter 26201: { 26201: 26201: constexpr _Val_less_iter() = default; 26201: 26201: 26201: 26201: 26201: 26201: explicit 26201: _Val_less_iter(_Iter_less_iter) { } 26201: 26201: template 26201: 26201: bool 26201: operator()(_Value& __val, _Iterator __it) const 26201: { return __val < *__it; } 26201: }; 26201: 26201: 26201: inline _Val_less_iter 26201: __val_less_iter() 26201: { return _Val_less_iter(); } 26201: 26201: 26201: inline _Val_less_iter 26201: __val_comp_iter(_Iter_less_iter) 26201: { return _Val_less_iter(); } 26201: 26201: struct _Iter_equal_to_iter 26201: { 26201: template 26201: 26201: bool 26201: operator()(_Iterator1 __it1, _Iterator2 __it2) const 26201: { return *__it1 == *__it2; } 26201: }; 26201: 26201: 26201: inline _Iter_equal_to_iter 26201: __iter_equal_to_iter() 26201: { return _Iter_equal_to_iter(); } 26201: 26201: struct _Iter_equal_to_val 26201: { 26201: template 26201: 26201: bool 26201: operator()(_Iterator __it, _Value& __val) const 26201: { return *__it == __val; } 26201: }; 26201: 26201: 26201: inline _Iter_equal_to_val 26201: __iter_equal_to_val() 26201: { return _Iter_equal_to_val(); } 26201: 26201: 26201: inline _Iter_equal_to_val 26201: __iter_comp_val(_Iter_equal_to_iter) 26201: { return _Iter_equal_to_val(); } 26201: 26201: template 26201: struct _Iter_comp_iter 26201: { 26201: _Compare _M_comp; 26201: 26201: explicit constexpr 26201: _Iter_comp_iter(_Compare __comp) 26201: : _M_comp(std::move(__comp)) 26201: { } 26201: 26201: template 26201: constexpr 26201: bool 26201: operator()(_Iterator1 __it1, _Iterator2 __it2) 26201: { return bool(_M_comp(*__it1, *__it2)); } 26201: }; 26201: 26201: template 26201: constexpr 26201: inline _Iter_comp_iter<_Compare> 26201: __iter_comp_iter(_Compare __comp) 26201: { return _Iter_comp_iter<_Compare>(std::move(__comp)); } 26201: 26201: template 26201: struct _Iter_comp_val 26201: { 26201: _Compare _M_comp; 26201: 26201: 26201: explicit 26201: _Iter_comp_val(_Compare __comp) 26201: : _M_comp(std::move(__comp)) 26201: { } 26201: 26201: 26201: explicit 26201: _Iter_comp_val(const _Iter_comp_iter<_Compare>& __comp) 26201: : _M_comp(__comp._M_comp) 26201: { } 26201: 26201: 26201: 26201: explicit 26201: _Iter_comp_val(_Iter_comp_iter<_Compare>&& __comp) 26201: : _M_comp(std::move(__comp._M_comp)) 26201: { } 26201: 26201: 26201: template 26201: 26201: bool 26201: operator()(_Iterator __it, _Value& __val) 26201: { return bool(_M_comp(*__it, __val)); } 26201: }; 26201: 26201: template 26201: 26201: inline _Iter_comp_val<_Compare> 26201: __iter_comp_val(_Compare __comp) 26201: { return _Iter_comp_val<_Compare>(std::move(__comp)); } 26201: 26201: template 26201: 26201: inline _Iter_comp_val<_Compare> 26201: __iter_comp_val(_Iter_comp_iter<_Compare> __comp) 26201: { return _Iter_comp_val<_Compare>(std::move(__comp)); } 26201: 26201: template 26201: struct _Val_comp_iter 26201: { 26201: _Compare _M_comp; 26201: 26201: 26201: explicit 26201: _Val_comp_iter(_Compare __comp) 26201: : _M_comp(std::move(__comp)) 26201: { } 26201: 26201: 26201: explicit 26201: _Val_comp_iter(const _Iter_comp_iter<_Compare>& __comp) 26201: : _M_comp(__comp._M_comp) 26201: { } 26201: 26201: 26201: 26201: explicit 26201: _Val_comp_iter(_Iter_comp_iter<_Compare>&& __comp) 26201: : _M_comp(std::move(__comp._M_comp)) 26201: { } 26201: 26201: 26201: template 26201: 26201: bool 26201: operator()(_Value& __val, _Iterator __it) 26201: { return bool(_M_comp(__val, *__it)); } 26201: }; 26201: 26201: template 26201: 26201: inline _Val_comp_iter<_Compare> 26201: __val_comp_iter(_Compare __comp) 26201: { return _Val_comp_iter<_Compare>(std::move(__comp)); } 26201: 26201: template 26201: 26201: inline _Val_comp_iter<_Compare> 26201: __val_comp_iter(_Iter_comp_iter<_Compare> __comp) 26201: { return _Val_comp_iter<_Compare>(std::move(__comp)); } 26201: 26201: template 26201: struct _Iter_equals_val 26201: { 26201: _Value& _M_value; 26201: 26201: 26201: explicit 26201: _Iter_equals_val(_Value& __value) 26201: : _M_value(__value) 26201: { } 26201: 26201: template 26201: 26201: bool 26201: operator()(_Iterator __it) 26201: { return *__it == _M_value; } 26201: }; 26201: 26201: template 26201: 26201: inline _Iter_equals_val<_Value> 26201: __iter_equals_val(_Value& __val) 26201: { return _Iter_equals_val<_Value>(__val); } 26201: 26201: template 26201: struct _Iter_equals_iter 26201: { 26201: _Iterator1 _M_it1; 26201: 26201: 26201: explicit 26201: _Iter_equals_iter(_Iterator1 __it1) 26201: : _M_it1(__it1) 26201: { } 26201: 26201: template 26201: 26201: bool 26201: operator()(_Iterator2 __it2) 26201: { return *__it2 == *_M_it1; } 26201: }; 26201: 26201: template 26201: 26201: inline _Iter_equals_iter<_Iterator> 26201: __iter_comp_iter(_Iter_equal_to_iter, _Iterator __it) 26201: { return _Iter_equals_iter<_Iterator>(__it); } 26201: 26201: template 26201: struct _Iter_pred 26201: { 26201: _Predicate _M_pred; 26201: 26201: 26201: explicit 26201: _Iter_pred(_Predicate __pred) 26201: : _M_pred(std::move(__pred)) 26201: { } 26201: 26201: template 26201: 26201: bool 26201: operator()(_Iterator __it) 26201: { return bool(_M_pred(*__it)); } 26201: }; 26201: 26201: template 26201: 26201: inline _Iter_pred<_Predicate> 26201: __pred_iter(_Predicate __pred) 26201: { return _Iter_pred<_Predicate>(std::move(__pred)); } 26201: 26201: template 26201: struct _Iter_comp_to_val 26201: { 26201: _Compare _M_comp; 26201: _Value& _M_value; 26201: 26201: 26201: _Iter_comp_to_val(_Compare __comp, _Value& __value) 26201: : _M_comp(std::move(__comp)), _M_value(__value) 26201: { } 26201: 26201: template 26201: 26201: bool 26201: operator()(_Iterator __it) 26201: { return bool(_M_comp(*__it, _M_value)); } 26201: }; 26201: 26201: template 26201: _Iter_comp_to_val<_Compare, _Value> 26201: 26201: __iter_comp_val(_Compare __comp, _Value &__val) 26201: { 26201: return _Iter_comp_to_val<_Compare, _Value>(std::move(__comp), __val); 26201: } 26201: 26201: template 26201: struct _Iter_comp_to_iter 26201: { 26201: _Compare _M_comp; 26201: _Iterator1 _M_it1; 26201: 26201: 26201: _Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1) 26201: : _M_comp(std::move(__comp)), _M_it1(__it1) 26201: { } 26201: 26201: template 26201: 26201: bool 26201: operator()(_Iterator2 __it2) 26201: { return bool(_M_comp(*__it2, *_M_it1)); } 26201: }; 26201: 26201: template 26201: 26201: inline _Iter_comp_to_iter<_Compare, _Iterator> 26201: __iter_comp_iter(_Iter_comp_iter<_Compare> __comp, _Iterator __it) 26201: { 26201: return _Iter_comp_to_iter<_Compare, _Iterator>( 26201: std::move(__comp._M_comp), __it); 26201: } 26201: 26201: template 26201: struct _Iter_negate 26201: { 26201: _Predicate _M_pred; 26201: 26201: 26201: explicit 26201: _Iter_negate(_Predicate __pred) 26201: : _M_pred(std::move(__pred)) 26201: { } 26201: 26201: template 26201: 26201: bool 26201: operator()(_Iterator __it) 26201: { return !bool(_M_pred(*__it)); } 26201: }; 26201: 26201: template 26201: 26201: inline _Iter_negate<_Predicate> 26201: __negate(_Iter_pred<_Predicate> __pred) 26201: { return _Iter_negate<_Predicate>(std::move(__pred._M_pred)); } 26201: 26201: } 26201: } 26201: # 72 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 2 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: constexpr 26201: inline int 26201: __memcmp(const _Tp* __first1, const _Up* __first2, size_t __num) 26201: { 26201: 26201: static_assert(sizeof(_Tp) == sizeof(_Up), "can be compared with memcmp"); 26201: # 105 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: return __builtin_memcmp(__first1, __first2, sizeof(_Tp) * __num); 26201: } 26201: # 149 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: 26201: inline void 26201: iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) 26201: { 26201: 26201: 26201: 26201: 26201: # 182 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: swap(*__a, *__b); 26201: 26201: } 26201: # 198 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: 26201: _ForwardIterator2 26201: swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: for (; __first1 != __last1; ++__first1, (void)++__first2) 26201: std::iter_swap(__first1, __first2); 26201: return __first2; 26201: } 26201: # 227 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: constexpr 26201: inline const _Tp& 26201: min(const _Tp& __a, const _Tp& __b) 26201: { 26201: 26201: 26201: 26201: if (__b < __a) 26201: return __b; 26201: return __a; 26201: } 26201: # 251 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: constexpr 26201: inline const _Tp& 26201: max(const _Tp& __a, const _Tp& __b) 26201: { 26201: 26201: 26201: 26201: if (__a < __b) 26201: return __b; 26201: return __a; 26201: } 26201: # 275 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: constexpr 26201: inline const _Tp& 26201: min(const _Tp& __a, const _Tp& __b, _Compare __comp) 26201: { 26201: 26201: if (__comp(__b, __a)) 26201: return __b; 26201: return __a; 26201: } 26201: # 297 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: constexpr 26201: inline const _Tp& 26201: max(const _Tp& __a, const _Tp& __b, _Compare __comp) 26201: { 26201: 26201: if (__comp(__a, __b)) 26201: return __b; 26201: return __a; 26201: } 26201: 26201: 26201: 26201: template 26201: 26201: inline _Iterator 26201: __niter_base(_Iterator __it) 26201: noexcept(std::is_nothrow_copy_constructible<_Iterator>::value) 26201: { return __it; } 26201: 26201: 26201: 26201: 26201: template 26201: 26201: inline _From 26201: __niter_wrap(_From __from, _To __res) 26201: { return __from + (__res - std::__niter_base(__from)); } 26201: 26201: 26201: template 26201: 26201: inline _Iterator 26201: __niter_wrap(const _Iterator&, _Iterator __res) 26201: { return __res; } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct __copy_move 26201: { 26201: template 26201: 26201: static _OI 26201: __copy_m(_II __first, _II __last, _OI __result) 26201: { 26201: for (; __first != __last; ++__result, (void)++__first) 26201: *__result = *__first; 26201: return __result; 26201: } 26201: }; 26201: 26201: 26201: template 26201: struct __copy_move 26201: { 26201: template 26201: 26201: static _OI 26201: __copy_m(_II __first, _II __last, _OI __result) 26201: { 26201: for (; __first != __last; ++__result, (void)++__first) 26201: *__result = std::move(*__first); 26201: return __result; 26201: } 26201: }; 26201: 26201: 26201: template<> 26201: struct __copy_move 26201: { 26201: template 26201: 26201: static _OI 26201: __copy_m(_II __first, _II __last, _OI __result) 26201: { 26201: typedef typename iterator_traits<_II>::difference_type _Distance; 26201: for(_Distance __n = __last - __first; __n > 0; --__n) 26201: { 26201: *__result = *__first; 26201: ++__first; 26201: ++__result; 26201: } 26201: return __result; 26201: } 26201: }; 26201: 26201: 26201: template<> 26201: struct __copy_move 26201: { 26201: template 26201: 26201: static _OI 26201: __copy_m(_II __first, _II __last, _OI __result) 26201: { 26201: typedef typename iterator_traits<_II>::difference_type _Distance; 26201: for(_Distance __n = __last - __first; __n > 0; --__n) 26201: { 26201: *__result = std::move(*__first); 26201: ++__first; 26201: ++__result; 26201: } 26201: return __result; 26201: } 26201: }; 26201: 26201: 26201: template 26201: struct __copy_move<_IsMove, true, random_access_iterator_tag> 26201: { 26201: template 26201: 26201: static _Tp* 26201: __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result) 26201: { 26201: 26201: using __assignable = conditional<_IsMove, 26201: is_move_assignable<_Tp>, 26201: is_copy_assignable<_Tp>>; 26201: 26201: static_assert( __assignable::type::value, "type is not assignable" ); 26201: 26201: const ptrdiff_t _Num = __last - __first; 26201: if (_Num) 26201: __builtin_memmove(__result, __first, sizeof(_Tp) * _Num); 26201: return __result + _Num; 26201: } 26201: }; 26201: 26201: 26201: 26201: template 26201: struct char_traits; 26201: 26201: template 26201: class istreambuf_iterator; 26201: 26201: template 26201: class ostreambuf_iterator; 26201: 26201: template 26201: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 26201: ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type 26201: __copy_move_a2(_CharT*, _CharT*, 26201: ostreambuf_iterator<_CharT, char_traits<_CharT> >); 26201: 26201: template 26201: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 26201: ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type 26201: __copy_move_a2(const _CharT*, const _CharT*, 26201: ostreambuf_iterator<_CharT, char_traits<_CharT> >); 26201: 26201: template 26201: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 26201: _CharT*>::__type 26201: __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >, 26201: istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*); 26201: 26201: template 26201: 26201: inline _OI 26201: __copy_move_a2(_II __first, _II __last, _OI __result) 26201: { 26201: typedef typename iterator_traits<_II>::iterator_category _Category; 26201: 26201: 26201: 26201: 26201: 26201: return std::__copy_move<_IsMove, __memcpyable<_OI, _II>::__value, 26201: _Category>::__copy_m(__first, __last, __result); 26201: } 26201: 26201: 26201: 26201: template 26201: struct _Deque_iterator; 26201: 26201: 26201: 26201: template 26201: _OI 26201: __copy_move_a1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, 26201: std::_Deque_iterator<_Tp, _Ref, _Ptr>, 26201: _OI); 26201: 26201: template 26201: std::_Deque_iterator<_OTp, _OTp&, _OTp*> 26201: __copy_move_a1(std::_Deque_iterator<_ITp, _IRef, _IPtr>, 26201: std::_Deque_iterator<_ITp, _IRef, _IPtr>, 26201: std::_Deque_iterator<_OTp, _OTp&, _OTp*>); 26201: 26201: template 26201: typename __gnu_cxx::__enable_if< 26201: __is_random_access_iter<_II>::__value, 26201: std::_Deque_iterator<_Tp, _Tp&, _Tp*> >::__type 26201: __copy_move_a1(_II, _II, std::_Deque_iterator<_Tp, _Tp&, _Tp*>); 26201: 26201: template 26201: 26201: inline _OI 26201: __copy_move_a1(_II __first, _II __last, _OI __result) 26201: { return std::__copy_move_a2<_IsMove>(__first, __last, __result); } 26201: 26201: template 26201: 26201: inline _OI 26201: __copy_move_a(_II __first, _II __last, _OI __result) 26201: { 26201: return std::__niter_wrap(__result, 26201: std::__copy_move_a1<_IsMove>(std::__niter_base(__first), 26201: std::__niter_base(__last), 26201: std::__niter_base(__result))); 26201: } 26201: 26201: template 26201: _OI 26201: __copy_move_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 26201: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 26201: _OI); 26201: 26201: template 26201: __gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> 26201: __copy_move_a(_II, _II, 26201: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&); 26201: 26201: template 26201: ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat> 26201: __copy_move_a(const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, 26201: const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, 26201: const ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>&); 26201: # 557 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: 26201: inline _OI 26201: copy(_II __first, _II __last, _OI __result) 26201: { 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__copy_move_a<__is_move_iterator<_II>::__value> 26201: (std::__miter_base(__first), std::__miter_base(__last), __result); 26201: } 26201: # 590 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: 26201: inline _OI 26201: move(_II __first, _II __last, _OI __result) 26201: { 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__copy_move_a(std::__miter_base(__first), 26201: std::__miter_base(__last), __result); 26201: } 26201: 26201: #define _GLIBCXX_MOVE3(_Tp,_Up,_Vp) std::move(_Tp, _Up, _Vp) 26201: 26201: 26201: 26201: 26201: template 26201: struct __copy_move_backward 26201: { 26201: template 26201: 26201: static _BI2 26201: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 26201: { 26201: while (__first != __last) 26201: *--__result = *--__last; 26201: return __result; 26201: } 26201: }; 26201: 26201: 26201: template 26201: struct __copy_move_backward 26201: { 26201: template 26201: 26201: static _BI2 26201: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 26201: { 26201: while (__first != __last) 26201: *--__result = std::move(*--__last); 26201: return __result; 26201: } 26201: }; 26201: 26201: 26201: template<> 26201: struct __copy_move_backward 26201: { 26201: template 26201: 26201: static _BI2 26201: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 26201: { 26201: typename iterator_traits<_BI1>::difference_type 26201: __n = __last - __first; 26201: for (; __n > 0; --__n) 26201: *--__result = *--__last; 26201: return __result; 26201: } 26201: }; 26201: 26201: 26201: template<> 26201: struct __copy_move_backward 26201: { 26201: template 26201: 26201: static _BI2 26201: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 26201: { 26201: typename iterator_traits<_BI1>::difference_type 26201: __n = __last - __first; 26201: for (; __n > 0; --__n) 26201: *--__result = std::move(*--__last); 26201: return __result; 26201: } 26201: }; 26201: 26201: 26201: template 26201: struct __copy_move_backward<_IsMove, true, random_access_iterator_tag> 26201: { 26201: template 26201: 26201: static _Tp* 26201: __copy_move_b(const _Tp* __first, const _Tp* __last, _Tp* __result) 26201: { 26201: 26201: using __assignable = conditional<_IsMove, 26201: is_move_assignable<_Tp>, 26201: is_copy_assignable<_Tp>>; 26201: 26201: static_assert( __assignable::type::value, "type is not assignable" ); 26201: 26201: const ptrdiff_t _Num = __last - __first; 26201: if (_Num) 26201: __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); 26201: return __result - _Num; 26201: } 26201: }; 26201: 26201: template 26201: 26201: inline _BI2 26201: __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) 26201: { 26201: typedef typename iterator_traits<_BI1>::iterator_category _Category; 26201: 26201: 26201: 26201: 26201: 26201: return std::__copy_move_backward<_IsMove, 26201: __memcpyable<_BI2, _BI1>::__value, 26201: _Category>::__copy_move_b(__first, 26201: __last, 26201: __result); 26201: } 26201: 26201: template 26201: 26201: inline _BI2 26201: __copy_move_backward_a1(_BI1 __first, _BI1 __last, _BI2 __result) 26201: { return std::__copy_move_backward_a2<_IsMove>(__first, __last, __result); } 26201: 26201: template 26201: _OI 26201: __copy_move_backward_a1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, 26201: std::_Deque_iterator<_Tp, _Ref, _Ptr>, 26201: _OI); 26201: 26201: template 26201: std::_Deque_iterator<_OTp, _OTp&, _OTp*> 26201: __copy_move_backward_a1( 26201: std::_Deque_iterator<_ITp, _IRef, _IPtr>, 26201: std::_Deque_iterator<_ITp, _IRef, _IPtr>, 26201: std::_Deque_iterator<_OTp, _OTp&, _OTp*>); 26201: 26201: template 26201: typename __gnu_cxx::__enable_if< 26201: __is_random_access_iter<_II>::__value, 26201: std::_Deque_iterator<_Tp, _Tp&, _Tp*> >::__type 26201: __copy_move_backward_a1(_II, _II, 26201: std::_Deque_iterator<_Tp, _Tp&, _Tp*>); 26201: 26201: template 26201: 26201: inline _OI 26201: __copy_move_backward_a(_II __first, _II __last, _OI __result) 26201: { 26201: return std::__niter_wrap(__result, 26201: std::__copy_move_backward_a1<_IsMove> 26201: (std::__niter_base(__first), std::__niter_base(__last), 26201: std::__niter_base(__result))); 26201: } 26201: 26201: template 26201: _OI 26201: __copy_move_backward_a( 26201: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 26201: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 26201: _OI); 26201: 26201: template 26201: __gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> 26201: __copy_move_backward_a(_II, _II, 26201: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&); 26201: 26201: template 26201: ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat> 26201: __copy_move_backward_a( 26201: const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, 26201: const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, 26201: const ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>&); 26201: # 794 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: 26201: inline _BI2 26201: copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__copy_move_backward_a<__is_move_iterator<_BI1>::__value> 26201: (std::__miter_base(__first), std::__miter_base(__last), __result); 26201: } 26201: # 830 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: 26201: inline _BI2 26201: move_backward(_BI1 __first, _BI1 __last, _BI2 __result) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__copy_move_backward_a(std::__miter_base(__first), 26201: std::__miter_base(__last), 26201: __result); 26201: } 26201: 26201: #define _GLIBCXX_MOVE_BACKWARD3(_Tp,_Up,_Vp) std::move_backward(_Tp, _Up, _Vp) 26201: 26201: 26201: 26201: 26201: template 26201: 26201: inline typename 26201: __gnu_cxx::__enable_if::__value, void>::__type 26201: __fill_a1(_ForwardIterator __first, _ForwardIterator __last, 26201: const _Tp& __value) 26201: { 26201: for (; __first != __last; ++__first) 26201: *__first = __value; 26201: } 26201: 26201: template 26201: 26201: inline typename 26201: __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type 26201: __fill_a1(_ForwardIterator __first, _ForwardIterator __last, 26201: const _Tp& __value) 26201: { 26201: const _Tp __tmp = __value; 26201: for (; __first != __last; ++__first) 26201: *__first = __tmp; 26201: } 26201: 26201: 26201: template 26201: 26201: inline typename 26201: __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type 26201: __fill_a1(_Tp* __first, _Tp* __last, const _Tp& __c) 26201: { 26201: const _Tp __tmp = __c; 26201: # 892 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: if (const size_t __len = __last - __first) 26201: __builtin_memset(__first, static_cast(__tmp), __len); 26201: } 26201: 26201: template 26201: 26201: inline void 26201: __fill_a1(::__gnu_cxx::__normal_iterator<_Ite, _Cont> __first, 26201: ::__gnu_cxx::__normal_iterator<_Ite, _Cont> __last, 26201: const _Tp& __value) 26201: { std::__fill_a1(__first.base(), __last.base(), __value); } 26201: 26201: template 26201: void 26201: __fill_a1(const std::_Deque_iterator<_Tp, _Tp&, _Tp*>&, 26201: const std::_Deque_iterator<_Tp, _Tp&, _Tp*>&, 26201: const _VTp&); 26201: 26201: template 26201: 26201: inline void 26201: __fill_a(_FIte __first, _FIte __last, const _Tp& __value) 26201: { std::__fill_a1(__first, __last, __value); } 26201: 26201: template 26201: void 26201: __fill_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 26201: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 26201: const _Tp&); 26201: # 934 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: 26201: inline void 26201: fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) 26201: { 26201: 26201: 26201: 26201: ; 26201: 26201: std::__fill_a(__first, __last, __value); 26201: } 26201: 26201: 26201: inline constexpr int 26201: __size_to_integer(int __n) { return __n; } 26201: inline constexpr unsigned 26201: __size_to_integer(unsigned __n) { return __n; } 26201: inline constexpr long 26201: __size_to_integer(long __n) { return __n; } 26201: inline constexpr unsigned long 26201: __size_to_integer(unsigned long __n) { return __n; } 26201: inline constexpr long long 26201: __size_to_integer(long long __n) { return __n; } 26201: inline constexpr unsigned long long 26201: __size_to_integer(unsigned long long __n) { return __n; } 26201: # 986 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: inline constexpr long long 26201: __size_to_integer(float __n) { return (long long)__n; } 26201: inline constexpr long long 26201: __size_to_integer(double __n) { return (long long)__n; } 26201: inline constexpr long long 26201: __size_to_integer(long double __n) { return (long long)__n; } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: 26201: inline typename 26201: __gnu_cxx::__enable_if::__value, _OutputIterator>::__type 26201: __fill_n_a1(_OutputIterator __first, _Size __n, const _Tp& __value) 26201: { 26201: for (; __n > 0; --__n, (void) ++__first) 26201: *__first = __value; 26201: return __first; 26201: } 26201: 26201: template 26201: 26201: inline typename 26201: __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type 26201: __fill_n_a1(_OutputIterator __first, _Size __n, const _Tp& __value) 26201: { 26201: const _Tp __tmp = __value; 26201: for (; __n > 0; --__n, (void) ++__first) 26201: *__first = __tmp; 26201: return __first; 26201: } 26201: 26201: template 26201: ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> 26201: __fill_n_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>& __first, 26201: _Size __n, const _Tp& __value, 26201: std::input_iterator_tag); 26201: 26201: template 26201: 26201: inline _OutputIterator 26201: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, 26201: std::output_iterator_tag) 26201: { 26201: 26201: static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); 26201: 26201: return __fill_n_a1(__first, __n, __value); 26201: } 26201: 26201: template 26201: 26201: inline _OutputIterator 26201: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, 26201: std::input_iterator_tag) 26201: { 26201: 26201: static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); 26201: 26201: return __fill_n_a1(__first, __n, __value); 26201: } 26201: 26201: template 26201: 26201: inline _OutputIterator 26201: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, 26201: std::random_access_iterator_tag) 26201: { 26201: 26201: static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); 26201: 26201: if (__n <= 0) 26201: return __first; 26201: 26201: ; 26201: 26201: std::__fill_a(__first, __first + __n, __value); 26201: return __first + __n; 26201: } 26201: # 1086 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: 26201: inline _OI 26201: fill_n(_OI __first, _Size __n, const _Tp& __value) 26201: { 26201: 26201: 26201: 26201: return std::__fill_n_a(__first, std::__size_to_integer(__n), __value, 26201: std::__iterator_category(__first)); 26201: } 26201: 26201: template 26201: struct __equal 26201: { 26201: template 26201: 26201: static bool 26201: equal(_II1 __first1, _II1 __last1, _II2 __first2) 26201: { 26201: for (; __first1 != __last1; ++__first1, (void) ++__first2) 26201: if (!(*__first1 == *__first2)) 26201: return false; 26201: return true; 26201: } 26201: }; 26201: 26201: template<> 26201: struct __equal 26201: { 26201: template 26201: 26201: static bool 26201: equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2) 26201: { 26201: if (const size_t __len = (__last1 - __first1)) 26201: return !std::__memcmp(__first1, __first2, __len); 26201: return true; 26201: } 26201: }; 26201: 26201: template 26201: typename __gnu_cxx::__enable_if< 26201: __is_random_access_iter<_II>::__value, bool>::__type 26201: __equal_aux1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, 26201: std::_Deque_iterator<_Tp, _Ref, _Ptr>, 26201: _II); 26201: 26201: template 26201: bool 26201: __equal_aux1(std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, 26201: std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, 26201: std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); 26201: 26201: template 26201: typename __gnu_cxx::__enable_if< 26201: __is_random_access_iter<_II>::__value, bool>::__type 26201: __equal_aux1(_II, _II, 26201: std::_Deque_iterator<_Tp, _Ref, _Ptr>); 26201: 26201: template 26201: 26201: inline bool 26201: __equal_aux1(_II1 __first1, _II1 __last1, _II2 __first2) 26201: { 26201: typedef typename iterator_traits<_II1>::value_type _ValueType1; 26201: const bool __simple = ((__is_integer<_ValueType1>::__value 26201: || __is_pointer<_ValueType1>::__value) 26201: && __memcmpable<_II1, _II2>::__value); 26201: return std::__equal<__simple>::equal(__first1, __last1, __first2); 26201: } 26201: 26201: template 26201: 26201: inline bool 26201: __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) 26201: { 26201: return std::__equal_aux1(std::__niter_base(__first1), 26201: std::__niter_base(__last1), 26201: std::__niter_base(__first2)); 26201: } 26201: 26201: template 26201: bool 26201: __equal_aux(const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, 26201: const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, 26201: _II2); 26201: 26201: template 26201: bool 26201: __equal_aux(_II1, _II1, 26201: const ::__gnu_debug::_Safe_iterator<_II2, _Seq2, _Cat2>&); 26201: 26201: template 26201: bool 26201: __equal_aux(const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, 26201: const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, 26201: const ::__gnu_debug::_Safe_iterator<_II2, _Seq2, _Cat2>&); 26201: 26201: template 26201: struct __lc_rai 26201: { 26201: template 26201: 26201: static _II1 26201: __newlast1(_II1, _II1 __last1, _II2, _II2) 26201: { return __last1; } 26201: 26201: template 26201: 26201: static bool 26201: __cnd2(_II __first, _II __last) 26201: { return __first != __last; } 26201: }; 26201: 26201: template<> 26201: struct __lc_rai 26201: { 26201: template 26201: 26201: static _RAI1 26201: __newlast1(_RAI1 __first1, _RAI1 __last1, 26201: _RAI2 __first2, _RAI2 __last2) 26201: { 26201: const typename iterator_traits<_RAI1>::difference_type 26201: __diff1 = __last1 - __first1; 26201: const typename iterator_traits<_RAI2>::difference_type 26201: __diff2 = __last2 - __first2; 26201: return __diff2 < __diff1 ? __first1 + __diff2 : __last1; 26201: } 26201: 26201: template 26201: static bool 26201: __cnd2(_RAI, _RAI) 26201: { return true; } 26201: }; 26201: 26201: template 26201: 26201: bool 26201: __lexicographical_compare_impl(_II1 __first1, _II1 __last1, 26201: _II2 __first2, _II2 __last2, 26201: _Compare __comp) 26201: { 26201: typedef typename iterator_traits<_II1>::iterator_category _Category1; 26201: typedef typename iterator_traits<_II2>::iterator_category _Category2; 26201: typedef std::__lc_rai<_Category1, _Category2> __rai_type; 26201: 26201: __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); 26201: for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); 26201: ++__first1, (void)++__first2) 26201: { 26201: if (__comp(__first1, __first2)) 26201: return true; 26201: if (__comp(__first2, __first1)) 26201: return false; 26201: } 26201: return __first1 == __last1 && __first2 != __last2; 26201: } 26201: 26201: template 26201: struct __lexicographical_compare 26201: { 26201: template 26201: 26201: static bool 26201: __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 26201: { 26201: using __gnu_cxx::__ops::__iter_less_iter; 26201: return std::__lexicographical_compare_impl(__first1, __last1, 26201: __first2, __last2, 26201: __iter_less_iter()); 26201: } 26201: }; 26201: 26201: template<> 26201: struct __lexicographical_compare 26201: { 26201: template 26201: 26201: static bool 26201: __lc(const _Tp* __first1, const _Tp* __last1, 26201: const _Up* __first2, const _Up* __last2) 26201: { 26201: const size_t __len1 = __last1 - __first1; 26201: const size_t __len2 = __last2 - __first2; 26201: if (const size_t __len = std::min(__len1, __len2)) 26201: if (int __result = std::__memcmp(__first1, __first2, __len)) 26201: return __result < 0; 26201: return __len1 < __len2; 26201: } 26201: }; 26201: 26201: template 26201: 26201: inline bool 26201: __lexicographical_compare_aux(_II1 __first1, _II1 __last1, 26201: _II2 __first2, _II2 __last2) 26201: { 26201: typedef typename iterator_traits<_II1>::value_type _ValueType1; 26201: typedef typename iterator_traits<_II2>::value_type _ValueType2; 26201: const bool __simple = 26201: (__is_memcmp_ordered_with<_ValueType1, _ValueType2>::__value 26201: && __is_pointer<_II1>::__value 26201: && __is_pointer<_II2>::__value 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ); 26201: 26201: return std::__lexicographical_compare<__simple>::__lc(__first1, __last1, 26201: __first2, __last2); 26201: } 26201: 26201: template 26201: 26201: _ForwardIterator 26201: __lower_bound(_ForwardIterator __first, _ForwardIterator __last, 26201: const _Tp& __val, _Compare __comp) 26201: { 26201: typedef typename iterator_traits<_ForwardIterator>::difference_type 26201: _DistanceType; 26201: 26201: _DistanceType __len = std::distance(__first, __last); 26201: 26201: while (__len > 0) 26201: { 26201: _DistanceType __half = __len >> 1; 26201: _ForwardIterator __middle = __first; 26201: std::advance(__middle, __half); 26201: if (__comp(__middle, __val)) 26201: { 26201: __first = __middle; 26201: ++__first; 26201: __len = __len - __half - 1; 26201: } 26201: else 26201: __len = __half; 26201: } 26201: return __first; 26201: } 26201: # 1345 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: 26201: inline _ForwardIterator 26201: lower_bound(_ForwardIterator __first, _ForwardIterator __last, 26201: const _Tp& __val) 26201: { 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__lower_bound(__first, __last, __val, 26201: __gnu_cxx::__ops::__iter_less_val()); 26201: } 26201: 26201: 26201: 26201: inline constexpr int 26201: __lg(int __n) 26201: { return (int)sizeof(int) * 8 - 1 - __builtin_clz(__n); } 26201: 26201: inline constexpr unsigned 26201: __lg(unsigned __n) 26201: { return (int)sizeof(int) * 8 - 1 - __builtin_clz(__n); } 26201: 26201: inline constexpr long 26201: __lg(long __n) 26201: { return (int)sizeof(long) * 8 - 1 - __builtin_clzl(__n); } 26201: 26201: inline constexpr unsigned long 26201: __lg(unsigned long __n) 26201: { return (int)sizeof(long) * 8 - 1 - __builtin_clzl(__n); } 26201: 26201: inline constexpr long long 26201: __lg(long long __n) 26201: { return (int)sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } 26201: 26201: inline constexpr unsigned long long 26201: __lg(unsigned long long __n) 26201: { return (int)sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } 26201: 26201: 26201: # 1401 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: 26201: inline bool 26201: equal(_II1 __first1, _II1 __last1, _II2 __first2) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__equal_aux(__first1, __last1, __first2); 26201: } 26201: # 1432 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: 26201: inline bool 26201: equal(_IIter1 __first1, _IIter1 __last1, 26201: _IIter2 __first2, _BinaryPredicate __binary_pred) 26201: { 26201: 26201: 26201: 26201: ; 26201: 26201: for (; __first1 != __last1; ++__first1, (void)++__first2) 26201: if (!bool(__binary_pred(*__first1, *__first2))) 26201: return false; 26201: return true; 26201: } 26201: 26201: 26201: 26201: template 26201: 26201: inline bool 26201: __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 26201: { 26201: using _RATag = random_access_iterator_tag; 26201: using _Cat1 = typename iterator_traits<_II1>::iterator_category; 26201: using _Cat2 = typename iterator_traits<_II2>::iterator_category; 26201: using _RAIters = __and_, is_same<_Cat2, _RATag>>; 26201: if (_RAIters()) 26201: { 26201: auto __d1 = std::distance(__first1, __last1); 26201: auto __d2 = std::distance(__first2, __last2); 26201: if (__d1 != __d2) 26201: return false; 26201: return std::equal(__first1, __last1, __first2); 26201: } 26201: 26201: for (; __first1 != __last1 && __first2 != __last2; 26201: ++__first1, (void)++__first2) 26201: if (!(*__first1 == *__first2)) 26201: return false; 26201: return __first1 == __last1 && __first2 == __last2; 26201: } 26201: 26201: 26201: template 26201: 26201: inline bool 26201: __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, 26201: _BinaryPredicate __binary_pred) 26201: { 26201: using _RATag = random_access_iterator_tag; 26201: using _Cat1 = typename iterator_traits<_II1>::iterator_category; 26201: using _Cat2 = typename iterator_traits<_II2>::iterator_category; 26201: using _RAIters = __and_, is_same<_Cat2, _RATag>>; 26201: if (_RAIters()) 26201: { 26201: auto __d1 = std::distance(__first1, __last1); 26201: auto __d2 = std::distance(__first2, __last2); 26201: if (__d1 != __d2) 26201: return false; 26201: return std::equal(__first1, __last1, __first2, 26201: __binary_pred); 26201: } 26201: 26201: for (; __first1 != __last1 && __first2 != __last2; 26201: ++__first1, (void)++__first2) 26201: if (!bool(__binary_pred(*__first1, *__first2))) 26201: return false; 26201: return __first1 == __last1 && __first2 == __last2; 26201: } 26201: 26201: 26201: 26201: 26201: #define __cpp_lib_robust_nonmodifying_seq_ops 201304 26201: # 1522 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: 26201: inline bool 26201: equal(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__equal4(__first1, __last1, __first2, __last2); 26201: } 26201: # 1555 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: 26201: inline bool 26201: equal(_IIter1 __first1, _IIter1 __last1, 26201: _IIter2 __first2, _IIter2 __last2, _BinaryPredicate __binary_pred) 26201: { 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__equal4(__first1, __last1, __first2, __last2, 26201: __binary_pred); 26201: } 26201: # 1587 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: 26201: inline bool 26201: lexicographical_compare(_II1 __first1, _II1 __last1, 26201: _II2 __first2, _II2 __last2) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__lexicographical_compare_aux(std::__niter_base(__first1), 26201: std::__niter_base(__last1), 26201: std::__niter_base(__first2), 26201: std::__niter_base(__last2)); 26201: } 26201: # 1624 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: 26201: inline bool 26201: lexicographical_compare(_II1 __first1, _II1 __last1, 26201: _II2 __first2, _II2 __last2, _Compare __comp) 26201: { 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__lexicographical_compare_impl 26201: (__first1, __last1, __first2, __last2, 26201: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 26201: } 26201: # 1737 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: 26201: pair<_InputIterator1, _InputIterator2> 26201: __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _BinaryPredicate __binary_pred) 26201: { 26201: while (__first1 != __last1 && __binary_pred(__first1, __first2)) 26201: { 26201: ++__first1; 26201: ++__first2; 26201: } 26201: return pair<_InputIterator1, _InputIterator2>(__first1, __first2); 26201: } 26201: # 1765 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: 26201: inline pair<_InputIterator1, _InputIterator2> 26201: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__mismatch(__first1, __last1, __first2, 26201: __gnu_cxx::__ops::__iter_equal_to_iter()); 26201: } 26201: # 1799 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: 26201: inline pair<_InputIterator1, _InputIterator2> 26201: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _BinaryPredicate __binary_pred) 26201: { 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__mismatch(__first1, __last1, __first2, 26201: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 26201: } 26201: 26201: 26201: 26201: template 26201: 26201: pair<_InputIterator1, _InputIterator2> 26201: __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _InputIterator2 __last2, 26201: _BinaryPredicate __binary_pred) 26201: { 26201: while (__first1 != __last1 && __first2 != __last2 26201: && __binary_pred(__first1, __first2)) 26201: { 26201: ++__first1; 26201: ++__first2; 26201: } 26201: return pair<_InputIterator1, _InputIterator2>(__first1, __first2); 26201: } 26201: # 1848 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: 26201: inline pair<_InputIterator1, _InputIterator2> 26201: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _InputIterator2 __last2) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__mismatch(__first1, __last1, __first2, __last2, 26201: __gnu_cxx::__ops::__iter_equal_to_iter()); 26201: } 26201: # 1884 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: 26201: inline pair<_InputIterator1, _InputIterator2> 26201: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _InputIterator2 __last2, 26201: _BinaryPredicate __binary_pred) 26201: { 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__mismatch(__first1, __last1, __first2, __last2, 26201: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: 26201: inline _InputIterator 26201: __find_if(_InputIterator __first, _InputIterator __last, 26201: _Predicate __pred, input_iterator_tag) 26201: { 26201: while (__first != __last && !__pred(__first)) 26201: ++__first; 26201: return __first; 26201: } 26201: 26201: 26201: template 26201: 26201: _RandomAccessIterator 26201: __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last, 26201: _Predicate __pred, random_access_iterator_tag) 26201: { 26201: typename iterator_traits<_RandomAccessIterator>::difference_type 26201: __trip_count = (__last - __first) >> 2; 26201: 26201: for (; __trip_count > 0; --__trip_count) 26201: { 26201: if (__pred(__first)) 26201: return __first; 26201: ++__first; 26201: 26201: if (__pred(__first)) 26201: return __first; 26201: ++__first; 26201: 26201: if (__pred(__first)) 26201: return __first; 26201: ++__first; 26201: 26201: if (__pred(__first)) 26201: return __first; 26201: ++__first; 26201: } 26201: 26201: switch (__last - __first) 26201: { 26201: case 3: 26201: if (__pred(__first)) 26201: return __first; 26201: ++__first; 26201: 26201: case 2: 26201: if (__pred(__first)) 26201: return __first; 26201: ++__first; 26201: 26201: case 1: 26201: if (__pred(__first)) 26201: return __first; 26201: ++__first; 26201: 26201: case 0: 26201: default: 26201: return __last; 26201: } 26201: } 26201: 26201: template 26201: 26201: inline _Iterator 26201: __find_if(_Iterator __first, _Iterator __last, _Predicate __pred) 26201: { 26201: return __find_if(__first, __last, __pred, 26201: std::__iterator_category(__first)); 26201: } 26201: 26201: template 26201: 26201: typename iterator_traits<_InputIterator>::difference_type 26201: __count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) 26201: { 26201: typename iterator_traits<_InputIterator>::difference_type __n = 0; 26201: for (; __first != __last; ++__first) 26201: if (__pred(__first)) 26201: ++__n; 26201: return __n; 26201: } 26201: 26201: 26201: template 26201: 26201: bool 26201: __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2, _BinaryPredicate __pred) 26201: { 26201: 26201: 26201: for (; __first1 != __last1; ++__first1, (void)++__first2) 26201: if (!__pred(__first1, __first2)) 26201: break; 26201: 26201: if (__first1 == __last1) 26201: return true; 26201: 26201: 26201: 26201: _ForwardIterator2 __last2 = __first2; 26201: std::advance(__last2, std::distance(__first1, __last1)); 26201: for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) 26201: { 26201: if (__scan != std::__find_if(__first1, __scan, 26201: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) 26201: continue; 26201: 26201: auto __matches 26201: = std::__count_if(__first2, __last2, 26201: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); 26201: if (0 == __matches || 26201: std::__count_if(__scan, __last1, 26201: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) 26201: != __matches) 26201: return false; 26201: } 26201: return true; 26201: } 26201: # 2041 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algobase.h" 3 26201: template 26201: 26201: inline bool 26201: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__is_permutation(__first1, __last1, __first2, 26201: __gnu_cxx::__ops::__iter_equal_to_iter()); 26201: } 26201: 26201: 26201: 26201: } 26201: # 62 "/usr/x86_64-linux-gnu/include/c++/10/algorithm" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 1 3 26201: # 57 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: #define _STL_ALGO_H 1 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/cstdlib" 1 3 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/cstdlib" 3 26201: 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/cstdlib" 3 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_CSTDLIB 1 26201: # 74 "/usr/x86_64-linux-gnu/include/c++/10/cstdlib" 3 26201: #define _GLIBCXX_INCLUDE_NEXT_C_HEADERS 26201: # 1 "/usr/x86_64-linux-gnu/include/stdlib.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/stdlib.h" 3 26201: #define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 3 26201: #undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION 26201: 26201: 26201: 26201: 26201: 26201: #undef __GLIBC_USE_LIB_EXT2 26201: 26201: 26201: #define __GLIBC_USE_LIB_EXT2 1 26201: # 49 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 3 26201: #undef __GLIBC_USE_IEC_60559_BFP_EXT 26201: 26201: #define __GLIBC_USE_IEC_60559_BFP_EXT 1 26201: 26201: 26201: 26201: #undef __GLIBC_USE_IEC_60559_BFP_EXT_C2X 26201: 26201: #define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 1 26201: # 66 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 3 26201: #undef __GLIBC_USE_IEC_60559_FUNCS_EXT 26201: 26201: #define __GLIBC_USE_IEC_60559_FUNCS_EXT 1 26201: 26201: 26201: 26201: #undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 26201: 26201: #define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: #undef __GLIBC_USE_IEC_60559_TYPES_EXT 26201: 26201: #define __GLIBC_USE_IEC_60559_TYPES_EXT 1 26201: # 26 "/usr/x86_64-linux-gnu/include/stdlib.h" 2 3 26201: 26201: 26201: #define __need_size_t 26201: #define __need_wchar_t 26201: #define __need_NULL 26201: # 1 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 1 3 4 26201: # 181 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #define __size_t__ 26201: #define __SIZE_T__ 26201: #define _SIZE_T 26201: #define _SYS_SIZE_T_H 26201: #define _T_SIZE_ 26201: #define _T_SIZE 26201: #define __SIZE_T 26201: #define _SIZE_T_ 26201: #define _BSD_SIZE_T_ 26201: #define _SIZE_T_DEFINED_ 26201: #define _SIZE_T_DEFINED 26201: #define _BSD_SIZE_T_DEFINED_ 26201: #define _SIZE_T_DECLARED 26201: #define ___int_size_t_h 26201: #define _GCC_SIZE_T 26201: #define _SIZET_ 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __size_t 26201: 26201: 26201: 26201: 26201: 26201: typedef long unsigned int size_t; 26201: # 231 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_size_t 26201: # 260 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #define __wchar_t__ 26201: #define __WCHAR_T__ 26201: #define _WCHAR_T 26201: #define _T_WCHAR_ 26201: #define _T_WCHAR 26201: #define __WCHAR_T 26201: #define _WCHAR_T_ 26201: #define _BSD_WCHAR_T_ 26201: #define _WCHAR_T_DEFINED_ 26201: #define _WCHAR_T_DEFINED 26201: #define _WCHAR_T_H 26201: #define ___int_wchar_t_h 26201: #define __INT_WCHAR_T_H 26201: #define _GCC_WCHAR_T 26201: #define _WCHAR_T_DECLARED 26201: # 287 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef _BSD_WCHAR_T_ 26201: # 340 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_wchar_t 26201: # 390 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef NULL 26201: 26201: #define NULL __null 26201: # 401 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_NULL 26201: # 32 "/usr/x86_64-linux-gnu/include/stdlib.h" 2 3 26201: 26201: extern "C" { 26201: 26201: #define _STDLIB_H 1 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/waitflags.h" 1 3 26201: # 25 "/usr/x86_64-linux-gnu/include/bits/waitflags.h" 3 26201: #define WNOHANG 1 26201: #define WUNTRACED 2 26201: 26201: 26201: 26201: #define WSTOPPED 2 26201: #define WEXITED 4 26201: #define WCONTINUED 8 26201: #define WNOWAIT 0x01000000 26201: 26201: 26201: #define __WNOTHREAD 0x20000000 26201: 26201: #define __WALL 0x40000000 26201: #define __WCLONE 0x80000000 26201: 26201: 26201: 26201: 26201: #define __ENUM_IDTYPE_T 1 26201: 26201: 26201: 26201: #undef P_ALL 26201: #undef P_PID 26201: #undef P_PGID 26201: 26201: typedef enum 26201: { 26201: P_ALL, 26201: P_PID, 26201: P_PGID 26201: } idtype_t; 26201: # 40 "/usr/x86_64-linux-gnu/include/stdlib.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/waitstatus.h" 1 3 26201: # 28 "/usr/x86_64-linux-gnu/include/bits/waitstatus.h" 3 26201: #define __WEXITSTATUS(status) (((status) & 0xff00) >> 8) 26201: 26201: 26201: #define __WTERMSIG(status) ((status) & 0x7f) 26201: 26201: 26201: #define __WSTOPSIG(status) __WEXITSTATUS(status) 26201: 26201: 26201: #define __WIFEXITED(status) (__WTERMSIG(status) == 0) 26201: 26201: 26201: #define __WIFSIGNALED(status) (((signed char) (((status) & 0x7f) + 1) >> 1) > 0) 26201: 26201: 26201: 26201: #define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f) 26201: 26201: 26201: 26201: 26201: #define __WIFCONTINUED(status) ((status) == __W_CONTINUED) 26201: 26201: 26201: 26201: #define __WCOREDUMP(status) ((status) & __WCOREFLAG) 26201: 26201: 26201: #define __W_EXITCODE(ret,sig) ((ret) << 8 | (sig)) 26201: #define __W_STOPCODE(sig) ((sig) << 8 | 0x7f) 26201: #define __W_CONTINUED 0xffff 26201: #define __WCOREFLAG 0x80 26201: # 41 "/usr/x86_64-linux-gnu/include/stdlib.h" 2 3 26201: 26201: 26201: #define WEXITSTATUS(status) __WEXITSTATUS (status) 26201: #define WTERMSIG(status) __WTERMSIG (status) 26201: #define WSTOPSIG(status) __WSTOPSIG (status) 26201: #define WIFEXITED(status) __WIFEXITED (status) 26201: #define WIFSIGNALED(status) __WIFSIGNALED (status) 26201: #define WIFSTOPPED(status) __WIFSTOPPED (status) 26201: 26201: #define WIFCONTINUED(status) __WIFCONTINUED (status) 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/floatn.h" 1 3 26201: # 20 "/usr/x86_64-linux-gnu/include/bits/floatn.h" 3 26201: #define _BITS_FLOATN_H 26201: # 33 "/usr/x86_64-linux-gnu/include/bits/floatn.h" 3 26201: #define __HAVE_FLOAT128 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __HAVE_DISTINCT_FLOAT128 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __HAVE_FLOAT64X 1 26201: 26201: 26201: 26201: 26201: 26201: #define __HAVE_FLOAT64X_LONG_DOUBLE 1 26201: # 64 "/usr/x86_64-linux-gnu/include/bits/floatn.h" 3 26201: #define __f128(x) x ##q 26201: # 75 "/usr/x86_64-linux-gnu/include/bits/floatn.h" 3 26201: typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__))); 26201: #define __CFLOAT128 __cfloat128 26201: # 87 "/usr/x86_64-linux-gnu/include/bits/floatn.h" 3 26201: typedef __float128 _Float128; 26201: # 120 "/usr/x86_64-linux-gnu/include/bits/floatn.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/floatn-common.h" 1 3 26201: # 21 "/usr/x86_64-linux-gnu/include/bits/floatn-common.h" 3 26201: #define _BITS_FLOATN_COMMON_H 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/long-double.h" 1 3 26201: # 21 "/usr/x86_64-linux-gnu/include/bits/long-double.h" 3 26201: #define __LONG_DOUBLE_USES_FLOAT128 0 26201: # 25 "/usr/x86_64-linux-gnu/include/bits/floatn-common.h" 2 3 26201: # 34 "/usr/x86_64-linux-gnu/include/bits/floatn-common.h" 3 26201: #define __HAVE_FLOAT16 0 26201: #define __HAVE_FLOAT32 1 26201: #define __HAVE_FLOAT64 1 26201: #define __HAVE_FLOAT32X 1 26201: #define __HAVE_FLOAT128X 0 26201: # 52 "/usr/x86_64-linux-gnu/include/bits/floatn-common.h" 3 26201: #define __HAVE_DISTINCT_FLOAT16 __HAVE_FLOAT16 26201: #define __HAVE_DISTINCT_FLOAT32 0 26201: #define __HAVE_DISTINCT_FLOAT64 0 26201: #define __HAVE_DISTINCT_FLOAT32X 0 26201: #define __HAVE_DISTINCT_FLOAT64X 0 26201: #define __HAVE_DISTINCT_FLOAT128X __HAVE_FLOAT128X 26201: 26201: 26201: 26201: 26201: 26201: #define __HAVE_FLOAT128_UNLIKE_LDBL (__HAVE_DISTINCT_FLOAT128 && __LDBL_MANT_DIG__ != 113) 26201: # 72 "/usr/x86_64-linux-gnu/include/bits/floatn-common.h" 3 26201: #define __HAVE_FLOATN_NOT_TYPEDEF 0 26201: # 91 "/usr/x86_64-linux-gnu/include/bits/floatn-common.h" 3 26201: #define __f32(x) x ##f 26201: # 102 "/usr/x86_64-linux-gnu/include/bits/floatn-common.h" 3 26201: #define __f64(x) x 26201: # 111 "/usr/x86_64-linux-gnu/include/bits/floatn-common.h" 3 26201: #define __f32x(x) x 26201: # 120 "/usr/x86_64-linux-gnu/include/bits/floatn-common.h" 3 26201: #define __f64x(x) x ##l 26201: # 149 "/usr/x86_64-linux-gnu/include/bits/floatn-common.h" 3 26201: #define __CFLOAT32 _Complex float 26201: # 160 "/usr/x86_64-linux-gnu/include/bits/floatn-common.h" 3 26201: #define __CFLOAT64 _Complex double 26201: # 169 "/usr/x86_64-linux-gnu/include/bits/floatn-common.h" 3 26201: #define __CFLOAT32X _Complex double 26201: # 178 "/usr/x86_64-linux-gnu/include/bits/floatn-common.h" 3 26201: #define __CFLOAT64X _Complex long double 26201: # 214 "/usr/x86_64-linux-gnu/include/bits/floatn-common.h" 3 26201: typedef float _Float32; 26201: # 251 "/usr/x86_64-linux-gnu/include/bits/floatn-common.h" 3 26201: typedef double _Float64; 26201: # 268 "/usr/x86_64-linux-gnu/include/bits/floatn-common.h" 3 26201: typedef double _Float32x; 26201: # 285 "/usr/x86_64-linux-gnu/include/bits/floatn-common.h" 3 26201: typedef long double _Float64x; 26201: # 121 "/usr/x86_64-linux-gnu/include/bits/floatn.h" 2 3 26201: # 56 "/usr/x86_64-linux-gnu/include/stdlib.h" 2 3 26201: 26201: 26201: typedef struct 26201: { 26201: int quot; 26201: int rem; 26201: } div_t; 26201: 26201: 26201: 26201: typedef struct 26201: { 26201: long int quot; 26201: long int rem; 26201: } ldiv_t; 26201: #define __ldiv_t_defined 1 26201: 26201: 26201: 26201: 26201: __extension__ typedef struct 26201: { 26201: long long int quot; 26201: long long int rem; 26201: } lldiv_t; 26201: #define __lldiv_t_defined 1 26201: 26201: 26201: 26201: 26201: #define RAND_MAX 2147483647 26201: 26201: 26201: 26201: 26201: #define EXIT_FAILURE 1 26201: #define EXIT_SUCCESS 0 26201: 26201: 26201: 26201: #define MB_CUR_MAX (__ctype_get_mb_cur_max ()) 26201: extern size_t __ctype_get_mb_cur_max (void) throw () __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: extern double atof (const char *__nptr) 26201: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 26201: 26201: extern int atoi (const char *__nptr) 26201: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 26201: 26201: extern long int atol (const char *__nptr) 26201: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: __extension__ extern long long int atoll (const char *__nptr) 26201: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: extern double strtod (const char *__restrict __nptr, 26201: char **__restrict __endptr) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: extern float strtof (const char *__restrict __nptr, 26201: char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: extern long double strtold (const char *__restrict __nptr, 26201: char **__restrict __endptr) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: # 140 "/usr/x86_64-linux-gnu/include/stdlib.h" 3 26201: extern _Float32 strtof32 (const char *__restrict __nptr, 26201: char **__restrict __endptr) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: extern _Float64 strtof64 (const char *__restrict __nptr, 26201: char **__restrict __endptr) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: extern _Float128 strtof128 (const char *__restrict __nptr, 26201: char **__restrict __endptr) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: extern _Float32x strtof32x (const char *__restrict __nptr, 26201: char **__restrict __endptr) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: extern _Float64x strtof64x (const char *__restrict __nptr, 26201: char **__restrict __endptr) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: # 176 "/usr/x86_64-linux-gnu/include/stdlib.h" 3 26201: extern long int strtol (const char *__restrict __nptr, 26201: char **__restrict __endptr, int __base) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: extern unsigned long int strtoul (const char *__restrict __nptr, 26201: char **__restrict __endptr, int __base) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: __extension__ 26201: extern long long int strtoq (const char *__restrict __nptr, 26201: char **__restrict __endptr, int __base) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: __extension__ 26201: extern unsigned long long int strtouq (const char *__restrict __nptr, 26201: char **__restrict __endptr, int __base) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: 26201: __extension__ 26201: extern long long int strtoll (const char *__restrict __nptr, 26201: char **__restrict __endptr, int __base) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: __extension__ 26201: extern unsigned long long int strtoull (const char *__restrict __nptr, 26201: char **__restrict __endptr, int __base) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: 26201: extern int strfromd (char *__dest, size_t __size, const char *__format, 26201: double __f) 26201: throw () __attribute__ ((__nonnull__ (3))); 26201: 26201: extern int strfromf (char *__dest, size_t __size, const char *__format, 26201: float __f) 26201: throw () __attribute__ ((__nonnull__ (3))); 26201: 26201: extern int strfroml (char *__dest, size_t __size, const char *__format, 26201: long double __f) 26201: throw () __attribute__ ((__nonnull__ (3))); 26201: # 232 "/usr/x86_64-linux-gnu/include/stdlib.h" 3 26201: extern int strfromf32 (char *__dest, size_t __size, const char * __format, 26201: _Float32 __f) 26201: throw () __attribute__ ((__nonnull__ (3))); 26201: 26201: 26201: 26201: extern int strfromf64 (char *__dest, size_t __size, const char * __format, 26201: _Float64 __f) 26201: throw () __attribute__ ((__nonnull__ (3))); 26201: 26201: 26201: 26201: extern int strfromf128 (char *__dest, size_t __size, const char * __format, 26201: _Float128 __f) 26201: throw () __attribute__ ((__nonnull__ (3))); 26201: 26201: 26201: 26201: extern int strfromf32x (char *__dest, size_t __size, const char * __format, 26201: _Float32x __f) 26201: throw () __attribute__ ((__nonnull__ (3))); 26201: 26201: 26201: 26201: extern int strfromf64x (char *__dest, size_t __size, const char * __format, 26201: _Float64x __f) 26201: throw () __attribute__ ((__nonnull__ (3))); 26201: # 272 "/usr/x86_64-linux-gnu/include/stdlib.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types/locale_t.h" 1 3 26201: # 20 "/usr/x86_64-linux-gnu/include/bits/types/locale_t.h" 3 26201: #define _BITS_TYPES_LOCALE_T_H 1 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types/__locale_t.h" 1 3 26201: # 21 "/usr/x86_64-linux-gnu/include/bits/types/__locale_t.h" 3 26201: #define _BITS_TYPES___LOCALE_T_H 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: struct __locale_struct 26201: { 26201: 26201: struct __locale_data *__locales[13]; 26201: 26201: 26201: const unsigned short int *__ctype_b; 26201: const int *__ctype_tolower; 26201: const int *__ctype_toupper; 26201: 26201: 26201: const char *__names[13]; 26201: }; 26201: 26201: typedef struct __locale_struct *__locale_t; 26201: # 23 "/usr/x86_64-linux-gnu/include/bits/types/locale_t.h" 2 3 26201: 26201: typedef __locale_t locale_t; 26201: # 273 "/usr/x86_64-linux-gnu/include/stdlib.h" 2 3 26201: 26201: extern long int strtol_l (const char *__restrict __nptr, 26201: char **__restrict __endptr, int __base, 26201: locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); 26201: 26201: extern unsigned long int strtoul_l (const char *__restrict __nptr, 26201: char **__restrict __endptr, 26201: int __base, locale_t __loc) 26201: throw () __attribute__ ((__nonnull__ (1, 4))); 26201: 26201: __extension__ 26201: extern long long int strtoll_l (const char *__restrict __nptr, 26201: char **__restrict __endptr, int __base, 26201: locale_t __loc) 26201: throw () __attribute__ ((__nonnull__ (1, 4))); 26201: 26201: __extension__ 26201: extern unsigned long long int strtoull_l (const char *__restrict __nptr, 26201: char **__restrict __endptr, 26201: int __base, locale_t __loc) 26201: throw () __attribute__ ((__nonnull__ (1, 4))); 26201: 26201: extern double strtod_l (const char *__restrict __nptr, 26201: char **__restrict __endptr, locale_t __loc) 26201: throw () __attribute__ ((__nonnull__ (1, 3))); 26201: 26201: extern float strtof_l (const char *__restrict __nptr, 26201: char **__restrict __endptr, locale_t __loc) 26201: throw () __attribute__ ((__nonnull__ (1, 3))); 26201: 26201: extern long double strtold_l (const char *__restrict __nptr, 26201: char **__restrict __endptr, 26201: locale_t __loc) 26201: throw () __attribute__ ((__nonnull__ (1, 3))); 26201: # 316 "/usr/x86_64-linux-gnu/include/stdlib.h" 3 26201: extern _Float32 strtof32_l (const char *__restrict __nptr, 26201: char **__restrict __endptr, 26201: locale_t __loc) 26201: throw () __attribute__ ((__nonnull__ (1, 3))); 26201: 26201: 26201: 26201: extern _Float64 strtof64_l (const char *__restrict __nptr, 26201: char **__restrict __endptr, 26201: locale_t __loc) 26201: throw () __attribute__ ((__nonnull__ (1, 3))); 26201: 26201: 26201: 26201: extern _Float128 strtof128_l (const char *__restrict __nptr, 26201: char **__restrict __endptr, 26201: locale_t __loc) 26201: throw () __attribute__ ((__nonnull__ (1, 3))); 26201: 26201: 26201: 26201: extern _Float32x strtof32x_l (const char *__restrict __nptr, 26201: char **__restrict __endptr, 26201: locale_t __loc) 26201: throw () __attribute__ ((__nonnull__ (1, 3))); 26201: 26201: 26201: 26201: extern _Float64x strtof64x_l (const char *__restrict __nptr, 26201: char **__restrict __endptr, 26201: locale_t __loc) 26201: throw () __attribute__ ((__nonnull__ (1, 3))); 26201: # 360 "/usr/x86_64-linux-gnu/include/stdlib.h" 3 26201: extern __inline __attribute__ ((__gnu_inline__)) int 26201: __attribute__ ((__leaf__)) atoi (const char *__nptr) throw () 26201: { 26201: return (int) strtol (__nptr, (char **) __null, 10); 26201: } 26201: extern __inline __attribute__ ((__gnu_inline__)) long int 26201: __attribute__ ((__leaf__)) atol (const char *__nptr) throw () 26201: { 26201: return strtol (__nptr, (char **) __null, 10); 26201: } 26201: 26201: 26201: __extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int 26201: __attribute__ ((__leaf__)) atoll (const char *__nptr) throw () 26201: { 26201: return strtoll (__nptr, (char **) __null, 10); 26201: } 26201: # 385 "/usr/x86_64-linux-gnu/include/stdlib.h" 3 26201: extern char *l64a (long int __n) throw () __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: extern long int a64l (const char *__s) 26201: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/sys/types.h" 1 3 26201: # 23 "/usr/x86_64-linux-gnu/include/sys/types.h" 3 26201: #define _SYS_TYPES_H 1 26201: 26201: 26201: 26201: extern "C" { 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/types.h" 3 26201: #define _BITS_TYPES_H 1 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/wordsize.h" 1 3 26201: 26201: 26201: 26201: #define __WORDSIZE 64 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __WORDSIZE_TIME64_COMPAT32 1 26201: 26201: #define __SYSCALL_WORDSIZE 64 26201: # 28 "/usr/x86_64-linux-gnu/include/bits/types.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/timesize.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/timesize.h" 3 26201: #define __TIMESIZE __WORDSIZE 26201: # 29 "/usr/x86_64-linux-gnu/include/bits/types.h" 2 3 26201: 26201: 26201: typedef unsigned char __u_char; 26201: typedef unsigned short int __u_short; 26201: typedef unsigned int __u_int; 26201: typedef unsigned long int __u_long; 26201: 26201: 26201: typedef signed char __int8_t; 26201: typedef unsigned char __uint8_t; 26201: typedef signed short int __int16_t; 26201: typedef unsigned short int __uint16_t; 26201: typedef signed int __int32_t; 26201: typedef unsigned int __uint32_t; 26201: 26201: typedef signed long int __int64_t; 26201: typedef unsigned long int __uint64_t; 26201: 26201: 26201: 26201: 26201: 26201: 26201: typedef __int8_t __int_least8_t; 26201: typedef __uint8_t __uint_least8_t; 26201: typedef __int16_t __int_least16_t; 26201: typedef __uint16_t __uint_least16_t; 26201: typedef __int32_t __int_least32_t; 26201: typedef __uint32_t __uint_least32_t; 26201: typedef __int64_t __int_least64_t; 26201: typedef __uint64_t __uint_least64_t; 26201: 26201: 26201: 26201: typedef long int __quad_t; 26201: typedef unsigned long int __u_quad_t; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: typedef long int __intmax_t; 26201: typedef unsigned long int __uintmax_t; 26201: # 109 "/usr/x86_64-linux-gnu/include/bits/types.h" 3 26201: #define __S16_TYPE short int 26201: #define __U16_TYPE unsigned short int 26201: #define __S32_TYPE int 26201: #define __U32_TYPE unsigned int 26201: #define __SLONGWORD_TYPE long int 26201: #define __ULONGWORD_TYPE unsigned long int 26201: # 128 "/usr/x86_64-linux-gnu/include/bits/types.h" 3 26201: #define __SQUAD_TYPE long int 26201: #define __UQUAD_TYPE unsigned long int 26201: #define __SWORD_TYPE long int 26201: #define __UWORD_TYPE unsigned long int 26201: #define __SLONG32_TYPE int 26201: #define __ULONG32_TYPE unsigned int 26201: #define __S64_TYPE long int 26201: #define __U64_TYPE unsigned long int 26201: 26201: #define __STD_TYPE typedef 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/typesizes.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/typesizes.h" 3 26201: #define _BITS_TYPESIZES_H 1 26201: # 34 "/usr/x86_64-linux-gnu/include/bits/typesizes.h" 3 26201: #define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE 26201: #define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE 26201: 26201: 26201: #define __DEV_T_TYPE __UQUAD_TYPE 26201: #define __UID_T_TYPE __U32_TYPE 26201: #define __GID_T_TYPE __U32_TYPE 26201: #define __INO_T_TYPE __SYSCALL_ULONG_TYPE 26201: #define __INO64_T_TYPE __UQUAD_TYPE 26201: #define __MODE_T_TYPE __U32_TYPE 26201: 26201: #define __NLINK_T_TYPE __SYSCALL_ULONG_TYPE 26201: #define __FSWORD_T_TYPE __SYSCALL_SLONG_TYPE 26201: 26201: 26201: 26201: 26201: #define __OFF_T_TYPE __SYSCALL_SLONG_TYPE 26201: #define __OFF64_T_TYPE __SQUAD_TYPE 26201: #define __PID_T_TYPE __S32_TYPE 26201: #define __RLIM_T_TYPE __SYSCALL_ULONG_TYPE 26201: #define __RLIM64_T_TYPE __UQUAD_TYPE 26201: #define __BLKCNT_T_TYPE __SYSCALL_SLONG_TYPE 26201: #define __BLKCNT64_T_TYPE __SQUAD_TYPE 26201: #define __FSBLKCNT_T_TYPE __SYSCALL_ULONG_TYPE 26201: #define __FSBLKCNT64_T_TYPE __UQUAD_TYPE 26201: #define __FSFILCNT_T_TYPE __SYSCALL_ULONG_TYPE 26201: #define __FSFILCNT64_T_TYPE __UQUAD_TYPE 26201: #define __ID_T_TYPE __U32_TYPE 26201: #define __CLOCK_T_TYPE __SYSCALL_SLONG_TYPE 26201: #define __TIME_T_TYPE __SYSCALL_SLONG_TYPE 26201: #define __USECONDS_T_TYPE __U32_TYPE 26201: #define __SUSECONDS_T_TYPE __SYSCALL_SLONG_TYPE 26201: #define __DADDR_T_TYPE __S32_TYPE 26201: #define __KEY_T_TYPE __S32_TYPE 26201: #define __CLOCKID_T_TYPE __S32_TYPE 26201: #define __TIMER_T_TYPE void * 26201: #define __BLKSIZE_T_TYPE __SYSCALL_SLONG_TYPE 26201: #define __FSID_T_TYPE struct { int __val[2]; } 26201: #define __SSIZE_T_TYPE __SWORD_TYPE 26201: #define __CPU_MASK_TYPE __SYSCALL_ULONG_TYPE 26201: 26201: 26201: 26201: 26201: 26201: #define __OFF_T_MATCHES_OFF64_T 1 26201: 26201: 26201: #define __INO_T_MATCHES_INO64_T 1 26201: 26201: 26201: #define __RLIM_T_MATCHES_RLIM64_T 1 26201: 26201: 26201: #define __STATFS_MATCHES_STATFS64 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __FD_SETSIZE 1024 26201: # 142 "/usr/x86_64-linux-gnu/include/bits/types.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/time64.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/time64.h" 3 26201: #define _BITS_TIME64_H 1 26201: 26201: 26201: 26201: 26201: 26201: #define __TIME64_T_TYPE __TIME_T_TYPE 26201: # 143 "/usr/x86_64-linux-gnu/include/bits/types.h" 2 3 26201: 26201: 26201: typedef unsigned long int __dev_t; 26201: typedef unsigned int __uid_t; 26201: typedef unsigned int __gid_t; 26201: typedef unsigned long int __ino_t; 26201: typedef unsigned long int __ino64_t; 26201: typedef unsigned int __mode_t; 26201: typedef unsigned long int __nlink_t; 26201: typedef long int __off_t; 26201: typedef long int __off64_t; 26201: typedef int __pid_t; 26201: typedef struct { int __val[2]; } __fsid_t; 26201: typedef long int __clock_t; 26201: typedef unsigned long int __rlim_t; 26201: typedef unsigned long int __rlim64_t; 26201: typedef unsigned int __id_t; 26201: typedef long int __time_t; 26201: typedef unsigned int __useconds_t; 26201: typedef long int __suseconds_t; 26201: 26201: typedef int __daddr_t; 26201: typedef int __key_t; 26201: 26201: 26201: typedef int __clockid_t; 26201: 26201: 26201: typedef void * __timer_t; 26201: 26201: 26201: typedef long int __blksize_t; 26201: 26201: 26201: 26201: 26201: typedef long int __blkcnt_t; 26201: typedef long int __blkcnt64_t; 26201: 26201: 26201: typedef unsigned long int __fsblkcnt_t; 26201: typedef unsigned long int __fsblkcnt64_t; 26201: 26201: 26201: typedef unsigned long int __fsfilcnt_t; 26201: typedef unsigned long int __fsfilcnt64_t; 26201: 26201: 26201: typedef long int __fsword_t; 26201: 26201: typedef long int __ssize_t; 26201: 26201: 26201: typedef long int __syscall_slong_t; 26201: 26201: typedef unsigned long int __syscall_ulong_t; 26201: 26201: 26201: 26201: typedef __off64_t __loff_t; 26201: typedef char *__caddr_t; 26201: 26201: 26201: typedef long int __intptr_t; 26201: 26201: 26201: typedef unsigned int __socklen_t; 26201: 26201: 26201: 26201: 26201: typedef int __sig_atomic_t; 26201: # 225 "/usr/x86_64-linux-gnu/include/bits/types.h" 3 26201: #undef __STD_TYPE 26201: # 30 "/usr/x86_64-linux-gnu/include/sys/types.h" 2 3 26201: 26201: 26201: 26201: typedef __u_char u_char; 26201: typedef __u_short u_short; 26201: typedef __u_int u_int; 26201: typedef __u_long u_long; 26201: typedef __quad_t quad_t; 26201: typedef __u_quad_t u_quad_t; 26201: typedef __fsid_t fsid_t; 26201: #define __u_char_defined 26201: 26201: typedef __loff_t loff_t; 26201: 26201: 26201: 26201: 26201: 26201: 26201: typedef __ino64_t ino_t; 26201: 26201: #define __ino_t_defined 26201: 26201: 26201: typedef __ino64_t ino64_t; 26201: #define __ino64_t_defined 26201: 26201: 26201: 26201: typedef __dev_t dev_t; 26201: #define __dev_t_defined 26201: 26201: 26201: 26201: typedef __gid_t gid_t; 26201: #define __gid_t_defined 26201: 26201: 26201: 26201: typedef __mode_t mode_t; 26201: #define __mode_t_defined 26201: 26201: 26201: 26201: typedef __nlink_t nlink_t; 26201: #define __nlink_t_defined 26201: 26201: 26201: 26201: typedef __uid_t uid_t; 26201: #define __uid_t_defined 26201: 26201: 26201: 26201: 26201: 26201: 26201: typedef __off64_t off_t; 26201: 26201: #define __off_t_defined 26201: 26201: 26201: typedef __off64_t off64_t; 26201: #define __off64_t_defined 26201: 26201: 26201: 26201: typedef __pid_t pid_t; 26201: #define __pid_t_defined 26201: 26201: 26201: 26201: 26201: typedef __id_t id_t; 26201: #define __id_t_defined 26201: 26201: 26201: 26201: typedef __ssize_t ssize_t; 26201: #define __ssize_t_defined 26201: 26201: 26201: 26201: 26201: typedef __daddr_t daddr_t; 26201: typedef __caddr_t caddr_t; 26201: #define __daddr_t_defined 26201: 26201: 26201: 26201: 26201: typedef __key_t key_t; 26201: #define __key_t_defined 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types/clock_t.h" 1 3 26201: 26201: #define __clock_t_defined 1 26201: 26201: 26201: 26201: 26201: typedef __clock_t clock_t; 26201: # 127 "/usr/x86_64-linux-gnu/include/sys/types.h" 2 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types/clockid_t.h" 1 3 26201: 26201: #define __clockid_t_defined 1 26201: 26201: 26201: 26201: 26201: typedef __clockid_t clockid_t; 26201: # 129 "/usr/x86_64-linux-gnu/include/sys/types.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types/time_t.h" 1 3 26201: 26201: #define __time_t_defined 1 26201: 26201: 26201: 26201: 26201: typedef __time_t time_t; 26201: # 130 "/usr/x86_64-linux-gnu/include/sys/types.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types/timer_t.h" 1 3 26201: 26201: #define __timer_t_defined 1 26201: 26201: 26201: 26201: 26201: typedef __timer_t timer_t; 26201: # 131 "/usr/x86_64-linux-gnu/include/sys/types.h" 2 3 26201: 26201: 26201: 26201: typedef __useconds_t useconds_t; 26201: #define __useconds_t_defined 26201: 26201: 26201: typedef __suseconds_t suseconds_t; 26201: #define __suseconds_t_defined 26201: 26201: 26201: 26201: #define __need_size_t 26201: # 1 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 1 3 4 26201: # 231 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_size_t 26201: # 401 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_NULL 26201: # 145 "/usr/x86_64-linux-gnu/include/sys/types.h" 2 3 26201: 26201: 26201: 26201: typedef unsigned long int ulong; 26201: typedef unsigned short int ushort; 26201: typedef unsigned int uint; 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/stdint-intn.h" 1 3 26201: # 20 "/usr/x86_64-linux-gnu/include/bits/stdint-intn.h" 3 26201: #define _BITS_STDINT_INTN_H 1 26201: 26201: 26201: 26201: typedef __int8_t int8_t; 26201: typedef __int16_t int16_t; 26201: typedef __int32_t int32_t; 26201: typedef __int64_t int64_t; 26201: # 156 "/usr/x86_64-linux-gnu/include/sys/types.h" 2 3 26201: 26201: 26201: typedef __uint8_t u_int8_t; 26201: typedef __uint16_t u_int16_t; 26201: typedef __uint32_t u_int32_t; 26201: typedef __uint64_t u_int64_t; 26201: 26201: 26201: typedef int register_t __attribute__ ((__mode__ (__word__))); 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __BIT_TYPES_DEFINED__ 1 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/endian.h" 1 3 26201: # 19 "/usr/x86_64-linux-gnu/include/endian.h" 3 26201: #define _ENDIAN_H 1 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/endian.h" 1 3 26201: # 20 "/usr/x86_64-linux-gnu/include/bits/endian.h" 3 26201: #define _BITS_ENDIAN_H 1 26201: # 30 "/usr/x86_64-linux-gnu/include/bits/endian.h" 3 26201: #define __LITTLE_ENDIAN 1234 26201: #define __BIG_ENDIAN 4321 26201: #define __PDP_ENDIAN 3412 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/endianness.h" 1 3 26201: 26201: #define _BITS_ENDIANNESS_H 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __BYTE_ORDER __LITTLE_ENDIAN 26201: # 36 "/usr/x86_64-linux-gnu/include/bits/endian.h" 2 3 26201: 26201: 26201: 26201: 26201: #define __FLOAT_WORD_ORDER __BYTE_ORDER 26201: 26201: 26201: 26201: #define __LONG_LONG_PAIR(HI,LO) LO, HI 26201: # 25 "/usr/x86_64-linux-gnu/include/endian.h" 2 3 26201: 26201: 26201: #define LITTLE_ENDIAN __LITTLE_ENDIAN 26201: #define BIG_ENDIAN __BIG_ENDIAN 26201: #define PDP_ENDIAN __PDP_ENDIAN 26201: #define BYTE_ORDER __BYTE_ORDER 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/byteswap.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/byteswap.h" 3 26201: #define _BITS_BYTESWAP_H 1 26201: 26201: 26201: 26201: 26201: 26201: #define __bswap_constant_16(x) ((__uint16_t) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))) 26201: 26201: 26201: static __inline __uint16_t 26201: __bswap_16 (__uint16_t __bsx) 26201: { 26201: 26201: return __builtin_bswap16 (__bsx); 26201: 26201: 26201: 26201: } 26201: 26201: 26201: #define __bswap_constant_32(x) ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) | (((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24)) 26201: 26201: 26201: 26201: static __inline __uint32_t 26201: __bswap_32 (__uint32_t __bsx) 26201: { 26201: 26201: return __builtin_bswap32 (__bsx); 26201: 26201: 26201: 26201: } 26201: 26201: 26201: #define __bswap_constant_64(x) ((((x) & 0xff00000000000000ull) >> 56) | (((x) & 0x00ff000000000000ull) >> 40) | (((x) & 0x0000ff0000000000ull) >> 24) | (((x) & 0x000000ff00000000ull) >> 8) | (((x) & 0x00000000ff000000ull) << 8) | (((x) & 0x0000000000ff0000ull) << 24) | (((x) & 0x000000000000ff00ull) << 40) | (((x) & 0x00000000000000ffull) << 56)) 26201: # 69 "/usr/x86_64-linux-gnu/include/bits/byteswap.h" 3 26201: __extension__ static __inline __uint64_t 26201: __bswap_64 (__uint64_t __bsx) 26201: { 26201: 26201: return __builtin_bswap64 (__bsx); 26201: 26201: 26201: 26201: } 26201: # 36 "/usr/x86_64-linux-gnu/include/endian.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/uintn-identity.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/uintn-identity.h" 3 26201: #define _BITS_UINTN_IDENTITY_H 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: static __inline __uint16_t 26201: __uint16_identity (__uint16_t __x) 26201: { 26201: return __x; 26201: } 26201: 26201: static __inline __uint32_t 26201: __uint32_identity (__uint32_t __x) 26201: { 26201: return __x; 26201: } 26201: 26201: static __inline __uint64_t 26201: __uint64_identity (__uint64_t __x) 26201: { 26201: return __x; 26201: } 26201: # 37 "/usr/x86_64-linux-gnu/include/endian.h" 2 3 26201: 26201: 26201: #define htobe16(x) __bswap_16 (x) 26201: #define htole16(x) __uint16_identity (x) 26201: #define be16toh(x) __bswap_16 (x) 26201: #define le16toh(x) __uint16_identity (x) 26201: 26201: #define htobe32(x) __bswap_32 (x) 26201: #define htole32(x) __uint32_identity (x) 26201: #define be32toh(x) __bswap_32 (x) 26201: #define le32toh(x) __uint32_identity (x) 26201: 26201: #define htobe64(x) __bswap_64 (x) 26201: #define htole64(x) __uint64_identity (x) 26201: #define be64toh(x) __bswap_64 (x) 26201: #define le64toh(x) __uint64_identity (x) 26201: # 177 "/usr/x86_64-linux-gnu/include/sys/types.h" 2 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/sys/select.h" 1 3 26201: # 22 "/usr/x86_64-linux-gnu/include/sys/select.h" 3 26201: #define _SYS_SELECT_H 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/select.h" 1 3 26201: # 22 "/usr/x86_64-linux-gnu/include/bits/select.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/wordsize.h" 1 3 26201: 26201: 26201: 26201: #define __WORDSIZE 64 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __WORDSIZE_TIME64_COMPAT32 1 26201: 26201: #define __SYSCALL_WORDSIZE 64 26201: # 23 "/usr/x86_64-linux-gnu/include/bits/select.h" 2 3 26201: 26201: 26201: 26201: 26201: 26201: #define __FD_ZERO_STOS "stosq" 26201: 26201: 26201: 26201: 26201: #define __FD_ZERO(fdsp) do { int __d0, __d1; __asm__ __volatile__ ("cld; rep; " __FD_ZERO_STOS : "=c" (__d0), "=D" (__d1) : "a" (0), "0" (sizeof (fd_set) / sizeof (__fd_mask)), "1" (&__FDS_BITS (fdsp)[0]) : "memory"); } while (0) 26201: # 58 "/usr/x86_64-linux-gnu/include/bits/select.h" 3 26201: #define __FD_SET(d,set) ((void) (__FDS_BITS (set)[__FD_ELT (d)] |= __FD_MASK (d))) 26201: 26201: #define __FD_CLR(d,set) ((void) (__FDS_BITS (set)[__FD_ELT (d)] &= ~__FD_MASK (d))) 26201: 26201: #define __FD_ISSET(d,set) ((__FDS_BITS (set)[__FD_ELT (d)] & __FD_MASK (d)) != 0) 26201: # 31 "/usr/x86_64-linux-gnu/include/sys/select.h" 2 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types/sigset_t.h" 1 3 26201: 26201: #define __sigset_t_defined 1 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types/__sigset_t.h" 1 3 26201: 26201: #define ____sigset_t_defined 26201: 26201: #define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int))) 26201: typedef struct 26201: { 26201: unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; 26201: } __sigset_t; 26201: # 5 "/usr/x86_64-linux-gnu/include/bits/types/sigset_t.h" 2 3 26201: 26201: 26201: typedef __sigset_t sigset_t; 26201: # 34 "/usr/x86_64-linux-gnu/include/sys/select.h" 2 3 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types/struct_timeval.h" 1 3 26201: 26201: #define __timeval_defined 1 26201: 26201: 26201: 26201: 26201: 26201: struct timeval 26201: { 26201: __time_t tv_sec; 26201: __suseconds_t tv_usec; 26201: }; 26201: # 38 "/usr/x86_64-linux-gnu/include/sys/select.h" 2 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types/struct_timespec.h" 1 3 26201: 26201: 26201: #define _STRUCT_TIMESPEC 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: struct timespec 26201: { 26201: __time_t tv_sec; 26201: 26201: 26201: 26201: __syscall_slong_t tv_nsec; 26201: # 26 "/usr/x86_64-linux-gnu/include/bits/types/struct_timespec.h" 3 26201: }; 26201: # 40 "/usr/x86_64-linux-gnu/include/sys/select.h" 2 3 26201: # 49 "/usr/x86_64-linux-gnu/include/sys/select.h" 3 26201: typedef long int __fd_mask; 26201: 26201: 26201: #undef __NFDBITS 26201: 26201: #define __NFDBITS (8 * (int) sizeof (__fd_mask)) 26201: #define __FD_ELT(d) ((d) / __NFDBITS) 26201: #define __FD_MASK(d) ((__fd_mask) (1UL << ((d) % __NFDBITS))) 26201: 26201: 26201: typedef struct 26201: { 26201: 26201: 26201: 26201: __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; 26201: #define __FDS_BITS(set) ((set)->fds_bits) 26201: 26201: 26201: 26201: 26201: } fd_set; 26201: 26201: 26201: #define FD_SETSIZE __FD_SETSIZE 26201: 26201: 26201: 26201: typedef __fd_mask fd_mask; 26201: 26201: 26201: #define NFDBITS __NFDBITS 26201: 26201: 26201: 26201: 26201: #define FD_SET(fd,fdsetp) __FD_SET (fd, fdsetp) 26201: #define FD_CLR(fd,fdsetp) __FD_CLR (fd, fdsetp) 26201: #define FD_ISSET(fd,fdsetp) __FD_ISSET (fd, fdsetp) 26201: #define FD_ZERO(fdsetp) __FD_ZERO (fdsetp) 26201: 26201: 26201: extern "C" { 26201: # 101 "/usr/x86_64-linux-gnu/include/sys/select.h" 3 26201: extern int select (int __nfds, fd_set *__restrict __readfds, 26201: fd_set *__restrict __writefds, 26201: fd_set *__restrict __exceptfds, 26201: struct timeval *__restrict __timeout); 26201: # 113 "/usr/x86_64-linux-gnu/include/sys/select.h" 3 26201: extern int pselect (int __nfds, fd_set *__restrict __readfds, 26201: fd_set *__restrict __writefds, 26201: fd_set *__restrict __exceptfds, 26201: const struct timespec *__restrict __timeout, 26201: const __sigset_t *__restrict __sigmask); 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/select2.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/select2.h" 3 26201: extern long int __fdelt_chk (long int __d); 26201: extern long int __fdelt_warn (long int __d) 26201: __attribute__((__warning__ ("bit outside of fd_set selected"))); 26201: #undef __FD_ELT 26201: #define __FD_ELT(d) __extension__ ({ long int __d = (d); (__builtin_constant_p (__d) ? (0 <= __d && __d < __FD_SETSIZE ? (__d / __NFDBITS) : __fdelt_warn (__d)) : __fdelt_chk (__d)); }) 26201: # 124 "/usr/x86_64-linux-gnu/include/sys/select.h" 2 3 26201: 26201: 26201: } 26201: # 180 "/usr/x86_64-linux-gnu/include/sys/types.h" 2 3 26201: 26201: 26201: 26201: 26201: 26201: typedef __blksize_t blksize_t; 26201: #define __blksize_t_defined 26201: # 205 "/usr/x86_64-linux-gnu/include/sys/types.h" 3 26201: typedef __blkcnt64_t blkcnt_t; 26201: #define __blkcnt_t_defined 26201: 26201: 26201: typedef __fsblkcnt64_t fsblkcnt_t; 26201: #define __fsblkcnt_t_defined 26201: 26201: 26201: typedef __fsfilcnt64_t fsfilcnt_t; 26201: #define __fsfilcnt_t_defined 26201: 26201: 26201: 26201: 26201: typedef __blkcnt64_t blkcnt64_t; 26201: typedef __fsblkcnt64_t fsblkcnt64_t; 26201: typedef __fsfilcnt64_t fsfilcnt64_t; 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/pthreadtypes.h" 1 3 26201: # 20 "/usr/x86_64-linux-gnu/include/bits/pthreadtypes.h" 3 26201: #define _BITS_PTHREADTYPES_COMMON_H 1 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/thread-shared-types.h" 1 3 26201: # 20 "/usr/x86_64-linux-gnu/include/bits/thread-shared-types.h" 3 26201: #define _THREAD_SHARED_TYPES_H 1 26201: # 44 "/usr/x86_64-linux-gnu/include/bits/thread-shared-types.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/pthreadtypes-arch.h" 1 3 26201: # 19 "/usr/x86_64-linux-gnu/include/bits/pthreadtypes-arch.h" 3 26201: #define _BITS_PTHREADTYPES_ARCH_H 1 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/wordsize.h" 1 3 26201: 26201: 26201: 26201: #define __WORDSIZE 64 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __WORDSIZE_TIME64_COMPAT32 1 26201: 26201: #define __SYSCALL_WORDSIZE 64 26201: # 22 "/usr/x86_64-linux-gnu/include/bits/pthreadtypes-arch.h" 2 3 26201: 26201: 26201: 26201: #define __SIZEOF_PTHREAD_MUTEX_T 40 26201: #define __SIZEOF_PTHREAD_ATTR_T 56 26201: #define __SIZEOF_PTHREAD_RWLOCK_T 56 26201: #define __SIZEOF_PTHREAD_BARRIER_T 32 26201: # 41 "/usr/x86_64-linux-gnu/include/bits/pthreadtypes-arch.h" 3 26201: #define __SIZEOF_PTHREAD_MUTEXATTR_T 4 26201: #define __SIZEOF_PTHREAD_COND_T 48 26201: #define __SIZEOF_PTHREAD_CONDATTR_T 4 26201: #define __SIZEOF_PTHREAD_RWLOCKATTR_T 8 26201: #define __SIZEOF_PTHREAD_BARRIERATTR_T 4 26201: 26201: #define __LOCK_ALIGNMENT 26201: #define __ONCE_ALIGNMENT 26201: # 45 "/usr/x86_64-linux-gnu/include/bits/thread-shared-types.h" 2 3 26201: 26201: 26201: 26201: 26201: typedef struct __pthread_internal_list 26201: { 26201: struct __pthread_internal_list *__prev; 26201: struct __pthread_internal_list *__next; 26201: } __pthread_list_t; 26201: 26201: typedef struct __pthread_internal_slist 26201: { 26201: struct __pthread_internal_slist *__next; 26201: } __pthread_slist_t; 26201: # 74 "/usr/x86_64-linux-gnu/include/bits/thread-shared-types.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/struct_mutex.h" 1 3 26201: # 20 "/usr/x86_64-linux-gnu/include/bits/struct_mutex.h" 3 26201: #define _THREAD_MUTEX_INTERNAL_H 1 26201: 26201: struct __pthread_mutex_s 26201: { 26201: int __lock; 26201: unsigned int __count; 26201: int __owner; 26201: 26201: unsigned int __nusers; 26201: 26201: 26201: 26201: int __kind; 26201: 26201: short __spins; 26201: short __elision; 26201: __pthread_list_t __list; 26201: #define __PTHREAD_MUTEX_HAVE_PREV 1 26201: # 53 "/usr/x86_64-linux-gnu/include/bits/struct_mutex.h" 3 26201: }; 26201: 26201: 26201: #define __PTHREAD_MUTEX_INITIALIZER(__kind) 0, 0, 0, 0, __kind, 0, 0, { 0, 0 } 26201: # 75 "/usr/x86_64-linux-gnu/include/bits/thread-shared-types.h" 2 3 26201: # 87 "/usr/x86_64-linux-gnu/include/bits/thread-shared-types.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/struct_rwlock.h" 1 3 26201: # 21 "/usr/x86_64-linux-gnu/include/bits/struct_rwlock.h" 3 26201: #define _RWLOCK_INTERNAL_H 26201: 26201: struct __pthread_rwlock_arch_t 26201: { 26201: unsigned int __readers; 26201: unsigned int __writers; 26201: unsigned int __wrphase_futex; 26201: unsigned int __writers_futex; 26201: unsigned int __pad3; 26201: unsigned int __pad4; 26201: 26201: int __cur_writer; 26201: int __shared; 26201: signed char __rwelision; 26201: 26201: 26201: 26201: 26201: unsigned char __pad1[7]; 26201: #define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0, 0, 0, 0, 0 } 26201: 26201: unsigned long int __pad2; 26201: 26201: 26201: unsigned int __flags; 26201: # 55 "/usr/x86_64-linux-gnu/include/bits/struct_rwlock.h" 3 26201: }; 26201: 26201: 26201: #define __PTHREAD_RWLOCK_INITIALIZER(__flags) 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, __flags 26201: # 88 "/usr/x86_64-linux-gnu/include/bits/thread-shared-types.h" 2 3 26201: 26201: 26201: 26201: 26201: struct __pthread_cond_s 26201: { 26201: __extension__ union 26201: { 26201: __extension__ unsigned long long int __wseq; 26201: struct 26201: { 26201: unsigned int __low; 26201: unsigned int __high; 26201: } __wseq32; 26201: }; 26201: __extension__ union 26201: { 26201: __extension__ unsigned long long int __g1_start; 26201: struct 26201: { 26201: unsigned int __low; 26201: unsigned int __high; 26201: } __g1_start32; 26201: }; 26201: unsigned int __g_refs[2] ; 26201: unsigned int __g_size[2]; 26201: unsigned int __g1_orig_size; 26201: unsigned int __wrefs; 26201: unsigned int __g_signals[2]; 26201: }; 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/pthreadtypes.h" 2 3 26201: 26201: 26201: 26201: typedef unsigned long int pthread_t; 26201: 26201: 26201: 26201: 26201: typedef union 26201: { 26201: char __size[4]; 26201: int __align; 26201: } pthread_mutexattr_t; 26201: 26201: 26201: 26201: 26201: typedef union 26201: { 26201: char __size[4]; 26201: int __align; 26201: } pthread_condattr_t; 26201: 26201: 26201: 26201: typedef unsigned int pthread_key_t; 26201: 26201: 26201: 26201: typedef int pthread_once_t; 26201: 26201: 26201: union pthread_attr_t 26201: { 26201: char __size[56]; 26201: long int __align; 26201: }; 26201: 26201: typedef union pthread_attr_t pthread_attr_t; 26201: #define __have_pthread_attr_t 1 26201: 26201: 26201: 26201: typedef union 26201: { 26201: struct __pthread_mutex_s __data; 26201: char __size[40]; 26201: long int __align; 26201: } pthread_mutex_t; 26201: 26201: 26201: typedef union 26201: { 26201: struct __pthread_cond_s __data; 26201: char __size[48]; 26201: __extension__ long long int __align; 26201: } pthread_cond_t; 26201: 26201: 26201: 26201: 26201: 26201: typedef union 26201: { 26201: struct __pthread_rwlock_arch_t __data; 26201: char __size[56]; 26201: long int __align; 26201: } pthread_rwlock_t; 26201: 26201: typedef union 26201: { 26201: char __size[8]; 26201: long int __align; 26201: } pthread_rwlockattr_t; 26201: 26201: 26201: 26201: 26201: 26201: typedef volatile int pthread_spinlock_t; 26201: 26201: 26201: 26201: 26201: typedef union 26201: { 26201: char __size[32]; 26201: long int __align; 26201: } pthread_barrier_t; 26201: 26201: typedef union 26201: { 26201: char __size[4]; 26201: int __align; 26201: } pthread_barrierattr_t; 26201: # 228 "/usr/x86_64-linux-gnu/include/sys/types.h" 2 3 26201: 26201: 26201: } 26201: # 395 "/usr/x86_64-linux-gnu/include/stdlib.h" 2 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern long int random (void) throw (); 26201: 26201: 26201: extern void srandom (unsigned int __seed) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern char *initstate (unsigned int __seed, char *__statebuf, 26201: size_t __statelen) throw () __attribute__ ((__nonnull__ (2))); 26201: 26201: 26201: 26201: extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: struct random_data 26201: { 26201: int32_t *fptr; 26201: int32_t *rptr; 26201: int32_t *state; 26201: int rand_type; 26201: int rand_deg; 26201: int rand_sep; 26201: int32_t *end_ptr; 26201: }; 26201: 26201: extern int random_r (struct random_data *__restrict __buf, 26201: int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: extern int srandom_r (unsigned int __seed, struct random_data *__buf) 26201: throw () __attribute__ ((__nonnull__ (2))); 26201: 26201: extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, 26201: size_t __statelen, 26201: struct random_data *__restrict __buf) 26201: throw () __attribute__ ((__nonnull__ (2, 4))); 26201: 26201: extern int setstate_r (char *__restrict __statebuf, 26201: struct random_data *__restrict __buf) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: 26201: 26201: 26201: extern int rand (void) throw (); 26201: 26201: extern void srand (unsigned int __seed) throw (); 26201: 26201: 26201: 26201: extern int rand_r (unsigned int *__seed) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern double drand48 (void) throw (); 26201: extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern long int lrand48 (void) throw (); 26201: extern long int nrand48 (unsigned short int __xsubi[3]) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern long int mrand48 (void) throw (); 26201: extern long int jrand48 (unsigned short int __xsubi[3]) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern void srand48 (long int __seedval) throw (); 26201: extern unsigned short int *seed48 (unsigned short int __seed16v[3]) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: 26201: 26201: struct drand48_data 26201: { 26201: unsigned short int __x[3]; 26201: unsigned short int __old_x[3]; 26201: unsigned short int __c; 26201: unsigned short int __init; 26201: __extension__ unsigned long long int __a; 26201: 26201: }; 26201: 26201: 26201: extern int drand48_r (struct drand48_data *__restrict __buffer, 26201: double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 26201: extern int erand48_r (unsigned short int __xsubi[3], 26201: struct drand48_data *__restrict __buffer, 26201: double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern int lrand48_r (struct drand48_data *__restrict __buffer, 26201: long int *__restrict __result) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: extern int nrand48_r (unsigned short int __xsubi[3], 26201: struct drand48_data *__restrict __buffer, 26201: long int *__restrict __result) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern int mrand48_r (struct drand48_data *__restrict __buffer, 26201: long int *__restrict __result) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: extern int jrand48_r (unsigned short int __xsubi[3], 26201: struct drand48_data *__restrict __buffer, 26201: long int *__restrict __result) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern int srand48_r (long int __seedval, struct drand48_data *__buffer) 26201: throw () __attribute__ ((__nonnull__ (2))); 26201: 26201: extern int seed48_r (unsigned short int __seed16v[3], 26201: struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: extern int lcong48_r (unsigned short int __param[7], 26201: struct drand48_data *__buffer) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: 26201: 26201: extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) 26201: __attribute__ ((__alloc_size__ (1))) __attribute__ ((__warn_unused_result__)); 26201: 26201: extern void *calloc (size_t __nmemb, size_t __size) 26201: throw () __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern void *realloc (void *__ptr, size_t __size) 26201: throw () __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2))); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) 26201: throw () __attribute__ ((__warn_unused_result__)) 26201: __attribute__ ((__alloc_size__ (2, 3))); 26201: 26201: 26201: 26201: extern void free (void *__ptr) throw (); 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/alloca.h" 1 3 26201: # 19 "/usr/x86_64-linux-gnu/include/alloca.h" 3 26201: #define _ALLOCA_H 1 26201: 26201: 26201: 26201: #define __need_size_t 26201: # 1 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 1 3 4 26201: # 231 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_size_t 26201: # 401 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_NULL 26201: # 25 "/usr/x86_64-linux-gnu/include/alloca.h" 2 3 26201: 26201: extern "C" { 26201: 26201: 26201: #undef alloca 26201: 26201: 26201: extern void *alloca (size_t __size) throw (); 26201: 26201: 26201: #define alloca(size) __builtin_alloca (size) 26201: 26201: 26201: } 26201: # 569 "/usr/x86_64-linux-gnu/include/stdlib.h" 2 3 26201: 26201: 26201: 26201: 26201: 26201: extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) 26201: __attribute__ ((__alloc_size__ (1))) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) 26201: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: extern void *aligned_alloc (size_t __alignment, size_t __size) 26201: throw () __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (2))) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: extern void abort (void) throw () __attribute__ ((__noreturn__)); 26201: 26201: 26201: 26201: extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: 26201: extern "C++" int at_quick_exit (void (*__func) (void)) 26201: throw () __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1))); 26201: # 610 "/usr/x86_64-linux-gnu/include/stdlib.h" 3 26201: extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: 26201: 26201: extern void exit (int __status) throw () __attribute__ ((__noreturn__)); 26201: 26201: 26201: 26201: 26201: 26201: extern void quick_exit (int __status) throw () __attribute__ ((__noreturn__)); 26201: 26201: 26201: 26201: 26201: 26201: extern void _Exit (int __status) throw () __attribute__ ((__noreturn__)); 26201: 26201: 26201: 26201: 26201: extern char *getenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: extern char *secure_getenv (const char *__name) 26201: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: 26201: 26201: extern int setenv (const char *__name, const char *__value, int __replace) 26201: throw () __attribute__ ((__nonnull__ (2))); 26201: 26201: 26201: extern int unsetenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int clearenv (void) throw (); 26201: # 675 "/usr/x86_64-linux-gnu/include/stdlib.h" 3 26201: extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))); 26201: # 691 "/usr/x86_64-linux-gnu/include/stdlib.h" 3 26201: extern int mkstemp (char *__template) __asm__ ("" "mkstemp64") 26201: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: 26201: extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 26201: # 713 "/usr/x86_64-linux-gnu/include/stdlib.h" 3 26201: extern int mkstemps (char *__template, int __suffixlen) __asm__ ("" "mkstemps64") 26201: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: 26201: extern int mkstemps64 (char *__template, int __suffixlen) 26201: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 26201: # 731 "/usr/x86_64-linux-gnu/include/stdlib.h" 3 26201: extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 26201: # 745 "/usr/x86_64-linux-gnu/include/stdlib.h" 3 26201: extern int mkostemp (char *__template, int __flags) __asm__ ("" "mkostemp64") 26201: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: 26201: extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 26201: # 766 "/usr/x86_64-linux-gnu/include/stdlib.h" 3 26201: extern int mkostemps (char *__template, int __suffixlen, int __flags) __asm__ ("" "mkostemps64") 26201: 26201: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: 26201: extern int mkostemps64 (char *__template, int __suffixlen, int __flags) 26201: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 26201: # 784 "/usr/x86_64-linux-gnu/include/stdlib.h" 3 26201: extern int system (const char *__command) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: 26201: extern char *canonicalize_file_name (const char *__name) 26201: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 26201: # 800 "/usr/x86_64-linux-gnu/include/stdlib.h" 3 26201: extern char *realpath (const char *__restrict __name, 26201: char *__restrict __resolved) throw () __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: 26201: #define __COMPAR_FN_T 26201: typedef int (*__compar_fn_t) (const void *, const void *); 26201: 26201: 26201: typedef __compar_fn_t comparison_fn_t; 26201: 26201: 26201: 26201: typedef int (*__compar_d_fn_t) (const void *, const void *, void *); 26201: 26201: 26201: 26201: 26201: extern void *bsearch (const void *__key, const void *__base, 26201: size_t __nmemb, size_t __size, __compar_fn_t __compar) 26201: __attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/stdlib-bsearch.h" 1 3 26201: # 19 "/usr/x86_64-linux-gnu/include/bits/stdlib-bsearch.h" 3 26201: extern __inline __attribute__ ((__gnu_inline__)) void * 26201: bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, 26201: __compar_fn_t __compar) 26201: { 26201: size_t __l, __u, __idx; 26201: const void *__p; 26201: int __comparison; 26201: 26201: __l = 0; 26201: __u = __nmemb; 26201: while (__l < __u) 26201: { 26201: __idx = (__l + __u) / 2; 26201: __p = (void *) (((const char *) __base) + (__idx * __size)); 26201: __comparison = (*__compar) (__key, __p); 26201: if (__comparison < 0) 26201: __u = __idx; 26201: else if (__comparison > 0) 26201: __l = __idx + 1; 26201: else 26201: return (void *) __p; 26201: } 26201: 26201: return __null; 26201: } 26201: # 826 "/usr/x86_64-linux-gnu/include/stdlib.h" 2 3 26201: 26201: 26201: 26201: 26201: extern void qsort (void *__base, size_t __nmemb, size_t __size, 26201: __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); 26201: 26201: extern void qsort_r (void *__base, size_t __nmemb, size_t __size, 26201: __compar_d_fn_t __compar, void *__arg) 26201: __attribute__ ((__nonnull__ (1, 4))); 26201: 26201: 26201: 26201: 26201: extern int abs (int __x) throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 26201: extern long int labs (long int __x) throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: __extension__ extern long long int llabs (long long int __x) 26201: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern div_t div (int __numer, int __denom) 26201: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 26201: extern ldiv_t ldiv (long int __numer, long int __denom) 26201: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: __extension__ extern lldiv_t lldiv (long long int __numer, 26201: long long int __denom) 26201: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 26201: # 872 "/usr/x86_64-linux-gnu/include/stdlib.h" 3 26201: extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, 26201: int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, 26201: int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: extern char *gcvt (double __value, int __ndigit, char *__buf) 26201: throw () __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: extern char *qecvt (long double __value, int __ndigit, 26201: int *__restrict __decpt, int *__restrict __sign) 26201: throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 26201: extern char *qfcvt (long double __value, int __ndigit, 26201: int *__restrict __decpt, int *__restrict __sign) 26201: throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 26201: extern char *qgcvt (long double __value, int __ndigit, char *__buf) 26201: throw () __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, 26201: int *__restrict __sign, char *__restrict __buf, 26201: size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); 26201: extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, 26201: int *__restrict __sign, char *__restrict __buf, 26201: size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); 26201: 26201: extern int qecvt_r (long double __value, int __ndigit, 26201: int *__restrict __decpt, int *__restrict __sign, 26201: char *__restrict __buf, size_t __len) 26201: throw () __attribute__ ((__nonnull__ (3, 4, 5))); 26201: extern int qfcvt_r (long double __value, int __ndigit, 26201: int *__restrict __decpt, int *__restrict __sign, 26201: char *__restrict __buf, size_t __len) 26201: throw () __attribute__ ((__nonnull__ (3, 4, 5))); 26201: 26201: 26201: 26201: 26201: 26201: extern int mblen (const char *__s, size_t __n) throw (); 26201: 26201: 26201: extern int mbtowc (wchar_t *__restrict __pwc, 26201: const char *__restrict __s, size_t __n) throw (); 26201: 26201: 26201: extern int wctomb (char *__s, wchar_t __wchar) throw (); 26201: 26201: 26201: 26201: extern size_t mbstowcs (wchar_t *__restrict __pwcs, 26201: const char *__restrict __s, size_t __n) throw (); 26201: 26201: extern size_t wcstombs (char *__restrict __s, 26201: const wchar_t *__restrict __pwcs, size_t __n) 26201: throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int rpmatch (const char *__response) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 26201: # 957 "/usr/x86_64-linux-gnu/include/stdlib.h" 3 26201: extern int getsubopt (char **__restrict __optionp, 26201: char *const *__restrict __tokens, 26201: char **__restrict __valuep) 26201: throw () __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int posix_openpt (int __oflag) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int grantpt (int __fd) throw (); 26201: 26201: 26201: 26201: extern int unlockpt (int __fd) throw (); 26201: 26201: 26201: 26201: 26201: extern char *ptsname (int __fd) throw () __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int ptsname_r (int __fd, char *__buf, size_t __buflen) 26201: throw () __attribute__ ((__nonnull__ (2))); 26201: 26201: 26201: extern int getpt (void); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int getloadavg (double __loadavg[], int __nelem) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: # 1013 "/usr/x86_64-linux-gnu/include/stdlib.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/stdlib-float.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/stdlib-float.h" 3 26201: extern __inline __attribute__ ((__gnu_inline__)) double 26201: __attribute__ ((__leaf__)) atof (const char *__nptr) throw () 26201: { 26201: return strtod (__nptr, (char **) __null); 26201: } 26201: # 1014 "/usr/x86_64-linux-gnu/include/stdlib.h" 2 3 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/stdlib.h" 1 3 26201: # 23 "/usr/x86_64-linux-gnu/include/bits/stdlib.h" 3 26201: extern char *__realpath_chk (const char *__restrict __name, 26201: char *__restrict __resolved, 26201: size_t __resolvedlen) throw () __attribute__ ((__warn_unused_result__)); 26201: extern char *__realpath_alias (const char *__restrict __name, char *__restrict __resolved) throw () __asm__ ("" "realpath") 26201: 26201: __attribute__ ((__warn_unused_result__)); 26201: extern char *__realpath_chk_warn (const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) throw () __asm__ ("" "__realpath_chk") 26201: 26201: 26201: __attribute__ ((__warn_unused_result__)) 26201: __attribute__((__warning__ ("second argument of realpath must be either NULL or at " "least PATH_MAX bytes long buffer"))) 26201: ; 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 26201: __attribute__ ((__leaf__)) realpath (const char *__restrict __name, char *__restrict __resolved) throw () 26201: { 26201: if (__builtin_object_size (__resolved, 2 > 1) != (size_t) -1) 26201: { 26201: 26201: 26201: 26201: 26201: return __realpath_chk (__name, __resolved, __builtin_object_size (__resolved, 2 > 1)); 26201: } 26201: 26201: return __realpath_alias (__name, __resolved); 26201: } 26201: 26201: 26201: extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen, 26201: size_t __nreal) throw () __attribute__ ((__nonnull__ (2))); 26201: extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) throw () __asm__ ("" "ptsname_r") 26201: 26201: __attribute__ ((__nonnull__ (2))); 26201: extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) throw () __asm__ ("" "__ptsname_r_chk") 26201: 26201: 26201: __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ptsname_r called with buflen bigger than " "size of buf"))) 26201: ; 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 26201: __attribute__ ((__leaf__)) ptsname_r (int __fd, char *__buf, size_t __buflen) throw () 26201: { 26201: if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) 26201: { 26201: if (!__builtin_constant_p (__buflen)) 26201: return __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 26201: if (__buflen > __builtin_object_size (__buf, 2 > 1)) 26201: return __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 26201: } 26201: return __ptsname_r_alias (__fd, __buf, __buflen); 26201: } 26201: 26201: 26201: extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen) 26201: throw () __attribute__ ((__warn_unused_result__)); 26201: extern int __wctomb_alias (char *__s, wchar_t __wchar) throw () __asm__ ("" "wctomb") 26201: __attribute__ ((__warn_unused_result__)); 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) int 26201: __attribute__ ((__leaf__)) wctomb (char *__s, wchar_t __wchar) throw () 26201: { 26201: 26201: 26201: 26201: #define __STDLIB_MB_LEN_MAX 16 26201: 26201: 26201: 26201: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) 26201: return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1)); 26201: return __wctomb_alias (__s, __wchar); 26201: } 26201: 26201: 26201: extern size_t __mbstowcs_chk (wchar_t *__restrict __dst, 26201: const char *__restrict __src, 26201: size_t __len, size_t __dstlen) throw (); 26201: extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) throw () __asm__ ("" "mbstowcs") 26201: 26201: 26201: ; 26201: extern size_t __mbstowcs_chk_warn (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len, size_t __dstlen) throw () __asm__ ("" "__mbstowcs_chk") 26201: 26201: 26201: 26201: __attribute__((__warning__ ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 26201: ; 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 26201: __attribute__ ((__leaf__)) mbstowcs (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) throw () 26201: 26201: { 26201: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 26201: { 26201: if (!__builtin_constant_p (__len)) 26201: return __mbstowcs_chk (__dst, __src, __len, 26201: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 26201: 26201: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 26201: return __mbstowcs_chk_warn (__dst, __src, __len, 26201: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 26201: } 26201: return __mbstowcs_alias (__dst, __src, __len); 26201: } 26201: 26201: 26201: extern size_t __wcstombs_chk (char *__restrict __dst, 26201: const wchar_t *__restrict __src, 26201: size_t __len, size_t __dstlen) throw (); 26201: extern size_t __wcstombs_alias (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) throw () __asm__ ("" "wcstombs") 26201: 26201: 26201: ; 26201: extern size_t __wcstombs_chk_warn (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len, size_t __dstlen) throw () __asm__ ("" "__wcstombs_chk") 26201: 26201: 26201: 26201: __attribute__((__warning__ ("wcstombs called with dst buffer smaller than len"))); 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 26201: __attribute__ ((__leaf__)) wcstombs (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) throw () 26201: 26201: { 26201: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 26201: { 26201: if (!__builtin_constant_p (__len)) 26201: return __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); 26201: if (__len > __builtin_object_size (__dst, 2 > 1)) 26201: return __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); 26201: } 26201: return __wcstombs_alias (__dst, __src, __len); 26201: } 26201: # 1018 "/usr/x86_64-linux-gnu/include/stdlib.h" 2 3 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 76 "/usr/x86_64-linux-gnu/include/c++/10/cstdlib" 2 3 26201: #undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_abs.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_abs.h" 3 26201: #define _GLIBCXX_BITS_STD_ABS_H 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_abs.h" 3 26201: 26201: 26201: 26201: #define _GLIBCXX_INCLUDE_NEXT_C_HEADERS 26201: 26201: 26201: 26201: 26201: #undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS 26201: 26201: #undef abs 26201: 26201: extern "C++" 26201: { 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: using ::abs; 26201: 26201: 26201: inline long 26201: abs(long __i) { return __builtin_labs(__i); } 26201: 26201: 26201: 26201: inline long long 26201: abs(long long __x) { return __builtin_llabs (__x); } 26201: # 70 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_abs.h" 3 26201: inline constexpr double 26201: abs(double __x) 26201: { return __builtin_fabs(__x); } 26201: 26201: inline constexpr float 26201: abs(float __x) 26201: { return __builtin_fabsf(__x); } 26201: 26201: inline constexpr long double 26201: abs(long double __x) 26201: { return __builtin_fabsl(__x); } 26201: # 107 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_abs.h" 3 26201: 26201: } 26201: } 26201: # 78 "/usr/x86_64-linux-gnu/include/c++/10/cstdlib" 2 3 26201: 26201: 26201: #undef abort 26201: 26201: #undef aligned_alloc 26201: 26201: #undef atexit 26201: 26201: 26201: #undef at_quick_exit 26201: 26201: 26201: #undef atof 26201: #undef atoi 26201: #undef atol 26201: #undef bsearch 26201: #undef calloc 26201: #undef div 26201: #undef exit 26201: #undef free 26201: #undef getenv 26201: #undef labs 26201: #undef ldiv 26201: #undef malloc 26201: #undef mblen 26201: #undef mbstowcs 26201: #undef mbtowc 26201: #undef qsort 26201: 26201: 26201: #undef quick_exit 26201: 26201: 26201: #undef rand 26201: #undef realloc 26201: #undef srand 26201: #undef strtod 26201: #undef strtol 26201: #undef strtoul 26201: #undef system 26201: #undef wcstombs 26201: #undef wctomb 26201: 26201: extern "C++" 26201: { 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: using ::div_t; 26201: using ::ldiv_t; 26201: 26201: using ::abort; 26201: 26201: using ::aligned_alloc; 26201: 26201: using ::atexit; 26201: 26201: 26201: using ::at_quick_exit; 26201: 26201: 26201: using ::atof; 26201: using ::atoi; 26201: using ::atol; 26201: using ::bsearch; 26201: using ::calloc; 26201: using ::div; 26201: using ::exit; 26201: using ::free; 26201: using ::getenv; 26201: using ::labs; 26201: using ::ldiv; 26201: using ::malloc; 26201: 26201: using ::mblen; 26201: using ::mbstowcs; 26201: using ::mbtowc; 26201: 26201: using ::qsort; 26201: 26201: 26201: using ::quick_exit; 26201: 26201: 26201: using ::rand; 26201: using ::realloc; 26201: using ::srand; 26201: using ::strtod; 26201: using ::strtol; 26201: using ::strtoul; 26201: using ::system; 26201: 26201: using ::wcstombs; 26201: using ::wctomb; 26201: 26201: 26201: 26201: inline ldiv_t 26201: div(long __i, long __j) { return ldiv(__i, __j); } 26201: 26201: 26201: 26201: 26201: } 26201: 26201: 26201: 26201: #undef _Exit 26201: #undef llabs 26201: #undef lldiv 26201: #undef atoll 26201: #undef strtoll 26201: #undef strtoull 26201: #undef strtof 26201: #undef strtold 26201: 26201: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: using ::lldiv_t; 26201: 26201: 26201: 26201: 26201: 26201: using ::_Exit; 26201: 26201: 26201: 26201: using ::llabs; 26201: 26201: inline lldiv_t 26201: div(long long __n, long long __d) 26201: { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } 26201: 26201: using ::lldiv; 26201: # 227 "/usr/x86_64-linux-gnu/include/c++/10/cstdlib" 3 26201: using ::atoll; 26201: using ::strtoll; 26201: using ::strtoull; 26201: 26201: using ::strtof; 26201: using ::strtold; 26201: 26201: 26201: } 26201: 26201: namespace std 26201: { 26201: 26201: using ::__gnu_cxx::lldiv_t; 26201: 26201: using ::__gnu_cxx::_Exit; 26201: 26201: using ::__gnu_cxx::llabs; 26201: using ::__gnu_cxx::div; 26201: using ::__gnu_cxx::lldiv; 26201: 26201: using ::__gnu_cxx::atoll; 26201: using ::__gnu_cxx::strtof; 26201: using ::__gnu_cxx::strtoll; 26201: using ::__gnu_cxx::strtoull; 26201: using ::__gnu_cxx::strtold; 26201: } 26201: 26201: 26201: 26201: } 26201: # 60 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/algorithmfwd.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/algorithmfwd.h" 3 26201: #define _GLIBCXX_ALGORITHMFWD_H 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/algorithmfwd.h" 3 26201: # 42 "/usr/x86_64-linux-gnu/include/c++/10/bits/algorithmfwd.h" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 199 "/usr/x86_64-linux-gnu/include/c++/10/bits/algorithmfwd.h" 3 26201: template 26201: 26201: bool 26201: all_of(_IIter, _IIter, _Predicate); 26201: 26201: template 26201: 26201: bool 26201: any_of(_IIter, _IIter, _Predicate); 26201: 26201: 26201: template 26201: 26201: bool 26201: binary_search(_FIter, _FIter, const _Tp&); 26201: 26201: template 26201: 26201: bool 26201: binary_search(_FIter, _FIter, const _Tp&, _Compare); 26201: 26201: 26201: template 26201: constexpr 26201: const _Tp& 26201: clamp(const _Tp&, const _Tp&, const _Tp&); 26201: 26201: template 26201: constexpr 26201: const _Tp& 26201: clamp(const _Tp&, const _Tp&, const _Tp&, _Compare); 26201: 26201: 26201: template 26201: 26201: _OIter 26201: copy(_IIter, _IIter, _OIter); 26201: 26201: template 26201: 26201: _BIter2 26201: copy_backward(_BIter1, _BIter1, _BIter2); 26201: 26201: 26201: template 26201: 26201: _OIter 26201: copy_if(_IIter, _IIter, _OIter, _Predicate); 26201: 26201: template 26201: 26201: _OIter 26201: copy_n(_IIter, _Size, _OIter); 26201: 26201: 26201: 26201: 26201: 26201: template 26201: 26201: pair<_FIter, _FIter> 26201: equal_range(_FIter, _FIter, const _Tp&); 26201: 26201: template 26201: 26201: pair<_FIter, _FIter> 26201: equal_range(_FIter, _FIter, const _Tp&, _Compare); 26201: 26201: template 26201: 26201: void 26201: fill(_FIter, _FIter, const _Tp&); 26201: 26201: template 26201: 26201: _OIter 26201: fill_n(_OIter, _Size, const _Tp&); 26201: 26201: 26201: 26201: template 26201: 26201: _FIter1 26201: find_end(_FIter1, _FIter1, _FIter2, _FIter2); 26201: 26201: template 26201: 26201: _FIter1 26201: find_end(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 26201: 26201: 26201: 26201: 26201: 26201: template 26201: 26201: _IIter 26201: find_if_not(_IIter, _IIter, _Predicate); 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: 26201: bool 26201: includes(_IIter1, _IIter1, _IIter2, _IIter2); 26201: 26201: template 26201: 26201: bool 26201: includes(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); 26201: 26201: template 26201: void 26201: inplace_merge(_BIter, _BIter, _BIter); 26201: 26201: template 26201: void 26201: inplace_merge(_BIter, _BIter, _BIter, _Compare); 26201: 26201: 26201: template 26201: 26201: bool 26201: is_heap(_RAIter, _RAIter); 26201: 26201: template 26201: 26201: bool 26201: is_heap(_RAIter, _RAIter, _Compare); 26201: 26201: template 26201: 26201: _RAIter 26201: is_heap_until(_RAIter, _RAIter); 26201: 26201: template 26201: 26201: _RAIter 26201: is_heap_until(_RAIter, _RAIter, _Compare); 26201: 26201: template 26201: 26201: bool 26201: is_partitioned(_IIter, _IIter, _Predicate); 26201: 26201: template 26201: 26201: bool 26201: is_permutation(_FIter1, _FIter1, _FIter2); 26201: 26201: template 26201: 26201: bool 26201: is_permutation(_FIter1, _FIter1, _FIter2, _BinaryPredicate); 26201: 26201: template 26201: 26201: bool 26201: is_sorted(_FIter, _FIter); 26201: 26201: template 26201: 26201: bool 26201: is_sorted(_FIter, _FIter, _Compare); 26201: 26201: template 26201: 26201: _FIter 26201: is_sorted_until(_FIter, _FIter); 26201: 26201: template 26201: 26201: _FIter 26201: is_sorted_until(_FIter, _FIter, _Compare); 26201: 26201: 26201: template 26201: 26201: void 26201: iter_swap(_FIter1, _FIter2); 26201: 26201: template 26201: 26201: _FIter 26201: lower_bound(_FIter, _FIter, const _Tp&); 26201: 26201: template 26201: 26201: _FIter 26201: lower_bound(_FIter, _FIter, const _Tp&, _Compare); 26201: 26201: template 26201: 26201: void 26201: make_heap(_RAIter, _RAIter); 26201: 26201: template 26201: 26201: void 26201: make_heap(_RAIter, _RAIter, _Compare); 26201: 26201: template 26201: constexpr 26201: const _Tp& 26201: max(const _Tp&, const _Tp&); 26201: 26201: template 26201: constexpr 26201: const _Tp& 26201: max(const _Tp&, const _Tp&, _Compare); 26201: 26201: 26201: 26201: 26201: template 26201: constexpr 26201: const _Tp& 26201: min(const _Tp&, const _Tp&); 26201: 26201: template 26201: constexpr 26201: const _Tp& 26201: min(const _Tp&, const _Tp&, _Compare); 26201: 26201: 26201: 26201: 26201: template 26201: constexpr 26201: pair 26201: minmax(const _Tp&, const _Tp&); 26201: 26201: template 26201: constexpr 26201: pair 26201: minmax(const _Tp&, const _Tp&, _Compare); 26201: 26201: template 26201: constexpr 26201: pair<_FIter, _FIter> 26201: minmax_element(_FIter, _FIter); 26201: 26201: template 26201: constexpr 26201: pair<_FIter, _FIter> 26201: minmax_element(_FIter, _FIter, _Compare); 26201: 26201: template 26201: constexpr 26201: _Tp 26201: min(initializer_list<_Tp>); 26201: 26201: template 26201: constexpr 26201: _Tp 26201: min(initializer_list<_Tp>, _Compare); 26201: 26201: template 26201: constexpr 26201: _Tp 26201: max(initializer_list<_Tp>); 26201: 26201: template 26201: constexpr 26201: _Tp 26201: max(initializer_list<_Tp>, _Compare); 26201: 26201: template 26201: constexpr 26201: pair<_Tp, _Tp> 26201: minmax(initializer_list<_Tp>); 26201: 26201: template 26201: constexpr 26201: pair<_Tp, _Tp> 26201: minmax(initializer_list<_Tp>, _Compare); 26201: 26201: 26201: 26201: 26201: template 26201: 26201: bool 26201: next_permutation(_BIter, _BIter); 26201: 26201: template 26201: 26201: bool 26201: next_permutation(_BIter, _BIter, _Compare); 26201: 26201: 26201: template 26201: 26201: bool 26201: none_of(_IIter, _IIter, _Predicate); 26201: 26201: 26201: 26201: 26201: 26201: template 26201: 26201: _RAIter 26201: partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter); 26201: 26201: template 26201: 26201: _RAIter 26201: partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter, _Compare); 26201: 26201: 26201: 26201: 26201: template 26201: 26201: pair<_OIter1, _OIter2> 26201: partition_copy(_IIter, _IIter, _OIter1, _OIter2, _Predicate); 26201: 26201: template 26201: 26201: _FIter 26201: partition_point(_FIter, _FIter, _Predicate); 26201: 26201: 26201: template 26201: 26201: void 26201: pop_heap(_RAIter, _RAIter); 26201: 26201: template 26201: 26201: void 26201: pop_heap(_RAIter, _RAIter, _Compare); 26201: 26201: template 26201: 26201: bool 26201: prev_permutation(_BIter, _BIter); 26201: 26201: template 26201: 26201: bool 26201: prev_permutation(_BIter, _BIter, _Compare); 26201: 26201: template 26201: 26201: void 26201: push_heap(_RAIter, _RAIter); 26201: 26201: template 26201: 26201: void 26201: push_heap(_RAIter, _RAIter, _Compare); 26201: 26201: 26201: 26201: template 26201: 26201: _FIter 26201: remove(_FIter, _FIter, const _Tp&); 26201: 26201: template 26201: 26201: _FIter 26201: remove_if(_FIter, _FIter, _Predicate); 26201: 26201: template 26201: 26201: _OIter 26201: remove_copy(_IIter, _IIter, _OIter, const _Tp&); 26201: 26201: template 26201: 26201: _OIter 26201: remove_copy_if(_IIter, _IIter, _OIter, _Predicate); 26201: 26201: 26201: 26201: template 26201: 26201: _OIter 26201: replace_copy(_IIter, _IIter, _OIter, const _Tp&, const _Tp&); 26201: 26201: template 26201: 26201: _OIter 26201: replace_copy_if(_Iter, _Iter, _OIter, _Predicate, const _Tp&); 26201: 26201: 26201: 26201: template 26201: 26201: void 26201: reverse(_BIter, _BIter); 26201: 26201: template 26201: 26201: _OIter 26201: reverse_copy(_BIter, _BIter, _OIter); 26201: 26201: inline namespace _V2 26201: { 26201: template 26201: 26201: _FIter 26201: rotate(_FIter, _FIter, _FIter); 26201: } 26201: 26201: template 26201: 26201: _OIter 26201: rotate_copy(_FIter, _FIter, _FIter, _OIter); 26201: # 625 "/usr/x86_64-linux-gnu/include/c++/10/bits/algorithmfwd.h" 3 26201: template 26201: void 26201: shuffle(_RAIter, _RAIter, _UGenerator&&); 26201: 26201: 26201: template 26201: 26201: void 26201: sort_heap(_RAIter, _RAIter); 26201: 26201: template 26201: 26201: void 26201: sort_heap(_RAIter, _RAIter, _Compare); 26201: 26201: template 26201: _BIter 26201: stable_partition(_BIter, _BIter, _Predicate); 26201: # 658 "/usr/x86_64-linux-gnu/include/c++/10/bits/algorithmfwd.h" 3 26201: template 26201: 26201: _FIter2 26201: swap_ranges(_FIter1, _FIter1, _FIter2); 26201: 26201: 26201: 26201: template 26201: 26201: _FIter 26201: unique(_FIter, _FIter); 26201: 26201: template 26201: 26201: _FIter 26201: unique(_FIter, _FIter, _BinaryPredicate); 26201: 26201: 26201: 26201: template 26201: 26201: _FIter 26201: upper_bound(_FIter, _FIter, const _Tp&); 26201: 26201: template 26201: 26201: _FIter 26201: upper_bound(_FIter, _FIter, const _Tp&, _Compare); 26201: 26201: 26201: 26201: template 26201: 26201: _FIter 26201: adjacent_find(_FIter, _FIter); 26201: 26201: template 26201: 26201: _FIter 26201: adjacent_find(_FIter, _FIter, _BinaryPredicate); 26201: 26201: template 26201: 26201: typename iterator_traits<_IIter>::difference_type 26201: count(_IIter, _IIter, const _Tp&); 26201: 26201: template 26201: 26201: typename iterator_traits<_IIter>::difference_type 26201: count_if(_IIter, _IIter, _Predicate); 26201: 26201: template 26201: 26201: bool 26201: equal(_IIter1, _IIter1, _IIter2); 26201: 26201: template 26201: 26201: bool 26201: equal(_IIter1, _IIter1, _IIter2, _BinaryPredicate); 26201: 26201: template 26201: 26201: _IIter 26201: find(_IIter, _IIter, const _Tp&); 26201: 26201: template 26201: 26201: _FIter1 26201: find_first_of(_FIter1, _FIter1, _FIter2, _FIter2); 26201: 26201: template 26201: 26201: _FIter1 26201: find_first_of(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 26201: 26201: template 26201: 26201: _IIter 26201: find_if(_IIter, _IIter, _Predicate); 26201: 26201: template 26201: 26201: _Funct 26201: for_each(_IIter, _IIter, _Funct); 26201: 26201: template 26201: 26201: void 26201: generate(_FIter, _FIter, _Generator); 26201: 26201: template 26201: 26201: _OIter 26201: generate_n(_OIter, _Size, _Generator); 26201: 26201: template 26201: 26201: bool 26201: lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2); 26201: 26201: template 26201: 26201: bool 26201: lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); 26201: 26201: template 26201: constexpr 26201: _FIter 26201: max_element(_FIter, _FIter); 26201: 26201: template 26201: constexpr 26201: _FIter 26201: max_element(_FIter, _FIter, _Compare); 26201: 26201: template 26201: 26201: _OIter 26201: merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 26201: 26201: template 26201: 26201: _OIter 26201: merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 26201: 26201: template 26201: constexpr 26201: _FIter 26201: min_element(_FIter, _FIter); 26201: 26201: template 26201: constexpr 26201: _FIter 26201: min_element(_FIter, _FIter, _Compare); 26201: 26201: template 26201: 26201: pair<_IIter1, _IIter2> 26201: mismatch(_IIter1, _IIter1, _IIter2); 26201: 26201: template 26201: 26201: pair<_IIter1, _IIter2> 26201: mismatch(_IIter1, _IIter1, _IIter2, _BinaryPredicate); 26201: 26201: template 26201: 26201: void 26201: nth_element(_RAIter, _RAIter, _RAIter); 26201: 26201: template 26201: 26201: void 26201: nth_element(_RAIter, _RAIter, _RAIter, _Compare); 26201: 26201: template 26201: 26201: void 26201: partial_sort(_RAIter, _RAIter, _RAIter); 26201: 26201: template 26201: 26201: void 26201: partial_sort(_RAIter, _RAIter, _RAIter, _Compare); 26201: 26201: template 26201: 26201: _BIter 26201: partition(_BIter, _BIter, _Predicate); 26201: 26201: template 26201: void 26201: random_shuffle(_RAIter, _RAIter); 26201: 26201: template 26201: void 26201: random_shuffle(_RAIter, _RAIter, 26201: 26201: _Generator&&); 26201: 26201: 26201: 26201: 26201: template 26201: 26201: void 26201: replace(_FIter, _FIter, const _Tp&, const _Tp&); 26201: 26201: template 26201: 26201: void 26201: replace_if(_FIter, _FIter, _Predicate, const _Tp&); 26201: 26201: template 26201: 26201: _FIter1 26201: search(_FIter1, _FIter1, _FIter2, _FIter2); 26201: 26201: template 26201: 26201: _FIter1 26201: search(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 26201: 26201: template 26201: 26201: _FIter 26201: search_n(_FIter, _FIter, _Size, const _Tp&); 26201: 26201: template 26201: 26201: _FIter 26201: search_n(_FIter, _FIter, _Size, const _Tp&, _BinaryPredicate); 26201: 26201: template 26201: 26201: _OIter 26201: set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 26201: 26201: template 26201: 26201: _OIter 26201: set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 26201: 26201: template 26201: 26201: _OIter 26201: set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 26201: 26201: template 26201: 26201: _OIter 26201: set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 26201: 26201: template 26201: 26201: _OIter 26201: set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 26201: 26201: template 26201: 26201: _OIter 26201: set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, 26201: _OIter, _Compare); 26201: 26201: template 26201: 26201: _OIter 26201: set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 26201: 26201: template 26201: 26201: _OIter 26201: set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 26201: 26201: template 26201: 26201: void 26201: sort(_RAIter, _RAIter); 26201: 26201: template 26201: 26201: void 26201: sort(_RAIter, _RAIter, _Compare); 26201: 26201: template 26201: void 26201: stable_sort(_RAIter, _RAIter); 26201: 26201: template 26201: void 26201: stable_sort(_RAIter, _RAIter, _Compare); 26201: 26201: template 26201: 26201: _OIter 26201: transform(_IIter, _IIter, _OIter, _UnaryOperation); 26201: 26201: template 26201: 26201: _OIter 26201: transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation); 26201: 26201: template 26201: 26201: _OIter 26201: unique_copy(_IIter, _IIter, _OIter); 26201: 26201: template 26201: 26201: _OIter 26201: unique_copy(_IIter, _IIter, _OIter, _BinaryPredicate); 26201: 26201: 26201: 26201: } 26201: # 61 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_heap.h" 1 3 26201: # 56 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_heap.h" 3 26201: #define _STL_HEAP_H 1 26201: 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: 26201: _Distance 26201: __is_heap_until(_RandomAccessIterator __first, _Distance __n, 26201: _Compare& __comp) 26201: { 26201: _Distance __parent = 0; 26201: for (_Distance __child = 1; __child < __n; ++__child) 26201: { 26201: if (__comp(__first + __parent, __first + __child)) 26201: return __child; 26201: if ((__child & 1) == 0) 26201: ++__parent; 26201: } 26201: return __n; 26201: } 26201: 26201: 26201: 26201: template 26201: 26201: inline bool 26201: __is_heap(_RandomAccessIterator __first, _Distance __n) 26201: { 26201: __gnu_cxx::__ops::_Iter_less_iter __comp; 26201: return std::__is_heap_until(__first, __n, __comp) == __n; 26201: } 26201: 26201: template 26201: 26201: inline bool 26201: __is_heap(_RandomAccessIterator __first, _Compare __comp, _Distance __n) 26201: { 26201: typedef __decltype(__comp) _Cmp; 26201: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 26201: return std::__is_heap_until(__first, __n, __cmp) == __n; 26201: } 26201: 26201: template 26201: 26201: inline bool 26201: __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 26201: { return std::__is_heap(__first, std::distance(__first, __last)); } 26201: 26201: template 26201: 26201: inline bool 26201: __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 26201: _Compare __comp) 26201: { 26201: return std::__is_heap(__first, std::move(__comp), 26201: std::distance(__first, __last)); 26201: } 26201: 26201: 26201: 26201: 26201: template 26201: 26201: void 26201: __push_heap(_RandomAccessIterator __first, 26201: _Distance __holeIndex, _Distance __topIndex, _Tp __value, 26201: _Compare& __comp) 26201: { 26201: _Distance __parent = (__holeIndex - 1) / 2; 26201: while (__holeIndex > __topIndex && __comp(__first + __parent, __value)) 26201: { 26201: *(__first + __holeIndex) = std::move(*(__first + __parent)); 26201: __holeIndex = __parent; 26201: __parent = (__holeIndex - 1) / 2; 26201: } 26201: *(__first + __holeIndex) = std::move(__value); 26201: } 26201: # 158 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_heap.h" 3 26201: template 26201: 26201: inline void 26201: push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 26201: { 26201: typedef typename iterator_traits<_RandomAccessIterator>::value_type 26201: _ValueType; 26201: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 26201: _DistanceType; 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: 26201: __gnu_cxx::__ops::_Iter_less_val __comp; 26201: _ValueType __value = std::move(*(__last - 1)); 26201: std::__push_heap(__first, _DistanceType((__last - __first) - 1), 26201: _DistanceType(0), std::move(__value), __comp); 26201: } 26201: # 194 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_heap.h" 3 26201: template 26201: 26201: inline void 26201: push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 26201: _Compare __comp) 26201: { 26201: typedef typename iterator_traits<_RandomAccessIterator>::value_type 26201: _ValueType; 26201: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 26201: _DistanceType; 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: 26201: __decltype(__gnu_cxx::__ops::__iter_comp_val(std::move(__comp))) 26201: __cmp(std::move(__comp)); 26201: _ValueType __value = std::move(*(__last - 1)); 26201: std::__push_heap(__first, _DistanceType((__last - __first) - 1), 26201: _DistanceType(0), std::move(__value), __cmp); 26201: } 26201: 26201: template 26201: 26201: void 26201: __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, 26201: _Distance __len, _Tp __value, _Compare __comp) 26201: { 26201: const _Distance __topIndex = __holeIndex; 26201: _Distance __secondChild = __holeIndex; 26201: while (__secondChild < (__len - 1) / 2) 26201: { 26201: __secondChild = 2 * (__secondChild + 1); 26201: if (__comp(__first + __secondChild, 26201: __first + (__secondChild - 1))) 26201: __secondChild--; 26201: *(__first + __holeIndex) = std::move(*(__first + __secondChild)); 26201: __holeIndex = __secondChild; 26201: } 26201: if ((__len & 1) == 0 && __secondChild == (__len - 2) / 2) 26201: { 26201: __secondChild = 2 * (__secondChild + 1); 26201: *(__first + __holeIndex) = std::move(*(__first + (__secondChild - 1))) 26201: ; 26201: __holeIndex = __secondChild - 1; 26201: } 26201: __decltype(__gnu_cxx::__ops::__iter_comp_val(std::move(__comp))) 26201: __cmp(std::move(__comp)); 26201: std::__push_heap(__first, __holeIndex, __topIndex, 26201: std::move(__value), __cmp); 26201: } 26201: 26201: template 26201: 26201: inline void 26201: __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 26201: _RandomAccessIterator __result, _Compare& __comp) 26201: { 26201: typedef typename iterator_traits<_RandomAccessIterator>::value_type 26201: _ValueType; 26201: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 26201: _DistanceType; 26201: 26201: _ValueType __value = std::move(*__result); 26201: *__result = std::move(*__first); 26201: std::__adjust_heap(__first, _DistanceType(0), 26201: _DistanceType(__last - __first), 26201: std::move(__value), __comp); 26201: } 26201: # 279 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_heap.h" 3 26201: template 26201: 26201: inline void 26201: pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: ; 26201: 26201: if (__last - __first > 1) 26201: { 26201: --__last; 26201: __gnu_cxx::__ops::_Iter_less_iter __comp; 26201: std::__pop_heap(__first, __last, __last, __comp); 26201: } 26201: } 26201: # 313 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_heap.h" 3 26201: template 26201: 26201: inline void 26201: pop_heap(_RandomAccessIterator __first, 26201: _RandomAccessIterator __last, _Compare __comp) 26201: { 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: ; 26201: 26201: if (__last - __first > 1) 26201: { 26201: typedef __decltype(__comp) _Cmp; 26201: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 26201: --__last; 26201: std::__pop_heap(__first, __last, __last, __cmp); 26201: } 26201: } 26201: 26201: template 26201: 26201: void 26201: __make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 26201: _Compare& __comp) 26201: { 26201: typedef typename iterator_traits<_RandomAccessIterator>::value_type 26201: _ValueType; 26201: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 26201: _DistanceType; 26201: 26201: if (__last - __first < 2) 26201: return; 26201: 26201: const _DistanceType __len = __last - __first; 26201: _DistanceType __parent = (__len - 2) / 2; 26201: while (true) 26201: { 26201: _ValueType __value = std::move(*(__first + __parent)); 26201: std::__adjust_heap(__first, __parent, __len, std::move(__value), 26201: __comp); 26201: if (__parent == 0) 26201: return; 26201: __parent--; 26201: } 26201: } 26201: # 371 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_heap.h" 3 26201: template 26201: 26201: inline void 26201: make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: __gnu_cxx::__ops::_Iter_less_iter __comp; 26201: std::__make_heap(__first, __last, __comp); 26201: } 26201: # 398 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_heap.h" 3 26201: template 26201: 26201: inline void 26201: make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 26201: _Compare __comp) 26201: { 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: typedef __decltype(__comp) _Cmp; 26201: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 26201: std::__make_heap(__first, __last, __cmp); 26201: } 26201: 26201: template 26201: 26201: void 26201: __sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 26201: _Compare& __comp) 26201: { 26201: while (__last - __first > 1) 26201: { 26201: --__last; 26201: std::__pop_heap(__first, __last, __last, __comp); 26201: } 26201: } 26201: # 436 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_heap.h" 3 26201: template 26201: 26201: inline void 26201: sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: 26201: __gnu_cxx::__ops::_Iter_less_iter __comp; 26201: std::__sort_heap(__first, __last, __comp); 26201: } 26201: # 464 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_heap.h" 3 26201: template 26201: 26201: inline void 26201: sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 26201: _Compare __comp) 26201: { 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: 26201: typedef __decltype(__comp) _Cmp; 26201: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 26201: std::__sort_heap(__first, __last, __cmp); 26201: } 26201: # 493 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_heap.h" 3 26201: template 26201: 26201: inline _RandomAccessIterator 26201: is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: __gnu_cxx::__ops::_Iter_less_iter __comp; 26201: return __first + 26201: std::__is_heap_until(__first, std::distance(__first, __last), __comp); 26201: } 26201: # 522 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_heap.h" 3 26201: template 26201: 26201: inline _RandomAccessIterator 26201: is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last, 26201: _Compare __comp) 26201: { 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: typedef __decltype(__comp) _Cmp; 26201: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 26201: return __first 26201: + std::__is_heap_until(__first, std::distance(__first, __last), __cmp); 26201: } 26201: # 547 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_heap.h" 3 26201: template 26201: 26201: inline bool 26201: is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 26201: { return std::is_heap_until(__first, __last) == __last; } 26201: # 561 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_heap.h" 3 26201: template 26201: 26201: inline bool 26201: is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 26201: _Compare __comp) 26201: { 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: const auto __dist = std::distance(__first, __last); 26201: typedef __decltype(__comp) _Cmp; 26201: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 26201: return std::__is_heap_until(__first, __dist, __cmp) == __dist; 26201: } 26201: 26201: 26201: 26201: } 26201: # 62 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_tempbuf.h" 1 3 26201: # 57 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_tempbuf.h" 3 26201: #define _STL_TEMPBUF_H 1 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_construct.h" 1 3 26201: # 57 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_construct.h" 3 26201: #define _STL_CONSTRUCT_H 1 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/new" 1 3 26201: # 36 "/usr/x86_64-linux-gnu/include/c++/10/new" 3 26201: #define _NEW 26201: 26201: 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/new" 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/exception" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/exception" 3 26201: #define __EXCEPTION__ 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/exception" 3 26201: 26201: #pragma GCC visibility push(default) 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/exception.h" 1 3 26201: # 32 "/usr/x86_64-linux-gnu/include/c++/10/bits/exception.h" 3 26201: #define __EXCEPTION_H 1 26201: 26201: 26201: # 35 "/usr/x86_64-linux-gnu/include/c++/10/bits/exception.h" 3 26201: 26201: #pragma GCC visibility push(default) 26201: 26201: 26201: 26201: extern "C++" { 26201: 26201: namespace std 26201: { 26201: # 60 "/usr/x86_64-linux-gnu/include/c++/10/bits/exception.h" 3 26201: class exception 26201: { 26201: public: 26201: exception() noexcept { } 26201: virtual ~exception() noexcept; 26201: 26201: exception(const exception&) = default; 26201: exception& operator=(const exception&) = default; 26201: exception(exception&&) = default; 26201: exception& operator=(exception&&) = default; 26201: 26201: 26201: 26201: 26201: virtual const char* 26201: what() const noexcept; 26201: }; 26201: 26201: 26201: 26201: } 26201: 26201: } 26201: 26201: #pragma GCC visibility pop 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/exception" 2 3 26201: 26201: extern "C++" { 26201: 26201: namespace std 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: class bad_exception : public exception 26201: { 26201: public: 26201: bad_exception() noexcept { } 26201: 26201: 26201: 26201: virtual ~bad_exception() noexcept; 26201: 26201: 26201: virtual const char* 26201: what() const noexcept; 26201: }; 26201: 26201: 26201: typedef void (*terminate_handler) (); 26201: 26201: 26201: typedef void (*unexpected_handler) (); 26201: 26201: 26201: terminate_handler set_terminate(terminate_handler) noexcept; 26201: 26201: 26201: 26201: terminate_handler get_terminate() noexcept; 26201: 26201: 26201: 26201: 26201: void terminate() noexcept __attribute__ ((__noreturn__)); 26201: 26201: 26201: unexpected_handler set_unexpected(unexpected_handler) noexcept; 26201: 26201: 26201: 26201: unexpected_handler get_unexpected() noexcept; 26201: 26201: 26201: 26201: 26201: void unexpected() __attribute__ ((__noreturn__)); 26201: # 105 "/usr/x86_64-linux-gnu/include/c++/10/exception" 3 26201: [[__deprecated__]] 26201: bool uncaught_exception() noexcept __attribute__ ((__pure__)); 26201: 26201: 26201: #define __cpp_lib_uncaught_exceptions 201411L 26201: 26201: int uncaught_exceptions() noexcept __attribute__ ((__pure__)); 26201: 26201: 26201: 26201: } 26201: 26201: namespace __gnu_cxx 26201: { 26201: 26201: # 137 "/usr/x86_64-linux-gnu/include/c++/10/exception" 3 26201: void __verbose_terminate_handler(); 26201: 26201: 26201: } 26201: 26201: } 26201: 26201: #pragma GCC visibility pop 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/exception_ptr.h" 1 3 26201: # 32 "/usr/x86_64-linux-gnu/include/c++/10/bits/exception_ptr.h" 3 26201: #define _EXCEPTION_PTR_H 26201: 26201: #pragma GCC visibility push(default) 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/cxxabi_init_exception.h" 1 3 26201: # 32 "/usr/x86_64-linux-gnu/include/c++/10/bits/cxxabi_init_exception.h" 3 26201: #define _CXXABI_INIT_EXCEPTION_H 1 26201: 26201: 26201: # 35 "/usr/x86_64-linux-gnu/include/c++/10/bits/cxxabi_init_exception.h" 3 26201: 26201: #pragma GCC visibility push(default) 26201: 26201: # 1 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 1 3 4 26201: # 39 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #define _STDDEF_H 26201: #define _STDDEF_H_ 26201: 26201: #define _ANSI_STDDEF_H 26201: # 131 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #define _PTRDIFF_T 26201: #define _T_PTRDIFF_ 26201: #define _T_PTRDIFF 26201: #define __PTRDIFF_T 26201: #define _PTRDIFF_T_ 26201: #define _BSD_PTRDIFF_T_ 26201: #define ___int_ptrdiff_t_h 26201: #define _GCC_PTRDIFF_T 26201: #define _PTRDIFF_T_DECLARED 26201: 26201: 26201: 26201: typedef long int ptrdiff_t; 26201: # 155 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_ptrdiff_t 26201: # 231 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_size_t 26201: # 340 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_wchar_t 26201: # 390 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef NULL 26201: 26201: #define NULL __null 26201: # 401 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_NULL 26201: 26201: 26201: 26201: 26201: #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER) 26201: 26201: 26201: 26201: 26201: #define _GCC_MAX_ALIGN_T 26201: 26201: 26201: 26201: typedef struct { 26201: long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); 26201: long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); 26201: # 426 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: } max_align_t; 26201: 26201: 26201: 26201: 26201: 26201: #define _GXX_NULLPTR_T 26201: typedef decltype(nullptr) nullptr_t; 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/bits/cxxabi_init_exception.h" 2 3 26201: 26201: 26201: 26201: #define _GLIBCXX_CDTOR_CALLABI 26201: #define _GLIBCXX_HAVE_CDTOR_CALLABI 0 26201: 26201: 26201: 26201: 26201: 26201: 26201: namespace std 26201: { 26201: class type_info; 26201: } 26201: 26201: namespace __cxxabiv1 26201: { 26201: struct __cxa_refcounted_exception; 26201: 26201: extern "C" 26201: { 26201: 26201: void* 26201: __cxa_allocate_exception(size_t) noexcept; 26201: 26201: void 26201: __cxa_free_exception(void*) noexcept; 26201: 26201: 26201: __cxa_refcounted_exception* 26201: __cxa_init_primary_exception(void *object, std::type_info *tinfo, 26201: void ( *dest) (void *)) noexcept; 26201: 26201: } 26201: } 26201: 26201: 26201: 26201: #pragma GCC visibility pop 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/bits/exception_ptr.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/typeinfo" 1 3 26201: # 30 "/usr/x86_64-linux-gnu/include/c++/10/typeinfo" 3 26201: #define _TYPEINFO 26201: 26201: 26201: # 33 "/usr/x86_64-linux-gnu/include/c++/10/typeinfo" 3 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/hash_bytes.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/hash_bytes.h" 3 26201: #define _HASH_BYTES_H 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/hash_bytes.h" 3 26201: 26201: 26201: 26201: namespace std 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: size_t 26201: _Hash_bytes(const void* __ptr, size_t __len, size_t __seed); 26201: 26201: 26201: 26201: 26201: 26201: size_t 26201: _Fnv_hash_bytes(const void* __ptr, size_t __len, size_t __seed); 26201: 26201: 26201: } 26201: # 37 "/usr/x86_64-linux-gnu/include/c++/10/typeinfo" 2 3 26201: 26201: 26201: #pragma GCC visibility push(default) 26201: 26201: extern "C++" { 26201: 26201: namespace __cxxabiv1 26201: { 26201: class __class_type_info; 26201: } 26201: # 68 "/usr/x86_64-linux-gnu/include/c++/10/typeinfo" 3 26201: #define __GXX_MERGED_TYPEINFO_NAMES 0 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __GXX_TYPEINFO_EQUALITY_INLINE 1 26201: 26201: 26201: 26201: namespace std 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: class type_info 26201: { 26201: public: 26201: 26201: 26201: 26201: 26201: virtual ~type_info(); 26201: 26201: 26201: 26201: const char* name() const noexcept 26201: { return __name[0] == '*' ? __name + 1 : __name; } 26201: # 115 "/usr/x86_64-linux-gnu/include/c++/10/typeinfo" 3 26201: bool before(const type_info& __arg) const noexcept 26201: { return (__name[0] == '*' && __arg.__name[0] == '*') 26201: ? __name < __arg.__name 26201: : __builtin_strcmp (__name, __arg.__name) < 0; } 26201: 26201: bool operator==(const type_info& __arg) const noexcept 26201: { 26201: return ((__name == __arg.__name) 26201: || (__name[0] != '*' && 26201: __builtin_strcmp (__name, __arg.__name) == 0)); 26201: } 26201: # 138 "/usr/x86_64-linux-gnu/include/c++/10/typeinfo" 3 26201: bool operator!=(const type_info& __arg) const noexcept 26201: { return !operator==(__arg); } 26201: 26201: 26201: 26201: size_t hash_code() const noexcept 26201: { 26201: 26201: return _Hash_bytes(name(), __builtin_strlen(name()), 26201: static_cast(0xc70f6907UL)); 26201: 26201: 26201: 26201: } 26201: 26201: 26201: 26201: virtual bool __is_pointer_p() const; 26201: 26201: 26201: virtual bool __is_function_p() const; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj, 26201: unsigned __outer) const; 26201: 26201: 26201: virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target, 26201: void **__obj_ptr) const; 26201: 26201: protected: 26201: const char *__name; 26201: 26201: explicit type_info(const char *__n): __name(__n) { } 26201: 26201: private: 26201: 26201: type_info& operator=(const type_info&); 26201: type_info(const type_info&); 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: class bad_cast : public exception 26201: { 26201: public: 26201: bad_cast() noexcept { } 26201: 26201: 26201: 26201: virtual ~bad_cast() noexcept; 26201: 26201: 26201: virtual const char* what() const noexcept; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: class bad_typeid : public exception 26201: { 26201: public: 26201: bad_typeid () noexcept { } 26201: 26201: 26201: 26201: virtual ~bad_typeid() noexcept; 26201: 26201: 26201: virtual const char* what() const noexcept; 26201: }; 26201: } 26201: 26201: } 26201: 26201: #pragma GCC visibility pop 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/bits/exception_ptr.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/new" 1 3 26201: # 41 "/usr/x86_64-linux-gnu/include/c++/10/bits/exception_ptr.h" 2 3 26201: 26201: extern "C++" { 26201: 26201: namespace std 26201: { 26201: class type_info; 26201: 26201: 26201: 26201: 26201: 26201: 26201: namespace __exception_ptr 26201: { 26201: class exception_ptr; 26201: } 26201: 26201: using __exception_ptr::exception_ptr; 26201: 26201: 26201: 26201: 26201: 26201: exception_ptr current_exception() noexcept; 26201: 26201: template 26201: exception_ptr make_exception_ptr(_Ex) noexcept; 26201: 26201: 26201: void rethrow_exception(exception_ptr) __attribute__ ((__noreturn__)); 26201: 26201: namespace __exception_ptr 26201: { 26201: using std::rethrow_exception; 26201: 26201: 26201: 26201: 26201: 26201: class exception_ptr 26201: { 26201: void* _M_exception_object; 26201: 26201: explicit exception_ptr(void* __e) noexcept; 26201: 26201: void _M_addref() noexcept; 26201: void _M_release() noexcept; 26201: 26201: void *_M_get() const noexcept __attribute__ ((__pure__)); 26201: 26201: friend exception_ptr std::current_exception() noexcept; 26201: friend void std::rethrow_exception(exception_ptr); 26201: template 26201: friend exception_ptr std::make_exception_ptr(_Ex) noexcept; 26201: 26201: public: 26201: exception_ptr() noexcept; 26201: 26201: exception_ptr(const exception_ptr&) noexcept; 26201: 26201: 26201: exception_ptr(nullptr_t) noexcept 26201: : _M_exception_object(0) 26201: { } 26201: 26201: exception_ptr(exception_ptr&& __o) noexcept 26201: : _M_exception_object(__o._M_exception_object) 26201: { __o._M_exception_object = 0; } 26201: # 118 "/usr/x86_64-linux-gnu/include/c++/10/bits/exception_ptr.h" 3 26201: exception_ptr& 26201: operator=(const exception_ptr&) noexcept; 26201: 26201: 26201: exception_ptr& 26201: operator=(exception_ptr&& __o) noexcept 26201: { 26201: exception_ptr(static_cast(__o)).swap(*this); 26201: return *this; 26201: } 26201: 26201: 26201: ~exception_ptr() noexcept; 26201: 26201: void 26201: swap(exception_ptr&) noexcept; 26201: # 145 "/usr/x86_64-linux-gnu/include/c++/10/bits/exception_ptr.h" 3 26201: explicit operator bool() const 26201: { return _M_exception_object; } 26201: 26201: 26201: friend bool 26201: operator==(const exception_ptr&, const exception_ptr&) 26201: noexcept __attribute__ ((__pure__)); 26201: 26201: const class std::type_info* 26201: __cxa_exception_type() const noexcept 26201: __attribute__ ((__pure__)); 26201: }; 26201: 26201: 26201: 26201: bool 26201: operator==(const exception_ptr&, const exception_ptr&) 26201: noexcept __attribute__ ((__pure__)); 26201: 26201: bool 26201: operator!=(const exception_ptr&, const exception_ptr&) 26201: noexcept __attribute__ ((__pure__)); 26201: 26201: inline void 26201: swap(exception_ptr& __lhs, exception_ptr& __rhs) 26201: { __lhs.swap(__rhs); } 26201: 26201: 26201: 26201: 26201: template 26201: inline void 26201: __dest_thunk(void* __x) 26201: { static_cast<_Ex*>(__x)->~_Ex(); } 26201: 26201: 26201: } 26201: 26201: 26201: template 26201: exception_ptr 26201: make_exception_ptr(_Ex __ex) noexcept 26201: { 26201: 26201: void* __e = __cxxabiv1::__cxa_allocate_exception(sizeof(_Ex)); 26201: (void) __cxxabiv1::__cxa_init_primary_exception( 26201: __e, const_cast(&typeid(__ex)), 26201: __exception_ptr::__dest_thunk<_Ex>); 26201: try 26201: { 26201: ::new (__e) _Ex(__ex); 26201: return exception_ptr(__e); 26201: } 26201: catch(...) 26201: { 26201: __cxxabiv1::__cxa_free_exception(__e); 26201: return current_exception(); 26201: } 26201: # 215 "/usr/x86_64-linux-gnu/include/c++/10/bits/exception_ptr.h" 3 26201: } 26201: 26201: 26201: } 26201: 26201: } 26201: 26201: #pragma GCC visibility pop 26201: # 148 "/usr/x86_64-linux-gnu/include/c++/10/exception" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/nested_exception.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/nested_exception.h" 3 26201: #define _GLIBCXX_NESTED_EXCEPTION_H 1 26201: 26201: #pragma GCC visibility push(default) 26201: # 42 "/usr/x86_64-linux-gnu/include/c++/10/bits/nested_exception.h" 3 26201: extern "C++" { 26201: 26201: namespace std 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: class nested_exception 26201: { 26201: exception_ptr _M_ptr; 26201: 26201: public: 26201: nested_exception() noexcept : _M_ptr(current_exception()) { } 26201: 26201: nested_exception(const nested_exception&) noexcept = default; 26201: 26201: nested_exception& operator=(const nested_exception&) noexcept = default; 26201: 26201: virtual ~nested_exception() noexcept; 26201: 26201: [[noreturn]] 26201: void 26201: rethrow_nested() const 26201: { 26201: if (_M_ptr) 26201: rethrow_exception(_M_ptr); 26201: std::terminate(); 26201: } 26201: 26201: exception_ptr 26201: nested_ptr() const noexcept 26201: { return _M_ptr; } 26201: }; 26201: 26201: 26201: 26201: template 26201: struct _Nested_exception : public _Except, public nested_exception 26201: { 26201: explicit _Nested_exception(const _Except& __ex) 26201: : _Except(__ex) 26201: { } 26201: 26201: explicit _Nested_exception(_Except&& __ex) 26201: : _Except(static_cast<_Except&&>(__ex)) 26201: { } 26201: }; 26201: 26201: 26201: 26201: 26201: template 26201: [[noreturn]] 26201: inline void 26201: __throw_with_nested_impl(_Tp&& __t, true_type) 26201: { 26201: using _Up = typename remove_reference<_Tp>::type; 26201: throw _Nested_exception<_Up>{std::forward<_Tp>(__t)}; 26201: } 26201: 26201: template 26201: [[noreturn]] 26201: inline void 26201: __throw_with_nested_impl(_Tp&& __t, false_type) 26201: { throw std::forward<_Tp>(__t); } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: [[noreturn]] 26201: inline void 26201: throw_with_nested(_Tp&& __t) 26201: { 26201: using _Up = typename decay<_Tp>::type; 26201: using _CopyConstructible 26201: = __and_, is_move_constructible<_Up>>; 26201: static_assert(_CopyConstructible::value, 26201: "throw_with_nested argument must be CopyConstructible"); 26201: using __nest = __and_, __bool_constant, 26201: __not_>>; 26201: std::__throw_with_nested_impl(std::forward<_Tp>(__t), __nest{}); 26201: } 26201: 26201: 26201: 26201: 26201: template 26201: using __rethrow_if_nested_cond = typename enable_if< 26201: __and_, 26201: __or_<__not_>, 26201: is_convertible<_Tp*, nested_exception*>>>::value 26201: >::type; 26201: 26201: 26201: template 26201: inline __rethrow_if_nested_cond<_Ex> 26201: __rethrow_if_nested_impl(const _Ex* __ptr) 26201: { 26201: if (auto __ne_ptr = dynamic_cast(__ptr)) 26201: __ne_ptr->rethrow_nested(); 26201: } 26201: 26201: 26201: inline void 26201: __rethrow_if_nested_impl(const void*) 26201: { } 26201: 26201: 26201: 26201: 26201: template 26201: inline void 26201: rethrow_if_nested(const _Ex& __ex) 26201: { std::__rethrow_if_nested_impl(std::__addressof(__ex)); } 26201: 26201: 26201: } 26201: 26201: } 26201: 26201: 26201: 26201: #pragma GCC visibility pop 26201: # 149 "/usr/x86_64-linux-gnu/include/c++/10/exception" 2 3 26201: # 42 "/usr/x86_64-linux-gnu/include/c++/10/new" 2 3 26201: 26201: #pragma GCC visibility push(default) 26201: 26201: extern "C++" { 26201: 26201: namespace std 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: class bad_alloc : public exception 26201: { 26201: public: 26201: bad_alloc() throw() { } 26201: 26201: 26201: bad_alloc(const bad_alloc&) = default; 26201: bad_alloc& operator=(const bad_alloc&) = default; 26201: 26201: 26201: 26201: 26201: virtual ~bad_alloc() throw(); 26201: 26201: 26201: virtual const char* what() const throw(); 26201: }; 26201: 26201: 26201: class bad_array_new_length : public bad_alloc 26201: { 26201: public: 26201: bad_array_new_length() throw() { } 26201: 26201: 26201: 26201: virtual ~bad_array_new_length() throw(); 26201: 26201: 26201: virtual const char* what() const throw(); 26201: }; 26201: 26201: 26201: 26201: enum class align_val_t: size_t {}; 26201: 26201: 26201: struct nothrow_t 26201: { 26201: 26201: explicit nothrow_t() = default; 26201: 26201: }; 26201: 26201: extern const nothrow_t nothrow; 26201: 26201: 26201: 26201: typedef void (*new_handler)(); 26201: 26201: 26201: 26201: new_handler set_new_handler(new_handler) throw(); 26201: 26201: 26201: 26201: new_handler get_new_handler() noexcept; 26201: 26201: } 26201: # 126 "/usr/x86_64-linux-gnu/include/c++/10/new" 3 26201: [[__nodiscard__]] void* operator new(std::size_t) 26201: __attribute__((__externally_visible__)); 26201: [[__nodiscard__]] void* operator new[](std::size_t) 26201: __attribute__((__externally_visible__)); 26201: void operator delete(void*) noexcept 26201: __attribute__((__externally_visible__)); 26201: void operator delete[](void*) noexcept 26201: __attribute__((__externally_visible__)); 26201: 26201: void operator delete(void*, std::size_t) noexcept 26201: __attribute__((__externally_visible__)); 26201: void operator delete[](void*, std::size_t) noexcept 26201: __attribute__((__externally_visible__)); 26201: 26201: [[__nodiscard__]] void* operator new(std::size_t, const std::nothrow_t&) noexcept 26201: __attribute__((__externally_visible__, __malloc__)); 26201: [[__nodiscard__]] void* operator new[](std::size_t, const std::nothrow_t&) noexcept 26201: __attribute__((__externally_visible__, __malloc__)); 26201: void operator delete(void*, const std::nothrow_t&) noexcept 26201: __attribute__((__externally_visible__)); 26201: void operator delete[](void*, const std::nothrow_t&) noexcept 26201: __attribute__((__externally_visible__)); 26201: 26201: [[__nodiscard__]] void* operator new(std::size_t, std::align_val_t) 26201: __attribute__((__externally_visible__)); 26201: [[__nodiscard__]] void* operator new(std::size_t, std::align_val_t, const std::nothrow_t&) 26201: noexcept __attribute__((__externally_visible__, __malloc__)); 26201: void operator delete(void*, std::align_val_t) 26201: noexcept __attribute__((__externally_visible__)); 26201: void operator delete(void*, std::align_val_t, const std::nothrow_t&) 26201: noexcept __attribute__((__externally_visible__)); 26201: [[__nodiscard__]] void* operator new[](std::size_t, std::align_val_t) 26201: __attribute__((__externally_visible__)); 26201: [[__nodiscard__]] void* operator new[](std::size_t, std::align_val_t, const std::nothrow_t&) 26201: noexcept __attribute__((__externally_visible__, __malloc__)); 26201: void operator delete[](void*, std::align_val_t) 26201: noexcept __attribute__((__externally_visible__)); 26201: void operator delete[](void*, std::align_val_t, const std::nothrow_t&) 26201: noexcept __attribute__((__externally_visible__)); 26201: 26201: void operator delete(void*, std::size_t, std::align_val_t) 26201: noexcept __attribute__((__externally_visible__)); 26201: void operator delete[](void*, std::size_t, std::align_val_t) 26201: noexcept __attribute__((__externally_visible__)); 26201: 26201: 26201: 26201: 26201: [[__nodiscard__]] inline void* operator new(std::size_t, void* __p) noexcept 26201: { return __p; } 26201: [[__nodiscard__]] inline void* operator new[](std::size_t, void* __p) noexcept 26201: { return __p; } 26201: 26201: 26201: inline void operator delete (void*, void*) noexcept { } 26201: inline void operator delete[](void*, void*) noexcept { } 26201: 26201: } 26201: 26201: 26201: 26201: namespace std 26201: { 26201: #define __cpp_lib_launder 201606 26201: 26201: template 26201: [[nodiscard]] constexpr _Tp* 26201: launder(_Tp* __p) noexcept 26201: { return __builtin_launder(__p); } 26201: 26201: 26201: 26201: 26201: template 26201: void launder(_Ret (*)(_Args...) noexcept (_NE)) = delete; 26201: template 26201: void launder(_Ret (*)(_Args......) noexcept (_NE)) = delete; 26201: 26201: void launder(void*) = delete; 26201: void launder(const void*) = delete; 26201: void launder(volatile void*) = delete; 26201: void launder(const volatile void*) = delete; 26201: } 26201: # 230 "/usr/x86_64-linux-gnu/include/c++/10/new" 3 26201: #pragma GCC visibility pop 26201: # 60 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_construct.h" 2 3 26201: # 73 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_construct.h" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: template 26201: inline void 26201: destroy_at(_Tp* __location) 26201: { 26201: if constexpr (201703L > 201703L && is_array_v<_Tp>) 26201: { 26201: for (auto& __x : *__location) 26201: std::destroy_at(std::__addressof(__x)); 26201: } 26201: else 26201: __location->~_Tp(); 26201: } 26201: # 106 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_construct.h" 3 26201: template 26201: inline void 26201: _Construct(_Tp* __p, _Args&&... __args) 26201: { ::new(static_cast(__p)) _Tp(std::forward<_Args>(__args)...); } 26201: # 121 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_construct.h" 3 26201: template 26201: inline void 26201: _Construct_novalue(_T1* __p) 26201: { ::new(static_cast(__p)) _T1; } 26201: 26201: template 26201: void 26201: _Destroy(_ForwardIterator __first, _ForwardIterator __last); 26201: 26201: 26201: 26201: 26201: template 26201: constexpr inline void 26201: _Destroy(_Tp* __pointer) 26201: { 26201: 26201: 26201: 26201: __pointer->~_Tp(); 26201: 26201: } 26201: 26201: template 26201: struct _Destroy_aux 26201: { 26201: template 26201: static void 26201: __destroy(_ForwardIterator __first, _ForwardIterator __last) 26201: { 26201: for (; __first != __last; ++__first) 26201: std::_Destroy(std::__addressof(*__first)); 26201: } 26201: }; 26201: 26201: template<> 26201: struct _Destroy_aux 26201: { 26201: template 26201: static void 26201: __destroy(_ForwardIterator, _ForwardIterator) { } 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline void 26201: _Destroy(_ForwardIterator __first, _ForwardIterator __last) 26201: { 26201: typedef typename iterator_traits<_ForwardIterator>::value_type 26201: _Value_type; 26201: 26201: 26201: static_assert(is_destructible<_Value_type>::value, 26201: "value type is destructible"); 26201: 26201: 26201: 26201: 26201: 26201: std::_Destroy_aux<__has_trivial_destructor(_Value_type)>:: 26201: __destroy(__first, __last); 26201: } 26201: 26201: template 26201: struct _Destroy_n_aux 26201: { 26201: template 26201: static _ForwardIterator 26201: __destroy_n(_ForwardIterator __first, _Size __count) 26201: { 26201: for (; __count > 0; (void)++__first, --__count) 26201: std::_Destroy(std::__addressof(*__first)); 26201: return __first; 26201: } 26201: }; 26201: 26201: template<> 26201: struct _Destroy_n_aux 26201: { 26201: template 26201: static _ForwardIterator 26201: __destroy_n(_ForwardIterator __first, _Size __count) 26201: { 26201: std::advance(__first, __count); 26201: return __first; 26201: } 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline _ForwardIterator 26201: _Destroy_n(_ForwardIterator __first, _Size __count) 26201: { 26201: typedef typename iterator_traits<_ForwardIterator>::value_type 26201: _Value_type; 26201: 26201: 26201: static_assert(is_destructible<_Value_type>::value, 26201: "value type is destructible"); 26201: 26201: 26201: 26201: 26201: 26201: return std::_Destroy_n_aux<__has_trivial_destructor(_Value_type)>:: 26201: __destroy_n(__first, __count); 26201: } 26201: 26201: 26201: template 26201: inline void 26201: destroy(_ForwardIterator __first, _ForwardIterator __last) 26201: { 26201: std::_Destroy(__first, __last); 26201: } 26201: 26201: template 26201: inline _ForwardIterator 26201: destroy_n(_ForwardIterator __first, _Size __count) 26201: { 26201: return std::_Destroy_n(__first, __count); 26201: } 26201: 26201: 26201: 26201: } 26201: # 61 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_tempbuf.h" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: namespace __detail 26201: { 26201: template 26201: inline void 26201: __return_temporary_buffer(_Tp* __p, 26201: size_t __len __attribute__((__unused__))) 26201: { 26201: 26201: ::operator delete(__p, __len * sizeof(_Tp)); 26201: 26201: 26201: 26201: } 26201: } 26201: # 98 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_tempbuf.h" 3 26201: template 26201: pair<_Tp*, ptrdiff_t> 26201: get_temporary_buffer(ptrdiff_t __len) noexcept 26201: { 26201: const ptrdiff_t __max = 26201: __gnu_cxx::__numeric_traits::__max / sizeof(_Tp); 26201: if (__len > __max) 26201: __len = __max; 26201: 26201: while (__len > 0) 26201: { 26201: _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp), 26201: std::nothrow)); 26201: if (__tmp != 0) 26201: return std::pair<_Tp*, ptrdiff_t>(__tmp, __len); 26201: __len /= 2; 26201: } 26201: return std::pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0); 26201: } 26201: # 125 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_tempbuf.h" 3 26201: template 26201: inline void 26201: return_temporary_buffer(_Tp* __p) 26201: { ::operator delete(__p); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: class _Temporary_buffer 26201: { 26201: 26201: 26201: 26201: public: 26201: typedef _Tp value_type; 26201: typedef value_type* pointer; 26201: typedef pointer iterator; 26201: typedef ptrdiff_t size_type; 26201: 26201: protected: 26201: size_type _M_original_len; 26201: size_type _M_len; 26201: pointer _M_buffer; 26201: 26201: public: 26201: 26201: size_type 26201: size() const 26201: { return _M_len; } 26201: 26201: 26201: size_type 26201: requested_size() const 26201: { return _M_original_len; } 26201: 26201: 26201: iterator 26201: begin() 26201: { return _M_buffer; } 26201: 26201: 26201: iterator 26201: end() 26201: { return _M_buffer + _M_len; } 26201: 26201: 26201: 26201: 26201: 26201: _Temporary_buffer(_ForwardIterator __seed, size_type __original_len); 26201: 26201: ~_Temporary_buffer() 26201: { 26201: std::_Destroy(_M_buffer, _M_buffer + _M_len); 26201: std::__detail::__return_temporary_buffer(_M_buffer, _M_len); 26201: } 26201: 26201: private: 26201: 26201: _Temporary_buffer(const _Temporary_buffer&); 26201: 26201: void 26201: operator=(const _Temporary_buffer&); 26201: }; 26201: 26201: 26201: template 26201: struct __uninitialized_construct_buf_dispatch 26201: { 26201: template 26201: static void 26201: __ucr(_Pointer __first, _Pointer __last, 26201: _ForwardIterator __seed) 26201: { 26201: if (__first == __last) 26201: return; 26201: 26201: _Pointer __cur = __first; 26201: try 26201: { 26201: std::_Construct(std::__addressof(*__first), 26201: std::move(*__seed)); 26201: _Pointer __prev = __cur; 26201: ++__cur; 26201: for(; __cur != __last; ++__cur, ++__prev) 26201: std::_Construct(std::__addressof(*__cur), 26201: std::move(*__prev)); 26201: *__seed = std::move(*__prev); 26201: } 26201: catch(...) 26201: { 26201: std::_Destroy(__first, __cur); 26201: throw; 26201: } 26201: } 26201: }; 26201: 26201: template<> 26201: struct __uninitialized_construct_buf_dispatch 26201: { 26201: template 26201: static void 26201: __ucr(_Pointer, _Pointer, _ForwardIterator) { } 26201: }; 26201: # 243 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_tempbuf.h" 3 26201: template 26201: inline void 26201: __uninitialized_construct_buf(_Pointer __first, _Pointer __last, 26201: _ForwardIterator __seed) 26201: { 26201: typedef typename std::iterator_traits<_Pointer>::value_type 26201: _ValueType; 26201: 26201: std::__uninitialized_construct_buf_dispatch< 26201: __has_trivial_constructor(_ValueType)>:: 26201: __ucr(__first, __last, __seed); 26201: } 26201: 26201: template 26201: _Temporary_buffer<_ForwardIterator, _Tp>:: 26201: _Temporary_buffer(_ForwardIterator __seed, size_type __original_len) 26201: : _M_original_len(__original_len), _M_len(0), _M_buffer(0) 26201: { 26201: std::pair __p( 26201: std::get_temporary_buffer(_M_original_len)); 26201: 26201: if (__p.first) 26201: { 26201: try 26201: { 26201: std::__uninitialized_construct_buf(__p.first, __p.first + __p.second, 26201: __seed); 26201: _M_buffer = __p.first; 26201: _M_len = __p.second; 26201: } 26201: catch(...) 26201: { 26201: std::__detail::__return_temporary_buffer(__p.first, __p.second); 26201: throw; 26201: } 26201: } 26201: } 26201: 26201: 26201: } 26201: # 63 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 2 3 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/uniform_int_dist.h" 1 3 26201: # 32 "/usr/x86_64-linux-gnu/include/c++/10/bits/uniform_int_dist.h" 3 26201: #define _GLIBCXX_BITS_UNIFORM_INT_DIST_H 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/limits" 1 3 26201: # 38 "/usr/x86_64-linux-gnu/include/c++/10/limits" 3 26201: #define _GLIBCXX_NUMERIC_LIMITS 1 26201: 26201: 26201: # 41 "/usr/x86_64-linux-gnu/include/c++/10/limits" 3 26201: # 80 "/usr/x86_64-linux-gnu/include/c++/10/limits" 3 26201: #define __glibcxx_integral_traps true 26201: # 89 "/usr/x86_64-linux-gnu/include/c++/10/limits" 3 26201: #define __glibcxx_float_has_denorm_loss false 26201: 26201: 26201: #define __glibcxx_float_traps false 26201: 26201: 26201: #define __glibcxx_float_tinyness_before false 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __glibcxx_double_has_denorm_loss false 26201: 26201: 26201: #define __glibcxx_double_traps false 26201: 26201: 26201: #define __glibcxx_double_tinyness_before false 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __glibcxx_long_double_has_denorm_loss false 26201: 26201: 26201: #define __glibcxx_long_double_traps false 26201: 26201: 26201: #define __glibcxx_long_double_tinyness_before false 26201: 26201: 26201: 26201: 26201: #define __glibcxx_signed_b(T,B) ((T)(-1) < 0) 26201: 26201: #define __glibcxx_min_b(T,B) (__glibcxx_signed_b (T,B) ? -__glibcxx_max_b (T,B) - 1 : (T)0) 26201: 26201: 26201: #define __glibcxx_max_b(T,B) (__glibcxx_signed_b (T,B) ? (((((T)1 << (__glibcxx_digits_b (T,B) - 1)) - 1) << 1) + 1) : ~(T)0) 26201: 26201: 26201: 26201: #define __glibcxx_digits_b(T,B) (B - __glibcxx_signed_b (T,B)) 26201: 26201: 26201: 26201: #define __glibcxx_digits10_b(T,B) (__glibcxx_digits_b (T,B) * 643L / 2136) 26201: 26201: 26201: #define __glibcxx_signed(T) __glibcxx_signed_b (T, sizeof(T) * __CHAR_BIT__) 26201: 26201: #define __glibcxx_min(T) __glibcxx_min_b (T, sizeof(T) * __CHAR_BIT__) 26201: 26201: #define __glibcxx_max(T) __glibcxx_max_b (T, sizeof(T) * __CHAR_BIT__) 26201: 26201: #define __glibcxx_digits(T) __glibcxx_digits_b (T, sizeof(T) * __CHAR_BIT__) 26201: 26201: #define __glibcxx_digits10(T) __glibcxx_digits10_b (T, sizeof(T) * __CHAR_BIT__) 26201: 26201: 26201: #define __glibcxx_max_digits10(T) (2 + (T) * 643L / 2136) 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: enum float_round_style 26201: { 26201: round_indeterminate = -1, 26201: round_toward_zero = 0, 26201: round_to_nearest = 1, 26201: round_toward_infinity = 2, 26201: round_toward_neg_infinity = 3 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: enum float_denorm_style 26201: { 26201: 26201: denorm_indeterminate = -1, 26201: 26201: denorm_absent = 0, 26201: 26201: denorm_present = 1 26201: }; 26201: # 202 "/usr/x86_64-linux-gnu/include/c++/10/limits" 3 26201: struct __numeric_limits_base 26201: { 26201: 26201: 26201: static constexpr bool is_specialized = false; 26201: 26201: 26201: 26201: 26201: static constexpr int digits = 0; 26201: 26201: 26201: static constexpr int digits10 = 0; 26201: 26201: 26201: 26201: 26201: static constexpr int max_digits10 = 0; 26201: 26201: 26201: 26201: static constexpr bool is_signed = false; 26201: 26201: 26201: static constexpr bool is_integer = false; 26201: 26201: 26201: 26201: 26201: static constexpr bool is_exact = false; 26201: 26201: 26201: 26201: static constexpr int radix = 0; 26201: 26201: 26201: 26201: static constexpr int min_exponent = 0; 26201: 26201: 26201: 26201: static constexpr int min_exponent10 = 0; 26201: 26201: 26201: 26201: 26201: static constexpr int max_exponent = 0; 26201: 26201: 26201: 26201: static constexpr int max_exponent10 = 0; 26201: 26201: 26201: static constexpr bool has_infinity = false; 26201: 26201: 26201: 26201: static constexpr bool has_quiet_NaN = false; 26201: 26201: 26201: 26201: static constexpr bool has_signaling_NaN = false; 26201: 26201: 26201: static constexpr float_denorm_style has_denorm = denorm_absent; 26201: 26201: 26201: 26201: static constexpr bool has_denorm_loss = false; 26201: 26201: 26201: 26201: static constexpr bool is_iec559 = false; 26201: 26201: 26201: 26201: 26201: static constexpr bool is_bounded = false; 26201: # 288 "/usr/x86_64-linux-gnu/include/c++/10/limits" 3 26201: static constexpr bool is_modulo = false; 26201: 26201: 26201: static constexpr bool traps = false; 26201: 26201: 26201: static constexpr bool tinyness_before = false; 26201: 26201: 26201: 26201: 26201: static constexpr float_round_style round_style = 26201: round_toward_zero; 26201: }; 26201: # 311 "/usr/x86_64-linux-gnu/include/c++/10/limits" 3 26201: template 26201: struct numeric_limits : public __numeric_limits_base 26201: { 26201: 26201: 26201: static constexpr _Tp 26201: min() noexcept { return _Tp(); } 26201: 26201: 26201: static constexpr _Tp 26201: max() noexcept { return _Tp(); } 26201: 26201: 26201: 26201: 26201: static constexpr _Tp 26201: lowest() noexcept { return _Tp(); } 26201: 26201: 26201: 26201: 26201: static constexpr _Tp 26201: epsilon() noexcept { return _Tp(); } 26201: 26201: 26201: static constexpr _Tp 26201: round_error() noexcept { return _Tp(); } 26201: 26201: 26201: static constexpr _Tp 26201: infinity() noexcept { return _Tp(); } 26201: 26201: 26201: 26201: static constexpr _Tp 26201: quiet_NaN() noexcept { return _Tp(); } 26201: 26201: 26201: 26201: static constexpr _Tp 26201: signaling_NaN() noexcept { return _Tp(); } 26201: 26201: 26201: 26201: 26201: static constexpr _Tp 26201: denorm_min() noexcept { return _Tp(); } 26201: }; 26201: 26201: 26201: 26201: 26201: template 26201: struct numeric_limits 26201: : public numeric_limits<_Tp> { }; 26201: 26201: template 26201: struct numeric_limits 26201: : public numeric_limits<_Tp> { }; 26201: 26201: template 26201: struct numeric_limits 26201: : public numeric_limits<_Tp> { }; 26201: # 383 "/usr/x86_64-linux-gnu/include/c++/10/limits" 3 26201: template<> 26201: struct numeric_limits 26201: { 26201: static constexpr bool is_specialized = true; 26201: 26201: static constexpr bool 26201: min() noexcept { return false; } 26201: 26201: static constexpr bool 26201: max() noexcept { return true; } 26201: 26201: 26201: static constexpr bool 26201: lowest() noexcept { return min(); } 26201: 26201: static constexpr int digits = 1; 26201: static constexpr int digits10 = 0; 26201: 26201: static constexpr int max_digits10 = 0; 26201: 26201: static constexpr bool is_signed = false; 26201: static constexpr bool is_integer = true; 26201: static constexpr bool is_exact = true; 26201: static constexpr int radix = 2; 26201: 26201: static constexpr bool 26201: epsilon() noexcept { return false; } 26201: 26201: static constexpr bool 26201: round_error() noexcept { return false; } 26201: 26201: static constexpr int min_exponent = 0; 26201: static constexpr int min_exponent10 = 0; 26201: static constexpr int max_exponent = 0; 26201: static constexpr int max_exponent10 = 0; 26201: 26201: static constexpr bool has_infinity = false; 26201: static constexpr bool has_quiet_NaN = false; 26201: static constexpr bool has_signaling_NaN = false; 26201: static constexpr float_denorm_style has_denorm 26201: = denorm_absent; 26201: static constexpr bool has_denorm_loss = false; 26201: 26201: static constexpr bool 26201: infinity() noexcept { return false; } 26201: 26201: static constexpr bool 26201: quiet_NaN() noexcept { return false; } 26201: 26201: static constexpr bool 26201: signaling_NaN() noexcept { return false; } 26201: 26201: static constexpr bool 26201: denorm_min() noexcept { return false; } 26201: 26201: static constexpr bool is_iec559 = false; 26201: static constexpr bool is_bounded = true; 26201: static constexpr bool is_modulo = false; 26201: 26201: 26201: 26201: 26201: static constexpr bool traps = true; 26201: static constexpr bool tinyness_before = false; 26201: static constexpr float_round_style round_style 26201: = round_toward_zero; 26201: }; 26201: 26201: 26201: template<> 26201: struct numeric_limits 26201: { 26201: static constexpr bool is_specialized = true; 26201: 26201: static constexpr char 26201: min() noexcept { return (((char)(-1) < 0) ? -(((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0) - 1 : (char)0); } 26201: 26201: static constexpr char 26201: max() noexcept { return (((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0); } 26201: 26201: 26201: static constexpr char 26201: lowest() noexcept { return min(); } 26201: 26201: 26201: static constexpr int digits = (sizeof(char) * 8 - ((char)(-1) < 0)); 26201: static constexpr int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643L / 2136); 26201: 26201: static constexpr int max_digits10 = 0; 26201: 26201: static constexpr bool is_signed = ((char)(-1) < 0); 26201: static constexpr bool is_integer = true; 26201: static constexpr bool is_exact = true; 26201: static constexpr int radix = 2; 26201: 26201: static constexpr char 26201: epsilon() noexcept { return 0; } 26201: 26201: static constexpr char 26201: round_error() noexcept { return 0; } 26201: 26201: static constexpr int min_exponent = 0; 26201: static constexpr int min_exponent10 = 0; 26201: static constexpr int max_exponent = 0; 26201: static constexpr int max_exponent10 = 0; 26201: 26201: static constexpr bool has_infinity = false; 26201: static constexpr bool has_quiet_NaN = false; 26201: static constexpr bool has_signaling_NaN = false; 26201: static constexpr float_denorm_style has_denorm 26201: = denorm_absent; 26201: static constexpr bool has_denorm_loss = false; 26201: 26201: static constexpr 26201: char infinity() noexcept { return char(); } 26201: 26201: static constexpr char 26201: quiet_NaN() noexcept { return char(); } 26201: 26201: static constexpr char 26201: signaling_NaN() noexcept { return char(); } 26201: 26201: static constexpr char 26201: denorm_min() noexcept { return static_cast(0); } 26201: 26201: static constexpr bool is_iec559 = false; 26201: static constexpr bool is_bounded = true; 26201: static constexpr bool is_modulo = !is_signed; 26201: 26201: static constexpr bool traps = true; 26201: static constexpr bool tinyness_before = false; 26201: static constexpr float_round_style round_style 26201: = round_toward_zero; 26201: }; 26201: 26201: 26201: template<> 26201: struct numeric_limits 26201: { 26201: static constexpr bool is_specialized = true; 26201: 26201: static constexpr signed char 26201: min() noexcept { return -0x7f - 1; } 26201: 26201: static constexpr signed char 26201: max() noexcept { return 0x7f; } 26201: 26201: 26201: static constexpr signed char 26201: lowest() noexcept { return min(); } 26201: 26201: 26201: static constexpr int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0)); 26201: static constexpr int digits10 26201: = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643L / 2136); 26201: 26201: static constexpr int max_digits10 = 0; 26201: 26201: static constexpr bool is_signed = true; 26201: static constexpr bool is_integer = true; 26201: static constexpr bool is_exact = true; 26201: static constexpr int radix = 2; 26201: 26201: static constexpr signed char 26201: epsilon() noexcept { return 0; } 26201: 26201: static constexpr signed char 26201: round_error() noexcept { return 0; } 26201: 26201: static constexpr int min_exponent = 0; 26201: static constexpr int min_exponent10 = 0; 26201: static constexpr int max_exponent = 0; 26201: static constexpr int max_exponent10 = 0; 26201: 26201: static constexpr bool has_infinity = false; 26201: static constexpr bool has_quiet_NaN = false; 26201: static constexpr bool has_signaling_NaN = false; 26201: static constexpr float_denorm_style has_denorm 26201: = denorm_absent; 26201: static constexpr bool has_denorm_loss = false; 26201: 26201: static constexpr signed char 26201: infinity() noexcept { return static_cast(0); } 26201: 26201: static constexpr signed char 26201: quiet_NaN() noexcept { return static_cast(0); } 26201: 26201: static constexpr signed char 26201: signaling_NaN() noexcept 26201: { return static_cast(0); } 26201: 26201: static constexpr signed char 26201: denorm_min() noexcept 26201: { return static_cast(0); } 26201: 26201: static constexpr bool is_iec559 = false; 26201: static constexpr bool is_bounded = true; 26201: static constexpr bool is_modulo = false; 26201: 26201: static constexpr bool traps = true; 26201: static constexpr bool tinyness_before = false; 26201: static constexpr float_round_style round_style 26201: = round_toward_zero; 26201: }; 26201: 26201: 26201: template<> 26201: struct numeric_limits 26201: { 26201: static constexpr bool is_specialized = true; 26201: 26201: static constexpr unsigned char 26201: min() noexcept { return 0; } 26201: 26201: static constexpr unsigned char 26201: max() noexcept { return 0x7f * 2U + 1; } 26201: 26201: 26201: static constexpr unsigned char 26201: lowest() noexcept { return min(); } 26201: 26201: 26201: static constexpr int digits 26201: = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)); 26201: static constexpr int digits10 26201: = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643L / 2136); 26201: 26201: static constexpr int max_digits10 = 0; 26201: 26201: static constexpr bool is_signed = false; 26201: static constexpr bool is_integer = true; 26201: static constexpr bool is_exact = true; 26201: static constexpr int radix = 2; 26201: 26201: static constexpr unsigned char 26201: epsilon() noexcept { return 0; } 26201: 26201: static constexpr unsigned char 26201: round_error() noexcept { return 0; } 26201: 26201: static constexpr int min_exponent = 0; 26201: static constexpr int min_exponent10 = 0; 26201: static constexpr int max_exponent = 0; 26201: static constexpr int max_exponent10 = 0; 26201: 26201: static constexpr bool has_infinity = false; 26201: static constexpr bool has_quiet_NaN = false; 26201: static constexpr bool has_signaling_NaN = false; 26201: static constexpr float_denorm_style has_denorm 26201: = denorm_absent; 26201: static constexpr bool has_denorm_loss = false; 26201: 26201: static constexpr unsigned char 26201: infinity() noexcept 26201: { return static_cast(0); } 26201: 26201: static constexpr unsigned char 26201: quiet_NaN() noexcept 26201: { return static_cast(0); } 26201: 26201: static constexpr unsigned char 26201: signaling_NaN() noexcept 26201: { return static_cast(0); } 26201: 26201: static constexpr unsigned char 26201: denorm_min() noexcept 26201: { return static_cast(0); } 26201: 26201: static constexpr bool is_iec559 = false; 26201: static constexpr bool is_bounded = true; 26201: static constexpr bool is_modulo = true; 26201: 26201: static constexpr bool traps = true; 26201: static constexpr bool tinyness_before = false; 26201: static constexpr float_round_style round_style 26201: = round_toward_zero; 26201: }; 26201: 26201: 26201: template<> 26201: struct numeric_limits 26201: { 26201: static constexpr bool is_specialized = true; 26201: 26201: static constexpr wchar_t 26201: min() noexcept { return (((wchar_t)(-1) < 0) ? -(((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0) - 1 : (wchar_t)0); } 26201: 26201: static constexpr wchar_t 26201: max() noexcept { return (((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0); } 26201: 26201: 26201: static constexpr wchar_t 26201: lowest() noexcept { return min(); } 26201: 26201: 26201: static constexpr int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)); 26201: static constexpr int digits10 26201: = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643L / 2136); 26201: 26201: static constexpr int max_digits10 = 0; 26201: 26201: static constexpr bool is_signed = ((wchar_t)(-1) < 0); 26201: static constexpr bool is_integer = true; 26201: static constexpr bool is_exact = true; 26201: static constexpr int radix = 2; 26201: 26201: static constexpr wchar_t 26201: epsilon() noexcept { return 0; } 26201: 26201: static constexpr wchar_t 26201: round_error() noexcept { return 0; } 26201: 26201: static constexpr int min_exponent = 0; 26201: static constexpr int min_exponent10 = 0; 26201: static constexpr int max_exponent = 0; 26201: static constexpr int max_exponent10 = 0; 26201: 26201: static constexpr bool has_infinity = false; 26201: static constexpr bool has_quiet_NaN = false; 26201: static constexpr bool has_signaling_NaN = false; 26201: static constexpr float_denorm_style has_denorm 26201: = denorm_absent; 26201: static constexpr bool has_denorm_loss = false; 26201: 26201: static constexpr wchar_t 26201: infinity() noexcept { return wchar_t(); } 26201: 26201: static constexpr wchar_t 26201: quiet_NaN() noexcept { return wchar_t(); } 26201: 26201: static constexpr wchar_t 26201: signaling_NaN() noexcept { return wchar_t(); } 26201: 26201: static constexpr wchar_t 26201: denorm_min() noexcept { return wchar_t(); } 26201: 26201: static constexpr bool is_iec559 = false; 26201: static constexpr bool is_bounded = true; 26201: static constexpr bool is_modulo = !is_signed; 26201: 26201: static constexpr bool traps = true; 26201: static constexpr bool tinyness_before = false; 26201: static constexpr float_round_style round_style 26201: = round_toward_zero; 26201: }; 26201: # 796 "/usr/x86_64-linux-gnu/include/c++/10/limits" 3 26201: template<> 26201: struct numeric_limits 26201: { 26201: static constexpr bool is_specialized = true; 26201: 26201: static constexpr char16_t 26201: min() noexcept { return (((char16_t)(-1) < 0) ? -(((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0) - 1 : (char16_t)0); } 26201: 26201: static constexpr char16_t 26201: max() noexcept { return (((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0); } 26201: 26201: static constexpr char16_t 26201: lowest() noexcept { return min(); } 26201: 26201: static constexpr int digits = (sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)); 26201: static constexpr int digits10 = ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) * 643L / 2136); 26201: static constexpr int max_digits10 = 0; 26201: static constexpr bool is_signed = ((char16_t)(-1) < 0); 26201: static constexpr bool is_integer = true; 26201: static constexpr bool is_exact = true; 26201: static constexpr int radix = 2; 26201: 26201: static constexpr char16_t 26201: epsilon() noexcept { return 0; } 26201: 26201: static constexpr char16_t 26201: round_error() noexcept { return 0; } 26201: 26201: static constexpr int min_exponent = 0; 26201: static constexpr int min_exponent10 = 0; 26201: static constexpr int max_exponent = 0; 26201: static constexpr int max_exponent10 = 0; 26201: 26201: static constexpr bool has_infinity = false; 26201: static constexpr bool has_quiet_NaN = false; 26201: static constexpr bool has_signaling_NaN = false; 26201: static constexpr float_denorm_style has_denorm = denorm_absent; 26201: static constexpr bool has_denorm_loss = false; 26201: 26201: static constexpr char16_t 26201: infinity() noexcept { return char16_t(); } 26201: 26201: static constexpr char16_t 26201: quiet_NaN() noexcept { return char16_t(); } 26201: 26201: static constexpr char16_t 26201: signaling_NaN() noexcept { return char16_t(); } 26201: 26201: static constexpr char16_t 26201: denorm_min() noexcept { return char16_t(); } 26201: 26201: static constexpr bool is_iec559 = false; 26201: static constexpr bool is_bounded = true; 26201: static constexpr bool is_modulo = !is_signed; 26201: 26201: static constexpr bool traps = true; 26201: static constexpr bool tinyness_before = false; 26201: static constexpr float_round_style round_style = round_toward_zero; 26201: }; 26201: 26201: 26201: template<> 26201: struct numeric_limits 26201: { 26201: static constexpr bool is_specialized = true; 26201: 26201: static constexpr char32_t 26201: min() noexcept { return (((char32_t)(-1) < 0) ? -(((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0) - 1 : (char32_t)0); } 26201: 26201: static constexpr char32_t 26201: max() noexcept { return (((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0); } 26201: 26201: static constexpr char32_t 26201: lowest() noexcept { return min(); } 26201: 26201: static constexpr int digits = (sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)); 26201: static constexpr int digits10 = ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) * 643L / 2136); 26201: static constexpr int max_digits10 = 0; 26201: static constexpr bool is_signed = ((char32_t)(-1) < 0); 26201: static constexpr bool is_integer = true; 26201: static constexpr bool is_exact = true; 26201: static constexpr int radix = 2; 26201: 26201: static constexpr char32_t 26201: epsilon() noexcept { return 0; } 26201: 26201: static constexpr char32_t 26201: round_error() noexcept { return 0; } 26201: 26201: static constexpr int min_exponent = 0; 26201: static constexpr int min_exponent10 = 0; 26201: static constexpr int max_exponent = 0; 26201: static constexpr int max_exponent10 = 0; 26201: 26201: static constexpr bool has_infinity = false; 26201: static constexpr bool has_quiet_NaN = false; 26201: static constexpr bool has_signaling_NaN = false; 26201: static constexpr float_denorm_style has_denorm = denorm_absent; 26201: static constexpr bool has_denorm_loss = false; 26201: 26201: static constexpr char32_t 26201: infinity() noexcept { return char32_t(); } 26201: 26201: static constexpr char32_t 26201: quiet_NaN() noexcept { return char32_t(); } 26201: 26201: static constexpr char32_t 26201: signaling_NaN() noexcept { return char32_t(); } 26201: 26201: static constexpr char32_t 26201: denorm_min() noexcept { return char32_t(); } 26201: 26201: static constexpr bool is_iec559 = false; 26201: static constexpr bool is_bounded = true; 26201: static constexpr bool is_modulo = !is_signed; 26201: 26201: static constexpr bool traps = true; 26201: static constexpr bool tinyness_before = false; 26201: static constexpr float_round_style round_style = round_toward_zero; 26201: }; 26201: 26201: 26201: 26201: template<> 26201: struct numeric_limits 26201: { 26201: static constexpr bool is_specialized = true; 26201: 26201: static constexpr short 26201: min() noexcept { return -0x7fff - 1; } 26201: 26201: static constexpr short 26201: max() noexcept { return 0x7fff; } 26201: 26201: 26201: static constexpr short 26201: lowest() noexcept { return min(); } 26201: 26201: 26201: static constexpr int digits = (sizeof(short) * 8 - ((short)(-1) < 0)); 26201: static constexpr int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643L / 2136); 26201: 26201: static constexpr int max_digits10 = 0; 26201: 26201: static constexpr bool is_signed = true; 26201: static constexpr bool is_integer = true; 26201: static constexpr bool is_exact = true; 26201: static constexpr int radix = 2; 26201: 26201: static constexpr short 26201: epsilon() noexcept { return 0; } 26201: 26201: static constexpr short 26201: round_error() noexcept { return 0; } 26201: 26201: static constexpr int min_exponent = 0; 26201: static constexpr int min_exponent10 = 0; 26201: static constexpr int max_exponent = 0; 26201: static constexpr int max_exponent10 = 0; 26201: 26201: static constexpr bool has_infinity = false; 26201: static constexpr bool has_quiet_NaN = false; 26201: static constexpr bool has_signaling_NaN = false; 26201: static constexpr float_denorm_style has_denorm 26201: = denorm_absent; 26201: static constexpr bool has_denorm_loss = false; 26201: 26201: static constexpr short 26201: infinity() noexcept { return short(); } 26201: 26201: static constexpr short 26201: quiet_NaN() noexcept { return short(); } 26201: 26201: static constexpr short 26201: signaling_NaN() noexcept { return short(); } 26201: 26201: static constexpr short 26201: denorm_min() noexcept { return short(); } 26201: 26201: static constexpr bool is_iec559 = false; 26201: static constexpr bool is_bounded = true; 26201: static constexpr bool is_modulo = false; 26201: 26201: static constexpr bool traps = true; 26201: static constexpr bool tinyness_before = false; 26201: static constexpr float_round_style round_style 26201: = round_toward_zero; 26201: }; 26201: 26201: 26201: template<> 26201: struct numeric_limits 26201: { 26201: static constexpr bool is_specialized = true; 26201: 26201: static constexpr unsigned short 26201: min() noexcept { return 0; } 26201: 26201: static constexpr unsigned short 26201: max() noexcept { return 0x7fff * 2U + 1; } 26201: 26201: 26201: static constexpr unsigned short 26201: lowest() noexcept { return min(); } 26201: 26201: 26201: static constexpr int digits 26201: = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)); 26201: static constexpr int digits10 26201: = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643L / 2136); 26201: 26201: static constexpr int max_digits10 = 0; 26201: 26201: static constexpr bool is_signed = false; 26201: static constexpr bool is_integer = true; 26201: static constexpr bool is_exact = true; 26201: static constexpr int radix = 2; 26201: 26201: static constexpr unsigned short 26201: epsilon() noexcept { return 0; } 26201: 26201: static constexpr unsigned short 26201: round_error() noexcept { return 0; } 26201: 26201: static constexpr int min_exponent = 0; 26201: static constexpr int min_exponent10 = 0; 26201: static constexpr int max_exponent = 0; 26201: static constexpr int max_exponent10 = 0; 26201: 26201: static constexpr bool has_infinity = false; 26201: static constexpr bool has_quiet_NaN = false; 26201: static constexpr bool has_signaling_NaN = false; 26201: static constexpr float_denorm_style has_denorm 26201: = denorm_absent; 26201: static constexpr bool has_denorm_loss = false; 26201: 26201: static constexpr unsigned short 26201: infinity() noexcept 26201: { return static_cast(0); } 26201: 26201: static constexpr unsigned short 26201: quiet_NaN() noexcept 26201: { return static_cast(0); } 26201: 26201: static constexpr unsigned short 26201: signaling_NaN() noexcept 26201: { return static_cast(0); } 26201: 26201: static constexpr unsigned short 26201: denorm_min() noexcept 26201: { return static_cast(0); } 26201: 26201: static constexpr bool is_iec559 = false; 26201: static constexpr bool is_bounded = true; 26201: static constexpr bool is_modulo = true; 26201: 26201: static constexpr bool traps = true; 26201: static constexpr bool tinyness_before = false; 26201: static constexpr float_round_style round_style 26201: = round_toward_zero; 26201: }; 26201: 26201: 26201: template<> 26201: struct numeric_limits 26201: { 26201: static constexpr bool is_specialized = true; 26201: 26201: static constexpr int 26201: min() noexcept { return -0x7fffffff - 1; } 26201: 26201: static constexpr int 26201: max() noexcept { return 0x7fffffff; } 26201: 26201: 26201: static constexpr int 26201: lowest() noexcept { return min(); } 26201: 26201: 26201: static constexpr int digits = (sizeof(int) * 8 - ((int)(-1) < 0)); 26201: static constexpr int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643L / 2136); 26201: 26201: static constexpr int max_digits10 = 0; 26201: 26201: static constexpr bool is_signed = true; 26201: static constexpr bool is_integer = true; 26201: static constexpr bool is_exact = true; 26201: static constexpr int radix = 2; 26201: 26201: static constexpr int 26201: epsilon() noexcept { return 0; } 26201: 26201: static constexpr int 26201: round_error() noexcept { return 0; } 26201: 26201: static constexpr int min_exponent = 0; 26201: static constexpr int min_exponent10 = 0; 26201: static constexpr int max_exponent = 0; 26201: static constexpr int max_exponent10 = 0; 26201: 26201: static constexpr bool has_infinity = false; 26201: static constexpr bool has_quiet_NaN = false; 26201: static constexpr bool has_signaling_NaN = false; 26201: static constexpr float_denorm_style has_denorm 26201: = denorm_absent; 26201: static constexpr bool has_denorm_loss = false; 26201: 26201: static constexpr int 26201: infinity() noexcept { return static_cast(0); } 26201: 26201: static constexpr int 26201: quiet_NaN() noexcept { return static_cast(0); } 26201: 26201: static constexpr int 26201: signaling_NaN() noexcept { return static_cast(0); } 26201: 26201: static constexpr int 26201: denorm_min() noexcept { return static_cast(0); } 26201: 26201: static constexpr bool is_iec559 = false; 26201: static constexpr bool is_bounded = true; 26201: static constexpr bool is_modulo = false; 26201: 26201: static constexpr bool traps = true; 26201: static constexpr bool tinyness_before = false; 26201: static constexpr float_round_style round_style 26201: = round_toward_zero; 26201: }; 26201: 26201: 26201: template<> 26201: struct numeric_limits 26201: { 26201: static constexpr bool is_specialized = true; 26201: 26201: static constexpr unsigned int 26201: min() noexcept { return 0; } 26201: 26201: static constexpr unsigned int 26201: max() noexcept { return 0x7fffffff * 2U + 1; } 26201: 26201: 26201: static constexpr unsigned int 26201: lowest() noexcept { return min(); } 26201: 26201: 26201: static constexpr int digits 26201: = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)); 26201: static constexpr int digits10 26201: = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643L / 2136); 26201: 26201: static constexpr int max_digits10 = 0; 26201: 26201: static constexpr bool is_signed = false; 26201: static constexpr bool is_integer = true; 26201: static constexpr bool is_exact = true; 26201: static constexpr int radix = 2; 26201: 26201: static constexpr unsigned int 26201: epsilon() noexcept { return 0; } 26201: 26201: static constexpr unsigned int 26201: round_error() noexcept { return 0; } 26201: 26201: static constexpr int min_exponent = 0; 26201: static constexpr int min_exponent10 = 0; 26201: static constexpr int max_exponent = 0; 26201: static constexpr int max_exponent10 = 0; 26201: 26201: static constexpr bool has_infinity = false; 26201: static constexpr bool has_quiet_NaN = false; 26201: static constexpr bool has_signaling_NaN = false; 26201: static constexpr float_denorm_style has_denorm 26201: = denorm_absent; 26201: static constexpr bool has_denorm_loss = false; 26201: 26201: static constexpr unsigned int 26201: infinity() noexcept { return static_cast(0); } 26201: 26201: static constexpr unsigned int 26201: quiet_NaN() noexcept 26201: { return static_cast(0); } 26201: 26201: static constexpr unsigned int 26201: signaling_NaN() noexcept 26201: { return static_cast(0); } 26201: 26201: static constexpr unsigned int 26201: denorm_min() noexcept 26201: { return static_cast(0); } 26201: 26201: static constexpr bool is_iec559 = false; 26201: static constexpr bool is_bounded = true; 26201: static constexpr bool is_modulo = true; 26201: 26201: static constexpr bool traps = true; 26201: static constexpr bool tinyness_before = false; 26201: static constexpr float_round_style round_style 26201: = round_toward_zero; 26201: }; 26201: 26201: 26201: template<> 26201: struct numeric_limits 26201: { 26201: static constexpr bool is_specialized = true; 26201: 26201: static constexpr long 26201: min() noexcept { return -0x7fffffffffffffffL - 1; } 26201: 26201: static constexpr long 26201: max() noexcept { return 0x7fffffffffffffffL; } 26201: 26201: 26201: static constexpr long 26201: lowest() noexcept { return min(); } 26201: 26201: 26201: static constexpr int digits = (sizeof(long) * 8 - ((long)(-1) < 0)); 26201: static constexpr int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643L / 2136); 26201: 26201: static constexpr int max_digits10 = 0; 26201: 26201: static constexpr bool is_signed = true; 26201: static constexpr bool is_integer = true; 26201: static constexpr bool is_exact = true; 26201: static constexpr int radix = 2; 26201: 26201: static constexpr long 26201: epsilon() noexcept { return 0; } 26201: 26201: static constexpr long 26201: round_error() noexcept { return 0; } 26201: 26201: static constexpr int min_exponent = 0; 26201: static constexpr int min_exponent10 = 0; 26201: static constexpr int max_exponent = 0; 26201: static constexpr int max_exponent10 = 0; 26201: 26201: static constexpr bool has_infinity = false; 26201: static constexpr bool has_quiet_NaN = false; 26201: static constexpr bool has_signaling_NaN = false; 26201: static constexpr float_denorm_style has_denorm 26201: = denorm_absent; 26201: static constexpr bool has_denorm_loss = false; 26201: 26201: static constexpr long 26201: infinity() noexcept { return static_cast(0); } 26201: 26201: static constexpr long 26201: quiet_NaN() noexcept { return static_cast(0); } 26201: 26201: static constexpr long 26201: signaling_NaN() noexcept { return static_cast(0); } 26201: 26201: static constexpr long 26201: denorm_min() noexcept { return static_cast(0); } 26201: 26201: static constexpr bool is_iec559 = false; 26201: static constexpr bool is_bounded = true; 26201: static constexpr bool is_modulo = false; 26201: 26201: static constexpr bool traps = true; 26201: static constexpr bool tinyness_before = false; 26201: static constexpr float_round_style round_style 26201: = round_toward_zero; 26201: }; 26201: 26201: 26201: template<> 26201: struct numeric_limits 26201: { 26201: static constexpr bool is_specialized = true; 26201: 26201: static constexpr unsigned long 26201: min() noexcept { return 0; } 26201: 26201: static constexpr unsigned long 26201: max() noexcept { return 0x7fffffffffffffffL * 2UL + 1; } 26201: 26201: 26201: static constexpr unsigned long 26201: lowest() noexcept { return min(); } 26201: 26201: 26201: static constexpr int digits 26201: = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)); 26201: static constexpr int digits10 26201: = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643L / 2136); 26201: 26201: static constexpr int max_digits10 = 0; 26201: 26201: static constexpr bool is_signed = false; 26201: static constexpr bool is_integer = true; 26201: static constexpr bool is_exact = true; 26201: static constexpr int radix = 2; 26201: 26201: static constexpr unsigned long 26201: epsilon() noexcept { return 0; } 26201: 26201: static constexpr unsigned long 26201: round_error() noexcept { return 0; } 26201: 26201: static constexpr int min_exponent = 0; 26201: static constexpr int min_exponent10 = 0; 26201: static constexpr int max_exponent = 0; 26201: static constexpr int max_exponent10 = 0; 26201: 26201: static constexpr bool has_infinity = false; 26201: static constexpr bool has_quiet_NaN = false; 26201: static constexpr bool has_signaling_NaN = false; 26201: static constexpr float_denorm_style has_denorm 26201: = denorm_absent; 26201: static constexpr bool has_denorm_loss = false; 26201: 26201: static constexpr unsigned long 26201: infinity() noexcept 26201: { return static_cast(0); } 26201: 26201: static constexpr unsigned long 26201: quiet_NaN() noexcept 26201: { return static_cast(0); } 26201: 26201: static constexpr unsigned long 26201: signaling_NaN() noexcept 26201: { return static_cast(0); } 26201: 26201: static constexpr unsigned long 26201: denorm_min() noexcept 26201: { return static_cast(0); } 26201: 26201: static constexpr bool is_iec559 = false; 26201: static constexpr bool is_bounded = true; 26201: static constexpr bool is_modulo = true; 26201: 26201: static constexpr bool traps = true; 26201: static constexpr bool tinyness_before = false; 26201: static constexpr float_round_style round_style 26201: = round_toward_zero; 26201: }; 26201: 26201: 26201: template<> 26201: struct numeric_limits 26201: { 26201: static constexpr bool is_specialized = true; 26201: 26201: static constexpr long long 26201: min() noexcept { return -0x7fffffffffffffffLL - 1; } 26201: 26201: static constexpr long long 26201: max() noexcept { return 0x7fffffffffffffffLL; } 26201: 26201: 26201: static constexpr long long 26201: lowest() noexcept { return min(); } 26201: 26201: 26201: static constexpr int digits 26201: = (sizeof(long long) * 8 - ((long long)(-1) < 0)); 26201: static constexpr int digits10 26201: = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643L / 2136); 26201: 26201: static constexpr int max_digits10 = 0; 26201: 26201: static constexpr bool is_signed = true; 26201: static constexpr bool is_integer = true; 26201: static constexpr bool is_exact = true; 26201: static constexpr int radix = 2; 26201: 26201: static constexpr long long 26201: epsilon() noexcept { return 0; } 26201: 26201: static constexpr long long 26201: round_error() noexcept { return 0; } 26201: 26201: static constexpr int min_exponent = 0; 26201: static constexpr int min_exponent10 = 0; 26201: static constexpr int max_exponent = 0; 26201: static constexpr int max_exponent10 = 0; 26201: 26201: static constexpr bool has_infinity = false; 26201: static constexpr bool has_quiet_NaN = false; 26201: static constexpr bool has_signaling_NaN = false; 26201: static constexpr float_denorm_style has_denorm 26201: = denorm_absent; 26201: static constexpr bool has_denorm_loss = false; 26201: 26201: static constexpr long long 26201: infinity() noexcept { return static_cast(0); } 26201: 26201: static constexpr long long 26201: quiet_NaN() noexcept { return static_cast(0); } 26201: 26201: static constexpr long long 26201: signaling_NaN() noexcept 26201: { return static_cast(0); } 26201: 26201: static constexpr long long 26201: denorm_min() noexcept { return static_cast(0); } 26201: 26201: static constexpr bool is_iec559 = false; 26201: static constexpr bool is_bounded = true; 26201: static constexpr bool is_modulo = false; 26201: 26201: static constexpr bool traps = true; 26201: static constexpr bool tinyness_before = false; 26201: static constexpr float_round_style round_style 26201: = round_toward_zero; 26201: }; 26201: 26201: 26201: template<> 26201: struct numeric_limits 26201: { 26201: static constexpr bool is_specialized = true; 26201: 26201: static constexpr unsigned long long 26201: min() noexcept { return 0; } 26201: 26201: static constexpr unsigned long long 26201: max() noexcept { return 0x7fffffffffffffffLL * 2ULL + 1; } 26201: 26201: 26201: static constexpr unsigned long long 26201: lowest() noexcept { return min(); } 26201: 26201: 26201: static constexpr int digits 26201: = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)); 26201: static constexpr int digits10 26201: = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643L / 2136); 26201: 26201: static constexpr int max_digits10 = 0; 26201: 26201: static constexpr bool is_signed = false; 26201: static constexpr bool is_integer = true; 26201: static constexpr bool is_exact = true; 26201: static constexpr int radix = 2; 26201: 26201: static constexpr unsigned long long 26201: epsilon() noexcept { return 0; } 26201: 26201: static constexpr unsigned long long 26201: round_error() noexcept { return 0; } 26201: 26201: static constexpr int min_exponent = 0; 26201: static constexpr int min_exponent10 = 0; 26201: static constexpr int max_exponent = 0; 26201: static constexpr int max_exponent10 = 0; 26201: 26201: static constexpr bool has_infinity = false; 26201: static constexpr bool has_quiet_NaN = false; 26201: static constexpr bool has_signaling_NaN = false; 26201: static constexpr float_denorm_style has_denorm 26201: = denorm_absent; 26201: static constexpr bool has_denorm_loss = false; 26201: 26201: static constexpr unsigned long long 26201: infinity() noexcept 26201: { return static_cast(0); } 26201: 26201: static constexpr unsigned long long 26201: quiet_NaN() noexcept 26201: { return static_cast(0); } 26201: 26201: static constexpr unsigned long long 26201: signaling_NaN() noexcept 26201: { return static_cast(0); } 26201: 26201: static constexpr unsigned long long 26201: denorm_min() noexcept 26201: { return static_cast(0); } 26201: 26201: static constexpr bool is_iec559 = false; 26201: static constexpr bool is_bounded = true; 26201: static constexpr bool is_modulo = true; 26201: 26201: static constexpr bool traps = true; 26201: static constexpr bool tinyness_before = false; 26201: static constexpr float_round_style round_style 26201: = round_toward_zero; 26201: }; 26201: 26201: #define __INT_N(TYPE,BITSIZE,EXT,UEXT) template<> struct numeric_limits { static _GLIBCXX_USE_CONSTEXPR bool is_specialized = true; static _GLIBCXX_CONSTEXPR TYPE min() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_min_b (TYPE, BITSIZE); } static _GLIBCXX_CONSTEXPR TYPE max() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_max_b (TYPE, BITSIZE); } static _GLIBCXX_USE_CONSTEXPR int digits = BITSIZE - 1; static _GLIBCXX_USE_CONSTEXPR int digits10 = (BITSIZE - 1) * 643L / 2136; static _GLIBCXX_USE_CONSTEXPR bool is_signed = true; static _GLIBCXX_USE_CONSTEXPR bool is_integer = true; static _GLIBCXX_USE_CONSTEXPR bool is_exact = true; static _GLIBCXX_USE_CONSTEXPR int radix = 2; static _GLIBCXX_CONSTEXPR TYPE epsilon() _GLIBCXX_USE_NOEXCEPT { return 0; } static _GLIBCXX_CONSTEXPR TYPE round_error() _GLIBCXX_USE_NOEXCEPT { return 0; } EXT static _GLIBCXX_USE_CONSTEXPR int min_exponent = 0; static _GLIBCXX_USE_CONSTEXPR int min_exponent10 = 0; static _GLIBCXX_USE_CONSTEXPR int max_exponent = 0; static _GLIBCXX_USE_CONSTEXPR int max_exponent10 = 0; static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = denorm_absent; static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; static _GLIBCXX_CONSTEXPR TYPE infinity() _GLIBCXX_USE_NOEXCEPT { return static_cast(0); } static _GLIBCXX_CONSTEXPR TYPE quiet_NaN() _GLIBCXX_USE_NOEXCEPT { return static_cast(0); } static _GLIBCXX_CONSTEXPR TYPE signaling_NaN() _GLIBCXX_USE_NOEXCEPT { return static_cast(0); } static _GLIBCXX_CONSTEXPR TYPE denorm_min() _GLIBCXX_USE_NOEXCEPT { return static_cast(0); } static _GLIBCXX_USE_CONSTEXPR bool is_iec559 = false; static _GLIBCXX_USE_CONSTEXPR bool is_bounded = true; static _GLIBCXX_USE_CONSTEXPR bool is_modulo = false; static _GLIBCXX_USE_CONSTEXPR bool traps = __glibcxx_integral_traps; static _GLIBCXX_USE_CONSTEXPR bool tinyness_before = false; static _GLIBCXX_USE_CONSTEXPR float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static _GLIBCXX_USE_CONSTEXPR bool is_specialized = true; static _GLIBCXX_CONSTEXPR unsigned TYPE min() _GLIBCXX_USE_NOEXCEPT { return 0; } static _GLIBCXX_CONSTEXPR unsigned TYPE max() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_max_b (unsigned TYPE, BITSIZE); } UEXT static _GLIBCXX_USE_CONSTEXPR int digits = BITSIZE; static _GLIBCXX_USE_CONSTEXPR int digits10 = BITSIZE * 643L / 2136; static _GLIBCXX_USE_CONSTEXPR bool is_signed = false; static _GLIBCXX_USE_CONSTEXPR bool is_integer = true; static _GLIBCXX_USE_CONSTEXPR bool is_exact = true; static _GLIBCXX_USE_CONSTEXPR int radix = 2; static _GLIBCXX_CONSTEXPR unsigned TYPE epsilon() _GLIBCXX_USE_NOEXCEPT { return 0; } static _GLIBCXX_CONSTEXPR unsigned TYPE round_error() _GLIBCXX_USE_NOEXCEPT { return 0; } static _GLIBCXX_USE_CONSTEXPR int min_exponent = 0; static _GLIBCXX_USE_CONSTEXPR int min_exponent10 = 0; static _GLIBCXX_USE_CONSTEXPR int max_exponent = 0; static _GLIBCXX_USE_CONSTEXPR int max_exponent10 = 0; static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = denorm_absent; static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; static _GLIBCXX_CONSTEXPR unsigned TYPE infinity() _GLIBCXX_USE_NOEXCEPT { return static_cast(0); } static _GLIBCXX_CONSTEXPR unsigned TYPE quiet_NaN() _GLIBCXX_USE_NOEXCEPT { return static_cast(0); } static _GLIBCXX_CONSTEXPR unsigned TYPE signaling_NaN() _GLIBCXX_USE_NOEXCEPT { return static_cast(0); } static _GLIBCXX_CONSTEXPR unsigned TYPE denorm_min() _GLIBCXX_USE_NOEXCEPT { return static_cast(0); } static _GLIBCXX_USE_CONSTEXPR bool is_iec559 = false; static _GLIBCXX_USE_CONSTEXPR bool is_bounded = true; static _GLIBCXX_USE_CONSTEXPR bool is_modulo = true; static _GLIBCXX_USE_CONSTEXPR bool traps = __glibcxx_integral_traps; static _GLIBCXX_USE_CONSTEXPR bool tinyness_before = false; static _GLIBCXX_USE_CONSTEXPR float_round_style round_style = round_toward_zero; }; 26201: # 1618 "/usr/x86_64-linux-gnu/include/c++/10/limits" 3 26201: #define __INT_N_201103(TYPE) static constexpr TYPE lowest() noexcept { return min(); } static constexpr int max_digits10 = 0; 26201: 26201: 26201: 26201: 26201: #define __INT_N_U201103(TYPE) static constexpr unsigned TYPE lowest() noexcept { return min(); } static constexpr int max_digits10 = 0; 26201: # 1652 "/usr/x86_64-linux-gnu/include/c++/10/limits" 3 26201: template<> struct numeric_limits<__int128> { static constexpr bool is_specialized = true; static constexpr __int128 min() noexcept { return (((__int128)(-1) < 0) ? -(((__int128)(-1) < 0) ? (((((__int128)1 << ((128 - ((__int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(__int128)0) - 1 : (__int128)0); } static constexpr __int128 max() noexcept { return (((__int128)(-1) < 0) ? (((((__int128)1 << ((128 - ((__int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(__int128)0); } static constexpr int digits = 128 - 1; static constexpr int digits10 = (128 - 1) * 643L / 2136; static constexpr bool is_signed = true; static constexpr bool is_integer = true; static constexpr bool is_exact = true; static constexpr int radix = 2; static constexpr __int128 epsilon() noexcept { return 0; } static constexpr __int128 round_error() noexcept { return 0; } static constexpr __int128 lowest() noexcept { return min(); } static constexpr int max_digits10 = 0; static constexpr int min_exponent = 0; static constexpr int min_exponent10 = 0; static constexpr int max_exponent = 0; static constexpr int max_exponent10 = 0; static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; static constexpr float_denorm_style has_denorm = denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr __int128 infinity() noexcept { return static_cast<__int128>(0); } static constexpr __int128 quiet_NaN() noexcept { return static_cast<__int128>(0); } static constexpr __int128 signaling_NaN() noexcept { return static_cast<__int128>(0); } static constexpr __int128 denorm_min() noexcept { return static_cast<__int128>(0); } static constexpr bool is_iec559 = false; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = true; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static constexpr bool is_specialized = true; static constexpr unsigned __int128 min() noexcept { return 0; } static constexpr unsigned __int128 max() noexcept { return (((unsigned __int128)(-1) < 0) ? (((((unsigned __int128)1 << ((128 - ((unsigned __int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(unsigned __int128)0); } static constexpr unsigned __int128 lowest() noexcept { return min(); } static constexpr int max_digits10 = 0; static constexpr int digits = 128; static constexpr int digits10 = 128 * 643L / 2136; static constexpr bool is_signed = false; static constexpr bool is_integer = true; static constexpr bool is_exact = true; static constexpr int radix = 2; static constexpr unsigned __int128 epsilon() noexcept { return 0; } static constexpr unsigned __int128 round_error() noexcept { return 0; } static constexpr int min_exponent = 0; static constexpr int min_exponent10 = 0; static constexpr int max_exponent = 0; static constexpr int max_exponent10 = 0; static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; static constexpr float_denorm_style has_denorm = denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr unsigned __int128 infinity() noexcept { return static_cast(0); } static constexpr unsigned __int128 quiet_NaN() noexcept { return static_cast(0); } static constexpr unsigned __int128 signaling_NaN() noexcept { return static_cast(0); } static constexpr unsigned __int128 denorm_min() noexcept { return static_cast(0); } static constexpr bool is_iec559 = false; static constexpr bool is_bounded = true; static constexpr bool is_modulo = true; static constexpr bool traps = true; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_toward_zero; }; 26201: 26201: 26201: 26201: 26201: #undef __INT_N 26201: #undef __INT_N_201103 26201: #undef __INT_N_U201103 26201: 26201: 26201: 26201: template<> 26201: struct numeric_limits 26201: { 26201: static constexpr bool is_specialized = true; 26201: 26201: static constexpr float 26201: min() noexcept { return 1.17549435082228750796873653722224568e-38F; } 26201: 26201: static constexpr float 26201: max() noexcept { return 3.40282346638528859811704183484516925e+38F; } 26201: 26201: 26201: static constexpr float 26201: lowest() noexcept { return -3.40282346638528859811704183484516925e+38F; } 26201: 26201: 26201: static constexpr int digits = 24; 26201: static constexpr int digits10 = 6; 26201: 26201: static constexpr int max_digits10 26201: = (2 + (24) * 643L / 2136); 26201: 26201: static constexpr bool is_signed = true; 26201: static constexpr bool is_integer = false; 26201: static constexpr bool is_exact = false; 26201: static constexpr int radix = 2; 26201: 26201: static constexpr float 26201: epsilon() noexcept { return 1.19209289550781250000000000000000000e-7F; } 26201: 26201: static constexpr float 26201: round_error() noexcept { return 0.5F; } 26201: 26201: static constexpr int min_exponent = (-125); 26201: static constexpr int min_exponent10 = (-37); 26201: static constexpr int max_exponent = 128; 26201: static constexpr int max_exponent10 = 38; 26201: 26201: static constexpr bool has_infinity = 1; 26201: static constexpr bool has_quiet_NaN = 1; 26201: static constexpr bool has_signaling_NaN = has_quiet_NaN; 26201: static constexpr float_denorm_style has_denorm 26201: = bool(1) ? denorm_present : denorm_absent; 26201: static constexpr bool has_denorm_loss 26201: = false; 26201: 26201: static constexpr float 26201: infinity() noexcept { return __builtin_huge_valf(); } 26201: 26201: static constexpr float 26201: quiet_NaN() noexcept { return __builtin_nanf(""); } 26201: 26201: static constexpr float 26201: signaling_NaN() noexcept { return __builtin_nansf(""); } 26201: 26201: static constexpr float 26201: denorm_min() noexcept { return 1.40129846432481707092372958328991613e-45F; } 26201: 26201: static constexpr bool is_iec559 26201: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 26201: static constexpr bool is_bounded = true; 26201: static constexpr bool is_modulo = false; 26201: 26201: static constexpr bool traps = false; 26201: static constexpr bool tinyness_before 26201: = false; 26201: static constexpr float_round_style round_style 26201: = round_to_nearest; 26201: }; 26201: 26201: #undef __glibcxx_float_has_denorm_loss 26201: #undef __glibcxx_float_traps 26201: #undef __glibcxx_float_tinyness_before 26201: 26201: 26201: template<> 26201: struct numeric_limits 26201: { 26201: static constexpr bool is_specialized = true; 26201: 26201: static constexpr double 26201: min() noexcept { return double(2.22507385850720138309023271733240406e-308L); } 26201: 26201: static constexpr double 26201: max() noexcept { return double(1.79769313486231570814527423731704357e+308L); } 26201: 26201: 26201: static constexpr double 26201: lowest() noexcept { return -double(1.79769313486231570814527423731704357e+308L); } 26201: 26201: 26201: static constexpr int digits = 53; 26201: static constexpr int digits10 = 15; 26201: 26201: static constexpr int max_digits10 26201: = (2 + (53) * 643L / 2136); 26201: 26201: static constexpr bool is_signed = true; 26201: static constexpr bool is_integer = false; 26201: static constexpr bool is_exact = false; 26201: static constexpr int radix = 2; 26201: 26201: static constexpr double 26201: epsilon() noexcept { return double(2.22044604925031308084726333618164062e-16L); } 26201: 26201: static constexpr double 26201: round_error() noexcept { return 0.5; } 26201: 26201: static constexpr int min_exponent = (-1021); 26201: static constexpr int min_exponent10 = (-307); 26201: static constexpr int max_exponent = 1024; 26201: static constexpr int max_exponent10 = 308; 26201: 26201: static constexpr bool has_infinity = 1; 26201: static constexpr bool has_quiet_NaN = 1; 26201: static constexpr bool has_signaling_NaN = has_quiet_NaN; 26201: static constexpr float_denorm_style has_denorm 26201: = bool(1) ? denorm_present : denorm_absent; 26201: static constexpr bool has_denorm_loss 26201: = false; 26201: 26201: static constexpr double 26201: infinity() noexcept { return __builtin_huge_val(); } 26201: 26201: static constexpr double 26201: quiet_NaN() noexcept { return __builtin_nan(""); } 26201: 26201: static constexpr double 26201: signaling_NaN() noexcept { return __builtin_nans(""); } 26201: 26201: static constexpr double 26201: denorm_min() noexcept { return double(4.94065645841246544176568792868221372e-324L); } 26201: 26201: static constexpr bool is_iec559 26201: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 26201: static constexpr bool is_bounded = true; 26201: static constexpr bool is_modulo = false; 26201: 26201: static constexpr bool traps = false; 26201: static constexpr bool tinyness_before 26201: = false; 26201: static constexpr float_round_style round_style 26201: = round_to_nearest; 26201: }; 26201: 26201: #undef __glibcxx_double_has_denorm_loss 26201: #undef __glibcxx_double_traps 26201: #undef __glibcxx_double_tinyness_before 26201: 26201: 26201: template<> 26201: struct numeric_limits 26201: { 26201: static constexpr bool is_specialized = true; 26201: 26201: static constexpr long double 26201: min() noexcept { return 3.36210314311209350626267781732175260e-4932L; } 26201: 26201: static constexpr long double 26201: max() noexcept { return 1.18973149535723176502126385303097021e+4932L; } 26201: 26201: 26201: static constexpr long double 26201: lowest() noexcept { return -1.18973149535723176502126385303097021e+4932L; } 26201: 26201: 26201: static constexpr int digits = 64; 26201: static constexpr int digits10 = 18; 26201: 26201: static constexpr int max_digits10 26201: = (2 + (64) * 643L / 2136); 26201: 26201: static constexpr bool is_signed = true; 26201: static constexpr bool is_integer = false; 26201: static constexpr bool is_exact = false; 26201: static constexpr int radix = 2; 26201: 26201: static constexpr long double 26201: epsilon() noexcept { return 1.08420217248550443400745280086994171e-19L; } 26201: 26201: static constexpr long double 26201: round_error() noexcept { return 0.5L; } 26201: 26201: static constexpr int min_exponent = (-16381); 26201: static constexpr int min_exponent10 = (-4931); 26201: static constexpr int max_exponent = 16384; 26201: static constexpr int max_exponent10 = 4932; 26201: 26201: static constexpr bool has_infinity = 1; 26201: static constexpr bool has_quiet_NaN = 1; 26201: static constexpr bool has_signaling_NaN = has_quiet_NaN; 26201: static constexpr float_denorm_style has_denorm 26201: = bool(1) ? denorm_present : denorm_absent; 26201: static constexpr bool has_denorm_loss 26201: = false; 26201: 26201: static constexpr long double 26201: infinity() noexcept { return __builtin_huge_vall(); } 26201: 26201: static constexpr long double 26201: quiet_NaN() noexcept { return __builtin_nanl(""); } 26201: 26201: static constexpr long double 26201: signaling_NaN() noexcept { return __builtin_nansl(""); } 26201: 26201: static constexpr long double 26201: denorm_min() noexcept { return 3.64519953188247460252840593361941982e-4951L; } 26201: 26201: static constexpr bool is_iec559 26201: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 26201: static constexpr bool is_bounded = true; 26201: static constexpr bool is_modulo = false; 26201: 26201: static constexpr bool traps = false; 26201: static constexpr bool tinyness_before = 26201: false; 26201: static constexpr float_round_style round_style = 26201: round_to_nearest; 26201: }; 26201: 26201: #undef __glibcxx_long_double_has_denorm_loss 26201: #undef __glibcxx_long_double_traps 26201: #undef __glibcxx_long_double_tinyness_before 26201: 26201: 26201: } 26201: 26201: #undef __glibcxx_signed 26201: #undef __glibcxx_min 26201: #undef __glibcxx_max 26201: #undef __glibcxx_digits 26201: #undef __glibcxx_digits10 26201: #undef __glibcxx_max_digits10 26201: # 36 "/usr/x86_64-linux-gnu/include/c++/10/bits/uniform_int_dist.h" 2 3 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 57 "/usr/x86_64-linux-gnu/include/c++/10/bits/uniform_int_dist.h" 3 26201: namespace __detail 26201: { 26201: 26201: template 26201: inline bool 26201: _Power_of_2(_Tp __x) 26201: { 26201: return ((__x - 1) & __x) == 0; 26201: } 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: class uniform_int_distribution 26201: { 26201: static_assert(std::is_integral<_IntType>::value, 26201: "template argument must be an integral type"); 26201: 26201: public: 26201: 26201: typedef _IntType result_type; 26201: 26201: struct param_type 26201: { 26201: typedef uniform_int_distribution<_IntType> distribution_type; 26201: 26201: param_type() : param_type(0) { } 26201: 26201: explicit 26201: param_type(_IntType __a, 26201: _IntType __b = numeric_limits<_IntType>::max()) 26201: : _M_a(__a), _M_b(__b) 26201: { 26201: ; 26201: } 26201: 26201: result_type 26201: a() const 26201: { return _M_a; } 26201: 26201: result_type 26201: b() const 26201: { return _M_b; } 26201: 26201: friend bool 26201: operator==(const param_type& __p1, const param_type& __p2) 26201: { return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; } 26201: 26201: friend bool 26201: operator!=(const param_type& __p1, const param_type& __p2) 26201: { return !(__p1 == __p2); } 26201: 26201: private: 26201: _IntType _M_a; 26201: _IntType _M_b; 26201: }; 26201: 26201: public: 26201: 26201: 26201: 26201: uniform_int_distribution() : uniform_int_distribution(0) { } 26201: 26201: 26201: 26201: 26201: explicit 26201: uniform_int_distribution(_IntType __a, 26201: _IntType __b = numeric_limits<_IntType>::max()) 26201: : _M_param(__a, __b) 26201: { } 26201: 26201: explicit 26201: uniform_int_distribution(const param_type& __p) 26201: : _M_param(__p) 26201: { } 26201: 26201: 26201: 26201: 26201: 26201: 26201: void 26201: reset() { } 26201: 26201: result_type 26201: a() const 26201: { return _M_param.a(); } 26201: 26201: result_type 26201: b() const 26201: { return _M_param.b(); } 26201: 26201: 26201: 26201: 26201: param_type 26201: param() const 26201: { return _M_param; } 26201: 26201: 26201: 26201: 26201: 26201: void 26201: param(const param_type& __param) 26201: { _M_param = __param; } 26201: 26201: 26201: 26201: 26201: result_type 26201: min() const 26201: { return this->a(); } 26201: 26201: 26201: 26201: 26201: result_type 26201: max() const 26201: { return this->b(); } 26201: 26201: 26201: 26201: 26201: template 26201: result_type 26201: operator()(_UniformRandomNumberGenerator& __urng) 26201: { return this->operator()(__urng, _M_param); } 26201: 26201: template 26201: result_type 26201: operator()(_UniformRandomNumberGenerator& __urng, 26201: const param_type& __p); 26201: 26201: template 26201: void 26201: __generate(_ForwardIterator __f, _ForwardIterator __t, 26201: _UniformRandomNumberGenerator& __urng) 26201: { this->__generate(__f, __t, __urng, _M_param); } 26201: 26201: template 26201: void 26201: __generate(_ForwardIterator __f, _ForwardIterator __t, 26201: _UniformRandomNumberGenerator& __urng, 26201: const param_type& __p) 26201: { this->__generate_impl(__f, __t, __urng, __p); } 26201: 26201: template 26201: void 26201: __generate(result_type* __f, result_type* __t, 26201: _UniformRandomNumberGenerator& __urng, 26201: const param_type& __p) 26201: { this->__generate_impl(__f, __t, __urng, __p); } 26201: 26201: 26201: 26201: 26201: 26201: friend bool 26201: operator==(const uniform_int_distribution& __d1, 26201: const uniform_int_distribution& __d2) 26201: { return __d1._M_param == __d2._M_param; } 26201: 26201: private: 26201: template 26201: void 26201: __generate_impl(_ForwardIterator __f, _ForwardIterator __t, 26201: _UniformRandomNumberGenerator& __urng, 26201: const param_type& __p); 26201: 26201: param_type _M_param; 26201: }; 26201: 26201: template 26201: template 26201: typename uniform_int_distribution<_IntType>::result_type 26201: uniform_int_distribution<_IntType>:: 26201: operator()(_UniformRandomNumberGenerator& __urng, 26201: const param_type& __param) 26201: { 26201: typedef typename _UniformRandomNumberGenerator::result_type 26201: _Gresult_type; 26201: typedef typename std::make_unsigned::type __utype; 26201: typedef typename std::common_type<_Gresult_type, __utype>::type 26201: __uctype; 26201: 26201: const __uctype __urngmin = __urng.min(); 26201: const __uctype __urngmax = __urng.max(); 26201: const __uctype __urngrange = __urngmax - __urngmin; 26201: const __uctype __urange 26201: = __uctype(__param.b()) - __uctype(__param.a()); 26201: 26201: __uctype __ret; 26201: 26201: if (__urngrange > __urange) 26201: { 26201: 26201: const __uctype __uerange = __urange + 1; 26201: const __uctype __scaling = __urngrange / __uerange; 26201: const __uctype __past = __uerange * __scaling; 26201: do 26201: __ret = __uctype(__urng()) - __urngmin; 26201: while (__ret >= __past); 26201: __ret /= __scaling; 26201: } 26201: else if (__urngrange < __urange) 26201: { 26201: # 287 "/usr/x86_64-linux-gnu/include/c++/10/bits/uniform_int_dist.h" 3 26201: __uctype __tmp; 26201: do 26201: { 26201: const __uctype __uerngrange = __urngrange + 1; 26201: __tmp = (__uerngrange * operator() 26201: (__urng, param_type(0, __urange / __uerngrange))); 26201: __ret = __tmp + (__uctype(__urng()) - __urngmin); 26201: } 26201: while (__ret > __urange || __ret < __tmp); 26201: } 26201: else 26201: __ret = __uctype(__urng()) - __urngmin; 26201: 26201: return __ret + __param.a(); 26201: } 26201: 26201: 26201: template 26201: template 26201: void 26201: uniform_int_distribution<_IntType>:: 26201: __generate_impl(_ForwardIterator __f, _ForwardIterator __t, 26201: _UniformRandomNumberGenerator& __urng, 26201: const param_type& __param) 26201: { 26201: 26201: typedef typename _UniformRandomNumberGenerator::result_type 26201: _Gresult_type; 26201: typedef typename std::make_unsigned::type __utype; 26201: typedef typename std::common_type<_Gresult_type, __utype>::type 26201: __uctype; 26201: 26201: const __uctype __urngmin = __urng.min(); 26201: const __uctype __urngmax = __urng.max(); 26201: const __uctype __urngrange = __urngmax - __urngmin; 26201: const __uctype __urange 26201: = __uctype(__param.b()) - __uctype(__param.a()); 26201: 26201: __uctype __ret; 26201: 26201: if (__urngrange > __urange) 26201: { 26201: if (__detail::_Power_of_2(__urngrange + 1) 26201: && __detail::_Power_of_2(__urange + 1)) 26201: { 26201: while (__f != __t) 26201: { 26201: __ret = __uctype(__urng()) - __urngmin; 26201: *__f++ = (__ret & __urange) + __param.a(); 26201: } 26201: } 26201: else 26201: { 26201: 26201: const __uctype __uerange = __urange + 1; 26201: const __uctype __scaling = __urngrange / __uerange; 26201: const __uctype __past = __uerange * __scaling; 26201: while (__f != __t) 26201: { 26201: do 26201: __ret = __uctype(__urng()) - __urngmin; 26201: while (__ret >= __past); 26201: *__f++ = __ret / __scaling + __param.a(); 26201: } 26201: } 26201: } 26201: else if (__urngrange < __urange) 26201: { 26201: # 371 "/usr/x86_64-linux-gnu/include/c++/10/bits/uniform_int_dist.h" 3 26201: __uctype __tmp; 26201: while (__f != __t) 26201: { 26201: do 26201: { 26201: const __uctype __uerngrange = __urngrange + 1; 26201: __tmp = (__uerngrange * operator() 26201: (__urng, param_type(0, __urange / __uerngrange))); 26201: __ret = __tmp + (__uctype(__urng()) - __urngmin); 26201: } 26201: while (__ret > __urange || __ret < __tmp); 26201: *__f++ = __ret; 26201: } 26201: } 26201: else 26201: while (__f != __t) 26201: *__f++ = __uctype(__urng()) - __urngmin + __param.a(); 26201: } 26201: 26201: 26201: 26201: 26201: } 26201: # 67 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 2 3 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: template 26201: 26201: void 26201: __move_median_to_first(_Iterator __result,_Iterator __a, _Iterator __b, 26201: _Iterator __c, _Compare __comp) 26201: { 26201: if (__comp(__a, __b)) 26201: { 26201: if (__comp(__b, __c)) 26201: std::iter_swap(__result, __b); 26201: else if (__comp(__a, __c)) 26201: std::iter_swap(__result, __c); 26201: else 26201: std::iter_swap(__result, __a); 26201: } 26201: else if (__comp(__a, __c)) 26201: std::iter_swap(__result, __a); 26201: else if (__comp(__b, __c)) 26201: std::iter_swap(__result, __c); 26201: else 26201: std::iter_swap(__result, __b); 26201: } 26201: 26201: 26201: template 26201: 26201: inline _InputIterator 26201: __find_if_not(_InputIterator __first, _InputIterator __last, 26201: _Predicate __pred) 26201: { 26201: return std::__find_if(__first, __last, 26201: __gnu_cxx::__ops::__negate(__pred), 26201: std::__iterator_category(__first)); 26201: } 26201: 26201: 26201: 26201: 26201: template 26201: 26201: _InputIterator 26201: __find_if_not_n(_InputIterator __first, _Distance& __len, _Predicate __pred) 26201: { 26201: for (; __len; --__len, (void) ++__first) 26201: if (!__pred(__first)) 26201: break; 26201: return __first; 26201: } 26201: # 138 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: _ForwardIterator1 26201: __search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 26201: _BinaryPredicate __predicate) 26201: { 26201: 26201: if (__first1 == __last1 || __first2 == __last2) 26201: return __first1; 26201: 26201: 26201: _ForwardIterator2 __p1(__first2); 26201: if (++__p1 == __last2) 26201: return std::__find_if(__first1, __last1, 26201: __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); 26201: 26201: 26201: _ForwardIterator1 __current = __first1; 26201: 26201: for (;;) 26201: { 26201: __first1 = 26201: std::__find_if(__first1, __last1, 26201: __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); 26201: 26201: if (__first1 == __last1) 26201: return __last1; 26201: 26201: _ForwardIterator2 __p = __p1; 26201: __current = __first1; 26201: if (++__current == __last1) 26201: return __last1; 26201: 26201: while (__predicate(__current, __p)) 26201: { 26201: if (++__p == __last2) 26201: return __first1; 26201: if (++__current == __last1) 26201: return __last1; 26201: } 26201: ++__first1; 26201: } 26201: return __first1; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: 26201: _ForwardIterator 26201: __search_n_aux(_ForwardIterator __first, _ForwardIterator __last, 26201: _Integer __count, _UnaryPredicate __unary_pred, 26201: std::forward_iterator_tag) 26201: { 26201: __first = std::__find_if(__first, __last, __unary_pred); 26201: while (__first != __last) 26201: { 26201: typename iterator_traits<_ForwardIterator>::difference_type 26201: __n = __count; 26201: _ForwardIterator __i = __first; 26201: ++__i; 26201: while (__i != __last && __n != 1 && __unary_pred(__i)) 26201: { 26201: ++__i; 26201: --__n; 26201: } 26201: if (__n == 1) 26201: return __first; 26201: if (__i == __last) 26201: return __last; 26201: __first = std::__find_if(++__i, __last, __unary_pred); 26201: } 26201: return __last; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: 26201: _RandomAccessIter 26201: __search_n_aux(_RandomAccessIter __first, _RandomAccessIter __last, 26201: _Integer __count, _UnaryPredicate __unary_pred, 26201: std::random_access_iterator_tag) 26201: { 26201: typedef typename std::iterator_traits<_RandomAccessIter>::difference_type 26201: _DistanceType; 26201: 26201: _DistanceType __tailSize = __last - __first; 26201: _DistanceType __remainder = __count; 26201: 26201: while (__remainder <= __tailSize) 26201: { 26201: __first += __remainder; 26201: __tailSize -= __remainder; 26201: 26201: 26201: _RandomAccessIter __backTrack = __first; 26201: while (__unary_pred(--__backTrack)) 26201: { 26201: if (--__remainder == 0) 26201: return (__first - __count); 26201: } 26201: __remainder = __count + 1 - (__first - __backTrack); 26201: } 26201: return __last; 26201: } 26201: 26201: template 26201: 26201: _ForwardIterator 26201: __search_n(_ForwardIterator __first, _ForwardIterator __last, 26201: _Integer __count, 26201: _UnaryPredicate __unary_pred) 26201: { 26201: if (__count <= 0) 26201: return __first; 26201: 26201: if (__count == 1) 26201: return std::__find_if(__first, __last, __unary_pred); 26201: 26201: return std::__search_n_aux(__first, __last, __count, __unary_pred, 26201: std::__iterator_category(__first)); 26201: } 26201: 26201: 26201: template 26201: 26201: _ForwardIterator1 26201: __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 26201: forward_iterator_tag, forward_iterator_tag, 26201: _BinaryPredicate __comp) 26201: { 26201: if (__first2 == __last2) 26201: return __last1; 26201: 26201: _ForwardIterator1 __result = __last1; 26201: while (1) 26201: { 26201: _ForwardIterator1 __new_result 26201: = std::__search(__first1, __last1, __first2, __last2, __comp); 26201: if (__new_result == __last1) 26201: return __result; 26201: else 26201: { 26201: __result = __new_result; 26201: __first1 = __new_result; 26201: ++__first1; 26201: } 26201: } 26201: } 26201: 26201: 26201: template 26201: 26201: _BidirectionalIterator1 26201: __find_end(_BidirectionalIterator1 __first1, 26201: _BidirectionalIterator1 __last1, 26201: _BidirectionalIterator2 __first2, 26201: _BidirectionalIterator2 __last2, 26201: bidirectional_iterator_tag, bidirectional_iterator_tag, 26201: _BinaryPredicate __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1; 26201: typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2; 26201: 26201: _RevIterator1 __rlast1(__first1); 26201: _RevIterator2 __rlast2(__first2); 26201: _RevIterator1 __rresult = std::__search(_RevIterator1(__last1), __rlast1, 26201: _RevIterator2(__last2), __rlast2, 26201: __comp); 26201: 26201: if (__rresult == __rlast1) 26201: return __last1; 26201: else 26201: { 26201: _BidirectionalIterator1 __result = __rresult.base(); 26201: std::advance(__result, -std::distance(__first2, __last2)); 26201: return __result; 26201: } 26201: } 26201: # 364 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _ForwardIterator1 26201: find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2, _ForwardIterator2 __last2) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__find_end(__first1, __last1, __first2, __last2, 26201: std::__iterator_category(__first1), 26201: std::__iterator_category(__first2), 26201: __gnu_cxx::__ops::__iter_equal_to_iter()); 26201: } 26201: # 413 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _ForwardIterator1 26201: find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 26201: _BinaryPredicate __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__find_end(__first1, __last1, __first2, __last2, 26201: std::__iterator_category(__first1), 26201: std::__iterator_category(__first2), 26201: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 26201: } 26201: # 449 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline bool 26201: all_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 26201: { return __last == std::find_if_not(__first, __last, __pred); } 26201: # 467 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline bool 26201: none_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 26201: { return __last == std::find_if(__first, __last, __pred); } 26201: # 486 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline bool 26201: any_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 26201: { return !std::none_of(__first, __last, __pred); } 26201: # 502 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _InputIterator 26201: find_if_not(_InputIterator __first, _InputIterator __last, 26201: _Predicate __pred) 26201: { 26201: 26201: 26201: 26201: 26201: ; 26201: return std::__find_if_not(__first, __last, 26201: __gnu_cxx::__ops::__pred_iter(__pred)); 26201: } 26201: # 527 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline bool 26201: is_partitioned(_InputIterator __first, _InputIterator __last, 26201: _Predicate __pred) 26201: { 26201: __first = std::find_if_not(__first, __last, __pred); 26201: if (__first == __last) 26201: return true; 26201: ++__first; 26201: return std::none_of(__first, __last, __pred); 26201: } 26201: # 549 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: _ForwardIterator 26201: partition_point(_ForwardIterator __first, _ForwardIterator __last, 26201: _Predicate __pred) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: typedef typename iterator_traits<_ForwardIterator>::difference_type 26201: _DistanceType; 26201: 26201: _DistanceType __len = std::distance(__first, __last); 26201: 26201: while (__len > 0) 26201: { 26201: _DistanceType __half = __len >> 1; 26201: _ForwardIterator __middle = __first; 26201: std::advance(__middle, __half); 26201: if (__pred(*__middle)) 26201: { 26201: __first = __middle; 26201: ++__first; 26201: __len = __len - __half - 1; 26201: } 26201: else 26201: __len = __half; 26201: } 26201: return __first; 26201: } 26201: 26201: 26201: template 26201: 26201: _OutputIterator 26201: __remove_copy_if(_InputIterator __first, _InputIterator __last, 26201: _OutputIterator __result, _Predicate __pred) 26201: { 26201: for (; __first != __last; ++__first) 26201: if (!__pred(__first)) 26201: { 26201: *__result = *__first; 26201: ++__result; 26201: } 26201: return __result; 26201: } 26201: # 616 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _OutputIterator 26201: remove_copy(_InputIterator __first, _InputIterator __last, 26201: _OutputIterator __result, const _Tp& __value) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__remove_copy_if(__first, __last, __result, 26201: __gnu_cxx::__ops::__iter_equals_val(__value)); 26201: } 26201: # 649 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _OutputIterator 26201: remove_copy_if(_InputIterator __first, _InputIterator __last, 26201: _OutputIterator __result, _Predicate __pred) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__remove_copy_if(__first, __last, __result, 26201: __gnu_cxx::__ops::__pred_iter(__pred)); 26201: } 26201: # 684 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: _OutputIterator 26201: copy_if(_InputIterator __first, _InputIterator __last, 26201: _OutputIterator __result, _Predicate __pred) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: for (; __first != __last; ++__first) 26201: if (__pred(*__first)) 26201: { 26201: *__result = *__first; 26201: ++__result; 26201: } 26201: return __result; 26201: } 26201: 26201: template 26201: 26201: _OutputIterator 26201: __copy_n_a(_InputIterator __first, _Size __n, _OutputIterator __result) 26201: { 26201: if (__n > 0) 26201: { 26201: while (true) 26201: { 26201: *__result = *__first; 26201: ++__result; 26201: if (--__n > 0) 26201: ++__first; 26201: else 26201: break; 26201: } 26201: } 26201: return __result; 26201: } 26201: 26201: template 26201: __enable_if_t<__is_char<_CharT>::__value, _CharT*> 26201: __copy_n_a(istreambuf_iterator<_CharT, char_traits<_CharT>>, 26201: _Size, _CharT*); 26201: 26201: template 26201: 26201: _OutputIterator 26201: __copy_n(_InputIterator __first, _Size __n, 26201: _OutputIterator __result, input_iterator_tag) 26201: { 26201: return std::__niter_wrap(__result, 26201: __copy_n_a(__first, __n, 26201: std::__niter_base(__result))); 26201: } 26201: 26201: template 26201: 26201: inline _OutputIterator 26201: __copy_n(_RandomAccessIterator __first, _Size __n, 26201: _OutputIterator __result, random_access_iterator_tag) 26201: { return std::copy(__first, __first + __n, __result); } 26201: # 765 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _OutputIterator 26201: copy_n(_InputIterator __first, _Size __n, _OutputIterator __result) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: const auto __n2 = std::__size_to_integer(__n); 26201: if (__n2 <= 0) 26201: return __result; 26201: 26201: ; 26201: ; 26201: 26201: return std::__copy_n(__first, __n2, __result, 26201: std::__iterator_category(__first)); 26201: } 26201: # 801 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: pair<_OutputIterator1, _OutputIterator2> 26201: partition_copy(_InputIterator __first, _InputIterator __last, 26201: _OutputIterator1 __out_true, _OutputIterator2 __out_false, 26201: _Predicate __pred) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: for (; __first != __last; ++__first) 26201: if (__pred(*__first)) 26201: { 26201: *__out_true = *__first; 26201: ++__out_true; 26201: } 26201: else 26201: { 26201: *__out_false = *__first; 26201: ++__out_false; 26201: } 26201: 26201: return pair<_OutputIterator1, _OutputIterator2>(__out_true, __out_false); 26201: } 26201: 26201: 26201: template 26201: 26201: _ForwardIterator 26201: __remove_if(_ForwardIterator __first, _ForwardIterator __last, 26201: _Predicate __pred) 26201: { 26201: __first = std::__find_if(__first, __last, __pred); 26201: if (__first == __last) 26201: return __first; 26201: _ForwardIterator __result = __first; 26201: ++__first; 26201: for (; __first != __last; ++__first) 26201: if (!__pred(__first)) 26201: { 26201: *__result = std::move(*__first); 26201: ++__result; 26201: } 26201: return __result; 26201: } 26201: # 872 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _ForwardIterator 26201: remove(_ForwardIterator __first, _ForwardIterator __last, 26201: const _Tp& __value) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__remove_if(__first, __last, 26201: __gnu_cxx::__ops::__iter_equals_val(__value)); 26201: } 26201: # 906 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _ForwardIterator 26201: remove_if(_ForwardIterator __first, _ForwardIterator __last, 26201: _Predicate __pred) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__remove_if(__first, __last, 26201: __gnu_cxx::__ops::__pred_iter(__pred)); 26201: } 26201: 26201: template 26201: 26201: _ForwardIterator 26201: __adjacent_find(_ForwardIterator __first, _ForwardIterator __last, 26201: _BinaryPredicate __binary_pred) 26201: { 26201: if (__first == __last) 26201: return __last; 26201: _ForwardIterator __next = __first; 26201: while (++__next != __last) 26201: { 26201: if (__binary_pred(__first, __next)) 26201: return __first; 26201: __first = __next; 26201: } 26201: return __last; 26201: } 26201: 26201: template 26201: 26201: _ForwardIterator 26201: __unique(_ForwardIterator __first, _ForwardIterator __last, 26201: _BinaryPredicate __binary_pred) 26201: { 26201: 26201: __first = std::__adjacent_find(__first, __last, __binary_pred); 26201: if (__first == __last) 26201: return __last; 26201: 26201: 26201: _ForwardIterator __dest = __first; 26201: ++__first; 26201: while (++__first != __last) 26201: if (!__binary_pred(__dest, __first)) 26201: *++__dest = std::move(*__first); 26201: return ++__dest; 26201: } 26201: # 975 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _ForwardIterator 26201: unique(_ForwardIterator __first, _ForwardIterator __last) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__unique(__first, __last, 26201: __gnu_cxx::__ops::__iter_equal_to_iter()); 26201: } 26201: # 1006 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _ForwardIterator 26201: unique(_ForwardIterator __first, _ForwardIterator __last, 26201: _BinaryPredicate __binary_pred) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__unique(__first, __last, 26201: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: 26201: _OutputIterator 26201: __unique_copy(_ForwardIterator __first, _ForwardIterator __last, 26201: _OutputIterator __result, _BinaryPredicate __binary_pred, 26201: forward_iterator_tag, output_iterator_tag) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: _ForwardIterator __next = __first; 26201: *__result = *__first; 26201: while (++__next != __last) 26201: if (!__binary_pred(__first, __next)) 26201: { 26201: __first = __next; 26201: *++__result = *__first; 26201: } 26201: return ++__result; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: 26201: _OutputIterator 26201: __unique_copy(_InputIterator __first, _InputIterator __last, 26201: _OutputIterator __result, _BinaryPredicate __binary_pred, 26201: input_iterator_tag, output_iterator_tag) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: typename iterator_traits<_InputIterator>::value_type __value = *__first; 26201: __decltype(__gnu_cxx::__ops::__iter_comp_val(__binary_pred)) 26201: __rebound_pred 26201: = __gnu_cxx::__ops::__iter_comp_val(__binary_pred); 26201: *__result = __value; 26201: while (++__first != __last) 26201: if (!__rebound_pred(__first, __value)) 26201: { 26201: __value = *__first; 26201: *++__result = __value; 26201: } 26201: return ++__result; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: 26201: _ForwardIterator 26201: __unique_copy(_InputIterator __first, _InputIterator __last, 26201: _ForwardIterator __result, _BinaryPredicate __binary_pred, 26201: input_iterator_tag, forward_iterator_tag) 26201: { 26201: 26201: 26201: 26201: 26201: *__result = *__first; 26201: while (++__first != __last) 26201: if (!__binary_pred(__result, __first)) 26201: *++__result = *__first; 26201: return ++__result; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: 26201: void 26201: __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last, 26201: bidirectional_iterator_tag) 26201: { 26201: while (true) 26201: if (__first == __last || __first == --__last) 26201: return; 26201: else 26201: { 26201: std::iter_swap(__first, __last); 26201: ++__first; 26201: } 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: 26201: void 26201: __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last, 26201: random_access_iterator_tag) 26201: { 26201: if (__first == __last) 26201: return; 26201: --__last; 26201: while (__first < __last) 26201: { 26201: std::iter_swap(__first, __last); 26201: ++__first; 26201: --__last; 26201: } 26201: } 26201: # 1167 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline void 26201: reverse(_BidirectionalIterator __first, _BidirectionalIterator __last) 26201: { 26201: 26201: 26201: 26201: ; 26201: std::__reverse(__first, __last, std::__iterator_category(__first)); 26201: } 26201: # 1195 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: _OutputIterator 26201: reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last, 26201: _OutputIterator __result) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: while (__first != __last) 26201: { 26201: --__last; 26201: *__result = *__last; 26201: ++__result; 26201: } 26201: return __result; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: 26201: _EuclideanRingElement 26201: __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n) 26201: { 26201: while (__n != 0) 26201: { 26201: _EuclideanRingElement __t = __m % __n; 26201: __m = __n; 26201: __n = __t; 26201: } 26201: return __m; 26201: } 26201: 26201: inline namespace _V2 26201: { 26201: 26201: 26201: template 26201: 26201: _ForwardIterator 26201: __rotate(_ForwardIterator __first, 26201: _ForwardIterator __middle, 26201: _ForwardIterator __last, 26201: forward_iterator_tag) 26201: { 26201: if (__first == __middle) 26201: return __last; 26201: else if (__last == __middle) 26201: return __first; 26201: 26201: _ForwardIterator __first2 = __middle; 26201: do 26201: { 26201: std::iter_swap(__first, __first2); 26201: ++__first; 26201: ++__first2; 26201: if (__first == __middle) 26201: __middle = __first2; 26201: } 26201: while (__first2 != __last); 26201: 26201: _ForwardIterator __ret = __first; 26201: 26201: __first2 = __middle; 26201: 26201: while (__first2 != __last) 26201: { 26201: std::iter_swap(__first, __first2); 26201: ++__first; 26201: ++__first2; 26201: if (__first == __middle) 26201: __middle = __first2; 26201: else if (__first2 == __last) 26201: __first2 = __middle; 26201: } 26201: return __ret; 26201: } 26201: 26201: 26201: template 26201: 26201: _BidirectionalIterator 26201: __rotate(_BidirectionalIterator __first, 26201: _BidirectionalIterator __middle, 26201: _BidirectionalIterator __last, 26201: bidirectional_iterator_tag) 26201: { 26201: 26201: 26201: 26201: 26201: if (__first == __middle) 26201: return __last; 26201: else if (__last == __middle) 26201: return __first; 26201: 26201: std::__reverse(__first, __middle, bidirectional_iterator_tag()); 26201: std::__reverse(__middle, __last, bidirectional_iterator_tag()); 26201: 26201: while (__first != __middle && __middle != __last) 26201: { 26201: std::iter_swap(__first, --__last); 26201: ++__first; 26201: } 26201: 26201: if (__first == __middle) 26201: { 26201: std::__reverse(__middle, __last, bidirectional_iterator_tag()); 26201: return __last; 26201: } 26201: else 26201: { 26201: std::__reverse(__first, __middle, bidirectional_iterator_tag()); 26201: return __first; 26201: } 26201: } 26201: 26201: 26201: template 26201: 26201: _RandomAccessIterator 26201: __rotate(_RandomAccessIterator __first, 26201: _RandomAccessIterator __middle, 26201: _RandomAccessIterator __last, 26201: random_access_iterator_tag) 26201: { 26201: 26201: 26201: 26201: 26201: if (__first == __middle) 26201: return __last; 26201: else if (__last == __middle) 26201: return __first; 26201: 26201: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 26201: _Distance; 26201: typedef typename iterator_traits<_RandomAccessIterator>::value_type 26201: _ValueType; 26201: 26201: _Distance __n = __last - __first; 26201: _Distance __k = __middle - __first; 26201: 26201: if (__k == __n - __k) 26201: { 26201: std::swap_ranges(__first, __middle, __middle); 26201: return __middle; 26201: } 26201: 26201: _RandomAccessIterator __p = __first; 26201: _RandomAccessIterator __ret = __first + (__last - __middle); 26201: 26201: for (;;) 26201: { 26201: if (__k < __n - __k) 26201: { 26201: if (__is_pod(_ValueType) && __k == 1) 26201: { 26201: _ValueType __t = std::move(*__p); 26201: std::move(__p + 1, __p + __n, __p); 26201: *(__p + __n - 1) = std::move(__t); 26201: return __ret; 26201: } 26201: _RandomAccessIterator __q = __p + __k; 26201: for (_Distance __i = 0; __i < __n - __k; ++ __i) 26201: { 26201: std::iter_swap(__p, __q); 26201: ++__p; 26201: ++__q; 26201: } 26201: __n %= __k; 26201: if (__n == 0) 26201: return __ret; 26201: std::swap(__n, __k); 26201: __k = __n - __k; 26201: } 26201: else 26201: { 26201: __k = __n - __k; 26201: if (__is_pod(_ValueType) && __k == 1) 26201: { 26201: _ValueType __t = std::move(*(__p + __n - 1)); 26201: std::move_backward(__p, __p + __n - 1, __p + __n); 26201: *__p = std::move(__t); 26201: return __ret; 26201: } 26201: _RandomAccessIterator __q = __p + __n; 26201: __p = __q - __k; 26201: for (_Distance __i = 0; __i < __n - __k; ++ __i) 26201: { 26201: --__p; 26201: --__q; 26201: std::iter_swap(__p, __q); 26201: } 26201: __n %= __k; 26201: if (__n == 0) 26201: return __ret; 26201: std::swap(__n, __k); 26201: } 26201: } 26201: } 26201: # 1427 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _ForwardIterator 26201: rotate(_ForwardIterator __first, _ForwardIterator __middle, 26201: _ForwardIterator __last) 26201: { 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__rotate(__first, __middle, __last, 26201: std::__iterator_category(__first)); 26201: } 26201: 26201: } 26201: # 1465 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _OutputIterator 26201: rotate_copy(_ForwardIterator __first, _ForwardIterator __middle, 26201: _ForwardIterator __last, _OutputIterator __result) 26201: { 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::copy(__first, __middle, 26201: std::copy(__middle, __last, __result)); 26201: } 26201: 26201: 26201: template 26201: 26201: _ForwardIterator 26201: __partition(_ForwardIterator __first, _ForwardIterator __last, 26201: _Predicate __pred, forward_iterator_tag) 26201: { 26201: if (__first == __last) 26201: return __first; 26201: 26201: while (__pred(*__first)) 26201: if (++__first == __last) 26201: return __first; 26201: 26201: _ForwardIterator __next = __first; 26201: 26201: while (++__next != __last) 26201: if (__pred(*__next)) 26201: { 26201: std::iter_swap(__first, __next); 26201: ++__first; 26201: } 26201: 26201: return __first; 26201: } 26201: 26201: 26201: template 26201: 26201: _BidirectionalIterator 26201: __partition(_BidirectionalIterator __first, _BidirectionalIterator __last, 26201: _Predicate __pred, bidirectional_iterator_tag) 26201: { 26201: while (true) 26201: { 26201: while (true) 26201: if (__first == __last) 26201: return __first; 26201: else if (__pred(*__first)) 26201: ++__first; 26201: else 26201: break; 26201: --__last; 26201: while (true) 26201: if (__first == __last) 26201: return __first; 26201: else if (!bool(__pred(*__last))) 26201: --__last; 26201: else 26201: break; 26201: std::iter_swap(__first, __last); 26201: ++__first; 26201: } 26201: } 26201: # 1545 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: _ForwardIterator 26201: __stable_partition_adaptive(_ForwardIterator __first, 26201: _ForwardIterator __last, 26201: _Predicate __pred, _Distance __len, 26201: _Pointer __buffer, 26201: _Distance __buffer_size) 26201: { 26201: if (__len == 1) 26201: return __first; 26201: 26201: if (__len <= __buffer_size) 26201: { 26201: _ForwardIterator __result1 = __first; 26201: _Pointer __result2 = __buffer; 26201: 26201: 26201: 26201: 26201: *__result2 = std::move(*__first); 26201: ++__result2; 26201: ++__first; 26201: for (; __first != __last; ++__first) 26201: if (__pred(__first)) 26201: { 26201: *__result1 = std::move(*__first); 26201: ++__result1; 26201: } 26201: else 26201: { 26201: *__result2 = std::move(*__first); 26201: ++__result2; 26201: } 26201: 26201: std::move(__buffer, __result2, __result1); 26201: return __result1; 26201: } 26201: 26201: _ForwardIterator __middle = __first; 26201: std::advance(__middle, __len / 2); 26201: _ForwardIterator __left_split = 26201: std::__stable_partition_adaptive(__first, __middle, __pred, 26201: __len / 2, __buffer, 26201: __buffer_size); 26201: 26201: 26201: 26201: _Distance __right_len = __len - __len / 2; 26201: _ForwardIterator __right_split = 26201: std::__find_if_not_n(__middle, __right_len, __pred); 26201: 26201: if (__right_len) 26201: __right_split = 26201: std::__stable_partition_adaptive(__right_split, __last, __pred, 26201: __right_len, 26201: __buffer, __buffer_size); 26201: 26201: return std::rotate(__left_split, __middle, __right_split); 26201: } 26201: 26201: template 26201: _ForwardIterator 26201: __stable_partition(_ForwardIterator __first, _ForwardIterator __last, 26201: _Predicate __pred) 26201: { 26201: __first = std::__find_if_not(__first, __last, __pred); 26201: 26201: if (__first == __last) 26201: return __first; 26201: 26201: typedef typename iterator_traits<_ForwardIterator>::value_type 26201: _ValueType; 26201: typedef typename iterator_traits<_ForwardIterator>::difference_type 26201: _DistanceType; 26201: 26201: _Temporary_buffer<_ForwardIterator, _ValueType> 26201: __buf(__first, std::distance(__first, __last)); 26201: return 26201: std::__stable_partition_adaptive(__first, __last, __pred, 26201: _DistanceType(__buf.requested_size()), 26201: __buf.begin(), 26201: _DistanceType(__buf.size())); 26201: } 26201: # 1647 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: inline _ForwardIterator 26201: stable_partition(_ForwardIterator __first, _ForwardIterator __last, 26201: _Predicate __pred) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__stable_partition(__first, __last, 26201: __gnu_cxx::__ops::__pred_iter(__pred)); 26201: } 26201: 26201: 26201: template 26201: 26201: void 26201: __heap_select(_RandomAccessIterator __first, 26201: _RandomAccessIterator __middle, 26201: _RandomAccessIterator __last, _Compare __comp) 26201: { 26201: std::__make_heap(__first, __middle, __comp); 26201: for (_RandomAccessIterator __i = __middle; __i < __last; ++__i) 26201: if (__comp(__i, __first)) 26201: std::__pop_heap(__first, __middle, __i, __comp); 26201: } 26201: 26201: 26201: 26201: template 26201: 26201: _RandomAccessIterator 26201: __partial_sort_copy(_InputIterator __first, _InputIterator __last, 26201: _RandomAccessIterator __result_first, 26201: _RandomAccessIterator __result_last, 26201: _Compare __comp) 26201: { 26201: typedef typename iterator_traits<_InputIterator>::value_type 26201: _InputValueType; 26201: typedef iterator_traits<_RandomAccessIterator> _RItTraits; 26201: typedef typename _RItTraits::difference_type _DistanceType; 26201: 26201: if (__result_first == __result_last) 26201: return __result_last; 26201: _RandomAccessIterator __result_real_last = __result_first; 26201: while (__first != __last && __result_real_last != __result_last) 26201: { 26201: *__result_real_last = *__first; 26201: ++__result_real_last; 26201: ++__first; 26201: } 26201: 26201: std::__make_heap(__result_first, __result_real_last, __comp); 26201: while (__first != __last) 26201: { 26201: if (__comp(__first, __result_first)) 26201: std::__adjust_heap(__result_first, _DistanceType(0), 26201: _DistanceType(__result_real_last 26201: - __result_first), 26201: _InputValueType(*__first), __comp); 26201: ++__first; 26201: } 26201: std::__sort_heap(__result_first, __result_real_last, __comp); 26201: return __result_real_last; 26201: } 26201: # 1735 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _RandomAccessIterator 26201: partial_sort_copy(_InputIterator __first, _InputIterator __last, 26201: _RandomAccessIterator __result_first, 26201: _RandomAccessIterator __result_last) 26201: { 26201: # 1750 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: 26201: return std::__partial_sort_copy(__first, __last, 26201: __result_first, __result_last, 26201: __gnu_cxx::__ops::__iter_less_iter()); 26201: } 26201: # 1785 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _RandomAccessIterator 26201: partial_sort_copy(_InputIterator __first, _InputIterator __last, 26201: _RandomAccessIterator __result_first, 26201: _RandomAccessIterator __result_last, 26201: _Compare __comp) 26201: { 26201: # 1802 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: 26201: return std::__partial_sort_copy(__first, __last, 26201: __result_first, __result_last, 26201: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 26201: } 26201: 26201: 26201: template 26201: 26201: void 26201: __unguarded_linear_insert(_RandomAccessIterator __last, 26201: _Compare __comp) 26201: { 26201: typename iterator_traits<_RandomAccessIterator>::value_type 26201: __val = std::move(*__last); 26201: _RandomAccessIterator __next = __last; 26201: --__next; 26201: while (__comp(__val, __next)) 26201: { 26201: *__last = std::move(*__next); 26201: __last = __next; 26201: --__next; 26201: } 26201: *__last = std::move(__val); 26201: } 26201: 26201: 26201: template 26201: 26201: void 26201: __insertion_sort(_RandomAccessIterator __first, 26201: _RandomAccessIterator __last, _Compare __comp) 26201: { 26201: if (__first == __last) return; 26201: 26201: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 26201: { 26201: if (__comp(__i, __first)) 26201: { 26201: typename iterator_traits<_RandomAccessIterator>::value_type 26201: __val = std::move(*__i); 26201: std::move_backward(__first, __i, __i + 1); 26201: *__first = std::move(__val); 26201: } 26201: else 26201: std::__unguarded_linear_insert(__i, 26201: __gnu_cxx::__ops::__val_comp_iter(__comp)); 26201: } 26201: } 26201: 26201: 26201: template 26201: 26201: inline void 26201: __unguarded_insertion_sort(_RandomAccessIterator __first, 26201: _RandomAccessIterator __last, _Compare __comp) 26201: { 26201: for (_RandomAccessIterator __i = __first; __i != __last; ++__i) 26201: std::__unguarded_linear_insert(__i, 26201: __gnu_cxx::__ops::__val_comp_iter(__comp)); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: enum { _S_threshold = 16 }; 26201: 26201: 26201: template 26201: 26201: void 26201: __final_insertion_sort(_RandomAccessIterator __first, 26201: _RandomAccessIterator __last, _Compare __comp) 26201: { 26201: if (__last - __first > int(_S_threshold)) 26201: { 26201: std::__insertion_sort(__first, __first + int(_S_threshold), __comp); 26201: std::__unguarded_insertion_sort(__first + int(_S_threshold), __last, 26201: __comp); 26201: } 26201: else 26201: std::__insertion_sort(__first, __last, __comp); 26201: } 26201: 26201: 26201: template 26201: 26201: _RandomAccessIterator 26201: __unguarded_partition(_RandomAccessIterator __first, 26201: _RandomAccessIterator __last, 26201: _RandomAccessIterator __pivot, _Compare __comp) 26201: { 26201: while (true) 26201: { 26201: while (__comp(__first, __pivot)) 26201: ++__first; 26201: --__last; 26201: while (__comp(__pivot, __last)) 26201: --__last; 26201: if (!(__first < __last)) 26201: return __first; 26201: std::iter_swap(__first, __last); 26201: ++__first; 26201: } 26201: } 26201: 26201: 26201: template 26201: 26201: inline _RandomAccessIterator 26201: __unguarded_partition_pivot(_RandomAccessIterator __first, 26201: _RandomAccessIterator __last, _Compare __comp) 26201: { 26201: _RandomAccessIterator __mid = __first + (__last - __first) / 2; 26201: std::__move_median_to_first(__first, __first + 1, __mid, __last - 1, 26201: __comp); 26201: return std::__unguarded_partition(__first + 1, __last, __first, __comp); 26201: } 26201: 26201: template 26201: 26201: inline void 26201: __partial_sort(_RandomAccessIterator __first, 26201: _RandomAccessIterator __middle, 26201: _RandomAccessIterator __last, 26201: _Compare __comp) 26201: { 26201: std::__heap_select(__first, __middle, __last, __comp); 26201: std::__sort_heap(__first, __middle, __comp); 26201: } 26201: 26201: 26201: template 26201: 26201: void 26201: __introsort_loop(_RandomAccessIterator __first, 26201: _RandomAccessIterator __last, 26201: _Size __depth_limit, _Compare __comp) 26201: { 26201: while (__last - __first > int(_S_threshold)) 26201: { 26201: if (__depth_limit == 0) 26201: { 26201: std::__partial_sort(__first, __last, __last, __comp); 26201: return; 26201: } 26201: --__depth_limit; 26201: _RandomAccessIterator __cut = 26201: std::__unguarded_partition_pivot(__first, __last, __comp); 26201: std::__introsort_loop(__cut, __last, __depth_limit, __comp); 26201: __last = __cut; 26201: } 26201: } 26201: 26201: 26201: 26201: template 26201: 26201: inline void 26201: __sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 26201: _Compare __comp) 26201: { 26201: if (__first != __last) 26201: { 26201: std::__introsort_loop(__first, __last, 26201: std::__lg(__last - __first) * 2, 26201: __comp); 26201: std::__final_insertion_sort(__first, __last, __comp); 26201: } 26201: } 26201: 26201: template 26201: 26201: void 26201: __introselect(_RandomAccessIterator __first, _RandomAccessIterator __nth, 26201: _RandomAccessIterator __last, _Size __depth_limit, 26201: _Compare __comp) 26201: { 26201: while (__last - __first > 3) 26201: { 26201: if (__depth_limit == 0) 26201: { 26201: std::__heap_select(__first, __nth + 1, __last, __comp); 26201: 26201: std::iter_swap(__first, __nth); 26201: return; 26201: } 26201: --__depth_limit; 26201: _RandomAccessIterator __cut = 26201: std::__unguarded_partition_pivot(__first, __last, __comp); 26201: if (__cut <= __nth) 26201: __first = __cut; 26201: else 26201: __last = __cut; 26201: } 26201: std::__insertion_sort(__first, __last, __comp); 26201: } 26201: # 2033 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _ForwardIterator 26201: lower_bound(_ForwardIterator __first, _ForwardIterator __last, 26201: const _Tp& __val, _Compare __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__lower_bound(__first, __last, __val, 26201: __gnu_cxx::__ops::__iter_comp_val(__comp)); 26201: } 26201: 26201: template 26201: 26201: _ForwardIterator 26201: __upper_bound(_ForwardIterator __first, _ForwardIterator __last, 26201: const _Tp& __val, _Compare __comp) 26201: { 26201: typedef typename iterator_traits<_ForwardIterator>::difference_type 26201: _DistanceType; 26201: 26201: _DistanceType __len = std::distance(__first, __last); 26201: 26201: while (__len > 0) 26201: { 26201: _DistanceType __half = __len >> 1; 26201: _ForwardIterator __middle = __first; 26201: std::advance(__middle, __half); 26201: if (__comp(__val, __middle)) 26201: __len = __half; 26201: else 26201: { 26201: __first = __middle; 26201: ++__first; 26201: __len = __len - __half - 1; 26201: } 26201: } 26201: return __first; 26201: } 26201: # 2089 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _ForwardIterator 26201: upper_bound(_ForwardIterator __first, _ForwardIterator __last, 26201: const _Tp& __val) 26201: { 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__upper_bound(__first, __last, __val, 26201: __gnu_cxx::__ops::__val_less_iter()); 26201: } 26201: # 2120 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _ForwardIterator 26201: upper_bound(_ForwardIterator __first, _ForwardIterator __last, 26201: const _Tp& __val, _Compare __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__upper_bound(__first, __last, __val, 26201: __gnu_cxx::__ops::__val_comp_iter(__comp)); 26201: } 26201: 26201: template 26201: 26201: pair<_ForwardIterator, _ForwardIterator> 26201: __equal_range(_ForwardIterator __first, _ForwardIterator __last, 26201: const _Tp& __val, 26201: _CompareItTp __comp_it_val, _CompareTpIt __comp_val_it) 26201: { 26201: typedef typename iterator_traits<_ForwardIterator>::difference_type 26201: _DistanceType; 26201: 26201: _DistanceType __len = std::distance(__first, __last); 26201: 26201: while (__len > 0) 26201: { 26201: _DistanceType __half = __len >> 1; 26201: _ForwardIterator __middle = __first; 26201: std::advance(__middle, __half); 26201: if (__comp_it_val(__middle, __val)) 26201: { 26201: __first = __middle; 26201: ++__first; 26201: __len = __len - __half - 1; 26201: } 26201: else if (__comp_val_it(__val, __middle)) 26201: __len = __half; 26201: else 26201: { 26201: _ForwardIterator __left 26201: = std::__lower_bound(__first, __middle, __val, __comp_it_val); 26201: std::advance(__first, __len); 26201: _ForwardIterator __right 26201: = std::__upper_bound(++__middle, __first, __val, __comp_val_it); 26201: return pair<_ForwardIterator, _ForwardIterator>(__left, __right); 26201: } 26201: } 26201: return pair<_ForwardIterator, _ForwardIterator>(__first, __first); 26201: } 26201: # 2193 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline pair<_ForwardIterator, _ForwardIterator> 26201: equal_range(_ForwardIterator __first, _ForwardIterator __last, 26201: const _Tp& __val) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__equal_range(__first, __last, __val, 26201: __gnu_cxx::__ops::__iter_less_val(), 26201: __gnu_cxx::__ops::__val_less_iter()); 26201: } 26201: # 2230 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline pair<_ForwardIterator, _ForwardIterator> 26201: equal_range(_ForwardIterator __first, _ForwardIterator __last, 26201: const _Tp& __val, _Compare __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: ; 26201: 26201: return std::__equal_range(__first, __last, __val, 26201: __gnu_cxx::__ops::__iter_comp_val(__comp), 26201: __gnu_cxx::__ops::__val_comp_iter(__comp)); 26201: } 26201: # 2264 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: bool 26201: binary_search(_ForwardIterator __first, _ForwardIterator __last, 26201: const _Tp& __val) 26201: { 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: _ForwardIterator __i 26201: = std::__lower_bound(__first, __last, __val, 26201: __gnu_cxx::__ops::__iter_less_val()); 26201: return __i != __last && !(__val < *__i); 26201: } 26201: # 2298 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: bool 26201: binary_search(_ForwardIterator __first, _ForwardIterator __last, 26201: const _Tp& __val, _Compare __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: ; 26201: 26201: _ForwardIterator __i 26201: = std::__lower_bound(__first, __last, __val, 26201: __gnu_cxx::__ops::__iter_comp_val(__comp)); 26201: return __i != __last && !bool(__comp(__val, *__i)); 26201: } 26201: 26201: 26201: 26201: 26201: template 26201: void 26201: __move_merge_adaptive(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _InputIterator2 __last2, 26201: _OutputIterator __result, _Compare __comp) 26201: { 26201: while (__first1 != __last1 && __first2 != __last2) 26201: { 26201: if (__comp(__first2, __first1)) 26201: { 26201: *__result = std::move(*__first2); 26201: ++__first2; 26201: } 26201: else 26201: { 26201: *__result = std::move(*__first1); 26201: ++__first1; 26201: } 26201: ++__result; 26201: } 26201: if (__first1 != __last1) 26201: std::move(__first1, __last1, __result); 26201: } 26201: 26201: 26201: template 26201: void 26201: __move_merge_adaptive_backward(_BidirectionalIterator1 __first1, 26201: _BidirectionalIterator1 __last1, 26201: _BidirectionalIterator2 __first2, 26201: _BidirectionalIterator2 __last2, 26201: _BidirectionalIterator3 __result, 26201: _Compare __comp) 26201: { 26201: if (__first1 == __last1) 26201: { 26201: std::move_backward(__first2, __last2, __result); 26201: return; 26201: } 26201: else if (__first2 == __last2) 26201: return; 26201: 26201: --__last1; 26201: --__last2; 26201: while (true) 26201: { 26201: if (__comp(__last2, __last1)) 26201: { 26201: *--__result = std::move(*__last1); 26201: if (__first1 == __last1) 26201: { 26201: std::move_backward(__first2, ++__last2, __result); 26201: return; 26201: } 26201: --__last1; 26201: } 26201: else 26201: { 26201: *--__result = std::move(*__last2); 26201: if (__first2 == __last2) 26201: return; 26201: --__last2; 26201: } 26201: } 26201: } 26201: 26201: 26201: template 26201: _BidirectionalIterator1 26201: __rotate_adaptive(_BidirectionalIterator1 __first, 26201: _BidirectionalIterator1 __middle, 26201: _BidirectionalIterator1 __last, 26201: _Distance __len1, _Distance __len2, 26201: _BidirectionalIterator2 __buffer, 26201: _Distance __buffer_size) 26201: { 26201: _BidirectionalIterator2 __buffer_end; 26201: if (__len1 > __len2 && __len2 <= __buffer_size) 26201: { 26201: if (__len2) 26201: { 26201: __buffer_end = std::move(__middle, __last, __buffer); 26201: std::move_backward(__first, __middle, __last); 26201: return std::move(__buffer, __buffer_end, __first); 26201: } 26201: else 26201: return __first; 26201: } 26201: else if (__len1 <= __buffer_size) 26201: { 26201: if (__len1) 26201: { 26201: __buffer_end = std::move(__first, __middle, __buffer); 26201: std::move(__middle, __last, __first); 26201: return std::move_backward(__buffer, __buffer_end, __last); 26201: } 26201: else 26201: return __last; 26201: } 26201: else 26201: return std::rotate(__first, __middle, __last); 26201: } 26201: 26201: 26201: template 26201: void 26201: __merge_adaptive(_BidirectionalIterator __first, 26201: _BidirectionalIterator __middle, 26201: _BidirectionalIterator __last, 26201: _Distance __len1, _Distance __len2, 26201: _Pointer __buffer, _Distance __buffer_size, 26201: _Compare __comp) 26201: { 26201: if (__len1 <= __len2 && __len1 <= __buffer_size) 26201: { 26201: _Pointer __buffer_end = std::move(__first, __middle, __buffer); 26201: std::__move_merge_adaptive(__buffer, __buffer_end, __middle, __last, 26201: __first, __comp); 26201: } 26201: else if (__len2 <= __buffer_size) 26201: { 26201: _Pointer __buffer_end = std::move(__middle, __last, __buffer); 26201: std::__move_merge_adaptive_backward(__first, __middle, __buffer, 26201: __buffer_end, __last, __comp); 26201: } 26201: else 26201: { 26201: _BidirectionalIterator __first_cut = __first; 26201: _BidirectionalIterator __second_cut = __middle; 26201: _Distance __len11 = 0; 26201: _Distance __len22 = 0; 26201: if (__len1 > __len2) 26201: { 26201: __len11 = __len1 / 2; 26201: std::advance(__first_cut, __len11); 26201: __second_cut 26201: = std::__lower_bound(__middle, __last, *__first_cut, 26201: __gnu_cxx::__ops::__iter_comp_val(__comp)); 26201: __len22 = std::distance(__middle, __second_cut); 26201: } 26201: else 26201: { 26201: __len22 = __len2 / 2; 26201: std::advance(__second_cut, __len22); 26201: __first_cut 26201: = std::__upper_bound(__first, __middle, *__second_cut, 26201: __gnu_cxx::__ops::__val_comp_iter(__comp)); 26201: __len11 = std::distance(__first, __first_cut); 26201: } 26201: 26201: _BidirectionalIterator __new_middle 26201: = std::__rotate_adaptive(__first_cut, __middle, __second_cut, 26201: __len1 - __len11, __len22, __buffer, 26201: __buffer_size); 26201: std::__merge_adaptive(__first, __first_cut, __new_middle, __len11, 26201: __len22, __buffer, __buffer_size, __comp); 26201: std::__merge_adaptive(__new_middle, __second_cut, __last, 26201: __len1 - __len11, 26201: __len2 - __len22, __buffer, 26201: __buffer_size, __comp); 26201: } 26201: } 26201: 26201: 26201: template 26201: void 26201: __merge_without_buffer(_BidirectionalIterator __first, 26201: _BidirectionalIterator __middle, 26201: _BidirectionalIterator __last, 26201: _Distance __len1, _Distance __len2, 26201: _Compare __comp) 26201: { 26201: if (__len1 == 0 || __len2 == 0) 26201: return; 26201: 26201: if (__len1 + __len2 == 2) 26201: { 26201: if (__comp(__middle, __first)) 26201: std::iter_swap(__first, __middle); 26201: return; 26201: } 26201: 26201: _BidirectionalIterator __first_cut = __first; 26201: _BidirectionalIterator __second_cut = __middle; 26201: _Distance __len11 = 0; 26201: _Distance __len22 = 0; 26201: if (__len1 > __len2) 26201: { 26201: __len11 = __len1 / 2; 26201: std::advance(__first_cut, __len11); 26201: __second_cut 26201: = std::__lower_bound(__middle, __last, *__first_cut, 26201: __gnu_cxx::__ops::__iter_comp_val(__comp)); 26201: __len22 = std::distance(__middle, __second_cut); 26201: } 26201: else 26201: { 26201: __len22 = __len2 / 2; 26201: std::advance(__second_cut, __len22); 26201: __first_cut 26201: = std::__upper_bound(__first, __middle, *__second_cut, 26201: __gnu_cxx::__ops::__val_comp_iter(__comp)); 26201: __len11 = std::distance(__first, __first_cut); 26201: } 26201: 26201: _BidirectionalIterator __new_middle 26201: = std::rotate(__first_cut, __middle, __second_cut); 26201: std::__merge_without_buffer(__first, __first_cut, __new_middle, 26201: __len11, __len22, __comp); 26201: std::__merge_without_buffer(__new_middle, __second_cut, __last, 26201: __len1 - __len11, __len2 - __len22, __comp); 26201: } 26201: 26201: template 26201: void 26201: __inplace_merge(_BidirectionalIterator __first, 26201: _BidirectionalIterator __middle, 26201: _BidirectionalIterator __last, 26201: _Compare __comp) 26201: { 26201: typedef typename iterator_traits<_BidirectionalIterator>::value_type 26201: _ValueType; 26201: typedef typename iterator_traits<_BidirectionalIterator>::difference_type 26201: _DistanceType; 26201: 26201: if (__first == __middle || __middle == __last) 26201: return; 26201: 26201: const _DistanceType __len1 = std::distance(__first, __middle); 26201: const _DistanceType __len2 = std::distance(__middle, __last); 26201: 26201: typedef _Temporary_buffer<_BidirectionalIterator, _ValueType> _TmpBuf; 26201: _TmpBuf __buf(__first, __len1 + __len2); 26201: 26201: if (__buf.begin() == 0) 26201: std::__merge_without_buffer 26201: (__first, __middle, __last, __len1, __len2, __comp); 26201: else 26201: std::__merge_adaptive 26201: (__first, __middle, __last, __len1, __len2, __buf.begin(), 26201: _DistanceType(__buf.size()), __comp); 26201: } 26201: # 2588 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: inline void 26201: inplace_merge(_BidirectionalIterator __first, 26201: _BidirectionalIterator __middle, 26201: _BidirectionalIterator __last) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: 26201: std::__inplace_merge(__first, __middle, __last, 26201: __gnu_cxx::__ops::__iter_less_iter()); 26201: } 26201: # 2629 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: inline void 26201: inplace_merge(_BidirectionalIterator __first, 26201: _BidirectionalIterator __middle, 26201: _BidirectionalIterator __last, 26201: _Compare __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: 26201: std::__inplace_merge(__first, __middle, __last, 26201: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 26201: } 26201: 26201: 26201: 26201: template 26201: _OutputIterator 26201: __move_merge(_InputIterator __first1, _InputIterator __last1, 26201: _InputIterator __first2, _InputIterator __last2, 26201: _OutputIterator __result, _Compare __comp) 26201: { 26201: while (__first1 != __last1 && __first2 != __last2) 26201: { 26201: if (__comp(__first2, __first1)) 26201: { 26201: *__result = std::move(*__first2); 26201: ++__first2; 26201: } 26201: else 26201: { 26201: *__result = std::move(*__first1); 26201: ++__first1; 26201: } 26201: ++__result; 26201: } 26201: return std::move(__first2, __last2, std::move(__first1, __last1, __result)) 26201: 26201: ; 26201: } 26201: 26201: template 26201: void 26201: __merge_sort_loop(_RandomAccessIterator1 __first, 26201: _RandomAccessIterator1 __last, 26201: _RandomAccessIterator2 __result, _Distance __step_size, 26201: _Compare __comp) 26201: { 26201: const _Distance __two_step = 2 * __step_size; 26201: 26201: while (__last - __first >= __two_step) 26201: { 26201: __result = std::__move_merge(__first, __first + __step_size, 26201: __first + __step_size, 26201: __first + __two_step, 26201: __result, __comp); 26201: __first += __two_step; 26201: } 26201: __step_size = std::min(_Distance(__last - __first), __step_size); 26201: 26201: std::__move_merge(__first, __first + __step_size, 26201: __first + __step_size, __last, __result, __comp); 26201: } 26201: 26201: template 26201: 26201: void 26201: __chunk_insertion_sort(_RandomAccessIterator __first, 26201: _RandomAccessIterator __last, 26201: _Distance __chunk_size, _Compare __comp) 26201: { 26201: while (__last - __first >= __chunk_size) 26201: { 26201: std::__insertion_sort(__first, __first + __chunk_size, __comp); 26201: __first += __chunk_size; 26201: } 26201: std::__insertion_sort(__first, __last, __comp); 26201: } 26201: 26201: enum { _S_chunk_size = 7 }; 26201: 26201: template 26201: void 26201: __merge_sort_with_buffer(_RandomAccessIterator __first, 26201: _RandomAccessIterator __last, 26201: _Pointer __buffer, _Compare __comp) 26201: { 26201: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 26201: _Distance; 26201: 26201: const _Distance __len = __last - __first; 26201: const _Pointer __buffer_last = __buffer + __len; 26201: 26201: _Distance __step_size = _S_chunk_size; 26201: std::__chunk_insertion_sort(__first, __last, __step_size, __comp); 26201: 26201: while (__step_size < __len) 26201: { 26201: std::__merge_sort_loop(__first, __last, __buffer, 26201: __step_size, __comp); 26201: __step_size *= 2; 26201: std::__merge_sort_loop(__buffer, __buffer_last, __first, 26201: __step_size, __comp); 26201: __step_size *= 2; 26201: } 26201: } 26201: 26201: template 26201: void 26201: __stable_sort_adaptive(_RandomAccessIterator __first, 26201: _RandomAccessIterator __last, 26201: _Pointer __buffer, _Distance __buffer_size, 26201: _Compare __comp) 26201: { 26201: const _Distance __len = (__last - __first + 1) / 2; 26201: const _RandomAccessIterator __middle = __first + __len; 26201: if (__len > __buffer_size) 26201: { 26201: std::__stable_sort_adaptive(__first, __middle, __buffer, 26201: __buffer_size, __comp); 26201: std::__stable_sort_adaptive(__middle, __last, __buffer, 26201: __buffer_size, __comp); 26201: } 26201: else 26201: { 26201: std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp); 26201: std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp); 26201: } 26201: std::__merge_adaptive(__first, __middle, __last, 26201: _Distance(__middle - __first), 26201: _Distance(__last - __middle), 26201: __buffer, __buffer_size, 26201: __comp); 26201: } 26201: 26201: 26201: template 26201: void 26201: __inplace_stable_sort(_RandomAccessIterator __first, 26201: _RandomAccessIterator __last, _Compare __comp) 26201: { 26201: if (__last - __first < 15) 26201: { 26201: std::__insertion_sort(__first, __last, __comp); 26201: return; 26201: } 26201: _RandomAccessIterator __middle = __first + (__last - __first) / 2; 26201: std::__inplace_stable_sort(__first, __middle, __comp); 26201: std::__inplace_stable_sort(__middle, __last, __comp); 26201: std::__merge_without_buffer(__first, __middle, __last, 26201: __middle - __first, 26201: __last - __middle, 26201: __comp); 26201: } 26201: # 2802 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: bool 26201: __includes(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _InputIterator2 __last2, 26201: _Compare __comp) 26201: { 26201: while (__first1 != __last1 && __first2 != __last2) 26201: if (__comp(__first2, __first1)) 26201: return false; 26201: else if (__comp(__first1, __first2)) 26201: ++__first1; 26201: else 26201: { 26201: ++__first1; 26201: ++__first2; 26201: } 26201: 26201: return __first2 == __last2; 26201: } 26201: # 2842 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline bool 26201: includes(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _InputIterator2 __last2) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: ; 26201: 26201: return std::__includes(__first1, __last1, __first2, __last2, 26201: __gnu_cxx::__ops::__iter_less_iter()); 26201: } 26201: # 2887 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline bool 26201: includes(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _InputIterator2 __last2, 26201: _Compare __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: ; 26201: 26201: return std::__includes(__first1, __last1, __first2, __last2, 26201: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 26201: } 26201: # 2923 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: bool 26201: __next_permutation(_BidirectionalIterator __first, 26201: _BidirectionalIterator __last, _Compare __comp) 26201: { 26201: if (__first == __last) 26201: return false; 26201: _BidirectionalIterator __i = __first; 26201: ++__i; 26201: if (__i == __last) 26201: return false; 26201: __i = __last; 26201: --__i; 26201: 26201: for(;;) 26201: { 26201: _BidirectionalIterator __ii = __i; 26201: --__i; 26201: if (__comp(__i, __ii)) 26201: { 26201: _BidirectionalIterator __j = __last; 26201: while (!__comp(__i, --__j)) 26201: {} 26201: std::iter_swap(__i, __j); 26201: std::__reverse(__ii, __last, 26201: std::__iterator_category(__first)); 26201: return true; 26201: } 26201: if (__i == __first) 26201: { 26201: std::__reverse(__first, __last, 26201: std::__iterator_category(__first)); 26201: return false; 26201: } 26201: } 26201: } 26201: # 2973 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline bool 26201: next_permutation(_BidirectionalIterator __first, 26201: _BidirectionalIterator __last) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__next_permutation 26201: (__first, __last, __gnu_cxx::__ops::__iter_less_iter()); 26201: } 26201: # 3006 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline bool 26201: next_permutation(_BidirectionalIterator __first, 26201: _BidirectionalIterator __last, _Compare __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__next_permutation 26201: (__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); 26201: } 26201: 26201: template 26201: 26201: bool 26201: __prev_permutation(_BidirectionalIterator __first, 26201: _BidirectionalIterator __last, _Compare __comp) 26201: { 26201: if (__first == __last) 26201: return false; 26201: _BidirectionalIterator __i = __first; 26201: ++__i; 26201: if (__i == __last) 26201: return false; 26201: __i = __last; 26201: --__i; 26201: 26201: for(;;) 26201: { 26201: _BidirectionalIterator __ii = __i; 26201: --__i; 26201: if (__comp(__ii, __i)) 26201: { 26201: _BidirectionalIterator __j = __last; 26201: while (!__comp(--__j, __i)) 26201: {} 26201: std::iter_swap(__i, __j); 26201: std::__reverse(__ii, __last, 26201: std::__iterator_category(__first)); 26201: return true; 26201: } 26201: if (__i == __first) 26201: { 26201: std::__reverse(__first, __last, 26201: std::__iterator_category(__first)); 26201: return false; 26201: } 26201: } 26201: } 26201: # 3076 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline bool 26201: prev_permutation(_BidirectionalIterator __first, 26201: _BidirectionalIterator __last) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__prev_permutation(__first, __last, 26201: __gnu_cxx::__ops::__iter_less_iter()); 26201: } 26201: # 3109 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline bool 26201: prev_permutation(_BidirectionalIterator __first, 26201: _BidirectionalIterator __last, _Compare __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__prev_permutation(__first, __last, 26201: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 26201: } 26201: 26201: 26201: 26201: 26201: template 26201: 26201: _OutputIterator 26201: __replace_copy_if(_InputIterator __first, _InputIterator __last, 26201: _OutputIterator __result, 26201: _Predicate __pred, const _Tp& __new_value) 26201: { 26201: for (; __first != __last; ++__first, (void)++__result) 26201: if (__pred(__first)) 26201: *__result = __new_value; 26201: else 26201: *__result = *__first; 26201: return __result; 26201: } 26201: # 3161 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _OutputIterator 26201: replace_copy(_InputIterator __first, _InputIterator __last, 26201: _OutputIterator __result, 26201: const _Tp& __old_value, const _Tp& __new_value) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__replace_copy_if(__first, __last, __result, 26201: __gnu_cxx::__ops::__iter_equals_val(__old_value), 26201: __new_value); 26201: } 26201: # 3196 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _OutputIterator 26201: replace_copy_if(_InputIterator __first, _InputIterator __last, 26201: _OutputIterator __result, 26201: _Predicate __pred, const _Tp& __new_value) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__replace_copy_if(__first, __last, __result, 26201: __gnu_cxx::__ops::__pred_iter(__pred), 26201: __new_value); 26201: } 26201: # 3225 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline bool 26201: is_sorted(_ForwardIterator __first, _ForwardIterator __last) 26201: { return std::is_sorted_until(__first, __last) == __last; } 26201: # 3240 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline bool 26201: is_sorted(_ForwardIterator __first, _ForwardIterator __last, 26201: _Compare __comp) 26201: { return std::is_sorted_until(__first, __last, __comp) == __last; } 26201: 26201: template 26201: 26201: _ForwardIterator 26201: __is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, 26201: _Compare __comp) 26201: { 26201: if (__first == __last) 26201: return __last; 26201: 26201: _ForwardIterator __next = __first; 26201: for (++__next; __next != __last; __first = __next, (void)++__next) 26201: if (__comp(__next, __first)) 26201: return __next; 26201: return __next; 26201: } 26201: # 3271 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _ForwardIterator 26201: is_sorted_until(_ForwardIterator __first, _ForwardIterator __last) 26201: { 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__is_sorted_until(__first, __last, 26201: __gnu_cxx::__ops::__iter_less_iter()); 26201: } 26201: # 3296 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _ForwardIterator 26201: is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, 26201: _Compare __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__is_sorted_until(__first, __last, 26201: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 26201: } 26201: # 3322 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: constexpr 26201: inline pair 26201: minmax(const _Tp& __a, const _Tp& __b) 26201: { 26201: 26201: 26201: 26201: return __b < __a ? pair(__b, __a) 26201: : pair(__a, __b); 26201: } 26201: # 3343 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: constexpr 26201: inline pair 26201: minmax(const _Tp& __a, const _Tp& __b, _Compare __comp) 26201: { 26201: return __comp(__b, __a) ? pair(__b, __a) 26201: : pair(__a, __b); 26201: } 26201: 26201: template 26201: constexpr 26201: pair<_ForwardIterator, _ForwardIterator> 26201: __minmax_element(_ForwardIterator __first, _ForwardIterator __last, 26201: _Compare __comp) 26201: { 26201: _ForwardIterator __next = __first; 26201: if (__first == __last 26201: || ++__next == __last) 26201: return std::make_pair(__first, __first); 26201: 26201: _ForwardIterator __min{}, __max{}; 26201: if (__comp(__next, __first)) 26201: { 26201: __min = __next; 26201: __max = __first; 26201: } 26201: else 26201: { 26201: __min = __first; 26201: __max = __next; 26201: } 26201: 26201: __first = __next; 26201: ++__first; 26201: 26201: while (__first != __last) 26201: { 26201: __next = __first; 26201: if (++__next == __last) 26201: { 26201: if (__comp(__first, __min)) 26201: __min = __first; 26201: else if (!__comp(__first, __max)) 26201: __max = __first; 26201: break; 26201: } 26201: 26201: if (__comp(__next, __first)) 26201: { 26201: if (__comp(__next, __min)) 26201: __min = __next; 26201: if (!__comp(__first, __max)) 26201: __max = __first; 26201: } 26201: else 26201: { 26201: if (__comp(__first, __min)) 26201: __min = __first; 26201: if (!__comp(__next, __max)) 26201: __max = __next; 26201: } 26201: 26201: __first = __next; 26201: ++__first; 26201: } 26201: 26201: return std::make_pair(__min, __max); 26201: } 26201: # 3423 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: constexpr 26201: inline pair<_ForwardIterator, _ForwardIterator> 26201: minmax_element(_ForwardIterator __first, _ForwardIterator __last) 26201: { 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__minmax_element(__first, __last, 26201: __gnu_cxx::__ops::__iter_less_iter()); 26201: } 26201: # 3451 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: constexpr 26201: inline pair<_ForwardIterator, _ForwardIterator> 26201: minmax_element(_ForwardIterator __first, _ForwardIterator __last, 26201: _Compare __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__minmax_element(__first, __last, 26201: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 26201: } 26201: 26201: 26201: template 26201: constexpr 26201: inline _Tp 26201: min(initializer_list<_Tp> __l) 26201: { return *std::min_element(__l.begin(), __l.end()); } 26201: 26201: template 26201: constexpr 26201: inline _Tp 26201: min(initializer_list<_Tp> __l, _Compare __comp) 26201: { return *std::min_element(__l.begin(), __l.end(), __comp); } 26201: 26201: template 26201: constexpr 26201: inline _Tp 26201: max(initializer_list<_Tp> __l) 26201: { return *std::max_element(__l.begin(), __l.end()); } 26201: 26201: template 26201: constexpr 26201: inline _Tp 26201: max(initializer_list<_Tp> __l, _Compare __comp) 26201: { return *std::max_element(__l.begin(), __l.end(), __comp); } 26201: 26201: template 26201: constexpr 26201: inline pair<_Tp, _Tp> 26201: minmax(initializer_list<_Tp> __l) 26201: { 26201: pair __p = 26201: std::minmax_element(__l.begin(), __l.end()); 26201: return std::make_pair(*__p.first, *__p.second); 26201: } 26201: 26201: template 26201: constexpr 26201: inline pair<_Tp, _Tp> 26201: minmax(initializer_list<_Tp> __l, _Compare __comp) 26201: { 26201: pair __p = 26201: std::minmax_element(__l.begin(), __l.end(), __comp); 26201: return std::make_pair(*__p.first, *__p.second); 26201: } 26201: # 3528 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline bool 26201: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2, _BinaryPredicate __pred) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__is_permutation(__first1, __last1, __first2, 26201: __gnu_cxx::__ops::__iter_comp_iter(__pred)); 26201: } 26201: 26201: 26201: template 26201: 26201: bool 26201: __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 26201: _BinaryPredicate __pred) 26201: { 26201: using _Cat1 26201: = typename iterator_traits<_ForwardIterator1>::iterator_category; 26201: using _Cat2 26201: = typename iterator_traits<_ForwardIterator2>::iterator_category; 26201: using _It1_is_RA = is_same<_Cat1, random_access_iterator_tag>; 26201: using _It2_is_RA = is_same<_Cat2, random_access_iterator_tag>; 26201: constexpr bool __ra_iters = _It1_is_RA() && _It2_is_RA(); 26201: if (__ra_iters) 26201: { 26201: auto __d1 = std::distance(__first1, __last1); 26201: auto __d2 = std::distance(__first2, __last2); 26201: if (__d1 != __d2) 26201: return false; 26201: } 26201: 26201: 26201: 26201: for (; __first1 != __last1 && __first2 != __last2; 26201: ++__first1, (void)++__first2) 26201: if (!__pred(__first1, __first2)) 26201: break; 26201: 26201: if (__ra_iters) 26201: { 26201: if (__first1 == __last1) 26201: return true; 26201: } 26201: else 26201: { 26201: auto __d1 = std::distance(__first1, __last1); 26201: auto __d2 = std::distance(__first2, __last2); 26201: if (__d1 == 0 && __d2 == 0) 26201: return true; 26201: if (__d1 != __d2) 26201: return false; 26201: } 26201: 26201: for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) 26201: { 26201: if (__scan != std::__find_if(__first1, __scan, 26201: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) 26201: continue; 26201: 26201: auto __matches = std::__count_if(__first2, __last2, 26201: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); 26201: if (0 == __matches 26201: || std::__count_if(__scan, __last1, 26201: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) 26201: != __matches) 26201: return false; 26201: } 26201: return true; 26201: } 26201: # 3623 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline bool 26201: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2, _ForwardIterator2 __last2) 26201: { 26201: ; 26201: ; 26201: 26201: return 26201: std::__is_permutation(__first1, __last1, __first2, __last2, 26201: __gnu_cxx::__ops::__iter_equal_to_iter()); 26201: } 26201: # 3651 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline bool 26201: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 26201: _BinaryPredicate __pred) 26201: { 26201: ; 26201: ; 26201: 26201: return std::__is_permutation(__first1, __last1, __first2, __last2, 26201: __gnu_cxx::__ops::__iter_comp_iter(__pred)); 26201: } 26201: 26201: 26201: 26201: #define __cpp_lib_clamp 201603 26201: # 3678 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: constexpr const _Tp& 26201: clamp(const _Tp& __val, const _Tp& __lo, const _Tp& __hi) 26201: { 26201: ; 26201: return (__val < __lo) ? __lo : (__hi < __val) ? __hi : __val; 26201: } 26201: # 3696 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: constexpr const _Tp& 26201: clamp(const _Tp& __val, const _Tp& __lo, const _Tp& __hi, _Compare __comp) 26201: { 26201: ; 26201: return __comp(__val, __lo) ? __lo : __comp(__hi, __val) ? __hi : __val; 26201: } 26201: # 3728 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: pair<_IntType, _IntType> 26201: __gen_two_uniform_ints(_IntType __b0, _IntType __b1, 26201: _UniformRandomBitGenerator&& __g) 26201: { 26201: _IntType __x 26201: = uniform_int_distribution<_IntType>{0, (__b0 * __b1) - 1}(__g); 26201: return std::make_pair(__x / __b1, __x % __b1); 26201: } 26201: # 3750 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: void 26201: shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, 26201: _UniformRandomNumberGenerator&& __g) 26201: { 26201: 26201: 26201: 26201: ; 26201: 26201: if (__first == __last) 26201: return; 26201: 26201: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 26201: _DistanceType; 26201: 26201: typedef typename std::make_unsigned<_DistanceType>::type __ud_type; 26201: typedef typename std::uniform_int_distribution<__ud_type> __distr_type; 26201: typedef typename __distr_type::param_type __p_type; 26201: 26201: typedef typename remove_reference<_UniformRandomNumberGenerator>::type 26201: _Gen; 26201: typedef typename common_type::type 26201: __uc_type; 26201: 26201: const __uc_type __urngrange = __g.max() - __g.min(); 26201: const __uc_type __urange = __uc_type(__last - __first); 26201: 26201: if (__urngrange / __urange >= __urange) 26201: 26201: { 26201: _RandomAccessIterator __i = __first + 1; 26201: 26201: 26201: 26201: 26201: 26201: if ((__urange % 2) == 0) 26201: { 26201: __distr_type __d{0, 1}; 26201: std::iter_swap(__i++, __first + __d(__g)); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: while (__i != __last) 26201: { 26201: const __uc_type __swap_range = __uc_type(__i - __first) + 1; 26201: 26201: const pair<__uc_type, __uc_type> __pospos = 26201: __gen_two_uniform_ints(__swap_range, __swap_range + 1, __g); 26201: 26201: std::iter_swap(__i++, __first + __pospos.first); 26201: std::iter_swap(__i++, __first + __pospos.second); 26201: } 26201: 26201: return; 26201: } 26201: 26201: __distr_type __d; 26201: 26201: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 26201: std::iter_swap(__i, __first + __d(__g, __p_type(0, __i - __first))); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: # 3835 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: _Function 26201: for_each(_InputIterator __first, _InputIterator __last, _Function __f) 26201: { 26201: 26201: 26201: ; 26201: for (; __first != __last; ++__first) 26201: __f(*__first); 26201: return __f; 26201: } 26201: # 3861 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: _InputIterator 26201: for_each_n(_InputIterator __first, _Size __n, _Function __f) 26201: { 26201: auto __n2 = std::__size_to_integer(__n); 26201: using _Cat = typename iterator_traits<_InputIterator>::iterator_category; 26201: if constexpr (is_base_of_v) 26201: { 26201: if (__n2 <= 0) 26201: return __first; 26201: auto __last = __first + __n2; 26201: std::for_each(__first, __last, std::move(__f)); 26201: return __last; 26201: } 26201: else 26201: { 26201: while (__n2-->0) 26201: { 26201: __f(*__first); 26201: ++__first; 26201: } 26201: return __first; 26201: } 26201: } 26201: # 3897 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _InputIterator 26201: find(_InputIterator __first, _InputIterator __last, 26201: const _Tp& __val) 26201: { 26201: 26201: 26201: 26201: 26201: ; 26201: return std::__find_if(__first, __last, 26201: __gnu_cxx::__ops::__iter_equals_val(__val)); 26201: } 26201: # 3922 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _InputIterator 26201: find_if(_InputIterator __first, _InputIterator __last, 26201: _Predicate __pred) 26201: { 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__find_if(__first, __last, 26201: __gnu_cxx::__ops::__pred_iter(__pred)); 26201: } 26201: # 3954 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: _InputIterator 26201: find_first_of(_InputIterator __first1, _InputIterator __last1, 26201: _ForwardIterator __first2, _ForwardIterator __last2) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: for (; __first1 != __last1; ++__first1) 26201: for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) 26201: if (*__first1 == *__iter) 26201: return __first1; 26201: return __last1; 26201: } 26201: # 3995 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: _InputIterator 26201: find_first_of(_InputIterator __first1, _InputIterator __last1, 26201: _ForwardIterator __first2, _ForwardIterator __last2, 26201: _BinaryPredicate __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: for (; __first1 != __last1; ++__first1) 26201: for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) 26201: if (__comp(*__first1, *__iter)) 26201: return __first1; 26201: return __last1; 26201: } 26201: # 4028 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _ForwardIterator 26201: adjacent_find(_ForwardIterator __first, _ForwardIterator __last) 26201: { 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__adjacent_find(__first, __last, 26201: __gnu_cxx::__ops::__iter_equal_to_iter()); 26201: } 26201: # 4054 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _ForwardIterator 26201: adjacent_find(_ForwardIterator __first, _ForwardIterator __last, 26201: _BinaryPredicate __binary_pred) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__adjacent_find(__first, __last, 26201: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 26201: } 26201: # 4080 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline typename iterator_traits<_InputIterator>::difference_type 26201: count(_InputIterator __first, _InputIterator __last, const _Tp& __value) 26201: { 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__count_if(__first, __last, 26201: __gnu_cxx::__ops::__iter_equals_val(__value)); 26201: } 26201: # 4104 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline typename iterator_traits<_InputIterator>::difference_type 26201: count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) 26201: { 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__count_if(__first, __last, 26201: __gnu_cxx::__ops::__pred_iter(__pred)); 26201: } 26201: # 4145 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _ForwardIterator1 26201: search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2, _ForwardIterator2 __last2) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__search(__first1, __last1, __first2, __last2, 26201: __gnu_cxx::__ops::__iter_equal_to_iter()); 26201: } 26201: # 4185 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _ForwardIterator1 26201: search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 26201: _BinaryPredicate __predicate) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__search(__first1, __last1, __first2, __last2, 26201: __gnu_cxx::__ops::__iter_comp_iter(__predicate)); 26201: } 26201: # 4221 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _ForwardIterator 26201: search_n(_ForwardIterator __first, _ForwardIterator __last, 26201: _Integer __count, const _Tp& __val) 26201: { 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__search_n(__first, __last, __count, 26201: __gnu_cxx::__ops::__iter_equals_val(__val)); 26201: } 26201: # 4255 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _ForwardIterator 26201: search_n(_ForwardIterator __first, _ForwardIterator __last, 26201: _Integer __count, const _Tp& __val, 26201: _BinaryPredicate __binary_pred) 26201: { 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__search_n(__first, __last, __count, 26201: __gnu_cxx::__ops::__iter_comp_val(__binary_pred, __val)); 26201: } 26201: # 4281 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _ForwardIterator 26201: search(_ForwardIterator __first, _ForwardIterator __last, 26201: const _Searcher& __searcher) 26201: { return __searcher(__first, __last).first; } 26201: # 4305 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: _OutputIterator 26201: transform(_InputIterator __first, _InputIterator __last, 26201: _OutputIterator __result, _UnaryOperation __unary_op) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: for (; __first != __last; ++__first, (void)++__result) 26201: *__result = __unary_op(*__first); 26201: return __result; 26201: } 26201: # 4343 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: _OutputIterator 26201: transform(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _OutputIterator __result, 26201: _BinaryOperation __binary_op) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: for (; __first1 != __last1; ++__first1, (void)++__first2, ++__result) 26201: *__result = __binary_op(*__first1, *__first2); 26201: return __result; 26201: } 26201: # 4377 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: void 26201: replace(_ForwardIterator __first, _ForwardIterator __last, 26201: const _Tp& __old_value, const _Tp& __new_value) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: for (; __first != __last; ++__first) 26201: if (*__first == __old_value) 26201: *__first = __new_value; 26201: } 26201: # 4410 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: void 26201: replace_if(_ForwardIterator __first, _ForwardIterator __last, 26201: _Predicate __pred, const _Tp& __new_value) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: for (; __first != __last; ++__first) 26201: if (__pred(*__first)) 26201: *__first = __new_value; 26201: } 26201: # 4443 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: void 26201: generate(_ForwardIterator __first, _ForwardIterator __last, 26201: _Generator __gen) 26201: { 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: for (; __first != __last; ++__first) 26201: *__first = __gen(); 26201: } 26201: # 4477 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: _OutputIterator 26201: generate_n(_OutputIterator __first, _Size __n, _Generator __gen) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: typedef __decltype(std::__size_to_integer(__n)) _IntSize; 26201: for (_IntSize __niter = std::__size_to_integer(__n); 26201: __niter > 0; --__niter, (void) ++__first) 26201: *__first = __gen(); 26201: return __first; 26201: } 26201: # 4515 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _OutputIterator 26201: unique_copy(_InputIterator __first, _InputIterator __last, 26201: _OutputIterator __result) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: if (__first == __last) 26201: return __result; 26201: return std::__unique_copy(__first, __last, __result, 26201: __gnu_cxx::__ops::__iter_equal_to_iter(), 26201: std::__iterator_category(__first), 26201: std::__iterator_category(__result)); 26201: } 26201: # 4556 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _OutputIterator 26201: unique_copy(_InputIterator __first, _InputIterator __last, 26201: _OutputIterator __result, 26201: _BinaryPredicate __binary_pred) 26201: { 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: if (__first == __last) 26201: return __result; 26201: return std::__unique_copy(__first, __last, __result, 26201: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred), 26201: std::__iterator_category(__first), 26201: std::__iterator_category(__result)); 26201: } 26201: # 4590 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: inline void 26201: random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last) 26201: { 26201: 26201: 26201: 26201: ; 26201: 26201: if (__first != __last) 26201: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 26201: { 26201: 26201: _RandomAccessIterator __j = __first 26201: + std::rand() % ((__i - __first) + 1); 26201: if (__i != __j) 26201: std::iter_swap(__i, __j); 26201: } 26201: } 26201: # 4625 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: void 26201: random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, 26201: 26201: _RandomNumberGenerator&& __rand) 26201: 26201: 26201: 26201: { 26201: 26201: 26201: 26201: ; 26201: 26201: if (__first == __last) 26201: return; 26201: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 26201: { 26201: _RandomAccessIterator __j = __first + __rand((__i - __first) + 1); 26201: if (__i != __j) 26201: std::iter_swap(__i, __j); 26201: } 26201: } 26201: # 4665 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _ForwardIterator 26201: partition(_ForwardIterator __first, _ForwardIterator __last, 26201: _Predicate __pred) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: return std::__partition(__first, __last, __pred, 26201: std::__iterator_category(__first)); 26201: } 26201: # 4699 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline void 26201: partial_sort(_RandomAccessIterator __first, 26201: _RandomAccessIterator __middle, 26201: _RandomAccessIterator __last) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: 26201: std::__partial_sort(__first, __middle, __last, 26201: __gnu_cxx::__ops::__iter_less_iter()); 26201: } 26201: # 4738 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline void 26201: partial_sort(_RandomAccessIterator __first, 26201: _RandomAccessIterator __middle, 26201: _RandomAccessIterator __last, 26201: _Compare __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: 26201: std::__partial_sort(__first, __middle, __last, 26201: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 26201: } 26201: # 4775 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline void 26201: nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, 26201: _RandomAccessIterator __last) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: 26201: if (__first == __last || __nth == __last) 26201: return; 26201: 26201: std::__introselect(__first, __nth, __last, 26201: std::__lg(__last - __first) * 2, 26201: __gnu_cxx::__ops::__iter_less_iter()); 26201: } 26201: # 4815 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline void 26201: nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, 26201: _RandomAccessIterator __last, _Compare __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: 26201: if (__first == __last || __nth == __last) 26201: return; 26201: 26201: std::__introselect(__first, __nth, __last, 26201: std::__lg(__last - __first) * 2, 26201: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 26201: } 26201: # 4853 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline void 26201: sort(_RandomAccessIterator __first, _RandomAccessIterator __last) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: std::__sort(__first, __last, __gnu_cxx::__ops::__iter_less_iter()); 26201: } 26201: # 4884 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline void 26201: sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 26201: _Compare __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); 26201: } 26201: 26201: template 26201: 26201: _OutputIterator 26201: __merge(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _InputIterator2 __last2, 26201: _OutputIterator __result, _Compare __comp) 26201: { 26201: while (__first1 != __last1 && __first2 != __last2) 26201: { 26201: if (__comp(__first2, __first1)) 26201: { 26201: *__result = *__first2; 26201: ++__first2; 26201: } 26201: else 26201: { 26201: *__result = *__first1; 26201: ++__first1; 26201: } 26201: ++__result; 26201: } 26201: return std::copy(__first2, __last2, 26201: std::copy(__first1, __last1, __result)); 26201: } 26201: # 4947 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _OutputIterator 26201: merge(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _InputIterator2 __last2, 26201: _OutputIterator __result) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: ; 26201: 26201: return std::__merge(__first1, __last1, 26201: __first2, __last2, __result, 26201: __gnu_cxx::__ops::__iter_less_iter()); 26201: } 26201: # 4998 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _OutputIterator 26201: merge(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _InputIterator2 __last2, 26201: _OutputIterator __result, _Compare __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: ; 26201: 26201: return std::__merge(__first1, __last1, 26201: __first2, __last2, __result, 26201: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 26201: } 26201: 26201: template 26201: inline void 26201: __stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 26201: _Compare __comp) 26201: { 26201: typedef typename iterator_traits<_RandomAccessIterator>::value_type 26201: _ValueType; 26201: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 26201: _DistanceType; 26201: 26201: typedef _Temporary_buffer<_RandomAccessIterator, _ValueType> _TmpBuf; 26201: _TmpBuf __buf(__first, std::distance(__first, __last)); 26201: 26201: if (__buf.begin() == 0) 26201: std::__inplace_stable_sort(__first, __last, __comp); 26201: else 26201: std::__stable_sort_adaptive(__first, __last, __buf.begin(), 26201: _DistanceType(__buf.size()), __comp); 26201: } 26201: # 5063 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: inline void 26201: stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: std::__stable_sort(__first, __last, 26201: __gnu_cxx::__ops::__iter_less_iter()); 26201: } 26201: # 5097 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: inline void 26201: stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 26201: _Compare __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: std::__stable_sort(__first, __last, 26201: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 26201: } 26201: 26201: template 26201: 26201: _OutputIterator 26201: __set_union(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _InputIterator2 __last2, 26201: _OutputIterator __result, _Compare __comp) 26201: { 26201: while (__first1 != __last1 && __first2 != __last2) 26201: { 26201: if (__comp(__first1, __first2)) 26201: { 26201: *__result = *__first1; 26201: ++__first1; 26201: } 26201: else if (__comp(__first2, __first1)) 26201: { 26201: *__result = *__first2; 26201: ++__first2; 26201: } 26201: else 26201: { 26201: *__result = *__first1; 26201: ++__first1; 26201: ++__first2; 26201: } 26201: ++__result; 26201: } 26201: return std::copy(__first2, __last2, 26201: std::copy(__first1, __last1, __result)); 26201: } 26201: # 5167 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _OutputIterator 26201: set_union(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _InputIterator2 __last2, 26201: _OutputIterator __result) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: ; 26201: 26201: return std::__set_union(__first1, __last1, 26201: __first2, __last2, __result, 26201: __gnu_cxx::__ops::__iter_less_iter()); 26201: } 26201: # 5218 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _OutputIterator 26201: set_union(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _InputIterator2 __last2, 26201: _OutputIterator __result, _Compare __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: ; 26201: 26201: return std::__set_union(__first1, __last1, 26201: __first2, __last2, __result, 26201: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 26201: } 26201: 26201: template 26201: 26201: _OutputIterator 26201: __set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _InputIterator2 __last2, 26201: _OutputIterator __result, _Compare __comp) 26201: { 26201: while (__first1 != __last1 && __first2 != __last2) 26201: if (__comp(__first1, __first2)) 26201: ++__first1; 26201: else if (__comp(__first2, __first1)) 26201: ++__first2; 26201: else 26201: { 26201: *__result = *__first1; 26201: ++__first1; 26201: ++__first2; 26201: ++__result; 26201: } 26201: return __result; 26201: } 26201: # 5291 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _OutputIterator 26201: set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _InputIterator2 __last2, 26201: _OutputIterator __result) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: ; 26201: 26201: return std::__set_intersection(__first1, __last1, 26201: __first2, __last2, __result, 26201: __gnu_cxx::__ops::__iter_less_iter()); 26201: } 26201: # 5341 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _OutputIterator 26201: set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _InputIterator2 __last2, 26201: _OutputIterator __result, _Compare __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: ; 26201: 26201: return std::__set_intersection(__first1, __last1, 26201: __first2, __last2, __result, 26201: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 26201: } 26201: 26201: template 26201: 26201: _OutputIterator 26201: __set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _InputIterator2 __last2, 26201: _OutputIterator __result, _Compare __comp) 26201: { 26201: while (__first1 != __last1 && __first2 != __last2) 26201: if (__comp(__first1, __first2)) 26201: { 26201: *__result = *__first1; 26201: ++__first1; 26201: ++__result; 26201: } 26201: else if (__comp(__first2, __first1)) 26201: ++__first2; 26201: else 26201: { 26201: ++__first1; 26201: ++__first2; 26201: } 26201: return std::copy(__first1, __last1, __result); 26201: } 26201: # 5416 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _OutputIterator 26201: set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _InputIterator2 __last2, 26201: _OutputIterator __result) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: ; 26201: 26201: return std::__set_difference(__first1, __last1, 26201: __first2, __last2, __result, 26201: __gnu_cxx::__ops::__iter_less_iter()); 26201: } 26201: # 5468 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _OutputIterator 26201: set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _InputIterator2 __last2, 26201: _OutputIterator __result, _Compare __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: ; 26201: 26201: return std::__set_difference(__first1, __last1, 26201: __first2, __last2, __result, 26201: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 26201: } 26201: 26201: template 26201: 26201: _OutputIterator 26201: __set_symmetric_difference(_InputIterator1 __first1, 26201: _InputIterator1 __last1, 26201: _InputIterator2 __first2, 26201: _InputIterator2 __last2, 26201: _OutputIterator __result, 26201: _Compare __comp) 26201: { 26201: while (__first1 != __last1 && __first2 != __last2) 26201: if (__comp(__first1, __first2)) 26201: { 26201: *__result = *__first1; 26201: ++__first1; 26201: ++__result; 26201: } 26201: else if (__comp(__first2, __first1)) 26201: { 26201: *__result = *__first2; 26201: ++__first2; 26201: ++__result; 26201: } 26201: else 26201: { 26201: ++__first1; 26201: ++__first2; 26201: } 26201: return std::copy(__first2, __last2, 26201: std::copy(__first1, __last1, __result)); 26201: } 26201: # 5549 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _OutputIterator 26201: set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _InputIterator2 __last2, 26201: _OutputIterator __result) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: ; 26201: 26201: return std::__set_symmetric_difference(__first1, __last1, 26201: __first2, __last2, __result, 26201: __gnu_cxx::__ops::__iter_less_iter()); 26201: } 26201: # 5601 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: 26201: inline _OutputIterator 26201: set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _InputIterator2 __last2, 26201: _OutputIterator __result, 26201: _Compare __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: ; 26201: ; 26201: 26201: return std::__set_symmetric_difference(__first1, __last1, 26201: __first2, __last2, __result, 26201: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 26201: } 26201: 26201: template 26201: constexpr 26201: _ForwardIterator 26201: __min_element(_ForwardIterator __first, _ForwardIterator __last, 26201: _Compare __comp) 26201: { 26201: if (__first == __last) 26201: return __first; 26201: _ForwardIterator __result = __first; 26201: while (++__first != __last) 26201: if (__comp(__first, __result)) 26201: __result = __first; 26201: return __result; 26201: } 26201: # 5655 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: constexpr 26201: _ForwardIterator 26201: inline min_element(_ForwardIterator __first, _ForwardIterator __last) 26201: { 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__min_element(__first, __last, 26201: __gnu_cxx::__ops::__iter_less_iter()); 26201: } 26201: # 5680 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: constexpr 26201: inline _ForwardIterator 26201: min_element(_ForwardIterator __first, _ForwardIterator __last, 26201: _Compare __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__min_element(__first, __last, 26201: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 26201: } 26201: 26201: template 26201: constexpr 26201: _ForwardIterator 26201: __max_element(_ForwardIterator __first, _ForwardIterator __last, 26201: _Compare __comp) 26201: { 26201: if (__first == __last) return __first; 26201: _ForwardIterator __result = __first; 26201: while (++__first != __last) 26201: if (__comp(__result, __first)) 26201: __result = __first; 26201: return __result; 26201: } 26201: # 5719 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: constexpr 26201: inline _ForwardIterator 26201: max_element(_ForwardIterator __first, _ForwardIterator __last) 26201: { 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__max_element(__first, __last, 26201: __gnu_cxx::__ops::__iter_less_iter()); 26201: } 26201: # 5744 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_algo.h" 3 26201: template 26201: constexpr 26201: inline _ForwardIterator 26201: max_element(_ForwardIterator __first, _ForwardIterator __last, 26201: _Compare __comp) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: ; 26201: 26201: return std::__max_element(__first, __last, 26201: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 26201: } 26201: 26201: 26201: 26201: template 26201: _RandomAccessIterator 26201: __sample(_InputIterator __first, _InputIterator __last, input_iterator_tag, 26201: _RandomAccessIterator __out, random_access_iterator_tag, 26201: _Size __n, _UniformRandomBitGenerator&& __g) 26201: { 26201: using __distrib_type = uniform_int_distribution<_Size>; 26201: using __param_type = typename __distrib_type::param_type; 26201: __distrib_type __d{}; 26201: _Size __sample_sz = 0; 26201: while (__first != __last && __sample_sz != __n) 26201: { 26201: __out[__sample_sz++] = *__first; 26201: ++__first; 26201: } 26201: for (auto __pop_sz = __sample_sz; __first != __last; 26201: ++__first, (void) ++__pop_sz) 26201: { 26201: const auto __k = __d(__g, __param_type{0, __pop_sz}); 26201: if (__k < __n) 26201: __out[__k] = *__first; 26201: } 26201: return __out + __sample_sz; 26201: } 26201: 26201: 26201: template 26201: _OutputIterator 26201: __sample(_ForwardIterator __first, _ForwardIterator __last, 26201: forward_iterator_tag, 26201: _OutputIterator __out, _Cat, 26201: _Size __n, _UniformRandomBitGenerator&& __g) 26201: { 26201: using __distrib_type = uniform_int_distribution<_Size>; 26201: using __param_type = typename __distrib_type::param_type; 26201: using _USize = make_unsigned_t<_Size>; 26201: using _Gen = remove_reference_t<_UniformRandomBitGenerator>; 26201: using __uc_type = common_type_t; 26201: 26201: if (__first == __last) 26201: return __out; 26201: 26201: __distrib_type __d{}; 26201: _Size __unsampled_sz = std::distance(__first, __last); 26201: __n = std::min(__n, __unsampled_sz); 26201: 26201: 26201: 26201: 26201: const __uc_type __urngrange = __g.max() - __g.min(); 26201: if (__urngrange / __uc_type(__unsampled_sz) >= __uc_type(__unsampled_sz)) 26201: 26201: 26201: { 26201: while (__n != 0 && __unsampled_sz >= 2) 26201: { 26201: const pair<_Size, _Size> __p = 26201: __gen_two_uniform_ints(__unsampled_sz, __unsampled_sz - 1, __g); 26201: 26201: --__unsampled_sz; 26201: if (__p.first < __n) 26201: { 26201: *__out++ = *__first; 26201: --__n; 26201: } 26201: 26201: ++__first; 26201: 26201: if (__n == 0) break; 26201: 26201: --__unsampled_sz; 26201: if (__p.second < __n) 26201: { 26201: *__out++ = *__first; 26201: --__n; 26201: } 26201: 26201: ++__first; 26201: } 26201: } 26201: 26201: 26201: 26201: for (; __n != 0; ++__first) 26201: if (__d(__g, __param_type{0, --__unsampled_sz}) < __n) 26201: { 26201: *__out++ = *__first; 26201: --__n; 26201: } 26201: return __out; 26201: } 26201: 26201: 26201: #define __cpp_lib_sample 201603 26201: 26201: template 26201: _SampleIterator 26201: sample(_PopulationIterator __first, _PopulationIterator __last, 26201: _SampleIterator __out, _Distance __n, 26201: _UniformRandomBitGenerator&& __g) 26201: { 26201: using __pop_cat = typename 26201: std::iterator_traits<_PopulationIterator>::iterator_category; 26201: using __samp_cat = typename 26201: std::iterator_traits<_SampleIterator>::iterator_category; 26201: 26201: static_assert( 26201: __or_, 26201: is_convertible<__samp_cat, random_access_iterator_tag>>::value, 26201: "output range must use a RandomAccessIterator when input range" 26201: " does not meet the ForwardIterator requirements"); 26201: 26201: static_assert(is_integral<_Distance>::value, 26201: "sample size must be an integer type"); 26201: 26201: typename iterator_traits<_PopulationIterator>::difference_type __d = __n; 26201: return std:: 26201: __sample(__first, __last, __pop_cat{}, __out, __samp_cat{}, __d, 26201: std::forward<_UniformRandomBitGenerator>(__g)); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 63 "/usr/x86_64-linux-gnu/include/c++/10/algorithm" 2 3 26201: # 74 "/usr/x86_64-linux-gnu/include/c++/10/algorithm" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/pstl/glue_algorithm_defs.h" 1 3 26201: # 11 "/usr/x86_64-linux-gnu/include/c++/10/pstl/glue_algorithm_defs.h" 3 26201: #define _PSTL_GLUE_ALGORITHM_DEFS_H 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/functional" 1 3 26201: # 44 "/usr/x86_64-linux-gnu/include/c++/10/functional" 3 26201: #define _GLIBCXX_FUNCTIONAL 1 26201: 26201: 26201: # 47 "/usr/x86_64-linux-gnu/include/c++/10/functional" 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_function.h" 1 3 26201: # 57 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_function.h" 3 26201: #define _STL_FUNCTION_H 1 26201: 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 104 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_function.h" 3 26201: template 26201: struct unary_function 26201: { 26201: 26201: typedef _Arg argument_type; 26201: 26201: 26201: typedef _Result result_type; 26201: }; 26201: 26201: 26201: 26201: 26201: template 26201: struct binary_function 26201: { 26201: 26201: typedef _Arg1 first_argument_type; 26201: 26201: 26201: typedef _Arg2 second_argument_type; 26201: 26201: 26201: typedef _Result result_type; 26201: }; 26201: # 144 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_function.h" 3 26201: struct __is_transparent; 26201: 26201: template 26201: struct plus; 26201: 26201: template 26201: struct minus; 26201: 26201: template 26201: struct multiplies; 26201: 26201: template 26201: struct divides; 26201: 26201: template 26201: struct modulus; 26201: 26201: template 26201: struct negate; 26201: 26201: 26201: 26201: template 26201: struct plus : public binary_function<_Tp, _Tp, _Tp> 26201: { 26201: constexpr 26201: _Tp 26201: operator()(const _Tp& __x, const _Tp& __y) const 26201: { return __x + __y; } 26201: }; 26201: 26201: 26201: template 26201: struct minus : public binary_function<_Tp, _Tp, _Tp> 26201: { 26201: constexpr 26201: _Tp 26201: operator()(const _Tp& __x, const _Tp& __y) const 26201: { return __x - __y; } 26201: }; 26201: 26201: 26201: template 26201: struct multiplies : public binary_function<_Tp, _Tp, _Tp> 26201: { 26201: constexpr 26201: _Tp 26201: operator()(const _Tp& __x, const _Tp& __y) const 26201: { return __x * __y; } 26201: }; 26201: 26201: 26201: template 26201: struct divides : public binary_function<_Tp, _Tp, _Tp> 26201: { 26201: constexpr 26201: _Tp 26201: operator()(const _Tp& __x, const _Tp& __y) const 26201: { return __x / __y; } 26201: }; 26201: 26201: 26201: template 26201: struct modulus : public binary_function<_Tp, _Tp, _Tp> 26201: { 26201: constexpr 26201: _Tp 26201: operator()(const _Tp& __x, const _Tp& __y) const 26201: { return __x % __y; } 26201: }; 26201: 26201: 26201: template 26201: struct negate : public unary_function<_Tp, _Tp> 26201: { 26201: constexpr 26201: _Tp 26201: operator()(const _Tp& __x) const 26201: { return -__x; } 26201: }; 26201: 26201: 26201: 26201: #define __cpp_lib_transparent_operators 201510 26201: 26201: template<> 26201: struct plus 26201: { 26201: template 26201: constexpr 26201: auto 26201: operator()(_Tp&& __t, _Up&& __u) const 26201: noexcept(noexcept(std::forward<_Tp>(__t) + std::forward<_Up>(__u))) 26201: -> decltype(std::forward<_Tp>(__t) + std::forward<_Up>(__u)) 26201: { return std::forward<_Tp>(__t) + std::forward<_Up>(__u); } 26201: 26201: typedef __is_transparent is_transparent; 26201: }; 26201: 26201: 26201: template<> 26201: struct minus 26201: { 26201: template 26201: constexpr 26201: auto 26201: operator()(_Tp&& __t, _Up&& __u) const 26201: noexcept(noexcept(std::forward<_Tp>(__t) - std::forward<_Up>(__u))) 26201: -> decltype(std::forward<_Tp>(__t) - std::forward<_Up>(__u)) 26201: { return std::forward<_Tp>(__t) - std::forward<_Up>(__u); } 26201: 26201: typedef __is_transparent is_transparent; 26201: }; 26201: 26201: 26201: template<> 26201: struct multiplies 26201: { 26201: template 26201: constexpr 26201: auto 26201: operator()(_Tp&& __t, _Up&& __u) const 26201: noexcept(noexcept(std::forward<_Tp>(__t) * std::forward<_Up>(__u))) 26201: -> decltype(std::forward<_Tp>(__t) * std::forward<_Up>(__u)) 26201: { return std::forward<_Tp>(__t) * std::forward<_Up>(__u); } 26201: 26201: typedef __is_transparent is_transparent; 26201: }; 26201: 26201: 26201: template<> 26201: struct divides 26201: { 26201: template 26201: constexpr 26201: auto 26201: operator()(_Tp&& __t, _Up&& __u) const 26201: noexcept(noexcept(std::forward<_Tp>(__t) / std::forward<_Up>(__u))) 26201: -> decltype(std::forward<_Tp>(__t) / std::forward<_Up>(__u)) 26201: { return std::forward<_Tp>(__t) / std::forward<_Up>(__u); } 26201: 26201: typedef __is_transparent is_transparent; 26201: }; 26201: 26201: 26201: template<> 26201: struct modulus 26201: { 26201: template 26201: constexpr 26201: auto 26201: operator()(_Tp&& __t, _Up&& __u) const 26201: noexcept(noexcept(std::forward<_Tp>(__t) % std::forward<_Up>(__u))) 26201: -> decltype(std::forward<_Tp>(__t) % std::forward<_Up>(__u)) 26201: { return std::forward<_Tp>(__t) % std::forward<_Up>(__u); } 26201: 26201: typedef __is_transparent is_transparent; 26201: }; 26201: 26201: 26201: template<> 26201: struct negate 26201: { 26201: template 26201: constexpr 26201: auto 26201: operator()(_Tp&& __t) const 26201: noexcept(noexcept(-std::forward<_Tp>(__t))) 26201: -> decltype(-std::forward<_Tp>(__t)) 26201: { return -std::forward<_Tp>(__t); } 26201: 26201: typedef __is_transparent is_transparent; 26201: }; 26201: # 330 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_function.h" 3 26201: template 26201: struct equal_to; 26201: 26201: template 26201: struct not_equal_to; 26201: 26201: template 26201: struct greater; 26201: 26201: template 26201: struct less; 26201: 26201: template 26201: struct greater_equal; 26201: 26201: template 26201: struct less_equal; 26201: 26201: 26201: 26201: template 26201: struct equal_to : public binary_function<_Tp, _Tp, bool> 26201: { 26201: constexpr 26201: bool 26201: operator()(const _Tp& __x, const _Tp& __y) const 26201: { return __x == __y; } 26201: }; 26201: 26201: 26201: template 26201: struct not_equal_to : public binary_function<_Tp, _Tp, bool> 26201: { 26201: constexpr 26201: bool 26201: operator()(const _Tp& __x, const _Tp& __y) const 26201: { return __x != __y; } 26201: }; 26201: 26201: 26201: template 26201: struct greater : public binary_function<_Tp, _Tp, bool> 26201: { 26201: constexpr 26201: bool 26201: operator()(const _Tp& __x, const _Tp& __y) const 26201: { return __x > __y; } 26201: }; 26201: 26201: 26201: template 26201: struct less : public binary_function<_Tp, _Tp, bool> 26201: { 26201: constexpr 26201: bool 26201: operator()(const _Tp& __x, const _Tp& __y) const 26201: { return __x < __y; } 26201: }; 26201: 26201: 26201: template 26201: struct greater_equal : public binary_function<_Tp, _Tp, bool> 26201: { 26201: constexpr 26201: bool 26201: operator()(const _Tp& __x, const _Tp& __y) const 26201: { return __x >= __y; } 26201: }; 26201: 26201: 26201: template 26201: struct less_equal : public binary_function<_Tp, _Tp, bool> 26201: { 26201: constexpr 26201: bool 26201: operator()(const _Tp& __x, const _Tp& __y) const 26201: { return __x <= __y; } 26201: }; 26201: 26201: 26201: template 26201: struct greater<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 26201: { 26201: constexpr bool 26201: operator()(_Tp* __x, _Tp* __y) const noexcept 26201: { 26201: 26201: 26201: if (__builtin_is_constant_evaluated()) 26201: 26201: 26201: 26201: return __x > __y; 26201: 26201: return (long unsigned int)__x > (long unsigned int)__y; 26201: } 26201: }; 26201: 26201: 26201: template 26201: struct less<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 26201: { 26201: constexpr bool 26201: operator()(_Tp* __x, _Tp* __y) const noexcept 26201: { 26201: 26201: 26201: if (__builtin_is_constant_evaluated()) 26201: 26201: 26201: 26201: return __x < __y; 26201: 26201: return (long unsigned int)__x < (long unsigned int)__y; 26201: } 26201: }; 26201: 26201: 26201: template 26201: struct greater_equal<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 26201: { 26201: constexpr bool 26201: operator()(_Tp* __x, _Tp* __y) const noexcept 26201: { 26201: 26201: 26201: if (__builtin_is_constant_evaluated()) 26201: 26201: 26201: 26201: return __x >= __y; 26201: 26201: return (long unsigned int)__x >= (long unsigned int)__y; 26201: } 26201: }; 26201: 26201: 26201: template 26201: struct less_equal<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 26201: { 26201: constexpr bool 26201: operator()(_Tp* __x, _Tp* __y) const noexcept 26201: { 26201: 26201: 26201: if (__builtin_is_constant_evaluated()) 26201: 26201: 26201: 26201: return __x <= __y; 26201: 26201: return (long unsigned int)__x <= (long unsigned int)__y; 26201: } 26201: }; 26201: 26201: 26201: 26201: template<> 26201: struct equal_to 26201: { 26201: template 26201: constexpr auto 26201: operator()(_Tp&& __t, _Up&& __u) const 26201: noexcept(noexcept(std::forward<_Tp>(__t) == std::forward<_Up>(__u))) 26201: -> decltype(std::forward<_Tp>(__t) == std::forward<_Up>(__u)) 26201: { return std::forward<_Tp>(__t) == std::forward<_Up>(__u); } 26201: 26201: typedef __is_transparent is_transparent; 26201: }; 26201: 26201: 26201: template<> 26201: struct not_equal_to 26201: { 26201: template 26201: constexpr auto 26201: operator()(_Tp&& __t, _Up&& __u) const 26201: noexcept(noexcept(std::forward<_Tp>(__t) != std::forward<_Up>(__u))) 26201: -> decltype(std::forward<_Tp>(__t) != std::forward<_Up>(__u)) 26201: { return std::forward<_Tp>(__t) != std::forward<_Up>(__u); } 26201: 26201: typedef __is_transparent is_transparent; 26201: }; 26201: 26201: 26201: template<> 26201: struct greater 26201: { 26201: template 26201: constexpr auto 26201: operator()(_Tp&& __t, _Up&& __u) const 26201: noexcept(noexcept(std::forward<_Tp>(__t) > std::forward<_Up>(__u))) 26201: -> decltype(std::forward<_Tp>(__t) > std::forward<_Up>(__u)) 26201: { 26201: return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u), 26201: __ptr_cmp<_Tp, _Up>{}); 26201: } 26201: 26201: template 26201: constexpr bool 26201: operator()(_Tp* __t, _Up* __u) const noexcept 26201: { return greater>{}(__t, __u); } 26201: 26201: typedef __is_transparent is_transparent; 26201: 26201: private: 26201: template 26201: static constexpr decltype(auto) 26201: _S_cmp(_Tp&& __t, _Up&& __u, false_type) 26201: { return std::forward<_Tp>(__t) > std::forward<_Up>(__u); } 26201: 26201: template 26201: static constexpr bool 26201: _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept 26201: { 26201: return greater{}( 26201: static_cast(std::forward<_Tp>(__t)), 26201: static_cast(std::forward<_Up>(__u))); 26201: } 26201: 26201: 26201: template 26201: struct __not_overloaded2 : true_type { }; 26201: 26201: 26201: template 26201: struct __not_overloaded2<_Tp, _Up, __void_t< 26201: decltype(std::declval<_Tp>().operator>(std::declval<_Up>()))>> 26201: : false_type { }; 26201: 26201: 26201: template 26201: struct __not_overloaded : __not_overloaded2<_Tp, _Up> { }; 26201: 26201: 26201: template 26201: struct __not_overloaded<_Tp, _Up, __void_t< 26201: decltype(operator>(std::declval<_Tp>(), std::declval<_Up>()))>> 26201: : false_type { }; 26201: 26201: template 26201: using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>, 26201: is_convertible<_Tp, const volatile void*>, 26201: is_convertible<_Up, const volatile void*>>; 26201: }; 26201: 26201: 26201: template<> 26201: struct less 26201: { 26201: template 26201: constexpr auto 26201: operator()(_Tp&& __t, _Up&& __u) const 26201: noexcept(noexcept(std::forward<_Tp>(__t) < std::forward<_Up>(__u))) 26201: -> decltype(std::forward<_Tp>(__t) < std::forward<_Up>(__u)) 26201: { 26201: return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u), 26201: __ptr_cmp<_Tp, _Up>{}); 26201: } 26201: 26201: template 26201: constexpr bool 26201: operator()(_Tp* __t, _Up* __u) const noexcept 26201: { return less>{}(__t, __u); } 26201: 26201: typedef __is_transparent is_transparent; 26201: 26201: private: 26201: template 26201: static constexpr decltype(auto) 26201: _S_cmp(_Tp&& __t, _Up&& __u, false_type) 26201: { return std::forward<_Tp>(__t) < std::forward<_Up>(__u); } 26201: 26201: template 26201: static constexpr bool 26201: _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept 26201: { 26201: return less{}( 26201: static_cast(std::forward<_Tp>(__t)), 26201: static_cast(std::forward<_Up>(__u))); 26201: } 26201: 26201: 26201: template 26201: struct __not_overloaded2 : true_type { }; 26201: 26201: 26201: template 26201: struct __not_overloaded2<_Tp, _Up, __void_t< 26201: decltype(std::declval<_Tp>().operator<(std::declval<_Up>()))>> 26201: : false_type { }; 26201: 26201: 26201: template 26201: struct __not_overloaded : __not_overloaded2<_Tp, _Up> { }; 26201: 26201: 26201: template 26201: struct __not_overloaded<_Tp, _Up, __void_t< 26201: decltype(operator<(std::declval<_Tp>(), std::declval<_Up>()))>> 26201: : false_type { }; 26201: 26201: template 26201: using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>, 26201: is_convertible<_Tp, const volatile void*>, 26201: is_convertible<_Up, const volatile void*>>; 26201: }; 26201: 26201: 26201: template<> 26201: struct greater_equal 26201: { 26201: template 26201: constexpr auto 26201: operator()(_Tp&& __t, _Up&& __u) const 26201: noexcept(noexcept(std::forward<_Tp>(__t) >= std::forward<_Up>(__u))) 26201: -> decltype(std::forward<_Tp>(__t) >= std::forward<_Up>(__u)) 26201: { 26201: return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u), 26201: __ptr_cmp<_Tp, _Up>{}); 26201: } 26201: 26201: template 26201: constexpr bool 26201: operator()(_Tp* __t, _Up* __u) const noexcept 26201: { return greater_equal>{}(__t, __u); } 26201: 26201: typedef __is_transparent is_transparent; 26201: 26201: private: 26201: template 26201: static constexpr decltype(auto) 26201: _S_cmp(_Tp&& __t, _Up&& __u, false_type) 26201: { return std::forward<_Tp>(__t) >= std::forward<_Up>(__u); } 26201: 26201: template 26201: static constexpr bool 26201: _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept 26201: { 26201: return greater_equal{}( 26201: static_cast(std::forward<_Tp>(__t)), 26201: static_cast(std::forward<_Up>(__u))); 26201: } 26201: 26201: 26201: template 26201: struct __not_overloaded2 : true_type { }; 26201: 26201: 26201: template 26201: struct __not_overloaded2<_Tp, _Up, __void_t< 26201: decltype(std::declval<_Tp>().operator>=(std::declval<_Up>()))>> 26201: : false_type { }; 26201: 26201: 26201: template 26201: struct __not_overloaded : __not_overloaded2<_Tp, _Up> { }; 26201: 26201: 26201: template 26201: struct __not_overloaded<_Tp, _Up, __void_t< 26201: decltype(operator>=(std::declval<_Tp>(), std::declval<_Up>()))>> 26201: : false_type { }; 26201: 26201: template 26201: using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>, 26201: is_convertible<_Tp, const volatile void*>, 26201: is_convertible<_Up, const volatile void*>>; 26201: }; 26201: 26201: 26201: template<> 26201: struct less_equal 26201: { 26201: template 26201: constexpr auto 26201: operator()(_Tp&& __t, _Up&& __u) const 26201: noexcept(noexcept(std::forward<_Tp>(__t) <= std::forward<_Up>(__u))) 26201: -> decltype(std::forward<_Tp>(__t) <= std::forward<_Up>(__u)) 26201: { 26201: return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u), 26201: __ptr_cmp<_Tp, _Up>{}); 26201: } 26201: 26201: template 26201: constexpr bool 26201: operator()(_Tp* __t, _Up* __u) const noexcept 26201: { return less_equal>{}(__t, __u); } 26201: 26201: typedef __is_transparent is_transparent; 26201: 26201: private: 26201: template 26201: static constexpr decltype(auto) 26201: _S_cmp(_Tp&& __t, _Up&& __u, false_type) 26201: { return std::forward<_Tp>(__t) <= std::forward<_Up>(__u); } 26201: 26201: template 26201: static constexpr bool 26201: _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept 26201: { 26201: return less_equal{}( 26201: static_cast(std::forward<_Tp>(__t)), 26201: static_cast(std::forward<_Up>(__u))); 26201: } 26201: 26201: 26201: template 26201: struct __not_overloaded2 : true_type { }; 26201: 26201: 26201: template 26201: struct __not_overloaded2<_Tp, _Up, __void_t< 26201: decltype(std::declval<_Tp>().operator<=(std::declval<_Up>()))>> 26201: : false_type { }; 26201: 26201: 26201: template 26201: struct __not_overloaded : __not_overloaded2<_Tp, _Up> { }; 26201: 26201: 26201: template 26201: struct __not_overloaded<_Tp, _Up, __void_t< 26201: decltype(operator<=(std::declval<_Tp>(), std::declval<_Up>()))>> 26201: : false_type { }; 26201: 26201: template 26201: using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>, 26201: is_convertible<_Tp, const volatile void*>, 26201: is_convertible<_Up, const volatile void*>>; 26201: }; 26201: # 774 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_function.h" 3 26201: template 26201: struct logical_and; 26201: 26201: template 26201: struct logical_or; 26201: 26201: template 26201: struct logical_not; 26201: 26201: 26201: 26201: template 26201: struct logical_and : public binary_function<_Tp, _Tp, bool> 26201: { 26201: constexpr 26201: bool 26201: operator()(const _Tp& __x, const _Tp& __y) const 26201: { return __x && __y; } 26201: }; 26201: 26201: 26201: template 26201: struct logical_or : public binary_function<_Tp, _Tp, bool> 26201: { 26201: constexpr 26201: bool 26201: operator()(const _Tp& __x, const _Tp& __y) const 26201: { return __x || __y; } 26201: }; 26201: 26201: 26201: template 26201: struct logical_not : public unary_function<_Tp, bool> 26201: { 26201: constexpr 26201: bool 26201: operator()(const _Tp& __x) const 26201: { return !__x; } 26201: }; 26201: 26201: 26201: 26201: template<> 26201: struct logical_and 26201: { 26201: template 26201: constexpr 26201: auto 26201: operator()(_Tp&& __t, _Up&& __u) const 26201: noexcept(noexcept(std::forward<_Tp>(__t) && std::forward<_Up>(__u))) 26201: -> decltype(std::forward<_Tp>(__t) && std::forward<_Up>(__u)) 26201: { return std::forward<_Tp>(__t) && std::forward<_Up>(__u); } 26201: 26201: typedef __is_transparent is_transparent; 26201: }; 26201: 26201: 26201: template<> 26201: struct logical_or 26201: { 26201: template 26201: constexpr 26201: auto 26201: operator()(_Tp&& __t, _Up&& __u) const 26201: noexcept(noexcept(std::forward<_Tp>(__t) || std::forward<_Up>(__u))) 26201: -> decltype(std::forward<_Tp>(__t) || std::forward<_Up>(__u)) 26201: { return std::forward<_Tp>(__t) || std::forward<_Up>(__u); } 26201: 26201: typedef __is_transparent is_transparent; 26201: }; 26201: 26201: 26201: template<> 26201: struct logical_not 26201: { 26201: template 26201: constexpr 26201: auto 26201: operator()(_Tp&& __t) const 26201: noexcept(noexcept(!std::forward<_Tp>(__t))) 26201: -> decltype(!std::forward<_Tp>(__t)) 26201: { return !std::forward<_Tp>(__t); } 26201: 26201: typedef __is_transparent is_transparent; 26201: }; 26201: 26201: 26201: 26201: 26201: template 26201: struct bit_and; 26201: 26201: template 26201: struct bit_or; 26201: 26201: template 26201: struct bit_xor; 26201: 26201: template 26201: struct bit_not; 26201: 26201: 26201: 26201: 26201: template 26201: struct bit_and : public binary_function<_Tp, _Tp, _Tp> 26201: { 26201: constexpr 26201: _Tp 26201: operator()(const _Tp& __x, const _Tp& __y) const 26201: { return __x & __y; } 26201: }; 26201: 26201: template 26201: struct bit_or : public binary_function<_Tp, _Tp, _Tp> 26201: { 26201: constexpr 26201: _Tp 26201: operator()(const _Tp& __x, const _Tp& __y) const 26201: { return __x | __y; } 26201: }; 26201: 26201: template 26201: struct bit_xor : public binary_function<_Tp, _Tp, _Tp> 26201: { 26201: constexpr 26201: _Tp 26201: operator()(const _Tp& __x, const _Tp& __y) const 26201: { return __x ^ __y; } 26201: }; 26201: 26201: template 26201: struct bit_not : public unary_function<_Tp, _Tp> 26201: { 26201: constexpr 26201: _Tp 26201: operator()(const _Tp& __x) const 26201: { return ~__x; } 26201: }; 26201: 26201: 26201: template <> 26201: struct bit_and 26201: { 26201: template 26201: constexpr 26201: auto 26201: operator()(_Tp&& __t, _Up&& __u) const 26201: noexcept(noexcept(std::forward<_Tp>(__t) & std::forward<_Up>(__u))) 26201: -> decltype(std::forward<_Tp>(__t) & std::forward<_Up>(__u)) 26201: { return std::forward<_Tp>(__t) & std::forward<_Up>(__u); } 26201: 26201: typedef __is_transparent is_transparent; 26201: }; 26201: 26201: template <> 26201: struct bit_or 26201: { 26201: template 26201: constexpr 26201: auto 26201: operator()(_Tp&& __t, _Up&& __u) const 26201: noexcept(noexcept(std::forward<_Tp>(__t) | std::forward<_Up>(__u))) 26201: -> decltype(std::forward<_Tp>(__t) | std::forward<_Up>(__u)) 26201: { return std::forward<_Tp>(__t) | std::forward<_Up>(__u); } 26201: 26201: typedef __is_transparent is_transparent; 26201: }; 26201: 26201: template <> 26201: struct bit_xor 26201: { 26201: template 26201: constexpr 26201: auto 26201: operator()(_Tp&& __t, _Up&& __u) const 26201: noexcept(noexcept(std::forward<_Tp>(__t) ^ std::forward<_Up>(__u))) 26201: -> decltype(std::forward<_Tp>(__t) ^ std::forward<_Up>(__u)) 26201: { return std::forward<_Tp>(__t) ^ std::forward<_Up>(__u); } 26201: 26201: typedef __is_transparent is_transparent; 26201: }; 26201: 26201: template <> 26201: struct bit_not 26201: { 26201: template 26201: constexpr 26201: auto 26201: operator()(_Tp&& __t) const 26201: noexcept(noexcept(~std::forward<_Tp>(__t))) 26201: -> decltype(~std::forward<_Tp>(__t)) 26201: { return ~std::forward<_Tp>(__t); } 26201: 26201: typedef __is_transparent is_transparent; 26201: }; 26201: # 1002 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_function.h" 3 26201: template 26201: class unary_negate 26201: : public unary_function 26201: { 26201: protected: 26201: _Predicate _M_pred; 26201: 26201: public: 26201: constexpr 26201: explicit 26201: unary_negate(const _Predicate& __x) : _M_pred(__x) { } 26201: 26201: constexpr 26201: bool 26201: operator()(const typename _Predicate::argument_type& __x) const 26201: { return !_M_pred(__x); } 26201: }; 26201: 26201: 26201: template 26201: constexpr 26201: inline unary_negate<_Predicate> 26201: not1(const _Predicate& __pred) 26201: { return unary_negate<_Predicate>(__pred); } 26201: 26201: 26201: template 26201: class binary_negate 26201: : public binary_function 26201: { 26201: protected: 26201: _Predicate _M_pred; 26201: 26201: public: 26201: constexpr 26201: explicit 26201: binary_negate(const _Predicate& __x) : _M_pred(__x) { } 26201: 26201: constexpr 26201: bool 26201: operator()(const typename _Predicate::first_argument_type& __x, 26201: const typename _Predicate::second_argument_type& __y) const 26201: { return !_M_pred(__x, __y); } 26201: }; 26201: 26201: 26201: template 26201: constexpr 26201: inline binary_negate<_Predicate> 26201: not2(const _Predicate& __pred) 26201: { return binary_negate<_Predicate>(__pred); } 26201: # 1079 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_function.h" 3 26201: template 26201: class pointer_to_unary_function : public unary_function<_Arg, _Result> 26201: { 26201: protected: 26201: _Result (*_M_ptr)(_Arg); 26201: 26201: public: 26201: pointer_to_unary_function() { } 26201: 26201: explicit 26201: pointer_to_unary_function(_Result (*__x)(_Arg)) 26201: : _M_ptr(__x) { } 26201: 26201: _Result 26201: operator()(_Arg __x) const 26201: { return _M_ptr(__x); } 26201: }; 26201: 26201: 26201: template 26201: inline pointer_to_unary_function<_Arg, _Result> 26201: ptr_fun(_Result (*__x)(_Arg)) 26201: { return pointer_to_unary_function<_Arg, _Result>(__x); } 26201: 26201: 26201: template 26201: class pointer_to_binary_function 26201: : public binary_function<_Arg1, _Arg2, _Result> 26201: { 26201: protected: 26201: _Result (*_M_ptr)(_Arg1, _Arg2); 26201: 26201: public: 26201: pointer_to_binary_function() { } 26201: 26201: explicit 26201: pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2)) 26201: : _M_ptr(__x) { } 26201: 26201: _Result 26201: operator()(_Arg1 __x, _Arg2 __y) const 26201: { return _M_ptr(__x, __y); } 26201: }; 26201: 26201: 26201: template 26201: inline pointer_to_binary_function<_Arg1, _Arg2, _Result> 26201: ptr_fun(_Result (*__x)(_Arg1, _Arg2)) 26201: { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); } 26201: 26201: 26201: template 26201: struct _Identity 26201: : public unary_function<_Tp, _Tp> 26201: { 26201: _Tp& 26201: operator()(_Tp& __x) const 26201: { return __x; } 26201: 26201: const _Tp& 26201: operator()(const _Tp& __x) const 26201: { return __x; } 26201: }; 26201: 26201: 26201: template struct _Identity : _Identity<_Tp> { }; 26201: 26201: template 26201: struct _Select1st 26201: : public unary_function<_Pair, typename _Pair::first_type> 26201: { 26201: typename _Pair::first_type& 26201: operator()(_Pair& __x) const 26201: { return __x.first; } 26201: 26201: const typename _Pair::first_type& 26201: operator()(const _Pair& __x) const 26201: { return __x.first; } 26201: 26201: 26201: template 26201: typename _Pair2::first_type& 26201: operator()(_Pair2& __x) const 26201: { return __x.first; } 26201: 26201: template 26201: const typename _Pair2::first_type& 26201: operator()(const _Pair2& __x) const 26201: { return __x.first; } 26201: 26201: }; 26201: 26201: template 26201: struct _Select2nd 26201: : public unary_function<_Pair, typename _Pair::second_type> 26201: { 26201: typename _Pair::second_type& 26201: operator()(_Pair& __x) const 26201: { return __x.second; } 26201: 26201: const typename _Pair::second_type& 26201: operator()(const _Pair& __x) const 26201: { return __x.second; } 26201: }; 26201: # 1202 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_function.h" 3 26201: template 26201: class mem_fun_t : public unary_function<_Tp*, _Ret> 26201: { 26201: public: 26201: explicit 26201: mem_fun_t(_Ret (_Tp::*__pf)()) 26201: : _M_f(__pf) { } 26201: 26201: _Ret 26201: operator()(_Tp* __p) const 26201: { return (__p->*_M_f)(); } 26201: 26201: private: 26201: _Ret (_Tp::*_M_f)(); 26201: }; 26201: 26201: 26201: 26201: template 26201: class const_mem_fun_t : public unary_function 26201: { 26201: public: 26201: explicit 26201: const_mem_fun_t(_Ret (_Tp::*__pf)() const) 26201: : _M_f(__pf) { } 26201: 26201: _Ret 26201: operator()(const _Tp* __p) const 26201: { return (__p->*_M_f)(); } 26201: 26201: private: 26201: _Ret (_Tp::*_M_f)() const; 26201: }; 26201: 26201: 26201: 26201: template 26201: class mem_fun_ref_t : public unary_function<_Tp, _Ret> 26201: { 26201: public: 26201: explicit 26201: mem_fun_ref_t(_Ret (_Tp::*__pf)()) 26201: : _M_f(__pf) { } 26201: 26201: _Ret 26201: operator()(_Tp& __r) const 26201: { return (__r.*_M_f)(); } 26201: 26201: private: 26201: _Ret (_Tp::*_M_f)(); 26201: }; 26201: 26201: 26201: 26201: template 26201: class const_mem_fun_ref_t : public unary_function<_Tp, _Ret> 26201: { 26201: public: 26201: explicit 26201: const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const) 26201: : _M_f(__pf) { } 26201: 26201: _Ret 26201: operator()(const _Tp& __r) const 26201: { return (__r.*_M_f)(); } 26201: 26201: private: 26201: _Ret (_Tp::*_M_f)() const; 26201: }; 26201: 26201: 26201: 26201: template 26201: class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret> 26201: { 26201: public: 26201: explicit 26201: mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)) 26201: : _M_f(__pf) { } 26201: 26201: _Ret 26201: operator()(_Tp* __p, _Arg __x) const 26201: { return (__p->*_M_f)(__x); } 26201: 26201: private: 26201: _Ret (_Tp::*_M_f)(_Arg); 26201: }; 26201: 26201: 26201: 26201: template 26201: class const_mem_fun1_t : public binary_function 26201: { 26201: public: 26201: explicit 26201: const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const) 26201: : _M_f(__pf) { } 26201: 26201: _Ret 26201: operator()(const _Tp* __p, _Arg __x) const 26201: { return (__p->*_M_f)(__x); } 26201: 26201: private: 26201: _Ret (_Tp::*_M_f)(_Arg) const; 26201: }; 26201: 26201: 26201: 26201: template 26201: class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> 26201: { 26201: public: 26201: explicit 26201: mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)) 26201: : _M_f(__pf) { } 26201: 26201: _Ret 26201: operator()(_Tp& __r, _Arg __x) const 26201: { return (__r.*_M_f)(__x); } 26201: 26201: private: 26201: _Ret (_Tp::*_M_f)(_Arg); 26201: }; 26201: 26201: 26201: 26201: template 26201: class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> 26201: { 26201: public: 26201: explicit 26201: const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const) 26201: : _M_f(__pf) { } 26201: 26201: _Ret 26201: operator()(const _Tp& __r, _Arg __x) const 26201: { return (__r.*_M_f)(__x); } 26201: 26201: private: 26201: _Ret (_Tp::*_M_f)(_Arg) const; 26201: }; 26201: 26201: 26201: 26201: template 26201: inline mem_fun_t<_Ret, _Tp> 26201: mem_fun(_Ret (_Tp::*__f)()) 26201: { return mem_fun_t<_Ret, _Tp>(__f); } 26201: 26201: template 26201: inline const_mem_fun_t<_Ret, _Tp> 26201: mem_fun(_Ret (_Tp::*__f)() const) 26201: { return const_mem_fun_t<_Ret, _Tp>(__f); } 26201: 26201: template 26201: inline mem_fun_ref_t<_Ret, _Tp> 26201: mem_fun_ref(_Ret (_Tp::*__f)()) 26201: { return mem_fun_ref_t<_Ret, _Tp>(__f); } 26201: 26201: template 26201: inline const_mem_fun_ref_t<_Ret, _Tp> 26201: mem_fun_ref(_Ret (_Tp::*__f)() const) 26201: { return const_mem_fun_ref_t<_Ret, _Tp>(__f); } 26201: 26201: template 26201: inline mem_fun1_t<_Ret, _Tp, _Arg> 26201: mem_fun(_Ret (_Tp::*__f)(_Arg)) 26201: { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); } 26201: 26201: template 26201: inline const_mem_fun1_t<_Ret, _Tp, _Arg> 26201: mem_fun(_Ret (_Tp::*__f)(_Arg) const) 26201: { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); } 26201: 26201: template 26201: inline mem_fun1_ref_t<_Ret, _Tp, _Arg> 26201: mem_fun_ref(_Ret (_Tp::*__f)(_Arg)) 26201: { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } 26201: 26201: template 26201: inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg> 26201: mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const) 26201: { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } 26201: 26201: 26201: 26201: 26201: } 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/backward/binders.h" 1 3 26201: # 57 "/usr/x86_64-linux-gnu/include/c++/10/backward/binders.h" 3 26201: #define _BACKWARD_BINDERS_H 1 26201: 26201: 26201: #pragma GCC diagnostic push 26201: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 107 "/usr/x86_64-linux-gnu/include/c++/10/backward/binders.h" 3 26201: template 26201: class binder1st 26201: : public unary_function 26201: { 26201: protected: 26201: _Operation op; 26201: typename _Operation::first_argument_type value; 26201: 26201: public: 26201: binder1st(const _Operation& __x, 26201: const typename _Operation::first_argument_type& __y) 26201: : op(__x), value(__y) { } 26201: 26201: typename _Operation::result_type 26201: operator()(const typename _Operation::second_argument_type& __x) const 26201: { return op(value, __x); } 26201: 26201: 26201: 26201: typename _Operation::result_type 26201: operator()(typename _Operation::second_argument_type& __x) const 26201: { return op(value, __x); } 26201: } __attribute__ ((__deprecated__)); 26201: 26201: 26201: template 26201: inline binder1st<_Operation> 26201: bind1st(const _Operation& __fn, const _Tp& __x) 26201: { 26201: typedef typename _Operation::first_argument_type _Arg1_type; 26201: return binder1st<_Operation>(__fn, _Arg1_type(__x)); 26201: } 26201: 26201: 26201: template 26201: class binder2nd 26201: : public unary_function 26201: { 26201: protected: 26201: _Operation op; 26201: typename _Operation::second_argument_type value; 26201: 26201: public: 26201: binder2nd(const _Operation& __x, 26201: const typename _Operation::second_argument_type& __y) 26201: : op(__x), value(__y) { } 26201: 26201: typename _Operation::result_type 26201: operator()(const typename _Operation::first_argument_type& __x) const 26201: { return op(__x, value); } 26201: 26201: 26201: 26201: typename _Operation::result_type 26201: operator()(typename _Operation::first_argument_type& __x) const 26201: { return op(__x, value); } 26201: } __attribute__ ((__deprecated__)); 26201: 26201: 26201: template 26201: inline binder2nd<_Operation> 26201: bind2nd(const _Operation& __fn, const _Tp& __x) 26201: { 26201: typedef typename _Operation::second_argument_type _Arg2_type; 26201: return binder2nd<_Operation>(__fn, _Arg2_type(__x)); 26201: } 26201: 26201: 26201: 26201: } 26201: 26201: #pragma GCC diagnostic pop 26201: # 1393 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_function.h" 2 3 26201: # 50 "/usr/x86_64-linux-gnu/include/c++/10/functional" 2 3 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/tuple" 1 3 26201: # 30 "/usr/x86_64-linux-gnu/include/c++/10/tuple" 3 26201: #define _GLIBCXX_TUPLE 1 26201: 26201: 26201: # 33 "/usr/x86_64-linux-gnu/include/c++/10/tuple" 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/array" 1 3 26201: # 30 "/usr/x86_64-linux-gnu/include/c++/10/array" 3 26201: #define _GLIBCXX_ARRAY 1 26201: 26201: 26201: # 33 "/usr/x86_64-linux-gnu/include/c++/10/array" 3 26201: # 41 "/usr/x86_64-linux-gnu/include/c++/10/array" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/range_access.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/range_access.h" 3 26201: #define _GLIBCXX_RANGE_ACCESS_H 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/range_access.h" 3 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/iterator_concepts.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/iterator_concepts.h" 3 26201: #define _ITERATOR_CONCEPTS_H 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/iterator_concepts.h" 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/concepts" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/concepts" 3 26201: #define _GLIBCXX_CONCEPTS 1 26201: # 36 "/usr/x86_64-linux-gnu/include/c++/10/bits/iterator_concepts.h" 2 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/range_cmp.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/range_cmp.h" 3 26201: #define _RANGE_CMP_H 1 26201: # 38 "/usr/x86_64-linux-gnu/include/c++/10/bits/iterator_concepts.h" 2 3 26201: # 38 "/usr/x86_64-linux-gnu/include/c++/10/bits/range_access.h" 2 3 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline constexpr auto 26201: begin(_Container& __cont) -> decltype(__cont.begin()) 26201: { return __cont.begin(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline constexpr auto 26201: begin(const _Container& __cont) -> decltype(__cont.begin()) 26201: { return __cont.begin(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline constexpr auto 26201: end(_Container& __cont) -> decltype(__cont.end()) 26201: { return __cont.end(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline constexpr auto 26201: end(const _Container& __cont) -> decltype(__cont.end()) 26201: { return __cont.end(); } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline constexpr _Tp* 26201: begin(_Tp (&__arr)[_Nm]) noexcept 26201: { return __arr; } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline constexpr _Tp* 26201: end(_Tp (&__arr)[_Nm]) noexcept 26201: { return __arr + _Nm; } 26201: 26201: 26201: 26201: template class valarray; 26201: 26201: template _Tp* begin(valarray<_Tp>&); 26201: template const _Tp* begin(const valarray<_Tp>&); 26201: template _Tp* end(valarray<_Tp>&); 26201: template const _Tp* end(const valarray<_Tp>&); 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline constexpr auto 26201: cbegin(const _Container& __cont) noexcept(noexcept(std::begin(__cont))) 26201: -> decltype(std::begin(__cont)) 26201: { return std::begin(__cont); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline constexpr auto 26201: cend(const _Container& __cont) noexcept(noexcept(std::end(__cont))) 26201: -> decltype(std::end(__cont)) 26201: { return std::end(__cont); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline constexpr auto 26201: rbegin(_Container& __cont) -> decltype(__cont.rbegin()) 26201: { return __cont.rbegin(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline constexpr auto 26201: rbegin(const _Container& __cont) -> decltype(__cont.rbegin()) 26201: { return __cont.rbegin(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline constexpr auto 26201: rend(_Container& __cont) -> decltype(__cont.rend()) 26201: { return __cont.rend(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline constexpr auto 26201: rend(const _Container& __cont) -> decltype(__cont.rend()) 26201: { return __cont.rend(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline constexpr reverse_iterator<_Tp*> 26201: rbegin(_Tp (&__arr)[_Nm]) noexcept 26201: { return reverse_iterator<_Tp*>(__arr + _Nm); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline constexpr reverse_iterator<_Tp*> 26201: rend(_Tp (&__arr)[_Nm]) noexcept 26201: { return reverse_iterator<_Tp*>(__arr); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline constexpr reverse_iterator 26201: rbegin(initializer_list<_Tp> __il) noexcept 26201: { return reverse_iterator(__il.end()); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline constexpr reverse_iterator 26201: rend(initializer_list<_Tp> __il) noexcept 26201: { return reverse_iterator(__il.begin()); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline constexpr auto 26201: crbegin(const _Container& __cont) -> decltype(std::rbegin(__cont)) 26201: { return std::rbegin(__cont); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline constexpr auto 26201: crend(const _Container& __cont) -> decltype(std::rend(__cont)) 26201: { return std::rend(__cont); } 26201: 26201: 26201: 26201: 26201: #define __cpp_lib_nonmember_container_access 201411 26201: 26201: 26201: 26201: 26201: 26201: template 26201: constexpr auto 26201: size(const _Container& __cont) noexcept(noexcept(__cont.size())) 26201: -> decltype(__cont.size()) 26201: { return __cont.size(); } 26201: 26201: 26201: 26201: 26201: template 26201: constexpr size_t 26201: size(const _Tp (&)[_Nm]) noexcept 26201: { return _Nm; } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: [[nodiscard]] constexpr auto 26201: empty(const _Container& __cont) noexcept(noexcept(__cont.empty())) 26201: -> decltype(__cont.empty()) 26201: { return __cont.empty(); } 26201: 26201: 26201: 26201: 26201: template 26201: [[nodiscard]] constexpr bool 26201: empty(const _Tp (&)[_Nm]) noexcept 26201: { return false; } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: [[nodiscard]] constexpr bool 26201: empty(initializer_list<_Tp> __il) noexcept 26201: { return __il.size() == 0;} 26201: 26201: 26201: 26201: 26201: 26201: template 26201: constexpr auto 26201: data(_Container& __cont) noexcept(noexcept(__cont.data())) 26201: -> decltype(__cont.data()) 26201: { return __cont.data(); } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: constexpr auto 26201: data(const _Container& __cont) noexcept(noexcept(__cont.data())) 26201: -> decltype(__cont.data()) 26201: { return __cont.data(); } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: constexpr _Tp* 26201: data(_Tp (&__array)[_Nm]) noexcept 26201: { return __array; } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: constexpr const _Tp* 26201: data(initializer_list<_Tp> __il) noexcept 26201: { return __il.begin(); } 26201: # 1174 "/usr/x86_64-linux-gnu/include/c++/10/bits/range_access.h" 3 26201: 26201: } 26201: # 42 "/usr/x86_64-linux-gnu/include/c++/10/array" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: template 26201: struct __array_traits 26201: { 26201: typedef _Tp _Type[_Nm]; 26201: typedef __is_swappable<_Tp> _Is_swappable; 26201: typedef __is_nothrow_swappable<_Tp> _Is_nothrow_swappable; 26201: 26201: static constexpr _Tp& 26201: _S_ref(const _Type& __t, std::size_t __n) noexcept 26201: { return const_cast<_Tp&>(__t[__n]); } 26201: 26201: static constexpr _Tp* 26201: _S_ptr(const _Type& __t) noexcept 26201: { return const_cast<_Tp*>(__t); } 26201: }; 26201: 26201: template 26201: struct __array_traits<_Tp, 0> 26201: { 26201: struct _Type { }; 26201: typedef true_type _Is_swappable; 26201: typedef true_type _Is_nothrow_swappable; 26201: 26201: static constexpr _Tp& 26201: _S_ref(const _Type&, std::size_t) noexcept 26201: { return *static_cast<_Tp*>(nullptr); } 26201: 26201: static constexpr _Tp* 26201: _S_ptr(const _Type&) noexcept 26201: { return nullptr; } 26201: }; 26201: # 93 "/usr/x86_64-linux-gnu/include/c++/10/array" 3 26201: template 26201: struct array 26201: { 26201: typedef _Tp value_type; 26201: typedef value_type* pointer; 26201: typedef const value_type* const_pointer; 26201: typedef value_type& reference; 26201: typedef const value_type& const_reference; 26201: typedef value_type* iterator; 26201: typedef const value_type* const_iterator; 26201: typedef std::size_t size_type; 26201: typedef std::ptrdiff_t difference_type; 26201: typedef std::reverse_iterator reverse_iterator; 26201: typedef std::reverse_iterator const_reverse_iterator; 26201: 26201: 26201: typedef std::__array_traits<_Tp, _Nm> _AT_Type; 26201: typename _AT_Type::_Type _M_elems; 26201: 26201: 26201: 26201: 26201: void 26201: fill(const value_type& __u) 26201: { std::fill_n(begin(), size(), __u); } 26201: 26201: void 26201: swap(array& __other) 26201: noexcept(_AT_Type::_Is_nothrow_swappable::value) 26201: { std::swap_ranges(begin(), end(), __other.begin()); } 26201: 26201: 26201: constexpr iterator 26201: begin() noexcept 26201: { return iterator(data()); } 26201: 26201: constexpr const_iterator 26201: begin() const noexcept 26201: { return const_iterator(data()); } 26201: 26201: constexpr iterator 26201: end() noexcept 26201: { return iterator(data() + _Nm); } 26201: 26201: constexpr const_iterator 26201: end() const noexcept 26201: { return const_iterator(data() + _Nm); } 26201: 26201: constexpr reverse_iterator 26201: rbegin() noexcept 26201: { return reverse_iterator(end()); } 26201: 26201: constexpr const_reverse_iterator 26201: rbegin() const noexcept 26201: { return const_reverse_iterator(end()); } 26201: 26201: constexpr reverse_iterator 26201: rend() noexcept 26201: { return reverse_iterator(begin()); } 26201: 26201: constexpr const_reverse_iterator 26201: rend() const noexcept 26201: { return const_reverse_iterator(begin()); } 26201: 26201: constexpr const_iterator 26201: cbegin() const noexcept 26201: { return const_iterator(data()); } 26201: 26201: constexpr const_iterator 26201: cend() const noexcept 26201: { return const_iterator(data() + _Nm); } 26201: 26201: constexpr const_reverse_iterator 26201: crbegin() const noexcept 26201: { return const_reverse_iterator(end()); } 26201: 26201: constexpr const_reverse_iterator 26201: crend() const noexcept 26201: { return const_reverse_iterator(begin()); } 26201: 26201: 26201: constexpr size_type 26201: size() const noexcept { return _Nm; } 26201: 26201: constexpr size_type 26201: max_size() const noexcept { return _Nm; } 26201: 26201: [[__nodiscard__]] constexpr bool 26201: empty() const noexcept { return size() == 0; } 26201: 26201: 26201: constexpr reference 26201: operator[](size_type __n) noexcept 26201: { return _AT_Type::_S_ref(_M_elems, __n); } 26201: 26201: constexpr const_reference 26201: operator[](size_type __n) const noexcept 26201: { return _AT_Type::_S_ref(_M_elems, __n); } 26201: 26201: constexpr reference 26201: at(size_type __n) 26201: { 26201: if (__n >= _Nm) 26201: std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") 26201: , 26201: __n, _Nm); 26201: return _AT_Type::_S_ref(_M_elems, __n); 26201: } 26201: 26201: constexpr const_reference 26201: at(size_type __n) const 26201: { 26201: 26201: 26201: return __n < _Nm ? _AT_Type::_S_ref(_M_elems, __n) 26201: : (std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") 26201: , 26201: __n, _Nm), 26201: _AT_Type::_S_ref(_M_elems, 0)); 26201: } 26201: 26201: constexpr reference 26201: front() noexcept 26201: { return *begin(); } 26201: 26201: constexpr const_reference 26201: front() const noexcept 26201: { return _AT_Type::_S_ref(_M_elems, 0); } 26201: 26201: constexpr reference 26201: back() noexcept 26201: { return _Nm ? *(end() - 1) : *end(); } 26201: 26201: constexpr const_reference 26201: back() const noexcept 26201: { 26201: return _Nm ? _AT_Type::_S_ref(_M_elems, _Nm - 1) 26201: : _AT_Type::_S_ref(_M_elems, 0); 26201: } 26201: 26201: constexpr pointer 26201: data() noexcept 26201: { return _AT_Type::_S_ptr(_M_elems); } 26201: 26201: constexpr const_pointer 26201: data() const noexcept 26201: { return _AT_Type::_S_ptr(_M_elems); } 26201: }; 26201: 26201: 26201: template 26201: array(_Tp, _Up...) 26201: -> array && ...), _Tp>, 26201: 1 + sizeof...(_Up)>; 26201: 26201: 26201: 26201: template 26201: 26201: inline bool 26201: operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 26201: { return std::equal(__one.begin(), __one.end(), __two.begin()); } 26201: # 279 "/usr/x86_64-linux-gnu/include/c++/10/array" 3 26201: template 26201: 26201: inline bool 26201: operator!=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 26201: { return !(__one == __two); } 26201: 26201: template 26201: 26201: inline bool 26201: operator<(const array<_Tp, _Nm>& __a, const array<_Tp, _Nm>& __b) 26201: { 26201: return std::lexicographical_compare(__a.begin(), __a.end(), 26201: __b.begin(), __b.end()); 26201: } 26201: 26201: template 26201: 26201: inline bool 26201: operator>(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 26201: { return __two < __one; } 26201: 26201: template 26201: 26201: inline bool 26201: operator<=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 26201: { return !(__one > __two); } 26201: 26201: template 26201: 26201: inline bool 26201: operator>=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 26201: { return !(__one < __two); } 26201: 26201: 26201: 26201: template 26201: 26201: inline 26201: 26201: 26201: typename enable_if< 26201: std::__array_traits<_Tp, _Nm>::_Is_swappable::value 26201: >::type 26201: 26201: 26201: 26201: swap(array<_Tp, _Nm>& __one, array<_Tp, _Nm>& __two) 26201: noexcept(noexcept(__one.swap(__two))) 26201: { __one.swap(__two); } 26201: 26201: 26201: template 26201: typename enable_if< 26201: !std::__array_traits<_Tp, _Nm>::_Is_swappable::value>::type 26201: swap(array<_Tp, _Nm>&, array<_Tp, _Nm>&) = delete; 26201: 26201: 26201: template 26201: constexpr _Tp& 26201: get(array<_Tp, _Nm>& __arr) noexcept 26201: { 26201: static_assert(_Int < _Nm, "array index is within bounds"); 26201: return std::__array_traits<_Tp, _Nm>:: 26201: _S_ref(__arr._M_elems, _Int); 26201: } 26201: 26201: template 26201: constexpr _Tp&& 26201: get(array<_Tp, _Nm>&& __arr) noexcept 26201: { 26201: static_assert(_Int < _Nm, "array index is within bounds"); 26201: return std::move(std::get<_Int>(__arr)); 26201: } 26201: 26201: template 26201: constexpr const _Tp& 26201: get(const array<_Tp, _Nm>& __arr) noexcept 26201: { 26201: static_assert(_Int < _Nm, "array index is within bounds"); 26201: return std::__array_traits<_Tp, _Nm>:: 26201: _S_ref(__arr._M_elems, _Int); 26201: } 26201: 26201: template 26201: constexpr const _Tp&& 26201: get(const array<_Tp, _Nm>&& __arr) noexcept 26201: { 26201: static_assert(_Int < _Nm, "array index is within bounds"); 26201: return std::move(std::get<_Int>(__arr)); 26201: } 26201: # 408 "/usr/x86_64-linux-gnu/include/c++/10/array" 3 26201: 26201: } 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct tuple_size; 26201: 26201: 26201: template 26201: struct tuple_size> 26201: : public integral_constant { }; 26201: 26201: 26201: template 26201: struct tuple_element; 26201: 26201: 26201: template 26201: struct tuple_element<_Int, std::array<_Tp, _Nm>> 26201: { 26201: static_assert(_Int < _Nm, "index is out of bounds"); 26201: typedef _Tp type; 26201: }; 26201: 26201: template 26201: struct __is_tuple_like_impl> : true_type 26201: { }; 26201: 26201: 26201: } 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/tuple" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/uses_allocator.h" 1 3 26201: # 26 "/usr/x86_64-linux-gnu/include/c++/10/bits/uses_allocator.h" 3 26201: #define _USES_ALLOCATOR_H 1 26201: # 35 "/usr/x86_64-linux-gnu/include/c++/10/bits/uses_allocator.h" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: struct __erased_type { }; 26201: 26201: 26201: 26201: 26201: template 26201: using __is_erased_or_convertible 26201: = __or_, is_same<_Tp, __erased_type>>; 26201: 26201: 26201: struct allocator_arg_t { explicit allocator_arg_t() = default; }; 26201: 26201: inline constexpr allocator_arg_t allocator_arg = 26201: allocator_arg_t(); 26201: 26201: template> 26201: struct __uses_allocator_helper 26201: : false_type { }; 26201: 26201: template 26201: struct __uses_allocator_helper<_Tp, _Alloc, 26201: __void_t> 26201: : __is_erased_or_convertible<_Alloc, typename _Tp::allocator_type>::type 26201: { }; 26201: 26201: 26201: template 26201: struct uses_allocator 26201: : __uses_allocator_helper<_Tp, _Alloc>::type 26201: { }; 26201: 26201: struct __uses_alloc_base { }; 26201: 26201: struct __uses_alloc0 : __uses_alloc_base 26201: { 26201: struct _Sink { void operator=(const void*) { } } _M_a; 26201: }; 26201: 26201: template 26201: struct __uses_alloc1 : __uses_alloc_base { const _Alloc* _M_a; }; 26201: 26201: template 26201: struct __uses_alloc2 : __uses_alloc_base { const _Alloc* _M_a; }; 26201: 26201: template 26201: struct __uses_alloc; 26201: 26201: template 26201: struct __uses_alloc 26201: : conditional< 26201: is_constructible<_Tp, allocator_arg_t, const _Alloc&, _Args...>::value, 26201: __uses_alloc1<_Alloc>, 26201: __uses_alloc2<_Alloc>>::type 26201: { 26201: 26201: 26201: static_assert(__or_< 26201: is_constructible<_Tp, allocator_arg_t, const _Alloc&, _Args...>, 26201: is_constructible<_Tp, _Args..., const _Alloc&>>::value, 26201: "construction with an allocator must be possible" 26201: " if uses_allocator is true"); 26201: }; 26201: 26201: template 26201: struct __uses_alloc 26201: : __uses_alloc0 { }; 26201: 26201: template 26201: using __uses_alloc_t = 26201: __uses_alloc::value, _Tp, _Alloc, _Args...>; 26201: 26201: template 26201: 26201: inline __uses_alloc_t<_Tp, _Alloc, _Args...> 26201: __use_alloc(const _Alloc& __a) 26201: { 26201: __uses_alloc_t<_Tp, _Alloc, _Args...> __ret; 26201: __ret._M_a = std::__addressof(__a); 26201: return __ret; 26201: } 26201: 26201: template 26201: void 26201: __use_alloc(const _Alloc&&) = delete; 26201: 26201: 26201: template 26201: inline constexpr bool uses_allocator_v = 26201: uses_allocator<_Tp, _Alloc>::value; 26201: 26201: 26201: template class _Predicate, 26201: typename _Tp, typename _Alloc, typename... _Args> 26201: struct __is_uses_allocator_predicate 26201: : conditional::value, 26201: __or_<_Predicate<_Tp, allocator_arg_t, _Alloc, _Args...>, 26201: _Predicate<_Tp, _Args..., _Alloc>>, 26201: _Predicate<_Tp, _Args...>>::type { }; 26201: 26201: template 26201: struct __is_uses_allocator_constructible 26201: : __is_uses_allocator_predicate 26201: { }; 26201: 26201: 26201: template 26201: inline constexpr bool __is_uses_allocator_constructible_v = 26201: __is_uses_allocator_constructible<_Tp, _Alloc, _Args...>::value; 26201: 26201: 26201: template 26201: struct __is_nothrow_uses_allocator_constructible 26201: : __is_uses_allocator_predicate 26201: { }; 26201: 26201: 26201: 26201: template 26201: inline constexpr bool 26201: __is_nothrow_uses_allocator_constructible_v = 26201: __is_nothrow_uses_allocator_constructible<_Tp, _Alloc, _Args...>::value; 26201: 26201: 26201: template 26201: void __uses_allocator_construct_impl(__uses_alloc0 __a, _Tp* __ptr, 26201: _Args&&... __args) 26201: { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)...); } 26201: 26201: template 26201: void __uses_allocator_construct_impl(__uses_alloc1<_Alloc> __a, _Tp* __ptr, 26201: _Args&&... __args) 26201: { 26201: ::new ((void*)__ptr) _Tp(allocator_arg, *__a._M_a, 26201: std::forward<_Args>(__args)...); 26201: } 26201: 26201: template 26201: void __uses_allocator_construct_impl(__uses_alloc2<_Alloc> __a, _Tp* __ptr, 26201: _Args&&... __args) 26201: { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)..., *__a._M_a); } 26201: 26201: template 26201: void __uses_allocator_construct(const _Alloc& __a, _Tp* __ptr, 26201: _Args&&... __args) 26201: { 26201: std::__uses_allocator_construct_impl( 26201: std::__use_alloc<_Tp, _Alloc, _Args...>(__a), __ptr, 26201: std::forward<_Args>(__args)...); 26201: } 26201: 26201: 26201: } 26201: # 41 "/usr/x86_64-linux-gnu/include/c++/10/tuple" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/invoke.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/invoke.h" 3 26201: #define _GLIBCXX_INVOKE_H 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/invoke.h" 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 52 "/usr/x86_64-linux-gnu/include/c++/10/bits/invoke.h" 3 26201: template::type> 26201: constexpr _Up&& 26201: __invfwd(typename remove_reference<_Tp>::type& __t) noexcept 26201: { return static_cast<_Up&&>(__t); } 26201: 26201: template 26201: constexpr _Res 26201: __invoke_impl(__invoke_other, _Fn&& __f, _Args&&... __args) 26201: { return std::forward<_Fn>(__f)(std::forward<_Args>(__args)...); } 26201: 26201: template 26201: constexpr _Res 26201: __invoke_impl(__invoke_memfun_ref, _MemFun&& __f, _Tp&& __t, 26201: _Args&&... __args) 26201: { return (__invfwd<_Tp>(__t).*__f)(std::forward<_Args>(__args)...); } 26201: 26201: template 26201: constexpr _Res 26201: __invoke_impl(__invoke_memfun_deref, _MemFun&& __f, _Tp&& __t, 26201: _Args&&... __args) 26201: { 26201: return ((*std::forward<_Tp>(__t)).*__f)(std::forward<_Args>(__args)...); 26201: } 26201: 26201: template 26201: constexpr _Res 26201: __invoke_impl(__invoke_memobj_ref, _MemPtr&& __f, _Tp&& __t) 26201: { return __invfwd<_Tp>(__t).*__f; } 26201: 26201: template 26201: constexpr _Res 26201: __invoke_impl(__invoke_memobj_deref, _MemPtr&& __f, _Tp&& __t) 26201: { return (*std::forward<_Tp>(__t)).*__f; } 26201: 26201: 26201: template 26201: constexpr typename __invoke_result<_Callable, _Args...>::type 26201: __invoke(_Callable&& __fn, _Args&&... __args) 26201: noexcept(__is_nothrow_invocable<_Callable, _Args...>::value) 26201: { 26201: using __result = __invoke_result<_Callable, _Args...>; 26201: using __type = typename __result::type; 26201: using __tag = typename __result::__invoke_type; 26201: return std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), 26201: std::forward<_Args>(__args)...); 26201: } 26201: 26201: 26201: 26201: template 26201: constexpr enable_if_t, _Res> 26201: __invoke_r(_Callable&& __fn, _Args&&... __args) 26201: noexcept(is_nothrow_invocable_r_v<_Res, _Callable, _Args...>) 26201: { 26201: using __result = __invoke_result<_Callable, _Args...>; 26201: using __type = typename __result::type; 26201: using __tag = typename __result::__invoke_type; 26201: if constexpr (is_void_v<_Res>) 26201: std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), 26201: std::forward<_Args>(__args)...); 26201: else 26201: return std::__invoke_impl<__type>(__tag{}, 26201: std::forward<_Callable>(__fn), 26201: std::forward<_Args>(__args)...); 26201: } 26201: # 158 "/usr/x86_64-linux-gnu/include/c++/10/bits/invoke.h" 3 26201: 26201: } 26201: # 42 "/usr/x86_64-linux-gnu/include/c++/10/tuple" 2 3 26201: 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: class tuple; 26201: 26201: template 26201: struct __is_empty_non_tuple : is_empty<_Tp> { }; 26201: 26201: 26201: template 26201: struct __is_empty_non_tuple> : false_type { }; 26201: 26201: 26201: template 26201: using __empty_not_final 26201: = typename conditional<__is_final(_Tp), false_type, 26201: __is_empty_non_tuple<_Tp>>::type; 26201: 26201: template::value> 26201: struct _Head_base; 26201: 26201: template 26201: struct _Head_base<_Idx, _Head, true> 26201: : public _Head 26201: { 26201: constexpr _Head_base() 26201: : _Head() { } 26201: 26201: constexpr _Head_base(const _Head& __h) 26201: : _Head(__h) { } 26201: 26201: constexpr _Head_base(const _Head_base&) = default; 26201: constexpr _Head_base(_Head_base&&) = default; 26201: 26201: template 26201: constexpr _Head_base(_UHead&& __h) 26201: : _Head(std::forward<_UHead>(__h)) { } 26201: 26201: _Head_base(allocator_arg_t, __uses_alloc0) 26201: : _Head() { } 26201: 26201: template 26201: _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) 26201: : _Head(allocator_arg, *__a._M_a) { } 26201: 26201: template 26201: _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) 26201: : _Head(*__a._M_a) { } 26201: 26201: template 26201: _Head_base(__uses_alloc0, _UHead&& __uhead) 26201: : _Head(std::forward<_UHead>(__uhead)) { } 26201: 26201: template 26201: _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) 26201: : _Head(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) { } 26201: 26201: template 26201: _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) 26201: : _Head(std::forward<_UHead>(__uhead), *__a._M_a) { } 26201: 26201: static constexpr _Head& 26201: _M_head(_Head_base& __b) noexcept { return __b; } 26201: 26201: static constexpr const _Head& 26201: _M_head(const _Head_base& __b) noexcept { return __b; } 26201: }; 26201: 26201: template 26201: struct _Head_base<_Idx, _Head, false> 26201: { 26201: constexpr _Head_base() 26201: : _M_head_impl() { } 26201: 26201: constexpr _Head_base(const _Head& __h) 26201: : _M_head_impl(__h) { } 26201: 26201: constexpr _Head_base(const _Head_base&) = default; 26201: constexpr _Head_base(_Head_base&&) = default; 26201: 26201: template 26201: constexpr _Head_base(_UHead&& __h) 26201: : _M_head_impl(std::forward<_UHead>(__h)) { } 26201: 26201: 26201: _Head_base(allocator_arg_t, __uses_alloc0) 26201: : _M_head_impl() { } 26201: 26201: template 26201: _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) 26201: : _M_head_impl(allocator_arg, *__a._M_a) { } 26201: 26201: template 26201: _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) 26201: : _M_head_impl(*__a._M_a) { } 26201: 26201: template 26201: 26201: _Head_base(__uses_alloc0, _UHead&& __uhead) 26201: : _M_head_impl(std::forward<_UHead>(__uhead)) { } 26201: 26201: template 26201: _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) 26201: : _M_head_impl(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) 26201: { } 26201: 26201: template 26201: _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) 26201: : _M_head_impl(std::forward<_UHead>(__uhead), *__a._M_a) { } 26201: 26201: static constexpr _Head& 26201: _M_head(_Head_base& __b) noexcept { return __b._M_head_impl; } 26201: 26201: static constexpr const _Head& 26201: _M_head(const _Head_base& __b) noexcept { return __b._M_head_impl; } 26201: 26201: _Head _M_head_impl; 26201: }; 26201: # 182 "/usr/x86_64-linux-gnu/include/c++/10/tuple" 3 26201: template 26201: struct _Tuple_impl; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct _Tuple_impl<_Idx, _Head, _Tail...> 26201: : public _Tuple_impl<_Idx + 1, _Tail...>, 26201: private _Head_base<_Idx, _Head> 26201: { 26201: template friend class _Tuple_impl; 26201: 26201: typedef _Tuple_impl<_Idx + 1, _Tail...> _Inherited; 26201: typedef _Head_base<_Idx, _Head> _Base; 26201: 26201: static constexpr _Head& 26201: _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 26201: 26201: static constexpr const _Head& 26201: _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 26201: 26201: static constexpr _Inherited& 26201: _M_tail(_Tuple_impl& __t) noexcept { return __t; } 26201: 26201: static constexpr const _Inherited& 26201: _M_tail(const _Tuple_impl& __t) noexcept { return __t; } 26201: 26201: constexpr _Tuple_impl() 26201: : _Inherited(), _Base() { } 26201: 26201: explicit 26201: constexpr _Tuple_impl(const _Head& __head, const _Tail&... __tail) 26201: : _Inherited(__tail...), _Base(__head) { } 26201: 26201: template::type> 26201: explicit 26201: constexpr _Tuple_impl(_UHead&& __head, _UTail&&... __tail) 26201: : _Inherited(std::forward<_UTail>(__tail)...), 26201: _Base(std::forward<_UHead>(__head)) { } 26201: 26201: constexpr _Tuple_impl(const _Tuple_impl&) = default; 26201: 26201: 26201: 26201: _Tuple_impl& operator=(const _Tuple_impl&) = delete; 26201: 26201: constexpr 26201: _Tuple_impl(_Tuple_impl&& __in) 26201: noexcept(__and_, 26201: is_nothrow_move_constructible<_Inherited>>::value) 26201: : _Inherited(std::move(_M_tail(__in))), 26201: _Base(std::forward<_Head>(_M_head(__in))) { } 26201: 26201: template 26201: constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UElements...>& __in) 26201: : _Inherited(_Tuple_impl<_Idx, _UElements...>::_M_tail(__in)), 26201: _Base(_Tuple_impl<_Idx, _UElements...>::_M_head(__in)) { } 26201: 26201: template 26201: constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 26201: : _Inherited(std::move 26201: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), 26201: _Base(std::forward<_UHead> 26201: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) { } 26201: 26201: template 26201: 26201: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) 26201: : _Inherited(__tag, __a), 26201: _Base(__tag, __use_alloc<_Head>(__a)) { } 26201: 26201: template 26201: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 26201: const _Head& __head, const _Tail&... __tail) 26201: : _Inherited(__tag, __a, __tail...), 26201: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) { } 26201: 26201: template::type> 26201: 26201: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 26201: _UHead&& __head, _UTail&&... __tail) 26201: : _Inherited(__tag, __a, std::forward<_UTail>(__tail)...), 26201: _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 26201: std::forward<_UHead>(__head)) { } 26201: 26201: template 26201: 26201: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 26201: const _Tuple_impl& __in) 26201: : _Inherited(__tag, __a, _M_tail(__in)), 26201: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) { } 26201: 26201: template 26201: 26201: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 26201: _Tuple_impl&& __in) 26201: : _Inherited(__tag, __a, std::move(_M_tail(__in))), 26201: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 26201: std::forward<_Head>(_M_head(__in))) { } 26201: 26201: template 26201: 26201: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 26201: const _Tuple_impl<_Idx, _UHead, _UTails...>& __in) 26201: : _Inherited(__tag, __a, 26201: _Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in)), 26201: _Base(__use_alloc<_Head, _Alloc, const _UHead&>(__a), 26201: _Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in)) { } 26201: 26201: template 26201: 26201: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 26201: _Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 26201: : _Inherited(__tag, __a, std::move 26201: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), 26201: _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 26201: std::forward<_UHead> 26201: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) { } 26201: 26201: template 26201: 26201: void 26201: _M_assign(const _Tuple_impl<_Idx, _UElements...>& __in) 26201: { 26201: _M_head(*this) = _Tuple_impl<_Idx, _UElements...>::_M_head(__in); 26201: _M_tail(*this)._M_assign( 26201: _Tuple_impl<_Idx, _UElements...>::_M_tail(__in)); 26201: } 26201: 26201: template 26201: 26201: void 26201: _M_assign(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 26201: { 26201: _M_head(*this) = std::forward<_UHead> 26201: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in)); 26201: _M_tail(*this)._M_assign( 26201: std::move(_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))); 26201: } 26201: 26201: protected: 26201: 26201: void 26201: _M_swap(_Tuple_impl& __in) 26201: { 26201: using std::swap; 26201: swap(_M_head(*this), _M_head(__in)); 26201: _Inherited::_M_swap(_M_tail(__in)); 26201: } 26201: }; 26201: 26201: 26201: template 26201: struct _Tuple_impl<_Idx, _Head> 26201: : private _Head_base<_Idx, _Head> 26201: { 26201: template friend class _Tuple_impl; 26201: 26201: typedef _Head_base<_Idx, _Head> _Base; 26201: 26201: static constexpr _Head& 26201: _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 26201: 26201: static constexpr const _Head& 26201: _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 26201: 26201: constexpr _Tuple_impl() 26201: : _Base() { } 26201: 26201: explicit 26201: constexpr _Tuple_impl(const _Head& __head) 26201: : _Base(__head) { } 26201: 26201: template 26201: explicit 26201: constexpr _Tuple_impl(_UHead&& __head) 26201: : _Base(std::forward<_UHead>(__head)) { } 26201: 26201: constexpr _Tuple_impl(const _Tuple_impl&) = default; 26201: 26201: 26201: 26201: _Tuple_impl& operator=(const _Tuple_impl&) = delete; 26201: 26201: constexpr 26201: _Tuple_impl(_Tuple_impl&& __in) 26201: noexcept(is_nothrow_move_constructible<_Head>::value) 26201: : _Base(std::forward<_Head>(_M_head(__in))) { } 26201: 26201: template 26201: constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UHead>& __in) 26201: : _Base(_Tuple_impl<_Idx, _UHead>::_M_head(__in)) { } 26201: 26201: template 26201: constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead>&& __in) 26201: : _Base(std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) 26201: { } 26201: 26201: template 26201: 26201: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) 26201: : _Base(__tag, __use_alloc<_Head>(__a)) { } 26201: 26201: template 26201: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 26201: const _Head& __head) 26201: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) { } 26201: 26201: template 26201: 26201: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 26201: _UHead&& __head) 26201: : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 26201: std::forward<_UHead>(__head)) { } 26201: 26201: template 26201: 26201: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 26201: const _Tuple_impl& __in) 26201: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) { } 26201: 26201: template 26201: 26201: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 26201: _Tuple_impl&& __in) 26201: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 26201: std::forward<_Head>(_M_head(__in))) { } 26201: 26201: template 26201: 26201: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 26201: const _Tuple_impl<_Idx, _UHead>& __in) 26201: : _Base(__use_alloc<_Head, _Alloc, const _UHead&>(__a), 26201: _Tuple_impl<_Idx, _UHead>::_M_head(__in)) { } 26201: 26201: template 26201: 26201: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 26201: _Tuple_impl<_Idx, _UHead>&& __in) 26201: : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 26201: std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) 26201: { } 26201: 26201: template 26201: 26201: void 26201: _M_assign(const _Tuple_impl<_Idx, _UHead>& __in) 26201: { 26201: _M_head(*this) = _Tuple_impl<_Idx, _UHead>::_M_head(__in); 26201: } 26201: 26201: template 26201: 26201: void 26201: _M_assign(_Tuple_impl<_Idx, _UHead>&& __in) 26201: { 26201: _M_head(*this) 26201: = std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in)); 26201: } 26201: 26201: protected: 26201: 26201: void 26201: _M_swap(_Tuple_impl& __in) 26201: { 26201: using std::swap; 26201: swap(_M_head(*this), _M_head(__in)); 26201: } 26201: }; 26201: 26201: 26201: 26201: template 26201: struct _TupleConstraints 26201: { 26201: template 26201: using is_constructible 26201: = __bool_constant<__is_constructible(_Tp, _Up)>; 26201: 26201: 26201: 26201: 26201: template 26201: static constexpr bool __is_implicitly_constructible() 26201: { 26201: return __and_..., 26201: is_convertible<_UTypes, _Types>... 26201: >::value; 26201: } 26201: 26201: 26201: 26201: 26201: template 26201: static constexpr bool __is_explicitly_constructible() 26201: { 26201: return __and_..., 26201: __not_<__and_...>> 26201: >::value; 26201: } 26201: 26201: static constexpr bool __is_implicitly_default_constructible() 26201: { 26201: return __and_... 26201: >::value; 26201: } 26201: 26201: static constexpr bool __is_explicitly_default_constructible() 26201: { 26201: return __and_..., 26201: __not_<__and_< 26201: std::__is_implicitly_default_constructible<_Types>...> 26201: >>::value; 26201: } 26201: }; 26201: 26201: 26201: 26201: template 26201: struct _TupleConstraints 26201: { 26201: template 26201: static constexpr bool __is_implicitly_constructible() 26201: { return false; } 26201: 26201: template 26201: static constexpr bool __is_explicitly_constructible() 26201: { return false; } 26201: }; 26201: 26201: 26201: template 26201: class tuple : public _Tuple_impl<0, _Elements...> 26201: { 26201: typedef _Tuple_impl<0, _Elements...> _Inherited; 26201: 26201: template 26201: using _TCC = _TupleConstraints<_Cond, _Elements...>; 26201: 26201: 26201: template 26201: using _ImplicitDefaultCtor = __enable_if_t< 26201: _TCC<_Dummy>::__is_implicitly_default_constructible(), 26201: bool>; 26201: 26201: 26201: template 26201: using _ExplicitDefaultCtor = __enable_if_t< 26201: _TCC<_Dummy>::__is_explicitly_default_constructible(), 26201: bool>; 26201: 26201: 26201: template 26201: using _ImplicitCtor = __enable_if_t< 26201: _TCC<_Cond>::template __is_implicitly_constructible<_Args...>(), 26201: bool>; 26201: 26201: 26201: template 26201: using _ExplicitCtor = __enable_if_t< 26201: _TCC<_Cond>::template __is_explicitly_constructible<_Args...>(), 26201: bool>; 26201: 26201: template 26201: static constexpr 26201: __enable_if_t 26201: __assignable() 26201: { return __and_...>::value; } 26201: 26201: 26201: template 26201: static constexpr bool __nothrow_assignable() 26201: { 26201: return 26201: __and_...>::value; 26201: } 26201: 26201: 26201: template 26201: static constexpr bool __nothrow_constructible() 26201: { 26201: return 26201: __and_...>::value; 26201: } 26201: 26201: 26201: template 26201: static constexpr bool __valid_args() 26201: { 26201: return sizeof...(_Elements) == 1 26201: && !is_same>::value; 26201: } 26201: 26201: 26201: template 26201: static constexpr bool __valid_args() 26201: { return (sizeof...(_Tail) + 2) == sizeof...(_Elements); } 26201: # 595 "/usr/x86_64-linux-gnu/include/c++/10/tuple" 3 26201: template> 26201: struct _UseOtherCtor 26201: : false_type 26201: { }; 26201: 26201: 26201: template 26201: struct _UseOtherCtor<_Tuple, tuple<_Tp>, tuple<_Up>> 26201: : __or_, is_constructible<_Tp, _Tuple>> 26201: { }; 26201: 26201: 26201: template 26201: struct _UseOtherCtor<_Tuple, tuple<_Tp>, tuple<_Tp>> 26201: : true_type 26201: { }; 26201: 26201: 26201: 26201: 26201: template 26201: static constexpr bool __use_other_ctor() 26201: { return _UseOtherCtor<_Tuple>::value; } 26201: 26201: public: 26201: template::value> = true> 26201: constexpr 26201: tuple() 26201: noexcept(__and_...>::value) 26201: : _Inherited() { } 26201: 26201: template::value> = false> 26201: explicit constexpr 26201: tuple() 26201: noexcept(__and_...>::value) 26201: : _Inherited() { } 26201: 26201: template= 1), 26201: _ImplicitCtor<_NotEmpty, const _Elements&...> = true> 26201: constexpr 26201: tuple(const _Elements&... __elements) 26201: noexcept(__nothrow_constructible()) 26201: : _Inherited(__elements...) { } 26201: 26201: template= 1), 26201: _ExplicitCtor<_NotEmpty, const _Elements&...> = false> 26201: explicit constexpr 26201: tuple(const _Elements&... __elements) 26201: noexcept(__nothrow_constructible()) 26201: : _Inherited(__elements...) { } 26201: 26201: template(), 26201: _ImplicitCtor<_Valid, _UElements...> = true> 26201: constexpr 26201: tuple(_UElements&&... __elements) 26201: noexcept(__nothrow_constructible<_UElements...>()) 26201: : _Inherited(std::forward<_UElements>(__elements)...) { } 26201: 26201: template(), 26201: _ExplicitCtor<_Valid, _UElements...> = false> 26201: explicit constexpr 26201: tuple(_UElements&&... __elements) 26201: noexcept(__nothrow_constructible<_UElements...>()) 26201: : _Inherited(std::forward<_UElements>(__elements)...) { } 26201: 26201: constexpr tuple(const tuple&) = default; 26201: 26201: constexpr tuple(tuple&&) = default; 26201: 26201: template&>(), 26201: _ImplicitCtor<_Valid, const _UElements&...> = true> 26201: constexpr 26201: tuple(const tuple<_UElements...>& __in) 26201: noexcept(__nothrow_constructible()) 26201: : _Inherited(static_cast&>(__in)) 26201: { } 26201: 26201: template&>(), 26201: _ExplicitCtor<_Valid, const _UElements&...> = false> 26201: explicit constexpr 26201: tuple(const tuple<_UElements...>& __in) 26201: noexcept(__nothrow_constructible()) 26201: : _Inherited(static_cast&>(__in)) 26201: { } 26201: 26201: template&&>(), 26201: _ImplicitCtor<_Valid, _UElements...> = true> 26201: constexpr 26201: tuple(tuple<_UElements...>&& __in) 26201: noexcept(__nothrow_constructible<_UElements...>()) 26201: : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { } 26201: 26201: template&&>(), 26201: _ExplicitCtor<_Valid, _UElements...> = false> 26201: explicit constexpr 26201: tuple(tuple<_UElements...>&& __in) 26201: noexcept(__nothrow_constructible<_UElements...>()) 26201: : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { } 26201: 26201: 26201: 26201: template::value> = true> 26201: 26201: tuple(allocator_arg_t __tag, const _Alloc& __a) 26201: : _Inherited(__tag, __a) { } 26201: 26201: template= 1), 26201: _ImplicitCtor<_NotEmpty, const _Elements&...> = true> 26201: 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, 26201: const _Elements&... __elements) 26201: : _Inherited(__tag, __a, __elements...) { } 26201: 26201: template= 1), 26201: _ExplicitCtor<_NotEmpty, const _Elements&...> = false> 26201: 26201: explicit 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, 26201: const _Elements&... __elements) 26201: : _Inherited(__tag, __a, __elements...) { } 26201: 26201: template(), 26201: _ImplicitCtor<_Valid, _UElements...> = true> 26201: 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, 26201: _UElements&&... __elements) 26201: : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...) 26201: { } 26201: 26201: template(), 26201: _ExplicitCtor<_Valid, _UElements...> = false> 26201: 26201: explicit 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, 26201: _UElements&&... __elements) 26201: : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...) 26201: { } 26201: 26201: template 26201: 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) 26201: : _Inherited(__tag, __a, static_cast(__in)) { } 26201: 26201: template 26201: 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) 26201: : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } 26201: 26201: template&>(), 26201: _ImplicitCtor<_Valid, const _UElements&...> = true> 26201: 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, 26201: const tuple<_UElements...>& __in) 26201: : _Inherited(__tag, __a, 26201: static_cast&>(__in)) 26201: { } 26201: 26201: template&>(), 26201: _ExplicitCtor<_Valid, const _UElements&...> = false> 26201: 26201: explicit 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, 26201: const tuple<_UElements...>& __in) 26201: : _Inherited(__tag, __a, 26201: static_cast&>(__in)) 26201: { } 26201: 26201: template&&>(), 26201: _ImplicitCtor<_Valid, _UElements...> = true> 26201: 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, 26201: tuple<_UElements...>&& __in) 26201: : _Inherited(__tag, __a, 26201: static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) 26201: { } 26201: 26201: template&&>(), 26201: _ExplicitCtor<_Valid, _UElements...> = false> 26201: 26201: explicit 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, 26201: tuple<_UElements...>&& __in) 26201: : _Inherited(__tag, __a, 26201: static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) 26201: { } 26201: 26201: 26201: 26201: 26201: tuple& 26201: operator=(typename conditional<__assignable(), 26201: const tuple&, 26201: const __nonesuch&>::type __in) 26201: noexcept(__nothrow_assignable()) 26201: { 26201: this->_M_assign(__in); 26201: return *this; 26201: } 26201: 26201: 26201: tuple& 26201: operator=(typename conditional<__assignable<_Elements...>(), 26201: tuple&&, 26201: __nonesuch&&>::type __in) 26201: noexcept(__nothrow_assignable<_Elements...>()) 26201: { 26201: this->_M_assign(std::move(__in)); 26201: return *this; 26201: } 26201: 26201: template 26201: 26201: __enable_if_t<__assignable(), tuple&> 26201: operator=(const tuple<_UElements...>& __in) 26201: noexcept(__nothrow_assignable()) 26201: { 26201: this->_M_assign(__in); 26201: return *this; 26201: } 26201: 26201: template 26201: 26201: __enable_if_t<__assignable<_UElements...>(), tuple&> 26201: operator=(tuple<_UElements...>&& __in) 26201: noexcept(__nothrow_assignable<_UElements...>()) 26201: { 26201: this->_M_assign(std::move(__in)); 26201: return *this; 26201: } 26201: 26201: 26201: 26201: void 26201: swap(tuple& __in) 26201: noexcept(__and_<__is_nothrow_swappable<_Elements>...>::value) 26201: { _Inherited::_M_swap(__in); } 26201: }; 26201: 26201: 26201: template 26201: tuple(_UTypes...) -> tuple<_UTypes...>; 26201: template 26201: tuple(pair<_T1, _T2>) -> tuple<_T1, _T2>; 26201: template 26201: tuple(allocator_arg_t, _Alloc, _UTypes...) -> tuple<_UTypes...>; 26201: template 26201: tuple(allocator_arg_t, _Alloc, pair<_T1, _T2>) -> tuple<_T1, _T2>; 26201: template 26201: tuple(allocator_arg_t, _Alloc, tuple<_UTypes...>) -> tuple<_UTypes...>; 26201: 26201: 26201: 26201: template<> 26201: class tuple<> 26201: { 26201: public: 26201: void swap(tuple&) noexcept { } 26201: 26201: 26201: tuple() = default; 26201: 26201: template 26201: 26201: tuple(allocator_arg_t, const _Alloc&) noexcept { } 26201: template 26201: 26201: tuple(allocator_arg_t, const _Alloc&, const tuple&) noexcept { } 26201: }; 26201: 26201: 26201: 26201: template 26201: class tuple<_T1, _T2> : public _Tuple_impl<0, _T1, _T2> 26201: { 26201: typedef _Tuple_impl<0, _T1, _T2> _Inherited; 26201: 26201: 26201: template 26201: using _ImplicitDefaultCtor = __enable_if_t< 26201: _TupleConstraints<_Dummy, _U1, _U2>:: 26201: __is_implicitly_default_constructible(), 26201: bool>; 26201: 26201: 26201: template 26201: using _ExplicitDefaultCtor = __enable_if_t< 26201: _TupleConstraints<_Dummy, _U1, _U2>:: 26201: __is_explicitly_default_constructible(), 26201: bool>; 26201: 26201: template 26201: using _TCC = _TupleConstraints<_Dummy, _T1, _T2>; 26201: 26201: 26201: template 26201: using _ImplicitCtor = __enable_if_t< 26201: _TCC<_Cond>::template __is_implicitly_constructible<_U1, _U2>(), 26201: bool>; 26201: 26201: 26201: template 26201: using _ExplicitCtor = __enable_if_t< 26201: _TCC<_Cond>::template __is_explicitly_constructible<_U1, _U2>(), 26201: bool>; 26201: 26201: template 26201: static constexpr bool __assignable() 26201: { 26201: return __and_, 26201: is_assignable<_T2&, _U2>>::value; 26201: } 26201: 26201: template 26201: static constexpr bool __nothrow_assignable() 26201: { 26201: return __and_, 26201: is_nothrow_assignable<_T2&, _U2>>::value; 26201: } 26201: 26201: template 26201: static constexpr bool __nothrow_constructible() 26201: { 26201: return __and_, 26201: is_nothrow_constructible<_T2, _U2>>::value; 26201: } 26201: 26201: static constexpr bool __nothrow_default_constructible() 26201: { 26201: return __and_, 26201: is_nothrow_default_constructible<_T2>>::value; 26201: } 26201: 26201: template 26201: static constexpr bool __is_alloc_arg() 26201: { return is_same<__remove_cvref_t<_U1>, allocator_arg_t>::value; } 26201: 26201: public: 26201: template = true> 26201: constexpr 26201: tuple() 26201: noexcept(__nothrow_default_constructible()) 26201: : _Inherited() { } 26201: 26201: template = false> 26201: explicit constexpr 26201: tuple() 26201: noexcept(__nothrow_default_constructible()) 26201: : _Inherited() { } 26201: 26201: template = true> 26201: constexpr 26201: tuple(const _T1& __a1, const _T2& __a2) 26201: noexcept(__nothrow_constructible()) 26201: : _Inherited(__a1, __a2) { } 26201: 26201: template = false> 26201: explicit constexpr 26201: tuple(const _T1& __a1, const _T2& __a2) 26201: noexcept(__nothrow_constructible()) 26201: : _Inherited(__a1, __a2) { } 26201: 26201: template(), _U1, _U2> = true> 26201: constexpr 26201: tuple(_U1&& __a1, _U2&& __a2) 26201: noexcept(__nothrow_constructible<_U1, _U2>()) 26201: : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { } 26201: 26201: template(), _U1, _U2> = false> 26201: explicit constexpr 26201: tuple(_U1&& __a1, _U2&& __a2) 26201: noexcept(__nothrow_constructible<_U1, _U2>()) 26201: : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { } 26201: 26201: constexpr tuple(const tuple&) = default; 26201: 26201: constexpr tuple(tuple&&) = default; 26201: 26201: template = true> 26201: constexpr 26201: tuple(const tuple<_U1, _U2>& __in) 26201: noexcept(__nothrow_constructible()) 26201: : _Inherited(static_cast&>(__in)) { } 26201: 26201: template = false> 26201: explicit constexpr 26201: tuple(const tuple<_U1, _U2>& __in) 26201: noexcept(__nothrow_constructible()) 26201: : _Inherited(static_cast&>(__in)) { } 26201: 26201: template = true> 26201: constexpr 26201: tuple(tuple<_U1, _U2>&& __in) 26201: noexcept(__nothrow_constructible<_U1, _U2>()) 26201: : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { } 26201: 26201: template = false> 26201: explicit constexpr 26201: tuple(tuple<_U1, _U2>&& __in) 26201: noexcept(__nothrow_constructible<_U1, _U2>()) 26201: : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { } 26201: 26201: template = true> 26201: constexpr 26201: tuple(const pair<_U1, _U2>& __in) 26201: noexcept(__nothrow_constructible()) 26201: : _Inherited(__in.first, __in.second) { } 26201: 26201: template = false> 26201: explicit constexpr 26201: tuple(const pair<_U1, _U2>& __in) 26201: noexcept(__nothrow_constructible()) 26201: : _Inherited(__in.first, __in.second) { } 26201: 26201: template = true> 26201: constexpr 26201: tuple(pair<_U1, _U2>&& __in) 26201: noexcept(__nothrow_constructible<_U1, _U2>()) 26201: : _Inherited(std::forward<_U1>(__in.first), 26201: std::forward<_U2>(__in.second)) { } 26201: 26201: template = false> 26201: explicit constexpr 26201: tuple(pair<_U1, _U2>&& __in) 26201: noexcept(__nothrow_constructible<_U1, _U2>()) 26201: : _Inherited(std::forward<_U1>(__in.first), 26201: std::forward<_U2>(__in.second)) { } 26201: 26201: 26201: 26201: template::value, _T1, _T2> = true> 26201: 26201: tuple(allocator_arg_t __tag, const _Alloc& __a) 26201: : _Inherited(__tag, __a) { } 26201: 26201: template = true> 26201: 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, 26201: const _T1& __a1, const _T2& __a2) 26201: : _Inherited(__tag, __a, __a1, __a2) { } 26201: 26201: template = false> 26201: explicit 26201: 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, 26201: const _T1& __a1, const _T2& __a2) 26201: : _Inherited(__tag, __a, __a1, __a2) { } 26201: 26201: template = true> 26201: 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, _U1&& __a1, _U2&& __a2) 26201: : _Inherited(__tag, __a, std::forward<_U1>(__a1), 26201: std::forward<_U2>(__a2)) { } 26201: 26201: template = false> 26201: explicit 26201: 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, 26201: _U1&& __a1, _U2&& __a2) 26201: : _Inherited(__tag, __a, std::forward<_U1>(__a1), 26201: std::forward<_U2>(__a2)) { } 26201: 26201: template 26201: 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) 26201: : _Inherited(__tag, __a, static_cast(__in)) { } 26201: 26201: template 26201: 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) 26201: : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } 26201: 26201: template = true> 26201: 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, 26201: const tuple<_U1, _U2>& __in) 26201: : _Inherited(__tag, __a, 26201: static_cast&>(__in)) 26201: { } 26201: 26201: template = false> 26201: explicit 26201: 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, 26201: const tuple<_U1, _U2>& __in) 26201: : _Inherited(__tag, __a, 26201: static_cast&>(__in)) 26201: { } 26201: 26201: template = true> 26201: 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple<_U1, _U2>&& __in) 26201: : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) 26201: { } 26201: 26201: template = false> 26201: explicit 26201: 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple<_U1, _U2>&& __in) 26201: : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) 26201: { } 26201: 26201: template = true> 26201: 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, 26201: const pair<_U1, _U2>& __in) 26201: : _Inherited(__tag, __a, __in.first, __in.second) { } 26201: 26201: template = false> 26201: explicit 26201: 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, 26201: const pair<_U1, _U2>& __in) 26201: : _Inherited(__tag, __a, __in.first, __in.second) { } 26201: 26201: template = true> 26201: 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, pair<_U1, _U2>&& __in) 26201: : _Inherited(__tag, __a, std::forward<_U1>(__in.first), 26201: std::forward<_U2>(__in.second)) { } 26201: 26201: template = false> 26201: explicit 26201: 26201: tuple(allocator_arg_t __tag, const _Alloc& __a, pair<_U1, _U2>&& __in) 26201: : _Inherited(__tag, __a, std::forward<_U1>(__in.first), 26201: std::forward<_U2>(__in.second)) { } 26201: 26201: 26201: 26201: 26201: tuple& 26201: operator=(typename conditional<__assignable(), 26201: const tuple&, 26201: const __nonesuch&>::type __in) 26201: noexcept(__nothrow_assignable()) 26201: { 26201: this->_M_assign(__in); 26201: return *this; 26201: } 26201: 26201: 26201: tuple& 26201: operator=(typename conditional<__assignable<_T1, _T2>(), 26201: tuple&&, 26201: __nonesuch&&>::type __in) 26201: noexcept(__nothrow_assignable<_T1, _T2>()) 26201: { 26201: this->_M_assign(std::move(__in)); 26201: return *this; 26201: } 26201: 26201: template 26201: 26201: __enable_if_t<__assignable(), tuple&> 26201: operator=(const tuple<_U1, _U2>& __in) 26201: noexcept(__nothrow_assignable()) 26201: { 26201: this->_M_assign(__in); 26201: return *this; 26201: } 26201: 26201: template 26201: 26201: __enable_if_t<__assignable<_U1, _U2>(), tuple&> 26201: operator=(tuple<_U1, _U2>&& __in) 26201: noexcept(__nothrow_assignable<_U1, _U2>()) 26201: { 26201: this->_M_assign(std::move(__in)); 26201: return *this; 26201: } 26201: 26201: template 26201: 26201: __enable_if_t<__assignable(), tuple&> 26201: operator=(const pair<_U1, _U2>& __in) 26201: noexcept(__nothrow_assignable()) 26201: { 26201: this->_M_head(*this) = __in.first; 26201: this->_M_tail(*this)._M_head(*this) = __in.second; 26201: return *this; 26201: } 26201: 26201: template 26201: 26201: __enable_if_t<__assignable<_U1, _U2>(), tuple&> 26201: operator=(pair<_U1, _U2>&& __in) 26201: noexcept(__nothrow_assignable<_U1, _U2>()) 26201: { 26201: this->_M_head(*this) = std::forward<_U1>(__in.first); 26201: this->_M_tail(*this)._M_head(*this) = std::forward<_U2>(__in.second); 26201: return *this; 26201: } 26201: 26201: 26201: void 26201: swap(tuple& __in) 26201: noexcept(__and_<__is_nothrow_swappable<_T1>, 26201: __is_nothrow_swappable<_T2>>::value) 26201: { _Inherited::_M_swap(__in); } 26201: }; 26201: 26201: 26201: 26201: template 26201: struct tuple_size> 26201: : public integral_constant { }; 26201: 26201: 26201: template 26201: inline constexpr size_t tuple_size_v = tuple_size<_Tp>::value; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct tuple_element<__i, tuple<_Head, _Tail...> > 26201: : tuple_element<__i - 1, tuple<_Tail...> > { }; 26201: 26201: 26201: 26201: 26201: template 26201: struct tuple_element<0, tuple<_Head, _Tail...> > 26201: { 26201: typedef _Head type; 26201: }; 26201: 26201: 26201: 26201: 26201: template 26201: struct tuple_element<__i, tuple<>> 26201: { 26201: static_assert(__i < tuple_size>::value, 26201: "tuple index is in range"); 26201: }; 26201: 26201: template 26201: constexpr _Head& 26201: __get_helper(_Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 26201: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 26201: 26201: template 26201: constexpr const _Head& 26201: __get_helper(const _Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 26201: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 26201: 26201: 26201: template 26201: constexpr __tuple_element_t<__i, tuple<_Elements...>>& 26201: get(tuple<_Elements...>& __t) noexcept 26201: { return std::__get_helper<__i>(__t); } 26201: 26201: 26201: template 26201: constexpr const __tuple_element_t<__i, tuple<_Elements...>>& 26201: get(const tuple<_Elements...>& __t) noexcept 26201: { return std::__get_helper<__i>(__t); } 26201: 26201: 26201: template 26201: constexpr __tuple_element_t<__i, tuple<_Elements...>>&& 26201: get(tuple<_Elements...>&& __t) noexcept 26201: { 26201: typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; 26201: return std::forward<__element_type&&>(std::get<__i>(__t)); 26201: } 26201: 26201: 26201: template 26201: constexpr const __tuple_element_t<__i, tuple<_Elements...>>&& 26201: get(const tuple<_Elements...>&& __t) noexcept 26201: { 26201: typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; 26201: return std::forward(std::get<__i>(__t)); 26201: } 26201: 26201: 26201: 26201: #define __cpp_lib_tuples_by_type 201304 26201: 26201: template 26201: constexpr _Head& 26201: __get_helper2(_Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 26201: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 26201: 26201: template 26201: constexpr const _Head& 26201: __get_helper2(const _Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 26201: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 26201: 26201: 26201: template 26201: constexpr _Tp& 26201: get(tuple<_Types...>& __t) noexcept 26201: { return std::__get_helper2<_Tp>(__t); } 26201: 26201: 26201: template 26201: constexpr _Tp&& 26201: get(tuple<_Types...>&& __t) noexcept 26201: { return std::forward<_Tp&&>(std::__get_helper2<_Tp>(__t)); } 26201: 26201: 26201: template 26201: constexpr const _Tp& 26201: get(const tuple<_Types...>& __t) noexcept 26201: { return std::__get_helper2<_Tp>(__t); } 26201: 26201: 26201: 26201: template 26201: constexpr const _Tp&& 26201: get(const tuple<_Types...>&& __t) noexcept 26201: { return std::forward(std::__get_helper2<_Tp>(__t)); } 26201: 26201: 26201: 26201: template 26201: struct __tuple_compare 26201: { 26201: static constexpr bool 26201: __eq(const _Tp& __t, const _Up& __u) 26201: { 26201: return bool(std::get<__i>(__t) == std::get<__i>(__u)) 26201: && __tuple_compare<_Tp, _Up, __i + 1, __size>::__eq(__t, __u); 26201: } 26201: 26201: static constexpr bool 26201: __less(const _Tp& __t, const _Up& __u) 26201: { 26201: return bool(std::get<__i>(__t) < std::get<__i>(__u)) 26201: || (!bool(std::get<__i>(__u) < std::get<__i>(__t)) 26201: && __tuple_compare<_Tp, _Up, __i + 1, __size>::__less(__t, __u)); 26201: } 26201: }; 26201: 26201: template 26201: struct __tuple_compare<_Tp, _Up, __size, __size> 26201: { 26201: static constexpr bool 26201: __eq(const _Tp&, const _Up&) { return true; } 26201: 26201: static constexpr bool 26201: __less(const _Tp&, const _Up&) { return false; } 26201: }; 26201: 26201: template 26201: constexpr bool 26201: operator==(const tuple<_TElements...>& __t, 26201: const tuple<_UElements...>& __u) 26201: { 26201: static_assert(sizeof...(_TElements) == sizeof...(_UElements), 26201: "tuple objects can only be compared if they have equal sizes."); 26201: using __compare = __tuple_compare, 26201: tuple<_UElements...>, 26201: 0, sizeof...(_TElements)>; 26201: return __compare::__eq(__t, __u); 26201: } 26201: # 1437 "/usr/x86_64-linux-gnu/include/c++/10/tuple" 3 26201: template 26201: constexpr bool 26201: operator<(const tuple<_TElements...>& __t, 26201: const tuple<_UElements...>& __u) 26201: { 26201: static_assert(sizeof...(_TElements) == sizeof...(_UElements), 26201: "tuple objects can only be compared if they have equal sizes."); 26201: using __compare = __tuple_compare, 26201: tuple<_UElements...>, 26201: 0, sizeof...(_TElements)>; 26201: return __compare::__less(__t, __u); 26201: } 26201: 26201: template 26201: constexpr bool 26201: operator!=(const tuple<_TElements...>& __t, 26201: const tuple<_UElements...>& __u) 26201: { return !(__t == __u); } 26201: 26201: template 26201: constexpr bool 26201: operator>(const tuple<_TElements...>& __t, 26201: const tuple<_UElements...>& __u) 26201: { return __u < __t; } 26201: 26201: template 26201: constexpr bool 26201: operator<=(const tuple<_TElements...>& __t, 26201: const tuple<_UElements...>& __u) 26201: { return !(__u < __t); } 26201: 26201: template 26201: constexpr bool 26201: operator>=(const tuple<_TElements...>& __t, 26201: const tuple<_UElements...>& __u) 26201: { return !(__t < __u); } 26201: 26201: 26201: 26201: template 26201: constexpr tuple::__type...> 26201: make_tuple(_Elements&&... __args) 26201: { 26201: typedef tuple::__type...> 26201: __result_type; 26201: return __result_type(std::forward<_Elements>(__args)...); 26201: } 26201: 26201: 26201: 26201: 26201: template 26201: constexpr tuple<_Elements&&...> 26201: forward_as_tuple(_Elements&&... __args) noexcept 26201: { return tuple<_Elements&&...>(std::forward<_Elements>(__args)...); } 26201: 26201: template 26201: struct __make_tuple_impl; 26201: 26201: template 26201: struct __make_tuple_impl<_Idx, tuple<_Tp...>, _Tuple, _Nm> 26201: : __make_tuple_impl<_Idx + 1, 26201: tuple<_Tp..., __tuple_element_t<_Idx, _Tuple>>, 26201: _Tuple, _Nm> 26201: { }; 26201: 26201: template 26201: struct __make_tuple_impl<_Nm, tuple<_Tp...>, _Tuple, _Nm> 26201: { 26201: typedef tuple<_Tp...> __type; 26201: }; 26201: 26201: template 26201: struct __do_make_tuple 26201: : __make_tuple_impl<0, tuple<>, _Tuple, std::tuple_size<_Tuple>::value> 26201: { }; 26201: 26201: 26201: template 26201: struct __make_tuple 26201: : public __do_make_tuple<__remove_cvref_t<_Tuple>> 26201: { }; 26201: 26201: 26201: template 26201: struct __combine_tuples; 26201: 26201: template<> 26201: struct __combine_tuples<> 26201: { 26201: typedef tuple<> __type; 26201: }; 26201: 26201: template 26201: struct __combine_tuples> 26201: { 26201: typedef tuple<_Ts...> __type; 26201: }; 26201: 26201: template 26201: struct __combine_tuples, tuple<_T2s...>, _Rem...> 26201: { 26201: typedef typename __combine_tuples, 26201: _Rem...>::__type __type; 26201: }; 26201: 26201: 26201: template 26201: struct __tuple_cat_result 26201: { 26201: typedef typename __combine_tuples 26201: ::__type...>::__type __type; 26201: }; 26201: 26201: 26201: 26201: template 26201: struct __make_1st_indices; 26201: 26201: template<> 26201: struct __make_1st_indices<> 26201: { 26201: typedef std::_Index_tuple<> __type; 26201: }; 26201: 26201: template 26201: struct __make_1st_indices<_Tp, _Tpls...> 26201: { 26201: typedef typename std::_Build_index_tuple::type>::value>::__type __type; 26201: }; 26201: 26201: 26201: 26201: 26201: template 26201: struct __tuple_concater; 26201: 26201: template 26201: struct __tuple_concater<_Ret, std::_Index_tuple<_Is...>, _Tp, _Tpls...> 26201: { 26201: template 26201: static constexpr _Ret 26201: _S_do(_Tp&& __tp, _Tpls&&... __tps, _Us&&... __us) 26201: { 26201: typedef typename __make_1st_indices<_Tpls...>::__type __idx; 26201: typedef __tuple_concater<_Ret, __idx, _Tpls...> __next; 26201: return __next::_S_do(std::forward<_Tpls>(__tps)..., 26201: std::forward<_Us>(__us)..., 26201: std::get<_Is>(std::forward<_Tp>(__tp))...); 26201: } 26201: }; 26201: 26201: template 26201: struct __tuple_concater<_Ret, std::_Index_tuple<>> 26201: { 26201: template 26201: static constexpr _Ret 26201: _S_do(_Us&&... __us) 26201: { 26201: return _Ret(std::forward<_Us>(__us)...); 26201: } 26201: }; 26201: 26201: 26201: template...>::value>::type> 26201: constexpr auto 26201: tuple_cat(_Tpls&&... __tpls) 26201: -> typename __tuple_cat_result<_Tpls...>::__type 26201: { 26201: typedef typename __tuple_cat_result<_Tpls...>::__type __ret; 26201: typedef typename __make_1st_indices<_Tpls...>::__type __idx; 26201: typedef __tuple_concater<__ret, __idx, _Tpls...> __concater; 26201: return __concater::_S_do(std::forward<_Tpls>(__tpls)...); 26201: } 26201: 26201: 26201: 26201: 26201: template 26201: constexpr tuple<_Elements&...> 26201: tie(_Elements&... __args) noexcept 26201: { return tuple<_Elements&...>(__args...); } 26201: 26201: 26201: template 26201: 26201: inline 26201: 26201: 26201: typename enable_if<__and_<__is_swappable<_Elements>...>::value 26201: >::type 26201: 26201: 26201: 26201: swap(tuple<_Elements...>& __x, tuple<_Elements...>& __y) 26201: noexcept(noexcept(__x.swap(__y))) 26201: { __x.swap(__y); } 26201: 26201: 26201: template 26201: 26201: typename enable_if...>::value>::type 26201: swap(tuple<_Elements...>&, tuple<_Elements...>&) = delete; 26201: 26201: 26201: 26201: 26201: 26201: 26201: struct _Swallow_assign 26201: { 26201: template 26201: constexpr const _Swallow_assign& 26201: operator=(const _Tp&) const 26201: { return *this; } 26201: }; 26201: 26201: 26201: 26201: inline constexpr _Swallow_assign ignore{}; 26201: 26201: 26201: template 26201: struct uses_allocator, _Alloc> : true_type { }; 26201: # 1673 "/usr/x86_64-linux-gnu/include/c++/10/tuple" 3 26201: template 26201: template 26201: 26201: inline 26201: pair<_T1, _T2>:: 26201: pair(piecewise_construct_t, 26201: tuple<_Args1...> __first, tuple<_Args2...> __second) 26201: : pair(__first, __second, 26201: typename _Build_index_tuple::__type(), 26201: typename _Build_index_tuple::__type()) 26201: { } 26201: 26201: template 26201: template 26201: inline 26201: pair<_T1, _T2>:: 26201: pair(tuple<_Args1...>& __tuple1, tuple<_Args2...>& __tuple2, 26201: _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>) 26201: : first(std::forward<_Args1>(std::get<_Indexes1>(__tuple1))...), 26201: second(std::forward<_Args2>(std::get<_Indexes2>(__tuple2))...) 26201: { } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template class _Trait, typename _Tp, typename _Tuple> 26201: inline constexpr bool __unpack_std_tuple = false; 26201: 26201: template class _Trait, typename _Tp, typename... _Up> 26201: inline constexpr bool __unpack_std_tuple<_Trait, _Tp, tuple<_Up...>> 26201: = _Trait<_Tp, _Up...>::value; 26201: 26201: template class _Trait, typename _Tp, typename... _Up> 26201: inline constexpr bool __unpack_std_tuple<_Trait, _Tp, tuple<_Up...>&> 26201: = _Trait<_Tp, _Up&...>::value; 26201: 26201: template class _Trait, typename _Tp, typename... _Up> 26201: inline constexpr bool __unpack_std_tuple<_Trait, _Tp, const tuple<_Up...>> 26201: = _Trait<_Tp, const _Up...>::value; 26201: 26201: template class _Trait, typename _Tp, typename... _Up> 26201: inline constexpr bool __unpack_std_tuple<_Trait, _Tp, const tuple<_Up...>&> 26201: = _Trait<_Tp, const _Up&...>::value; 26201: 26201: #define __cpp_lib_apply 201603 26201: 26201: template 26201: constexpr decltype(auto) 26201: __apply_impl(_Fn&& __f, _Tuple&& __t, index_sequence<_Idx...>) 26201: { 26201: return std::__invoke(std::forward<_Fn>(__f), 26201: std::get<_Idx>(std::forward<_Tuple>(__t))...); 26201: } 26201: 26201: template 26201: constexpr decltype(auto) 26201: apply(_Fn&& __f, _Tuple&& __t) 26201: noexcept(__unpack_std_tuple) 26201: { 26201: using _Indices 26201: = make_index_sequence>>; 26201: return std::__apply_impl(std::forward<_Fn>(__f), 26201: std::forward<_Tuple>(__t), 26201: _Indices{}); 26201: } 26201: 26201: #define __cpp_lib_make_from_tuple 201606 26201: 26201: template 26201: constexpr _Tp 26201: __make_from_tuple_impl(_Tuple&& __t, index_sequence<_Idx...>) 26201: { return _Tp(std::get<_Idx>(std::forward<_Tuple>(__t))...); } 26201: 26201: template 26201: constexpr _Tp 26201: make_from_tuple(_Tuple&& __t) 26201: noexcept(__unpack_std_tuple) 26201: { 26201: return __make_from_tuple_impl<_Tp>( 26201: std::forward<_Tuple>(__t), 26201: make_index_sequence>>{}); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 55 "/usr/x86_64-linux-gnu/include/c++/10/functional" 2 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/functional_hash.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/functional_hash.h" 3 26201: #define _FUNCTIONAL_HASH_H 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/functional_hash.h" 3 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 49 "/usr/x86_64-linux-gnu/include/c++/10/bits/functional_hash.h" 3 26201: template 26201: struct __hash_base 26201: { 26201: typedef _Result result_type [[__deprecated__]]; 26201: typedef _Arg argument_type [[__deprecated__]]; 26201: }; 26201: 26201: 26201: template 26201: struct hash; 26201: 26201: template 26201: struct __poison_hash 26201: { 26201: static constexpr bool __enable_hash_call = false; 26201: private: 26201: 26201: __poison_hash(__poison_hash&&); 26201: ~__poison_hash(); 26201: }; 26201: 26201: template 26201: struct __poison_hash<_Tp, __void_t()(declval<_Tp>()))>> 26201: { 26201: static constexpr bool __enable_hash_call = true; 26201: }; 26201: 26201: 26201: template::value> 26201: struct __hash_enum 26201: { 26201: private: 26201: 26201: __hash_enum(__hash_enum&&); 26201: ~__hash_enum(); 26201: }; 26201: 26201: 26201: template 26201: struct __hash_enum<_Tp, true> : public __hash_base 26201: { 26201: size_t 26201: operator()(_Tp __val) const noexcept 26201: { 26201: using __type = typename underlying_type<_Tp>::type; 26201: return hash<__type>{}(static_cast<__type>(__val)); 26201: } 26201: }; 26201: 26201: 26201: 26201: template 26201: struct hash : __hash_enum<_Tp> 26201: { }; 26201: 26201: 26201: template 26201: struct hash<_Tp*> : public __hash_base 26201: { 26201: size_t 26201: operator()(_Tp* __p) const noexcept 26201: { return reinterpret_cast(__p); } 26201: }; 26201: 26201: 26201: #define _Cxx_hashtable_define_trivial_hash(_Tp) template<> struct hash<_Tp> : public __hash_base { size_t operator()(_Tp __val) const noexcept { return static_cast(__val); } }; 26201: # 124 "/usr/x86_64-linux-gnu/include/c++/10/bits/functional_hash.h" 3 26201: template<> struct hash : public __hash_base { size_t operator()(bool __val) const noexcept { return static_cast(__val); } }; 26201: 26201: 26201: template<> struct hash : public __hash_base { size_t operator()(char __val) const noexcept { return static_cast(__val); } }; 26201: 26201: 26201: template<> struct hash : public __hash_base { size_t operator()(signed char __val) const noexcept { return static_cast(__val); } }; 26201: 26201: 26201: template<> struct hash : public __hash_base { size_t operator()(unsigned char __val) const noexcept { return static_cast(__val); } }; 26201: 26201: 26201: template<> struct hash : public __hash_base { size_t operator()(wchar_t __val) const noexcept { return static_cast(__val); } }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template<> struct hash : public __hash_base { size_t operator()(char16_t __val) const noexcept { return static_cast(__val); } }; 26201: 26201: 26201: template<> struct hash : public __hash_base { size_t operator()(char32_t __val) const noexcept { return static_cast(__val); } }; 26201: 26201: 26201: template<> struct hash : public __hash_base { size_t operator()(short __val) const noexcept { return static_cast(__val); } }; 26201: 26201: 26201: template<> struct hash : public __hash_base { size_t operator()(int __val) const noexcept { return static_cast(__val); } }; 26201: 26201: 26201: template<> struct hash : public __hash_base { size_t operator()(long __val) const noexcept { return static_cast(__val); } }; 26201: 26201: 26201: template<> struct hash : public __hash_base { size_t operator()(long long __val) const noexcept { return static_cast(__val); } }; 26201: 26201: 26201: template<> struct hash : public __hash_base { size_t operator()(unsigned short __val) const noexcept { return static_cast(__val); } }; 26201: 26201: 26201: template<> struct hash : public __hash_base { size_t operator()(unsigned int __val) const noexcept { return static_cast(__val); } }; 26201: 26201: 26201: template<> struct hash : public __hash_base { size_t operator()(unsigned long __val) const noexcept { return static_cast(__val); } }; 26201: 26201: 26201: template<> struct hash : public __hash_base { size_t operator()(unsigned long long __val) const noexcept { return static_cast(__val); } }; 26201: # 190 "/usr/x86_64-linux-gnu/include/c++/10/bits/functional_hash.h" 3 26201: #undef _Cxx_hashtable_define_trivial_hash 26201: 26201: struct _Hash_impl 26201: { 26201: static size_t 26201: hash(const void* __ptr, size_t __clength, 26201: size_t __seed = static_cast(0xc70f6907UL)) 26201: { return _Hash_bytes(__ptr, __clength, __seed); } 26201: 26201: template 26201: static size_t 26201: hash(const _Tp& __val) 26201: { return hash(&__val, sizeof(__val)); } 26201: 26201: template 26201: static size_t 26201: __hash_combine(const _Tp& __val, size_t __hash) 26201: { return hash(&__val, sizeof(__val), __hash); } 26201: }; 26201: 26201: 26201: struct _Fnv_hash_impl 26201: { 26201: static size_t 26201: hash(const void* __ptr, size_t __clength, 26201: size_t __seed = static_cast(2166136261UL)) 26201: { return _Fnv_hash_bytes(__ptr, __clength, __seed); } 26201: 26201: template 26201: static size_t 26201: hash(const _Tp& __val) 26201: { return hash(&__val, sizeof(__val)); } 26201: 26201: template 26201: static size_t 26201: __hash_combine(const _Tp& __val, size_t __hash) 26201: { return hash(&__val, sizeof(__val), __hash); } 26201: }; 26201: 26201: 26201: template<> 26201: struct hash : public __hash_base 26201: { 26201: size_t 26201: operator()(float __val) const noexcept 26201: { 26201: 26201: return __val != 0.0f ? std::_Hash_impl::hash(__val) : 0; 26201: } 26201: }; 26201: 26201: 26201: template<> 26201: struct hash : public __hash_base 26201: { 26201: size_t 26201: operator()(double __val) const noexcept 26201: { 26201: 26201: return __val != 0.0 ? std::_Hash_impl::hash(__val) : 0; 26201: } 26201: }; 26201: 26201: 26201: template<> 26201: struct hash 26201: : public __hash_base 26201: { 26201: __attribute__ ((__pure__)) size_t 26201: operator()(long double __val) const noexcept; 26201: }; 26201: 26201: 26201: template<> 26201: struct hash : public __hash_base 26201: { 26201: size_t 26201: operator()(nullptr_t) const noexcept 26201: { return 0; } 26201: }; 26201: # 278 "/usr/x86_64-linux-gnu/include/c++/10/bits/functional_hash.h" 3 26201: template 26201: struct __is_fast_hash : public std::true_type 26201: { }; 26201: 26201: template<> 26201: struct __is_fast_hash> : public std::false_type 26201: { }; 26201: 26201: 26201: } 26201: # 57 "/usr/x86_64-linux-gnu/include/c++/10/functional" 2 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/refwrap.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/refwrap.h" 3 26201: #define _GLIBCXX_REFWRAP_H 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/refwrap.h" 3 26201: # 43 "/usr/x86_64-linux-gnu/include/c++/10/bits/refwrap.h" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 54 "/usr/x86_64-linux-gnu/include/c++/10/bits/refwrap.h" 3 26201: template 26201: struct _Maybe_unary_or_binary_function { }; 26201: 26201: 26201: template 26201: struct _Maybe_unary_or_binary_function<_Res, _T1> 26201: : std::unary_function<_T1, _Res> { }; 26201: 26201: 26201: template 26201: struct _Maybe_unary_or_binary_function<_Res, _T1, _T2> 26201: : std::binary_function<_T1, _T2, _Res> { }; 26201: 26201: template 26201: struct _Mem_fn_traits; 26201: 26201: template 26201: struct _Mem_fn_traits_base 26201: { 26201: using __result_type = _Res; 26201: using __maybe_type 26201: = _Maybe_unary_or_binary_function<_Res, _Class*, _ArgTypes...>; 26201: using __arity = integral_constant; 26201: }; 26201: 26201: #define _GLIBCXX_MEM_FN_TRAITS2(_CV,_REF,_LVAL,_RVAL) template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) _CV _REF> : _Mem_fn_traits_base<_Res, _CV _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) _CV _REF> : _Mem_fn_traits_base<_Res, _CV _Class, _ArgTypes...> { using __vararg = true_type; }; 26201: # 93 "/usr/x86_64-linux-gnu/include/c++/10/bits/refwrap.h" 3 26201: #define _GLIBCXX_MEM_FN_TRAITS(_REF,_LVAL,_RVAL) _GLIBCXX_MEM_FN_TRAITS2( , _REF, _LVAL, _RVAL) _GLIBCXX_MEM_FN_TRAITS2(const , _REF, _LVAL, _RVAL) _GLIBCXX_MEM_FN_TRAITS2(volatile , _REF, _LVAL, _RVAL) _GLIBCXX_MEM_FN_TRAITS2(const volatile, _REF, _LVAL, _RVAL) 26201: 26201: 26201: 26201: 26201: 26201: template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) > : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) > : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const > : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const > : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile > : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) volatile > : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile > : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const volatile > : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; }; 26201: template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) &> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) &> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const &> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const &> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile &> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) volatile &> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile &> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const volatile &> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; }; 26201: template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) &&> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) &&> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const &&> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const &&> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile &&> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) volatile &&> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile &&> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const volatile &&> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; }; 26201: 26201: 26201: template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) noexcept> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) noexcept> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const noexcept> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const noexcept> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile noexcept> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) volatile noexcept> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile noexcept> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const volatile noexcept> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; }; 26201: template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) & noexcept> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) & noexcept> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const & noexcept> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const & noexcept> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile & noexcept> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) volatile & noexcept> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile & noexcept> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const volatile & noexcept> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; }; 26201: template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) && noexcept> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) && noexcept> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const && noexcept> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const && noexcept> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile && noexcept> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) volatile && noexcept> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile && noexcept> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const volatile && noexcept> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; }; 26201: 26201: 26201: #undef _GLIBCXX_MEM_FN_TRAITS 26201: #undef _GLIBCXX_MEM_FN_TRAITS2 26201: 26201: 26201: template> 26201: struct _Maybe_get_result_type 26201: { }; 26201: 26201: template 26201: struct _Maybe_get_result_type<_Functor, 26201: __void_t> 26201: { typedef typename _Functor::result_type result_type; }; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct _Weak_result_type_impl 26201: : _Maybe_get_result_type<_Functor> 26201: { }; 26201: 26201: 26201: template 26201: struct _Weak_result_type_impl<_Res(_ArgTypes...) noexcept (_NE)> 26201: { typedef _Res result_type; }; 26201: 26201: 26201: template 26201: struct _Weak_result_type_impl<_Res(_ArgTypes......) noexcept (_NE)> 26201: { typedef _Res result_type; }; 26201: 26201: 26201: template 26201: struct _Weak_result_type_impl<_Res(*)(_ArgTypes...) noexcept (_NE)> 26201: { typedef _Res result_type; }; 26201: 26201: 26201: template 26201: struct 26201: _Weak_result_type_impl<_Res(*)(_ArgTypes......) noexcept (_NE)> 26201: { typedef _Res result_type; }; 26201: 26201: 26201: template::value> 26201: struct _Weak_result_type_memfun 26201: : _Weak_result_type_impl<_Functor> 26201: { }; 26201: 26201: 26201: template 26201: struct _Weak_result_type_memfun<_MemFunPtr, true> 26201: { 26201: using result_type = typename _Mem_fn_traits<_MemFunPtr>::__result_type; 26201: }; 26201: 26201: 26201: template 26201: struct _Weak_result_type_memfun<_Func _Class::*, false> 26201: { }; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct _Weak_result_type 26201: : _Weak_result_type_memfun::type> 26201: { }; 26201: 26201: 26201: 26201: template> 26201: struct _Refwrap_base_arg1 26201: { }; 26201: 26201: 26201: template 26201: struct _Refwrap_base_arg1<_Tp, 26201: __void_t> 26201: { 26201: typedef typename _Tp::argument_type argument_type; 26201: }; 26201: 26201: 26201: template> 26201: struct _Refwrap_base_arg2 26201: { }; 26201: 26201: 26201: template 26201: struct _Refwrap_base_arg2<_Tp, 26201: __void_t> 26201: { 26201: typedef typename _Tp::first_argument_type first_argument_type; 26201: typedef typename _Tp::second_argument_type second_argument_type; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct _Reference_wrapper_base 26201: : _Weak_result_type<_Tp>, _Refwrap_base_arg1<_Tp>, _Refwrap_base_arg2<_Tp> 26201: { }; 26201: 26201: 26201: template 26201: struct _Reference_wrapper_base<_Res(_T1) noexcept (_NE)> 26201: : unary_function<_T1, _Res> 26201: { }; 26201: 26201: template 26201: struct _Reference_wrapper_base<_Res(_T1) const> 26201: : unary_function<_T1, _Res> 26201: { }; 26201: 26201: template 26201: struct _Reference_wrapper_base<_Res(_T1) volatile> 26201: : unary_function<_T1, _Res> 26201: { }; 26201: 26201: template 26201: struct _Reference_wrapper_base<_Res(_T1) const volatile> 26201: : unary_function<_T1, _Res> 26201: { }; 26201: 26201: 26201: template 26201: struct _Reference_wrapper_base<_Res(_T1, _T2) noexcept (_NE)> 26201: : binary_function<_T1, _T2, _Res> 26201: { }; 26201: 26201: template 26201: struct _Reference_wrapper_base<_Res(_T1, _T2) const> 26201: : binary_function<_T1, _T2, _Res> 26201: { }; 26201: 26201: template 26201: struct _Reference_wrapper_base<_Res(_T1, _T2) volatile> 26201: : binary_function<_T1, _T2, _Res> 26201: { }; 26201: 26201: template 26201: struct _Reference_wrapper_base<_Res(_T1, _T2) const volatile> 26201: : binary_function<_T1, _T2, _Res> 26201: { }; 26201: 26201: 26201: template 26201: struct _Reference_wrapper_base<_Res(*)(_T1) noexcept (_NE)> 26201: : unary_function<_T1, _Res> 26201: { }; 26201: 26201: 26201: template 26201: struct _Reference_wrapper_base<_Res(*)(_T1, _T2) noexcept (_NE)> 26201: : binary_function<_T1, _T2, _Res> 26201: { }; 26201: 26201: template::value> 26201: struct _Reference_wrapper_base_memfun 26201: : _Reference_wrapper_base<_Tp> 26201: { }; 26201: 26201: template 26201: struct _Reference_wrapper_base_memfun<_MemFunPtr, true> 26201: : _Mem_fn_traits<_MemFunPtr>::__maybe_type 26201: { 26201: using result_type = typename _Mem_fn_traits<_MemFunPtr>::__result_type; 26201: }; 26201: # 293 "/usr/x86_64-linux-gnu/include/c++/10/bits/refwrap.h" 3 26201: template 26201: class reference_wrapper 26201: 26201: 26201: 26201: : public _Reference_wrapper_base_memfun::type> 26201: 26201: { 26201: _Tp* _M_data; 26201: 26201: 26201: static _Tp* _S_fun(_Tp& __r) noexcept { return std::__addressof(__r); } 26201: 26201: static void _S_fun(_Tp&&) = delete; 26201: 26201: template> 26201: using __not_same 26201: = typename enable_if::value>::type; 26201: 26201: public: 26201: typedef _Tp type; 26201: 26201: 26201: 26201: 26201: template, typename 26201: = decltype(reference_wrapper::_S_fun(std::declval<_Up>()))> 26201: 26201: reference_wrapper(_Up&& __uref) 26201: noexcept(noexcept(reference_wrapper::_S_fun(std::declval<_Up>()))) 26201: : _M_data(reference_wrapper::_S_fun(std::forward<_Up>(__uref))) 26201: { } 26201: 26201: reference_wrapper(const reference_wrapper&) = default; 26201: 26201: reference_wrapper& 26201: operator=(const reference_wrapper&) = default; 26201: 26201: 26201: operator _Tp&() const noexcept 26201: { return this->get(); } 26201: 26201: 26201: _Tp& 26201: get() const noexcept 26201: { return *_M_data; } 26201: 26201: template 26201: 26201: typename result_of<_Tp&(_Args&&...)>::type 26201: operator()(_Args&&... __args) const 26201: { 26201: 26201: 26201: 26201: 26201: return std::__invoke(get(), std::forward<_Args>(__args)...); 26201: } 26201: }; 26201: 26201: 26201: template 26201: reference_wrapper(_Tp&) -> reference_wrapper<_Tp>; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: 26201: inline reference_wrapper<_Tp> 26201: ref(_Tp& __t) noexcept 26201: { return reference_wrapper<_Tp>(__t); } 26201: 26201: 26201: template 26201: 26201: inline reference_wrapper 26201: cref(const _Tp& __t) noexcept 26201: { return reference_wrapper(__t); } 26201: 26201: template 26201: void ref(const _Tp&&) = delete; 26201: 26201: template 26201: void cref(const _Tp&&) = delete; 26201: 26201: 26201: template 26201: 26201: inline reference_wrapper<_Tp> 26201: ref(reference_wrapper<_Tp> __t) noexcept 26201: { return __t; } 26201: 26201: 26201: template 26201: 26201: inline reference_wrapper 26201: cref(reference_wrapper<_Tp> __t) noexcept 26201: { return { __t.get() }; } 26201: 26201: 26201: 26201: 26201: } 26201: # 59 "/usr/x86_64-linux-gnu/include/c++/10/functional" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_function.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_function.h" 3 26201: #define _GLIBCXX_STD_FUNCTION_H 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_function.h" 3 26201: # 47 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_function.h" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: class bad_function_call : public std::exception 26201: { 26201: public: 26201: virtual ~bad_function_call() noexcept; 26201: 26201: const char* what() const noexcept; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct __is_location_invariant 26201: : is_trivially_copyable<_Tp>::type 26201: { }; 26201: 26201: class _Undefined_class; 26201: 26201: union _Nocopy_types 26201: { 26201: void* _M_object; 26201: const void* _M_const_object; 26201: void (*_M_function_pointer)(); 26201: void (_Undefined_class::*_M_member_pointer)(); 26201: }; 26201: 26201: union [[gnu::may_alias]] _Any_data 26201: { 26201: void* _M_access() { return &_M_pod_data[0]; } 26201: const void* _M_access() const { return &_M_pod_data[0]; } 26201: 26201: template 26201: _Tp& 26201: _M_access() 26201: { return *static_cast<_Tp*>(_M_access()); } 26201: 26201: template 26201: const _Tp& 26201: _M_access() const 26201: { return *static_cast(_M_access()); } 26201: 26201: _Nocopy_types _M_unused; 26201: char _M_pod_data[sizeof(_Nocopy_types)]; 26201: }; 26201: 26201: enum _Manager_operation 26201: { 26201: __get_type_info, 26201: __get_functor_ptr, 26201: __clone_functor, 26201: __destroy_functor 26201: }; 26201: 26201: template 26201: class function; 26201: 26201: 26201: class _Function_base 26201: { 26201: public: 26201: static const size_t _M_max_size = sizeof(_Nocopy_types); 26201: static const size_t _M_max_align = __alignof__(_Nocopy_types); 26201: 26201: template 26201: class _Base_manager 26201: { 26201: protected: 26201: static const bool __stored_locally = 26201: (__is_location_invariant<_Functor>::value 26201: && sizeof(_Functor) <= _M_max_size 26201: && __alignof__(_Functor) <= _M_max_align 26201: && (_M_max_align % __alignof__(_Functor) == 0)); 26201: 26201: typedef integral_constant _Local_storage; 26201: 26201: 26201: static _Functor* 26201: _M_get_pointer(const _Any_data& __source) 26201: { 26201: if constexpr (__stored_locally) 26201: { 26201: const _Functor& __f = __source._M_access<_Functor>(); 26201: return const_cast<_Functor*>(std::__addressof(__f)); 26201: } 26201: else 26201: return __source._M_access<_Functor*>(); 26201: } 26201: 26201: 26201: 26201: static void 26201: _M_clone(_Any_data& __dest, const _Any_data& __source, true_type) 26201: { 26201: ::new (__dest._M_access()) _Functor(__source._M_access<_Functor>()); 26201: } 26201: 26201: 26201: 26201: static void 26201: _M_clone(_Any_data& __dest, const _Any_data& __source, false_type) 26201: { 26201: __dest._M_access<_Functor*>() = 26201: new _Functor(*__source._M_access()); 26201: } 26201: 26201: 26201: 26201: static void 26201: _M_destroy(_Any_data& __victim, true_type) 26201: { 26201: __victim._M_access<_Functor>().~_Functor(); 26201: } 26201: 26201: 26201: static void 26201: _M_destroy(_Any_data& __victim, false_type) 26201: { 26201: delete __victim._M_access<_Functor*>(); 26201: } 26201: 26201: public: 26201: static bool 26201: _M_manager(_Any_data& __dest, const _Any_data& __source, 26201: _Manager_operation __op) 26201: { 26201: switch (__op) 26201: { 26201: 26201: case __get_type_info: 26201: __dest._M_access() = &typeid(_Functor); 26201: break; 26201: 26201: case __get_functor_ptr: 26201: __dest._M_access<_Functor*>() = _M_get_pointer(__source); 26201: break; 26201: 26201: case __clone_functor: 26201: _M_clone(__dest, __source, _Local_storage()); 26201: break; 26201: 26201: case __destroy_functor: 26201: _M_destroy(__dest, _Local_storage()); 26201: break; 26201: } 26201: return false; 26201: } 26201: 26201: static void 26201: _M_init_functor(_Any_data& __functor, _Functor&& __f) 26201: { _M_init_functor(__functor, std::move(__f), _Local_storage()); } 26201: 26201: template 26201: static bool 26201: _M_not_empty_function(const function<_Signature>& __f) 26201: { return static_cast(__f); } 26201: 26201: template 26201: static bool 26201: _M_not_empty_function(_Tp* __fp) 26201: { return __fp != nullptr; } 26201: 26201: template 26201: static bool 26201: _M_not_empty_function(_Tp _Class::* __mp) 26201: { return __mp != nullptr; } 26201: 26201: template 26201: static bool 26201: _M_not_empty_function(const _Tp&) 26201: { return true; } 26201: 26201: private: 26201: static void 26201: _M_init_functor(_Any_data& __functor, _Functor&& __f, true_type) 26201: { ::new (__functor._M_access()) _Functor(std::move(__f)); } 26201: 26201: static void 26201: _M_init_functor(_Any_data& __functor, _Functor&& __f, false_type) 26201: { __functor._M_access<_Functor*>() = new _Functor(std::move(__f)); } 26201: }; 26201: 26201: _Function_base() : _M_manager(nullptr) { } 26201: 26201: ~_Function_base() 26201: { 26201: if (_M_manager) 26201: _M_manager(_M_functor, _M_functor, __destroy_functor); 26201: } 26201: 26201: bool _M_empty() const { return !_M_manager; } 26201: 26201: typedef bool (*_Manager_type)(_Any_data&, const _Any_data&, 26201: _Manager_operation); 26201: 26201: _Any_data _M_functor; 26201: _Manager_type _M_manager; 26201: }; 26201: 26201: template 26201: class _Function_handler; 26201: 26201: template 26201: class _Function_handler<_Res(_ArgTypes...), _Functor> 26201: : public _Function_base::_Base_manager<_Functor> 26201: { 26201: typedef _Function_base::_Base_manager<_Functor> _Base; 26201: 26201: public: 26201: static bool 26201: _M_manager(_Any_data& __dest, const _Any_data& __source, 26201: _Manager_operation __op) 26201: { 26201: switch (__op) 26201: { 26201: 26201: case __get_type_info: 26201: __dest._M_access() = &typeid(_Functor); 26201: break; 26201: 26201: case __get_functor_ptr: 26201: __dest._M_access<_Functor*>() = _Base::_M_get_pointer(__source); 26201: break; 26201: 26201: default: 26201: _Base::_M_manager(__dest, __source, __op); 26201: } 26201: return false; 26201: } 26201: 26201: static _Res 26201: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 26201: { 26201: return std::__invoke_r<_Res>(*_Base::_M_get_pointer(__functor), 26201: std::forward<_ArgTypes>(__args)...); 26201: } 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: class function<_Res(_ArgTypes...)> 26201: : public _Maybe_unary_or_binary_function<_Res, _ArgTypes...>, 26201: private _Function_base 26201: { 26201: template> 26201: struct _Callable 26201: : __is_invocable_impl<_Res2, _Res>::type 26201: { }; 26201: 26201: 26201: 26201: template 26201: struct _Callable : false_type { }; 26201: 26201: template 26201: using _Requires = typename enable_if<_Cond::value, _Tp>::type; 26201: 26201: public: 26201: typedef _Res result_type; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: function() noexcept 26201: : _Function_base() { } 26201: 26201: 26201: 26201: 26201: 26201: function(nullptr_t) noexcept 26201: : _Function_base() { } 26201: # 348 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_function.h" 3 26201: function(const function& __x); 26201: # 357 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_function.h" 3 26201: function(function&& __x) noexcept : _Function_base() 26201: { 26201: __x.swap(*this); 26201: } 26201: # 378 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_function.h" 3 26201: template>, void>, 26201: typename = _Requires<_Callable<_Functor>, void>> 26201: function(_Functor); 26201: # 395 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_function.h" 3 26201: function& 26201: operator=(const function& __x) 26201: { 26201: function(__x).swap(*this); 26201: return *this; 26201: } 26201: # 413 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_function.h" 3 26201: function& 26201: operator=(function&& __x) noexcept 26201: { 26201: function(std::move(__x)).swap(*this); 26201: return *this; 26201: } 26201: # 427 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_function.h" 3 26201: function& 26201: operator=(nullptr_t) noexcept 26201: { 26201: if (_M_manager) 26201: { 26201: _M_manager(_M_functor, _M_functor, __destroy_functor); 26201: _M_manager = nullptr; 26201: _M_invoker = nullptr; 26201: } 26201: return *this; 26201: } 26201: # 455 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_function.h" 3 26201: template 26201: _Requires<_Callable::type>, function&> 26201: operator=(_Functor&& __f) 26201: { 26201: function(std::forward<_Functor>(__f)).swap(*this); 26201: return *this; 26201: } 26201: 26201: 26201: template 26201: function& 26201: operator=(reference_wrapper<_Functor> __f) noexcept 26201: { 26201: function(__f).swap(*this); 26201: return *this; 26201: } 26201: # 481 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_function.h" 3 26201: void swap(function& __x) noexcept 26201: { 26201: std::swap(_M_functor, __x._M_functor); 26201: std::swap(_M_manager, __x._M_manager); 26201: std::swap(_M_invoker, __x._M_invoker); 26201: } 26201: # 498 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_function.h" 3 26201: explicit operator bool() const noexcept 26201: { return !_M_empty(); } 26201: # 511 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_function.h" 3 26201: _Res operator()(_ArgTypes... __args) const; 26201: # 524 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_function.h" 3 26201: const type_info& target_type() const noexcept; 26201: # 537 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_function.h" 3 26201: template _Functor* target() noexcept; 26201: 26201: template const _Functor* target() const noexcept; 26201: 26201: 26201: 26201: private: 26201: using _Invoker_type = _Res (*)(const _Any_data&, _ArgTypes&&...); 26201: _Invoker_type _M_invoker; 26201: }; 26201: 26201: 26201: template 26201: struct __function_guide_helper 26201: { }; 26201: 26201: template 26201: struct __function_guide_helper< 26201: _Res (_Tp::*) (_Args...) noexcept(_Nx) 26201: > 26201: { using type = _Res(_Args...); }; 26201: 26201: template 26201: struct __function_guide_helper< 26201: _Res (_Tp::*) (_Args...) & noexcept(_Nx) 26201: > 26201: { using type = _Res(_Args...); }; 26201: 26201: template 26201: struct __function_guide_helper< 26201: _Res (_Tp::*) (_Args...) const noexcept(_Nx) 26201: > 26201: { using type = _Res(_Args...); }; 26201: 26201: template 26201: struct __function_guide_helper< 26201: _Res (_Tp::*) (_Args...) const & noexcept(_Nx) 26201: > 26201: { using type = _Res(_Args...); }; 26201: 26201: template 26201: function(_Res(*)(_ArgTypes...)) -> function<_Res(_ArgTypes...)>; 26201: 26201: template::type> 26201: function(_Functor) -> function<_Signature>; 26201: 26201: 26201: 26201: template 26201: function<_Res(_ArgTypes...)>:: 26201: function(const function& __x) 26201: : _Function_base() 26201: { 26201: if (static_cast(__x)) 26201: { 26201: __x._M_manager(_M_functor, __x._M_functor, __clone_functor); 26201: _M_invoker = __x._M_invoker; 26201: _M_manager = __x._M_manager; 26201: } 26201: } 26201: 26201: template 26201: template 26201: function<_Res(_ArgTypes...)>:: 26201: function(_Functor __f) 26201: : _Function_base() 26201: { 26201: typedef _Function_handler<_Res(_ArgTypes...), _Functor> _My_handler; 26201: 26201: if (_My_handler::_M_not_empty_function(__f)) 26201: { 26201: _My_handler::_M_init_functor(_M_functor, std::move(__f)); 26201: _M_invoker = &_My_handler::_M_invoke; 26201: _M_manager = &_My_handler::_M_manager; 26201: } 26201: } 26201: 26201: template 26201: _Res 26201: function<_Res(_ArgTypes...)>:: 26201: operator()(_ArgTypes... __args) const 26201: { 26201: if (_M_empty()) 26201: __throw_bad_function_call(); 26201: return _M_invoker(_M_functor, std::forward<_ArgTypes>(__args)...); 26201: } 26201: 26201: 26201: template 26201: const type_info& 26201: function<_Res(_ArgTypes...)>:: 26201: target_type() const noexcept 26201: { 26201: if (_M_manager) 26201: { 26201: _Any_data __typeinfo_result; 26201: _M_manager(__typeinfo_result, _M_functor, __get_type_info); 26201: return *__typeinfo_result._M_access(); 26201: } 26201: else 26201: return typeid(void); 26201: } 26201: 26201: template 26201: template 26201: _Functor* 26201: function<_Res(_ArgTypes...)>:: 26201: target() noexcept 26201: { 26201: const function* __const_this = this; 26201: const _Functor* __func = __const_this->template target<_Functor>(); 26201: return const_cast<_Functor*>(__func); 26201: } 26201: 26201: template 26201: template 26201: const _Functor* 26201: function<_Res(_ArgTypes...)>:: 26201: target() const noexcept 26201: { 26201: if (typeid(_Functor) == target_type() && _M_manager) 26201: { 26201: _Any_data __ptr; 26201: _M_manager(__ptr, _M_functor, __get_functor_ptr); 26201: return __ptr._M_access(); 26201: } 26201: else 26201: return nullptr; 26201: } 26201: # 678 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_function.h" 3 26201: template 26201: inline bool 26201: operator==(const function<_Res(_Args...)>& __f, nullptr_t) noexcept 26201: { return !static_cast(__f); } 26201: 26201: 26201: 26201: template 26201: inline bool 26201: operator==(nullptr_t, const function<_Res(_Args...)>& __f) noexcept 26201: { return !static_cast(__f); } 26201: # 697 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_function.h" 3 26201: template 26201: inline bool 26201: operator!=(const function<_Res(_Args...)>& __f, nullptr_t) noexcept 26201: { return static_cast(__f); } 26201: 26201: 26201: template 26201: inline bool 26201: operator!=(nullptr_t, const function<_Res(_Args...)>& __f) noexcept 26201: { return static_cast(__f); } 26201: # 718 "/usr/x86_64-linux-gnu/include/c++/10/bits/std_function.h" 3 26201: template 26201: inline void 26201: swap(function<_Res(_Args...)>& __x, function<_Res(_Args...)>& __y) noexcept 26201: { __x.swap(__y); } 26201: 26201: 26201: namespace __detail::__variant 26201: { 26201: template struct _Never_valueless_alt; 26201: 26201: 26201: 26201: template 26201: struct _Never_valueless_alt> 26201: : std::true_type 26201: { }; 26201: } 26201: 26201: 26201: 26201: } 26201: # 60 "/usr/x86_64-linux-gnu/include/c++/10/functional" 2 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/unordered_map" 1 3 26201: # 30 "/usr/x86_64-linux-gnu/include/c++/10/unordered_map" 3 26201: #define _GLIBCXX_UNORDERED_MAP 1 26201: 26201: 26201: # 33 "/usr/x86_64-linux-gnu/include/c++/10/unordered_map" 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/allocator.h" 1 3 26201: # 44 "/usr/x86_64-linux-gnu/include/c++/10/bits/allocator.h" 3 26201: #define _ALLOCATOR_H 1 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++allocator.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++allocator.h" 3 26201: #define _GLIBCXX_CXX_ALLOCATOR_H 1 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/ext/new_allocator.h" 1 3 26201: # 30 "/usr/x86_64-linux-gnu/include/c++/10/ext/new_allocator.h" 3 26201: #define _NEW_ALLOCATOR_H 1 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/ext/new_allocator.h" 3 26201: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 54 "/usr/x86_64-linux-gnu/include/c++/10/ext/new_allocator.h" 3 26201: template 26201: class new_allocator 26201: { 26201: public: 26201: typedef _Tp value_type; 26201: typedef std::size_t size_type; 26201: typedef std::ptrdiff_t difference_type; 26201: 26201: typedef _Tp* pointer; 26201: typedef const _Tp* const_pointer; 26201: typedef _Tp& reference; 26201: typedef const _Tp& const_reference; 26201: 26201: template 26201: struct rebind 26201: { typedef new_allocator<_Tp1> other; }; 26201: 26201: 26201: 26201: 26201: 26201: typedef std::true_type propagate_on_container_move_assignment; 26201: 26201: 26201: 26201: new_allocator() noexcept { } 26201: 26201: 26201: new_allocator(const new_allocator&) noexcept { } 26201: 26201: template 26201: 26201: new_allocator(const new_allocator<_Tp1>&) noexcept { } 26201: 26201: 26201: ~new_allocator() noexcept { } 26201: 26201: pointer 26201: address(reference __x) const noexcept 26201: { return std::__addressof(__x); } 26201: 26201: const_pointer 26201: address(const_reference __x) const noexcept 26201: { return std::__addressof(__x); } 26201: 26201: 26201: 26201: 26201: [[__nodiscard__]] _Tp* 26201: allocate(size_type __n, const void* = static_cast(0)) 26201: { 26201: 26201: 26201: 26201: static_assert(sizeof(_Tp) != 0, "cannot allocate incomplete types"); 26201: 26201: 26201: if (__n > this->_M_max_size()) 26201: std::__throw_bad_alloc(); 26201: 26201: 26201: if (alignof(_Tp) > 16) 26201: { 26201: std::align_val_t __al = std::align_val_t(alignof(_Tp)); 26201: return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp), __al)); 26201: } 26201: 26201: return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); 26201: } 26201: 26201: 26201: void 26201: deallocate(_Tp* __p, size_type __t) 26201: { 26201: 26201: if (alignof(_Tp) > 16) 26201: { 26201: ::operator delete(__p, 26201: 26201: __t * sizeof(_Tp), 26201: 26201: std::align_val_t(alignof(_Tp))); 26201: return; 26201: } 26201: 26201: ::operator delete(__p 26201: 26201: , __t * sizeof(_Tp) 26201: 26201: ); 26201: } 26201: 26201: 26201: size_type 26201: max_size() const noexcept 26201: { return _M_max_size(); } 26201: 26201: 26201: template 26201: void 26201: construct(_Up* __p, _Args&&... __args) 26201: noexcept(std::is_nothrow_constructible<_Up, _Args...>::value) 26201: { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } 26201: 26201: template 26201: void 26201: destroy(_Up* __p) 26201: noexcept(std::is_nothrow_destructible<_Up>::value) 26201: { __p->~_Up(); } 26201: # 175 "/usr/x86_64-linux-gnu/include/c++/10/ext/new_allocator.h" 3 26201: template 26201: friend bool 26201: operator==(const new_allocator&, const new_allocator<_Up>&) 26201: noexcept 26201: { return true; } 26201: 26201: 26201: template 26201: friend bool 26201: operator!=(const new_allocator&, const new_allocator<_Up>&) 26201: noexcept 26201: { return false; } 26201: 26201: 26201: private: 26201: constexpr size_type 26201: _M_max_size() const noexcept 26201: { 26201: 26201: return std::size_t(0x7fffffffffffffffL) / sizeof(_Tp); 26201: 26201: 26201: 26201: } 26201: }; 26201: 26201: 26201: } 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++allocator.h" 2 3 26201: 26201: 26201: namespace std 26201: { 26201: # 47 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++allocator.h" 3 26201: template 26201: using __allocator_base = __gnu_cxx::new_allocator<_Tp>; 26201: } 26201: # 47 "/usr/x86_64-linux-gnu/include/c++/10/bits/allocator.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/memoryfwd.h" 1 3 26201: # 44 "/usr/x86_64-linux-gnu/include/c++/10/bits/memoryfwd.h" 3 26201: #define _MEMORYFWD_H 1 26201: 26201: 26201: # 47 "/usr/x86_64-linux-gnu/include/c++/10/bits/memoryfwd.h" 3 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 63 "/usr/x86_64-linux-gnu/include/c++/10/bits/memoryfwd.h" 3 26201: template 26201: class allocator; 26201: 26201: template<> 26201: class allocator; 26201: 26201: 26201: 26201: template 26201: struct uses_allocator; 26201: 26201: template 26201: struct allocator_traits; 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 48 "/usr/x86_64-linux-gnu/include/c++/10/bits/allocator.h" 2 3 26201: 26201: 26201: 26201: 26201: #define __cpp_lib_incomplete_container_elements 201505 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 71 "/usr/x86_64-linux-gnu/include/c++/10/bits/allocator.h" 3 26201: template<> 26201: class allocator 26201: { 26201: public: 26201: typedef void value_type; 26201: typedef size_t size_type; 26201: typedef ptrdiff_t difference_type; 26201: 26201: 26201: 26201: typedef void* pointer; 26201: typedef const void* const_pointer; 26201: 26201: template 26201: struct rebind 26201: { typedef allocator<_Tp1> other; }; 26201: 26201: 26201: 26201: 26201: 26201: typedef true_type propagate_on_container_move_assignment; 26201: 26201: typedef true_type is_always_equal; 26201: # 109 "/usr/x86_64-linux-gnu/include/c++/10/bits/allocator.h" 3 26201: template 26201: void 26201: construct(_Up* __p, _Args&&... __args) 26201: noexcept(std::is_nothrow_constructible<_Up, _Args...>::value) 26201: { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } 26201: 26201: template 26201: void 26201: destroy(_Up* __p) 26201: noexcept(std::is_nothrow_destructible<_Up>::value) 26201: { __p->~_Up(); } 26201: 26201: 26201: }; 26201: # 133 "/usr/x86_64-linux-gnu/include/c++/10/bits/allocator.h" 3 26201: template 26201: class allocator : public __allocator_base<_Tp> 26201: { 26201: public: 26201: typedef _Tp value_type; 26201: typedef size_t size_type; 26201: typedef ptrdiff_t difference_type; 26201: 26201: 26201: 26201: typedef _Tp* pointer; 26201: typedef const _Tp* const_pointer; 26201: typedef _Tp& reference; 26201: typedef const _Tp& const_reference; 26201: 26201: template 26201: struct rebind 26201: { typedef allocator<_Tp1> other; }; 26201: 26201: 26201: 26201: 26201: 26201: typedef true_type propagate_on_container_move_assignment; 26201: 26201: typedef true_type is_always_equal; 26201: 26201: 26201: 26201: 26201: 26201: allocator() noexcept { } 26201: 26201: 26201: allocator(const allocator& __a) noexcept 26201: : __allocator_base<_Tp>(__a) { } 26201: 26201: 26201: 26201: allocator& operator=(const allocator&) = default; 26201: 26201: 26201: template 26201: 26201: allocator(const allocator<_Tp1>&) noexcept { } 26201: 26201: 26201: 26201: 26201: ~allocator() noexcept { } 26201: # 211 "/usr/x86_64-linux-gnu/include/c++/10/bits/allocator.h" 3 26201: friend bool 26201: operator==(const allocator&, const allocator&) noexcept 26201: { return true; } 26201: 26201: 26201: friend bool 26201: operator!=(const allocator&, const allocator&) noexcept 26201: { return false; } 26201: 26201: 26201: 26201: }; 26201: 26201: template 26201: inline bool 26201: operator==(const allocator<_T1>&, const allocator<_T2>&) 26201: noexcept 26201: { return true; } 26201: 26201: 26201: template 26201: inline bool 26201: operator!=(const allocator<_T1>&, const allocator<_T2>&) 26201: noexcept 26201: { return false; } 26201: 26201: 26201: 26201: 26201: template 26201: class allocator 26201: { 26201: public: 26201: typedef _Tp value_type; 26201: template allocator(const allocator<_Up>&) { } 26201: }; 26201: 26201: template 26201: class allocator 26201: { 26201: public: 26201: typedef _Tp value_type; 26201: template allocator(const allocator<_Up>&) { } 26201: }; 26201: 26201: template 26201: class allocator 26201: { 26201: public: 26201: typedef _Tp value_type; 26201: template allocator(const allocator<_Up>&) { } 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern template class allocator; 26201: extern template class allocator; 26201: 26201: 26201: 26201: #undef __allocator_base 26201: 26201: 26201: template 26201: struct __alloc_swap 26201: { static void _S_do_it(_Alloc&, _Alloc&) noexcept { } }; 26201: 26201: template 26201: struct __alloc_swap<_Alloc, false> 26201: { 26201: static void 26201: _S_do_it(_Alloc& __one, _Alloc& __two) noexcept 26201: { 26201: 26201: if (__one != __two) 26201: swap(__one, __two); 26201: } 26201: }; 26201: 26201: 26201: template 26201: struct __alloc_neq 26201: { 26201: static bool 26201: _S_do_it(const _Alloc&, const _Alloc&) 26201: { return false; } 26201: }; 26201: 26201: template 26201: struct __alloc_neq<_Alloc, false> 26201: { 26201: static bool 26201: _S_do_it(const _Alloc& __one, const _Alloc& __two) 26201: { return __one != __two; } 26201: }; 26201: 26201: 26201: template, 26201: is_nothrow_move_constructible>::value> 26201: struct __shrink_to_fit_aux 26201: { static bool _S_do_it(_Tp&) noexcept { return false; } }; 26201: 26201: template 26201: struct __shrink_to_fit_aux<_Tp, true> 26201: { 26201: static bool 26201: _S_do_it(_Tp& __c) noexcept 26201: { 26201: 26201: try 26201: { 26201: _Tp(__make_move_if_noexcept_iterator(__c.begin()), 26201: __make_move_if_noexcept_iterator(__c.end()), 26201: __c.get_allocator()).swap(__c); 26201: return true; 26201: } 26201: catch(...) 26201: { return false; } 26201: 26201: 26201: 26201: } 26201: }; 26201: 26201: 26201: 26201: } 26201: # 41 "/usr/x86_64-linux-gnu/include/c++/10/unordered_map" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/ext/alloc_traits.h" 1 3 26201: # 30 "/usr/x86_64-linux-gnu/include/c++/10/ext/alloc_traits.h" 3 26201: #define _EXT_ALLOC_TRAITS_H 1 26201: 26201: 26201: # 33 "/usr/x86_64-linux-gnu/include/c++/10/ext/alloc_traits.h" 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/alloc_traits.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/alloc_traits.h" 3 26201: #define _ALLOC_TRAITS_H 1 26201: # 41 "/usr/x86_64-linux-gnu/include/c++/10/bits/alloc_traits.h" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: #define __cpp_lib_allocator_traits_is_always_equal 201411 26201: 26201: struct __allocator_traits_base 26201: { 26201: template 26201: struct __rebind : __replace_first_arg<_Tp, _Up> { }; 26201: 26201: template 26201: struct __rebind<_Tp, _Up, 26201: __void_t::other>> 26201: { using type = typename _Tp::template rebind<_Up>::other; }; 26201: 26201: protected: 26201: template 26201: using __pointer = typename _Tp::pointer; 26201: template 26201: using __c_pointer = typename _Tp::const_pointer; 26201: template 26201: using __v_pointer = typename _Tp::void_pointer; 26201: template 26201: using __cv_pointer = typename _Tp::const_void_pointer; 26201: template 26201: using __pocca = typename _Tp::propagate_on_container_copy_assignment; 26201: template 26201: using __pocma = typename _Tp::propagate_on_container_move_assignment; 26201: template 26201: using __pocs = typename _Tp::propagate_on_container_swap; 26201: template 26201: using __equal = typename _Tp::is_always_equal; 26201: }; 26201: 26201: template 26201: using __alloc_rebind 26201: = typename __allocator_traits_base::template __rebind<_Alloc, _Up>::type; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct allocator_traits : __allocator_traits_base 26201: { 26201: 26201: typedef _Alloc allocator_type; 26201: 26201: typedef typename _Alloc::value_type value_type; 26201: 26201: 26201: 26201: 26201: 26201: 26201: using pointer = __detected_or_t; 26201: 26201: private: 26201: 26201: template class _Func, typename _Tp, typename = void> 26201: struct _Ptr 26201: { 26201: using type = typename pointer_traits::template rebind<_Tp>; 26201: }; 26201: 26201: template class _Func, typename _Tp> 26201: struct _Ptr<_Func, _Tp, __void_t<_Func<_Alloc>>> 26201: { 26201: using type = _Func<_Alloc>; 26201: }; 26201: 26201: 26201: template 26201: struct _Diff 26201: { using type = typename pointer_traits<_PtrT>::difference_type; }; 26201: 26201: template 26201: struct _Diff<_A2, _PtrT, __void_t> 26201: { using type = typename _A2::difference_type; }; 26201: 26201: 26201: template 26201: struct _Size : make_unsigned<_DiffT> { }; 26201: 26201: template 26201: struct _Size<_A2, _DiffT, __void_t> 26201: { using type = typename _A2::size_type; }; 26201: 26201: public: 26201: 26201: 26201: 26201: 26201: 26201: 26201: using const_pointer = typename _Ptr<__c_pointer, const value_type>::type; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: using void_pointer = typename _Ptr<__v_pointer, void>::type; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: using const_void_pointer = typename _Ptr<__cv_pointer, const void>::type; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: using difference_type = typename _Diff<_Alloc, pointer>::type; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: using size_type = typename _Size<_Alloc, difference_type>::type; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: using propagate_on_container_copy_assignment 26201: = __detected_or_t; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: using propagate_on_container_move_assignment 26201: = __detected_or_t; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: using propagate_on_container_swap 26201: = __detected_or_t; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: using is_always_equal 26201: = __detected_or_t::type, __equal, _Alloc>; 26201: 26201: template 26201: using rebind_alloc = __alloc_rebind<_Alloc, _Tp>; 26201: template 26201: using rebind_traits = allocator_traits>; 26201: 26201: private: 26201: template 26201: static constexpr auto 26201: _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer __hint, int) 26201: -> decltype(__a.allocate(__n, __hint)) 26201: { return __a.allocate(__n, __hint); } 26201: 26201: template 26201: static constexpr pointer 26201: _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer, ...) 26201: { return __a.allocate(__n); } 26201: 26201: template 26201: struct __construct_helper 26201: { 26201: template()->construct( 26201: std::declval<_Tp*>(), std::declval<_Args>()...))> 26201: static true_type __test(int); 26201: 26201: template 26201: static false_type __test(...); 26201: 26201: using type = decltype(__test<_Alloc>(0)); 26201: }; 26201: 26201: template 26201: using __has_construct 26201: = typename __construct_helper<_Tp, _Args...>::type; 26201: 26201: template 26201: static constexpr _Require<__has_construct<_Tp, _Args...>> 26201: _S_construct(_Alloc& __a, _Tp* __p, _Args&&... __args) 26201: noexcept(noexcept(__a.construct(__p, std::forward<_Args>(__args)...))) 26201: { __a.construct(__p, std::forward<_Args>(__args)...); } 26201: 26201: template 26201: static constexpr 26201: _Require<__and_<__not_<__has_construct<_Tp, _Args...>>, 26201: is_constructible<_Tp, _Args...>>> 26201: _S_construct(_Alloc&, _Tp* __p, _Args&&... __args) 26201: noexcept(std::is_nothrow_constructible<_Tp, _Args...>::value) 26201: { 26201: 26201: ::new((void*)__p) _Tp(std::forward<_Args>(__args)...); 26201: 26201: 26201: 26201: } 26201: 26201: template 26201: static constexpr auto 26201: _S_destroy(_Alloc2& __a, _Tp* __p, int) 26201: noexcept(noexcept(__a.destroy(__p))) 26201: -> decltype(__a.destroy(__p)) 26201: { __a.destroy(__p); } 26201: 26201: template 26201: static constexpr void 26201: _S_destroy(_Alloc2&, _Tp* __p, ...) 26201: noexcept(std::is_nothrow_destructible<_Tp>::value) 26201: { std::_Destroy(__p); } 26201: 26201: template 26201: static constexpr auto 26201: _S_max_size(_Alloc2& __a, int) 26201: -> decltype(__a.max_size()) 26201: { return __a.max_size(); } 26201: 26201: template 26201: static constexpr size_type 26201: _S_max_size(_Alloc2&, ...) 26201: { 26201: 26201: 26201: return __gnu_cxx::__numeric_traits::__max 26201: / sizeof(value_type); 26201: } 26201: 26201: template 26201: static constexpr auto 26201: _S_select(_Alloc2& __a, int) 26201: -> decltype(__a.select_on_container_copy_construction()) 26201: { return __a.select_on_container_copy_construction(); } 26201: 26201: template 26201: static constexpr _Alloc2 26201: _S_select(_Alloc2& __a, ...) 26201: { return __a; } 26201: 26201: public: 26201: # 312 "/usr/x86_64-linux-gnu/include/c++/10/bits/alloc_traits.h" 3 26201: [[__nodiscard__]] static pointer 26201: allocate(_Alloc& __a, size_type __n) 26201: { return __a.allocate(__n); } 26201: # 327 "/usr/x86_64-linux-gnu/include/c++/10/bits/alloc_traits.h" 3 26201: [[__nodiscard__]] static pointer 26201: allocate(_Alloc& __a, size_type __n, const_void_pointer __hint) 26201: { return _S_allocate(__a, __n, __hint, 0); } 26201: # 339 "/usr/x86_64-linux-gnu/include/c++/10/bits/alloc_traits.h" 3 26201: static void 26201: deallocate(_Alloc& __a, pointer __p, size_type __n) 26201: { __a.deallocate(__p, __n); } 26201: # 354 "/usr/x86_64-linux-gnu/include/c++/10/bits/alloc_traits.h" 3 26201: template 26201: static auto 26201: construct(_Alloc& __a, _Tp* __p, _Args&&... __args) 26201: noexcept(noexcept(_S_construct(__a, __p, 26201: std::forward<_Args>(__args)...))) 26201: -> decltype(_S_construct(__a, __p, std::forward<_Args>(__args)...)) 26201: { _S_construct(__a, __p, std::forward<_Args>(__args)...); } 26201: # 370 "/usr/x86_64-linux-gnu/include/c++/10/bits/alloc_traits.h" 3 26201: template 26201: static void 26201: destroy(_Alloc& __a, _Tp* __p) 26201: noexcept(noexcept(_S_destroy(__a, __p, 0))) 26201: { _S_destroy(__a, __p, 0); } 26201: # 384 "/usr/x86_64-linux-gnu/include/c++/10/bits/alloc_traits.h" 3 26201: static size_type 26201: max_size(const _Alloc& __a) noexcept 26201: { return _S_max_size(__a, 0); } 26201: # 396 "/usr/x86_64-linux-gnu/include/c++/10/bits/alloc_traits.h" 3 26201: static _Alloc 26201: select_on_container_copy_construction(const _Alloc& __rhs) 26201: { return _S_select(__rhs, 0); } 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct allocator_traits> 26201: { 26201: 26201: using allocator_type = allocator<_Tp>; 26201: 26201: 26201: using value_type = _Tp; 26201: 26201: 26201: using pointer = _Tp*; 26201: 26201: 26201: using const_pointer = const _Tp*; 26201: 26201: 26201: using void_pointer = void*; 26201: 26201: 26201: using const_void_pointer = const void*; 26201: 26201: 26201: using difference_type = std::ptrdiff_t; 26201: 26201: 26201: using size_type = std::size_t; 26201: 26201: 26201: using propagate_on_container_copy_assignment = false_type; 26201: 26201: 26201: using propagate_on_container_move_assignment = true_type; 26201: 26201: 26201: using propagate_on_container_swap = false_type; 26201: 26201: 26201: using is_always_equal = true_type; 26201: 26201: template 26201: using rebind_alloc = allocator<_Up>; 26201: 26201: template 26201: using rebind_traits = allocator_traits>; 26201: # 458 "/usr/x86_64-linux-gnu/include/c++/10/bits/alloc_traits.h" 3 26201: [[__nodiscard__]] static pointer 26201: allocate(allocator_type& __a, size_type __n) 26201: { return __a.allocate(__n); } 26201: # 472 "/usr/x86_64-linux-gnu/include/c++/10/bits/alloc_traits.h" 3 26201: [[__nodiscard__]] static pointer 26201: allocate(allocator_type& __a, size_type __n, const_void_pointer __hint) 26201: { 26201: 26201: return __a.allocate(__n, __hint); 26201: 26201: 26201: 26201: } 26201: # 490 "/usr/x86_64-linux-gnu/include/c++/10/bits/alloc_traits.h" 3 26201: static void 26201: deallocate(allocator_type& __a, pointer __p, size_type __n) 26201: { __a.deallocate(__p, __n); } 26201: # 505 "/usr/x86_64-linux-gnu/include/c++/10/bits/alloc_traits.h" 3 26201: template 26201: static void 26201: construct(allocator_type& __a __attribute__((__unused__)), _Up* __p, 26201: _Args&&... __args) 26201: noexcept(std::is_nothrow_constructible<_Up, _Args...>::value) 26201: { 26201: 26201: __a.construct(__p, std::forward<_Args>(__args)...); 26201: 26201: 26201: 26201: } 26201: # 525 "/usr/x86_64-linux-gnu/include/c++/10/bits/alloc_traits.h" 3 26201: template 26201: static void 26201: destroy(allocator_type& __a __attribute__((__unused__)), _Up* __p) 26201: noexcept(is_nothrow_destructible<_Up>::value) 26201: { 26201: 26201: __a.destroy(__p); 26201: 26201: 26201: 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: static size_type 26201: max_size(const allocator_type& __a __attribute__((__unused__))) noexcept 26201: { 26201: 26201: return __a.max_size(); 26201: 26201: 26201: 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: static allocator_type 26201: select_on_container_copy_construction(const allocator_type& __rhs) 26201: { return __rhs; } 26201: }; 26201: # 574 "/usr/x86_64-linux-gnu/include/c++/10/bits/alloc_traits.h" 3 26201: template 26201: constexpr inline void 26201: __alloc_on_copy(_Alloc& __one, const _Alloc& __two) 26201: { 26201: typedef allocator_traits<_Alloc> __traits; 26201: typedef typename __traits::propagate_on_container_copy_assignment __pocca; 26201: 26201: if constexpr (__pocca::value) 26201: __one = __two; 26201: 26201: 26201: 26201: } 26201: 26201: template 26201: constexpr _Alloc 26201: __alloc_on_copy(const _Alloc& __a) 26201: { 26201: typedef allocator_traits<_Alloc> __traits; 26201: return __traits::select_on_container_copy_construction(__a); 26201: } 26201: # 606 "/usr/x86_64-linux-gnu/include/c++/10/bits/alloc_traits.h" 3 26201: template 26201: constexpr inline void 26201: __alloc_on_move(_Alloc& __one, _Alloc& __two) 26201: { 26201: typedef allocator_traits<_Alloc> __traits; 26201: typedef typename __traits::propagate_on_container_move_assignment __pocma; 26201: 26201: if constexpr (__pocma::value) 26201: __one = std::move(__two); 26201: 26201: 26201: 26201: } 26201: # 633 "/usr/x86_64-linux-gnu/include/c++/10/bits/alloc_traits.h" 3 26201: template 26201: constexpr inline void 26201: __alloc_on_swap(_Alloc& __one, _Alloc& __two) 26201: { 26201: typedef allocator_traits<_Alloc> __traits; 26201: typedef typename __traits::propagate_on_container_swap __pocs; 26201: 26201: if constexpr (__pocs::value) 26201: { 26201: using std::swap; 26201: swap(__one, __two); 26201: } 26201: 26201: 26201: 26201: } 26201: 26201: template, 26201: typename = void> 26201: struct __is_alloc_insertable_impl 26201: : false_type 26201: { }; 26201: 26201: template 26201: struct __is_alloc_insertable_impl<_Alloc, _Tp, _ValueT, 26201: __void_t::construct( 26201: std::declval<_Alloc&>(), std::declval<_ValueT*>(), 26201: std::declval<_Tp>()))>> 26201: : true_type 26201: { }; 26201: 26201: 26201: 26201: 26201: template 26201: struct __is_copy_insertable 26201: : __is_alloc_insertable_impl<_Alloc, 26201: typename _Alloc::value_type const&>::type 26201: { }; 26201: 26201: 26201: template 26201: struct __is_copy_insertable> 26201: : is_copy_constructible<_Tp> 26201: { }; 26201: 26201: 26201: 26201: 26201: template 26201: struct __is_move_insertable 26201: : __is_alloc_insertable_impl<_Alloc, typename _Alloc::value_type>::type 26201: { }; 26201: 26201: 26201: template 26201: struct __is_move_insertable> 26201: : is_move_constructible<_Tp> 26201: { }; 26201: 26201: 26201: template 26201: struct __is_allocator : false_type { }; 26201: 26201: template 26201: struct __is_allocator<_Alloc, 26201: __void_t().allocate(size_t{}))>> 26201: : true_type { }; 26201: 26201: template 26201: using _RequireAllocator 26201: = typename enable_if<__is_allocator<_Alloc>::value, _Alloc>::type; 26201: 26201: template 26201: using _RequireNotAllocator 26201: = typename enable_if::value, _Alloc>::type; 26201: # 719 "/usr/x86_64-linux-gnu/include/c++/10/bits/alloc_traits.h" 3 26201: template 26201: void 26201: _Destroy(_ForwardIterator __first, _ForwardIterator __last, 26201: _Allocator& __alloc) 26201: { 26201: for (; __first != __last; ++__first) 26201: 26201: 26201: 26201: allocator_traits<_Allocator>::destroy(__alloc, 26201: std::__addressof(*__first)); 26201: 26201: } 26201: 26201: template 26201: inline void 26201: _Destroy(_ForwardIterator __first, _ForwardIterator __last, 26201: allocator<_Tp>&) 26201: { 26201: _Destroy(__first, __last); 26201: } 26201: 26201: 26201: } 26201: # 35 "/usr/x86_64-linux-gnu/include/c++/10/ext/alloc_traits.h" 2 3 26201: 26201: 26201: 26201: 26201: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct __alloc_traits 26201: 26201: : std::allocator_traits<_Alloc> 26201: 26201: { 26201: typedef _Alloc allocator_type; 26201: 26201: typedef std::allocator_traits<_Alloc> _Base_type; 26201: typedef typename _Base_type::value_type value_type; 26201: typedef typename _Base_type::pointer pointer; 26201: typedef typename _Base_type::const_pointer const_pointer; 26201: typedef typename _Base_type::size_type size_type; 26201: typedef typename _Base_type::difference_type difference_type; 26201: 26201: typedef value_type& reference; 26201: typedef const value_type& const_reference; 26201: using _Base_type::allocate; 26201: using _Base_type::deallocate; 26201: using _Base_type::construct; 26201: using _Base_type::destroy; 26201: using _Base_type::max_size; 26201: 26201: private: 26201: template 26201: using __is_custom_pointer 26201: = std::__and_, 26201: std::__not_>>; 26201: 26201: public: 26201: 26201: template 26201: static constexpr 26201: std::__enable_if_t<__is_custom_pointer<_Ptr>::value> 26201: construct(_Alloc& __a, _Ptr __p, _Args&&... __args) 26201: noexcept(noexcept(_Base_type::construct(__a, std::__to_address(__p), 26201: std::forward<_Args>(__args)...))) 26201: { 26201: _Base_type::construct(__a, std::__to_address(__p), 26201: std::forward<_Args>(__args)...); 26201: } 26201: 26201: 26201: template 26201: static constexpr 26201: std::__enable_if_t<__is_custom_pointer<_Ptr>::value> 26201: destroy(_Alloc& __a, _Ptr __p) 26201: noexcept(noexcept(_Base_type::destroy(__a, std::__to_address(__p)))) 26201: { _Base_type::destroy(__a, std::__to_address(__p)); } 26201: 26201: static constexpr _Alloc _S_select_on_copy(const _Alloc& __a) 26201: { return _Base_type::select_on_container_copy_construction(__a); } 26201: 26201: static constexpr void _S_on_swap(_Alloc& __a, _Alloc& __b) 26201: { std::__alloc_on_swap(__a, __b); } 26201: 26201: static constexpr bool _S_propagate_on_copy_assign() 26201: { return _Base_type::propagate_on_container_copy_assignment::value; } 26201: 26201: static constexpr bool _S_propagate_on_move_assign() 26201: { return _Base_type::propagate_on_container_move_assignment::value; } 26201: 26201: static constexpr bool _S_propagate_on_swap() 26201: { return _Base_type::propagate_on_container_swap::value; } 26201: 26201: static constexpr bool _S_always_equal() 26201: { return _Base_type::is_always_equal::value; } 26201: 26201: static constexpr bool _S_nothrow_move() 26201: { return _S_propagate_on_move_assign() || _S_always_equal(); } 26201: 26201: template 26201: struct rebind 26201: { typedef typename _Base_type::template rebind_alloc<_Tp> other; }; 26201: # 166 "/usr/x86_64-linux-gnu/include/c++/10/ext/alloc_traits.h" 3 26201: }; 26201: 26201: 26201: } 26201: # 42 "/usr/x86_64-linux-gnu/include/c++/10/unordered_map" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/ext/aligned_buffer.h" 1 3 26201: # 30 "/usr/x86_64-linux-gnu/include/c++/10/ext/aligned_buffer.h" 3 26201: #define _ALIGNED_BUFFER_H 1 26201: 26201: 26201: # 33 "/usr/x86_64-linux-gnu/include/c++/10/ext/aligned_buffer.h" 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: namespace __gnu_cxx 26201: { 26201: 26201: 26201: 26201: 26201: template 26201: struct __aligned_membuf 26201: { 26201: 26201: 26201: 26201: 26201: 26201: struct _Tp2 { _Tp _M_t; }; 26201: 26201: alignas(__alignof__(_Tp2::_M_t)) unsigned char _M_storage[sizeof(_Tp)]; 26201: 26201: __aligned_membuf() = default; 26201: 26201: 26201: __aligned_membuf(std::nullptr_t) { } 26201: 26201: void* 26201: _M_addr() noexcept 26201: { return static_cast(&_M_storage); } 26201: 26201: const void* 26201: _M_addr() const noexcept 26201: { return static_cast(&_M_storage); } 26201: 26201: _Tp* 26201: _M_ptr() noexcept 26201: { return static_cast<_Tp*>(_M_addr()); } 26201: 26201: const _Tp* 26201: _M_ptr() const noexcept 26201: { return static_cast(_M_addr()); } 26201: }; 26201: # 89 "/usr/x86_64-linux-gnu/include/c++/10/ext/aligned_buffer.h" 3 26201: template 26201: struct __aligned_buffer 26201: : std::aligned_storage 26201: { 26201: typename 26201: std::aligned_storage::type _M_storage; 26201: 26201: __aligned_buffer() = default; 26201: 26201: 26201: __aligned_buffer(std::nullptr_t) { } 26201: 26201: void* 26201: _M_addr() noexcept 26201: { 26201: return static_cast(&_M_storage); 26201: } 26201: 26201: const void* 26201: _M_addr() const noexcept 26201: { 26201: return static_cast(&_M_storage); 26201: } 26201: 26201: _Tp* 26201: _M_ptr() noexcept 26201: { return static_cast<_Tp*>(_M_addr()); } 26201: 26201: const _Tp* 26201: _M_ptr() const noexcept 26201: { return static_cast(_M_addr()); } 26201: }; 26201: 26201: 26201: } 26201: # 43 "/usr/x86_64-linux-gnu/include/c++/10/unordered_map" 2 3 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/hashtable.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/hashtable.h" 3 26201: #define _HASHTABLE_H 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/hashtable.h" 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/hashtable_policy.h" 1 3 26201: # 32 "/usr/x86_64-linux-gnu/include/c++/10/bits/hashtable_policy.h" 3 26201: #define _HASHTABLE_POLICY_H 1 26201: 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: template 26201: class _Hashtable; 26201: 26201: namespace __detail 26201: { 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct _Hashtable_base; 26201: 26201: 26201: 26201: template 26201: inline typename std::iterator_traits<_Iterator>::difference_type 26201: __distance_fw(_Iterator __first, _Iterator __last, 26201: std::input_iterator_tag) 26201: { return __first != __last ? 1 : 0; } 26201: 26201: template 26201: inline typename std::iterator_traits<_Iterator>::difference_type 26201: __distance_fw(_Iterator __first, _Iterator __last, 26201: std::forward_iterator_tag) 26201: { return std::distance(__first, __last); } 26201: 26201: template 26201: inline typename std::iterator_traits<_Iterator>::difference_type 26201: __distance_fw(_Iterator __first, _Iterator __last) 26201: { return __distance_fw(__first, __last, 26201: std::__iterator_category(__first)); } 26201: 26201: struct _Identity 26201: { 26201: template 26201: _Tp&& 26201: operator()(_Tp&& __x) const 26201: { return std::forward<_Tp>(__x); } 26201: }; 26201: 26201: struct _Select1st 26201: { 26201: template 26201: auto 26201: operator()(_Tp&& __x) const 26201: -> decltype(std::get<0>(std::forward<_Tp>(__x))) 26201: { return std::get<0>(std::forward<_Tp>(__x)); } 26201: }; 26201: 26201: template 26201: struct _Hashtable_alloc; 26201: 26201: 26201: 26201: template 26201: struct _ReuseOrAllocNode 26201: { 26201: private: 26201: using __node_alloc_type = _NodeAlloc; 26201: using __hashtable_alloc = _Hashtable_alloc<__node_alloc_type>; 26201: using __node_alloc_traits = 26201: typename __hashtable_alloc::__node_alloc_traits; 26201: using __node_type = typename __hashtable_alloc::__node_type; 26201: 26201: public: 26201: _ReuseOrAllocNode(__node_type* __nodes, __hashtable_alloc& __h) 26201: : _M_nodes(__nodes), _M_h(__h) { } 26201: _ReuseOrAllocNode(const _ReuseOrAllocNode&) = delete; 26201: 26201: ~_ReuseOrAllocNode() 26201: { _M_h._M_deallocate_nodes(_M_nodes); } 26201: 26201: template 26201: __node_type* 26201: operator()(_Arg&& __arg) const 26201: { 26201: if (_M_nodes) 26201: { 26201: __node_type* __node = _M_nodes; 26201: _M_nodes = _M_nodes->_M_next(); 26201: __node->_M_nxt = nullptr; 26201: auto& __a = _M_h._M_node_allocator(); 26201: __node_alloc_traits::destroy(__a, __node->_M_valptr()); 26201: try 26201: { 26201: __node_alloc_traits::construct(__a, __node->_M_valptr(), 26201: std::forward<_Arg>(__arg)); 26201: } 26201: catch(...) 26201: { 26201: _M_h._M_deallocate_node_ptr(__node); 26201: throw; 26201: } 26201: return __node; 26201: } 26201: return _M_h._M_allocate_node(std::forward<_Arg>(__arg)); 26201: } 26201: 26201: private: 26201: mutable __node_type* _M_nodes; 26201: __hashtable_alloc& _M_h; 26201: }; 26201: 26201: 26201: 26201: template 26201: struct _AllocNode 26201: { 26201: private: 26201: using __hashtable_alloc = _Hashtable_alloc<_NodeAlloc>; 26201: using __node_type = typename __hashtable_alloc::__node_type; 26201: 26201: public: 26201: _AllocNode(__hashtable_alloc& __h) 26201: : _M_h(__h) { } 26201: 26201: template 26201: __node_type* 26201: operator()(_Arg&& __arg) const 26201: { return _M_h._M_allocate_node(std::forward<_Arg>(__arg)); } 26201: 26201: private: 26201: __hashtable_alloc& _M_h; 26201: }; 26201: # 198 "/usr/x86_64-linux-gnu/include/c++/10/bits/hashtable_policy.h" 3 26201: template 26201: struct _Hashtable_traits 26201: { 26201: using __hash_cached = __bool_constant<_Cache_hash_code>; 26201: using __constant_iterators = __bool_constant<_Constant_iterators>; 26201: using __unique_keys = __bool_constant<_Unique_keys>; 26201: }; 26201: # 214 "/usr/x86_64-linux-gnu/include/c++/10/bits/hashtable_policy.h" 3 26201: struct _Hash_node_base 26201: { 26201: _Hash_node_base* _M_nxt; 26201: 26201: _Hash_node_base() noexcept : _M_nxt() { } 26201: 26201: _Hash_node_base(_Hash_node_base* __next) noexcept : _M_nxt(__next) { } 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct _Hash_node_value_base : _Hash_node_base 26201: { 26201: typedef _Value value_type; 26201: 26201: __gnu_cxx::__aligned_buffer<_Value> _M_storage; 26201: 26201: _Value* 26201: _M_valptr() noexcept 26201: { return _M_storage._M_ptr(); } 26201: 26201: const _Value* 26201: _M_valptr() const noexcept 26201: { return _M_storage._M_ptr(); } 26201: 26201: _Value& 26201: _M_v() noexcept 26201: { return *_M_valptr(); } 26201: 26201: const _Value& 26201: _M_v() const noexcept 26201: { return *_M_valptr(); } 26201: }; 26201: 26201: 26201: 26201: 26201: template 26201: struct _Hash_node; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct _Hash_node<_Value, true> : _Hash_node_value_base<_Value> 26201: { 26201: std::size_t _M_hash_code; 26201: 26201: _Hash_node* 26201: _M_next() const noexcept 26201: { return static_cast<_Hash_node*>(this->_M_nxt); } 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct _Hash_node<_Value, false> : _Hash_node_value_base<_Value> 26201: { 26201: _Hash_node* 26201: _M_next() const noexcept 26201: { return static_cast<_Hash_node*>(this->_M_nxt); } 26201: }; 26201: 26201: 26201: template 26201: struct _Node_iterator_base 26201: { 26201: using __node_type = _Hash_node<_Value, _Cache_hash_code>; 26201: 26201: __node_type* _M_cur; 26201: 26201: _Node_iterator_base(__node_type* __p) noexcept 26201: : _M_cur(__p) { } 26201: 26201: void 26201: _M_incr() noexcept 26201: { _M_cur = _M_cur->_M_next(); } 26201: }; 26201: 26201: template 26201: inline bool 26201: operator==(const _Node_iterator_base<_Value, _Cache_hash_code>& __x, 26201: const _Node_iterator_base<_Value, _Cache_hash_code >& __y) 26201: noexcept 26201: { return __x._M_cur == __y._M_cur; } 26201: 26201: template 26201: inline bool 26201: operator!=(const _Node_iterator_base<_Value, _Cache_hash_code>& __x, 26201: const _Node_iterator_base<_Value, _Cache_hash_code>& __y) 26201: noexcept 26201: { return __x._M_cur != __y._M_cur; } 26201: 26201: 26201: template 26201: struct _Node_iterator 26201: : public _Node_iterator_base<_Value, __cache> 26201: { 26201: private: 26201: using __base_type = _Node_iterator_base<_Value, __cache>; 26201: using __node_type = typename __base_type::__node_type; 26201: 26201: public: 26201: typedef _Value value_type; 26201: typedef std::ptrdiff_t difference_type; 26201: typedef std::forward_iterator_tag iterator_category; 26201: 26201: using pointer = typename std::conditional<__constant_iterators, 26201: const _Value*, _Value*>::type; 26201: 26201: using reference = typename std::conditional<__constant_iterators, 26201: const _Value&, _Value&>::type; 26201: 26201: _Node_iterator() noexcept 26201: : __base_type(0) { } 26201: 26201: explicit 26201: _Node_iterator(__node_type* __p) noexcept 26201: : __base_type(__p) { } 26201: 26201: reference 26201: operator*() const noexcept 26201: { return this->_M_cur->_M_v(); } 26201: 26201: pointer 26201: operator->() const noexcept 26201: { return this->_M_cur->_M_valptr(); } 26201: 26201: _Node_iterator& 26201: operator++() noexcept 26201: { 26201: this->_M_incr(); 26201: return *this; 26201: } 26201: 26201: _Node_iterator 26201: operator++(int) noexcept 26201: { 26201: _Node_iterator __tmp(*this); 26201: this->_M_incr(); 26201: return __tmp; 26201: } 26201: }; 26201: 26201: 26201: template 26201: struct _Node_const_iterator 26201: : public _Node_iterator_base<_Value, __cache> 26201: { 26201: private: 26201: using __base_type = _Node_iterator_base<_Value, __cache>; 26201: using __node_type = typename __base_type::__node_type; 26201: 26201: public: 26201: typedef _Value value_type; 26201: typedef std::ptrdiff_t difference_type; 26201: typedef std::forward_iterator_tag iterator_category; 26201: 26201: typedef const _Value* pointer; 26201: typedef const _Value& reference; 26201: 26201: _Node_const_iterator() noexcept 26201: : __base_type(0) { } 26201: 26201: explicit 26201: _Node_const_iterator(__node_type* __p) noexcept 26201: : __base_type(__p) { } 26201: 26201: _Node_const_iterator(const _Node_iterator<_Value, __constant_iterators, 26201: __cache>& __x) noexcept 26201: : __base_type(__x._M_cur) { } 26201: 26201: reference 26201: operator*() const noexcept 26201: { return this->_M_cur->_M_v(); } 26201: 26201: pointer 26201: operator->() const noexcept 26201: { return this->_M_cur->_M_valptr(); } 26201: 26201: _Node_const_iterator& 26201: operator++() noexcept 26201: { 26201: this->_M_incr(); 26201: return *this; 26201: } 26201: 26201: _Node_const_iterator 26201: operator++(int) noexcept 26201: { 26201: _Node_const_iterator __tmp(*this); 26201: this->_M_incr(); 26201: return __tmp; 26201: } 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: struct _Mod_range_hashing 26201: { 26201: typedef std::size_t first_argument_type; 26201: typedef std::size_t second_argument_type; 26201: typedef std::size_t result_type; 26201: 26201: result_type 26201: operator()(first_argument_type __num, 26201: second_argument_type __den) const noexcept 26201: { return __num % __den; } 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: struct _Default_ranged_hash { }; 26201: 26201: 26201: 26201: struct _Prime_rehash_policy 26201: { 26201: using __has_load_factor = true_type; 26201: 26201: _Prime_rehash_policy(float __z = 1.0) noexcept 26201: : _M_max_load_factor(__z), _M_next_resize(0) { } 26201: 26201: float 26201: max_load_factor() const noexcept 26201: { return _M_max_load_factor; } 26201: 26201: 26201: std::size_t 26201: _M_next_bkt(std::size_t __n) const; 26201: 26201: 26201: std::size_t 26201: _M_bkt_for_elements(std::size_t __n) const 26201: { return __builtin_ceill(__n / (long double)_M_max_load_factor); } 26201: 26201: 26201: 26201: 26201: 26201: std::pair 26201: _M_need_rehash(std::size_t __n_bkt, std::size_t __n_elt, 26201: std::size_t __n_ins) const; 26201: 26201: typedef std::size_t _State; 26201: 26201: _State 26201: _M_state() const 26201: { return _M_next_resize; } 26201: 26201: void 26201: _M_reset() noexcept 26201: { _M_next_resize = 0; } 26201: 26201: void 26201: _M_reset(_State __state) 26201: { _M_next_resize = __state; } 26201: 26201: static const std::size_t _S_growth_factor = 2; 26201: 26201: float _M_max_load_factor; 26201: mutable std::size_t _M_next_resize; 26201: }; 26201: 26201: 26201: struct _Mask_range_hashing 26201: { 26201: typedef std::size_t first_argument_type; 26201: typedef std::size_t second_argument_type; 26201: typedef std::size_t result_type; 26201: 26201: result_type 26201: operator()(first_argument_type __num, 26201: second_argument_type __den) const noexcept 26201: { return __num & (__den - 1); } 26201: }; 26201: 26201: 26201: inline std::size_t 26201: __clp2(std::size_t __n) noexcept 26201: { 26201: 26201: if (__n < 2) 26201: return __n; 26201: const unsigned __lz = sizeof(size_t) > sizeof(long) 26201: ? __builtin_clzll(__n - 1ull) 26201: : __builtin_clzl(__n - 1ul); 26201: 26201: return (size_t(1) << (numeric_limits::digits - __lz - 1)) << 1; 26201: } 26201: 26201: 26201: 26201: struct _Power2_rehash_policy 26201: { 26201: using __has_load_factor = true_type; 26201: 26201: _Power2_rehash_policy(float __z = 1.0) noexcept 26201: : _M_max_load_factor(__z), _M_next_resize(0) { } 26201: 26201: float 26201: max_load_factor() const noexcept 26201: { return _M_max_load_factor; } 26201: 26201: 26201: 26201: std::size_t 26201: _M_next_bkt(std::size_t __n) noexcept 26201: { 26201: if (__n == 0) 26201: 26201: 26201: 26201: return 1; 26201: 26201: const auto __max_width = std::min(sizeof(size_t), 8); 26201: const auto __max_bkt = size_t(1) << (__max_width * 8 - 1); 26201: std::size_t __res = __clp2(__n); 26201: 26201: if (__res == 0) 26201: __res = __max_bkt; 26201: else if (__res == 1) 26201: 26201: 26201: 26201: __res = 2; 26201: 26201: if (__res == __max_bkt) 26201: 26201: 26201: 26201: _M_next_resize = numeric_limits::max(); 26201: else 26201: _M_next_resize 26201: = __builtin_floorl(__res * (long double)_M_max_load_factor); 26201: 26201: return __res; 26201: } 26201: 26201: 26201: std::size_t 26201: _M_bkt_for_elements(std::size_t __n) const noexcept 26201: { return __builtin_ceill(__n / (long double)_M_max_load_factor); } 26201: 26201: 26201: 26201: 26201: 26201: std::pair 26201: _M_need_rehash(std::size_t __n_bkt, std::size_t __n_elt, 26201: std::size_t __n_ins) noexcept 26201: { 26201: if (__n_elt + __n_ins > _M_next_resize) 26201: { 26201: 26201: 26201: 26201: long double __min_bkts 26201: = std::max(__n_elt + __n_ins, _M_next_resize ? 0 : 11) 26201: / (long double)_M_max_load_factor; 26201: if (__min_bkts >= __n_bkt) 26201: return { true, 26201: _M_next_bkt(std::max(__builtin_floorl(__min_bkts) + 1, 26201: __n_bkt * _S_growth_factor)) }; 26201: 26201: _M_next_resize 26201: = __builtin_floorl(__n_bkt * (long double)_M_max_load_factor); 26201: return { false, 0 }; 26201: } 26201: else 26201: return { false, 0 }; 26201: } 26201: 26201: typedef std::size_t _State; 26201: 26201: _State 26201: _M_state() const noexcept 26201: { return _M_next_resize; } 26201: 26201: void 26201: _M_reset() noexcept 26201: { _M_next_resize = 0; } 26201: 26201: void 26201: _M_reset(_State __state) noexcept 26201: { _M_next_resize = __state; } 26201: 26201: static const std::size_t _S_growth_factor = 2; 26201: 26201: float _M_max_load_factor; 26201: std::size_t _M_next_resize; 26201: }; 26201: # 640 "/usr/x86_64-linux-gnu/include/c++/10/bits/hashtable_policy.h" 3 26201: template 26201: struct _Map_base { }; 26201: 26201: 26201: template 26201: struct _Map_base<_Key, _Pair, _Alloc, _Select1st, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits, false> 26201: { 26201: using mapped_type = typename std::tuple_element<1, _Pair>::type; 26201: }; 26201: 26201: 26201: template 26201: struct _Map_base<_Key, _Pair, _Alloc, _Select1st, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits, true> 26201: { 26201: private: 26201: using __hashtable_base = __detail::_Hashtable_base<_Key, _Pair, 26201: _Select1st, 26201: _Equal, _H1, _H2, _Hash, 26201: _Traits>; 26201: 26201: using __hashtable = _Hashtable<_Key, _Pair, _Alloc, 26201: _Select1st, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>; 26201: 26201: using __hash_code = typename __hashtable_base::__hash_code; 26201: using __node_type = typename __hashtable_base::__node_type; 26201: 26201: public: 26201: using key_type = typename __hashtable_base::key_type; 26201: using iterator = typename __hashtable_base::iterator; 26201: using mapped_type = typename std::tuple_element<1, _Pair>::type; 26201: 26201: mapped_type& 26201: operator[](const key_type& __k); 26201: 26201: mapped_type& 26201: operator[](key_type&& __k); 26201: 26201: 26201: 26201: mapped_type& 26201: at(const key_type& __k); 26201: 26201: const mapped_type& 26201: at(const key_type& __k) const; 26201: }; 26201: 26201: template 26201: auto 26201: _Map_base<_Key, _Pair, _Alloc, _Select1st, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits, true>:: 26201: operator[](const key_type& __k) 26201: -> mapped_type& 26201: { 26201: __hashtable* __h = static_cast<__hashtable*>(this); 26201: __hash_code __code = __h->_M_hash_code(__k); 26201: std::size_t __bkt = __h->_M_bucket_index(__k, __code); 26201: if (__node_type* __node = __h->_M_find_node(__bkt, __k, __code)) 26201: return __node->_M_v().second; 26201: 26201: typename __hashtable::_Scoped_node __node { 26201: __h, 26201: std::piecewise_construct, 26201: std::tuple(__k), 26201: std::tuple<>() 26201: }; 26201: auto __pos 26201: = __h->_M_insert_unique_node(__k, __bkt, __code, __node._M_node); 26201: __node._M_node = nullptr; 26201: return __pos->second; 26201: } 26201: 26201: template 26201: auto 26201: _Map_base<_Key, _Pair, _Alloc, _Select1st, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits, true>:: 26201: operator[](key_type&& __k) 26201: -> mapped_type& 26201: { 26201: __hashtable* __h = static_cast<__hashtable*>(this); 26201: __hash_code __code = __h->_M_hash_code(__k); 26201: std::size_t __bkt = __h->_M_bucket_index(__k, __code); 26201: if (__node_type* __node = __h->_M_find_node(__bkt, __k, __code)) 26201: return __node->_M_v().second; 26201: 26201: typename __hashtable::_Scoped_node __node { 26201: __h, 26201: std::piecewise_construct, 26201: std::forward_as_tuple(std::move(__k)), 26201: std::tuple<>() 26201: }; 26201: auto __pos 26201: = __h->_M_insert_unique_node(__k, __bkt, __code, __node._M_node); 26201: __node._M_node = nullptr; 26201: return __pos->second; 26201: } 26201: 26201: template 26201: auto 26201: _Map_base<_Key, _Pair, _Alloc, _Select1st, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits, true>:: 26201: at(const key_type& __k) 26201: -> mapped_type& 26201: { 26201: __hashtable* __h = static_cast<__hashtable*>(this); 26201: __hash_code __code = __h->_M_hash_code(__k); 26201: std::size_t __bkt = __h->_M_bucket_index(__k, __code); 26201: __node_type* __p = __h->_M_find_node(__bkt, __k, __code); 26201: 26201: if (!__p) 26201: __throw_out_of_range(("_Map_base::at")); 26201: return __p->_M_v().second; 26201: } 26201: 26201: template 26201: auto 26201: _Map_base<_Key, _Pair, _Alloc, _Select1st, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits, true>:: 26201: at(const key_type& __k) const 26201: -> const mapped_type& 26201: { 26201: const __hashtable* __h = static_cast(this); 26201: __hash_code __code = __h->_M_hash_code(__k); 26201: std::size_t __bkt = __h->_M_bucket_index(__k, __code); 26201: __node_type* __p = __h->_M_find_node(__bkt, __k, __code); 26201: 26201: if (!__p) 26201: __throw_out_of_range(("_Map_base::at")); 26201: return __p->_M_v().second; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct _Insert_base 26201: { 26201: protected: 26201: using __hashtable = _Hashtable<_Key, _Value, _Alloc, _ExtractKey, 26201: _Equal, _H1, _H2, _Hash, 26201: _RehashPolicy, _Traits>; 26201: 26201: using __hashtable_base = _Hashtable_base<_Key, _Value, _ExtractKey, 26201: _Equal, _H1, _H2, _Hash, 26201: _Traits>; 26201: 26201: using value_type = typename __hashtable_base::value_type; 26201: using iterator = typename __hashtable_base::iterator; 26201: using const_iterator = typename __hashtable_base::const_iterator; 26201: using size_type = typename __hashtable_base::size_type; 26201: 26201: using __unique_keys = typename __hashtable_base::__unique_keys; 26201: using __ireturn_type = typename __hashtable_base::__ireturn_type; 26201: using __node_type = _Hash_node<_Value, _Traits::__hash_cached::value>; 26201: using __node_alloc_type = __alloc_rebind<_Alloc, __node_type>; 26201: using __node_gen_type = _AllocNode<__node_alloc_type>; 26201: 26201: __hashtable& 26201: _M_conjure_hashtable() 26201: { return *(static_cast<__hashtable*>(this)); } 26201: 26201: template 26201: void 26201: _M_insert_range(_InputIterator __first, _InputIterator __last, 26201: const _NodeGetter&, true_type); 26201: 26201: template 26201: void 26201: _M_insert_range(_InputIterator __first, _InputIterator __last, 26201: const _NodeGetter&, false_type); 26201: 26201: public: 26201: __ireturn_type 26201: insert(const value_type& __v) 26201: { 26201: __hashtable& __h = _M_conjure_hashtable(); 26201: __node_gen_type __node_gen(__h); 26201: return __h._M_insert(__v, __node_gen, __unique_keys()); 26201: } 26201: 26201: iterator 26201: insert(const_iterator __hint, const value_type& __v) 26201: { 26201: __hashtable& __h = _M_conjure_hashtable(); 26201: __node_gen_type __node_gen(__h); 26201: return __h._M_insert(__hint, __v, __node_gen, __unique_keys()); 26201: } 26201: 26201: void 26201: insert(initializer_list __l) 26201: { this->insert(__l.begin(), __l.end()); } 26201: 26201: template 26201: void 26201: insert(_InputIterator __first, _InputIterator __last) 26201: { 26201: __hashtable& __h = _M_conjure_hashtable(); 26201: __node_gen_type __node_gen(__h); 26201: return _M_insert_range(__first, __last, __node_gen, __unique_keys()); 26201: } 26201: }; 26201: 26201: template 26201: template 26201: void 26201: _Insert_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, 26201: _RehashPolicy, _Traits>:: 26201: _M_insert_range(_InputIterator __first, _InputIterator __last, 26201: const _NodeGetter& __node_gen, true_type) 26201: { 26201: size_type __n_elt = __detail::__distance_fw(__first, __last); 26201: if (__n_elt == 0) 26201: return; 26201: 26201: __hashtable& __h = _M_conjure_hashtable(); 26201: for (; __first != __last; ++__first) 26201: { 26201: if (__h._M_insert(*__first, __node_gen, __unique_keys(), 26201: __n_elt).second) 26201: __n_elt = 1; 26201: else if (__n_elt != 1) 26201: --__n_elt; 26201: } 26201: } 26201: 26201: template 26201: template 26201: void 26201: _Insert_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, 26201: _RehashPolicy, _Traits>:: 26201: _M_insert_range(_InputIterator __first, _InputIterator __last, 26201: const _NodeGetter& __node_gen, false_type) 26201: { 26201: using __rehash_type = typename __hashtable::__rehash_type; 26201: using __rehash_state = typename __hashtable::__rehash_state; 26201: using pair_type = std::pair; 26201: 26201: size_type __n_elt = __detail::__distance_fw(__first, __last); 26201: if (__n_elt == 0) 26201: return; 26201: 26201: __hashtable& __h = _M_conjure_hashtable(); 26201: __rehash_type& __rehash = __h._M_rehash_policy; 26201: const __rehash_state& __saved_state = __rehash._M_state(); 26201: pair_type __do_rehash = __rehash._M_need_rehash(__h._M_bucket_count, 26201: __h._M_element_count, 26201: __n_elt); 26201: 26201: if (__do_rehash.first) 26201: __h._M_rehash(__do_rehash.second, __saved_state); 26201: 26201: for (; __first != __last; ++__first) 26201: __h._M_insert(*__first, __node_gen, __unique_keys()); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct _Insert; 26201: 26201: 26201: template 26201: struct _Insert<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, 26201: _RehashPolicy, _Traits, true> 26201: : public _Insert_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits> 26201: { 26201: using __base_type = _Insert_base<_Key, _Value, _Alloc, _ExtractKey, 26201: _Equal, _H1, _H2, _Hash, 26201: _RehashPolicy, _Traits>; 26201: 26201: using __hashtable_base = _Hashtable_base<_Key, _Value, _ExtractKey, 26201: _Equal, _H1, _H2, _Hash, 26201: _Traits>; 26201: 26201: using value_type = typename __base_type::value_type; 26201: using iterator = typename __base_type::iterator; 26201: using const_iterator = typename __base_type::const_iterator; 26201: 26201: using __unique_keys = typename __base_type::__unique_keys; 26201: using __ireturn_type = typename __hashtable_base::__ireturn_type; 26201: using __hashtable = typename __base_type::__hashtable; 26201: using __node_gen_type = typename __base_type::__node_gen_type; 26201: 26201: using __base_type::insert; 26201: 26201: __ireturn_type 26201: insert(value_type&& __v) 26201: { 26201: __hashtable& __h = this->_M_conjure_hashtable(); 26201: __node_gen_type __node_gen(__h); 26201: return __h._M_insert(std::move(__v), __node_gen, __unique_keys()); 26201: } 26201: 26201: iterator 26201: insert(const_iterator __hint, value_type&& __v) 26201: { 26201: __hashtable& __h = this->_M_conjure_hashtable(); 26201: __node_gen_type __node_gen(__h); 26201: return __h._M_insert(__hint, std::move(__v), __node_gen, 26201: __unique_keys()); 26201: } 26201: }; 26201: 26201: 26201: template 26201: struct _Insert<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, 26201: _RehashPolicy, _Traits, false> 26201: : public _Insert_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits> 26201: { 26201: using __base_type = _Insert_base<_Key, _Value, _Alloc, _ExtractKey, 26201: _Equal, _H1, _H2, _Hash, 26201: _RehashPolicy, _Traits>; 26201: using value_type = typename __base_type::value_type; 26201: using iterator = typename __base_type::iterator; 26201: using const_iterator = typename __base_type::const_iterator; 26201: 26201: using __unique_keys = typename __base_type::__unique_keys; 26201: using __hashtable = typename __base_type::__hashtable; 26201: using __ireturn_type = typename __base_type::__ireturn_type; 26201: 26201: using __base_type::insert; 26201: 26201: template 26201: using __is_cons = std::is_constructible; 26201: 26201: template 26201: using _IFcons = std::enable_if<__is_cons<_Pair>::value>; 26201: 26201: template 26201: using _IFconsp = typename _IFcons<_Pair>::type; 26201: 26201: template> 26201: __ireturn_type 26201: insert(_Pair&& __v) 26201: { 26201: __hashtable& __h = this->_M_conjure_hashtable(); 26201: return __h._M_emplace(__unique_keys(), std::forward<_Pair>(__v)); 26201: } 26201: 26201: template> 26201: iterator 26201: insert(const_iterator __hint, _Pair&& __v) 26201: { 26201: __hashtable& __h = this->_M_conjure_hashtable(); 26201: return __h._M_emplace(__hint, __unique_keys(), 26201: std::forward<_Pair>(__v)); 26201: } 26201: }; 26201: 26201: template 26201: using __has_load_factor = typename _Policy::__has_load_factor; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template> 26201: struct _Rehash_base; 26201: 26201: 26201: template 26201: struct _Rehash_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits, 26201: false_type> 26201: { 26201: }; 26201: 26201: 26201: template 26201: struct _Rehash_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits, 26201: true_type> 26201: { 26201: using __hashtable = _Hashtable<_Key, _Value, _Alloc, _ExtractKey, 26201: _Equal, _H1, _H2, _Hash, 26201: _RehashPolicy, _Traits>; 26201: 26201: float 26201: max_load_factor() const noexcept 26201: { 26201: const __hashtable* __this = static_cast(this); 26201: return __this->__rehash_policy().max_load_factor(); 26201: } 26201: 26201: void 26201: max_load_factor(float __z) 26201: { 26201: __hashtable* __this = static_cast<__hashtable*>(this); 26201: __this->__rehash_policy(_RehashPolicy(__z)); 26201: } 26201: 26201: void 26201: reserve(std::size_t __n) 26201: { 26201: __hashtable* __this = static_cast<__hashtable*>(this); 26201: __this->rehash(__this->__rehash_policy()._M_bkt_for_elements(__n)); 26201: } 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct _Hashtable_ebo_helper; 26201: 26201: 26201: template 26201: struct _Hashtable_ebo_helper<_Nm, _Tp, true> 26201: : private _Tp 26201: { 26201: _Hashtable_ebo_helper() = default; 26201: 26201: template 26201: _Hashtable_ebo_helper(_OtherTp&& __tp) 26201: : _Tp(std::forward<_OtherTp>(__tp)) 26201: { } 26201: 26201: const _Tp& _M_cget() const { return static_cast(*this); } 26201: _Tp& _M_get() { return static_cast<_Tp&>(*this); } 26201: }; 26201: 26201: 26201: template 26201: struct _Hashtable_ebo_helper<_Nm, _Tp, false> 26201: { 26201: _Hashtable_ebo_helper() = default; 26201: 26201: template 26201: _Hashtable_ebo_helper(_OtherTp&& __tp) 26201: : _M_tp(std::forward<_OtherTp>(__tp)) 26201: { } 26201: 26201: const _Tp& _M_cget() const { return _M_tp; } 26201: _Tp& _M_get() { return _M_tp; } 26201: 26201: private: 26201: _Tp _M_tp; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct _Local_iterator_base; 26201: # 1172 "/usr/x86_64-linux-gnu/include/c++/10/bits/hashtable_policy.h" 3 26201: template 26201: struct _Hash_code_base; 26201: 26201: 26201: 26201: template 26201: struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash, false> 26201: : private _Hashtable_ebo_helper<0, _ExtractKey>, 26201: private _Hashtable_ebo_helper<1, _Hash> 26201: { 26201: private: 26201: using __ebo_extract_key = _Hashtable_ebo_helper<0, _ExtractKey>; 26201: using __ebo_hash = _Hashtable_ebo_helper<1, _Hash>; 26201: 26201: protected: 26201: typedef void* __hash_code; 26201: typedef _Hash_node<_Value, false> __node_type; 26201: 26201: 26201: 26201: _Hash_code_base() = default; 26201: 26201: _Hash_code_base(const _ExtractKey& __ex, const _H1&, const _H2&, 26201: const _Hash& __h) 26201: : __ebo_extract_key(__ex), __ebo_hash(__h) { } 26201: 26201: __hash_code 26201: _M_hash_code(const _Key& __key) const 26201: { return 0; } 26201: 26201: std::size_t 26201: _M_bucket_index(const _Key& __k, __hash_code, 26201: std::size_t __bkt_count) const 26201: { return _M_ranged_hash()(__k, __bkt_count); } 26201: 26201: std::size_t 26201: _M_bucket_index(const __node_type* __p, std::size_t __bkt_count) const 26201: noexcept( noexcept(declval()(declval(), 26201: (std::size_t)0)) ) 26201: { return _M_ranged_hash()(_M_extract()(__p->_M_v()), __bkt_count); } 26201: 26201: void 26201: _M_store_code(__node_type*, __hash_code) const 26201: { } 26201: 26201: void 26201: _M_copy_code(__node_type*, const __node_type*) const 26201: { } 26201: 26201: void 26201: _M_swap(_Hash_code_base& __x) 26201: { 26201: std::swap(__ebo_extract_key::_M_get(), 26201: __x.__ebo_extract_key::_M_get()); 26201: std::swap(__ebo_hash::_M_get(), __x.__ebo_hash::_M_get()); 26201: } 26201: 26201: const _ExtractKey& 26201: _M_extract() const { return __ebo_extract_key::_M_cget(); } 26201: 26201: const _Hash& 26201: _M_ranged_hash() const { return __ebo_hash::_M_cget(); } 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash, true>; 26201: 26201: 26201: 26201: 26201: template 26201: struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, 26201: _Default_ranged_hash, false> 26201: : private _Hashtable_ebo_helper<0, _ExtractKey>, 26201: private _Hashtable_ebo_helper<1, _H1>, 26201: private _Hashtable_ebo_helper<2, _H2> 26201: { 26201: private: 26201: using __ebo_extract_key = _Hashtable_ebo_helper<0, _ExtractKey>; 26201: using __ebo_h1 = _Hashtable_ebo_helper<1, _H1>; 26201: using __ebo_h2 = _Hashtable_ebo_helper<2, _H2>; 26201: 26201: 26201: friend struct _Local_iterator_base<_Key, _Value, _ExtractKey, _H1, _H2, 26201: _Default_ranged_hash, false>; 26201: 26201: public: 26201: typedef _H1 hasher; 26201: 26201: hasher 26201: hash_function() const 26201: { return _M_h1(); } 26201: 26201: protected: 26201: typedef std::size_t __hash_code; 26201: typedef _Hash_node<_Value, false> __node_type; 26201: 26201: 26201: 26201: _Hash_code_base() = default; 26201: 26201: _Hash_code_base(const _ExtractKey& __ex, 26201: const _H1& __h1, const _H2& __h2, 26201: const _Default_ranged_hash&) 26201: : __ebo_extract_key(__ex), __ebo_h1(__h1), __ebo_h2(__h2) { } 26201: 26201: __hash_code 26201: _M_hash_code(const _Key& __k) const 26201: { 26201: static_assert(__is_invocable{}, 26201: "hash function must be invocable with an argument of key type"); 26201: return _M_h1()(__k); 26201: } 26201: 26201: std::size_t 26201: _M_bucket_index(const _Key&, __hash_code __c, 26201: std::size_t __bkt_count) const 26201: { return _M_h2()(__c, __bkt_count); } 26201: 26201: std::size_t 26201: _M_bucket_index(const __node_type* __p, std::size_t __bkt_count) const 26201: noexcept( noexcept(declval()(declval())) 26201: && noexcept(declval()((__hash_code)0, 26201: (std::size_t)0)) ) 26201: { return _M_h2()(_M_h1()(_M_extract()(__p->_M_v())), __bkt_count); } 26201: 26201: void 26201: _M_store_code(__node_type*, __hash_code) const 26201: { } 26201: 26201: void 26201: _M_copy_code(__node_type*, const __node_type*) const 26201: { } 26201: 26201: void 26201: _M_swap(_Hash_code_base& __x) 26201: { 26201: std::swap(__ebo_extract_key::_M_get(), 26201: __x.__ebo_extract_key::_M_get()); 26201: std::swap(__ebo_h1::_M_get(), __x.__ebo_h1::_M_get()); 26201: std::swap(__ebo_h2::_M_get(), __x.__ebo_h2::_M_get()); 26201: } 26201: 26201: const _ExtractKey& 26201: _M_extract() const { return __ebo_extract_key::_M_cget(); } 26201: 26201: const _H1& 26201: _M_h1() const { return __ebo_h1::_M_cget(); } 26201: 26201: const _H2& 26201: _M_h2() const { return __ebo_h2::_M_cget(); } 26201: }; 26201: 26201: 26201: 26201: 26201: template 26201: struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, 26201: _Default_ranged_hash, true> 26201: : private _Hashtable_ebo_helper<0, _ExtractKey>, 26201: private _Hashtable_ebo_helper<1, _H1>, 26201: private _Hashtable_ebo_helper<2, _H2> 26201: { 26201: private: 26201: 26201: friend struct _Local_iterator_base<_Key, _Value, _ExtractKey, _H1, _H2, 26201: _Default_ranged_hash, true>; 26201: 26201: using __ebo_extract_key = _Hashtable_ebo_helper<0, _ExtractKey>; 26201: using __ebo_h1 = _Hashtable_ebo_helper<1, _H1>; 26201: using __ebo_h2 = _Hashtable_ebo_helper<2, _H2>; 26201: 26201: public: 26201: typedef _H1 hasher; 26201: 26201: hasher 26201: hash_function() const 26201: { return _M_h1(); } 26201: 26201: protected: 26201: typedef std::size_t __hash_code; 26201: typedef _Hash_node<_Value, true> __node_type; 26201: 26201: 26201: _Hash_code_base() = default; 26201: _Hash_code_base(const _ExtractKey& __ex, 26201: const _H1& __h1, const _H2& __h2, 26201: const _Default_ranged_hash&) 26201: : __ebo_extract_key(__ex), __ebo_h1(__h1), __ebo_h2(__h2) { } 26201: 26201: __hash_code 26201: _M_hash_code(const _Key& __k) const 26201: { 26201: static_assert(__is_invocable{}, 26201: "hash function must be invocable with an argument of key type"); 26201: return _M_h1()(__k); 26201: } 26201: 26201: std::size_t 26201: _M_bucket_index(const _Key&, __hash_code __c, 26201: std::size_t __bkt_count) const 26201: { return _M_h2()(__c, __bkt_count); } 26201: 26201: std::size_t 26201: _M_bucket_index(const __node_type* __p, std::size_t __bkt_count) const 26201: noexcept( noexcept(declval()((__hash_code)0, 26201: (std::size_t)0)) ) 26201: { return _M_h2()(__p->_M_hash_code, __bkt_count); } 26201: 26201: void 26201: _M_store_code(__node_type* __n, __hash_code __c) const 26201: { __n->_M_hash_code = __c; } 26201: 26201: void 26201: _M_copy_code(__node_type* __to, const __node_type* __from) const 26201: { __to->_M_hash_code = __from->_M_hash_code; } 26201: 26201: void 26201: _M_swap(_Hash_code_base& __x) 26201: { 26201: std::swap(__ebo_extract_key::_M_get(), 26201: __x.__ebo_extract_key::_M_get()); 26201: std::swap(__ebo_h1::_M_get(), __x.__ebo_h1::_M_get()); 26201: std::swap(__ebo_h2::_M_get(), __x.__ebo_h2::_M_get()); 26201: } 26201: 26201: const _ExtractKey& 26201: _M_extract() const { return __ebo_extract_key::_M_cget(); } 26201: 26201: const _H1& 26201: _M_h1() const { return __ebo_h1::_M_cget(); } 26201: 26201: const _H2& 26201: _M_h2() const { return __ebo_h2::_M_cget(); } 26201: }; 26201: 26201: 26201: template 26201: struct _Local_iterator_base<_Key, _Value, _ExtractKey, 26201: _H1, _H2, _Hash, true> 26201: : private _Hashtable_ebo_helper<0, _H2> 26201: { 26201: protected: 26201: using __base_type = _Hashtable_ebo_helper<0, _H2>; 26201: using __hash_code_base = _Hash_code_base<_Key, _Value, _ExtractKey, 26201: _H1, _H2, _Hash, true>; 26201: 26201: _Local_iterator_base() = default; 26201: _Local_iterator_base(const __hash_code_base& __base, 26201: _Hash_node<_Value, true>* __p, 26201: std::size_t __bkt, std::size_t __bkt_count) 26201: : __base_type(__base._M_h2()), 26201: _M_cur(__p), _M_bucket(__bkt), _M_bucket_count(__bkt_count) { } 26201: 26201: void 26201: _M_incr() 26201: { 26201: _M_cur = _M_cur->_M_next(); 26201: if (_M_cur) 26201: { 26201: std::size_t __bkt 26201: = __base_type::_M_get()(_M_cur->_M_hash_code, 26201: _M_bucket_count); 26201: if (__bkt != _M_bucket) 26201: _M_cur = nullptr; 26201: } 26201: } 26201: 26201: _Hash_node<_Value, true>* _M_cur; 26201: std::size_t _M_bucket; 26201: std::size_t _M_bucket_count; 26201: 26201: public: 26201: const void* 26201: _M_curr() const { return _M_cur; } 26201: 26201: std::size_t 26201: _M_get_bucket() const { return _M_bucket; } 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: template::value> 26201: struct _Hash_code_storage 26201: { 26201: __gnu_cxx::__aligned_buffer<_Tp> _M_storage; 26201: 26201: _Tp* 26201: _M_h() { return _M_storage._M_ptr(); } 26201: 26201: const _Tp* 26201: _M_h() const { return _M_storage._M_ptr(); } 26201: }; 26201: 26201: 26201: template 26201: struct _Hash_code_storage<_Tp, true> 26201: { 26201: static_assert( std::is_empty<_Tp>::value, "Type must be empty" ); 26201: 26201: 26201: 26201: _Tp* 26201: _M_h() { return reinterpret_cast<_Tp*>(this); } 26201: 26201: const _Tp* 26201: _M_h() const { return reinterpret_cast(this); } 26201: }; 26201: 26201: template 26201: using __hash_code_for_local_iter 26201: = _Hash_code_storage<_Hash_code_base<_Key, _Value, _ExtractKey, 26201: _H1, _H2, _Hash, false>>; 26201: 26201: 26201: template 26201: struct _Local_iterator_base<_Key, _Value, _ExtractKey, 26201: _H1, _H2, _Hash, false> 26201: : __hash_code_for_local_iter<_Key, _Value, _ExtractKey, _H1, _H2, _Hash> 26201: { 26201: protected: 26201: using __hash_code_base = _Hash_code_base<_Key, _Value, _ExtractKey, 26201: _H1, _H2, _Hash, false>; 26201: 26201: _Local_iterator_base() : _M_bucket_count(-1) { } 26201: 26201: _Local_iterator_base(const __hash_code_base& __base, 26201: _Hash_node<_Value, false>* __p, 26201: std::size_t __bkt, std::size_t __bkt_count) 26201: : _M_cur(__p), _M_bucket(__bkt), _M_bucket_count(__bkt_count) 26201: { _M_init(__base); } 26201: 26201: ~_Local_iterator_base() 26201: { 26201: if (_M_bucket_count != -1) 26201: _M_destroy(); 26201: } 26201: 26201: _Local_iterator_base(const _Local_iterator_base& __iter) 26201: : _M_cur(__iter._M_cur), _M_bucket(__iter._M_bucket), 26201: _M_bucket_count(__iter._M_bucket_count) 26201: { 26201: if (_M_bucket_count != -1) 26201: _M_init(*__iter._M_h()); 26201: } 26201: 26201: _Local_iterator_base& 26201: operator=(const _Local_iterator_base& __iter) 26201: { 26201: if (_M_bucket_count != -1) 26201: _M_destroy(); 26201: _M_cur = __iter._M_cur; 26201: _M_bucket = __iter._M_bucket; 26201: _M_bucket_count = __iter._M_bucket_count; 26201: if (_M_bucket_count != -1) 26201: _M_init(*__iter._M_h()); 26201: return *this; 26201: } 26201: 26201: void 26201: _M_incr() 26201: { 26201: _M_cur = _M_cur->_M_next(); 26201: if (_M_cur) 26201: { 26201: std::size_t __bkt = this->_M_h()->_M_bucket_index(_M_cur, 26201: _M_bucket_count); 26201: if (__bkt != _M_bucket) 26201: _M_cur = nullptr; 26201: } 26201: } 26201: 26201: _Hash_node<_Value, false>* _M_cur; 26201: std::size_t _M_bucket; 26201: std::size_t _M_bucket_count; 26201: 26201: void 26201: _M_init(const __hash_code_base& __base) 26201: { ::new(this->_M_h()) __hash_code_base(__base); } 26201: 26201: void 26201: _M_destroy() { this->_M_h()->~__hash_code_base(); } 26201: 26201: public: 26201: const void* 26201: _M_curr() const { return _M_cur; } 26201: 26201: std::size_t 26201: _M_get_bucket() const { return _M_bucket; } 26201: }; 26201: 26201: template 26201: inline bool 26201: operator==(const _Local_iterator_base<_Key, _Value, _ExtractKey, 26201: _H1, _H2, _Hash, __cache>& __x, 26201: const _Local_iterator_base<_Key, _Value, _ExtractKey, 26201: _H1, _H2, _Hash, __cache>& __y) 26201: { return __x._M_curr() == __y._M_curr(); } 26201: 26201: template 26201: inline bool 26201: operator!=(const _Local_iterator_base<_Key, _Value, _ExtractKey, 26201: _H1, _H2, _Hash, __cache>& __x, 26201: const _Local_iterator_base<_Key, _Value, _ExtractKey, 26201: _H1, _H2, _Hash, __cache>& __y) 26201: { return __x._M_curr() != __y._M_curr(); } 26201: 26201: 26201: template 26201: struct _Local_iterator 26201: : public _Local_iterator_base<_Key, _Value, _ExtractKey, 26201: _H1, _H2, _Hash, __cache> 26201: { 26201: private: 26201: using __base_type = _Local_iterator_base<_Key, _Value, _ExtractKey, 26201: _H1, _H2, _Hash, __cache>; 26201: using __hash_code_base = typename __base_type::__hash_code_base; 26201: public: 26201: typedef _Value value_type; 26201: typedef typename std::conditional<__constant_iterators, 26201: const _Value*, _Value*>::type 26201: pointer; 26201: typedef typename std::conditional<__constant_iterators, 26201: const _Value&, _Value&>::type 26201: reference; 26201: typedef std::ptrdiff_t difference_type; 26201: typedef std::forward_iterator_tag iterator_category; 26201: 26201: _Local_iterator() = default; 26201: 26201: _Local_iterator(const __hash_code_base& __base, 26201: _Hash_node<_Value, __cache>* __n, 26201: std::size_t __bkt, std::size_t __bkt_count) 26201: : __base_type(__base, __n, __bkt, __bkt_count) 26201: { } 26201: 26201: reference 26201: operator*() const 26201: { return this->_M_cur->_M_v(); } 26201: 26201: pointer 26201: operator->() const 26201: { return this->_M_cur->_M_valptr(); } 26201: 26201: _Local_iterator& 26201: operator++() 26201: { 26201: this->_M_incr(); 26201: return *this; 26201: } 26201: 26201: _Local_iterator 26201: operator++(int) 26201: { 26201: _Local_iterator __tmp(*this); 26201: this->_M_incr(); 26201: return __tmp; 26201: } 26201: }; 26201: 26201: 26201: template 26201: struct _Local_const_iterator 26201: : public _Local_iterator_base<_Key, _Value, _ExtractKey, 26201: _H1, _H2, _Hash, __cache> 26201: { 26201: private: 26201: using __base_type = _Local_iterator_base<_Key, _Value, _ExtractKey, 26201: _H1, _H2, _Hash, __cache>; 26201: using __hash_code_base = typename __base_type::__hash_code_base; 26201: 26201: public: 26201: typedef _Value value_type; 26201: typedef const _Value* pointer; 26201: typedef const _Value& reference; 26201: typedef std::ptrdiff_t difference_type; 26201: typedef std::forward_iterator_tag iterator_category; 26201: 26201: _Local_const_iterator() = default; 26201: 26201: _Local_const_iterator(const __hash_code_base& __base, 26201: _Hash_node<_Value, __cache>* __n, 26201: std::size_t __bkt, std::size_t __bkt_count) 26201: : __base_type(__base, __n, __bkt, __bkt_count) 26201: { } 26201: 26201: _Local_const_iterator(const _Local_iterator<_Key, _Value, _ExtractKey, 26201: _H1, _H2, _Hash, 26201: __constant_iterators, 26201: __cache>& __x) 26201: : __base_type(__x) 26201: { } 26201: 26201: reference 26201: operator*() const 26201: { return this->_M_cur->_M_v(); } 26201: 26201: pointer 26201: operator->() const 26201: { return this->_M_cur->_M_valptr(); } 26201: 26201: _Local_const_iterator& 26201: operator++() 26201: { 26201: this->_M_incr(); 26201: return *this; 26201: } 26201: 26201: _Local_const_iterator 26201: operator++(int) 26201: { 26201: _Local_const_iterator __tmp(*this); 26201: this->_M_incr(); 26201: return __tmp; 26201: } 26201: }; 26201: # 1722 "/usr/x86_64-linux-gnu/include/c++/10/bits/hashtable_policy.h" 3 26201: template 26201: struct _Hashtable_base 26201: : public _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash, 26201: _Traits::__hash_cached::value>, 26201: private _Hashtable_ebo_helper<0, _Equal> 26201: { 26201: public: 26201: typedef _Key key_type; 26201: typedef _Value value_type; 26201: typedef _Equal key_equal; 26201: typedef std::size_t size_type; 26201: typedef std::ptrdiff_t difference_type; 26201: 26201: using __traits_type = _Traits; 26201: using __hash_cached = typename __traits_type::__hash_cached; 26201: using __constant_iterators = typename __traits_type::__constant_iterators; 26201: using __unique_keys = typename __traits_type::__unique_keys; 26201: 26201: using __hash_code_base = _Hash_code_base<_Key, _Value, _ExtractKey, 26201: _H1, _H2, _Hash, 26201: __hash_cached::value>; 26201: 26201: using __hash_code = typename __hash_code_base::__hash_code; 26201: using __node_type = typename __hash_code_base::__node_type; 26201: 26201: using iterator = __detail::_Node_iterator; 26201: 26201: using const_iterator = __detail::_Node_const_iterator; 26201: 26201: using local_iterator = __detail::_Local_iterator; 26201: 26201: using const_local_iterator = __detail::_Local_const_iterator; 26201: 26201: using __ireturn_type = typename std::conditional<__unique_keys::value, 26201: std::pair, 26201: iterator>::type; 26201: private: 26201: using _EqualEBO = _Hashtable_ebo_helper<0, _Equal>; 26201: 26201: template 26201: struct _Equal_hash_code 26201: { 26201: static bool 26201: _S_equals(__hash_code, const _NodeT&) 26201: { return true; } 26201: }; 26201: 26201: template 26201: struct _Equal_hash_code<_Hash_node<_Ptr2, true>> 26201: { 26201: static bool 26201: _S_equals(__hash_code __c, const _Hash_node<_Ptr2, true>& __n) 26201: { return __c == __n._M_hash_code; } 26201: }; 26201: 26201: protected: 26201: _Hashtable_base() = default; 26201: _Hashtable_base(const _ExtractKey& __ex, const _H1& __h1, const _H2& __h2, 26201: const _Hash& __hash, const _Equal& __eq) 26201: : __hash_code_base(__ex, __h1, __h2, __hash), _EqualEBO(__eq) 26201: { } 26201: 26201: bool 26201: _M_equals(const _Key& __k, __hash_code __c, __node_type* __n) const 26201: { 26201: static_assert(__is_invocable{}, 26201: "key equality predicate must be invocable with two arguments of " 26201: "key type"); 26201: return _Equal_hash_code<__node_type>::_S_equals(__c, *__n) 26201: && _M_eq()(__k, this->_M_extract()(__n->_M_v())); 26201: } 26201: 26201: void 26201: _M_swap(_Hashtable_base& __x) 26201: { 26201: __hash_code_base::_M_swap(__x); 26201: std::swap(_EqualEBO::_M_get(), __x._EqualEBO::_M_get()); 26201: } 26201: 26201: const _Equal& 26201: _M_eq() const { return _EqualEBO::_M_cget(); } 26201: }; 26201: # 1826 "/usr/x86_64-linux-gnu/include/c++/10/bits/hashtable_policy.h" 3 26201: template 26201: struct _Equality; 26201: 26201: 26201: template 26201: struct _Equality<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits, true> 26201: { 26201: using __hashtable = _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>; 26201: 26201: bool 26201: _M_equal(const __hashtable&) const; 26201: }; 26201: 26201: template 26201: bool 26201: _Equality<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits, true>:: 26201: _M_equal(const __hashtable& __other) const 26201: { 26201: using __node_base = typename __hashtable::__node_base; 26201: using __node_type = typename __hashtable::__node_type; 26201: const __hashtable* __this = static_cast(this); 26201: if (__this->size() != __other.size()) 26201: return false; 26201: 26201: for (auto __itx = __this->begin(); __itx != __this->end(); ++__itx) 26201: { 26201: std::size_t __ybkt = __other._M_bucket_index(__itx._M_cur); 26201: __node_base* __prev_n = __other._M_buckets[__ybkt]; 26201: if (!__prev_n) 26201: return false; 26201: 26201: for (__node_type* __n = static_cast<__node_type*>(__prev_n->_M_nxt);; 26201: __n = __n->_M_next()) 26201: { 26201: if (__n->_M_v() == *__itx) 26201: break; 26201: 26201: if (!__n->_M_nxt 26201: || __other._M_bucket_index(__n->_M_next()) != __ybkt) 26201: return false; 26201: } 26201: } 26201: 26201: return true; 26201: } 26201: 26201: 26201: template 26201: struct _Equality<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits, false> 26201: { 26201: using __hashtable = _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>; 26201: 26201: bool 26201: _M_equal(const __hashtable&) const; 26201: }; 26201: 26201: template 26201: bool 26201: _Equality<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits, false>:: 26201: _M_equal(const __hashtable& __other) const 26201: { 26201: using __node_base = typename __hashtable::__node_base; 26201: using __node_type = typename __hashtable::__node_type; 26201: const __hashtable* __this = static_cast(this); 26201: if (__this->size() != __other.size()) 26201: return false; 26201: 26201: for (auto __itx = __this->begin(); __itx != __this->end();) 26201: { 26201: std::size_t __x_count = 1; 26201: auto __itx_end = __itx; 26201: for (++__itx_end; __itx_end != __this->end() 26201: && __this->key_eq()(_ExtractKey()(*__itx), 26201: _ExtractKey()(*__itx_end)); 26201: ++__itx_end) 26201: ++__x_count; 26201: 26201: std::size_t __ybkt = __other._M_bucket_index(__itx._M_cur); 26201: __node_base* __y_prev_n = __other._M_buckets[__ybkt]; 26201: if (!__y_prev_n) 26201: return false; 26201: 26201: __node_type* __y_n = static_cast<__node_type*>(__y_prev_n->_M_nxt); 26201: for (;; __y_n = __y_n->_M_next()) 26201: { 26201: if (__this->key_eq()(_ExtractKey()(__y_n->_M_v()), 26201: _ExtractKey()(*__itx))) 26201: break; 26201: 26201: if (!__y_n->_M_nxt 26201: || __other._M_bucket_index(__y_n->_M_next()) != __ybkt) 26201: return false; 26201: } 26201: 26201: typename __hashtable::const_iterator __ity(__y_n); 26201: for (auto __ity_end = __ity; __ity_end != __other.end(); ++__ity_end) 26201: if (--__x_count == 0) 26201: break; 26201: 26201: if (__x_count != 0) 26201: return false; 26201: 26201: if (!std::is_permutation(__itx, __itx_end, __ity)) 26201: return false; 26201: 26201: __itx = __itx_end; 26201: } 26201: return true; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct _Hashtable_alloc : private _Hashtable_ebo_helper<0, _NodeAlloc> 26201: { 26201: private: 26201: using __ebo_node_alloc = _Hashtable_ebo_helper<0, _NodeAlloc>; 26201: public: 26201: using __node_type = typename _NodeAlloc::value_type; 26201: using __node_alloc_type = _NodeAlloc; 26201: 26201: using __node_alloc_traits = __gnu_cxx::__alloc_traits<__node_alloc_type>; 26201: 26201: using __value_alloc_traits = typename __node_alloc_traits::template 26201: rebind_traits; 26201: 26201: using __node_base = __detail::_Hash_node_base; 26201: using __bucket_type = __node_base*; 26201: using __bucket_alloc_type = 26201: __alloc_rebind<__node_alloc_type, __bucket_type>; 26201: using __bucket_alloc_traits = std::allocator_traits<__bucket_alloc_type>; 26201: 26201: _Hashtable_alloc() = default; 26201: _Hashtable_alloc(const _Hashtable_alloc&) = default; 26201: _Hashtable_alloc(_Hashtable_alloc&&) = default; 26201: 26201: template 26201: _Hashtable_alloc(_Alloc&& __a) 26201: : __ebo_node_alloc(std::forward<_Alloc>(__a)) 26201: { } 26201: 26201: __node_alloc_type& 26201: _M_node_allocator() 26201: { return __ebo_node_alloc::_M_get(); } 26201: 26201: const __node_alloc_type& 26201: _M_node_allocator() const 26201: { return __ebo_node_alloc::_M_cget(); } 26201: 26201: 26201: template 26201: __node_type* 26201: _M_allocate_node(_Args&&... __args); 26201: 26201: 26201: void 26201: _M_deallocate_node(__node_type* __n); 26201: 26201: 26201: void 26201: _M_deallocate_node_ptr(__node_type* __n); 26201: 26201: 26201: 26201: void 26201: _M_deallocate_nodes(__node_type* __n); 26201: 26201: __bucket_type* 26201: _M_allocate_buckets(std::size_t __bkt_count); 26201: 26201: void 26201: _M_deallocate_buckets(__bucket_type*, std::size_t __bkt_count); 26201: }; 26201: 26201: 26201: 26201: template 26201: template 26201: auto 26201: _Hashtable_alloc<_NodeAlloc>::_M_allocate_node(_Args&&... __args) 26201: -> __node_type* 26201: { 26201: auto __nptr = __node_alloc_traits::allocate(_M_node_allocator(), 1); 26201: __node_type* __n = std::__to_address(__nptr); 26201: try 26201: { 26201: ::new ((void*)__n) __node_type; 26201: __node_alloc_traits::construct(_M_node_allocator(), 26201: __n->_M_valptr(), 26201: std::forward<_Args>(__args)...); 26201: return __n; 26201: } 26201: catch(...) 26201: { 26201: __node_alloc_traits::deallocate(_M_node_allocator(), __nptr, 1); 26201: throw; 26201: } 26201: } 26201: 26201: template 26201: void 26201: _Hashtable_alloc<_NodeAlloc>::_M_deallocate_node(__node_type* __n) 26201: { 26201: __node_alloc_traits::destroy(_M_node_allocator(), __n->_M_valptr()); 26201: _M_deallocate_node_ptr(__n); 26201: } 26201: 26201: template 26201: void 26201: _Hashtable_alloc<_NodeAlloc>::_M_deallocate_node_ptr(__node_type* __n) 26201: { 26201: typedef typename __node_alloc_traits::pointer _Ptr; 26201: auto __ptr = std::pointer_traits<_Ptr>::pointer_to(*__n); 26201: __n->~__node_type(); 26201: __node_alloc_traits::deallocate(_M_node_allocator(), __ptr, 1); 26201: } 26201: 26201: template 26201: void 26201: _Hashtable_alloc<_NodeAlloc>::_M_deallocate_nodes(__node_type* __n) 26201: { 26201: while (__n) 26201: { 26201: __node_type* __tmp = __n; 26201: __n = __n->_M_next(); 26201: _M_deallocate_node(__tmp); 26201: } 26201: } 26201: 26201: template 26201: typename _Hashtable_alloc<_NodeAlloc>::__bucket_type* 26201: _Hashtable_alloc<_NodeAlloc>::_M_allocate_buckets(std::size_t __bkt_count) 26201: { 26201: __bucket_alloc_type __alloc(_M_node_allocator()); 26201: 26201: auto __ptr = __bucket_alloc_traits::allocate(__alloc, __bkt_count); 26201: __bucket_type* __p = std::__to_address(__ptr); 26201: __builtin_memset(__p, 0, __bkt_count * sizeof(__bucket_type)); 26201: return __p; 26201: } 26201: 26201: template 26201: void 26201: _Hashtable_alloc<_NodeAlloc>::_M_deallocate_buckets(__bucket_type* __bkts, 26201: std::size_t __bkt_count) 26201: { 26201: typedef typename __bucket_alloc_traits::pointer _Ptr; 26201: auto __ptr = std::pointer_traits<_Ptr>::pointer_to(*__bkts); 26201: __bucket_alloc_type __alloc(_M_node_allocator()); 26201: __bucket_alloc_traits::deallocate(__alloc, __ptr, __bkt_count); 26201: } 26201: 26201: 26201: } 26201: 26201: } 26201: # 36 "/usr/x86_64-linux-gnu/include/c++/10/bits/hashtable.h" 2 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/node_handle.h" 1 3 26201: # 32 "/usr/x86_64-linux-gnu/include/c++/10/bits/node_handle.h" 3 26201: #define _NODE_HANDLE 1 26201: 26201: 26201: # 35 "/usr/x86_64-linux-gnu/include/c++/10/bits/node_handle.h" 3 26201: 26201: 26201: #define __cpp_lib_node_extract 201606 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/optional" 1 3 26201: # 30 "/usr/x86_64-linux-gnu/include/c++/10/optional" 3 26201: #define _GLIBCXX_OPTIONAL 1 26201: 26201: 26201: # 33 "/usr/x86_64-linux-gnu/include/c++/10/optional" 3 26201: # 43 "/usr/x86_64-linux-gnu/include/c++/10/optional" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/enable_special_members.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/enable_special_members.h" 3 26201: #define _ENABLE_SPECIAL_MEMBERS_H 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/enable_special_members.h" 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: struct _Enable_default_constructor_tag 26201: { 26201: explicit constexpr _Enable_default_constructor_tag() = default; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct _Enable_default_constructor 26201: { 26201: constexpr _Enable_default_constructor() noexcept = default; 26201: constexpr _Enable_default_constructor(_Enable_default_constructor const&) 26201: noexcept = default; 26201: constexpr _Enable_default_constructor(_Enable_default_constructor&&) 26201: noexcept = default; 26201: _Enable_default_constructor& 26201: operator=(_Enable_default_constructor const&) noexcept = default; 26201: _Enable_default_constructor& 26201: operator=(_Enable_default_constructor&&) noexcept = default; 26201: 26201: 26201: constexpr explicit 26201: _Enable_default_constructor(_Enable_default_constructor_tag) { } 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct _Enable_destructor { }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct _Enable_copy_move { }; 26201: # 93 "/usr/x86_64-linux-gnu/include/c++/10/bits/enable_special_members.h" 3 26201: template 26201: struct _Enable_special_members 26201: : private _Enable_default_constructor<_Default, _Tag>, 26201: private _Enable_destructor<_Destructor, _Tag>, 26201: private _Enable_copy_move<_Copy, _CopyAssignment, 26201: _Move, _MoveAssignment, 26201: _Tag> 26201: { }; 26201: 26201: 26201: 26201: template 26201: struct _Enable_default_constructor 26201: { 26201: constexpr _Enable_default_constructor() noexcept = delete; 26201: constexpr _Enable_default_constructor(_Enable_default_constructor const&) 26201: noexcept = default; 26201: constexpr _Enable_default_constructor(_Enable_default_constructor&&) 26201: noexcept = default; 26201: _Enable_default_constructor& 26201: operator=(_Enable_default_constructor const&) noexcept = default; 26201: _Enable_default_constructor& 26201: operator=(_Enable_default_constructor&&) noexcept = default; 26201: 26201: 26201: constexpr explicit 26201: _Enable_default_constructor(_Enable_default_constructor_tag) { } 26201: }; 26201: 26201: template 26201: struct _Enable_destructor 26201: { ~_Enable_destructor() noexcept = delete; }; 26201: 26201: template 26201: struct _Enable_copy_move 26201: { 26201: constexpr _Enable_copy_move() noexcept = default; 26201: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 26201: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = default; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move const&) noexcept = default; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move&&) noexcept = default; 26201: }; 26201: 26201: template 26201: struct _Enable_copy_move 26201: { 26201: constexpr _Enable_copy_move() noexcept = default; 26201: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = default; 26201: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = default; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move const&) noexcept = delete; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move&&) noexcept = default; 26201: }; 26201: 26201: template 26201: struct _Enable_copy_move 26201: { 26201: constexpr _Enable_copy_move() noexcept = default; 26201: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 26201: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = default; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move const&) noexcept = delete; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move&&) noexcept = default; 26201: }; 26201: 26201: template 26201: struct _Enable_copy_move 26201: { 26201: constexpr _Enable_copy_move() noexcept = default; 26201: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = default; 26201: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move const&) noexcept = default; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move&&) noexcept = default; 26201: }; 26201: 26201: template 26201: struct _Enable_copy_move 26201: { 26201: constexpr _Enable_copy_move() noexcept = default; 26201: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 26201: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move const&) noexcept = default; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move&&) noexcept = default; 26201: }; 26201: 26201: template 26201: struct _Enable_copy_move 26201: { 26201: constexpr _Enable_copy_move() noexcept = default; 26201: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = default; 26201: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move const&) noexcept = delete; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move&&) noexcept = default; 26201: }; 26201: 26201: template 26201: struct _Enable_copy_move 26201: { 26201: constexpr _Enable_copy_move() noexcept = default; 26201: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 26201: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move const&) noexcept = delete; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move&&) noexcept = default; 26201: }; 26201: 26201: template 26201: struct _Enable_copy_move 26201: { 26201: constexpr _Enable_copy_move() noexcept = default; 26201: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = default; 26201: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = default; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move const&) noexcept = default; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move&&) noexcept = delete; 26201: }; 26201: 26201: template 26201: struct _Enable_copy_move 26201: { 26201: constexpr _Enable_copy_move() noexcept = default; 26201: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 26201: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = default; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move const&) noexcept = default; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move&&) noexcept = delete; 26201: }; 26201: 26201: template 26201: struct _Enable_copy_move 26201: { 26201: constexpr _Enable_copy_move() noexcept = default; 26201: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = default; 26201: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = default; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move const&) noexcept = delete; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move&&) noexcept = delete; 26201: }; 26201: 26201: template 26201: struct _Enable_copy_move 26201: { 26201: constexpr _Enable_copy_move() noexcept = default; 26201: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 26201: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = default; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move const&) noexcept = delete; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move&&) noexcept = delete; 26201: }; 26201: 26201: template 26201: struct _Enable_copy_move 26201: { 26201: constexpr _Enable_copy_move() noexcept = default; 26201: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = default; 26201: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move const&) noexcept = default; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move&&) noexcept = delete; 26201: }; 26201: 26201: template 26201: struct _Enable_copy_move 26201: { 26201: constexpr _Enable_copy_move() noexcept = default; 26201: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 26201: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move const&) noexcept = default; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move&&) noexcept = delete; 26201: }; 26201: 26201: template 26201: struct _Enable_copy_move 26201: { 26201: constexpr _Enable_copy_move() noexcept = default; 26201: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = default; 26201: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move const&) noexcept = delete; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move&&) noexcept = delete; 26201: }; 26201: 26201: template 26201: struct _Enable_copy_move 26201: { 26201: constexpr _Enable_copy_move() noexcept = default; 26201: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 26201: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move const&) noexcept = delete; 26201: _Enable_copy_move& 26201: operator=(_Enable_copy_move&&) noexcept = delete; 26201: }; 26201: 26201: 26201: } 26201: # 44 "/usr/x86_64-linux-gnu/include/c++/10/optional" 2 3 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __cpp_lib_optional 201606L 26201: 26201: template 26201: class optional; 26201: 26201: 26201: struct nullopt_t 26201: { 26201: 26201: 26201: 26201: 26201: 26201: enum class _Construct { _Token }; 26201: 26201: 26201: explicit constexpr nullopt_t(_Construct) { } 26201: }; 26201: 26201: 26201: inline constexpr nullopt_t nullopt { nullopt_t::_Construct::_Token }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: class bad_optional_access : public exception 26201: { 26201: public: 26201: bad_optional_access() = default; 26201: virtual ~bad_optional_access() = default; 26201: 26201: const char* what() const noexcept override 26201: { return "bad optional access"; } 26201: }; 26201: 26201: void 26201: __throw_bad_optional_access() 26201: __attribute__((__noreturn__)); 26201: 26201: 26201: inline void 26201: __throw_bad_optional_access() 26201: { (throw (bad_optional_access())); } 26201: 26201: 26201: 26201: template 26201: struct _Optional_payload_base 26201: { 26201: using _Stored_type = remove_const_t<_Tp>; 26201: 26201: _Optional_payload_base() = default; 26201: ~_Optional_payload_base() = default; 26201: 26201: template 26201: constexpr 26201: _Optional_payload_base(in_place_t __tag, _Args&&... __args) 26201: : _M_payload(__tag, std::forward<_Args>(__args)...), 26201: _M_engaged(true) 26201: { } 26201: 26201: template 26201: constexpr 26201: _Optional_payload_base(std::initializer_list<_Up> __il, 26201: _Args&&... __args) 26201: : _M_payload(__il, std::forward<_Args>(__args)...), 26201: _M_engaged(true) 26201: { } 26201: 26201: 26201: 26201: constexpr 26201: _Optional_payload_base(bool __engaged, 26201: const _Optional_payload_base& __other) 26201: { 26201: if (__other._M_engaged) 26201: this->_M_construct(__other._M_get()); 26201: } 26201: 26201: 26201: 26201: constexpr 26201: _Optional_payload_base(bool __engaged, 26201: _Optional_payload_base&& __other) 26201: { 26201: if (__other._M_engaged) 26201: this->_M_construct(std::move(__other._M_get())); 26201: } 26201: 26201: 26201: 26201: _Optional_payload_base(const _Optional_payload_base&) = default; 26201: 26201: 26201: 26201: _Optional_payload_base(_Optional_payload_base&&) = default; 26201: 26201: _Optional_payload_base& 26201: operator=(const _Optional_payload_base&) = default; 26201: 26201: _Optional_payload_base& 26201: operator=(_Optional_payload_base&&) = default; 26201: 26201: 26201: constexpr void 26201: _M_copy_assign(const _Optional_payload_base& __other) 26201: { 26201: if (this->_M_engaged && __other._M_engaged) 26201: this->_M_get() = __other._M_get(); 26201: else 26201: { 26201: if (__other._M_engaged) 26201: this->_M_construct(__other._M_get()); 26201: else 26201: this->_M_reset(); 26201: } 26201: } 26201: 26201: 26201: constexpr void 26201: _M_move_assign(_Optional_payload_base&& __other) 26201: noexcept(__and_v, 26201: is_nothrow_move_assignable<_Tp>>) 26201: { 26201: if (this->_M_engaged && __other._M_engaged) 26201: this->_M_get() = std::move(__other._M_get()); 26201: else 26201: { 26201: if (__other._M_engaged) 26201: this->_M_construct(std::move(__other._M_get())); 26201: else 26201: this->_M_reset(); 26201: } 26201: } 26201: 26201: struct _Empty_byte { }; 26201: 26201: template> 26201: union _Storage 26201: { 26201: constexpr _Storage() noexcept : _M_empty() { } 26201: 26201: template 26201: constexpr 26201: _Storage(in_place_t, _Args&&... __args) 26201: : _M_value(std::forward<_Args>(__args)...) 26201: { } 26201: 26201: template 26201: constexpr 26201: _Storage(std::initializer_list<_Vp> __il, _Args&&... __args) 26201: : _M_value(__il, std::forward<_Args>(__args)...) 26201: { } 26201: 26201: _Empty_byte _M_empty; 26201: _Up _M_value; 26201: }; 26201: 26201: template 26201: union _Storage<_Up, false> 26201: { 26201: constexpr _Storage() noexcept : _M_empty() { } 26201: 26201: template 26201: constexpr 26201: _Storage(in_place_t, _Args&&... __args) 26201: : _M_value(std::forward<_Args>(__args)...) 26201: { } 26201: 26201: template 26201: constexpr 26201: _Storage(std::initializer_list<_Vp> __il, _Args&&... __args) 26201: : _M_value(__il, std::forward<_Args>(__args)...) 26201: { } 26201: 26201: 26201: ~_Storage() { } 26201: 26201: _Empty_byte _M_empty; 26201: _Up _M_value; 26201: }; 26201: 26201: _Storage<_Stored_type> _M_payload; 26201: 26201: bool _M_engaged = false; 26201: 26201: template 26201: void 26201: _M_construct(_Args&&... __args) 26201: noexcept(is_nothrow_constructible_v<_Stored_type, _Args...>) 26201: { 26201: ::new ((void *) std::__addressof(this->_M_payload)) 26201: _Stored_type(std::forward<_Args>(__args)...); 26201: this->_M_engaged = true; 26201: } 26201: 26201: constexpr void 26201: _M_destroy() noexcept 26201: { 26201: _M_engaged = false; 26201: _M_payload._M_value.~_Stored_type(); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: constexpr _Tp& 26201: _M_get() noexcept 26201: { return this->_M_payload._M_value; } 26201: 26201: constexpr const _Tp& 26201: _M_get() const noexcept 26201: { return this->_M_payload._M_value; } 26201: 26201: 26201: constexpr void 26201: _M_reset() noexcept 26201: { 26201: if (this->_M_engaged) 26201: _M_destroy(); 26201: } 26201: }; 26201: 26201: 26201: template , 26201: bool = 26201: is_trivially_copy_assignable_v<_Tp> 26201: && is_trivially_copy_constructible_v<_Tp>, 26201: bool = 26201: is_trivially_move_assignable_v<_Tp> 26201: && is_trivially_move_constructible_v<_Tp>> 26201: struct _Optional_payload; 26201: 26201: 26201: template 26201: struct _Optional_payload<_Tp, true, true, true> 26201: : _Optional_payload_base<_Tp> 26201: { 26201: using _Optional_payload_base<_Tp>::_Optional_payload_base; 26201: 26201: _Optional_payload() = default; 26201: }; 26201: 26201: 26201: template 26201: struct _Optional_payload<_Tp, true, false, true> 26201: : _Optional_payload_base<_Tp> 26201: { 26201: using _Optional_payload_base<_Tp>::_Optional_payload_base; 26201: 26201: _Optional_payload() = default; 26201: ~_Optional_payload() = default; 26201: _Optional_payload(const _Optional_payload&) = default; 26201: _Optional_payload(_Optional_payload&&) = default; 26201: _Optional_payload& operator=(_Optional_payload&&) = default; 26201: 26201: 26201: constexpr 26201: _Optional_payload& 26201: operator=(const _Optional_payload& __other) 26201: { 26201: this->_M_copy_assign(__other); 26201: return *this; 26201: } 26201: }; 26201: 26201: 26201: template 26201: struct _Optional_payload<_Tp, true, true, false> 26201: : _Optional_payload_base<_Tp> 26201: { 26201: using _Optional_payload_base<_Tp>::_Optional_payload_base; 26201: 26201: _Optional_payload() = default; 26201: ~_Optional_payload() = default; 26201: _Optional_payload(const _Optional_payload&) = default; 26201: _Optional_payload(_Optional_payload&&) = default; 26201: _Optional_payload& operator=(const _Optional_payload&) = default; 26201: 26201: 26201: constexpr 26201: _Optional_payload& 26201: operator=(_Optional_payload&& __other) 26201: noexcept(__and_v, 26201: is_nothrow_move_assignable<_Tp>>) 26201: { 26201: this->_M_move_assign(std::move(__other)); 26201: return *this; 26201: } 26201: }; 26201: 26201: 26201: template 26201: struct _Optional_payload<_Tp, true, false, false> 26201: : _Optional_payload_base<_Tp> 26201: { 26201: using _Optional_payload_base<_Tp>::_Optional_payload_base; 26201: 26201: _Optional_payload() = default; 26201: ~_Optional_payload() = default; 26201: _Optional_payload(const _Optional_payload&) = default; 26201: _Optional_payload(_Optional_payload&&) = default; 26201: 26201: 26201: constexpr 26201: _Optional_payload& 26201: operator=(const _Optional_payload& __other) 26201: { 26201: this->_M_copy_assign(__other); 26201: return *this; 26201: } 26201: 26201: 26201: constexpr 26201: _Optional_payload& 26201: operator=(_Optional_payload&& __other) 26201: noexcept(__and_v, 26201: is_nothrow_move_assignable<_Tp>>) 26201: { 26201: this->_M_move_assign(std::move(__other)); 26201: return *this; 26201: } 26201: }; 26201: 26201: 26201: template 26201: struct _Optional_payload<_Tp, false, _Copy, _Move> 26201: : _Optional_payload<_Tp, true, false, false> 26201: { 26201: 26201: using _Optional_payload<_Tp, true, false, false>::_Optional_payload; 26201: _Optional_payload() = default; 26201: _Optional_payload(const _Optional_payload&) = default; 26201: _Optional_payload(_Optional_payload&&) = default; 26201: _Optional_payload& operator=(const _Optional_payload&) = default; 26201: _Optional_payload& operator=(_Optional_payload&&) = default; 26201: 26201: 26201: ~_Optional_payload() { this->_M_reset(); } 26201: }; 26201: 26201: 26201: 26201: template 26201: class _Optional_base_impl 26201: { 26201: protected: 26201: using _Stored_type = remove_const_t<_Tp>; 26201: 26201: 26201: 26201: template 26201: void 26201: _M_construct(_Args&&... __args) 26201: noexcept(is_nothrow_constructible_v<_Stored_type, _Args...>) 26201: { 26201: ::new 26201: (std::__addressof(static_cast<_Dp*>(this)->_M_payload._M_payload)) 26201: _Stored_type(std::forward<_Args>(__args)...); 26201: static_cast<_Dp*>(this)->_M_payload._M_engaged = true; 26201: } 26201: 26201: void 26201: _M_destruct() noexcept 26201: { static_cast<_Dp*>(this)->_M_payload._M_destroy(); } 26201: 26201: 26201: constexpr void 26201: _M_reset() noexcept 26201: { static_cast<_Dp*>(this)->_M_payload._M_reset(); } 26201: 26201: constexpr bool _M_is_engaged() const noexcept 26201: { return static_cast(this)->_M_payload._M_engaged; } 26201: 26201: 26201: constexpr _Tp& 26201: _M_get() noexcept 26201: { 26201: ; 26201: return static_cast<_Dp*>(this)->_M_payload._M_get(); 26201: } 26201: 26201: constexpr const _Tp& 26201: _M_get() const noexcept 26201: { 26201: ; 26201: return static_cast(this)->_M_payload._M_get(); 26201: } 26201: }; 26201: # 470 "/usr/x86_64-linux-gnu/include/c++/10/optional" 3 26201: template, 26201: bool = is_trivially_move_constructible_v<_Tp>> 26201: struct _Optional_base 26201: : _Optional_base_impl<_Tp, _Optional_base<_Tp>> 26201: { 26201: 26201: constexpr _Optional_base() = default; 26201: 26201: 26201: template, bool> = false> 26201: constexpr explicit _Optional_base(in_place_t, _Args&&... __args) 26201: : _M_payload(in_place, 26201: std::forward<_Args>(__args)...) { } 26201: 26201: template&, 26201: _Args&&...>, bool> = false> 26201: constexpr explicit _Optional_base(in_place_t, 26201: initializer_list<_Up> __il, 26201: _Args&&... __args) 26201: : _M_payload(in_place, 26201: __il, std::forward<_Args>(__args)...) 26201: { } 26201: 26201: 26201: constexpr _Optional_base(const _Optional_base& __other) 26201: : _M_payload(__other._M_payload._M_engaged, 26201: __other._M_payload) 26201: { } 26201: 26201: constexpr _Optional_base(_Optional_base&& __other) 26201: noexcept(is_nothrow_move_constructible_v<_Tp>) 26201: : _M_payload(__other._M_payload._M_engaged, 26201: std::move(__other._M_payload)) 26201: { } 26201: 26201: 26201: _Optional_base& operator=(const _Optional_base&) = default; 26201: _Optional_base& operator=(_Optional_base&&) = default; 26201: 26201: _Optional_payload<_Tp> _M_payload; 26201: }; 26201: 26201: template 26201: struct _Optional_base<_Tp, false, true> 26201: : _Optional_base_impl<_Tp, _Optional_base<_Tp>> 26201: { 26201: 26201: constexpr _Optional_base() = default; 26201: 26201: 26201: template, bool> = false> 26201: constexpr explicit _Optional_base(in_place_t, _Args&&... __args) 26201: : _M_payload(in_place, 26201: std::forward<_Args>(__args)...) { } 26201: 26201: template&, 26201: _Args&&...>, bool> = false> 26201: constexpr explicit _Optional_base(in_place_t, 26201: initializer_list<_Up> __il, 26201: _Args&&... __args) 26201: : _M_payload(in_place, 26201: __il, std::forward<_Args>(__args)...) 26201: { } 26201: 26201: 26201: constexpr _Optional_base(const _Optional_base& __other) 26201: : _M_payload(__other._M_payload._M_engaged, 26201: __other._M_payload) 26201: { } 26201: 26201: constexpr _Optional_base(_Optional_base&& __other) = default; 26201: 26201: 26201: _Optional_base& operator=(const _Optional_base&) = default; 26201: _Optional_base& operator=(_Optional_base&&) = default; 26201: 26201: _Optional_payload<_Tp> _M_payload; 26201: }; 26201: 26201: template 26201: struct _Optional_base<_Tp, true, false> 26201: : _Optional_base_impl<_Tp, _Optional_base<_Tp>> 26201: { 26201: 26201: constexpr _Optional_base() = default; 26201: 26201: 26201: template, bool> = false> 26201: constexpr explicit _Optional_base(in_place_t, _Args&&... __args) 26201: : _M_payload(in_place, 26201: std::forward<_Args>(__args)...) { } 26201: 26201: template&, 26201: _Args&&...>, bool> = false> 26201: constexpr explicit _Optional_base(in_place_t, 26201: initializer_list<_Up> __il, 26201: _Args&&... __args) 26201: : _M_payload(in_place, 26201: __il, std::forward<_Args>(__args)...) 26201: { } 26201: 26201: 26201: constexpr _Optional_base(const _Optional_base& __other) = default; 26201: 26201: constexpr _Optional_base(_Optional_base&& __other) 26201: noexcept(is_nothrow_move_constructible_v<_Tp>) 26201: : _M_payload(__other._M_payload._M_engaged, 26201: std::move(__other._M_payload)) 26201: { } 26201: 26201: 26201: _Optional_base& operator=(const _Optional_base&) = default; 26201: _Optional_base& operator=(_Optional_base&&) = default; 26201: 26201: _Optional_payload<_Tp> _M_payload; 26201: }; 26201: 26201: template 26201: struct _Optional_base<_Tp, true, true> 26201: : _Optional_base_impl<_Tp, _Optional_base<_Tp>> 26201: { 26201: 26201: constexpr _Optional_base() = default; 26201: 26201: 26201: template, bool> = false> 26201: constexpr explicit _Optional_base(in_place_t, _Args&&... __args) 26201: : _M_payload(in_place, 26201: std::forward<_Args>(__args)...) { } 26201: 26201: template&, 26201: _Args&&...>, bool> = false> 26201: constexpr explicit _Optional_base(in_place_t, 26201: initializer_list<_Up> __il, 26201: _Args&&... __args) 26201: : _M_payload(in_place, 26201: __il, std::forward<_Args>(__args)...) 26201: { } 26201: 26201: 26201: constexpr _Optional_base(const _Optional_base& __other) = default; 26201: constexpr _Optional_base(_Optional_base&& __other) = default; 26201: 26201: 26201: _Optional_base& operator=(const _Optional_base&) = default; 26201: _Optional_base& operator=(_Optional_base&&) = default; 26201: 26201: _Optional_payload<_Tp> _M_payload; 26201: }; 26201: 26201: template 26201: class optional; 26201: 26201: template 26201: using __converts_from_optional = 26201: __or_&>, 26201: is_constructible<_Tp, optional<_Up>&>, 26201: is_constructible<_Tp, const optional<_Up>&&>, 26201: is_constructible<_Tp, optional<_Up>&&>, 26201: is_convertible&, _Tp>, 26201: is_convertible&, _Tp>, 26201: is_convertible&&, _Tp>, 26201: is_convertible&&, _Tp>>; 26201: 26201: template 26201: using __assigns_from_optional = 26201: __or_&>, 26201: is_assignable<_Tp&, optional<_Up>&>, 26201: is_assignable<_Tp&, const optional<_Up>&&>, 26201: is_assignable<_Tp&, optional<_Up>&&>>; 26201: 26201: 26201: 26201: 26201: template 26201: class optional 26201: : private _Optional_base<_Tp>, 26201: private _Enable_copy_move< 26201: 26201: is_copy_constructible_v<_Tp>, 26201: 26201: __and_v, is_copy_assignable<_Tp>>, 26201: 26201: is_move_constructible_v<_Tp>, 26201: 26201: __and_v, is_move_assignable<_Tp>>, 26201: 26201: optional<_Tp>> 26201: { 26201: static_assert(!is_same_v, nullopt_t>); 26201: static_assert(!is_same_v, in_place_t>); 26201: static_assert(!is_reference_v<_Tp>); 26201: 26201: private: 26201: using _Base = _Optional_base<_Tp>; 26201: 26201: 26201: template 26201: using __not_self = __not_>>; 26201: template 26201: using __not_tag = __not_>>; 26201: template 26201: using _Requires = enable_if_t<__and_v<_Cond...>, bool>; 26201: 26201: public: 26201: using value_type = _Tp; 26201: 26201: constexpr optional() = default; 26201: 26201: constexpr optional(nullopt_t) noexcept { } 26201: 26201: 26201: template, __not_tag<_Up>, 26201: is_constructible<_Tp, _Up&&>, 26201: is_convertible<_Up&&, _Tp>> = true> 26201: constexpr 26201: optional(_Up&& __t) 26201: : _Base(std::in_place, std::forward<_Up>(__t)) { } 26201: 26201: template, __not_tag<_Up>, 26201: is_constructible<_Tp, _Up&&>, 26201: __not_>> = false> 26201: explicit constexpr 26201: optional(_Up&& __t) 26201: : _Base(std::in_place, std::forward<_Up>(__t)) { } 26201: 26201: template>, 26201: is_constructible<_Tp, const _Up&>, 26201: is_convertible, 26201: __not_<__converts_from_optional<_Tp, _Up>>> = true> 26201: constexpr 26201: optional(const optional<_Up>& __t) 26201: { 26201: if (__t) 26201: emplace(*__t); 26201: } 26201: 26201: template>, 26201: is_constructible<_Tp, const _Up&>, 26201: __not_>, 26201: __not_<__converts_from_optional<_Tp, _Up>>> = false> 26201: explicit constexpr 26201: optional(const optional<_Up>& __t) 26201: { 26201: if (__t) 26201: emplace(*__t); 26201: } 26201: 26201: template >, 26201: is_constructible<_Tp, _Up&&>, 26201: is_convertible<_Up&&, _Tp>, 26201: __not_<__converts_from_optional<_Tp, _Up>>> = true> 26201: constexpr 26201: optional(optional<_Up>&& __t) 26201: { 26201: if (__t) 26201: emplace(std::move(*__t)); 26201: } 26201: 26201: template >, 26201: is_constructible<_Tp, _Up&&>, 26201: __not_>, 26201: __not_<__converts_from_optional<_Tp, _Up>>> = false> 26201: explicit constexpr 26201: optional(optional<_Up>&& __t) 26201: { 26201: if (__t) 26201: emplace(std::move(*__t)); 26201: } 26201: 26201: template> = false> 26201: explicit constexpr 26201: optional(in_place_t, _Args&&... __args) 26201: : _Base(std::in_place, std::forward<_Args>(__args)...) { } 26201: 26201: template&, 26201: _Args&&...>> = false> 26201: explicit constexpr 26201: optional(in_place_t, initializer_list<_Up> __il, _Args&&... __args) 26201: : _Base(std::in_place, __il, std::forward<_Args>(__args)...) { } 26201: 26201: 26201: optional& 26201: operator=(nullopt_t) noexcept 26201: { 26201: this->_M_reset(); 26201: return *this; 26201: } 26201: 26201: template 26201: enable_if_t<__and_v<__not_self<_Up>, 26201: __not_<__and_, 26201: is_same<_Tp, decay_t<_Up>>>>, 26201: is_constructible<_Tp, _Up>, 26201: is_assignable<_Tp&, _Up>>, 26201: optional&> 26201: operator=(_Up&& __u) 26201: { 26201: if (this->_M_is_engaged()) 26201: this->_M_get() = std::forward<_Up>(__u); 26201: else 26201: this->_M_construct(std::forward<_Up>(__u)); 26201: 26201: return *this; 26201: } 26201: 26201: template 26201: enable_if_t<__and_v<__not_>, 26201: is_constructible<_Tp, const _Up&>, 26201: is_assignable<_Tp&, const _Up&>, 26201: __not_<__converts_from_optional<_Tp, _Up>>, 26201: __not_<__assigns_from_optional<_Tp, _Up>>>, 26201: optional&> 26201: operator=(const optional<_Up>& __u) 26201: { 26201: if (__u) 26201: { 26201: if (this->_M_is_engaged()) 26201: this->_M_get() = *__u; 26201: else 26201: this->_M_construct(*__u); 26201: } 26201: else 26201: { 26201: this->_M_reset(); 26201: } 26201: return *this; 26201: } 26201: 26201: template 26201: enable_if_t<__and_v<__not_>, 26201: is_constructible<_Tp, _Up>, 26201: is_assignable<_Tp&, _Up>, 26201: __not_<__converts_from_optional<_Tp, _Up>>, 26201: __not_<__assigns_from_optional<_Tp, _Up>>>, 26201: optional&> 26201: operator=(optional<_Up>&& __u) 26201: { 26201: if (__u) 26201: { 26201: if (this->_M_is_engaged()) 26201: this->_M_get() = std::move(*__u); 26201: else 26201: this->_M_construct(std::move(*__u)); 26201: } 26201: else 26201: { 26201: this->_M_reset(); 26201: } 26201: 26201: return *this; 26201: } 26201: 26201: template 26201: enable_if_t, _Tp&> 26201: emplace(_Args&&... __args) 26201: { 26201: this->_M_reset(); 26201: this->_M_construct(std::forward<_Args>(__args)...); 26201: return this->_M_get(); 26201: } 26201: 26201: template 26201: enable_if_t&, 26201: _Args&&...>, _Tp&> 26201: emplace(initializer_list<_Up> __il, _Args&&... __args) 26201: { 26201: this->_M_reset(); 26201: this->_M_construct(__il, std::forward<_Args>(__args)...); 26201: return this->_M_get(); 26201: } 26201: 26201: 26201: 26201: 26201: void 26201: swap(optional& __other) 26201: noexcept(is_nothrow_move_constructible_v<_Tp> 26201: && is_nothrow_swappable_v<_Tp>) 26201: { 26201: using std::swap; 26201: 26201: if (this->_M_is_engaged() && __other._M_is_engaged()) 26201: swap(this->_M_get(), __other._M_get()); 26201: else if (this->_M_is_engaged()) 26201: { 26201: __other._M_construct(std::move(this->_M_get())); 26201: this->_M_destruct(); 26201: } 26201: else if (__other._M_is_engaged()) 26201: { 26201: this->_M_construct(std::move(__other._M_get())); 26201: __other._M_destruct(); 26201: } 26201: } 26201: 26201: 26201: constexpr const _Tp* 26201: operator->() const 26201: { return std::__addressof(this->_M_get()); } 26201: 26201: constexpr _Tp* 26201: operator->() 26201: { return std::__addressof(this->_M_get()); } 26201: 26201: constexpr const _Tp& 26201: operator*() const& 26201: { return this->_M_get(); } 26201: 26201: constexpr _Tp& 26201: operator*()& 26201: { return this->_M_get(); } 26201: 26201: constexpr _Tp&& 26201: operator*()&& 26201: { return std::move(this->_M_get()); } 26201: 26201: constexpr const _Tp&& 26201: operator*() const&& 26201: { return std::move(this->_M_get()); } 26201: 26201: constexpr explicit operator bool() const noexcept 26201: { return this->_M_is_engaged(); } 26201: 26201: constexpr bool has_value() const noexcept 26201: { return this->_M_is_engaged(); } 26201: 26201: constexpr const _Tp& 26201: value() const& 26201: { 26201: return this->_M_is_engaged() 26201: ? this->_M_get() 26201: : (__throw_bad_optional_access(), this->_M_get()); 26201: } 26201: 26201: constexpr _Tp& 26201: value()& 26201: { 26201: return this->_M_is_engaged() 26201: ? this->_M_get() 26201: : (__throw_bad_optional_access(), this->_M_get()); 26201: } 26201: 26201: constexpr _Tp&& 26201: value()&& 26201: { 26201: return this->_M_is_engaged() 26201: ? std::move(this->_M_get()) 26201: : (__throw_bad_optional_access(), std::move(this->_M_get())); 26201: } 26201: 26201: constexpr const _Tp&& 26201: value() const&& 26201: { 26201: return this->_M_is_engaged() 26201: ? std::move(this->_M_get()) 26201: : (__throw_bad_optional_access(), std::move(this->_M_get())); 26201: } 26201: 26201: template 26201: constexpr _Tp 26201: value_or(_Up&& __u) const& 26201: { 26201: static_assert(is_copy_constructible_v<_Tp>); 26201: static_assert(is_convertible_v<_Up&&, _Tp>); 26201: 26201: return this->_M_is_engaged() 26201: ? this->_M_get() : static_cast<_Tp>(std::forward<_Up>(__u)); 26201: } 26201: 26201: template 26201: constexpr _Tp 26201: value_or(_Up&& __u) && 26201: { 26201: static_assert(is_move_constructible_v<_Tp>); 26201: static_assert(is_convertible_v<_Up&&, _Tp>); 26201: 26201: return this->_M_is_engaged() 26201: ? std::move(this->_M_get()) 26201: : static_cast<_Tp>(std::forward<_Up>(__u)); 26201: } 26201: 26201: void reset() noexcept { this->_M_reset(); } 26201: }; 26201: 26201: template 26201: using __optional_relop_t = 26201: enable_if_t::value, bool>; 26201: 26201: template 26201: using __optional_eq_t = __optional_relop_t< 26201: decltype(std::declval() == std::declval()) 26201: >; 26201: 26201: template 26201: using __optional_ne_t = __optional_relop_t< 26201: decltype(std::declval() != std::declval()) 26201: >; 26201: 26201: template 26201: using __optional_lt_t = __optional_relop_t< 26201: decltype(std::declval() < std::declval()) 26201: >; 26201: 26201: template 26201: using __optional_gt_t = __optional_relop_t< 26201: decltype(std::declval() > std::declval()) 26201: >; 26201: 26201: template 26201: using __optional_le_t = __optional_relop_t< 26201: decltype(std::declval() <= std::declval()) 26201: >; 26201: 26201: template 26201: using __optional_ge_t = __optional_relop_t< 26201: decltype(std::declval() >= std::declval()) 26201: >; 26201: 26201: 26201: template 26201: constexpr auto 26201: operator==(const optional<_Tp>& __lhs, const optional<_Up>& __rhs) 26201: -> __optional_eq_t<_Tp, _Up> 26201: { 26201: return static_cast(__lhs) == static_cast(__rhs) 26201: && (!__lhs || *__lhs == *__rhs); 26201: } 26201: 26201: template 26201: constexpr auto 26201: operator!=(const optional<_Tp>& __lhs, const optional<_Up>& __rhs) 26201: -> __optional_ne_t<_Tp, _Up> 26201: { 26201: return static_cast(__lhs) != static_cast(__rhs) 26201: || (static_cast(__lhs) && *__lhs != *__rhs); 26201: } 26201: 26201: template 26201: constexpr auto 26201: operator<(const optional<_Tp>& __lhs, const optional<_Up>& __rhs) 26201: -> __optional_lt_t<_Tp, _Up> 26201: { 26201: return static_cast(__rhs) && (!__lhs || *__lhs < *__rhs); 26201: } 26201: 26201: template 26201: constexpr auto 26201: operator>(const optional<_Tp>& __lhs, const optional<_Up>& __rhs) 26201: -> __optional_gt_t<_Tp, _Up> 26201: { 26201: return static_cast(__lhs) && (!__rhs || *__lhs > *__rhs); 26201: } 26201: 26201: template 26201: constexpr auto 26201: operator<=(const optional<_Tp>& __lhs, const optional<_Up>& __rhs) 26201: -> __optional_le_t<_Tp, _Up> 26201: { 26201: return !__lhs || (static_cast(__rhs) && *__lhs <= *__rhs); 26201: } 26201: 26201: template 26201: constexpr auto 26201: operator>=(const optional<_Tp>& __lhs, const optional<_Up>& __rhs) 26201: -> __optional_ge_t<_Tp, _Up> 26201: { 26201: return !__rhs || (static_cast(__lhs) && *__lhs >= *__rhs); 26201: } 26201: # 1072 "/usr/x86_64-linux-gnu/include/c++/10/optional" 3 26201: template 26201: constexpr bool 26201: operator==(const optional<_Tp>& __lhs, nullopt_t) noexcept 26201: { return !__lhs; } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: constexpr bool 26201: operator==(nullopt_t, const optional<_Tp>& __rhs) noexcept 26201: { return !__rhs; } 26201: 26201: template 26201: constexpr bool 26201: operator!=(const optional<_Tp>& __lhs, nullopt_t) noexcept 26201: { return static_cast(__lhs); } 26201: 26201: template 26201: constexpr bool 26201: operator!=(nullopt_t, const optional<_Tp>& __rhs) noexcept 26201: { return static_cast(__rhs); } 26201: 26201: template 26201: constexpr bool 26201: operator<(const optional<_Tp>& , nullopt_t) noexcept 26201: { return false; } 26201: 26201: template 26201: constexpr bool 26201: operator<(nullopt_t, const optional<_Tp>& __rhs) noexcept 26201: { return static_cast(__rhs); } 26201: 26201: template 26201: constexpr bool 26201: operator>(const optional<_Tp>& __lhs, nullopt_t) noexcept 26201: { return static_cast(__lhs); } 26201: 26201: template 26201: constexpr bool 26201: operator>(nullopt_t, const optional<_Tp>& ) noexcept 26201: { return false; } 26201: 26201: template 26201: constexpr bool 26201: operator<=(const optional<_Tp>& __lhs, nullopt_t) noexcept 26201: { return !__lhs; } 26201: 26201: template 26201: constexpr bool 26201: operator<=(nullopt_t, const optional<_Tp>& ) noexcept 26201: { return true; } 26201: 26201: template 26201: constexpr bool 26201: operator>=(const optional<_Tp>& , nullopt_t) noexcept 26201: { return true; } 26201: 26201: template 26201: constexpr bool 26201: operator>=(nullopt_t, const optional<_Tp>& __rhs) noexcept 26201: { return !__rhs; } 26201: 26201: 26201: 26201: template 26201: constexpr auto 26201: operator==(const optional<_Tp>& __lhs, const _Up& __rhs) 26201: -> __optional_eq_t<_Tp, _Up> 26201: { return __lhs && *__lhs == __rhs; } 26201: 26201: template 26201: constexpr auto 26201: operator==(const _Up& __lhs, const optional<_Tp>& __rhs) 26201: -> __optional_eq_t<_Up, _Tp> 26201: { return __rhs && __lhs == *__rhs; } 26201: 26201: template 26201: constexpr auto 26201: operator!=(const optional<_Tp>& __lhs, const _Up& __rhs) 26201: -> __optional_ne_t<_Tp, _Up> 26201: { return !__lhs || *__lhs != __rhs; } 26201: 26201: template 26201: constexpr auto 26201: operator!=(const _Up& __lhs, const optional<_Tp>& __rhs) 26201: -> __optional_ne_t<_Up, _Tp> 26201: { return !__rhs || __lhs != *__rhs; } 26201: 26201: template 26201: constexpr auto 26201: operator<(const optional<_Tp>& __lhs, const _Up& __rhs) 26201: -> __optional_lt_t<_Tp, _Up> 26201: { return !__lhs || *__lhs < __rhs; } 26201: 26201: template 26201: constexpr auto 26201: operator<(const _Up& __lhs, const optional<_Tp>& __rhs) 26201: -> __optional_lt_t<_Up, _Tp> 26201: { return __rhs && __lhs < *__rhs; } 26201: 26201: template 26201: constexpr auto 26201: operator>(const optional<_Tp>& __lhs, const _Up& __rhs) 26201: -> __optional_gt_t<_Tp, _Up> 26201: { return __lhs && *__lhs > __rhs; } 26201: 26201: template 26201: constexpr auto 26201: operator>(const _Up& __lhs, const optional<_Tp>& __rhs) 26201: -> __optional_gt_t<_Up, _Tp> 26201: { return !__rhs || __lhs > *__rhs; } 26201: 26201: template 26201: constexpr auto 26201: operator<=(const optional<_Tp>& __lhs, const _Up& __rhs) 26201: -> __optional_le_t<_Tp, _Up> 26201: { return !__lhs || *__lhs <= __rhs; } 26201: 26201: template 26201: constexpr auto 26201: operator<=(const _Up& __lhs, const optional<_Tp>& __rhs) 26201: -> __optional_le_t<_Up, _Tp> 26201: { return __rhs && __lhs <= *__rhs; } 26201: 26201: template 26201: constexpr auto 26201: operator>=(const optional<_Tp>& __lhs, const _Up& __rhs) 26201: -> __optional_ge_t<_Tp, _Up> 26201: { return __lhs && *__lhs >= __rhs; } 26201: 26201: template 26201: constexpr auto 26201: operator>=(const _Up& __lhs, const optional<_Tp>& __rhs) 26201: -> __optional_ge_t<_Up, _Tp> 26201: { return !__rhs || __lhs >= *__rhs; } 26201: # 1230 "/usr/x86_64-linux-gnu/include/c++/10/optional" 3 26201: template 26201: inline enable_if_t && is_swappable_v<_Tp>> 26201: swap(optional<_Tp>& __lhs, optional<_Tp>& __rhs) 26201: noexcept(noexcept(__lhs.swap(__rhs))) 26201: { __lhs.swap(__rhs); } 26201: 26201: template 26201: enable_if_t && is_swappable_v<_Tp>)> 26201: swap(optional<_Tp>&, optional<_Tp>&) = delete; 26201: 26201: template 26201: constexpr optional> 26201: make_optional(_Tp&& __t) 26201: { return optional> { std::forward<_Tp>(__t) }; } 26201: 26201: template 26201: constexpr optional<_Tp> 26201: make_optional(_Args&&... __args) 26201: { return optional<_Tp> { in_place, std::forward<_Args>(__args)... }; } 26201: 26201: template 26201: constexpr optional<_Tp> 26201: make_optional(initializer_list<_Up> __il, _Args&&... __args) 26201: { return optional<_Tp> { in_place, __il, std::forward<_Args>(__args)... }; } 26201: 26201: 26201: 26201: template, 26201: bool = __poison_hash<_Up>::__enable_hash_call> 26201: struct __optional_hash_call_base 26201: { 26201: size_t 26201: operator()(const optional<_Tp>& __t) const 26201: noexcept(noexcept(hash<_Up>{}(*__t))) 26201: { 26201: 26201: 26201: constexpr size_t __magic_disengaged_hash = static_cast(-3333); 26201: return __t ? hash<_Up>{}(*__t) : __magic_disengaged_hash; 26201: } 26201: }; 26201: 26201: template 26201: struct __optional_hash_call_base<_Tp, _Up, false> {}; 26201: 26201: template 26201: struct hash> 26201: : private __poison_hash>, 26201: public __optional_hash_call_base<_Tp> 26201: { 26201: using result_type [[__deprecated__]] = size_t; 26201: using argument_type [[__deprecated__]] = optional<_Tp>; 26201: }; 26201: 26201: template 26201: struct __is_fast_hash>> : __is_fast_hash> 26201: { }; 26201: 26201: 26201: 26201: 26201: template optional(_Tp) -> optional<_Tp>; 26201: 26201: 26201: 26201: } 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/bits/node_handle.h" 2 3 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: template 26201: class _Node_handle_common 26201: { 26201: using _AllocTraits = allocator_traits<_NodeAlloc>; 26201: 26201: public: 26201: using allocator_type = __alloc_rebind<_NodeAlloc, _Val>; 26201: 26201: allocator_type 26201: get_allocator() const noexcept 26201: { 26201: ; 26201: return allocator_type(*_M_alloc); 26201: } 26201: 26201: explicit operator bool() const noexcept { return _M_ptr != nullptr; } 26201: 26201: [[nodiscard]] bool empty() const noexcept { return _M_ptr == nullptr; } 26201: 26201: protected: 26201: constexpr _Node_handle_common() noexcept : _M_ptr(), _M_alloc() {} 26201: 26201: ~_Node_handle_common() { _M_destroy(); } 26201: 26201: _Node_handle_common(_Node_handle_common&& __nh) noexcept 26201: : _M_ptr(__nh._M_ptr), _M_alloc(std::move(__nh._M_alloc)) 26201: { 26201: __nh._M_ptr = nullptr; 26201: __nh._M_alloc = nullopt; 26201: } 26201: 26201: _Node_handle_common& 26201: operator=(_Node_handle_common&& __nh) noexcept 26201: { 26201: _M_destroy(); 26201: _M_ptr = __nh._M_ptr; 26201: if constexpr (is_move_assignable_v<_NodeAlloc>) 26201: { 26201: if (_AllocTraits::propagate_on_container_move_assignment::value 26201: || !this->_M_alloc) 26201: this->_M_alloc = std::move(__nh._M_alloc); 26201: else 26201: { 26201: ; 26201: } 26201: } 26201: else 26201: { 26201: ; 26201: } 26201: __nh._M_ptr = nullptr; 26201: __nh._M_alloc = nullopt; 26201: return *this; 26201: } 26201: 26201: _Node_handle_common(typename _AllocTraits::pointer __ptr, 26201: const _NodeAlloc& __alloc) 26201: : _M_ptr(__ptr), _M_alloc(__alloc) { } 26201: 26201: void 26201: _M_swap(_Node_handle_common& __nh) noexcept 26201: { 26201: using std::swap; 26201: swap(_M_ptr, __nh._M_ptr); 26201: if (_AllocTraits::propagate_on_container_swap::value 26201: || !_M_alloc || !__nh._M_alloc) 26201: _M_alloc.swap(__nh._M_alloc); 26201: else 26201: { 26201: ; 26201: } 26201: } 26201: 26201: private: 26201: void 26201: _M_destroy() noexcept 26201: { 26201: if (_M_ptr != nullptr) 26201: { 26201: allocator_type __alloc(*_M_alloc); 26201: allocator_traits::destroy(__alloc, 26201: _M_ptr->_M_valptr()); 26201: _AllocTraits::deallocate(*_M_alloc, _M_ptr, 1); 26201: } 26201: } 26201: 26201: protected: 26201: typename _AllocTraits::pointer _M_ptr; 26201: private: 26201: optional<_NodeAlloc> _M_alloc; 26201: 26201: template 26201: friend class _Rb_tree; 26201: }; 26201: 26201: 26201: template 26201: class _Node_handle : public _Node_handle_common<_Value, _NodeAlloc> 26201: { 26201: public: 26201: constexpr _Node_handle() noexcept = default; 26201: ~_Node_handle() = default; 26201: _Node_handle(_Node_handle&&) noexcept = default; 26201: 26201: _Node_handle& 26201: operator=(_Node_handle&&) noexcept = default; 26201: 26201: using key_type = _Key; 26201: using mapped_type = typename _Value::second_type; 26201: 26201: key_type& 26201: key() const noexcept 26201: { 26201: ; 26201: return *_M_pkey; 26201: } 26201: 26201: mapped_type& 26201: mapped() const noexcept 26201: { 26201: ; 26201: return *_M_pmapped; 26201: } 26201: 26201: void 26201: swap(_Node_handle& __nh) noexcept 26201: { 26201: this->_M_swap(__nh); 26201: using std::swap; 26201: swap(_M_pkey, __nh._M_pkey); 26201: swap(_M_pmapped, __nh._M_pmapped); 26201: } 26201: 26201: friend void 26201: swap(_Node_handle& __x, _Node_handle& __y) 26201: noexcept(noexcept(__x.swap(__y))) 26201: { __x.swap(__y); } 26201: 26201: private: 26201: using _AllocTraits = allocator_traits<_NodeAlloc>; 26201: 26201: _Node_handle(typename _AllocTraits::pointer __ptr, 26201: const _NodeAlloc& __alloc) 26201: : _Node_handle_common<_Value, _NodeAlloc>(__ptr, __alloc) 26201: { 26201: if (__ptr) 26201: { 26201: auto& __key = const_cast<_Key&>(__ptr->_M_valptr()->first); 26201: _M_pkey = _S_pointer_to(__key); 26201: _M_pmapped = _S_pointer_to(__ptr->_M_valptr()->second); 26201: } 26201: else 26201: { 26201: _M_pkey = nullptr; 26201: _M_pmapped = nullptr; 26201: } 26201: } 26201: 26201: template 26201: using __pointer 26201: = __ptr_rebind>; 26201: 26201: __pointer<_Key> _M_pkey = nullptr; 26201: __pointer _M_pmapped = nullptr; 26201: 26201: template 26201: __pointer<_Tp> 26201: _S_pointer_to(_Tp& __obj) 26201: { return pointer_traits<__pointer<_Tp>>::pointer_to(__obj); } 26201: 26201: const key_type& 26201: _M_key() const noexcept { return key(); } 26201: 26201: template 26201: friend class _Rb_tree; 26201: 26201: template 26201: friend class _Hashtable; 26201: }; 26201: 26201: 26201: template 26201: class _Node_handle<_Value, _Value, _NodeAlloc> 26201: : public _Node_handle_common<_Value, _NodeAlloc> 26201: { 26201: public: 26201: constexpr _Node_handle() noexcept = default; 26201: ~_Node_handle() = default; 26201: _Node_handle(_Node_handle&&) noexcept = default; 26201: 26201: _Node_handle& 26201: operator=(_Node_handle&&) noexcept = default; 26201: 26201: using value_type = _Value; 26201: 26201: value_type& 26201: value() const noexcept 26201: { 26201: ; 26201: return *this->_M_ptr->_M_valptr(); 26201: } 26201: 26201: void 26201: swap(_Node_handle& __nh) noexcept 26201: { this->_M_swap(__nh); } 26201: 26201: friend void 26201: swap(_Node_handle& __x, _Node_handle& __y) 26201: noexcept(noexcept(__x.swap(__y))) 26201: { __x.swap(__y); } 26201: 26201: private: 26201: using _AllocTraits = allocator_traits<_NodeAlloc>; 26201: 26201: _Node_handle(typename _AllocTraits::pointer __ptr, 26201: const _NodeAlloc& __alloc) 26201: : _Node_handle_common<_Value, _NodeAlloc>(__ptr, __alloc) { } 26201: 26201: const value_type& 26201: _M_key() const noexcept { return value(); } 26201: 26201: template 26201: friend class _Rb_tree; 26201: 26201: template 26201: friend class _Hashtable; 26201: }; 26201: 26201: 26201: template 26201: struct _Node_insert_return 26201: { 26201: _Iterator position = _Iterator(); 26201: bool inserted = false; 26201: _NodeHandle node; 26201: }; 26201: 26201: 26201: } 26201: # 38 "/usr/x86_64-linux-gnu/include/c++/10/bits/hashtable.h" 2 3 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: template 26201: using __cache_default 26201: = __not_<__and_< 26201: __is_fast_hash<_Hash>, 26201: 26201: __is_nothrow_invocable>>; 26201: # 169 "/usr/x86_64-linux-gnu/include/c++/10/bits/hashtable.h" 3 26201: template 26201: class _Hashtable 26201: : public __detail::_Hashtable_base<_Key, _Value, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _Traits>, 26201: public __detail::_Map_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>, 26201: public __detail::_Insert<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>, 26201: public __detail::_Rehash_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>, 26201: public __detail::_Equality<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>, 26201: private __detail::_Hashtable_alloc< 26201: __alloc_rebind<_Alloc, 26201: __detail::_Hash_node<_Value, 26201: _Traits::__hash_cached::value>>> 26201: { 26201: static_assert(is_same::type, _Value>::value, 26201: "unordered container must have a non-const, non-volatile value_type"); 26201: 26201: static_assert(is_same{}, 26201: "unordered container must have the same value_type as its allocator"); 26201: 26201: 26201: using __traits_type = _Traits; 26201: using __hash_cached = typename __traits_type::__hash_cached; 26201: using __node_type = __detail::_Hash_node<_Value, __hash_cached::value>; 26201: using __node_alloc_type = __alloc_rebind<_Alloc, __node_type>; 26201: 26201: using __hashtable_alloc = __detail::_Hashtable_alloc<__node_alloc_type>; 26201: 26201: using __value_alloc_traits = 26201: typename __hashtable_alloc::__value_alloc_traits; 26201: using __node_alloc_traits = 26201: typename __hashtable_alloc::__node_alloc_traits; 26201: using __node_base = typename __hashtable_alloc::__node_base; 26201: using __bucket_type = typename __hashtable_alloc::__bucket_type; 26201: 26201: public: 26201: typedef _Key key_type; 26201: typedef _Value value_type; 26201: typedef _Alloc allocator_type; 26201: typedef _Equal key_equal; 26201: 26201: 26201: 26201: typedef typename __value_alloc_traits::pointer pointer; 26201: typedef typename __value_alloc_traits::const_pointer const_pointer; 26201: typedef value_type& reference; 26201: typedef const value_type& const_reference; 26201: 26201: private: 26201: using __rehash_type = _RehashPolicy; 26201: using __rehash_state = typename __rehash_type::_State; 26201: 26201: using __constant_iterators = typename __traits_type::__constant_iterators; 26201: using __unique_keys = typename __traits_type::__unique_keys; 26201: 26201: using __key_extract = typename std::conditional< 26201: __constant_iterators::value, 26201: __detail::_Identity, 26201: __detail::_Select1st>::type; 26201: 26201: using __hashtable_base = __detail:: 26201: _Hashtable_base<_Key, _Value, _ExtractKey, 26201: _Equal, _H1, _H2, _Hash, _Traits>; 26201: 26201: using __hash_code_base = typename __hashtable_base::__hash_code_base; 26201: using __hash_code = typename __hashtable_base::__hash_code; 26201: using __ireturn_type = typename __hashtable_base::__ireturn_type; 26201: 26201: using __map_base = __detail::_Map_base<_Key, _Value, _Alloc, _ExtractKey, 26201: _Equal, _H1, _H2, _Hash, 26201: _RehashPolicy, _Traits>; 26201: 26201: using __rehash_base = __detail::_Rehash_base<_Key, _Value, _Alloc, 26201: _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, 26201: _RehashPolicy, _Traits>; 26201: 26201: using __eq_base = __detail::_Equality<_Key, _Value, _Alloc, _ExtractKey, 26201: _Equal, _H1, _H2, _Hash, 26201: _RehashPolicy, _Traits>; 26201: 26201: using __reuse_or_alloc_node_gen_t = 26201: __detail::_ReuseOrAllocNode<__node_alloc_type>; 26201: using __alloc_node_gen_t = 26201: __detail::_AllocNode<__node_alloc_type>; 26201: 26201: 26201: struct _Scoped_node 26201: { 26201: 26201: _Scoped_node(__node_type* __n, __hashtable_alloc* __h) 26201: : _M_h(__h), _M_node(__n) { } 26201: 26201: 26201: template 26201: _Scoped_node(__hashtable_alloc* __h, _Args&&... __args) 26201: : _M_h(__h), 26201: _M_node(__h->_M_allocate_node(std::forward<_Args>(__args)...)) 26201: { } 26201: 26201: 26201: ~_Scoped_node() { if (_M_node) _M_h->_M_deallocate_node(_M_node); }; 26201: 26201: _Scoped_node(const _Scoped_node&) = delete; 26201: _Scoped_node& operator=(const _Scoped_node&) = delete; 26201: 26201: __hashtable_alloc* _M_h; 26201: __node_type* _M_node; 26201: }; 26201: 26201: template 26201: static constexpr 26201: typename conditional::value, 26201: const value_type&, value_type&&>::type 26201: __fwd_value_for(value_type& __val) noexcept 26201: { return std::move(__val); } 26201: 26201: 26201: template 26201: using __if_hash_cached = __or_<__not_<__hash_cached>, _Cond>; 26201: 26201: template 26201: using __if_hash_not_cached = __or_<__hash_cached, _Cond>; 26201: 26201: 26201: 26201: 26201: 26201: struct __hash_code_base_access : __hash_code_base 26201: { using __hash_code_base::_M_bucket_index; }; 26201: 26201: 26201: 26201: static_assert(noexcept(declval() 26201: ._M_bucket_index((const __node_type*)nullptr, 26201: (std::size_t)0)), 26201: "Cache the hash code or qualify your functors involved" 26201: " in hash code and bucket index computation with noexcept"); 26201: 26201: 26201: 26201: static_assert(__if_hash_cached>::value, 26201: "Functor used to map hash code to bucket index" 26201: " must be default constructible"); 26201: 26201: template 26201: friend struct __detail::_Map_base; 26201: 26201: template 26201: friend struct __detail::_Insert_base; 26201: 26201: template 26201: friend struct __detail::_Insert; 26201: 26201: template 26201: friend struct __detail::_Equality; 26201: 26201: public: 26201: using size_type = typename __hashtable_base::size_type; 26201: using difference_type = typename __hashtable_base::difference_type; 26201: 26201: using iterator = typename __hashtable_base::iterator; 26201: using const_iterator = typename __hashtable_base::const_iterator; 26201: 26201: using local_iterator = typename __hashtable_base::local_iterator; 26201: using const_local_iterator = typename __hashtable_base:: 26201: const_local_iterator; 26201: 26201: 26201: using node_type = _Node_handle<_Key, _Value, __node_alloc_type>; 26201: using insert_return_type = _Node_insert_return; 26201: 26201: 26201: private: 26201: __bucket_type* _M_buckets = &_M_single_bucket; 26201: size_type _M_bucket_count = 1; 26201: __node_base _M_before_begin; 26201: size_type _M_element_count = 0; 26201: _RehashPolicy _M_rehash_policy; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: __bucket_type _M_single_bucket = nullptr; 26201: 26201: bool 26201: _M_uses_single_bucket(__bucket_type* __bkts) const 26201: { return __builtin_expect(__bkts == &_M_single_bucket, false); } 26201: 26201: bool 26201: _M_uses_single_bucket() const 26201: { return _M_uses_single_bucket(_M_buckets); } 26201: 26201: __hashtable_alloc& 26201: _M_base_alloc() { return *this; } 26201: 26201: __bucket_type* 26201: _M_allocate_buckets(size_type __bkt_count) 26201: { 26201: if (__builtin_expect(__bkt_count == 1, false)) 26201: { 26201: _M_single_bucket = nullptr; 26201: return &_M_single_bucket; 26201: } 26201: 26201: return __hashtable_alloc::_M_allocate_buckets(__bkt_count); 26201: } 26201: 26201: void 26201: _M_deallocate_buckets(__bucket_type* __bkts, size_type __bkt_count) 26201: { 26201: if (_M_uses_single_bucket(__bkts)) 26201: return; 26201: 26201: __hashtable_alloc::_M_deallocate_buckets(__bkts, __bkt_count); 26201: } 26201: 26201: void 26201: _M_deallocate_buckets() 26201: { _M_deallocate_buckets(_M_buckets, _M_bucket_count); } 26201: 26201: 26201: 26201: __node_type* 26201: _M_bucket_begin(size_type __bkt) const; 26201: 26201: __node_type* 26201: _M_begin() const 26201: { return static_cast<__node_type*>(_M_before_begin._M_nxt); } 26201: 26201: 26201: 26201: template 26201: void 26201: _M_assign_elements(_Ht&&); 26201: 26201: template 26201: void 26201: _M_assign(_Ht&&, const _NodeGenerator&); 26201: 26201: void 26201: _M_move_assign(_Hashtable&&, true_type); 26201: 26201: void 26201: _M_move_assign(_Hashtable&&, false_type); 26201: 26201: void 26201: _M_reset() noexcept; 26201: 26201: _Hashtable(const _H1& __h1, const _H2& __h2, const _Hash& __h, 26201: const _Equal& __eq, const _ExtractKey& __exk, 26201: const allocator_type& __a) 26201: : __hashtable_base(__exk, __h1, __h2, __h, __eq), 26201: __hashtable_alloc(__node_alloc_type(__a)) 26201: { } 26201: 26201: template 26201: static constexpr bool 26201: _S_nothrow_move() 26201: { 26201: 26201: 26201: 26201: 26201: 26201: if constexpr (_No_realloc) 26201: if constexpr (is_nothrow_copy_constructible<_H1>()) 26201: return is_nothrow_copy_constructible<_Equal>(); 26201: return false; 26201: 26201: } 26201: 26201: _Hashtable(_Hashtable&& __ht, __node_alloc_type&& __a, 26201: true_type ) 26201: noexcept(_S_nothrow_move()); 26201: 26201: _Hashtable(_Hashtable&&, __node_alloc_type&&, 26201: false_type ); 26201: 26201: 26201: public: 26201: 26201: _Hashtable() = default; 26201: _Hashtable(size_type __bkt_count_hint, 26201: const _H1&, const _H2&, const _Hash&, 26201: const _Equal&, const _ExtractKey&, 26201: const allocator_type&); 26201: 26201: template 26201: _Hashtable(_InputIterator __first, _InputIterator __last, 26201: size_type __bkt_count_hint, 26201: const _H1&, const _H2&, const _Hash&, 26201: const _Equal&, const _ExtractKey&, 26201: const allocator_type&); 26201: 26201: _Hashtable(const _Hashtable&); 26201: 26201: _Hashtable(_Hashtable&& __ht) 26201: noexcept(_S_nothrow_move()) 26201: : _Hashtable(std::move(__ht), std::move(__ht._M_node_allocator()), 26201: true_type{}) 26201: { } 26201: 26201: _Hashtable(const _Hashtable&, const allocator_type&); 26201: 26201: _Hashtable(_Hashtable&& __ht, const allocator_type& __a) 26201: noexcept(_S_nothrow_move<__node_alloc_traits::_S_always_equal()>()) 26201: : _Hashtable(std::move(__ht), __node_alloc_type(__a), 26201: typename __node_alloc_traits::is_always_equal{}) 26201: { } 26201: 26201: 26201: explicit 26201: _Hashtable(const allocator_type& __a) 26201: : __hashtable_alloc(__node_alloc_type(__a)) 26201: { } 26201: 26201: explicit 26201: _Hashtable(size_type __bkt_count_hint, 26201: const _H1& __hf = _H1(), 26201: const key_equal& __eql = key_equal(), 26201: const allocator_type& __a = allocator_type()) 26201: : _Hashtable(__bkt_count_hint, __hf, _H2(), _Hash(), __eql, 26201: __key_extract(), __a) 26201: { } 26201: 26201: template 26201: _Hashtable(_InputIterator __f, _InputIterator __l, 26201: size_type __bkt_count_hint = 0, 26201: const _H1& __hf = _H1(), 26201: const key_equal& __eql = key_equal(), 26201: const allocator_type& __a = allocator_type()) 26201: : _Hashtable(__f, __l, __bkt_count_hint, __hf, _H2(), _Hash(), __eql, 26201: __key_extract(), __a) 26201: { } 26201: 26201: _Hashtable(initializer_list __l, 26201: size_type __bkt_count_hint = 0, 26201: const _H1& __hf = _H1(), 26201: const key_equal& __eql = key_equal(), 26201: const allocator_type& __a = allocator_type()) 26201: : _Hashtable(__l.begin(), __l.end(), __bkt_count_hint, 26201: __hf, _H2(), _Hash(), __eql, 26201: __key_extract(), __a) 26201: { } 26201: 26201: _Hashtable& 26201: operator=(const _Hashtable& __ht); 26201: 26201: _Hashtable& 26201: operator=(_Hashtable&& __ht) 26201: noexcept(__node_alloc_traits::_S_nothrow_move() 26201: && is_nothrow_move_assignable<_H1>::value 26201: && is_nothrow_move_assignable<_Equal>::value) 26201: { 26201: constexpr bool __move_storage = 26201: __node_alloc_traits::_S_propagate_on_move_assign() 26201: || __node_alloc_traits::_S_always_equal(); 26201: _M_move_assign(std::move(__ht), __bool_constant<__move_storage>()); 26201: return *this; 26201: } 26201: 26201: _Hashtable& 26201: operator=(initializer_list __l) 26201: { 26201: __reuse_or_alloc_node_gen_t __roan(_M_begin(), *this); 26201: _M_before_begin._M_nxt = nullptr; 26201: clear(); 26201: this->_M_insert_range(__l.begin(), __l.end(), __roan, __unique_keys()); 26201: return *this; 26201: } 26201: 26201: ~_Hashtable() noexcept; 26201: 26201: void 26201: swap(_Hashtable&) 26201: noexcept(__and_<__is_nothrow_swappable<_H1>, 26201: __is_nothrow_swappable<_Equal>>::value); 26201: 26201: 26201: iterator 26201: begin() noexcept 26201: { return iterator(_M_begin()); } 26201: 26201: const_iterator 26201: begin() const noexcept 26201: { return const_iterator(_M_begin()); } 26201: 26201: iterator 26201: end() noexcept 26201: { return iterator(nullptr); } 26201: 26201: const_iterator 26201: end() const noexcept 26201: { return const_iterator(nullptr); } 26201: 26201: const_iterator 26201: cbegin() const noexcept 26201: { return const_iterator(_M_begin()); } 26201: 26201: const_iterator 26201: cend() const noexcept 26201: { return const_iterator(nullptr); } 26201: 26201: size_type 26201: size() const noexcept 26201: { return _M_element_count; } 26201: 26201: [[__nodiscard__]] bool 26201: empty() const noexcept 26201: { return size() == 0; } 26201: 26201: allocator_type 26201: get_allocator() const noexcept 26201: { return allocator_type(this->_M_node_allocator()); } 26201: 26201: size_type 26201: max_size() const noexcept 26201: { return __node_alloc_traits::max_size(this->_M_node_allocator()); } 26201: 26201: 26201: key_equal 26201: key_eq() const 26201: { return this->_M_eq(); } 26201: 26201: 26201: 26201: 26201: size_type 26201: bucket_count() const noexcept 26201: { return _M_bucket_count; } 26201: 26201: size_type 26201: max_bucket_count() const noexcept 26201: { return max_size(); } 26201: 26201: size_type 26201: bucket_size(size_type __bkt) const 26201: { return std::distance(begin(__bkt), end(__bkt)); } 26201: 26201: size_type 26201: bucket(const key_type& __k) const 26201: { return _M_bucket_index(__k, this->_M_hash_code(__k)); } 26201: 26201: local_iterator 26201: begin(size_type __bkt) 26201: { 26201: return local_iterator(*this, _M_bucket_begin(__bkt), 26201: __bkt, _M_bucket_count); 26201: } 26201: 26201: local_iterator 26201: end(size_type __bkt) 26201: { return local_iterator(*this, nullptr, __bkt, _M_bucket_count); } 26201: 26201: const_local_iterator 26201: begin(size_type __bkt) const 26201: { 26201: return const_local_iterator(*this, _M_bucket_begin(__bkt), 26201: __bkt, _M_bucket_count); 26201: } 26201: 26201: const_local_iterator 26201: end(size_type __bkt) const 26201: { return const_local_iterator(*this, nullptr, __bkt, _M_bucket_count); } 26201: 26201: 26201: const_local_iterator 26201: cbegin(size_type __bkt) const 26201: { 26201: return const_local_iterator(*this, _M_bucket_begin(__bkt), 26201: __bkt, _M_bucket_count); 26201: } 26201: 26201: const_local_iterator 26201: cend(size_type __bkt) const 26201: { return const_local_iterator(*this, nullptr, __bkt, _M_bucket_count); } 26201: 26201: float 26201: load_factor() const noexcept 26201: { 26201: return static_cast(size()) / static_cast(bucket_count()); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: const _RehashPolicy& 26201: __rehash_policy() const 26201: { return _M_rehash_policy; } 26201: 26201: void 26201: __rehash_policy(const _RehashPolicy& __pol) 26201: { _M_rehash_policy = __pol; } 26201: 26201: 26201: iterator 26201: find(const key_type& __k); 26201: 26201: const_iterator 26201: find(const key_type& __k) const; 26201: 26201: size_type 26201: count(const key_type& __k) const; 26201: 26201: std::pair 26201: equal_range(const key_type& __k); 26201: 26201: std::pair 26201: equal_range(const key_type& __k) const; 26201: 26201: protected: 26201: 26201: size_type 26201: _M_bucket_index(__node_type* __n) const noexcept 26201: { return __hash_code_base::_M_bucket_index(__n, _M_bucket_count); } 26201: 26201: size_type 26201: _M_bucket_index(const key_type& __k, __hash_code __c) const 26201: { return __hash_code_base::_M_bucket_index(__k, __c, _M_bucket_count); } 26201: 26201: 26201: 26201: __node_base* 26201: _M_find_before_node(size_type, const key_type&, __hash_code) const; 26201: 26201: __node_type* 26201: _M_find_node(size_type __bkt, const key_type& __key, 26201: __hash_code __c) const 26201: { 26201: __node_base* __before_n = _M_find_before_node(__bkt, __key, __c); 26201: if (__before_n) 26201: return static_cast<__node_type*>(__before_n->_M_nxt); 26201: return nullptr; 26201: } 26201: 26201: 26201: void 26201: _M_insert_bucket_begin(size_type, __node_type*); 26201: 26201: 26201: void 26201: _M_remove_bucket_begin(size_type __bkt, __node_type* __next_n, 26201: size_type __next_bkt); 26201: 26201: 26201: __node_base* 26201: _M_get_previous_node(size_type __bkt, __node_base* __n); 26201: 26201: 26201: 26201: 26201: iterator 26201: _M_insert_unique_node(const key_type& __k, size_type __bkt, 26201: __hash_code __code, __node_type* __n, 26201: size_type __n_elt = 1); 26201: 26201: 26201: 26201: iterator 26201: _M_insert_multi_node(__node_type* __hint, const key_type& __k, 26201: __hash_code __code, __node_type* __n); 26201: 26201: template 26201: std::pair 26201: _M_emplace(true_type, _Args&&... __args); 26201: 26201: template 26201: iterator 26201: _M_emplace(false_type __uk, _Args&&... __args) 26201: { return _M_emplace(cend(), __uk, std::forward<_Args>(__args)...); } 26201: 26201: 26201: template 26201: iterator 26201: _M_emplace(const_iterator, true_type __uk, _Args&&... __args) 26201: { return _M_emplace(__uk, std::forward<_Args>(__args)...).first; } 26201: 26201: template 26201: iterator 26201: _M_emplace(const_iterator, false_type, _Args&&... __args); 26201: 26201: template 26201: std::pair 26201: _M_insert(_Arg&&, const _NodeGenerator&, true_type, size_type = 1); 26201: 26201: template 26201: iterator 26201: _M_insert(_Arg&& __arg, const _NodeGenerator& __node_gen, 26201: false_type __uk) 26201: { 26201: return _M_insert(cend(), std::forward<_Arg>(__arg), __node_gen, 26201: __uk); 26201: } 26201: 26201: 26201: template 26201: iterator 26201: _M_insert(const_iterator, _Arg&& __arg, 26201: const _NodeGenerator& __node_gen, true_type __uk) 26201: { 26201: return 26201: _M_insert(std::forward<_Arg>(__arg), __node_gen, __uk).first; 26201: } 26201: 26201: 26201: template 26201: iterator 26201: _M_insert(const_iterator, _Arg&&, 26201: const _NodeGenerator&, false_type); 26201: 26201: size_type 26201: _M_erase(true_type, const key_type&); 26201: 26201: size_type 26201: _M_erase(false_type, const key_type&); 26201: 26201: iterator 26201: _M_erase(size_type __bkt, __node_base* __prev_n, __node_type* __n); 26201: 26201: public: 26201: 26201: template 26201: __ireturn_type 26201: emplace(_Args&&... __args) 26201: { return _M_emplace(__unique_keys(), std::forward<_Args>(__args)...); } 26201: 26201: template 26201: iterator 26201: emplace_hint(const_iterator __hint, _Args&&... __args) 26201: { 26201: return _M_emplace(__hint, __unique_keys(), 26201: std::forward<_Args>(__args)...); 26201: } 26201: 26201: 26201: 26201: 26201: iterator 26201: erase(const_iterator); 26201: 26201: 26201: iterator 26201: erase(iterator __it) 26201: { return erase(const_iterator(__it)); } 26201: 26201: size_type 26201: erase(const key_type& __k) 26201: { return _M_erase(__unique_keys(), __k); } 26201: 26201: iterator 26201: erase(const_iterator, const_iterator); 26201: 26201: void 26201: clear() noexcept; 26201: 26201: 26201: 26201: void rehash(size_type __bkt_count); 26201: 26201: 26201: 26201: 26201: 26201: 26201: insert_return_type 26201: _M_reinsert_node(node_type&& __nh) 26201: { 26201: insert_return_type __ret; 26201: if (__nh.empty()) 26201: __ret.position = end(); 26201: else 26201: { 26201: ; 26201: 26201: const key_type& __k = __nh._M_key(); 26201: __hash_code __code = this->_M_hash_code(__k); 26201: size_type __bkt = _M_bucket_index(__k, __code); 26201: if (__node_type* __n = _M_find_node(__bkt, __k, __code)) 26201: { 26201: __ret.node = std::move(__nh); 26201: __ret.position = iterator(__n); 26201: __ret.inserted = false; 26201: } 26201: else 26201: { 26201: __ret.position 26201: = _M_insert_unique_node(__k, __bkt, __code, __nh._M_ptr); 26201: __nh._M_ptr = nullptr; 26201: __ret.inserted = true; 26201: } 26201: } 26201: return __ret; 26201: } 26201: 26201: 26201: iterator 26201: _M_reinsert_node_multi(const_iterator __hint, node_type&& __nh) 26201: { 26201: if (__nh.empty()) 26201: return end(); 26201: 26201: ; 26201: 26201: const key_type& __k = __nh._M_key(); 26201: auto __code = this->_M_hash_code(__k); 26201: auto __ret 26201: = _M_insert_multi_node(__hint._M_cur, __k, __code, __nh._M_ptr); 26201: __nh._M_ptr = nullptr; 26201: return __ret; 26201: } 26201: 26201: private: 26201: node_type 26201: _M_extract_node(size_t __bkt, __node_base* __prev_n) 26201: { 26201: __node_type* __n = static_cast<__node_type*>(__prev_n->_M_nxt); 26201: if (__prev_n == _M_buckets[__bkt]) 26201: _M_remove_bucket_begin(__bkt, __n->_M_next(), 26201: __n->_M_nxt ? _M_bucket_index(__n->_M_next()) : 0); 26201: else if (__n->_M_nxt) 26201: { 26201: size_type __next_bkt = _M_bucket_index(__n->_M_next()); 26201: if (__next_bkt != __bkt) 26201: _M_buckets[__next_bkt] = __prev_n; 26201: } 26201: 26201: __prev_n->_M_nxt = __n->_M_nxt; 26201: __n->_M_nxt = nullptr; 26201: --_M_element_count; 26201: return { __n, this->_M_node_allocator() }; 26201: } 26201: 26201: public: 26201: 26201: node_type 26201: extract(const_iterator __pos) 26201: { 26201: size_t __bkt = _M_bucket_index(__pos._M_cur); 26201: return _M_extract_node(__bkt, 26201: _M_get_previous_node(__bkt, __pos._M_cur)); 26201: } 26201: 26201: 26201: node_type 26201: extract(const _Key& __k) 26201: { 26201: node_type __nh; 26201: __hash_code __code = this->_M_hash_code(__k); 26201: std::size_t __bkt = _M_bucket_index(__k, __code); 26201: if (__node_base* __prev_node = _M_find_before_node(__bkt, __k, __code)) 26201: __nh = _M_extract_node(__bkt, __prev_node); 26201: return __nh; 26201: } 26201: 26201: 26201: template 26201: void 26201: _M_merge_unique(_Compatible_Hashtable& __src) noexcept 26201: { 26201: static_assert(is_same_v, "Node types are compatible"); 26201: ; 26201: 26201: auto __n_elt = __src.size(); 26201: for (auto __i = __src.begin(), __end = __src.end(); __i != __end;) 26201: { 26201: auto __pos = __i++; 26201: const key_type& __k = this->_M_extract()(*__pos); 26201: __hash_code __code = this->_M_hash_code(__k); 26201: size_type __bkt = _M_bucket_index(__k, __code); 26201: if (_M_find_node(__bkt, __k, __code) == nullptr) 26201: { 26201: auto __nh = __src.extract(__pos); 26201: _M_insert_unique_node(__k, __bkt, __code, __nh._M_ptr, 26201: __n_elt); 26201: __nh._M_ptr = nullptr; 26201: __n_elt = 1; 26201: } 26201: else if (__n_elt != 1) 26201: --__n_elt; 26201: } 26201: } 26201: 26201: 26201: template 26201: void 26201: _M_merge_multi(_Compatible_Hashtable& __src) noexcept 26201: { 26201: static_assert(is_same_v, "Node types are compatible"); 26201: ; 26201: 26201: this->reserve(size() + __src.size()); 26201: for (auto __i = __src.begin(), __end = __src.end(); __i != __end;) 26201: _M_reinsert_node_multi(cend(), __src.extract(__i++)); 26201: } 26201: 26201: 26201: private: 26201: 26201: void _M_rehash_aux(size_type __bkt_count, true_type); 26201: 26201: 26201: void _M_rehash_aux(size_type __bkt_count, false_type); 26201: 26201: 26201: 26201: void _M_rehash(size_type __bkt_count, const __rehash_state& __state); 26201: }; 26201: 26201: 26201: 26201: template 26201: auto 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _M_bucket_begin(size_type __bkt) const 26201: -> __node_type* 26201: { 26201: __node_base* __n = _M_buckets[__bkt]; 26201: return __n ? static_cast<__node_type*>(__n->_M_nxt) : nullptr; 26201: } 26201: 26201: template 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _Hashtable(size_type __bkt_count_hint, 26201: const _H1& __h1, const _H2& __h2, const _Hash& __h, 26201: const _Equal& __eq, const _ExtractKey& __exk, 26201: const allocator_type& __a) 26201: : _Hashtable(__h1, __h2, __h, __eq, __exk, __a) 26201: { 26201: auto __bkt_count = _M_rehash_policy._M_next_bkt(__bkt_count_hint); 26201: if (__bkt_count > _M_bucket_count) 26201: { 26201: _M_buckets = _M_allocate_buckets(__bkt_count); 26201: _M_bucket_count = __bkt_count; 26201: } 26201: } 26201: 26201: template 26201: template 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _Hashtable(_InputIterator __f, _InputIterator __l, 26201: size_type __bkt_count_hint, 26201: const _H1& __h1, const _H2& __h2, const _Hash& __h, 26201: const _Equal& __eq, const _ExtractKey& __exk, 26201: const allocator_type& __a) 26201: : _Hashtable(__h1, __h2, __h, __eq, __exk, __a) 26201: { 26201: auto __nb_elems = __detail::__distance_fw(__f, __l); 26201: auto __bkt_count = 26201: _M_rehash_policy._M_next_bkt( 26201: std::max(_M_rehash_policy._M_bkt_for_elements(__nb_elems), 26201: __bkt_count_hint)); 26201: 26201: if (__bkt_count > _M_bucket_count) 26201: { 26201: _M_buckets = _M_allocate_buckets(__bkt_count); 26201: _M_bucket_count = __bkt_count; 26201: } 26201: 26201: for (; __f != __l; ++__f) 26201: this->insert(*__f); 26201: } 26201: 26201: template 26201: auto 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: operator=(const _Hashtable& __ht) 26201: -> _Hashtable& 26201: { 26201: if (&__ht == this) 26201: return *this; 26201: 26201: if (__node_alloc_traits::_S_propagate_on_copy_assign()) 26201: { 26201: auto& __this_alloc = this->_M_node_allocator(); 26201: auto& __that_alloc = __ht._M_node_allocator(); 26201: if (!__node_alloc_traits::_S_always_equal() 26201: && __this_alloc != __that_alloc) 26201: { 26201: 26201: this->_M_deallocate_nodes(_M_begin()); 26201: _M_before_begin._M_nxt = nullptr; 26201: _M_deallocate_buckets(); 26201: _M_buckets = nullptr; 26201: std::__alloc_on_copy(__this_alloc, __that_alloc); 26201: __hashtable_base::operator=(__ht); 26201: _M_bucket_count = __ht._M_bucket_count; 26201: _M_element_count = __ht._M_element_count; 26201: _M_rehash_policy = __ht._M_rehash_policy; 26201: __alloc_node_gen_t __alloc_node_gen(*this); 26201: try 26201: { 26201: _M_assign(__ht, __alloc_node_gen); 26201: } 26201: catch(...) 26201: { 26201: 26201: 26201: _M_reset(); 26201: throw; 26201: } 26201: return *this; 26201: } 26201: std::__alloc_on_copy(__this_alloc, __that_alloc); 26201: } 26201: 26201: 26201: _M_assign_elements(__ht); 26201: return *this; 26201: } 26201: 26201: template 26201: template 26201: void 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _M_assign_elements(_Ht&& __ht) 26201: { 26201: __bucket_type* __former_buckets = nullptr; 26201: std::size_t __former_bucket_count = _M_bucket_count; 26201: const __rehash_state& __former_state = _M_rehash_policy._M_state(); 26201: 26201: if (_M_bucket_count != __ht._M_bucket_count) 26201: { 26201: __former_buckets = _M_buckets; 26201: _M_buckets = _M_allocate_buckets(__ht._M_bucket_count); 26201: _M_bucket_count = __ht._M_bucket_count; 26201: } 26201: else 26201: __builtin_memset(_M_buckets, 0, 26201: _M_bucket_count * sizeof(__bucket_type)); 26201: 26201: try 26201: { 26201: __hashtable_base::operator=(std::forward<_Ht>(__ht)); 26201: _M_element_count = __ht._M_element_count; 26201: _M_rehash_policy = __ht._M_rehash_policy; 26201: __reuse_or_alloc_node_gen_t __roan(_M_begin(), *this); 26201: _M_before_begin._M_nxt = nullptr; 26201: _M_assign(std::forward<_Ht>(__ht), __roan); 26201: if (__former_buckets) 26201: _M_deallocate_buckets(__former_buckets, __former_bucket_count); 26201: } 26201: catch(...) 26201: { 26201: if (__former_buckets) 26201: { 26201: 26201: _M_deallocate_buckets(); 26201: _M_rehash_policy._M_reset(__former_state); 26201: _M_buckets = __former_buckets; 26201: _M_bucket_count = __former_bucket_count; 26201: } 26201: __builtin_memset(_M_buckets, 0, 26201: _M_bucket_count * sizeof(__bucket_type)); 26201: throw; 26201: } 26201: } 26201: 26201: template 26201: template 26201: void 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _M_assign(_Ht&& __ht, const _NodeGenerator& __node_gen) 26201: { 26201: __bucket_type* __buckets = nullptr; 26201: if (!_M_buckets) 26201: _M_buckets = __buckets = _M_allocate_buckets(_M_bucket_count); 26201: 26201: try 26201: { 26201: if (!__ht._M_before_begin._M_nxt) 26201: return; 26201: 26201: 26201: 26201: __node_type* __ht_n = __ht._M_begin(); 26201: __node_type* __this_n 26201: = __node_gen(__fwd_value_for<_Ht>(__ht_n->_M_v())); 26201: this->_M_copy_code(__this_n, __ht_n); 26201: _M_before_begin._M_nxt = __this_n; 26201: _M_buckets[_M_bucket_index(__this_n)] = &_M_before_begin; 26201: 26201: 26201: __node_base* __prev_n = __this_n; 26201: for (__ht_n = __ht_n->_M_next(); __ht_n; __ht_n = __ht_n->_M_next()) 26201: { 26201: __this_n = __node_gen(__fwd_value_for<_Ht>(__ht_n->_M_v())); 26201: __prev_n->_M_nxt = __this_n; 26201: this->_M_copy_code(__this_n, __ht_n); 26201: size_type __bkt = _M_bucket_index(__this_n); 26201: if (!_M_buckets[__bkt]) 26201: _M_buckets[__bkt] = __prev_n; 26201: __prev_n = __this_n; 26201: } 26201: } 26201: catch(...) 26201: { 26201: clear(); 26201: if (__buckets) 26201: _M_deallocate_buckets(); 26201: throw; 26201: } 26201: } 26201: 26201: template 26201: void 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _M_reset() noexcept 26201: { 26201: _M_rehash_policy._M_reset(); 26201: _M_bucket_count = 1; 26201: _M_single_bucket = nullptr; 26201: _M_buckets = &_M_single_bucket; 26201: _M_before_begin._M_nxt = nullptr; 26201: _M_element_count = 0; 26201: } 26201: 26201: template 26201: void 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _M_move_assign(_Hashtable&& __ht, true_type) 26201: { 26201: this->_M_deallocate_nodes(_M_begin()); 26201: _M_deallocate_buckets(); 26201: __hashtable_base::operator=(std::move(__ht)); 26201: _M_rehash_policy = __ht._M_rehash_policy; 26201: if (!__ht._M_uses_single_bucket()) 26201: _M_buckets = __ht._M_buckets; 26201: else 26201: { 26201: _M_buckets = &_M_single_bucket; 26201: _M_single_bucket = __ht._M_single_bucket; 26201: } 26201: _M_bucket_count = __ht._M_bucket_count; 26201: _M_before_begin._M_nxt = __ht._M_before_begin._M_nxt; 26201: _M_element_count = __ht._M_element_count; 26201: std::__alloc_on_move(this->_M_node_allocator(), __ht._M_node_allocator()); 26201: 26201: 26201: 26201: if (_M_begin()) 26201: _M_buckets[_M_bucket_index(_M_begin())] = &_M_before_begin; 26201: __ht._M_reset(); 26201: } 26201: 26201: template 26201: void 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _M_move_assign(_Hashtable&& __ht, false_type) 26201: { 26201: if (__ht._M_node_allocator() == this->_M_node_allocator()) 26201: _M_move_assign(std::move(__ht), true_type()); 26201: else 26201: { 26201: 26201: _M_assign_elements(std::move(__ht)); 26201: __ht.clear(); 26201: } 26201: } 26201: 26201: template 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _Hashtable(const _Hashtable& __ht) 26201: : __hashtable_base(__ht), 26201: __map_base(__ht), 26201: __rehash_base(__ht), 26201: __hashtable_alloc( 26201: __node_alloc_traits::_S_select_on_copy(__ht._M_node_allocator())), 26201: _M_buckets(nullptr), 26201: _M_bucket_count(__ht._M_bucket_count), 26201: _M_element_count(__ht._M_element_count), 26201: _M_rehash_policy(__ht._M_rehash_policy) 26201: { 26201: __alloc_node_gen_t __alloc_node_gen(*this); 26201: _M_assign(__ht, __alloc_node_gen); 26201: } 26201: 26201: template 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _Hashtable(_Hashtable&& __ht, __node_alloc_type&& __a, 26201: true_type ) 26201: noexcept(_S_nothrow_move()) 26201: : __hashtable_base(__ht), 26201: __map_base(__ht), 26201: __rehash_base(__ht), 26201: __hashtable_alloc(std::move(__a)), 26201: _M_buckets(__ht._M_buckets), 26201: _M_bucket_count(__ht._M_bucket_count), 26201: _M_before_begin(__ht._M_before_begin._M_nxt), 26201: _M_element_count(__ht._M_element_count), 26201: _M_rehash_policy(__ht._M_rehash_policy) 26201: { 26201: 26201: if (__ht._M_uses_single_bucket()) 26201: { 26201: _M_buckets = &_M_single_bucket; 26201: _M_single_bucket = __ht._M_single_bucket; 26201: } 26201: 26201: 26201: 26201: if (_M_begin()) 26201: _M_buckets[_M_bucket_index(_M_begin())] = &_M_before_begin; 26201: 26201: __ht._M_reset(); 26201: } 26201: 26201: template 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _Hashtable(const _Hashtable& __ht, const allocator_type& __a) 26201: : __hashtable_base(__ht), 26201: __map_base(__ht), 26201: __rehash_base(__ht), 26201: __hashtable_alloc(__node_alloc_type(__a)), 26201: _M_buckets(), 26201: _M_bucket_count(__ht._M_bucket_count), 26201: _M_element_count(__ht._M_element_count), 26201: _M_rehash_policy(__ht._M_rehash_policy) 26201: { 26201: __alloc_node_gen_t __alloc_node_gen(*this); 26201: _M_assign(__ht, __alloc_node_gen); 26201: } 26201: 26201: template 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _Hashtable(_Hashtable&& __ht, __node_alloc_type&& __a, 26201: false_type ) 26201: : __hashtable_base(__ht), 26201: __map_base(__ht), 26201: __rehash_base(__ht), 26201: __hashtable_alloc(std::move(__a)), 26201: _M_buckets(nullptr), 26201: _M_bucket_count(__ht._M_bucket_count), 26201: _M_element_count(__ht._M_element_count), 26201: _M_rehash_policy(__ht._M_rehash_policy) 26201: { 26201: if (__ht._M_node_allocator() == this->_M_node_allocator()) 26201: { 26201: if (__ht._M_uses_single_bucket()) 26201: { 26201: _M_buckets = &_M_single_bucket; 26201: _M_single_bucket = __ht._M_single_bucket; 26201: } 26201: else 26201: _M_buckets = __ht._M_buckets; 26201: 26201: _M_before_begin._M_nxt = __ht._M_before_begin._M_nxt; 26201: 26201: 26201: if (_M_begin()) 26201: _M_buckets[_M_bucket_index(_M_begin())] = &_M_before_begin; 26201: __ht._M_reset(); 26201: } 26201: else 26201: { 26201: __alloc_node_gen_t __alloc_gen(*this); 26201: 26201: using _Fwd_Ht = typename 26201: conditional<__move_if_noexcept_cond::value, 26201: const _Hashtable&, _Hashtable&&>::type; 26201: _M_assign(std::forward<_Fwd_Ht>(__ht), __alloc_gen); 26201: __ht.clear(); 26201: } 26201: } 26201: 26201: template 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: ~_Hashtable() noexcept 26201: { 26201: clear(); 26201: _M_deallocate_buckets(); 26201: } 26201: 26201: template 26201: void 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: swap(_Hashtable& __x) 26201: noexcept(__and_<__is_nothrow_swappable<_H1>, 26201: __is_nothrow_swappable<_Equal>>::value) 26201: { 26201: 26201: 26201: 26201: this->_M_swap(__x); 26201: 26201: std::__alloc_on_swap(this->_M_node_allocator(), __x._M_node_allocator()); 26201: std::swap(_M_rehash_policy, __x._M_rehash_policy); 26201: 26201: 26201: if (this->_M_uses_single_bucket()) 26201: { 26201: if (!__x._M_uses_single_bucket()) 26201: { 26201: _M_buckets = __x._M_buckets; 26201: __x._M_buckets = &__x._M_single_bucket; 26201: } 26201: } 26201: else if (__x._M_uses_single_bucket()) 26201: { 26201: __x._M_buckets = _M_buckets; 26201: _M_buckets = &_M_single_bucket; 26201: } 26201: else 26201: std::swap(_M_buckets, __x._M_buckets); 26201: 26201: std::swap(_M_bucket_count, __x._M_bucket_count); 26201: std::swap(_M_before_begin._M_nxt, __x._M_before_begin._M_nxt); 26201: std::swap(_M_element_count, __x._M_element_count); 26201: std::swap(_M_single_bucket, __x._M_single_bucket); 26201: 26201: 26201: 26201: if (_M_begin()) 26201: _M_buckets[_M_bucket_index(_M_begin())] = &_M_before_begin; 26201: 26201: if (__x._M_begin()) 26201: __x._M_buckets[__x._M_bucket_index(__x._M_begin())] 26201: = &__x._M_before_begin; 26201: } 26201: 26201: template 26201: auto 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: find(const key_type& __k) 26201: -> iterator 26201: { 26201: __hash_code __code = this->_M_hash_code(__k); 26201: std::size_t __bkt = _M_bucket_index(__k, __code); 26201: __node_type* __p = _M_find_node(__bkt, __k, __code); 26201: return __p ? iterator(__p) : end(); 26201: } 26201: 26201: template 26201: auto 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: find(const key_type& __k) const 26201: -> const_iterator 26201: { 26201: __hash_code __code = this->_M_hash_code(__k); 26201: std::size_t __bkt = _M_bucket_index(__k, __code); 26201: __node_type* __p = _M_find_node(__bkt, __k, __code); 26201: return __p ? const_iterator(__p) : end(); 26201: } 26201: 26201: template 26201: auto 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: count(const key_type& __k) const 26201: -> size_type 26201: { 26201: __hash_code __code = this->_M_hash_code(__k); 26201: std::size_t __bkt = _M_bucket_index(__k, __code); 26201: __node_type* __p = _M_bucket_begin(__bkt); 26201: if (!__p) 26201: return 0; 26201: 26201: std::size_t __result = 0; 26201: for (;; __p = __p->_M_next()) 26201: { 26201: if (this->_M_equals(__k, __code, __p)) 26201: ++__result; 26201: else if (__result) 26201: 26201: 26201: 26201: break; 26201: if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __bkt) 26201: break; 26201: } 26201: return __result; 26201: } 26201: 26201: template 26201: auto 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: equal_range(const key_type& __k) 26201: -> pair 26201: { 26201: __hash_code __code = this->_M_hash_code(__k); 26201: std::size_t __bkt = _M_bucket_index(__k, __code); 26201: __node_type* __p = _M_find_node(__bkt, __k, __code); 26201: 26201: if (__p) 26201: { 26201: __node_type* __p1 = __p->_M_next(); 26201: while (__p1 && _M_bucket_index(__p1) == __bkt 26201: && this->_M_equals(__k, __code, __p1)) 26201: __p1 = __p1->_M_next(); 26201: 26201: return std::make_pair(iterator(__p), iterator(__p1)); 26201: } 26201: else 26201: return std::make_pair(end(), end()); 26201: } 26201: 26201: template 26201: auto 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: equal_range(const key_type& __k) const 26201: -> pair 26201: { 26201: __hash_code __code = this->_M_hash_code(__k); 26201: std::size_t __bkt = _M_bucket_index(__k, __code); 26201: __node_type* __p = _M_find_node(__bkt, __k, __code); 26201: 26201: if (__p) 26201: { 26201: __node_type* __p1 = __p->_M_next(); 26201: while (__p1 && _M_bucket_index(__p1) == __bkt 26201: && this->_M_equals(__k, __code, __p1)) 26201: __p1 = __p1->_M_next(); 26201: 26201: return std::make_pair(const_iterator(__p), const_iterator(__p1)); 26201: } 26201: else 26201: return std::make_pair(end(), end()); 26201: } 26201: 26201: 26201: 26201: template 26201: auto 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _M_find_before_node(size_type __bkt, const key_type& __k, 26201: __hash_code __code) const 26201: -> __node_base* 26201: { 26201: __node_base* __prev_p = _M_buckets[__bkt]; 26201: if (!__prev_p) 26201: return nullptr; 26201: 26201: for (__node_type* __p = static_cast<__node_type*>(__prev_p->_M_nxt);; 26201: __p = __p->_M_next()) 26201: { 26201: if (this->_M_equals(__k, __code, __p)) 26201: return __prev_p; 26201: 26201: if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __bkt) 26201: break; 26201: __prev_p = __p; 26201: } 26201: return nullptr; 26201: } 26201: 26201: template 26201: void 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _M_insert_bucket_begin(size_type __bkt, __node_type* __node) 26201: { 26201: if (_M_buckets[__bkt]) 26201: { 26201: 26201: 26201: __node->_M_nxt = _M_buckets[__bkt]->_M_nxt; 26201: _M_buckets[__bkt]->_M_nxt = __node; 26201: } 26201: else 26201: { 26201: 26201: 26201: 26201: __node->_M_nxt = _M_before_begin._M_nxt; 26201: _M_before_begin._M_nxt = __node; 26201: if (__node->_M_nxt) 26201: 26201: 26201: _M_buckets[_M_bucket_index(__node->_M_next())] = __node; 26201: _M_buckets[__bkt] = &_M_before_begin; 26201: } 26201: } 26201: 26201: template 26201: void 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _M_remove_bucket_begin(size_type __bkt, __node_type* __next, 26201: size_type __next_bkt) 26201: { 26201: if (!__next || __next_bkt != __bkt) 26201: { 26201: 26201: 26201: if (__next) 26201: _M_buckets[__next_bkt] = _M_buckets[__bkt]; 26201: 26201: 26201: if (&_M_before_begin == _M_buckets[__bkt]) 26201: _M_before_begin._M_nxt = __next; 26201: _M_buckets[__bkt] = nullptr; 26201: } 26201: } 26201: 26201: template 26201: auto 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _M_get_previous_node(size_type __bkt, __node_base* __n) 26201: -> __node_base* 26201: { 26201: __node_base* __prev_n = _M_buckets[__bkt]; 26201: while (__prev_n->_M_nxt != __n) 26201: __prev_n = __prev_n->_M_nxt; 26201: return __prev_n; 26201: } 26201: 26201: template 26201: template 26201: auto 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _M_emplace(true_type, _Args&&... __args) 26201: -> pair 26201: { 26201: 26201: _Scoped_node __node { this, std::forward<_Args>(__args)... }; 26201: const key_type& __k = this->_M_extract()(__node._M_node->_M_v()); 26201: __hash_code __code = this->_M_hash_code(__k); 26201: size_type __bkt = _M_bucket_index(__k, __code); 26201: if (__node_type* __p = _M_find_node(__bkt, __k, __code)) 26201: 26201: return std::make_pair(iterator(__p), false); 26201: 26201: 26201: auto __pos = _M_insert_unique_node(__k, __bkt, __code, __node._M_node); 26201: __node._M_node = nullptr; 26201: return { __pos, true }; 26201: } 26201: 26201: template 26201: template 26201: auto 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _M_emplace(const_iterator __hint, false_type, _Args&&... __args) 26201: -> iterator 26201: { 26201: 26201: _Scoped_node __node { this, std::forward<_Args>(__args)... }; 26201: const key_type& __k = this->_M_extract()(__node._M_node->_M_v()); 26201: 26201: __hash_code __code = this->_M_hash_code(__k); 26201: auto __pos 26201: = _M_insert_multi_node(__hint._M_cur, __k, __code, __node._M_node); 26201: __node._M_node = nullptr; 26201: return __pos; 26201: } 26201: 26201: template 26201: auto 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _M_insert_unique_node(const key_type& __k, size_type __bkt, 26201: __hash_code __code, __node_type* __node, 26201: size_type __n_elt) 26201: -> iterator 26201: { 26201: const __rehash_state& __saved_state = _M_rehash_policy._M_state(); 26201: std::pair __do_rehash 26201: = _M_rehash_policy._M_need_rehash(_M_bucket_count, _M_element_count, 26201: __n_elt); 26201: 26201: if (__do_rehash.first) 26201: { 26201: _M_rehash(__do_rehash.second, __saved_state); 26201: __bkt = _M_bucket_index(__k, __code); 26201: } 26201: 26201: this->_M_store_code(__node, __code); 26201: 26201: 26201: _M_insert_bucket_begin(__bkt, __node); 26201: ++_M_element_count; 26201: return iterator(__node); 26201: } 26201: 26201: template 26201: auto 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _M_insert_multi_node(__node_type* __hint, const key_type& __k, 26201: __hash_code __code, __node_type* __node) 26201: -> iterator 26201: { 26201: const __rehash_state& __saved_state = _M_rehash_policy._M_state(); 26201: std::pair __do_rehash 26201: = _M_rehash_policy._M_need_rehash(_M_bucket_count, _M_element_count, 1); 26201: 26201: if (__do_rehash.first) 26201: _M_rehash(__do_rehash.second, __saved_state); 26201: 26201: this->_M_store_code(__node, __code); 26201: size_type __bkt = _M_bucket_index(__k, __code); 26201: 26201: 26201: 26201: __node_base* __prev 26201: = __builtin_expect(__hint != nullptr, false) 26201: && this->_M_equals(__k, __code, __hint) 26201: ? __hint 26201: : _M_find_before_node(__bkt, __k, __code); 26201: if (__prev) 26201: { 26201: 26201: __node->_M_nxt = __prev->_M_nxt; 26201: __prev->_M_nxt = __node; 26201: if (__builtin_expect(__prev == __hint, false)) 26201: 26201: 26201: if (__node->_M_nxt 26201: && !this->_M_equals(__k, __code, __node->_M_next())) 26201: { 26201: size_type __next_bkt = _M_bucket_index(__node->_M_next()); 26201: if (__next_bkt != __bkt) 26201: _M_buckets[__next_bkt] = __node; 26201: } 26201: } 26201: else 26201: 26201: 26201: 26201: _M_insert_bucket_begin(__bkt, __node); 26201: ++_M_element_count; 26201: return iterator(__node); 26201: } 26201: 26201: 26201: template 26201: template 26201: auto 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _M_insert(_Arg&& __v, const _NodeGenerator& __node_gen, true_type, 26201: size_type __n_elt) 26201: -> pair 26201: { 26201: const key_type& __k = this->_M_extract()(__v); 26201: __hash_code __code = this->_M_hash_code(__k); 26201: size_type __bkt = _M_bucket_index(__k, __code); 26201: 26201: if (__node_type* __node = _M_find_node(__bkt, __k, __code)) 26201: return { iterator(__node), false }; 26201: 26201: _Scoped_node __node{ __node_gen(std::forward<_Arg>(__v)), this }; 26201: auto __pos 26201: = _M_insert_unique_node(__k, __bkt, __code, __node._M_node, __n_elt); 26201: __node._M_node = nullptr; 26201: return { __pos, true }; 26201: } 26201: 26201: 26201: template 26201: template 26201: auto 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _M_insert(const_iterator __hint, _Arg&& __v, 26201: const _NodeGenerator& __node_gen, false_type) 26201: -> iterator 26201: { 26201: 26201: 26201: __hash_code __code = this->_M_hash_code(this->_M_extract()(__v)); 26201: 26201: 26201: _Scoped_node __node{ __node_gen(std::forward<_Arg>(__v)), this }; 26201: const key_type& __k = this->_M_extract()(__node._M_node->_M_v()); 26201: auto __pos 26201: = _M_insert_multi_node(__hint._M_cur, __k, __code, __node._M_node); 26201: __node._M_node = nullptr; 26201: return __pos; 26201: } 26201: 26201: template 26201: auto 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: erase(const_iterator __it) 26201: -> iterator 26201: { 26201: __node_type* __n = __it._M_cur; 26201: std::size_t __bkt = _M_bucket_index(__n); 26201: 26201: 26201: 26201: 26201: __node_base* __prev_n = _M_get_previous_node(__bkt, __n); 26201: return _M_erase(__bkt, __prev_n, __n); 26201: } 26201: 26201: template 26201: auto 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _M_erase(size_type __bkt, __node_base* __prev_n, __node_type* __n) 26201: -> iterator 26201: { 26201: if (__prev_n == _M_buckets[__bkt]) 26201: _M_remove_bucket_begin(__bkt, __n->_M_next(), 26201: __n->_M_nxt ? _M_bucket_index(__n->_M_next()) : 0); 26201: else if (__n->_M_nxt) 26201: { 26201: size_type __next_bkt = _M_bucket_index(__n->_M_next()); 26201: if (__next_bkt != __bkt) 26201: _M_buckets[__next_bkt] = __prev_n; 26201: } 26201: 26201: __prev_n->_M_nxt = __n->_M_nxt; 26201: iterator __result(__n->_M_next()); 26201: this->_M_deallocate_node(__n); 26201: --_M_element_count; 26201: 26201: return __result; 26201: } 26201: 26201: template 26201: auto 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _M_erase(true_type, const key_type& __k) 26201: -> size_type 26201: { 26201: __hash_code __code = this->_M_hash_code(__k); 26201: std::size_t __bkt = _M_bucket_index(__k, __code); 26201: 26201: 26201: __node_base* __prev_n = _M_find_before_node(__bkt, __k, __code); 26201: if (!__prev_n) 26201: return 0; 26201: 26201: 26201: __node_type* __n = static_cast<__node_type*>(__prev_n->_M_nxt); 26201: _M_erase(__bkt, __prev_n, __n); 26201: return 1; 26201: } 26201: 26201: template 26201: auto 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _M_erase(false_type, const key_type& __k) 26201: -> size_type 26201: { 26201: __hash_code __code = this->_M_hash_code(__k); 26201: std::size_t __bkt = _M_bucket_index(__k, __code); 26201: 26201: 26201: __node_base* __prev_n = _M_find_before_node(__bkt, __k, __code); 26201: if (!__prev_n) 26201: return 0; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: __node_type* __n = static_cast<__node_type*>(__prev_n->_M_nxt); 26201: __node_type* __n_last = __n; 26201: std::size_t __n_last_bkt = __bkt; 26201: do 26201: { 26201: __n_last = __n_last->_M_next(); 26201: if (!__n_last) 26201: break; 26201: __n_last_bkt = _M_bucket_index(__n_last); 26201: } 26201: while (__n_last_bkt == __bkt && this->_M_equals(__k, __code, __n_last)); 26201: 26201: 26201: size_type __result = 0; 26201: do 26201: { 26201: __node_type* __p = __n->_M_next(); 26201: this->_M_deallocate_node(__n); 26201: __n = __p; 26201: ++__result; 26201: --_M_element_count; 26201: } 26201: while (__n != __n_last); 26201: 26201: if (__prev_n == _M_buckets[__bkt]) 26201: _M_remove_bucket_begin(__bkt, __n_last, __n_last_bkt); 26201: else if (__n_last && __n_last_bkt != __bkt) 26201: _M_buckets[__n_last_bkt] = __prev_n; 26201: __prev_n->_M_nxt = __n_last; 26201: return __result; 26201: } 26201: 26201: template 26201: auto 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: erase(const_iterator __first, const_iterator __last) 26201: -> iterator 26201: { 26201: __node_type* __n = __first._M_cur; 26201: __node_type* __last_n = __last._M_cur; 26201: if (__n == __last_n) 26201: return iterator(__n); 26201: 26201: std::size_t __bkt = _M_bucket_index(__n); 26201: 26201: __node_base* __prev_n = _M_get_previous_node(__bkt, __n); 26201: bool __is_bucket_begin = __n == _M_bucket_begin(__bkt); 26201: std::size_t __n_bkt = __bkt; 26201: for (;;) 26201: { 26201: do 26201: { 26201: __node_type* __tmp = __n; 26201: __n = __n->_M_next(); 26201: this->_M_deallocate_node(__tmp); 26201: --_M_element_count; 26201: if (!__n) 26201: break; 26201: __n_bkt = _M_bucket_index(__n); 26201: } 26201: while (__n != __last_n && __n_bkt == __bkt); 26201: if (__is_bucket_begin) 26201: _M_remove_bucket_begin(__bkt, __n, __n_bkt); 26201: if (__n == __last_n) 26201: break; 26201: __is_bucket_begin = true; 26201: __bkt = __n_bkt; 26201: } 26201: 26201: if (__n && (__n_bkt != __bkt || __is_bucket_begin)) 26201: _M_buckets[__n_bkt] = __prev_n; 26201: __prev_n->_M_nxt = __n; 26201: return iterator(__n); 26201: } 26201: 26201: template 26201: void 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: clear() noexcept 26201: { 26201: this->_M_deallocate_nodes(_M_begin()); 26201: __builtin_memset(_M_buckets, 0, _M_bucket_count * sizeof(__bucket_type)); 26201: _M_element_count = 0; 26201: _M_before_begin._M_nxt = nullptr; 26201: } 26201: 26201: template 26201: void 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: rehash(size_type __bkt_count) 26201: { 26201: const __rehash_state& __saved_state = _M_rehash_policy._M_state(); 26201: __bkt_count 26201: = std::max(_M_rehash_policy._M_bkt_for_elements(_M_element_count + 1), 26201: __bkt_count); 26201: __bkt_count = _M_rehash_policy._M_next_bkt(__bkt_count); 26201: 26201: if (__bkt_count != _M_bucket_count) 26201: _M_rehash(__bkt_count, __saved_state); 26201: else 26201: 26201: 26201: _M_rehash_policy._M_reset(__saved_state); 26201: } 26201: 26201: template 26201: void 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _M_rehash(size_type __bkt_count, const __rehash_state& __state) 26201: { 26201: try 26201: { 26201: _M_rehash_aux(__bkt_count, __unique_keys()); 26201: } 26201: catch(...) 26201: { 26201: 26201: 26201: _M_rehash_policy._M_reset(__state); 26201: throw; 26201: } 26201: } 26201: 26201: 26201: template 26201: void 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _M_rehash_aux(size_type __bkt_count, true_type) 26201: { 26201: __bucket_type* __new_buckets = _M_allocate_buckets(__bkt_count); 26201: __node_type* __p = _M_begin(); 26201: _M_before_begin._M_nxt = nullptr; 26201: std::size_t __bbegin_bkt = 0; 26201: while (__p) 26201: { 26201: __node_type* __next = __p->_M_next(); 26201: std::size_t __bkt 26201: = __hash_code_base::_M_bucket_index(__p, __bkt_count); 26201: if (!__new_buckets[__bkt]) 26201: { 26201: __p->_M_nxt = _M_before_begin._M_nxt; 26201: _M_before_begin._M_nxt = __p; 26201: __new_buckets[__bkt] = &_M_before_begin; 26201: if (__p->_M_nxt) 26201: __new_buckets[__bbegin_bkt] = __p; 26201: __bbegin_bkt = __bkt; 26201: } 26201: else 26201: { 26201: __p->_M_nxt = __new_buckets[__bkt]->_M_nxt; 26201: __new_buckets[__bkt]->_M_nxt = __p; 26201: } 26201: __p = __next; 26201: } 26201: 26201: _M_deallocate_buckets(); 26201: _M_bucket_count = __bkt_count; 26201: _M_buckets = __new_buckets; 26201: } 26201: 26201: 26201: 26201: template 26201: void 26201: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 26201: _H1, _H2, _Hash, _RehashPolicy, _Traits>:: 26201: _M_rehash_aux(size_type __bkt_count, false_type) 26201: { 26201: __bucket_type* __new_buckets = _M_allocate_buckets(__bkt_count); 26201: 26201: __node_type* __p = _M_begin(); 26201: _M_before_begin._M_nxt = nullptr; 26201: std::size_t __bbegin_bkt = 0; 26201: std::size_t __prev_bkt = 0; 26201: __node_type* __prev_p = nullptr; 26201: bool __check_bucket = false; 26201: 26201: while (__p) 26201: { 26201: __node_type* __next = __p->_M_next(); 26201: std::size_t __bkt 26201: = __hash_code_base::_M_bucket_index(__p, __bkt_count); 26201: 26201: if (__prev_p && __prev_bkt == __bkt) 26201: { 26201: 26201: 26201: 26201: __p->_M_nxt = __prev_p->_M_nxt; 26201: __prev_p->_M_nxt = __p; 26201: 26201: 26201: 26201: 26201: 26201: 26201: __check_bucket = true; 26201: } 26201: else 26201: { 26201: if (__check_bucket) 26201: { 26201: 26201: 26201: if (__prev_p->_M_nxt) 26201: { 26201: std::size_t __next_bkt 26201: = __hash_code_base::_M_bucket_index(__prev_p->_M_next(), 26201: __bkt_count); 26201: if (__next_bkt != __prev_bkt) 26201: __new_buckets[__next_bkt] = __prev_p; 26201: } 26201: __check_bucket = false; 26201: } 26201: 26201: if (!__new_buckets[__bkt]) 26201: { 26201: __p->_M_nxt = _M_before_begin._M_nxt; 26201: _M_before_begin._M_nxt = __p; 26201: __new_buckets[__bkt] = &_M_before_begin; 26201: if (__p->_M_nxt) 26201: __new_buckets[__bbegin_bkt] = __p; 26201: __bbegin_bkt = __bkt; 26201: } 26201: else 26201: { 26201: __p->_M_nxt = __new_buckets[__bkt]->_M_nxt; 26201: __new_buckets[__bkt]->_M_nxt = __p; 26201: } 26201: } 26201: __prev_p = __p; 26201: __prev_bkt = __bkt; 26201: __p = __next; 26201: } 26201: 26201: if (__check_bucket && __prev_p->_M_nxt) 26201: { 26201: std::size_t __next_bkt 26201: = __hash_code_base::_M_bucket_index(__prev_p->_M_next(), 26201: __bkt_count); 26201: if (__next_bkt != __prev_bkt) 26201: __new_buckets[__next_bkt] = __prev_p; 26201: } 26201: 26201: _M_deallocate_buckets(); 26201: _M_bucket_count = __bkt_count; 26201: _M_buckets = __new_buckets; 26201: } 26201: 26201: 26201: template class _Hash_merge_helper { }; 26201: 26201: 26201: 26201: 26201: template 26201: using _RequireNotAllocatorOrIntegral 26201: = __enable_if_t, __is_allocator<_Hash>>::value>; 26201: 26201: 26201: 26201: } 26201: # 47 "/usr/x86_64-linux-gnu/include/c++/10/unordered_map" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: #define _UNORDERED_MAP_H 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: template 26201: using __umap_traits = __detail::_Hashtable_traits<_Cache, false, true>; 26201: 26201: template, 26201: typename _Pred = std::equal_to<_Key>, 26201: typename _Alloc = std::allocator >, 26201: typename _Tr = __umap_traits<__cache_default<_Key, _Hash>::value>> 26201: using __umap_hashtable = _Hashtable<_Key, std::pair, 26201: _Alloc, __detail::_Select1st, 26201: _Pred, _Hash, 26201: __detail::_Mod_range_hashing, 26201: __detail::_Default_ranged_hash, 26201: __detail::_Prime_rehash_policy, _Tr>; 26201: 26201: 26201: template 26201: using __ummap_traits = __detail::_Hashtable_traits<_Cache, false, false>; 26201: 26201: template, 26201: typename _Pred = std::equal_to<_Key>, 26201: typename _Alloc = std::allocator >, 26201: typename _Tr = __ummap_traits<__cache_default<_Key, _Hash>::value>> 26201: using __ummap_hashtable = _Hashtable<_Key, std::pair, 26201: _Alloc, __detail::_Select1st, 26201: _Pred, _Hash, 26201: __detail::_Mod_range_hashing, 26201: __detail::_Default_ranged_hash, 26201: __detail::_Prime_rehash_policy, _Tr>; 26201: 26201: template 26201: class unordered_multimap; 26201: # 98 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: template, 26201: typename _Pred = equal_to<_Key>, 26201: typename _Alloc = allocator>> 26201: class unordered_map 26201: { 26201: typedef __umap_hashtable<_Key, _Tp, _Hash, _Pred, _Alloc> _Hashtable; 26201: _Hashtable _M_h; 26201: 26201: public: 26201: 26201: 26201: 26201: typedef typename _Hashtable::key_type key_type; 26201: typedef typename _Hashtable::value_type value_type; 26201: typedef typename _Hashtable::mapped_type mapped_type; 26201: typedef typename _Hashtable::hasher hasher; 26201: typedef typename _Hashtable::key_equal key_equal; 26201: typedef typename _Hashtable::allocator_type allocator_type; 26201: 26201: 26201: 26201: 26201: typedef typename _Hashtable::pointer pointer; 26201: typedef typename _Hashtable::const_pointer const_pointer; 26201: typedef typename _Hashtable::reference reference; 26201: typedef typename _Hashtable::const_reference const_reference; 26201: typedef typename _Hashtable::iterator iterator; 26201: typedef typename _Hashtable::const_iterator const_iterator; 26201: typedef typename _Hashtable::local_iterator local_iterator; 26201: typedef typename _Hashtable::const_local_iterator const_local_iterator; 26201: typedef typename _Hashtable::size_type size_type; 26201: typedef typename _Hashtable::difference_type difference_type; 26201: 26201: 26201: 26201: using node_type = typename _Hashtable::node_type; 26201: using insert_return_type = typename _Hashtable::insert_return_type; 26201: 26201: 26201: 26201: 26201: 26201: unordered_map() = default; 26201: # 150 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: explicit 26201: unordered_map(size_type __n, 26201: const hasher& __hf = hasher(), 26201: const key_equal& __eql = key_equal(), 26201: const allocator_type& __a = allocator_type()) 26201: : _M_h(__n, __hf, __eql, __a) 26201: { } 26201: # 171 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: template 26201: unordered_map(_InputIterator __first, _InputIterator __last, 26201: size_type __n = 0, 26201: const hasher& __hf = hasher(), 26201: const key_equal& __eql = key_equal(), 26201: const allocator_type& __a = allocator_type()) 26201: : _M_h(__first, __last, __n, __hf, __eql, __a) 26201: { } 26201: 26201: 26201: unordered_map(const unordered_map&) = default; 26201: 26201: 26201: unordered_map(unordered_map&&) = default; 26201: 26201: 26201: 26201: 26201: 26201: explicit 26201: unordered_map(const allocator_type& __a) 26201: : _M_h(__a) 26201: { } 26201: 26201: 26201: 26201: 26201: 26201: 26201: unordered_map(const unordered_map& __umap, 26201: const allocator_type& __a) 26201: : _M_h(__umap._M_h, __a) 26201: { } 26201: 26201: 26201: 26201: 26201: 26201: 26201: unordered_map(unordered_map&& __umap, 26201: const allocator_type& __a) 26201: noexcept( noexcept(_Hashtable(std::move(__umap._M_h), __a)) ) 26201: : _M_h(std::move(__umap._M_h), __a) 26201: { } 26201: # 227 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: unordered_map(initializer_list __l, 26201: size_type __n = 0, 26201: const hasher& __hf = hasher(), 26201: const key_equal& __eql = key_equal(), 26201: const allocator_type& __a = allocator_type()) 26201: : _M_h(__l, __n, __hf, __eql, __a) 26201: { } 26201: 26201: unordered_map(size_type __n, const allocator_type& __a) 26201: : unordered_map(__n, hasher(), key_equal(), __a) 26201: { } 26201: 26201: unordered_map(size_type __n, const hasher& __hf, 26201: const allocator_type& __a) 26201: : unordered_map(__n, __hf, key_equal(), __a) 26201: { } 26201: 26201: template 26201: unordered_map(_InputIterator __first, _InputIterator __last, 26201: size_type __n, 26201: const allocator_type& __a) 26201: : unordered_map(__first, __last, __n, hasher(), key_equal(), __a) 26201: { } 26201: 26201: template 26201: unordered_map(_InputIterator __first, _InputIterator __last, 26201: size_type __n, const hasher& __hf, 26201: const allocator_type& __a) 26201: : unordered_map(__first, __last, __n, __hf, key_equal(), __a) 26201: { } 26201: 26201: unordered_map(initializer_list __l, 26201: size_type __n, 26201: const allocator_type& __a) 26201: : unordered_map(__l, __n, hasher(), key_equal(), __a) 26201: { } 26201: 26201: unordered_map(initializer_list __l, 26201: size_type __n, const hasher& __hf, 26201: const allocator_type& __a) 26201: : unordered_map(__l, __n, __hf, key_equal(), __a) 26201: { } 26201: 26201: 26201: unordered_map& 26201: operator=(const unordered_map&) = default; 26201: 26201: 26201: unordered_map& 26201: operator=(unordered_map&&) = default; 26201: # 289 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: unordered_map& 26201: operator=(initializer_list __l) 26201: { 26201: _M_h = __l; 26201: return *this; 26201: } 26201: 26201: 26201: allocator_type 26201: get_allocator() const noexcept 26201: { return _M_h.get_allocator(); } 26201: 26201: 26201: 26201: 26201: [[__nodiscard__]] bool 26201: empty() const noexcept 26201: { return _M_h.empty(); } 26201: 26201: 26201: size_type 26201: size() const noexcept 26201: { return _M_h.size(); } 26201: 26201: 26201: size_type 26201: max_size() const noexcept 26201: { return _M_h.max_size(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: iterator 26201: begin() noexcept 26201: { return _M_h.begin(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: const_iterator 26201: begin() const noexcept 26201: { return _M_h.begin(); } 26201: 26201: const_iterator 26201: cbegin() const noexcept 26201: { return _M_h.begin(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: iterator 26201: end() noexcept 26201: { return _M_h.end(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: const_iterator 26201: end() const noexcept 26201: { return _M_h.end(); } 26201: 26201: const_iterator 26201: cend() const noexcept 26201: { return _M_h.end(); } 26201: # 386 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: template 26201: std::pair 26201: emplace(_Args&&... __args) 26201: { return _M_h.emplace(std::forward<_Args>(__args)...); } 26201: # 417 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: template 26201: iterator 26201: emplace_hint(const_iterator __pos, _Args&&... __args) 26201: { return _M_h.emplace_hint(__pos, std::forward<_Args>(__args)...); } 26201: 26201: 26201: 26201: node_type 26201: extract(const_iterator __pos) 26201: { 26201: ; 26201: return _M_h.extract(__pos); 26201: } 26201: 26201: 26201: node_type 26201: extract(const key_type& __key) 26201: { return _M_h.extract(__key); } 26201: 26201: 26201: insert_return_type 26201: insert(node_type&& __nh) 26201: { return _M_h._M_reinsert_node(std::move(__nh)); } 26201: 26201: 26201: iterator 26201: insert(const_iterator, node_type&& __nh) 26201: { return _M_h._M_reinsert_node(std::move(__nh)).position; } 26201: 26201: #define __cpp_lib_unordered_map_try_emplace 201411 26201: # 469 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: template 26201: pair 26201: try_emplace(const key_type& __k, _Args&&... __args) 26201: { 26201: iterator __i = find(__k); 26201: if (__i == end()) 26201: { 26201: __i = emplace(std::piecewise_construct, 26201: std::forward_as_tuple(__k), 26201: std::forward_as_tuple( 26201: std::forward<_Args>(__args)...)) 26201: .first; 26201: return {__i, true}; 26201: } 26201: return {__i, false}; 26201: } 26201: 26201: 26201: template 26201: pair 26201: try_emplace(key_type&& __k, _Args&&... __args) 26201: { 26201: iterator __i = find(__k); 26201: if (__i == end()) 26201: { 26201: __i = emplace(std::piecewise_construct, 26201: std::forward_as_tuple(std::move(__k)), 26201: std::forward_as_tuple( 26201: std::forward<_Args>(__args)...)) 26201: .first; 26201: return {__i, true}; 26201: } 26201: return {__i, false}; 26201: } 26201: # 532 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: template 26201: iterator 26201: try_emplace(const_iterator __hint, const key_type& __k, 26201: _Args&&... __args) 26201: { 26201: iterator __i = find(__k); 26201: if (__i == end()) 26201: __i = emplace_hint(__hint, std::piecewise_construct, 26201: std::forward_as_tuple(__k), 26201: std::forward_as_tuple( 26201: std::forward<_Args>(__args)...)); 26201: return __i; 26201: } 26201: 26201: 26201: template 26201: iterator 26201: try_emplace(const_iterator __hint, key_type&& __k, _Args&&... __args) 26201: { 26201: iterator __i = find(__k); 26201: if (__i == end()) 26201: __i = emplace_hint(__hint, std::piecewise_construct, 26201: std::forward_as_tuple(std::move(__k)), 26201: std::forward_as_tuple( 26201: std::forward<_Args>(__args)...)); 26201: return __i; 26201: } 26201: # 579 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: std::pair 26201: insert(const value_type& __x) 26201: { return _M_h.insert(__x); } 26201: 26201: 26201: 26201: std::pair 26201: insert(value_type&& __x) 26201: { return _M_h.insert(std::move(__x)); } 26201: 26201: template 26201: __enable_if_t::value, 26201: pair> 26201: insert(_Pair&& __x) 26201: { return _M_h.emplace(std::forward<_Pair>(__x)); } 26201: # 618 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: iterator 26201: insert(const_iterator __hint, const value_type& __x) 26201: { return _M_h.insert(__hint, __x); } 26201: 26201: 26201: 26201: iterator 26201: insert(const_iterator __hint, value_type&& __x) 26201: { return _M_h.insert(__hint, std::move(__x)); } 26201: 26201: template 26201: __enable_if_t::value, iterator> 26201: insert(const_iterator __hint, _Pair&& __x) 26201: { return _M_h.emplace_hint(__hint, std::forward<_Pair>(__x)); } 26201: # 643 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: template 26201: void 26201: insert(_InputIterator __first, _InputIterator __last) 26201: { _M_h.insert(__first, __last); } 26201: # 655 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: void 26201: insert(initializer_list __l) 26201: { _M_h.insert(__l); } 26201: # 681 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: template 26201: pair 26201: insert_or_assign(const key_type& __k, _Obj&& __obj) 26201: { 26201: iterator __i = find(__k); 26201: if (__i == end()) 26201: { 26201: __i = emplace(std::piecewise_construct, 26201: std::forward_as_tuple(__k), 26201: std::forward_as_tuple(std::forward<_Obj>(__obj))) 26201: .first; 26201: return {__i, true}; 26201: } 26201: (*__i).second = std::forward<_Obj>(__obj); 26201: return {__i, false}; 26201: } 26201: 26201: 26201: template 26201: pair 26201: insert_or_assign(key_type&& __k, _Obj&& __obj) 26201: { 26201: iterator __i = find(__k); 26201: if (__i == end()) 26201: { 26201: __i = emplace(std::piecewise_construct, 26201: std::forward_as_tuple(std::move(__k)), 26201: std::forward_as_tuple(std::forward<_Obj>(__obj))) 26201: .first; 26201: return {__i, true}; 26201: } 26201: (*__i).second = std::forward<_Obj>(__obj); 26201: return {__i, false}; 26201: } 26201: # 742 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: template 26201: iterator 26201: insert_or_assign(const_iterator __hint, const key_type& __k, 26201: _Obj&& __obj) 26201: { 26201: iterator __i = find(__k); 26201: if (__i == end()) 26201: { 26201: return emplace_hint(__hint, std::piecewise_construct, 26201: std::forward_as_tuple(__k), 26201: std::forward_as_tuple( 26201: std::forward<_Obj>(__obj))); 26201: } 26201: (*__i).second = std::forward<_Obj>(__obj); 26201: return __i; 26201: } 26201: 26201: 26201: template 26201: iterator 26201: insert_or_assign(const_iterator __hint, key_type&& __k, _Obj&& __obj) 26201: { 26201: iterator __i = find(__k); 26201: if (__i == end()) 26201: { 26201: return emplace_hint(__hint, std::piecewise_construct, 26201: std::forward_as_tuple(std::move(__k)), 26201: std::forward_as_tuple( 26201: std::forward<_Obj>(__obj))); 26201: } 26201: (*__i).second = std::forward<_Obj>(__obj); 26201: return __i; 26201: } 26201: # 791 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: iterator 26201: erase(const_iterator __position) 26201: { return _M_h.erase(__position); } 26201: 26201: 26201: iterator 26201: erase(iterator __position) 26201: { return _M_h.erase(__position); } 26201: # 813 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: size_type 26201: erase(const key_type& __x) 26201: { return _M_h.erase(__x); } 26201: # 831 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: iterator 26201: erase(const_iterator __first, const_iterator __last) 26201: { return _M_h.erase(__first, __last); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: void 26201: clear() noexcept 26201: { _M_h.clear(); } 26201: # 855 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: void 26201: swap(unordered_map& __x) 26201: noexcept( noexcept(_M_h.swap(__x._M_h)) ) 26201: { _M_h.swap(__x._M_h); } 26201: 26201: 26201: template 26201: friend class std::_Hash_merge_helper; 26201: 26201: template 26201: void 26201: merge(unordered_map<_Key, _Tp, _H2, _P2, _Alloc>& __source) 26201: { 26201: using _Merge_helper = _Hash_merge_helper; 26201: _M_h._M_merge_unique(_Merge_helper::_S_get_table(__source)); 26201: } 26201: 26201: template 26201: void 26201: merge(unordered_map<_Key, _Tp, _H2, _P2, _Alloc>&& __source) 26201: { merge(__source); } 26201: 26201: template 26201: void 26201: merge(unordered_multimap<_Key, _Tp, _H2, _P2, _Alloc>& __source) 26201: { 26201: using _Merge_helper = _Hash_merge_helper; 26201: _M_h._M_merge_unique(_Merge_helper::_S_get_table(__source)); 26201: } 26201: 26201: template 26201: void 26201: merge(unordered_multimap<_Key, _Tp, _H2, _P2, _Alloc>&& __source) 26201: { merge(__source); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: hasher 26201: hash_function() const 26201: { return _M_h.hash_function(); } 26201: 26201: 26201: 26201: key_equal 26201: key_eq() const 26201: { return _M_h.key_eq(); } 26201: # 919 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: iterator 26201: find(const key_type& __x) 26201: { return _M_h.find(__x); } 26201: 26201: const_iterator 26201: find(const key_type& __x) const 26201: { return _M_h.find(__x); } 26201: # 937 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: size_type 26201: count(const key_type& __x) const 26201: { return _M_h.count(__x); } 26201: # 961 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: std::pair 26201: equal_range(const key_type& __x) 26201: { return _M_h.equal_range(__x); } 26201: 26201: std::pair 26201: equal_range(const key_type& __x) const 26201: { return _M_h.equal_range(__x); } 26201: # 983 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: mapped_type& 26201: operator[](const key_type& __k) 26201: { return _M_h[__k]; } 26201: 26201: mapped_type& 26201: operator[](key_type&& __k) 26201: { return _M_h[std::move(__k)]; } 26201: # 1000 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: mapped_type& 26201: at(const key_type& __k) 26201: { return _M_h.at(__k); } 26201: 26201: const mapped_type& 26201: at(const key_type& __k) const 26201: { return _M_h.at(__k); } 26201: 26201: 26201: 26201: 26201: 26201: size_type 26201: bucket_count() const noexcept 26201: { return _M_h.bucket_count(); } 26201: 26201: 26201: size_type 26201: max_bucket_count() const noexcept 26201: { return _M_h.max_bucket_count(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: size_type 26201: bucket_size(size_type __n) const 26201: { return _M_h.bucket_size(__n); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: size_type 26201: bucket(const key_type& __key) const 26201: { return _M_h.bucket(__key); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: local_iterator 26201: begin(size_type __n) 26201: { return _M_h.begin(__n); } 26201: # 1056 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: const_local_iterator 26201: begin(size_type __n) const 26201: { return _M_h.begin(__n); } 26201: 26201: const_local_iterator 26201: cbegin(size_type __n) const 26201: { return _M_h.cbegin(__n); } 26201: # 1071 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: local_iterator 26201: end(size_type __n) 26201: { return _M_h.end(__n); } 26201: # 1082 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: const_local_iterator 26201: end(size_type __n) const 26201: { return _M_h.end(__n); } 26201: 26201: const_local_iterator 26201: cend(size_type __n) const 26201: { return _M_h.cend(__n); } 26201: 26201: 26201: 26201: 26201: 26201: float 26201: load_factor() const noexcept 26201: { return _M_h.load_factor(); } 26201: 26201: 26201: 26201: float 26201: max_load_factor() const noexcept 26201: { return _M_h.max_load_factor(); } 26201: 26201: 26201: 26201: 26201: 26201: void 26201: max_load_factor(float __z) 26201: { _M_h.max_load_factor(__z); } 26201: # 1119 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: void 26201: rehash(size_type __n) 26201: { _M_h.rehash(__n); } 26201: # 1130 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: void 26201: reserve(size_type __n) 26201: { _M_h.reserve(__n); } 26201: 26201: template 26201: friend bool 26201: operator==(const unordered_map<_Key1, _Tp1, _Hash1, _Pred1, _Alloc1>&, 26201: const unordered_map<_Key1, _Tp1, _Hash1, _Pred1, _Alloc1>&); 26201: }; 26201: 26201: 26201: 26201: template>, 26201: typename _Pred = equal_to<__iter_key_t<_InputIterator>>, 26201: typename _Allocator = allocator<__iter_to_alloc_t<_InputIterator>>, 26201: typename = _RequireInputIter<_InputIterator>, 26201: typename = _RequireNotAllocatorOrIntegral<_Hash>, 26201: typename = _RequireNotAllocator<_Pred>, 26201: typename = _RequireAllocator<_Allocator>> 26201: unordered_map(_InputIterator, _InputIterator, 26201: typename unordered_map::size_type = {}, 26201: _Hash = _Hash(), _Pred = _Pred(), _Allocator = _Allocator()) 26201: -> unordered_map<__iter_key_t<_InputIterator>, 26201: __iter_val_t<_InputIterator>, 26201: _Hash, _Pred, _Allocator>; 26201: 26201: template, 26201: typename _Pred = equal_to<_Key>, 26201: typename _Allocator = allocator>, 26201: typename = _RequireNotAllocatorOrIntegral<_Hash>, 26201: typename = _RequireNotAllocator<_Pred>, 26201: typename = _RequireAllocator<_Allocator>> 26201: unordered_map(initializer_list>, 26201: typename unordered_map::size_type = {}, 26201: _Hash = _Hash(), _Pred = _Pred(), _Allocator = _Allocator()) 26201: -> unordered_map<_Key, _Tp, _Hash, _Pred, _Allocator>; 26201: 26201: template, 26201: typename = _RequireAllocator<_Allocator>> 26201: unordered_map(_InputIterator, _InputIterator, 26201: typename unordered_map::size_type, _Allocator) 26201: -> unordered_map<__iter_key_t<_InputIterator>, 26201: __iter_val_t<_InputIterator>, 26201: hash<__iter_key_t<_InputIterator>>, 26201: equal_to<__iter_key_t<_InputIterator>>, 26201: _Allocator>; 26201: 26201: template, 26201: typename = _RequireAllocator<_Allocator>> 26201: unordered_map(_InputIterator, _InputIterator, _Allocator) 26201: -> unordered_map<__iter_key_t<_InputIterator>, 26201: __iter_val_t<_InputIterator>, 26201: hash<__iter_key_t<_InputIterator>>, 26201: equal_to<__iter_key_t<_InputIterator>>, 26201: _Allocator>; 26201: 26201: template, 26201: typename = _RequireNotAllocatorOrIntegral<_Hash>, 26201: typename = _RequireAllocator<_Allocator>> 26201: unordered_map(_InputIterator, _InputIterator, 26201: typename unordered_map::size_type, 26201: _Hash, _Allocator) 26201: -> unordered_map<__iter_key_t<_InputIterator>, 26201: __iter_val_t<_InputIterator>, _Hash, 26201: equal_to<__iter_key_t<_InputIterator>>, _Allocator>; 26201: 26201: template> 26201: unordered_map(initializer_list>, 26201: typename unordered_map::size_type, 26201: _Allocator) 26201: -> unordered_map<_Key, _Tp, hash<_Key>, equal_to<_Key>, _Allocator>; 26201: 26201: template> 26201: unordered_map(initializer_list>, _Allocator) 26201: -> unordered_map<_Key, _Tp, hash<_Key>, equal_to<_Key>, _Allocator>; 26201: 26201: template, 26201: typename = _RequireAllocator<_Allocator>> 26201: unordered_map(initializer_list>, 26201: typename unordered_map::size_type, 26201: _Hash, _Allocator) 26201: -> unordered_map<_Key, _Tp, _Hash, equal_to<_Key>, _Allocator>; 26201: # 1246 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: template, 26201: typename _Pred = equal_to<_Key>, 26201: typename _Alloc = allocator>> 26201: class unordered_multimap 26201: { 26201: typedef __ummap_hashtable<_Key, _Tp, _Hash, _Pred, _Alloc> _Hashtable; 26201: _Hashtable _M_h; 26201: 26201: public: 26201: 26201: 26201: 26201: typedef typename _Hashtable::key_type key_type; 26201: typedef typename _Hashtable::value_type value_type; 26201: typedef typename _Hashtable::mapped_type mapped_type; 26201: typedef typename _Hashtable::hasher hasher; 26201: typedef typename _Hashtable::key_equal key_equal; 26201: typedef typename _Hashtable::allocator_type allocator_type; 26201: 26201: 26201: 26201: 26201: typedef typename _Hashtable::pointer pointer; 26201: typedef typename _Hashtable::const_pointer const_pointer; 26201: typedef typename _Hashtable::reference reference; 26201: typedef typename _Hashtable::const_reference const_reference; 26201: typedef typename _Hashtable::iterator iterator; 26201: typedef typename _Hashtable::const_iterator const_iterator; 26201: typedef typename _Hashtable::local_iterator local_iterator; 26201: typedef typename _Hashtable::const_local_iterator const_local_iterator; 26201: typedef typename _Hashtable::size_type size_type; 26201: typedef typename _Hashtable::difference_type difference_type; 26201: 26201: 26201: 26201: using node_type = typename _Hashtable::node_type; 26201: 26201: 26201: 26201: 26201: 26201: unordered_multimap() = default; 26201: # 1297 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: explicit 26201: unordered_multimap(size_type __n, 26201: const hasher& __hf = hasher(), 26201: const key_equal& __eql = key_equal(), 26201: const allocator_type& __a = allocator_type()) 26201: : _M_h(__n, __hf, __eql, __a) 26201: { } 26201: # 1318 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: template 26201: unordered_multimap(_InputIterator __first, _InputIterator __last, 26201: size_type __n = 0, 26201: const hasher& __hf = hasher(), 26201: const key_equal& __eql = key_equal(), 26201: const allocator_type& __a = allocator_type()) 26201: : _M_h(__first, __last, __n, __hf, __eql, __a) 26201: { } 26201: 26201: 26201: unordered_multimap(const unordered_multimap&) = default; 26201: 26201: 26201: unordered_multimap(unordered_multimap&&) = default; 26201: 26201: 26201: 26201: 26201: 26201: explicit 26201: unordered_multimap(const allocator_type& __a) 26201: : _M_h(__a) 26201: { } 26201: 26201: 26201: 26201: 26201: 26201: 26201: unordered_multimap(const unordered_multimap& __ummap, 26201: const allocator_type& __a) 26201: : _M_h(__ummap._M_h, __a) 26201: { } 26201: 26201: 26201: 26201: 26201: 26201: 26201: unordered_multimap(unordered_multimap&& __ummap, 26201: const allocator_type& __a) 26201: noexcept( noexcept(_Hashtable(std::move(__ummap._M_h), __a)) ) 26201: : _M_h(std::move(__ummap._M_h), __a) 26201: { } 26201: # 1374 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: unordered_multimap(initializer_list __l, 26201: size_type __n = 0, 26201: const hasher& __hf = hasher(), 26201: const key_equal& __eql = key_equal(), 26201: const allocator_type& __a = allocator_type()) 26201: : _M_h(__l, __n, __hf, __eql, __a) 26201: { } 26201: 26201: unordered_multimap(size_type __n, const allocator_type& __a) 26201: : unordered_multimap(__n, hasher(), key_equal(), __a) 26201: { } 26201: 26201: unordered_multimap(size_type __n, const hasher& __hf, 26201: const allocator_type& __a) 26201: : unordered_multimap(__n, __hf, key_equal(), __a) 26201: { } 26201: 26201: template 26201: unordered_multimap(_InputIterator __first, _InputIterator __last, 26201: size_type __n, 26201: const allocator_type& __a) 26201: : unordered_multimap(__first, __last, __n, hasher(), key_equal(), __a) 26201: { } 26201: 26201: template 26201: unordered_multimap(_InputIterator __first, _InputIterator __last, 26201: size_type __n, const hasher& __hf, 26201: const allocator_type& __a) 26201: : unordered_multimap(__first, __last, __n, __hf, key_equal(), __a) 26201: { } 26201: 26201: unordered_multimap(initializer_list __l, 26201: size_type __n, 26201: const allocator_type& __a) 26201: : unordered_multimap(__l, __n, hasher(), key_equal(), __a) 26201: { } 26201: 26201: unordered_multimap(initializer_list __l, 26201: size_type __n, const hasher& __hf, 26201: const allocator_type& __a) 26201: : unordered_multimap(__l, __n, __hf, key_equal(), __a) 26201: { } 26201: 26201: 26201: unordered_multimap& 26201: operator=(const unordered_multimap&) = default; 26201: 26201: 26201: unordered_multimap& 26201: operator=(unordered_multimap&&) = default; 26201: # 1436 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: unordered_multimap& 26201: operator=(initializer_list __l) 26201: { 26201: _M_h = __l; 26201: return *this; 26201: } 26201: 26201: 26201: allocator_type 26201: get_allocator() const noexcept 26201: { return _M_h.get_allocator(); } 26201: 26201: 26201: 26201: 26201: [[__nodiscard__]] bool 26201: empty() const noexcept 26201: { return _M_h.empty(); } 26201: 26201: 26201: size_type 26201: size() const noexcept 26201: { return _M_h.size(); } 26201: 26201: 26201: size_type 26201: max_size() const noexcept 26201: { return _M_h.max_size(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: iterator 26201: begin() noexcept 26201: { return _M_h.begin(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: const_iterator 26201: begin() const noexcept 26201: { return _M_h.begin(); } 26201: 26201: const_iterator 26201: cbegin() const noexcept 26201: { return _M_h.begin(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: iterator 26201: end() noexcept 26201: { return _M_h.end(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: const_iterator 26201: end() const noexcept 26201: { return _M_h.end(); } 26201: 26201: const_iterator 26201: cend() const noexcept 26201: { return _M_h.end(); } 26201: # 1528 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: template 26201: iterator 26201: emplace(_Args&&... __args) 26201: { return _M_h.emplace(std::forward<_Args>(__args)...); } 26201: # 1555 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: template 26201: iterator 26201: emplace_hint(const_iterator __pos, _Args&&... __args) 26201: { return _M_h.emplace_hint(__pos, std::forward<_Args>(__args)...); } 26201: # 1570 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: iterator 26201: insert(const value_type& __x) 26201: { return _M_h.insert(__x); } 26201: 26201: iterator 26201: insert(value_type&& __x) 26201: { return _M_h.insert(std::move(__x)); } 26201: 26201: template 26201: __enable_if_t::value, iterator> 26201: insert(_Pair&& __x) 26201: { return _M_h.emplace(std::forward<_Pair>(__x)); } 26201: # 1604 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: iterator 26201: insert(const_iterator __hint, const value_type& __x) 26201: { return _M_h.insert(__hint, __x); } 26201: 26201: 26201: 26201: iterator 26201: insert(const_iterator __hint, value_type&& __x) 26201: { return _M_h.insert(__hint, std::move(__x)); } 26201: 26201: template 26201: __enable_if_t::value, iterator> 26201: insert(const_iterator __hint, _Pair&& __x) 26201: { return _M_h.emplace_hint(__hint, std::forward<_Pair>(__x)); } 26201: # 1629 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: template 26201: void 26201: insert(_InputIterator __first, _InputIterator __last) 26201: { _M_h.insert(__first, __last); } 26201: # 1642 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: void 26201: insert(initializer_list __l) 26201: { _M_h.insert(__l); } 26201: 26201: 26201: 26201: node_type 26201: extract(const_iterator __pos) 26201: { 26201: ; 26201: return _M_h.extract(__pos); 26201: } 26201: 26201: 26201: node_type 26201: extract(const key_type& __key) 26201: { return _M_h.extract(__key); } 26201: 26201: 26201: iterator 26201: insert(node_type&& __nh) 26201: { return _M_h._M_reinsert_node_multi(cend(), std::move(__nh)); } 26201: 26201: 26201: iterator 26201: insert(const_iterator __hint, node_type&& __nh) 26201: { return _M_h._M_reinsert_node_multi(__hint, std::move(__nh)); } 26201: # 1685 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: iterator 26201: erase(const_iterator __position) 26201: { return _M_h.erase(__position); } 26201: 26201: 26201: iterator 26201: erase(iterator __position) 26201: { return _M_h.erase(__position); } 26201: # 1706 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: size_type 26201: erase(const key_type& __x) 26201: { return _M_h.erase(__x); } 26201: # 1725 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: iterator 26201: erase(const_iterator __first, const_iterator __last) 26201: { return _M_h.erase(__first, __last); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: void 26201: clear() noexcept 26201: { _M_h.clear(); } 26201: # 1749 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: void 26201: swap(unordered_multimap& __x) 26201: noexcept( noexcept(_M_h.swap(__x._M_h)) ) 26201: { _M_h.swap(__x._M_h); } 26201: 26201: 26201: template 26201: friend class std::_Hash_merge_helper; 26201: 26201: template 26201: void 26201: merge(unordered_multimap<_Key, _Tp, _H2, _P2, _Alloc>& __source) 26201: { 26201: using _Merge_helper 26201: = _Hash_merge_helper; 26201: _M_h._M_merge_multi(_Merge_helper::_S_get_table(__source)); 26201: } 26201: 26201: template 26201: void 26201: merge(unordered_multimap<_Key, _Tp, _H2, _P2, _Alloc>&& __source) 26201: { merge(__source); } 26201: 26201: template 26201: void 26201: merge(unordered_map<_Key, _Tp, _H2, _P2, _Alloc>& __source) 26201: { 26201: using _Merge_helper 26201: = _Hash_merge_helper; 26201: _M_h._M_merge_multi(_Merge_helper::_S_get_table(__source)); 26201: } 26201: 26201: template 26201: void 26201: merge(unordered_map<_Key, _Tp, _H2, _P2, _Alloc>&& __source) 26201: { merge(__source); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: hasher 26201: hash_function() const 26201: { return _M_h.hash_function(); } 26201: 26201: 26201: 26201: key_equal 26201: key_eq() const 26201: { return _M_h.key_eq(); } 26201: # 1815 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: iterator 26201: find(const key_type& __x) 26201: { return _M_h.find(__x); } 26201: 26201: const_iterator 26201: find(const key_type& __x) const 26201: { return _M_h.find(__x); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: size_type 26201: count(const key_type& __x) const 26201: { return _M_h.count(__x); } 26201: # 1851 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: std::pair 26201: equal_range(const key_type& __x) 26201: { return _M_h.equal_range(__x); } 26201: 26201: std::pair 26201: equal_range(const key_type& __x) const 26201: { return _M_h.equal_range(__x); } 26201: 26201: 26201: 26201: 26201: 26201: size_type 26201: bucket_count() const noexcept 26201: { return _M_h.bucket_count(); } 26201: 26201: 26201: size_type 26201: max_bucket_count() const noexcept 26201: { return _M_h.max_bucket_count(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: size_type 26201: bucket_size(size_type __n) const 26201: { return _M_h.bucket_size(__n); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: size_type 26201: bucket(const key_type& __key) const 26201: { return _M_h.bucket(__key); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: local_iterator 26201: begin(size_type __n) 26201: { return _M_h.begin(__n); } 26201: # 1907 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: const_local_iterator 26201: begin(size_type __n) const 26201: { return _M_h.begin(__n); } 26201: 26201: const_local_iterator 26201: cbegin(size_type __n) const 26201: { return _M_h.cbegin(__n); } 26201: # 1922 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: local_iterator 26201: end(size_type __n) 26201: { return _M_h.end(__n); } 26201: # 1933 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: const_local_iterator 26201: end(size_type __n) const 26201: { return _M_h.end(__n); } 26201: 26201: const_local_iterator 26201: cend(size_type __n) const 26201: { return _M_h.cend(__n); } 26201: 26201: 26201: 26201: 26201: 26201: float 26201: load_factor() const noexcept 26201: { return _M_h.load_factor(); } 26201: 26201: 26201: 26201: float 26201: max_load_factor() const noexcept 26201: { return _M_h.max_load_factor(); } 26201: 26201: 26201: 26201: 26201: 26201: void 26201: max_load_factor(float __z) 26201: { _M_h.max_load_factor(__z); } 26201: # 1970 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: void 26201: rehash(size_type __n) 26201: { _M_h.rehash(__n); } 26201: # 1981 "/usr/x86_64-linux-gnu/include/c++/10/bits/unordered_map.h" 3 26201: void 26201: reserve(size_type __n) 26201: { _M_h.reserve(__n); } 26201: 26201: template 26201: friend bool 26201: operator==(const unordered_multimap<_Key1, _Tp1, 26201: _Hash1, _Pred1, _Alloc1>&, 26201: const unordered_multimap<_Key1, _Tp1, 26201: _Hash1, _Pred1, _Alloc1>&); 26201: }; 26201: 26201: 26201: 26201: template>, 26201: typename _Pred = equal_to<__iter_key_t<_InputIterator>>, 26201: typename _Allocator = allocator<__iter_to_alloc_t<_InputIterator>>, 26201: typename = _RequireInputIter<_InputIterator>, 26201: typename = _RequireNotAllocatorOrIntegral<_Hash>, 26201: typename = _RequireNotAllocator<_Pred>, 26201: typename = _RequireAllocator<_Allocator>> 26201: unordered_multimap(_InputIterator, _InputIterator, 26201: unordered_multimap::size_type = {}, 26201: _Hash = _Hash(), _Pred = _Pred(), 26201: _Allocator = _Allocator()) 26201: -> unordered_multimap<__iter_key_t<_InputIterator>, 26201: __iter_val_t<_InputIterator>, _Hash, _Pred, 26201: _Allocator>; 26201: 26201: template, 26201: typename _Pred = equal_to<_Key>, 26201: typename _Allocator = allocator>, 26201: typename = _RequireNotAllocatorOrIntegral<_Hash>, 26201: typename = _RequireNotAllocator<_Pred>, 26201: typename = _RequireAllocator<_Allocator>> 26201: unordered_multimap(initializer_list>, 26201: unordered_multimap::size_type = {}, 26201: _Hash = _Hash(), _Pred = _Pred(), 26201: _Allocator = _Allocator()) 26201: -> unordered_multimap<_Key, _Tp, _Hash, _Pred, _Allocator>; 26201: 26201: template, 26201: typename = _RequireAllocator<_Allocator>> 26201: unordered_multimap(_InputIterator, _InputIterator, 26201: unordered_multimap::size_type, _Allocator) 26201: -> unordered_multimap<__iter_key_t<_InputIterator>, 26201: __iter_val_t<_InputIterator>, 26201: hash<__iter_key_t<_InputIterator>>, 26201: equal_to<__iter_key_t<_InputIterator>>, _Allocator>; 26201: 26201: template, 26201: typename = _RequireAllocator<_Allocator>> 26201: unordered_multimap(_InputIterator, _InputIterator, _Allocator) 26201: -> unordered_multimap<__iter_key_t<_InputIterator>, 26201: __iter_val_t<_InputIterator>, 26201: hash<__iter_key_t<_InputIterator>>, 26201: equal_to<__iter_key_t<_InputIterator>>, _Allocator>; 26201: 26201: template, 26201: typename = _RequireNotAllocatorOrIntegral<_Hash>, 26201: typename = _RequireAllocator<_Allocator>> 26201: unordered_multimap(_InputIterator, _InputIterator, 26201: unordered_multimap::size_type, _Hash, 26201: _Allocator) 26201: -> unordered_multimap<__iter_key_t<_InputIterator>, 26201: __iter_val_t<_InputIterator>, _Hash, 26201: equal_to<__iter_key_t<_InputIterator>>, _Allocator>; 26201: 26201: template> 26201: unordered_multimap(initializer_list>, 26201: unordered_multimap::size_type, 26201: _Allocator) 26201: -> unordered_multimap<_Key, _Tp, hash<_Key>, equal_to<_Key>, _Allocator>; 26201: 26201: template> 26201: unordered_multimap(initializer_list>, _Allocator) 26201: -> unordered_multimap<_Key, _Tp, hash<_Key>, equal_to<_Key>, _Allocator>; 26201: 26201: template, 26201: typename = _RequireAllocator<_Allocator>> 26201: unordered_multimap(initializer_list>, 26201: unordered_multimap::size_type, 26201: _Hash, _Allocator) 26201: -> unordered_multimap<_Key, _Tp, _Hash, equal_to<_Key>, _Allocator>; 26201: 26201: 26201: 26201: template 26201: inline void 26201: swap(unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, 26201: unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) 26201: noexcept(noexcept(__x.swap(__y))) 26201: { __x.swap(__y); } 26201: 26201: template 26201: inline void 26201: swap(unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, 26201: unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) 26201: noexcept(noexcept(__x.swap(__y))) 26201: { __x.swap(__y); } 26201: 26201: template 26201: inline bool 26201: operator==(const unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, 26201: const unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) 26201: { return __x._M_h._M_equal(__y._M_h); } 26201: 26201: 26201: template 26201: inline bool 26201: operator!=(const unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, 26201: const unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) 26201: { return !(__x == __y); } 26201: 26201: 26201: template 26201: inline bool 26201: operator==(const unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, 26201: const unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) 26201: { return __x._M_h._M_equal(__y._M_h); } 26201: 26201: 26201: template 26201: inline bool 26201: operator!=(const unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, 26201: const unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) 26201: { return !(__x == __y); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct _Hash_merge_helper< 26201: std::unordered_map<_Key, _Val, _Hash1, _Eq1, _Alloc>, 26201: _Hash2, _Eq2> 26201: { 26201: private: 26201: template 26201: using unordered_map = std::unordered_map<_Tp...>; 26201: template 26201: using unordered_multimap = std::unordered_multimap<_Tp...>; 26201: 26201: friend unordered_map<_Key, _Val, _Hash1, _Eq1, _Alloc>; 26201: 26201: static auto& 26201: _S_get_table(unordered_map<_Key, _Val, _Hash2, _Eq2, _Alloc>& __map) 26201: { return __map._M_h; } 26201: 26201: static auto& 26201: _S_get_table(unordered_multimap<_Key, _Val, _Hash2, _Eq2, _Alloc>& __map) 26201: { return __map._M_h; } 26201: }; 26201: 26201: 26201: template 26201: struct _Hash_merge_helper< 26201: std::unordered_multimap<_Key, _Val, _Hash1, _Eq1, _Alloc>, 26201: _Hash2, _Eq2> 26201: { 26201: private: 26201: template 26201: using unordered_map = std::unordered_map<_Tp...>; 26201: template 26201: using unordered_multimap = std::unordered_multimap<_Tp...>; 26201: 26201: friend unordered_multimap<_Key, _Val, _Hash1, _Eq1, _Alloc>; 26201: 26201: static auto& 26201: _S_get_table(unordered_map<_Key, _Val, _Hash2, _Eq2, _Alloc>& __map) 26201: { return __map._M_h; } 26201: 26201: static auto& 26201: _S_get_table(unordered_multimap<_Key, _Val, _Hash2, _Eq2, _Alloc>& __map) 26201: { return __map._M_h; } 26201: }; 26201: 26201: 26201: 26201: } 26201: # 48 "/usr/x86_64-linux-gnu/include/c++/10/unordered_map" 2 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/erase_if.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/erase_if.h" 3 26201: #define _GLIBCXX_ERASE_IF_H 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/erase_if.h" 3 26201: 26201: 26201: 26201: namespace std 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: namespace __detail 26201: { 26201: template 26201: typename _Container::size_type 26201: __erase_nodes_if(_Container& __cont, _Predicate __pred) 26201: { 26201: typename _Container::size_type __num = 0; 26201: for (auto __iter = __cont.begin(), __last = __cont.end(); 26201: __iter != __last;) 26201: { 26201: if (__pred(*__iter)) 26201: { 26201: __iter = __cont.erase(__iter); 26201: ++__num; 26201: } 26201: else 26201: ++__iter; 26201: } 26201: return __num; 26201: } 26201: } 26201: 26201: 26201: } 26201: # 50 "/usr/x86_64-linux-gnu/include/c++/10/unordered_map" 2 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: namespace pmr 26201: { 26201: template class polymorphic_allocator; 26201: template, 26201: typename _Pred = std::equal_to<_Key>> 26201: using unordered_map 26201: = std::unordered_map<_Key, _Tp, _Hash, _Pred, 26201: polymorphic_allocator>>; 26201: template, 26201: typename _Pred = std::equal_to<_Key>> 26201: using unordered_multimap 26201: = std::unordered_multimap<_Key, _Tp, _Hash, _Pred, 26201: polymorphic_allocator>>; 26201: } 26201: 26201: } 26201: # 62 "/usr/x86_64-linux-gnu/include/c++/10/functional" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/vector" 1 3 26201: # 56 "/usr/x86_64-linux-gnu/include/c++/10/vector" 3 26201: #define _GLIBCXX_VECTOR 1 26201: 26201: 26201: # 59 "/usr/x86_64-linux-gnu/include/c++/10/vector" 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_uninitialized.h" 1 3 26201: # 57 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_uninitialized.h" 3 26201: #define _STL_UNINITIALIZED_H 1 26201: # 69 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_uninitialized.h" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct __uninitialized_copy 26201: { 26201: template 26201: static _ForwardIterator 26201: __uninit_copy(_InputIterator __first, _InputIterator __last, 26201: _ForwardIterator __result) 26201: { 26201: _ForwardIterator __cur = __result; 26201: try 26201: { 26201: for (; __first != __last; ++__first, (void)++__cur) 26201: std::_Construct(std::__addressof(*__cur), *__first); 26201: return __cur; 26201: } 26201: catch(...) 26201: { 26201: std::_Destroy(__result, __cur); 26201: throw; 26201: } 26201: } 26201: }; 26201: 26201: template<> 26201: struct __uninitialized_copy 26201: { 26201: template 26201: static _ForwardIterator 26201: __uninit_copy(_InputIterator __first, _InputIterator __last, 26201: _ForwardIterator __result) 26201: { return std::copy(__first, __last, __result); } 26201: }; 26201: # 123 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_uninitialized.h" 3 26201: template 26201: inline _ForwardIterator 26201: uninitialized_copy(_InputIterator __first, _InputIterator __last, 26201: _ForwardIterator __result) 26201: { 26201: typedef typename iterator_traits<_InputIterator>::value_type 26201: _ValueType1; 26201: typedef typename iterator_traits<_ForwardIterator>::value_type 26201: _ValueType2; 26201: 26201: 26201: 26201: 26201: 26201: static_assert(is_constructible<_ValueType2, decltype(*__first)>::value, 26201: "result type must be constructible from value type of input range"); 26201: 26201: typedef typename iterator_traits<_InputIterator>::reference _RefType1; 26201: typedef typename iterator_traits<_ForwardIterator>::reference _RefType2; 26201: 26201: 26201: const bool __assignable = is_assignable<_RefType2, _RefType1>::value; 26201: 26201: 26201: return std::__uninitialized_copy<__is_trivial(_ValueType1) 26201: && __is_trivial(_ValueType2) 26201: && __assignable>:: 26201: __uninit_copy(__first, __last, __result); 26201: } 26201: 26201: 26201: 26201: template 26201: struct __uninitialized_fill 26201: { 26201: template 26201: static void 26201: __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, 26201: const _Tp& __x) 26201: { 26201: _ForwardIterator __cur = __first; 26201: try 26201: { 26201: for (; __cur != __last; ++__cur) 26201: std::_Construct(std::__addressof(*__cur), __x); 26201: } 26201: catch(...) 26201: { 26201: std::_Destroy(__first, __cur); 26201: throw; 26201: } 26201: } 26201: }; 26201: 26201: template<> 26201: struct __uninitialized_fill 26201: { 26201: template 26201: static void 26201: __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, 26201: const _Tp& __x) 26201: { std::fill(__first, __last, __x); } 26201: }; 26201: # 198 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_uninitialized.h" 3 26201: template 26201: inline void 26201: uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last, 26201: const _Tp& __x) 26201: { 26201: typedef typename iterator_traits<_ForwardIterator>::value_type 26201: _ValueType; 26201: 26201: 26201: 26201: 26201: 26201: static_assert(is_constructible<_ValueType, const _Tp&>::value, 26201: "result type must be constructible from input type"); 26201: 26201: 26201: 26201: const bool __assignable = is_copy_assignable<_ValueType>::value; 26201: 26201: 26201: std::__uninitialized_fill<__is_trivial(_ValueType) && __assignable>:: 26201: __uninit_fill(__first, __last, __x); 26201: } 26201: 26201: 26201: 26201: template 26201: struct __uninitialized_fill_n 26201: { 26201: template 26201: static _ForwardIterator 26201: __uninit_fill_n(_ForwardIterator __first, _Size __n, 26201: const _Tp& __x) 26201: { 26201: _ForwardIterator __cur = __first; 26201: try 26201: { 26201: for (; __n > 0; --__n, (void) ++__cur) 26201: std::_Construct(std::__addressof(*__cur), __x); 26201: return __cur; 26201: } 26201: catch(...) 26201: { 26201: std::_Destroy(__first, __cur); 26201: throw; 26201: } 26201: } 26201: }; 26201: 26201: template<> 26201: struct __uninitialized_fill_n 26201: { 26201: template 26201: static _ForwardIterator 26201: __uninit_fill_n(_ForwardIterator __first, _Size __n, 26201: const _Tp& __x) 26201: { return std::fill_n(__first, __n, __x); } 26201: }; 26201: # 270 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_uninitialized.h" 3 26201: template 26201: inline _ForwardIterator 26201: uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) 26201: { 26201: typedef typename iterator_traits<_ForwardIterator>::value_type 26201: _ValueType; 26201: 26201: 26201: 26201: 26201: 26201: static_assert(is_constructible<_ValueType, const _Tp&>::value, 26201: "result type must be constructible from input type"); 26201: 26201: 26201: 26201: const bool __assignable = is_copy_assignable<_ValueType>::value; 26201: 26201: return __uninitialized_fill_n<__is_trivial(_ValueType) && __assignable>:: 26201: __uninit_fill_n(__first, __n, __x); 26201: } 26201: # 300 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_uninitialized.h" 3 26201: template 26201: _ForwardIterator 26201: __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, 26201: _ForwardIterator __result, _Allocator& __alloc) 26201: { 26201: _ForwardIterator __cur = __result; 26201: try 26201: { 26201: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 26201: for (; __first != __last; ++__first, (void)++__cur) 26201: __traits::construct(__alloc, std::__addressof(*__cur), *__first); 26201: return __cur; 26201: } 26201: catch(...) 26201: { 26201: std::_Destroy(__result, __cur, __alloc); 26201: throw; 26201: } 26201: } 26201: 26201: template 26201: inline _ForwardIterator 26201: __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, 26201: _ForwardIterator __result, allocator<_Tp>&) 26201: { return std::uninitialized_copy(__first, __last, __result); } 26201: 26201: template 26201: inline _ForwardIterator 26201: __uninitialized_move_a(_InputIterator __first, _InputIterator __last, 26201: _ForwardIterator __result, _Allocator& __alloc) 26201: { 26201: return std::__uninitialized_copy_a(std::make_move_iterator(__first), 26201: std::make_move_iterator(__last), 26201: __result, __alloc); 26201: } 26201: 26201: template 26201: inline _ForwardIterator 26201: __uninitialized_move_if_noexcept_a(_InputIterator __first, 26201: _InputIterator __last, 26201: _ForwardIterator __result, 26201: _Allocator& __alloc) 26201: { 26201: return std::__uninitialized_copy_a 26201: (std::__make_move_if_noexcept_iterator(__first), 26201: std::__make_move_if_noexcept_iterator(__last), __result, __alloc); 26201: } 26201: 26201: template 26201: void 26201: __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, 26201: const _Tp& __x, _Allocator& __alloc) 26201: { 26201: _ForwardIterator __cur = __first; 26201: try 26201: { 26201: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 26201: for (; __cur != __last; ++__cur) 26201: __traits::construct(__alloc, std::__addressof(*__cur), __x); 26201: } 26201: catch(...) 26201: { 26201: std::_Destroy(__first, __cur, __alloc); 26201: throw; 26201: } 26201: } 26201: 26201: template 26201: inline void 26201: __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, 26201: const _Tp& __x, allocator<_Tp2>&) 26201: { std::uninitialized_fill(__first, __last, __x); } 26201: 26201: template 26201: _ForwardIterator 26201: __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, 26201: const _Tp& __x, _Allocator& __alloc) 26201: { 26201: _ForwardIterator __cur = __first; 26201: try 26201: { 26201: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 26201: for (; __n > 0; --__n, (void) ++__cur) 26201: __traits::construct(__alloc, std::__addressof(*__cur), __x); 26201: return __cur; 26201: } 26201: catch(...) 26201: { 26201: std::_Destroy(__first, __cur, __alloc); 26201: throw; 26201: } 26201: } 26201: 26201: template 26201: inline _ForwardIterator 26201: __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, 26201: const _Tp& __x, allocator<_Tp2>&) 26201: { return std::uninitialized_fill_n(__first, __n, __x); } 26201: # 414 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_uninitialized.h" 3 26201: template 26201: inline _ForwardIterator 26201: __uninitialized_copy_move(_InputIterator1 __first1, 26201: _InputIterator1 __last1, 26201: _InputIterator2 __first2, 26201: _InputIterator2 __last2, 26201: _ForwardIterator __result, 26201: _Allocator& __alloc) 26201: { 26201: _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1, 26201: __result, 26201: __alloc); 26201: try 26201: { 26201: return std::__uninitialized_move_a(__first2, __last2, __mid, __alloc); 26201: } 26201: catch(...) 26201: { 26201: std::_Destroy(__result, __mid, __alloc); 26201: throw; 26201: } 26201: } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline _ForwardIterator 26201: __uninitialized_move_copy(_InputIterator1 __first1, 26201: _InputIterator1 __last1, 26201: _InputIterator2 __first2, 26201: _InputIterator2 __last2, 26201: _ForwardIterator __result, 26201: _Allocator& __alloc) 26201: { 26201: _ForwardIterator __mid = std::__uninitialized_move_a(__first1, __last1, 26201: __result, 26201: __alloc); 26201: try 26201: { 26201: return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc); 26201: } 26201: catch(...) 26201: { 26201: std::_Destroy(__result, __mid, __alloc); 26201: throw; 26201: } 26201: } 26201: 26201: 26201: 26201: 26201: template 26201: inline _ForwardIterator 26201: __uninitialized_fill_move(_ForwardIterator __result, _ForwardIterator __mid, 26201: const _Tp& __x, _InputIterator __first, 26201: _InputIterator __last, _Allocator& __alloc) 26201: { 26201: std::__uninitialized_fill_a(__result, __mid, __x, __alloc); 26201: try 26201: { 26201: return std::__uninitialized_move_a(__first, __last, __mid, __alloc); 26201: } 26201: catch(...) 26201: { 26201: std::_Destroy(__result, __mid, __alloc); 26201: throw; 26201: } 26201: } 26201: 26201: 26201: 26201: 26201: template 26201: inline void 26201: __uninitialized_move_fill(_InputIterator __first1, _InputIterator __last1, 26201: _ForwardIterator __first2, 26201: _ForwardIterator __last2, const _Tp& __x, 26201: _Allocator& __alloc) 26201: { 26201: _ForwardIterator __mid2 = std::__uninitialized_move_a(__first1, __last1, 26201: __first2, 26201: __alloc); 26201: try 26201: { 26201: std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc); 26201: } 26201: catch(...) 26201: { 26201: std::_Destroy(__first2, __mid2, __alloc); 26201: throw; 26201: } 26201: } 26201: # 521 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_uninitialized.h" 3 26201: template 26201: struct __uninitialized_default_1 26201: { 26201: template 26201: static void 26201: __uninit_default(_ForwardIterator __first, _ForwardIterator __last) 26201: { 26201: _ForwardIterator __cur = __first; 26201: try 26201: { 26201: for (; __cur != __last; ++__cur) 26201: std::_Construct(std::__addressof(*__cur)); 26201: } 26201: catch(...) 26201: { 26201: std::_Destroy(__first, __cur); 26201: throw; 26201: } 26201: } 26201: }; 26201: 26201: template<> 26201: struct __uninitialized_default_1 26201: { 26201: template 26201: static void 26201: __uninit_default(_ForwardIterator __first, _ForwardIterator __last) 26201: { 26201: typedef typename iterator_traits<_ForwardIterator>::value_type 26201: _ValueType; 26201: 26201: std::fill(__first, __last, _ValueType()); 26201: } 26201: }; 26201: 26201: template 26201: struct __uninitialized_default_n_1 26201: { 26201: template 26201: static _ForwardIterator 26201: __uninit_default_n(_ForwardIterator __first, _Size __n) 26201: { 26201: _ForwardIterator __cur = __first; 26201: try 26201: { 26201: for (; __n > 0; --__n, (void) ++__cur) 26201: std::_Construct(std::__addressof(*__cur)); 26201: return __cur; 26201: } 26201: catch(...) 26201: { 26201: std::_Destroy(__first, __cur); 26201: throw; 26201: } 26201: } 26201: }; 26201: 26201: template<> 26201: struct __uninitialized_default_n_1 26201: { 26201: template 26201: static _ForwardIterator 26201: __uninit_default_n(_ForwardIterator __first, _Size __n) 26201: { 26201: typedef typename iterator_traits<_ForwardIterator>::value_type 26201: _ValueType; 26201: 26201: return std::fill_n(__first, __n, _ValueType()); 26201: } 26201: }; 26201: 26201: 26201: 26201: 26201: template 26201: inline void 26201: __uninitialized_default(_ForwardIterator __first, 26201: _ForwardIterator __last) 26201: { 26201: typedef typename iterator_traits<_ForwardIterator>::value_type 26201: _ValueType; 26201: 26201: const bool __assignable = is_copy_assignable<_ValueType>::value; 26201: 26201: std::__uninitialized_default_1<__is_trivial(_ValueType) 26201: && __assignable>:: 26201: __uninit_default(__first, __last); 26201: } 26201: 26201: 26201: 26201: template 26201: inline _ForwardIterator 26201: __uninitialized_default_n(_ForwardIterator __first, _Size __n) 26201: { 26201: typedef typename iterator_traits<_ForwardIterator>::value_type 26201: _ValueType; 26201: 26201: const bool __assignable = is_copy_assignable<_ValueType>::value; 26201: 26201: return __uninitialized_default_n_1<__is_trivial(_ValueType) 26201: && __assignable>:: 26201: __uninit_default_n(__first, __n); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: void 26201: __uninitialized_default_a(_ForwardIterator __first, 26201: _ForwardIterator __last, 26201: _Allocator& __alloc) 26201: { 26201: _ForwardIterator __cur = __first; 26201: try 26201: { 26201: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 26201: for (; __cur != __last; ++__cur) 26201: __traits::construct(__alloc, std::__addressof(*__cur)); 26201: } 26201: catch(...) 26201: { 26201: std::_Destroy(__first, __cur, __alloc); 26201: throw; 26201: } 26201: } 26201: 26201: template 26201: inline void 26201: __uninitialized_default_a(_ForwardIterator __first, 26201: _ForwardIterator __last, 26201: allocator<_Tp>&) 26201: { std::__uninitialized_default(__first, __last); } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: _ForwardIterator 26201: __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, 26201: _Allocator& __alloc) 26201: { 26201: _ForwardIterator __cur = __first; 26201: try 26201: { 26201: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 26201: for (; __n > 0; --__n, (void) ++__cur) 26201: __traits::construct(__alloc, std::__addressof(*__cur)); 26201: return __cur; 26201: } 26201: catch(...) 26201: { 26201: std::_Destroy(__first, __cur, __alloc); 26201: throw; 26201: } 26201: } 26201: 26201: template 26201: inline _ForwardIterator 26201: __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, 26201: allocator<_Tp>&) 26201: { return std::__uninitialized_default_n(__first, __n); } 26201: 26201: template 26201: struct __uninitialized_default_novalue_1 26201: { 26201: template 26201: static void 26201: __uninit_default_novalue(_ForwardIterator __first, 26201: _ForwardIterator __last) 26201: { 26201: _ForwardIterator __cur = __first; 26201: try 26201: { 26201: for (; __cur != __last; ++__cur) 26201: std::_Construct_novalue(std::__addressof(*__cur)); 26201: } 26201: catch(...) 26201: { 26201: std::_Destroy(__first, __cur); 26201: throw; 26201: } 26201: } 26201: }; 26201: 26201: template<> 26201: struct __uninitialized_default_novalue_1 26201: { 26201: template 26201: static void 26201: __uninit_default_novalue(_ForwardIterator __first, 26201: _ForwardIterator __last) 26201: { 26201: } 26201: }; 26201: 26201: template 26201: struct __uninitialized_default_novalue_n_1 26201: { 26201: template 26201: static _ForwardIterator 26201: __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) 26201: { 26201: _ForwardIterator __cur = __first; 26201: try 26201: { 26201: for (; __n > 0; --__n, (void) ++__cur) 26201: std::_Construct_novalue(std::__addressof(*__cur)); 26201: return __cur; 26201: } 26201: catch(...) 26201: { 26201: std::_Destroy(__first, __cur); 26201: throw; 26201: } 26201: } 26201: }; 26201: 26201: template<> 26201: struct __uninitialized_default_novalue_n_1 26201: { 26201: template 26201: static _ForwardIterator 26201: __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) 26201: { return std::next(__first, __n); } 26201: }; 26201: 26201: 26201: 26201: 26201: template 26201: inline void 26201: __uninitialized_default_novalue(_ForwardIterator __first, 26201: _ForwardIterator __last) 26201: { 26201: typedef typename iterator_traits<_ForwardIterator>::value_type 26201: _ValueType; 26201: 26201: std::__uninitialized_default_novalue_1< 26201: is_trivially_default_constructible<_ValueType>::value>:: 26201: __uninit_default_novalue(__first, __last); 26201: } 26201: 26201: 26201: 26201: template 26201: inline _ForwardIterator 26201: __uninitialized_default_novalue_n(_ForwardIterator __first, _Size __n) 26201: { 26201: typedef typename iterator_traits<_ForwardIterator>::value_type 26201: _ValueType; 26201: 26201: return __uninitialized_default_novalue_n_1< 26201: is_trivially_default_constructible<_ValueType>::value>:: 26201: __uninit_default_novalue_n(__first, __n); 26201: } 26201: 26201: template 26201: _ForwardIterator 26201: __uninitialized_copy_n(_InputIterator __first, _Size __n, 26201: _ForwardIterator __result, input_iterator_tag) 26201: { 26201: _ForwardIterator __cur = __result; 26201: try 26201: { 26201: for (; __n > 0; --__n, (void) ++__first, ++__cur) 26201: std::_Construct(std::__addressof(*__cur), *__first); 26201: return __cur; 26201: } 26201: catch(...) 26201: { 26201: std::_Destroy(__result, __cur); 26201: throw; 26201: } 26201: } 26201: 26201: template 26201: inline _ForwardIterator 26201: __uninitialized_copy_n(_RandomAccessIterator __first, _Size __n, 26201: _ForwardIterator __result, 26201: random_access_iterator_tag) 26201: { return std::uninitialized_copy(__first, __first + __n, __result); } 26201: 26201: template 26201: pair<_InputIterator, _ForwardIterator> 26201: __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, 26201: _ForwardIterator __result, input_iterator_tag) 26201: { 26201: _ForwardIterator __cur = __result; 26201: try 26201: { 26201: for (; __n > 0; --__n, (void) ++__first, ++__cur) 26201: std::_Construct(std::__addressof(*__cur), *__first); 26201: return {__first, __cur}; 26201: } 26201: catch(...) 26201: { 26201: std::_Destroy(__result, __cur); 26201: throw; 26201: } 26201: } 26201: 26201: template 26201: inline pair<_RandomAccessIterator, _ForwardIterator> 26201: __uninitialized_copy_n_pair(_RandomAccessIterator __first, _Size __n, 26201: _ForwardIterator __result, 26201: random_access_iterator_tag) 26201: { 26201: auto __second_res = uninitialized_copy(__first, __first + __n, __result); 26201: auto __first_res = std::next(__first, __n); 26201: return {__first_res, __second_res}; 26201: } 26201: # 852 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_uninitialized.h" 3 26201: template 26201: inline _ForwardIterator 26201: uninitialized_copy_n(_InputIterator __first, _Size __n, 26201: _ForwardIterator __result) 26201: { return std::__uninitialized_copy_n(__first, __n, __result, 26201: std::__iterator_category(__first)); } 26201: 26201: 26201: template 26201: inline pair<_InputIterator, _ForwardIterator> 26201: __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, 26201: _ForwardIterator __result) 26201: { 26201: return 26201: std::__uninitialized_copy_n_pair(__first, __n, __result, 26201: std::__iterator_category(__first)); 26201: } 26201: 26201: 26201: 26201: 26201: #define __cpp_lib_raw_memory_algorithms 201606L 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline void 26201: uninitialized_default_construct(_ForwardIterator __first, 26201: _ForwardIterator __last) 26201: { 26201: __uninitialized_default_novalue(__first, __last); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline _ForwardIterator 26201: uninitialized_default_construct_n(_ForwardIterator __first, _Size __count) 26201: { 26201: return __uninitialized_default_novalue_n(__first, __count); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline void 26201: uninitialized_value_construct(_ForwardIterator __first, 26201: _ForwardIterator __last) 26201: { 26201: return __uninitialized_default(__first, __last); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline _ForwardIterator 26201: uninitialized_value_construct_n(_ForwardIterator __first, _Size __count) 26201: { 26201: return __uninitialized_default_n(__first, __count); 26201: } 26201: # 934 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_uninitialized.h" 3 26201: template 26201: inline _ForwardIterator 26201: uninitialized_move(_InputIterator __first, _InputIterator __last, 26201: _ForwardIterator __result) 26201: { 26201: return std::uninitialized_copy 26201: (std::make_move_iterator(__first), 26201: std::make_move_iterator(__last), __result); 26201: } 26201: # 951 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_uninitialized.h" 3 26201: template 26201: inline pair<_InputIterator, _ForwardIterator> 26201: uninitialized_move_n(_InputIterator __first, _Size __count, 26201: _ForwardIterator __result) 26201: { 26201: auto __res = std::__uninitialized_copy_n_pair 26201: (std::make_move_iterator(__first), 26201: __count, __result); 26201: return {__res.first.base(), __res.second}; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline void 26201: __relocate_object_a(_Tp* __restrict __dest, _Up* __restrict __orig, 26201: _Allocator& __alloc) 26201: noexcept(noexcept(std::allocator_traits<_Allocator>::construct(__alloc, 26201: __dest, std::move(*__orig))) 26201: && noexcept(std::allocator_traits<_Allocator>::destroy( 26201: __alloc, std::__addressof(*__orig)))) 26201: { 26201: typedef std::allocator_traits<_Allocator> __traits; 26201: __traits::construct(__alloc, __dest, std::move(*__orig)); 26201: __traits::destroy(__alloc, std::__addressof(*__orig)); 26201: } 26201: 26201: 26201: 26201: template 26201: struct __is_bitwise_relocatable 26201: : is_trivial<_Tp> { }; 26201: 26201: template 26201: inline __enable_if_t::value, _Tp*> 26201: __relocate_a_1(_Tp* __first, _Tp* __last, 26201: _Tp* __result, allocator<_Up>&) noexcept 26201: { 26201: ptrdiff_t __count = __last - __first; 26201: if (__count > 0) 26201: __builtin_memmove(__result, __first, __count * sizeof(_Tp)); 26201: return __result + __count; 26201: } 26201: 26201: template 26201: inline _ForwardIterator 26201: __relocate_a_1(_InputIterator __first, _InputIterator __last, 26201: _ForwardIterator __result, _Allocator& __alloc) 26201: noexcept(noexcept(std::__relocate_object_a(std::addressof(*__result), 26201: std::addressof(*__first), 26201: __alloc))) 26201: { 26201: typedef typename iterator_traits<_InputIterator>::value_type 26201: _ValueType; 26201: typedef typename iterator_traits<_ForwardIterator>::value_type 26201: _ValueType2; 26201: static_assert(std::is_same<_ValueType, _ValueType2>::value, 26201: "relocation is only possible for values of the same type"); 26201: _ForwardIterator __cur = __result; 26201: for (; __first != __last; ++__first, (void)++__cur) 26201: std::__relocate_object_a(std::__addressof(*__cur), 26201: std::__addressof(*__first), __alloc); 26201: return __cur; 26201: } 26201: 26201: template 26201: inline _ForwardIterator 26201: __relocate_a(_InputIterator __first, _InputIterator __last, 26201: _ForwardIterator __result, _Allocator& __alloc) 26201: noexcept(noexcept(__relocate_a_1(std::__niter_base(__first), 26201: std::__niter_base(__last), 26201: std::__niter_base(__result), __alloc))) 26201: { 26201: return __relocate_a_1(std::__niter_base(__first), 26201: std::__niter_base(__last), 26201: std::__niter_base(__result), __alloc); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 67 "/usr/x86_64-linux-gnu/include/c++/10/vector" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 1 3 26201: # 57 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: #define _STL_VECTOR_H 1 26201: # 77 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: template 26201: struct _Vector_base 26201: { 26201: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 26201: rebind<_Tp>::other _Tp_alloc_type; 26201: typedef typename __gnu_cxx::__alloc_traits<_Tp_alloc_type>::pointer 26201: pointer; 26201: 26201: struct _Vector_impl_data 26201: { 26201: pointer _M_start; 26201: pointer _M_finish; 26201: pointer _M_end_of_storage; 26201: 26201: _Vector_impl_data() noexcept 26201: : _M_start(), _M_finish(), _M_end_of_storage() 26201: { } 26201: 26201: 26201: _Vector_impl_data(_Vector_impl_data&& __x) noexcept 26201: : _M_start(__x._M_start), _M_finish(__x._M_finish), 26201: _M_end_of_storage(__x._M_end_of_storage) 26201: { __x._M_start = __x._M_finish = __x._M_end_of_storage = pointer(); } 26201: 26201: 26201: void 26201: _M_copy_data(_Vector_impl_data const& __x) noexcept 26201: { 26201: _M_start = __x._M_start; 26201: _M_finish = __x._M_finish; 26201: _M_end_of_storage = __x._M_end_of_storage; 26201: } 26201: 26201: void 26201: _M_swap_data(_Vector_impl_data& __x) noexcept 26201: { 26201: 26201: 26201: _Vector_impl_data __tmp; 26201: __tmp._M_copy_data(*this); 26201: _M_copy_data(__x); 26201: __x._M_copy_data(__tmp); 26201: } 26201: }; 26201: 26201: struct _Vector_impl 26201: : public _Tp_alloc_type, public _Vector_impl_data 26201: { 26201: _Vector_impl() noexcept(is_nothrow_default_constructible<_Tp_alloc_type>::value) 26201: 26201: : _Tp_alloc_type() 26201: { } 26201: 26201: _Vector_impl(_Tp_alloc_type const& __a) noexcept 26201: : _Tp_alloc_type(__a) 26201: { } 26201: 26201: 26201: 26201: 26201: _Vector_impl(_Vector_impl&& __x) noexcept 26201: : _Tp_alloc_type(std::move(__x)), _Vector_impl_data(std::move(__x)) 26201: { } 26201: 26201: _Vector_impl(_Tp_alloc_type&& __a) noexcept 26201: : _Tp_alloc_type(std::move(__a)) 26201: { } 26201: 26201: _Vector_impl(_Tp_alloc_type&& __a, _Vector_impl&& __rv) noexcept 26201: : _Tp_alloc_type(std::move(__a)), _Vector_impl_data(std::move(__rv)) 26201: { } 26201: # 264 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: #define _GLIBCXX_ASAN_ANNOTATE_REINIT 26201: #define _GLIBCXX_ASAN_ANNOTATE_GROW(n) 26201: #define _GLIBCXX_ASAN_ANNOTATE_GREW(n) 26201: #define _GLIBCXX_ASAN_ANNOTATE_SHRINK(n) 26201: #define _GLIBCXX_ASAN_ANNOTATE_BEFORE_DEALLOC 26201: 26201: }; 26201: 26201: public: 26201: typedef _Alloc allocator_type; 26201: 26201: _Tp_alloc_type& 26201: _M_get_Tp_allocator() noexcept 26201: { return this->_M_impl; } 26201: 26201: const _Tp_alloc_type& 26201: _M_get_Tp_allocator() const noexcept 26201: { return this->_M_impl; } 26201: 26201: allocator_type 26201: get_allocator() const noexcept 26201: { return allocator_type(_M_get_Tp_allocator()); } 26201: 26201: 26201: _Vector_base() = default; 26201: 26201: 26201: 26201: 26201: _Vector_base(const allocator_type& __a) noexcept 26201: : _M_impl(__a) { } 26201: 26201: 26201: 26201: _Vector_base(size_t __n) 26201: : _M_impl() 26201: { _M_create_storage(__n); } 26201: 26201: 26201: _Vector_base(size_t __n, const allocator_type& __a) 26201: : _M_impl(__a) 26201: { _M_create_storage(__n); } 26201: 26201: 26201: _Vector_base(_Vector_base&&) = default; 26201: 26201: 26201: 26201: _Vector_base(_Tp_alloc_type&& __a) noexcept 26201: : _M_impl(std::move(__a)) { } 26201: 26201: _Vector_base(_Vector_base&& __x, const allocator_type& __a) 26201: : _M_impl(__a) 26201: { 26201: if (__x.get_allocator() == __a) 26201: this->_M_impl._M_swap_data(__x._M_impl); 26201: else 26201: { 26201: size_t __n = __x._M_impl._M_finish - __x._M_impl._M_start; 26201: _M_create_storage(__n); 26201: } 26201: } 26201: 26201: 26201: _Vector_base(const allocator_type& __a, _Vector_base&& __x) 26201: : _M_impl(_Tp_alloc_type(__a), std::move(__x._M_impl)) 26201: { } 26201: 26201: 26201: ~_Vector_base() noexcept 26201: { 26201: _M_deallocate(_M_impl._M_start, 26201: _M_impl._M_end_of_storage - _M_impl._M_start); 26201: } 26201: 26201: public: 26201: _Vector_impl _M_impl; 26201: 26201: pointer 26201: _M_allocate(size_t __n) 26201: { 26201: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; 26201: return __n != 0 ? _Tr::allocate(_M_impl, __n) : pointer(); 26201: } 26201: 26201: void 26201: _M_deallocate(pointer __p, size_t __n) 26201: { 26201: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; 26201: if (__p) 26201: _Tr::deallocate(_M_impl, __p, __n); 26201: } 26201: 26201: protected: 26201: void 26201: _M_create_storage(size_t __n) 26201: { 26201: this->_M_impl._M_start = this->_M_allocate(__n); 26201: this->_M_impl._M_finish = this->_M_impl._M_start; 26201: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 26201: } 26201: }; 26201: # 388 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: template > 26201: class vector : protected _Vector_base<_Tp, _Alloc> 26201: { 26201: # 401 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: static_assert(is_same::type, _Tp>::value, 26201: "std::vector must have a non-const, non-volatile value_type"); 26201: 26201: static_assert(is_same::value, 26201: "std::vector must have the same value_type as its allocator"); 26201: 26201: 26201: 26201: typedef _Vector_base<_Tp, _Alloc> _Base; 26201: typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; 26201: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Alloc_traits; 26201: 26201: public: 26201: typedef _Tp value_type; 26201: typedef typename _Base::pointer pointer; 26201: typedef typename _Alloc_traits::const_pointer const_pointer; 26201: typedef typename _Alloc_traits::reference reference; 26201: typedef typename _Alloc_traits::const_reference const_reference; 26201: typedef __gnu_cxx::__normal_iterator iterator; 26201: typedef __gnu_cxx::__normal_iterator 26201: const_iterator; 26201: typedef std::reverse_iterator const_reverse_iterator; 26201: typedef std::reverse_iterator reverse_iterator; 26201: typedef size_t size_type; 26201: typedef ptrdiff_t difference_type; 26201: typedef _Alloc allocator_type; 26201: 26201: private: 26201: 26201: static constexpr bool 26201: _S_nothrow_relocate(true_type) 26201: { 26201: return noexcept(std::__relocate_a(std::declval(), 26201: std::declval(), 26201: std::declval(), 26201: std::declval<_Tp_alloc_type&>())); 26201: } 26201: 26201: static constexpr bool 26201: _S_nothrow_relocate(false_type) 26201: { return false; } 26201: 26201: static constexpr bool 26201: _S_use_relocate() 26201: { 26201: 26201: 26201: 26201: return _S_nothrow_relocate(__is_move_insertable<_Tp_alloc_type>{}); 26201: } 26201: 26201: static pointer 26201: _S_do_relocate(pointer __first, pointer __last, pointer __result, 26201: _Tp_alloc_type& __alloc, true_type) noexcept 26201: { 26201: return std::__relocate_a(__first, __last, __result, __alloc); 26201: } 26201: 26201: static pointer 26201: _S_do_relocate(pointer, pointer, pointer __result, 26201: _Tp_alloc_type&, false_type) noexcept 26201: { return __result; } 26201: 26201: static pointer 26201: _S_relocate(pointer __first, pointer __last, pointer __result, 26201: _Tp_alloc_type& __alloc) noexcept 26201: { 26201: using __do_it = __bool_constant<_S_use_relocate()>; 26201: return _S_do_relocate(__first, __last, __result, __alloc, __do_it{}); 26201: } 26201: 26201: 26201: protected: 26201: using _Base::_M_allocate; 26201: using _Base::_M_deallocate; 26201: using _Base::_M_impl; 26201: using _Base::_M_get_Tp_allocator; 26201: 26201: public: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: vector() = default; 26201: # 496 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: explicit 26201: vector(const allocator_type& __a) noexcept 26201: : _Base(__a) { } 26201: # 509 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: explicit 26201: vector(size_type __n, const allocator_type& __a = allocator_type()) 26201: : _Base(_S_check_init_len(__n, __a), __a) 26201: { _M_default_initialize(__n); } 26201: # 522 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: vector(size_type __n, const value_type& __value, 26201: const allocator_type& __a = allocator_type()) 26201: : _Base(_S_check_init_len(__n, __a), __a) 26201: { _M_fill_initialize(__n, __value); } 26201: # 553 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: vector(const vector& __x) 26201: : _Base(__x.size(), 26201: _Alloc_traits::_S_select_on_copy(__x._M_get_Tp_allocator())) 26201: { 26201: this->_M_impl._M_finish = 26201: std::__uninitialized_copy_a(__x.begin(), __x.end(), 26201: this->_M_impl._M_start, 26201: _M_get_Tp_allocator()); 26201: } 26201: # 572 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: vector(vector&&) noexcept = default; 26201: 26201: 26201: vector(const vector& __x, const allocator_type& __a) 26201: : _Base(__x.size(), __a) 26201: { 26201: this->_M_impl._M_finish = 26201: std::__uninitialized_copy_a(__x.begin(), __x.end(), 26201: this->_M_impl._M_start, 26201: _M_get_Tp_allocator()); 26201: } 26201: 26201: private: 26201: vector(vector&& __rv, const allocator_type& __m, true_type) noexcept 26201: : _Base(__m, std::move(__rv)) 26201: { } 26201: 26201: vector(vector&& __rv, const allocator_type& __m, false_type) 26201: : _Base(__m) 26201: { 26201: if (__rv.get_allocator() == __m) 26201: this->_M_impl._M_swap_data(__rv._M_impl); 26201: else if (!__rv.empty()) 26201: { 26201: this->_M_create_storage(__rv.size()); 26201: this->_M_impl._M_finish = 26201: std::__uninitialized_move_a(__rv.begin(), __rv.end(), 26201: this->_M_impl._M_start, 26201: _M_get_Tp_allocator()); 26201: __rv.clear(); 26201: } 26201: } 26201: 26201: public: 26201: 26201: vector(vector&& __rv, const allocator_type& __m) 26201: noexcept( noexcept( 26201: vector(std::declval(), std::declval(), 26201: std::declval())) ) 26201: : vector(std::move(__rv), __m, typename _Alloc_traits::is_always_equal{}) 26201: { } 26201: # 625 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: vector(initializer_list __l, 26201: const allocator_type& __a = allocator_type()) 26201: : _Base(__a) 26201: { 26201: _M_range_initialize(__l.begin(), __l.end(), 26201: random_access_iterator_tag()); 26201: } 26201: # 651 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: template> 26201: vector(_InputIterator __first, _InputIterator __last, 26201: const allocator_type& __a = allocator_type()) 26201: : _Base(__a) 26201: { 26201: _M_range_initialize(__first, __last, 26201: std::__iterator_category(__first)); 26201: } 26201: # 678 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: ~vector() noexcept 26201: { 26201: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 26201: _M_get_Tp_allocator()); 26201: ; 26201: } 26201: # 694 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: vector& 26201: operator=(const vector& __x); 26201: # 708 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: vector& 26201: operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move()) 26201: { 26201: constexpr bool __move_storage = 26201: _Alloc_traits::_S_propagate_on_move_assign() 26201: || _Alloc_traits::_S_always_equal(); 26201: _M_move_assign(std::move(__x), __bool_constant<__move_storage>()); 26201: return *this; 26201: } 26201: # 729 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: vector& 26201: operator=(initializer_list __l) 26201: { 26201: this->_M_assign_aux(__l.begin(), __l.end(), 26201: random_access_iterator_tag()); 26201: return *this; 26201: } 26201: # 748 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: void 26201: assign(size_type __n, const value_type& __val) 26201: { _M_fill_assign(__n, __val); } 26201: # 765 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: template> 26201: void 26201: assign(_InputIterator __first, _InputIterator __last) 26201: { _M_assign_dispatch(__first, __last, __false_type()); } 26201: # 793 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: void 26201: assign(initializer_list __l) 26201: { 26201: this->_M_assign_aux(__l.begin(), __l.end(), 26201: random_access_iterator_tag()); 26201: } 26201: 26201: 26201: 26201: using _Base::get_allocator; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: iterator 26201: begin() noexcept 26201: { return iterator(this->_M_impl._M_start); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: const_iterator 26201: begin() const noexcept 26201: { return const_iterator(this->_M_impl._M_start); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: iterator 26201: end() noexcept 26201: { return iterator(this->_M_impl._M_finish); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: const_iterator 26201: end() const noexcept 26201: { return const_iterator(this->_M_impl._M_finish); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: reverse_iterator 26201: rbegin() noexcept 26201: { return reverse_iterator(end()); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: const_reverse_iterator 26201: rbegin() const noexcept 26201: { return const_reverse_iterator(end()); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: reverse_iterator 26201: rend() noexcept 26201: { return reverse_iterator(begin()); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: const_reverse_iterator 26201: rend() const noexcept 26201: { return const_reverse_iterator(begin()); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: const_iterator 26201: cbegin() const noexcept 26201: { return const_iterator(this->_M_impl._M_start); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: const_iterator 26201: cend() const noexcept 26201: { return const_iterator(this->_M_impl._M_finish); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: const_reverse_iterator 26201: crbegin() const noexcept 26201: { return const_reverse_iterator(end()); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: const_reverse_iterator 26201: crend() const noexcept 26201: { return const_reverse_iterator(begin()); } 26201: 26201: 26201: 26201: 26201: size_type 26201: size() const noexcept 26201: { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); } 26201: 26201: 26201: size_type 26201: max_size() const noexcept 26201: { return _S_max_size(_M_get_Tp_allocator()); } 26201: # 936 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: void 26201: resize(size_type __new_size) 26201: { 26201: if (__new_size > size()) 26201: _M_default_append(__new_size - size()); 26201: else if (__new_size < size()) 26201: _M_erase_at_end(this->_M_impl._M_start + __new_size); 26201: } 26201: # 956 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: void 26201: resize(size_type __new_size, const value_type& __x) 26201: { 26201: if (__new_size > size()) 26201: _M_fill_insert(end(), __new_size - size(), __x); 26201: else if (__new_size < size()) 26201: _M_erase_at_end(this->_M_impl._M_start + __new_size); 26201: } 26201: # 988 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: void 26201: shrink_to_fit() 26201: { _M_shrink_to_fit(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: size_type 26201: capacity() const noexcept 26201: { return size_type(this->_M_impl._M_end_of_storage 26201: - this->_M_impl._M_start); } 26201: 26201: 26201: 26201: 26201: 26201: [[__nodiscard__]] bool 26201: empty() const noexcept 26201: { return begin() == end(); } 26201: # 1027 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: void 26201: reserve(size_type __n); 26201: # 1042 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: reference 26201: operator[](size_type __n) noexcept 26201: { 26201: ; 26201: return *(this->_M_impl._M_start + __n); 26201: } 26201: # 1060 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: const_reference 26201: operator[](size_type __n) const noexcept 26201: { 26201: ; 26201: return *(this->_M_impl._M_start + __n); 26201: } 26201: 26201: protected: 26201: 26201: void 26201: _M_range_check(size_type __n) const 26201: { 26201: if (__n >= this->size()) 26201: __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") 26201: 26201: , 26201: __n, this->size()); 26201: } 26201: 26201: public: 26201: # 1091 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: reference 26201: at(size_type __n) 26201: { 26201: _M_range_check(__n); 26201: return (*this)[__n]; 26201: } 26201: # 1109 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: const_reference 26201: at(size_type __n) const 26201: { 26201: _M_range_check(__n); 26201: return (*this)[__n]; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: reference 26201: front() noexcept 26201: { 26201: ; 26201: return *begin(); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: const_reference 26201: front() const noexcept 26201: { 26201: ; 26201: return *begin(); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: reference 26201: back() noexcept 26201: { 26201: ; 26201: return *(end() - 1); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: const_reference 26201: back() const noexcept 26201: { 26201: ; 26201: return *(end() - 1); 26201: } 26201: # 1167 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: _Tp* 26201: data() noexcept 26201: { return _M_data_ptr(this->_M_impl._M_start); } 26201: 26201: const _Tp* 26201: data() const noexcept 26201: { return _M_data_ptr(this->_M_impl._M_start); } 26201: # 1186 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: void 26201: push_back(const value_type& __x) 26201: { 26201: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 26201: { 26201: ; 26201: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 26201: __x); 26201: ++this->_M_impl._M_finish; 26201: ; 26201: } 26201: else 26201: _M_realloc_insert(end(), __x); 26201: } 26201: 26201: 26201: void 26201: push_back(value_type&& __x) 26201: { emplace_back(std::move(__x)); } 26201: 26201: template 26201: 26201: reference 26201: 26201: 26201: 26201: emplace_back(_Args&&... __args); 26201: # 1224 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: void 26201: pop_back() noexcept 26201: { 26201: ; 26201: --this->_M_impl._M_finish; 26201: _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); 26201: ; 26201: } 26201: # 1246 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: template 26201: iterator 26201: emplace(const_iterator __position, _Args&&... __args) 26201: { return _M_emplace_aux(__position, std::forward<_Args>(__args)...); } 26201: # 1262 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: iterator 26201: insert(const_iterator __position, const value_type& __x); 26201: # 1292 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: iterator 26201: insert(const_iterator __position, value_type&& __x) 26201: { return _M_insert_rval(__position, std::move(__x)); } 26201: # 1309 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: iterator 26201: insert(const_iterator __position, initializer_list __l) 26201: { 26201: auto __offset = __position - cbegin(); 26201: _M_range_insert(begin() + __offset, __l.begin(), __l.end(), 26201: std::random_access_iterator_tag()); 26201: return begin() + __offset; 26201: } 26201: # 1334 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: iterator 26201: insert(const_iterator __position, size_type __n, const value_type& __x) 26201: { 26201: difference_type __offset = __position - cbegin(); 26201: _M_fill_insert(begin() + __offset, __n, __x); 26201: return begin() + __offset; 26201: } 26201: # 1376 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: template> 26201: iterator 26201: insert(const_iterator __position, _InputIterator __first, 26201: _InputIterator __last) 26201: { 26201: difference_type __offset = __position - cbegin(); 26201: _M_insert_dispatch(begin() + __offset, 26201: __first, __last, __false_type()); 26201: return begin() + __offset; 26201: } 26201: # 1428 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: iterator 26201: 26201: erase(const_iterator __position) 26201: { return _M_erase(begin() + (__position - cbegin())); } 26201: # 1455 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: iterator 26201: 26201: erase(const_iterator __first, const_iterator __last) 26201: { 26201: const auto __beg = begin(); 26201: const auto __cbeg = cbegin(); 26201: return _M_erase(__beg + (__first - __cbeg), __beg + (__last - __cbeg)); 26201: } 26201: # 1479 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: void 26201: swap(vector& __x) noexcept 26201: { 26201: 26201: 26201: ; 26201: 26201: this->_M_impl._M_swap_data(__x._M_impl); 26201: _Alloc_traits::_S_on_swap(_M_get_Tp_allocator(), 26201: __x._M_get_Tp_allocator()); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: void 26201: clear() noexcept 26201: { _M_erase_at_end(this->_M_impl._M_start); } 26201: 26201: protected: 26201: 26201: 26201: 26201: 26201: template 26201: pointer 26201: _M_allocate_and_copy(size_type __n, 26201: _ForwardIterator __first, _ForwardIterator __last) 26201: { 26201: pointer __result = this->_M_allocate(__n); 26201: try 26201: { 26201: std::__uninitialized_copy_a(__first, __last, __result, 26201: _M_get_Tp_allocator()); 26201: return __result; 26201: } 26201: catch(...) 26201: { 26201: _M_deallocate(__result, __n); 26201: throw; 26201: } 26201: } 26201: # 1556 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: template 26201: void 26201: _M_range_initialize(_InputIterator __first, _InputIterator __last, 26201: std::input_iterator_tag) 26201: { 26201: try { 26201: for (; __first != __last; ++__first) 26201: 26201: emplace_back(*__first); 26201: 26201: 26201: 26201: } catch(...) { 26201: clear(); 26201: throw; 26201: } 26201: } 26201: 26201: 26201: template 26201: void 26201: _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last, 26201: std::forward_iterator_tag) 26201: { 26201: const size_type __n = std::distance(__first, __last); 26201: this->_M_impl._M_start 26201: = this->_M_allocate(_S_check_init_len(__n, _M_get_Tp_allocator())); 26201: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 26201: this->_M_impl._M_finish = 26201: std::__uninitialized_copy_a(__first, __last, 26201: this->_M_impl._M_start, 26201: _M_get_Tp_allocator()); 26201: } 26201: 26201: 26201: 26201: void 26201: _M_fill_initialize(size_type __n, const value_type& __value) 26201: { 26201: this->_M_impl._M_finish = 26201: std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value, 26201: _M_get_Tp_allocator()); 26201: } 26201: 26201: 26201: 26201: void 26201: _M_default_initialize(size_type __n) 26201: { 26201: this->_M_impl._M_finish = 26201: std::__uninitialized_default_n_a(this->_M_impl._M_start, __n, 26201: _M_get_Tp_allocator()); 26201: } 26201: # 1618 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: template 26201: void 26201: _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) 26201: { _M_fill_assign(__n, __val); } 26201: 26201: 26201: template 26201: void 26201: _M_assign_dispatch(_InputIterator __first, _InputIterator __last, 26201: __false_type) 26201: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 26201: 26201: 26201: template 26201: void 26201: _M_assign_aux(_InputIterator __first, _InputIterator __last, 26201: std::input_iterator_tag); 26201: 26201: 26201: template 26201: void 26201: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 26201: std::forward_iterator_tag); 26201: 26201: 26201: 26201: void 26201: _M_fill_assign(size_type __n, const value_type& __val); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: void 26201: _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, 26201: __true_type) 26201: { _M_fill_insert(__pos, __n, __val); } 26201: 26201: 26201: template 26201: void 26201: _M_insert_dispatch(iterator __pos, _InputIterator __first, 26201: _InputIterator __last, __false_type) 26201: { 26201: _M_range_insert(__pos, __first, __last, 26201: std::__iterator_category(__first)); 26201: } 26201: 26201: 26201: template 26201: void 26201: _M_range_insert(iterator __pos, _InputIterator __first, 26201: _InputIterator __last, std::input_iterator_tag); 26201: 26201: 26201: template 26201: void 26201: _M_range_insert(iterator __pos, _ForwardIterator __first, 26201: _ForwardIterator __last, std::forward_iterator_tag); 26201: 26201: 26201: 26201: void 26201: _M_fill_insert(iterator __pos, size_type __n, const value_type& __x); 26201: 26201: 26201: 26201: void 26201: _M_default_append(size_type __n); 26201: 26201: bool 26201: _M_shrink_to_fit(); 26201: # 1705 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: struct _Temporary_value 26201: { 26201: template 26201: explicit 26201: _Temporary_value(vector* __vec, _Args&&... __args) : _M_this(__vec) 26201: { 26201: _Alloc_traits::construct(_M_this->_M_impl, _M_ptr(), 26201: std::forward<_Args>(__args)...); 26201: } 26201: 26201: ~_Temporary_value() 26201: { _Alloc_traits::destroy(_M_this->_M_impl, _M_ptr()); } 26201: 26201: value_type& 26201: _M_val() { return *_M_ptr(); } 26201: 26201: private: 26201: _Tp* 26201: _M_ptr() { return reinterpret_cast<_Tp*>(&__buf); } 26201: 26201: vector* _M_this; 26201: typename aligned_storage::type __buf; 26201: }; 26201: 26201: 26201: 26201: template 26201: void 26201: _M_insert_aux(iterator __position, _Arg&& __arg); 26201: 26201: template 26201: void 26201: _M_realloc_insert(iterator __position, _Args&&... __args); 26201: 26201: 26201: iterator 26201: _M_insert_rval(const_iterator __position, value_type&& __v); 26201: 26201: 26201: template 26201: iterator 26201: _M_emplace_aux(const_iterator __position, _Args&&... __args); 26201: 26201: 26201: iterator 26201: _M_emplace_aux(const_iterator __position, value_type&& __v) 26201: { return _M_insert_rval(__position, std::move(__v)); } 26201: 26201: 26201: 26201: size_type 26201: _M_check_len(size_type __n, const char* __s) const 26201: { 26201: if (max_size() - size() < __n) 26201: __throw_length_error((__s)); 26201: 26201: const size_type __len = size() + (std::max)(size(), __n); 26201: return (__len < size() || __len > max_size()) ? max_size() : __len; 26201: } 26201: 26201: 26201: static size_type 26201: _S_check_init_len(size_type __n, const allocator_type& __a) 26201: { 26201: if (__n > _S_max_size(_Tp_alloc_type(__a))) 26201: __throw_length_error( 26201: ("cannot create std::vector larger than max_size()")); 26201: return __n; 26201: } 26201: 26201: static size_type 26201: _S_max_size(const _Tp_alloc_type& __a) noexcept 26201: { 26201: 26201: 26201: 26201: const size_t __diffmax 26201: = __gnu_cxx::__numeric_traits::__max / sizeof(_Tp); 26201: const size_t __allocmax = _Alloc_traits::max_size(__a); 26201: return (std::min)(__diffmax, __allocmax); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: void 26201: _M_erase_at_end(pointer __pos) noexcept 26201: { 26201: if (size_type __n = this->_M_impl._M_finish - __pos) 26201: { 26201: std::_Destroy(__pos, this->_M_impl._M_finish, 26201: _M_get_Tp_allocator()); 26201: this->_M_impl._M_finish = __pos; 26201: ; 26201: } 26201: } 26201: 26201: iterator 26201: _M_erase(iterator __position); 26201: 26201: iterator 26201: _M_erase(iterator __first, iterator __last); 26201: 26201: 26201: private: 26201: 26201: 26201: 26201: void 26201: _M_move_assign(vector&& __x, true_type) noexcept 26201: { 26201: vector __tmp(get_allocator()); 26201: this->_M_impl._M_swap_data(__x._M_impl); 26201: __tmp._M_impl._M_swap_data(__x._M_impl); 26201: std::__alloc_on_move(_M_get_Tp_allocator(), __x._M_get_Tp_allocator()); 26201: } 26201: 26201: 26201: 26201: void 26201: _M_move_assign(vector&& __x, false_type) 26201: { 26201: if (__x._M_get_Tp_allocator() == this->_M_get_Tp_allocator()) 26201: _M_move_assign(std::move(__x), true_type()); 26201: else 26201: { 26201: 26201: 26201: this->_M_assign_aux(std::make_move_iterator(__x.begin()), 26201: std::make_move_iterator(__x.end()), 26201: std::random_access_iterator_tag()); 26201: __x.clear(); 26201: } 26201: } 26201: 26201: 26201: template 26201: _Up* 26201: _M_data_ptr(_Up* __ptr) const noexcept 26201: { return __ptr; } 26201: 26201: 26201: template 26201: typename std::pointer_traits<_Ptr>::element_type* 26201: _M_data_ptr(_Ptr __ptr) const 26201: { return empty() ? nullptr : std::__to_address(__ptr); } 26201: # 1868 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: }; 26201: 26201: 26201: template::value_type, 26201: typename _Allocator = allocator<_ValT>, 26201: typename = _RequireInputIter<_InputIterator>, 26201: typename = _RequireAllocator<_Allocator>> 26201: vector(_InputIterator, _InputIterator, _Allocator = _Allocator()) 26201: -> vector<_ValT, _Allocator>; 26201: # 1890 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: template 26201: inline bool 26201: operator==(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 26201: { return (__x.size() == __y.size() 26201: && std::equal(__x.begin(), __x.end(), __y.begin())); } 26201: # 1928 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_vector.h" 3 26201: template 26201: inline bool 26201: operator<(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 26201: { return std::lexicographical_compare(__x.begin(), __x.end(), 26201: __y.begin(), __y.end()); } 26201: 26201: 26201: template 26201: inline bool 26201: operator!=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 26201: { return !(__x == __y); } 26201: 26201: 26201: template 26201: inline bool 26201: operator>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 26201: { return __y < __x; } 26201: 26201: 26201: template 26201: inline bool 26201: operator<=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 26201: { return !(__y < __x); } 26201: 26201: 26201: template 26201: inline bool 26201: operator>=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 26201: { return !(__x < __y); } 26201: 26201: 26201: 26201: template 26201: inline void 26201: swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y) 26201: noexcept(noexcept(__x.swap(__y))) 26201: { __x.swap(__y); } 26201: 26201: 26201: 26201: 26201: namespace __detail::__variant 26201: { 26201: template struct _Never_valueless_alt; 26201: 26201: 26201: 26201: template 26201: struct _Never_valueless_alt> 26201: : std::is_nothrow_move_assignable> 26201: { }; 26201: } 26201: 26201: 26201: 26201: } 26201: # 68 "/usr/x86_64-linux-gnu/include/c++/10/vector" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_bvector.h" 1 3 26201: # 57 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_bvector.h" 3 26201: #define _STL_BVECTOR_H 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: typedef unsigned long _Bit_type; 26201: enum { _S_word_bit = int(8 * sizeof(_Bit_type)) }; 26201: 26201: struct _Bit_reference 26201: { 26201: _Bit_type * _M_p; 26201: _Bit_type _M_mask; 26201: 26201: _Bit_reference(_Bit_type * __x, _Bit_type __y) 26201: : _M_p(__x), _M_mask(__y) { } 26201: 26201: _Bit_reference() noexcept : _M_p(0), _M_mask(0) { } 26201: 26201: 26201: _Bit_reference(const _Bit_reference&) = default; 26201: 26201: 26201: operator bool() const noexcept 26201: { return !!(*_M_p & _M_mask); } 26201: 26201: _Bit_reference& 26201: operator=(bool __x) noexcept 26201: { 26201: if (__x) 26201: *_M_p |= _M_mask; 26201: else 26201: *_M_p &= ~_M_mask; 26201: return *this; 26201: } 26201: 26201: _Bit_reference& 26201: operator=(const _Bit_reference& __x) noexcept 26201: { return *this = bool(__x); } 26201: 26201: bool 26201: operator==(const _Bit_reference& __x) const 26201: { return bool(*this) == bool(__x); } 26201: 26201: bool 26201: operator<(const _Bit_reference& __x) const 26201: { return !bool(*this) && bool(__x); } 26201: 26201: void 26201: flip() noexcept 26201: { *_M_p ^= _M_mask; } 26201: }; 26201: 26201: 26201: inline void 26201: swap(_Bit_reference __x, _Bit_reference __y) noexcept 26201: { 26201: bool __tmp = __x; 26201: __x = __y; 26201: __y = __tmp; 26201: } 26201: 26201: inline void 26201: swap(_Bit_reference __x, bool& __y) noexcept 26201: { 26201: bool __tmp = __x; 26201: __x = __y; 26201: __y = __tmp; 26201: } 26201: 26201: inline void 26201: swap(bool& __x, _Bit_reference __y) noexcept 26201: { 26201: bool __tmp = __x; 26201: __x = __y; 26201: __y = __tmp; 26201: } 26201: 26201: 26201: struct _Bit_iterator_base 26201: : public std::iterator 26201: { 26201: _Bit_type * _M_p; 26201: unsigned int _M_offset; 26201: 26201: _Bit_iterator_base(_Bit_type * __x, unsigned int __y) 26201: : _M_p(__x), _M_offset(__y) { } 26201: 26201: void 26201: _M_bump_up() 26201: { 26201: if (_M_offset++ == int(_S_word_bit) - 1) 26201: { 26201: _M_offset = 0; 26201: ++_M_p; 26201: } 26201: } 26201: 26201: void 26201: _M_bump_down() 26201: { 26201: if (_M_offset-- == 0) 26201: { 26201: _M_offset = int(_S_word_bit) - 1; 26201: --_M_p; 26201: } 26201: } 26201: 26201: void 26201: _M_incr(ptrdiff_t __i) 26201: { 26201: difference_type __n = __i + _M_offset; 26201: _M_p += __n / int(_S_word_bit); 26201: __n = __n % int(_S_word_bit); 26201: if (__n < 0) 26201: { 26201: __n += int(_S_word_bit); 26201: --_M_p; 26201: } 26201: _M_offset = static_cast(__n); 26201: } 26201: 26201: friend bool 26201: operator==(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 26201: { return __x._M_p == __y._M_p && __x._M_offset == __y._M_offset; } 26201: # 199 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_bvector.h" 3 26201: friend bool 26201: operator<(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 26201: { 26201: return __x._M_p < __y._M_p 26201: || (__x._M_p == __y._M_p && __x._M_offset < __y._M_offset); 26201: } 26201: 26201: friend bool 26201: operator!=(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 26201: { return !(__x == __y); } 26201: 26201: friend bool 26201: operator>(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 26201: { return __y < __x; } 26201: 26201: friend bool 26201: operator<=(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 26201: { return !(__y < __x); } 26201: 26201: friend bool 26201: operator>=(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 26201: { return !(__x < __y); } 26201: 26201: 26201: friend ptrdiff_t 26201: operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 26201: { 26201: return (int(_S_word_bit) * (__x._M_p - __y._M_p) 26201: + __x._M_offset - __y._M_offset); 26201: } 26201: }; 26201: 26201: struct _Bit_iterator : public _Bit_iterator_base 26201: { 26201: typedef _Bit_reference reference; 26201: 26201: 26201: 26201: typedef _Bit_reference* pointer; 26201: 26201: typedef _Bit_iterator iterator; 26201: 26201: _Bit_iterator() : _Bit_iterator_base(0, 0) { } 26201: 26201: _Bit_iterator(_Bit_type * __x, unsigned int __y) 26201: : _Bit_iterator_base(__x, __y) { } 26201: 26201: iterator 26201: _M_const_cast() const 26201: { return *this; } 26201: 26201: reference 26201: operator*() const 26201: { return reference(_M_p, 1UL << _M_offset); } 26201: 26201: iterator& 26201: operator++() 26201: { 26201: _M_bump_up(); 26201: return *this; 26201: } 26201: 26201: iterator 26201: operator++(int) 26201: { 26201: iterator __tmp = *this; 26201: _M_bump_up(); 26201: return __tmp; 26201: } 26201: 26201: iterator& 26201: operator--() 26201: { 26201: _M_bump_down(); 26201: return *this; 26201: } 26201: 26201: iterator 26201: operator--(int) 26201: { 26201: iterator __tmp = *this; 26201: _M_bump_down(); 26201: return __tmp; 26201: } 26201: 26201: iterator& 26201: operator+=(difference_type __i) 26201: { 26201: _M_incr(__i); 26201: return *this; 26201: } 26201: 26201: iterator& 26201: operator-=(difference_type __i) 26201: { 26201: *this += -__i; 26201: return *this; 26201: } 26201: 26201: reference 26201: operator[](difference_type __i) const 26201: { return *(*this + __i); } 26201: 26201: friend iterator 26201: operator+(const iterator& __x, difference_type __n) 26201: { 26201: iterator __tmp = __x; 26201: __tmp += __n; 26201: return __tmp; 26201: } 26201: 26201: friend iterator 26201: operator+(difference_type __n, const iterator& __x) 26201: { return __x + __n; } 26201: 26201: friend iterator 26201: operator-(const iterator& __x, difference_type __n) 26201: { 26201: iterator __tmp = __x; 26201: __tmp -= __n; 26201: return __tmp; 26201: } 26201: }; 26201: 26201: struct _Bit_const_iterator : public _Bit_iterator_base 26201: { 26201: typedef bool reference; 26201: typedef bool const_reference; 26201: 26201: 26201: 26201: typedef const bool* pointer; 26201: 26201: typedef _Bit_const_iterator const_iterator; 26201: 26201: _Bit_const_iterator() : _Bit_iterator_base(0, 0) { } 26201: 26201: _Bit_const_iterator(_Bit_type * __x, unsigned int __y) 26201: : _Bit_iterator_base(__x, __y) { } 26201: 26201: _Bit_const_iterator(const _Bit_iterator& __x) 26201: : _Bit_iterator_base(__x._M_p, __x._M_offset) { } 26201: 26201: _Bit_iterator 26201: _M_const_cast() const 26201: { return _Bit_iterator(_M_p, _M_offset); } 26201: 26201: const_reference 26201: operator*() const 26201: { return _Bit_reference(_M_p, 1UL << _M_offset); } 26201: 26201: const_iterator& 26201: operator++() 26201: { 26201: _M_bump_up(); 26201: return *this; 26201: } 26201: 26201: const_iterator 26201: operator++(int) 26201: { 26201: const_iterator __tmp = *this; 26201: _M_bump_up(); 26201: return __tmp; 26201: } 26201: 26201: const_iterator& 26201: operator--() 26201: { 26201: _M_bump_down(); 26201: return *this; 26201: } 26201: 26201: const_iterator 26201: operator--(int) 26201: { 26201: const_iterator __tmp = *this; 26201: _M_bump_down(); 26201: return __tmp; 26201: } 26201: 26201: const_iterator& 26201: operator+=(difference_type __i) 26201: { 26201: _M_incr(__i); 26201: return *this; 26201: } 26201: 26201: const_iterator& 26201: operator-=(difference_type __i) 26201: { 26201: *this += -__i; 26201: return *this; 26201: } 26201: 26201: const_reference 26201: operator[](difference_type __i) const 26201: { return *(*this + __i); } 26201: 26201: friend const_iterator 26201: operator+(const const_iterator& __x, difference_type __n) 26201: { 26201: const_iterator __tmp = __x; 26201: __tmp += __n; 26201: return __tmp; 26201: } 26201: 26201: friend const_iterator 26201: operator-(const const_iterator& __x, difference_type __n) 26201: { 26201: const_iterator __tmp = __x; 26201: __tmp -= __n; 26201: return __tmp; 26201: } 26201: 26201: friend const_iterator 26201: operator+(difference_type __n, const const_iterator& __x) 26201: { return __x + __n; } 26201: }; 26201: 26201: inline void 26201: __fill_bvector(_Bit_type * __v, 26201: unsigned int __first, unsigned int __last, bool __x) 26201: { 26201: const _Bit_type __fmask = ~0ul << __first; 26201: const _Bit_type __lmask = ~0ul >> (_S_word_bit - __last); 26201: const _Bit_type __mask = __fmask & __lmask; 26201: 26201: if (__x) 26201: *__v |= __mask; 26201: else 26201: *__v &= ~__mask; 26201: } 26201: 26201: inline void 26201: fill(_Bit_iterator __first, _Bit_iterator __last, const bool& __x) 26201: { 26201: if (__first._M_p != __last._M_p) 26201: { 26201: _Bit_type* __first_p = __first._M_p; 26201: if (__first._M_offset != 0) 26201: __fill_bvector(__first_p++, __first._M_offset, _S_word_bit, __x); 26201: 26201: __builtin_memset(__first_p, __x ? ~0 : 0, 26201: (__last._M_p - __first_p) * sizeof(_Bit_type)); 26201: 26201: if (__last._M_offset != 0) 26201: __fill_bvector(__last._M_p, 0, __last._M_offset, __x); 26201: } 26201: else if (__first._M_offset != __last._M_offset) 26201: __fill_bvector(__first._M_p, __first._M_offset, __last._M_offset, __x); 26201: } 26201: 26201: template 26201: struct _Bvector_base 26201: { 26201: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 26201: rebind<_Bit_type>::other _Bit_alloc_type; 26201: typedef typename __gnu_cxx::__alloc_traits<_Bit_alloc_type> 26201: _Bit_alloc_traits; 26201: typedef typename _Bit_alloc_traits::pointer _Bit_pointer; 26201: 26201: struct _Bvector_impl_data 26201: { 26201: _Bit_iterator _M_start; 26201: _Bit_iterator _M_finish; 26201: _Bit_pointer _M_end_of_storage; 26201: 26201: _Bvector_impl_data() noexcept 26201: : _M_start(), _M_finish(), _M_end_of_storage() 26201: { } 26201: 26201: 26201: _Bvector_impl_data(_Bvector_impl_data&& __x) noexcept 26201: : _M_start(__x._M_start), _M_finish(__x._M_finish) 26201: , _M_end_of_storage(__x._M_end_of_storage) 26201: { __x._M_reset(); } 26201: 26201: void 26201: _M_move_data(_Bvector_impl_data&& __x) noexcept 26201: { 26201: this->_M_start = __x._M_start; 26201: this->_M_finish = __x._M_finish; 26201: this->_M_end_of_storage = __x._M_end_of_storage; 26201: __x._M_reset(); 26201: } 26201: 26201: 26201: void 26201: _M_reset() noexcept 26201: { 26201: _M_start = _M_finish = _Bit_iterator(); 26201: _M_end_of_storage = _Bit_pointer(); 26201: } 26201: }; 26201: 26201: struct _Bvector_impl 26201: : public _Bit_alloc_type, public _Bvector_impl_data 26201: { 26201: public: 26201: _Bvector_impl() noexcept(is_nothrow_default_constructible<_Bit_alloc_type>::value) 26201: 26201: : _Bit_alloc_type() 26201: { } 26201: 26201: _Bvector_impl(const _Bit_alloc_type& __a) noexcept 26201: : _Bit_alloc_type(__a) 26201: { } 26201: 26201: 26201: _Bvector_impl(_Bvector_impl&&) = default; 26201: 26201: 26201: _Bit_type* 26201: _M_end_addr() const noexcept 26201: { 26201: if (this->_M_end_of_storage) 26201: return std::__addressof(this->_M_end_of_storage[-1]) + 1; 26201: return 0; 26201: } 26201: }; 26201: 26201: public: 26201: typedef _Alloc allocator_type; 26201: 26201: _Bit_alloc_type& 26201: _M_get_Bit_allocator() noexcept 26201: { return this->_M_impl; } 26201: 26201: const _Bit_alloc_type& 26201: _M_get_Bit_allocator() const noexcept 26201: { return this->_M_impl; } 26201: 26201: allocator_type 26201: get_allocator() const noexcept 26201: { return allocator_type(_M_get_Bit_allocator()); } 26201: 26201: 26201: _Bvector_base() = default; 26201: 26201: 26201: 26201: 26201: _Bvector_base(const allocator_type& __a) 26201: : _M_impl(__a) { } 26201: 26201: 26201: _Bvector_base(_Bvector_base&&) = default; 26201: 26201: 26201: ~_Bvector_base() 26201: { this->_M_deallocate(); } 26201: 26201: protected: 26201: _Bvector_impl _M_impl; 26201: 26201: _Bit_pointer 26201: _M_allocate(size_t __n) 26201: { return _Bit_alloc_traits::allocate(_M_impl, _S_nword(__n)); } 26201: 26201: void 26201: _M_deallocate() 26201: { 26201: if (_M_impl._M_start._M_p) 26201: { 26201: const size_t __n = _M_impl._M_end_addr() - _M_impl._M_start._M_p; 26201: _Bit_alloc_traits::deallocate(_M_impl, 26201: _M_impl._M_end_of_storage - __n, 26201: __n); 26201: _M_impl._M_reset(); 26201: } 26201: } 26201: 26201: 26201: void 26201: _M_move_data(_Bvector_base&& __x) noexcept 26201: { _M_impl._M_move_data(std::move(__x._M_impl)); } 26201: 26201: 26201: static size_t 26201: _S_nword(size_t __n) 26201: { return (__n + int(_S_word_bit) - 1) / int(_S_word_bit); } 26201: }; 26201: 26201: 26201: 26201: } 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: # 614 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_bvector.h" 3 26201: template 26201: class vector : protected _Bvector_base<_Alloc> 26201: { 26201: typedef _Bvector_base<_Alloc> _Base; 26201: typedef typename _Base::_Bit_pointer _Bit_pointer; 26201: typedef typename _Base::_Bit_alloc_traits _Bit_alloc_traits; 26201: 26201: 26201: friend struct std::hash; 26201: 26201: 26201: public: 26201: typedef bool value_type; 26201: typedef size_t size_type; 26201: typedef ptrdiff_t difference_type; 26201: typedef _Bit_reference reference; 26201: typedef bool const_reference; 26201: typedef _Bit_reference* pointer; 26201: typedef const bool* const_pointer; 26201: typedef _Bit_iterator iterator; 26201: typedef _Bit_const_iterator const_iterator; 26201: typedef std::reverse_iterator const_reverse_iterator; 26201: typedef std::reverse_iterator reverse_iterator; 26201: typedef _Alloc allocator_type; 26201: 26201: allocator_type 26201: get_allocator() const 26201: { return _Base::get_allocator(); } 26201: 26201: protected: 26201: using _Base::_M_allocate; 26201: using _Base::_M_deallocate; 26201: using _Base::_S_nword; 26201: using _Base::_M_get_Bit_allocator; 26201: 26201: public: 26201: 26201: vector() = default; 26201: 26201: 26201: 26201: 26201: explicit 26201: vector(const allocator_type& __a) 26201: : _Base(__a) { } 26201: 26201: 26201: explicit 26201: vector(size_type __n, const allocator_type& __a = allocator_type()) 26201: : vector(__n, false, __a) 26201: { } 26201: 26201: vector(size_type __n, const bool& __value, 26201: const allocator_type& __a = allocator_type()) 26201: 26201: 26201: 26201: 26201: 26201: : _Base(__a) 26201: { 26201: _M_initialize(__n); 26201: _M_initialize_value(__value); 26201: } 26201: 26201: vector(const vector& __x) 26201: : _Base(_Bit_alloc_traits::_S_select_on_copy(__x._M_get_Bit_allocator())) 26201: { 26201: _M_initialize(__x.size()); 26201: _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start); 26201: } 26201: 26201: 26201: vector(vector&&) = default; 26201: 26201: vector(vector&& __x, const allocator_type& __a) 26201: noexcept(_Bit_alloc_traits::_S_always_equal()) 26201: : _Base(__a) 26201: { 26201: if (__x.get_allocator() == __a) 26201: this->_M_move_data(std::move(__x)); 26201: else 26201: { 26201: _M_initialize(__x.size()); 26201: _M_copy_aligned(__x.begin(), __x.end(), begin()); 26201: __x.clear(); 26201: } 26201: } 26201: 26201: vector(const vector& __x, const allocator_type& __a) 26201: : _Base(__a) 26201: { 26201: _M_initialize(__x.size()); 26201: _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start); 26201: } 26201: 26201: vector(initializer_list __l, 26201: const allocator_type& __a = allocator_type()) 26201: : _Base(__a) 26201: { 26201: _M_initialize_range(__l.begin(), __l.end(), 26201: random_access_iterator_tag()); 26201: } 26201: 26201: 26201: 26201: template> 26201: vector(_InputIterator __first, _InputIterator __last, 26201: const allocator_type& __a = allocator_type()) 26201: : _Base(__a) 26201: { _M_initialize_dispatch(__first, __last, __false_type()); } 26201: # 737 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_bvector.h" 3 26201: ~vector() noexcept { } 26201: 26201: vector& 26201: operator=(const vector& __x) 26201: { 26201: if (&__x == this) 26201: return *this; 26201: 26201: if (_Bit_alloc_traits::_S_propagate_on_copy_assign()) 26201: { 26201: if (this->_M_get_Bit_allocator() != __x._M_get_Bit_allocator()) 26201: { 26201: this->_M_deallocate(); 26201: std::__alloc_on_copy(_M_get_Bit_allocator(), 26201: __x._M_get_Bit_allocator()); 26201: _M_initialize(__x.size()); 26201: } 26201: else 26201: std::__alloc_on_copy(_M_get_Bit_allocator(), 26201: __x._M_get_Bit_allocator()); 26201: } 26201: 26201: if (__x.size() > capacity()) 26201: { 26201: this->_M_deallocate(); 26201: _M_initialize(__x.size()); 26201: } 26201: this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), 26201: begin()); 26201: return *this; 26201: } 26201: 26201: 26201: vector& 26201: operator=(vector&& __x) noexcept(_Bit_alloc_traits::_S_nothrow_move()) 26201: { 26201: if (_Bit_alloc_traits::_S_propagate_on_move_assign() 26201: || this->_M_get_Bit_allocator() == __x._M_get_Bit_allocator()) 26201: { 26201: this->_M_deallocate(); 26201: this->_M_move_data(std::move(__x)); 26201: std::__alloc_on_move(_M_get_Bit_allocator(), 26201: __x._M_get_Bit_allocator()); 26201: } 26201: else 26201: { 26201: if (__x.size() > capacity()) 26201: { 26201: this->_M_deallocate(); 26201: _M_initialize(__x.size()); 26201: } 26201: this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), 26201: begin()); 26201: __x.clear(); 26201: } 26201: return *this; 26201: } 26201: 26201: vector& 26201: operator=(initializer_list __l) 26201: { 26201: this->assign (__l.begin(), __l.end()); 26201: return *this; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: void 26201: assign(size_type __n, const bool& __x) 26201: { _M_fill_assign(__n, __x); } 26201: 26201: 26201: template> 26201: void 26201: assign(_InputIterator __first, _InputIterator __last) 26201: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 26201: # 828 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_bvector.h" 3 26201: void 26201: assign(initializer_list __l) 26201: { _M_assign_aux(__l.begin(), __l.end(), random_access_iterator_tag()); } 26201: 26201: 26201: iterator 26201: begin() noexcept 26201: { return iterator(this->_M_impl._M_start._M_p, 0); } 26201: 26201: const_iterator 26201: begin() const noexcept 26201: { return const_iterator(this->_M_impl._M_start._M_p, 0); } 26201: 26201: iterator 26201: end() noexcept 26201: { return this->_M_impl._M_finish; } 26201: 26201: const_iterator 26201: end() const noexcept 26201: { return this->_M_impl._M_finish; } 26201: 26201: reverse_iterator 26201: rbegin() noexcept 26201: { return reverse_iterator(end()); } 26201: 26201: const_reverse_iterator 26201: rbegin() const noexcept 26201: { return const_reverse_iterator(end()); } 26201: 26201: reverse_iterator 26201: rend() noexcept 26201: { return reverse_iterator(begin()); } 26201: 26201: const_reverse_iterator 26201: rend() const noexcept 26201: { return const_reverse_iterator(begin()); } 26201: 26201: 26201: const_iterator 26201: cbegin() const noexcept 26201: { return const_iterator(this->_M_impl._M_start._M_p, 0); } 26201: 26201: const_iterator 26201: cend() const noexcept 26201: { return this->_M_impl._M_finish; } 26201: 26201: const_reverse_iterator 26201: crbegin() const noexcept 26201: { return const_reverse_iterator(end()); } 26201: 26201: const_reverse_iterator 26201: crend() const noexcept 26201: { return const_reverse_iterator(begin()); } 26201: 26201: 26201: size_type 26201: size() const noexcept 26201: { return size_type(end() - begin()); } 26201: 26201: size_type 26201: max_size() const noexcept 26201: { 26201: const size_type __isize = 26201: __gnu_cxx::__numeric_traits::__max 26201: - int(_S_word_bit) + 1; 26201: const size_type __asize 26201: = _Bit_alloc_traits::max_size(_M_get_Bit_allocator()); 26201: return (__asize <= __isize / int(_S_word_bit) 26201: ? __asize * int(_S_word_bit) : __isize); 26201: } 26201: 26201: size_type 26201: capacity() const noexcept 26201: { return size_type(const_iterator(this->_M_impl._M_end_addr(), 0) 26201: - begin()); } 26201: 26201: [[__nodiscard__]] bool 26201: empty() const noexcept 26201: { return begin() == end(); } 26201: 26201: reference 26201: operator[](size_type __n) 26201: { 26201: return *iterator(this->_M_impl._M_start._M_p 26201: + __n / int(_S_word_bit), __n % int(_S_word_bit)); 26201: } 26201: 26201: const_reference 26201: operator[](size_type __n) const 26201: { 26201: return *const_iterator(this->_M_impl._M_start._M_p 26201: + __n / int(_S_word_bit), __n % int(_S_word_bit)); 26201: } 26201: 26201: protected: 26201: void 26201: _M_range_check(size_type __n) const 26201: { 26201: if (__n >= this->size()) 26201: __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") 26201: 26201: , 26201: __n, this->size()); 26201: } 26201: 26201: public: 26201: reference 26201: at(size_type __n) 26201: { _M_range_check(__n); return (*this)[__n]; } 26201: 26201: const_reference 26201: at(size_type __n) const 26201: { _M_range_check(__n); return (*this)[__n]; } 26201: 26201: void 26201: reserve(size_type __n) 26201: { 26201: if (__n > max_size()) 26201: __throw_length_error(("vector::reserve")); 26201: if (capacity() < __n) 26201: _M_reallocate(__n); 26201: } 26201: 26201: reference 26201: front() 26201: { return *begin(); } 26201: 26201: const_reference 26201: front() const 26201: { return *begin(); } 26201: 26201: reference 26201: back() 26201: { return *(end() - 1); } 26201: 26201: const_reference 26201: back() const 26201: { return *(end() - 1); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: void 26201: data() noexcept { } 26201: 26201: void 26201: push_back(bool __x) 26201: { 26201: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) 26201: *this->_M_impl._M_finish++ = __x; 26201: else 26201: _M_insert_aux(end(), __x); 26201: } 26201: 26201: void 26201: swap(vector& __x) noexcept 26201: { 26201: std::swap(this->_M_impl._M_start, __x._M_impl._M_start); 26201: std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish); 26201: std::swap(this->_M_impl._M_end_of_storage, 26201: __x._M_impl._M_end_of_storage); 26201: _Bit_alloc_traits::_S_on_swap(_M_get_Bit_allocator(), 26201: __x._M_get_Bit_allocator()); 26201: } 26201: 26201: 26201: static void 26201: swap(reference __x, reference __y) noexcept 26201: { 26201: bool __tmp = __x; 26201: __x = __y; 26201: __y = __tmp; 26201: } 26201: 26201: iterator 26201: 26201: insert(const_iterator __position, const bool& __x = bool()) 26201: 26201: 26201: 26201: { 26201: const difference_type __n = __position - begin(); 26201: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr() 26201: && __position == end()) 26201: *this->_M_impl._M_finish++ = __x; 26201: else 26201: _M_insert_aux(__position._M_const_cast(), __x); 26201: return begin() + __n; 26201: } 26201: 26201: 26201: template> 26201: iterator 26201: insert(const_iterator __position, 26201: _InputIterator __first, _InputIterator __last) 26201: { 26201: difference_type __offset = __position - cbegin(); 26201: _M_insert_dispatch(__position._M_const_cast(), 26201: __first, __last, __false_type()); 26201: return begin() + __offset; 26201: } 26201: # 1044 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_bvector.h" 3 26201: iterator 26201: insert(const_iterator __position, size_type __n, const bool& __x) 26201: { 26201: difference_type __offset = __position - cbegin(); 26201: _M_fill_insert(__position._M_const_cast(), __n, __x); 26201: return begin() + __offset; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: iterator 26201: insert(const_iterator __p, initializer_list __l) 26201: { return this->insert(__p, __l.begin(), __l.end()); } 26201: 26201: 26201: void 26201: pop_back() 26201: { --this->_M_impl._M_finish; } 26201: 26201: iterator 26201: 26201: erase(const_iterator __position) 26201: 26201: 26201: 26201: { return _M_erase(__position._M_const_cast()); } 26201: 26201: iterator 26201: 26201: erase(const_iterator __first, const_iterator __last) 26201: 26201: 26201: 26201: { return _M_erase(__first._M_const_cast(), __last._M_const_cast()); } 26201: 26201: void 26201: resize(size_type __new_size, bool __x = bool()) 26201: { 26201: if (__new_size < size()) 26201: _M_erase_at_end(begin() + difference_type(__new_size)); 26201: else 26201: insert(end(), __new_size - size(), __x); 26201: } 26201: 26201: 26201: void 26201: shrink_to_fit() 26201: { _M_shrink_to_fit(); } 26201: 26201: 26201: void 26201: flip() noexcept 26201: { 26201: _Bit_type * const __end = this->_M_impl._M_end_addr(); 26201: for (_Bit_type * __p = this->_M_impl._M_start._M_p; __p != __end; ++__p) 26201: *__p = ~*__p; 26201: } 26201: 26201: void 26201: clear() noexcept 26201: { _M_erase_at_end(begin()); } 26201: 26201: 26201: template 26201: 26201: reference 26201: 26201: 26201: 26201: emplace_back(_Args&&... __args) 26201: { 26201: push_back(bool(__args...)); 26201: 26201: return back(); 26201: 26201: } 26201: 26201: template 26201: iterator 26201: emplace(const_iterator __pos, _Args&&... __args) 26201: { return insert(__pos, bool(__args...)); } 26201: 26201: 26201: protected: 26201: 26201: iterator 26201: _M_copy_aligned(const_iterator __first, const_iterator __last, 26201: iterator __result) 26201: { 26201: _Bit_type* __q = std::copy(__first._M_p, __last._M_p, __result._M_p); 26201: return std::copy(const_iterator(__last._M_p, 0), __last, 26201: iterator(__q, 0)); 26201: } 26201: 26201: void 26201: _M_initialize(size_type __n) 26201: { 26201: if (__n) 26201: { 26201: _Bit_pointer __q = this->_M_allocate(__n); 26201: this->_M_impl._M_end_of_storage = __q + _S_nword(__n); 26201: this->_M_impl._M_start = iterator(std::__addressof(*__q), 0); 26201: } 26201: else 26201: { 26201: this->_M_impl._M_end_of_storage = _Bit_pointer(); 26201: this->_M_impl._M_start = iterator(0, 0); 26201: } 26201: this->_M_impl._M_finish = this->_M_impl._M_start + difference_type(__n); 26201: 26201: } 26201: 26201: void 26201: _M_initialize_value(bool __x) 26201: { 26201: if (_Bit_type* __p = this->_M_impl._M_start._M_p) 26201: __builtin_memset(__p, __x ? ~0 : 0, 26201: (this->_M_impl._M_end_addr() - __p) 26201: * sizeof(_Bit_type)); 26201: } 26201: 26201: void 26201: _M_reallocate(size_type __n); 26201: 26201: 26201: bool 26201: _M_shrink_to_fit(); 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: void 26201: _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) 26201: { 26201: _M_initialize(static_cast(__n)); 26201: _M_initialize_value(__x); 26201: } 26201: 26201: template 26201: void 26201: _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, 26201: __false_type) 26201: { _M_initialize_range(__first, __last, 26201: std::__iterator_category(__first)); } 26201: 26201: template 26201: void 26201: _M_initialize_range(_InputIterator __first, _InputIterator __last, 26201: std::input_iterator_tag) 26201: { 26201: for (; __first != __last; ++__first) 26201: push_back(*__first); 26201: } 26201: 26201: template 26201: void 26201: _M_initialize_range(_ForwardIterator __first, _ForwardIterator __last, 26201: std::forward_iterator_tag) 26201: { 26201: const size_type __n = std::distance(__first, __last); 26201: _M_initialize(__n); 26201: std::copy(__first, __last, this->_M_impl._M_start); 26201: } 26201: # 1230 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_bvector.h" 3 26201: void 26201: _M_fill_assign(size_t __n, bool __x) 26201: { 26201: if (__n > size()) 26201: { 26201: _M_initialize_value(__x); 26201: insert(end(), __n - size(), __x); 26201: } 26201: else 26201: { 26201: _M_erase_at_end(begin() + __n); 26201: _M_initialize_value(__x); 26201: } 26201: } 26201: 26201: template 26201: void 26201: _M_assign_aux(_InputIterator __first, _InputIterator __last, 26201: std::input_iterator_tag) 26201: { 26201: iterator __cur = begin(); 26201: for (; __first != __last && __cur != end(); ++__cur, (void)++__first) 26201: *__cur = *__first; 26201: if (__first == __last) 26201: _M_erase_at_end(__cur); 26201: else 26201: insert(end(), __first, __last); 26201: } 26201: 26201: template 26201: void 26201: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 26201: std::forward_iterator_tag) 26201: { 26201: const size_type __len = std::distance(__first, __last); 26201: if (__len < size()) 26201: _M_erase_at_end(std::copy(__first, __last, begin())); 26201: else 26201: { 26201: _ForwardIterator __mid = __first; 26201: std::advance(__mid, size()); 26201: std::copy(__first, __mid, begin()); 26201: insert(end(), __mid, __last); 26201: } 26201: } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: void 26201: _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, 26201: __true_type) 26201: { _M_fill_insert(__pos, __n, __x); } 26201: 26201: template 26201: void 26201: _M_insert_dispatch(iterator __pos, 26201: _InputIterator __first, _InputIterator __last, 26201: __false_type) 26201: { _M_insert_range(__pos, __first, __last, 26201: std::__iterator_category(__first)); } 26201: 26201: void 26201: _M_fill_insert(iterator __position, size_type __n, bool __x); 26201: 26201: template 26201: void 26201: _M_insert_range(iterator __pos, _InputIterator __first, 26201: _InputIterator __last, std::input_iterator_tag) 26201: { 26201: for (; __first != __last; ++__first) 26201: { 26201: __pos = insert(__pos, *__first); 26201: ++__pos; 26201: } 26201: } 26201: 26201: template 26201: void 26201: _M_insert_range(iterator __position, _ForwardIterator __first, 26201: _ForwardIterator __last, std::forward_iterator_tag); 26201: 26201: void 26201: _M_insert_aux(iterator __position, bool __x); 26201: 26201: size_type 26201: _M_check_len(size_type __n, const char* __s) const 26201: { 26201: if (max_size() - size() < __n) 26201: __throw_length_error((__s)); 26201: 26201: const size_type __len = size() + std::max(size(), __n); 26201: return (__len < size() || __len > max_size()) ? max_size() : __len; 26201: } 26201: 26201: void 26201: _M_erase_at_end(iterator __pos) 26201: { this->_M_impl._M_finish = __pos; } 26201: 26201: iterator 26201: _M_erase(iterator __pos); 26201: 26201: iterator 26201: _M_erase(iterator __first, iterator __last); 26201: }; 26201: 26201: 26201: 26201: } 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: template 26201: struct hash> 26201: : public __hash_base> 26201: { 26201: size_t 26201: operator()(const std::vector&) const noexcept; 26201: }; 26201: 26201: 26201: } 26201: # 69 "/usr/x86_64-linux-gnu/include/c++/10/vector" 2 3 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/vector.tcc" 1 3 26201: # 57 "/usr/x86_64-linux-gnu/include/c++/10/bits/vector.tcc" 3 26201: #define _VECTOR_TCC 1 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: template 26201: void 26201: vector<_Tp, _Alloc>:: 26201: reserve(size_type __n) 26201: { 26201: if (__n > this->max_size()) 26201: __throw_length_error(("vector::reserve")); 26201: if (this->capacity() < __n) 26201: { 26201: const size_type __old_size = size(); 26201: pointer __tmp; 26201: 26201: if constexpr (_S_use_relocate()) 26201: { 26201: __tmp = this->_M_allocate(__n); 26201: _S_relocate(this->_M_impl._M_start, this->_M_impl._M_finish, 26201: __tmp, _M_get_Tp_allocator()); 26201: } 26201: else 26201: 26201: { 26201: __tmp = _M_allocate_and_copy(__n, 26201: std::__make_move_if_noexcept_iterator(this->_M_impl._M_start), 26201: std::__make_move_if_noexcept_iterator(this->_M_impl._M_finish)); 26201: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 26201: _M_get_Tp_allocator()); 26201: } 26201: ; 26201: _M_deallocate(this->_M_impl._M_start, 26201: this->_M_impl._M_end_of_storage 26201: - this->_M_impl._M_start); 26201: this->_M_impl._M_start = __tmp; 26201: this->_M_impl._M_finish = __tmp + __old_size; 26201: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 26201: } 26201: } 26201: 26201: 26201: template 26201: template 26201: 26201: typename vector<_Tp, _Alloc>::reference 26201: 26201: 26201: 26201: vector<_Tp, _Alloc>:: 26201: emplace_back(_Args&&... __args) 26201: { 26201: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 26201: { 26201: ; 26201: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 26201: std::forward<_Args>(__args)...); 26201: ++this->_M_impl._M_finish; 26201: ; 26201: } 26201: else 26201: _M_realloc_insert(end(), std::forward<_Args>(__args)...); 26201: 26201: return back(); 26201: 26201: } 26201: 26201: 26201: template 26201: typename vector<_Tp, _Alloc>::iterator 26201: vector<_Tp, _Alloc>:: 26201: 26201: insert(const_iterator __position, const value_type& __x) 26201: 26201: 26201: 26201: { 26201: const size_type __n = __position - begin(); 26201: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 26201: if (__position == end()) 26201: { 26201: ; 26201: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 26201: __x); 26201: ++this->_M_impl._M_finish; 26201: ; 26201: } 26201: else 26201: { 26201: 26201: const auto __pos = begin() + (__position - cbegin()); 26201: 26201: 26201: _Temporary_value __x_copy(this, __x); 26201: _M_insert_aux(__pos, std::move(__x_copy._M_val())); 26201: 26201: 26201: 26201: } 26201: else 26201: 26201: _M_realloc_insert(begin() + (__position - cbegin()), __x); 26201: 26201: 26201: 26201: 26201: return iterator(this->_M_impl._M_start + __n); 26201: } 26201: 26201: template 26201: typename vector<_Tp, _Alloc>::iterator 26201: vector<_Tp, _Alloc>:: 26201: _M_erase(iterator __position) 26201: { 26201: if (__position + 1 != end()) 26201: std::move(__position + 1, end(), __position); 26201: --this->_M_impl._M_finish; 26201: _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); 26201: ; 26201: return __position; 26201: } 26201: 26201: template 26201: typename vector<_Tp, _Alloc>::iterator 26201: vector<_Tp, _Alloc>:: 26201: _M_erase(iterator __first, iterator __last) 26201: { 26201: if (__first != __last) 26201: { 26201: if (__last != end()) 26201: std::move(__last, end(), __first); 26201: _M_erase_at_end(__first.base() + (end() - __last)); 26201: } 26201: return __first; 26201: } 26201: 26201: template 26201: vector<_Tp, _Alloc>& 26201: vector<_Tp, _Alloc>:: 26201: operator=(const vector<_Tp, _Alloc>& __x) 26201: { 26201: if (&__x != this) 26201: { 26201: ; 26201: 26201: if (_Alloc_traits::_S_propagate_on_copy_assign()) 26201: { 26201: if (!_Alloc_traits::_S_always_equal() 26201: && _M_get_Tp_allocator() != __x._M_get_Tp_allocator()) 26201: { 26201: 26201: this->clear(); 26201: _M_deallocate(this->_M_impl._M_start, 26201: this->_M_impl._M_end_of_storage 26201: - this->_M_impl._M_start); 26201: this->_M_impl._M_start = nullptr; 26201: this->_M_impl._M_finish = nullptr; 26201: this->_M_impl._M_end_of_storage = nullptr; 26201: } 26201: std::__alloc_on_copy(_M_get_Tp_allocator(), 26201: __x._M_get_Tp_allocator()); 26201: } 26201: 26201: const size_type __xlen = __x.size(); 26201: if (__xlen > capacity()) 26201: { 26201: pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(), 26201: __x.end()); 26201: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 26201: _M_get_Tp_allocator()); 26201: _M_deallocate(this->_M_impl._M_start, 26201: this->_M_impl._M_end_of_storage 26201: - this->_M_impl._M_start); 26201: this->_M_impl._M_start = __tmp; 26201: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __xlen; 26201: } 26201: else if (size() >= __xlen) 26201: { 26201: std::_Destroy(std::copy(__x.begin(), __x.end(), begin()), 26201: end(), _M_get_Tp_allocator()); 26201: } 26201: else 26201: { 26201: std::copy(__x._M_impl._M_start, __x._M_impl._M_start + size(), 26201: this->_M_impl._M_start); 26201: std::__uninitialized_copy_a(__x._M_impl._M_start + size(), 26201: __x._M_impl._M_finish, 26201: this->_M_impl._M_finish, 26201: _M_get_Tp_allocator()); 26201: } 26201: this->_M_impl._M_finish = this->_M_impl._M_start + __xlen; 26201: } 26201: return *this; 26201: } 26201: 26201: template 26201: void 26201: vector<_Tp, _Alloc>:: 26201: _M_fill_assign(size_t __n, const value_type& __val) 26201: { 26201: if (__n > capacity()) 26201: { 26201: vector __tmp(__n, __val, _M_get_Tp_allocator()); 26201: __tmp._M_impl._M_swap_data(this->_M_impl); 26201: } 26201: else if (__n > size()) 26201: { 26201: std::fill(begin(), end(), __val); 26201: const size_type __add = __n - size(); 26201: ; 26201: this->_M_impl._M_finish = 26201: std::__uninitialized_fill_n_a(this->_M_impl._M_finish, 26201: __add, __val, _M_get_Tp_allocator()); 26201: ; 26201: } 26201: else 26201: _M_erase_at_end(std::fill_n(this->_M_impl._M_start, __n, __val)); 26201: } 26201: 26201: template 26201: template 26201: void 26201: vector<_Tp, _Alloc>:: 26201: _M_assign_aux(_InputIterator __first, _InputIterator __last, 26201: std::input_iterator_tag) 26201: { 26201: pointer __cur(this->_M_impl._M_start); 26201: for (; __first != __last && __cur != this->_M_impl._M_finish; 26201: ++__cur, (void)++__first) 26201: *__cur = *__first; 26201: if (__first == __last) 26201: _M_erase_at_end(__cur); 26201: else 26201: _M_range_insert(end(), __first, __last, 26201: std::__iterator_category(__first)); 26201: } 26201: 26201: template 26201: template 26201: void 26201: vector<_Tp, _Alloc>:: 26201: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 26201: std::forward_iterator_tag) 26201: { 26201: const size_type __len = std::distance(__first, __last); 26201: 26201: if (__len > capacity()) 26201: { 26201: _S_check_init_len(__len, _M_get_Tp_allocator()); 26201: pointer __tmp(_M_allocate_and_copy(__len, __first, __last)); 26201: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 26201: _M_get_Tp_allocator()); 26201: ; 26201: _M_deallocate(this->_M_impl._M_start, 26201: this->_M_impl._M_end_of_storage 26201: - this->_M_impl._M_start); 26201: this->_M_impl._M_start = __tmp; 26201: this->_M_impl._M_finish = this->_M_impl._M_start + __len; 26201: this->_M_impl._M_end_of_storage = this->_M_impl._M_finish; 26201: } 26201: else if (size() >= __len) 26201: _M_erase_at_end(std::copy(__first, __last, this->_M_impl._M_start)); 26201: else 26201: { 26201: _ForwardIterator __mid = __first; 26201: std::advance(__mid, size()); 26201: std::copy(__first, __mid, this->_M_impl._M_start); 26201: const size_type __attribute__((__unused__)) __n = __len - size(); 26201: ; 26201: this->_M_impl._M_finish = 26201: std::__uninitialized_copy_a(__mid, __last, 26201: this->_M_impl._M_finish, 26201: _M_get_Tp_allocator()); 26201: ; 26201: } 26201: } 26201: 26201: 26201: template 26201: auto 26201: vector<_Tp, _Alloc>:: 26201: _M_insert_rval(const_iterator __position, value_type&& __v) -> iterator 26201: { 26201: const auto __n = __position - cbegin(); 26201: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 26201: if (__position == cend()) 26201: { 26201: ; 26201: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 26201: std::move(__v)); 26201: ++this->_M_impl._M_finish; 26201: ; 26201: } 26201: else 26201: _M_insert_aux(begin() + __n, std::move(__v)); 26201: else 26201: _M_realloc_insert(begin() + __n, std::move(__v)); 26201: 26201: return iterator(this->_M_impl._M_start + __n); 26201: } 26201: 26201: template 26201: template 26201: auto 26201: vector<_Tp, _Alloc>:: 26201: _M_emplace_aux(const_iterator __position, _Args&&... __args) 26201: -> iterator 26201: { 26201: const auto __n = __position - cbegin(); 26201: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 26201: if (__position == cend()) 26201: { 26201: ; 26201: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 26201: std::forward<_Args>(__args)...); 26201: ++this->_M_impl._M_finish; 26201: ; 26201: } 26201: else 26201: { 26201: 26201: 26201: 26201: _Temporary_value __tmp(this, std::forward<_Args>(__args)...); 26201: _M_insert_aux(begin() + __n, std::move(__tmp._M_val())); 26201: } 26201: else 26201: _M_realloc_insert(begin() + __n, std::forward<_Args>(__args)...); 26201: 26201: return iterator(this->_M_impl._M_start + __n); 26201: } 26201: 26201: template 26201: template 26201: void 26201: vector<_Tp, _Alloc>:: 26201: _M_insert_aux(iterator __position, _Arg&& __arg) 26201: 26201: 26201: 26201: 26201: 26201: 26201: { 26201: ; 26201: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 26201: std::move(*(this->_M_impl._M_finish - 1))); 26201: ++this->_M_impl._M_finish; 26201: ; 26201: 26201: 26201: 26201: std::move_backward(__position.base(), this->_M_impl._M_finish - 2, this->_M_impl._M_finish - 1) 26201: 26201: ; 26201: 26201: 26201: 26201: *__position = std::forward<_Arg>(__arg); 26201: 26201: } 26201: 26201: 26201: template 26201: template 26201: void 26201: vector<_Tp, _Alloc>:: 26201: _M_realloc_insert(iterator __position, _Args&&... __args) 26201: 26201: 26201: 26201: 26201: 26201: 26201: { 26201: const size_type __len = 26201: _M_check_len(size_type(1), "vector::_M_realloc_insert"); 26201: pointer __old_start = this->_M_impl._M_start; 26201: pointer __old_finish = this->_M_impl._M_finish; 26201: const size_type __elems_before = __position - begin(); 26201: pointer __new_start(this->_M_allocate(__len)); 26201: pointer __new_finish(__new_start); 26201: try 26201: { 26201: 26201: 26201: 26201: 26201: 26201: _Alloc_traits::construct(this->_M_impl, 26201: __new_start + __elems_before, 26201: 26201: std::forward<_Args>(__args)...); 26201: 26201: 26201: 26201: __new_finish = pointer(); 26201: 26201: 26201: if constexpr (_S_use_relocate()) 26201: { 26201: __new_finish = _S_relocate(__old_start, __position.base(), 26201: __new_start, _M_get_Tp_allocator()); 26201: 26201: ++__new_finish; 26201: 26201: __new_finish = _S_relocate(__position.base(), __old_finish, 26201: __new_finish, _M_get_Tp_allocator()); 26201: } 26201: else 26201: 26201: { 26201: __new_finish 26201: = std::__uninitialized_move_if_noexcept_a 26201: (__old_start, __position.base(), 26201: __new_start, _M_get_Tp_allocator()); 26201: 26201: ++__new_finish; 26201: 26201: __new_finish 26201: = std::__uninitialized_move_if_noexcept_a 26201: (__position.base(), __old_finish, 26201: __new_finish, _M_get_Tp_allocator()); 26201: } 26201: } 26201: catch(...) 26201: { 26201: if (!__new_finish) 26201: _Alloc_traits::destroy(this->_M_impl, 26201: __new_start + __elems_before); 26201: else 26201: std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator()); 26201: _M_deallocate(__new_start, __len); 26201: throw; 26201: } 26201: 26201: if constexpr (!_S_use_relocate()) 26201: 26201: std::_Destroy(__old_start, __old_finish, _M_get_Tp_allocator()); 26201: ; 26201: _M_deallocate(__old_start, 26201: this->_M_impl._M_end_of_storage - __old_start); 26201: this->_M_impl._M_start = __new_start; 26201: this->_M_impl._M_finish = __new_finish; 26201: this->_M_impl._M_end_of_storage = __new_start + __len; 26201: } 26201: 26201: template 26201: void 26201: vector<_Tp, _Alloc>:: 26201: _M_fill_insert(iterator __position, size_type __n, const value_type& __x) 26201: { 26201: if (__n != 0) 26201: { 26201: if (size_type(this->_M_impl._M_end_of_storage 26201: - this->_M_impl._M_finish) >= __n) 26201: { 26201: 26201: 26201: 26201: _Temporary_value __tmp(this, __x); 26201: value_type& __x_copy = __tmp._M_val(); 26201: 26201: const size_type __elems_after = end() - __position; 26201: pointer __old_finish(this->_M_impl._M_finish); 26201: if (__elems_after > __n) 26201: { 26201: ; 26201: std::__uninitialized_move_a(this->_M_impl._M_finish - __n, 26201: this->_M_impl._M_finish, 26201: this->_M_impl._M_finish, 26201: _M_get_Tp_allocator()); 26201: this->_M_impl._M_finish += __n; 26201: ; 26201: std::move_backward(__position.base(), __old_finish - __n, __old_finish) 26201: ; 26201: std::fill(__position.base(), __position.base() + __n, 26201: __x_copy); 26201: } 26201: else 26201: { 26201: ; 26201: this->_M_impl._M_finish = 26201: std::__uninitialized_fill_n_a(this->_M_impl._M_finish, 26201: __n - __elems_after, 26201: __x_copy, 26201: _M_get_Tp_allocator()); 26201: ; 26201: std::__uninitialized_move_a(__position.base(), __old_finish, 26201: this->_M_impl._M_finish, 26201: _M_get_Tp_allocator()); 26201: this->_M_impl._M_finish += __elems_after; 26201: ; 26201: std::fill(__position.base(), __old_finish, __x_copy); 26201: } 26201: } 26201: else 26201: { 26201: const size_type __len = 26201: _M_check_len(__n, "vector::_M_fill_insert"); 26201: const size_type __elems_before = __position - begin(); 26201: pointer __new_start(this->_M_allocate(__len)); 26201: pointer __new_finish(__new_start); 26201: try 26201: { 26201: 26201: std::__uninitialized_fill_n_a(__new_start + __elems_before, 26201: __n, __x, 26201: _M_get_Tp_allocator()); 26201: __new_finish = pointer(); 26201: 26201: __new_finish 26201: = std::__uninitialized_move_if_noexcept_a 26201: (this->_M_impl._M_start, __position.base(), 26201: __new_start, _M_get_Tp_allocator()); 26201: 26201: __new_finish += __n; 26201: 26201: __new_finish 26201: = std::__uninitialized_move_if_noexcept_a 26201: (__position.base(), this->_M_impl._M_finish, 26201: __new_finish, _M_get_Tp_allocator()); 26201: } 26201: catch(...) 26201: { 26201: if (!__new_finish) 26201: std::_Destroy(__new_start + __elems_before, 26201: __new_start + __elems_before + __n, 26201: _M_get_Tp_allocator()); 26201: else 26201: std::_Destroy(__new_start, __new_finish, 26201: _M_get_Tp_allocator()); 26201: _M_deallocate(__new_start, __len); 26201: throw; 26201: } 26201: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 26201: _M_get_Tp_allocator()); 26201: ; 26201: _M_deallocate(this->_M_impl._M_start, 26201: this->_M_impl._M_end_of_storage 26201: - this->_M_impl._M_start); 26201: this->_M_impl._M_start = __new_start; 26201: this->_M_impl._M_finish = __new_finish; 26201: this->_M_impl._M_end_of_storage = __new_start + __len; 26201: } 26201: } 26201: } 26201: 26201: 26201: template 26201: void 26201: vector<_Tp, _Alloc>:: 26201: _M_default_append(size_type __n) 26201: { 26201: if (__n != 0) 26201: { 26201: const size_type __size = size(); 26201: size_type __navail = size_type(this->_M_impl._M_end_of_storage 26201: - this->_M_impl._M_finish); 26201: 26201: if (__size > max_size() || __navail > max_size() - __size) 26201: __builtin_unreachable(); 26201: 26201: if (__navail >= __n) 26201: { 26201: ; 26201: this->_M_impl._M_finish = 26201: std::__uninitialized_default_n_a(this->_M_impl._M_finish, 26201: __n, _M_get_Tp_allocator()); 26201: ; 26201: } 26201: else 26201: { 26201: const size_type __len = 26201: _M_check_len(__n, "vector::_M_default_append"); 26201: pointer __new_start(this->_M_allocate(__len)); 26201: if constexpr (_S_use_relocate()) 26201: { 26201: try 26201: { 26201: std::__uninitialized_default_n_a(__new_start + __size, 26201: __n, _M_get_Tp_allocator()); 26201: } 26201: catch(...) 26201: { 26201: _M_deallocate(__new_start, __len); 26201: throw; 26201: } 26201: _S_relocate(this->_M_impl._M_start, this->_M_impl._M_finish, 26201: __new_start, _M_get_Tp_allocator()); 26201: } 26201: else 26201: { 26201: pointer __destroy_from = pointer(); 26201: try 26201: { 26201: std::__uninitialized_default_n_a(__new_start + __size, 26201: __n, _M_get_Tp_allocator()); 26201: __destroy_from = __new_start + __size; 26201: std::__uninitialized_move_if_noexcept_a( 26201: this->_M_impl._M_start, this->_M_impl._M_finish, 26201: __new_start, _M_get_Tp_allocator()); 26201: } 26201: catch(...) 26201: { 26201: if (__destroy_from) 26201: std::_Destroy(__destroy_from, __destroy_from + __n, 26201: _M_get_Tp_allocator()); 26201: _M_deallocate(__new_start, __len); 26201: throw; 26201: } 26201: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 26201: _M_get_Tp_allocator()); 26201: } 26201: ; 26201: _M_deallocate(this->_M_impl._M_start, 26201: this->_M_impl._M_end_of_storage 26201: - this->_M_impl._M_start); 26201: this->_M_impl._M_start = __new_start; 26201: this->_M_impl._M_finish = __new_start + __size + __n; 26201: this->_M_impl._M_end_of_storage = __new_start + __len; 26201: } 26201: } 26201: } 26201: 26201: template 26201: bool 26201: vector<_Tp, _Alloc>:: 26201: _M_shrink_to_fit() 26201: { 26201: if (capacity() == size()) 26201: return false; 26201: ; 26201: return std::__shrink_to_fit_aux::_S_do_it(*this); 26201: } 26201: 26201: 26201: template 26201: template 26201: void 26201: vector<_Tp, _Alloc>:: 26201: _M_range_insert(iterator __pos, _InputIterator __first, 26201: _InputIterator __last, std::input_iterator_tag) 26201: { 26201: if (__pos == end()) 26201: { 26201: for (; __first != __last; ++__first) 26201: insert(end(), *__first); 26201: } 26201: else if (__first != __last) 26201: { 26201: vector __tmp(__first, __last, _M_get_Tp_allocator()); 26201: insert(__pos, 26201: std::make_move_iterator(__tmp.begin()), 26201: std::make_move_iterator(__tmp.end())); 26201: } 26201: } 26201: 26201: template 26201: template 26201: void 26201: vector<_Tp, _Alloc>:: 26201: _M_range_insert(iterator __position, _ForwardIterator __first, 26201: _ForwardIterator __last, std::forward_iterator_tag) 26201: { 26201: if (__first != __last) 26201: { 26201: const size_type __n = std::distance(__first, __last); 26201: if (size_type(this->_M_impl._M_end_of_storage 26201: - this->_M_impl._M_finish) >= __n) 26201: { 26201: const size_type __elems_after = end() - __position; 26201: pointer __old_finish(this->_M_impl._M_finish); 26201: if (__elems_after > __n) 26201: { 26201: ; 26201: std::__uninitialized_move_a(this->_M_impl._M_finish - __n, 26201: this->_M_impl._M_finish, 26201: this->_M_impl._M_finish, 26201: _M_get_Tp_allocator()); 26201: this->_M_impl._M_finish += __n; 26201: ; 26201: std::move_backward(__position.base(), __old_finish - __n, __old_finish) 26201: ; 26201: std::copy(__first, __last, __position); 26201: } 26201: else 26201: { 26201: _ForwardIterator __mid = __first; 26201: std::advance(__mid, __elems_after); 26201: ; 26201: std::__uninitialized_copy_a(__mid, __last, 26201: this->_M_impl._M_finish, 26201: _M_get_Tp_allocator()); 26201: this->_M_impl._M_finish += __n - __elems_after; 26201: ; 26201: std::__uninitialized_move_a(__position.base(), 26201: __old_finish, 26201: this->_M_impl._M_finish, 26201: _M_get_Tp_allocator()); 26201: this->_M_impl._M_finish += __elems_after; 26201: ; 26201: std::copy(__first, __mid, __position); 26201: } 26201: } 26201: else 26201: { 26201: const size_type __len = 26201: _M_check_len(__n, "vector::_M_range_insert"); 26201: pointer __new_start(this->_M_allocate(__len)); 26201: pointer __new_finish(__new_start); 26201: try 26201: { 26201: __new_finish 26201: = std::__uninitialized_move_if_noexcept_a 26201: (this->_M_impl._M_start, __position.base(), 26201: __new_start, _M_get_Tp_allocator()); 26201: __new_finish 26201: = std::__uninitialized_copy_a(__first, __last, 26201: __new_finish, 26201: _M_get_Tp_allocator()); 26201: __new_finish 26201: = std::__uninitialized_move_if_noexcept_a 26201: (__position.base(), this->_M_impl._M_finish, 26201: __new_finish, _M_get_Tp_allocator()); 26201: } 26201: catch(...) 26201: { 26201: std::_Destroy(__new_start, __new_finish, 26201: _M_get_Tp_allocator()); 26201: _M_deallocate(__new_start, __len); 26201: throw; 26201: } 26201: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 26201: _M_get_Tp_allocator()); 26201: ; 26201: _M_deallocate(this->_M_impl._M_start, 26201: this->_M_impl._M_end_of_storage 26201: - this->_M_impl._M_start); 26201: this->_M_impl._M_start = __new_start; 26201: this->_M_impl._M_finish = __new_finish; 26201: this->_M_impl._M_end_of_storage = __new_start + __len; 26201: } 26201: } 26201: } 26201: 26201: 26201: 26201: template 26201: void 26201: vector:: 26201: _M_reallocate(size_type __n) 26201: { 26201: _Bit_pointer __q = this->_M_allocate(__n); 26201: iterator __start(std::__addressof(*__q), 0); 26201: iterator __finish(_M_copy_aligned(begin(), end(), __start)); 26201: this->_M_deallocate(); 26201: this->_M_impl._M_start = __start; 26201: this->_M_impl._M_finish = __finish; 26201: this->_M_impl._M_end_of_storage = __q + _S_nword(__n); 26201: } 26201: 26201: template 26201: void 26201: vector:: 26201: _M_fill_insert(iterator __position, size_type __n, bool __x) 26201: { 26201: if (__n == 0) 26201: return; 26201: if (capacity() - size() >= __n) 26201: { 26201: std::copy_backward(__position, end(), 26201: this->_M_impl._M_finish + difference_type(__n)); 26201: std::fill(__position, __position + difference_type(__n), __x); 26201: this->_M_impl._M_finish += difference_type(__n); 26201: } 26201: else 26201: { 26201: const size_type __len = 26201: _M_check_len(__n, "vector::_M_fill_insert"); 26201: _Bit_pointer __q = this->_M_allocate(__len); 26201: iterator __start(std::__addressof(*__q), 0); 26201: iterator __i = _M_copy_aligned(begin(), __position, __start); 26201: std::fill(__i, __i + difference_type(__n), __x); 26201: iterator __finish = std::copy(__position, end(), 26201: __i + difference_type(__n)); 26201: this->_M_deallocate(); 26201: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 26201: this->_M_impl._M_start = __start; 26201: this->_M_impl._M_finish = __finish; 26201: } 26201: } 26201: 26201: template 26201: template 26201: void 26201: vector:: 26201: _M_insert_range(iterator __position, _ForwardIterator __first, 26201: _ForwardIterator __last, std::forward_iterator_tag) 26201: { 26201: if (__first != __last) 26201: { 26201: size_type __n = std::distance(__first, __last); 26201: if (capacity() - size() >= __n) 26201: { 26201: std::copy_backward(__position, end(), 26201: this->_M_impl._M_finish 26201: + difference_type(__n)); 26201: std::copy(__first, __last, __position); 26201: this->_M_impl._M_finish += difference_type(__n); 26201: } 26201: else 26201: { 26201: const size_type __len = 26201: _M_check_len(__n, "vector::_M_insert_range"); 26201: _Bit_pointer __q = this->_M_allocate(__len); 26201: iterator __start(std::__addressof(*__q), 0); 26201: iterator __i = _M_copy_aligned(begin(), __position, __start); 26201: __i = std::copy(__first, __last, __i); 26201: iterator __finish = std::copy(__position, end(), __i); 26201: this->_M_deallocate(); 26201: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 26201: this->_M_impl._M_start = __start; 26201: this->_M_impl._M_finish = __finish; 26201: } 26201: } 26201: } 26201: 26201: template 26201: void 26201: vector:: 26201: _M_insert_aux(iterator __position, bool __x) 26201: { 26201: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) 26201: { 26201: std::copy_backward(__position, this->_M_impl._M_finish, 26201: this->_M_impl._M_finish + 1); 26201: *__position = __x; 26201: ++this->_M_impl._M_finish; 26201: } 26201: else 26201: { 26201: const size_type __len = 26201: _M_check_len(size_type(1), "vector::_M_insert_aux"); 26201: _Bit_pointer __q = this->_M_allocate(__len); 26201: iterator __start(std::__addressof(*__q), 0); 26201: iterator __i = _M_copy_aligned(begin(), __position, __start); 26201: *__i++ = __x; 26201: iterator __finish = std::copy(__position, end(), __i); 26201: this->_M_deallocate(); 26201: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 26201: this->_M_impl._M_start = __start; 26201: this->_M_impl._M_finish = __finish; 26201: } 26201: } 26201: 26201: template 26201: typename vector::iterator 26201: vector:: 26201: _M_erase(iterator __position) 26201: { 26201: if (__position + 1 != end()) 26201: std::copy(__position + 1, end(), __position); 26201: --this->_M_impl._M_finish; 26201: return __position; 26201: } 26201: 26201: template 26201: typename vector::iterator 26201: vector:: 26201: _M_erase(iterator __first, iterator __last) 26201: { 26201: if (__first != __last) 26201: _M_erase_at_end(std::copy(__last, end(), __first)); 26201: return __first; 26201: } 26201: 26201: 26201: template 26201: bool 26201: vector:: 26201: _M_shrink_to_fit() 26201: { 26201: if (capacity() - size() < int(_S_word_bit)) 26201: return false; 26201: try 26201: { 26201: _M_reallocate(size()); 26201: return true; 26201: } 26201: catch(...) 26201: { return false; } 26201: } 26201: 26201: 26201: 26201: 26201: } 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: template 26201: size_t 26201: hash>:: 26201: operator()(const std::vector& __b) const noexcept 26201: { 26201: size_t __hash = 0; 26201: using std::_S_word_bit; 26201: using std::_Bit_type; 26201: 26201: const size_t __words = __b.size() / _S_word_bit; 26201: if (__words) 26201: { 26201: const size_t __clength = __words * sizeof(_Bit_type); 26201: __hash = std::_Hash_impl::hash(__b._M_impl._M_start._M_p, __clength); 26201: } 26201: 26201: const size_t __extrabits = __b.size() % _S_word_bit; 26201: if (__extrabits) 26201: { 26201: _Bit_type __hiword = *__b._M_impl._M_finish._M_p; 26201: __hiword &= ~((~static_cast<_Bit_type>(0)) << __extrabits); 26201: 26201: const size_t __clength 26201: = (__extrabits + 8 - 1) / 8; 26201: if (__words) 26201: __hash = std::_Hash_impl::hash(&__hiword, __clength, __hash); 26201: else 26201: __hash = std::_Hash_impl::hash(&__hiword, __clength); 26201: } 26201: 26201: return __hash; 26201: } 26201: 26201: 26201: } 26201: 26201: 26201: 26201: #undef _GLIBCXX_ASAN_ANNOTATE_REINIT 26201: #undef _GLIBCXX_ASAN_ANNOTATE_GROW 26201: #undef _GLIBCXX_ASAN_ANNOTATE_GREW 26201: #undef _GLIBCXX_ASAN_ANNOTATE_SHRINK 26201: # 73 "/usr/x86_64-linux-gnu/include/c++/10/vector" 2 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: namespace pmr { 26201: template class polymorphic_allocator; 26201: template 26201: using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 63 "/usr/x86_64-linux-gnu/include/c++/10/functional" 2 3 26201: # 72 "/usr/x86_64-linux-gnu/include/c++/10/functional" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: #define __cpp_lib_invoke 201411L 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline invoke_result_t<_Callable, _Args...> 26201: invoke(_Callable&& __fn, _Args&&... __args) 26201: noexcept(is_nothrow_invocable_v<_Callable, _Args...>) 26201: { 26201: return std::__invoke(std::forward<_Callable>(__fn), 26201: std::forward<_Args>(__args)...); 26201: } 26201: 26201: 26201: template::value> 26201: class _Mem_fn_base 26201: : public _Mem_fn_traits<_MemFunPtr>::__maybe_type 26201: { 26201: using _Traits = _Mem_fn_traits<_MemFunPtr>; 26201: 26201: using _Arity = typename _Traits::__arity; 26201: using _Varargs = typename _Traits::__vararg; 26201: 26201: template 26201: friend struct _Bind_check_arity; 26201: 26201: _MemFunPtr _M_pmf; 26201: 26201: public: 26201: 26201: using result_type = typename _Traits::__result_type; 26201: 26201: explicit constexpr 26201: _Mem_fn_base(_MemFunPtr __pmf) noexcept : _M_pmf(__pmf) { } 26201: 26201: template 26201: 26201: auto 26201: operator()(_Args&&... __args) const 26201: noexcept(noexcept( 26201: std::__invoke(_M_pmf, std::forward<_Args>(__args)...))) 26201: -> decltype(std::__invoke(_M_pmf, std::forward<_Args>(__args)...)) 26201: { return std::__invoke(_M_pmf, std::forward<_Args>(__args)...); } 26201: }; 26201: 26201: 26201: template 26201: class _Mem_fn_base<_MemObjPtr, false> 26201: { 26201: using _Arity = integral_constant; 26201: using _Varargs = false_type; 26201: 26201: template 26201: friend struct _Bind_check_arity; 26201: 26201: _MemObjPtr _M_pm; 26201: 26201: public: 26201: explicit constexpr 26201: _Mem_fn_base(_MemObjPtr __pm) noexcept : _M_pm(__pm) { } 26201: 26201: template 26201: 26201: auto 26201: operator()(_Tp&& __obj) const 26201: noexcept(noexcept(std::__invoke(_M_pm, std::forward<_Tp>(__obj)))) 26201: -> decltype(std::__invoke(_M_pm, std::forward<_Tp>(__obj))) 26201: { return std::__invoke(_M_pm, std::forward<_Tp>(__obj)); } 26201: }; 26201: 26201: template 26201: struct _Mem_fn; 26201: 26201: template 26201: struct _Mem_fn<_Res _Class::*> 26201: : _Mem_fn_base<_Res _Class::*> 26201: { 26201: using _Mem_fn_base<_Res _Class::*>::_Mem_fn_base; 26201: }; 26201: # 167 "/usr/x86_64-linux-gnu/include/c++/10/functional" 3 26201: template 26201: 26201: inline _Mem_fn<_Tp _Class::*> 26201: mem_fn(_Tp _Class::* __pm) noexcept 26201: { 26201: return _Mem_fn<_Tp _Class::*>(__pm); 26201: } 26201: # 183 "/usr/x86_64-linux-gnu/include/c++/10/functional" 3 26201: template 26201: struct is_bind_expression 26201: : public false_type { }; 26201: # 194 "/usr/x86_64-linux-gnu/include/c++/10/functional" 3 26201: template 26201: struct is_placeholder 26201: : public integral_constant 26201: { }; 26201: 26201: 26201: template inline constexpr bool is_bind_expression_v 26201: = is_bind_expression<_Tp>::value; 26201: template inline constexpr int is_placeholder_v 26201: = is_placeholder<_Tp>::value; 26201: 26201: 26201: 26201: 26201: 26201: template struct _Placeholder { }; 26201: 26201: 26201: 26201: 26201: 26201: namespace placeholders 26201: { 26201: 26201: 26201: 26201: 26201: extern const _Placeholder<1> _1; 26201: extern const _Placeholder<2> _2; 26201: extern const _Placeholder<3> _3; 26201: extern const _Placeholder<4> _4; 26201: extern const _Placeholder<5> _5; 26201: extern const _Placeholder<6> _6; 26201: extern const _Placeholder<7> _7; 26201: extern const _Placeholder<8> _8; 26201: extern const _Placeholder<9> _9; 26201: extern const _Placeholder<10> _10; 26201: extern const _Placeholder<11> _11; 26201: extern const _Placeholder<12> _12; 26201: extern const _Placeholder<13> _13; 26201: extern const _Placeholder<14> _14; 26201: extern const _Placeholder<15> _15; 26201: extern const _Placeholder<16> _16; 26201: extern const _Placeholder<17> _17; 26201: extern const _Placeholder<18> _18; 26201: extern const _Placeholder<19> _19; 26201: extern const _Placeholder<20> _20; 26201: extern const _Placeholder<21> _21; 26201: extern const _Placeholder<22> _22; 26201: extern const _Placeholder<23> _23; 26201: extern const _Placeholder<24> _24; 26201: extern const _Placeholder<25> _25; 26201: extern const _Placeholder<26> _26; 26201: extern const _Placeholder<27> _27; 26201: extern const _Placeholder<28> _28; 26201: extern const _Placeholder<29> _29; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct is_placeholder<_Placeholder<_Num> > 26201: : public integral_constant 26201: { }; 26201: 26201: template 26201: struct is_placeholder > 26201: : public integral_constant 26201: { }; 26201: 26201: 26201: 26201: template 26201: using _Safe_tuple_element_t 26201: = typename enable_if<(__i < tuple_size<_Tuple>::value), 26201: tuple_element<__i, _Tuple>>::type::type; 26201: # 285 "/usr/x86_64-linux-gnu/include/c++/10/functional" 3 26201: template::value, 26201: bool _IsPlaceholder = (is_placeholder<_Arg>::value > 0)> 26201: class _Mu; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: class _Mu, false, false> 26201: { 26201: public: 26201: 26201: 26201: 26201: 26201: template 26201: 26201: _Tp& 26201: operator()(_CVRef& __arg, _Tuple&) const volatile 26201: { return __arg.get(); } 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: class _Mu<_Arg, true, false> 26201: { 26201: public: 26201: template 26201: 26201: auto 26201: operator()(_CVArg& __arg, 26201: tuple<_Args...>& __tuple) const volatile 26201: -> decltype(__arg(declval<_Args>()...)) 26201: { 26201: 26201: typedef typename _Build_index_tuple::__type 26201: _Indexes; 26201: return this->__call(__arg, __tuple, _Indexes()); 26201: } 26201: 26201: private: 26201: 26201: 26201: template 26201: 26201: auto 26201: __call(_CVArg& __arg, tuple<_Args...>& __tuple, 26201: const _Index_tuple<_Indexes...>&) const volatile 26201: -> decltype(__arg(declval<_Args>()...)) 26201: { 26201: return __arg(std::get<_Indexes>(std::move(__tuple))...); 26201: } 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: class _Mu<_Arg, false, true> 26201: { 26201: public: 26201: template 26201: 26201: _Safe_tuple_element_t<(is_placeholder<_Arg>::value - 1), _Tuple>&& 26201: operator()(const volatile _Arg&, _Tuple& __tuple) const volatile 26201: { 26201: return 26201: ::std::get<(is_placeholder<_Arg>::value - 1)>(std::move(__tuple)); 26201: } 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: class _Mu<_Arg, false, false> 26201: { 26201: public: 26201: template 26201: 26201: _CVArg&& 26201: operator()(_CVArg&& __arg, _Tuple&) const volatile 26201: { return std::forward<_CVArg>(__arg); } 26201: }; 26201: 26201: 26201: template 26201: inline auto 26201: __volget(volatile tuple<_Tp...>& __tuple) 26201: -> __tuple_element_t<_Ind, tuple<_Tp...>> volatile& 26201: { return std::get<_Ind>(const_cast&>(__tuple)); } 26201: 26201: 26201: template 26201: inline auto 26201: __volget(const volatile tuple<_Tp...>& __tuple) 26201: -> __tuple_element_t<_Ind, tuple<_Tp...>> const volatile& 26201: { return std::get<_Ind>(const_cast&>(__tuple)); } 26201: 26201: 26201: template 26201: struct _Bind; 26201: 26201: template 26201: class _Bind<_Functor(_Bound_args...)> 26201: : public _Weak_result_type<_Functor> 26201: { 26201: typedef typename _Build_index_tuple::__type 26201: _Bound_indexes; 26201: 26201: _Functor _M_f; 26201: tuple<_Bound_args...> _M_bound_args; 26201: 26201: 26201: template 26201: 26201: _Result 26201: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 26201: { 26201: return std::__invoke(_M_f, 26201: _Mu<_Bound_args>()(std::get<_Indexes>(_M_bound_args), __args)... 26201: ); 26201: } 26201: 26201: 26201: template 26201: 26201: _Result 26201: __call_c(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 26201: { 26201: return std::__invoke(_M_f, 26201: _Mu<_Bound_args>()(std::get<_Indexes>(_M_bound_args), __args)... 26201: ); 26201: } 26201: 26201: 26201: template 26201: _Result 26201: __call_v(tuple<_Args...>&& __args, 26201: _Index_tuple<_Indexes...>) volatile 26201: { 26201: return std::__invoke(_M_f, 26201: _Mu<_Bound_args>()(__volget<_Indexes>(_M_bound_args), __args)... 26201: ); 26201: } 26201: 26201: 26201: template 26201: _Result 26201: __call_c_v(tuple<_Args...>&& __args, 26201: _Index_tuple<_Indexes...>) const volatile 26201: { 26201: return std::__invoke(_M_f, 26201: _Mu<_Bound_args>()(__volget<_Indexes>(_M_bound_args), __args)... 26201: ); 26201: } 26201: 26201: template 26201: using _Mu_type = decltype( 26201: _Mu::type>()( 26201: std::declval<_BoundArg&>(), std::declval<_CallArgs&>()) ); 26201: 26201: template 26201: using _Res_type_impl 26201: = typename result_of< _Fn&(_Mu_type<_BArgs, _CallArgs>&&...) >::type; 26201: 26201: template 26201: using _Res_type = _Res_type_impl<_Functor, _CallArgs, _Bound_args...>; 26201: 26201: template 26201: using __dependent = typename 26201: enable_if::value+1), _Functor>::type; 26201: 26201: template class __cv_quals> 26201: using _Res_type_cv = _Res_type_impl< 26201: typename __cv_quals<__dependent<_CallArgs>>::type, 26201: _CallArgs, 26201: typename __cv_quals<_Bound_args>::type...>; 26201: 26201: public: 26201: template 26201: explicit 26201: _Bind(const _Functor& __f, _Args&&... __args) 26201: : _M_f(__f), _M_bound_args(std::forward<_Args>(__args)...) 26201: { } 26201: 26201: template 26201: explicit 26201: _Bind(_Functor&& __f, _Args&&... __args) 26201: : _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...) 26201: { } 26201: 26201: _Bind(const _Bind&) = default; 26201: _Bind(_Bind&&) = default; 26201: 26201: 26201: template>> 26201: 26201: _Result 26201: operator()(_Args&&... __args) 26201: { 26201: return this->__call<_Result>( 26201: std::forward_as_tuple(std::forward<_Args>(__args)...), 26201: _Bound_indexes()); 26201: } 26201: 26201: 26201: template, add_const>> 26201: 26201: _Result 26201: operator()(_Args&&... __args) const 26201: { 26201: return this->__call_c<_Result>( 26201: std::forward_as_tuple(std::forward<_Args>(__args)...), 26201: _Bound_indexes()); 26201: } 26201: 26201: 26201: #define _GLIBCXX_DEPR_BIND [[deprecated("std::bind does not support volatile in C++17")]] 26201: 26201: 26201: 26201: 26201: 26201: template, add_volatile>> 26201: [[deprecated("std::bind does not support volatile in C++17")]] 26201: _Result 26201: operator()(_Args&&... __args) volatile 26201: { 26201: return this->__call_v<_Result>( 26201: std::forward_as_tuple(std::forward<_Args>(__args)...), 26201: _Bound_indexes()); 26201: } 26201: 26201: 26201: template, add_cv>> 26201: [[deprecated("std::bind does not support volatile in C++17")]] 26201: _Result 26201: operator()(_Args&&... __args) const volatile 26201: { 26201: return this->__call_c_v<_Result>( 26201: std::forward_as_tuple(std::forward<_Args>(__args)...), 26201: _Bound_indexes()); 26201: } 26201: }; 26201: 26201: 26201: template 26201: struct _Bind_result; 26201: 26201: template 26201: class _Bind_result<_Result, _Functor(_Bound_args...)> 26201: { 26201: typedef typename _Build_index_tuple::__type 26201: _Bound_indexes; 26201: 26201: _Functor _M_f; 26201: tuple<_Bound_args...> _M_bound_args; 26201: 26201: 26201: template 26201: 26201: _Res 26201: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 26201: { 26201: return std::__invoke_r<_Res>(_M_f, _Mu<_Bound_args>() 26201: (std::get<_Indexes>(_M_bound_args), __args)...); 26201: } 26201: 26201: 26201: template 26201: 26201: _Res 26201: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 26201: { 26201: return std::__invoke_r<_Res>(_M_f, _Mu<_Bound_args>() 26201: (std::get<_Indexes>(_M_bound_args), __args)...); 26201: } 26201: 26201: 26201: template 26201: 26201: _Res 26201: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) volatile 26201: { 26201: return std::__invoke_r<_Res>(_M_f, _Mu<_Bound_args>() 26201: (__volget<_Indexes>(_M_bound_args), __args)...); 26201: } 26201: 26201: 26201: template 26201: 26201: _Res 26201: __call(tuple<_Args...>&& __args, 26201: _Index_tuple<_Indexes...>) const volatile 26201: { 26201: return std::__invoke_r<_Res>(_M_f, _Mu<_Bound_args>() 26201: (__volget<_Indexes>(_M_bound_args), __args)...); 26201: } 26201: 26201: public: 26201: typedef _Result result_type; 26201: 26201: template 26201: explicit 26201: _Bind_result(const _Functor& __f, _Args&&... __args) 26201: : _M_f(__f), _M_bound_args(std::forward<_Args>(__args)...) 26201: { } 26201: 26201: template 26201: explicit 26201: _Bind_result(_Functor&& __f, _Args&&... __args) 26201: : _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...) 26201: { } 26201: 26201: _Bind_result(const _Bind_result&) = default; 26201: _Bind_result(_Bind_result&&) = default; 26201: 26201: 26201: template 26201: 26201: result_type 26201: operator()(_Args&&... __args) 26201: { 26201: return this->__call<_Result>( 26201: std::forward_as_tuple(std::forward<_Args>(__args)...), 26201: _Bound_indexes()); 26201: } 26201: 26201: 26201: template 26201: 26201: result_type 26201: operator()(_Args&&... __args) const 26201: { 26201: return this->__call<_Result>( 26201: std::forward_as_tuple(std::forward<_Args>(__args)...), 26201: _Bound_indexes()); 26201: } 26201: 26201: 26201: template 26201: [[deprecated("std::bind does not support volatile in C++17")]] 26201: result_type 26201: operator()(_Args&&... __args) volatile 26201: { 26201: return this->__call<_Result>( 26201: std::forward_as_tuple(std::forward<_Args>(__args)...), 26201: _Bound_indexes()); 26201: } 26201: 26201: 26201: template 26201: [[deprecated("std::bind does not support volatile in C++17")]] 26201: result_type 26201: operator()(_Args&&... __args) const volatile 26201: { 26201: return this->__call<_Result>( 26201: std::forward_as_tuple(std::forward<_Args>(__args)...), 26201: _Bound_indexes()); 26201: } 26201: }; 26201: #undef _GLIBCXX_DEPR_BIND 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct is_bind_expression<_Bind<_Signature> > 26201: : public true_type { }; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct is_bind_expression > 26201: : public true_type { }; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct is_bind_expression > 26201: : public true_type { }; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct is_bind_expression> 26201: : public true_type { }; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct is_bind_expression<_Bind_result<_Result, _Signature>> 26201: : public true_type { }; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct is_bind_expression> 26201: : public true_type { }; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct is_bind_expression> 26201: : public true_type { }; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct is_bind_expression> 26201: : public true_type { }; 26201: 26201: template 26201: struct _Bind_check_arity { }; 26201: 26201: template 26201: struct _Bind_check_arity<_Ret (*)(_Args...), _BoundArgs...> 26201: { 26201: static_assert(sizeof...(_BoundArgs) == sizeof...(_Args), 26201: "Wrong number of arguments for function"); 26201: }; 26201: 26201: template 26201: struct _Bind_check_arity<_Ret (*)(_Args......), _BoundArgs...> 26201: { 26201: static_assert(sizeof...(_BoundArgs) >= sizeof...(_Args), 26201: "Wrong number of arguments for function"); 26201: }; 26201: 26201: template 26201: struct _Bind_check_arity<_Tp _Class::*, _BoundArgs...> 26201: { 26201: using _Arity = typename _Mem_fn<_Tp _Class::*>::_Arity; 26201: using _Varargs = typename _Mem_fn<_Tp _Class::*>::_Varargs; 26201: static_assert(_Varargs::value 26201: ? sizeof...(_BoundArgs) >= _Arity::value + 1 26201: : sizeof...(_BoundArgs) == _Arity::value + 1, 26201: "Wrong number of arguments for pointer-to-member"); 26201: }; 26201: 26201: 26201: 26201: 26201: template::type> 26201: using __is_socketlike = __or_, is_enum<_Tp2>>; 26201: 26201: template 26201: struct _Bind_helper 26201: : _Bind_check_arity::type, _BoundArgs...> 26201: { 26201: typedef typename decay<_Func>::type __func_type; 26201: typedef _Bind<__func_type(typename decay<_BoundArgs>::type...)> type; 26201: }; 26201: 26201: 26201: 26201: 26201: template 26201: struct _Bind_helper 26201: { }; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline typename 26201: _Bind_helper<__is_socketlike<_Func>::value, _Func, _BoundArgs...>::type 26201: bind(_Func&& __f, _BoundArgs&&... __args) 26201: { 26201: typedef _Bind_helper __helper_type; 26201: return typename __helper_type::type(std::forward<_Func>(__f), 26201: std::forward<_BoundArgs>(__args)...); 26201: } 26201: 26201: template 26201: struct _Bindres_helper 26201: : _Bind_check_arity::type, _BoundArgs...> 26201: { 26201: typedef typename decay<_Func>::type __functor_type; 26201: typedef _Bind_result<_Result, 26201: __functor_type(typename decay<_BoundArgs>::type...)> 26201: type; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline 26201: typename _Bindres_helper<_Result, _Func, _BoundArgs...>::type 26201: bind(_Func&& __f, _BoundArgs&&... __args) 26201: { 26201: typedef _Bindres_helper<_Result, _Func, _BoundArgs...> __helper_type; 26201: return typename __helper_type::type(std::forward<_Func>(__f), 26201: std::forward<_BoundArgs>(__args)...); 26201: } 26201: # 918 "/usr/x86_64-linux-gnu/include/c++/10/functional" 3 26201: template 26201: class _Not_fn 26201: { 26201: template 26201: using __inv_res_t = typename __invoke_result<_Fn2, _Args...>::type; 26201: 26201: template 26201: static decltype(!std::declval<_Tp>()) 26201: _S_not() noexcept(noexcept(!std::declval<_Tp>())); 26201: 26201: public: 26201: template 26201: constexpr 26201: _Not_fn(_Fn2&& __fn, int) 26201: : _M_fn(std::forward<_Fn2>(__fn)) { } 26201: 26201: _Not_fn(const _Not_fn& __fn) = default; 26201: _Not_fn(_Not_fn&& __fn) = default; 26201: ~_Not_fn() = default; 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_NOT_FN_CALL_OP(_QUALS) template _GLIBCXX20_CONSTEXPR decltype(_S_not<__inv_res_t<_Fn _QUALS, _Args...>>()) operator()(_Args&&... __args) _QUALS noexcept(__is_nothrow_invocable<_Fn _QUALS, _Args...>::value && noexcept(_S_not<__inv_res_t<_Fn _QUALS, _Args...>>())) { return !std::__invoke(std::forward< _Fn _QUALS >(_M_fn), std::forward<_Args>(__args)...); } 26201: # 952 "/usr/x86_64-linux-gnu/include/c++/10/functional" 3 26201: template decltype(_S_not<__inv_res_t<_Fn &, _Args...>>()) operator()(_Args&&... __args) & noexcept(__is_nothrow_invocable<_Fn &, _Args...>::value && noexcept(_S_not<__inv_res_t<_Fn &, _Args...>>())) { return !std::__invoke(std::forward< _Fn & >(_M_fn), std::forward<_Args>(__args)...); } 26201: template decltype(_S_not<__inv_res_t<_Fn const &, _Args...>>()) operator()(_Args&&... __args) const & noexcept(__is_nothrow_invocable<_Fn const &, _Args...>::value && noexcept(_S_not<__inv_res_t<_Fn const &, _Args...>>())) { return !std::__invoke(std::forward< _Fn const & >(_M_fn), std::forward<_Args>(__args)...); } 26201: template decltype(_S_not<__inv_res_t<_Fn &&, _Args...>>()) operator()(_Args&&... __args) && noexcept(__is_nothrow_invocable<_Fn &&, _Args...>::value && noexcept(_S_not<__inv_res_t<_Fn &&, _Args...>>())) { return !std::__invoke(std::forward< _Fn && >(_M_fn), std::forward<_Args>(__args)...); } 26201: template decltype(_S_not<__inv_res_t<_Fn const &&, _Args...>>()) operator()(_Args&&... __args) const && noexcept(__is_nothrow_invocable<_Fn const &&, _Args...>::value && noexcept(_S_not<__inv_res_t<_Fn const &&, _Args...>>())) { return !std::__invoke(std::forward< _Fn const && >(_M_fn), std::forward<_Args>(__args)...); } 26201: #undef _GLIBCXX_NOT_FN_CALL_OP 26201: 26201: private: 26201: _Fn _M_fn; 26201: }; 26201: 26201: template 26201: struct __is_byte_like : false_type { }; 26201: 26201: template 26201: struct __is_byte_like<_Tp, equal_to<_Tp>> 26201: : __bool_constant::value> { }; 26201: 26201: template 26201: struct __is_byte_like<_Tp, equal_to> 26201: : __bool_constant::value> { }; 26201: 26201: 26201: 26201: enum class byte : unsigned char; 26201: 26201: template<> 26201: struct __is_byte_like> 26201: : true_type { }; 26201: 26201: template<> 26201: struct __is_byte_like> 26201: : true_type { }; 26201: 26201: #define __cpp_lib_not_fn 201603 26201: 26201: template 26201: 26201: inline auto 26201: not_fn(_Fn&& __fn) 26201: noexcept(std::is_nothrow_constructible, _Fn&&>::value) 26201: { 26201: return _Not_fn>{std::forward<_Fn>(__fn), 0}; 26201: } 26201: 26201: 26201: #define __cpp_lib_boyer_moore_searcher 201603 26201: 26201: template> 26201: class default_searcher 26201: { 26201: public: 26201: 26201: default_searcher(_ForwardIterator1 __pat_first, 26201: _ForwardIterator1 __pat_last, 26201: _BinaryPredicate __pred = _BinaryPredicate()) 26201: : _M_m(__pat_first, __pat_last, std::move(__pred)) 26201: { } 26201: 26201: template 26201: 26201: pair<_ForwardIterator2, _ForwardIterator2> 26201: operator()(_ForwardIterator2 __first, _ForwardIterator2 __last) const 26201: { 26201: _ForwardIterator2 __first_ret = 26201: std::search(__first, __last, std::get<0>(_M_m), std::get<1>(_M_m), 26201: std::get<2>(_M_m)); 26201: auto __ret = std::make_pair(__first_ret, __first_ret); 26201: if (__ret.first != __last) 26201: std::advance(__ret.second, std::distance(std::get<0>(_M_m), 26201: std::get<1>(_M_m))); 26201: return __ret; 26201: } 26201: 26201: private: 26201: tuple<_ForwardIterator1, _ForwardIterator1, _BinaryPredicate> _M_m; 26201: }; 26201: 26201: template 26201: struct __boyer_moore_map_base 26201: { 26201: template 26201: __boyer_moore_map_base(_RAIter __pat, size_t __patlen, 26201: _Hash&& __hf, _Pred&& __pred) 26201: : _M_bad_char{ __patlen, std::move(__hf), std::move(__pred) } 26201: { 26201: if (__patlen > 0) 26201: for (__diff_type __i = 0; __i < __patlen - 1; ++__i) 26201: _M_bad_char[__pat[__i]] = __patlen - 1 - __i; 26201: } 26201: 26201: using __diff_type = _Tp; 26201: 26201: __diff_type 26201: _M_lookup(_Key __key, __diff_type __not_found) const 26201: { 26201: auto __iter = _M_bad_char.find(__key); 26201: if (__iter == _M_bad_char.end()) 26201: return __not_found; 26201: return __iter->second; 26201: } 26201: 26201: _Pred 26201: _M_pred() const { return _M_bad_char.key_eq(); } 26201: 26201: std::unordered_map<_Key, _Tp, _Hash, _Pred> _M_bad_char; 26201: }; 26201: 26201: template 26201: struct __boyer_moore_array_base 26201: { 26201: template 26201: __boyer_moore_array_base(_RAIter __pat, size_t __patlen, 26201: _Unused&&, _Pred&& __pred) 26201: : _M_bad_char{ std::array<_Tp, _Len>{}, std::move(__pred) } 26201: { 26201: std::get<0>(_M_bad_char).fill(__patlen); 26201: if (__patlen > 0) 26201: for (__diff_type __i = 0; __i < __patlen - 1; ++__i) 26201: { 26201: auto __ch = __pat[__i]; 26201: using _UCh = make_unsigned_t; 26201: auto __uch = static_cast<_UCh>(__ch); 26201: std::get<0>(_M_bad_char)[__uch] = __patlen - 1 - __i; 26201: } 26201: } 26201: 26201: using __diff_type = _Tp; 26201: 26201: template 26201: __diff_type 26201: _M_lookup(_Key __key, __diff_type __not_found) const 26201: { 26201: auto __ukey = static_cast>(__key); 26201: if (__ukey >= _Len) 26201: return __not_found; 26201: return std::get<0>(_M_bad_char)[__ukey]; 26201: } 26201: 26201: const _Pred& 26201: _M_pred() const { return std::get<1>(_M_bad_char); } 26201: 26201: tuple, _Pred> _M_bad_char; 26201: }; 26201: 26201: 26201: 26201: template::value_type, 26201: typename _Diff = typename iterator_traits<_RAIter>::difference_type> 26201: using __boyer_moore_base_t 26201: = conditional_t<__is_byte_like<_Val, _Pred>::value, 26201: __boyer_moore_array_base<_Diff, 256, _Pred>, 26201: __boyer_moore_map_base<_Val, _Diff, _Hash, _Pred>>; 26201: 26201: template::value_type>, 26201: typename _BinaryPredicate = equal_to<>> 26201: class boyer_moore_searcher 26201: : __boyer_moore_base_t<_RAIter, _Hash, _BinaryPredicate> 26201: { 26201: using _Base = __boyer_moore_base_t<_RAIter, _Hash, _BinaryPredicate>; 26201: using typename _Base::__diff_type; 26201: 26201: public: 26201: boyer_moore_searcher(_RAIter __pat_first, _RAIter __pat_last, 26201: _Hash __hf = _Hash(), 26201: _BinaryPredicate __pred = _BinaryPredicate()); 26201: 26201: template 26201: pair<_RandomAccessIterator2, _RandomAccessIterator2> 26201: operator()(_RandomAccessIterator2 __first, 26201: _RandomAccessIterator2 __last) const; 26201: 26201: private: 26201: bool 26201: _M_is_prefix(_RAIter __word, __diff_type __len, 26201: __diff_type __pos) 26201: { 26201: const auto& __pred = this->_M_pred(); 26201: __diff_type __suffixlen = __len - __pos; 26201: for (__diff_type __i = 0; __i < __suffixlen; ++__i) 26201: if (!__pred(__word[__i], __word[__pos + __i])) 26201: return false; 26201: return true; 26201: } 26201: 26201: __diff_type 26201: _M_suffix_length(_RAIter __word, __diff_type __len, 26201: __diff_type __pos) 26201: { 26201: const auto& __pred = this->_M_pred(); 26201: __diff_type __i = 0; 26201: while (__pred(__word[__pos - __i], __word[__len - 1 - __i]) 26201: && __i < __pos) 26201: { 26201: ++__i; 26201: } 26201: return __i; 26201: } 26201: 26201: template 26201: __diff_type 26201: _M_bad_char_shift(_Tp __c) const 26201: { return this->_M_lookup(__c, _M_pat_end - _M_pat); } 26201: 26201: _RAIter _M_pat; 26201: _RAIter _M_pat_end; 26201: std::vector<__diff_type> _M_good_suffix; 26201: }; 26201: 26201: template::value_type>, 26201: typename _BinaryPredicate = equal_to<>> 26201: class boyer_moore_horspool_searcher 26201: : __boyer_moore_base_t<_RAIter, _Hash, _BinaryPredicate> 26201: { 26201: using _Base = __boyer_moore_base_t<_RAIter, _Hash, _BinaryPredicate>; 26201: using typename _Base::__diff_type; 26201: 26201: public: 26201: boyer_moore_horspool_searcher(_RAIter __pat, 26201: _RAIter __pat_end, 26201: _Hash __hf = _Hash(), 26201: _BinaryPredicate __pred 26201: = _BinaryPredicate()) 26201: : _Base(__pat, __pat_end - __pat, std::move(__hf), std::move(__pred)), 26201: _M_pat(__pat), _M_pat_end(__pat_end) 26201: { } 26201: 26201: template 26201: pair<_RandomAccessIterator2, _RandomAccessIterator2> 26201: operator()(_RandomAccessIterator2 __first, 26201: _RandomAccessIterator2 __last) const 26201: { 26201: const auto& __pred = this->_M_pred(); 26201: auto __patlen = _M_pat_end - _M_pat; 26201: if (__patlen == 0) 26201: return std::make_pair(__first, __first); 26201: auto __len = __last - __first; 26201: while (__len >= __patlen) 26201: { 26201: for (auto __scan = __patlen - 1; 26201: __pred(__first[__scan], _M_pat[__scan]); --__scan) 26201: if (__scan == 0) 26201: return std::make_pair(__first, __first + __patlen); 26201: auto __shift = _M_bad_char_shift(__first[__patlen - 1]); 26201: __len -= __shift; 26201: __first += __shift; 26201: } 26201: return std::make_pair(__last, __last); 26201: } 26201: 26201: private: 26201: template 26201: __diff_type 26201: _M_bad_char_shift(_Tp __c) const 26201: { return this->_M_lookup(__c, _M_pat_end - _M_pat); } 26201: 26201: _RAIter _M_pat; 26201: _RAIter _M_pat_end; 26201: }; 26201: 26201: template 26201: boyer_moore_searcher<_RAIter, _Hash, _BinaryPredicate>:: 26201: boyer_moore_searcher(_RAIter __pat, _RAIter __pat_end, 26201: _Hash __hf, _BinaryPredicate __pred) 26201: : _Base(__pat, __pat_end - __pat, std::move(__hf), std::move(__pred)), 26201: _M_pat(__pat), _M_pat_end(__pat_end), _M_good_suffix(__pat_end - __pat) 26201: { 26201: auto __patlen = __pat_end - __pat; 26201: if (__patlen == 0) 26201: return; 26201: __diff_type __last_prefix = __patlen - 1; 26201: for (__diff_type __p = __patlen - 1; __p >= 0; --__p) 26201: { 26201: if (_M_is_prefix(__pat, __patlen, __p + 1)) 26201: __last_prefix = __p + 1; 26201: _M_good_suffix[__p] = __last_prefix + (__patlen - 1 - __p); 26201: } 26201: for (__diff_type __p = 0; __p < __patlen - 1; ++__p) 26201: { 26201: auto __slen = _M_suffix_length(__pat, __patlen, __p); 26201: auto __pos = __patlen - 1 - __slen; 26201: if (!__pred(__pat[__p - __slen], __pat[__pos])) 26201: _M_good_suffix[__pos] = __patlen - 1 - __p + __slen; 26201: } 26201: } 26201: 26201: template 26201: template 26201: pair<_RandomAccessIterator2, _RandomAccessIterator2> 26201: boyer_moore_searcher<_RAIter, _Hash, _BinaryPredicate>:: 26201: operator()(_RandomAccessIterator2 __first, 26201: _RandomAccessIterator2 __last) const 26201: { 26201: auto __patlen = _M_pat_end - _M_pat; 26201: if (__patlen == 0) 26201: return std::make_pair(__first, __first); 26201: const auto& __pred = this->_M_pred(); 26201: __diff_type __i = __patlen - 1; 26201: auto __stringlen = __last - __first; 26201: while (__i < __stringlen) 26201: { 26201: __diff_type __j = __patlen - 1; 26201: while (__j >= 0 && __pred(__first[__i], _M_pat[__j])) 26201: { 26201: --__i; 26201: --__j; 26201: } 26201: if (__j < 0) 26201: { 26201: const auto __match = __first + __i + 1; 26201: return std::make_pair(__match, __match + __patlen); 26201: } 26201: __i += std::max(_M_bad_char_shift(__first[__i]), 26201: _M_good_suffix[__j]); 26201: } 26201: return std::make_pair(__last, __last); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 14 "/usr/x86_64-linux-gnu/include/c++/10/pstl/glue_algorithm_defs.h" 2 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/pstl/execution_defs.h" 1 3 26201: # 11 "/usr/x86_64-linux-gnu/include/c++/10/pstl/execution_defs.h" 3 26201: #define _PSTL_EXECUTION_POLICY_DEFS_H 26201: 26201: 26201: 26201: namespace __pstl 26201: { 26201: namespace execution 26201: { 26201: inline namespace v1 26201: { 26201: 26201: 26201: class sequenced_policy 26201: { 26201: public: 26201: 26201: static constexpr std::false_type 26201: __allow_unsequenced() 26201: { 26201: return std::false_type{}; 26201: } 26201: static constexpr std::false_type 26201: __allow_vector() 26201: { 26201: return std::false_type{}; 26201: } 26201: static constexpr std::false_type 26201: __allow_parallel() 26201: { 26201: return std::false_type{}; 26201: } 26201: }; 26201: 26201: 26201: class parallel_policy 26201: { 26201: public: 26201: 26201: static constexpr std::false_type 26201: __allow_unsequenced() 26201: { 26201: return std::false_type{}; 26201: } 26201: static constexpr std::false_type 26201: __allow_vector() 26201: { 26201: return std::false_type{}; 26201: } 26201: static constexpr std::true_type 26201: __allow_parallel() 26201: { 26201: return std::true_type{}; 26201: } 26201: }; 26201: 26201: 26201: class parallel_unsequenced_policy 26201: { 26201: public: 26201: 26201: static constexpr std::true_type 26201: __allow_unsequenced() 26201: { 26201: return std::true_type{}; 26201: } 26201: static constexpr std::true_type 26201: __allow_vector() 26201: { 26201: return std::true_type{}; 26201: } 26201: static constexpr std::true_type 26201: __allow_parallel() 26201: { 26201: return std::true_type{}; 26201: } 26201: }; 26201: 26201: class unsequenced_policy 26201: { 26201: public: 26201: 26201: static constexpr std::true_type 26201: __allow_unsequenced() 26201: { 26201: return std::true_type{}; 26201: } 26201: static constexpr std::true_type 26201: __allow_vector() 26201: { 26201: return std::true_type{}; 26201: } 26201: static constexpr std::false_type 26201: __allow_parallel() 26201: { 26201: return std::false_type{}; 26201: } 26201: }; 26201: 26201: 26201: constexpr sequenced_policy seq{}; 26201: constexpr parallel_policy par{}; 26201: constexpr parallel_unsequenced_policy par_unseq{}; 26201: constexpr unsequenced_policy unseq{}; 26201: 26201: 26201: template 26201: struct is_execution_policy : std::false_type 26201: { 26201: }; 26201: 26201: template <> 26201: struct is_execution_policy<__pstl::execution::sequenced_policy> : std::true_type 26201: { 26201: }; 26201: template <> 26201: struct is_execution_policy<__pstl::execution::parallel_policy> : std::true_type 26201: { 26201: }; 26201: template <> 26201: struct is_execution_policy<__pstl::execution::parallel_unsequenced_policy> : std::true_type 26201: { 26201: }; 26201: template <> 26201: struct is_execution_policy<__pstl::execution::unsequenced_policy> : std::true_type 26201: { 26201: }; 26201: 26201: 26201: template 26201: constexpr bool is_execution_policy_v = __pstl::execution::is_execution_policy<_Tp>::value; 26201: 26201: 26201: } 26201: } 26201: 26201: namespace __internal 26201: { 26201: template 26201: 26201: using __enable_if_execution_policy = 26201: typename std::enable_if<__pstl::execution::is_execution_policy>::value, 26201: _Tp>::type; 26201: 26201: 26201: 26201: 26201: 26201: } 26201: 26201: } 26201: # 16 "/usr/x86_64-linux-gnu/include/c++/10/pstl/glue_algorithm_defs.h" 2 3 26201: 26201: namespace std 26201: { 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, bool> 26201: any_of(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _Predicate __pred); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, bool> 26201: all_of(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _Predicate __pred); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, bool> 26201: none_of(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _Predicate __pred); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void> 26201: for_each(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _Function __f); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: for_each_n(_ExecutionPolicy&& __exec, _ForwardIterator __first, _Size __n, _Function __f); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: find_if(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _Predicate __pred); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: find_if_not(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _Predicate __pred); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: find(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, const _Tp& __value); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator1> 26201: find_end(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, _ForwardIterator2 __s_first, 26201: _ForwardIterator2 __s_last, _BinaryPredicate __pred); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator1> 26201: find_end(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, _ForwardIterator2 __s_first, 26201: _ForwardIterator2 __s_last); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator1> 26201: find_first_of(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, 26201: _ForwardIterator2 __s_first, _ForwardIterator2 __s_last, _BinaryPredicate __pred); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator1> 26201: find_first_of(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, 26201: _ForwardIterator2 __s_first, _ForwardIterator2 __s_last); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: adjacent_find(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: adjacent_find(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __pred); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, 26201: typename iterator_traits<_ForwardIterator>::difference_type> 26201: count(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, const _Tp& __value); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, 26201: typename iterator_traits<_ForwardIterator>::difference_type> 26201: count_if(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _Predicate __pred); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator1> 26201: search(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, _ForwardIterator2 __s_first, 26201: _ForwardIterator2 __s_last, _BinaryPredicate __pred); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator1> 26201: search(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, _ForwardIterator2 __s_first, 26201: _ForwardIterator2 __s_last); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: search_n(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _Size __count, 26201: const _Tp& __value, _BinaryPredicate __pred); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: search_n(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _Size __count, 26201: const _Tp& __value); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> 26201: copy(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, _ForwardIterator2 __result); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> 26201: copy_n(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _Size __n, _ForwardIterator2 __result); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> 26201: copy_if(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, _ForwardIterator2 result, 26201: _Predicate __pred); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> 26201: swap_ranges(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> 26201: transform(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, _ForwardIterator2 __result, 26201: _UnaryOperation __op); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: transform(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, 26201: _ForwardIterator __result, _BinaryOperation __op); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void> 26201: replace_if(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _UnaryPredicate __pred, 26201: const _Tp& __new_value); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void> 26201: replace(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, const _Tp& __old_value, 26201: const _Tp& __new_value); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> 26201: replace_copy_if(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, 26201: _ForwardIterator2 __result, _UnaryPredicate __pred, const _Tp& __new_value); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> 26201: replace_copy(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, _ForwardIterator2 __result, 26201: const _Tp& __old_value, const _Tp& __new_value); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void> 26201: fill(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, const _Tp& __value); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: fill_n(_ExecutionPolicy&& __exec, _ForwardIterator __first, _Size __count, const _Tp& __value); 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void> 26201: generate(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _Generator __g); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: generate_n(_ExecutionPolicy&& __exec, _ForwardIterator __first, _Size count, _Generator __g); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> 26201: remove_copy_if(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, 26201: _ForwardIterator2 __result, _Predicate __pred); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> 26201: remove_copy(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, _ForwardIterator2 __result, 26201: const _Tp& __value); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: remove_if(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _UnaryPredicate __pred); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: remove(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, const _Tp& __value); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: unique(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __pred); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: unique(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> 26201: unique_copy(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, _ForwardIterator2 __result, 26201: _BinaryPredicate __pred); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> 26201: unique_copy(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, _ForwardIterator2 __result); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void> 26201: reverse(_ExecutionPolicy&& __exec, _BidirectionalIterator __first, _BidirectionalIterator __last); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: reverse_copy(_ExecutionPolicy&& __exec, _BidirectionalIterator __first, _BidirectionalIterator __last, 26201: _ForwardIterator __d_first); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: rotate(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> 26201: rotate_copy(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __middle, _ForwardIterator1 __last, 26201: _ForwardIterator2 __result); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, bool> 26201: is_partitioned(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _UnaryPredicate __pred); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: partition(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _UnaryPredicate __pred); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _BidirectionalIterator> 26201: stable_partition(_ExecutionPolicy&& __exec, _BidirectionalIterator __first, _BidirectionalIterator __last, 26201: _UnaryPredicate __pred); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, std::pair<_ForwardIterator1, _ForwardIterator2>> 26201: partition_copy(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, 26201: _ForwardIterator1 __out_true, _ForwardIterator2 __out_false, _UnaryPredicate __pred); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void> 26201: sort(_ExecutionPolicy&& __exec, _RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void> 26201: sort(_ExecutionPolicy&& __exec, _RandomAccessIterator __first, _RandomAccessIterator __last); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void> 26201: stable_sort(_ExecutionPolicy&& __exec, _RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void> 26201: stable_sort(_ExecutionPolicy&& __exec, _RandomAccessIterator __first, _RandomAccessIterator __last); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, std::pair<_ForwardIterator1, _ForwardIterator2>> 26201: mismatch(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, 26201: _ForwardIterator2 __last2, _BinaryPredicate __pred); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, std::pair<_ForwardIterator1, _ForwardIterator2>> 26201: mismatch(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, 26201: _BinaryPredicate __pred); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, std::pair<_ForwardIterator1, _ForwardIterator2>> 26201: mismatch(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, 26201: _ForwardIterator2 __last2); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, std::pair<_ForwardIterator1, _ForwardIterator2>> 26201: mismatch(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, bool> 26201: equal(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, 26201: _BinaryPredicate __p); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, bool> 26201: equal(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, bool> 26201: equal(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, 26201: _ForwardIterator2 __last2, _BinaryPredicate __p); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, bool> 26201: equal(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, 26201: _ForwardIterator2 __last2); 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> 26201: move(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, _ForwardIterator2 __d_first); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void> 26201: partial_sort(_ExecutionPolicy&& __exec, _RandomAccessIterator __first, _RandomAccessIterator __middle, 26201: _RandomAccessIterator __last, _Compare __comp); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void> 26201: partial_sort(_ExecutionPolicy&& __exec, _RandomAccessIterator __first, _RandomAccessIterator __middle, 26201: _RandomAccessIterator __last); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _RandomAccessIterator> 26201: partial_sort_copy(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, 26201: _RandomAccessIterator __d_first, _RandomAccessIterator __d_last, _Compare __comp); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _RandomAccessIterator> 26201: partial_sort_copy(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, 26201: _RandomAccessIterator __d_first, _RandomAccessIterator __d_last); 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: is_sorted_until(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _Compare __comp); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: is_sorted_until(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, bool> 26201: is_sorted(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _Compare __comp); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, bool> 26201: is_sorted(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void> 26201: nth_element(_ExecutionPolicy&& __exec, _RandomAccessIterator __first, _RandomAccessIterator __nth, 26201: _RandomAccessIterator __last, _Compare __comp); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void> 26201: nth_element(_ExecutionPolicy&& __exec, _RandomAccessIterator __first, _RandomAccessIterator __nth, 26201: _RandomAccessIterator __last); 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: merge(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, 26201: _ForwardIterator2 __last2, _ForwardIterator __d_first, _Compare __comp); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: merge(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, 26201: _ForwardIterator2 __last2, _ForwardIterator __d_first); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void> 26201: inplace_merge(_ExecutionPolicy&& __exec, _BidirectionalIterator __first, _BidirectionalIterator __middle, 26201: _BidirectionalIterator __last, _Compare __comp); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void> 26201: inplace_merge(_ExecutionPolicy&& __exec, _BidirectionalIterator __first, _BidirectionalIterator __middle, 26201: _BidirectionalIterator __last); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, bool> 26201: includes(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, 26201: _ForwardIterator2 __last2, _Compare __comp); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, bool> 26201: includes(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, 26201: _ForwardIterator2 __last2); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: set_union(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, 26201: _ForwardIterator2 __last2, _ForwardIterator __result, _Compare __comp); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: set_union(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, 26201: _ForwardIterator2 __last2, _ForwardIterator __result); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: set_intersection(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2, _ForwardIterator2 __last2, _ForwardIterator __result, _Compare __comp); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: set_intersection(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2, _ForwardIterator2 __last2, _ForwardIterator __result); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: set_difference(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2, _ForwardIterator2 __last2, _ForwardIterator __result, _Compare __comp); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: set_difference(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2, _ForwardIterator2 __last2, _ForwardIterator __result); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: set_symmetric_difference(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2, _ForwardIterator2 __last2, _ForwardIterator result, 26201: _Compare __comp); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: set_symmetric_difference(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2, _ForwardIterator2 __last2, _ForwardIterator __result); 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _RandomAccessIterator> 26201: is_heap_until(_ExecutionPolicy&& __exec, _RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _RandomAccessIterator> 26201: is_heap_until(_ExecutionPolicy&& __exec, _RandomAccessIterator __first, _RandomAccessIterator __last); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, bool> 26201: is_heap(_ExecutionPolicy&& __exec, _RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, bool> 26201: is_heap(_ExecutionPolicy&& __exec, _RandomAccessIterator __first, _RandomAccessIterator __last); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: min_element(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _Compare __comp); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: min_element(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: max_element(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _Compare __comp); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: max_element(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, std::pair<_ForwardIterator, _ForwardIterator>> 26201: minmax_element(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _Compare __comp); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, std::pair<_ForwardIterator, _ForwardIterator>> 26201: minmax_element(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, bool> 26201: lexicographical_compare(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2, _ForwardIterator2 __last2, _Compare __comp); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, bool> 26201: lexicographical_compare(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2, _ForwardIterator2 __last2); 26201: 26201: } 26201: # 75 "/usr/x86_64-linux-gnu/include/c++/10/algorithm" 2 3 26201: #define _PSTL_ALGORITHM_FORWARD_DECLARED 1 26201: 26201: 26201: 26201: #define __cpp_lib_parallel_algorithm 201603L 26201: # 22 "src/common/common.h" 2 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/cassert" 1 3 26201: # 41 "/usr/x86_64-linux-gnu/include/c++/10/cassert" 3 26201: 26201: # 42 "/usr/x86_64-linux-gnu/include/c++/10/cassert" 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/assert.h" 1 3 26201: # 34 "/usr/x86_64-linux-gnu/include/assert.h" 3 26201: #define _ASSERT_H 1 26201: 26201: 26201: 26201: #define __ASSERT_VOID_CAST static_cast 26201: # 65 "/usr/x86_64-linux-gnu/include/assert.h" 3 26201: #define _ASSERT_H_DECLS 26201: extern "C" { 26201: 26201: 26201: extern void __assert_fail (const char *__assertion, const char *__file, 26201: unsigned int __line, const char *__function) 26201: throw () __attribute__ ((__noreturn__)); 26201: 26201: 26201: extern void __assert_perror_fail (int __errnum, const char *__file, 26201: unsigned int __line, const char *__function) 26201: throw () __attribute__ ((__noreturn__)); 26201: 26201: 26201: 26201: 26201: extern void __assert (const char *__assertion, const char *__file, int __line) 26201: throw () __attribute__ ((__noreturn__)); 26201: 26201: 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define assert(expr) (static_cast (expr) ? void (0) : __assert_fail (#expr, __FILE__, __LINE__, __ASSERT_FUNCTION)) 26201: # 117 "/usr/x86_64-linux-gnu/include/assert.h" 3 26201: #define assert_perror(errnum) (!(errnum) ? __ASSERT_VOID_CAST (0) : __assert_perror_fail ((errnum), __FILE__, __LINE__, __ASSERT_FUNCTION)) 26201: # 129 "/usr/x86_64-linux-gnu/include/assert.h" 3 26201: #define __ASSERT_FUNCTION __extension__ __PRETTY_FUNCTION__ 26201: # 45 "/usr/x86_64-linux-gnu/include/c++/10/cassert" 2 3 26201: # 23 "src/common/common.h" 2 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/cstdint" 1 3 26201: # 30 "/usr/x86_64-linux-gnu/include/c++/10/cstdint" 3 26201: #define _GLIBCXX_CSTDINT 1 26201: 26201: 26201: # 33 "/usr/x86_64-linux-gnu/include/c++/10/cstdint" 3 26201: # 41 "/usr/x86_64-linux-gnu/include/c++/10/cstdint" 3 26201: # 1 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stdint.h" 1 3 4 26201: 26201: 26201: 26201: #undef __STDC_LIMIT_MACROS 26201: #define __STDC_LIMIT_MACROS 26201: #undef __STDC_CONSTANT_MACROS 26201: #define __STDC_CONSTANT_MACROS 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/stdint.h" 1 3 4 26201: # 23 "/usr/x86_64-linux-gnu/include/stdint.h" 3 4 26201: #define _STDINT_H 1 26201: 26201: #define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 1 3 4 26201: # 31 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 3 4 26201: #undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION 26201: 26201: 26201: 26201: 26201: 26201: #undef __GLIBC_USE_LIB_EXT2 26201: 26201: 26201: #define __GLIBC_USE_LIB_EXT2 1 26201: # 49 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 3 4 26201: #undef __GLIBC_USE_IEC_60559_BFP_EXT 26201: 26201: #define __GLIBC_USE_IEC_60559_BFP_EXT 1 26201: 26201: 26201: 26201: #undef __GLIBC_USE_IEC_60559_BFP_EXT_C2X 26201: 26201: #define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 1 26201: # 66 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 3 4 26201: #undef __GLIBC_USE_IEC_60559_FUNCS_EXT 26201: 26201: #define __GLIBC_USE_IEC_60559_FUNCS_EXT 1 26201: 26201: 26201: 26201: #undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 26201: 26201: #define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: #undef __GLIBC_USE_IEC_60559_TYPES_EXT 26201: 26201: #define __GLIBC_USE_IEC_60559_TYPES_EXT 1 26201: # 27 "/usr/x86_64-linux-gnu/include/stdint.h" 2 3 4 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/wchar.h" 1 3 4 26201: # 20 "/usr/x86_64-linux-gnu/include/bits/wchar.h" 3 4 26201: #define _BITS_WCHAR_H 1 26201: # 34 "/usr/x86_64-linux-gnu/include/bits/wchar.h" 3 4 26201: #define __WCHAR_MAX __WCHAR_MAX__ 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __WCHAR_MIN __WCHAR_MIN__ 26201: # 29 "/usr/x86_64-linux-gnu/include/stdint.h" 2 3 4 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/wordsize.h" 1 3 4 26201: 26201: 26201: 26201: #define __WORDSIZE 64 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __WORDSIZE_TIME64_COMPAT32 1 26201: 26201: #define __SYSCALL_WORDSIZE 64 26201: # 30 "/usr/x86_64-linux-gnu/include/stdint.h" 2 3 4 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/stdint-uintn.h" 1 3 4 26201: # 20 "/usr/x86_64-linux-gnu/include/bits/stdint-uintn.h" 3 4 26201: #define _BITS_STDINT_UINTN_H 1 26201: 26201: 26201: 26201: typedef __uint8_t uint8_t; 26201: typedef __uint16_t uint16_t; 26201: typedef __uint32_t uint32_t; 26201: typedef __uint64_t uint64_t; 26201: # 38 "/usr/x86_64-linux-gnu/include/stdint.h" 2 3 4 26201: 26201: 26201: 26201: 26201: 26201: typedef __int_least8_t int_least8_t; 26201: typedef __int_least16_t int_least16_t; 26201: typedef __int_least32_t int_least32_t; 26201: typedef __int_least64_t int_least64_t; 26201: 26201: 26201: typedef __uint_least8_t uint_least8_t; 26201: typedef __uint_least16_t uint_least16_t; 26201: typedef __uint_least32_t uint_least32_t; 26201: typedef __uint_least64_t uint_least64_t; 26201: 26201: 26201: 26201: 26201: 26201: typedef signed char int_fast8_t; 26201: 26201: typedef long int int_fast16_t; 26201: typedef long int int_fast32_t; 26201: typedef long int int_fast64_t; 26201: # 71 "/usr/x86_64-linux-gnu/include/stdint.h" 3 4 26201: typedef unsigned char uint_fast8_t; 26201: 26201: typedef unsigned long int uint_fast16_t; 26201: typedef unsigned long int uint_fast32_t; 26201: typedef unsigned long int uint_fast64_t; 26201: # 87 "/usr/x86_64-linux-gnu/include/stdint.h" 3 4 26201: typedef long int intptr_t; 26201: #define __intptr_t_defined 26201: 26201: typedef unsigned long int uintptr_t; 26201: # 101 "/usr/x86_64-linux-gnu/include/stdint.h" 3 4 26201: typedef __intmax_t intmax_t; 26201: typedef __uintmax_t uintmax_t; 26201: 26201: 26201: 26201: #define __INT64_C(c) c ## L 26201: #define __UINT64_C(c) c ## UL 26201: # 116 "/usr/x86_64-linux-gnu/include/stdint.h" 3 4 26201: #define INT8_MIN (-128) 26201: #define INT16_MIN (-32767-1) 26201: #define INT32_MIN (-2147483647-1) 26201: #define INT64_MIN (-__INT64_C(9223372036854775807)-1) 26201: 26201: #define INT8_MAX (127) 26201: #define INT16_MAX (32767) 26201: #define INT32_MAX (2147483647) 26201: #define INT64_MAX (__INT64_C(9223372036854775807)) 26201: 26201: 26201: #define UINT8_MAX (255) 26201: #define UINT16_MAX (65535) 26201: #define UINT32_MAX (4294967295U) 26201: #define UINT64_MAX (__UINT64_C(18446744073709551615)) 26201: 26201: 26201: 26201: #define INT_LEAST8_MIN (-128) 26201: #define INT_LEAST16_MIN (-32767-1) 26201: #define INT_LEAST32_MIN (-2147483647-1) 26201: #define INT_LEAST64_MIN (-__INT64_C(9223372036854775807)-1) 26201: 26201: #define INT_LEAST8_MAX (127) 26201: #define INT_LEAST16_MAX (32767) 26201: #define INT_LEAST32_MAX (2147483647) 26201: #define INT_LEAST64_MAX (__INT64_C(9223372036854775807)) 26201: 26201: 26201: #define UINT_LEAST8_MAX (255) 26201: #define UINT_LEAST16_MAX (65535) 26201: #define UINT_LEAST32_MAX (4294967295U) 26201: #define UINT_LEAST64_MAX (__UINT64_C(18446744073709551615)) 26201: 26201: 26201: 26201: #define INT_FAST8_MIN (-128) 26201: 26201: #define INT_FAST16_MIN (-9223372036854775807L-1) 26201: #define INT_FAST32_MIN (-9223372036854775807L-1) 26201: 26201: 26201: 26201: 26201: #define INT_FAST64_MIN (-__INT64_C(9223372036854775807)-1) 26201: 26201: #define INT_FAST8_MAX (127) 26201: 26201: #define INT_FAST16_MAX (9223372036854775807L) 26201: #define INT_FAST32_MAX (9223372036854775807L) 26201: 26201: 26201: 26201: 26201: #define INT_FAST64_MAX (__INT64_C(9223372036854775807)) 26201: 26201: 26201: #define UINT_FAST8_MAX (255) 26201: 26201: #define UINT_FAST16_MAX (18446744073709551615UL) 26201: #define UINT_FAST32_MAX (18446744073709551615UL) 26201: 26201: 26201: 26201: 26201: #define UINT_FAST64_MAX (__UINT64_C(18446744073709551615)) 26201: 26201: 26201: 26201: 26201: #define INTPTR_MIN (-9223372036854775807L-1) 26201: #define INTPTR_MAX (9223372036854775807L) 26201: #define UINTPTR_MAX (18446744073709551615UL) 26201: # 197 "/usr/x86_64-linux-gnu/include/stdint.h" 3 4 26201: #define INTMAX_MIN (-__INT64_C(9223372036854775807)-1) 26201: 26201: #define INTMAX_MAX (__INT64_C(9223372036854775807)) 26201: 26201: 26201: #define UINTMAX_MAX (__UINT64_C(18446744073709551615)) 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define PTRDIFF_MIN (-9223372036854775807L-1) 26201: #define PTRDIFF_MAX (9223372036854775807L) 26201: # 222 "/usr/x86_64-linux-gnu/include/stdint.h" 3 4 26201: #define SIG_ATOMIC_MIN (-2147483647-1) 26201: #define SIG_ATOMIC_MAX (2147483647) 26201: 26201: 26201: 26201: #define SIZE_MAX (18446744073709551615UL) 26201: # 239 "/usr/x86_64-linux-gnu/include/stdint.h" 3 4 26201: #define WCHAR_MIN __WCHAR_MIN 26201: #define WCHAR_MAX __WCHAR_MAX 26201: 26201: 26201: 26201: #define WINT_MIN (0u) 26201: #define WINT_MAX (4294967295u) 26201: 26201: 26201: #define INT8_C(c) c 26201: #define INT16_C(c) c 26201: #define INT32_C(c) c 26201: 26201: #define INT64_C(c) c ## L 26201: 26201: 26201: 26201: 26201: 26201: #define UINT8_C(c) c 26201: #define UINT16_C(c) c 26201: #define UINT32_C(c) c ## U 26201: 26201: #define UINT64_C(c) c ## UL 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define INTMAX_C(c) c ## L 26201: #define UINTMAX_C(c) c ## UL 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define INT8_WIDTH 8 26201: #define UINT8_WIDTH 8 26201: #define INT16_WIDTH 16 26201: #define UINT16_WIDTH 16 26201: #define INT32_WIDTH 32 26201: #define UINT32_WIDTH 32 26201: #define INT64_WIDTH 64 26201: #define UINT64_WIDTH 64 26201: 26201: #define INT_LEAST8_WIDTH 8 26201: #define UINT_LEAST8_WIDTH 8 26201: #define INT_LEAST16_WIDTH 16 26201: #define UINT_LEAST16_WIDTH 16 26201: #define INT_LEAST32_WIDTH 32 26201: #define UINT_LEAST32_WIDTH 32 26201: #define INT_LEAST64_WIDTH 64 26201: #define UINT_LEAST64_WIDTH 64 26201: 26201: #define INT_FAST8_WIDTH 8 26201: #define UINT_FAST8_WIDTH 8 26201: #define INT_FAST16_WIDTH __WORDSIZE 26201: #define UINT_FAST16_WIDTH __WORDSIZE 26201: #define INT_FAST32_WIDTH __WORDSIZE 26201: #define UINT_FAST32_WIDTH __WORDSIZE 26201: #define INT_FAST64_WIDTH 64 26201: #define UINT_FAST64_WIDTH 64 26201: 26201: #define INTPTR_WIDTH __WORDSIZE 26201: #define UINTPTR_WIDTH __WORDSIZE 26201: 26201: #define INTMAX_WIDTH 64 26201: #define UINTMAX_WIDTH 64 26201: 26201: #define PTRDIFF_WIDTH __WORDSIZE 26201: #define SIG_ATOMIC_WIDTH 32 26201: #define SIZE_WIDTH __WORDSIZE 26201: #define WCHAR_WIDTH 32 26201: #define WINT_WIDTH 32 26201: # 10 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stdint.h" 2 3 4 26201: 26201: 26201: 26201: #define _GCC_WRAP_STDINT_H 26201: # 42 "/usr/x86_64-linux-gnu/include/c++/10/cstdint" 2 3 26201: 26201: 26201: namespace std 26201: { 26201: 26201: using ::int8_t; 26201: using ::int16_t; 26201: using ::int32_t; 26201: using ::int64_t; 26201: 26201: using ::int_fast8_t; 26201: using ::int_fast16_t; 26201: using ::int_fast32_t; 26201: using ::int_fast64_t; 26201: 26201: using ::int_least8_t; 26201: using ::int_least16_t; 26201: using ::int_least32_t; 26201: using ::int_least64_t; 26201: 26201: using ::intmax_t; 26201: using ::intptr_t; 26201: 26201: using ::uint8_t; 26201: using ::uint16_t; 26201: using ::uint32_t; 26201: using ::uint64_t; 26201: 26201: using ::uint_fast8_t; 26201: using ::uint_fast16_t; 26201: using ::uint_fast32_t; 26201: using ::uint_fast64_t; 26201: 26201: using ::uint_least8_t; 26201: using ::uint_least16_t; 26201: using ::uint_least32_t; 26201: using ::uint_least64_t; 26201: 26201: using ::uintmax_t; 26201: using ::uintptr_t; 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 24 "src/common/common.h" 2 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/cstring" 1 3 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/cstring" 3 26201: 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/cstring" 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/string.h" 1 3 26201: # 23 "/usr/x86_64-linux-gnu/include/string.h" 3 26201: #define _STRING_H 1 26201: 26201: #define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 3 26201: #undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION 26201: 26201: 26201: 26201: 26201: 26201: #undef __GLIBC_USE_LIB_EXT2 26201: 26201: 26201: #define __GLIBC_USE_LIB_EXT2 1 26201: # 49 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 3 26201: #undef __GLIBC_USE_IEC_60559_BFP_EXT 26201: 26201: #define __GLIBC_USE_IEC_60559_BFP_EXT 1 26201: 26201: 26201: 26201: #undef __GLIBC_USE_IEC_60559_BFP_EXT_C2X 26201: 26201: #define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 1 26201: # 66 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 3 26201: #undef __GLIBC_USE_IEC_60559_FUNCS_EXT 26201: 26201: #define __GLIBC_USE_IEC_60559_FUNCS_EXT 1 26201: 26201: 26201: 26201: #undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 26201: 26201: #define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: #undef __GLIBC_USE_IEC_60559_TYPES_EXT 26201: 26201: #define __GLIBC_USE_IEC_60559_TYPES_EXT 1 26201: # 27 "/usr/x86_64-linux-gnu/include/string.h" 2 3 26201: 26201: extern "C" { 26201: 26201: 26201: #define __need_size_t 26201: #define __need_NULL 26201: # 1 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 1 3 4 26201: # 155 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_ptrdiff_t 26201: # 231 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_size_t 26201: # 340 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_wchar_t 26201: # 390 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef NULL 26201: 26201: #define NULL __null 26201: # 401 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_NULL 26201: 26201: 26201: 26201: 26201: #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER) 26201: # 34 "/usr/x86_64-linux-gnu/include/string.h" 2 3 26201: 26201: 26201: 26201: 26201: #define __CORRECT_ISO_CPP_STRING_H_PROTO 26201: 26201: 26201: 26201: 26201: extern void *memcpy (void *__restrict __dest, const void *__restrict __src, 26201: size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern void *memmove (void *__dest, const void *__src, size_t __n) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: 26201: 26201: 26201: extern void *memccpy (void *__restrict __dest, const void *__restrict __src, 26201: int __c, size_t __n) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: 26201: 26201: extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int memcmp (const void *__s1, const void *__s2, size_t __n) 26201: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: 26201: extern "C++" 26201: { 26201: extern void *memchr (void *__s, int __c, size_t __n) 26201: throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 26201: extern const void *memchr (const void *__s, int __c, size_t __n) 26201: throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) void * 26201: memchr (void *__s, int __c, size_t __n) throw () 26201: { 26201: return __builtin_memchr (__s, __c, __n); 26201: } 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const void * 26201: memchr (const void *__s, int __c, size_t __n) throw () 26201: { 26201: return __builtin_memchr (__s, __c, __n); 26201: } 26201: 26201: } 26201: # 99 "/usr/x86_64-linux-gnu/include/string.h" 3 26201: extern "C++" void *rawmemchr (void *__s, int __c) 26201: throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 26201: extern "C++" const void *rawmemchr (const void *__s, int __c) 26201: throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern "C++" void *memrchr (void *__s, int __c, size_t __n) 26201: throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 26201: extern "C++" const void *memrchr (const void *__s, int __c, size_t __n) 26201: throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 26201: # 122 "/usr/x86_64-linux-gnu/include/string.h" 3 26201: extern char *strcpy (char *__restrict __dest, const char *__restrict __src) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: extern char *strncpy (char *__restrict __dest, 26201: const char *__restrict __src, size_t __n) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern char *strcat (char *__restrict __dest, const char *__restrict __src) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: extern char *strncat (char *__restrict __dest, const char *__restrict __src, 26201: size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern int strcmp (const char *__s1, const char *__s2) 26201: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: extern int strncmp (const char *__s1, const char *__s2, size_t __n) 26201: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern int strcoll (const char *__s1, const char *__s2) 26201: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: extern size_t strxfrm (char *__restrict __dest, 26201: const char *__restrict __src, size_t __n) 26201: throw () __attribute__ ((__nonnull__ (2))); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l) 26201: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); 26201: 26201: 26201: extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, 26201: locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4))); 26201: 26201: 26201: 26201: 26201: 26201: extern char *strdup (const char *__s) 26201: throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern char *strndup (const char *__string, size_t __n) 26201: throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: 26201: #define strdupa(s) (__extension__ ({ const char *__old = (s); size_t __len = strlen (__old) + 1; char *__new = (char *) __builtin_alloca (__len); (char *) memcpy (__new, __old, __len); })) 26201: # 191 "/usr/x86_64-linux-gnu/include/string.h" 3 26201: #define strndupa(s,n) (__extension__ ({ const char *__old = (s); size_t __len = strnlen (__old, (n)); char *__new = (char *) __builtin_alloca (__len + 1); __new[__len] = '\0'; (char *) memcpy (__new, __old, __len); })) 26201: # 204 "/usr/x86_64-linux-gnu/include/string.h" 3 26201: extern "C++" 26201: { 26201: extern char *strchr (char *__s, int __c) 26201: throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 26201: extern const char *strchr (const char *__s, int __c) 26201: throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 26201: strchr (char *__s, int __c) throw () 26201: { 26201: return __builtin_strchr (__s, __c); 26201: } 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 26201: strchr (const char *__s, int __c) throw () 26201: { 26201: return __builtin_strchr (__s, __c); 26201: } 26201: 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern "C++" 26201: { 26201: extern char *strrchr (char *__s, int __c) 26201: throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 26201: extern const char *strrchr (const char *__s, int __c) 26201: throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 26201: strrchr (char *__s, int __c) throw () 26201: { 26201: return __builtin_strrchr (__s, __c); 26201: } 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 26201: strrchr (const char *__s, int __c) throw () 26201: { 26201: return __builtin_strrchr (__s, __c); 26201: } 26201: 26201: } 26201: # 261 "/usr/x86_64-linux-gnu/include/string.h" 3 26201: extern "C++" char *strchrnul (char *__s, int __c) 26201: throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 26201: extern "C++" const char *strchrnul (const char *__s, int __c) 26201: throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 26201: # 273 "/usr/x86_64-linux-gnu/include/string.h" 3 26201: extern size_t strcspn (const char *__s, const char *__reject) 26201: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern size_t strspn (const char *__s, const char *__accept) 26201: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern "C++" 26201: { 26201: extern char *strpbrk (char *__s, const char *__accept) 26201: throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 26201: extern const char *strpbrk (const char *__s, const char *__accept) 26201: throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 26201: strpbrk (char *__s, const char *__accept) throw () 26201: { 26201: return __builtin_strpbrk (__s, __accept); 26201: } 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 26201: strpbrk (const char *__s, const char *__accept) throw () 26201: { 26201: return __builtin_strpbrk (__s, __accept); 26201: } 26201: 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern "C++" 26201: { 26201: extern char *strstr (char *__haystack, const char *__needle) 26201: throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 26201: extern const char *strstr (const char *__haystack, const char *__needle) 26201: throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 26201: strstr (char *__haystack, const char *__needle) throw () 26201: { 26201: return __builtin_strstr (__haystack, __needle); 26201: } 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 26201: strstr (const char *__haystack, const char *__needle) throw () 26201: { 26201: return __builtin_strstr (__haystack, __needle); 26201: } 26201: 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern char *strtok (char *__restrict __s, const char *__restrict __delim) 26201: throw () __attribute__ ((__nonnull__ (2))); 26201: 26201: 26201: 26201: extern char *__strtok_r (char *__restrict __s, 26201: const char *__restrict __delim, 26201: char **__restrict __save_ptr) 26201: throw () __attribute__ ((__nonnull__ (2, 3))); 26201: 26201: extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, 26201: char **__restrict __save_ptr) 26201: throw () __attribute__ ((__nonnull__ (2, 3))); 26201: 26201: 26201: 26201: 26201: 26201: extern "C++" char *strcasestr (char *__haystack, const char *__needle) 26201: throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 26201: extern "C++" const char *strcasestr (const char *__haystack, 26201: const char *__needle) 26201: throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 26201: # 369 "/usr/x86_64-linux-gnu/include/string.h" 3 26201: extern void *memmem (const void *__haystack, size_t __haystacklen, 26201: const void *__needle, size_t __needlelen) 26201: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); 26201: 26201: 26201: 26201: extern void *__mempcpy (void *__restrict __dest, 26201: const void *__restrict __src, size_t __n) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: extern void *mempcpy (void *__restrict __dest, 26201: const void *__restrict __src, size_t __n) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: 26201: 26201: extern size_t strlen (const char *__s) 26201: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: 26201: extern size_t strnlen (const char *__string, size_t __maxlen) 26201: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: 26201: extern char *strerror (int __errnum) throw (); 26201: # 421 "/usr/x86_64-linux-gnu/include/string.h" 3 26201: extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) 26201: throw () __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: 26201: extern char *strerror_l (int __errnum, locale_t __l) throw (); 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/strings.h" 1 3 26201: # 19 "/usr/x86_64-linux-gnu/include/strings.h" 3 26201: #define _STRINGS_H 1 26201: 26201: 26201: #define __need_size_t 26201: # 1 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 1 3 4 26201: # 155 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_ptrdiff_t 26201: # 231 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_size_t 26201: # 340 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_wchar_t 26201: # 390 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef NULL 26201: 26201: #define NULL __null 26201: # 401 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_NULL 26201: 26201: 26201: 26201: 26201: #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER) 26201: # 24 "/usr/x86_64-linux-gnu/include/strings.h" 2 3 26201: 26201: 26201: 26201: #define __CORRECT_ISO_CPP_STRINGS_H_PROTO 26201: 26201: 26201: extern "C" { 26201: 26201: 26201: 26201: extern int bcmp (const void *__s1, const void *__s2, size_t __n) 26201: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern void bcopy (const void *__src, void *__dest, size_t __n) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: extern "C++" 26201: { 26201: extern char *index (char *__s, int __c) 26201: throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 26201: extern const char *index (const char *__s, int __c) 26201: throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 26201: index (char *__s, int __c) throw () 26201: { 26201: return __builtin_index (__s, __c); 26201: } 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 26201: index (const char *__s, int __c) throw () 26201: { 26201: return __builtin_index (__s, __c); 26201: } 26201: 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern "C++" 26201: { 26201: extern char *rindex (char *__s, int __c) 26201: throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 26201: extern const char *rindex (const char *__s, int __c) 26201: throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 26201: rindex (char *__s, int __c) throw () 26201: { 26201: return __builtin_rindex (__s, __c); 26201: } 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 26201: rindex (const char *__s, int __c) throw () 26201: { 26201: return __builtin_rindex (__s, __c); 26201: } 26201: 26201: } 26201: # 104 "/usr/x86_64-linux-gnu/include/strings.h" 3 26201: extern int ffs (int __i) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: 26201: 26201: extern int ffsl (long int __l) throw () __attribute__ ((__const__)); 26201: __extension__ extern int ffsll (long long int __ll) 26201: throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: extern int strcasecmp (const char *__s1, const char *__s2) 26201: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) 26201: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc) 26201: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); 26201: 26201: 26201: 26201: extern int strncasecmp_l (const char *__s1, const char *__s2, 26201: size_t __n, locale_t __loc) 26201: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); 26201: 26201: 26201: } 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/strings_fortified.h" 1 3 26201: # 20 "/usr/x86_64-linux-gnu/include/bits/strings_fortified.h" 3 26201: #define __STRINGS_FORTIFIED 1 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 26201: __attribute__ ((__leaf__)) bcopy (const void *__src, void *__dest, size_t __len) throw () 26201: { 26201: (void) __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 26201: } 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 26201: __attribute__ ((__leaf__)) bzero (void *__dest, size_t __len) throw () 26201: { 26201: (void) __builtin___memset_chk (__dest, '\0', __len, __builtin_object_size (__dest, 0)); 26201: } 26201: # 145 "/usr/x86_64-linux-gnu/include/strings.h" 2 3 26201: # 433 "/usr/x86_64-linux-gnu/include/string.h" 2 3 26201: 26201: 26201: 26201: extern void explicit_bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: extern char *strsep (char **__restrict __stringp, 26201: const char *__restrict __delim) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: 26201: 26201: extern char *strsignal (int __sig) throw (); 26201: 26201: 26201: extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: 26201: extern char *__stpncpy (char *__restrict __dest, 26201: const char *__restrict __src, size_t __n) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: extern char *stpncpy (char *__restrict __dest, 26201: const char *__restrict __src, size_t __n) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: 26201: 26201: extern int strverscmp (const char *__s1, const char *__s2) 26201: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern "C++" char *basename (char *__filename) 26201: throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); 26201: extern "C++" const char *basename (const char *__filename) 26201: throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); 26201: # 495 "/usr/x86_64-linux-gnu/include/string.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/string_fortified.h" 1 3 26201: # 19 "/usr/x86_64-linux-gnu/include/bits/string_fortified.h" 3 26201: #define _BITS_STRING_FORTIFIED_H 1 26201: # 30 "/usr/x86_64-linux-gnu/include/bits/string_fortified.h" 3 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 26201: __attribute__ ((__leaf__)) memcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) throw () 26201: 26201: { 26201: return __builtin___memcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 26201: } 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 26201: __attribute__ ((__leaf__)) memmove (void *__dest, const void *__src, size_t __len) throw () 26201: { 26201: return __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 26201: } 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 26201: __attribute__ ((__leaf__)) mempcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) throw () 26201: 26201: { 26201: return __builtin___mempcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 26201: } 26201: # 58 "/usr/x86_64-linux-gnu/include/bits/string_fortified.h" 3 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 26201: __attribute__ ((__leaf__)) memset (void *__dest, int __ch, size_t __len) throw () 26201: { 26201: # 71 "/usr/x86_64-linux-gnu/include/bits/string_fortified.h" 3 26201: return __builtin___memset_chk (__dest, __ch, __len, __builtin_object_size (__dest, 0)); 26201: } 26201: 26201: 26201: 26201: 26201: void __explicit_bzero_chk (void *__dest, size_t __len, size_t __destlen) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 26201: __attribute__ ((__leaf__)) explicit_bzero (void *__dest, size_t __len) throw () 26201: { 26201: __explicit_bzero_chk (__dest, __len, __builtin_object_size (__dest, 0)); 26201: } 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 26201: __attribute__ ((__leaf__)) strcpy (char *__restrict __dest, const char *__restrict __src) throw () 26201: { 26201: return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 26201: } 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 26201: __attribute__ ((__leaf__)) stpcpy (char *__restrict __dest, const char *__restrict __src) throw () 26201: { 26201: return __builtin___stpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 26201: } 26201: 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 26201: __attribute__ ((__leaf__)) strncpy (char *__restrict __dest, const char *__restrict __src, size_t __len) throw () 26201: 26201: { 26201: return __builtin___strncpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); 26201: } 26201: 26201: 26201: extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n, 26201: size_t __destlen) throw (); 26201: extern char *__stpncpy_alias (char *__dest, const char *__src, size_t __n) throw () __asm__ ("" "stpncpy") 26201: ; 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 26201: __attribute__ ((__leaf__)) stpncpy (char *__dest, const char *__src, size_t __n) throw () 26201: { 26201: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1 26201: && (!__builtin_constant_p (__n) || __n > __builtin_object_size (__dest, 2 > 1))) 26201: return __stpncpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1)); 26201: return __stpncpy_alias (__dest, __src, __n); 26201: } 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 26201: __attribute__ ((__leaf__)) strcat (char *__restrict __dest, const char *__restrict __src) throw () 26201: { 26201: return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 26201: } 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 26201: __attribute__ ((__leaf__)) strncat (char *__restrict __dest, const char *__restrict __src, size_t __len) throw () 26201: 26201: { 26201: return __builtin___strncat_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); 26201: } 26201: # 496 "/usr/x86_64-linux-gnu/include/string.h" 2 3 26201: 26201: 26201: 26201: } 26201: # 43 "/usr/x86_64-linux-gnu/include/c++/10/cstring" 2 3 26201: 26201: 26201: #define _GLIBCXX_CSTRING 1 26201: 26201: 26201: #undef memchr 26201: #undef memcmp 26201: #undef memcpy 26201: #undef memmove 26201: #undef memset 26201: #undef strcat 26201: #undef strchr 26201: #undef strcmp 26201: #undef strcoll 26201: #undef strcpy 26201: #undef strcspn 26201: #undef strerror 26201: #undef strlen 26201: #undef strncat 26201: #undef strncmp 26201: #undef strncpy 26201: #undef strpbrk 26201: #undef strrchr 26201: #undef strspn 26201: #undef strstr 26201: #undef strtok 26201: #undef strxfrm 26201: 26201: extern "C++" 26201: { 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: using ::memchr; 26201: using ::memcmp; 26201: using ::memcpy; 26201: using ::memmove; 26201: using ::memset; 26201: using ::strcat; 26201: using ::strcmp; 26201: using ::strcoll; 26201: using ::strcpy; 26201: using ::strcspn; 26201: using ::strerror; 26201: using ::strlen; 26201: using ::strncat; 26201: using ::strncmp; 26201: using ::strncpy; 26201: using ::strspn; 26201: using ::strtok; 26201: using ::strxfrm; 26201: using ::strchr; 26201: using ::strpbrk; 26201: using ::strrchr; 26201: using ::strstr; 26201: # 122 "/usr/x86_64-linux-gnu/include/c++/10/cstring" 3 26201: 26201: } 26201: } 26201: # 25 "src/common/common.h" 2 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/filesystem" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/filesystem" 3 26201: #define _GLIBCXX_FILESYSTEM 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/filesystem" 3 26201: # 44 "/usr/x86_64-linux-gnu/include/c++/10/filesystem" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_fwd.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_fwd.h" 3 26201: #define _GLIBCXX_FS_FWD_H 1 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/system_error" 1 3 26201: # 30 "/usr/x86_64-linux-gnu/include/c++/10/system_error" 3 26201: #define _GLIBCXX_SYSTEM_ERROR 1 26201: 26201: 26201: # 33 "/usr/x86_64-linux-gnu/include/c++/10/system_error" 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/error_constants.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/error_constants.h" 3 26201: #define _GLIBCXX_ERROR_CONSTANTS 1 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/cerrno" 1 3 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/cerrno" 3 26201: 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/cerrno" 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/errno.h" 1 3 26201: # 23 "/usr/x86_64-linux-gnu/include/errno.h" 3 26201: #define _ERRNO_H 1 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/errno.h" 1 3 26201: # 20 "/usr/x86_64-linux-gnu/include/bits/errno.h" 3 26201: #define _BITS_ERRNO_H 1 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/linux/errno.h" 1 3 26201: # 1 "/usr/x86_64-linux-gnu/include/asm/errno.h" 1 3 26201: # 1 "/usr/x86_64-linux-gnu/include/asm-generic/errno.h" 1 3 26201: 26201: 26201: #define _ASM_GENERIC_ERRNO_H 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/asm-generic/errno-base.h" 1 3 26201: 26201: 26201: #define _ASM_GENERIC_ERRNO_BASE_H 26201: 26201: #define EPERM 1 26201: #define ENOENT 2 26201: #define ESRCH 3 26201: #define EINTR 4 26201: #define EIO 5 26201: #define ENXIO 6 26201: #define E2BIG 7 26201: #define ENOEXEC 8 26201: #define EBADF 9 26201: #define ECHILD 10 26201: #define EAGAIN 11 26201: #define ENOMEM 12 26201: #define EACCES 13 26201: #define EFAULT 14 26201: #define ENOTBLK 15 26201: #define EBUSY 16 26201: #define EEXIST 17 26201: #define EXDEV 18 26201: #define ENODEV 19 26201: #define ENOTDIR 20 26201: #define EISDIR 21 26201: #define EINVAL 22 26201: #define ENFILE 23 26201: #define EMFILE 24 26201: #define ENOTTY 25 26201: #define ETXTBSY 26 26201: #define EFBIG 27 26201: #define ENOSPC 28 26201: #define ESPIPE 29 26201: #define EROFS 30 26201: #define EMLINK 31 26201: #define EPIPE 32 26201: #define EDOM 33 26201: #define ERANGE 34 26201: # 6 "/usr/x86_64-linux-gnu/include/asm-generic/errno.h" 2 3 26201: 26201: #define EDEADLK 35 26201: #define ENAMETOOLONG 36 26201: #define ENOLCK 37 26201: # 18 "/usr/x86_64-linux-gnu/include/asm-generic/errno.h" 3 26201: #define ENOSYS 38 26201: 26201: #define ENOTEMPTY 39 26201: #define ELOOP 40 26201: #define EWOULDBLOCK EAGAIN 26201: #define ENOMSG 42 26201: #define EIDRM 43 26201: #define ECHRNG 44 26201: #define EL2NSYNC 45 26201: #define EL3HLT 46 26201: #define EL3RST 47 26201: #define ELNRNG 48 26201: #define EUNATCH 49 26201: #define ENOCSI 50 26201: #define EL2HLT 51 26201: #define EBADE 52 26201: #define EBADR 53 26201: #define EXFULL 54 26201: #define ENOANO 55 26201: #define EBADRQC 56 26201: #define EBADSLT 57 26201: 26201: #define EDEADLOCK EDEADLK 26201: 26201: #define EBFONT 59 26201: #define ENOSTR 60 26201: #define ENODATA 61 26201: #define ETIME 62 26201: #define ENOSR 63 26201: #define ENONET 64 26201: #define ENOPKG 65 26201: #define EREMOTE 66 26201: #define ENOLINK 67 26201: #define EADV 68 26201: #define ESRMNT 69 26201: #define ECOMM 70 26201: #define EPROTO 71 26201: #define EMULTIHOP 72 26201: #define EDOTDOT 73 26201: #define EBADMSG 74 26201: #define EOVERFLOW 75 26201: #define ENOTUNIQ 76 26201: #define EBADFD 77 26201: #define EREMCHG 78 26201: #define ELIBACC 79 26201: #define ELIBBAD 80 26201: #define ELIBSCN 81 26201: #define ELIBMAX 82 26201: #define ELIBEXEC 83 26201: #define EILSEQ 84 26201: #define ERESTART 85 26201: #define ESTRPIPE 86 26201: #define EUSERS 87 26201: #define ENOTSOCK 88 26201: #define EDESTADDRREQ 89 26201: #define EMSGSIZE 90 26201: #define EPROTOTYPE 91 26201: #define ENOPROTOOPT 92 26201: #define EPROTONOSUPPORT 93 26201: #define ESOCKTNOSUPPORT 94 26201: #define EOPNOTSUPP 95 26201: #define EPFNOSUPPORT 96 26201: #define EAFNOSUPPORT 97 26201: #define EADDRINUSE 98 26201: #define EADDRNOTAVAIL 99 26201: #define ENETDOWN 100 26201: #define ENETUNREACH 101 26201: #define ENETRESET 102 26201: #define ECONNABORTED 103 26201: #define ECONNRESET 104 26201: #define ENOBUFS 105 26201: #define EISCONN 106 26201: #define ENOTCONN 107 26201: #define ESHUTDOWN 108 26201: #define ETOOMANYREFS 109 26201: #define ETIMEDOUT 110 26201: #define ECONNREFUSED 111 26201: #define EHOSTDOWN 112 26201: #define EHOSTUNREACH 113 26201: #define EALREADY 114 26201: #define EINPROGRESS 115 26201: #define ESTALE 116 26201: #define EUCLEAN 117 26201: #define ENOTNAM 118 26201: #define ENAVAIL 119 26201: #define EISNAM 120 26201: #define EREMOTEIO 121 26201: #define EDQUOT 122 26201: 26201: #define ENOMEDIUM 123 26201: #define EMEDIUMTYPE 124 26201: #define ECANCELED 125 26201: #define ENOKEY 126 26201: #define EKEYEXPIRED 127 26201: #define EKEYREVOKED 128 26201: #define EKEYREJECTED 129 26201: 26201: 26201: #define EOWNERDEAD 130 26201: #define ENOTRECOVERABLE 131 26201: 26201: #define ERFKILL 132 26201: 26201: #define EHWPOISON 133 26201: # 2 "/usr/x86_64-linux-gnu/include/asm/errno.h" 2 3 26201: # 2 "/usr/x86_64-linux-gnu/include/linux/errno.h" 2 3 26201: # 27 "/usr/x86_64-linux-gnu/include/bits/errno.h" 2 3 26201: 26201: 26201: 26201: #define ENOTSUP EOPNOTSUPP 26201: # 29 "/usr/x86_64-linux-gnu/include/errno.h" 2 3 26201: 26201: 26201: 26201: 26201: 26201: extern "C" { 26201: 26201: 26201: extern int *__errno_location (void) throw () __attribute__ ((__const__)); 26201: #define errno (*__errno_location ()) 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern char *program_invocation_name; 26201: extern char *program_invocation_short_name; 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types/error_t.h" 1 3 26201: # 20 "/usr/x86_64-linux-gnu/include/bits/types/error_t.h" 3 26201: #define __error_t_defined 1 26201: 26201: typedef int error_t; 26201: # 49 "/usr/x86_64-linux-gnu/include/errno.h" 2 3 26201: 26201: 26201: 26201: } 26201: # 43 "/usr/x86_64-linux-gnu/include/c++/10/cerrno" 2 3 26201: 26201: 26201: #define _GLIBCXX_CERRNO 1 26201: # 35 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/error_constants.h" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: enum class errc 26201: { 26201: address_family_not_supported = 97, 26201: address_in_use = 98, 26201: address_not_available = 99, 26201: already_connected = 106, 26201: argument_list_too_long = 7, 26201: argument_out_of_domain = 33, 26201: bad_address = 14, 26201: bad_file_descriptor = 9, 26201: 26201: 26201: bad_message = 74, 26201: 26201: 26201: broken_pipe = 32, 26201: connection_aborted = 103, 26201: connection_already_in_progress = 114, 26201: connection_refused = 111, 26201: connection_reset = 104, 26201: cross_device_link = 18, 26201: destination_address_required = 89, 26201: device_or_resource_busy = 16, 26201: directory_not_empty = 39, 26201: executable_format_error = 8, 26201: file_exists = 17, 26201: file_too_large = 27, 26201: filename_too_long = 36, 26201: function_not_supported = 38, 26201: host_unreachable = 113, 26201: 26201: 26201: identifier_removed = 43, 26201: 26201: 26201: illegal_byte_sequence = 84, 26201: inappropriate_io_control_operation = 25, 26201: interrupted = 4, 26201: invalid_argument = 22, 26201: invalid_seek = 29, 26201: io_error = 5, 26201: is_a_directory = 21, 26201: message_size = 90, 26201: network_down = 100, 26201: network_reset = 102, 26201: network_unreachable = 101, 26201: no_buffer_space = 105, 26201: no_child_process = 10, 26201: 26201: 26201: no_link = 67, 26201: 26201: 26201: no_lock_available = 37, 26201: 26201: 26201: no_message_available = 61, 26201: 26201: 26201: no_message = 42, 26201: no_protocol_option = 92, 26201: no_space_on_device = 28, 26201: 26201: 26201: no_stream_resources = 63, 26201: 26201: 26201: no_such_device_or_address = 6, 26201: no_such_device = 19, 26201: no_such_file_or_directory = 2, 26201: no_such_process = 3, 26201: not_a_directory = 20, 26201: not_a_socket = 88, 26201: 26201: 26201: not_a_stream = 60, 26201: 26201: 26201: not_connected = 107, 26201: not_enough_memory = 12, 26201: 26201: 26201: not_supported = 95, 26201: 26201: 26201: 26201: operation_canceled = 125, 26201: 26201: 26201: operation_in_progress = 115, 26201: operation_not_permitted = 1, 26201: operation_not_supported = 95, 26201: operation_would_block = 11, 26201: 26201: 26201: owner_dead = 130, 26201: 26201: 26201: permission_denied = 13, 26201: 26201: 26201: protocol_error = 71, 26201: 26201: 26201: protocol_not_supported = 93, 26201: read_only_file_system = 30, 26201: resource_deadlock_would_occur = 35, 26201: resource_unavailable_try_again = 11, 26201: result_out_of_range = 34, 26201: 26201: 26201: state_not_recoverable = 131, 26201: 26201: 26201: 26201: stream_timeout = 62, 26201: 26201: 26201: 26201: text_file_busy = 26, 26201: 26201: 26201: timed_out = 110, 26201: too_many_files_open_in_system = 23, 26201: too_many_files_open = 24, 26201: too_many_links = 31, 26201: too_many_symbolic_link_levels = 40, 26201: 26201: 26201: value_too_large = 75, 26201: 26201: 26201: wrong_protocol_type = 91 26201: }; 26201: 26201: 26201: } 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/system_error" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/iosfwd" 1 3 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/iosfwd" 3 26201: #define _GLIBCXX_IOSFWD 1 26201: 26201: 26201: # 37 "/usr/x86_64-linux-gnu/include/c++/10/iosfwd" 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/stringfwd.h" 1 3 26201: # 35 "/usr/x86_64-linux-gnu/include/c++/10/bits/stringfwd.h" 3 26201: #define _STRINGFWD_H 1 26201: 26201: 26201: # 38 "/usr/x86_64-linux-gnu/include/c++/10/bits/stringfwd.h" 3 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct char_traits; 26201: 26201: template<> struct char_traits; 26201: 26201: 26201: template<> struct char_traits; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template<> struct char_traits; 26201: template<> struct char_traits; 26201: 26201: 26201: namespace __cxx11 { 26201: 26201: template, 26201: typename _Alloc = allocator<_CharT> > 26201: class basic_string; 26201: 26201: } 26201: 26201: 26201: typedef basic_string string; 26201: 26201: 26201: 26201: typedef basic_string wstring; 26201: # 93 "/usr/x86_64-linux-gnu/include/c++/10/bits/stringfwd.h" 3 26201: typedef basic_string u16string; 26201: 26201: 26201: typedef basic_string u32string; 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/iosfwd" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/postypes.h" 1 3 26201: # 36 "/usr/x86_64-linux-gnu/include/c++/10/bits/postypes.h" 3 26201: #define _GLIBCXX_POSTYPES_H 1 26201: 26201: 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/bits/postypes.h" 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/cwchar" 1 3 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/cwchar" 3 26201: 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/cwchar" 3 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/wchar.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/wchar.h" 3 26201: #define _WCHAR_H 1 26201: 26201: #define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 3 26201: #undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION 26201: 26201: 26201: 26201: 26201: 26201: #undef __GLIBC_USE_LIB_EXT2 26201: 26201: 26201: #define __GLIBC_USE_LIB_EXT2 1 26201: # 49 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 3 26201: #undef __GLIBC_USE_IEC_60559_BFP_EXT 26201: 26201: #define __GLIBC_USE_IEC_60559_BFP_EXT 1 26201: 26201: 26201: 26201: #undef __GLIBC_USE_IEC_60559_BFP_EXT_C2X 26201: 26201: #define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 1 26201: # 66 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 3 26201: #undef __GLIBC_USE_IEC_60559_FUNCS_EXT 26201: 26201: #define __GLIBC_USE_IEC_60559_FUNCS_EXT 1 26201: 26201: 26201: 26201: #undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 26201: 26201: #define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: #undef __GLIBC_USE_IEC_60559_TYPES_EXT 26201: 26201: #define __GLIBC_USE_IEC_60559_TYPES_EXT 1 26201: # 28 "/usr/x86_64-linux-gnu/include/wchar.h" 2 3 26201: 26201: 26201: 26201: 26201: #define __need_size_t 26201: #define __need_wchar_t 26201: #define __need_NULL 26201: # 1 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 1 3 4 26201: # 155 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_ptrdiff_t 26201: # 231 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_size_t 26201: # 340 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_wchar_t 26201: # 390 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef NULL 26201: 26201: #define NULL __null 26201: # 401 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_NULL 26201: 26201: 26201: 26201: 26201: #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER) 26201: # 36 "/usr/x86_64-linux-gnu/include/wchar.h" 2 3 26201: 26201: #define __need___va_list 26201: # 1 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stdarg.h" 1 3 4 26201: # 34 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stdarg.h" 3 4 26201: #undef __need___va_list 26201: 26201: 26201: 26201: 26201: #define __GNUC_VA_LIST 26201: typedef __builtin_va_list __gnuc_va_list; 26201: # 39 "/usr/x86_64-linux-gnu/include/wchar.h" 2 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types/wint_t.h" 1 3 26201: 26201: #define __wint_t_defined 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define _WINT_T 1 26201: # 20 "/usr/x86_64-linux-gnu/include/bits/types/wint_t.h" 3 26201: typedef unsigned int wint_t; 26201: # 42 "/usr/x86_64-linux-gnu/include/wchar.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types/mbstate_t.h" 1 3 26201: 26201: #define __mbstate_t_defined 1 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types/__mbstate_t.h" 1 3 26201: 26201: #define ____mbstate_t_defined 1 26201: # 13 "/usr/x86_64-linux-gnu/include/bits/types/__mbstate_t.h" 3 26201: typedef struct 26201: { 26201: int __count; 26201: union 26201: { 26201: unsigned int __wch; 26201: char __wchb[4]; 26201: } __value; 26201: } __mbstate_t; 26201: # 5 "/usr/x86_64-linux-gnu/include/bits/types/mbstate_t.h" 2 3 26201: 26201: typedef __mbstate_t mbstate_t; 26201: # 43 "/usr/x86_64-linux-gnu/include/wchar.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types/__FILE.h" 1 3 26201: 26201: #define ____FILE_defined 1 26201: 26201: struct _IO_FILE; 26201: typedef struct _IO_FILE __FILE; 26201: # 44 "/usr/x86_64-linux-gnu/include/wchar.h" 2 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types/FILE.h" 1 3 26201: 26201: #define __FILE_defined 1 26201: 26201: struct _IO_FILE; 26201: 26201: 26201: typedef struct _IO_FILE FILE; 26201: # 47 "/usr/x86_64-linux-gnu/include/wchar.h" 2 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __CORRECT_ISO_CPP_WCHAR_H_PROTO 26201: # 64 "/usr/x86_64-linux-gnu/include/wchar.h" 3 26201: #define WEOF (0xffffffffu) 26201: # 79 "/usr/x86_64-linux-gnu/include/wchar.h" 3 26201: extern "C" { 26201: 26201: 26201: 26201: struct tm; 26201: 26201: 26201: 26201: extern wchar_t *wcscpy (wchar_t *__restrict __dest, 26201: const wchar_t *__restrict __src) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern wchar_t *wcsncpy (wchar_t *__restrict __dest, 26201: const wchar_t *__restrict __src, size_t __n) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern wchar_t *wcscat (wchar_t *__restrict __dest, 26201: const wchar_t *__restrict __src) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: extern wchar_t *wcsncat (wchar_t *__restrict __dest, 26201: const wchar_t *__restrict __src, size_t __n) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2) 26201: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) 26201: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: 26201: extern int wcscasecmp (const wchar_t *__s1, const wchar_t *__s2) throw (); 26201: 26201: 26201: extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2, 26201: size_t __n) throw (); 26201: 26201: 26201: 26201: extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2, 26201: locale_t __loc) throw (); 26201: 26201: extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2, 26201: size_t __n, locale_t __loc) throw (); 26201: 26201: 26201: 26201: 26201: extern int wcscoll (const wchar_t *__s1, const wchar_t *__s2) throw (); 26201: 26201: 26201: 26201: extern size_t wcsxfrm (wchar_t *__restrict __s1, 26201: const wchar_t *__restrict __s2, size_t __n) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2, 26201: locale_t __loc) throw (); 26201: 26201: 26201: 26201: 26201: extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2, 26201: size_t __n, locale_t __loc) throw (); 26201: 26201: 26201: extern wchar_t *wcsdup (const wchar_t *__s) throw () __attribute__ ((__malloc__)); 26201: 26201: 26201: 26201: 26201: extern "C++" wchar_t *wcschr (wchar_t *__wcs, wchar_t __wc) 26201: throw () __asm ("wcschr") __attribute__ ((__pure__)); 26201: extern "C++" const wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc) 26201: throw () __asm ("wcschr") __attribute__ ((__pure__)); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern "C++" wchar_t *wcsrchr (wchar_t *__wcs, wchar_t __wc) 26201: throw () __asm ("wcsrchr") __attribute__ ((__pure__)); 26201: extern "C++" const wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc) 26201: throw () __asm ("wcsrchr") __attribute__ ((__pure__)); 26201: # 181 "/usr/x86_64-linux-gnu/include/wchar.h" 3 26201: extern wchar_t *wcschrnul (const wchar_t *__s, wchar_t __wc) 26201: throw () __attribute__ ((__pure__)); 26201: 26201: 26201: 26201: 26201: extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject) 26201: throw () __attribute__ ((__pure__)); 26201: 26201: 26201: extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept) 26201: throw () __attribute__ ((__pure__)); 26201: 26201: 26201: extern "C++" wchar_t *wcspbrk (wchar_t *__wcs, const wchar_t *__accept) 26201: throw () __asm ("wcspbrk") __attribute__ ((__pure__)); 26201: extern "C++" const wchar_t *wcspbrk (const wchar_t *__wcs, 26201: const wchar_t *__accept) 26201: throw () __asm ("wcspbrk") __attribute__ ((__pure__)); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern "C++" wchar_t *wcsstr (wchar_t *__haystack, const wchar_t *__needle) 26201: throw () __asm ("wcsstr") __attribute__ ((__pure__)); 26201: extern "C++" const wchar_t *wcsstr (const wchar_t *__haystack, 26201: const wchar_t *__needle) 26201: throw () __asm ("wcsstr") __attribute__ ((__pure__)); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern wchar_t *wcstok (wchar_t *__restrict __s, 26201: const wchar_t *__restrict __delim, 26201: wchar_t **__restrict __ptr) throw (); 26201: 26201: 26201: extern size_t wcslen (const wchar_t *__s) throw () __attribute__ ((__pure__)); 26201: 26201: 26201: 26201: 26201: extern "C++" wchar_t *wcswcs (wchar_t *__haystack, const wchar_t *__needle) 26201: throw () __asm ("wcswcs") __attribute__ ((__pure__)); 26201: extern "C++" const wchar_t *wcswcs (const wchar_t *__haystack, 26201: const wchar_t *__needle) 26201: throw () __asm ("wcswcs") __attribute__ ((__pure__)); 26201: # 240 "/usr/x86_64-linux-gnu/include/wchar.h" 3 26201: extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen) 26201: throw () __attribute__ ((__pure__)); 26201: 26201: 26201: 26201: 26201: 26201: extern "C++" wchar_t *wmemchr (wchar_t *__s, wchar_t __c, size_t __n) 26201: throw () __asm ("wmemchr") __attribute__ ((__pure__)); 26201: extern "C++" const wchar_t *wmemchr (const wchar_t *__s, wchar_t __c, 26201: size_t __n) 26201: throw () __asm ("wmemchr") __attribute__ ((__pure__)); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) 26201: throw () __attribute__ ((__pure__)); 26201: 26201: 26201: extern wchar_t *wmemcpy (wchar_t *__restrict __s1, 26201: const wchar_t *__restrict __s2, size_t __n) throw (); 26201: 26201: 26201: 26201: extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n) 26201: throw (); 26201: 26201: 26201: extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw (); 26201: 26201: 26201: 26201: 26201: extern wchar_t *wmempcpy (wchar_t *__restrict __s1, 26201: const wchar_t *__restrict __s2, size_t __n) 26201: throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern wint_t btowc (int __c) throw (); 26201: 26201: 26201: 26201: extern int wctob (wint_t __c) throw (); 26201: 26201: 26201: 26201: extern int mbsinit (const mbstate_t *__ps) throw () __attribute__ ((__pure__)); 26201: 26201: 26201: 26201: extern size_t mbrtowc (wchar_t *__restrict __pwc, 26201: const char *__restrict __s, size_t __n, 26201: mbstate_t *__restrict __p) throw (); 26201: 26201: 26201: extern size_t wcrtomb (char *__restrict __s, wchar_t __wc, 26201: mbstate_t *__restrict __ps) throw (); 26201: 26201: 26201: extern size_t __mbrlen (const char *__restrict __s, size_t __n, 26201: mbstate_t *__restrict __ps) throw (); 26201: extern size_t mbrlen (const char *__restrict __s, size_t __n, 26201: mbstate_t *__restrict __ps) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern wint_t __btowc_alias (int __c) __asm ("btowc"); 26201: extern __inline __attribute__ ((__gnu_inline__)) wint_t 26201: __attribute__ ((__leaf__)) btowc (int __c) throw () 26201: { return (__builtin_constant_p (__c) && __c >= '\0' && __c <= '\x7f' 26201: ? (wint_t) __c : __btowc_alias (__c)); } 26201: 26201: extern int __wctob_alias (wint_t __c) __asm ("wctob"); 26201: extern __inline __attribute__ ((__gnu_inline__)) int 26201: __attribute__ ((__leaf__)) wctob (wint_t __wc) throw () 26201: { return (__builtin_constant_p (__wc) && __wc >= L'\0' && __wc <= L'\x7f' 26201: ? (int) __wc : __wctob_alias (__wc)); } 26201: 26201: extern __inline __attribute__ ((__gnu_inline__)) size_t 26201: __attribute__ ((__leaf__)) mbrlen (const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw () 26201: 26201: { return (__ps != __null 26201: ? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); } 26201: 26201: 26201: 26201: 26201: extern size_t mbsrtowcs (wchar_t *__restrict __dst, 26201: const char **__restrict __src, size_t __len, 26201: mbstate_t *__restrict __ps) throw (); 26201: 26201: 26201: 26201: extern size_t wcsrtombs (char *__restrict __dst, 26201: const wchar_t **__restrict __src, size_t __len, 26201: mbstate_t *__restrict __ps) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern size_t mbsnrtowcs (wchar_t *__restrict __dst, 26201: const char **__restrict __src, size_t __nmc, 26201: size_t __len, mbstate_t *__restrict __ps) throw (); 26201: 26201: 26201: 26201: extern size_t wcsnrtombs (char *__restrict __dst, 26201: const wchar_t **__restrict __src, 26201: size_t __nwc, size_t __len, 26201: mbstate_t *__restrict __ps) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int wcwidth (wchar_t __c) throw (); 26201: 26201: 26201: 26201: extern int wcswidth (const wchar_t *__s, size_t __n) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern double wcstod (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr) throw (); 26201: 26201: 26201: 26201: extern float wcstof (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr) throw (); 26201: extern long double wcstold (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr) throw (); 26201: # 396 "/usr/x86_64-linux-gnu/include/wchar.h" 3 26201: extern _Float32 wcstof32 (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr) throw (); 26201: 26201: 26201: 26201: extern _Float64 wcstof64 (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr) throw (); 26201: 26201: 26201: 26201: extern _Float128 wcstof128 (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr) throw (); 26201: 26201: 26201: 26201: extern _Float32x wcstof32x (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr) throw (); 26201: 26201: 26201: 26201: extern _Float64x wcstof64x (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr) throw (); 26201: # 428 "/usr/x86_64-linux-gnu/include/wchar.h" 3 26201: extern long int wcstol (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr, int __base) throw (); 26201: 26201: 26201: 26201: extern unsigned long int wcstoul (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr, int __base) 26201: throw (); 26201: 26201: 26201: 26201: 26201: __extension__ 26201: extern long long int wcstoll (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr, int __base) 26201: throw (); 26201: 26201: 26201: 26201: __extension__ 26201: extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr, 26201: int __base) throw (); 26201: 26201: 26201: 26201: 26201: 26201: __extension__ 26201: extern long long int wcstoq (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr, int __base) 26201: throw (); 26201: 26201: 26201: 26201: __extension__ 26201: extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr, 26201: int __base) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern long int wcstol_l (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr, int __base, 26201: locale_t __loc) throw (); 26201: 26201: extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr, 26201: int __base, locale_t __loc) throw (); 26201: 26201: __extension__ 26201: extern long long int wcstoll_l (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr, 26201: int __base, locale_t __loc) throw (); 26201: 26201: __extension__ 26201: extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr, 26201: int __base, locale_t __loc) 26201: throw (); 26201: 26201: extern double wcstod_l (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr, locale_t __loc) 26201: throw (); 26201: 26201: extern float wcstof_l (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr, locale_t __loc) 26201: throw (); 26201: 26201: extern long double wcstold_l (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr, 26201: locale_t __loc) throw (); 26201: # 511 "/usr/x86_64-linux-gnu/include/wchar.h" 3 26201: extern _Float32 wcstof32_l (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr, 26201: locale_t __loc) throw (); 26201: 26201: 26201: 26201: extern _Float64 wcstof64_l (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr, 26201: locale_t __loc) throw (); 26201: 26201: 26201: 26201: extern _Float128 wcstof128_l (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr, 26201: locale_t __loc) throw (); 26201: 26201: 26201: 26201: extern _Float32x wcstof32x_l (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr, 26201: locale_t __loc) throw (); 26201: 26201: 26201: 26201: extern _Float64x wcstof64x_l (const wchar_t *__restrict __nptr, 26201: wchar_t **__restrict __endptr, 26201: locale_t __loc) throw (); 26201: # 551 "/usr/x86_64-linux-gnu/include/wchar.h" 3 26201: extern wchar_t *wcpcpy (wchar_t *__restrict __dest, 26201: const wchar_t *__restrict __src) throw (); 26201: 26201: 26201: 26201: extern wchar_t *wcpncpy (wchar_t *__restrict __dest, 26201: const wchar_t *__restrict __src, size_t __n) 26201: throw (); 26201: # 567 "/usr/x86_64-linux-gnu/include/wchar.h" 3 26201: extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern int fwide (__FILE *__fp, int __mode) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int fwprintf (__FILE *__restrict __stream, 26201: const wchar_t *__restrict __format, ...) 26201: ; 26201: 26201: 26201: 26201: 26201: extern int wprintf (const wchar_t *__restrict __format, ...) 26201: ; 26201: 26201: extern int swprintf (wchar_t *__restrict __s, size_t __n, 26201: const wchar_t *__restrict __format, ...) 26201: throw () ; 26201: 26201: 26201: 26201: 26201: 26201: extern int vfwprintf (__FILE *__restrict __s, 26201: const wchar_t *__restrict __format, 26201: __gnuc_va_list __arg) 26201: ; 26201: 26201: 26201: 26201: 26201: extern int vwprintf (const wchar_t *__restrict __format, 26201: __gnuc_va_list __arg) 26201: ; 26201: 26201: 26201: extern int vswprintf (wchar_t *__restrict __s, size_t __n, 26201: const wchar_t *__restrict __format, 26201: __gnuc_va_list __arg) 26201: throw () ; 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int fwscanf (__FILE *__restrict __stream, 26201: const wchar_t *__restrict __format, ...) 26201: ; 26201: 26201: 26201: 26201: 26201: extern int wscanf (const wchar_t *__restrict __format, ...) 26201: ; 26201: 26201: extern int swscanf (const wchar_t *__restrict __s, 26201: const wchar_t *__restrict __format, ...) 26201: throw () ; 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int fwscanf (__FILE *__restrict __stream, const wchar_t *__restrict __format, ...) __asm__ ("" "__isoc99_fwscanf") 26201: 26201: 26201: ; 26201: extern int wscanf (const wchar_t *__restrict __format, ...) __asm__ ("" "__isoc99_wscanf") 26201: 26201: ; 26201: extern int swscanf (const wchar_t *__restrict __s, const wchar_t *__restrict __format, ...) throw () __asm__ ("" "__isoc99_swscanf") 26201: 26201: 26201: ; 26201: # 671 "/usr/x86_64-linux-gnu/include/wchar.h" 3 26201: extern int vfwscanf (__FILE *__restrict __s, 26201: const wchar_t *__restrict __format, 26201: __gnuc_va_list __arg) 26201: ; 26201: 26201: 26201: 26201: 26201: extern int vwscanf (const wchar_t *__restrict __format, 26201: __gnuc_va_list __arg) 26201: ; 26201: 26201: extern int vswscanf (const wchar_t *__restrict __s, 26201: const wchar_t *__restrict __format, 26201: __gnuc_va_list __arg) 26201: throw () ; 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int vfwscanf (__FILE *__restrict __s, const wchar_t *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfwscanf") 26201: 26201: 26201: ; 26201: extern int vwscanf (const wchar_t *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vwscanf") 26201: 26201: ; 26201: extern int vswscanf (const wchar_t *__restrict __s, const wchar_t *__restrict __format, __gnuc_va_list __arg) throw () __asm__ ("" "__isoc99_vswscanf") 26201: 26201: 26201: ; 26201: # 726 "/usr/x86_64-linux-gnu/include/wchar.h" 3 26201: extern wint_t fgetwc (__FILE *__stream); 26201: extern wint_t getwc (__FILE *__stream); 26201: 26201: 26201: 26201: 26201: 26201: extern wint_t getwchar (void); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern wint_t fputwc (wchar_t __wc, __FILE *__stream); 26201: extern wint_t putwc (wchar_t __wc, __FILE *__stream); 26201: 26201: 26201: 26201: 26201: 26201: extern wint_t putwchar (wchar_t __wc); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n, 26201: __FILE *__restrict __stream); 26201: 26201: 26201: 26201: 26201: 26201: extern int fputws (const wchar_t *__restrict __ws, 26201: __FILE *__restrict __stream); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern wint_t ungetwc (wint_t __wc, __FILE *__stream); 26201: # 781 "/usr/x86_64-linux-gnu/include/wchar.h" 3 26201: extern wint_t getwc_unlocked (__FILE *__stream); 26201: extern wint_t getwchar_unlocked (void); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern wint_t fgetwc_unlocked (__FILE *__stream); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream); 26201: # 807 "/usr/x86_64-linux-gnu/include/wchar.h" 3 26201: extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream); 26201: extern wint_t putwchar_unlocked (wchar_t __wc); 26201: # 817 "/usr/x86_64-linux-gnu/include/wchar.h" 3 26201: extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n, 26201: __FILE *__restrict __stream); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int fputws_unlocked (const wchar_t *__restrict __ws, 26201: __FILE *__restrict __stream); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize, 26201: const wchar_t *__restrict __format, 26201: const struct tm *__restrict __tp) throw (); 26201: 26201: 26201: 26201: 26201: extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, 26201: const wchar_t *__restrict __format, 26201: const struct tm *__restrict __tp, 26201: locale_t __loc) throw (); 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/wchar2.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/wchar2.h" 3 26201: extern wchar_t *__wmemcpy_chk (wchar_t *__restrict __s1, 26201: const wchar_t *__restrict __s2, size_t __n, 26201: size_t __ns1) throw (); 26201: extern wchar_t *__wmemcpy_alias (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () __asm__ ("" "wmemcpy") 26201: 26201: 26201: ; 26201: extern wchar_t *__wmemcpy_chk_warn (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n, size_t __ns1) throw () __asm__ ("" "__wmemcpy_chk") 26201: 26201: 26201: 26201: __attribute__((__warning__ ("wmemcpy called with length bigger than size of destination " "buffer"))) 26201: ; 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 26201: __attribute__ ((__leaf__)) wmemcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () 26201: 26201: { 26201: if (__builtin_object_size (__s1, 0) != (size_t) -1) 26201: { 26201: if (!__builtin_constant_p (__n)) 26201: return __wmemcpy_chk (__s1, __s2, __n, 26201: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 26201: 26201: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 26201: return __wmemcpy_chk_warn (__s1, __s2, __n, 26201: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 26201: } 26201: return __wmemcpy_alias (__s1, __s2, __n); 26201: } 26201: 26201: 26201: extern wchar_t *__wmemmove_chk (wchar_t *__s1, const wchar_t *__s2, 26201: size_t __n, size_t __ns1) throw (); 26201: extern wchar_t *__wmemmove_alias (wchar_t *__s1, const wchar_t *__s2, size_t __n) throw () __asm__ ("" "wmemmove") 26201: 26201: ; 26201: extern wchar_t *__wmemmove_chk_warn (wchar_t *__s1, const wchar_t *__s2, size_t __n, size_t __ns1) throw () __asm__ ("" "__wmemmove_chk") 26201: 26201: 26201: __attribute__((__warning__ ("wmemmove called with length bigger than size of destination " "buffer"))) 26201: ; 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 26201: __attribute__ ((__leaf__)) wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n) throw () 26201: { 26201: if (__builtin_object_size (__s1, 0) != (size_t) -1) 26201: { 26201: if (!__builtin_constant_p (__n)) 26201: return __wmemmove_chk (__s1, __s2, __n, 26201: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 26201: 26201: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 26201: return __wmemmove_chk_warn (__s1, __s2, __n, 26201: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 26201: } 26201: return __wmemmove_alias (__s1, __s2, __n); 26201: } 26201: 26201: 26201: 26201: extern wchar_t *__wmempcpy_chk (wchar_t *__restrict __s1, 26201: const wchar_t *__restrict __s2, size_t __n, 26201: size_t __ns1) throw (); 26201: extern wchar_t *__wmempcpy_alias (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () __asm__ ("" "wmempcpy") 26201: 26201: 26201: ; 26201: extern wchar_t *__wmempcpy_chk_warn (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n, size_t __ns1) throw () __asm__ ("" "__wmempcpy_chk") 26201: 26201: 26201: 26201: __attribute__((__warning__ ("wmempcpy called with length bigger than size of destination " "buffer"))) 26201: ; 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 26201: __attribute__ ((__leaf__)) wmempcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () 26201: 26201: { 26201: if (__builtin_object_size (__s1, 0) != (size_t) -1) 26201: { 26201: if (!__builtin_constant_p (__n)) 26201: return __wmempcpy_chk (__s1, __s2, __n, 26201: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 26201: 26201: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 26201: return __wmempcpy_chk_warn (__s1, __s2, __n, 26201: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 26201: } 26201: return __wmempcpy_alias (__s1, __s2, __n); 26201: } 26201: 26201: 26201: 26201: extern wchar_t *__wmemset_chk (wchar_t *__s, wchar_t __c, size_t __n, 26201: size_t __ns) throw (); 26201: extern wchar_t *__wmemset_alias (wchar_t *__s, wchar_t __c, size_t __n) throw () __asm__ ("" "wmemset") 26201: ; 26201: extern wchar_t *__wmemset_chk_warn (wchar_t *__s, wchar_t __c, size_t __n, size_t __ns) throw () __asm__ ("" "__wmemset_chk") 26201: 26201: 26201: __attribute__((__warning__ ("wmemset called with length bigger than size of destination " "buffer"))) 26201: ; 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 26201: __attribute__ ((__leaf__)) wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw () 26201: { 26201: if (__builtin_object_size (__s, 0) != (size_t) -1) 26201: { 26201: if (!__builtin_constant_p (__n)) 26201: return __wmemset_chk (__s, __c, __n, __builtin_object_size (__s, 0) / sizeof (wchar_t)); 26201: 26201: if (__n > __builtin_object_size (__s, 0) / sizeof (wchar_t)) 26201: return __wmemset_chk_warn (__s, __c, __n, 26201: __builtin_object_size (__s, 0) / sizeof (wchar_t)); 26201: } 26201: return __wmemset_alias (__s, __c, __n); 26201: } 26201: 26201: 26201: extern wchar_t *__wcscpy_chk (wchar_t *__restrict __dest, 26201: const wchar_t *__restrict __src, 26201: size_t __n) throw (); 26201: extern wchar_t *__wcscpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcscpy") 26201: 26201: ; 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 26201: __attribute__ ((__leaf__)) wcscpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 26201: { 26201: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 26201: return __wcscpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 26201: return __wcscpy_alias (__dest, __src); 26201: } 26201: 26201: 26201: extern wchar_t *__wcpcpy_chk (wchar_t *__restrict __dest, 26201: const wchar_t *__restrict __src, 26201: size_t __destlen) throw (); 26201: extern wchar_t *__wcpcpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcpcpy") 26201: 26201: ; 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 26201: __attribute__ ((__leaf__)) wcpcpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 26201: { 26201: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 26201: return __wcpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 26201: return __wcpcpy_alias (__dest, __src); 26201: } 26201: 26201: 26201: extern wchar_t *__wcsncpy_chk (wchar_t *__restrict __dest, 26201: const wchar_t *__restrict __src, size_t __n, 26201: size_t __destlen) throw (); 26201: extern wchar_t *__wcsncpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcsncpy") 26201: 26201: 26201: ; 26201: extern wchar_t *__wcsncpy_chk_warn (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n, size_t __destlen) throw () __asm__ ("" "__wcsncpy_chk") 26201: 26201: 26201: 26201: __attribute__((__warning__ ("wcsncpy called with length bigger than size of destination " "buffer"))) 26201: ; 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 26201: __attribute__ ((__leaf__)) wcsncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 26201: 26201: { 26201: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 26201: { 26201: if (!__builtin_constant_p (__n)) 26201: return __wcsncpy_chk (__dest, __src, __n, 26201: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 26201: if (__n > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)) 26201: return __wcsncpy_chk_warn (__dest, __src, __n, 26201: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 26201: } 26201: return __wcsncpy_alias (__dest, __src, __n); 26201: } 26201: 26201: 26201: extern wchar_t *__wcpncpy_chk (wchar_t *__restrict __dest, 26201: const wchar_t *__restrict __src, size_t __n, 26201: size_t __destlen) throw (); 26201: extern wchar_t *__wcpncpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcpncpy") 26201: 26201: 26201: ; 26201: extern wchar_t *__wcpncpy_chk_warn (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n, size_t __destlen) throw () __asm__ ("" "__wcpncpy_chk") 26201: 26201: 26201: 26201: __attribute__((__warning__ ("wcpncpy called with length bigger than size of destination " "buffer"))) 26201: ; 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 26201: __attribute__ ((__leaf__)) wcpncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 26201: 26201: { 26201: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 26201: { 26201: if (!__builtin_constant_p (__n)) 26201: return __wcpncpy_chk (__dest, __src, __n, 26201: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 26201: if (__n > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)) 26201: return __wcpncpy_chk_warn (__dest, __src, __n, 26201: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 26201: } 26201: return __wcpncpy_alias (__dest, __src, __n); 26201: } 26201: 26201: 26201: extern wchar_t *__wcscat_chk (wchar_t *__restrict __dest, 26201: const wchar_t *__restrict __src, 26201: size_t __destlen) throw (); 26201: extern wchar_t *__wcscat_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcscat") 26201: 26201: ; 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 26201: __attribute__ ((__leaf__)) wcscat (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 26201: { 26201: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 26201: return __wcscat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 26201: return __wcscat_alias (__dest, __src); 26201: } 26201: 26201: 26201: extern wchar_t *__wcsncat_chk (wchar_t *__restrict __dest, 26201: const wchar_t *__restrict __src, 26201: size_t __n, size_t __destlen) throw (); 26201: extern wchar_t *__wcsncat_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcsncat") 26201: 26201: 26201: ; 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 26201: __attribute__ ((__leaf__)) wcsncat (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 26201: 26201: { 26201: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 26201: return __wcsncat_chk (__dest, __src, __n, 26201: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 26201: return __wcsncat_alias (__dest, __src, __n); 26201: } 26201: 26201: 26201: extern int __swprintf_chk (wchar_t *__restrict __s, size_t __n, 26201: int __flag, size_t __s_len, 26201: const wchar_t *__restrict __format, ...) 26201: throw () ; 26201: 26201: extern int __swprintf_alias (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, ...) throw () __asm__ ("" "swprintf") 26201: 26201: 26201: ; 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 26201: __attribute__ ((__leaf__)) swprintf (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, ...) throw () 26201: 26201: { 26201: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 || 2 > 1) 26201: return __swprintf_chk (__s, __n, 2 - 1, 26201: __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 26201: __fmt, __builtin_va_arg_pack ()); 26201: return __swprintf_alias (__s, __n, __fmt, __builtin_va_arg_pack ()); 26201: } 26201: # 303 "/usr/x86_64-linux-gnu/include/bits/wchar2.h" 3 26201: extern int __vswprintf_chk (wchar_t *__restrict __s, size_t __n, 26201: int __flag, size_t __s_len, 26201: const wchar_t *__restrict __format, 26201: __gnuc_va_list __arg) 26201: throw () ; 26201: 26201: extern int __vswprintf_alias (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, __gnuc_va_list __ap) throw () __asm__ ("" "vswprintf") 26201: 26201: 26201: ; 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 26201: __attribute__ ((__leaf__)) vswprintf (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, __gnuc_va_list __ap) throw () 26201: 26201: { 26201: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 || 2 > 1) 26201: return __vswprintf_chk (__s, __n, 2 - 1, 26201: __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), __fmt, __ap); 26201: return __vswprintf_alias (__s, __n, __fmt, __ap); 26201: } 26201: 26201: 26201: 26201: 26201: extern int __fwprintf_chk (__FILE *__restrict __stream, int __flag, 26201: const wchar_t *__restrict __format, ...); 26201: extern int __wprintf_chk (int __flag, const wchar_t *__restrict __format, 26201: ...); 26201: extern int __vfwprintf_chk (__FILE *__restrict __stream, int __flag, 26201: const wchar_t *__restrict __format, 26201: __gnuc_va_list __ap); 26201: extern int __vwprintf_chk (int __flag, const wchar_t *__restrict __format, 26201: __gnuc_va_list __ap); 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 26201: wprintf (const wchar_t *__restrict __fmt, ...) 26201: { 26201: return __wprintf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); 26201: } 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 26201: fwprintf (__FILE *__restrict __stream, const wchar_t *__restrict __fmt, ...) 26201: { 26201: return __fwprintf_chk (__stream, 2 - 1, __fmt, 26201: __builtin_va_arg_pack ()); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 26201: vwprintf (const wchar_t *__restrict __fmt, __gnuc_va_list __ap) 26201: { 26201: return __vwprintf_chk (2 - 1, __fmt, __ap); 26201: } 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 26201: vfwprintf (__FILE *__restrict __stream, 26201: const wchar_t *__restrict __fmt, __gnuc_va_list __ap) 26201: { 26201: return __vfwprintf_chk (__stream, 2 - 1, __fmt, __ap); 26201: } 26201: 26201: 26201: 26201: extern wchar_t *__fgetws_chk (wchar_t *__restrict __s, size_t __size, int __n, 26201: __FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 26201: extern wchar_t *__fgetws_alias (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) __asm__ ("" "fgetws") 26201: 26201: __attribute__ ((__warn_unused_result__)); 26201: extern wchar_t *__fgetws_chk_warn (wchar_t *__restrict __s, size_t __size, int __n, __FILE *__restrict __stream) __asm__ ("" "__fgetws_chk") 26201: 26201: 26201: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgetws called with bigger size than length " "of destination buffer"))) 26201: ; 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) wchar_t * 26201: fgetws (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) 26201: { 26201: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 26201: { 26201: if (!__builtin_constant_p (__n) || __n <= 0) 26201: return __fgetws_chk (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 26201: __n, __stream); 26201: 26201: if ((size_t) __n > __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t)) 26201: return __fgetws_chk_warn (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 26201: __n, __stream); 26201: } 26201: return __fgetws_alias (__s, __n, __stream); 26201: } 26201: 26201: 26201: extern wchar_t *__fgetws_unlocked_chk (wchar_t *__restrict __s, size_t __size, 26201: int __n, __FILE *__restrict __stream) 26201: __attribute__ ((__warn_unused_result__)); 26201: extern wchar_t *__fgetws_unlocked_alias (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) __asm__ ("" "fgetws_unlocked") 26201: 26201: 26201: __attribute__ ((__warn_unused_result__)); 26201: extern wchar_t *__fgetws_unlocked_chk_warn (wchar_t *__restrict __s, size_t __size, int __n, __FILE *__restrict __stream) __asm__ ("" "__fgetws_unlocked_chk") 26201: 26201: 26201: 26201: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgetws_unlocked called with bigger size than length " "of destination buffer"))) 26201: ; 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) wchar_t * 26201: fgetws_unlocked (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) 26201: { 26201: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 26201: { 26201: if (!__builtin_constant_p (__n) || __n <= 0) 26201: return __fgetws_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 26201: __n, __stream); 26201: 26201: if ((size_t) __n > __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t)) 26201: return __fgetws_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 26201: __n, __stream); 26201: } 26201: return __fgetws_unlocked_alias (__s, __n, __stream); 26201: } 26201: 26201: 26201: 26201: extern size_t __wcrtomb_chk (char *__restrict __s, wchar_t __wchar, 26201: mbstate_t *__restrict __p, 26201: size_t __buflen) throw () __attribute__ ((__warn_unused_result__)); 26201: extern size_t __wcrtomb_alias (char *__restrict __s, wchar_t __wchar, mbstate_t *__restrict __ps) throw () __asm__ ("" "wcrtomb") 26201: 26201: __attribute__ ((__warn_unused_result__)); 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 26201: __attribute__ ((__leaf__)) wcrtomb (char *__restrict __s, wchar_t __wchar, mbstate_t *__restrict __ps) throw () 26201: 26201: { 26201: 26201: 26201: 26201: #define __WCHAR_MB_LEN_MAX 16 26201: 26201: 26201: 26201: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) 26201: return __wcrtomb_chk (__s, __wchar, __ps, __builtin_object_size (__s, 2 > 1)); 26201: return __wcrtomb_alias (__s, __wchar, __ps); 26201: } 26201: 26201: 26201: extern size_t __mbsrtowcs_chk (wchar_t *__restrict __dst, 26201: const char **__restrict __src, 26201: size_t __len, mbstate_t *__restrict __ps, 26201: size_t __dstlen) throw (); 26201: extern size_t __mbsrtowcs_alias (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "mbsrtowcs") 26201: 26201: 26201: 26201: ; 26201: extern size_t __mbsrtowcs_chk_warn (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) throw () __asm__ ("" "__mbsrtowcs_chk") 26201: 26201: 26201: 26201: 26201: __attribute__((__warning__ ("mbsrtowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 26201: ; 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 26201: __attribute__ ((__leaf__)) mbsrtowcs (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () 26201: 26201: { 26201: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 26201: { 26201: if (!__builtin_constant_p (__len)) 26201: return __mbsrtowcs_chk (__dst, __src, __len, __ps, 26201: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 26201: 26201: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 26201: return __mbsrtowcs_chk_warn (__dst, __src, __len, __ps, 26201: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 26201: } 26201: return __mbsrtowcs_alias (__dst, __src, __len, __ps); 26201: } 26201: 26201: 26201: extern size_t __wcsrtombs_chk (char *__restrict __dst, 26201: const wchar_t **__restrict __src, 26201: size_t __len, mbstate_t *__restrict __ps, 26201: size_t __dstlen) throw (); 26201: extern size_t __wcsrtombs_alias (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "wcsrtombs") 26201: 26201: 26201: 26201: ; 26201: extern size_t __wcsrtombs_chk_warn (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) throw () __asm__ ("" "__wcsrtombs_chk") 26201: 26201: 26201: 26201: 26201: __attribute__((__warning__ ("wcsrtombs called with dst buffer smaller than len"))); 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 26201: __attribute__ ((__leaf__)) wcsrtombs (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () 26201: 26201: { 26201: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 26201: { 26201: if (!__builtin_constant_p (__len)) 26201: return __wcsrtombs_chk (__dst, __src, __len, __ps, __builtin_object_size (__dst, 2 > 1)); 26201: 26201: if (__len > __builtin_object_size (__dst, 2 > 1)) 26201: return __wcsrtombs_chk_warn (__dst, __src, __len, __ps, __builtin_object_size (__dst, 2 > 1)); 26201: } 26201: return __wcsrtombs_alias (__dst, __src, __len, __ps); 26201: } 26201: 26201: 26201: 26201: extern size_t __mbsnrtowcs_chk (wchar_t *__restrict __dst, 26201: const char **__restrict __src, size_t __nmc, 26201: size_t __len, mbstate_t *__restrict __ps, 26201: size_t __dstlen) throw (); 26201: extern size_t __mbsnrtowcs_alias (wchar_t *__restrict __dst, const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "mbsnrtowcs") 26201: 26201: 26201: 26201: ; 26201: extern size_t __mbsnrtowcs_chk_warn (wchar_t *__restrict __dst, const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) throw () __asm__ ("" "__mbsnrtowcs_chk") 26201: 26201: 26201: 26201: 26201: __attribute__((__warning__ ("mbsnrtowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 26201: ; 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 26201: __attribute__ ((__leaf__)) mbsnrtowcs (wchar_t *__restrict __dst, const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps) throw () 26201: 26201: { 26201: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 26201: { 26201: if (!__builtin_constant_p (__len)) 26201: return __mbsnrtowcs_chk (__dst, __src, __nmc, __len, __ps, 26201: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 26201: 26201: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 26201: return __mbsnrtowcs_chk_warn (__dst, __src, __nmc, __len, __ps, 26201: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 26201: } 26201: return __mbsnrtowcs_alias (__dst, __src, __nmc, __len, __ps); 26201: } 26201: 26201: 26201: extern size_t __wcsnrtombs_chk (char *__restrict __dst, 26201: const wchar_t **__restrict __src, 26201: size_t __nwc, size_t __len, 26201: mbstate_t *__restrict __ps, size_t __dstlen) 26201: throw (); 26201: extern size_t __wcsnrtombs_alias (char *__restrict __dst, const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "wcsnrtombs") 26201: 26201: 26201: 26201: ; 26201: extern size_t __wcsnrtombs_chk_warn (char *__restrict __dst, const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) throw () __asm__ ("" "__wcsnrtombs_chk") 26201: 26201: 26201: 26201: 26201: 26201: __attribute__((__warning__ ("wcsnrtombs called with dst buffer smaller than len"))); 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 26201: __attribute__ ((__leaf__)) wcsnrtombs (char *__restrict __dst, const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps) throw () 26201: 26201: { 26201: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 26201: { 26201: if (!__builtin_constant_p (__len)) 26201: return __wcsnrtombs_chk (__dst, __src, __nwc, __len, __ps, 26201: __builtin_object_size (__dst, 2 > 1)); 26201: 26201: if (__len > __builtin_object_size (__dst, 2 > 1)) 26201: return __wcsnrtombs_chk_warn (__dst, __src, __nwc, __len, __ps, 26201: __builtin_object_size (__dst, 2 > 1)); 26201: } 26201: return __wcsnrtombs_alias (__dst, __src, __nwc, __len, __ps); 26201: } 26201: # 850 "/usr/x86_64-linux-gnu/include/wchar.h" 2 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 45 "/usr/x86_64-linux-gnu/include/c++/10/cwchar" 2 3 26201: 26201: 26201: 26201: #define _GLIBCXX_CWCHAR 1 26201: # 62 "/usr/x86_64-linux-gnu/include/c++/10/cwchar" 3 26201: namespace std 26201: { 26201: using ::mbstate_t; 26201: } 26201: 26201: 26201: #undef btowc 26201: #undef fgetwc 26201: #undef fgetws 26201: #undef fputwc 26201: #undef fputws 26201: #undef fwide 26201: #undef fwprintf 26201: #undef fwscanf 26201: #undef getwc 26201: #undef getwchar 26201: #undef mbrlen 26201: #undef mbrtowc 26201: #undef mbsinit 26201: #undef mbsrtowcs 26201: #undef putwc 26201: #undef putwchar 26201: #undef swprintf 26201: #undef swscanf 26201: #undef ungetwc 26201: #undef vfwprintf 26201: 26201: #undef vfwscanf 26201: 26201: #undef vswprintf 26201: 26201: #undef vswscanf 26201: 26201: #undef vwprintf 26201: 26201: #undef vwscanf 26201: 26201: #undef wcrtomb 26201: #undef wcscat 26201: #undef wcschr 26201: #undef wcscmp 26201: #undef wcscoll 26201: #undef wcscpy 26201: #undef wcscspn 26201: #undef wcsftime 26201: #undef wcslen 26201: #undef wcsncat 26201: #undef wcsncmp 26201: #undef wcsncpy 26201: #undef wcspbrk 26201: #undef wcsrchr 26201: #undef wcsrtombs 26201: #undef wcsspn 26201: #undef wcsstr 26201: #undef wcstod 26201: 26201: #undef wcstof 26201: 26201: #undef wcstok 26201: #undef wcstol 26201: #undef wcstoul 26201: #undef wcsxfrm 26201: #undef wctob 26201: #undef wmemchr 26201: #undef wmemcmp 26201: #undef wmemcpy 26201: #undef wmemmove 26201: #undef wmemset 26201: #undef wprintf 26201: #undef wscanf 26201: 26201: 26201: 26201: extern "C++" 26201: { 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: using ::wint_t; 26201: 26201: using ::btowc; 26201: using ::fgetwc; 26201: using ::fgetws; 26201: using ::fputwc; 26201: using ::fputws; 26201: using ::fwide; 26201: using ::fwprintf; 26201: using ::fwscanf; 26201: using ::getwc; 26201: using ::getwchar; 26201: using ::mbrlen; 26201: using ::mbrtowc; 26201: using ::mbsinit; 26201: using ::mbsrtowcs; 26201: using ::putwc; 26201: using ::putwchar; 26201: 26201: using ::swprintf; 26201: 26201: using ::swscanf; 26201: using ::ungetwc; 26201: using ::vfwprintf; 26201: 26201: using ::vfwscanf; 26201: 26201: 26201: using ::vswprintf; 26201: 26201: 26201: using ::vswscanf; 26201: 26201: using ::vwprintf; 26201: 26201: using ::vwscanf; 26201: 26201: using ::wcrtomb; 26201: using ::wcscat; 26201: using ::wcscmp; 26201: using ::wcscoll; 26201: using ::wcscpy; 26201: using ::wcscspn; 26201: using ::wcsftime; 26201: using ::wcslen; 26201: using ::wcsncat; 26201: using ::wcsncmp; 26201: using ::wcsncpy; 26201: using ::wcsrtombs; 26201: using ::wcsspn; 26201: using ::wcstod; 26201: 26201: using ::wcstof; 26201: 26201: using ::wcstok; 26201: using ::wcstol; 26201: using ::wcstoul; 26201: using ::wcsxfrm; 26201: using ::wctob; 26201: using ::wmemcmp; 26201: using ::wmemcpy; 26201: using ::wmemmove; 26201: using ::wmemset; 26201: using ::wprintf; 26201: using ::wscanf; 26201: using ::wcschr; 26201: using ::wcspbrk; 26201: using ::wcsrchr; 26201: using ::wcsstr; 26201: using ::wmemchr; 26201: # 234 "/usr/x86_64-linux-gnu/include/c++/10/cwchar" 3 26201: 26201: } 26201: } 26201: 26201: 26201: 26201: #undef wcstold 26201: #undef wcstoll 26201: #undef wcstoull 26201: 26201: namespace __gnu_cxx 26201: { 26201: 26201: 26201: 26201: 26201: 26201: using ::wcstold; 26201: # 260 "/usr/x86_64-linux-gnu/include/c++/10/cwchar" 3 26201: using ::wcstoll; 26201: using ::wcstoull; 26201: 26201: } 26201: 26201: namespace std 26201: { 26201: using ::__gnu_cxx::wcstold; 26201: using ::__gnu_cxx::wcstoll; 26201: using ::__gnu_cxx::wcstoull; 26201: } 26201: # 280 "/usr/x86_64-linux-gnu/include/c++/10/cwchar" 3 26201: namespace std 26201: { 26201: 26201: using std::wcstof; 26201: 26201: 26201: using std::vfwscanf; 26201: 26201: 26201: using std::vswscanf; 26201: 26201: 26201: using std::vwscanf; 26201: 26201: 26201: 26201: using std::wcstold; 26201: using std::wcstoll; 26201: using std::wcstoull; 26201: 26201: } 26201: # 41 "/usr/x86_64-linux-gnu/include/c++/10/bits/postypes.h" 2 3 26201: # 68 "/usr/x86_64-linux-gnu/include/c++/10/bits/postypes.h" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 88 "/usr/x86_64-linux-gnu/include/c++/10/bits/postypes.h" 3 26201: typedef long streamoff; 26201: # 98 "/usr/x86_64-linux-gnu/include/c++/10/bits/postypes.h" 3 26201: typedef ptrdiff_t streamsize; 26201: # 111 "/usr/x86_64-linux-gnu/include/c++/10/bits/postypes.h" 3 26201: template 26201: class fpos 26201: { 26201: private: 26201: streamoff _M_off; 26201: _StateT _M_state; 26201: 26201: public: 26201: 26201: 26201: 26201: 26201: fpos() 26201: : _M_off(0), _M_state() { } 26201: # 133 "/usr/x86_64-linux-gnu/include/c++/10/bits/postypes.h" 3 26201: fpos(streamoff __off) 26201: : _M_off(__off), _M_state() { } 26201: 26201: 26201: fpos(const fpos&) = default; 26201: fpos& operator=(const fpos&) = default; 26201: ~fpos() = default; 26201: 26201: 26201: 26201: operator streamoff() const { return _M_off; } 26201: 26201: 26201: void 26201: state(_StateT __st) 26201: { _M_state = __st; } 26201: 26201: 26201: _StateT 26201: state() const 26201: { return _M_state; } 26201: 26201: 26201: 26201: 26201: 26201: fpos& 26201: operator+=(streamoff __off) 26201: { 26201: _M_off += __off; 26201: return *this; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: fpos& 26201: operator-=(streamoff __off) 26201: { 26201: _M_off -= __off; 26201: return *this; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: fpos 26201: operator+(streamoff __off) const 26201: { 26201: fpos __pos(*this); 26201: __pos += __off; 26201: return __pos; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: fpos 26201: operator-(streamoff __off) const 26201: { 26201: fpos __pos(*this); 26201: __pos -= __off; 26201: return __pos; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: streamoff 26201: operator-(const fpos& __other) const 26201: { return _M_off - __other._M_off; } 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline bool 26201: operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) 26201: { return streamoff(__lhs) == streamoff(__rhs); } 26201: 26201: template 26201: inline bool 26201: operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) 26201: { return streamoff(__lhs) != streamoff(__rhs); } 26201: 26201: 26201: 26201: 26201: 26201: typedef fpos streampos; 26201: 26201: typedef fpos wstreampos; 26201: # 245 "/usr/x86_64-linux-gnu/include/c++/10/bits/postypes.h" 3 26201: typedef fpos u16streampos; 26201: 26201: typedef fpos u32streampos; 26201: 26201: 26201: 26201: } 26201: # 41 "/usr/x86_64-linux-gnu/include/c++/10/iosfwd" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 74 "/usr/x86_64-linux-gnu/include/c++/10/iosfwd" 3 26201: class ios_base; 26201: 26201: template > 26201: class basic_ios; 26201: 26201: template > 26201: class basic_streambuf; 26201: 26201: template > 26201: class basic_istream; 26201: 26201: template > 26201: class basic_ostream; 26201: 26201: template > 26201: class basic_iostream; 26201: 26201: 26201: namespace __cxx11 { 26201: 26201: template, 26201: typename _Alloc = allocator<_CharT> > 26201: class basic_stringbuf; 26201: 26201: template, 26201: typename _Alloc = allocator<_CharT> > 26201: class basic_istringstream; 26201: 26201: template, 26201: typename _Alloc = allocator<_CharT> > 26201: class basic_ostringstream; 26201: 26201: template, 26201: typename _Alloc = allocator<_CharT> > 26201: class basic_stringstream; 26201: 26201: } 26201: 26201: template > 26201: class basic_filebuf; 26201: 26201: template > 26201: class basic_ifstream; 26201: 26201: template > 26201: class basic_ofstream; 26201: 26201: template > 26201: class basic_fstream; 26201: 26201: template > 26201: class istreambuf_iterator; 26201: 26201: template > 26201: class ostreambuf_iterator; 26201: 26201: 26201: 26201: typedef basic_ios ios; 26201: 26201: 26201: typedef basic_streambuf streambuf; 26201: 26201: 26201: typedef basic_istream istream; 26201: 26201: 26201: typedef basic_ostream ostream; 26201: 26201: 26201: typedef basic_iostream iostream; 26201: 26201: 26201: typedef basic_stringbuf stringbuf; 26201: 26201: 26201: typedef basic_istringstream istringstream; 26201: 26201: 26201: typedef basic_ostringstream ostringstream; 26201: 26201: 26201: typedef basic_stringstream stringstream; 26201: 26201: 26201: typedef basic_filebuf filebuf; 26201: 26201: 26201: typedef basic_ifstream ifstream; 26201: 26201: 26201: typedef basic_ofstream ofstream; 26201: 26201: 26201: typedef basic_fstream fstream; 26201: 26201: 26201: 26201: typedef basic_ios wios; 26201: 26201: 26201: typedef basic_streambuf wstreambuf; 26201: 26201: 26201: typedef basic_istream wistream; 26201: 26201: 26201: typedef basic_ostream wostream; 26201: 26201: 26201: typedef basic_iostream wiostream; 26201: 26201: 26201: typedef basic_stringbuf wstringbuf; 26201: 26201: 26201: typedef basic_istringstream wistringstream; 26201: 26201: 26201: typedef basic_ostringstream wostringstream; 26201: 26201: 26201: typedef basic_stringstream wstringstream; 26201: 26201: 26201: typedef basic_filebuf wfilebuf; 26201: 26201: 26201: typedef basic_ifstream wifstream; 26201: 26201: 26201: typedef basic_ofstream wofstream; 26201: 26201: 26201: typedef basic_fstream wfstream; 26201: 26201: 26201: 26201: 26201: } 26201: # 41 "/usr/x86_64-linux-gnu/include/c++/10/system_error" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/stdexcept" 1 3 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/stdexcept" 3 26201: #define _GLIBCXX_STDEXCEPT 1 26201: 26201: 26201: # 37 "/usr/x86_64-linux-gnu/include/c++/10/stdexcept" 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/string" 1 3 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/string" 3 26201: #define _GLIBCXX_STRING 1 26201: 26201: 26201: # 37 "/usr/x86_64-linux-gnu/include/c++/10/string" 3 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/char_traits.h" 1 3 26201: # 35 "/usr/x86_64-linux-gnu/include/c++/10/bits/char_traits.h" 3 26201: #define _CHAR_TRAITS_H 1 26201: 26201: 26201: # 38 "/usr/x86_64-linux-gnu/include/c++/10/bits/char_traits.h" 3 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/cwchar" 1 3 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/cwchar" 3 26201: 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/cwchar" 3 26201: # 42 "/usr/x86_64-linux-gnu/include/c++/10/bits/char_traits.h" 2 3 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_ALWAYS_INLINE inline __attribute__((__always_inline__)) 26201: 26201: 26201: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 64 "/usr/x86_64-linux-gnu/include/c++/10/bits/char_traits.h" 3 26201: template 26201: struct _Char_types 26201: { 26201: typedef unsigned long int_type; 26201: typedef std::streampos pos_type; 26201: typedef std::streamoff off_type; 26201: typedef std::mbstate_t state_type; 26201: }; 26201: # 89 "/usr/x86_64-linux-gnu/include/c++/10/bits/char_traits.h" 3 26201: template 26201: struct char_traits 26201: { 26201: typedef _CharT char_type; 26201: typedef typename _Char_types<_CharT>::int_type int_type; 26201: typedef typename _Char_types<_CharT>::pos_type pos_type; 26201: typedef typename _Char_types<_CharT>::off_type off_type; 26201: typedef typename _Char_types<_CharT>::state_type state_type; 26201: 26201: 26201: 26201: 26201: static constexpr void 26201: assign(char_type& __c1, const char_type& __c2) 26201: { __c1 = __c2; } 26201: 26201: static constexpr bool 26201: eq(const char_type& __c1, const char_type& __c2) 26201: { return __c1 == __c2; } 26201: 26201: static constexpr bool 26201: lt(const char_type& __c1, const char_type& __c2) 26201: { return __c1 < __c2; } 26201: 26201: static constexpr int 26201: compare(const char_type* __s1, const char_type* __s2, std::size_t __n); 26201: 26201: static constexpr std::size_t 26201: length(const char_type* __s); 26201: 26201: static constexpr const char_type* 26201: find(const char_type* __s, std::size_t __n, const char_type& __a); 26201: 26201: static char_type* 26201: move(char_type* __s1, const char_type* __s2, std::size_t __n); 26201: 26201: static char_type* 26201: copy(char_type* __s1, const char_type* __s2, std::size_t __n); 26201: 26201: static char_type* 26201: assign(char_type* __s, std::size_t __n, char_type __a); 26201: 26201: static constexpr char_type 26201: to_char_type(const int_type& __c) 26201: { return static_cast(__c); } 26201: 26201: static constexpr int_type 26201: to_int_type(const char_type& __c) 26201: { return static_cast(__c); } 26201: 26201: static constexpr bool 26201: eq_int_type(const int_type& __c1, const int_type& __c2) 26201: { return __c1 == __c2; } 26201: 26201: static constexpr int_type 26201: eof() 26201: { return static_cast(-1); } 26201: 26201: static constexpr int_type 26201: not_eof(const int_type& __c) 26201: { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); } 26201: }; 26201: 26201: template 26201: constexpr int 26201: char_traits<_CharT>:: 26201: compare(const char_type* __s1, const char_type* __s2, std::size_t __n) 26201: { 26201: for (std::size_t __i = 0; __i < __n; ++__i) 26201: if (lt(__s1[__i], __s2[__i])) 26201: return -1; 26201: else if (lt(__s2[__i], __s1[__i])) 26201: return 1; 26201: return 0; 26201: } 26201: 26201: template 26201: constexpr std::size_t 26201: char_traits<_CharT>:: 26201: length(const char_type* __p) 26201: { 26201: std::size_t __i = 0; 26201: while (!eq(__p[__i], char_type())) 26201: ++__i; 26201: return __i; 26201: } 26201: 26201: template 26201: constexpr const typename char_traits<_CharT>::char_type* 26201: char_traits<_CharT>:: 26201: find(const char_type* __s, std::size_t __n, const char_type& __a) 26201: { 26201: for (std::size_t __i = 0; __i < __n; ++__i) 26201: if (eq(__s[__i], __a)) 26201: return __s + __i; 26201: return 0; 26201: } 26201: 26201: template 26201: 26201: typename char_traits<_CharT>::char_type* 26201: char_traits<_CharT>:: 26201: move(char_type* __s1, const char_type* __s2, std::size_t __n) 26201: { 26201: if (__n == 0) 26201: return __s1; 26201: # 205 "/usr/x86_64-linux-gnu/include/c++/10/bits/char_traits.h" 3 26201: return static_cast<_CharT*>(__builtin_memmove(__s1, __s2, 26201: __n * sizeof(char_type))); 26201: } 26201: 26201: template 26201: 26201: typename char_traits<_CharT>::char_type* 26201: char_traits<_CharT>:: 26201: copy(char_type* __s1, const char_type* __s2, std::size_t __n) 26201: { 26201: 26201: std::copy(__s2, __s2 + __n, __s1); 26201: return __s1; 26201: } 26201: 26201: template 26201: 26201: typename char_traits<_CharT>::char_type* 26201: char_traits<_CharT>:: 26201: assign(char_type* __s, std::size_t __n, char_type __a) 26201: { 26201: 26201: std::fill_n(__s, __n, __a); 26201: return __s; 26201: } 26201: 26201: 26201: } 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 245 "/usr/x86_64-linux-gnu/include/c++/10/bits/char_traits.h" 3 26201: #define __cpp_lib_constexpr_char_traits 201611L 26201: # 255 "/usr/x86_64-linux-gnu/include/c++/10/bits/char_traits.h" 3 26201: template 26201: inline __attribute__((__always_inline__)) constexpr bool 26201: __constant_string_p(const _CharT* __s) 26201: { 26201: 26201: (void) __s; 26201: 26201: return __builtin_is_constant_evaluated(); 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 278 "/usr/x86_64-linux-gnu/include/c++/10/bits/char_traits.h" 3 26201: template 26201: inline __attribute__((__always_inline__)) constexpr bool 26201: __constant_char_array_p(const _CharT* __a, size_t __n) 26201: { 26201: 26201: (void) __a; 26201: (void) __n; 26201: 26201: return __builtin_is_constant_evaluated(); 26201: 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 309 "/usr/x86_64-linux-gnu/include/c++/10/bits/char_traits.h" 3 26201: template 26201: struct char_traits : public __gnu_cxx::char_traits<_CharT> 26201: { }; 26201: 26201: 26201: 26201: template<> 26201: struct char_traits 26201: { 26201: typedef char char_type; 26201: typedef int int_type; 26201: typedef streampos pos_type; 26201: typedef streamoff off_type; 26201: typedef mbstate_t state_type; 26201: 26201: 26201: 26201: 26201: static constexpr void 26201: assign(char_type& __c1, const char_type& __c2) noexcept 26201: { __c1 = __c2; } 26201: 26201: static constexpr bool 26201: eq(const char_type& __c1, const char_type& __c2) noexcept 26201: { return __c1 == __c2; } 26201: 26201: static constexpr bool 26201: lt(const char_type& __c1, const char_type& __c2) noexcept 26201: { 26201: 26201: return (static_cast(__c1) 26201: < static_cast(__c2)); 26201: } 26201: 26201: static constexpr int 26201: compare(const char_type* __s1, const char_type* __s2, size_t __n) 26201: { 26201: if (__n == 0) 26201: return 0; 26201: 26201: if (__builtin_constant_p(__n) 26201: && __constant_char_array_p(__s1, __n) 26201: && __constant_char_array_p(__s2, __n)) 26201: { 26201: for (size_t __i = 0; __i < __n; ++__i) 26201: if (lt(__s1[__i], __s2[__i])) 26201: return -1; 26201: else if (lt(__s2[__i], __s1[__i])) 26201: return 1; 26201: return 0; 26201: } 26201: 26201: return __builtin_memcmp(__s1, __s2, __n); 26201: } 26201: 26201: static constexpr size_t 26201: length(const char_type* __s) 26201: { 26201: 26201: if (__constant_string_p(__s)) 26201: return __gnu_cxx::char_traits::length(__s); 26201: 26201: return __builtin_strlen(__s); 26201: } 26201: 26201: static constexpr const char_type* 26201: find(const char_type* __s, size_t __n, const char_type& __a) 26201: { 26201: if (__n == 0) 26201: return 0; 26201: 26201: if (__builtin_constant_p(__n) 26201: && __builtin_constant_p(__a) 26201: && __constant_char_array_p(__s, __n)) 26201: return __gnu_cxx::char_traits::find(__s, __n, __a); 26201: 26201: return static_cast(__builtin_memchr(__s, __a, __n)); 26201: } 26201: 26201: static char_type* 26201: move(char_type* __s1, const char_type* __s2, size_t __n) 26201: { 26201: if (__n == 0) 26201: return __s1; 26201: 26201: 26201: 26201: 26201: return static_cast(__builtin_memmove(__s1, __s2, __n)); 26201: } 26201: 26201: static char_type* 26201: copy(char_type* __s1, const char_type* __s2, size_t __n) 26201: { 26201: if (__n == 0) 26201: return __s1; 26201: 26201: 26201: 26201: 26201: return static_cast(__builtin_memcpy(__s1, __s2, __n)); 26201: } 26201: 26201: static char_type* 26201: assign(char_type* __s, size_t __n, char_type __a) 26201: { 26201: if (__n == 0) 26201: return __s; 26201: 26201: 26201: 26201: 26201: return static_cast(__builtin_memset(__s, __a, __n)); 26201: } 26201: 26201: static constexpr char_type 26201: to_char_type(const int_type& __c) noexcept 26201: { return static_cast(__c); } 26201: 26201: 26201: 26201: static constexpr int_type 26201: to_int_type(const char_type& __c) noexcept 26201: { return static_cast(static_cast(__c)); } 26201: 26201: static constexpr bool 26201: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 26201: { return __c1 == __c2; } 26201: 26201: static constexpr int_type 26201: eof() noexcept 26201: { return static_cast(-1); } 26201: 26201: static constexpr int_type 26201: not_eof(const int_type& __c) noexcept 26201: { return (__c == eof()) ? 0 : __c; } 26201: }; 26201: 26201: 26201: 26201: 26201: template<> 26201: struct char_traits 26201: { 26201: typedef wchar_t char_type; 26201: typedef wint_t int_type; 26201: typedef streamoff off_type; 26201: typedef wstreampos pos_type; 26201: typedef mbstate_t state_type; 26201: 26201: 26201: 26201: 26201: static constexpr void 26201: assign(char_type& __c1, const char_type& __c2) noexcept 26201: { __c1 = __c2; } 26201: 26201: static constexpr bool 26201: eq(const char_type& __c1, const char_type& __c2) noexcept 26201: { return __c1 == __c2; } 26201: 26201: static constexpr bool 26201: lt(const char_type& __c1, const char_type& __c2) noexcept 26201: { return __c1 < __c2; } 26201: 26201: static constexpr int 26201: compare(const char_type* __s1, const char_type* __s2, size_t __n) 26201: { 26201: if (__n == 0) 26201: return 0; 26201: 26201: if (__builtin_constant_p(__n) 26201: && __constant_char_array_p(__s1, __n) 26201: && __constant_char_array_p(__s2, __n)) 26201: return __gnu_cxx::char_traits::compare(__s1, __s2, __n); 26201: 26201: return wmemcmp(__s1, __s2, __n); 26201: } 26201: 26201: static constexpr size_t 26201: length(const char_type* __s) 26201: { 26201: 26201: if (__constant_string_p(__s)) 26201: return __gnu_cxx::char_traits::length(__s); 26201: 26201: return wcslen(__s); 26201: } 26201: 26201: static constexpr const char_type* 26201: find(const char_type* __s, size_t __n, const char_type& __a) 26201: { 26201: if (__n == 0) 26201: return 0; 26201: 26201: if (__builtin_constant_p(__n) 26201: && __builtin_constant_p(__a) 26201: && __constant_char_array_p(__s, __n)) 26201: return __gnu_cxx::char_traits::find(__s, __n, __a); 26201: 26201: return wmemchr(__s, __a, __n); 26201: } 26201: 26201: static char_type* 26201: move(char_type* __s1, const char_type* __s2, size_t __n) 26201: { 26201: if (__n == 0) 26201: return __s1; 26201: 26201: 26201: 26201: 26201: return wmemmove(__s1, __s2, __n); 26201: } 26201: 26201: static char_type* 26201: copy(char_type* __s1, const char_type* __s2, size_t __n) 26201: { 26201: if (__n == 0) 26201: return __s1; 26201: 26201: 26201: 26201: 26201: return wmemcpy(__s1, __s2, __n); 26201: } 26201: 26201: static char_type* 26201: assign(char_type* __s, size_t __n, char_type __a) 26201: { 26201: if (__n == 0) 26201: return __s; 26201: 26201: 26201: 26201: 26201: return wmemset(__s, __a, __n); 26201: } 26201: 26201: static constexpr char_type 26201: to_char_type(const int_type& __c) noexcept 26201: { return char_type(__c); } 26201: 26201: static constexpr int_type 26201: to_int_type(const char_type& __c) noexcept 26201: { return int_type(__c); } 26201: 26201: static constexpr bool 26201: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 26201: { return __c1 == __c2; } 26201: 26201: static constexpr int_type 26201: eof() noexcept 26201: { return static_cast((0xffffffffu)); } 26201: 26201: static constexpr int_type 26201: not_eof(const int_type& __c) noexcept 26201: { return eq_int_type(__c, eof()) ? 0 : __c; } 26201: }; 26201: # 694 "/usr/x86_64-linux-gnu/include/c++/10/bits/char_traits.h" 3 26201: 26201: } 26201: 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: template<> 26201: struct char_traits 26201: { 26201: typedef char16_t char_type; 26201: 26201: typedef uint_least16_t int_type; 26201: 26201: 26201: 26201: 26201: 26201: typedef streamoff off_type; 26201: typedef u16streampos pos_type; 26201: typedef mbstate_t state_type; 26201: 26201: 26201: 26201: 26201: static constexpr void 26201: assign(char_type& __c1, const char_type& __c2) noexcept 26201: { __c1 = __c2; } 26201: 26201: static constexpr bool 26201: eq(const char_type& __c1, const char_type& __c2) noexcept 26201: { return __c1 == __c2; } 26201: 26201: static constexpr bool 26201: lt(const char_type& __c1, const char_type& __c2) noexcept 26201: { return __c1 < __c2; } 26201: 26201: static constexpr int 26201: compare(const char_type* __s1, const char_type* __s2, size_t __n) 26201: { 26201: for (size_t __i = 0; __i < __n; ++__i) 26201: if (lt(__s1[__i], __s2[__i])) 26201: return -1; 26201: else if (lt(__s2[__i], __s1[__i])) 26201: return 1; 26201: return 0; 26201: } 26201: 26201: static constexpr size_t 26201: length(const char_type* __s) 26201: { 26201: size_t __i = 0; 26201: while (!eq(__s[__i], char_type())) 26201: ++__i; 26201: return __i; 26201: } 26201: 26201: static constexpr const char_type* 26201: find(const char_type* __s, size_t __n, const char_type& __a) 26201: { 26201: for (size_t __i = 0; __i < __n; ++__i) 26201: if (eq(__s[__i], __a)) 26201: return __s + __i; 26201: return 0; 26201: } 26201: 26201: static char_type* 26201: move(char_type* __s1, const char_type* __s2, size_t __n) 26201: { 26201: if (__n == 0) 26201: return __s1; 26201: 26201: 26201: 26201: 26201: return (static_cast 26201: (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); 26201: } 26201: 26201: static char_type* 26201: copy(char_type* __s1, const char_type* __s2, size_t __n) 26201: { 26201: if (__n == 0) 26201: return __s1; 26201: 26201: 26201: 26201: 26201: return (static_cast 26201: (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); 26201: } 26201: 26201: static char_type* 26201: assign(char_type* __s, size_t __n, char_type __a) 26201: { 26201: for (size_t __i = 0; __i < __n; ++__i) 26201: assign(__s[__i], __a); 26201: return __s; 26201: } 26201: 26201: static constexpr char_type 26201: to_char_type(const int_type& __c) noexcept 26201: { return char_type(__c); } 26201: 26201: static constexpr int_type 26201: to_int_type(const char_type& __c) noexcept 26201: { return __c == eof() ? int_type(0xfffd) : int_type(__c); } 26201: 26201: static constexpr bool 26201: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 26201: { return __c1 == __c2; } 26201: 26201: static constexpr int_type 26201: eof() noexcept 26201: { return static_cast(-1); } 26201: 26201: static constexpr int_type 26201: not_eof(const int_type& __c) noexcept 26201: { return eq_int_type(__c, eof()) ? 0 : __c; } 26201: }; 26201: 26201: template<> 26201: struct char_traits 26201: { 26201: typedef char32_t char_type; 26201: 26201: typedef uint_least32_t int_type; 26201: 26201: 26201: 26201: 26201: 26201: typedef streamoff off_type; 26201: typedef u32streampos pos_type; 26201: typedef mbstate_t state_type; 26201: 26201: 26201: 26201: 26201: static constexpr void 26201: assign(char_type& __c1, const char_type& __c2) noexcept 26201: { __c1 = __c2; } 26201: 26201: static constexpr bool 26201: eq(const char_type& __c1, const char_type& __c2) noexcept 26201: { return __c1 == __c2; } 26201: 26201: static constexpr bool 26201: lt(const char_type& __c1, const char_type& __c2) noexcept 26201: { return __c1 < __c2; } 26201: 26201: static constexpr int 26201: compare(const char_type* __s1, const char_type* __s2, size_t __n) 26201: { 26201: for (size_t __i = 0; __i < __n; ++__i) 26201: if (lt(__s1[__i], __s2[__i])) 26201: return -1; 26201: else if (lt(__s2[__i], __s1[__i])) 26201: return 1; 26201: return 0; 26201: } 26201: 26201: static constexpr size_t 26201: length(const char_type* __s) 26201: { 26201: size_t __i = 0; 26201: while (!eq(__s[__i], char_type())) 26201: ++__i; 26201: return __i; 26201: } 26201: 26201: static constexpr const char_type* 26201: find(const char_type* __s, size_t __n, const char_type& __a) 26201: { 26201: for (size_t __i = 0; __i < __n; ++__i) 26201: if (eq(__s[__i], __a)) 26201: return __s + __i; 26201: return 0; 26201: } 26201: 26201: static char_type* 26201: move(char_type* __s1, const char_type* __s2, size_t __n) 26201: { 26201: if (__n == 0) 26201: return __s1; 26201: 26201: 26201: 26201: 26201: return (static_cast 26201: (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); 26201: } 26201: 26201: static char_type* 26201: copy(char_type* __s1, const char_type* __s2, size_t __n) 26201: { 26201: if (__n == 0) 26201: return __s1; 26201: 26201: 26201: 26201: 26201: return (static_cast 26201: (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); 26201: } 26201: 26201: static char_type* 26201: assign(char_type* __s, size_t __n, char_type __a) 26201: { 26201: for (size_t __i = 0; __i < __n; ++__i) 26201: assign(__s[__i], __a); 26201: return __s; 26201: } 26201: 26201: static constexpr char_type 26201: to_char_type(const int_type& __c) noexcept 26201: { return char_type(__c); } 26201: 26201: static constexpr int_type 26201: to_int_type(const char_type& __c) noexcept 26201: { return int_type(__c); } 26201: 26201: static constexpr bool 26201: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 26201: { return __c1 == __c2; } 26201: 26201: static constexpr int_type 26201: eof() noexcept 26201: { return static_cast(-1); } 26201: 26201: static constexpr int_type 26201: not_eof(const int_type& __c) noexcept 26201: { return eq_int_type(__c, eof()) ? 0 : __c; } 26201: }; 26201: # 952 "/usr/x86_64-linux-gnu/include/c++/10/bits/char_traits.h" 3 26201: 26201: } 26201: # 41 "/usr/x86_64-linux-gnu/include/c++/10/string" 2 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/localefwd.h" 1 3 26201: # 35 "/usr/x86_64-linux-gnu/include/c++/10/bits/localefwd.h" 3 26201: #define _LOCALE_FWD_H 1 26201: 26201: 26201: # 38 "/usr/x86_64-linux-gnu/include/c++/10/bits/localefwd.h" 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++locale.h" 1 3 26201: # 37 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++locale.h" 3 26201: #define _GLIBCXX_CXX_LOCALE_H 1 26201: 26201: 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++locale.h" 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/clocale" 1 3 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/clocale" 3 26201: 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/clocale" 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/locale.h" 1 3 26201: # 23 "/usr/x86_64-linux-gnu/include/locale.h" 3 26201: #define _LOCALE_H 1 26201: 26201: 26201: 26201: #define __need_NULL 26201: # 1 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 1 3 4 26201: # 155 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_ptrdiff_t 26201: # 231 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_size_t 26201: # 340 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_wchar_t 26201: # 390 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef NULL 26201: 26201: #define NULL __null 26201: # 401 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_NULL 26201: 26201: 26201: 26201: 26201: #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER) 26201: # 29 "/usr/x86_64-linux-gnu/include/locale.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/locale.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/locale.h" 3 26201: #define _BITS_LOCALE_H 1 26201: 26201: #define __LC_CTYPE 0 26201: #define __LC_NUMERIC 1 26201: #define __LC_TIME 2 26201: #define __LC_COLLATE 3 26201: #define __LC_MONETARY 4 26201: #define __LC_MESSAGES 5 26201: #define __LC_ALL 6 26201: #define __LC_PAPER 7 26201: #define __LC_NAME 8 26201: #define __LC_ADDRESS 9 26201: #define __LC_TELEPHONE 10 26201: #define __LC_MEASUREMENT 11 26201: #define __LC_IDENTIFICATION 12 26201: # 30 "/usr/x86_64-linux-gnu/include/locale.h" 2 3 26201: 26201: extern "C" { 26201: 26201: 26201: 26201: #define LC_CTYPE __LC_CTYPE 26201: #define LC_NUMERIC __LC_NUMERIC 26201: #define LC_TIME __LC_TIME 26201: #define LC_COLLATE __LC_COLLATE 26201: #define LC_MONETARY __LC_MONETARY 26201: #define LC_MESSAGES __LC_MESSAGES 26201: #define LC_ALL __LC_ALL 26201: #define LC_PAPER __LC_PAPER 26201: #define LC_NAME __LC_NAME 26201: #define LC_ADDRESS __LC_ADDRESS 26201: #define LC_TELEPHONE __LC_TELEPHONE 26201: #define LC_MEASUREMENT __LC_MEASUREMENT 26201: #define LC_IDENTIFICATION __LC_IDENTIFICATION 26201: 26201: 26201: 26201: struct lconv 26201: { 26201: 26201: 26201: char *decimal_point; 26201: char *thousands_sep; 26201: 26201: 26201: 26201: 26201: 26201: char *grouping; 26201: 26201: 26201: 26201: 26201: 26201: char *int_curr_symbol; 26201: char *currency_symbol; 26201: char *mon_decimal_point; 26201: char *mon_thousands_sep; 26201: char *mon_grouping; 26201: char *positive_sign; 26201: char *negative_sign; 26201: char int_frac_digits; 26201: char frac_digits; 26201: 26201: char p_cs_precedes; 26201: 26201: char p_sep_by_space; 26201: 26201: char n_cs_precedes; 26201: 26201: char n_sep_by_space; 26201: 26201: 26201: 26201: 26201: 26201: 26201: char p_sign_posn; 26201: char n_sign_posn; 26201: 26201: 26201: char int_p_cs_precedes; 26201: 26201: char int_p_sep_by_space; 26201: 26201: char int_n_cs_precedes; 26201: 26201: char int_n_sep_by_space; 26201: 26201: 26201: 26201: 26201: 26201: 26201: char int_p_sign_posn; 26201: char int_n_sign_posn; 26201: # 118 "/usr/x86_64-linux-gnu/include/locale.h" 3 26201: }; 26201: 26201: 26201: 26201: extern char *setlocale (int __category, const char *__locale) throw (); 26201: 26201: 26201: extern struct lconv *localeconv (void) throw (); 26201: # 141 "/usr/x86_64-linux-gnu/include/locale.h" 3 26201: extern locale_t newlocale (int __category_mask, const char *__locale, 26201: locale_t __base) throw (); 26201: 26201: 26201: 26201: 26201: 26201: #define LC_CTYPE_MASK (1 << __LC_CTYPE) 26201: #define LC_NUMERIC_MASK (1 << __LC_NUMERIC) 26201: #define LC_TIME_MASK (1 << __LC_TIME) 26201: #define LC_COLLATE_MASK (1 << __LC_COLLATE) 26201: #define LC_MONETARY_MASK (1 << __LC_MONETARY) 26201: #define LC_MESSAGES_MASK (1 << __LC_MESSAGES) 26201: #define LC_PAPER_MASK (1 << __LC_PAPER) 26201: #define LC_NAME_MASK (1 << __LC_NAME) 26201: #define LC_ADDRESS_MASK (1 << __LC_ADDRESS) 26201: #define LC_TELEPHONE_MASK (1 << __LC_TELEPHONE) 26201: #define LC_MEASUREMENT_MASK (1 << __LC_MEASUREMENT) 26201: #define LC_IDENTIFICATION_MASK (1 << __LC_IDENTIFICATION) 26201: #define LC_ALL_MASK (LC_CTYPE_MASK | LC_NUMERIC_MASK | LC_TIME_MASK | LC_COLLATE_MASK | LC_MONETARY_MASK | LC_MESSAGES_MASK | LC_PAPER_MASK | LC_NAME_MASK | LC_ADDRESS_MASK | LC_TELEPHONE_MASK | LC_MEASUREMENT_MASK | LC_IDENTIFICATION_MASK ) 26201: # 176 "/usr/x86_64-linux-gnu/include/locale.h" 3 26201: extern locale_t duplocale (locale_t __dataset) throw (); 26201: 26201: 26201: 26201: extern void freelocale (locale_t __dataset) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern locale_t uselocale (locale_t __dataset) throw (); 26201: 26201: 26201: 26201: #define LC_GLOBAL_LOCALE ((locale_t) -1L) 26201: 26201: 26201: 26201: } 26201: # 43 "/usr/x86_64-linux-gnu/include/c++/10/clocale" 2 3 26201: 26201: 26201: #define _GLIBCXX_CLOCALE 1 26201: 26201: 26201: #undef setlocale 26201: #undef localeconv 26201: 26201: namespace std 26201: { 26201: using ::lconv; 26201: using ::setlocale; 26201: using ::localeconv; 26201: } 26201: # 42 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++locale.h" 2 3 26201: 26201: #define _GLIBCXX_C_LOCALE_GNU 1 26201: 26201: #define _GLIBCXX_NUM_CATEGORIES 6 26201: 26201: 26201: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: extern "C" __typeof(uselocale) __uselocale; 26201: 26201: 26201: } 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: typedef __locale_t __c_locale; 26201: 26201: 26201: 26201: 26201: 26201: inline int 26201: __convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)), 26201: char* __out, 26201: const int __size __attribute__ ((__unused__)), 26201: const char* __fmt, ...) 26201: { 26201: 26201: __c_locale __old = __gnu_cxx::__uselocale(__cloc); 26201: # 88 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/c++locale.h" 3 26201: __builtin_va_list __args; 26201: __builtin_va_start(__args, __fmt); 26201: 26201: 26201: const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args); 26201: 26201: 26201: 26201: 26201: __builtin_va_end(__args); 26201: 26201: 26201: __gnu_cxx::__uselocale(__old); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: return __ret; 26201: } 26201: 26201: 26201: } 26201: # 41 "/usr/x86_64-linux-gnu/include/c++/10/bits/localefwd.h" 2 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/cctype" 1 3 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/cctype" 3 26201: 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/cctype" 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/ctype.h" 1 3 26201: # 23 "/usr/x86_64-linux-gnu/include/ctype.h" 3 26201: #define _CTYPE_H 1 26201: 26201: 26201: 26201: 26201: extern "C" { 26201: # 43 "/usr/x86_64-linux-gnu/include/ctype.h" 3 26201: #define _ISbit(bit) ((bit) < 8 ? ((1 << (bit)) << 8) : ((1 << (bit)) >> 8)) 26201: 26201: 26201: enum 26201: { 26201: _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), 26201: _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), 26201: _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), 26201: _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), 26201: _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), 26201: _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), 26201: _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), 26201: _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), 26201: _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), 26201: _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), 26201: _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), 26201: _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) 26201: }; 26201: # 79 "/usr/x86_64-linux-gnu/include/ctype.h" 3 26201: extern const unsigned short int **__ctype_b_loc (void) 26201: throw () __attribute__ ((__const__)); 26201: extern const __int32_t **__ctype_tolower_loc (void) 26201: throw () __attribute__ ((__const__)); 26201: extern const __int32_t **__ctype_toupper_loc (void) 26201: throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __isctype_f(type) __extern_inline int is ##type (int __c) __THROW { return (*__ctype_b_loc ())[(int) (__c)] & (unsigned short int) _IS ##type; } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __isascii(c) (((c) & ~0x7f) == 0) 26201: #define __toascii(c) ((c) & 0x7f) 26201: 26201: #define __exctype(name) extern int name (int) __THROW 26201: 26201: 26201: 26201: 26201: 26201: extern int isalnum (int) throw (); 26201: extern int isalpha (int) throw (); 26201: extern int iscntrl (int) throw (); 26201: extern int isdigit (int) throw (); 26201: extern int islower (int) throw (); 26201: extern int isgraph (int) throw (); 26201: extern int isprint (int) throw (); 26201: extern int ispunct (int) throw (); 26201: extern int isspace (int) throw (); 26201: extern int isupper (int) throw (); 26201: extern int isxdigit (int) throw (); 26201: 26201: 26201: 26201: extern int tolower (int __c) throw (); 26201: 26201: 26201: extern int toupper (int __c) throw (); 26201: 26201: 26201: 26201: 26201: extern int isblank (int) throw (); 26201: 26201: 26201: 26201: 26201: extern int isctype (int __c, int __mask) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int isascii (int __c) throw (); 26201: 26201: 26201: 26201: extern int toascii (int __c) throw (); 26201: 26201: 26201: 26201: extern int _toupper (int) throw (); 26201: extern int _tolower (int) throw (); 26201: 26201: 26201: 26201: #define __tobody(c,f,a,args) (__extension__ ({ int __res; if (sizeof (c) > 1) { if (__builtin_constant_p (c)) { int __c = (c); __res = __c < -128 || __c > 255 ? __c : (a)[__c]; } else __res = f args; } else __res = (a)[(int) (c)]; __res; })) 26201: # 241 "/usr/x86_64-linux-gnu/include/ctype.h" 3 26201: #define __isctype_l(c,type,locale) ((locale)->__ctype_b[(int) (c)] & (unsigned short int) type) 26201: 26201: 26201: #define __exctype_l(name) extern int name (int, locale_t) __THROW 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int isalnum_l (int, locale_t) throw (); 26201: extern int isalpha_l (int, locale_t) throw (); 26201: extern int iscntrl_l (int, locale_t) throw (); 26201: extern int isdigit_l (int, locale_t) throw (); 26201: extern int islower_l (int, locale_t) throw (); 26201: extern int isgraph_l (int, locale_t) throw (); 26201: extern int isprint_l (int, locale_t) throw (); 26201: extern int ispunct_l (int, locale_t) throw (); 26201: extern int isspace_l (int, locale_t) throw (); 26201: extern int isupper_l (int, locale_t) throw (); 26201: extern int isxdigit_l (int, locale_t) throw (); 26201: 26201: extern int isblank_l (int, locale_t) throw (); 26201: 26201: 26201: 26201: extern int __tolower_l (int __c, locale_t __l) throw (); 26201: extern int tolower_l (int __c, locale_t __l) throw (); 26201: 26201: 26201: extern int __toupper_l (int __c, locale_t __l) throw (); 26201: extern int toupper_l (int __c, locale_t __l) throw (); 26201: # 327 "/usr/x86_64-linux-gnu/include/ctype.h" 3 26201: } 26201: # 43 "/usr/x86_64-linux-gnu/include/c++/10/cctype" 2 3 26201: 26201: 26201: #define _GLIBCXX_CCTYPE 1 26201: 26201: 26201: #undef isalnum 26201: #undef isalpha 26201: #undef iscntrl 26201: #undef isdigit 26201: #undef isgraph 26201: #undef islower 26201: #undef isprint 26201: #undef ispunct 26201: #undef isspace 26201: #undef isupper 26201: #undef isxdigit 26201: #undef tolower 26201: #undef toupper 26201: 26201: namespace std 26201: { 26201: using ::isalnum; 26201: using ::isalpha; 26201: using ::iscntrl; 26201: using ::isdigit; 26201: using ::isgraph; 26201: using ::islower; 26201: using ::isprint; 26201: using ::ispunct; 26201: using ::isspace; 26201: using ::isupper; 26201: using ::isxdigit; 26201: using ::tolower; 26201: using ::toupper; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: #undef isblank 26201: 26201: namespace std 26201: { 26201: using ::isblank; 26201: } 26201: # 43 "/usr/x86_64-linux-gnu/include/c++/10/bits/localefwd.h" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 55 "/usr/x86_64-linux-gnu/include/c++/10/bits/localefwd.h" 3 26201: class locale; 26201: 26201: template 26201: bool 26201: has_facet(const locale&) throw(); 26201: 26201: template 26201: const _Facet& 26201: use_facet(const locale&); 26201: 26201: 26201: template 26201: bool 26201: isspace(_CharT, const locale&); 26201: 26201: template 26201: bool 26201: isprint(_CharT, const locale&); 26201: 26201: template 26201: bool 26201: iscntrl(_CharT, const locale&); 26201: 26201: template 26201: bool 26201: isupper(_CharT, const locale&); 26201: 26201: template 26201: bool 26201: islower(_CharT, const locale&); 26201: 26201: template 26201: bool 26201: isalpha(_CharT, const locale&); 26201: 26201: template 26201: bool 26201: isdigit(_CharT, const locale&); 26201: 26201: template 26201: bool 26201: ispunct(_CharT, const locale&); 26201: 26201: template 26201: bool 26201: isxdigit(_CharT, const locale&); 26201: 26201: template 26201: bool 26201: isalnum(_CharT, const locale&); 26201: 26201: template 26201: bool 26201: isgraph(_CharT, const locale&); 26201: 26201: 26201: template 26201: bool 26201: isblank(_CharT, const locale&); 26201: 26201: 26201: template 26201: _CharT 26201: toupper(_CharT, const locale&); 26201: 26201: template 26201: _CharT 26201: tolower(_CharT, const locale&); 26201: 26201: 26201: class ctype_base; 26201: template 26201: class ctype; 26201: template<> class ctype; 26201: 26201: template<> class ctype; 26201: 26201: template 26201: class ctype_byname; 26201: 26201: 26201: class codecvt_base; 26201: template 26201: class codecvt; 26201: template<> class codecvt; 26201: 26201: template<> class codecvt; 26201: 26201: 26201: template<> class codecvt; 26201: template<> class codecvt; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: class codecvt_byname; 26201: 26201: 26201: 26201: template > 26201: class num_get; 26201: template > 26201: class num_put; 26201: 26201: namespace __cxx11 { 26201: template class numpunct; 26201: template class numpunct_byname; 26201: } 26201: 26201: namespace __cxx11 { 26201: 26201: template 26201: class collate; 26201: template 26201: class collate_byname; 26201: } 26201: 26201: 26201: class time_base; 26201: namespace __cxx11 { 26201: template > 26201: class time_get; 26201: template > 26201: class time_get_byname; 26201: } 26201: template > 26201: class time_put; 26201: template > 26201: class time_put_byname; 26201: 26201: 26201: class money_base; 26201: namespace __cxx11 { 26201: template > 26201: class money_get; 26201: template > 26201: class money_put; 26201: } 26201: namespace __cxx11 { 26201: template 26201: class moneypunct; 26201: template 26201: class moneypunct_byname; 26201: } 26201: 26201: 26201: class messages_base; 26201: namespace __cxx11 { 26201: template 26201: class messages; 26201: template 26201: class messages_byname; 26201: } 26201: 26201: 26201: } 26201: # 44 "/usr/x86_64-linux-gnu/include/c++/10/string" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/ostream_insert.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/ostream_insert.h" 3 26201: #define _OSTREAM_INSERT_H 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/ostream_insert.h" 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/cxxabi_forced.h" 1 3 26201: # 32 "/usr/x86_64-linux-gnu/include/c++/10/bits/cxxabi_forced.h" 3 26201: #define _CXXABI_FORCED_H 1 26201: 26201: 26201: # 35 "/usr/x86_64-linux-gnu/include/c++/10/bits/cxxabi_forced.h" 3 26201: 26201: #pragma GCC visibility push(default) 26201: 26201: 26201: namespace __cxxabiv1 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: class __forced_unwind 26201: { 26201: virtual ~__forced_unwind() throw(); 26201: 26201: 26201: virtual void __pure_dummy() = 0; 26201: }; 26201: } 26201: 26201: 26201: #pragma GCC visibility pop 26201: # 37 "/usr/x86_64-linux-gnu/include/c++/10/bits/ostream_insert.h" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: template 26201: inline void 26201: __ostream_write(basic_ostream<_CharT, _Traits>& __out, 26201: const _CharT* __s, streamsize __n) 26201: { 26201: typedef basic_ostream<_CharT, _Traits> __ostream_type; 26201: typedef typename __ostream_type::ios_base __ios_base; 26201: 26201: const streamsize __put = __out.rdbuf()->sputn(__s, __n); 26201: if (__put != __n) 26201: __out.setstate(__ios_base::badbit); 26201: } 26201: 26201: template 26201: inline void 26201: __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n) 26201: { 26201: typedef basic_ostream<_CharT, _Traits> __ostream_type; 26201: typedef typename __ostream_type::ios_base __ios_base; 26201: 26201: const _CharT __c = __out.fill(); 26201: for (; __n > 0; --__n) 26201: { 26201: const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c); 26201: if (_Traits::eq_int_type(__put, _Traits::eof())) 26201: { 26201: __out.setstate(__ios_base::badbit); 26201: break; 26201: } 26201: } 26201: } 26201: 26201: template 26201: basic_ostream<_CharT, _Traits>& 26201: __ostream_insert(basic_ostream<_CharT, _Traits>& __out, 26201: const _CharT* __s, streamsize __n) 26201: { 26201: typedef basic_ostream<_CharT, _Traits> __ostream_type; 26201: typedef typename __ostream_type::ios_base __ios_base; 26201: 26201: typename __ostream_type::sentry __cerb(__out); 26201: if (__cerb) 26201: { 26201: try 26201: { 26201: const streamsize __w = __out.width(); 26201: if (__w > __n) 26201: { 26201: const bool __left = ((__out.flags() 26201: & __ios_base::adjustfield) 26201: == __ios_base::left); 26201: if (!__left) 26201: __ostream_fill(__out, __w - __n); 26201: if (__out.good()) 26201: __ostream_write(__out, __s, __n); 26201: if (__left && __out.good()) 26201: __ostream_fill(__out, __w - __n); 26201: } 26201: else 26201: __ostream_write(__out, __s, __n); 26201: __out.width(0); 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: __out._M_setstate(__ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { __out._M_setstate(__ios_base::badbit); } 26201: } 26201: return __out; 26201: } 26201: 26201: 26201: 26201: 26201: extern template ostream& __ostream_insert(ostream&, const char*, streamsize); 26201: 26201: 26201: extern template wostream& __ostream_insert(wostream&, const wchar_t*, 26201: streamsize); 26201: 26201: 26201: 26201: 26201: } 26201: # 45 "/usr/x86_64-linux-gnu/include/c++/10/string" 2 3 26201: # 55 "/usr/x86_64-linux-gnu/include/c++/10/string" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 1 3 26201: # 35 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: #define _BASIC_STRING_H 1 26201: 26201: 26201: # 38 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/ext/atomicity.h" 1 3 26201: # 30 "/usr/x86_64-linux-gnu/include/c++/10/ext/atomicity.h" 3 26201: #define _GLIBCXX_ATOMICITY_H 1 26201: 26201: 26201: # 33 "/usr/x86_64-linux-gnu/include/c++/10/ext/atomicity.h" 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/gthr.h" 1 3 26201: # 27 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/gthr.h" 3 26201: #define _GLIBCXX_GCC_GTHR_H 26201: 26201: 26201: #pragma GCC visibility push(default) 26201: # 145 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/gthr.h" 3 26201: #define _GLIBCXX_GTHREAD_USE_WEAK 1 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/gthr-default.h" 1 3 26201: # 27 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/gthr-default.h" 3 26201: #define _GLIBCXX_GCC_GTHR_POSIX_H 26201: 26201: 26201: 26201: 26201: #define __GTHREADS 1 26201: #define __GTHREADS_CXX0X 1 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/pthread.h" 1 3 26201: # 19 "/usr/x86_64-linux-gnu/include/pthread.h" 3 26201: #define _PTHREAD_H 1 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/sched.h" 1 3 26201: # 20 "/usr/x86_64-linux-gnu/include/sched.h" 3 26201: #define _SCHED_H 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __need_size_t 26201: #define __need_NULL 26201: # 1 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 1 3 4 26201: # 155 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_ptrdiff_t 26201: # 231 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_size_t 26201: # 340 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_wchar_t 26201: # 390 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef NULL 26201: 26201: #define NULL __null 26201: # 401 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_NULL 26201: 26201: 26201: 26201: 26201: #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER) 26201: # 30 "/usr/x86_64-linux-gnu/include/sched.h" 2 3 26201: # 43 "/usr/x86_64-linux-gnu/include/sched.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/sched.h" 1 3 26201: # 21 "/usr/x86_64-linux-gnu/include/bits/sched.h" 3 26201: #define _BITS_SCHED_H 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define SCHED_OTHER 0 26201: #define SCHED_FIFO 1 26201: #define SCHED_RR 2 26201: 26201: #define SCHED_BATCH 3 26201: #define SCHED_ISO 4 26201: #define SCHED_IDLE 5 26201: #define SCHED_DEADLINE 6 26201: 26201: #define SCHED_RESET_ON_FORK 0x40000000 26201: 26201: 26201: 26201: 26201: #define CSIGNAL 0x000000ff 26201: #define CLONE_VM 0x00000100 26201: #define CLONE_FS 0x00000200 26201: #define CLONE_FILES 0x00000400 26201: #define CLONE_SIGHAND 0x00000800 26201: #define CLONE_PIDFD 0x00001000 26201: 26201: #define CLONE_PTRACE 0x00002000 26201: #define CLONE_VFORK 0x00004000 26201: 26201: #define CLONE_PARENT 0x00008000 26201: 26201: #define CLONE_THREAD 0x00010000 26201: #define CLONE_NEWNS 0x00020000 26201: #define CLONE_SYSVSEM 0x00040000 26201: #define CLONE_SETTLS 0x00080000 26201: #define CLONE_PARENT_SETTID 0x00100000 26201: 26201: #define CLONE_CHILD_CLEARTID 0x00200000 26201: 26201: #define CLONE_DETACHED 0x00400000 26201: #define CLONE_UNTRACED 0x00800000 26201: 26201: #define CLONE_CHILD_SETTID 0x01000000 26201: 26201: #define CLONE_NEWCGROUP 0x02000000 26201: #define CLONE_NEWUTS 0x04000000 26201: #define CLONE_NEWIPC 0x08000000 26201: #define CLONE_NEWUSER 0x10000000 26201: #define CLONE_NEWPID 0x20000000 26201: #define CLONE_NEWNET 0x40000000 26201: #define CLONE_IO 0x80000000 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types/struct_sched_param.h" 1 3 26201: # 20 "/usr/x86_64-linux-gnu/include/bits/types/struct_sched_param.h" 3 26201: #define _BITS_TYPES_STRUCT_SCHED_PARAM 1 26201: 26201: 26201: struct sched_param 26201: { 26201: int sched_priority; 26201: }; 26201: # 77 "/usr/x86_64-linux-gnu/include/bits/sched.h" 2 3 26201: 26201: extern "C" { 26201: 26201: 26201: 26201: extern int clone (int (*__fn) (void *__arg), void *__child_stack, 26201: int __flags, void *__arg, ...) throw (); 26201: 26201: 26201: extern int unshare (int __flags) throw (); 26201: 26201: 26201: extern int sched_getcpu (void) throw (); 26201: 26201: 26201: extern int getcpu (unsigned int *, unsigned int *) throw (); 26201: 26201: 26201: extern int setns (int __fd, int __nstype) throw (); 26201: 26201: 26201: } 26201: # 44 "/usr/x86_64-linux-gnu/include/sched.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/cpu-set.h" 1 3 26201: # 21 "/usr/x86_64-linux-gnu/include/bits/cpu-set.h" 3 26201: #define _BITS_CPU_SET_H 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __CPU_SETSIZE 1024 26201: #define __NCPUBITS (8 * sizeof (__cpu_mask)) 26201: 26201: 26201: typedef unsigned long int __cpu_mask; 26201: 26201: 26201: #define __CPUELT(cpu) ((cpu) / __NCPUBITS) 26201: #define __CPUMASK(cpu) ((__cpu_mask) 1 << ((cpu) % __NCPUBITS)) 26201: 26201: 26201: typedef struct 26201: { 26201: __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; 26201: } cpu_set_t; 26201: 26201: 26201: 26201: #define __CPU_ZERO_S(setsize,cpusetp) do __builtin_memset (cpusetp, '\0', setsize); while (0) 26201: # 58 "/usr/x86_64-linux-gnu/include/bits/cpu-set.h" 3 26201: #define __CPU_SET_S(cpu,setsize,cpusetp) (__extension__ ({ size_t __cpu = (cpu); __cpu / 8 < (setsize) ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] |= __CPUMASK (__cpu)) : 0; })) 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __CPU_CLR_S(cpu,setsize,cpusetp) (__extension__ ({ size_t __cpu = (cpu); __cpu / 8 < (setsize) ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] &= ~__CPUMASK (__cpu)) : 0; })) 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __CPU_ISSET_S(cpu,setsize,cpusetp) (__extension__ ({ size_t __cpu = (cpu); __cpu / 8 < (setsize) ? ((((const __cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] & __CPUMASK (__cpu))) != 0 : 0; })) 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __CPU_COUNT_S(setsize,cpusetp) __sched_cpucount (setsize, cpusetp) 26201: 26201: 26201: 26201: #define __CPU_EQUAL_S(setsize,cpusetp1,cpusetp2) (__builtin_memcmp (cpusetp1, cpusetp2, setsize) == 0) 26201: # 99 "/usr/x86_64-linux-gnu/include/bits/cpu-set.h" 3 26201: #define __CPU_OP_S(setsize,destset,srcset1,srcset2,op) (__extension__ ({ cpu_set_t *__dest = (destset); const __cpu_mask *__arr1 = (srcset1)->__bits; const __cpu_mask *__arr2 = (srcset2)->__bits; size_t __imax = (setsize) / sizeof (__cpu_mask); size_t __i; for (__i = 0; __i < __imax; ++__i) ((__cpu_mask *) __dest->__bits)[__i] = __arr1[__i] op __arr2[__i]; __dest; })) 26201: # 110 "/usr/x86_64-linux-gnu/include/bits/cpu-set.h" 3 26201: #define __CPU_ALLOC_SIZE(count) ((((count) + __NCPUBITS - 1) / __NCPUBITS) * sizeof (__cpu_mask)) 26201: 26201: #define __CPU_ALLOC(count) __sched_cpualloc (count) 26201: #define __CPU_FREE(cpuset) __sched_cpufree (cpuset) 26201: 26201: extern "C" { 26201: 26201: extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) 26201: throw (); 26201: extern cpu_set_t *__sched_cpualloc (size_t __count) throw () __attribute__ ((__warn_unused_result__)); 26201: extern void __sched_cpufree (cpu_set_t *__set) throw (); 26201: 26201: } 26201: # 45 "/usr/x86_64-linux-gnu/include/sched.h" 2 3 26201: 26201: 26201: #define sched_priority sched_priority 26201: #define __sched_priority sched_priority 26201: 26201: 26201: extern "C" { 26201: 26201: 26201: extern int sched_setparam (__pid_t __pid, const struct sched_param *__param) 26201: throw (); 26201: 26201: 26201: extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw (); 26201: 26201: 26201: extern int sched_setscheduler (__pid_t __pid, int __policy, 26201: const struct sched_param *__param) throw (); 26201: 26201: 26201: extern int sched_getscheduler (__pid_t __pid) throw (); 26201: 26201: 26201: extern int sched_yield (void) throw (); 26201: 26201: 26201: extern int sched_get_priority_max (int __algorithm) throw (); 26201: 26201: 26201: extern int sched_get_priority_min (int __algorithm) throw (); 26201: 26201: 26201: extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw (); 26201: 26201: 26201: 26201: 26201: #define CPU_SETSIZE __CPU_SETSIZE 26201: #define CPU_SET(cpu,cpusetp) __CPU_SET_S (cpu, sizeof (cpu_set_t), cpusetp) 26201: #define CPU_CLR(cpu,cpusetp) __CPU_CLR_S (cpu, sizeof (cpu_set_t), cpusetp) 26201: #define CPU_ISSET(cpu,cpusetp) __CPU_ISSET_S (cpu, sizeof (cpu_set_t), cpusetp) 26201: 26201: #define CPU_ZERO(cpusetp) __CPU_ZERO_S (sizeof (cpu_set_t), cpusetp) 26201: #define CPU_COUNT(cpusetp) __CPU_COUNT_S (sizeof (cpu_set_t), cpusetp) 26201: 26201: #define CPU_SET_S(cpu,setsize,cpusetp) __CPU_SET_S (cpu, setsize, cpusetp) 26201: #define CPU_CLR_S(cpu,setsize,cpusetp) __CPU_CLR_S (cpu, setsize, cpusetp) 26201: #define CPU_ISSET_S(cpu,setsize,cpusetp) __CPU_ISSET_S (cpu, setsize, cpusetp) 26201: 26201: #define CPU_ZERO_S(setsize,cpusetp) __CPU_ZERO_S (setsize, cpusetp) 26201: #define CPU_COUNT_S(setsize,cpusetp) __CPU_COUNT_S (setsize, cpusetp) 26201: 26201: #define CPU_EQUAL(cpusetp1,cpusetp2) __CPU_EQUAL_S (sizeof (cpu_set_t), cpusetp1, cpusetp2) 26201: 26201: #define CPU_EQUAL_S(setsize,cpusetp1,cpusetp2) __CPU_EQUAL_S (setsize, cpusetp1, cpusetp2) 26201: 26201: 26201: #define CPU_AND(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, &) 26201: 26201: #define CPU_OR(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, |) 26201: 26201: #define CPU_XOR(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, ^) 26201: 26201: #define CPU_AND_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, &) 26201: 26201: #define CPU_OR_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, |) 26201: 26201: #define CPU_XOR_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, ^) 26201: 26201: 26201: #define CPU_ALLOC_SIZE(count) __CPU_ALLOC_SIZE (count) 26201: #define CPU_ALLOC(count) __CPU_ALLOC (count) 26201: #define CPU_FREE(cpuset) __CPU_FREE (cpuset) 26201: 26201: 26201: 26201: extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, 26201: const cpu_set_t *__cpuset) throw (); 26201: 26201: 26201: extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, 26201: cpu_set_t *__cpuset) throw (); 26201: 26201: 26201: } 26201: # 23 "/usr/x86_64-linux-gnu/include/pthread.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/time.h" 1 3 26201: # 23 "/usr/x86_64-linux-gnu/include/time.h" 3 26201: #define _TIME_H 1 26201: 26201: 26201: 26201: #define __need_size_t 26201: #define __need_NULL 26201: # 1 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 1 3 4 26201: # 155 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_ptrdiff_t 26201: # 231 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_size_t 26201: # 340 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_wchar_t 26201: # 390 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef NULL 26201: 26201: #define NULL __null 26201: # 401 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_NULL 26201: 26201: 26201: 26201: 26201: #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER) 26201: # 30 "/usr/x86_64-linux-gnu/include/time.h" 2 3 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/time.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/time.h" 3 26201: #define _BITS_TIME_H 1 26201: # 34 "/usr/x86_64-linux-gnu/include/bits/time.h" 3 26201: #define CLOCKS_PER_SEC ((__clock_t) 1000000) 26201: # 46 "/usr/x86_64-linux-gnu/include/bits/time.h" 3 26201: #define CLOCK_REALTIME 0 26201: 26201: #define CLOCK_MONOTONIC 1 26201: 26201: #define CLOCK_PROCESS_CPUTIME_ID 2 26201: 26201: #define CLOCK_THREAD_CPUTIME_ID 3 26201: 26201: #define CLOCK_MONOTONIC_RAW 4 26201: 26201: #define CLOCK_REALTIME_COARSE 5 26201: 26201: #define CLOCK_MONOTONIC_COARSE 6 26201: 26201: #define CLOCK_BOOTTIME 7 26201: 26201: #define CLOCK_REALTIME_ALARM 8 26201: 26201: #define CLOCK_BOOTTIME_ALARM 9 26201: 26201: #define CLOCK_TAI 11 26201: 26201: 26201: #define TIMER_ABSTIME 1 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/timex.h" 1 3 26201: # 19 "/usr/x86_64-linux-gnu/include/bits/timex.h" 3 26201: #define _BITS_TIMEX_H 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: struct timex 26201: { 26201: unsigned int modes; 26201: __syscall_slong_t offset; 26201: __syscall_slong_t freq; 26201: __syscall_slong_t maxerror; 26201: __syscall_slong_t esterror; 26201: int status; 26201: __syscall_slong_t constant; 26201: __syscall_slong_t precision; 26201: __syscall_slong_t tolerance; 26201: struct timeval time; 26201: __syscall_slong_t tick; 26201: __syscall_slong_t ppsfreq; 26201: __syscall_slong_t jitter; 26201: int shift; 26201: __syscall_slong_t stabil; 26201: __syscall_slong_t jitcnt; 26201: __syscall_slong_t calcnt; 26201: __syscall_slong_t errcnt; 26201: __syscall_slong_t stbcnt; 26201: 26201: int tai; 26201: 26201: 26201: int :32; int :32; int :32; int :32; 26201: int :32; int :32; int :32; int :32; 26201: int :32; int :32; int :32; 26201: }; 26201: 26201: 26201: #define ADJ_OFFSET 0x0001 26201: #define ADJ_FREQUENCY 0x0002 26201: #define ADJ_MAXERROR 0x0004 26201: #define ADJ_ESTERROR 0x0008 26201: #define ADJ_STATUS 0x0010 26201: #define ADJ_TIMECONST 0x0020 26201: #define ADJ_TAI 0x0080 26201: #define ADJ_SETOFFSET 0x0100 26201: #define ADJ_MICRO 0x1000 26201: #define ADJ_NANO 0x2000 26201: #define ADJ_TICK 0x4000 26201: #define ADJ_OFFSET_SINGLESHOT 0x8001 26201: #define ADJ_OFFSET_SS_READ 0xa001 26201: 26201: 26201: #define MOD_OFFSET ADJ_OFFSET 26201: #define MOD_FREQUENCY ADJ_FREQUENCY 26201: #define MOD_MAXERROR ADJ_MAXERROR 26201: #define MOD_ESTERROR ADJ_ESTERROR 26201: #define MOD_STATUS ADJ_STATUS 26201: #define MOD_TIMECONST ADJ_TIMECONST 26201: #define MOD_CLKB ADJ_TICK 26201: #define MOD_CLKA ADJ_OFFSET_SINGLESHOT 26201: #define MOD_TAI ADJ_TAI 26201: #define MOD_MICRO ADJ_MICRO 26201: #define MOD_NANO ADJ_NANO 26201: 26201: 26201: 26201: #define STA_PLL 0x0001 26201: #define STA_PPSFREQ 0x0002 26201: #define STA_PPSTIME 0x0004 26201: #define STA_FLL 0x0008 26201: 26201: #define STA_INS 0x0010 26201: #define STA_DEL 0x0020 26201: #define STA_UNSYNC 0x0040 26201: #define STA_FREQHOLD 0x0080 26201: 26201: #define STA_PPSSIGNAL 0x0100 26201: #define STA_PPSJITTER 0x0200 26201: #define STA_PPSWANDER 0x0400 26201: #define STA_PPSERROR 0x0800 26201: 26201: #define STA_CLOCKERR 0x1000 26201: #define STA_NANO 0x2000 26201: #define STA_MODE 0x4000 26201: #define STA_CLK 0x8000 26201: 26201: 26201: #define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK) 26201: # 74 "/usr/x86_64-linux-gnu/include/bits/time.h" 2 3 26201: 26201: extern "C" { 26201: 26201: 26201: extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) throw (); 26201: 26201: } 26201: # 34 "/usr/x86_64-linux-gnu/include/time.h" 2 3 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types/struct_tm.h" 1 3 26201: 26201: #define __struct_tm_defined 1 26201: 26201: 26201: 26201: 26201: struct tm 26201: { 26201: int tm_sec; 26201: int tm_min; 26201: int tm_hour; 26201: int tm_mday; 26201: int tm_mon; 26201: int tm_year; 26201: int tm_wday; 26201: int tm_yday; 26201: int tm_isdst; 26201: 26201: 26201: long int tm_gmtoff; 26201: const char *tm_zone; 26201: 26201: 26201: 26201: 26201: }; 26201: # 40 "/usr/x86_64-linux-gnu/include/time.h" 2 3 26201: # 48 "/usr/x86_64-linux-gnu/include/time.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types/struct_itimerspec.h" 1 3 26201: 26201: #define __itimerspec_defined 1 26201: 26201: 26201: 26201: 26201: 26201: struct itimerspec 26201: { 26201: struct timespec it_interval; 26201: struct timespec it_value; 26201: }; 26201: # 49 "/usr/x86_64-linux-gnu/include/time.h" 2 3 26201: struct sigevent; 26201: # 65 "/usr/x86_64-linux-gnu/include/time.h" 3 26201: #define TIME_UTC 1 26201: 26201: 26201: extern "C" { 26201: 26201: 26201: 26201: extern clock_t clock (void) throw (); 26201: 26201: 26201: extern time_t time (time_t *__timer) throw (); 26201: 26201: 26201: extern double difftime (time_t __time1, time_t __time0) 26201: throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern time_t mktime (struct tm *__tp) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern size_t strftime (char *__restrict __s, size_t __maxsize, 26201: const char *__restrict __format, 26201: const struct tm *__restrict __tp) throw (); 26201: 26201: 26201: 26201: 26201: extern char *strptime (const char *__restrict __s, 26201: const char *__restrict __fmt, struct tm *__tp) 26201: throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern size_t strftime_l (char *__restrict __s, size_t __maxsize, 26201: const char *__restrict __format, 26201: const struct tm *__restrict __tp, 26201: locale_t __loc) throw (); 26201: 26201: 26201: 26201: extern char *strptime_l (const char *__restrict __s, 26201: const char *__restrict __fmt, struct tm *__tp, 26201: locale_t __loc) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern struct tm *gmtime (const time_t *__timer) throw (); 26201: 26201: 26201: 26201: extern struct tm *localtime (const time_t *__timer) throw (); 26201: 26201: 26201: 26201: 26201: extern struct tm *gmtime_r (const time_t *__restrict __timer, 26201: struct tm *__restrict __tp) throw (); 26201: 26201: 26201: 26201: extern struct tm *localtime_r (const time_t *__restrict __timer, 26201: struct tm *__restrict __tp) throw (); 26201: 26201: 26201: 26201: 26201: extern char *asctime (const struct tm *__tp) throw (); 26201: 26201: 26201: extern char *ctime (const time_t *__timer) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern char *asctime_r (const struct tm *__restrict __tp, 26201: char *__restrict __buf) throw (); 26201: 26201: 26201: extern char *ctime_r (const time_t *__restrict __timer, 26201: char *__restrict __buf) throw (); 26201: 26201: 26201: 26201: 26201: extern char *__tzname[2]; 26201: extern int __daylight; 26201: extern long int __timezone; 26201: 26201: 26201: 26201: 26201: extern char *tzname[2]; 26201: 26201: 26201: 26201: extern void tzset (void) throw (); 26201: 26201: 26201: 26201: extern int daylight; 26201: extern long int timezone; 26201: 26201: 26201: 26201: 26201: 26201: #define __isleap(year) ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0)) 26201: # 190 "/usr/x86_64-linux-gnu/include/time.h" 3 26201: extern time_t timegm (struct tm *__tp) throw (); 26201: 26201: 26201: extern time_t timelocal (struct tm *__tp) throw (); 26201: 26201: 26201: extern int dysize (int __year) throw () __attribute__ ((__const__)); 26201: # 205 "/usr/x86_64-linux-gnu/include/time.h" 3 26201: extern int nanosleep (const struct timespec *__requested_time, 26201: struct timespec *__remaining); 26201: 26201: 26201: 26201: extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw (); 26201: 26201: 26201: extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw (); 26201: 26201: 26201: extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) 26201: throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int clock_nanosleep (clockid_t __clock_id, int __flags, 26201: const struct timespec *__req, 26201: struct timespec *__rem); 26201: 26201: 26201: extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw (); 26201: 26201: 26201: 26201: 26201: extern int timer_create (clockid_t __clock_id, 26201: struct sigevent *__restrict __evp, 26201: timer_t *__restrict __timerid) throw (); 26201: 26201: 26201: extern int timer_delete (timer_t __timerid) throw (); 26201: 26201: 26201: extern int timer_settime (timer_t __timerid, int __flags, 26201: const struct itimerspec *__restrict __value, 26201: struct itimerspec *__restrict __ovalue) throw (); 26201: 26201: 26201: extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) 26201: throw (); 26201: 26201: 26201: extern int timer_getoverrun (timer_t __timerid) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern int timespec_get (struct timespec *__ts, int __base) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: # 274 "/usr/x86_64-linux-gnu/include/time.h" 3 26201: extern int getdate_err; 26201: # 283 "/usr/x86_64-linux-gnu/include/time.h" 3 26201: extern struct tm *getdate (const char *__string); 26201: # 297 "/usr/x86_64-linux-gnu/include/time.h" 3 26201: extern int getdate_r (const char *__restrict __string, 26201: struct tm *__restrict __resbufp); 26201: 26201: 26201: } 26201: # 24 "/usr/x86_64-linux-gnu/include/pthread.h" 2 3 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/setjmp.h" 1 3 26201: # 20 "/usr/x86_64-linux-gnu/include/bits/setjmp.h" 3 26201: #define _BITS_SETJMP_H 1 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/wordsize.h" 1 3 26201: 26201: 26201: 26201: #define __WORDSIZE 64 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __WORDSIZE_TIME64_COMPAT32 1 26201: 26201: #define __SYSCALL_WORDSIZE 64 26201: # 27 "/usr/x86_64-linux-gnu/include/bits/setjmp.h" 2 3 26201: 26201: 26201: 26201: 26201: typedef long int __jmp_buf[8]; 26201: # 28 "/usr/x86_64-linux-gnu/include/pthread.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/wordsize.h" 1 3 26201: 26201: 26201: 26201: #define __WORDSIZE 64 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __WORDSIZE_TIME64_COMPAT32 1 26201: 26201: #define __SYSCALL_WORDSIZE 64 26201: # 29 "/usr/x86_64-linux-gnu/include/pthread.h" 2 3 26201: 26201: 26201: 26201: 26201: enum 26201: { 26201: PTHREAD_CREATE_JOINABLE, 26201: #define PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_JOINABLE 26201: PTHREAD_CREATE_DETACHED 26201: #define PTHREAD_CREATE_DETACHED PTHREAD_CREATE_DETACHED 26201: }; 26201: 26201: 26201: 26201: enum 26201: { 26201: PTHREAD_MUTEX_TIMED_NP, 26201: PTHREAD_MUTEX_RECURSIVE_NP, 26201: PTHREAD_MUTEX_ERRORCHECK_NP, 26201: PTHREAD_MUTEX_ADAPTIVE_NP 26201: 26201: , 26201: PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, 26201: PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, 26201: PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, 26201: PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL 26201: 26201: 26201: 26201: , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP 26201: 26201: }; 26201: 26201: 26201: 26201: 26201: enum 26201: { 26201: PTHREAD_MUTEX_STALLED, 26201: PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, 26201: PTHREAD_MUTEX_ROBUST, 26201: PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: enum 26201: { 26201: PTHREAD_PRIO_NONE, 26201: PTHREAD_PRIO_INHERIT, 26201: PTHREAD_PRIO_PROTECT 26201: }; 26201: 26201: 26201: 26201: #define PTHREAD_MUTEX_INITIALIZER { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_TIMED_NP) } } 26201: 26201: 26201: #define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_RECURSIVE_NP) } } 26201: 26201: #define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_ERRORCHECK_NP) } } 26201: 26201: #define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_ADAPTIVE_NP) } } 26201: 26201: 26201: 26201: 26201: 26201: 26201: enum 26201: { 26201: PTHREAD_RWLOCK_PREFER_READER_NP, 26201: PTHREAD_RWLOCK_PREFER_WRITER_NP, 26201: PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, 26201: PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP 26201: }; 26201: 26201: 26201: 26201: #define PTHREAD_RWLOCK_INITIALIZER { { __PTHREAD_RWLOCK_INITIALIZER (PTHREAD_RWLOCK_DEFAULT_NP) } } 26201: 26201: 26201: #define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP { { __PTHREAD_RWLOCK_INITIALIZER (PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP) } } 26201: 26201: 26201: 26201: 26201: 26201: 26201: enum 26201: { 26201: PTHREAD_INHERIT_SCHED, 26201: #define PTHREAD_INHERIT_SCHED PTHREAD_INHERIT_SCHED 26201: PTHREAD_EXPLICIT_SCHED 26201: #define PTHREAD_EXPLICIT_SCHED PTHREAD_EXPLICIT_SCHED 26201: }; 26201: 26201: 26201: 26201: enum 26201: { 26201: PTHREAD_SCOPE_SYSTEM, 26201: #define PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_SYSTEM 26201: PTHREAD_SCOPE_PROCESS 26201: #define PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_PROCESS 26201: }; 26201: 26201: 26201: 26201: enum 26201: { 26201: PTHREAD_PROCESS_PRIVATE, 26201: #define PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_PRIVATE 26201: PTHREAD_PROCESS_SHARED 26201: #define PTHREAD_PROCESS_SHARED PTHREAD_PROCESS_SHARED 26201: }; 26201: 26201: 26201: 26201: 26201: #define PTHREAD_COND_INITIALIZER { { {0}, {0}, {0, 0}, {0, 0}, 0, 0, {0, 0} } } 26201: 26201: 26201: 26201: struct _pthread_cleanup_buffer 26201: { 26201: void (*__routine) (void *); 26201: void *__arg; 26201: int __canceltype; 26201: struct _pthread_cleanup_buffer *__prev; 26201: }; 26201: 26201: 26201: enum 26201: { 26201: PTHREAD_CANCEL_ENABLE, 26201: #define PTHREAD_CANCEL_ENABLE PTHREAD_CANCEL_ENABLE 26201: PTHREAD_CANCEL_DISABLE 26201: #define PTHREAD_CANCEL_DISABLE PTHREAD_CANCEL_DISABLE 26201: }; 26201: enum 26201: { 26201: PTHREAD_CANCEL_DEFERRED, 26201: #define PTHREAD_CANCEL_DEFERRED PTHREAD_CANCEL_DEFERRED 26201: PTHREAD_CANCEL_ASYNCHRONOUS 26201: #define PTHREAD_CANCEL_ASYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS 26201: }; 26201: #define PTHREAD_CANCELED ((void *) -1) 26201: 26201: 26201: 26201: #define PTHREAD_ONCE_INIT 0 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define PTHREAD_BARRIER_SERIAL_THREAD -1 26201: 26201: 26201: 26201: extern "C" { 26201: 26201: 26201: 26201: 26201: extern int pthread_create (pthread_t *__restrict __newthread, 26201: const pthread_attr_t *__restrict __attr, 26201: void *(*__start_routine) (void *), 26201: void *__restrict __arg) throw () __attribute__ ((__nonnull__ (1, 3))); 26201: 26201: 26201: 26201: 26201: 26201: extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int pthread_join (pthread_t __th, void **__thread_return); 26201: 26201: 26201: 26201: 26201: extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, 26201: const struct timespec *__abstime); 26201: # 238 "/usr/x86_64-linux-gnu/include/pthread.h" 3 26201: extern int pthread_clockjoin_np (pthread_t __th, void **__thread_return, 26201: clockid_t __clockid, 26201: const struct timespec *__abstime); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int pthread_detach (pthread_t __th) throw (); 26201: 26201: 26201: 26201: extern pthread_t pthread_self (void) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) 26201: throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int pthread_attr_init (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_attr_destroy (pthread_attr_t *__attr) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr, 26201: int *__detachstate) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, 26201: int __detachstate) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: extern int pthread_attr_getguardsize (const pthread_attr_t *__attr, 26201: size_t *__guardsize) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern int pthread_attr_setguardsize (pthread_attr_t *__attr, 26201: size_t __guardsize) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr, 26201: struct sched_param *__restrict __param) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, 26201: const struct sched_param *__restrict 26201: __param) throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict 26201: __attr, int *__restrict __policy) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict 26201: __attr, int *__restrict __inherit) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, 26201: int __inherit) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr, 26201: int *__restrict __scope) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict 26201: __attr, void **__restrict __stackaddr) 26201: throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__)); 26201: 26201: 26201: 26201: 26201: 26201: extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, 26201: void *__stackaddr) 26201: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)); 26201: 26201: 26201: extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict 26201: __attr, size_t *__restrict __stacksize) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: 26201: 26201: extern int pthread_attr_setstacksize (pthread_attr_t *__attr, 26201: size_t __stacksize) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr, 26201: void **__restrict __stackaddr, 26201: size_t *__restrict __stacksize) 26201: throw () __attribute__ ((__nonnull__ (1, 2, 3))); 26201: 26201: 26201: 26201: 26201: extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, 26201: size_t __stacksize) throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: 26201: 26201: extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, 26201: size_t __cpusetsize, 26201: const cpu_set_t *__cpuset) 26201: throw () __attribute__ ((__nonnull__ (1, 3))); 26201: 26201: 26201: 26201: extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr, 26201: size_t __cpusetsize, 26201: cpu_set_t *__cpuset) 26201: throw () __attribute__ ((__nonnull__ (1, 3))); 26201: 26201: 26201: extern int pthread_getattr_default_np (pthread_attr_t *__attr) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: extern int pthread_setattr_default_np (const pthread_attr_t *__attr) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: 26201: extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) 26201: throw () __attribute__ ((__nonnull__ (2))); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int pthread_setschedparam (pthread_t __target_thread, int __policy, 26201: const struct sched_param *__param) 26201: throw () __attribute__ ((__nonnull__ (3))); 26201: 26201: 26201: extern int pthread_getschedparam (pthread_t __target_thread, 26201: int *__restrict __policy, 26201: struct sched_param *__restrict __param) 26201: throw () __attribute__ ((__nonnull__ (2, 3))); 26201: 26201: 26201: extern int pthread_setschedprio (pthread_t __target_thread, int __prio) 26201: throw (); 26201: 26201: 26201: 26201: 26201: extern int pthread_getname_np (pthread_t __target_thread, char *__buf, 26201: size_t __buflen) 26201: throw () __attribute__ ((__nonnull__ (2))); 26201: 26201: 26201: extern int pthread_setname_np (pthread_t __target_thread, const char *__name) 26201: throw () __attribute__ ((__nonnull__ (2))); 26201: 26201: 26201: 26201: 26201: 26201: extern int pthread_getconcurrency (void) throw (); 26201: 26201: 26201: extern int pthread_setconcurrency (int __level) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int pthread_yield (void) throw (); 26201: 26201: 26201: 26201: 26201: extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, 26201: const cpu_set_t *__cpuset) 26201: throw () __attribute__ ((__nonnull__ (3))); 26201: 26201: 26201: extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, 26201: cpu_set_t *__cpuset) 26201: throw () __attribute__ ((__nonnull__ (3))); 26201: # 470 "/usr/x86_64-linux-gnu/include/pthread.h" 3 26201: extern int pthread_once (pthread_once_t *__once_control, 26201: void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2))); 26201: # 482 "/usr/x86_64-linux-gnu/include/pthread.h" 3 26201: extern int pthread_setcancelstate (int __state, int *__oldstate); 26201: 26201: 26201: 26201: extern int pthread_setcanceltype (int __type, int *__oldtype); 26201: 26201: 26201: extern int pthread_cancel (pthread_t __th); 26201: 26201: 26201: 26201: 26201: extern void pthread_testcancel (void); 26201: 26201: 26201: 26201: 26201: typedef struct 26201: { 26201: struct 26201: { 26201: __jmp_buf __cancel_jmp_buf; 26201: int __mask_was_saved; 26201: } __cancel_jmp_buf[1]; 26201: void *__pad[4]; 26201: } __pthread_unwind_buf_t __attribute__ ((__aligned__)); 26201: 26201: 26201: 26201: #define __cleanup_fct_attribute 26201: 26201: 26201: 26201: 26201: struct __pthread_cleanup_frame 26201: { 26201: void (*__cancel_routine) (void *); 26201: void *__cancel_arg; 26201: int __do_it; 26201: int __cancel_type; 26201: }; 26201: 26201: 26201: 26201: 26201: class __pthread_cleanup_class 26201: { 26201: void (*__cancel_routine) (void *); 26201: void *__cancel_arg; 26201: int __do_it; 26201: int __cancel_type; 26201: 26201: public: 26201: __pthread_cleanup_class (void (*__fct) (void *), void *__arg) 26201: : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { } 26201: ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); } 26201: void __setdoit (int __newval) { __do_it = __newval; } 26201: void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, 26201: &__cancel_type); } 26201: void __restore () const { pthread_setcanceltype (__cancel_type, 0); } 26201: }; 26201: # 551 "/usr/x86_64-linux-gnu/include/pthread.h" 3 26201: #define pthread_cleanup_push(routine,arg) do { __pthread_cleanup_class __clframe (routine, arg) 26201: 26201: 26201: 26201: 26201: 26201: #define pthread_cleanup_pop(execute) __clframe.__setdoit (execute); } while (0) 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define pthread_cleanup_push_defer_np(routine,arg) do { __pthread_cleanup_class __clframe (routine, arg); __clframe.__defer () 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define pthread_cleanup_pop_restore_np(execute) __clframe.__restore (); __clframe.__setdoit (execute); } while (0) 26201: # 718 "/usr/x86_64-linux-gnu/include/pthread.h" 3 26201: struct __jmp_buf_tag; 26201: extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern int pthread_mutex_init (pthread_mutex_t *__mutex, 26201: const pthread_mutexattr_t *__mutexattr) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_mutex_lock (pthread_mutex_t *__mutex) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, 26201: const struct timespec *__restrict 26201: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: 26201: extern int pthread_mutex_clocklock (pthread_mutex_t *__restrict __mutex, 26201: clockid_t __clockid, 26201: const struct timespec *__restrict 26201: __abstime) throw () __attribute__ ((__nonnull__ (1, 3))); 26201: 26201: 26201: 26201: extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: extern int pthread_mutex_getprioceiling (const pthread_mutex_t * 26201: __restrict __mutex, 26201: int *__restrict __prioceiling) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: 26201: extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, 26201: int __prioceiling, 26201: int *__restrict __old_ceiling) 26201: throw () __attribute__ ((__nonnull__ (1, 3))); 26201: 26201: 26201: 26201: 26201: extern int pthread_mutex_consistent (pthread_mutex_t *__mutex) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: # 789 "/usr/x86_64-linux-gnu/include/pthread.h" 3 26201: extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t * 26201: __restrict __attr, 26201: int *__restrict __pshared) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, 26201: int __pshared) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict 26201: __attr, int *__restrict __kind) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: 26201: 26201: extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t * 26201: __restrict __attr, 26201: int *__restrict __protocol) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: 26201: extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, 26201: int __protocol) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t * 26201: __restrict __attr, 26201: int *__restrict __prioceiling) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, 26201: int __prioceiling) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr, 26201: int *__robustness) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr, 26201: int *__robustness) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: 26201: extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr, 26201: int __robustness) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr, 26201: int __robustness) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: # 871 "/usr/x86_64-linux-gnu/include/pthread.h" 3 26201: extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, 26201: const pthread_rwlockattr_t *__restrict 26201: __attr) throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, 26201: const struct timespec *__restrict 26201: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: 26201: extern int pthread_rwlock_clockrdlock (pthread_rwlock_t *__restrict __rwlock, 26201: clockid_t __clockid, 26201: const struct timespec *__restrict 26201: __abstime) throw () __attribute__ ((__nonnull__ (1, 3))); 26201: 26201: 26201: 26201: extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, 26201: const struct timespec *__restrict 26201: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: 26201: extern int pthread_rwlock_clockwrlock (pthread_rwlock_t *__restrict __rwlock, 26201: clockid_t __clockid, 26201: const struct timespec *__restrict 26201: __abstime) throw () __attribute__ ((__nonnull__ (1, 3))); 26201: 26201: 26201: 26201: extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: 26201: 26201: extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t * 26201: __restrict __attr, 26201: int *__restrict __pshared) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, 26201: int __pshared) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t * 26201: __restrict __attr, 26201: int *__restrict __pref) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, 26201: int __pref) throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int pthread_cond_init (pthread_cond_t *__restrict __cond, 26201: const pthread_condattr_t *__restrict __cond_attr) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_cond_destroy (pthread_cond_t *__cond) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_cond_signal (pthread_cond_t *__cond) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_cond_broadcast (pthread_cond_t *__cond) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, 26201: pthread_mutex_t *__restrict __mutex) 26201: __attribute__ ((__nonnull__ (1, 2))); 26201: # 997 "/usr/x86_64-linux-gnu/include/pthread.h" 3 26201: extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, 26201: pthread_mutex_t *__restrict __mutex, 26201: const struct timespec *__restrict __abstime) 26201: __attribute__ ((__nonnull__ (1, 2, 3))); 26201: # 1010 "/usr/x86_64-linux-gnu/include/pthread.h" 3 26201: extern int pthread_cond_clockwait (pthread_cond_t *__restrict __cond, 26201: pthread_mutex_t *__restrict __mutex, 26201: __clockid_t __clock_id, 26201: const struct timespec *__restrict __abstime) 26201: __attribute__ ((__nonnull__ (1, 2, 4))); 26201: 26201: 26201: 26201: 26201: 26201: extern int pthread_condattr_init (pthread_condattr_t *__attr) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_condattr_destroy (pthread_condattr_t *__attr) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_condattr_getpshared (const pthread_condattr_t * 26201: __restrict __attr, 26201: int *__restrict __pshared) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, 26201: int __pshared) throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: extern int pthread_condattr_getclock (const pthread_condattr_t * 26201: __restrict __attr, 26201: __clockid_t *__restrict __clock_id) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern int pthread_condattr_setclock (pthread_condattr_t *__attr, 26201: __clockid_t __clock_id) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: # 1056 "/usr/x86_64-linux-gnu/include/pthread.h" 3 26201: extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_spin_destroy (pthread_spinlock_t *__lock) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_spin_lock (pthread_spinlock_t *__lock) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_spin_trylock (pthread_spinlock_t *__lock) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_spin_unlock (pthread_spinlock_t *__lock) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, 26201: const pthread_barrierattr_t *__restrict 26201: __attr, unsigned int __count) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_barrier_wait (pthread_barrier_t *__barrier) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: 26201: extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t * 26201: __restrict __attr, 26201: int *__restrict __pshared) 26201: throw () __attribute__ ((__nonnull__ (1, 2))); 26201: 26201: 26201: extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, 26201: int __pshared) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: # 1123 "/usr/x86_64-linux-gnu/include/pthread.h" 3 26201: extern int pthread_key_create (pthread_key_t *__key, 26201: void (*__destr_function) (void *)) 26201: throw () __attribute__ ((__nonnull__ (1))); 26201: 26201: 26201: extern int pthread_key_delete (pthread_key_t __key) throw (); 26201: 26201: 26201: extern void *pthread_getspecific (pthread_key_t __key) throw (); 26201: 26201: 26201: extern int pthread_setspecific (pthread_key_t __key, 26201: const void *__pointer) throw () ; 26201: 26201: 26201: 26201: 26201: extern int pthread_getcpuclockid (pthread_t __thread_id, 26201: __clockid_t *__clock_id) 26201: throw () __attribute__ ((__nonnull__ (2))); 26201: # 1157 "/usr/x86_64-linux-gnu/include/pthread.h" 3 26201: extern int pthread_atfork (void (*__prepare) (void), 26201: void (*__parent) (void), 26201: void (*__child) (void)) throw (); 26201: 26201: 26201: 26201: 26201: extern __inline __attribute__ ((__gnu_inline__)) int 26201: __attribute__ ((__leaf__)) pthread_equal (pthread_t __thread1, pthread_t __thread2) throw () 26201: { 26201: return __thread1 == __thread2; 26201: } 26201: 26201: 26201: } 26201: # 36 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/gthr-default.h" 2 3 26201: # 47 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/gthr-default.h" 3 26201: typedef pthread_t __gthread_t; 26201: typedef pthread_key_t __gthread_key_t; 26201: typedef pthread_once_t __gthread_once_t; 26201: typedef pthread_mutex_t __gthread_mutex_t; 26201: typedef pthread_mutex_t __gthread_recursive_mutex_t; 26201: typedef pthread_cond_t __gthread_cond_t; 26201: typedef struct timespec __gthread_time_t; 26201: 26201: 26201: 26201: #define __GTHREAD_HAS_COND 1 26201: 26201: #define __GTHREAD_MUTEX_INIT PTHREAD_MUTEX_INITIALIZER 26201: #define __GTHREAD_MUTEX_INIT_FUNCTION __gthread_mutex_init_function 26201: #define __GTHREAD_ONCE_INIT PTHREAD_ONCE_INIT 26201: 26201: 26201: 26201: #define __GTHREAD_RECURSIVE_MUTEX_INIT PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP 26201: 26201: 26201: 26201: #define __GTHREAD_COND_INIT PTHREAD_COND_INITIALIZER 26201: #define __GTHREAD_TIME_INIT {0,0} 26201: # 87 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/gthr-default.h" 3 26201: #define __gthrw_pragma(pragma) 26201: 26201: #define __gthrw2(name,name2,type) static __typeof(type) name __attribute__ ((__weakref__(#name2), __copy__ (type))); __gthrw_pragma(weak type) 26201: 26201: 26201: 26201: #define __gthrw_(name) __gthrw_ ## name 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __gthrw(name) __gthrw2(__gthrw_ ## name,name,name) 26201: 26201: static __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once"), __copy__ (pthread_once))); 26201: static __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific"), __copy__ (pthread_getspecific))); 26201: static __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific"), __copy__ (pthread_setspecific))); 26201: 26201: static __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create"), __copy__ (pthread_create))); 26201: static __typeof(pthread_join) __gthrw_pthread_join __attribute__ ((__weakref__("pthread_join"), __copy__ (pthread_join))); 26201: static __typeof(pthread_equal) __gthrw_pthread_equal __attribute__ ((__weakref__("pthread_equal"), __copy__ (pthread_equal))); 26201: static __typeof(pthread_self) __gthrw_pthread_self __attribute__ ((__weakref__("pthread_self"), __copy__ (pthread_self))); 26201: static __typeof(pthread_detach) __gthrw_pthread_detach __attribute__ ((__weakref__("pthread_detach"), __copy__ (pthread_detach))); 26201: 26201: static __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel"), __copy__ (pthread_cancel))); 26201: 26201: static __typeof(sched_yield) __gthrw_sched_yield __attribute__ ((__weakref__("sched_yield"), __copy__ (sched_yield))); 26201: 26201: static __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock"), __copy__ (pthread_mutex_lock))); 26201: static __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock"), __copy__ (pthread_mutex_trylock))); 26201: 26201: static __typeof(pthread_mutex_timedlock) __gthrw_pthread_mutex_timedlock __attribute__ ((__weakref__("pthread_mutex_timedlock"), __copy__ (pthread_mutex_timedlock))); 26201: 26201: static __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock"), __copy__ (pthread_mutex_unlock))); 26201: static __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init"), __copy__ (pthread_mutex_init))); 26201: static __typeof(pthread_mutex_destroy) __gthrw_pthread_mutex_destroy __attribute__ ((__weakref__("pthread_mutex_destroy"), __copy__ (pthread_mutex_destroy))); 26201: 26201: static __typeof(pthread_cond_init) __gthrw_pthread_cond_init __attribute__ ((__weakref__("pthread_cond_init"), __copy__ (pthread_cond_init))); 26201: static __typeof(pthread_cond_broadcast) __gthrw_pthread_cond_broadcast __attribute__ ((__weakref__("pthread_cond_broadcast"), __copy__ (pthread_cond_broadcast))); 26201: static __typeof(pthread_cond_signal) __gthrw_pthread_cond_signal __attribute__ ((__weakref__("pthread_cond_signal"), __copy__ (pthread_cond_signal))); 26201: static __typeof(pthread_cond_wait) __gthrw_pthread_cond_wait __attribute__ ((__weakref__("pthread_cond_wait"), __copy__ (pthread_cond_wait))); 26201: static __typeof(pthread_cond_timedwait) __gthrw_pthread_cond_timedwait __attribute__ ((__weakref__("pthread_cond_timedwait"), __copy__ (pthread_cond_timedwait))); 26201: static __typeof(pthread_cond_destroy) __gthrw_pthread_cond_destroy __attribute__ ((__weakref__("pthread_cond_destroy"), __copy__ (pthread_cond_destroy))); 26201: 26201: static __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create"), __copy__ (pthread_key_create))); 26201: static __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete"), __copy__ (pthread_key_delete))); 26201: static __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init"), __copy__ (pthread_mutexattr_init))); 26201: static __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype"), __copy__ (pthread_mutexattr_settype))); 26201: static __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy"), __copy__ (pthread_mutexattr_destroy))); 26201: # 237 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/gthr-default.h" 3 26201: static __typeof(pthread_key_create) __gthrw___pthread_key_create __attribute__ ((__weakref__("__pthread_key_create"), __copy__ (pthread_key_create))); 26201: 26201: 26201: #define GTHR_ACTIVE_PROXY __gthrw_(__pthread_key_create) 26201: 26201: 26201: 26201: 26201: 26201: 26201: static inline int 26201: __gthread_active_p (void) 26201: { 26201: static void *const __gthread_active_ptr 26201: = __extension__ (void *) &__gthrw___pthread_key_create; 26201: return __gthread_active_ptr != 0; 26201: } 26201: # 659 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/gthr-default.h" 3 26201: static inline int 26201: __gthread_create (__gthread_t *__threadid, void *(*__func) (void*), 26201: void *__args) 26201: { 26201: return __gthrw_pthread_create (__threadid, __null, __func, __args); 26201: } 26201: 26201: static inline int 26201: __gthread_join (__gthread_t __threadid, void **__value_ptr) 26201: { 26201: return __gthrw_pthread_join (__threadid, __value_ptr); 26201: } 26201: 26201: static inline int 26201: __gthread_detach (__gthread_t __threadid) 26201: { 26201: return __gthrw_pthread_detach (__threadid); 26201: } 26201: 26201: static inline int 26201: __gthread_equal (__gthread_t __t1, __gthread_t __t2) 26201: { 26201: return __gthrw_pthread_equal (__t1, __t2); 26201: } 26201: 26201: static inline __gthread_t 26201: __gthread_self (void) 26201: { 26201: return __gthrw_pthread_self (); 26201: } 26201: 26201: static inline int 26201: __gthread_yield (void) 26201: { 26201: return __gthrw_sched_yield (); 26201: } 26201: 26201: static inline int 26201: __gthread_once (__gthread_once_t *__once, void (*__func) (void)) 26201: { 26201: if (__gthread_active_p ()) 26201: return __gthrw_pthread_once (__once, __func); 26201: else 26201: return -1; 26201: } 26201: 26201: static inline int 26201: __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *)) 26201: { 26201: return __gthrw_pthread_key_create (__key, __dtor); 26201: } 26201: 26201: static inline int 26201: __gthread_key_delete (__gthread_key_t __key) 26201: { 26201: return __gthrw_pthread_key_delete (__key); 26201: } 26201: 26201: static inline void * 26201: __gthread_getspecific (__gthread_key_t __key) 26201: { 26201: return __gthrw_pthread_getspecific (__key); 26201: } 26201: 26201: static inline int 26201: __gthread_setspecific (__gthread_key_t __key, const void *__ptr) 26201: { 26201: return __gthrw_pthread_setspecific (__key, __ptr); 26201: } 26201: 26201: static inline void 26201: __gthread_mutex_init_function (__gthread_mutex_t *__mutex) 26201: { 26201: if (__gthread_active_p ()) 26201: __gthrw_pthread_mutex_init (__mutex, __null); 26201: } 26201: 26201: static inline int 26201: __gthread_mutex_destroy (__gthread_mutex_t *__mutex) 26201: { 26201: if (__gthread_active_p ()) 26201: return __gthrw_pthread_mutex_destroy (__mutex); 26201: else 26201: return 0; 26201: } 26201: 26201: static inline int 26201: __gthread_mutex_lock (__gthread_mutex_t *__mutex) 26201: { 26201: if (__gthread_active_p ()) 26201: return __gthrw_pthread_mutex_lock (__mutex); 26201: else 26201: return 0; 26201: } 26201: 26201: static inline int 26201: __gthread_mutex_trylock (__gthread_mutex_t *__mutex) 26201: { 26201: if (__gthread_active_p ()) 26201: return __gthrw_pthread_mutex_trylock (__mutex); 26201: else 26201: return 0; 26201: } 26201: 26201: 26201: static inline int 26201: __gthread_mutex_timedlock (__gthread_mutex_t *__mutex, 26201: const __gthread_time_t *__abs_timeout) 26201: { 26201: if (__gthread_active_p ()) 26201: return __gthrw_pthread_mutex_timedlock (__mutex, __abs_timeout); 26201: else 26201: return 0; 26201: } 26201: 26201: 26201: static inline int 26201: __gthread_mutex_unlock (__gthread_mutex_t *__mutex) 26201: { 26201: if (__gthread_active_p ()) 26201: return __gthrw_pthread_mutex_unlock (__mutex); 26201: else 26201: return 0; 26201: } 26201: # 808 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/gthr-default.h" 3 26201: static inline int 26201: __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex) 26201: { 26201: return __gthread_mutex_lock (__mutex); 26201: } 26201: 26201: static inline int 26201: __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex) 26201: { 26201: return __gthread_mutex_trylock (__mutex); 26201: } 26201: 26201: 26201: static inline int 26201: __gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex, 26201: const __gthread_time_t *__abs_timeout) 26201: { 26201: return __gthread_mutex_timedlock (__mutex, __abs_timeout); 26201: } 26201: 26201: 26201: static inline int 26201: __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex) 26201: { 26201: return __gthread_mutex_unlock (__mutex); 26201: } 26201: 26201: static inline int 26201: __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex) 26201: { 26201: return __gthread_mutex_destroy (__mutex); 26201: } 26201: # 850 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/gthr-default.h" 3 26201: static inline int 26201: __gthread_cond_broadcast (__gthread_cond_t *__cond) 26201: { 26201: return __gthrw_pthread_cond_broadcast (__cond); 26201: } 26201: 26201: static inline int 26201: __gthread_cond_signal (__gthread_cond_t *__cond) 26201: { 26201: return __gthrw_pthread_cond_signal (__cond); 26201: } 26201: 26201: static inline int 26201: __gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex) 26201: { 26201: return __gthrw_pthread_cond_wait (__cond, __mutex); 26201: } 26201: 26201: static inline int 26201: __gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex, 26201: const __gthread_time_t *__abs_timeout) 26201: { 26201: return __gthrw_pthread_cond_timedwait (__cond, __mutex, __abs_timeout); 26201: } 26201: 26201: static inline int 26201: __gthread_cond_wait_recursive (__gthread_cond_t *__cond, 26201: __gthread_recursive_mutex_t *__mutex) 26201: { 26201: return __gthread_cond_wait (__cond, __mutex); 26201: } 26201: 26201: static inline int 26201: __gthread_cond_destroy (__gthread_cond_t* __cond) 26201: { 26201: return __gthrw_pthread_cond_destroy (__cond); 26201: } 26201: # 149 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/gthr.h" 2 3 26201: 26201: 26201: #pragma GCC visibility pop 26201: # 36 "/usr/x86_64-linux-gnu/include/c++/10/ext/atomicity.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/atomic_word.h" 1 3 26201: # 30 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/atomic_word.h" 3 26201: #define _GLIBCXX_ATOMIC_WORD_H 1 26201: 26201: typedef int _Atomic_word; 26201: 26201: 26201: 26201: #define _GLIBCXX_READ_MEM_BARRIER __atomic_thread_fence (__ATOMIC_ACQUIRE) 26201: 26201: #define _GLIBCXX_WRITE_MEM_BARRIER __atomic_thread_fence (__ATOMIC_RELEASE) 26201: # 37 "/usr/x86_64-linux-gnu/include/c++/10/ext/atomicity.h" 2 3 26201: 26201: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline _Atomic_word 26201: __attribute__((__always_inline__)) 26201: __exchange_and_add(volatile _Atomic_word* __mem, int __val) 26201: { return __atomic_fetch_add(__mem, __val, 4); } 26201: 26201: inline void 26201: __attribute__((__always_inline__)) 26201: __atomic_add(volatile _Atomic_word* __mem, int __val) 26201: { __atomic_fetch_add(__mem, __val, 4); } 26201: # 64 "/usr/x86_64-linux-gnu/include/c++/10/ext/atomicity.h" 3 26201: inline _Atomic_word 26201: __attribute__((__always_inline__)) 26201: __exchange_and_add_single(_Atomic_word* __mem, int __val) 26201: { 26201: _Atomic_word __result = *__mem; 26201: *__mem += __val; 26201: return __result; 26201: } 26201: 26201: inline void 26201: __attribute__((__always_inline__)) 26201: __atomic_add_single(_Atomic_word* __mem, int __val) 26201: { *__mem += __val; } 26201: 26201: inline _Atomic_word 26201: __attribute__ ((__always_inline__)) 26201: __exchange_and_add_dispatch(_Atomic_word* __mem, int __val) 26201: { 26201: 26201: if (__gthread_active_p()) 26201: return __exchange_and_add(__mem, __val); 26201: 26201: return __exchange_and_add_single(__mem, __val); 26201: } 26201: 26201: inline void 26201: __attribute__ ((__always_inline__)) 26201: __atomic_add_dispatch(_Atomic_word* __mem, int __val) 26201: { 26201: 26201: if (__gthread_active_p()) 26201: { 26201: __atomic_add(__mem, __val); 26201: return; 26201: } 26201: 26201: __atomic_add_single(__mem, __val); 26201: } 26201: 26201: 26201: } 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 2 3 26201: # 48 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/string_view" 1 3 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/string_view" 3 26201: #define _GLIBCXX_STRING_VIEW 1 26201: 26201: 26201: # 37 "/usr/x86_64-linux-gnu/include/c++/10/string_view" 3 26201: # 47 "/usr/x86_64-linux-gnu/include/c++/10/string_view" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: #define __cpp_lib_string_view 201803L 26201: 26201: 26201: 26201: 26201: 26201: constexpr size_t 26201: __sv_check(size_t __size, size_t __pos, const char* __s) 26201: { 26201: if (__pos > __size) 26201: __throw_out_of_range_fmt(("%s: __pos (which is %zu) > __size " "(which is %zu)") 26201: , __s, __pos, __size); 26201: return __pos; 26201: } 26201: 26201: 26201: 26201: constexpr size_t 26201: __sv_limit(size_t __size, size_t __pos, size_t __off) noexcept 26201: { 26201: const bool __testoff = __off < __size - __pos; 26201: return __testoff ? __off : __size - __pos; 26201: } 26201: # 93 "/usr/x86_64-linux-gnu/include/c++/10/string_view" 3 26201: template> 26201: class basic_string_view 26201: { 26201: static_assert(!is_array_v<_CharT>); 26201: static_assert(is_trivial_v<_CharT> && is_standard_layout_v<_CharT>); 26201: static_assert(is_same_v<_CharT, typename _Traits::char_type>); 26201: 26201: public: 26201: 26201: 26201: using traits_type = _Traits; 26201: using value_type = _CharT; 26201: using pointer = value_type*; 26201: using const_pointer = const value_type*; 26201: using reference = value_type&; 26201: using const_reference = const value_type&; 26201: using const_iterator = const value_type*; 26201: using iterator = const_iterator; 26201: using const_reverse_iterator = std::reverse_iterator; 26201: using reverse_iterator = const_reverse_iterator; 26201: using size_type = size_t; 26201: using difference_type = ptrdiff_t; 26201: static constexpr size_type npos = size_type(-1); 26201: 26201: 26201: 26201: constexpr 26201: basic_string_view() noexcept 26201: : _M_len{0}, _M_str{nullptr} 26201: { } 26201: 26201: constexpr basic_string_view(const basic_string_view&) noexcept = default; 26201: 26201: __attribute__((__nonnull__)) constexpr 26201: basic_string_view(const _CharT* __str) noexcept 26201: : _M_len{traits_type::length(__str)}, 26201: _M_str{__str} 26201: { } 26201: 26201: constexpr 26201: basic_string_view(const _CharT* __str, size_type __len) noexcept 26201: : _M_len{__len}, _M_str{__str} 26201: { } 26201: # 147 "/usr/x86_64-linux-gnu/include/c++/10/string_view" 3 26201: constexpr basic_string_view& 26201: operator=(const basic_string_view&) noexcept = default; 26201: 26201: 26201: 26201: constexpr const_iterator 26201: begin() const noexcept 26201: { return this->_M_str; } 26201: 26201: constexpr const_iterator 26201: end() const noexcept 26201: { return this->_M_str + this->_M_len; } 26201: 26201: constexpr const_iterator 26201: cbegin() const noexcept 26201: { return this->_M_str; } 26201: 26201: constexpr const_iterator 26201: cend() const noexcept 26201: { return this->_M_str + this->_M_len; } 26201: 26201: constexpr const_reverse_iterator 26201: rbegin() const noexcept 26201: { return const_reverse_iterator(this->end()); } 26201: 26201: constexpr const_reverse_iterator 26201: rend() const noexcept 26201: { return const_reverse_iterator(this->begin()); } 26201: 26201: constexpr const_reverse_iterator 26201: crbegin() const noexcept 26201: { return const_reverse_iterator(this->end()); } 26201: 26201: constexpr const_reverse_iterator 26201: crend() const noexcept 26201: { return const_reverse_iterator(this->begin()); } 26201: 26201: 26201: 26201: constexpr size_type 26201: size() const noexcept 26201: { return this->_M_len; } 26201: 26201: constexpr size_type 26201: length() const noexcept 26201: { return _M_len; } 26201: 26201: constexpr size_type 26201: max_size() const noexcept 26201: { 26201: return (npos - sizeof(size_type) - sizeof(void*)) 26201: / sizeof(value_type) / 4; 26201: } 26201: 26201: [[nodiscard]] constexpr bool 26201: empty() const noexcept 26201: { return this->_M_len == 0; } 26201: 26201: 26201: 26201: constexpr const_reference 26201: operator[](size_type __pos) const noexcept 26201: { 26201: ; 26201: return *(this->_M_str + __pos); 26201: } 26201: 26201: constexpr const_reference 26201: at(size_type __pos) const 26201: { 26201: if (__pos >= _M_len) 26201: __throw_out_of_range_fmt(("basic_string_view::at: __pos " "(which is %zu) >= this->size() " "(which is %zu)") 26201: 26201: , __pos, this->size()); 26201: return *(this->_M_str + __pos); 26201: } 26201: 26201: constexpr const_reference 26201: front() const noexcept 26201: { 26201: ; 26201: return *this->_M_str; 26201: } 26201: 26201: constexpr const_reference 26201: back() const noexcept 26201: { 26201: ; 26201: return *(this->_M_str + this->_M_len - 1); 26201: } 26201: 26201: constexpr const_pointer 26201: data() const noexcept 26201: { return this->_M_str; } 26201: 26201: 26201: 26201: constexpr void 26201: remove_prefix(size_type __n) noexcept 26201: { 26201: ; 26201: this->_M_str += __n; 26201: this->_M_len -= __n; 26201: } 26201: 26201: constexpr void 26201: remove_suffix(size_type __n) noexcept 26201: { this->_M_len -= __n; } 26201: 26201: constexpr void 26201: swap(basic_string_view& __sv) noexcept 26201: { 26201: auto __tmp = *this; 26201: *this = __sv; 26201: __sv = __tmp; 26201: } 26201: 26201: 26201: 26201: 26201: size_type 26201: copy(_CharT* __str, size_type __n, size_type __pos = 0) const 26201: { 26201: ; 26201: __pos = std::__sv_check(size(), __pos, "basic_string_view::copy"); 26201: const size_type __rlen = std::min(__n, _M_len - __pos); 26201: 26201: 26201: traits_type::copy(__str, data() + __pos, __rlen); 26201: return __rlen; 26201: } 26201: 26201: constexpr basic_string_view 26201: substr(size_type __pos = 0, size_type __n = npos) const noexcept(false) 26201: { 26201: __pos = std::__sv_check(size(), __pos, "basic_string_view::substr"); 26201: const size_type __rlen = std::min(__n, _M_len - __pos); 26201: return basic_string_view{_M_str + __pos, __rlen}; 26201: } 26201: 26201: constexpr int 26201: compare(basic_string_view __str) const noexcept 26201: { 26201: const size_type __rlen = std::min(this->_M_len, __str._M_len); 26201: int __ret = traits_type::compare(this->_M_str, __str._M_str, __rlen); 26201: if (__ret == 0) 26201: __ret = _S_compare(this->_M_len, __str._M_len); 26201: return __ret; 26201: } 26201: 26201: constexpr int 26201: compare(size_type __pos1, size_type __n1, basic_string_view __str) const 26201: { return this->substr(__pos1, __n1).compare(__str); } 26201: 26201: constexpr int 26201: compare(size_type __pos1, size_type __n1, 26201: basic_string_view __str, size_type __pos2, size_type __n2) const 26201: { 26201: return this->substr(__pos1, __n1).compare(__str.substr(__pos2, __n2)); 26201: } 26201: 26201: __attribute__((__nonnull__)) constexpr int 26201: compare(const _CharT* __str) const noexcept 26201: { return this->compare(basic_string_view{__str}); } 26201: 26201: __attribute__((__nonnull__)) constexpr int 26201: compare(size_type __pos1, size_type __n1, const _CharT* __str) const 26201: { return this->substr(__pos1, __n1).compare(basic_string_view{__str}); } 26201: 26201: constexpr int 26201: compare(size_type __pos1, size_type __n1, 26201: const _CharT* __str, size_type __n2) const noexcept(false) 26201: { 26201: return this->substr(__pos1, __n1) 26201: .compare(basic_string_view(__str, __n2)); 26201: } 26201: # 358 "/usr/x86_64-linux-gnu/include/c++/10/string_view" 3 26201: constexpr size_type 26201: find(basic_string_view __str, size_type __pos = 0) const noexcept 26201: { return this->find(__str._M_str, __pos, __str._M_len); } 26201: 26201: constexpr size_type 26201: find(_CharT __c, size_type __pos = 0) const noexcept; 26201: 26201: constexpr size_type 26201: find(const _CharT* __str, size_type __pos, size_type __n) const noexcept; 26201: 26201: __attribute__((__nonnull__)) constexpr size_type 26201: find(const _CharT* __str, size_type __pos = 0) const noexcept 26201: { return this->find(__str, __pos, traits_type::length(__str)); } 26201: 26201: constexpr size_type 26201: rfind(basic_string_view __str, size_type __pos = npos) const noexcept 26201: { return this->rfind(__str._M_str, __pos, __str._M_len); } 26201: 26201: constexpr size_type 26201: rfind(_CharT __c, size_type __pos = npos) const noexcept; 26201: 26201: constexpr size_type 26201: rfind(const _CharT* __str, size_type __pos, size_type __n) const noexcept; 26201: 26201: __attribute__((__nonnull__)) constexpr size_type 26201: rfind(const _CharT* __str, size_type __pos = npos) const noexcept 26201: { return this->rfind(__str, __pos, traits_type::length(__str)); } 26201: 26201: constexpr size_type 26201: find_first_of(basic_string_view __str, size_type __pos = 0) const noexcept 26201: { return this->find_first_of(__str._M_str, __pos, __str._M_len); } 26201: 26201: constexpr size_type 26201: find_first_of(_CharT __c, size_type __pos = 0) const noexcept 26201: { return this->find(__c, __pos); } 26201: 26201: constexpr size_type 26201: find_first_of(const _CharT* __str, size_type __pos, 26201: size_type __n) const noexcept; 26201: 26201: __attribute__((__nonnull__)) constexpr size_type 26201: find_first_of(const _CharT* __str, size_type __pos = 0) const noexcept 26201: { return this->find_first_of(__str, __pos, traits_type::length(__str)); } 26201: 26201: constexpr size_type 26201: find_last_of(basic_string_view __str, 26201: size_type __pos = npos) const noexcept 26201: { return this->find_last_of(__str._M_str, __pos, __str._M_len); } 26201: 26201: constexpr size_type 26201: find_last_of(_CharT __c, size_type __pos=npos) const noexcept 26201: { return this->rfind(__c, __pos); } 26201: 26201: constexpr size_type 26201: find_last_of(const _CharT* __str, size_type __pos, 26201: size_type __n) const noexcept; 26201: 26201: __attribute__((__nonnull__)) constexpr size_type 26201: find_last_of(const _CharT* __str, size_type __pos = npos) const noexcept 26201: { return this->find_last_of(__str, __pos, traits_type::length(__str)); } 26201: 26201: constexpr size_type 26201: find_first_not_of(basic_string_view __str, 26201: size_type __pos = 0) const noexcept 26201: { return this->find_first_not_of(__str._M_str, __pos, __str._M_len); } 26201: 26201: constexpr size_type 26201: find_first_not_of(_CharT __c, size_type __pos = 0) const noexcept; 26201: 26201: constexpr size_type 26201: find_first_not_of(const _CharT* __str, 26201: size_type __pos, size_type __n) const noexcept; 26201: 26201: __attribute__((__nonnull__)) constexpr size_type 26201: find_first_not_of(const _CharT* __str, size_type __pos = 0) const noexcept 26201: { 26201: return this->find_first_not_of(__str, __pos, 26201: traits_type::length(__str)); 26201: } 26201: 26201: constexpr size_type 26201: find_last_not_of(basic_string_view __str, 26201: size_type __pos = npos) const noexcept 26201: { return this->find_last_not_of(__str._M_str, __pos, __str._M_len); } 26201: 26201: constexpr size_type 26201: find_last_not_of(_CharT __c, size_type __pos = npos) const noexcept; 26201: 26201: constexpr size_type 26201: find_last_not_of(const _CharT* __str, 26201: size_type __pos, size_type __n) const noexcept; 26201: 26201: __attribute__((__nonnull__)) constexpr size_type 26201: find_last_not_of(const _CharT* __str, 26201: size_type __pos = npos) const noexcept 26201: { 26201: return this->find_last_not_of(__str, __pos, 26201: traits_type::length(__str)); 26201: } 26201: 26201: private: 26201: 26201: static constexpr int 26201: _S_compare(size_type __n1, size_type __n2) noexcept 26201: { 26201: const difference_type __diff = __n1 - __n2; 26201: if (__diff > __gnu_cxx::__int_traits::__max) 26201: return __gnu_cxx::__int_traits::__max; 26201: if (__diff < __gnu_cxx::__int_traits::__min) 26201: return __gnu_cxx::__int_traits::__min; 26201: return static_cast(__diff); 26201: } 26201: 26201: size_t _M_len; 26201: const _CharT* _M_str; 26201: }; 26201: # 487 "/usr/x86_64-linux-gnu/include/c++/10/string_view" 3 26201: template 26201: constexpr bool 26201: operator==(basic_string_view<_CharT, _Traits> __x, 26201: basic_string_view<_CharT, _Traits> __y) noexcept 26201: { return __x.size() == __y.size() && __x.compare(__y) == 0; } 26201: 26201: template 26201: constexpr bool 26201: operator==(basic_string_view<_CharT, _Traits> __x, 26201: __type_identity_t> __y) 26201: noexcept 26201: { return __x.size() == __y.size() && __x.compare(__y) == 0; } 26201: # 516 "/usr/x86_64-linux-gnu/include/c++/10/string_view" 3 26201: template 26201: constexpr bool 26201: operator==(__type_identity_t> __x, 26201: basic_string_view<_CharT, _Traits> __y) noexcept 26201: { return __x.size() == __y.size() && __x.compare(__y) == 0; } 26201: 26201: template 26201: constexpr bool 26201: operator!=(basic_string_view<_CharT, _Traits> __x, 26201: basic_string_view<_CharT, _Traits> __y) noexcept 26201: { return !(__x == __y); } 26201: 26201: template 26201: constexpr bool 26201: operator!=(basic_string_view<_CharT, _Traits> __x, 26201: __type_identity_t> __y) 26201: noexcept 26201: { return !(__x == __y); } 26201: 26201: template 26201: constexpr bool 26201: operator!=(__type_identity_t> __x, 26201: basic_string_view<_CharT, _Traits> __y) noexcept 26201: { return !(__x == __y); } 26201: 26201: template 26201: constexpr bool 26201: operator< (basic_string_view<_CharT, _Traits> __x, 26201: basic_string_view<_CharT, _Traits> __y) noexcept 26201: { return __x.compare(__y) < 0; } 26201: 26201: template 26201: constexpr bool 26201: operator< (basic_string_view<_CharT, _Traits> __x, 26201: __type_identity_t> __y) 26201: noexcept 26201: { return __x.compare(__y) < 0; } 26201: 26201: template 26201: constexpr bool 26201: operator< (__type_identity_t> __x, 26201: basic_string_view<_CharT, _Traits> __y) noexcept 26201: { return __x.compare(__y) < 0; } 26201: 26201: template 26201: constexpr bool 26201: operator> (basic_string_view<_CharT, _Traits> __x, 26201: basic_string_view<_CharT, _Traits> __y) noexcept 26201: { return __x.compare(__y) > 0; } 26201: 26201: template 26201: constexpr bool 26201: operator> (basic_string_view<_CharT, _Traits> __x, 26201: __type_identity_t> __y) 26201: noexcept 26201: { return __x.compare(__y) > 0; } 26201: 26201: template 26201: constexpr bool 26201: operator> (__type_identity_t> __x, 26201: basic_string_view<_CharT, _Traits> __y) noexcept 26201: { return __x.compare(__y) > 0; } 26201: 26201: template 26201: constexpr bool 26201: operator<=(basic_string_view<_CharT, _Traits> __x, 26201: basic_string_view<_CharT, _Traits> __y) noexcept 26201: { return __x.compare(__y) <= 0; } 26201: 26201: template 26201: constexpr bool 26201: operator<=(basic_string_view<_CharT, _Traits> __x, 26201: __type_identity_t> __y) 26201: noexcept 26201: { return __x.compare(__y) <= 0; } 26201: 26201: template 26201: constexpr bool 26201: operator<=(__type_identity_t> __x, 26201: basic_string_view<_CharT, _Traits> __y) noexcept 26201: { return __x.compare(__y) <= 0; } 26201: 26201: template 26201: constexpr bool 26201: operator>=(basic_string_view<_CharT, _Traits> __x, 26201: basic_string_view<_CharT, _Traits> __y) noexcept 26201: { return __x.compare(__y) >= 0; } 26201: 26201: template 26201: constexpr bool 26201: operator>=(basic_string_view<_CharT, _Traits> __x, 26201: __type_identity_t> __y) 26201: noexcept 26201: { return __x.compare(__y) >= 0; } 26201: 26201: template 26201: constexpr bool 26201: operator>=(__type_identity_t> __x, 26201: basic_string_view<_CharT, _Traits> __y) noexcept 26201: { return __x.compare(__y) >= 0; } 26201: 26201: 26201: 26201: template 26201: inline basic_ostream<_CharT, _Traits>& 26201: operator<<(basic_ostream<_CharT, _Traits>& __os, 26201: basic_string_view<_CharT,_Traits> __str) 26201: { return __ostream_insert(__os, __str.data(), __str.size()); } 26201: 26201: 26201: 26201: 26201: using string_view = basic_string_view; 26201: 26201: using wstring_view = basic_string_view; 26201: 26201: 26201: 26201: 26201: using u16string_view = basic_string_view; 26201: using u32string_view = basic_string_view; 26201: 26201: 26201: 26201: template 26201: struct hash; 26201: 26201: template<> 26201: struct hash 26201: : public __hash_base 26201: { 26201: size_t 26201: operator()(const string_view& __str) const noexcept 26201: { return std::_Hash_impl::hash(__str.data(), __str.length()); } 26201: }; 26201: 26201: template<> 26201: struct __is_fast_hash> : std::false_type 26201: { }; 26201: 26201: 26201: template<> 26201: struct hash 26201: : public __hash_base 26201: { 26201: size_t 26201: operator()(const wstring_view& __s) const noexcept 26201: { return std::_Hash_impl::hash(__s.data(), 26201: __s.length() * sizeof(wchar_t)); } 26201: }; 26201: 26201: template<> 26201: struct __is_fast_hash> : std::false_type 26201: { }; 26201: # 687 "/usr/x86_64-linux-gnu/include/c++/10/string_view" 3 26201: template<> 26201: struct hash 26201: : public __hash_base 26201: { 26201: size_t 26201: operator()(const u16string_view& __s) const noexcept 26201: { return std::_Hash_impl::hash(__s.data(), 26201: __s.length() * sizeof(char16_t)); } 26201: }; 26201: 26201: template<> 26201: struct __is_fast_hash> : std::false_type 26201: { }; 26201: 26201: template<> 26201: struct hash 26201: : public __hash_base 26201: { 26201: size_t 26201: operator()(const u32string_view& __s) const noexcept 26201: { return std::_Hash_impl::hash(__s.data(), 26201: __s.length() * sizeof(char32_t)); } 26201: }; 26201: 26201: template<> 26201: struct __is_fast_hash> : std::false_type 26201: { }; 26201: 26201: inline namespace literals 26201: { 26201: inline namespace string_view_literals 26201: { 26201: #pragma GCC diagnostic push 26201: #pragma GCC diagnostic ignored "-Wliteral-suffix" 26201: inline constexpr basic_string_view 26201: operator""sv(const char* __str, size_t __len) noexcept 26201: { return basic_string_view{__str, __len}; } 26201: 26201: 26201: inline constexpr basic_string_view 26201: operator""sv(const wchar_t* __str, size_t __len) noexcept 26201: { return basic_string_view{__str, __len}; } 26201: # 737 "/usr/x86_64-linux-gnu/include/c++/10/string_view" 3 26201: inline constexpr basic_string_view 26201: operator""sv(const char16_t* __str, size_t __len) noexcept 26201: { return basic_string_view{__str, __len}; } 26201: 26201: inline constexpr basic_string_view 26201: operator""sv(const char32_t* __str, size_t __len) noexcept 26201: { return basic_string_view{__str, __len}; } 26201: 26201: #pragma GCC diagnostic pop 26201: } 26201: } 26201: # 763 "/usr/x86_64-linux-gnu/include/c++/10/string_view" 3 26201: 26201: } 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/string_view.tcc" 1 3 26201: # 35 "/usr/x86_64-linux-gnu/include/c++/10/bits/string_view.tcc" 3 26201: #define _GLIBCXX_STRING_VIEW_TCC 1 26201: 26201: 26201: # 38 "/usr/x86_64-linux-gnu/include/c++/10/bits/string_view.tcc" 3 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: template 26201: constexpr typename basic_string_view<_CharT, _Traits>::size_type 26201: basic_string_view<_CharT, _Traits>:: 26201: find(const _CharT* __str, size_type __pos, size_type __n) const noexcept 26201: { 26201: ; 26201: 26201: if (__n == 0) 26201: return __pos <= this->_M_len ? __pos : npos; 26201: 26201: if (__n <= this->_M_len) 26201: { 26201: for (; __pos <= this->_M_len - __n; ++__pos) 26201: if (traits_type::eq(this->_M_str[__pos], __str[0]) 26201: && traits_type::compare(this->_M_str + __pos + 1, 26201: __str + 1, __n - 1) == 0) 26201: return __pos; 26201: } 26201: return npos; 26201: } 26201: 26201: template 26201: constexpr typename basic_string_view<_CharT, _Traits>::size_type 26201: basic_string_view<_CharT, _Traits>:: 26201: find(_CharT __c, size_type __pos) const noexcept 26201: { 26201: size_type __ret = npos; 26201: if (__pos < this->_M_len) 26201: { 26201: const size_type __n = this->_M_len - __pos; 26201: const _CharT* __p = traits_type::find(this->_M_str + __pos, __n, __c); 26201: if (__p) 26201: __ret = __p - this->_M_str; 26201: } 26201: return __ret; 26201: } 26201: 26201: template 26201: constexpr typename basic_string_view<_CharT, _Traits>::size_type 26201: basic_string_view<_CharT, _Traits>:: 26201: rfind(const _CharT* __str, size_type __pos, size_type __n) const noexcept 26201: { 26201: ; 26201: 26201: if (__n <= this->_M_len) 26201: { 26201: __pos = std::min(size_type(this->_M_len - __n), __pos); 26201: do 26201: { 26201: if (traits_type::compare(this->_M_str + __pos, __str, __n) == 0) 26201: return __pos; 26201: } 26201: while (__pos-- > 0); 26201: } 26201: return npos; 26201: } 26201: 26201: template 26201: constexpr typename basic_string_view<_CharT, _Traits>::size_type 26201: basic_string_view<_CharT, _Traits>:: 26201: rfind(_CharT __c, size_type __pos) const noexcept 26201: { 26201: size_type __size = this->_M_len; 26201: if (__size > 0) 26201: { 26201: if (--__size > __pos) 26201: __size = __pos; 26201: for (++__size; __size-- > 0; ) 26201: if (traits_type::eq(this->_M_str[__size], __c)) 26201: return __size; 26201: } 26201: return npos; 26201: } 26201: 26201: template 26201: constexpr typename basic_string_view<_CharT, _Traits>::size_type 26201: basic_string_view<_CharT, _Traits>:: 26201: find_first_of(const _CharT* __str, size_type __pos, 26201: size_type __n) const noexcept 26201: { 26201: ; 26201: for (; __n && __pos < this->_M_len; ++__pos) 26201: { 26201: const _CharT* __p = traits_type::find(__str, __n, 26201: this->_M_str[__pos]); 26201: if (__p) 26201: return __pos; 26201: } 26201: return npos; 26201: } 26201: 26201: template 26201: constexpr typename basic_string_view<_CharT, _Traits>::size_type 26201: basic_string_view<_CharT, _Traits>:: 26201: find_last_of(const _CharT* __str, size_type __pos, 26201: size_type __n) const noexcept 26201: { 26201: ; 26201: size_type __size = this->size(); 26201: if (__size && __n) 26201: { 26201: if (--__size > __pos) 26201: __size = __pos; 26201: do 26201: { 26201: if (traits_type::find(__str, __n, this->_M_str[__size])) 26201: return __size; 26201: } 26201: while (__size-- != 0); 26201: } 26201: return npos; 26201: } 26201: 26201: template 26201: constexpr typename basic_string_view<_CharT, _Traits>::size_type 26201: basic_string_view<_CharT, _Traits>:: 26201: find_first_not_of(const _CharT* __str, size_type __pos, 26201: size_type __n) const noexcept 26201: { 26201: ; 26201: for (; __pos < this->_M_len; ++__pos) 26201: if (!traits_type::find(__str, __n, this->_M_str[__pos])) 26201: return __pos; 26201: return npos; 26201: } 26201: 26201: template 26201: constexpr typename basic_string_view<_CharT, _Traits>::size_type 26201: basic_string_view<_CharT, _Traits>:: 26201: find_first_not_of(_CharT __c, size_type __pos) const noexcept 26201: { 26201: for (; __pos < this->_M_len; ++__pos) 26201: if (!traits_type::eq(this->_M_str[__pos], __c)) 26201: return __pos; 26201: return npos; 26201: } 26201: 26201: template 26201: constexpr typename basic_string_view<_CharT, _Traits>::size_type 26201: basic_string_view<_CharT, _Traits>:: 26201: find_last_not_of(const _CharT* __str, size_type __pos, 26201: size_type __n) const noexcept 26201: { 26201: ; 26201: size_type __size = this->_M_len; 26201: if (__size) 26201: { 26201: if (--__size > __pos) 26201: __size = __pos; 26201: do 26201: { 26201: if (!traits_type::find(__str, __n, this->_M_str[__size])) 26201: return __size; 26201: } 26201: while (__size--); 26201: } 26201: return npos; 26201: } 26201: 26201: template 26201: constexpr typename basic_string_view<_CharT, _Traits>::size_type 26201: basic_string_view<_CharT, _Traits>:: 26201: find_last_not_of(_CharT __c, size_type __pos) const noexcept 26201: { 26201: size_type __size = this->_M_len; 26201: if (__size) 26201: { 26201: if (--__size > __pos) 26201: __size = __pos; 26201: do 26201: { 26201: if (!traits_type::eq(this->_M_str[__size], __c)) 26201: return __size; 26201: } 26201: while (__size--); 26201: } 26201: return npos; 26201: } 26201: 26201: 26201: } 26201: # 767 "/usr/x86_64-linux-gnu/include/c++/10/string_view" 2 3 26201: # 49 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 2 3 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __cpp_lib_constexpr_string 201611L 26201: 26201: 26201: 26201: 26201: namespace __cxx11 { 26201: # 84 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: class basic_string 26201: { 26201: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 26201: rebind<_CharT>::other _Char_alloc_type; 26201: typedef __gnu_cxx::__alloc_traits<_Char_alloc_type> _Alloc_traits; 26201: 26201: 26201: public: 26201: typedef _Traits traits_type; 26201: typedef typename _Traits::char_type value_type; 26201: typedef _Char_alloc_type allocator_type; 26201: typedef typename _Alloc_traits::size_type size_type; 26201: typedef typename _Alloc_traits::difference_type difference_type; 26201: typedef typename _Alloc_traits::reference reference; 26201: typedef typename _Alloc_traits::const_reference const_reference; 26201: typedef typename _Alloc_traits::pointer pointer; 26201: typedef typename _Alloc_traits::const_pointer const_pointer; 26201: typedef __gnu_cxx::__normal_iterator iterator; 26201: typedef __gnu_cxx::__normal_iterator 26201: const_iterator; 26201: typedef std::reverse_iterator const_reverse_iterator; 26201: typedef std::reverse_iterator reverse_iterator; 26201: 26201: 26201: static const size_type npos = static_cast(-1); 26201: 26201: protected: 26201: 26201: 26201: 26201: 26201: typedef const_iterator __const_iterator; 26201: 26201: 26201: private: 26201: 26201: 26201: typedef basic_string_view<_CharT, _Traits> __sv_type; 26201: 26201: template 26201: using _If_sv = enable_if_t< 26201: __and_, 26201: __not_>, 26201: __not_>>::value, 26201: _Res>; 26201: 26201: 26201: static __sv_type 26201: _S_to_string_view(__sv_type __svt) noexcept 26201: { return __svt; } 26201: 26201: 26201: 26201: 26201: 26201: struct __sv_wrapper 26201: { 26201: explicit __sv_wrapper(__sv_type __sv) noexcept : _M_sv(__sv) { } 26201: __sv_type _M_sv; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: explicit 26201: basic_string(__sv_wrapper __svw, const _Alloc& __a) 26201: : basic_string(__svw._M_sv.data(), __svw._M_sv.size(), __a) { } 26201: 26201: 26201: 26201: struct _Alloc_hider : allocator_type 26201: { 26201: 26201: 26201: 26201: 26201: _Alloc_hider(pointer __dat, const _Alloc& __a) 26201: : allocator_type(__a), _M_p(__dat) { } 26201: 26201: _Alloc_hider(pointer __dat, _Alloc&& __a = _Alloc()) 26201: : allocator_type(std::move(__a)), _M_p(__dat) { } 26201: 26201: 26201: pointer _M_p; 26201: }; 26201: 26201: _Alloc_hider _M_dataplus; 26201: size_type _M_string_length; 26201: 26201: enum { _S_local_capacity = 15 / sizeof(_CharT) }; 26201: 26201: union 26201: { 26201: _CharT _M_local_buf[_S_local_capacity + 1]; 26201: size_type _M_allocated_capacity; 26201: }; 26201: 26201: void 26201: _M_data(pointer __p) 26201: { _M_dataplus._M_p = __p; } 26201: 26201: void 26201: _M_length(size_type __length) 26201: { _M_string_length = __length; } 26201: 26201: pointer 26201: _M_data() const 26201: { return _M_dataplus._M_p; } 26201: 26201: pointer 26201: _M_local_data() 26201: { 26201: 26201: return std::pointer_traits::pointer_to(*_M_local_buf); 26201: 26201: 26201: 26201: } 26201: 26201: const_pointer 26201: _M_local_data() const 26201: { 26201: 26201: return std::pointer_traits::pointer_to(*_M_local_buf); 26201: 26201: 26201: 26201: } 26201: 26201: void 26201: _M_capacity(size_type __capacity) 26201: { _M_allocated_capacity = __capacity; } 26201: 26201: void 26201: _M_set_length(size_type __n) 26201: { 26201: _M_length(__n); 26201: traits_type::assign(_M_data()[__n], _CharT()); 26201: } 26201: 26201: bool 26201: _M_is_local() const 26201: { return _M_data() == _M_local_data(); } 26201: 26201: 26201: pointer 26201: _M_create(size_type&, size_type); 26201: 26201: void 26201: _M_dispose() 26201: { 26201: if (!_M_is_local()) 26201: _M_destroy(_M_allocated_capacity); 26201: } 26201: 26201: void 26201: _M_destroy(size_type __size) throw() 26201: { _Alloc_traits::deallocate(_M_get_allocator(), _M_data(), __size + 1); } 26201: 26201: 26201: 26201: template 26201: void 26201: _M_construct_aux(_InIterator __beg, _InIterator __end, 26201: std::__false_type) 26201: { 26201: typedef typename iterator_traits<_InIterator>::iterator_category _Tag; 26201: _M_construct(__beg, __end, _Tag()); 26201: } 26201: 26201: 26201: 26201: template 26201: void 26201: _M_construct_aux(_Integer __beg, _Integer __end, std::__true_type) 26201: { _M_construct_aux_2(static_cast(__beg), __end); } 26201: 26201: void 26201: _M_construct_aux_2(size_type __req, _CharT __c) 26201: { _M_construct(__req, __c); } 26201: 26201: template 26201: void 26201: _M_construct(_InIterator __beg, _InIterator __end) 26201: { 26201: typedef typename std::__is_integer<_InIterator>::__type _Integral; 26201: _M_construct_aux(__beg, __end, _Integral()); 26201: } 26201: 26201: 26201: template 26201: void 26201: _M_construct(_InIterator __beg, _InIterator __end, 26201: std::input_iterator_tag); 26201: 26201: 26201: 26201: template 26201: void 26201: _M_construct(_FwdIterator __beg, _FwdIterator __end, 26201: std::forward_iterator_tag); 26201: 26201: void 26201: _M_construct(size_type __req, _CharT __c); 26201: 26201: allocator_type& 26201: _M_get_allocator() 26201: { return _M_dataplus; } 26201: 26201: const allocator_type& 26201: _M_get_allocator() const 26201: { return _M_dataplus; } 26201: 26201: private: 26201: # 317 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: _M_check(size_type __pos, const char* __s) const 26201: { 26201: if (__pos > this->size()) 26201: __throw_out_of_range_fmt(("%s: __pos (which is %zu) > " "this->size() (which is %zu)") 26201: , 26201: __s, __pos, this->size()); 26201: return __pos; 26201: } 26201: 26201: void 26201: _M_check_length(size_type __n1, size_type __n2, const char* __s) const 26201: { 26201: if (this->max_size() - (this->size() - __n1) < __n2) 26201: __throw_length_error((__s)); 26201: } 26201: 26201: 26201: 26201: size_type 26201: _M_limit(size_type __pos, size_type __off) const noexcept 26201: { 26201: const bool __testoff = __off < this->size() - __pos; 26201: return __testoff ? __off : this->size() - __pos; 26201: } 26201: 26201: 26201: bool 26201: _M_disjunct(const _CharT* __s) const noexcept 26201: { 26201: return (less()(__s, _M_data()) 26201: || less()(_M_data() + this->size(), __s)); 26201: } 26201: 26201: 26201: 26201: static void 26201: _S_copy(_CharT* __d, const _CharT* __s, size_type __n) 26201: { 26201: if (__n == 1) 26201: traits_type::assign(*__d, *__s); 26201: else 26201: traits_type::copy(__d, __s, __n); 26201: } 26201: 26201: static void 26201: _S_move(_CharT* __d, const _CharT* __s, size_type __n) 26201: { 26201: if (__n == 1) 26201: traits_type::assign(*__d, *__s); 26201: else 26201: traits_type::move(__d, __s, __n); 26201: } 26201: 26201: static void 26201: _S_assign(_CharT* __d, size_type __n, _CharT __c) 26201: { 26201: if (__n == 1) 26201: traits_type::assign(*__d, __c); 26201: else 26201: traits_type::assign(__d, __n, __c); 26201: } 26201: 26201: 26201: 26201: template 26201: static void 26201: _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2) 26201: { 26201: for (; __k1 != __k2; ++__k1, (void)++__p) 26201: traits_type::assign(*__p, *__k1); 26201: } 26201: 26201: static void 26201: _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2) noexcept 26201: { _S_copy_chars(__p, __k1.base(), __k2.base()); } 26201: 26201: static void 26201: _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2) 26201: noexcept 26201: { _S_copy_chars(__p, __k1.base(), __k2.base()); } 26201: 26201: static void 26201: _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2) noexcept 26201: { _S_copy(__p, __k1, __k2 - __k1); } 26201: 26201: static void 26201: _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2) 26201: noexcept 26201: { _S_copy(__p, __k1, __k2 - __k1); } 26201: 26201: static int 26201: _S_compare(size_type __n1, size_type __n2) noexcept 26201: { 26201: const difference_type __d = difference_type(__n1 - __n2); 26201: 26201: if (__d > __gnu_cxx::__numeric_traits::__max) 26201: return __gnu_cxx::__numeric_traits::__max; 26201: else if (__d < __gnu_cxx::__numeric_traits::__min) 26201: return __gnu_cxx::__numeric_traits::__min; 26201: else 26201: return int(__d); 26201: } 26201: 26201: void 26201: _M_assign(const basic_string&); 26201: 26201: void 26201: _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, 26201: size_type __len2); 26201: 26201: void 26201: _M_erase(size_type __pos, size_type __n); 26201: 26201: public: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: basic_string() 26201: noexcept(is_nothrow_default_constructible<_Alloc>::value) 26201: : _M_dataplus(_M_local_data()) 26201: { _M_set_length(0); } 26201: 26201: 26201: 26201: 26201: explicit 26201: basic_string(const _Alloc& __a) noexcept 26201: : _M_dataplus(_M_local_data(), __a) 26201: { _M_set_length(0); } 26201: 26201: 26201: 26201: 26201: 26201: basic_string(const basic_string& __str) 26201: : _M_dataplus(_M_local_data(), 26201: _Alloc_traits::_S_select_on_copy(__str._M_get_allocator())) 26201: { _M_construct(__str._M_data(), __str._M_data() + __str.length()); } 26201: # 469 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string(const basic_string& __str, size_type __pos, 26201: const _Alloc& __a = _Alloc()) 26201: : _M_dataplus(_M_local_data(), __a) 26201: { 26201: const _CharT* __start = __str._M_data() 26201: + __str._M_check(__pos, "basic_string::basic_string"); 26201: _M_construct(__start, __start + __str._M_limit(__pos, npos)); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: basic_string(const basic_string& __str, size_type __pos, 26201: size_type __n) 26201: : _M_dataplus(_M_local_data()) 26201: { 26201: const _CharT* __start = __str._M_data() 26201: + __str._M_check(__pos, "basic_string::basic_string"); 26201: _M_construct(__start, __start + __str._M_limit(__pos, __n)); 26201: } 26201: # 500 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string(const basic_string& __str, size_type __pos, 26201: size_type __n, const _Alloc& __a) 26201: : _M_dataplus(_M_local_data(), __a) 26201: { 26201: const _CharT* __start 26201: = __str._M_data() + __str._M_check(__pos, "string::string"); 26201: _M_construct(__start, __start + __str._M_limit(__pos, __n)); 26201: } 26201: # 518 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string(const _CharT* __s, size_type __n, 26201: const _Alloc& __a = _Alloc()) 26201: : _M_dataplus(_M_local_data(), __a) 26201: { _M_construct(__s, __s + __n); } 26201: # 531 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template> 26201: 26201: basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()) 26201: : _M_dataplus(_M_local_data(), __a) 26201: { 26201: const _CharT* __end = __s ? __s + traits_type::length(__s) 26201: 26201: : reinterpret_cast(__alignof__(_CharT)); 26201: _M_construct(__s, __end, random_access_iterator_tag()); 26201: } 26201: # 551 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template> 26201: 26201: basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc()) 26201: : _M_dataplus(_M_local_data(), __a) 26201: { _M_construct(__n, __c); } 26201: # 565 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string(basic_string&& __str) noexcept 26201: : _M_dataplus(_M_local_data(), std::move(__str._M_get_allocator())) 26201: { 26201: if (__str._M_is_local()) 26201: { 26201: traits_type::copy(_M_local_buf, __str._M_local_buf, 26201: _S_local_capacity + 1); 26201: } 26201: else 26201: { 26201: _M_data(__str._M_data()); 26201: _M_capacity(__str._M_allocated_capacity); 26201: } 26201: 26201: 26201: 26201: 26201: _M_length(__str.length()); 26201: __str._M_data(__str._M_local_data()); 26201: __str._M_set_length(0); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc()) 26201: : _M_dataplus(_M_local_data(), __a) 26201: { _M_construct(__l.begin(), __l.end()); } 26201: 26201: basic_string(const basic_string& __str, const _Alloc& __a) 26201: : _M_dataplus(_M_local_data(), __a) 26201: { _M_construct(__str.begin(), __str.end()); } 26201: 26201: basic_string(basic_string&& __str, const _Alloc& __a) 26201: noexcept(_Alloc_traits::_S_always_equal()) 26201: : _M_dataplus(_M_local_data(), __a) 26201: { 26201: if (__str._M_is_local()) 26201: { 26201: traits_type::copy(_M_local_buf, __str._M_local_buf, 26201: _S_local_capacity + 1); 26201: _M_length(__str.length()); 26201: __str._M_set_length(0); 26201: } 26201: else if (_Alloc_traits::_S_always_equal() 26201: || __str.get_allocator() == __a) 26201: { 26201: _M_data(__str._M_data()); 26201: _M_length(__str.length()); 26201: _M_capacity(__str._M_allocated_capacity); 26201: __str._M_data(__str._M_local_buf); 26201: __str._M_set_length(0); 26201: } 26201: else 26201: _M_construct(__str.begin(), __str.end()); 26201: } 26201: # 633 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template> 26201: 26201: 26201: 26201: basic_string(_InputIterator __beg, _InputIterator __end, 26201: const _Alloc& __a = _Alloc()) 26201: : _M_dataplus(_M_local_data(), __a) 26201: { _M_construct(__beg, __end); } 26201: # 651 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template> 26201: basic_string(const _Tp& __t, size_type __pos, size_type __n, 26201: const _Alloc& __a = _Alloc()) 26201: : basic_string(_S_to_string_view(__t).substr(__pos, __n), __a) { } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template> 26201: explicit 26201: basic_string(const _Tp& __t, const _Alloc& __a = _Alloc()) 26201: : basic_string(__sv_wrapper(_S_to_string_view(__t)), __a) { } 26201: 26201: 26201: 26201: 26201: 26201: ~basic_string() 26201: { _M_dispose(); } 26201: 26201: 26201: 26201: 26201: 26201: basic_string& 26201: operator=(const basic_string& __str) 26201: { 26201: return this->assign(__str); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: basic_string& 26201: operator=(const _CharT* __s) 26201: { return this->assign(__s); } 26201: # 698 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: operator=(_CharT __c) 26201: { 26201: this->assign(1, __c); 26201: return *this; 26201: } 26201: # 715 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: operator=(basic_string&& __str) 26201: noexcept(_Alloc_traits::_S_nothrow_move()) 26201: { 26201: if (!_M_is_local() && _Alloc_traits::_S_propagate_on_move_assign() 26201: && !_Alloc_traits::_S_always_equal() 26201: && _M_get_allocator() != __str._M_get_allocator()) 26201: { 26201: 26201: _M_destroy(_M_allocated_capacity); 26201: _M_data(_M_local_data()); 26201: _M_set_length(0); 26201: } 26201: 26201: std::__alloc_on_move(_M_get_allocator(), __str._M_get_allocator()); 26201: 26201: if (__str._M_is_local()) 26201: { 26201: 26201: if (__str.size()) 26201: this->_S_copy(_M_data(), __str._M_data(), __str.size()); 26201: _M_set_length(__str.size()); 26201: } 26201: else if (_Alloc_traits::_S_propagate_on_move_assign() 26201: || _Alloc_traits::_S_always_equal() 26201: || _M_get_allocator() == __str._M_get_allocator()) 26201: { 26201: 26201: pointer __data = nullptr; 26201: size_type __capacity; 26201: if (!_M_is_local()) 26201: { 26201: if (_Alloc_traits::_S_always_equal()) 26201: { 26201: 26201: __data = _M_data(); 26201: __capacity = _M_allocated_capacity; 26201: } 26201: else 26201: _M_destroy(_M_allocated_capacity); 26201: } 26201: 26201: _M_data(__str._M_data()); 26201: _M_length(__str.length()); 26201: _M_capacity(__str._M_allocated_capacity); 26201: if (__data) 26201: { 26201: __str._M_data(__data); 26201: __str._M_capacity(__capacity); 26201: } 26201: else 26201: __str._M_data(__str._M_local_buf); 26201: } 26201: else 26201: assign(__str); 26201: __str.clear(); 26201: return *this; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: basic_string& 26201: operator=(initializer_list<_CharT> __l) 26201: { 26201: this->assign(__l.begin(), __l.size()); 26201: return *this; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: _If_sv<_Tp, basic_string&> 26201: operator=(const _Tp& __svt) 26201: { return this->assign(__svt); } 26201: 26201: 26201: 26201: 26201: 26201: operator __sv_type() const noexcept 26201: { return __sv_type(data(), size()); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: iterator 26201: begin() noexcept 26201: { return iterator(_M_data()); } 26201: 26201: 26201: 26201: 26201: 26201: const_iterator 26201: begin() const noexcept 26201: { return const_iterator(_M_data()); } 26201: 26201: 26201: 26201: 26201: 26201: iterator 26201: end() noexcept 26201: { return iterator(_M_data() + this->size()); } 26201: 26201: 26201: 26201: 26201: 26201: const_iterator 26201: end() const noexcept 26201: { return const_iterator(_M_data() + this->size()); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: reverse_iterator 26201: rbegin() noexcept 26201: { return reverse_iterator(this->end()); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: const_reverse_iterator 26201: rbegin() const noexcept 26201: { return const_reverse_iterator(this->end()); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: reverse_iterator 26201: rend() noexcept 26201: { return reverse_iterator(this->begin()); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: const_reverse_iterator 26201: rend() const noexcept 26201: { return const_reverse_iterator(this->begin()); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: const_iterator 26201: cbegin() const noexcept 26201: { return const_iterator(this->_M_data()); } 26201: 26201: 26201: 26201: 26201: 26201: const_iterator 26201: cend() const noexcept 26201: { return const_iterator(this->_M_data() + this->size()); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: const_reverse_iterator 26201: crbegin() const noexcept 26201: { return const_reverse_iterator(this->end()); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: const_reverse_iterator 26201: crend() const noexcept 26201: { return const_reverse_iterator(this->begin()); } 26201: 26201: 26201: public: 26201: 26201: 26201: 26201: size_type 26201: size() const noexcept 26201: { return _M_string_length; } 26201: 26201: 26201: 26201: size_type 26201: length() const noexcept 26201: { return _M_string_length; } 26201: 26201: 26201: size_type 26201: max_size() const noexcept 26201: { return (_Alloc_traits::max_size(_M_get_allocator()) - 1) / 2; } 26201: # 938 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: void 26201: resize(size_type __n, _CharT __c); 26201: # 951 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: void 26201: resize(size_type __n) 26201: { this->resize(__n, _CharT()); } 26201: 26201: 26201: 26201: void 26201: shrink_to_fit() noexcept 26201: { 26201: 26201: if (capacity() > size()) 26201: { 26201: try 26201: { reserve(0); } 26201: catch(...) 26201: { } 26201: } 26201: 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: size_type 26201: capacity() const noexcept 26201: { 26201: return _M_is_local() ? size_type(_S_local_capacity) 26201: : _M_allocated_capacity; 26201: } 26201: # 1000 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: void 26201: reserve(size_type __res_arg = 0); 26201: 26201: 26201: 26201: 26201: void 26201: clear() noexcept 26201: { _M_set_length(0); } 26201: 26201: 26201: 26201: 26201: 26201: [[__nodiscard__]] bool 26201: empty() const noexcept 26201: { return this->size() == 0; } 26201: # 1029 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: const_reference 26201: operator[] (size_type __pos) const noexcept 26201: { 26201: ; 26201: return _M_data()[__pos]; 26201: } 26201: # 1046 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: reference 26201: operator[](size_type __pos) 26201: { 26201: 26201: 26201: ; 26201: 26201: ; 26201: return _M_data()[__pos]; 26201: } 26201: # 1067 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: const_reference 26201: at(size_type __n) const 26201: { 26201: if (__n >= this->size()) 26201: __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") 26201: 26201: , 26201: __n, this->size()); 26201: return _M_data()[__n]; 26201: } 26201: # 1088 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: reference 26201: at(size_type __n) 26201: { 26201: if (__n >= size()) 26201: __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") 26201: 26201: , 26201: __n, this->size()); 26201: return _M_data()[__n]; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: reference 26201: front() noexcept 26201: { 26201: ; 26201: return operator[](0); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: const_reference 26201: front() const noexcept 26201: { 26201: ; 26201: return operator[](0); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: reference 26201: back() noexcept 26201: { 26201: ; 26201: return operator[](this->size() - 1); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: const_reference 26201: back() const noexcept 26201: { 26201: ; 26201: return operator[](this->size() - 1); 26201: } 26201: # 1151 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: operator+=(const basic_string& __str) 26201: { return this->append(__str); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: basic_string& 26201: operator+=(const _CharT* __s) 26201: { return this->append(__s); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: basic_string& 26201: operator+=(_CharT __c) 26201: { 26201: this->push_back(__c); 26201: return *this; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: basic_string& 26201: operator+=(initializer_list<_CharT> __l) 26201: { return this->append(__l.begin(), __l.size()); } 26201: # 1193 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: _If_sv<_Tp, basic_string&> 26201: operator+=(const _Tp& __svt) 26201: { return this->append(__svt); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: basic_string& 26201: append(const basic_string& __str) 26201: { return _M_append(__str._M_data(), __str.size()); } 26201: # 1221 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: append(const basic_string& __str, size_type __pos, size_type __n = npos) 26201: { return _M_append(__str._M_data() 26201: + __str._M_check(__pos, "basic_string::append"), 26201: __str._M_limit(__pos, __n)); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: basic_string& 26201: append(const _CharT* __s, size_type __n) 26201: { 26201: ; 26201: _M_check_length(size_type(0), __n, "basic_string::append"); 26201: return _M_append(__s, __n); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: basic_string& 26201: append(const _CharT* __s) 26201: { 26201: ; 26201: const size_type __n = traits_type::length(__s); 26201: _M_check_length(size_type(0), __n, "basic_string::append"); 26201: return _M_append(__s, __n); 26201: } 26201: # 1263 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: append(size_type __n, _CharT __c) 26201: { return _M_replace_aux(this->size(), size_type(0), __n, __c); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: basic_string& 26201: append(initializer_list<_CharT> __l) 26201: { return this->append(__l.begin(), __l.size()); } 26201: # 1287 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template> 26201: 26201: 26201: 26201: basic_string& 26201: append(_InputIterator __first, _InputIterator __last) 26201: { return this->replace(end(), end(), __first, __last); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: _If_sv<_Tp, basic_string&> 26201: append(const _Tp& __svt) 26201: { 26201: __sv_type __sv = __svt; 26201: return this->append(__sv.data(), __sv.size()); 26201: } 26201: # 1317 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: _If_sv<_Tp, basic_string&> 26201: append(const _Tp& __svt, size_type __pos, size_type __n = npos) 26201: { 26201: __sv_type __sv = __svt; 26201: return _M_append(__sv.data() 26201: + std::__sv_check(__sv.size(), __pos, "basic_string::append"), 26201: std::__sv_limit(__sv.size(), __pos, __n)); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: void 26201: push_back(_CharT __c) 26201: { 26201: const size_type __size = this->size(); 26201: if (__size + 1 > this->capacity()) 26201: this->_M_mutate(__size, size_type(0), 0, size_type(1)); 26201: traits_type::assign(this->_M_data()[__size], __c); 26201: this->_M_set_length(__size + 1); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: basic_string& 26201: assign(const basic_string& __str) 26201: { 26201: 26201: if (_Alloc_traits::_S_propagate_on_copy_assign()) 26201: { 26201: if (!_Alloc_traits::_S_always_equal() && !_M_is_local() 26201: && _M_get_allocator() != __str._M_get_allocator()) 26201: { 26201: 26201: 26201: if (__str.size() <= _S_local_capacity) 26201: { 26201: _M_destroy(_M_allocated_capacity); 26201: _M_data(_M_local_data()); 26201: _M_set_length(0); 26201: } 26201: else 26201: { 26201: const auto __len = __str.size(); 26201: auto __alloc = __str._M_get_allocator(); 26201: 26201: auto __ptr = _Alloc_traits::allocate(__alloc, __len + 1); 26201: _M_destroy(_M_allocated_capacity); 26201: _M_data(__ptr); 26201: _M_capacity(__len); 26201: _M_set_length(__len); 26201: } 26201: } 26201: std::__alloc_on_copy(_M_get_allocator(), __str._M_get_allocator()); 26201: } 26201: 26201: this->_M_assign(__str); 26201: return *this; 26201: } 26201: # 1392 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: assign(basic_string&& __str) 26201: noexcept(_Alloc_traits::_S_nothrow_move()) 26201: { 26201: 26201: 26201: return *this = std::move(__str); 26201: } 26201: # 1415 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: assign(const basic_string& __str, size_type __pos, size_type __n = npos) 26201: { return _M_replace(size_type(0), this->size(), __str._M_data() 26201: + __str._M_check(__pos, "basic_string::assign"), 26201: __str._M_limit(__pos, __n)); } 26201: # 1431 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: assign(const _CharT* __s, size_type __n) 26201: { 26201: ; 26201: return _M_replace(size_type(0), this->size(), __s, __n); 26201: } 26201: # 1447 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: assign(const _CharT* __s) 26201: { 26201: ; 26201: return _M_replace(size_type(0), this->size(), __s, 26201: traits_type::length(__s)); 26201: } 26201: # 1464 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: assign(size_type __n, _CharT __c) 26201: { return _M_replace_aux(size_type(0), this->size(), __n, __c); } 26201: # 1477 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template> 26201: 26201: 26201: 26201: basic_string& 26201: assign(_InputIterator __first, _InputIterator __last) 26201: { return this->replace(begin(), end(), __first, __last); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: basic_string& 26201: assign(initializer_list<_CharT> __l) 26201: { return this->assign(__l.begin(), __l.size()); } 26201: # 1503 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: _If_sv<_Tp, basic_string&> 26201: assign(const _Tp& __svt) 26201: { 26201: __sv_type __sv = __svt; 26201: return this->assign(__sv.data(), __sv.size()); 26201: } 26201: # 1518 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: _If_sv<_Tp, basic_string&> 26201: assign(const _Tp& __svt, size_type __pos, size_type __n = npos) 26201: { 26201: __sv_type __sv = __svt; 26201: return _M_replace(size_type(0), this->size(), 26201: __sv.data() 26201: + std::__sv_check(__sv.size(), __pos, "basic_string::assign"), 26201: std::__sv_limit(__sv.size(), __pos, __n)); 26201: } 26201: # 1546 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: iterator 26201: insert(const_iterator __p, size_type __n, _CharT __c) 26201: { 26201: ; 26201: const size_type __pos = __p - begin(); 26201: this->replace(__p, __p, __n, __c); 26201: return iterator(this->_M_data() + __pos); 26201: } 26201: # 1588 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template> 26201: iterator 26201: insert(const_iterator __p, _InputIterator __beg, _InputIterator __end) 26201: { 26201: ; 26201: const size_type __pos = __p - begin(); 26201: this->replace(__p, __p, __beg, __end); 26201: return iterator(this->_M_data() + __pos); 26201: } 26201: # 1624 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: iterator 26201: insert(const_iterator __p, initializer_list<_CharT> __l) 26201: { return this->insert(__p, __l.begin(), __l.end()); } 26201: # 1651 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: insert(size_type __pos1, const basic_string& __str) 26201: { return this->replace(__pos1, size_type(0), 26201: __str._M_data(), __str.size()); } 26201: # 1674 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: insert(size_type __pos1, const basic_string& __str, 26201: size_type __pos2, size_type __n = npos) 26201: { return this->replace(__pos1, size_type(0), __str._M_data() 26201: + __str._M_check(__pos2, "basic_string::insert"), 26201: __str._M_limit(__pos2, __n)); } 26201: # 1697 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: insert(size_type __pos, const _CharT* __s, size_type __n) 26201: { return this->replace(__pos, size_type(0), __s, __n); } 26201: # 1716 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: insert(size_type __pos, const _CharT* __s) 26201: { 26201: ; 26201: return this->replace(__pos, size_type(0), __s, 26201: traits_type::length(__s)); 26201: } 26201: # 1740 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: insert(size_type __pos, size_type __n, _CharT __c) 26201: { return _M_replace_aux(_M_check(__pos, "basic_string::insert"), 26201: size_type(0), __n, __c); } 26201: # 1758 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: iterator 26201: insert(__const_iterator __p, _CharT __c) 26201: { 26201: ; 26201: const size_type __pos = __p - begin(); 26201: _M_replace_aux(__pos, size_type(0), size_type(1), __c); 26201: return iterator(_M_data() + __pos); 26201: } 26201: # 1774 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: _If_sv<_Tp, basic_string&> 26201: insert(size_type __pos, const _Tp& __svt) 26201: { 26201: __sv_type __sv = __svt; 26201: return this->insert(__pos, __sv.data(), __sv.size()); 26201: } 26201: # 1790 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: _If_sv<_Tp, basic_string&> 26201: insert(size_type __pos1, const _Tp& __svt, 26201: size_type __pos2, size_type __n = npos) 26201: { 26201: __sv_type __sv = __svt; 26201: return this->replace(__pos1, size_type(0), 26201: __sv.data() 26201: + std::__sv_check(__sv.size(), __pos2, "basic_string::insert"), 26201: std::__sv_limit(__sv.size(), __pos2, __n)); 26201: } 26201: # 1818 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: erase(size_type __pos = 0, size_type __n = npos) 26201: { 26201: _M_check(__pos, "basic_string::erase"); 26201: if (__n == npos) 26201: this->_M_set_length(__pos); 26201: else if (__n != 0) 26201: this->_M_erase(__pos, _M_limit(__pos, __n)); 26201: return *this; 26201: } 26201: # 1837 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: iterator 26201: erase(__const_iterator __position) 26201: { 26201: 26201: ; 26201: const size_type __pos = __position - begin(); 26201: this->_M_erase(__pos, size_type(1)); 26201: return iterator(_M_data() + __pos); 26201: } 26201: # 1856 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: iterator 26201: erase(__const_iterator __first, __const_iterator __last) 26201: { 26201: 26201: ; 26201: const size_type __pos = __first - begin(); 26201: if (__last == end()) 26201: this->_M_set_length(__pos); 26201: else 26201: this->_M_erase(__pos, __last - __first); 26201: return iterator(this->_M_data() + __pos); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: void 26201: pop_back() noexcept 26201: { 26201: ; 26201: _M_erase(size() - 1, 1); 26201: } 26201: # 1900 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: replace(size_type __pos, size_type __n, const basic_string& __str) 26201: { return this->replace(__pos, __n, __str._M_data(), __str.size()); } 26201: # 1922 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: replace(size_type __pos1, size_type __n1, const basic_string& __str, 26201: size_type __pos2, size_type __n2 = npos) 26201: { return this->replace(__pos1, __n1, __str._M_data() 26201: + __str._M_check(__pos2, "basic_string::replace"), 26201: __str._M_limit(__pos2, __n2)); } 26201: # 1947 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: replace(size_type __pos, size_type __n1, const _CharT* __s, 26201: size_type __n2) 26201: { 26201: ; 26201: return _M_replace(_M_check(__pos, "basic_string::replace"), 26201: _M_limit(__pos, __n1), __s, __n2); 26201: } 26201: # 1972 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: replace(size_type __pos, size_type __n1, const _CharT* __s) 26201: { 26201: ; 26201: return this->replace(__pos, __n1, __s, traits_type::length(__s)); 26201: } 26201: # 1996 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c) 26201: { return _M_replace_aux(_M_check(__pos, "basic_string::replace"), 26201: _M_limit(__pos, __n1), __n2, __c); } 26201: # 2014 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: replace(__const_iterator __i1, __const_iterator __i2, 26201: const basic_string& __str) 26201: { return this->replace(__i1, __i2, __str._M_data(), __str.size()); } 26201: # 2034 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: replace(__const_iterator __i1, __const_iterator __i2, 26201: const _CharT* __s, size_type __n) 26201: { 26201: 26201: ; 26201: return this->replace(__i1 - begin(), __i2 - __i1, __s, __n); 26201: } 26201: # 2056 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: replace(__const_iterator __i1, __const_iterator __i2, const _CharT* __s) 26201: { 26201: ; 26201: return this->replace(__i1, __i2, __s, traits_type::length(__s)); 26201: } 26201: # 2077 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: replace(__const_iterator __i1, __const_iterator __i2, size_type __n, 26201: _CharT __c) 26201: { 26201: 26201: ; 26201: return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __c); 26201: } 26201: # 2102 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template> 26201: basic_string& 26201: replace(const_iterator __i1, const_iterator __i2, 26201: _InputIterator __k1, _InputIterator __k2) 26201: { 26201: 26201: ; 26201: ; 26201: return this->_M_replace_dispatch(__i1, __i2, __k1, __k2, 26201: std::__false_type()); 26201: } 26201: # 2134 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& 26201: replace(__const_iterator __i1, __const_iterator __i2, 26201: _CharT* __k1, _CharT* __k2) 26201: { 26201: 26201: ; 26201: ; 26201: return this->replace(__i1 - begin(), __i2 - __i1, 26201: __k1, __k2 - __k1); 26201: } 26201: 26201: basic_string& 26201: replace(__const_iterator __i1, __const_iterator __i2, 26201: const _CharT* __k1, const _CharT* __k2) 26201: { 26201: 26201: ; 26201: ; 26201: return this->replace(__i1 - begin(), __i2 - __i1, 26201: __k1, __k2 - __k1); 26201: } 26201: 26201: basic_string& 26201: replace(__const_iterator __i1, __const_iterator __i2, 26201: iterator __k1, iterator __k2) 26201: { 26201: 26201: ; 26201: ; 26201: return this->replace(__i1 - begin(), __i2 - __i1, 26201: __k1.base(), __k2 - __k1); 26201: } 26201: 26201: basic_string& 26201: replace(__const_iterator __i1, __const_iterator __i2, 26201: const_iterator __k1, const_iterator __k2) 26201: { 26201: 26201: ; 26201: ; 26201: return this->replace(__i1 - begin(), __i2 - __i1, 26201: __k1.base(), __k2 - __k1); 26201: } 26201: # 2193 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string& replace(const_iterator __i1, const_iterator __i2, 26201: initializer_list<_CharT> __l) 26201: { return this->replace(__i1, __i2, __l.begin(), __l.size()); } 26201: # 2206 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: _If_sv<_Tp, basic_string&> 26201: replace(size_type __pos, size_type __n, const _Tp& __svt) 26201: { 26201: __sv_type __sv = __svt; 26201: return this->replace(__pos, __n, __sv.data(), __sv.size()); 26201: } 26201: # 2223 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: _If_sv<_Tp, basic_string&> 26201: replace(size_type __pos1, size_type __n1, const _Tp& __svt, 26201: size_type __pos2, size_type __n2 = npos) 26201: { 26201: __sv_type __sv = __svt; 26201: return this->replace(__pos1, __n1, 26201: __sv.data() 26201: + std::__sv_check(__sv.size(), __pos2, "basic_string::replace"), 26201: std::__sv_limit(__sv.size(), __pos2, __n2)); 26201: } 26201: # 2244 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: _If_sv<_Tp, basic_string&> 26201: replace(const_iterator __i1, const_iterator __i2, const _Tp& __svt) 26201: { 26201: __sv_type __sv = __svt; 26201: return this->replace(__i1 - begin(), __i2 - __i1, __sv); 26201: } 26201: 26201: 26201: private: 26201: template 26201: basic_string& 26201: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 26201: _Integer __n, _Integer __val, __true_type) 26201: { return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __val); } 26201: 26201: template 26201: basic_string& 26201: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 26201: _InputIterator __k1, _InputIterator __k2, 26201: __false_type); 26201: 26201: basic_string& 26201: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, 26201: _CharT __c); 26201: 26201: basic_string& 26201: _M_replace(size_type __pos, size_type __len1, const _CharT* __s, 26201: const size_type __len2); 26201: 26201: basic_string& 26201: _M_append(const _CharT* __s, size_type __n); 26201: 26201: public: 26201: # 2291 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: copy(_CharT* __s, size_type __n, size_type __pos = 0) const; 26201: # 2301 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: void 26201: swap(basic_string& __s) noexcept; 26201: # 2311 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: const _CharT* 26201: c_str() const noexcept 26201: { return _M_data(); } 26201: # 2323 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: const _CharT* 26201: data() const noexcept 26201: { return _M_data(); } 26201: # 2334 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: _CharT* 26201: data() noexcept 26201: { return _M_data(); } 26201: 26201: 26201: 26201: 26201: 26201: allocator_type 26201: get_allocator() const noexcept 26201: { return _M_get_allocator(); } 26201: # 2358 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: find(const _CharT* __s, size_type __pos, size_type __n) const 26201: noexcept; 26201: # 2372 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: find(const basic_string& __str, size_type __pos = 0) const 26201: noexcept 26201: { return this->find(__str.data(), __pos, __str.size()); } 26201: # 2384 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: _If_sv<_Tp, size_type> 26201: find(const _Tp& __svt, size_type __pos = 0) const 26201: noexcept(is_same<_Tp, __sv_type>::value) 26201: { 26201: __sv_type __sv = __svt; 26201: return this->find(__sv.data(), __pos, __sv.size()); 26201: } 26201: # 2404 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: find(const _CharT* __s, size_type __pos = 0) const noexcept 26201: { 26201: ; 26201: return this->find(__s, __pos, traits_type::length(__s)); 26201: } 26201: # 2421 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: find(_CharT __c, size_type __pos = 0) const noexcept; 26201: # 2434 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: rfind(const basic_string& __str, size_type __pos = npos) const 26201: noexcept 26201: { return this->rfind(__str.data(), __pos, __str.size()); } 26201: # 2446 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: _If_sv<_Tp, size_type> 26201: rfind(const _Tp& __svt, size_type __pos = npos) const 26201: noexcept(is_same<_Tp, __sv_type>::value) 26201: { 26201: __sv_type __sv = __svt; 26201: return this->rfind(__sv.data(), __pos, __sv.size()); 26201: } 26201: # 2468 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: rfind(const _CharT* __s, size_type __pos, size_type __n) const 26201: noexcept; 26201: # 2482 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: rfind(const _CharT* __s, size_type __pos = npos) const 26201: { 26201: ; 26201: return this->rfind(__s, __pos, traits_type::length(__s)); 26201: } 26201: # 2499 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: rfind(_CharT __c, size_type __pos = npos) const noexcept; 26201: # 2513 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: find_first_of(const basic_string& __str, size_type __pos = 0) const 26201: noexcept 26201: { return this->find_first_of(__str.data(), __pos, __str.size()); } 26201: # 2526 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: _If_sv<_Tp, size_type> 26201: find_first_of(const _Tp& __svt, size_type __pos = 0) const 26201: noexcept(is_same<_Tp, __sv_type>::value) 26201: { 26201: __sv_type __sv = __svt; 26201: return this->find_first_of(__sv.data(), __pos, __sv.size()); 26201: } 26201: # 2548 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const 26201: noexcept; 26201: # 2562 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: find_first_of(const _CharT* __s, size_type __pos = 0) const 26201: noexcept 26201: { 26201: ; 26201: return this->find_first_of(__s, __pos, traits_type::length(__s)); 26201: } 26201: # 2582 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: find_first_of(_CharT __c, size_type __pos = 0) const noexcept 26201: { return this->find(__c, __pos); } 26201: # 2597 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: find_last_of(const basic_string& __str, size_type __pos = npos) const 26201: noexcept 26201: { return this->find_last_of(__str.data(), __pos, __str.size()); } 26201: # 2610 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: _If_sv<_Tp, size_type> 26201: find_last_of(const _Tp& __svt, size_type __pos = npos) const 26201: noexcept(is_same<_Tp, __sv_type>::value) 26201: { 26201: __sv_type __sv = __svt; 26201: return this->find_last_of(__sv.data(), __pos, __sv.size()); 26201: } 26201: # 2632 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const 26201: noexcept; 26201: # 2646 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: find_last_of(const _CharT* __s, size_type __pos = npos) const 26201: noexcept 26201: { 26201: ; 26201: return this->find_last_of(__s, __pos, traits_type::length(__s)); 26201: } 26201: # 2666 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: find_last_of(_CharT __c, size_type __pos = npos) const noexcept 26201: { return this->rfind(__c, __pos); } 26201: # 2680 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: find_first_not_of(const basic_string& __str, size_type __pos = 0) const 26201: noexcept 26201: { return this->find_first_not_of(__str.data(), __pos, __str.size()); } 26201: # 2693 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: _If_sv<_Tp, size_type> 26201: find_first_not_of(const _Tp& __svt, size_type __pos = 0) const 26201: noexcept(is_same<_Tp, __sv_type>::value) 26201: { 26201: __sv_type __sv = __svt; 26201: return this->find_first_not_of(__sv.data(), __pos, __sv.size()); 26201: } 26201: # 2715 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: find_first_not_of(const _CharT* __s, size_type __pos, 26201: size_type __n) const noexcept; 26201: # 2729 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: find_first_not_of(const _CharT* __s, size_type __pos = 0) const 26201: noexcept 26201: { 26201: ; 26201: return this->find_first_not_of(__s, __pos, traits_type::length(__s)); 26201: } 26201: # 2747 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: find_first_not_of(_CharT __c, size_type __pos = 0) const 26201: noexcept; 26201: # 2762 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: find_last_not_of(const basic_string& __str, size_type __pos = npos) const 26201: noexcept 26201: { return this->find_last_not_of(__str.data(), __pos, __str.size()); } 26201: # 2775 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: _If_sv<_Tp, size_type> 26201: find_last_not_of(const _Tp& __svt, size_type __pos = npos) const 26201: noexcept(is_same<_Tp, __sv_type>::value) 26201: { 26201: __sv_type __sv = __svt; 26201: return this->find_last_not_of(__sv.data(), __pos, __sv.size()); 26201: } 26201: # 2797 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: find_last_not_of(const _CharT* __s, size_type __pos, 26201: size_type __n) const noexcept; 26201: # 2811 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: find_last_not_of(const _CharT* __s, size_type __pos = npos) const 26201: noexcept 26201: { 26201: ; 26201: return this->find_last_not_of(__s, __pos, traits_type::length(__s)); 26201: } 26201: # 2829 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: size_type 26201: find_last_not_of(_CharT __c, size_type __pos = npos) const 26201: noexcept; 26201: # 2845 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: basic_string 26201: substr(size_type __pos = 0, size_type __n = npos) const 26201: { return basic_string(*this, 26201: _M_check(__pos, "basic_string::substr"), __n); } 26201: # 2864 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: int 26201: compare(const basic_string& __str) const 26201: { 26201: const size_type __size = this->size(); 26201: const size_type __osize = __str.size(); 26201: const size_type __len = std::min(__size, __osize); 26201: 26201: int __r = traits_type::compare(_M_data(), __str.data(), __len); 26201: if (!__r) 26201: __r = _S_compare(__size, __osize); 26201: return __r; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: _If_sv<_Tp, int> 26201: compare(const _Tp& __svt) const 26201: noexcept(is_same<_Tp, __sv_type>::value) 26201: { 26201: __sv_type __sv = __svt; 26201: const size_type __size = this->size(); 26201: const size_type __osize = __sv.size(); 26201: const size_type __len = std::min(__size, __osize); 26201: 26201: int __r = traits_type::compare(_M_data(), __sv.data(), __len); 26201: if (!__r) 26201: __r = _S_compare(__size, __osize); 26201: return __r; 26201: } 26201: # 2907 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: _If_sv<_Tp, int> 26201: compare(size_type __pos, size_type __n, const _Tp& __svt) const 26201: noexcept(is_same<_Tp, __sv_type>::value) 26201: { 26201: __sv_type __sv = __svt; 26201: return __sv_type(*this).substr(__pos, __n).compare(__sv); 26201: } 26201: # 2926 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: _If_sv<_Tp, int> 26201: compare(size_type __pos1, size_type __n1, const _Tp& __svt, 26201: size_type __pos2, size_type __n2 = npos) const 26201: noexcept(is_same<_Tp, __sv_type>::value) 26201: { 26201: __sv_type __sv = __svt; 26201: return __sv_type(*this) 26201: .substr(__pos1, __n1).compare(__sv.substr(__pos2, __n2)); 26201: } 26201: # 2957 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: int 26201: compare(size_type __pos, size_type __n, const basic_string& __str) const; 26201: # 2983 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: int 26201: compare(size_type __pos1, size_type __n1, const basic_string& __str, 26201: size_type __pos2, size_type __n2 = npos) const; 26201: # 3001 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: int 26201: compare(const _CharT* __s) const noexcept; 26201: # 3025 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: int 26201: compare(size_type __pos, size_type __n1, const _CharT* __s) const; 26201: # 3052 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: int 26201: compare(size_type __pos, size_type __n1, const _CharT* __s, 26201: size_type __n2) const; 26201: # 3083 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template friend class basic_stringbuf; 26201: }; 26201: } 26201: # 6007 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: namespace __cxx11 { 26201: template::value_type, 26201: typename _Allocator = allocator<_CharT>, 26201: typename = _RequireInputIter<_InputIterator>, 26201: typename = _RequireAllocator<_Allocator>> 26201: basic_string(_InputIterator, _InputIterator, _Allocator = _Allocator()) 26201: -> basic_string<_CharT, char_traits<_CharT>, _Allocator>; 26201: 26201: 26201: 26201: template, 26201: typename = _RequireAllocator<_Allocator>> 26201: basic_string(basic_string_view<_CharT, _Traits>, const _Allocator& = _Allocator()) 26201: -> basic_string<_CharT, _Traits, _Allocator>; 26201: 26201: template, 26201: typename = _RequireAllocator<_Allocator>> 26201: basic_string(basic_string_view<_CharT, _Traits>, 26201: typename basic_string<_CharT, _Traits, _Allocator>::size_type, 26201: typename basic_string<_CharT, _Traits, _Allocator>::size_type, 26201: const _Allocator& = _Allocator()) 26201: -> basic_string<_CharT, _Traits, _Allocator>; 26201: } 26201: # 6042 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: basic_string<_CharT, _Traits, _Alloc> 26201: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 26201: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 26201: { 26201: basic_string<_CharT, _Traits, _Alloc> __str(__lhs); 26201: __str.append(__rhs); 26201: return __str; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: basic_string<_CharT,_Traits,_Alloc> 26201: operator+(const _CharT* __lhs, 26201: const basic_string<_CharT,_Traits,_Alloc>& __rhs); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: basic_string<_CharT,_Traits,_Alloc> 26201: operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline basic_string<_CharT, _Traits, _Alloc> 26201: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 26201: const _CharT* __rhs) 26201: { 26201: basic_string<_CharT, _Traits, _Alloc> __str(__lhs); 26201: __str.append(__rhs); 26201: return __str; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline basic_string<_CharT, _Traits, _Alloc> 26201: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs) 26201: { 26201: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 26201: typedef typename __string_type::size_type __size_type; 26201: __string_type __str(__lhs); 26201: __str.append(__size_type(1), __rhs); 26201: return __str; 26201: } 26201: 26201: 26201: template 26201: inline basic_string<_CharT, _Traits, _Alloc> 26201: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 26201: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 26201: { return std::move(__lhs.append(__rhs)); } 26201: 26201: template 26201: inline basic_string<_CharT, _Traits, _Alloc> 26201: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 26201: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 26201: { return std::move(__rhs.insert(0, __lhs)); } 26201: 26201: template 26201: inline basic_string<_CharT, _Traits, _Alloc> 26201: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 26201: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 26201: { 26201: 26201: using _Alloc_traits = allocator_traits<_Alloc>; 26201: bool __use_rhs = false; 26201: if constexpr (typename _Alloc_traits::is_always_equal{}) 26201: __use_rhs = true; 26201: else if (__lhs.get_allocator() == __rhs.get_allocator()) 26201: __use_rhs = true; 26201: if (__use_rhs) 26201: 26201: { 26201: const auto __size = __lhs.size() + __rhs.size(); 26201: if (__size > __lhs.capacity() && __size <= __rhs.capacity()) 26201: return std::move(__rhs.insert(0, __lhs)); 26201: } 26201: return std::move(__lhs.append(__rhs)); 26201: } 26201: 26201: template 26201: inline basic_string<_CharT, _Traits, _Alloc> 26201: operator+(const _CharT* __lhs, 26201: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 26201: { return std::move(__rhs.insert(0, __lhs)); } 26201: 26201: template 26201: inline basic_string<_CharT, _Traits, _Alloc> 26201: operator+(_CharT __lhs, 26201: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 26201: { return std::move(__rhs.insert(0, 1, __lhs)); } 26201: 26201: template 26201: inline basic_string<_CharT, _Traits, _Alloc> 26201: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 26201: const _CharT* __rhs) 26201: { return std::move(__lhs.append(__rhs)); } 26201: 26201: template 26201: inline basic_string<_CharT, _Traits, _Alloc> 26201: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 26201: _CharT __rhs) 26201: { return std::move(__lhs.append(1, __rhs)); } 26201: # 6173 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: inline bool 26201: operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 26201: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 26201: noexcept 26201: { return __lhs.compare(__rhs) == 0; } 26201: 26201: template 26201: inline 26201: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, bool>::__type 26201: operator==(const basic_string<_CharT>& __lhs, 26201: const basic_string<_CharT>& __rhs) noexcept 26201: { return (__lhs.size() == __rhs.size() 26201: && !std::char_traits<_CharT>::compare(__lhs.data(), __rhs.data(), 26201: __lhs.size())); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline bool 26201: operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 26201: const _CharT* __rhs) 26201: { return __lhs.compare(__rhs) == 0; } 26201: # 6236 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: inline bool 26201: operator==(const _CharT* __lhs, 26201: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 26201: { return __rhs.compare(__lhs) == 0; } 26201: # 6249 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: inline bool 26201: operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 26201: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 26201: noexcept 26201: { return !(__lhs == __rhs); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline bool 26201: operator!=(const _CharT* __lhs, 26201: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 26201: { return !(__lhs == __rhs); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline bool 26201: operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 26201: const _CharT* __rhs) 26201: { return !(__lhs == __rhs); } 26201: # 6287 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: inline bool 26201: operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 26201: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 26201: noexcept 26201: { return __lhs.compare(__rhs) < 0; } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline bool 26201: operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 26201: const _CharT* __rhs) 26201: { return __lhs.compare(__rhs) < 0; } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline bool 26201: operator<(const _CharT* __lhs, 26201: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 26201: { return __rhs.compare(__lhs) > 0; } 26201: # 6325 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: inline bool 26201: operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 26201: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 26201: noexcept 26201: { return __lhs.compare(__rhs) > 0; } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline bool 26201: operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 26201: const _CharT* __rhs) 26201: { return __lhs.compare(__rhs) > 0; } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline bool 26201: operator>(const _CharT* __lhs, 26201: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 26201: { return __rhs.compare(__lhs) < 0; } 26201: # 6363 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: inline bool 26201: operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 26201: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 26201: noexcept 26201: { return __lhs.compare(__rhs) <= 0; } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline bool 26201: operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 26201: const _CharT* __rhs) 26201: { return __lhs.compare(__rhs) <= 0; } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline bool 26201: operator<=(const _CharT* __lhs, 26201: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 26201: { return __rhs.compare(__lhs) >= 0; } 26201: # 6401 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: inline bool 26201: operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 26201: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 26201: noexcept 26201: { return __lhs.compare(__rhs) >= 0; } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline bool 26201: operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 26201: const _CharT* __rhs) 26201: { return __lhs.compare(__rhs) >= 0; } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline bool 26201: operator>=(const _CharT* __lhs, 26201: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 26201: { return __rhs.compare(__lhs) <= 0; } 26201: # 6440 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: inline void 26201: swap(basic_string<_CharT, _Traits, _Alloc>& __lhs, 26201: basic_string<_CharT, _Traits, _Alloc>& __rhs) 26201: noexcept(noexcept(__lhs.swap(__rhs))) 26201: { __lhs.swap(__rhs); } 26201: # 6460 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: operator>>(basic_istream<_CharT, _Traits>& __is, 26201: basic_string<_CharT, _Traits, _Alloc>& __str); 26201: 26201: template<> 26201: basic_istream& 26201: operator>>(basic_istream& __is, basic_string& __str); 26201: # 6478 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: inline basic_ostream<_CharT, _Traits>& 26201: operator<<(basic_ostream<_CharT, _Traits>& __os, 26201: const basic_string<_CharT, _Traits, _Alloc>& __str) 26201: { 26201: 26201: 26201: return __ostream_insert(__os, __str.data(), __str.size()); 26201: } 26201: # 6501 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: getline(basic_istream<_CharT, _Traits>& __is, 26201: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim); 26201: # 6518 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template 26201: inline basic_istream<_CharT, _Traits>& 26201: getline(basic_istream<_CharT, _Traits>& __is, 26201: basic_string<_CharT, _Traits, _Alloc>& __str) 26201: { return std::getline(__is, __str, __is.widen('\n')); } 26201: 26201: 26201: 26201: template 26201: inline basic_istream<_CharT, _Traits>& 26201: getline(basic_istream<_CharT, _Traits>&& __is, 26201: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) 26201: { return std::getline(__is, __str, __delim); } 26201: 26201: 26201: template 26201: inline basic_istream<_CharT, _Traits>& 26201: getline(basic_istream<_CharT, _Traits>&& __is, 26201: basic_string<_CharT, _Traits, _Alloc>& __str) 26201: { return std::getline(__is, __str); } 26201: 26201: 26201: template<> 26201: basic_istream& 26201: getline(basic_istream& __in, basic_string& __str, 26201: char __delim); 26201: 26201: 26201: template<> 26201: basic_istream& 26201: getline(basic_istream& __in, basic_string& __str, 26201: wchar_t __delim); 26201: 26201: 26201: 26201: } 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/ext/string_conversions.h" 1 3 26201: # 30 "/usr/x86_64-linux-gnu/include/c++/10/ext/string_conversions.h" 3 26201: #define _STRING_CONVERSIONS_H 1 26201: 26201: 26201: # 33 "/usr/x86_64-linux-gnu/include/c++/10/ext/string_conversions.h" 3 26201: # 41 "/usr/x86_64-linux-gnu/include/c++/10/ext/string_conversions.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/cstdlib" 1 3 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/cstdlib" 3 26201: 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/cstdlib" 3 26201: # 42 "/usr/x86_64-linux-gnu/include/c++/10/ext/string_conversions.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/cwchar" 1 3 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/cwchar" 3 26201: 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/cwchar" 3 26201: # 43 "/usr/x86_64-linux-gnu/include/c++/10/ext/string_conversions.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/cstdio" 1 3 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/cstdio" 3 26201: 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/cstdio" 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/stdio.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/stdio.h" 3 26201: #define _STDIO_H 1 26201: 26201: #define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 3 26201: #undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION 26201: 26201: 26201: 26201: 26201: 26201: #undef __GLIBC_USE_LIB_EXT2 26201: 26201: 26201: #define __GLIBC_USE_LIB_EXT2 1 26201: # 49 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 3 26201: #undef __GLIBC_USE_IEC_60559_BFP_EXT 26201: 26201: #define __GLIBC_USE_IEC_60559_BFP_EXT 1 26201: 26201: 26201: 26201: #undef __GLIBC_USE_IEC_60559_BFP_EXT_C2X 26201: 26201: #define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 1 26201: # 66 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 3 26201: #undef __GLIBC_USE_IEC_60559_FUNCS_EXT 26201: 26201: #define __GLIBC_USE_IEC_60559_FUNCS_EXT 1 26201: 26201: 26201: 26201: #undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 26201: 26201: #define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: #undef __GLIBC_USE_IEC_60559_TYPES_EXT 26201: 26201: #define __GLIBC_USE_IEC_60559_TYPES_EXT 1 26201: # 28 "/usr/x86_64-linux-gnu/include/stdio.h" 2 3 26201: 26201: extern "C" { 26201: 26201: #define __need_size_t 26201: #define __need_NULL 26201: # 1 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 1 3 4 26201: # 155 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_ptrdiff_t 26201: # 231 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_size_t 26201: # 340 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_wchar_t 26201: # 390 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef NULL 26201: 26201: #define NULL __null 26201: # 401 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stddef.h" 3 4 26201: #undef __need_NULL 26201: 26201: 26201: 26201: 26201: #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER) 26201: # 34 "/usr/x86_64-linux-gnu/include/stdio.h" 2 3 26201: 26201: #define __need___va_list 26201: # 1 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stdarg.h" 1 3 4 26201: # 34 "/usr/lib/gcc-cross/x86_64-linux-gnu/10/include/stdarg.h" 3 4 26201: #undef __need___va_list 26201: # 37 "/usr/x86_64-linux-gnu/include/stdio.h" 2 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types/__fpos_t.h" 1 3 26201: 26201: #define _____fpos_t_defined 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: typedef struct _G_fpos_t 26201: { 26201: __off_t __pos; 26201: __mbstate_t __state; 26201: } __fpos_t; 26201: # 40 "/usr/x86_64-linux-gnu/include/stdio.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types/__fpos64_t.h" 1 3 26201: 26201: #define _____fpos64_t_defined 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: typedef struct _G_fpos64_t 26201: { 26201: __off64_t __pos; 26201: __mbstate_t __state; 26201: } __fpos64_t; 26201: # 41 "/usr/x86_64-linux-gnu/include/stdio.h" 2 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types/struct_FILE.h" 1 3 26201: # 19 "/usr/x86_64-linux-gnu/include/bits/types/struct_FILE.h" 3 26201: #define __struct_FILE_defined 1 26201: # 35 "/usr/x86_64-linux-gnu/include/bits/types/struct_FILE.h" 3 26201: struct _IO_FILE; 26201: struct _IO_marker; 26201: struct _IO_codecvt; 26201: struct _IO_wide_data; 26201: 26201: 26201: 26201: 26201: typedef void _IO_lock_t; 26201: 26201: 26201: 26201: 26201: 26201: struct _IO_FILE 26201: { 26201: int _flags; 26201: 26201: 26201: char *_IO_read_ptr; 26201: char *_IO_read_end; 26201: char *_IO_read_base; 26201: char *_IO_write_base; 26201: char *_IO_write_ptr; 26201: char *_IO_write_end; 26201: char *_IO_buf_base; 26201: char *_IO_buf_end; 26201: 26201: 26201: char *_IO_save_base; 26201: char *_IO_backup_base; 26201: char *_IO_save_end; 26201: 26201: struct _IO_marker *_markers; 26201: 26201: struct _IO_FILE *_chain; 26201: 26201: int _fileno; 26201: int _flags2; 26201: __off_t _old_offset; 26201: 26201: 26201: unsigned short _cur_column; 26201: signed char _vtable_offset; 26201: char _shortbuf[1]; 26201: 26201: _IO_lock_t *_lock; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: __off64_t _offset; 26201: 26201: struct _IO_codecvt *_codecvt; 26201: struct _IO_wide_data *_wide_data; 26201: struct _IO_FILE *_freeres_list; 26201: void *_freeres_buf; 26201: size_t __pad5; 26201: int _mode; 26201: 26201: char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; 26201: }; 26201: 26201: 26201: #define __getc_unlocked_body(_fp) (__glibc_unlikely ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end) ? __uflow (_fp) : *(unsigned char *) (_fp)->_IO_read_ptr++) 26201: 26201: 26201: 26201: #define __putc_unlocked_body(_ch,_fp) (__glibc_unlikely ((_fp)->_IO_write_ptr >= (_fp)->_IO_write_end) ? __overflow (_fp, (unsigned char) (_ch)) : (unsigned char) (*(_fp)->_IO_write_ptr++ = (_ch))) 26201: 26201: 26201: 26201: 26201: #define _IO_EOF_SEEN 0x0010 26201: #define __feof_unlocked_body(_fp) (((_fp)->_flags & _IO_EOF_SEEN) != 0) 26201: 26201: #define _IO_ERR_SEEN 0x0020 26201: #define __ferror_unlocked_body(_fp) (((_fp)->_flags & _IO_ERR_SEEN) != 0) 26201: 26201: #define _IO_USER_LOCK 0x8000 26201: # 44 "/usr/x86_64-linux-gnu/include/stdio.h" 2 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/types/cookie_io_functions_t.h" 1 3 26201: # 19 "/usr/x86_64-linux-gnu/include/bits/types/cookie_io_functions_t.h" 3 26201: #define __cookie_io_functions_t_defined 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: typedef __ssize_t cookie_read_function_t (void *__cookie, char *__buf, 26201: size_t __nbytes); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: typedef __ssize_t cookie_write_function_t (void *__cookie, const char *__buf, 26201: size_t __nbytes); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: typedef int cookie_seek_function_t (void *__cookie, __off64_t *__pos, int __w); 26201: 26201: 26201: typedef int cookie_close_function_t (void *__cookie); 26201: 26201: 26201: 26201: 26201: 26201: 26201: typedef struct _IO_cookie_io_functions_t 26201: { 26201: cookie_read_function_t *read; 26201: cookie_write_function_t *write; 26201: cookie_seek_function_t *seek; 26201: cookie_close_function_t *close; 26201: } cookie_io_functions_t; 26201: # 47 "/usr/x86_64-linux-gnu/include/stdio.h" 2 3 26201: 26201: 26201: 26201: 26201: 26201: typedef __gnuc_va_list va_list; 26201: #define _VA_LIST_DEFINED 26201: # 86 "/usr/x86_64-linux-gnu/include/stdio.h" 3 26201: typedef __fpos64_t fpos_t; 26201: 26201: 26201: typedef __fpos64_t fpos64_t; 26201: 26201: 26201: 26201: #define _IOFBF 0 26201: #define _IOLBF 1 26201: #define _IONBF 2 26201: 26201: 26201: 26201: #define BUFSIZ 8192 26201: 26201: 26201: 26201: 26201: #define EOF (-1) 26201: 26201: 26201: 26201: 26201: #define SEEK_SET 0 26201: #define SEEK_CUR 1 26201: #define SEEK_END 2 26201: 26201: #define SEEK_DATA 3 26201: #define SEEK_HOLE 4 26201: 26201: 26201: 26201: 26201: 26201: #define P_tmpdir "/tmp" 26201: # 133 "/usr/x86_64-linux-gnu/include/stdio.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/stdio_lim.h" 1 3 26201: # 19 "/usr/x86_64-linux-gnu/include/bits/stdio_lim.h" 3 26201: #define _BITS_STDIO_LIM_H 1 26201: 26201: 26201: 26201: 26201: 26201: #define L_tmpnam 20 26201: #define TMP_MAX 238328 26201: #define FILENAME_MAX 4096 26201: 26201: 26201: #define L_ctermid 9 26201: 26201: #define L_cuserid 9 26201: 26201: 26201: 26201: #undef FOPEN_MAX 26201: #define FOPEN_MAX 16 26201: # 134 "/usr/x86_64-linux-gnu/include/stdio.h" 2 3 26201: 26201: 26201: 26201: extern FILE *stdin; 26201: extern FILE *stdout; 26201: extern FILE *stderr; 26201: 26201: #define stdin stdin 26201: #define stdout stdout 26201: #define stderr stderr 26201: 26201: 26201: extern int remove (const char *__filename) throw (); 26201: 26201: extern int rename (const char *__old, const char *__new) throw (); 26201: 26201: 26201: 26201: extern int renameat (int __oldfd, const char *__old, int __newfd, 26201: const char *__new) throw (); 26201: 26201: 26201: 26201: 26201: #define RENAME_NOREPLACE (1 << 0) 26201: #define RENAME_EXCHANGE (1 << 1) 26201: #define RENAME_WHITEOUT (1 << 2) 26201: 26201: 26201: 26201: extern int renameat2 (int __oldfd, const char *__old, int __newfd, 26201: const char *__new, unsigned int __flags) throw (); 26201: # 176 "/usr/x86_64-linux-gnu/include/stdio.h" 3 26201: extern FILE *tmpfile (void) __asm__ ("" "tmpfile64") __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern FILE *tmpfile64 (void) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: extern char *tmpnam (char *__s) throw () __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: extern char *tmpnam_r (char *__s) throw () __attribute__ ((__warn_unused_result__)); 26201: # 204 "/usr/x86_64-linux-gnu/include/stdio.h" 3 26201: extern char *tempnam (const char *__dir, const char *__pfx) 26201: throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int fclose (FILE *__stream); 26201: 26201: 26201: 26201: 26201: extern int fflush (FILE *__stream); 26201: # 227 "/usr/x86_64-linux-gnu/include/stdio.h" 3 26201: extern int fflush_unlocked (FILE *__stream); 26201: # 237 "/usr/x86_64-linux-gnu/include/stdio.h" 3 26201: extern int fcloseall (void); 26201: # 257 "/usr/x86_64-linux-gnu/include/stdio.h" 3 26201: extern FILE *fopen (const char *__restrict __filename, const char *__restrict __modes) __asm__ ("" "fopen64") 26201: 26201: __attribute__ ((__warn_unused_result__)); 26201: extern FILE *freopen (const char *__restrict __filename, const char *__restrict __modes, FILE *__restrict __stream) __asm__ ("" "freopen64") 26201: 26201: 26201: __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern FILE *fopen64 (const char *__restrict __filename, 26201: const char *__restrict __modes) __attribute__ ((__warn_unused_result__)); 26201: extern FILE *freopen64 (const char *__restrict __filename, 26201: const char *__restrict __modes, 26201: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: extern FILE *fdopen (int __fd, const char *__modes) throw () __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: 26201: extern FILE *fopencookie (void *__restrict __magic_cookie, 26201: const char *__restrict __modes, 26201: cookie_io_functions_t __io_funcs) throw () __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) 26201: throw () __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: 26201: extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw (); 26201: 26201: 26201: 26201: extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, 26201: int __modes, size_t __n) throw (); 26201: 26201: 26201: 26201: 26201: extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, 26201: size_t __size) throw (); 26201: 26201: 26201: extern void setlinebuf (FILE *__stream) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int fprintf (FILE *__restrict __stream, 26201: const char *__restrict __format, ...); 26201: 26201: 26201: 26201: 26201: extern int printf (const char *__restrict __format, ...); 26201: 26201: extern int sprintf (char *__restrict __s, 26201: const char *__restrict __format, ...) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, 26201: __gnuc_va_list __arg); 26201: 26201: 26201: 26201: 26201: extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg); 26201: 26201: extern int vsprintf (char *__restrict __s, const char *__restrict __format, 26201: __gnuc_va_list __arg) throw (); 26201: 26201: 26201: 26201: extern int snprintf (char *__restrict __s, size_t __maxlen, 26201: const char *__restrict __format, ...) 26201: throw () __attribute__ ((__format__ (__printf__, 3, 4))); 26201: 26201: extern int vsnprintf (char *__restrict __s, size_t __maxlen, 26201: const char *__restrict __format, __gnuc_va_list __arg) 26201: throw () __attribute__ ((__format__ (__printf__, 3, 0))); 26201: 26201: 26201: 26201: 26201: 26201: extern int vasprintf (char **__restrict __ptr, const char *__restrict __f, 26201: __gnuc_va_list __arg) 26201: throw () __attribute__ ((__format__ (__printf__, 2, 0))) __attribute__ ((__warn_unused_result__)); 26201: extern int __asprintf (char **__restrict __ptr, 26201: const char *__restrict __fmt, ...) 26201: throw () __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); 26201: extern int asprintf (char **__restrict __ptr, 26201: const char *__restrict __fmt, ...) 26201: throw () __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: extern int vdprintf (int __fd, const char *__restrict __fmt, 26201: __gnuc_va_list __arg) 26201: __attribute__ ((__format__ (__printf__, 2, 0))); 26201: extern int dprintf (int __fd, const char *__restrict __fmt, ...) 26201: __attribute__ ((__format__ (__printf__, 2, 3))); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int fscanf (FILE *__restrict __stream, 26201: const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: extern int scanf (const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); 26201: 26201: extern int sscanf (const char *__restrict __s, 26201: const char *__restrict __format, ...) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf") 26201: 26201: __attribute__ ((__warn_unused_result__)); 26201: extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf") 26201: __attribute__ ((__warn_unused_result__)); 26201: extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) throw () __asm__ ("" "__isoc99_sscanf") 26201: 26201: ; 26201: # 432 "/usr/x86_64-linux-gnu/include/stdio.h" 3 26201: extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, 26201: __gnuc_va_list __arg) 26201: __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: 26201: extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) 26201: __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: extern int vsscanf (const char *__restrict __s, 26201: const char *__restrict __format, __gnuc_va_list __arg) 26201: throw () __attribute__ ((__format__ (__scanf__, 2, 0))); 26201: 26201: 26201: 26201: 26201: extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf") 26201: 26201: 26201: 26201: __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__)); 26201: extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf") 26201: 26201: __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__)); 26201: extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) throw () __asm__ ("" "__isoc99_vsscanf") 26201: 26201: 26201: 26201: __attribute__ ((__format__ (__scanf__, 2, 0))); 26201: # 485 "/usr/x86_64-linux-gnu/include/stdio.h" 3 26201: extern int fgetc (FILE *__stream); 26201: extern int getc (FILE *__stream); 26201: 26201: 26201: 26201: 26201: 26201: extern int getchar (void); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int getc_unlocked (FILE *__stream); 26201: extern int getchar_unlocked (void); 26201: # 510 "/usr/x86_64-linux-gnu/include/stdio.h" 3 26201: extern int fgetc_unlocked (FILE *__stream); 26201: # 521 "/usr/x86_64-linux-gnu/include/stdio.h" 3 26201: extern int fputc (int __c, FILE *__stream); 26201: extern int putc (int __c, FILE *__stream); 26201: 26201: 26201: 26201: 26201: 26201: extern int putchar (int __c); 26201: # 537 "/usr/x86_64-linux-gnu/include/stdio.h" 3 26201: extern int fputc_unlocked (int __c, FILE *__stream); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int putc_unlocked (int __c, FILE *__stream); 26201: extern int putchar_unlocked (int __c); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int getw (FILE *__stream); 26201: 26201: 26201: extern int putw (int __w, FILE *__stream); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) 26201: __attribute__ ((__warn_unused_result__)); 26201: # 587 "/usr/x86_64-linux-gnu/include/stdio.h" 3 26201: extern char *fgets_unlocked (char *__restrict __s, int __n, 26201: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 26201: # 603 "/usr/x86_64-linux-gnu/include/stdio.h" 3 26201: extern __ssize_t __getdelim (char **__restrict __lineptr, 26201: size_t *__restrict __n, int __delimiter, 26201: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 26201: extern __ssize_t getdelim (char **__restrict __lineptr, 26201: size_t *__restrict __n, int __delimiter, 26201: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern __ssize_t getline (char **__restrict __lineptr, 26201: size_t *__restrict __n, 26201: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int fputs (const char *__restrict __s, FILE *__restrict __stream); 26201: 26201: 26201: 26201: 26201: 26201: extern int puts (const char *__s); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int ungetc (int __c, FILE *__stream); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern size_t fread (void *__restrict __ptr, size_t __size, 26201: size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: extern size_t fwrite (const void *__restrict __ptr, size_t __size, 26201: size_t __n, FILE *__restrict __s); 26201: # 662 "/usr/x86_64-linux-gnu/include/stdio.h" 3 26201: extern int fputs_unlocked (const char *__restrict __s, 26201: FILE *__restrict __stream); 26201: # 673 "/usr/x86_64-linux-gnu/include/stdio.h" 3 26201: extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, 26201: size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 26201: extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, 26201: size_t __n, FILE *__restrict __stream); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int fseek (FILE *__stream, long int __off, int __whence); 26201: 26201: 26201: 26201: 26201: extern long int ftell (FILE *__stream) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: extern void rewind (FILE *__stream); 26201: # 715 "/usr/x86_64-linux-gnu/include/stdio.h" 3 26201: extern int fseeko (FILE *__stream, __off64_t __off, int __whence) __asm__ ("" "fseeko64") 26201: 26201: ; 26201: extern __off64_t ftello (FILE *__stream) __asm__ ("" "ftello64"); 26201: # 739 "/usr/x86_64-linux-gnu/include/stdio.h" 3 26201: extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos) __asm__ ("" "fgetpos64") 26201: ; 26201: extern int fsetpos (FILE *__stream, const fpos_t *__pos) __asm__ ("" "fsetpos64") 26201: ; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); 26201: extern __off64_t ftello64 (FILE *__stream) __attribute__ ((__warn_unused_result__)); 26201: extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); 26201: extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos); 26201: 26201: 26201: 26201: extern void clearerr (FILE *__stream) throw (); 26201: 26201: extern int feof (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 26201: 26201: extern int ferror (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: extern void clearerr_unlocked (FILE *__stream) throw (); 26201: extern int feof_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 26201: extern int ferror_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern void perror (const char *__s); 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/sys_errlist.h" 1 3 26201: # 26 "/usr/x86_64-linux-gnu/include/bits/sys_errlist.h" 3 26201: extern int sys_nerr; 26201: extern const char *const sys_errlist[]; 26201: 26201: 26201: extern int _sys_nerr; 26201: extern const char *const _sys_errlist[]; 26201: # 782 "/usr/x86_64-linux-gnu/include/stdio.h" 2 3 26201: 26201: 26201: 26201: 26201: extern int fileno (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: extern int fileno_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 26201: # 800 "/usr/x86_64-linux-gnu/include/stdio.h" 3 26201: extern FILE *popen (const char *__command, const char *__modes) __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: 26201: 26201: 26201: extern int pclose (FILE *__stream); 26201: 26201: 26201: 26201: 26201: 26201: extern char *ctermid (char *__s) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern char *cuserid (char *__s); 26201: 26201: 26201: 26201: 26201: struct obstack; 26201: 26201: 26201: extern int obstack_printf (struct obstack *__restrict __obstack, 26201: const char *__restrict __format, ...) 26201: throw () __attribute__ ((__format__ (__printf__, 2, 3))); 26201: extern int obstack_vprintf (struct obstack *__restrict __obstack, 26201: const char *__restrict __format, 26201: __gnuc_va_list __args) 26201: throw () __attribute__ ((__format__ (__printf__, 2, 0))); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern void flockfile (FILE *__stream) throw (); 26201: 26201: 26201: 26201: extern int ftrylockfile (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 26201: 26201: 26201: extern void funlockfile (FILE *__stream) throw (); 26201: # 858 "/usr/x86_64-linux-gnu/include/stdio.h" 3 26201: extern int __uflow (FILE *); 26201: extern int __overflow (FILE *, int); 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/stdio.h" 1 3 26201: # 20 "/usr/x86_64-linux-gnu/include/bits/stdio.h" 3 26201: #define _BITS_STDIO_H 1 26201: # 29 "/usr/x86_64-linux-gnu/include/bits/stdio.h" 3 26201: #define __STDIO_INLINE __extern_inline 26201: # 46 "/usr/x86_64-linux-gnu/include/bits/stdio.h" 3 26201: extern __inline __attribute__ ((__gnu_inline__)) int 26201: getchar (void) 26201: { 26201: return getc (stdin); 26201: } 26201: 26201: 26201: 26201: 26201: extern __inline __attribute__ ((__gnu_inline__)) int 26201: fgetc_unlocked (FILE *__fp) 26201: { 26201: return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: extern __inline __attribute__ ((__gnu_inline__)) int 26201: getc_unlocked (FILE *__fp) 26201: { 26201: return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 26201: } 26201: 26201: 26201: extern __inline __attribute__ ((__gnu_inline__)) int 26201: getchar_unlocked (void) 26201: { 26201: return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); 26201: } 26201: 26201: 26201: 26201: 26201: extern __inline __attribute__ ((__gnu_inline__)) int 26201: putchar (int __c) 26201: { 26201: return putc (__c, stdout); 26201: } 26201: 26201: 26201: 26201: 26201: extern __inline __attribute__ ((__gnu_inline__)) int 26201: fputc_unlocked (int __c, FILE *__stream) 26201: { 26201: return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: extern __inline __attribute__ ((__gnu_inline__)) int 26201: putc_unlocked (int __c, FILE *__stream) 26201: { 26201: return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 26201: } 26201: 26201: 26201: extern __inline __attribute__ ((__gnu_inline__)) int 26201: putchar_unlocked (int __c) 26201: { 26201: return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: extern __inline __attribute__ ((__gnu_inline__)) __ssize_t 26201: getline (char **__lineptr, size_t *__n, FILE *__stream) 26201: { 26201: return __getdelim (__lineptr, __n, '\n', __stream); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: extern __inline __attribute__ ((__gnu_inline__)) int 26201: __attribute__ ((__leaf__)) feof_unlocked (FILE *__stream) throw () 26201: { 26201: return (((__stream)->_flags & 0x0010) != 0); 26201: } 26201: 26201: 26201: extern __inline __attribute__ ((__gnu_inline__)) int 26201: __attribute__ ((__leaf__)) ferror_unlocked (FILE *__stream) throw () 26201: { 26201: return (((__stream)->_flags & 0x0020) != 0); 26201: } 26201: # 193 "/usr/x86_64-linux-gnu/include/bits/stdio.h" 3 26201: #undef __STDIO_INLINE 26201: # 865 "/usr/x86_64-linux-gnu/include/stdio.h" 2 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/stdio2.h" 1 3 26201: # 20 "/usr/x86_64-linux-gnu/include/bits/stdio2.h" 3 26201: #define _BITS_STDIO2_H 1 26201: 26201: 26201: 26201: 26201: 26201: extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen, 26201: const char *__restrict __format, ...) throw (); 26201: extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen, 26201: const char *__restrict __format, 26201: __gnuc_va_list __ap) throw (); 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 26201: __attribute__ ((__leaf__)) sprintf (char *__restrict __s, const char *__restrict __fmt, ...) throw () 26201: { 26201: return __builtin___sprintf_chk (__s, 2 - 1, 26201: __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 26201: __attribute__ ((__leaf__)) vsprintf (char *__restrict __s, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 26201: 26201: { 26201: return __builtin___vsprintf_chk (__s, 2 - 1, 26201: __builtin_object_size (__s, 2 > 1), __fmt, __ap); 26201: } 26201: 26201: 26201: 26201: extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag, 26201: size_t __slen, const char *__restrict __format, 26201: ...) throw (); 26201: extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag, 26201: size_t __slen, const char *__restrict __format, 26201: __gnuc_va_list __ap) throw (); 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 26201: __attribute__ ((__leaf__)) snprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, ...) throw () 26201: 26201: { 26201: return __builtin___snprintf_chk (__s, __n, 2 - 1, 26201: __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 26201: __attribute__ ((__leaf__)) vsnprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 26201: 26201: { 26201: return __builtin___vsnprintf_chk (__s, __n, 2 - 1, 26201: __builtin_object_size (__s, 2 > 1), __fmt, __ap); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: extern int __fprintf_chk (FILE *__restrict __stream, int __flag, 26201: const char *__restrict __format, ...); 26201: extern int __printf_chk (int __flag, const char *__restrict __format, ...); 26201: extern int __vfprintf_chk (FILE *__restrict __stream, int __flag, 26201: const char *__restrict __format, __gnuc_va_list __ap); 26201: extern int __vprintf_chk (int __flag, const char *__restrict __format, 26201: __gnuc_va_list __ap); 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 26201: fprintf (FILE *__restrict __stream, const char *__restrict __fmt, ...) 26201: { 26201: return __fprintf_chk (__stream, 2 - 1, __fmt, 26201: __builtin_va_arg_pack ()); 26201: } 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 26201: printf (const char *__restrict __fmt, ...) 26201: { 26201: return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 26201: vprintf (const char *__restrict __fmt, __gnuc_va_list __ap) 26201: { 26201: 26201: return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap); 26201: 26201: 26201: 26201: } 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 26201: vfprintf (FILE *__restrict __stream, 26201: const char *__restrict __fmt, __gnuc_va_list __ap) 26201: { 26201: return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap); 26201: } 26201: 26201: 26201: extern int __dprintf_chk (int __fd, int __flag, const char *__restrict __fmt, 26201: ...) __attribute__ ((__format__ (__printf__, 3, 4))); 26201: extern int __vdprintf_chk (int __fd, int __flag, 26201: const char *__restrict __fmt, __gnuc_va_list __arg) 26201: __attribute__ ((__format__ (__printf__, 3, 0))); 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 26201: dprintf (int __fd, const char *__restrict __fmt, ...) 26201: { 26201: return __dprintf_chk (__fd, 2 - 1, __fmt, 26201: __builtin_va_arg_pack ()); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 26201: vdprintf (int __fd, const char *__restrict __fmt, __gnuc_va_list __ap) 26201: { 26201: return __vdprintf_chk (__fd, 2 - 1, __fmt, __ap); 26201: } 26201: 26201: 26201: 26201: 26201: extern int __asprintf_chk (char **__restrict __ptr, int __flag, 26201: const char *__restrict __fmt, ...) 26201: throw () __attribute__ ((__format__ (__printf__, 3, 4))) __attribute__ ((__warn_unused_result__)); 26201: extern int __vasprintf_chk (char **__restrict __ptr, int __flag, 26201: const char *__restrict __fmt, __gnuc_va_list __arg) 26201: throw () __attribute__ ((__format__ (__printf__, 3, 0))) __attribute__ ((__warn_unused_result__)); 26201: extern int __obstack_printf_chk (struct obstack *__restrict __obstack, 26201: int __flag, const char *__restrict __format, 26201: ...) 26201: throw () __attribute__ ((__format__ (__printf__, 3, 4))); 26201: extern int __obstack_vprintf_chk (struct obstack *__restrict __obstack, 26201: int __flag, 26201: const char *__restrict __format, 26201: __gnuc_va_list __args) 26201: throw () __attribute__ ((__format__ (__printf__, 3, 0))); 26201: 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 26201: __attribute__ ((__leaf__)) asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) throw () 26201: { 26201: return __asprintf_chk (__ptr, 2 - 1, __fmt, 26201: __builtin_va_arg_pack ()); 26201: } 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 26201: __attribute__ ((__leaf__)) __asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) throw () 26201: 26201: { 26201: return __asprintf_chk (__ptr, 2 - 1, __fmt, 26201: __builtin_va_arg_pack ()); 26201: } 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 26201: __attribute__ ((__leaf__)) obstack_printf (struct obstack *__restrict __obstack, const char *__restrict __fmt, ...) throw () 26201: 26201: { 26201: return __obstack_printf_chk (__obstack, 2 - 1, __fmt, 26201: __builtin_va_arg_pack ()); 26201: } 26201: # 209 "/usr/x86_64-linux-gnu/include/bits/stdio2.h" 3 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 26201: __attribute__ ((__leaf__)) vasprintf (char **__restrict __ptr, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 26201: 26201: { 26201: return __vasprintf_chk (__ptr, 2 - 1, __fmt, __ap); 26201: } 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 26201: __attribute__ ((__leaf__)) obstack_vprintf (struct obstack *__restrict __obstack, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 26201: 26201: { 26201: return __obstack_vprintf_chk (__obstack, 2 - 1, __fmt, 26201: __ap); 26201: } 26201: # 243 "/usr/x86_64-linux-gnu/include/bits/stdio2.h" 3 26201: extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n, 26201: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 26201: extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets") 26201: 26201: __attribute__ ((__warn_unused_result__)); 26201: extern char *__fgets_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_chk") 26201: 26201: 26201: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets called with bigger size than length " "of destination buffer"))) 26201: ; 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 26201: fgets (char *__restrict __s, int __n, FILE *__restrict __stream) 26201: { 26201: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 26201: { 26201: if (!__builtin_constant_p (__n) || __n <= 0) 26201: return __fgets_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 26201: 26201: if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) 26201: return __fgets_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 26201: } 26201: return __fgets_alias (__s, __n, __stream); 26201: } 26201: 26201: extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen, 26201: size_t __size, size_t __n, 26201: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 26201: extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread") 26201: 26201: 26201: __attribute__ ((__warn_unused_result__)); 26201: extern size_t __fread_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_chk") 26201: 26201: 26201: 26201: 26201: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread called with bigger size * nmemb than length " "of destination buffer"))) 26201: ; 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 26201: fread (void *__restrict __ptr, size_t __size, size_t __n, 26201: FILE *__restrict __stream) 26201: { 26201: if (__builtin_object_size (__ptr, 0) != (size_t) -1) 26201: { 26201: if (!__builtin_constant_p (__size) 26201: || !__builtin_constant_p (__n) 26201: || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) 26201: return __fread_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); 26201: 26201: if (__size * __n > __builtin_object_size (__ptr, 0)) 26201: return __fread_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); 26201: } 26201: return __fread_alias (__ptr, __size, __n, __stream); 26201: } 26201: 26201: 26201: extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size, 26201: int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 26201: extern char *__fgets_unlocked_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets_unlocked") 26201: 26201: __attribute__ ((__warn_unused_result__)); 26201: extern char *__fgets_unlocked_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_unlocked_chk") 26201: 26201: 26201: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets_unlocked called with bigger size than length " "of destination buffer"))) 26201: ; 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 26201: fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) 26201: { 26201: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 26201: { 26201: if (!__builtin_constant_p (__n) || __n <= 0) 26201: return __fgets_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 26201: 26201: if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) 26201: return __fgets_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 26201: } 26201: return __fgets_unlocked_alias (__s, __n, __stream); 26201: } 26201: 26201: 26201: 26201: #undef fread_unlocked 26201: extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen, 26201: size_t __size, size_t __n, 26201: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 26201: extern size_t __fread_unlocked_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread_unlocked") 26201: 26201: 26201: __attribute__ ((__warn_unused_result__)); 26201: extern size_t __fread_unlocked_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_unlocked_chk") 26201: 26201: 26201: 26201: 26201: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer"))) 26201: ; 26201: 26201: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 26201: fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, 26201: FILE *__restrict __stream) 26201: { 26201: if (__builtin_object_size (__ptr, 0) != (size_t) -1) 26201: { 26201: if (!__builtin_constant_p (__size) 26201: || !__builtin_constant_p (__n) 26201: || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) 26201: return __fread_unlocked_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, 26201: __stream); 26201: 26201: if (__size * __n > __builtin_object_size (__ptr, 0)) 26201: return __fread_unlocked_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, 26201: __stream); 26201: } 26201: 26201: 26201: if (__builtin_constant_p (__size) 26201: && __builtin_constant_p (__n) 26201: && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2)) 26201: && __size * __n <= 8) 26201: { 26201: size_t __cnt = __size * __n; 26201: char *__cptr = (char *) __ptr; 26201: if (__cnt == 0) 26201: return 0; 26201: 26201: for (; __cnt > 0; --__cnt) 26201: { 26201: int __c = getc_unlocked (__stream); 26201: if (__c == (-1)) 26201: break; 26201: *__cptr++ = __c; 26201: } 26201: return (__cptr - (char *) __ptr) / __size; 26201: } 26201: 26201: return __fread_unlocked_alias (__ptr, __size, __n, __stream); 26201: } 26201: # 868 "/usr/x86_64-linux-gnu/include/stdio.h" 2 3 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 43 "/usr/x86_64-linux-gnu/include/c++/10/cstdio" 2 3 26201: 26201: 26201: #define _GLIBCXX_CSTDIO 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: #undef clearerr 26201: #undef fclose 26201: #undef feof 26201: #undef ferror 26201: #undef fflush 26201: #undef fgetc 26201: #undef fgetpos 26201: #undef fgets 26201: #undef fopen 26201: #undef fprintf 26201: #undef fputc 26201: #undef fputs 26201: #undef fread 26201: #undef freopen 26201: #undef fscanf 26201: #undef fseek 26201: #undef fsetpos 26201: #undef ftell 26201: #undef fwrite 26201: #undef getc 26201: #undef getchar 26201: 26201: 26201: 26201: #undef perror 26201: #undef printf 26201: #undef putc 26201: #undef putchar 26201: #undef puts 26201: #undef remove 26201: #undef rename 26201: #undef rewind 26201: #undef scanf 26201: #undef setbuf 26201: #undef setvbuf 26201: #undef sprintf 26201: #undef sscanf 26201: #undef tmpfile 26201: #undef tmpnam 26201: #undef ungetc 26201: #undef vfprintf 26201: #undef vprintf 26201: #undef vsprintf 26201: 26201: namespace std 26201: { 26201: using ::FILE; 26201: using ::fpos_t; 26201: 26201: using ::clearerr; 26201: using ::fclose; 26201: using ::feof; 26201: using ::ferror; 26201: using ::fflush; 26201: using ::fgetc; 26201: using ::fgetpos; 26201: using ::fgets; 26201: using ::fopen; 26201: using ::fprintf; 26201: using ::fputc; 26201: using ::fputs; 26201: using ::fread; 26201: using ::freopen; 26201: using ::fscanf; 26201: using ::fseek; 26201: using ::fsetpos; 26201: using ::ftell; 26201: using ::fwrite; 26201: using ::getc; 26201: using ::getchar; 26201: 26201: 26201: 26201: 26201: using ::perror; 26201: using ::printf; 26201: using ::putc; 26201: using ::putchar; 26201: using ::puts; 26201: using ::remove; 26201: using ::rename; 26201: using ::rewind; 26201: using ::scanf; 26201: using ::setbuf; 26201: using ::setvbuf; 26201: using ::sprintf; 26201: using ::sscanf; 26201: using ::tmpfile; 26201: 26201: using ::tmpnam; 26201: 26201: using ::ungetc; 26201: using ::vfprintf; 26201: using ::vprintf; 26201: using ::vsprintf; 26201: } 26201: 26201: 26201: 26201: #undef snprintf 26201: #undef vfscanf 26201: #undef vscanf 26201: #undef vsnprintf 26201: #undef vsscanf 26201: 26201: namespace __gnu_cxx 26201: { 26201: # 175 "/usr/x86_64-linux-gnu/include/c++/10/cstdio" 3 26201: using ::snprintf; 26201: using ::vfscanf; 26201: using ::vscanf; 26201: using ::vsnprintf; 26201: using ::vsscanf; 26201: 26201: } 26201: 26201: namespace std 26201: { 26201: using ::__gnu_cxx::snprintf; 26201: using ::__gnu_cxx::vfscanf; 26201: using ::__gnu_cxx::vscanf; 26201: using ::__gnu_cxx::vsnprintf; 26201: using ::__gnu_cxx::vsscanf; 26201: } 26201: # 44 "/usr/x86_64-linux-gnu/include/c++/10/ext/string_conversions.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/cerrno" 1 3 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/cerrno" 3 26201: 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/cerrno" 3 26201: # 45 "/usr/x86_64-linux-gnu/include/c++/10/ext/string_conversions.h" 2 3 26201: 26201: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: template 26201: _Ret 26201: __stoa(_TRet (*__convf) (const _CharT*, _CharT**, _Base...), 26201: const char* __name, const _CharT* __str, std::size_t* __idx, 26201: _Base... __base) 26201: { 26201: _Ret __ret; 26201: 26201: _CharT* __endptr; 26201: 26201: struct _Save_errno { 26201: _Save_errno() : _M_errno((*__errno_location ())) { (*__errno_location ()) = 0; } 26201: ~_Save_errno() { if ((*__errno_location ()) == 0) (*__errno_location ()) = _M_errno; } 26201: int _M_errno; 26201: } const __save_errno; 26201: 26201: struct _Range_chk { 26201: static bool 26201: _S_chk(_TRet, std::false_type) { return false; } 26201: 26201: static bool 26201: _S_chk(_TRet __val, std::true_type) 26201: { 26201: return __val < _TRet(__numeric_traits::__min) 26201: || __val > _TRet(__numeric_traits::__max); 26201: } 26201: }; 26201: 26201: const _TRet __tmp = __convf(__str, &__endptr, __base...); 26201: 26201: if (__endptr == __str) 26201: std::__throw_invalid_argument(__name); 26201: else if ((*__errno_location ()) == 34 26201: || _Range_chk::_S_chk(__tmp, std::is_same<_Ret, int>{})) 26201: std::__throw_out_of_range(__name); 26201: else 26201: __ret = __tmp; 26201: 26201: if (__idx) 26201: *__idx = __endptr - __str; 26201: 26201: return __ret; 26201: } 26201: 26201: 26201: template 26201: _String 26201: __to_xstring(int (*__convf) (_CharT*, std::size_t, const _CharT*, 26201: __builtin_va_list), std::size_t __n, 26201: const _CharT* __fmt, ...) 26201: { 26201: 26201: 26201: _CharT* __s = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 26201: * __n)); 26201: 26201: __builtin_va_list __args; 26201: __builtin_va_start(__args, __fmt); 26201: 26201: const int __len = __convf(__s, __n, __fmt, __args); 26201: 26201: __builtin_va_end(__args); 26201: 26201: return _String(__s, __s + __len); 26201: } 26201: 26201: 26201: } 26201: # 6558 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/charconv.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/charconv.h" 3 26201: #define _GLIBCXX_CHARCONV_H 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/charconv.h" 3 26201: 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: namespace __detail 26201: { 26201: 26201: template 26201: constexpr unsigned 26201: __to_chars_len(_Tp __value, int __base = 10) noexcept 26201: { 26201: static_assert(is_integral<_Tp>::value, "implementation bug"); 26201: static_assert(is_unsigned<_Tp>::value, "implementation bug"); 26201: 26201: unsigned __n = 1; 26201: const unsigned __b2 = __base * __base; 26201: const unsigned __b3 = __b2 * __base; 26201: const unsigned long __b4 = __b3 * __base; 26201: for (;;) 26201: { 26201: if (__value < (unsigned)__base) return __n; 26201: if (__value < __b2) return __n + 1; 26201: if (__value < __b3) return __n + 2; 26201: if (__value < __b4) return __n + 3; 26201: __value /= __b4; 26201: __n += 4; 26201: } 26201: } 26201: 26201: 26201: 26201: 26201: template 26201: void 26201: __to_chars_10_impl(char* __first, unsigned __len, _Tp __val) noexcept 26201: { 26201: static_assert(is_integral<_Tp>::value, "implementation bug"); 26201: static_assert(is_unsigned<_Tp>::value, "implementation bug"); 26201: 26201: static constexpr char __digits[201] = 26201: "0001020304050607080910111213141516171819" 26201: "2021222324252627282930313233343536373839" 26201: "4041424344454647484950515253545556575859" 26201: "6061626364656667686970717273747576777879" 26201: "8081828384858687888990919293949596979899"; 26201: unsigned __pos = __len - 1; 26201: while (__val >= 100) 26201: { 26201: auto const __num = (__val % 100) * 2; 26201: __val /= 100; 26201: __first[__pos] = __digits[__num + 1]; 26201: __first[__pos - 1] = __digits[__num]; 26201: __pos -= 2; 26201: } 26201: if (__val >= 10) 26201: { 26201: auto const __num = __val * 2; 26201: __first[1] = __digits[__num + 1]; 26201: __first[0] = __digits[__num]; 26201: } 26201: else 26201: __first[0] = '0' + __val; 26201: } 26201: 26201: } 26201: 26201: } 26201: # 6559 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: namespace __cxx11 { 26201: 26201: 26201: 26201: inline int 26201: stoi(const string& __str, size_t* __idx = 0, int __base = 10) 26201: { return __gnu_cxx::__stoa(&std::strtol, "stoi", __str.c_str(), 26201: __idx, __base); } 26201: 26201: inline long 26201: stol(const string& __str, size_t* __idx = 0, int __base = 10) 26201: { return __gnu_cxx::__stoa(&std::strtol, "stol", __str.c_str(), 26201: __idx, __base); } 26201: 26201: inline unsigned long 26201: stoul(const string& __str, size_t* __idx = 0, int __base = 10) 26201: { return __gnu_cxx::__stoa(&std::strtoul, "stoul", __str.c_str(), 26201: __idx, __base); } 26201: 26201: inline long long 26201: stoll(const string& __str, size_t* __idx = 0, int __base = 10) 26201: { return __gnu_cxx::__stoa(&std::strtoll, "stoll", __str.c_str(), 26201: __idx, __base); } 26201: 26201: inline unsigned long long 26201: stoull(const string& __str, size_t* __idx = 0, int __base = 10) 26201: { return __gnu_cxx::__stoa(&std::strtoull, "stoull", __str.c_str(), 26201: __idx, __base); } 26201: 26201: 26201: inline float 26201: stof(const string& __str, size_t* __idx = 0) 26201: { return __gnu_cxx::__stoa(&std::strtof, "stof", __str.c_str(), __idx); } 26201: 26201: inline double 26201: stod(const string& __str, size_t* __idx = 0) 26201: { return __gnu_cxx::__stoa(&std::strtod, "stod", __str.c_str(), __idx); } 26201: 26201: inline long double 26201: stold(const string& __str, size_t* __idx = 0) 26201: { return __gnu_cxx::__stoa(&std::strtold, "stold", __str.c_str(), __idx); } 26201: 26201: 26201: 26201: 26201: inline string 26201: to_string(int __val) 26201: { 26201: const bool __neg = __val < 0; 26201: const unsigned __uval = __neg ? (unsigned)~__val + 1u : __val; 26201: const auto __len = __detail::__to_chars_len(__uval); 26201: string __str(__neg + __len, '-'); 26201: __detail::__to_chars_10_impl(&__str[__neg], __len, __uval); 26201: return __str; 26201: } 26201: 26201: inline string 26201: to_string(unsigned __val) 26201: { 26201: string __str(__detail::__to_chars_len(__val), '\0'); 26201: __detail::__to_chars_10_impl(&__str[0], __str.size(), __val); 26201: return __str; 26201: } 26201: 26201: inline string 26201: to_string(long __val) 26201: { 26201: const bool __neg = __val < 0; 26201: const unsigned long __uval = __neg ? (unsigned long)~__val + 1ul : __val; 26201: const auto __len = __detail::__to_chars_len(__uval); 26201: string __str(__neg + __len, '-'); 26201: __detail::__to_chars_10_impl(&__str[__neg], __len, __uval); 26201: return __str; 26201: } 26201: 26201: inline string 26201: to_string(unsigned long __val) 26201: { 26201: string __str(__detail::__to_chars_len(__val), '\0'); 26201: __detail::__to_chars_10_impl(&__str[0], __str.size(), __val); 26201: return __str; 26201: } 26201: 26201: inline string 26201: to_string(long long __val) 26201: { 26201: const bool __neg = __val < 0; 26201: const unsigned long long __uval 26201: = __neg ? (unsigned long long)~__val + 1ull : __val; 26201: const auto __len = __detail::__to_chars_len(__uval); 26201: string __str(__neg + __len, '-'); 26201: __detail::__to_chars_10_impl(&__str[__neg], __len, __uval); 26201: return __str; 26201: } 26201: 26201: inline string 26201: to_string(unsigned long long __val) 26201: { 26201: string __str(__detail::__to_chars_len(__val), '\0'); 26201: __detail::__to_chars_10_impl(&__str[0], __str.size(), __val); 26201: return __str; 26201: } 26201: 26201: 26201: 26201: 26201: inline string 26201: to_string(float __val) 26201: { 26201: const int __n = 26201: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 26201: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 26201: "%f", __val); 26201: } 26201: 26201: inline string 26201: to_string(double __val) 26201: { 26201: const int __n = 26201: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 26201: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 26201: "%f", __val); 26201: } 26201: 26201: inline string 26201: to_string(long double __val) 26201: { 26201: const int __n = 26201: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 26201: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 26201: "%Lf", __val); 26201: } 26201: 26201: 26201: 26201: inline int 26201: stoi(const wstring& __str, size_t* __idx = 0, int __base = 10) 26201: { return __gnu_cxx::__stoa(&std::wcstol, "stoi", __str.c_str(), 26201: __idx, __base); } 26201: 26201: inline long 26201: stol(const wstring& __str, size_t* __idx = 0, int __base = 10) 26201: { return __gnu_cxx::__stoa(&std::wcstol, "stol", __str.c_str(), 26201: __idx, __base); } 26201: 26201: inline unsigned long 26201: stoul(const wstring& __str, size_t* __idx = 0, int __base = 10) 26201: { return __gnu_cxx::__stoa(&std::wcstoul, "stoul", __str.c_str(), 26201: __idx, __base); } 26201: 26201: inline long long 26201: stoll(const wstring& __str, size_t* __idx = 0, int __base = 10) 26201: { return __gnu_cxx::__stoa(&std::wcstoll, "stoll", __str.c_str(), 26201: __idx, __base); } 26201: 26201: inline unsigned long long 26201: stoull(const wstring& __str, size_t* __idx = 0, int __base = 10) 26201: { return __gnu_cxx::__stoa(&std::wcstoull, "stoull", __str.c_str(), 26201: __idx, __base); } 26201: 26201: 26201: inline float 26201: stof(const wstring& __str, size_t* __idx = 0) 26201: { return __gnu_cxx::__stoa(&std::wcstof, "stof", __str.c_str(), __idx); } 26201: 26201: inline double 26201: stod(const wstring& __str, size_t* __idx = 0) 26201: { return __gnu_cxx::__stoa(&std::wcstod, "stod", __str.c_str(), __idx); } 26201: 26201: inline long double 26201: stold(const wstring& __str, size_t* __idx = 0) 26201: { return __gnu_cxx::__stoa(&std::wcstold, "stold", __str.c_str(), __idx); } 26201: 26201: 26201: 26201: inline wstring 26201: to_wstring(int __val) 26201: { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(int), 26201: L"%d", __val); } 26201: 26201: inline wstring 26201: to_wstring(unsigned __val) 26201: { return __gnu_cxx::__to_xstring(&std::vswprintf, 26201: 4 * sizeof(unsigned), 26201: L"%u", __val); } 26201: 26201: inline wstring 26201: to_wstring(long __val) 26201: { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(long), 26201: L"%ld", __val); } 26201: 26201: inline wstring 26201: to_wstring(unsigned long __val) 26201: { return __gnu_cxx::__to_xstring(&std::vswprintf, 26201: 4 * sizeof(unsigned long), 26201: L"%lu", __val); } 26201: 26201: inline wstring 26201: to_wstring(long long __val) 26201: { return __gnu_cxx::__to_xstring(&std::vswprintf, 26201: 4 * sizeof(long long), 26201: L"%lld", __val); } 26201: 26201: inline wstring 26201: to_wstring(unsigned long long __val) 26201: { return __gnu_cxx::__to_xstring(&std::vswprintf, 26201: 4 * sizeof(unsigned long long), 26201: L"%llu", __val); } 26201: 26201: inline wstring 26201: to_wstring(float __val) 26201: { 26201: const int __n = 26201: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 26201: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 26201: L"%f", __val); 26201: } 26201: 26201: inline wstring 26201: to_wstring(double __val) 26201: { 26201: const int __n = 26201: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 26201: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 26201: L"%f", __val); 26201: } 26201: 26201: inline wstring 26201: to_wstring(long double __val) 26201: { 26201: const int __n = 26201: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 26201: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 26201: L"%Lf", __val); 26201: } 26201: 26201: 26201: 26201: } 26201: 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: template<> 26201: struct hash 26201: : public __hash_base 26201: { 26201: size_t 26201: operator()(const string& __s) const noexcept 26201: { return std::_Hash_impl::hash(__s.data(), __s.length()); } 26201: }; 26201: 26201: template<> 26201: struct __is_fast_hash> : std::false_type 26201: { }; 26201: 26201: 26201: 26201: template<> 26201: struct hash 26201: : public __hash_base 26201: { 26201: size_t 26201: operator()(const wstring& __s) const noexcept 26201: { return std::_Hash_impl::hash(__s.data(), 26201: __s.length() * sizeof(wchar_t)); } 26201: }; 26201: 26201: template<> 26201: struct __is_fast_hash> : std::false_type 26201: { }; 26201: # 6868 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: template<> 26201: struct hash 26201: : public __hash_base 26201: { 26201: size_t 26201: operator()(const u16string& __s) const noexcept 26201: { return std::_Hash_impl::hash(__s.data(), 26201: __s.length() * sizeof(char16_t)); } 26201: }; 26201: 26201: template<> 26201: struct __is_fast_hash> : std::false_type 26201: { }; 26201: 26201: 26201: template<> 26201: struct hash 26201: : public __hash_base 26201: { 26201: size_t 26201: operator()(const u32string& __s) const noexcept 26201: { return std::_Hash_impl::hash(__s.data(), 26201: __s.length() * sizeof(char32_t)); } 26201: }; 26201: 26201: template<> 26201: struct __is_fast_hash> : std::false_type 26201: { }; 26201: 26201: 26201: 26201: #define __cpp_lib_string_udls 201304 26201: 26201: inline namespace literals 26201: { 26201: inline namespace string_literals 26201: { 26201: #pragma GCC diagnostic push 26201: #pragma GCC diagnostic ignored "-Wliteral-suffix" 26201: __attribute ((__abi_tag__ ("cxx11"))) 26201: inline basic_string 26201: operator""s(const char* __str, size_t __len) 26201: { return basic_string{__str, __len}; } 26201: 26201: 26201: __attribute ((__abi_tag__ ("cxx11"))) 26201: inline basic_string 26201: operator""s(const wchar_t* __str, size_t __len) 26201: { return basic_string{__str, __len}; } 26201: # 6926 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.h" 3 26201: __attribute ((__abi_tag__ ("cxx11"))) 26201: inline basic_string 26201: operator""s(const char16_t* __str, size_t __len) 26201: { return basic_string{__str, __len}; } 26201: 26201: __attribute ((__abi_tag__ ("cxx11"))) 26201: inline basic_string 26201: operator""s(const char32_t* __str, size_t __len) 26201: { return basic_string{__str, __len}; } 26201: 26201: #pragma GCC diagnostic pop 26201: } 26201: } 26201: 26201: 26201: namespace __detail::__variant 26201: { 26201: template struct _Never_valueless_alt; 26201: 26201: 26201: 26201: template 26201: struct _Never_valueless_alt> 26201: : __and_< 26201: is_nothrow_move_constructible>, 26201: is_nothrow_move_assignable> 26201: >::type 26201: { }; 26201: } 26201: 26201: 26201: 26201: 26201: } 26201: # 56 "/usr/x86_64-linux-gnu/include/c++/10/string" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.tcc" 1 3 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.tcc" 3 26201: #define _BASIC_STRING_TCC 1 26201: 26201: 26201: # 43 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.tcc" 3 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: template 26201: const typename basic_string<_CharT, _Traits, _Alloc>::size_type 26201: basic_string<_CharT, _Traits, _Alloc>::npos; 26201: 26201: template 26201: void 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: swap(basic_string& __s) noexcept 26201: { 26201: if (this == &__s) 26201: return; 26201: 26201: _Alloc_traits::_S_on_swap(_M_get_allocator(), __s._M_get_allocator()); 26201: 26201: if (_M_is_local()) 26201: if (__s._M_is_local()) 26201: { 26201: if (length() && __s.length()) 26201: { 26201: _CharT __tmp_data[_S_local_capacity + 1]; 26201: traits_type::copy(__tmp_data, __s._M_local_buf, 26201: _S_local_capacity + 1); 26201: traits_type::copy(__s._M_local_buf, _M_local_buf, 26201: _S_local_capacity + 1); 26201: traits_type::copy(_M_local_buf, __tmp_data, 26201: _S_local_capacity + 1); 26201: } 26201: else if (__s.length()) 26201: { 26201: traits_type::copy(_M_local_buf, __s._M_local_buf, 26201: _S_local_capacity + 1); 26201: _M_length(__s.length()); 26201: __s._M_set_length(0); 26201: return; 26201: } 26201: else if (length()) 26201: { 26201: traits_type::copy(__s._M_local_buf, _M_local_buf, 26201: _S_local_capacity + 1); 26201: __s._M_length(length()); 26201: _M_set_length(0); 26201: return; 26201: } 26201: } 26201: else 26201: { 26201: const size_type __tmp_capacity = __s._M_allocated_capacity; 26201: traits_type::copy(__s._M_local_buf, _M_local_buf, 26201: _S_local_capacity + 1); 26201: _M_data(__s._M_data()); 26201: __s._M_data(__s._M_local_buf); 26201: _M_capacity(__tmp_capacity); 26201: } 26201: else 26201: { 26201: const size_type __tmp_capacity = _M_allocated_capacity; 26201: if (__s._M_is_local()) 26201: { 26201: traits_type::copy(_M_local_buf, __s._M_local_buf, 26201: _S_local_capacity + 1); 26201: __s._M_data(_M_data()); 26201: _M_data(_M_local_buf); 26201: } 26201: else 26201: { 26201: pointer __tmp_ptr = _M_data(); 26201: _M_data(__s._M_data()); 26201: __s._M_data(__tmp_ptr); 26201: _M_capacity(__s._M_allocated_capacity); 26201: } 26201: __s._M_capacity(__tmp_capacity); 26201: } 26201: 26201: const size_type __tmp_length = length(); 26201: _M_length(__s.length()); 26201: __s._M_length(__tmp_length); 26201: } 26201: 26201: template 26201: typename basic_string<_CharT, _Traits, _Alloc>::pointer 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: _M_create(size_type& __capacity, size_type __old_capacity) 26201: { 26201: 26201: 26201: if (__capacity > max_size()) 26201: std::__throw_length_error(("basic_string::_M_create")); 26201: 26201: 26201: 26201: 26201: if (__capacity > __old_capacity && __capacity < 2 * __old_capacity) 26201: { 26201: __capacity = 2 * __old_capacity; 26201: 26201: if (__capacity > max_size()) 26201: __capacity = max_size(); 26201: } 26201: 26201: 26201: 26201: return _Alloc_traits::allocate(_M_get_allocator(), __capacity + 1); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: template 26201: void 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: _M_construct(_InIterator __beg, _InIterator __end, 26201: std::input_iterator_tag) 26201: { 26201: size_type __len = 0; 26201: size_type __capacity = size_type(_S_local_capacity); 26201: 26201: while (__beg != __end && __len < __capacity) 26201: { 26201: _M_data()[__len++] = *__beg; 26201: ++__beg; 26201: } 26201: 26201: try 26201: { 26201: while (__beg != __end) 26201: { 26201: if (__len == __capacity) 26201: { 26201: 26201: __capacity = __len + 1; 26201: pointer __another = _M_create(__capacity, __len); 26201: this->_S_copy(__another, _M_data(), __len); 26201: _M_dispose(); 26201: _M_data(__another); 26201: _M_capacity(__capacity); 26201: } 26201: _M_data()[__len++] = *__beg; 26201: ++__beg; 26201: } 26201: } 26201: catch(...) 26201: { 26201: _M_dispose(); 26201: throw; 26201: } 26201: 26201: _M_set_length(__len); 26201: } 26201: 26201: template 26201: template 26201: void 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: _M_construct(_InIterator __beg, _InIterator __end, 26201: std::forward_iterator_tag) 26201: { 26201: 26201: if (__gnu_cxx::__is_null_pointer(__beg) && __beg != __end) 26201: std::__throw_logic_error(("basic_string::" "_M_construct null not valid") 26201: ); 26201: 26201: size_type __dnew = static_cast(std::distance(__beg, __end)); 26201: 26201: if (__dnew > size_type(_S_local_capacity)) 26201: { 26201: _M_data(_M_create(__dnew, size_type(0))); 26201: _M_capacity(__dnew); 26201: } 26201: 26201: 26201: try 26201: { this->_S_copy_chars(_M_data(), __beg, __end); } 26201: catch(...) 26201: { 26201: _M_dispose(); 26201: throw; 26201: } 26201: 26201: _M_set_length(__dnew); 26201: } 26201: 26201: template 26201: void 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: _M_construct(size_type __n, _CharT __c) 26201: { 26201: if (__n > size_type(_S_local_capacity)) 26201: { 26201: _M_data(_M_create(__n, size_type(0))); 26201: _M_capacity(__n); 26201: } 26201: 26201: if (__n) 26201: this->_S_assign(_M_data(), __n, __c); 26201: 26201: _M_set_length(__n); 26201: } 26201: 26201: template 26201: void 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: _M_assign(const basic_string& __str) 26201: { 26201: if (this != &__str) 26201: { 26201: const size_type __rsize = __str.length(); 26201: const size_type __capacity = capacity(); 26201: 26201: if (__rsize > __capacity) 26201: { 26201: size_type __new_capacity = __rsize; 26201: pointer __tmp = _M_create(__new_capacity, __capacity); 26201: _M_dispose(); 26201: _M_data(__tmp); 26201: _M_capacity(__new_capacity); 26201: } 26201: 26201: if (__rsize) 26201: this->_S_copy(_M_data(), __str._M_data(), __rsize); 26201: 26201: _M_set_length(__rsize); 26201: } 26201: } 26201: 26201: template 26201: void 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: reserve(size_type __res) 26201: { 26201: 26201: if (__res < length()) 26201: __res = length(); 26201: 26201: const size_type __capacity = capacity(); 26201: if (__res != __capacity) 26201: { 26201: if (__res > __capacity 26201: || __res > size_type(_S_local_capacity)) 26201: { 26201: pointer __tmp = _M_create(__res, __capacity); 26201: this->_S_copy(__tmp, _M_data(), length() + 1); 26201: _M_dispose(); 26201: _M_data(__tmp); 26201: _M_capacity(__res); 26201: } 26201: else if (!_M_is_local()) 26201: { 26201: this->_S_copy(_M_local_data(), _M_data(), length() + 1); 26201: _M_destroy(__capacity); 26201: _M_data(_M_local_data()); 26201: } 26201: } 26201: } 26201: 26201: template 26201: void 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, 26201: size_type __len2) 26201: { 26201: const size_type __how_much = length() - __pos - __len1; 26201: 26201: size_type __new_capacity = length() + __len2 - __len1; 26201: pointer __r = _M_create(__new_capacity, capacity()); 26201: 26201: if (__pos) 26201: this->_S_copy(__r, _M_data(), __pos); 26201: if (__s && __len2) 26201: this->_S_copy(__r + __pos, __s, __len2); 26201: if (__how_much) 26201: this->_S_copy(__r + __pos + __len2, 26201: _M_data() + __pos + __len1, __how_much); 26201: 26201: _M_dispose(); 26201: _M_data(__r); 26201: _M_capacity(__new_capacity); 26201: } 26201: 26201: template 26201: void 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: _M_erase(size_type __pos, size_type __n) 26201: { 26201: const size_type __how_much = length() - __pos - __n; 26201: 26201: if (__how_much && __n) 26201: this->_S_move(_M_data() + __pos, _M_data() + __pos + __n, __how_much); 26201: 26201: _M_set_length(length() - __n); 26201: } 26201: 26201: template 26201: void 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: resize(size_type __n, _CharT __c) 26201: { 26201: const size_type __size = this->size(); 26201: if (__size < __n) 26201: this->append(__n - __size, __c); 26201: else if (__n < __size) 26201: this->_M_set_length(__n); 26201: } 26201: 26201: template 26201: basic_string<_CharT, _Traits, _Alloc>& 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: _M_append(const _CharT* __s, size_type __n) 26201: { 26201: const size_type __len = __n + this->size(); 26201: 26201: if (__len <= this->capacity()) 26201: { 26201: if (__n) 26201: this->_S_copy(this->_M_data() + this->size(), __s, __n); 26201: } 26201: else 26201: this->_M_mutate(this->size(), size_type(0), __s, __n); 26201: 26201: this->_M_set_length(__len); 26201: return *this; 26201: } 26201: 26201: template 26201: template 26201: basic_string<_CharT, _Traits, _Alloc>& 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 26201: _InputIterator __k1, _InputIterator __k2, 26201: std::__false_type) 26201: { 26201: 26201: 26201: const basic_string __s(__k1, __k2, this->get_allocator()); 26201: const size_type __n1 = __i2 - __i1; 26201: return _M_replace(__i1 - begin(), __n1, __s._M_data(), 26201: __s.size()); 26201: } 26201: 26201: template 26201: basic_string<_CharT, _Traits, _Alloc>& 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, 26201: _CharT __c) 26201: { 26201: _M_check_length(__n1, __n2, "basic_string::_M_replace_aux"); 26201: 26201: const size_type __old_size = this->size(); 26201: const size_type __new_size = __old_size + __n2 - __n1; 26201: 26201: if (__new_size <= this->capacity()) 26201: { 26201: pointer __p = this->_M_data() + __pos1; 26201: 26201: const size_type __how_much = __old_size - __pos1 - __n1; 26201: if (__how_much && __n1 != __n2) 26201: this->_S_move(__p + __n2, __p + __n1, __how_much); 26201: } 26201: else 26201: this->_M_mutate(__pos1, __n1, 0, __n2); 26201: 26201: if (__n2) 26201: this->_S_assign(this->_M_data() + __pos1, __n2, __c); 26201: 26201: this->_M_set_length(__new_size); 26201: return *this; 26201: } 26201: 26201: template 26201: basic_string<_CharT, _Traits, _Alloc>& 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: _M_replace(size_type __pos, size_type __len1, const _CharT* __s, 26201: const size_type __len2) 26201: { 26201: _M_check_length(__len1, __len2, "basic_string::_M_replace"); 26201: 26201: const size_type __old_size = this->size(); 26201: const size_type __new_size = __old_size + __len2 - __len1; 26201: 26201: if (__new_size <= this->capacity()) 26201: { 26201: pointer __p = this->_M_data() + __pos; 26201: 26201: const size_type __how_much = __old_size - __pos - __len1; 26201: if (_M_disjunct(__s)) 26201: { 26201: if (__how_much && __len1 != __len2) 26201: this->_S_move(__p + __len2, __p + __len1, __how_much); 26201: if (__len2) 26201: this->_S_copy(__p, __s, __len2); 26201: } 26201: else 26201: { 26201: 26201: if (__len2 && __len2 <= __len1) 26201: this->_S_move(__p, __s, __len2); 26201: if (__how_much && __len1 != __len2) 26201: this->_S_move(__p + __len2, __p + __len1, __how_much); 26201: if (__len2 > __len1) 26201: { 26201: if (__s + __len2 <= __p + __len1) 26201: this->_S_move(__p, __s, __len2); 26201: else if (__s >= __p + __len1) 26201: this->_S_copy(__p, __s + __len2 - __len1, __len2); 26201: else 26201: { 26201: const size_type __nleft = (__p + __len1) - __s; 26201: this->_S_move(__p, __s, __nleft); 26201: this->_S_copy(__p + __nleft, __p + __len2, 26201: __len2 - __nleft); 26201: } 26201: } 26201: } 26201: } 26201: else 26201: this->_M_mutate(__pos, __len1, __s, __len2); 26201: 26201: this->_M_set_length(__new_size); 26201: return *this; 26201: } 26201: 26201: template 26201: typename basic_string<_CharT, _Traits, _Alloc>::size_type 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: copy(_CharT* __s, size_type __n, size_type __pos) const 26201: { 26201: _M_check(__pos, "basic_string::copy"); 26201: __n = _M_limit(__pos, __n); 26201: ; 26201: if (__n) 26201: _S_copy(__s, _M_data() + __pos, __n); 26201: 26201: return __n; 26201: } 26201: # 1150 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.tcc" 3 26201: template 26201: basic_string<_CharT, _Traits, _Alloc> 26201: operator+(const _CharT* __lhs, 26201: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 26201: { 26201: ; 26201: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 26201: typedef typename __string_type::size_type __size_type; 26201: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 26201: rebind<_CharT>::other _Char_alloc_type; 26201: typedef __gnu_cxx::__alloc_traits<_Char_alloc_type> _Alloc_traits; 26201: const __size_type __len = _Traits::length(__lhs); 26201: __string_type __str(_Alloc_traits::_S_select_on_copy( 26201: __rhs.get_allocator())); 26201: __str.reserve(__len + __rhs.size()); 26201: __str.append(__lhs, __len); 26201: __str.append(__rhs); 26201: return __str; 26201: } 26201: 26201: template 26201: basic_string<_CharT, _Traits, _Alloc> 26201: operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) 26201: { 26201: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 26201: typedef typename __string_type::size_type __size_type; 26201: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 26201: rebind<_CharT>::other _Char_alloc_type; 26201: typedef __gnu_cxx::__alloc_traits<_Char_alloc_type> _Alloc_traits; 26201: __string_type __str(_Alloc_traits::_S_select_on_copy( 26201: __rhs.get_allocator())); 26201: const __size_type __len = __rhs.size(); 26201: __str.reserve(__len + 1); 26201: __str.append(__size_type(1), __lhs); 26201: __str.append(__rhs); 26201: return __str; 26201: } 26201: 26201: template 26201: typename basic_string<_CharT, _Traits, _Alloc>::size_type 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: find(const _CharT* __s, size_type __pos, size_type __n) const 26201: noexcept 26201: { 26201: ; 26201: const size_type __size = this->size(); 26201: 26201: if (__n == 0) 26201: return __pos <= __size ? __pos : npos; 26201: if (__pos >= __size) 26201: return npos; 26201: 26201: const _CharT __elem0 = __s[0]; 26201: const _CharT* const __data = data(); 26201: const _CharT* __first = __data + __pos; 26201: const _CharT* const __last = __data + __size; 26201: size_type __len = __size - __pos; 26201: 26201: while (__len >= __n) 26201: { 26201: 26201: __first = traits_type::find(__first, __len - __n + 1, __elem0); 26201: if (!__first) 26201: return npos; 26201: 26201: 26201: 26201: if (traits_type::compare(__first, __s, __n) == 0) 26201: return __first - __data; 26201: __len = __last - ++__first; 26201: } 26201: return npos; 26201: } 26201: 26201: template 26201: typename basic_string<_CharT, _Traits, _Alloc>::size_type 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: find(_CharT __c, size_type __pos) const noexcept 26201: { 26201: size_type __ret = npos; 26201: const size_type __size = this->size(); 26201: if (__pos < __size) 26201: { 26201: const _CharT* __data = _M_data(); 26201: const size_type __n = __size - __pos; 26201: const _CharT* __p = traits_type::find(__data + __pos, __n, __c); 26201: if (__p) 26201: __ret = __p - __data; 26201: } 26201: return __ret; 26201: } 26201: 26201: template 26201: typename basic_string<_CharT, _Traits, _Alloc>::size_type 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: rfind(const _CharT* __s, size_type __pos, size_type __n) const 26201: noexcept 26201: { 26201: ; 26201: const size_type __size = this->size(); 26201: if (__n <= __size) 26201: { 26201: __pos = std::min(size_type(__size - __n), __pos); 26201: const _CharT* __data = _M_data(); 26201: do 26201: { 26201: if (traits_type::compare(__data + __pos, __s, __n) == 0) 26201: return __pos; 26201: } 26201: while (__pos-- > 0); 26201: } 26201: return npos; 26201: } 26201: 26201: template 26201: typename basic_string<_CharT, _Traits, _Alloc>::size_type 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: rfind(_CharT __c, size_type __pos) const noexcept 26201: { 26201: size_type __size = this->size(); 26201: if (__size) 26201: { 26201: if (--__size > __pos) 26201: __size = __pos; 26201: for (++__size; __size-- > 0; ) 26201: if (traits_type::eq(_M_data()[__size], __c)) 26201: return __size; 26201: } 26201: return npos; 26201: } 26201: 26201: template 26201: typename basic_string<_CharT, _Traits, _Alloc>::size_type 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const 26201: noexcept 26201: { 26201: ; 26201: for (; __n && __pos < this->size(); ++__pos) 26201: { 26201: const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]); 26201: if (__p) 26201: return __pos; 26201: } 26201: return npos; 26201: } 26201: 26201: template 26201: typename basic_string<_CharT, _Traits, _Alloc>::size_type 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const 26201: noexcept 26201: { 26201: ; 26201: size_type __size = this->size(); 26201: if (__size && __n) 26201: { 26201: if (--__size > __pos) 26201: __size = __pos; 26201: do 26201: { 26201: if (traits_type::find(__s, __n, _M_data()[__size])) 26201: return __size; 26201: } 26201: while (__size-- != 0); 26201: } 26201: return npos; 26201: } 26201: 26201: template 26201: typename basic_string<_CharT, _Traits, _Alloc>::size_type 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const 26201: noexcept 26201: { 26201: ; 26201: for (; __pos < this->size(); ++__pos) 26201: if (!traits_type::find(__s, __n, _M_data()[__pos])) 26201: return __pos; 26201: return npos; 26201: } 26201: 26201: template 26201: typename basic_string<_CharT, _Traits, _Alloc>::size_type 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: find_first_not_of(_CharT __c, size_type __pos) const noexcept 26201: { 26201: for (; __pos < this->size(); ++__pos) 26201: if (!traits_type::eq(_M_data()[__pos], __c)) 26201: return __pos; 26201: return npos; 26201: } 26201: 26201: template 26201: typename basic_string<_CharT, _Traits, _Alloc>::size_type 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const 26201: noexcept 26201: { 26201: ; 26201: size_type __size = this->size(); 26201: if (__size) 26201: { 26201: if (--__size > __pos) 26201: __size = __pos; 26201: do 26201: { 26201: if (!traits_type::find(__s, __n, _M_data()[__size])) 26201: return __size; 26201: } 26201: while (__size--); 26201: } 26201: return npos; 26201: } 26201: 26201: template 26201: typename basic_string<_CharT, _Traits, _Alloc>::size_type 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: find_last_not_of(_CharT __c, size_type __pos) const noexcept 26201: { 26201: size_type __size = this->size(); 26201: if (__size) 26201: { 26201: if (--__size > __pos) 26201: __size = __pos; 26201: do 26201: { 26201: if (!traits_type::eq(_M_data()[__size], __c)) 26201: return __size; 26201: } 26201: while (__size--); 26201: } 26201: return npos; 26201: } 26201: 26201: template 26201: int 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: compare(size_type __pos, size_type __n, const basic_string& __str) const 26201: { 26201: _M_check(__pos, "basic_string::compare"); 26201: __n = _M_limit(__pos, __n); 26201: const size_type __osize = __str.size(); 26201: const size_type __len = std::min(__n, __osize); 26201: int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len); 26201: if (!__r) 26201: __r = _S_compare(__n, __osize); 26201: return __r; 26201: } 26201: 26201: template 26201: int 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: compare(size_type __pos1, size_type __n1, const basic_string& __str, 26201: size_type __pos2, size_type __n2) const 26201: { 26201: _M_check(__pos1, "basic_string::compare"); 26201: __str._M_check(__pos2, "basic_string::compare"); 26201: __n1 = _M_limit(__pos1, __n1); 26201: __n2 = __str._M_limit(__pos2, __n2); 26201: const size_type __len = std::min(__n1, __n2); 26201: int __r = traits_type::compare(_M_data() + __pos1, 26201: __str.data() + __pos2, __len); 26201: if (!__r) 26201: __r = _S_compare(__n1, __n2); 26201: return __r; 26201: } 26201: 26201: template 26201: int 26201: basic_string<_CharT, _Traits, _Alloc>:: 26201: compare(const _CharT* __s) const noexcept 26201: { 26201: ; 26201: const size_type __size = this->size(); 26201: const size_type __osize = traits_type::length(__s); 26201: const size_type __len = std::min(__size, __osize); 26201: int __r = traits_type::compare(_M_data(), __s, __len); 26201: if (!__r) 26201: __r = _S_compare(__size, __osize); 26201: return __r; 26201: } 26201: 26201: template 26201: int 26201: basic_string <_CharT, _Traits, _Alloc>:: 26201: compare(size_type __pos, size_type __n1, const _CharT* __s) const 26201: { 26201: ; 26201: _M_check(__pos, "basic_string::compare"); 26201: __n1 = _M_limit(__pos, __n1); 26201: const size_type __osize = traits_type::length(__s); 26201: const size_type __len = std::min(__n1, __osize); 26201: int __r = traits_type::compare(_M_data() + __pos, __s, __len); 26201: if (!__r) 26201: __r = _S_compare(__n1, __osize); 26201: return __r; 26201: } 26201: 26201: template 26201: int 26201: basic_string <_CharT, _Traits, _Alloc>:: 26201: compare(size_type __pos, size_type __n1, const _CharT* __s, 26201: size_type __n2) const 26201: { 26201: ; 26201: _M_check(__pos, "basic_string::compare"); 26201: __n1 = _M_limit(__pos, __n1); 26201: const size_type __len = std::min(__n1, __n2); 26201: int __r = traits_type::compare(_M_data() + __pos, __s, __len); 26201: if (!__r) 26201: __r = _S_compare(__n1, __n2); 26201: return __r; 26201: } 26201: 26201: 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: operator>>(basic_istream<_CharT, _Traits>& __in, 26201: basic_string<_CharT, _Traits, _Alloc>& __str) 26201: { 26201: typedef basic_istream<_CharT, _Traits> __istream_type; 26201: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 26201: typedef typename __istream_type::ios_base __ios_base; 26201: typedef typename __istream_type::int_type __int_type; 26201: typedef typename __string_type::size_type __size_type; 26201: typedef ctype<_CharT> __ctype_type; 26201: typedef typename __ctype_type::ctype_base __ctype_base; 26201: 26201: __size_type __extracted = 0; 26201: typename __ios_base::iostate __err = __ios_base::goodbit; 26201: typename __istream_type::sentry __cerb(__in, false); 26201: if (__cerb) 26201: { 26201: try 26201: { 26201: 26201: __str.erase(); 26201: _CharT __buf[128]; 26201: __size_type __len = 0; 26201: const streamsize __w = __in.width(); 26201: const __size_type __n = __w > 0 ? static_cast<__size_type>(__w) 26201: : __str.max_size(); 26201: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 26201: const __int_type __eof = _Traits::eof(); 26201: __int_type __c = __in.rdbuf()->sgetc(); 26201: 26201: while (__extracted < __n 26201: && !_Traits::eq_int_type(__c, __eof) 26201: && !__ct.is(__ctype_base::space, 26201: _Traits::to_char_type(__c))) 26201: { 26201: if (__len == sizeof(__buf) / sizeof(_CharT)) 26201: { 26201: __str.append(__buf, sizeof(__buf) / sizeof(_CharT)); 26201: __len = 0; 26201: } 26201: __buf[__len++] = _Traits::to_char_type(__c); 26201: ++__extracted; 26201: __c = __in.rdbuf()->snextc(); 26201: } 26201: __str.append(__buf, __len); 26201: 26201: if (_Traits::eq_int_type(__c, __eof)) 26201: __err |= __ios_base::eofbit; 26201: __in.width(0); 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: __in._M_setstate(__ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { 26201: 26201: 26201: 26201: __in._M_setstate(__ios_base::badbit); 26201: } 26201: } 26201: 26201: if (!__extracted) 26201: __err |= __ios_base::failbit; 26201: if (__err) 26201: __in.setstate(__err); 26201: return __in; 26201: } 26201: 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: getline(basic_istream<_CharT, _Traits>& __in, 26201: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) 26201: { 26201: typedef basic_istream<_CharT, _Traits> __istream_type; 26201: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 26201: typedef typename __istream_type::ios_base __ios_base; 26201: typedef typename __istream_type::int_type __int_type; 26201: typedef typename __string_type::size_type __size_type; 26201: 26201: __size_type __extracted = 0; 26201: const __size_type __n = __str.max_size(); 26201: typename __ios_base::iostate __err = __ios_base::goodbit; 26201: typename __istream_type::sentry __cerb(__in, true); 26201: if (__cerb) 26201: { 26201: try 26201: { 26201: __str.erase(); 26201: const __int_type __idelim = _Traits::to_int_type(__delim); 26201: const __int_type __eof = _Traits::eof(); 26201: __int_type __c = __in.rdbuf()->sgetc(); 26201: 26201: while (__extracted < __n 26201: && !_Traits::eq_int_type(__c, __eof) 26201: && !_Traits::eq_int_type(__c, __idelim)) 26201: { 26201: __str += _Traits::to_char_type(__c); 26201: ++__extracted; 26201: __c = __in.rdbuf()->snextc(); 26201: } 26201: 26201: if (_Traits::eq_int_type(__c, __eof)) 26201: __err |= __ios_base::eofbit; 26201: else if (_Traits::eq_int_type(__c, __idelim)) 26201: { 26201: ++__extracted; 26201: __in.rdbuf()->sbumpc(); 26201: } 26201: else 26201: __err |= __ios_base::failbit; 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: __in._M_setstate(__ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { 26201: 26201: 26201: 26201: __in._M_setstate(__ios_base::badbit); 26201: } 26201: } 26201: if (!__extracted) 26201: __err |= __ios_base::failbit; 26201: if (__err) 26201: __in.setstate(__err); 26201: return __in; 26201: } 26201: # 1610 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_string.tcc" 3 26201: extern template class basic_string; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern template 26201: basic_istream& 26201: operator>>(basic_istream&, string&); 26201: extern template 26201: basic_ostream& 26201: operator<<(basic_ostream&, const string&); 26201: extern template 26201: basic_istream& 26201: getline(basic_istream&, string&, char); 26201: extern template 26201: basic_istream& 26201: getline(basic_istream&, string&); 26201: 26201: 26201: 26201: extern template class basic_string; 26201: 26201: 26201: 26201: 26201: 26201: extern template 26201: basic_istream& 26201: operator>>(basic_istream&, wstring&); 26201: extern template 26201: basic_ostream& 26201: operator<<(basic_ostream&, const wstring&); 26201: extern template 26201: basic_istream& 26201: getline(basic_istream&, wstring&, wchar_t); 26201: extern template 26201: basic_istream& 26201: getline(basic_istream&, wstring&); 26201: 26201: 26201: 26201: 26201: } 26201: # 57 "/usr/x86_64-linux-gnu/include/c++/10/string" 2 3 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: namespace pmr { 26201: template class polymorphic_allocator; 26201: template> 26201: using basic_string = std::basic_string<_CharT, _Traits, 26201: polymorphic_allocator<_CharT>>; 26201: using string = basic_string; 26201: 26201: 26201: 26201: using u16string = basic_string; 26201: using u32string = basic_string; 26201: 26201: using wstring = basic_string; 26201: 26201: } 26201: 26201: template 26201: struct __hash_string_base 26201: : public __hash_base 26201: { 26201: size_t 26201: operator()(const _Str& __s) const noexcept 26201: { return hash>{}(__s); } 26201: }; 26201: 26201: template<> 26201: struct hash 26201: : public __hash_string_base 26201: { }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template<> 26201: struct hash 26201: : public __hash_string_base 26201: { }; 26201: template<> 26201: struct hash 26201: : public __hash_string_base 26201: { }; 26201: 26201: template<> 26201: struct hash 26201: : public __hash_string_base 26201: { }; 26201: 26201: 26201: 26201: } 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/stdexcept" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: struct __cow_string 26201: { 26201: union { 26201: const char* _M_p; 26201: char _M_bytes[sizeof(const char*)]; 26201: }; 26201: 26201: __cow_string(); 26201: __cow_string(const std::string&); 26201: __cow_string(const char*, size_t); 26201: __cow_string(const __cow_string&) noexcept; 26201: __cow_string& operator=(const __cow_string&) noexcept; 26201: ~__cow_string(); 26201: 26201: __cow_string(__cow_string&&) noexcept; 26201: __cow_string& operator=(__cow_string&&) noexcept; 26201: 26201: }; 26201: 26201: typedef basic_string __sso_string; 26201: # 113 "/usr/x86_64-linux-gnu/include/c++/10/stdexcept" 3 26201: class logic_error : public exception 26201: { 26201: __cow_string _M_msg; 26201: 26201: public: 26201: 26201: explicit 26201: logic_error(const string& __arg) ; 26201: 26201: 26201: explicit 26201: logic_error(const char*) ; 26201: 26201: logic_error(logic_error&&) noexcept; 26201: logic_error& operator=(logic_error&&) noexcept; 26201: 26201: 26201: 26201: logic_error(const logic_error&) noexcept; 26201: logic_error& operator=(const logic_error&) noexcept; 26201: 26201: 26201: 26201: 26201: 26201: virtual ~logic_error() noexcept; 26201: 26201: 26201: 26201: virtual const char* 26201: what() const noexcept; 26201: 26201: 26201: 26201: 26201: 26201: }; 26201: 26201: 26201: 26201: class domain_error : public logic_error 26201: { 26201: public: 26201: explicit domain_error(const string& __arg) ; 26201: 26201: explicit domain_error(const char*) ; 26201: domain_error(const domain_error&) = default; 26201: domain_error& operator=(const domain_error&) = default; 26201: domain_error(domain_error&&) = default; 26201: domain_error& operator=(domain_error&&) = default; 26201: 26201: virtual ~domain_error() noexcept; 26201: }; 26201: 26201: 26201: class invalid_argument : public logic_error 26201: { 26201: public: 26201: explicit invalid_argument(const string& __arg) ; 26201: 26201: explicit invalid_argument(const char*) ; 26201: invalid_argument(const invalid_argument&) = default; 26201: invalid_argument& operator=(const invalid_argument&) = default; 26201: invalid_argument(invalid_argument&&) = default; 26201: invalid_argument& operator=(invalid_argument&&) = default; 26201: 26201: virtual ~invalid_argument() noexcept; 26201: }; 26201: 26201: 26201: 26201: class length_error : public logic_error 26201: { 26201: public: 26201: explicit length_error(const string& __arg) ; 26201: 26201: explicit length_error(const char*) ; 26201: length_error(const length_error&) = default; 26201: length_error& operator=(const length_error&) = default; 26201: length_error(length_error&&) = default; 26201: length_error& operator=(length_error&&) = default; 26201: 26201: virtual ~length_error() noexcept; 26201: }; 26201: 26201: 26201: 26201: class out_of_range : public logic_error 26201: { 26201: public: 26201: explicit out_of_range(const string& __arg) ; 26201: 26201: explicit out_of_range(const char*) ; 26201: out_of_range(const out_of_range&) = default; 26201: out_of_range& operator=(const out_of_range&) = default; 26201: out_of_range(out_of_range&&) = default; 26201: out_of_range& operator=(out_of_range&&) = default; 26201: 26201: virtual ~out_of_range() noexcept; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: class runtime_error : public exception 26201: { 26201: __cow_string _M_msg; 26201: 26201: public: 26201: 26201: explicit 26201: runtime_error(const string& __arg) ; 26201: 26201: 26201: explicit 26201: runtime_error(const char*) ; 26201: 26201: runtime_error(runtime_error&&) noexcept; 26201: runtime_error& operator=(runtime_error&&) noexcept; 26201: 26201: 26201: 26201: runtime_error(const runtime_error&) noexcept; 26201: runtime_error& operator=(const runtime_error&) noexcept; 26201: 26201: 26201: 26201: 26201: 26201: virtual ~runtime_error() noexcept; 26201: 26201: 26201: 26201: virtual const char* 26201: what() const noexcept; 26201: 26201: 26201: 26201: 26201: 26201: }; 26201: 26201: 26201: class range_error : public runtime_error 26201: { 26201: public: 26201: explicit range_error(const string& __arg) ; 26201: 26201: explicit range_error(const char*) ; 26201: range_error(const range_error&) = default; 26201: range_error& operator=(const range_error&) = default; 26201: range_error(range_error&&) = default; 26201: range_error& operator=(range_error&&) = default; 26201: 26201: virtual ~range_error() noexcept; 26201: }; 26201: 26201: 26201: class overflow_error : public runtime_error 26201: { 26201: public: 26201: explicit overflow_error(const string& __arg) ; 26201: 26201: explicit overflow_error(const char*) ; 26201: overflow_error(const overflow_error&) = default; 26201: overflow_error& operator=(const overflow_error&) = default; 26201: overflow_error(overflow_error&&) = default; 26201: overflow_error& operator=(overflow_error&&) = default; 26201: 26201: virtual ~overflow_error() noexcept; 26201: }; 26201: 26201: 26201: class underflow_error : public runtime_error 26201: { 26201: public: 26201: explicit underflow_error(const string& __arg) ; 26201: 26201: explicit underflow_error(const char*) ; 26201: underflow_error(const underflow_error&) = default; 26201: underflow_error& operator=(const underflow_error&) = default; 26201: underflow_error(underflow_error&&) = default; 26201: underflow_error& operator=(underflow_error&&) = default; 26201: 26201: virtual ~underflow_error() noexcept; 26201: }; 26201: 26201: 26201: 26201: 26201: } 26201: # 42 "/usr/x86_64-linux-gnu/include/c++/10/system_error" 2 3 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: class error_code; 26201: class error_condition; 26201: class system_error; 26201: 26201: 26201: template 26201: struct is_error_code_enum : public false_type { }; 26201: 26201: 26201: template 26201: struct is_error_condition_enum : public false_type { }; 26201: 26201: template<> 26201: struct is_error_condition_enum 26201: : public true_type { }; 26201: 26201: 26201: template 26201: inline constexpr bool is_error_code_enum_v = 26201: is_error_code_enum<_Tp>::value; 26201: template 26201: inline constexpr bool is_error_condition_enum_v = 26201: is_error_condition_enum<_Tp>::value; 26201: 26201: inline namespace _V2 { 26201: # 89 "/usr/x86_64-linux-gnu/include/c++/10/system_error" 3 26201: class error_category 26201: { 26201: public: 26201: constexpr error_category() noexcept = default; 26201: 26201: virtual ~error_category(); 26201: 26201: error_category(const error_category&) = delete; 26201: error_category& operator=(const error_category&) = delete; 26201: 26201: virtual const char* 26201: name() const noexcept = 0; 26201: 26201: 26201: 26201: 26201: 26201: 26201: private: 26201: __attribute ((__abi_tag__ ("cxx11"))) 26201: virtual __cow_string 26201: _M_message(int) const; 26201: 26201: public: 26201: __attribute ((__abi_tag__ ("cxx11"))) 26201: virtual string 26201: message(int) const = 0; 26201: # 125 "/usr/x86_64-linux-gnu/include/c++/10/system_error" 3 26201: public: 26201: virtual error_condition 26201: default_error_condition(int __i) const noexcept; 26201: 26201: virtual bool 26201: equivalent(int __i, const error_condition& __cond) const noexcept; 26201: 26201: virtual bool 26201: equivalent(const error_code& __code, int __i) const noexcept; 26201: 26201: bool 26201: operator==(const error_category& __other) const noexcept 26201: { return this == &__other; } 26201: 26201: 26201: 26201: 26201: 26201: 26201: bool 26201: operator!=(const error_category& __other) const noexcept 26201: { return this != &__other; } 26201: 26201: bool 26201: operator<(const error_category& __other) const noexcept 26201: { return less()(this, &__other); } 26201: 26201: }; 26201: 26201: 26201: 26201: 26201: __attribute__ ((__const__)) const error_category& generic_category() noexcept; 26201: 26201: 26201: __attribute__ ((__const__)) const error_category& system_category() noexcept; 26201: 26201: } 26201: 26201: error_code make_error_code(errc) noexcept; 26201: # 180 "/usr/x86_64-linux-gnu/include/c++/10/system_error" 3 26201: struct error_code 26201: { 26201: error_code() noexcept 26201: : _M_value(0), _M_cat(&system_category()) { } 26201: 26201: error_code(int __v, const error_category& __cat) noexcept 26201: : _M_value(__v), _M_cat(&__cat) { } 26201: 26201: template::value>::type> 26201: error_code(_ErrorCodeEnum __e) noexcept 26201: { *this = make_error_code(__e); } 26201: 26201: void 26201: assign(int __v, const error_category& __cat) noexcept 26201: { 26201: _M_value = __v; 26201: _M_cat = &__cat; 26201: } 26201: 26201: void 26201: clear() noexcept 26201: { assign(0, system_category()); } 26201: 26201: 26201: template 26201: typename enable_if::value, 26201: error_code&>::type 26201: operator=(_ErrorCodeEnum __e) noexcept 26201: { return *this = make_error_code(__e); } 26201: 26201: int 26201: value() const noexcept { return _M_value; } 26201: 26201: const error_category& 26201: category() const noexcept { return *_M_cat; } 26201: 26201: error_condition 26201: default_error_condition() const noexcept; 26201: 26201: __attribute ((__abi_tag__ ("cxx11"))) 26201: string 26201: message() const 26201: { return category().message(value()); } 26201: 26201: explicit operator bool() const noexcept 26201: { return _M_value != 0; } 26201: 26201: 26201: private: 26201: int _M_value; 26201: const error_category* _M_cat; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: inline error_code 26201: make_error_code(errc __e) noexcept 26201: { return error_code(static_cast(__e), generic_category()); } 26201: # 251 "/usr/x86_64-linux-gnu/include/c++/10/system_error" 3 26201: inline bool 26201: operator<(const error_code& __lhs, const error_code& __rhs) noexcept 26201: { 26201: return (__lhs.category() < __rhs.category() 26201: || (__lhs.category() == __rhs.category() 26201: && __lhs.value() < __rhs.value())); 26201: } 26201: 26201: 26201: template 26201: basic_ostream<_CharT, _Traits>& 26201: operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __e) 26201: { return (__os << __e.category().name() << ':' << __e.value()); } 26201: 26201: 26201: 26201: error_condition make_error_condition(errc) noexcept; 26201: # 278 "/usr/x86_64-linux-gnu/include/c++/10/system_error" 3 26201: struct error_condition 26201: { 26201: error_condition() noexcept 26201: : _M_value(0), _M_cat(&generic_category()) { } 26201: 26201: error_condition(int __v, const error_category& __cat) noexcept 26201: : _M_value(__v), _M_cat(&__cat) { } 26201: 26201: template::value>::type> 26201: error_condition(_ErrorConditionEnum __e) noexcept 26201: { *this = make_error_condition(__e); } 26201: 26201: void 26201: assign(int __v, const error_category& __cat) noexcept 26201: { 26201: _M_value = __v; 26201: _M_cat = &__cat; 26201: } 26201: 26201: 26201: template 26201: typename enable_if::value, error_condition&>::type 26201: operator=(_ErrorConditionEnum __e) noexcept 26201: { return *this = make_error_condition(__e); } 26201: 26201: void 26201: clear() noexcept 26201: { assign(0, generic_category()); } 26201: 26201: 26201: int 26201: value() const noexcept { return _M_value; } 26201: 26201: const error_category& 26201: category() const noexcept { return *_M_cat; } 26201: 26201: __attribute ((__abi_tag__ ("cxx11"))) 26201: string 26201: message() const 26201: { return category().message(value()); } 26201: 26201: explicit operator bool() const noexcept 26201: { return _M_value != 0; } 26201: 26201: 26201: private: 26201: int _M_value; 26201: const error_category* _M_cat; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: inline error_condition 26201: make_error_condition(errc __e) noexcept 26201: { return error_condition(static_cast(__e), generic_category()); } 26201: 26201: 26201: 26201: 26201: inline bool 26201: operator==(const error_code& __lhs, const error_code& __rhs) noexcept 26201: { return (__lhs.category() == __rhs.category() 26201: && __lhs.value() == __rhs.value()); } 26201: 26201: 26201: 26201: inline bool 26201: operator==(const error_code& __lhs, const error_condition& __rhs) noexcept 26201: { 26201: return (__lhs.category().equivalent(__lhs.value(), __rhs) 26201: || __rhs.category().equivalent(__lhs, __rhs.value())); 26201: } 26201: 26201: 26201: inline bool 26201: operator==(const error_condition& __lhs, 26201: const error_condition& __rhs) noexcept 26201: { 26201: return (__lhs.category() == __rhs.category() 26201: && __lhs.value() == __rhs.value()); 26201: } 26201: # 378 "/usr/x86_64-linux-gnu/include/c++/10/system_error" 3 26201: inline bool 26201: operator<(const error_condition& __lhs, 26201: const error_condition& __rhs) noexcept 26201: { 26201: return (__lhs.category() < __rhs.category() 26201: || (__lhs.category() == __rhs.category() 26201: && __lhs.value() < __rhs.value())); 26201: } 26201: 26201: 26201: 26201: inline bool 26201: operator==(const error_condition& __lhs, const error_code& __rhs) noexcept 26201: { 26201: return (__rhs.category().equivalent(__rhs.value(), __lhs) 26201: || __lhs.category().equivalent(__rhs, __lhs.value())); 26201: } 26201: 26201: 26201: inline bool 26201: operator!=(const error_code& __lhs, const error_code& __rhs) noexcept 26201: { return !(__lhs == __rhs); } 26201: 26201: 26201: 26201: inline bool 26201: operator!=(const error_code& __lhs, const error_condition& __rhs) noexcept 26201: { return !(__lhs == __rhs); } 26201: 26201: 26201: 26201: inline bool 26201: operator!=(const error_condition& __lhs, const error_code& __rhs) noexcept 26201: { return !(__lhs == __rhs); } 26201: 26201: 26201: inline bool 26201: operator!=(const error_condition& __lhs, 26201: const error_condition& __rhs) noexcept 26201: { return !(__lhs == __rhs); } 26201: # 428 "/usr/x86_64-linux-gnu/include/c++/10/system_error" 3 26201: class system_error : public std::runtime_error 26201: { 26201: private: 26201: error_code _M_code; 26201: 26201: public: 26201: system_error(error_code __ec = error_code()) 26201: : runtime_error(__ec.message()), _M_code(__ec) { } 26201: 26201: system_error(error_code __ec, const string& __what) 26201: : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { } 26201: 26201: system_error(error_code __ec, const char* __what) 26201: : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { } 26201: 26201: system_error(int __v, const error_category& __ecat, const char* __what) 26201: : system_error(error_code(__v, __ecat), __what) { } 26201: 26201: system_error(int __v, const error_category& __ecat) 26201: : runtime_error(error_code(__v, __ecat).message()), 26201: _M_code(__v, __ecat) { } 26201: 26201: system_error(int __v, const error_category& __ecat, const string& __what) 26201: : runtime_error(__what + ": " + error_code(__v, __ecat).message()), 26201: _M_code(__v, __ecat) { } 26201: 26201: 26201: system_error (const system_error &) = default; 26201: system_error &operator= (const system_error &) = default; 26201: 26201: 26201: virtual ~system_error() noexcept; 26201: 26201: const error_code& 26201: code() const noexcept { return _M_code; } 26201: }; 26201: 26201: 26201: } 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: template<> 26201: struct hash 26201: : public __hash_base 26201: { 26201: size_t 26201: operator()(const error_code& __e) const noexcept 26201: { 26201: const size_t __tmp = std::_Hash_impl::hash(__e.value()); 26201: return std::_Hash_impl::__hash_combine(&__e.category(), __tmp); 26201: } 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template<> 26201: struct hash 26201: : public __hash_base 26201: { 26201: size_t 26201: operator()(const error_condition& __e) const noexcept 26201: { 26201: const size_t __tmp = std::_Hash_impl::hash(__e.value()); 26201: return std::_Hash_impl::__hash_combine(&__e.category(), __tmp); 26201: } 26201: }; 26201: 26201: 26201: 26201: } 26201: # 36 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_fwd.h" 2 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/chrono" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/chrono" 3 26201: #define _GLIBCXX_CHRONO 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/chrono" 3 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/ratio" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/ratio" 3 26201: #define _GLIBCXX_RATIO 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/ratio" 3 26201: # 42 "/usr/x86_64-linux-gnu/include/c++/10/ratio" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 56 "/usr/x86_64-linux-gnu/include/c++/10/ratio" 3 26201: template 26201: struct __static_sign 26201: : integral_constant 26201: { }; 26201: 26201: template 26201: struct __static_abs 26201: : integral_constant::value> 26201: { }; 26201: 26201: template 26201: struct __static_gcd 26201: : __static_gcd<_Qn, (_Pn % _Qn)> 26201: { }; 26201: 26201: template 26201: struct __static_gcd<_Pn, 0> 26201: : integral_constant::value> 26201: { }; 26201: 26201: template 26201: struct __static_gcd<0, _Qn> 26201: : integral_constant::value> 26201: { }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct __safe_multiply 26201: { 26201: private: 26201: static const uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 26201: 26201: static const uintmax_t __a0 = __static_abs<_Pn>::value % __c; 26201: static const uintmax_t __a1 = __static_abs<_Pn>::value / __c; 26201: static const uintmax_t __b0 = __static_abs<_Qn>::value % __c; 26201: static const uintmax_t __b1 = __static_abs<_Qn>::value / __c; 26201: 26201: static_assert(__a1 == 0 || __b1 == 0, 26201: "overflow in multiplication"); 26201: static_assert(__a0 * __b1 + __b0 * __a1 < (__c >> 1), 26201: "overflow in multiplication"); 26201: static_assert(__b0 * __a0 <= 0x7fffffffffffffffL, 26201: "overflow in multiplication"); 26201: static_assert((__a0 * __b1 + __b0 * __a1) * __c 26201: <= 0x7fffffffffffffffL - __b0 * __a0, 26201: "overflow in multiplication"); 26201: 26201: public: 26201: static const intmax_t value = _Pn * _Qn; 26201: }; 26201: 26201: 26201: 26201: template 26201: struct __big_less 26201: : integral_constant 26201: { }; 26201: 26201: template 26201: struct __big_add 26201: { 26201: static constexpr uintmax_t __lo = __lo1 + __lo2; 26201: static constexpr uintmax_t __hi = (__hi1 + __hi2 + 26201: (__lo1 + __lo2 < __lo1)); 26201: }; 26201: 26201: 26201: template 26201: struct __big_sub 26201: { 26201: static_assert(!__big_less<__hi1, __lo1, __hi2, __lo2>::value, 26201: "Internal library error"); 26201: static constexpr uintmax_t __lo = __lo1 - __lo2; 26201: static constexpr uintmax_t __hi = (__hi1 - __hi2 - 26201: (__lo1 < __lo2)); 26201: }; 26201: 26201: 26201: template 26201: struct __big_mul 26201: { 26201: private: 26201: static constexpr uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 26201: static constexpr uintmax_t __x0 = __x % __c; 26201: static constexpr uintmax_t __x1 = __x / __c; 26201: static constexpr uintmax_t __y0 = __y % __c; 26201: static constexpr uintmax_t __y1 = __y / __c; 26201: static constexpr uintmax_t __x0y0 = __x0 * __y0; 26201: static constexpr uintmax_t __x0y1 = __x0 * __y1; 26201: static constexpr uintmax_t __x1y0 = __x1 * __y0; 26201: static constexpr uintmax_t __x1y1 = __x1 * __y1; 26201: static constexpr uintmax_t __mix = __x0y1 + __x1y0; 26201: static constexpr uintmax_t __mix_lo = __mix * __c; 26201: static constexpr uintmax_t __mix_hi 26201: = __mix / __c + ((__mix < __x0y1) ? __c : 0); 26201: typedef __big_add<__mix_hi, __mix_lo, __x1y1, __x0y0> _Res; 26201: public: 26201: static constexpr uintmax_t __hi = _Res::__hi; 26201: static constexpr uintmax_t __lo = _Res::__lo; 26201: }; 26201: 26201: 26201: 26201: template 26201: struct __big_div_impl 26201: { 26201: private: 26201: static_assert(__d >= (uintmax_t(1) << (sizeof(intmax_t) * 8 - 1)), 26201: "Internal library error"); 26201: static_assert(__n1 < __d, "Internal library error"); 26201: static constexpr uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 26201: static constexpr uintmax_t __d1 = __d / __c; 26201: static constexpr uintmax_t __d0 = __d % __c; 26201: 26201: static constexpr uintmax_t __q1x = __n1 / __d1; 26201: static constexpr uintmax_t __r1x = __n1 % __d1; 26201: static constexpr uintmax_t __m = __q1x * __d0; 26201: static constexpr uintmax_t __r1y = __r1x * __c + __n0 / __c; 26201: static constexpr uintmax_t __r1z = __r1y + __d; 26201: static constexpr uintmax_t __r1 26201: = ((__r1y < __m) ? ((__r1z >= __d) && (__r1z < __m)) 26201: ? (__r1z + __d) : __r1z : __r1y) - __m; 26201: static constexpr uintmax_t __q1 26201: = __q1x - ((__r1y < __m) 26201: ? ((__r1z >= __d) && (__r1z < __m)) ? 2 : 1 : 0); 26201: static constexpr uintmax_t __q0x = __r1 / __d1; 26201: static constexpr uintmax_t __r0x = __r1 % __d1; 26201: static constexpr uintmax_t __n = __q0x * __d0; 26201: static constexpr uintmax_t __r0y = __r0x * __c + __n0 % __c; 26201: static constexpr uintmax_t __r0z = __r0y + __d; 26201: static constexpr uintmax_t __r0 26201: = ((__r0y < __n) ? ((__r0z >= __d) && (__r0z < __n)) 26201: ? (__r0z + __d) : __r0z : __r0y) - __n; 26201: static constexpr uintmax_t __q0 26201: = __q0x - ((__r0y < __n) ? ((__r0z >= __d) 26201: && (__r0z < __n)) ? 2 : 1 : 0); 26201: 26201: public: 26201: static constexpr uintmax_t __quot = __q1 * __c + __q0; 26201: static constexpr uintmax_t __rem = __r0; 26201: 26201: private: 26201: typedef __big_mul<__quot, __d> _Prod; 26201: typedef __big_add<_Prod::__hi, _Prod::__lo, 0, __rem> _Sum; 26201: static_assert(_Sum::__hi == __n1 && _Sum::__lo == __n0, 26201: "Internal library error"); 26201: }; 26201: 26201: template 26201: struct __big_div 26201: { 26201: private: 26201: static_assert(__d != 0, "Internal library error"); 26201: static_assert(sizeof (uintmax_t) == sizeof (unsigned long long), 26201: "This library calls __builtin_clzll on uintmax_t, which " 26201: "is unsafe on your platform. Please complain to " 26201: "http://gcc.gnu.org/bugzilla/"); 26201: static constexpr int __shift = __builtin_clzll(__d); 26201: static constexpr int __coshift_ = sizeof(uintmax_t) * 8 - __shift; 26201: static constexpr int __coshift = (__shift != 0) ? __coshift_ : 0; 26201: static constexpr uintmax_t __c1 = uintmax_t(1) << __shift; 26201: static constexpr uintmax_t __c2 = uintmax_t(1) << __coshift; 26201: static constexpr uintmax_t __new_d = __d * __c1; 26201: static constexpr uintmax_t __new_n0 = __n0 * __c1; 26201: static constexpr uintmax_t __n1_shifted = (__n1 % __d) * __c1; 26201: static constexpr uintmax_t __n0_top = (__shift != 0) ? (__n0 / __c2) : 0; 26201: static constexpr uintmax_t __new_n1 = __n1_shifted + __n0_top; 26201: typedef __big_div_impl<__new_n1, __new_n0, __new_d> _Res; 26201: 26201: public: 26201: static constexpr uintmax_t __quot_hi = __n1 / __d; 26201: static constexpr uintmax_t __quot_lo = _Res::__quot; 26201: static constexpr uintmax_t __rem = _Res::__rem / __c1; 26201: 26201: private: 26201: typedef __big_mul<__quot_lo, __d> _P0; 26201: typedef __big_mul<__quot_hi, __d> _P1; 26201: typedef __big_add<_P0::__hi, _P0::__lo, _P1::__lo, __rem> _Sum; 26201: 26201: static_assert(_P1::__hi == 0, "Internal library error"); 26201: static_assert(_Sum::__hi >= _P0::__hi, "Internal library error"); 26201: 26201: static_assert(_Sum::__hi == __n1 && _Sum::__lo == __n0, 26201: "Internal library error"); 26201: static_assert(__rem < __d, "Internal library error"); 26201: }; 26201: # 265 "/usr/x86_64-linux-gnu/include/c++/10/ratio" 3 26201: template 26201: struct ratio 26201: { 26201: static_assert(_Den != 0, "denominator cannot be zero"); 26201: static_assert(_Num >= -0x7fffffffffffffffL && _Den >= -0x7fffffffffffffffL, 26201: "out of range"); 26201: 26201: 26201: static constexpr intmax_t num = 26201: _Num * __static_sign<_Den>::value / __static_gcd<_Num, _Den>::value; 26201: 26201: static constexpr intmax_t den = 26201: __static_abs<_Den>::value / __static_gcd<_Num, _Den>::value; 26201: 26201: typedef ratio type; 26201: }; 26201: 26201: template 26201: constexpr intmax_t ratio<_Num, _Den>::num; 26201: 26201: template 26201: constexpr intmax_t ratio<_Num, _Den>::den; 26201: 26201: 26201: 26201: template 26201: struct __ratio_multiply 26201: { 26201: private: 26201: static const intmax_t __gcd1 = 26201: __static_gcd<_R1::num, _R2::den>::value; 26201: static const intmax_t __gcd2 = 26201: __static_gcd<_R2::num, _R1::den>::value; 26201: 26201: public: 26201: typedef ratio< 26201: __safe_multiply<(_R1::num / __gcd1), 26201: (_R2::num / __gcd2)>::value, 26201: __safe_multiply<(_R1::den / __gcd2), 26201: (_R2::den / __gcd1)>::value> type; 26201: 26201: static constexpr intmax_t num = type::num; 26201: static constexpr intmax_t den = type::den; 26201: }; 26201: 26201: template 26201: constexpr intmax_t __ratio_multiply<_R1, _R2>::num; 26201: 26201: template 26201: constexpr intmax_t __ratio_multiply<_R1, _R2>::den; 26201: 26201: 26201: 26201: 26201: template 26201: using ratio_multiply = typename __ratio_multiply<_R1, _R2>::type; 26201: 26201: 26201: 26201: template 26201: struct __ratio_divide 26201: { 26201: static_assert(_R2::num != 0, "division by 0"); 26201: 26201: typedef typename __ratio_multiply< 26201: _R1, 26201: ratio<_R2::den, _R2::num>>::type type; 26201: 26201: static constexpr intmax_t num = type::num; 26201: static constexpr intmax_t den = type::den; 26201: }; 26201: 26201: template 26201: constexpr intmax_t __ratio_divide<_R1, _R2>::num; 26201: 26201: template 26201: constexpr intmax_t __ratio_divide<_R1, _R2>::den; 26201: 26201: 26201: 26201: 26201: template 26201: using ratio_divide = typename __ratio_divide<_R1, _R2>::type; 26201: 26201: 26201: template 26201: struct ratio_equal 26201: : integral_constant 26201: { }; 26201: 26201: 26201: template 26201: struct ratio_not_equal 26201: : integral_constant::value> 26201: { }; 26201: 26201: 26201: 26201: 26201: template, 26201: typename _Right = __big_mul<_R2::num,_R1::den> > 26201: struct __ratio_less_impl_1 26201: : integral_constant::value> 26201: { }; 26201: 26201: template::value 26201: != __static_sign<_R2::num>::value)), 26201: bool = (__static_sign<_R1::num>::value == -1 26201: && __static_sign<_R2::num>::value == -1)> 26201: struct __ratio_less_impl 26201: : __ratio_less_impl_1<_R1, _R2>::type 26201: { }; 26201: 26201: template 26201: struct __ratio_less_impl<_R1, _R2, true, false> 26201: : integral_constant 26201: { }; 26201: 26201: template 26201: struct __ratio_less_impl<_R1, _R2, false, true> 26201: : __ratio_less_impl_1, 26201: ratio<-_R1::num, _R1::den> >::type 26201: { }; 26201: 26201: 26201: 26201: 26201: template 26201: struct ratio_less 26201: : __ratio_less_impl<_R1, _R2>::type 26201: { }; 26201: 26201: 26201: template 26201: struct ratio_less_equal 26201: : integral_constant::value> 26201: { }; 26201: 26201: 26201: template 26201: struct ratio_greater 26201: : integral_constant::value> 26201: { }; 26201: 26201: 26201: template 26201: struct ratio_greater_equal 26201: : integral_constant::value> 26201: { }; 26201: 26201: 26201: template 26201: inline constexpr bool ratio_equal_v = ratio_equal<_R1, _R2>::value; 26201: template 26201: inline constexpr bool ratio_not_equal_v = ratio_not_equal<_R1, _R2>::value; 26201: template 26201: inline constexpr bool ratio_less_v = ratio_less<_R1, _R2>::value; 26201: template 26201: inline constexpr bool ratio_less_equal_v = 26201: ratio_less_equal<_R1, _R2>::value; 26201: template 26201: inline constexpr bool ratio_greater_v = ratio_greater<_R1, _R2>::value; 26201: template 26201: inline constexpr bool ratio_greater_equal_v 26201: = ratio_greater_equal<_R1, _R2>::value; 26201: 26201: 26201: 26201: 26201: template= 0), 26201: bool = (_R2::num >= 0), 26201: bool = ratio_less::value, _R1::den>, 26201: ratio<__static_abs<_R2::num>::value, _R2::den> >::value> 26201: struct __ratio_add_impl 26201: { 26201: private: 26201: typedef typename __ratio_add_impl< 26201: ratio<-_R1::num, _R1::den>, 26201: ratio<-_R2::num, _R2::den> >::type __t; 26201: public: 26201: typedef ratio<-__t::num, __t::den> type; 26201: }; 26201: 26201: 26201: template 26201: struct __ratio_add_impl<_R1, _R2, true, true, __b> 26201: { 26201: private: 26201: static constexpr uintmax_t __g = __static_gcd<_R1::den, _R2::den>::value; 26201: static constexpr uintmax_t __d2 = _R2::den / __g; 26201: typedef __big_mul<_R1::den, __d2> __d; 26201: typedef __big_mul<_R1::num, _R2::den / __g> __x; 26201: typedef __big_mul<_R2::num, _R1::den / __g> __y; 26201: typedef __big_add<__x::__hi, __x::__lo, __y::__hi, __y::__lo> __n; 26201: static_assert(__n::__hi >= __x::__hi, "Internal library error"); 26201: typedef __big_div<__n::__hi, __n::__lo, __g> __ng; 26201: static constexpr uintmax_t __g2 = __static_gcd<__ng::__rem, __g>::value; 26201: typedef __big_div<__n::__hi, __n::__lo, __g2> __n_final; 26201: static_assert(__n_final::__rem == 0, "Internal library error"); 26201: static_assert(__n_final::__quot_hi == 0 && 26201: __n_final::__quot_lo <= 0x7fffffffffffffffL, "overflow in addition"); 26201: typedef __big_mul<_R1::den / __g2, __d2> __d_final; 26201: static_assert(__d_final::__hi == 0 && 26201: __d_final::__lo <= 0x7fffffffffffffffL, "overflow in addition"); 26201: public: 26201: typedef ratio<__n_final::__quot_lo, __d_final::__lo> type; 26201: }; 26201: 26201: template 26201: struct __ratio_add_impl<_R1, _R2, false, true, true> 26201: : __ratio_add_impl<_R2, _R1> 26201: { }; 26201: 26201: 26201: template 26201: struct __ratio_add_impl<_R1, _R2, true, false, false> 26201: { 26201: private: 26201: static constexpr uintmax_t __g = __static_gcd<_R1::den, _R2::den>::value; 26201: static constexpr uintmax_t __d2 = _R2::den / __g; 26201: typedef __big_mul<_R1::den, __d2> __d; 26201: typedef __big_mul<_R1::num, _R2::den / __g> __x; 26201: typedef __big_mul<-_R2::num, _R1::den / __g> __y; 26201: typedef __big_sub<__x::__hi, __x::__lo, __y::__hi, __y::__lo> __n; 26201: typedef __big_div<__n::__hi, __n::__lo, __g> __ng; 26201: static constexpr uintmax_t __g2 = __static_gcd<__ng::__rem, __g>::value; 26201: typedef __big_div<__n::__hi, __n::__lo, __g2> __n_final; 26201: static_assert(__n_final::__rem == 0, "Internal library error"); 26201: static_assert(__n_final::__quot_hi == 0 && 26201: __n_final::__quot_lo <= 0x7fffffffffffffffL, "overflow in addition"); 26201: typedef __big_mul<_R1::den / __g2, __d2> __d_final; 26201: static_assert(__d_final::__hi == 0 && 26201: __d_final::__lo <= 0x7fffffffffffffffL, "overflow in addition"); 26201: public: 26201: typedef ratio<__n_final::__quot_lo, __d_final::__lo> type; 26201: }; 26201: 26201: template 26201: struct __ratio_add 26201: { 26201: typedef typename __ratio_add_impl<_R1, _R2>::type type; 26201: static constexpr intmax_t num = type::num; 26201: static constexpr intmax_t den = type::den; 26201: }; 26201: 26201: template 26201: constexpr intmax_t __ratio_add<_R1, _R2>::num; 26201: 26201: template 26201: constexpr intmax_t __ratio_add<_R1, _R2>::den; 26201: 26201: 26201: 26201: 26201: template 26201: using ratio_add = typename __ratio_add<_R1, _R2>::type; 26201: 26201: 26201: 26201: template 26201: struct __ratio_subtract 26201: { 26201: typedef typename __ratio_add< 26201: _R1, 26201: ratio<-_R2::num, _R2::den>>::type type; 26201: 26201: static constexpr intmax_t num = type::num; 26201: static constexpr intmax_t den = type::den; 26201: }; 26201: 26201: template 26201: constexpr intmax_t __ratio_subtract<_R1, _R2>::num; 26201: 26201: template 26201: constexpr intmax_t __ratio_subtract<_R1, _R2>::den; 26201: 26201: 26201: 26201: 26201: template 26201: using ratio_subtract = typename __ratio_subtract<_R1, _R2>::type; 26201: 26201: 26201: typedef ratio<1, 1000000000000000000> atto; 26201: typedef ratio<1, 1000000000000000> femto; 26201: typedef ratio<1, 1000000000000> pico; 26201: typedef ratio<1, 1000000000> nano; 26201: typedef ratio<1, 1000000> micro; 26201: typedef ratio<1, 1000> milli; 26201: typedef ratio<1, 100> centi; 26201: typedef ratio<1, 10> deci; 26201: typedef ratio< 10, 1> deca; 26201: typedef ratio< 100, 1> hecto; 26201: typedef ratio< 1000, 1> kilo; 26201: typedef ratio< 1000000, 1> mega; 26201: typedef ratio< 1000000000, 1> giga; 26201: typedef ratio< 1000000000000, 1> tera; 26201: typedef ratio< 1000000000000000, 1> peta; 26201: typedef ratio< 1000000000000000000, 1> exa; 26201: 26201: 26201: 26201: } 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/chrono" 2 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/ctime" 1 3 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/ctime" 3 26201: 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/ctime" 3 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_CTIME 1 26201: 26201: 26201: #undef clock 26201: #undef difftime 26201: #undef mktime 26201: #undef time 26201: #undef asctime 26201: #undef ctime 26201: #undef gmtime 26201: #undef localtime 26201: #undef strftime 26201: 26201: namespace std 26201: { 26201: using ::clock_t; 26201: using ::time_t; 26201: using ::tm; 26201: 26201: using ::clock; 26201: using ::difftime; 26201: using ::mktime; 26201: using ::time; 26201: using ::asctime; 26201: using ::ctime; 26201: using ::gmtime; 26201: using ::localtime; 26201: using ::strftime; 26201: } 26201: 26201: 26201: #undef timespec_get 26201: namespace std 26201: { 26201: using ::timespec; 26201: using ::timespec_get; 26201: } 26201: # 43 "/usr/x86_64-linux-gnu/include/c++/10/chrono" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/parse_numbers.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/parse_numbers.h" 3 26201: #define _GLIBCXX_PARSE_NUMBERS_H 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/parse_numbers.h" 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: namespace __parse_int 26201: { 26201: template 26201: struct _Digit; 26201: 26201: template 26201: struct _Digit<_Base, '0'> : integral_constant 26201: { 26201: using __valid = true_type; 26201: }; 26201: 26201: template 26201: struct _Digit<_Base, '1'> : integral_constant 26201: { 26201: using __valid = true_type; 26201: }; 26201: 26201: template 26201: struct _Digit_impl : integral_constant 26201: { 26201: static_assert(_Base > _Val, "invalid digit"); 26201: using __valid = true_type; 26201: }; 26201: 26201: template 26201: struct _Digit<_Base, '2'> : _Digit_impl<_Base, 2> 26201: { }; 26201: 26201: template 26201: struct _Digit<_Base, '3'> : _Digit_impl<_Base, 3> 26201: { }; 26201: 26201: template 26201: struct _Digit<_Base, '4'> : _Digit_impl<_Base, 4> 26201: { }; 26201: 26201: template 26201: struct _Digit<_Base, '5'> : _Digit_impl<_Base, 5> 26201: { }; 26201: 26201: template 26201: struct _Digit<_Base, '6'> : _Digit_impl<_Base, 6> 26201: { }; 26201: 26201: template 26201: struct _Digit<_Base, '7'> : _Digit_impl<_Base, 7> 26201: { }; 26201: 26201: template 26201: struct _Digit<_Base, '8'> : _Digit_impl<_Base, 8> 26201: { }; 26201: 26201: template 26201: struct _Digit<_Base, '9'> : _Digit_impl<_Base, 9> 26201: { }; 26201: 26201: template 26201: struct _Digit<_Base, 'a'> : _Digit_impl<_Base, 0xa> 26201: { }; 26201: 26201: template 26201: struct _Digit<_Base, 'A'> : _Digit_impl<_Base, 0xa> 26201: { }; 26201: 26201: template 26201: struct _Digit<_Base, 'b'> : _Digit_impl<_Base, 0xb> 26201: { }; 26201: 26201: template 26201: struct _Digit<_Base, 'B'> : _Digit_impl<_Base, 0xb> 26201: { }; 26201: 26201: template 26201: struct _Digit<_Base, 'c'> : _Digit_impl<_Base, 0xc> 26201: { }; 26201: 26201: template 26201: struct _Digit<_Base, 'C'> : _Digit_impl<_Base, 0xc> 26201: { }; 26201: 26201: template 26201: struct _Digit<_Base, 'd'> : _Digit_impl<_Base, 0xd> 26201: { }; 26201: 26201: template 26201: struct _Digit<_Base, 'D'> : _Digit_impl<_Base, 0xd> 26201: { }; 26201: 26201: template 26201: struct _Digit<_Base, 'e'> : _Digit_impl<_Base, 0xe> 26201: { }; 26201: 26201: template 26201: struct _Digit<_Base, 'E'> : _Digit_impl<_Base, 0xe> 26201: { }; 26201: 26201: template 26201: struct _Digit<_Base, 'f'> : _Digit_impl<_Base, 0xf> 26201: { }; 26201: 26201: template 26201: struct _Digit<_Base, 'F'> : _Digit_impl<_Base, 0xf> 26201: { }; 26201: 26201: 26201: template 26201: struct _Digit<_Base, '\''> : integral_constant 26201: { 26201: using __valid = false_type; 26201: }; 26201: 26201: 26201: 26201: template 26201: using __ull_constant = integral_constant; 26201: 26201: template 26201: struct _Power_help 26201: { 26201: using __next = typename _Power_help<_Base, _Digs...>::type; 26201: using __valid_digit = typename _Digit<_Base, _Dig>::__valid; 26201: using type 26201: = __ull_constant<__next::value * (__valid_digit{} ? _Base : 1ULL)>; 26201: }; 26201: 26201: template 26201: struct _Power_help<_Base, _Dig> 26201: { 26201: using __valid_digit = typename _Digit<_Base, _Dig>::__valid; 26201: using type = __ull_constant<__valid_digit::value>; 26201: }; 26201: 26201: template 26201: struct _Power : _Power_help<_Base, _Digs...>::type 26201: { }; 26201: 26201: template 26201: struct _Power<_Base> : __ull_constant<0> 26201: { }; 26201: 26201: 26201: 26201: template 26201: struct _Number_help 26201: { 26201: using __digit = _Digit<_Base, _Dig>; 26201: using __valid_digit = typename __digit::__valid; 26201: using __next = _Number_help<_Base, 26201: __valid_digit::value ? _Pow / _Base : _Pow, 26201: _Digs...>; 26201: using type = __ull_constant<_Pow * __digit::value + __next::type::value>; 26201: static_assert((type::value / _Pow) == __digit::value, 26201: "integer literal does not fit in unsigned long long"); 26201: }; 26201: 26201: 26201: template 26201: struct _Number_help<_Base, _Pow, '\'', _Dig, _Digs...> 26201: : _Number_help<_Base, _Pow, _Dig, _Digs...> 26201: { }; 26201: 26201: 26201: template 26201: struct _Number_help<_Base, 1ULL, _Dig> 26201: { 26201: using type = __ull_constant<_Digit<_Base, _Dig>::value>; 26201: }; 26201: 26201: template 26201: struct _Number 26201: : _Number_help<_Base, _Power<_Base, _Digs...>::value, _Digs...>::type 26201: { }; 26201: 26201: template 26201: struct _Number<_Base> 26201: : __ull_constant<0> 26201: { }; 26201: 26201: 26201: 26201: template 26201: struct _Parse_int; 26201: 26201: template 26201: struct _Parse_int<'0', 'b', _Digs...> 26201: : _Number<2U, _Digs...>::type 26201: { }; 26201: 26201: template 26201: struct _Parse_int<'0', 'B', _Digs...> 26201: : _Number<2U, _Digs...>::type 26201: { }; 26201: 26201: template 26201: struct _Parse_int<'0', 'x', _Digs...> 26201: : _Number<16U, _Digs...>::type 26201: { }; 26201: 26201: template 26201: struct _Parse_int<'0', 'X', _Digs...> 26201: : _Number<16U, _Digs...>::type 26201: { }; 26201: 26201: template 26201: struct _Parse_int<'0', _Digs...> 26201: : _Number<8U, _Digs...>::type 26201: { }; 26201: 26201: template 26201: struct _Parse_int 26201: : _Number<10U, _Digs...>::type 26201: { }; 26201: 26201: } 26201: 26201: 26201: namespace __select_int 26201: { 26201: template 26201: struct _Select_int_base; 26201: 26201: template 26201: struct _Select_int_base<_Val, _IntType, _Ints...> 26201: : conditional_t<(_Val <= __gnu_cxx::__int_traits<_IntType>::__max), 26201: integral_constant<_IntType, _Val>, 26201: _Select_int_base<_Val, _Ints...>> 26201: { }; 26201: 26201: template 26201: struct _Select_int_base<_Val> 26201: { }; 26201: 26201: template 26201: using _Select_int = typename _Select_int_base< 26201: __parse_int::_Parse_int<_Digs...>::value, 26201: unsigned char, 26201: unsigned short, 26201: unsigned int, 26201: unsigned long, 26201: unsigned long long 26201: >::type; 26201: 26201: } 26201: 26201: 26201: } 26201: # 44 "/usr/x86_64-linux-gnu/include/c++/10/chrono" 2 3 26201: 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: namespace filesystem { struct __file_clock; }; 26201: # 68 "/usr/x86_64-linux-gnu/include/c++/10/chrono" 3 26201: namespace chrono 26201: { 26201: template> 26201: struct duration; 26201: 26201: template 26201: struct time_point; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct __duration_common_type 26201: { }; 26201: 26201: template 26201: struct __duration_common_type<_CT, _Period1, _Period2, 26201: __void_t> 26201: { 26201: private: 26201: using __gcd_num = __static_gcd<_Period1::num, _Period2::num>; 26201: using __gcd_den = __static_gcd<_Period1::den, _Period2::den>; 26201: using __cr = typename _CT::type; 26201: using __r = ratio<__gcd_num::value, 26201: (_Period1::den / __gcd_den::value) * _Period2::den>; 26201: 26201: public: 26201: using type = chrono::duration<__cr, typename __r::type>; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct common_type, 26201: chrono::duration<_Rep2, _Period2>> 26201: : __duration_common_type, 26201: typename _Period1::type, 26201: typename _Period2::type> 26201: { }; 26201: 26201: 26201: 26201: template 26201: struct common_type, 26201: chrono::duration<_Rep, _Period>> 26201: { 26201: using type = chrono::duration::type, 26201: typename _Period::type>; 26201: }; 26201: 26201: 26201: 26201: template 26201: struct common_type> 26201: { 26201: using type = chrono::duration::type, 26201: typename _Period::type>; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct __timepoint_common_type 26201: { }; 26201: 26201: template 26201: struct __timepoint_common_type<_CT, _Clock, __void_t> 26201: { 26201: using type = chrono::time_point<_Clock, typename _CT::type>; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct common_type, 26201: chrono::time_point<_Clock, _Duration2>> 26201: : __timepoint_common_type, _Clock> 26201: { }; 26201: 26201: 26201: 26201: template 26201: struct common_type, 26201: chrono::time_point<_Clock, _Duration>> 26201: { using type = chrono::time_point<_Clock, _Duration>; }; 26201: 26201: 26201: 26201: template 26201: struct common_type> 26201: { using type = chrono::time_point<_Clock, _Duration>; }; 26201: 26201: 26201: 26201: namespace chrono 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct __duration_cast_impl 26201: { 26201: template 26201: static constexpr _ToDur 26201: __cast(const duration<_Rep, _Period>& __d) 26201: { 26201: typedef typename _ToDur::rep __to_rep; 26201: return _ToDur(static_cast<__to_rep>(static_cast<_CR>(__d.count()) 26201: * static_cast<_CR>(_CF::num) 26201: / static_cast<_CR>(_CF::den))); 26201: } 26201: }; 26201: 26201: template 26201: struct __duration_cast_impl<_ToDur, _CF, _CR, true, true> 26201: { 26201: template 26201: static constexpr _ToDur 26201: __cast(const duration<_Rep, _Period>& __d) 26201: { 26201: typedef typename _ToDur::rep __to_rep; 26201: return _ToDur(static_cast<__to_rep>(__d.count())); 26201: } 26201: }; 26201: 26201: template 26201: struct __duration_cast_impl<_ToDur, _CF, _CR, true, false> 26201: { 26201: template 26201: static constexpr _ToDur 26201: __cast(const duration<_Rep, _Period>& __d) 26201: { 26201: typedef typename _ToDur::rep __to_rep; 26201: return _ToDur(static_cast<__to_rep>( 26201: static_cast<_CR>(__d.count()) / static_cast<_CR>(_CF::den))); 26201: } 26201: }; 26201: 26201: template 26201: struct __duration_cast_impl<_ToDur, _CF, _CR, false, true> 26201: { 26201: template 26201: static constexpr _ToDur 26201: __cast(const duration<_Rep, _Period>& __d) 26201: { 26201: typedef typename _ToDur::rep __to_rep; 26201: return _ToDur(static_cast<__to_rep>( 26201: static_cast<_CR>(__d.count()) * static_cast<_CR>(_CF::num))); 26201: } 26201: }; 26201: 26201: template 26201: struct __is_duration 26201: : std::false_type 26201: { }; 26201: 26201: template 26201: struct __is_duration> 26201: : std::true_type 26201: { }; 26201: 26201: template 26201: using __enable_if_is_duration 26201: = typename enable_if<__is_duration<_Tp>::value, _Tp>::type; 26201: 26201: template 26201: using __disable_if_is_duration 26201: = typename enable_if::value, _Tp>::type; 26201: 26201: 26201: 26201: 26201: template 26201: constexpr __enable_if_is_duration<_ToDur> 26201: duration_cast(const duration<_Rep, _Period>& __d) 26201: { 26201: typedef typename _ToDur::period __to_period; 26201: typedef typename _ToDur::rep __to_rep; 26201: typedef ratio_divide<_Period, __to_period> __cf; 26201: typedef typename common_type<__to_rep, _Rep, intmax_t>::type 26201: __cr; 26201: typedef __duration_cast_impl<_ToDur, __cf, __cr, 26201: __cf::num == 1, __cf::den == 1> __dc; 26201: return __dc::__cast(__d); 26201: } 26201: 26201: 26201: template 26201: struct treat_as_floating_point 26201: : is_floating_point<_Rep> 26201: { }; 26201: 26201: 26201: template 26201: inline constexpr bool treat_as_floating_point_v = 26201: treat_as_floating_point<_Rep>::value; 26201: # 333 "/usr/x86_64-linux-gnu/include/c++/10/chrono" 3 26201: #define __cpp_lib_chrono 201611 26201: 26201: template 26201: constexpr __enable_if_is_duration<_ToDur> 26201: floor(const duration<_Rep, _Period>& __d) 26201: { 26201: auto __to = chrono::duration_cast<_ToDur>(__d); 26201: if (__to > __d) 26201: return __to - _ToDur{1}; 26201: return __to; 26201: } 26201: 26201: template 26201: constexpr __enable_if_is_duration<_ToDur> 26201: ceil(const duration<_Rep, _Period>& __d) 26201: { 26201: auto __to = chrono::duration_cast<_ToDur>(__d); 26201: if (__to < __d) 26201: return __to + _ToDur{1}; 26201: return __to; 26201: } 26201: 26201: template 26201: constexpr enable_if_t< 26201: __and_<__is_duration<_ToDur>, 26201: __not_>>::value, 26201: _ToDur> 26201: round(const duration<_Rep, _Period>& __d) 26201: { 26201: _ToDur __t0 = chrono::floor<_ToDur>(__d); 26201: _ToDur __t1 = __t0 + _ToDur{1}; 26201: auto __diff0 = __d - __t0; 26201: auto __diff1 = __t1 - __d; 26201: if (__diff0 == __diff1) 26201: { 26201: if (__t0.count() & 1) 26201: return __t1; 26201: return __t0; 26201: } 26201: else if (__diff0 < __diff1) 26201: return __t0; 26201: return __t1; 26201: } 26201: 26201: template 26201: constexpr 26201: enable_if_t::is_signed, duration<_Rep, _Period>> 26201: abs(duration<_Rep, _Period> __d) 26201: { 26201: if (__d >= __d.zero()) 26201: return __d; 26201: return -__d; 26201: } 26201: 26201: 26201: 26201: template 26201: struct duration_values 26201: { 26201: static constexpr _Rep 26201: zero() noexcept 26201: { return _Rep(0); } 26201: 26201: static constexpr _Rep 26201: max() noexcept 26201: { return numeric_limits<_Rep>::max(); } 26201: 26201: static constexpr _Rep 26201: min() noexcept 26201: { return numeric_limits<_Rep>::lowest(); } 26201: }; 26201: 26201: 26201: 26201: template 26201: struct __is_ratio 26201: : std::false_type 26201: { }; 26201: 26201: template 26201: struct __is_ratio> 26201: : std::true_type 26201: { }; 26201: 26201: 26201: 26201: 26201: template 26201: struct duration 26201: { 26201: private: 26201: template 26201: using __is_float = treat_as_floating_point<_Rep2>; 26201: 26201: static constexpr intmax_t 26201: _S_gcd(intmax_t __m, intmax_t __n) noexcept 26201: { 26201: 26201: 26201: return (__m == 0) ? __n : (__n == 0) ? __m : _S_gcd(__n, __m % __n); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: using __divide = ratio<(_R1::num / __gcd1) * (_R2::den / __gcd2), 26201: (_R1::den / __gcd2) * (_R2::num / __gcd1)>; 26201: 26201: 26201: template 26201: using __is_harmonic 26201: = __bool_constant<__divide<_Period2, _Period>::den == 1>; 26201: 26201: public: 26201: 26201: using rep = _Rep; 26201: using period = typename _Period::type; 26201: 26201: static_assert(!__is_duration<_Rep>::value, "rep cannot be a duration"); 26201: static_assert(__is_ratio<_Period>::value, 26201: "period must be a specialization of ratio"); 26201: static_assert(_Period::num > 0, "period must be positive"); 26201: 26201: 26201: constexpr duration() = default; 26201: 26201: duration(const duration&) = default; 26201: 26201: 26201: 26201: template, 26201: __or_<__is_float, __not_<__is_float<_Rep2>>>>> 26201: constexpr explicit duration(const _Rep2& __rep) 26201: : __r(static_cast(__rep)) { } 26201: 26201: template, 26201: __or_<__is_float, 26201: __and_<__is_harmonic<_Period2>, 26201: __not_<__is_float<_Rep2>>>>>> 26201: constexpr duration(const duration<_Rep2, _Period2>& __d) 26201: : __r(duration_cast(__d).count()) { } 26201: 26201: ~duration() = default; 26201: duration& operator=(const duration&) = default; 26201: 26201: 26201: constexpr rep 26201: count() const 26201: { return __r; } 26201: 26201: 26201: 26201: constexpr duration::type, period> 26201: operator+() const 26201: { return duration::type, period>(__r); } 26201: 26201: constexpr duration::type, period> 26201: operator-() const 26201: { return duration::type, period>(-__r); } 26201: 26201: constexpr duration& 26201: operator++() 26201: { 26201: ++__r; 26201: return *this; 26201: } 26201: 26201: constexpr duration 26201: operator++(int) 26201: { return duration(__r++); } 26201: 26201: constexpr duration& 26201: operator--() 26201: { 26201: --__r; 26201: return *this; 26201: } 26201: 26201: constexpr duration 26201: operator--(int) 26201: { return duration(__r--); } 26201: 26201: constexpr duration& 26201: operator+=(const duration& __d) 26201: { 26201: __r += __d.count(); 26201: return *this; 26201: } 26201: 26201: constexpr duration& 26201: operator-=(const duration& __d) 26201: { 26201: __r -= __d.count(); 26201: return *this; 26201: } 26201: 26201: constexpr duration& 26201: operator*=(const rep& __rhs) 26201: { 26201: __r *= __rhs; 26201: return *this; 26201: } 26201: 26201: constexpr duration& 26201: operator/=(const rep& __rhs) 26201: { 26201: __r /= __rhs; 26201: return *this; 26201: } 26201: 26201: 26201: template 26201: constexpr 26201: typename enable_if::value, 26201: duration&>::type 26201: operator%=(const rep& __rhs) 26201: { 26201: __r %= __rhs; 26201: return *this; 26201: } 26201: 26201: template 26201: constexpr 26201: typename enable_if::value, 26201: duration&>::type 26201: operator%=(const duration& __d) 26201: { 26201: __r %= __d.count(); 26201: return *this; 26201: } 26201: 26201: 26201: static constexpr duration 26201: zero() noexcept 26201: { return duration(duration_values::zero()); } 26201: 26201: static constexpr duration 26201: min() noexcept 26201: { return duration(duration_values::min()); } 26201: 26201: static constexpr duration 26201: max() noexcept 26201: { return duration(duration_values::max()); } 26201: 26201: private: 26201: rep __r; 26201: }; 26201: 26201: 26201: 26201: 26201: template 26201: constexpr typename common_type, 26201: duration<_Rep2, _Period2>>::type 26201: operator+(const duration<_Rep1, _Period1>& __lhs, 26201: const duration<_Rep2, _Period2>& __rhs) 26201: { 26201: typedef duration<_Rep1, _Period1> __dur1; 26201: typedef duration<_Rep2, _Period2> __dur2; 26201: typedef typename common_type<__dur1,__dur2>::type __cd; 26201: return __cd(__cd(__lhs).count() + __cd(__rhs).count()); 26201: } 26201: 26201: 26201: template 26201: constexpr typename common_type, 26201: duration<_Rep2, _Period2>>::type 26201: operator-(const duration<_Rep1, _Period1>& __lhs, 26201: const duration<_Rep2, _Period2>& __rhs) 26201: { 26201: typedef duration<_Rep1, _Period1> __dur1; 26201: typedef duration<_Rep2, _Period2> __dur2; 26201: typedef typename common_type<__dur1,__dur2>::type __cd; 26201: return __cd(__cd(__lhs).count() - __cd(__rhs).count()); 26201: } 26201: # 625 "/usr/x86_64-linux-gnu/include/c++/10/chrono" 3 26201: template::type> 26201: using __common_rep_t = typename 26201: enable_if::value, _CRep>::type; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: constexpr duration<__common_rep_t<_Rep1, _Rep2>, _Period> 26201: operator*(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 26201: { 26201: typedef duration::type, _Period> 26201: __cd; 26201: return __cd(__cd(__d).count() * __s); 26201: } 26201: 26201: 26201: template 26201: constexpr duration<__common_rep_t<_Rep2, _Rep1>, _Period> 26201: operator*(const _Rep1& __s, const duration<_Rep2, _Period>& __d) 26201: { return __d * __s; } 26201: 26201: template 26201: constexpr 26201: duration<__common_rep_t<_Rep1, __disable_if_is_duration<_Rep2>>, _Period> 26201: operator/(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 26201: { 26201: typedef duration::type, _Period> 26201: __cd; 26201: return __cd(__cd(__d).count() / __s); 26201: } 26201: 26201: template 26201: constexpr typename common_type<_Rep1, _Rep2>::type 26201: operator/(const duration<_Rep1, _Period1>& __lhs, 26201: const duration<_Rep2, _Period2>& __rhs) 26201: { 26201: typedef duration<_Rep1, _Period1> __dur1; 26201: typedef duration<_Rep2, _Period2> __dur2; 26201: typedef typename common_type<__dur1,__dur2>::type __cd; 26201: return __cd(__lhs).count() / __cd(__rhs).count(); 26201: } 26201: 26201: 26201: template 26201: constexpr 26201: duration<__common_rep_t<_Rep1, __disable_if_is_duration<_Rep2>>, _Period> 26201: operator%(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 26201: { 26201: typedef duration::type, _Period> 26201: __cd; 26201: return __cd(__cd(__d).count() % __s); 26201: } 26201: 26201: template 26201: constexpr typename common_type, 26201: duration<_Rep2, _Period2>>::type 26201: operator%(const duration<_Rep1, _Period1>& __lhs, 26201: const duration<_Rep2, _Period2>& __rhs) 26201: { 26201: typedef duration<_Rep1, _Period1> __dur1; 26201: typedef duration<_Rep2, _Period2> __dur2; 26201: typedef typename common_type<__dur1,__dur2>::type __cd; 26201: return __cd(__cd(__lhs).count() % __cd(__rhs).count()); 26201: } 26201: 26201: 26201: 26201: template 26201: constexpr bool 26201: operator==(const duration<_Rep1, _Period1>& __lhs, 26201: const duration<_Rep2, _Period2>& __rhs) 26201: { 26201: typedef duration<_Rep1, _Period1> __dur1; 26201: typedef duration<_Rep2, _Period2> __dur2; 26201: typedef typename common_type<__dur1,__dur2>::type __ct; 26201: return __ct(__lhs).count() == __ct(__rhs).count(); 26201: } 26201: 26201: template 26201: constexpr bool 26201: operator<(const duration<_Rep1, _Period1>& __lhs, 26201: const duration<_Rep2, _Period2>& __rhs) 26201: { 26201: typedef duration<_Rep1, _Period1> __dur1; 26201: typedef duration<_Rep2, _Period2> __dur2; 26201: typedef typename common_type<__dur1,__dur2>::type __ct; 26201: return __ct(__lhs).count() < __ct(__rhs).count(); 26201: } 26201: # 735 "/usr/x86_64-linux-gnu/include/c++/10/chrono" 3 26201: template 26201: constexpr bool 26201: operator!=(const duration<_Rep1, _Period1>& __lhs, 26201: const duration<_Rep2, _Period2>& __rhs) 26201: { return !(__lhs == __rhs); } 26201: 26201: 26201: template 26201: constexpr bool 26201: operator<=(const duration<_Rep1, _Period1>& __lhs, 26201: const duration<_Rep2, _Period2>& __rhs) 26201: { return !(__rhs < __lhs); } 26201: 26201: template 26201: constexpr bool 26201: operator>(const duration<_Rep1, _Period1>& __lhs, 26201: const duration<_Rep2, _Period2>& __rhs) 26201: { return __rhs < __lhs; } 26201: 26201: template 26201: constexpr bool 26201: operator>=(const duration<_Rep1, _Period1>& __lhs, 26201: const duration<_Rep2, _Period2>& __rhs) 26201: { return !(__lhs < __rhs); } 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_CHRONO_INT64_T int64_t 26201: # 777 "/usr/x86_64-linux-gnu/include/c++/10/chrono" 3 26201: using nanoseconds = duration; 26201: 26201: 26201: using microseconds = duration; 26201: 26201: 26201: using milliseconds = duration; 26201: 26201: 26201: using seconds = duration; 26201: 26201: 26201: using minutes = duration>; 26201: 26201: 26201: using hours = duration>; 26201: # 808 "/usr/x86_64-linux-gnu/include/c++/10/chrono" 3 26201: #undef _GLIBCXX_CHRONO_INT64_T 26201: 26201: 26201: template 26201: struct time_point 26201: { 26201: static_assert(__is_duration<_Dur>::value, 26201: "duration must be a specialization of std::chrono::duration"); 26201: 26201: typedef _Clock clock; 26201: typedef _Dur duration; 26201: typedef typename duration::rep rep; 26201: typedef typename duration::period period; 26201: 26201: constexpr time_point() : __d(duration::zero()) 26201: { } 26201: 26201: constexpr explicit time_point(const duration& __dur) 26201: : __d(__dur) 26201: { } 26201: 26201: 26201: template>> 26201: constexpr time_point(const time_point& __t) 26201: : __d(__t.time_since_epoch()) 26201: { } 26201: 26201: 26201: constexpr duration 26201: time_since_epoch() const 26201: { return __d; } 26201: 26201: 26201: constexpr time_point& 26201: operator+=(const duration& __dur) 26201: { 26201: __d += __dur; 26201: return *this; 26201: } 26201: 26201: constexpr time_point& 26201: operator-=(const duration& __dur) 26201: { 26201: __d -= __dur; 26201: return *this; 26201: } 26201: 26201: 26201: static constexpr time_point 26201: min() noexcept 26201: { return time_point(duration::min()); } 26201: 26201: static constexpr time_point 26201: max() noexcept 26201: { return time_point(duration::max()); } 26201: 26201: private: 26201: duration __d; 26201: }; 26201: 26201: 26201: template 26201: constexpr typename enable_if<__is_duration<_ToDur>::value, 26201: time_point<_Clock, _ToDur>>::type 26201: time_point_cast(const time_point<_Clock, _Dur>& __t) 26201: { 26201: typedef time_point<_Clock, _ToDur> __time_point; 26201: return __time_point(duration_cast<_ToDur>(__t.time_since_epoch())); 26201: } 26201: 26201: 26201: template 26201: constexpr 26201: enable_if_t<__is_duration<_ToDur>::value, time_point<_Clock, _ToDur>> 26201: floor(const time_point<_Clock, _Dur>& __tp) 26201: { 26201: return time_point<_Clock, _ToDur>{ 26201: chrono::floor<_ToDur>(__tp.time_since_epoch())}; 26201: } 26201: 26201: template 26201: constexpr 26201: enable_if_t<__is_duration<_ToDur>::value, time_point<_Clock, _ToDur>> 26201: ceil(const time_point<_Clock, _Dur>& __tp) 26201: { 26201: return time_point<_Clock, _ToDur>{ 26201: chrono::ceil<_ToDur>(__tp.time_since_epoch())}; 26201: } 26201: 26201: template 26201: constexpr enable_if_t< 26201: __and_<__is_duration<_ToDur>, 26201: __not_>>::value, 26201: time_point<_Clock, _ToDur>> 26201: round(const time_point<_Clock, _Dur>& __tp) 26201: { 26201: return time_point<_Clock, _ToDur>{ 26201: chrono::round<_ToDur>(__tp.time_since_epoch())}; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: constexpr time_point<_Clock, 26201: typename common_type<_Dur1, duration<_Rep2, _Period2>>::type> 26201: operator+(const time_point<_Clock, _Dur1>& __lhs, 26201: const duration<_Rep2, _Period2>& __rhs) 26201: { 26201: typedef duration<_Rep2, _Period2> __dur2; 26201: typedef typename common_type<_Dur1,__dur2>::type __ct; 26201: typedef time_point<_Clock, __ct> __time_point; 26201: return __time_point(__lhs.time_since_epoch() + __rhs); 26201: } 26201: 26201: 26201: template 26201: constexpr time_point<_Clock, 26201: typename common_type, _Dur2>::type> 26201: operator+(const duration<_Rep1, _Period1>& __lhs, 26201: const time_point<_Clock, _Dur2>& __rhs) 26201: { 26201: typedef duration<_Rep1, _Period1> __dur1; 26201: typedef typename common_type<__dur1,_Dur2>::type __ct; 26201: typedef time_point<_Clock, __ct> __time_point; 26201: return __time_point(__rhs.time_since_epoch() + __lhs); 26201: } 26201: 26201: 26201: template 26201: constexpr time_point<_Clock, 26201: typename common_type<_Dur1, duration<_Rep2, _Period2>>::type> 26201: operator-(const time_point<_Clock, _Dur1>& __lhs, 26201: const duration<_Rep2, _Period2>& __rhs) 26201: { 26201: typedef duration<_Rep2, _Period2> __dur2; 26201: typedef typename common_type<_Dur1,__dur2>::type __ct; 26201: typedef time_point<_Clock, __ct> __time_point; 26201: return __time_point(__lhs.time_since_epoch() -__rhs); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: constexpr typename common_type<_Dur1, _Dur2>::type 26201: operator-(const time_point<_Clock, _Dur1>& __lhs, 26201: const time_point<_Clock, _Dur2>& __rhs) 26201: { return __lhs.time_since_epoch() - __rhs.time_since_epoch(); } 26201: 26201: template 26201: constexpr bool 26201: operator==(const time_point<_Clock, _Dur1>& __lhs, 26201: const time_point<_Clock, _Dur2>& __rhs) 26201: { return __lhs.time_since_epoch() == __rhs.time_since_epoch(); } 26201: # 979 "/usr/x86_64-linux-gnu/include/c++/10/chrono" 3 26201: template 26201: constexpr bool 26201: operator!=(const time_point<_Clock, _Dur1>& __lhs, 26201: const time_point<_Clock, _Dur2>& __rhs) 26201: { return !(__lhs == __rhs); } 26201: 26201: 26201: template 26201: constexpr bool 26201: operator<(const time_point<_Clock, _Dur1>& __lhs, 26201: const time_point<_Clock, _Dur2>& __rhs) 26201: { return __lhs.time_since_epoch() < __rhs.time_since_epoch(); } 26201: 26201: template 26201: constexpr bool 26201: operator<=(const time_point<_Clock, _Dur1>& __lhs, 26201: const time_point<_Clock, _Dur2>& __rhs) 26201: { return !(__rhs < __lhs); } 26201: 26201: template 26201: constexpr bool 26201: operator>(const time_point<_Clock, _Dur1>& __lhs, 26201: const time_point<_Clock, _Dur2>& __rhs) 26201: { return __rhs < __lhs; } 26201: 26201: template 26201: constexpr bool 26201: operator>=(const time_point<_Clock, _Dur1>& __lhs, 26201: const time_point<_Clock, _Dur2>& __rhs) 26201: { return !(__lhs < __rhs); } 26201: # 1030 "/usr/x86_64-linux-gnu/include/c++/10/chrono" 3 26201: inline namespace _V2 { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: struct system_clock 26201: { 26201: typedef chrono::nanoseconds duration; 26201: typedef duration::rep rep; 26201: typedef duration::period period; 26201: typedef chrono::time_point time_point; 26201: 26201: static_assert(system_clock::duration::min() 26201: < system_clock::duration::zero(), 26201: "a clock's minimum duration cannot be less than its epoch"); 26201: 26201: static constexpr bool is_steady = false; 26201: 26201: static time_point 26201: now() noexcept; 26201: 26201: 26201: static std::time_t 26201: to_time_t(const time_point& __t) noexcept 26201: { 26201: return std::time_t(duration_cast 26201: (__t.time_since_epoch()).count()); 26201: } 26201: 26201: static time_point 26201: from_time_t(std::time_t __t) noexcept 26201: { 26201: typedef chrono::time_point __from; 26201: return time_point_cast 26201: (__from(chrono::seconds(__t))); 26201: } 26201: }; 26201: # 1078 "/usr/x86_64-linux-gnu/include/c++/10/chrono" 3 26201: struct steady_clock 26201: { 26201: typedef chrono::nanoseconds duration; 26201: typedef duration::rep rep; 26201: typedef duration::period period; 26201: typedef chrono::time_point time_point; 26201: 26201: static constexpr bool is_steady = true; 26201: 26201: static time_point 26201: now() noexcept; 26201: }; 26201: # 1100 "/usr/x86_64-linux-gnu/include/c++/10/chrono" 3 26201: using high_resolution_clock = system_clock; 26201: 26201: } 26201: # 1131 "/usr/x86_64-linux-gnu/include/c++/10/chrono" 3 26201: } 26201: 26201: 26201: 26201: #define __cpp_lib_chrono_udls 201304 26201: 26201: inline namespace literals 26201: { 26201: # 1162 "/usr/x86_64-linux-gnu/include/c++/10/chrono" 3 26201: inline namespace chrono_literals 26201: { 26201: #pragma GCC diagnostic push 26201: #pragma GCC diagnostic ignored "-Wliteral-suffix" 26201: 26201: template 26201: constexpr _Dur __check_overflow() 26201: { 26201: using _Val = __parse_int::_Parse_int<_Digits...>; 26201: constexpr typename _Dur::rep __repval = _Val::value; 26201: static_assert(__repval >= 0 && __repval == _Val::value, 26201: "literal value cannot be represented by duration type"); 26201: return _Dur(__repval); 26201: } 26201: 26201: 26201: 26201: constexpr chrono::duration> 26201: operator""h(long double __hours) 26201: { return chrono::duration>{__hours}; } 26201: 26201: 26201: template 26201: constexpr chrono::hours 26201: operator""h() 26201: { return __check_overflow(); } 26201: 26201: 26201: constexpr chrono::duration> 26201: operator""min(long double __mins) 26201: { return chrono::duration>{__mins}; } 26201: 26201: 26201: template 26201: constexpr chrono::minutes 26201: operator""min() 26201: { return __check_overflow(); } 26201: 26201: 26201: constexpr chrono::duration 26201: operator""s(long double __secs) 26201: { return chrono::duration{__secs}; } 26201: 26201: 26201: template 26201: constexpr chrono::seconds 26201: operator""s() 26201: { return __check_overflow(); } 26201: 26201: 26201: constexpr chrono::duration 26201: operator""ms(long double __msecs) 26201: { return chrono::duration{__msecs}; } 26201: 26201: 26201: template 26201: constexpr chrono::milliseconds 26201: operator""ms() 26201: { return __check_overflow(); } 26201: 26201: 26201: constexpr chrono::duration 26201: operator""us(long double __usecs) 26201: { return chrono::duration{__usecs}; } 26201: 26201: 26201: template 26201: constexpr chrono::microseconds 26201: operator""us() 26201: { return __check_overflow(); } 26201: 26201: 26201: constexpr chrono::duration 26201: operator""ns(long double __nsecs) 26201: { return chrono::duration{__nsecs}; } 26201: 26201: 26201: template 26201: constexpr chrono::nanoseconds 26201: operator""ns() 26201: { return __check_overflow(); } 26201: 26201: #pragma GCC diagnostic pop 26201: } 26201: } 26201: 26201: namespace chrono 26201: { 26201: using namespace literals::chrono_literals; 26201: } 26201: 26201: 26201: namespace filesystem 26201: { 26201: struct __file_clock 26201: { 26201: using duration = chrono::nanoseconds; 26201: using rep = duration::rep; 26201: using period = duration::period; 26201: using time_point = chrono::time_point<__file_clock>; 26201: static constexpr bool is_steady = false; 26201: 26201: static time_point 26201: now() noexcept 26201: { return _S_from_sys(chrono::system_clock::now()); } 26201: # 1283 "/usr/x86_64-linux-gnu/include/c++/10/chrono" 3 26201: private: 26201: using __sys_clock = chrono::system_clock; 26201: 26201: 26201: 26201: 26201: static constexpr chrono::seconds _S_epoch_diff{6437664000}; 26201: 26201: protected: 26201: 26201: template 26201: static 26201: chrono::time_point<__file_clock, _Dur> 26201: _S_from_sys(const chrono::time_point<__sys_clock, _Dur>& __t) noexcept 26201: { 26201: using __file_time = chrono::time_point<__file_clock, _Dur>; 26201: return __file_time{__t.time_since_epoch()} - _S_epoch_diff; 26201: } 26201: 26201: 26201: template 26201: static 26201: chrono::time_point<__sys_clock, _Dur> 26201: _S_to_sys(const chrono::time_point<__file_clock, _Dur>& __t) noexcept 26201: { 26201: using __sys_time = chrono::time_point<__sys_clock, _Dur>; 26201: return __sys_time{__t.time_since_epoch()} + _S_epoch_diff; 26201: } 26201: }; 26201: } 26201: 26201: 26201: 26201: 26201: } 26201: # 38 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_fwd.h" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: namespace filesystem 26201: { 26201: 26201: inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } 26201: 26201: 26201: 26201: class file_status; 26201: namespace __cxx11 { 26201: class path; 26201: class filesystem_error; 26201: class directory_entry; 26201: class directory_iterator; 26201: class recursive_directory_iterator; 26201: } 26201: 26201: struct space_info 26201: { 26201: uintmax_t capacity; 26201: uintmax_t free; 26201: uintmax_t available; 26201: 26201: 26201: 26201: 26201: }; 26201: 26201: enum class file_type : signed char { 26201: none = 0, not_found = -1, regular = 1, directory = 2, symlink = 3, 26201: block = 4, character = 5, fifo = 6, socket = 7, unknown = 8 26201: }; 26201: 26201: 26201: enum class copy_options : unsigned short { 26201: none = 0, 26201: skip_existing = 1, overwrite_existing = 2, update_existing = 4, 26201: recursive = 8, 26201: copy_symlinks = 16, skip_symlinks = 32, 26201: directories_only = 64, create_symlinks = 128, create_hard_links = 256 26201: }; 26201: 26201: constexpr copy_options 26201: operator&(copy_options __x, copy_options __y) noexcept 26201: { 26201: using __utype = typename std::underlying_type::type; 26201: return static_cast( 26201: static_cast<__utype>(__x) & static_cast<__utype>(__y)); 26201: } 26201: 26201: constexpr copy_options 26201: operator|(copy_options __x, copy_options __y) noexcept 26201: { 26201: using __utype = typename std::underlying_type::type; 26201: return static_cast( 26201: static_cast<__utype>(__x) | static_cast<__utype>(__y)); 26201: } 26201: 26201: constexpr copy_options 26201: operator^(copy_options __x, copy_options __y) noexcept 26201: { 26201: using __utype = typename std::underlying_type::type; 26201: return static_cast( 26201: static_cast<__utype>(__x) ^ static_cast<__utype>(__y)); 26201: } 26201: 26201: constexpr copy_options 26201: operator~(copy_options __x) noexcept 26201: { 26201: using __utype = typename std::underlying_type::type; 26201: return static_cast(~static_cast<__utype>(__x)); 26201: } 26201: 26201: inline copy_options& 26201: operator&=(copy_options& __x, copy_options __y) noexcept 26201: { return __x = __x & __y; } 26201: 26201: inline copy_options& 26201: operator|=(copy_options& __x, copy_options __y) noexcept 26201: { return __x = __x | __y; } 26201: 26201: inline copy_options& 26201: operator^=(copy_options& __x, copy_options __y) noexcept 26201: { return __x = __x ^ __y; } 26201: 26201: 26201: 26201: enum class perms : unsigned { 26201: none = 0, 26201: owner_read = 0400, 26201: owner_write = 0200, 26201: owner_exec = 0100, 26201: owner_all = 0700, 26201: group_read = 040, 26201: group_write = 020, 26201: group_exec = 010, 26201: group_all = 070, 26201: others_read = 04, 26201: others_write = 02, 26201: others_exec = 01, 26201: others_all = 07, 26201: all = 0777, 26201: set_uid = 04000, 26201: set_gid = 02000, 26201: sticky_bit = 01000, 26201: mask = 07777, 26201: unknown = 0xFFFF, 26201: }; 26201: 26201: constexpr perms 26201: operator&(perms __x, perms __y) noexcept 26201: { 26201: using __utype = typename std::underlying_type::type; 26201: return static_cast( 26201: static_cast<__utype>(__x) & static_cast<__utype>(__y)); 26201: } 26201: 26201: constexpr perms 26201: operator|(perms __x, perms __y) noexcept 26201: { 26201: using __utype = typename std::underlying_type::type; 26201: return static_cast( 26201: static_cast<__utype>(__x) | static_cast<__utype>(__y)); 26201: } 26201: 26201: constexpr perms 26201: operator^(perms __x, perms __y) noexcept 26201: { 26201: using __utype = typename std::underlying_type::type; 26201: return static_cast( 26201: static_cast<__utype>(__x) ^ static_cast<__utype>(__y)); 26201: } 26201: 26201: constexpr perms 26201: operator~(perms __x) noexcept 26201: { 26201: using __utype = typename std::underlying_type::type; 26201: return static_cast(~static_cast<__utype>(__x)); 26201: } 26201: 26201: inline perms& 26201: operator&=(perms& __x, perms __y) noexcept 26201: { return __x = __x & __y; } 26201: 26201: inline perms& 26201: operator|=(perms& __x, perms __y) noexcept 26201: { return __x = __x | __y; } 26201: 26201: inline perms& 26201: operator^=(perms& __x, perms __y) noexcept 26201: { return __x = __x ^ __y; } 26201: 26201: 26201: enum class perm_options : unsigned { 26201: replace = 0x1, 26201: add = 0x2, 26201: remove = 0x4, 26201: nofollow = 0x8 26201: }; 26201: 26201: constexpr perm_options 26201: operator&(perm_options __x, perm_options __y) noexcept 26201: { 26201: using __utype = typename std::underlying_type::type; 26201: return static_cast( 26201: static_cast<__utype>(__x) & static_cast<__utype>(__y)); 26201: } 26201: 26201: constexpr perm_options 26201: operator|(perm_options __x, perm_options __y) noexcept 26201: { 26201: using __utype = typename std::underlying_type::type; 26201: return static_cast( 26201: static_cast<__utype>(__x) | static_cast<__utype>(__y)); 26201: } 26201: 26201: constexpr perm_options 26201: operator^(perm_options __x, perm_options __y) noexcept 26201: { 26201: using __utype = typename std::underlying_type::type; 26201: return static_cast( 26201: static_cast<__utype>(__x) ^ static_cast<__utype>(__y)); 26201: } 26201: 26201: constexpr perm_options 26201: operator~(perm_options __x) noexcept 26201: { 26201: using __utype = typename std::underlying_type::type; 26201: return static_cast(~static_cast<__utype>(__x)); 26201: } 26201: 26201: inline perm_options& 26201: operator&=(perm_options& __x, perm_options __y) noexcept 26201: { return __x = __x & __y; } 26201: 26201: inline perm_options& 26201: operator|=(perm_options& __x, perm_options __y) noexcept 26201: { return __x = __x | __y; } 26201: 26201: inline perm_options& 26201: operator^=(perm_options& __x, perm_options __y) noexcept 26201: { return __x = __x ^ __y; } 26201: 26201: 26201: enum class directory_options : unsigned char { 26201: none = 0, follow_directory_symlink = 1, skip_permission_denied = 2 26201: }; 26201: 26201: constexpr directory_options 26201: operator&(directory_options __x, directory_options __y) noexcept 26201: { 26201: using __utype = typename std::underlying_type::type; 26201: return static_cast( 26201: static_cast<__utype>(__x) & static_cast<__utype>(__y)); 26201: } 26201: 26201: constexpr directory_options 26201: operator|(directory_options __x, directory_options __y) noexcept 26201: { 26201: using __utype = typename std::underlying_type::type; 26201: return static_cast( 26201: static_cast<__utype>(__x) | static_cast<__utype>(__y)); 26201: } 26201: 26201: constexpr directory_options 26201: operator^(directory_options __x, directory_options __y) noexcept 26201: { 26201: using __utype = typename std::underlying_type::type; 26201: return static_cast( 26201: static_cast<__utype>(__x) ^ static_cast<__utype>(__y)); 26201: } 26201: 26201: constexpr directory_options 26201: operator~(directory_options __x) noexcept 26201: { 26201: using __utype = typename std::underlying_type::type; 26201: return static_cast(~static_cast<__utype>(__x)); 26201: } 26201: 26201: inline directory_options& 26201: operator&=(directory_options& __x, directory_options __y) noexcept 26201: { return __x = __x & __y; } 26201: 26201: inline directory_options& 26201: operator|=(directory_options& __x, directory_options __y) noexcept 26201: { return __x = __x | __y; } 26201: 26201: inline directory_options& 26201: operator^=(directory_options& __x, directory_options __y) noexcept 26201: { return __x = __x ^ __y; } 26201: 26201: using file_time_type = __file_clock::time_point; 26201: 26201: 26201: 26201: void copy(const path& __from, const path& __to, copy_options __options); 26201: void copy(const path& __from, const path& __to, copy_options __options, 26201: error_code&); 26201: 26201: bool copy_file(const path& __from, const path& __to, copy_options __option); 26201: bool copy_file(const path& __from, const path& __to, copy_options __option, 26201: error_code&); 26201: 26201: path current_path(); 26201: 26201: bool exists(file_status) noexcept; 26201: 26201: bool is_other(file_status) noexcept; 26201: 26201: uintmax_t file_size(const path&); 26201: uintmax_t file_size(const path&, error_code&) noexcept; 26201: uintmax_t hard_link_count(const path&); 26201: uintmax_t hard_link_count(const path&, error_code&) noexcept; 26201: file_time_type last_write_time(const path&); 26201: file_time_type last_write_time(const path&, error_code&) noexcept; 26201: 26201: void permissions(const path&, perms, perm_options, error_code&) noexcept; 26201: 26201: path proximate(const path& __p, const path& __base, error_code& __ec); 26201: path proximate(const path& __p, const path& __base, error_code& __ec); 26201: 26201: path relative(const path& __p, const path& __base, error_code& __ec); 26201: 26201: file_status status(const path&); 26201: file_status status(const path&, error_code&) noexcept; 26201: 26201: bool status_known(file_status) noexcept; 26201: 26201: file_status symlink_status(const path&); 26201: file_status symlink_status(const path&, error_code&) noexcept; 26201: 26201: bool is_regular_file(file_status) noexcept; 26201: bool is_symlink(file_status) noexcept; 26201: 26201: } 26201: 26201: 26201: } 26201: # 45 "/usr/x86_64-linux-gnu/include/c++/10/filesystem" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_path.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_path.h" 3 26201: #define _GLIBCXX_FS_PATH_H 1 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/locale" 1 3 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/locale" 3 26201: #define _GLIBCXX_LOCALE 1 26201: 26201: 26201: # 37 "/usr/x86_64-linux-gnu/include/c++/10/locale" 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 1 3 26201: # 35 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: #define _LOCALE_CLASSES_H 1 26201: 26201: 26201: # 38 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 62 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: class locale 26201: { 26201: public: 26201: 26201: 26201: typedef int category; 26201: 26201: 26201: class facet; 26201: class id; 26201: class _Impl; 26201: 26201: friend class facet; 26201: friend class _Impl; 26201: 26201: template 26201: friend bool 26201: has_facet(const locale&) throw(); 26201: 26201: template 26201: friend const _Facet& 26201: use_facet(const locale&); 26201: 26201: template 26201: friend struct __use_cache; 26201: # 98 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: static const category none = 0; 26201: static const category ctype = 1L << 0; 26201: static const category numeric = 1L << 1; 26201: static const category collate = 1L << 2; 26201: static const category time = 1L << 3; 26201: static const category monetary = 1L << 4; 26201: static const category messages = 1L << 5; 26201: static const category all = (ctype | numeric | collate | 26201: time | monetary | messages); 26201: # 117 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: locale() throw(); 26201: # 126 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: locale(const locale& __other) throw(); 26201: # 136 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: explicit 26201: locale(const char* __s); 26201: # 151 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: locale(const locale& __base, const char* __s, category __cat); 26201: # 162 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: explicit 26201: locale(const std::string& __s) : locale(__s.c_str()) { } 26201: # 177 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: locale(const locale& __base, const std::string& __s, category __cat) 26201: : locale(__base, __s.c_str(), __cat) { } 26201: # 192 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: locale(const locale& __base, const locale& __add, category __cat); 26201: # 205 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: template 26201: locale(const locale& __other, _Facet* __f); 26201: 26201: 26201: ~locale() throw(); 26201: # 219 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: const locale& 26201: operator=(const locale& __other) throw(); 26201: # 234 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: template 26201: locale 26201: combine(const locale& __other) const; 26201: 26201: 26201: 26201: 26201: 26201: 26201: __attribute ((__abi_tag__ ("cxx11"))) 26201: string 26201: name() const; 26201: # 254 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: bool 26201: operator==(const locale& __other) const throw(); 26201: # 264 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: bool 26201: operator!=(const locale& __other) const throw() 26201: { return !(this->operator==(__other)); } 26201: # 284 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: template 26201: bool 26201: operator()(const basic_string<_Char, _Traits, _Alloc>& __s1, 26201: const basic_string<_Char, _Traits, _Alloc>& __s2) const; 26201: # 300 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: static locale 26201: global(const locale& __loc); 26201: 26201: 26201: 26201: 26201: static const locale& 26201: classic(); 26201: 26201: private: 26201: 26201: _Impl* _M_impl; 26201: 26201: 26201: static _Impl* _S_classic; 26201: 26201: 26201: static _Impl* _S_global; 26201: 26201: 26201: 26201: 26201: 26201: static const char* const* const _S_categories; 26201: # 335 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: enum { _S_categories_size = 6 + 6 }; 26201: 26201: 26201: static __gthread_once_t _S_once; 26201: 26201: 26201: explicit 26201: locale(_Impl*) throw(); 26201: 26201: static void 26201: _S_initialize(); 26201: 26201: static void 26201: _S_initialize_once() throw(); 26201: 26201: static category 26201: _S_normalize_category(category); 26201: 26201: void 26201: _M_coalesce(const locale& __base, const locale& __add, category __cat); 26201: 26201: 26201: static const id* const _S_twinned_facets[]; 26201: 26201: }; 26201: # 373 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: class locale::facet 26201: { 26201: private: 26201: friend class locale; 26201: friend class locale::_Impl; 26201: 26201: mutable _Atomic_word _M_refcount; 26201: 26201: 26201: static __c_locale _S_c_locale; 26201: 26201: 26201: static const char _S_c_name[2]; 26201: 26201: 26201: static __gthread_once_t _S_once; 26201: 26201: 26201: static void 26201: _S_initialize_once(); 26201: 26201: protected: 26201: # 404 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: explicit 26201: facet(size_t __refs = 0) throw() : _M_refcount(__refs ? 1 : 0) 26201: { } 26201: 26201: 26201: virtual 26201: ~facet(); 26201: 26201: static void 26201: _S_create_c_locale(__c_locale& __cloc, const char* __s, 26201: __c_locale __old = 0); 26201: 26201: static __c_locale 26201: _S_clone_c_locale(__c_locale& __cloc) throw(); 26201: 26201: static void 26201: _S_destroy_c_locale(__c_locale& __cloc); 26201: 26201: static __c_locale 26201: _S_lc_ctype_c_locale(__c_locale __cloc, const char* __s); 26201: 26201: 26201: 26201: static __c_locale 26201: _S_get_c_locale(); 26201: 26201: __attribute__ ((__const__)) static const char* 26201: _S_get_c_name() throw(); 26201: # 440 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: facet(const facet&) = delete; 26201: 26201: facet& 26201: operator=(const facet&) = delete; 26201: 26201: 26201: private: 26201: void 26201: _M_add_reference() const throw() 26201: { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 26201: 26201: void 26201: _M_remove_reference() const throw() 26201: { 26201: 26201: ; 26201: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) 26201: { 26201: ; 26201: try 26201: { delete this; } 26201: catch(...) 26201: { } 26201: } 26201: } 26201: 26201: const facet* _M_sso_shim(const id*) const; 26201: const facet* _M_cow_shim(const id*) const; 26201: 26201: protected: 26201: class __shim; 26201: }; 26201: # 485 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: class locale::id 26201: { 26201: private: 26201: friend class locale; 26201: friend class locale::_Impl; 26201: 26201: template 26201: friend const _Facet& 26201: use_facet(const locale&); 26201: 26201: template 26201: friend bool 26201: has_facet(const locale&) throw(); 26201: 26201: 26201: 26201: 26201: mutable size_t _M_index; 26201: 26201: 26201: static _Atomic_word _S_refcount; 26201: 26201: void 26201: operator=(const id&); 26201: 26201: id(const id&); 26201: 26201: public: 26201: 26201: 26201: 26201: id() { } 26201: 26201: size_t 26201: _M_id() const throw(); 26201: }; 26201: 26201: 26201: 26201: class locale::_Impl 26201: { 26201: public: 26201: 26201: friend class locale; 26201: friend class locale::facet; 26201: 26201: template 26201: friend bool 26201: has_facet(const locale&) throw(); 26201: 26201: template 26201: friend const _Facet& 26201: use_facet(const locale&); 26201: 26201: template 26201: friend struct __use_cache; 26201: 26201: private: 26201: 26201: _Atomic_word _M_refcount; 26201: const facet** _M_facets; 26201: size_t _M_facets_size; 26201: const facet** _M_caches; 26201: char** _M_names; 26201: static const locale::id* const _S_id_ctype[]; 26201: static const locale::id* const _S_id_numeric[]; 26201: static const locale::id* const _S_id_collate[]; 26201: static const locale::id* const _S_id_time[]; 26201: static const locale::id* const _S_id_monetary[]; 26201: static const locale::id* const _S_id_messages[]; 26201: static const locale::id* const* const _S_facet_categories[]; 26201: 26201: void 26201: _M_add_reference() throw() 26201: { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 26201: 26201: void 26201: _M_remove_reference() throw() 26201: { 26201: 26201: ; 26201: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) 26201: { 26201: ; 26201: try 26201: { delete this; } 26201: catch(...) 26201: { } 26201: } 26201: } 26201: 26201: _Impl(const _Impl&, size_t); 26201: _Impl(const char*, size_t); 26201: _Impl(size_t) throw(); 26201: 26201: ~_Impl() throw(); 26201: 26201: _Impl(const _Impl&); 26201: 26201: void 26201: operator=(const _Impl&); 26201: 26201: bool 26201: _M_check_same_name() 26201: { 26201: bool __ret = true; 26201: if (_M_names[1]) 26201: 26201: for (size_t __i = 0; __ret && __i < _S_categories_size - 1; ++__i) 26201: __ret = __builtin_strcmp(_M_names[__i], _M_names[__i + 1]) == 0; 26201: return __ret; 26201: } 26201: 26201: void 26201: _M_replace_categories(const _Impl*, category); 26201: 26201: void 26201: _M_replace_category(const _Impl*, const locale::id* const*); 26201: 26201: void 26201: _M_replace_facet(const _Impl*, const locale::id*); 26201: 26201: void 26201: _M_install_facet(const locale::id*, const facet*); 26201: 26201: template 26201: void 26201: _M_init_facet(_Facet* __facet) 26201: { _M_install_facet(&_Facet::id, __facet); } 26201: 26201: template 26201: void 26201: _M_init_facet_unchecked(_Facet* __facet) 26201: { 26201: __facet->_M_add_reference(); 26201: _M_facets[_Facet::id._M_id()] = __facet; 26201: } 26201: 26201: void 26201: _M_install_cache(const facet*, size_t); 26201: 26201: void _M_init_extra(facet**); 26201: void _M_init_extra(void*, void*, const char*, const char*); 26201: }; 26201: # 643 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: template 26201: class __cxx11:: collate : public locale::facet 26201: { 26201: public: 26201: 26201: 26201: 26201: typedef _CharT char_type; 26201: typedef basic_string<_CharT> string_type; 26201: 26201: 26201: protected: 26201: 26201: 26201: __c_locale _M_c_locale_collate; 26201: 26201: public: 26201: 26201: static locale::id id; 26201: # 670 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: explicit 26201: collate(size_t __refs = 0) 26201: : facet(__refs), _M_c_locale_collate(_S_get_c_locale()) 26201: { } 26201: # 684 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: explicit 26201: collate(__c_locale __cloc, size_t __refs = 0) 26201: : facet(__refs), _M_c_locale_collate(_S_clone_c_locale(__cloc)) 26201: { } 26201: # 701 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: int 26201: compare(const _CharT* __lo1, const _CharT* __hi1, 26201: const _CharT* __lo2, const _CharT* __hi2) const 26201: { return this->do_compare(__lo1, __hi1, __lo2, __hi2); } 26201: # 720 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: string_type 26201: transform(const _CharT* __lo, const _CharT* __hi) const 26201: { return this->do_transform(__lo, __hi); } 26201: # 734 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: long 26201: hash(const _CharT* __lo, const _CharT* __hi) const 26201: { return this->do_hash(__lo, __hi); } 26201: 26201: 26201: int 26201: _M_compare(const _CharT*, const _CharT*) const throw(); 26201: 26201: size_t 26201: _M_transform(_CharT*, const _CharT*, size_t) const throw(); 26201: 26201: protected: 26201: 26201: virtual 26201: ~collate() 26201: { _S_destroy_c_locale(_M_c_locale_collate); } 26201: # 763 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: virtual int 26201: do_compare(const _CharT* __lo1, const _CharT* __hi1, 26201: const _CharT* __lo2, const _CharT* __hi2) const; 26201: # 777 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: virtual string_type 26201: do_transform(const _CharT* __lo, const _CharT* __hi) const; 26201: # 790 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 3 26201: virtual long 26201: do_hash(const _CharT* __lo, const _CharT* __hi) const; 26201: }; 26201: 26201: template 26201: locale::id collate<_CharT>::id; 26201: 26201: 26201: template<> 26201: int 26201: collate::_M_compare(const char*, const char*) const throw(); 26201: 26201: template<> 26201: size_t 26201: collate::_M_transform(char*, const char*, size_t) const throw(); 26201: 26201: 26201: template<> 26201: int 26201: collate::_M_compare(const wchar_t*, const wchar_t*) const throw(); 26201: 26201: template<> 26201: size_t 26201: collate::_M_transform(wchar_t*, const wchar_t*, size_t) const throw(); 26201: 26201: 26201: 26201: template 26201: class __cxx11:: collate_byname : public collate<_CharT> 26201: { 26201: public: 26201: 26201: 26201: typedef _CharT char_type; 26201: typedef basic_string<_CharT> string_type; 26201: 26201: 26201: explicit 26201: collate_byname(const char* __s, size_t __refs = 0) 26201: : collate<_CharT>(__refs) 26201: { 26201: if (__builtin_strcmp(__s, "C") != 0 26201: && __builtin_strcmp(__s, "POSIX") != 0) 26201: { 26201: this->_S_destroy_c_locale(this->_M_c_locale_collate); 26201: this->_S_create_c_locale(this->_M_c_locale_collate, __s); 26201: } 26201: } 26201: 26201: 26201: explicit 26201: collate_byname(const string& __s, size_t __refs = 0) 26201: : collate_byname(__s.c_str(), __refs) { } 26201: 26201: 26201: protected: 26201: virtual 26201: ~collate_byname() { } 26201: }; 26201: 26201: 26201: } 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.tcc" 1 3 26201: # 35 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.tcc" 3 26201: #define _LOCALE_CLASSES_TCC 1 26201: 26201: 26201: # 38 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.tcc" 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: template 26201: locale:: 26201: locale(const locale& __other, _Facet* __f) 26201: { 26201: _M_impl = new _Impl(*__other._M_impl, 1); 26201: 26201: try 26201: { _M_impl->_M_install_facet(&_Facet::id, __f); } 26201: catch(...) 26201: { 26201: _M_impl->_M_remove_reference(); 26201: throw; 26201: } 26201: delete [] _M_impl->_M_names[0]; 26201: _M_impl->_M_names[0] = 0; 26201: } 26201: 26201: template 26201: locale 26201: locale:: 26201: combine(const locale& __other) const 26201: { 26201: _Impl* __tmp = new _Impl(*_M_impl, 1); 26201: try 26201: { 26201: __tmp->_M_replace_facet(__other._M_impl, &_Facet::id); 26201: } 26201: catch(...) 26201: { 26201: __tmp->_M_remove_reference(); 26201: throw; 26201: } 26201: return locale(__tmp); 26201: } 26201: 26201: template 26201: bool 26201: locale:: 26201: operator()(const basic_string<_CharT, _Traits, _Alloc>& __s1, 26201: const basic_string<_CharT, _Traits, _Alloc>& __s2) const 26201: { 26201: typedef std::collate<_CharT> __collate_type; 26201: const __collate_type& __collate = use_facet<__collate_type>(*this); 26201: return (__collate.compare(__s1.data(), __s1.data() + __s1.length(), 26201: __s2.data(), __s2.data() + __s2.length()) < 0); 26201: } 26201: # 102 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.tcc" 3 26201: template 26201: bool 26201: has_facet(const locale& __loc) throw() 26201: { 26201: const size_t __i = _Facet::id._M_id(); 26201: const locale::facet** __facets = __loc._M_impl->_M_facets; 26201: return (__i < __loc._M_impl->_M_facets_size 26201: 26201: && dynamic_cast(__facets[__i])); 26201: 26201: 26201: 26201: } 26201: # 130 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.tcc" 3 26201: template 26201: const _Facet& 26201: use_facet(const locale& __loc) 26201: { 26201: const size_t __i = _Facet::id._M_id(); 26201: const locale::facet** __facets = __loc._M_impl->_M_facets; 26201: if (__i >= __loc._M_impl->_M_facets_size || !__facets[__i]) 26201: __throw_bad_cast(); 26201: 26201: return dynamic_cast(*__facets[__i]); 26201: 26201: 26201: 26201: } 26201: 26201: 26201: 26201: template 26201: int 26201: collate<_CharT>::_M_compare(const _CharT*, const _CharT*) const throw () 26201: { return 0; } 26201: 26201: 26201: template 26201: size_t 26201: collate<_CharT>::_M_transform(_CharT*, const _CharT*, size_t) const throw () 26201: { return 0; } 26201: 26201: template 26201: int 26201: collate<_CharT>:: 26201: do_compare(const _CharT* __lo1, const _CharT* __hi1, 26201: const _CharT* __lo2, const _CharT* __hi2) const 26201: { 26201: 26201: 26201: const string_type __one(__lo1, __hi1); 26201: const string_type __two(__lo2, __hi2); 26201: 26201: const _CharT* __p = __one.c_str(); 26201: const _CharT* __pend = __one.data() + __one.length(); 26201: const _CharT* __q = __two.c_str(); 26201: const _CharT* __qend = __two.data() + __two.length(); 26201: 26201: 26201: 26201: 26201: for (;;) 26201: { 26201: const int __res = _M_compare(__p, __q); 26201: if (__res) 26201: return __res; 26201: 26201: __p += char_traits<_CharT>::length(__p); 26201: __q += char_traits<_CharT>::length(__q); 26201: if (__p == __pend && __q == __qend) 26201: return 0; 26201: else if (__p == __pend) 26201: return -1; 26201: else if (__q == __qend) 26201: return 1; 26201: 26201: __p++; 26201: __q++; 26201: } 26201: } 26201: 26201: template 26201: typename collate<_CharT>::string_type 26201: collate<_CharT>:: 26201: do_transform(const _CharT* __lo, const _CharT* __hi) const 26201: { 26201: string_type __ret; 26201: 26201: 26201: const string_type __str(__lo, __hi); 26201: 26201: const _CharT* __p = __str.c_str(); 26201: const _CharT* __pend = __str.data() + __str.length(); 26201: 26201: size_t __len = (__hi - __lo) * 2; 26201: 26201: _CharT* __c = new _CharT[__len]; 26201: 26201: try 26201: { 26201: 26201: 26201: 26201: for (;;) 26201: { 26201: 26201: size_t __res = _M_transform(__c, __p, __len); 26201: 26201: 26201: if (__res >= __len) 26201: { 26201: __len = __res + 1; 26201: delete [] __c, __c = 0; 26201: __c = new _CharT[__len]; 26201: __res = _M_transform(__c, __p, __len); 26201: } 26201: 26201: __ret.append(__c, __res); 26201: __p += char_traits<_CharT>::length(__p); 26201: if (__p == __pend) 26201: break; 26201: 26201: __p++; 26201: __ret.push_back(_CharT()); 26201: } 26201: } 26201: catch(...) 26201: { 26201: delete [] __c; 26201: throw; 26201: } 26201: 26201: delete [] __c; 26201: 26201: return __ret; 26201: } 26201: 26201: template 26201: long 26201: collate<_CharT>:: 26201: do_hash(const _CharT* __lo, const _CharT* __hi) const 26201: { 26201: unsigned long __val = 0; 26201: for (; __lo < __hi; ++__lo) 26201: __val = 26201: *__lo + ((__val << 7) 26201: | (__val >> (__gnu_cxx::__numeric_traits:: 26201: __digits - 7))); 26201: return static_cast(__val); 26201: } 26201: 26201: 26201: 26201: 26201: extern template class collate; 26201: extern template class collate_byname; 26201: 26201: extern template 26201: const collate& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: 26201: extern template class collate; 26201: extern template class collate_byname; 26201: 26201: extern template 26201: const collate& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: 26201: 26201: 26201: } 26201: # 854 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_classes.h" 2 3 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/locale" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 1 3 26201: # 35 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: #define _LOCALE_FACETS_H 1 26201: 26201: 26201: # 38 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/cwctype" 1 3 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/cwctype" 3 26201: 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/cwctype" 3 26201: # 50 "/usr/x86_64-linux-gnu/include/c++/10/cwctype" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/wctype.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/wctype.h" 3 26201: #define _WCTYPE_H 1 26201: # 38 "/usr/x86_64-linux-gnu/include/wctype.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/wctype-wchar.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/wctype-wchar.h" 3 26201: #define _BITS_WCTYPE_WCHAR_H 1 26201: # 38 "/usr/x86_64-linux-gnu/include/bits/wctype-wchar.h" 3 26201: typedef unsigned long int wctype_t; 26201: # 49 "/usr/x86_64-linux-gnu/include/bits/wctype-wchar.h" 3 26201: #define _ISwbit(bit) ((bit) < 8 ? (int) ((1UL << (bit)) << 24) : ((bit) < 16 ? (int) ((1UL << (bit)) << 8) : ((bit) < 24 ? (int) ((1UL << (bit)) >> 8) : (int) ((1UL << (bit)) >> 24)))) 26201: 26201: 26201: 26201: 26201: 26201: 26201: enum 26201: { 26201: __ISwupper = 0, 26201: __ISwlower = 1, 26201: __ISwalpha = 2, 26201: __ISwdigit = 3, 26201: __ISwxdigit = 4, 26201: __ISwspace = 5, 26201: __ISwprint = 6, 26201: __ISwgraph = 7, 26201: __ISwblank = 8, 26201: __ISwcntrl = 9, 26201: __ISwpunct = 10, 26201: __ISwalnum = 11, 26201: 26201: _ISwupper = ((__ISwupper) < 8 ? (int) ((1UL << (__ISwupper)) << 24) : ((__ISwupper) < 16 ? (int) ((1UL << (__ISwupper)) << 8) : ((__ISwupper) < 24 ? (int) ((1UL << (__ISwupper)) >> 8) : (int) ((1UL << (__ISwupper)) >> 24)))), 26201: _ISwlower = ((__ISwlower) < 8 ? (int) ((1UL << (__ISwlower)) << 24) : ((__ISwlower) < 16 ? (int) ((1UL << (__ISwlower)) << 8) : ((__ISwlower) < 24 ? (int) ((1UL << (__ISwlower)) >> 8) : (int) ((1UL << (__ISwlower)) >> 24)))), 26201: _ISwalpha = ((__ISwalpha) < 8 ? (int) ((1UL << (__ISwalpha)) << 24) : ((__ISwalpha) < 16 ? (int) ((1UL << (__ISwalpha)) << 8) : ((__ISwalpha) < 24 ? (int) ((1UL << (__ISwalpha)) >> 8) : (int) ((1UL << (__ISwalpha)) >> 24)))), 26201: _ISwdigit = ((__ISwdigit) < 8 ? (int) ((1UL << (__ISwdigit)) << 24) : ((__ISwdigit) < 16 ? (int) ((1UL << (__ISwdigit)) << 8) : ((__ISwdigit) < 24 ? (int) ((1UL << (__ISwdigit)) >> 8) : (int) ((1UL << (__ISwdigit)) >> 24)))), 26201: _ISwxdigit = ((__ISwxdigit) < 8 ? (int) ((1UL << (__ISwxdigit)) << 24) : ((__ISwxdigit) < 16 ? (int) ((1UL << (__ISwxdigit)) << 8) : ((__ISwxdigit) < 24 ? (int) ((1UL << (__ISwxdigit)) >> 8) : (int) ((1UL << (__ISwxdigit)) >> 24)))), 26201: _ISwspace = ((__ISwspace) < 8 ? (int) ((1UL << (__ISwspace)) << 24) : ((__ISwspace) < 16 ? (int) ((1UL << (__ISwspace)) << 8) : ((__ISwspace) < 24 ? (int) ((1UL << (__ISwspace)) >> 8) : (int) ((1UL << (__ISwspace)) >> 24)))), 26201: _ISwprint = ((__ISwprint) < 8 ? (int) ((1UL << (__ISwprint)) << 24) : ((__ISwprint) < 16 ? (int) ((1UL << (__ISwprint)) << 8) : ((__ISwprint) < 24 ? (int) ((1UL << (__ISwprint)) >> 8) : (int) ((1UL << (__ISwprint)) >> 24)))), 26201: _ISwgraph = ((__ISwgraph) < 8 ? (int) ((1UL << (__ISwgraph)) << 24) : ((__ISwgraph) < 16 ? (int) ((1UL << (__ISwgraph)) << 8) : ((__ISwgraph) < 24 ? (int) ((1UL << (__ISwgraph)) >> 8) : (int) ((1UL << (__ISwgraph)) >> 24)))), 26201: _ISwblank = ((__ISwblank) < 8 ? (int) ((1UL << (__ISwblank)) << 24) : ((__ISwblank) < 16 ? (int) ((1UL << (__ISwblank)) << 8) : ((__ISwblank) < 24 ? (int) ((1UL << (__ISwblank)) >> 8) : (int) ((1UL << (__ISwblank)) >> 24)))), 26201: _ISwcntrl = ((__ISwcntrl) < 8 ? (int) ((1UL << (__ISwcntrl)) << 24) : ((__ISwcntrl) < 16 ? (int) ((1UL << (__ISwcntrl)) << 8) : ((__ISwcntrl) < 24 ? (int) ((1UL << (__ISwcntrl)) >> 8) : (int) ((1UL << (__ISwcntrl)) >> 24)))), 26201: _ISwpunct = ((__ISwpunct) < 8 ? (int) ((1UL << (__ISwpunct)) << 24) : ((__ISwpunct) < 16 ? (int) ((1UL << (__ISwpunct)) << 8) : ((__ISwpunct) < 24 ? (int) ((1UL << (__ISwpunct)) >> 8) : (int) ((1UL << (__ISwpunct)) >> 24)))), 26201: _ISwalnum = ((__ISwalnum) < 8 ? (int) ((1UL << (__ISwalnum)) << 24) : ((__ISwalnum) < 16 ? (int) ((1UL << (__ISwalnum)) << 8) : ((__ISwalnum) < 24 ? (int) ((1UL << (__ISwalnum)) >> 8) : (int) ((1UL << (__ISwalnum)) >> 24)))) 26201: }; 26201: 26201: 26201: 26201: extern "C" { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int iswalnum (wint_t __wc) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern int iswalpha (wint_t __wc) throw (); 26201: 26201: 26201: extern int iswcntrl (wint_t __wc) throw (); 26201: 26201: 26201: 26201: extern int iswdigit (wint_t __wc) throw (); 26201: 26201: 26201: 26201: extern int iswgraph (wint_t __wc) throw (); 26201: 26201: 26201: 26201: 26201: extern int iswlower (wint_t __wc) throw (); 26201: 26201: 26201: extern int iswprint (wint_t __wc) throw (); 26201: 26201: 26201: 26201: 26201: extern int iswpunct (wint_t __wc) throw (); 26201: 26201: 26201: 26201: 26201: extern int iswspace (wint_t __wc) throw (); 26201: 26201: 26201: 26201: 26201: extern int iswupper (wint_t __wc) throw (); 26201: 26201: 26201: 26201: 26201: extern int iswxdigit (wint_t __wc) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern int iswblank (wint_t __wc) throw (); 26201: # 155 "/usr/x86_64-linux-gnu/include/bits/wctype-wchar.h" 3 26201: extern wctype_t wctype (const char *__property) throw (); 26201: 26201: 26201: 26201: extern int iswctype (wint_t __wc, wctype_t __desc) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern wint_t towlower (wint_t __wc) throw (); 26201: 26201: 26201: extern wint_t towupper (wint_t __wc) throw (); 26201: 26201: } 26201: # 39 "/usr/x86_64-linux-gnu/include/wctype.h" 2 3 26201: 26201: 26201: 26201: 26201: 26201: extern "C" { 26201: 26201: 26201: 26201: typedef const __int32_t *wctrans_t; 26201: 26201: 26201: 26201: extern wctrans_t wctrans (const char *__property) throw (); 26201: 26201: 26201: extern wint_t towctrans (wint_t __wc, wctrans_t __desc) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern int iswalnum_l (wint_t __wc, locale_t __locale) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern int iswalpha_l (wint_t __wc, locale_t __locale) throw (); 26201: 26201: 26201: extern int iswcntrl_l (wint_t __wc, locale_t __locale) throw (); 26201: 26201: 26201: 26201: extern int iswdigit_l (wint_t __wc, locale_t __locale) throw (); 26201: 26201: 26201: 26201: extern int iswgraph_l (wint_t __wc, locale_t __locale) throw (); 26201: 26201: 26201: 26201: 26201: extern int iswlower_l (wint_t __wc, locale_t __locale) throw (); 26201: 26201: 26201: extern int iswprint_l (wint_t __wc, locale_t __locale) throw (); 26201: 26201: 26201: 26201: 26201: extern int iswpunct_l (wint_t __wc, locale_t __locale) throw (); 26201: 26201: 26201: 26201: 26201: extern int iswspace_l (wint_t __wc, locale_t __locale) throw (); 26201: 26201: 26201: 26201: 26201: extern int iswupper_l (wint_t __wc, locale_t __locale) throw (); 26201: 26201: 26201: 26201: 26201: extern int iswxdigit_l (wint_t __wc, locale_t __locale) throw (); 26201: 26201: 26201: 26201: 26201: extern int iswblank_l (wint_t __wc, locale_t __locale) throw (); 26201: 26201: 26201: 26201: extern wctype_t wctype_l (const char *__property, locale_t __locale) 26201: throw (); 26201: 26201: 26201: 26201: extern int iswctype_l (wint_t __wc, wctype_t __desc, locale_t __locale) 26201: throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern wint_t towlower_l (wint_t __wc, locale_t __locale) throw (); 26201: 26201: 26201: extern wint_t towupper_l (wint_t __wc, locale_t __locale) throw (); 26201: 26201: 26201: 26201: extern wctrans_t wctrans_l (const char *__property, locale_t __locale) 26201: throw (); 26201: 26201: 26201: extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc, 26201: locale_t __locale) throw (); 26201: 26201: 26201: 26201: } 26201: # 51 "/usr/x86_64-linux-gnu/include/c++/10/cwctype" 2 3 26201: 26201: 26201: 26201: #define _GLIBCXX_CWCTYPE 1 26201: 26201: 26201: #undef iswalnum 26201: #undef iswalpha 26201: 26201: #undef iswblank 26201: 26201: #undef iswcntrl 26201: #undef iswctype 26201: #undef iswdigit 26201: #undef iswgraph 26201: #undef iswlower 26201: #undef iswprint 26201: #undef iswpunct 26201: #undef iswspace 26201: #undef iswupper 26201: #undef iswxdigit 26201: #undef towctrans 26201: #undef towlower 26201: #undef towupper 26201: #undef wctrans 26201: #undef wctype 26201: 26201: 26201: 26201: namespace std 26201: { 26201: using ::wctrans_t; 26201: using ::wctype_t; 26201: using ::wint_t; 26201: 26201: using ::iswalnum; 26201: using ::iswalpha; 26201: 26201: using ::iswblank; 26201: 26201: using ::iswcntrl; 26201: using ::iswctype; 26201: using ::iswdigit; 26201: using ::iswgraph; 26201: using ::iswlower; 26201: using ::iswprint; 26201: using ::iswpunct; 26201: using ::iswspace; 26201: using ::iswupper; 26201: using ::iswxdigit; 26201: using ::towctrans; 26201: using ::towlower; 26201: using ::towupper; 26201: using ::wctrans; 26201: using ::wctype; 26201: } 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/cctype" 1 3 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/cctype" 3 26201: 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/cctype" 3 26201: # 41 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/ctype_base.h" 1 3 26201: # 36 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/ctype_base.h" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: struct ctype_base 26201: { 26201: 26201: typedef const int* __to_type; 26201: 26201: 26201: 26201: typedef unsigned short mask; 26201: static const mask upper = _ISupper; 26201: static const mask lower = _ISlower; 26201: static const mask alpha = _ISalpha; 26201: static const mask digit = _ISdigit; 26201: static const mask xdigit = _ISxdigit; 26201: static const mask space = _ISspace; 26201: static const mask print = _ISprint; 26201: static const mask graph = _ISalpha | _ISdigit | _ISpunct; 26201: static const mask cntrl = _IScntrl; 26201: static const mask punct = _ISpunct; 26201: static const mask alnum = _ISalpha | _ISdigit; 26201: 26201: static const mask blank = _ISblank; 26201: 26201: }; 26201: 26201: 26201: } 26201: # 42 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 2 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 1 3 26201: # 35 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: #define _IOS_BASE_H 1 26201: 26201: 26201: # 38 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: # 49 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: enum _Ios_Fmtflags 26201: { 26201: _S_boolalpha = 1L << 0, 26201: _S_dec = 1L << 1, 26201: _S_fixed = 1L << 2, 26201: _S_hex = 1L << 3, 26201: _S_internal = 1L << 4, 26201: _S_left = 1L << 5, 26201: _S_oct = 1L << 6, 26201: _S_right = 1L << 7, 26201: _S_scientific = 1L << 8, 26201: _S_showbase = 1L << 9, 26201: _S_showpoint = 1L << 10, 26201: _S_showpos = 1L << 11, 26201: _S_skipws = 1L << 12, 26201: _S_unitbuf = 1L << 13, 26201: _S_uppercase = 1L << 14, 26201: _S_adjustfield = _S_left | _S_right | _S_internal, 26201: _S_basefield = _S_dec | _S_oct | _S_hex, 26201: _S_floatfield = _S_scientific | _S_fixed, 26201: _S_ios_fmtflags_end = 1L << 16, 26201: _S_ios_fmtflags_max = 0x7fffffff, 26201: _S_ios_fmtflags_min = ~0x7fffffff 26201: }; 26201: 26201: inline constexpr _Ios_Fmtflags 26201: operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 26201: { return _Ios_Fmtflags(static_cast(__a) & static_cast(__b)); } 26201: 26201: inline constexpr _Ios_Fmtflags 26201: operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 26201: { return _Ios_Fmtflags(static_cast(__a) | static_cast(__b)); } 26201: 26201: inline constexpr _Ios_Fmtflags 26201: operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 26201: { return _Ios_Fmtflags(static_cast(__a) ^ static_cast(__b)); } 26201: 26201: inline constexpr _Ios_Fmtflags 26201: operator~(_Ios_Fmtflags __a) 26201: { return _Ios_Fmtflags(~static_cast(__a)); } 26201: 26201: inline const _Ios_Fmtflags& 26201: operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 26201: { return __a = __a | __b; } 26201: 26201: inline const _Ios_Fmtflags& 26201: operator&=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 26201: { return __a = __a & __b; } 26201: 26201: inline const _Ios_Fmtflags& 26201: operator^=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 26201: { return __a = __a ^ __b; } 26201: 26201: 26201: enum _Ios_Openmode 26201: { 26201: _S_app = 1L << 0, 26201: _S_ate = 1L << 1, 26201: _S_bin = 1L << 2, 26201: _S_in = 1L << 3, 26201: _S_out = 1L << 4, 26201: _S_trunc = 1L << 5, 26201: _S_ios_openmode_end = 1L << 16, 26201: _S_ios_openmode_max = 0x7fffffff, 26201: _S_ios_openmode_min = ~0x7fffffff 26201: }; 26201: 26201: inline constexpr _Ios_Openmode 26201: operator&(_Ios_Openmode __a, _Ios_Openmode __b) 26201: { return _Ios_Openmode(static_cast(__a) & static_cast(__b)); } 26201: 26201: inline constexpr _Ios_Openmode 26201: operator|(_Ios_Openmode __a, _Ios_Openmode __b) 26201: { return _Ios_Openmode(static_cast(__a) | static_cast(__b)); } 26201: 26201: inline constexpr _Ios_Openmode 26201: operator^(_Ios_Openmode __a, _Ios_Openmode __b) 26201: { return _Ios_Openmode(static_cast(__a) ^ static_cast(__b)); } 26201: 26201: inline constexpr _Ios_Openmode 26201: operator~(_Ios_Openmode __a) 26201: { return _Ios_Openmode(~static_cast(__a)); } 26201: 26201: inline const _Ios_Openmode& 26201: operator|=(_Ios_Openmode& __a, _Ios_Openmode __b) 26201: { return __a = __a | __b; } 26201: 26201: inline const _Ios_Openmode& 26201: operator&=(_Ios_Openmode& __a, _Ios_Openmode __b) 26201: { return __a = __a & __b; } 26201: 26201: inline const _Ios_Openmode& 26201: operator^=(_Ios_Openmode& __a, _Ios_Openmode __b) 26201: { return __a = __a ^ __b; } 26201: 26201: 26201: enum _Ios_Iostate 26201: { 26201: _S_goodbit = 0, 26201: _S_badbit = 1L << 0, 26201: _S_eofbit = 1L << 1, 26201: _S_failbit = 1L << 2, 26201: _S_ios_iostate_end = 1L << 16, 26201: _S_ios_iostate_max = 0x7fffffff, 26201: _S_ios_iostate_min = ~0x7fffffff 26201: }; 26201: 26201: inline constexpr _Ios_Iostate 26201: operator&(_Ios_Iostate __a, _Ios_Iostate __b) 26201: { return _Ios_Iostate(static_cast(__a) & static_cast(__b)); } 26201: 26201: inline constexpr _Ios_Iostate 26201: operator|(_Ios_Iostate __a, _Ios_Iostate __b) 26201: { return _Ios_Iostate(static_cast(__a) | static_cast(__b)); } 26201: 26201: inline constexpr _Ios_Iostate 26201: operator^(_Ios_Iostate __a, _Ios_Iostate __b) 26201: { return _Ios_Iostate(static_cast(__a) ^ static_cast(__b)); } 26201: 26201: inline constexpr _Ios_Iostate 26201: operator~(_Ios_Iostate __a) 26201: { return _Ios_Iostate(~static_cast(__a)); } 26201: 26201: inline const _Ios_Iostate& 26201: operator|=(_Ios_Iostate& __a, _Ios_Iostate __b) 26201: { return __a = __a | __b; } 26201: 26201: inline const _Ios_Iostate& 26201: operator&=(_Ios_Iostate& __a, _Ios_Iostate __b) 26201: { return __a = __a & __b; } 26201: 26201: inline const _Ios_Iostate& 26201: operator^=(_Ios_Iostate& __a, _Ios_Iostate __b) 26201: { return __a = __a ^ __b; } 26201: 26201: 26201: enum _Ios_Seekdir 26201: { 26201: _S_beg = 0, 26201: _S_cur = 1, 26201: _S_end = 2, 26201: _S_ios_seekdir_end = 1L << 16 26201: }; 26201: 26201: 26201: 26201: enum class io_errc { stream = 1 }; 26201: 26201: template <> struct is_error_code_enum : public true_type { }; 26201: 26201: const error_category& iostream_category() noexcept; 26201: 26201: inline error_code 26201: make_error_code(io_errc __e) noexcept 26201: { return error_code(static_cast(__e), iostream_category()); } 26201: 26201: inline error_condition 26201: make_error_condition(io_errc __e) noexcept 26201: { return error_condition(static_cast(__e), iostream_category()); } 26201: # 228 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: class ios_base 26201: { 26201: # 246 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: public: 26201: # 255 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: class __attribute ((__abi_tag__ ("cxx11"))) failure : public system_error 26201: { 26201: public: 26201: explicit 26201: failure(const string& __str); 26201: 26201: 26201: explicit 26201: failure(const string&, const error_code&); 26201: 26201: explicit 26201: failure(const char*, const error_code& = io_errc::stream); 26201: 26201: 26201: virtual 26201: ~failure() throw(); 26201: 26201: virtual const char* 26201: what() const throw(); 26201: }; 26201: # 341 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: typedef _Ios_Fmtflags fmtflags; 26201: 26201: 26201: static const fmtflags boolalpha = _S_boolalpha; 26201: 26201: 26201: static const fmtflags dec = _S_dec; 26201: 26201: 26201: static const fmtflags fixed = _S_fixed; 26201: 26201: 26201: static const fmtflags hex = _S_hex; 26201: 26201: 26201: 26201: 26201: static const fmtflags internal = _S_internal; 26201: 26201: 26201: 26201: static const fmtflags left = _S_left; 26201: 26201: 26201: static const fmtflags oct = _S_oct; 26201: 26201: 26201: 26201: static const fmtflags right = _S_right; 26201: 26201: 26201: static const fmtflags scientific = _S_scientific; 26201: 26201: 26201: 26201: static const fmtflags showbase = _S_showbase; 26201: 26201: 26201: 26201: static const fmtflags showpoint = _S_showpoint; 26201: 26201: 26201: static const fmtflags showpos = _S_showpos; 26201: 26201: 26201: static const fmtflags skipws = _S_skipws; 26201: 26201: 26201: static const fmtflags unitbuf = _S_unitbuf; 26201: 26201: 26201: 26201: static const fmtflags uppercase = _S_uppercase; 26201: 26201: 26201: static const fmtflags adjustfield = _S_adjustfield; 26201: 26201: 26201: static const fmtflags basefield = _S_basefield; 26201: 26201: 26201: static const fmtflags floatfield = _S_floatfield; 26201: # 416 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: typedef _Ios_Iostate iostate; 26201: 26201: 26201: 26201: static const iostate badbit = _S_badbit; 26201: 26201: 26201: static const iostate eofbit = _S_eofbit; 26201: 26201: 26201: 26201: 26201: static const iostate failbit = _S_failbit; 26201: 26201: 26201: static const iostate goodbit = _S_goodbit; 26201: # 447 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: typedef _Ios_Openmode openmode; 26201: 26201: 26201: static const openmode app = _S_app; 26201: 26201: 26201: static const openmode ate = _S_ate; 26201: 26201: 26201: 26201: 26201: static const openmode binary = _S_bin; 26201: 26201: 26201: static const openmode in = _S_in; 26201: 26201: 26201: static const openmode out = _S_out; 26201: 26201: 26201: static const openmode trunc = _S_trunc; 26201: # 479 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: typedef _Ios_Seekdir seekdir; 26201: 26201: 26201: static const seekdir beg = _S_beg; 26201: 26201: 26201: static const seekdir cur = _S_cur; 26201: 26201: 26201: static const seekdir end = _S_end; 26201: # 512 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: enum event 26201: { 26201: erase_event, 26201: imbue_event, 26201: copyfmt_event 26201: }; 26201: # 529 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: typedef void (*event_callback) (event __e, ios_base& __b, int __i); 26201: # 541 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: void 26201: register_callback(event_callback __fn, int __index); 26201: 26201: protected: 26201: streamsize _M_precision; 26201: streamsize _M_width; 26201: fmtflags _M_flags; 26201: iostate _M_exception; 26201: iostate _M_streambuf_state; 26201: 26201: 26201: 26201: struct _Callback_list 26201: { 26201: 26201: _Callback_list* _M_next; 26201: ios_base::event_callback _M_fn; 26201: int _M_index; 26201: _Atomic_word _M_refcount; 26201: 26201: _Callback_list(ios_base::event_callback __fn, int __index, 26201: _Callback_list* __cb) 26201: : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { } 26201: 26201: void 26201: _M_add_reference() { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 26201: 26201: 26201: int 26201: _M_remove_reference() 26201: { 26201: 26201: ; 26201: int __res = __gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1); 26201: if (__res == 0) 26201: { 26201: ; 26201: } 26201: return __res; 26201: } 26201: }; 26201: 26201: _Callback_list* _M_callbacks; 26201: 26201: void 26201: _M_call_callbacks(event __ev) throw(); 26201: 26201: void 26201: _M_dispose_callbacks(void) throw(); 26201: 26201: 26201: struct _Words 26201: { 26201: void* _M_pword; 26201: long _M_iword; 26201: _Words() : _M_pword(0), _M_iword(0) { } 26201: }; 26201: 26201: 26201: _Words _M_word_zero; 26201: 26201: 26201: 26201: enum { _S_local_word_size = 8 }; 26201: _Words _M_local_word[_S_local_word_size]; 26201: 26201: 26201: int _M_word_size; 26201: _Words* _M_word; 26201: 26201: _Words& 26201: _M_grow_words(int __index, bool __iword); 26201: 26201: 26201: locale _M_ios_locale; 26201: 26201: void 26201: _M_init() throw(); 26201: 26201: public: 26201: 26201: 26201: 26201: 26201: 26201: class Init 26201: { 26201: friend class ios_base; 26201: public: 26201: Init(); 26201: ~Init(); 26201: 26201: 26201: Init(const Init&) = default; 26201: Init& operator=(const Init&) = default; 26201: 26201: 26201: private: 26201: static _Atomic_word _S_refcount; 26201: static bool _S_synced_with_stdio; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: fmtflags 26201: flags() const 26201: { return _M_flags; } 26201: # 659 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: fmtflags 26201: flags(fmtflags __fmtfl) 26201: { 26201: fmtflags __old = _M_flags; 26201: _M_flags = __fmtfl; 26201: return __old; 26201: } 26201: # 675 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: fmtflags 26201: setf(fmtflags __fmtfl) 26201: { 26201: fmtflags __old = _M_flags; 26201: _M_flags |= __fmtfl; 26201: return __old; 26201: } 26201: # 692 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: fmtflags 26201: setf(fmtflags __fmtfl, fmtflags __mask) 26201: { 26201: fmtflags __old = _M_flags; 26201: _M_flags &= ~__mask; 26201: _M_flags |= (__fmtfl & __mask); 26201: return __old; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: void 26201: unsetf(fmtflags __mask) 26201: { _M_flags &= ~__mask; } 26201: # 718 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: streamsize 26201: precision() const 26201: { return _M_precision; } 26201: 26201: 26201: 26201: 26201: 26201: 26201: streamsize 26201: precision(streamsize __prec) 26201: { 26201: streamsize __old = _M_precision; 26201: _M_precision = __prec; 26201: return __old; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: streamsize 26201: width() const 26201: { return _M_width; } 26201: 26201: 26201: 26201: 26201: 26201: 26201: streamsize 26201: width(streamsize __wide) 26201: { 26201: streamsize __old = _M_width; 26201: _M_width = __wide; 26201: return __old; 26201: } 26201: # 769 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: static bool 26201: sync_with_stdio(bool __sync = true); 26201: # 781 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: locale 26201: imbue(const locale& __loc) throw(); 26201: # 792 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: locale 26201: getloc() const 26201: { return _M_ios_locale; } 26201: # 803 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: const locale& 26201: _M_getloc() const 26201: { return _M_ios_locale; } 26201: # 822 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: static int 26201: xalloc() throw(); 26201: # 838 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: long& 26201: iword(int __ix) 26201: { 26201: _Words& __word = ((unsigned)__ix < (unsigned)_M_word_size) 26201: ? _M_word[__ix] : _M_grow_words(__ix, true); 26201: return __word._M_iword; 26201: } 26201: # 859 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: void*& 26201: pword(int __ix) 26201: { 26201: _Words& __word = ((unsigned)__ix < (unsigned)_M_word_size) 26201: ? _M_word[__ix] : _M_grow_words(__ix, false); 26201: return __word._M_pword; 26201: } 26201: # 876 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: virtual ~ios_base(); 26201: 26201: protected: 26201: ios_base() throw (); 26201: # 890 "/usr/x86_64-linux-gnu/include/c++/10/bits/ios_base.h" 3 26201: public: 26201: ios_base(const ios_base&) = delete; 26201: 26201: ios_base& 26201: operator=(const ios_base&) = delete; 26201: 26201: protected: 26201: void 26201: _M_move(ios_base&) noexcept; 26201: 26201: void 26201: _M_swap(ios_base& __rhs) noexcept; 26201: 26201: }; 26201: 26201: 26201: 26201: inline ios_base& 26201: boolalpha(ios_base& __base) 26201: { 26201: __base.setf(ios_base::boolalpha); 26201: return __base; 26201: } 26201: 26201: 26201: inline ios_base& 26201: noboolalpha(ios_base& __base) 26201: { 26201: __base.unsetf(ios_base::boolalpha); 26201: return __base; 26201: } 26201: 26201: 26201: inline ios_base& 26201: showbase(ios_base& __base) 26201: { 26201: __base.setf(ios_base::showbase); 26201: return __base; 26201: } 26201: 26201: 26201: inline ios_base& 26201: noshowbase(ios_base& __base) 26201: { 26201: __base.unsetf(ios_base::showbase); 26201: return __base; 26201: } 26201: 26201: 26201: inline ios_base& 26201: showpoint(ios_base& __base) 26201: { 26201: __base.setf(ios_base::showpoint); 26201: return __base; 26201: } 26201: 26201: 26201: inline ios_base& 26201: noshowpoint(ios_base& __base) 26201: { 26201: __base.unsetf(ios_base::showpoint); 26201: return __base; 26201: } 26201: 26201: 26201: inline ios_base& 26201: showpos(ios_base& __base) 26201: { 26201: __base.setf(ios_base::showpos); 26201: return __base; 26201: } 26201: 26201: 26201: inline ios_base& 26201: noshowpos(ios_base& __base) 26201: { 26201: __base.unsetf(ios_base::showpos); 26201: return __base; 26201: } 26201: 26201: 26201: inline ios_base& 26201: skipws(ios_base& __base) 26201: { 26201: __base.setf(ios_base::skipws); 26201: return __base; 26201: } 26201: 26201: 26201: inline ios_base& 26201: noskipws(ios_base& __base) 26201: { 26201: __base.unsetf(ios_base::skipws); 26201: return __base; 26201: } 26201: 26201: 26201: inline ios_base& 26201: uppercase(ios_base& __base) 26201: { 26201: __base.setf(ios_base::uppercase); 26201: return __base; 26201: } 26201: 26201: 26201: inline ios_base& 26201: nouppercase(ios_base& __base) 26201: { 26201: __base.unsetf(ios_base::uppercase); 26201: return __base; 26201: } 26201: 26201: 26201: inline ios_base& 26201: unitbuf(ios_base& __base) 26201: { 26201: __base.setf(ios_base::unitbuf); 26201: return __base; 26201: } 26201: 26201: 26201: inline ios_base& 26201: nounitbuf(ios_base& __base) 26201: { 26201: __base.unsetf(ios_base::unitbuf); 26201: return __base; 26201: } 26201: 26201: 26201: 26201: inline ios_base& 26201: internal(ios_base& __base) 26201: { 26201: __base.setf(ios_base::internal, ios_base::adjustfield); 26201: return __base; 26201: } 26201: 26201: 26201: inline ios_base& 26201: left(ios_base& __base) 26201: { 26201: __base.setf(ios_base::left, ios_base::adjustfield); 26201: return __base; 26201: } 26201: 26201: 26201: inline ios_base& 26201: right(ios_base& __base) 26201: { 26201: __base.setf(ios_base::right, ios_base::adjustfield); 26201: return __base; 26201: } 26201: 26201: 26201: 26201: inline ios_base& 26201: dec(ios_base& __base) 26201: { 26201: __base.setf(ios_base::dec, ios_base::basefield); 26201: return __base; 26201: } 26201: 26201: 26201: inline ios_base& 26201: hex(ios_base& __base) 26201: { 26201: __base.setf(ios_base::hex, ios_base::basefield); 26201: return __base; 26201: } 26201: 26201: 26201: inline ios_base& 26201: oct(ios_base& __base) 26201: { 26201: __base.setf(ios_base::oct, ios_base::basefield); 26201: return __base; 26201: } 26201: 26201: 26201: 26201: inline ios_base& 26201: fixed(ios_base& __base) 26201: { 26201: __base.setf(ios_base::fixed, ios_base::floatfield); 26201: return __base; 26201: } 26201: 26201: 26201: inline ios_base& 26201: scientific(ios_base& __base) 26201: { 26201: __base.setf(ios_base::scientific, ios_base::floatfield); 26201: return __base; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline ios_base& 26201: hexfloat(ios_base& __base) 26201: { 26201: __base.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield); 26201: return __base; 26201: } 26201: 26201: 26201: inline ios_base& 26201: defaultfloat(ios_base& __base) 26201: { 26201: __base.unsetf(ios_base::floatfield); 26201: return __base; 26201: } 26201: 26201: 26201: 26201: } 26201: # 44 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 1 3 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: #define _GLIBXX_STREAMBUF 1 26201: 26201: 26201: # 37 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: # 45 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: #define _IsUnused __attribute__ ((__unused__)) 26201: 26201: template 26201: streamsize 26201: __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>*, 26201: basic_streambuf<_CharT, _Traits>*, bool&); 26201: # 121 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: template 26201: class basic_streambuf 26201: { 26201: public: 26201: 26201: 26201: 26201: 26201: 26201: 26201: typedef _CharT char_type; 26201: typedef _Traits traits_type; 26201: typedef typename traits_type::int_type int_type; 26201: typedef typename traits_type::pos_type pos_type; 26201: typedef typename traits_type::off_type off_type; 26201: 26201: 26201: 26201: 26201: typedef basic_streambuf __streambuf_type; 26201: 26201: 26201: friend class basic_ios; 26201: friend class basic_istream; 26201: friend class basic_ostream; 26201: friend class istreambuf_iterator; 26201: friend class ostreambuf_iterator; 26201: 26201: friend streamsize 26201: __copy_streambufs_eof<>(basic_streambuf*, basic_streambuf*, bool&); 26201: 26201: template 26201: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 26201: _CharT2*>::__type 26201: __copy_move_a2(istreambuf_iterator<_CharT2>, 26201: istreambuf_iterator<_CharT2>, _CharT2*); 26201: 26201: template 26201: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 26201: istreambuf_iterator<_CharT2> >::__type 26201: find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 26201: const _CharT2&); 26201: 26201: template 26201: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 26201: void>::__type 26201: advance(istreambuf_iterator<_CharT2>&, _Distance); 26201: 26201: template 26201: friend basic_istream<_CharT2, _Traits2>& 26201: operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2*); 26201: 26201: template 26201: friend basic_istream<_CharT2, _Traits2>& 26201: operator>>(basic_istream<_CharT2, _Traits2>&, 26201: basic_string<_CharT2, _Traits2, _Alloc>&); 26201: 26201: template 26201: friend basic_istream<_CharT2, _Traits2>& 26201: getline(basic_istream<_CharT2, _Traits2>&, 26201: basic_string<_CharT2, _Traits2, _Alloc>&, _CharT2); 26201: 26201: protected: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: char_type* _M_in_beg; 26201: char_type* _M_in_cur; 26201: char_type* _M_in_end; 26201: char_type* _M_out_beg; 26201: char_type* _M_out_cur; 26201: char_type* _M_out_end; 26201: 26201: 26201: locale _M_buf_locale; 26201: 26201: public: 26201: 26201: virtual 26201: ~basic_streambuf() 26201: { } 26201: # 215 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: locale 26201: pubimbue(const locale& __loc) 26201: { 26201: locale __tmp(this->getloc()); 26201: this->imbue(__loc); 26201: _M_buf_locale = __loc; 26201: return __tmp; 26201: } 26201: # 232 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: locale 26201: getloc() const 26201: { return _M_buf_locale; } 26201: # 245 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: basic_streambuf* 26201: pubsetbuf(char_type* __s, streamsize __n) 26201: { return this->setbuf(__s, __n); } 26201: # 257 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: pos_type 26201: pubseekoff(off_type __off, ios_base::seekdir __way, 26201: ios_base::openmode __mode = ios_base::in | ios_base::out) 26201: { return this->seekoff(__off, __way, __mode); } 26201: # 269 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: pos_type 26201: pubseekpos(pos_type __sp, 26201: ios_base::openmode __mode = ios_base::in | ios_base::out) 26201: { return this->seekpos(__sp, __mode); } 26201: 26201: 26201: 26201: 26201: int 26201: pubsync() { return this->sync(); } 26201: # 290 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: streamsize 26201: in_avail() 26201: { 26201: const streamsize __ret = this->egptr() - this->gptr(); 26201: return __ret ? __ret : this->showmanyc(); 26201: } 26201: # 304 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: int_type 26201: snextc() 26201: { 26201: int_type __ret = traits_type::eof(); 26201: if (__builtin_expect(!traits_type::eq_int_type(this->sbumpc(), 26201: __ret), true)) 26201: __ret = this->sgetc(); 26201: return __ret; 26201: } 26201: # 322 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: int_type 26201: sbumpc() 26201: { 26201: int_type __ret; 26201: if (__builtin_expect(this->gptr() < this->egptr(), true)) 26201: { 26201: __ret = traits_type::to_int_type(*this->gptr()); 26201: this->gbump(1); 26201: } 26201: else 26201: __ret = this->uflow(); 26201: return __ret; 26201: } 26201: # 344 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: int_type 26201: sgetc() 26201: { 26201: int_type __ret; 26201: if (__builtin_expect(this->gptr() < this->egptr(), true)) 26201: __ret = traits_type::to_int_type(*this->gptr()); 26201: else 26201: __ret = this->underflow(); 26201: return __ret; 26201: } 26201: # 363 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: streamsize 26201: sgetn(char_type* __s, streamsize __n) 26201: { return this->xsgetn(__s, __n); } 26201: # 378 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: int_type 26201: sputbackc(char_type __c) 26201: { 26201: int_type __ret; 26201: const bool __testpos = this->eback() < this->gptr(); 26201: if (__builtin_expect(!__testpos || 26201: !traits_type::eq(__c, this->gptr()[-1]), false)) 26201: __ret = this->pbackfail(traits_type::to_int_type(__c)); 26201: else 26201: { 26201: this->gbump(-1); 26201: __ret = traits_type::to_int_type(*this->gptr()); 26201: } 26201: return __ret; 26201: } 26201: # 403 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: int_type 26201: sungetc() 26201: { 26201: int_type __ret; 26201: if (__builtin_expect(this->eback() < this->gptr(), true)) 26201: { 26201: this->gbump(-1); 26201: __ret = traits_type::to_int_type(*this->gptr()); 26201: } 26201: else 26201: __ret = this->pbackfail(); 26201: return __ret; 26201: } 26201: # 430 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: int_type 26201: sputc(char_type __c) 26201: { 26201: int_type __ret; 26201: if (__builtin_expect(this->pptr() < this->epptr(), true)) 26201: { 26201: *this->pptr() = __c; 26201: this->pbump(1); 26201: __ret = traits_type::to_int_type(__c); 26201: } 26201: else 26201: __ret = this->overflow(traits_type::to_int_type(__c)); 26201: return __ret; 26201: } 26201: # 456 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: streamsize 26201: sputn(const char_type* __s, streamsize __n) 26201: { return this->xsputn(__s, __n); } 26201: 26201: protected: 26201: # 470 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: basic_streambuf() 26201: : _M_in_beg(0), _M_in_cur(0), _M_in_end(0), 26201: _M_out_beg(0), _M_out_cur(0), _M_out_end(0), 26201: _M_buf_locale(locale()) 26201: { } 26201: # 488 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: char_type* 26201: eback() const { return _M_in_beg; } 26201: 26201: char_type* 26201: gptr() const { return _M_in_cur; } 26201: 26201: char_type* 26201: egptr() const { return _M_in_end; } 26201: # 504 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: void 26201: gbump(int __n) { _M_in_cur += __n; } 26201: # 515 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: void 26201: setg(char_type* __gbeg, char_type* __gnext, char_type* __gend) 26201: { 26201: _M_in_beg = __gbeg; 26201: _M_in_cur = __gnext; 26201: _M_in_end = __gend; 26201: } 26201: # 535 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: char_type* 26201: pbase() const { return _M_out_beg; } 26201: 26201: char_type* 26201: pptr() const { return _M_out_cur; } 26201: 26201: char_type* 26201: epptr() const { return _M_out_end; } 26201: # 551 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: void 26201: pbump(int __n) { _M_out_cur += __n; } 26201: # 561 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: void 26201: setp(char_type* __pbeg, char_type* __pend) 26201: { 26201: _M_out_beg = _M_out_cur = __pbeg; 26201: _M_out_end = __pend; 26201: } 26201: # 582 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: virtual void 26201: imbue(const locale& __loc __attribute__ ((__unused__))) 26201: { } 26201: # 597 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: virtual basic_streambuf* 26201: setbuf(char_type*, streamsize) 26201: { return this; } 26201: # 608 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: virtual pos_type 26201: seekoff(off_type, ios_base::seekdir, 26201: ios_base::openmode = ios_base::in | ios_base::out) 26201: { return pos_type(off_type(-1)); } 26201: # 620 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: virtual pos_type 26201: seekpos(pos_type, 26201: ios_base::openmode = ios_base::in | ios_base::out) 26201: { return pos_type(off_type(-1)); } 26201: # 633 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: virtual int 26201: sync() { return 0; } 26201: # 655 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: virtual streamsize 26201: showmanyc() { return 0; } 26201: # 671 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: virtual streamsize 26201: xsgetn(char_type* __s, streamsize __n); 26201: # 693 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: virtual int_type 26201: underflow() 26201: { return traits_type::eof(); } 26201: # 706 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: virtual int_type 26201: uflow() 26201: { 26201: int_type __ret = traits_type::eof(); 26201: const bool __testeof = traits_type::eq_int_type(this->underflow(), 26201: __ret); 26201: if (!__testeof) 26201: { 26201: __ret = traits_type::to_int_type(*this->gptr()); 26201: this->gbump(1); 26201: } 26201: return __ret; 26201: } 26201: # 730 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: virtual int_type 26201: pbackfail(int_type __c __attribute__ ((__unused__)) = traits_type::eof()) 26201: { return traits_type::eof(); } 26201: # 748 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: virtual streamsize 26201: xsputn(const char_type* __s, streamsize __n); 26201: # 774 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: virtual int_type 26201: overflow(int_type __c __attribute__ ((__unused__)) = traits_type::eof()) 26201: { return traits_type::eof(); } 26201: # 801 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 3 26201: void 26201: __safe_gbump(streamsize __n) { _M_in_cur += __n; } 26201: 26201: void 26201: __safe_pbump(streamsize __n) { _M_out_cur += __n; } 26201: 26201: 26201: 26201: 26201: protected: 26201: 26201: basic_streambuf(const basic_streambuf&); 26201: 26201: basic_streambuf& 26201: operator=(const basic_streambuf&); 26201: 26201: 26201: void 26201: swap(basic_streambuf& __sb) 26201: { 26201: std::swap(_M_in_beg, __sb._M_in_beg); 26201: std::swap(_M_in_cur, __sb._M_in_cur); 26201: std::swap(_M_in_end, __sb._M_in_end); 26201: std::swap(_M_out_beg, __sb._M_out_beg); 26201: std::swap(_M_out_cur, __sb._M_out_cur); 26201: std::swap(_M_out_end, __sb._M_out_end); 26201: std::swap(_M_buf_locale, __sb._M_buf_locale); 26201: } 26201: 26201: }; 26201: 26201: 26201: template 26201: std::basic_streambuf<_CharT, _Traits>:: 26201: basic_streambuf(const basic_streambuf&) = default; 26201: 26201: template 26201: std::basic_streambuf<_CharT, _Traits>& 26201: std::basic_streambuf<_CharT, _Traits>:: 26201: operator=(const basic_streambuf&) = default; 26201: 26201: 26201: 26201: template<> 26201: streamsize 26201: __copy_streambufs_eof(basic_streambuf* __sbin, 26201: basic_streambuf* __sbout, bool& __ineof); 26201: 26201: template<> 26201: streamsize 26201: __copy_streambufs_eof(basic_streambuf* __sbin, 26201: basic_streambuf* __sbout, bool& __ineof); 26201: 26201: 26201: #undef _IsUnused 26201: 26201: 26201: } 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/streambuf.tcc" 1 3 26201: # 35 "/usr/x86_64-linux-gnu/include/c++/10/bits/streambuf.tcc" 3 26201: #define _STREAMBUF_TCC 1 26201: 26201: 26201: # 38 "/usr/x86_64-linux-gnu/include/c++/10/bits/streambuf.tcc" 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: template 26201: streamsize 26201: basic_streambuf<_CharT, _Traits>:: 26201: xsgetn(char_type* __s, streamsize __n) 26201: { 26201: streamsize __ret = 0; 26201: while (__ret < __n) 26201: { 26201: const streamsize __buf_len = this->egptr() - this->gptr(); 26201: if (__buf_len) 26201: { 26201: const streamsize __remaining = __n - __ret; 26201: const streamsize __len = std::min(__buf_len, __remaining); 26201: traits_type::copy(__s, this->gptr(), __len); 26201: __ret += __len; 26201: __s += __len; 26201: this->__safe_gbump(__len); 26201: } 26201: 26201: if (__ret < __n) 26201: { 26201: const int_type __c = this->uflow(); 26201: if (!traits_type::eq_int_type(__c, traits_type::eof())) 26201: { 26201: traits_type::assign(*__s++, traits_type::to_char_type(__c)); 26201: ++__ret; 26201: } 26201: else 26201: break; 26201: } 26201: } 26201: return __ret; 26201: } 26201: 26201: template 26201: streamsize 26201: basic_streambuf<_CharT, _Traits>:: 26201: xsputn(const char_type* __s, streamsize __n) 26201: { 26201: streamsize __ret = 0; 26201: while (__ret < __n) 26201: { 26201: const streamsize __buf_len = this->epptr() - this->pptr(); 26201: if (__buf_len) 26201: { 26201: const streamsize __remaining = __n - __ret; 26201: const streamsize __len = std::min(__buf_len, __remaining); 26201: traits_type::copy(this->pptr(), __s, __len); 26201: __ret += __len; 26201: __s += __len; 26201: this->__safe_pbump(__len); 26201: } 26201: 26201: if (__ret < __n) 26201: { 26201: int_type __c = this->overflow(traits_type::to_int_type(*__s)); 26201: if (!traits_type::eq_int_type(__c, traits_type::eof())) 26201: { 26201: ++__ret; 26201: ++__s; 26201: } 26201: else 26201: break; 26201: } 26201: } 26201: return __ret; 26201: } 26201: 26201: 26201: 26201: 26201: template 26201: streamsize 26201: __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>* __sbin, 26201: basic_streambuf<_CharT, _Traits>* __sbout, 26201: bool& __ineof) 26201: { 26201: streamsize __ret = 0; 26201: __ineof = true; 26201: typename _Traits::int_type __c = __sbin->sgetc(); 26201: while (!_Traits::eq_int_type(__c, _Traits::eof())) 26201: { 26201: __c = __sbout->sputc(_Traits::to_char_type(__c)); 26201: if (_Traits::eq_int_type(__c, _Traits::eof())) 26201: { 26201: __ineof = false; 26201: break; 26201: } 26201: ++__ret; 26201: __c = __sbin->snextc(); 26201: } 26201: return __ret; 26201: } 26201: 26201: template 26201: inline streamsize 26201: __copy_streambufs(basic_streambuf<_CharT, _Traits>* __sbin, 26201: basic_streambuf<_CharT, _Traits>* __sbout) 26201: { 26201: bool __ineof; 26201: return __copy_streambufs_eof(__sbin, __sbout, __ineof); 26201: } 26201: 26201: 26201: 26201: 26201: extern template class basic_streambuf; 26201: extern template 26201: streamsize 26201: __copy_streambufs(basic_streambuf*, 26201: basic_streambuf*); 26201: extern template 26201: streamsize 26201: __copy_streambufs_eof(basic_streambuf*, 26201: basic_streambuf*, bool&); 26201: 26201: 26201: extern template class basic_streambuf; 26201: extern template 26201: streamsize 26201: __copy_streambufs(basic_streambuf*, 26201: basic_streambuf*); 26201: extern template 26201: streamsize 26201: __copy_streambufs_eof(basic_streambuf*, 26201: basic_streambuf*, bool&); 26201: 26201: 26201: 26201: 26201: } 26201: # 861 "/usr/x86_64-linux-gnu/include/c++/10/streambuf" 2 3 26201: # 45 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 2 3 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/streambuf_iterator.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/streambuf_iterator.h" 3 26201: #define _STREAMBUF_ITERATOR_H 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/streambuf_iterator.h" 3 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 49 "/usr/x86_64-linux-gnu/include/c++/10/bits/streambuf_iterator.h" 3 26201: template 26201: class istreambuf_iterator 26201: : public iterator 26201: { 26201: public: 26201: # 66 "/usr/x86_64-linux-gnu/include/c++/10/bits/streambuf_iterator.h" 3 26201: typedef _CharT char_type; 26201: typedef _Traits traits_type; 26201: typedef typename _Traits::int_type int_type; 26201: typedef basic_streambuf<_CharT, _Traits> streambuf_type; 26201: typedef basic_istream<_CharT, _Traits> istream_type; 26201: 26201: 26201: template 26201: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 26201: ostreambuf_iterator<_CharT2> >::__type 26201: copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 26201: ostreambuf_iterator<_CharT2>); 26201: 26201: template 26201: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 26201: _CharT2*>::__type 26201: __copy_move_a2(istreambuf_iterator<_CharT2>, 26201: istreambuf_iterator<_CharT2>, _CharT2*); 26201: 26201: 26201: template 26201: friend __enable_if_t<__is_char<_CharT2>::__value, _CharT2*> 26201: __copy_n_a(istreambuf_iterator<_CharT2>, _Size, _CharT2*); 26201: 26201: 26201: template 26201: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 26201: istreambuf_iterator<_CharT2> >::__type 26201: find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 26201: const _CharT2&); 26201: 26201: template 26201: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 26201: void>::__type 26201: advance(istreambuf_iterator<_CharT2>&, _Distance); 26201: 26201: private: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: mutable streambuf_type* _M_sbuf; 26201: int_type _M_c; 26201: 26201: public: 26201: 26201: constexpr istreambuf_iterator() noexcept 26201: : _M_sbuf(0), _M_c(traits_type::eof()) { } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: istreambuf_iterator(const istreambuf_iterator&) noexcept = default; 26201: 26201: ~istreambuf_iterator() = default; 26201: 26201: 26201: 26201: istreambuf_iterator(istream_type& __s) noexcept 26201: : _M_sbuf(__s.rdbuf()), _M_c(traits_type::eof()) { } 26201: 26201: 26201: istreambuf_iterator(streambuf_type* __s) noexcept 26201: : _M_sbuf(__s), _M_c(traits_type::eof()) { } 26201: 26201: 26201: istreambuf_iterator& 26201: operator=(const istreambuf_iterator&) noexcept = default; 26201: 26201: 26201: 26201: 26201: 26201: char_type 26201: operator*() const 26201: { 26201: int_type __c = _M_get(); 26201: # 157 "/usr/x86_64-linux-gnu/include/c++/10/bits/streambuf_iterator.h" 3 26201: return traits_type::to_char_type(__c); 26201: } 26201: 26201: 26201: istreambuf_iterator& 26201: operator++() 26201: { 26201: 26201: 26201: 26201: ; 26201: 26201: _M_sbuf->sbumpc(); 26201: _M_c = traits_type::eof(); 26201: return *this; 26201: } 26201: 26201: 26201: istreambuf_iterator 26201: operator++(int) 26201: { 26201: 26201: 26201: 26201: ; 26201: 26201: istreambuf_iterator __old = *this; 26201: __old._M_c = _M_sbuf->sbumpc(); 26201: _M_c = traits_type::eof(); 26201: return __old; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: bool 26201: equal(const istreambuf_iterator& __b) const 26201: { return _M_at_eof() == __b._M_at_eof(); } 26201: 26201: private: 26201: int_type 26201: _M_get() const 26201: { 26201: int_type __ret = _M_c; 26201: if (_M_sbuf && _S_is_eof(__ret) && _S_is_eof(__ret = _M_sbuf->sgetc())) 26201: _M_sbuf = 0; 26201: return __ret; 26201: } 26201: 26201: bool 26201: _M_at_eof() const 26201: { return _S_is_eof(_M_get()); } 26201: 26201: static bool 26201: _S_is_eof(int_type __c) 26201: { 26201: const int_type __eof = traits_type::eof(); 26201: return traits_type::eq_int_type(__c, __eof); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: }; 26201: 26201: template 26201: inline bool 26201: operator==(const istreambuf_iterator<_CharT, _Traits>& __a, 26201: const istreambuf_iterator<_CharT, _Traits>& __b) 26201: { return __a.equal(__b); } 26201: 26201: template 26201: inline bool 26201: operator!=(const istreambuf_iterator<_CharT, _Traits>& __a, 26201: const istreambuf_iterator<_CharT, _Traits>& __b) 26201: { return !__a.equal(__b); } 26201: 26201: 26201: template 26201: class ostreambuf_iterator 26201: : public iterator 26201: { 26201: public: 26201: 26201: 26201: 26201: 26201: 26201: 26201: typedef _CharT char_type; 26201: typedef _Traits traits_type; 26201: typedef basic_streambuf<_CharT, _Traits> streambuf_type; 26201: typedef basic_ostream<_CharT, _Traits> ostream_type; 26201: 26201: 26201: template 26201: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 26201: ostreambuf_iterator<_CharT2> >::__type 26201: copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 26201: ostreambuf_iterator<_CharT2>); 26201: 26201: private: 26201: streambuf_type* _M_sbuf; 26201: bool _M_failed; 26201: 26201: public: 26201: # 274 "/usr/x86_64-linux-gnu/include/c++/10/bits/streambuf_iterator.h" 3 26201: ostreambuf_iterator(ostream_type& __s) noexcept 26201: : _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { } 26201: 26201: 26201: ostreambuf_iterator(streambuf_type* __s) noexcept 26201: : _M_sbuf(__s), _M_failed(!_M_sbuf) { } 26201: 26201: 26201: ostreambuf_iterator& 26201: operator=(_CharT __c) 26201: { 26201: if (!_M_failed && 26201: _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof())) 26201: _M_failed = true; 26201: return *this; 26201: } 26201: 26201: 26201: ostreambuf_iterator& 26201: operator*() 26201: { return *this; } 26201: 26201: 26201: ostreambuf_iterator& 26201: operator++(int) 26201: { return *this; } 26201: 26201: 26201: ostreambuf_iterator& 26201: operator++() 26201: { return *this; } 26201: 26201: 26201: bool 26201: failed() const noexcept 26201: { return _M_failed; } 26201: 26201: ostreambuf_iterator& 26201: _M_put(const _CharT* __ws, streamsize __len) 26201: { 26201: if (__builtin_expect(!_M_failed, true) 26201: && __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len, 26201: false)) 26201: _M_failed = true; 26201: return *this; 26201: } 26201: }; 26201: 26201: 26201: template 26201: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 26201: ostreambuf_iterator<_CharT> >::__type 26201: copy(istreambuf_iterator<_CharT> __first, 26201: istreambuf_iterator<_CharT> __last, 26201: ostreambuf_iterator<_CharT> __result) 26201: { 26201: if (__first._M_sbuf && !__last._M_sbuf && !__result._M_failed) 26201: { 26201: bool __ineof; 26201: __copy_streambufs_eof(__first._M_sbuf, __result._M_sbuf, __ineof); 26201: if (!__ineof) 26201: __result._M_failed = true; 26201: } 26201: return __result; 26201: } 26201: 26201: template 26201: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 26201: ostreambuf_iterator<_CharT> >::__type 26201: __copy_move_a2(_CharT* __first, _CharT* __last, 26201: ostreambuf_iterator<_CharT> __result) 26201: { 26201: const streamsize __num = __last - __first; 26201: if (__num > 0) 26201: __result._M_put(__first, __num); 26201: return __result; 26201: } 26201: 26201: template 26201: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 26201: ostreambuf_iterator<_CharT> >::__type 26201: __copy_move_a2(const _CharT* __first, const _CharT* __last, 26201: ostreambuf_iterator<_CharT> __result) 26201: { 26201: const streamsize __num = __last - __first; 26201: if (__num > 0) 26201: __result._M_put(__first, __num); 26201: return __result; 26201: } 26201: 26201: template 26201: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 26201: _CharT*>::__type 26201: __copy_move_a2(istreambuf_iterator<_CharT> __first, 26201: istreambuf_iterator<_CharT> __last, _CharT* __result) 26201: { 26201: typedef istreambuf_iterator<_CharT> __is_iterator_type; 26201: typedef typename __is_iterator_type::traits_type traits_type; 26201: typedef typename __is_iterator_type::streambuf_type streambuf_type; 26201: typedef typename traits_type::int_type int_type; 26201: 26201: if (__first._M_sbuf && !__last._M_sbuf) 26201: { 26201: streambuf_type* __sb = __first._M_sbuf; 26201: int_type __c = __sb->sgetc(); 26201: while (!traits_type::eq_int_type(__c, traits_type::eof())) 26201: { 26201: const streamsize __n = __sb->egptr() - __sb->gptr(); 26201: if (__n > 1) 26201: { 26201: traits_type::copy(__result, __sb->gptr(), __n); 26201: __sb->__safe_gbump(__n); 26201: __result += __n; 26201: __c = __sb->underflow(); 26201: } 26201: else 26201: { 26201: *__result++ = traits_type::to_char_type(__c); 26201: __c = __sb->snextc(); 26201: } 26201: } 26201: } 26201: return __result; 26201: } 26201: 26201: 26201: template 26201: __enable_if_t<__is_char<_CharT>::__value, _CharT*> 26201: __copy_n_a(istreambuf_iterator<_CharT> __it, _Size __n, _CharT* __result) 26201: { 26201: if (__n == 0) 26201: return __result; 26201: 26201: 26201: 26201: ; 26201: _CharT* __beg = __result; 26201: __result += __it._M_sbuf->sgetn(__beg, __n); 26201: 26201: 26201: ; 26201: return __result; 26201: } 26201: 26201: 26201: template 26201: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 26201: istreambuf_iterator<_CharT> >::__type 26201: find(istreambuf_iterator<_CharT> __first, 26201: istreambuf_iterator<_CharT> __last, const _CharT& __val) 26201: { 26201: typedef istreambuf_iterator<_CharT> __is_iterator_type; 26201: typedef typename __is_iterator_type::traits_type traits_type; 26201: typedef typename __is_iterator_type::streambuf_type streambuf_type; 26201: typedef typename traits_type::int_type int_type; 26201: const int_type __eof = traits_type::eof(); 26201: 26201: if (__first._M_sbuf && !__last._M_sbuf) 26201: { 26201: const int_type __ival = traits_type::to_int_type(__val); 26201: streambuf_type* __sb = __first._M_sbuf; 26201: int_type __c = __sb->sgetc(); 26201: while (!traits_type::eq_int_type(__c, __eof) 26201: && !traits_type::eq_int_type(__c, __ival)) 26201: { 26201: streamsize __n = __sb->egptr() - __sb->gptr(); 26201: if (__n > 1) 26201: { 26201: const _CharT* __p = traits_type::find(__sb->gptr(), 26201: __n, __val); 26201: if (__p) 26201: __n = __p - __sb->gptr(); 26201: __sb->__safe_gbump(__n); 26201: __c = __sb->sgetc(); 26201: } 26201: else 26201: __c = __sb->snextc(); 26201: } 26201: 26201: __first._M_c = __eof; 26201: } 26201: 26201: return __first; 26201: } 26201: 26201: template 26201: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 26201: void>::__type 26201: advance(istreambuf_iterator<_CharT>& __i, _Distance __n) 26201: { 26201: if (__n == 0) 26201: return; 26201: 26201: ; 26201: 26201: 26201: ; 26201: 26201: typedef istreambuf_iterator<_CharT> __is_iterator_type; 26201: typedef typename __is_iterator_type::traits_type traits_type; 26201: typedef typename __is_iterator_type::streambuf_type streambuf_type; 26201: typedef typename traits_type::int_type int_type; 26201: const int_type __eof = traits_type::eof(); 26201: 26201: streambuf_type* __sb = __i._M_sbuf; 26201: while (__n > 0) 26201: { 26201: streamsize __size = __sb->egptr() - __sb->gptr(); 26201: if (__size > __n) 26201: { 26201: __sb->__safe_gbump(__n); 26201: break; 26201: } 26201: 26201: __sb->__safe_gbump(__size); 26201: __n -= __size; 26201: if (traits_type::eq_int_type(__sb->underflow(), __eof)) 26201: { 26201: 26201: 26201: ; 26201: break; 26201: } 26201: } 26201: 26201: __i._M_c = __eof; 26201: } 26201: 26201: 26201: 26201: 26201: } 26201: # 49 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_NUM_FACETS 28 26201: #define _GLIBCXX_NUM_CXX11_FACETS 16 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_NUM_UNICODE_FACETS 2 26201: 26201: 26201: 26201: 26201: 26201: template 26201: void 26201: __convert_to_v(const char*, _Tp&, ios_base::iostate&, 26201: const __c_locale&) throw(); 26201: 26201: 26201: template<> 26201: void 26201: __convert_to_v(const char*, float&, ios_base::iostate&, 26201: const __c_locale&) throw(); 26201: 26201: template<> 26201: void 26201: __convert_to_v(const char*, double&, ios_base::iostate&, 26201: const __c_locale&) throw(); 26201: 26201: template<> 26201: void 26201: __convert_to_v(const char*, long double&, ios_base::iostate&, 26201: const __c_locale&) throw(); 26201: 26201: 26201: 26201: template 26201: struct __pad 26201: { 26201: static void 26201: _S_pad(ios_base& __io, _CharT __fill, _CharT* __news, 26201: const _CharT* __olds, streamsize __newlen, streamsize __oldlen); 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: _CharT* 26201: __add_grouping(_CharT* __s, _CharT __sep, 26201: const char* __gbeg, size_t __gsize, 26201: const _CharT* __first, const _CharT* __last); 26201: 26201: 26201: 26201: 26201: template 26201: inline 26201: ostreambuf_iterator<_CharT> 26201: __write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len) 26201: { 26201: __s._M_put(__ws, __len); 26201: return __s; 26201: } 26201: 26201: 26201: template 26201: inline 26201: _OutIter 26201: __write(_OutIter __s, const _CharT* __ws, int __len) 26201: { 26201: for (int __j = 0; __j < __len; __j++, ++__s) 26201: *__s = __ws[__j]; 26201: return __s; 26201: } 26201: # 149 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: template 26201: class __ctype_abstract_base : public locale::facet, public ctype_base 26201: { 26201: public: 26201: 26201: 26201: typedef _CharT char_type; 26201: # 168 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: bool 26201: is(mask __m, char_type __c) const 26201: { return this->do_is(__m, __c); } 26201: # 185 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: const char_type* 26201: is(const char_type *__lo, const char_type *__hi, mask *__vec) const 26201: { return this->do_is(__lo, __hi, __vec); } 26201: # 201 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: const char_type* 26201: scan_is(mask __m, const char_type* __lo, const char_type* __hi) const 26201: { return this->do_scan_is(__m, __lo, __hi); } 26201: # 217 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: const char_type* 26201: scan_not(mask __m, const char_type* __lo, const char_type* __hi) const 26201: { return this->do_scan_not(__m, __lo, __hi); } 26201: # 231 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: char_type 26201: toupper(char_type __c) const 26201: { return this->do_toupper(__c); } 26201: # 246 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: const char_type* 26201: toupper(char_type *__lo, const char_type* __hi) const 26201: { return this->do_toupper(__lo, __hi); } 26201: # 260 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: char_type 26201: tolower(char_type __c) const 26201: { return this->do_tolower(__c); } 26201: # 275 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: const char_type* 26201: tolower(char_type* __lo, const char_type* __hi) const 26201: { return this->do_tolower(__lo, __hi); } 26201: # 292 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: char_type 26201: widen(char __c) const 26201: { return this->do_widen(__c); } 26201: # 311 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: const char* 26201: widen(const char* __lo, const char* __hi, char_type* __to) const 26201: { return this->do_widen(__lo, __hi, __to); } 26201: # 330 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: char 26201: narrow(char_type __c, char __dfault) const 26201: { return this->do_narrow(__c, __dfault); } 26201: # 352 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: const char_type* 26201: narrow(const char_type* __lo, const char_type* __hi, 26201: char __dfault, char* __to) const 26201: { return this->do_narrow(__lo, __hi, __dfault, __to); } 26201: 26201: protected: 26201: explicit 26201: __ctype_abstract_base(size_t __refs = 0): facet(__refs) { } 26201: 26201: virtual 26201: ~__ctype_abstract_base() { } 26201: # 377 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual bool 26201: do_is(mask __m, char_type __c) const = 0; 26201: # 396 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual const char_type* 26201: do_is(const char_type* __lo, const char_type* __hi, 26201: mask* __vec) const = 0; 26201: # 415 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual const char_type* 26201: do_scan_is(mask __m, const char_type* __lo, 26201: const char_type* __hi) const = 0; 26201: # 434 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual const char_type* 26201: do_scan_not(mask __m, const char_type* __lo, 26201: const char_type* __hi) const = 0; 26201: # 452 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual char_type 26201: do_toupper(char_type __c) const = 0; 26201: # 469 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual const char_type* 26201: do_toupper(char_type* __lo, const char_type* __hi) const = 0; 26201: # 485 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual char_type 26201: do_tolower(char_type __c) const = 0; 26201: # 502 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual const char_type* 26201: do_tolower(char_type* __lo, const char_type* __hi) const = 0; 26201: # 521 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual char_type 26201: do_widen(char __c) const = 0; 26201: # 542 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual const char* 26201: do_widen(const char* __lo, const char* __hi, char_type* __to) const = 0; 26201: # 563 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual char 26201: do_narrow(char_type __c, char __dfault) const = 0; 26201: # 588 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual const char_type* 26201: do_narrow(const char_type* __lo, const char_type* __hi, 26201: char __dfault, char* __to) const = 0; 26201: }; 26201: # 611 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: template 26201: class ctype : public __ctype_abstract_base<_CharT> 26201: { 26201: public: 26201: 26201: typedef _CharT char_type; 26201: typedef typename __ctype_abstract_base<_CharT>::mask mask; 26201: 26201: 26201: static locale::id id; 26201: 26201: explicit 26201: ctype(size_t __refs = 0) : __ctype_abstract_base<_CharT>(__refs) { } 26201: 26201: protected: 26201: virtual 26201: ~ctype(); 26201: 26201: virtual bool 26201: do_is(mask __m, char_type __c) const; 26201: 26201: virtual const char_type* 26201: do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; 26201: 26201: virtual const char_type* 26201: do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; 26201: 26201: virtual const char_type* 26201: do_scan_not(mask __m, const char_type* __lo, 26201: const char_type* __hi) const; 26201: 26201: virtual char_type 26201: do_toupper(char_type __c) const; 26201: 26201: virtual const char_type* 26201: do_toupper(char_type* __lo, const char_type* __hi) const; 26201: 26201: virtual char_type 26201: do_tolower(char_type __c) const; 26201: 26201: virtual const char_type* 26201: do_tolower(char_type* __lo, const char_type* __hi) const; 26201: 26201: virtual char_type 26201: do_widen(char __c) const; 26201: 26201: virtual const char* 26201: do_widen(const char* __lo, const char* __hi, char_type* __dest) const; 26201: 26201: virtual char 26201: do_narrow(char_type, char __dfault) const; 26201: 26201: virtual const char_type* 26201: do_narrow(const char_type* __lo, const char_type* __hi, 26201: char __dfault, char* __to) const; 26201: }; 26201: 26201: template 26201: locale::id ctype<_CharT>::id; 26201: # 680 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: template<> 26201: class ctype : public locale::facet, public ctype_base 26201: { 26201: public: 26201: 26201: 26201: typedef char char_type; 26201: 26201: protected: 26201: 26201: __c_locale _M_c_locale_ctype; 26201: bool _M_del; 26201: __to_type _M_toupper; 26201: __to_type _M_tolower; 26201: const mask* _M_table; 26201: mutable char _M_widen_ok; 26201: mutable char _M_widen[1 + static_cast(-1)]; 26201: mutable char _M_narrow[1 + static_cast(-1)]; 26201: mutable char _M_narrow_ok; 26201: 26201: 26201: public: 26201: 26201: static locale::id id; 26201: 26201: static const size_t table_size = 1 + static_cast(-1); 26201: # 717 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: explicit 26201: ctype(const mask* __table = 0, bool __del = false, size_t __refs = 0); 26201: # 730 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: explicit 26201: ctype(__c_locale __cloc, const mask* __table = 0, bool __del = false, 26201: size_t __refs = 0); 26201: # 743 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: inline bool 26201: is(mask __m, char __c) const; 26201: # 758 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: inline const char* 26201: is(const char* __lo, const char* __hi, mask* __vec) const; 26201: # 772 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: inline const char* 26201: scan_is(mask __m, const char* __lo, const char* __hi) const; 26201: # 786 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: inline const char* 26201: scan_not(mask __m, const char* __lo, const char* __hi) const; 26201: # 801 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: char_type 26201: toupper(char_type __c) const 26201: { return this->do_toupper(__c); } 26201: # 818 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: const char_type* 26201: toupper(char_type *__lo, const char_type* __hi) const 26201: { return this->do_toupper(__lo, __hi); } 26201: # 834 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: char_type 26201: tolower(char_type __c) const 26201: { return this->do_tolower(__c); } 26201: # 851 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: const char_type* 26201: tolower(char_type* __lo, const char_type* __hi) const 26201: { return this->do_tolower(__lo, __hi); } 26201: # 871 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: char_type 26201: widen(char __c) const 26201: { 26201: if (_M_widen_ok) 26201: return _M_widen[static_cast(__c)]; 26201: this->_M_widen_init(); 26201: return this->do_widen(__c); 26201: } 26201: # 898 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: const char* 26201: widen(const char* __lo, const char* __hi, char_type* __to) const 26201: { 26201: if (_M_widen_ok == 1) 26201: { 26201: if (__builtin_expect(__hi != __lo, true)) 26201: __builtin_memcpy(__to, __lo, __hi - __lo); 26201: return __hi; 26201: } 26201: if (!_M_widen_ok) 26201: _M_widen_init(); 26201: return this->do_widen(__lo, __hi, __to); 26201: } 26201: # 930 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: char 26201: narrow(char_type __c, char __dfault) const 26201: { 26201: if (_M_narrow[static_cast(__c)]) 26201: return _M_narrow[static_cast(__c)]; 26201: const char __t = do_narrow(__c, __dfault); 26201: if (__t != __dfault) 26201: _M_narrow[static_cast(__c)] = __t; 26201: return __t; 26201: } 26201: # 963 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: const char_type* 26201: narrow(const char_type* __lo, const char_type* __hi, 26201: char __dfault, char* __to) const 26201: { 26201: if (__builtin_expect(_M_narrow_ok == 1, true)) 26201: { 26201: if (__builtin_expect(__hi != __lo, true)) 26201: __builtin_memcpy(__to, __lo, __hi - __lo); 26201: return __hi; 26201: } 26201: if (!_M_narrow_ok) 26201: _M_narrow_init(); 26201: return this->do_narrow(__lo, __hi, __dfault, __to); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: const mask* 26201: table() const throw() 26201: { return _M_table; } 26201: 26201: 26201: static const mask* 26201: classic_table() throw(); 26201: protected: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: virtual 26201: ~ctype(); 26201: # 1013 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual char_type 26201: do_toupper(char_type __c) const; 26201: # 1030 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual const char_type* 26201: do_toupper(char_type* __lo, const char_type* __hi) const; 26201: # 1046 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual char_type 26201: do_tolower(char_type __c) const; 26201: # 1063 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual const char_type* 26201: do_tolower(char_type* __lo, const char_type* __hi) const; 26201: # 1083 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual char_type 26201: do_widen(char __c) const 26201: { return __c; } 26201: # 1106 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual const char* 26201: do_widen(const char* __lo, const char* __hi, char_type* __to) const 26201: { 26201: if (__builtin_expect(__hi != __lo, true)) 26201: __builtin_memcpy(__to, __lo, __hi - __lo); 26201: return __hi; 26201: } 26201: # 1133 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual char 26201: do_narrow(char_type __c, char __dfault __attribute__((__unused__))) const 26201: { return __c; } 26201: # 1159 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual const char_type* 26201: do_narrow(const char_type* __lo, const char_type* __hi, 26201: char __dfault __attribute__((__unused__)), char* __to) const 26201: { 26201: if (__builtin_expect(__hi != __lo, true)) 26201: __builtin_memcpy(__to, __lo, __hi - __lo); 26201: return __hi; 26201: } 26201: 26201: private: 26201: void _M_narrow_init() const; 26201: void _M_widen_init() const; 26201: }; 26201: # 1185 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: template<> 26201: class ctype : public __ctype_abstract_base 26201: { 26201: public: 26201: 26201: 26201: typedef wchar_t char_type; 26201: typedef wctype_t __wmask_type; 26201: 26201: protected: 26201: __c_locale _M_c_locale_ctype; 26201: 26201: 26201: bool _M_narrow_ok; 26201: char _M_narrow[128]; 26201: wint_t _M_widen[1 + static_cast(-1)]; 26201: 26201: 26201: mask _M_bit[16]; 26201: __wmask_type _M_wmask[16]; 26201: 26201: public: 26201: 26201: 26201: static locale::id id; 26201: # 1218 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: explicit 26201: ctype(size_t __refs = 0); 26201: # 1229 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: explicit 26201: ctype(__c_locale __cloc, size_t __refs = 0); 26201: 26201: protected: 26201: __wmask_type 26201: _M_convert_to_wmask(const mask __m) const throw(); 26201: 26201: 26201: virtual 26201: ~ctype(); 26201: # 1253 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual bool 26201: do_is(mask __m, char_type __c) const; 26201: # 1272 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual const char_type* 26201: do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; 26201: # 1290 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual const char_type* 26201: do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; 26201: # 1308 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual const char_type* 26201: do_scan_not(mask __m, const char_type* __lo, 26201: const char_type* __hi) const; 26201: # 1325 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual char_type 26201: do_toupper(char_type __c) const; 26201: # 1342 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual const char_type* 26201: do_toupper(char_type* __lo, const char_type* __hi) const; 26201: # 1358 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual char_type 26201: do_tolower(char_type __c) const; 26201: # 1375 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual const char_type* 26201: do_tolower(char_type* __lo, const char_type* __hi) const; 26201: # 1395 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual char_type 26201: do_widen(char __c) const; 26201: # 1417 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual const char* 26201: do_widen(const char* __lo, const char* __hi, char_type* __to) const; 26201: # 1440 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual char 26201: do_narrow(char_type __c, char __dfault) const; 26201: # 1466 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual const char_type* 26201: do_narrow(const char_type* __lo, const char_type* __hi, 26201: char __dfault, char* __to) const; 26201: 26201: 26201: void 26201: _M_initialize_ctype() throw(); 26201: }; 26201: 26201: 26201: 26201: template 26201: class ctype_byname : public ctype<_CharT> 26201: { 26201: public: 26201: typedef typename ctype<_CharT>::mask mask; 26201: 26201: explicit 26201: ctype_byname(const char* __s, size_t __refs = 0); 26201: 26201: 26201: explicit 26201: ctype_byname(const string& __s, size_t __refs = 0) 26201: : ctype_byname(__s.c_str(), __refs) { } 26201: 26201: 26201: protected: 26201: virtual 26201: ~ctype_byname() { } 26201: }; 26201: 26201: 26201: template<> 26201: class ctype_byname : public ctype 26201: { 26201: public: 26201: explicit 26201: ctype_byname(const char* __s, size_t __refs = 0); 26201: 26201: 26201: explicit 26201: ctype_byname(const string& __s, size_t __refs = 0); 26201: 26201: 26201: protected: 26201: virtual 26201: ~ctype_byname(); 26201: }; 26201: 26201: 26201: template<> 26201: class ctype_byname : public ctype 26201: { 26201: public: 26201: explicit 26201: ctype_byname(const char* __s, size_t __refs = 0); 26201: 26201: 26201: explicit 26201: ctype_byname(const string& __s, size_t __refs = 0); 26201: 26201: 26201: protected: 26201: virtual 26201: ~ctype_byname(); 26201: }; 26201: 26201: 26201: 26201: } 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/ctype_inline.h" 1 3 26201: # 37 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/ctype_inline.h" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: bool 26201: ctype:: 26201: is(mask __m, char __c) const 26201: { return _M_table[static_cast(__c)] & __m; } 26201: 26201: const char* 26201: ctype:: 26201: is(const char* __low, const char* __high, mask* __vec) const 26201: { 26201: while (__low < __high) 26201: *__vec++ = _M_table[static_cast(*__low++)]; 26201: return __high; 26201: } 26201: 26201: const char* 26201: ctype:: 26201: scan_is(mask __m, const char* __low, const char* __high) const 26201: { 26201: while (__low < __high 26201: && !(_M_table[static_cast(*__low)] & __m)) 26201: ++__low; 26201: return __low; 26201: } 26201: 26201: const char* 26201: ctype:: 26201: scan_not(mask __m, const char* __low, const char* __high) const 26201: { 26201: while (__low < __high 26201: && (_M_table[static_cast(*__low)] & __m) != 0) 26201: ++__low; 26201: return __low; 26201: } 26201: 26201: 26201: } 26201: # 1539 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: class __num_base 26201: { 26201: public: 26201: 26201: 26201: enum 26201: { 26201: _S_ominus, 26201: _S_oplus, 26201: _S_ox, 26201: _S_oX, 26201: _S_odigits, 26201: _S_odigits_end = _S_odigits + 16, 26201: _S_oudigits = _S_odigits_end, 26201: _S_oudigits_end = _S_oudigits + 16, 26201: _S_oe = _S_odigits + 14, 26201: _S_oE = _S_oudigits + 14, 26201: _S_oend = _S_oudigits_end 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: static const char* _S_atoms_out; 26201: 26201: 26201: 26201: static const char* _S_atoms_in; 26201: 26201: enum 26201: { 26201: _S_iminus, 26201: _S_iplus, 26201: _S_ix, 26201: _S_iX, 26201: _S_izero, 26201: _S_ie = _S_izero + 14, 26201: _S_iE = _S_izero + 20, 26201: _S_iend = 26 26201: }; 26201: 26201: 26201: 26201: static void 26201: _S_format_float(const ios_base& __io, char* __fptr, char __mod) throw(); 26201: }; 26201: 26201: template 26201: struct __numpunct_cache : public locale::facet 26201: { 26201: const char* _M_grouping; 26201: size_t _M_grouping_size; 26201: bool _M_use_grouping; 26201: const _CharT* _M_truename; 26201: size_t _M_truename_size; 26201: const _CharT* _M_falsename; 26201: size_t _M_falsename_size; 26201: _CharT _M_decimal_point; 26201: _CharT _M_thousands_sep; 26201: 26201: 26201: 26201: 26201: 26201: _CharT _M_atoms_out[__num_base::_S_oend]; 26201: 26201: 26201: 26201: 26201: 26201: _CharT _M_atoms_in[__num_base::_S_iend]; 26201: 26201: bool _M_allocated; 26201: 26201: __numpunct_cache(size_t __refs = 0) 26201: : facet(__refs), _M_grouping(0), _M_grouping_size(0), 26201: _M_use_grouping(false), 26201: _M_truename(0), _M_truename_size(0), _M_falsename(0), 26201: _M_falsename_size(0), _M_decimal_point(_CharT()), 26201: _M_thousands_sep(_CharT()), _M_allocated(false) 26201: { } 26201: 26201: ~__numpunct_cache(); 26201: 26201: void 26201: _M_cache(const locale& __loc); 26201: 26201: private: 26201: __numpunct_cache& 26201: operator=(const __numpunct_cache&); 26201: 26201: explicit 26201: __numpunct_cache(const __numpunct_cache&); 26201: }; 26201: 26201: template 26201: __numpunct_cache<_CharT>::~__numpunct_cache() 26201: { 26201: if (_M_allocated) 26201: { 26201: delete [] _M_grouping; 26201: delete [] _M_truename; 26201: delete [] _M_falsename; 26201: } 26201: } 26201: 26201: namespace __cxx11 { 26201: # 1669 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: template 26201: class numpunct : public locale::facet 26201: { 26201: public: 26201: 26201: 26201: 26201: typedef _CharT char_type; 26201: typedef basic_string<_CharT> string_type; 26201: 26201: typedef __numpunct_cache<_CharT> __cache_type; 26201: 26201: protected: 26201: __cache_type* _M_data; 26201: 26201: public: 26201: 26201: static locale::id id; 26201: 26201: 26201: 26201: 26201: 26201: 26201: explicit 26201: numpunct(size_t __refs = 0) 26201: : facet(__refs), _M_data(0) 26201: { _M_initialize_numpunct(); } 26201: # 1707 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: explicit 26201: numpunct(__cache_type* __cache, size_t __refs = 0) 26201: : facet(__refs), _M_data(__cache) 26201: { _M_initialize_numpunct(); } 26201: # 1721 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: explicit 26201: numpunct(__c_locale __cloc, size_t __refs = 0) 26201: : facet(__refs), _M_data(0) 26201: { _M_initialize_numpunct(__cloc); } 26201: # 1735 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: char_type 26201: decimal_point() const 26201: { return this->do_decimal_point(); } 26201: # 1748 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: char_type 26201: thousands_sep() const 26201: { return this->do_thousands_sep(); } 26201: # 1779 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: string 26201: grouping() const 26201: { return this->do_grouping(); } 26201: # 1792 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: string_type 26201: truename() const 26201: { return this->do_truename(); } 26201: # 1805 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: string_type 26201: falsename() const 26201: { return this->do_falsename(); } 26201: 26201: protected: 26201: 26201: virtual 26201: ~numpunct(); 26201: # 1822 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual char_type 26201: do_decimal_point() const 26201: { return _M_data->_M_decimal_point; } 26201: # 1834 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual char_type 26201: do_thousands_sep() const 26201: { return _M_data->_M_thousands_sep; } 26201: # 1847 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual string 26201: do_grouping() const 26201: { return _M_data->_M_grouping; } 26201: # 1860 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual string_type 26201: do_truename() const 26201: { return _M_data->_M_truename; } 26201: # 1873 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual string_type 26201: do_falsename() const 26201: { return _M_data->_M_falsename; } 26201: 26201: 26201: void 26201: _M_initialize_numpunct(__c_locale __cloc = 0); 26201: }; 26201: 26201: template 26201: locale::id numpunct<_CharT>::id; 26201: 26201: template<> 26201: numpunct::~numpunct(); 26201: 26201: template<> 26201: void 26201: numpunct::_M_initialize_numpunct(__c_locale __cloc); 26201: 26201: 26201: template<> 26201: numpunct::~numpunct(); 26201: 26201: template<> 26201: void 26201: numpunct::_M_initialize_numpunct(__c_locale __cloc); 26201: 26201: 26201: 26201: template 26201: class numpunct_byname : public numpunct<_CharT> 26201: { 26201: public: 26201: typedef _CharT char_type; 26201: typedef basic_string<_CharT> string_type; 26201: 26201: explicit 26201: numpunct_byname(const char* __s, size_t __refs = 0) 26201: : numpunct<_CharT>(__refs) 26201: { 26201: if (__builtin_strcmp(__s, "C") != 0 26201: && __builtin_strcmp(__s, "POSIX") != 0) 26201: { 26201: __c_locale __tmp; 26201: this->_S_create_c_locale(__tmp, __s); 26201: this->_M_initialize_numpunct(__tmp); 26201: this->_S_destroy_c_locale(__tmp); 26201: } 26201: } 26201: 26201: 26201: explicit 26201: numpunct_byname(const string& __s, size_t __refs = 0) 26201: : numpunct_byname(__s.c_str(), __refs) { } 26201: 26201: 26201: protected: 26201: virtual 26201: ~numpunct_byname() { } 26201: }; 26201: 26201: } 26201: 26201: 26201: # 1951 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: template 26201: class num_get : public locale::facet 26201: { 26201: public: 26201: 26201: 26201: 26201: typedef _CharT char_type; 26201: typedef _InIter iter_type; 26201: 26201: 26201: 26201: static locale::id id; 26201: # 1972 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: explicit 26201: num_get(size_t __refs = 0) : facet(__refs) { } 26201: # 1998 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: iter_type 26201: get(iter_type __in, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, bool& __v) const 26201: { return this->do_get(__in, __end, __io, __err, __v); } 26201: # 2035 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: iter_type 26201: get(iter_type __in, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, long& __v) const 26201: { return this->do_get(__in, __end, __io, __err, __v); } 26201: 26201: iter_type 26201: get(iter_type __in, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, unsigned short& __v) const 26201: { return this->do_get(__in, __end, __io, __err, __v); } 26201: 26201: iter_type 26201: get(iter_type __in, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, unsigned int& __v) const 26201: { return this->do_get(__in, __end, __io, __err, __v); } 26201: 26201: iter_type 26201: get(iter_type __in, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, unsigned long& __v) const 26201: { return this->do_get(__in, __end, __io, __err, __v); } 26201: 26201: 26201: iter_type 26201: get(iter_type __in, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, long long& __v) const 26201: { return this->do_get(__in, __end, __io, __err, __v); } 26201: 26201: iter_type 26201: get(iter_type __in, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, unsigned long long& __v) const 26201: { return this->do_get(__in, __end, __io, __err, __v); } 26201: # 2095 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: iter_type 26201: get(iter_type __in, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, float& __v) const 26201: { return this->do_get(__in, __end, __io, __err, __v); } 26201: 26201: iter_type 26201: get(iter_type __in, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, double& __v) const 26201: { return this->do_get(__in, __end, __io, __err, __v); } 26201: 26201: iter_type 26201: get(iter_type __in, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, long double& __v) const 26201: { return this->do_get(__in, __end, __io, __err, __v); } 26201: # 2138 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: iter_type 26201: get(iter_type __in, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, void*& __v) const 26201: { return this->do_get(__in, __end, __io, __err, __v); } 26201: 26201: protected: 26201: 26201: virtual ~num_get() { } 26201: 26201: __attribute ((__abi_tag__ ("cxx11"))) 26201: iter_type 26201: _M_extract_float(iter_type, iter_type, ios_base&, ios_base::iostate&, 26201: string&) const; 26201: 26201: template 26201: __attribute ((__abi_tag__ ("cxx11"))) 26201: iter_type 26201: _M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&, 26201: _ValueT&) const; 26201: 26201: template 26201: typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, int>::__type 26201: _M_find(const _CharT2*, size_t __len, _CharT2 __c) const 26201: { 26201: int __ret = -1; 26201: if (__len <= 10) 26201: { 26201: if (__c >= _CharT2('0') && __c < _CharT2(_CharT2('0') + __len)) 26201: __ret = __c - _CharT2('0'); 26201: } 26201: else 26201: { 26201: if (__c >= _CharT2('0') && __c <= _CharT2('9')) 26201: __ret = __c - _CharT2('0'); 26201: else if (__c >= _CharT2('a') && __c <= _CharT2('f')) 26201: __ret = 10 + (__c - _CharT2('a')); 26201: else if (__c >= _CharT2('A') && __c <= _CharT2('F')) 26201: __ret = 10 + (__c - _CharT2('A')); 26201: } 26201: return __ret; 26201: } 26201: 26201: template 26201: typename __gnu_cxx::__enable_if::__value, 26201: int>::__type 26201: _M_find(const _CharT2* __zero, size_t __len, _CharT2 __c) const 26201: { 26201: int __ret = -1; 26201: const char_type* __q = char_traits<_CharT2>::find(__zero, __len, __c); 26201: if (__q) 26201: { 26201: __ret = __q - __zero; 26201: if (__ret > 15) 26201: __ret -= 6; 26201: } 26201: return __ret; 26201: } 26201: # 2211 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual iter_type 26201: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const; 26201: 26201: virtual iter_type 26201: do_get(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, long& __v) const 26201: { return _M_extract_int(__beg, __end, __io, __err, __v); } 26201: 26201: virtual iter_type 26201: do_get(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, unsigned short& __v) const 26201: { return _M_extract_int(__beg, __end, __io, __err, __v); } 26201: 26201: virtual iter_type 26201: do_get(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, unsigned int& __v) const 26201: { return _M_extract_int(__beg, __end, __io, __err, __v); } 26201: 26201: virtual iter_type 26201: do_get(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, unsigned long& __v) const 26201: { return _M_extract_int(__beg, __end, __io, __err, __v); } 26201: 26201: 26201: virtual iter_type 26201: do_get(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, long long& __v) const 26201: { return _M_extract_int(__beg, __end, __io, __err, __v); } 26201: 26201: virtual iter_type 26201: do_get(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, unsigned long long& __v) const 26201: { return _M_extract_int(__beg, __end, __io, __err, __v); } 26201: 26201: 26201: virtual iter_type 26201: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, float&) const; 26201: 26201: virtual iter_type 26201: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, 26201: double&) const; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: virtual iter_type 26201: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, 26201: long double&) const; 26201: 26201: 26201: virtual iter_type 26201: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, void*&) const; 26201: # 2274 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: }; 26201: 26201: template 26201: locale::id num_get<_CharT, _InIter>::id; 26201: # 2292 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: template 26201: class num_put : public locale::facet 26201: { 26201: public: 26201: 26201: 26201: 26201: typedef _CharT char_type; 26201: typedef _OutIter iter_type; 26201: 26201: 26201: 26201: static locale::id id; 26201: # 2313 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: explicit 26201: num_put(size_t __refs = 0) : facet(__refs) { } 26201: # 2331 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: iter_type 26201: put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const 26201: { return this->do_put(__s, __io, __fill, __v); } 26201: # 2373 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: iter_type 26201: put(iter_type __s, ios_base& __io, char_type __fill, long __v) const 26201: { return this->do_put(__s, __io, __fill, __v); } 26201: 26201: iter_type 26201: put(iter_type __s, ios_base& __io, char_type __fill, 26201: unsigned long __v) const 26201: { return this->do_put(__s, __io, __fill, __v); } 26201: 26201: 26201: iter_type 26201: put(iter_type __s, ios_base& __io, char_type __fill, long long __v) const 26201: { return this->do_put(__s, __io, __fill, __v); } 26201: 26201: iter_type 26201: put(iter_type __s, ios_base& __io, char_type __fill, 26201: unsigned long long __v) const 26201: { return this->do_put(__s, __io, __fill, __v); } 26201: # 2436 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: iter_type 26201: put(iter_type __s, ios_base& __io, char_type __fill, double __v) const 26201: { return this->do_put(__s, __io, __fill, __v); } 26201: 26201: iter_type 26201: put(iter_type __s, ios_base& __io, char_type __fill, 26201: long double __v) const 26201: { return this->do_put(__s, __io, __fill, __v); } 26201: # 2461 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: iter_type 26201: put(iter_type __s, ios_base& __io, char_type __fill, 26201: const void* __v) const 26201: { return this->do_put(__s, __io, __fill, __v); } 26201: 26201: protected: 26201: template 26201: iter_type 26201: _M_insert_float(iter_type, ios_base& __io, char_type __fill, 26201: char __mod, _ValueT __v) const; 26201: 26201: void 26201: _M_group_float(const char* __grouping, size_t __grouping_size, 26201: char_type __sep, const char_type* __p, char_type* __new, 26201: char_type* __cs, int& __len) const; 26201: 26201: template 26201: iter_type 26201: _M_insert_int(iter_type, ios_base& __io, char_type __fill, 26201: _ValueT __v) const; 26201: 26201: void 26201: _M_group_int(const char* __grouping, size_t __grouping_size, 26201: char_type __sep, ios_base& __io, char_type* __new, 26201: char_type* __cs, int& __len) const; 26201: 26201: void 26201: _M_pad(char_type __fill, streamsize __w, ios_base& __io, 26201: char_type* __new, const char_type* __cs, int& __len) const; 26201: 26201: 26201: virtual 26201: ~num_put() { } 26201: # 2509 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 3 26201: virtual iter_type 26201: do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const; 26201: 26201: virtual iter_type 26201: do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const 26201: { return _M_insert_int(__s, __io, __fill, __v); } 26201: 26201: virtual iter_type 26201: do_put(iter_type __s, ios_base& __io, char_type __fill, 26201: unsigned long __v) const 26201: { return _M_insert_int(__s, __io, __fill, __v); } 26201: 26201: 26201: virtual iter_type 26201: do_put(iter_type __s, ios_base& __io, char_type __fill, 26201: long long __v) const 26201: { return _M_insert_int(__s, __io, __fill, __v); } 26201: 26201: virtual iter_type 26201: do_put(iter_type __s, ios_base& __io, char_type __fill, 26201: unsigned long long __v) const 26201: { return _M_insert_int(__s, __io, __fill, __v); } 26201: 26201: 26201: virtual iter_type 26201: do_put(iter_type, ios_base&, char_type, double) const; 26201: 26201: 26201: 26201: 26201: 26201: 26201: virtual iter_type 26201: do_put(iter_type, ios_base&, char_type, long double) const; 26201: 26201: 26201: virtual iter_type 26201: do_put(iter_type, ios_base&, char_type, const void*) const; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: }; 26201: 26201: template 26201: locale::id num_put<_CharT, _OutIter>::id; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline bool 26201: isspace(_CharT __c, const locale& __loc) 26201: { return use_facet >(__loc).is(ctype_base::space, __c); } 26201: 26201: 26201: template 26201: inline bool 26201: isprint(_CharT __c, const locale& __loc) 26201: { return use_facet >(__loc).is(ctype_base::print, __c); } 26201: 26201: 26201: template 26201: inline bool 26201: iscntrl(_CharT __c, const locale& __loc) 26201: { return use_facet >(__loc).is(ctype_base::cntrl, __c); } 26201: 26201: 26201: template 26201: inline bool 26201: isupper(_CharT __c, const locale& __loc) 26201: { return use_facet >(__loc).is(ctype_base::upper, __c); } 26201: 26201: 26201: template 26201: inline bool 26201: islower(_CharT __c, const locale& __loc) 26201: { return use_facet >(__loc).is(ctype_base::lower, __c); } 26201: 26201: 26201: template 26201: inline bool 26201: isalpha(_CharT __c, const locale& __loc) 26201: { return use_facet >(__loc).is(ctype_base::alpha, __c); } 26201: 26201: 26201: template 26201: inline bool 26201: isdigit(_CharT __c, const locale& __loc) 26201: { return use_facet >(__loc).is(ctype_base::digit, __c); } 26201: 26201: 26201: template 26201: inline bool 26201: ispunct(_CharT __c, const locale& __loc) 26201: { return use_facet >(__loc).is(ctype_base::punct, __c); } 26201: 26201: 26201: template 26201: inline bool 26201: isxdigit(_CharT __c, const locale& __loc) 26201: { return use_facet >(__loc).is(ctype_base::xdigit, __c); } 26201: 26201: 26201: template 26201: inline bool 26201: isalnum(_CharT __c, const locale& __loc) 26201: { return use_facet >(__loc).is(ctype_base::alnum, __c); } 26201: 26201: 26201: template 26201: inline bool 26201: isgraph(_CharT __c, const locale& __loc) 26201: { return use_facet >(__loc).is(ctype_base::graph, __c); } 26201: 26201: 26201: 26201: template 26201: inline bool 26201: isblank(_CharT __c, const locale& __loc) 26201: { return use_facet >(__loc).is(ctype_base::blank, __c); } 26201: 26201: 26201: 26201: template 26201: inline _CharT 26201: toupper(_CharT __c, const locale& __loc) 26201: { return use_facet >(__loc).toupper(__c); } 26201: 26201: 26201: template 26201: inline _CharT 26201: tolower(_CharT __c, const locale& __loc) 26201: { return use_facet >(__loc).tolower(__c); } 26201: 26201: 26201: } 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.tcc" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.tcc" 3 26201: #define _LOCALE_FACETS_TCC 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.tcc" 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: template 26201: struct __use_cache 26201: { 26201: const _Facet* 26201: operator() (const locale& __loc) const; 26201: }; 26201: 26201: 26201: template 26201: struct __use_cache<__numpunct_cache<_CharT> > 26201: { 26201: const __numpunct_cache<_CharT>* 26201: operator() (const locale& __loc) const 26201: { 26201: const size_t __i = numpunct<_CharT>::id._M_id(); 26201: const locale::facet** __caches = __loc._M_impl->_M_caches; 26201: if (!__caches[__i]) 26201: { 26201: __numpunct_cache<_CharT>* __tmp = 0; 26201: try 26201: { 26201: __tmp = new __numpunct_cache<_CharT>; 26201: __tmp->_M_cache(__loc); 26201: } 26201: catch(...) 26201: { 26201: delete __tmp; 26201: throw; 26201: } 26201: __loc._M_impl->_M_install_cache(__tmp, __i); 26201: } 26201: return static_cast*>(__caches[__i]); 26201: } 26201: }; 26201: 26201: template 26201: void 26201: __numpunct_cache<_CharT>::_M_cache(const locale& __loc) 26201: { 26201: const numpunct<_CharT>& __np = use_facet >(__loc); 26201: 26201: char* __grouping = 0; 26201: _CharT* __truename = 0; 26201: _CharT* __falsename = 0; 26201: try 26201: { 26201: const string& __g = __np.grouping(); 26201: _M_grouping_size = __g.size(); 26201: __grouping = new char[_M_grouping_size]; 26201: __g.copy(__grouping, _M_grouping_size); 26201: _M_use_grouping = (_M_grouping_size 26201: && static_cast(__grouping[0]) > 0 26201: && (__grouping[0] 26201: != __gnu_cxx::__numeric_traits::__max)); 26201: 26201: const basic_string<_CharT>& __tn = __np.truename(); 26201: _M_truename_size = __tn.size(); 26201: __truename = new _CharT[_M_truename_size]; 26201: __tn.copy(__truename, _M_truename_size); 26201: 26201: const basic_string<_CharT>& __fn = __np.falsename(); 26201: _M_falsename_size = __fn.size(); 26201: __falsename = new _CharT[_M_falsename_size]; 26201: __fn.copy(__falsename, _M_falsename_size); 26201: 26201: _M_decimal_point = __np.decimal_point(); 26201: _M_thousands_sep = __np.thousands_sep(); 26201: 26201: const ctype<_CharT>& __ct = use_facet >(__loc); 26201: __ct.widen(__num_base::_S_atoms_out, 26201: __num_base::_S_atoms_out 26201: + __num_base::_S_oend, _M_atoms_out); 26201: __ct.widen(__num_base::_S_atoms_in, 26201: __num_base::_S_atoms_in 26201: + __num_base::_S_iend, _M_atoms_in); 26201: 26201: _M_grouping = __grouping; 26201: _M_truename = __truename; 26201: _M_falsename = __falsename; 26201: _M_allocated = true; 26201: } 26201: catch(...) 26201: { 26201: delete [] __grouping; 26201: delete [] __truename; 26201: delete [] __falsename; 26201: throw; 26201: } 26201: } 26201: # 139 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.tcc" 3 26201: __attribute__ ((__pure__)) bool 26201: __verify_grouping(const char* __grouping, size_t __grouping_size, 26201: const string& __grouping_tmp) throw (); 26201: 26201: 26201: 26201: template 26201: __attribute ((__abi_tag__ ("cxx11"))) 26201: _InIter 26201: num_get<_CharT, _InIter>:: 26201: _M_extract_float(_InIter __beg, _InIter __end, ios_base& __io, 26201: ios_base::iostate& __err, string& __xtrc) const 26201: { 26201: typedef char_traits<_CharT> __traits_type; 26201: typedef __numpunct_cache<_CharT> __cache_type; 26201: __use_cache<__cache_type> __uc; 26201: const locale& __loc = __io._M_getloc(); 26201: const __cache_type* __lc = __uc(__loc); 26201: const _CharT* __lit = __lc->_M_atoms_in; 26201: char_type __c = char_type(); 26201: 26201: 26201: bool __testeof = __beg == __end; 26201: 26201: 26201: if (!__testeof) 26201: { 26201: __c = *__beg; 26201: const bool __plus = __c == __lit[__num_base::_S_iplus]; 26201: if ((__plus || __c == __lit[__num_base::_S_iminus]) 26201: && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 26201: && !(__c == __lc->_M_decimal_point)) 26201: { 26201: __xtrc += __plus ? '+' : '-'; 26201: if (++__beg != __end) 26201: __c = *__beg; 26201: else 26201: __testeof = true; 26201: } 26201: } 26201: 26201: 26201: bool __found_mantissa = false; 26201: int __sep_pos = 0; 26201: while (!__testeof) 26201: { 26201: if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 26201: || __c == __lc->_M_decimal_point) 26201: break; 26201: else if (__c == __lit[__num_base::_S_izero]) 26201: { 26201: if (!__found_mantissa) 26201: { 26201: __xtrc += '0'; 26201: __found_mantissa = true; 26201: } 26201: ++__sep_pos; 26201: 26201: if (++__beg != __end) 26201: __c = *__beg; 26201: else 26201: __testeof = true; 26201: } 26201: else 26201: break; 26201: } 26201: 26201: 26201: bool __found_dec = false; 26201: bool __found_sci = false; 26201: string __found_grouping; 26201: if (__lc->_M_use_grouping) 26201: __found_grouping.reserve(32); 26201: const char_type* __lit_zero = __lit + __num_base::_S_izero; 26201: 26201: if (!__lc->_M_allocated) 26201: 26201: while (!__testeof) 26201: { 26201: const int __digit = _M_find(__lit_zero, 10, __c); 26201: if (__digit != -1) 26201: { 26201: __xtrc += '0' + __digit; 26201: __found_mantissa = true; 26201: } 26201: else if (__c == __lc->_M_decimal_point 26201: && !__found_dec && !__found_sci) 26201: { 26201: __xtrc += '.'; 26201: __found_dec = true; 26201: } 26201: else if ((__c == __lit[__num_base::_S_ie] 26201: || __c == __lit[__num_base::_S_iE]) 26201: && !__found_sci && __found_mantissa) 26201: { 26201: 26201: __xtrc += 'e'; 26201: __found_sci = true; 26201: 26201: 26201: if (++__beg != __end) 26201: { 26201: __c = *__beg; 26201: const bool __plus = __c == __lit[__num_base::_S_iplus]; 26201: if (__plus || __c == __lit[__num_base::_S_iminus]) 26201: __xtrc += __plus ? '+' : '-'; 26201: else 26201: continue; 26201: } 26201: else 26201: { 26201: __testeof = true; 26201: break; 26201: } 26201: } 26201: else 26201: break; 26201: 26201: if (++__beg != __end) 26201: __c = *__beg; 26201: else 26201: __testeof = true; 26201: } 26201: else 26201: while (!__testeof) 26201: { 26201: 26201: 26201: if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 26201: { 26201: if (!__found_dec && !__found_sci) 26201: { 26201: 26201: 26201: if (__sep_pos) 26201: { 26201: __found_grouping += static_cast(__sep_pos); 26201: __sep_pos = 0; 26201: } 26201: else 26201: { 26201: 26201: 26201: __xtrc.clear(); 26201: break; 26201: } 26201: } 26201: else 26201: break; 26201: } 26201: else if (__c == __lc->_M_decimal_point) 26201: { 26201: if (!__found_dec && !__found_sci) 26201: { 26201: 26201: 26201: 26201: if (__found_grouping.size()) 26201: __found_grouping += static_cast(__sep_pos); 26201: __xtrc += '.'; 26201: __found_dec = true; 26201: } 26201: else 26201: break; 26201: } 26201: else 26201: { 26201: const char_type* __q = 26201: __traits_type::find(__lit_zero, 10, __c); 26201: if (__q) 26201: { 26201: __xtrc += '0' + (__q - __lit_zero); 26201: __found_mantissa = true; 26201: ++__sep_pos; 26201: } 26201: else if ((__c == __lit[__num_base::_S_ie] 26201: || __c == __lit[__num_base::_S_iE]) 26201: && !__found_sci && __found_mantissa) 26201: { 26201: 26201: if (__found_grouping.size() && !__found_dec) 26201: __found_grouping += static_cast(__sep_pos); 26201: __xtrc += 'e'; 26201: __found_sci = true; 26201: 26201: 26201: if (++__beg != __end) 26201: { 26201: __c = *__beg; 26201: const bool __plus = __c == __lit[__num_base::_S_iplus]; 26201: if ((__plus || __c == __lit[__num_base::_S_iminus]) 26201: && !(__lc->_M_use_grouping 26201: && __c == __lc->_M_thousands_sep) 26201: && !(__c == __lc->_M_decimal_point)) 26201: __xtrc += __plus ? '+' : '-'; 26201: else 26201: continue; 26201: } 26201: else 26201: { 26201: __testeof = true; 26201: break; 26201: } 26201: } 26201: else 26201: break; 26201: } 26201: 26201: if (++__beg != __end) 26201: __c = *__beg; 26201: else 26201: __testeof = true; 26201: } 26201: 26201: 26201: 26201: if (__found_grouping.size()) 26201: { 26201: 26201: if (!__found_dec && !__found_sci) 26201: __found_grouping += static_cast(__sep_pos); 26201: 26201: if (!std::__verify_grouping(__lc->_M_grouping, 26201: __lc->_M_grouping_size, 26201: __found_grouping)) 26201: __err = ios_base::failbit; 26201: } 26201: 26201: return __beg; 26201: } 26201: 26201: template 26201: template 26201: __attribute ((__abi_tag__ ("cxx11"))) 26201: _InIter 26201: num_get<_CharT, _InIter>:: 26201: _M_extract_int(_InIter __beg, _InIter __end, ios_base& __io, 26201: ios_base::iostate& __err, _ValueT& __v) const 26201: { 26201: typedef char_traits<_CharT> __traits_type; 26201: using __gnu_cxx::__add_unsigned; 26201: typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; 26201: typedef __numpunct_cache<_CharT> __cache_type; 26201: __use_cache<__cache_type> __uc; 26201: const locale& __loc = __io._M_getloc(); 26201: const __cache_type* __lc = __uc(__loc); 26201: const _CharT* __lit = __lc->_M_atoms_in; 26201: char_type __c = char_type(); 26201: 26201: 26201: const ios_base::fmtflags __basefield = __io.flags() 26201: & ios_base::basefield; 26201: const bool __oct = __basefield == ios_base::oct; 26201: int __base = __oct ? 8 : (__basefield == ios_base::hex ? 16 : 10); 26201: 26201: 26201: bool __testeof = __beg == __end; 26201: 26201: 26201: bool __negative = false; 26201: if (!__testeof) 26201: { 26201: __c = *__beg; 26201: __negative = __c == __lit[__num_base::_S_iminus]; 26201: if ((__negative || __c == __lit[__num_base::_S_iplus]) 26201: && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 26201: && !(__c == __lc->_M_decimal_point)) 26201: { 26201: if (++__beg != __end) 26201: __c = *__beg; 26201: else 26201: __testeof = true; 26201: } 26201: } 26201: 26201: 26201: 26201: bool __found_zero = false; 26201: int __sep_pos = 0; 26201: while (!__testeof) 26201: { 26201: if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 26201: || __c == __lc->_M_decimal_point) 26201: break; 26201: else if (__c == __lit[__num_base::_S_izero] 26201: && (!__found_zero || __base == 10)) 26201: { 26201: __found_zero = true; 26201: ++__sep_pos; 26201: if (__basefield == 0) 26201: __base = 8; 26201: if (__base == 8) 26201: __sep_pos = 0; 26201: } 26201: else if (__found_zero 26201: && (__c == __lit[__num_base::_S_ix] 26201: || __c == __lit[__num_base::_S_iX])) 26201: { 26201: if (__basefield == 0) 26201: __base = 16; 26201: if (__base == 16) 26201: { 26201: __found_zero = false; 26201: __sep_pos = 0; 26201: } 26201: else 26201: break; 26201: } 26201: else 26201: break; 26201: 26201: if (++__beg != __end) 26201: { 26201: __c = *__beg; 26201: if (!__found_zero) 26201: break; 26201: } 26201: else 26201: __testeof = true; 26201: } 26201: 26201: 26201: 26201: const size_t __len = (__base == 16 ? __num_base::_S_iend 26201: - __num_base::_S_izero : __base); 26201: 26201: 26201: typedef __gnu_cxx::__numeric_traits<_ValueT> __num_traits; 26201: string __found_grouping; 26201: if (__lc->_M_use_grouping) 26201: __found_grouping.reserve(32); 26201: bool __testfail = false; 26201: bool __testoverflow = false; 26201: const __unsigned_type __max = 26201: (__negative && __num_traits::__is_signed) 26201: ? -static_cast<__unsigned_type>(__num_traits::__min) 26201: : __num_traits::__max; 26201: const __unsigned_type __smax = __max / __base; 26201: __unsigned_type __result = 0; 26201: int __digit = 0; 26201: const char_type* __lit_zero = __lit + __num_base::_S_izero; 26201: 26201: if (!__lc->_M_allocated) 26201: 26201: while (!__testeof) 26201: { 26201: __digit = _M_find(__lit_zero, __len, __c); 26201: if (__digit == -1) 26201: break; 26201: 26201: if (__result > __smax) 26201: __testoverflow = true; 26201: else 26201: { 26201: __result *= __base; 26201: __testoverflow |= __result > __max - __digit; 26201: __result += __digit; 26201: ++__sep_pos; 26201: } 26201: 26201: if (++__beg != __end) 26201: __c = *__beg; 26201: else 26201: __testeof = true; 26201: } 26201: else 26201: while (!__testeof) 26201: { 26201: 26201: 26201: if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 26201: { 26201: 26201: 26201: if (__sep_pos) 26201: { 26201: __found_grouping += static_cast(__sep_pos); 26201: __sep_pos = 0; 26201: } 26201: else 26201: { 26201: __testfail = true; 26201: break; 26201: } 26201: } 26201: else if (__c == __lc->_M_decimal_point) 26201: break; 26201: else 26201: { 26201: const char_type* __q = 26201: __traits_type::find(__lit_zero, __len, __c); 26201: if (!__q) 26201: break; 26201: 26201: __digit = __q - __lit_zero; 26201: if (__digit > 15) 26201: __digit -= 6; 26201: if (__result > __smax) 26201: __testoverflow = true; 26201: else 26201: { 26201: __result *= __base; 26201: __testoverflow |= __result > __max - __digit; 26201: __result += __digit; 26201: ++__sep_pos; 26201: } 26201: } 26201: 26201: if (++__beg != __end) 26201: __c = *__beg; 26201: else 26201: __testeof = true; 26201: } 26201: 26201: 26201: 26201: if (__found_grouping.size()) 26201: { 26201: 26201: __found_grouping += static_cast(__sep_pos); 26201: 26201: if (!std::__verify_grouping(__lc->_M_grouping, 26201: __lc->_M_grouping_size, 26201: __found_grouping)) 26201: __err = ios_base::failbit; 26201: } 26201: 26201: 26201: 26201: if ((!__sep_pos && !__found_zero && !__found_grouping.size()) 26201: || __testfail) 26201: { 26201: __v = 0; 26201: __err = ios_base::failbit; 26201: } 26201: else if (__testoverflow) 26201: { 26201: if (__negative && __num_traits::__is_signed) 26201: __v = __num_traits::__min; 26201: else 26201: __v = __num_traits::__max; 26201: __err = ios_base::failbit; 26201: } 26201: else 26201: __v = __negative ? -__result : __result; 26201: 26201: if (__testeof) 26201: __err |= ios_base::eofbit; 26201: return __beg; 26201: } 26201: 26201: 26201: 26201: template 26201: _InIter 26201: num_get<_CharT, _InIter>:: 26201: do_get(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, bool& __v) const 26201: { 26201: if (!(__io.flags() & ios_base::boolalpha)) 26201: { 26201: 26201: 26201: 26201: long __l = -1; 26201: __beg = _M_extract_int(__beg, __end, __io, __err, __l); 26201: if (__l == 0 || __l == 1) 26201: __v = bool(__l); 26201: else 26201: { 26201: 26201: 26201: __v = true; 26201: __err = ios_base::failbit; 26201: if (__beg == __end) 26201: __err |= ios_base::eofbit; 26201: } 26201: } 26201: else 26201: { 26201: 26201: typedef __numpunct_cache<_CharT> __cache_type; 26201: __use_cache<__cache_type> __uc; 26201: const locale& __loc = __io._M_getloc(); 26201: const __cache_type* __lc = __uc(__loc); 26201: 26201: bool __testf = true; 26201: bool __testt = true; 26201: bool __donef = __lc->_M_falsename_size == 0; 26201: bool __donet = __lc->_M_truename_size == 0; 26201: bool __testeof = false; 26201: size_t __n = 0; 26201: while (!__donef || !__donet) 26201: { 26201: if (__beg == __end) 26201: { 26201: __testeof = true; 26201: break; 26201: } 26201: 26201: const char_type __c = *__beg; 26201: 26201: if (!__donef) 26201: __testf = __c == __lc->_M_falsename[__n]; 26201: 26201: if (!__testf && __donet) 26201: break; 26201: 26201: if (!__donet) 26201: __testt = __c == __lc->_M_truename[__n]; 26201: 26201: if (!__testt && __donef) 26201: break; 26201: 26201: if (!__testt && !__testf) 26201: break; 26201: 26201: ++__n; 26201: ++__beg; 26201: 26201: __donef = !__testf || __n >= __lc->_M_falsename_size; 26201: __donet = !__testt || __n >= __lc->_M_truename_size; 26201: } 26201: if (__testf && __n == __lc->_M_falsename_size && __n) 26201: { 26201: __v = false; 26201: if (__testt && __n == __lc->_M_truename_size) 26201: __err = ios_base::failbit; 26201: else 26201: __err = __testeof ? ios_base::eofbit : ios_base::goodbit; 26201: } 26201: else if (__testt && __n == __lc->_M_truename_size && __n) 26201: { 26201: __v = true; 26201: __err = __testeof ? ios_base::eofbit : ios_base::goodbit; 26201: } 26201: else 26201: { 26201: 26201: 26201: __v = false; 26201: __err = ios_base::failbit; 26201: if (__testeof) 26201: __err |= ios_base::eofbit; 26201: } 26201: } 26201: return __beg; 26201: } 26201: 26201: template 26201: _InIter 26201: num_get<_CharT, _InIter>:: 26201: do_get(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, float& __v) const 26201: { 26201: string __xtrc; 26201: __xtrc.reserve(32); 26201: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 26201: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 26201: if (__beg == __end) 26201: __err |= ios_base::eofbit; 26201: return __beg; 26201: } 26201: 26201: template 26201: _InIter 26201: num_get<_CharT, _InIter>:: 26201: do_get(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, double& __v) const 26201: { 26201: string __xtrc; 26201: __xtrc.reserve(32); 26201: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 26201: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 26201: if (__beg == __end) 26201: __err |= ios_base::eofbit; 26201: return __beg; 26201: } 26201: # 735 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.tcc" 3 26201: template 26201: _InIter 26201: num_get<_CharT, _InIter>:: 26201: do_get(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, long double& __v) const 26201: { 26201: string __xtrc; 26201: __xtrc.reserve(32); 26201: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 26201: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 26201: if (__beg == __end) 26201: __err |= ios_base::eofbit; 26201: return __beg; 26201: } 26201: 26201: template 26201: _InIter 26201: num_get<_CharT, _InIter>:: 26201: do_get(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, void*& __v) const 26201: { 26201: 26201: typedef ios_base::fmtflags fmtflags; 26201: const fmtflags __fmt = __io.flags(); 26201: __io.flags((__fmt & ~ios_base::basefield) | ios_base::hex); 26201: 26201: typedef __gnu_cxx::__conditional_type<(sizeof(void*) 26201: <= sizeof(unsigned long)), 26201: unsigned long, unsigned long long>::__type _UIntPtrType; 26201: 26201: _UIntPtrType __ul; 26201: __beg = _M_extract_int(__beg, __end, __io, __err, __ul); 26201: 26201: 26201: __io.flags(__fmt); 26201: 26201: __v = reinterpret_cast(__ul); 26201: return __beg; 26201: } 26201: 26201: 26201: 26201: template 26201: void 26201: num_put<_CharT, _OutIter>:: 26201: _M_pad(_CharT __fill, streamsize __w, ios_base& __io, 26201: _CharT* __new, const _CharT* __cs, int& __len) const 26201: { 26201: 26201: 26201: __pad<_CharT, char_traits<_CharT> >::_S_pad(__io, __fill, __new, 26201: __cs, __w, __len); 26201: __len = static_cast(__w); 26201: } 26201: 26201: 26201: 26201: template 26201: int 26201: __int_to_char(_CharT* __bufend, _ValueT __v, const _CharT* __lit, 26201: ios_base::fmtflags __flags, bool __dec) 26201: { 26201: _CharT* __buf = __bufend; 26201: if (__builtin_expect(__dec, true)) 26201: { 26201: 26201: do 26201: { 26201: *--__buf = __lit[(__v % 10) + __num_base::_S_odigits]; 26201: __v /= 10; 26201: } 26201: while (__v != 0); 26201: } 26201: else if ((__flags & ios_base::basefield) == ios_base::oct) 26201: { 26201: 26201: do 26201: { 26201: *--__buf = __lit[(__v & 0x7) + __num_base::_S_odigits]; 26201: __v >>= 3; 26201: } 26201: while (__v != 0); 26201: } 26201: else 26201: { 26201: 26201: const bool __uppercase = __flags & ios_base::uppercase; 26201: const int __case_offset = __uppercase ? __num_base::_S_oudigits 26201: : __num_base::_S_odigits; 26201: do 26201: { 26201: *--__buf = __lit[(__v & 0xf) + __case_offset]; 26201: __v >>= 4; 26201: } 26201: while (__v != 0); 26201: } 26201: return __bufend - __buf; 26201: } 26201: 26201: 26201: 26201: template 26201: void 26201: num_put<_CharT, _OutIter>:: 26201: _M_group_int(const char* __grouping, size_t __grouping_size, _CharT __sep, 26201: ios_base&, _CharT* __new, _CharT* __cs, int& __len) const 26201: { 26201: _CharT* __p = std::__add_grouping(__new, __sep, __grouping, 26201: __grouping_size, __cs, __cs + __len); 26201: __len = __p - __new; 26201: } 26201: 26201: template 26201: template 26201: _OutIter 26201: num_put<_CharT, _OutIter>:: 26201: _M_insert_int(_OutIter __s, ios_base& __io, _CharT __fill, 26201: _ValueT __v) const 26201: { 26201: using __gnu_cxx::__add_unsigned; 26201: typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; 26201: typedef __numpunct_cache<_CharT> __cache_type; 26201: __use_cache<__cache_type> __uc; 26201: const locale& __loc = __io._M_getloc(); 26201: const __cache_type* __lc = __uc(__loc); 26201: const _CharT* __lit = __lc->_M_atoms_out; 26201: const ios_base::fmtflags __flags = __io.flags(); 26201: 26201: 26201: const int __ilen = 5 * sizeof(_ValueT); 26201: _CharT* __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 26201: * __ilen)); 26201: 26201: 26201: 26201: const ios_base::fmtflags __basefield = __flags & ios_base::basefield; 26201: const bool __dec = (__basefield != ios_base::oct 26201: && __basefield != ios_base::hex); 26201: const __unsigned_type __u = ((__v > 0 || !__dec) 26201: ? __unsigned_type(__v) 26201: : -__unsigned_type(__v)); 26201: int __len = __int_to_char(__cs + __ilen, __u, __lit, __flags, __dec); 26201: __cs += __ilen - __len; 26201: 26201: 26201: if (__lc->_M_use_grouping) 26201: { 26201: 26201: 26201: _CharT* __cs2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 26201: * (__len + 1) 26201: * 2)); 26201: _M_group_int(__lc->_M_grouping, __lc->_M_grouping_size, 26201: __lc->_M_thousands_sep, __io, __cs2 + 2, __cs, __len); 26201: __cs = __cs2 + 2; 26201: } 26201: 26201: 26201: if (__builtin_expect(__dec, true)) 26201: { 26201: 26201: if (__v >= 0) 26201: { 26201: if (bool(__flags & ios_base::showpos) 26201: && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed) 26201: *--__cs = __lit[__num_base::_S_oplus], ++__len; 26201: } 26201: else 26201: *--__cs = __lit[__num_base::_S_ominus], ++__len; 26201: } 26201: else if (bool(__flags & ios_base::showbase) && __v) 26201: { 26201: if (__basefield == ios_base::oct) 26201: *--__cs = __lit[__num_base::_S_odigits], ++__len; 26201: else 26201: { 26201: 26201: const bool __uppercase = __flags & ios_base::uppercase; 26201: *--__cs = __lit[__num_base::_S_ox + __uppercase]; 26201: 26201: *--__cs = __lit[__num_base::_S_odigits]; 26201: __len += 2; 26201: } 26201: } 26201: 26201: 26201: const streamsize __w = __io.width(); 26201: if (__w > static_cast(__len)) 26201: { 26201: _CharT* __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 26201: * __w)); 26201: _M_pad(__fill, __w, __io, __cs3, __cs, __len); 26201: __cs = __cs3; 26201: } 26201: __io.width(0); 26201: 26201: 26201: 26201: return std::__write(__s, __cs, __len); 26201: } 26201: 26201: template 26201: void 26201: num_put<_CharT, _OutIter>:: 26201: _M_group_float(const char* __grouping, size_t __grouping_size, 26201: _CharT __sep, const _CharT* __p, _CharT* __new, 26201: _CharT* __cs, int& __len) const 26201: { 26201: 26201: 26201: 26201: const int __declen = __p ? __p - __cs : __len; 26201: _CharT* __p2 = std::__add_grouping(__new, __sep, __grouping, 26201: __grouping_size, 26201: __cs, __cs + __declen); 26201: 26201: 26201: int __newlen = __p2 - __new; 26201: if (__p) 26201: { 26201: char_traits<_CharT>::copy(__p2, __p, __len - __declen); 26201: __newlen += __len - __declen; 26201: } 26201: __len = __newlen; 26201: } 26201: # 971 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.tcc" 3 26201: template 26201: template 26201: _OutIter 26201: num_put<_CharT, _OutIter>:: 26201: _M_insert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod, 26201: _ValueT __v) const 26201: { 26201: typedef __numpunct_cache<_CharT> __cache_type; 26201: __use_cache<__cache_type> __uc; 26201: const locale& __loc = __io._M_getloc(); 26201: const __cache_type* __lc = __uc(__loc); 26201: 26201: 26201: const streamsize __prec = __io.precision() < 0 ? 6 : __io.precision(); 26201: 26201: const int __max_digits = 26201: __gnu_cxx::__numeric_traits<_ValueT>::__digits10; 26201: 26201: 26201: int __len; 26201: 26201: char __fbuf[16]; 26201: __num_base::_S_format_float(__io, __fbuf, __mod); 26201: 26201: 26201: 26201: const bool __use_prec = 26201: (__io.flags() & ios_base::floatfield) != ios_base::floatfield; 26201: 26201: 26201: 26201: int __cs_size = __max_digits * 3; 26201: char* __cs = static_cast(__builtin_alloca(__cs_size)); 26201: if (__use_prec) 26201: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 26201: __fbuf, __prec, __v); 26201: else 26201: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 26201: __fbuf, __v); 26201: 26201: 26201: if (__len >= __cs_size) 26201: { 26201: __cs_size = __len + 1; 26201: __cs = static_cast(__builtin_alloca(__cs_size)); 26201: if (__use_prec) 26201: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 26201: __fbuf, __prec, __v); 26201: else 26201: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 26201: __fbuf, __v); 26201: } 26201: # 1044 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.tcc" 3 26201: const ctype<_CharT>& __ctype = use_facet >(__loc); 26201: 26201: _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 26201: * __len)); 26201: __ctype.widen(__cs, __cs + __len, __ws); 26201: 26201: 26201: _CharT* __wp = 0; 26201: const char* __p = char_traits::find(__cs, __len, '.'); 26201: if (__p) 26201: { 26201: __wp = __ws + (__p - __cs); 26201: *__wp = __lc->_M_decimal_point; 26201: } 26201: 26201: 26201: 26201: 26201: if (__lc->_M_use_grouping 26201: && (__wp || __len < 3 || (__cs[1] <= '9' && __cs[2] <= '9' 26201: && __cs[1] >= '0' && __cs[2] >= '0'))) 26201: { 26201: 26201: 26201: _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 26201: * __len * 2)); 26201: 26201: streamsize __off = 0; 26201: if (__cs[0] == '-' || __cs[0] == '+') 26201: { 26201: __off = 1; 26201: __ws2[0] = __ws[0]; 26201: __len -= 1; 26201: } 26201: 26201: _M_group_float(__lc->_M_grouping, __lc->_M_grouping_size, 26201: __lc->_M_thousands_sep, __wp, __ws2 + __off, 26201: __ws + __off, __len); 26201: __len += __off; 26201: 26201: __ws = __ws2; 26201: } 26201: 26201: 26201: const streamsize __w = __io.width(); 26201: if (__w > static_cast(__len)) 26201: { 26201: _CharT* __ws3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 26201: * __w)); 26201: _M_pad(__fill, __w, __io, __ws3, __ws, __len); 26201: __ws = __ws3; 26201: } 26201: __io.width(0); 26201: 26201: 26201: 26201: return std::__write(__s, __ws, __len); 26201: } 26201: 26201: template 26201: _OutIter 26201: num_put<_CharT, _OutIter>:: 26201: do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const 26201: { 26201: const ios_base::fmtflags __flags = __io.flags(); 26201: if ((__flags & ios_base::boolalpha) == 0) 26201: { 26201: const long __l = __v; 26201: __s = _M_insert_int(__s, __io, __fill, __l); 26201: } 26201: else 26201: { 26201: typedef __numpunct_cache<_CharT> __cache_type; 26201: __use_cache<__cache_type> __uc; 26201: const locale& __loc = __io._M_getloc(); 26201: const __cache_type* __lc = __uc(__loc); 26201: 26201: const _CharT* __name = __v ? __lc->_M_truename 26201: : __lc->_M_falsename; 26201: int __len = __v ? __lc->_M_truename_size 26201: : __lc->_M_falsename_size; 26201: 26201: const streamsize __w = __io.width(); 26201: if (__w > static_cast(__len)) 26201: { 26201: const streamsize __plen = __w - __len; 26201: _CharT* __ps 26201: = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 26201: * __plen)); 26201: 26201: char_traits<_CharT>::assign(__ps, __plen, __fill); 26201: __io.width(0); 26201: 26201: if ((__flags & ios_base::adjustfield) == ios_base::left) 26201: { 26201: __s = std::__write(__s, __name, __len); 26201: __s = std::__write(__s, __ps, __plen); 26201: } 26201: else 26201: { 26201: __s = std::__write(__s, __ps, __plen); 26201: __s = std::__write(__s, __name, __len); 26201: } 26201: return __s; 26201: } 26201: __io.width(0); 26201: __s = std::__write(__s, __name, __len); 26201: } 26201: return __s; 26201: } 26201: 26201: template 26201: _OutIter 26201: num_put<_CharT, _OutIter>:: 26201: do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const 26201: { return _M_insert_float(__s, __io, __fill, char(), __v); } 26201: # 1169 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.tcc" 3 26201: template 26201: _OutIter 26201: num_put<_CharT, _OutIter>:: 26201: do_put(iter_type __s, ios_base& __io, char_type __fill, 26201: long double __v) const 26201: { return _M_insert_float(__s, __io, __fill, 'L', __v); } 26201: 26201: template 26201: _OutIter 26201: num_put<_CharT, _OutIter>:: 26201: do_put(iter_type __s, ios_base& __io, char_type __fill, 26201: const void* __v) const 26201: { 26201: const ios_base::fmtflags __flags = __io.flags(); 26201: const ios_base::fmtflags __fmt = ~(ios_base::basefield 26201: | ios_base::uppercase); 26201: __io.flags((__flags & __fmt) | (ios_base::hex | ios_base::showbase)); 26201: 26201: typedef __gnu_cxx::__conditional_type<(sizeof(const void*) 26201: <= sizeof(unsigned long)), 26201: unsigned long, unsigned long long>::__type _UIntPtrType; 26201: 26201: __s = _M_insert_int(__s, __io, __fill, 26201: reinterpret_cast<_UIntPtrType>(__v)); 26201: __io.flags(__flags); 26201: return __s; 26201: } 26201: 26201: 26201: # 1206 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.tcc" 3 26201: template 26201: void 26201: __pad<_CharT, _Traits>::_S_pad(ios_base& __io, _CharT __fill, 26201: _CharT* __news, const _CharT* __olds, 26201: streamsize __newlen, streamsize __oldlen) 26201: { 26201: const size_t __plen = static_cast(__newlen - __oldlen); 26201: const ios_base::fmtflags __adjust = __io.flags() & ios_base::adjustfield; 26201: 26201: 26201: if (__adjust == ios_base::left) 26201: { 26201: _Traits::copy(__news, __olds, __oldlen); 26201: _Traits::assign(__news + __oldlen, __plen, __fill); 26201: return; 26201: } 26201: 26201: size_t __mod = 0; 26201: if (__adjust == ios_base::internal) 26201: { 26201: 26201: 26201: 26201: const locale& __loc = __io._M_getloc(); 26201: const ctype<_CharT>& __ctype = use_facet >(__loc); 26201: 26201: if (__ctype.widen('-') == __olds[0] 26201: || __ctype.widen('+') == __olds[0]) 26201: { 26201: __news[0] = __olds[0]; 26201: __mod = 1; 26201: ++__news; 26201: } 26201: else if (__ctype.widen('0') == __olds[0] 26201: && __oldlen > 1 26201: && (__ctype.widen('x') == __olds[1] 26201: || __ctype.widen('X') == __olds[1])) 26201: { 26201: __news[0] = __olds[0]; 26201: __news[1] = __olds[1]; 26201: __mod = 2; 26201: __news += 2; 26201: } 26201: 26201: } 26201: _Traits::assign(__news, __plen, __fill); 26201: _Traits::copy(__news + __plen, __olds + __mod, __oldlen - __mod); 26201: } 26201: 26201: template 26201: _CharT* 26201: __add_grouping(_CharT* __s, _CharT __sep, 26201: const char* __gbeg, size_t __gsize, 26201: const _CharT* __first, const _CharT* __last) 26201: { 26201: size_t __idx = 0; 26201: size_t __ctr = 0; 26201: 26201: while (__last - __first > __gbeg[__idx] 26201: && static_cast(__gbeg[__idx]) > 0 26201: && __gbeg[__idx] != __gnu_cxx::__numeric_traits::__max) 26201: { 26201: __last -= __gbeg[__idx]; 26201: __idx < __gsize - 1 ? ++__idx : ++__ctr; 26201: } 26201: 26201: while (__first != __last) 26201: *__s++ = *__first++; 26201: 26201: while (__ctr--) 26201: { 26201: *__s++ = __sep; 26201: for (char __i = __gbeg[__idx]; __i > 0; --__i) 26201: *__s++ = *__first++; 26201: } 26201: 26201: while (__idx--) 26201: { 26201: *__s++ = __sep; 26201: for (char __i = __gbeg[__idx]; __i > 0; --__i) 26201: *__s++ = *__first++; 26201: } 26201: 26201: return __s; 26201: } 26201: 26201: 26201: 26201: 26201: extern template class __cxx11:: numpunct; 26201: extern template class __cxx11:: numpunct_byname; 26201: extern template class num_get; 26201: extern template class num_put; 26201: extern template class ctype_byname; 26201: 26201: extern template 26201: const ctype& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: const numpunct& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: const num_put& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: const num_get& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: 26201: extern template class __cxx11:: numpunct; 26201: extern template class __cxx11:: numpunct_byname; 26201: extern template class num_get; 26201: extern template class num_put; 26201: extern template class ctype_byname; 26201: 26201: extern template 26201: const ctype& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: const numpunct& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: const num_put& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: const num_get& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: 26201: 26201: 26201: } 26201: # 2656 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets.h" 2 3 26201: # 41 "/usr/x86_64-linux-gnu/include/c++/10/locale" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 1 3 26201: # 35 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: #define _LOCALE_FACETS_NONIO_H 1 26201: 26201: 26201: # 38 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/ctime" 1 3 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/ctime" 3 26201: 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/ctime" 3 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 52 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: class time_base 26201: { 26201: public: 26201: enum dateorder { no_order, dmy, mdy, ymd, ydm }; 26201: }; 26201: 26201: template 26201: struct __timepunct_cache : public locale::facet 26201: { 26201: 26201: static const _CharT* _S_timezones[14]; 26201: 26201: const _CharT* _M_date_format; 26201: const _CharT* _M_date_era_format; 26201: const _CharT* _M_time_format; 26201: const _CharT* _M_time_era_format; 26201: const _CharT* _M_date_time_format; 26201: const _CharT* _M_date_time_era_format; 26201: const _CharT* _M_am; 26201: const _CharT* _M_pm; 26201: const _CharT* _M_am_pm_format; 26201: 26201: 26201: const _CharT* _M_day1; 26201: const _CharT* _M_day2; 26201: const _CharT* _M_day3; 26201: const _CharT* _M_day4; 26201: const _CharT* _M_day5; 26201: const _CharT* _M_day6; 26201: const _CharT* _M_day7; 26201: 26201: 26201: const _CharT* _M_aday1; 26201: const _CharT* _M_aday2; 26201: const _CharT* _M_aday3; 26201: const _CharT* _M_aday4; 26201: const _CharT* _M_aday5; 26201: const _CharT* _M_aday6; 26201: const _CharT* _M_aday7; 26201: 26201: 26201: const _CharT* _M_month01; 26201: const _CharT* _M_month02; 26201: const _CharT* _M_month03; 26201: const _CharT* _M_month04; 26201: const _CharT* _M_month05; 26201: const _CharT* _M_month06; 26201: const _CharT* _M_month07; 26201: const _CharT* _M_month08; 26201: const _CharT* _M_month09; 26201: const _CharT* _M_month10; 26201: const _CharT* _M_month11; 26201: const _CharT* _M_month12; 26201: 26201: 26201: const _CharT* _M_amonth01; 26201: const _CharT* _M_amonth02; 26201: const _CharT* _M_amonth03; 26201: const _CharT* _M_amonth04; 26201: const _CharT* _M_amonth05; 26201: const _CharT* _M_amonth06; 26201: const _CharT* _M_amonth07; 26201: const _CharT* _M_amonth08; 26201: const _CharT* _M_amonth09; 26201: const _CharT* _M_amonth10; 26201: const _CharT* _M_amonth11; 26201: const _CharT* _M_amonth12; 26201: 26201: bool _M_allocated; 26201: 26201: __timepunct_cache(size_t __refs = 0) : facet(__refs), 26201: _M_date_format(0), _M_date_era_format(0), _M_time_format(0), 26201: _M_time_era_format(0), _M_date_time_format(0), 26201: _M_date_time_era_format(0), _M_am(0), _M_pm(0), 26201: _M_am_pm_format(0), _M_day1(0), _M_day2(0), _M_day3(0), 26201: _M_day4(0), _M_day5(0), _M_day6(0), _M_day7(0), 26201: _M_aday1(0), _M_aday2(0), _M_aday3(0), _M_aday4(0), 26201: _M_aday5(0), _M_aday6(0), _M_aday7(0), _M_month01(0), 26201: _M_month02(0), _M_month03(0), _M_month04(0), _M_month05(0), 26201: _M_month06(0), _M_month07(0), _M_month08(0), _M_month09(0), 26201: _M_month10(0), _M_month11(0), _M_month12(0), _M_amonth01(0), 26201: _M_amonth02(0), _M_amonth03(0), _M_amonth04(0), 26201: _M_amonth05(0), _M_amonth06(0), _M_amonth07(0), 26201: _M_amonth08(0), _M_amonth09(0), _M_amonth10(0), 26201: _M_amonth11(0), _M_amonth12(0), _M_allocated(false) 26201: { } 26201: 26201: ~__timepunct_cache(); 26201: 26201: private: 26201: __timepunct_cache& 26201: operator=(const __timepunct_cache&); 26201: 26201: explicit 26201: __timepunct_cache(const __timepunct_cache&); 26201: }; 26201: 26201: template 26201: __timepunct_cache<_CharT>::~__timepunct_cache() 26201: { 26201: if (_M_allocated) 26201: { 26201: 26201: } 26201: } 26201: 26201: 26201: template<> 26201: const char* 26201: __timepunct_cache::_S_timezones[14]; 26201: 26201: 26201: template<> 26201: const wchar_t* 26201: __timepunct_cache::_S_timezones[14]; 26201: 26201: 26201: 26201: template 26201: const _CharT* __timepunct_cache<_CharT>::_S_timezones[14]; 26201: 26201: template 26201: class __timepunct : public locale::facet 26201: { 26201: public: 26201: 26201: typedef _CharT __char_type; 26201: typedef __timepunct_cache<_CharT> __cache_type; 26201: 26201: protected: 26201: __cache_type* _M_data; 26201: __c_locale _M_c_locale_timepunct; 26201: const char* _M_name_timepunct; 26201: 26201: public: 26201: 26201: static locale::id id; 26201: 26201: explicit 26201: __timepunct(size_t __refs = 0); 26201: 26201: explicit 26201: __timepunct(__cache_type* __cache, size_t __refs = 0); 26201: # 206 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: explicit 26201: __timepunct(__c_locale __cloc, const char* __s, size_t __refs = 0); 26201: 26201: 26201: 26201: void 26201: _M_put(_CharT* __s, size_t __maxlen, const _CharT* __format, 26201: const tm* __tm) const throw (); 26201: 26201: void 26201: _M_date_formats(const _CharT** __date) const 26201: { 26201: 26201: __date[0] = _M_data->_M_date_format; 26201: __date[1] = _M_data->_M_date_era_format; 26201: } 26201: 26201: void 26201: _M_time_formats(const _CharT** __time) const 26201: { 26201: 26201: __time[0] = _M_data->_M_time_format; 26201: __time[1] = _M_data->_M_time_era_format; 26201: } 26201: 26201: void 26201: _M_date_time_formats(const _CharT** __dt) const 26201: { 26201: 26201: __dt[0] = _M_data->_M_date_time_format; 26201: __dt[1] = _M_data->_M_date_time_era_format; 26201: } 26201: 26201: 26201: void 26201: _M_am_pm_format(const _CharT*) const 26201: { } 26201: 26201: 26201: void 26201: _M_am_pm(const _CharT** __ampm) const 26201: { 26201: __ampm[0] = _M_data->_M_am; 26201: __ampm[1] = _M_data->_M_pm; 26201: } 26201: 26201: void 26201: _M_days(const _CharT** __days) const 26201: { 26201: __days[0] = _M_data->_M_day1; 26201: __days[1] = _M_data->_M_day2; 26201: __days[2] = _M_data->_M_day3; 26201: __days[3] = _M_data->_M_day4; 26201: __days[4] = _M_data->_M_day5; 26201: __days[5] = _M_data->_M_day6; 26201: __days[6] = _M_data->_M_day7; 26201: } 26201: 26201: void 26201: _M_days_abbreviated(const _CharT** __days) const 26201: { 26201: __days[0] = _M_data->_M_aday1; 26201: __days[1] = _M_data->_M_aday2; 26201: __days[2] = _M_data->_M_aday3; 26201: __days[3] = _M_data->_M_aday4; 26201: __days[4] = _M_data->_M_aday5; 26201: __days[5] = _M_data->_M_aday6; 26201: __days[6] = _M_data->_M_aday7; 26201: } 26201: 26201: void 26201: _M_months(const _CharT** __months) const 26201: { 26201: __months[0] = _M_data->_M_month01; 26201: __months[1] = _M_data->_M_month02; 26201: __months[2] = _M_data->_M_month03; 26201: __months[3] = _M_data->_M_month04; 26201: __months[4] = _M_data->_M_month05; 26201: __months[5] = _M_data->_M_month06; 26201: __months[6] = _M_data->_M_month07; 26201: __months[7] = _M_data->_M_month08; 26201: __months[8] = _M_data->_M_month09; 26201: __months[9] = _M_data->_M_month10; 26201: __months[10] = _M_data->_M_month11; 26201: __months[11] = _M_data->_M_month12; 26201: } 26201: 26201: void 26201: _M_months_abbreviated(const _CharT** __months) const 26201: { 26201: __months[0] = _M_data->_M_amonth01; 26201: __months[1] = _M_data->_M_amonth02; 26201: __months[2] = _M_data->_M_amonth03; 26201: __months[3] = _M_data->_M_amonth04; 26201: __months[4] = _M_data->_M_amonth05; 26201: __months[5] = _M_data->_M_amonth06; 26201: __months[6] = _M_data->_M_amonth07; 26201: __months[7] = _M_data->_M_amonth08; 26201: __months[8] = _M_data->_M_amonth09; 26201: __months[9] = _M_data->_M_amonth10; 26201: __months[10] = _M_data->_M_amonth11; 26201: __months[11] = _M_data->_M_amonth12; 26201: } 26201: 26201: protected: 26201: virtual 26201: ~__timepunct(); 26201: 26201: 26201: void 26201: _M_initialize_timepunct(__c_locale __cloc = 0); 26201: }; 26201: 26201: template 26201: locale::id __timepunct<_CharT>::id; 26201: 26201: 26201: template<> 26201: void 26201: __timepunct::_M_initialize_timepunct(__c_locale __cloc); 26201: 26201: template<> 26201: void 26201: __timepunct::_M_put(char*, size_t, const char*, const tm*) const throw (); 26201: 26201: 26201: template<> 26201: void 26201: __timepunct::_M_initialize_timepunct(__c_locale __cloc); 26201: 26201: template<> 26201: void 26201: __timepunct::_M_put(wchar_t*, size_t, const wchar_t*, 26201: const tm*) const throw (); 26201: 26201: 26201: 26201: } 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/time_members.h" 1 3 26201: # 37 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/time_members.h" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: template 26201: __timepunct<_CharT>::__timepunct(size_t __refs) 26201: : facet(__refs), _M_data(0), _M_c_locale_timepunct(0), 26201: _M_name_timepunct(_S_get_c_name()) 26201: { _M_initialize_timepunct(); } 26201: 26201: template 26201: __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs) 26201: : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(0), 26201: _M_name_timepunct(_S_get_c_name()) 26201: { _M_initialize_timepunct(); } 26201: 26201: template 26201: __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s, 26201: size_t __refs) 26201: : facet(__refs), _M_data(0), _M_c_locale_timepunct(0), 26201: _M_name_timepunct(0) 26201: { 26201: if (__builtin_strcmp(__s, _S_get_c_name()) != 0) 26201: { 26201: const size_t __len = __builtin_strlen(__s) + 1; 26201: char* __tmp = new char[__len]; 26201: __builtin_memcpy(__tmp, __s, __len); 26201: _M_name_timepunct = __tmp; 26201: } 26201: else 26201: _M_name_timepunct = _S_get_c_name(); 26201: 26201: try 26201: { _M_initialize_timepunct(__cloc); } 26201: catch(...) 26201: { 26201: if (_M_name_timepunct != _S_get_c_name()) 26201: delete [] _M_name_timepunct; 26201: throw; 26201: } 26201: } 26201: 26201: template 26201: __timepunct<_CharT>::~__timepunct() 26201: { 26201: if (_M_name_timepunct != _S_get_c_name()) 26201: delete [] _M_name_timepunct; 26201: delete _M_data; 26201: _S_destroy_c_locale(_M_c_locale_timepunct); 26201: } 26201: 26201: 26201: } 26201: # 347 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: namespace __cxx11 { 26201: # 367 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: template 26201: class time_get : public locale::facet, public time_base 26201: { 26201: public: 26201: 26201: 26201: 26201: typedef _CharT char_type; 26201: typedef _InIter iter_type; 26201: 26201: 26201: 26201: static locale::id id; 26201: # 388 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: explicit 26201: time_get(size_t __refs = 0) 26201: : facet (__refs) { } 26201: # 405 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: dateorder 26201: date_order() const 26201: { return this->do_date_order(); } 26201: # 429 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: iter_type 26201: get_time(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, tm* __tm) const 26201: { return this->do_get_time(__beg, __end, __io, __err, __tm); } 26201: # 454 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: iter_type 26201: get_date(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, tm* __tm) const 26201: { return this->do_get_date(__beg, __end, __io, __err, __tm); } 26201: # 482 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: iter_type 26201: get_weekday(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, tm* __tm) const 26201: { return this->do_get_weekday(__beg, __end, __io, __err, __tm); } 26201: # 511 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: iter_type 26201: get_monthname(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, tm* __tm) const 26201: { return this->do_get_monthname(__beg, __end, __io, __err, __tm); } 26201: # 537 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: iter_type 26201: get_year(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, tm* __tm) const 26201: { return this->do_get_year(__beg, __end, __io, __err, __tm); } 26201: # 558 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: inline 26201: iter_type get(iter_type __s, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, tm* __tm, char __format, 26201: char __modifier = 0) const 26201: { 26201: return this->do_get(__s, __end, __io, __err, __tm, __format, 26201: __modifier); 26201: } 26201: # 585 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: iter_type get(iter_type __s, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, tm* __tm, const char_type* __fmt, 26201: const char_type* __fmtend) const; 26201: 26201: 26201: protected: 26201: 26201: virtual 26201: ~time_get() { } 26201: # 605 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: virtual dateorder 26201: do_date_order() const; 26201: # 623 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: virtual iter_type 26201: do_get_time(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, tm* __tm) const; 26201: # 642 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: virtual iter_type 26201: do_get_date(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, tm* __tm) const; 26201: # 661 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: virtual iter_type 26201: do_get_weekday(iter_type __beg, iter_type __end, ios_base&, 26201: ios_base::iostate& __err, tm* __tm) const; 26201: # 680 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: virtual iter_type 26201: do_get_monthname(iter_type __beg, iter_type __end, ios_base&, 26201: ios_base::iostate& __err, tm* __tm) const; 26201: # 699 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: virtual iter_type 26201: do_get_year(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, tm* __tm) const; 26201: # 722 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: virtual 26201: 26201: iter_type 26201: do_get(iter_type __s, iter_type __end, ios_base& __f, 26201: ios_base::iostate& __err, tm* __tm, 26201: char __format, char __modifier) const; 26201: 26201: 26201: 26201: iter_type 26201: _M_extract_num(iter_type __beg, iter_type __end, int& __member, 26201: int __min, int __max, size_t __len, 26201: ios_base& __io, ios_base::iostate& __err) const; 26201: 26201: 26201: iter_type 26201: _M_extract_name(iter_type __beg, iter_type __end, int& __member, 26201: const _CharT** __names, size_t __indexlen, 26201: ios_base& __io, ios_base::iostate& __err) const; 26201: 26201: 26201: iter_type 26201: _M_extract_wday_or_month(iter_type __beg, iter_type __end, int& __member, 26201: const _CharT** __names, size_t __indexlen, 26201: ios_base& __io, ios_base::iostate& __err) const; 26201: 26201: 26201: iter_type 26201: _M_extract_via_format(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, tm* __tm, 26201: const _CharT* __format) const; 26201: }; 26201: 26201: template 26201: locale::id time_get<_CharT, _InIter>::id; 26201: 26201: 26201: template 26201: class time_get_byname : public time_get<_CharT, _InIter> 26201: { 26201: public: 26201: 26201: typedef _CharT char_type; 26201: typedef _InIter iter_type; 26201: 26201: explicit 26201: time_get_byname(const char*, size_t __refs = 0) 26201: : time_get<_CharT, _InIter>(__refs) { } 26201: 26201: 26201: explicit 26201: time_get_byname(const string& __s, size_t __refs = 0) 26201: : time_get_byname(__s.c_str(), __refs) { } 26201: 26201: 26201: protected: 26201: virtual 26201: ~time_get_byname() { } 26201: }; 26201: 26201: } 26201: # 796 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: template 26201: class time_put : public locale::facet 26201: { 26201: public: 26201: 26201: 26201: 26201: typedef _CharT char_type; 26201: typedef _OutIter iter_type; 26201: 26201: 26201: 26201: static locale::id id; 26201: # 817 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: explicit 26201: time_put(size_t __refs = 0) 26201: : facet(__refs) { } 26201: # 836 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: iter_type 26201: put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm, 26201: const _CharT* __beg, const _CharT* __end) const; 26201: # 856 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: iter_type 26201: put(iter_type __s, ios_base& __io, char_type __fill, 26201: const tm* __tm, char __format, char __mod = 0) const 26201: { return this->do_put(__s, __io, __fill, __tm, __format, __mod); } 26201: 26201: protected: 26201: 26201: virtual 26201: ~time_put() 26201: { } 26201: # 883 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: virtual iter_type 26201: do_put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm, 26201: char __format, char __mod) const; 26201: }; 26201: 26201: template 26201: locale::id time_put<_CharT, _OutIter>::id; 26201: 26201: 26201: template 26201: class time_put_byname : public time_put<_CharT, _OutIter> 26201: { 26201: public: 26201: 26201: typedef _CharT char_type; 26201: typedef _OutIter iter_type; 26201: 26201: explicit 26201: time_put_byname(const char*, size_t __refs = 0) 26201: : time_put<_CharT, _OutIter>(__refs) 26201: { } 26201: 26201: 26201: explicit 26201: time_put_byname(const string& __s, size_t __refs = 0) 26201: : time_put_byname(__s.c_str(), __refs) { } 26201: 26201: 26201: protected: 26201: virtual 26201: ~time_put_byname() { } 26201: }; 26201: # 928 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: class money_base 26201: { 26201: public: 26201: enum part { none, space, symbol, sign, value }; 26201: struct pattern { char field[4]; }; 26201: 26201: static const pattern _S_default_pattern; 26201: 26201: enum 26201: { 26201: _S_minus, 26201: _S_zero, 26201: _S_end = 11 26201: }; 26201: 26201: 26201: 26201: static const char* _S_atoms; 26201: 26201: 26201: 26201: __attribute__ ((__const__)) static pattern 26201: _S_construct_pattern(char __precedes, char __space, char __posn) throw (); 26201: }; 26201: 26201: template 26201: struct __moneypunct_cache : public locale::facet 26201: { 26201: const char* _M_grouping; 26201: size_t _M_grouping_size; 26201: bool _M_use_grouping; 26201: _CharT _M_decimal_point; 26201: _CharT _M_thousands_sep; 26201: const _CharT* _M_curr_symbol; 26201: size_t _M_curr_symbol_size; 26201: const _CharT* _M_positive_sign; 26201: size_t _M_positive_sign_size; 26201: const _CharT* _M_negative_sign; 26201: size_t _M_negative_sign_size; 26201: int _M_frac_digits; 26201: money_base::pattern _M_pos_format; 26201: money_base::pattern _M_neg_format; 26201: 26201: 26201: 26201: 26201: _CharT _M_atoms[money_base::_S_end]; 26201: 26201: bool _M_allocated; 26201: 26201: __moneypunct_cache(size_t __refs = 0) : facet(__refs), 26201: _M_grouping(0), _M_grouping_size(0), _M_use_grouping(false), 26201: _M_decimal_point(_CharT()), _M_thousands_sep(_CharT()), 26201: _M_curr_symbol(0), _M_curr_symbol_size(0), 26201: _M_positive_sign(0), _M_positive_sign_size(0), 26201: _M_negative_sign(0), _M_negative_sign_size(0), 26201: _M_frac_digits(0), 26201: _M_pos_format(money_base::pattern()), 26201: _M_neg_format(money_base::pattern()), _M_allocated(false) 26201: { } 26201: 26201: ~__moneypunct_cache(); 26201: 26201: void 26201: _M_cache(const locale& __loc); 26201: 26201: private: 26201: __moneypunct_cache& 26201: operator=(const __moneypunct_cache&); 26201: 26201: explicit 26201: __moneypunct_cache(const __moneypunct_cache&); 26201: }; 26201: 26201: template 26201: __moneypunct_cache<_CharT, _Intl>::~__moneypunct_cache() 26201: { 26201: if (_M_allocated) 26201: { 26201: delete [] _M_grouping; 26201: delete [] _M_curr_symbol; 26201: delete [] _M_positive_sign; 26201: delete [] _M_negative_sign; 26201: } 26201: } 26201: 26201: namespace __cxx11 { 26201: # 1023 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: template 26201: class moneypunct : public locale::facet, public money_base 26201: { 26201: public: 26201: 26201: 26201: 26201: typedef _CharT char_type; 26201: typedef basic_string<_CharT> string_type; 26201: 26201: typedef __moneypunct_cache<_CharT, _Intl> __cache_type; 26201: 26201: private: 26201: __cache_type* _M_data; 26201: 26201: public: 26201: 26201: 26201: static const bool intl = _Intl; 26201: 26201: static locale::id id; 26201: # 1052 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: explicit 26201: moneypunct(size_t __refs = 0) 26201: : facet(__refs), _M_data(0) 26201: { _M_initialize_moneypunct(); } 26201: # 1065 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: explicit 26201: moneypunct(__cache_type* __cache, size_t __refs = 0) 26201: : facet(__refs), _M_data(__cache) 26201: { _M_initialize_moneypunct(); } 26201: # 1080 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: explicit 26201: moneypunct(__c_locale __cloc, const char* __s, size_t __refs = 0) 26201: : facet(__refs), _M_data(0) 26201: { _M_initialize_moneypunct(__cloc, __s); } 26201: # 1094 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: char_type 26201: decimal_point() const 26201: { return this->do_decimal_point(); } 26201: # 1107 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: char_type 26201: thousands_sep() const 26201: { return this->do_thousands_sep(); } 26201: # 1137 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: string 26201: grouping() const 26201: { return this->do_grouping(); } 26201: # 1150 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: string_type 26201: curr_symbol() const 26201: { return this->do_curr_symbol(); } 26201: # 1167 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: string_type 26201: positive_sign() const 26201: { return this->do_positive_sign(); } 26201: # 1184 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: string_type 26201: negative_sign() const 26201: { return this->do_negative_sign(); } 26201: # 1200 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: int 26201: frac_digits() const 26201: { return this->do_frac_digits(); } 26201: # 1236 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: pattern 26201: pos_format() const 26201: { return this->do_pos_format(); } 26201: 26201: pattern 26201: neg_format() const 26201: { return this->do_neg_format(); } 26201: 26201: 26201: protected: 26201: 26201: virtual 26201: ~moneypunct(); 26201: # 1258 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: virtual char_type 26201: do_decimal_point() const 26201: { return _M_data->_M_decimal_point; } 26201: # 1270 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: virtual char_type 26201: do_thousands_sep() const 26201: { return _M_data->_M_thousands_sep; } 26201: # 1283 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: virtual string 26201: do_grouping() const 26201: { return _M_data->_M_grouping; } 26201: # 1296 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: virtual string_type 26201: do_curr_symbol() const 26201: { return _M_data->_M_curr_symbol; } 26201: # 1309 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: virtual string_type 26201: do_positive_sign() const 26201: { return _M_data->_M_positive_sign; } 26201: # 1322 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: virtual string_type 26201: do_negative_sign() const 26201: { return _M_data->_M_negative_sign; } 26201: # 1336 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: virtual int 26201: do_frac_digits() const 26201: { return _M_data->_M_frac_digits; } 26201: # 1350 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: virtual pattern 26201: do_pos_format() const 26201: { return _M_data->_M_pos_format; } 26201: # 1364 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: virtual pattern 26201: do_neg_format() const 26201: { return _M_data->_M_neg_format; } 26201: 26201: 26201: void 26201: _M_initialize_moneypunct(__c_locale __cloc = 0, 26201: const char* __name = 0); 26201: }; 26201: 26201: template 26201: locale::id moneypunct<_CharT, _Intl>::id; 26201: 26201: template 26201: const bool moneypunct<_CharT, _Intl>::intl; 26201: 26201: template<> 26201: moneypunct::~moneypunct(); 26201: 26201: template<> 26201: moneypunct::~moneypunct(); 26201: 26201: template<> 26201: void 26201: moneypunct::_M_initialize_moneypunct(__c_locale, const char*); 26201: 26201: template<> 26201: void 26201: moneypunct::_M_initialize_moneypunct(__c_locale, const char*); 26201: 26201: 26201: template<> 26201: moneypunct::~moneypunct(); 26201: 26201: template<> 26201: moneypunct::~moneypunct(); 26201: 26201: template<> 26201: void 26201: moneypunct::_M_initialize_moneypunct(__c_locale, 26201: const char*); 26201: 26201: template<> 26201: void 26201: moneypunct::_M_initialize_moneypunct(__c_locale, 26201: const char*); 26201: 26201: 26201: 26201: template 26201: class moneypunct_byname : public moneypunct<_CharT, _Intl> 26201: { 26201: public: 26201: typedef _CharT char_type; 26201: typedef basic_string<_CharT> string_type; 26201: 26201: static const bool intl = _Intl; 26201: 26201: explicit 26201: moneypunct_byname(const char* __s, size_t __refs = 0) 26201: : moneypunct<_CharT, _Intl>(__refs) 26201: { 26201: if (__builtin_strcmp(__s, "C") != 0 26201: && __builtin_strcmp(__s, "POSIX") != 0) 26201: { 26201: __c_locale __tmp; 26201: this->_S_create_c_locale(__tmp, __s); 26201: this->_M_initialize_moneypunct(__tmp); 26201: this->_S_destroy_c_locale(__tmp); 26201: } 26201: } 26201: 26201: 26201: explicit 26201: moneypunct_byname(const string& __s, size_t __refs = 0) 26201: : moneypunct_byname(__s.c_str(), __refs) { } 26201: 26201: 26201: protected: 26201: virtual 26201: ~moneypunct_byname() { } 26201: }; 26201: 26201: template 26201: const bool moneypunct_byname<_CharT, _Intl>::intl; 26201: 26201: } 26201: 26201: namespace __cxx11 { 26201: # 1467 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: template 26201: class money_get : public locale::facet 26201: { 26201: public: 26201: 26201: 26201: 26201: typedef _CharT char_type; 26201: typedef _InIter iter_type; 26201: typedef basic_string<_CharT> string_type; 26201: 26201: 26201: 26201: static locale::id id; 26201: # 1489 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: explicit 26201: money_get(size_t __refs = 0) : facet(__refs) { } 26201: # 1519 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: iter_type 26201: get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, 26201: ios_base::iostate& __err, long double& __units) const 26201: { return this->do_get(__s, __end, __intl, __io, __err, __units); } 26201: # 1550 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: iter_type 26201: get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, 26201: ios_base::iostate& __err, string_type& __digits) const 26201: { return this->do_get(__s, __end, __intl, __io, __err, __digits); } 26201: 26201: protected: 26201: 26201: virtual 26201: ~money_get() { } 26201: # 1574 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: virtual iter_type 26201: do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, 26201: ios_base::iostate& __err, long double& __units) const; 26201: # 1586 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: virtual iter_type 26201: do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, 26201: ios_base::iostate& __err, string_type& __digits) const; 26201: # 1598 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: template 26201: iter_type 26201: _M_extract(iter_type __s, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, string& __digits) const; 26201: }; 26201: 26201: template 26201: locale::id money_get<_CharT, _InIter>::id; 26201: # 1620 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: template 26201: class money_put : public locale::facet 26201: { 26201: public: 26201: 26201: 26201: typedef _CharT char_type; 26201: typedef _OutIter iter_type; 26201: typedef basic_string<_CharT> string_type; 26201: 26201: 26201: 26201: static locale::id id; 26201: # 1641 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: explicit 26201: money_put(size_t __refs = 0) : facet(__refs) { } 26201: # 1661 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: iter_type 26201: put(iter_type __s, bool __intl, ios_base& __io, 26201: char_type __fill, long double __units) const 26201: { return this->do_put(__s, __intl, __io, __fill, __units); } 26201: # 1684 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: iter_type 26201: put(iter_type __s, bool __intl, ios_base& __io, 26201: char_type __fill, const string_type& __digits) const 26201: { return this->do_put(__s, __intl, __io, __fill, __digits); } 26201: 26201: protected: 26201: 26201: virtual 26201: ~money_put() { } 26201: # 1719 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: virtual iter_type 26201: do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, 26201: long double __units) const; 26201: # 1743 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: virtual iter_type 26201: do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, 26201: const string_type& __digits) const; 26201: # 1755 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: template 26201: iter_type 26201: _M_insert(iter_type __s, ios_base& __io, char_type __fill, 26201: const string_type& __digits) const; 26201: }; 26201: 26201: template 26201: locale::id money_put<_CharT, _OutIter>::id; 26201: 26201: } 26201: 26201: 26201: 26201: 26201: 26201: struct messages_base 26201: { 26201: typedef int catalog; 26201: }; 26201: 26201: namespace __cxx11 { 26201: # 1798 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: template 26201: class messages : public locale::facet, public messages_base 26201: { 26201: public: 26201: 26201: 26201: 26201: typedef _CharT char_type; 26201: typedef basic_string<_CharT> string_type; 26201: 26201: 26201: protected: 26201: 26201: 26201: __c_locale _M_c_locale_messages; 26201: const char* _M_name_messages; 26201: 26201: public: 26201: 26201: static locale::id id; 26201: # 1826 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: explicit 26201: messages(size_t __refs = 0); 26201: # 1840 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: explicit 26201: messages(__c_locale __cloc, const char* __s, size_t __refs = 0); 26201: # 1853 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: catalog 26201: open(const basic_string& __s, const locale& __loc) const 26201: { return this->do_open(__s, __loc); } 26201: # 1871 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: catalog 26201: open(const basic_string&, const locale&, const char*) const; 26201: # 1889 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: string_type 26201: get(catalog __c, int __set, int __msgid, const string_type& __s) const 26201: { return this->do_get(__c, __set, __msgid, __s); } 26201: # 1900 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: void 26201: close(catalog __c) const 26201: { return this->do_close(__c); } 26201: 26201: protected: 26201: 26201: virtual 26201: ~messages(); 26201: # 1920 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: virtual catalog 26201: do_open(const basic_string&, const locale&) const; 26201: # 1939 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 3 26201: virtual string_type 26201: do_get(catalog, int, int, const string_type& __dfault) const; 26201: 26201: 26201: 26201: 26201: 26201: 26201: virtual void 26201: do_close(catalog) const; 26201: 26201: 26201: char* 26201: _M_convert_to_char(const string_type& __msg) const 26201: { 26201: 26201: return reinterpret_cast(const_cast<_CharT*>(__msg.c_str())); 26201: } 26201: 26201: 26201: string_type 26201: _M_convert_from_char(char*) const 26201: { 26201: 26201: return string_type(); 26201: } 26201: }; 26201: 26201: template 26201: locale::id messages<_CharT>::id; 26201: 26201: 26201: template<> 26201: string 26201: messages::do_get(catalog, int, int, const string&) const; 26201: 26201: 26201: template<> 26201: wstring 26201: messages::do_get(catalog, int, int, const wstring&) const; 26201: 26201: 26201: 26201: template 26201: class messages_byname : public messages<_CharT> 26201: { 26201: public: 26201: typedef _CharT char_type; 26201: typedef basic_string<_CharT> string_type; 26201: 26201: explicit 26201: messages_byname(const char* __s, size_t __refs = 0); 26201: 26201: 26201: explicit 26201: messages_byname(const string& __s, size_t __refs = 0) 26201: : messages_byname(__s.c_str(), __refs) { } 26201: 26201: 26201: protected: 26201: virtual 26201: ~messages_byname() 26201: { } 26201: }; 26201: 26201: } 26201: 26201: 26201: } 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/messages_members.h" 1 3 26201: # 36 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/messages_members.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/libintl.h" 1 3 26201: # 21 "/usr/x86_64-linux-gnu/include/libintl.h" 3 26201: #define _LIBINTL_H 1 26201: 26201: 26201: 26201: 26201: 26201: #define __USE_GNU_GETTEXT 1 26201: 26201: 26201: 26201: #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 1 : -1) 26201: 26201: 26201: extern "C" { 26201: 26201: 26201: 26201: 26201: extern char *gettext (const char *__msgid) 26201: throw () __attribute__ ((__format_arg__ (1))); 26201: 26201: 26201: 26201: extern char *dgettext (const char *__domainname, const char *__msgid) 26201: throw () __attribute__ ((__format_arg__ (2))); 26201: extern char *__dgettext (const char *__domainname, const char *__msgid) 26201: throw () __attribute__ ((__format_arg__ (2))); 26201: 26201: 26201: 26201: extern char *dcgettext (const char *__domainname, 26201: const char *__msgid, int __category) 26201: throw () __attribute__ ((__format_arg__ (2))); 26201: extern char *__dcgettext (const char *__domainname, 26201: const char *__msgid, int __category) 26201: throw () __attribute__ ((__format_arg__ (2))); 26201: 26201: 26201: 26201: 26201: extern char *ngettext (const char *__msgid1, const char *__msgid2, 26201: unsigned long int __n) 26201: throw () __attribute__ ((__format_arg__ (1))) __attribute__ ((__format_arg__ (2))); 26201: 26201: 26201: 26201: extern char *dngettext (const char *__domainname, const char *__msgid1, 26201: const char *__msgid2, unsigned long int __n) 26201: throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3))); 26201: 26201: 26201: 26201: extern char *dcngettext (const char *__domainname, const char *__msgid1, 26201: const char *__msgid2, unsigned long int __n, 26201: int __category) 26201: throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3))); 26201: 26201: 26201: 26201: 26201: 26201: extern char *textdomain (const char *__domainname) throw (); 26201: 26201: 26201: 26201: extern char *bindtextdomain (const char *__domainname, 26201: const char *__dirname) throw (); 26201: 26201: 26201: 26201: extern char *bind_textdomain_codeset (const char *__domainname, 26201: const char *__codeset) throw (); 26201: # 121 "/usr/x86_64-linux-gnu/include/libintl.h" 3 26201: } 26201: # 37 "/usr/x86_64-linux-gnu/include/c++/10/x86_64-linux-gnu/bits/messages_members.h" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: template 26201: messages<_CharT>::messages(size_t __refs) 26201: : facet(__refs), _M_c_locale_messages(_S_get_c_locale()), 26201: _M_name_messages(_S_get_c_name()) 26201: { } 26201: 26201: template 26201: messages<_CharT>::messages(__c_locale __cloc, const char* __s, 26201: size_t __refs) 26201: : facet(__refs), _M_c_locale_messages(0), _M_name_messages(0) 26201: { 26201: if (__builtin_strcmp(__s, _S_get_c_name()) != 0) 26201: { 26201: const size_t __len = __builtin_strlen(__s) + 1; 26201: char* __tmp = new char[__len]; 26201: __builtin_memcpy(__tmp, __s, __len); 26201: _M_name_messages = __tmp; 26201: } 26201: else 26201: _M_name_messages = _S_get_c_name(); 26201: 26201: 26201: _M_c_locale_messages = _S_clone_c_locale(__cloc); 26201: } 26201: 26201: template 26201: typename messages<_CharT>::catalog 26201: messages<_CharT>::open(const basic_string& __s, const locale& __loc, 26201: const char* __dir) const 26201: { 26201: bindtextdomain(__s.c_str(), __dir); 26201: return this->do_open(__s, __loc); 26201: } 26201: 26201: 26201: template 26201: messages<_CharT>::~messages() 26201: { 26201: if (_M_name_messages != _S_get_c_name()) 26201: delete [] _M_name_messages; 26201: _S_destroy_c_locale(_M_c_locale_messages); 26201: } 26201: 26201: template 26201: typename messages<_CharT>::catalog 26201: messages<_CharT>::do_open(const basic_string& __s, 26201: const locale&) const 26201: { 26201: 26201: 26201: textdomain(__s.c_str()); 26201: return 0; 26201: } 26201: 26201: template 26201: void 26201: messages<_CharT>::do_close(catalog) const 26201: { } 26201: 26201: 26201: template 26201: messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs) 26201: : messages<_CharT>(__refs) 26201: { 26201: if (this->_M_name_messages != locale::facet::_S_get_c_name()) 26201: { 26201: delete [] this->_M_name_messages; 26201: if (__builtin_strcmp(__s, locale::facet::_S_get_c_name()) != 0) 26201: { 26201: const size_t __len = __builtin_strlen(__s) + 1; 26201: char* __tmp = new char[__len]; 26201: __builtin_memcpy(__tmp, __s, __len); 26201: this->_M_name_messages = __tmp; 26201: } 26201: else 26201: this->_M_name_messages = locale::facet::_S_get_c_name(); 26201: } 26201: 26201: if (__builtin_strcmp(__s, "C") != 0 26201: && __builtin_strcmp(__s, "POSIX") != 0) 26201: { 26201: this->_S_destroy_c_locale(this->_M_c_locale_messages); 26201: this->_S_create_c_locale(this->_M_c_locale_messages, __s); 26201: } 26201: } 26201: 26201: 26201: template<> 26201: typename messages::catalog 26201: messages::do_open(const basic_string&, 26201: const locale&) const; 26201: 26201: template<> 26201: void 26201: messages::do_close(catalog) const; 26201: 26201: 26201: template<> 26201: typename messages::catalog 26201: messages::do_open(const basic_string&, 26201: const locale&) const; 26201: 26201: template<> 26201: void 26201: messages::do_close(catalog) const; 26201: 26201: 26201: 26201: } 26201: # 2011 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 2 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/codecvt.h" 1 3 26201: # 37 "/usr/x86_64-linux-gnu/include/c++/10/bits/codecvt.h" 3 26201: #define _CODECVT_H 1 26201: 26201: 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/bits/codecvt.h" 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: class codecvt_base 26201: { 26201: public: 26201: enum result 26201: { 26201: ok, 26201: partial, 26201: error, 26201: noconv 26201: }; 26201: }; 26201: # 67 "/usr/x86_64-linux-gnu/include/c++/10/bits/codecvt.h" 3 26201: template 26201: class __codecvt_abstract_base 26201: : public locale::facet, public codecvt_base 26201: { 26201: public: 26201: 26201: typedef codecvt_base::result result; 26201: typedef _InternT intern_type; 26201: typedef _ExternT extern_type; 26201: typedef _StateT state_type; 26201: # 115 "/usr/x86_64-linux-gnu/include/c++/10/bits/codecvt.h" 3 26201: result 26201: out(state_type& __state, const intern_type* __from, 26201: const intern_type* __from_end, const intern_type*& __from_next, 26201: extern_type* __to, extern_type* __to_end, 26201: extern_type*& __to_next) const 26201: { 26201: return this->do_out(__state, __from, __from_end, __from_next, 26201: __to, __to_end, __to_next); 26201: } 26201: # 154 "/usr/x86_64-linux-gnu/include/c++/10/bits/codecvt.h" 3 26201: result 26201: unshift(state_type& __state, extern_type* __to, extern_type* __to_end, 26201: extern_type*& __to_next) const 26201: { return this->do_unshift(__state, __to,__to_end,__to_next); } 26201: # 195 "/usr/x86_64-linux-gnu/include/c++/10/bits/codecvt.h" 3 26201: result 26201: in(state_type& __state, const extern_type* __from, 26201: const extern_type* __from_end, const extern_type*& __from_next, 26201: intern_type* __to, intern_type* __to_end, 26201: intern_type*& __to_next) const 26201: { 26201: return this->do_in(__state, __from, __from_end, __from_next, 26201: __to, __to_end, __to_next); 26201: } 26201: 26201: int 26201: encoding() const throw() 26201: { return this->do_encoding(); } 26201: 26201: bool 26201: always_noconv() const throw() 26201: { return this->do_always_noconv(); } 26201: 26201: int 26201: length(state_type& __state, const extern_type* __from, 26201: const extern_type* __end, size_t __max) const 26201: { return this->do_length(__state, __from, __end, __max); } 26201: 26201: int 26201: max_length() const throw() 26201: { return this->do_max_length(); } 26201: 26201: protected: 26201: explicit 26201: __codecvt_abstract_base(size_t __refs = 0) : locale::facet(__refs) { } 26201: 26201: virtual 26201: ~__codecvt_abstract_base() { } 26201: # 236 "/usr/x86_64-linux-gnu/include/c++/10/bits/codecvt.h" 3 26201: virtual result 26201: do_out(state_type& __state, const intern_type* __from, 26201: const intern_type* __from_end, const intern_type*& __from_next, 26201: extern_type* __to, extern_type* __to_end, 26201: extern_type*& __to_next) const = 0; 26201: 26201: virtual result 26201: do_unshift(state_type& __state, extern_type* __to, 26201: extern_type* __to_end, extern_type*& __to_next) const = 0; 26201: 26201: virtual result 26201: do_in(state_type& __state, const extern_type* __from, 26201: const extern_type* __from_end, const extern_type*& __from_next, 26201: intern_type* __to, intern_type* __to_end, 26201: intern_type*& __to_next) const = 0; 26201: 26201: virtual int 26201: do_encoding() const throw() = 0; 26201: 26201: virtual bool 26201: do_always_noconv() const throw() = 0; 26201: 26201: virtual int 26201: do_length(state_type&, const extern_type* __from, 26201: const extern_type* __end, size_t __max) const = 0; 26201: 26201: virtual int 26201: do_max_length() const throw() = 0; 26201: }; 26201: # 273 "/usr/x86_64-linux-gnu/include/c++/10/bits/codecvt.h" 3 26201: template 26201: class codecvt 26201: : public __codecvt_abstract_base<_InternT, _ExternT, _StateT> 26201: { 26201: public: 26201: 26201: typedef codecvt_base::result result; 26201: typedef _InternT intern_type; 26201: typedef _ExternT extern_type; 26201: typedef _StateT state_type; 26201: 26201: protected: 26201: __c_locale _M_c_locale_codecvt; 26201: 26201: public: 26201: static locale::id id; 26201: 26201: explicit 26201: codecvt(size_t __refs = 0) 26201: : __codecvt_abstract_base<_InternT, _ExternT, _StateT> (__refs), 26201: _M_c_locale_codecvt(0) 26201: { } 26201: 26201: explicit 26201: codecvt(__c_locale __cloc, size_t __refs = 0); 26201: 26201: protected: 26201: virtual 26201: ~codecvt() { } 26201: 26201: virtual result 26201: do_out(state_type& __state, const intern_type* __from, 26201: const intern_type* __from_end, const intern_type*& __from_next, 26201: extern_type* __to, extern_type* __to_end, 26201: extern_type*& __to_next) const; 26201: 26201: virtual result 26201: do_unshift(state_type& __state, extern_type* __to, 26201: extern_type* __to_end, extern_type*& __to_next) const; 26201: 26201: virtual result 26201: do_in(state_type& __state, const extern_type* __from, 26201: const extern_type* __from_end, const extern_type*& __from_next, 26201: intern_type* __to, intern_type* __to_end, 26201: intern_type*& __to_next) const; 26201: 26201: virtual int 26201: do_encoding() const throw(); 26201: 26201: virtual bool 26201: do_always_noconv() const throw(); 26201: 26201: virtual int 26201: do_length(state_type&, const extern_type* __from, 26201: const extern_type* __end, size_t __max) const; 26201: 26201: virtual int 26201: do_max_length() const throw(); 26201: }; 26201: 26201: template 26201: locale::id codecvt<_InternT, _ExternT, _StateT>::id; 26201: 26201: 26201: template<> 26201: class codecvt 26201: : public __codecvt_abstract_base 26201: { 26201: friend class messages; 26201: 26201: public: 26201: 26201: typedef char intern_type; 26201: typedef char extern_type; 26201: typedef mbstate_t state_type; 26201: 26201: protected: 26201: __c_locale _M_c_locale_codecvt; 26201: 26201: public: 26201: static locale::id id; 26201: 26201: explicit 26201: codecvt(size_t __refs = 0); 26201: 26201: explicit 26201: codecvt(__c_locale __cloc, size_t __refs = 0); 26201: 26201: protected: 26201: virtual 26201: ~codecvt(); 26201: 26201: virtual result 26201: do_out(state_type& __state, const intern_type* __from, 26201: const intern_type* __from_end, const intern_type*& __from_next, 26201: extern_type* __to, extern_type* __to_end, 26201: extern_type*& __to_next) const; 26201: 26201: virtual result 26201: do_unshift(state_type& __state, extern_type* __to, 26201: extern_type* __to_end, extern_type*& __to_next) const; 26201: 26201: virtual result 26201: do_in(state_type& __state, const extern_type* __from, 26201: const extern_type* __from_end, const extern_type*& __from_next, 26201: intern_type* __to, intern_type* __to_end, 26201: intern_type*& __to_next) const; 26201: 26201: virtual int 26201: do_encoding() const throw(); 26201: 26201: virtual bool 26201: do_always_noconv() const throw(); 26201: 26201: virtual int 26201: do_length(state_type&, const extern_type* __from, 26201: const extern_type* __end, size_t __max) const; 26201: 26201: virtual int 26201: do_max_length() const throw(); 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template<> 26201: class codecvt 26201: : public __codecvt_abstract_base 26201: { 26201: friend class messages; 26201: 26201: public: 26201: 26201: typedef wchar_t intern_type; 26201: typedef char extern_type; 26201: typedef mbstate_t state_type; 26201: 26201: protected: 26201: __c_locale _M_c_locale_codecvt; 26201: 26201: public: 26201: static locale::id id; 26201: 26201: explicit 26201: codecvt(size_t __refs = 0); 26201: 26201: explicit 26201: codecvt(__c_locale __cloc, size_t __refs = 0); 26201: 26201: protected: 26201: virtual 26201: ~codecvt(); 26201: 26201: virtual result 26201: do_out(state_type& __state, const intern_type* __from, 26201: const intern_type* __from_end, const intern_type*& __from_next, 26201: extern_type* __to, extern_type* __to_end, 26201: extern_type*& __to_next) const; 26201: 26201: virtual result 26201: do_unshift(state_type& __state, 26201: extern_type* __to, extern_type* __to_end, 26201: extern_type*& __to_next) const; 26201: 26201: virtual result 26201: do_in(state_type& __state, 26201: const extern_type* __from, const extern_type* __from_end, 26201: const extern_type*& __from_next, 26201: intern_type* __to, intern_type* __to_end, 26201: intern_type*& __to_next) const; 26201: 26201: virtual 26201: int do_encoding() const throw(); 26201: 26201: virtual 26201: bool do_always_noconv() const throw(); 26201: 26201: virtual 26201: int do_length(state_type&, const extern_type* __from, 26201: const extern_type* __end, size_t __max) const; 26201: 26201: virtual int 26201: do_max_length() const throw(); 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template<> 26201: class codecvt 26201: : public __codecvt_abstract_base 26201: { 26201: public: 26201: 26201: typedef char16_t intern_type; 26201: typedef char extern_type; 26201: typedef mbstate_t state_type; 26201: 26201: public: 26201: static locale::id id; 26201: 26201: explicit 26201: codecvt(size_t __refs = 0) 26201: : __codecvt_abstract_base(__refs) { } 26201: 26201: protected: 26201: virtual 26201: ~codecvt(); 26201: 26201: virtual result 26201: do_out(state_type& __state, const intern_type* __from, 26201: const intern_type* __from_end, const intern_type*& __from_next, 26201: extern_type* __to, extern_type* __to_end, 26201: extern_type*& __to_next) const; 26201: 26201: virtual result 26201: do_unshift(state_type& __state, 26201: extern_type* __to, extern_type* __to_end, 26201: extern_type*& __to_next) const; 26201: 26201: virtual result 26201: do_in(state_type& __state, 26201: const extern_type* __from, const extern_type* __from_end, 26201: const extern_type*& __from_next, 26201: intern_type* __to, intern_type* __to_end, 26201: intern_type*& __to_next) const; 26201: 26201: virtual 26201: int do_encoding() const throw(); 26201: 26201: virtual 26201: bool do_always_noconv() const throw(); 26201: 26201: virtual 26201: int do_length(state_type&, const extern_type* __from, 26201: const extern_type* __end, size_t __max) const; 26201: 26201: virtual int 26201: do_max_length() const throw(); 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: template<> 26201: class codecvt 26201: : public __codecvt_abstract_base 26201: { 26201: public: 26201: 26201: typedef char32_t intern_type; 26201: typedef char extern_type; 26201: typedef mbstate_t state_type; 26201: 26201: public: 26201: static locale::id id; 26201: 26201: explicit 26201: codecvt(size_t __refs = 0) 26201: : __codecvt_abstract_base(__refs) { } 26201: 26201: protected: 26201: virtual 26201: ~codecvt(); 26201: 26201: virtual result 26201: do_out(state_type& __state, const intern_type* __from, 26201: const intern_type* __from_end, const intern_type*& __from_next, 26201: extern_type* __to, extern_type* __to_end, 26201: extern_type*& __to_next) const; 26201: 26201: virtual result 26201: do_unshift(state_type& __state, 26201: extern_type* __to, extern_type* __to_end, 26201: extern_type*& __to_next) const; 26201: 26201: virtual result 26201: do_in(state_type& __state, 26201: const extern_type* __from, const extern_type* __from_end, 26201: const extern_type*& __from_next, 26201: intern_type* __to, intern_type* __to_end, 26201: intern_type*& __to_next) const; 26201: 26201: virtual 26201: int do_encoding() const throw(); 26201: 26201: virtual 26201: bool do_always_noconv() const throw(); 26201: 26201: virtual 26201: int do_length(state_type&, const extern_type* __from, 26201: const extern_type* __end, size_t __max) const; 26201: 26201: virtual int 26201: do_max_length() const throw(); 26201: }; 26201: # 695 "/usr/x86_64-linux-gnu/include/c++/10/bits/codecvt.h" 3 26201: template 26201: class codecvt_byname : public codecvt<_InternT, _ExternT, _StateT> 26201: { 26201: public: 26201: explicit 26201: codecvt_byname(const char* __s, size_t __refs = 0) 26201: : codecvt<_InternT, _ExternT, _StateT>(__refs) 26201: { 26201: if (__builtin_strcmp(__s, "C") != 0 26201: && __builtin_strcmp(__s, "POSIX") != 0) 26201: { 26201: this->_S_destroy_c_locale(this->_M_c_locale_codecvt); 26201: this->_S_create_c_locale(this->_M_c_locale_codecvt, __s); 26201: } 26201: } 26201: 26201: 26201: explicit 26201: codecvt_byname(const string& __s, size_t __refs = 0) 26201: : codecvt_byname(__s.c_str(), __refs) { } 26201: 26201: 26201: protected: 26201: virtual 26201: ~codecvt_byname() { } 26201: }; 26201: 26201: 26201: template<> 26201: class codecvt_byname 26201: : public codecvt 26201: { 26201: public: 26201: explicit 26201: codecvt_byname(const char*, size_t __refs = 0) 26201: : codecvt(__refs) { } 26201: 26201: explicit 26201: codecvt_byname(const string& __s, size_t __refs = 0) 26201: : codecvt_byname(__s.c_str(), __refs) { } 26201: 26201: protected: 26201: virtual 26201: ~codecvt_byname() { } 26201: }; 26201: 26201: template<> 26201: class codecvt_byname 26201: : public codecvt 26201: { 26201: public: 26201: explicit 26201: codecvt_byname(const char*, size_t __refs = 0) 26201: : codecvt(__refs) { } 26201: 26201: explicit 26201: codecvt_byname(const string& __s, size_t __refs = 0) 26201: : codecvt_byname(__s.c_str(), __refs) { } 26201: 26201: protected: 26201: virtual 26201: ~codecvt_byname() { } 26201: }; 26201: # 802 "/usr/x86_64-linux-gnu/include/c++/10/bits/codecvt.h" 3 26201: extern template class codecvt_byname; 26201: 26201: extern template 26201: const codecvt& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: 26201: extern template class codecvt_byname; 26201: 26201: extern template 26201: const codecvt& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: 26201: 26201: extern template class codecvt_byname; 26201: extern template class codecvt_byname; 26201: # 837 "/usr/x86_64-linux-gnu/include/c++/10/bits/codecvt.h" 3 26201: 26201: } 26201: # 2014 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 2 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.tcc" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.tcc" 3 26201: #define _LOCALE_FACETS_NONIO_TCC 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.tcc" 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: template 26201: struct __use_cache<__moneypunct_cache<_CharT, _Intl> > 26201: { 26201: const __moneypunct_cache<_CharT, _Intl>* 26201: operator() (const locale& __loc) const 26201: { 26201: const size_t __i = moneypunct<_CharT, _Intl>::id._M_id(); 26201: const locale::facet** __caches = __loc._M_impl->_M_caches; 26201: if (!__caches[__i]) 26201: { 26201: __moneypunct_cache<_CharT, _Intl>* __tmp = 0; 26201: try 26201: { 26201: __tmp = new __moneypunct_cache<_CharT, _Intl>; 26201: __tmp->_M_cache(__loc); 26201: } 26201: catch(...) 26201: { 26201: delete __tmp; 26201: throw; 26201: } 26201: __loc._M_impl->_M_install_cache(__tmp, __i); 26201: } 26201: return static_cast< 26201: const __moneypunct_cache<_CharT, _Intl>*>(__caches[__i]); 26201: } 26201: }; 26201: 26201: template 26201: void 26201: __moneypunct_cache<_CharT, _Intl>::_M_cache(const locale& __loc) 26201: { 26201: const moneypunct<_CharT, _Intl>& __mp = 26201: use_facet >(__loc); 26201: 26201: _M_decimal_point = __mp.decimal_point(); 26201: _M_thousands_sep = __mp.thousands_sep(); 26201: _M_frac_digits = __mp.frac_digits(); 26201: 26201: char* __grouping = 0; 26201: _CharT* __curr_symbol = 0; 26201: _CharT* __positive_sign = 0; 26201: _CharT* __negative_sign = 0; 26201: try 26201: { 26201: const string& __g = __mp.grouping(); 26201: _M_grouping_size = __g.size(); 26201: __grouping = new char[_M_grouping_size]; 26201: __g.copy(__grouping, _M_grouping_size); 26201: _M_use_grouping = (_M_grouping_size 26201: && static_cast(__grouping[0]) > 0 26201: && (__grouping[0] 26201: != __gnu_cxx::__numeric_traits::__max)); 26201: 26201: const basic_string<_CharT>& __cs = __mp.curr_symbol(); 26201: _M_curr_symbol_size = __cs.size(); 26201: __curr_symbol = new _CharT[_M_curr_symbol_size]; 26201: __cs.copy(__curr_symbol, _M_curr_symbol_size); 26201: 26201: const basic_string<_CharT>& __ps = __mp.positive_sign(); 26201: _M_positive_sign_size = __ps.size(); 26201: __positive_sign = new _CharT[_M_positive_sign_size]; 26201: __ps.copy(__positive_sign, _M_positive_sign_size); 26201: 26201: const basic_string<_CharT>& __ns = __mp.negative_sign(); 26201: _M_negative_sign_size = __ns.size(); 26201: __negative_sign = new _CharT[_M_negative_sign_size]; 26201: __ns.copy(__negative_sign, _M_negative_sign_size); 26201: 26201: _M_pos_format = __mp.pos_format(); 26201: _M_neg_format = __mp.neg_format(); 26201: 26201: const ctype<_CharT>& __ct = use_facet >(__loc); 26201: __ct.widen(money_base::_S_atoms, 26201: money_base::_S_atoms + money_base::_S_end, _M_atoms); 26201: 26201: _M_grouping = __grouping; 26201: _M_curr_symbol = __curr_symbol; 26201: _M_positive_sign = __positive_sign; 26201: _M_negative_sign = __negative_sign; 26201: _M_allocated = true; 26201: } 26201: catch(...) 26201: { 26201: delete [] __grouping; 26201: delete [] __curr_symbol; 26201: delete [] __positive_sign; 26201: delete [] __negative_sign; 26201: throw; 26201: } 26201: } 26201: 26201: namespace __cxx11 { 26201: 26201: template 26201: template 26201: _InIter 26201: money_get<_CharT, _InIter>:: 26201: _M_extract(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, string& __units) const 26201: { 26201: typedef char_traits<_CharT> __traits_type; 26201: typedef typename string_type::size_type size_type; 26201: typedef money_base::part part; 26201: typedef __moneypunct_cache<_CharT, _Intl> __cache_type; 26201: 26201: const locale& __loc = __io._M_getloc(); 26201: const ctype<_CharT>& __ctype = use_facet >(__loc); 26201: 26201: __use_cache<__cache_type> __uc; 26201: const __cache_type* __lc = __uc(__loc); 26201: const char_type* __lit = __lc->_M_atoms; 26201: 26201: 26201: bool __negative = false; 26201: 26201: size_type __sign_size = 0; 26201: 26201: const bool __mandatory_sign = (__lc->_M_positive_sign_size 26201: && __lc->_M_negative_sign_size); 26201: 26201: string __grouping_tmp; 26201: if (__lc->_M_use_grouping) 26201: __grouping_tmp.reserve(32); 26201: 26201: int __last_pos = 0; 26201: 26201: int __n = 0; 26201: 26201: bool __testvalid = true; 26201: 26201: bool __testdecfound = false; 26201: 26201: 26201: string __res; 26201: __res.reserve(32); 26201: 26201: const char_type* __lit_zero = __lit + money_base::_S_zero; 26201: const money_base::pattern __p = __lc->_M_neg_format; 26201: for (int __i = 0; __i < 4 && __testvalid; ++__i) 26201: { 26201: const part __which = static_cast(__p.field[__i]); 26201: switch (__which) 26201: { 26201: case money_base::symbol: 26201: 26201: 26201: 26201: 26201: if (__io.flags() & ios_base::showbase || __sign_size > 1 26201: || __i == 0 26201: || (__i == 1 && (__mandatory_sign 26201: || (static_cast(__p.field[0]) 26201: == money_base::sign) 26201: || (static_cast(__p.field[2]) 26201: == money_base::space))) 26201: || (__i == 2 && ((static_cast(__p.field[3]) 26201: == money_base::value) 26201: || (__mandatory_sign 26201: && (static_cast(__p.field[3]) 26201: == money_base::sign))))) 26201: { 26201: const size_type __len = __lc->_M_curr_symbol_size; 26201: size_type __j = 0; 26201: for (; __beg != __end && __j < __len 26201: && *__beg == __lc->_M_curr_symbol[__j]; 26201: ++__beg, (void)++__j); 26201: if (__j != __len 26201: && (__j || __io.flags() & ios_base::showbase)) 26201: __testvalid = false; 26201: } 26201: break; 26201: case money_base::sign: 26201: 26201: if (__lc->_M_positive_sign_size && __beg != __end 26201: && *__beg == __lc->_M_positive_sign[0]) 26201: { 26201: __sign_size = __lc->_M_positive_sign_size; 26201: ++__beg; 26201: } 26201: else if (__lc->_M_negative_sign_size && __beg != __end 26201: && *__beg == __lc->_M_negative_sign[0]) 26201: { 26201: __negative = true; 26201: __sign_size = __lc->_M_negative_sign_size; 26201: ++__beg; 26201: } 26201: else if (__lc->_M_positive_sign_size 26201: && !__lc->_M_negative_sign_size) 26201: 26201: 26201: __negative = true; 26201: else if (__mandatory_sign) 26201: __testvalid = false; 26201: break; 26201: case money_base::value: 26201: 26201: 26201: for (; __beg != __end; ++__beg) 26201: { 26201: const char_type __c = *__beg; 26201: const char_type* __q = __traits_type::find(__lit_zero, 26201: 10, __c); 26201: if (__q != 0) 26201: { 26201: __res += money_base::_S_atoms[__q - __lit]; 26201: ++__n; 26201: } 26201: else if (__c == __lc->_M_decimal_point 26201: && !__testdecfound) 26201: { 26201: if (__lc->_M_frac_digits <= 0) 26201: break; 26201: 26201: __last_pos = __n; 26201: __n = 0; 26201: __testdecfound = true; 26201: } 26201: else if (__lc->_M_use_grouping 26201: && __c == __lc->_M_thousands_sep 26201: && !__testdecfound) 26201: { 26201: if (__n) 26201: { 26201: 26201: __grouping_tmp += static_cast(__n); 26201: __n = 0; 26201: } 26201: else 26201: { 26201: __testvalid = false; 26201: break; 26201: } 26201: } 26201: else 26201: break; 26201: } 26201: if (__res.empty()) 26201: __testvalid = false; 26201: break; 26201: case money_base::space: 26201: 26201: if (__beg != __end && __ctype.is(ctype_base::space, *__beg)) 26201: ++__beg; 26201: else 26201: __testvalid = false; 26201: 26201: case money_base::none: 26201: 26201: if (__i != 3) 26201: for (; __beg != __end 26201: && __ctype.is(ctype_base::space, *__beg); ++__beg); 26201: break; 26201: } 26201: } 26201: 26201: 26201: if (__sign_size > 1 && __testvalid) 26201: { 26201: const char_type* __sign = __negative ? __lc->_M_negative_sign 26201: : __lc->_M_positive_sign; 26201: size_type __i = 1; 26201: for (; __beg != __end && __i < __sign_size 26201: && *__beg == __sign[__i]; ++__beg, (void)++__i); 26201: 26201: if (__i != __sign_size) 26201: __testvalid = false; 26201: } 26201: 26201: if (__testvalid) 26201: { 26201: 26201: if (__res.size() > 1) 26201: { 26201: const size_type __first = __res.find_first_not_of('0'); 26201: const bool __only_zeros = __first == string::npos; 26201: if (__first) 26201: __res.erase(0, __only_zeros ? __res.size() - 1 : __first); 26201: } 26201: 26201: 26201: if (__negative && __res[0] != '0') 26201: __res.insert(__res.begin(), '-'); 26201: 26201: 26201: if (__grouping_tmp.size()) 26201: { 26201: 26201: __grouping_tmp += static_cast(__testdecfound ? __last_pos 26201: : __n); 26201: if (!std::__verify_grouping(__lc->_M_grouping, 26201: __lc->_M_grouping_size, 26201: __grouping_tmp)) 26201: __err |= ios_base::failbit; 26201: } 26201: 26201: 26201: if (__testdecfound && __n != __lc->_M_frac_digits) 26201: __testvalid = false; 26201: } 26201: 26201: 26201: if (!__testvalid) 26201: __err |= ios_base::failbit; 26201: else 26201: __units.swap(__res); 26201: 26201: 26201: if (__beg == __end) 26201: __err |= ios_base::eofbit; 26201: return __beg; 26201: } 26201: # 368 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.tcc" 3 26201: template 26201: _InIter 26201: money_get<_CharT, _InIter>:: 26201: do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io, 26201: ios_base::iostate& __err, long double& __units) const 26201: { 26201: string __str; 26201: __beg = __intl ? _M_extract(__beg, __end, __io, __err, __str) 26201: : _M_extract(__beg, __end, __io, __err, __str); 26201: std::__convert_to_v(__str.c_str(), __units, __err, _S_get_c_locale()); 26201: return __beg; 26201: } 26201: 26201: template 26201: _InIter 26201: money_get<_CharT, _InIter>:: 26201: do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io, 26201: ios_base::iostate& __err, string_type& __digits) const 26201: { 26201: typedef typename string::size_type size_type; 26201: 26201: const locale& __loc = __io._M_getloc(); 26201: const ctype<_CharT>& __ctype = use_facet >(__loc); 26201: 26201: string __str; 26201: __beg = __intl ? _M_extract(__beg, __end, __io, __err, __str) 26201: : _M_extract(__beg, __end, __io, __err, __str); 26201: const size_type __len = __str.size(); 26201: if (__len) 26201: { 26201: __digits.resize(__len); 26201: __ctype.widen(__str.data(), __str.data() + __len, &__digits[0]); 26201: } 26201: return __beg; 26201: } 26201: 26201: template 26201: template 26201: _OutIter 26201: money_put<_CharT, _OutIter>:: 26201: _M_insert(iter_type __s, ios_base& __io, char_type __fill, 26201: const string_type& __digits) const 26201: { 26201: typedef typename string_type::size_type size_type; 26201: typedef money_base::part part; 26201: typedef __moneypunct_cache<_CharT, _Intl> __cache_type; 26201: 26201: const locale& __loc = __io._M_getloc(); 26201: const ctype<_CharT>& __ctype = use_facet >(__loc); 26201: 26201: __use_cache<__cache_type> __uc; 26201: const __cache_type* __lc = __uc(__loc); 26201: const char_type* __lit = __lc->_M_atoms; 26201: 26201: 26201: 26201: const char_type* __beg = __digits.data(); 26201: 26201: money_base::pattern __p; 26201: const char_type* __sign; 26201: size_type __sign_size; 26201: if (!(*__beg == __lit[money_base::_S_minus])) 26201: { 26201: __p = __lc->_M_pos_format; 26201: __sign = __lc->_M_positive_sign; 26201: __sign_size = __lc->_M_positive_sign_size; 26201: } 26201: else 26201: { 26201: __p = __lc->_M_neg_format; 26201: __sign = __lc->_M_negative_sign; 26201: __sign_size = __lc->_M_negative_sign_size; 26201: if (__digits.size()) 26201: ++__beg; 26201: } 26201: 26201: 26201: size_type __len = __ctype.scan_not(ctype_base::digit, __beg, 26201: __beg + __digits.size()) - __beg; 26201: if (__len) 26201: { 26201: 26201: 26201: 26201: string_type __value; 26201: __value.reserve(2 * __len); 26201: 26201: 26201: 26201: long __paddec = __len - __lc->_M_frac_digits; 26201: if (__paddec > 0) 26201: { 26201: if (__lc->_M_frac_digits < 0) 26201: __paddec = __len; 26201: if (__lc->_M_grouping_size) 26201: { 26201: __value.assign(2 * __paddec, char_type()); 26201: _CharT* __vend = 26201: std::__add_grouping(&__value[0], __lc->_M_thousands_sep, 26201: __lc->_M_grouping, 26201: __lc->_M_grouping_size, 26201: __beg, __beg + __paddec); 26201: __value.erase(__vend - &__value[0]); 26201: } 26201: else 26201: __value.assign(__beg, __paddec); 26201: } 26201: 26201: 26201: if (__lc->_M_frac_digits > 0) 26201: { 26201: __value += __lc->_M_decimal_point; 26201: if (__paddec >= 0) 26201: __value.append(__beg + __paddec, __lc->_M_frac_digits); 26201: else 26201: { 26201: 26201: __value.append(-__paddec, __lit[money_base::_S_zero]); 26201: __value.append(__beg, __len); 26201: } 26201: } 26201: 26201: 26201: const ios_base::fmtflags __f = __io.flags() 26201: & ios_base::adjustfield; 26201: __len = __value.size() + __sign_size; 26201: __len += ((__io.flags() & ios_base::showbase) 26201: ? __lc->_M_curr_symbol_size : 0); 26201: 26201: string_type __res; 26201: __res.reserve(2 * __len); 26201: 26201: const size_type __width = static_cast(__io.width()); 26201: const bool __testipad = (__f == ios_base::internal 26201: && __len < __width); 26201: 26201: for (int __i = 0; __i < 4; ++__i) 26201: { 26201: const part __which = static_cast(__p.field[__i]); 26201: switch (__which) 26201: { 26201: case money_base::symbol: 26201: if (__io.flags() & ios_base::showbase) 26201: __res.append(__lc->_M_curr_symbol, 26201: __lc->_M_curr_symbol_size); 26201: break; 26201: case money_base::sign: 26201: 26201: 26201: 26201: if (__sign_size) 26201: __res += __sign[0]; 26201: break; 26201: case money_base::value: 26201: __res += __value; 26201: break; 26201: case money_base::space: 26201: 26201: 26201: 26201: if (__testipad) 26201: __res.append(__width - __len, __fill); 26201: else 26201: __res += __fill; 26201: break; 26201: case money_base::none: 26201: if (__testipad) 26201: __res.append(__width - __len, __fill); 26201: break; 26201: } 26201: } 26201: 26201: 26201: if (__sign_size > 1) 26201: __res.append(__sign + 1, __sign_size - 1); 26201: 26201: 26201: __len = __res.size(); 26201: if (__width > __len) 26201: { 26201: if (__f == ios_base::left) 26201: 26201: __res.append(__width - __len, __fill); 26201: else 26201: 26201: __res.insert(0, __width - __len, __fill); 26201: __len = __width; 26201: } 26201: 26201: 26201: __s = std::__write(__s, __res.data(), __len); 26201: } 26201: __io.width(0); 26201: return __s; 26201: } 26201: # 574 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.tcc" 3 26201: template 26201: _OutIter 26201: money_put<_CharT, _OutIter>:: 26201: do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, 26201: long double __units) const 26201: { 26201: const locale __loc = __io.getloc(); 26201: const ctype<_CharT>& __ctype = use_facet >(__loc); 26201: 26201: 26201: int __cs_size = 64; 26201: char* __cs = static_cast(__builtin_alloca(__cs_size)); 26201: 26201: 26201: int __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 26201: "%.*Lf", 0, __units); 26201: 26201: if (__len >= __cs_size) 26201: { 26201: __cs_size = __len + 1; 26201: __cs = static_cast(__builtin_alloca(__cs_size)); 26201: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 26201: "%.*Lf", 0, __units); 26201: } 26201: # 606 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.tcc" 3 26201: string_type __digits(__len, char_type()); 26201: __ctype.widen(__cs, __cs + __len, &__digits[0]); 26201: return __intl ? _M_insert(__s, __io, __fill, __digits) 26201: : _M_insert(__s, __io, __fill, __digits); 26201: } 26201: 26201: template 26201: _OutIter 26201: money_put<_CharT, _OutIter>:: 26201: do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, 26201: const string_type& __digits) const 26201: { return __intl ? _M_insert(__s, __io, __fill, __digits) 26201: : _M_insert(__s, __io, __fill, __digits); } 26201: 26201: } 26201: 26201: 26201: 26201: 26201: template 26201: time_base::dateorder 26201: time_get<_CharT, _InIter>::do_date_order() const 26201: { return time_base::no_order; } 26201: 26201: 26201: 26201: template 26201: _InIter 26201: time_get<_CharT, _InIter>:: 26201: _M_extract_via_format(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, tm* __tm, 26201: const _CharT* __format) const 26201: { 26201: const locale& __loc = __io._M_getloc(); 26201: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 26201: const ctype<_CharT>& __ctype = use_facet >(__loc); 26201: const size_t __len = char_traits<_CharT>::length(__format); 26201: 26201: ios_base::iostate __tmperr = ios_base::goodbit; 26201: size_t __i = 0; 26201: for (; __beg != __end && __i < __len && !__tmperr; ++__i) 26201: { 26201: if (__ctype.narrow(__format[__i], 0) == '%') 26201: { 26201: 26201: char __c = __ctype.narrow(__format[++__i], 0); 26201: int __mem = 0; 26201: if (__c == 'E' || __c == 'O') 26201: __c = __ctype.narrow(__format[++__i], 0); 26201: switch (__c) 26201: { 26201: const char* __cs; 26201: _CharT __wcs[10]; 26201: case 'a': 26201: 26201: const char_type* __days1[7]; 26201: __tp._M_days_abbreviated(__days1); 26201: __beg = _M_extract_name(__beg, __end, __mem, __days1, 26201: 7, __io, __tmperr); 26201: if (!__tmperr) 26201: __tm->tm_wday = __mem; 26201: break; 26201: case 'A': 26201: 26201: const char_type* __days2[7]; 26201: __tp._M_days(__days2); 26201: __beg = _M_extract_name(__beg, __end, __mem, __days2, 26201: 7, __io, __tmperr); 26201: if (!__tmperr) 26201: __tm->tm_wday = __mem; 26201: break; 26201: case 'h': 26201: case 'b': 26201: 26201: const char_type* __months1[12]; 26201: __tp._M_months_abbreviated(__months1); 26201: __beg = _M_extract_name(__beg, __end, __mem, 26201: __months1, 12, __io, __tmperr); 26201: if (!__tmperr) 26201: __tm->tm_mon = __mem; 26201: break; 26201: case 'B': 26201: 26201: const char_type* __months2[12]; 26201: __tp._M_months(__months2); 26201: __beg = _M_extract_name(__beg, __end, __mem, 26201: __months2, 12, __io, __tmperr); 26201: if (!__tmperr) 26201: __tm->tm_mon = __mem; 26201: break; 26201: case 'c': 26201: 26201: const char_type* __dt[2]; 26201: __tp._M_date_time_formats(__dt); 26201: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 26201: __tm, __dt[0]); 26201: break; 26201: case 'd': 26201: 26201: __beg = _M_extract_num(__beg, __end, __mem, 1, 31, 2, 26201: __io, __tmperr); 26201: if (!__tmperr) 26201: __tm->tm_mday = __mem; 26201: break; 26201: case 'e': 26201: 26201: 26201: if (__ctype.is(ctype_base::space, *__beg)) 26201: __beg = _M_extract_num(++__beg, __end, __mem, 1, 9, 26201: 1, __io, __tmperr); 26201: else 26201: __beg = _M_extract_num(__beg, __end, __mem, 10, 31, 26201: 2, __io, __tmperr); 26201: if (!__tmperr) 26201: __tm->tm_mday = __mem; 26201: break; 26201: case 'D': 26201: 26201: __cs = "%m/%d/%y"; 26201: __ctype.widen(__cs, __cs + 9, __wcs); 26201: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 26201: __tm, __wcs); 26201: break; 26201: case 'H': 26201: 26201: __beg = _M_extract_num(__beg, __end, __mem, 0, 23, 2, 26201: __io, __tmperr); 26201: if (!__tmperr) 26201: __tm->tm_hour = __mem; 26201: break; 26201: case 'I': 26201: 26201: __beg = _M_extract_num(__beg, __end, __mem, 1, 12, 2, 26201: __io, __tmperr); 26201: if (!__tmperr) 26201: __tm->tm_hour = __mem; 26201: break; 26201: case 'm': 26201: 26201: __beg = _M_extract_num(__beg, __end, __mem, 1, 12, 2, 26201: __io, __tmperr); 26201: if (!__tmperr) 26201: __tm->tm_mon = __mem - 1; 26201: break; 26201: case 'M': 26201: 26201: __beg = _M_extract_num(__beg, __end, __mem, 0, 59, 2, 26201: __io, __tmperr); 26201: if (!__tmperr) 26201: __tm->tm_min = __mem; 26201: break; 26201: case 'n': 26201: if (__ctype.narrow(*__beg, 0) == '\n') 26201: ++__beg; 26201: else 26201: __tmperr |= ios_base::failbit; 26201: break; 26201: case 'R': 26201: 26201: __cs = "%H:%M"; 26201: __ctype.widen(__cs, __cs + 6, __wcs); 26201: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 26201: __tm, __wcs); 26201: break; 26201: case 'S': 26201: 26201: 26201: 26201: __beg = _M_extract_num(__beg, __end, __mem, 0, 60, 2, 26201: 26201: 26201: 26201: __io, __tmperr); 26201: if (!__tmperr) 26201: __tm->tm_sec = __mem; 26201: break; 26201: case 't': 26201: if (__ctype.narrow(*__beg, 0) == '\t') 26201: ++__beg; 26201: else 26201: __tmperr |= ios_base::failbit; 26201: break; 26201: case 'T': 26201: 26201: __cs = "%H:%M:%S"; 26201: __ctype.widen(__cs, __cs + 9, __wcs); 26201: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 26201: __tm, __wcs); 26201: break; 26201: case 'x': 26201: 26201: const char_type* __dates[2]; 26201: __tp._M_date_formats(__dates); 26201: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 26201: __tm, __dates[0]); 26201: break; 26201: case 'X': 26201: 26201: const char_type* __times[2]; 26201: __tp._M_time_formats(__times); 26201: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 26201: __tm, __times[0]); 26201: break; 26201: case 'y': 26201: case 'C': 26201: 26201: case 'Y': 26201: 26201: 26201: 26201: 26201: __beg = _M_extract_num(__beg, __end, __mem, 0, 9999, 4, 26201: __io, __tmperr); 26201: if (!__tmperr) 26201: __tm->tm_year = __mem < 0 ? __mem + 100 : __mem - 1900; 26201: break; 26201: case 'Z': 26201: 26201: if (__ctype.is(ctype_base::upper, *__beg)) 26201: { 26201: int __tmp; 26201: __beg = _M_extract_name(__beg, __end, __tmp, 26201: __timepunct_cache<_CharT>::_S_timezones, 26201: 14, __io, __tmperr); 26201: 26201: 26201: if (__beg != __end && !__tmperr && __tmp == 0 26201: && (*__beg == __ctype.widen('-') 26201: || *__beg == __ctype.widen('+'))) 26201: { 26201: __beg = _M_extract_num(__beg, __end, __tmp, 0, 23, 2, 26201: __io, __tmperr); 26201: __beg = _M_extract_num(__beg, __end, __tmp, 0, 59, 2, 26201: __io, __tmperr); 26201: } 26201: } 26201: else 26201: __tmperr |= ios_base::failbit; 26201: break; 26201: default: 26201: 26201: __tmperr |= ios_base::failbit; 26201: } 26201: } 26201: else 26201: { 26201: 26201: if (__format[__i] == *__beg) 26201: ++__beg; 26201: else 26201: __tmperr |= ios_base::failbit; 26201: } 26201: } 26201: 26201: if (__tmperr || __i != __len) 26201: __err |= ios_base::failbit; 26201: 26201: return __beg; 26201: } 26201: 26201: template 26201: _InIter 26201: time_get<_CharT, _InIter>:: 26201: _M_extract_num(iter_type __beg, iter_type __end, int& __member, 26201: int __min, int __max, size_t __len, 26201: ios_base& __io, ios_base::iostate& __err) const 26201: { 26201: const locale& __loc = __io._M_getloc(); 26201: const ctype<_CharT>& __ctype = use_facet >(__loc); 26201: 26201: 26201: int __mult = __len == 2 ? 10 : (__len == 4 ? 1000 : 1); 26201: 26201: ++__min; 26201: size_t __i = 0; 26201: int __value = 0; 26201: for (; __beg != __end && __i < __len; ++__beg, (void)++__i) 26201: { 26201: const char __c = __ctype.narrow(*__beg, '*'); 26201: if (__c >= '0' && __c <= '9') 26201: { 26201: __value = __value * 10 + (__c - '0'); 26201: const int __valuec = __value * __mult; 26201: if (__valuec > __max || __valuec + __mult < __min) 26201: break; 26201: __mult /= 10; 26201: } 26201: else 26201: break; 26201: } 26201: if (__i == __len) 26201: __member = __value; 26201: 26201: else if (__len == 4 && __i == 2) 26201: __member = __value - 100; 26201: else 26201: __err |= ios_base::failbit; 26201: 26201: return __beg; 26201: } 26201: 26201: 26201: 26201: template 26201: _InIter 26201: time_get<_CharT, _InIter>:: 26201: _M_extract_name(iter_type __beg, iter_type __end, int& __member, 26201: const _CharT** __names, size_t __indexlen, 26201: ios_base& __io, ios_base::iostate& __err) const 26201: { 26201: typedef char_traits<_CharT> __traits_type; 26201: const locale& __loc = __io._M_getloc(); 26201: const ctype<_CharT>& __ctype = use_facet >(__loc); 26201: 26201: int* __matches = static_cast(__builtin_alloca(sizeof(int) 26201: * __indexlen)); 26201: size_t __nmatches = 0; 26201: size_t __pos = 0; 26201: bool __testvalid = true; 26201: const char_type* __name; 26201: 26201: 26201: 26201: 26201: 26201: if (__beg != __end) 26201: { 26201: const char_type __c = *__beg; 26201: for (size_t __i1 = 0; __i1 < __indexlen; ++__i1) 26201: if (__c == __names[__i1][0] 26201: || __c == __ctype.toupper(__names[__i1][0])) 26201: __matches[__nmatches++] = __i1; 26201: } 26201: 26201: while (__nmatches > 1) 26201: { 26201: 26201: size_t __minlen = __traits_type::length(__names[__matches[0]]); 26201: for (size_t __i2 = 1; __i2 < __nmatches; ++__i2) 26201: __minlen = std::min(__minlen, 26201: __traits_type::length(__names[__matches[__i2]])); 26201: ++__beg; 26201: ++__pos; 26201: if (__pos < __minlen && __beg != __end) 26201: for (size_t __i3 = 0; __i3 < __nmatches;) 26201: { 26201: __name = __names[__matches[__i3]]; 26201: if (!(__name[__pos] == *__beg)) 26201: __matches[__i3] = __matches[--__nmatches]; 26201: else 26201: ++__i3; 26201: } 26201: else 26201: break; 26201: } 26201: 26201: if (__nmatches == 1) 26201: { 26201: 26201: ++__beg; 26201: ++__pos; 26201: __name = __names[__matches[0]]; 26201: const size_t __len = __traits_type::length(__name); 26201: while (__pos < __len && __beg != __end && __name[__pos] == *__beg) 26201: ++__beg, (void)++__pos; 26201: 26201: if (__len == __pos) 26201: __member = __matches[0]; 26201: else 26201: __testvalid = false; 26201: } 26201: else 26201: __testvalid = false; 26201: if (!__testvalid) 26201: __err |= ios_base::failbit; 26201: 26201: return __beg; 26201: } 26201: 26201: template 26201: _InIter 26201: time_get<_CharT, _InIter>:: 26201: _M_extract_wday_or_month(iter_type __beg, iter_type __end, int& __member, 26201: const _CharT** __names, size_t __indexlen, 26201: ios_base& __io, ios_base::iostate& __err) const 26201: { 26201: typedef char_traits<_CharT> __traits_type; 26201: const locale& __loc = __io._M_getloc(); 26201: const ctype<_CharT>& __ctype = use_facet >(__loc); 26201: 26201: int* __matches = static_cast(__builtin_alloca(2 * sizeof(int) 26201: * __indexlen)); 26201: size_t __nmatches = 0; 26201: size_t* __matches_lengths = 0; 26201: size_t __pos = 0; 26201: 26201: if (__beg != __end) 26201: { 26201: const char_type __c = *__beg; 26201: for (size_t __i = 0; __i < 2 * __indexlen; ++__i) 26201: if (__c == __names[__i][0] 26201: || __c == __ctype.toupper(__names[__i][0])) 26201: __matches[__nmatches++] = __i; 26201: } 26201: 26201: if (__nmatches) 26201: { 26201: ++__beg; 26201: ++__pos; 26201: 26201: __matches_lengths 26201: = static_cast(__builtin_alloca(sizeof(size_t) 26201: * __nmatches)); 26201: for (size_t __i = 0; __i < __nmatches; ++__i) 26201: __matches_lengths[__i] 26201: = __traits_type::length(__names[__matches[__i]]); 26201: } 26201: 26201: for (; __beg != __end; ++__beg, (void)++__pos) 26201: { 26201: size_t __nskipped = 0; 26201: const char_type __c = *__beg; 26201: for (size_t __i = 0; __i < __nmatches;) 26201: { 26201: const char_type* __name = __names[__matches[__i]]; 26201: if (__pos >= __matches_lengths[__i]) 26201: ++__nskipped, ++__i; 26201: else if (!(__name[__pos] == __c)) 26201: { 26201: --__nmatches; 26201: __matches[__i] = __matches[__nmatches]; 26201: __matches_lengths[__i] = __matches_lengths[__nmatches]; 26201: } 26201: else 26201: ++__i; 26201: } 26201: if (__nskipped == __nmatches) 26201: break; 26201: } 26201: 26201: if ((__nmatches == 1 && __matches_lengths[0] == __pos) 26201: || (__nmatches == 2 && (__matches_lengths[0] == __pos 26201: || __matches_lengths[1] == __pos))) 26201: __member = (__matches[0] >= (int)__indexlen 26201: ? __matches[0] - (int)__indexlen : __matches[0]); 26201: else 26201: __err |= ios_base::failbit; 26201: 26201: return __beg; 26201: } 26201: 26201: template 26201: _InIter 26201: time_get<_CharT, _InIter>:: 26201: do_get_time(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, tm* __tm) const 26201: { 26201: const locale& __loc = __io._M_getloc(); 26201: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 26201: const char_type* __times[2]; 26201: __tp._M_time_formats(__times); 26201: __beg = _M_extract_via_format(__beg, __end, __io, __err, 26201: __tm, __times[0]); 26201: if (__beg == __end) 26201: __err |= ios_base::eofbit; 26201: return __beg; 26201: } 26201: 26201: template 26201: _InIter 26201: time_get<_CharT, _InIter>:: 26201: do_get_date(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, tm* __tm) const 26201: { 26201: const locale& __loc = __io._M_getloc(); 26201: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 26201: const char_type* __dates[2]; 26201: __tp._M_date_formats(__dates); 26201: __beg = _M_extract_via_format(__beg, __end, __io, __err, 26201: __tm, __dates[0]); 26201: if (__beg == __end) 26201: __err |= ios_base::eofbit; 26201: return __beg; 26201: } 26201: 26201: template 26201: _InIter 26201: time_get<_CharT, _InIter>:: 26201: do_get_weekday(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, tm* __tm) const 26201: { 26201: const locale& __loc = __io._M_getloc(); 26201: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 26201: const char_type* __days[14]; 26201: __tp._M_days_abbreviated(__days); 26201: __tp._M_days(__days + 7); 26201: int __tmpwday; 26201: ios_base::iostate __tmperr = ios_base::goodbit; 26201: 26201: __beg = _M_extract_wday_or_month(__beg, __end, __tmpwday, __days, 7, 26201: __io, __tmperr); 26201: if (!__tmperr) 26201: __tm->tm_wday = __tmpwday; 26201: else 26201: __err |= ios_base::failbit; 26201: 26201: if (__beg == __end) 26201: __err |= ios_base::eofbit; 26201: return __beg; 26201: } 26201: 26201: template 26201: _InIter 26201: time_get<_CharT, _InIter>:: 26201: do_get_monthname(iter_type __beg, iter_type __end, 26201: ios_base& __io, ios_base::iostate& __err, tm* __tm) const 26201: { 26201: const locale& __loc = __io._M_getloc(); 26201: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 26201: const char_type* __months[24]; 26201: __tp._M_months_abbreviated(__months); 26201: __tp._M_months(__months + 12); 26201: int __tmpmon; 26201: ios_base::iostate __tmperr = ios_base::goodbit; 26201: 26201: __beg = _M_extract_wday_or_month(__beg, __end, __tmpmon, __months, 12, 26201: __io, __tmperr); 26201: if (!__tmperr) 26201: __tm->tm_mon = __tmpmon; 26201: else 26201: __err |= ios_base::failbit; 26201: 26201: if (__beg == __end) 26201: __err |= ios_base::eofbit; 26201: return __beg; 26201: } 26201: 26201: template 26201: _InIter 26201: time_get<_CharT, _InIter>:: 26201: do_get_year(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, tm* __tm) const 26201: { 26201: int __tmpyear; 26201: ios_base::iostate __tmperr = ios_base::goodbit; 26201: 26201: __beg = _M_extract_num(__beg, __end, __tmpyear, 0, 9999, 4, 26201: __io, __tmperr); 26201: if (!__tmperr) 26201: __tm->tm_year = __tmpyear < 0 ? __tmpyear + 100 : __tmpyear - 1900; 26201: else 26201: __err |= ios_base::failbit; 26201: 26201: if (__beg == __end) 26201: __err |= ios_base::eofbit; 26201: return __beg; 26201: } 26201: 26201: 26201: template 26201: inline 26201: _InIter 26201: time_get<_CharT, _InIter>:: 26201: get(iter_type __s, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, tm* __tm, const char_type* __fmt, 26201: const char_type* __fmtend) const 26201: { 26201: const locale& __loc = __io._M_getloc(); 26201: ctype<_CharT> const& __ctype = use_facet >(__loc); 26201: __err = ios_base::goodbit; 26201: while (__fmt != __fmtend && 26201: __err == ios_base::goodbit) 26201: { 26201: if (__s == __end) 26201: { 26201: __err = ios_base::eofbit | ios_base::failbit; 26201: break; 26201: } 26201: else if (__ctype.narrow(*__fmt, 0) == '%') 26201: { 26201: char __format; 26201: char __mod = 0; 26201: if (++__fmt == __fmtend) 26201: { 26201: __err = ios_base::failbit; 26201: break; 26201: } 26201: const char __c = __ctype.narrow(*__fmt, 0); 26201: if (__c != 'E' && __c != 'O') 26201: __format = __c; 26201: else if (++__fmt != __fmtend) 26201: { 26201: __mod = __c; 26201: __format = __ctype.narrow(*__fmt, 0); 26201: } 26201: else 26201: { 26201: __err = ios_base::failbit; 26201: break; 26201: } 26201: __s = this->do_get(__s, __end, __io, __err, __tm, __format, 26201: __mod); 26201: ++__fmt; 26201: } 26201: else if (__ctype.is(ctype_base::space, *__fmt)) 26201: { 26201: ++__fmt; 26201: while (__fmt != __fmtend && 26201: __ctype.is(ctype_base::space, *__fmt)) 26201: ++__fmt; 26201: 26201: while (__s != __end && 26201: __ctype.is(ctype_base::space, *__s)) 26201: ++__s; 26201: } 26201: 26201: else if (__ctype.tolower(*__s) == __ctype.tolower(*__fmt) || 26201: __ctype.toupper(*__s) == __ctype.toupper(*__fmt)) 26201: { 26201: ++__s; 26201: ++__fmt; 26201: } 26201: else 26201: { 26201: __err = ios_base::failbit; 26201: break; 26201: } 26201: } 26201: return __s; 26201: } 26201: 26201: template 26201: inline 26201: _InIter 26201: time_get<_CharT, _InIter>:: 26201: do_get(iter_type __beg, iter_type __end, ios_base& __io, 26201: ios_base::iostate& __err, tm* __tm, 26201: char __format, char __mod) const 26201: { 26201: const locale& __loc = __io._M_getloc(); 26201: ctype<_CharT> const& __ctype = use_facet >(__loc); 26201: __err = ios_base::goodbit; 26201: 26201: char_type __fmt[4]; 26201: __fmt[0] = __ctype.widen('%'); 26201: if (!__mod) 26201: { 26201: __fmt[1] = __format; 26201: __fmt[2] = char_type(); 26201: } 26201: else 26201: { 26201: __fmt[1] = __mod; 26201: __fmt[2] = __format; 26201: __fmt[3] = char_type(); 26201: } 26201: 26201: __beg = _M_extract_via_format(__beg, __end, __io, __err, __tm, __fmt); 26201: if (__beg == __end) 26201: __err |= ios_base::eofbit; 26201: return __beg; 26201: } 26201: 26201: 26201: 26201: template 26201: _OutIter 26201: time_put<_CharT, _OutIter>:: 26201: put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm, 26201: const _CharT* __beg, const _CharT* __end) const 26201: { 26201: const locale& __loc = __io._M_getloc(); 26201: ctype<_CharT> const& __ctype = use_facet >(__loc); 26201: for (; __beg != __end; ++__beg) 26201: if (__ctype.narrow(*__beg, 0) != '%') 26201: { 26201: *__s = *__beg; 26201: ++__s; 26201: } 26201: else if (++__beg != __end) 26201: { 26201: char __format; 26201: char __mod = 0; 26201: const char __c = __ctype.narrow(*__beg, 0); 26201: if (__c != 'E' && __c != 'O') 26201: __format = __c; 26201: else if (++__beg != __end) 26201: { 26201: __mod = __c; 26201: __format = __ctype.narrow(*__beg, 0); 26201: } 26201: else 26201: break; 26201: __s = this->do_put(__s, __io, __fill, __tm, __format, __mod); 26201: } 26201: else 26201: break; 26201: return __s; 26201: } 26201: 26201: template 26201: _OutIter 26201: time_put<_CharT, _OutIter>:: 26201: do_put(iter_type __s, ios_base& __io, char_type, const tm* __tm, 26201: char __format, char __mod) const 26201: { 26201: const locale& __loc = __io._M_getloc(); 26201: ctype<_CharT> const& __ctype = use_facet >(__loc); 26201: __timepunct<_CharT> const& __tp = use_facet<__timepunct<_CharT> >(__loc); 26201: 26201: 26201: 26201: const size_t __maxlen = 128; 26201: char_type __res[__maxlen]; 26201: 26201: 26201: 26201: 26201: 26201: 26201: char_type __fmt[4]; 26201: __fmt[0] = __ctype.widen('%'); 26201: if (!__mod) 26201: { 26201: __fmt[1] = __format; 26201: __fmt[2] = char_type(); 26201: } 26201: else 26201: { 26201: __fmt[1] = __mod; 26201: __fmt[2] = __format; 26201: __fmt[3] = char_type(); 26201: } 26201: 26201: __tp._M_put(__res, __maxlen, __fmt, __tm); 26201: 26201: 26201: return std::__write(__s, __res, char_traits::length(__res)); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: extern template class moneypunct; 26201: extern template class moneypunct; 26201: extern template class moneypunct_byname; 26201: extern template class moneypunct_byname; 26201: extern template class __cxx11:: money_get; 26201: extern template class __cxx11:: money_put; 26201: extern template class __timepunct; 26201: extern template class time_put; 26201: extern template class time_put_byname; 26201: extern template class time_get; 26201: extern template class time_get_byname; 26201: extern template class messages; 26201: extern template class messages_byname; 26201: 26201: extern template 26201: const moneypunct& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: const moneypunct& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: const money_put& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: const money_get& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: const __timepunct& 26201: use_facet<__timepunct >(const locale&); 26201: 26201: extern template 26201: const time_put& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: const time_get& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: const messages& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet<__timepunct >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: 26201: extern template class moneypunct; 26201: extern template class moneypunct; 26201: extern template class moneypunct_byname; 26201: extern template class moneypunct_byname; 26201: extern template class __cxx11:: money_get; 26201: extern template class __cxx11:: money_put; 26201: extern template class __timepunct; 26201: extern template class time_put; 26201: extern template class time_put_byname; 26201: extern template class time_get; 26201: extern template class time_get_byname; 26201: extern template class messages; 26201: extern template class messages_byname; 26201: 26201: extern template 26201: const moneypunct& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: const moneypunct& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: const money_put& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: const money_get& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: const __timepunct& 26201: use_facet<__timepunct >(const locale&); 26201: 26201: extern template 26201: const time_put& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: const time_get& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: const messages& 26201: use_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet<__timepunct >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: extern template 26201: bool 26201: has_facet >(const locale&); 26201: 26201: 26201: 26201: 26201: } 26201: # 2016 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_facets_nonio.h" 2 3 26201: # 42 "/usr/x86_64-linux-gnu/include/c++/10/locale" 2 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_conv.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_conv.h" 3 26201: #define _LOCALE_CONV_H 1 26201: # 41 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_conv.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/unique_ptr.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/unique_ptr.h" 3 26201: #define _UNIQUE_PTR_H 1 26201: # 45 "/usr/x86_64-linux-gnu/include/c++/10/bits/unique_ptr.h" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #pragma GCC diagnostic push 26201: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 26201: template class auto_ptr; 26201: #pragma GCC diagnostic pop 26201: 26201: 26201: 26201: template 26201: struct default_delete 26201: { 26201: 26201: constexpr default_delete() noexcept = default; 26201: 26201: 26201: 26201: 26201: 26201: 26201: template>> 26201: default_delete(const default_delete<_Up>&) noexcept { } 26201: 26201: 26201: void 26201: operator()(_Tp* __ptr) const 26201: { 26201: static_assert(!is_void<_Tp>::value, 26201: "can't delete pointer to incomplete type"); 26201: static_assert(sizeof(_Tp)>0, 26201: "can't delete pointer to incomplete type"); 26201: delete __ptr; 26201: } 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct default_delete<_Tp[]> 26201: { 26201: public: 26201: 26201: constexpr default_delete() noexcept = default; 26201: # 109 "/usr/x86_64-linux-gnu/include/c++/10/bits/unique_ptr.h" 3 26201: template>> 26201: default_delete(const default_delete<_Up[]>&) noexcept { } 26201: 26201: 26201: template 26201: typename enable_if::value>::type 26201: operator()(_Up* __ptr) const 26201: { 26201: static_assert(sizeof(_Tp)>0, 26201: "can't delete pointer to incomplete type"); 26201: delete [] __ptr; 26201: } 26201: }; 26201: 26201: 26201: 26201: 26201: template 26201: class __uniq_ptr_impl 26201: { 26201: template 26201: struct _Ptr 26201: { 26201: using type = _Up*; 26201: }; 26201: 26201: template 26201: struct 26201: _Ptr<_Up, _Ep, __void_t::type::pointer>> 26201: { 26201: using type = typename remove_reference<_Ep>::type::pointer; 26201: }; 26201: 26201: public: 26201: using _DeleterConstraint = enable_if< 26201: __and_<__not_>, 26201: is_default_constructible<_Dp>>::value>; 26201: 26201: using pointer = typename _Ptr<_Tp, _Dp>::type; 26201: 26201: static_assert( !is_rvalue_reference<_Dp>::value, 26201: "unique_ptr's deleter type must be a function object type" 26201: " or an lvalue reference type" ); 26201: 26201: __uniq_ptr_impl() = default; 26201: __uniq_ptr_impl(pointer __p) : _M_t() { _M_ptr() = __p; } 26201: 26201: template 26201: __uniq_ptr_impl(pointer __p, _Del&& __d) 26201: : _M_t(__p, std::forward<_Del>(__d)) { } 26201: 26201: __uniq_ptr_impl(__uniq_ptr_impl&& __u) noexcept 26201: : _M_t(std::move(__u._M_t)) 26201: { __u._M_ptr() = nullptr; } 26201: 26201: __uniq_ptr_impl& operator=(__uniq_ptr_impl&& __u) noexcept 26201: { 26201: reset(__u.release()); 26201: _M_deleter() = std::forward<_Dp>(__u._M_deleter()); 26201: return *this; 26201: } 26201: 26201: pointer& _M_ptr() { return std::get<0>(_M_t); } 26201: pointer _M_ptr() const { return std::get<0>(_M_t); } 26201: _Dp& _M_deleter() { return std::get<1>(_M_t); } 26201: const _Dp& _M_deleter() const { return std::get<1>(_M_t); } 26201: 26201: void reset(pointer __p) noexcept 26201: { 26201: const pointer __old_p = _M_ptr(); 26201: _M_ptr() = __p; 26201: if (__old_p) 26201: _M_deleter()(__old_p); 26201: } 26201: 26201: pointer release() noexcept 26201: { 26201: pointer __p = _M_ptr(); 26201: _M_ptr() = nullptr; 26201: return __p; 26201: } 26201: 26201: void 26201: swap(__uniq_ptr_impl& __rhs) noexcept 26201: { 26201: using std::swap; 26201: swap(this->_M_ptr(), __rhs._M_ptr()); 26201: swap(this->_M_deleter(), __rhs._M_deleter()); 26201: } 26201: 26201: private: 26201: tuple _M_t; 26201: }; 26201: 26201: 26201: template ::value, 26201: bool = is_move_assignable<_Dp>::value> 26201: struct __uniq_ptr_data : __uniq_ptr_impl<_Tp, _Dp> 26201: { 26201: using __uniq_ptr_impl<_Tp, _Dp>::__uniq_ptr_impl; 26201: __uniq_ptr_data(__uniq_ptr_data&&) = default; 26201: __uniq_ptr_data& operator=(__uniq_ptr_data&&) = default; 26201: }; 26201: 26201: template 26201: struct __uniq_ptr_data<_Tp, _Dp, true, false> : __uniq_ptr_impl<_Tp, _Dp> 26201: { 26201: using __uniq_ptr_impl<_Tp, _Dp>::__uniq_ptr_impl; 26201: __uniq_ptr_data(__uniq_ptr_data&&) = default; 26201: __uniq_ptr_data& operator=(__uniq_ptr_data&&) = delete; 26201: }; 26201: 26201: template 26201: struct __uniq_ptr_data<_Tp, _Dp, false, true> : __uniq_ptr_impl<_Tp, _Dp> 26201: { 26201: using __uniq_ptr_impl<_Tp, _Dp>::__uniq_ptr_impl; 26201: __uniq_ptr_data(__uniq_ptr_data&&) = delete; 26201: __uniq_ptr_data& operator=(__uniq_ptr_data&&) = default; 26201: }; 26201: 26201: template 26201: struct __uniq_ptr_data<_Tp, _Dp, false, false> : __uniq_ptr_impl<_Tp, _Dp> 26201: { 26201: using __uniq_ptr_impl<_Tp, _Dp>::__uniq_ptr_impl; 26201: __uniq_ptr_data(__uniq_ptr_data&&) = delete; 26201: __uniq_ptr_data& operator=(__uniq_ptr_data&&) = delete; 26201: }; 26201: 26201: 26201: 26201: template > 26201: class unique_ptr 26201: { 26201: template 26201: using _DeleterConstraint = 26201: typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type; 26201: 26201: __uniq_ptr_data<_Tp, _Dp> _M_t; 26201: 26201: public: 26201: using pointer = typename __uniq_ptr_impl<_Tp, _Dp>::pointer; 26201: using element_type = _Tp; 26201: using deleter_type = _Dp; 26201: 26201: private: 26201: 26201: 26201: template 26201: using __safe_conversion_up = __and_< 26201: is_convertible::pointer, pointer>, 26201: __not_> 26201: >; 26201: 26201: public: 26201: 26201: 26201: 26201: template> 26201: constexpr unique_ptr() noexcept 26201: : _M_t() 26201: { } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template> 26201: explicit 26201: unique_ptr(pointer __p) noexcept 26201: : _M_t(__p) 26201: { } 26201: # 292 "/usr/x86_64-linux-gnu/include/c++/10/bits/unique_ptr.h" 3 26201: template>> 26201: unique_ptr(pointer __p, const deleter_type& __d) noexcept 26201: : _M_t(__p, __d) { } 26201: # 304 "/usr/x86_64-linux-gnu/include/c++/10/bits/unique_ptr.h" 3 26201: template>> 26201: unique_ptr(pointer __p, 26201: __enable_if_t::value, 26201: _Del&&> __d) noexcept 26201: : _M_t(__p, std::move(__d)) 26201: { } 26201: 26201: template::type> 26201: unique_ptr(pointer, 26201: __enable_if_t::value, 26201: _DelUnref&&>) = delete; 26201: 26201: 26201: template> 26201: constexpr unique_ptr(nullptr_t) noexcept 26201: : _M_t() 26201: { } 26201: 26201: 26201: 26201: 26201: unique_ptr(unique_ptr&&) = default; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template, 26201: typename conditional::value, 26201: is_same<_Ep, _Dp>, 26201: is_convertible<_Ep, _Dp>>::type>> 26201: unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept 26201: : _M_t(__u.release(), std::forward<_Ep>(__u.get_deleter())) 26201: { } 26201: 26201: 26201: #pragma GCC diagnostic push 26201: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 26201: 26201: template, is_same<_Dp, default_delete<_Tp>>>> 26201: unique_ptr(auto_ptr<_Up>&& __u) noexcept; 26201: #pragma GCC diagnostic pop 26201: 26201: 26201: 26201: ~unique_ptr() noexcept 26201: { 26201: static_assert(__is_invocable::value, 26201: "unique_ptr's deleter must be invocable with a pointer"); 26201: auto& __ptr = _M_t._M_ptr(); 26201: if (__ptr != nullptr) 26201: get_deleter()(std::move(__ptr)); 26201: __ptr = pointer(); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: unique_ptr& operator=(unique_ptr&&) = default; 26201: # 380 "/usr/x86_64-linux-gnu/include/c++/10/bits/unique_ptr.h" 3 26201: template 26201: typename enable_if< __and_< 26201: __safe_conversion_up<_Up, _Ep>, 26201: is_assignable 26201: >::value, 26201: unique_ptr&>::type 26201: operator=(unique_ptr<_Up, _Ep>&& __u) noexcept 26201: { 26201: reset(__u.release()); 26201: get_deleter() = std::forward<_Ep>(__u.get_deleter()); 26201: return *this; 26201: } 26201: 26201: 26201: unique_ptr& 26201: operator=(nullptr_t) noexcept 26201: { 26201: reset(); 26201: return *this; 26201: } 26201: 26201: 26201: 26201: 26201: typename add_lvalue_reference::type 26201: operator*() const 26201: { 26201: ; 26201: return *get(); 26201: } 26201: 26201: 26201: pointer 26201: operator->() const noexcept 26201: { 26201: ; 26201: return get(); 26201: } 26201: 26201: 26201: pointer 26201: get() const noexcept 26201: { return _M_t._M_ptr(); } 26201: 26201: 26201: deleter_type& 26201: get_deleter() noexcept 26201: { return _M_t._M_deleter(); } 26201: 26201: 26201: const deleter_type& 26201: get_deleter() const noexcept 26201: { return _M_t._M_deleter(); } 26201: 26201: 26201: explicit operator bool() const noexcept 26201: { return get() == pointer() ? false : true; } 26201: 26201: 26201: 26201: 26201: pointer 26201: release() noexcept 26201: { return _M_t.release(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: void 26201: reset(pointer __p = pointer()) noexcept 26201: { 26201: static_assert(__is_invocable::value, 26201: "unique_ptr's deleter must be invocable with a pointer"); 26201: _M_t.reset(std::move(__p)); 26201: } 26201: 26201: 26201: void 26201: swap(unique_ptr& __u) noexcept 26201: { 26201: static_assert(__is_swappable<_Dp>::value, "deleter must be swappable"); 26201: _M_t.swap(__u._M_t); 26201: } 26201: 26201: 26201: unique_ptr(const unique_ptr&) = delete; 26201: unique_ptr& operator=(const unique_ptr&) = delete; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: class unique_ptr<_Tp[], _Dp> 26201: { 26201: template 26201: using _DeleterConstraint = 26201: typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type; 26201: 26201: __uniq_ptr_data<_Tp, _Dp> _M_t; 26201: 26201: template 26201: using __remove_cv = typename remove_cv<_Up>::type; 26201: 26201: 26201: template 26201: using __is_derived_Tp 26201: = __and_< is_base_of<_Tp, _Up>, 26201: __not_, __remove_cv<_Up>>> >; 26201: 26201: public: 26201: using pointer = typename __uniq_ptr_impl<_Tp, _Dp>::pointer; 26201: using element_type = _Tp; 26201: using deleter_type = _Dp; 26201: 26201: 26201: 26201: template, 26201: typename _UP_pointer = typename _UPtr::pointer, 26201: typename _UP_element_type = typename _UPtr::element_type> 26201: using __safe_conversion_up = __and_< 26201: is_array<_Up>, 26201: is_same, 26201: is_same<_UP_pointer, _UP_element_type*>, 26201: is_convertible<_UP_element_type(*)[], element_type(*)[]> 26201: >; 26201: 26201: 26201: template 26201: using __safe_conversion_raw = __and_< 26201: __or_<__or_, 26201: is_same<_Up, nullptr_t>>, 26201: __and_, 26201: is_same, 26201: is_convertible< 26201: typename remove_pointer<_Up>::type(*)[], 26201: element_type(*)[]> 26201: > 26201: > 26201: >; 26201: 26201: 26201: 26201: 26201: template> 26201: constexpr unique_ptr() noexcept 26201: : _M_t() 26201: { } 26201: # 541 "/usr/x86_64-linux-gnu/include/c++/10/bits/unique_ptr.h" 3 26201: template, 26201: typename = typename enable_if< 26201: __safe_conversion_raw<_Up>::value, bool>::type> 26201: explicit 26201: unique_ptr(_Up __p) noexcept 26201: : _M_t(__p) 26201: { } 26201: # 559 "/usr/x86_64-linux-gnu/include/c++/10/bits/unique_ptr.h" 3 26201: template, 26201: is_copy_constructible<_Del>>> 26201: unique_ptr(_Up __p, const deleter_type& __d) noexcept 26201: : _M_t(__p, __d) { } 26201: # 573 "/usr/x86_64-linux-gnu/include/c++/10/bits/unique_ptr.h" 3 26201: template, 26201: is_move_constructible<_Del>>> 26201: unique_ptr(_Up __p, 26201: __enable_if_t::value, 26201: _Del&&> __d) noexcept 26201: : _M_t(std::move(__p), std::move(__d)) 26201: { } 26201: 26201: template::type, 26201: typename = _Require<__safe_conversion_raw<_Up>>> 26201: unique_ptr(_Up, 26201: __enable_if_t::value, 26201: _DelUnref&&>) = delete; 26201: 26201: 26201: unique_ptr(unique_ptr&&) = default; 26201: 26201: 26201: template> 26201: constexpr unique_ptr(nullptr_t) noexcept 26201: : _M_t() 26201: { } 26201: 26201: template, 26201: typename conditional::value, 26201: is_same<_Ep, _Dp>, 26201: is_convertible<_Ep, _Dp>>::type>> 26201: unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept 26201: : _M_t(__u.release(), std::forward<_Ep>(__u.get_deleter())) 26201: { } 26201: 26201: 26201: ~unique_ptr() 26201: { 26201: auto& __ptr = _M_t._M_ptr(); 26201: if (__ptr != nullptr) 26201: get_deleter()(__ptr); 26201: __ptr = pointer(); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: unique_ptr& 26201: operator=(unique_ptr&&) = default; 26201: # 632 "/usr/x86_64-linux-gnu/include/c++/10/bits/unique_ptr.h" 3 26201: template 26201: typename 26201: enable_if<__and_<__safe_conversion_up<_Up, _Ep>, 26201: is_assignable 26201: >::value, 26201: unique_ptr&>::type 26201: operator=(unique_ptr<_Up, _Ep>&& __u) noexcept 26201: { 26201: reset(__u.release()); 26201: get_deleter() = std::forward<_Ep>(__u.get_deleter()); 26201: return *this; 26201: } 26201: 26201: 26201: unique_ptr& 26201: operator=(nullptr_t) noexcept 26201: { 26201: reset(); 26201: return *this; 26201: } 26201: 26201: 26201: 26201: 26201: typename std::add_lvalue_reference::type 26201: operator[](size_t __i) const 26201: { 26201: ; 26201: return get()[__i]; 26201: } 26201: 26201: 26201: pointer 26201: get() const noexcept 26201: { return _M_t._M_ptr(); } 26201: 26201: 26201: deleter_type& 26201: get_deleter() noexcept 26201: { return _M_t._M_deleter(); } 26201: 26201: 26201: const deleter_type& 26201: get_deleter() const noexcept 26201: { return _M_t._M_deleter(); } 26201: 26201: 26201: explicit operator bool() const noexcept 26201: { return get() == pointer() ? false : true; } 26201: 26201: 26201: 26201: 26201: pointer 26201: release() noexcept 26201: { return _M_t.release(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template , 26201: __and_, 26201: is_pointer<_Up>, 26201: is_convertible< 26201: typename remove_pointer<_Up>::type(*)[], 26201: element_type(*)[] 26201: > 26201: > 26201: > 26201: >> 26201: void 26201: reset(_Up __p) noexcept 26201: { _M_t.reset(std::move(__p)); } 26201: 26201: void reset(nullptr_t = nullptr) noexcept 26201: { reset(pointer()); } 26201: 26201: 26201: void 26201: swap(unique_ptr& __u) noexcept 26201: { 26201: static_assert(__is_swappable<_Dp>::value, "deleter must be swappable"); 26201: _M_t.swap(__u._M_t); 26201: } 26201: 26201: 26201: unique_ptr(const unique_ptr&) = delete; 26201: unique_ptr& operator=(const unique_ptr&) = delete; 26201: }; 26201: 26201: 26201: 26201: 26201: template 26201: inline 26201: 26201: 26201: typename enable_if<__is_swappable<_Dp>::value>::type 26201: 26201: 26201: 26201: swap(unique_ptr<_Tp, _Dp>& __x, 26201: unique_ptr<_Tp, _Dp>& __y) noexcept 26201: { __x.swap(__y); } 26201: 26201: 26201: template 26201: typename enable_if::value>::type 26201: swap(unique_ptr<_Tp, _Dp>&, 26201: unique_ptr<_Tp, _Dp>&) = delete; 26201: 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator==(const unique_ptr<_Tp, _Dp>& __x, 26201: const unique_ptr<_Up, _Ep>& __y) 26201: { return __x.get() == __y.get(); } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator==(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) noexcept 26201: { return !__x; } 26201: 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator==(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) noexcept 26201: { return !__x; } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator!=(const unique_ptr<_Tp, _Dp>& __x, 26201: const unique_ptr<_Up, _Ep>& __y) 26201: { return __x.get() != __y.get(); } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator!=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) noexcept 26201: { return (bool)__x; } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator!=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) noexcept 26201: { return (bool)__x; } 26201: 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator<(const unique_ptr<_Tp, _Dp>& __x, 26201: const unique_ptr<_Up, _Ep>& __y) 26201: { 26201: typedef typename 26201: std::common_type::pointer, 26201: typename unique_ptr<_Up, _Ep>::pointer>::type _CT; 26201: return std::less<_CT>()(__x.get(), __y.get()); 26201: } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator<(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 26201: { 26201: return std::less::pointer>()(__x.get(), 26201: nullptr); 26201: } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator<(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 26201: { 26201: return std::less::pointer>()(nullptr, 26201: __x.get()); 26201: } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator<=(const unique_ptr<_Tp, _Dp>& __x, 26201: const unique_ptr<_Up, _Ep>& __y) 26201: { return !(__y < __x); } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator<=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 26201: { return !(nullptr < __x); } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator<=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 26201: { return !(__x < nullptr); } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator>(const unique_ptr<_Tp, _Dp>& __x, 26201: const unique_ptr<_Up, _Ep>& __y) 26201: { return (__y < __x); } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator>(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 26201: { 26201: return std::less::pointer>()(nullptr, 26201: __x.get()); 26201: } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator>(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 26201: { 26201: return std::less::pointer>()(__x.get(), 26201: nullptr); 26201: } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator>=(const unique_ptr<_Tp, _Dp>& __x, 26201: const unique_ptr<_Up, _Ep>& __y) 26201: { return !(__x < __y); } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator>=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 26201: { return !(__x < nullptr); } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator>=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 26201: { return !(nullptr < __x); } 26201: # 912 "/usr/x86_64-linux-gnu/include/c++/10/bits/unique_ptr.h" 3 26201: template::__enable_hash_call> 26201: struct __uniq_ptr_hash 26201: 26201: : private __poison_hash<_Ptr> 26201: 26201: { 26201: size_t 26201: operator()(const _Up& __u) const 26201: noexcept(noexcept(std::declval>()(std::declval<_Ptr>()))) 26201: { return hash<_Ptr>()(__u.get()); } 26201: }; 26201: 26201: template 26201: struct __uniq_ptr_hash<_Up, _Ptr, false> 26201: : private __poison_hash<_Ptr> 26201: { }; 26201: 26201: 26201: 26201: template 26201: struct hash> 26201: : public __hash_base>, 26201: public __uniq_ptr_hash> 26201: { }; 26201: 26201: 26201: 26201: #define __cpp_lib_make_unique 201304 26201: 26201: 26201: 26201: template 26201: struct _MakeUniq 26201: { typedef unique_ptr<_Tp> __single_object; }; 26201: 26201: template 26201: struct _MakeUniq<_Tp[]> 26201: { typedef unique_ptr<_Tp[]> __array; }; 26201: 26201: template 26201: struct _MakeUniq<_Tp[_Bound]> 26201: { struct __invalid_type { }; }; 26201: 26201: 26201: 26201: 26201: template 26201: inline typename _MakeUniq<_Tp>::__single_object 26201: make_unique(_Args&&... __args) 26201: { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); } 26201: 26201: 26201: template 26201: inline typename _MakeUniq<_Tp>::__array 26201: make_unique(size_t __num) 26201: { return unique_ptr<_Tp>(new remove_extent_t<_Tp>[__num]()); } 26201: 26201: 26201: template 26201: inline typename _MakeUniq<_Tp>::__invalid_type 26201: make_unique(_Args&&...) = delete; 26201: # 995 "/usr/x86_64-linux-gnu/include/c++/10/bits/unique_ptr.h" 3 26201: namespace __detail::__variant 26201: { 26201: template struct _Never_valueless_alt; 26201: 26201: 26201: 26201: template 26201: struct _Never_valueless_alt> 26201: : std::true_type 26201: { }; 26201: } 26201: 26201: 26201: 26201: } 26201: # 42 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_conv.h" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: bool 26201: __do_str_codecvt(const _InChar* __first, const _InChar* __last, 26201: _OutStr& __outstr, const _Codecvt& __cvt, _State& __state, 26201: size_t& __count, _Fn __fn) 26201: { 26201: if (__first == __last) 26201: { 26201: __outstr.clear(); 26201: __count = 0; 26201: return true; 26201: } 26201: 26201: size_t __outchars = 0; 26201: auto __next = __first; 26201: const auto __maxlen = __cvt.max_length() + 1; 26201: 26201: codecvt_base::result __result; 26201: do 26201: { 26201: __outstr.resize(__outstr.size() + (__last - __next) * __maxlen); 26201: auto __outnext = &__outstr.front() + __outchars; 26201: auto const __outlast = &__outstr.back() + 1; 26201: __result = (__cvt.*__fn)(__state, __next, __last, __next, 26201: __outnext, __outlast, __outnext); 26201: __outchars = __outnext - &__outstr.front(); 26201: } 26201: while (__result == codecvt_base::partial && __next != __last 26201: && ptrdiff_t(__outstr.size() - __outchars) < __maxlen); 26201: 26201: if (__result == codecvt_base::error) 26201: { 26201: __count = __next - __first; 26201: return false; 26201: } 26201: 26201: 26201: 26201: if constexpr (is_same()) 26201: if (__result == codecvt_base::noconv) 26201: { 26201: __outstr.assign(__first, __last); 26201: __count = __last - __first; 26201: return true; 26201: } 26201: 26201: __outstr.resize(__outchars); 26201: __count = __next - __first; 26201: return true; 26201: } 26201: 26201: 26201: template 26201: inline bool 26201: __str_codecvt_in(const char* __first, const char* __last, 26201: basic_string<_CharT, _Traits, _Alloc>& __outstr, 26201: const codecvt<_CharT, char, _State>& __cvt, 26201: _State& __state, size_t& __count) 26201: { 26201: using _Codecvt = codecvt<_CharT, char, _State>; 26201: using _ConvFn 26201: = codecvt_base::result 26201: (_Codecvt::*)(_State&, const char*, const char*, const char*&, 26201: _CharT*, _CharT*, _CharT*&) const; 26201: _ConvFn __fn = &codecvt<_CharT, char, _State>::in; 26201: return __do_str_codecvt(__first, __last, __outstr, __cvt, __state, 26201: __count, __fn); 26201: } 26201: 26201: 26201: template 26201: inline bool 26201: __str_codecvt_in(const char* __first, const char* __last, 26201: basic_string<_CharT, _Traits, _Alloc>& __outstr, 26201: const codecvt<_CharT, char, _State>& __cvt) 26201: { 26201: _State __state = {}; 26201: size_t __n; 26201: return __str_codecvt_in(__first, __last, __outstr, __cvt, __state, __n); 26201: } 26201: 26201: 26201: template 26201: inline bool 26201: __str_codecvt_in_all(const char* __first, const char* __last, 26201: basic_string<_CharT, _Traits, _Alloc>& __outstr, 26201: const codecvt<_CharT, char, _State>& __cvt) 26201: { 26201: _State __state = {}; 26201: size_t __n; 26201: return __str_codecvt_in(__first, __last, __outstr, __cvt, __state, __n) 26201: && (__n == size_t(__last - __first)); 26201: } 26201: 26201: 26201: template 26201: inline bool 26201: __str_codecvt_out(const _CharT* __first, const _CharT* __last, 26201: basic_string& __outstr, 26201: const codecvt<_CharT, char, _State>& __cvt, 26201: _State& __state, size_t& __count) 26201: { 26201: using _Codecvt = codecvt<_CharT, char, _State>; 26201: using _ConvFn 26201: = codecvt_base::result 26201: (_Codecvt::*)(_State&, const _CharT*, const _CharT*, const _CharT*&, 26201: char*, char*, char*&) const; 26201: _ConvFn __fn = &codecvt<_CharT, char, _State>::out; 26201: return __do_str_codecvt(__first, __last, __outstr, __cvt, __state, 26201: __count, __fn); 26201: } 26201: 26201: 26201: template 26201: inline bool 26201: __str_codecvt_out(const _CharT* __first, const _CharT* __last, 26201: basic_string& __outstr, 26201: const codecvt<_CharT, char, _State>& __cvt) 26201: { 26201: _State __state = {}; 26201: size_t __n; 26201: return __str_codecvt_out(__first, __last, __outstr, __cvt, __state, __n); 26201: } 26201: 26201: 26201: template 26201: inline bool 26201: __str_codecvt_out_all(const _CharT* __first, const _CharT* __last, 26201: basic_string& __outstr, 26201: const codecvt<_CharT, char, _State>& __cvt) 26201: { 26201: _State __state = {}; 26201: size_t __n; 26201: return __str_codecvt_out(__first, __last, __outstr, __cvt, __state, __n) 26201: && (__n == size_t(__last - __first)); 26201: } 26201: # 226 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_conv.h" 3 26201: namespace __cxx11 { 26201: 26201: 26201: template, 26201: typename _Byte_alloc = allocator> 26201: class wstring_convert 26201: { 26201: public: 26201: typedef basic_string, _Byte_alloc> byte_string; 26201: typedef basic_string<_Elem, char_traits<_Elem>, _Wide_alloc> wide_string; 26201: typedef typename _Codecvt::state_type state_type; 26201: typedef typename wide_string::traits_type::int_type int_type; 26201: 26201: 26201: wstring_convert() : _M_cvt(new _Codecvt()) { } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: explicit 26201: wstring_convert(_Codecvt* __pcvt) : _M_cvt(__pcvt) 26201: { 26201: if (!_M_cvt) 26201: __throw_logic_error("wstring_convert"); 26201: } 26201: # 264 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_conv.h" 3 26201: wstring_convert(_Codecvt* __pcvt, state_type __state) 26201: : _M_cvt(__pcvt), _M_state(__state), _M_with_cvtstate(true) 26201: { 26201: if (!_M_cvt) 26201: __throw_logic_error("wstring_convert"); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: explicit 26201: wstring_convert(const byte_string& __byte_err, 26201: const wide_string& __wide_err = wide_string()) 26201: : _M_cvt(new _Codecvt), 26201: _M_byte_err_string(__byte_err), _M_wide_err_string(__wide_err), 26201: _M_with_strings(true) 26201: { 26201: if (!_M_cvt) 26201: __throw_logic_error("wstring_convert"); 26201: } 26201: 26201: ~wstring_convert() = default; 26201: 26201: 26201: 26201: wstring_convert(const wstring_convert&) = delete; 26201: wstring_convert& operator=(const wstring_convert&) = delete; 26201: 26201: 26201: wide_string 26201: from_bytes(char __byte) 26201: { 26201: char __bytes[2] = { __byte }; 26201: return from_bytes(__bytes, __bytes+1); 26201: } 26201: 26201: wide_string 26201: from_bytes(const char* __ptr) 26201: { return from_bytes(__ptr, __ptr+char_traits::length(__ptr)); } 26201: 26201: wide_string 26201: from_bytes(const byte_string& __str) 26201: { 26201: auto __ptr = __str.data(); 26201: return from_bytes(__ptr, __ptr + __str.size()); 26201: } 26201: 26201: wide_string 26201: from_bytes(const char* __first, const char* __last) 26201: { 26201: if (!_M_with_cvtstate) 26201: _M_state = state_type(); 26201: wide_string __out{ _M_wide_err_string.get_allocator() }; 26201: if (__str_codecvt_in(__first, __last, __out, *_M_cvt, _M_state, 26201: _M_count)) 26201: return __out; 26201: if (_M_with_strings) 26201: return _M_wide_err_string; 26201: __throw_range_error("wstring_convert::from_bytes"); 26201: } 26201: 26201: 26201: 26201: byte_string 26201: to_bytes(_Elem __wchar) 26201: { 26201: _Elem __wchars[2] = { __wchar }; 26201: return to_bytes(__wchars, __wchars+1); 26201: } 26201: 26201: byte_string 26201: to_bytes(const _Elem* __ptr) 26201: { 26201: return to_bytes(__ptr, __ptr+wide_string::traits_type::length(__ptr)); 26201: } 26201: 26201: byte_string 26201: to_bytes(const wide_string& __wstr) 26201: { 26201: auto __ptr = __wstr.data(); 26201: return to_bytes(__ptr, __ptr + __wstr.size()); 26201: } 26201: 26201: byte_string 26201: to_bytes(const _Elem* __first, const _Elem* __last) 26201: { 26201: if (!_M_with_cvtstate) 26201: _M_state = state_type(); 26201: byte_string __out{ _M_byte_err_string.get_allocator() }; 26201: if (__str_codecvt_out(__first, __last, __out, *_M_cvt, _M_state, 26201: _M_count)) 26201: return __out; 26201: if (_M_with_strings) 26201: return _M_byte_err_string; 26201: __throw_range_error("wstring_convert::to_bytes"); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: size_t converted() const noexcept { return _M_count; } 26201: 26201: 26201: state_type state() const { return _M_state; } 26201: 26201: private: 26201: unique_ptr<_Codecvt> _M_cvt; 26201: byte_string _M_byte_err_string; 26201: wide_string _M_wide_err_string; 26201: state_type _M_state = state_type(); 26201: size_t _M_count = 0; 26201: bool _M_with_cvtstate = false; 26201: bool _M_with_strings = false; 26201: }; 26201: 26201: } 26201: 26201: 26201: template> 26201: class wbuffer_convert : public basic_streambuf<_Elem, _Tr> 26201: { 26201: typedef basic_streambuf<_Elem, _Tr> _Wide_streambuf; 26201: 26201: public: 26201: typedef typename _Codecvt::state_type state_type; 26201: 26201: 26201: wbuffer_convert() : wbuffer_convert(nullptr) { } 26201: # 405 "/usr/x86_64-linux-gnu/include/c++/10/bits/locale_conv.h" 3 26201: explicit 26201: wbuffer_convert(streambuf* __bytebuf, _Codecvt* __pcvt = new _Codecvt, 26201: state_type __state = state_type()) 26201: : _M_buf(__bytebuf), _M_cvt(__pcvt), _M_state(__state) 26201: { 26201: if (!_M_cvt) 26201: __throw_logic_error("wbuffer_convert"); 26201: 26201: _M_always_noconv = _M_cvt->always_noconv(); 26201: 26201: if (_M_buf) 26201: { 26201: this->setp(_M_put_area, _M_put_area + _S_buffer_length); 26201: this->setg(_M_get_area + _S_putback_length, 26201: _M_get_area + _S_putback_length, 26201: _M_get_area + _S_putback_length); 26201: } 26201: } 26201: 26201: ~wbuffer_convert() = default; 26201: 26201: 26201: 26201: wbuffer_convert(const wbuffer_convert&) = delete; 26201: wbuffer_convert& operator=(const wbuffer_convert&) = delete; 26201: 26201: streambuf* rdbuf() const noexcept { return _M_buf; } 26201: 26201: streambuf* 26201: rdbuf(streambuf *__bytebuf) noexcept 26201: { 26201: auto __prev = _M_buf; 26201: _M_buf = __bytebuf; 26201: return __prev; 26201: } 26201: 26201: 26201: state_type state() const noexcept { return _M_state; } 26201: 26201: protected: 26201: int 26201: sync() 26201: { return _M_buf && _M_conv_put() && !_M_buf->pubsync() ? 0 : -1; } 26201: 26201: typename _Wide_streambuf::int_type 26201: overflow(typename _Wide_streambuf::int_type __out) 26201: { 26201: if (!_M_buf || !_M_conv_put()) 26201: return _Tr::eof(); 26201: else if (!_Tr::eq_int_type(__out, _Tr::eof())) 26201: return this->sputc(__out); 26201: return _Tr::not_eof(__out); 26201: } 26201: 26201: typename _Wide_streambuf::int_type 26201: underflow() 26201: { 26201: if (!_M_buf) 26201: return _Tr::eof(); 26201: 26201: if (this->gptr() < this->egptr() || (_M_buf && _M_conv_get())) 26201: return _Tr::to_int_type(*this->gptr()); 26201: else 26201: return _Tr::eof(); 26201: } 26201: 26201: streamsize 26201: xsputn(const typename _Wide_streambuf::char_type* __s, streamsize __n) 26201: { 26201: if (!_M_buf || __n == 0) 26201: return 0; 26201: streamsize __done = 0; 26201: do 26201: { 26201: auto __nn = std::min(this->epptr() - this->pptr(), 26201: __n - __done); 26201: _Tr::copy(this->pptr(), __s + __done, __nn); 26201: this->pbump(__nn); 26201: __done += __nn; 26201: } while (__done < __n && _M_conv_put()); 26201: return __done; 26201: } 26201: 26201: private: 26201: 26201: bool 26201: _M_conv_get() 26201: { 26201: const streamsize __pb1 = this->gptr() - this->eback(); 26201: const streamsize __pb2 = _S_putback_length; 26201: const streamsize __npb = std::min(__pb1, __pb2); 26201: 26201: _Tr::move(_M_get_area + _S_putback_length - __npb, 26201: this->gptr() - __npb, __npb); 26201: 26201: streamsize __nbytes = sizeof(_M_get_buf) - _M_unconv; 26201: __nbytes = std::min(__nbytes, _M_buf->in_avail()); 26201: if (__nbytes < 1) 26201: __nbytes = 1; 26201: __nbytes = _M_buf->sgetn(_M_get_buf + _M_unconv, __nbytes); 26201: if (__nbytes < 1) 26201: return false; 26201: __nbytes += _M_unconv; 26201: 26201: 26201: 26201: _Elem* __outbuf = _M_get_area + _S_putback_length; 26201: _Elem* __outnext = __outbuf; 26201: const char* __bnext = _M_get_buf; 26201: 26201: codecvt_base::result __result; 26201: if (_M_always_noconv) 26201: __result = codecvt_base::noconv; 26201: else 26201: { 26201: _Elem* __outend = _M_get_area + _S_buffer_length; 26201: 26201: __result = _M_cvt->in(_M_state, 26201: __bnext, __bnext + __nbytes, __bnext, 26201: __outbuf, __outend, __outnext); 26201: } 26201: 26201: if (__result == codecvt_base::noconv) 26201: { 26201: 26201: auto __get_buf = reinterpret_cast(_M_get_buf); 26201: _Tr::copy(__outbuf, __get_buf, __nbytes); 26201: _M_unconv = 0; 26201: return true; 26201: } 26201: 26201: if ((_M_unconv = _M_get_buf + __nbytes - __bnext)) 26201: char_traits::move(_M_get_buf, __bnext, _M_unconv); 26201: 26201: this->setg(__outbuf, __outbuf, __outnext); 26201: 26201: return __result != codecvt_base::error; 26201: } 26201: 26201: 26201: bool 26201: _M_put(...) 26201: { return false; } 26201: 26201: bool 26201: _M_put(const char* __p, streamsize __n) 26201: { 26201: if (_M_buf->sputn(__p, __n) < __n) 26201: return false; 26201: return true; 26201: } 26201: 26201: 26201: bool 26201: _M_conv_put() 26201: { 26201: _Elem* const __first = this->pbase(); 26201: const _Elem* const __last = this->pptr(); 26201: const streamsize __pending = __last - __first; 26201: 26201: if (_M_always_noconv) 26201: return _M_put(__first, __pending); 26201: 26201: char __outbuf[2 * _S_buffer_length]; 26201: 26201: const _Elem* __next = __first; 26201: const _Elem* __start; 26201: do 26201: { 26201: __start = __next; 26201: char* __outnext = __outbuf; 26201: char* const __outlast = __outbuf + sizeof(__outbuf); 26201: auto __result = _M_cvt->out(_M_state, __next, __last, __next, 26201: __outnext, __outlast, __outnext); 26201: if (__result == codecvt_base::error) 26201: return false; 26201: else if (__result == codecvt_base::noconv) 26201: return _M_put(__next, __pending); 26201: 26201: if (!_M_put(__outbuf, __outnext - __outbuf)) 26201: return false; 26201: } 26201: while (__next != __last && __next != __start); 26201: 26201: if (__next != __last) 26201: _Tr::move(__first, __next, __last - __next); 26201: 26201: this->pbump(__first - __next); 26201: return __next != __first; 26201: } 26201: 26201: streambuf* _M_buf; 26201: unique_ptr<_Codecvt> _M_cvt; 26201: state_type _M_state; 26201: 26201: static const streamsize _S_buffer_length = 32; 26201: static const streamsize _S_putback_length = 3; 26201: _Elem _M_put_area[_S_buffer_length]; 26201: _Elem _M_get_area[_S_buffer_length]; 26201: streamsize _M_unconv = 0; 26201: char _M_get_buf[_S_buffer_length-_S_putback_length]; 26201: bool _M_always_noconv; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 44 "/usr/x86_64-linux-gnu/include/c++/10/locale" 2 3 26201: # 38 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_path.h" 2 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/iomanip" 1 3 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/iomanip" 3 26201: #define _GLIBCXX_IOMANIP 1 26201: 26201: 26201: # 37 "/usr/x86_64-linux-gnu/include/c++/10/iomanip" 3 26201: # 45 "/usr/x86_64-linux-gnu/include/c++/10/iomanip" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/quoted_string.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/quoted_string.h" 3 26201: #define _GLIBCXX_QUOTED_STRING_H 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/quoted_string.h" 3 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 1 3 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: #define _GLIBCXX_SSTREAM 1 26201: 26201: 26201: # 37 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/istream" 1 3 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: #define _GLIBCXX_ISTREAM 1 26201: 26201: 26201: # 37 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/ios" 1 3 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/ios" 3 26201: #define _GLIBCXX_IOS 1 26201: 26201: 26201: # 37 "/usr/x86_64-linux-gnu/include/c++/10/ios" 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_ios.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_ios.h" 3 26201: #define _BASIC_IOS_H 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_ios.h" 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: template 26201: inline const _Facet& 26201: __check_facet(const _Facet* __f) 26201: { 26201: if (!__f) 26201: __throw_bad_cast(); 26201: return *__f; 26201: } 26201: # 66 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_ios.h" 3 26201: template 26201: class basic_ios : public ios_base 26201: { 26201: public: 26201: 26201: 26201: 26201: 26201: 26201: 26201: typedef _CharT char_type; 26201: typedef typename _Traits::int_type int_type; 26201: typedef typename _Traits::pos_type pos_type; 26201: typedef typename _Traits::off_type off_type; 26201: typedef _Traits traits_type; 26201: 26201: 26201: 26201: 26201: 26201: 26201: typedef ctype<_CharT> __ctype_type; 26201: typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > 26201: __num_put_type; 26201: typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > 26201: __num_get_type; 26201: 26201: 26201: 26201: protected: 26201: basic_ostream<_CharT, _Traits>* _M_tie; 26201: mutable char_type _M_fill; 26201: mutable bool _M_fill_init; 26201: basic_streambuf<_CharT, _Traits>* _M_streambuf; 26201: 26201: 26201: const __ctype_type* _M_ctype; 26201: 26201: const __num_put_type* _M_num_put; 26201: 26201: const __num_get_type* _M_num_get; 26201: 26201: public: 26201: # 117 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_ios.h" 3 26201: explicit operator bool() const 26201: { return !this->fail(); } 26201: 26201: 26201: 26201: 26201: 26201: bool 26201: operator!() const 26201: { return this->fail(); } 26201: # 136 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_ios.h" 3 26201: iostate 26201: rdstate() const 26201: { return _M_streambuf_state; } 26201: # 147 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_ios.h" 3 26201: void 26201: clear(iostate __state = goodbit); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: void 26201: setstate(iostate __state) 26201: { this->clear(this->rdstate() | __state); } 26201: 26201: 26201: 26201: 26201: void 26201: _M_setstate(iostate __state) 26201: { 26201: 26201: 26201: _M_streambuf_state |= __state; 26201: if (this->exceptions() & __state) 26201: throw; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: bool 26201: good() const 26201: { return this->rdstate() == 0; } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: bool 26201: eof() const 26201: { return (this->rdstate() & eofbit) != 0; } 26201: # 200 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_ios.h" 3 26201: bool 26201: fail() const 26201: { return (this->rdstate() & (badbit | failbit)) != 0; } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: bool 26201: bad() const 26201: { return (this->rdstate() & badbit) != 0; } 26201: # 221 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_ios.h" 3 26201: iostate 26201: exceptions() const 26201: { return _M_exception; } 26201: # 256 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_ios.h" 3 26201: void 26201: exceptions(iostate __except) 26201: { 26201: _M_exception = __except; 26201: this->clear(_M_streambuf_state); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: explicit 26201: basic_ios(basic_streambuf<_CharT, _Traits>* __sb) 26201: : ios_base(), _M_tie(0), _M_fill(), _M_fill_init(false), _M_streambuf(0), 26201: _M_ctype(0), _M_num_put(0), _M_num_get(0) 26201: { this->init(__sb); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: virtual 26201: ~basic_ios() { } 26201: # 294 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_ios.h" 3 26201: basic_ostream<_CharT, _Traits>* 26201: tie() const 26201: { return _M_tie; } 26201: # 306 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_ios.h" 3 26201: basic_ostream<_CharT, _Traits>* 26201: tie(basic_ostream<_CharT, _Traits>* __tiestr) 26201: { 26201: basic_ostream<_CharT, _Traits>* __old = _M_tie; 26201: _M_tie = __tiestr; 26201: return __old; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: basic_streambuf<_CharT, _Traits>* 26201: rdbuf() const 26201: { return _M_streambuf; } 26201: # 346 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_ios.h" 3 26201: basic_streambuf<_CharT, _Traits>* 26201: rdbuf(basic_streambuf<_CharT, _Traits>* __sb); 26201: # 360 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_ios.h" 3 26201: basic_ios& 26201: copyfmt(const basic_ios& __rhs); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: char_type 26201: fill() const 26201: { 26201: if (!_M_fill_init) 26201: { 26201: _M_fill = this->widen(' '); 26201: _M_fill_init = true; 26201: } 26201: return _M_fill; 26201: } 26201: # 389 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_ios.h" 3 26201: char_type 26201: fill(char_type __ch) 26201: { 26201: char_type __old = this->fill(); 26201: _M_fill = __ch; 26201: return __old; 26201: } 26201: # 409 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_ios.h" 3 26201: locale 26201: imbue(const locale& __loc); 26201: # 429 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_ios.h" 3 26201: char 26201: narrow(char_type __c, char __dfault) const 26201: { return __check_facet(_M_ctype).narrow(__c, __dfault); } 26201: # 448 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_ios.h" 3 26201: char_type 26201: widen(char __c) const 26201: { return __check_facet(_M_ctype).widen(__c); } 26201: 26201: protected: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: basic_ios() 26201: : ios_base(), _M_tie(0), _M_fill(char_type()), _M_fill_init(false), 26201: _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0) 26201: { } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: void 26201: init(basic_streambuf<_CharT, _Traits>* __sb); 26201: 26201: 26201: basic_ios(const basic_ios&) = delete; 26201: basic_ios& operator=(const basic_ios&) = delete; 26201: 26201: void 26201: move(basic_ios& __rhs) 26201: { 26201: ios_base::_M_move(__rhs); 26201: _M_cache_locale(_M_ios_locale); 26201: this->tie(__rhs.tie(nullptr)); 26201: _M_fill = __rhs._M_fill; 26201: _M_fill_init = __rhs._M_fill_init; 26201: _M_streambuf = nullptr; 26201: } 26201: 26201: void 26201: move(basic_ios&& __rhs) 26201: { this->move(__rhs); } 26201: 26201: void 26201: swap(basic_ios& __rhs) noexcept 26201: { 26201: ios_base::_M_swap(__rhs); 26201: _M_cache_locale(_M_ios_locale); 26201: __rhs._M_cache_locale(__rhs._M_ios_locale); 26201: std::swap(_M_tie, __rhs._M_tie); 26201: std::swap(_M_fill, __rhs._M_fill); 26201: std::swap(_M_fill_init, __rhs._M_fill_init); 26201: } 26201: 26201: void 26201: set_rdbuf(basic_streambuf<_CharT, _Traits>* __sb) 26201: { _M_streambuf = __sb; } 26201: 26201: 26201: void 26201: _M_cache_locale(const locale& __loc); 26201: }; 26201: 26201: 26201: } 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_ios.tcc" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_ios.tcc" 3 26201: #define _BASIC_IOS_TCC 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_ios.tcc" 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: template 26201: void 26201: basic_ios<_CharT, _Traits>::clear(iostate __state) 26201: { 26201: if (this->rdbuf()) 26201: _M_streambuf_state = __state; 26201: else 26201: _M_streambuf_state = __state | badbit; 26201: if (this->exceptions() & this->rdstate()) 26201: __throw_ios_failure(("basic_ios::clear")); 26201: } 26201: 26201: template 26201: basic_streambuf<_CharT, _Traits>* 26201: basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* __sb) 26201: { 26201: basic_streambuf<_CharT, _Traits>* __old = _M_streambuf; 26201: _M_streambuf = __sb; 26201: this->clear(); 26201: return __old; 26201: } 26201: 26201: template 26201: basic_ios<_CharT, _Traits>& 26201: basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs) 26201: { 26201: 26201: 26201: if (this != &__rhs) 26201: { 26201: 26201: 26201: 26201: 26201: _Words* __words = (__rhs._M_word_size <= _S_local_word_size) ? 26201: _M_local_word : new _Words[__rhs._M_word_size]; 26201: 26201: 26201: _Callback_list* __cb = __rhs._M_callbacks; 26201: if (__cb) 26201: __cb->_M_add_reference(); 26201: _M_call_callbacks(erase_event); 26201: if (_M_word != _M_local_word) 26201: { 26201: delete [] _M_word; 26201: _M_word = 0; 26201: } 26201: _M_dispose_callbacks(); 26201: 26201: 26201: _M_callbacks = __cb; 26201: for (int __i = 0; __i < __rhs._M_word_size; ++__i) 26201: __words[__i] = __rhs._M_word[__i]; 26201: _M_word = __words; 26201: _M_word_size = __rhs._M_word_size; 26201: 26201: this->flags(__rhs.flags()); 26201: this->width(__rhs.width()); 26201: this->precision(__rhs.precision()); 26201: this->tie(__rhs.tie()); 26201: this->fill(__rhs.fill()); 26201: _M_ios_locale = __rhs.getloc(); 26201: _M_cache_locale(_M_ios_locale); 26201: 26201: _M_call_callbacks(copyfmt_event); 26201: 26201: 26201: this->exceptions(__rhs.exceptions()); 26201: } 26201: return *this; 26201: } 26201: 26201: 26201: template 26201: locale 26201: basic_ios<_CharT, _Traits>::imbue(const locale& __loc) 26201: { 26201: locale __old(this->getloc()); 26201: ios_base::imbue(__loc); 26201: _M_cache_locale(__loc); 26201: if (this->rdbuf() != 0) 26201: this->rdbuf()->pubimbue(__loc); 26201: return __old; 26201: } 26201: 26201: template 26201: void 26201: basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* __sb) 26201: { 26201: 26201: ios_base::_M_init(); 26201: 26201: 26201: _M_cache_locale(_M_ios_locale); 26201: # 146 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_ios.tcc" 3 26201: _M_fill = _CharT(); 26201: _M_fill_init = false; 26201: 26201: _M_tie = 0; 26201: _M_exception = goodbit; 26201: _M_streambuf = __sb; 26201: _M_streambuf_state = __sb ? goodbit : badbit; 26201: } 26201: 26201: template 26201: void 26201: basic_ios<_CharT, _Traits>::_M_cache_locale(const locale& __loc) 26201: { 26201: if (__builtin_expect(has_facet<__ctype_type>(__loc), true)) 26201: _M_ctype = std::__addressof(use_facet<__ctype_type>(__loc)); 26201: else 26201: _M_ctype = 0; 26201: 26201: if (__builtin_expect(has_facet<__num_put_type>(__loc), true)) 26201: _M_num_put = std::__addressof(use_facet<__num_put_type>(__loc)); 26201: else 26201: _M_num_put = 0; 26201: 26201: if (__builtin_expect(has_facet<__num_get_type>(__loc), true)) 26201: _M_num_get = std::__addressof(use_facet<__num_get_type>(__loc)); 26201: else 26201: _M_num_get = 0; 26201: } 26201: 26201: 26201: 26201: 26201: extern template class basic_ios; 26201: 26201: 26201: extern template class basic_ios; 26201: 26201: 26201: 26201: 26201: } 26201: # 517 "/usr/x86_64-linux-gnu/include/c++/10/bits/basic_ios.h" 2 3 26201: # 45 "/usr/x86_64-linux-gnu/include/c++/10/ios" 2 3 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/istream" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 1 3 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 3 26201: #define _GLIBCXX_OSTREAM 1 26201: 26201: 26201: # 37 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 3 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 57 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 3 26201: template 26201: class basic_ostream : virtual public basic_ios<_CharT, _Traits> 26201: { 26201: public: 26201: 26201: typedef _CharT char_type; 26201: typedef typename _Traits::int_type int_type; 26201: typedef typename _Traits::pos_type pos_type; 26201: typedef typename _Traits::off_type off_type; 26201: typedef _Traits traits_type; 26201: 26201: 26201: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 26201: typedef basic_ios<_CharT, _Traits> __ios_type; 26201: typedef basic_ostream<_CharT, _Traits> __ostream_type; 26201: typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > 26201: __num_put_type; 26201: typedef ctype<_CharT> __ctype_type; 26201: # 83 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 3 26201: explicit 26201: basic_ostream(__streambuf_type* __sb) 26201: { this->init(__sb); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: virtual 26201: ~basic_ostream() { } 26201: 26201: 26201: class sentry; 26201: friend class sentry; 26201: # 107 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 3 26201: __ostream_type& 26201: operator<<(__ostream_type& (*__pf)(__ostream_type&)) 26201: { 26201: 26201: 26201: 26201: return __pf(*this); 26201: } 26201: 26201: __ostream_type& 26201: operator<<(__ios_type& (*__pf)(__ios_type&)) 26201: { 26201: 26201: 26201: 26201: __pf(*this); 26201: return *this; 26201: } 26201: 26201: __ostream_type& 26201: operator<<(ios_base& (*__pf) (ios_base&)) 26201: { 26201: 26201: 26201: 26201: __pf(*this); 26201: return *this; 26201: } 26201: # 165 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 3 26201: __ostream_type& 26201: operator<<(long __n) 26201: { return _M_insert(__n); } 26201: 26201: __ostream_type& 26201: operator<<(unsigned long __n) 26201: { return _M_insert(__n); } 26201: 26201: __ostream_type& 26201: operator<<(bool __n) 26201: { return _M_insert(__n); } 26201: 26201: __ostream_type& 26201: operator<<(short __n); 26201: 26201: __ostream_type& 26201: operator<<(unsigned short __n) 26201: { 26201: 26201: 26201: return _M_insert(static_cast(__n)); 26201: } 26201: 26201: __ostream_type& 26201: operator<<(int __n); 26201: 26201: __ostream_type& 26201: operator<<(unsigned int __n) 26201: { 26201: 26201: 26201: return _M_insert(static_cast(__n)); 26201: } 26201: 26201: 26201: __ostream_type& 26201: operator<<(long long __n) 26201: { return _M_insert(__n); } 26201: 26201: __ostream_type& 26201: operator<<(unsigned long long __n) 26201: { return _M_insert(__n); } 26201: # 219 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 3 26201: __ostream_type& 26201: operator<<(double __f) 26201: { return _M_insert(__f); } 26201: 26201: __ostream_type& 26201: operator<<(float __f) 26201: { 26201: 26201: 26201: return _M_insert(static_cast(__f)); 26201: } 26201: 26201: __ostream_type& 26201: operator<<(long double __f) 26201: { return _M_insert(__f); } 26201: # 244 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 3 26201: __ostream_type& 26201: operator<<(const void* __p) 26201: { return _M_insert(__p); } 26201: 26201: 26201: __ostream_type& 26201: operator<<(nullptr_t) 26201: { return *this << "nullptr"; } 26201: # 275 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 3 26201: __ostream_type& 26201: operator<<(__streambuf_type* __sb); 26201: # 308 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 3 26201: __ostream_type& 26201: put(char_type __c); 26201: 26201: 26201: 26201: 26201: 26201: 26201: void 26201: _M_write(const char_type* __s, streamsize __n) 26201: { 26201: const streamsize __put = this->rdbuf()->sputn(__s, __n); 26201: if (__put != __n) 26201: this->setstate(ios_base::badbit); 26201: } 26201: # 340 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 3 26201: __ostream_type& 26201: write(const char_type* __s, streamsize __n); 26201: # 353 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 3 26201: __ostream_type& 26201: flush(); 26201: # 363 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 3 26201: pos_type 26201: tellp(); 26201: # 374 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 3 26201: __ostream_type& 26201: seekp(pos_type); 26201: # 386 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 3 26201: __ostream_type& 26201: seekp(off_type, ios_base::seekdir); 26201: 26201: protected: 26201: basic_ostream() 26201: { this->init(0); } 26201: 26201: 26201: 26201: basic_ostream(basic_iostream<_CharT, _Traits>&) { } 26201: 26201: basic_ostream(const basic_ostream&) = delete; 26201: 26201: basic_ostream(basic_ostream&& __rhs) 26201: : __ios_type() 26201: { __ios_type::move(__rhs); } 26201: 26201: 26201: 26201: basic_ostream& operator=(const basic_ostream&) = delete; 26201: 26201: basic_ostream& 26201: operator=(basic_ostream&& __rhs) 26201: { 26201: swap(__rhs); 26201: return *this; 26201: } 26201: 26201: void 26201: swap(basic_ostream& __rhs) 26201: { __ios_type::swap(__rhs); } 26201: 26201: 26201: template 26201: __ostream_type& 26201: _M_insert(_ValueT __v); 26201: }; 26201: # 431 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 3 26201: template 26201: class basic_ostream<_CharT, _Traits>::sentry 26201: { 26201: 26201: bool _M_ok; 26201: basic_ostream<_CharT, _Traits>& _M_os; 26201: 26201: public: 26201: # 450 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 3 26201: explicit 26201: sentry(basic_ostream<_CharT, _Traits>& __os); 26201: 26201: #pragma GCC diagnostic push 26201: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ~sentry() 26201: { 26201: 26201: if (bool(_M_os.flags() & ios_base::unitbuf) && !uncaught_exception()) 26201: { 26201: 26201: if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() == -1) 26201: _M_os.setstate(ios_base::badbit); 26201: } 26201: } 26201: #pragma GCC diagnostic pop 26201: # 482 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 3 26201: explicit 26201: 26201: operator bool() const 26201: { return _M_ok; } 26201: }; 26201: # 504 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 3 26201: template 26201: inline basic_ostream<_CharT, _Traits>& 26201: operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c) 26201: { return __ostream_insert(__out, &__c, 1); } 26201: 26201: template 26201: inline basic_ostream<_CharT, _Traits>& 26201: operator<<(basic_ostream<_CharT, _Traits>& __out, char __c) 26201: { return (__out << __out.widen(__c)); } 26201: 26201: 26201: template 26201: inline basic_ostream& 26201: operator<<(basic_ostream& __out, char __c) 26201: { return __ostream_insert(__out, &__c, 1); } 26201: 26201: 26201: template 26201: inline basic_ostream& 26201: operator<<(basic_ostream& __out, signed char __c) 26201: { return (__out << static_cast(__c)); } 26201: 26201: template 26201: inline basic_ostream& 26201: operator<<(basic_ostream& __out, unsigned char __c) 26201: { return (__out << static_cast(__c)); } 26201: # 587 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 3 26201: template 26201: inline basic_ostream<_CharT, _Traits>& 26201: operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s) 26201: { 26201: if (!__s) 26201: __out.setstate(ios_base::badbit); 26201: else 26201: __ostream_insert(__out, __s, 26201: static_cast(_Traits::length(__s))); 26201: return __out; 26201: } 26201: 26201: template 26201: basic_ostream<_CharT, _Traits> & 26201: operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s); 26201: 26201: 26201: template 26201: inline basic_ostream& 26201: operator<<(basic_ostream& __out, const char* __s) 26201: { 26201: if (!__s) 26201: __out.setstate(ios_base::badbit); 26201: else 26201: __ostream_insert(__out, __s, 26201: static_cast(_Traits::length(__s))); 26201: return __out; 26201: } 26201: 26201: 26201: template 26201: inline basic_ostream& 26201: operator<<(basic_ostream& __out, const signed char* __s) 26201: { return (__out << reinterpret_cast(__s)); } 26201: 26201: template 26201: inline basic_ostream & 26201: operator<<(basic_ostream& __out, const unsigned char* __s) 26201: { return (__out << reinterpret_cast(__s)); } 26201: # 679 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 3 26201: template 26201: inline basic_ostream<_CharT, _Traits>& 26201: endl(basic_ostream<_CharT, _Traits>& __os) 26201: { return flush(__os.put(__os.widen('\n'))); } 26201: # 691 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 3 26201: template 26201: inline basic_ostream<_CharT, _Traits>& 26201: ends(basic_ostream<_CharT, _Traits>& __os) 26201: { return __os.put(_CharT()); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline basic_ostream<_CharT, _Traits>& 26201: flush(basic_ostream<_CharT, _Traits>& __os) 26201: { return __os.flush(); } 26201: 26201: 26201: template 26201: basic_ostream<_Ch, _Up>& 26201: __is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*); 26201: 26201: template 26201: struct __is_convertible_to_basic_ostream_impl 26201: { 26201: using __ostream_type = void; 26201: }; 26201: 26201: template 26201: using __do_is_convertible_to_basic_ostream_impl = 26201: decltype(__is_convertible_to_basic_ostream_test 26201: (declval::type*>())); 26201: 26201: template 26201: struct __is_convertible_to_basic_ostream_impl 26201: <_Tp, 26201: __void_t<__do_is_convertible_to_basic_ostream_impl<_Tp>>> 26201: { 26201: using __ostream_type = 26201: __do_is_convertible_to_basic_ostream_impl<_Tp>; 26201: }; 26201: 26201: template 26201: struct __is_convertible_to_basic_ostream 26201: : __is_convertible_to_basic_ostream_impl<_Tp> 26201: { 26201: public: 26201: using type = __not_::__ostream_type>>; 26201: constexpr static bool value = type::value; 26201: }; 26201: 26201: template 26201: struct __is_insertable : false_type {}; 26201: 26201: template 26201: struct __is_insertable<_Ostream, _Tp, 26201: __void_t() 26201: << declval())>> 26201: : true_type {}; 26201: 26201: template 26201: using __rvalue_ostream_type = 26201: typename __is_convertible_to_basic_ostream< 26201: _Ostream>::__ostream_type; 26201: # 765 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 3 26201: template 26201: inline 26201: typename enable_if<__and_<__not_>, 26201: __is_convertible_to_basic_ostream<_Ostream>, 26201: __is_insertable< 26201: __rvalue_ostream_type<_Ostream>, 26201: const _Tp&>>::value, 26201: __rvalue_ostream_type<_Ostream>>::type 26201: operator<<(_Ostream&& __os, const _Tp& __x) 26201: { 26201: __rvalue_ostream_type<_Ostream> __ret_os = __os; 26201: __ret_os << __x; 26201: return __ret_os; 26201: } 26201: 26201: 26201: 26201: } 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/ostream.tcc" 1 3 26201: # 35 "/usr/x86_64-linux-gnu/include/c++/10/bits/ostream.tcc" 3 26201: #define _OSTREAM_TCC 1 26201: 26201: 26201: # 38 "/usr/x86_64-linux-gnu/include/c++/10/bits/ostream.tcc" 3 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: template 26201: basic_ostream<_CharT, _Traits>::sentry:: 26201: sentry(basic_ostream<_CharT, _Traits>& __os) 26201: : _M_ok(false), _M_os(__os) 26201: { 26201: 26201: if (__os.tie() && __os.good()) 26201: __os.tie()->flush(); 26201: 26201: if (__os.good()) 26201: _M_ok = true; 26201: else 26201: __os.setstate(ios_base::failbit); 26201: } 26201: 26201: template 26201: template 26201: basic_ostream<_CharT, _Traits>& 26201: basic_ostream<_CharT, _Traits>:: 26201: _M_insert(_ValueT __v) 26201: { 26201: sentry __cerb(*this); 26201: if (__cerb) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: const __num_put_type& __np = __check_facet(this->_M_num_put); 26201: if (__np.put(*this, *this, this->fill(), __v).failed()) 26201: __err |= ios_base::badbit; 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: if (__err) 26201: this->setstate(__err); 26201: } 26201: return *this; 26201: } 26201: 26201: template 26201: basic_ostream<_CharT, _Traits>& 26201: basic_ostream<_CharT, _Traits>:: 26201: operator<<(short __n) 26201: { 26201: 26201: 26201: const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; 26201: if (__fmt == ios_base::oct || __fmt == ios_base::hex) 26201: return _M_insert(static_cast(static_cast(__n))); 26201: else 26201: return _M_insert(static_cast(__n)); 26201: } 26201: 26201: template 26201: basic_ostream<_CharT, _Traits>& 26201: basic_ostream<_CharT, _Traits>:: 26201: operator<<(int __n) 26201: { 26201: 26201: 26201: const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; 26201: if (__fmt == ios_base::oct || __fmt == ios_base::hex) 26201: return _M_insert(static_cast(static_cast(__n))); 26201: else 26201: return _M_insert(static_cast(__n)); 26201: } 26201: 26201: template 26201: basic_ostream<_CharT, _Traits>& 26201: basic_ostream<_CharT, _Traits>:: 26201: operator<<(__streambuf_type* __sbin) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: sentry __cerb(*this); 26201: if (__cerb && __sbin) 26201: { 26201: try 26201: { 26201: if (!__copy_streambufs(__sbin, this->rdbuf())) 26201: __err |= ios_base::failbit; 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::failbit); } 26201: } 26201: else if (!__sbin) 26201: __err |= ios_base::badbit; 26201: if (__err) 26201: this->setstate(__err); 26201: return *this; 26201: } 26201: 26201: template 26201: basic_ostream<_CharT, _Traits>& 26201: basic_ostream<_CharT, _Traits>:: 26201: put(char_type __c) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: sentry __cerb(*this); 26201: if (__cerb) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: const int_type __put = this->rdbuf()->sputc(__c); 26201: if (traits_type::eq_int_type(__put, traits_type::eof())) 26201: __err |= ios_base::badbit; 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: if (__err) 26201: this->setstate(__err); 26201: } 26201: return *this; 26201: } 26201: 26201: template 26201: basic_ostream<_CharT, _Traits>& 26201: basic_ostream<_CharT, _Traits>:: 26201: write(const _CharT* __s, streamsize __n) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: sentry __cerb(*this); 26201: if (__cerb) 26201: { 26201: try 26201: { _M_write(__s, __n); } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: } 26201: return *this; 26201: } 26201: 26201: template 26201: basic_ostream<_CharT, _Traits>& 26201: basic_ostream<_CharT, _Traits>:: 26201: flush() 26201: { 26201: 26201: 26201: 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: if (this->rdbuf() && this->rdbuf()->pubsync() == -1) 26201: __err |= ios_base::badbit; 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: if (__err) 26201: this->setstate(__err); 26201: return *this; 26201: } 26201: 26201: template 26201: typename basic_ostream<_CharT, _Traits>::pos_type 26201: basic_ostream<_CharT, _Traits>:: 26201: tellp() 26201: { 26201: pos_type __ret = pos_type(-1); 26201: try 26201: { 26201: if (!this->fail()) 26201: __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out); 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: return __ret; 26201: } 26201: 26201: template 26201: basic_ostream<_CharT, _Traits>& 26201: basic_ostream<_CharT, _Traits>:: 26201: seekp(pos_type __pos) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: if (!this->fail()) 26201: { 26201: 26201: 26201: const pos_type __p = this->rdbuf()->pubseekpos(__pos, 26201: ios_base::out); 26201: 26201: 26201: if (__p == pos_type(off_type(-1))) 26201: __err |= ios_base::failbit; 26201: } 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: if (__err) 26201: this->setstate(__err); 26201: return *this; 26201: } 26201: 26201: template 26201: basic_ostream<_CharT, _Traits>& 26201: basic_ostream<_CharT, _Traits>:: 26201: seekp(off_type __off, ios_base::seekdir __dir) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: if (!this->fail()) 26201: { 26201: 26201: 26201: const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, 26201: ios_base::out); 26201: 26201: 26201: if (__p == pos_type(off_type(-1))) 26201: __err |= ios_base::failbit; 26201: } 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: if (__err) 26201: this->setstate(__err); 26201: return *this; 26201: } 26201: 26201: template 26201: basic_ostream<_CharT, _Traits>& 26201: operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s) 26201: { 26201: if (!__s) 26201: __out.setstate(ios_base::badbit); 26201: else 26201: { 26201: 26201: 26201: const size_t __clen = char_traits::length(__s); 26201: try 26201: { 26201: struct __ptr_guard 26201: { 26201: _CharT *__p; 26201: __ptr_guard (_CharT *__ip): __p(__ip) { } 26201: ~__ptr_guard() { delete[] __p; } 26201: _CharT* __get() { return __p; } 26201: } __pg (new _CharT[__clen]); 26201: 26201: _CharT *__ws = __pg.__get(); 26201: for (size_t __i = 0; __i < __clen; ++__i) 26201: __ws[__i] = __out.widen(__s[__i]); 26201: __ostream_insert(__out, __ws, __clen); 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: __out._M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { __out._M_setstate(ios_base::badbit); } 26201: } 26201: return __out; 26201: } 26201: 26201: 26201: 26201: 26201: extern template class basic_ostream; 26201: extern template ostream& endl(ostream&); 26201: extern template ostream& ends(ostream&); 26201: extern template ostream& flush(ostream&); 26201: extern template ostream& operator<<(ostream&, char); 26201: extern template ostream& operator<<(ostream&, unsigned char); 26201: extern template ostream& operator<<(ostream&, signed char); 26201: extern template ostream& operator<<(ostream&, const char*); 26201: extern template ostream& operator<<(ostream&, const unsigned char*); 26201: extern template ostream& operator<<(ostream&, const signed char*); 26201: 26201: extern template ostream& ostream::_M_insert(long); 26201: extern template ostream& ostream::_M_insert(unsigned long); 26201: extern template ostream& ostream::_M_insert(bool); 26201: 26201: extern template ostream& ostream::_M_insert(long long); 26201: extern template ostream& ostream::_M_insert(unsigned long long); 26201: 26201: extern template ostream& ostream::_M_insert(double); 26201: extern template ostream& ostream::_M_insert(long double); 26201: extern template ostream& ostream::_M_insert(const void*); 26201: 26201: 26201: extern template class basic_ostream; 26201: extern template wostream& endl(wostream&); 26201: extern template wostream& ends(wostream&); 26201: extern template wostream& flush(wostream&); 26201: extern template wostream& operator<<(wostream&, wchar_t); 26201: extern template wostream& operator<<(wostream&, char); 26201: extern template wostream& operator<<(wostream&, const wchar_t*); 26201: extern template wostream& operator<<(wostream&, const char*); 26201: 26201: extern template wostream& wostream::_M_insert(long); 26201: extern template wostream& wostream::_M_insert(unsigned long); 26201: extern template wostream& wostream::_M_insert(bool); 26201: 26201: extern template wostream& wostream::_M_insert(long long); 26201: extern template wostream& wostream::_M_insert(unsigned long long); 26201: 26201: extern template wostream& wostream::_M_insert(double); 26201: extern template wostream& wostream::_M_insert(long double); 26201: extern template wostream& wostream::_M_insert(const void*); 26201: 26201: 26201: 26201: 26201: } 26201: # 785 "/usr/x86_64-linux-gnu/include/c++/10/ostream" 2 3 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/istream" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 57 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: template 26201: class basic_istream : virtual public basic_ios<_CharT, _Traits> 26201: { 26201: public: 26201: 26201: typedef _CharT char_type; 26201: typedef typename _Traits::int_type int_type; 26201: typedef typename _Traits::pos_type pos_type; 26201: typedef typename _Traits::off_type off_type; 26201: typedef _Traits traits_type; 26201: 26201: 26201: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 26201: typedef basic_ios<_CharT, _Traits> __ios_type; 26201: typedef basic_istream<_CharT, _Traits> __istream_type; 26201: typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > 26201: __num_get_type; 26201: typedef ctype<_CharT> __ctype_type; 26201: 26201: protected: 26201: 26201: 26201: 26201: 26201: 26201: streamsize _M_gcount; 26201: 26201: public: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: explicit 26201: basic_istream(__streambuf_type* __sb) 26201: : _M_gcount(streamsize(0)) 26201: { this->init(__sb); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: virtual 26201: ~basic_istream() 26201: { _M_gcount = streamsize(0); } 26201: 26201: 26201: class sentry; 26201: friend class sentry; 26201: # 119 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: __istream_type& 26201: operator>>(__istream_type& (*__pf)(__istream_type&)) 26201: { return __pf(*this); } 26201: 26201: __istream_type& 26201: operator>>(__ios_type& (*__pf)(__ios_type&)) 26201: { 26201: __pf(*this); 26201: return *this; 26201: } 26201: 26201: __istream_type& 26201: operator>>(ios_base& (*__pf)(ios_base&)) 26201: { 26201: __pf(*this); 26201: return *this; 26201: } 26201: # 167 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: __istream_type& 26201: operator>>(bool& __n) 26201: { return _M_extract(__n); } 26201: 26201: __istream_type& 26201: operator>>(short& __n); 26201: 26201: __istream_type& 26201: operator>>(unsigned short& __n) 26201: { return _M_extract(__n); } 26201: 26201: __istream_type& 26201: operator>>(int& __n); 26201: 26201: __istream_type& 26201: operator>>(unsigned int& __n) 26201: { return _M_extract(__n); } 26201: 26201: __istream_type& 26201: operator>>(long& __n) 26201: { return _M_extract(__n); } 26201: 26201: __istream_type& 26201: operator>>(unsigned long& __n) 26201: { return _M_extract(__n); } 26201: 26201: 26201: __istream_type& 26201: operator>>(long long& __n) 26201: { return _M_extract(__n); } 26201: 26201: __istream_type& 26201: operator>>(unsigned long long& __n) 26201: { return _M_extract(__n); } 26201: # 213 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: __istream_type& 26201: operator>>(float& __f) 26201: { return _M_extract(__f); } 26201: 26201: __istream_type& 26201: operator>>(double& __f) 26201: { return _M_extract(__f); } 26201: 26201: __istream_type& 26201: operator>>(long double& __f) 26201: { return _M_extract(__f); } 26201: # 234 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: __istream_type& 26201: operator>>(void*& __p) 26201: { return _M_extract(__p); } 26201: # 258 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: __istream_type& 26201: operator>>(__streambuf_type* __sb); 26201: # 268 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: streamsize 26201: gcount() const 26201: { return _M_gcount; } 26201: # 301 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: int_type 26201: get(); 26201: # 315 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: __istream_type& 26201: get(char_type& __c); 26201: # 342 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: __istream_type& 26201: get(char_type* __s, streamsize __n, char_type __delim); 26201: # 353 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: __istream_type& 26201: get(char_type* __s, streamsize __n) 26201: { return this->get(__s, __n, this->widen('\n')); } 26201: # 376 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: __istream_type& 26201: get(__streambuf_type& __sb, char_type __delim); 26201: # 386 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: __istream_type& 26201: get(__streambuf_type& __sb) 26201: { return this->get(__sb, this->widen('\n')); } 26201: # 415 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: __istream_type& 26201: getline(char_type* __s, streamsize __n, char_type __delim); 26201: # 426 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: __istream_type& 26201: getline(char_type* __s, streamsize __n) 26201: { return this->getline(__s, __n, this->widen('\n')); } 26201: # 450 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: __istream_type& 26201: ignore(streamsize __n, int_type __delim); 26201: 26201: __istream_type& 26201: ignore(streamsize __n); 26201: 26201: __istream_type& 26201: ignore(); 26201: # 467 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: int_type 26201: peek(); 26201: # 485 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: __istream_type& 26201: read(char_type* __s, streamsize __n); 26201: # 504 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: streamsize 26201: readsome(char_type* __s, streamsize __n); 26201: # 521 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: __istream_type& 26201: putback(char_type __c); 26201: # 537 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: __istream_type& 26201: unget(); 26201: # 555 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: int 26201: sync(); 26201: # 570 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: pos_type 26201: tellg(); 26201: # 585 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: __istream_type& 26201: seekg(pos_type); 26201: # 601 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: __istream_type& 26201: seekg(off_type, ios_base::seekdir); 26201: 26201: 26201: protected: 26201: basic_istream() 26201: : _M_gcount(streamsize(0)) 26201: { this->init(0); } 26201: 26201: 26201: basic_istream(const basic_istream&) = delete; 26201: 26201: basic_istream(basic_istream&& __rhs) 26201: : __ios_type(), _M_gcount(__rhs._M_gcount) 26201: { 26201: __ios_type::move(__rhs); 26201: __rhs._M_gcount = 0; 26201: } 26201: 26201: 26201: 26201: basic_istream& operator=(const basic_istream&) = delete; 26201: 26201: basic_istream& 26201: operator=(basic_istream&& __rhs) 26201: { 26201: swap(__rhs); 26201: return *this; 26201: } 26201: 26201: void 26201: swap(basic_istream& __rhs) 26201: { 26201: __ios_type::swap(__rhs); 26201: std::swap(_M_gcount, __rhs._M_gcount); 26201: } 26201: 26201: 26201: template 26201: __istream_type& 26201: _M_extract(_ValueT& __v); 26201: }; 26201: 26201: 26201: template<> 26201: basic_istream& 26201: basic_istream:: 26201: getline(char_type* __s, streamsize __n, char_type __delim); 26201: 26201: template<> 26201: basic_istream& 26201: basic_istream:: 26201: ignore(streamsize __n); 26201: 26201: template<> 26201: basic_istream& 26201: basic_istream:: 26201: ignore(streamsize __n, int_type __delim); 26201: 26201: 26201: template<> 26201: basic_istream& 26201: basic_istream:: 26201: getline(char_type* __s, streamsize __n, char_type __delim); 26201: 26201: template<> 26201: basic_istream& 26201: basic_istream:: 26201: ignore(streamsize __n); 26201: 26201: template<> 26201: basic_istream& 26201: basic_istream:: 26201: ignore(streamsize __n, int_type __delim); 26201: # 685 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: template 26201: class basic_istream<_CharT, _Traits>::sentry 26201: { 26201: 26201: bool _M_ok; 26201: 26201: public: 26201: 26201: typedef _Traits traits_type; 26201: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 26201: typedef basic_istream<_CharT, _Traits> __istream_type; 26201: typedef typename __istream_type::__ctype_type __ctype_type; 26201: typedef typename _Traits::int_type __int_type; 26201: # 721 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: explicit 26201: sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false); 26201: # 732 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: explicit 26201: 26201: operator bool() const 26201: { return _M_ok; } 26201: }; 26201: # 750 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c); 26201: 26201: template 26201: inline basic_istream& 26201: operator>>(basic_istream& __in, unsigned char& __c) 26201: { return (__in >> reinterpret_cast(__c)); } 26201: 26201: template 26201: inline basic_istream& 26201: operator>>(basic_istream& __in, signed char& __c) 26201: { return (__in >> reinterpret_cast(__c)); } 26201: # 792 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s); 26201: 26201: 26201: template<> 26201: basic_istream& 26201: operator>>(basic_istream& __in, char* __s); 26201: 26201: template 26201: inline basic_istream& 26201: operator>>(basic_istream& __in, unsigned char* __s) 26201: { return (__in >> reinterpret_cast(__s)); } 26201: 26201: template 26201: inline basic_istream& 26201: operator>>(basic_istream& __in, signed char* __s) 26201: { return (__in >> reinterpret_cast(__s)); } 26201: # 823 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: template 26201: class basic_iostream 26201: : public basic_istream<_CharT, _Traits>, 26201: public basic_ostream<_CharT, _Traits> 26201: { 26201: public: 26201: 26201: 26201: 26201: typedef _CharT char_type; 26201: typedef typename _Traits::int_type int_type; 26201: typedef typename _Traits::pos_type pos_type; 26201: typedef typename _Traits::off_type off_type; 26201: typedef _Traits traits_type; 26201: 26201: 26201: typedef basic_istream<_CharT, _Traits> __istream_type; 26201: typedef basic_ostream<_CharT, _Traits> __ostream_type; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: explicit 26201: basic_iostream(basic_streambuf<_CharT, _Traits>* __sb) 26201: : __istream_type(__sb), __ostream_type(__sb) { } 26201: 26201: 26201: 26201: 26201: virtual 26201: ~basic_iostream() { } 26201: 26201: protected: 26201: basic_iostream() 26201: : __istream_type(), __ostream_type() { } 26201: 26201: 26201: basic_iostream(const basic_iostream&) = delete; 26201: 26201: basic_iostream(basic_iostream&& __rhs) 26201: : __istream_type(std::move(__rhs)), __ostream_type(*this) 26201: { } 26201: 26201: 26201: 26201: basic_iostream& operator=(const basic_iostream&) = delete; 26201: 26201: basic_iostream& 26201: operator=(basic_iostream&& __rhs) 26201: { 26201: swap(__rhs); 26201: return *this; 26201: } 26201: 26201: void 26201: swap(basic_iostream& __rhs) 26201: { __istream_type::swap(__rhs); } 26201: 26201: }; 26201: # 906 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: ws(basic_istream<_CharT, _Traits>& __is); 26201: 26201: 26201: template 26201: basic_istream<_Ch, _Up>& 26201: __is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*); 26201: 26201: template 26201: struct __is_convertible_to_basic_istream_impl 26201: { 26201: using __istream_type = void; 26201: }; 26201: 26201: template 26201: using __do_is_convertible_to_basic_istream_impl = 26201: decltype(__is_convertible_to_basic_istream_test 26201: (declval::type*>())); 26201: 26201: template 26201: struct __is_convertible_to_basic_istream_impl 26201: <_Tp, 26201: __void_t<__do_is_convertible_to_basic_istream_impl<_Tp>>> 26201: { 26201: using __istream_type = 26201: __do_is_convertible_to_basic_istream_impl<_Tp>; 26201: }; 26201: 26201: template 26201: struct __is_convertible_to_basic_istream 26201: : __is_convertible_to_basic_istream_impl<_Tp> 26201: { 26201: public: 26201: using type = __not_::__istream_type>>; 26201: constexpr static bool value = type::value; 26201: }; 26201: 26201: template 26201: struct __is_extractable : false_type {}; 26201: 26201: template 26201: struct __is_extractable<_Istream, _Tp, 26201: __void_t() 26201: >> declval<_Tp>())>> 26201: : true_type {}; 26201: 26201: template 26201: using __rvalue_istream_type = 26201: typename __is_convertible_to_basic_istream< 26201: _Istream>::__istream_type; 26201: # 972 "/usr/x86_64-linux-gnu/include/c++/10/istream" 3 26201: template 26201: inline 26201: typename enable_if<__and_<__not_>, 26201: __is_convertible_to_basic_istream<_Istream>, 26201: __is_extractable< 26201: __rvalue_istream_type<_Istream>, 26201: _Tp&&>>::value, 26201: __rvalue_istream_type<_Istream>>::type 26201: operator>>(_Istream&& __is, _Tp&& __x) 26201: { 26201: __rvalue_istream_type<_Istream> __ret_is = __is; 26201: __ret_is >> std::forward<_Tp>(__x); 26201: return __ret_is; 26201: } 26201: 26201: 26201: 26201: } 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/istream.tcc" 1 3 26201: # 35 "/usr/x86_64-linux-gnu/include/c++/10/bits/istream.tcc" 3 26201: #define _ISTREAM_TCC 1 26201: 26201: 26201: # 38 "/usr/x86_64-linux-gnu/include/c++/10/bits/istream.tcc" 3 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: template 26201: basic_istream<_CharT, _Traits>::sentry:: 26201: sentry(basic_istream<_CharT, _Traits>& __in, bool __noskip) : _M_ok(false) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: if (__in.good()) 26201: try 26201: { 26201: if (__in.tie()) 26201: __in.tie()->flush(); 26201: if (!__noskip && bool(__in.flags() & ios_base::skipws)) 26201: { 26201: const __int_type __eof = traits_type::eof(); 26201: __streambuf_type* __sb = __in.rdbuf(); 26201: __int_type __c = __sb->sgetc(); 26201: 26201: const __ctype_type& __ct = __check_facet(__in._M_ctype); 26201: while (!traits_type::eq_int_type(__c, __eof) 26201: && __ct.is(ctype_base::space, 26201: traits_type::to_char_type(__c))) 26201: __c = __sb->snextc(); 26201: 26201: 26201: 26201: 26201: if (traits_type::eq_int_type(__c, __eof)) 26201: __err |= ios_base::eofbit; 26201: } 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: __in._M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { __in._M_setstate(ios_base::badbit); } 26201: 26201: if (__in.good() && __err == ios_base::goodbit) 26201: _M_ok = true; 26201: else 26201: { 26201: __err |= ios_base::failbit; 26201: __in.setstate(__err); 26201: } 26201: } 26201: 26201: template 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: basic_istream<_CharT, _Traits>:: 26201: _M_extract(_ValueT& __v) 26201: { 26201: sentry __cerb(*this, false); 26201: if (__cerb) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: const __num_get_type& __ng = __check_facet(this->_M_num_get); 26201: __ng.get(*this, 0, *this, __err, __v); 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: if (__err) 26201: this->setstate(__err); 26201: } 26201: return *this; 26201: } 26201: 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: basic_istream<_CharT, _Traits>:: 26201: operator>>(short& __n) 26201: { 26201: 26201: 26201: sentry __cerb(*this, false); 26201: if (__cerb) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: long __l; 26201: const __num_get_type& __ng = __check_facet(this->_M_num_get); 26201: __ng.get(*this, 0, *this, __err, __l); 26201: 26201: 26201: 26201: if (__l < __gnu_cxx::__numeric_traits::__min) 26201: { 26201: __err |= ios_base::failbit; 26201: __n = __gnu_cxx::__numeric_traits::__min; 26201: } 26201: else if (__l > __gnu_cxx::__numeric_traits::__max) 26201: { 26201: __err |= ios_base::failbit; 26201: __n = __gnu_cxx::__numeric_traits::__max; 26201: } 26201: else 26201: __n = short(__l); 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: if (__err) 26201: this->setstate(__err); 26201: } 26201: return *this; 26201: } 26201: 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: basic_istream<_CharT, _Traits>:: 26201: operator>>(int& __n) 26201: { 26201: 26201: 26201: sentry __cerb(*this, false); 26201: if (__cerb) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: long __l; 26201: const __num_get_type& __ng = __check_facet(this->_M_num_get); 26201: __ng.get(*this, 0, *this, __err, __l); 26201: 26201: 26201: 26201: if (__l < __gnu_cxx::__numeric_traits::__min) 26201: { 26201: __err |= ios_base::failbit; 26201: __n = __gnu_cxx::__numeric_traits::__min; 26201: } 26201: else if (__l > __gnu_cxx::__numeric_traits::__max) 26201: { 26201: __err |= ios_base::failbit; 26201: __n = __gnu_cxx::__numeric_traits::__max; 26201: } 26201: else 26201: __n = int(__l); 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: if (__err) 26201: this->setstate(__err); 26201: } 26201: return *this; 26201: } 26201: 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: basic_istream<_CharT, _Traits>:: 26201: operator>>(__streambuf_type* __sbout) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: sentry __cerb(*this, false); 26201: if (__cerb && __sbout) 26201: { 26201: try 26201: { 26201: bool __ineof; 26201: if (!__copy_streambufs_eof(this->rdbuf(), __sbout, __ineof)) 26201: __err |= ios_base::failbit; 26201: if (__ineof) 26201: __err |= ios_base::eofbit; 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::failbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::failbit); } 26201: } 26201: else if (!__sbout) 26201: __err |= ios_base::failbit; 26201: if (__err) 26201: this->setstate(__err); 26201: return *this; 26201: } 26201: 26201: template 26201: typename basic_istream<_CharT, _Traits>::int_type 26201: basic_istream<_CharT, _Traits>:: 26201: get(void) 26201: { 26201: const int_type __eof = traits_type::eof(); 26201: int_type __c = __eof; 26201: _M_gcount = 0; 26201: ios_base::iostate __err = ios_base::goodbit; 26201: sentry __cerb(*this, true); 26201: if (__cerb) 26201: { 26201: try 26201: { 26201: __c = this->rdbuf()->sbumpc(); 26201: 26201: if (!traits_type::eq_int_type(__c, __eof)) 26201: _M_gcount = 1; 26201: else 26201: __err |= ios_base::eofbit; 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: } 26201: if (!_M_gcount) 26201: __err |= ios_base::failbit; 26201: if (__err) 26201: this->setstate(__err); 26201: return __c; 26201: } 26201: 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: basic_istream<_CharT, _Traits>:: 26201: get(char_type& __c) 26201: { 26201: _M_gcount = 0; 26201: ios_base::iostate __err = ios_base::goodbit; 26201: sentry __cerb(*this, true); 26201: if (__cerb) 26201: { 26201: try 26201: { 26201: const int_type __cb = this->rdbuf()->sbumpc(); 26201: 26201: if (!traits_type::eq_int_type(__cb, traits_type::eof())) 26201: { 26201: _M_gcount = 1; 26201: __c = traits_type::to_char_type(__cb); 26201: } 26201: else 26201: __err |= ios_base::eofbit; 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: } 26201: if (!_M_gcount) 26201: __err |= ios_base::failbit; 26201: if (__err) 26201: this->setstate(__err); 26201: return *this; 26201: } 26201: 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: basic_istream<_CharT, _Traits>:: 26201: get(char_type* __s, streamsize __n, char_type __delim) 26201: { 26201: _M_gcount = 0; 26201: ios_base::iostate __err = ios_base::goodbit; 26201: sentry __cerb(*this, true); 26201: if (__cerb) 26201: { 26201: try 26201: { 26201: const int_type __idelim = traits_type::to_int_type(__delim); 26201: const int_type __eof = traits_type::eof(); 26201: __streambuf_type* __sb = this->rdbuf(); 26201: int_type __c = __sb->sgetc(); 26201: 26201: while (_M_gcount + 1 < __n 26201: && !traits_type::eq_int_type(__c, __eof) 26201: && !traits_type::eq_int_type(__c, __idelim)) 26201: { 26201: *__s++ = traits_type::to_char_type(__c); 26201: ++_M_gcount; 26201: __c = __sb->snextc(); 26201: } 26201: if (traits_type::eq_int_type(__c, __eof)) 26201: __err |= ios_base::eofbit; 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: } 26201: 26201: 26201: if (__n > 0) 26201: *__s = char_type(); 26201: if (!_M_gcount) 26201: __err |= ios_base::failbit; 26201: if (__err) 26201: this->setstate(__err); 26201: return *this; 26201: } 26201: 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: basic_istream<_CharT, _Traits>:: 26201: get(__streambuf_type& __sb, char_type __delim) 26201: { 26201: _M_gcount = 0; 26201: ios_base::iostate __err = ios_base::goodbit; 26201: sentry __cerb(*this, true); 26201: if (__cerb) 26201: { 26201: try 26201: { 26201: const int_type __idelim = traits_type::to_int_type(__delim); 26201: const int_type __eof = traits_type::eof(); 26201: __streambuf_type* __this_sb = this->rdbuf(); 26201: int_type __c = __this_sb->sgetc(); 26201: char_type __c2 = traits_type::to_char_type(__c); 26201: 26201: while (!traits_type::eq_int_type(__c, __eof) 26201: && !traits_type::eq_int_type(__c, __idelim) 26201: && !traits_type::eq_int_type(__sb.sputc(__c2), __eof)) 26201: { 26201: ++_M_gcount; 26201: __c = __this_sb->snextc(); 26201: __c2 = traits_type::to_char_type(__c); 26201: } 26201: if (traits_type::eq_int_type(__c, __eof)) 26201: __err |= ios_base::eofbit; 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: } 26201: if (!_M_gcount) 26201: __err |= ios_base::failbit; 26201: if (__err) 26201: this->setstate(__err); 26201: return *this; 26201: } 26201: 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: basic_istream<_CharT, _Traits>:: 26201: getline(char_type* __s, streamsize __n, char_type __delim) 26201: { 26201: _M_gcount = 0; 26201: ios_base::iostate __err = ios_base::goodbit; 26201: sentry __cerb(*this, true); 26201: if (__cerb) 26201: { 26201: try 26201: { 26201: const int_type __idelim = traits_type::to_int_type(__delim); 26201: const int_type __eof = traits_type::eof(); 26201: __streambuf_type* __sb = this->rdbuf(); 26201: int_type __c = __sb->sgetc(); 26201: 26201: while (_M_gcount + 1 < __n 26201: && !traits_type::eq_int_type(__c, __eof) 26201: && !traits_type::eq_int_type(__c, __idelim)) 26201: { 26201: *__s++ = traits_type::to_char_type(__c); 26201: __c = __sb->snextc(); 26201: ++_M_gcount; 26201: } 26201: if (traits_type::eq_int_type(__c, __eof)) 26201: __err |= ios_base::eofbit; 26201: else 26201: { 26201: if (traits_type::eq_int_type(__c, __idelim)) 26201: { 26201: __sb->sbumpc(); 26201: ++_M_gcount; 26201: } 26201: else 26201: __err |= ios_base::failbit; 26201: } 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: } 26201: 26201: 26201: if (__n > 0) 26201: *__s = char_type(); 26201: if (!_M_gcount) 26201: __err |= ios_base::failbit; 26201: if (__err) 26201: this->setstate(__err); 26201: return *this; 26201: } 26201: 26201: 26201: 26201: 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: basic_istream<_CharT, _Traits>:: 26201: ignore(void) 26201: { 26201: _M_gcount = 0; 26201: sentry __cerb(*this, true); 26201: if (__cerb) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: const int_type __eof = traits_type::eof(); 26201: __streambuf_type* __sb = this->rdbuf(); 26201: 26201: if (traits_type::eq_int_type(__sb->sbumpc(), __eof)) 26201: __err |= ios_base::eofbit; 26201: else 26201: _M_gcount = 1; 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: if (__err) 26201: this->setstate(__err); 26201: } 26201: return *this; 26201: } 26201: 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: basic_istream<_CharT, _Traits>:: 26201: ignore(streamsize __n) 26201: { 26201: _M_gcount = 0; 26201: sentry __cerb(*this, true); 26201: if (__cerb && __n > 0) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: const int_type __eof = traits_type::eof(); 26201: __streambuf_type* __sb = this->rdbuf(); 26201: int_type __c = __sb->sgetc(); 26201: # 521 "/usr/x86_64-linux-gnu/include/c++/10/bits/istream.tcc" 3 26201: bool __large_ignore = false; 26201: while (true) 26201: { 26201: while (_M_gcount < __n 26201: && !traits_type::eq_int_type(__c, __eof)) 26201: { 26201: ++_M_gcount; 26201: __c = __sb->snextc(); 26201: } 26201: if (__n == __gnu_cxx::__numeric_traits::__max 26201: && !traits_type::eq_int_type(__c, __eof)) 26201: { 26201: _M_gcount = 26201: __gnu_cxx::__numeric_traits::__min; 26201: __large_ignore = true; 26201: } 26201: else 26201: break; 26201: } 26201: 26201: if (__large_ignore) 26201: _M_gcount = __gnu_cxx::__numeric_traits::__max; 26201: 26201: if (traits_type::eq_int_type(__c, __eof)) 26201: __err |= ios_base::eofbit; 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: if (__err) 26201: this->setstate(__err); 26201: } 26201: return *this; 26201: } 26201: 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: basic_istream<_CharT, _Traits>:: 26201: ignore(streamsize __n, int_type __delim) 26201: { 26201: _M_gcount = 0; 26201: sentry __cerb(*this, true); 26201: if (__cerb && __n > 0) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: const int_type __eof = traits_type::eof(); 26201: __streambuf_type* __sb = this->rdbuf(); 26201: int_type __c = __sb->sgetc(); 26201: 26201: 26201: bool __large_ignore = false; 26201: while (true) 26201: { 26201: while (_M_gcount < __n 26201: && !traits_type::eq_int_type(__c, __eof) 26201: && !traits_type::eq_int_type(__c, __delim)) 26201: { 26201: ++_M_gcount; 26201: __c = __sb->snextc(); 26201: } 26201: if (__n == __gnu_cxx::__numeric_traits::__max 26201: && !traits_type::eq_int_type(__c, __eof) 26201: && !traits_type::eq_int_type(__c, __delim)) 26201: { 26201: _M_gcount = 26201: __gnu_cxx::__numeric_traits::__min; 26201: __large_ignore = true; 26201: } 26201: else 26201: break; 26201: } 26201: 26201: if (__large_ignore) 26201: _M_gcount = __gnu_cxx::__numeric_traits::__max; 26201: 26201: if (traits_type::eq_int_type(__c, __eof)) 26201: __err |= ios_base::eofbit; 26201: else if (traits_type::eq_int_type(__c, __delim)) 26201: { 26201: if (_M_gcount 26201: < __gnu_cxx::__numeric_traits::__max) 26201: ++_M_gcount; 26201: __sb->sbumpc(); 26201: } 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: if (__err) 26201: this->setstate(__err); 26201: } 26201: return *this; 26201: } 26201: 26201: template 26201: typename basic_istream<_CharT, _Traits>::int_type 26201: basic_istream<_CharT, _Traits>:: 26201: peek(void) 26201: { 26201: int_type __c = traits_type::eof(); 26201: _M_gcount = 0; 26201: sentry __cerb(*this, true); 26201: if (__cerb) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: __c = this->rdbuf()->sgetc(); 26201: if (traits_type::eq_int_type(__c, traits_type::eof())) 26201: __err |= ios_base::eofbit; 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: if (__err) 26201: this->setstate(__err); 26201: } 26201: return __c; 26201: } 26201: 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: basic_istream<_CharT, _Traits>:: 26201: read(char_type* __s, streamsize __n) 26201: { 26201: _M_gcount = 0; 26201: sentry __cerb(*this, true); 26201: if (__cerb) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: _M_gcount = this->rdbuf()->sgetn(__s, __n); 26201: if (_M_gcount != __n) 26201: __err |= (ios_base::eofbit | ios_base::failbit); 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: if (__err) 26201: this->setstate(__err); 26201: } 26201: return *this; 26201: } 26201: 26201: template 26201: streamsize 26201: basic_istream<_CharT, _Traits>:: 26201: readsome(char_type* __s, streamsize __n) 26201: { 26201: _M_gcount = 0; 26201: sentry __cerb(*this, true); 26201: if (__cerb) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: 26201: const streamsize __num = this->rdbuf()->in_avail(); 26201: if (__num > 0) 26201: _M_gcount = this->rdbuf()->sgetn(__s, std::min(__num, __n)); 26201: else if (__num == -1) 26201: __err |= ios_base::eofbit; 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: if (__err) 26201: this->setstate(__err); 26201: } 26201: return _M_gcount; 26201: } 26201: 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: basic_istream<_CharT, _Traits>:: 26201: putback(char_type __c) 26201: { 26201: 26201: 26201: _M_gcount = 0; 26201: 26201: this->clear(this->rdstate() & ~ios_base::eofbit); 26201: sentry __cerb(*this, true); 26201: if (__cerb) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: const int_type __eof = traits_type::eof(); 26201: __streambuf_type* __sb = this->rdbuf(); 26201: if (!__sb 26201: || traits_type::eq_int_type(__sb->sputbackc(__c), __eof)) 26201: __err |= ios_base::badbit; 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: if (__err) 26201: this->setstate(__err); 26201: } 26201: return *this; 26201: } 26201: 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: basic_istream<_CharT, _Traits>:: 26201: unget(void) 26201: { 26201: 26201: 26201: _M_gcount = 0; 26201: 26201: this->clear(this->rdstate() & ~ios_base::eofbit); 26201: sentry __cerb(*this, true); 26201: if (__cerb) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: const int_type __eof = traits_type::eof(); 26201: __streambuf_type* __sb = this->rdbuf(); 26201: if (!__sb 26201: || traits_type::eq_int_type(__sb->sungetc(), __eof)) 26201: __err |= ios_base::badbit; 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: if (__err) 26201: this->setstate(__err); 26201: } 26201: return *this; 26201: } 26201: 26201: template 26201: int 26201: basic_istream<_CharT, _Traits>:: 26201: sync(void) 26201: { 26201: 26201: 26201: int __ret = -1; 26201: sentry __cerb(*this, true); 26201: if (__cerb) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: __streambuf_type* __sb = this->rdbuf(); 26201: if (__sb) 26201: { 26201: if (__sb->pubsync() == -1) 26201: __err |= ios_base::badbit; 26201: else 26201: __ret = 0; 26201: } 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: if (__err) 26201: this->setstate(__err); 26201: } 26201: return __ret; 26201: } 26201: 26201: template 26201: typename basic_istream<_CharT, _Traits>::pos_type 26201: basic_istream<_CharT, _Traits>:: 26201: tellg(void) 26201: { 26201: 26201: 26201: pos_type __ret = pos_type(-1); 26201: sentry __cerb(*this, true); 26201: if (__cerb) 26201: { 26201: try 26201: { 26201: if (!this->fail()) 26201: __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, 26201: ios_base::in); 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: } 26201: return __ret; 26201: } 26201: 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: basic_istream<_CharT, _Traits>:: 26201: seekg(pos_type __pos) 26201: { 26201: 26201: 26201: 26201: this->clear(this->rdstate() & ~ios_base::eofbit); 26201: sentry __cerb(*this, true); 26201: if (__cerb) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: if (!this->fail()) 26201: { 26201: 26201: const pos_type __p = this->rdbuf()->pubseekpos(__pos, 26201: ios_base::in); 26201: 26201: 26201: if (__p == pos_type(off_type(-1))) 26201: __err |= ios_base::failbit; 26201: } 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: if (__err) 26201: this->setstate(__err); 26201: } 26201: return *this; 26201: } 26201: 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: basic_istream<_CharT, _Traits>:: 26201: seekg(off_type __off, ios_base::seekdir __dir) 26201: { 26201: 26201: 26201: 26201: this->clear(this->rdstate() & ~ios_base::eofbit); 26201: sentry __cerb(*this, true); 26201: if (__cerb) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: if (!this->fail()) 26201: { 26201: 26201: const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, 26201: ios_base::in); 26201: 26201: 26201: if (__p == pos_type(off_type(-1))) 26201: __err |= ios_base::failbit; 26201: } 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: this->_M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { this->_M_setstate(ios_base::badbit); } 26201: if (__err) 26201: this->setstate(__err); 26201: } 26201: return *this; 26201: } 26201: 26201: 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c) 26201: { 26201: typedef basic_istream<_CharT, _Traits> __istream_type; 26201: typedef typename __istream_type::int_type __int_type; 26201: 26201: typename __istream_type::sentry __cerb(__in, false); 26201: if (__cerb) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: const __int_type __cb = __in.rdbuf()->sbumpc(); 26201: if (!_Traits::eq_int_type(__cb, _Traits::eof())) 26201: __c = _Traits::to_char_type(__cb); 26201: else 26201: __err |= (ios_base::eofbit | ios_base::failbit); 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: __in._M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { __in._M_setstate(ios_base::badbit); } 26201: if (__err) 26201: __in.setstate(__err); 26201: } 26201: return __in; 26201: } 26201: 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s) 26201: { 26201: typedef basic_istream<_CharT, _Traits> __istream_type; 26201: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 26201: typedef typename _Traits::int_type int_type; 26201: typedef _CharT char_type; 26201: typedef ctype<_CharT> __ctype_type; 26201: 26201: streamsize __extracted = 0; 26201: ios_base::iostate __err = ios_base::goodbit; 26201: typename __istream_type::sentry __cerb(__in, false); 26201: if (__cerb) 26201: { 26201: try 26201: { 26201: 26201: streamsize __num = __in.width(); 26201: if (__num <= 0) 26201: __num = __gnu_cxx::__numeric_traits::__max; 26201: 26201: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 26201: 26201: const int_type __eof = _Traits::eof(); 26201: __streambuf_type* __sb = __in.rdbuf(); 26201: int_type __c = __sb->sgetc(); 26201: 26201: while (__extracted < __num - 1 26201: && !_Traits::eq_int_type(__c, __eof) 26201: && !__ct.is(ctype_base::space, 26201: _Traits::to_char_type(__c))) 26201: { 26201: *__s++ = _Traits::to_char_type(__c); 26201: ++__extracted; 26201: __c = __sb->snextc(); 26201: } 26201: if (_Traits::eq_int_type(__c, __eof)) 26201: __err |= ios_base::eofbit; 26201: 26201: 26201: 26201: *__s = char_type(); 26201: __in.width(0); 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: __in._M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { __in._M_setstate(ios_base::badbit); } 26201: } 26201: if (!__extracted) 26201: __err |= ios_base::failbit; 26201: if (__err) 26201: __in.setstate(__err); 26201: return __in; 26201: } 26201: 26201: 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: ws(basic_istream<_CharT, _Traits>& __in) 26201: { 26201: typedef basic_istream<_CharT, _Traits> __istream_type; 26201: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 26201: typedef typename __istream_type::int_type __int_type; 26201: typedef ctype<_CharT> __ctype_type; 26201: 26201: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 26201: const __int_type __eof = _Traits::eof(); 26201: __streambuf_type* __sb = __in.rdbuf(); 26201: __int_type __c = __sb->sgetc(); 26201: 26201: while (!_Traits::eq_int_type(__c, __eof) 26201: && __ct.is(ctype_base::space, _Traits::to_char_type(__c))) 26201: __c = __sb->snextc(); 26201: 26201: if (_Traits::eq_int_type(__c, __eof)) 26201: __in.setstate(ios_base::eofbit); 26201: return __in; 26201: } 26201: 26201: 26201: 26201: 26201: extern template class basic_istream; 26201: extern template istream& ws(istream&); 26201: extern template istream& operator>>(istream&, char&); 26201: extern template istream& operator>>(istream&, char*); 26201: extern template istream& operator>>(istream&, unsigned char&); 26201: extern template istream& operator>>(istream&, signed char&); 26201: extern template istream& operator>>(istream&, unsigned char*); 26201: extern template istream& operator>>(istream&, signed char*); 26201: 26201: extern template istream& istream::_M_extract(unsigned short&); 26201: extern template istream& istream::_M_extract(unsigned int&); 26201: extern template istream& istream::_M_extract(long&); 26201: extern template istream& istream::_M_extract(unsigned long&); 26201: extern template istream& istream::_M_extract(bool&); 26201: 26201: extern template istream& istream::_M_extract(long long&); 26201: extern template istream& istream::_M_extract(unsigned long long&); 26201: 26201: extern template istream& istream::_M_extract(float&); 26201: extern template istream& istream::_M_extract(double&); 26201: extern template istream& istream::_M_extract(long double&); 26201: extern template istream& istream::_M_extract(void*&); 26201: 26201: extern template class basic_iostream; 26201: 26201: 26201: extern template class basic_istream; 26201: extern template wistream& ws(wistream&); 26201: extern template wistream& operator>>(wistream&, wchar_t&); 26201: extern template wistream& operator>>(wistream&, wchar_t*); 26201: 26201: extern template wistream& wistream::_M_extract(unsigned short&); 26201: extern template wistream& wistream::_M_extract(unsigned int&); 26201: extern template wistream& wistream::_M_extract(long&); 26201: extern template wistream& wistream::_M_extract(unsigned long&); 26201: extern template wistream& wistream::_M_extract(bool&); 26201: 26201: extern template wistream& wistream::_M_extract(long long&); 26201: extern template wistream& wistream::_M_extract(unsigned long long&); 26201: 26201: extern template wistream& wistream::_M_extract(float&); 26201: extern template wistream& wistream::_M_extract(double&); 26201: extern template wistream& wistream::_M_extract(long double&); 26201: extern template wistream& wistream::_M_extract(void*&); 26201: 26201: extern template class basic_iostream; 26201: 26201: 26201: 26201: 26201: } 26201: # 992 "/usr/x86_64-linux-gnu/include/c++/10/istream" 2 3 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 2 3 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: namespace __cxx11 { 26201: # 64 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: template 26201: class basic_stringbuf : public basic_streambuf<_CharT, _Traits> 26201: { 26201: struct __xfer_bufptrs; 26201: public: 26201: 26201: typedef _CharT char_type; 26201: typedef _Traits traits_type; 26201: 26201: 26201: typedef _Alloc allocator_type; 26201: typedef typename traits_type::int_type int_type; 26201: typedef typename traits_type::pos_type pos_type; 26201: typedef typename traits_type::off_type off_type; 26201: 26201: typedef basic_streambuf __streambuf_type; 26201: typedef basic_string __string_type; 26201: typedef typename __string_type::size_type __size_type; 26201: 26201: protected: 26201: 26201: ios_base::openmode _M_mode; 26201: 26201: 26201: __string_type _M_string; 26201: 26201: public: 26201: # 99 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: basic_stringbuf() 26201: : __streambuf_type(), _M_mode(ios_base::in | ios_base::out), _M_string() 26201: { } 26201: # 110 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: explicit 26201: basic_stringbuf(ios_base::openmode __mode) 26201: : __streambuf_type(), _M_mode(__mode), _M_string() 26201: { } 26201: # 123 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: explicit 26201: basic_stringbuf(const __string_type& __str, 26201: ios_base::openmode __mode = ios_base::in | ios_base::out) 26201: : __streambuf_type(), _M_mode(), 26201: _M_string(__str.data(), __str.size(), __str.get_allocator()) 26201: { _M_stringbuf_init(__mode); } 26201: 26201: 26201: basic_stringbuf(const basic_stringbuf&) = delete; 26201: 26201: basic_stringbuf(basic_stringbuf&& __rhs) 26201: : basic_stringbuf(std::move(__rhs), __xfer_bufptrs(__rhs, this)) 26201: { __rhs._M_sync(const_cast(__rhs._M_string.data()), 0, 0); } 26201: 26201: 26201: 26201: basic_stringbuf& 26201: operator=(const basic_stringbuf&) = delete; 26201: 26201: basic_stringbuf& 26201: operator=(basic_stringbuf&& __rhs) 26201: { 26201: __xfer_bufptrs __st{__rhs, this}; 26201: const __streambuf_type& __base = __rhs; 26201: __streambuf_type::operator=(__base); 26201: this->pubimbue(__rhs.getloc()); 26201: _M_mode = __rhs._M_mode; 26201: _M_string = std::move(__rhs._M_string); 26201: __rhs._M_sync(const_cast(__rhs._M_string.data()), 0, 0); 26201: return *this; 26201: } 26201: 26201: void 26201: swap(basic_stringbuf& __rhs) 26201: { 26201: __xfer_bufptrs __l_st{*this, std::__addressof(__rhs)}; 26201: __xfer_bufptrs __r_st{__rhs, this}; 26201: __streambuf_type& __base = __rhs; 26201: __streambuf_type::swap(__base); 26201: __rhs.pubimbue(this->pubimbue(__rhs.getloc())); 26201: std::swap(_M_mode, __rhs._M_mode); 26201: std::swap(_M_string, __rhs._M_string); 26201: } 26201: # 177 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: __string_type 26201: str() const 26201: { 26201: __string_type __ret(_M_string.get_allocator()); 26201: if (this->pptr()) 26201: { 26201: 26201: if (this->pptr() > this->egptr()) 26201: __ret.assign(this->pbase(), this->pptr()); 26201: else 26201: __ret.assign(this->pbase(), this->egptr()); 26201: } 26201: else 26201: __ret = _M_string; 26201: return __ret; 26201: } 26201: # 201 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: void 26201: str(const __string_type& __s) 26201: { 26201: 26201: 26201: _M_string.assign(__s.data(), __s.size()); 26201: _M_stringbuf_init(_M_mode); 26201: } 26201: 26201: protected: 26201: 26201: void 26201: _M_stringbuf_init(ios_base::openmode __mode) 26201: { 26201: _M_mode = __mode; 26201: __size_type __len = 0; 26201: if (_M_mode & (ios_base::ate | ios_base::app)) 26201: __len = _M_string.size(); 26201: _M_sync(const_cast(_M_string.data()), 0, __len); 26201: } 26201: 26201: virtual streamsize 26201: showmanyc() 26201: { 26201: streamsize __ret = -1; 26201: if (_M_mode & ios_base::in) 26201: { 26201: _M_update_egptr(); 26201: __ret = this->egptr() - this->gptr(); 26201: } 26201: return __ret; 26201: } 26201: 26201: virtual int_type 26201: underflow(); 26201: 26201: virtual int_type 26201: pbackfail(int_type __c = traits_type::eof()); 26201: 26201: virtual int_type 26201: overflow(int_type __c = traits_type::eof()); 26201: # 254 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: virtual __streambuf_type* 26201: setbuf(char_type* __s, streamsize __n) 26201: { 26201: if (__s && __n >= 0) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: _M_string.clear(); 26201: 26201: 26201: _M_sync(__s, __n, 0); 26201: } 26201: return this; 26201: } 26201: 26201: virtual pos_type 26201: seekoff(off_type __off, ios_base::seekdir __way, 26201: ios_base::openmode __mode = ios_base::in | ios_base::out); 26201: 26201: virtual pos_type 26201: seekpos(pos_type __sp, 26201: ios_base::openmode __mode = ios_base::in | ios_base::out); 26201: 26201: 26201: 26201: 26201: void 26201: _M_sync(char_type* __base, __size_type __i, __size_type __o); 26201: 26201: 26201: 26201: void 26201: _M_update_egptr() 26201: { 26201: const bool __testin = _M_mode & ios_base::in; 26201: if (this->pptr() && this->pptr() > this->egptr()) 26201: { 26201: if (__testin) 26201: this->setg(this->eback(), this->gptr(), this->pptr()); 26201: else 26201: this->setg(this->pptr(), this->pptr(), this->pptr()); 26201: } 26201: } 26201: 26201: 26201: 26201: void 26201: _M_pbump(char_type* __pbeg, char_type* __pend, off_type __off); 26201: 26201: private: 26201: 26201: 26201: 26201: 26201: struct __xfer_bufptrs 26201: { 26201: __xfer_bufptrs(const basic_stringbuf& __from, basic_stringbuf* __to) 26201: : _M_to{__to}, _M_goff{-1, -1, -1}, _M_poff{-1, -1, -1} 26201: { 26201: const _CharT* const __str = __from._M_string.data(); 26201: const _CharT* __end = nullptr; 26201: if (__from.eback()) 26201: { 26201: _M_goff[0] = __from.eback() - __str; 26201: _M_goff[1] = __from.gptr() - __str; 26201: _M_goff[2] = __from.egptr() - __str; 26201: __end = __from.egptr(); 26201: } 26201: if (__from.pbase()) 26201: { 26201: _M_poff[0] = __from.pbase() - __str; 26201: _M_poff[1] = __from.pptr() - __from.pbase(); 26201: _M_poff[2] = __from.epptr() - __str; 26201: if (__from.pptr() > __end) 26201: __end = __from.pptr(); 26201: } 26201: 26201: 26201: if (__end) 26201: { 26201: 26201: 26201: auto& __mut_from = const_cast(__from); 26201: __mut_from._M_string._M_length(__end - __str); 26201: } 26201: } 26201: 26201: ~__xfer_bufptrs() 26201: { 26201: char_type* __str = const_cast(_M_to->_M_string.data()); 26201: if (_M_goff[0] != -1) 26201: _M_to->setg(__str+_M_goff[0], __str+_M_goff[1], __str+_M_goff[2]); 26201: if (_M_poff[0] != -1) 26201: _M_to->_M_pbump(__str+_M_poff[0], __str+_M_poff[2], _M_poff[1]); 26201: } 26201: 26201: basic_stringbuf* _M_to; 26201: off_type _M_goff[3]; 26201: off_type _M_poff[3]; 26201: }; 26201: # 368 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: basic_stringbuf(basic_stringbuf&& __rhs, __xfer_bufptrs&&) 26201: : __streambuf_type(static_cast(__rhs)), 26201: _M_mode(__rhs._M_mode), _M_string(std::move(__rhs._M_string)) 26201: { } 26201: 26201: }; 26201: # 391 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: template 26201: class basic_istringstream : public basic_istream<_CharT, _Traits> 26201: { 26201: public: 26201: 26201: typedef _CharT char_type; 26201: typedef _Traits traits_type; 26201: 26201: 26201: typedef _Alloc allocator_type; 26201: typedef typename traits_type::int_type int_type; 26201: typedef typename traits_type::pos_type pos_type; 26201: typedef typename traits_type::off_type off_type; 26201: 26201: 26201: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 26201: typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type; 26201: typedef basic_istream __istream_type; 26201: 26201: private: 26201: __stringbuf_type _M_stringbuf; 26201: 26201: public: 26201: # 425 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: basic_istringstream() 26201: : __istream_type(), _M_stringbuf(ios_base::in) 26201: { this->init(&_M_stringbuf); } 26201: # 441 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: explicit 26201: basic_istringstream(ios_base::openmode __mode) 26201: : __istream_type(), _M_stringbuf(__mode | ios_base::in) 26201: { this->init(&_M_stringbuf); } 26201: # 459 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: explicit 26201: basic_istringstream(const __string_type& __str, 26201: ios_base::openmode __mode = ios_base::in) 26201: : __istream_type(), _M_stringbuf(__str, __mode | ios_base::in) 26201: { this->init(&_M_stringbuf); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ~basic_istringstream() 26201: { } 26201: 26201: 26201: basic_istringstream(const basic_istringstream&) = delete; 26201: 26201: basic_istringstream(basic_istringstream&& __rhs) 26201: : __istream_type(std::move(__rhs)), 26201: _M_stringbuf(std::move(__rhs._M_stringbuf)) 26201: { __istream_type::set_rdbuf(&_M_stringbuf); } 26201: 26201: 26201: 26201: basic_istringstream& 26201: operator=(const basic_istringstream&) = delete; 26201: 26201: basic_istringstream& 26201: operator=(basic_istringstream&& __rhs) 26201: { 26201: __istream_type::operator=(std::move(__rhs)); 26201: _M_stringbuf = std::move(__rhs._M_stringbuf); 26201: return *this; 26201: } 26201: 26201: void 26201: swap(basic_istringstream& __rhs) 26201: { 26201: __istream_type::swap(__rhs); 26201: _M_stringbuf.swap(__rhs._M_stringbuf); 26201: } 26201: # 510 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: __stringbuf_type* 26201: rdbuf() const 26201: { return const_cast<__stringbuf_type*>(&_M_stringbuf); } 26201: 26201: 26201: 26201: 26201: 26201: __string_type 26201: str() const 26201: { return _M_stringbuf.str(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: void 26201: str(const __string_type& __s) 26201: { _M_stringbuf.str(__s); } 26201: }; 26201: # 549 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: template 26201: class basic_ostringstream : public basic_ostream<_CharT, _Traits> 26201: { 26201: public: 26201: 26201: typedef _CharT char_type; 26201: typedef _Traits traits_type; 26201: 26201: 26201: typedef _Alloc allocator_type; 26201: typedef typename traits_type::int_type int_type; 26201: typedef typename traits_type::pos_type pos_type; 26201: typedef typename traits_type::off_type off_type; 26201: 26201: 26201: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 26201: typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type; 26201: typedef basic_ostream __ostream_type; 26201: 26201: private: 26201: __stringbuf_type _M_stringbuf; 26201: 26201: public: 26201: # 583 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: basic_ostringstream() 26201: : __ostream_type(), _M_stringbuf(ios_base::out) 26201: { this->init(&_M_stringbuf); } 26201: # 599 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: explicit 26201: basic_ostringstream(ios_base::openmode __mode) 26201: : __ostream_type(), _M_stringbuf(__mode | ios_base::out) 26201: { this->init(&_M_stringbuf); } 26201: # 617 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: explicit 26201: basic_ostringstream(const __string_type& __str, 26201: ios_base::openmode __mode = ios_base::out) 26201: : __ostream_type(), _M_stringbuf(__str, __mode | ios_base::out) 26201: { this->init(&_M_stringbuf); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ~basic_ostringstream() 26201: { } 26201: 26201: 26201: basic_ostringstream(const basic_ostringstream&) = delete; 26201: 26201: basic_ostringstream(basic_ostringstream&& __rhs) 26201: : __ostream_type(std::move(__rhs)), 26201: _M_stringbuf(std::move(__rhs._M_stringbuf)) 26201: { __ostream_type::set_rdbuf(&_M_stringbuf); } 26201: 26201: 26201: 26201: basic_ostringstream& 26201: operator=(const basic_ostringstream&) = delete; 26201: 26201: basic_ostringstream& 26201: operator=(basic_ostringstream&& __rhs) 26201: { 26201: __ostream_type::operator=(std::move(__rhs)); 26201: _M_stringbuf = std::move(__rhs._M_stringbuf); 26201: return *this; 26201: } 26201: 26201: void 26201: swap(basic_ostringstream& __rhs) 26201: { 26201: __ostream_type::swap(__rhs); 26201: _M_stringbuf.swap(__rhs._M_stringbuf); 26201: } 26201: # 668 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: __stringbuf_type* 26201: rdbuf() const 26201: { return const_cast<__stringbuf_type*>(&_M_stringbuf); } 26201: 26201: 26201: 26201: 26201: 26201: __string_type 26201: str() const 26201: { return _M_stringbuf.str(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: void 26201: str(const __string_type& __s) 26201: { _M_stringbuf.str(__s); } 26201: }; 26201: # 707 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: template 26201: class basic_stringstream : public basic_iostream<_CharT, _Traits> 26201: { 26201: public: 26201: 26201: typedef _CharT char_type; 26201: typedef _Traits traits_type; 26201: 26201: 26201: typedef _Alloc allocator_type; 26201: typedef typename traits_type::int_type int_type; 26201: typedef typename traits_type::pos_type pos_type; 26201: typedef typename traits_type::off_type off_type; 26201: 26201: 26201: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 26201: typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type; 26201: typedef basic_iostream __iostream_type; 26201: 26201: private: 26201: __stringbuf_type _M_stringbuf; 26201: 26201: public: 26201: # 741 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: basic_stringstream() 26201: : __iostream_type(), _M_stringbuf(ios_base::out | ios_base::in) 26201: { this->init(&_M_stringbuf); } 26201: # 755 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: explicit 26201: basic_stringstream(ios_base::openmode __m) 26201: : __iostream_type(), _M_stringbuf(__m) 26201: { this->init(&_M_stringbuf); } 26201: # 771 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: explicit 26201: basic_stringstream(const __string_type& __str, 26201: ios_base::openmode __m = ios_base::out | ios_base::in) 26201: : __iostream_type(), _M_stringbuf(__str, __m) 26201: { this->init(&_M_stringbuf); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ~basic_stringstream() 26201: { } 26201: 26201: 26201: basic_stringstream(const basic_stringstream&) = delete; 26201: 26201: basic_stringstream(basic_stringstream&& __rhs) 26201: : __iostream_type(std::move(__rhs)), 26201: _M_stringbuf(std::move(__rhs._M_stringbuf)) 26201: { __iostream_type::set_rdbuf(&_M_stringbuf); } 26201: 26201: 26201: 26201: basic_stringstream& 26201: operator=(const basic_stringstream&) = delete; 26201: 26201: basic_stringstream& 26201: operator=(basic_stringstream&& __rhs) 26201: { 26201: __iostream_type::operator=(std::move(__rhs)); 26201: _M_stringbuf = std::move(__rhs._M_stringbuf); 26201: return *this; 26201: } 26201: 26201: void 26201: swap(basic_stringstream& __rhs) 26201: { 26201: __iostream_type::swap(__rhs); 26201: _M_stringbuf.swap(__rhs._M_stringbuf); 26201: } 26201: # 822 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 3 26201: __stringbuf_type* 26201: rdbuf() const 26201: { return const_cast<__stringbuf_type*>(&_M_stringbuf); } 26201: 26201: 26201: 26201: 26201: 26201: __string_type 26201: str() const 26201: { return _M_stringbuf.str(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: void 26201: str(const __string_type& __s) 26201: { _M_stringbuf.str(__s); } 26201: }; 26201: 26201: 26201: 26201: template 26201: inline void 26201: swap(basic_stringbuf<_CharT, _Traits, _Allocator>& __x, 26201: basic_stringbuf<_CharT, _Traits, _Allocator>& __y) 26201: { __x.swap(__y); } 26201: 26201: 26201: template 26201: inline void 26201: swap(basic_istringstream<_CharT, _Traits, _Allocator>& __x, 26201: basic_istringstream<_CharT, _Traits, _Allocator>& __y) 26201: { __x.swap(__y); } 26201: 26201: 26201: template 26201: inline void 26201: swap(basic_ostringstream<_CharT, _Traits, _Allocator>& __x, 26201: basic_ostringstream<_CharT, _Traits, _Allocator>& __y) 26201: { __x.swap(__y); } 26201: 26201: 26201: template 26201: inline void 26201: swap(basic_stringstream<_CharT, _Traits, _Allocator>& __x, 26201: basic_stringstream<_CharT, _Traits, _Allocator>& __y) 26201: { __x.swap(__y); } 26201: 26201: 26201: } 26201: 26201: } 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/sstream.tcc" 1 3 26201: # 35 "/usr/x86_64-linux-gnu/include/c++/10/bits/sstream.tcc" 3 26201: #define _SSTREAM_TCC 1 26201: 26201: 26201: # 38 "/usr/x86_64-linux-gnu/include/c++/10/bits/sstream.tcc" 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: template 26201: typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type 26201: basic_stringbuf<_CharT, _Traits, _Alloc>:: 26201: pbackfail(int_type __c) 26201: { 26201: int_type __ret = traits_type::eof(); 26201: if (this->eback() < this->gptr()) 26201: { 26201: 26201: 26201: const bool __testeof = traits_type::eq_int_type(__c, __ret); 26201: if (!__testeof) 26201: { 26201: const bool __testeq = traits_type::eq(traits_type:: 26201: to_char_type(__c), 26201: this->gptr()[-1]); 26201: const bool __testout = this->_M_mode & ios_base::out; 26201: if (__testeq || __testout) 26201: { 26201: this->gbump(-1); 26201: if (!__testeq) 26201: *this->gptr() = traits_type::to_char_type(__c); 26201: __ret = __c; 26201: } 26201: } 26201: else 26201: { 26201: this->gbump(-1); 26201: __ret = traits_type::not_eof(__c); 26201: } 26201: } 26201: return __ret; 26201: } 26201: 26201: template 26201: typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type 26201: basic_stringbuf<_CharT, _Traits, _Alloc>:: 26201: overflow(int_type __c) 26201: { 26201: const bool __testout = this->_M_mode & ios_base::out; 26201: if (__builtin_expect(!__testout, false)) 26201: return traits_type::eof(); 26201: 26201: const bool __testeof = traits_type::eq_int_type(__c, traits_type::eof()); 26201: if (__builtin_expect(__testeof, false)) 26201: return traits_type::not_eof(__c); 26201: 26201: const __size_type __capacity = _M_string.capacity(); 26201: 26201: 26201: if (size_t(this->epptr() - this->pbase()) < __capacity) 26201: { 26201: 26201: char_type* __base = const_cast(_M_string.data()); 26201: _M_pbump(__base, __base + __capacity, this->pptr() - this->pbase()); 26201: if (_M_mode & ios_base::in) 26201: { 26201: const __size_type __nget = this->gptr() - this->eback(); 26201: const __size_type __eget = this->egptr() - this->eback(); 26201: this->setg(__base, __base + __nget, __base + __eget + 1); 26201: } 26201: *this->pptr() = traits_type::to_char_type(__c); 26201: this->pbump(1); 26201: return __c; 26201: } 26201: 26201: 26201: const __size_type __max_size = _M_string.max_size(); 26201: const bool __testput = this->pptr() < this->epptr(); 26201: if (__builtin_expect(!__testput && __capacity == __max_size, false)) 26201: return traits_type::eof(); 26201: 26201: 26201: 26201: const char_type __conv = traits_type::to_char_type(__c); 26201: if (!__testput) 26201: { 26201: # 129 "/usr/x86_64-linux-gnu/include/c++/10/bits/sstream.tcc" 3 26201: const __size_type __opt_len = std::max(__size_type(2 * __capacity), 26201: __size_type(512)); 26201: const __size_type __len = std::min(__opt_len, __max_size); 26201: __string_type __tmp(_M_string.get_allocator()); 26201: __tmp.reserve(__len); 26201: if (this->pbase()) 26201: __tmp.assign(this->pbase(), this->epptr() - this->pbase()); 26201: __tmp.push_back(__conv); 26201: _M_string.swap(__tmp); 26201: _M_sync(const_cast(_M_string.data()), 26201: this->gptr() - this->eback(), this->pptr() - this->pbase()); 26201: } 26201: else 26201: *this->pptr() = __conv; 26201: this->pbump(1); 26201: return __c; 26201: } 26201: 26201: template 26201: typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type 26201: basic_stringbuf<_CharT, _Traits, _Alloc>:: 26201: underflow() 26201: { 26201: int_type __ret = traits_type::eof(); 26201: const bool __testin = this->_M_mode & ios_base::in; 26201: if (__testin) 26201: { 26201: 26201: _M_update_egptr(); 26201: 26201: if (this->gptr() < this->egptr()) 26201: __ret = traits_type::to_int_type(*this->gptr()); 26201: } 26201: return __ret; 26201: } 26201: 26201: template 26201: typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type 26201: basic_stringbuf<_CharT, _Traits, _Alloc>:: 26201: seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __mode) 26201: { 26201: pos_type __ret = pos_type(off_type(-1)); 26201: bool __testin = (ios_base::in & this->_M_mode & __mode) != 0; 26201: bool __testout = (ios_base::out & this->_M_mode & __mode) != 0; 26201: const bool __testboth = __testin && __testout && __way != ios_base::cur; 26201: __testin &= !(__mode & ios_base::out); 26201: __testout &= !(__mode & ios_base::in); 26201: 26201: 26201: 26201: const char_type* __beg = __testin ? this->eback() : this->pbase(); 26201: if ((__beg || !__off) && (__testin || __testout || __testboth)) 26201: { 26201: _M_update_egptr(); 26201: 26201: off_type __newoffi = __off; 26201: off_type __newoffo = __newoffi; 26201: if (__way == ios_base::cur) 26201: { 26201: __newoffi += this->gptr() - __beg; 26201: __newoffo += this->pptr() - __beg; 26201: } 26201: else if (__way == ios_base::end) 26201: __newoffo = __newoffi += this->egptr() - __beg; 26201: 26201: if ((__testin || __testboth) 26201: && __newoffi >= 0 26201: && this->egptr() - __beg >= __newoffi) 26201: { 26201: this->setg(this->eback(), this->eback() + __newoffi, 26201: this->egptr()); 26201: __ret = pos_type(__newoffi); 26201: } 26201: if ((__testout || __testboth) 26201: && __newoffo >= 0 26201: && this->egptr() - __beg >= __newoffo) 26201: { 26201: _M_pbump(this->pbase(), this->epptr(), __newoffo); 26201: __ret = pos_type(__newoffo); 26201: } 26201: } 26201: return __ret; 26201: } 26201: 26201: template 26201: typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type 26201: basic_stringbuf<_CharT, _Traits, _Alloc>:: 26201: seekpos(pos_type __sp, ios_base::openmode __mode) 26201: { 26201: pos_type __ret = pos_type(off_type(-1)); 26201: const bool __testin = (ios_base::in & this->_M_mode & __mode) != 0; 26201: const bool __testout = (ios_base::out & this->_M_mode & __mode) != 0; 26201: 26201: const char_type* __beg = __testin ? this->eback() : this->pbase(); 26201: if ((__beg || !off_type(__sp)) && (__testin || __testout)) 26201: { 26201: _M_update_egptr(); 26201: 26201: const off_type __pos(__sp); 26201: const bool __testpos = (0 <= __pos 26201: && __pos <= this->egptr() - __beg); 26201: if (__testpos) 26201: { 26201: if (__testin) 26201: this->setg(this->eback(), this->eback() + __pos, 26201: this->egptr()); 26201: if (__testout) 26201: _M_pbump(this->pbase(), this->epptr(), __pos); 26201: __ret = __sp; 26201: } 26201: } 26201: return __ret; 26201: } 26201: 26201: template 26201: void 26201: basic_stringbuf<_CharT, _Traits, _Alloc>:: 26201: _M_sync(char_type* __base, __size_type __i, __size_type __o) 26201: { 26201: const bool __testin = _M_mode & ios_base::in; 26201: const bool __testout = _M_mode & ios_base::out; 26201: char_type* __endg = __base + _M_string.size(); 26201: char_type* __endp = __base + _M_string.capacity(); 26201: 26201: if (__base != _M_string.data()) 26201: { 26201: 26201: __endg += __i; 26201: __i = 0; 26201: __endp = __endg; 26201: } 26201: 26201: if (__testin) 26201: this->setg(__base, __base + __i, __endg); 26201: if (__testout) 26201: { 26201: _M_pbump(__base, __endp, __o); 26201: 26201: 26201: 26201: if (!__testin) 26201: this->setg(__endg, __endg, __endg); 26201: } 26201: } 26201: 26201: template 26201: void 26201: basic_stringbuf<_CharT, _Traits, _Alloc>:: 26201: _M_pbump(char_type* __pbeg, char_type* __pend, off_type __off) 26201: { 26201: this->setp(__pbeg, __pend); 26201: while (__off > __gnu_cxx::__numeric_traits::__max) 26201: { 26201: this->pbump(__gnu_cxx::__numeric_traits::__max); 26201: __off -= __gnu_cxx::__numeric_traits::__max; 26201: } 26201: this->pbump(__off); 26201: } 26201: 26201: 26201: 26201: 26201: extern template class basic_stringbuf; 26201: extern template class basic_istringstream; 26201: extern template class basic_ostringstream; 26201: extern template class basic_stringstream; 26201: 26201: 26201: extern template class basic_stringbuf; 26201: extern template class basic_istringstream; 26201: extern template class basic_ostringstream; 26201: extern template class basic_stringstream; 26201: 26201: 26201: 26201: 26201: } 26201: # 880 "/usr/x86_64-linux-gnu/include/c++/10/sstream" 2 3 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/bits/quoted_string.h" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: namespace __detail { 26201: 26201: 26201: 26201: template 26201: struct _Quoted_string 26201: { 26201: static_assert(is_reference<_String>::value 26201: || is_pointer<_String>::value, 26201: "String type must be pointer or reference"); 26201: 26201: _Quoted_string(_String __str, _CharT __del, _CharT __esc) 26201: : _M_string(__str), _M_delim{__del}, _M_escape{__esc} 26201: { } 26201: 26201: _Quoted_string& 26201: operator=(_Quoted_string&) = delete; 26201: 26201: _String _M_string; 26201: _CharT _M_delim; 26201: _CharT _M_escape; 26201: }; 26201: 26201: 26201: template 26201: struct _Quoted_string, _CharT> 26201: { 26201: _Quoted_string(basic_string_view<_CharT, _Traits> __str, 26201: _CharT __del, _CharT __esc) 26201: : _M_string(__str), _M_delim{__del}, _M_escape{__esc} 26201: { } 26201: 26201: _Quoted_string& 26201: operator=(_Quoted_string&) = delete; 26201: 26201: basic_string_view<_CharT, _Traits> _M_string; 26201: _CharT _M_delim; 26201: _CharT _M_escape; 26201: }; 26201: # 91 "/usr/x86_64-linux-gnu/include/c++/10/bits/quoted_string.h" 3 26201: template 26201: std::basic_ostream<_CharT, _Traits>& 26201: operator<<(std::basic_ostream<_CharT, _Traits>& __os, 26201: const _Quoted_string& __str) 26201: { 26201: std::basic_ostringstream<_CharT, _Traits> __ostr; 26201: __ostr << __str._M_delim; 26201: for (const _CharT* __c = __str._M_string; *__c; ++__c) 26201: { 26201: if (*__c == __str._M_delim || *__c == __str._M_escape) 26201: __ostr << __str._M_escape; 26201: __ostr << *__c; 26201: } 26201: __ostr << __str._M_delim; 26201: 26201: return __os << __ostr.str(); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: std::basic_ostream<_CharT, _Traits>& 26201: operator<<(std::basic_ostream<_CharT, _Traits>& __os, 26201: const _Quoted_string<_String, _CharT>& __str) 26201: { 26201: std::basic_ostringstream<_CharT, _Traits> __ostr; 26201: __ostr << __str._M_delim; 26201: for (auto __c : __str._M_string) 26201: { 26201: if (__c == __str._M_delim || __c == __str._M_escape) 26201: __ostr << __str._M_escape; 26201: __ostr << __c; 26201: } 26201: __ostr << __str._M_delim; 26201: 26201: return __os << __ostr.str(); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: std::basic_istream<_CharT, _Traits>& 26201: operator>>(std::basic_istream<_CharT, _Traits>& __is, 26201: const _Quoted_string&, 26201: _CharT>& __str) 26201: { 26201: _CharT __c; 26201: __is >> __c; 26201: if (!__is.good()) 26201: return __is; 26201: if (__c != __str._M_delim) 26201: { 26201: __is.unget(); 26201: __is >> __str._M_string; 26201: return __is; 26201: } 26201: __str._M_string.clear(); 26201: std::ios_base::fmtflags __flags 26201: = __is.flags(__is.flags() & ~std::ios_base::skipws); 26201: do 26201: { 26201: __is >> __c; 26201: if (!__is.good()) 26201: break; 26201: if (__c == __str._M_escape) 26201: { 26201: __is >> __c; 26201: if (!__is.good()) 26201: break; 26201: } 26201: else if (__c == __str._M_delim) 26201: break; 26201: __str._M_string += __c; 26201: } 26201: while (true); 26201: __is.setf(__flags); 26201: 26201: return __is; 26201: } 26201: } 26201: 26201: 26201: } 26201: # 46 "/usr/x86_64-linux-gnu/include/c++/10/iomanip" 2 3 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: struct _Resetiosflags { ios_base::fmtflags _M_mask; }; 26201: # 65 "/usr/x86_64-linux-gnu/include/c++/10/iomanip" 3 26201: inline _Resetiosflags 26201: resetiosflags(ios_base::fmtflags __mask) 26201: { return { __mask }; } 26201: 26201: template 26201: inline basic_istream<_CharT, _Traits>& 26201: operator>>(basic_istream<_CharT, _Traits>& __is, _Resetiosflags __f) 26201: { 26201: __is.setf(ios_base::fmtflags(0), __f._M_mask); 26201: return __is; 26201: } 26201: 26201: template 26201: inline basic_ostream<_CharT, _Traits>& 26201: operator<<(basic_ostream<_CharT, _Traits>& __os, _Resetiosflags __f) 26201: { 26201: __os.setf(ios_base::fmtflags(0), __f._M_mask); 26201: return __os; 26201: } 26201: 26201: 26201: struct _Setiosflags { ios_base::fmtflags _M_mask; }; 26201: # 95 "/usr/x86_64-linux-gnu/include/c++/10/iomanip" 3 26201: inline _Setiosflags 26201: setiosflags(ios_base::fmtflags __mask) 26201: { return { __mask }; } 26201: 26201: template 26201: inline basic_istream<_CharT, _Traits>& 26201: operator>>(basic_istream<_CharT, _Traits>& __is, _Setiosflags __f) 26201: { 26201: __is.setf(__f._M_mask); 26201: return __is; 26201: } 26201: 26201: template 26201: inline basic_ostream<_CharT, _Traits>& 26201: operator<<(basic_ostream<_CharT, _Traits>& __os, _Setiosflags __f) 26201: { 26201: __os.setf(__f._M_mask); 26201: return __os; 26201: } 26201: 26201: 26201: struct _Setbase { int _M_base; }; 26201: # 126 "/usr/x86_64-linux-gnu/include/c++/10/iomanip" 3 26201: inline _Setbase 26201: setbase(int __base) 26201: { return { __base }; } 26201: 26201: template 26201: inline basic_istream<_CharT, _Traits>& 26201: operator>>(basic_istream<_CharT, _Traits>& __is, _Setbase __f) 26201: { 26201: __is.setf(__f._M_base == 8 ? ios_base::oct : 26201: __f._M_base == 10 ? ios_base::dec : 26201: __f._M_base == 16 ? ios_base::hex : 26201: ios_base::fmtflags(0), ios_base::basefield); 26201: return __is; 26201: } 26201: 26201: template 26201: inline basic_ostream<_CharT, _Traits>& 26201: operator<<(basic_ostream<_CharT, _Traits>& __os, _Setbase __f) 26201: { 26201: __os.setf(__f._M_base == 8 ? ios_base::oct : 26201: __f._M_base == 10 ? ios_base::dec : 26201: __f._M_base == 16 ? ios_base::hex : 26201: ios_base::fmtflags(0), ios_base::basefield); 26201: return __os; 26201: } 26201: 26201: 26201: template 26201: struct _Setfill { _CharT _M_c; }; 26201: # 163 "/usr/x86_64-linux-gnu/include/c++/10/iomanip" 3 26201: template 26201: inline _Setfill<_CharT> 26201: setfill(_CharT __c) 26201: { return { __c }; } 26201: 26201: template 26201: inline basic_istream<_CharT, _Traits>& 26201: operator>>(basic_istream<_CharT, _Traits>& __is, _Setfill<_CharT> __f) 26201: { 26201: __is.fill(__f._M_c); 26201: return __is; 26201: } 26201: 26201: template 26201: inline basic_ostream<_CharT, _Traits>& 26201: operator<<(basic_ostream<_CharT, _Traits>& __os, _Setfill<_CharT> __f) 26201: { 26201: __os.fill(__f._M_c); 26201: return __os; 26201: } 26201: 26201: 26201: struct _Setprecision { int _M_n; }; 26201: # 194 "/usr/x86_64-linux-gnu/include/c++/10/iomanip" 3 26201: inline _Setprecision 26201: setprecision(int __n) 26201: { return { __n }; } 26201: 26201: template 26201: inline basic_istream<_CharT, _Traits>& 26201: operator>>(basic_istream<_CharT, _Traits>& __is, _Setprecision __f) 26201: { 26201: __is.precision(__f._M_n); 26201: return __is; 26201: } 26201: 26201: template 26201: inline basic_ostream<_CharT, _Traits>& 26201: operator<<(basic_ostream<_CharT, _Traits>& __os, _Setprecision __f) 26201: { 26201: __os.precision(__f._M_n); 26201: return __os; 26201: } 26201: 26201: 26201: struct _Setw { int _M_n; }; 26201: # 224 "/usr/x86_64-linux-gnu/include/c++/10/iomanip" 3 26201: inline _Setw 26201: setw(int __n) 26201: { return { __n }; } 26201: 26201: template 26201: inline basic_istream<_CharT, _Traits>& 26201: operator>>(basic_istream<_CharT, _Traits>& __is, _Setw __f) 26201: { 26201: __is.width(__f._M_n); 26201: return __is; 26201: } 26201: 26201: template 26201: inline basic_ostream<_CharT, _Traits>& 26201: operator<<(basic_ostream<_CharT, _Traits>& __os, _Setw __f) 26201: { 26201: __os.width(__f._M_n); 26201: return __os; 26201: } 26201: 26201: 26201: 26201: template 26201: struct _Get_money { _MoneyT& _M_mon; bool _M_intl; }; 26201: # 257 "/usr/x86_64-linux-gnu/include/c++/10/iomanip" 3 26201: template 26201: inline _Get_money<_MoneyT> 26201: get_money(_MoneyT& __mon, bool __intl = false) 26201: { return { __mon, __intl }; } 26201: 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: operator>>(basic_istream<_CharT, _Traits>& __is, _Get_money<_MoneyT> __f) 26201: { 26201: typename basic_istream<_CharT, _Traits>::sentry __cerb(__is, false); 26201: if (__cerb) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: typedef istreambuf_iterator<_CharT, _Traits> _Iter; 26201: typedef money_get<_CharT, _Iter> _MoneyGet; 26201: 26201: const _MoneyGet& __mg = use_facet<_MoneyGet>(__is.getloc()); 26201: __mg.get(_Iter(__is.rdbuf()), _Iter(), __f._M_intl, 26201: __is, __err, __f._M_mon); 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: __is._M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { __is._M_setstate(ios_base::badbit); } 26201: if (__err) 26201: __is.setstate(__err); 26201: } 26201: return __is; 26201: } 26201: 26201: 26201: template 26201: struct _Put_money { const _MoneyT& _M_mon; bool _M_intl; }; 26201: # 304 "/usr/x86_64-linux-gnu/include/c++/10/iomanip" 3 26201: template 26201: inline _Put_money<_MoneyT> 26201: put_money(const _MoneyT& __mon, bool __intl = false) 26201: { return { __mon, __intl }; } 26201: 26201: template 26201: basic_ostream<_CharT, _Traits>& 26201: operator<<(basic_ostream<_CharT, _Traits>& __os, _Put_money<_MoneyT> __f) 26201: { 26201: typename basic_ostream<_CharT, _Traits>::sentry __cerb(__os); 26201: if (__cerb) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: typedef ostreambuf_iterator<_CharT, _Traits> _Iter; 26201: typedef money_put<_CharT, _Iter> _MoneyPut; 26201: 26201: const _MoneyPut& __mp = use_facet<_MoneyPut>(__os.getloc()); 26201: if (__mp.put(_Iter(__os.rdbuf()), __f._M_intl, __os, 26201: __os.fill(), __f._M_mon).failed()) 26201: __err |= ios_base::badbit; 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: __os._M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { __os._M_setstate(ios_base::badbit); } 26201: if (__err) 26201: __os.setstate(__err); 26201: } 26201: return __os; 26201: } 26201: 26201: template 26201: struct _Put_time 26201: { 26201: const std::tm* _M_tmb; 26201: const _CharT* _M_fmt; 26201: }; 26201: # 356 "/usr/x86_64-linux-gnu/include/c++/10/iomanip" 3 26201: template 26201: inline _Put_time<_CharT> 26201: put_time(const std::tm* __tmb, const _CharT* __fmt) 26201: { return { __tmb, __fmt }; } 26201: 26201: template 26201: basic_ostream<_CharT, _Traits>& 26201: operator<<(basic_ostream<_CharT, _Traits>& __os, _Put_time<_CharT> __f) 26201: { 26201: typename basic_ostream<_CharT, _Traits>::sentry __cerb(__os); 26201: if (__cerb) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: typedef ostreambuf_iterator<_CharT, _Traits> _Iter; 26201: typedef time_put<_CharT, _Iter> _TimePut; 26201: 26201: const _CharT* const __fmt_end = __f._M_fmt + 26201: _Traits::length(__f._M_fmt); 26201: 26201: const _TimePut& __mp = use_facet<_TimePut>(__os.getloc()); 26201: if (__mp.put(_Iter(__os.rdbuf()), __os, __os.fill(), 26201: __f._M_tmb, __f._M_fmt, __fmt_end).failed()) 26201: __err |= ios_base::badbit; 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: __os._M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { __os._M_setstate(ios_base::badbit); } 26201: if (__err) 26201: __os.setstate(__err); 26201: } 26201: return __os; 26201: } 26201: 26201: template 26201: struct _Get_time 26201: { 26201: std::tm* _M_tmb; 26201: const _CharT* _M_fmt; 26201: }; 26201: # 411 "/usr/x86_64-linux-gnu/include/c++/10/iomanip" 3 26201: template 26201: inline _Get_time<_CharT> 26201: get_time(std::tm* __tmb, const _CharT* __fmt) 26201: { return { __tmb, __fmt }; } 26201: 26201: template 26201: basic_istream<_CharT, _Traits>& 26201: operator>>(basic_istream<_CharT, _Traits>& __is, _Get_time<_CharT> __f) 26201: { 26201: typename basic_istream<_CharT, _Traits>::sentry __cerb(__is, false); 26201: if (__cerb) 26201: { 26201: ios_base::iostate __err = ios_base::goodbit; 26201: try 26201: { 26201: typedef istreambuf_iterator<_CharT, _Traits> _Iter; 26201: typedef time_get<_CharT, _Iter> _TimeGet; 26201: 26201: const _CharT* const __fmt_end = __f._M_fmt + 26201: _Traits::length(__f._M_fmt); 26201: 26201: const _TimeGet& __mg = use_facet<_TimeGet>(__is.getloc()); 26201: __mg.get(_Iter(__is.rdbuf()), _Iter(), __is, 26201: __err, __f._M_tmb, __f._M_fmt, __fmt_end); 26201: } 26201: catch(__cxxabiv1::__forced_unwind&) 26201: { 26201: __is._M_setstate(ios_base::badbit); 26201: throw; 26201: } 26201: catch(...) 26201: { __is._M_setstate(ios_base::badbit); } 26201: if (__err) 26201: __is.setstate(__err); 26201: } 26201: return __is; 26201: } 26201: 26201: 26201: 26201: #define __cpp_lib_quoted_string_io 201304 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline auto 26201: quoted(const _CharT* __string, 26201: _CharT __delim = _CharT('"'), _CharT __escape = _CharT('\\')) 26201: { 26201: return __detail::_Quoted_string(__string, __delim, 26201: __escape); 26201: } 26201: 26201: template 26201: inline auto 26201: quoted(const basic_string<_CharT, _Traits, _Alloc>& __string, 26201: _CharT __delim = _CharT('"'), _CharT __escape = _CharT('\\')) 26201: { 26201: return __detail::_Quoted_string< 26201: const basic_string<_CharT, _Traits, _Alloc>&, _CharT>( 26201: __string, __delim, __escape); 26201: } 26201: 26201: template 26201: inline auto 26201: quoted(basic_string<_CharT, _Traits, _Alloc>& __string, 26201: _CharT __delim = _CharT('"'), _CharT __escape = _CharT('\\')) 26201: { 26201: return __detail::_Quoted_string< 26201: basic_string<_CharT, _Traits, _Alloc>&, _CharT>( 26201: __string, __delim, __escape); 26201: } 26201: 26201: 26201: 26201: 26201: template 26201: inline auto 26201: quoted(basic_string_view<_CharT, _Traits> __sv, 26201: _CharT __delim = _CharT('"'), _CharT __escape = _CharT('\\')) 26201: { 26201: return __detail::_Quoted_string< 26201: basic_string_view<_CharT, _Traits>, _CharT>(__sv, __delim, __escape); 26201: } 26201: # 508 "/usr/x86_64-linux-gnu/include/c++/10/iomanip" 3 26201: extern template ostream& operator<<(ostream&, _Setfill); 26201: extern template ostream& operator<<(ostream&, _Setiosflags); 26201: extern template ostream& operator<<(ostream&, _Resetiosflags); 26201: extern template ostream& operator<<(ostream&, _Setbase); 26201: extern template ostream& operator<<(ostream&, _Setprecision); 26201: extern template ostream& operator<<(ostream&, _Setw); 26201: extern template istream& operator>>(istream&, _Setfill); 26201: extern template istream& operator>>(istream&, _Setiosflags); 26201: extern template istream& operator>>(istream&, _Resetiosflags); 26201: extern template istream& operator>>(istream&, _Setbase); 26201: extern template istream& operator>>(istream&, _Setprecision); 26201: extern template istream& operator>>(istream&, _Setw); 26201: 26201: 26201: extern template wostream& operator<<(wostream&, _Setfill); 26201: extern template wostream& operator<<(wostream&, _Setiosflags); 26201: extern template wostream& operator<<(wostream&, _Resetiosflags); 26201: extern template wostream& operator<<(wostream&, _Setbase); 26201: extern template wostream& operator<<(wostream&, _Setprecision); 26201: extern template wostream& operator<<(wostream&, _Setw); 26201: extern template wistream& operator>>(wistream&, _Setfill); 26201: extern template wistream& operator>>(wistream&, _Setiosflags); 26201: extern template wistream& operator>>(wistream&, _Resetiosflags); 26201: extern template wistream& operator>>(wistream&, _Setbase); 26201: extern template wistream& operator>>(wistream&, _Setprecision); 26201: extern template wistream& operator>>(wistream&, _Setw); 26201: 26201: 26201: 26201: 26201: } 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_path.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/codecvt" 1 3 26201: # 32 "/usr/x86_64-linux-gnu/include/c++/10/codecvt" 3 26201: #define _GLIBCXX_CODECVT 1 26201: 26201: 26201: # 35 "/usr/x86_64-linux-gnu/include/c++/10/codecvt" 3 26201: # 43 "/usr/x86_64-linux-gnu/include/c++/10/codecvt" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: enum codecvt_mode 26201: { 26201: consume_header = 4, 26201: generate_header = 2, 26201: little_endian = 1 26201: }; 26201: 26201: template 26201: class codecvt_utf8 : public codecvt<_Elem, char, mbstate_t> 26201: { 26201: public: 26201: explicit 26201: codecvt_utf8(size_t __refs = 0); 26201: 26201: ~codecvt_utf8(); 26201: }; 26201: 26201: template 26201: class codecvt_utf16 : public codecvt<_Elem, char, mbstate_t> 26201: { 26201: public: 26201: explicit 26201: codecvt_utf16(size_t __refs = 0); 26201: 26201: ~codecvt_utf16(); 26201: }; 26201: 26201: template 26201: class codecvt_utf8_utf16 : public codecvt<_Elem, char, mbstate_t> 26201: { 26201: public: 26201: explicit 26201: codecvt_utf8_utf16(size_t __refs = 0); 26201: 26201: ~codecvt_utf8_utf16(); 26201: }; 26201: 26201: #define _GLIBCXX_CODECVT_SPECIALIZATION2(_NAME,_ELEM) template<> class _NAME<_ELEM> : public codecvt<_ELEM, char, mbstate_t> { public: typedef _ELEM intern_type; typedef char extern_type; typedef mbstate_t state_type; protected: _NAME(unsigned long __maxcode, codecvt_mode __mode, size_t __refs) : codecvt(__refs), _M_maxcode(__maxcode), _M_mode(__mode) { } virtual ~_NAME(); virtual result do_out(state_type& __state, const intern_type* __from, const intern_type* __from_end, const intern_type*& __from_next, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_unshift(state_type& __state, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_in(state_type& __state, const extern_type* __from, const extern_type* __from_end, const extern_type*& __from_next, intern_type* __to, intern_type* __to_end, intern_type*& __to_next) const; virtual int do_encoding() const throw(); virtual bool do_always_noconv() const throw(); virtual int do_length(state_type&, const extern_type* __from, const extern_type* __end, size_t __max) const; virtual int do_max_length() const throw(); private: unsigned long _M_maxcode; codecvt_mode _M_mode; } 26201: # 140 "/usr/x86_64-linux-gnu/include/c++/10/codecvt" 3 26201: #define _GLIBCXX_CODECVT_SPECIALIZATION(_NAME,_ELEM) _GLIBCXX_CODECVT_SPECIALIZATION2(__ ## _NAME ## _base, _ELEM); template class _NAME<_ELEM, _Maxcode, _Mode> : public __ ## _NAME ## _base<_ELEM> { public: explicit _NAME(size_t __refs = 0) : __ ## _NAME ## _base<_ELEM>(std::min(_Maxcode, 0x10fffful), _Mode, __refs) { } } 26201: # 154 "/usr/x86_64-linux-gnu/include/c++/10/codecvt" 3 26201: template class __codecvt_utf8_base; 26201: template class __codecvt_utf16_base; 26201: template class __codecvt_utf8_utf16_base; 26201: 26201: template<> class __codecvt_utf8_base : public codecvt { public: typedef char16_t intern_type; typedef char extern_type; typedef mbstate_t state_type; protected: __codecvt_utf8_base(unsigned long __maxcode, codecvt_mode __mode, size_t __refs) : codecvt(__refs), _M_maxcode(__maxcode), _M_mode(__mode) { } virtual ~__codecvt_utf8_base(); virtual result do_out(state_type& __state, const intern_type* __from, const intern_type* __from_end, const intern_type*& __from_next, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_unshift(state_type& __state, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_in(state_type& __state, const extern_type* __from, const extern_type* __from_end, const extern_type*& __from_next, intern_type* __to, intern_type* __to_end, intern_type*& __to_next) const; virtual int do_encoding() const throw(); virtual bool do_always_noconv() const throw(); virtual int do_length(state_type&, const extern_type* __from, const extern_type* __end, size_t __max) const; virtual int do_max_length() const throw(); private: unsigned long _M_maxcode; codecvt_mode _M_mode; }; template class codecvt_utf8 : public __codecvt_utf8_base { public: explicit codecvt_utf8(size_t __refs = 0) : __codecvt_utf8_base(std::min(_Maxcode, 0x10fffful), _Mode, __refs) { } }; 26201: template<> class __codecvt_utf16_base : public codecvt { public: typedef char16_t intern_type; typedef char extern_type; typedef mbstate_t state_type; protected: __codecvt_utf16_base(unsigned long __maxcode, codecvt_mode __mode, size_t __refs) : codecvt(__refs), _M_maxcode(__maxcode), _M_mode(__mode) { } virtual ~__codecvt_utf16_base(); virtual result do_out(state_type& __state, const intern_type* __from, const intern_type* __from_end, const intern_type*& __from_next, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_unshift(state_type& __state, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_in(state_type& __state, const extern_type* __from, const extern_type* __from_end, const extern_type*& __from_next, intern_type* __to, intern_type* __to_end, intern_type*& __to_next) const; virtual int do_encoding() const throw(); virtual bool do_always_noconv() const throw(); virtual int do_length(state_type&, const extern_type* __from, const extern_type* __end, size_t __max) const; virtual int do_max_length() const throw(); private: unsigned long _M_maxcode; codecvt_mode _M_mode; }; template class codecvt_utf16 : public __codecvt_utf16_base { public: explicit codecvt_utf16(size_t __refs = 0) : __codecvt_utf16_base(std::min(_Maxcode, 0x10fffful), _Mode, __refs) { } }; 26201: template<> class __codecvt_utf8_utf16_base : public codecvt { public: typedef char16_t intern_type; typedef char extern_type; typedef mbstate_t state_type; protected: __codecvt_utf8_utf16_base(unsigned long __maxcode, codecvt_mode __mode, size_t __refs) : codecvt(__refs), _M_maxcode(__maxcode), _M_mode(__mode) { } virtual ~__codecvt_utf8_utf16_base(); virtual result do_out(state_type& __state, const intern_type* __from, const intern_type* __from_end, const intern_type*& __from_next, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_unshift(state_type& __state, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_in(state_type& __state, const extern_type* __from, const extern_type* __from_end, const extern_type*& __from_next, intern_type* __to, intern_type* __to_end, intern_type*& __to_next) const; virtual int do_encoding() const throw(); virtual bool do_always_noconv() const throw(); virtual int do_length(state_type&, const extern_type* __from, const extern_type* __end, size_t __max) const; virtual int do_max_length() const throw(); private: unsigned long _M_maxcode; codecvt_mode _M_mode; }; template class codecvt_utf8_utf16 : public __codecvt_utf8_utf16_base { public: explicit codecvt_utf8_utf16(size_t __refs = 0) : __codecvt_utf8_utf16_base(std::min(_Maxcode, 0x10fffful), _Mode, __refs) { } }; 26201: 26201: template<> class __codecvt_utf8_base : public codecvt { public: typedef char32_t intern_type; typedef char extern_type; typedef mbstate_t state_type; protected: __codecvt_utf8_base(unsigned long __maxcode, codecvt_mode __mode, size_t __refs) : codecvt(__refs), _M_maxcode(__maxcode), _M_mode(__mode) { } virtual ~__codecvt_utf8_base(); virtual result do_out(state_type& __state, const intern_type* __from, const intern_type* __from_end, const intern_type*& __from_next, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_unshift(state_type& __state, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_in(state_type& __state, const extern_type* __from, const extern_type* __from_end, const extern_type*& __from_next, intern_type* __to, intern_type* __to_end, intern_type*& __to_next) const; virtual int do_encoding() const throw(); virtual bool do_always_noconv() const throw(); virtual int do_length(state_type&, const extern_type* __from, const extern_type* __end, size_t __max) const; virtual int do_max_length() const throw(); private: unsigned long _M_maxcode; codecvt_mode _M_mode; }; template class codecvt_utf8 : public __codecvt_utf8_base { public: explicit codecvt_utf8(size_t __refs = 0) : __codecvt_utf8_base(std::min(_Maxcode, 0x10fffful), _Mode, __refs) { } }; 26201: template<> class __codecvt_utf16_base : public codecvt { public: typedef char32_t intern_type; typedef char extern_type; typedef mbstate_t state_type; protected: __codecvt_utf16_base(unsigned long __maxcode, codecvt_mode __mode, size_t __refs) : codecvt(__refs), _M_maxcode(__maxcode), _M_mode(__mode) { } virtual ~__codecvt_utf16_base(); virtual result do_out(state_type& __state, const intern_type* __from, const intern_type* __from_end, const intern_type*& __from_next, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_unshift(state_type& __state, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_in(state_type& __state, const extern_type* __from, const extern_type* __from_end, const extern_type*& __from_next, intern_type* __to, intern_type* __to_end, intern_type*& __to_next) const; virtual int do_encoding() const throw(); virtual bool do_always_noconv() const throw(); virtual int do_length(state_type&, const extern_type* __from, const extern_type* __end, size_t __max) const; virtual int do_max_length() const throw(); private: unsigned long _M_maxcode; codecvt_mode _M_mode; }; template class codecvt_utf16 : public __codecvt_utf16_base { public: explicit codecvt_utf16(size_t __refs = 0) : __codecvt_utf16_base(std::min(_Maxcode, 0x10fffful), _Mode, __refs) { } }; 26201: template<> class __codecvt_utf8_utf16_base : public codecvt { public: typedef char32_t intern_type; typedef char extern_type; typedef mbstate_t state_type; protected: __codecvt_utf8_utf16_base(unsigned long __maxcode, codecvt_mode __mode, size_t __refs) : codecvt(__refs), _M_maxcode(__maxcode), _M_mode(__mode) { } virtual ~__codecvt_utf8_utf16_base(); virtual result do_out(state_type& __state, const intern_type* __from, const intern_type* __from_end, const intern_type*& __from_next, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_unshift(state_type& __state, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_in(state_type& __state, const extern_type* __from, const extern_type* __from_end, const extern_type*& __from_next, intern_type* __to, intern_type* __to_end, intern_type*& __to_next) const; virtual int do_encoding() const throw(); virtual bool do_always_noconv() const throw(); virtual int do_length(state_type&, const extern_type* __from, const extern_type* __end, size_t __max) const; virtual int do_max_length() const throw(); private: unsigned long _M_maxcode; codecvt_mode _M_mode; }; template class codecvt_utf8_utf16 : public __codecvt_utf8_utf16_base { public: explicit codecvt_utf8_utf16(size_t __refs = 0) : __codecvt_utf8_utf16_base(std::min(_Maxcode, 0x10fffful), _Mode, __refs) { } }; 26201: 26201: 26201: template<> class __codecvt_utf8_base : public codecvt { public: typedef wchar_t intern_type; typedef char extern_type; typedef mbstate_t state_type; protected: __codecvt_utf8_base(unsigned long __maxcode, codecvt_mode __mode, size_t __refs) : codecvt(__refs), _M_maxcode(__maxcode), _M_mode(__mode) { } virtual ~__codecvt_utf8_base(); virtual result do_out(state_type& __state, const intern_type* __from, const intern_type* __from_end, const intern_type*& __from_next, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_unshift(state_type& __state, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_in(state_type& __state, const extern_type* __from, const extern_type* __from_end, const extern_type*& __from_next, intern_type* __to, intern_type* __to_end, intern_type*& __to_next) const; virtual int do_encoding() const throw(); virtual bool do_always_noconv() const throw(); virtual int do_length(state_type&, const extern_type* __from, const extern_type* __end, size_t __max) const; virtual int do_max_length() const throw(); private: unsigned long _M_maxcode; codecvt_mode _M_mode; }; template class codecvt_utf8 : public __codecvt_utf8_base { public: explicit codecvt_utf8(size_t __refs = 0) : __codecvt_utf8_base(std::min(_Maxcode, 0x10fffful), _Mode, __refs) { } }; 26201: template<> class __codecvt_utf16_base : public codecvt { public: typedef wchar_t intern_type; typedef char extern_type; typedef mbstate_t state_type; protected: __codecvt_utf16_base(unsigned long __maxcode, codecvt_mode __mode, size_t __refs) : codecvt(__refs), _M_maxcode(__maxcode), _M_mode(__mode) { } virtual ~__codecvt_utf16_base(); virtual result do_out(state_type& __state, const intern_type* __from, const intern_type* __from_end, const intern_type*& __from_next, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_unshift(state_type& __state, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_in(state_type& __state, const extern_type* __from, const extern_type* __from_end, const extern_type*& __from_next, intern_type* __to, intern_type* __to_end, intern_type*& __to_next) const; virtual int do_encoding() const throw(); virtual bool do_always_noconv() const throw(); virtual int do_length(state_type&, const extern_type* __from, const extern_type* __end, size_t __max) const; virtual int do_max_length() const throw(); private: unsigned long _M_maxcode; codecvt_mode _M_mode; }; template class codecvt_utf16 : public __codecvt_utf16_base { public: explicit codecvt_utf16(size_t __refs = 0) : __codecvt_utf16_base(std::min(_Maxcode, 0x10fffful), _Mode, __refs) { } }; 26201: template<> class __codecvt_utf8_utf16_base : public codecvt { public: typedef wchar_t intern_type; typedef char extern_type; typedef mbstate_t state_type; protected: __codecvt_utf8_utf16_base(unsigned long __maxcode, codecvt_mode __mode, size_t __refs) : codecvt(__refs), _M_maxcode(__maxcode), _M_mode(__mode) { } virtual ~__codecvt_utf8_utf16_base(); virtual result do_out(state_type& __state, const intern_type* __from, const intern_type* __from_end, const intern_type*& __from_next, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_unshift(state_type& __state, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_in(state_type& __state, const extern_type* __from, const extern_type* __from_end, const extern_type*& __from_next, intern_type* __to, intern_type* __to_end, intern_type*& __to_next) const; virtual int do_encoding() const throw(); virtual bool do_always_noconv() const throw(); virtual int do_length(state_type&, const extern_type* __from, const extern_type* __end, size_t __max) const; virtual int do_max_length() const throw(); private: unsigned long _M_maxcode; codecvt_mode _M_mode; }; template class codecvt_utf8_utf16 : public __codecvt_utf8_utf16_base { public: explicit codecvt_utf8_utf16(size_t __refs = 0) : __codecvt_utf8_utf16_base(std::min(_Maxcode, 0x10fffful), _Mode, __refs) { } }; 26201: 26201: 26201: 26201: } 26201: # 41 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_path.h" 2 3 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/ext/concurrence.h" 1 3 26201: # 30 "/usr/x86_64-linux-gnu/include/c++/10/ext/concurrence.h" 3 26201: #define _CONCURRENCE_H 1 26201: 26201: 26201: # 33 "/usr/x86_64-linux-gnu/include/c++/10/ext/concurrence.h" 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: enum _Lock_policy { _S_single, _S_mutex, _S_atomic }; 26201: 26201: 26201: 26201: static const _Lock_policy __default_lock_policy = 26201: 26201: 26201: 26201: _S_atomic; 26201: 26201: 26201: 26201: 26201: 26201: 26201: class __concurrence_lock_error : public std::exception 26201: { 26201: public: 26201: virtual char const* 26201: what() const throw() 26201: { return "__gnu_cxx::__concurrence_lock_error"; } 26201: }; 26201: 26201: class __concurrence_unlock_error : public std::exception 26201: { 26201: public: 26201: virtual char const* 26201: what() const throw() 26201: { return "__gnu_cxx::__concurrence_unlock_error"; } 26201: }; 26201: 26201: class __concurrence_broadcast_error : public std::exception 26201: { 26201: public: 26201: virtual char const* 26201: what() const throw() 26201: { return "__gnu_cxx::__concurrence_broadcast_error"; } 26201: }; 26201: 26201: class __concurrence_wait_error : public std::exception 26201: { 26201: public: 26201: virtual char const* 26201: what() const throw() 26201: { return "__gnu_cxx::__concurrence_wait_error"; } 26201: }; 26201: 26201: 26201: inline void 26201: __throw_concurrence_lock_error() 26201: { (throw (__concurrence_lock_error())); } 26201: 26201: inline void 26201: __throw_concurrence_unlock_error() 26201: { (throw (__concurrence_unlock_error())); } 26201: 26201: 26201: inline void 26201: __throw_concurrence_broadcast_error() 26201: { (throw (__concurrence_broadcast_error())); } 26201: 26201: inline void 26201: __throw_concurrence_wait_error() 26201: { (throw (__concurrence_wait_error())); } 26201: 26201: 26201: class __mutex 26201: { 26201: private: 26201: 26201: __gthread_mutex_t _M_mutex = { { 0, 0, 0, 0, PTHREAD_MUTEX_TIMED_NP, 0, 0, { 0, 0 } } }; 26201: 26201: 26201: 26201: 26201: __mutex(const __mutex&); 26201: __mutex& operator=(const __mutex&); 26201: 26201: public: 26201: __mutex() 26201: { 26201: 26201: 26201: 26201: 26201: } 26201: # 144 "/usr/x86_64-linux-gnu/include/c++/10/ext/concurrence.h" 3 26201: void lock() 26201: { 26201: 26201: if (__gthread_active_p()) 26201: { 26201: if (__gthread_mutex_lock(&_M_mutex) != 0) 26201: __throw_concurrence_lock_error(); 26201: } 26201: 26201: } 26201: 26201: void unlock() 26201: { 26201: 26201: if (__gthread_active_p()) 26201: { 26201: if (__gthread_mutex_unlock(&_M_mutex) != 0) 26201: __throw_concurrence_unlock_error(); 26201: } 26201: 26201: } 26201: 26201: __gthread_mutex_t* gthread_mutex(void) 26201: { return &_M_mutex; } 26201: }; 26201: 26201: class __recursive_mutex 26201: { 26201: private: 26201: 26201: __gthread_recursive_mutex_t _M_mutex = { { 0, 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, 0, { 0, 0 } } }; 26201: 26201: 26201: 26201: 26201: __recursive_mutex(const __recursive_mutex&); 26201: __recursive_mutex& operator=(const __recursive_mutex&); 26201: 26201: public: 26201: __recursive_mutex() 26201: { 26201: 26201: 26201: 26201: 26201: } 26201: # 199 "/usr/x86_64-linux-gnu/include/c++/10/ext/concurrence.h" 3 26201: void lock() 26201: { 26201: 26201: if (__gthread_active_p()) 26201: { 26201: if (__gthread_recursive_mutex_lock(&_M_mutex) != 0) 26201: __throw_concurrence_lock_error(); 26201: } 26201: 26201: } 26201: 26201: void unlock() 26201: { 26201: 26201: if (__gthread_active_p()) 26201: { 26201: if (__gthread_recursive_mutex_unlock(&_M_mutex) != 0) 26201: __throw_concurrence_unlock_error(); 26201: } 26201: 26201: } 26201: 26201: __gthread_recursive_mutex_t* gthread_recursive_mutex(void) 26201: { return &_M_mutex; } 26201: }; 26201: 26201: 26201: 26201: 26201: class __scoped_lock 26201: { 26201: public: 26201: typedef __mutex __mutex_type; 26201: 26201: private: 26201: __mutex_type& _M_device; 26201: 26201: __scoped_lock(const __scoped_lock&); 26201: __scoped_lock& operator=(const __scoped_lock&); 26201: 26201: public: 26201: explicit __scoped_lock(__mutex_type& __name) : _M_device(__name) 26201: { _M_device.lock(); } 26201: 26201: ~__scoped_lock() throw() 26201: { _M_device.unlock(); } 26201: }; 26201: 26201: 26201: class __cond 26201: { 26201: private: 26201: 26201: __gthread_cond_t _M_cond = { { {0}, {0}, {0, 0}, {0, 0}, 0, 0, {0, 0} } }; 26201: 26201: 26201: 26201: 26201: __cond(const __cond&); 26201: __cond& operator=(const __cond&); 26201: 26201: public: 26201: __cond() 26201: { 26201: 26201: 26201: 26201: 26201: } 26201: # 277 "/usr/x86_64-linux-gnu/include/c++/10/ext/concurrence.h" 3 26201: void broadcast() 26201: { 26201: 26201: if (__gthread_active_p()) 26201: { 26201: if (__gthread_cond_broadcast(&_M_cond) != 0) 26201: __throw_concurrence_broadcast_error(); 26201: } 26201: 26201: } 26201: 26201: void wait(__mutex *mutex) 26201: { 26201: 26201: { 26201: if (__gthread_cond_wait(&_M_cond, mutex->gthread_mutex()) != 0) 26201: __throw_concurrence_wait_error(); 26201: } 26201: 26201: } 26201: 26201: void wait_recursive(__recursive_mutex *mutex) 26201: { 26201: 26201: { 26201: if (__gthread_cond_wait_recursive(&_M_cond, 26201: mutex->gthread_recursive_mutex()) 26201: != 0) 26201: __throw_concurrence_wait_error(); 26201: } 26201: 26201: } 26201: }; 26201: 26201: 26201: 26201: } 26201: # 46 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_path.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr.h" 1 3 26201: # 50 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr.h" 3 26201: #define _SHARED_PTR_H 1 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr_base.h" 1 3 26201: # 50 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr_base.h" 3 26201: #define _SHARED_PTR_BASE_H 1 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/allocated_ptr.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/allocated_ptr.h" 3 26201: #define _ALLOCATED_PTR_H 1 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/bits/allocated_ptr.h" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: template 26201: struct __allocated_ptr 26201: { 26201: using pointer = typename allocator_traits<_Alloc>::pointer; 26201: using value_type = typename allocator_traits<_Alloc>::value_type; 26201: 26201: 26201: __allocated_ptr(_Alloc& __a, pointer __ptr) noexcept 26201: : _M_alloc(std::__addressof(__a)), _M_ptr(__ptr) 26201: { } 26201: 26201: 26201: template>> 26201: __allocated_ptr(_Alloc& __a, _Ptr __ptr) 26201: : _M_alloc(std::__addressof(__a)), 26201: _M_ptr(pointer_traits::pointer_to(*__ptr)) 26201: { } 26201: 26201: 26201: __allocated_ptr(__allocated_ptr&& __gd) noexcept 26201: : _M_alloc(__gd._M_alloc), _M_ptr(__gd._M_ptr) 26201: { __gd._M_ptr = nullptr; } 26201: 26201: 26201: ~__allocated_ptr() 26201: { 26201: if (_M_ptr != nullptr) 26201: std::allocator_traits<_Alloc>::deallocate(*_M_alloc, _M_ptr, 1); 26201: } 26201: 26201: 26201: __allocated_ptr& 26201: operator=(std::nullptr_t) noexcept 26201: { 26201: _M_ptr = nullptr; 26201: return *this; 26201: } 26201: 26201: 26201: value_type* get() { return std::__to_address(_M_ptr); } 26201: 26201: private: 26201: _Alloc* _M_alloc; 26201: pointer _M_ptr; 26201: }; 26201: 26201: 26201: template 26201: __allocated_ptr<_Alloc> 26201: __allocate_guarded(_Alloc& __a) 26201: { 26201: return { __a, std::allocator_traits<_Alloc>::allocate(__a, 1) }; 26201: } 26201: 26201: 26201: } 26201: # 54 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr_base.h" 2 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: #pragma GCC diagnostic push 26201: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 26201: template class auto_ptr; 26201: #pragma GCC diagnostic pop 26201: 26201: 26201: 26201: 26201: 26201: 26201: class bad_weak_ptr : public std::exception 26201: { 26201: public: 26201: virtual char const* what() const noexcept; 26201: 26201: virtual ~bad_weak_ptr() noexcept; 26201: }; 26201: 26201: 26201: inline void 26201: __throw_bad_weak_ptr() 26201: { (throw (bad_weak_ptr())); } 26201: 26201: using __gnu_cxx::_Lock_policy; 26201: using __gnu_cxx::__default_lock_policy; 26201: using __gnu_cxx::_S_single; 26201: using __gnu_cxx::_S_mutex; 26201: using __gnu_cxx::_S_atomic; 26201: 26201: 26201: template<_Lock_policy _Lp> 26201: class _Mutex_base 26201: { 26201: protected: 26201: 26201: enum { _S_need_barriers = 0 }; 26201: }; 26201: 26201: template<> 26201: class _Mutex_base<_S_mutex> 26201: : public __gnu_cxx::__mutex 26201: { 26201: protected: 26201: 26201: 26201: 26201: enum { _S_need_barriers = 1 }; 26201: }; 26201: 26201: template<_Lock_policy _Lp = __default_lock_policy> 26201: class _Sp_counted_base 26201: : public _Mutex_base<_Lp> 26201: { 26201: public: 26201: _Sp_counted_base() noexcept 26201: : _M_use_count(1), _M_weak_count(1) { } 26201: 26201: virtual 26201: ~_Sp_counted_base() noexcept 26201: { } 26201: 26201: 26201: 26201: virtual void 26201: _M_dispose() noexcept = 0; 26201: 26201: 26201: virtual void 26201: _M_destroy() noexcept 26201: { delete this; } 26201: 26201: virtual void* 26201: _M_get_deleter(const std::type_info&) noexcept = 0; 26201: 26201: void 26201: _M_add_ref_copy() 26201: { __gnu_cxx::__atomic_add_dispatch(&_M_use_count, 1); } 26201: 26201: void 26201: _M_add_ref_lock(); 26201: 26201: bool 26201: _M_add_ref_lock_nothrow(); 26201: 26201: void 26201: _M_release() noexcept 26201: { 26201: 26201: ; 26201: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, -1) == 1) 26201: { 26201: ; 26201: _M_dispose(); 26201: 26201: 26201: 26201: 26201: if (_Mutex_base<_Lp>::_S_need_barriers) 26201: { 26201: __atomic_thread_fence (4); 26201: } 26201: 26201: 26201: ; 26201: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_weak_count, 26201: -1) == 1) 26201: { 26201: ; 26201: _M_destroy(); 26201: } 26201: } 26201: } 26201: 26201: void 26201: _M_weak_add_ref() noexcept 26201: { __gnu_cxx::__atomic_add_dispatch(&_M_weak_count, 1); } 26201: 26201: void 26201: _M_weak_release() noexcept 26201: { 26201: 26201: ; 26201: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_weak_count, -1) == 1) 26201: { 26201: ; 26201: if (_Mutex_base<_Lp>::_S_need_barriers) 26201: { 26201: 26201: 26201: __atomic_thread_fence (4); 26201: } 26201: _M_destroy(); 26201: } 26201: } 26201: 26201: long 26201: _M_get_use_count() const noexcept 26201: { 26201: 26201: 26201: return __atomic_load_n(&_M_use_count, 0); 26201: } 26201: 26201: private: 26201: _Sp_counted_base(_Sp_counted_base const&) = delete; 26201: _Sp_counted_base& operator=(_Sp_counted_base const&) = delete; 26201: 26201: _Atomic_word _M_use_count; 26201: _Atomic_word _M_weak_count; 26201: }; 26201: 26201: template<> 26201: inline void 26201: _Sp_counted_base<_S_single>:: 26201: _M_add_ref_lock() 26201: { 26201: if (_M_use_count == 0) 26201: __throw_bad_weak_ptr(); 26201: ++_M_use_count; 26201: } 26201: 26201: template<> 26201: inline void 26201: _Sp_counted_base<_S_mutex>:: 26201: _M_add_ref_lock() 26201: { 26201: __gnu_cxx::__scoped_lock sentry(*this); 26201: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, 1) == 0) 26201: { 26201: _M_use_count = 0; 26201: __throw_bad_weak_ptr(); 26201: } 26201: } 26201: 26201: template<> 26201: inline void 26201: _Sp_counted_base<_S_atomic>:: 26201: _M_add_ref_lock() 26201: { 26201: 26201: _Atomic_word __count = _M_get_use_count(); 26201: do 26201: { 26201: if (__count == 0) 26201: __throw_bad_weak_ptr(); 26201: 26201: 26201: } 26201: while (!__atomic_compare_exchange_n(&_M_use_count, &__count, __count + 1, 26201: true, 4, 26201: 0)); 26201: } 26201: 26201: template<> 26201: inline bool 26201: _Sp_counted_base<_S_single>:: 26201: _M_add_ref_lock_nothrow() 26201: { 26201: if (_M_use_count == 0) 26201: return false; 26201: ++_M_use_count; 26201: return true; 26201: } 26201: 26201: template<> 26201: inline bool 26201: _Sp_counted_base<_S_mutex>:: 26201: _M_add_ref_lock_nothrow() 26201: { 26201: __gnu_cxx::__scoped_lock sentry(*this); 26201: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, 1) == 0) 26201: { 26201: _M_use_count = 0; 26201: return false; 26201: } 26201: return true; 26201: } 26201: 26201: template<> 26201: inline bool 26201: _Sp_counted_base<_S_atomic>:: 26201: _M_add_ref_lock_nothrow() 26201: { 26201: 26201: _Atomic_word __count = _M_get_use_count(); 26201: do 26201: { 26201: if (__count == 0) 26201: return false; 26201: 26201: 26201: } 26201: while (!__atomic_compare_exchange_n(&_M_use_count, &__count, __count + 1, 26201: true, 4, 26201: 0)); 26201: return true; 26201: } 26201: 26201: template<> 26201: inline void 26201: _Sp_counted_base<_S_single>::_M_add_ref_copy() 26201: { ++_M_use_count; } 26201: 26201: template<> 26201: inline void 26201: _Sp_counted_base<_S_single>::_M_release() noexcept 26201: { 26201: if (--_M_use_count == 0) 26201: { 26201: _M_dispose(); 26201: if (--_M_weak_count == 0) 26201: _M_destroy(); 26201: } 26201: } 26201: 26201: template<> 26201: inline void 26201: _Sp_counted_base<_S_single>::_M_weak_add_ref() noexcept 26201: { ++_M_weak_count; } 26201: 26201: template<> 26201: inline void 26201: _Sp_counted_base<_S_single>::_M_weak_release() noexcept 26201: { 26201: if (--_M_weak_count == 0) 26201: _M_destroy(); 26201: } 26201: 26201: template<> 26201: inline long 26201: _Sp_counted_base<_S_single>::_M_get_use_count() const noexcept 26201: { return _M_use_count; } 26201: 26201: 26201: 26201: template 26201: class __shared_ptr; 26201: 26201: template 26201: class __weak_ptr; 26201: 26201: template 26201: class __enable_shared_from_this; 26201: 26201: template 26201: class shared_ptr; 26201: 26201: template 26201: class weak_ptr; 26201: 26201: template 26201: struct owner_less; 26201: 26201: template 26201: class enable_shared_from_this; 26201: 26201: template<_Lock_policy _Lp = __default_lock_policy> 26201: class __weak_count; 26201: 26201: template<_Lock_policy _Lp = __default_lock_policy> 26201: class __shared_count; 26201: 26201: 26201: 26201: template 26201: class _Sp_counted_ptr final : public _Sp_counted_base<_Lp> 26201: { 26201: public: 26201: explicit 26201: _Sp_counted_ptr(_Ptr __p) noexcept 26201: : _M_ptr(__p) { } 26201: 26201: virtual void 26201: _M_dispose() noexcept 26201: { delete _M_ptr; } 26201: 26201: virtual void 26201: _M_destroy() noexcept 26201: { delete this; } 26201: 26201: virtual void* 26201: _M_get_deleter(const std::type_info&) noexcept 26201: { return nullptr; } 26201: 26201: _Sp_counted_ptr(const _Sp_counted_ptr&) = delete; 26201: _Sp_counted_ptr& operator=(const _Sp_counted_ptr&) = delete; 26201: 26201: private: 26201: _Ptr _M_ptr; 26201: }; 26201: 26201: template<> 26201: inline void 26201: _Sp_counted_ptr::_M_dispose() noexcept { } 26201: 26201: template<> 26201: inline void 26201: _Sp_counted_ptr::_M_dispose() noexcept { } 26201: 26201: template<> 26201: inline void 26201: _Sp_counted_ptr::_M_dispose() noexcept { } 26201: 26201: template 26201: struct _Sp_ebo_helper; 26201: 26201: 26201: template 26201: struct _Sp_ebo_helper<_Nm, _Tp, true> : private _Tp 26201: { 26201: explicit _Sp_ebo_helper(const _Tp& __tp) : _Tp(__tp) { } 26201: explicit _Sp_ebo_helper(_Tp&& __tp) : _Tp(std::move(__tp)) { } 26201: 26201: static _Tp& 26201: _S_get(_Sp_ebo_helper& __eboh) { return static_cast<_Tp&>(__eboh); } 26201: }; 26201: 26201: 26201: template 26201: struct _Sp_ebo_helper<_Nm, _Tp, false> 26201: { 26201: explicit _Sp_ebo_helper(const _Tp& __tp) : _M_tp(__tp) { } 26201: explicit _Sp_ebo_helper(_Tp&& __tp) : _M_tp(std::move(__tp)) { } 26201: 26201: static _Tp& 26201: _S_get(_Sp_ebo_helper& __eboh) 26201: { return __eboh._M_tp; } 26201: 26201: private: 26201: _Tp _M_tp; 26201: }; 26201: 26201: 26201: template 26201: class _Sp_counted_deleter final : public _Sp_counted_base<_Lp> 26201: { 26201: class _Impl : _Sp_ebo_helper<0, _Deleter>, _Sp_ebo_helper<1, _Alloc> 26201: { 26201: typedef _Sp_ebo_helper<0, _Deleter> _Del_base; 26201: typedef _Sp_ebo_helper<1, _Alloc> _Alloc_base; 26201: 26201: public: 26201: _Impl(_Ptr __p, _Deleter __d, const _Alloc& __a) noexcept 26201: : _M_ptr(__p), _Del_base(std::move(__d)), _Alloc_base(__a) 26201: { } 26201: 26201: _Deleter& _M_del() noexcept { return _Del_base::_S_get(*this); } 26201: _Alloc& _M_alloc() noexcept { return _Alloc_base::_S_get(*this); } 26201: 26201: _Ptr _M_ptr; 26201: }; 26201: 26201: public: 26201: using __allocator_type = __alloc_rebind<_Alloc, _Sp_counted_deleter>; 26201: 26201: 26201: _Sp_counted_deleter(_Ptr __p, _Deleter __d) noexcept 26201: : _M_impl(__p, std::move(__d), _Alloc()) { } 26201: 26201: 26201: _Sp_counted_deleter(_Ptr __p, _Deleter __d, const _Alloc& __a) noexcept 26201: : _M_impl(__p, std::move(__d), __a) { } 26201: 26201: ~_Sp_counted_deleter() noexcept { } 26201: 26201: virtual void 26201: _M_dispose() noexcept 26201: { _M_impl._M_del()(_M_impl._M_ptr); } 26201: 26201: virtual void 26201: _M_destroy() noexcept 26201: { 26201: __allocator_type __a(_M_impl._M_alloc()); 26201: __allocated_ptr<__allocator_type> __guard_ptr{ __a, this }; 26201: this->~_Sp_counted_deleter(); 26201: } 26201: 26201: virtual void* 26201: _M_get_deleter(const std::type_info& __ti) noexcept 26201: { 26201: 26201: 26201: 26201: return __ti == typeid(_Deleter) 26201: ? std::__addressof(_M_impl._M_del()) 26201: : nullptr; 26201: 26201: 26201: 26201: } 26201: 26201: private: 26201: _Impl _M_impl; 26201: }; 26201: 26201: 26201: 26201: struct _Sp_make_shared_tag 26201: { 26201: private: 26201: template 26201: friend class _Sp_counted_ptr_inplace; 26201: 26201: static const type_info& 26201: _S_ti() noexcept __attribute__ ((__visibility__ ("default"))) 26201: { 26201: alignas(type_info) static constexpr char __tag[sizeof(type_info)] = { }; 26201: return reinterpret_cast(__tag); 26201: } 26201: 26201: static bool _S_eq(const type_info&) noexcept; 26201: }; 26201: 26201: template 26201: struct _Sp_alloc_shared_tag 26201: { 26201: const _Alloc& _M_a; 26201: }; 26201: 26201: template 26201: class _Sp_counted_ptr_inplace final : public _Sp_counted_base<_Lp> 26201: { 26201: class _Impl : _Sp_ebo_helper<0, _Alloc> 26201: { 26201: typedef _Sp_ebo_helper<0, _Alloc> _A_base; 26201: 26201: public: 26201: explicit _Impl(_Alloc __a) noexcept : _A_base(__a) { } 26201: 26201: _Alloc& _M_alloc() noexcept { return _A_base::_S_get(*this); } 26201: 26201: __gnu_cxx::__aligned_buffer<_Tp> _M_storage; 26201: }; 26201: 26201: public: 26201: using __allocator_type = __alloc_rebind<_Alloc, _Sp_counted_ptr_inplace>; 26201: 26201: 26201: template 26201: _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args) 26201: : _M_impl(__a) 26201: { 26201: 26201: 26201: allocator_traits<_Alloc>::construct(__a, _M_ptr(), 26201: std::forward<_Args>(__args)...); 26201: } 26201: 26201: ~_Sp_counted_ptr_inplace() noexcept { } 26201: 26201: virtual void 26201: _M_dispose() noexcept 26201: { 26201: allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr()); 26201: } 26201: 26201: 26201: virtual void 26201: _M_destroy() noexcept 26201: { 26201: __allocator_type __a(_M_impl._M_alloc()); 26201: __allocated_ptr<__allocator_type> __guard_ptr{ __a, this }; 26201: this->~_Sp_counted_ptr_inplace(); 26201: } 26201: 26201: private: 26201: friend class __shared_count<_Lp>; 26201: 26201: 26201: 26201: virtual void* 26201: _M_get_deleter(const std::type_info& __ti) noexcept override 26201: { 26201: auto __ptr = const_cast::type*>(_M_ptr()); 26201: 26201: 26201: 26201: 26201: if (&__ti == &_Sp_make_shared_tag::_S_ti() 26201: || 26201: 26201: __ti == typeid(_Sp_make_shared_tag) 26201: 26201: 26201: 26201: ) 26201: return __ptr; 26201: return nullptr; 26201: } 26201: 26201: _Tp* _M_ptr() noexcept { return _M_impl._M_storage._M_ptr(); } 26201: 26201: _Impl _M_impl; 26201: }; 26201: 26201: 26201: struct __sp_array_delete 26201: { 26201: template 26201: void operator()(_Yp* __p) const { delete[] __p; } 26201: }; 26201: 26201: template<_Lock_policy _Lp> 26201: class __shared_count 26201: { 26201: template 26201: struct __not_alloc_shared_tag { using type = void; }; 26201: 26201: template 26201: struct __not_alloc_shared_tag<_Sp_alloc_shared_tag<_Tp>> { }; 26201: 26201: public: 26201: constexpr __shared_count() noexcept : _M_pi(0) 26201: { } 26201: 26201: template 26201: explicit 26201: __shared_count(_Ptr __p) : _M_pi(0) 26201: { 26201: try 26201: { 26201: _M_pi = new _Sp_counted_ptr<_Ptr, _Lp>(__p); 26201: } 26201: catch(...) 26201: { 26201: delete __p; 26201: throw; 26201: } 26201: } 26201: 26201: template 26201: __shared_count(_Ptr __p, false_type) 26201: : __shared_count(__p) 26201: { } 26201: 26201: template 26201: __shared_count(_Ptr __p, true_type) 26201: : __shared_count(__p, __sp_array_delete{}, allocator()) 26201: { } 26201: 26201: template::type> 26201: __shared_count(_Ptr __p, _Deleter __d) 26201: : __shared_count(__p, std::move(__d), allocator()) 26201: { } 26201: 26201: template::type> 26201: __shared_count(_Ptr __p, _Deleter __d, _Alloc __a) : _M_pi(0) 26201: { 26201: typedef _Sp_counted_deleter<_Ptr, _Deleter, _Alloc, _Lp> _Sp_cd_type; 26201: try 26201: { 26201: typename _Sp_cd_type::__allocator_type __a2(__a); 26201: auto __guard = std::__allocate_guarded(__a2); 26201: _Sp_cd_type* __mem = __guard.get(); 26201: ::new (__mem) _Sp_cd_type(__p, std::move(__d), std::move(__a)); 26201: _M_pi = __mem; 26201: __guard = nullptr; 26201: } 26201: catch(...) 26201: { 26201: __d(__p); 26201: throw; 26201: } 26201: } 26201: 26201: template 26201: __shared_count(_Tp*& __p, _Sp_alloc_shared_tag<_Alloc> __a, 26201: _Args&&... __args) 26201: { 26201: typedef _Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp> _Sp_cp_type; 26201: typename _Sp_cp_type::__allocator_type __a2(__a._M_a); 26201: auto __guard = std::__allocate_guarded(__a2); 26201: _Sp_cp_type* __mem = __guard.get(); 26201: auto __pi = ::new (__mem) 26201: _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...); 26201: __guard = nullptr; 26201: _M_pi = __pi; 26201: __p = __pi->_M_ptr(); 26201: } 26201: 26201: 26201: #pragma GCC diagnostic push 26201: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 26201: 26201: template 26201: explicit 26201: __shared_count(std::auto_ptr<_Tp>&& __r); 26201: #pragma GCC diagnostic pop 26201: 26201: 26201: 26201: template 26201: explicit 26201: __shared_count(std::unique_ptr<_Tp, _Del>&& __r) : _M_pi(0) 26201: { 26201: 26201: 26201: if (__r.get() == nullptr) 26201: return; 26201: 26201: using _Ptr = typename unique_ptr<_Tp, _Del>::pointer; 26201: using _Del2 = typename conditional::value, 26201: reference_wrapper::type>, 26201: _Del>::type; 26201: using _Sp_cd_type 26201: = _Sp_counted_deleter<_Ptr, _Del2, allocator, _Lp>; 26201: using _Alloc = allocator<_Sp_cd_type>; 26201: using _Alloc_traits = allocator_traits<_Alloc>; 26201: _Alloc __a; 26201: _Sp_cd_type* __mem = _Alloc_traits::allocate(__a, 1); 26201: 26201: 26201: 26201: _Alloc_traits::construct(__a, __mem, __r.release(), 26201: std::forward<_Del>(__r.get_deleter())); 26201: _M_pi = __mem; 26201: } 26201: 26201: 26201: explicit __shared_count(const __weak_count<_Lp>& __r); 26201: 26201: 26201: explicit __shared_count(const __weak_count<_Lp>& __r, std::nothrow_t); 26201: 26201: ~__shared_count() noexcept 26201: { 26201: if (_M_pi != nullptr) 26201: _M_pi->_M_release(); 26201: } 26201: 26201: __shared_count(const __shared_count& __r) noexcept 26201: : _M_pi(__r._M_pi) 26201: { 26201: if (_M_pi != 0) 26201: _M_pi->_M_add_ref_copy(); 26201: } 26201: 26201: __shared_count& 26201: operator=(const __shared_count& __r) noexcept 26201: { 26201: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 26201: if (__tmp != _M_pi) 26201: { 26201: if (__tmp != 0) 26201: __tmp->_M_add_ref_copy(); 26201: if (_M_pi != 0) 26201: _M_pi->_M_release(); 26201: _M_pi = __tmp; 26201: } 26201: return *this; 26201: } 26201: 26201: void 26201: _M_swap(__shared_count& __r) noexcept 26201: { 26201: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 26201: __r._M_pi = _M_pi; 26201: _M_pi = __tmp; 26201: } 26201: 26201: long 26201: _M_get_use_count() const noexcept 26201: { return _M_pi != 0 ? _M_pi->_M_get_use_count() : 0; } 26201: 26201: bool 26201: _M_unique() const noexcept 26201: { return this->_M_get_use_count() == 1; } 26201: 26201: void* 26201: _M_get_deleter(const std::type_info& __ti) const noexcept 26201: { return _M_pi ? _M_pi->_M_get_deleter(__ti) : nullptr; } 26201: 26201: bool 26201: _M_less(const __shared_count& __rhs) const noexcept 26201: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 26201: 26201: bool 26201: _M_less(const __weak_count<_Lp>& __rhs) const noexcept 26201: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 26201: 26201: 26201: friend inline bool 26201: operator==(const __shared_count& __a, const __shared_count& __b) noexcept 26201: { return __a._M_pi == __b._M_pi; } 26201: 26201: private: 26201: friend class __weak_count<_Lp>; 26201: 26201: _Sp_counted_base<_Lp>* _M_pi; 26201: }; 26201: 26201: 26201: template<_Lock_policy _Lp> 26201: class __weak_count 26201: { 26201: public: 26201: constexpr __weak_count() noexcept : _M_pi(nullptr) 26201: { } 26201: 26201: __weak_count(const __shared_count<_Lp>& __r) noexcept 26201: : _M_pi(__r._M_pi) 26201: { 26201: if (_M_pi != nullptr) 26201: _M_pi->_M_weak_add_ref(); 26201: } 26201: 26201: __weak_count(const __weak_count& __r) noexcept 26201: : _M_pi(__r._M_pi) 26201: { 26201: if (_M_pi != nullptr) 26201: _M_pi->_M_weak_add_ref(); 26201: } 26201: 26201: __weak_count(__weak_count&& __r) noexcept 26201: : _M_pi(__r._M_pi) 26201: { __r._M_pi = nullptr; } 26201: 26201: ~__weak_count() noexcept 26201: { 26201: if (_M_pi != nullptr) 26201: _M_pi->_M_weak_release(); 26201: } 26201: 26201: __weak_count& 26201: operator=(const __shared_count<_Lp>& __r) noexcept 26201: { 26201: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 26201: if (__tmp != nullptr) 26201: __tmp->_M_weak_add_ref(); 26201: if (_M_pi != nullptr) 26201: _M_pi->_M_weak_release(); 26201: _M_pi = __tmp; 26201: return *this; 26201: } 26201: 26201: __weak_count& 26201: operator=(const __weak_count& __r) noexcept 26201: { 26201: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 26201: if (__tmp != nullptr) 26201: __tmp->_M_weak_add_ref(); 26201: if (_M_pi != nullptr) 26201: _M_pi->_M_weak_release(); 26201: _M_pi = __tmp; 26201: return *this; 26201: } 26201: 26201: __weak_count& 26201: operator=(__weak_count&& __r) noexcept 26201: { 26201: if (_M_pi != nullptr) 26201: _M_pi->_M_weak_release(); 26201: _M_pi = __r._M_pi; 26201: __r._M_pi = nullptr; 26201: return *this; 26201: } 26201: 26201: void 26201: _M_swap(__weak_count& __r) noexcept 26201: { 26201: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 26201: __r._M_pi = _M_pi; 26201: _M_pi = __tmp; 26201: } 26201: 26201: long 26201: _M_get_use_count() const noexcept 26201: { return _M_pi != nullptr ? _M_pi->_M_get_use_count() : 0; } 26201: 26201: bool 26201: _M_less(const __weak_count& __rhs) const noexcept 26201: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 26201: 26201: bool 26201: _M_less(const __shared_count<_Lp>& __rhs) const noexcept 26201: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 26201: 26201: 26201: friend inline bool 26201: operator==(const __weak_count& __a, const __weak_count& __b) noexcept 26201: { return __a._M_pi == __b._M_pi; } 26201: 26201: private: 26201: friend class __shared_count<_Lp>; 26201: 26201: _Sp_counted_base<_Lp>* _M_pi; 26201: }; 26201: 26201: 26201: template<_Lock_policy _Lp> 26201: inline 26201: __shared_count<_Lp>::__shared_count(const __weak_count<_Lp>& __r) 26201: : _M_pi(__r._M_pi) 26201: { 26201: if (_M_pi != nullptr) 26201: _M_pi->_M_add_ref_lock(); 26201: else 26201: __throw_bad_weak_ptr(); 26201: } 26201: 26201: 26201: template<_Lock_policy _Lp> 26201: inline 26201: __shared_count<_Lp>:: 26201: __shared_count(const __weak_count<_Lp>& __r, std::nothrow_t) 26201: : _M_pi(__r._M_pi) 26201: { 26201: if (_M_pi != nullptr) 26201: if (!_M_pi->_M_add_ref_lock_nothrow()) 26201: _M_pi = nullptr; 26201: } 26201: 26201: #define __cpp_lib_shared_ptr_arrays 201611L 26201: 26201: 26201: 26201: 26201: 26201: template 26201: struct __sp_compatible_with 26201: : false_type 26201: { }; 26201: 26201: template 26201: struct __sp_compatible_with<_Yp*, _Tp*> 26201: : is_convertible<_Yp*, _Tp*>::type 26201: { }; 26201: 26201: template 26201: struct __sp_compatible_with<_Up(*)[_Nm], _Up(*)[]> 26201: : true_type 26201: { }; 26201: 26201: template 26201: struct __sp_compatible_with<_Up(*)[_Nm], const _Up(*)[]> 26201: : true_type 26201: { }; 26201: 26201: template 26201: struct __sp_compatible_with<_Up(*)[_Nm], volatile _Up(*)[]> 26201: : true_type 26201: { }; 26201: 26201: template 26201: struct __sp_compatible_with<_Up(*)[_Nm], const volatile _Up(*)[]> 26201: : true_type 26201: { }; 26201: 26201: 26201: template 26201: struct __sp_is_constructible_arrN 26201: : false_type 26201: { }; 26201: 26201: template 26201: struct __sp_is_constructible_arrN<_Up, _Nm, _Yp, __void_t<_Yp[_Nm]>> 26201: : is_convertible<_Yp(*)[_Nm], _Up(*)[_Nm]>::type 26201: { }; 26201: 26201: 26201: template 26201: struct __sp_is_constructible_arr 26201: : false_type 26201: { }; 26201: 26201: template 26201: struct __sp_is_constructible_arr<_Up, _Yp, __void_t<_Yp[]>> 26201: : is_convertible<_Yp(*)[], _Up(*)[]>::type 26201: { }; 26201: 26201: 26201: template 26201: struct __sp_is_constructible; 26201: 26201: 26201: template 26201: struct __sp_is_constructible<_Up[_Nm], _Yp> 26201: : __sp_is_constructible_arrN<_Up, _Nm, _Yp>::type 26201: { }; 26201: 26201: 26201: template 26201: struct __sp_is_constructible<_Up[], _Yp> 26201: : __sp_is_constructible_arr<_Up, _Yp>::type 26201: { }; 26201: 26201: 26201: template 26201: struct __sp_is_constructible 26201: : is_convertible<_Yp*, _Tp*>::type 26201: { }; 26201: 26201: 26201: 26201: template::value, bool = is_void<_Tp>::value> 26201: class __shared_ptr_access 26201: { 26201: public: 26201: using element_type = _Tp; 26201: 26201: element_type& 26201: operator*() const noexcept 26201: { 26201: ; 26201: return *_M_get(); 26201: } 26201: 26201: element_type* 26201: operator->() const noexcept 26201: { 26201: ; 26201: return _M_get(); 26201: } 26201: 26201: private: 26201: element_type* 26201: _M_get() const noexcept 26201: { return static_cast*>(this)->get(); } 26201: }; 26201: 26201: 26201: template 26201: class __shared_ptr_access<_Tp, _Lp, false, true> 26201: { 26201: public: 26201: using element_type = _Tp; 26201: 26201: element_type* 26201: operator->() const noexcept 26201: { 26201: auto __ptr = static_cast*>(this)->get(); 26201: ; 26201: return __ptr; 26201: } 26201: }; 26201: 26201: 26201: template 26201: class __shared_ptr_access<_Tp, _Lp, true, false> 26201: { 26201: public: 26201: using element_type = typename remove_extent<_Tp>::type; 26201: # 1071 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr_base.h" 3 26201: element_type& 26201: operator[](ptrdiff_t __i) const 26201: { 26201: ; 26201: ; 26201: return _M_get()[__i]; 26201: } 26201: 26201: private: 26201: element_type* 26201: _M_get() const noexcept 26201: { return static_cast*>(this)->get(); } 26201: }; 26201: 26201: template 26201: class __shared_ptr 26201: : public __shared_ptr_access<_Tp, _Lp> 26201: { 26201: public: 26201: using element_type = typename remove_extent<_Tp>::type; 26201: 26201: private: 26201: 26201: template 26201: using _SafeConv 26201: = typename enable_if<__sp_is_constructible<_Tp, _Yp>::value>::type; 26201: 26201: 26201: template 26201: using _Compatible = typename 26201: enable_if<__sp_compatible_with<_Yp*, _Tp*>::value, _Res>::type; 26201: 26201: 26201: template 26201: using _Assignable = _Compatible<_Yp, __shared_ptr&>; 26201: 26201: 26201: template::pointer> 26201: using _UniqCompatible = __enable_if_t<__and_< 26201: __sp_compatible_with<_Yp*, _Tp*>, 26201: is_convertible<_Ptr, element_type*>, 26201: is_move_constructible<_Del> 26201: >::value, _Res>; 26201: 26201: 26201: template 26201: using _UniqAssignable = _UniqCompatible<_Yp, _Del, __shared_ptr&>; 26201: 26201: public: 26201: 26201: 26201: using weak_type = __weak_ptr<_Tp, _Lp>; 26201: 26201: 26201: constexpr __shared_ptr() noexcept 26201: : _M_ptr(0), _M_refcount() 26201: { } 26201: 26201: template> 26201: explicit 26201: __shared_ptr(_Yp* __p) 26201: : _M_ptr(__p), _M_refcount(__p, typename is_array<_Tp>::type()) 26201: { 26201: static_assert( !is_void<_Yp>::value, "incomplete type" ); 26201: static_assert( sizeof(_Yp) > 0, "incomplete type" ); 26201: _M_enable_shared_from_this_with(__p); 26201: } 26201: 26201: template> 26201: __shared_ptr(_Yp* __p, _Deleter __d) 26201: : _M_ptr(__p), _M_refcount(__p, std::move(__d)) 26201: { 26201: static_assert(__is_invocable<_Deleter&, _Yp*&>::value, 26201: "deleter expression d(p) is well-formed"); 26201: _M_enable_shared_from_this_with(__p); 26201: } 26201: 26201: template> 26201: __shared_ptr(_Yp* __p, _Deleter __d, _Alloc __a) 26201: : _M_ptr(__p), _M_refcount(__p, std::move(__d), std::move(__a)) 26201: { 26201: static_assert(__is_invocable<_Deleter&, _Yp*&>::value, 26201: "deleter expression d(p) is well-formed"); 26201: _M_enable_shared_from_this_with(__p); 26201: } 26201: 26201: template 26201: __shared_ptr(nullptr_t __p, _Deleter __d) 26201: : _M_ptr(0), _M_refcount(__p, std::move(__d)) 26201: { } 26201: 26201: template 26201: __shared_ptr(nullptr_t __p, _Deleter __d, _Alloc __a) 26201: : _M_ptr(0), _M_refcount(__p, std::move(__d), std::move(__a)) 26201: { } 26201: 26201: 26201: template 26201: __shared_ptr(const __shared_ptr<_Yp, _Lp>& __r, 26201: element_type* __p) noexcept 26201: : _M_ptr(__p), _M_refcount(__r._M_refcount) 26201: { } 26201: 26201: 26201: template 26201: __shared_ptr(__shared_ptr<_Yp, _Lp>&& __r, 26201: element_type* __p) noexcept 26201: : _M_ptr(__p), _M_refcount() 26201: { 26201: _M_refcount._M_swap(__r._M_refcount); 26201: __r._M_ptr = 0; 26201: } 26201: 26201: __shared_ptr(const __shared_ptr&) noexcept = default; 26201: __shared_ptr& operator=(const __shared_ptr&) noexcept = default; 26201: ~__shared_ptr() = default; 26201: 26201: template> 26201: __shared_ptr(const __shared_ptr<_Yp, _Lp>& __r) noexcept 26201: : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) 26201: { } 26201: 26201: __shared_ptr(__shared_ptr&& __r) noexcept 26201: : _M_ptr(__r._M_ptr), _M_refcount() 26201: { 26201: _M_refcount._M_swap(__r._M_refcount); 26201: __r._M_ptr = 0; 26201: } 26201: 26201: template> 26201: __shared_ptr(__shared_ptr<_Yp, _Lp>&& __r) noexcept 26201: : _M_ptr(__r._M_ptr), _M_refcount() 26201: { 26201: _M_refcount._M_swap(__r._M_refcount); 26201: __r._M_ptr = 0; 26201: } 26201: 26201: template> 26201: explicit __shared_ptr(const __weak_ptr<_Yp, _Lp>& __r) 26201: : _M_refcount(__r._M_refcount) 26201: { 26201: 26201: 26201: _M_ptr = __r._M_ptr; 26201: } 26201: 26201: 26201: template> 26201: __shared_ptr(unique_ptr<_Yp, _Del>&& __r) 26201: : _M_ptr(__r.get()), _M_refcount() 26201: { 26201: auto __raw = __to_address(__r.get()); 26201: _M_refcount = __shared_count<_Lp>(std::move(__r)); 26201: _M_enable_shared_from_this_with(__raw); 26201: } 26201: # 1249 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr_base.h" 3 26201: #pragma GCC diagnostic push 26201: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 26201: 26201: template> 26201: __shared_ptr(auto_ptr<_Yp>&& __r); 26201: #pragma GCC diagnostic pop 26201: 26201: 26201: constexpr __shared_ptr(nullptr_t) noexcept : __shared_ptr() { } 26201: 26201: template 26201: _Assignable<_Yp> 26201: operator=(const __shared_ptr<_Yp, _Lp>& __r) noexcept 26201: { 26201: _M_ptr = __r._M_ptr; 26201: _M_refcount = __r._M_refcount; 26201: return *this; 26201: } 26201: 26201: 26201: #pragma GCC diagnostic push 26201: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 26201: template 26201: _Assignable<_Yp> 26201: operator=(auto_ptr<_Yp>&& __r) 26201: { 26201: __shared_ptr(std::move(__r)).swap(*this); 26201: return *this; 26201: } 26201: #pragma GCC diagnostic pop 26201: 26201: 26201: __shared_ptr& 26201: operator=(__shared_ptr&& __r) noexcept 26201: { 26201: __shared_ptr(std::move(__r)).swap(*this); 26201: return *this; 26201: } 26201: 26201: template 26201: _Assignable<_Yp> 26201: operator=(__shared_ptr<_Yp, _Lp>&& __r) noexcept 26201: { 26201: __shared_ptr(std::move(__r)).swap(*this); 26201: return *this; 26201: } 26201: 26201: template 26201: _UniqAssignable<_Yp, _Del> 26201: operator=(unique_ptr<_Yp, _Del>&& __r) 26201: { 26201: __shared_ptr(std::move(__r)).swap(*this); 26201: return *this; 26201: } 26201: 26201: void 26201: reset() noexcept 26201: { __shared_ptr().swap(*this); } 26201: 26201: template 26201: _SafeConv<_Yp> 26201: reset(_Yp* __p) 26201: { 26201: 26201: ; 26201: __shared_ptr(__p).swap(*this); 26201: } 26201: 26201: template 26201: _SafeConv<_Yp> 26201: reset(_Yp* __p, _Deleter __d) 26201: { __shared_ptr(__p, std::move(__d)).swap(*this); } 26201: 26201: template 26201: _SafeConv<_Yp> 26201: reset(_Yp* __p, _Deleter __d, _Alloc __a) 26201: { __shared_ptr(__p, std::move(__d), std::move(__a)).swap(*this); } 26201: 26201: 26201: element_type* 26201: get() const noexcept 26201: { return _M_ptr; } 26201: 26201: 26201: explicit operator bool() const 26201: { return _M_ptr == 0 ? false : true; } 26201: 26201: 26201: bool 26201: unique() const noexcept 26201: { return _M_refcount._M_unique(); } 26201: 26201: 26201: long 26201: use_count() const noexcept 26201: { return _M_refcount._M_get_use_count(); } 26201: 26201: 26201: void 26201: swap(__shared_ptr<_Tp, _Lp>& __other) noexcept 26201: { 26201: std::swap(_M_ptr, __other._M_ptr); 26201: _M_refcount._M_swap(__other._M_refcount); 26201: } 26201: # 1361 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr_base.h" 3 26201: template 26201: bool 26201: owner_before(__shared_ptr<_Tp1, _Lp> const& __rhs) const noexcept 26201: { return _M_refcount._M_less(__rhs._M_refcount); } 26201: 26201: template 26201: bool 26201: owner_before(__weak_ptr<_Tp1, _Lp> const& __rhs) const noexcept 26201: { return _M_refcount._M_less(__rhs._M_refcount); } 26201: 26201: 26201: protected: 26201: 26201: template 26201: __shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args) 26201: : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...) 26201: { _M_enable_shared_from_this_with(_M_ptr); } 26201: 26201: template 26201: friend __shared_ptr<_Tp1, _Lp1> 26201: __allocate_shared(const _Alloc& __a, _Args&&... __args); 26201: 26201: 26201: 26201: __shared_ptr(const __weak_ptr<_Tp, _Lp>& __r, std::nothrow_t) 26201: : _M_refcount(__r._M_refcount, std::nothrow) 26201: { 26201: _M_ptr = _M_refcount._M_get_use_count() ? __r._M_ptr : nullptr; 26201: } 26201: 26201: friend class __weak_ptr<_Tp, _Lp>; 26201: 26201: private: 26201: 26201: template 26201: using __esft_base_t = decltype(__enable_shared_from_this_base( 26201: std::declval&>(), 26201: std::declval<_Yp*>())); 26201: 26201: 26201: template 26201: struct __has_esft_base 26201: : false_type { }; 26201: 26201: template 26201: struct __has_esft_base<_Yp, __void_t<__esft_base_t<_Yp>>> 26201: : __not_> { }; 26201: 26201: template::type> 26201: typename enable_if<__has_esft_base<_Yp2>::value>::type 26201: _M_enable_shared_from_this_with(_Yp* __p) noexcept 26201: { 26201: if (auto __base = __enable_shared_from_this_base(_M_refcount, __p)) 26201: __base->_M_weak_assign(const_cast<_Yp2*>(__p), _M_refcount); 26201: } 26201: 26201: template::type> 26201: typename enable_if::value>::type 26201: _M_enable_shared_from_this_with(_Yp*) noexcept 26201: { } 26201: 26201: void* 26201: _M_get_deleter(const std::type_info& __ti) const noexcept 26201: { return _M_refcount._M_get_deleter(__ti); } 26201: 26201: template friend class __shared_ptr; 26201: template friend class __weak_ptr; 26201: 26201: template 26201: friend _Del* get_deleter(const __shared_ptr<_Tp1, _Lp1>&) noexcept; 26201: 26201: template 26201: friend _Del* get_deleter(const shared_ptr<_Tp1>&) noexcept; 26201: 26201: element_type* _M_ptr; 26201: __shared_count<_Lp> _M_refcount; 26201: }; 26201: 26201: 26201: 26201: template 26201: inline bool 26201: operator==(const __shared_ptr<_Tp1, _Lp>& __a, 26201: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 26201: { return __a.get() == __b.get(); } 26201: 26201: template 26201: inline bool 26201: operator==(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 26201: { return !__a; } 26201: # 1468 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr_base.h" 3 26201: template 26201: inline bool 26201: operator==(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 26201: { return !__a; } 26201: 26201: template 26201: inline bool 26201: operator!=(const __shared_ptr<_Tp1, _Lp>& __a, 26201: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 26201: { return __a.get() != __b.get(); } 26201: 26201: template 26201: inline bool 26201: operator!=(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 26201: { return (bool)__a; } 26201: 26201: template 26201: inline bool 26201: operator!=(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 26201: { return (bool)__a; } 26201: 26201: template 26201: inline bool 26201: operator<(const __shared_ptr<_Tp, _Lp>& __a, 26201: const __shared_ptr<_Up, _Lp>& __b) noexcept 26201: { 26201: using _Tp_elt = typename __shared_ptr<_Tp, _Lp>::element_type; 26201: using _Up_elt = typename __shared_ptr<_Up, _Lp>::element_type; 26201: using _Vp = typename common_type<_Tp_elt*, _Up_elt*>::type; 26201: return less<_Vp>()(__a.get(), __b.get()); 26201: } 26201: 26201: template 26201: inline bool 26201: operator<(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 26201: { 26201: using _Tp_elt = typename __shared_ptr<_Tp, _Lp>::element_type; 26201: return less<_Tp_elt*>()(__a.get(), nullptr); 26201: } 26201: 26201: template 26201: inline bool 26201: operator<(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 26201: { 26201: using _Tp_elt = typename __shared_ptr<_Tp, _Lp>::element_type; 26201: return less<_Tp_elt*>()(nullptr, __a.get()); 26201: } 26201: 26201: template 26201: inline bool 26201: operator<=(const __shared_ptr<_Tp1, _Lp>& __a, 26201: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 26201: { return !(__b < __a); } 26201: 26201: template 26201: inline bool 26201: operator<=(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 26201: { return !(nullptr < __a); } 26201: 26201: template 26201: inline bool 26201: operator<=(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 26201: { return !(__a < nullptr); } 26201: 26201: template 26201: inline bool 26201: operator>(const __shared_ptr<_Tp1, _Lp>& __a, 26201: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 26201: { return (__b < __a); } 26201: 26201: template 26201: inline bool 26201: operator>(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 26201: { return nullptr < __a; } 26201: 26201: template 26201: inline bool 26201: operator>(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 26201: { return __a < nullptr; } 26201: 26201: template 26201: inline bool 26201: operator>=(const __shared_ptr<_Tp1, _Lp>& __a, 26201: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 26201: { return !(__a < __b); } 26201: 26201: template 26201: inline bool 26201: operator>=(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 26201: { return !(__a < nullptr); } 26201: 26201: template 26201: inline bool 26201: operator>=(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 26201: { return !(nullptr < __a); } 26201: 26201: 26201: 26201: template 26201: inline void 26201: swap(__shared_ptr<_Tp, _Lp>& __a, __shared_ptr<_Tp, _Lp>& __b) noexcept 26201: { __a.swap(__b); } 26201: # 1578 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr_base.h" 3 26201: template 26201: inline __shared_ptr<_Tp, _Lp> 26201: static_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) noexcept 26201: { 26201: using _Sp = __shared_ptr<_Tp, _Lp>; 26201: return _Sp(__r, static_cast(__r.get())); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline __shared_ptr<_Tp, _Lp> 26201: const_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) noexcept 26201: { 26201: using _Sp = __shared_ptr<_Tp, _Lp>; 26201: return _Sp(__r, const_cast(__r.get())); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline __shared_ptr<_Tp, _Lp> 26201: dynamic_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) noexcept 26201: { 26201: using _Sp = __shared_ptr<_Tp, _Lp>; 26201: if (auto* __p = dynamic_cast(__r.get())) 26201: return _Sp(__r, __p); 26201: return _Sp(); 26201: } 26201: 26201: 26201: template 26201: inline __shared_ptr<_Tp, _Lp> 26201: reinterpret_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) noexcept 26201: { 26201: using _Sp = __shared_ptr<_Tp, _Lp>; 26201: return _Sp(__r, reinterpret_cast(__r.get())); 26201: } 26201: 26201: 26201: template 26201: class __weak_ptr 26201: { 26201: template 26201: using _Compatible = typename 26201: enable_if<__sp_compatible_with<_Yp*, _Tp*>::value, _Res>::type; 26201: 26201: 26201: template 26201: using _Assignable = _Compatible<_Yp, __weak_ptr&>; 26201: 26201: public: 26201: using element_type = typename remove_extent<_Tp>::type; 26201: 26201: constexpr __weak_ptr() noexcept 26201: : _M_ptr(nullptr), _M_refcount() 26201: { } 26201: 26201: __weak_ptr(const __weak_ptr&) noexcept = default; 26201: 26201: ~__weak_ptr() = default; 26201: # 1660 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr_base.h" 3 26201: template> 26201: __weak_ptr(const __weak_ptr<_Yp, _Lp>& __r) noexcept 26201: : _M_refcount(__r._M_refcount) 26201: { _M_ptr = __r.lock().get(); } 26201: 26201: template> 26201: __weak_ptr(const __shared_ptr<_Yp, _Lp>& __r) noexcept 26201: : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) 26201: { } 26201: 26201: __weak_ptr(__weak_ptr&& __r) noexcept 26201: : _M_ptr(__r._M_ptr), _M_refcount(std::move(__r._M_refcount)) 26201: { __r._M_ptr = nullptr; } 26201: 26201: template> 26201: __weak_ptr(__weak_ptr<_Yp, _Lp>&& __r) noexcept 26201: : _M_ptr(__r.lock().get()), _M_refcount(std::move(__r._M_refcount)) 26201: { __r._M_ptr = nullptr; } 26201: 26201: __weak_ptr& 26201: operator=(const __weak_ptr& __r) noexcept = default; 26201: 26201: template 26201: _Assignable<_Yp> 26201: operator=(const __weak_ptr<_Yp, _Lp>& __r) noexcept 26201: { 26201: _M_ptr = __r.lock().get(); 26201: _M_refcount = __r._M_refcount; 26201: return *this; 26201: } 26201: 26201: template 26201: _Assignable<_Yp> 26201: operator=(const __shared_ptr<_Yp, _Lp>& __r) noexcept 26201: { 26201: _M_ptr = __r._M_ptr; 26201: _M_refcount = __r._M_refcount; 26201: return *this; 26201: } 26201: 26201: __weak_ptr& 26201: operator=(__weak_ptr&& __r) noexcept 26201: { 26201: _M_ptr = __r._M_ptr; 26201: _M_refcount = std::move(__r._M_refcount); 26201: __r._M_ptr = nullptr; 26201: return *this; 26201: } 26201: 26201: template 26201: _Assignable<_Yp> 26201: operator=(__weak_ptr<_Yp, _Lp>&& __r) noexcept 26201: { 26201: _M_ptr = __r.lock().get(); 26201: _M_refcount = std::move(__r._M_refcount); 26201: __r._M_ptr = nullptr; 26201: return *this; 26201: } 26201: 26201: __shared_ptr<_Tp, _Lp> 26201: lock() const noexcept 26201: { return __shared_ptr(*this, std::nothrow); } 26201: 26201: long 26201: use_count() const noexcept 26201: { return _M_refcount._M_get_use_count(); } 26201: 26201: bool 26201: expired() const noexcept 26201: { return _M_refcount._M_get_use_count() == 0; } 26201: 26201: template 26201: bool 26201: owner_before(const __shared_ptr<_Tp1, _Lp>& __rhs) const noexcept 26201: { return _M_refcount._M_less(__rhs._M_refcount); } 26201: 26201: template 26201: bool 26201: owner_before(const __weak_ptr<_Tp1, _Lp>& __rhs) const noexcept 26201: { return _M_refcount._M_less(__rhs._M_refcount); } 26201: 26201: void 26201: reset() noexcept 26201: { __weak_ptr().swap(*this); } 26201: 26201: void 26201: swap(__weak_ptr& __s) noexcept 26201: { 26201: std::swap(_M_ptr, __s._M_ptr); 26201: _M_refcount._M_swap(__s._M_refcount); 26201: } 26201: 26201: private: 26201: 26201: void 26201: _M_assign(_Tp* __ptr, const __shared_count<_Lp>& __refcount) noexcept 26201: { 26201: if (use_count() == 0) 26201: { 26201: _M_ptr = __ptr; 26201: _M_refcount = __refcount; 26201: } 26201: } 26201: 26201: template friend class __shared_ptr; 26201: template friend class __weak_ptr; 26201: friend class __enable_shared_from_this<_Tp, _Lp>; 26201: friend class enable_shared_from_this<_Tp>; 26201: 26201: element_type* _M_ptr; 26201: __weak_count<_Lp> _M_refcount; 26201: }; 26201: 26201: 26201: template 26201: inline void 26201: swap(__weak_ptr<_Tp, _Lp>& __a, __weak_ptr<_Tp, _Lp>& __b) noexcept 26201: { __a.swap(__b); } 26201: 26201: template 26201: struct _Sp_owner_less : public binary_function<_Tp, _Tp, bool> 26201: { 26201: bool 26201: operator()(const _Tp& __lhs, const _Tp& __rhs) const noexcept 26201: { return __lhs.owner_before(__rhs); } 26201: 26201: bool 26201: operator()(const _Tp& __lhs, const _Tp1& __rhs) const noexcept 26201: { return __lhs.owner_before(__rhs); } 26201: 26201: bool 26201: operator()(const _Tp1& __lhs, const _Tp& __rhs) const noexcept 26201: { return __lhs.owner_before(__rhs); } 26201: }; 26201: 26201: template<> 26201: struct _Sp_owner_less 26201: { 26201: template 26201: auto 26201: operator()(const _Tp& __lhs, const _Up& __rhs) const noexcept 26201: -> decltype(__lhs.owner_before(__rhs)) 26201: { return __lhs.owner_before(__rhs); } 26201: 26201: using is_transparent = void; 26201: }; 26201: 26201: template 26201: struct owner_less<__shared_ptr<_Tp, _Lp>> 26201: : public _Sp_owner_less<__shared_ptr<_Tp, _Lp>, __weak_ptr<_Tp, _Lp>> 26201: { }; 26201: 26201: template 26201: struct owner_less<__weak_ptr<_Tp, _Lp>> 26201: : public _Sp_owner_less<__weak_ptr<_Tp, _Lp>, __shared_ptr<_Tp, _Lp>> 26201: { }; 26201: 26201: 26201: template 26201: class __enable_shared_from_this 26201: { 26201: protected: 26201: constexpr __enable_shared_from_this() noexcept { } 26201: 26201: __enable_shared_from_this(const __enable_shared_from_this&) noexcept { } 26201: 26201: __enable_shared_from_this& 26201: operator=(const __enable_shared_from_this&) noexcept 26201: { return *this; } 26201: 26201: ~__enable_shared_from_this() { } 26201: 26201: public: 26201: __shared_ptr<_Tp, _Lp> 26201: shared_from_this() 26201: { return __shared_ptr<_Tp, _Lp>(this->_M_weak_this); } 26201: 26201: __shared_ptr 26201: shared_from_this() const 26201: { return __shared_ptr(this->_M_weak_this); } 26201: 26201: 26201: __weak_ptr<_Tp, _Lp> 26201: weak_from_this() noexcept 26201: { return this->_M_weak_this; } 26201: 26201: __weak_ptr 26201: weak_from_this() const noexcept 26201: { return this->_M_weak_this; } 26201: 26201: 26201: private: 26201: template 26201: void 26201: _M_weak_assign(_Tp1* __p, const __shared_count<_Lp>& __n) const noexcept 26201: { _M_weak_this._M_assign(__p, __n); } 26201: 26201: friend const __enable_shared_from_this* 26201: __enable_shared_from_this_base(const __shared_count<_Lp>&, 26201: const __enable_shared_from_this* __p) 26201: { return __p; } 26201: 26201: template 26201: friend class __shared_ptr; 26201: 26201: mutable __weak_ptr<_Tp, _Lp> _M_weak_this; 26201: }; 26201: 26201: template 26201: inline __shared_ptr<_Tp, _Lp> 26201: __allocate_shared(const _Alloc& __a, _Args&&... __args) 26201: { 26201: static_assert(!is_array<_Tp>::value, "make_shared not supported"); 26201: 26201: return __shared_ptr<_Tp, _Lp>(_Sp_alloc_shared_tag<_Alloc>{__a}, 26201: std::forward<_Args>(__args)...); 26201: } 26201: 26201: template 26201: inline __shared_ptr<_Tp, _Lp> 26201: __make_shared(_Args&&... __args) 26201: { 26201: typedef typename std::remove_const<_Tp>::type _Tp_nc; 26201: return std::__allocate_shared<_Tp, _Lp>(std::allocator<_Tp_nc>(), 26201: std::forward<_Args>(__args)...); 26201: } 26201: 26201: 26201: template 26201: struct hash<__shared_ptr<_Tp, _Lp>> 26201: : public __hash_base> 26201: { 26201: size_t 26201: operator()(const __shared_ptr<_Tp, _Lp>& __s) const noexcept 26201: { 26201: return hash::element_type*>()( 26201: __s.get()); 26201: } 26201: }; 26201: 26201: 26201: } 26201: # 53 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr.h" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 67 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr.h" 3 26201: template 26201: inline std::basic_ostream<_Ch, _Tr>& 26201: operator<<(std::basic_ostream<_Ch, _Tr>& __os, 26201: const __shared_ptr<_Tp, _Lp>& __p) 26201: { 26201: __os << __p.get(); 26201: return __os; 26201: } 26201: 26201: template 26201: inline _Del* 26201: get_deleter(const __shared_ptr<_Tp, _Lp>& __p) noexcept 26201: { 26201: 26201: return static_cast<_Del*>(__p._M_get_deleter(typeid(_Del))); 26201: 26201: 26201: 26201: } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline _Del* 26201: get_deleter(const shared_ptr<_Tp>& __p) noexcept 26201: { 26201: 26201: return static_cast<_Del*>(__p._M_get_deleter(typeid(_Del))); 26201: 26201: 26201: 26201: } 26201: # 120 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr.h" 3 26201: template 26201: class shared_ptr : public __shared_ptr<_Tp> 26201: { 26201: template 26201: using _Constructible = typename enable_if< 26201: is_constructible<__shared_ptr<_Tp>, _Args...>::value 26201: >::type; 26201: 26201: template 26201: using _Assignable = typename enable_if< 26201: is_assignable<__shared_ptr<_Tp>&, _Arg>::value, shared_ptr& 26201: >::type; 26201: 26201: public: 26201: 26201: 26201: using element_type = typename __shared_ptr<_Tp>::element_type; 26201: 26201: 26201: #define __cpp_lib_shared_ptr_weak_type 201606 26201: 26201: using weak_type = weak_ptr<_Tp>; 26201: 26201: 26201: 26201: 26201: 26201: constexpr shared_ptr() noexcept : __shared_ptr<_Tp>() { } 26201: 26201: shared_ptr(const shared_ptr&) noexcept = default; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template> 26201: explicit 26201: shared_ptr(_Yp* __p) : __shared_ptr<_Tp>(__p) { } 26201: # 174 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr.h" 3 26201: template> 26201: shared_ptr(_Yp* __p, _Deleter __d) 26201: : __shared_ptr<_Tp>(__p, std::move(__d)) { } 26201: # 192 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr.h" 3 26201: template 26201: shared_ptr(nullptr_t __p, _Deleter __d) 26201: : __shared_ptr<_Tp>(__p, std::move(__d)) { } 26201: # 211 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr.h" 3 26201: template> 26201: shared_ptr(_Yp* __p, _Deleter __d, _Alloc __a) 26201: : __shared_ptr<_Tp>(__p, std::move(__d), std::move(__a)) { } 26201: # 231 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr.h" 3 26201: template 26201: shared_ptr(nullptr_t __p, _Deleter __d, _Alloc __a) 26201: : __shared_ptr<_Tp>(__p, std::move(__d), std::move(__a)) { } 26201: # 255 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr.h" 3 26201: template 26201: shared_ptr(const shared_ptr<_Yp>& __r, element_type* __p) noexcept 26201: : __shared_ptr<_Tp>(__r, __p) { } 26201: # 293 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr.h" 3 26201: template&>> 26201: shared_ptr(const shared_ptr<_Yp>& __r) noexcept 26201: : __shared_ptr<_Tp>(__r) { } 26201: 26201: 26201: 26201: 26201: 26201: 26201: shared_ptr(shared_ptr&& __r) noexcept 26201: : __shared_ptr<_Tp>(std::move(__r)) { } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template>> 26201: shared_ptr(shared_ptr<_Yp>&& __r) noexcept 26201: : __shared_ptr<_Tp>(std::move(__r)) { } 26201: # 323 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr.h" 3 26201: template&>> 26201: explicit shared_ptr(const weak_ptr<_Yp>& __r) 26201: : __shared_ptr<_Tp>(__r) { } 26201: 26201: 26201: #pragma GCC diagnostic push 26201: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 26201: template>> 26201: shared_ptr(auto_ptr<_Yp>&& __r); 26201: #pragma GCC diagnostic pop 26201: 26201: 26201: 26201: 26201: template>> 26201: shared_ptr(unique_ptr<_Yp, _Del>&& __r) 26201: : __shared_ptr<_Tp>(std::move(__r)) { } 26201: # 356 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr.h" 3 26201: constexpr shared_ptr(nullptr_t) noexcept : shared_ptr() { } 26201: 26201: shared_ptr& operator=(const shared_ptr&) noexcept = default; 26201: 26201: template 26201: _Assignable&> 26201: operator=(const shared_ptr<_Yp>& __r) noexcept 26201: { 26201: this->__shared_ptr<_Tp>::operator=(__r); 26201: return *this; 26201: } 26201: 26201: 26201: #pragma GCC diagnostic push 26201: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 26201: template 26201: _Assignable> 26201: operator=(auto_ptr<_Yp>&& __r) 26201: { 26201: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 26201: return *this; 26201: } 26201: #pragma GCC diagnostic pop 26201: 26201: 26201: shared_ptr& 26201: operator=(shared_ptr&& __r) noexcept 26201: { 26201: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 26201: return *this; 26201: } 26201: 26201: template 26201: _Assignable> 26201: operator=(shared_ptr<_Yp>&& __r) noexcept 26201: { 26201: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 26201: return *this; 26201: } 26201: 26201: template 26201: _Assignable> 26201: operator=(unique_ptr<_Yp, _Del>&& __r) 26201: { 26201: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 26201: return *this; 26201: } 26201: 26201: private: 26201: 26201: template 26201: shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args) 26201: : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...) 26201: { } 26201: 26201: template 26201: friend shared_ptr<_Yp> 26201: allocate_shared(const _Alloc& __a, _Args&&... __args); 26201: 26201: 26201: shared_ptr(const weak_ptr<_Tp>& __r, std::nothrow_t) 26201: : __shared_ptr<_Tp>(__r, std::nothrow) { } 26201: 26201: friend class weak_ptr<_Tp>; 26201: }; 26201: 26201: 26201: template 26201: shared_ptr(weak_ptr<_Tp>) -> shared_ptr<_Tp>; 26201: template 26201: shared_ptr(unique_ptr<_Tp, _Del>) -> shared_ptr<_Tp>; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator==(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 26201: { return __a.get() == __b.get(); } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator==(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 26201: { return !__a; } 26201: # 461 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr.h" 3 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator==(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 26201: { return !__a; } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator!=(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 26201: { return __a.get() != __b.get(); } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator!=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 26201: { return (bool)__a; } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator!=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 26201: { return (bool)__a; } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator<(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 26201: { 26201: using _Tp_elt = typename shared_ptr<_Tp>::element_type; 26201: using _Up_elt = typename shared_ptr<_Up>::element_type; 26201: using _Vp = typename common_type<_Tp_elt*, _Up_elt*>::type; 26201: return less<_Vp>()(__a.get(), __b.get()); 26201: } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator<(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 26201: { 26201: using _Tp_elt = typename shared_ptr<_Tp>::element_type; 26201: return less<_Tp_elt*>()(__a.get(), nullptr); 26201: } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator<(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 26201: { 26201: using _Tp_elt = typename shared_ptr<_Tp>::element_type; 26201: return less<_Tp_elt*>()(nullptr, __a.get()); 26201: } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator<=(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 26201: { return !(__b < __a); } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator<=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 26201: { return !(nullptr < __a); } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator<=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 26201: { return !(__a < nullptr); } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator>(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 26201: { return (__b < __a); } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator>(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 26201: { return nullptr < __a; } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator>(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 26201: { return __a < nullptr; } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator>=(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 26201: { return !(__a < __b); } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator>=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 26201: { return !(__a < nullptr); } 26201: 26201: 26201: template 26201: [[__nodiscard__]] inline bool 26201: operator>=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 26201: { return !(nullptr < __a); } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline void 26201: swap(shared_ptr<_Tp>& __a, shared_ptr<_Tp>& __b) noexcept 26201: { __a.swap(__b); } 26201: 26201: 26201: 26201: 26201: template 26201: inline shared_ptr<_Tp> 26201: static_pointer_cast(const shared_ptr<_Up>& __r) noexcept 26201: { 26201: using _Sp = shared_ptr<_Tp>; 26201: return _Sp(__r, static_cast(__r.get())); 26201: } 26201: 26201: 26201: template 26201: inline shared_ptr<_Tp> 26201: const_pointer_cast(const shared_ptr<_Up>& __r) noexcept 26201: { 26201: using _Sp = shared_ptr<_Tp>; 26201: return _Sp(__r, const_cast(__r.get())); 26201: } 26201: 26201: 26201: template 26201: inline shared_ptr<_Tp> 26201: dynamic_pointer_cast(const shared_ptr<_Up>& __r) noexcept 26201: { 26201: using _Sp = shared_ptr<_Tp>; 26201: if (auto* __p = dynamic_cast(__r.get())) 26201: return _Sp(__r, __p); 26201: return _Sp(); 26201: } 26201: 26201: 26201: 26201: template 26201: inline shared_ptr<_Tp> 26201: reinterpret_pointer_cast(const shared_ptr<_Up>& __r) noexcept 26201: { 26201: using _Sp = shared_ptr<_Tp>; 26201: return _Sp(__r, reinterpret_cast(__r.get())); 26201: } 26201: # 684 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr.h" 3 26201: template 26201: class weak_ptr : public __weak_ptr<_Tp> 26201: { 26201: template 26201: using _Constructible = typename enable_if< 26201: is_constructible<__weak_ptr<_Tp>, _Arg>::value 26201: >::type; 26201: 26201: template 26201: using _Assignable = typename enable_if< 26201: is_assignable<__weak_ptr<_Tp>&, _Arg>::value, weak_ptr& 26201: >::type; 26201: 26201: public: 26201: constexpr weak_ptr() noexcept = default; 26201: 26201: template&>> 26201: weak_ptr(const shared_ptr<_Yp>& __r) noexcept 26201: : __weak_ptr<_Tp>(__r) { } 26201: 26201: weak_ptr(const weak_ptr&) noexcept = default; 26201: 26201: template&>> 26201: weak_ptr(const weak_ptr<_Yp>& __r) noexcept 26201: : __weak_ptr<_Tp>(__r) { } 26201: 26201: weak_ptr(weak_ptr&&) noexcept = default; 26201: 26201: template>> 26201: weak_ptr(weak_ptr<_Yp>&& __r) noexcept 26201: : __weak_ptr<_Tp>(std::move(__r)) { } 26201: 26201: weak_ptr& 26201: operator=(const weak_ptr& __r) noexcept = default; 26201: 26201: template 26201: _Assignable&> 26201: operator=(const weak_ptr<_Yp>& __r) noexcept 26201: { 26201: this->__weak_ptr<_Tp>::operator=(__r); 26201: return *this; 26201: } 26201: 26201: template 26201: _Assignable&> 26201: operator=(const shared_ptr<_Yp>& __r) noexcept 26201: { 26201: this->__weak_ptr<_Tp>::operator=(__r); 26201: return *this; 26201: } 26201: 26201: weak_ptr& 26201: operator=(weak_ptr&& __r) noexcept = default; 26201: 26201: template 26201: _Assignable> 26201: operator=(weak_ptr<_Yp>&& __r) noexcept 26201: { 26201: this->__weak_ptr<_Tp>::operator=(std::move(__r)); 26201: return *this; 26201: } 26201: 26201: shared_ptr<_Tp> 26201: lock() const noexcept 26201: { return shared_ptr<_Tp>(*this, std::nothrow); } 26201: }; 26201: 26201: 26201: template 26201: weak_ptr(shared_ptr<_Tp>) -> weak_ptr<_Tp>; 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline void 26201: swap(weak_ptr<_Tp>& __a, weak_ptr<_Tp>& __b) noexcept 26201: { __a.swap(__b); } 26201: 26201: 26201: 26201: template 26201: struct owner_less; 26201: 26201: 26201: template<> 26201: struct owner_less : _Sp_owner_less 26201: { }; 26201: 26201: 26201: template 26201: struct owner_less> 26201: : public _Sp_owner_less, weak_ptr<_Tp>> 26201: { }; 26201: 26201: 26201: template 26201: struct owner_less> 26201: : public _Sp_owner_less, shared_ptr<_Tp>> 26201: { }; 26201: 26201: 26201: 26201: 26201: template 26201: class enable_shared_from_this 26201: { 26201: protected: 26201: constexpr enable_shared_from_this() noexcept { } 26201: 26201: enable_shared_from_this(const enable_shared_from_this&) noexcept { } 26201: 26201: enable_shared_from_this& 26201: operator=(const enable_shared_from_this&) noexcept 26201: { return *this; } 26201: 26201: ~enable_shared_from_this() { } 26201: 26201: public: 26201: shared_ptr<_Tp> 26201: shared_from_this() 26201: { return shared_ptr<_Tp>(this->_M_weak_this); } 26201: 26201: shared_ptr 26201: shared_from_this() const 26201: { return shared_ptr(this->_M_weak_this); } 26201: 26201: 26201: #define __cpp_lib_enable_shared_from_this 201603 26201: weak_ptr<_Tp> 26201: weak_from_this() noexcept 26201: { return this->_M_weak_this; } 26201: 26201: weak_ptr 26201: weak_from_this() const noexcept 26201: { return this->_M_weak_this; } 26201: 26201: 26201: private: 26201: template 26201: void 26201: _M_weak_assign(_Tp1* __p, const __shared_count<>& __n) const noexcept 26201: { _M_weak_this._M_assign(__p, __n); } 26201: 26201: 26201: friend const enable_shared_from_this* 26201: __enable_shared_from_this_base(const __shared_count<>&, 26201: const enable_shared_from_this* __p) 26201: { return __p; } 26201: 26201: template 26201: friend class __shared_ptr; 26201: 26201: mutable weak_ptr<_Tp> _M_weak_this; 26201: }; 26201: # 855 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr.h" 3 26201: template 26201: inline shared_ptr<_Tp> 26201: allocate_shared(const _Alloc& __a, _Args&&... __args) 26201: { 26201: static_assert(!is_array<_Tp>::value, "make_shared not supported"); 26201: 26201: return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a}, 26201: std::forward<_Args>(__args)...); 26201: } 26201: # 872 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr.h" 3 26201: template 26201: inline shared_ptr<_Tp> 26201: make_shared(_Args&&... __args) 26201: { 26201: typedef typename std::remove_cv<_Tp>::type _Tp_nc; 26201: return std::allocate_shared<_Tp>(std::allocator<_Tp_nc>(), 26201: std::forward<_Args>(__args)...); 26201: } 26201: 26201: 26201: template 26201: struct hash> 26201: : public __hash_base> 26201: { 26201: size_t 26201: operator()(const shared_ptr<_Tp>& __s) const noexcept 26201: { 26201: return std::hash::element_type*>()(__s.get()); 26201: } 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: namespace __detail::__variant 26201: { 26201: template struct _Never_valueless_alt; 26201: 26201: 26201: 26201: template 26201: struct _Never_valueless_alt> 26201: : std::true_type 26201: { }; 26201: 26201: 26201: 26201: template 26201: struct _Never_valueless_alt> 26201: : std::true_type 26201: { }; 26201: } 26201: 26201: 26201: 26201: } 26201: # 47 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_path.h" 2 3 26201: # 58 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_path.h" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: namespace filesystem 26201: { 26201: namespace __cxx11 { 26201: 26201: 26201: 26201: 26201: 26201: class path; 26201: 26201: 26201: namespace __detail 26201: { 26201: template 26201: using __is_encoded_char = __is_one_of, 26201: char, 26201: 26201: 26201: 26201: 26201: wchar_t, 26201: 26201: char16_t, char32_t>; 26201: 26201: template> 26201: using __is_path_iter_src 26201: = __and_<__is_encoded_char, 26201: std::is_base_of>; 26201: 26201: template 26201: static __is_path_iter_src<_Iter> 26201: __is_path_src(_Iter, int); 26201: 26201: template 26201: static __is_encoded_char<_CharT> 26201: __is_path_src(const basic_string<_CharT, _Traits, _Alloc>&, int); 26201: 26201: template 26201: static __is_encoded_char<_CharT> 26201: __is_path_src(const basic_string_view<_CharT, _Traits>&, int); 26201: 26201: template 26201: static std::false_type 26201: __is_path_src(const _Unknown&, ...); 26201: 26201: template 26201: struct __constructible_from; 26201: 26201: template 26201: struct __constructible_from<_Iter, _Iter> 26201: : __is_path_iter_src<_Iter> 26201: { }; 26201: 26201: template 26201: struct __constructible_from<_Source, void> 26201: : decltype(__is_path_src(std::declval(), 0)) 26201: { }; 26201: 26201: template 26201: using _Path = typename 26201: std::enable_if<__and_<__not_, path>>, 26201: __not_>>, 26201: __constructible_from<_Tp1, _Tp2>>::value, 26201: path>::type; 26201: 26201: template 26201: _Source 26201: _S_range_begin(_Source __begin) { return __begin; } 26201: 26201: struct __null_terminated { }; 26201: 26201: template 26201: __null_terminated 26201: _S_range_end(_Source) { return {}; } 26201: 26201: template 26201: inline const _CharT* 26201: _S_range_begin(const basic_string<_CharT, _Traits, _Alloc>& __str) 26201: { return __str.data(); } 26201: 26201: template 26201: inline const _CharT* 26201: _S_range_end(const basic_string<_CharT, _Traits, _Alloc>& __str) 26201: { return __str.data() + __str.size(); } 26201: 26201: template 26201: inline const _CharT* 26201: _S_range_begin(const basic_string_view<_CharT, _Traits>& __str) 26201: { return __str.data(); } 26201: 26201: template 26201: inline const _CharT* 26201: _S_range_end(const basic_string_view<_CharT, _Traits>& __str) 26201: { return __str.data() + __str.size(); } 26201: 26201: template())), 26201: typename _Val = typename std::iterator_traits<_Iter>::value_type, 26201: typename _UnqualVal = std::remove_const_t<_Val>> 26201: using __value_type_is_char 26201: = std::enable_if_t, 26201: _UnqualVal>; 26201: 26201: template())), 26201: typename _Val = typename std::iterator_traits<_Iter>::value_type, 26201: typename _UnqualVal = std::remove_const_t<_Val>> 26201: using __value_type_is_char_or_char8_t 26201: = std::enable_if_t<__or_v< 26201: std::is_same<_UnqualVal, char> 26201: 26201: 26201: 26201: >, 26201: _UnqualVal>; 26201: 26201: } 26201: 26201: 26201: 26201: class path 26201: { 26201: public: 26201: # 195 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_path.h" 3 26201: using value_type = char; 26201: 26201: static constexpr value_type preferred_separator = '/'; 26201: 26201: using string_type = std::basic_string; 26201: 26201: 26201: enum format : unsigned char { native_format, generic_format, auto_format }; 26201: 26201: 26201: 26201: path() noexcept { } 26201: 26201: path(const path& __p) = default; 26201: 26201: path(path&& __p) 26201: 26201: noexcept 26201: 26201: : _M_pathname(std::move(__p._M_pathname)), 26201: _M_cmpts(std::move(__p._M_cmpts)) 26201: { __p.clear(); } 26201: 26201: path(string_type&& __source, format = auto_format) 26201: : _M_pathname(std::move(__source)) 26201: { _M_split_cmpts(); } 26201: 26201: template> 26201: path(_Source const& __source, format = auto_format) 26201: : _M_pathname(_S_convert(__detail::_S_range_begin(__source), 26201: __detail::_S_range_end(__source))) 26201: { _M_split_cmpts(); } 26201: 26201: template> 26201: path(_InputIterator __first, _InputIterator __last, format = auto_format) 26201: : _M_pathname(_S_convert(__first, __last)) 26201: { _M_split_cmpts(); } 26201: 26201: template, 26201: typename _Require2 = __detail::__value_type_is_char<_Source>> 26201: path(_Source const& __source, const locale& __loc, format = auto_format) 26201: : _M_pathname(_S_convert_loc(__detail::_S_range_begin(__source), 26201: __detail::_S_range_end(__source), __loc)) 26201: { _M_split_cmpts(); } 26201: 26201: template, 26201: typename _Require2 = __detail::__value_type_is_char<_InputIterator>> 26201: path(_InputIterator __first, _InputIterator __last, const locale& __loc, 26201: format = auto_format) 26201: : _M_pathname(_S_convert_loc(__first, __last, __loc)) 26201: { _M_split_cmpts(); } 26201: 26201: ~path() = default; 26201: 26201: 26201: 26201: path& operator=(const path&); 26201: path& operator=(path&&) noexcept; 26201: path& operator=(string_type&& __source); 26201: path& assign(string_type&& __source); 26201: 26201: template 26201: __detail::_Path<_Source>& 26201: operator=(_Source const& __source) 26201: { return *this = path(__source); } 26201: 26201: template 26201: __detail::_Path<_Source>& 26201: assign(_Source const& __source) 26201: { return *this = path(__source); } 26201: 26201: template 26201: __detail::_Path<_InputIterator, _InputIterator>& 26201: assign(_InputIterator __first, _InputIterator __last) 26201: { return *this = path(__first, __last); } 26201: 26201: 26201: 26201: path& operator/=(const path& __p); 26201: 26201: template 26201: __detail::_Path<_Source>& 26201: operator/=(_Source const& __source) 26201: { 26201: _M_append(_S_convert(__detail::_S_range_begin(__source), 26201: __detail::_S_range_end(__source))); 26201: return *this; 26201: } 26201: 26201: template 26201: __detail::_Path<_Source>& 26201: append(_Source const& __source) 26201: { 26201: _M_append(_S_convert(__detail::_S_range_begin(__source), 26201: __detail::_S_range_end(__source))); 26201: return *this; 26201: } 26201: 26201: template 26201: __detail::_Path<_InputIterator, _InputIterator>& 26201: append(_InputIterator __first, _InputIterator __last) 26201: { 26201: _M_append(_S_convert(__first, __last)); 26201: return *this; 26201: } 26201: 26201: 26201: 26201: path& operator+=(const path& __x); 26201: path& operator+=(const string_type& __x); 26201: path& operator+=(const value_type* __x); 26201: path& operator+=(value_type __x); 26201: path& operator+=(basic_string_view __x); 26201: 26201: template 26201: __detail::_Path<_Source>& 26201: operator+=(_Source const& __x) { return concat(__x); } 26201: 26201: template 26201: __detail::_Path<_CharT*, _CharT*>& 26201: operator+=(_CharT __x); 26201: 26201: template 26201: __detail::_Path<_Source>& 26201: concat(_Source const& __x) 26201: { 26201: _M_concat(_S_convert(__detail::_S_range_begin(__x), 26201: __detail::_S_range_end(__x))); 26201: return *this; 26201: } 26201: 26201: template 26201: __detail::_Path<_InputIterator, _InputIterator>& 26201: concat(_InputIterator __first, _InputIterator __last) 26201: { 26201: _M_concat(_S_convert(__first, __last)); 26201: return *this; 26201: } 26201: 26201: 26201: 26201: void clear() noexcept { _M_pathname.clear(); _M_split_cmpts(); } 26201: 26201: path& make_preferred(); 26201: path& remove_filename(); 26201: path& replace_filename(const path& __replacement); 26201: path& replace_extension(const path& __replacement = path()); 26201: 26201: void swap(path& __rhs) noexcept; 26201: 26201: 26201: 26201: const string_type& native() const noexcept { return _M_pathname; } 26201: const value_type* c_str() const noexcept { return _M_pathname.c_str(); } 26201: operator string_type() const { return _M_pathname; } 26201: 26201: template, 26201: typename _Allocator = std::allocator<_CharT>> 26201: std::basic_string<_CharT, _Traits, _Allocator> 26201: string(const _Allocator& __a = _Allocator()) const; 26201: 26201: std::string string() const; 26201: 26201: std::wstring wstring() const; 26201: 26201: 26201: 26201: 26201: 26201: std::string u8string() const; 26201: 26201: std::u16string u16string() const; 26201: std::u32string u32string() const; 26201: 26201: 26201: template, 26201: typename _Allocator = std::allocator<_CharT>> 26201: std::basic_string<_CharT, _Traits, _Allocator> 26201: generic_string(const _Allocator& __a = _Allocator()) const; 26201: 26201: std::string generic_string() const; 26201: 26201: std::wstring generic_wstring() const; 26201: 26201: 26201: 26201: 26201: 26201: std::string generic_u8string() const; 26201: 26201: std::u16string generic_u16string() const; 26201: std::u32string generic_u32string() const; 26201: 26201: 26201: 26201: int compare(const path& __p) const noexcept; 26201: int compare(const string_type& __s) const noexcept; 26201: int compare(const value_type* __s) const noexcept; 26201: int compare(basic_string_view __s) const noexcept; 26201: 26201: 26201: 26201: path root_name() const; 26201: path root_directory() const; 26201: path root_path() const; 26201: path relative_path() const; 26201: path parent_path() const; 26201: path filename() const; 26201: path stem() const; 26201: path extension() const; 26201: 26201: 26201: 26201: [[nodiscard]] bool empty() const noexcept { return _M_pathname.empty(); } 26201: bool has_root_name() const noexcept; 26201: bool has_root_directory() const noexcept; 26201: bool has_root_path() const noexcept; 26201: bool has_relative_path() const noexcept; 26201: bool has_parent_path() const noexcept; 26201: bool has_filename() const noexcept; 26201: bool has_stem() const noexcept; 26201: bool has_extension() const noexcept; 26201: bool is_absolute() const noexcept; 26201: bool is_relative() const noexcept { return !is_absolute(); } 26201: 26201: 26201: path lexically_normal() const; 26201: path lexically_relative(const path& base) const; 26201: path lexically_proximate(const path& base) const; 26201: 26201: 26201: class iterator; 26201: using const_iterator = iterator; 26201: 26201: iterator begin() const; 26201: iterator end() const; 26201: 26201: 26201: template 26201: friend std::basic_ostream<_CharT, _Traits>& 26201: operator<<(std::basic_ostream<_CharT, _Traits>& __os, const path& __p) 26201: { 26201: __os << std::quoted(__p.string<_CharT, _Traits>()); 26201: return __os; 26201: } 26201: 26201: 26201: template 26201: friend std::basic_istream<_CharT, _Traits>& 26201: operator>>(std::basic_istream<_CharT, _Traits>& __is, path& __p) 26201: { 26201: std::basic_string<_CharT, _Traits> __tmp; 26201: if (__is >> std::quoted(__tmp)) 26201: __p = std::move(__tmp); 26201: return __is; 26201: } 26201: 26201: 26201: 26201: 26201: friend bool operator==(const path& __lhs, const path& __rhs) noexcept 26201: { return __lhs.compare(__rhs) == 0; } 26201: # 469 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_path.h" 3 26201: friend bool operator!=(const path& __lhs, const path& __rhs) noexcept 26201: { return !(__lhs == __rhs); } 26201: 26201: 26201: friend bool operator<(const path& __lhs, const path& __rhs) noexcept 26201: { return __lhs.compare(__rhs) < 0; } 26201: 26201: 26201: friend bool operator<=(const path& __lhs, const path& __rhs) noexcept 26201: { return !(__rhs < __lhs); } 26201: 26201: 26201: friend bool operator>(const path& __lhs, const path& __rhs) noexcept 26201: { return __rhs < __lhs; } 26201: 26201: 26201: friend bool operator>=(const path& __lhs, const path& __rhs) noexcept 26201: { return !(__lhs < __rhs); } 26201: 26201: 26201: 26201: friend path operator/(const path& __lhs, const path& __rhs) 26201: { 26201: path __result(__lhs); 26201: __result /= __rhs; 26201: return __result; 26201: } 26201: 26201: 26201: 26201: template, 26201: typename _CharT 26201: = typename std::remove_cv_t> 26201: static std::basic_string<_CharT> 26201: _S_string_from_iter(_InputIterator __source) 26201: { 26201: std::basic_string<_CharT> __str; 26201: for (_CharT __ch = *__source; __ch != _CharT(); __ch = *++__source) 26201: __str.push_back(__ch); 26201: return __str; 26201: } 26201: 26201: 26201: private: 26201: enum class _Type : unsigned char { 26201: _Multi = 0, _Root_name, _Root_dir, _Filename 26201: }; 26201: 26201: path(basic_string_view __str, _Type __type) 26201: : _M_pathname(__str) 26201: { 26201: ; 26201: _M_cmpts.type(__type); 26201: } 26201: 26201: enum class _Split { _Stem, _Extension }; 26201: 26201: void _M_append(basic_string_view); 26201: void _M_concat(basic_string_view); 26201: 26201: pair _M_find_extension() const noexcept; 26201: 26201: template 26201: struct _Cvt; 26201: 26201: static basic_string_view 26201: _S_convert(value_type* __src, __detail::__null_terminated) 26201: { return __src; } 26201: 26201: static basic_string_view 26201: _S_convert(const value_type* __src, __detail::__null_terminated) 26201: { return __src; } 26201: 26201: static basic_string_view 26201: _S_convert(value_type* __first, value_type* __last) 26201: { return {__first, __last - __first}; } 26201: 26201: static basic_string_view 26201: _S_convert(const value_type* __first, const value_type* __last) 26201: { return {__first, __last - __first}; } 26201: 26201: template 26201: static string_type 26201: _S_convert(_Iter __first, _Iter __last) 26201: { 26201: using __value_type = typename std::iterator_traits<_Iter>::value_type; 26201: return _Cvt::type>:: 26201: _S_convert(__first, __last); 26201: } 26201: 26201: template 26201: static string_type 26201: _S_convert(_InputIterator __src, __detail::__null_terminated) 26201: { 26201: 26201: auto __s = _S_string_from_iter(__src); 26201: 26201: return string_type(_S_convert(__s.data(), __s.data() + __s.size())); 26201: } 26201: 26201: static string_type 26201: _S_convert_loc(const char* __first, const char* __last, 26201: const std::locale& __loc); 26201: 26201: template 26201: static string_type 26201: _S_convert_loc(_Iter __first, _Iter __last, const std::locale& __loc) 26201: { 26201: const std::string __str(__first, __last); 26201: return _S_convert_loc(__str.data(), __str.data()+__str.size(), __loc); 26201: } 26201: 26201: template 26201: static string_type 26201: _S_convert_loc(_InputIterator __src, __detail::__null_terminated, 26201: const std::locale& __loc) 26201: { 26201: const std::string __s = _S_string_from_iter(__src); 26201: return _S_convert_loc(__s.data(), __s.data() + __s.size(), __loc); 26201: } 26201: 26201: template 26201: static basic_string<_CharT, _Traits, _Allocator> 26201: _S_str_convert(basic_string_view, const _Allocator&); 26201: 26201: void _M_split_cmpts(); 26201: 26201: _Type _M_type() const noexcept { return _M_cmpts.type(); } 26201: 26201: string_type _M_pathname; 26201: 26201: struct _Cmpt; 26201: 26201: struct _List 26201: { 26201: using value_type = _Cmpt; 26201: using iterator = value_type*; 26201: using const_iterator = const value_type*; 26201: 26201: _List(); 26201: _List(const _List&); 26201: _List(_List&&) = default; 26201: _List& operator=(const _List&); 26201: _List& operator=(_List&&) = default; 26201: ~_List() = default; 26201: 26201: _Type type() const noexcept 26201: { return _Type(reinterpret_cast(_M_impl.get()) & 0x3); } 26201: 26201: void type(_Type) noexcept; 26201: 26201: int size() const noexcept; 26201: bool empty() const noexcept; 26201: void clear(); 26201: void swap(_List& __l) noexcept { _M_impl.swap(__l._M_impl); } 26201: int capacity() const noexcept; 26201: void reserve(int, bool); 26201: 26201: 26201: 26201: 26201: iterator begin() noexcept; 26201: iterator end() noexcept; 26201: const_iterator begin() const noexcept; 26201: const_iterator end() const noexcept; 26201: 26201: value_type& front() noexcept; 26201: value_type& back() noexcept; 26201: const value_type& front() const noexcept; 26201: const value_type& back() const noexcept; 26201: 26201: void pop_back(); 26201: void _M_erase_from(const_iterator __pos); 26201: 26201: struct _Impl; 26201: struct _Impl_deleter 26201: { 26201: void operator()(_Impl*) const noexcept; 26201: }; 26201: unique_ptr<_Impl, _Impl_deleter> _M_impl; 26201: }; 26201: _List _M_cmpts; 26201: 26201: struct _Parser; 26201: }; 26201: 26201: 26201: 26201: inline void swap(path& __lhs, path& __rhs) noexcept { __lhs.swap(__rhs); } 26201: 26201: size_t hash_value(const path& __p) noexcept; 26201: 26201: 26201: 26201: 26201: class filesystem_error : public std::system_error 26201: { 26201: public: 26201: filesystem_error(const string& __what_arg, error_code __ec); 26201: 26201: filesystem_error(const string& __what_arg, const path& __p1, 26201: error_code __ec); 26201: 26201: filesystem_error(const string& __what_arg, const path& __p1, 26201: const path& __p2, error_code __ec); 26201: 26201: filesystem_error(const filesystem_error&) = default; 26201: filesystem_error& operator=(const filesystem_error&) = default; 26201: 26201: 26201: 26201: 26201: ~filesystem_error(); 26201: 26201: const path& path1() const noexcept; 26201: const path& path2() const noexcept; 26201: const char* what() const noexcept; 26201: 26201: private: 26201: struct _Impl; 26201: std::__shared_ptr _M_impl; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: template, 26201: typename _CharT 26201: = __detail::__value_type_is_char_or_char8_t<_InputIterator>> 26201: inline path 26201: u8path(_InputIterator __first, _InputIterator __last) 26201: { 26201: # 730 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_path.h" 3 26201: return path{ __first, __last }; 26201: 26201: } 26201: 26201: 26201: 26201: 26201: 26201: template, 26201: typename _CharT = __detail::__value_type_is_char_or_char8_t<_Source>> 26201: inline path 26201: u8path(const _Source& __source) 26201: { 26201: # 761 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_path.h" 3 26201: return path{ __source }; 26201: 26201: } 26201: 26201: 26201: 26201: struct path::_Cmpt : path 26201: { 26201: _Cmpt(basic_string_view __s, _Type __t, size_t __pos) 26201: : path(__s, __t), _M_pos(__pos) { } 26201: 26201: _Cmpt() : _M_pos(-1) { } 26201: 26201: size_t _M_pos; 26201: }; 26201: 26201: 26201: template<> 26201: struct path::_Cvt 26201: { 26201: template 26201: static string_type 26201: _S_convert(_Iter __first, _Iter __last) 26201: { return string_type{__first, __last}; } 26201: }; 26201: # 799 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_path.h" 3 26201: template 26201: struct path::_Cvt 26201: { 26201: static string_type 26201: _S_convert(const _CharT* __f, const _CharT* __l) 26201: { 26201: # 839 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_path.h" 3 26201: struct _UCvt : std::codecvt<_CharT, char, std::mbstate_t> 26201: { } __cvt; 26201: std::string __str; 26201: if (__str_codecvt_out_all(__f, __l, __str, __cvt)) 26201: return __str; 26201: 26201: (throw (filesystem_error( "Cannot convert character sequence", std::make_error_code(errc::illegal_byte_sequence)))) 26201: 26201: ; 26201: } 26201: 26201: static string_type 26201: _S_convert(_CharT* __f, _CharT* __l) 26201: { 26201: return _S_convert(const_cast(__f), 26201: const_cast(__l)); 26201: } 26201: 26201: template 26201: static string_type 26201: _S_convert(_Iter __first, _Iter __last) 26201: { 26201: const std::basic_string<_CharT> __str(__first, __last); 26201: return _S_convert(__str.data(), __str.data() + __str.size()); 26201: } 26201: 26201: template 26201: static string_type 26201: _S_convert(__gnu_cxx::__normal_iterator<_Iter, _Cont> __first, 26201: __gnu_cxx::__normal_iterator<_Iter, _Cont> __last) 26201: { return _S_convert(__first.base(), __last.base()); } 26201: }; 26201: 26201: 26201: 26201: 26201: class path::iterator 26201: { 26201: public: 26201: using difference_type = std::ptrdiff_t; 26201: using value_type = path; 26201: using reference = const path&; 26201: using pointer = const path*; 26201: using iterator_category = std::bidirectional_iterator_tag; 26201: 26201: iterator() : _M_path(nullptr), _M_cur(), _M_at_end() { } 26201: 26201: iterator(const iterator&) = default; 26201: iterator& operator=(const iterator&) = default; 26201: 26201: reference operator*() const; 26201: pointer operator->() const { return std::__addressof(**this); } 26201: 26201: iterator& operator++(); 26201: iterator operator++(int) { auto __tmp = *this; ++*this; return __tmp; } 26201: 26201: iterator& operator--(); 26201: iterator operator--(int) { auto __tmp = *this; --*this; return __tmp; } 26201: 26201: friend bool operator==(const iterator& __lhs, const iterator& __rhs) 26201: { return __lhs._M_equals(__rhs); } 26201: 26201: friend bool operator!=(const iterator& __lhs, const iterator& __rhs) 26201: { return !__lhs._M_equals(__rhs); } 26201: 26201: private: 26201: friend class path; 26201: 26201: bool _M_is_multi() const { return _M_path->_M_type() == _Type::_Multi; } 26201: 26201: friend difference_type 26201: __path_iter_distance(const iterator& __first, const iterator& __last) 26201: { 26201: ; 26201: ; 26201: if (__first._M_is_multi()) 26201: return std::distance(__first._M_cur, __last._M_cur); 26201: else if (__first._M_at_end == __last._M_at_end) 26201: return 0; 26201: else 26201: return __first._M_at_end ? -1 : 1; 26201: } 26201: 26201: friend void 26201: __path_iter_advance(iterator& __i, difference_type __n) 26201: { 26201: if (__n == 1) 26201: ++__i; 26201: else if (__n == -1) 26201: --__i; 26201: else if (__n != 0) 26201: { 26201: ; 26201: ; 26201: 26201: __i._M_cur += __n; 26201: } 26201: } 26201: 26201: iterator(const path* __path, path::_List::const_iterator __iter) 26201: : _M_path(__path), _M_cur(__iter), _M_at_end() 26201: { } 26201: 26201: iterator(const path* __path, bool __at_end) 26201: : _M_path(__path), _M_cur(), _M_at_end(__at_end) 26201: { } 26201: 26201: bool _M_equals(iterator) const; 26201: 26201: const path* _M_path; 26201: path::_List::const_iterator _M_cur; 26201: bool _M_at_end; 26201: }; 26201: 26201: 26201: inline path& 26201: path::operator=(path&& __p) noexcept 26201: { 26201: if (&__p == this) [[__unlikely__]] 26201: return *this; 26201: 26201: _M_pathname = std::move(__p._M_pathname); 26201: _M_cmpts = std::move(__p._M_cmpts); 26201: __p.clear(); 26201: return *this; 26201: } 26201: 26201: inline path& 26201: path::operator=(string_type&& __source) 26201: { return *this = path(std::move(__source)); } 26201: 26201: inline path& 26201: path::assign(string_type&& __source) 26201: { return *this = path(std::move(__source)); } 26201: 26201: inline path& 26201: path::operator+=(const string_type& __x) 26201: { 26201: _M_concat(__x); 26201: return *this; 26201: } 26201: 26201: inline path& 26201: path::operator+=(const value_type* __x) 26201: { 26201: _M_concat(__x); 26201: return *this; 26201: } 26201: 26201: inline path& 26201: path::operator+=(value_type __x) 26201: { 26201: _M_concat(basic_string_view(&__x, 1)); 26201: return *this; 26201: } 26201: 26201: inline path& 26201: path::operator+=(basic_string_view __x) 26201: { 26201: _M_concat(__x); 26201: return *this; 26201: } 26201: 26201: template 26201: inline __detail::_Path<_CharT*, _CharT*>& 26201: path::operator+=(_CharT __x) 26201: { 26201: auto* __addr = std::__addressof(__x); 26201: return concat(__addr, __addr + 1); 26201: } 26201: 26201: inline path& 26201: path::make_preferred() 26201: { 26201: 26201: 26201: 26201: 26201: return *this; 26201: } 26201: 26201: inline void path::swap(path& __rhs) noexcept 26201: { 26201: _M_pathname.swap(__rhs._M_pathname); 26201: _M_cmpts.swap(__rhs._M_cmpts); 26201: } 26201: 26201: 26201: template 26201: std::basic_string<_CharT, _Traits, _Allocator> 26201: path::_S_str_convert(basic_string_view __str, 26201: const _Allocator& __a) 26201: { 26201: static_assert(!is_same_v<_CharT, value_type>); 26201: 26201: using _WString = basic_string<_CharT, _Traits, _Allocator>; 26201: 26201: if (__str.size() == 0) 26201: return _WString(__a); 26201: # 1057 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_path.h" 3 26201: const value_type* __first = __str.data(); 26201: const value_type* __last = __first + __str.size(); 26201: # 1067 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_path.h" 3 26201: { 26201: 26201: _WString __wstr(__a); 26201: struct _UCvt : std::codecvt<_CharT, char, std::mbstate_t> { } __cvt; 26201: if (__str_codecvt_in_all(__first, __last, __wstr, __cvt)) 26201: return __wstr; 26201: } 26201: 26201: 26201: 26201: 26201: (throw (filesystem_error( "Cannot convert character sequence", std::make_error_code(errc::illegal_byte_sequence)))) 26201: 26201: ; 26201: } 26201: 26201: 26201: template 26201: inline basic_string<_CharT, _Traits, _Allocator> 26201: path::string(const _Allocator& __a) const 26201: { 26201: if constexpr (is_same_v<_CharT, value_type>) 26201: return { _M_pathname.c_str(), _M_pathname.length(), __a }; 26201: else 26201: return _S_str_convert<_CharT, _Traits>(_M_pathname, __a); 26201: } 26201: 26201: inline std::string 26201: path::string() const { return string(); } 26201: 26201: 26201: inline std::wstring 26201: path::wstring() const { return string(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline std::string 26201: path::u8string() const 26201: { 26201: # 1121 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_path.h" 3 26201: return _M_pathname; 26201: 26201: } 26201: 26201: 26201: inline std::u16string 26201: path::u16string() const { return string(); } 26201: 26201: inline std::u32string 26201: path::u32string() const { return string(); } 26201: 26201: template 26201: inline std::basic_string<_CharT, _Traits, _Allocator> 26201: path::generic_string(const _Allocator& __a) const 26201: { 26201: 26201: 26201: 26201: const value_type __slash = '/'; 26201: 26201: using _Alloc2 = typename allocator_traits<_Allocator>::template 26201: rebind_alloc; 26201: basic_string, _Alloc2> __str(__a); 26201: 26201: if (_M_type() == _Type::_Root_dir) 26201: __str.assign(1, __slash); 26201: else 26201: { 26201: __str.reserve(_M_pathname.size()); 26201: bool __add_slash = false; 26201: for (auto& __elem : *this) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: if (__add_slash) 26201: __str += __slash; 26201: __str += basic_string_view(__elem._M_pathname); 26201: __add_slash = __elem._M_type() == _Type::_Filename; 26201: } 26201: } 26201: 26201: if constexpr (is_same_v<_CharT, value_type>) 26201: return __str; 26201: else 26201: return _S_str_convert<_CharT, _Traits>(__str, __a); 26201: } 26201: 26201: inline std::string 26201: path::generic_string() const 26201: { return generic_string(); } 26201: 26201: 26201: inline std::wstring 26201: path::generic_wstring() const 26201: { return generic_string(); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline std::string 26201: path::generic_u8string() const 26201: { return generic_string(); } 26201: 26201: 26201: inline std::u16string 26201: path::generic_u16string() const 26201: { return generic_string(); } 26201: 26201: inline std::u32string 26201: path::generic_u32string() const 26201: { return generic_string(); } 26201: 26201: inline int 26201: path::compare(const string_type& __s) const noexcept 26201: { return compare(basic_string_view(__s)); } 26201: 26201: inline int 26201: path::compare(const value_type* __s) const noexcept 26201: { return compare(basic_string_view(__s)); } 26201: 26201: inline path 26201: path::filename() const 26201: { 26201: if (empty()) 26201: return {}; 26201: else if (_M_type() == _Type::_Filename) 26201: return *this; 26201: else if (_M_type() == _Type::_Multi) 26201: { 26201: if (_M_pathname.back() == preferred_separator) 26201: return {}; 26201: auto& __last = *--end(); 26201: if (__last._M_type() == _Type::_Filename) 26201: return __last; 26201: } 26201: return {}; 26201: } 26201: 26201: inline path 26201: path::stem() const 26201: { 26201: auto ext = _M_find_extension(); 26201: if (ext.first && ext.second != 0) 26201: return path{ext.first->substr(0, ext.second)}; 26201: return {}; 26201: } 26201: 26201: inline path 26201: path::extension() const 26201: { 26201: auto ext = _M_find_extension(); 26201: if (ext.first && ext.second != string_type::npos) 26201: return path{ext.first->substr(ext.second)}; 26201: return {}; 26201: } 26201: 26201: inline bool 26201: path::has_stem() const noexcept 26201: { 26201: auto ext = _M_find_extension(); 26201: return ext.first && ext.second != 0; 26201: } 26201: 26201: inline bool 26201: path::has_extension() const noexcept 26201: { 26201: auto ext = _M_find_extension(); 26201: return ext.first && ext.second != string_type::npos; 26201: } 26201: 26201: inline bool 26201: path::is_absolute() const noexcept 26201: { 26201: 26201: 26201: 26201: return has_root_directory(); 26201: 26201: } 26201: 26201: inline path::iterator 26201: path::begin() const 26201: { 26201: if (_M_type() == _Type::_Multi) 26201: return iterator(this, _M_cmpts.begin()); 26201: return iterator(this, empty()); 26201: } 26201: 26201: inline path::iterator 26201: path::end() const 26201: { 26201: if (_M_type() == _Type::_Multi) 26201: return iterator(this, _M_cmpts.end()); 26201: return iterator(this, true); 26201: } 26201: 26201: inline path::iterator& 26201: path::iterator::operator++() 26201: { 26201: ; 26201: if (_M_path->_M_type() == _Type::_Multi) 26201: { 26201: ; 26201: ++_M_cur; 26201: } 26201: else 26201: { 26201: ; 26201: _M_at_end = true; 26201: } 26201: return *this; 26201: } 26201: 26201: inline path::iterator& 26201: path::iterator::operator--() 26201: { 26201: ; 26201: if (_M_path->_M_type() == _Type::_Multi) 26201: { 26201: ; 26201: --_M_cur; 26201: } 26201: else 26201: { 26201: ; 26201: _M_at_end = false; 26201: } 26201: return *this; 26201: } 26201: 26201: inline path::iterator::reference 26201: path::iterator::operator*() const 26201: { 26201: ; 26201: if (_M_path->_M_type() == _Type::_Multi) 26201: { 26201: ; 26201: return *_M_cur; 26201: } 26201: return *_M_path; 26201: } 26201: 26201: inline bool 26201: path::iterator::_M_equals(iterator __rhs) const 26201: { 26201: if (_M_path != __rhs._M_path) 26201: return false; 26201: if (_M_path == nullptr) 26201: return true; 26201: if (_M_path->_M_type() == path::_Type::_Multi) 26201: return _M_cur == __rhs._M_cur; 26201: return _M_at_end == __rhs._M_at_end; 26201: } 26201: 26201: 26201: } 26201: } 26201: 26201: inline ptrdiff_t 26201: distance(filesystem::path::iterator __first, filesystem::path::iterator __last) 26201: { return __path_iter_distance(__first, __last); } 26201: 26201: template 26201: void 26201: advance(filesystem::path::iterator& __i, _Distance __n) 26201: { __path_iter_advance(__i, static_cast(__n)); } 26201: 26201: extern template class __shared_ptr; 26201: 26201: 26201: } 26201: # 46 "/usr/x86_64-linux-gnu/include/c++/10/filesystem" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_dir.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_dir.h" 3 26201: #define _GLIBCXX_FS_DIR_H 1 26201: # 43 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_dir.h" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: namespace filesystem 26201: { 26201: 26201: 26201: 26201: 26201: 26201: class file_status 26201: { 26201: public: 26201: 26201: file_status() noexcept : file_status(file_type::none) {} 26201: 26201: explicit 26201: file_status(file_type __ft, perms __prms = perms::unknown) noexcept 26201: : _M_type(__ft), _M_perms(__prms) { } 26201: 26201: file_status(const file_status&) noexcept = default; 26201: file_status(file_status&&) noexcept = default; 26201: ~file_status() = default; 26201: 26201: file_status& operator=(const file_status&) noexcept = default; 26201: file_status& operator=(file_status&&) noexcept = default; 26201: 26201: 26201: file_type type() const noexcept { return _M_type; } 26201: perms permissions() const noexcept { return _M_perms; } 26201: 26201: 26201: void type(file_type __ft) noexcept { _M_type = __ft; } 26201: void permissions(perms __prms) noexcept { _M_perms = __prms; } 26201: 26201: 26201: 26201: 26201: 26201: 26201: private: 26201: file_type _M_type; 26201: perms _M_perms; 26201: }; 26201: 26201: namespace __cxx11 { 26201: 26201: struct _Dir; 26201: class directory_iterator; 26201: class recursive_directory_iterator; 26201: 26201: 26201: class directory_entry 26201: { 26201: public: 26201: 26201: directory_entry() noexcept = default; 26201: directory_entry(const directory_entry&) = default; 26201: directory_entry(directory_entry&&) noexcept = default; 26201: 26201: explicit 26201: directory_entry(const filesystem::path& __p) 26201: : _M_path(__p) 26201: { refresh(); } 26201: 26201: directory_entry(const filesystem::path& __p, error_code& __ec) 26201: : _M_path(__p) 26201: { 26201: refresh(__ec); 26201: if (__ec) 26201: _M_path.clear(); 26201: } 26201: 26201: ~directory_entry() = default; 26201: 26201: 26201: directory_entry& operator=(const directory_entry&) = default; 26201: directory_entry& operator=(directory_entry&&) noexcept = default; 26201: 26201: void 26201: assign(const filesystem::path& __p) 26201: { 26201: _M_path = __p; 26201: refresh(); 26201: } 26201: 26201: void 26201: assign(const filesystem::path& __p, error_code& __ec) 26201: { 26201: _M_path = __p; 26201: refresh(__ec); 26201: } 26201: 26201: void 26201: replace_filename(const filesystem::path& __p) 26201: { 26201: _M_path.replace_filename(__p); 26201: refresh(); 26201: } 26201: 26201: void 26201: replace_filename(const filesystem::path& __p, error_code& __ec) 26201: { 26201: _M_path.replace_filename(__p); 26201: refresh(__ec); 26201: } 26201: 26201: void 26201: refresh() 26201: { _M_type = symlink_status().type(); } 26201: 26201: void 26201: refresh(error_code& __ec) noexcept 26201: { _M_type = symlink_status(__ec).type(); } 26201: 26201: 26201: const filesystem::path& path() const noexcept { return _M_path; } 26201: operator const filesystem::path& () const noexcept { return _M_path; } 26201: 26201: bool 26201: exists() const 26201: { return filesystem::exists(file_status{_M_file_type()}); } 26201: 26201: bool 26201: exists(error_code& __ec) const noexcept 26201: { return filesystem::exists(file_status{_M_file_type(__ec)}); } 26201: 26201: bool 26201: is_block_file() const 26201: { return _M_file_type() == file_type::block; } 26201: 26201: bool 26201: is_block_file(error_code& __ec) const noexcept 26201: { return _M_file_type(__ec) == file_type::block; } 26201: 26201: bool 26201: is_character_file() const 26201: { return _M_file_type() == file_type::character; } 26201: 26201: bool 26201: is_character_file(error_code& __ec) const noexcept 26201: { return _M_file_type(__ec) == file_type::character; } 26201: 26201: bool 26201: is_directory() const 26201: { return _M_file_type() == file_type::directory; } 26201: 26201: bool 26201: is_directory(error_code& __ec) const noexcept 26201: { return _M_file_type(__ec) == file_type::directory; } 26201: 26201: bool 26201: is_fifo() const 26201: { return _M_file_type() == file_type::fifo; } 26201: 26201: bool 26201: is_fifo(error_code& __ec) const noexcept 26201: { return _M_file_type(__ec) == file_type::fifo; } 26201: 26201: bool 26201: is_other() const 26201: { return filesystem::is_other(file_status{_M_file_type()}); } 26201: 26201: bool 26201: is_other(error_code& __ec) const noexcept 26201: { return filesystem::is_other(file_status{_M_file_type(__ec)}); } 26201: 26201: bool 26201: is_regular_file() const 26201: { return _M_file_type() == file_type::regular; } 26201: 26201: bool 26201: is_regular_file(error_code& __ec) const noexcept 26201: { return _M_file_type(__ec) == file_type::regular; } 26201: 26201: bool 26201: is_socket() const 26201: { return _M_file_type() == file_type::socket; } 26201: 26201: bool 26201: is_socket(error_code& __ec) const noexcept 26201: { return _M_file_type(__ec) == file_type::socket; } 26201: 26201: bool 26201: is_symlink() const 26201: { 26201: if (_M_type != file_type::none) 26201: return _M_type == file_type::symlink; 26201: return symlink_status().type() == file_type::symlink; 26201: } 26201: 26201: bool 26201: is_symlink(error_code& __ec) const noexcept 26201: { 26201: if (_M_type != file_type::none) 26201: return _M_type == file_type::symlink; 26201: return symlink_status(__ec).type() == file_type::symlink; 26201: } 26201: 26201: uintmax_t 26201: file_size() const 26201: { return filesystem::file_size(_M_path); } 26201: 26201: uintmax_t 26201: file_size(error_code& __ec) const noexcept 26201: { return filesystem::file_size(_M_path, __ec); } 26201: 26201: uintmax_t 26201: hard_link_count() const 26201: { return filesystem::hard_link_count(_M_path); } 26201: 26201: uintmax_t 26201: hard_link_count(error_code& __ec) const noexcept 26201: { return filesystem::hard_link_count(_M_path, __ec); } 26201: 26201: file_time_type 26201: last_write_time() const 26201: { return filesystem::last_write_time(_M_path); } 26201: 26201: 26201: file_time_type 26201: last_write_time(error_code& __ec) const noexcept 26201: { return filesystem::last_write_time(_M_path, __ec); } 26201: 26201: file_status 26201: status() const 26201: { return filesystem::status(_M_path); } 26201: 26201: file_status 26201: status(error_code& __ec) const noexcept 26201: { return filesystem::status(_M_path, __ec); } 26201: 26201: file_status 26201: symlink_status() const 26201: { return filesystem::symlink_status(_M_path); } 26201: 26201: file_status 26201: symlink_status(error_code& __ec) const noexcept 26201: { return filesystem::symlink_status(_M_path, __ec); } 26201: 26201: bool 26201: operator==(const directory_entry& __rhs) const noexcept 26201: { return _M_path == __rhs._M_path; } 26201: 26201: 26201: 26201: 26201: 26201: 26201: bool 26201: operator!=(const directory_entry& __rhs) const noexcept 26201: { return _M_path != __rhs._M_path; } 26201: 26201: bool 26201: operator< (const directory_entry& __rhs) const noexcept 26201: { return _M_path < __rhs._M_path; } 26201: 26201: bool 26201: operator<=(const directory_entry& __rhs) const noexcept 26201: { return _M_path <= __rhs._M_path; } 26201: 26201: bool 26201: operator> (const directory_entry& __rhs) const noexcept 26201: { return _M_path > __rhs._M_path; } 26201: 26201: bool 26201: operator>=(const directory_entry& __rhs) const noexcept 26201: { return _M_path >= __rhs._M_path; } 26201: 26201: 26201: private: 26201: friend class _Dir; 26201: friend class directory_iterator; 26201: friend class recursive_directory_iterator; 26201: 26201: 26201: 26201: template 26201: friend basic_ostream<_CharT, _Traits>& 26201: operator<<(basic_ostream<_CharT, _Traits>& __os, 26201: const directory_entry& __d) 26201: { return __os << __d.path(); } 26201: 26201: directory_entry(const filesystem::path& __p, file_type __t) 26201: : _M_path(__p), _M_type(__t) 26201: { } 26201: 26201: 26201: file_type 26201: _M_file_type() const 26201: { 26201: if (_M_type != file_type::none && _M_type != file_type::symlink) 26201: return _M_type; 26201: return status().type(); 26201: } 26201: 26201: 26201: file_type 26201: _M_file_type(error_code& __ec) const noexcept 26201: { 26201: if (_M_type != file_type::none && _M_type != file_type::symlink) 26201: { 26201: __ec.clear(); 26201: return _M_type; 26201: } 26201: return status(__ec).type(); 26201: } 26201: 26201: filesystem::path _M_path; 26201: file_type _M_type = file_type::none; 26201: }; 26201: 26201: 26201: struct __directory_iterator_proxy 26201: { 26201: const directory_entry& operator*() const& noexcept { return _M_entry; } 26201: 26201: directory_entry operator*() && noexcept { return std::move(_M_entry); } 26201: 26201: private: 26201: friend class directory_iterator; 26201: friend class recursive_directory_iterator; 26201: 26201: explicit 26201: __directory_iterator_proxy(const directory_entry& __e) : _M_entry(__e) { } 26201: 26201: directory_entry _M_entry; 26201: }; 26201: 26201: 26201: class directory_iterator 26201: { 26201: public: 26201: typedef directory_entry value_type; 26201: typedef ptrdiff_t difference_type; 26201: typedef const directory_entry* pointer; 26201: typedef const directory_entry& reference; 26201: typedef input_iterator_tag iterator_category; 26201: 26201: directory_iterator() = default; 26201: 26201: explicit 26201: directory_iterator(const path& __p) 26201: : directory_iterator(__p, directory_options::none, nullptr) { } 26201: 26201: directory_iterator(const path& __p, directory_options __options) 26201: : directory_iterator(__p, __options, nullptr) { } 26201: 26201: directory_iterator(const path& __p, error_code& __ec) 26201: : directory_iterator(__p, directory_options::none, __ec) { } 26201: 26201: directory_iterator(const path& __p, directory_options __options, 26201: error_code& __ec) 26201: : directory_iterator(__p, __options, &__ec) { } 26201: 26201: directory_iterator(const directory_iterator& __rhs) = default; 26201: 26201: directory_iterator(directory_iterator&& __rhs) noexcept = default; 26201: 26201: ~directory_iterator() = default; 26201: 26201: directory_iterator& 26201: operator=(const directory_iterator& __rhs) = default; 26201: 26201: directory_iterator& 26201: operator=(directory_iterator&& __rhs) noexcept = default; 26201: 26201: const directory_entry& operator*() const noexcept; 26201: const directory_entry* operator->() const noexcept { return &**this; } 26201: directory_iterator& operator++(); 26201: directory_iterator& increment(error_code& __ec); 26201: 26201: __directory_iterator_proxy operator++(int) 26201: { 26201: __directory_iterator_proxy __pr{**this}; 26201: ++*this; 26201: return __pr; 26201: } 26201: 26201: private: 26201: directory_iterator(const path&, directory_options, error_code*); 26201: 26201: friend bool 26201: operator==(const directory_iterator& __lhs, 26201: const directory_iterator& __rhs) noexcept 26201: { 26201: return !__rhs._M_dir.owner_before(__lhs._M_dir) 26201: && !__lhs._M_dir.owner_before(__rhs._M_dir); 26201: } 26201: 26201: friend bool 26201: operator!=(const directory_iterator& __lhs, 26201: const directory_iterator& __rhs) noexcept 26201: { return !(__lhs == __rhs); } 26201: 26201: friend class recursive_directory_iterator; 26201: 26201: std::__shared_ptr<_Dir> _M_dir; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline directory_iterator 26201: begin(directory_iterator __iter) noexcept 26201: { return __iter; } 26201: 26201: 26201: inline directory_iterator 26201: end(directory_iterator) noexcept 26201: { return directory_iterator(); } 26201: 26201: 26201: 26201: class recursive_directory_iterator 26201: { 26201: public: 26201: typedef directory_entry value_type; 26201: typedef ptrdiff_t difference_type; 26201: typedef const directory_entry* pointer; 26201: typedef const directory_entry& reference; 26201: typedef input_iterator_tag iterator_category; 26201: 26201: recursive_directory_iterator() = default; 26201: 26201: explicit 26201: recursive_directory_iterator(const path& __p) 26201: : recursive_directory_iterator(__p, directory_options::none, nullptr) { } 26201: 26201: recursive_directory_iterator(const path& __p, directory_options __options) 26201: : recursive_directory_iterator(__p, __options, nullptr) { } 26201: 26201: recursive_directory_iterator(const path& __p, directory_options __options, 26201: error_code& __ec) 26201: : recursive_directory_iterator(__p, __options, &__ec) { } 26201: 26201: recursive_directory_iterator(const path& __p, error_code& __ec) 26201: : recursive_directory_iterator(__p, directory_options::none, &__ec) { } 26201: 26201: recursive_directory_iterator( 26201: const recursive_directory_iterator&) = default; 26201: 26201: recursive_directory_iterator(recursive_directory_iterator&&) = default; 26201: 26201: ~recursive_directory_iterator(); 26201: 26201: 26201: directory_options options() const noexcept; 26201: int depth() const noexcept; 26201: bool recursion_pending() const noexcept; 26201: 26201: const directory_entry& operator*() const noexcept; 26201: const directory_entry* operator->() const noexcept { return &**this; } 26201: 26201: 26201: recursive_directory_iterator& 26201: operator=(const recursive_directory_iterator& __rhs) noexcept; 26201: recursive_directory_iterator& 26201: operator=(recursive_directory_iterator&& __rhs) noexcept; 26201: 26201: recursive_directory_iterator& operator++(); 26201: recursive_directory_iterator& increment(error_code& __ec); 26201: 26201: __directory_iterator_proxy operator++(int) 26201: { 26201: __directory_iterator_proxy __pr{**this}; 26201: ++*this; 26201: return __pr; 26201: } 26201: 26201: void pop(); 26201: void pop(error_code&); 26201: 26201: void disable_recursion_pending() noexcept; 26201: 26201: private: 26201: recursive_directory_iterator(const path&, directory_options, error_code*); 26201: 26201: friend bool 26201: operator==(const recursive_directory_iterator& __lhs, 26201: const recursive_directory_iterator& __rhs) noexcept 26201: { 26201: return !__rhs._M_dirs.owner_before(__lhs._M_dirs) 26201: && !__lhs._M_dirs.owner_before(__rhs._M_dirs); 26201: } 26201: 26201: friend bool 26201: operator!=(const recursive_directory_iterator& __lhs, 26201: const recursive_directory_iterator& __rhs) noexcept 26201: { return !(__lhs == __rhs); } 26201: 26201: struct _Dir_stack; 26201: std::__shared_ptr<_Dir_stack> _M_dirs; 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline recursive_directory_iterator 26201: begin(recursive_directory_iterator __iter) noexcept 26201: { return __iter; } 26201: 26201: 26201: inline recursive_directory_iterator 26201: end(recursive_directory_iterator) noexcept 26201: { return recursive_directory_iterator(); } 26201: 26201: 26201: } 26201: 26201: 26201: } 26201: 26201: 26201: 26201: 26201: extern template class 26201: __shared_ptr; 26201: extern template class 26201: __shared_ptr; 26201: 26201: 26201: } 26201: # 47 "/usr/x86_64-linux-gnu/include/c++/10/filesystem" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_ops.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/fs_ops.h" 3 26201: #define _GLIBCXX_FS_OPS_H 1 26201: 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: namespace filesystem 26201: { 26201: 26201: 26201: 26201: 26201: path absolute(const path& __p); 26201: path absolute(const path& __p, error_code& __ec); 26201: 26201: path canonical(const path& __p); 26201: path canonical(const path& __p, error_code& __ec); 26201: 26201: inline void 26201: copy(const path& __from, const path& __to) 26201: { copy(__from, __to, copy_options::none); } 26201: 26201: inline void 26201: copy(const path& __from, const path& __to, error_code& __ec) 26201: { copy(__from, __to, copy_options::none, __ec); } 26201: 26201: void copy(const path& __from, const path& __to, copy_options __options); 26201: void copy(const path& __from, const path& __to, copy_options __options, 26201: error_code& __ec); 26201: 26201: inline bool 26201: copy_file(const path& __from, const path& __to) 26201: { return copy_file(__from, __to, copy_options::none); } 26201: 26201: inline bool 26201: copy_file(const path& __from, const path& __to, error_code& __ec) 26201: { return copy_file(__from, __to, copy_options::none, __ec); } 26201: 26201: bool copy_file(const path& __from, const path& __to, copy_options __option); 26201: bool copy_file(const path& __from, const path& __to, copy_options __option, 26201: error_code& __ec); 26201: 26201: void copy_symlink(const path& __existing_symlink, const path& __new_symlink); 26201: void copy_symlink(const path& __existing_symlink, const path& __new_symlink, 26201: error_code& __ec) noexcept; 26201: 26201: bool create_directories(const path& __p); 26201: bool create_directories(const path& __p, error_code& __ec); 26201: 26201: bool create_directory(const path& __p); 26201: bool create_directory(const path& __p, error_code& __ec) noexcept; 26201: 26201: bool create_directory(const path& __p, const path& attributes); 26201: bool create_directory(const path& __p, const path& attributes, 26201: error_code& __ec) noexcept; 26201: 26201: void create_directory_symlink(const path& __to, const path& __new_symlink); 26201: void create_directory_symlink(const path& __to, const path& __new_symlink, 26201: error_code& __ec) noexcept; 26201: 26201: void create_hard_link(const path& __to, const path& __new_hard_link); 26201: void create_hard_link(const path& __to, const path& __new_hard_link, 26201: error_code& __ec) noexcept; 26201: 26201: void create_symlink(const path& __to, const path& __new_symlink); 26201: void create_symlink(const path& __to, const path& __new_symlink, 26201: error_code& __ec) noexcept; 26201: 26201: path current_path(); 26201: path current_path(error_code& __ec); 26201: void current_path(const path& __p); 26201: void current_path(const path& __p, error_code& __ec) noexcept; 26201: 26201: bool 26201: equivalent(const path& __p1, const path& __p2); 26201: 26201: bool 26201: equivalent(const path& __p1, const path& __p2, error_code& __ec) noexcept; 26201: 26201: inline bool 26201: exists(file_status __s) noexcept 26201: { return status_known(__s) && __s.type() != file_type::not_found; } 26201: 26201: inline bool 26201: exists(const path& __p) 26201: { return exists(status(__p)); } 26201: 26201: inline bool 26201: exists(const path& __p, error_code& __ec) noexcept 26201: { 26201: auto __s = status(__p, __ec); 26201: if (status_known(__s)) 26201: { 26201: __ec.clear(); 26201: return __s.type() != file_type::not_found; 26201: } 26201: return false; 26201: } 26201: 26201: uintmax_t file_size(const path& __p); 26201: uintmax_t file_size(const path& __p, error_code& __ec) noexcept; 26201: 26201: uintmax_t hard_link_count(const path& __p); 26201: uintmax_t hard_link_count(const path& __p, error_code& __ec) noexcept; 26201: 26201: inline bool 26201: is_block_file(file_status __s) noexcept 26201: { return __s.type() == file_type::block; } 26201: 26201: inline bool 26201: is_block_file(const path& __p) 26201: { return is_block_file(status(__p)); } 26201: 26201: inline bool 26201: is_block_file(const path& __p, error_code& __ec) noexcept 26201: { return is_block_file(status(__p, __ec)); } 26201: 26201: inline bool 26201: is_character_file(file_status __s) noexcept 26201: { return __s.type() == file_type::character; } 26201: 26201: inline bool 26201: is_character_file(const path& __p) 26201: { return is_character_file(status(__p)); } 26201: 26201: inline bool 26201: is_character_file(const path& __p, error_code& __ec) noexcept 26201: { return is_character_file(status(__p, __ec)); } 26201: 26201: inline bool 26201: is_directory(file_status __s) noexcept 26201: { return __s.type() == file_type::directory; } 26201: 26201: inline bool 26201: is_directory(const path& __p) 26201: { return is_directory(status(__p)); } 26201: 26201: inline bool 26201: is_directory(const path& __p, error_code& __ec) noexcept 26201: { return is_directory(status(__p, __ec)); } 26201: 26201: bool is_empty(const path& __p); 26201: bool is_empty(const path& __p, error_code& __ec); 26201: 26201: inline bool 26201: is_fifo(file_status __s) noexcept 26201: { return __s.type() == file_type::fifo; } 26201: 26201: inline bool 26201: is_fifo(const path& __p) 26201: { return is_fifo(status(__p)); } 26201: 26201: inline bool 26201: is_fifo(const path& __p, error_code& __ec) noexcept 26201: { return is_fifo(status(__p, __ec)); } 26201: 26201: inline bool 26201: is_other(file_status __s) noexcept 26201: { 26201: return exists(__s) && !is_regular_file(__s) && !is_directory(__s) 26201: && !is_symlink(__s); 26201: } 26201: 26201: inline bool 26201: is_other(const path& __p) 26201: { return is_other(status(__p)); } 26201: 26201: inline bool 26201: is_other(const path& __p, error_code& __ec) noexcept 26201: { return is_other(status(__p, __ec)); } 26201: 26201: inline bool 26201: is_regular_file(file_status __s) noexcept 26201: { return __s.type() == file_type::regular; } 26201: 26201: inline bool 26201: is_regular_file(const path& __p) 26201: { return is_regular_file(status(__p)); } 26201: 26201: inline bool 26201: is_regular_file(const path& __p, error_code& __ec) noexcept 26201: { return is_regular_file(status(__p, __ec)); } 26201: 26201: inline bool 26201: is_socket(file_status __s) noexcept 26201: { return __s.type() == file_type::socket; } 26201: 26201: inline bool 26201: is_socket(const path& __p) 26201: { return is_socket(status(__p)); } 26201: 26201: inline bool 26201: is_socket(const path& __p, error_code& __ec) noexcept 26201: { return is_socket(status(__p, __ec)); } 26201: 26201: inline bool 26201: is_symlink(file_status __s) noexcept 26201: { return __s.type() == file_type::symlink; } 26201: 26201: inline bool 26201: is_symlink(const path& __p) 26201: { return is_symlink(symlink_status(__p)); } 26201: 26201: inline bool 26201: is_symlink(const path& __p, error_code& __ec) noexcept 26201: { return is_symlink(symlink_status(__p, __ec)); } 26201: 26201: file_time_type last_write_time(const path& __p); 26201: file_time_type last_write_time(const path& __p, error_code& __ec) noexcept; 26201: void last_write_time(const path& __p, file_time_type __new_time); 26201: void last_write_time(const path& __p, file_time_type __new_time, 26201: error_code& __ec) noexcept; 26201: 26201: void 26201: permissions(const path& __p, perms __prms, 26201: perm_options __opts = perm_options::replace); 26201: 26201: inline void 26201: permissions(const path& __p, perms __prms, error_code& __ec) noexcept 26201: { permissions(__p, __prms, perm_options::replace, __ec); } 26201: 26201: void 26201: permissions(const path& __p, perms __prms, perm_options __opts, 26201: error_code& __ec) noexcept; 26201: 26201: inline path proximate(const path& __p, error_code& __ec) 26201: { return proximate(__p, current_path(), __ec); } 26201: 26201: path proximate(const path& __p, const path& __base = current_path()); 26201: path proximate(const path& __p, const path& __base, error_code& __ec); 26201: 26201: path read_symlink(const path& __p); 26201: path read_symlink(const path& __p, error_code& __ec); 26201: 26201: inline path relative(const path& __p, error_code& __ec) 26201: { return relative(__p, current_path(), __ec); } 26201: 26201: path relative(const path& __p, const path& __base = current_path()); 26201: path relative(const path& __p, const path& __base, error_code& __ec); 26201: 26201: bool remove(const path& __p); 26201: bool remove(const path& __p, error_code& __ec) noexcept; 26201: 26201: uintmax_t remove_all(const path& __p); 26201: uintmax_t remove_all(const path& __p, error_code& __ec); 26201: 26201: void rename(const path& __from, const path& __to); 26201: void rename(const path& __from, const path& __to, error_code& __ec) noexcept; 26201: 26201: void resize_file(const path& __p, uintmax_t __size); 26201: void resize_file(const path& __p, uintmax_t __size, error_code& __ec) noexcept; 26201: 26201: space_info space(const path& __p); 26201: space_info space(const path& __p, error_code& __ec) noexcept; 26201: 26201: file_status status(const path& __p); 26201: file_status status(const path& __p, error_code& __ec) noexcept; 26201: 26201: inline bool status_known(file_status __s) noexcept 26201: { return __s.type() != file_type::none; } 26201: 26201: file_status symlink_status(const path& __p); 26201: file_status symlink_status(const path& __p, error_code& __ec) noexcept; 26201: 26201: path temp_directory_path(); 26201: path temp_directory_path(error_code& __ec); 26201: 26201: path weakly_canonical(const path& __p); 26201: path weakly_canonical(const path& __p, error_code& __ec); 26201: 26201: 26201: } 26201: 26201: 26201: } 26201: # 48 "/usr/x86_64-linux-gnu/include/c++/10/filesystem" 2 3 26201: 26201: #define __cpp_lib_filesystem 201703 26201: # 26 "src/common/common.h" 2 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/memory" 1 3 26201: # 45 "/usr/x86_64-linux-gnu/include/c++/10/memory" 3 26201: #define _GLIBCXX_MEMORY 1 26201: 26201: 26201: # 48 "/usr/x86_64-linux-gnu/include/c++/10/memory" 3 26201: # 68 "/usr/x86_64-linux-gnu/include/c++/10/memory" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_raw_storage_iter.h" 1 3 26201: # 57 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_raw_storage_iter.h" 3 26201: #define _STL_RAW_STORAGE_ITERATOR_H 1 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: class raw_storage_iterator 26201: : public iterator 26201: { 26201: protected: 26201: _OutputIterator _M_iter; 26201: 26201: public: 26201: explicit 26201: raw_storage_iterator(_OutputIterator __x) 26201: : _M_iter(__x) {} 26201: 26201: raw_storage_iterator& 26201: operator*() { return *this; } 26201: 26201: raw_storage_iterator& 26201: operator=(const _Tp& __element) 26201: { 26201: std::_Construct(std::__addressof(*_M_iter), __element); 26201: return *this; 26201: } 26201: 26201: 26201: 26201: 26201: raw_storage_iterator& 26201: operator=(_Tp&& __element) 26201: { 26201: std::_Construct(std::__addressof(*_M_iter), std::move(__element)); 26201: return *this; 26201: } 26201: 26201: 26201: raw_storage_iterator& 26201: operator++() 26201: { 26201: ++_M_iter; 26201: return *this; 26201: } 26201: 26201: raw_storage_iterator 26201: operator++(int) 26201: { 26201: raw_storage_iterator __tmp = *this; 26201: ++_M_iter; 26201: return __tmp; 26201: } 26201: 26201: 26201: 26201: _OutputIterator base() const { return _M_iter; } 26201: }; 26201: 26201: 26201: } 26201: # 69 "/usr/x86_64-linux-gnu/include/c++/10/memory" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/ranges_uninitialized.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/ranges_uninitialized.h" 3 26201: #define _RANGES_UNINITIALIZED_H 1 26201: # 70 "/usr/x86_64-linux-gnu/include/c++/10/memory" 2 3 26201: # 85 "/usr/x86_64-linux-gnu/include/c++/10/memory" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr_atomic.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr_atomic.h" 3 26201: #define _SHARED_PTR_ATOMIC_H 1 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/atomic_base.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/atomic_base.h" 3 26201: #define _GLIBCXX_ATOMIC_BASE_H 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/atomic_base.h" 3 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/atomic_lockfree_defines.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/atomic_lockfree_defines.h" 3 26201: #define _GLIBCXX_ATOMIC_LOCK_FREE_H 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/atomic_lockfree_defines.h" 3 26201: # 49 "/usr/x86_64-linux-gnu/include/c++/10/bits/atomic_lockfree_defines.h" 3 26201: #define ATOMIC_BOOL_LOCK_FREE __GCC_ATOMIC_BOOL_LOCK_FREE 26201: #define ATOMIC_CHAR_LOCK_FREE __GCC_ATOMIC_CHAR_LOCK_FREE 26201: #define ATOMIC_WCHAR_T_LOCK_FREE __GCC_ATOMIC_WCHAR_T_LOCK_FREE 26201: 26201: 26201: 26201: #define ATOMIC_CHAR16_T_LOCK_FREE __GCC_ATOMIC_CHAR16_T_LOCK_FREE 26201: #define ATOMIC_CHAR32_T_LOCK_FREE __GCC_ATOMIC_CHAR32_T_LOCK_FREE 26201: #define ATOMIC_SHORT_LOCK_FREE __GCC_ATOMIC_SHORT_LOCK_FREE 26201: #define ATOMIC_INT_LOCK_FREE __GCC_ATOMIC_INT_LOCK_FREE 26201: #define ATOMIC_LONG_LOCK_FREE __GCC_ATOMIC_LONG_LOCK_FREE 26201: #define ATOMIC_LLONG_LOCK_FREE __GCC_ATOMIC_LLONG_LOCK_FREE 26201: #define ATOMIC_POINTER_LOCK_FREE __GCC_ATOMIC_POINTER_LOCK_FREE 26201: # 38 "/usr/x86_64-linux-gnu/include/c++/10/bits/atomic_base.h" 2 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 74 "/usr/x86_64-linux-gnu/include/c++/10/bits/atomic_base.h" 3 26201: typedef enum memory_order 26201: { 26201: memory_order_relaxed, 26201: memory_order_consume, 26201: memory_order_acquire, 26201: memory_order_release, 26201: memory_order_acq_rel, 26201: memory_order_seq_cst 26201: } memory_order; 26201: 26201: 26201: enum __memory_order_modifier 26201: { 26201: __memory_order_mask = 0x0ffff, 26201: __memory_order_modifier_mask = 0xffff0000, 26201: __memory_order_hle_acquire = 0x10000, 26201: __memory_order_hle_release = 0x20000 26201: }; 26201: 26201: constexpr memory_order 26201: operator|(memory_order __m, __memory_order_modifier __mod) 26201: { 26201: return memory_order(int(__m) | int(__mod)); 26201: } 26201: 26201: constexpr memory_order 26201: operator&(memory_order __m, __memory_order_modifier __mod) 26201: { 26201: return memory_order(int(__m) & int(__mod)); 26201: } 26201: 26201: 26201: constexpr memory_order 26201: __cmpexch_failure_order2(memory_order __m) noexcept 26201: { 26201: return __m == memory_order_acq_rel ? memory_order_acquire 26201: : __m == memory_order_release ? memory_order_relaxed : __m; 26201: } 26201: 26201: constexpr memory_order 26201: __cmpexch_failure_order(memory_order __m) noexcept 26201: { 26201: return memory_order(__cmpexch_failure_order2(__m & __memory_order_mask) 26201: | __memory_order_modifier(__m & __memory_order_modifier_mask)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) void 26201: atomic_thread_fence(memory_order __m) noexcept 26201: { __atomic_thread_fence(int(__m)); } 26201: 26201: inline __attribute__((__always_inline__)) void 26201: atomic_signal_fence(memory_order __m) noexcept 26201: { __atomic_signal_fence(int(__m)); } 26201: 26201: 26201: template 26201: inline _Tp 26201: kill_dependency(_Tp __y) noexcept 26201: { 26201: _Tp __ret(__y); 26201: return __ret; 26201: } 26201: 26201: 26201: 26201: template 26201: struct __atomic_base; 26201: 26201: 26201: #define _GLIBCXX20_INIT(I) 26201: 26201: 26201: 26201: 26201: 26201: #define ATOMIC_VAR_INIT(_VI) { _VI } 26201: 26201: template 26201: struct atomic; 26201: 26201: template 26201: struct atomic<_Tp*>; 26201: 26201: 26201: 26201: typedef bool __atomic_flag_data_type; 26201: # 174 "/usr/x86_64-linux-gnu/include/c++/10/bits/atomic_base.h" 3 26201: extern "C" { 26201: 26201: struct __atomic_flag_base 26201: { 26201: __atomic_flag_data_type _M_i ; 26201: }; 26201: 26201: } 26201: 26201: #define ATOMIC_FLAG_INIT { 0 } 26201: 26201: 26201: struct atomic_flag : public __atomic_flag_base 26201: { 26201: atomic_flag() noexcept = default; 26201: ~atomic_flag() noexcept = default; 26201: atomic_flag(const atomic_flag&) = delete; 26201: atomic_flag& operator=(const atomic_flag&) = delete; 26201: atomic_flag& operator=(const atomic_flag&) volatile = delete; 26201: 26201: 26201: constexpr atomic_flag(bool __i) noexcept 26201: : __atomic_flag_base{ _S_init(__i) } 26201: { } 26201: 26201: inline __attribute__((__always_inline__)) bool 26201: test_and_set(memory_order __m = memory_order_seq_cst) noexcept 26201: { 26201: return __atomic_test_and_set (&_M_i, int(__m)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) bool 26201: test_and_set(memory_order __m = memory_order_seq_cst) volatile noexcept 26201: { 26201: return __atomic_test_and_set (&_M_i, int(__m)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) void 26201: clear(memory_order __m = memory_order_seq_cst) noexcept 26201: { 26201: memory_order __b = __m & __memory_order_mask; 26201: ; 26201: ; 26201: ; 26201: 26201: __atomic_clear (&_M_i, int(__m)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) void 26201: clear(memory_order __m = memory_order_seq_cst) volatile noexcept 26201: { 26201: memory_order __b = __m & __memory_order_mask; 26201: ; 26201: ; 26201: ; 26201: 26201: __atomic_clear (&_M_i, int(__m)); 26201: } 26201: 26201: private: 26201: static constexpr __atomic_flag_data_type 26201: _S_init(bool __i) 26201: { return __i ? 1 : 0; } 26201: }; 26201: # 264 "/usr/x86_64-linux-gnu/include/c++/10/bits/atomic_base.h" 3 26201: template 26201: struct __atomic_base 26201: { 26201: using value_type = _ITp; 26201: using difference_type = value_type; 26201: 26201: private: 26201: typedef _ITp __int_type; 26201: 26201: static constexpr int _S_alignment = 26201: sizeof(_ITp) > alignof(_ITp) ? sizeof(_ITp) : alignof(_ITp); 26201: 26201: alignas(_S_alignment) __int_type _M_i ; 26201: 26201: public: 26201: __atomic_base() noexcept = default; 26201: ~__atomic_base() noexcept = default; 26201: __atomic_base(const __atomic_base&) = delete; 26201: __atomic_base& operator=(const __atomic_base&) = delete; 26201: __atomic_base& operator=(const __atomic_base&) volatile = delete; 26201: 26201: 26201: constexpr __atomic_base(__int_type __i) noexcept : _M_i (__i) { } 26201: 26201: operator __int_type() const noexcept 26201: { return load(); } 26201: 26201: operator __int_type() const volatile noexcept 26201: { return load(); } 26201: 26201: __int_type 26201: operator=(__int_type __i) noexcept 26201: { 26201: store(__i); 26201: return __i; 26201: } 26201: 26201: __int_type 26201: operator=(__int_type __i) volatile noexcept 26201: { 26201: store(__i); 26201: return __i; 26201: } 26201: 26201: __int_type 26201: operator++(int) noexcept 26201: { return fetch_add(1); } 26201: 26201: __int_type 26201: operator++(int) volatile noexcept 26201: { return fetch_add(1); } 26201: 26201: __int_type 26201: operator--(int) noexcept 26201: { return fetch_sub(1); } 26201: 26201: __int_type 26201: operator--(int) volatile noexcept 26201: { return fetch_sub(1); } 26201: 26201: __int_type 26201: operator++() noexcept 26201: { return __atomic_add_fetch(&_M_i, 1, int(memory_order_seq_cst)); } 26201: 26201: __int_type 26201: operator++() volatile noexcept 26201: { return __atomic_add_fetch(&_M_i, 1, int(memory_order_seq_cst)); } 26201: 26201: __int_type 26201: operator--() noexcept 26201: { return __atomic_sub_fetch(&_M_i, 1, int(memory_order_seq_cst)); } 26201: 26201: __int_type 26201: operator--() volatile noexcept 26201: { return __atomic_sub_fetch(&_M_i, 1, int(memory_order_seq_cst)); } 26201: 26201: __int_type 26201: operator+=(__int_type __i) noexcept 26201: { return __atomic_add_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 26201: 26201: __int_type 26201: operator+=(__int_type __i) volatile noexcept 26201: { return __atomic_add_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 26201: 26201: __int_type 26201: operator-=(__int_type __i) noexcept 26201: { return __atomic_sub_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 26201: 26201: __int_type 26201: operator-=(__int_type __i) volatile noexcept 26201: { return __atomic_sub_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 26201: 26201: __int_type 26201: operator&=(__int_type __i) noexcept 26201: { return __atomic_and_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 26201: 26201: __int_type 26201: operator&=(__int_type __i) volatile noexcept 26201: { return __atomic_and_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 26201: 26201: __int_type 26201: operator|=(__int_type __i) noexcept 26201: { return __atomic_or_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 26201: 26201: __int_type 26201: operator|=(__int_type __i) volatile noexcept 26201: { return __atomic_or_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 26201: 26201: __int_type 26201: operator^=(__int_type __i) noexcept 26201: { return __atomic_xor_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 26201: 26201: __int_type 26201: operator^=(__int_type __i) volatile noexcept 26201: { return __atomic_xor_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 26201: 26201: bool 26201: is_lock_free() const noexcept 26201: { 26201: 26201: return __atomic_is_lock_free(sizeof(_M_i), 26201: reinterpret_cast(-_S_alignment)); 26201: } 26201: 26201: bool 26201: is_lock_free() const volatile noexcept 26201: { 26201: 26201: return __atomic_is_lock_free(sizeof(_M_i), 26201: reinterpret_cast(-_S_alignment)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) void 26201: store(__int_type __i, memory_order __m = memory_order_seq_cst) noexcept 26201: { 26201: memory_order __b = __m & __memory_order_mask; 26201: ; 26201: ; 26201: ; 26201: 26201: __atomic_store_n(&_M_i, __i, int(__m)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) void 26201: store(__int_type __i, 26201: memory_order __m = memory_order_seq_cst) volatile noexcept 26201: { 26201: memory_order __b = __m & __memory_order_mask; 26201: ; 26201: ; 26201: ; 26201: 26201: __atomic_store_n(&_M_i, __i, int(__m)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) __int_type 26201: load(memory_order __m = memory_order_seq_cst) const noexcept 26201: { 26201: memory_order __b = __m & __memory_order_mask; 26201: ; 26201: ; 26201: 26201: return __atomic_load_n(&_M_i, int(__m)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) __int_type 26201: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 26201: { 26201: memory_order __b = __m & __memory_order_mask; 26201: ; 26201: ; 26201: 26201: return __atomic_load_n(&_M_i, int(__m)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) __int_type 26201: exchange(__int_type __i, 26201: memory_order __m = memory_order_seq_cst) noexcept 26201: { 26201: return __atomic_exchange_n(&_M_i, __i, int(__m)); 26201: } 26201: 26201: 26201: inline __attribute__((__always_inline__)) __int_type 26201: exchange(__int_type __i, 26201: memory_order __m = memory_order_seq_cst) volatile noexcept 26201: { 26201: return __atomic_exchange_n(&_M_i, __i, int(__m)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) bool 26201: compare_exchange_weak(__int_type& __i1, __int_type __i2, 26201: memory_order __m1, memory_order __m2) noexcept 26201: { 26201: memory_order __b2 = __m2 & __memory_order_mask; 26201: memory_order __b1 = __m1 & __memory_order_mask; 26201: ; 26201: ; 26201: ; 26201: 26201: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, 26201: int(__m1), int(__m2)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) bool 26201: compare_exchange_weak(__int_type& __i1, __int_type __i2, 26201: memory_order __m1, 26201: memory_order __m2) volatile noexcept 26201: { 26201: memory_order __b2 = __m2 & __memory_order_mask; 26201: memory_order __b1 = __m1 & __memory_order_mask; 26201: ; 26201: ; 26201: ; 26201: 26201: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, 26201: int(__m1), int(__m2)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) bool 26201: compare_exchange_weak(__int_type& __i1, __int_type __i2, 26201: memory_order __m = memory_order_seq_cst) noexcept 26201: { 26201: return compare_exchange_weak(__i1, __i2, __m, 26201: __cmpexch_failure_order(__m)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) bool 26201: compare_exchange_weak(__int_type& __i1, __int_type __i2, 26201: memory_order __m = memory_order_seq_cst) volatile noexcept 26201: { 26201: return compare_exchange_weak(__i1, __i2, __m, 26201: __cmpexch_failure_order(__m)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) bool 26201: compare_exchange_strong(__int_type& __i1, __int_type __i2, 26201: memory_order __m1, memory_order __m2) noexcept 26201: { 26201: memory_order __b2 = __m2 & __memory_order_mask; 26201: memory_order __b1 = __m1 & __memory_order_mask; 26201: ; 26201: ; 26201: ; 26201: 26201: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, 26201: int(__m1), int(__m2)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) bool 26201: compare_exchange_strong(__int_type& __i1, __int_type __i2, 26201: memory_order __m1, 26201: memory_order __m2) volatile noexcept 26201: { 26201: memory_order __b2 = __m2 & __memory_order_mask; 26201: memory_order __b1 = __m1 & __memory_order_mask; 26201: 26201: ; 26201: ; 26201: ; 26201: 26201: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, 26201: int(__m1), int(__m2)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) bool 26201: compare_exchange_strong(__int_type& __i1, __int_type __i2, 26201: memory_order __m = memory_order_seq_cst) noexcept 26201: { 26201: return compare_exchange_strong(__i1, __i2, __m, 26201: __cmpexch_failure_order(__m)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) bool 26201: compare_exchange_strong(__int_type& __i1, __int_type __i2, 26201: memory_order __m = memory_order_seq_cst) volatile noexcept 26201: { 26201: return compare_exchange_strong(__i1, __i2, __m, 26201: __cmpexch_failure_order(__m)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) __int_type 26201: fetch_add(__int_type __i, 26201: memory_order __m = memory_order_seq_cst) noexcept 26201: { return __atomic_fetch_add(&_M_i, __i, int(__m)); } 26201: 26201: inline __attribute__((__always_inline__)) __int_type 26201: fetch_add(__int_type __i, 26201: memory_order __m = memory_order_seq_cst) volatile noexcept 26201: { return __atomic_fetch_add(&_M_i, __i, int(__m)); } 26201: 26201: inline __attribute__((__always_inline__)) __int_type 26201: fetch_sub(__int_type __i, 26201: memory_order __m = memory_order_seq_cst) noexcept 26201: { return __atomic_fetch_sub(&_M_i, __i, int(__m)); } 26201: 26201: inline __attribute__((__always_inline__)) __int_type 26201: fetch_sub(__int_type __i, 26201: memory_order __m = memory_order_seq_cst) volatile noexcept 26201: { return __atomic_fetch_sub(&_M_i, __i, int(__m)); } 26201: 26201: inline __attribute__((__always_inline__)) __int_type 26201: fetch_and(__int_type __i, 26201: memory_order __m = memory_order_seq_cst) noexcept 26201: { return __atomic_fetch_and(&_M_i, __i, int(__m)); } 26201: 26201: inline __attribute__((__always_inline__)) __int_type 26201: fetch_and(__int_type __i, 26201: memory_order __m = memory_order_seq_cst) volatile noexcept 26201: { return __atomic_fetch_and(&_M_i, __i, int(__m)); } 26201: 26201: inline __attribute__((__always_inline__)) __int_type 26201: fetch_or(__int_type __i, 26201: memory_order __m = memory_order_seq_cst) noexcept 26201: { return __atomic_fetch_or(&_M_i, __i, int(__m)); } 26201: 26201: inline __attribute__((__always_inline__)) __int_type 26201: fetch_or(__int_type __i, 26201: memory_order __m = memory_order_seq_cst) volatile noexcept 26201: { return __atomic_fetch_or(&_M_i, __i, int(__m)); } 26201: 26201: inline __attribute__((__always_inline__)) __int_type 26201: fetch_xor(__int_type __i, 26201: memory_order __m = memory_order_seq_cst) noexcept 26201: { return __atomic_fetch_xor(&_M_i, __i, int(__m)); } 26201: 26201: inline __attribute__((__always_inline__)) __int_type 26201: fetch_xor(__int_type __i, 26201: memory_order __m = memory_order_seq_cst) volatile noexcept 26201: { return __atomic_fetch_xor(&_M_i, __i, int(__m)); } 26201: }; 26201: 26201: 26201: 26201: template 26201: struct __atomic_base<_PTp*> 26201: { 26201: private: 26201: typedef _PTp* __pointer_type; 26201: 26201: __pointer_type _M_p ; 26201: 26201: 26201: constexpr ptrdiff_t 26201: _M_type_size(ptrdiff_t __d) const { return __d * sizeof(_PTp); } 26201: 26201: constexpr ptrdiff_t 26201: _M_type_size(ptrdiff_t __d) const volatile { return __d * sizeof(_PTp); } 26201: 26201: public: 26201: __atomic_base() noexcept = default; 26201: ~__atomic_base() noexcept = default; 26201: __atomic_base(const __atomic_base&) = delete; 26201: __atomic_base& operator=(const __atomic_base&) = delete; 26201: __atomic_base& operator=(const __atomic_base&) volatile = delete; 26201: 26201: 26201: constexpr __atomic_base(__pointer_type __p) noexcept : _M_p (__p) { } 26201: 26201: operator __pointer_type() const noexcept 26201: { return load(); } 26201: 26201: operator __pointer_type() const volatile noexcept 26201: { return load(); } 26201: 26201: __pointer_type 26201: operator=(__pointer_type __p) noexcept 26201: { 26201: store(__p); 26201: return __p; 26201: } 26201: 26201: __pointer_type 26201: operator=(__pointer_type __p) volatile noexcept 26201: { 26201: store(__p); 26201: return __p; 26201: } 26201: 26201: __pointer_type 26201: operator++(int) noexcept 26201: { return fetch_add(1); } 26201: 26201: __pointer_type 26201: operator++(int) volatile noexcept 26201: { return fetch_add(1); } 26201: 26201: __pointer_type 26201: operator--(int) noexcept 26201: { return fetch_sub(1); } 26201: 26201: __pointer_type 26201: operator--(int) volatile noexcept 26201: { return fetch_sub(1); } 26201: 26201: __pointer_type 26201: operator++() noexcept 26201: { return __atomic_add_fetch(&_M_p, _M_type_size(1), 26201: int(memory_order_seq_cst)); } 26201: 26201: __pointer_type 26201: operator++() volatile noexcept 26201: { return __atomic_add_fetch(&_M_p, _M_type_size(1), 26201: int(memory_order_seq_cst)); } 26201: 26201: __pointer_type 26201: operator--() noexcept 26201: { return __atomic_sub_fetch(&_M_p, _M_type_size(1), 26201: int(memory_order_seq_cst)); } 26201: 26201: __pointer_type 26201: operator--() volatile noexcept 26201: { return __atomic_sub_fetch(&_M_p, _M_type_size(1), 26201: int(memory_order_seq_cst)); } 26201: 26201: __pointer_type 26201: operator+=(ptrdiff_t __d) noexcept 26201: { return __atomic_add_fetch(&_M_p, _M_type_size(__d), 26201: int(memory_order_seq_cst)); } 26201: 26201: __pointer_type 26201: operator+=(ptrdiff_t __d) volatile noexcept 26201: { return __atomic_add_fetch(&_M_p, _M_type_size(__d), 26201: int(memory_order_seq_cst)); } 26201: 26201: __pointer_type 26201: operator-=(ptrdiff_t __d) noexcept 26201: { return __atomic_sub_fetch(&_M_p, _M_type_size(__d), 26201: int(memory_order_seq_cst)); } 26201: 26201: __pointer_type 26201: operator-=(ptrdiff_t __d) volatile noexcept 26201: { return __atomic_sub_fetch(&_M_p, _M_type_size(__d), 26201: int(memory_order_seq_cst)); } 26201: 26201: bool 26201: is_lock_free() const noexcept 26201: { 26201: 26201: return __atomic_is_lock_free(sizeof(_M_p), 26201: reinterpret_cast(-__alignof(_M_p))); 26201: } 26201: 26201: bool 26201: is_lock_free() const volatile noexcept 26201: { 26201: 26201: return __atomic_is_lock_free(sizeof(_M_p), 26201: reinterpret_cast(-__alignof(_M_p))); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) void 26201: store(__pointer_type __p, 26201: memory_order __m = memory_order_seq_cst) noexcept 26201: { 26201: memory_order __b = __m & __memory_order_mask; 26201: 26201: ; 26201: ; 26201: ; 26201: 26201: __atomic_store_n(&_M_p, __p, int(__m)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) void 26201: store(__pointer_type __p, 26201: memory_order __m = memory_order_seq_cst) volatile noexcept 26201: { 26201: memory_order __b = __m & __memory_order_mask; 26201: ; 26201: ; 26201: ; 26201: 26201: __atomic_store_n(&_M_p, __p, int(__m)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) __pointer_type 26201: load(memory_order __m = memory_order_seq_cst) const noexcept 26201: { 26201: memory_order __b = __m & __memory_order_mask; 26201: ; 26201: ; 26201: 26201: return __atomic_load_n(&_M_p, int(__m)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) __pointer_type 26201: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 26201: { 26201: memory_order __b = __m & __memory_order_mask; 26201: ; 26201: ; 26201: 26201: return __atomic_load_n(&_M_p, int(__m)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) __pointer_type 26201: exchange(__pointer_type __p, 26201: memory_order __m = memory_order_seq_cst) noexcept 26201: { 26201: return __atomic_exchange_n(&_M_p, __p, int(__m)); 26201: } 26201: 26201: 26201: inline __attribute__((__always_inline__)) __pointer_type 26201: exchange(__pointer_type __p, 26201: memory_order __m = memory_order_seq_cst) volatile noexcept 26201: { 26201: return __atomic_exchange_n(&_M_p, __p, int(__m)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) bool 26201: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 26201: memory_order __m1, 26201: memory_order __m2) noexcept 26201: { 26201: memory_order __b2 = __m2 & __memory_order_mask; 26201: memory_order __b1 = __m1 & __memory_order_mask; 26201: ; 26201: ; 26201: ; 26201: 26201: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, 26201: int(__m1), int(__m2)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) bool 26201: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 26201: memory_order __m1, 26201: memory_order __m2) volatile noexcept 26201: { 26201: memory_order __b2 = __m2 & __memory_order_mask; 26201: memory_order __b1 = __m1 & __memory_order_mask; 26201: 26201: ; 26201: ; 26201: ; 26201: 26201: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, 26201: int(__m1), int(__m2)); 26201: } 26201: 26201: inline __attribute__((__always_inline__)) __pointer_type 26201: fetch_add(ptrdiff_t __d, 26201: memory_order __m = memory_order_seq_cst) noexcept 26201: { return __atomic_fetch_add(&_M_p, _M_type_size(__d), int(__m)); } 26201: 26201: inline __attribute__((__always_inline__)) __pointer_type 26201: fetch_add(ptrdiff_t __d, 26201: memory_order __m = memory_order_seq_cst) volatile noexcept 26201: { return __atomic_fetch_add(&_M_p, _M_type_size(__d), int(__m)); } 26201: 26201: inline __attribute__((__always_inline__)) __pointer_type 26201: fetch_sub(ptrdiff_t __d, 26201: memory_order __m = memory_order_seq_cst) noexcept 26201: { return __atomic_fetch_sub(&_M_p, _M_type_size(__d), int(__m)); } 26201: 26201: inline __attribute__((__always_inline__)) __pointer_type 26201: fetch_sub(ptrdiff_t __d, 26201: memory_order __m = memory_order_seq_cst) volatile noexcept 26201: { return __atomic_fetch_sub(&_M_p, _M_type_size(__d), int(__m)); } 26201: }; 26201: # 1700 "/usr/x86_64-linux-gnu/include/c++/10/bits/atomic_base.h" 3 26201: 26201: } 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr_atomic.h" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 47 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr_atomic.h" 3 26201: struct _Sp_locker 26201: { 26201: _Sp_locker(const _Sp_locker&) = delete; 26201: _Sp_locker& operator=(const _Sp_locker&) = delete; 26201: 26201: 26201: explicit 26201: _Sp_locker(const void*) noexcept; 26201: _Sp_locker(const void*, const void*) noexcept; 26201: ~_Sp_locker(); 26201: 26201: private: 26201: unsigned char _M_key1; 26201: unsigned char _M_key2; 26201: 26201: 26201: 26201: }; 26201: # 74 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr_atomic.h" 3 26201: template 26201: inline bool 26201: atomic_is_lock_free(const __shared_ptr<_Tp, _Lp>* __p) 26201: { 26201: 26201: return __gthread_active_p() == 0; 26201: 26201: 26201: 26201: } 26201: 26201: template 26201: inline bool 26201: atomic_is_lock_free(const shared_ptr<_Tp>* __p) 26201: { return std::atomic_is_lock_free<_Tp, __default_lock_policy>(__p); } 26201: # 101 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr_atomic.h" 3 26201: template 26201: inline shared_ptr<_Tp> 26201: atomic_load_explicit(const shared_ptr<_Tp>* __p, memory_order) 26201: { 26201: _Sp_locker __lock{__p}; 26201: return *__p; 26201: } 26201: 26201: template 26201: inline shared_ptr<_Tp> 26201: atomic_load(const shared_ptr<_Tp>* __p) 26201: { return std::atomic_load_explicit(__p, memory_order_seq_cst); } 26201: 26201: template 26201: inline __shared_ptr<_Tp, _Lp> 26201: atomic_load_explicit(const __shared_ptr<_Tp, _Lp>* __p, memory_order) 26201: { 26201: _Sp_locker __lock{__p}; 26201: return *__p; 26201: } 26201: 26201: template 26201: inline __shared_ptr<_Tp, _Lp> 26201: atomic_load(const __shared_ptr<_Tp, _Lp>* __p) 26201: { return std::atomic_load_explicit(__p, memory_order_seq_cst); } 26201: # 137 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr_atomic.h" 3 26201: template 26201: inline void 26201: atomic_store_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r, 26201: memory_order) 26201: { 26201: _Sp_locker __lock{__p}; 26201: __p->swap(__r); 26201: } 26201: 26201: template 26201: inline void 26201: atomic_store(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r) 26201: { std::atomic_store_explicit(__p, std::move(__r), memory_order_seq_cst); } 26201: 26201: template 26201: inline void 26201: atomic_store_explicit(__shared_ptr<_Tp, _Lp>* __p, 26201: __shared_ptr<_Tp, _Lp> __r, 26201: memory_order) 26201: { 26201: _Sp_locker __lock{__p}; 26201: __p->swap(__r); 26201: } 26201: 26201: template 26201: inline void 26201: atomic_store(__shared_ptr<_Tp, _Lp>* __p, __shared_ptr<_Tp, _Lp> __r) 26201: { std::atomic_store_explicit(__p, std::move(__r), memory_order_seq_cst); } 26201: # 174 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr_atomic.h" 3 26201: template 26201: inline shared_ptr<_Tp> 26201: atomic_exchange_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r, 26201: memory_order) 26201: { 26201: _Sp_locker __lock{__p}; 26201: __p->swap(__r); 26201: return __r; 26201: } 26201: 26201: template 26201: inline shared_ptr<_Tp> 26201: atomic_exchange(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r) 26201: { 26201: return std::atomic_exchange_explicit(__p, std::move(__r), 26201: memory_order_seq_cst); 26201: } 26201: 26201: template 26201: inline __shared_ptr<_Tp, _Lp> 26201: atomic_exchange_explicit(__shared_ptr<_Tp, _Lp>* __p, 26201: __shared_ptr<_Tp, _Lp> __r, 26201: memory_order) 26201: { 26201: _Sp_locker __lock{__p}; 26201: __p->swap(__r); 26201: return __r; 26201: } 26201: 26201: template 26201: inline __shared_ptr<_Tp, _Lp> 26201: atomic_exchange(__shared_ptr<_Tp, _Lp>* __p, __shared_ptr<_Tp, _Lp> __r) 26201: { 26201: return std::atomic_exchange_explicit(__p, std::move(__r), 26201: memory_order_seq_cst); 26201: } 26201: # 223 "/usr/x86_64-linux-gnu/include/c++/10/bits/shared_ptr_atomic.h" 3 26201: template 26201: bool 26201: atomic_compare_exchange_strong_explicit(shared_ptr<_Tp>* __p, 26201: shared_ptr<_Tp>* __v, 26201: shared_ptr<_Tp> __w, 26201: memory_order, 26201: memory_order) 26201: { 26201: shared_ptr<_Tp> __x; 26201: _Sp_locker __lock{__p, __v}; 26201: owner_less> __less; 26201: if (*__p == *__v && !__less(*__p, *__v) && !__less(*__v, *__p)) 26201: { 26201: __x = std::move(*__p); 26201: *__p = std::move(__w); 26201: return true; 26201: } 26201: __x = std::move(*__v); 26201: *__v = *__p; 26201: return false; 26201: } 26201: 26201: template 26201: inline bool 26201: atomic_compare_exchange_strong(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, 26201: shared_ptr<_Tp> __w) 26201: { 26201: return std::atomic_compare_exchange_strong_explicit(__p, __v, 26201: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 26201: } 26201: 26201: template 26201: inline bool 26201: atomic_compare_exchange_weak_explicit(shared_ptr<_Tp>* __p, 26201: shared_ptr<_Tp>* __v, 26201: shared_ptr<_Tp> __w, 26201: memory_order __success, 26201: memory_order __failure) 26201: { 26201: return std::atomic_compare_exchange_strong_explicit(__p, __v, 26201: std::move(__w), __success, __failure); 26201: } 26201: 26201: template 26201: inline bool 26201: atomic_compare_exchange_weak(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, 26201: shared_ptr<_Tp> __w) 26201: { 26201: return std::atomic_compare_exchange_weak_explicit(__p, __v, 26201: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 26201: } 26201: 26201: template 26201: bool 26201: atomic_compare_exchange_strong_explicit(__shared_ptr<_Tp, _Lp>* __p, 26201: __shared_ptr<_Tp, _Lp>* __v, 26201: __shared_ptr<_Tp, _Lp> __w, 26201: memory_order, 26201: memory_order) 26201: { 26201: __shared_ptr<_Tp, _Lp> __x; 26201: _Sp_locker __lock{__p, __v}; 26201: owner_less<__shared_ptr<_Tp, _Lp>> __less; 26201: if (*__p == *__v && !__less(*__p, *__v) && !__less(*__v, *__p)) 26201: { 26201: __x = std::move(*__p); 26201: *__p = std::move(__w); 26201: return true; 26201: } 26201: __x = std::move(*__v); 26201: *__v = *__p; 26201: return false; 26201: } 26201: 26201: template 26201: inline bool 26201: atomic_compare_exchange_strong(__shared_ptr<_Tp, _Lp>* __p, 26201: __shared_ptr<_Tp, _Lp>* __v, 26201: __shared_ptr<_Tp, _Lp> __w) 26201: { 26201: return std::atomic_compare_exchange_strong_explicit(__p, __v, 26201: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 26201: } 26201: 26201: template 26201: inline bool 26201: atomic_compare_exchange_weak_explicit(__shared_ptr<_Tp, _Lp>* __p, 26201: __shared_ptr<_Tp, _Lp>* __v, 26201: __shared_ptr<_Tp, _Lp> __w, 26201: memory_order __success, 26201: memory_order __failure) 26201: { 26201: return std::atomic_compare_exchange_strong_explicit(__p, __v, 26201: std::move(__w), __success, __failure); 26201: } 26201: 26201: template 26201: inline bool 26201: atomic_compare_exchange_weak(__shared_ptr<_Tp, _Lp>* __p, 26201: __shared_ptr<_Tp, _Lp>* __v, 26201: __shared_ptr<_Tp, _Lp> __w) 26201: { 26201: return std::atomic_compare_exchange_weak_explicit(__p, __v, 26201: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 86 "/usr/x86_64-linux-gnu/include/c++/10/memory" 2 3 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/backward/auto_ptr.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/backward/auto_ptr.h" 3 26201: #define _BACKWARD_AUTO_PTR_H 1 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 47 "/usr/x86_64-linux-gnu/include/c++/10/backward/auto_ptr.h" 3 26201: template 26201: struct auto_ptr_ref 26201: { 26201: _Tp1* _M_ptr; 26201: 26201: explicit 26201: auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { } 26201: } __attribute__ ((__deprecated__)); 26201: 26201: #pragma GCC diagnostic push 26201: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 26201: # 88 "/usr/x86_64-linux-gnu/include/c++/10/backward/auto_ptr.h" 3 26201: template 26201: class auto_ptr 26201: { 26201: private: 26201: _Tp* _M_ptr; 26201: 26201: public: 26201: 26201: typedef _Tp element_type; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: explicit 26201: auto_ptr(element_type* __p = 0) throw() : _M_ptr(__p) { } 26201: # 114 "/usr/x86_64-linux-gnu/include/c++/10/backward/auto_ptr.h" 3 26201: auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) { } 26201: # 126 "/usr/x86_64-linux-gnu/include/c++/10/backward/auto_ptr.h" 3 26201: template 26201: auto_ptr(auto_ptr<_Tp1>& __a) throw() : _M_ptr(__a.release()) { } 26201: # 137 "/usr/x86_64-linux-gnu/include/c++/10/backward/auto_ptr.h" 3 26201: auto_ptr& 26201: operator=(auto_ptr& __a) throw() 26201: { 26201: reset(__a.release()); 26201: return *this; 26201: } 26201: # 154 "/usr/x86_64-linux-gnu/include/c++/10/backward/auto_ptr.h" 3 26201: template 26201: auto_ptr& 26201: operator=(auto_ptr<_Tp1>& __a) throw() 26201: { 26201: reset(__a.release()); 26201: return *this; 26201: } 26201: # 172 "/usr/x86_64-linux-gnu/include/c++/10/backward/auto_ptr.h" 3 26201: ~auto_ptr() { delete _M_ptr; } 26201: # 182 "/usr/x86_64-linux-gnu/include/c++/10/backward/auto_ptr.h" 3 26201: element_type& 26201: operator*() const throw() 26201: { 26201: ; 26201: return *_M_ptr; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: element_type* 26201: operator->() const throw() 26201: { 26201: ; 26201: return _M_ptr; 26201: } 26201: # 212 "/usr/x86_64-linux-gnu/include/c++/10/backward/auto_ptr.h" 3 26201: element_type* 26201: get() const throw() { return _M_ptr; } 26201: # 226 "/usr/x86_64-linux-gnu/include/c++/10/backward/auto_ptr.h" 3 26201: element_type* 26201: release() throw() 26201: { 26201: element_type* __tmp = _M_ptr; 26201: _M_ptr = 0; 26201: return __tmp; 26201: } 26201: # 241 "/usr/x86_64-linux-gnu/include/c++/10/backward/auto_ptr.h" 3 26201: void 26201: reset(element_type* __p = 0) throw() 26201: { 26201: if (__p != _M_ptr) 26201: { 26201: delete _M_ptr; 26201: _M_ptr = __p; 26201: } 26201: } 26201: # 266 "/usr/x86_64-linux-gnu/include/c++/10/backward/auto_ptr.h" 3 26201: auto_ptr(auto_ptr_ref __ref) throw() 26201: : _M_ptr(__ref._M_ptr) { } 26201: 26201: auto_ptr& 26201: operator=(auto_ptr_ref __ref) throw() 26201: { 26201: if (__ref._M_ptr != this->get()) 26201: { 26201: delete _M_ptr; 26201: _M_ptr = __ref._M_ptr; 26201: } 26201: return *this; 26201: } 26201: 26201: template 26201: operator auto_ptr_ref<_Tp1>() throw() 26201: { return auto_ptr_ref<_Tp1>(this->release()); } 26201: 26201: template 26201: operator auto_ptr<_Tp1>() throw() 26201: { return auto_ptr<_Tp1>(this->release()); } 26201: } __attribute__ ((__deprecated__)); 26201: 26201: 26201: 26201: template<> 26201: class auto_ptr 26201: { 26201: public: 26201: typedef void element_type; 26201: } __attribute__ ((__deprecated__)); 26201: 26201: 26201: template<_Lock_policy _Lp> 26201: template 26201: inline 26201: __shared_count<_Lp>::__shared_count(std::auto_ptr<_Tp>&& __r) 26201: : _M_pi(new _Sp_counted_ptr<_Tp*, _Lp>(__r.get())) 26201: { __r.release(); } 26201: 26201: template 26201: template 26201: inline 26201: __shared_ptr<_Tp, _Lp>::__shared_ptr(std::auto_ptr<_Tp1>&& __r) 26201: : _M_ptr(__r.get()), _M_refcount() 26201: { 26201: 26201: static_assert( sizeof(_Tp1) > 0, "incomplete type" ); 26201: _Tp1* __tmp = __r.get(); 26201: _M_refcount = __shared_count<_Lp>(std::move(__r)); 26201: _M_enable_shared_from_this_with(__tmp); 26201: } 26201: 26201: template 26201: template 26201: inline 26201: shared_ptr<_Tp>::shared_ptr(std::auto_ptr<_Tp1>&& __r) 26201: : __shared_ptr<_Tp>(std::move(__r)) { } 26201: 26201: template 26201: template 26201: inline 26201: unique_ptr<_Tp, _Dp>::unique_ptr(auto_ptr<_Up>&& __u) noexcept 26201: : _M_t(__u.release(), deleter_type()) { } 26201: 26201: 26201: #pragma GCC diagnostic pop 26201: 26201: 26201: } 26201: # 88 "/usr/x86_64-linux-gnu/include/c++/10/memory" 2 3 26201: # 100 "/usr/x86_64-linux-gnu/include/c++/10/memory" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 122 "/usr/x86_64-linux-gnu/include/c++/10/memory" 3 26201: inline void* 26201: align(size_t __align, size_t __size, void*& __ptr, size_t& __space) noexcept 26201: { 26201: 26201: const auto __intptr = reinterpret_cast(__ptr); 26201: 26201: 26201: 26201: 26201: 26201: 26201: const auto __aligned = (__intptr - 1u + __align) & -__align; 26201: const auto __diff = __aligned - __intptr; 26201: if ((__size + __diff) > __space) 26201: return nullptr; 26201: else 26201: { 26201: __space -= __diff; 26201: return __ptr = reinterpret_cast(__aligned); 26201: } 26201: } 26201: # 158 "/usr/x86_64-linux-gnu/include/c++/10/memory" 3 26201: enum class pointer_safety { relaxed, preferred, strict }; 26201: 26201: 26201: inline void 26201: declare_reachable(void*) { } 26201: 26201: 26201: template 26201: inline _Tp* 26201: undeclare_reachable(_Tp* __p) { return __p; } 26201: 26201: 26201: inline void 26201: declare_no_pointers(char*, size_t) { } 26201: 26201: 26201: inline void 26201: undeclare_no_pointers(char*, size_t) { } 26201: 26201: 26201: inline pointer_safety 26201: get_pointer_safety() noexcept { return pointer_safety::relaxed; } 26201: # 411 "/usr/x86_64-linux-gnu/include/c++/10/memory" 3 26201: 26201: } 26201: # 422 "/usr/x86_64-linux-gnu/include/c++/10/memory" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/pstl/glue_memory_defs.h" 1 3 26201: # 11 "/usr/x86_64-linux-gnu/include/c++/10/pstl/glue_memory_defs.h" 3 26201: #define _PSTL_GLUE_MEMORY_DEFS_H 26201: 26201: 26201: 26201: namespace std 26201: { 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: uninitialized_copy(_ExecutionPolicy&& __exec, _InputIterator __first, _InputIterator __last, _ForwardIterator __result); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: uninitialized_copy_n(_ExecutionPolicy&& __exec, _InputIterator __first, _Size __n, _ForwardIterator __result); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: uninitialized_move(_ExecutionPolicy&& __exec, _InputIterator __first, _InputIterator __last, _ForwardIterator __result); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: uninitialized_move_n(_ExecutionPolicy&& __exec, _InputIterator __first, _Size __n, _ForwardIterator __result); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void> 26201: uninitialized_fill(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, const _Tp& __value); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: uninitialized_fill_n(_ExecutionPolicy&& __exec, _ForwardIterator __first, _Size __n, const _Tp& __value); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void> 26201: destroy(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: destroy_n(_ExecutionPolicy&& __exec, _ForwardIterator __first, _Size __n); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void> 26201: uninitialized_default_construct(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: uninitialized_default_construct_n(_ExecutionPolicy&& __exec, _ForwardIterator __first, _Size __n); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void> 26201: uninitialized_value_construct(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> 26201: uninitialized_value_construct_n(_ExecutionPolicy&& __exec, _ForwardIterator __first, _Size __n); 26201: 26201: } 26201: # 423 "/usr/x86_64-linux-gnu/include/c++/10/memory" 2 3 26201: 26201: 26201: 26201: #define __cpp_lib_parallel_algorithm 201603L 26201: # 28 "src/common/common.h" 2 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/numeric" 1 3 26201: # 56 "/usr/x86_64-linux-gnu/include/c++/10/numeric" 3 26201: #define _GLIBCXX_NUMERIC 1 26201: 26201: 26201: # 59 "/usr/x86_64-linux-gnu/include/c++/10/numeric" 3 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_numeric.h" 1 3 26201: # 57 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_numeric.h" 3 26201: #define _STL_NUMERIC_H 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 85 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_numeric.h" 3 26201: template 26201: 26201: void 26201: iota(_ForwardIterator __first, _ForwardIterator __last, _Tp __value) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: for (; __first != __last; ++__first) 26201: { 26201: *__first = __value; 26201: ++__value; 26201: } 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_MOVE_IF_20(_E) _E 26201: # 131 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_numeric.h" 3 26201: template 26201: 26201: inline _Tp 26201: accumulate(_InputIterator __first, _InputIterator __last, _Tp __init) 26201: { 26201: 26201: 26201: ; 26201: 26201: for (; __first != __last; ++__first) 26201: __init = __init + *__first; 26201: return __init; 26201: } 26201: # 158 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_numeric.h" 3 26201: template 26201: 26201: inline _Tp 26201: accumulate(_InputIterator __first, _InputIterator __last, _Tp __init, 26201: _BinaryOperation __binary_op) 26201: { 26201: 26201: 26201: ; 26201: 26201: for (; __first != __last; ++__first) 26201: __init = __binary_op(__init, *__first); 26201: return __init; 26201: } 26201: # 187 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_numeric.h" 3 26201: template 26201: 26201: inline _Tp 26201: inner_product(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _Tp __init) 26201: { 26201: 26201: 26201: 26201: ; 26201: 26201: for (; __first1 != __last1; ++__first1, (void)++__first2) 26201: __init = __init + (*__first1 * *__first2); 26201: return __init; 26201: } 26201: # 219 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_numeric.h" 3 26201: template 26201: 26201: inline _Tp 26201: inner_product(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _Tp __init, 26201: _BinaryOperation1 __binary_op1, 26201: _BinaryOperation2 __binary_op2) 26201: { 26201: 26201: 26201: 26201: ; 26201: 26201: for (; __first1 != __last1; ++__first1, (void)++__first2) 26201: __init = __binary_op1(__init, 26201: __binary_op2(*__first1, *__first2)); 26201: return __init; 26201: } 26201: # 253 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_numeric.h" 3 26201: template 26201: 26201: _OutputIterator 26201: partial_sum(_InputIterator __first, _InputIterator __last, 26201: _OutputIterator __result) 26201: { 26201: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: if (__first == __last) 26201: return __result; 26201: _ValueType __value = *__first; 26201: *__result = __value; 26201: while (++__first != __last) 26201: { 26201: __value = __value + *__first; 26201: *++__result = __value; 26201: } 26201: return ++__result; 26201: } 26201: # 294 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_numeric.h" 3 26201: template 26201: 26201: _OutputIterator 26201: partial_sum(_InputIterator __first, _InputIterator __last, 26201: _OutputIterator __result, _BinaryOperation __binary_op) 26201: { 26201: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: if (__first == __last) 26201: return __result; 26201: _ValueType __value = *__first; 26201: *__result = __value; 26201: while (++__first != __last) 26201: { 26201: __value = __binary_op(__value, *__first); 26201: *++__result = __value; 26201: } 26201: return ++__result; 26201: } 26201: # 335 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_numeric.h" 3 26201: template 26201: 26201: _OutputIterator 26201: adjacent_difference(_InputIterator __first, 26201: _InputIterator __last, _OutputIterator __result) 26201: { 26201: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: if (__first == __last) 26201: return __result; 26201: _ValueType __value = *__first; 26201: *__result = __value; 26201: while (++__first != __last) 26201: { 26201: _ValueType __tmp = *__first; 26201: *++__result = __tmp - __value; 26201: __value = std::move(__tmp); 26201: } 26201: return ++__result; 26201: } 26201: # 378 "/usr/x86_64-linux-gnu/include/c++/10/bits/stl_numeric.h" 3 26201: template 26201: 26201: _OutputIterator 26201: adjacent_difference(_InputIterator __first, _InputIterator __last, 26201: _OutputIterator __result, _BinaryOperation __binary_op) 26201: { 26201: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 26201: 26201: 26201: 26201: 26201: 26201: ; 26201: 26201: if (__first == __last) 26201: return __result; 26201: _ValueType __value = *__first; 26201: *__result = __value; 26201: while (++__first != __last) 26201: { 26201: _ValueType __tmp = *__first; 26201: *++__result = __binary_op(__tmp, __value); 26201: __value = std::move(__tmp); 26201: } 26201: return ++__result; 26201: } 26201: 26201: 26201: 26201: #undef _GLIBCXX_MOVE_IF_20 26201: 26201: 26201: } 26201: # 63 "/usr/x86_64-linux-gnu/include/c++/10/numeric" 2 3 26201: # 80 "/usr/x86_64-linux-gnu/include/c++/10/numeric" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: namespace __detail 26201: { 26201: 26201: 26201: template 26201: constexpr _Up 26201: __absu(_Tp __val) 26201: { 26201: static_assert(is_unsigned<_Up>::value, "result type must be unsigned"); 26201: static_assert(sizeof(_Up) >= sizeof(_Tp), 26201: "result type must be at least as wide as the input type"); 26201: return __val < 0 ? -(_Up)__val : (_Up)__val; 26201: } 26201: 26201: template void __absu(bool) = delete; 26201: 26201: 26201: template 26201: constexpr _Tp 26201: __gcd(_Tp __m, _Tp __n) 26201: { 26201: static_assert(is_unsigned<_Tp>::value, "type must be unsigned"); 26201: return __m == 0 ? __n 26201: : __n == 0 ? __m 26201: : __detail::__gcd(__n, _Tp(__m % __n)); 26201: } 26201: 26201: 26201: template 26201: constexpr _Tp 26201: __lcm(_Tp __m, _Tp __n) 26201: { 26201: return (__m != 0 && __n != 0) 26201: ? (__m / __detail::__gcd(__m, __n)) * __n 26201: : 0; 26201: } 26201: } 26201: 26201: 26201: 26201: #define __cpp_lib_gcd_lcm 201606 26201: 26201: #define __cpp_lib_gcd 201606 26201: #define __cpp_lib_lcm 201606 26201: 26201: 26201: template 26201: constexpr common_type_t<_Mn, _Nn> 26201: gcd(_Mn __m, _Nn __n) noexcept 26201: { 26201: static_assert(is_integral_v<_Mn>, "std::gcd arguments must be integers"); 26201: static_assert(is_integral_v<_Nn>, "std::gcd arguments must be integers"); 26201: static_assert(_Mn(2) != _Mn(1), "std::gcd arguments must not be bool"); 26201: static_assert(_Nn(2) != _Nn(1), "std::gcd arguments must not be bool"); 26201: using _Up = make_unsigned_t>; 26201: return __detail::__gcd(__detail::__absu<_Up>(__m), 26201: __detail::__absu<_Up>(__n)); 26201: } 26201: 26201: 26201: template 26201: constexpr common_type_t<_Mn, _Nn> 26201: lcm(_Mn __m, _Nn __n) noexcept 26201: { 26201: static_assert(is_integral_v<_Mn>, "std::lcm arguments must be integers"); 26201: static_assert(is_integral_v<_Nn>, "std::lcm arguments must be integers"); 26201: static_assert(_Mn(2) == 2, "std::lcm arguments must not be bool"); 26201: static_assert(_Nn(2) == 2, "std::lcm arguments must not be bool"); 26201: using _Up = make_unsigned_t>; 26201: return __detail::__lcm(__detail::__absu<_Up>(__m), 26201: __detail::__absu<_Up>(__n)); 26201: } 26201: 26201: 26201: 26201: 26201: } 26201: # 226 "/usr/x86_64-linux-gnu/include/c++/10/numeric" 3 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 256 "/usr/x86_64-linux-gnu/include/c++/10/numeric" 3 26201: template 26201: 26201: _Tp 26201: reduce(_InputIterator __first, _InputIterator __last, _Tp __init, 26201: _BinaryOperation __binary_op) 26201: { 26201: using __ref = typename iterator_traits<_InputIterator>::reference; 26201: static_assert(is_invocable_r_v<_Tp, _BinaryOperation&, _Tp&, __ref>); 26201: static_assert(is_invocable_r_v<_Tp, _BinaryOperation&, __ref, _Tp&>); 26201: static_assert(is_invocable_r_v<_Tp, _BinaryOperation&, _Tp&, _Tp&>); 26201: static_assert(is_invocable_r_v<_Tp, _BinaryOperation&, __ref, __ref>); 26201: if constexpr (__is_random_access_iter<_InputIterator>::value) 26201: { 26201: while ((__last - __first) >= 4) 26201: { 26201: _Tp __v1 = __binary_op(__first[0], __first[1]); 26201: _Tp __v2 = __binary_op(__first[2], __first[3]); 26201: _Tp __v3 = __binary_op(__v1, __v2); 26201: __init = __binary_op(__init, __v3); 26201: __first += 4; 26201: } 26201: } 26201: for (; __first != __last; ++__first) 26201: __init = __binary_op(__init, *__first); 26201: return __init; 26201: } 26201: # 294 "/usr/x86_64-linux-gnu/include/c++/10/numeric" 3 26201: template 26201: 26201: inline _Tp 26201: reduce(_InputIterator __first, _InputIterator __last, _Tp __init) 26201: { return std::reduce(__first, __last, std::move(__init), plus<>()); } 26201: # 311 "/usr/x86_64-linux-gnu/include/c++/10/numeric" 3 26201: template 26201: 26201: inline typename iterator_traits<_InputIterator>::value_type 26201: reduce(_InputIterator __first, _InputIterator __last) 26201: { 26201: using value_type = typename iterator_traits<_InputIterator>::value_type; 26201: return std::reduce(__first, __last, value_type{}, plus<>()); 26201: } 26201: # 338 "/usr/x86_64-linux-gnu/include/c++/10/numeric" 3 26201: template 26201: 26201: _Tp 26201: transform_reduce(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _Tp __init, 26201: _BinaryOperation1 __binary_op1, 26201: _BinaryOperation2 __binary_op2) 26201: { 26201: if constexpr (__and_v<__is_random_access_iter<_InputIterator1>, 26201: __is_random_access_iter<_InputIterator2>>) 26201: { 26201: while ((__last1 - __first1) >= 4) 26201: { 26201: _Tp __v1 = __binary_op1(__binary_op2(__first1[0], __first2[0]), 26201: __binary_op2(__first1[1], __first2[1])); 26201: _Tp __v2 = __binary_op1(__binary_op2(__first1[2], __first2[2]), 26201: __binary_op2(__first1[3], __first2[3])); 26201: _Tp __v3 = __binary_op1(__v1, __v2); 26201: __init = __binary_op1(__init, __v3); 26201: __first1 += 4; 26201: __first2 += 4; 26201: } 26201: } 26201: for (; __first1 != __last1; ++__first1, (void) ++__first2) 26201: __init = __binary_op1(__init, __binary_op2(*__first1, *__first2)); 26201: return __init; 26201: } 26201: # 382 "/usr/x86_64-linux-gnu/include/c++/10/numeric" 3 26201: template 26201: 26201: inline _Tp 26201: transform_reduce(_InputIterator1 __first1, _InputIterator1 __last1, 26201: _InputIterator2 __first2, _Tp __init) 26201: { 26201: return std::transform_reduce(__first1, __last1, __first2, 26201: std::move(__init), 26201: plus<>(), multiplies<>()); 26201: } 26201: # 407 "/usr/x86_64-linux-gnu/include/c++/10/numeric" 3 26201: template 26201: 26201: _Tp 26201: transform_reduce(_InputIterator __first, _InputIterator __last, _Tp __init, 26201: _BinaryOperation __binary_op, _UnaryOperation __unary_op) 26201: { 26201: if constexpr (__is_random_access_iter<_InputIterator>::value) 26201: { 26201: while ((__last - __first) >= 4) 26201: { 26201: _Tp __v1 = __binary_op(__unary_op(__first[0]), 26201: __unary_op(__first[1])); 26201: _Tp __v2 = __binary_op(__unary_op(__first[2]), 26201: __unary_op(__first[3])); 26201: _Tp __v3 = __binary_op(__v1, __v2); 26201: __init = __binary_op(__init, __v3); 26201: __first += 4; 26201: } 26201: } 26201: for (; __first != __last; ++__first) 26201: __init = __binary_op(__init, __unary_op(*__first)); 26201: return __init; 26201: } 26201: # 450 "/usr/x86_64-linux-gnu/include/c++/10/numeric" 3 26201: template 26201: 26201: _OutputIterator 26201: exclusive_scan(_InputIterator __first, _InputIterator __last, 26201: _OutputIterator __result, _Tp __init, 26201: _BinaryOperation __binary_op) 26201: { 26201: while (__first != __last) 26201: { 26201: auto __v = __init; 26201: __init = __binary_op(__init, *__first); 26201: ++__first; 26201: *__result++ = std::move(__v); 26201: } 26201: return __result; 26201: } 26201: # 485 "/usr/x86_64-linux-gnu/include/c++/10/numeric" 3 26201: template 26201: 26201: inline _OutputIterator 26201: exclusive_scan(_InputIterator __first, _InputIterator __last, 26201: _OutputIterator __result, _Tp __init) 26201: { 26201: return std::exclusive_scan(__first, __last, __result, std::move(__init), 26201: plus<>()); 26201: } 26201: # 513 "/usr/x86_64-linux-gnu/include/c++/10/numeric" 3 26201: template 26201: 26201: _OutputIterator 26201: inclusive_scan(_InputIterator __first, _InputIterator __last, 26201: _OutputIterator __result, _BinaryOperation __binary_op, 26201: _Tp __init) 26201: { 26201: for (; __first != __last; ++__first) 26201: *__result++ = __init = __binary_op(__init, *__first); 26201: return __result; 26201: } 26201: # 542 "/usr/x86_64-linux-gnu/include/c++/10/numeric" 3 26201: template 26201: 26201: _OutputIterator 26201: inclusive_scan(_InputIterator __first, _InputIterator __last, 26201: _OutputIterator __result, _BinaryOperation __binary_op) 26201: { 26201: if (__first != __last) 26201: { 26201: auto __init = *__first; 26201: *__result++ = __init; 26201: ++__first; 26201: if (__first != __last) 26201: __result = std::inclusive_scan(__first, __last, __result, 26201: __binary_op, std::move(__init)); 26201: } 26201: return __result; 26201: } 26201: # 576 "/usr/x86_64-linux-gnu/include/c++/10/numeric" 3 26201: template 26201: 26201: inline _OutputIterator 26201: inclusive_scan(_InputIterator __first, _InputIterator __last, 26201: _OutputIterator __result) 26201: { return std::inclusive_scan(__first, __last, __result, plus<>()); } 26201: # 603 "/usr/x86_64-linux-gnu/include/c++/10/numeric" 3 26201: template 26201: 26201: _OutputIterator 26201: transform_exclusive_scan(_InputIterator __first, _InputIterator __last, 26201: _OutputIterator __result, _Tp __init, 26201: _BinaryOperation __binary_op, 26201: _UnaryOperation __unary_op) 26201: { 26201: while (__first != __last) 26201: { 26201: auto __v = __init; 26201: __init = __binary_op(__init, __unary_op(*__first)); 26201: ++__first; 26201: *__result++ = std::move(__v); 26201: } 26201: return __result; 26201: } 26201: # 642 "/usr/x86_64-linux-gnu/include/c++/10/numeric" 3 26201: template 26201: 26201: _OutputIterator 26201: transform_inclusive_scan(_InputIterator __first, _InputIterator __last, 26201: _OutputIterator __result, 26201: _BinaryOperation __binary_op, 26201: _UnaryOperation __unary_op, 26201: _Tp __init) 26201: { 26201: for (; __first != __last; ++__first) 26201: *__result++ = __init = __binary_op(__init, __unary_op(*__first)); 26201: return __result; 26201: } 26201: # 676 "/usr/x86_64-linux-gnu/include/c++/10/numeric" 3 26201: template 26201: 26201: _OutputIterator 26201: transform_inclusive_scan(_InputIterator __first, _InputIterator __last, 26201: _OutputIterator __result, 26201: _BinaryOperation __binary_op, 26201: _UnaryOperation __unary_op) 26201: { 26201: if (__first != __last) 26201: { 26201: auto __init = __unary_op(*__first); 26201: *__result++ = __init; 26201: ++__first; 26201: if (__first != __last) 26201: __result = std::transform_inclusive_scan(__first, __last, __result, 26201: __binary_op, __unary_op, 26201: std::move(__init)); 26201: } 26201: return __result; 26201: } 26201: 26201: 26201: 26201: 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/pstl/glue_numeric_defs.h" 1 3 26201: # 11 "/usr/x86_64-linux-gnu/include/c++/10/pstl/glue_numeric_defs.h" 3 26201: #define _PSTL_GLUE_NUMERIC_DEFS_H 26201: 26201: 26201: 26201: namespace std 26201: { 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _Tp> 26201: reduce(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _Tp __init, 26201: _BinaryOperation __binary_op); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _Tp> 26201: reduce(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _Tp __init); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, 26201: typename iterator_traits<_ForwardIterator>::value_type> 26201: reduce(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _Tp> 26201: transform_reduce(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2, _Tp __init); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _Tp> 26201: transform_reduce(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, 26201: _ForwardIterator2 __first2, _Tp __init, _BinaryOperation1 __binary_op1, 26201: _BinaryOperation2 __binary_op2); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _Tp> 26201: transform_reduce(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, _Tp __init, 26201: _BinaryOperation __binary_op, _UnaryOperation __unary_op); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> 26201: exclusive_scan(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, 26201: _ForwardIterator2 __result, _Tp __init); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> 26201: exclusive_scan(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, 26201: _ForwardIterator2 __result, _Tp __init, _BinaryOperation __binary_op); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> 26201: inclusive_scan(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, 26201: _ForwardIterator2 __result); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> 26201: inclusive_scan(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, 26201: _ForwardIterator2 __result, _BinaryOperation __binary_op); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> 26201: inclusive_scan(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, 26201: _ForwardIterator2 __result, _BinaryOperation __binary_op, _Tp __init); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> 26201: transform_exclusive_scan(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, 26201: _ForwardIterator2 __result, _Tp __init, _BinaryOperation __binary_op, 26201: _UnaryOperation __unary_op); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> 26201: transform_inclusive_scan(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, 26201: _ForwardIterator2 __result, _BinaryOperation __binary_op, _UnaryOperation __unary_op, 26201: _Tp __init); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> 26201: transform_inclusive_scan(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, 26201: _ForwardIterator2 __result, _BinaryOperation __binary_op, _UnaryOperation __unary_op); 26201: 26201: 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> 26201: adjacent_difference(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, 26201: _ForwardIterator2 __d_first, _BinaryOperation op); 26201: 26201: template 26201: __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> 26201: adjacent_difference(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, 26201: _ForwardIterator2 __d_first); 26201: 26201: } 26201: # 710 "/usr/x86_64-linux-gnu/include/c++/10/numeric" 2 3 26201: #define _PSTL_NUMERIC_FORWARD_DECLARED 1 26201: 26201: 26201: 26201: #define __cpp_lib_parallel_algorithm 201603L 26201: # 29 "src/common/common.h" 2 26201: # 40 "src/common/common.h" 26201: #define FMT_USE_USER_DEFINED_LITERALS 0 26201: 26201: 26201: # 1 "/usr/include/fmt/format.h" 1 3 4 26201: # 34 "/usr/include/fmt/format.h" 3 4 26201: #define FMT_FORMAT_H_ 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/cerrno" 1 3 4 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/cerrno" 3 4 26201: 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/cerrno" 3 26201: # 38 "/usr/include/fmt/format.h" 2 3 4 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/cmath" 1 3 4 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/cmath" 3 4 26201: 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/cmath" 3 26201: 26201: 26201: 26201: 26201: #define _GLIBCXX_INCLUDE_NEXT_C_HEADERS 26201: # 1 "/usr/x86_64-linux-gnu/include/math.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #define _MATH_H 1 26201: 26201: #define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 3 26201: #undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION 26201: 26201: 26201: 26201: 26201: 26201: #undef __GLIBC_USE_LIB_EXT2 26201: 26201: 26201: #define __GLIBC_USE_LIB_EXT2 1 26201: # 49 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 3 26201: #undef __GLIBC_USE_IEC_60559_BFP_EXT 26201: 26201: #define __GLIBC_USE_IEC_60559_BFP_EXT 1 26201: 26201: 26201: 26201: #undef __GLIBC_USE_IEC_60559_BFP_EXT_C2X 26201: 26201: #define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 1 26201: # 66 "/usr/x86_64-linux-gnu/include/bits/libc-header-start.h" 3 26201: #undef __GLIBC_USE_IEC_60559_FUNCS_EXT 26201: 26201: #define __GLIBC_USE_IEC_60559_FUNCS_EXT 1 26201: 26201: 26201: 26201: #undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 26201: 26201: #define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: #undef __GLIBC_USE_IEC_60559_TYPES_EXT 26201: 26201: #define __GLIBC_USE_IEC_60559_TYPES_EXT 1 26201: # 28 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern "C" { 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/math-vector.h" 1 3 26201: # 25 "/usr/x86_64-linux-gnu/include/bits/math-vector.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/libm-simd-decl-stubs.h" 1 3 26201: # 34 "/usr/x86_64-linux-gnu/include/bits/libm-simd-decl-stubs.h" 3 26201: #define _BITS_LIBM_SIMD_DECL_STUBS_H 1 26201: 26201: #define __DECL_SIMD_cos 26201: #define __DECL_SIMD_cosf 26201: #define __DECL_SIMD_cosl 26201: #define __DECL_SIMD_cosf16 26201: #define __DECL_SIMD_cosf32 26201: #define __DECL_SIMD_cosf64 26201: #define __DECL_SIMD_cosf128 26201: #define __DECL_SIMD_cosf32x 26201: #define __DECL_SIMD_cosf64x 26201: #define __DECL_SIMD_cosf128x 26201: 26201: #define __DECL_SIMD_sin 26201: #define __DECL_SIMD_sinf 26201: #define __DECL_SIMD_sinl 26201: #define __DECL_SIMD_sinf16 26201: #define __DECL_SIMD_sinf32 26201: #define __DECL_SIMD_sinf64 26201: #define __DECL_SIMD_sinf128 26201: #define __DECL_SIMD_sinf32x 26201: #define __DECL_SIMD_sinf64x 26201: #define __DECL_SIMD_sinf128x 26201: 26201: #define __DECL_SIMD_sincos 26201: #define __DECL_SIMD_sincosf 26201: #define __DECL_SIMD_sincosl 26201: #define __DECL_SIMD_sincosf16 26201: #define __DECL_SIMD_sincosf32 26201: #define __DECL_SIMD_sincosf64 26201: #define __DECL_SIMD_sincosf128 26201: #define __DECL_SIMD_sincosf32x 26201: #define __DECL_SIMD_sincosf64x 26201: #define __DECL_SIMD_sincosf128x 26201: 26201: #define __DECL_SIMD_log 26201: #define __DECL_SIMD_logf 26201: #define __DECL_SIMD_logl 26201: #define __DECL_SIMD_logf16 26201: #define __DECL_SIMD_logf32 26201: #define __DECL_SIMD_logf64 26201: #define __DECL_SIMD_logf128 26201: #define __DECL_SIMD_logf32x 26201: #define __DECL_SIMD_logf64x 26201: #define __DECL_SIMD_logf128x 26201: 26201: #define __DECL_SIMD_exp 26201: #define __DECL_SIMD_expf 26201: #define __DECL_SIMD_expl 26201: #define __DECL_SIMD_expf16 26201: #define __DECL_SIMD_expf32 26201: #define __DECL_SIMD_expf64 26201: #define __DECL_SIMD_expf128 26201: #define __DECL_SIMD_expf32x 26201: #define __DECL_SIMD_expf64x 26201: #define __DECL_SIMD_expf128x 26201: 26201: #define __DECL_SIMD_pow 26201: #define __DECL_SIMD_powf 26201: #define __DECL_SIMD_powl 26201: #define __DECL_SIMD_powf16 26201: #define __DECL_SIMD_powf32 26201: #define __DECL_SIMD_powf64 26201: #define __DECL_SIMD_powf128 26201: #define __DECL_SIMD_powf32x 26201: #define __DECL_SIMD_powf64x 26201: #define __DECL_SIMD_powf128x 26201: # 26 "/usr/x86_64-linux-gnu/include/bits/math-vector.h" 2 3 26201: # 41 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define HUGE_VAL (__builtin_huge_val ()) 26201: # 59 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #define HUGE_VALF (__builtin_huge_valf ()) 26201: #define HUGE_VALL (__builtin_huge_vall ()) 26201: # 70 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #define HUGE_VAL_F32 (__builtin_huge_valf32 ()) 26201: 26201: 26201: #define HUGE_VAL_F64 (__builtin_huge_valf64 ()) 26201: 26201: 26201: #define HUGE_VAL_F128 (__builtin_huge_valf128 ()) 26201: 26201: 26201: #define HUGE_VAL_F32X (__builtin_huge_valf32x ()) 26201: 26201: 26201: #define HUGE_VAL_F64X (__builtin_huge_valf64x ()) 26201: # 91 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #define INFINITY (__builtin_inff ()) 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define NAN (__builtin_nanf ("")) 26201: # 110 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #define SNANF (__builtin_nansf ("")) 26201: #define SNAN (__builtin_nans ("")) 26201: #define SNANL (__builtin_nansl ("")) 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define SNANF32 (__builtin_nansf32 ("")) 26201: 26201: 26201: #define SNANF64 (__builtin_nansf64 ("")) 26201: 26201: 26201: #define SNANF128 (__builtin_nansf128 ("")) 26201: 26201: 26201: #define SNANF32X (__builtin_nansf32x ("")) 26201: 26201: 26201: #define SNANF64X (__builtin_nansf64x ("")) 26201: 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/flt-eval-method.h" 1 3 26201: # 27 "/usr/x86_64-linux-gnu/include/bits/flt-eval-method.h" 3 26201: #define __GLIBC_FLT_EVAL_METHOD __FLT_EVAL_METHOD__ 26201: # 139 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: # 149 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: typedef float float_t; 26201: typedef double double_t; 26201: # 190 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/fp-logb.h" 1 3 26201: # 23 "/usr/x86_64-linux-gnu/include/bits/fp-logb.h" 3 26201: #define __FP_LOGB0_IS_MIN 1 26201: #define __FP_LOGBNAN_IS_MIN 1 26201: # 191 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: 26201: 26201: #define FP_ILOGB0 (-2147483647 - 1) 26201: 26201: 26201: 26201: 26201: #define FP_ILOGBNAN (-2147483647 - 1) 26201: # 207 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #define __FP_LONG_MAX 0x7fffffffffffffffL 26201: 26201: 26201: #define FP_LLOGB0 (-__FP_LONG_MAX - 1) 26201: 26201: 26201: 26201: 26201: #define FP_LLOGBNAN (-__FP_LONG_MAX - 1) 26201: # 233 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/fp-fast.h" 1 3 26201: # 234 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: 26201: 26201: 26201: enum 26201: { 26201: FP_INT_UPWARD = 26201: #define FP_INT_UPWARD 0 26201: 0, 26201: FP_INT_DOWNWARD = 26201: #define FP_INT_DOWNWARD 1 26201: 1, 26201: FP_INT_TOWARDZERO = 26201: #define FP_INT_TOWARDZERO 2 26201: 2, 26201: FP_INT_TONEARESTFROMZERO = 26201: #define FP_INT_TONEARESTFROMZERO 3 26201: 3, 26201: FP_INT_TONEAREST = 26201: #define FP_INT_TONEAREST 4 26201: 4, 26201: }; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define __SIMD_DECL(function) __CONCAT (__DECL_SIMD_, function) 26201: 26201: #define __MATHCALL_VEC(function,suffix,args) __SIMD_DECL (__MATH_PRECNAME (function, suffix)) __MATHCALL (function, suffix, args) 26201: 26201: 26201: 26201: #define __MATHDECL_VEC(type,function,suffix,args) __SIMD_DECL (__MATH_PRECNAME (function, suffix)) __MATHDECL(type, function,suffix, args) 26201: 26201: 26201: 26201: #define __MATHCALL(function,suffix,args) __MATHDECL (_Mdouble_,function,suffix, args) 26201: 26201: #define __MATHDECL(type,function,suffix,args) __MATHDECL_1(type, function,suffix, args); __MATHDECL_1(type, __CONCAT(__,function),suffix, args) 26201: 26201: 26201: #define __MATHCALLX(function,suffix,args,attrib) __MATHDECLX (_Mdouble_,function,suffix, args, attrib) 26201: 26201: #define __MATHDECLX(type,function,suffix,args,attrib) __MATHDECL_1(type, function,suffix, args) __attribute__ (attrib); __MATHDECL_1(type, __CONCAT(__,function),suffix, args) __attribute__ (attrib) 26201: 26201: 26201: #define __MATHDECL_1(type,function,suffix,args) extern type __MATH_PRECNAME(function,suffix) args __THROW 26201: 26201: 26201: #define _Mdouble_ double 26201: #define __MATH_PRECNAME(name,r) __CONCAT(name,r) 26201: #define __MATH_DECLARING_DOUBLE 1 26201: #define __MATH_DECLARING_FLOATN 0 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls-helper-functions.h" 1 3 26201: # 21 "/usr/x86_64-linux-gnu/include/bits/mathcalls-helper-functions.h" 3 26201: extern int __fpclassify (double __value) throw () 26201: __attribute__ ((__const__)); 26201: 26201: 26201: extern int __signbit (double __value) throw () 26201: __attribute__ ((__const__)); 26201: 26201: 26201: 26201: extern int __isinf (double __value) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern int __finite (double __value) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern int __isnan (double __value) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern int __iseqsig (double __x, double __y) throw (); 26201: 26201: 26201: extern int __issignaling (double __value) throw () 26201: __attribute__ ((__const__)); 26201: # 290 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 1 3 26201: # 53 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern double acos (double __x) throw (); extern double __acos (double __x) throw (); 26201: 26201: extern double asin (double __x) throw (); extern double __asin (double __x) throw (); 26201: 26201: extern double atan (double __x) throw (); extern double __atan (double __x) throw (); 26201: 26201: extern double atan2 (double __y, double __x) throw (); extern double __atan2 (double __y, double __x) throw (); 26201: 26201: 26201: extern double cos (double __x) throw (); extern double __cos (double __x) throw (); 26201: 26201: extern double sin (double __x) throw (); extern double __sin (double __x) throw (); 26201: 26201: extern double tan (double __x) throw (); extern double __tan (double __x) throw (); 26201: 26201: 26201: 26201: 26201: extern double cosh (double __x) throw (); extern double __cosh (double __x) throw (); 26201: 26201: extern double sinh (double __x) throw (); extern double __sinh (double __x) throw (); 26201: 26201: extern double tanh (double __x) throw (); extern double __tanh (double __x) throw (); 26201: 26201: 26201: 26201: extern void sincos (double __x, double *__sinx, double *__cosx) throw (); extern void __sincos (double __x, double *__sinx, double *__cosx) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern double acosh (double __x) throw (); extern double __acosh (double __x) throw (); 26201: 26201: extern double asinh (double __x) throw (); extern double __asinh (double __x) throw (); 26201: 26201: extern double atanh (double __x) throw (); extern double __atanh (double __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern double exp (double __x) throw (); extern double __exp (double __x) throw (); 26201: 26201: 26201: extern double frexp (double __x, int *__exponent) throw (); extern double __frexp (double __x, int *__exponent) throw (); 26201: 26201: 26201: extern double ldexp (double __x, int __exponent) throw (); extern double __ldexp (double __x, int __exponent) throw (); 26201: 26201: 26201: extern double log (double __x) throw (); extern double __log (double __x) throw (); 26201: 26201: 26201: extern double log10 (double __x) throw (); extern double __log10 (double __x) throw (); 26201: 26201: 26201: extern double modf (double __x, double *__iptr) throw (); extern double __modf (double __x, double *__iptr) throw () __attribute__ ((__nonnull__ (2))); 26201: 26201: 26201: 26201: extern double exp10 (double __x) throw (); extern double __exp10 (double __x) throw (); 26201: 26201: 26201: 26201: 26201: extern double expm1 (double __x) throw (); extern double __expm1 (double __x) throw (); 26201: 26201: 26201: extern double log1p (double __x) throw (); extern double __log1p (double __x) throw (); 26201: 26201: 26201: extern double logb (double __x) throw (); extern double __logb (double __x) throw (); 26201: 26201: 26201: 26201: 26201: extern double exp2 (double __x) throw (); extern double __exp2 (double __x) throw (); 26201: 26201: 26201: extern double log2 (double __x) throw (); extern double __log2 (double __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern double pow (double __x, double __y) throw (); extern double __pow (double __x, double __y) throw (); 26201: 26201: 26201: extern double sqrt (double __x) throw (); extern double __sqrt (double __x) throw (); 26201: 26201: 26201: 26201: extern double hypot (double __x, double __y) throw (); extern double __hypot (double __x, double __y) throw (); 26201: 26201: 26201: 26201: 26201: extern double cbrt (double __x) throw (); extern double __cbrt (double __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern double ceil (double __x) throw () __attribute__ ((__const__)); extern double __ceil (double __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern double fabs (double __x) throw () __attribute__ ((__const__)); extern double __fabs (double __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern double floor (double __x) throw () __attribute__ ((__const__)); extern double __floor (double __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern double fmod (double __x, double __y) throw (); extern double __fmod (double __x, double __y) throw (); 26201: # 182 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern int finite (double __value) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern double drem (double __x, double __y) throw (); extern double __drem (double __x, double __y) throw (); 26201: 26201: 26201: 26201: extern double significand (double __x) throw (); extern double __significand (double __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern double copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double __copysign (double __x, double __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: 26201: extern double nan (const char *__tagb) throw (); extern double __nan (const char *__tagb) throw (); 26201: # 217 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern double j0 (double) throw (); extern double __j0 (double) throw (); 26201: extern double j1 (double) throw (); extern double __j1 (double) throw (); 26201: extern double jn (int, double) throw (); extern double __jn (int, double) throw (); 26201: extern double y0 (double) throw (); extern double __y0 (double) throw (); 26201: extern double y1 (double) throw (); extern double __y1 (double) throw (); 26201: extern double yn (int, double) throw (); extern double __yn (int, double) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern double erf (double) throw (); extern double __erf (double) throw (); 26201: extern double erfc (double) throw (); extern double __erfc (double) throw (); 26201: extern double lgamma (double) throw (); extern double __lgamma (double) throw (); 26201: 26201: 26201: 26201: 26201: extern double tgamma (double) throw (); extern double __tgamma (double) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern double gamma (double) throw (); extern double __gamma (double) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern double lgamma_r (double, int *__signgamp) throw (); extern double __lgamma_r (double, int *__signgamp) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern double rint (double __x) throw (); extern double __rint (double __x) throw (); 26201: 26201: 26201: extern double nextafter (double __x, double __y) throw (); extern double __nextafter (double __x, double __y) throw (); 26201: 26201: extern double nexttoward (double __x, long double __y) throw (); extern double __nexttoward (double __x, long double __y) throw (); 26201: 26201: 26201: 26201: 26201: extern double nextdown (double __x) throw (); extern double __nextdown (double __x) throw (); 26201: 26201: extern double nextup (double __x) throw (); extern double __nextup (double __x) throw (); 26201: 26201: 26201: 26201: extern double remainder (double __x, double __y) throw (); extern double __remainder (double __x, double __y) throw (); 26201: 26201: 26201: 26201: extern double scalbn (double __x, int __n) throw (); extern double __scalbn (double __x, int __n) throw (); 26201: 26201: 26201: 26201: extern int ilogb (double __x) throw (); extern int __ilogb (double __x) throw (); 26201: 26201: 26201: 26201: 26201: extern long int llogb (double __x) throw (); extern long int __llogb (double __x) throw (); 26201: 26201: 26201: 26201: 26201: extern double scalbln (double __x, long int __n) throw (); extern double __scalbln (double __x, long int __n) throw (); 26201: 26201: 26201: 26201: extern double nearbyint (double __x) throw (); extern double __nearbyint (double __x) throw (); 26201: 26201: 26201: 26201: extern double round (double __x) throw () __attribute__ ((__const__)); extern double __round (double __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: extern double trunc (double __x) throw () __attribute__ ((__const__)); extern double __trunc (double __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: 26201: extern double remquo (double __x, double __y, int *__quo) throw (); extern double __remquo (double __x, double __y, int *__quo) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern long int lrint (double __x) throw (); extern long int __lrint (double __x) throw (); 26201: __extension__ 26201: extern long long int llrint (double __x) throw (); extern long long int __llrint (double __x) throw (); 26201: 26201: 26201: 26201: extern long int lround (double __x) throw (); extern long int __lround (double __x) throw (); 26201: __extension__ 26201: extern long long int llround (double __x) throw (); extern long long int __llround (double __x) throw (); 26201: 26201: 26201: 26201: extern double fdim (double __x, double __y) throw (); extern double __fdim (double __x, double __y) throw (); 26201: 26201: 26201: extern double fmax (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmax (double __x, double __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern double fmin (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmin (double __x, double __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern double fma (double __x, double __y, double __z) throw (); extern double __fma (double __x, double __y, double __z) throw (); 26201: 26201: 26201: 26201: 26201: extern double roundeven (double __x) throw () __attribute__ ((__const__)); extern double __roundeven (double __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: extern __intmax_t fromfp (double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfp (double __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: extern __uintmax_t ufromfp (double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfp (double __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern __intmax_t fromfpx (double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpx (double __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern __uintmax_t ufromfpx (double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpx (double __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: extern double fmaxmag (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmaxmag (double __x, double __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern double fminmag (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fminmag (double __x, double __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern int canonicalize (double *__cx, const double *__x) throw (); 26201: 26201: 26201: 26201: 26201: extern int totalorder (const double *__x, const double *__y) throw () 26201: 26201: __attribute__ ((__pure__)); 26201: 26201: 26201: extern int totalordermag (const double *__x, const double *__y) throw () 26201: 26201: __attribute__ ((__pure__)); 26201: 26201: 26201: extern double getpayload (const double *__x) throw (); extern double __getpayload (const double *__x) throw (); 26201: 26201: 26201: extern int setpayload (double *__x, double __payload) throw (); 26201: 26201: 26201: extern int setpayloadsig (double *__x, double __payload) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern double scalb (double __x, double __n) throw (); extern double __scalb (double __x, double __n) throw (); 26201: # 291 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: #undef _Mdouble_ 26201: #undef __MATH_PRECNAME 26201: #undef __MATH_DECLARING_DOUBLE 26201: #undef __MATH_DECLARING_FLOATN 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define _Mdouble_ float 26201: #define __MATH_PRECNAME(name,r) name ##f ##r 26201: #define __MATH_DECLARING_DOUBLE 0 26201: #define __MATH_DECLARING_FLOATN 0 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls-helper-functions.h" 1 3 26201: # 21 "/usr/x86_64-linux-gnu/include/bits/mathcalls-helper-functions.h" 3 26201: extern int __fpclassifyf (float __value) throw () 26201: __attribute__ ((__const__)); 26201: 26201: 26201: extern int __signbitf (float __value) throw () 26201: __attribute__ ((__const__)); 26201: 26201: 26201: 26201: extern int __isinff (float __value) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern int __finitef (float __value) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern int __isnanf (float __value) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern int __iseqsigf (float __x, float __y) throw (); 26201: 26201: 26201: extern int __issignalingf (float __value) throw () 26201: __attribute__ ((__const__)); 26201: # 307 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 1 3 26201: # 53 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern float acosf (float __x) throw (); extern float __acosf (float __x) throw (); 26201: 26201: extern float asinf (float __x) throw (); extern float __asinf (float __x) throw (); 26201: 26201: extern float atanf (float __x) throw (); extern float __atanf (float __x) throw (); 26201: 26201: extern float atan2f (float __y, float __x) throw (); extern float __atan2f (float __y, float __x) throw (); 26201: 26201: 26201: extern float cosf (float __x) throw (); extern float __cosf (float __x) throw (); 26201: 26201: extern float sinf (float __x) throw (); extern float __sinf (float __x) throw (); 26201: 26201: extern float tanf (float __x) throw (); extern float __tanf (float __x) throw (); 26201: 26201: 26201: 26201: 26201: extern float coshf (float __x) throw (); extern float __coshf (float __x) throw (); 26201: 26201: extern float sinhf (float __x) throw (); extern float __sinhf (float __x) throw (); 26201: 26201: extern float tanhf (float __x) throw (); extern float __tanhf (float __x) throw (); 26201: 26201: 26201: 26201: extern void sincosf (float __x, float *__sinx, float *__cosx) throw (); extern void __sincosf (float __x, float *__sinx, float *__cosx) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern float acoshf (float __x) throw (); extern float __acoshf (float __x) throw (); 26201: 26201: extern float asinhf (float __x) throw (); extern float __asinhf (float __x) throw (); 26201: 26201: extern float atanhf (float __x) throw (); extern float __atanhf (float __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern float expf (float __x) throw (); extern float __expf (float __x) throw (); 26201: 26201: 26201: extern float frexpf (float __x, int *__exponent) throw (); extern float __frexpf (float __x, int *__exponent) throw (); 26201: 26201: 26201: extern float ldexpf (float __x, int __exponent) throw (); extern float __ldexpf (float __x, int __exponent) throw (); 26201: 26201: 26201: extern float logf (float __x) throw (); extern float __logf (float __x) throw (); 26201: 26201: 26201: extern float log10f (float __x) throw (); extern float __log10f (float __x) throw (); 26201: 26201: 26201: extern float modff (float __x, float *__iptr) throw (); extern float __modff (float __x, float *__iptr) throw () __attribute__ ((__nonnull__ (2))); 26201: 26201: 26201: 26201: extern float exp10f (float __x) throw (); extern float __exp10f (float __x) throw (); 26201: 26201: 26201: 26201: 26201: extern float expm1f (float __x) throw (); extern float __expm1f (float __x) throw (); 26201: 26201: 26201: extern float log1pf (float __x) throw (); extern float __log1pf (float __x) throw (); 26201: 26201: 26201: extern float logbf (float __x) throw (); extern float __logbf (float __x) throw (); 26201: 26201: 26201: 26201: 26201: extern float exp2f (float __x) throw (); extern float __exp2f (float __x) throw (); 26201: 26201: 26201: extern float log2f (float __x) throw (); extern float __log2f (float __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern float powf (float __x, float __y) throw (); extern float __powf (float __x, float __y) throw (); 26201: 26201: 26201: extern float sqrtf (float __x) throw (); extern float __sqrtf (float __x) throw (); 26201: 26201: 26201: 26201: extern float hypotf (float __x, float __y) throw (); extern float __hypotf (float __x, float __y) throw (); 26201: 26201: 26201: 26201: 26201: extern float cbrtf (float __x) throw (); extern float __cbrtf (float __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern float ceilf (float __x) throw () __attribute__ ((__const__)); extern float __ceilf (float __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern float fabsf (float __x) throw () __attribute__ ((__const__)); extern float __fabsf (float __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern float floorf (float __x) throw () __attribute__ ((__const__)); extern float __floorf (float __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern float fmodf (float __x, float __y) throw (); extern float __fmodf (float __x, float __y) throw (); 26201: # 177 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern int isinff (float __value) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: 26201: extern int finitef (float __value) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern float dremf (float __x, float __y) throw (); extern float __dremf (float __x, float __y) throw (); 26201: 26201: 26201: 26201: extern float significandf (float __x) throw (); extern float __significandf (float __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern float copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: 26201: extern float nanf (const char *__tagb) throw (); extern float __nanf (const char *__tagb) throw (); 26201: # 211 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern int isnanf (float __value) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: 26201: 26201: extern float j0f (float) throw (); extern float __j0f (float) throw (); 26201: extern float j1f (float) throw (); extern float __j1f (float) throw (); 26201: extern float jnf (int, float) throw (); extern float __jnf (int, float) throw (); 26201: extern float y0f (float) throw (); extern float __y0f (float) throw (); 26201: extern float y1f (float) throw (); extern float __y1f (float) throw (); 26201: extern float ynf (int, float) throw (); extern float __ynf (int, float) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern float erff (float) throw (); extern float __erff (float) throw (); 26201: extern float erfcf (float) throw (); extern float __erfcf (float) throw (); 26201: extern float lgammaf (float) throw (); extern float __lgammaf (float) throw (); 26201: 26201: 26201: 26201: 26201: extern float tgammaf (float) throw (); extern float __tgammaf (float) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern float gammaf (float) throw (); extern float __gammaf (float) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern float lgammaf_r (float, int *__signgamp) throw (); extern float __lgammaf_r (float, int *__signgamp) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern float rintf (float __x) throw (); extern float __rintf (float __x) throw (); 26201: 26201: 26201: extern float nextafterf (float __x, float __y) throw (); extern float __nextafterf (float __x, float __y) throw (); 26201: 26201: extern float nexttowardf (float __x, long double __y) throw (); extern float __nexttowardf (float __x, long double __y) throw (); 26201: 26201: 26201: 26201: 26201: extern float nextdownf (float __x) throw (); extern float __nextdownf (float __x) throw (); 26201: 26201: extern float nextupf (float __x) throw (); extern float __nextupf (float __x) throw (); 26201: 26201: 26201: 26201: extern float remainderf (float __x, float __y) throw (); extern float __remainderf (float __x, float __y) throw (); 26201: 26201: 26201: 26201: extern float scalbnf (float __x, int __n) throw (); extern float __scalbnf (float __x, int __n) throw (); 26201: 26201: 26201: 26201: extern int ilogbf (float __x) throw (); extern int __ilogbf (float __x) throw (); 26201: 26201: 26201: 26201: 26201: extern long int llogbf (float __x) throw (); extern long int __llogbf (float __x) throw (); 26201: 26201: 26201: 26201: 26201: extern float scalblnf (float __x, long int __n) throw (); extern float __scalblnf (float __x, long int __n) throw (); 26201: 26201: 26201: 26201: extern float nearbyintf (float __x) throw (); extern float __nearbyintf (float __x) throw (); 26201: 26201: 26201: 26201: extern float roundf (float __x) throw () __attribute__ ((__const__)); extern float __roundf (float __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: extern float truncf (float __x) throw () __attribute__ ((__const__)); extern float __truncf (float __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: 26201: extern float remquof (float __x, float __y, int *__quo) throw (); extern float __remquof (float __x, float __y, int *__quo) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern long int lrintf (float __x) throw (); extern long int __lrintf (float __x) throw (); 26201: __extension__ 26201: extern long long int llrintf (float __x) throw (); extern long long int __llrintf (float __x) throw (); 26201: 26201: 26201: 26201: extern long int lroundf (float __x) throw (); extern long int __lroundf (float __x) throw (); 26201: __extension__ 26201: extern long long int llroundf (float __x) throw (); extern long long int __llroundf (float __x) throw (); 26201: 26201: 26201: 26201: extern float fdimf (float __x, float __y) throw (); extern float __fdimf (float __x, float __y) throw (); 26201: 26201: 26201: extern float fmaxf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fmaxf (float __x, float __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern float fminf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fminf (float __x, float __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern float fmaf (float __x, float __y, float __z) throw (); extern float __fmaf (float __x, float __y, float __z) throw (); 26201: 26201: 26201: 26201: 26201: extern float roundevenf (float __x) throw () __attribute__ ((__const__)); extern float __roundevenf (float __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: extern __intmax_t fromfpf (float __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf (float __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: extern __uintmax_t ufromfpf (float __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf (float __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern __intmax_t fromfpxf (float __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf (float __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern __uintmax_t ufromfpxf (float __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf (float __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: extern float fmaxmagf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fmaxmagf (float __x, float __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern float fminmagf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fminmagf (float __x, float __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern int canonicalizef (float *__cx, const float *__x) throw (); 26201: 26201: 26201: 26201: 26201: extern int totalorderf (const float *__x, const float *__y) throw () 26201: 26201: __attribute__ ((__pure__)); 26201: 26201: 26201: extern int totalordermagf (const float *__x, const float *__y) throw () 26201: 26201: __attribute__ ((__pure__)); 26201: 26201: 26201: extern float getpayloadf (const float *__x) throw (); extern float __getpayloadf (const float *__x) throw (); 26201: 26201: 26201: extern int setpayloadf (float *__x, float __payload) throw (); 26201: 26201: 26201: extern int setpayloadsigf (float *__x, float __payload) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern float scalbf (float __x, float __n) throw (); extern float __scalbf (float __x, float __n) throw (); 26201: # 308 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: #undef _Mdouble_ 26201: #undef __MATH_PRECNAME 26201: #undef __MATH_DECLARING_DOUBLE 26201: #undef __MATH_DECLARING_FLOATN 26201: # 344 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #define _Mdouble_ long double 26201: #define __MATH_PRECNAME(name,r) name ##l ##r 26201: #define __MATH_DECLARING_DOUBLE 0 26201: #define __MATH_DECLARING_FLOATN 0 26201: #define __MATH_DECLARE_LDOUBLE 1 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls-helper-functions.h" 1 3 26201: # 21 "/usr/x86_64-linux-gnu/include/bits/mathcalls-helper-functions.h" 3 26201: extern int __fpclassifyl (long double __value) throw () 26201: __attribute__ ((__const__)); 26201: 26201: 26201: extern int __signbitl (long double __value) throw () 26201: __attribute__ ((__const__)); 26201: 26201: 26201: 26201: extern int __isinfl (long double __value) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern int __finitel (long double __value) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern int __isnanl (long double __value) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern int __iseqsigl (long double __x, long double __y) throw (); 26201: 26201: 26201: extern int __issignalingl (long double __value) throw () 26201: __attribute__ ((__const__)); 26201: # 350 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 1 3 26201: # 53 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern long double acosl (long double __x) throw (); extern long double __acosl (long double __x) throw (); 26201: 26201: extern long double asinl (long double __x) throw (); extern long double __asinl (long double __x) throw (); 26201: 26201: extern long double atanl (long double __x) throw (); extern long double __atanl (long double __x) throw (); 26201: 26201: extern long double atan2l (long double __y, long double __x) throw (); extern long double __atan2l (long double __y, long double __x) throw (); 26201: 26201: 26201: extern long double cosl (long double __x) throw (); extern long double __cosl (long double __x) throw (); 26201: 26201: extern long double sinl (long double __x) throw (); extern long double __sinl (long double __x) throw (); 26201: 26201: extern long double tanl (long double __x) throw (); extern long double __tanl (long double __x) throw (); 26201: 26201: 26201: 26201: 26201: extern long double coshl (long double __x) throw (); extern long double __coshl (long double __x) throw (); 26201: 26201: extern long double sinhl (long double __x) throw (); extern long double __sinhl (long double __x) throw (); 26201: 26201: extern long double tanhl (long double __x) throw (); extern long double __tanhl (long double __x) throw (); 26201: 26201: 26201: 26201: extern void sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern long double acoshl (long double __x) throw (); extern long double __acoshl (long double __x) throw (); 26201: 26201: extern long double asinhl (long double __x) throw (); extern long double __asinhl (long double __x) throw (); 26201: 26201: extern long double atanhl (long double __x) throw (); extern long double __atanhl (long double __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern long double expl (long double __x) throw (); extern long double __expl (long double __x) throw (); 26201: 26201: 26201: extern long double frexpl (long double __x, int *__exponent) throw (); extern long double __frexpl (long double __x, int *__exponent) throw (); 26201: 26201: 26201: extern long double ldexpl (long double __x, int __exponent) throw (); extern long double __ldexpl (long double __x, int __exponent) throw (); 26201: 26201: 26201: extern long double logl (long double __x) throw (); extern long double __logl (long double __x) throw (); 26201: 26201: 26201: extern long double log10l (long double __x) throw (); extern long double __log10l (long double __x) throw (); 26201: 26201: 26201: extern long double modfl (long double __x, long double *__iptr) throw (); extern long double __modfl (long double __x, long double *__iptr) throw () __attribute__ ((__nonnull__ (2))); 26201: 26201: 26201: 26201: extern long double exp10l (long double __x) throw (); extern long double __exp10l (long double __x) throw (); 26201: 26201: 26201: 26201: 26201: extern long double expm1l (long double __x) throw (); extern long double __expm1l (long double __x) throw (); 26201: 26201: 26201: extern long double log1pl (long double __x) throw (); extern long double __log1pl (long double __x) throw (); 26201: 26201: 26201: extern long double logbl (long double __x) throw (); extern long double __logbl (long double __x) throw (); 26201: 26201: 26201: 26201: 26201: extern long double exp2l (long double __x) throw (); extern long double __exp2l (long double __x) throw (); 26201: 26201: 26201: extern long double log2l (long double __x) throw (); extern long double __log2l (long double __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern long double powl (long double __x, long double __y) throw (); extern long double __powl (long double __x, long double __y) throw (); 26201: 26201: 26201: extern long double sqrtl (long double __x) throw (); extern long double __sqrtl (long double __x) throw (); 26201: 26201: 26201: 26201: extern long double hypotl (long double __x, long double __y) throw (); extern long double __hypotl (long double __x, long double __y) throw (); 26201: 26201: 26201: 26201: 26201: extern long double cbrtl (long double __x) throw (); extern long double __cbrtl (long double __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern long double ceill (long double __x) throw () __attribute__ ((__const__)); extern long double __ceill (long double __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern long double fabsl (long double __x) throw () __attribute__ ((__const__)); extern long double __fabsl (long double __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern long double floorl (long double __x) throw () __attribute__ ((__const__)); extern long double __floorl (long double __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern long double fmodl (long double __x, long double __y) throw (); extern long double __fmodl (long double __x, long double __y) throw (); 26201: # 177 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern int isinfl (long double __value) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: 26201: extern int finitel (long double __value) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern long double dreml (long double __x, long double __y) throw (); extern long double __dreml (long double __x, long double __y) throw (); 26201: 26201: 26201: 26201: extern long double significandl (long double __x) throw (); extern long double __significandl (long double __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern long double copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: 26201: extern long double nanl (const char *__tagb) throw (); extern long double __nanl (const char *__tagb) throw (); 26201: # 211 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern int isnanl (long double __value) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: 26201: 26201: extern long double j0l (long double) throw (); extern long double __j0l (long double) throw (); 26201: extern long double j1l (long double) throw (); extern long double __j1l (long double) throw (); 26201: extern long double jnl (int, long double) throw (); extern long double __jnl (int, long double) throw (); 26201: extern long double y0l (long double) throw (); extern long double __y0l (long double) throw (); 26201: extern long double y1l (long double) throw (); extern long double __y1l (long double) throw (); 26201: extern long double ynl (int, long double) throw (); extern long double __ynl (int, long double) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern long double erfl (long double) throw (); extern long double __erfl (long double) throw (); 26201: extern long double erfcl (long double) throw (); extern long double __erfcl (long double) throw (); 26201: extern long double lgammal (long double) throw (); extern long double __lgammal (long double) throw (); 26201: 26201: 26201: 26201: 26201: extern long double tgammal (long double) throw (); extern long double __tgammal (long double) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern long double gammal (long double) throw (); extern long double __gammal (long double) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern long double lgammal_r (long double, int *__signgamp) throw (); extern long double __lgammal_r (long double, int *__signgamp) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern long double rintl (long double __x) throw (); extern long double __rintl (long double __x) throw (); 26201: 26201: 26201: extern long double nextafterl (long double __x, long double __y) throw (); extern long double __nextafterl (long double __x, long double __y) throw (); 26201: 26201: extern long double nexttowardl (long double __x, long double __y) throw (); extern long double __nexttowardl (long double __x, long double __y) throw (); 26201: 26201: 26201: 26201: 26201: extern long double nextdownl (long double __x) throw (); extern long double __nextdownl (long double __x) throw (); 26201: 26201: extern long double nextupl (long double __x) throw (); extern long double __nextupl (long double __x) throw (); 26201: 26201: 26201: 26201: extern long double remainderl (long double __x, long double __y) throw (); extern long double __remainderl (long double __x, long double __y) throw (); 26201: 26201: 26201: 26201: extern long double scalbnl (long double __x, int __n) throw (); extern long double __scalbnl (long double __x, int __n) throw (); 26201: 26201: 26201: 26201: extern int ilogbl (long double __x) throw (); extern int __ilogbl (long double __x) throw (); 26201: 26201: 26201: 26201: 26201: extern long int llogbl (long double __x) throw (); extern long int __llogbl (long double __x) throw (); 26201: 26201: 26201: 26201: 26201: extern long double scalblnl (long double __x, long int __n) throw (); extern long double __scalblnl (long double __x, long int __n) throw (); 26201: 26201: 26201: 26201: extern long double nearbyintl (long double __x) throw (); extern long double __nearbyintl (long double __x) throw (); 26201: 26201: 26201: 26201: extern long double roundl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundl (long double __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: extern long double truncl (long double __x) throw () __attribute__ ((__const__)); extern long double __truncl (long double __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: 26201: extern long double remquol (long double __x, long double __y, int *__quo) throw (); extern long double __remquol (long double __x, long double __y, int *__quo) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern long int lrintl (long double __x) throw (); extern long int __lrintl (long double __x) throw (); 26201: __extension__ 26201: extern long long int llrintl (long double __x) throw (); extern long long int __llrintl (long double __x) throw (); 26201: 26201: 26201: 26201: extern long int lroundl (long double __x) throw (); extern long int __lroundl (long double __x) throw (); 26201: __extension__ 26201: extern long long int llroundl (long double __x) throw (); extern long long int __llroundl (long double __x) throw (); 26201: 26201: 26201: 26201: extern long double fdiml (long double __x, long double __y) throw (); extern long double __fdiml (long double __x, long double __y) throw (); 26201: 26201: 26201: extern long double fmaxl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fmaxl (long double __x, long double __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern long double fminl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fminl (long double __x, long double __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern long double fmal (long double __x, long double __y, long double __z) throw (); extern long double __fmal (long double __x, long double __y, long double __z) throw (); 26201: 26201: 26201: 26201: 26201: extern long double roundevenl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundevenl (long double __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: extern __intmax_t fromfpl (long double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpl (long double __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: extern __uintmax_t ufromfpl (long double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpl (long double __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern __intmax_t fromfpxl (long double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxl (long double __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern __uintmax_t ufromfpxl (long double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxl (long double __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: extern long double fmaxmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fmaxmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern long double fminmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fminmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern int canonicalizel (long double *__cx, const long double *__x) throw (); 26201: 26201: 26201: 26201: 26201: extern int totalorderl (const long double *__x, const long double *__y) throw () 26201: 26201: __attribute__ ((__pure__)); 26201: 26201: 26201: extern int totalordermagl (const long double *__x, const long double *__y) throw () 26201: 26201: __attribute__ ((__pure__)); 26201: 26201: 26201: extern long double getpayloadl (const long double *__x) throw (); extern long double __getpayloadl (const long double *__x) throw (); 26201: 26201: 26201: extern int setpayloadl (long double *__x, long double __payload) throw (); 26201: 26201: 26201: extern int setpayloadsigl (long double *__x, long double __payload) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern long double scalbl (long double __x, long double __n) throw (); extern long double __scalbl (long double __x, long double __n) throw (); 26201: # 351 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: #undef _Mdouble_ 26201: #undef __MATH_PRECNAME 26201: #undef __MATH_DECLARING_DOUBLE 26201: #undef __MATH_DECLARING_FLOATN 26201: # 381 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #define _Mdouble_ _Float32 26201: #define __MATH_PRECNAME(name,r) name ##f32 ##r 26201: #define __MATH_DECLARING_DOUBLE 0 26201: #define __MATH_DECLARING_FLOATN 1 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 1 3 26201: # 53 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern _Float32 acosf32 (_Float32 __x) throw (); extern _Float32 __acosf32 (_Float32 __x) throw (); 26201: 26201: extern _Float32 asinf32 (_Float32 __x) throw (); extern _Float32 __asinf32 (_Float32 __x) throw (); 26201: 26201: extern _Float32 atanf32 (_Float32 __x) throw (); extern _Float32 __atanf32 (_Float32 __x) throw (); 26201: 26201: extern _Float32 atan2f32 (_Float32 __y, _Float32 __x) throw (); extern _Float32 __atan2f32 (_Float32 __y, _Float32 __x) throw (); 26201: 26201: 26201: extern _Float32 cosf32 (_Float32 __x) throw (); extern _Float32 __cosf32 (_Float32 __x) throw (); 26201: 26201: extern _Float32 sinf32 (_Float32 __x) throw (); extern _Float32 __sinf32 (_Float32 __x) throw (); 26201: 26201: extern _Float32 tanf32 (_Float32 __x) throw (); extern _Float32 __tanf32 (_Float32 __x) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float32 coshf32 (_Float32 __x) throw (); extern _Float32 __coshf32 (_Float32 __x) throw (); 26201: 26201: extern _Float32 sinhf32 (_Float32 __x) throw (); extern _Float32 __sinhf32 (_Float32 __x) throw (); 26201: 26201: extern _Float32 tanhf32 (_Float32 __x) throw (); extern _Float32 __tanhf32 (_Float32 __x) throw (); 26201: 26201: 26201: 26201: extern void sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) throw (); extern void __sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern _Float32 acoshf32 (_Float32 __x) throw (); extern _Float32 __acoshf32 (_Float32 __x) throw (); 26201: 26201: extern _Float32 asinhf32 (_Float32 __x) throw (); extern _Float32 __asinhf32 (_Float32 __x) throw (); 26201: 26201: extern _Float32 atanhf32 (_Float32 __x) throw (); extern _Float32 __atanhf32 (_Float32 __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern _Float32 expf32 (_Float32 __x) throw (); extern _Float32 __expf32 (_Float32 __x) throw (); 26201: 26201: 26201: extern _Float32 frexpf32 (_Float32 __x, int *__exponent) throw (); extern _Float32 __frexpf32 (_Float32 __x, int *__exponent) throw (); 26201: 26201: 26201: extern _Float32 ldexpf32 (_Float32 __x, int __exponent) throw (); extern _Float32 __ldexpf32 (_Float32 __x, int __exponent) throw (); 26201: 26201: 26201: extern _Float32 logf32 (_Float32 __x) throw (); extern _Float32 __logf32 (_Float32 __x) throw (); 26201: 26201: 26201: extern _Float32 log10f32 (_Float32 __x) throw (); extern _Float32 __log10f32 (_Float32 __x) throw (); 26201: 26201: 26201: extern _Float32 modff32 (_Float32 __x, _Float32 *__iptr) throw (); extern _Float32 __modff32 (_Float32 __x, _Float32 *__iptr) throw () __attribute__ ((__nonnull__ (2))); 26201: 26201: 26201: 26201: extern _Float32 exp10f32 (_Float32 __x) throw (); extern _Float32 __exp10f32 (_Float32 __x) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float32 expm1f32 (_Float32 __x) throw (); extern _Float32 __expm1f32 (_Float32 __x) throw (); 26201: 26201: 26201: extern _Float32 log1pf32 (_Float32 __x) throw (); extern _Float32 __log1pf32 (_Float32 __x) throw (); 26201: 26201: 26201: extern _Float32 logbf32 (_Float32 __x) throw (); extern _Float32 __logbf32 (_Float32 __x) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float32 exp2f32 (_Float32 __x) throw (); extern _Float32 __exp2f32 (_Float32 __x) throw (); 26201: 26201: 26201: extern _Float32 log2f32 (_Float32 __x) throw (); extern _Float32 __log2f32 (_Float32 __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern _Float32 powf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __powf32 (_Float32 __x, _Float32 __y) throw (); 26201: 26201: 26201: extern _Float32 sqrtf32 (_Float32 __x) throw (); extern _Float32 __sqrtf32 (_Float32 __x) throw (); 26201: 26201: 26201: 26201: extern _Float32 hypotf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __hypotf32 (_Float32 __x, _Float32 __y) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float32 cbrtf32 (_Float32 __x) throw (); extern _Float32 __cbrtf32 (_Float32 __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern _Float32 ceilf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __ceilf32 (_Float32 __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float32 fabsf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __fabsf32 (_Float32 __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float32 floorf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __floorf32 (_Float32 __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float32 fmodf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __fmodf32 (_Float32 __x, _Float32 __y) throw (); 26201: # 196 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern _Float32 copysignf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __copysignf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: 26201: extern _Float32 nanf32 (const char *__tagb) throw (); extern _Float32 __nanf32 (const char *__tagb) throw (); 26201: # 217 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern _Float32 j0f32 (_Float32) throw (); extern _Float32 __j0f32 (_Float32) throw (); 26201: extern _Float32 j1f32 (_Float32) throw (); extern _Float32 __j1f32 (_Float32) throw (); 26201: extern _Float32 jnf32 (int, _Float32) throw (); extern _Float32 __jnf32 (int, _Float32) throw (); 26201: extern _Float32 y0f32 (_Float32) throw (); extern _Float32 __y0f32 (_Float32) throw (); 26201: extern _Float32 y1f32 (_Float32) throw (); extern _Float32 __y1f32 (_Float32) throw (); 26201: extern _Float32 ynf32 (int, _Float32) throw (); extern _Float32 __ynf32 (int, _Float32) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern _Float32 erff32 (_Float32) throw (); extern _Float32 __erff32 (_Float32) throw (); 26201: extern _Float32 erfcf32 (_Float32) throw (); extern _Float32 __erfcf32 (_Float32) throw (); 26201: extern _Float32 lgammaf32 (_Float32) throw (); extern _Float32 __lgammaf32 (_Float32) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float32 tgammaf32 (_Float32) throw (); extern _Float32 __tgammaf32 (_Float32) throw (); 26201: # 249 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern _Float32 lgammaf32_r (_Float32, int *__signgamp) throw (); extern _Float32 __lgammaf32_r (_Float32, int *__signgamp) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern _Float32 rintf32 (_Float32 __x) throw (); extern _Float32 __rintf32 (_Float32 __x) throw (); 26201: 26201: 26201: extern _Float32 nextafterf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __nextafterf32 (_Float32 __x, _Float32 __y) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern _Float32 nextdownf32 (_Float32 __x) throw (); extern _Float32 __nextdownf32 (_Float32 __x) throw (); 26201: 26201: extern _Float32 nextupf32 (_Float32 __x) throw (); extern _Float32 __nextupf32 (_Float32 __x) throw (); 26201: 26201: 26201: 26201: extern _Float32 remainderf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __remainderf32 (_Float32 __x, _Float32 __y) throw (); 26201: 26201: 26201: 26201: extern _Float32 scalbnf32 (_Float32 __x, int __n) throw (); extern _Float32 __scalbnf32 (_Float32 __x, int __n) throw (); 26201: 26201: 26201: 26201: extern int ilogbf32 (_Float32 __x) throw (); extern int __ilogbf32 (_Float32 __x) throw (); 26201: 26201: 26201: 26201: 26201: extern long int llogbf32 (_Float32 __x) throw (); extern long int __llogbf32 (_Float32 __x) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float32 scalblnf32 (_Float32 __x, long int __n) throw (); extern _Float32 __scalblnf32 (_Float32 __x, long int __n) throw (); 26201: 26201: 26201: 26201: extern _Float32 nearbyintf32 (_Float32 __x) throw (); extern _Float32 __nearbyintf32 (_Float32 __x) throw (); 26201: 26201: 26201: 26201: extern _Float32 roundf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __roundf32 (_Float32 __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: extern _Float32 truncf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __truncf32 (_Float32 __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: 26201: extern _Float32 remquof32 (_Float32 __x, _Float32 __y, int *__quo) throw (); extern _Float32 __remquof32 (_Float32 __x, _Float32 __y, int *__quo) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern long int lrintf32 (_Float32 __x) throw (); extern long int __lrintf32 (_Float32 __x) throw (); 26201: __extension__ 26201: extern long long int llrintf32 (_Float32 __x) throw (); extern long long int __llrintf32 (_Float32 __x) throw (); 26201: 26201: 26201: 26201: extern long int lroundf32 (_Float32 __x) throw (); extern long int __lroundf32 (_Float32 __x) throw (); 26201: __extension__ 26201: extern long long int llroundf32 (_Float32 __x) throw (); extern long long int __llroundf32 (_Float32 __x) throw (); 26201: 26201: 26201: 26201: extern _Float32 fdimf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __fdimf32 (_Float32 __x, _Float32 __y) throw (); 26201: 26201: 26201: extern _Float32 fmaxf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fmaxf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float32 fminf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fminf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float32 fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) throw (); extern _Float32 __fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float32 roundevenf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __roundevenf32 (_Float32 __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: extern __intmax_t fromfpf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf32 (_Float32 __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: extern __uintmax_t ufromfpf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf32 (_Float32 __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern __intmax_t fromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern __uintmax_t ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: extern _Float32 fmaxmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fmaxmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float32 fminmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fminmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern int canonicalizef32 (_Float32 *__cx, const _Float32 *__x) throw (); 26201: 26201: 26201: 26201: 26201: extern int totalorderf32 (const _Float32 *__x, const _Float32 *__y) throw () 26201: 26201: __attribute__ ((__pure__)); 26201: 26201: 26201: extern int totalordermagf32 (const _Float32 *__x, const _Float32 *__y) throw () 26201: 26201: __attribute__ ((__pure__)); 26201: 26201: 26201: extern _Float32 getpayloadf32 (const _Float32 *__x) throw (); extern _Float32 __getpayloadf32 (const _Float32 *__x) throw (); 26201: 26201: 26201: extern int setpayloadf32 (_Float32 *__x, _Float32 __payload) throw (); 26201: 26201: 26201: extern int setpayloadsigf32 (_Float32 *__x, _Float32 __payload) throw (); 26201: # 390 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: 26201: #undef _Mdouble_ 26201: #undef __MATH_PRECNAME 26201: #undef __MATH_DECLARING_DOUBLE 26201: #undef __MATH_DECLARING_FLOATN 26201: 26201: 26201: 26201: #define _Mdouble_ _Float64 26201: #define __MATH_PRECNAME(name,r) name ##f64 ##r 26201: #define __MATH_DECLARING_DOUBLE 0 26201: #define __MATH_DECLARING_FLOATN 1 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 1 3 26201: # 53 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern _Float64 acosf64 (_Float64 __x) throw (); extern _Float64 __acosf64 (_Float64 __x) throw (); 26201: 26201: extern _Float64 asinf64 (_Float64 __x) throw (); extern _Float64 __asinf64 (_Float64 __x) throw (); 26201: 26201: extern _Float64 atanf64 (_Float64 __x) throw (); extern _Float64 __atanf64 (_Float64 __x) throw (); 26201: 26201: extern _Float64 atan2f64 (_Float64 __y, _Float64 __x) throw (); extern _Float64 __atan2f64 (_Float64 __y, _Float64 __x) throw (); 26201: 26201: 26201: extern _Float64 cosf64 (_Float64 __x) throw (); extern _Float64 __cosf64 (_Float64 __x) throw (); 26201: 26201: extern _Float64 sinf64 (_Float64 __x) throw (); extern _Float64 __sinf64 (_Float64 __x) throw (); 26201: 26201: extern _Float64 tanf64 (_Float64 __x) throw (); extern _Float64 __tanf64 (_Float64 __x) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float64 coshf64 (_Float64 __x) throw (); extern _Float64 __coshf64 (_Float64 __x) throw (); 26201: 26201: extern _Float64 sinhf64 (_Float64 __x) throw (); extern _Float64 __sinhf64 (_Float64 __x) throw (); 26201: 26201: extern _Float64 tanhf64 (_Float64 __x) throw (); extern _Float64 __tanhf64 (_Float64 __x) throw (); 26201: 26201: 26201: 26201: extern void sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) throw (); extern void __sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern _Float64 acoshf64 (_Float64 __x) throw (); extern _Float64 __acoshf64 (_Float64 __x) throw (); 26201: 26201: extern _Float64 asinhf64 (_Float64 __x) throw (); extern _Float64 __asinhf64 (_Float64 __x) throw (); 26201: 26201: extern _Float64 atanhf64 (_Float64 __x) throw (); extern _Float64 __atanhf64 (_Float64 __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern _Float64 expf64 (_Float64 __x) throw (); extern _Float64 __expf64 (_Float64 __x) throw (); 26201: 26201: 26201: extern _Float64 frexpf64 (_Float64 __x, int *__exponent) throw (); extern _Float64 __frexpf64 (_Float64 __x, int *__exponent) throw (); 26201: 26201: 26201: extern _Float64 ldexpf64 (_Float64 __x, int __exponent) throw (); extern _Float64 __ldexpf64 (_Float64 __x, int __exponent) throw (); 26201: 26201: 26201: extern _Float64 logf64 (_Float64 __x) throw (); extern _Float64 __logf64 (_Float64 __x) throw (); 26201: 26201: 26201: extern _Float64 log10f64 (_Float64 __x) throw (); extern _Float64 __log10f64 (_Float64 __x) throw (); 26201: 26201: 26201: extern _Float64 modff64 (_Float64 __x, _Float64 *__iptr) throw (); extern _Float64 __modff64 (_Float64 __x, _Float64 *__iptr) throw () __attribute__ ((__nonnull__ (2))); 26201: 26201: 26201: 26201: extern _Float64 exp10f64 (_Float64 __x) throw (); extern _Float64 __exp10f64 (_Float64 __x) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float64 expm1f64 (_Float64 __x) throw (); extern _Float64 __expm1f64 (_Float64 __x) throw (); 26201: 26201: 26201: extern _Float64 log1pf64 (_Float64 __x) throw (); extern _Float64 __log1pf64 (_Float64 __x) throw (); 26201: 26201: 26201: extern _Float64 logbf64 (_Float64 __x) throw (); extern _Float64 __logbf64 (_Float64 __x) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float64 exp2f64 (_Float64 __x) throw (); extern _Float64 __exp2f64 (_Float64 __x) throw (); 26201: 26201: 26201: extern _Float64 log2f64 (_Float64 __x) throw (); extern _Float64 __log2f64 (_Float64 __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern _Float64 powf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __powf64 (_Float64 __x, _Float64 __y) throw (); 26201: 26201: 26201: extern _Float64 sqrtf64 (_Float64 __x) throw (); extern _Float64 __sqrtf64 (_Float64 __x) throw (); 26201: 26201: 26201: 26201: extern _Float64 hypotf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __hypotf64 (_Float64 __x, _Float64 __y) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float64 cbrtf64 (_Float64 __x) throw (); extern _Float64 __cbrtf64 (_Float64 __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern _Float64 ceilf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __ceilf64 (_Float64 __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float64 fabsf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __fabsf64 (_Float64 __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float64 floorf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __floorf64 (_Float64 __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float64 fmodf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __fmodf64 (_Float64 __x, _Float64 __y) throw (); 26201: # 196 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern _Float64 copysignf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __copysignf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: 26201: extern _Float64 nanf64 (const char *__tagb) throw (); extern _Float64 __nanf64 (const char *__tagb) throw (); 26201: # 217 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern _Float64 j0f64 (_Float64) throw (); extern _Float64 __j0f64 (_Float64) throw (); 26201: extern _Float64 j1f64 (_Float64) throw (); extern _Float64 __j1f64 (_Float64) throw (); 26201: extern _Float64 jnf64 (int, _Float64) throw (); extern _Float64 __jnf64 (int, _Float64) throw (); 26201: extern _Float64 y0f64 (_Float64) throw (); extern _Float64 __y0f64 (_Float64) throw (); 26201: extern _Float64 y1f64 (_Float64) throw (); extern _Float64 __y1f64 (_Float64) throw (); 26201: extern _Float64 ynf64 (int, _Float64) throw (); extern _Float64 __ynf64 (int, _Float64) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern _Float64 erff64 (_Float64) throw (); extern _Float64 __erff64 (_Float64) throw (); 26201: extern _Float64 erfcf64 (_Float64) throw (); extern _Float64 __erfcf64 (_Float64) throw (); 26201: extern _Float64 lgammaf64 (_Float64) throw (); extern _Float64 __lgammaf64 (_Float64) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float64 tgammaf64 (_Float64) throw (); extern _Float64 __tgammaf64 (_Float64) throw (); 26201: # 249 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern _Float64 lgammaf64_r (_Float64, int *__signgamp) throw (); extern _Float64 __lgammaf64_r (_Float64, int *__signgamp) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern _Float64 rintf64 (_Float64 __x) throw (); extern _Float64 __rintf64 (_Float64 __x) throw (); 26201: 26201: 26201: extern _Float64 nextafterf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __nextafterf64 (_Float64 __x, _Float64 __y) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern _Float64 nextdownf64 (_Float64 __x) throw (); extern _Float64 __nextdownf64 (_Float64 __x) throw (); 26201: 26201: extern _Float64 nextupf64 (_Float64 __x) throw (); extern _Float64 __nextupf64 (_Float64 __x) throw (); 26201: 26201: 26201: 26201: extern _Float64 remainderf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __remainderf64 (_Float64 __x, _Float64 __y) throw (); 26201: 26201: 26201: 26201: extern _Float64 scalbnf64 (_Float64 __x, int __n) throw (); extern _Float64 __scalbnf64 (_Float64 __x, int __n) throw (); 26201: 26201: 26201: 26201: extern int ilogbf64 (_Float64 __x) throw (); extern int __ilogbf64 (_Float64 __x) throw (); 26201: 26201: 26201: 26201: 26201: extern long int llogbf64 (_Float64 __x) throw (); extern long int __llogbf64 (_Float64 __x) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float64 scalblnf64 (_Float64 __x, long int __n) throw (); extern _Float64 __scalblnf64 (_Float64 __x, long int __n) throw (); 26201: 26201: 26201: 26201: extern _Float64 nearbyintf64 (_Float64 __x) throw (); extern _Float64 __nearbyintf64 (_Float64 __x) throw (); 26201: 26201: 26201: 26201: extern _Float64 roundf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __roundf64 (_Float64 __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: extern _Float64 truncf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __truncf64 (_Float64 __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: 26201: extern _Float64 remquof64 (_Float64 __x, _Float64 __y, int *__quo) throw (); extern _Float64 __remquof64 (_Float64 __x, _Float64 __y, int *__quo) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern long int lrintf64 (_Float64 __x) throw (); extern long int __lrintf64 (_Float64 __x) throw (); 26201: __extension__ 26201: extern long long int llrintf64 (_Float64 __x) throw (); extern long long int __llrintf64 (_Float64 __x) throw (); 26201: 26201: 26201: 26201: extern long int lroundf64 (_Float64 __x) throw (); extern long int __lroundf64 (_Float64 __x) throw (); 26201: __extension__ 26201: extern long long int llroundf64 (_Float64 __x) throw (); extern long long int __llroundf64 (_Float64 __x) throw (); 26201: 26201: 26201: 26201: extern _Float64 fdimf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __fdimf64 (_Float64 __x, _Float64 __y) throw (); 26201: 26201: 26201: extern _Float64 fmaxf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fmaxf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float64 fminf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fminf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float64 fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) throw (); extern _Float64 __fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float64 roundevenf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __roundevenf64 (_Float64 __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: extern __intmax_t fromfpf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf64 (_Float64 __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: extern __uintmax_t ufromfpf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf64 (_Float64 __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern __intmax_t fromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern __uintmax_t ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: extern _Float64 fmaxmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fmaxmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float64 fminmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fminmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern int canonicalizef64 (_Float64 *__cx, const _Float64 *__x) throw (); 26201: 26201: 26201: 26201: 26201: extern int totalorderf64 (const _Float64 *__x, const _Float64 *__y) throw () 26201: 26201: __attribute__ ((__pure__)); 26201: 26201: 26201: extern int totalordermagf64 (const _Float64 *__x, const _Float64 *__y) throw () 26201: 26201: __attribute__ ((__pure__)); 26201: 26201: 26201: extern _Float64 getpayloadf64 (const _Float64 *__x) throw (); extern _Float64 __getpayloadf64 (const _Float64 *__x) throw (); 26201: 26201: 26201: extern int setpayloadf64 (_Float64 *__x, _Float64 __payload) throw (); 26201: 26201: 26201: extern int setpayloadsigf64 (_Float64 *__x, _Float64 __payload) throw (); 26201: # 407 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: 26201: #undef _Mdouble_ 26201: #undef __MATH_PRECNAME 26201: #undef __MATH_DECLARING_DOUBLE 26201: #undef __MATH_DECLARING_FLOATN 26201: 26201: 26201: 26201: #define _Mdouble_ _Float128 26201: #define __MATH_PRECNAME(name,r) name ##f128 ##r 26201: #define __MATH_DECLARING_DOUBLE 0 26201: #define __MATH_DECLARING_FLOATN 1 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls-helper-functions.h" 1 3 26201: # 21 "/usr/x86_64-linux-gnu/include/bits/mathcalls-helper-functions.h" 3 26201: extern int __fpclassifyf128 (_Float128 __value) throw () 26201: __attribute__ ((__const__)); 26201: 26201: 26201: extern int __signbitf128 (_Float128 __value) throw () 26201: __attribute__ ((__const__)); 26201: 26201: 26201: 26201: extern int __isinff128 (_Float128 __value) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern int __finitef128 (_Float128 __value) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern int __isnanf128 (_Float128 __value) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern int __iseqsigf128 (_Float128 __x, _Float128 __y) throw (); 26201: 26201: 26201: extern int __issignalingf128 (_Float128 __value) throw () 26201: __attribute__ ((__const__)); 26201: # 421 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 1 3 26201: # 53 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern _Float128 acosf128 (_Float128 __x) throw (); extern _Float128 __acosf128 (_Float128 __x) throw (); 26201: 26201: extern _Float128 asinf128 (_Float128 __x) throw (); extern _Float128 __asinf128 (_Float128 __x) throw (); 26201: 26201: extern _Float128 atanf128 (_Float128 __x) throw (); extern _Float128 __atanf128 (_Float128 __x) throw (); 26201: 26201: extern _Float128 atan2f128 (_Float128 __y, _Float128 __x) throw (); extern _Float128 __atan2f128 (_Float128 __y, _Float128 __x) throw (); 26201: 26201: 26201: extern _Float128 cosf128 (_Float128 __x) throw (); extern _Float128 __cosf128 (_Float128 __x) throw (); 26201: 26201: extern _Float128 sinf128 (_Float128 __x) throw (); extern _Float128 __sinf128 (_Float128 __x) throw (); 26201: 26201: extern _Float128 tanf128 (_Float128 __x) throw (); extern _Float128 __tanf128 (_Float128 __x) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float128 coshf128 (_Float128 __x) throw (); extern _Float128 __coshf128 (_Float128 __x) throw (); 26201: 26201: extern _Float128 sinhf128 (_Float128 __x) throw (); extern _Float128 __sinhf128 (_Float128 __x) throw (); 26201: 26201: extern _Float128 tanhf128 (_Float128 __x) throw (); extern _Float128 __tanhf128 (_Float128 __x) throw (); 26201: 26201: 26201: 26201: extern void sincosf128 (_Float128 __x, _Float128 *__sinx, _Float128 *__cosx) throw (); extern void __sincosf128 (_Float128 __x, _Float128 *__sinx, _Float128 *__cosx) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern _Float128 acoshf128 (_Float128 __x) throw (); extern _Float128 __acoshf128 (_Float128 __x) throw (); 26201: 26201: extern _Float128 asinhf128 (_Float128 __x) throw (); extern _Float128 __asinhf128 (_Float128 __x) throw (); 26201: 26201: extern _Float128 atanhf128 (_Float128 __x) throw (); extern _Float128 __atanhf128 (_Float128 __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern _Float128 expf128 (_Float128 __x) throw (); extern _Float128 __expf128 (_Float128 __x) throw (); 26201: 26201: 26201: extern _Float128 frexpf128 (_Float128 __x, int *__exponent) throw (); extern _Float128 __frexpf128 (_Float128 __x, int *__exponent) throw (); 26201: 26201: 26201: extern _Float128 ldexpf128 (_Float128 __x, int __exponent) throw (); extern _Float128 __ldexpf128 (_Float128 __x, int __exponent) throw (); 26201: 26201: 26201: extern _Float128 logf128 (_Float128 __x) throw (); extern _Float128 __logf128 (_Float128 __x) throw (); 26201: 26201: 26201: extern _Float128 log10f128 (_Float128 __x) throw (); extern _Float128 __log10f128 (_Float128 __x) throw (); 26201: 26201: 26201: extern _Float128 modff128 (_Float128 __x, _Float128 *__iptr) throw (); extern _Float128 __modff128 (_Float128 __x, _Float128 *__iptr) throw () __attribute__ ((__nonnull__ (2))); 26201: 26201: 26201: 26201: extern _Float128 exp10f128 (_Float128 __x) throw (); extern _Float128 __exp10f128 (_Float128 __x) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float128 expm1f128 (_Float128 __x) throw (); extern _Float128 __expm1f128 (_Float128 __x) throw (); 26201: 26201: 26201: extern _Float128 log1pf128 (_Float128 __x) throw (); extern _Float128 __log1pf128 (_Float128 __x) throw (); 26201: 26201: 26201: extern _Float128 logbf128 (_Float128 __x) throw (); extern _Float128 __logbf128 (_Float128 __x) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float128 exp2f128 (_Float128 __x) throw (); extern _Float128 __exp2f128 (_Float128 __x) throw (); 26201: 26201: 26201: extern _Float128 log2f128 (_Float128 __x) throw (); extern _Float128 __log2f128 (_Float128 __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern _Float128 powf128 (_Float128 __x, _Float128 __y) throw (); extern _Float128 __powf128 (_Float128 __x, _Float128 __y) throw (); 26201: 26201: 26201: extern _Float128 sqrtf128 (_Float128 __x) throw (); extern _Float128 __sqrtf128 (_Float128 __x) throw (); 26201: 26201: 26201: 26201: extern _Float128 hypotf128 (_Float128 __x, _Float128 __y) throw (); extern _Float128 __hypotf128 (_Float128 __x, _Float128 __y) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float128 cbrtf128 (_Float128 __x) throw (); extern _Float128 __cbrtf128 (_Float128 __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern _Float128 ceilf128 (_Float128 __x) throw () __attribute__ ((__const__)); extern _Float128 __ceilf128 (_Float128 __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float128 fabsf128 (_Float128 __x) throw () __attribute__ ((__const__)); extern _Float128 __fabsf128 (_Float128 __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float128 floorf128 (_Float128 __x) throw () __attribute__ ((__const__)); extern _Float128 __floorf128 (_Float128 __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float128 fmodf128 (_Float128 __x, _Float128 __y) throw (); extern _Float128 __fmodf128 (_Float128 __x, _Float128 __y) throw (); 26201: # 196 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern _Float128 copysignf128 (_Float128 __x, _Float128 __y) throw () __attribute__ ((__const__)); extern _Float128 __copysignf128 (_Float128 __x, _Float128 __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: 26201: extern _Float128 nanf128 (const char *__tagb) throw (); extern _Float128 __nanf128 (const char *__tagb) throw (); 26201: # 217 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern _Float128 j0f128 (_Float128) throw (); extern _Float128 __j0f128 (_Float128) throw (); 26201: extern _Float128 j1f128 (_Float128) throw (); extern _Float128 __j1f128 (_Float128) throw (); 26201: extern _Float128 jnf128 (int, _Float128) throw (); extern _Float128 __jnf128 (int, _Float128) throw (); 26201: extern _Float128 y0f128 (_Float128) throw (); extern _Float128 __y0f128 (_Float128) throw (); 26201: extern _Float128 y1f128 (_Float128) throw (); extern _Float128 __y1f128 (_Float128) throw (); 26201: extern _Float128 ynf128 (int, _Float128) throw (); extern _Float128 __ynf128 (int, _Float128) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern _Float128 erff128 (_Float128) throw (); extern _Float128 __erff128 (_Float128) throw (); 26201: extern _Float128 erfcf128 (_Float128) throw (); extern _Float128 __erfcf128 (_Float128) throw (); 26201: extern _Float128 lgammaf128 (_Float128) throw (); extern _Float128 __lgammaf128 (_Float128) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float128 tgammaf128 (_Float128) throw (); extern _Float128 __tgammaf128 (_Float128) throw (); 26201: # 249 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern _Float128 lgammaf128_r (_Float128, int *__signgamp) throw (); extern _Float128 __lgammaf128_r (_Float128, int *__signgamp) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern _Float128 rintf128 (_Float128 __x) throw (); extern _Float128 __rintf128 (_Float128 __x) throw (); 26201: 26201: 26201: extern _Float128 nextafterf128 (_Float128 __x, _Float128 __y) throw (); extern _Float128 __nextafterf128 (_Float128 __x, _Float128 __y) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern _Float128 nextdownf128 (_Float128 __x) throw (); extern _Float128 __nextdownf128 (_Float128 __x) throw (); 26201: 26201: extern _Float128 nextupf128 (_Float128 __x) throw (); extern _Float128 __nextupf128 (_Float128 __x) throw (); 26201: 26201: 26201: 26201: extern _Float128 remainderf128 (_Float128 __x, _Float128 __y) throw (); extern _Float128 __remainderf128 (_Float128 __x, _Float128 __y) throw (); 26201: 26201: 26201: 26201: extern _Float128 scalbnf128 (_Float128 __x, int __n) throw (); extern _Float128 __scalbnf128 (_Float128 __x, int __n) throw (); 26201: 26201: 26201: 26201: extern int ilogbf128 (_Float128 __x) throw (); extern int __ilogbf128 (_Float128 __x) throw (); 26201: 26201: 26201: 26201: 26201: extern long int llogbf128 (_Float128 __x) throw (); extern long int __llogbf128 (_Float128 __x) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float128 scalblnf128 (_Float128 __x, long int __n) throw (); extern _Float128 __scalblnf128 (_Float128 __x, long int __n) throw (); 26201: 26201: 26201: 26201: extern _Float128 nearbyintf128 (_Float128 __x) throw (); extern _Float128 __nearbyintf128 (_Float128 __x) throw (); 26201: 26201: 26201: 26201: extern _Float128 roundf128 (_Float128 __x) throw () __attribute__ ((__const__)); extern _Float128 __roundf128 (_Float128 __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: extern _Float128 truncf128 (_Float128 __x) throw () __attribute__ ((__const__)); extern _Float128 __truncf128 (_Float128 __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: 26201: extern _Float128 remquof128 (_Float128 __x, _Float128 __y, int *__quo) throw (); extern _Float128 __remquof128 (_Float128 __x, _Float128 __y, int *__quo) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern long int lrintf128 (_Float128 __x) throw (); extern long int __lrintf128 (_Float128 __x) throw (); 26201: __extension__ 26201: extern long long int llrintf128 (_Float128 __x) throw (); extern long long int __llrintf128 (_Float128 __x) throw (); 26201: 26201: 26201: 26201: extern long int lroundf128 (_Float128 __x) throw (); extern long int __lroundf128 (_Float128 __x) throw (); 26201: __extension__ 26201: extern long long int llroundf128 (_Float128 __x) throw (); extern long long int __llroundf128 (_Float128 __x) throw (); 26201: 26201: 26201: 26201: extern _Float128 fdimf128 (_Float128 __x, _Float128 __y) throw (); extern _Float128 __fdimf128 (_Float128 __x, _Float128 __y) throw (); 26201: 26201: 26201: extern _Float128 fmaxf128 (_Float128 __x, _Float128 __y) throw () __attribute__ ((__const__)); extern _Float128 __fmaxf128 (_Float128 __x, _Float128 __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float128 fminf128 (_Float128 __x, _Float128 __y) throw () __attribute__ ((__const__)); extern _Float128 __fminf128 (_Float128 __x, _Float128 __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float128 fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) throw (); extern _Float128 __fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float128 roundevenf128 (_Float128 __x) throw () __attribute__ ((__const__)); extern _Float128 __roundevenf128 (_Float128 __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: extern __intmax_t fromfpf128 (_Float128 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf128 (_Float128 __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: extern __uintmax_t ufromfpf128 (_Float128 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf128 (_Float128 __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern __intmax_t fromfpxf128 (_Float128 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf128 (_Float128 __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern __uintmax_t ufromfpxf128 (_Float128 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf128 (_Float128 __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: extern _Float128 fmaxmagf128 (_Float128 __x, _Float128 __y) throw () __attribute__ ((__const__)); extern _Float128 __fmaxmagf128 (_Float128 __x, _Float128 __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float128 fminmagf128 (_Float128 __x, _Float128 __y) throw () __attribute__ ((__const__)); extern _Float128 __fminmagf128 (_Float128 __x, _Float128 __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern int canonicalizef128 (_Float128 *__cx, const _Float128 *__x) throw (); 26201: 26201: 26201: 26201: 26201: extern int totalorderf128 (const _Float128 *__x, const _Float128 *__y) throw () 26201: 26201: __attribute__ ((__pure__)); 26201: 26201: 26201: extern int totalordermagf128 (const _Float128 *__x, const _Float128 *__y) throw () 26201: 26201: __attribute__ ((__pure__)); 26201: 26201: 26201: extern _Float128 getpayloadf128 (const _Float128 *__x) throw (); extern _Float128 __getpayloadf128 (const _Float128 *__x) throw (); 26201: 26201: 26201: extern int setpayloadf128 (_Float128 *__x, _Float128 __payload) throw (); 26201: 26201: 26201: extern int setpayloadsigf128 (_Float128 *__x, _Float128 __payload) throw (); 26201: # 424 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: 26201: #undef _Mdouble_ 26201: #undef __MATH_PRECNAME 26201: #undef __MATH_DECLARING_DOUBLE 26201: #undef __MATH_DECLARING_FLOATN 26201: 26201: 26201: 26201: #define _Mdouble_ _Float32x 26201: #define __MATH_PRECNAME(name,r) name ##f32x ##r 26201: #define __MATH_DECLARING_DOUBLE 0 26201: #define __MATH_DECLARING_FLOATN 1 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 1 3 26201: # 53 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern _Float32x acosf32x (_Float32x __x) throw (); extern _Float32x __acosf32x (_Float32x __x) throw (); 26201: 26201: extern _Float32x asinf32x (_Float32x __x) throw (); extern _Float32x __asinf32x (_Float32x __x) throw (); 26201: 26201: extern _Float32x atanf32x (_Float32x __x) throw (); extern _Float32x __atanf32x (_Float32x __x) throw (); 26201: 26201: extern _Float32x atan2f32x (_Float32x __y, _Float32x __x) throw (); extern _Float32x __atan2f32x (_Float32x __y, _Float32x __x) throw (); 26201: 26201: 26201: extern _Float32x cosf32x (_Float32x __x) throw (); extern _Float32x __cosf32x (_Float32x __x) throw (); 26201: 26201: extern _Float32x sinf32x (_Float32x __x) throw (); extern _Float32x __sinf32x (_Float32x __x) throw (); 26201: 26201: extern _Float32x tanf32x (_Float32x __x) throw (); extern _Float32x __tanf32x (_Float32x __x) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float32x coshf32x (_Float32x __x) throw (); extern _Float32x __coshf32x (_Float32x __x) throw (); 26201: 26201: extern _Float32x sinhf32x (_Float32x __x) throw (); extern _Float32x __sinhf32x (_Float32x __x) throw (); 26201: 26201: extern _Float32x tanhf32x (_Float32x __x) throw (); extern _Float32x __tanhf32x (_Float32x __x) throw (); 26201: 26201: 26201: 26201: extern void sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) throw (); extern void __sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern _Float32x acoshf32x (_Float32x __x) throw (); extern _Float32x __acoshf32x (_Float32x __x) throw (); 26201: 26201: extern _Float32x asinhf32x (_Float32x __x) throw (); extern _Float32x __asinhf32x (_Float32x __x) throw (); 26201: 26201: extern _Float32x atanhf32x (_Float32x __x) throw (); extern _Float32x __atanhf32x (_Float32x __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern _Float32x expf32x (_Float32x __x) throw (); extern _Float32x __expf32x (_Float32x __x) throw (); 26201: 26201: 26201: extern _Float32x frexpf32x (_Float32x __x, int *__exponent) throw (); extern _Float32x __frexpf32x (_Float32x __x, int *__exponent) throw (); 26201: 26201: 26201: extern _Float32x ldexpf32x (_Float32x __x, int __exponent) throw (); extern _Float32x __ldexpf32x (_Float32x __x, int __exponent) throw (); 26201: 26201: 26201: extern _Float32x logf32x (_Float32x __x) throw (); extern _Float32x __logf32x (_Float32x __x) throw (); 26201: 26201: 26201: extern _Float32x log10f32x (_Float32x __x) throw (); extern _Float32x __log10f32x (_Float32x __x) throw (); 26201: 26201: 26201: extern _Float32x modff32x (_Float32x __x, _Float32x *__iptr) throw (); extern _Float32x __modff32x (_Float32x __x, _Float32x *__iptr) throw () __attribute__ ((__nonnull__ (2))); 26201: 26201: 26201: 26201: extern _Float32x exp10f32x (_Float32x __x) throw (); extern _Float32x __exp10f32x (_Float32x __x) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float32x expm1f32x (_Float32x __x) throw (); extern _Float32x __expm1f32x (_Float32x __x) throw (); 26201: 26201: 26201: extern _Float32x log1pf32x (_Float32x __x) throw (); extern _Float32x __log1pf32x (_Float32x __x) throw (); 26201: 26201: 26201: extern _Float32x logbf32x (_Float32x __x) throw (); extern _Float32x __logbf32x (_Float32x __x) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float32x exp2f32x (_Float32x __x) throw (); extern _Float32x __exp2f32x (_Float32x __x) throw (); 26201: 26201: 26201: extern _Float32x log2f32x (_Float32x __x) throw (); extern _Float32x __log2f32x (_Float32x __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern _Float32x powf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __powf32x (_Float32x __x, _Float32x __y) throw (); 26201: 26201: 26201: extern _Float32x sqrtf32x (_Float32x __x) throw (); extern _Float32x __sqrtf32x (_Float32x __x) throw (); 26201: 26201: 26201: 26201: extern _Float32x hypotf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __hypotf32x (_Float32x __x, _Float32x __y) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float32x cbrtf32x (_Float32x __x) throw (); extern _Float32x __cbrtf32x (_Float32x __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern _Float32x ceilf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __ceilf32x (_Float32x __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float32x fabsf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __fabsf32x (_Float32x __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float32x floorf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __floorf32x (_Float32x __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float32x fmodf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __fmodf32x (_Float32x __x, _Float32x __y) throw (); 26201: # 196 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern _Float32x copysignf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __copysignf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: 26201: extern _Float32x nanf32x (const char *__tagb) throw (); extern _Float32x __nanf32x (const char *__tagb) throw (); 26201: # 217 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern _Float32x j0f32x (_Float32x) throw (); extern _Float32x __j0f32x (_Float32x) throw (); 26201: extern _Float32x j1f32x (_Float32x) throw (); extern _Float32x __j1f32x (_Float32x) throw (); 26201: extern _Float32x jnf32x (int, _Float32x) throw (); extern _Float32x __jnf32x (int, _Float32x) throw (); 26201: extern _Float32x y0f32x (_Float32x) throw (); extern _Float32x __y0f32x (_Float32x) throw (); 26201: extern _Float32x y1f32x (_Float32x) throw (); extern _Float32x __y1f32x (_Float32x) throw (); 26201: extern _Float32x ynf32x (int, _Float32x) throw (); extern _Float32x __ynf32x (int, _Float32x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern _Float32x erff32x (_Float32x) throw (); extern _Float32x __erff32x (_Float32x) throw (); 26201: extern _Float32x erfcf32x (_Float32x) throw (); extern _Float32x __erfcf32x (_Float32x) throw (); 26201: extern _Float32x lgammaf32x (_Float32x) throw (); extern _Float32x __lgammaf32x (_Float32x) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float32x tgammaf32x (_Float32x) throw (); extern _Float32x __tgammaf32x (_Float32x) throw (); 26201: # 249 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern _Float32x lgammaf32x_r (_Float32x, int *__signgamp) throw (); extern _Float32x __lgammaf32x_r (_Float32x, int *__signgamp) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern _Float32x rintf32x (_Float32x __x) throw (); extern _Float32x __rintf32x (_Float32x __x) throw (); 26201: 26201: 26201: extern _Float32x nextafterf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __nextafterf32x (_Float32x __x, _Float32x __y) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern _Float32x nextdownf32x (_Float32x __x) throw (); extern _Float32x __nextdownf32x (_Float32x __x) throw (); 26201: 26201: extern _Float32x nextupf32x (_Float32x __x) throw (); extern _Float32x __nextupf32x (_Float32x __x) throw (); 26201: 26201: 26201: 26201: extern _Float32x remainderf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __remainderf32x (_Float32x __x, _Float32x __y) throw (); 26201: 26201: 26201: 26201: extern _Float32x scalbnf32x (_Float32x __x, int __n) throw (); extern _Float32x __scalbnf32x (_Float32x __x, int __n) throw (); 26201: 26201: 26201: 26201: extern int ilogbf32x (_Float32x __x) throw (); extern int __ilogbf32x (_Float32x __x) throw (); 26201: 26201: 26201: 26201: 26201: extern long int llogbf32x (_Float32x __x) throw (); extern long int __llogbf32x (_Float32x __x) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float32x scalblnf32x (_Float32x __x, long int __n) throw (); extern _Float32x __scalblnf32x (_Float32x __x, long int __n) throw (); 26201: 26201: 26201: 26201: extern _Float32x nearbyintf32x (_Float32x __x) throw (); extern _Float32x __nearbyintf32x (_Float32x __x) throw (); 26201: 26201: 26201: 26201: extern _Float32x roundf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __roundf32x (_Float32x __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: extern _Float32x truncf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __truncf32x (_Float32x __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: 26201: extern _Float32x remquof32x (_Float32x __x, _Float32x __y, int *__quo) throw (); extern _Float32x __remquof32x (_Float32x __x, _Float32x __y, int *__quo) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern long int lrintf32x (_Float32x __x) throw (); extern long int __lrintf32x (_Float32x __x) throw (); 26201: __extension__ 26201: extern long long int llrintf32x (_Float32x __x) throw (); extern long long int __llrintf32x (_Float32x __x) throw (); 26201: 26201: 26201: 26201: extern long int lroundf32x (_Float32x __x) throw (); extern long int __lroundf32x (_Float32x __x) throw (); 26201: __extension__ 26201: extern long long int llroundf32x (_Float32x __x) throw (); extern long long int __llroundf32x (_Float32x __x) throw (); 26201: 26201: 26201: 26201: extern _Float32x fdimf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __fdimf32x (_Float32x __x, _Float32x __y) throw (); 26201: 26201: 26201: extern _Float32x fmaxf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fmaxf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float32x fminf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fminf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float32x fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) throw (); extern _Float32x __fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float32x roundevenf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __roundevenf32x (_Float32x __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: extern __intmax_t fromfpf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf32x (_Float32x __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: extern __uintmax_t ufromfpf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf32x (_Float32x __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern __intmax_t fromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern __uintmax_t ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: extern _Float32x fmaxmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fmaxmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float32x fminmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fminmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern int canonicalizef32x (_Float32x *__cx, const _Float32x *__x) throw (); 26201: 26201: 26201: 26201: 26201: extern int totalorderf32x (const _Float32x *__x, const _Float32x *__y) throw () 26201: 26201: __attribute__ ((__pure__)); 26201: 26201: 26201: extern int totalordermagf32x (const _Float32x *__x, const _Float32x *__y) throw () 26201: 26201: __attribute__ ((__pure__)); 26201: 26201: 26201: extern _Float32x getpayloadf32x (const _Float32x *__x) throw (); extern _Float32x __getpayloadf32x (const _Float32x *__x) throw (); 26201: 26201: 26201: extern int setpayloadf32x (_Float32x *__x, _Float32x __payload) throw (); 26201: 26201: 26201: extern int setpayloadsigf32x (_Float32x *__x, _Float32x __payload) throw (); 26201: # 441 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: 26201: #undef _Mdouble_ 26201: #undef __MATH_PRECNAME 26201: #undef __MATH_DECLARING_DOUBLE 26201: #undef __MATH_DECLARING_FLOATN 26201: 26201: 26201: 26201: #define _Mdouble_ _Float64x 26201: #define __MATH_PRECNAME(name,r) name ##f64x ##r 26201: #define __MATH_DECLARING_DOUBLE 0 26201: #define __MATH_DECLARING_FLOATN 1 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 1 3 26201: # 53 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern _Float64x acosf64x (_Float64x __x) throw (); extern _Float64x __acosf64x (_Float64x __x) throw (); 26201: 26201: extern _Float64x asinf64x (_Float64x __x) throw (); extern _Float64x __asinf64x (_Float64x __x) throw (); 26201: 26201: extern _Float64x atanf64x (_Float64x __x) throw (); extern _Float64x __atanf64x (_Float64x __x) throw (); 26201: 26201: extern _Float64x atan2f64x (_Float64x __y, _Float64x __x) throw (); extern _Float64x __atan2f64x (_Float64x __y, _Float64x __x) throw (); 26201: 26201: 26201: extern _Float64x cosf64x (_Float64x __x) throw (); extern _Float64x __cosf64x (_Float64x __x) throw (); 26201: 26201: extern _Float64x sinf64x (_Float64x __x) throw (); extern _Float64x __sinf64x (_Float64x __x) throw (); 26201: 26201: extern _Float64x tanf64x (_Float64x __x) throw (); extern _Float64x __tanf64x (_Float64x __x) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float64x coshf64x (_Float64x __x) throw (); extern _Float64x __coshf64x (_Float64x __x) throw (); 26201: 26201: extern _Float64x sinhf64x (_Float64x __x) throw (); extern _Float64x __sinhf64x (_Float64x __x) throw (); 26201: 26201: extern _Float64x tanhf64x (_Float64x __x) throw (); extern _Float64x __tanhf64x (_Float64x __x) throw (); 26201: 26201: 26201: 26201: extern void sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) throw (); extern void __sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern _Float64x acoshf64x (_Float64x __x) throw (); extern _Float64x __acoshf64x (_Float64x __x) throw (); 26201: 26201: extern _Float64x asinhf64x (_Float64x __x) throw (); extern _Float64x __asinhf64x (_Float64x __x) throw (); 26201: 26201: extern _Float64x atanhf64x (_Float64x __x) throw (); extern _Float64x __atanhf64x (_Float64x __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern _Float64x expf64x (_Float64x __x) throw (); extern _Float64x __expf64x (_Float64x __x) throw (); 26201: 26201: 26201: extern _Float64x frexpf64x (_Float64x __x, int *__exponent) throw (); extern _Float64x __frexpf64x (_Float64x __x, int *__exponent) throw (); 26201: 26201: 26201: extern _Float64x ldexpf64x (_Float64x __x, int __exponent) throw (); extern _Float64x __ldexpf64x (_Float64x __x, int __exponent) throw (); 26201: 26201: 26201: extern _Float64x logf64x (_Float64x __x) throw (); extern _Float64x __logf64x (_Float64x __x) throw (); 26201: 26201: 26201: extern _Float64x log10f64x (_Float64x __x) throw (); extern _Float64x __log10f64x (_Float64x __x) throw (); 26201: 26201: 26201: extern _Float64x modff64x (_Float64x __x, _Float64x *__iptr) throw (); extern _Float64x __modff64x (_Float64x __x, _Float64x *__iptr) throw () __attribute__ ((__nonnull__ (2))); 26201: 26201: 26201: 26201: extern _Float64x exp10f64x (_Float64x __x) throw (); extern _Float64x __exp10f64x (_Float64x __x) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float64x expm1f64x (_Float64x __x) throw (); extern _Float64x __expm1f64x (_Float64x __x) throw (); 26201: 26201: 26201: extern _Float64x log1pf64x (_Float64x __x) throw (); extern _Float64x __log1pf64x (_Float64x __x) throw (); 26201: 26201: 26201: extern _Float64x logbf64x (_Float64x __x) throw (); extern _Float64x __logbf64x (_Float64x __x) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float64x exp2f64x (_Float64x __x) throw (); extern _Float64x __exp2f64x (_Float64x __x) throw (); 26201: 26201: 26201: extern _Float64x log2f64x (_Float64x __x) throw (); extern _Float64x __log2f64x (_Float64x __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern _Float64x powf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __powf64x (_Float64x __x, _Float64x __y) throw (); 26201: 26201: 26201: extern _Float64x sqrtf64x (_Float64x __x) throw (); extern _Float64x __sqrtf64x (_Float64x __x) throw (); 26201: 26201: 26201: 26201: extern _Float64x hypotf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __hypotf64x (_Float64x __x, _Float64x __y) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float64x cbrtf64x (_Float64x __x) throw (); extern _Float64x __cbrtf64x (_Float64x __x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern _Float64x ceilf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __ceilf64x (_Float64x __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float64x fabsf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __fabsf64x (_Float64x __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float64x floorf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __floorf64x (_Float64x __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float64x fmodf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __fmodf64x (_Float64x __x, _Float64x __y) throw (); 26201: # 196 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern _Float64x copysignf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __copysignf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: 26201: extern _Float64x nanf64x (const char *__tagb) throw (); extern _Float64x __nanf64x (const char *__tagb) throw (); 26201: # 217 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern _Float64x j0f64x (_Float64x) throw (); extern _Float64x __j0f64x (_Float64x) throw (); 26201: extern _Float64x j1f64x (_Float64x) throw (); extern _Float64x __j1f64x (_Float64x) throw (); 26201: extern _Float64x jnf64x (int, _Float64x) throw (); extern _Float64x __jnf64x (int, _Float64x) throw (); 26201: extern _Float64x y0f64x (_Float64x) throw (); extern _Float64x __y0f64x (_Float64x) throw (); 26201: extern _Float64x y1f64x (_Float64x) throw (); extern _Float64x __y1f64x (_Float64x) throw (); 26201: extern _Float64x ynf64x (int, _Float64x) throw (); extern _Float64x __ynf64x (int, _Float64x) throw (); 26201: 26201: 26201: 26201: 26201: 26201: extern _Float64x erff64x (_Float64x) throw (); extern _Float64x __erff64x (_Float64x) throw (); 26201: extern _Float64x erfcf64x (_Float64x) throw (); extern _Float64x __erfcf64x (_Float64x) throw (); 26201: extern _Float64x lgammaf64x (_Float64x) throw (); extern _Float64x __lgammaf64x (_Float64x) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float64x tgammaf64x (_Float64x) throw (); extern _Float64x __tgammaf64x (_Float64x) throw (); 26201: # 249 "/usr/x86_64-linux-gnu/include/bits/mathcalls.h" 3 26201: extern _Float64x lgammaf64x_r (_Float64x, int *__signgamp) throw (); extern _Float64x __lgammaf64x_r (_Float64x, int *__signgamp) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern _Float64x rintf64x (_Float64x __x) throw (); extern _Float64x __rintf64x (_Float64x __x) throw (); 26201: 26201: 26201: extern _Float64x nextafterf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __nextafterf64x (_Float64x __x, _Float64x __y) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern _Float64x nextdownf64x (_Float64x __x) throw (); extern _Float64x __nextdownf64x (_Float64x __x) throw (); 26201: 26201: extern _Float64x nextupf64x (_Float64x __x) throw (); extern _Float64x __nextupf64x (_Float64x __x) throw (); 26201: 26201: 26201: 26201: extern _Float64x remainderf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __remainderf64x (_Float64x __x, _Float64x __y) throw (); 26201: 26201: 26201: 26201: extern _Float64x scalbnf64x (_Float64x __x, int __n) throw (); extern _Float64x __scalbnf64x (_Float64x __x, int __n) throw (); 26201: 26201: 26201: 26201: extern int ilogbf64x (_Float64x __x) throw (); extern int __ilogbf64x (_Float64x __x) throw (); 26201: 26201: 26201: 26201: 26201: extern long int llogbf64x (_Float64x __x) throw (); extern long int __llogbf64x (_Float64x __x) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float64x scalblnf64x (_Float64x __x, long int __n) throw (); extern _Float64x __scalblnf64x (_Float64x __x, long int __n) throw (); 26201: 26201: 26201: 26201: extern _Float64x nearbyintf64x (_Float64x __x) throw (); extern _Float64x __nearbyintf64x (_Float64x __x) throw (); 26201: 26201: 26201: 26201: extern _Float64x roundf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __roundf64x (_Float64x __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: extern _Float64x truncf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __truncf64x (_Float64x __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: 26201: extern _Float64x remquof64x (_Float64x __x, _Float64x __y, int *__quo) throw (); extern _Float64x __remquof64x (_Float64x __x, _Float64x __y, int *__quo) throw (); 26201: 26201: 26201: 26201: 26201: 26201: 26201: extern long int lrintf64x (_Float64x __x) throw (); extern long int __lrintf64x (_Float64x __x) throw (); 26201: __extension__ 26201: extern long long int llrintf64x (_Float64x __x) throw (); extern long long int __llrintf64x (_Float64x __x) throw (); 26201: 26201: 26201: 26201: extern long int lroundf64x (_Float64x __x) throw (); extern long int __lroundf64x (_Float64x __x) throw (); 26201: __extension__ 26201: extern long long int llroundf64x (_Float64x __x) throw (); extern long long int __llroundf64x (_Float64x __x) throw (); 26201: 26201: 26201: 26201: extern _Float64x fdimf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __fdimf64x (_Float64x __x, _Float64x __y) throw (); 26201: 26201: 26201: extern _Float64x fmaxf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fmaxf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float64x fminf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fminf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float64x fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) throw (); extern _Float64x __fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) throw (); 26201: 26201: 26201: 26201: 26201: extern _Float64x roundevenf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __roundevenf64x (_Float64x __x) throw () __attribute__ ((__const__)); 26201: 26201: 26201: 26201: extern __intmax_t fromfpf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf64x (_Float64x __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: extern __uintmax_t ufromfpf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf64x (_Float64x __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern __intmax_t fromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: 26201: 26201: extern __uintmax_t ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw () 26201: ; 26201: 26201: 26201: extern _Float64x fmaxmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fmaxmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern _Float64x fminmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fminmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); 26201: 26201: 26201: extern int canonicalizef64x (_Float64x *__cx, const _Float64x *__x) throw (); 26201: 26201: 26201: 26201: 26201: extern int totalorderf64x (const _Float64x *__x, const _Float64x *__y) throw () 26201: 26201: __attribute__ ((__pure__)); 26201: 26201: 26201: extern int totalordermagf64x (const _Float64x *__x, const _Float64x *__y) throw () 26201: 26201: __attribute__ ((__pure__)); 26201: 26201: 26201: extern _Float64x getpayloadf64x (const _Float64x *__x) throw (); extern _Float64x __getpayloadf64x (const _Float64x *__x) throw (); 26201: 26201: 26201: extern int setpayloadf64x (_Float64x *__x, _Float64x __payload) throw (); 26201: 26201: 26201: extern int setpayloadsigf64x (_Float64x *__x, _Float64x __payload) throw (); 26201: # 458 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: 26201: #undef _Mdouble_ 26201: #undef __MATH_PRECNAME 26201: #undef __MATH_DECLARING_DOUBLE 26201: #undef __MATH_DECLARING_FLOATN 26201: # 482 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #undef __MATHDECL_1 26201: #undef __MATHDECL 26201: #undef __MATHCALL 26201: 26201: 26201: #define __MATHCALL_NARROW_ARGS_1 (_Marg_ __x) 26201: #define __MATHCALL_NARROW_ARGS_2 (_Marg_ __x, _Marg_ __y) 26201: #define __MATHCALL_NARROW_ARGS_3 (_Marg_ __x, _Marg_ __y, _Marg_ __z) 26201: #define __MATHCALL_NARROW_NORMAL(func,nargs) extern _Mret_ func __MATHCALL_NARROW_ARGS_ ## nargs __THROW 26201: 26201: #define __MATHCALL_NARROW_REDIR(func,redir,nargs) extern _Mret_ __REDIRECT_NTH (func, __MATHCALL_NARROW_ARGS_ ## nargs, redir) 26201: 26201: 26201: #define __MATHCALL_NARROW(func,redir,nargs) __MATHCALL_NARROW_NORMAL (func, nargs) 26201: 26201: 26201: 26201: 26201: #define _Mret_ float 26201: #define _Marg_ double 26201: #define __MATHCALL_NAME(name) f ## name 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 3 26201: extern float fadd (double __x, double __y) throw (); 26201: 26201: 26201: extern float fdiv (double __x, double __y) throw (); 26201: 26201: 26201: extern float fmul (double __x, double __y) throw (); 26201: 26201: 26201: extern float fsub (double __x, double __y) throw (); 26201: # 504 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: #undef _Mret_ 26201: #undef _Marg_ 26201: #undef __MATHCALL_NAME 26201: 26201: #define _Mret_ float 26201: #define _Marg_ long double 26201: #define __MATHCALL_NAME(name) f ## name ## l 26201: 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 3 26201: extern float faddl (long double __x, long double __y) throw (); 26201: 26201: 26201: extern float fdivl (long double __x, long double __y) throw (); 26201: 26201: 26201: extern float fmull (long double __x, long double __y) throw (); 26201: 26201: 26201: extern float fsubl (long double __x, long double __y) throw (); 26201: # 518 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: #undef _Mret_ 26201: #undef _Marg_ 26201: #undef __MATHCALL_NAME 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define _Mret_ double 26201: #define _Marg_ long double 26201: #define __MATHCALL_NAME(name) d ## name ## l 26201: 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 3 26201: extern double daddl (long double __x, long double __y) throw (); 26201: 26201: 26201: extern double ddivl (long double __x, long double __y) throw (); 26201: 26201: 26201: extern double dmull (long double __x, long double __y) throw (); 26201: 26201: 26201: extern double dsubl (long double __x, long double __y) throw (); 26201: # 538 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: #undef _Mret_ 26201: #undef _Marg_ 26201: #undef __MATHCALL_NAME 26201: # 613 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #define _Mret_ _Float32 26201: #define _Marg_ _Float32x 26201: #define __MATHCALL_NAME(name) f32 ## name ## f32x 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 3 26201: extern _Float32 f32addf32x (_Float32x __x, _Float32x __y) throw (); 26201: 26201: 26201: extern _Float32 f32divf32x (_Float32x __x, _Float32x __y) throw (); 26201: 26201: 26201: extern _Float32 f32mulf32x (_Float32x __x, _Float32x __y) throw (); 26201: 26201: 26201: extern _Float32 f32subf32x (_Float32x __x, _Float32x __y) throw (); 26201: # 617 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: #undef _Mret_ 26201: #undef _Marg_ 26201: #undef __MATHCALL_NAME 26201: 26201: 26201: 26201: #define _Mret_ _Float32 26201: #define _Marg_ _Float64 26201: #define __MATHCALL_NAME(name) f32 ## name ## f64 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 3 26201: extern _Float32 f32addf64 (_Float64 __x, _Float64 __y) throw (); 26201: 26201: 26201: extern _Float32 f32divf64 (_Float64 __x, _Float64 __y) throw (); 26201: 26201: 26201: extern _Float32 f32mulf64 (_Float64 __x, _Float64 __y) throw (); 26201: 26201: 26201: extern _Float32 f32subf64 (_Float64 __x, _Float64 __y) throw (); 26201: # 627 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: #undef _Mret_ 26201: #undef _Marg_ 26201: #undef __MATHCALL_NAME 26201: 26201: 26201: 26201: #define _Mret_ _Float32 26201: #define _Marg_ _Float64x 26201: #define __MATHCALL_NAME(name) f32 ## name ## f64x 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 3 26201: extern _Float32 f32addf64x (_Float64x __x, _Float64x __y) throw (); 26201: 26201: 26201: extern _Float32 f32divf64x (_Float64x __x, _Float64x __y) throw (); 26201: 26201: 26201: extern _Float32 f32mulf64x (_Float64x __x, _Float64x __y) throw (); 26201: 26201: 26201: extern _Float32 f32subf64x (_Float64x __x, _Float64x __y) throw (); 26201: # 637 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: #undef _Mret_ 26201: #undef _Marg_ 26201: #undef __MATHCALL_NAME 26201: 26201: 26201: 26201: #define _Mret_ _Float32 26201: #define _Marg_ _Float128 26201: #define __MATHCALL_NAME(name) f32 ## name ## f128 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 3 26201: extern _Float32 f32addf128 (_Float128 __x, _Float128 __y) throw (); 26201: 26201: 26201: extern _Float32 f32divf128 (_Float128 __x, _Float128 __y) throw (); 26201: 26201: 26201: extern _Float32 f32mulf128 (_Float128 __x, _Float128 __y) throw (); 26201: 26201: 26201: extern _Float32 f32subf128 (_Float128 __x, _Float128 __y) throw (); 26201: # 647 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: #undef _Mret_ 26201: #undef _Marg_ 26201: #undef __MATHCALL_NAME 26201: # 663 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #define _Mret_ _Float32x 26201: #define _Marg_ _Float64 26201: #define __MATHCALL_NAME(name) f32x ## name ## f64 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 3 26201: extern _Float32x f32xaddf64 (_Float64 __x, _Float64 __y) throw (); 26201: 26201: 26201: extern _Float32x f32xdivf64 (_Float64 __x, _Float64 __y) throw (); 26201: 26201: 26201: extern _Float32x f32xmulf64 (_Float64 __x, _Float64 __y) throw (); 26201: 26201: 26201: extern _Float32x f32xsubf64 (_Float64 __x, _Float64 __y) throw (); 26201: # 667 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: #undef _Mret_ 26201: #undef _Marg_ 26201: #undef __MATHCALL_NAME 26201: 26201: 26201: 26201: #define _Mret_ _Float32x 26201: #define _Marg_ _Float64x 26201: #define __MATHCALL_NAME(name) f32x ## name ## f64x 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 3 26201: extern _Float32x f32xaddf64x (_Float64x __x, _Float64x __y) throw (); 26201: 26201: 26201: extern _Float32x f32xdivf64x (_Float64x __x, _Float64x __y) throw (); 26201: 26201: 26201: extern _Float32x f32xmulf64x (_Float64x __x, _Float64x __y) throw (); 26201: 26201: 26201: extern _Float32x f32xsubf64x (_Float64x __x, _Float64x __y) throw (); 26201: # 677 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: #undef _Mret_ 26201: #undef _Marg_ 26201: #undef __MATHCALL_NAME 26201: 26201: 26201: 26201: #define _Mret_ _Float32x 26201: #define _Marg_ _Float128 26201: #define __MATHCALL_NAME(name) f32x ## name ## f128 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 3 26201: extern _Float32x f32xaddf128 (_Float128 __x, _Float128 __y) throw (); 26201: 26201: 26201: extern _Float32x f32xdivf128 (_Float128 __x, _Float128 __y) throw (); 26201: 26201: 26201: extern _Float32x f32xmulf128 (_Float128 __x, _Float128 __y) throw (); 26201: 26201: 26201: extern _Float32x f32xsubf128 (_Float128 __x, _Float128 __y) throw (); 26201: # 687 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: #undef _Mret_ 26201: #undef _Marg_ 26201: #undef __MATHCALL_NAME 26201: # 703 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #define _Mret_ _Float64 26201: #define _Marg_ _Float64x 26201: #define __MATHCALL_NAME(name) f64 ## name ## f64x 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 3 26201: extern _Float64 f64addf64x (_Float64x __x, _Float64x __y) throw (); 26201: 26201: 26201: extern _Float64 f64divf64x (_Float64x __x, _Float64x __y) throw (); 26201: 26201: 26201: extern _Float64 f64mulf64x (_Float64x __x, _Float64x __y) throw (); 26201: 26201: 26201: extern _Float64 f64subf64x (_Float64x __x, _Float64x __y) throw (); 26201: # 707 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: #undef _Mret_ 26201: #undef _Marg_ 26201: #undef __MATHCALL_NAME 26201: 26201: 26201: 26201: #define _Mret_ _Float64 26201: #define _Marg_ _Float128 26201: #define __MATHCALL_NAME(name) f64 ## name ## f128 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 3 26201: extern _Float64 f64addf128 (_Float128 __x, _Float128 __y) throw (); 26201: 26201: 26201: extern _Float64 f64divf128 (_Float128 __x, _Float128 __y) throw (); 26201: 26201: 26201: extern _Float64 f64mulf128 (_Float128 __x, _Float128 __y) throw (); 26201: 26201: 26201: extern _Float64 f64subf128 (_Float128 __x, _Float128 __y) throw (); 26201: # 717 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: #undef _Mret_ 26201: #undef _Marg_ 26201: #undef __MATHCALL_NAME 26201: # 733 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #define _Mret_ _Float64x 26201: #define _Marg_ _Float128 26201: #define __MATHCALL_NAME(name) f64x ## name ## f128 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3 26201: # 24 "/usr/x86_64-linux-gnu/include/bits/mathcalls-narrow.h" 3 26201: extern _Float64x f64xaddf128 (_Float128 __x, _Float128 __y) throw (); 26201: 26201: 26201: extern _Float64x f64xdivf128 (_Float128 __x, _Float128 __y) throw (); 26201: 26201: 26201: extern _Float64x f64xmulf128 (_Float128 __x, _Float128 __y) throw (); 26201: 26201: 26201: extern _Float64x f64xsubf128 (_Float128 __x, _Float128 __y) throw (); 26201: # 737 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: #undef _Mret_ 26201: #undef _Marg_ 26201: #undef __MATHCALL_NAME 26201: # 764 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #undef __MATHCALL_NARROW_ARGS_1 26201: #undef __MATHCALL_NARROW_ARGS_2 26201: #undef __MATHCALL_NARROW_ARGS_3 26201: #undef __MATHCALL_NARROW_NORMAL 26201: #undef __MATHCALL_NARROW_REDIR 26201: #undef __MATHCALL_NARROW 26201: 26201: 26201: 26201: extern int signgam; 26201: # 828 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #define __MATH_TG(TG_ARG,FUNC,ARGS) __builtin_choose_expr (__builtin_types_compatible_p (__typeof (TG_ARG), float), FUNC ## f ARGS, __builtin_choose_expr (__builtin_types_compatible_p (__typeof (TG_ARG), double), FUNC ARGS, __builtin_choose_expr (__builtin_types_compatible_p (__typeof (TG_ARG), long double), FUNC ## l ARGS, FUNC ## f128 ARGS))) 26201: # 853 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: enum 26201: { 26201: FP_NAN = 26201: #define FP_NAN 0 26201: 0, 26201: FP_INFINITE = 26201: #define FP_INFINITE 1 26201: 1, 26201: FP_ZERO = 26201: #define FP_ZERO 2 26201: 2, 26201: FP_SUBNORMAL = 26201: #define FP_SUBNORMAL 3 26201: 3, 26201: FP_NORMAL = 26201: #define FP_NORMAL 4 26201: 4 26201: }; 26201: # 886 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #define fpclassify(x) __builtin_fpclassify (FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, x) 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define signbit(x) __builtin_signbit (x) 26201: # 913 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #define isfinite(x) __builtin_isfinite (x) 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define isnormal(x) __builtin_isnormal (x) 26201: # 930 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #define isnan(x) __builtin_isnan (x) 26201: # 948 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #define isinf(x) __builtin_isinf_sign (x) 26201: 26201: 26201: 26201: 26201: 26201: #define MATH_ERRNO 1 26201: #define MATH_ERREXCEPT 2 26201: # 967 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #define math_errhandling (MATH_ERRNO | MATH_ERREXCEPT) 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/iscanonical.h" 1 3 26201: # 23 "/usr/x86_64-linux-gnu/include/bits/iscanonical.h" 3 26201: extern int __iscanonicall (long double __x) 26201: throw () __attribute__ ((__const__)); 26201: #define __iscanonicalf(x) ((void) (__typeof (x)) (x), 1) 26201: #define __iscanonical(x) ((void) (__typeof (x)) (x), 1) 26201: 26201: #define __iscanonicalf128(x) ((void) (__typeof (x)) (x), 1) 26201: # 46 "/usr/x86_64-linux-gnu/include/bits/iscanonical.h" 3 26201: extern "C++" { 26201: inline int iscanonical (float __val) { return ((void) (__typeof (__val)) (__val), 1); } 26201: inline int iscanonical (double __val) { return ((void) (__typeof (__val)) (__val), 1); } 26201: inline int iscanonical (long double __val) { return __iscanonicall (__val); } 26201: 26201: inline int iscanonical (_Float128 __val) { return ((void) (__typeof (__val)) (__val), 1); } 26201: 26201: } 26201: # 974 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: # 985 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: extern "C++" { 26201: inline int issignaling (float __val) { return __issignalingf (__val); } 26201: inline int issignaling (double __val) { return __issignaling (__val); } 26201: inline int 26201: issignaling (long double __val) 26201: { 26201: 26201: 26201: 26201: return __issignalingl (__val); 26201: 26201: } 26201: 26201: 26201: 26201: inline int issignaling (_Float128 __val) { return __issignalingf128 (__val); } 26201: 26201: } 26201: 26201: 26201: 26201: #define issubnormal(x) (fpclassify (x) == FP_SUBNORMAL) 26201: # 1016 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: extern "C++" { 26201: # 1047 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: template inline bool 26201: iszero (__T __val) 26201: { 26201: return __val == 0; 26201: } 26201: 26201: } 26201: 26201: 26201: 26201: 26201: 26201: #define MAXFLOAT 3.40282347e+38F 26201: 26201: 26201: 26201: 26201: 26201: #define M_E 2.7182818284590452354 26201: #define M_LOG2E 1.4426950408889634074 26201: #define M_LOG10E 0.43429448190325182765 26201: #define M_LN2 0.69314718055994530942 26201: #define M_LN10 2.30258509299404568402 26201: #define M_PI 3.14159265358979323846 26201: #define M_PI_2 1.57079632679489661923 26201: #define M_PI_4 0.78539816339744830962 26201: #define M_1_PI 0.31830988618379067154 26201: #define M_2_PI 0.63661977236758134308 26201: #define M_2_SQRTPI 1.12837916709551257390 26201: #define M_SQRT2 1.41421356237309504880 26201: #define M_SQRT1_2 0.70710678118654752440 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define M_El 2.718281828459045235360287471352662498L 26201: #define M_LOG2El 1.442695040888963407359924681001892137L 26201: #define M_LOG10El 0.434294481903251827651128918916605082L 26201: #define M_LN2l 0.693147180559945309417232121458176568L 26201: #define M_LN10l 2.302585092994045684017991454684364208L 26201: #define M_PIl 3.141592653589793238462643383279502884L 26201: #define M_PI_2l 1.570796326794896619231321691639751442L 26201: #define M_PI_4l 0.785398163397448309615660845819875721L 26201: #define M_1_PIl 0.318309886183790671537767526745028724L 26201: #define M_2_PIl 0.636619772367581343075535053490057448L 26201: #define M_2_SQRTPIl 1.128379167095512573896158903121545172L 26201: #define M_SQRT2l 1.414213562373095048801688724209698079L 26201: #define M_SQRT1_2l 0.707106781186547524400844362104849039L 26201: # 1116 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #define M_Ef32 __f32 (2.718281828459045235360287471352662498) 26201: #define M_LOG2Ef32 __f32 (1.442695040888963407359924681001892137) 26201: #define M_LOG10Ef32 __f32 (0.434294481903251827651128918916605082) 26201: #define M_LN2f32 __f32 (0.693147180559945309417232121458176568) 26201: #define M_LN10f32 __f32 (2.302585092994045684017991454684364208) 26201: #define M_PIf32 __f32 (3.141592653589793238462643383279502884) 26201: #define M_PI_2f32 __f32 (1.570796326794896619231321691639751442) 26201: #define M_PI_4f32 __f32 (0.785398163397448309615660845819875721) 26201: #define M_1_PIf32 __f32 (0.318309886183790671537767526745028724) 26201: #define M_2_PIf32 __f32 (0.636619772367581343075535053490057448) 26201: #define M_2_SQRTPIf32 __f32 (1.128379167095512573896158903121545172) 26201: #define M_SQRT2f32 __f32 (1.414213562373095048801688724209698079) 26201: #define M_SQRT1_2f32 __f32 (0.707106781186547524400844362104849039) 26201: 26201: 26201: 26201: #define M_Ef64 __f64 (2.718281828459045235360287471352662498) 26201: #define M_LOG2Ef64 __f64 (1.442695040888963407359924681001892137) 26201: #define M_LOG10Ef64 __f64 (0.434294481903251827651128918916605082) 26201: #define M_LN2f64 __f64 (0.693147180559945309417232121458176568) 26201: #define M_LN10f64 __f64 (2.302585092994045684017991454684364208) 26201: #define M_PIf64 __f64 (3.141592653589793238462643383279502884) 26201: #define M_PI_2f64 __f64 (1.570796326794896619231321691639751442) 26201: #define M_PI_4f64 __f64 (0.785398163397448309615660845819875721) 26201: #define M_1_PIf64 __f64 (0.318309886183790671537767526745028724) 26201: #define M_2_PIf64 __f64 (0.636619772367581343075535053490057448) 26201: #define M_2_SQRTPIf64 __f64 (1.128379167095512573896158903121545172) 26201: #define M_SQRT2f64 __f64 (1.414213562373095048801688724209698079) 26201: #define M_SQRT1_2f64 __f64 (0.707106781186547524400844362104849039) 26201: 26201: 26201: 26201: #define M_Ef128 __f128 (2.718281828459045235360287471352662498) 26201: #define M_LOG2Ef128 __f128 (1.442695040888963407359924681001892137) 26201: #define M_LOG10Ef128 __f128 (0.434294481903251827651128918916605082) 26201: #define M_LN2f128 __f128 (0.693147180559945309417232121458176568) 26201: #define M_LN10f128 __f128 (2.302585092994045684017991454684364208) 26201: #define M_PIf128 __f128 (3.141592653589793238462643383279502884) 26201: #define M_PI_2f128 __f128 (1.570796326794896619231321691639751442) 26201: #define M_PI_4f128 __f128 (0.785398163397448309615660845819875721) 26201: #define M_1_PIf128 __f128 (0.318309886183790671537767526745028724) 26201: #define M_2_PIf128 __f128 (0.636619772367581343075535053490057448) 26201: #define M_2_SQRTPIf128 __f128 (1.128379167095512573896158903121545172) 26201: #define M_SQRT2f128 __f128 (1.414213562373095048801688724209698079) 26201: #define M_SQRT1_2f128 __f128 (0.707106781186547524400844362104849039) 26201: 26201: 26201: 26201: #define M_Ef32x __f32x (2.718281828459045235360287471352662498) 26201: #define M_LOG2Ef32x __f32x (1.442695040888963407359924681001892137) 26201: #define M_LOG10Ef32x __f32x (0.434294481903251827651128918916605082) 26201: #define M_LN2f32x __f32x (0.693147180559945309417232121458176568) 26201: #define M_LN10f32x __f32x (2.302585092994045684017991454684364208) 26201: #define M_PIf32x __f32x (3.141592653589793238462643383279502884) 26201: #define M_PI_2f32x __f32x (1.570796326794896619231321691639751442) 26201: #define M_PI_4f32x __f32x (0.785398163397448309615660845819875721) 26201: #define M_1_PIf32x __f32x (0.318309886183790671537767526745028724) 26201: #define M_2_PIf32x __f32x (0.636619772367581343075535053490057448) 26201: #define M_2_SQRTPIf32x __f32x (1.128379167095512573896158903121545172) 26201: #define M_SQRT2f32x __f32x (1.414213562373095048801688724209698079) 26201: #define M_SQRT1_2f32x __f32x (0.707106781186547524400844362104849039) 26201: 26201: 26201: 26201: #define M_Ef64x __f64x (2.718281828459045235360287471352662498) 26201: #define M_LOG2Ef64x __f64x (1.442695040888963407359924681001892137) 26201: #define M_LOG10Ef64x __f64x (0.434294481903251827651128918916605082) 26201: #define M_LN2f64x __f64x (0.693147180559945309417232121458176568) 26201: #define M_LN10f64x __f64x (2.302585092994045684017991454684364208) 26201: #define M_PIf64x __f64x (3.141592653589793238462643383279502884) 26201: #define M_PI_2f64x __f64x (1.570796326794896619231321691639751442) 26201: #define M_PI_4f64x __f64x (0.785398163397448309615660845819875721) 26201: #define M_1_PIf64x __f64x (0.318309886183790671537767526745028724) 26201: #define M_2_PIf64x __f64x (0.636619772367581343075535053490057448) 26201: #define M_2_SQRTPIf64x __f64x (1.128379167095512573896158903121545172) 26201: #define M_SQRT2f64x __f64x (1.414213562373095048801688724209698079) 26201: #define M_SQRT1_2f64x __f64x (0.707106781186547524400844362104849039) 26201: # 1203 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #define __NO_MATH_INLINES 1 26201: # 1214 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #define isgreater(x,y) __builtin_isgreater(x, y) 26201: #define isgreaterequal(x,y) __builtin_isgreaterequal(x, y) 26201: #define isless(x,y) __builtin_isless(x, y) 26201: #define islessequal(x,y) __builtin_islessequal(x, y) 26201: #define islessgreater(x,y) __builtin_islessgreater(x, y) 26201: #define isunordered(x,y) __builtin_isunordered(x, y) 26201: # 1245 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/bits/mathinline.h" 1 3 26201: # 1246 "/usr/x86_64-linux-gnu/include/math.h" 2 3 26201: # 1257 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: #define __MATH_EVAL_FMT2(x,y) ((x) + (y) + 0.0f) 26201: # 1278 "/usr/x86_64-linux-gnu/include/math.h" 3 26201: extern "C++" { 26201: template struct __iseqsig_type; 26201: 26201: template<> struct __iseqsig_type 26201: { 26201: static int __call (float __x, float __y) throw () 26201: { 26201: return __iseqsigf (__x, __y); 26201: } 26201: }; 26201: 26201: template<> struct __iseqsig_type 26201: { 26201: static int __call (double __x, double __y) throw () 26201: { 26201: return __iseqsig (__x, __y); 26201: } 26201: }; 26201: 26201: template<> struct __iseqsig_type 26201: { 26201: static int __call (long double __x, long double __y) throw () 26201: { 26201: 26201: return __iseqsigl (__x, __y); 26201: 26201: 26201: 26201: } 26201: }; 26201: 26201: 26201: 26201: 26201: template<> struct __iseqsig_type<_Float128> 26201: { 26201: static int __call (_Float128 __x, _Float128 __y) throw () 26201: { 26201: return __iseqsigf128 (__x, __y); 26201: } 26201: }; 26201: 26201: 26201: template 26201: inline int 26201: iseqsig (_T1 __x, _T2 __y) throw () 26201: { 26201: 26201: typedef decltype (((__x) + (__y) + 0.0f)) _T3; 26201: 26201: 26201: 26201: return __iseqsig_type<_T3>::__call (__x, __y); 26201: } 26201: 26201: } 26201: 26201: 26201: 26201: 26201: } 26201: # 46 "/usr/x86_64-linux-gnu/include/c++/10/cmath" 2 3 26201: #undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS 26201: 26201: 26201: 26201: #define _GLIBCXX_CMATH 1 26201: 26201: 26201: #undef div 26201: #undef acos 26201: #undef asin 26201: #undef atan 26201: #undef atan2 26201: #undef ceil 26201: #undef cos 26201: #undef cosh 26201: #undef exp 26201: #undef fabs 26201: #undef floor 26201: #undef fmod 26201: #undef frexp 26201: #undef ldexp 26201: #undef log 26201: #undef log10 26201: #undef modf 26201: #undef pow 26201: #undef sin 26201: #undef sinh 26201: #undef sqrt 26201: #undef tan 26201: #undef tanh 26201: 26201: extern "C++" 26201: { 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: using ::acos; 26201: 26201: 26201: inline constexpr float 26201: acos(float __x) 26201: { return __builtin_acosf(__x); } 26201: 26201: inline constexpr long double 26201: acos(long double __x) 26201: { return __builtin_acosl(__x); } 26201: 26201: 26201: template 26201: inline constexpr 26201: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: acos(_Tp __x) 26201: { return __builtin_acos(__x); } 26201: 26201: using ::asin; 26201: 26201: 26201: inline constexpr float 26201: asin(float __x) 26201: { return __builtin_asinf(__x); } 26201: 26201: inline constexpr long double 26201: asin(long double __x) 26201: { return __builtin_asinl(__x); } 26201: 26201: 26201: template 26201: inline constexpr 26201: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: asin(_Tp __x) 26201: { return __builtin_asin(__x); } 26201: 26201: using ::atan; 26201: 26201: 26201: inline constexpr float 26201: atan(float __x) 26201: { return __builtin_atanf(__x); } 26201: 26201: inline constexpr long double 26201: atan(long double __x) 26201: { return __builtin_atanl(__x); } 26201: 26201: 26201: template 26201: inline constexpr 26201: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: atan(_Tp __x) 26201: { return __builtin_atan(__x); } 26201: 26201: using ::atan2; 26201: 26201: 26201: inline constexpr float 26201: atan2(float __y, float __x) 26201: { return __builtin_atan2f(__y, __x); } 26201: 26201: inline constexpr long double 26201: atan2(long double __y, long double __x) 26201: { return __builtin_atan2l(__y, __x); } 26201: 26201: 26201: template 26201: inline constexpr 26201: typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 26201: atan2(_Tp __y, _Up __x) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 26201: return atan2(__type(__y), __type(__x)); 26201: } 26201: 26201: using ::ceil; 26201: 26201: 26201: inline constexpr float 26201: ceil(float __x) 26201: { return __builtin_ceilf(__x); } 26201: 26201: inline constexpr long double 26201: ceil(long double __x) 26201: { return __builtin_ceill(__x); } 26201: 26201: 26201: template 26201: inline constexpr 26201: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: ceil(_Tp __x) 26201: { return __builtin_ceil(__x); } 26201: 26201: using ::cos; 26201: 26201: 26201: inline constexpr float 26201: cos(float __x) 26201: { return __builtin_cosf(__x); } 26201: 26201: inline constexpr long double 26201: cos(long double __x) 26201: { return __builtin_cosl(__x); } 26201: 26201: 26201: template 26201: inline constexpr 26201: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: cos(_Tp __x) 26201: { return __builtin_cos(__x); } 26201: 26201: using ::cosh; 26201: 26201: 26201: inline constexpr float 26201: cosh(float __x) 26201: { return __builtin_coshf(__x); } 26201: 26201: inline constexpr long double 26201: cosh(long double __x) 26201: { return __builtin_coshl(__x); } 26201: 26201: 26201: template 26201: inline constexpr 26201: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: cosh(_Tp __x) 26201: { return __builtin_cosh(__x); } 26201: 26201: using ::exp; 26201: 26201: 26201: inline constexpr float 26201: exp(float __x) 26201: { return __builtin_expf(__x); } 26201: 26201: inline constexpr long double 26201: exp(long double __x) 26201: { return __builtin_expl(__x); } 26201: 26201: 26201: template 26201: inline constexpr 26201: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: exp(_Tp __x) 26201: { return __builtin_exp(__x); } 26201: 26201: using ::fabs; 26201: 26201: 26201: inline constexpr float 26201: fabs(float __x) 26201: { return __builtin_fabsf(__x); } 26201: 26201: inline constexpr long double 26201: fabs(long double __x) 26201: { return __builtin_fabsl(__x); } 26201: 26201: 26201: template 26201: inline constexpr 26201: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: fabs(_Tp __x) 26201: { return __builtin_fabs(__x); } 26201: 26201: using ::floor; 26201: 26201: 26201: inline constexpr float 26201: floor(float __x) 26201: { return __builtin_floorf(__x); } 26201: 26201: inline constexpr long double 26201: floor(long double __x) 26201: { return __builtin_floorl(__x); } 26201: 26201: 26201: template 26201: inline constexpr 26201: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: floor(_Tp __x) 26201: { return __builtin_floor(__x); } 26201: 26201: using ::fmod; 26201: 26201: 26201: inline constexpr float 26201: fmod(float __x, float __y) 26201: { return __builtin_fmodf(__x, __y); } 26201: 26201: inline constexpr long double 26201: fmod(long double __x, long double __y) 26201: { return __builtin_fmodl(__x, __y); } 26201: 26201: 26201: template 26201: inline constexpr 26201: typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 26201: fmod(_Tp __x, _Up __y) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 26201: return fmod(__type(__x), __type(__y)); 26201: } 26201: 26201: using ::frexp; 26201: 26201: 26201: inline float 26201: frexp(float __x, int* __exp) 26201: { return __builtin_frexpf(__x, __exp); } 26201: 26201: inline long double 26201: frexp(long double __x, int* __exp) 26201: { return __builtin_frexpl(__x, __exp); } 26201: 26201: 26201: template 26201: inline constexpr 26201: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: frexp(_Tp __x, int* __exp) 26201: { return __builtin_frexp(__x, __exp); } 26201: 26201: using ::ldexp; 26201: 26201: 26201: inline constexpr float 26201: ldexp(float __x, int __exp) 26201: { return __builtin_ldexpf(__x, __exp); } 26201: 26201: inline constexpr long double 26201: ldexp(long double __x, int __exp) 26201: { return __builtin_ldexpl(__x, __exp); } 26201: 26201: 26201: template 26201: inline constexpr 26201: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: ldexp(_Tp __x, int __exp) 26201: { return __builtin_ldexp(__x, __exp); } 26201: 26201: using ::log; 26201: 26201: 26201: inline constexpr float 26201: log(float __x) 26201: { return __builtin_logf(__x); } 26201: 26201: inline constexpr long double 26201: log(long double __x) 26201: { return __builtin_logl(__x); } 26201: 26201: 26201: template 26201: inline constexpr 26201: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: log(_Tp __x) 26201: { return __builtin_log(__x); } 26201: 26201: using ::log10; 26201: 26201: 26201: inline constexpr float 26201: log10(float __x) 26201: { return __builtin_log10f(__x); } 26201: 26201: inline constexpr long double 26201: log10(long double __x) 26201: { return __builtin_log10l(__x); } 26201: 26201: 26201: template 26201: inline constexpr 26201: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: log10(_Tp __x) 26201: { return __builtin_log10(__x); } 26201: 26201: using ::modf; 26201: 26201: 26201: inline float 26201: modf(float __x, float* __iptr) 26201: { return __builtin_modff(__x, __iptr); } 26201: 26201: inline long double 26201: modf(long double __x, long double* __iptr) 26201: { return __builtin_modfl(__x, __iptr); } 26201: 26201: 26201: using ::pow; 26201: 26201: 26201: inline constexpr float 26201: pow(float __x, float __y) 26201: { return __builtin_powf(__x, __y); } 26201: 26201: inline constexpr long double 26201: pow(long double __x, long double __y) 26201: { return __builtin_powl(__x, __y); } 26201: # 412 "/usr/x86_64-linux-gnu/include/c++/10/cmath" 3 26201: template 26201: inline constexpr 26201: typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 26201: pow(_Tp __x, _Up __y) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 26201: return pow(__type(__x), __type(__y)); 26201: } 26201: 26201: using ::sin; 26201: 26201: 26201: inline constexpr float 26201: sin(float __x) 26201: { return __builtin_sinf(__x); } 26201: 26201: inline constexpr long double 26201: sin(long double __x) 26201: { return __builtin_sinl(__x); } 26201: 26201: 26201: template 26201: inline constexpr 26201: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: sin(_Tp __x) 26201: { return __builtin_sin(__x); } 26201: 26201: using ::sinh; 26201: 26201: 26201: inline constexpr float 26201: sinh(float __x) 26201: { return __builtin_sinhf(__x); } 26201: 26201: inline constexpr long double 26201: sinh(long double __x) 26201: { return __builtin_sinhl(__x); } 26201: 26201: 26201: template 26201: inline constexpr 26201: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: sinh(_Tp __x) 26201: { return __builtin_sinh(__x); } 26201: 26201: using ::sqrt; 26201: 26201: 26201: inline constexpr float 26201: sqrt(float __x) 26201: { return __builtin_sqrtf(__x); } 26201: 26201: inline constexpr long double 26201: sqrt(long double __x) 26201: { return __builtin_sqrtl(__x); } 26201: 26201: 26201: template 26201: inline constexpr 26201: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: sqrt(_Tp __x) 26201: { return __builtin_sqrt(__x); } 26201: 26201: using ::tan; 26201: 26201: 26201: inline constexpr float 26201: tan(float __x) 26201: { return __builtin_tanf(__x); } 26201: 26201: inline constexpr long double 26201: tan(long double __x) 26201: { return __builtin_tanl(__x); } 26201: 26201: 26201: template 26201: inline constexpr 26201: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: tan(_Tp __x) 26201: { return __builtin_tan(__x); } 26201: 26201: using ::tanh; 26201: 26201: 26201: inline constexpr float 26201: tanh(float __x) 26201: { return __builtin_tanhf(__x); } 26201: 26201: inline constexpr long double 26201: tanh(long double __x) 26201: { return __builtin_tanhl(__x); } 26201: 26201: 26201: template 26201: inline constexpr 26201: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: tanh(_Tp __x) 26201: { return __builtin_tanh(__x); } 26201: 26201: 26201: 26201: 26201: 26201: #undef fpclassify 26201: #undef isfinite 26201: #undef isinf 26201: #undef isnan 26201: #undef isnormal 26201: #undef signbit 26201: #undef isgreater 26201: #undef isgreaterequal 26201: #undef isless 26201: #undef islessequal 26201: #undef islessgreater 26201: #undef isunordered 26201: 26201: 26201: 26201: 26201: constexpr int 26201: fpclassify(float __x) 26201: { return __builtin_fpclassify(0, 1, 4, 26201: 3, 2, __x); } 26201: 26201: constexpr int 26201: fpclassify(double __x) 26201: { return __builtin_fpclassify(0, 1, 4, 26201: 3, 2, __x); } 26201: 26201: constexpr int 26201: fpclassify(long double __x) 26201: { return __builtin_fpclassify(0, 1, 4, 26201: 3, 2, __x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: int>::__type 26201: fpclassify(_Tp __x) 26201: { return __x != 0 ? 4 : 2; } 26201: 26201: 26201: 26201: constexpr bool 26201: isfinite(float __x) 26201: { return __builtin_isfinite(__x); } 26201: 26201: constexpr bool 26201: isfinite(double __x) 26201: { return __builtin_isfinite(__x); } 26201: 26201: constexpr bool 26201: isfinite(long double __x) 26201: { return __builtin_isfinite(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: bool>::__type 26201: isfinite(_Tp __x) 26201: { return true; } 26201: 26201: 26201: 26201: constexpr bool 26201: isinf(float __x) 26201: { return __builtin_isinf(__x); } 26201: 26201: 26201: 26201: 26201: 26201: constexpr bool 26201: isinf(double __x) 26201: { return __builtin_isinf(__x); } 26201: 26201: 26201: constexpr bool 26201: isinf(long double __x) 26201: { return __builtin_isinf(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: bool>::__type 26201: isinf(_Tp __x) 26201: { return false; } 26201: 26201: 26201: 26201: constexpr bool 26201: isnan(float __x) 26201: { return __builtin_isnan(__x); } 26201: 26201: 26201: 26201: 26201: 26201: constexpr bool 26201: isnan(double __x) 26201: { return __builtin_isnan(__x); } 26201: 26201: 26201: constexpr bool 26201: isnan(long double __x) 26201: { return __builtin_isnan(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: bool>::__type 26201: isnan(_Tp __x) 26201: { return false; } 26201: 26201: 26201: 26201: constexpr bool 26201: isnormal(float __x) 26201: { return __builtin_isnormal(__x); } 26201: 26201: constexpr bool 26201: isnormal(double __x) 26201: { return __builtin_isnormal(__x); } 26201: 26201: constexpr bool 26201: isnormal(long double __x) 26201: { return __builtin_isnormal(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: bool>::__type 26201: isnormal(_Tp __x) 26201: { return __x != 0 ? true : false; } 26201: 26201: 26201: 26201: 26201: constexpr bool 26201: signbit(float __x) 26201: { return __builtin_signbit(__x); } 26201: 26201: constexpr bool 26201: signbit(double __x) 26201: { return __builtin_signbit(__x); } 26201: 26201: constexpr bool 26201: signbit(long double __x) 26201: { return __builtin_signbit(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: bool>::__type 26201: signbit(_Tp __x) 26201: { return __x < 0 ? true : false; } 26201: 26201: 26201: 26201: constexpr bool 26201: isgreater(float __x, float __y) 26201: { return __builtin_isgreater(__x, __y); } 26201: 26201: constexpr bool 26201: isgreater(double __x, double __y) 26201: { return __builtin_isgreater(__x, __y); } 26201: 26201: constexpr bool 26201: isgreater(long double __x, long double __y) 26201: { return __builtin_isgreater(__x, __y); } 26201: 26201: 26201: 26201: template 26201: constexpr typename 26201: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 26201: && __is_arithmetic<_Up>::__value), bool>::__type 26201: isgreater(_Tp __x, _Up __y) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 26201: return __builtin_isgreater(__type(__x), __type(__y)); 26201: } 26201: 26201: 26201: 26201: constexpr bool 26201: isgreaterequal(float __x, float __y) 26201: { return __builtin_isgreaterequal(__x, __y); } 26201: 26201: constexpr bool 26201: isgreaterequal(double __x, double __y) 26201: { return __builtin_isgreaterequal(__x, __y); } 26201: 26201: constexpr bool 26201: isgreaterequal(long double __x, long double __y) 26201: { return __builtin_isgreaterequal(__x, __y); } 26201: 26201: 26201: 26201: template 26201: constexpr typename 26201: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 26201: && __is_arithmetic<_Up>::__value), bool>::__type 26201: isgreaterequal(_Tp __x, _Up __y) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 26201: return __builtin_isgreaterequal(__type(__x), __type(__y)); 26201: } 26201: 26201: 26201: 26201: constexpr bool 26201: isless(float __x, float __y) 26201: { return __builtin_isless(__x, __y); } 26201: 26201: constexpr bool 26201: isless(double __x, double __y) 26201: { return __builtin_isless(__x, __y); } 26201: 26201: constexpr bool 26201: isless(long double __x, long double __y) 26201: { return __builtin_isless(__x, __y); } 26201: 26201: 26201: 26201: template 26201: constexpr typename 26201: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 26201: && __is_arithmetic<_Up>::__value), bool>::__type 26201: isless(_Tp __x, _Up __y) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 26201: return __builtin_isless(__type(__x), __type(__y)); 26201: } 26201: 26201: 26201: 26201: constexpr bool 26201: islessequal(float __x, float __y) 26201: { return __builtin_islessequal(__x, __y); } 26201: 26201: constexpr bool 26201: islessequal(double __x, double __y) 26201: { return __builtin_islessequal(__x, __y); } 26201: 26201: constexpr bool 26201: islessequal(long double __x, long double __y) 26201: { return __builtin_islessequal(__x, __y); } 26201: 26201: 26201: 26201: template 26201: constexpr typename 26201: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 26201: && __is_arithmetic<_Up>::__value), bool>::__type 26201: islessequal(_Tp __x, _Up __y) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 26201: return __builtin_islessequal(__type(__x), __type(__y)); 26201: } 26201: 26201: 26201: 26201: constexpr bool 26201: islessgreater(float __x, float __y) 26201: { return __builtin_islessgreater(__x, __y); } 26201: 26201: constexpr bool 26201: islessgreater(double __x, double __y) 26201: { return __builtin_islessgreater(__x, __y); } 26201: 26201: constexpr bool 26201: islessgreater(long double __x, long double __y) 26201: { return __builtin_islessgreater(__x, __y); } 26201: 26201: 26201: 26201: template 26201: constexpr typename 26201: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 26201: && __is_arithmetic<_Up>::__value), bool>::__type 26201: islessgreater(_Tp __x, _Up __y) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 26201: return __builtin_islessgreater(__type(__x), __type(__y)); 26201: } 26201: 26201: 26201: 26201: constexpr bool 26201: isunordered(float __x, float __y) 26201: { return __builtin_isunordered(__x, __y); } 26201: 26201: constexpr bool 26201: isunordered(double __x, double __y) 26201: { return __builtin_isunordered(__x, __y); } 26201: 26201: constexpr bool 26201: isunordered(long double __x, long double __y) 26201: { return __builtin_isunordered(__x, __y); } 26201: 26201: 26201: 26201: template 26201: constexpr typename 26201: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 26201: && __is_arithmetic<_Up>::__value), bool>::__type 26201: isunordered(_Tp __x, _Up __y) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 26201: return __builtin_isunordered(__type(__x), __type(__y)); 26201: } 26201: # 956 "/usr/x86_64-linux-gnu/include/c++/10/cmath" 3 26201: #undef acosh 26201: #undef acoshf 26201: #undef acoshl 26201: #undef asinh 26201: #undef asinhf 26201: #undef asinhl 26201: #undef atanh 26201: #undef atanhf 26201: #undef atanhl 26201: #undef cbrt 26201: #undef cbrtf 26201: #undef cbrtl 26201: #undef copysign 26201: #undef copysignf 26201: #undef copysignl 26201: #undef erf 26201: #undef erff 26201: #undef erfl 26201: #undef erfc 26201: #undef erfcf 26201: #undef erfcl 26201: #undef exp2 26201: #undef exp2f 26201: #undef exp2l 26201: #undef expm1 26201: #undef expm1f 26201: #undef expm1l 26201: #undef fdim 26201: #undef fdimf 26201: #undef fdiml 26201: #undef fma 26201: #undef fmaf 26201: #undef fmal 26201: #undef fmax 26201: #undef fmaxf 26201: #undef fmaxl 26201: #undef fmin 26201: #undef fminf 26201: #undef fminl 26201: #undef hypot 26201: #undef hypotf 26201: #undef hypotl 26201: #undef ilogb 26201: #undef ilogbf 26201: #undef ilogbl 26201: #undef lgamma 26201: #undef lgammaf 26201: #undef lgammal 26201: 26201: #undef llrint 26201: #undef llrintf 26201: #undef llrintl 26201: #undef llround 26201: #undef llroundf 26201: #undef llroundl 26201: 26201: #undef log1p 26201: #undef log1pf 26201: #undef log1pl 26201: #undef log2 26201: #undef log2f 26201: #undef log2l 26201: #undef logb 26201: #undef logbf 26201: #undef logbl 26201: #undef lrint 26201: #undef lrintf 26201: #undef lrintl 26201: #undef lround 26201: #undef lroundf 26201: #undef lroundl 26201: #undef nan 26201: #undef nanf 26201: #undef nanl 26201: #undef nearbyint 26201: #undef nearbyintf 26201: #undef nearbyintl 26201: #undef nextafter 26201: #undef nextafterf 26201: #undef nextafterl 26201: #undef nexttoward 26201: #undef nexttowardf 26201: #undef nexttowardl 26201: #undef remainder 26201: #undef remainderf 26201: #undef remainderl 26201: #undef remquo 26201: #undef remquof 26201: #undef remquol 26201: #undef rint 26201: #undef rintf 26201: #undef rintl 26201: #undef round 26201: #undef roundf 26201: #undef roundl 26201: #undef scalbln 26201: #undef scalblnf 26201: #undef scalblnl 26201: #undef scalbn 26201: #undef scalbnf 26201: #undef scalbnl 26201: #undef tgamma 26201: #undef tgammaf 26201: #undef tgammal 26201: #undef trunc 26201: #undef truncf 26201: #undef truncl 26201: 26201: 26201: using ::double_t; 26201: using ::float_t; 26201: 26201: 26201: using ::acosh; 26201: using ::acoshf; 26201: using ::acoshl; 26201: 26201: using ::asinh; 26201: using ::asinhf; 26201: using ::asinhl; 26201: 26201: using ::atanh; 26201: using ::atanhf; 26201: using ::atanhl; 26201: 26201: using ::cbrt; 26201: using ::cbrtf; 26201: using ::cbrtl; 26201: 26201: using ::copysign; 26201: using ::copysignf; 26201: using ::copysignl; 26201: 26201: using ::erf; 26201: using ::erff; 26201: using ::erfl; 26201: 26201: using ::erfc; 26201: using ::erfcf; 26201: using ::erfcl; 26201: 26201: using ::exp2; 26201: using ::exp2f; 26201: using ::exp2l; 26201: 26201: using ::expm1; 26201: using ::expm1f; 26201: using ::expm1l; 26201: 26201: using ::fdim; 26201: using ::fdimf; 26201: using ::fdiml; 26201: 26201: using ::fma; 26201: using ::fmaf; 26201: using ::fmal; 26201: 26201: using ::fmax; 26201: using ::fmaxf; 26201: using ::fmaxl; 26201: 26201: using ::fmin; 26201: using ::fminf; 26201: using ::fminl; 26201: 26201: using ::hypot; 26201: using ::hypotf; 26201: using ::hypotl; 26201: 26201: using ::ilogb; 26201: using ::ilogbf; 26201: using ::ilogbl; 26201: 26201: using ::lgamma; 26201: using ::lgammaf; 26201: using ::lgammal; 26201: 26201: 26201: using ::llrint; 26201: using ::llrintf; 26201: using ::llrintl; 26201: 26201: using ::llround; 26201: using ::llroundf; 26201: using ::llroundl; 26201: 26201: 26201: using ::log1p; 26201: using ::log1pf; 26201: using ::log1pl; 26201: 26201: using ::log2; 26201: using ::log2f; 26201: using ::log2l; 26201: 26201: using ::logb; 26201: using ::logbf; 26201: using ::logbl; 26201: 26201: using ::lrint; 26201: using ::lrintf; 26201: using ::lrintl; 26201: 26201: using ::lround; 26201: using ::lroundf; 26201: using ::lroundl; 26201: 26201: using ::nan; 26201: using ::nanf; 26201: using ::nanl; 26201: 26201: using ::nearbyint; 26201: using ::nearbyintf; 26201: using ::nearbyintl; 26201: 26201: using ::nextafter; 26201: using ::nextafterf; 26201: using ::nextafterl; 26201: 26201: using ::nexttoward; 26201: using ::nexttowardf; 26201: using ::nexttowardl; 26201: 26201: using ::remainder; 26201: using ::remainderf; 26201: using ::remainderl; 26201: 26201: using ::remquo; 26201: using ::remquof; 26201: using ::remquol; 26201: 26201: using ::rint; 26201: using ::rintf; 26201: using ::rintl; 26201: 26201: using ::round; 26201: using ::roundf; 26201: using ::roundl; 26201: 26201: using ::scalbln; 26201: using ::scalblnf; 26201: using ::scalblnl; 26201: 26201: using ::scalbn; 26201: using ::scalbnf; 26201: using ::scalbnl; 26201: 26201: using ::tgamma; 26201: using ::tgammaf; 26201: using ::tgammal; 26201: 26201: using ::trunc; 26201: using ::truncf; 26201: using ::truncl; 26201: 26201: 26201: 26201: constexpr float 26201: acosh(float __x) 26201: { return __builtin_acoshf(__x); } 26201: 26201: constexpr long double 26201: acosh(long double __x) 26201: { return __builtin_acoshl(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: acosh(_Tp __x) 26201: { return __builtin_acosh(__x); } 26201: 26201: 26201: 26201: constexpr float 26201: asinh(float __x) 26201: { return __builtin_asinhf(__x); } 26201: 26201: constexpr long double 26201: asinh(long double __x) 26201: { return __builtin_asinhl(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: asinh(_Tp __x) 26201: { return __builtin_asinh(__x); } 26201: 26201: 26201: 26201: constexpr float 26201: atanh(float __x) 26201: { return __builtin_atanhf(__x); } 26201: 26201: constexpr long double 26201: atanh(long double __x) 26201: { return __builtin_atanhl(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: atanh(_Tp __x) 26201: { return __builtin_atanh(__x); } 26201: 26201: 26201: 26201: constexpr float 26201: cbrt(float __x) 26201: { return __builtin_cbrtf(__x); } 26201: 26201: constexpr long double 26201: cbrt(long double __x) 26201: { return __builtin_cbrtl(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: cbrt(_Tp __x) 26201: { return __builtin_cbrt(__x); } 26201: 26201: 26201: 26201: constexpr float 26201: copysign(float __x, float __y) 26201: { return __builtin_copysignf(__x, __y); } 26201: 26201: constexpr long double 26201: copysign(long double __x, long double __y) 26201: { return __builtin_copysignl(__x, __y); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 26201: copysign(_Tp __x, _Up __y) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 26201: return copysign(__type(__x), __type(__y)); 26201: } 26201: 26201: 26201: 26201: constexpr float 26201: erf(float __x) 26201: { return __builtin_erff(__x); } 26201: 26201: constexpr long double 26201: erf(long double __x) 26201: { return __builtin_erfl(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: erf(_Tp __x) 26201: { return __builtin_erf(__x); } 26201: 26201: 26201: 26201: constexpr float 26201: erfc(float __x) 26201: { return __builtin_erfcf(__x); } 26201: 26201: constexpr long double 26201: erfc(long double __x) 26201: { return __builtin_erfcl(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: erfc(_Tp __x) 26201: { return __builtin_erfc(__x); } 26201: 26201: 26201: 26201: constexpr float 26201: exp2(float __x) 26201: { return __builtin_exp2f(__x); } 26201: 26201: constexpr long double 26201: exp2(long double __x) 26201: { return __builtin_exp2l(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: exp2(_Tp __x) 26201: { return __builtin_exp2(__x); } 26201: 26201: 26201: 26201: constexpr float 26201: expm1(float __x) 26201: { return __builtin_expm1f(__x); } 26201: 26201: constexpr long double 26201: expm1(long double __x) 26201: { return __builtin_expm1l(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: expm1(_Tp __x) 26201: { return __builtin_expm1(__x); } 26201: 26201: 26201: 26201: constexpr float 26201: fdim(float __x, float __y) 26201: { return __builtin_fdimf(__x, __y); } 26201: 26201: constexpr long double 26201: fdim(long double __x, long double __y) 26201: { return __builtin_fdiml(__x, __y); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 26201: fdim(_Tp __x, _Up __y) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 26201: return fdim(__type(__x), __type(__y)); 26201: } 26201: 26201: 26201: 26201: constexpr float 26201: fma(float __x, float __y, float __z) 26201: { return __builtin_fmaf(__x, __y, __z); } 26201: 26201: constexpr long double 26201: fma(long double __x, long double __y, long double __z) 26201: { return __builtin_fmal(__x, __y, __z); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type 26201: fma(_Tp __x, _Up __y, _Vp __z) 26201: { 26201: typedef typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type __type; 26201: return fma(__type(__x), __type(__y), __type(__z)); 26201: } 26201: 26201: 26201: 26201: constexpr float 26201: fmax(float __x, float __y) 26201: { return __builtin_fmaxf(__x, __y); } 26201: 26201: constexpr long double 26201: fmax(long double __x, long double __y) 26201: { return __builtin_fmaxl(__x, __y); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 26201: fmax(_Tp __x, _Up __y) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 26201: return fmax(__type(__x), __type(__y)); 26201: } 26201: 26201: 26201: 26201: constexpr float 26201: fmin(float __x, float __y) 26201: { return __builtin_fminf(__x, __y); } 26201: 26201: constexpr long double 26201: fmin(long double __x, long double __y) 26201: { return __builtin_fminl(__x, __y); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 26201: fmin(_Tp __x, _Up __y) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 26201: return fmin(__type(__x), __type(__y)); 26201: } 26201: 26201: 26201: 26201: constexpr float 26201: hypot(float __x, float __y) 26201: { return __builtin_hypotf(__x, __y); } 26201: 26201: constexpr long double 26201: hypot(long double __x, long double __y) 26201: { return __builtin_hypotl(__x, __y); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 26201: hypot(_Tp __x, _Up __y) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 26201: return hypot(__type(__x), __type(__y)); 26201: } 26201: 26201: 26201: 26201: constexpr int 26201: ilogb(float __x) 26201: { return __builtin_ilogbf(__x); } 26201: 26201: constexpr int 26201: ilogb(long double __x) 26201: { return __builtin_ilogbl(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr 26201: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: int>::__type 26201: ilogb(_Tp __x) 26201: { return __builtin_ilogb(__x); } 26201: 26201: 26201: 26201: constexpr float 26201: lgamma(float __x) 26201: { return __builtin_lgammaf(__x); } 26201: 26201: constexpr long double 26201: lgamma(long double __x) 26201: { return __builtin_lgammal(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: lgamma(_Tp __x) 26201: { return __builtin_lgamma(__x); } 26201: 26201: 26201: 26201: constexpr long long 26201: llrint(float __x) 26201: { return __builtin_llrintf(__x); } 26201: 26201: constexpr long long 26201: llrint(long double __x) 26201: { return __builtin_llrintl(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: long long>::__type 26201: llrint(_Tp __x) 26201: { return __builtin_llrint(__x); } 26201: 26201: 26201: 26201: constexpr long long 26201: llround(float __x) 26201: { return __builtin_llroundf(__x); } 26201: 26201: constexpr long long 26201: llround(long double __x) 26201: { return __builtin_llroundl(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: long long>::__type 26201: llround(_Tp __x) 26201: { return __builtin_llround(__x); } 26201: 26201: 26201: 26201: constexpr float 26201: log1p(float __x) 26201: { return __builtin_log1pf(__x); } 26201: 26201: constexpr long double 26201: log1p(long double __x) 26201: { return __builtin_log1pl(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: log1p(_Tp __x) 26201: { return __builtin_log1p(__x); } 26201: 26201: 26201: 26201: 26201: constexpr float 26201: log2(float __x) 26201: { return __builtin_log2f(__x); } 26201: 26201: constexpr long double 26201: log2(long double __x) 26201: { return __builtin_log2l(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: log2(_Tp __x) 26201: { return __builtin_log2(__x); } 26201: 26201: 26201: 26201: constexpr float 26201: logb(float __x) 26201: { return __builtin_logbf(__x); } 26201: 26201: constexpr long double 26201: logb(long double __x) 26201: { return __builtin_logbl(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: logb(_Tp __x) 26201: { return __builtin_logb(__x); } 26201: 26201: 26201: 26201: constexpr long 26201: lrint(float __x) 26201: { return __builtin_lrintf(__x); } 26201: 26201: constexpr long 26201: lrint(long double __x) 26201: { return __builtin_lrintl(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: long>::__type 26201: lrint(_Tp __x) 26201: { return __builtin_lrint(__x); } 26201: 26201: 26201: 26201: constexpr long 26201: lround(float __x) 26201: { return __builtin_lroundf(__x); } 26201: 26201: constexpr long 26201: lround(long double __x) 26201: { return __builtin_lroundl(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: long>::__type 26201: lround(_Tp __x) 26201: { return __builtin_lround(__x); } 26201: 26201: 26201: 26201: constexpr float 26201: nearbyint(float __x) 26201: { return __builtin_nearbyintf(__x); } 26201: 26201: constexpr long double 26201: nearbyint(long double __x) 26201: { return __builtin_nearbyintl(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: nearbyint(_Tp __x) 26201: { return __builtin_nearbyint(__x); } 26201: 26201: 26201: 26201: constexpr float 26201: nextafter(float __x, float __y) 26201: { return __builtin_nextafterf(__x, __y); } 26201: 26201: constexpr long double 26201: nextafter(long double __x, long double __y) 26201: { return __builtin_nextafterl(__x, __y); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 26201: nextafter(_Tp __x, _Up __y) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 26201: return nextafter(__type(__x), __type(__y)); 26201: } 26201: 26201: 26201: 26201: constexpr float 26201: nexttoward(float __x, long double __y) 26201: { return __builtin_nexttowardf(__x, __y); } 26201: 26201: constexpr long double 26201: nexttoward(long double __x, long double __y) 26201: { return __builtin_nexttowardl(__x, __y); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: nexttoward(_Tp __x, long double __y) 26201: { return __builtin_nexttoward(__x, __y); } 26201: 26201: 26201: 26201: constexpr float 26201: remainder(float __x, float __y) 26201: { return __builtin_remainderf(__x, __y); } 26201: 26201: constexpr long double 26201: remainder(long double __x, long double __y) 26201: { return __builtin_remainderl(__x, __y); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 26201: remainder(_Tp __x, _Up __y) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 26201: return remainder(__type(__x), __type(__y)); 26201: } 26201: 26201: 26201: 26201: inline float 26201: remquo(float __x, float __y, int* __pquo) 26201: { return __builtin_remquof(__x, __y, __pquo); } 26201: 26201: inline long double 26201: remquo(long double __x, long double __y, int* __pquo) 26201: { return __builtin_remquol(__x, __y, __pquo); } 26201: 26201: 26201: 26201: template 26201: inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 26201: remquo(_Tp __x, _Up __y, int* __pquo) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 26201: return remquo(__type(__x), __type(__y), __pquo); 26201: } 26201: 26201: 26201: 26201: constexpr float 26201: rint(float __x) 26201: { return __builtin_rintf(__x); } 26201: 26201: constexpr long double 26201: rint(long double __x) 26201: { return __builtin_rintl(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: rint(_Tp __x) 26201: { return __builtin_rint(__x); } 26201: 26201: 26201: 26201: constexpr float 26201: round(float __x) 26201: { return __builtin_roundf(__x); } 26201: 26201: constexpr long double 26201: round(long double __x) 26201: { return __builtin_roundl(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: round(_Tp __x) 26201: { return __builtin_round(__x); } 26201: 26201: 26201: 26201: constexpr float 26201: scalbln(float __x, long __ex) 26201: { return __builtin_scalblnf(__x, __ex); } 26201: 26201: constexpr long double 26201: scalbln(long double __x, long __ex) 26201: { return __builtin_scalblnl(__x, __ex); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: scalbln(_Tp __x, long __ex) 26201: { return __builtin_scalbln(__x, __ex); } 26201: 26201: 26201: 26201: constexpr float 26201: scalbn(float __x, int __ex) 26201: { return __builtin_scalbnf(__x, __ex); } 26201: 26201: constexpr long double 26201: scalbn(long double __x, int __ex) 26201: { return __builtin_scalbnl(__x, __ex); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: scalbn(_Tp __x, int __ex) 26201: { return __builtin_scalbn(__x, __ex); } 26201: 26201: 26201: 26201: constexpr float 26201: tgamma(float __x) 26201: { return __builtin_tgammaf(__x); } 26201: 26201: constexpr long double 26201: tgamma(long double __x) 26201: { return __builtin_tgammal(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: tgamma(_Tp __x) 26201: { return __builtin_tgamma(__x); } 26201: 26201: 26201: 26201: constexpr float 26201: trunc(float __x) 26201: { return __builtin_truncf(__x); } 26201: 26201: constexpr long double 26201: trunc(long double __x) 26201: { return __builtin_truncl(__x); } 26201: 26201: 26201: 26201: template 26201: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 26201: double>::__type 26201: trunc(_Tp __x) 26201: { return __builtin_trunc(__x); } 26201: # 1850 "/usr/x86_64-linux-gnu/include/c++/10/cmath" 3 26201: #define __cpp_lib_hypot 201603 26201: 26201: template 26201: inline _Tp 26201: __hypot3(_Tp __x, _Tp __y, _Tp __z) 26201: { 26201: __x = std::abs(__x); 26201: __y = std::abs(__y); 26201: __z = std::abs(__z); 26201: if (_Tp __a = __x < __y ? __y < __z ? __z : __y : __x < __z ? __z : __x) 26201: return __a * std::sqrt((__x / __a) * (__x / __a) 26201: + (__y / __a) * (__y / __a) 26201: + (__z / __a) * (__z / __a)); 26201: else 26201: return {}; 26201: } 26201: 26201: inline float 26201: hypot(float __x, float __y, float __z) 26201: { return std::__hypot3(__x, __y, __z); } 26201: 26201: inline double 26201: hypot(double __x, double __y, double __z) 26201: { return std::__hypot3(__x, __y, __z); } 26201: 26201: inline long double 26201: hypot(long double __x, long double __y, long double __z) 26201: { return std::__hypot3(__x, __y, __z); } 26201: 26201: template 26201: typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type 26201: hypot(_Tp __x, _Up __y, _Vp __z) 26201: { 26201: using __type = typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type; 26201: return std::__hypot3<__type>(__x, __y, __z); 26201: } 26201: # 1923 "/usr/x86_64-linux-gnu/include/c++/10/cmath" 3 26201: 26201: } 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: #define _GLIBCXX_BITS_SPECFUN_H 1 26201: 26201: #pragma GCC visibility push(default) 26201: 26201: 26201: 26201: #define __STDCPP_MATH_SPEC_FUNCS__ 201003L 26201: 26201: #define __cpp_lib_math_special_functions 201603L 26201: # 49 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/tr1/gamma.tcc" 1 3 26201: # 47 "/usr/x86_64-linux-gnu/include/c++/10/tr1/gamma.tcc" 3 26201: #define _GLIBCXX_TR1_GAMMA_TCC 1 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/tr1/special_function_util.h" 1 3 26201: # 37 "/usr/x86_64-linux-gnu/include/c++/10/tr1/special_function_util.h" 3 26201: #define _GLIBCXX_TR1_SPECIAL_FUNCTION_UTIL_H 1 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 50 "/usr/x86_64-linux-gnu/include/c++/10/tr1/special_function_util.h" 3 26201: namespace __detail 26201: { 26201: 26201: 26201: 26201: template 26201: struct __floating_point_constant 26201: { 26201: static const _Tp __value; 26201: }; 26201: 26201: 26201: 26201: template 26201: struct __numeric_constants 26201: { 26201: 26201: static _Tp __pi() throw() 26201: { return static_cast<_Tp>(3.1415926535897932384626433832795029L); } 26201: 26201: static _Tp __pi_2() throw() 26201: { return static_cast<_Tp>(1.5707963267948966192313216916397514L); } 26201: 26201: static _Tp __pi_3() throw() 26201: { return static_cast<_Tp>(1.0471975511965977461542144610931676L); } 26201: 26201: static _Tp __pi_4() throw() 26201: { return static_cast<_Tp>(0.7853981633974483096156608458198757L); } 26201: 26201: static _Tp __1_pi() throw() 26201: { return static_cast<_Tp>(0.3183098861837906715377675267450287L); } 26201: 26201: static _Tp __2_sqrtpi() throw() 26201: { return static_cast<_Tp>(1.1283791670955125738961589031215452L); } 26201: 26201: static _Tp __sqrt2() throw() 26201: { return static_cast<_Tp>(1.4142135623730950488016887242096981L); } 26201: 26201: static _Tp __sqrt3() throw() 26201: { return static_cast<_Tp>(1.7320508075688772935274463415058723L); } 26201: 26201: static _Tp __sqrtpio2() throw() 26201: { return static_cast<_Tp>(1.2533141373155002512078826424055226L); } 26201: 26201: static _Tp __sqrt1_2() throw() 26201: { return static_cast<_Tp>(0.7071067811865475244008443621048490L); } 26201: 26201: static _Tp __lnpi() throw() 26201: { return static_cast<_Tp>(1.1447298858494001741434273513530587L); } 26201: 26201: static _Tp __gamma_e() throw() 26201: { return static_cast<_Tp>(0.5772156649015328606065120900824024L); } 26201: 26201: static _Tp __euler() throw() 26201: { return static_cast<_Tp>(2.7182818284590452353602874713526625L); } 26201: }; 26201: # 114 "/usr/x86_64-linux-gnu/include/c++/10/tr1/special_function_util.h" 3 26201: template 26201: inline bool __isnan(_Tp __x) 26201: { return std::isnan(__x); } 26201: # 133 "/usr/x86_64-linux-gnu/include/c++/10/tr1/special_function_util.h" 3 26201: } 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 50 "/usr/x86_64-linux-gnu/include/c++/10/tr1/gamma.tcc" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: #define _GLIBCXX_MATH_NS ::std 26201: # 65 "/usr/x86_64-linux-gnu/include/c++/10/tr1/gamma.tcc" 3 26201: namespace __detail 26201: { 26201: # 76 "/usr/x86_64-linux-gnu/include/c++/10/tr1/gamma.tcc" 3 26201: template 26201: _Tp 26201: __bernoulli_series(unsigned int __n) 26201: { 26201: 26201: static const _Tp __num[28] = { 26201: _Tp(1UL), -_Tp(1UL) / _Tp(2UL), 26201: _Tp(1UL) / _Tp(6UL), _Tp(0UL), 26201: -_Tp(1UL) / _Tp(30UL), _Tp(0UL), 26201: _Tp(1UL) / _Tp(42UL), _Tp(0UL), 26201: -_Tp(1UL) / _Tp(30UL), _Tp(0UL), 26201: _Tp(5UL) / _Tp(66UL), _Tp(0UL), 26201: -_Tp(691UL) / _Tp(2730UL), _Tp(0UL), 26201: _Tp(7UL) / _Tp(6UL), _Tp(0UL), 26201: -_Tp(3617UL) / _Tp(510UL), _Tp(0UL), 26201: _Tp(43867UL) / _Tp(798UL), _Tp(0UL), 26201: -_Tp(174611) / _Tp(330UL), _Tp(0UL), 26201: _Tp(854513UL) / _Tp(138UL), _Tp(0UL), 26201: -_Tp(236364091UL) / _Tp(2730UL), _Tp(0UL), 26201: _Tp(8553103UL) / _Tp(6UL), _Tp(0UL) 26201: }; 26201: 26201: if (__n == 0) 26201: return _Tp(1); 26201: 26201: if (__n == 1) 26201: return -_Tp(1) / _Tp(2); 26201: 26201: 26201: if (__n % 2 == 1) 26201: return _Tp(0); 26201: 26201: 26201: if (__n < 28) 26201: return __num[__n]; 26201: 26201: 26201: _Tp __fact = _Tp(1); 26201: if ((__n / 2) % 2 == 0) 26201: __fact *= _Tp(-1); 26201: for (unsigned int __k = 1; __k <= __n; ++__k) 26201: __fact *= __k / (_Tp(2) * __numeric_constants<_Tp>::__pi()); 26201: __fact *= _Tp(2); 26201: 26201: _Tp __sum = _Tp(0); 26201: for (unsigned int __i = 1; __i < 1000; ++__i) 26201: { 26201: _Tp __term = std::pow(_Tp(__i), -_Tp(__n)); 26201: if (__term < std::numeric_limits<_Tp>::epsilon()) 26201: break; 26201: __sum += __term; 26201: } 26201: 26201: return __fact * __sum; 26201: } 26201: # 139 "/usr/x86_64-linux-gnu/include/c++/10/tr1/gamma.tcc" 3 26201: template 26201: inline _Tp 26201: __bernoulli(int __n) 26201: { return __bernoulli_series<_Tp>(__n); } 26201: # 153 "/usr/x86_64-linux-gnu/include/c++/10/tr1/gamma.tcc" 3 26201: template 26201: _Tp 26201: __log_gamma_bernoulli(_Tp __x) 26201: { 26201: _Tp __lg = (__x - _Tp(0.5L)) * std::log(__x) - __x 26201: + _Tp(0.5L) * std::log(_Tp(2) 26201: * __numeric_constants<_Tp>::__pi()); 26201: 26201: const _Tp __xx = __x * __x; 26201: _Tp __help = _Tp(1) / __x; 26201: for ( unsigned int __i = 1; __i < 20; ++__i ) 26201: { 26201: const _Tp __2i = _Tp(2 * __i); 26201: __help /= __2i * (__2i - _Tp(1)) * __xx; 26201: __lg += __bernoulli<_Tp>(2 * __i) * __help; 26201: } 26201: 26201: return __lg; 26201: } 26201: # 181 "/usr/x86_64-linux-gnu/include/c++/10/tr1/gamma.tcc" 3 26201: template 26201: _Tp 26201: __log_gamma_lanczos(_Tp __x) 26201: { 26201: const _Tp __xm1 = __x - _Tp(1); 26201: 26201: static const _Tp __lanczos_cheb_7[9] = { 26201: _Tp( 0.99999999999980993227684700473478L), 26201: _Tp( 676.520368121885098567009190444019L), 26201: _Tp(-1259.13921672240287047156078755283L), 26201: _Tp( 771.3234287776530788486528258894L), 26201: _Tp(-176.61502916214059906584551354L), 26201: _Tp( 12.507343278686904814458936853L), 26201: _Tp(-0.13857109526572011689554707L), 26201: _Tp( 9.984369578019570859563e-6L), 26201: _Tp( 1.50563273514931155834e-7L) 26201: }; 26201: 26201: static const _Tp __LOGROOT2PI 26201: = _Tp(0.9189385332046727417803297364056176L); 26201: 26201: _Tp __sum = __lanczos_cheb_7[0]; 26201: for(unsigned int __k = 1; __k < 9; ++__k) 26201: __sum += __lanczos_cheb_7[__k] / (__xm1 + __k); 26201: 26201: const _Tp __term1 = (__xm1 + _Tp(0.5L)) 26201: * std::log((__xm1 + _Tp(7.5L)) 26201: / __numeric_constants<_Tp>::__euler()); 26201: const _Tp __term2 = __LOGROOT2PI + std::log(__sum); 26201: const _Tp __result = __term1 + (__term2 - _Tp(7)); 26201: 26201: return __result; 26201: } 26201: # 225 "/usr/x86_64-linux-gnu/include/c++/10/tr1/gamma.tcc" 3 26201: template 26201: _Tp 26201: __log_gamma(_Tp __x) 26201: { 26201: if (__x > _Tp(0.5L)) 26201: return __log_gamma_lanczos(__x); 26201: else 26201: { 26201: const _Tp __sin_fact 26201: = std::abs(std::sin(__numeric_constants<_Tp>::__pi() * __x)); 26201: if (__sin_fact == _Tp(0)) 26201: std::__throw_domain_error(("Argument is nonpositive integer " "in __log_gamma") 26201: ); 26201: return __numeric_constants<_Tp>::__lnpi() 26201: - std::log(__sin_fact) 26201: - __log_gamma_lanczos(_Tp(1) - __x); 26201: } 26201: } 26201: # 252 "/usr/x86_64-linux-gnu/include/c++/10/tr1/gamma.tcc" 3 26201: template 26201: _Tp 26201: __log_gamma_sign(_Tp __x) 26201: { 26201: if (__x > _Tp(0)) 26201: return _Tp(1); 26201: else 26201: { 26201: const _Tp __sin_fact 26201: = std::sin(__numeric_constants<_Tp>::__pi() * __x); 26201: if (__sin_fact > _Tp(0)) 26201: return (1); 26201: else if (__sin_fact < _Tp(0)) 26201: return -_Tp(1); 26201: else 26201: return _Tp(0); 26201: } 26201: } 26201: # 283 "/usr/x86_64-linux-gnu/include/c++/10/tr1/gamma.tcc" 3 26201: template 26201: _Tp 26201: __log_bincoef(unsigned int __n, unsigned int __k) 26201: { 26201: 26201: static const _Tp __max_bincoeff 26201: = std::numeric_limits<_Tp>::max_exponent10 26201: * std::log(_Tp(10)) - _Tp(1); 26201: 26201: _Tp __coeff = ::std::lgamma(_Tp(1 + __n)) 26201: - ::std::lgamma(_Tp(1 + __k)) 26201: - ::std::lgamma(_Tp(1 + __n - __k)); 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 314 "/usr/x86_64-linux-gnu/include/c++/10/tr1/gamma.tcc" 3 26201: template 26201: _Tp 26201: __bincoef(unsigned int __n, unsigned int __k) 26201: { 26201: 26201: static const _Tp __max_bincoeff 26201: = std::numeric_limits<_Tp>::max_exponent10 26201: * std::log(_Tp(10)) - _Tp(1); 26201: 26201: const _Tp __log_coeff = __log_bincoef<_Tp>(__n, __k); 26201: if (__log_coeff > __max_bincoeff) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else 26201: return std::exp(__log_coeff); 26201: } 26201: # 337 "/usr/x86_64-linux-gnu/include/c++/10/tr1/gamma.tcc" 3 26201: template 26201: inline _Tp 26201: __gamma(_Tp __x) 26201: { return std::exp(__log_gamma(__x)); } 26201: # 356 "/usr/x86_64-linux-gnu/include/c++/10/tr1/gamma.tcc" 3 26201: template 26201: _Tp 26201: __psi_series(_Tp __x) 26201: { 26201: _Tp __sum = -__numeric_constants<_Tp>::__gamma_e() - _Tp(1) / __x; 26201: const unsigned int __max_iter = 100000; 26201: for (unsigned int __k = 1; __k < __max_iter; ++__k) 26201: { 26201: const _Tp __term = __x / (__k * (__k + __x)); 26201: __sum += __term; 26201: if (std::abs(__term / __sum) < std::numeric_limits<_Tp>::epsilon()) 26201: break; 26201: } 26201: return __sum; 26201: } 26201: # 386 "/usr/x86_64-linux-gnu/include/c++/10/tr1/gamma.tcc" 3 26201: template 26201: _Tp 26201: __psi_asymp(_Tp __x) 26201: { 26201: _Tp __sum = std::log(__x) - _Tp(0.5L) / __x; 26201: const _Tp __xx = __x * __x; 26201: _Tp __xp = __xx; 26201: const unsigned int __max_iter = 100; 26201: for (unsigned int __k = 1; __k < __max_iter; ++__k) 26201: { 26201: const _Tp __term = __bernoulli<_Tp>(2 * __k) / (2 * __k * __xp); 26201: __sum -= __term; 26201: if (std::abs(__term / __sum) < std::numeric_limits<_Tp>::epsilon()) 26201: break; 26201: __xp *= __xx; 26201: } 26201: return __sum; 26201: } 26201: # 417 "/usr/x86_64-linux-gnu/include/c++/10/tr1/gamma.tcc" 3 26201: template 26201: _Tp 26201: __psi(_Tp __x) 26201: { 26201: const int __n = static_cast(__x + 0.5L); 26201: const _Tp __eps = _Tp(4) * std::numeric_limits<_Tp>::epsilon(); 26201: if (__n <= 0 && std::abs(__x - _Tp(__n)) < __eps) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else if (__x < _Tp(0)) 26201: { 26201: const _Tp __pi = __numeric_constants<_Tp>::__pi(); 26201: return __psi(_Tp(1) - __x) 26201: - __pi * std::cos(__pi * __x) / std::sin(__pi * __x); 26201: } 26201: else if (__x > _Tp(100)) 26201: return __psi_asymp(__x); 26201: else 26201: return __psi_series(__x); 26201: } 26201: # 446 "/usr/x86_64-linux-gnu/include/c++/10/tr1/gamma.tcc" 3 26201: template 26201: _Tp 26201: __psi(unsigned int __n, _Tp __x) 26201: { 26201: if (__x <= _Tp(0)) 26201: std::__throw_domain_error(("Argument out of range " "in __psi") 26201: ); 26201: else if (__n == 0) 26201: return __psi(__x); 26201: else 26201: { 26201: const _Tp __hzeta = __hurwitz_zeta(_Tp(__n + 1), __x); 26201: 26201: const _Tp __ln_nfact = ::std::lgamma(_Tp(__n + 1)); 26201: 26201: 26201: 26201: _Tp __result = std::exp(__ln_nfact) * __hzeta; 26201: if (__n % 2 == 1) 26201: __result = -__result; 26201: return __result; 26201: } 26201: } 26201: } 26201: #undef _GLIBCXX_MATH_NS 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 50 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/tr1/bessel_function.tcc" 1 3 26201: # 51 "/usr/x86_64-linux-gnu/include/c++/10/tr1/bessel_function.tcc" 3 26201: #define _GLIBCXX_TR1_BESSEL_FUNCTION_TCC 1 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: #define _GLIBCXX_MATH_NS ::std 26201: # 71 "/usr/x86_64-linux-gnu/include/c++/10/tr1/bessel_function.tcc" 3 26201: namespace __detail 26201: { 26201: # 98 "/usr/x86_64-linux-gnu/include/c++/10/tr1/bessel_function.tcc" 3 26201: template 26201: void 26201: __gamma_temme(_Tp __mu, 26201: _Tp & __gam1, _Tp & __gam2, _Tp & __gampl, _Tp & __gammi) 26201: { 26201: 26201: __gampl = _Tp(1) / ::std::tgamma(_Tp(1) + __mu); 26201: __gammi = _Tp(1) / ::std::tgamma(_Tp(1) - __mu); 26201: 26201: 26201: 26201: 26201: 26201: if (std::abs(__mu) < std::numeric_limits<_Tp>::epsilon()) 26201: __gam1 = -_Tp(__numeric_constants<_Tp>::__gamma_e()); 26201: else 26201: __gam1 = (__gammi - __gampl) / (_Tp(2) * __mu); 26201: 26201: __gam2 = (__gammi + __gampl) / (_Tp(2)); 26201: 26201: return; 26201: } 26201: # 136 "/usr/x86_64-linux-gnu/include/c++/10/tr1/bessel_function.tcc" 3 26201: template 26201: void 26201: __bessel_jn(_Tp __nu, _Tp __x, 26201: _Tp & __Jnu, _Tp & __Nnu, _Tp & __Jpnu, _Tp & __Npnu) 26201: { 26201: if (__x == _Tp(0)) 26201: { 26201: if (__nu == _Tp(0)) 26201: { 26201: __Jnu = _Tp(1); 26201: __Jpnu = _Tp(0); 26201: } 26201: else if (__nu == _Tp(1)) 26201: { 26201: __Jnu = _Tp(0); 26201: __Jpnu = _Tp(0.5L); 26201: } 26201: else 26201: { 26201: __Jnu = _Tp(0); 26201: __Jpnu = _Tp(0); 26201: } 26201: __Nnu = -std::numeric_limits<_Tp>::infinity(); 26201: __Npnu = std::numeric_limits<_Tp>::infinity(); 26201: return; 26201: } 26201: 26201: const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); 26201: 26201: 26201: 26201: 26201: const _Tp __fp_min = std::sqrt(std::numeric_limits<_Tp>::min()); 26201: const int __max_iter = 15000; 26201: const _Tp __x_min = _Tp(2); 26201: 26201: const int __nl = (__x < __x_min 26201: ? static_cast(__nu + _Tp(0.5L)) 26201: : std::max(0, static_cast(__nu - __x + _Tp(1.5L)))); 26201: 26201: const _Tp __mu = __nu - __nl; 26201: const _Tp __mu2 = __mu * __mu; 26201: const _Tp __xi = _Tp(1) / __x; 26201: const _Tp __xi2 = _Tp(2) * __xi; 26201: _Tp __w = __xi2 / __numeric_constants<_Tp>::__pi(); 26201: int __isign = 1; 26201: _Tp __h = __nu * __xi; 26201: if (__h < __fp_min) 26201: __h = __fp_min; 26201: _Tp __b = __xi2 * __nu; 26201: _Tp __d = _Tp(0); 26201: _Tp __c = __h; 26201: int __i; 26201: for (__i = 1; __i <= __max_iter; ++__i) 26201: { 26201: __b += __xi2; 26201: __d = __b - __d; 26201: if (std::abs(__d) < __fp_min) 26201: __d = __fp_min; 26201: __c = __b - _Tp(1) / __c; 26201: if (std::abs(__c) < __fp_min) 26201: __c = __fp_min; 26201: __d = _Tp(1) / __d; 26201: const _Tp __del = __c * __d; 26201: __h *= __del; 26201: if (__d < _Tp(0)) 26201: __isign = -__isign; 26201: if (std::abs(__del - _Tp(1)) < __eps) 26201: break; 26201: } 26201: if (__i > __max_iter) 26201: std::__throw_runtime_error(("Argument x too large in __bessel_jn; " "try asymptotic expansion.") 26201: ); 26201: _Tp __Jnul = __isign * __fp_min; 26201: _Tp __Jpnul = __h * __Jnul; 26201: _Tp __Jnul1 = __Jnul; 26201: _Tp __Jpnu1 = __Jpnul; 26201: _Tp __fact = __nu * __xi; 26201: for ( int __l = __nl; __l >= 1; --__l ) 26201: { 26201: const _Tp __Jnutemp = __fact * __Jnul + __Jpnul; 26201: __fact -= __xi; 26201: __Jpnul = __fact * __Jnutemp - __Jnul; 26201: __Jnul = __Jnutemp; 26201: } 26201: if (__Jnul == _Tp(0)) 26201: __Jnul = __eps; 26201: _Tp __f= __Jpnul / __Jnul; 26201: _Tp __Nmu, __Nnu1, __Npmu, __Jmu; 26201: if (__x < __x_min) 26201: { 26201: const _Tp __x2 = __x / _Tp(2); 26201: const _Tp __pimu = __numeric_constants<_Tp>::__pi() * __mu; 26201: _Tp __fact = (std::abs(__pimu) < __eps 26201: ? _Tp(1) : __pimu / std::sin(__pimu)); 26201: _Tp __d = -std::log(__x2); 26201: _Tp __e = __mu * __d; 26201: _Tp __fact2 = (std::abs(__e) < __eps 26201: ? _Tp(1) : std::sinh(__e) / __e); 26201: _Tp __gam1, __gam2, __gampl, __gammi; 26201: __gamma_temme(__mu, __gam1, __gam2, __gampl, __gammi); 26201: _Tp __ff = (_Tp(2) / __numeric_constants<_Tp>::__pi()) 26201: * __fact * (__gam1 * std::cosh(__e) + __gam2 * __fact2 * __d); 26201: __e = std::exp(__e); 26201: _Tp __p = __e / (__numeric_constants<_Tp>::__pi() * __gampl); 26201: _Tp __q = _Tp(1) / (__e * __numeric_constants<_Tp>::__pi() * __gammi); 26201: const _Tp __pimu2 = __pimu / _Tp(2); 26201: _Tp __fact3 = (std::abs(__pimu2) < __eps 26201: ? _Tp(1) : std::sin(__pimu2) / __pimu2 ); 26201: _Tp __r = __numeric_constants<_Tp>::__pi() * __pimu2 * __fact3 * __fact3; 26201: _Tp __c = _Tp(1); 26201: __d = -__x2 * __x2; 26201: _Tp __sum = __ff + __r * __q; 26201: _Tp __sum1 = __p; 26201: for (__i = 1; __i <= __max_iter; ++__i) 26201: { 26201: __ff = (__i * __ff + __p + __q) / (__i * __i - __mu2); 26201: __c *= __d / _Tp(__i); 26201: __p /= _Tp(__i) - __mu; 26201: __q /= _Tp(__i) + __mu; 26201: const _Tp __del = __c * (__ff + __r * __q); 26201: __sum += __del; 26201: const _Tp __del1 = __c * __p - __i * __del; 26201: __sum1 += __del1; 26201: if ( std::abs(__del) < __eps * (_Tp(1) + std::abs(__sum)) ) 26201: break; 26201: } 26201: if ( __i > __max_iter ) 26201: std::__throw_runtime_error(("Bessel y series failed to converge " "in __bessel_jn.") 26201: ); 26201: __Nmu = -__sum; 26201: __Nnu1 = -__sum1 * __xi2; 26201: __Npmu = __mu * __xi * __Nmu - __Nnu1; 26201: __Jmu = __w / (__Npmu - __f * __Nmu); 26201: } 26201: else 26201: { 26201: _Tp __a = _Tp(0.25L) - __mu2; 26201: _Tp __q = _Tp(1); 26201: _Tp __p = -__xi / _Tp(2); 26201: _Tp __br = _Tp(2) * __x; 26201: _Tp __bi = _Tp(2); 26201: _Tp __fact = __a * __xi / (__p * __p + __q * __q); 26201: _Tp __cr = __br + __q * __fact; 26201: _Tp __ci = __bi + __p * __fact; 26201: _Tp __den = __br * __br + __bi * __bi; 26201: _Tp __dr = __br / __den; 26201: _Tp __di = -__bi / __den; 26201: _Tp __dlr = __cr * __dr - __ci * __di; 26201: _Tp __dli = __cr * __di + __ci * __dr; 26201: _Tp __temp = __p * __dlr - __q * __dli; 26201: __q = __p * __dli + __q * __dlr; 26201: __p = __temp; 26201: int __i; 26201: for (__i = 2; __i <= __max_iter; ++__i) 26201: { 26201: __a += _Tp(2 * (__i - 1)); 26201: __bi += _Tp(2); 26201: __dr = __a * __dr + __br; 26201: __di = __a * __di + __bi; 26201: if (std::abs(__dr) + std::abs(__di) < __fp_min) 26201: __dr = __fp_min; 26201: __fact = __a / (__cr * __cr + __ci * __ci); 26201: __cr = __br + __cr * __fact; 26201: __ci = __bi - __ci * __fact; 26201: if (std::abs(__cr) + std::abs(__ci) < __fp_min) 26201: __cr = __fp_min; 26201: __den = __dr * __dr + __di * __di; 26201: __dr /= __den; 26201: __di /= -__den; 26201: __dlr = __cr * __dr - __ci * __di; 26201: __dli = __cr * __di + __ci * __dr; 26201: __temp = __p * __dlr - __q * __dli; 26201: __q = __p * __dli + __q * __dlr; 26201: __p = __temp; 26201: if (std::abs(__dlr - _Tp(1)) + std::abs(__dli) < __eps) 26201: break; 26201: } 26201: if (__i > __max_iter) 26201: std::__throw_runtime_error(("Lentz's method failed " "in __bessel_jn.") 26201: ); 26201: const _Tp __gam = (__p - __f) / __q; 26201: __Jmu = std::sqrt(__w / ((__p - __f) * __gam + __q)); 26201: 26201: __Jmu = ::std::copysign(__Jmu, __Jnul); 26201: 26201: 26201: 26201: 26201: __Nmu = __gam * __Jmu; 26201: __Npmu = (__p + __q / __gam) * __Nmu; 26201: __Nnu1 = __mu * __xi * __Nmu - __Npmu; 26201: } 26201: __fact = __Jmu / __Jnul; 26201: __Jnu = __fact * __Jnul1; 26201: __Jpnu = __fact * __Jpnu1; 26201: for (__i = 1; __i <= __nl; ++__i) 26201: { 26201: const _Tp __Nnutemp = (__mu + __i) * __xi2 * __Nnu1 - __Nmu; 26201: __Nmu = __Nnu1; 26201: __Nnu1 = __Nnutemp; 26201: } 26201: __Nnu = __Nmu; 26201: __Npnu = __nu * __xi * __Nmu - __Nnu1; 26201: 26201: return; 26201: } 26201: # 361 "/usr/x86_64-linux-gnu/include/c++/10/tr1/bessel_function.tcc" 3 26201: template 26201: void 26201: __cyl_bessel_jn_asymp(_Tp __nu, _Tp __x, _Tp & __Jnu, _Tp & __Nnu) 26201: { 26201: const _Tp __mu = _Tp(4) * __nu * __nu; 26201: const _Tp __8x = _Tp(8) * __x; 26201: 26201: _Tp __P = _Tp(0); 26201: _Tp __Q = _Tp(0); 26201: 26201: _Tp __k = _Tp(0); 26201: _Tp __term = _Tp(1); 26201: 26201: int __epsP = 0; 26201: int __epsQ = 0; 26201: 26201: _Tp __eps = std::numeric_limits<_Tp>::epsilon(); 26201: 26201: do 26201: { 26201: __term *= (__k == 0 26201: ? _Tp(1) 26201: : -(__mu - (2 * __k - 1) * (2 * __k - 1)) / (__k * __8x)); 26201: 26201: __epsP = std::abs(__term) < __eps * std::abs(__P); 26201: __P += __term; 26201: 26201: __k++; 26201: 26201: __term *= (__mu - (2 * __k - 1) * (2 * __k - 1)) / (__k * __8x); 26201: __epsQ = std::abs(__term) < __eps * std::abs(__Q); 26201: __Q += __term; 26201: 26201: if (__epsP && __epsQ && __k > (__nu / 2.)) 26201: break; 26201: 26201: __k++; 26201: } 26201: while (__k < 1000); 26201: 26201: const _Tp __chi = __x - (__nu + _Tp(0.5L)) 26201: * __numeric_constants<_Tp>::__pi_2(); 26201: 26201: const _Tp __c = std::cos(__chi); 26201: const _Tp __s = std::sin(__chi); 26201: 26201: const _Tp __coef = std::sqrt(_Tp(2) 26201: / (__numeric_constants<_Tp>::__pi() * __x)); 26201: 26201: __Jnu = __coef * (__c * __P - __s * __Q); 26201: __Nnu = __coef * (__s * __P + __c * __Q); 26201: 26201: return; 26201: } 26201: # 444 "/usr/x86_64-linux-gnu/include/c++/10/tr1/bessel_function.tcc" 3 26201: template 26201: _Tp 26201: __cyl_bessel_ij_series(_Tp __nu, _Tp __x, _Tp __sgn, 26201: unsigned int __max_iter) 26201: { 26201: if (__x == _Tp(0)) 26201: return __nu == _Tp(0) ? _Tp(1) : _Tp(0); 26201: 26201: const _Tp __x2 = __x / _Tp(2); 26201: _Tp __fact = __nu * std::log(__x2); 26201: 26201: __fact -= ::std::lgamma(__nu + _Tp(1)); 26201: 26201: 26201: 26201: __fact = std::exp(__fact); 26201: const _Tp __xx4 = __sgn * __x2 * __x2; 26201: _Tp __Jn = _Tp(1); 26201: _Tp __term = _Tp(1); 26201: 26201: for (unsigned int __i = 1; __i < __max_iter; ++__i) 26201: { 26201: __term *= __xx4 / (_Tp(__i) * (__nu + _Tp(__i))); 26201: __Jn += __term; 26201: if (std::abs(__term / __Jn) < std::numeric_limits<_Tp>::epsilon()) 26201: break; 26201: } 26201: 26201: return __fact * __Jn; 26201: } 26201: # 490 "/usr/x86_64-linux-gnu/include/c++/10/tr1/bessel_function.tcc" 3 26201: template 26201: _Tp 26201: __cyl_bessel_j(_Tp __nu, _Tp __x) 26201: { 26201: if (__nu < _Tp(0) || __x < _Tp(0)) 26201: std::__throw_domain_error(("Bad argument " "in __cyl_bessel_j.") 26201: ); 26201: else if (__isnan(__nu) || __isnan(__x)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else if (__x * __x < _Tp(10) * (__nu + _Tp(1))) 26201: return __cyl_bessel_ij_series(__nu, __x, -_Tp(1), 200); 26201: else if (__x > _Tp(1000)) 26201: { 26201: _Tp __J_nu, __N_nu; 26201: __cyl_bessel_jn_asymp(__nu, __x, __J_nu, __N_nu); 26201: return __J_nu; 26201: } 26201: else 26201: { 26201: _Tp __J_nu, __N_nu, __Jp_nu, __Np_nu; 26201: __bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu); 26201: return __J_nu; 26201: } 26201: } 26201: # 532 "/usr/x86_64-linux-gnu/include/c++/10/tr1/bessel_function.tcc" 3 26201: template 26201: _Tp 26201: __cyl_neumann_n(_Tp __nu, _Tp __x) 26201: { 26201: if (__nu < _Tp(0) || __x < _Tp(0)) 26201: std::__throw_domain_error(("Bad argument " "in __cyl_neumann_n.") 26201: ); 26201: else if (__isnan(__nu) || __isnan(__x)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else if (__x > _Tp(1000)) 26201: { 26201: _Tp __J_nu, __N_nu; 26201: __cyl_bessel_jn_asymp(__nu, __x, __J_nu, __N_nu); 26201: return __N_nu; 26201: } 26201: else 26201: { 26201: _Tp __J_nu, __N_nu, __Jp_nu, __Np_nu; 26201: __bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu); 26201: return __N_nu; 26201: } 26201: } 26201: # 569 "/usr/x86_64-linux-gnu/include/c++/10/tr1/bessel_function.tcc" 3 26201: template 26201: void 26201: __sph_bessel_jn(unsigned int __n, _Tp __x, 26201: _Tp & __j_n, _Tp & __n_n, _Tp & __jp_n, _Tp & __np_n) 26201: { 26201: const _Tp __nu = _Tp(__n) + _Tp(0.5L); 26201: 26201: _Tp __J_nu, __N_nu, __Jp_nu, __Np_nu; 26201: __bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu); 26201: 26201: const _Tp __factor = __numeric_constants<_Tp>::__sqrtpio2() 26201: / std::sqrt(__x); 26201: 26201: __j_n = __factor * __J_nu; 26201: __n_n = __factor * __N_nu; 26201: __jp_n = __factor * __Jp_nu - __j_n / (_Tp(2) * __x); 26201: __np_n = __factor * __Np_nu - __n_n / (_Tp(2) * __x); 26201: 26201: return; 26201: } 26201: # 604 "/usr/x86_64-linux-gnu/include/c++/10/tr1/bessel_function.tcc" 3 26201: template 26201: _Tp 26201: __sph_bessel(unsigned int __n, _Tp __x) 26201: { 26201: if (__x < _Tp(0)) 26201: std::__throw_domain_error(("Bad argument " "in __sph_bessel.") 26201: ); 26201: else if (__isnan(__x)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else if (__x == _Tp(0)) 26201: { 26201: if (__n == 0) 26201: return _Tp(1); 26201: else 26201: return _Tp(0); 26201: } 26201: else 26201: { 26201: _Tp __j_n, __n_n, __jp_n, __np_n; 26201: __sph_bessel_jn(__n, __x, __j_n, __n_n, __jp_n, __np_n); 26201: return __j_n; 26201: } 26201: } 26201: # 642 "/usr/x86_64-linux-gnu/include/c++/10/tr1/bessel_function.tcc" 3 26201: template 26201: _Tp 26201: __sph_neumann(unsigned int __n, _Tp __x) 26201: { 26201: if (__x < _Tp(0)) 26201: std::__throw_domain_error(("Bad argument " "in __sph_neumann.") 26201: ); 26201: else if (__isnan(__x)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else if (__x == _Tp(0)) 26201: return -std::numeric_limits<_Tp>::infinity(); 26201: else 26201: { 26201: _Tp __j_n, __n_n, __jp_n, __np_n; 26201: __sph_bessel_jn(__n, __x, __j_n, __n_n, __jp_n, __np_n); 26201: return __n_n; 26201: } 26201: } 26201: } 26201: #undef _GLIBCXX_MATH_NS 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 51 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/tr1/beta_function.tcc" 1 3 26201: # 47 "/usr/x86_64-linux-gnu/include/c++/10/tr1/beta_function.tcc" 3 26201: #define _GLIBCXX_TR1_BETA_FUNCTION_TCC 1 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: #define _GLIBCXX_MATH_NS ::std 26201: # 65 "/usr/x86_64-linux-gnu/include/c++/10/tr1/beta_function.tcc" 3 26201: namespace __detail 26201: { 26201: # 79 "/usr/x86_64-linux-gnu/include/c++/10/tr1/beta_function.tcc" 3 26201: template 26201: _Tp 26201: __beta_gamma(_Tp __x, _Tp __y) 26201: { 26201: 26201: _Tp __bet; 26201: 26201: if (__x > __y) 26201: { 26201: __bet = ::std::tgamma(__x) 26201: / ::std::tgamma(__x + __y); 26201: __bet *= ::std::tgamma(__y); 26201: } 26201: else 26201: { 26201: __bet = ::std::tgamma(__y) 26201: / ::std::tgamma(__x + __y); 26201: __bet *= ::std::tgamma(__x); 26201: } 26201: # 111 "/usr/x86_64-linux-gnu/include/c++/10/tr1/beta_function.tcc" 3 26201: return __bet; 26201: } 26201: # 127 "/usr/x86_64-linux-gnu/include/c++/10/tr1/beta_function.tcc" 3 26201: template 26201: _Tp 26201: __beta_lgamma(_Tp __x, _Tp __y) 26201: { 26201: 26201: _Tp __bet = ::std::lgamma(__x) 26201: + ::std::lgamma(__y) 26201: - ::std::lgamma(__x + __y); 26201: 26201: 26201: 26201: 26201: 26201: __bet = std::exp(__bet); 26201: return __bet; 26201: } 26201: # 158 "/usr/x86_64-linux-gnu/include/c++/10/tr1/beta_function.tcc" 3 26201: template 26201: _Tp 26201: __beta_product(_Tp __x, _Tp __y) 26201: { 26201: 26201: _Tp __bet = (__x + __y) / (__x * __y); 26201: 26201: unsigned int __max_iter = 1000000; 26201: for (unsigned int __k = 1; __k < __max_iter; ++__k) 26201: { 26201: _Tp __term = (_Tp(1) + (__x + __y) / __k) 26201: / ((_Tp(1) + __x / __k) * (_Tp(1) + __y / __k)); 26201: __bet *= __term; 26201: } 26201: 26201: return __bet; 26201: } 26201: # 189 "/usr/x86_64-linux-gnu/include/c++/10/tr1/beta_function.tcc" 3 26201: template 26201: inline _Tp 26201: __beta(_Tp __x, _Tp __y) 26201: { 26201: if (__isnan(__x) || __isnan(__y)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else 26201: return __beta_lgamma(__x, __y); 26201: } 26201: } 26201: #undef _GLIBCXX_MATH_NS 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 52 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/tr1/ell_integral.tcc" 1 3 26201: # 43 "/usr/x86_64-linux-gnu/include/c++/10/tr1/ell_integral.tcc" 3 26201: #define _GLIBCXX_TR1_ELL_INTEGRAL_TCC 1 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 59 "/usr/x86_64-linux-gnu/include/c++/10/tr1/ell_integral.tcc" 3 26201: namespace __detail 26201: { 26201: # 76 "/usr/x86_64-linux-gnu/include/c++/10/tr1/ell_integral.tcc" 3 26201: template 26201: _Tp 26201: __ellint_rf(_Tp __x, _Tp __y, _Tp __z) 26201: { 26201: const _Tp __min = std::numeric_limits<_Tp>::min(); 26201: const _Tp __max = std::numeric_limits<_Tp>::max(); 26201: const _Tp __lolim = _Tp(5) * __min; 26201: const _Tp __uplim = __max / _Tp(5); 26201: 26201: if (__x < _Tp(0) || __y < _Tp(0) || __z < _Tp(0)) 26201: std::__throw_domain_error(("Argument less than zero " "in __ellint_rf.") 26201: ); 26201: else if (__x + __y < __lolim || __x + __z < __lolim 26201: || __y + __z < __lolim) 26201: std::__throw_domain_error(("Argument too small in __ellint_rf")); 26201: else 26201: { 26201: const _Tp __c0 = _Tp(1) / _Tp(4); 26201: const _Tp __c1 = _Tp(1) / _Tp(24); 26201: const _Tp __c2 = _Tp(1) / _Tp(10); 26201: const _Tp __c3 = _Tp(3) / _Tp(44); 26201: const _Tp __c4 = _Tp(1) / _Tp(14); 26201: 26201: _Tp __xn = __x; 26201: _Tp __yn = __y; 26201: _Tp __zn = __z; 26201: 26201: const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); 26201: const _Tp __errtol = std::pow(__eps, _Tp(1) / _Tp(6)); 26201: _Tp __mu; 26201: _Tp __xndev, __yndev, __zndev; 26201: 26201: const unsigned int __max_iter = 100; 26201: for (unsigned int __iter = 0; __iter < __max_iter; ++__iter) 26201: { 26201: __mu = (__xn + __yn + __zn) / _Tp(3); 26201: __xndev = 2 - (__mu + __xn) / __mu; 26201: __yndev = 2 - (__mu + __yn) / __mu; 26201: __zndev = 2 - (__mu + __zn) / __mu; 26201: _Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev)); 26201: __epsilon = std::max(__epsilon, std::abs(__zndev)); 26201: if (__epsilon < __errtol) 26201: break; 26201: const _Tp __xnroot = std::sqrt(__xn); 26201: const _Tp __ynroot = std::sqrt(__yn); 26201: const _Tp __znroot = std::sqrt(__zn); 26201: const _Tp __lambda = __xnroot * (__ynroot + __znroot) 26201: + __ynroot * __znroot; 26201: __xn = __c0 * (__xn + __lambda); 26201: __yn = __c0 * (__yn + __lambda); 26201: __zn = __c0 * (__zn + __lambda); 26201: } 26201: 26201: const _Tp __e2 = __xndev * __yndev - __zndev * __zndev; 26201: const _Tp __e3 = __xndev * __yndev * __zndev; 26201: const _Tp __s = _Tp(1) + (__c1 * __e2 - __c2 - __c3 * __e3) * __e2 26201: + __c4 * __e3; 26201: 26201: return __s / std::sqrt(__mu); 26201: } 26201: } 26201: # 155 "/usr/x86_64-linux-gnu/include/c++/10/tr1/ell_integral.tcc" 3 26201: template 26201: _Tp 26201: __comp_ellint_1_series(_Tp __k) 26201: { 26201: 26201: const _Tp __kk = __k * __k; 26201: 26201: _Tp __term = __kk / _Tp(4); 26201: _Tp __sum = _Tp(1) + __term; 26201: 26201: const unsigned int __max_iter = 1000; 26201: for (unsigned int __i = 2; __i < __max_iter; ++__i) 26201: { 26201: __term *= (2 * __i - 1) * __kk / (2 * __i); 26201: if (__term < std::numeric_limits<_Tp>::epsilon()) 26201: break; 26201: __sum += __term; 26201: } 26201: 26201: return __numeric_constants<_Tp>::__pi_2() * __sum; 26201: } 26201: # 193 "/usr/x86_64-linux-gnu/include/c++/10/tr1/ell_integral.tcc" 3 26201: template 26201: _Tp 26201: __comp_ellint_1(_Tp __k) 26201: { 26201: 26201: if (__isnan(__k)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else if (std::abs(__k) >= _Tp(1)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else 26201: return __ellint_rf(_Tp(0), _Tp(1) - __k * __k, _Tp(1)); 26201: } 26201: # 221 "/usr/x86_64-linux-gnu/include/c++/10/tr1/ell_integral.tcc" 3 26201: template 26201: _Tp 26201: __ellint_1(_Tp __k, _Tp __phi) 26201: { 26201: 26201: if (__isnan(__k) || __isnan(__phi)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else if (std::abs(__k) > _Tp(1)) 26201: std::__throw_domain_error(("Bad argument in __ellint_1.")); 26201: else 26201: { 26201: 26201: const int __n = std::floor(__phi / __numeric_constants<_Tp>::__pi() 26201: + _Tp(0.5L)); 26201: const _Tp __phi_red = __phi 26201: - __n * __numeric_constants<_Tp>::__pi(); 26201: 26201: const _Tp __s = std::sin(__phi_red); 26201: const _Tp __c = std::cos(__phi_red); 26201: 26201: const _Tp __F = __s 26201: * __ellint_rf(__c * __c, 26201: _Tp(1) - __k * __k * __s * __s, _Tp(1)); 26201: 26201: if (__n == 0) 26201: return __F; 26201: else 26201: return __F + _Tp(2) * __n * __comp_ellint_1(__k); 26201: } 26201: } 26201: # 268 "/usr/x86_64-linux-gnu/include/c++/10/tr1/ell_integral.tcc" 3 26201: template 26201: _Tp 26201: __comp_ellint_2_series(_Tp __k) 26201: { 26201: 26201: const _Tp __kk = __k * __k; 26201: 26201: _Tp __term = __kk; 26201: _Tp __sum = __term; 26201: 26201: const unsigned int __max_iter = 1000; 26201: for (unsigned int __i = 2; __i < __max_iter; ++__i) 26201: { 26201: const _Tp __i2m = 2 * __i - 1; 26201: const _Tp __i2 = 2 * __i; 26201: __term *= __i2m * __i2m * __kk / (__i2 * __i2); 26201: if (__term < std::numeric_limits<_Tp>::epsilon()) 26201: break; 26201: __sum += __term / __i2m; 26201: } 26201: 26201: return __numeric_constants<_Tp>::__pi_2() * (_Tp(1) - __sum); 26201: } 26201: # 316 "/usr/x86_64-linux-gnu/include/c++/10/tr1/ell_integral.tcc" 3 26201: template 26201: _Tp 26201: __ellint_rd(_Tp __x, _Tp __y, _Tp __z) 26201: { 26201: const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); 26201: const _Tp __errtol = std::pow(__eps / _Tp(8), _Tp(1) / _Tp(6)); 26201: const _Tp __min = std::numeric_limits<_Tp>::min(); 26201: const _Tp __max = std::numeric_limits<_Tp>::max(); 26201: const _Tp __lolim = _Tp(2) / std::pow(__max, _Tp(2) / _Tp(3)); 26201: const _Tp __uplim = std::pow(_Tp(0.1L) * __errtol / __min, _Tp(2) / _Tp(3)); 26201: 26201: if (__x < _Tp(0) || __y < _Tp(0)) 26201: std::__throw_domain_error(("Argument less than zero " "in __ellint_rd.") 26201: ); 26201: else if (__x + __y < __lolim || __z < __lolim) 26201: std::__throw_domain_error(("Argument too small " "in __ellint_rd.") 26201: ); 26201: else 26201: { 26201: const _Tp __c0 = _Tp(1) / _Tp(4); 26201: const _Tp __c1 = _Tp(3) / _Tp(14); 26201: const _Tp __c2 = _Tp(1) / _Tp(6); 26201: const _Tp __c3 = _Tp(9) / _Tp(22); 26201: const _Tp __c4 = _Tp(3) / _Tp(26); 26201: 26201: _Tp __xn = __x; 26201: _Tp __yn = __y; 26201: _Tp __zn = __z; 26201: _Tp __sigma = _Tp(0); 26201: _Tp __power4 = _Tp(1); 26201: 26201: _Tp __mu; 26201: _Tp __xndev, __yndev, __zndev; 26201: 26201: const unsigned int __max_iter = 100; 26201: for (unsigned int __iter = 0; __iter < __max_iter; ++__iter) 26201: { 26201: __mu = (__xn + __yn + _Tp(3) * __zn) / _Tp(5); 26201: __xndev = (__mu - __xn) / __mu; 26201: __yndev = (__mu - __yn) / __mu; 26201: __zndev = (__mu - __zn) / __mu; 26201: _Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev)); 26201: __epsilon = std::max(__epsilon, std::abs(__zndev)); 26201: if (__epsilon < __errtol) 26201: break; 26201: _Tp __xnroot = std::sqrt(__xn); 26201: _Tp __ynroot = std::sqrt(__yn); 26201: _Tp __znroot = std::sqrt(__zn); 26201: _Tp __lambda = __xnroot * (__ynroot + __znroot) 26201: + __ynroot * __znroot; 26201: __sigma += __power4 / (__znroot * (__zn + __lambda)); 26201: __power4 *= __c0; 26201: __xn = __c0 * (__xn + __lambda); 26201: __yn = __c0 * (__yn + __lambda); 26201: __zn = __c0 * (__zn + __lambda); 26201: } 26201: 26201: _Tp __ea = __xndev * __yndev; 26201: _Tp __eb = __zndev * __zndev; 26201: _Tp __ec = __ea - __eb; 26201: _Tp __ed = __ea - _Tp(6) * __eb; 26201: _Tp __ef = __ed + __ec + __ec; 26201: _Tp __s1 = __ed * (-__c1 + __c3 * __ed 26201: / _Tp(3) - _Tp(3) * __c4 * __zndev * __ef 26201: / _Tp(2)); 26201: _Tp __s2 = __zndev 26201: * (__c2 * __ef 26201: + __zndev * (-__c3 * __ec - __zndev * __c4 - __ea)); 26201: 26201: return _Tp(3) * __sigma + __power4 * (_Tp(1) + __s1 + __s2) 26201: / (__mu * std::sqrt(__mu)); 26201: } 26201: } 26201: # 403 "/usr/x86_64-linux-gnu/include/c++/10/tr1/ell_integral.tcc" 3 26201: template 26201: _Tp 26201: __comp_ellint_2(_Tp __k) 26201: { 26201: 26201: if (__isnan(__k)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else if (std::abs(__k) == 1) 26201: return _Tp(1); 26201: else if (std::abs(__k) > _Tp(1)) 26201: std::__throw_domain_error(("Bad argument in __comp_ellint_2.")); 26201: else 26201: { 26201: const _Tp __kk = __k * __k; 26201: 26201: return __ellint_rf(_Tp(0), _Tp(1) - __kk, _Tp(1)) 26201: - __kk * __ellint_rd(_Tp(0), _Tp(1) - __kk, _Tp(1)) / _Tp(3); 26201: } 26201: } 26201: # 437 "/usr/x86_64-linux-gnu/include/c++/10/tr1/ell_integral.tcc" 3 26201: template 26201: _Tp 26201: __ellint_2(_Tp __k, _Tp __phi) 26201: { 26201: 26201: if (__isnan(__k) || __isnan(__phi)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else if (std::abs(__k) > _Tp(1)) 26201: std::__throw_domain_error(("Bad argument in __ellint_2.")); 26201: else 26201: { 26201: 26201: const int __n = std::floor(__phi / __numeric_constants<_Tp>::__pi() 26201: + _Tp(0.5L)); 26201: const _Tp __phi_red = __phi 26201: - __n * __numeric_constants<_Tp>::__pi(); 26201: 26201: const _Tp __kk = __k * __k; 26201: const _Tp __s = std::sin(__phi_red); 26201: const _Tp __ss = __s * __s; 26201: const _Tp __sss = __ss * __s; 26201: const _Tp __c = std::cos(__phi_red); 26201: const _Tp __cc = __c * __c; 26201: 26201: const _Tp __E = __s 26201: * __ellint_rf(__cc, _Tp(1) - __kk * __ss, _Tp(1)) 26201: - __kk * __sss 26201: * __ellint_rd(__cc, _Tp(1) - __kk * __ss, _Tp(1)) 26201: / _Tp(3); 26201: 26201: if (__n == 0) 26201: return __E; 26201: else 26201: return __E + _Tp(2) * __n * __comp_ellint_2(__k); 26201: } 26201: } 26201: # 496 "/usr/x86_64-linux-gnu/include/c++/10/tr1/ell_integral.tcc" 3 26201: template 26201: _Tp 26201: __ellint_rc(_Tp __x, _Tp __y) 26201: { 26201: const _Tp __min = std::numeric_limits<_Tp>::min(); 26201: const _Tp __max = std::numeric_limits<_Tp>::max(); 26201: const _Tp __lolim = _Tp(5) * __min; 26201: const _Tp __uplim = __max / _Tp(5); 26201: 26201: if (__x < _Tp(0) || __y < _Tp(0) || __x + __y < __lolim) 26201: std::__throw_domain_error(("Argument less than zero " "in __ellint_rc.") 26201: ); 26201: else 26201: { 26201: const _Tp __c0 = _Tp(1) / _Tp(4); 26201: const _Tp __c1 = _Tp(1) / _Tp(7); 26201: const _Tp __c2 = _Tp(9) / _Tp(22); 26201: const _Tp __c3 = _Tp(3) / _Tp(10); 26201: const _Tp __c4 = _Tp(3) / _Tp(8); 26201: 26201: _Tp __xn = __x; 26201: _Tp __yn = __y; 26201: 26201: const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); 26201: const _Tp __errtol = std::pow(__eps / _Tp(30), _Tp(1) / _Tp(6)); 26201: _Tp __mu; 26201: _Tp __sn; 26201: 26201: const unsigned int __max_iter = 100; 26201: for (unsigned int __iter = 0; __iter < __max_iter; ++__iter) 26201: { 26201: __mu = (__xn + _Tp(2) * __yn) / _Tp(3); 26201: __sn = (__yn + __mu) / __mu - _Tp(2); 26201: if (std::abs(__sn) < __errtol) 26201: break; 26201: const _Tp __lambda = _Tp(2) * std::sqrt(__xn) * std::sqrt(__yn) 26201: + __yn; 26201: __xn = __c0 * (__xn + __lambda); 26201: __yn = __c0 * (__yn + __lambda); 26201: } 26201: 26201: _Tp __s = __sn * __sn 26201: * (__c3 + __sn*(__c1 + __sn * (__c4 + __sn * __c2))); 26201: 26201: return (_Tp(1) + __s) / std::sqrt(__mu); 26201: } 26201: } 26201: # 567 "/usr/x86_64-linux-gnu/include/c++/10/tr1/ell_integral.tcc" 3 26201: template 26201: _Tp 26201: __ellint_rj(_Tp __x, _Tp __y, _Tp __z, _Tp __p) 26201: { 26201: const _Tp __min = std::numeric_limits<_Tp>::min(); 26201: const _Tp __max = std::numeric_limits<_Tp>::max(); 26201: const _Tp __lolim = std::pow(_Tp(5) * __min, _Tp(1)/_Tp(3)); 26201: const _Tp __uplim = _Tp(0.3L) 26201: * std::pow(_Tp(0.2L) * __max, _Tp(1)/_Tp(3)); 26201: 26201: if (__x < _Tp(0) || __y < _Tp(0) || __z < _Tp(0)) 26201: std::__throw_domain_error(("Argument less than zero " "in __ellint_rj.") 26201: ); 26201: else if (__x + __y < __lolim || __x + __z < __lolim 26201: || __y + __z < __lolim || __p < __lolim) 26201: std::__throw_domain_error(("Argument too small " "in __ellint_rj") 26201: ); 26201: else 26201: { 26201: const _Tp __c0 = _Tp(1) / _Tp(4); 26201: const _Tp __c1 = _Tp(3) / _Tp(14); 26201: const _Tp __c2 = _Tp(1) / _Tp(3); 26201: const _Tp __c3 = _Tp(3) / _Tp(22); 26201: const _Tp __c4 = _Tp(3) / _Tp(26); 26201: 26201: _Tp __xn = __x; 26201: _Tp __yn = __y; 26201: _Tp __zn = __z; 26201: _Tp __pn = __p; 26201: _Tp __sigma = _Tp(0); 26201: _Tp __power4 = _Tp(1); 26201: 26201: const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); 26201: const _Tp __errtol = std::pow(__eps / _Tp(8), _Tp(1) / _Tp(6)); 26201: 26201: _Tp __lambda, __mu; 26201: _Tp __xndev, __yndev, __zndev, __pndev; 26201: 26201: const unsigned int __max_iter = 100; 26201: for (unsigned int __iter = 0; __iter < __max_iter; ++__iter) 26201: { 26201: __mu = (__xn + __yn + __zn + _Tp(2) * __pn) / _Tp(5); 26201: __xndev = (__mu - __xn) / __mu; 26201: __yndev = (__mu - __yn) / __mu; 26201: __zndev = (__mu - __zn) / __mu; 26201: __pndev = (__mu - __pn) / __mu; 26201: _Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev)); 26201: __epsilon = std::max(__epsilon, std::abs(__zndev)); 26201: __epsilon = std::max(__epsilon, std::abs(__pndev)); 26201: if (__epsilon < __errtol) 26201: break; 26201: const _Tp __xnroot = std::sqrt(__xn); 26201: const _Tp __ynroot = std::sqrt(__yn); 26201: const _Tp __znroot = std::sqrt(__zn); 26201: const _Tp __lambda = __xnroot * (__ynroot + __znroot) 26201: + __ynroot * __znroot; 26201: const _Tp __alpha1 = __pn * (__xnroot + __ynroot + __znroot) 26201: + __xnroot * __ynroot * __znroot; 26201: const _Tp __alpha2 = __alpha1 * __alpha1; 26201: const _Tp __beta = __pn * (__pn + __lambda) 26201: * (__pn + __lambda); 26201: __sigma += __power4 * __ellint_rc(__alpha2, __beta); 26201: __power4 *= __c0; 26201: __xn = __c0 * (__xn + __lambda); 26201: __yn = __c0 * (__yn + __lambda); 26201: __zn = __c0 * (__zn + __lambda); 26201: __pn = __c0 * (__pn + __lambda); 26201: } 26201: 26201: _Tp __ea = __xndev * (__yndev + __zndev) + __yndev * __zndev; 26201: _Tp __eb = __xndev * __yndev * __zndev; 26201: _Tp __ec = __pndev * __pndev; 26201: _Tp __e2 = __ea - _Tp(3) * __ec; 26201: _Tp __e3 = __eb + _Tp(2) * __pndev * (__ea - __ec); 26201: _Tp __s1 = _Tp(1) + __e2 * (-__c1 + _Tp(3) * __c3 * __e2 / _Tp(4) 26201: - _Tp(3) * __c4 * __e3 / _Tp(2)); 26201: _Tp __s2 = __eb * (__c2 / _Tp(2) 26201: + __pndev * (-__c3 - __c3 + __pndev * __c4)); 26201: _Tp __s3 = __pndev * __ea * (__c2 - __pndev * __c3) 26201: - __c2 * __pndev * __ec; 26201: 26201: return _Tp(3) * __sigma + __power4 * (__s1 + __s2 + __s3) 26201: / (__mu * std::sqrt(__mu)); 26201: } 26201: } 26201: # 670 "/usr/x86_64-linux-gnu/include/c++/10/tr1/ell_integral.tcc" 3 26201: template 26201: _Tp 26201: __comp_ellint_3(_Tp __k, _Tp __nu) 26201: { 26201: 26201: if (__isnan(__k) || __isnan(__nu)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else if (__nu == _Tp(1)) 26201: return std::numeric_limits<_Tp>::infinity(); 26201: else if (std::abs(__k) > _Tp(1)) 26201: std::__throw_domain_error(("Bad argument in __comp_ellint_3.")); 26201: else 26201: { 26201: const _Tp __kk = __k * __k; 26201: 26201: return __ellint_rf(_Tp(0), _Tp(1) - __kk, _Tp(1)) 26201: + __nu 26201: * __ellint_rj(_Tp(0), _Tp(1) - __kk, _Tp(1), _Tp(1) - __nu) 26201: / _Tp(3); 26201: } 26201: } 26201: # 710 "/usr/x86_64-linux-gnu/include/c++/10/tr1/ell_integral.tcc" 3 26201: template 26201: _Tp 26201: __ellint_3(_Tp __k, _Tp __nu, _Tp __phi) 26201: { 26201: 26201: if (__isnan(__k) || __isnan(__nu) || __isnan(__phi)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else if (std::abs(__k) > _Tp(1)) 26201: std::__throw_domain_error(("Bad argument in __ellint_3.")); 26201: else 26201: { 26201: 26201: const int __n = std::floor(__phi / __numeric_constants<_Tp>::__pi() 26201: + _Tp(0.5L)); 26201: const _Tp __phi_red = __phi 26201: - __n * __numeric_constants<_Tp>::__pi(); 26201: 26201: const _Tp __kk = __k * __k; 26201: const _Tp __s = std::sin(__phi_red); 26201: const _Tp __ss = __s * __s; 26201: const _Tp __sss = __ss * __s; 26201: const _Tp __c = std::cos(__phi_red); 26201: const _Tp __cc = __c * __c; 26201: 26201: const _Tp __Pi = __s 26201: * __ellint_rf(__cc, _Tp(1) - __kk * __ss, _Tp(1)) 26201: + __nu * __sss 26201: * __ellint_rj(__cc, _Tp(1) - __kk * __ss, _Tp(1), 26201: _Tp(1) - __nu * __ss) / _Tp(3); 26201: 26201: if (__n == 0) 26201: return __Pi; 26201: else 26201: return __Pi + _Tp(2) * __n * __comp_ellint_3(__k, __nu); 26201: } 26201: } 26201: } 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 53 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/tr1/exp_integral.tcc" 1 3 26201: # 46 "/usr/x86_64-linux-gnu/include/c++/10/tr1/exp_integral.tcc" 3 26201: #define _GLIBCXX_TR1_EXP_INTEGRAL_TCC 1 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 64 "/usr/x86_64-linux-gnu/include/c++/10/tr1/exp_integral.tcc" 3 26201: namespace __detail 26201: { 26201: template _Tp __expint_E1(_Tp); 26201: # 81 "/usr/x86_64-linux-gnu/include/c++/10/tr1/exp_integral.tcc" 3 26201: template 26201: _Tp 26201: __expint_E1_series(_Tp __x) 26201: { 26201: const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); 26201: _Tp __term = _Tp(1); 26201: _Tp __esum = _Tp(0); 26201: _Tp __osum = _Tp(0); 26201: const unsigned int __max_iter = 1000; 26201: for (unsigned int __i = 1; __i < __max_iter; ++__i) 26201: { 26201: __term *= - __x / __i; 26201: if (std::abs(__term) < __eps) 26201: break; 26201: if (__term >= _Tp(0)) 26201: __esum += __term / __i; 26201: else 26201: __osum += __term / __i; 26201: } 26201: 26201: return - __esum - __osum 26201: - __numeric_constants<_Tp>::__gamma_e() - std::log(__x); 26201: } 26201: # 118 "/usr/x86_64-linux-gnu/include/c++/10/tr1/exp_integral.tcc" 3 26201: template 26201: _Tp 26201: __expint_E1_asymp(_Tp __x) 26201: { 26201: _Tp __term = _Tp(1); 26201: _Tp __esum = _Tp(1); 26201: _Tp __osum = _Tp(0); 26201: const unsigned int __max_iter = 1000; 26201: for (unsigned int __i = 1; __i < __max_iter; ++__i) 26201: { 26201: _Tp __prev = __term; 26201: __term *= - __i / __x; 26201: if (std::abs(__term) > std::abs(__prev)) 26201: break; 26201: if (__term >= _Tp(0)) 26201: __esum += __term; 26201: else 26201: __osum += __term; 26201: } 26201: 26201: return std::exp(- __x) * (__esum + __osum) / __x; 26201: } 26201: # 155 "/usr/x86_64-linux-gnu/include/c++/10/tr1/exp_integral.tcc" 3 26201: template 26201: _Tp 26201: __expint_En_series(unsigned int __n, _Tp __x) 26201: { 26201: const unsigned int __max_iter = 1000; 26201: const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); 26201: const int __nm1 = __n - 1; 26201: _Tp __ans = (__nm1 != 0 26201: ? _Tp(1) / __nm1 : -std::log(__x) 26201: - __numeric_constants<_Tp>::__gamma_e()); 26201: _Tp __fact = _Tp(1); 26201: for (int __i = 1; __i <= __max_iter; ++__i) 26201: { 26201: __fact *= -__x / _Tp(__i); 26201: _Tp __del; 26201: if ( __i != __nm1 ) 26201: __del = -__fact / _Tp(__i - __nm1); 26201: else 26201: { 26201: _Tp __psi = -__numeric_constants<_Tp>::gamma_e(); 26201: for (int __ii = 1; __ii <= __nm1; ++__ii) 26201: __psi += _Tp(1) / _Tp(__ii); 26201: __del = __fact * (__psi - std::log(__x)); 26201: } 26201: __ans += __del; 26201: if (std::abs(__del) < __eps * std::abs(__ans)) 26201: return __ans; 26201: } 26201: std::__throw_runtime_error(("Series summation failed " "in __expint_En_series.") 26201: ); 26201: } 26201: # 201 "/usr/x86_64-linux-gnu/include/c++/10/tr1/exp_integral.tcc" 3 26201: template 26201: _Tp 26201: __expint_En_cont_frac(unsigned int __n, _Tp __x) 26201: { 26201: const unsigned int __max_iter = 1000; 26201: const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); 26201: const _Tp __fp_min = std::numeric_limits<_Tp>::min(); 26201: const int __nm1 = __n - 1; 26201: _Tp __b = __x + _Tp(__n); 26201: _Tp __c = _Tp(1) / __fp_min; 26201: _Tp __d = _Tp(1) / __b; 26201: _Tp __h = __d; 26201: for ( unsigned int __i = 1; __i <= __max_iter; ++__i ) 26201: { 26201: _Tp __a = -_Tp(__i * (__nm1 + __i)); 26201: __b += _Tp(2); 26201: __d = _Tp(1) / (__a * __d + __b); 26201: __c = __b + __a / __c; 26201: const _Tp __del = __c * __d; 26201: __h *= __del; 26201: if (std::abs(__del - _Tp(1)) < __eps) 26201: { 26201: const _Tp __ans = __h * std::exp(-__x); 26201: return __ans; 26201: } 26201: } 26201: std::__throw_runtime_error(("Continued fraction failed " "in __expint_En_cont_frac.") 26201: ); 26201: } 26201: # 246 "/usr/x86_64-linux-gnu/include/c++/10/tr1/exp_integral.tcc" 3 26201: template 26201: _Tp 26201: __expint_En_recursion(unsigned int __n, _Tp __x) 26201: { 26201: _Tp __En; 26201: _Tp __E1 = __expint_E1(__x); 26201: if (__x < _Tp(__n)) 26201: { 26201: 26201: __En = __E1; 26201: for (unsigned int __j = 2; __j < __n; ++__j) 26201: __En = (std::exp(-__x) - __x * __En) / _Tp(__j - 1); 26201: } 26201: else 26201: { 26201: 26201: __En = _Tp(1); 26201: const int __N = __n + 20; 26201: _Tp __save = _Tp(0); 26201: for (int __j = __N; __j > 0; --__j) 26201: { 26201: __En = (std::exp(-__x) - __j * __En) / __x; 26201: if (__j == __n) 26201: __save = __En; 26201: } 26201: _Tp __norm = __En / __E1; 26201: __En /= __norm; 26201: } 26201: 26201: return __En; 26201: } 26201: # 290 "/usr/x86_64-linux-gnu/include/c++/10/tr1/exp_integral.tcc" 3 26201: template 26201: _Tp 26201: __expint_Ei_series(_Tp __x) 26201: { 26201: _Tp __term = _Tp(1); 26201: _Tp __sum = _Tp(0); 26201: const unsigned int __max_iter = 1000; 26201: for (unsigned int __i = 1; __i < __max_iter; ++__i) 26201: { 26201: __term *= __x / __i; 26201: __sum += __term / __i; 26201: if (__term < std::numeric_limits<_Tp>::epsilon() * __sum) 26201: break; 26201: } 26201: 26201: return __numeric_constants<_Tp>::__gamma_e() + __sum + std::log(__x); 26201: } 26201: # 321 "/usr/x86_64-linux-gnu/include/c++/10/tr1/exp_integral.tcc" 3 26201: template 26201: _Tp 26201: __expint_Ei_asymp(_Tp __x) 26201: { 26201: _Tp __term = _Tp(1); 26201: _Tp __sum = _Tp(1); 26201: const unsigned int __max_iter = 1000; 26201: for (unsigned int __i = 1; __i < __max_iter; ++__i) 26201: { 26201: _Tp __prev = __term; 26201: __term *= __i / __x; 26201: if (__term < std::numeric_limits<_Tp>::epsilon()) 26201: break; 26201: if (__term >= __prev) 26201: break; 26201: __sum += __term; 26201: } 26201: 26201: return std::exp(__x) * __sum / __x; 26201: } 26201: # 354 "/usr/x86_64-linux-gnu/include/c++/10/tr1/exp_integral.tcc" 3 26201: template 26201: _Tp 26201: __expint_Ei(_Tp __x) 26201: { 26201: if (__x < _Tp(0)) 26201: return -__expint_E1(-__x); 26201: else if (__x < -std::log(std::numeric_limits<_Tp>::epsilon())) 26201: return __expint_Ei_series(__x); 26201: else 26201: return __expint_Ei_asymp(__x); 26201: } 26201: # 378 "/usr/x86_64-linux-gnu/include/c++/10/tr1/exp_integral.tcc" 3 26201: template 26201: _Tp 26201: __expint_E1(_Tp __x) 26201: { 26201: if (__x < _Tp(0)) 26201: return -__expint_Ei(-__x); 26201: else if (__x < _Tp(1)) 26201: return __expint_E1_series(__x); 26201: else if (__x < _Tp(100)) 26201: return __expint_En_cont_frac(1, __x); 26201: else 26201: return __expint_E1_asymp(__x); 26201: } 26201: # 408 "/usr/x86_64-linux-gnu/include/c++/10/tr1/exp_integral.tcc" 3 26201: template 26201: _Tp 26201: __expint_asymp(unsigned int __n, _Tp __x) 26201: { 26201: _Tp __term = _Tp(1); 26201: _Tp __sum = _Tp(1); 26201: for (unsigned int __i = 1; __i <= __n; ++__i) 26201: { 26201: _Tp __prev = __term; 26201: __term *= -(__n - __i + 1) / __x; 26201: if (std::abs(__term) > std::abs(__prev)) 26201: break; 26201: __sum += __term; 26201: } 26201: 26201: return std::exp(-__x) * __sum / __x; 26201: } 26201: # 442 "/usr/x86_64-linux-gnu/include/c++/10/tr1/exp_integral.tcc" 3 26201: template 26201: _Tp 26201: __expint_large_n(unsigned int __n, _Tp __x) 26201: { 26201: const _Tp __xpn = __x + __n; 26201: const _Tp __xpn2 = __xpn * __xpn; 26201: _Tp __term = _Tp(1); 26201: _Tp __sum = _Tp(1); 26201: for (unsigned int __i = 1; __i <= __n; ++__i) 26201: { 26201: _Tp __prev = __term; 26201: __term *= (__n - 2 * (__i - 1) * __x) / __xpn2; 26201: if (std::abs(__term) < std::numeric_limits<_Tp>::epsilon()) 26201: break; 26201: __sum += __term; 26201: } 26201: 26201: return std::exp(-__x) * __sum / __xpn; 26201: } 26201: # 476 "/usr/x86_64-linux-gnu/include/c++/10/tr1/exp_integral.tcc" 3 26201: template 26201: _Tp 26201: __expint(unsigned int __n, _Tp __x) 26201: { 26201: 26201: if (__isnan(__x)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else if (__n <= 1 && __x == _Tp(0)) 26201: return std::numeric_limits<_Tp>::infinity(); 26201: else 26201: { 26201: _Tp __E0 = std::exp(__x) / __x; 26201: if (__n == 0) 26201: return __E0; 26201: 26201: _Tp __E1 = __expint_E1(__x); 26201: if (__n == 1) 26201: return __E1; 26201: 26201: if (__x == _Tp(0)) 26201: return _Tp(1) / static_cast<_Tp>(__n - 1); 26201: 26201: _Tp __En = __expint_En_recursion(__n, __x); 26201: 26201: return __En; 26201: } 26201: } 26201: # 516 "/usr/x86_64-linux-gnu/include/c++/10/tr1/exp_integral.tcc" 3 26201: template 26201: inline _Tp 26201: __expint(_Tp __x) 26201: { 26201: if (__isnan(__x)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else 26201: return __expint_Ei(__x); 26201: } 26201: } 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 54 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/tr1/hypergeometric.tcc" 1 3 26201: # 42 "/usr/x86_64-linux-gnu/include/c++/10/tr1/hypergeometric.tcc" 3 26201: #define _GLIBCXX_TR1_HYPERGEOMETRIC_TCC 1 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: #define _GLIBCXX_MATH_NS ::std 26201: # 60 "/usr/x86_64-linux-gnu/include/c++/10/tr1/hypergeometric.tcc" 3 26201: namespace __detail 26201: { 26201: # 83 "/usr/x86_64-linux-gnu/include/c++/10/tr1/hypergeometric.tcc" 3 26201: template 26201: _Tp 26201: __conf_hyperg_series(_Tp __a, _Tp __c, _Tp __x) 26201: { 26201: const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); 26201: 26201: _Tp __term = _Tp(1); 26201: _Tp __Fac = _Tp(1); 26201: const unsigned int __max_iter = 100000; 26201: unsigned int __i; 26201: for (__i = 0; __i < __max_iter; ++__i) 26201: { 26201: __term *= (__a + _Tp(__i)) * __x 26201: / ((__c + _Tp(__i)) * _Tp(1 + __i)); 26201: if (std::abs(__term) < __eps) 26201: { 26201: break; 26201: } 26201: __Fac += __term; 26201: } 26201: if (__i == __max_iter) 26201: std::__throw_runtime_error(("Series failed to converge " "in __conf_hyperg_series.") 26201: ); 26201: 26201: return __Fac; 26201: } 26201: # 120 "/usr/x86_64-linux-gnu/include/c++/10/tr1/hypergeometric.tcc" 3 26201: template 26201: _Tp 26201: __conf_hyperg_luke(_Tp __a, _Tp __c, _Tp __xin) 26201: { 26201: const _Tp __big = std::pow(std::numeric_limits<_Tp>::max(), _Tp(0.16L)); 26201: const int __nmax = 20000; 26201: const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); 26201: const _Tp __x = -__xin; 26201: const _Tp __x3 = __x * __x * __x; 26201: const _Tp __t0 = __a / __c; 26201: const _Tp __t1 = (__a + _Tp(1)) / (_Tp(2) * __c); 26201: const _Tp __t2 = (__a + _Tp(2)) / (_Tp(2) * (__c + _Tp(1))); 26201: _Tp __F = _Tp(1); 26201: _Tp __prec; 26201: 26201: _Tp __Bnm3 = _Tp(1); 26201: _Tp __Bnm2 = _Tp(1) + __t1 * __x; 26201: _Tp __Bnm1 = _Tp(1) + __t2 * __x * (_Tp(1) + __t1 / _Tp(3) * __x); 26201: 26201: _Tp __Anm3 = _Tp(1); 26201: _Tp __Anm2 = __Bnm2 - __t0 * __x; 26201: _Tp __Anm1 = __Bnm1 - __t0 * (_Tp(1) + __t2 * __x) * __x 26201: + __t0 * __t1 * (__c / (__c + _Tp(1))) * __x * __x; 26201: 26201: int __n = 3; 26201: while(1) 26201: { 26201: _Tp __npam1 = _Tp(__n - 1) + __a; 26201: _Tp __npcm1 = _Tp(__n - 1) + __c; 26201: _Tp __npam2 = _Tp(__n - 2) + __a; 26201: _Tp __npcm2 = _Tp(__n - 2) + __c; 26201: _Tp __tnm1 = _Tp(2 * __n - 1); 26201: _Tp __tnm3 = _Tp(2 * __n - 3); 26201: _Tp __tnm5 = _Tp(2 * __n - 5); 26201: _Tp __F1 = (_Tp(__n - 2) - __a) / (_Tp(2) * __tnm3 * __npcm1); 26201: _Tp __F2 = (_Tp(__n) + __a) * __npam1 26201: / (_Tp(4) * __tnm1 * __tnm3 * __npcm2 * __npcm1); 26201: _Tp __F3 = -__npam2 * __npam1 * (_Tp(__n - 2) - __a) 26201: / (_Tp(8) * __tnm3 * __tnm3 * __tnm5 26201: * (_Tp(__n - 3) + __c) * __npcm2 * __npcm1); 26201: _Tp __E = -__npam1 * (_Tp(__n - 1) - __c) 26201: / (_Tp(2) * __tnm3 * __npcm2 * __npcm1); 26201: 26201: _Tp __An = (_Tp(1) + __F1 * __x) * __Anm1 26201: + (__E + __F2 * __x) * __x * __Anm2 + __F3 * __x3 * __Anm3; 26201: _Tp __Bn = (_Tp(1) + __F1 * __x) * __Bnm1 26201: + (__E + __F2 * __x) * __x * __Bnm2 + __F3 * __x3 * __Bnm3; 26201: _Tp __r = __An / __Bn; 26201: 26201: __prec = std::abs((__F - __r) / __F); 26201: __F = __r; 26201: 26201: if (__prec < __eps || __n > __nmax) 26201: break; 26201: 26201: if (std::abs(__An) > __big || std::abs(__Bn) > __big) 26201: { 26201: __An /= __big; 26201: __Bn /= __big; 26201: __Anm1 /= __big; 26201: __Bnm1 /= __big; 26201: __Anm2 /= __big; 26201: __Bnm2 /= __big; 26201: __Anm3 /= __big; 26201: __Bnm3 /= __big; 26201: } 26201: else if (std::abs(__An) < _Tp(1) / __big 26201: || std::abs(__Bn) < _Tp(1) / __big) 26201: { 26201: __An *= __big; 26201: __Bn *= __big; 26201: __Anm1 *= __big; 26201: __Bnm1 *= __big; 26201: __Anm2 *= __big; 26201: __Bnm2 *= __big; 26201: __Anm3 *= __big; 26201: __Bnm3 *= __big; 26201: } 26201: 26201: ++__n; 26201: __Bnm3 = __Bnm2; 26201: __Bnm2 = __Bnm1; 26201: __Bnm1 = __Bn; 26201: __Anm3 = __Anm2; 26201: __Anm2 = __Anm1; 26201: __Anm1 = __An; 26201: } 26201: 26201: if (__n >= __nmax) 26201: std::__throw_runtime_error(("Iteration failed to converge " "in __conf_hyperg_luke.") 26201: ); 26201: 26201: return __F; 26201: } 26201: # 227 "/usr/x86_64-linux-gnu/include/c++/10/tr1/hypergeometric.tcc" 3 26201: template 26201: _Tp 26201: __conf_hyperg(_Tp __a, _Tp __c, _Tp __x) 26201: { 26201: 26201: const _Tp __c_nint = ::std::nearbyint(__c); 26201: 26201: 26201: 26201: if (__isnan(__a) || __isnan(__c) || __isnan(__x)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else if (__c_nint == __c && __c_nint <= 0) 26201: return std::numeric_limits<_Tp>::infinity(); 26201: else if (__a == _Tp(0)) 26201: return _Tp(1); 26201: else if (__c == __a) 26201: return std::exp(__x); 26201: else if (__x < _Tp(0)) 26201: return __conf_hyperg_luke(__a, __c, __x); 26201: else 26201: return __conf_hyperg_series(__a, __c, __x); 26201: } 26201: # 271 "/usr/x86_64-linux-gnu/include/c++/10/tr1/hypergeometric.tcc" 3 26201: template 26201: _Tp 26201: __hyperg_series(_Tp __a, _Tp __b, _Tp __c, _Tp __x) 26201: { 26201: const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); 26201: 26201: _Tp __term = _Tp(1); 26201: _Tp __Fabc = _Tp(1); 26201: const unsigned int __max_iter = 100000; 26201: unsigned int __i; 26201: for (__i = 0; __i < __max_iter; ++__i) 26201: { 26201: __term *= (__a + _Tp(__i)) * (__b + _Tp(__i)) * __x 26201: / ((__c + _Tp(__i)) * _Tp(1 + __i)); 26201: if (std::abs(__term) < __eps) 26201: { 26201: break; 26201: } 26201: __Fabc += __term; 26201: } 26201: if (__i == __max_iter) 26201: std::__throw_runtime_error(("Series failed to converge " "in __hyperg_series.") 26201: ); 26201: 26201: return __Fabc; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: _Tp 26201: __hyperg_luke(_Tp __a, _Tp __b, _Tp __c, _Tp __xin) 26201: { 26201: const _Tp __big = std::pow(std::numeric_limits<_Tp>::max(), _Tp(0.16L)); 26201: const int __nmax = 20000; 26201: const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); 26201: const _Tp __x = -__xin; 26201: const _Tp __x3 = __x * __x * __x; 26201: const _Tp __t0 = __a * __b / __c; 26201: const _Tp __t1 = (__a + _Tp(1)) * (__b + _Tp(1)) / (_Tp(2) * __c); 26201: const _Tp __t2 = (__a + _Tp(2)) * (__b + _Tp(2)) 26201: / (_Tp(2) * (__c + _Tp(1))); 26201: 26201: _Tp __F = _Tp(1); 26201: 26201: _Tp __Bnm3 = _Tp(1); 26201: _Tp __Bnm2 = _Tp(1) + __t1 * __x; 26201: _Tp __Bnm1 = _Tp(1) + __t2 * __x * (_Tp(1) + __t1 / _Tp(3) * __x); 26201: 26201: _Tp __Anm3 = _Tp(1); 26201: _Tp __Anm2 = __Bnm2 - __t0 * __x; 26201: _Tp __Anm1 = __Bnm1 - __t0 * (_Tp(1) + __t2 * __x) * __x 26201: + __t0 * __t1 * (__c / (__c + _Tp(1))) * __x * __x; 26201: 26201: int __n = 3; 26201: while (1) 26201: { 26201: const _Tp __npam1 = _Tp(__n - 1) + __a; 26201: const _Tp __npbm1 = _Tp(__n - 1) + __b; 26201: const _Tp __npcm1 = _Tp(__n - 1) + __c; 26201: const _Tp __npam2 = _Tp(__n - 2) + __a; 26201: const _Tp __npbm2 = _Tp(__n - 2) + __b; 26201: const _Tp __npcm2 = _Tp(__n - 2) + __c; 26201: const _Tp __tnm1 = _Tp(2 * __n - 1); 26201: const _Tp __tnm3 = _Tp(2 * __n - 3); 26201: const _Tp __tnm5 = _Tp(2 * __n - 5); 26201: const _Tp __n2 = __n * __n; 26201: const _Tp __F1 = (_Tp(3) * __n2 + (__a + __b - _Tp(6)) * __n 26201: + _Tp(2) - __a * __b - _Tp(2) * (__a + __b)) 26201: / (_Tp(2) * __tnm3 * __npcm1); 26201: const _Tp __F2 = -(_Tp(3) * __n2 - (__a + __b + _Tp(6)) * __n 26201: + _Tp(2) - __a * __b) * __npam1 * __npbm1 26201: / (_Tp(4) * __tnm1 * __tnm3 * __npcm2 * __npcm1); 26201: const _Tp __F3 = (__npam2 * __npam1 * __npbm2 * __npbm1 26201: * (_Tp(__n - 2) - __a) * (_Tp(__n - 2) - __b)) 26201: / (_Tp(8) * __tnm3 * __tnm3 * __tnm5 26201: * (_Tp(__n - 3) + __c) * __npcm2 * __npcm1); 26201: const _Tp __E = -__npam1 * __npbm1 * (_Tp(__n - 1) - __c) 26201: / (_Tp(2) * __tnm3 * __npcm2 * __npcm1); 26201: 26201: _Tp __An = (_Tp(1) + __F1 * __x) * __Anm1 26201: + (__E + __F2 * __x) * __x * __Anm2 + __F3 * __x3 * __Anm3; 26201: _Tp __Bn = (_Tp(1) + __F1 * __x) * __Bnm1 26201: + (__E + __F2 * __x) * __x * __Bnm2 + __F3 * __x3 * __Bnm3; 26201: const _Tp __r = __An / __Bn; 26201: 26201: const _Tp __prec = std::abs((__F - __r) / __F); 26201: __F = __r; 26201: 26201: if (__prec < __eps || __n > __nmax) 26201: break; 26201: 26201: if (std::abs(__An) > __big || std::abs(__Bn) > __big) 26201: { 26201: __An /= __big; 26201: __Bn /= __big; 26201: __Anm1 /= __big; 26201: __Bnm1 /= __big; 26201: __Anm2 /= __big; 26201: __Bnm2 /= __big; 26201: __Anm3 /= __big; 26201: __Bnm3 /= __big; 26201: } 26201: else if (std::abs(__An) < _Tp(1) / __big 26201: || std::abs(__Bn) < _Tp(1) / __big) 26201: { 26201: __An *= __big; 26201: __Bn *= __big; 26201: __Anm1 *= __big; 26201: __Bnm1 *= __big; 26201: __Anm2 *= __big; 26201: __Bnm2 *= __big; 26201: __Anm3 *= __big; 26201: __Bnm3 *= __big; 26201: } 26201: 26201: ++__n; 26201: __Bnm3 = __Bnm2; 26201: __Bnm2 = __Bnm1; 26201: __Bnm1 = __Bn; 26201: __Anm3 = __Anm2; 26201: __Anm2 = __Anm1; 26201: __Anm1 = __An; 26201: } 26201: 26201: if (__n >= __nmax) 26201: std::__throw_runtime_error(("Iteration failed to converge " "in __hyperg_luke.") 26201: ); 26201: 26201: return __F; 26201: } 26201: # 438 "/usr/x86_64-linux-gnu/include/c++/10/tr1/hypergeometric.tcc" 3 26201: template 26201: _Tp 26201: __hyperg_reflect(_Tp __a, _Tp __b, _Tp __c, _Tp __x) 26201: { 26201: const _Tp __d = __c - __a - __b; 26201: const int __intd = std::floor(__d + _Tp(0.5L)); 26201: const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); 26201: const _Tp __toler = _Tp(1000) * __eps; 26201: const _Tp __log_max = std::log(std::numeric_limits<_Tp>::max()); 26201: const bool __d_integer = (std::abs(__d - __intd) < __toler); 26201: 26201: if (__d_integer) 26201: { 26201: const _Tp __ln_omx = std::log(_Tp(1) - __x); 26201: const _Tp __ad = std::abs(__d); 26201: _Tp __F1, __F2; 26201: 26201: _Tp __d1, __d2; 26201: if (__d >= _Tp(0)) 26201: { 26201: __d1 = __d; 26201: __d2 = _Tp(0); 26201: } 26201: else 26201: { 26201: __d1 = _Tp(0); 26201: __d2 = __d; 26201: } 26201: 26201: const _Tp __lng_c = __log_gamma(__c); 26201: 26201: 26201: if (__ad < __eps) 26201: { 26201: 26201: __F1 = _Tp(0); 26201: } 26201: else 26201: { 26201: 26201: bool __ok_d1 = true; 26201: _Tp __lng_ad, __lng_ad1, __lng_bd1; 26201: try 26201: { 26201: __lng_ad = __log_gamma(__ad); 26201: __lng_ad1 = __log_gamma(__a + __d1); 26201: __lng_bd1 = __log_gamma(__b + __d1); 26201: } 26201: catch(...) 26201: { 26201: __ok_d1 = false; 26201: } 26201: 26201: if (__ok_d1) 26201: { 26201: 26201: 26201: 26201: _Tp __sum1 = _Tp(1); 26201: _Tp __term = _Tp(1); 26201: _Tp __ln_pre1 = __lng_ad + __lng_c + __d2 * __ln_omx 26201: - __lng_ad1 - __lng_bd1; 26201: 26201: 26201: 26201: for (int __i = 1; __i < __ad; ++__i) 26201: { 26201: const int __j = __i - 1; 26201: __term *= (__a + __d2 + __j) * (__b + __d2 + __j) 26201: / (_Tp(1) + __d2 + __j) / __i * (_Tp(1) - __x); 26201: __sum1 += __term; 26201: } 26201: 26201: if (__ln_pre1 > __log_max) 26201: std::__throw_runtime_error(("Overflow of gamma functions" " in __hyperg_luke.") 26201: ); 26201: else 26201: __F1 = std::exp(__ln_pre1) * __sum1; 26201: } 26201: else 26201: { 26201: 26201: 26201: __F1 = _Tp(0); 26201: } 26201: } 26201: 26201: 26201: bool __ok_d2 = true; 26201: _Tp __lng_ad2, __lng_bd2; 26201: try 26201: { 26201: __lng_ad2 = __log_gamma(__a + __d2); 26201: __lng_bd2 = __log_gamma(__b + __d2); 26201: } 26201: catch(...) 26201: { 26201: __ok_d2 = false; 26201: } 26201: 26201: if (__ok_d2) 26201: { 26201: 26201: 26201: const int __maxiter = 2000; 26201: const _Tp __psi_1 = -__numeric_constants<_Tp>::__gamma_e(); 26201: const _Tp __psi_1pd = __psi(_Tp(1) + __ad); 26201: const _Tp __psi_apd1 = __psi(__a + __d1); 26201: const _Tp __psi_bpd1 = __psi(__b + __d1); 26201: 26201: _Tp __psi_term = __psi_1 + __psi_1pd - __psi_apd1 26201: - __psi_bpd1 - __ln_omx; 26201: _Tp __fact = _Tp(1); 26201: _Tp __sum2 = __psi_term; 26201: _Tp __ln_pre2 = __lng_c + __d1 * __ln_omx 26201: - __lng_ad2 - __lng_bd2; 26201: 26201: 26201: int __j; 26201: for (__j = 1; __j < __maxiter; ++__j) 26201: { 26201: 26201: 26201: const _Tp __term1 = _Tp(1) / _Tp(__j) 26201: + _Tp(1) / (__ad + __j); 26201: const _Tp __term2 = _Tp(1) / (__a + __d1 + _Tp(__j - 1)) 26201: + _Tp(1) / (__b + __d1 + _Tp(__j - 1)); 26201: __psi_term += __term1 - __term2; 26201: __fact *= (__a + __d1 + _Tp(__j - 1)) 26201: * (__b + __d1 + _Tp(__j - 1)) 26201: / ((__ad + __j) * __j) * (_Tp(1) - __x); 26201: const _Tp __delta = __fact * __psi_term; 26201: __sum2 += __delta; 26201: if (std::abs(__delta) < __eps * std::abs(__sum2)) 26201: break; 26201: } 26201: if (__j == __maxiter) 26201: std::__throw_runtime_error(("Sum F2 failed to converge " "in __hyperg_reflect") 26201: ); 26201: 26201: if (__sum2 == _Tp(0)) 26201: __F2 = _Tp(0); 26201: else 26201: __F2 = std::exp(__ln_pre2) * __sum2; 26201: } 26201: else 26201: { 26201: 26201: 26201: __F2 = _Tp(0); 26201: } 26201: 26201: const _Tp __sgn_2 = (__intd % 2 == 1 ? -_Tp(1) : _Tp(1)); 26201: const _Tp __F = __F1 + __sgn_2 * __F2; 26201: 26201: return __F; 26201: } 26201: else 26201: { 26201: 26201: 26201: 26201: 26201: bool __ok1 = true; 26201: _Tp __sgn_g1ca = _Tp(0), __ln_g1ca = _Tp(0); 26201: _Tp __sgn_g1cb = _Tp(0), __ln_g1cb = _Tp(0); 26201: try 26201: { 26201: __sgn_g1ca = __log_gamma_sign(__c - __a); 26201: __ln_g1ca = __log_gamma(__c - __a); 26201: __sgn_g1cb = __log_gamma_sign(__c - __b); 26201: __ln_g1cb = __log_gamma(__c - __b); 26201: } 26201: catch(...) 26201: { 26201: __ok1 = false; 26201: } 26201: 26201: bool __ok2 = true; 26201: _Tp __sgn_g2a = _Tp(0), __ln_g2a = _Tp(0); 26201: _Tp __sgn_g2b = _Tp(0), __ln_g2b = _Tp(0); 26201: try 26201: { 26201: __sgn_g2a = __log_gamma_sign(__a); 26201: __ln_g2a = __log_gamma(__a); 26201: __sgn_g2b = __log_gamma_sign(__b); 26201: __ln_g2b = __log_gamma(__b); 26201: } 26201: catch(...) 26201: { 26201: __ok2 = false; 26201: } 26201: 26201: const _Tp __sgn_gc = __log_gamma_sign(__c); 26201: const _Tp __ln_gc = __log_gamma(__c); 26201: const _Tp __sgn_gd = __log_gamma_sign(__d); 26201: const _Tp __ln_gd = __log_gamma(__d); 26201: const _Tp __sgn_gmd = __log_gamma_sign(-__d); 26201: const _Tp __ln_gmd = __log_gamma(-__d); 26201: 26201: const _Tp __sgn1 = __sgn_gc * __sgn_gd * __sgn_g1ca * __sgn_g1cb; 26201: const _Tp __sgn2 = __sgn_gc * __sgn_gmd * __sgn_g2a * __sgn_g2b; 26201: 26201: _Tp __pre1, __pre2; 26201: if (__ok1 && __ok2) 26201: { 26201: _Tp __ln_pre1 = __ln_gc + __ln_gd - __ln_g1ca - __ln_g1cb; 26201: _Tp __ln_pre2 = __ln_gc + __ln_gmd - __ln_g2a - __ln_g2b 26201: + __d * std::log(_Tp(1) - __x); 26201: if (__ln_pre1 < __log_max && __ln_pre2 < __log_max) 26201: { 26201: __pre1 = std::exp(__ln_pre1); 26201: __pre2 = std::exp(__ln_pre2); 26201: __pre1 *= __sgn1; 26201: __pre2 *= __sgn2; 26201: } 26201: else 26201: { 26201: std::__throw_runtime_error(("Overflow of gamma functions " "in __hyperg_reflect") 26201: ); 26201: } 26201: } 26201: else if (__ok1 && !__ok2) 26201: { 26201: _Tp __ln_pre1 = __ln_gc + __ln_gd - __ln_g1ca - __ln_g1cb; 26201: if (__ln_pre1 < __log_max) 26201: { 26201: __pre1 = std::exp(__ln_pre1); 26201: __pre1 *= __sgn1; 26201: __pre2 = _Tp(0); 26201: } 26201: else 26201: { 26201: std::__throw_runtime_error(("Overflow of gamma functions " "in __hyperg_reflect") 26201: ); 26201: } 26201: } 26201: else if (!__ok1 && __ok2) 26201: { 26201: _Tp __ln_pre2 = __ln_gc + __ln_gmd - __ln_g2a - __ln_g2b 26201: + __d * std::log(_Tp(1) - __x); 26201: if (__ln_pre2 < __log_max) 26201: { 26201: __pre1 = _Tp(0); 26201: __pre2 = std::exp(__ln_pre2); 26201: __pre2 *= __sgn2; 26201: } 26201: else 26201: { 26201: std::__throw_runtime_error(("Overflow of gamma functions " "in __hyperg_reflect") 26201: ); 26201: } 26201: } 26201: else 26201: { 26201: __pre1 = _Tp(0); 26201: __pre2 = _Tp(0); 26201: std::__throw_runtime_error(("Underflow of gamma functions " "in __hyperg_reflect") 26201: ); 26201: } 26201: 26201: const _Tp __F1 = __hyperg_series(__a, __b, _Tp(1) - __d, 26201: _Tp(1) - __x); 26201: const _Tp __F2 = __hyperg_series(__c - __a, __c - __b, _Tp(1) + __d, 26201: _Tp(1) - __x); 26201: 26201: const _Tp __F = __pre1 * __F1 + __pre2 * __F2; 26201: 26201: return __F; 26201: } 26201: } 26201: # 728 "/usr/x86_64-linux-gnu/include/c++/10/tr1/hypergeometric.tcc" 3 26201: template 26201: _Tp 26201: __hyperg(_Tp __a, _Tp __b, _Tp __c, _Tp __x) 26201: { 26201: 26201: const _Tp __a_nint = ::std::nearbyint(__a); 26201: const _Tp __b_nint = ::std::nearbyint(__b); 26201: const _Tp __c_nint = ::std::nearbyint(__c); 26201: 26201: 26201: 26201: 26201: 26201: const _Tp __toler = _Tp(1000) * std::numeric_limits<_Tp>::epsilon(); 26201: if (std::abs(__x) >= _Tp(1)) 26201: std::__throw_domain_error(("Argument outside unit circle " "in __hyperg.") 26201: ); 26201: else if (__isnan(__a) || __isnan(__b) 26201: || __isnan(__c) || __isnan(__x)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else if (__c_nint == __c && __c_nint <= _Tp(0)) 26201: return std::numeric_limits<_Tp>::infinity(); 26201: else if (std::abs(__c - __b) < __toler || std::abs(__c - __a) < __toler) 26201: return std::pow(_Tp(1) - __x, __c - __a - __b); 26201: else if (__a >= _Tp(0) && __b >= _Tp(0) && __c >= _Tp(0) 26201: && __x >= _Tp(0) && __x < _Tp(0.995L)) 26201: return __hyperg_series(__a, __b, __c, __x); 26201: else if (std::abs(__a) < _Tp(10) && std::abs(__b) < _Tp(10)) 26201: { 26201: 26201: 26201: if (__a < _Tp(0) && std::abs(__a - __a_nint) < __toler) 26201: return __hyperg_series(__a_nint, __b, __c, __x); 26201: else if (__b < _Tp(0) && std::abs(__b - __b_nint) < __toler) 26201: return __hyperg_series(__a, __b_nint, __c, __x); 26201: else if (__x < -_Tp(0.25L)) 26201: return __hyperg_luke(__a, __b, __c, __x); 26201: else if (__x < _Tp(0.5L)) 26201: return __hyperg_series(__a, __b, __c, __x); 26201: else 26201: if (std::abs(__c) > _Tp(10)) 26201: return __hyperg_series(__a, __b, __c, __x); 26201: else 26201: return __hyperg_reflect(__a, __b, __c, __x); 26201: } 26201: else 26201: return __hyperg_luke(__a, __b, __c, __x); 26201: } 26201: } 26201: #undef _GLIBCXX_MATH_NS 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 55 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/tr1/legendre_function.tcc" 1 3 26201: # 45 "/usr/x86_64-linux-gnu/include/c++/10/tr1/legendre_function.tcc" 3 26201: #define _GLIBCXX_TR1_LEGENDRE_FUNCTION_TCC 1 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: #define _GLIBCXX_MATH_NS ::std 26201: # 65 "/usr/x86_64-linux-gnu/include/c++/10/tr1/legendre_function.tcc" 3 26201: namespace __detail 26201: { 26201: # 80 "/usr/x86_64-linux-gnu/include/c++/10/tr1/legendre_function.tcc" 3 26201: template 26201: _Tp 26201: __poly_legendre_p(unsigned int __l, _Tp __x) 26201: { 26201: 26201: if (__isnan(__x)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else if (__x == +_Tp(1)) 26201: return +_Tp(1); 26201: else if (__x == -_Tp(1)) 26201: return (__l % 2 == 1 ? -_Tp(1) : +_Tp(1)); 26201: else 26201: { 26201: _Tp __p_lm2 = _Tp(1); 26201: if (__l == 0) 26201: return __p_lm2; 26201: 26201: _Tp __p_lm1 = __x; 26201: if (__l == 1) 26201: return __p_lm1; 26201: 26201: _Tp __p_l = 0; 26201: for (unsigned int __ll = 2; __ll <= __l; ++__ll) 26201: { 26201: 26201: 26201: __p_l = _Tp(2) * __x * __p_lm1 - __p_lm2 26201: - (__x * __p_lm1 - __p_lm2) / _Tp(__ll); 26201: __p_lm2 = __p_lm1; 26201: __p_lm1 = __p_l; 26201: } 26201: 26201: return __p_l; 26201: } 26201: } 26201: # 136 "/usr/x86_64-linux-gnu/include/c++/10/tr1/legendre_function.tcc" 3 26201: template 26201: _Tp 26201: __assoc_legendre_p(unsigned int __l, unsigned int __m, _Tp __x, 26201: _Tp __phase = _Tp(+1)) 26201: { 26201: 26201: if (__m > __l) 26201: return _Tp(0); 26201: else if (__isnan(__x)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else if (__m == 0) 26201: return __poly_legendre_p(__l, __x); 26201: else 26201: { 26201: _Tp __p_mm = _Tp(1); 26201: if (__m > 0) 26201: { 26201: 26201: 26201: _Tp __root = std::sqrt(_Tp(1) - __x) * std::sqrt(_Tp(1) + __x); 26201: _Tp __fact = _Tp(1); 26201: for (unsigned int __i = 1; __i <= __m; ++__i) 26201: { 26201: __p_mm *= __phase * __fact * __root; 26201: __fact += _Tp(2); 26201: } 26201: } 26201: if (__l == __m) 26201: return __p_mm; 26201: 26201: _Tp __p_mp1m = _Tp(2 * __m + 1) * __x * __p_mm; 26201: if (__l == __m + 1) 26201: return __p_mp1m; 26201: 26201: _Tp __p_lm2m = __p_mm; 26201: _Tp __P_lm1m = __p_mp1m; 26201: _Tp __p_lm = _Tp(0); 26201: for (unsigned int __j = __m + 2; __j <= __l; ++__j) 26201: { 26201: __p_lm = (_Tp(2 * __j - 1) * __x * __P_lm1m 26201: - _Tp(__j + __m - 1) * __p_lm2m) / _Tp(__j - __m); 26201: __p_lm2m = __P_lm1m; 26201: __P_lm1m = __p_lm; 26201: } 26201: 26201: return __p_lm; 26201: } 26201: } 26201: # 214 "/usr/x86_64-linux-gnu/include/c++/10/tr1/legendre_function.tcc" 3 26201: template 26201: _Tp 26201: __sph_legendre(unsigned int __l, unsigned int __m, _Tp __theta) 26201: { 26201: if (__isnan(__theta)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: 26201: const _Tp __x = std::cos(__theta); 26201: 26201: if (__m > __l) 26201: return _Tp(0); 26201: else if (__m == 0) 26201: { 26201: _Tp __P = __poly_legendre_p(__l, __x); 26201: _Tp __fact = std::sqrt(_Tp(2 * __l + 1) 26201: / (_Tp(4) * __numeric_constants<_Tp>::__pi())); 26201: __P *= __fact; 26201: return __P; 26201: } 26201: else if (__x == _Tp(1) || __x == -_Tp(1)) 26201: { 26201: 26201: return _Tp(0); 26201: } 26201: else 26201: { 26201: 26201: 26201: 26201: 26201: 26201: const _Tp __sgn = ( __m % 2 == 1 ? -_Tp(1) : _Tp(1)); 26201: const _Tp __y_mp1m_factor = __x * std::sqrt(_Tp(2 * __m + 3)); 26201: 26201: const _Tp __lncirc = ::std::log1p(-__x * __x); 26201: 26201: 26201: 26201: 26201: 26201: const _Tp __lnpoch = ::std::lgamma(_Tp(__m + _Tp(0.5L))) 26201: - ::std::lgamma(_Tp(__m)); 26201: 26201: 26201: 26201: 26201: const _Tp __lnpre_val = 26201: -_Tp(0.25L) * __numeric_constants<_Tp>::__lnpi() 26201: + _Tp(0.5L) * (__lnpoch + __m * __lncirc); 26201: const _Tp __sr = std::sqrt((_Tp(2) + _Tp(1) / __m) 26201: / (_Tp(4) * __numeric_constants<_Tp>::__pi())); 26201: _Tp __y_mm = __sgn * __sr * std::exp(__lnpre_val); 26201: _Tp __y_mp1m = __y_mp1m_factor * __y_mm; 26201: 26201: if (__l == __m) 26201: return __y_mm; 26201: else if (__l == __m + 1) 26201: return __y_mp1m; 26201: else 26201: { 26201: _Tp __y_lm = _Tp(0); 26201: 26201: 26201: for (unsigned int __ll = __m + 2; __ll <= __l; ++__ll) 26201: { 26201: const _Tp __rat1 = _Tp(__ll - __m) / _Tp(__ll + __m); 26201: const _Tp __rat2 = _Tp(__ll - __m - 1) / _Tp(__ll + __m - 1); 26201: const _Tp __fact1 = std::sqrt(__rat1 * _Tp(2 * __ll + 1) 26201: * _Tp(2 * __ll - 1)); 26201: const _Tp __fact2 = std::sqrt(__rat1 * __rat2 * _Tp(2 * __ll + 1) 26201: / _Tp(2 * __ll - 3)); 26201: __y_lm = (__x * __y_mp1m * __fact1 26201: - (__ll + __m - 1) * __y_mm * __fact2) / _Tp(__ll - __m); 26201: __y_mm = __y_mp1m; 26201: __y_mp1m = __y_lm; 26201: } 26201: 26201: return __y_lm; 26201: } 26201: } 26201: } 26201: } 26201: #undef _GLIBCXX_MATH_NS 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 56 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/tr1/modified_bessel_func.tcc" 1 3 26201: # 47 "/usr/x86_64-linux-gnu/include/c++/10/tr1/modified_bessel_func.tcc" 3 26201: #define _GLIBCXX_TR1_MODIFIED_BESSEL_FUNC_TCC 1 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 65 "/usr/x86_64-linux-gnu/include/c++/10/tr1/modified_bessel_func.tcc" 3 26201: namespace __detail 26201: { 26201: # 83 "/usr/x86_64-linux-gnu/include/c++/10/tr1/modified_bessel_func.tcc" 3 26201: template 26201: void 26201: __bessel_ik(_Tp __nu, _Tp __x, 26201: _Tp & __Inu, _Tp & __Knu, _Tp & __Ipnu, _Tp & __Kpnu) 26201: { 26201: if (__x == _Tp(0)) 26201: { 26201: if (__nu == _Tp(0)) 26201: { 26201: __Inu = _Tp(1); 26201: __Ipnu = _Tp(0); 26201: } 26201: else if (__nu == _Tp(1)) 26201: { 26201: __Inu = _Tp(0); 26201: __Ipnu = _Tp(0.5L); 26201: } 26201: else 26201: { 26201: __Inu = _Tp(0); 26201: __Ipnu = _Tp(0); 26201: } 26201: __Knu = std::numeric_limits<_Tp>::infinity(); 26201: __Kpnu = -std::numeric_limits<_Tp>::infinity(); 26201: return; 26201: } 26201: 26201: const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); 26201: const _Tp __fp_min = _Tp(10) * std::numeric_limits<_Tp>::epsilon(); 26201: const int __max_iter = 15000; 26201: const _Tp __x_min = _Tp(2); 26201: 26201: const int __nl = static_cast(__nu + _Tp(0.5L)); 26201: 26201: const _Tp __mu = __nu - __nl; 26201: const _Tp __mu2 = __mu * __mu; 26201: const _Tp __xi = _Tp(1) / __x; 26201: const _Tp __xi2 = _Tp(2) * __xi; 26201: _Tp __h = __nu * __xi; 26201: if ( __h < __fp_min ) 26201: __h = __fp_min; 26201: _Tp __b = __xi2 * __nu; 26201: _Tp __d = _Tp(0); 26201: _Tp __c = __h; 26201: int __i; 26201: for ( __i = 1; __i <= __max_iter; ++__i ) 26201: { 26201: __b += __xi2; 26201: __d = _Tp(1) / (__b + __d); 26201: __c = __b + _Tp(1) / __c; 26201: const _Tp __del = __c * __d; 26201: __h *= __del; 26201: if (std::abs(__del - _Tp(1)) < __eps) 26201: break; 26201: } 26201: if (__i > __max_iter) 26201: std::__throw_runtime_error(("Argument x too large " "in __bessel_ik; " "try asymptotic expansion.") 26201: 26201: ); 26201: _Tp __Inul = __fp_min; 26201: _Tp __Ipnul = __h * __Inul; 26201: _Tp __Inul1 = __Inul; 26201: _Tp __Ipnu1 = __Ipnul; 26201: _Tp __fact = __nu * __xi; 26201: for (int __l = __nl; __l >= 1; --__l) 26201: { 26201: const _Tp __Inutemp = __fact * __Inul + __Ipnul; 26201: __fact -= __xi; 26201: __Ipnul = __fact * __Inutemp + __Inul; 26201: __Inul = __Inutemp; 26201: } 26201: _Tp __f = __Ipnul / __Inul; 26201: _Tp __Kmu, __Knu1; 26201: if (__x < __x_min) 26201: { 26201: const _Tp __x2 = __x / _Tp(2); 26201: const _Tp __pimu = __numeric_constants<_Tp>::__pi() * __mu; 26201: const _Tp __fact = (std::abs(__pimu) < __eps 26201: ? _Tp(1) : __pimu / std::sin(__pimu)); 26201: _Tp __d = -std::log(__x2); 26201: _Tp __e = __mu * __d; 26201: const _Tp __fact2 = (std::abs(__e) < __eps 26201: ? _Tp(1) : std::sinh(__e) / __e); 26201: _Tp __gam1, __gam2, __gampl, __gammi; 26201: __gamma_temme(__mu, __gam1, __gam2, __gampl, __gammi); 26201: _Tp __ff = __fact 26201: * (__gam1 * std::cosh(__e) + __gam2 * __fact2 * __d); 26201: _Tp __sum = __ff; 26201: __e = std::exp(__e); 26201: _Tp __p = __e / (_Tp(2) * __gampl); 26201: _Tp __q = _Tp(1) / (_Tp(2) * __e * __gammi); 26201: _Tp __c = _Tp(1); 26201: __d = __x2 * __x2; 26201: _Tp __sum1 = __p; 26201: int __i; 26201: for (__i = 1; __i <= __max_iter; ++__i) 26201: { 26201: __ff = (__i * __ff + __p + __q) / (__i * __i - __mu2); 26201: __c *= __d / __i; 26201: __p /= __i - __mu; 26201: __q /= __i + __mu; 26201: const _Tp __del = __c * __ff; 26201: __sum += __del; 26201: const _Tp __del1 = __c * (__p - __i * __ff); 26201: __sum1 += __del1; 26201: if (std::abs(__del) < __eps * std::abs(__sum)) 26201: break; 26201: } 26201: if (__i > __max_iter) 26201: std::__throw_runtime_error(("Bessel k series failed to converge " "in __bessel_ik.") 26201: ); 26201: __Kmu = __sum; 26201: __Knu1 = __sum1 * __xi2; 26201: } 26201: else 26201: { 26201: _Tp __b = _Tp(2) * (_Tp(1) + __x); 26201: _Tp __d = _Tp(1) / __b; 26201: _Tp __delh = __d; 26201: _Tp __h = __delh; 26201: _Tp __q1 = _Tp(0); 26201: _Tp __q2 = _Tp(1); 26201: _Tp __a1 = _Tp(0.25L) - __mu2; 26201: _Tp __q = __c = __a1; 26201: _Tp __a = -__a1; 26201: _Tp __s = _Tp(1) + __q * __delh; 26201: int __i; 26201: for (__i = 2; __i <= __max_iter; ++__i) 26201: { 26201: __a -= 2 * (__i - 1); 26201: __c = -__a * __c / __i; 26201: const _Tp __qnew = (__q1 - __b * __q2) / __a; 26201: __q1 = __q2; 26201: __q2 = __qnew; 26201: __q += __c * __qnew; 26201: __b += _Tp(2); 26201: __d = _Tp(1) / (__b + __a * __d); 26201: __delh = (__b * __d - _Tp(1)) * __delh; 26201: __h += __delh; 26201: const _Tp __dels = __q * __delh; 26201: __s += __dels; 26201: if ( std::abs(__dels / __s) < __eps ) 26201: break; 26201: } 26201: if (__i > __max_iter) 26201: std::__throw_runtime_error(("Steed's method failed " "in __bessel_ik.") 26201: ); 26201: __h = __a1 * __h; 26201: __Kmu = std::sqrt(__numeric_constants<_Tp>::__pi() / (_Tp(2) * __x)) 26201: * std::exp(-__x) / __s; 26201: __Knu1 = __Kmu * (__mu + __x + _Tp(0.5L) - __h) * __xi; 26201: } 26201: 26201: _Tp __Kpmu = __mu * __xi * __Kmu - __Knu1; 26201: _Tp __Inumu = __xi / (__f * __Kmu - __Kpmu); 26201: __Inu = __Inumu * __Inul1 / __Inul; 26201: __Ipnu = __Inumu * __Ipnu1 / __Inul; 26201: for ( __i = 1; __i <= __nl; ++__i ) 26201: { 26201: const _Tp __Knutemp = (__mu + __i) * __xi2 * __Knu1 + __Kmu; 26201: __Kmu = __Knu1; 26201: __Knu1 = __Knutemp; 26201: } 26201: __Knu = __Kmu; 26201: __Kpnu = __nu * __xi * __Kmu - __Knu1; 26201: 26201: return; 26201: } 26201: # 267 "/usr/x86_64-linux-gnu/include/c++/10/tr1/modified_bessel_func.tcc" 3 26201: template 26201: _Tp 26201: __cyl_bessel_i(_Tp __nu, _Tp __x) 26201: { 26201: if (__nu < _Tp(0) || __x < _Tp(0)) 26201: std::__throw_domain_error(("Bad argument " "in __cyl_bessel_i.") 26201: ); 26201: else if (__isnan(__nu) || __isnan(__x)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else if (__x * __x < _Tp(10) * (__nu + _Tp(1))) 26201: return __cyl_bessel_ij_series(__nu, __x, +_Tp(1), 200); 26201: else 26201: { 26201: _Tp __I_nu, __K_nu, __Ip_nu, __Kp_nu; 26201: __bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu); 26201: return __I_nu; 26201: } 26201: } 26201: # 303 "/usr/x86_64-linux-gnu/include/c++/10/tr1/modified_bessel_func.tcc" 3 26201: template 26201: _Tp 26201: __cyl_bessel_k(_Tp __nu, _Tp __x) 26201: { 26201: if (__nu < _Tp(0) || __x < _Tp(0)) 26201: std::__throw_domain_error(("Bad argument " "in __cyl_bessel_k.") 26201: ); 26201: else if (__isnan(__nu) || __isnan(__x)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else 26201: { 26201: _Tp __I_nu, __K_nu, __Ip_nu, __Kp_nu; 26201: __bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu); 26201: return __K_nu; 26201: } 26201: } 26201: # 337 "/usr/x86_64-linux-gnu/include/c++/10/tr1/modified_bessel_func.tcc" 3 26201: template 26201: void 26201: __sph_bessel_ik(unsigned int __n, _Tp __x, 26201: _Tp & __i_n, _Tp & __k_n, _Tp & __ip_n, _Tp & __kp_n) 26201: { 26201: const _Tp __nu = _Tp(__n) + _Tp(0.5L); 26201: 26201: _Tp __I_nu, __Ip_nu, __K_nu, __Kp_nu; 26201: __bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu); 26201: 26201: const _Tp __factor = __numeric_constants<_Tp>::__sqrtpio2() 26201: / std::sqrt(__x); 26201: 26201: __i_n = __factor * __I_nu; 26201: __k_n = __factor * __K_nu; 26201: __ip_n = __factor * __Ip_nu - __i_n / (_Tp(2) * __x); 26201: __kp_n = __factor * __Kp_nu - __k_n / (_Tp(2) * __x); 26201: 26201: return; 26201: } 26201: # 373 "/usr/x86_64-linux-gnu/include/c++/10/tr1/modified_bessel_func.tcc" 3 26201: template 26201: void 26201: __airy(_Tp __x, _Tp & __Ai, _Tp & __Bi, _Tp & __Aip, _Tp & __Bip) 26201: { 26201: const _Tp __absx = std::abs(__x); 26201: const _Tp __rootx = std::sqrt(__absx); 26201: const _Tp __z = _Tp(2) * __absx * __rootx / _Tp(3); 26201: const _Tp _S_NaN = std::numeric_limits<_Tp>::quiet_NaN(); 26201: const _Tp _S_inf = std::numeric_limits<_Tp>::infinity(); 26201: 26201: if (__isnan(__x)) 26201: __Bip = __Aip = __Bi = __Ai = std::numeric_limits<_Tp>::quiet_NaN(); 26201: else if (__z == _S_inf) 26201: { 26201: __Aip = __Ai = _Tp(0); 26201: __Bip = __Bi = _S_inf; 26201: } 26201: else if (__z == -_S_inf) 26201: __Bip = __Aip = __Bi = __Ai = _Tp(0); 26201: else if (__x > _Tp(0)) 26201: { 26201: _Tp __I_nu, __Ip_nu, __K_nu, __Kp_nu; 26201: 26201: __bessel_ik(_Tp(1) / _Tp(3), __z, __I_nu, __K_nu, __Ip_nu, __Kp_nu); 26201: __Ai = __rootx * __K_nu 26201: / (__numeric_constants<_Tp>::__sqrt3() 26201: * __numeric_constants<_Tp>::__pi()); 26201: __Bi = __rootx * (__K_nu / __numeric_constants<_Tp>::__pi() 26201: + _Tp(2) * __I_nu / __numeric_constants<_Tp>::__sqrt3()); 26201: 26201: __bessel_ik(_Tp(2) / _Tp(3), __z, __I_nu, __K_nu, __Ip_nu, __Kp_nu); 26201: __Aip = -__x * __K_nu 26201: / (__numeric_constants<_Tp>::__sqrt3() 26201: * __numeric_constants<_Tp>::__pi()); 26201: __Bip = __x * (__K_nu / __numeric_constants<_Tp>::__pi() 26201: + _Tp(2) * __I_nu 26201: / __numeric_constants<_Tp>::__sqrt3()); 26201: } 26201: else if (__x < _Tp(0)) 26201: { 26201: _Tp __J_nu, __Jp_nu, __N_nu, __Np_nu; 26201: 26201: __bessel_jn(_Tp(1) / _Tp(3), __z, __J_nu, __N_nu, __Jp_nu, __Np_nu); 26201: __Ai = __rootx * (__J_nu 26201: - __N_nu / __numeric_constants<_Tp>::__sqrt3()) / _Tp(2); 26201: __Bi = -__rootx * (__N_nu 26201: + __J_nu / __numeric_constants<_Tp>::__sqrt3()) / _Tp(2); 26201: 26201: __bessel_jn(_Tp(2) / _Tp(3), __z, __J_nu, __N_nu, __Jp_nu, __Np_nu); 26201: __Aip = __absx * (__N_nu / __numeric_constants<_Tp>::__sqrt3() 26201: + __J_nu) / _Tp(2); 26201: __Bip = __absx * (__J_nu / __numeric_constants<_Tp>::__sqrt3() 26201: - __N_nu) / _Tp(2); 26201: } 26201: else 26201: { 26201: 26201: 26201: 26201: __Ai = _Tp(0.35502805388781723926L); 26201: __Bi = __Ai * __numeric_constants<_Tp>::__sqrt3(); 26201: 26201: 26201: 26201: 26201: __Aip = -_Tp(0.25881940379280679840L); 26201: __Bip = -__Aip * __numeric_constants<_Tp>::__sqrt3(); 26201: } 26201: 26201: return; 26201: } 26201: } 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 57 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/tr1/poly_hermite.tcc" 1 3 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/tr1/poly_hermite.tcc" 3 26201: #define _GLIBCXX_TR1_POLY_HERMITE_TCC 1 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 56 "/usr/x86_64-linux-gnu/include/c++/10/tr1/poly_hermite.tcc" 3 26201: namespace __detail 26201: { 26201: # 72 "/usr/x86_64-linux-gnu/include/c++/10/tr1/poly_hermite.tcc" 3 26201: template 26201: _Tp 26201: __poly_hermite_recursion(unsigned int __n, _Tp __x) 26201: { 26201: 26201: _Tp __H_0 = 1; 26201: if (__n == 0) 26201: return __H_0; 26201: 26201: 26201: _Tp __H_1 = 2 * __x; 26201: if (__n == 1) 26201: return __H_1; 26201: 26201: 26201: _Tp __H_n, __H_nm1, __H_nm2; 26201: unsigned int __i; 26201: for (__H_nm2 = __H_0, __H_nm1 = __H_1, __i = 2; __i <= __n; ++__i) 26201: { 26201: __H_n = 2 * (__x * __H_nm1 - (__i - 1) * __H_nm2); 26201: __H_nm2 = __H_nm1; 26201: __H_nm1 = __H_n; 26201: } 26201: 26201: return __H_n; 26201: } 26201: # 114 "/usr/x86_64-linux-gnu/include/c++/10/tr1/poly_hermite.tcc" 3 26201: template 26201: inline _Tp 26201: __poly_hermite(unsigned int __n, _Tp __x) 26201: { 26201: if (__isnan(__x)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else 26201: return __poly_hermite_recursion(__n, __x); 26201: } 26201: } 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 58 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/tr1/poly_laguerre.tcc" 1 3 26201: # 42 "/usr/x86_64-linux-gnu/include/c++/10/tr1/poly_laguerre.tcc" 3 26201: #define _GLIBCXX_TR1_POLY_LAGUERRE_TCC 1 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: #define _GLIBCXX_MATH_NS ::std 26201: # 60 "/usr/x86_64-linux-gnu/include/c++/10/tr1/poly_laguerre.tcc" 3 26201: namespace __detail 26201: { 26201: # 75 "/usr/x86_64-linux-gnu/include/c++/10/tr1/poly_laguerre.tcc" 3 26201: template 26201: _Tp 26201: __poly_laguerre_large_n(unsigned __n, _Tpa __alpha1, _Tp __x) 26201: { 26201: const _Tp __a = -_Tp(__n); 26201: const _Tp __b = _Tp(__alpha1) + _Tp(1); 26201: const _Tp __eta = _Tp(2) * __b - _Tp(4) * __a; 26201: const _Tp __cos2th = __x / __eta; 26201: const _Tp __sin2th = _Tp(1) - __cos2th; 26201: const _Tp __th = std::acos(std::sqrt(__cos2th)); 26201: const _Tp __pre_h = __numeric_constants<_Tp>::__pi_2() 26201: * __numeric_constants<_Tp>::__pi_2() 26201: * __eta * __eta * __cos2th * __sin2th; 26201: 26201: 26201: const _Tp __lg_b = ::std::lgamma(_Tp(__n) + __b); 26201: const _Tp __lnfact = ::std::lgamma(_Tp(__n + 1)); 26201: 26201: 26201: 26201: 26201: 26201: _Tp __pre_term1 = _Tp(0.5L) * (_Tp(1) - __b) 26201: * std::log(_Tp(0.25L) * __x * __eta); 26201: _Tp __pre_term2 = _Tp(0.25L) * std::log(__pre_h); 26201: _Tp __lnpre = __lg_b - __lnfact + _Tp(0.5L) * __x 26201: + __pre_term1 - __pre_term2; 26201: _Tp __ser_term1 = std::sin(__a * __numeric_constants<_Tp>::__pi()); 26201: _Tp __ser_term2 = std::sin(_Tp(0.25L) * __eta 26201: * (_Tp(2) * __th 26201: - std::sin(_Tp(2) * __th)) 26201: + __numeric_constants<_Tp>::__pi_4()); 26201: _Tp __ser = __ser_term1 + __ser_term2; 26201: 26201: return std::exp(__lnpre) * __ser; 26201: } 26201: # 129 "/usr/x86_64-linux-gnu/include/c++/10/tr1/poly_laguerre.tcc" 3 26201: template 26201: _Tp 26201: __poly_laguerre_hyperg(unsigned int __n, _Tpa __alpha1, _Tp __x) 26201: { 26201: const _Tp __b = _Tp(__alpha1) + _Tp(1); 26201: const _Tp __mx = -__x; 26201: const _Tp __tc_sgn = (__x < _Tp(0) ? _Tp(1) 26201: : ((__n % 2 == 1) ? -_Tp(1) : _Tp(1))); 26201: 26201: _Tp __tc = _Tp(1); 26201: const _Tp __ax = std::abs(__x); 26201: for (unsigned int __k = 1; __k <= __n; ++__k) 26201: __tc *= (__ax / __k); 26201: 26201: _Tp __term = __tc * __tc_sgn; 26201: _Tp __sum = __term; 26201: for (int __k = int(__n) - 1; __k >= 0; --__k) 26201: { 26201: __term *= ((__b + _Tp(__k)) / _Tp(int(__n) - __k)) 26201: * _Tp(__k + 1) / __mx; 26201: __sum += __term; 26201: } 26201: 26201: return __sum; 26201: } 26201: # 185 "/usr/x86_64-linux-gnu/include/c++/10/tr1/poly_laguerre.tcc" 3 26201: template 26201: _Tp 26201: __poly_laguerre_recursion(unsigned int __n, _Tpa __alpha1, _Tp __x) 26201: { 26201: 26201: _Tp __l_0 = _Tp(1); 26201: if (__n == 0) 26201: return __l_0; 26201: 26201: 26201: _Tp __l_1 = -__x + _Tp(1) + _Tp(__alpha1); 26201: if (__n == 1) 26201: return __l_1; 26201: 26201: 26201: _Tp __l_n2 = __l_0; 26201: _Tp __l_n1 = __l_1; 26201: _Tp __l_n = _Tp(0); 26201: for (unsigned int __nn = 2; __nn <= __n; ++__nn) 26201: { 26201: __l_n = (_Tp(2 * __nn - 1) + _Tp(__alpha1) - __x) 26201: * __l_n1 / _Tp(__nn) 26201: - (_Tp(__nn - 1) + _Tp(__alpha1)) * __l_n2 / _Tp(__nn); 26201: __l_n2 = __l_n1; 26201: __l_n1 = __l_n; 26201: } 26201: 26201: return __l_n; 26201: } 26201: # 244 "/usr/x86_64-linux-gnu/include/c++/10/tr1/poly_laguerre.tcc" 3 26201: template 26201: _Tp 26201: __poly_laguerre(unsigned int __n, _Tpa __alpha1, _Tp __x) 26201: { 26201: if (__x < _Tp(0)) 26201: std::__throw_domain_error(("Negative argument " "in __poly_laguerre.") 26201: ); 26201: 26201: else if (__isnan(__x)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else if (__n == 0) 26201: return _Tp(1); 26201: else if (__n == 1) 26201: return _Tp(1) + _Tp(__alpha1) - __x; 26201: else if (__x == _Tp(0)) 26201: { 26201: _Tp __prod = _Tp(__alpha1) + _Tp(1); 26201: for (unsigned int __k = 2; __k <= __n; ++__k) 26201: __prod *= (_Tp(__alpha1) + _Tp(__k)) / _Tp(__k); 26201: return __prod; 26201: } 26201: else if (__n > 10000000 && _Tp(__alpha1) > -_Tp(1) 26201: && __x < _Tp(2) * (_Tp(__alpha1) + _Tp(1)) + _Tp(4 * __n)) 26201: return __poly_laguerre_large_n(__n, __alpha1, __x); 26201: else if (_Tp(__alpha1) >= _Tp(0) 26201: || (__x > _Tp(0) && _Tp(__alpha1) < -_Tp(__n + 1))) 26201: return __poly_laguerre_recursion(__n, __alpha1, __x); 26201: else 26201: return __poly_laguerre_hyperg(__n, __alpha1, __x); 26201: } 26201: # 296 "/usr/x86_64-linux-gnu/include/c++/10/tr1/poly_laguerre.tcc" 3 26201: template 26201: inline _Tp 26201: __assoc_laguerre(unsigned int __n, unsigned int __m, _Tp __x) 26201: { return __poly_laguerre(__n, __m, __x); } 26201: # 316 "/usr/x86_64-linux-gnu/include/c++/10/tr1/poly_laguerre.tcc" 3 26201: template 26201: inline _Tp 26201: __laguerre(unsigned int __n, _Tp __x) 26201: { return __poly_laguerre(__n, 0, __x); } 26201: } 26201: #undef _GLIBCXX_MATH_NS 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 59 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 2 3 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/tr1/riemann_zeta.tcc" 1 3 26201: # 43 "/usr/x86_64-linux-gnu/include/c++/10/tr1/riemann_zeta.tcc" 3 26201: #define _GLIBCXX_TR1_RIEMANN_ZETA_TCC 1 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: #define _GLIBCXX_MATH_NS ::std 26201: # 63 "/usr/x86_64-linux-gnu/include/c++/10/tr1/riemann_zeta.tcc" 3 26201: namespace __detail 26201: { 26201: # 78 "/usr/x86_64-linux-gnu/include/c++/10/tr1/riemann_zeta.tcc" 3 26201: template 26201: _Tp 26201: __riemann_zeta_sum(_Tp __s) 26201: { 26201: 26201: if (__s < _Tp(1)) 26201: std::__throw_domain_error(("Bad argument in zeta sum.")); 26201: 26201: const unsigned int max_iter = 10000; 26201: _Tp __zeta = _Tp(0); 26201: for (unsigned int __k = 1; __k < max_iter; ++__k) 26201: { 26201: _Tp __term = std::pow(static_cast<_Tp>(__k), -__s); 26201: if (__term < std::numeric_limits<_Tp>::epsilon()) 26201: { 26201: break; 26201: } 26201: __zeta += __term; 26201: } 26201: 26201: return __zeta; 26201: } 26201: # 115 "/usr/x86_64-linux-gnu/include/c++/10/tr1/riemann_zeta.tcc" 3 26201: template 26201: _Tp 26201: __riemann_zeta_alt(_Tp __s) 26201: { 26201: _Tp __sgn = _Tp(1); 26201: _Tp __zeta = _Tp(0); 26201: for (unsigned int __i = 1; __i < 10000000; ++__i) 26201: { 26201: _Tp __term = __sgn / std::pow(__i, __s); 26201: if (std::abs(__term) < std::numeric_limits<_Tp>::epsilon()) 26201: break; 26201: __zeta += __term; 26201: __sgn *= _Tp(-1); 26201: } 26201: __zeta /= _Tp(1) - std::pow(_Tp(2), _Tp(1) - __s); 26201: 26201: return __zeta; 26201: } 26201: # 157 "/usr/x86_64-linux-gnu/include/c++/10/tr1/riemann_zeta.tcc" 3 26201: template 26201: _Tp 26201: __riemann_zeta_glob(_Tp __s) 26201: { 26201: _Tp __zeta = _Tp(0); 26201: 26201: const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); 26201: 26201: const _Tp __max_bincoeff = std::numeric_limits<_Tp>::max_exponent10 26201: * std::log(_Tp(10)) - _Tp(1); 26201: 26201: 26201: 26201: if (__s < _Tp(0)) 26201: { 26201: 26201: if (::std::fmod(__s,_Tp(2)) == _Tp(0)) 26201: return _Tp(0); 26201: else 26201: 26201: { 26201: _Tp __zeta = __riemann_zeta_glob(_Tp(1) - __s); 26201: __zeta *= std::pow(_Tp(2) 26201: * __numeric_constants<_Tp>::__pi(), __s) 26201: * std::sin(__numeric_constants<_Tp>::__pi_2() * __s) 26201: 26201: * std::exp(::std::lgamma(_Tp(1) - __s)) 26201: 26201: 26201: 26201: / __numeric_constants<_Tp>::__pi(); 26201: return __zeta; 26201: } 26201: } 26201: 26201: _Tp __num = _Tp(0.5L); 26201: const unsigned int __maxit = 10000; 26201: for (unsigned int __i = 0; __i < __maxit; ++__i) 26201: { 26201: bool __punt = false; 26201: _Tp __sgn = _Tp(1); 26201: _Tp __term = _Tp(0); 26201: for (unsigned int __j = 0; __j <= __i; ++__j) 26201: { 26201: 26201: _Tp __bincoeff = ::std::lgamma(_Tp(1 + __i)) 26201: - ::std::lgamma(_Tp(1 + __j)) 26201: - ::std::lgamma(_Tp(1 + __i - __j)); 26201: 26201: 26201: 26201: 26201: 26201: if (__bincoeff > __max_bincoeff) 26201: { 26201: 26201: __punt = true; 26201: break; 26201: } 26201: __bincoeff = std::exp(__bincoeff); 26201: __term += __sgn * __bincoeff * std::pow(_Tp(1 + __j), -__s); 26201: __sgn *= _Tp(-1); 26201: } 26201: if (__punt) 26201: break; 26201: __term *= __num; 26201: __zeta += __term; 26201: if (std::abs(__term/__zeta) < __eps) 26201: break; 26201: __num *= _Tp(0.5L); 26201: } 26201: 26201: __zeta /= _Tp(1) - std::pow(_Tp(2), _Tp(1) - __s); 26201: 26201: return __zeta; 26201: } 26201: # 252 "/usr/x86_64-linux-gnu/include/c++/10/tr1/riemann_zeta.tcc" 3 26201: template 26201: _Tp 26201: __riemann_zeta_product(_Tp __s) 26201: { 26201: static const _Tp __prime[] = { 26201: _Tp(2), _Tp(3), _Tp(5), _Tp(7), _Tp(11), _Tp(13), _Tp(17), _Tp(19), 26201: _Tp(23), _Tp(29), _Tp(31), _Tp(37), _Tp(41), _Tp(43), _Tp(47), 26201: _Tp(53), _Tp(59), _Tp(61), _Tp(67), _Tp(71), _Tp(73), _Tp(79), 26201: _Tp(83), _Tp(89), _Tp(97), _Tp(101), _Tp(103), _Tp(107), _Tp(109) 26201: }; 26201: static const unsigned int __num_primes = sizeof(__prime) / sizeof(_Tp); 26201: 26201: _Tp __zeta = _Tp(1); 26201: for (unsigned int __i = 0; __i < __num_primes; ++__i) 26201: { 26201: const _Tp __fact = _Tp(1) - std::pow(__prime[__i], -__s); 26201: __zeta *= __fact; 26201: if (_Tp(1) - __fact < std::numeric_limits<_Tp>::epsilon()) 26201: break; 26201: } 26201: 26201: __zeta = _Tp(1) / __zeta; 26201: 26201: return __zeta; 26201: } 26201: # 293 "/usr/x86_64-linux-gnu/include/c++/10/tr1/riemann_zeta.tcc" 3 26201: template 26201: _Tp 26201: __riemann_zeta(_Tp __s) 26201: { 26201: if (__isnan(__s)) 26201: return std::numeric_limits<_Tp>::quiet_NaN(); 26201: else if (__s == _Tp(1)) 26201: return std::numeric_limits<_Tp>::infinity(); 26201: else if (__s < -_Tp(19)) 26201: { 26201: _Tp __zeta = __riemann_zeta_product(_Tp(1) - __s); 26201: __zeta *= std::pow(_Tp(2) * __numeric_constants<_Tp>::__pi(), __s) 26201: * std::sin(__numeric_constants<_Tp>::__pi_2() * __s) 26201: 26201: * std::exp(::std::lgamma(_Tp(1) - __s)) 26201: 26201: 26201: 26201: / __numeric_constants<_Tp>::__pi(); 26201: return __zeta; 26201: } 26201: else if (__s < _Tp(20)) 26201: { 26201: 26201: bool __glob = true; 26201: if (__glob) 26201: return __riemann_zeta_glob(__s); 26201: else 26201: { 26201: if (__s > _Tp(1)) 26201: return __riemann_zeta_sum(__s); 26201: else 26201: { 26201: _Tp __zeta = std::pow(_Tp(2) 26201: * __numeric_constants<_Tp>::__pi(), __s) 26201: * std::sin(__numeric_constants<_Tp>::__pi_2() * __s) 26201: 26201: * ::std::tgamma(_Tp(1) - __s) 26201: 26201: 26201: 26201: * __riemann_zeta_sum(_Tp(1) - __s); 26201: return __zeta; 26201: } 26201: } 26201: } 26201: else 26201: return __riemann_zeta_product(__s); 26201: } 26201: # 365 "/usr/x86_64-linux-gnu/include/c++/10/tr1/riemann_zeta.tcc" 3 26201: template 26201: _Tp 26201: __hurwitz_zeta_glob(_Tp __a, _Tp __s) 26201: { 26201: _Tp __zeta = _Tp(0); 26201: 26201: const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); 26201: 26201: const _Tp __max_bincoeff = std::numeric_limits<_Tp>::max_exponent10 26201: * std::log(_Tp(10)) - _Tp(1); 26201: 26201: const unsigned int __maxit = 10000; 26201: for (unsigned int __i = 0; __i < __maxit; ++__i) 26201: { 26201: bool __punt = false; 26201: _Tp __sgn = _Tp(1); 26201: _Tp __term = _Tp(0); 26201: for (unsigned int __j = 0; __j <= __i; ++__j) 26201: { 26201: 26201: _Tp __bincoeff = ::std::lgamma(_Tp(1 + __i)) 26201: - ::std::lgamma(_Tp(1 + __j)) 26201: - ::std::lgamma(_Tp(1 + __i - __j)); 26201: 26201: 26201: 26201: 26201: 26201: if (__bincoeff > __max_bincoeff) 26201: { 26201: 26201: __punt = true; 26201: break; 26201: } 26201: __bincoeff = std::exp(__bincoeff); 26201: __term += __sgn * __bincoeff * std::pow(_Tp(__a + __j), -__s); 26201: __sgn *= _Tp(-1); 26201: } 26201: if (__punt) 26201: break; 26201: __term /= _Tp(__i + 1); 26201: if (std::abs(__term / __zeta) < __eps) 26201: break; 26201: __zeta += __term; 26201: } 26201: 26201: __zeta /= __s - _Tp(1); 26201: 26201: return __zeta; 26201: } 26201: # 430 "/usr/x86_64-linux-gnu/include/c++/10/tr1/riemann_zeta.tcc" 3 26201: template 26201: inline _Tp 26201: __hurwitz_zeta(_Tp __a, _Tp __s) 26201: { return __hurwitz_zeta_glob(__a, __s); } 26201: } 26201: #undef _GLIBCXX_MATH_NS 26201: 26201: 26201: 26201: 26201: 26201: } 26201: # 60 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 2 3 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: # 205 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: inline float 26201: assoc_laguerref(unsigned int __n, unsigned int __m, float __x) 26201: { return __detail::__assoc_laguerre(__n, __m, __x); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline long double 26201: assoc_laguerrel(unsigned int __n, unsigned int __m, long double __x) 26201: { return __detail::__assoc_laguerre(__n, __m, __x); } 26201: # 250 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: template 26201: inline typename __gnu_cxx::__promote<_Tp>::__type 26201: assoc_laguerre(unsigned int __n, unsigned int __m, _Tp __x) 26201: { 26201: typedef typename __gnu_cxx::__promote<_Tp>::__type __type; 26201: return __detail::__assoc_laguerre<__type>(__n, __m, __x); 26201: } 26201: # 266 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: inline float 26201: assoc_legendref(unsigned int __l, unsigned int __m, float __x) 26201: { return __detail::__assoc_legendre_p(__l, __m, __x); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline long double 26201: assoc_legendrel(unsigned int __l, unsigned int __m, long double __x) 26201: { return __detail::__assoc_legendre_p(__l, __m, __x); } 26201: # 296 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: template 26201: inline typename __gnu_cxx::__promote<_Tp>::__type 26201: assoc_legendre(unsigned int __l, unsigned int __m, _Tp __x) 26201: { 26201: typedef typename __gnu_cxx::__promote<_Tp>::__type __type; 26201: return __detail::__assoc_legendre_p<__type>(__l, __m, __x); 26201: } 26201: # 311 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: inline float 26201: betaf(float __a, float __b) 26201: { return __detail::__beta(__a, __b); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline long double 26201: betal(long double __a, long double __b) 26201: { return __detail::__beta(__a, __b); } 26201: # 341 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: template 26201: inline typename __gnu_cxx::__promote_2<_Tpa, _Tpb>::__type 26201: beta(_Tpa __a, _Tpb __b) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tpa, _Tpb>::__type __type; 26201: return __detail::__beta<__type>(__a, __b); 26201: } 26201: # 357 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: inline float 26201: comp_ellint_1f(float __k) 26201: { return __detail::__comp_ellint_1(__k); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline long double 26201: comp_ellint_1l(long double __k) 26201: { return __detail::__comp_ellint_1(__k); } 26201: # 389 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: template 26201: inline typename __gnu_cxx::__promote<_Tp>::__type 26201: comp_ellint_1(_Tp __k) 26201: { 26201: typedef typename __gnu_cxx::__promote<_Tp>::__type __type; 26201: return __detail::__comp_ellint_1<__type>(__k); 26201: } 26201: # 405 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: inline float 26201: comp_ellint_2f(float __k) 26201: { return __detail::__comp_ellint_2(__k); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline long double 26201: comp_ellint_2l(long double __k) 26201: { return __detail::__comp_ellint_2(__k); } 26201: # 436 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: template 26201: inline typename __gnu_cxx::__promote<_Tp>::__type 26201: comp_ellint_2(_Tp __k) 26201: { 26201: typedef typename __gnu_cxx::__promote<_Tp>::__type __type; 26201: return __detail::__comp_ellint_2<__type>(__k); 26201: } 26201: # 452 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: inline float 26201: comp_ellint_3f(float __k, float __nu) 26201: { return __detail::__comp_ellint_3(__k, __nu); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline long double 26201: comp_ellint_3l(long double __k, long double __nu) 26201: { return __detail::__comp_ellint_3(__k, __nu); } 26201: # 487 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: template 26201: inline typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type 26201: comp_ellint_3(_Tp __k, _Tpn __nu) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type __type; 26201: return __detail::__comp_ellint_3<__type>(__k, __nu); 26201: } 26201: # 503 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: inline float 26201: cyl_bessel_if(float __nu, float __x) 26201: { return __detail::__cyl_bessel_i(__nu, __x); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline long double 26201: cyl_bessel_il(long double __nu, long double __x) 26201: { return __detail::__cyl_bessel_i(__nu, __x); } 26201: # 533 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: template 26201: inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type 26201: cyl_bessel_i(_Tpnu __nu, _Tp __x) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type; 26201: return __detail::__cyl_bessel_i<__type>(__nu, __x); 26201: } 26201: # 549 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: inline float 26201: cyl_bessel_jf(float __nu, float __x) 26201: { return __detail::__cyl_bessel_j(__nu, __x); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline long double 26201: cyl_bessel_jl(long double __nu, long double __x) 26201: { return __detail::__cyl_bessel_j(__nu, __x); } 26201: # 579 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: template 26201: inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type 26201: cyl_bessel_j(_Tpnu __nu, _Tp __x) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type; 26201: return __detail::__cyl_bessel_j<__type>(__nu, __x); 26201: } 26201: # 595 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: inline float 26201: cyl_bessel_kf(float __nu, float __x) 26201: { return __detail::__cyl_bessel_k(__nu, __x); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline long double 26201: cyl_bessel_kl(long double __nu, long double __x) 26201: { return __detail::__cyl_bessel_k(__nu, __x); } 26201: # 631 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: template 26201: inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type 26201: cyl_bessel_k(_Tpnu __nu, _Tp __x) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type; 26201: return __detail::__cyl_bessel_k<__type>(__nu, __x); 26201: } 26201: # 647 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: inline float 26201: cyl_neumannf(float __nu, float __x) 26201: { return __detail::__cyl_neumann_n(__nu, __x); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline long double 26201: cyl_neumannl(long double __nu, long double __x) 26201: { return __detail::__cyl_neumann_n(__nu, __x); } 26201: # 679 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: template 26201: inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type 26201: cyl_neumann(_Tpnu __nu, _Tp __x) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type; 26201: return __detail::__cyl_neumann_n<__type>(__nu, __x); 26201: } 26201: # 695 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: inline float 26201: ellint_1f(float __k, float __phi) 26201: { return __detail::__ellint_1(__k, __phi); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline long double 26201: ellint_1l(long double __k, long double __phi) 26201: { return __detail::__ellint_1(__k, __phi); } 26201: # 727 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: template 26201: inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type 26201: ellint_1(_Tp __k, _Tpp __phi) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type __type; 26201: return __detail::__ellint_1<__type>(__k, __phi); 26201: } 26201: # 743 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: inline float 26201: ellint_2f(float __k, float __phi) 26201: { return __detail::__ellint_2(__k, __phi); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline long double 26201: ellint_2l(long double __k, long double __phi) 26201: { return __detail::__ellint_2(__k, __phi); } 26201: # 775 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: template 26201: inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type 26201: ellint_2(_Tp __k, _Tpp __phi) 26201: { 26201: typedef typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type __type; 26201: return __detail::__ellint_2<__type>(__k, __phi); 26201: } 26201: # 791 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: inline float 26201: ellint_3f(float __k, float __nu, float __phi) 26201: { return __detail::__ellint_3(__k, __nu, __phi); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline long double 26201: ellint_3l(long double __k, long double __nu, long double __phi) 26201: { return __detail::__ellint_3(__k, __nu, __phi); } 26201: # 828 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: template 26201: inline typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type 26201: ellint_3(_Tp __k, _Tpn __nu, _Tpp __phi) 26201: { 26201: typedef typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type __type; 26201: return __detail::__ellint_3<__type>(__k, __nu, __phi); 26201: } 26201: # 843 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: inline float 26201: expintf(float __x) 26201: { return __detail::__expint(__x); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline long double 26201: expintl(long double __x) 26201: { return __detail::__expint(__x); } 26201: # 868 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: template 26201: inline typename __gnu_cxx::__promote<_Tp>::__type 26201: expint(_Tp __x) 26201: { 26201: typedef typename __gnu_cxx::__promote<_Tp>::__type __type; 26201: return __detail::__expint<__type>(__x); 26201: } 26201: # 884 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: inline float 26201: hermitef(unsigned int __n, float __x) 26201: { return __detail::__poly_hermite(__n, __x); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline long double 26201: hermitel(unsigned int __n, long double __x) 26201: { return __detail::__poly_hermite(__n, __x); } 26201: # 916 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: template 26201: inline typename __gnu_cxx::__promote<_Tp>::__type 26201: hermite(unsigned int __n, _Tp __x) 26201: { 26201: typedef typename __gnu_cxx::__promote<_Tp>::__type __type; 26201: return __detail::__poly_hermite<__type>(__n, __x); 26201: } 26201: # 932 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: inline float 26201: laguerref(unsigned int __n, float __x) 26201: { return __detail::__laguerre(__n, __x); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline long double 26201: laguerrel(unsigned int __n, long double __x) 26201: { return __detail::__laguerre(__n, __x); } 26201: # 960 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: template 26201: inline typename __gnu_cxx::__promote<_Tp>::__type 26201: laguerre(unsigned int __n, _Tp __x) 26201: { 26201: typedef typename __gnu_cxx::__promote<_Tp>::__type __type; 26201: return __detail::__laguerre<__type>(__n, __x); 26201: } 26201: # 976 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: inline float 26201: legendref(unsigned int __l, float __x) 26201: { return __detail::__poly_legendre_p(__l, __x); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline long double 26201: legendrel(unsigned int __l, long double __x) 26201: { return __detail::__poly_legendre_p(__l, __x); } 26201: # 1005 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: template 26201: inline typename __gnu_cxx::__promote<_Tp>::__type 26201: legendre(unsigned int __l, _Tp __x) 26201: { 26201: typedef typename __gnu_cxx::__promote<_Tp>::__type __type; 26201: return __detail::__poly_legendre_p<__type>(__l, __x); 26201: } 26201: # 1021 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: inline float 26201: riemann_zetaf(float __s) 26201: { return __detail::__riemann_zeta(__s); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline long double 26201: riemann_zetal(long double __s) 26201: { return __detail::__riemann_zeta(__s); } 26201: # 1056 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: template 26201: inline typename __gnu_cxx::__promote<_Tp>::__type 26201: riemann_zeta(_Tp __s) 26201: { 26201: typedef typename __gnu_cxx::__promote<_Tp>::__type __type; 26201: return __detail::__riemann_zeta<__type>(__s); 26201: } 26201: # 1072 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: inline float 26201: sph_besself(unsigned int __n, float __x) 26201: { return __detail::__sph_bessel(__n, __x); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline long double 26201: sph_bessell(unsigned int __n, long double __x) 26201: { return __detail::__sph_bessel(__n, __x); } 26201: # 1100 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: template 26201: inline typename __gnu_cxx::__promote<_Tp>::__type 26201: sph_bessel(unsigned int __n, _Tp __x) 26201: { 26201: typedef typename __gnu_cxx::__promote<_Tp>::__type __type; 26201: return __detail::__sph_bessel<__type>(__n, __x); 26201: } 26201: # 1116 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: inline float 26201: sph_legendref(unsigned int __l, unsigned int __m, float __theta) 26201: { return __detail::__sph_legendre(__l, __m, __theta); } 26201: # 1127 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: inline long double 26201: sph_legendrel(unsigned int __l, unsigned int __m, long double __theta) 26201: { return __detail::__sph_legendre(__l, __m, __theta); } 26201: # 1147 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: template 26201: inline typename __gnu_cxx::__promote<_Tp>::__type 26201: sph_legendre(unsigned int __l, unsigned int __m, _Tp __theta) 26201: { 26201: typedef typename __gnu_cxx::__promote<_Tp>::__type __type; 26201: return __detail::__sph_legendre<__type>(__l, __m, __theta); 26201: } 26201: # 1163 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: inline float 26201: sph_neumannf(unsigned int __n, float __x) 26201: { return __detail::__sph_neumann(__n, __x); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline long double 26201: sph_neumannl(unsigned int __n, long double __x) 26201: { return __detail::__sph_neumann(__n, __x); } 26201: # 1191 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: template 26201: inline typename __gnu_cxx::__promote<_Tp>::__type 26201: sph_neumann(unsigned int __n, _Tp __x) 26201: { 26201: typedef typename __gnu_cxx::__promote<_Tp>::__type __type; 26201: return __detail::__sph_neumann<__type>(__n, __x); 26201: } 26201: 26201: 26201: 26201: 26201: } 26201: # 1388 "/usr/x86_64-linux-gnu/include/c++/10/bits/specfun.h" 3 26201: #pragma GCC visibility pop 26201: # 1928 "/usr/x86_64-linux-gnu/include/c++/10/cmath" 2 3 26201: 26201: 26201: } 26201: # 39 "/usr/include/fmt/format.h" 2 3 4 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/include/fmt/core.h" 1 3 4 26201: # 9 "/usr/include/fmt/core.h" 3 4 26201: #define FMT_CORE_H_ 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/cstdio" 1 3 4 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/cstdio" 3 4 26201: 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/cstdio" 3 26201: # 12 "/usr/include/fmt/core.h" 2 3 4 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/cstring" 1 3 4 26201: # 39 "/usr/x86_64-linux-gnu/include/c++/10/cstring" 3 4 26201: 26201: # 40 "/usr/x86_64-linux-gnu/include/c++/10/cstring" 3 26201: # 13 "/usr/include/fmt/core.h" 2 3 4 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/iterator" 1 3 4 26201: # 56 "/usr/x86_64-linux-gnu/include/c++/10/iterator" 3 4 26201: #define _GLIBCXX_ITERATOR 1 26201: 26201: 26201: # 59 "/usr/x86_64-linux-gnu/include/c++/10/iterator" 3 26201: 26201: 26201: 26201: 26201: 26201: 26201: # 1 "/usr/x86_64-linux-gnu/include/c++/10/bits/stream_iterator.h" 1 3 26201: # 31 "/usr/x86_64-linux-gnu/include/c++/10/bits/stream_iterator.h" 3 26201: #define _STREAM_ITERATOR_H 1 26201: 26201: 26201: # 34 "/usr/x86_64-linux-gnu/include/c++/10/bits/stream_iterator.h" 3 26201: 26201: 26201: 26201: namespace std __attribute__ ((__visibility__ ("default"))) 26201: { 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template, typename _Dist = ptrdiff_t> 26201: class istream_iterator 26201: : public iterator 26201: { 26201: public: 26201: typedef _CharT char_type; 26201: typedef _Traits traits_type; 26201: typedef basic_istream<_CharT, _Traits> istream_type; 26201: 26201: private: 26201: istream_type* _M_stream; 26201: _Tp _M_value; 26201: 26201: 26201: 26201: bool _M_ok; 26201: 26201: public: 26201: 26201: constexpr istream_iterator() 26201: : _M_stream(0), _M_value(), _M_ok(false) {} 26201: 26201: 26201: istream_iterator(istream_type& __s) 26201: : _M_stream(std::__addressof(__s)), _M_ok(true) 26201: { _M_read(); } 26201: 26201: istream_iterator(const istream_iterator& __obj) 26201: : _M_stream(__obj._M_stream), _M_value(__obj._M_value), 26201: _M_ok(__obj._M_ok) 26201: { } 26201: # 88 "/usr/x86_64-linux-gnu/include/c++/10/bits/stream_iterator.h" 3 26201: istream_iterator& operator=(const istream_iterator&) = default; 26201: ~istream_iterator() = default; 26201: 26201: 26201: const _Tp& 26201: operator*() const 26201: { 26201: 26201: 26201: ; 26201: return _M_value; 26201: } 26201: 26201: const _Tp* 26201: operator->() const { return std::__addressof((operator*())); } 26201: 26201: istream_iterator& 26201: operator++() 26201: { 26201: 26201: 26201: ; 26201: _M_read(); 26201: return *this; 26201: } 26201: 26201: istream_iterator 26201: operator++(int) 26201: { 26201: 26201: 26201: ; 26201: istream_iterator __tmp = *this; 26201: _M_read(); 26201: return __tmp; 26201: } 26201: 26201: private: 26201: bool 26201: _M_equal(const istream_iterator& __x) const 26201: { 26201: 26201: 26201: return (_M_ok == __x._M_ok) && (!_M_ok || _M_stream == __x._M_stream); 26201: } 26201: 26201: void 26201: _M_read() 26201: { 26201: if (_M_stream && !(*_M_stream >> _M_value)) 26201: { 26201: _M_stream = 0; 26201: _M_ok = false; 26201: } 26201: } 26201: 26201: 26201: 26201: friend bool 26201: operator==(const istream_iterator& __x, const istream_iterator& __y) 26201: { return __x._M_equal(__y); } 26201: 26201: 26201: 26201: friend bool 26201: operator!=(const istream_iterator& __x, const istream_iterator& __y) 26201: { return !__x._M_equal(__y); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: }; 26201: # 174 "/usr/x86_64-linux-gnu/include/c++/10/bits/stream_iterator.h" 3 26201: template > 26201: class ostream_iterator 26201: : public iterator 26201: { 26201: public: 26201: 26201: 26201: 26201: 26201: 26201: typedef _CharT char_type; 26201: typedef _Traits traits_type; 26201: typedef basic_ostream<_CharT, _Traits> ostream_type; 26201: 26201: 26201: private: 26201: ostream_type* _M_stream; 26201: const _CharT* _M_string; 26201: 26201: public: 26201: 26201: 26201: 26201: 26201: 26201: 26201: ostream_iterator(ostream_type& __s) 26201: : _M_stream(std::__addressof(__s)), _M_string(0) {} 26201: # 214 "/usr/x86_64-linux-gnu/include/c++/10/bits/stream_iterator.h" 3 26201: ostream_iterator(ostream_type& __s, const _CharT* __c) 26201: : _M_stream(std::__addressof(__s)), _M_string(__c) { } 26201: 26201: 26201: ostream_iterator(const ostream_iterator& __obj) 26201: : _M_stream(__obj._M_stream), _M_string(__obj._M_string) { } 26201: 26201: 26201: ostream_iterator& operator=(const ostream_iterator&) = default; 26201: 26201: 26201: 26201: 26201: ostream_iterator& 26201: operator=(const _Tp& __value) 26201: { 26201: 26201: 26201: ; 26201: *_M_stream << __value; 26201: if (_M_string) 26201: *_M_stream << _M_string; 26201: return *this; 26201: } 26201: 26201: ostream_iterator& 26201: operator*() 26201: { return *this; } 26201: 26201: ostream_iterator& 26201: operator++() 26201: { return *this; } 26201: 26201: ostream_iterator& 26201: operator++(int) 26201: { return *this; } 26201: }; 26201: 26201: 26201: 26201: 26201: } 26201: # 66 "/usr/x86_64-linux-gnu/include/c++/10/iterator" 2 3 26201: 26201: 26201: 26201: 26201: #define __cpp_lib_null_iterators 201304L 26201: # 15 "/usr/include/fmt/core.h" 2 3 4 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define FMT_VERSION 70103 26201: 26201: 26201: 26201: 26201: #define FMT_CLANG_VERSION 0 26201: 26201: 26201: 26201: #define FMT_GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__) 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define FMT_ICC_VERSION 0 26201: 26201: 26201: 26201: #define FMT_HAS_GXX_CXX11 FMT_GCC_VERSION 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define FMT_NVCC 0 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define FMT_MSC_VER 0 26201: #define FMT_SUPPRESS_MSC_WARNING(n) 26201: 26201: 26201: 26201: 26201: 26201: #define FMT_HAS_FEATURE(x) 0 26201: 26201: 26201: 26201: 26201: #define FMT_HAS_INCLUDE(x) __has_include(x) 26201: 26201: 26201: 26201: 26201: 26201: #define FMT_HAS_CPP_ATTRIBUTE(x) __has_cpp_attribute(x) 26201: 26201: 26201: 26201: 26201: #define FMT_HAS_CPP14_ATTRIBUTE(attribute) (__cplusplus >= 201402L && FMT_HAS_CPP_ATTRIBUTE(attribute)) 26201: 26201: 26201: #define FMT_HAS_CPP17_ATTRIBUTE(attribute) (__cplusplus >= 201703L && FMT_HAS_CPP_ATTRIBUTE(attribute)) 26201: 26201: 26201: 26201: 26201: 26201: #define FMT_USE_CONSTEXPR (FMT_HAS_FEATURE(cxx_relaxed_constexpr) || FMT_MSC_VER >= 1910 || (FMT_GCC_VERSION >= 600 && __cplusplus >= 201402L)) && !FMT_NVCC && !FMT_ICC_VERSION 26201: 26201: 26201: 26201: 26201: 26201: #define FMT_CONSTEXPR constexpr 26201: #define FMT_CONSTEXPR_DECL constexpr 26201: # 105 "/usr/include/fmt/core.h" 3 4 26201: #define FMT_OVERRIDE override 26201: # 117 "/usr/include/fmt/core.h" 3 4 26201: #define FMT_EXCEPTIONS 1 26201: 26201: 26201: 26201: 26201: 26201: #define FMT_USE_NOEXCEPT 0 26201: 26201: 26201: 26201: 26201: #define FMT_DETECTED_NOEXCEPT noexcept 26201: #define FMT_HAS_CXX11_NOEXCEPT 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define FMT_NOEXCEPT FMT_DETECTED_NOEXCEPT 26201: # 147 "/usr/include/fmt/core.h" 3 4 26201: #define FMT_NORETURN [[noreturn]] 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define FMT_DEPRECATED [[deprecated]] 26201: # 170 "/usr/include/fmt/core.h" 3 4 26201: #define FMT_DEPRECATED_ALIAS FMT_DEPRECATED 26201: 26201: 26201: 26201: 26201: #define FMT_INLINE inline __attribute__((always_inline)) 26201: # 184 "/usr/include/fmt/core.h" 3 4 26201: #define FMT_USE_INLINE_NAMESPACES 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define FMT_INLINE_NAMESPACE inline namespace 26201: #define FMT_END_NAMESPACE } } 26201: # 203 "/usr/include/fmt/core.h" 3 4 26201: #define FMT_BEGIN_NAMESPACE namespace fmt { FMT_INLINE_NAMESPACE v7 { 26201: # 219 "/usr/include/fmt/core.h" 3 4 26201: #define FMT_CLASS_API 26201: 26201: 26201: #define FMT_API 26201: 26201: 26201: #define FMT_EXTERN_TEMPLATE_API 26201: 26201: 26201: #define FMT_INSTANTIATION_DEF_API FMT_API 26201: 26201: 26201: 26201: #define FMT_EXTERN extern 26201: # 242 "/usr/include/fmt/core.h" 3 4 26201: #define FMT_USE_STRING_VIEW 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define FMT_UNICODE !FMT_MSC_VER 26201: 26201: 26201: 26201: 26201: 26201: namespace fmt { inline namespace v7 { 26201: 26201: 26201: template 26201: using enable_if_t = typename std::enable_if::type; 26201: template 26201: using conditional_t = typename std::conditional::type; 26201: template using bool_constant = std::integral_constant; 26201: template 26201: using remove_reference_t = typename std::remove_reference::type; 26201: template 26201: using remove_const_t = typename std::remove_const::type; 26201: template 26201: using remove_cvref_t = typename std::remove_cv>::type; 26201: template struct type_identity { using type = T; }; 26201: template using type_identity_t = typename type_identity::type; 26201: 26201: struct monostate {}; 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define FMT_ENABLE_IF(...) enable_if_t<(__VA_ARGS__), int> = 0 26201: 26201: 26201: namespace detail { 26201: 26201: 26201: template constexpr T const_check(T value) { return value; } 26201: 26201: [[noreturn]] void assert_fail(const char* file, int line, 26201: const char* message); 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define FMT_ASSERT(condition,message) ((condition) ? (void)0 : ::fmt::detail::assert_fail(__FILE__, __LINE__, (message))) 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template using std_string_view = std::basic_string_view; 26201: # 316 "/usr/include/fmt/core.h" 3 4 26201: #define FMT_USE_INT128 1 26201: using int128_t = __int128_t; 26201: using uint128_t = __uint128_t; 26201: # 328 "/usr/include/fmt/core.h" 3 4 26201: template 26201: constexpr typename std::make_unsigned::type to_unsigned(Int value) { 26201: ((value >= 0) ? (void)0 : ::fmt::detail::assert_fail("/usr/include/fmt/core.h", 330, ("negative value"))); 26201: return static_cast::type>(value); 26201: } 26201: 26201: constexpr unsigned char micro[] = "\u00B5"; 26201: 26201: template constexpr bool is_unicode() { 26201: return !0 || sizeof(Char) != 1 || 26201: (sizeof(micro) == 3 && micro[0] == 0xC2 && micro[1] == 0xB5); 26201: } 26201: 26201: 26201: 26201: 26201: enum char8_type : unsigned char {}; 26201: 26201: } 26201: # 359 "/usr/include/fmt/core.h" 3 4 26201: template class basic_string_view { 26201: private: 26201: const Char* data_; 26201: size_t size_; 26201: 26201: public: 26201: using value_type = Char; 26201: using iterator = const Char*; 26201: 26201: constexpr basic_string_view() noexcept : data_(nullptr), size_(0) {} 26201: 26201: 26201: constexpr basic_string_view(const Char* s, size_t count) noexcept 26201: : data_(s), 26201: size_(count) {} 26201: # 382 "/usr/include/fmt/core.h" 3 4 26201: constexpr 26201: 26201: basic_string_view(const Char* s) 26201: : data_(s), size_(std::char_traits::length(s)) {} 26201: 26201: 26201: template 26201: constexpr basic_string_view( 26201: const std::basic_string& s) noexcept 26201: : data_(s.data()), 26201: size_(s.size()) {} 26201: 26201: template >::value), int> = 0 26201: > 26201: constexpr basic_string_view(S s) noexcept : data_(s.data()), 26201: size_(s.size()) {} 26201: 26201: 26201: constexpr const Char* data() const { return data_; } 26201: 26201: 26201: constexpr size_t size() const { return size_; } 26201: 26201: constexpr iterator begin() const { return data_; } 26201: constexpr iterator end() const { return data_ + size_; } 26201: 26201: constexpr const Char& operator[](size_t pos) const { return data_[pos]; } 26201: 26201: constexpr void remove_prefix(size_t n) { 26201: data_ += n; 26201: size_ -= n; 26201: } 26201: 26201: 26201: int compare(basic_string_view other) const { 26201: size_t str_size = size_ < other.size_ ? size_ : other.size_; 26201: int result = std::char_traits::compare(data_, other.data_, str_size); 26201: if (result == 0) 26201: result = size_ == other.size_ ? 0 : (size_ < other.size_ ? -1 : 1); 26201: return result; 26201: } 26201: 26201: friend bool operator==(basic_string_view lhs, basic_string_view rhs) { 26201: return lhs.compare(rhs) == 0; 26201: } 26201: friend bool operator!=(basic_string_view lhs, basic_string_view rhs) { 26201: return lhs.compare(rhs) != 0; 26201: } 26201: friend bool operator<(basic_string_view lhs, basic_string_view rhs) { 26201: return lhs.compare(rhs) < 0; 26201: } 26201: friend bool operator<=(basic_string_view lhs, basic_string_view rhs) { 26201: return lhs.compare(rhs) <= 0; 26201: } 26201: friend bool operator>(basic_string_view lhs, basic_string_view rhs) { 26201: return lhs.compare(rhs) > 0; 26201: } 26201: friend bool operator>=(basic_string_view lhs, basic_string_view rhs) { 26201: return lhs.compare(rhs) >= 0; 26201: } 26201: }; 26201: 26201: using string_view = basic_string_view; 26201: using wstring_view = basic_string_view; 26201: 26201: 26201: template struct is_char : std::false_type {}; 26201: template <> struct is_char : std::true_type {}; 26201: template <> struct is_char : std::true_type {}; 26201: template <> struct is_char : std::true_type {}; 26201: template <> struct is_char : std::true_type {}; 26201: template <> struct is_char : std::true_type {}; 26201: # 471 "/usr/include/fmt/core.h" 3 4 26201: template ::value), int> = 0> 26201: inline basic_string_view to_string_view(const Char* s) { 26201: return s; 26201: } 26201: 26201: template 26201: inline basic_string_view to_string_view( 26201: const std::basic_string& s) { 26201: return s; 26201: } 26201: 26201: template 26201: inline basic_string_view to_string_view(basic_string_view s) { 26201: return s; 26201: } 26201: 26201: template >::value), int> = 0> 26201: inline basic_string_view to_string_view(detail::std_string_view s) { 26201: return s; 26201: } 26201: 26201: 26201: 26201: struct compile_string {}; 26201: 26201: template 26201: struct is_compile_string : std::is_base_of {}; 26201: 26201: template ::value), int> = 0> 26201: constexpr basic_string_view to_string_view(const S& s) { 26201: return s; 26201: } 26201: 26201: namespace detail { 26201: void to_string_view(...); 26201: using fmt::v7::to_string_view; 26201: 26201: 26201: 26201: 26201: template 26201: struct is_string : std::is_class()))> { 26201: }; 26201: 26201: template struct char_t_impl {}; 26201: template struct char_t_impl::value>> { 26201: using result = decltype(to_string_view(std::declval())); 26201: using type = typename result::value_type; 26201: }; 26201: 26201: 26201: template ::value), int> = 0> 26201: inline __attribute__((always_inline)) void check_format_string(const S&) { 26201: 26201: 26201: 26201: 26201: 26201: } 26201: template ::value), int> = 0> 26201: void check_format_string(S); 26201: 26201: struct error_handler { 26201: constexpr error_handler() = default; 26201: constexpr error_handler(const error_handler&) = default; 26201: 26201: 26201: [[noreturn]] void on_error(const char* message); 26201: }; 26201: } 26201: 26201: 26201: template using char_t = typename detail::char_t_impl::type; 26201: # 562 "/usr/include/fmt/core.h" 3 4 26201: template 26201: class basic_format_parse_context : private ErrorHandler { 26201: private: 26201: basic_string_view format_str_; 26201: int next_arg_id_; 26201: 26201: public: 26201: using char_type = Char; 26201: using iterator = typename basic_string_view::iterator; 26201: 26201: explicit constexpr basic_format_parse_context( 26201: basic_string_view format_str, ErrorHandler eh = {}, 26201: int next_arg_id = 0) 26201: : ErrorHandler(eh), format_str_(format_str), next_arg_id_(next_arg_id) {} 26201: 26201: 26201: 26201: 26201: 26201: constexpr iterator begin() const noexcept { return format_str_.begin(); } 26201: 26201: 26201: 26201: 26201: constexpr iterator end() const noexcept { return format_str_.end(); } 26201: 26201: 26201: constexpr void advance_to(iterator it) { 26201: format_str_.remove_prefix(detail::to_unsigned(it - begin())); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: constexpr int next_arg_id() { 26201: 26201: 26201: if (next_arg_id_ >= 0) return next_arg_id_++; 26201: on_error("cannot switch from manual to automatic argument indexing"); 26201: return 0; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: constexpr void check_arg_id(int) { 26201: if (next_arg_id_ > 0) 26201: on_error("cannot switch from automatic to manual argument indexing"); 26201: else 26201: next_arg_id_ = -1; 26201: } 26201: 26201: constexpr void check_arg_id(basic_string_view) {} 26201: 26201: constexpr void on_error(const char* message) { 26201: ErrorHandler::on_error(message); 26201: } 26201: 26201: constexpr ErrorHandler error_handler() const { return *this; } 26201: }; 26201: 26201: using format_parse_context = basic_format_parse_context; 26201: using wformat_parse_context = basic_format_parse_context; 26201: 26201: template class basic_format_arg; 26201: template class basic_format_args; 26201: template class dynamic_format_arg_store; 26201: 26201: 26201: template 26201: struct formatter { 26201: 26201: formatter() = delete; 26201: }; 26201: 26201: 26201: 26201: template 26201: using has_formatter = 26201: std::is_constructible>; 26201: 26201: 26201: template struct is_contiguous : std::false_type {}; 26201: template 26201: struct is_contiguous> : std::true_type {}; 26201: 26201: namespace detail { 26201: 26201: 26201: template 26201: inline Container& get_container(std::back_insert_iterator it) { 26201: using bi_iterator = std::back_insert_iterator; 26201: struct accessor : bi_iterator { 26201: accessor(bi_iterator iter) : bi_iterator(iter) {} 26201: using bi_iterator::container; 26201: }; 26201: return *accessor(it).container; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: template class buffer { 26201: private: 26201: T* ptr_; 26201: size_t size_; 26201: size_t capacity_; 26201: 26201: protected: 26201: 26201: 26201: buffer(size_t sz) noexcept : size_(sz), capacity_(sz) {} 26201: 26201: buffer(T* p = nullptr, size_t sz = 0, size_t cap = 0) noexcept 26201: : ptr_(p), 26201: size_(sz), 26201: capacity_(cap) {} 26201: 26201: ~buffer() = default; 26201: 26201: 26201: void set(T* buf_data, size_t buf_capacity) noexcept { 26201: ptr_ = buf_data; 26201: capacity_ = buf_capacity; 26201: } 26201: 26201: 26201: virtual void grow(size_t capacity) = 0; 26201: 26201: public: 26201: using value_type = T; 26201: using const_reference = const T&; 26201: 26201: buffer(const buffer&) = delete; 26201: void operator=(const buffer&) = delete; 26201: 26201: T* begin() noexcept { return ptr_; } 26201: T* end() noexcept { return ptr_ + size_; } 26201: 26201: const T* begin() const noexcept { return ptr_; } 26201: const T* end() const noexcept { return ptr_ + size_; } 26201: 26201: 26201: size_t size() const noexcept { return size_; } 26201: 26201: 26201: size_t capacity() const noexcept { return capacity_; } 26201: 26201: 26201: T* data() noexcept { return ptr_; } 26201: 26201: 26201: const T* data() const noexcept { return ptr_; } 26201: 26201: 26201: void clear() { size_ = 0; } 26201: 26201: 26201: 26201: void try_resize(size_t count) { 26201: try_reserve(count); 26201: size_ = count <= capacity_ ? count : capacity_; 26201: } 26201: 26201: 26201: 26201: 26201: 26201: void try_reserve(size_t new_capacity) { 26201: if (new_capacity > capacity_) grow(new_capacity); 26201: } 26201: 26201: void push_back(const T& value) { 26201: try_reserve(size_ + 1); 26201: ptr_[size_++] = value; 26201: } 26201: 26201: 26201: template void append(const U* begin, const U* end); 26201: 26201: template T& operator[](I index) { return ptr_[index]; } 26201: template const T& operator[](I index) const { 26201: return ptr_[index]; 26201: } 26201: }; 26201: 26201: struct buffer_traits { 26201: explicit buffer_traits(size_t) {} 26201: size_t count() const { return 0; } 26201: size_t limit(size_t size) { return size; } 26201: }; 26201: 26201: class fixed_buffer_traits { 26201: private: 26201: size_t count_ = 0; 26201: size_t limit_; 26201: 26201: public: 26201: explicit fixed_buffer_traits(size_t limit) : limit_(limit) {} 26201: size_t count() const { return count_; } 26201: size_t limit(size_t size) { 26201: size_t n = limit_ > count_ ? limit_ - count_ : 0; 26201: count_ += size; 26201: return size < n ? size : n; 26201: } 26201: }; 26201: 26201: 26201: template 26201: class iterator_buffer final : public Traits, public buffer { 26201: private: 26201: OutputIt out_; 26201: enum { buffer_size = 256 }; 26201: T data_[buffer_size]; 26201: 26201: protected: 26201: void grow(size_t) final override { 26201: if (this->size() == buffer_size) flush(); 26201: } 26201: void flush(); 26201: 26201: public: 26201: explicit iterator_buffer(OutputIt out, size_t n = buffer_size) 26201: : Traits(n), 26201: buffer(data_, 0, buffer_size), 26201: out_(out) {} 26201: ~iterator_buffer() { flush(); } 26201: 26201: OutputIt out() { 26201: flush(); 26201: return out_; 26201: } 26201: size_t count() const { return Traits::count() + this->size(); } 26201: }; 26201: 26201: template class iterator_buffer final : public buffer { 26201: protected: 26201: void grow(size_t) final override {} 26201: 26201: public: 26201: explicit iterator_buffer(T* out, size_t = 0) : buffer(out, 0, ~size_t()) {} 26201: 26201: T* out() { return &*this->end(); } 26201: }; 26201: 26201: 26201: template 26201: class iterator_buffer, 26201: enable_if_t::value, 26201: typename Container::value_type>> 26201: final : public buffer { 26201: private: 26201: Container& container_; 26201: 26201: protected: 26201: void grow(size_t capacity) final override { 26201: container_.resize(capacity); 26201: this->set(&container_[0], capacity); 26201: } 26201: 26201: public: 26201: explicit iterator_buffer(Container& c) 26201: : buffer(c.size()), container_(c) {} 26201: explicit iterator_buffer(std::back_insert_iterator out, size_t = 0) 26201: : iterator_buffer(get_container(out)) {} 26201: std::back_insert_iterator out() { 26201: return std::back_inserter(container_); 26201: } 26201: }; 26201: 26201: 26201: template class counting_buffer final : public buffer { 26201: private: 26201: enum { buffer_size = 256 }; 26201: T data_[buffer_size]; 26201: size_t count_ = 0; 26201: 26201: protected: 26201: void grow(size_t) final override { 26201: if (this->size() != buffer_size) return; 26201: count_ += this->size(); 26201: this->clear(); 26201: } 26201: 26201: public: 26201: counting_buffer() : buffer(data_, 0, buffer_size) {} 26201: 26201: size_t count() { return count_ + this->size(); } 26201: }; 26201: 26201: 26201: 26201: template 26201: class buffer_appender : public std::back_insert_iterator> { 26201: using base = std::back_insert_iterator>; 26201: 26201: public: 26201: explicit buffer_appender(buffer& buf) : base(buf) {} 26201: buffer_appender(base it) : base(it) {} 26201: 26201: buffer_appender& operator++() { 26201: base::operator++(); 26201: return *this; 26201: } 26201: 26201: buffer_appender operator++(int) { 26201: buffer_appender tmp = *this; 26201: ++*this; 26201: return tmp; 26201: } 26201: }; 26201: 26201: 26201: template 26201: iterator_buffer get_buffer(OutputIt); 26201: template buffer& get_buffer(buffer_appender); 26201: 26201: template OutputIt get_buffer_init(OutputIt out) { 26201: return out; 26201: } 26201: template buffer& get_buffer_init(buffer_appender out) { 26201: return get_container(out); 26201: } 26201: 26201: template 26201: auto get_iterator(Buffer& buf) -> decltype(buf.out()) { 26201: return buf.out(); 26201: } 26201: template buffer_appender get_iterator(buffer& buf) { 26201: return buffer_appender(buf); 26201: } 26201: 26201: template 26201: struct fallback_formatter { 26201: fallback_formatter() = delete; 26201: }; 26201: 26201: 26201: template 26201: using has_fallback_formatter = 26201: std::is_constructible>; 26201: 26201: struct view {}; 26201: 26201: template struct named_arg : view { 26201: const Char* name; 26201: const T& value; 26201: named_arg(const Char* n, const T& v) : name(n), value(v) {} 26201: }; 26201: 26201: template struct named_arg_info { 26201: const Char* name; 26201: int id; 26201: }; 26201: 26201: template 26201: struct arg_data { 26201: 26201: 26201: T args_[1 + (NUM_ARGS != 0 ? NUM_ARGS : +1)]; 26201: named_arg_info named_args_[NUM_NAMED_ARGS]; 26201: 26201: template 26201: arg_data(const U&... init) : args_{T(named_args_, NUM_NAMED_ARGS), init...} {} 26201: arg_data(const arg_data& other) = delete; 26201: const T* args() const { return args_ + 1; } 26201: named_arg_info* named_args() { return named_args_; } 26201: }; 26201: 26201: template 26201: struct arg_data { 26201: 26201: T args_[NUM_ARGS != 0 ? NUM_ARGS : +1]; 26201: 26201: template 26201: inline __attribute__((always_inline)) arg_data(const U&... init) : args_{init...} {} 26201: inline __attribute__((always_inline)) const T* args() const { return args_; } 26201: inline __attribute__((always_inline)) std::nullptr_t named_args() { return nullptr; } 26201: }; 26201: 26201: template 26201: inline void init_named_args(named_arg_info*, int, int) {} 26201: 26201: template 26201: void init_named_args(named_arg_info* named_args, int arg_count, 26201: int named_arg_count, const T&, const Tail&... args) { 26201: init_named_args(named_args, arg_count + 1, named_arg_count, args...); 26201: } 26201: 26201: template 26201: void init_named_args(named_arg_info* named_args, int arg_count, 26201: int named_arg_count, const named_arg& arg, 26201: const Tail&... args) { 26201: named_args[named_arg_count++] = {arg.name, arg_count}; 26201: init_named_args(named_args, arg_count + 1, named_arg_count, args...); 26201: } 26201: 26201: template 26201: inline __attribute__((always_inline)) void init_named_args(std::nullptr_t, int, int, const Args&...) {} 26201: 26201: template struct is_named_arg : std::false_type {}; 26201: 26201: template 26201: struct is_named_arg> : std::true_type {}; 26201: 26201: template constexpr size_t count() { return B ? 1 : 0; } 26201: template constexpr size_t count() { 26201: return (B1 ? 1 : 0) + count(); 26201: } 26201: 26201: template constexpr size_t count_named_args() { 26201: return count::value...>(); 26201: } 26201: 26201: enum class type { 26201: none_type, 26201: 26201: int_type, 26201: uint_type, 26201: long_long_type, 26201: ulong_long_type, 26201: int128_type, 26201: uint128_type, 26201: bool_type, 26201: char_type, 26201: last_integer_type = char_type, 26201: 26201: float_type, 26201: double_type, 26201: long_double_type, 26201: last_numeric_type = long_double_type, 26201: cstring_type, 26201: string_type, 26201: pointer_type, 26201: custom_type 26201: }; 26201: 26201: 26201: template 26201: struct type_constant : std::integral_constant {}; 26201: 26201: #define FMT_TYPE_CONSTANT(Type,constant) template struct type_constant : std::integral_constant {} 26201: 26201: 26201: 26201: 26201: template struct type_constant : std::integral_constant {}; 26201: template struct type_constant : std::integral_constant {}; 26201: template struct type_constant : std::integral_constant {}; 26201: template struct type_constant : std::integral_constant {}; 26201: template struct type_constant : std::integral_constant {}; 26201: template struct type_constant : std::integral_constant {}; 26201: template struct type_constant : std::integral_constant {}; 26201: template struct type_constant : std::integral_constant {}; 26201: template struct type_constant : std::integral_constant {}; 26201: template struct type_constant : std::integral_constant {}; 26201: template struct type_constant : std::integral_constant {}; 26201: template struct type_constant : std::integral_constant {}; 26201: template struct type_constant, Char> : std::integral_constant {}; 26201: template struct type_constant : std::integral_constant {}; 26201: 26201: constexpr bool is_integral_type(type t) { 26201: return t > type::none_type && t <= type::last_integer_type; 26201: } 26201: 26201: constexpr bool is_arithmetic_type(type t) { 26201: return t > type::none_type && t <= type::last_numeric_type; 26201: } 26201: 26201: template struct string_value { 26201: const Char* data; 26201: size_t size; 26201: }; 26201: 26201: template struct named_arg_value { 26201: const named_arg_info* data; 26201: size_t size; 26201: }; 26201: 26201: template struct custom_value { 26201: using parse_context = typename Context::parse_context_type; 26201: const void* value; 26201: void (*format)(const void* arg, parse_context& parse_ctx, Context& ctx); 26201: }; 26201: 26201: 26201: template class value { 26201: public: 26201: using char_type = typename Context::char_type; 26201: 26201: union { 26201: int int_value; 26201: unsigned uint_value; 26201: long long long_long_value; 26201: unsigned long long ulong_long_value; 26201: int128_t int128_value; 26201: uint128_t uint128_value; 26201: bool bool_value; 26201: char_type char_value; 26201: float float_value; 26201: double double_value; 26201: long double long_double_value; 26201: const void* pointer; 26201: string_value string; 26201: custom_value custom; 26201: named_arg_value named_args; 26201: }; 26201: 26201: constexpr inline __attribute__((always_inline)) value(int val = 0) : int_value(val) {} 26201: constexpr inline __attribute__((always_inline)) value(unsigned val) : uint_value(val) {} 26201: inline __attribute__((always_inline)) value(long long val) : long_long_value(val) {} 26201: inline __attribute__((always_inline)) value(unsigned long long val) : ulong_long_value(val) {} 26201: inline __attribute__((always_inline)) value(int128_t val) : int128_value(val) {} 26201: inline __attribute__((always_inline)) value(uint128_t val) : uint128_value(val) {} 26201: inline __attribute__((always_inline)) value(float val) : float_value(val) {} 26201: inline __attribute__((always_inline)) value(double val) : double_value(val) {} 26201: inline __attribute__((always_inline)) value(long double val) : long_double_value(val) {} 26201: inline __attribute__((always_inline)) value(bool val) : bool_value(val) {} 26201: inline __attribute__((always_inline)) value(char_type val) : char_value(val) {} 26201: inline __attribute__((always_inline)) value(const char_type* val) { string.data = val; } 26201: inline __attribute__((always_inline)) value(basic_string_view val) { 26201: string.data = val.data(); 26201: string.size = val.size(); 26201: } 26201: inline __attribute__((always_inline)) value(const void* val) : pointer(val) {} 26201: inline __attribute__((always_inline)) value(const named_arg_info* args, size_t size) 26201: : named_args{args, size} {} 26201: 26201: template inline __attribute__((always_inline)) value(const T& val) { 26201: custom.value = &val; 26201: 26201: 26201: 26201: custom.format = format_custom_arg< 26201: T, conditional_t::value, 26201: typename Context::template formatter_type, 26201: fallback_formatter>>; 26201: } 26201: 26201: private: 26201: 26201: template 26201: static void format_custom_arg(const void* arg, 26201: typename Context::parse_context_type& parse_ctx, 26201: Context& ctx) { 26201: Formatter f; 26201: parse_ctx.advance_to(f.parse(parse_ctx)); 26201: ctx.advance_to(f.format(*static_cast(arg), ctx)); 26201: } 26201: }; 26201: 26201: template 26201: constexpr basic_format_arg make_arg(const T& value); 26201: 26201: 26201: 26201: enum { long_short = sizeof(long) == sizeof(int) }; 26201: using long_type = conditional_t; 26201: using ulong_type = conditional_t; 26201: 26201: struct unformattable {}; 26201: 26201: 26201: template struct arg_mapper { 26201: using char_type = typename Context::char_type; 26201: 26201: constexpr int map(signed char val) { return val; } 26201: constexpr unsigned map(unsigned char val) { return val; } 26201: constexpr int map(short val) { return val; } 26201: constexpr unsigned map(unsigned short val) { return val; } 26201: constexpr int map(int val) { return val; } 26201: constexpr unsigned map(unsigned val) { return val; } 26201: constexpr long_type map(long val) { return val; } 26201: constexpr ulong_type map(unsigned long val) { return val; } 26201: constexpr long long map(long long val) { return val; } 26201: constexpr unsigned long long map(unsigned long long val) { return val; } 26201: constexpr int128_t map(int128_t val) { return val; } 26201: constexpr uint128_t map(uint128_t val) { return val; } 26201: constexpr bool map(bool val) { return val; } 26201: 26201: template ::value), int> = 0> 26201: constexpr char_type map(T val) { 26201: static_assert( 26201: std::is_same::value || std::is_same::value, 26201: "mixing character types is disallowed"); 26201: return val; 26201: } 26201: 26201: constexpr float map(float val) { return val; } 26201: constexpr double map(double val) { return val; } 26201: constexpr long double map(long double val) { return val; } 26201: 26201: constexpr const char_type* map(char_type* val) { return val; } 26201: constexpr const char_type* map(const char_type* val) { return val; } 26201: template ::value), int> = 0> 26201: constexpr basic_string_view map(const T& val) { 26201: static_assert(std::is_same>::value, 26201: "mixing character types is disallowed"); 26201: return to_string_view(val); 26201: } 26201: template , T>::value && !is_string::value && !has_formatter::value && !has_fallback_formatter::value), int> = 0 26201: 26201: 26201: > 26201: constexpr basic_string_view map(const T& val) { 26201: return basic_string_view(val); 26201: } 26201: template < 26201: typename T, 26201: enable_if_t<(std::is_constructible, T>::value && !std::is_constructible, T>::value && !is_string::value && !has_formatter::value && !has_fallback_formatter::value), int> = 0 26201: 26201: 26201: 26201: > 26201: constexpr basic_string_view map(const T& val) { 26201: return std_string_view(val); 26201: } 26201: constexpr const char* map(const signed char* val) { 26201: static_assert(std::is_same::value, "invalid string type"); 26201: return reinterpret_cast(val); 26201: } 26201: constexpr const char* map(const unsigned char* val) { 26201: static_assert(std::is_same::value, "invalid string type"); 26201: return reinterpret_cast(val); 26201: } 26201: constexpr const char* map(signed char* val) { 26201: const auto* const_val = val; 26201: return map(const_val); 26201: } 26201: constexpr const char* map(unsigned char* val) { 26201: const auto* const_val = val; 26201: return map(const_val); 26201: } 26201: 26201: constexpr const void* map(void* val) { return val; } 26201: constexpr const void* map(const void* val) { return val; } 26201: constexpr const void* map(std::nullptr_t val) { return val; } 26201: template constexpr int map(const T*) { 26201: 26201: 26201: 26201: 26201: static_assert(!sizeof(T), "formatting of non-void pointers is disallowed"); 26201: return 0; 26201: } 26201: 26201: template ::value && !has_formatter::value && !has_fallback_formatter::value), int> = 0 26201: 26201: > 26201: constexpr auto map(const T& val) 26201: -> decltype(std::declval().map( 26201: static_cast::type>(val))) { 26201: return map(static_cast::type>(val)); 26201: } 26201: template ::value && !is_char::value && (has_formatter::value || has_fallback_formatter::value)), int> = 0 26201: 26201: > 26201: constexpr const T& map(const T& val) { 26201: return val; 26201: } 26201: 26201: template 26201: constexpr auto map(const named_arg& val) 26201: -> decltype(std::declval().map(val.value)) { 26201: return map(val.value); 26201: } 26201: 26201: unformattable map(...) { return {}; } 26201: }; 26201: 26201: 26201: template 26201: using mapped_type_constant = 26201: type_constant().map(std::declval())), 26201: typename Context::char_type>; 26201: 26201: enum { packed_arg_bits = 4 }; 26201: 26201: enum { max_packed_args = 62 / packed_arg_bits }; 26201: enum : unsigned long long { is_unpacked_bit = 1ULL << 63 }; 26201: enum : unsigned long long { has_named_args_bit = 1ULL << 62 }; 26201: } 26201: 26201: 26201: 26201: template class basic_format_arg { 26201: private: 26201: detail::value value_; 26201: detail::type type_; 26201: 26201: template 26201: friend constexpr basic_format_arg detail::make_arg( 26201: const T& value); 26201: 26201: template 26201: friend constexpr auto visit_format_arg(Visitor&& vis, 26201: const basic_format_arg& arg) 26201: -> decltype(vis(0)); 26201: 26201: friend class basic_format_args; 26201: friend class dynamic_format_arg_store; 26201: 26201: using char_type = typename Context::char_type; 26201: 26201: template 26201: friend struct detail::arg_data; 26201: 26201: basic_format_arg(const detail::named_arg_info* args, size_t size) 26201: : value_(args, size) {} 26201: 26201: public: 26201: class handle { 26201: public: 26201: explicit handle(detail::custom_value custom) : custom_(custom) {} 26201: 26201: void format(typename Context::parse_context_type& parse_ctx, 26201: Context& ctx) const { 26201: custom_.format(custom_.value, parse_ctx, ctx); 26201: } 26201: 26201: private: 26201: detail::custom_value custom_; 26201: }; 26201: 26201: constexpr basic_format_arg() : type_(detail::type::none_type) {} 26201: 26201: constexpr explicit operator bool() const noexcept { 26201: return type_ != detail::type::none_type; 26201: } 26201: 26201: detail::type type() const { return type_; } 26201: 26201: bool is_integral() const { return detail::is_integral_type(type_); } 26201: bool is_arithmetic() const { return detail::is_arithmetic_type(type_); } 26201: }; 26201: # 1313 "/usr/include/fmt/core.h" 3 4 26201: template 26201: constexpr inline __attribute__((always_inline)) auto visit_format_arg( 26201: Visitor&& vis, const basic_format_arg& arg) -> decltype(vis(0)) { 26201: using char_type = typename Context::char_type; 26201: switch (arg.type_) { 26201: case detail::type::none_type: 26201: break; 26201: case detail::type::int_type: 26201: return vis(arg.value_.int_value); 26201: case detail::type::uint_type: 26201: return vis(arg.value_.uint_value); 26201: case detail::type::long_long_type: 26201: return vis(arg.value_.long_long_value); 26201: case detail::type::ulong_long_type: 26201: return vis(arg.value_.ulong_long_value); 26201: 26201: case detail::type::int128_type: 26201: return vis(arg.value_.int128_value); 26201: case detail::type::uint128_type: 26201: return vis(arg.value_.uint128_value); 26201: 26201: 26201: 26201: 26201: 26201: case detail::type::bool_type: 26201: return vis(arg.value_.bool_value); 26201: case detail::type::char_type: 26201: return vis(arg.value_.char_value); 26201: case detail::type::float_type: 26201: return vis(arg.value_.float_value); 26201: case detail::type::double_type: 26201: return vis(arg.value_.double_value); 26201: case detail::type::long_double_type: 26201: return vis(arg.value_.long_double_value); 26201: case detail::type::cstring_type: 26201: return vis(arg.value_.string.data); 26201: case detail::type::string_type: 26201: return vis(basic_string_view(arg.value_.string.data, 26201: arg.value_.string.size)); 26201: case detail::type::pointer_type: 26201: return vis(arg.value_.pointer); 26201: case detail::type::custom_type: 26201: return vis(typename basic_format_arg::handle(arg.value_.custom)); 26201: } 26201: return vis(monostate()); 26201: } 26201: 26201: template struct formattable : std::false_type {}; 26201: 26201: namespace detail { 26201: 26201: 26201: template struct void_t_impl { using type = void; }; 26201: template 26201: using void_t = typename detail::void_t_impl::type; 26201: 26201: template 26201: struct is_output_iterator : std::false_type {}; 26201: 26201: template 26201: struct is_output_iterator< 26201: It, T, 26201: void_t::iterator_category, 26201: decltype(*std::declval() = std::declval())>> 26201: : std::true_type {}; 26201: 26201: template 26201: struct is_back_insert_iterator : std::false_type {}; 26201: template 26201: struct is_back_insert_iterator> 26201: : std::true_type {}; 26201: 26201: template 26201: struct is_contiguous_back_insert_iterator : std::false_type {}; 26201: template 26201: struct is_contiguous_back_insert_iterator> 26201: : is_contiguous {}; 26201: template 26201: struct is_contiguous_back_insert_iterator> 26201: : std::true_type {}; 26201: 26201: 26201: class locale_ref { 26201: private: 26201: const void* locale_; 26201: 26201: public: 26201: locale_ref() : locale_(nullptr) {} 26201: template explicit locale_ref(const Locale& loc); 26201: 26201: explicit operator bool() const noexcept { return locale_ != nullptr; } 26201: 26201: template Locale get() const; 26201: }; 26201: 26201: template constexpr unsigned long long encode_types() { return 0; } 26201: 26201: template 26201: constexpr unsigned long long encode_types() { 26201: return static_cast(mapped_type_constant::value) | 26201: (encode_types() << packed_arg_bits); 26201: } 26201: 26201: template 26201: constexpr basic_format_arg make_arg(const T& value) { 26201: basic_format_arg arg; 26201: arg.type_ = mapped_type_constant::value; 26201: arg.value_ = arg_mapper().map(value); 26201: return arg; 26201: } 26201: 26201: template int check(unformattable) { 26201: static_assert( 26201: formattable(), 26201: "Cannot format an argument. To make type T formattable provide a " 26201: "formatter specialization: https://fmt.dev/latest/api.html#udt"); 26201: return 0; 26201: } 26201: template inline const U& check(const U& val) { 26201: return val; 26201: } 26201: 26201: 26201: 26201: 26201: template = 0> 26201: inline value make_arg(const T& val) { 26201: return check(arg_mapper().map(val)); 26201: } 26201: 26201: template = 0> 26201: inline basic_format_arg make_arg(const T& value) { 26201: return make_arg(value); 26201: } 26201: 26201: template struct is_reference_wrapper : std::false_type {}; 26201: template 26201: struct is_reference_wrapper> : std::true_type {}; 26201: 26201: template const T& unwrap(const T& v) { return v; } 26201: template const T& unwrap(const std::reference_wrapper& v) { 26201: return static_cast(v); 26201: } 26201: 26201: class dynamic_arg_list { 26201: 26201: 26201: 26201: template struct node { 26201: virtual ~node() = default; 26201: std::unique_ptr> next; 26201: }; 26201: 26201: template struct typed_node : node<> { 26201: T value; 26201: 26201: template 26201: constexpr typed_node(const Arg& arg) : value(arg) {} 26201: 26201: template 26201: constexpr typed_node(const basic_string_view& arg) 26201: : value(arg.data(), arg.size()) {} 26201: }; 26201: 26201: std::unique_ptr> head_; 26201: 26201: public: 26201: template const T& push(const Arg& arg) { 26201: auto new_node = std::unique_ptr>(new typed_node(arg)); 26201: auto& value = new_node->value; 26201: new_node->next = std::move(head_); 26201: head_ = std::move(new_node); 26201: return value; 26201: } 26201: }; 26201: } 26201: 26201: 26201: template class basic_format_context { 26201: public: 26201: 26201: using char_type = Char; 26201: 26201: private: 26201: OutputIt out_; 26201: basic_format_args args_; 26201: detail::locale_ref loc_; 26201: 26201: public: 26201: using iterator = OutputIt; 26201: using format_arg = basic_format_arg; 26201: using parse_context_type = basic_format_parse_context; 26201: template using formatter_type = formatter; 26201: 26201: basic_format_context(const basic_format_context&) = delete; 26201: void operator=(const basic_format_context&) = delete; 26201: 26201: 26201: 26201: 26201: basic_format_context(OutputIt out, 26201: basic_format_args ctx_args, 26201: detail::locale_ref loc = detail::locale_ref()) 26201: : out_(out), args_(ctx_args), loc_(loc) {} 26201: 26201: format_arg arg(int id) const { return args_.get(id); } 26201: format_arg arg(basic_string_view name) { return args_.get(name); } 26201: int arg_id(basic_string_view name) { return args_.get_id(name); } 26201: const basic_format_args& args() const { return args_; } 26201: 26201: detail::error_handler error_handler() { return {}; } 26201: void on_error(const char* message) { error_handler().on_error(message); } 26201: 26201: 26201: iterator out() { return out_; } 26201: 26201: 26201: void advance_to(iterator it) { 26201: if (!detail::is_back_insert_iterator()) out_ = it; 26201: } 26201: 26201: detail::locale_ref locale() { return loc_; } 26201: }; 26201: 26201: template 26201: using buffer_context = 26201: basic_format_context, Char>; 26201: using format_context = buffer_context; 26201: using wformat_context = buffer_context; 26201: 26201: 26201: #define FMT_BUFFER_CONTEXT(Char) basic_format_context, Char> 26201: # 1557 "/usr/include/fmt/core.h" 3 4 26201: template 26201: class format_arg_store 26201: 26201: 26201: 26201: 26201: { 26201: private: 26201: static const size_t num_args = sizeof...(Args); 26201: static const size_t num_named_args = detail::count_named_args(); 26201: static const bool is_packed = num_args <= detail::max_packed_args; 26201: 26201: using value_type = conditional_t, 26201: basic_format_arg>; 26201: 26201: detail::arg_data 26201: data_; 26201: 26201: friend class basic_format_args; 26201: 26201: static constexpr unsigned long long desc = 26201: (is_packed ? detail::encode_types() 26201: : detail::is_unpacked_bit | num_args) | 26201: (num_named_args != 0 26201: ? static_cast(detail::has_named_args_bit) 26201: : 0); 26201: 26201: public: 26201: format_arg_store(const Args&... args) 26201: : 26201: 26201: 26201: 26201: data_{detail::make_arg< 26201: is_packed, Context, 26201: detail::mapped_type_constant::value>(args)...} { 26201: detail::init_named_args(data_.named_args(), 0, 0, args...); 26201: } 26201: }; 26201: # 1606 "/usr/include/fmt/core.h" 3 4 26201: template 26201: inline format_arg_store make_format_args( 26201: const Args&... args) { 26201: return {args...}; 26201: } 26201: # 1620 "/usr/include/fmt/core.h" 3 4 26201: template > 26201: inline auto make_args_checked(const S& format_str, 26201: const remove_reference_t&... args) 26201: -> format_arg_store, remove_reference_t...> { 26201: static_assert( 26201: detail::count<( 26201: std::is_base_of>::value && 26201: std::is_reference::value)...>() == 0, 26201: "passing views as lvalues is disallowed"); 26201: detail::check_format_string(format_str); 26201: return {args...}; 26201: } 26201: # 1643 "/usr/include/fmt/core.h" 3 4 26201: template 26201: inline detail::named_arg arg(const Char* name, const T& arg) { 26201: static_assert(!detail::is_named_arg(), "nested named arguments"); 26201: return {name, arg}; 26201: } 26201: # 1659 "/usr/include/fmt/core.h" 3 4 26201: template 26201: class dynamic_format_arg_store 26201: 26201: 26201: 26201: 26201: { 26201: private: 26201: using char_type = typename Context::char_type; 26201: 26201: template struct need_copy { 26201: static constexpr detail::type mapped_type = 26201: detail::mapped_type_constant::value; 26201: 26201: enum { 26201: value = !(detail::is_reference_wrapper::value || 26201: std::is_same>::value || 26201: std::is_same>::value || 26201: (mapped_type != detail::type::cstring_type && 26201: mapped_type != detail::type::string_type && 26201: mapped_type != detail::type::custom_type)) 26201: }; 26201: }; 26201: 26201: template 26201: using stored_type = conditional_t::value, 26201: std::basic_string, T>; 26201: 26201: 26201: std::vector> data_; 26201: std::vector> named_info_; 26201: 26201: 26201: 26201: detail::dynamic_arg_list dynamic_args_; 26201: 26201: friend class basic_format_args; 26201: 26201: unsigned long long get_types() const { 26201: return detail::is_unpacked_bit | data_.size() | 26201: (named_info_.empty() 26201: ? 0ULL 26201: : static_cast(detail::has_named_args_bit)); 26201: } 26201: 26201: const basic_format_arg* data() const { 26201: return named_info_.empty() ? data_.data() : data_.data() + 1; 26201: } 26201: 26201: template void emplace_arg(const T& arg) { 26201: data_.emplace_back(detail::make_arg(arg)); 26201: } 26201: 26201: template 26201: void emplace_arg(const detail::named_arg& arg) { 26201: if (named_info_.empty()) { 26201: constexpr const detail::named_arg_info* zero_ptr{nullptr}; 26201: data_.insert(data_.begin(), {zero_ptr, 0}); 26201: } 26201: data_.emplace_back(detail::make_arg(detail::unwrap(arg.value))); 26201: auto pop_one = [](std::vector>* data) { 26201: data->pop_back(); 26201: }; 26201: std::unique_ptr>, decltype(pop_one)> 26201: guard{&data_, pop_one}; 26201: named_info_.push_back({arg.name, static_cast(data_.size() - 2u)}); 26201: data_[0].value_.named_args = {named_info_.data(), named_info_.size()}; 26201: guard.release(); 26201: } 26201: 26201: public: 26201: # 1747 "/usr/include/fmt/core.h" 3 4 26201: template void push_back(const T& arg) { 26201: if (detail::const_check(need_copy::value)) 26201: emplace_arg(dynamic_args_.push>(arg)); 26201: else 26201: emplace_arg(detail::unwrap(arg)); 26201: } 26201: # 1776 "/usr/include/fmt/core.h" 3 4 26201: template void push_back(std::reference_wrapper arg) { 26201: static_assert( 26201: detail::is_named_arg::type>::value || 26201: need_copy::value, 26201: "objects of built-in types and string views are always copied"); 26201: emplace_arg(arg.get()); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: void push_back(const detail::named_arg& arg) { 26201: const char_type* arg_name = 26201: dynamic_args_.push>(arg.name).c_str(); 26201: if (detail::const_check(need_copy::value)) { 26201: emplace_arg( 26201: fmt::arg(arg_name, dynamic_args_.push>(arg.value))); 26201: } else { 26201: emplace_arg(fmt::arg(arg_name, arg.value)); 26201: } 26201: } 26201: 26201: 26201: void clear() { 26201: data_.clear(); 26201: named_info_.clear(); 26201: dynamic_args_ = detail::dynamic_arg_list(); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: void reserve(size_t new_cap, size_t new_cap_named) { 26201: ((new_cap >= new_cap_named) ? (void)0 : ::fmt::detail::assert_fail("/usr/include/fmt/core.h", 1815, ("Set of arguments includes set of named arguments"))) 26201: ; 26201: data_.reserve(new_cap); 26201: named_info_.reserve(new_cap_named); 26201: } 26201: }; 26201: # 1832 "/usr/include/fmt/core.h" 3 4 26201: template class basic_format_args { 26201: public: 26201: using size_type = int; 26201: using format_arg = basic_format_arg; 26201: 26201: private: 26201: 26201: 26201: 26201: 26201: unsigned long long desc_; 26201: union { 26201: 26201: 26201: 26201: 26201: 26201: const detail::value* values_; 26201: const format_arg* args_; 26201: }; 26201: 26201: bool is_packed() const { return (desc_ & detail::is_unpacked_bit) == 0; } 26201: bool has_named_args() const { 26201: return (desc_ & detail::has_named_args_bit) != 0; 26201: } 26201: 26201: detail::type type(int index) const { 26201: int shift = index * detail::packed_arg_bits; 26201: unsigned int mask = (1 << detail::packed_arg_bits) - 1; 26201: return static_cast((desc_ >> shift) & mask); 26201: } 26201: 26201: basic_format_args(unsigned long long desc, 26201: const detail::value* values) 26201: : desc_(desc), values_(values) {} 26201: basic_format_args(unsigned long long desc, const format_arg* args) 26201: : desc_(desc), args_(args) {} 26201: 26201: public: 26201: basic_format_args() : desc_(0) {} 26201: 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline __attribute__((always_inline)) basic_format_args(const format_arg_store& store) 26201: : basic_format_args(store.desc, store.data_.args()) {} 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: inline __attribute__((always_inline)) basic_format_args(const dynamic_format_arg_store& store) 26201: : basic_format_args(store.get_types(), store.data()) {} 26201: 26201: 26201: 26201: 26201: 26201: 26201: basic_format_args(const format_arg* args, int count) 26201: : basic_format_args(detail::is_unpacked_bit | detail::to_unsigned(count), 26201: args) {} 26201: 26201: 26201: format_arg get(int id) const { 26201: format_arg arg; 26201: if (!is_packed()) { 26201: if (id < max_size()) arg = args_[id]; 26201: return arg; 26201: } 26201: if (id >= detail::max_packed_args) return arg; 26201: arg.type_ = type(id); 26201: if (arg.type_ == detail::type::none_type) return arg; 26201: arg.value_ = values_[id]; 26201: return arg; 26201: } 26201: 26201: template format_arg get(basic_string_view name) const { 26201: int id = get_id(name); 26201: return id >= 0 ? get(id) : format_arg(); 26201: } 26201: 26201: template int get_id(basic_string_view name) const { 26201: if (!has_named_args()) return -1; 26201: const auto& named_args = 26201: (is_packed() ? values_[-1] : args_[-1].value_).named_args; 26201: for (size_t i = 0; i < named_args.size; ++i) { 26201: if (named_args.data[i].name == name) return named_args.data[i].id; 26201: } 26201: return -1; 26201: } 26201: 26201: int max_size() const { 26201: unsigned long long max_packed = detail::max_packed_args; 26201: return static_cast(is_packed() ? max_packed 26201: : desc_ & ~detail::is_unpacked_bit); 26201: } 26201: }; 26201: # 1945 "/usr/include/fmt/core.h" 3 4 26201: struct format_args : basic_format_args { 26201: template 26201: inline __attribute__((always_inline)) format_args(const Args&... args) : basic_format_args(args...) {} 26201: }; 26201: struct wformat_args : basic_format_args { 26201: using basic_format_args::basic_format_args; 26201: }; 26201: 26201: 26201: namespace detail { 26201: 26201: template ::value), int> = 0> 26201: std::basic_string vformat( 26201: basic_string_view format_str, 26201: basic_format_args>> args); 26201: 26201: std::string vformat(string_view format_str, format_args args); 26201: 26201: template 26201: void vformat_to( 26201: buffer& buf, basic_string_view format_str, 26201: basic_format_args >, type_identity_t > > args, 26201: detail::locale_ref loc = {}); 26201: 26201: template ::value), int> = 0> 26201: inline void vprint_mojibake(std::FILE*, basic_string_view, const Args&) {} 26201: 26201: void vprint_mojibake(std::FILE*, string_view, format_args); 26201: 26201: inline void vprint_mojibake(std::FILE*, string_view, format_args) {} 26201: 26201: } 26201: 26201: 26201: 26201: 26201: template , 26201: bool enable = detail::is_output_iterator::value> 26201: auto vformat_to(OutputIt out, const S& format_str, 26201: basic_format_args>> args) 26201: -> typename std::enable_if::type { 26201: decltype(detail::get_buffer(out)) buf(detail::get_buffer_init(out)); 26201: detail::vformat_to(buf, to_string_view(format_str), args); 26201: return detail::get_iterator(buf); 26201: } 26201: # 2004 "/usr/include/fmt/core.h" 3 4 26201: template >::value> 26201: inline auto format_to(OutputIt out, const S& format_str, Args&&... args) -> 26201: typename std::enable_if::type { 26201: const auto& vargs = fmt::make_args_checked(format_str, args...); 26201: return vformat_to(out, to_string_view(format_str), vargs); 26201: } 26201: 26201: template struct format_to_n_result { 26201: 26201: OutputIt out; 26201: 26201: size_t size; 26201: }; 26201: 26201: template ::value), int> = 0> 26201: inline format_to_n_result vformat_to_n( 26201: OutputIt out, size_t n, basic_string_view format_str, 26201: basic_format_args>> args) { 26201: detail::iterator_buffer buf(out, 26201: n); 26201: detail::vformat_to(buf, format_str, args); 26201: return {buf.out(), buf.count()}; 26201: } 26201: # 2037 "/usr/include/fmt/core.h" 3 4 26201: template >::value> 26201: inline auto format_to_n(OutputIt out, size_t n, const S& format_str, 26201: const Args&... args) -> 26201: typename std::enable_if>::type { 26201: const auto& vargs = fmt::make_args_checked(format_str, args...); 26201: return vformat_to_n(out, n, to_string_view(format_str), vargs); 26201: } 26201: 26201: 26201: 26201: 26201: 26201: template 26201: inline size_t formatted_size(string_view format_str, Args&&... args) { 26201: const auto& vargs = fmt::make_args_checked(format_str, args...); 26201: detail::counting_buffer<> buf; 26201: detail::vformat_to(buf, format_str, vargs); 26201: return buf.count(); 26201: } 26201: 26201: template > 26201: inline __attribute__((always_inline)) std::basic_string vformat( 26201: const S& format_str, 26201: basic_format_args>> args) { 26201: return detail::vformat(to_string_view(format_str), args); 26201: } 26201: # 2077 "/usr/include/fmt/core.h" 3 4 26201: template > 26201: inline __attribute__((always_inline)) std::basic_string format(const S& format_str, Args&&... args) { 26201: const auto& vargs = fmt::make_args_checked(format_str, args...); 26201: return detail::vformat(to_string_view(format_str), vargs); 26201: } 26201: 26201: void vprint(string_view, format_args); 26201: void vprint(std::FILE*, string_view, format_args); 26201: # 2097 "/usr/include/fmt/core.h" 3 4 26201: template > 26201: inline void print(std::FILE* f, const S& format_str, Args&&... args) { 26201: const auto& vargs = fmt::make_args_checked(format_str, args...); 26201: return detail::is_unicode() 26201: ? vprint(f, to_string_view(format_str), vargs) 26201: : detail::vprint_mojibake(f, to_string_view(format_str), vargs); 26201: } 26201: # 2116 "/usr/include/fmt/core.h" 3 4 26201: template > 26201: inline void print(const S& format_str, Args&&... args) { 26201: const auto& vargs = fmt::make_args_checked(format_str, args...); 26201: return detail::is_unicode() 26201: ? vprint(to_string_view(format_str), vargs) 26201: : detail::vprint_mojibake(stdout, to_string_view(format_str), 26201: vargs); 26201: } 26201: } } 26201: # 45 "/usr/include/fmt/format.h" 2 3 4 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define FMT_ICC_VERSION 0 26201: 26201: 26201: 26201: 26201: 26201: #define FMT_CUDA_VERSION 0 26201: 26201: 26201: 26201: #define FMT_HAS_BUILTIN(x) __has_builtin(x) 26201: 26201: 26201: 26201: 26201: 26201: #define FMT_NOINLINE __attribute__((noinline)) 26201: # 85 "/usr/include/fmt/format.h" 3 4 26201: #define FMT_FALLTHROUGH [[fallthrough]] 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define FMT_MAYBE_UNUSED [[maybe_unused]] 26201: # 113 "/usr/include/fmt/format.h" 3 4 26201: #define FMT_THROW(x) throw x 26201: # 125 "/usr/include/fmt/format.h" 3 4 26201: #define FMT_TRY try 26201: #define FMT_CATCH(x) catch (x) 26201: # 153 "/usr/include/fmt/format.h" 3 4 26201: #define FMT_USE_UDL_TEMPLATE 0 26201: 26201: 26201: 26201: 26201: #define FMT_USE_FLOAT 1 26201: 26201: 26201: 26201: #define FMT_USE_DOUBLE 1 26201: 26201: 26201: 26201: #define FMT_USE_LONG_DOUBLE 1 26201: 26201: 26201: 26201: 26201: 26201: 26201: 26201: #define FMT_REDUCE_INT_INSTANTIATIONS 0 26201: 26201: 26201: 26201: 26201: 26201: #define FMT_BUILTIN_CLZ(n) __builtin_clz(n) 26201: 26201: 26201: #define FMT_BUILTIN_CLZLL(n) __builtin_clzll(n) 26201: 26201: 26201: #define FMT_BUILTIN_CTZ(n) __builtin_ctz(n) 26201: 26201: 26201: #define FMT_BUILTIN_CTZLL(n) __builtin_ctzll(n) 26201: # 272 "/usr/include/fmt/format.h" 3 4 26201: #define FMT_DEPRECATED_NUMERIC_ALIGN 0 26201: 26201: 26201: namespace fmt { inline namespace v7 { 26201: namespace detail { 26201: 26201: 26201: 26201: 26201: template 26201: inline Dest bit_cast(const Source& source) { 26201: static_assert(sizeof(Dest) == sizeof(Source), "size mismatch"); 26201: Dest dest; 26201: std::memcpy(&dest, &source, sizeof(dest)); 26201: return dest; 26201: } 26201: 26201: inline bool is_big_endian() { 26201: const auto u = 1u; 26201: struct bytes { 26201: char data[sizeof(u)]; 26201: }; 26201: return bit_cast(u).data[0] == 0; 26201: } 26201: 26201: 26201: struct fallback_uintptr { 26201: unsigned char value[sizeof(void*)]; 26201: 26201: fallback_uintptr() = default; 26201: explicit fallback_uintptr(const void* p) { 26201: *this = bit_cast(p); 26201: if (is_big_endian()) { 26201: for (size_t i = 0, j = sizeof(void*) - 1; i < j; ++i, --j) 26201: std::swap(value[i], value[j]); 26201: } 26201: } 26201: }; 26201: 26201: using uintptr_t = ::uintptr_t; 26201: inline uintptr_t to_uintptr(const void* p) { return bit_cast(p); } 26201: # 322 "/usr/include/fmt/format.h" 3 4 26201: template constexpr T max_value() { 26201: return (std::numeric_limits::max)(); 26201: } 26201: template constexpr int num_bits() { 26201: return std::numeric_limits::digits; 26201: } 26201: 26201: template <> constexpr int num_bits() { return 128; } 26201: template <> constexpr int num_bits() { return 128; } 26201: template <> constexpr int num_bits() { 26201: return static_cast(sizeof(void*) * 26201: std::numeric_limits::digits); 26201: } 26201: 26201: inline __attribute__((always_inline)) void assume(bool condition) { 26201: (void)condition; 26201: 26201: 26201: 26201: } 26201: 26201: 26201: template 26201: using iterator_t = decltype(std::begin(std::declval())); 26201: template using sentinel_t = decltype(std::end(std::declval())); 26201: 26201: 26201: template inline Char* get_data(std::basic_string& s) { 26201: return &s[0]; 26201: } 26201: template 26201: inline typename Container::value_type* get_data(Container& c) { 26201: return c.data(); 26201: } 26201: # 364 "/usr/include/fmt/format.h" 3 4 26201: template using checked_ptr = T*; 26201: template inline T* make_checked(T* p, size_t) { return p; } 26201: 26201: 26201: template ::value), int> = 0> 26201: 26201: 26201: 26201: inline checked_ptr 26201: reserve(std::back_insert_iterator it, size_t n) { 26201: Container& c = get_container(it); 26201: size_t size = c.size(); 26201: c.resize(size + n); 26201: return make_checked(get_data(c) + size, n); 26201: } 26201: 26201: template 26201: inline buffer_appender reserve(buffer_appender it, size_t n) { 26201: buffer& buf = get_container(it); 26201: buf.try_reserve(buf.size() + n); 26201: return it; 26201: } 26201: 26201: template inline Iterator& reserve(Iterator& it, size_t) { 26201: return it; 26201: } 26201: 26201: template 26201: constexpr T* to_pointer(OutputIt, size_t) { 26201: return nullptr; 26201: } 26201: template T* to_pointer(buffer_appender it, size_t n) { 26201: buffer& buf = get_container(it); 26201: auto size = buf.size(); 26201: if (buf.capacity() < size + n) return nullptr; 26201: buf.try_resize(size + n); 26201: return buf.data() + size; 26201: } 26201: 26201: template ::value), int> = 0> 26201: inline std::back_insert_iterator base_iterator( 26201: std::back_insert_iterator& it, 26201: checked_ptr) { 26201: return it; 26201: } 26201: 26201: template 26201: inline Iterator base_iterator(Iterator, Iterator it) { 26201: return it; 26201: } 26201: 26201: 26201: 26201: class counting_iterator { 26201: private: 26201: size_t count_; 26201: 26201: public: 26201: using iterator_category = std::output_iterator_tag; 26201: using difference_type = std::ptrdiff_t; 26201: using pointer = void; 26201: using reference = void; 26201: using _Unchecked_type = counting_iterator; 26201: 26201: struct value_type { 26201: template void operator=(const T&) {} 26201: }; 26201: 26201: counting_iterator() : count_(0) {} 26201: 26201: size_t count() const { return count_; } 26201: 26201: counting_iterator& operator++() { 26201: ++count_; 26201: return *this; 26201: } 26201: counting_iterator operator++(int) { 26201: auto it = *this; 26201: ++*this; 26201: return it; 26201: } 26201: 26201: friend counting_iterator operator+(counting_iterator it, difference_type n) { 26201: it.count_ += static_cast(n); 26201: return it; 26201: } 26201: 26201: value_type operator*() const { return {}; } 26201: }; 26201: 26201: template class truncating_iterator_base { 26201: protected: 26201: OutputIt out_; 26201: size_t limit_; 26201: size_t count_; 26201: 26201: truncating_iterator_base(OutputIt out, size_t limit) 26201: : out_(out), limit_(limit), count_(0) {} 26201: 26201: public: 26201: using iterator_category = std::output_iterator_tag; 26201: using value_type = typename std::iterator_traits::value_type; 26201: using difference_type = void; 26201: using pointer = void; 26201: using reference = void; 26201: using _Unchecked_type = 26201: truncating_iterator_base; 26201: 26201: OutputIt base() const { return out_; } 26201: size_t count() const { return count_; } 26201: }; 26201: 26201: 26201: 26201: template ::value_type>::type> 26201: class truncating_iterator; 26201: 26201: template 26201: class truncating_iterator 26201: : public truncating_iterator_base { 26201: mutable typename truncating_iterator_base::value_type blackhole_; 26201: 26201: public: 26201: using value_type = typename truncating_iterator_base::value_type; 26201: 26201: truncating_iterator(OutputIt out, size_t limit) 26201: : truncating_iterator_base(out, limit) {} 26201: 26201: truncating_iterator& operator++() { 26201: if (this->count_++ < this->limit_) ++this->out_; 26201: return *this; 26201: } 26201: 26201: truncating_iterator operator++(int) { 26201: auto it = *this; 26201: ++*this; 26201: return it; 26201: } 26201: 26201: value_type& operator*() const { 26201: return this->count_ < this->limit_ ? *this->out_ : blackhole_; 26201: } 26201: }; 26201: 26201: template 26201: class truncating_iterator 26201: : public truncating_iterator_base { 26201: public: 26201: truncating_iterator(OutputIt out, size_t limit) 26201: : truncating_iterator_base(out, limit) {} 26201: 26201: template truncating_iterator& operator=(T val) { 26201: if (this->count_++ < this->limit_) *this->out_++ = val; 26201: return *this; 26201: } 26201: 26201: truncating_iterator& operator++() { return *this; } 26201: truncating_iterator& operator++(int) { return *this; } 26201: truncating_iterator& operator*() { return *this; } 26201: }; 26201: 26201: template 26201: inline size_t count_code_points(basic_string_view s) { 26201: return s.size(); 26201: } 26201: 26201: 26201: inline size_t count_code_points(basic_string_view s) { 26201: const char* data = s.data(); 26201: size_t num_code_points = 0; 26201: for (size_t i = 0, size = s.size(); i != size; ++i) { 26201: if ((data[i] & 0xc0) != 0x80) ++num_code_points; 26201: } 26201: return num_code_points; 26201: } 26201: 26201: inline size_t count_code_points(basic_string_view s) { 26201: return count_code_points(basic_string_view( 26201: reinterpret_cast(s.data()), s.size())); 26201: } 26201: 26201: template 26201: inline size_t code_point_index(basic_string_view s, size_t n) { 26201: size_t size = s.size(); 26201: return n < size ? n : size; 26201: } 26201: 26201: 26201: inline size_t code_point_index(basic_string_view s, size_t n) { 26201: const char8_type* data = s.data(); 26201: size_t num_code_points = 0; 26201: for (size_t i = 0, size = s.size(); i != size; ++i) { 26201: if ((data[i] & 0xc0) != 0x80 && ++num_code_points > n) { 26201: return i; 26201: } 26201: } 26201: return s.size(); 26201: } 26201: 26201: template 26201: using needs_conversion = bool_constant< 26201: std::is_same::value_type, 26201: char>::value && 26201: std::is_same::value>; 26201: 26201: template ::value), int> = 0> 26201: OutputIt copy_str(InputIt begin, InputIt end, OutputIt it) { 26201: return std::copy(begin, end, it); 26201: } 26201: 26201: template ::value), int> = 0> 26201: OutputIt copy_str(InputIt begin, InputIt end, OutputIt it) { 26201: return std::transform(begin, end, it, 26201: [](char c) { return static_cast(c); }); 26201: } 26201: 26201: template 26201: inline counting_iterator copy_str(InputIt begin, InputIt end, 26201: counting_iterator it) { 26201: return it + (end - begin); 26201: } 26201: 26201: template 26201: using is_fast_float = bool_constant::is_iec559 && 26201: sizeof(T) <= sizeof(double)>; 26201: 26201: 26201: #define FMT_USE_FULL_CACHE_DRAGONBOX 0 26201: 26201: 26201: template 26201: template 26201: void buffer::append(const U* begin, const U* end) { 26201: do { 26201: auto count = to_unsigned(end - begin); 26201: try_reserve(size_ + count); 26201: auto free_cap = capacity_ - size_; 26201: if (free_cap < count) count = free_cap; 26201: std::uninitialized_copy_n(begin, count, make_checked(ptr_ + size_, count)); 26201: size_ += count; 26201: begin += count; 26201: } while (begin != end); 26201: } 26201: 26201: template 26201: void iterator_buffer::flush() { 26201: out_ = std::copy_n(data_, this->limit(this->size()), out_); 26201: this->clear(); 26201: } 26201: } 26201: 26201: 26201: 26201: enum { inline_buffer_size = 500 }; 26201: # 652 "/usr/include/fmt/format.h" 3 4 26201: template > 26201: class basic_memory_buffer final : public detail::buffer { 26201: private: 26201: T store_[SIZE]; 26201: 26201: 26201: Allocator alloc_; 26201: 26201: 26201: void deallocate() { 26201: T* data = this->data(); 26201: if (data != store_) alloc_.deallocate(data, this->capacity()); 26201: } 26201: 26201: protected: 26201: void grow(size_t size) final override; 26201: 26201: public: 26201: using value_type = T; 26201: using const_reference = const T&; 26201: 26201: explicit basic_memory_buffer(const Allocator& alloc = Allocator()) 26201: : alloc_(alloc) { 26201: this->set(store_, SIZE); 26201: } 26201: ~basic_memory_buffer() { deallocate(); } 26201: 26201: private: 26201: 26201: void move(basic_memory_buffer& other) { 26201: alloc_ = std::move(other.alloc_); 26201: T* data = other.data(); 26201: size_t size = other.size(), capacity = other.capacity(); 26201: if (data == other.store_) { 26201: this->set(store_, capacity); 26201: std::uninitialized_copy(other.store_, other.store_ + size, 26201: detail::make_checked(store_, capacity)); 26201: } else { 26201: this->set(data, capacity); 26201: 26201: 26201: other.set(other.store_, 0); 26201: } 26201: this->resize(size); 26201: } 26201: 26201: public: 26201: 26201: 26201: 26201: 26201: 26201: 26201: basic_memory_buffer(basic_memory_buffer&& other) noexcept { move(other); } 26201: 26201: 26201: 26201: 26201: 26201: 26201: basic_memory_buffer& operator=(basic_memory_buffer&& other) noexcept { 26201: ((this != &other) ? (void)0 : ::fmt::detail::assert_fail("/usr/include/fmt/format.h", 714, (""))); 26201: deallocate(); 26201: move(other); 26201: return *this; 26201: } 26201: 26201: 26201: Allocator get_allocator() const { return alloc_; } 26201: 26201: 26201: 26201: 26201: 26201: void resize(size_t count) { this->try_resize(count); } 26201: 26201: 26201: void reserve(size_t new_capacity) { this->try_reserve(new_capacity); } 26201: 26201: 26201: using detail::buffer::append; 26201: template 26201: void append(const ContiguousRange& range) { 26201: append(range.data(), range.data() + range.size()); 26201: } 26201: }; 26201: 26201: template 26201: void basic_memory_buffer::grow(size_t size) { 26201: 26201: 26201: 26201: size_t old_capacity = this->capacity(); 26201: size_t new_capacity = old_capacity + old_capacity / 2; 26201: if (size > new_capacity) new_capacity = size; 26201: T* old_data = this->data(); 26201: T* new_data = 26201: std::allocator_traits::allocate(alloc_, new_capacity); 26201: 26201: std::uninitialized_copy(old_data, old_data + this->size(), 26201: detail::make_checked(new_data, new_capacity)); 26201: this->set(new_data, new_capacity); 26201: 26201: 26201: 26201: if (old_data != store_) alloc_.deallocate(old_data, old_capacity); 26201: } 26201: 26201: using memory_buffer = basic_memory_buffer; 26201: using wmemory_buffer = basic_memory_buffer; 26201: 26201: template 26201: struct is_contiguous> : std::true_type { 26201: }; 26201: 26201: 26201: 26201: class format_error : public std::runtime_error { 26201: public: 26201: explicit format_error(const char* message) : std::runtime_error(message) {} 26201: explicit format_error(const std::string& message) 26201: : std::runtime_error(message) {} 26201: format_error(const format_error&) = default; 26201: format_error& operator=(const format_error&) = default; 26201: format_error(format_error&&) = default; 26201: format_error& operator=(format_error&&) = default; 26201: ~format_error() noexcept override; 26201: }; 26201: 26201: namespace detail { 26201: 26201: template 26201: using is_signed = 26201: std::integral_constant::is_signed || 26201: std::is_same::value>; 26201: 26201: 26201: 26201: template ::value), int> = 0> 26201: constexpr bool is_negative(T value) { 26201: return value < 0; 26201: } 26201: template ::value), int> = 0> 26201: constexpr bool is_negative(T) { 26201: return false; 26201: } 26201: 26201: template ::value), int> = 0> 26201: constexpr bool is_supported_floating_point(T) { 26201: return (std::is_same::value && 1) || 26201: (std::is_same::value && 1) || 26201: (std::is_same::value && 1); 26201: } 26201: 26201: 26201: 26201: template 26201: using uint32_or_64_or_128_t = 26201: conditional_t() <= 32 && !0, 26201: uint32_t, 26201: conditional_t() <= 64, uint64_t, uint128_t>>; 26201: 26201: 26201: struct uint128_wrapper { 26201: uint128_wrapper() = default; 26201: 26201: 26201: uint128_t internal_; 26201: 26201: uint128_wrapper(uint64_t high, uint64_t low) noexcept 26201: : internal_{static_cast(low) | 26201: (static_cast(high) << 64)} {} 26201: 26201: uint128_wrapper(uint128_t u) : internal_{u} {} 26201: 26201: uint64_t high() const noexcept { return uint64_t(internal_ >> 64); } 26201: uint64_t low() const noexcept { return uint64_t(internal_); } 26201: 26201: uint128_wrapper& operator+=(uint64_t n) noexcept { 26201: internal_ += n; 26201: return *this; 26201: } 26201: # 858 "/usr/include/fmt/format.h" 3 4 26201: }; 26201: 26201: 26201: template struct divtest_table_entry { 26201: T mod_inv; 26201: T max_quotient; 26201: }; 26201: 26201: 26201: template struct basic_data { 26201: static const uint64_t powers_of_10_64[]; 26201: static const uint32_t zero_or_powers_of_10_32_new[]; 26201: static const uint64_t zero_or_powers_of_10_64_new[]; 26201: static const uint64_t grisu_pow10_significands[]; 26201: static const int16_t grisu_pow10_exponents[]; 26201: static const divtest_table_entry divtest_table_for_pow5_32[]; 26201: static const divtest_table_entry divtest_table_for_pow5_64[]; 26201: static const uint64_t dragonbox_pow10_significands_64[]; 26201: static const uint128_wrapper dragonbox_pow10_significands_128[]; 26201: 26201: static const uint64_t log10_2_significand = 0x4d104d427de7fbcc; 26201: 26201: static const uint64_t powers_of_5_64[]; 26201: static const uint32_t dragonbox_pow10_recovery_errors[]; 26201: 26201: 26201: using digit_pair = char[2]; 26201: static const digit_pair digits[]; 26201: static const char hex_digits[]; 26201: static const char foreground_color[]; 26201: static const char background_color[]; 26201: static const char reset_color[5]; 26201: static const wchar_t wreset_color[5]; 26201: static const char signs[]; 26201: static const char left_padding_shifts[5]; 26201: static const char right_padding_shifts[5]; 26201: 26201: 26201: static const uint32_t zero_or_powers_of_10_32[]; 26201: static const uint64_t zero_or_powers_of_10_64[]; 26201: }; 26201: 26201: 26201: 26201: inline __attribute__((always_inline)) uint16_t bsr2log10(int bsr) { 26201: static constexpr uint16_t data[] = { 26201: 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 26201: 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 26201: 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 15, 15, 26201: 15, 16, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 19, 20}; 26201: return data[bsr]; 26201: } 26201: 26201: 26201: extern template struct basic_data; 26201: 26201: 26201: 26201: struct data : basic_data<> {}; 26201: 26201: 26201: 26201: 26201: inline int count_digits(uint64_t n) { 26201: 26201: auto t = bsr2log10(__builtin_clzll(n | 1) ^ 63); 26201: return t - (n < data::zero_or_powers_of_10_64_new[t]); 26201: } 26201: # 945 "/usr/include/fmt/format.h" 3 4 26201: inline int count_digits(uint128_t n) { 26201: int count = 1; 26201: for (;;) { 26201: 26201: 26201: 26201: if (n < 10) return count; 26201: if (n < 100) return count + 1; 26201: if (n < 1000) return count + 2; 26201: if (n < 10000) return count + 3; 26201: n /= 10000U; 26201: count += 4; 26201: } 26201: } 26201: 26201: 26201: 26201: template inline int count_digits(UInt n) { 26201: int num_digits = 0; 26201: do { 26201: ++num_digits; 26201: } while ((n >>= BITS) != 0); 26201: return num_digits; 26201: } 26201: 26201: template <> int count_digits<4>(detail::fallback_uintptr n); 26201: 26201: 26201: #define FMT_ALWAYS_INLINE inline __attribute__((always_inline)) 26201: # 984 "/usr/include/fmt/format.h" 3 4 26201: #define FMT_SAFEBUFFERS 26201: 26201: 26201: 26201: 26201: inline int count_digits(uint32_t n) { 26201: auto t = bsr2log10(__builtin_clz(n | 1) ^ 31); 26201: return t - (n < data::zero_or_powers_of_10_32_new[t]); 26201: } 26201: 26201: 26201: template constexpr int digits10() noexcept { 26201: return std::numeric_limits::digits10; 26201: } 26201: template <> constexpr int digits10() noexcept { return 38; } 26201: template <> constexpr int digits10() noexcept { return 38; } 26201: 26201: template std::string grouping_impl(locale_ref loc); 26201: template inline std::string grouping(locale_ref loc) { 26201: return grouping_impl(loc); 26201: } 26201: template <> inline std::string grouping(locale_ref loc) { 26201: return grouping_impl(loc); 26201: } 26201: 26201: template Char thousands_sep_impl(locale_ref loc); 26201: template inline Char thousands_sep(locale_ref loc) { 26201: return Char(thousands_sep_impl(loc)); 26201: } 26201: template <> inline wchar_t thousands_sep(locale_ref loc) { 26201: return thousands_sep_impl(loc); 26201: } 26201: 26201: template Char decimal_point_impl(locale_ref loc); 26201: template inline Char decimal_point(locale_ref loc) { 26201: return Char(decimal_point_impl(loc)); 26201: } 26201: template <> inline wchar_t decimal_point(locale_ref loc) { 26201: return decimal_point_impl(loc); 26201: } 26201: 26201: 26201: template bool equal2(const Char* lhs, const char* rhs) { 26201: return lhs[0] == rhs[0] && lhs[1] == rhs[1]; 26201: } 26201: inline bool equal2(const char* lhs, const char* rhs) { 26201: return memcmp(lhs, rhs, 2) == 0; 26201: } 26201: 26201: 26201: template void copy2(Char* dst, const char* src) { 26201: *dst++ = static_cast(*src++); 26201: *dst = static_cast(*src); 26201: } 26201: inline __attribute__((always_inline)) void copy2(char* dst, const char* src) { memcpy(dst, src, 2); } 26201: 26201: template struct format_decimal_result { 26201: Iterator begin; 26201: Iterator end; 26201: }; 26201: 26201: 26201: 26201: 26201: template 26201: inline format_decimal_result format_decimal(Char* out, UInt value, 26201: int size) { 26201: ((size >= count_digits(value)) ? (void)0 : ::fmt::detail::assert_fail("/usr/include/fmt/format.h", 1051, ("invalid digit count"))); 26201: out += size; 26201: Char* end = out; 26201: while (value >= 100) { 26201: 26201: 26201: 26201: out -= 2; 26201: copy2(out, data::digits[value % 100]); 26201: value /= 100; 26201: } 26201: if (value < 10) { 26201: *--out = static_cast('0' + value); 26201: return {out, end}; 26201: } 26201: out -= 2; 26201: copy2(out, data::digits[value]); 26201: return {out, end}; 26201: } 26201: 26201: template >::value), int> = 0> 26201: inline format_decimal_result format_decimal(Iterator out, UInt value, 26201: int size) { 26201: 26201: Char buffer[digits10() + 1]; 26201: auto end = format_decimal(buffer, value, size).end; 26201: return {out, detail::copy_str(buffer, end, out)}; 26201: } 26201: 26201: template 26201: inline Char* format_uint(Char* buffer, UInt value, int num_digits, 26201: bool upper = false) { 26201: buffer += num_digits; 26201: Char* end = buffer; 26201: do { 26201: const char* digits = upper ? "0123456789ABCDEF" : data::hex_digits; 26201: unsigned digit = (value & ((1 << BASE_BITS) - 1)); 26201: *--buffer = static_cast(BASE_BITS < 4 ? static_cast('0' + digit) 26201: : digits[digit]); 26201: } while ((value >>= BASE_BITS) != 0); 26201: return end; 26201: } 26201: 26201: template 26201: Char* format_uint(Char* buffer, detail::fallback_uintptr n, int num_digits, 26201: bool = false) { 26201: auto char_digits = std::numeric_limits::digits / 4; 26201: int start = (num_digits + char_digits - 1) / char_digits - 1; 26201: if (int start_digits = num_digits % char_digits) { 26201: unsigned value = n.value[start--]; 26201: buffer = format_uint(buffer, value, start_digits); 26201: } 26201: for (; start >= 0; --start) { 26201: unsigned value = n.value[start]; 26201: buffer += char_digits; 26201: auto p = buffer; 26201: for (int i = 0; i < char_digits; ++i) { 26201: unsigned digit = (value & ((1 << BASE_BITS) - 1)); 26201: *--p = static_cast(data::hex_digits[digit]); 26201: value >>= BASE_BITS; 26201: } 26201: } 26201: return buffer; 26201: } 26201: 26201: template 26201: inline It format_uint(It out, UInt value, int num_digits, bool upper = false) { 26201: if (auto ptr = to_pointer(out, to_unsigned(num_digits))) { 26201: format_uint(ptr, value, num_digits, upper); 26201: return out; 26201: } 26201: 26201: char buffer[num_bits() / BASE_BITS + 1]; 26201: format_uint(buffer, value, num_digits, upper); 26201: return detail::copy_str(buffer, buffer + num_digits, out); 26201: } 26201: 26201: 26201: class utf8_to_utf16 { 26201: private: 26201: wmemory_buffer buffer_; 26201: 26201: public: 26201: explicit utf8_to_utf16(string_view s); 26201: operator wstring_view() const { return {&buffer_[0], size()}; } 26201: size_t size() const { return buffer_.size() - 1; } 26201: const wchar_t* c_str() const { return &buffer_[0]; } 26201: std::wstring str() const { return {&buffer_[0], size()}; } 26201: }; 26201: 26201: template struct null {}; 26201: 26201: 26201: template struct fill_t { 26201: private: 26201: enum { max_size = 4 }; 26201: Char data_[max_size] = {Char(' '), Char(0), Char(0), Char(0)}; 26201: unsigned char size_ = 1; 26201: 26201: public: 26201: constexpr void operator=(basic_string_view s) { 26201: auto size = s.size(); 26201: if (size > max_size) { 26201: throw format_error("invalid fill"); 26201: return; 26201: } 26201: for (size_t i = 0; i < size; ++i) data_[i] = s[i]; 26201: size_ = static_cast(size); 26201: } 26201: 26201: size_t size() const { return size_; } 26201: const Char* data() const { return data_; } 26201: 26201: constexpr Char& operator[](size_t index) { return data_[index]; } 26201: constexpr const Char& operator[](size_t index) const { 26201: return data_[index]; 26201: } 26201: }; 26201: } 26201: 26201: 26201: 26201: namespace align { 26201: enum type { none, left, right, center, numeric }; 26201: } 26201: using align_t = align::type; 26201: 26201: namespace sign { 26201: enum type { none, minus, plus, space }; 26201: } 26201: using sign_t = sign::type; 26201: 26201: 26201: template struct basic_format_specs { 26201: int width; 26201: int precision; 26201: char type; 26201: align_t align : 4; 26201: sign_t sign : 3; 26201: bool alt : 1; 26201: detail::fill_t fill; 26201: 26201: constexpr basic_format_specs() 26201: : width(0), 26201: precision(-1), 26201: type(0), 26201: align(align::none), 26201: sign(sign::none), 26201: alt(false) {} 26201: }; 26201: 26201: using format_specs = basic_format_specs; 26201: 26201: namespace detail { 26201: namespace dragonbox { 26201: 26201: 26201: template struct float_info; 26201: 26201: template <> struct float_info { 26201: using carrier_uint = uint32_t; 26201: static const int significand_bits = 23; 26201: static const int exponent_bits = 8; 26201: static const int min_exponent = -126; 26201: static const int max_exponent = 127; 26201: static const int exponent_bias = -127; 26201: static const int decimal_digits = 9; 26201: static const int kappa = 1; 26201: static const int big_divisor = 100; 26201: static const int small_divisor = 10; 26201: static const int min_k = -31; 26201: static const int max_k = 46; 26201: static const int cache_bits = 64; 26201: static const int divisibility_check_by_5_threshold = 39; 26201: static const int case_fc_pm_half_lower_threshold = -1; 26201: static const int case_fc_pm_half_upper_threshold = 6; 26201: static const int case_fc_lower_threshold = -2; 26201: static const int case_fc_upper_threshold = 6; 26201: static const int case_shorter_interval_left_endpoint_lower_threshold = 2; 26201: static const int case_shorter_interval_left_endpoint_upper_threshold = 3; 26201: static const int shorter_interval_tie_lower_threshold = -35; 26201: static const int shorter_interval_tie_upper_threshold = -35; 26201: static const int max_trailing_zeros = 7; 26201: }; 26201: 26201: template <> struct float_info { 26201: using carrier_uint = uint64_t; 26201: static const int significand_bits = 52; 26201: static const int exponent_bits = 11; 26201: static const int min_exponent = -1022; 26201: static const int max_exponent = 1023; 26201: static const int exponent_bias = -1023; 26201: static const int decimal_digits = 17; 26201: static const int kappa = 2; 26201: static const int big_divisor = 1000; 26201: static const int small_divisor = 100; 26201: static const int min_k = -292; 26201: static const int max_k = 326; 26201: static const int cache_bits = 128; 26201: static const int divisibility_check_by_5_threshold = 86; 26201: static const int case_fc_pm_half_lower_threshold = -2; 26201: static const int case_fc_pm_half_upper_threshold = 9; 26201: static const int case_fc_lower_threshold = -4; 26201: static const int case_fc_upper_threshold = 9; 26201: static const int case_shorter_interval_left_endpoint_lower_threshold = 2; 26201: static const int case_shorter_interval_left_endpoint_upper_threshold = 3; 26201: static const int shorter_interval_tie_lower_threshold = -77; 26201: static const int shorter_interval_tie_upper_threshold = -77; 26201: static const int max_trailing_zeros = 16; 26201: }; 26201: 26201: template struct decimal_fp { 26201: using significand_type = typename float_info::carrier_uint; 26201: significand_type significand; 26201: int exponent; 26201: }; 26201: 26201: template decimal_fp to_decimal(T x) noexcept; 26201: } 26201: 26201: template 26201: constexpr typename dragonbox::float_info::carrier_uint exponent_mask() { 26201: using uint = typename dragonbox::float_info::carrier_uint; 26201: return ((uint(1) << dragonbox::float_info::exponent_bits) - 1) 26201: << dragonbox::float_info::significand_bits; 26201: } 26201: 26201: 26201: enum class float_format : unsigned char { 26201: general, 26201: exp, 26201: fixed, 26201: hex 26201: }; 26201: 26201: struct float_specs { 26201: int precision; 26201: float_format format : 8; 26201: sign_t sign : 8; 26201: bool upper : 1; 26201: bool locale : 1; 26201: bool binary32 : 1; 26201: bool use_grisu : 1; 26201: bool showpoint : 1; 26201: }; 26201: 26201: 26201: template It write_exponent(int exp, It it) { 26201: ((-10000 < exp && exp < 10000) ? (void)0 : ::fmt::detail::assert_fail("/usr/include/fmt/format.h", 1300, ("exponent out of range"))); 26201: if (exp < 0) { 26201: *it++ = static_cast('-'); 26201: exp = -exp; 26201: } else { 26201: *it++ = static_cast('+'); 26201: } 26201: if (exp >= 100) { 26201: const char* top = data::digits[exp / 100]; 26201: if (exp >= 1000) *it++ = static_cast(top[0]); 26201: *it++ = static_cast(top[1]); 26201: exp %= 100; 26201: } 26201: const char* d = data::digits[exp]; 26201: *it++ = static_cast(d[0]); 26201: *it++ = static_cast(d[1]); 26201: return it; 26201: } 26201: 26201: template 26201: int format_float(T value, int precision, float_specs specs, buffer& buf); 26201: 26201: 26201: template 26201: int snprintf_float(T value, int precision, float_specs specs, 26201: buffer& buf); 26201: 26201: template T promote_float(T value) { return value; } 26201: inline double promote_float(float value) { return static_cast(value); } 26201: 26201: template 26201: constexpr void handle_int_type_spec(char spec, Handler&& handler) { 26201: switch (spec) { 26201: case 0: 26201: case 'd': 26201: handler.on_dec(); 26201: break; 26201: case 'x': 26201: case 'X': 26201: handler.on_hex(); 26201: break; 26201: case 'b': 26201: case 'B': 26201: handler.on_bin(); 26201: break; 26201: case 'o': 26201: handler.on_oct(); 26201: break; 26201: 26201: 26201: 26201: case 'L': 26201: handler.on_num(); 26201: break; 26201: case 'c': 26201: handler.on_chr(); 26201: break; 26201: default: 26201: handler.on_error(); 26201: } 26201: } 26201: 26201: template 26201: constexpr float_specs parse_float_type_spec( 26201: const basic_format_specs& specs, ErrorHandler&& eh = {}) { 26201: auto result = float_specs(); 26201: result.showpoint = specs.alt; 26201: switch (specs.type) { 26201: case 0: 26201: result.format = float_format::general; 26201: result.showpoint |= specs.precision > 0; 26201: break; 26201: case 'G': 26201: result.upper = true; 26201: [[fallthrough]]; 26201: case 'g': 26201: result.format = float_format::general; 26201: break; 26201: case 'E': 26201: result.upper = true; 26201: [[fallthrough]]; 26201: case 'e': 26201: result.format = float_format::exp; 26201: result.showpoint |= specs.precision != 0; 26201: break; 26201: case 'F': 26201: result.upper = true; 26201: [[fallthrough]]; 26201: case 'f': 26201: result.format = float_format::fixed; 26201: result.showpoint |= specs.precision != 0; 26201: break; 26201: case 'A': 26201: result.upper = true; 26201: [[fallthrough]]; 26201: case 'a': 26201: result.format = float_format::hex; 26201: break; 26201: 26201: 26201: 26201: case 'L': 26201: result.locale = true; 26201: break; 26201: default: 26201: eh.on_error("invalid type specifier"); 26201: break; 26201: } 26201: return result; 26201: } 26201: 26201: template 26201: constexpr void handle_char_specs(const basic_format_specs* specs, 26201: Handler&& handler) { 26201: if (!specs) return handler.on_char(); 26201: if (specs->type && specs->type != 'c') return handler.on_int(); 26201: if (specs->align == align::numeric || specs->sign != sign::none || specs->alt) 26201: handler.on_error("invalid format specifier for char"); 26201: handler.on_char(); 26201: } 26201: 26201: template 26201: constexpr void handle_cstring_type_spec(Char spec, Handler&& handler) { 26201: if (spec == 0 || spec == 's') 26201: handler.on_string(); 26201: else if (spec == 'p') 26201: handler.on_pointer(); 26201: else 26201: handler.on_error("invalid type specifier"); 26201: } 26201: 26201: template 26201: constexpr void check_string_type_spec(Char spec, ErrorHandler&& eh) { 26201: if (spec != 0 && spec != 's') eh.on_error("invalid type specifier"); 26201: } 26201: 26201: template 26201: constexpr void check_pointer_type_spec(Char spec, ErrorHandler&& eh) { 26201: if (spec != 0 && spec != 'p') eh.on_error("invalid type specifier"); 26201: } 26201: 26201: template class int_type_checker : private ErrorHandler { 26201: public: 26201: constexpr explicit int_type_checker(ErrorHandler eh) : ErrorHandler(eh) {} 26201: 26201: constexpr void on_dec() {} 26201: constexpr void on_hex() {} 26201: constexpr void on_bin() {} 26201: constexpr void on_oct() {} 26201: constexpr void on_num() {} 26201: constexpr void on_chr() {} 26201: 26201: constexpr void on_error() { 26201: ErrorHandler::on_error("invalid type specifier"); 26201: } 26201: }; 26201: 26201: template 26201: class char_specs_checker : public ErrorHandler { 26201: private: 26201: char type_; 26201: 26201: public: 26201: constexpr char_specs_checker(char type, ErrorHandler eh) 26201: : ErrorHandler(eh), type_(type) {} 26201: 26201: constexpr void on_int() { 26201: handle_int_type_spec(type_, int_type_checker(*this)); 26201: } 26201: constexpr void on_char() {} 26201: }; 26201: 26201: template 26201: class cstring_type_checker : public ErrorHandler { 26201: public: 26201: constexpr explicit cstring_type_checker(ErrorHandler eh) 26201: : ErrorHandler(eh) {} 26201: 26201: constexpr void on_string() {} 26201: constexpr void on_pointer() {} 26201: }; 26201: 26201: template 26201: __attribute__((noinline)) OutputIt fill(OutputIt it, size_t n, const fill_t& fill) { 26201: auto fill_size = fill.size(); 26201: if (fill_size == 1) return std::fill_n(it, n, fill[0]); 26201: for (size_t i = 0; i < n; ++i) it = std::copy_n(fill.data(), fill_size, it); 26201: return it; 26201: } 26201: 26201: 26201: 26201: 26201: template 26201: inline OutputIt write_padded(OutputIt out, 26201: const basic_format_specs& specs, size_t size, 26201: size_t width, F&& f) { 26201: static_assert(align == align::left || align == align::right, ""); 26201: unsigned spec_width = to_unsigned(specs.width); 26201: size_t padding = spec_width > width ? spec_width - width : 0; 26201: auto* shifts = align == align::left ? data::left_padding_shifts 26201: : data::right_padding_shifts; 26201: size_t left_padding = padding >> shifts[specs.align]; 26201: auto it = reserve(out, size + padding * specs.fill.size()); 26201: it = fill(it, left_padding, specs.fill); 26201: it = f(it); 26201: it = fill(it, padding - left_padding, specs.fill); 26201: return base_iterator(out, it); 26201: } 26201: 26201: template 26201: inline OutputIt write_padded(OutputIt out, 26201: const basic_format_specs& specs, size_t size, 26201: F&& f) { 26201: return write_padded(out, specs, size, size, f); 26201: } 26201: 26201: template 26201: OutputIt write_bytes(OutputIt out, string_view bytes, 26201: const basic_format_specs& specs) { 26201: using iterator = remove_reference_t; 26201: return write_padded(out, specs, bytes.size(), [bytes](iterator it) { 26201: const char* data = bytes.data(); 26201: return copy_str(data, data + bytes.size(), it); 26201: }); 26201: } 26201: 26201: 26201: 26201: template struct write_int_data { 26201: size_t size; 26201: size_t padding; 26201: 26201: write_int_data(int num_digits, string_view prefix, 26201: const basic_format_specs& specs) 26201: : size(prefix.size() + to_unsigned(num_digits)), padding(0) { 26201: if (specs.align == align::numeric) { 26201: auto width = to_unsigned(specs.width); 26201: if (width > size) { 26201: padding = width - size; 26201: size = width; 26201: } 26201: } else if (specs.precision > num_digits) { 26201: size = prefix.size() + to_unsigned(specs.precision); 26201: padding = to_unsigned(specs.precision - num_digits); 26201: } 26201: } 26201: }; 26201: 26201: 26201: 26201: 26201: template 26201: OutputIt write_int(OutputIt out, int num_digits, string_view prefix, 26201: const basic_format_specs& specs, F f) { 26201: auto data = write_int_data(num_digits, prefix, specs); 26201: using iterator = remove_reference_t; 26201: return write_padded(out, specs, data.size, [=](iterator it) { 26201: if (prefix.size() != 0) 26201: it = copy_str(prefix.begin(), prefix.end(), it); 26201: it = std::fill_n(it, data.padding, static_cast('0')); 26201: return f(it); 26201: }); 26201: } 26201: 26201: template 26201: OutputIt write(OutputIt out, basic_string_view s, 26201: const basic_format_specs& specs) { 26201: auto data = s.data(); 26201: auto size = s.size(); 26201: if (specs.precision >= 0 && to_unsigned(specs.precision) < size) 26201: size = code_point_index(s, to_unsigned(specs.precision)); 26201: auto width = specs.width != 0 26201: ? count_code_points(basic_string_view(data, size)) 26201: : 0; 26201: using iterator = remove_reference_t; 26201: return write_padded(out, specs, size, width, [=](iterator it) { 26201: return copy_str(data, data + size, it); 26201: }); 26201: } 26201: 26201: 26201: template struct int_writer { 26201: OutputIt out; 26201: locale_ref locale; 26201: const basic_format_specs& specs; 26201: UInt abs_value; 26201: char prefix[4]; 26201: unsigned prefix_size; 26201: 26201: using iterator = 26201: remove_reference_t(), 0))>; 26201: 26201: string_view get_prefix() const { return string_view(prefix, prefix_size); } 26201: 26201: template 26201: int_writer(OutputIt output, locale_ref loc, Int value, 26201: const basic_format_specs& s) 26201: : out(output), 26201: locale(loc), 26201: specs(s), 26201: abs_value(static_cast(value)), 26201: prefix_size(0) { 26201: static_assert(std::is_same, UInt>::value, ""); 26201: if (is_negative(value)) { 26201: prefix[0] = '-'; 26201: ++prefix_size; 26201: abs_value = 0 - abs_value; 26201: } else if (specs.sign != sign::none && specs.sign != sign::minus) { 26201: prefix[0] = specs.sign == sign::plus ? '+' : ' '; 26201: ++prefix_size; 26201: } 26201: } 26201: 26201: void on_dec() { 26201: auto num_digits = count_digits(abs_value); 26201: out = write_int( 26201: out, num_digits, get_prefix(), specs, [this, num_digits](iterator it) { 26201: return format_decimal(it, abs_value, num_digits).end; 26201: }); 26201: } 26201: 26201: void on_hex() { 26201: if (specs.alt) { 26201: prefix[prefix_size++] = '0'; 26201: prefix[prefix_size++] = specs.type; 26201: } 26201: int num_digits = count_digits<4>(abs_value); 26201: out = write_int(out, num_digits, get_prefix(), specs, 26201: [this, num_digits](iterator it) { 26201: return format_uint<4, Char>(it, abs_value, num_digits, 26201: specs.type != 'x'); 26201: }); 26201: } 26201: 26201: void on_bin() { 26201: if (specs.alt) { 26201: prefix[prefix_size++] = '0'; 26201: prefix[prefix_size++] = static_cast(specs.type); 26201: } 26201: int num_digits = count_digits<1>(abs_value); 26201: out = write_int(out, num_digits, get_prefix(), specs, 26201: [this, num_digits](iterator it) { 26201: return format_uint<1, Char>(it, abs_value, num_digits); 26201: }); 26201: } 26201: 26201: void on_oct() { 26201: int num_digits = count_digits<3>(abs_value); 26201: if (specs.alt && specs.precision <= num_digits && abs_value != 0) { 26201: 26201: 26201: prefix[prefix_size++] = '0'; 26201: } 26201: out = write_int(out, num_digits, get_prefix(), specs, 26201: [this, num_digits](iterator it) { 26201: return format_uint<3, Char>(it, abs_value, num_digits); 26201: }); 26201: } 26201: 26201: enum { sep_size = 1 }; 26201: 26201: void on_num() { 26201: std::string groups = grouping(locale); 26201: if (groups.empty()) return on_dec(); 26201: auto sep = thousands_sep(locale); 26201: if (!sep) return on_dec(); 26201: int num_digits = count_digits(abs_value); 26201: int size = num_digits, n = num_digits; 26201: std::string::const_iterator group = groups.cbegin(); 26201: while (group != groups.cend() && n > *group && *group > 0 && 26201: *group != max_value()) { 26201: size += sep_size; 26201: n -= *group; 26201: ++group; 26201: } 26201: if (group == groups.cend()) size += sep_size * ((n - 1) / groups.back()); 26201: char digits[40]; 26201: format_decimal(digits, abs_value, num_digits); 26201: basic_memory_buffer buffer; 26201: size += static_cast(prefix_size); 26201: const auto usize = to_unsigned(size); 26201: buffer.resize(usize); 26201: basic_string_view s(&sep, sep_size); 26201: 26201: int digit_index = 0; 26201: group = groups.cbegin(); 26201: auto p = buffer.data() + size - 1; 26201: for (int i = num_digits - 1; i > 0; --i) { 26201: *p-- = static_cast(digits[i]); 26201: if (*group <= 0 || ++digit_index % *group != 0 || 26201: *group == max_value()) 26201: continue; 26201: if (group + 1 != groups.cend()) { 26201: digit_index = 0; 26201: ++group; 26201: } 26201: std::uninitialized_copy(s.data(), s.data() + s.size(), 26201: make_checked(p, s.size())); 26201: p -= s.size(); 26201: } 26201: *p-- = static_cast(*digits); 26201: if (prefix_size != 0) *p = static_cast('-'); 26201: auto data = buffer.data(); 26201: out = write_padded( 26201: out, specs, usize, usize, 26201: [=](iterator it) { return copy_str(data, data + size, it); }); 26201: } 26201: 26201: void on_chr() { *out++ = static_cast(abs_value); } 26201: 26201: [[noreturn]] void on_error() { 26201: throw format_error("invalid type specifier"); 26201: } 26201: }; 26201: 26201: template 26201: OutputIt write_nonfinite(OutputIt out, bool isinf, 26201: const basic_format_specs& specs, 26201: const float_specs& fspecs) { 26201: auto str = 26201: isinf ? (fspecs.upper ? "INF" : "inf") : (fspecs.upper ? "NAN" : "nan"); 26201: constexpr size_t str_size = 3; 26201: auto sign = fspecs.sign; 26201: auto size = str_size + (sign ? 1 : 0); 26201: using iterator = remove_reference_t; 26201: return write_padded(out, specs, size, [=](iterator it) { 26201: if (sign) *it++ = static_cast(data::signs[sign]); 26201: return copy_str(str, str + str_size, it); 26201: }); 26201: } 26201: 26201: 26201: struct big_decimal_fp { 26201: const char* significand; 26201: int significand_size; 26201: int exponent; 26201: }; 26201: 26201: inline int get_significand_size(const big_decimal_fp& fp) { 26201: return fp.significand_size; 26201: } 26201: template 26201: inline int get_significand_size(const dragonbox::decimal_fp& fp) { 26201: return count_digits(fp.significand); 26201: } 26201: 26201: template 26201: inline OutputIt write_significand(OutputIt out, const char* significand, 26201: int& significand_size) { 26201: return copy_str(significand, significand + significand_size, out); 26201: } 26201: template 26201: inline OutputIt write_significand(OutputIt out, UInt significand, 26201: int significand_size) { 26201: return format_decimal(out, significand, significand_size).end; 26201: } 26201: 26201: template ::value), int> = 0> 26201: inline Char* write_significand(Char* out, UInt significand, 26201: int significand_size, int integral_size, 26201: Char decimal_point) { 26201: if (!decimal_point) 26201: return format_decimal(out, significand, significand_size).end; 26201: auto end = format_decimal(out + 1, significand, significand_size).end; 26201: if (integral_size == 1) 26201: out[0] = out[1]; 26201: else 26201: std::copy_n(out + 1, integral_size, out); 26201: out[integral_size] = decimal_point; 26201: return end; 26201: } 26201: 26201: template >::value), int> = 0> 26201: inline OutputIt write_significand(OutputIt out, UInt significand, 26201: int significand_size, int integral_size, 26201: Char decimal_point) { 26201: 26201: Char buffer[digits10() + 2]; 26201: auto end = write_significand(buffer, significand, significand_size, 26201: integral_size, decimal_point); 26201: return detail::copy_str(buffer, end, out); 26201: } 26201: 26201: template 26201: inline OutputIt write_significand(OutputIt out, const char* significand, 26201: int significand_size, int integral_size, 26201: Char decimal_point) { 26201: out = detail::copy_str(significand, significand + integral_size, out); 26201: if (!decimal_point) return out; 26201: *out++ = decimal_point; 26201: return detail::copy_str(significand + integral_size, 26201: significand + significand_size, out); 26201: } 26201: 26201: template 26201: OutputIt write_float(OutputIt out, const DecimalFP& fp, 26201: const basic_format_specs& specs, float_specs fspecs, 26201: Char decimal_point) { 26201: auto significand = fp.significand; 26201: int significand_size = get_significand_size(fp); 26201: static const Char zero = static_cast('0'); 26201: auto sign = fspecs.sign; 26201: size_t size = to_unsigned(significand_size) + (sign ? 1 : 0); 26201: using iterator = remove_reference_t; 26201: 26201: int output_exp = fp.exponent + significand_size - 1; 26201: auto use_exp_format = [=]() { 26201: if (fspecs.format == float_format::exp) return true; 26201: if (fspecs.format != float_format::general) return false; 26201: 26201: 26201: const int exp_lower = -4, exp_upper = 16; 26201: return output_exp < exp_lower || 26201: output_exp >= (fspecs.precision > 0 ? fspecs.precision : exp_upper); 26201: }; 26201: if (use_exp_format()) { 26201: int num_zeros = 0; 26201: if (fspecs.showpoint) { 26201: num_zeros = (std::max)(fspecs.precision - significand_size, 0); 26201: size += to_unsigned(num_zeros); 26201: } else if (significand_size == 1) { 26201: decimal_point = Char(); 26201: } 26201: auto abs_output_exp = output_exp >= 0 ? output_exp : -output_exp; 26201: int exp_digits = 2; 26201: if (abs_output_exp >= 100) exp_digits = abs_output_exp >= 1000 ? 4 : 3; 26201: 26201: size += to_unsigned((decimal_point ? 1 : 0) + 2 + exp_digits); 26201: char exp_char = fspecs.upper ? 'E' : 'e'; 26201: auto write = [=](iterator it) { 26201: if (sign) *it++ = static_cast(data::signs[sign]); 26201: 26201: it = write_significand(it, significand, significand_size, 1, 26201: decimal_point); 26201: if (num_zeros > 0) it = std::fill_n(it, num_zeros, zero); 26201: *it++ = static_cast(exp_char); 26201: return write_exponent(output_exp, it); 26201: }; 26201: return specs.width > 0 ? write_padded(out, specs, size, write) 26201: : base_iterator(out, write(reserve(out, size))); 26201: } 26201: 26201: int exp = fp.exponent + significand_size; 26201: if (fp.exponent >= 0) { 26201: 26201: size += to_unsigned(fp.exponent); 26201: int num_zeros = fspecs.precision - exp; 26201: 26201: 26201: 26201: 26201: if (fspecs.showpoint) { 26201: if (num_zeros <= 0 && fspecs.format != float_format::fixed) num_zeros = 1; 26201: if (num_zeros > 0) size += to_unsigned(num_zeros); 26201: } 26201: return write_padded(out, specs, size, [&](iterator it) { 26201: if (sign) *it++ = static_cast(data::signs[sign]); 26201: it = write_significand(it, significand, significand_size); 26201: it = std::fill_n(it, fp.exponent, zero); 26201: if (!fspecs.showpoint) return it; 26201: *it++ = decimal_point; 26201: return num_zeros > 0 ? std::fill_n(it, num_zeros, zero) : it; 26201: }); 26201: } else if (exp > 0) { 26201: 26201: int num_zeros = fspecs.showpoint ? fspecs.precision - significand_size : 0; 26201: size += 1 + to_unsigned(num_zeros > 0 ? num_zeros : 0); 26201: return write_padded(out, specs, size, [&](iterator it) { 26201: if (sign) *it++ = static_cast(data::signs[sign]); 26201: it = write_significand(it, significand, significand_size, exp, 26201: decimal_point); 26201: return num_zeros > 0 ? std::fill_n(it, num_zeros, zero) : it; 26201: }); 26201: } 26201: 26201: int num_zeros = -exp; 26201: if (significand_size == 0 && fspecs.precision >= 0 && 26201: fspecs.precision < num_zeros) { 26201: num_zeros = fspecs.precision; 26201: } 26201: size += 2 + to_unsigned(num_zeros); 26201: return write_padded(out, specs, size, [&](iterator it) { 26201: if (sign) *it++ = static_cast(data::signs[sign]); 26201: *it++ = zero; 26201: if (num_zeros == 0 && significand_size == 0 && !fspecs.showpoint) return it; 26201: *it++ = decimal_point; 26201: it = std::fill_n(it, num_zeros, zero); 26201: return write_significand(it, significand, significand_size); 26201: }); 26201: } 26201: 26201: template ::value), int> = 0> 26201: OutputIt write(OutputIt out, T value, basic_format_specs specs, 26201: locale_ref loc = {}) { 26201: if (const_check(!is_supported_floating_point(value))) return out; 26201: float_specs fspecs = parse_float_type_spec(specs); 26201: fspecs.sign = specs.sign; 26201: if (std::signbit(value)) { 26201: fspecs.sign = sign::minus; 26201: value = -value; 26201: } else if (fspecs.sign == sign::minus) { 26201: fspecs.sign = sign::none; 26201: } 26201: 26201: if (!std::isfinite(value)) 26201: return write_nonfinite(out, std::isinf(value), specs, fspecs); 26201: 26201: if (specs.align == align::numeric && fspecs.sign) { 26201: auto it = reserve(out, 1); 26201: *it++ = static_cast(data::signs[fspecs.sign]); 26201: out = base_iterator(out, it); 26201: fspecs.sign = sign::none; 26201: if (specs.width != 0) --specs.width; 26201: } 26201: 26201: memory_buffer buffer; 26201: if (fspecs.format == float_format::hex) { 26201: if (fspecs.sign) buffer.push_back(data::signs[fspecs.sign]); 26201: snprintf_float(promote_float(value), specs.precision, fspecs, buffer); 26201: return write_bytes(out, {buffer.data(), buffer.size()}, specs); 26201: } 26201: int precision = specs.precision >= 0 || !specs.type ? specs.precision : 6; 26201: if (fspecs.format == float_format::exp) { 26201: if (precision == max_value()) 26201: throw format_error("number is too big"); 26201: else 26201: ++precision; 26201: } 26201: if (const_check(std::is_same())) fspecs.binary32 = true; 26201: fspecs.use_grisu = is_fast_float(); 26201: int exp = format_float(promote_float(value), precision, fspecs, buffer); 26201: fspecs.precision = precision; 26201: Char point = 26201: fspecs.locale ? decimal_point(loc) : static_cast('.'); 26201: auto fp = big_decimal_fp{buffer.data(), static_cast(buffer.size()), exp}; 26201: return write_float(out, fp, specs, fspecs, point); 26201: } 26201: 26201: template ::value), int> = 0> 26201: OutputIt write(OutputIt out, T value) { 26201: if (const_check(!is_supported_floating_point(value))) return out; 26201: 26201: using floaty = conditional_t::value, double, T>; 26201: using uint = typename dragonbox::float_info::carrier_uint; 26201: auto bits = bit_cast(value); 26201: 26201: auto fspecs = float_specs(); 26201: auto sign_bit = bits & (uint(1) << (num_bits() - 1)); 26201: if (sign_bit != 0) { 26201: fspecs.sign = sign::minus; 26201: value = -value; 26201: } 26201: 26201: static const auto specs = basic_format_specs(); 26201: uint mask = exponent_mask(); 26201: if ((bits & mask) == mask) 26201: return write_nonfinite(out, std::isinf(value), specs, fspecs); 26201: 26201: auto dec = dragonbox::to_decimal(static_cast(value)); 26201: return write_float(out, dec, specs, fspecs, static_cast('.')); 26201: } 26201: 26201: template ::value && !is_fast_float::value), int> = 0 26201: > 26201: inline OutputIt write(OutputIt out, T value) { 26201: return write(out, value, basic_format_specs()); 26201: } 26201: 26201: template 26201: OutputIt write_char(OutputIt out, Char value, 26201: const basic_format_specs& specs) { 26201: using iterator = remove_reference_t; 26201: return write_padded(out, specs, 1, [=](iterator it) { 26201: *it++ = value; 26201: return it; 26201: }); 26201: } 26201: 26201: template 26201: OutputIt write_ptr(OutputIt out, UIntPtr value, 26201: const basic_format_specs* specs) { 26201: int num_digits = count_digits<4>(value); 26201: auto size = to_unsigned(num_digits) + size_t(2); 26201: using iterator = remove_reference_t; 26201: auto write = [=](iterator it) { 26201: *it++ = static_cast('0'); 26201: *it++ = static_cast('x'); 26201: return format_uint<4, Char>(it, value, num_digits); 26201: }; 26201: return specs ? write_padded(out, *specs, size, write) 26201: : base_iterator(out, write(reserve(out, size))); 26201: } 26201: 26201: template struct is_integral : std::is_integral {}; 26201: template <> struct is_integral : std::true_type {}; 26201: template <> struct is_integral : std::true_type {}; 26201: 26201: template 26201: OutputIt write(OutputIt out, monostate) { 26201: ((false) ? (void)0 : ::fmt::detail::assert_fail("/usr/include/fmt/format.h", 2007, (""))); 26201: return out; 26201: } 26201: 26201: template ::value), int> = 0> 26201: OutputIt write(OutputIt out, string_view value) { 26201: auto it = reserve(out, value.size()); 26201: it = copy_str(value.begin(), value.end(), it); 26201: return base_iterator(out, it); 26201: } 26201: 26201: template 26201: OutputIt write(OutputIt out, basic_string_view value) { 26201: auto it = reserve(out, value.size()); 26201: it = std::copy(value.begin(), value.end(), it); 26201: return base_iterator(out, it); 26201: } 26201: 26201: template 26201: buffer_appender write(buffer_appender out, 26201: basic_string_view value) { 26201: get_container(out).append(value.begin(), value.end()); 26201: return out; 26201: } 26201: 26201: template ::value && !std::is_same::value && !std::is_same::value), int> = 0 26201: 26201: > 26201: OutputIt write(OutputIt out, T value) { 26201: auto abs_value = static_cast>(value); 26201: bool negative = is_negative(value); 26201: 26201: if (negative) abs_value = ~abs_value + 1; 26201: int num_digits = count_digits(abs_value); 26201: auto size = (negative ? 1 : 0) + static_cast(num_digits); 26201: auto it = reserve(out, size); 26201: if (auto ptr = to_pointer(it, size)) { 26201: if (negative) *ptr++ = static_cast('-'); 26201: format_decimal(ptr, abs_value, num_digits); 26201: return out; 26201: } 26201: if (negative) *it++ = static_cast('-'); 26201: it = format_decimal(it, abs_value, num_digits).end; 26201: return base_iterator(out, it); 26201: } 26201: 26201: template 26201: OutputIt write(OutputIt out, bool value) { 26201: return write(out, string_view(value ? "true" : "false")); 26201: } 26201: 26201: template 26201: OutputIt write(OutputIt out, Char value) { 26201: auto it = reserve(out, 1); 26201: *it++ = value; 26201: return base_iterator(out, it); 26201: } 26201: 26201: template 26201: OutputIt write(OutputIt out, const Char* value) { 26201: if (!value) { 26201: throw format_error("string pointer is null"); 26201: } else { 26201: auto length = std::char_traits::length(value); 26201: out = write(out, basic_string_view(value, length)); 26201: } 26201: return out; 26201: } 26201: 26201: template 26201: OutputIt write(OutputIt out, const void* value) { 26201: return write_ptr(out, to_uintptr(value), nullptr); 26201: } 26201: 26201: template 26201: auto write(OutputIt out, const T& value) -> typename std::enable_if< 26201: mapped_type_constant>::value == 26201: type::custom_type, 26201: OutputIt>::type { 26201: using context_type = basic_format_context; 26201: using formatter_type = 26201: conditional_t::value, 26201: typename context_type::template formatter_type, 26201: fallback_formatter>; 26201: context_type ctx(out, {}, {}); 26201: return formatter_type().format(value, ctx); 26201: } 26201: 26201: 26201: 26201: template struct default_arg_formatter { 26201: using context = basic_format_context; 26201: 26201: OutputIt out; 26201: basic_format_args args; 26201: locale_ref loc; 26201: 26201: template OutputIt operator()(T value) { 26201: return write(out, value); 26201: } 26201: 26201: OutputIt operator()(typename basic_format_arg::handle handle) { 26201: basic_format_parse_context parse_ctx({}); 26201: basic_format_context format_ctx(out, args, loc); 26201: handle.format(parse_ctx, format_ctx); 26201: return format_ctx.out(); 26201: } 26201: }; 26201: 26201: template 26201: class arg_formatter_base { 26201: public: 26201: using iterator = OutputIt; 26201: using char_type = Char; 26201: using format_specs = basic_format_specs; 26201: 26201: private: 26201: iterator out_; 26201: locale_ref locale_; 26201: format_specs* specs_; 26201: 26201: 26201: 26201: auto reserve(size_t n) -> decltype(detail::reserve(out_, n)) { 26201: return detail::reserve(out_, n); 26201: } 26201: 26201: using reserve_iterator = remove_reference_t(), 0))>; 26201: 26201: template void write_int(T value, const format_specs& spec) { 26201: using uint_type = uint32_or_64_or_128_t; 26201: int_writer w(out_, locale_, value, spec); 26201: handle_int_type_spec(spec.type, w); 26201: out_ = w.out; 26201: } 26201: 26201: void write(char value) { 26201: auto&& it = reserve(1); 26201: *it++ = value; 26201: } 26201: 26201: template ::value), int> = 0> 26201: void write(Ch value) { 26201: out_ = detail::write(out_, value); 26201: } 26201: 26201: void write(string_view value) { 26201: auto&& it = reserve(value.size()); 26201: it = copy_str(value.begin(), value.end(), it); 26201: } 26201: void write(wstring_view value) { 26201: static_assert(std::is_same::value, ""); 26201: auto&& it = reserve(value.size()); 26201: it = std::copy(value.begin(), value.end(), it); 26201: } 26201: 26201: template 26201: void write(const Ch* s, size_t size, const format_specs& specs) { 26201: auto width = specs.width != 0 26201: ? count_code_points(basic_string_view(s, size)) 26201: : 0; 26201: out_ = write_padded(out_, specs, size, width, [=](reserve_iterator it) { 26201: return copy_str(s, s + size, it); 26201: }); 26201: } 26201: 26201: template 26201: void write(basic_string_view s, const format_specs& specs = {}) { 26201: out_ = detail::write(out_, s, specs); 26201: } 26201: 26201: void write_pointer(const void* p) { 26201: out_ = write_ptr(out_, to_uintptr(p), specs_); 26201: } 26201: 26201: struct char_spec_handler : ErrorHandler { 26201: arg_formatter_base& formatter; 26201: Char value; 26201: 26201: char_spec_handler(arg_formatter_base& f, Char val) 26201: : formatter(f), value(val) {} 26201: 26201: void on_int() { 26201: 26201: formatter.write_int(static_cast(value), *formatter.specs_); 26201: } 26201: void on_char() { 26201: if (formatter.specs_) 26201: formatter.out_ = write_char(formatter.out_, value, *formatter.specs_); 26201: else 26201: formatter.write(value); 26201: } 26201: }; 26201: 26201: struct cstring_spec_handler : error_handler { 26201: arg_formatter_base& formatter; 26201: const Char* value; 26201: 26201: cstring_spec_handler(arg_formatter_base& f, const Char* val) 26201: : formatter(f), value(val) {} 26201: 26201: void on_string() { formatter.write(value); } 26201: void on_pointer() { formatter.write_pointer(value); } 26201: }; 26201: 26201: protected: 26201: iterator out() { return out_; } 26201: format_specs* specs() { return specs_; } 26201: 26201: void write(bool value) { 26201: if (specs_) 26201: write(string_view(value ? "true" : "false"), *specs_); 26201: else 26201: out_ = detail::write(out_, value); 26201: } 26201: 26201: void write(const Char* value) { 26201: if (!value) { 26201: throw format_error("string pointer is null"); 26201: } else { 26201: auto length = std::char_traits::length(value); 26201: basic_string_view sv(value, length); 26201: specs_ ? write(sv, *specs_) : write(sv); 26201: } 26201: } 26201: 26201: public: 26201: arg_formatter_base(OutputIt out, format_specs* s, locale_ref loc) 26201: : out_(out), locale_(loc), specs_(s) {} 26201: 26201: iterator operator()(monostate) { 26201: ((false) ? (void)0 : ::fmt::detail::assert_fail("/usr/include/fmt/format.h", 2242, ("invalid argument type"))); 26201: return out_; 26201: } 26201: 26201: template ::value), int> = 0> 26201: inline __attribute__((always_inline)) iterator operator()(T value) { 26201: if (specs_) 26201: write_int(value, *specs_); 26201: else 26201: out_ = detail::write(out_, value); 26201: return out_; 26201: } 26201: 26201: iterator operator()(Char value) { 26201: handle_char_specs(specs_, 26201: char_spec_handler(*this, static_cast(value))); 26201: return out_; 26201: } 26201: 26201: iterator operator()(bool value) { 26201: if (specs_ && specs_->type) return (*this)(value ? 1 : 0); 26201: write(value != 0); 26201: return out_; 26201: } 26201: 26201: template ::value), int> = 0> 26201: iterator operator()(T value) { 26201: auto specs = specs_ ? *specs_ : format_specs(); 26201: if (const_check(is_supported_floating_point(value))) 26201: out_ = detail::write(out_, value, specs, locale_); 26201: else 26201: ((false) ? (void)0 : ::fmt::detail::assert_fail("/usr/include/fmt/format.h", 2273, ("unsupported float argument type"))); 26201: return out_; 26201: } 26201: 26201: iterator operator()(const Char* value) { 26201: if (!specs_) return write(value), out_; 26201: handle_cstring_type_spec(specs_->type, cstring_spec_handler(*this, value)); 26201: return out_; 26201: } 26201: 26201: iterator operator()(basic_string_view value) { 26201: if (specs_) { 26201: check_string_type_spec(specs_->type, error_handler()); 26201: write(value, *specs_); 26201: } else { 26201: write(value); 26201: } 26201: return out_; 26201: } 26201: 26201: iterator operator()(const void* value) { 26201: if (specs_) check_pointer_type_spec(specs_->type, error_handler()); 26201: write_pointer(value); 26201: return out_; 26201: } 26201: }; 26201: 26201: 26201: template 26201: class arg_formatter : public arg_formatter_base { 26201: private: 26201: using char_type = Char; 26201: using base = arg_formatter_base; 26201: using context_type = basic_format_context; 26201: 26201: context_type& ctx_; 26201: basic_format_parse_context* parse_ctx_; 26201: const Char* ptr_; 26201: 26201: public: 26201: using iterator = typename base::iterator; 26201: using format_specs = typename base::format_specs; 26201: # 2323 "/usr/include/fmt/format.h" 3 4 26201: explicit arg_formatter( 26201: context_type& ctx, 26201: basic_format_parse_context* parse_ctx = nullptr, 26201: format_specs* specs = nullptr, const Char* ptr = nullptr) 26201: : base(ctx.out(), specs, ctx.locale()), 26201: ctx_(ctx), 26201: parse_ctx_(parse_ctx), 26201: ptr_(ptr) {} 26201: 26201: using base::operator(); 26201: 26201: 26201: iterator operator()(typename basic_format_arg::handle handle) { 26201: if (ptr_) advance_to(*parse_ctx_, ptr_); 26201: handle.format(*parse_ctx_, ctx_); 26201: return ctx_.out(); 26201: } 26201: }; 26201: 26201: template constexpr bool is_name_start(Char c) { 26201: return ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || '_' == c; 26201: } 26201: 26201: 26201: 26201: template 26201: constexpr int parse_nonnegative_int(const Char*& begin, const Char* end, 26201: ErrorHandler&& eh) { 26201: ((begin != end && '0' <= *begin && *begin <= '9') ? (void)0 : ::fmt::detail::assert_fail("/usr/include/fmt/format.h", 2351, (""))); 26201: unsigned value = 0; 26201: 26201: constexpr unsigned max_int = max_value(); 26201: unsigned big = max_int / 10; 26201: do { 26201: 26201: if (value > big) { 26201: value = max_int + 1; 26201: break; 26201: } 26201: value = value * 10 + unsigned(*begin - '0'); 26201: ++begin; 26201: } while (begin != end && '0' <= *begin && *begin <= '9'); 26201: if (value > max_int) eh.on_error("number is too big"); 26201: return static_cast(value); 26201: } 26201: 26201: template class custom_formatter { 26201: private: 26201: using char_type = typename Context::char_type; 26201: 26201: basic_format_parse_context& parse_ctx_; 26201: Context& ctx_; 26201: 26201: public: 26201: explicit custom_formatter(basic_format_parse_context& parse_ctx, 26201: Context& ctx) 26201: : parse_ctx_(parse_ctx), ctx_(ctx) {} 26201: 26201: void operator()(typename basic_format_arg::handle h) const { 26201: h.format(parse_ctx_, ctx_); 26201: } 26201: 26201: template void operator()(T) const {} 26201: }; 26201: 26201: template 26201: using is_integer = 26201: bool_constant::value && !std::is_same::value && 26201: !std::is_same::value && 26201: !std::is_same::value>; 26201: 26201: template class width_checker { 26201: public: 26201: explicit constexpr width_checker(ErrorHandler& eh) : handler_(eh) {} 26201: 26201: template ::value), int> = 0> 26201: constexpr unsigned long long operator()(T value) { 26201: if (is_negative(value)) handler_.on_error("negative width"); 26201: return static_cast(value); 26201: } 26201: 26201: template ::value), int> = 0> 26201: constexpr unsigned long long operator()(T) { 26201: handler_.on_error("width is not integer"); 26201: return 0; 26201: } 26201: 26201: private: 26201: ErrorHandler& handler_; 26201: }; 26201: 26201: template class precision_checker { 26201: public: 26201: explicit constexpr precision_checker(ErrorHandler& eh) : handler_(eh) {} 26201: 26201: template ::value), int> = 0> 26201: constexpr unsigned long long operator()(T value) { 26201: if (is_negative(value)) handler_.on_error("negative precision"); 26201: return static_cast(value); 26201: } 26201: 26201: template ::value), int> = 0> 26201: constexpr unsigned long long operator()(T) { 26201: handler_.on_error("precision is not integer"); 26201: return 0; 26201: } 26201: 26201: private: 26201: ErrorHandler& handler_; 26201: }; 26201: 26201: 26201: template class specs_setter { 26201: public: 26201: explicit constexpr specs_setter(basic_format_specs& specs) 26201: : specs_(specs) {} 26201: 26201: constexpr specs_setter(const specs_setter& other) 26201: : specs_(other.specs_) {} 26201: 26201: constexpr void on_align(align_t align) { specs_.align = align; } 26201: constexpr void on_fill(basic_string_view fill) { 26201: specs_.fill = fill; 26201: } 26201: constexpr void on_plus() { specs_.sign = sign::plus; } 26201: constexpr void on_minus() { specs_.sign = sign::minus; } 26201: constexpr void on_space() { specs_.sign = sign::space; } 26201: constexpr void on_hash() { specs_.alt = true; } 26201: 26201: constexpr void on_zero() { 26201: specs_.align = align::numeric; 26201: specs_.fill[0] = Char('0'); 26201: } 26201: 26201: constexpr void on_width(int width) { specs_.width = width; } 26201: constexpr void on_precision(int precision) { 26201: specs_.precision = precision; 26201: } 26201: constexpr void end_precision() {} 26201: 26201: constexpr void on_type(Char type) { 26201: specs_.type = static_cast(type); 26201: } 26201: 26201: protected: 26201: basic_format_specs& specs_; 26201: }; 26201: 26201: template class numeric_specs_checker { 26201: public: 26201: constexpr numeric_specs_checker(ErrorHandler& eh, detail::type arg_type) 26201: : error_handler_(eh), arg_type_(arg_type) {} 26201: 26201: constexpr void require_numeric_argument() { 26201: if (!is_arithmetic_type(arg_type_)) 26201: error_handler_.on_error("format specifier requires numeric argument"); 26201: } 26201: 26201: constexpr void check_sign() { 26201: require_numeric_argument(); 26201: if (is_integral_type(arg_type_) && arg_type_ != type::int_type && 26201: arg_type_ != type::long_long_type && arg_type_ != type::char_type) { 26201: error_handler_.on_error("format specifier requires signed argument"); 26201: } 26201: } 26201: 26201: constexpr void check_precision() { 26201: if (is_integral_type(arg_type_) || arg_type_ == type::pointer_type) 26201: error_handler_.on_error("precision not allowed for this argument type"); 26201: } 26201: 26201: private: 26201: ErrorHandler& error_handler_; 26201: detail::type arg_type_; 26201: }; 26201: 26201: 26201: 26201: template class specs_checker : public Handler { 26201: private: 26201: numeric_specs_checker checker_; 26201: 26201: 26201: constexpr Handler& error_handler() { return *this; } 26201: 26201: public: 26201: constexpr specs_checker(const Handler& handler, detail::type arg_type) 26201: : Handler(handler), checker_(error_handler(), arg_type) {} 26201: 26201: constexpr specs_checker(const specs_checker& other) 26201: : Handler(other), checker_(error_handler(), other.arg_type_) {} 26201: 26201: constexpr void on_align(align_t align) { 26201: if (align == align::numeric) checker_.require_numeric_argument(); 26201: Handler::on_align(align); 26201: } 26201: 26201: constexpr void on_plus() { 26201: checker_.check_sign(); 26201: Handler::on_plus(); 26201: } 26201: 26201: constexpr void on_minus() { 26201: checker_.check_sign(); 26201: Handler::on_minus(); 26201: } 26201: 26201: constexpr void on_space() { 26201: checker_.check_sign(); 26201: Handler::on_space(); 26201: } 26201: 26201: constexpr void on_hash() { 26201: checker_.require_numeric_argument(); 26201: Handler::on_hash(); 26201: } 26201: 26201: constexpr void on_zero() { 26201: checker_.require_numeric_argument(); 26201: Handler::on_zero(); 26201: } 26201: 26201: constexpr void end_precision() { checker_.check_precision(); } 26201: }; 26201: 26201: template