From 95a71c64799882366be0e4a57dcb7a1c49701026 Mon Sep 17 00:00:00 2001 From: Qiumiao Zhang Date: Mon, 7 Mar 2022 17:05:00 +0800 Subject: [PATCH] update to version 2.06 --- ...-Fix-user-facing-typo-with-an-incorr.patch | 24 + ...-Properly-disable-the-os-prober-by-d.patch | 71 + ...tes-Disable-the-os-prober-by-default.patch | 70 + ...d-support-for-Linux-EFI-stub-loading.patch | 187 +- ...d.patch => 0005-Rework-linux-command.patch | 56 +- ...patch => 0006-Rework-linux16-command.patch | 25 +- ...ecureboot-support-on-efi-chainloader.patch | 118 +- 0007-re-write-.gitignore.patch | 473 - ...loaders-that-link-in-efi-mode-honor-.patch | 291 +- ...rch-64-on-32-boot-in-linuxefi-loader.patch | 39 +- 0010-re-write-.gitignore.patch | 248 + ...when-generating-configuration-by-gru.patch | 29 - ...ient-architecture-CAS-reboot-support.patch | 35 +- ...nsole-display-attr-when-clear-screen.patch | 11 +- ...video-support-for-IBM-power-machines.patch | 16 +- 0013-Update-to-minilzo-2.08.patch | 8790 ---------------- ...4-Move-bash-completion-script-922997.patch | 15 +- 0015-Add-GRUB_DISABLE_UUID.patch | 109 - ...o-include-entries-by-title-not-just-.patch | 22 +- 0016-Make-exit-take-a-return-code.patch | 45 +- ...es-load-an-env-block-from-a-variable.patch | 37 +- ...pot-as-binary-so-git-won-t-try-to-di.patch | 22 - ...018-Migrate-PPC-from-Yaboot-to-Grub2.patch | 26 +- ...=> 0019-Add-fw_path-variable-revised.patch | 18 +- ...HCP-client-ID-and-UUID-options-added.patch | 143 - ...Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch | 41 - ...-hex-hex-straight-through-unmolested.patch | 38 +- ...UEFI-operating-systems-returned-by-o.patch | 50 - ...g-module-to-parse-Boot-Loader-Specif.patch | 378 +- ...patch => 0022-Add-devicetree-loading.patch | 27 +- ...0023-Enable-pager-by-default.-985860.patch | 9 +- ...n-t-say-GNU-Linux-in-generated-menus.patch | 11 +- ...rame-to-list-of-relocations-stripped.patch | 9 +- 0025-Add-X-option-to-printf-functions.patch | 58 - ...password-to-boot-entries-generated-b.patch | 9 +- ...for-specific-config-file-for-netboot.patch | 203 - ...f-man-pages-with-slightly-nicer-ones.patch | 162 +- ...ix-when-fallback-searching-for-grub-.patch | 14 +- 0029-Don-t-write-messages-to-the-screen.patch | 179 - ...-before-grub.cfg-on-tftp-config-file.patch | 60 +- 0030-Don-t-print-GNU-GRUB-header.patch | 45 - ...CLASS-in-10_linux-from-etc-os-releas.patch | 10 +- 0031-Don-t-add-to-highlighted-row.patch | 26 - ...t-ordering-for-.debug-and-rescue-ker.patch | 12 +- 0032-Message-string-cleanups.patch | 71 - ...2-Try-prefix-if-fw_path-doesn-t-work.patch | 63 +- ...ing-now-that-we-aren-t-displaying-it.patch | 32 - ...33-Use-rpm-s-sort-for-grub2-mkconfig.patch | 280 +- ...fig-construct-titles-that-look-like-.patch | 11 +- ...t-indentation-for-the-term-help-text.patch | 28 - ...ly-grub2-password-config-tool-985962.patch | 85 +- 0035-Indent-menu-entries.patch | 26 - 0036-Fix-margins.patch | 37 - ... 0036-tcp-add-window-scaling-support.patch | 9 +- ...-1-for-our-right-hand-margin-so-line.patch | 27 - ...net-and-bootp-add-support-for-dhcpv6.patch | 61 +- ...rnel-settings-and-use-it-in-10_linux.patch | 79 +- ...-on-serial-so-don-t-tell-the-user-to.patch | 27 - ...1374141-fix-incorrect-mask-for-ppc64.patch | 12 +- ... 0040-Make-grub_fatal-also-backtrace.patch | 21 +- ...-Don-t-draw-a-border-around-the-menu.patch | 74 - ...ix-up-some-man-pages-rpmdiff-noticed.patch | 19 +- ...fo-pages-say-grub2-where-appropriate.patch | 158 +- ...andard-margin-for-the-timeout-string.patch | 43 - ...-chainloader-entries-don-t-try-any-x.patch | 12 +- ...spaces-when-we-re-doing-our-cmdline-.patch | 36 - ...-Add-ability-to-boot-from-subvolumes.patch | 102 +- ...port-btrfs_subvol-and-btrfs_subvolid.patch | 11 +- 0046-Don-t-emit-Booting-.-message.patch | 52 - ...> 0046-grub2-btrfs-03-follow_default.patch | 29 +- ...=> 0047-grub2-btrfs-04-grub2-install.patch | 51 +- ...> 0048-grub2-btrfs-05-grub2-mkconfig.patch | 19 +- ... => 0049-grub2-btrfs-06-subvol-mount.patch | 67 +- ...subvol-name-scheme-to-support-old-sn.patch | 18 +- ...ert-function-to-support-NVMe-devices.patch | 59 - 0051-Add-grub_util_readlink.patch | 85 - ...-correctly-with-btrfs-snapshots-bsc-.patch | 18 +- ...ocate_pool-and-grub_efi_free_pool-wr.patch | 11 +- ...se-symlinks-including-those-across-d.patch | 108 - ...fi_.-memory-helpers-where-reasonable.patch | 21 +- ...4-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch | 23 +- ...=> 0055-don-t-use-int-for-efi-status.patch | 11 +- ...-grub.cfg-netboot-selection-order-11.patch | 70 - ...INIT-declare-its-function-prototypes.patch | 9 +- ...-efi-as-HFS-on-ppc-machines-in-grub-.patch | 11 +- ...d-xen-or-multiboot-2-modules-as-need.patch | 47 + 0058-Handle-rssd-storage-devices.patch | 39 - ...-calibration-not-take-51-seconds-to-.patch | 10 +- ...060-align-struct-efi_variable-better.patch | 11 +- 0061-Add-BLS-support-to-grub-mkconfig.patch | 399 + ...-backtrace-on-grub_abort-for-grub-em.patch | 12 +- ...ue-when-reading-username-and-passwor.patch | 47 - 0063-Add-a-url-parser.patch | 1024 -- ...nux-and-initrd-commands-for-grub-emu.patch | 60 +- ...h => 0064-Add-grub2-switch-to-blscfg.patch | 70 +- ...patch => 0065-make-better-backtraces.patch | 475 +- 0066-Normalize-slashes-in-tftp-paths.patch | 64 - ...w-our-startup-message-if-debug-is-se.patch | 12 +- ...-some-minor-include-path-weirdnesses.patch | 15 +- ...it-possible-to-enabled-build-id-sha1.patch | 51 +- ...f-grub_dprintf-without-the-file-line.patch | 17 +- ...dprintf-that-tells-us-load-addresses.patch | 29 +- ...fdt-has-address-cells-and-size-cells.patch | 45 - ...tch => 0071-Fixup-for-newer-compiler.patch | 13 +- ...-export-the-start-and-_start-symbols.patch | 13 +- ...more-debug-info-in-our-module-loader.patch | 44 - ...tch => 0073-Fixup-for-newer-compiler.patch | 9 +- ...pport-for-non-Ethernet-network-cards.patch | 94 +- ...racketed-ipv6-addrs-and-port-numbers.patch | 44 +- ...=> 0076-bootp-New-net_bootp6-command.patch | 101 +- ...=> 0077-efinet-UEFI-IPv6-PXE-support.patch | 19 +- ...078-grub.texi-Add-net_bootp6-doument.patch | 19 +- ...essing-DHCPACK-packet-from-HTTP-Boot.patch | 29 +- ...etting-network-from-UEFI-device-path.patch | 27 +- ...etting-DNS-server-from-UEFI-protocol.patch | 46 +- ...82-Support-UEFI-networking-protocols.patch | 263 +- ...> 0083-AUDIT-0-http-boot-tracker-bug.patch | 11 +- ...-incr-command-to-increment-integer-v.patch | 15 +- ...h => 0085-Add-auto-hide-menu-support.patch | 33 +- ...c-sized-arrays-since-we-don-t-build-.patch | 46 - ...> 0086-Add-grub-set-bootflag-utility.patch | 153 +- 0086-don-t-ignore-const.patch | 25 - ...b-boot-indeterminate.service-example.patch | 9 +- ...h => 0088-gentpl-add-disable-support.patch | 9 +- 0089-editenv-handle-relative-symlinks.patch | 53 - ... => 0089-gentpl-add-pc-firmware-type.patch | 9 +- ...e-libgrub.pp-depend-on-config-util.h.patch | 48 - ...e-the-firmware-acceleration-for-http.patch | 9 +- ...ot_url-reflect-the-protocol-hostname.patch | 11 +- ...d-xen-or-multiboot-2-modules-as-need.patch | 35 - ...n-tell-configure-which-cflags-utils-.patch | 101 +- ...make-it-possible-to-run-checkers-on-.patch | 13 +- ...94-Rework-how-the-fdt-command-builds.patch | 70 +- 0095-Add-BLS-support-to-grub-mkconfig.patch | 744 -- ...able-non-wordsize-allocations-on-arm.patch | 11 +- ...nd-prefix-when-HTTP-path-is-relative.patch | 26 +- 0097-Make-grub_error-more-verbose.patch | 61 + ...eset-an-alias-for-the-reboot-command.patch | 9 +- ....patch => 0099-Add-a-version-command.patch | 49 +- 0099-Add-grub_debug_enabled.patch | 63 - ...dprintf-and-nerf-dprintf-in-script.c.patch | 19 +- ...-Better-memory-allocation-and-error-.patch | 62 +- ...tter-locations-for-kernel-and-initrd.patch | 42 +- ...p-all-the-places-Wsign-compare-error.patch | 393 +- ...gn-compare-Wno-conversion-Wno-error-.patch | 43 +- ...ce-buffers-for-reading-to-addresses-.patch | 10 +- ...-arrange-grub_cmd_linux-a-little-bit.patch | 17 +- ...e-our-own-allocator-for-kernel-stuff.patch | 19 +- ...itrd-params-cmdline-allocations-abov.patch | 14 +- ... => 0109-Fix-getroot.c-s-trampolines.patch | 9 +- ...not-allow-stack-trampolines-anywhere.patch | 39 +- ...lid-character-recongition-in-strto-l.patch | 40 - ...tch => 0111-Reimplement-boot_counter.patch | 23 +- ...ntry-selection-based-on-ID-and-title.patch | 25 +- ...try-users-option-argument-to-be-opti.patch | 10 +- ...export-env-and-efi-load-env-commands.patch | 83 +- ...le-to-subtract-conditions-from-debug.patch | 11 +- ...bles-from-the-initial-context-when-c.patch | 13 +- ...-boot-success-reset-from-menu-auto-h.patch | 168 + 0118-Fix-one-more-coverity-complaint.patch | 30 - ...ix-systemctl-kexec-exit-status-check.patch | 9 +- ...b-emu-linux-loader-messages-as-debug.patch | 9 +- ...t-boot-commands-will-only-return-on-.patch | 32 +- 0121-Do-better-in-bootstrap.conf.patch | 28 + ...efi_gop.c-Add-support-for-BLT_ONLY-a.patch | 60 - 0122-Use-git-to-apply-gnulib-patches.patch | 631 ++ 0122-efi-uga-use-64-bit-for-fb_base.patch | 108 - ...ot-set-text-mode-until-we-actually-n.patch | 188 - ...g-Update-comment-about-running-as-ro.patch | 11 +- ...grub_console_read_key_stroke-helper-.patch | 105 - ...g-Write-new-env-to-tmpfile-and-then-.patch | 10 +- ...nsole-Implement-getkeystatus-support.patch | 75 - ...indeterminate-getting-set-on-boot_su.patch | 19 +- ... => 0126-Add-start-symbol-for-RISC-V.patch | 9 +- ...status-helper-funtion-available-ever.patch | 91 - ...d-holding-SHIFT-as-user-interrupt-ke.patch | 98 - ...conf-Force-autogen.sh-to-use-python3.patch | 33 + ...fw-http-_path-variables-to-make-them.patch | 14 +- ...-literal-IPv6-addresses-in-square-br.patch | 10 +- ...try-for-firmware-setup-on-UEFI-FastB.patch | 97 - ...o-specify-a-port-number-in-addresses.patch | 9 +- ...mprove-check-to-detect-literal-IPv6-.patch | 9 +- ...debug-message-if-parsing-the-address.patch | 10 +- ...so-accept-F8-as-a-user-interrupt-key.patch | 30 + ...se-address-before-jumping-to-the-PE-.patch | 25 +- ...ate-TPM-measurement-errors-to-the-ve.patch | 17 +- ...maximum-bounce-buffer-size-to-16-MiB.patch | 9 +- ...fix-when-the-HTTP-path-is-relative-a.patch | 11 +- ...turn-in-efi-export-env-and-efi-load-.patch | 27 + ...p-fix-some-allocation-error-checking.patch | 37 + ...p-fix-some-allocation-error-checking.patch | 39 + ...g.c-fix-some-potential-allocation-ov.patch | 127 + ...-R-.note.gnu.property-at-more-places.patch | 85 - ...integer-overflows-in-grub_cmd_initrd.patch | 49 + ...ernel_header.hdr_offset-be-at-the-ri.patch | 75 - ...rnel-validation-without-shim-protoco.patch | 80 +- ...ar-pointers-in-grub-core-net-bootp.c.patch | 37 + 0144-Make-grub_error-more-verbose.patch | 101 - ...ointers-in-grub-core-net-efi-ip4_con.patch | 38 + ...-debug-output-on-GOP-and-UGA-probing.patch | 69 - ...ointers-in-grub-core-net-efi-ip6_con.patch | 28 + ...-pointers-in-grub-core-net-efi-net.c.patch | 37 + ...-pointers-in-grub-core-net-efi-pxe.c.patch | 46 + ...gration-scripts-to-make-systemctl-re.patch | 190 + ...ion.sh-Also-set-old-menu_show_once-g.patch | 32 + ...set-1-when-keyboard-is-in-Translate-.patch | 121 + ...ll-disable-support-for-EFI-platforms.patch | 120 + ...imestamps-configure-flag-to-prepend-.patch | 112 + ...ements-to-grub_disk_open-and-grub_di.patch | 47 + ...on-grub_debug_is_enabled-void-return.patch | 51 + ...ear-screen-when-debugging-is-enabled.patch | 31 + ..._-instrumentation-new-file-debug-tag.patch | 71 + ...-Avoiding-many-unecessary-open-close.patch | 136 + ...-implements-fibre-channel-discovery-.patch | 90 + ...-end-pointers-have-safer-const-quali.patch | 990 -- ...erpc-enables-device-mapper-discovery.patch | 106 + ...fallback_set-var-to-force-the-set-ma.patch | 245 + ...igning-grub-with-an-appended-signatu.patch | 316 + ...rub-Document-signing-grub-under-UEFI.patch | 61 + ...nt-signing-grub-with-an-appended-sig.patch | 67 + ...e-grub_dl_set_persistent-for-the-emu.patch | 44 + ...g-up-grub.cfg-XXX-while-tftp-booting.patch | 45 - 0166-pgp-factor-out-rsa_pad.patch | 191 + ...strtoull-print-an-error-if-no-conver.patch | 34 - ...rage-for-grub_crypto_pk_-to-crypto.c.patch | 71 + 0168-Fix-the-type-of-grub_efi_status_t.patch | 82 - ...p-tweaks-in-preparation-for-libtasn1.patch | 64 + ...-boot-success-reset-from-menu-auto-h.patch | 246 - 0169-libtasn1-import-libtasn1-4.16.0.patch | 8934 +++++++++++++++++ ...asn1-disable-code-not-needed-in-grub.patch | 307 + ...tasn1-changes-for-grub-compatibility.patch | 202 + 0172-libtasn1-compile-into-asn1-module.patch | 70 + ...ferences-for-fdt-when-building-with-.patch | 44 - 0173-test_asn1-test-module-for-libtasn1.patch | 1457 +++ ...find-wholename-for-long-path-matches.patch | 26 - ...-support-embedding-x509-certificates.patch | 252 + ...-error-with-the-fdt-module-on-risc-v.patch | 43 - ...res-import-GNUTLS-s-ASN.1-descriptio.patch | 639 ++ ...tation-of-pc-relative-relocation-off.patch | 40 - ...res-parse-PKCS-7-signedData-and-X.50.patch | 1528 +++ ...res-support-verifying-appended-signa.patch | 716 ++ ...Add-support-for-the-devicetree-field.patch | 135 - ...-var-in-a-BLS-config-if-GRUB_DEFAULT.patch | 41 - ...pended-signatures-verification-tests.patch | 897 ++ ...s-option-to-menu-entries-generated-f.patch | 81 - 0179-appended-signatures-documentation.patch | 341 + ...-use-GRUB_CMDLINE_LINUX_DEFAULT-to-s.patch | 48 - ...er-lockdown-based-on-ibm-secure-boot.patch | 109 + ...dcode-an-env-var-as-fallback-for-the.patch | 66 - ...275-drop-HEAP_MAX_ADDR-HEAP_MIN_SIZE.patch | 75 + 0182-ieee1275-claim-more-memory.patch | 252 + ...-memory-with-ibm-client-architecture.patch | 268 + ...-Also-handle-the-Extended-Key-Usage-.patch | 315 + ...ce-char-when-appending-fields-for-va.patch | 79 - ...eee1275-ofdisk-retry-on-open-failure.patch | 103 + ...ainloading-EFI-apps-from-loop-mounts.patch | 138 + ...rt-for-sorting-the-plus-higher-than-.patch | 62 - 0187-Fix-savedefault-with-blscfg.patch | 53 - 0187-efinet-Add-DHCP-proxy-support.patch | 53 + ..._EFI_MAX_ALLOCATION_ADDRESS-for-RISC.patch | 28 - ...gnore-checksum-seed-incompat-feature.patch | 54 + ...-cmdline-when-generating-legacy-menu.patch | 36 + ...ader-Define-machine-types-for-RISC-V.patch | 34 - 0190-Suppress-gettext-error-message.patch | 33 + 0191-RISC-V-Add-__clzdi2-symbol.patch | 46 - ...d-Always-use-boot-grub2-user.cfg-as-.patch | 42 + ...l-Define-default-platform-for-RISC-V.patch | 34 - ...for-EFI-at-runtime-instead-of-config.patch | 63 + ...e-the-root-variable-to-search-for-BL.patch | 50 - ...or-if-boot-to-firmware-setup-is-not-.patch | 92 + ...x-EFI-loader-kernel-image-allocation.patch | 62 +- ...over-the-device-to-read-the-config-f.patch | 123 + ...etting-of-prefix-for-signed-binary-c.patch | 88 + ...adable-filesystem-with-v4-superblock.patch | 118 + ...module-name-on-license-check-failure.patch | 48 + ...LL-instead-of-a-zero-length-array-in.patch | 41 - ...pc-ieee1275-load-grub-at-4MB-not-2MB.patch | 106 + ...-mkconfig-restore-umask-for-grub.cfg.patch | 40 + ...lscfg-Update-grub2-binary-in-ESP-for.patch | 40 - ...btrfs-Use-full-btrfs-bootloader-area.patch | 160 + ...lscfg-Only-mark-GRUB-as-BLS-supporte.patch | 40 - ...e-logic-from-10_linux_bls-and-drop-t.patch | 665 -- ...lscfg-Use-install-to-copy-GRUB-binar.patch | 49 - ...le-BLS-configuration-if-new-kernel-p.patch | 42 - ...fault_kernelopts-variable-as-fallbac.patch | 43 - ...early-exit-due-error-when-reading-pe.patch | 36 - ...r-overrun-when-attempting-to-shrink-.patch | 63 - ...e-cmdline-in-BLS-snippets-instead-of.patch | 163 - ...ore-existence-check-in-get_sorted_bl.patch | 36 - ...-Enable-module-for-all-EFI-platforms.patch | 29 - ...t-update-BLS-files-that-aren-t-manag.patch | 59 - 0216-fix-build-with-rpm-4.16.patch | 33 - ...s-BLS-supported-in-OSTree-systems-wi.patch | 38 - ...-TPM2.0-in-grub2-both-legacy-and-efi.patch | 27 - 0219-Workaround-for-EFI-Bug-Plan3.patch | 160 - 0220-bugfix-remove-excess-qutos.patch | 24 - ...lexer-fatal-errors-actually-be-fatal.patch | 69 - ...e-arithmetic-primitives-that-check-f.patch | 89 - ...-we-always-have-an-overflow-checking.patch | 242 - 0224-calloc-Use-calloc-at-most-places.patch | 1836 ---- ...low-checking-primitives-where-we-do-.patch | 1322 --- ...on-t-leak-memory-on-realloc-failures.patch | 68 - ...-not-load-more-than-one-NAME-section.patch | 37 - ...fxmenu-Fix-double-free-in-load_image.patch | 35 - ...ree-in-grub_xnu_devprop_add_property.patch | 54 - ...sure-we-don-t-dereference-past-array.patch | 51 - 0231-term-Fix-overflow-on-user-inputs.patch | 65 - 0232-udf-Fix-memory-leak.patch | 55 - ...emory-leak-if-grub_create_loader_cmd.patch | 34 - 0234-tftp-Do-not-use-priority-queue.patch | 284 - ...t-grub_relocator_alloc_chunk_addr-in.patch | 149 - ...in-address-for-mbi-allocation-to-0x1.patch | 49 - ...t-grub_relocator_alloc_chunk_align-m.patch | 334 - ...used-fields-from-grub_script_functio.patch | 33 - ...se-after-free-when-redefining-a-func.patch | 109 - ...ub_relocator_alloc_chunk_align-top-m.patch | 45 - 0241-hfsplus-Fix-two-more-overflows.patch | 57 - ...-potential-data-dependent-alloc-over.patch | 112 - ...formed-device-path-arithmetic-errors.patch | 235 - ...Propagate-errors-from-copy_file_path.patch | 74 - ...x-use-after-free-in-halt-reboot-path.patch | 179 - ...id-overflow-on-initrd-size-calculati.patch | 28 - ...er-overflows-in-initrd-size-handling.patch | 169 - ...08_fallback_counting.in-apply-grubby.patch | 61 - ...lock-counter-to-prevent-timeouts-wit.patch | 81 - backport-0001-CVE-2020-27749.patch | 50 - ...01-CVE-2020-27779-and-CVE-2020-14372.patch | 129 - ...leak-when-iterating-over-mapped-memo.patch | 40 - backport-0002-CVE-2020-27749.patch | 77 - ...02-CVE-2020-27779-and-CVE-2020-14372.patch | 430 - ...ible-dereference-to-of-a-NULL-pointe.patch | 38 - backport-0003-CVE-2020-27749.patch | 119 - ...03-CVE-2020-27779-and-CVE-2020-14372.patch | 57 - ...net-tftp-Fix-dangling-memory-pointer.patch | 35 - backport-0004-CVE-2020-27749.patch | 65 - ...04-CVE-2020-27779-and-CVE-2020-14372.patch | 54 - ...-kern-efi-Fix-memory-leak-on-failure.patch | 31 - backport-0005-CVE-2020-27749.patch | 90 - ...05-CVE-2020-27779-and-CVE-2020-14372.patch | 129 - ...ix-possible-NULL-pointer-dereference.patch | 67 - backport-0006-CVE-2020-27749.patch | 307 - ...06-CVE-2020-27779-and-CVE-2020-14372.patch | 75 - ...std-Initialize-seq_t-structure-fully.patch | 36 - backport-0007-CVE-2020-27749.patch | 247 - ...07-CVE-2020-27779-and-CVE-2020-14372.patch | 69 - ...heck-for-NULL-before-dereferencing-i.patch | 45 - ...08-CVE-2020-27779-and-CVE-2020-14372.patch | 104 - ...re-comp-data-is-freed-before-exiting.patch | 130 - ...09-CVE-2020-27779-and-CVE-2020-14372.patch | 37 - ...-If-failed-then-free-vg-variable-too.patch | 30 - ...10-CVE-2020-27779-and-CVE-2020-14372.patch | 35 - ...ory-leak-on-uninserted-lv-references.patch | 49 - ...11-CVE-2020-27779-and-CVE-2020-14372.patch | 61 - ...that-the-volume-name-length-is-valid.patch | 45 - ...12-CVE-2020-27779-and-CVE-2020-14372.patch | 60 - ...ix-possible-negative-shift-operation.patch | 44 - ...source-leaks-while-constructing-path.patch | 123 - ...4-zfs-Fix-possible-integer-overflows.patch | 58 - ...-a-check-for-error-allocating-memory.patch | 37 - backport-0016-affs-Fix-memory-leaks.patch | 84 - ...x-possible-unintended-sign-extension.patch | 37 - ...pt-mpi-Fix-possible-NULL-dereference.patch | 35 - ...slinux-Fix-memory-leak-while-parsing.patch | 45 - ...n-Fix-leaking-of-memory-when-process.patch | 54 - ...1-commands-hashsum-Fix-a-memory-leak.patch | 58 - ...move-unnecessary-return-value-of-gru.patch | 96 - ...bfill-Fix-potential-integer-overflow.patch | 80 - ...eo_fb-Fix-multiple-integer-overflows.patch | 106 - ...deo_fb-Fix-possible-integer-overflow.patch | 41 - ...eg-Test-for-an-invalid-next-marker-r.patch | 40 - ...-Remove-code-that-coverity-is-flaggi.patch | 36 - ...ader-bsd-Check-for-NULL-arg-up-front.patch | 49 - ...port-0029-loader-xnu-Fix-memory-leak.patch | 40 - ...driverkey-data-when-an-error-is-dete.patch | 79 - ...k-if-pointer-is-NULL-before-using-it.patch | 44 - ...nstall-Fix-NULL-pointer-dereferences.patch | 43 - ...v-Fix-incorrect-casting-of-a-signed-.patch | 48 - ...x-incorrect-use-of-a-possibly-negati.patch | 52 - ...ix-NULL-dereference-in-grub_script_e.patch | 30 - ...ire-device_name-is-not-NULL-before-p.patch | 35 - ...void-crash-when-using-outside-a-func.patch | 39 - ...on-t-crash-on-a-for-loop-with-no-ite.patch | 41 - ...misc-Always-set-end-in-grub_strtoull.patch | 48 - ...eg-Catch-files-with-unsupported-quan.patch | 54 - ...eg-Catch-OOB-reads-writes-in-grub_jp.patch | 49 - ...eg-Don-t-decode-data-before-start-of.patch | 41 - ...-t-set-up-a-font-with-glyphs-that-ar.patch | 53 - ...impermissibly-large-block-sizes-in-r.patch | 48 - ...-fetch-a-key-beyond-the-end-of-the-n.patch | 34 - ...-use-uninitialized-data-on-corrupt-f.patch | 109 - ...t-0047-fs-hfs-Disable-under-lockdown.patch | 48 - ...fs-Fix-over-read-of-root-object-name.patch | 51 - ...ve-to-leaf-level-if-name-length-is-n.patch | 35 - ...the-extents-that-getblk-can-consider.patch | 63 - ...0051-fs-jfs-Catch-infinite-recursion.patch | 47 - ...0052-fs-nilfs2-Reject-too-large-keys.patch | 47 - ...search-children-if-provided-number-i.patch | 101 - ...ly-bail-on-errors-in-grub_nilfs2_btr.patch | 69 - ...5-io-gzio-Bail-if-gzio-tl-td-is-NULL.patch | 68 - ..._dynamic_block-clean-up-if-unpacking.patch | 68 - ...issing-values-in-huft_build-and-bail.patch | 58 - ...o-tl-td-in-init_dynamic_block-if-huf.patch | 43 - ...o-beyond-the-end-of-the-data-we-read.patch | 50 - ...last-past-the-end-of-the-circular-me.patch | 44 - ...061-disk-lvm-Bail-on-missing-PV-list.patch | 36 - ...crash-if-an-expected-string-is-not-f.patch | 84 - ...dd-LVM-cache-logical-volume-handling.patch | 286 - ...64-disk-lvm-Do-not-overread-metadata.patch | 130 - ...ze-rlocn-offset-to-prevent-wild-read.patch | 42 - ...allow-a-LV-to-be-it-s-own-segment-s-.patch | 40 - ...e-the-number-of-stripes-parities-in-.patch | 34 - ...trfs-Squash-some-uninitialized-reads.patch | 44 - ...itial-stack-protector-implementation.patch | 305 - ...emove-unused-code-to-add-BSS-section.patch | 62 - ...-grub_host_to_target32-instead-of-gr.patch | 114 - ...-grub_debug_calloc-compilation-error.patch | 34 - ...rub-mkconfig-Fix-typo-in-help-output.patch | 34 - ..._keyboard-Fix-unreliable-key-presses.patch | 53 - ...ux-file-descriptor-to-O_CLOEXEC-as-d.patch | 70 - ...quash4-Fix-an-uninitialized-variable.patch | 40 - ...memory-leak-in-grub_tpm1-2_log_event.patch | 41 - ...powerpc-mkimage-Fix-CHRP-note-descsz.patch | 54 - ...ypo-in-grub_efi_tpm2_protocol-struct.patch | 37 - ...eses-around-ALIGN_UP-and-ALIGN_DOWN-.patch | 38 - ...lling-uninitialized-function-pointer.patch | 46 - ...r-the-PE-magic-for-the-compiled-arch.patch | 65 - backport-CVE-2020-25632.patch | 83 - backport-CVE-2020-25647.patch | 110 - backport-CVE-2021-20225.patch | 51 - backport-CVE-2021-20233.patch | 44 - ...Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch | 56 - bootstrap | 1073 ++ bootstrap.conf | 101 + gitignore | 468 +- gnulib-fixes.tar.gz | Bin 0 -> 7104719 bytes grub-2.04.tar.xz | Bin 6393864 -> 0 bytes grub-2.06.tar.xz | Bin 0 -> 6581924 bytes grub.macros | 63 +- grub.patches | 562 +- ...rd-prompts-to-enter-the-current-pass.patch | 37 +- grub2.spec | 101 +- installkernel-bls | 85 - installkernel.in | 8 - support-TPM2.0.patch | 41 +- unifont-13.0.06.pcf.gz | Bin 0 -> 1360823 bytes unifont-5.1.20080820.pcf.gz | Bin 1379965 -> 0 bytes use-default-timestamp.patch | 12 +- 447 files changed, 26689 insertions(+), 35786 deletions(-) create mode 100644 0001-Revert-templates-Fix-user-facing-typo-with-an-incorr.patch create mode 100644 0002-Revert-templates-Properly-disable-the-os-prober-by-d.patch create mode 100644 0003-Revert-templates-Disable-the-os-prober-by-default.patch rename 0001-Add-support-for-Linux-EFI-stub-loading.patch => 0004-Add-support-for-Linux-EFI-stub-loading.patch (92%) rename 0002-Rework-linux-command.patch => 0005-Rework-linux-command.patch (66%) rename 0003-Rework-linux16-command.patch => 0006-Rework-linux16-command.patch (81%) rename 0004-Add-secureboot-support-on-efi-chainloader.patch => 0007-Add-secureboot-support-on-efi-chainloader.patch (96%) delete mode 100644 0007-re-write-.gitignore.patch rename 0005-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch => 0008-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch (53%) rename 0006-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch => 0009-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch (94%) create mode 100644 0010-re-write-.gitignore.patch delete mode 100644 0011-Honor-a-symlink-when-generating-configuration-by-gru.patch rename 0008-IBM-client-architecture-CAS-reboot-support.patch => 0011-IBM-client-architecture-CAS-reboot-support.patch (88%) rename 0009-for-ppc-reset-console-display-attr-when-clear-screen.patch => 0012-for-ppc-reset-console-display-attr-when-clear-screen.patch (79%) rename 0010-Disable-GRUB-video-support-for-IBM-power-machines.patch => 0013-Disable-GRUB-video-support-for-IBM-power-machines.patch (84%) delete mode 100644 0013-Update-to-minilzo-2.08.patch rename 0012-Move-bash-completion-script-922997.patch => 0014-Move-bash-completion-script-922997.patch (83%) delete mode 100644 0015-Add-GRUB_DISABLE_UUID.patch rename 0014-Allow-fallback-to-include-entries-by-title-not-just-.patch => 0015-Allow-fallback-to-include-entries-by-title-not-just-.patch (86%) rename 0018-Make-efi-machines-load-an-env-block-from-a-variable.patch => 0017-Make-efi-machines-load-an-env-block-from-a-variable.patch (68%) delete mode 100644 0017-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch rename 0022-Migrate-PPC-from-Yaboot-to-Grub2.patch => 0018-Migrate-PPC-from-Yaboot-to-Grub2.patch (89%) rename 0023-Add-fw_path-variable-revised.patch => 0019-Add-fw_path-variable-revised.patch (83%) delete mode 100644 0019-DHCP-client-ID-and-UUID-options-added.patch delete mode 100644 0020-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch rename 0024-Pass-x-hex-hex-straight-through-unmolested.patch => 0020-Pass-x-hex-hex-straight-through-unmolested.patch (83%) delete mode 100644 0021-Add-support-for-UEFI-operating-systems-returned-by-o.patch rename 0027-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch => 0021-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch (90%) rename 0028-Add-devicetree-loading.patch => 0022-Add-devicetree-loading.patch (84%) rename 0038-Enable-pager-by-default.-985860.patch => 0023-Enable-pager-by-default.-985860.patch (78%) rename 0040-Don-t-say-GNU-Linux-in-generated-menus.patch => 0024-Don-t-say-GNU-Linux-in-generated-menus.patch (86%) rename 0043-Add-.eh_frame-to-list-of-relocations-stripped.patch => 0025-Add-.eh_frame-to-list-of-relocations-stripped.patch (84%) delete mode 100644 0025-Add-X-option-to-printf-functions.patch rename 0045-Don-t-require-a-password-to-boot-entries-generated-b.patch => 0026-Don-t-require-a-password-to-boot-entries-generated-b.patch (80%) delete mode 100644 0026-Search-for-specific-config-file-for-netboot.patch rename 0047-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch => 0027-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch (95%) rename 0048-use-fw_path-prefix-when-fallback-searching-for-grub-.patch => 0028-use-fw_path-prefix-when-fallback-searching-for-grub-.patch (80%) delete mode 100644 0029-Don-t-write-messages-to-the-screen.patch rename 0049-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch => 0029-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch (72%) delete mode 100644 0030-Don-t-print-GNU-GRUB-header.patch rename 0053-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch => 0030-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch (84%) delete mode 100644 0031-Don-t-add-to-highlighted-row.patch rename 0054-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch => 0031-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch (80%) delete mode 100644 0032-Message-string-cleanups.patch rename 0055-Try-prefix-if-fw_path-doesn-t-work.patch => 0032-Try-prefix-if-fw_path-doesn-t-work.patch (81%) delete mode 100644 0033-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch rename 0057-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch => 0033-Use-rpm-s-sort-for-grub2-mkconfig.patch (81%) rename 0059-Make-grub2-mkconfig-construct-titles-that-look-like-.patch => 0034-Make-grub2-mkconfig-construct-titles-that-look-like-.patch (91%) delete mode 100644 0034-Use-the-correct-indentation-for-the-term-help-text.patch rename 0060-Add-friendly-grub2-password-config-tool-985962.patch => 0035-Add-friendly-grub2-password-config-tool-985962.patch (93%) delete mode 100644 0035-Indent-menu-entries.patch delete mode 100644 0036-Fix-margins.patch rename 0061-tcp-add-window-scaling-support.patch => 0036-tcp-add-window-scaling-support.patch (94%) delete mode 100644 0037-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch rename 0064-efinet-and-bootp-add-support-for-dhcpv6.patch => 0037-efinet-and-bootp-add-support-for-dhcpv6.patch (92%) rename 0065-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch => 0038-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch (91%) delete mode 100644 0039-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch rename 0067-bz1374141-fix-incorrect-mask-for-ppc64.patch => 0039-bz1374141-fix-incorrect-mask-for-ppc64.patch (89%) rename 0068-Make-grub_fatal-also-backtrace.patch => 0040-Make-grub_fatal-also-backtrace.patch (91%) delete mode 100644 0041-Don-t-draw-a-border-around-the-menu.patch rename 0069-Fix-up-some-man-pages-rpmdiff-noticed.patch => 0041-Fix-up-some-man-pages-rpmdiff-noticed.patch (90%) rename 0071-Make-our-info-pages-say-grub2-where-appropriate.patch => 0042-Make-our-info-pages-say-grub2-where-appropriate.patch (89%) delete mode 100644 0042-Use-the-standard-margin-for-the-timeout-string.patch rename 0073-macos-just-build-chainloader-entries-don-t-try-any-x.patch => 0043-macos-just-build-chainloader-entries-don-t-try-any-x.patch (95%) delete mode 100644 0044-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch rename 0074-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch => 0044-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch (89%) rename 0075-export-btrfs_subvol-and-btrfs_subvolid.patch => 0045-export-btrfs_subvol-and-btrfs_subvolid.patch (76%) delete mode 100644 0046-Don-t-emit-Booting-.-message.patch rename 0076-grub2-btrfs-03-follow_default.patch => 0046-grub2-btrfs-03-follow_default.patch (86%) rename 0077-grub2-btrfs-04-grub2-install.patch => 0047-grub2-btrfs-04-grub2-install.patch (88%) rename 0078-grub2-btrfs-05-grub2-mkconfig.patch => 0048-grub2-btrfs-05-grub2-mkconfig.patch (91%) rename 0079-grub2-btrfs-06-subvol-mount.patch => 0049-grub2-btrfs-06-subvol-mount.patch (93%) rename 0080-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch => 0050-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch (84%) delete mode 100644 0050-Fix-convert-function-to-support-NVMe-devices.patch delete mode 100644 0051-Add-grub_util_readlink.patch rename 0081-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch => 0051-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch (94%) rename 0082-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch => 0052-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch (90%) delete mode 100644 0052-Make-editenv-chase-symlinks-including-those-across-d.patch rename 0083-Use-grub_efi_.-memory-helpers-where-reasonable.patch => 0053-Use-grub_efi_.-memory-helpers-where-reasonable.patch (85%) rename 0084-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch => 0054-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch (72%) rename 0087-don-t-use-int-for-efi-status.patch => 0055-don-t-use-int-for-efi-status.patch (69%) delete mode 100644 0056-Update-info-with-grub.cfg-netboot-selection-order-11.patch rename 0088-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch => 0056-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch (81%) rename 0091-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch => 0057-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch (81%) create mode 100644 0058-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch delete mode 100644 0058-Handle-rssd-storage-devices.patch rename 0093-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch => 0059-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch (97%) rename 0094-align-struct-efi_variable-better.patch => 0060-align-struct-efi_variable-better.patch (81%) create mode 100644 0061-Add-BLS-support-to-grub-mkconfig.patch rename 0096-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch => 0062-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch (73%) delete mode 100644 0062-Fix-security-issue-when-reading-username-and-passwor.patch delete mode 100644 0063-Add-a-url-parser.patch rename 0097-Add-linux-and-initrd-commands-for-grub-emu.patch => 0063-Add-linux-and-initrd-commands-for-grub-emu.patch (92%) rename 0098-Add-grub2-switch-to-blscfg.patch => 0064-Add-grub2-switch-to-blscfg.patch (85%) rename 0100-make-better-backtraces.patch => 0065-make-better-backtraces.patch (76%) delete mode 100644 0066-Normalize-slashes-in-tftp-paths.patch rename 0101-normal-don-t-draw-our-startup-message-if-debug-is-se.patch => 0066-normal-don-t-draw-our-startup-message-if-debug-is-se.patch (72%) rename 0102-Work-around-some-minor-include-path-weirdnesses.patch => 0067-Work-around-some-minor-include-path-weirdnesses.patch (95%) rename 0103-Make-it-possible-to-enabled-build-id-sha1.patch => 0068-Make-it-possible-to-enabled-build-id-sha1.patch (87%) rename 0104-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch => 0069-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch (81%) rename 0105-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch => 0070-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch (87%) delete mode 100644 0070-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch rename 0106-Fixup-for-newer-compiler.patch => 0071-Fixup-for-newer-compiler.patch (79%) rename 0107-Don-t-attempt-to-export-the-start-and-_start-symbols.patch => 0072-Don-t-attempt-to-export-the-start-and-_start-symbols.patch (84%) delete mode 100644 0072-print-more-debug-info-in-our-module-loader.patch rename 0108-Fixup-for-newer-compiler.patch => 0073-Fixup-for-newer-compiler.patch (86%) rename 0109-Add-support-for-non-Ethernet-network-cards.patch => 0074-Add-support-for-non-Ethernet-network-cards.patch (94%) rename 0111-net-read-bracketed-ipv6-addrs-and-port-numbers.patch => 0075-net-read-bracketed-ipv6-addrs-and-port-numbers.patch (86%) rename 0112-bootp-New-net_bootp6-command.patch => 0076-bootp-New-net_bootp6-command.patch (98%) rename 0113-efinet-UEFI-IPv6-PXE-support.patch => 0077-efinet-UEFI-IPv6-PXE-support.patch (89%) rename 0114-grub.texi-Add-net_bootp6-doument.patch => 0078-grub.texi-Add-net_bootp6-doument.patch (73%) rename 0115-bootp-Add-processing-DHCPACK-packet-from-HTTP-Boot.patch => 0079-bootp-Add-processing-DHCPACK-packet-from-HTTP-Boot.patch (85%) rename 0116-efinet-Setting-network-from-UEFI-device-path.patch => 0080-efinet-Setting-network-from-UEFI-device-path.patch (94%) rename 0117-efinet-Setting-DNS-server-from-UEFI-protocol.patch => 0081-efinet-Setting-DNS-server-from-UEFI-protocol.patch (91%) rename 0119-Support-UEFI-networking-protocols.patch => 0082-Support-UEFI-networking-protocols.patch (98%) rename 0120-AUDIT-0-http-boot-tracker-bug.patch => 0083-AUDIT-0-http-boot-tracker-bug.patch (90%) rename 0128-grub-editenv-Add-incr-command-to-increment-integer-v.patch => 0084-grub-editenv-Add-incr-command-to-increment-integer-v.patch (89%) rename 0129-Add-auto-hide-menu-support.patch => 0085-Add-auto-hide-menu-support.patch (90%) delete mode 100644 0085-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch rename 0131-Add-grub-set-bootflag-utility.patch => 0086-Add-grub-set-bootflag-utility.patch (92%) delete mode 100644 0086-don-t-ignore-const.patch rename 0132-docs-Add-grub-boot-indeterminate.service-example.patch => 0087-docs-Add-grub-boot-indeterminate.service-example.patch (83%) rename 0133-gentpl-add-disable-support.patch => 0088-gentpl-add-disable-support.patch (89%) delete mode 100644 0089-editenv-handle-relative-symlinks.patch rename 0134-gentpl-add-pc-firmware-type.patch => 0089-gentpl-add-pc-firmware-type.patch (78%) delete mode 100644 0090-Make-libgrub.pp-depend-on-config-util.h.patch rename 0135-efinet-also-use-the-firmware-acceleration-for-http.patch => 0090-efinet-also-use-the-firmware-acceleration-for-http.patch (83%) rename 0136-efi-http-Make-root_url-reflect-the-protocol-hostname.patch => 0091-efi-http-Make-root_url-reflect-the-protocol-hostname.patch (87%) delete mode 100644 0092-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch rename 0137-Make-it-so-we-can-tell-configure-which-cflags-utils-.patch => 0092-Make-it-so-we-can-tell-configure-which-cflags-utils-.patch (93%) rename 0138-module-verifier-make-it-possible-to-run-checkers-on-.patch => 0093-module-verifier-make-it-possible-to-run-checkers-on-.patch (87%) rename 0139-Rework-how-the-fdt-command-builds.patch => 0094-Rework-how-the-fdt-command-builds.patch (73%) delete mode 100644 0095-Add-BLS-support-to-grub-mkconfig.patch rename 0140-Disable-non-wordsize-allocations-on-arm.patch => 0095-Disable-non-wordsize-allocations-on-arm.patch (84%) rename 0142-Prepend-prefix-when-HTTP-path-is-relative.patch => 0096-Prepend-prefix-when-HTTP-path-is-relative.patch (90%) create mode 100644 0097-Make-grub_error-more-verbose.patch rename 0145-Make-reset-an-alias-for-the-reboot-command.patch => 0098-Make-reset-an-alias-for-the-reboot-command.patch (86%) rename 0147-Add-a-version-command.patch => 0099-Add-a-version-command.patch (91%) delete mode 100644 0099-Add-grub_debug_enabled.patch rename 0148-Add-more-dprintf-and-nerf-dprintf-in-script.c.patch => 0100-Add-more-dprintf-and-nerf-dprintf-in-script.c.patch (83%) rename 0149-arm-arm64-loader-Better-memory-allocation-and-error-.patch => 0101-arm-arm64-loader-Better-memory-allocation-and-error-.patch (88%) rename 0150-Try-to-pick-better-locations-for-kernel-and-initrd.patch => 0102-Try-to-pick-better-locations-for-kernel-and-initrd.patch (85%) rename 0151-Attempt-to-fix-up-all-the-places-Wsign-compare-error.patch => 0103-Attempt-to-fix-up-all-the-places-Wsign-compare-error.patch (89%) rename 0152-Don-t-use-Wno-sign-compare-Wno-conversion-Wno-error-.patch => 0104-Don-t-use-Wno-sign-compare-Wno-conversion-Wno-error-.patch (84%) rename 0153-x86-efi-Use-bounce-buffers-for-reading-to-addresses-.patch => 0105-x86-efi-Use-bounce-buffers-for-reading-to-addresses-.patch (93%) rename 0154-x86-efi-Re-arrange-grub_cmd_linux-a-little-bit.patch => 0106-x86-efi-Re-arrange-grub_cmd_linux-a-little-bit.patch (96%) rename 0155-x86-efi-Make-our-own-allocator-for-kernel-stuff.patch => 0107-x86-efi-Make-our-own-allocator-for-kernel-stuff.patch (97%) rename 0156-x86-efi-Allow-initrd-params-cmdline-allocations-abov.patch => 0108-x86-efi-Allow-initrd-params-cmdline-allocations-abov.patch (95%) rename 0157-Fix-getroot.c-s-trampolines.patch => 0109-Fix-getroot.c-s-trampolines.patch (87%) rename 0158-Do-not-allow-stack-trampolines-anywhere.patch => 0110-Do-not-allow-stack-trampolines-anywhere.patch (81%) delete mode 100644 0110-misc-fix-invalid-character-recongition-in-strto-l.patch rename 0159-Reimplement-boot_counter.patch => 0111-Reimplement-boot_counter.patch (95%) rename 0161-Fix-menu-entry-selection-based-on-ID-and-title.patch => 0112-Fix-menu-entry-selection-based-on-ID-and-title.patch (96%) rename 0162-Make-the-menu-entry-users-option-argument-to-be-opti.patch => 0113-Make-the-menu-entry-users-option-argument-to-be-opti.patch (90%) rename 0163-Add-efi-export-env-and-efi-load-env-commands.patch => 0114-Add-efi-export-env-and-efi-load-env-commands.patch (90%) rename 0164-Make-it-possible-to-subtract-conditions-from-debug.patch => 0115-Make-it-possible-to-subtract-conditions-from-debug.patch (84%) rename 0165-Export-all-variables-from-the-initial-context-when-c.patch => 0116-Export-all-variables-from-the-initial-context-when-c.patch (84%) create mode 100644 0117-grub.d-Split-out-boot-success-reset-from-menu-auto-h.patch delete mode 100644 0118-Fix-one-more-coverity-complaint.patch rename 0170-Fix-systemctl-kexec-exit-status-check.patch => 0118-Fix-systemctl-kexec-exit-status-check.patch (88%) rename 0171-Print-grub-emu-linux-loader-messages-as-debug.patch => 0119-Print-grub-emu-linux-loader-messages-as-debug.patch (86%) rename 0172-Don-t-assume-that-boot-commands-will-only-return-on-.patch => 0120-Don-t-assume-that-boot-commands-will-only-return-on-.patch (76%) create mode 100644 0121-Do-better-in-bootstrap.conf.patch delete mode 100644 0121-grub-core-video-efi_gop.c-Add-support-for-BLT_ONLY-a.patch create mode 100644 0122-Use-git-to-apply-gnulib-patches.patch delete mode 100644 0122-efi-uga-use-64-bit-for-fb_base.patch delete mode 100644 0123-EFI-console-Do-not-set-text-mode-until-we-actually-n.patch rename 0182-grub-set-bootflag-Update-comment-about-running-as-ro.patch => 0123-grub-set-bootflag-Update-comment-about-running-as-ro.patch (79%) delete mode 100644 0124-EFI-console-Add-grub_console_read_key_stroke-helper-.patch rename 0183-grub-set-bootflag-Write-new-env-to-tmpfile-and-then-.patch => 0124-grub-set-bootflag-Write-new-env-to-tmpfile-and-then-.patch (95%) delete mode 100644 0125-EFI-console-Implement-getkeystatus-support.patch rename 0185-grub.d-Fix-boot_indeterminate-getting-set-on-boot_su.patch => 0125-grub.d-Fix-boot_indeterminate-getting-set-on-boot_su.patch (87%) rename 0190-Add-start-symbol-for-RISC-V.patch => 0126-Add-start-symbol-for-RISC-V.patch (81%) delete mode 100644 0126-Make-grub_getkeystatus-helper-funtion-available-ever.patch delete mode 100644 0127-Accept-ESC-F8-and-holding-SHIFT-as-user-interrupt-ke.patch create mode 100644 0127-bootstrap.conf-Force-autogen.sh-to-use-python3.patch rename 0194-efi-http-Export-fw-http-_path-variables-to-make-them.patch => 0128-efi-http-Export-fw-http-_path-variables-to-make-them.patch (84%) rename 0195-efi-http-Enclose-literal-IPv6-addresses-in-square-br.patch => 0129-efi-http-Enclose-literal-IPv6-addresses-in-square-br.patch (95%) delete mode 100644 0130-Output-a-menu-entry-for-firmware-setup-on-UEFI-FastB.patch rename 0196-efi-net-Allow-to-specify-a-port-number-in-addresses.patch => 0130-efi-net-Allow-to-specify-a-port-number-in-addresses.patch (89%) rename 0197-efi-ip4_config-Improve-check-to-detect-literal-IPv6-.patch => 0131-efi-ip4_config-Improve-check-to-detect-literal-IPv6-.patch (87%) rename 0198-efi-net-Print-a-debug-message-if-parsing-the-address.patch => 0132-efi-net-Print-a-debug-message-if-parsing-the-address.patch (92%) create mode 100644 0133-kern-term-Also-accept-F8-as-a-user-interrupt-key.patch rename 0205-efi-Set-image-base-address-before-jumping-to-the-PE-.patch => 0134-efi-Set-image-base-address-before-jumping-to-the-PE-.patch (76%) rename 0211-tpm-Don-t-propagate-TPM-measurement-errors-to-the-ve.patch => 0135-tpm-Don-t-propagate-TPM-measurement-errors-to-the-ve.patch (82%) rename 0214-x86-efi-Reduce-maximum-bounce-buffer-size-to-16-MiB.patch => 0136-x86-efi-Reduce-maximum-bounce-buffer-size-to-16-MiB.patch (88%) rename 0215-http-Prepend-prefix-when-the-HTTP-path-is-relative-a.patch => 0137-http-Prepend-prefix-when-the-HTTP-path-is-relative-a.patch (87%) create mode 100644 0138-Fix-a-missing-return-in-efi-export-env-and-efi-load-.patch create mode 100644 0139-efi-dhcp-fix-some-allocation-error-checking.patch create mode 100644 0140-efi-http-fix-some-allocation-error-checking.patch create mode 100644 0141-efi-ip-46-_config.c-fix-some-potential-allocation-ov.patch delete mode 100644 0141-strip-R-.note.gnu.property-at-more-places.patch create mode 100644 0142-efilinux-Fix-integer-overflows-in-grub_cmd_initrd.patch delete mode 100644 0143-Make-linux_arm_kernel_header.hdr_offset-be-at-the-ri.patch rename 0248-linuxefi-fail-kernel-validation-without-shim-protoco.patch => 0143-linuxefi-fail-kernel-validation-without-shim-protoco.patch (50%) create mode 100644 0144-Fix-const-char-pointers-in-grub-core-net-bootp.c.patch delete mode 100644 0144-Make-grub_error-more-verbose.patch create mode 100644 0145-Fix-const-char-pointers-in-grub-core-net-efi-ip4_con.patch delete mode 100644 0146-EFI-more-debug-output-on-GOP-and-UGA-probing.patch create mode 100644 0146-Fix-const-char-pointers-in-grub-core-net-efi-ip6_con.patch create mode 100644 0147-Fix-const-char-pointers-in-grub-core-net-efi-net.c.patch create mode 100644 0148-Fix-const-char-pointers-in-grub-core-net-efi-pxe.c.patch create mode 100644 0149-Add-systemd-integration-scripts-to-make-systemctl-re.patch create mode 100644 0150-systemd-integration.sh-Also-set-old-menu_show_once-g.patch create mode 100644 0151-at_keyboard-use-set-1-when-keyboard-is-in-Translate-.patch create mode 100644 0152-grub-install-disable-support-for-EFI-platforms.patch create mode 100644 0153-New-with-debug-timestamps-configure-flag-to-prepend-.patch create mode 100644 0154-Added-debug-statements-to-grub_disk_open-and-grub_di.patch create mode 100644 0155-Introduce-function-grub_debug_is_enabled-void-return.patch create mode 100644 0156-Don-t-clear-screen-when-debugging-is-enabled.patch create mode 100644 0157-grub_file_-instrumentation-new-file-debug-tag.patch create mode 100644 0158-ieee1275-Avoiding-many-unecessary-open-close.patch create mode 100644 0159-ieee1275-powerpc-implements-fibre-channel-discovery-.patch delete mode 100644 0160-Make-grub_strtol-end-pointers-have-safer-const-quali.patch create mode 100644 0160-ieee1275-powerpc-enables-device-mapper-discovery.patch create mode 100644 0161-Add-at_keyboard_fallback_set-var-to-force-the-set-ma.patch create mode 100644 0162-Add-suport-for-signing-grub-with-an-appended-signatu.patch create mode 100644 0163-docs-grub-Document-signing-grub-under-UEFI.patch create mode 100644 0164-docs-grub-Document-signing-grub-with-an-appended-sig.patch create mode 100644 0165-dl-provide-a-fake-grub_dl_set_persistent-for-the-emu.patch delete mode 100644 0166-Fix-the-looking-up-grub.cfg-XXX-while-tftp-booting.patch create mode 100644 0166-pgp-factor-out-rsa_pad.patch delete mode 100644 0167-Don-t-make-grub_strtoull-print-an-error-if-no-conver.patch create mode 100644 0167-crypto-move-storage-for-grub_crypto_pk_-to-crypto.c.patch delete mode 100644 0168-Fix-the-type-of-grub_efi_status_t.patch create mode 100644 0168-posix_wrap-tweaks-in-preparation-for-libtasn1.patch delete mode 100644 0169-grub.d-Split-out-boot-success-reset-from-menu-auto-h.patch create mode 100644 0169-libtasn1-import-libtasn1-4.16.0.patch create mode 100644 0170-libtasn1-disable-code-not-needed-in-grub.patch create mode 100644 0171-libtasn1-changes-for-grub-compatibility.patch create mode 100644 0172-libtasn1-compile-into-asn1-module.patch delete mode 100644 0173-Fix-undefined-references-for-fdt-when-building-with-.patch create mode 100644 0173-test_asn1-test-module-for-libtasn1.patch delete mode 100644 0174-autogen.sh-use-find-wholename-for-long-path-matches.patch create mode 100644 0174-grub-install-support-embedding-x509-certificates.patch delete mode 100644 0175-Fix-build-error-with-the-fdt-module-on-risc-v.patch create mode 100644 0175-appended-signatures-import-GNUTLS-s-ASN.1-descriptio.patch delete mode 100644 0176-RISC-V-Fix-computation-of-pc-relative-relocation-off.patch create mode 100644 0176-appended-signatures-parse-PKCS-7-signedData-and-X.50.patch create mode 100644 0177-appended-signatures-support-verifying-appended-signa.patch delete mode 100644 0177-blscfg-Add-support-for-the-devicetree-field.patch delete mode 100644 0178-Set-a-devicetree-var-in-a-BLS-config-if-GRUB_DEFAULT.patch create mode 100644 0178-appended-signatures-verification-tests.patch delete mode 100644 0179-Don-t-add-a-class-option-to-menu-entries-generated-f.patch create mode 100644 0179-appended-signatures-documentation.patch delete mode 100644 0180-10_linux.in-Also-use-GRUB_CMDLINE_LINUX_DEFAULT-to-s.patch create mode 100644 0180-ieee1275-enter-lockdown-based-on-ibm-secure-boot.patch delete mode 100644 0181-blscfg-Don-t-hardcode-an-env-var-as-fallback-for-the.patch create mode 100644 0181-ieee1275-drop-HEAP_MAX_ADDR-HEAP_MIN_SIZE.patch create mode 100644 0182-ieee1275-claim-more-memory.patch create mode 100644 0183-ieee1275-request-memory-with-ibm-client-architecture.patch create mode 100644 0184-appendedsig-x509-Also-handle-the-Extended-Key-Usage-.patch delete mode 100644 0184-blscfg-add-a-space-char-when-appending-fields-for-va.patch create mode 100644 0185-ieee1275-ofdisk-retry-on-open-failure.patch create mode 100644 0186-Allow-chainloading-EFI-apps-from-loop-mounts.patch delete mode 100644 0186-blscfg-Add-support-for-sorting-the-plus-higher-than-.patch delete mode 100644 0187-Fix-savedefault-with-blscfg.patch create mode 100644 0187-efinet-Add-DHCP-proxy-support.patch delete mode 100644 0188-Also-define-GRUB_EFI_MAX_ALLOCATION_ADDRESS-for-RISC.patch create mode 100644 0188-fs-ext2-Ignore-checksum-seed-incompat-feature.patch create mode 100644 0189-Don-t-update-the-cmdline-when-generating-legacy-menu.patch delete mode 100644 0189-chainloader-Define-machine-types-for-RISC-V.patch create mode 100644 0190-Suppress-gettext-error-message.patch delete mode 100644 0191-RISC-V-Add-__clzdi2-symbol.patch create mode 100644 0191-grub-set-password-Always-use-boot-grub2-user.cfg-as-.patch delete mode 100644 0192-grub-install-Define-default-platform-for-RISC-V.patch create mode 100644 0192-templates-Check-for-EFI-at-runtime-instead-of-config.patch delete mode 100644 0193-blscfg-Always-use-the-root-variable-to-search-for-BL.patch create mode 100644 0193-efi-Print-an-error-if-boot-to-firmware-setup-is-not-.patch rename backport-arm64-Fix-EFI-loader-kernel-image-allocation.patch => 0194-arm64-Fix-EFI-loader-kernel-image-allocation.patch (73%) create mode 100644 0195-normal-main-Discover-the-device-to-read-the-config-f.patch create mode 100644 0196-powerpc-adjust-setting-of-prefix-for-signed-binary-c.patch create mode 100644 0197-fs-xfs-Fix-unreadable-filesystem-with-v4-superblock.patch create mode 100644 0198-Print-module-name-on-license-check-failure.patch delete mode 100644 0199-blscfg-return-NULL-instead-of-a-zero-length-array-in.patch create mode 100644 0199-powerpc-ieee1275-load-grub-at-4MB-not-2MB.patch create mode 100644 0200-grub-mkconfig-restore-umask-for-grub.cfg.patch delete mode 100644 0200-grub-switch-to-blscfg-Update-grub2-binary-in-ESP-for.patch create mode 100644 0201-fs-btrfs-Use-full-btrfs-bootloader-area.patch delete mode 100644 0201-grub-switch-to-blscfg-Only-mark-GRUB-as-BLS-supporte.patch delete mode 100644 0202-10_linux.in-Merge-logic-from-10_linux_bls-and-drop-t.patch delete mode 100644 0203-grub-switch-to-blscfg-Use-install-to-copy-GRUB-binar.patch delete mode 100644 0204-10_linux.in-Enable-BLS-configuration-if-new-kernel-p.patch delete mode 100644 0206-blscfg-Lookup-default_kernelopts-variable-as-fallbac.patch delete mode 100644 0207-10_linux.in-fix-early-exit-due-error-when-reading-pe.patch delete mode 100644 0208-envblk-Fix-buffer-overrun-when-attempting-to-shrink-.patch delete mode 100644 0209-10_linux.in-Store-cmdline-in-BLS-snippets-instead-of.patch delete mode 100644 0210-10_linux.in-restore-existence-check-in-get_sorted_bl.patch delete mode 100644 0212-tpm-Enable-module-for-all-EFI-platforms.patch delete mode 100644 0213-10_linux.in-Don-t-update-BLS-files-that-aren-t-manag.patch delete mode 100644 0216-fix-build-with-rpm-4.16.patch delete mode 100644 0217-Only-mark-GRUB-as-BLS-supported-in-OSTree-systems-wi.patch delete mode 100644 0218-support-TPM2.0-in-grub2-both-legacy-and-efi.patch delete mode 100644 0219-Workaround-for-EFI-Bug-Plan3.patch delete mode 100644 0220-bugfix-remove-excess-qutos.patch delete mode 100644 0221-yylex-Make-lexer-fatal-errors-actually-be-fatal.patch delete mode 100644 0222-safemath-Add-some-arithmetic-primitives-that-check-f.patch delete mode 100644 0223-calloc-Make-sure-we-always-have-an-overflow-checking.patch delete mode 100644 0224-calloc-Use-calloc-at-most-places.patch delete mode 100644 0225-malloc-Use-overflow-checking-primitives-where-we-do-.patch delete mode 100644 0226-iso9660-Don-t-leak-memory-on-realloc-failures.patch delete mode 100644 0227-font-Do-not-load-more-than-one-NAME-section.patch delete mode 100644 0228-gfxmenu-Fix-double-free-in-load_image.patch delete mode 100644 0229-xnu-Fix-double-free-in-grub_xnu_devprop_add_property.patch delete mode 100644 0230-lzma-Make-sure-we-don-t-dereference-past-array.patch delete mode 100644 0231-term-Fix-overflow-on-user-inputs.patch delete mode 100644 0232-udf-Fix-memory-leak.patch delete mode 100644 0233-multiboot2-Fix-memory-leak-if-grub_create_loader_cmd.patch delete mode 100644 0234-tftp-Do-not-use-priority-queue.patch delete mode 100644 0235-relocator-Protect-grub_relocator_alloc_chunk_addr-in.patch delete mode 100644 0236-multiboot2-Set-min-address-for-mbi-allocation-to-0x1.patch delete mode 100644 0237-relocator-Protect-grub_relocator_alloc_chunk_align-m.patch delete mode 100644 0238-script-Remove-unused-fields-from-grub_script_functio.patch delete mode 100644 0239-script-Avoid-a-use-after-free-when-redefining-a-func.patch delete mode 100644 0240-relocator-Fix-grub_relocator_alloc_chunk_align-top-m.patch delete mode 100644 0241-hfsplus-Fix-two-more-overflows.patch delete mode 100644 0242-lvm-Fix-two-more-potential-data-dependent-alloc-over.patch delete mode 100644 0243-efi-Fix-some-malformed-device-path-arithmetic-errors.patch delete mode 100644 0244-efi-chainloader-Propagate-errors-from-copy_file_path.patch delete mode 100644 0245-efi-Fix-use-after-free-in-halt-reboot-path.patch delete mode 100644 0246-loader-linux-Avoid-overflow-on-initrd-size-calculati.patch delete mode 100644 0247-linux-Fix-integer-overflows-in-initrd-size-handling.patch delete mode 100644 0249-remove-08_fallback_counting.in-apply-grubby.patch delete mode 100644 0250-tftp-roll-over-block-counter-to-prevent-timeouts-wit.patch delete mode 100644 backport-0001-CVE-2020-27749.patch delete mode 100644 backport-0001-CVE-2020-27779-and-CVE-2020-14372.patch delete mode 100644 backport-0001-mmap-Fix-memory-leak-when-iterating-over-mapped-memo.patch delete mode 100644 backport-0002-CVE-2020-27749.patch delete mode 100644 backport-0002-CVE-2020-27779-and-CVE-2020-14372.patch delete mode 100644 backport-0002-net-net-Fix-possible-dereference-to-of-a-NULL-pointe.patch delete mode 100644 backport-0003-CVE-2020-27749.patch delete mode 100644 backport-0003-CVE-2020-27779-and-CVE-2020-14372.patch delete mode 100644 backport-0003-net-tftp-Fix-dangling-memory-pointer.patch delete mode 100644 backport-0004-CVE-2020-27749.patch delete mode 100644 backport-0004-CVE-2020-27779-and-CVE-2020-14372.patch delete mode 100644 backport-0004-kern-efi-Fix-memory-leak-on-failure.patch delete mode 100644 backport-0005-CVE-2020-27749.patch delete mode 100644 backport-0005-CVE-2020-27779-and-CVE-2020-14372.patch delete mode 100644 backport-0005-kern-efi-mm-Fix-possible-NULL-pointer-dereference.patch delete mode 100644 backport-0006-CVE-2020-27749.patch delete mode 100644 backport-0006-CVE-2020-27779-and-CVE-2020-14372.patch delete mode 100644 backport-0006-zstd-Initialize-seq_t-structure-fully.patch delete mode 100644 backport-0007-CVE-2020-27749.patch delete mode 100644 backport-0007-CVE-2020-27779-and-CVE-2020-14372.patch delete mode 100644 backport-0007-kern-partition-Check-for-NULL-before-dereferencing-i.patch delete mode 100644 backport-0008-CVE-2020-27779-and-CVE-2020-14372.patch delete mode 100644 backport-0008-disk-ldm-Make-sure-comp-data-is-freed-before-exiting.patch delete mode 100644 backport-0009-CVE-2020-27779-and-CVE-2020-14372.patch delete mode 100644 backport-0009-disk-ldm-If-failed-then-free-vg-variable-too.patch delete mode 100644 backport-0010-CVE-2020-27779-and-CVE-2020-14372.patch delete mode 100644 backport-0010-disk-ldm-Fix-memory-leak-on-uninserted-lv-references.patch delete mode 100644 backport-0011-CVE-2020-27779-and-CVE-2020-14372.patch delete mode 100644 backport-0011-hfsplus-Check-that-the-volume-name-length-is-valid.patch delete mode 100644 backport-0012-CVE-2020-27779-and-CVE-2020-14372.patch delete mode 100644 backport-0012-zfs-Fix-possible-negative-shift-operation.patch delete mode 100644 backport-0013-zfs-Fix-resource-leaks-while-constructing-path.patch delete mode 100644 backport-0014-zfs-Fix-possible-integer-overflows.patch delete mode 100644 backport-0015-zfsinfo-Correct-a-check-for-error-allocating-memory.patch delete mode 100644 backport-0016-affs-Fix-memory-leaks.patch delete mode 100644 backport-0017-libgcrypt-mpi-Fix-possible-unintended-sign-extension.patch delete mode 100644 backport-0018-libgcrypt-mpi-Fix-possible-NULL-dereference.patch delete mode 100644 backport-0019-syslinux-Fix-memory-leak-while-parsing.patch delete mode 100644 backport-0020-normal-completion-Fix-leaking-of-memory-when-process.patch delete mode 100644 backport-0021-commands-hashsum-Fix-a-memory-leak.patch delete mode 100644 backport-0022-video-efi_gop-Remove-unnecessary-return-value-of-gru.patch delete mode 100644 backport-0023-video-fb-fbfill-Fix-potential-integer-overflow.patch delete mode 100644 backport-0024-video-fb-video_fb-Fix-multiple-integer-overflows.patch delete mode 100644 backport-0025-video-fb-video_fb-Fix-possible-integer-overflow.patch delete mode 100644 backport-0026-video-readers-jpeg-Test-for-an-invalid-next-marker-r.patch delete mode 100644 backport-0027-gfxmenu-gui_list-Remove-code-that-coverity-is-flaggi.patch delete mode 100644 backport-0028-loader-bsd-Check-for-NULL-arg-up-front.patch delete mode 100644 backport-0029-loader-xnu-Fix-memory-leak.patch delete mode 100644 backport-0030-loader-xnu-Free-driverkey-data-when-an-error-is-dete.patch delete mode 100644 backport-0031-loader-xnu-Check-if-pointer-is-NULL-before-using-it.patch delete mode 100644 backport-0032-util-grub-install-Fix-NULL-pointer-dereferences.patch delete mode 100644 backport-0033-util-grub-editenv-Fix-incorrect-casting-of-a-signed-.patch delete mode 100644 backport-0034-util-glue-efi-Fix-incorrect-use-of-a-possibly-negati.patch delete mode 100644 backport-0035-script-execute-Fix-NULL-dereference-in-grub_script_e.patch delete mode 100644 backport-0036-commands-ls-Require-device_name-is-not-NULL-before-p.patch delete mode 100644 backport-0037-script-execute-Avoid-crash-when-using-outside-a-func.patch delete mode 100644 backport-0038-script-execute-Don-t-crash-on-a-for-loop-with-no-ite.patch delete mode 100644 backport-0039-kern-misc-Always-set-end-in-grub_strtoull.patch delete mode 100644 backport-0040-video-readers-jpeg-Catch-files-with-unsupported-quan.patch delete mode 100644 backport-0041-video-readers-jpeg-Catch-OOB-reads-writes-in-grub_jp.patch delete mode 100644 backport-0042-video-readers-jpeg-Don-t-decode-data-before-start-of.patch delete mode 100644 backport-0043-term-gfxterm-Don-t-set-up-a-font-with-glyphs-that-ar.patch delete mode 100644 backport-0044-fs-fshelp-Catch-impermissibly-large-block-sizes-in-r.patch delete mode 100644 backport-0045-fs-hfsplus-Don-t-fetch-a-key-beyond-the-end-of-the-n.patch delete mode 100644 backport-0046-fs-hfsplus-Don-t-use-uninitialized-data-on-corrupt-f.patch delete mode 100644 backport-0047-fs-hfs-Disable-under-lockdown.patch delete mode 100644 backport-0048-fs-sfs-Fix-over-read-of-root-object-name.patch delete mode 100644 backport-0049-fs-jfs-Do-not-move-to-leaf-level-if-name-length-is-n.patch delete mode 100644 backport-0050-fs-jfs-Limit-the-extents-that-getblk-can-consider.patch delete mode 100644 backport-0051-fs-jfs-Catch-infinite-recursion.patch delete mode 100644 backport-0052-fs-nilfs2-Reject-too-large-keys.patch delete mode 100644 backport-0053-fs-nilfs2-Don-t-search-children-if-provided-number-i.patch delete mode 100644 backport-0054-fs-nilfs2-Properly-bail-on-errors-in-grub_nilfs2_btr.patch delete mode 100644 backport-0055-io-gzio-Bail-if-gzio-tl-td-is-NULL.patch delete mode 100644 backport-0056-io-gzio-Add-init_dynamic_block-clean-up-if-unpacking.patch delete mode 100644 backport-0057-io-gzio-Catch-missing-values-in-huft_build-and-bail.patch delete mode 100644 backport-0058-io-gzio-Zero-gzio-tl-td-in-init_dynamic_block-if-huf.patch delete mode 100644 backport-0059-disk-lvm-Don-t-go-beyond-the-end-of-the-data-we-read.patch delete mode 100644 backport-0060-disk-lvm-Don-t-blast-past-the-end-of-the-circular-me.patch delete mode 100644 backport-0061-disk-lvm-Bail-on-missing-PV-list.patch delete mode 100644 backport-0062-disk-lvm-Do-not-crash-if-an-expected-string-is-not-f.patch delete mode 100644 backport-0063-lvm-Add-LVM-cache-logical-volume-handling.patch delete mode 100644 backport-0064-disk-lvm-Do-not-overread-metadata.patch delete mode 100644 backport-0065-disk-lvm-Sanitize-rlocn-offset-to-prevent-wild-read.patch delete mode 100644 backport-0066-disk-lvm-Do-not-allow-a-LV-to-be-it-s-own-segment-s-.patch delete mode 100644 backport-0067-fs-btrfs-Validate-the-number-of-stripes-parities-in-.patch delete mode 100644 backport-0068-fs-btrfs-Squash-some-uninitialized-reads.patch delete mode 100644 backport-0069-kern-efi-Add-initial-stack-protector-implementation.patch delete mode 100644 backport-0070-util-mkimage-Remove-unused-code-to-add-BSS-section.patch delete mode 100644 backport-0071-util-mkimage-Use-grub_host_to_target32-instead-of-gr.patch delete mode 100644 backport-0072-kern-mm-Fix-grub_debug_calloc-compilation-error.patch delete mode 100644 backport-0073-grub-mkconfig-Fix-typo-in-help-output.patch delete mode 100644 backport-0074-at_keyboard-Fix-unreliable-key-presses.patch delete mode 100644 backport-0075-hostdisk-Set-linux-file-descriptor-to-O_CLOEXEC-as-d.patch delete mode 100644 backport-0076-squash4-Fix-an-uninitialized-variable.patch delete mode 100644 backport-0077-efi-tpm-Fix-memory-leak-in-grub_tpm1-2_log_event.patch delete mode 100644 backport-0078-powerpc-mkimage-Fix-CHRP-note-descsz.patch delete mode 100644 backport-0079-efi-tpm-Fix-typo-in-grub_efi_tpm2_protocol-struct.patch delete mode 100644 backport-0080-misc-Add-parentheses-around-ALIGN_UP-and-ALIGN_DOWN-.patch delete mode 100644 backport-0081-verifiers-Fix-calling-uninitialized-function-pointer.patch delete mode 100644 backport-Arm-check-for-the-PE-magic-for-the-compiled-arch.patch delete mode 100644 backport-CVE-2020-25632.patch delete mode 100644 backport-CVE-2020-25647.patch delete mode 100644 backport-CVE-2021-20225.patch delete mode 100644 backport-CVE-2021-20233.patch delete mode 100644 backport-templates-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch create mode 100644 bootstrap create mode 100644 bootstrap.conf create mode 100644 gnulib-fixes.tar.gz delete mode 100644 grub-2.04.tar.xz create mode 100644 grub-2.06.tar.xz delete mode 100644 installkernel-bls delete mode 100644 installkernel.in create mode 100644 unifont-13.0.06.pcf.gz delete mode 100644 unifont-5.1.20080820.pcf.gz diff --git a/0001-Revert-templates-Fix-user-facing-typo-with-an-incorr.patch b/0001-Revert-templates-Fix-user-facing-typo-with-an-incorr.patch new file mode 100644 index 0000000..fcc7825 --- /dev/null +++ b/0001-Revert-templates-Fix-user-facing-typo-with-an-incorr.patch @@ -0,0 +1,24 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Fri, 11 Jun 2021 12:10:45 +0200 +Subject: [PATCH] Revert "templates: Fix user-facing typo with an incorrect use + of "it's"" + +This reverts commit 722737630889607c3b5761f1f5a48f1674cd2821. +--- + util/grub.d/30_os-prober.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in +index 5984e92d291..94622481284 100644 +--- a/util/grub.d/30_os-prober.in ++++ b/util/grub.d/30_os-prober.in +@@ -36,7 +36,7 @@ if ! command -v os-prober > /dev/null || ! command -v linux-boot-prober > /dev/n + exit 0 + fi + +-grub_warn "$(gettext_printf "os-prober will be executed to detect other bootable partitions.\nIts output will be used to detect bootable binaries on them and create new boot entries.")" ++grub_warn "$(gettext_printf "os-prober will be executed to detect other bootable partitions.\nIt's output will be used to detect bootable binaries on them and create new boot entries.")" + + OSPROBED="`os-prober | tr ' ' '^' | paste -s -d ' '`" + if [ -z "${OSPROBED}" ] ; then diff --git a/0002-Revert-templates-Properly-disable-the-os-prober-by-d.patch b/0002-Revert-templates-Properly-disable-the-os-prober-by-d.patch new file mode 100644 index 0000000..4187765 --- /dev/null +++ b/0002-Revert-templates-Properly-disable-the-os-prober-by-d.patch @@ -0,0 +1,71 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Fri, 11 Jun 2021 12:10:54 +0200 +Subject: [PATCH] Revert "templates: Properly disable the os-prober by default" + +This reverts commit 54e0a1bbf1e9106901a557195bb35e5e20fb3925. +--- + util/grub-mkconfig.in | 5 +---- + util/grub.d/30_os-prober.in | 8 ++++---- + 2 files changed, 5 insertions(+), 8 deletions(-) + +diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in +index f8cbb8d7a2b..d3e879b8e5c 100644 +--- a/util/grub-mkconfig.in ++++ b/util/grub-mkconfig.in +@@ -140,9 +140,6 @@ GRUB_DEVICE_PARTUUID="`${grub_probe} --device ${GRUB_DEVICE} --target=partuuid 2 + GRUB_DEVICE_BOOT="`${grub_probe} --target=device /boot`" + GRUB_DEVICE_BOOT_UUID="`${grub_probe} --device ${GRUB_DEVICE_BOOT} --target=fs_uuid 2> /dev/null`" || true + +-# Disable os-prober by default due to security reasons. +-GRUB_DISABLE_OS_PROBER="true" +- + # Filesystem for the device containing our userland. Used for stuff like + # choosing Hurd filesystem module. + GRUB_FS="`${grub_probe} --device ${GRUB_DEVICE} --target=fs 2> /dev/null || echo unknown`" +@@ -204,7 +201,6 @@ export GRUB_DEVICE \ + GRUB_DEVICE_PARTUUID \ + GRUB_DEVICE_BOOT \ + GRUB_DEVICE_BOOT_UUID \ +- GRUB_DISABLE_OS_PROBER \ + GRUB_FS \ + GRUB_FONT \ + GRUB_PRELOAD_MODULES \ +@@ -246,6 +242,7 @@ export GRUB_DEFAULT \ + GRUB_BACKGROUND \ + GRUB_THEME \ + GRUB_GFXPAYLOAD_LINUX \ ++ GRUB_DISABLE_OS_PROBER \ + GRUB_INIT_TUNE \ + GRUB_SAVEDEFAULT \ + GRUB_ENABLE_CRYPTODISK \ +diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in +index 94622481284..80685b15f4d 100644 +--- a/util/grub.d/30_os-prober.in ++++ b/util/grub.d/30_os-prober.in +@@ -26,8 +26,8 @@ export TEXTDOMAINDIR="@localedir@" + + . "$pkgdatadir/grub-mkconfig_lib" + +-if [ "x${GRUB_DISABLE_OS_PROBER}" = "xtrue" ]; then +- grub_warn "$(gettext_printf "os-prober will not be executed to detect other bootable partitions.\nSystems on them will not be added to the GRUB boot configuration.\nCheck GRUB_DISABLE_OS_PROBER documentation entry.")" ++if [ "x${GRUB_DISABLE_OS_PROBER}" = "xfalse" ]; then ++ gettext_printf "os-prober will not be executed to detect other bootable partitions.\nSystems on them will not be added to the GRUB boot configuration.\nCheck GRUB_DISABLE_OS_PROBER documentation entry.\n" + exit 0 + fi + +@@ -36,12 +36,12 @@ if ! command -v os-prober > /dev/null || ! command -v linux-boot-prober > /dev/n + exit 0 + fi + +-grub_warn "$(gettext_printf "os-prober will be executed to detect other bootable partitions.\nIt's output will be used to detect bootable binaries on them and create new boot entries.")" +- + OSPROBED="`os-prober | tr ' ' '^' | paste -s -d ' '`" + if [ -z "${OSPROBED}" ] ; then + # empty os-prober output, nothing doing + exit 0 ++else ++ grub_warn "$(gettext_printf "os-prober was executed to detect other bootable partitions.\nIt's output will be used to detect bootable binaries on them and create new boot entries.")" + fi + + osx_entry() { diff --git a/0003-Revert-templates-Disable-the-os-prober-by-default.patch b/0003-Revert-templates-Disable-the-os-prober-by-default.patch new file mode 100644 index 0000000..68cacfc --- /dev/null +++ b/0003-Revert-templates-Disable-the-os-prober-by-default.patch @@ -0,0 +1,70 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Fri, 11 Jun 2021 12:10:58 +0200 +Subject: [PATCH] Revert "templates: Disable the os-prober by default" + +This reverts commit e346414725a70e5c74ee87ca14e580c66f517666. +--- + docs/grub.texi | 18 ++++++++---------- + util/grub.d/30_os-prober.in | 5 +---- + 2 files changed, 9 insertions(+), 14 deletions(-) + +diff --git a/docs/grub.texi b/docs/grub.texi +index f8b4b3b21a7..69f08d289f9 100644 +--- a/docs/grub.texi ++++ b/docs/grub.texi +@@ -1519,13 +1519,10 @@ boot sequence. If you have problems, set this option to @samp{text} and + GRUB will tell Linux to boot in normal text mode. + + @item GRUB_DISABLE_OS_PROBER +-The @command{grub-mkconfig} has a feature to use the external +-@command{os-prober} program to discover other operating systems installed on +-the same machine and generate appropriate menu entries for them. It is disabled +-by default since automatic and silent execution of @command{os-prober}, and +-creating boot entries based on that data, is a potential attack vector. Set +-this option to @samp{false} to enable this feature in the +-@command{grub-mkconfig} command. ++Normally, @command{grub-mkconfig} will try to use the external ++@command{os-prober} program, if installed, to discover other operating ++systems installed on the same system and generate appropriate menu entries ++for them. Set this option to @samp{true} to disable this. + + @item GRUB_OS_PROBER_SKIP_LIST + List of space-separated FS UUIDs of filesystems to be ignored from os-prober +@@ -1853,9 +1850,10 @@ than zero; otherwise 0. + @section Multi-boot manual config + + Currently autogenerating config files for multi-boot environments depends on +-os-prober and has several shortcomings. Due to that it is disabled by default. +-It is advised to use the power of GRUB syntax and do it yourself. A possible +-configuration is detailed here, feel free to adjust to your needs. ++os-prober and has several shortcomings. While fixing it is scheduled for the ++next release, meanwhile you can make use of the power of GRUB syntax and do it ++yourself. A possible configuration is detailed here, feel free to adjust to your ++needs. + + First create a separate GRUB partition, big enough to hold GRUB. Some of the + following entries show how to load OS installer images from this same partition, +diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in +index 80685b15f4d..1b91c102f35 100644 +--- a/util/grub.d/30_os-prober.in ++++ b/util/grub.d/30_os-prober.in +@@ -26,8 +26,7 @@ export TEXTDOMAINDIR="@localedir@" + + . "$pkgdatadir/grub-mkconfig_lib" + +-if [ "x${GRUB_DISABLE_OS_PROBER}" = "xfalse" ]; then +- gettext_printf "os-prober will not be executed to detect other bootable partitions.\nSystems on them will not be added to the GRUB boot configuration.\nCheck GRUB_DISABLE_OS_PROBER documentation entry.\n" ++if [ "x${GRUB_DISABLE_OS_PROBER}" = "xtrue" ]; then + exit 0 + fi + +@@ -40,8 +39,6 @@ OSPROBED="`os-prober | tr ' ' '^' | paste -s -d ' '`" + if [ -z "${OSPROBED}" ] ; then + # empty os-prober output, nothing doing + exit 0 +-else +- grub_warn "$(gettext_printf "os-prober was executed to detect other bootable partitions.\nIt's output will be used to detect bootable binaries on them and create new boot entries.")" + fi + + osx_entry() { diff --git a/0001-Add-support-for-Linux-EFI-stub-loading.patch b/0004-Add-support-for-Linux-EFI-stub-loading.patch similarity index 92% rename from 0001-Add-support-for-Linux-EFI-stub-loading.patch rename to 0004-Add-support-for-Linux-EFI-stub-loading.patch index e839b15..73d231a 100644 --- a/0001-Add-support-for-Linux-EFI-stub-loading.patch +++ b/0004-Add-support-for-Linux-EFI-stub-loading.patch @@ -1,7 +1,7 @@ -From a66a5e1ff5e4ad4df490754bfe41839a43cad1d5 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthew Garrett -Date: Fri, 5 Jul 2019 18:36:44 +0200 -Subject: [PATCH 001/220] Add support for Linux EFI stub loading. +Date: Tue, 10 Jul 2012 11:58:52 -0400 +Subject: [PATCH] Add support for Linux EFI stub loading. Also: @@ -29,25 +29,25 @@ moves the check into grub_dl_load_file. grub-core/kern/dl.c | 21 +++ grub-core/kern/efi/efi.c | 28 ++++ grub-core/kern/efi/mm.c | 32 ++++ - grub-core/loader/arm64/linux.c | 112 +++++++------ + grub-core/loader/arm64/linux.c | 118 +++++++------- grub-core/loader/arm64/xen_boot.c | 1 - grub-core/loader/efi/linux.c | 70 ++++++++ grub-core/loader/i386/efi/linux.c | 335 ++++++++++++++++++++++++++++++++++++++ grub-core/loader/i386/pc/linux.c | 10 +- include/grub/arm/linux.h | 9 + - include/grub/arm64/linux.h | 10 ++ + include/grub/arm64/linux.h | 9 + include/grub/efi/efi.h | 7 +- include/grub/efi/linux.h | 31 ++++ - 13 files changed, 616 insertions(+), 66 deletions(-) + 13 files changed, 618 insertions(+), 69 deletions(-) create mode 100644 grub-core/loader/efi/linux.c create mode 100644 grub-core/loader/i386/efi/linux.c create mode 100644 include/grub/efi/linux.h diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 474a63e..581d9df 100644 +index 8022e1c0a79..45d3edaa4dc 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def -@@ -1709,13 +1709,6 @@ module = { +@@ -1734,13 +1734,6 @@ module = { enable = i386_pc; }; @@ -61,7 +61,7 @@ index 474a63e..581d9df 100644 module = { name = ntldr; i386_pc = loader/i386/pc/ntldr.c; -@@ -1771,7 +1764,9 @@ module = { +@@ -1796,7 +1789,9 @@ module = { module = { name = linux; @@ -72,7 +72,7 @@ index 474a63e..581d9df 100644 i386_xen_pvh = loader/i386/linux.c; xen = loader/i386/xen.c; i386_pc = lib/i386/pc/vesa_modes_table.c; -@@ -1786,9 +1781,14 @@ module = { +@@ -1811,9 +1806,14 @@ module = { arm64 = loader/arm64/linux.c; riscv32 = loader/riscv/linux.c; riscv64 = loader/riscv/linux.c; @@ -88,7 +88,7 @@ index 474a63e..581d9df 100644 module = { diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c -index 48eb5e7..896bebf 100644 +index 48f8a79073d..b7149370950 100644 --- a/grub-core/kern/dl.c +++ b/grub-core/kern/dl.c @@ -38,6 +38,14 @@ @@ -106,7 +106,7 @@ index 48eb5e7..896bebf 100644 #pragma GCC diagnostic ignored "-Wcast-align" -@@ -686,6 +694,19 @@ grub_dl_load_file (const char *filename) +@@ -695,6 +703,19 @@ grub_dl_load_file (const char *filename) void *core = 0; grub_dl_t mod = 0; @@ -127,11 +127,11 @@ index 48eb5e7..896bebf 100644 file = grub_file_open (filename, GRUB_FILE_TYPE_GRUB_MODULE); diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index 6e1ceb9..a0faa40 100644 +index 8cff7be0289..35b8f670602 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c -@@ -273,6 +273,34 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, - return NULL; +@@ -286,6 +286,34 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, + return grub_efi_get_variable_with_attributes (var, guid, datasize_out, data_out, NULL); } +grub_efi_boolean_t @@ -166,7 +166,7 @@ index 6e1ceb9..a0faa40 100644 /* Search the mods section from the PE32/PE32+ image. This code uses diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c -index b02fab1..a9e3710 100644 +index 9838fb2f50d..f6aef0ef649 100644 --- a/grub-core/kern/efi/mm.c +++ b/grub-core/kern/efi/mm.c @@ -113,6 +113,38 @@ grub_efi_drop_alloc (grub_efi_physical_address_t address, @@ -209,7 +209,7 @@ index b02fab1..a9e3710 100644 void * grub_efi_allocate_pages_real (grub_efi_physical_address_t address, diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index ef3e9f9..a312c66 100644 +index ef3e9f9444c..a312c668685 100644 --- a/grub-core/loader/arm64/linux.c +++ b/grub-core/loader/arm64/linux.c @@ -29,6 +29,7 @@ @@ -238,41 +238,20 @@ index ef3e9f9..a312c66 100644 void *fdt; -@@ -102,6 +105,25 @@ finalize_params_linux (void) +@@ -102,79 +105,70 @@ finalize_params_linux (void) if (grub_fdt_install() != GRUB_ERR_NONE) goto failure; -+ grub_dprintf ("linux", "Installed/updated FDT configuration table @ %p\n", -+ fdt); -+ -+ /* Convert command line to UCS-2 */ -+ loaded_image = grub_efi_get_loaded_image (grub_efi_image_handle); -+ if (!loaded_image) -+ goto failure; -+ -+ loaded_image->load_options_size = len = -+ (grub_strlen (linux_args) + 1) * sizeof (grub_efi_char16_t); -+ loaded_image->load_options = -+ grub_efi_allocate_any_pages (GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); -+ if (!loaded_image->load_options) -+ return grub_error(GRUB_ERR_BAD_OS, "failed to create kernel parameters"); -+ -+ loaded_image->load_options_size = -+ 2 * grub_utf8_to_utf16 (loaded_image->load_options, len, -+ (grub_uint8_t *) linux_args, len, NULL); -+ - return GRUB_ERR_NONE; - - failure: -@@ -109,72 +131,44 @@ failure: - return grub_error(GRUB_ERR_BAD_OS, "failed to install/update FDT"); - } - +- return GRUB_ERR_NONE; +- +-failure: +- grub_fdt_unload(); +- return grub_error(GRUB_ERR_BAD_OS, "failed to install/update FDT"); +-} +- -grub_err_t -grub_arch_efi_linux_boot_image (grub_addr_t addr, grub_size_t size, char *args) -+static void -+free_params (void) - { +-{ - grub_efi_memory_mapped_device_path_t *mempath; - grub_efi_handle_t image_handle; - grub_efi_boot_services_t *b; @@ -290,8 +269,7 @@ index ef3e9f9..a312c66 100644 - mempath[0].memory_type = GRUB_EFI_LOADER_DATA; - mempath[0].start_address = addr; - mempath[0].end_address = addr + size; -+ grub_efi_loaded_image_t *loaded_image = NULL; - +- - mempath[1].header.type = GRUB_EFI_END_DEVICE_PATH_TYPE; - mempath[1].header.subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; - mempath[1].header.length = sizeof (grub_efi_device_path_t); @@ -302,6 +280,50 @@ index ef3e9f9..a312c66 100644 - (void *) addr, size, &image_handle); - if (status != GRUB_EFI_SUCCESS) - return grub_error (GRUB_ERR_BAD_OS, "cannot load image"); +- +- grub_dprintf ("linux", "linux command line: '%s'\n", args); ++ grub_dprintf ("linux", "Installed/updated FDT configuration table @ %p\n", ++ fdt); + + /* Convert command line to UCS-2 */ +- loaded_image = grub_efi_get_loaded_image (image_handle); ++ loaded_image = grub_efi_get_loaded_image (grub_efi_image_handle); ++ if (!loaded_image) ++ goto failure; ++ + loaded_image->load_options_size = len = +- (grub_strlen (args) + 1) * sizeof (grub_efi_char16_t); ++ (grub_strlen (linux_args) + 1) * sizeof (grub_efi_char16_t); + loaded_image->load_options = + grub_efi_allocate_any_pages (GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); + if (!loaded_image->load_options) +- return grub_errno; ++ return grub_error(GRUB_ERR_BAD_OS, "failed to create kernel parameters"); + + loaded_image->load_options_size = + 2 * grub_utf8_to_utf16 (loaded_image->load_options, len, +- (grub_uint8_t *) args, len, NULL); ++ (grub_uint8_t *) linux_args, len, NULL); + +- grub_dprintf ("linux", "starting image %p\n", image_handle); +- status = b->start_image (image_handle, 0, NULL); ++ return GRUB_ERR_NONE; + +- /* When successful, not reached */ +- b->unload_image (image_handle); +- grub_efi_free_pages ((grub_addr_t) loaded_image->load_options, +- GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); ++failure: ++ grub_fdt_unload(); ++ return grub_error(GRUB_ERR_BAD_OS, "failed to install/update FDT"); ++} + +- return grub_errno; ++static void ++free_params (void) ++{ ++ grub_efi_loaded_image_t *loaded_image = NULL; ++ + loaded_image = grub_efi_get_loaded_image (grub_efi_image_handle); + if (loaded_image) + { @@ -312,39 +334,20 @@ index ef3e9f9..a312c66 100644 + loaded_image->load_options_size = 0; + } +} - -- grub_dprintf ("linux", "linux command line: '%s'\n", args); ++ +grub_err_t +grub_arch_efi_linux_boot_image (grub_addr_t addr, char *args) +{ + grub_err_t retval; - -- /* Convert command line to UCS-2 */ -- loaded_image = grub_efi_get_loaded_image (image_handle); -- loaded_image->load_options_size = len = -- (grub_strlen (args) + 1) * sizeof (grub_efi_char16_t); -- loaded_image->load_options = -- grub_efi_allocate_any_pages (GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); -- if (!loaded_image->load_options) ++ + retval = finalize_params_linux (); + if (retval != GRUB_ERR_NONE) - return grub_errno; - -- loaded_image->load_options_size = -- 2 * grub_utf8_to_utf16 (loaded_image->load_options, len, -- (grub_uint8_t *) args, len, NULL); -- -- grub_dprintf ("linux", "starting image %p\n", image_handle); -- status = b->start_image (image_handle, 0, NULL); ++ return grub_errno; ++ + grub_dprintf ("linux", "linux command line: '%s'\n", args); - -- /* When successful, not reached */ -- b->unload_image (image_handle); -- grub_efi_free_pages ((grub_addr_t) loaded_image->load_options, -- GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); ++ + retval = grub_efi_linux_boot ((char *)addr, handover_offset, (void *)addr); - -- return grub_errno; ++ + /* Never reached... */ + free_params(); + return retval; @@ -387,7 +390,7 @@ index ef3e9f9..a312c66 100644 linux_args = grub_malloc (cmdline_size); if (!linux_args) diff --git a/grub-core/loader/arm64/xen_boot.c b/grub-core/loader/arm64/xen_boot.c -index 22cc25e..d9b7a9b 100644 +index 22cc25eccd9..d9b7a9ba400 100644 --- a/grub-core/loader/arm64/xen_boot.c +++ b/grub-core/loader/arm64/xen_boot.c @@ -266,7 +266,6 @@ xen_boot (void) @@ -400,7 +403,7 @@ index 22cc25e..d9b7a9b 100644 diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c new file mode 100644 -index 0000000..c24202a +index 00000000000..c24202a5dd1 --- /dev/null +++ b/grub-core/loader/efi/linux.c @@ -0,0 +1,70 @@ @@ -476,7 +479,7 @@ index 0000000..c24202a +#pragma GCC diagnostic pop diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c new file mode 100644 -index 0000000..bb2616a +index 00000000000..bb2616a8092 --- /dev/null +++ b/grub-core/loader/i386/efi/linux.c @@ -0,0 +1,335 @@ @@ -816,10 +819,10 @@ index 0000000..bb2616a + grub_unregister_command (cmd_initrdefi); +} diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c -index 47ea294..eea25ea 100644 +index 2a299520160..8be4c3b3f48 100644 --- a/grub-core/loader/i386/pc/linux.c +++ b/grub-core/loader/i386/pc/linux.c -@@ -470,14 +470,20 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), +@@ -474,14 +474,20 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), return grub_errno; } @@ -841,7 +844,7 @@ index 47ea294..eea25ea 100644 grub_register_command ("initrd16", grub_cmd_initrd, 0, N_("Load initrd.")); my_mod = mod; -@@ -486,5 +492,7 @@ GRUB_MOD_INIT(linux16) +@@ -490,5 +496,7 @@ GRUB_MOD_INIT(linux16) GRUB_MOD_FINI(linux16) { grub_unregister_command (cmd_linux); @@ -850,7 +853,7 @@ index 47ea294..eea25ea 100644 + grub_unregister_command (cmd_initrd16); } diff --git a/include/grub/arm/linux.h b/include/grub/arm/linux.h -index 2e98a66..775297d 100644 +index bcd5a7eb186..b582f67f661 100644 --- a/include/grub/arm/linux.h +++ b/include/grub/arm/linux.h @@ -20,6 +20,7 @@ @@ -880,19 +883,18 @@ index 2e98a66..775297d 100644 #if defined GRUB_MACHINE_UBOOT diff --git a/include/grub/arm64/linux.h b/include/grub/arm64/linux.h -index 4269adc..a3be9dd 100644 +index 7e22b4ab699..ea030312df3 100644 --- a/include/grub/arm64/linux.h +++ b/include/grub/arm64/linux.h -@@ -19,6 +19,8 @@ +@@ -19,6 +19,7 @@ #ifndef GRUB_ARM64_LINUX_HEADER #define GRUB_ARM64_LINUX_HEADER 1 +#include -+ - #define GRUB_LINUX_ARM64_MAGIC_SIGNATURE 0x644d5241 /* 'ARM\x64' */ + #include - /* From linux/Documentation/arm64/booting.txt */ -@@ -36,9 +38,17 @@ struct linux_arm64_kernel_header + #define GRUB_LINUX_ARM64_MAGIC_SIGNATURE 0x644d5241 /* 'ARM\x64' */ +@@ -38,9 +39,17 @@ struct linux_arm64_kernel_header grub_uint32_t hdr_offset; /* Offset of PE/COFF header */ }; @@ -911,7 +913,7 @@ index 4269adc..a3be9dd 100644 #endif /* ! GRUB_ARM64_LINUX_HEADER */ diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index e90e00d..6840bfe 100644 +index 83d958f9945..6295df85f3f 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h @@ -47,6 +47,9 @@ EXPORT_FUNC(grub_efi_allocate_fixed) (grub_efi_physical_address_t address, @@ -924,7 +926,7 @@ index e90e00d..6840bfe 100644 void EXPORT_FUNC(grub_efi_free_pages) (grub_efi_physical_address_t address, grub_efi_uintn_t pages); grub_efi_uintn_t EXPORT_FUNC(grub_efi_find_mmap_size) (void); -@@ -82,6 +85,7 @@ EXPORT_FUNC (grub_efi_set_variable) (const char *var, +@@ -88,6 +91,7 @@ EXPORT_FUNC (grub_efi_set_variable) (const char *var, const grub_efi_guid_t *guid, void *data, grub_size_t datasize); @@ -932,7 +934,7 @@ index e90e00d..6840bfe 100644 int EXPORT_FUNC (grub_efi_compare_device_paths) (const grub_efi_device_path_t *dp1, const grub_efi_device_path_t *dp2); -@@ -95,8 +99,7 @@ void *EXPORT_FUNC(grub_efi_get_firmware_fdt)(void); +@@ -101,8 +105,7 @@ void *EXPORT_FUNC(grub_efi_get_firmware_fdt)(void); grub_err_t EXPORT_FUNC(grub_efi_get_ram_base)(grub_addr_t *); #include grub_err_t grub_arch_efi_linux_check_image(struct linux_arch_kernel_header *lh); @@ -944,7 +946,7 @@ index e90e00d..6840bfe 100644 grub_addr_t grub_efi_modules_addr (void); diff --git a/include/grub/efi/linux.h b/include/grub/efi/linux.h new file mode 100644 -index 0000000..d9ede36 +index 00000000000..d9ede36773b --- /dev/null +++ b/include/grub/efi/linux.h @@ -0,0 +1,31 @@ @@ -979,6 +981,3 @@ index 0000000..d9ede36 + void *kernel_param); + +#endif /* ! GRUB_EFI_LINUX_HEADER */ --- -1.8.3.1 - diff --git a/0002-Rework-linux-command.patch b/0005-Rework-linux-command.patch similarity index 66% rename from 0002-Rework-linux-command.patch rename to 0005-Rework-linux-command.patch index 07ee4c4..9954dd0 100644 --- a/0002-Rework-linux-command.patch +++ b/0005-Rework-linux-command.patch @@ -1,20 +1,22 @@ -From 6dd706679d6a784317929140bdc7bb11c90ab622 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthew Garrett -Date: Fri, 5 Jul 2019 20:54:51 +0200 -Subject: [PATCH 002/220] Rework linux command +Date: Sun, 9 Aug 2015 16:12:39 -0700 +Subject: [PATCH] Rework linux command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel into it before pulling out the individual blocks later on. + +Signed-off-by: Matthew Garrett --- - grub-core/loader/i386/linux.c | 36 +++++++++++++++++++++++------------- - 1 file changed, 23 insertions(+), 13 deletions(-) + grub-core/loader/i386/linux.c | 35 +++++++++++++++++++++++------------ + 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index d0501e2..b255c95 100644 +index 9f74a96b19a..dccf3bb3005 100644 --- a/grub-core/loader/i386/linux.c +++ b/grub-core/loader/i386/linux.c -@@ -641,13 +641,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -649,13 +649,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), { grub_file_t file = 0; struct linux_i386_kernel_header lh; @@ -31,7 +33,7 @@ index d0501e2..b255c95 100644 grub_dl_ref (my_mod); -@@ -661,7 +663,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -669,7 +671,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), if (! file) goto fail; @@ -48,7 +50,7 @@ index d0501e2..b255c95 100644 { if (!grub_errno) grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -@@ -669,6 +679,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -677,6 +687,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), goto fail; } @@ -58,32 +60,25 @@ index d0501e2..b255c95 100644 if (lh.boot_flag != grub_cpu_to_le16_compile_time (0xaa55)) { grub_error (GRUB_ERR_BAD_OS, "invalid magic number"); -@@ -760,6 +773,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - preferred_address)) - goto fail; - -+ - grub_memset (&linux_params, 0, sizeof (linux_params)); - grub_memcpy (&linux_params.setup_sects, &lh.setup_sects, sizeof (lh) - 0x1F1); - -@@ -782,13 +796,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -784,13 +797,11 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), /* We've already read lh so there is no need to read it second time. */ len -= sizeof(lh); -- if (grub_file_read (file, (char *) &linux_params + sizeof (lh), len) != len) -- { +- if ((len > 0) && +- (grub_file_read (file, (char *) &linux_params + sizeof (lh), len) != len)) ++ linux_params_ptr = (void *)&linux_params; ++ if (len > 0) + { - if (!grub_errno) - grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), - argv[0]); - goto fail; -- } -+ linux_params_ptr = (void *)&linux_params; -+ grub_memcpy (linux_params_ptr + sizeof (lh), kernel + kernel_offset, len); -+ kernel_offset += len; ++ grub_memcpy (linux_params_ptr + sizeof (lh), kernel + kernel_offset, len); ++ kernel_offset += len; + } - linux_params.type_of_loader = GRUB_LINUX_BOOT_LOADER_TYPE; - -@@ -847,7 +857,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + linux_params.code32_start = prot_mode_target + lh.code32_start - GRUB_LINUX_BZIMAGE_ADDR; +@@ -853,7 +864,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), /* The other parameters are filled when booting. */ @@ -92,7 +87,7 @@ index d0501e2..b255c95 100644 grub_dprintf ("linux", "bzImage, setup=0x%x, size=0x%x\n", (unsigned) real_size, (unsigned) prot_size); -@@ -1001,9 +1011,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -1007,9 +1018,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), } len = prot_file_size; @@ -103,7 +98,7 @@ index d0501e2..b255c95 100644 if (grub_errno == GRUB_ERR_NONE) { -@@ -1014,6 +1022,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -1020,6 +1029,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), fail: @@ -112,6 +107,3 @@ index d0501e2..b255c95 100644 if (file) grub_file_close (file); --- -1.8.3.1 - diff --git a/0003-Rework-linux16-command.patch b/0006-Rework-linux16-command.patch similarity index 81% rename from 0003-Rework-linux16-command.patch rename to 0006-Rework-linux16-command.patch index 287343a..2c2d6f0 100644 --- a/0003-Rework-linux16-command.patch +++ b/0006-Rework-linux16-command.patch @@ -1,20 +1,22 @@ -From 84d1fbf3d3a427c168b57f83e8e29a7ae22e7192 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthew Garrett -Date: Fri, 5 Jul 2019 21:12:00 +0200 -Subject: [PATCH 003/220] Rework linux16 command +Date: Sun, 9 Aug 2015 16:20:58 -0700 +Subject: [PATCH] Rework linux16 command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel int it before pulling out the individual blocks later on. + +Signed-off-by: Matthew Garrett --- grub-core/loader/i386/pc/linux.c | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c -index eea25ea..73fb91e 100644 +index 8be4c3b3f48..4b1750e360e 100644 --- a/grub-core/loader/i386/pc/linux.c +++ b/grub-core/loader/i386/pc/linux.c -@@ -123,13 +123,14 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -124,13 +124,14 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), grub_file_t file = 0; struct linux_i386_kernel_header lh; grub_uint8_t setup_sects; @@ -30,7 +32,7 @@ index eea25ea..73fb91e 100644 grub_dl_ref (my_mod); -@@ -143,7 +144,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -144,7 +145,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), if (! file) goto fail; @@ -47,7 +49,7 @@ index eea25ea..73fb91e 100644 { if (!grub_errno) grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -@@ -151,6 +160,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -152,6 +161,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), goto fail; } @@ -57,7 +59,7 @@ index eea25ea..73fb91e 100644 if (lh.boot_flag != grub_cpu_to_le16_compile_time (0xaa55)) { grub_error (GRUB_ERR_BAD_OS, "invalid magic number"); -@@ -314,13 +326,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -320,13 +332,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), grub_memmove (grub_linux_real_chunk, &lh, sizeof (lh)); len = real_size + GRUB_DISK_SECTOR_SIZE - sizeof (lh); @@ -74,7 +76,7 @@ index eea25ea..73fb91e 100644 if (lh.header != grub_cpu_to_le32_compile_time (GRUB_LINUX_I386_MAGIC_SIGNATURE) || grub_le_to_cpu16 (lh.version) < 0x0200) -@@ -358,9 +366,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -364,9 +372,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), } len = grub_linux16_prot_size; @@ -86,7 +88,7 @@ index eea25ea..73fb91e 100644 if (grub_errno == GRUB_ERR_NONE) { -@@ -370,6 +377,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -376,6 +383,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), fail: @@ -95,6 +97,3 @@ index eea25ea..73fb91e 100644 if (file) grub_file_close (file); --- -1.8.3.1 - diff --git a/0004-Add-secureboot-support-on-efi-chainloader.patch b/0007-Add-secureboot-support-on-efi-chainloader.patch similarity index 96% rename from 0004-Add-secureboot-support-on-efi-chainloader.patch rename to 0007-Add-secureboot-support-on-efi-chainloader.patch index b1d0a33..6826cce 100644 --- a/0004-Add-secureboot-support-on-efi-chainloader.patch +++ b/0007-Add-secureboot-support-on-efi-chainloader.patch @@ -1,7 +1,7 @@ -From 703e2ddcf768f52f46d02a59627b91280822c293 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Raymund Will Date: Mon, 8 Jul 2019 11:55:18 +0200 -Subject: [PATCH 004/220] Add secureboot support on efi chainloader +Subject: [PATCH] Add secureboot support on efi chainloader Expand the chainloader to be able to verify the image by means of shim lock protocol. The PE/COFF image is loaded and relocated by the @@ -164,21 +164,36 @@ following branches: Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1347291 Signed-off-by: Laszlo Ersek + +Also: + +commit cc06f149fbd2d8c1da1e83173d21629ba97e0d92 +Author: Raymund Will + +chainloader: Define machine types for RISC-V + +The commit "Add secureboot support on efi chainloader" didn't add machine +types for RISC-V, so this patch adds them. + +Note, that grub-core/loader/riscv/linux.c is skipped because Linux is not +supported yet. This patch might need a new revision once that's the case. + +Signed-off-by: David Abdurachmanov --- grub-core/kern/efi/efi.c | 14 +- grub-core/loader/arm64/linux.c | 4 +- - grub-core/loader/efi/chainloader.c | 817 +++++++++++++++++++++++++++++++++---- + grub-core/loader/efi/chainloader.c | 820 +++++++++++++++++++++++++++++++++---- grub-core/loader/efi/linux.c | 25 +- grub-core/loader/i386/efi/linux.c | 17 +- include/grub/efi/linux.h | 2 +- include/grub/efi/pe32.h | 52 ++- - 7 files changed, 840 insertions(+), 91 deletions(-) + 7 files changed, 844 insertions(+), 90 deletions(-) diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index a0faa40..3487b06 100644 +index 35b8f670602..4a2259aa1c7 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c -@@ -283,14 +283,20 @@ grub_efi_secure_boot (void) +@@ -296,14 +296,20 @@ grub_efi_secure_boot (void) grub_efi_boolean_t ret = 0; secure_boot = grub_efi_get_variable("SecureBoot", &efi_var_guid, &datasize); @@ -204,7 +219,7 @@ index a0faa40..3487b06 100644 if (*secure_boot && !*setup_mode) ret = 1; diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index a312c66..04994d5 100644 +index a312c668685..04994d5c67d 100644 --- a/grub-core/loader/arm64/linux.c +++ b/grub-core/loader/arm64/linux.c @@ -284,6 +284,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), @@ -226,7 +241,7 @@ index a312c66..04994d5 100644 grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), argv[0]); goto fail; diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index cd92ea3..ef87b06 100644 +index 2bd80f4db3d..e6a8d4ad0e9 100644 --- a/grub-core/loader/efi/chainloader.c +++ b/grub-core/loader/efi/chainloader.c @@ -32,6 +32,8 @@ @@ -261,15 +276,7 @@ index cd92ea3..ef87b06 100644 grub_dl_unref (my_mod); return GRUB_ERR_NONE; -@@ -179,7 +187,6 @@ make_file_path (grub_efi_device_path_t *dp, const char *filename) - /* Fill the file path for the directory. */ - d = (grub_efi_device_path_t *) ((char *) file_path - + ((char *) d - (char *) dp)); -- grub_efi_print_device_path (d); - copy_file_path ((grub_efi_file_path_device_path_t *) d, - dir_start, dir_end - dir_start); - -@@ -197,20 +204,690 @@ make_file_path (grub_efi_device_path_t *dp, const char *filename) +@@ -213,20 +221,694 @@ make_file_path (grub_efi_device_path_t *dp, const char *filename) return file_path; } @@ -384,6 +391,10 @@ index cd92ea3..ef87b06 100644 + GRUB_PE32_MACHINE_I386; +#elif defined(__ia64__) + GRUB_PE32_MACHINE_IA64; ++#elif defined(__riscv) && (__riscv_xlen == 32) ++ GRUB_PE32_MACHINE_RISCV32; ++#elif defined(__riscv) && (__riscv_xlen == 64) ++ GRUB_PE32_MACHINE_RISCV64; +#else +#error this architecture is not supported by grub2 +#endif @@ -963,7 +974,7 @@ index cd92ea3..ef87b06 100644 if (argc == 0) return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -@@ -222,15 +899,45 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), +@@ -238,15 +920,45 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), address = 0; image_handle = 0; file_path = 0; @@ -1011,7 +1022,7 @@ index cd92ea3..ef87b06 100644 if (! dev) goto fail; -@@ -267,17 +974,14 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), +@@ -283,17 +995,14 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), if (! file_path) goto fail; @@ -1032,7 +1043,7 @@ index cd92ea3..ef87b06 100644 status = efi_call_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_ANY_PAGES, GRUB_EFI_LOADER_CODE, -@@ -291,7 +995,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), +@@ -307,7 +1016,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), } boot_image = (void *) ((grub_addr_t) address); @@ -1041,7 +1052,7 @@ index cd92ea3..ef87b06 100644 { if (grub_errno == GRUB_ERR_NONE) grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -@@ -301,7 +1005,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), +@@ -317,7 +1026,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), } #if defined (__i386__) || defined (__x86_64__) @@ -1050,12 +1061,12 @@ index cd92ea3..ef87b06 100644 { struct grub_macho_fat_header *head = boot_image; if (head->magic -@@ -310,6 +1014,14 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), +@@ -326,6 +1035,14 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), grub_uint32_t i; struct grub_macho_fat_arch *archs = (struct grub_macho_fat_arch *) (head + 1); + -+ if (grub_efi_secure_boot()) ++ if (grub_efi_get_secureboot () == GRUB_EFI_SECUREBOOT_MODE_ENABLED) + { + grub_error (GRUB_ERR_BAD_OS, + "MACHO binaries are forbidden with Secure Boot"); @@ -1065,7 +1076,7 @@ index cd92ea3..ef87b06 100644 for (i = 0; i < grub_cpu_to_le32 (head->nfat_arch); i++) { if (GRUB_MACHO_CPUTYPE_IS_HOST_CURRENT (archs[i].cputype)) -@@ -324,79 +1036,39 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), +@@ -340,79 +1057,39 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), > ~grub_cpu_to_le32 (archs[i].size) || grub_cpu_to_le32 (archs[i].offset) + grub_cpu_to_le32 (archs[i].size) @@ -1097,27 +1108,27 @@ index cd92ea3..ef87b06 100644 - grub_error (GRUB_ERR_BAD_OS, "cannot load image"); - - goto fail; -- } -- -- /* LoadImage does not set a device handler when the image is -- loaded from memory, so it is necessary to set it explicitly here. -- This is a mess. */ -- loaded_image = grub_efi_get_loaded_image (image_handle); -- if (! loaded_image) -- { -- grub_error (GRUB_ERR_BAD_OS, "no loaded image available"); -- goto fail; + grub_file_close (file); + grub_device_close (dev); + grub_loader_set (grub_secureboot_chainloader_boot, + grub_secureboot_chainloader_unload, 0); + return 0; } +- +- /* LoadImage does not set a device handler when the image is +- loaded from memory, so it is necessary to set it explicitly here. +- This is a mess. */ +- loaded_image = grub_efi_get_loaded_image (image_handle); +- if (! loaded_image) ++ else if (rc == 0) + { +- grub_error (GRUB_ERR_BAD_OS, "no loaded image available"); +- goto fail; +- } - loaded_image->device_handle = dev_handle; - - if (argc > 1) -+ else if (rc == 0) - { +- { - int i, len; - grub_efi_char16_t *p16; - @@ -1128,7 +1139,11 @@ index cd92ea3..ef87b06 100644 - cmdline = p16 = grub_malloc (len); - if (! cmdline) - goto fail; -- ++ grub_load_and_start_image(boot_image); ++ grub_file_close (file); ++ grub_device_close (dev); ++ grub_loader_set (grub_chainloader_boot, grub_chainloader_unload, 0); + - for (i = 1; i < argc; i++) - { - char *p8; @@ -1140,11 +1155,7 @@ index cd92ea3..ef87b06 100644 - *(p16++) = ' '; - } - *(--p16) = 0; -+ grub_load_and_start_image(boot_image); -+ grub_file_close (file); -+ grub_device_close (dev); -+ grub_loader_set (grub_chainloader_boot, grub_chainloader_unload, 0); - +- - loaded_image->load_options = cmdline; - loaded_image->load_options_size = len; + return 0; @@ -1162,7 +1173,7 @@ index cd92ea3..ef87b06 100644 if (dev) grub_device_close (dev); -@@ -408,6 +1080,9 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), +@@ -424,6 +1101,9 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), if (address) efi_call_2 (b->free_pages, address, pages); @@ -1173,7 +1184,7 @@ index cd92ea3..ef87b06 100644 return grub_errno; diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c -index c24202a..c8ecce6 100644 +index c24202a5dd1..c8ecce6dfd0 100644 --- a/grub-core/loader/efi/linux.c +++ b/grub-core/loader/efi/linux.c @@ -33,21 +33,34 @@ struct grub_efi_shim_lock @@ -1197,7 +1208,9 @@ index c24202a..c8ecce6 100644 + grub_dprintf ("secureboot", "shim not available\n"); + return 0; + } -+ + +- if (shim_lock->verify(data, size) == GRUB_EFI_SUCCESS) +- return 1; + grub_dprintf ("secureboot", "Asking shim to verify kernel signature\n"); + status = shim_lock->verify (data, size); + grub_dprintf ("secureboot", "shim_lock->verify(): %ld\n", (long int)status); @@ -1207,18 +1220,16 @@ index c24202a..c8ecce6 100644 + return 1; + } -- if (shim_lock->verify(data, size) == GRUB_EFI_SUCCESS) -- return 1; +- return 0; + grub_dprintf ("secureboot", "Kernel signature verification failed (0x%lx)\n", + (unsigned long) status); - -- return 0; ++ + return -1; } #pragma GCC diagnostic push diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index bb2616a..6b24cbb 100644 +index bb2616a8092..6b24cbb9483 100644 --- a/grub-core/loader/i386/efi/linux.c +++ b/grub-core/loader/i386/efi/linux.c @@ -117,6 +117,8 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), @@ -1286,7 +1297,7 @@ index bb2616a..6b24cbb 100644 grub_file_close (file); diff --git a/include/grub/efi/linux.h b/include/grub/efi/linux.h -index d9ede36..0033d93 100644 +index d9ede36773b..0033d9305a9 100644 --- a/include/grub/efi/linux.h +++ b/include/grub/efi/linux.h @@ -22,7 +22,7 @@ @@ -1299,7 +1310,7 @@ index d9ede36..0033d93 100644 grub_err_t EXPORT_FUNC(grub_efi_linux_boot) (void *kernel_address, grub_off_t offset, diff --git a/include/grub/efi/pe32.h b/include/grub/efi/pe32.h -index 0ed8781..a43adf2 100644 +index 0ed8781f037..a43adf27464 100644 --- a/include/grub/efi/pe32.h +++ b/include/grub/efi/pe32.h @@ -223,7 +223,11 @@ struct grub_pe64_optional_header @@ -1388,6 +1399,3 @@ index 0ed8781..a43adf2 100644 struct grub_pe32_fixup_block { grub_uint32_t page_rva; --- -1.8.3.1 - diff --git a/0007-re-write-.gitignore.patch b/0007-re-write-.gitignore.patch deleted file mode 100644 index 7e3c6b1..0000000 --- a/0007-re-write-.gitignore.patch +++ /dev/null @@ -1,473 +0,0 @@ -From 22e9b5b6f0e2031bc68d1c3cb0e8e1f33cc68c93 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 8 Jul 2019 12:55:29 +0200 -Subject: [PATCH 007/220] re-write .gitignore - ---- - .gitignore | 366 +++++++++++++++----------------------- - docs/.gitignore | 5 + - grub-core/.gitignore | 16 ++ - grub-core/lib/.gitignore | 1 + - include/grub/gcrypt/.gitignore | 2 + - po/.gitignore | 5 + - util/bash-completion.d/.gitignore | 2 + - 7 files changed, 171 insertions(+), 226 deletions(-) - create mode 100644 docs/.gitignore - create mode 100644 grub-core/.gitignore - create mode 100644 grub-core/lib/.gitignore - create mode 100644 include/grub/gcrypt/.gitignore - create mode 100644 po/.gitignore - create mode 100644 util/bash-completion.d/.gitignore - -diff --git a/.gitignore b/.gitignore -index 819cd18..b45a633 100644 ---- a/.gitignore -+++ b/.gitignore -@@ -1,237 +1,151 @@ -+# things ./autogen.sh will create -+/Makefile.utilgcry.def -+/ABOUT-NLS -+/aclocal.m4 -+/autom4te.cache -+/build-aux -+/configure -+/gnulib -+/grub-core/lib/gnulib/ -+/Makefile -+ -+# things very common editors create that we never want - *~ --00_header --10_* --20_linux_xen --30_os-prober --40_custom --41_custom --*.1 --*.8 --ABOUT-NLS --aclocal.m4 --ahci_test --ascii.bitmaps --ascii.h --autom4te.cache --build-aux --build-grub-gen-asciih --build-grub-gen-widthspec --build-grub-mkfont --cdboot_test --cmp_test --config.cache --config.guess --config.h --config-util.h --config-util.h.in --config.log --config.status --config.sub --configure --core_compress_test --DISTLIST --docs/*.info --docs/stamp-vti --docs/version.texi --ehci_test --example_grub_script_test --example_scripted_test --example_unit_test -+.*.sw? -+*.patch -+ -+# stuff you're likely to make while building test trees -+grub.cfg -+/build*/ -+ -+# built objects across the whole tree -+Makefile.in -+*.a -+*.am -+*.efi - *.exec --*.exec.exe --fddboot_test --genkernsyms.sh --gensymlist.sh --gentrigtables --gentrigtables.exe --gettext_strings_test --/gnulib --grub-bin2h --/grub-bios-setup --/grub-bios-setup.exe --grub_cmd_date --grub_cmd_echo --grub_cmd_regexp --grub_cmd_set_date --grub_cmd_sleep --/grub-editenv --/grub-editenv.exe --grub-emu --grub-emu-lite --grub-emu.exe --grub-emu-lite.exe --grub_emu_init.c --grub_emu_init.h --/grub-file --/grub-file.exe --grub-fstest --grub-fstest.exe --grub_fstest_init.c --grub_fstest_init.h --grub_func_test --grub-install --grub-install.exe --grub-kbdcomp --/grub-macbless --/grub-macbless.exe --grub-macho2img --/grub-menulst2cfg --/grub-menulst2cfg.exe --/grub-mk* --grub-mount --/grub-ofpathname --/grub-ofpathname.exe --grub-core/build-grub-pe2elf.exe --/grub-probe --/grub-probe.exe --grub_probe_init.c --grub_probe_init.h --/grub-reboot --grub_script_blanklines --grub_script_blockarg --grub_script_break --grub-script-check --grub-script-check.exe --grub_script_check_init.c --grub_script_check_init.h --grub_script_comments --grub_script_continue --grub_script_dollar --grub_script_echo1 --grub_script_echo_keywords --grub_script_escape_comma --grub_script_eval --grub_script_expansion --grub_script_final_semicolon --grub_script_for1 --grub_script_functions --grub_script_gettext --grub_script_if --grub_script_leading_whitespace --grub_script_no_commands --grub_script_not --grub_script_return --grub_script_setparams --grub_script_shift --grub_script_strcmp --grub_script_test --grub_script_vars1 --grub_script_while1 --grub_script.tab.c --grub_script.tab.h --grub_script.yy.c --grub_script.yy.h --grub-set-default --grub_setup_init.c --grub_setup_init.h --grub-shell --grub-shell-tester --grub-sparc64-setup --grub-sparc64-setup.exe --/grub-syslinux2cfg --/grub-syslinux2cfg.exe --gzcompress_test --hddboot_test --help_test --*.img - *.image --*.image.exe --include/grub/cpu --include/grub/machine --INSTALL.grub --install-sh --lib/libgcrypt-grub --libgrub_a_init.c --*.log -+*.img -+*.info - *.lst --lzocompress_test - *.marker --Makefile - /m4 - *.mod --mod-*.c --missing --netboot_test -+*.module - *.o --*.a --ohci_test --partmap_test --pata_test - *.pf2 --*.pp --po/*.mo --po/grub.pot --po/Makefile.in.in --po/Makevars --po/Makevars.template --po/POTFILES --po/Rules-quot --po/stamp-po --printf_test --priority_queue_unit_test --pseries_test --stamp-h --stamp-h1 --stamp-h.in --symlist.c --symlist.h --trigtables.c --*.trs --uhci_test --update-grub_lib --unidata.c --xzcompress_test --Makefile.in --GPATH --GRTAGS --GSYMS --GTAGS --compile --depcomp --mdate-sh --texinfo.tex --grub-core/lib/libgcrypt-grub --.deps --.deps-util --.deps-core -+*.yy.[ch] -+.deps/ -+.deps-core/ -+.deps-util/ - .dirstamp --Makefile.util.am --contrib --grub-core/bootinfo.txt --grub-core/Makefile.core.am --grub-core/Makefile.gcry.def --grub-core/contrib --grub-core/gdb_grub --grub-core/genmod.sh --grub-core/gensyminfo.sh --grub-core/gmodule.pl --grub-core/grub.chrp --grub-core/modinfo.sh --grub-core/*.module --grub-core/*.module.exe --grub-core/*.pp --grub-core/kernel.img.bin --util/bash-completion.d/grub --grub-core/lib/gnulib --grub-core/rs_decoder.h --widthspec.bin --widthspec.h --docs/stamp-1 --docs/version-dev.texi --Makefile.utilgcry.def --po/*.po --po/*.gmo --po/LINGUAS --po/remove-potcdate.sed --include/grub/gcrypt/gcrypt.h --include/grub/gcrypt/g10lib.h --po/POTFILES.in --po/POTFILES-shell.in --/grub-glue-efi --/grub-render-label --/grub-glue-efi.exe --/grub-render-label.exe -+ -+# next are things you get if you do ./configure in the topdir (for e.g. -+# "make dist" invocation. -+/config-util.h -+/config.h -+/include/grub/cpu -+/include/grub/machine -+/INSTALL -+/INSTALL.grub -+/po/Makefile.in.in -+/po/Makevars -+/po/Makevars.template -+/po/POTFILES -+/po/Rules-quot -+/stamp-h -+/stamp-h1 -+bootstrap.log -+config.log -+config.status -+ -+# stuff "make dist" creates -+ChangeLog -+grub-*.tar -+grub-*.tar.* -+ -+# stuff "make" creates -+/[[:digit:]][[:digit:]]_?* -+/ascii.h -+/build-grub-gen-asciih -+/build-grub-gen-widthspec -+/build-grub-mkfont -+/config-util.h.in - /garbage-gen --/garbage-gen.exe --/grub-fs-tester --grub-core/build-grub-module-verifier -+/grub*-bios-setup -+/grub*-bios-setup.8 -+/grub*-editenv -+/grub*-editenv.1 -+/grub*-file -+/grub*-file.1 -+/grub*-fs-tester -+/grub*-fstest -+/grub*-fstest.1 -+/grub*-get-kernel-settings -+/grub*-get-kernel-settings.3 -+/grub*-glue-efi -+/grub*-glue-efi.1 -+/grub*-install -+/grub*-install.8 -+/grub*-kbdcomp -+/grub*-kbdcomp.1 -+/grub*-macbless -+/grub*-macbless.8 -+/grub*-menulst2cfg -+/grub*-menulst2cfg.1 -+/grub*-mount -+/grub*-mount.1 -+/grub*-mkconfig -+/grub*-mkconfig.8 -+/grub*-mkconfig_lib -+/grub*-mkfont -+/grub*-mkfont.1 -+/grub*-mkimage -+/grub*-mkimage.1 -+/grub*-mklayout -+/grub*-mklayout.1 -+/grub*-mknetdir -+/grub*-mknetdir.1 -+/grub*-mkpasswd-pbkdf2 -+/grub*-mkpasswd-pbkdf2.1 -+/grub*-mkrelpath -+/grub*-mkrelpath.1 -+/grub*-mkrescue -+/grub*-mkrescue.1 -+/grub*-mkstandalone -+/grub*-mkstandalone.1 -+/grub*-ofpathname -+/grub*-ofpathname.8 -+/grub*-probe -+/grub*-probe.8 -+/grub*-reboot -+/grub*-reboot.8 -+/grub*-render-label -+/grub*-render-label.1 -+/grub*-rpm-sort -+/grub*-rpm-sort.8 -+/grub*-script-check -+/grub*-script-check.1 -+/grub*-set-bootflag -+/grub*-set-bootflag.1 -+/grub*-set-default -+/grub*-set-default.8 -+/grub*-set-password -+/grub*-set-password.8 -+/grub*-shell -+/grub*-shell-tester -+/grub*-sparc64-setup -+/grub*-sparc64-setup.8 -+/grub*-syslinux2cfg -+/grub*-syslinux2cfg.1 -+/grub*-switch-to-blscfg -+/grub*-switch-to-blscfg.8 -+/grub_fstest.pp -+/grub_fstest_init.c -+/grub_fstest_init.lst -+/grub_script.tab.[ch] -+/libgrub.pp -+/libgrub_a_init.c -+/libgrub_a_init.lst -+/stamp-h.in -+/widthspec.h -diff --git a/docs/.gitignore b/docs/.gitignore -new file mode 100644 -index 0000000..e1d849e ---- /dev/null -+++ b/docs/.gitignore -@@ -0,0 +1,5 @@ -+/*.in -+/Makefile -+/stamp-1 -+/stamp-vti -+/version*.texi -diff --git a/grub-core/.gitignore b/grub-core/.gitignore -new file mode 100644 -index 0000000..2acce28 ---- /dev/null -+++ b/grub-core/.gitignore -@@ -0,0 +1,16 @@ -+/*.lst -+/Makefile -+/Makefile.gcry.def -+/unidata.c -+/build-grub-module-verifier -+/gdb_grub -+/genmod.sh -+/gensyminfo.sh -+/gentrigtables -+/gmodule.pl -+/grub_script.tab.[ch] -+/modinfo.sh -+/rs_decoder.h -+/symlist.c -+/symlist.h -+/trigtables.c -diff --git a/grub-core/lib/.gitignore b/grub-core/lib/.gitignore -new file mode 100644 -index 0000000..6815459 ---- /dev/null -+++ b/grub-core/lib/.gitignore -@@ -0,0 +1 @@ -+/libgcrypt-grub/ -diff --git a/include/grub/gcrypt/.gitignore b/include/grub/gcrypt/.gitignore -new file mode 100644 -index 0000000..8fbf564 ---- /dev/null -+++ b/include/grub/gcrypt/.gitignore -@@ -0,0 +1,2 @@ -+g10lib.h -+gcrypt.h -diff --git a/po/.gitignore b/po/.gitignore -new file mode 100644 -index 0000000..f507e77 ---- /dev/null -+++ b/po/.gitignore -@@ -0,0 +1,5 @@ -+/Makefile -+/POTFILES*.in -+/grub.pot -+/remove-potcdate.sed -+/stamp-po -diff --git a/util/bash-completion.d/.gitignore b/util/bash-completion.d/.gitignore -new file mode 100644 -index 0000000..6813a52 ---- /dev/null -+++ b/util/bash-completion.d/.gitignore -@@ -0,0 +1,2 @@ -+Makefile -+grub --- -1.8.3.1 - diff --git a/0005-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch b/0008-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch similarity index 53% rename from 0005-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch rename to 0008-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch index d553562..030c71c 100644 --- a/0005-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch +++ b/0008-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch @@ -1,132 +1,102 @@ -From a5d1b0391c2875677f3d7a6d762b3fadaa3ecf85 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 16:09:25 -0400 -Subject: [PATCH 005/220] Make any of the loaders that link in efi mode honor - secure boot. +Subject: [PATCH] Make any of the loaders that link in efi mode honor secure + boot. And in this case "honor" means "even if somebody does link this in, they won't register commands if SB is enabled." Signed-off-by: Peter Jones --- - grub-core/Makefile.am | 1 + - grub-core/Makefile.core.def | 1 + - grub-core/commands/iorw.c | 7 +++++ - grub-core/commands/memrw.c | 7 +++++ - grub-core/kern/dl.c | 1 + - grub-core/kern/efi/efi.c | 34 -------------------- - grub-core/kern/efi/sb.c | 64 ++++++++++++++++++++++++++++++++++++++ - grub-core/loader/efi/appleloader.c | 7 +++++ + grub-core/commands/iorw.c | 7 +++++++ + grub-core/commands/memrw.c | 7 +++++++ + grub-core/kern/dl.c | 3 ++- + grub-core/kern/efi/efi.c | 34 ---------------------------------- + grub-core/loader/efi/appleloader.c | 7 +++++++ grub-core/loader/efi/chainloader.c | 1 + - grub-core/loader/i386/bsd.c | 7 +++++ - grub-core/loader/i386/linux.c | 7 +++++ - grub-core/loader/i386/pc/linux.c | 7 +++++ - grub-core/loader/multiboot.c | 7 +++++ - grub-core/loader/xnu.c | 7 +++++ + grub-core/loader/i386/bsd.c | 7 +++++++ + grub-core/loader/i386/linux.c | 7 +++++++ + grub-core/loader/i386/pc/linux.c | 7 +++++++ + grub-core/loader/multiboot.c | 7 +++++++ + grub-core/loader/xnu.c | 7 +++++++ include/grub/efi/efi.h | 1 - - include/grub/efi/sb.h | 29 +++++++++++++++++ include/grub/ia64/linux.h | 0 include/grub/mips/linux.h | 0 include/grub/powerpc/linux.h | 0 include/grub/sparc64/linux.h | 0 - 20 files changed, 153 insertions(+), 35 deletions(-) - create mode 100644 grub-core/kern/efi/sb.c - create mode 100644 include/grub/efi/sb.h + 16 files changed, 59 insertions(+), 36 deletions(-) create mode 100644 include/grub/ia64/linux.h create mode 100644 include/grub/mips/linux.h create mode 100644 include/grub/powerpc/linux.h create mode 100644 include/grub/sparc64/linux.h -diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index 3ea8e7f..c6ba5b2 100644 ---- a/grub-core/Makefile.am -+++ b/grub-core/Makefile.am -@@ -71,6 +71,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/command.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/device.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/disk.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/dl.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/sb.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env_private.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/err.h -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 581d9df..eb1088f 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -207,6 +207,7 @@ kernel = { - i386_multiboot = kern/i386/pc/acpi.c; - i386_coreboot = kern/acpi.c; - i386_multiboot = kern/acpi.c; -+ common = kern/efi/sb.c; - - x86 = kern/i386/tsc.c; - x86 = kern/i386/tsc_pit.c; diff --git a/grub-core/commands/iorw.c b/grub-core/commands/iorw.c -index a0c164e..41a7f3f 100644 +index 584baec8f91..7b2999b14b5 100644 --- a/grub-core/commands/iorw.c +++ b/grub-core/commands/iorw.c -@@ -23,6 +23,7 @@ - #include +@@ -24,6 +24,7 @@ #include #include + #include +#include GRUB_MOD_LICENSE ("GPLv3+"); -@@ -118,6 +119,9 @@ grub_cmd_write (grub_command_t cmd, int argc, char **argv) +@@ -119,6 +120,9 @@ grub_cmd_write (grub_command_t cmd, int argc, char **argv) GRUB_MOD_INIT(memrw) { -+ if (grub_efi_secure_boot()) ++ if (grub_efi_get_secureboot () == GRUB_EFI_SECUREBOOT_MODE_ENABLED) + return; + cmd_read_byte = grub_register_extcmd ("inb", grub_cmd_read, 0, N_("PORT"), N_("Read 8-bit value from PORT."), -@@ -146,6 +150,9 @@ GRUB_MOD_INIT(memrw) +@@ -147,6 +151,9 @@ GRUB_MOD_INIT(memrw) GRUB_MOD_FINI(memrw) { -+ if (grub_efi_secure_boot()) ++ if (grub_efi_get_secureboot () == GRUB_EFI_SECUREBOOT_MODE_ENABLED) + return; + grub_unregister_extcmd (cmd_read_byte); grub_unregister_extcmd (cmd_read_word); grub_unregister_extcmd (cmd_read_dword); diff --git a/grub-core/commands/memrw.c b/grub-core/commands/memrw.c -index 98769ea..088cbe9 100644 +index d401a6db0ef..39cf3a06dbd 100644 --- a/grub-core/commands/memrw.c +++ b/grub-core/commands/memrw.c -@@ -22,6 +22,7 @@ - #include +@@ -23,6 +23,7 @@ #include #include + #include +#include GRUB_MOD_LICENSE ("GPLv3+"); -@@ -120,6 +121,9 @@ grub_cmd_write (grub_command_t cmd, int argc, char **argv) +@@ -121,6 +122,9 @@ grub_cmd_write (grub_command_t cmd, int argc, char **argv) GRUB_MOD_INIT(memrw) { -+ if (grub_efi_secure_boot()) ++ if (grub_efi_get_secureboot () == GRUB_EFI_SECUREBOOT_MODE_ENABLED) + return; + cmd_read_byte = grub_register_extcmd ("read_byte", grub_cmd_read, 0, N_("ADDR"), N_("Read 8-bit value from ADDR."), -@@ -148,6 +152,9 @@ GRUB_MOD_INIT(memrw) +@@ -149,6 +153,9 @@ GRUB_MOD_INIT(memrw) GRUB_MOD_FINI(memrw) { -+ if (grub_efi_secure_boot()) ++ if (grub_efi_get_secureboot () == GRUB_EFI_SECUREBOOT_MODE_ENABLED) + return; + grub_unregister_extcmd (cmd_read_byte); grub_unregister_extcmd (cmd_read_word); grub_unregister_extcmd (cmd_read_dword); diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c -index 896bebf..d7718d2 100644 +index b7149370950..7afb9e6f724 100644 --- a/grub-core/kern/dl.c +++ b/grub-core/kern/dl.c @@ -32,6 +32,7 @@ @@ -137,12 +107,21 @@ index 896bebf..d7718d2 100644 /* Platforms where modules are in a readonly area of memory. */ #if defined(GRUB_MACHINE_QEMU) +@@ -704,7 +705,7 @@ grub_dl_load_file (const char *filename) + grub_dl_t mod = 0; + + #ifdef GRUB_MACHINE_EFI +- if (grub_efi_secure_boot ()) ++ if (grub_efi_get_secureboot () == GRUB_EFI_SECUREBOOT_MODE_ENABLED) + { + #if 0 + /* This is an error, but grub2-mkconfig still generates a pile of diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index 3487b06..6e1ceb9 100644 +index 4a2259aa1c7..8cff7be0289 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c -@@ -273,40 +273,6 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, - return NULL; +@@ -286,40 +286,6 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, + return grub_efi_get_variable_with_attributes (var, guid, datasize_out, data_out, NULL); } -grub_efi_boolean_t @@ -182,78 +161,8 @@ index 3487b06..6e1ceb9 100644 #pragma GCC diagnostic ignored "-Wcast-align" /* Search the mods section from the PE32/PE32+ image. This code uses -diff --git a/grub-core/kern/efi/sb.c b/grub-core/kern/efi/sb.c -new file mode 100644 -index 0000000..d74778b ---- /dev/null -+++ b/grub-core/kern/efi/sb.c -@@ -0,0 +1,64 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2014 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+int -+grub_efi_secure_boot (void) -+{ -+#ifdef GRUB_MACHINE_EFI -+ grub_efi_guid_t efi_var_guid = GRUB_EFI_GLOBAL_VARIABLE_GUID; -+ grub_size_t datasize; -+ char *secure_boot = NULL; -+ char *setup_mode = NULL; -+ grub_efi_boolean_t ret = 0; -+ -+ secure_boot = grub_efi_get_variable("SecureBoot", &efi_var_guid, &datasize); -+ if (datasize != 1 || !secure_boot) -+ { -+ grub_dprintf ("secureboot", "No SecureBoot variable\n"); -+ goto out; -+ } -+ grub_dprintf ("secureboot", "SecureBoot: %d\n", *secure_boot); -+ -+ setup_mode = grub_efi_get_variable("SetupMode", &efi_var_guid, &datasize); -+ if (datasize != 1 || !setup_mode) -+ { -+ grub_dprintf ("secureboot", "No SetupMode variable\n"); -+ goto out; -+ } -+ grub_dprintf ("secureboot", "SetupMode: %d\n", *setup_mode); -+ -+ if (*secure_boot && !*setup_mode) -+ ret = 1; -+ -+ out: -+ grub_free (secure_boot); -+ grub_free (setup_mode); -+ return ret; -+#else -+ return 0; -+#endif -+} diff --git a/grub-core/loader/efi/appleloader.c b/grub-core/loader/efi/appleloader.c -index 74888c4..69c2a10 100644 +index 74888c463ba..585f2b57385 100644 --- a/grub-core/loader/efi/appleloader.c +++ b/grub-core/loader/efi/appleloader.c @@ -24,6 +24,7 @@ @@ -268,7 +177,7 @@ index 74888c4..69c2a10 100644 GRUB_MOD_INIT(appleloader) { -+ if (grub_efi_secure_boot()) ++ if (grub_efi_get_secureboot () == GRUB_EFI_SECUREBOOT_MODE_ENABLED) + return; + cmd = grub_register_command ("appleloader", grub_cmd_appleloader, @@ -278,13 +187,13 @@ index 74888c4..69c2a10 100644 GRUB_MOD_FINI(appleloader) { -+ if (grub_efi_secure_boot()) ++ if (grub_efi_get_secureboot () == GRUB_EFI_SECUREBOOT_MODE_ENABLED) + return; + grub_unregister_command (cmd); } diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index ef87b06..5aa3a5d 100644 +index e6a8d4ad0e9..07c4937898d 100644 --- a/grub-core/loader/efi/chainloader.c +++ b/grub-core/loader/efi/chainloader.c @@ -34,6 +34,7 @@ @@ -296,10 +205,10 @@ index ef87b06..5aa3a5d 100644 #include #include diff --git a/grub-core/loader/i386/bsd.c b/grub-core/loader/i386/bsd.c -index 3730ed3..5b9b92d 100644 +index 5f3290ce17b..54befc26626 100644 --- a/grub-core/loader/i386/bsd.c +++ b/grub-core/loader/i386/bsd.c -@@ -39,6 +39,7 @@ +@@ -40,6 +40,7 @@ #ifdef GRUB_MACHINE_PCBIOS #include #endif @@ -307,92 +216,92 @@ index 3730ed3..5b9b92d 100644 GRUB_MOD_LICENSE ("GPLv3+"); -@@ -2130,6 +2131,9 @@ static grub_command_t cmd_netbsd_module_elf, cmd_openbsd_ramdisk; +@@ -2137,6 +2138,9 @@ static grub_command_t cmd_netbsd_module_elf, cmd_openbsd_ramdisk; GRUB_MOD_INIT (bsd) { -+ if (grub_efi_secure_boot()) ++ if (grub_efi_get_secureboot () == GRUB_EFI_SECUREBOOT_MODE_ENABLED) + return; + /* Net and OpenBSD kernels are often compressed. */ grub_dl_load ("gzio"); -@@ -2169,6 +2173,9 @@ GRUB_MOD_INIT (bsd) +@@ -2176,6 +2180,9 @@ GRUB_MOD_INIT (bsd) GRUB_MOD_FINI (bsd) { -+ if (grub_efi_secure_boot()) ++ if (grub_efi_get_secureboot () == GRUB_EFI_SECUREBOOT_MODE_ENABLED) + return; + grub_unregister_extcmd (cmd_freebsd); grub_unregister_extcmd (cmd_openbsd); grub_unregister_extcmd (cmd_netbsd); diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index b255c95..376c726 100644 +index dccf3bb3005..4aeb0e4b9a6 100644 --- a/grub-core/loader/i386/linux.c +++ b/grub-core/loader/i386/linux.c -@@ -36,6 +36,7 @@ - #include +@@ -37,6 +37,7 @@ #include #include + #include +#include GRUB_MOD_LICENSE ("GPLv3+"); -@@ -1131,6 +1132,9 @@ static grub_command_t cmd_linux, cmd_initrd; +@@ -1138,6 +1139,9 @@ static grub_command_t cmd_linux, cmd_initrd; GRUB_MOD_INIT(linux) { -+ if (grub_efi_secure_boot()) ++ if (grub_efi_get_secureboot () == GRUB_EFI_SECUREBOOT_MODE_ENABLED) + return; + cmd_linux = grub_register_command ("linux", grub_cmd_linux, 0, N_("Load Linux.")); cmd_initrd = grub_register_command ("initrd", grub_cmd_initrd, -@@ -1140,6 +1144,9 @@ GRUB_MOD_INIT(linux) +@@ -1147,6 +1151,9 @@ GRUB_MOD_INIT(linux) GRUB_MOD_FINI(linux) { -+ if (grub_efi_secure_boot()) ++ if (grub_efi_get_secureboot () == GRUB_EFI_SECUREBOOT_MODE_ENABLED) + return; + grub_unregister_command (cmd_linux); grub_unregister_command (cmd_initrd); } diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c -index 73fb91e..fe3e1d4 100644 +index 4b1750e360e..e3fa1221e81 100644 --- a/grub-core/loader/i386/pc/linux.c +++ b/grub-core/loader/i386/pc/linux.c -@@ -35,6 +35,7 @@ - #include +@@ -36,6 +36,7 @@ #include #include + #include +#include GRUB_MOD_LICENSE ("GPLv3+"); -@@ -483,6 +484,9 @@ static grub_command_t cmd_linux, cmd_linux16, cmd_initrd, cmd_initrd16; +@@ -487,6 +488,9 @@ static grub_command_t cmd_linux, cmd_linux16, cmd_initrd, cmd_initrd16; GRUB_MOD_INIT(linux16) { -+ if (grub_efi_secure_boot()) ++ if (grub_efi_get_secureboot () == GRUB_EFI_SECUREBOOT_MODE_ENABLED) + return; + cmd_linux = grub_register_command ("linux", grub_cmd_linux, 0, N_("Load Linux.")); -@@ -500,6 +504,9 @@ GRUB_MOD_INIT(linux16) +@@ -504,6 +508,9 @@ GRUB_MOD_INIT(linux16) GRUB_MOD_FINI(linux16) { -+ if (grub_efi_secure_boot()) ++ if (grub_efi_get_secureboot () == GRUB_EFI_SECUREBOOT_MODE_ENABLED) + return; + grub_unregister_command (cmd_linux); grub_unregister_command (cmd_linux16); grub_unregister_command (cmd_initrd); diff --git a/grub-core/loader/multiboot.c b/grub-core/loader/multiboot.c -index 4a98d70..3e6ad16 100644 +index facb13f3d36..47e481f4576 100644 --- a/grub-core/loader/multiboot.c +++ b/grub-core/loader/multiboot.c @@ -50,6 +50,7 @@ @@ -407,7 +316,7 @@ index 4a98d70..3e6ad16 100644 GRUB_MOD_INIT(multiboot) { -+ if (grub_efi_secure_boot()) ++ if (grub_efi_get_secureboot () == GRUB_EFI_SECUREBOOT_MODE_ENABLED) + return; + cmd_multiboot = @@ -417,49 +326,49 @@ index 4a98d70..3e6ad16 100644 GRUB_MOD_FINI(multiboot) { -+ if (grub_efi_secure_boot()) ++ if (grub_efi_get_secureboot () == GRUB_EFI_SECUREBOOT_MODE_ENABLED) + return; + grub_unregister_command (cmd_multiboot); grub_unregister_command (cmd_module); } diff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c -index 7f74d1d..e0f47e7 100644 +index 1c0cf6a430a..baa54e652ab 100644 --- a/grub-core/loader/xnu.c +++ b/grub-core/loader/xnu.c -@@ -34,6 +34,7 @@ - #include +@@ -35,6 +35,7 @@ #include #include + #include +#include GRUB_MOD_LICENSE ("GPLv3+"); -@@ -1478,6 +1479,9 @@ static grub_extcmd_t cmd_splash; +@@ -1497,6 +1498,9 @@ static grub_extcmd_t cmd_splash; GRUB_MOD_INIT(xnu) { -+ if (grub_efi_secure_boot()) ++ if (grub_efi_get_secureboot () == GRUB_EFI_SECUREBOOT_MODE_ENABLED) + return; + cmd_kernel = grub_register_command ("xnu_kernel", grub_cmd_xnu_kernel, 0, N_("Load XNU image.")); cmd_kernel64 = grub_register_command ("xnu_kernel64", grub_cmd_xnu_kernel64, -@@ -1518,6 +1522,9 @@ GRUB_MOD_INIT(xnu) +@@ -1540,6 +1544,9 @@ GRUB_MOD_INIT(xnu) GRUB_MOD_FINI(xnu) { -+ if (grub_efi_secure_boot()) ++ if (grub_efi_get_secureboot () == GRUB_EFI_SECUREBOOT_MODE_ENABLED) + return; + #ifndef GRUB_MACHINE_EMU grub_unregister_command (cmd_resume); #endif diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index 6840bfe..090c862 100644 +index 6295df85f3f..585fa6662b6 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h -@@ -85,7 +85,6 @@ EXPORT_FUNC (grub_efi_set_variable) (const char *var, +@@ -91,7 +91,6 @@ EXPORT_FUNC (grub_efi_set_variable) (const char *var, const grub_efi_guid_t *guid, void *data, grub_size_t datasize); @@ -467,53 +376,15 @@ index 6840bfe..090c862 100644 int EXPORT_FUNC (grub_efi_compare_device_paths) (const grub_efi_device_path_t *dp1, const grub_efi_device_path_t *dp2); -diff --git a/include/grub/efi/sb.h b/include/grub/efi/sb.h -new file mode 100644 -index 0000000..9629fbb ---- /dev/null -+++ b/include/grub/efi/sb.h -@@ -0,0 +1,29 @@ -+/* sb.h - declare functions for EFI Secure Boot support */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2006,2007,2008,2009 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#ifndef GRUB_EFI_SB_HEADER -+#define GRUB_EFI_SB_HEADER 1 -+ -+#include -+#include -+ -+/* Functions. */ -+int EXPORT_FUNC (grub_efi_secure_boot) (void); -+ -+#endif /* ! GRUB_EFI_SB_HEADER */ diff --git a/include/grub/ia64/linux.h b/include/grub/ia64/linux.h new file mode 100644 -index 0000000..e69de29 +index 00000000000..e69de29bb2d diff --git a/include/grub/mips/linux.h b/include/grub/mips/linux.h new file mode 100644 -index 0000000..e69de29 +index 00000000000..e69de29bb2d diff --git a/include/grub/powerpc/linux.h b/include/grub/powerpc/linux.h new file mode 100644 -index 0000000..e69de29 +index 00000000000..e69de29bb2d diff --git a/include/grub/sparc64/linux.h b/include/grub/sparc64/linux.h new file mode 100644 -index 0000000..e69de29 --- -1.8.3.1 - +index 00000000000..e69de29bb2d diff --git a/0006-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch b/0009-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch similarity index 94% rename from 0006-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch rename to 0009-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch index ba6eae3..f3aae38 100644 --- a/0006-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch +++ b/0009-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch @@ -1,19 +1,19 @@ -From 6290701c8bd7183fef478afd5c27053bf9691639 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 8 Jul 2019 12:32:37 +0200 -Subject: [PATCH 006/220] Handle multi-arch (64-on-32) boot in linuxefi loader. +Subject: [PATCH] Handle multi-arch (64-on-32) boot in linuxefi loader. Allow booting 64-bit kernels on 32-bit EFI on x86. Signed-off-by: Peter Jones --- - grub-core/loader/efi/linux.c | 9 ++- - grub-core/loader/i386/efi/linux.c | 114 ++++++++++++++++++++++++++------------ + grub-core/loader/efi/linux.c | 9 +++- + grub-core/loader/i386/efi/linux.c | 110 ++++++++++++++++++++++++++------------ include/grub/i386/linux.h | 7 ++- - 3 files changed, 91 insertions(+), 39 deletions(-) + 3 files changed, 89 insertions(+), 37 deletions(-) diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c -index c8ecce6..0622dfa 100644 +index c8ecce6dfd0..0622dfa48d4 100644 --- a/grub-core/loader/efi/linux.c +++ b/grub-core/loader/efi/linux.c @@ -69,12 +69,17 @@ grub_linuxefi_secure_validate (void *data, grub_uint32_t size) @@ -37,7 +37,7 @@ index c8ecce6..0622dfa 100644 return GRUB_ERR_BUG; diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 6b24cbb..3017d0f 100644 +index 6b24cbb9483..3017d0f3e52 100644 --- a/grub-core/loader/i386/efi/linux.c +++ b/grub-core/loader/i386/efi/linux.c @@ -44,14 +44,10 @@ static char *linux_cmdline; @@ -95,16 +95,14 @@ index 6b24cbb..3017d0f 100644 } - grub_dprintf ("linux", "params = %lx\n", (unsigned long) params); -- ++ grub_dprintf ("linux", "params = %p\n", params); + - grub_memset (params, 0, 16384); -- ++ grub_memset (params, 0, sizeof(*params)); + - grub_memcpy (&lh, kernel, sizeof (lh)); - - if (lh.boot_flag != grub_cpu_to_le16 (0xaa55)) -+ grub_dprintf ("linux", "params = %p\n", params); -+ -+ grub_memset (params, 0, sizeof(*params)); -+ + setup_header_end_offset = *((grub_uint8_t *)kernel + 0x201); + grub_dprintf ("linux", "copying %lu bytes from %p to %p\n", + MIN((grub_size_t)0x202+setup_header_end_offset, @@ -218,15 +216,15 @@ index 6b24cbb..3017d0f 100644 loaded=1; + grub_dprintf ("linux", "setting lh->code32_start to %p\n", kernel_mem); + lh->code32_start = (grub_uint32_t)(grub_addr_t) kernel_mem; -+ -+ grub_memcpy (kernel_mem, (char *)kernel + start, filelen - start); - lh.code32_start = (grub_uint32_t)(grub_uint64_t) kernel_mem; - grub_memcpy (params, &lh, 2 * 512); -+ grub_dprintf ("linux", "setting lh->type_of_loader\n"); -+ lh->type_of_loader = 0x6; ++ grub_memcpy (kernel_mem, (char *)kernel + start, filelen - start); - params->type_of_loader = 0x21; ++ grub_dprintf ("linux", "setting lh->type_of_loader\n"); ++ lh->type_of_loader = 0x6; ++ + grub_dprintf ("linux", "setting lh->ext_loader_{type,ver}\n"); + params->ext_loader_type = 0; + params->ext_loader_ver = 2; @@ -247,10 +245,10 @@ index 6b24cbb..3017d0f 100644 if (kernel_mem && !loaded) grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)kernel_mem, diff --git a/include/grub/i386/linux.h b/include/grub/i386/linux.h -index ce30e7f..a093679 100644 +index eddf9251d9a..25ef52c04eb 100644 --- a/include/grub/i386/linux.h +++ b/include/grub/i386/linux.h -@@ -136,7 +136,12 @@ struct linux_i386_kernel_header +@@ -138,7 +138,12 @@ struct linux_i386_kernel_header grub_uint32_t kernel_alignment; grub_uint8_t relocatable; grub_uint8_t min_alignment; @@ -264,6 +262,3 @@ index ce30e7f..a093679 100644 grub_uint32_t cmdline_size; grub_uint32_t hardware_subarch; grub_uint64_t hardware_subarch_data; --- -1.8.3.1 - diff --git a/0010-re-write-.gitignore.patch b/0010-re-write-.gitignore.patch new file mode 100644 index 0000000..74cb0da --- /dev/null +++ b/0010-re-write-.gitignore.patch @@ -0,0 +1,248 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Mon, 8 Jul 2019 12:55:29 +0200 +Subject: [PATCH] re-write .gitignore + +--- + .gitignore | 152 ++++++++++++++++++++++++++++++++++++++ + docs/.gitignore | 5 ++ + grub-core/.gitignore | 16 ++++ + grub-core/lib/.gitignore | 1 + + include/grub/gcrypt/.gitignore | 2 + + po/.gitignore | 5 ++ + util/bash-completion.d/.gitignore | 2 + + 7 files changed, 183 insertions(+) + create mode 100644 docs/.gitignore + create mode 100644 grub-core/.gitignore + create mode 100644 grub-core/lib/.gitignore + create mode 100644 include/grub/gcrypt/.gitignore + create mode 100644 po/.gitignore + create mode 100644 util/bash-completion.d/.gitignore + +diff --git a/.gitignore b/.gitignore +index f6a1bd05175..594d0134d33 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -275,3 +275,155 @@ widthspec.bin + /xfs_test + /xzcompress_test + /zfs_test ++======= ++# things ./autogen.sh will create ++/Makefile.utilgcry.def ++/ABOUT-NLS ++/aclocal.m4 ++/autom4te.cache ++/build-aux ++/configure ++/gnulib ++/grub-core/lib/gnulib/ ++/Makefile ++ ++# things very common editors create that we never want ++*~ ++.*.sw? ++*.patch ++ ++# stuff you're likely to make while building test trees ++grub.cfg ++/build*/ ++ ++# built objects across the whole tree ++Makefile.in ++*.a ++*.am ++*.efi ++*.exec ++*.image ++*.img ++*.info ++*.lst ++*.marker ++/m4 ++*.mod ++*.module ++*.o ++*.pf2 ++*.yy.[ch] ++.deps/ ++.deps-core/ ++.deps-util/ ++.dirstamp ++ ++# next are things you get if you do ./configure in the topdir (for e.g. ++# "make dist" invocation. ++/config-util.h ++/config.h ++/include/grub/cpu ++/include/grub/machine ++/INSTALL ++/INSTALL.grub ++/po/Makefile.in.in ++/po/Makevars ++/po/Makevars.template ++/po/POTFILES ++/po/Rules-quot ++/stamp-h ++/stamp-h1 ++bootstrap.log ++config.log ++config.status ++ ++# stuff "make dist" creates ++ChangeLog ++grub-*.tar ++grub-*.tar.* ++ ++# stuff "make" creates ++/[[:digit:]][[:digit:]]_?* ++/ascii.h ++/build-grub-gen-asciih ++/build-grub-gen-widthspec ++/build-grub-mkfont ++/config-util.h.in ++/garbage-gen ++/grub*-bios-setup ++/grub*-bios-setup.8 ++/grub*-editenv ++/grub*-editenv.1 ++/grub*-file ++/grub*-file.1 ++/grub*-fs-tester ++/grub*-fstest ++/grub*-fstest.1 ++/grub*-get-kernel-settings ++/grub*-get-kernel-settings.3 ++/grub*-glue-efi ++/grub*-glue-efi.1 ++/grub*-install ++/grub*-install.8 ++/grub*-kbdcomp ++/grub*-kbdcomp.1 ++/grub*-macbless ++/grub*-macbless.8 ++/grub*-menulst2cfg ++/grub*-menulst2cfg.1 ++/grub*-mount ++/grub*-mount.1 ++/grub*-mkconfig ++/grub*-mkconfig.8 ++/grub*-mkconfig_lib ++/grub*-mkfont ++/grub*-mkfont.1 ++/grub*-mkimage ++/grub*-mkimage.1 ++/grub*-mklayout ++/grub*-mklayout.1 ++/grub*-mknetdir ++/grub*-mknetdir.1 ++/grub*-mkpasswd-pbkdf2 ++/grub*-mkpasswd-pbkdf2.1 ++/grub*-mkrelpath ++/grub*-mkrelpath.1 ++/grub*-mkrescue ++/grub*-mkrescue.1 ++/grub*-mkstandalone ++/grub*-mkstandalone.1 ++/grub*-ofpathname ++/grub*-ofpathname.8 ++/grub*-probe ++/grub*-probe.8 ++/grub*-reboot ++/grub*-reboot.8 ++/grub*-render-label ++/grub*-render-label.1 ++/grub*-rpm-sort ++/grub*-rpm-sort.8 ++/grub*-script-check ++/grub*-script-check.1 ++/grub*-set-bootflag ++/grub*-set-bootflag.1 ++/grub*-set-default ++/grub*-set-default.8 ++/grub*-set-password ++/grub*-set-password.8 ++/grub*-shell ++/grub*-shell-tester ++/grub*-sparc64-setup ++/grub*-sparc64-setup.8 ++/grub*-syslinux2cfg ++/grub*-syslinux2cfg.1 ++/grub*-switch-to-blscfg ++/grub*-switch-to-blscfg.8 ++/grub_fstest.pp ++/grub_fstest_init.c ++/grub_fstest_init.lst ++/grub_script.tab.[ch] ++/libgrub.pp ++/libgrub_a_init.c ++/libgrub_a_init.lst ++/stamp-h.in ++/widthspec.h +diff --git a/docs/.gitignore b/docs/.gitignore +new file mode 100644 +index 00000000000..e1d849ef95b +--- /dev/null ++++ b/docs/.gitignore +@@ -0,0 +1,5 @@ ++/*.in ++/Makefile ++/stamp-1 ++/stamp-vti ++/version*.texi +diff --git a/grub-core/.gitignore b/grub-core/.gitignore +new file mode 100644 +index 00000000000..2acce281159 +--- /dev/null ++++ b/grub-core/.gitignore +@@ -0,0 +1,16 @@ ++/*.lst ++/Makefile ++/Makefile.gcry.def ++/unidata.c ++/build-grub-module-verifier ++/gdb_grub ++/genmod.sh ++/gensyminfo.sh ++/gentrigtables ++/gmodule.pl ++/grub_script.tab.[ch] ++/modinfo.sh ++/rs_decoder.h ++/symlist.c ++/symlist.h ++/trigtables.c +diff --git a/grub-core/lib/.gitignore b/grub-core/lib/.gitignore +new file mode 100644 +index 00000000000..68154591404 +--- /dev/null ++++ b/grub-core/lib/.gitignore +@@ -0,0 +1 @@ ++/libgcrypt-grub/ +diff --git a/include/grub/gcrypt/.gitignore b/include/grub/gcrypt/.gitignore +new file mode 100644 +index 00000000000..8fbf5646246 +--- /dev/null ++++ b/include/grub/gcrypt/.gitignore +@@ -0,0 +1,2 @@ ++g10lib.h ++gcrypt.h +diff --git a/po/.gitignore b/po/.gitignore +new file mode 100644 +index 00000000000..f507e7741e3 +--- /dev/null ++++ b/po/.gitignore +@@ -0,0 +1,5 @@ ++/Makefile ++/POTFILES*.in ++/grub.pot ++/remove-potcdate.sed ++/stamp-po +diff --git a/util/bash-completion.d/.gitignore b/util/bash-completion.d/.gitignore +new file mode 100644 +index 00000000000..6813a527ad3 +--- /dev/null ++++ b/util/bash-completion.d/.gitignore +@@ -0,0 +1,2 @@ ++Makefile ++grub diff --git a/0011-Honor-a-symlink-when-generating-configuration-by-gru.patch b/0011-Honor-a-symlink-when-generating-configuration-by-gru.patch deleted file mode 100644 index 473aeb1..0000000 --- a/0011-Honor-a-symlink-when-generating-configuration-by-gru.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 100f123a544bc54034cf61646f03f988fc876435 Mon Sep 17 00:00:00 2001 -From: Marcel Kolaja -Date: Tue, 21 Jan 2014 10:57:08 -0500 -Subject: [PATCH 011/220] Honor a symlink when generating configuration by - grub2-mkconfig - -Honor a symlink when generating configuration by grub2-mkconfig, so that -the -o option follows it rather than overwriting it with a regular file. ---- - util/grub-mkconfig.in | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 9f477ff..523d4e0 100644 ---- a/util/grub-mkconfig.in -+++ b/util/grub-mkconfig.in -@@ -287,7 +287,8 @@ and /etc/grub.d/* files or please file a bug report with - exit 1 - else - # none of the children aborted with error, install the new grub.cfg -- mv -f ${grub_cfg}.new ${grub_cfg} -+ cat ${grub_cfg}.new > ${grub_cfg} -+ rm -f ${grub_cfg}.new - fi - fi - --- -1.8.3.1 - diff --git a/0008-IBM-client-architecture-CAS-reboot-support.patch b/0011-IBM-client-architecture-CAS-reboot-support.patch similarity index 88% rename from 0008-IBM-client-architecture-CAS-reboot-support.patch rename to 0011-IBM-client-architecture-CAS-reboot-support.patch index 6bf7410..431a443 100644 --- a/0008-IBM-client-architecture-CAS-reboot-support.patch +++ b/0011-IBM-client-architecture-CAS-reboot-support.patch @@ -1,22 +1,26 @@ -From 3b4c970a7123c3c29415f41bebee761524597b25 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Thu, 20 Sep 2012 18:07:39 -0300 -Subject: [PATCH 008/220] IBM client architecture (CAS) reboot support +Subject: [PATCH] IBM client architecture (CAS) reboot support This is an implementation of IBM client architecture (CAS) reboot for GRUB. There are cases where the POWER firmware must reboot in order to support specific features requested by a kernel. The kernel calls -ibm,client-architecture-support and it may either return or reboot with the new -feature set. eg: +ibm,client-architecture-support and it may either return or reboot with +the new feature set. eg: Calling ibm,client-architecture-support.../ Elapsed time since release of system processors: 70959 mins 50 secs Welcome to GRUB! -Instead of return to the GRUB menu, it will check if the flag for CAS reboot is -set. If so, grub will automatically boot the last booted kernel using the same -parameters +Instead of return to the GRUB menu, it will check if the flag for CAS +reboot is set. If so, grub will automatically boot the last booted +kernel using the same parameters + +Signed-off-by: Paulo Flabiano Smorigo +[rharwood@redhat.com: commit message rewrap] +Signed-off-by: Robbie Harwood --- grub-core/kern/ieee1275/openfw.c | 63 ++++++++++++++++++++++++++++++++++++++++ grub-core/normal/main.c | 19 ++++++++++++ @@ -25,7 +29,7 @@ parameters 4 files changed, 91 insertions(+) diff --git a/grub-core/kern/ieee1275/openfw.c b/grub-core/kern/ieee1275/openfw.c -index 4d493ab..3a6689a 100644 +index 4d493ab7661..3a6689abb11 100644 --- a/grub-core/kern/ieee1275/openfw.c +++ b/grub-core/kern/ieee1275/openfw.c @@ -591,3 +591,66 @@ grub_ieee1275_get_boot_dev (void) @@ -96,10 +100,10 @@ index 4d493ab..3a6689a 100644 + return 0; +} diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index 1b03dfd..222e239 100644 +index c4ebe9e22ad..70614de1565 100644 --- a/grub-core/normal/main.c +++ b/grub-core/normal/main.c -@@ -33,6 +33,9 @@ +@@ -34,6 +34,9 @@ #include #include #include @@ -109,7 +113,7 @@ index 1b03dfd..222e239 100644 GRUB_MOD_LICENSE ("GPLv3+"); -@@ -275,6 +278,22 @@ grub_normal_execute (const char *config, int nested, int batch) +@@ -276,6 +279,22 @@ grub_normal_execute (const char *config, int nested, int batch) { menu = read_config_file (config); @@ -133,7 +137,7 @@ index 1b03dfd..222e239 100644 grub_errno = GRUB_ERR_NONE; } diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c -index ee299fd..0d05d6b 100644 +index 25158407dd8..ad80399246a 100644 --- a/grub-core/script/execute.c +++ b/grub-core/script/execute.c @@ -28,6 +28,9 @@ @@ -146,7 +150,7 @@ index ee299fd..0d05d6b 100644 /* Max digits for a char is 3 (0xFF is 255), similarly for an int it is sizeof (int) * 3, and one extra for a possible -ve sign. */ -@@ -878,6 +881,10 @@ grub_script_execute_sourcecode (const char *source) +@@ -883,6 +886,10 @@ grub_script_execute_sourcecode (const char *source) grub_err_t ret = 0; struct grub_script *parsed_script; @@ -158,7 +162,7 @@ index ee299fd..0d05d6b 100644 { char *line; diff --git a/include/grub/ieee1275/ieee1275.h b/include/grub/ieee1275/ieee1275.h -index 73e2f46..0a59960 100644 +index 73e2f464475..0a599607f31 100644 --- a/include/grub/ieee1275/ieee1275.h +++ b/include/grub/ieee1275/ieee1275.h @@ -254,6 +254,8 @@ int EXPORT_FUNC(grub_ieee1275_devalias_next) (struct grub_ieee1275_devalias *ali @@ -170,6 +174,3 @@ index 73e2f46..0a59960 100644 char *EXPORT_FUNC(grub_ieee1275_get_boot_dev) (void); --- -1.8.3.1 - diff --git a/0009-for-ppc-reset-console-display-attr-when-clear-screen.patch b/0012-for-ppc-reset-console-display-attr-when-clear-screen.patch similarity index 79% rename from 0009-for-ppc-reset-console-display-attr-when-clear-screen.patch rename to 0012-for-ppc-reset-console-display-attr-when-clear-screen.patch index 9a6ca8e..c8ccc7e 100644 --- a/0009-for-ppc-reset-console-display-attr-when-clear-screen.patch +++ b/0012-for-ppc-reset-console-display-attr-when-clear-screen.patch @@ -1,7 +1,7 @@ -From 8213eaa16384c332659e2655a7f5f01d09d5b27d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 24 Apr 2013 10:51:48 -0300 -Subject: [PATCH 009/220] for ppc, reset console display attr when clear screen +Subject: [PATCH] for ppc, reset console display attr when clear screen v2: Also use \x0c instead of a literal ^L to make future patches less awkward. @@ -10,12 +10,14 @@ This should fix this bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=908519 Signed-off-by: Peter Jones +Signed-off-by: Paulo Flabiano Smorigo +Signed-off-by: Robbie Harwood --- grub-core/term/terminfo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/term/terminfo.c b/grub-core/term/terminfo.c -index d317efa..29df35e 100644 +index 85ecf06b4df..05c88dcf49e 100644 --- a/grub-core/term/terminfo.c +++ b/grub-core/term/terminfo.c @@ -151,7 +151,7 @@ grub_terminfo_set_current (struct grub_term_output *term, @@ -27,6 +29,3 @@ index d317efa..29df35e 100644 data->reverse_video_on = grub_strdup ("\e[7m"); data->reverse_video_off = grub_strdup ("\e[m"); if (grub_strcmp ("ieee1275", str) == 0) --- -1.8.3.1 - diff --git a/0010-Disable-GRUB-video-support-for-IBM-power-machines.patch b/0013-Disable-GRUB-video-support-for-IBM-power-machines.patch similarity index 84% rename from 0010-Disable-GRUB-video-support-for-IBM-power-machines.patch rename to 0013-Disable-GRUB-video-support-for-IBM-power-machines.patch index 83d7c48..e8aa367 100644 --- a/0010-Disable-GRUB-video-support-for-IBM-power-machines.patch +++ b/0013-Disable-GRUB-video-support-for-IBM-power-machines.patch @@ -1,10 +1,13 @@ -From 0a3d7e634bfa38143cdbe1c53aae681ea4432547 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 11 Jun 2013 15:14:05 -0300 -Subject: [PATCH 010/220] Disable GRUB video support for IBM power machines +Subject: [PATCH] Disable GRUB video support for IBM power machines Should fix the problem in bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=973205 + +Signed-off-by: Paulo Flabiano Smorigo +Signed-off-by: Robbie Harwood --- grub-core/kern/ieee1275/cmain.c | 5 ++++- grub-core/video/ieee1275.c | 9 ++++++--- @@ -12,7 +15,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=973205 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/grub-core/kern/ieee1275/cmain.c b/grub-core/kern/ieee1275/cmain.c -index 20cbbd7..04df9d2 100644 +index 20cbbd761ec..04df9d2c667 100644 --- a/grub-core/kern/ieee1275/cmain.c +++ b/grub-core/kern/ieee1275/cmain.c @@ -90,7 +90,10 @@ grub_ieee1275_find_options (void) @@ -28,7 +31,7 @@ index 20cbbd7..04df9d2 100644 /* Old Macs have no key repeat, newer ones have fully working one. The ones inbetween when repeated key generates an escaoe sequence diff --git a/grub-core/video/ieee1275.c b/grub-core/video/ieee1275.c -index 17a3dbb..b8e4b3f 100644 +index 17a3dbbb575..b8e4b3feb32 100644 --- a/grub-core/video/ieee1275.c +++ b/grub-core/video/ieee1275.c @@ -352,9 +352,12 @@ static struct grub_video_adapter grub_video_ieee1275_adapter = @@ -48,7 +51,7 @@ index 17a3dbb..b8e4b3f 100644 GRUB_MOD_FINI(ieee1275_fb) diff --git a/include/grub/ieee1275/ieee1275.h b/include/grub/ieee1275/ieee1275.h -index 0a59960..b5a1d49 100644 +index 0a599607f31..b5a1d49bbc3 100644 --- a/include/grub/ieee1275/ieee1275.h +++ b/include/grub/ieee1275/ieee1275.h @@ -148,6 +148,8 @@ enum grub_ieee1275_flag @@ -60,6 +63,3 @@ index 0a59960..b5a1d49 100644 }; extern int EXPORT_FUNC(grub_ieee1275_test_flag) (enum grub_ieee1275_flag flag); --- -1.8.3.1 - diff --git a/0013-Update-to-minilzo-2.08.patch b/0013-Update-to-minilzo-2.08.patch deleted file mode 100644 index 9d27597..0000000 --- a/0013-Update-to-minilzo-2.08.patch +++ /dev/null @@ -1,8790 +0,0 @@ -From f2619e8e299f13ea8ade1ee9f69334f2c1c71219 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Thu, 4 Dec 2014 15:36:09 -0500 -Subject: [PATCH 013/220] Update to minilzo-2.08 - -This fixes CVE-2014-4607 - lzo: lzo1x_decompress_safe() integer overflow - -Signed-off-by: Peter Jones ---- - grub-core/lib/minilzo/lzoconf.h | 216 ++- - grub-core/lib/minilzo/lzodefs.h | 2450 +++++++++++++++++------- - grub-core/lib/minilzo/minilzo.c | 3953 +++++++++++++++++++++++++++------------ - grub-core/lib/minilzo/minilzo.h | 21 +- - 4 files changed, 4630 insertions(+), 2010 deletions(-) - -diff --git a/grub-core/lib/minilzo/lzoconf.h b/grub-core/lib/minilzo/lzoconf.h -index 1d0fe14..61be29c 100644 ---- a/grub-core/lib/minilzo/lzoconf.h -+++ b/grub-core/lib/minilzo/lzoconf.h -@@ -2,22 +2,7 @@ - - This file is part of the LZO real-time data compression library. - -- Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer -+ Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer - All Rights Reserved. - - The LZO library is free software; you can redistribute it and/or -@@ -44,9 +29,9 @@ - #ifndef __LZOCONF_H_INCLUDED - #define __LZOCONF_H_INCLUDED 1 - --#define LZO_VERSION 0x2050 --#define LZO_VERSION_STRING "2.05" --#define LZO_VERSION_DATE "Apr 23 2011" -+#define LZO_VERSION 0x2080 -+#define LZO_VERSION_STRING "2.08" -+#define LZO_VERSION_DATE "Jun 29 2014" - - /* internal Autoconf configuration file - only used when building LZO */ - #if defined(LZO_HAVE_CONFIG_H) -@@ -63,7 +48,7 @@ - #if !defined(CHAR_BIT) || (CHAR_BIT != 8) - # error "invalid CHAR_BIT" - #endif --#if !defined(UCHAR_MAX) || !defined(UINT_MAX) || !defined(ULONG_MAX) -+#if !defined(UCHAR_MAX) || !defined(USHRT_MAX) || !defined(UINT_MAX) || !defined(ULONG_MAX) - # error "check your compiler installation" - #endif - #if (USHRT_MAX < 1) || (UINT_MAX < 1) || (ULONG_MAX < 1) -@@ -85,14 +70,6 @@ extern "C" { - // some core defines - ************************************************************************/ - --#if !defined(LZO_UINT32_C) --# if (UINT_MAX < LZO_0xffffffffL) --# define LZO_UINT32_C(c) c ## UL --# else --# define LZO_UINT32_C(c) ((c) + 0U) --# endif --#endif -- - /* memory checkers */ - #if !defined(__LZO_CHECKER) - # if defined(__BOUNDS_CHECKING_ON) -@@ -111,28 +88,31 @@ extern "C" { - // integral and pointer types - ************************************************************************/ - --/* lzo_uint should match size_t */ -+/* lzo_uint must match size_t */ - #if !defined(LZO_UINT_MAX) --# if defined(LZO_ABI_LLP64) /* WIN64 */ --# if defined(LZO_OS_WIN64) -+# if (LZO_ABI_LLP64) -+# if (LZO_OS_WIN64) - typedef unsigned __int64 lzo_uint; - typedef __int64 lzo_int; - # else -- typedef unsigned long long lzo_uint; -- typedef long long lzo_int; -+ typedef lzo_ullong_t lzo_uint; -+ typedef lzo_llong_t lzo_int; - # endif -+# define LZO_SIZEOF_LZO_UINT 8 - # define LZO_UINT_MAX 0xffffffffffffffffull - # define LZO_INT_MAX 9223372036854775807LL - # define LZO_INT_MIN (-1LL - LZO_INT_MAX) --# elif defined(LZO_ABI_IP32L64) /* MIPS R5900 */ -+# elif (LZO_ABI_IP32L64) /* MIPS R5900 */ - typedef unsigned int lzo_uint; - typedef int lzo_int; -+# define LZO_SIZEOF_LZO_UINT LZO_SIZEOF_INT - # define LZO_UINT_MAX UINT_MAX - # define LZO_INT_MAX INT_MAX - # define LZO_INT_MIN INT_MIN - # elif (ULONG_MAX >= LZO_0xffffffffL) - typedef unsigned long lzo_uint; - typedef long lzo_int; -+# define LZO_SIZEOF_LZO_UINT LZO_SIZEOF_LONG - # define LZO_UINT_MAX ULONG_MAX - # define LZO_INT_MAX LONG_MAX - # define LZO_INT_MIN LONG_MIN -@@ -141,63 +121,22 @@ extern "C" { - # endif - #endif - --/* Integral types with 32 bits or more. */ --#if !defined(LZO_UINT32_MAX) --# if (UINT_MAX >= LZO_0xffffffffL) -- typedef unsigned int lzo_uint32; -- typedef int lzo_int32; --# define LZO_UINT32_MAX UINT_MAX --# define LZO_INT32_MAX INT_MAX --# define LZO_INT32_MIN INT_MIN --# elif (ULONG_MAX >= LZO_0xffffffffL) -- typedef unsigned long lzo_uint32; -- typedef long lzo_int32; --# define LZO_UINT32_MAX ULONG_MAX --# define LZO_INT32_MAX LONG_MAX --# define LZO_INT32_MIN LONG_MIN --# else --# error "lzo_uint32" --# endif --#endif -- --/* Integral types with exactly 64 bits. */ --#if !defined(LZO_UINT64_MAX) --# if (LZO_UINT_MAX >= LZO_0xffffffffL) --# if ((((LZO_UINT_MAX) >> 31) >> 31) == 3) --# define lzo_uint64 lzo_uint --# define lzo_int64 lzo_int --# define LZO_UINT64_MAX LZO_UINT_MAX --# define LZO_INT64_MAX LZO_INT_MAX --# define LZO_INT64_MIN LZO_INT_MIN --# endif --# elif (ULONG_MAX >= LZO_0xffffffffL) --# if ((((ULONG_MAX) >> 31) >> 31) == 3) -- typedef unsigned long lzo_uint64; -- typedef long lzo_int64; --# define LZO_UINT64_MAX ULONG_MAX --# define LZO_INT64_MAX LONG_MAX --# define LZO_INT64_MIN LONG_MIN --# endif --# endif --#endif -- --/* The larger type of lzo_uint and lzo_uint32. */ --#if (LZO_UINT_MAX >= LZO_UINT32_MAX) -+/* The larger type of lzo_uint and lzo_uint32_t. */ -+#if (LZO_SIZEOF_LZO_UINT >= 4) - # define lzo_xint lzo_uint - #else --# define lzo_xint lzo_uint32 -+# define lzo_xint lzo_uint32_t - #endif - --/* Memory model that allows to access memory at offsets of lzo_uint. */ --#if !defined(__LZO_MMODEL) --# if (LZO_UINT_MAX <= UINT_MAX) --# define __LZO_MMODEL /*empty*/ --# elif defined(LZO_HAVE_MM_HUGE_PTR) --# define __LZO_MMODEL_HUGE 1 --# define __LZO_MMODEL __huge --# else --# define __LZO_MMODEL /*empty*/ --# endif -+typedef int lzo_bool; -+ -+/* sanity checks */ -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint) == LZO_SIZEOF_LZO_UINT) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_xint) >= sizeof(lzo_uint)) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_xint) >= sizeof(lzo_uint32_t)) -+ -+#ifndef __LZO_MMODEL -+#define __LZO_MMODEL /*empty*/ - #endif - - /* no typedef here because of const-pointer issues */ -@@ -206,21 +145,52 @@ extern "C" { - #define lzo_voidp void __LZO_MMODEL * - #define lzo_shortp short __LZO_MMODEL * - #define lzo_ushortp unsigned short __LZO_MMODEL * --#define lzo_uint32p lzo_uint32 __LZO_MMODEL * --#define lzo_int32p lzo_int32 __LZO_MMODEL * --#if defined(LZO_UINT64_MAX) --#define lzo_uint64p lzo_uint64 __LZO_MMODEL * --#define lzo_int64p lzo_int64 __LZO_MMODEL * --#endif --#define lzo_uintp lzo_uint __LZO_MMODEL * - #define lzo_intp lzo_int __LZO_MMODEL * -+#define lzo_uintp lzo_uint __LZO_MMODEL * - #define lzo_xintp lzo_xint __LZO_MMODEL * - #define lzo_voidpp lzo_voidp __LZO_MMODEL * - #define lzo_bytepp lzo_bytep __LZO_MMODEL * --/* deprecated - use 'lzo_bytep' instead of 'lzo_byte *' */ --#define lzo_byte unsigned char __LZO_MMODEL - --typedef int lzo_bool; -+#define lzo_int8_tp lzo_int8_t __LZO_MMODEL * -+#define lzo_uint8_tp lzo_uint8_t __LZO_MMODEL * -+#define lzo_int16_tp lzo_int16_t __LZO_MMODEL * -+#define lzo_uint16_tp lzo_uint16_t __LZO_MMODEL * -+#define lzo_int32_tp lzo_int32_t __LZO_MMODEL * -+#define lzo_uint32_tp lzo_uint32_t __LZO_MMODEL * -+#if defined(lzo_int64_t) -+#define lzo_int64_tp lzo_int64_t __LZO_MMODEL * -+#define lzo_uint64_tp lzo_uint64_t __LZO_MMODEL * -+#endif -+ -+/* Older LZO versions used to support ancient systems and memory models -+ * like 16-bit MSDOS with __huge pointers and Cray PVP, but these -+ * obsolete configurations are not supported any longer. -+ */ -+#if defined(__LZO_MMODEL_HUGE) -+#error "__LZO_MMODEL_HUGE is unsupported" -+#endif -+#if (LZO_MM_PVP) -+#error "LZO_MM_PVP is unsupported" -+#endif -+#if (LZO_SIZEOF_INT < 4) -+#error "LZO_SIZEOF_INT < 4 is unsupported" -+#endif -+#if (__LZO_UINTPTR_T_IS_POINTER) -+#error "__LZO_UINTPTR_T_IS_POINTER is unsupported" -+#endif -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(int) >= 4) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint) >= 4) -+/* Strange configurations where sizeof(lzo_uint) != sizeof(size_t) should -+ * work but have not received much testing lately, so be strict here. -+ */ -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint) == sizeof(size_t)) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint) == sizeof(ptrdiff_t)) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint) == sizeof(lzo_uintptr_t)) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(void *) == sizeof(lzo_uintptr_t)) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(char *) == sizeof(lzo_uintptr_t)) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long *) == sizeof(lzo_uintptr_t)) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(void *) == sizeof(lzo_voidp)) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(char *) == sizeof(lzo_bytep)) - - - /*********************************************************************** -@@ -315,7 +285,7 @@ struct lzo_callback_t - /* a progress indicator callback function (set to 0 to disable) */ - lzo_progress_func_t nprogress; - -- /* NOTE: the first parameter "self" of the nalloc/nfree/nprogress -+ /* INFO: the first parameter "self" of the nalloc/nfree/nprogress - * callbacks points back to this struct, so you are free to store - * some extra info in the following variables. */ - lzo_voidp user1; -@@ -343,6 +313,9 @@ struct lzo_callback_t - #define LZO_E_INPUT_NOT_CONSUMED (-8) - #define LZO_E_NOT_YET_IMPLEMENTED (-9) /* [not used right now] */ - #define LZO_E_INVALID_ARGUMENT (-10) -+#define LZO_E_INVALID_ALIGNMENT (-11) /* pointer argument is not properly aligned */ -+#define LZO_E_OUTPUT_NOT_CONSUMED (-12) -+#define LZO_E_INTERNAL_ERROR (-99) - - - #ifndef lzo_sizeof_dict_t -@@ -356,7 +329,7 @@ struct lzo_callback_t - * compiler's view of various types are consistent. - */ - #define lzo_init() __lzo_init_v2(LZO_VERSION,(int)sizeof(short),(int)sizeof(int),\ -- (int)sizeof(long),(int)sizeof(lzo_uint32),(int)sizeof(lzo_uint),\ -+ (int)sizeof(long),(int)sizeof(lzo_uint32_t),(int)sizeof(lzo_uint),\ - (int)lzo_sizeof_dict_t,(int)sizeof(char *),(int)sizeof(lzo_voidp),\ - (int)sizeof(lzo_callback_t)) - LZO_EXTERN(int) __lzo_init_v2(unsigned,int,int,int,int,int,int,int,int,int); -@@ -379,18 +352,22 @@ LZO_EXTERN(lzo_voidp) - lzo_memset(lzo_voidp buf, int c, lzo_uint len); - - /* checksum functions */ --LZO_EXTERN(lzo_uint32) -- lzo_adler32(lzo_uint32 c, const lzo_bytep buf, lzo_uint len); --LZO_EXTERN(lzo_uint32) -- lzo_crc32(lzo_uint32 c, const lzo_bytep buf, lzo_uint len); --LZO_EXTERN(const lzo_uint32p) -+LZO_EXTERN(lzo_uint32_t) -+ lzo_adler32(lzo_uint32_t c, const lzo_bytep buf, lzo_uint len); -+LZO_EXTERN(lzo_uint32_t) -+ lzo_crc32(lzo_uint32_t c, const lzo_bytep buf, lzo_uint len); -+LZO_EXTERN(const lzo_uint32_tp) - lzo_get_crc32_table(void); - - /* misc. */ - LZO_EXTERN(int) _lzo_config_check(void); --typedef union { lzo_bytep p; lzo_uint u; } __lzo_pu_u; --typedef union { lzo_bytep p; lzo_uint32 u32; } __lzo_pu32_u; --typedef union { void *vp; lzo_bytep bp; lzo_uint u; lzo_uint32 u32; unsigned long l; } lzo_align_t; -+typedef union { -+ lzo_voidp a00; lzo_bytep a01; lzo_uint a02; lzo_xint a03; lzo_uintptr_t a04; -+ void *a05; unsigned char *a06; unsigned long a07; size_t a08; ptrdiff_t a09; -+#if defined(lzo_int64_t) -+ lzo_uint64_t a10; -+#endif -+} lzo_align_t; - - /* align a char pointer on a boundary that is a multiple of 'size' */ - LZO_EXTERN(unsigned) __lzo_align_gap(const lzo_voidp p, lzo_uint size); -@@ -399,9 +376,30 @@ LZO_EXTERN(unsigned) __lzo_align_gap(const lzo_voidp p, lzo_uint size); - - - /*********************************************************************** --// deprecated macros - only for backward compatibility with LZO v1.xx -+// deprecated macros - only for backward compatibility - ************************************************************************/ - -+/* deprecated - use 'lzo_bytep' instead of 'lzo_byte *' */ -+#define lzo_byte unsigned char -+/* deprecated type names */ -+#define lzo_int32 lzo_int32_t -+#define lzo_uint32 lzo_uint32_t -+#define lzo_int32p lzo_int32_t __LZO_MMODEL * -+#define lzo_uint32p lzo_uint32_t __LZO_MMODEL * -+#define LZO_INT32_MAX LZO_INT32_C(2147483647) -+#define LZO_UINT32_MAX LZO_UINT32_C(4294967295) -+#if defined(lzo_int64_t) -+#define lzo_int64 lzo_int64_t -+#define lzo_uint64 lzo_uint64_t -+#define lzo_int64p lzo_int64_t __LZO_MMODEL * -+#define lzo_uint64p lzo_uint64_t __LZO_MMODEL * -+#define LZO_INT64_MAX LZO_INT64_C(9223372036854775807) -+#define LZO_UINT64_MAX LZO_UINT64_C(18446744073709551615) -+#endif -+/* deprecated types */ -+typedef union { lzo_bytep a; lzo_uint b; } __lzo_pu_u; -+typedef union { lzo_bytep a; lzo_uint32_t b; } __lzo_pu32_u; -+ - #if defined(LZO_CFG_COMPAT) - - #define __LZOCONF_H 1 -@@ -443,4 +441,4 @@ LZO_EXTERN(unsigned) __lzo_align_gap(const lzo_voidp p, lzo_uint size); - #endif /* already included */ - - --/* vim:set ts=4 et: */ -+/* vim:set ts=4 sw=4 et: */ -diff --git a/grub-core/lib/minilzo/lzodefs.h b/grub-core/lib/minilzo/lzodefs.h -index 0e40e33..f4ae948 100644 ---- a/grub-core/lib/minilzo/lzodefs.h -+++ b/grub-core/lib/minilzo/lzodefs.h -@@ -2,22 +2,7 @@ - - This file is part of the LZO real-time data compression library. - -- Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer -+ Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer - All Rights Reserved. - - The LZO library is free software; you can redistribute it and/or -@@ -47,12 +32,6 @@ - #if defined(__CYGWIN32__) && !defined(__CYGWIN__) - # define __CYGWIN__ __CYGWIN32__ - #endif --#if defined(__IBMCPP__) && !defined(__IBMC__) --# define __IBMC__ __IBMCPP__ --#endif --#if defined(__ICL) && defined(_WIN32) && !defined(__INTEL_COMPILER) --# define __INTEL_COMPILER __ICL --#endif - #if 1 && defined(__INTERIX) && defined(__GNUC__) && !defined(_ALL_SOURCE) - # define _ALL_SOURCE 1 - #endif -@@ -61,19 +40,30 @@ - # define __LONG_MAX__ 9223372036854775807L - # endif - #endif --#if defined(__INTEL_COMPILER) && defined(__linux__) -+#if !defined(LZO_CFG_NO_DISABLE_WUNDEF) -+#if defined(__ARMCC_VERSION) -+# pragma diag_suppress 193 -+#elif defined(__clang__) && defined(__clang_minor__) -+# pragma clang diagnostic ignored "-Wundef" -+#elif defined(__INTEL_COMPILER) - # pragma warning(disable: 193) --#endif --#if defined(__KEIL__) && defined(__C166__) --# pragma warning disable = 322 --#elif 0 && defined(__C251__) -+#elif defined(__KEIL__) && defined(__C166__) - # pragma warning disable = 322 --#endif --#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && !defined(__MWERKS__) --# if (_MSC_VER >= 1300) -+#elif defined(__GNUC__) && defined(__GNUC_MINOR__) && !defined(__PATHSCALE__) -+# if ((__GNUC__-0) >= 5 || ((__GNUC__-0) == 4 && (__GNUC_MINOR__-0) >= 2)) -+# pragma GCC diagnostic ignored "-Wundef" -+# endif -+#elif defined(_MSC_VER) && !defined(__clang__) && !defined(__INTEL_COMPILER) && !defined(__MWERKS__) -+# if ((_MSC_VER-0) >= 1300) - # pragma warning(disable: 4668) - # endif - #endif -+#endif -+#if 0 && defined(__POCC__) && defined(_WIN32) -+# if (__POCC__ >= 400) -+# pragma warn(disable: 2216) -+# endif -+#endif - #if 0 && defined(__WATCOMC__) - # if (__WATCOMC__ >= 1050) && (__WATCOMC__ < 1060) - # pragma warning 203 9 -@@ -82,13 +72,29 @@ - #if defined(__BORLANDC__) && defined(__MSDOS__) && !defined(__FLAT__) - # pragma option -h - #endif -+#if !(LZO_CFG_NO_DISABLE_WCRTNONSTDC) -+#ifndef _CRT_NONSTDC_NO_DEPRECATE -+#define _CRT_NONSTDC_NO_DEPRECATE 1 -+#endif -+#ifndef _CRT_NONSTDC_NO_WARNINGS -+#define _CRT_NONSTDC_NO_WARNINGS 1 -+#endif -+#ifndef _CRT_SECURE_NO_DEPRECATE -+#define _CRT_SECURE_NO_DEPRECATE 1 -+#endif -+#ifndef _CRT_SECURE_NO_WARNINGS -+#define _CRT_SECURE_NO_WARNINGS 1 -+#endif -+#endif - #if 0 --#define LZO_0xffffL 0xfffful --#define LZO_0xffffffffL 0xfffffffful -+#define LZO_0xffffUL 0xfffful -+#define LZO_0xffffffffUL 0xfffffffful - #else --#define LZO_0xffffL 65535ul --#define LZO_0xffffffffL 4294967295ul -+#define LZO_0xffffUL 65535ul -+#define LZO_0xffffffffUL 4294967295ul - #endif -+#define LZO_0xffffL LZO_0xffffUL -+#define LZO_0xffffffffL LZO_0xffffffffUL - #if (LZO_0xffffL == LZO_0xffffffffL) - # error "your preprocessor is broken 1" - #endif -@@ -103,6 +109,13 @@ - # error "your preprocessor is broken 4" - #endif - #endif -+#if defined(__COUNTER__) -+# ifndef LZO_CFG_USE_COUNTER -+# define LZO_CFG_USE_COUNTER 1 -+# endif -+#else -+# undef LZO_CFG_USE_COUNTER -+#endif - #if (UINT_MAX == LZO_0xffffL) - #if defined(__ZTC__) && defined(__I86__) && !defined(__OS2__) - # if !defined(MSDOS) -@@ -233,14 +246,31 @@ - #endif - #define LZO_PP_STRINGIZE(x) #x - #define LZO_PP_MACRO_EXPAND(x) LZO_PP_STRINGIZE(x) -+#define LZO_PP_CONCAT0() /*empty*/ -+#define LZO_PP_CONCAT1(a) a - #define LZO_PP_CONCAT2(a,b) a ## b - #define LZO_PP_CONCAT3(a,b,c) a ## b ## c - #define LZO_PP_CONCAT4(a,b,c,d) a ## b ## c ## d - #define LZO_PP_CONCAT5(a,b,c,d,e) a ## b ## c ## d ## e -+#define LZO_PP_CONCAT6(a,b,c,d,e,f) a ## b ## c ## d ## e ## f -+#define LZO_PP_CONCAT7(a,b,c,d,e,f,g) a ## b ## c ## d ## e ## f ## g -+#define LZO_PP_ECONCAT0() LZO_PP_CONCAT0() -+#define LZO_PP_ECONCAT1(a) LZO_PP_CONCAT1(a) - #define LZO_PP_ECONCAT2(a,b) LZO_PP_CONCAT2(a,b) - #define LZO_PP_ECONCAT3(a,b,c) LZO_PP_CONCAT3(a,b,c) - #define LZO_PP_ECONCAT4(a,b,c,d) LZO_PP_CONCAT4(a,b,c,d) - #define LZO_PP_ECONCAT5(a,b,c,d,e) LZO_PP_CONCAT5(a,b,c,d,e) -+#define LZO_PP_ECONCAT6(a,b,c,d,e,f) LZO_PP_CONCAT6(a,b,c,d,e,f) -+#define LZO_PP_ECONCAT7(a,b,c,d,e,f,g) LZO_PP_CONCAT7(a,b,c,d,e,f,g) -+#define LZO_PP_EMPTY /*empty*/ -+#define LZO_PP_EMPTY0() /*empty*/ -+#define LZO_PP_EMPTY1(a) /*empty*/ -+#define LZO_PP_EMPTY2(a,b) /*empty*/ -+#define LZO_PP_EMPTY3(a,b,c) /*empty*/ -+#define LZO_PP_EMPTY4(a,b,c,d) /*empty*/ -+#define LZO_PP_EMPTY5(a,b,c,d,e) /*empty*/ -+#define LZO_PP_EMPTY6(a,b,c,d,e,f) /*empty*/ -+#define LZO_PP_EMPTY7(a,b,c,d,e,f,g) /*empty*/ - #if 1 - #define LZO_CPP_STRINGIZE(x) #x - #define LZO_CPP_MACRO_EXPAND(x) LZO_CPP_STRINGIZE(x) -@@ -248,12 +278,16 @@ - #define LZO_CPP_CONCAT3(a,b,c) a ## b ## c - #define LZO_CPP_CONCAT4(a,b,c,d) a ## b ## c ## d - #define LZO_CPP_CONCAT5(a,b,c,d,e) a ## b ## c ## d ## e -+#define LZO_CPP_CONCAT6(a,b,c,d,e,f) a ## b ## c ## d ## e ## f -+#define LZO_CPP_CONCAT7(a,b,c,d,e,f,g) a ## b ## c ## d ## e ## f ## g - #define LZO_CPP_ECONCAT2(a,b) LZO_CPP_CONCAT2(a,b) - #define LZO_CPP_ECONCAT3(a,b,c) LZO_CPP_CONCAT3(a,b,c) - #define LZO_CPP_ECONCAT4(a,b,c,d) LZO_CPP_CONCAT4(a,b,c,d) - #define LZO_CPP_ECONCAT5(a,b,c,d,e) LZO_CPP_CONCAT5(a,b,c,d,e) -+#define LZO_CPP_ECONCAT6(a,b,c,d,e,f) LZO_CPP_CONCAT6(a,b,c,d,e,f) -+#define LZO_CPP_ECONCAT7(a,b,c,d,e,f,g) LZO_CPP_CONCAT7(a,b,c,d,e,f,g) - #endif --#define __LZO_MASK_GEN(o,b) (((((o) << ((b)-1)) - (o)) << 1) + (o)) -+#define __LZO_MASK_GEN(o,b) (((((o) << ((b)-!!(b))) - (o)) << 1) + (o)*!!(b)) - #if 1 && defined(__cplusplus) - # if !defined(__STDC_CONSTANT_MACROS) - # define __STDC_CONSTANT_MACROS 1 -@@ -263,9 +297,13 @@ - # endif - #endif - #if defined(__cplusplus) --# define LZO_EXTERN_C extern "C" -+# define LZO_EXTERN_C extern "C" -+# define LZO_EXTERN_C_BEGIN extern "C" { -+# define LZO_EXTERN_C_END } - #else --# define LZO_EXTERN_C extern -+# define LZO_EXTERN_C extern -+# define LZO_EXTERN_C_BEGIN /*empty*/ -+# define LZO_EXTERN_C_END /*empty*/ - #endif - #if !defined(__LZO_OS_OVERRIDE) - #if (LZO_OS_FREESTANDING) -@@ -366,12 +404,12 @@ - #elif defined(__VMS) - # define LZO_OS_VMS 1 - # define LZO_INFO_OS "vms" --#elif ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__)) -+#elif (defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__) - # define LZO_OS_CONSOLE 1 - # define LZO_OS_CONSOLE_PS2 1 - # define LZO_INFO_OS "console" - # define LZO_INFO_OS_CONSOLE "ps2" --#elif (defined(__mips__) && defined(__psp__)) -+#elif defined(__mips__) && defined(__psp__) - # define LZO_OS_CONSOLE 1 - # define LZO_OS_CONSOLE_PSP 1 - # define LZO_INFO_OS "console" -@@ -399,9 +437,18 @@ - # elif defined(__linux__) || defined(__linux) || defined(__LINUX__) - # define LZO_OS_POSIX_LINUX 1 - # define LZO_INFO_OS_POSIX "linux" --# elif defined(__APPLE__) || defined(__MACOS__) --# define LZO_OS_POSIX_MACOSX 1 --# define LZO_INFO_OS_POSIX "macosx" -+# elif defined(__APPLE__) && defined(__MACH__) -+# if ((__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__-0) >= 20000) -+# define LZO_OS_POSIX_DARWIN 1040 -+# define LZO_INFO_OS_POSIX "darwin_iphone" -+# elif ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__-0) >= 1040) -+# define LZO_OS_POSIX_DARWIN __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ -+# define LZO_INFO_OS_POSIX "darwin" -+# else -+# define LZO_OS_POSIX_DARWIN 1 -+# define LZO_INFO_OS_POSIX "darwin" -+# endif -+# define LZO_OS_POSIX_MACOSX LZO_OS_POSIX_DARWIN - # elif defined(__minix__) || defined(__minix) - # define LZO_OS_POSIX_MINIX 1 - # define LZO_INFO_OS_POSIX "minix" -@@ -436,18 +483,18 @@ - #endif - #if (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16) - # if (UINT_MAX != LZO_0xffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - # if (ULONG_MAX != LZO_0xffffffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - #endif - #if (LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_WIN32 || LZO_OS_WIN64) - # if (UINT_MAX != LZO_0xffffffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - # if (ULONG_MAX != LZO_0xffffffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - #endif - #if defined(CIL) && defined(_GNUCC) && defined(__GNUC__) -@@ -463,59 +510,65 @@ - # define LZO_INFO_CC "sdcc" - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(SDCC) - #elif defined(__PATHSCALE__) && defined(__PATHCC_PATCHLEVEL__) --# define LZO_CC_PATHSCALE (__PATHCC__ * 0x10000L + __PATHCC_MINOR__ * 0x100 + __PATHCC_PATCHLEVEL__) -+# define LZO_CC_PATHSCALE (__PATHCC__ * 0x10000L + (__PATHCC_MINOR__-0) * 0x100 + (__PATHCC_PATCHLEVEL__-0)) - # define LZO_INFO_CC "Pathscale C" - # define LZO_INFO_CCVER __PATHSCALE__ --#elif defined(__INTEL_COMPILER) --# define LZO_CC_INTELC 1 -+# if defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) -+# define LZO_CC_PATHSCALE_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) -+# endif -+#elif defined(__INTEL_COMPILER) && ((__INTEL_COMPILER-0) > 0) -+# define LZO_CC_INTELC __INTEL_COMPILER - # define LZO_INFO_CC "Intel C" - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__INTEL_COMPILER) --# if defined(_WIN32) || defined(_WIN64) --# define LZO_CC_SYNTAX_MSC 1 --# else --# define LZO_CC_SYNTAX_GNUC 1 -+# if defined(_MSC_VER) && ((_MSC_VER-0) > 0) -+# define LZO_CC_INTELC_MSC _MSC_VER -+# elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) -+# define LZO_CC_INTELC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) - # endif - #elif defined(__POCC__) && defined(_WIN32) - # define LZO_CC_PELLESC 1 - # define LZO_INFO_CC "Pelles C" - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__POCC__) --#elif defined(__clang__) && defined(__llvm__) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) -+#elif defined(__ARMCC_VERSION) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) - # if defined(__GNUC_PATCHLEVEL__) --# define LZO_CC_CLANG_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__) -+# define LZO_CC_ARMCC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) - # else --# define LZO_CC_CLANG_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100) -+# define LZO_CC_ARMCC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100) - # endif -+# define LZO_CC_ARMCC __ARMCC_VERSION -+# define LZO_INFO_CC "ARM C Compiler" -+# define LZO_INFO_CCVER __VERSION__ -+#elif defined(__clang__) && defined(__llvm__) && defined(__VERSION__) - # if defined(__clang_major__) && defined(__clang_minor__) && defined(__clang_patchlevel__) --# define LZO_CC_CLANG_CLANG (__clang_major__ * 0x10000L + __clang_minor__ * 0x100 + __clang_patchlevel__) -+# define LZO_CC_CLANG (__clang_major__ * 0x10000L + (__clang_minor__-0) * 0x100 + (__clang_patchlevel__-0)) - # else --# define LZO_CC_CLANG_CLANG 0x010000L -+# define LZO_CC_CLANG 0x010000L -+# endif -+# if defined(_MSC_VER) && ((_MSC_VER-0) > 0) -+# define LZO_CC_CLANG_MSC _MSC_VER -+# elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) -+# define LZO_CC_CLANG_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) - # endif --# define LZO_CC_CLANG LZO_CC_CLANG_GNUC - # define LZO_INFO_CC "clang" - # define LZO_INFO_CCVER __VERSION__ - #elif defined(__llvm__) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) - # if defined(__GNUC_PATCHLEVEL__) --# define LZO_CC_LLVM_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__) -+# define LZO_CC_LLVM_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) - # else --# define LZO_CC_LLVM_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100) -+# define LZO_CC_LLVM_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100) - # endif - # define LZO_CC_LLVM LZO_CC_LLVM_GNUC - # define LZO_INFO_CC "llvm-gcc" - # define LZO_INFO_CCVER __VERSION__ --#elif defined(__GNUC__) && defined(__VERSION__) --# if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__) --# define LZO_CC_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__) --# elif defined(__GNUC_MINOR__) --# define LZO_CC_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100) --# else --# define LZO_CC_GNUC (__GNUC__ * 0x10000L) --# endif --# define LZO_INFO_CC "gcc" --# define LZO_INFO_CCVER __VERSION__ - #elif defined(__ACK__) && defined(_ACK) - # define LZO_CC_ACK 1 - # define LZO_INFO_CC "Amsterdam Compiler Kit C" - # define LZO_INFO_CCVER "unknown" -+#elif defined(__ARMCC_VERSION) && !defined(__GNUC__) -+# define LZO_CC_ARMCC __ARMCC_VERSION -+# define LZO_CC_ARMCC_ARMCC __ARMCC_VERSION -+# define LZO_INFO_CC "ARM C Compiler" -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__ARMCC_VERSION) - #elif defined(__AZTEC_C__) - # define LZO_CC_AZTECC 1 - # define LZO_INFO_CC "Aztec C" -@@ -540,10 +593,23 @@ - # define LZO_CC_DECC 1 - # define LZO_INFO_CC "DEC C" - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__DECC) -+#elif (defined(__ghs) || defined(__ghs__)) && defined(__GHS_VERSION_NUMBER) && ((__GHS_VERSION_NUMBER-0) > 0) -+# define LZO_CC_GHS 1 -+# define LZO_INFO_CC "Green Hills C" -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__GHS_VERSION_NUMBER) -+# if defined(_MSC_VER) && ((_MSC_VER-0) > 0) -+# define LZO_CC_GHS_MSC _MSC_VER -+# elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) -+# define LZO_CC_GHS_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) -+# endif - #elif defined(__HIGHC__) - # define LZO_CC_HIGHC 1 - # define LZO_INFO_CC "MetaWare High C" - # define LZO_INFO_CCVER "unknown" -+#elif defined(__HP_aCC) && ((__HP_aCC-0) > 0) -+# define LZO_CC_HPACC __HP_aCC -+# define LZO_INFO_CC "HP aCC" -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__HP_aCC) - #elif defined(__IAR_SYSTEMS_ICC__) - # define LZO_CC_IARC 1 - # define LZO_INFO_CC "IAR C" -@@ -552,10 +618,14 @@ - # else - # define LZO_INFO_CCVER "unknown" - # endif --#elif defined(__IBMC__) --# define LZO_CC_IBMC 1 -+#elif defined(__IBMC__) && ((__IBMC__-0) > 0) -+# define LZO_CC_IBMC __IBMC__ - # define LZO_INFO_CC "IBM C" - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__IBMC__) -+#elif defined(__IBMCPP__) && ((__IBMCPP__-0) > 0) -+# define LZO_CC_IBMC __IBMCPP__ -+# define LZO_INFO_CC "IBM C" -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__IBMCPP__) - #elif defined(__KEIL__) && defined(__C166__) - # define LZO_CC_KEILC 1 - # define LZO_INFO_CC "Keil C" -@@ -572,16 +642,8 @@ - # else - # define LZO_INFO_CCVER "unknown" - # endif --#elif defined(_MSC_VER) --# define LZO_CC_MSC 1 --# define LZO_INFO_CC "Microsoft C" --# if defined(_MSC_FULL_VER) --# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(_MSC_VER) "." LZO_PP_MACRO_EXPAND(_MSC_FULL_VER) --# else --# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(_MSC_VER) --# endif --#elif defined(__MWERKS__) --# define LZO_CC_MWERKS 1 -+#elif defined(__MWERKS__) && ((__MWERKS__-0) > 0) -+# define LZO_CC_MWERKS __MWERKS__ - # define LZO_INFO_CC "Metrowerks C" - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__MWERKS__) - #elif (defined(__NDPC__) || defined(__NDPX__)) && defined(__i386) -@@ -592,6 +654,15 @@ - # define LZO_CC_PACIFICC 1 - # define LZO_INFO_CC "Pacific C" - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__PACIFIC__) -+#elif defined(__PGI) && defined(__PGIC__) && defined(__PGIC_MINOR__) -+# if defined(__PGIC_PATCHLEVEL__) -+# define LZO_CC_PGI (__PGIC__ * 0x10000L + (__PGIC_MINOR__-0) * 0x100 + (__PGIC_PATCHLEVEL__-0)) -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__PGIC__) "." LZO_PP_MACRO_EXPAND(__PGIC_MINOR__) "." LZO_PP_MACRO_EXPAND(__PGIC_PATCHLEVEL__) -+# else -+# define LZO_CC_PGI (__PGIC__ * 0x10000L + (__PGIC_MINOR__-0) * 0x100) -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__PGIC__) "." LZO_PP_MACRO_EXPAND(__PGIC_MINOR__) ".0" -+# endif -+# define LZO_INFO_CC "Portland Group PGI C" - #elif defined(__PGI) && (defined(__linux__) || defined(__WIN32__)) - # define LZO_CC_PGI 1 - # define LZO_INFO_CC "Portland Group PGI C" -@@ -606,7 +677,7 @@ - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__SC__) - #elif defined(__SUNPRO_C) - # define LZO_INFO_CC "SunPro C" --# if ((__SUNPRO_C)+0 > 0) -+# if ((__SUNPRO_C-0) > 0) - # define LZO_CC_SUNPROC __SUNPRO_C - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__SUNPRO_C) - # else -@@ -615,7 +686,7 @@ - # endif - #elif defined(__SUNPRO_CC) - # define LZO_INFO_CC "SunPro C" --# if ((__SUNPRO_CC)+0 > 0) -+# if ((__SUNPRO_CC-0) > 0) - # define LZO_CC_SUNPROC __SUNPRO_CC - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__SUNPRO_CC) - # else -@@ -641,16 +712,46 @@ - #elif defined(__ZTC__) - # define LZO_CC_ZORTECHC 1 - # define LZO_INFO_CC "Zortech C" --# if (__ZTC__ == 0x310) -+# if ((__ZTC__-0) == 0x310) - # define LZO_INFO_CCVER "0x310" - # else - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__ZTC__) - # endif -+#elif defined(__GNUC__) && defined(__VERSION__) -+# if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__) -+# define LZO_CC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) -+# elif defined(__GNUC_MINOR__) -+# define LZO_CC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100) -+# else -+# define LZO_CC_GNUC (__GNUC__ * 0x10000L) -+# endif -+# define LZO_INFO_CC "gcc" -+# define LZO_INFO_CCVER __VERSION__ -+#elif defined(_MSC_VER) && ((_MSC_VER-0) > 0) -+# define LZO_CC_MSC _MSC_VER -+# define LZO_INFO_CC "Microsoft C" -+# if defined(_MSC_FULL_VER) -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(_MSC_VER) "." LZO_PP_MACRO_EXPAND(_MSC_FULL_VER) -+# else -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(_MSC_VER) -+# endif - #else - # define LZO_CC_UNKNOWN 1 - # define LZO_INFO_CC "unknown" - # define LZO_INFO_CCVER "unknown" - #endif -+#if (LZO_CC_GNUC) && defined(__OPEN64__) -+# if defined(__OPENCC__) && defined(__OPENCC_MINOR__) && defined(__OPENCC_PATCHLEVEL__) -+# define LZO_CC_OPEN64 (__OPENCC__ * 0x10000L + (__OPENCC_MINOR__-0) * 0x100 + (__OPENCC_PATCHLEVEL__-0)) -+# define LZO_CC_OPEN64_GNUC LZO_CC_GNUC -+# endif -+#endif -+#if (LZO_CC_GNUC) && defined(__PCC__) -+# if defined(__PCC__) && defined(__PCC_MINOR__) && defined(__PCC_MINORMINOR__) -+# define LZO_CC_PCC (__PCC__ * 0x10000L + (__PCC_MINOR__-0) * 0x100 + (__PCC_MINORMINOR__-0)) -+# define LZO_CC_PCC_GNUC LZO_CC_GNUC -+# endif -+#endif - #if 0 && (LZO_CC_MSC && (_MSC_VER >= 1200)) && !defined(_MSC_FULL_VER) - # error "LZO_CC_MSC: _MSC_FULL_VER is not defined" - #endif -@@ -668,8 +769,10 @@ - # define LZO_INFO_ARCH "generic" - #elif (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16) - # define LZO_ARCH_I086 1 --# define LZO_ARCH_IA16 1 - # define LZO_INFO_ARCH "i086" -+#elif defined(__aarch64__) -+# define LZO_ARCH_ARM64 1 -+# define LZO_INFO_ARCH "arm64" - #elif defined(__alpha__) || defined(__alpha) || defined(_M_ALPHA) - # define LZO_ARCH_ALPHA 1 - # define LZO_INFO_ARCH "alpha" -@@ -685,10 +788,10 @@ - # define LZO_INFO_ARCH "arm_thumb" - #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCARM__) - # define LZO_ARCH_ARM 1 --# if defined(__CPU_MODE__) && ((__CPU_MODE__)+0 == 1) -+# if defined(__CPU_MODE__) && ((__CPU_MODE__-0) == 1) - # define LZO_ARCH_ARM_THUMB 1 - # define LZO_INFO_ARCH "arm_thumb" --# elif defined(__CPU_MODE__) && ((__CPU_MODE__)+0 == 2) -+# elif defined(__CPU_MODE__) && ((__CPU_MODE__-0) == 2) - # define LZO_INFO_ARCH "arm" - # else - # define LZO_INFO_ARCH "arm" -@@ -806,53 +909,147 @@ - # error "FIXME - missing define for CPU architecture" - #endif - #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_WIN32) --# error "FIXME - missing WIN32 define for CPU architecture" -+# error "FIXME - missing LZO_OS_WIN32 define for CPU architecture" - #endif - #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_WIN64) --# error "FIXME - missing WIN64 define for CPU architecture" -+# error "FIXME - missing LZO_OS_WIN64 define for CPU architecture" - #endif - #if (LZO_OS_OS216 || LZO_OS_WIN16) - # define LZO_ARCH_I086PM 1 --# define LZO_ARCH_IA16PM 1 - #elif 1 && (LZO_OS_DOS16 && defined(BLX286)) - # define LZO_ARCH_I086PM 1 --# define LZO_ARCH_IA16PM 1 - #elif 1 && (LZO_OS_DOS16 && defined(DOSX286)) - # define LZO_ARCH_I086PM 1 --# define LZO_ARCH_IA16PM 1 - #elif 1 && (LZO_OS_DOS16 && LZO_CC_BORLANDC && defined(__DPMI16__)) - # define LZO_ARCH_I086PM 1 --# define LZO_ARCH_IA16PM 1 - #endif --#if (LZO_ARCH_ARM_THUMB) && !(LZO_ARCH_ARM) --# error "this should not happen" -+#if (LZO_ARCH_AMD64 && !LZO_ARCH_X64) -+# define LZO_ARCH_X64 1 -+#elif (!LZO_ARCH_AMD64 && LZO_ARCH_X64) && defined(__LZO_ARCH_OVERRIDE) -+# define LZO_ARCH_AMD64 1 -+#endif -+#if (LZO_ARCH_ARM64 && !LZO_ARCH_AARCH64) -+# define LZO_ARCH_AARCH64 1 -+#elif (!LZO_ARCH_ARM64 && LZO_ARCH_AARCH64) && defined(__LZO_ARCH_OVERRIDE) -+# define LZO_ARCH_ARM64 1 -+#endif -+#if (LZO_ARCH_I386 && !LZO_ARCH_X86) -+# define LZO_ARCH_X86 1 -+#elif (!LZO_ARCH_I386 && LZO_ARCH_X86) && defined(__LZO_ARCH_OVERRIDE) -+# define LZO_ARCH_I386 1 -+#endif -+#if (LZO_ARCH_AMD64 && !LZO_ARCH_X64) || (!LZO_ARCH_AMD64 && LZO_ARCH_X64) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ARCH_ARM64 && !LZO_ARCH_AARCH64) || (!LZO_ARCH_ARM64 && LZO_ARCH_AARCH64) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ARCH_I386 && !LZO_ARCH_X86) || (!LZO_ARCH_I386 && LZO_ARCH_X86) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ARCH_ARM_THUMB && !LZO_ARCH_ARM) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ARCH_ARM_THUMB1 && !LZO_ARCH_ARM_THUMB) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ARCH_ARM_THUMB2 && !LZO_ARCH_ARM_THUMB) -+# error "unexpected configuration - check your compiler defines" - #endif --#if (LZO_ARCH_I086PM) && !(LZO_ARCH_I086) --# error "this should not happen" -+#if (LZO_ARCH_ARM_THUMB1 && LZO_ARCH_ARM_THUMB2) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ARCH_I086PM && !LZO_ARCH_I086) -+# error "unexpected configuration - check your compiler defines" - #endif - #if (LZO_ARCH_I086) - # if (UINT_MAX != LZO_0xffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - # if (ULONG_MAX != LZO_0xffffffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - #endif - #if (LZO_ARCH_I386) - # if (UINT_MAX != LZO_0xffffL) && defined(__i386_int16__) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - # if (UINT_MAX != LZO_0xffffffffL) && !defined(__i386_int16__) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - # if (ULONG_MAX != LZO_0xffffffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" -+# endif -+#endif -+#if (LZO_ARCH_AMD64 || LZO_ARCH_I386) -+# if !defined(LZO_TARGET_FEATURE_SSE2) -+# if defined(__SSE2__) -+# define LZO_TARGET_FEATURE_SSE2 1 -+# elif defined(_MSC_VER) && ((defined(_M_IX86_FP) && ((_M_IX86_FP)+0 >= 2)) || defined(_M_AMD64)) -+# define LZO_TARGET_FEATURE_SSE2 1 -+# endif -+# endif -+# if !defined(LZO_TARGET_FEATURE_SSSE3) -+# if (LZO_TARGET_FEATURE_SSE2) -+# if defined(__SSSE3__) -+# define LZO_TARGET_FEATURE_SSSE3 1 -+# elif defined(_MSC_VER) && defined(__AVX__) -+# define LZO_TARGET_FEATURE_SSSE3 1 -+# endif -+# endif -+# endif -+# if !defined(LZO_TARGET_FEATURE_SSE4_2) -+# if (LZO_TARGET_FEATURE_SSSE3) -+# if defined(__SSE4_2__) -+# define LZO_TARGET_FEATURE_SSE4_2 1 -+# endif -+# endif -+# endif -+# if !defined(LZO_TARGET_FEATURE_AVX) -+# if (LZO_TARGET_FEATURE_SSSE3) -+# if defined(__AVX__) -+# define LZO_TARGET_FEATURE_AVX 1 -+# endif -+# endif -+# endif -+# if !defined(LZO_TARGET_FEATURE_AVX2) -+# if (LZO_TARGET_FEATURE_AVX) -+# if defined(__AVX2__) -+# define LZO_TARGET_FEATURE_AVX2 1 -+# endif -+# endif -+# endif -+#endif -+#if (LZO_TARGET_FEATURE_SSSE3 && !(LZO_TARGET_FEATURE_SSE2)) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_TARGET_FEATURE_SSE4_2 && !(LZO_TARGET_FEATURE_SSSE3)) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_TARGET_FEATURE_AVX && !(LZO_TARGET_FEATURE_SSSE3)) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_TARGET_FEATURE_AVX2 && !(LZO_TARGET_FEATURE_AVX)) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ARCH_ARM) -+# if !defined(LZO_TARGET_FEATURE_NEON) -+# if defined(__ARM_NEON__) -+# define LZO_TARGET_FEATURE_NEON 1 -+# endif -+# endif -+#elif (LZO_ARCH_ARM64) -+# if !defined(LZO_TARGET_FEATURE_NEON) -+# if 1 -+# define LZO_TARGET_FEATURE_NEON 1 -+# endif - # endif - #endif --#if !defined(__LZO_MM_OVERRIDE) -+#if 0 -+#elif !defined(__LZO_MM_OVERRIDE) - #if (LZO_ARCH_I086) - #if (UINT_MAX != LZO_0xffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - #endif - #if defined(__TINY__) || defined(M_I86TM) || defined(_M_I86TM) - # define LZO_MM_TINY 1 -@@ -879,7 +1076,7 @@ - #elif (LZO_CC_ZORTECHC && defined(__VCM__)) - # define LZO_MM_LARGE 1 - #else --# error "unknown memory model" -+# error "unknown LZO_ARCH_I086 memory model" - #endif - #if (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16) - #define LZO_HAVE_MM_HUGE_PTR 1 -@@ -902,10 +1099,10 @@ - #endif - #if (LZO_ARCH_I086PM) && !(LZO_HAVE_MM_HUGE_PTR) - # if (LZO_OS_DOS16) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # elif (LZO_CC_ZORTECHC) - # else --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - #endif - #ifdef __cplusplus -@@ -937,7 +1134,7 @@ extern "C" { - #endif - #elif (LZO_ARCH_C166) - #if !defined(__MODEL__) --# error "FIXME - C166 __MODEL__" -+# error "FIXME - LZO_ARCH_C166 __MODEL__" - #elif ((__MODEL__) == 0) - # define LZO_MM_SMALL 1 - #elif ((__MODEL__) == 1) -@@ -951,11 +1148,11 @@ extern "C" { - #elif ((__MODEL__) == 5) - # define LZO_MM_XSMALL 1 - #else --# error "FIXME - C166 __MODEL__" -+# error "FIXME - LZO_ARCH_C166 __MODEL__" - #endif - #elif (LZO_ARCH_MCS251) - #if !defined(__MODEL__) --# error "FIXME - MCS251 __MODEL__" -+# error "FIXME - LZO_ARCH_MCS251 __MODEL__" - #elif ((__MODEL__) == 0) - # define LZO_MM_SMALL 1 - #elif ((__MODEL__) == 2) -@@ -967,11 +1164,11 @@ extern "C" { - #elif ((__MODEL__) == 5) - # define LZO_MM_XSMALL 1 - #else --# error "FIXME - MCS251 __MODEL__" -+# error "FIXME - LZO_ARCH_MCS251 __MODEL__" - #endif - #elif (LZO_ARCH_MCS51) - #if !defined(__MODEL__) --# error "FIXME - MCS51 __MODEL__" -+# error "FIXME - LZO_ARCH_MCS51 __MODEL__" - #elif ((__MODEL__) == 1) - # define LZO_MM_SMALL 1 - #elif ((__MODEL__) == 2) -@@ -983,7 +1180,7 @@ extern "C" { - #elif ((__MODEL__) == 5) - # define LZO_MM_XSMALL 1 - #else --# error "FIXME - MCS51 __MODEL__" -+# error "FIXME - LZO_ARCH_MCS51 __MODEL__" - #endif - #elif (LZO_ARCH_CRAY_PVP) - # define LZO_MM_PVP 1 -@@ -1010,462 +1207,270 @@ extern "C" { - # error "unknown memory model" - #endif - #endif --#if defined(SIZEOF_SHORT) --# define LZO_SIZEOF_SHORT (SIZEOF_SHORT) -+#if !defined(__lzo_gnuc_extension__) -+#if (LZO_CC_GNUC >= 0x020800ul) -+# define __lzo_gnuc_extension__ __extension__ -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define __lzo_gnuc_extension__ __extension__ -+#elif (LZO_CC_IBMC >= 600) -+# define __lzo_gnuc_extension__ __extension__ -+#else - #endif --#if defined(SIZEOF_INT) --# define LZO_SIZEOF_INT (SIZEOF_INT) - #endif --#if defined(SIZEOF_LONG) --# define LZO_SIZEOF_LONG (SIZEOF_LONG) -+#if !defined(__lzo_gnuc_extension__) -+# define __lzo_gnuc_extension__ /*empty*/ - #endif --#if defined(SIZEOF_LONG_LONG) --# define LZO_SIZEOF_LONG_LONG (SIZEOF_LONG_LONG) -+#if !defined(LZO_CFG_USE_NEW_STYLE_CASTS) && defined(__cplusplus) && 0 -+# if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul)) -+# define LZO_CFG_USE_NEW_STYLE_CASTS 0 -+# elif (LZO_CC_INTELC && (__INTEL_COMPILER < 1200)) -+# define LZO_CFG_USE_NEW_STYLE_CASTS 0 -+# else -+# define LZO_CFG_USE_NEW_STYLE_CASTS 1 -+# endif - #endif --#if defined(SIZEOF___INT16) --# define LZO_SIZEOF___INT16 (SIZEOF___INT16) -+#if !defined(LZO_CFG_USE_NEW_STYLE_CASTS) -+# define LZO_CFG_USE_NEW_STYLE_CASTS 0 - #endif --#if defined(SIZEOF___INT32) --# define LZO_SIZEOF___INT32 (SIZEOF___INT32) -+#if !defined(__cplusplus) -+# if defined(LZO_CFG_USE_NEW_STYLE_CASTS) -+# undef LZO_CFG_USE_NEW_STYLE_CASTS -+# endif -+# define LZO_CFG_USE_NEW_STYLE_CASTS 0 - #endif --#if defined(SIZEOF___INT64) --# define LZO_SIZEOF___INT64 (SIZEOF___INT64) -+#if !defined(LZO_REINTERPRET_CAST) -+# if (LZO_CFG_USE_NEW_STYLE_CASTS) -+# define LZO_REINTERPRET_CAST(t,e) (reinterpret_cast (e)) -+# endif - #endif --#if defined(SIZEOF_VOID_P) --# define LZO_SIZEOF_VOID_P (SIZEOF_VOID_P) -+#if !defined(LZO_REINTERPRET_CAST) -+# define LZO_REINTERPRET_CAST(t,e) ((t) (e)) - #endif --#if defined(SIZEOF_SIZE_T) --# define LZO_SIZEOF_SIZE_T (SIZEOF_SIZE_T) -+#if !defined(LZO_STATIC_CAST) -+# if (LZO_CFG_USE_NEW_STYLE_CASTS) -+# define LZO_STATIC_CAST(t,e) (static_cast (e)) -+# endif - #endif --#if defined(SIZEOF_PTRDIFF_T) --# define LZO_SIZEOF_PTRDIFF_T (SIZEOF_PTRDIFF_T) -+#if !defined(LZO_STATIC_CAST) -+# define LZO_STATIC_CAST(t,e) ((t) (e)) - #endif --#define __LZO_LSR(x,b) (((x)+0ul) >> (b)) --#if !defined(LZO_SIZEOF_SHORT) --# if (LZO_ARCH_CRAY_PVP) --# define LZO_SIZEOF_SHORT 8 --# elif (USHRT_MAX == LZO_0xffffL) --# define LZO_SIZEOF_SHORT 2 --# elif (__LZO_LSR(USHRT_MAX,7) == 1) --# define LZO_SIZEOF_SHORT 1 --# elif (__LZO_LSR(USHRT_MAX,15) == 1) --# define LZO_SIZEOF_SHORT 2 --# elif (__LZO_LSR(USHRT_MAX,31) == 1) --# define LZO_SIZEOF_SHORT 4 --# elif (__LZO_LSR(USHRT_MAX,63) == 1) --# define LZO_SIZEOF_SHORT 8 --# elif (__LZO_LSR(USHRT_MAX,127) == 1) --# define LZO_SIZEOF_SHORT 16 --# else --# error "LZO_SIZEOF_SHORT" --# endif -+#if !defined(LZO_STATIC_CAST2) -+# define LZO_STATIC_CAST2(t1,t2,e) LZO_STATIC_CAST(t1, LZO_STATIC_CAST(t2, e)) - #endif --#if !defined(LZO_SIZEOF_INT) --# if (LZO_ARCH_CRAY_PVP) --# define LZO_SIZEOF_INT 8 --# elif (UINT_MAX == LZO_0xffffL) --# define LZO_SIZEOF_INT 2 --# elif (UINT_MAX == LZO_0xffffffffL) --# define LZO_SIZEOF_INT 4 --# elif (__LZO_LSR(UINT_MAX,7) == 1) --# define LZO_SIZEOF_INT 1 --# elif (__LZO_LSR(UINT_MAX,15) == 1) --# define LZO_SIZEOF_INT 2 --# elif (__LZO_LSR(UINT_MAX,31) == 1) --# define LZO_SIZEOF_INT 4 --# elif (__LZO_LSR(UINT_MAX,63) == 1) --# define LZO_SIZEOF_INT 8 --# elif (__LZO_LSR(UINT_MAX,127) == 1) --# define LZO_SIZEOF_INT 16 --# else --# error "LZO_SIZEOF_INT" -+#if !defined(LZO_UNCONST_CAST) -+# if (LZO_CFG_USE_NEW_STYLE_CASTS) -+# define LZO_UNCONST_CAST(t,e) (const_cast (e)) -+# elif (LZO_HAVE_MM_HUGE_PTR) -+# define LZO_UNCONST_CAST(t,e) ((t) (e)) -+# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((lzo_uintptr_t) ((const void *) (e))))) - # endif - #endif --#if !defined(LZO_SIZEOF_LONG) --# if (ULONG_MAX == LZO_0xffffffffL) --# define LZO_SIZEOF_LONG 4 --# elif (__LZO_LSR(ULONG_MAX,7) == 1) --# define LZO_SIZEOF_LONG 1 --# elif (__LZO_LSR(ULONG_MAX,15) == 1) --# define LZO_SIZEOF_LONG 2 --# elif (__LZO_LSR(ULONG_MAX,31) == 1) --# define LZO_SIZEOF_LONG 4 --# elif (__LZO_LSR(ULONG_MAX,63) == 1) --# define LZO_SIZEOF_LONG 8 --# elif (__LZO_LSR(ULONG_MAX,127) == 1) --# define LZO_SIZEOF_LONG 16 --# else --# error "LZO_SIZEOF_LONG" -+#if !defined(LZO_UNCONST_CAST) -+# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((const void *) (e)))) -+#endif -+#if !defined(LZO_UNCONST_VOLATILE_CAST) -+# if (LZO_CFG_USE_NEW_STYLE_CASTS) -+# define LZO_UNCONST_VOLATILE_CAST(t,e) (const_cast (e)) -+# elif (LZO_HAVE_MM_HUGE_PTR) -+# define LZO_UNCONST_VOLATILE_CAST(t,e) ((t) (e)) -+# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define LZO_UNCONST_VOLATILE_CAST(t,e) ((t) ((volatile void *) ((lzo_uintptr_t) ((volatile const void *) (e))))) - # endif - #endif --#if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64) --#if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8) --# if defined(__LONG_MAX__) && defined(__LONG_LONG_MAX__) --# if (LZO_CC_GNUC >= 0x030300ul) --# if ((__LONG_MAX__)+0 == (__LONG_LONG_MAX__)+0) --# define LZO_SIZEOF_LONG_LONG LZO_SIZEOF_LONG --# elif (__LZO_LSR(__LONG_LONG_MAX__,30) == 1) --# define LZO_SIZEOF_LONG_LONG 4 --# endif --# endif -+#if !defined(LZO_UNCONST_VOLATILE_CAST) -+# define LZO_UNCONST_VOLATILE_CAST(t,e) ((t) ((volatile void *) ((volatile const void *) (e)))) -+#endif -+#if !defined(LZO_UNVOLATILE_CAST) -+# if (LZO_CFG_USE_NEW_STYLE_CASTS) -+# define LZO_UNVOLATILE_CAST(t,e) (const_cast (e)) -+# elif (LZO_HAVE_MM_HUGE_PTR) -+# define LZO_UNVOLATILE_CAST(t,e) ((t) (e)) -+# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define LZO_UNVOLATILE_CAST(t,e) ((t) ((void *) ((lzo_uintptr_t) ((volatile void *) (e))))) - # endif - #endif -+#if !defined(LZO_UNVOLATILE_CAST) -+# define LZO_UNVOLATILE_CAST(t,e) ((t) ((void *) ((volatile void *) (e)))) - #endif --#if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64) --#if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8) --#if (LZO_ARCH_I086 && LZO_CC_DMC) --#elif (LZO_CC_CILLY) && defined(__GNUC__) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define LZO_SIZEOF_LONG_LONG 8 --#elif ((LZO_OS_WIN32 || LZO_OS_WIN64 || defined(_WIN32)) && LZO_CC_MSC && (_MSC_VER >= 1400)) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_OS_WIN64 || defined(_WIN64)) --# define LZO_SIZEOF___INT64 8 --#elif (LZO_ARCH_I386 && (LZO_CC_DMC)) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_ARCH_I386 && (LZO_CC_SYMANTECC && (__SC__ >= 0x700))) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_ARCH_I386 && (LZO_CC_INTELC && defined(__linux__))) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_ARCH_I386 && (LZO_CC_MWERKS || LZO_CC_PELLESC || LZO_CC_PGI || LZO_CC_SUNPROC)) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_ARCH_I386 && (LZO_CC_INTELC || LZO_CC_MSC)) --# define LZO_SIZEOF___INT64 8 --#elif ((LZO_OS_WIN32 || defined(_WIN32)) && (LZO_CC_MSC)) --# define LZO_SIZEOF___INT64 8 --#elif (LZO_ARCH_I386 && (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0520))) --# define LZO_SIZEOF___INT64 8 --#elif (LZO_ARCH_I386 && (LZO_CC_WATCOMC && (__WATCOMC__ >= 1100))) --# define LZO_SIZEOF___INT64 8 --#elif (LZO_CC_WATCOMC && defined(_INTEGRAL_MAX_BITS) && (_INTEGRAL_MAX_BITS == 64)) --# define LZO_SIZEOF___INT64 8 --#elif (LZO_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_CC_SDCC) && (LZO_SIZEOF_INT == 2) --#elif 1 && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) --# define LZO_SIZEOF_LONG_LONG 8 -+#if !defined(LZO_UNVOLATILE_CONST_CAST) -+# if (LZO_CFG_USE_NEW_STYLE_CASTS) -+# define LZO_UNVOLATILE_CONST_CAST(t,e) (const_cast (e)) -+# elif (LZO_HAVE_MM_HUGE_PTR) -+# define LZO_UNVOLATILE_CONST_CAST(t,e) ((t) (e)) -+# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define LZO_UNVOLATILE_CONST_CAST(t,e) ((t) ((const void *) ((lzo_uintptr_t) ((volatile const void *) (e))))) -+# endif - #endif -+#if !defined(LZO_UNVOLATILE_CONST_CAST) -+# define LZO_UNVOLATILE_CONST_CAST(t,e) ((t) ((const void *) ((volatile const void *) (e)))) - #endif -+#if !defined(LZO_PCAST) -+# if (LZO_HAVE_MM_HUGE_PTR) -+# define LZO_PCAST(t,e) ((t) (e)) -+# endif - #endif --#if defined(__cplusplus) && (LZO_CC_GNUC) --# if (LZO_CC_GNUC < 0x020800ul) --# undef LZO_SIZEOF_LONG_LONG -+#if !defined(LZO_PCAST) -+# define LZO_PCAST(t,e) LZO_STATIC_CAST(t, LZO_STATIC_CAST(void *, e)) -+#endif -+#if !defined(LZO_CCAST) -+# if (LZO_HAVE_MM_HUGE_PTR) -+# define LZO_CCAST(t,e) ((t) (e)) - # endif - #endif --#if (LZO_CFG_NO_LONG_LONG) || defined(__NO_LONG_LONG) --# undef LZO_SIZEOF_LONG_LONG -+#if !defined(LZO_CCAST) -+# define LZO_CCAST(t,e) LZO_STATIC_CAST(t, LZO_STATIC_CAST(const void *, e)) - #endif --#if !defined(LZO_SIZEOF_VOID_P) --#if (LZO_ARCH_I086) --# define __LZO_WORDSIZE 2 --# if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM) --# define LZO_SIZEOF_VOID_P 2 --# elif (LZO_MM_COMPACT || LZO_MM_LARGE || LZO_MM_HUGE) --# define LZO_SIZEOF_VOID_P 4 --# else --# error "LZO_MM" -+#if !defined(LZO_ICONV) -+# define LZO_ICONV(t,e) LZO_STATIC_CAST(t, e) -+#endif -+#if !defined(LZO_ICAST) -+# define LZO_ICAST(t,e) LZO_STATIC_CAST(t, e) -+#endif -+#if !defined(LZO_ITRUNC) -+# define LZO_ITRUNC(t,e) LZO_STATIC_CAST(t, e) -+#endif -+#if !defined(__lzo_cte) -+# if (LZO_CC_MSC || LZO_CC_WATCOMC) -+# define __lzo_cte(e) ((void)0,(e)) -+# elif 1 -+# define __lzo_cte(e) ((void)0,(e)) - # endif --#elif (LZO_ARCH_AVR || LZO_ARCH_Z80) --# define __LZO_WORDSIZE 1 --# define LZO_SIZEOF_VOID_P 2 --#elif (LZO_ARCH_C166 || LZO_ARCH_MCS51 || LZO_ARCH_MCS251 || LZO_ARCH_MSP430) --# define LZO_SIZEOF_VOID_P 2 --#elif (LZO_ARCH_H8300) --# if defined(__NORMAL_MODE__) --# define __LZO_WORDSIZE 4 --# define LZO_SIZEOF_VOID_P 2 --# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__) --# define __LZO_WORDSIZE 4 --# define LZO_SIZEOF_VOID_P 4 --# else --# define __LZO_WORDSIZE 2 --# define LZO_SIZEOF_VOID_P 2 --# endif --# if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x040000ul)) && (LZO_SIZEOF_INT == 4) --# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_INT --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_INT --# endif --#elif (LZO_ARCH_M16C) --# define __LZO_WORDSIZE 2 --# if defined(__m32c_cpu__) || defined(__m32cm_cpu__) --# define LZO_SIZEOF_VOID_P 4 --# else --# define LZO_SIZEOF_VOID_P 2 --# endif --#elif (LZO_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__)) --# define __LZO_WORDSIZE 8 --# define LZO_SIZEOF_VOID_P 4 --#elif defined(__LLP64__) || defined(__LLP64) || defined(_LLP64) || defined(_WIN64) --# define __LZO_WORDSIZE 8 --# define LZO_SIZEOF_VOID_P 8 --#elif (LZO_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__) --# define LZO_SIZEOF_VOID_P LZO_SIZEOF_LONG --# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG --#elif (LZO_OS_OS400 || defined(__OS400__)) --# define __LZO_WORDSIZE LZO_SIZEOF_LONG --# define LZO_SIZEOF_VOID_P 16 --# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG --#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) --# define LZO_SIZEOF_VOID_P 8 --# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG --#elif (LZO_ARCH_SPU) --# if 0 --# define __LZO_WORDSIZE 16 --# endif --# define LZO_SIZEOF_VOID_P 4 --#else --# define LZO_SIZEOF_VOID_P LZO_SIZEOF_LONG - #endif -+#if !defined(__lzo_cte) -+# define __lzo_cte(e) (e) - #endif --#if !defined(LZO_WORDSIZE) --# if defined(__LZO_WORDSIZE) --# define LZO_WORDSIZE __LZO_WORDSIZE -+#if !defined(LZO_BLOCK_BEGIN) -+# define LZO_BLOCK_BEGIN do { -+# define LZO_BLOCK_END } while __lzo_cte(0) -+#endif -+#if !defined(LZO_UNUSED) -+# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) -+# define LZO_UNUSED(var) ((void) &var) -+# elif (LZO_CC_BORLANDC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PELLESC || LZO_CC_TURBOC) -+# define LZO_UNUSED(var) if (&var) ; else -+# elif (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x030200ul)) -+# define LZO_UNUSED(var) ((void) &var) -+# elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define LZO_UNUSED(var) ((void) var) -+# elif (LZO_CC_MSC && (_MSC_VER < 900)) -+# define LZO_UNUSED(var) if (&var) ; else -+# elif (LZO_CC_KEILC) -+# define LZO_UNUSED(var) {LZO_EXTERN_C int lzo_unused__[1-2*!(sizeof(var)>0)];} -+# elif (LZO_CC_PACIFICC) -+# define LZO_UNUSED(var) ((void) sizeof(var)) -+# elif (LZO_CC_WATCOMC) && defined(__cplusplus) -+# define LZO_UNUSED(var) ((void) var) - # else --# define LZO_WORDSIZE LZO_SIZEOF_VOID_P -+# define LZO_UNUSED(var) ((void) &var) - # endif - #endif --#if !defined(LZO_SIZEOF_SIZE_T) --#if (LZO_ARCH_I086 || LZO_ARCH_M16C) --# define LZO_SIZEOF_SIZE_T 2 --#else --# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_VOID_P --#endif --#endif --#if !defined(LZO_SIZEOF_PTRDIFF_T) --#if (LZO_ARCH_I086) --# if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM || LZO_MM_HUGE) --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_VOID_P --# elif (LZO_MM_COMPACT || LZO_MM_LARGE) --# if (LZO_CC_BORLANDC || LZO_CC_TURBOC) --# define LZO_SIZEOF_PTRDIFF_T 4 --# else --# define LZO_SIZEOF_PTRDIFF_T 2 --# endif -+#if !defined(LZO_UNUSED_FUNC) -+# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) -+# define LZO_UNUSED_FUNC(func) ((void) func) -+# elif (LZO_CC_BORLANDC || LZO_CC_NDPC || LZO_CC_TURBOC) -+# define LZO_UNUSED_FUNC(func) if (func) ; else -+# elif (LZO_CC_CLANG || LZO_CC_LLVM) -+# define LZO_UNUSED_FUNC(func) ((void) &func) -+# elif (LZO_CC_MSC && (_MSC_VER < 900)) -+# define LZO_UNUSED_FUNC(func) if (func) ; else -+# elif (LZO_CC_MSC) -+# define LZO_UNUSED_FUNC(func) ((void) &func) -+# elif (LZO_CC_KEILC || LZO_CC_PELLESC) -+# define LZO_UNUSED_FUNC(func) {LZO_EXTERN_C int lzo_unused_func__[1-2*!(sizeof((int)func)>0)];} - # else --# error "LZO_MM" -+# define LZO_UNUSED_FUNC(func) ((void) func) - # endif --#else --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_SIZE_T --#endif - #endif --#if (LZO_ABI_NEUTRAL_ENDIAN) --# undef LZO_ABI_BIG_ENDIAN --# undef LZO_ABI_LITTLE_ENDIAN --#elif !(LZO_ABI_BIG_ENDIAN) && !(LZO_ABI_LITTLE_ENDIAN) --#if (LZO_ARCH_ALPHA) && (LZO_ARCH_CRAY_MPP) --# define LZO_ABI_BIG_ENDIAN 1 --#elif (LZO_ARCH_IA64) && (LZO_OS_POSIX_LINUX || LZO_OS_WIN64) --# define LZO_ABI_LITTLE_ENDIAN 1 --#elif (LZO_ARCH_ALPHA || LZO_ARCH_AMD64 || LZO_ARCH_BLACKFIN || LZO_ARCH_CRIS || LZO_ARCH_I086 || LZO_ARCH_I386 || LZO_ARCH_MSP430) --# define LZO_ABI_LITTLE_ENDIAN 1 --#elif (LZO_ARCH_AVR32 || LZO_ARCH_M68K || LZO_ARCH_S390) --# define LZO_ABI_BIG_ENDIAN 1 --#elif 1 && defined(__IAR_SYSTEMS_ICC__) && defined(__LITTLE_ENDIAN__) --# if (__LITTLE_ENDIAN__ == 1) --# define LZO_ABI_LITTLE_ENDIAN 1 -+#if !defined(LZO_UNUSED_LABEL) -+# if (LZO_CC_CLANG >= 0x020800ul) -+# define LZO_UNUSED_LABEL(l) (__lzo_gnuc_extension__ ((void) ((const void *) &&l))) -+# elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_INTELC || LZO_CC_WATCOMC) -+# define LZO_UNUSED_LABEL(l) if __lzo_cte(0) goto l - # else --# define LZO_ABI_BIG_ENDIAN 1 -+# define LZO_UNUSED_LABEL(l) switch (0) case 1:goto l - # endif --#elif 1 && defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__) --# define LZO_ABI_BIG_ENDIAN 1 --#elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__) --# define LZO_ABI_LITTLE_ENDIAN 1 --#elif 1 && (LZO_ARCH_ARM) && defined(__ARMEB__) && !defined(__ARMEL__) --# define LZO_ABI_BIG_ENDIAN 1 --#elif 1 && (LZO_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__) --# define LZO_ABI_LITTLE_ENDIAN 1 --#elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__) --# define LZO_ABI_BIG_ENDIAN 1 --#elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__) --# define LZO_ABI_LITTLE_ENDIAN 1 --#endif --#endif --#if (LZO_ABI_BIG_ENDIAN) && (LZO_ABI_LITTLE_ENDIAN) --# error "this should not happen" --#endif --#if (LZO_ABI_BIG_ENDIAN) --# define LZO_INFO_ABI_ENDIAN "be" --#elif (LZO_ABI_LITTLE_ENDIAN) --# define LZO_INFO_ABI_ENDIAN "le" --#elif (LZO_ABI_NEUTRAL_ENDIAN) --# define LZO_INFO_ABI_ENDIAN "neutral" --#endif --#if (LZO_SIZEOF_INT == 1 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2) --# define LZO_ABI_I8LP16 1 --# define LZO_INFO_ABI_PM "i8lp16" --#elif (LZO_SIZEOF_INT == 2 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2) --# define LZO_ABI_ILP16 1 --# define LZO_INFO_ABI_PM "ilp16" --#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 4) --# define LZO_ABI_ILP32 1 --# define LZO_INFO_ABI_PM "ilp32" --#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 8 && LZO_SIZEOF_SIZE_T == 8) --# define LZO_ABI_LLP64 1 --# define LZO_INFO_ABI_PM "llp64" --#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8) --# define LZO_ABI_LP64 1 --# define LZO_INFO_ABI_PM "lp64" --#elif (LZO_SIZEOF_INT == 8 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8) --# define LZO_ABI_ILP64 1 --# define LZO_INFO_ABI_PM "ilp64" --#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 4) --# define LZO_ABI_IP32L64 1 --# define LZO_INFO_ABI_PM "ip32l64" - #endif --#if !defined(__LZO_LIBC_OVERRIDE) --#if (LZO_LIBC_NAKED) --# define LZO_INFO_LIBC "naked" --#elif (LZO_LIBC_FREESTANDING) --# define LZO_INFO_LIBC "freestanding" --#elif (LZO_LIBC_MOSTLY_FREESTANDING) --# define LZO_INFO_LIBC "mfreestanding" --#elif (LZO_LIBC_ISOC90) --# define LZO_INFO_LIBC "isoc90" --#elif (LZO_LIBC_ISOC99) --# define LZO_INFO_LIBC "isoc99" --#elif defined(__dietlibc__) --# define LZO_LIBC_DIETLIBC 1 --# define LZO_INFO_LIBC "dietlibc" --#elif defined(_NEWLIB_VERSION) --# define LZO_LIBC_NEWLIB 1 --# define LZO_INFO_LIBC "newlib" --#elif defined(__UCLIBC__) && defined(__UCLIBC_MAJOR__) && defined(__UCLIBC_MINOR__) --# if defined(__UCLIBC_SUBLEVEL__) --# define LZO_LIBC_UCLIBC (__UCLIBC_MAJOR__ * 0x10000L + __UCLIBC_MINOR__ * 0x100 + __UCLIBC_SUBLEVEL__) -+#if !defined(LZO_DEFINE_UNINITIALIZED_VAR) -+# if 0 -+# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var -+# elif 0 && (LZO_CC_GNUC) -+# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = var - # else --# define LZO_LIBC_UCLIBC 0x00090bL -+# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = init - # endif --# define LZO_INFO_LIBC "uclibc" --#elif defined(__GLIBC__) && defined(__GLIBC_MINOR__) --# define LZO_LIBC_GLIBC (__GLIBC__ * 0x10000L + __GLIBC_MINOR__ * 0x100) --# define LZO_INFO_LIBC "glibc" --#elif (LZO_CC_MWERKS) && defined(__MSL__) --# define LZO_LIBC_MSL __MSL__ --# define LZO_INFO_LIBC "msl" --#elif 1 && defined(__IAR_SYSTEMS_ICC__) --# define LZO_LIBC_ISOC90 1 --# define LZO_INFO_LIBC "isoc90" --#else --# define LZO_LIBC_DEFAULT 1 --# define LZO_INFO_LIBC "default" --#endif --#endif --#if !defined(__lzo_gnuc_extension__) --#if (LZO_CC_GNUC >= 0x020800ul) --# define __lzo_gnuc_extension__ __extension__ --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define __lzo_gnuc_extension__ __extension__ --#else --# define __lzo_gnuc_extension__ /*empty*/ --#endif --#endif --#if !defined(__lzo_ua_volatile) --# define __lzo_ua_volatile volatile --#endif --#if !defined(__lzo_alignof) --#if (LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) --# define __lzo_alignof(e) __alignof__(e) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 700)) --# define __lzo_alignof(e) __alignof__(e) --#elif (LZO_CC_MSC && (_MSC_VER >= 1300)) --# define __lzo_alignof(e) __alignof(e) --#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) --# define __lzo_alignof(e) __alignof__(e) --#endif --#endif --#if defined(__lzo_alignof) --# define __lzo_HAVE_alignof 1 --#endif --#if !defined(__lzo_constructor) --#if (LZO_CC_GNUC >= 0x030400ul) --# define __lzo_constructor __attribute__((__constructor__,__used__)) --#elif (LZO_CC_GNUC >= 0x020700ul) --# define __lzo_constructor __attribute__((__constructor__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define __lzo_constructor __attribute__((__constructor__)) --#endif --#endif --#if defined(__lzo_constructor) --# define __lzo_HAVE_constructor 1 --#endif --#if !defined(__lzo_destructor) --#if (LZO_CC_GNUC >= 0x030400ul) --# define __lzo_destructor __attribute__((__destructor__,__used__)) --#elif (LZO_CC_GNUC >= 0x020700ul) --# define __lzo_destructor __attribute__((__destructor__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define __lzo_destructor __attribute__((__destructor__)) --#endif --#endif --#if defined(__lzo_destructor) --# define __lzo_HAVE_destructor 1 --#endif --#if (__lzo_HAVE_destructor) && !(__lzo_HAVE_constructor) --# error "this should not happen" - #endif - #if !defined(__lzo_inline) - #if (LZO_CC_TURBOC && (__TURBOC__ <= 0x0295)) - #elif defined(__cplusplus) - # define __lzo_inline inline -+#elif defined(__STDC_VERSION__) && (__STDC_VERSION__-0 >= 199901L) -+# define __lzo_inline inline - #elif (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0550)) - # define __lzo_inline __inline --#elif (LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) - # define __lzo_inline __inline__ - #elif (LZO_CC_DMC) - # define __lzo_inline __inline -+#elif (LZO_CC_GHS) -+# define __lzo_inline __inline__ -+#elif (LZO_CC_IBMC >= 600) -+# define __lzo_inline __inline__ - #elif (LZO_CC_INTELC) - # define __lzo_inline __inline - #elif (LZO_CC_MWERKS && (__MWERKS__ >= 0x2405)) - # define __lzo_inline __inline - #elif (LZO_CC_MSC && (_MSC_VER >= 900)) - # define __lzo_inline __inline --#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) -+#elif (LZO_CC_SUNPROC >= 0x5100) - # define __lzo_inline __inline__ --#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) --# define __lzo_inline inline - #endif - #endif - #if defined(__lzo_inline) -+# ifndef __lzo_HAVE_inline - # define __lzo_HAVE_inline 1 -+# endif - #else - # define __lzo_inline /*empty*/ - #endif - #if !defined(__lzo_forceinline) - #if (LZO_CC_GNUC >= 0x030200ul) - # define __lzo_forceinline __inline__ __attribute__((__always_inline__)) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC) -+#elif (LZO_CC_IBMC >= 700) -+# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) -+#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 450)) - # define __lzo_forceinline __forceinline --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800) && LZO_CC_SYNTAX_GNUC) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800)) - # define __lzo_forceinline __inline__ __attribute__((__always_inline__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) - # define __lzo_forceinline __inline__ __attribute__((__always_inline__)) - #elif (LZO_CC_MSC && (_MSC_VER >= 1200)) - # define __lzo_forceinline __forceinline --#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) -+#elif (LZO_CC_PGI >= 0x0d0a00ul) -+# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) -+#elif (LZO_CC_SUNPROC >= 0x5100) - # define __lzo_forceinline __inline__ __attribute__((__always_inline__)) - #endif - #endif - #if defined(__lzo_forceinline) -+# ifndef __lzo_HAVE_forceinline - # define __lzo_HAVE_forceinline 1 -+# endif - #else --# define __lzo_forceinline /*empty*/ -+# define __lzo_forceinline __lzo_inline - #endif - #if !defined(__lzo_noinline) - #if 1 && (LZO_ARCH_I386) && (LZO_CC_GNUC >= 0x040000ul) && (LZO_CC_GNUC < 0x040003ul) - # define __lzo_noinline __attribute__((__noinline__,__used__)) - #elif (LZO_CC_GNUC >= 0x030200ul) - # define __lzo_noinline __attribute__((__noinline__)) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_MSC) -+#elif (LZO_CC_IBMC >= 700) -+# define __lzo_noinline __attribute__((__noinline__)) -+#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 600)) - # define __lzo_noinline __declspec(noinline) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800) && LZO_CC_SYNTAX_GNUC) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800)) - # define __lzo_noinline __attribute__((__noinline__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) - # define __lzo_noinline __attribute__((__noinline__)) - #elif (LZO_CC_MSC && (_MSC_VER >= 1300)) - # define __lzo_noinline __declspec(noinline) -@@ -1474,179 +1479,409 @@ extern "C" { - # else - # define __lzo_noinline __declspec(noinline) - # endif --#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) -+#elif (LZO_CC_PGI >= 0x0d0a00ul) -+# define __lzo_noinline __attribute__((__noinline__)) -+#elif (LZO_CC_SUNPROC >= 0x5100) - # define __lzo_noinline __attribute__((__noinline__)) - #endif - #endif - #if defined(__lzo_noinline) -+# ifndef __lzo_HAVE_noinline - # define __lzo_HAVE_noinline 1 -+# endif - #else - # define __lzo_noinline /*empty*/ - #endif - #if (__lzo_HAVE_forceinline || __lzo_HAVE_noinline) && !(__lzo_HAVE_inline) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - #endif --#if !defined(__lzo_noreturn) --#if (LZO_CC_GNUC >= 0x020700ul) --# define __lzo_noreturn __attribute__((__noreturn__)) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC) --# define __lzo_noreturn __declspec(noreturn) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_GNUC) --# define __lzo_noreturn __attribute__((__noreturn__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define __lzo_noreturn __attribute__((__noreturn__)) --#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) --# define __lzo_noreturn __declspec(noreturn) -+#if !defined(__lzo_static_inline) -+#if (LZO_CC_IBMC) -+# define __lzo_static_inline __lzo_gnuc_extension__ static __lzo_inline - #endif - #endif --#if defined(__lzo_noreturn) --# define __lzo_HAVE_noreturn 1 --#else --# define __lzo_noreturn /*empty*/ -+#if !defined(__lzo_static_inline) -+# define __lzo_static_inline static __lzo_inline - #endif --#if !defined(__lzo_nothrow) --#if (LZO_CC_GNUC >= 0x030300ul) --# define __lzo_nothrow __attribute__((__nothrow__)) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC) && defined(__cplusplus) --# define __lzo_nothrow __declspec(nothrow) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 900) && LZO_CC_SYNTAX_GNUC) --# define __lzo_nothrow __attribute__((__nothrow__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define __lzo_nothrow __attribute__((__nothrow__)) --#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) && defined(__cplusplus) -+#if !defined(__lzo_static_forceinline) -+#if (LZO_CC_IBMC) -+# define __lzo_static_forceinline __lzo_gnuc_extension__ static __lzo_forceinline -+#endif -+#endif -+#if !defined(__lzo_static_forceinline) -+# define __lzo_static_forceinline static __lzo_forceinline -+#endif -+#if !defined(__lzo_static_noinline) -+#if (LZO_CC_IBMC) -+# define __lzo_static_noinline __lzo_gnuc_extension__ static __lzo_noinline -+#endif -+#endif -+#if !defined(__lzo_static_noinline) -+# define __lzo_static_noinline static __lzo_noinline -+#endif -+#if !defined(__lzo_c99_extern_inline) -+#if defined(__GNUC_GNU_INLINE__) -+# define __lzo_c99_extern_inline __lzo_inline -+#elif defined(__GNUC_STDC_INLINE__) -+# define __lzo_c99_extern_inline extern __lzo_inline -+#elif defined(__STDC_VERSION__) && (__STDC_VERSION__-0 >= 199901L) -+# define __lzo_c99_extern_inline extern __lzo_inline -+#endif -+#if !defined(__lzo_c99_extern_inline) && (__lzo_HAVE_inline) -+# define __lzo_c99_extern_inline __lzo_inline -+#endif -+#endif -+#if defined(__lzo_c99_extern_inline) -+# ifndef __lzo_HAVE_c99_extern_inline -+# define __lzo_HAVE_c99_extern_inline 1 -+# endif -+#else -+# define __lzo_c99_extern_inline /*empty*/ -+#endif -+#if !defined(__lzo_may_alias) -+#if (LZO_CC_GNUC >= 0x030400ul) -+# define __lzo_may_alias __attribute__((__may_alias__)) -+#elif (LZO_CC_CLANG >= 0x020900ul) -+# define __lzo_may_alias __attribute__((__may_alias__)) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 1210)) && 0 -+# define __lzo_may_alias __attribute__((__may_alias__)) -+#elif (LZO_CC_PGI >= 0x0d0a00ul) && 0 -+# define __lzo_may_alias __attribute__((__may_alias__)) -+#endif -+#endif -+#if defined(__lzo_may_alias) -+# ifndef __lzo_HAVE_may_alias -+# define __lzo_HAVE_may_alias 1 -+# endif -+#else -+# define __lzo_may_alias /*empty*/ -+#endif -+#if !defined(__lzo_noreturn) -+#if (LZO_CC_GNUC >= 0x020700ul) -+# define __lzo_noreturn __attribute__((__noreturn__)) -+#elif (LZO_CC_IBMC >= 700) -+# define __lzo_noreturn __attribute__((__noreturn__)) -+#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 450)) -+# define __lzo_noreturn __declspec(noreturn) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 600)) -+# define __lzo_noreturn __attribute__((__noreturn__)) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define __lzo_noreturn __attribute__((__noreturn__)) -+#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) -+# define __lzo_noreturn __declspec(noreturn) -+#elif (LZO_CC_PGI >= 0x0d0a00ul) -+# define __lzo_noreturn __attribute__((__noreturn__)) -+#endif -+#endif -+#if defined(__lzo_noreturn) -+# ifndef __lzo_HAVE_noreturn -+# define __lzo_HAVE_noreturn 1 -+# endif -+#else -+# define __lzo_noreturn /*empty*/ -+#endif -+#if !defined(__lzo_nothrow) -+#if (LZO_CC_GNUC >= 0x030300ul) -+# define __lzo_nothrow __attribute__((__nothrow__)) -+#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 450)) && defined(__cplusplus) -+# define __lzo_nothrow __declspec(nothrow) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 900)) -+# define __lzo_nothrow __attribute__((__nothrow__)) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define __lzo_nothrow __attribute__((__nothrow__)) -+#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) && defined(__cplusplus) - # define __lzo_nothrow __declspec(nothrow) - #endif - #endif - #if defined(__lzo_nothrow) -+# ifndef __lzo_HAVE_nothrow - # define __lzo_HAVE_nothrow 1 -+# endif - #else - # define __lzo_nothrow /*empty*/ - #endif - #if !defined(__lzo_restrict) - #if (LZO_CC_GNUC >= 0x030400ul) - # define __lzo_restrict __restrict__ --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_GNUC) -+#elif (LZO_CC_IBMC >= 800) && !defined(__cplusplus) - # define __lzo_restrict __restrict__ --#elif (LZO_CC_CLANG || LZO_CC_LLVM) -+#elif (LZO_CC_IBMC >= 1210) -+# define __lzo_restrict __restrict__ -+#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 600)) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 600)) -+# define __lzo_restrict __restrict__ -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM) - # define __lzo_restrict __restrict__ - #elif (LZO_CC_MSC && (_MSC_VER >= 1400)) - # define __lzo_restrict __restrict -+#elif (LZO_CC_PGI >= 0x0d0a00ul) -+# define __lzo_restrict __restrict__ - #endif - #endif - #if defined(__lzo_restrict) -+# ifndef __lzo_HAVE_restrict - # define __lzo_HAVE_restrict 1 -+# endif - #else - # define __lzo_restrict /*empty*/ - #endif -+#if !defined(__lzo_alignof) -+#if (LZO_CC_ARMCC || LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) -+# define __lzo_alignof(e) __alignof__(e) -+#elif (LZO_CC_GHS) && !defined(__cplusplus) -+# define __lzo_alignof(e) __alignof__(e) -+#elif (LZO_CC_IBMC >= 600) -+# define __lzo_alignof(e) (__lzo_gnuc_extension__ __alignof__(e)) -+#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 700)) -+# define __lzo_alignof(e) __alignof__(e) -+#elif (LZO_CC_MSC && (_MSC_VER >= 1300)) -+# define __lzo_alignof(e) __alignof(e) -+#elif (LZO_CC_SUNPROC >= 0x5100) -+# define __lzo_alignof(e) __alignof__(e) -+#endif -+#endif -+#if defined(__lzo_alignof) -+# ifndef __lzo_HAVE_alignof -+# define __lzo_HAVE_alignof 1 -+# endif -+#endif -+#if !defined(__lzo_struct_packed) -+#if (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020800ul)) && defined(__cplusplus) -+#elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020700ul)) -+#elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul)) && defined(__cplusplus) -+#elif (LZO_CC_PCC && (LZO_CC_PCC < 0x010100ul)) -+#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC < 0x5110)) && !defined(__cplusplus) -+#elif (LZO_CC_GNUC >= 0x030400ul) && !(LZO_CC_PCC_GNUC) && (LZO_ARCH_AMD64 || LZO_ARCH_I386) -+# define __lzo_struct_packed(s) struct s { -+# define __lzo_struct_packed_end() } __attribute__((__gcc_struct__,__packed__)); -+# define __lzo_struct_packed_ma_end() } __lzo_may_alias __attribute__((__gcc_struct__,__packed__)); -+#elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || (LZO_CC_PGI >= 0x0d0a00ul) || (LZO_CC_SUNPROC >= 0x5100)) -+# define __lzo_struct_packed(s) struct s { -+# define __lzo_struct_packed_end() } __attribute__((__packed__)); -+# define __lzo_struct_packed_ma_end() } __lzo_may_alias __attribute__((__packed__)); -+#elif (LZO_CC_IBMC >= 700) -+# define __lzo_struct_packed(s) __lzo_gnuc_extension__ struct s { -+# define __lzo_struct_packed_end() } __attribute__((__packed__)); -+# define __lzo_struct_packed_ma_end() } __lzo_may_alias __attribute__((__packed__)); -+#elif (LZO_CC_INTELC_MSC) || (LZO_CC_MSC && (_MSC_VER >= 1300)) -+# define __lzo_struct_packed(s) __pragma(pack(push,1)) struct s { -+# define __lzo_struct_packed_end() } __pragma(pack(pop)); -+#elif (LZO_CC_WATCOMC && (__WATCOMC__ >= 900)) -+# define __lzo_struct_packed(s) _Packed struct s { -+# define __lzo_struct_packed_end() }; -+#endif -+#endif -+#if defined(__lzo_struct_packed) && !defined(__lzo_struct_packed_ma) -+# define __lzo_struct_packed_ma(s) __lzo_struct_packed(s) -+#endif -+#if defined(__lzo_struct_packed_end) && !defined(__lzo_struct_packed_ma_end) -+# define __lzo_struct_packed_ma_end() __lzo_struct_packed_end() -+#endif -+#if !defined(__lzo_byte_struct) -+#if defined(__lzo_struct_packed) -+# define __lzo_byte_struct(s,n) __lzo_struct_packed(s) unsigned char a[n]; __lzo_struct_packed_end() -+# define __lzo_byte_struct_ma(s,n) __lzo_struct_packed_ma(s) unsigned char a[n]; __lzo_struct_packed_ma_end() -+#elif (LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_PGI || (LZO_CC_SUNPROC >= 0x5100)) -+# define __lzo_byte_struct(s,n) struct s { unsigned char a[n]; } __attribute__((__packed__)); -+# define __lzo_byte_struct_ma(s,n) struct s { unsigned char a[n]; } __lzo_may_alias __attribute__((__packed__)); -+#endif -+#endif -+#if defined(__lzo_byte_struct) && !defined(__lzo_byte_struct_ma) -+# define __lzo_byte_struct_ma(s,n) __lzo_byte_struct(s,n) -+#endif -+#if !defined(__lzo_struct_align16) && (__lzo_HAVE_alignof) -+#if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x030000ul)) -+#elif (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020800ul)) && defined(__cplusplus) -+#elif (LZO_CC_CILLY || LZO_CC_PCC) -+#elif (LZO_CC_INTELC_MSC) || (LZO_CC_MSC && (_MSC_VER >= 1300)) -+# define __lzo_struct_align16(s) struct __declspec(align(16)) s { -+# define __lzo_struct_align16_end() }; -+# define __lzo_struct_align32(s) struct __declspec(align(32)) s { -+# define __lzo_struct_align32_end() }; -+# define __lzo_struct_align64(s) struct __declspec(align(64)) s { -+# define __lzo_struct_align64_end() }; -+#elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_GNUC || (LZO_CC_IBMC >= 700) || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define __lzo_struct_align16(s) struct s { -+# define __lzo_struct_align16_end() } __attribute__((__aligned__(16))); -+# define __lzo_struct_align32(s) struct s { -+# define __lzo_struct_align32_end() } __attribute__((__aligned__(32))); -+# define __lzo_struct_align64(s) struct s { -+# define __lzo_struct_align64_end() } __attribute__((__aligned__(64))); -+#endif -+#endif -+#if !defined(__lzo_union_um) -+#if (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020800ul)) && defined(__cplusplus) -+#elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020700ul)) -+#elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul)) && defined(__cplusplus) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER < 810)) -+#elif (LZO_CC_PCC && (LZO_CC_PCC < 0x010100ul)) -+#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC < 0x5110)) && !defined(__cplusplus) -+#elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || (LZO_CC_PGI >= 0x0d0a00ul) || (LZO_CC_SUNPROC >= 0x5100)) -+# define __lzo_union_am(s) union s { -+# define __lzo_union_am_end() } __lzo_may_alias; -+# define __lzo_union_um(s) union s { -+# define __lzo_union_um_end() } __lzo_may_alias __attribute__((__packed__)); -+#elif (LZO_CC_IBMC >= 700) -+# define __lzo_union_am(s) __lzo_gnuc_extension__ union s { -+# define __lzo_union_am_end() } __lzo_may_alias; -+# define __lzo_union_um(s) __lzo_gnuc_extension__ union s { -+# define __lzo_union_um_end() } __lzo_may_alias __attribute__((__packed__)); -+#elif (LZO_CC_INTELC_MSC) || (LZO_CC_MSC && (_MSC_VER >= 1300)) -+# define __lzo_union_um(s) __pragma(pack(push,1)) union s { -+# define __lzo_union_um_end() } __pragma(pack(pop)); -+#elif (LZO_CC_WATCOMC && (__WATCOMC__ >= 900)) -+# define __lzo_union_um(s) _Packed union s { -+# define __lzo_union_um_end() }; -+#endif -+#endif -+#if !defined(__lzo_union_am) -+# define __lzo_union_am(s) union s { -+# define __lzo_union_am_end() }; -+#endif -+#if !defined(__lzo_constructor) -+#if (LZO_CC_GNUC >= 0x030400ul) -+# define __lzo_constructor __attribute__((__constructor__,__used__)) -+#elif (LZO_CC_GNUC >= 0x020700ul) -+# define __lzo_constructor __attribute__((__constructor__)) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800)) -+# define __lzo_constructor __attribute__((__constructor__,__used__)) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define __lzo_constructor __attribute__((__constructor__)) -+#endif -+#endif -+#if defined(__lzo_constructor) -+# ifndef __lzo_HAVE_constructor -+# define __lzo_HAVE_constructor 1 -+# endif -+#endif -+#if !defined(__lzo_destructor) -+#if (LZO_CC_GNUC >= 0x030400ul) -+# define __lzo_destructor __attribute__((__destructor__,__used__)) -+#elif (LZO_CC_GNUC >= 0x020700ul) -+# define __lzo_destructor __attribute__((__destructor__)) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800)) -+# define __lzo_destructor __attribute__((__destructor__,__used__)) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define __lzo_destructor __attribute__((__destructor__)) -+#endif -+#endif -+#if defined(__lzo_destructor) -+# ifndef __lzo_HAVE_destructor -+# define __lzo_HAVE_destructor 1 -+# endif -+#endif -+#if (__lzo_HAVE_destructor) && !(__lzo_HAVE_constructor) -+# error "unexpected configuration - check your compiler defines" -+#endif - #if !defined(__lzo_likely) && !defined(__lzo_unlikely) - #if (LZO_CC_GNUC >= 0x030200ul) - # define __lzo_likely(e) (__builtin_expect(!!(e),1)) - # define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) -+#elif (LZO_CC_IBMC >= 1010) -+# define __lzo_likely(e) (__builtin_expect(!!(e),1)) -+# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) - #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800)) - # define __lzo_likely(e) (__builtin_expect(!!(e),1)) - # define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) - # define __lzo_likely(e) (__builtin_expect(!!(e),1)) - # define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) - #endif - #endif - #if defined(__lzo_likely) -+# ifndef __lzo_HAVE_likely - # define __lzo_HAVE_likely 1 -+# endif - #else - # define __lzo_likely(e) (e) - #endif - #if defined(__lzo_unlikely) -+# ifndef __lzo_HAVE_unlikely - # define __lzo_HAVE_unlikely 1 -+# endif - #else - # define __lzo_unlikely(e) (e) - #endif --#if !defined(LZO_UNUSED) --# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) --# define LZO_UNUSED(var) ((void) &var) --# elif (LZO_CC_BORLANDC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PELLESC || LZO_CC_TURBOC) --# define LZO_UNUSED(var) if (&var) ; else --# elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define LZO_UNUSED(var) ((void) var) --# elif (LZO_CC_MSC && (_MSC_VER < 900)) --# define LZO_UNUSED(var) if (&var) ; else --# elif (LZO_CC_KEILC) --# define LZO_UNUSED(var) {extern int __lzo_unused[1-2*!(sizeof(var)>0)];} --# elif (LZO_CC_PACIFICC) --# define LZO_UNUSED(var) ((void) sizeof(var)) --# elif (LZO_CC_WATCOMC) && defined(__cplusplus) --# define LZO_UNUSED(var) ((void) var) -+#if !defined(__lzo_static_unused_void_func) -+# if 1 && (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || (LZO_CC_GNUC >= 0x020700ul) || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) -+# define __lzo_static_unused_void_func(f) static void __attribute__((__unused__)) f(void) - # else --# define LZO_UNUSED(var) ((void) &var) -+# define __lzo_static_unused_void_func(f) static __lzo_inline void f(void) - # endif - #endif --#if !defined(LZO_UNUSED_FUNC) --# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) --# define LZO_UNUSED_FUNC(func) ((void) func) --# elif (LZO_CC_BORLANDC || LZO_CC_NDPC || LZO_CC_TURBOC) --# define LZO_UNUSED_FUNC(func) if (func) ; else --# elif (LZO_CC_CLANG || LZO_CC_LLVM) --# define LZO_UNUSED_FUNC(func) ((void) &func) --# elif (LZO_CC_MSC && (_MSC_VER < 900)) --# define LZO_UNUSED_FUNC(func) if (func) ; else --# elif (LZO_CC_MSC) --# define LZO_UNUSED_FUNC(func) ((void) &func) --# elif (LZO_CC_KEILC || LZO_CC_PELLESC) --# define LZO_UNUSED_FUNC(func) {extern int __lzo_unused[1-2*!(sizeof((int)func)>0)];} -+#if !defined(__lzo_loop_forever) -+# if (LZO_CC_IBMC) -+# define __lzo_loop_forever() LZO_BLOCK_BEGIN for (;;) { ; } LZO_BLOCK_END - # else --# define LZO_UNUSED_FUNC(func) ((void) func) -+# define __lzo_loop_forever() do { ; } while __lzo_cte(1) - # endif - #endif --#if !defined(LZO_UNUSED_LABEL) --# if (LZO_CC_WATCOMC) && defined(__cplusplus) --# define LZO_UNUSED_LABEL(l) switch(0) case 1:goto l --# elif (LZO_CC_CLANG || LZO_CC_INTELC || LZO_CC_WATCOMC) --# define LZO_UNUSED_LABEL(l) if (0) goto l --# else --# define LZO_UNUSED_LABEL(l) switch(0) case 1:goto l --# endif -+#if !defined(__lzo_unreachable) -+#if (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x020800ul)) -+# define __lzo_unreachable() __builtin_unreachable(); -+#elif (LZO_CC_GNUC >= 0x040500ul) -+# define __lzo_unreachable() __builtin_unreachable(); -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 1300)) && 1 -+# define __lzo_unreachable() __builtin_unreachable(); - #endif --#if !defined(LZO_DEFINE_UNINITIALIZED_VAR) -+#endif -+#if defined(__lzo_unreachable) -+# ifndef __lzo_HAVE_unreachable -+# define __lzo_HAVE_unreachable 1 -+# endif -+#else - # if 0 --# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var --# elif 0 && (LZO_CC_GNUC) --# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = var -+# define __lzo_unreachable() ((void)0); - # else --# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = init -+# define __lzo_unreachable() __lzo_loop_forever(); - # endif - #endif --#if !defined(LZO_UNCONST_CAST) --# if 0 && defined(__cplusplus) --# define LZO_UNCONST_CAST(t,e) (const_cast (e)) --# elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((char *) ((lzo_uintptr_t) ((const void *) (e)))))) --# else --# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((char *) ((const void *) (e))))) --# endif -+#ifndef __LZO_CTA_NAME -+#if (LZO_CFG_USE_COUNTER) -+# define __LZO_CTA_NAME(a) LZO_PP_ECONCAT2(a,__COUNTER__) -+#else -+# define __LZO_CTA_NAME(a) LZO_PP_ECONCAT2(a,__LINE__) -+#endif - #endif - #if !defined(LZO_COMPILE_TIME_ASSERT_HEADER) - # if (LZO_CC_AZTECC || LZO_CC_ZORTECHC) --# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1-!(e)]; -+# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1-!(e)]; LZO_EXTERN_C_END - # elif (LZO_CC_DMC || LZO_CC_SYMANTECC) --# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1u-2*!(e)]; -+# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1u-2*!(e)]; LZO_EXTERN_C_END - # elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295)) --# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1-!(e)]; -+# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1-!(e)]; LZO_EXTERN_C_END -+# elif (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020900ul)) && defined(__cplusplus) -+# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN int __LZO_CTA_NAME(lzo_cta_f__)(int [1-2*!(e)]); LZO_EXTERN_C_END -+# elif (LZO_CC_GNUC) && defined(__CHECKER__) && defined(__SPARSE_CHECKER__) -+# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN enum {__LZO_CTA_NAME(lzo_cta_e__)=1/!!(e)} __attribute__((__unused__)); LZO_EXTERN_C_END - # else --# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1-2*!(e)]; -+# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1-2*!(e)]; LZO_EXTERN_C_END - # endif - #endif - #if !defined(LZO_COMPILE_TIME_ASSERT) - # if (LZO_CC_AZTECC) --# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __lzo_cta_t[1-!(e)];} -+# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-!(e)];} - # elif (LZO_CC_DMC || LZO_CC_PACIFICC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC) - # define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; -+# elif (LZO_CC_GNUC) && defined(__CHECKER__) && defined(__SPARSE_CHECKER__) -+# define LZO_COMPILE_TIME_ASSERT(e) {(void) (0/!!(e));} -+# elif (LZO_CC_GNUC >= 0x040700ul) && (LZO_CFG_USE_COUNTER) && defined(__cplusplus) -+# define LZO_COMPILE_TIME_ASSERT(e) {enum {__LZO_CTA_NAME(lzo_cta_e__)=1/!!(e)} __attribute__((__unused__));} -+# elif (LZO_CC_GNUC >= 0x040700ul) -+# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-2*!(e)] __attribute__((__unused__));} - # elif (LZO_CC_MSC && (_MSC_VER < 900)) - # define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; - # elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295)) - # define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; - # else --# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __lzo_cta_t[1-2*!(e)];} -+# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-2*!(e)];} - # endif - #endif -+LZO_COMPILE_TIME_ASSERT_HEADER(1 == 1) -+#if defined(__cplusplus) -+extern "C" { LZO_COMPILE_TIME_ASSERT_HEADER(2 == 2) } -+#endif -+LZO_COMPILE_TIME_ASSERT_HEADER(3 == 3) - #if (LZO_ARCH_I086 || LZO_ARCH_I386) && (LZO_OS_DOS16 || LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_OS216 || LZO_OS_WIN16 || LZO_OS_WIN32 || LZO_OS_WIN64) - # if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC) - # elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC) -@@ -1681,99 +1916,654 @@ extern "C" { - # elif defined(_MT) - # define __lzo_cdecl_sighandler _far _cdecl - # else --# define __lzo_cdecl_sighandler _cdecl -+# define __lzo_cdecl_sighandler _cdecl -+# endif -+# else -+# define __lzo_cdecl_sighandler __cdecl -+# endif -+#elif (LZO_ARCH_I386) && (LZO_CC_WATCOMC) -+# define __lzo_cdecl __cdecl -+#elif (LZO_ARCH_M68K && LZO_OS_TOS && (LZO_CC_PUREC || LZO_CC_TURBOC)) -+# define __lzo_cdecl cdecl -+#endif -+#if !defined(__lzo_cdecl) -+# define __lzo_cdecl /*empty*/ -+#endif -+#if !defined(__lzo_cdecl_atexit) -+# define __lzo_cdecl_atexit /*empty*/ -+#endif -+#if !defined(__lzo_cdecl_main) -+# define __lzo_cdecl_main /*empty*/ -+#endif -+#if !defined(__lzo_cdecl_qsort) -+# define __lzo_cdecl_qsort /*empty*/ -+#endif -+#if !defined(__lzo_cdecl_sighandler) -+# define __lzo_cdecl_sighandler /*empty*/ -+#endif -+#if !defined(__lzo_cdecl_va) -+# define __lzo_cdecl_va __lzo_cdecl -+#endif -+#if !(LZO_CFG_NO_WINDOWS_H) -+#if !defined(LZO_HAVE_WINDOWS_H) -+#if (LZO_OS_CYGWIN || (LZO_OS_EMX && defined(__RSXNT__)) || LZO_OS_WIN32 || LZO_OS_WIN64) -+# if (LZO_CC_WATCOMC && (__WATCOMC__ < 1000)) -+# elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__PW32__) -+# elif ((LZO_OS_CYGWIN || defined(__MINGW32__)) && (LZO_CC_GNUC && (LZO_CC_GNUC < 0x025f00ul))) -+# else -+# define LZO_HAVE_WINDOWS_H 1 -+# endif -+#endif -+#endif -+#endif -+#ifndef LZO_SIZEOF_SHORT -+#if defined(SIZEOF_SHORT) -+# define LZO_SIZEOF_SHORT (SIZEOF_SHORT) -+#elif defined(__SIZEOF_SHORT__) -+# define LZO_SIZEOF_SHORT (__SIZEOF_SHORT__) -+#endif -+#endif -+#ifndef LZO_SIZEOF_INT -+#if defined(SIZEOF_INT) -+# define LZO_SIZEOF_INT (SIZEOF_INT) -+#elif defined(__SIZEOF_INT__) -+# define LZO_SIZEOF_INT (__SIZEOF_INT__) -+#endif -+#endif -+#ifndef LZO_SIZEOF_LONG -+#if defined(SIZEOF_LONG) -+# define LZO_SIZEOF_LONG (SIZEOF_LONG) -+#elif defined(__SIZEOF_LONG__) -+# define LZO_SIZEOF_LONG (__SIZEOF_LONG__) -+#endif -+#endif -+#ifndef LZO_SIZEOF_LONG_LONG -+#if defined(SIZEOF_LONG_LONG) -+# define LZO_SIZEOF_LONG_LONG (SIZEOF_LONG_LONG) -+#elif defined(__SIZEOF_LONG_LONG__) -+# define LZO_SIZEOF_LONG_LONG (__SIZEOF_LONG_LONG__) -+#endif -+#endif -+#ifndef LZO_SIZEOF___INT16 -+#if defined(SIZEOF___INT16) -+# define LZO_SIZEOF___INT16 (SIZEOF___INT16) -+#endif -+#endif -+#ifndef LZO_SIZEOF___INT32 -+#if defined(SIZEOF___INT32) -+# define LZO_SIZEOF___INT32 (SIZEOF___INT32) -+#endif -+#endif -+#ifndef LZO_SIZEOF___INT64 -+#if defined(SIZEOF___INT64) -+# define LZO_SIZEOF___INT64 (SIZEOF___INT64) -+#endif -+#endif -+#ifndef LZO_SIZEOF_VOID_P -+#if defined(SIZEOF_VOID_P) -+# define LZO_SIZEOF_VOID_P (SIZEOF_VOID_P) -+#elif defined(__SIZEOF_POINTER__) -+# define LZO_SIZEOF_VOID_P (__SIZEOF_POINTER__) -+#endif -+#endif -+#ifndef LZO_SIZEOF_SIZE_T -+#if defined(SIZEOF_SIZE_T) -+# define LZO_SIZEOF_SIZE_T (SIZEOF_SIZE_T) -+#elif defined(__SIZEOF_SIZE_T__) -+# define LZO_SIZEOF_SIZE_T (__SIZEOF_SIZE_T__) -+#endif -+#endif -+#ifndef LZO_SIZEOF_PTRDIFF_T -+#if defined(SIZEOF_PTRDIFF_T) -+# define LZO_SIZEOF_PTRDIFF_T (SIZEOF_PTRDIFF_T) -+#elif defined(__SIZEOF_PTRDIFF_T__) -+# define LZO_SIZEOF_PTRDIFF_T (__SIZEOF_PTRDIFF_T__) -+#endif -+#endif -+#define __LZO_LSR(x,b) (((x)+0ul) >> (b)) -+#if !defined(LZO_SIZEOF_SHORT) -+# if (LZO_ARCH_CRAY_PVP) -+# define LZO_SIZEOF_SHORT 8 -+# elif (USHRT_MAX == LZO_0xffffL) -+# define LZO_SIZEOF_SHORT 2 -+# elif (__LZO_LSR(USHRT_MAX,7) == 1) -+# define LZO_SIZEOF_SHORT 1 -+# elif (__LZO_LSR(USHRT_MAX,15) == 1) -+# define LZO_SIZEOF_SHORT 2 -+# elif (__LZO_LSR(USHRT_MAX,31) == 1) -+# define LZO_SIZEOF_SHORT 4 -+# elif (__LZO_LSR(USHRT_MAX,63) == 1) -+# define LZO_SIZEOF_SHORT 8 -+# elif (__LZO_LSR(USHRT_MAX,127) == 1) -+# define LZO_SIZEOF_SHORT 16 -+# else -+# error "LZO_SIZEOF_SHORT" -+# endif -+#endif -+LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_SHORT == sizeof(short)) -+#if !defined(LZO_SIZEOF_INT) -+# if (LZO_ARCH_CRAY_PVP) -+# define LZO_SIZEOF_INT 8 -+# elif (UINT_MAX == LZO_0xffffL) -+# define LZO_SIZEOF_INT 2 -+# elif (UINT_MAX == LZO_0xffffffffL) -+# define LZO_SIZEOF_INT 4 -+# elif (__LZO_LSR(UINT_MAX,7) == 1) -+# define LZO_SIZEOF_INT 1 -+# elif (__LZO_LSR(UINT_MAX,15) == 1) -+# define LZO_SIZEOF_INT 2 -+# elif (__LZO_LSR(UINT_MAX,31) == 1) -+# define LZO_SIZEOF_INT 4 -+# elif (__LZO_LSR(UINT_MAX,63) == 1) -+# define LZO_SIZEOF_INT 8 -+# elif (__LZO_LSR(UINT_MAX,127) == 1) -+# define LZO_SIZEOF_INT 16 -+# else -+# error "LZO_SIZEOF_INT" -+# endif -+#endif -+LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_INT == sizeof(int)) -+#if !defined(LZO_SIZEOF_LONG) -+# if (ULONG_MAX == LZO_0xffffffffL) -+# define LZO_SIZEOF_LONG 4 -+# elif (__LZO_LSR(ULONG_MAX,7) == 1) -+# define LZO_SIZEOF_LONG 1 -+# elif (__LZO_LSR(ULONG_MAX,15) == 1) -+# define LZO_SIZEOF_LONG 2 -+# elif (__LZO_LSR(ULONG_MAX,31) == 1) -+# define LZO_SIZEOF_LONG 4 -+# elif (__LZO_LSR(ULONG_MAX,39) == 1) -+# define LZO_SIZEOF_LONG 5 -+# elif (__LZO_LSR(ULONG_MAX,63) == 1) -+# define LZO_SIZEOF_LONG 8 -+# elif (__LZO_LSR(ULONG_MAX,127) == 1) -+# define LZO_SIZEOF_LONG 16 -+# else -+# error "LZO_SIZEOF_LONG" -+# endif -+#endif -+LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_LONG == sizeof(long)) -+#if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64) -+#if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8) -+# if defined(__LONG_MAX__) && defined(__LONG_LONG_MAX__) -+# if (LZO_CC_GNUC >= 0x030300ul) -+# if ((__LONG_MAX__-0) == (__LONG_LONG_MAX__-0)) -+# define LZO_SIZEOF_LONG_LONG LZO_SIZEOF_LONG -+# elif (__LZO_LSR(__LONG_LONG_MAX__,30) == 1) -+# define LZO_SIZEOF_LONG_LONG 4 -+# endif -+# endif -+# endif -+#endif -+#endif -+#if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64) -+#if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8) -+#if (LZO_ARCH_I086 && LZO_CC_DMC) -+#elif (LZO_CC_CILLY) && defined(__GNUC__) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif ((LZO_OS_WIN32 || LZO_OS_WIN64 || defined(_WIN32)) && LZO_CC_MSC && (_MSC_VER >= 1400)) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_OS_WIN64 || defined(_WIN64)) -+# define LZO_SIZEOF___INT64 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_DMC)) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_SYMANTECC && (__SC__ >= 0x700))) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_INTELC && defined(__linux__))) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_MWERKS || LZO_CC_PELLESC || LZO_CC_PGI || LZO_CC_SUNPROC)) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_INTELC || LZO_CC_MSC)) -+# define LZO_SIZEOF___INT64 8 -+#elif ((LZO_OS_WIN32 || defined(_WIN32)) && (LZO_CC_MSC)) -+# define LZO_SIZEOF___INT64 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0520))) -+# define LZO_SIZEOF___INT64 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_WATCOMC && (__WATCOMC__ >= 1100))) -+# define LZO_SIZEOF___INT64 8 -+#elif (LZO_CC_GHS && defined(__LLONG_BIT) && ((__LLONG_BIT-0) == 64)) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_CC_WATCOMC && defined(_INTEGRAL_MAX_BITS) && ((_INTEGRAL_MAX_BITS-0) == 64)) -+# define LZO_SIZEOF___INT64 8 -+#elif (LZO_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (defined(__vms) || defined(__VMS)) && ((__INITIAL_POINTER_SIZE-0) == 64) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_CC_SDCC) && (LZO_SIZEOF_INT == 2) -+#elif 1 && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) -+# define LZO_SIZEOF_LONG_LONG 8 -+#endif -+#endif -+#endif -+#if defined(__cplusplus) && (LZO_CC_GNUC) -+# if (LZO_CC_GNUC < 0x020800ul) -+# undef LZO_SIZEOF_LONG_LONG -+# endif -+#endif -+#if (LZO_CFG_NO_LONG_LONG) -+# undef LZO_SIZEOF_LONG_LONG -+#elif defined(__NO_LONG_LONG) -+# undef LZO_SIZEOF_LONG_LONG -+#elif defined(_NO_LONGLONG) -+# undef LZO_SIZEOF_LONG_LONG -+#endif -+#if !defined(LZO_WORDSIZE) -+#if (LZO_ARCH_ALPHA) -+# define LZO_WORDSIZE 8 -+#elif (LZO_ARCH_AMD64) -+# define LZO_WORDSIZE 8 -+#elif (LZO_ARCH_AVR) -+# define LZO_WORDSIZE 1 -+#elif (LZO_ARCH_H8300) -+# if defined(__NORMAL_MODE__) -+# define LZO_WORDSIZE 4 -+# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__) -+# define LZO_WORDSIZE 4 -+# else -+# define LZO_WORDSIZE 2 -+# endif -+#elif (LZO_ARCH_I086) -+# define LZO_WORDSIZE 2 -+#elif (LZO_ARCH_IA64) -+# define LZO_WORDSIZE 8 -+#elif (LZO_ARCH_M16C) -+# define LZO_WORDSIZE 2 -+#elif (LZO_ARCH_SPU) -+# define LZO_WORDSIZE 4 -+#elif (LZO_ARCH_Z80) -+# define LZO_WORDSIZE 1 -+#elif (LZO_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__)) -+# define LZO_WORDSIZE 8 -+#elif (LZO_OS_OS400 || defined(__OS400__)) -+# define LZO_WORDSIZE 8 -+#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) -+# define LZO_WORDSIZE 8 -+#endif -+#endif -+#if !defined(LZO_SIZEOF_VOID_P) -+#if defined(__ILP32__) || defined(__ILP32) || defined(_ILP32) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(int) == 4) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 4) -+# define LZO_SIZEOF_VOID_P 4 -+#elif defined(__ILP64__) || defined(__ILP64) || defined(_ILP64) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(int) == 8) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 8) -+# define LZO_SIZEOF_VOID_P 8 -+#elif defined(__LLP64__) || defined(__LLP64) || defined(_LLP64) || defined(_WIN64) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 4) -+# define LZO_SIZEOF_VOID_P 8 -+#elif defined(__LP64__) || defined(__LP64) || defined(_LP64) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 8) -+# define LZO_SIZEOF_VOID_P 8 -+#elif (LZO_ARCH_AVR) -+# define LZO_SIZEOF_VOID_P 2 -+#elif (LZO_ARCH_C166 || LZO_ARCH_MCS51 || LZO_ARCH_MCS251 || LZO_ARCH_MSP430) -+# define LZO_SIZEOF_VOID_P 2 -+#elif (LZO_ARCH_H8300) -+# if defined(__NORMAL_MODE__) -+# define LZO_SIZEOF_VOID_P 2 -+# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__) -+# define LZO_SIZEOF_VOID_P 4 -+# else -+# define LZO_SIZEOF_VOID_P 2 -+# endif -+# if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x040000ul)) && (LZO_SIZEOF_INT == 4) -+# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_INT -+# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_INT -+# endif -+#elif (LZO_ARCH_I086) -+# if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM) -+# define LZO_SIZEOF_VOID_P 2 -+# elif (LZO_MM_COMPACT || LZO_MM_LARGE || LZO_MM_HUGE) -+# define LZO_SIZEOF_VOID_P 4 -+# else -+# error "invalid LZO_ARCH_I086 memory model" -+# endif -+#elif (LZO_ARCH_M16C) -+# if defined(__m32c_cpu__) || defined(__m32cm_cpu__) -+# define LZO_SIZEOF_VOID_P 4 -+# else -+# define LZO_SIZEOF_VOID_P 2 -+# endif -+#elif (LZO_ARCH_SPU) -+# define LZO_SIZEOF_VOID_P 4 -+#elif (LZO_ARCH_Z80) -+# define LZO_SIZEOF_VOID_P 2 -+#elif (LZO_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__)) -+# define LZO_SIZEOF_VOID_P 4 -+#elif (LZO_OS_OS400 || defined(__OS400__)) -+# if defined(__LLP64_IFC__) -+# define LZO_SIZEOF_VOID_P 8 -+# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG -+# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG -+# else -+# define LZO_SIZEOF_VOID_P 16 -+# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG -+# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG -+# endif -+#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) -+# define LZO_SIZEOF_VOID_P 8 -+# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG -+# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG -+#endif -+#endif -+#if !defined(LZO_SIZEOF_VOID_P) -+# define LZO_SIZEOF_VOID_P LZO_SIZEOF_LONG -+#endif -+LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_VOID_P == sizeof(void *)) -+#if !defined(LZO_SIZEOF_SIZE_T) -+#if (LZO_ARCH_I086 || LZO_ARCH_M16C) -+# define LZO_SIZEOF_SIZE_T 2 -+#endif -+#endif -+#if !defined(LZO_SIZEOF_SIZE_T) -+# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_VOID_P -+#endif -+#if defined(offsetof) -+LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_SIZE_T == sizeof(size_t)) -+#endif -+#if !defined(LZO_SIZEOF_PTRDIFF_T) -+#if (LZO_ARCH_I086) -+# if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM || LZO_MM_HUGE) -+# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_VOID_P -+# elif (LZO_MM_COMPACT || LZO_MM_LARGE) -+# if (LZO_CC_BORLANDC || LZO_CC_TURBOC) -+# define LZO_SIZEOF_PTRDIFF_T 4 -+# else -+# define LZO_SIZEOF_PTRDIFF_T 2 - # endif - # else --# define __lzo_cdecl_sighandler __cdecl -+# error "invalid LZO_ARCH_I086 memory model" - # endif --#elif (LZO_ARCH_I386) && (LZO_CC_WATCOMC) --# define __lzo_cdecl __cdecl --#elif (LZO_ARCH_M68K && LZO_OS_TOS && (LZO_CC_PUREC || LZO_CC_TURBOC)) --# define __lzo_cdecl cdecl - #endif --#if !defined(__lzo_cdecl) --# define __lzo_cdecl /*empty*/ - #endif --#if !defined(__lzo_cdecl_atexit) --# define __lzo_cdecl_atexit /*empty*/ -+#if !defined(LZO_SIZEOF_PTRDIFF_T) -+# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_SIZE_T - #endif --#if !defined(__lzo_cdecl_main) --# define __lzo_cdecl_main /*empty*/ -+#if defined(offsetof) -+LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t)) - #endif --#if !defined(__lzo_cdecl_qsort) --# define __lzo_cdecl_qsort /*empty*/ -+#if !defined(LZO_WORDSIZE) -+# define LZO_WORDSIZE LZO_SIZEOF_VOID_P - #endif --#if !defined(__lzo_cdecl_sighandler) --# define __lzo_cdecl_sighandler /*empty*/ -+#if (LZO_ABI_NEUTRAL_ENDIAN) -+# undef LZO_ABI_BIG_ENDIAN -+# undef LZO_ABI_LITTLE_ENDIAN -+#elif !(LZO_ABI_BIG_ENDIAN) && !(LZO_ABI_LITTLE_ENDIAN) -+#if (LZO_ARCH_ALPHA) && (LZO_ARCH_CRAY_MPP) -+# define LZO_ABI_BIG_ENDIAN 1 -+#elif (LZO_ARCH_IA64) && (LZO_OS_POSIX_LINUX || LZO_OS_WIN64) -+# define LZO_ABI_LITTLE_ENDIAN 1 -+#elif (LZO_ARCH_ALPHA || LZO_ARCH_AMD64 || LZO_ARCH_BLACKFIN || LZO_ARCH_CRIS || LZO_ARCH_I086 || LZO_ARCH_I386 || LZO_ARCH_MSP430) -+# define LZO_ABI_LITTLE_ENDIAN 1 -+#elif (LZO_ARCH_AVR32 || LZO_ARCH_M68K || LZO_ARCH_S390 || LZO_ARCH_SPU) -+# define LZO_ABI_BIG_ENDIAN 1 -+#elif 1 && defined(__IAR_SYSTEMS_ICC__) && defined(__LITTLE_ENDIAN__) -+# if (__LITTLE_ENDIAN__ == 1) -+# define LZO_ABI_LITTLE_ENDIAN 1 -+# else -+# define LZO_ABI_BIG_ENDIAN 1 -+# endif -+#elif 1 && defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__) -+# define LZO_ABI_BIG_ENDIAN 1 -+#elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__) -+# define LZO_ABI_LITTLE_ENDIAN 1 -+#elif 1 && (LZO_ARCH_ARM) && defined(__ARMEB__) && !defined(__ARMEL__) -+# define LZO_ABI_BIG_ENDIAN 1 -+#elif 1 && (LZO_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__) -+# define LZO_ABI_LITTLE_ENDIAN 1 -+#elif 1 && (LZO_ARCH_ARM && LZO_CC_ARMCC_ARMCC) -+# if defined(__BIG_ENDIAN) && defined(__LITTLE_ENDIAN) -+# error "unexpected configuration - check your compiler defines" -+# elif defined(__BIG_ENDIAN) -+# define LZO_ABI_BIG_ENDIAN 1 -+# else -+# define LZO_ABI_LITTLE_ENDIAN 1 -+# endif -+# define LZO_ABI_LITTLE_ENDIAN 1 -+#elif 1 && (LZO_ARCH_ARM64) && defined(__AARCH64EB__) && !defined(__AARCH64EL__) -+# define LZO_ABI_BIG_ENDIAN 1 -+#elif 1 && (LZO_ARCH_ARM64) && defined(__AARCH64EL__) && !defined(__AARCH64EB__) -+# define LZO_ABI_LITTLE_ENDIAN 1 -+#elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__) -+# define LZO_ABI_BIG_ENDIAN 1 -+#elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__) -+# define LZO_ABI_LITTLE_ENDIAN 1 - #endif --#if !defined(__lzo_cdecl_va) --# define __lzo_cdecl_va __lzo_cdecl - #endif --#if !(LZO_CFG_NO_WINDOWS_H) --#if (LZO_OS_CYGWIN || (LZO_OS_EMX && defined(__RSXNT__)) || LZO_OS_WIN32 || LZO_OS_WIN64) --# if (LZO_CC_WATCOMC && (__WATCOMC__ < 1000)) --# elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__PW32__) --# elif ((LZO_OS_CYGWIN || defined(__MINGW32__)) && (LZO_CC_GNUC && (LZO_CC_GNUC < 0x025f00ul))) -+#if (LZO_ABI_BIG_ENDIAN) && (LZO_ABI_LITTLE_ENDIAN) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ABI_BIG_ENDIAN) -+# define LZO_INFO_ABI_ENDIAN "be" -+#elif (LZO_ABI_LITTLE_ENDIAN) -+# define LZO_INFO_ABI_ENDIAN "le" -+#elif (LZO_ABI_NEUTRAL_ENDIAN) -+# define LZO_INFO_ABI_ENDIAN "neutral" -+#endif -+#if (LZO_SIZEOF_INT == 1 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2) -+# define LZO_ABI_I8LP16 1 -+# define LZO_INFO_ABI_PM "i8lp16" -+#elif (LZO_SIZEOF_INT == 2 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2) -+# define LZO_ABI_ILP16 1 -+# define LZO_INFO_ABI_PM "ilp16" -+#elif (LZO_SIZEOF_INT == 2 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 4) -+# define LZO_ABI_LP32 1 -+# define LZO_INFO_ABI_PM "lp32" -+#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 4) -+# define LZO_ABI_ILP32 1 -+# define LZO_INFO_ABI_PM "ilp32" -+#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 8 && LZO_SIZEOF_SIZE_T == 8) -+# define LZO_ABI_LLP64 1 -+# define LZO_INFO_ABI_PM "llp64" -+#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8) -+# define LZO_ABI_LP64 1 -+# define LZO_INFO_ABI_PM "lp64" -+#elif (LZO_SIZEOF_INT == 8 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8) -+# define LZO_ABI_ILP64 1 -+# define LZO_INFO_ABI_PM "ilp64" -+#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 4) -+# define LZO_ABI_IP32L64 1 -+# define LZO_INFO_ABI_PM "ip32l64" -+#endif -+#if 0 -+#elif !defined(__LZO_LIBC_OVERRIDE) -+#if (LZO_LIBC_NAKED) -+# define LZO_INFO_LIBC "naked" -+#elif (LZO_LIBC_FREESTANDING) -+# define LZO_INFO_LIBC "freestanding" -+#elif (LZO_LIBC_MOSTLY_FREESTANDING) -+# define LZO_INFO_LIBC "mfreestanding" -+#elif (LZO_LIBC_ISOC90) -+# define LZO_INFO_LIBC "isoc90" -+#elif (LZO_LIBC_ISOC99) -+# define LZO_INFO_LIBC "isoc99" -+#elif (LZO_CC_ARMCC_ARMCC) && defined(__ARMCLIB_VERSION) -+# define LZO_LIBC_ISOC90 1 -+# define LZO_INFO_LIBC "isoc90" -+#elif defined(__dietlibc__) -+# define LZO_LIBC_DIETLIBC 1 -+# define LZO_INFO_LIBC "dietlibc" -+#elif defined(_NEWLIB_VERSION) -+# define LZO_LIBC_NEWLIB 1 -+# define LZO_INFO_LIBC "newlib" -+#elif defined(__UCLIBC__) && defined(__UCLIBC_MAJOR__) && defined(__UCLIBC_MINOR__) -+# if defined(__UCLIBC_SUBLEVEL__) -+# define LZO_LIBC_UCLIBC (__UCLIBC_MAJOR__ * 0x10000L + (__UCLIBC_MINOR__-0) * 0x100 + (__UCLIBC_SUBLEVEL__-0)) - # else --# define LZO_HAVE_WINDOWS_H 1 -+# define LZO_LIBC_UCLIBC 0x00090bL - # endif -+# define LZO_INFO_LIBC "uc" "libc" -+#elif defined(__GLIBC__) && defined(__GLIBC_MINOR__) -+# define LZO_LIBC_GLIBC (__GLIBC__ * 0x10000L + (__GLIBC_MINOR__-0) * 0x100) -+# define LZO_INFO_LIBC "glibc" -+#elif (LZO_CC_MWERKS) && defined(__MSL__) -+# define LZO_LIBC_MSL __MSL__ -+# define LZO_INFO_LIBC "msl" -+#elif 1 && defined(__IAR_SYSTEMS_ICC__) -+# define LZO_LIBC_ISOC90 1 -+# define LZO_INFO_LIBC "isoc90" -+#else -+# define LZO_LIBC_DEFAULT 1 -+# define LZO_INFO_LIBC "default" -+#endif -+#endif -+#if (LZO_ARCH_I386 && (LZO_OS_DOS32 || LZO_OS_WIN32) && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC)) -+# define LZO_ASM_SYNTAX_MSC 1 -+#elif (LZO_OS_WIN64 && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC)) -+#elif (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC == 0x011f00ul)) -+#elif (LZO_ARCH_I386 && (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE)) -+# define LZO_ASM_SYNTAX_GNUC 1 -+#elif (LZO_ARCH_AMD64 && (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE)) -+# define LZO_ASM_SYNTAX_GNUC 1 -+#elif (LZO_CC_GNUC) -+# define LZO_ASM_SYNTAX_GNUC 1 -+#endif -+#if (LZO_ASM_SYNTAX_GNUC) -+#if (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC < 0x020000ul)) -+# define __LZO_ASM_CLOBBER "ax" -+# define __LZO_ASM_CLOBBER_LIST_CC /*empty*/ -+# define __LZO_ASM_CLOBBER_LIST_CC_MEMORY /*empty*/ -+# define __LZO_ASM_CLOBBER_LIST_EMPTY /*empty*/ -+#elif (LZO_CC_INTELC && (__INTEL_COMPILER < 1000)) -+# define __LZO_ASM_CLOBBER "memory" -+# define __LZO_ASM_CLOBBER_LIST_CC /*empty*/ -+# define __LZO_ASM_CLOBBER_LIST_CC_MEMORY : "memory" -+# define __LZO_ASM_CLOBBER_LIST_EMPTY /*empty*/ -+#else -+# define __LZO_ASM_CLOBBER "cc", "memory" -+# define __LZO_ASM_CLOBBER_LIST_CC : "cc" -+# define __LZO_ASM_CLOBBER_LIST_CC_MEMORY : "cc", "memory" -+# define __LZO_ASM_CLOBBER_LIST_EMPTY /*empty*/ - #endif - #endif - #if (LZO_ARCH_ALPHA) --# define LZO_OPT_AVOID_UINT_INDEX 1 --# define LZO_OPT_AVOID_SHORT 1 --# define LZO_OPT_AVOID_USHORT 1 -+# define LZO_OPT_AVOID_UINT_INDEX 1 - #elif (LZO_ARCH_AMD64) --# define LZO_OPT_AVOID_INT_INDEX 1 --# define LZO_OPT_AVOID_UINT_INDEX 1 --# define LZO_OPT_UNALIGNED16 1 --# define LZO_OPT_UNALIGNED32 1 --# define LZO_OPT_UNALIGNED64 1 --#elif (LZO_ARCH_ARM && LZO_ARCH_ARM_THUMB) -+# define LZO_OPT_AVOID_INT_INDEX 1 -+# define LZO_OPT_AVOID_UINT_INDEX 1 -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED64 -+# define LZO_OPT_UNALIGNED64 1 -+# endif - #elif (LZO_ARCH_ARM) --# define LZO_OPT_AVOID_SHORT 1 --# define LZO_OPT_AVOID_USHORT 1 -+# if defined(__ARM_FEATURE_UNALIGNED) -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif -+# elif defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM+0) >= 7) -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif -+# elif defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM+0) >= 6) && !defined(__TARGET_PROFILE_M) -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif -+# endif -+#elif (LZO_ARCH_ARM64) -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED64 -+# define LZO_OPT_UNALIGNED64 1 -+# endif - #elif (LZO_ARCH_CRIS) --# define LZO_OPT_UNALIGNED16 1 --# define LZO_OPT_UNALIGNED32 1 -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif - #elif (LZO_ARCH_I386) --# define LZO_OPT_UNALIGNED16 1 --# define LZO_OPT_UNALIGNED32 1 -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif - #elif (LZO_ARCH_IA64) --# define LZO_OPT_AVOID_INT_INDEX 1 --# define LZO_OPT_AVOID_UINT_INDEX 1 --# define LZO_OPT_PREFER_POSTINC 1 -+# define LZO_OPT_AVOID_INT_INDEX 1 -+# define LZO_OPT_AVOID_UINT_INDEX 1 -+# define LZO_OPT_PREFER_POSTINC 1 - #elif (LZO_ARCH_M68K) --# define LZO_OPT_PREFER_POSTINC 1 --# define LZO_OPT_PREFER_PREDEC 1 -+# define LZO_OPT_PREFER_POSTINC 1 -+# define LZO_OPT_PREFER_PREDEC 1 - # if defined(__mc68020__) && !defined(__mcoldfire__) --# define LZO_OPT_UNALIGNED16 1 --# define LZO_OPT_UNALIGNED32 1 -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif - # endif - #elif (LZO_ARCH_MIPS) --# define LZO_OPT_AVOID_UINT_INDEX 1 -+# define LZO_OPT_AVOID_UINT_INDEX 1 - #elif (LZO_ARCH_POWERPC) --# define LZO_OPT_PREFER_PREINC 1 --# define LZO_OPT_PREFER_PREDEC 1 -+# define LZO_OPT_PREFER_PREINC 1 -+# define LZO_OPT_PREFER_PREDEC 1 - # if (LZO_ABI_BIG_ENDIAN) --# define LZO_OPT_UNALIGNED16 1 --# define LZO_OPT_UNALIGNED32 1 -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif -+# if (LZO_WORDSIZE == 8) -+# ifndef LZO_OPT_UNALIGNED64 -+# define LZO_OPT_UNALIGNED64 1 -+# endif -+# endif - # endif - #elif (LZO_ARCH_S390) --# define LZO_OPT_UNALIGNED16 1 --# define LZO_OPT_UNALIGNED32 1 --# if (LZO_SIZEOF_SIZE_T == 8) --# define LZO_OPT_UNALIGNED64 1 -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif -+# if (LZO_WORDSIZE == 8) -+# ifndef LZO_OPT_UNALIGNED64 -+# define LZO_OPT_UNALIGNED64 1 -+# endif - # endif - #elif (LZO_ARCH_SH) --# define LZO_OPT_PREFER_POSTINC 1 --# define LZO_OPT_PREFER_PREDEC 1 -+# define LZO_OPT_PREFER_POSTINC 1 -+# define LZO_OPT_PREFER_PREDEC 1 - #endif - #ifndef LZO_CFG_NO_INLINE_ASM --#if (LZO_CC_LLVM) -+#if (LZO_ABI_NEUTRAL_ENDIAN) || (LZO_ARCH_GENERIC) -+# define LZO_CFG_NO_INLINE_ASM 1 -+#elif (LZO_CC_LLVM) - # define LZO_CFG_NO_INLINE_ASM 1 - #endif - #endif -+#if (LZO_CFG_NO_INLINE_ASM) -+# undef LZO_ASM_SYNTAX_MSC -+# undef LZO_ASM_SYNTAX_GNUC -+# undef __LZO_ASM_CLOBBER -+# undef __LZO_ASM_CLOBBER_LIST_CC -+# undef __LZO_ASM_CLOBBER_LIST_CC_MEMORY -+# undef __LZO_ASM_CLOBBER_LIST_EMPTY -+#endif - #ifndef LZO_CFG_NO_UNALIGNED - #if (LZO_ABI_NEUTRAL_ENDIAN) || (LZO_ARCH_GENERIC) - # define LZO_CFG_NO_UNALIGNED 1 -@@ -1784,25 +2574,6 @@ extern "C" { - # undef LZO_OPT_UNALIGNED32 - # undef LZO_OPT_UNALIGNED64 - #endif --#if (LZO_CFG_NO_INLINE_ASM) --#elif (LZO_ARCH_I386 && (LZO_OS_DOS32 || LZO_OS_WIN32) && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC)) --# define LZO_ASM_SYNTAX_MSC 1 --#elif (LZO_OS_WIN64 && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC)) --#elif (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC == 0x011f00ul)) --#elif (LZO_ARCH_I386 && (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE)) --# define LZO_ASM_SYNTAX_GNUC 1 --#elif (LZO_ARCH_AMD64 && (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE)) --# define LZO_ASM_SYNTAX_GNUC 1 --#endif --#if (LZO_ASM_SYNTAX_GNUC) --#if (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC < 0x020000ul)) --# define __LZO_ASM_CLOBBER "ax" --#elif (LZO_CC_INTELC) --# define __LZO_ASM_CLOBBER "memory" --#else --# define __LZO_ASM_CLOBBER "cc", "memory" --#endif --#endif - #if defined(__LZO_INFOSTR_MM) - #elif (LZO_MM_FLAT) && (defined(__LZO_INFOSTR_PM) || defined(LZO_INFO_ABI_PM)) - # define __LZO_INFOSTR_MM "" -@@ -1846,7 +2617,382 @@ extern "C" { - #define LZO_INFO_STRING \ - LZO_INFO_ARCH __LZO_INFOSTR_MM __LZO_INFOSTR_PM __LZO_INFOSTR_ENDIAN \ - " " __LZO_INFOSTR_OSNAME __LZO_INFOSTR_LIBC " " LZO_INFO_CC __LZO_INFOSTR_CCVER -+#if !(LZO_CFG_SKIP_LZO_TYPES) -+#if (!(LZO_SIZEOF_SHORT+0 > 0 && LZO_SIZEOF_INT+0 > 0 && LZO_SIZEOF_LONG+0 > 0)) -+# error "missing defines for sizes" -+#endif -+#if (!(LZO_SIZEOF_PTRDIFF_T+0 > 0 && LZO_SIZEOF_SIZE_T+0 > 0 && LZO_SIZEOF_VOID_P+0 > 0)) -+# error "missing defines for sizes" -+#endif -+#if !defined(lzo_llong_t) -+#if (LZO_SIZEOF_LONG_LONG+0 > 0) -+__lzo_gnuc_extension__ typedef long long lzo_llong_t__; -+__lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__; -+# define lzo_llong_t lzo_llong_t__ -+# define lzo_ullong_t lzo_ullong_t__ -+#endif -+#endif -+#if !defined(lzo_int16e_t) -+#if (LZO_SIZEOF_LONG == 2) -+# define lzo_int16e_t long -+# define lzo_uint16e_t unsigned long -+#elif (LZO_SIZEOF_INT == 2) -+# define lzo_int16e_t int -+# define lzo_uint16e_t unsigned int -+#elif (LZO_SIZEOF_SHORT == 2) -+# define lzo_int16e_t short int -+# define lzo_uint16e_t unsigned short int -+#elif 1 && !(LZO_CFG_TYPE_NO_MODE_HI) && (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x025f00ul) || LZO_CC_LLVM) -+ typedef int lzo_int16e_hi_t__ __attribute__((__mode__(__HI__))); -+ typedef unsigned int lzo_uint16e_hi_t__ __attribute__((__mode__(__HI__))); -+# define lzo_int16e_t lzo_int16e_hi_t__ -+# define lzo_uint16e_t lzo_uint16e_hi_t__ -+#elif (LZO_SIZEOF___INT16 == 2) -+# define lzo_int16e_t __int16 -+# define lzo_uint16e_t unsigned __int16 -+#else -+#endif -+#endif -+#if defined(lzo_int16e_t) -+# define LZO_SIZEOF_LZO_INT16E_T 2 -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16e_t) == 2) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16e_t) == LZO_SIZEOF_LZO_INT16E_T) -+#endif -+#if !defined(lzo_int32e_t) -+#if (LZO_SIZEOF_LONG == 4) -+# define lzo_int32e_t long int -+# define lzo_uint32e_t unsigned long int -+#elif (LZO_SIZEOF_INT == 4) -+# define lzo_int32e_t int -+# define lzo_uint32e_t unsigned int -+#elif (LZO_SIZEOF_SHORT == 4) -+# define lzo_int32e_t short int -+# define lzo_uint32e_t unsigned short int -+#elif (LZO_SIZEOF_LONG_LONG == 4) -+# define lzo_int32e_t lzo_llong_t -+# define lzo_uint32e_t lzo_ullong_t -+#elif 1 && !(LZO_CFG_TYPE_NO_MODE_SI) && (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x025f00ul) || LZO_CC_LLVM) && (__INT_MAX__+0 > 2147483647L) -+ typedef int lzo_int32e_si_t__ __attribute__((__mode__(__SI__))); -+ typedef unsigned int lzo_uint32e_si_t__ __attribute__((__mode__(__SI__))); -+# define lzo_int32e_t lzo_int32e_si_t__ -+# define lzo_uint32e_t lzo_uint32e_si_t__ -+#elif 1 && !(LZO_CFG_TYPE_NO_MODE_SI) && (LZO_CC_GNUC >= 0x025f00ul) && defined(__AVR__) && (__LONG_MAX__+0 == 32767L) -+ typedef int lzo_int32e_si_t__ __attribute__((__mode__(__SI__))); -+ typedef unsigned int lzo_uint32e_si_t__ __attribute__((__mode__(__SI__))); -+# define lzo_int32e_t lzo_int32e_si_t__ -+# define lzo_uint32e_t lzo_uint32e_si_t__ -+# define LZO_INT32_C(c) (c##LL) -+# define LZO_UINT32_C(c) (c##ULL) -+#elif (LZO_SIZEOF___INT32 == 4) -+# define lzo_int32e_t __int32 -+# define lzo_uint32e_t unsigned __int32 -+#else -+#endif -+#endif -+#if defined(lzo_int32e_t) -+# define LZO_SIZEOF_LZO_INT32E_T 4 -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32e_t) == 4) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32e_t) == LZO_SIZEOF_LZO_INT32E_T) -+#endif -+#if !defined(lzo_int64e_t) -+#if (LZO_SIZEOF___INT64 == 8) -+# if (LZO_CC_BORLANDC) && !(LZO_CFG_TYPE_PREFER___INT64) -+# define LZO_CFG_TYPE_PREFER___INT64 1 -+# endif -+#endif -+#if (LZO_SIZEOF_INT == 8) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG) -+# define lzo_int64e_t int -+# define lzo_uint64e_t unsigned int -+# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_INT -+#elif (LZO_SIZEOF_LONG == 8) -+# define lzo_int64e_t long int -+# define lzo_uint64e_t unsigned long int -+# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_LONG -+#elif (LZO_SIZEOF_LONG_LONG == 8) && !(LZO_CFG_TYPE_PREFER___INT64) -+# define lzo_int64e_t lzo_llong_t -+# define lzo_uint64e_t lzo_ullong_t -+# if (LZO_CC_BORLANDC) -+# define LZO_INT64_C(c) ((c) + 0ll) -+# define LZO_UINT64_C(c) ((c) + 0ull) -+# elif 0 -+# define LZO_INT64_C(c) (__lzo_gnuc_extension__ (c##LL)) -+# define LZO_UINT64_C(c) (__lzo_gnuc_extension__ (c##ULL)) -+# else -+# define LZO_INT64_C(c) (c##LL) -+# define LZO_UINT64_C(c) (c##ULL) -+# endif -+# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_LONG_LONG -+#elif (LZO_SIZEOF___INT64 == 8) -+# define lzo_int64e_t __int64 -+# define lzo_uint64e_t unsigned __int64 -+# if (LZO_CC_BORLANDC) -+# define LZO_INT64_C(c) ((c) + 0i64) -+# define LZO_UINT64_C(c) ((c) + 0ui64) -+# else -+# define LZO_INT64_C(c) (c##i64) -+# define LZO_UINT64_C(c) (c##ui64) -+# endif -+# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF___INT64 -+#else -+#endif -+#endif -+#if defined(lzo_int64e_t) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64e_t) == 8) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64e_t) == LZO_SIZEOF_LZO_INT64E_T) -+#endif -+#if !defined(lzo_int32l_t) -+#if defined(lzo_int32e_t) -+# define lzo_int32l_t lzo_int32e_t -+# define lzo_uint32l_t lzo_uint32e_t -+# define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_LZO_INT32E_T -+#elif (LZO_SIZEOF_INT >= 4) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG) -+# define lzo_int32l_t int -+# define lzo_uint32l_t unsigned int -+# define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_INT -+#elif (LZO_SIZEOF_LONG >= 4) -+# define lzo_int32l_t long int -+# define lzo_uint32l_t unsigned long int -+# define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_LONG -+#else -+# error "lzo_int32l_t" -+#endif -+#endif -+#if 1 -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32l_t) >= 4) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32l_t) == LZO_SIZEOF_LZO_INT32L_T) -+#endif -+#if !defined(lzo_int64l_t) -+#if defined(lzo_int64e_t) -+# define lzo_int64l_t lzo_int64e_t -+# define lzo_uint64l_t lzo_uint64e_t -+# define LZO_SIZEOF_LZO_INT64L_T LZO_SIZEOF_LZO_INT64E_T -+#else -+#endif -+#endif -+#if defined(lzo_int64l_t) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64l_t) >= 8) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64l_t) == LZO_SIZEOF_LZO_INT64L_T) -+#endif -+#if !defined(lzo_int32f_t) -+#if (LZO_SIZEOF_SIZE_T >= 8) -+# define lzo_int32f_t lzo_int64l_t -+# define lzo_uint32f_t lzo_uint64l_t -+# define LZO_SIZEOF_LZO_INT32F_T LZO_SIZEOF_LZO_INT64L_T -+#else -+# define lzo_int32f_t lzo_int32l_t -+# define lzo_uint32f_t lzo_uint32l_t -+# define LZO_SIZEOF_LZO_INT32F_T LZO_SIZEOF_LZO_INT32L_T -+#endif -+#endif -+#if 1 -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32f_t) >= 4) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32f_t) == LZO_SIZEOF_LZO_INT32F_T) -+#endif -+#if !defined(lzo_int64f_t) -+#if defined(lzo_int64l_t) -+# define lzo_int64f_t lzo_int64l_t -+# define lzo_uint64f_t lzo_uint64l_t -+# define LZO_SIZEOF_LZO_INT64F_T LZO_SIZEOF_LZO_INT64L_T -+#else -+#endif -+#endif -+#if defined(lzo_int64f_t) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64f_t) >= 8) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64f_t) == LZO_SIZEOF_LZO_INT64F_T) -+#endif -+#if !defined(lzo_intptr_t) -+#if 1 && (LZO_OS_OS400 && (LZO_SIZEOF_VOID_P == 16)) -+# define __LZO_INTPTR_T_IS_POINTER 1 -+ typedef char* lzo_intptr_t; -+ typedef char* lzo_uintptr_t; -+# define lzo_intptr_t lzo_intptr_t -+# define lzo_uintptr_t lzo_uintptr_t -+# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_VOID_P -+#elif (LZO_CC_MSC && (_MSC_VER >= 1300) && (LZO_SIZEOF_VOID_P == 4) && (LZO_SIZEOF_INT == 4)) -+ typedef __w64 int lzo_intptr_t; -+ typedef __w64 unsigned int lzo_uintptr_t; -+# define lzo_intptr_t lzo_intptr_t -+# define lzo_uintptr_t lzo_uintptr_t -+# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_INT -+#elif (LZO_SIZEOF_SHORT == LZO_SIZEOF_VOID_P) && (LZO_SIZEOF_INT > LZO_SIZEOF_VOID_P) -+# define lzo_intptr_t short -+# define lzo_uintptr_t unsigned short -+# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_SHORT -+#elif (LZO_SIZEOF_INT >= LZO_SIZEOF_VOID_P) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG) -+# define lzo_intptr_t int -+# define lzo_uintptr_t unsigned int -+# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_INT -+#elif (LZO_SIZEOF_LONG >= LZO_SIZEOF_VOID_P) -+# define lzo_intptr_t long -+# define lzo_uintptr_t unsigned long -+# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_LONG -+#elif (LZO_SIZEOF_LZO_INT64L_T >= LZO_SIZEOF_VOID_P) -+# define lzo_intptr_t lzo_int64l_t -+# define lzo_uintptr_t lzo_uint64l_t -+# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_LZO_INT64L_T -+#else -+# error "lzo_intptr_t" -+#endif -+#endif -+#if 1 -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_intptr_t) >= sizeof(void *)) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_intptr_t) == sizeof(lzo_uintptr_t)) -+#endif -+#if !defined(lzo_word_t) -+#if defined(LZO_WORDSIZE) && (LZO_WORDSIZE+0 > 0) -+#if (LZO_WORDSIZE == LZO_SIZEOF_LZO_INTPTR_T) && !(__LZO_INTPTR_T_IS_POINTER) -+# define lzo_word_t lzo_uintptr_t -+# define lzo_sword_t lzo_intptr_t -+# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INTPTR_T -+#elif (LZO_WORDSIZE == LZO_SIZEOF_LONG) -+# define lzo_word_t unsigned long -+# define lzo_sword_t long -+# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LONG -+#elif (LZO_WORDSIZE == LZO_SIZEOF_INT) -+# define lzo_word_t unsigned int -+# define lzo_sword_t int -+# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_INT -+#elif (LZO_WORDSIZE == LZO_SIZEOF_SHORT) -+# define lzo_word_t unsigned short -+# define lzo_sword_t short -+# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_SHORT -+#elif (LZO_WORDSIZE == 1) -+# define lzo_word_t unsigned char -+# define lzo_sword_t signed char -+# define LZO_SIZEOF_LZO_WORD_T 1 -+#elif (LZO_WORDSIZE == LZO_SIZEOF_LZO_INT64L_T) -+# define lzo_word_t lzo_uint64l_t -+# define lzo_sword_t lzo_int64l_t -+# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INT64L_T -+#elif (LZO_ARCH_SPU) && (LZO_CC_GNUC) -+#if 0 -+ typedef unsigned lzo_word_t __attribute__((__mode__(__V16QI__))); -+ typedef int lzo_sword_t __attribute__((__mode__(__V16QI__))); -+# define lzo_word_t lzo_word_t -+# define lzo_sword_t lzo_sword_t -+# define LZO_SIZEOF_LZO_WORD_T 16 -+#endif -+#else -+# error "lzo_word_t" -+#endif -+#endif -+#endif -+#if 1 && defined(lzo_word_t) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_word_t) == LZO_WORDSIZE) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_sword_t) == LZO_WORDSIZE) -+#endif -+#if 1 -+#define lzo_int8_t signed char -+#define lzo_uint8_t unsigned char -+#define LZO_SIZEOF_LZO_INT8_T 1 -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == 1) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == sizeof(lzo_uint8_t)) -+#endif -+#if defined(lzo_int16e_t) -+#define lzo_int16_t lzo_int16e_t -+#define lzo_uint16_t lzo_uint16e_t -+#define LZO_SIZEOF_LZO_INT16_T LZO_SIZEOF_LZO_INT16E_T -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == 2) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == sizeof(lzo_uint16_t)) -+#endif -+#if defined(lzo_int32e_t) -+#define lzo_int32_t lzo_int32e_t -+#define lzo_uint32_t lzo_uint32e_t -+#define LZO_SIZEOF_LZO_INT32_T LZO_SIZEOF_LZO_INT32E_T -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == 4) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == sizeof(lzo_uint32_t)) -+#endif -+#if defined(lzo_int64e_t) -+#define lzo_int64_t lzo_int64e_t -+#define lzo_uint64_t lzo_uint64e_t -+#define LZO_SIZEOF_LZO_INT64_T LZO_SIZEOF_LZO_INT64E_T -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == 8) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == sizeof(lzo_uint64_t)) -+#endif -+#if 1 -+#define lzo_int_least32_t lzo_int32l_t -+#define lzo_uint_least32_t lzo_uint32l_t -+#define LZO_SIZEOF_LZO_INT_LEAST32_T LZO_SIZEOF_LZO_INT32L_T -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) >= 4) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) == sizeof(lzo_uint_least32_t)) -+#endif -+#if defined(lzo_int64l_t) -+#define lzo_int_least64_t lzo_int64l_t -+#define lzo_uint_least64_t lzo_uint64l_t -+#define LZO_SIZEOF_LZO_INT_LEAST64_T LZO_SIZEOF_LZO_INT64L_T -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) >= 8) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) == sizeof(lzo_uint_least64_t)) -+#endif -+#if 1 -+#define lzo_int_fast32_t lzo_int32f_t -+#define lzo_uint_fast32_t lzo_uint32f_t -+#define LZO_SIZEOF_LZO_INT_FAST32_T LZO_SIZEOF_LZO_INT32F_T -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) >= 4) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) == sizeof(lzo_uint_fast32_t)) -+#endif -+#if defined(lzo_int64f_t) -+#define lzo_int_fast64_t lzo_int64f_t -+#define lzo_uint_fast64_t lzo_uint64f_t -+#define LZO_SIZEOF_LZO_INT_FAST64_T LZO_SIZEOF_LZO_INT64F_T -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) >= 8) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) == sizeof(lzo_uint_fast64_t)) -+#endif -+#if !defined(LZO_INT16_C) -+# if (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_INT >= 2) -+# define LZO_INT16_C(c) ((c) + 0) -+# define LZO_UINT16_C(c) ((c) + 0U) -+# elif (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_LONG >= 2) -+# define LZO_INT16_C(c) ((c) + 0L) -+# define LZO_UINT16_C(c) ((c) + 0UL) -+# elif (LZO_SIZEOF_INT >= 2) -+# define LZO_INT16_C(c) (c) -+# define LZO_UINT16_C(c) (c##U) -+# elif (LZO_SIZEOF_LONG >= 2) -+# define LZO_INT16_C(c) (c##L) -+# define LZO_UINT16_C(c) (c##UL) -+# else -+# error "LZO_INT16_C" -+# endif -+#endif -+#if !defined(LZO_INT32_C) -+# if (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_INT >= 4) -+# define LZO_INT32_C(c) ((c) + 0) -+# define LZO_UINT32_C(c) ((c) + 0U) -+# elif (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_LONG >= 4) -+# define LZO_INT32_C(c) ((c) + 0L) -+# define LZO_UINT32_C(c) ((c) + 0UL) -+# elif (LZO_SIZEOF_INT >= 4) -+# define LZO_INT32_C(c) (c) -+# define LZO_UINT32_C(c) (c##U) -+# elif (LZO_SIZEOF_LONG >= 4) -+# define LZO_INT32_C(c) (c##L) -+# define LZO_UINT32_C(c) (c##UL) -+# elif (LZO_SIZEOF_LONG_LONG >= 4) -+# define LZO_INT32_C(c) (c##LL) -+# define LZO_UINT32_C(c) (c##ULL) -+# else -+# error "LZO_INT32_C" -+# endif -+#endif -+#if !defined(LZO_INT64_C) && defined(lzo_int64l_t) -+# if (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_INT >= 8) -+# define LZO_INT64_C(c) ((c) + 0) -+# define LZO_UINT64_C(c) ((c) + 0U) -+# elif (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_LONG >= 8) -+# define LZO_INT64_C(c) ((c) + 0L) -+# define LZO_UINT64_C(c) ((c) + 0UL) -+# elif (LZO_SIZEOF_INT >= 8) -+# define LZO_INT64_C(c) (c) -+# define LZO_UINT64_C(c) (c##U) -+# elif (LZO_SIZEOF_LONG >= 8) -+# define LZO_INT64_C(c) (c##L) -+# define LZO_UINT64_C(c) (c##UL) -+# else -+# error "LZO_INT64_C" -+# endif -+#endif -+#endif - - #endif /* already included */ - --/* vim:set ts=4 et: */ -+/* vim:set ts=4 sw=4 et: */ -diff --git a/grub-core/lib/minilzo/minilzo.c b/grub-core/lib/minilzo/minilzo.c -index 25a1f68..ab2be5f 100644 ---- a/grub-core/lib/minilzo/minilzo.c -+++ b/grub-core/lib/minilzo/minilzo.c -@@ -2,22 +2,7 @@ - - This file is part of the LZO real-time data compression library. - -- Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer -+ Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer - All Rights Reserved. - - The LZO library is free software; you can redistribute it and/or -@@ -67,12 +52,6 @@ - #if defined(__CYGWIN32__) && !defined(__CYGWIN__) - # define __CYGWIN__ __CYGWIN32__ - #endif --#if defined(__IBMCPP__) && !defined(__IBMC__) --# define __IBMC__ __IBMCPP__ --#endif --#if defined(__ICL) && defined(_WIN32) && !defined(__INTEL_COMPILER) --# define __INTEL_COMPILER __ICL --#endif - #if 1 && defined(__INTERIX) && defined(__GNUC__) && !defined(_ALL_SOURCE) - # define _ALL_SOURCE 1 - #endif -@@ -81,19 +60,30 @@ - # define __LONG_MAX__ 9223372036854775807L - # endif - #endif --#if defined(__INTEL_COMPILER) && defined(__linux__) -+#if !defined(LZO_CFG_NO_DISABLE_WUNDEF) -+#if defined(__ARMCC_VERSION) -+# pragma diag_suppress 193 -+#elif defined(__clang__) && defined(__clang_minor__) -+# pragma clang diagnostic ignored "-Wundef" -+#elif defined(__INTEL_COMPILER) - # pragma warning(disable: 193) --#endif --#if defined(__KEIL__) && defined(__C166__) --# pragma warning disable = 322 --#elif 0 && defined(__C251__) -+#elif defined(__KEIL__) && defined(__C166__) - # pragma warning disable = 322 --#endif --#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && !defined(__MWERKS__) --# if (_MSC_VER >= 1300) -+#elif defined(__GNUC__) && defined(__GNUC_MINOR__) && !defined(__PATHSCALE__) -+# if ((__GNUC__-0) >= 5 || ((__GNUC__-0) == 4 && (__GNUC_MINOR__-0) >= 2)) -+# pragma GCC diagnostic ignored "-Wundef" -+# endif -+#elif defined(_MSC_VER) && !defined(__clang__) && !defined(__INTEL_COMPILER) && !defined(__MWERKS__) -+# if ((_MSC_VER-0) >= 1300) - # pragma warning(disable: 4668) - # endif - #endif -+#endif -+#if 0 && defined(__POCC__) && defined(_WIN32) -+# if (__POCC__ >= 400) -+# pragma warn(disable: 2216) -+# endif -+#endif - #if 0 && defined(__WATCOMC__) - # if (__WATCOMC__ >= 1050) && (__WATCOMC__ < 1060) - # pragma warning 203 9 -@@ -102,13 +92,29 @@ - #if defined(__BORLANDC__) && defined(__MSDOS__) && !defined(__FLAT__) - # pragma option -h - #endif -+#if !(LZO_CFG_NO_DISABLE_WCRTNONSTDC) -+#ifndef _CRT_NONSTDC_NO_DEPRECATE -+#define _CRT_NONSTDC_NO_DEPRECATE 1 -+#endif -+#ifndef _CRT_NONSTDC_NO_WARNINGS -+#define _CRT_NONSTDC_NO_WARNINGS 1 -+#endif -+#ifndef _CRT_SECURE_NO_DEPRECATE -+#define _CRT_SECURE_NO_DEPRECATE 1 -+#endif -+#ifndef _CRT_SECURE_NO_WARNINGS -+#define _CRT_SECURE_NO_WARNINGS 1 -+#endif -+#endif - #if 0 --#define LZO_0xffffL 0xfffful --#define LZO_0xffffffffL 0xfffffffful -+#define LZO_0xffffUL 0xfffful -+#define LZO_0xffffffffUL 0xfffffffful - #else --#define LZO_0xffffL 65535ul --#define LZO_0xffffffffL 4294967295ul -+#define LZO_0xffffUL 65535ul -+#define LZO_0xffffffffUL 4294967295ul - #endif -+#define LZO_0xffffL LZO_0xffffUL -+#define LZO_0xffffffffL LZO_0xffffffffUL - #if (LZO_0xffffL == LZO_0xffffffffL) - # error "your preprocessor is broken 1" - #endif -@@ -123,6 +129,13 @@ - # error "your preprocessor is broken 4" - #endif - #endif -+#if defined(__COUNTER__) -+# ifndef LZO_CFG_USE_COUNTER -+# define LZO_CFG_USE_COUNTER 1 -+# endif -+#else -+# undef LZO_CFG_USE_COUNTER -+#endif - #if (UINT_MAX == LZO_0xffffL) - #if defined(__ZTC__) && defined(__I86__) && !defined(__OS2__) - # if !defined(MSDOS) -@@ -253,14 +266,31 @@ - #endif - #define LZO_PP_STRINGIZE(x) #x - #define LZO_PP_MACRO_EXPAND(x) LZO_PP_STRINGIZE(x) -+#define LZO_PP_CONCAT0() /*empty*/ -+#define LZO_PP_CONCAT1(a) a - #define LZO_PP_CONCAT2(a,b) a ## b - #define LZO_PP_CONCAT3(a,b,c) a ## b ## c - #define LZO_PP_CONCAT4(a,b,c,d) a ## b ## c ## d - #define LZO_PP_CONCAT5(a,b,c,d,e) a ## b ## c ## d ## e -+#define LZO_PP_CONCAT6(a,b,c,d,e,f) a ## b ## c ## d ## e ## f -+#define LZO_PP_CONCAT7(a,b,c,d,e,f,g) a ## b ## c ## d ## e ## f ## g -+#define LZO_PP_ECONCAT0() LZO_PP_CONCAT0() -+#define LZO_PP_ECONCAT1(a) LZO_PP_CONCAT1(a) - #define LZO_PP_ECONCAT2(a,b) LZO_PP_CONCAT2(a,b) - #define LZO_PP_ECONCAT3(a,b,c) LZO_PP_CONCAT3(a,b,c) - #define LZO_PP_ECONCAT4(a,b,c,d) LZO_PP_CONCAT4(a,b,c,d) - #define LZO_PP_ECONCAT5(a,b,c,d,e) LZO_PP_CONCAT5(a,b,c,d,e) -+#define LZO_PP_ECONCAT6(a,b,c,d,e,f) LZO_PP_CONCAT6(a,b,c,d,e,f) -+#define LZO_PP_ECONCAT7(a,b,c,d,e,f,g) LZO_PP_CONCAT7(a,b,c,d,e,f,g) -+#define LZO_PP_EMPTY /*empty*/ -+#define LZO_PP_EMPTY0() /*empty*/ -+#define LZO_PP_EMPTY1(a) /*empty*/ -+#define LZO_PP_EMPTY2(a,b) /*empty*/ -+#define LZO_PP_EMPTY3(a,b,c) /*empty*/ -+#define LZO_PP_EMPTY4(a,b,c,d) /*empty*/ -+#define LZO_PP_EMPTY5(a,b,c,d,e) /*empty*/ -+#define LZO_PP_EMPTY6(a,b,c,d,e,f) /*empty*/ -+#define LZO_PP_EMPTY7(a,b,c,d,e,f,g) /*empty*/ - #if 1 - #define LZO_CPP_STRINGIZE(x) #x - #define LZO_CPP_MACRO_EXPAND(x) LZO_CPP_STRINGIZE(x) -@@ -268,12 +298,16 @@ - #define LZO_CPP_CONCAT3(a,b,c) a ## b ## c - #define LZO_CPP_CONCAT4(a,b,c,d) a ## b ## c ## d - #define LZO_CPP_CONCAT5(a,b,c,d,e) a ## b ## c ## d ## e -+#define LZO_CPP_CONCAT6(a,b,c,d,e,f) a ## b ## c ## d ## e ## f -+#define LZO_CPP_CONCAT7(a,b,c,d,e,f,g) a ## b ## c ## d ## e ## f ## g - #define LZO_CPP_ECONCAT2(a,b) LZO_CPP_CONCAT2(a,b) - #define LZO_CPP_ECONCAT3(a,b,c) LZO_CPP_CONCAT3(a,b,c) - #define LZO_CPP_ECONCAT4(a,b,c,d) LZO_CPP_CONCAT4(a,b,c,d) - #define LZO_CPP_ECONCAT5(a,b,c,d,e) LZO_CPP_CONCAT5(a,b,c,d,e) -+#define LZO_CPP_ECONCAT6(a,b,c,d,e,f) LZO_CPP_CONCAT6(a,b,c,d,e,f) -+#define LZO_CPP_ECONCAT7(a,b,c,d,e,f,g) LZO_CPP_CONCAT7(a,b,c,d,e,f,g) - #endif --#define __LZO_MASK_GEN(o,b) (((((o) << ((b)-1)) - (o)) << 1) + (o)) -+#define __LZO_MASK_GEN(o,b) (((((o) << ((b)-!!(b))) - (o)) << 1) + (o)*!!(b)) - #if 1 && defined(__cplusplus) - # if !defined(__STDC_CONSTANT_MACROS) - # define __STDC_CONSTANT_MACROS 1 -@@ -283,9 +317,13 @@ - # endif - #endif - #if defined(__cplusplus) --# define LZO_EXTERN_C extern "C" -+# define LZO_EXTERN_C extern "C" -+# define LZO_EXTERN_C_BEGIN extern "C" { -+# define LZO_EXTERN_C_END } - #else --# define LZO_EXTERN_C extern -+# define LZO_EXTERN_C extern -+# define LZO_EXTERN_C_BEGIN /*empty*/ -+# define LZO_EXTERN_C_END /*empty*/ - #endif - #if !defined(__LZO_OS_OVERRIDE) - #if (LZO_OS_FREESTANDING) -@@ -386,12 +424,12 @@ - #elif defined(__VMS) - # define LZO_OS_VMS 1 - # define LZO_INFO_OS "vms" --#elif ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__)) -+#elif (defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__) - # define LZO_OS_CONSOLE 1 - # define LZO_OS_CONSOLE_PS2 1 - # define LZO_INFO_OS "console" - # define LZO_INFO_OS_CONSOLE "ps2" --#elif (defined(__mips__) && defined(__psp__)) -+#elif defined(__mips__) && defined(__psp__) - # define LZO_OS_CONSOLE 1 - # define LZO_OS_CONSOLE_PSP 1 - # define LZO_INFO_OS "console" -@@ -419,9 +457,18 @@ - # elif defined(__linux__) || defined(__linux) || defined(__LINUX__) - # define LZO_OS_POSIX_LINUX 1 - # define LZO_INFO_OS_POSIX "linux" --# elif defined(__APPLE__) || defined(__MACOS__) --# define LZO_OS_POSIX_MACOSX 1 --# define LZO_INFO_OS_POSIX "macosx" -+# elif defined(__APPLE__) && defined(__MACH__) -+# if ((__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__-0) >= 20000) -+# define LZO_OS_POSIX_DARWIN 1040 -+# define LZO_INFO_OS_POSIX "darwin_iphone" -+# elif ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__-0) >= 1040) -+# define LZO_OS_POSIX_DARWIN __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ -+# define LZO_INFO_OS_POSIX "darwin" -+# else -+# define LZO_OS_POSIX_DARWIN 1 -+# define LZO_INFO_OS_POSIX "darwin" -+# endif -+# define LZO_OS_POSIX_MACOSX LZO_OS_POSIX_DARWIN - # elif defined(__minix__) || defined(__minix) - # define LZO_OS_POSIX_MINIX 1 - # define LZO_INFO_OS_POSIX "minix" -@@ -456,18 +503,18 @@ - #endif - #if (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16) - # if (UINT_MAX != LZO_0xffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - # if (ULONG_MAX != LZO_0xffffffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - #endif - #if (LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_WIN32 || LZO_OS_WIN64) - # if (UINT_MAX != LZO_0xffffffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - # if (ULONG_MAX != LZO_0xffffffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - #endif - #if defined(CIL) && defined(_GNUCC) && defined(__GNUC__) -@@ -483,59 +530,65 @@ - # define LZO_INFO_CC "sdcc" - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(SDCC) - #elif defined(__PATHSCALE__) && defined(__PATHCC_PATCHLEVEL__) --# define LZO_CC_PATHSCALE (__PATHCC__ * 0x10000L + __PATHCC_MINOR__ * 0x100 + __PATHCC_PATCHLEVEL__) -+# define LZO_CC_PATHSCALE (__PATHCC__ * 0x10000L + (__PATHCC_MINOR__-0) * 0x100 + (__PATHCC_PATCHLEVEL__-0)) - # define LZO_INFO_CC "Pathscale C" - # define LZO_INFO_CCVER __PATHSCALE__ --#elif defined(__INTEL_COMPILER) --# define LZO_CC_INTELC 1 -+# if defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) -+# define LZO_CC_PATHSCALE_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) -+# endif -+#elif defined(__INTEL_COMPILER) && ((__INTEL_COMPILER-0) > 0) -+# define LZO_CC_INTELC __INTEL_COMPILER - # define LZO_INFO_CC "Intel C" - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__INTEL_COMPILER) --# if defined(_WIN32) || defined(_WIN64) --# define LZO_CC_SYNTAX_MSC 1 --# else --# define LZO_CC_SYNTAX_GNUC 1 -+# if defined(_MSC_VER) && ((_MSC_VER-0) > 0) -+# define LZO_CC_INTELC_MSC _MSC_VER -+# elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) -+# define LZO_CC_INTELC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) - # endif - #elif defined(__POCC__) && defined(_WIN32) - # define LZO_CC_PELLESC 1 - # define LZO_INFO_CC "Pelles C" - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__POCC__) --#elif defined(__clang__) && defined(__llvm__) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) -+#elif defined(__ARMCC_VERSION) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) - # if defined(__GNUC_PATCHLEVEL__) --# define LZO_CC_CLANG_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__) -+# define LZO_CC_ARMCC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) - # else --# define LZO_CC_CLANG_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100) -+# define LZO_CC_ARMCC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100) - # endif -+# define LZO_CC_ARMCC __ARMCC_VERSION -+# define LZO_INFO_CC "ARM C Compiler" -+# define LZO_INFO_CCVER __VERSION__ -+#elif defined(__clang__) && defined(__llvm__) && defined(__VERSION__) - # if defined(__clang_major__) && defined(__clang_minor__) && defined(__clang_patchlevel__) --# define LZO_CC_CLANG_CLANG (__clang_major__ * 0x10000L + __clang_minor__ * 0x100 + __clang_patchlevel__) -+# define LZO_CC_CLANG (__clang_major__ * 0x10000L + (__clang_minor__-0) * 0x100 + (__clang_patchlevel__-0)) - # else --# define LZO_CC_CLANG_CLANG 0x010000L -+# define LZO_CC_CLANG 0x010000L -+# endif -+# if defined(_MSC_VER) && ((_MSC_VER-0) > 0) -+# define LZO_CC_CLANG_MSC _MSC_VER -+# elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) -+# define LZO_CC_CLANG_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) - # endif --# define LZO_CC_CLANG LZO_CC_CLANG_GNUC - # define LZO_INFO_CC "clang" - # define LZO_INFO_CCVER __VERSION__ - #elif defined(__llvm__) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) - # if defined(__GNUC_PATCHLEVEL__) --# define LZO_CC_LLVM_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__) -+# define LZO_CC_LLVM_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) - # else --# define LZO_CC_LLVM_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100) -+# define LZO_CC_LLVM_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100) - # endif - # define LZO_CC_LLVM LZO_CC_LLVM_GNUC - # define LZO_INFO_CC "llvm-gcc" - # define LZO_INFO_CCVER __VERSION__ --#elif defined(__GNUC__) && defined(__VERSION__) --# if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__) --# define LZO_CC_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__) --# elif defined(__GNUC_MINOR__) --# define LZO_CC_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100) --# else --# define LZO_CC_GNUC (__GNUC__ * 0x10000L) --# endif --# define LZO_INFO_CC "gcc" --# define LZO_INFO_CCVER __VERSION__ - #elif defined(__ACK__) && defined(_ACK) - # define LZO_CC_ACK 1 - # define LZO_INFO_CC "Amsterdam Compiler Kit C" - # define LZO_INFO_CCVER "unknown" -+#elif defined(__ARMCC_VERSION) && !defined(__GNUC__) -+# define LZO_CC_ARMCC __ARMCC_VERSION -+# define LZO_CC_ARMCC_ARMCC __ARMCC_VERSION -+# define LZO_INFO_CC "ARM C Compiler" -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__ARMCC_VERSION) - #elif defined(__AZTEC_C__) - # define LZO_CC_AZTECC 1 - # define LZO_INFO_CC "Aztec C" -@@ -560,10 +613,23 @@ - # define LZO_CC_DECC 1 - # define LZO_INFO_CC "DEC C" - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__DECC) -+#elif (defined(__ghs) || defined(__ghs__)) && defined(__GHS_VERSION_NUMBER) && ((__GHS_VERSION_NUMBER-0) > 0) -+# define LZO_CC_GHS 1 -+# define LZO_INFO_CC "Green Hills C" -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__GHS_VERSION_NUMBER) -+# if defined(_MSC_VER) && ((_MSC_VER-0) > 0) -+# define LZO_CC_GHS_MSC _MSC_VER -+# elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) -+# define LZO_CC_GHS_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) -+# endif - #elif defined(__HIGHC__) - # define LZO_CC_HIGHC 1 - # define LZO_INFO_CC "MetaWare High C" - # define LZO_INFO_CCVER "unknown" -+#elif defined(__HP_aCC) && ((__HP_aCC-0) > 0) -+# define LZO_CC_HPACC __HP_aCC -+# define LZO_INFO_CC "HP aCC" -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__HP_aCC) - #elif defined(__IAR_SYSTEMS_ICC__) - # define LZO_CC_IARC 1 - # define LZO_INFO_CC "IAR C" -@@ -572,10 +638,14 @@ - # else - # define LZO_INFO_CCVER "unknown" - # endif --#elif defined(__IBMC__) --# define LZO_CC_IBMC 1 -+#elif defined(__IBMC__) && ((__IBMC__-0) > 0) -+# define LZO_CC_IBMC __IBMC__ - # define LZO_INFO_CC "IBM C" - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__IBMC__) -+#elif defined(__IBMCPP__) && ((__IBMCPP__-0) > 0) -+# define LZO_CC_IBMC __IBMCPP__ -+# define LZO_INFO_CC "IBM C" -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__IBMCPP__) - #elif defined(__KEIL__) && defined(__C166__) - # define LZO_CC_KEILC 1 - # define LZO_INFO_CC "Keil C" -@@ -592,16 +662,8 @@ - # else - # define LZO_INFO_CCVER "unknown" - # endif --#elif defined(_MSC_VER) --# define LZO_CC_MSC 1 --# define LZO_INFO_CC "Microsoft C" --# if defined(_MSC_FULL_VER) --# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(_MSC_VER) "." LZO_PP_MACRO_EXPAND(_MSC_FULL_VER) --# else --# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(_MSC_VER) --# endif --#elif defined(__MWERKS__) --# define LZO_CC_MWERKS 1 -+#elif defined(__MWERKS__) && ((__MWERKS__-0) > 0) -+# define LZO_CC_MWERKS __MWERKS__ - # define LZO_INFO_CC "Metrowerks C" - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__MWERKS__) - #elif (defined(__NDPC__) || defined(__NDPX__)) && defined(__i386) -@@ -612,6 +674,15 @@ - # define LZO_CC_PACIFICC 1 - # define LZO_INFO_CC "Pacific C" - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__PACIFIC__) -+#elif defined(__PGI) && defined(__PGIC__) && defined(__PGIC_MINOR__) -+# if defined(__PGIC_PATCHLEVEL__) -+# define LZO_CC_PGI (__PGIC__ * 0x10000L + (__PGIC_MINOR__-0) * 0x100 + (__PGIC_PATCHLEVEL__-0)) -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__PGIC__) "." LZO_PP_MACRO_EXPAND(__PGIC_MINOR__) "." LZO_PP_MACRO_EXPAND(__PGIC_PATCHLEVEL__) -+# else -+# define LZO_CC_PGI (__PGIC__ * 0x10000L + (__PGIC_MINOR__-0) * 0x100) -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__PGIC__) "." LZO_PP_MACRO_EXPAND(__PGIC_MINOR__) ".0" -+# endif -+# define LZO_INFO_CC "Portland Group PGI C" - #elif defined(__PGI) && (defined(__linux__) || defined(__WIN32__)) - # define LZO_CC_PGI 1 - # define LZO_INFO_CC "Portland Group PGI C" -@@ -626,7 +697,7 @@ - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__SC__) - #elif defined(__SUNPRO_C) - # define LZO_INFO_CC "SunPro C" --# if ((__SUNPRO_C)+0 > 0) -+# if ((__SUNPRO_C-0) > 0) - # define LZO_CC_SUNPROC __SUNPRO_C - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__SUNPRO_C) - # else -@@ -635,7 +706,7 @@ - # endif - #elif defined(__SUNPRO_CC) - # define LZO_INFO_CC "SunPro C" --# if ((__SUNPRO_CC)+0 > 0) -+# if ((__SUNPRO_CC-0) > 0) - # define LZO_CC_SUNPROC __SUNPRO_CC - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__SUNPRO_CC) - # else -@@ -661,16 +732,46 @@ - #elif defined(__ZTC__) - # define LZO_CC_ZORTECHC 1 - # define LZO_INFO_CC "Zortech C" --# if (__ZTC__ == 0x310) -+# if ((__ZTC__-0) == 0x310) - # define LZO_INFO_CCVER "0x310" - # else - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__ZTC__) - # endif -+#elif defined(__GNUC__) && defined(__VERSION__) -+# if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__) -+# define LZO_CC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) -+# elif defined(__GNUC_MINOR__) -+# define LZO_CC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100) -+# else -+# define LZO_CC_GNUC (__GNUC__ * 0x10000L) -+# endif -+# define LZO_INFO_CC "gcc" -+# define LZO_INFO_CCVER __VERSION__ -+#elif defined(_MSC_VER) && ((_MSC_VER-0) > 0) -+# define LZO_CC_MSC _MSC_VER -+# define LZO_INFO_CC "Microsoft C" -+# if defined(_MSC_FULL_VER) -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(_MSC_VER) "." LZO_PP_MACRO_EXPAND(_MSC_FULL_VER) -+# else -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(_MSC_VER) -+# endif - #else - # define LZO_CC_UNKNOWN 1 - # define LZO_INFO_CC "unknown" - # define LZO_INFO_CCVER "unknown" - #endif -+#if (LZO_CC_GNUC) && defined(__OPEN64__) -+# if defined(__OPENCC__) && defined(__OPENCC_MINOR__) && defined(__OPENCC_PATCHLEVEL__) -+# define LZO_CC_OPEN64 (__OPENCC__ * 0x10000L + (__OPENCC_MINOR__-0) * 0x100 + (__OPENCC_PATCHLEVEL__-0)) -+# define LZO_CC_OPEN64_GNUC LZO_CC_GNUC -+# endif -+#endif -+#if (LZO_CC_GNUC) && defined(__PCC__) -+# if defined(__PCC__) && defined(__PCC_MINOR__) && defined(__PCC_MINORMINOR__) -+# define LZO_CC_PCC (__PCC__ * 0x10000L + (__PCC_MINOR__-0) * 0x100 + (__PCC_MINORMINOR__-0)) -+# define LZO_CC_PCC_GNUC LZO_CC_GNUC -+# endif -+#endif - #if 0 && (LZO_CC_MSC && (_MSC_VER >= 1200)) && !defined(_MSC_FULL_VER) - # error "LZO_CC_MSC: _MSC_FULL_VER is not defined" - #endif -@@ -688,8 +789,10 @@ - # define LZO_INFO_ARCH "generic" - #elif (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16) - # define LZO_ARCH_I086 1 --# define LZO_ARCH_IA16 1 - # define LZO_INFO_ARCH "i086" -+#elif defined(__aarch64__) -+# define LZO_ARCH_ARM64 1 -+# define LZO_INFO_ARCH "arm64" - #elif defined(__alpha__) || defined(__alpha) || defined(_M_ALPHA) - # define LZO_ARCH_ALPHA 1 - # define LZO_INFO_ARCH "alpha" -@@ -705,10 +808,10 @@ - # define LZO_INFO_ARCH "arm_thumb" - #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCARM__) - # define LZO_ARCH_ARM 1 --# if defined(__CPU_MODE__) && ((__CPU_MODE__)+0 == 1) -+# if defined(__CPU_MODE__) && ((__CPU_MODE__-0) == 1) - # define LZO_ARCH_ARM_THUMB 1 - # define LZO_INFO_ARCH "arm_thumb" --# elif defined(__CPU_MODE__) && ((__CPU_MODE__)+0 == 2) -+# elif defined(__CPU_MODE__) && ((__CPU_MODE__-0) == 2) - # define LZO_INFO_ARCH "arm" - # else - # define LZO_INFO_ARCH "arm" -@@ -826,53 +929,147 @@ - # error "FIXME - missing define for CPU architecture" - #endif - #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_WIN32) --# error "FIXME - missing WIN32 define for CPU architecture" -+# error "FIXME - missing LZO_OS_WIN32 define for CPU architecture" - #endif - #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_WIN64) --# error "FIXME - missing WIN64 define for CPU architecture" -+# error "FIXME - missing LZO_OS_WIN64 define for CPU architecture" - #endif - #if (LZO_OS_OS216 || LZO_OS_WIN16) - # define LZO_ARCH_I086PM 1 --# define LZO_ARCH_IA16PM 1 - #elif 1 && (LZO_OS_DOS16 && defined(BLX286)) - # define LZO_ARCH_I086PM 1 --# define LZO_ARCH_IA16PM 1 - #elif 1 && (LZO_OS_DOS16 && defined(DOSX286)) - # define LZO_ARCH_I086PM 1 --# define LZO_ARCH_IA16PM 1 - #elif 1 && (LZO_OS_DOS16 && LZO_CC_BORLANDC && defined(__DPMI16__)) - # define LZO_ARCH_I086PM 1 --# define LZO_ARCH_IA16PM 1 - #endif --#if (LZO_ARCH_ARM_THUMB) && !(LZO_ARCH_ARM) --# error "this should not happen" -+#if (LZO_ARCH_AMD64 && !LZO_ARCH_X64) -+# define LZO_ARCH_X64 1 -+#elif (!LZO_ARCH_AMD64 && LZO_ARCH_X64) && defined(__LZO_ARCH_OVERRIDE) -+# define LZO_ARCH_AMD64 1 -+#endif -+#if (LZO_ARCH_ARM64 && !LZO_ARCH_AARCH64) -+# define LZO_ARCH_AARCH64 1 -+#elif (!LZO_ARCH_ARM64 && LZO_ARCH_AARCH64) && defined(__LZO_ARCH_OVERRIDE) -+# define LZO_ARCH_ARM64 1 -+#endif -+#if (LZO_ARCH_I386 && !LZO_ARCH_X86) -+# define LZO_ARCH_X86 1 -+#elif (!LZO_ARCH_I386 && LZO_ARCH_X86) && defined(__LZO_ARCH_OVERRIDE) -+# define LZO_ARCH_I386 1 -+#endif -+#if (LZO_ARCH_AMD64 && !LZO_ARCH_X64) || (!LZO_ARCH_AMD64 && LZO_ARCH_X64) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ARCH_ARM64 && !LZO_ARCH_AARCH64) || (!LZO_ARCH_ARM64 && LZO_ARCH_AARCH64) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ARCH_I386 && !LZO_ARCH_X86) || (!LZO_ARCH_I386 && LZO_ARCH_X86) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ARCH_ARM_THUMB && !LZO_ARCH_ARM) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ARCH_ARM_THUMB1 && !LZO_ARCH_ARM_THUMB) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ARCH_ARM_THUMB2 && !LZO_ARCH_ARM_THUMB) -+# error "unexpected configuration - check your compiler defines" - #endif --#if (LZO_ARCH_I086PM) && !(LZO_ARCH_I086) --# error "this should not happen" -+#if (LZO_ARCH_ARM_THUMB1 && LZO_ARCH_ARM_THUMB2) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ARCH_I086PM && !LZO_ARCH_I086) -+# error "unexpected configuration - check your compiler defines" - #endif - #if (LZO_ARCH_I086) - # if (UINT_MAX != LZO_0xffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - # if (ULONG_MAX != LZO_0xffffffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - #endif - #if (LZO_ARCH_I386) - # if (UINT_MAX != LZO_0xffffL) && defined(__i386_int16__) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - # if (UINT_MAX != LZO_0xffffffffL) && !defined(__i386_int16__) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - # if (ULONG_MAX != LZO_0xffffffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" -+# endif -+#endif -+#if (LZO_ARCH_AMD64 || LZO_ARCH_I386) -+# if !defined(LZO_TARGET_FEATURE_SSE2) -+# if defined(__SSE2__) -+# define LZO_TARGET_FEATURE_SSE2 1 -+# elif defined(_MSC_VER) && ((defined(_M_IX86_FP) && ((_M_IX86_FP)+0 >= 2)) || defined(_M_AMD64)) -+# define LZO_TARGET_FEATURE_SSE2 1 -+# endif -+# endif -+# if !defined(LZO_TARGET_FEATURE_SSSE3) -+# if (LZO_TARGET_FEATURE_SSE2) -+# if defined(__SSSE3__) -+# define LZO_TARGET_FEATURE_SSSE3 1 -+# elif defined(_MSC_VER) && defined(__AVX__) -+# define LZO_TARGET_FEATURE_SSSE3 1 -+# endif -+# endif -+# endif -+# if !defined(LZO_TARGET_FEATURE_SSE4_2) -+# if (LZO_TARGET_FEATURE_SSSE3) -+# if defined(__SSE4_2__) -+# define LZO_TARGET_FEATURE_SSE4_2 1 -+# endif -+# endif -+# endif -+# if !defined(LZO_TARGET_FEATURE_AVX) -+# if (LZO_TARGET_FEATURE_SSSE3) -+# if defined(__AVX__) -+# define LZO_TARGET_FEATURE_AVX 1 -+# endif -+# endif -+# endif -+# if !defined(LZO_TARGET_FEATURE_AVX2) -+# if (LZO_TARGET_FEATURE_AVX) -+# if defined(__AVX2__) -+# define LZO_TARGET_FEATURE_AVX2 1 -+# endif -+# endif -+# endif -+#endif -+#if (LZO_TARGET_FEATURE_SSSE3 && !(LZO_TARGET_FEATURE_SSE2)) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_TARGET_FEATURE_SSE4_2 && !(LZO_TARGET_FEATURE_SSSE3)) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_TARGET_FEATURE_AVX && !(LZO_TARGET_FEATURE_SSSE3)) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_TARGET_FEATURE_AVX2 && !(LZO_TARGET_FEATURE_AVX)) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ARCH_ARM) -+# if !defined(LZO_TARGET_FEATURE_NEON) -+# if defined(__ARM_NEON__) -+# define LZO_TARGET_FEATURE_NEON 1 -+# endif -+# endif -+#elif (LZO_ARCH_ARM64) -+# if !defined(LZO_TARGET_FEATURE_NEON) -+# if 1 -+# define LZO_TARGET_FEATURE_NEON 1 -+# endif - # endif - #endif --#if !defined(__LZO_MM_OVERRIDE) -+#if 0 -+#elif !defined(__LZO_MM_OVERRIDE) - #if (LZO_ARCH_I086) - #if (UINT_MAX != LZO_0xffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - #endif - #if defined(__TINY__) || defined(M_I86TM) || defined(_M_I86TM) - # define LZO_MM_TINY 1 -@@ -899,7 +1096,7 @@ - #elif (LZO_CC_ZORTECHC && defined(__VCM__)) - # define LZO_MM_LARGE 1 - #else --# error "unknown memory model" -+# error "unknown LZO_ARCH_I086 memory model" - #endif - #if (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16) - #define LZO_HAVE_MM_HUGE_PTR 1 -@@ -922,10 +1119,10 @@ - #endif - #if (LZO_ARCH_I086PM) && !(LZO_HAVE_MM_HUGE_PTR) - # if (LZO_OS_DOS16) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # elif (LZO_CC_ZORTECHC) - # else --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - #endif - #ifdef __cplusplus -@@ -957,7 +1154,7 @@ extern "C" { - #endif - #elif (LZO_ARCH_C166) - #if !defined(__MODEL__) --# error "FIXME - C166 __MODEL__" -+# error "FIXME - LZO_ARCH_C166 __MODEL__" - #elif ((__MODEL__) == 0) - # define LZO_MM_SMALL 1 - #elif ((__MODEL__) == 1) -@@ -971,11 +1168,11 @@ extern "C" { - #elif ((__MODEL__) == 5) - # define LZO_MM_XSMALL 1 - #else --# error "FIXME - C166 __MODEL__" -+# error "FIXME - LZO_ARCH_C166 __MODEL__" - #endif - #elif (LZO_ARCH_MCS251) - #if !defined(__MODEL__) --# error "FIXME - MCS251 __MODEL__" -+# error "FIXME - LZO_ARCH_MCS251 __MODEL__" - #elif ((__MODEL__) == 0) - # define LZO_MM_SMALL 1 - #elif ((__MODEL__) == 2) -@@ -987,11 +1184,11 @@ extern "C" { - #elif ((__MODEL__) == 5) - # define LZO_MM_XSMALL 1 - #else --# error "FIXME - MCS251 __MODEL__" -+# error "FIXME - LZO_ARCH_MCS251 __MODEL__" - #endif - #elif (LZO_ARCH_MCS51) - #if !defined(__MODEL__) --# error "FIXME - MCS51 __MODEL__" -+# error "FIXME - LZO_ARCH_MCS51 __MODEL__" - #elif ((__MODEL__) == 1) - # define LZO_MM_SMALL 1 - #elif ((__MODEL__) == 2) -@@ -1003,7 +1200,7 @@ extern "C" { - #elif ((__MODEL__) == 5) - # define LZO_MM_XSMALL 1 - #else --# error "FIXME - MCS51 __MODEL__" -+# error "FIXME - LZO_ARCH_MCS51 __MODEL__" - #endif - #elif (LZO_ARCH_CRAY_PVP) - # define LZO_MM_PVP 1 -@@ -1030,462 +1227,270 @@ extern "C" { - # error "unknown memory model" - #endif - #endif --#if defined(SIZEOF_SHORT) --# define LZO_SIZEOF_SHORT (SIZEOF_SHORT) -+#if !defined(__lzo_gnuc_extension__) -+#if (LZO_CC_GNUC >= 0x020800ul) -+# define __lzo_gnuc_extension__ __extension__ -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define __lzo_gnuc_extension__ __extension__ -+#elif (LZO_CC_IBMC >= 600) -+# define __lzo_gnuc_extension__ __extension__ -+#else - #endif --#if defined(SIZEOF_INT) --# define LZO_SIZEOF_INT (SIZEOF_INT) - #endif --#if defined(SIZEOF_LONG) --# define LZO_SIZEOF_LONG (SIZEOF_LONG) -+#if !defined(__lzo_gnuc_extension__) -+# define __lzo_gnuc_extension__ /*empty*/ - #endif --#if defined(SIZEOF_LONG_LONG) --# define LZO_SIZEOF_LONG_LONG (SIZEOF_LONG_LONG) -+#if !defined(LZO_CFG_USE_NEW_STYLE_CASTS) && defined(__cplusplus) && 0 -+# if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul)) -+# define LZO_CFG_USE_NEW_STYLE_CASTS 0 -+# elif (LZO_CC_INTELC && (__INTEL_COMPILER < 1200)) -+# define LZO_CFG_USE_NEW_STYLE_CASTS 0 -+# else -+# define LZO_CFG_USE_NEW_STYLE_CASTS 1 -+# endif - #endif --#if defined(SIZEOF___INT16) --# define LZO_SIZEOF___INT16 (SIZEOF___INT16) -+#if !defined(LZO_CFG_USE_NEW_STYLE_CASTS) -+# define LZO_CFG_USE_NEW_STYLE_CASTS 0 - #endif --#if defined(SIZEOF___INT32) --# define LZO_SIZEOF___INT32 (SIZEOF___INT32) -+#if !defined(__cplusplus) -+# if defined(LZO_CFG_USE_NEW_STYLE_CASTS) -+# undef LZO_CFG_USE_NEW_STYLE_CASTS -+# endif -+# define LZO_CFG_USE_NEW_STYLE_CASTS 0 - #endif --#if defined(SIZEOF___INT64) --# define LZO_SIZEOF___INT64 (SIZEOF___INT64) -+#if !defined(LZO_REINTERPRET_CAST) -+# if (LZO_CFG_USE_NEW_STYLE_CASTS) -+# define LZO_REINTERPRET_CAST(t,e) (reinterpret_cast (e)) -+# endif - #endif --#if defined(SIZEOF_VOID_P) --# define LZO_SIZEOF_VOID_P (SIZEOF_VOID_P) -+#if !defined(LZO_REINTERPRET_CAST) -+# define LZO_REINTERPRET_CAST(t,e) ((t) (e)) - #endif --#if defined(SIZEOF_SIZE_T) --# define LZO_SIZEOF_SIZE_T (SIZEOF_SIZE_T) -+#if !defined(LZO_STATIC_CAST) -+# if (LZO_CFG_USE_NEW_STYLE_CASTS) -+# define LZO_STATIC_CAST(t,e) (static_cast (e)) -+# endif - #endif --#if defined(SIZEOF_PTRDIFF_T) --# define LZO_SIZEOF_PTRDIFF_T (SIZEOF_PTRDIFF_T) -+#if !defined(LZO_STATIC_CAST) -+# define LZO_STATIC_CAST(t,e) ((t) (e)) - #endif --#define __LZO_LSR(x,b) (((x)+0ul) >> (b)) --#if !defined(LZO_SIZEOF_SHORT) --# if (LZO_ARCH_CRAY_PVP) --# define LZO_SIZEOF_SHORT 8 --# elif (USHRT_MAX == LZO_0xffffL) --# define LZO_SIZEOF_SHORT 2 --# elif (__LZO_LSR(USHRT_MAX,7) == 1) --# define LZO_SIZEOF_SHORT 1 --# elif (__LZO_LSR(USHRT_MAX,15) == 1) --# define LZO_SIZEOF_SHORT 2 --# elif (__LZO_LSR(USHRT_MAX,31) == 1) --# define LZO_SIZEOF_SHORT 4 --# elif (__LZO_LSR(USHRT_MAX,63) == 1) --# define LZO_SIZEOF_SHORT 8 --# elif (__LZO_LSR(USHRT_MAX,127) == 1) --# define LZO_SIZEOF_SHORT 16 --# else --# error "LZO_SIZEOF_SHORT" --# endif -+#if !defined(LZO_STATIC_CAST2) -+# define LZO_STATIC_CAST2(t1,t2,e) LZO_STATIC_CAST(t1, LZO_STATIC_CAST(t2, e)) - #endif --#if !defined(LZO_SIZEOF_INT) --# if (LZO_ARCH_CRAY_PVP) --# define LZO_SIZEOF_INT 8 --# elif (UINT_MAX == LZO_0xffffL) --# define LZO_SIZEOF_INT 2 --# elif (UINT_MAX == LZO_0xffffffffL) --# define LZO_SIZEOF_INT 4 --# elif (__LZO_LSR(UINT_MAX,7) == 1) --# define LZO_SIZEOF_INT 1 --# elif (__LZO_LSR(UINT_MAX,15) == 1) --# define LZO_SIZEOF_INT 2 --# elif (__LZO_LSR(UINT_MAX,31) == 1) --# define LZO_SIZEOF_INT 4 --# elif (__LZO_LSR(UINT_MAX,63) == 1) --# define LZO_SIZEOF_INT 8 --# elif (__LZO_LSR(UINT_MAX,127) == 1) --# define LZO_SIZEOF_INT 16 --# else --# error "LZO_SIZEOF_INT" -+#if !defined(LZO_UNCONST_CAST) -+# if (LZO_CFG_USE_NEW_STYLE_CASTS) -+# define LZO_UNCONST_CAST(t,e) (const_cast (e)) -+# elif (LZO_HAVE_MM_HUGE_PTR) -+# define LZO_UNCONST_CAST(t,e) ((t) (e)) -+# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((lzo_uintptr_t) ((const void *) (e))))) - # endif - #endif --#if !defined(LZO_SIZEOF_LONG) --# if (ULONG_MAX == LZO_0xffffffffL) --# define LZO_SIZEOF_LONG 4 --# elif (__LZO_LSR(ULONG_MAX,7) == 1) --# define LZO_SIZEOF_LONG 1 --# elif (__LZO_LSR(ULONG_MAX,15) == 1) --# define LZO_SIZEOF_LONG 2 --# elif (__LZO_LSR(ULONG_MAX,31) == 1) --# define LZO_SIZEOF_LONG 4 --# elif (__LZO_LSR(ULONG_MAX,63) == 1) --# define LZO_SIZEOF_LONG 8 --# elif (__LZO_LSR(ULONG_MAX,127) == 1) --# define LZO_SIZEOF_LONG 16 --# else --# error "LZO_SIZEOF_LONG" -+#if !defined(LZO_UNCONST_CAST) -+# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((const void *) (e)))) -+#endif -+#if !defined(LZO_UNCONST_VOLATILE_CAST) -+# if (LZO_CFG_USE_NEW_STYLE_CASTS) -+# define LZO_UNCONST_VOLATILE_CAST(t,e) (const_cast (e)) -+# elif (LZO_HAVE_MM_HUGE_PTR) -+# define LZO_UNCONST_VOLATILE_CAST(t,e) ((t) (e)) -+# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define LZO_UNCONST_VOLATILE_CAST(t,e) ((t) ((volatile void *) ((lzo_uintptr_t) ((volatile const void *) (e))))) - # endif - #endif --#if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64) --#if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8) --# if defined(__LONG_MAX__) && defined(__LONG_LONG_MAX__) --# if (LZO_CC_GNUC >= 0x030300ul) --# if ((__LONG_MAX__)+0 == (__LONG_LONG_MAX__)+0) --# define LZO_SIZEOF_LONG_LONG LZO_SIZEOF_LONG --# elif (__LZO_LSR(__LONG_LONG_MAX__,30) == 1) --# define LZO_SIZEOF_LONG_LONG 4 --# endif --# endif -+#if !defined(LZO_UNCONST_VOLATILE_CAST) -+# define LZO_UNCONST_VOLATILE_CAST(t,e) ((t) ((volatile void *) ((volatile const void *) (e)))) -+#endif -+#if !defined(LZO_UNVOLATILE_CAST) -+# if (LZO_CFG_USE_NEW_STYLE_CASTS) -+# define LZO_UNVOLATILE_CAST(t,e) (const_cast (e)) -+# elif (LZO_HAVE_MM_HUGE_PTR) -+# define LZO_UNVOLATILE_CAST(t,e) ((t) (e)) -+# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define LZO_UNVOLATILE_CAST(t,e) ((t) ((void *) ((lzo_uintptr_t) ((volatile void *) (e))))) - # endif - #endif -+#if !defined(LZO_UNVOLATILE_CAST) -+# define LZO_UNVOLATILE_CAST(t,e) ((t) ((void *) ((volatile void *) (e)))) - #endif --#if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64) --#if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8) --#if (LZO_ARCH_I086 && LZO_CC_DMC) --#elif (LZO_CC_CILLY) && defined(__GNUC__) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define LZO_SIZEOF_LONG_LONG 8 --#elif ((LZO_OS_WIN32 || LZO_OS_WIN64 || defined(_WIN32)) && LZO_CC_MSC && (_MSC_VER >= 1400)) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_OS_WIN64 || defined(_WIN64)) --# define LZO_SIZEOF___INT64 8 --#elif (LZO_ARCH_I386 && (LZO_CC_DMC)) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_ARCH_I386 && (LZO_CC_SYMANTECC && (__SC__ >= 0x700))) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_ARCH_I386 && (LZO_CC_INTELC && defined(__linux__))) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_ARCH_I386 && (LZO_CC_MWERKS || LZO_CC_PELLESC || LZO_CC_PGI || LZO_CC_SUNPROC)) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_ARCH_I386 && (LZO_CC_INTELC || LZO_CC_MSC)) --# define LZO_SIZEOF___INT64 8 --#elif ((LZO_OS_WIN32 || defined(_WIN32)) && (LZO_CC_MSC)) --# define LZO_SIZEOF___INT64 8 --#elif (LZO_ARCH_I386 && (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0520))) --# define LZO_SIZEOF___INT64 8 --#elif (LZO_ARCH_I386 && (LZO_CC_WATCOMC && (__WATCOMC__ >= 1100))) --# define LZO_SIZEOF___INT64 8 --#elif (LZO_CC_WATCOMC && defined(_INTEGRAL_MAX_BITS) && (_INTEGRAL_MAX_BITS == 64)) --# define LZO_SIZEOF___INT64 8 --#elif (LZO_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_CC_SDCC) && (LZO_SIZEOF_INT == 2) --#elif 1 && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) --# define LZO_SIZEOF_LONG_LONG 8 -+#if !defined(LZO_UNVOLATILE_CONST_CAST) -+# if (LZO_CFG_USE_NEW_STYLE_CASTS) -+# define LZO_UNVOLATILE_CONST_CAST(t,e) (const_cast (e)) -+# elif (LZO_HAVE_MM_HUGE_PTR) -+# define LZO_UNVOLATILE_CONST_CAST(t,e) ((t) (e)) -+# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define LZO_UNVOLATILE_CONST_CAST(t,e) ((t) ((const void *) ((lzo_uintptr_t) ((volatile const void *) (e))))) -+# endif - #endif -+#if !defined(LZO_UNVOLATILE_CONST_CAST) -+# define LZO_UNVOLATILE_CONST_CAST(t,e) ((t) ((const void *) ((volatile const void *) (e)))) - #endif -+#if !defined(LZO_PCAST) -+# if (LZO_HAVE_MM_HUGE_PTR) -+# define LZO_PCAST(t,e) ((t) (e)) -+# endif - #endif --#if defined(__cplusplus) && (LZO_CC_GNUC) --# if (LZO_CC_GNUC < 0x020800ul) --# undef LZO_SIZEOF_LONG_LONG -+#if !defined(LZO_PCAST) -+# define LZO_PCAST(t,e) LZO_STATIC_CAST(t, LZO_STATIC_CAST(void *, e)) -+#endif -+#if !defined(LZO_CCAST) -+# if (LZO_HAVE_MM_HUGE_PTR) -+# define LZO_CCAST(t,e) ((t) (e)) - # endif - #endif --#if (LZO_CFG_NO_LONG_LONG) || defined(__NO_LONG_LONG) --# undef LZO_SIZEOF_LONG_LONG -+#if !defined(LZO_CCAST) -+# define LZO_CCAST(t,e) LZO_STATIC_CAST(t, LZO_STATIC_CAST(const void *, e)) - #endif --#if !defined(LZO_SIZEOF_VOID_P) --#if (LZO_ARCH_I086) --# define __LZO_WORDSIZE 2 --# if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM) --# define LZO_SIZEOF_VOID_P 2 --# elif (LZO_MM_COMPACT || LZO_MM_LARGE || LZO_MM_HUGE) --# define LZO_SIZEOF_VOID_P 4 --# else --# error "LZO_MM" -+#if !defined(LZO_ICONV) -+# define LZO_ICONV(t,e) LZO_STATIC_CAST(t, e) -+#endif -+#if !defined(LZO_ICAST) -+# define LZO_ICAST(t,e) LZO_STATIC_CAST(t, e) -+#endif -+#if !defined(LZO_ITRUNC) -+# define LZO_ITRUNC(t,e) LZO_STATIC_CAST(t, e) -+#endif -+#if !defined(__lzo_cte) -+# if (LZO_CC_MSC || LZO_CC_WATCOMC) -+# define __lzo_cte(e) ((void)0,(e)) -+# elif 1 -+# define __lzo_cte(e) ((void)0,(e)) - # endif --#elif (LZO_ARCH_AVR || LZO_ARCH_Z80) --# define __LZO_WORDSIZE 1 --# define LZO_SIZEOF_VOID_P 2 --#elif (LZO_ARCH_C166 || LZO_ARCH_MCS51 || LZO_ARCH_MCS251 || LZO_ARCH_MSP430) --# define LZO_SIZEOF_VOID_P 2 --#elif (LZO_ARCH_H8300) --# if defined(__NORMAL_MODE__) --# define __LZO_WORDSIZE 4 --# define LZO_SIZEOF_VOID_P 2 --# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__) --# define __LZO_WORDSIZE 4 --# define LZO_SIZEOF_VOID_P 4 --# else --# define __LZO_WORDSIZE 2 --# define LZO_SIZEOF_VOID_P 2 --# endif --# if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x040000ul)) && (LZO_SIZEOF_INT == 4) --# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_INT --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_INT --# endif --#elif (LZO_ARCH_M16C) --# define __LZO_WORDSIZE 2 --# if defined(__m32c_cpu__) || defined(__m32cm_cpu__) --# define LZO_SIZEOF_VOID_P 4 --# else --# define LZO_SIZEOF_VOID_P 2 --# endif --#elif (LZO_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__)) --# define __LZO_WORDSIZE 8 --# define LZO_SIZEOF_VOID_P 4 --#elif defined(__LLP64__) || defined(__LLP64) || defined(_LLP64) || defined(_WIN64) --# define __LZO_WORDSIZE 8 --# define LZO_SIZEOF_VOID_P 8 --#elif (LZO_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__) --# define LZO_SIZEOF_VOID_P LZO_SIZEOF_LONG --# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG --#elif (LZO_OS_OS400 || defined(__OS400__)) --# define __LZO_WORDSIZE LZO_SIZEOF_LONG --# define LZO_SIZEOF_VOID_P 16 --# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG --#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) --# define LZO_SIZEOF_VOID_P 8 --# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG --#elif (LZO_ARCH_SPU) --# if 0 --# define __LZO_WORDSIZE 16 --# endif --# define LZO_SIZEOF_VOID_P 4 --#else --# define LZO_SIZEOF_VOID_P LZO_SIZEOF_LONG - #endif -+#if !defined(__lzo_cte) -+# define __lzo_cte(e) (e) - #endif --#if !defined(LZO_WORDSIZE) --# if defined(__LZO_WORDSIZE) --# define LZO_WORDSIZE __LZO_WORDSIZE -+#if !defined(LZO_BLOCK_BEGIN) -+# define LZO_BLOCK_BEGIN do { -+# define LZO_BLOCK_END } while __lzo_cte(0) -+#endif -+#if !defined(LZO_UNUSED) -+# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) -+# define LZO_UNUSED(var) ((void) &var) -+# elif (LZO_CC_BORLANDC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PELLESC || LZO_CC_TURBOC) -+# define LZO_UNUSED(var) if (&var) ; else -+# elif (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x030200ul)) -+# define LZO_UNUSED(var) ((void) &var) -+# elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define LZO_UNUSED(var) ((void) var) -+# elif (LZO_CC_MSC && (_MSC_VER < 900)) -+# define LZO_UNUSED(var) if (&var) ; else -+# elif (LZO_CC_KEILC) -+# define LZO_UNUSED(var) {LZO_EXTERN_C int lzo_unused__[1-2*!(sizeof(var)>0)];} -+# elif (LZO_CC_PACIFICC) -+# define LZO_UNUSED(var) ((void) sizeof(var)) -+# elif (LZO_CC_WATCOMC) && defined(__cplusplus) -+# define LZO_UNUSED(var) ((void) var) - # else --# define LZO_WORDSIZE LZO_SIZEOF_VOID_P -+# define LZO_UNUSED(var) ((void) &var) - # endif - #endif --#if !defined(LZO_SIZEOF_SIZE_T) --#if (LZO_ARCH_I086 || LZO_ARCH_M16C) --# define LZO_SIZEOF_SIZE_T 2 --#else --# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_VOID_P --#endif --#endif --#if !defined(LZO_SIZEOF_PTRDIFF_T) --#if (LZO_ARCH_I086) --# if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM || LZO_MM_HUGE) --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_VOID_P --# elif (LZO_MM_COMPACT || LZO_MM_LARGE) --# if (LZO_CC_BORLANDC || LZO_CC_TURBOC) --# define LZO_SIZEOF_PTRDIFF_T 4 --# else --# define LZO_SIZEOF_PTRDIFF_T 2 --# endif -+#if !defined(LZO_UNUSED_FUNC) -+# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) -+# define LZO_UNUSED_FUNC(func) ((void) func) -+# elif (LZO_CC_BORLANDC || LZO_CC_NDPC || LZO_CC_TURBOC) -+# define LZO_UNUSED_FUNC(func) if (func) ; else -+# elif (LZO_CC_CLANG || LZO_CC_LLVM) -+# define LZO_UNUSED_FUNC(func) ((void) &func) -+# elif (LZO_CC_MSC && (_MSC_VER < 900)) -+# define LZO_UNUSED_FUNC(func) if (func) ; else -+# elif (LZO_CC_MSC) -+# define LZO_UNUSED_FUNC(func) ((void) &func) -+# elif (LZO_CC_KEILC || LZO_CC_PELLESC) -+# define LZO_UNUSED_FUNC(func) {LZO_EXTERN_C int lzo_unused_func__[1-2*!(sizeof((int)func)>0)];} - # else --# error "LZO_MM" -+# define LZO_UNUSED_FUNC(func) ((void) func) - # endif --#else --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_SIZE_T --#endif - #endif --#if (LZO_ABI_NEUTRAL_ENDIAN) --# undef LZO_ABI_BIG_ENDIAN --# undef LZO_ABI_LITTLE_ENDIAN --#elif !(LZO_ABI_BIG_ENDIAN) && !(LZO_ABI_LITTLE_ENDIAN) --#if (LZO_ARCH_ALPHA) && (LZO_ARCH_CRAY_MPP) --# define LZO_ABI_BIG_ENDIAN 1 --#elif (LZO_ARCH_IA64) && (LZO_OS_POSIX_LINUX || LZO_OS_WIN64) --# define LZO_ABI_LITTLE_ENDIAN 1 --#elif (LZO_ARCH_ALPHA || LZO_ARCH_AMD64 || LZO_ARCH_BLACKFIN || LZO_ARCH_CRIS || LZO_ARCH_I086 || LZO_ARCH_I386 || LZO_ARCH_MSP430) --# define LZO_ABI_LITTLE_ENDIAN 1 --#elif (LZO_ARCH_AVR32 || LZO_ARCH_M68K || LZO_ARCH_S390) --# define LZO_ABI_BIG_ENDIAN 1 --#elif 1 && defined(__IAR_SYSTEMS_ICC__) && defined(__LITTLE_ENDIAN__) --# if (__LITTLE_ENDIAN__ == 1) --# define LZO_ABI_LITTLE_ENDIAN 1 -+#if !defined(LZO_UNUSED_LABEL) -+# if (LZO_CC_CLANG >= 0x020800ul) -+# define LZO_UNUSED_LABEL(l) (__lzo_gnuc_extension__ ((void) ((const void *) &&l))) -+# elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_INTELC || LZO_CC_WATCOMC) -+# define LZO_UNUSED_LABEL(l) if __lzo_cte(0) goto l - # else --# define LZO_ABI_BIG_ENDIAN 1 -+# define LZO_UNUSED_LABEL(l) switch (0) case 1:goto l - # endif --#elif 1 && defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__) --# define LZO_ABI_BIG_ENDIAN 1 --#elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__) --# define LZO_ABI_LITTLE_ENDIAN 1 --#elif 1 && (LZO_ARCH_ARM) && defined(__ARMEB__) && !defined(__ARMEL__) --# define LZO_ABI_BIG_ENDIAN 1 --#elif 1 && (LZO_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__) --# define LZO_ABI_LITTLE_ENDIAN 1 --#elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__) --# define LZO_ABI_BIG_ENDIAN 1 --#elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__) --# define LZO_ABI_LITTLE_ENDIAN 1 --#endif --#endif --#if (LZO_ABI_BIG_ENDIAN) && (LZO_ABI_LITTLE_ENDIAN) --# error "this should not happen" --#endif --#if (LZO_ABI_BIG_ENDIAN) --# define LZO_INFO_ABI_ENDIAN "be" --#elif (LZO_ABI_LITTLE_ENDIAN) --# define LZO_INFO_ABI_ENDIAN "le" --#elif (LZO_ABI_NEUTRAL_ENDIAN) --# define LZO_INFO_ABI_ENDIAN "neutral" --#endif --#if (LZO_SIZEOF_INT == 1 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2) --# define LZO_ABI_I8LP16 1 --# define LZO_INFO_ABI_PM "i8lp16" --#elif (LZO_SIZEOF_INT == 2 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2) --# define LZO_ABI_ILP16 1 --# define LZO_INFO_ABI_PM "ilp16" --#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 4) --# define LZO_ABI_ILP32 1 --# define LZO_INFO_ABI_PM "ilp32" --#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 8 && LZO_SIZEOF_SIZE_T == 8) --# define LZO_ABI_LLP64 1 --# define LZO_INFO_ABI_PM "llp64" --#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8) --# define LZO_ABI_LP64 1 --# define LZO_INFO_ABI_PM "lp64" --#elif (LZO_SIZEOF_INT == 8 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8) --# define LZO_ABI_ILP64 1 --# define LZO_INFO_ABI_PM "ilp64" --#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 4) --# define LZO_ABI_IP32L64 1 --# define LZO_INFO_ABI_PM "ip32l64" - #endif --#if !defined(__LZO_LIBC_OVERRIDE) --#if (LZO_LIBC_NAKED) --# define LZO_INFO_LIBC "naked" --#elif (LZO_LIBC_FREESTANDING) --# define LZO_INFO_LIBC "freestanding" --#elif (LZO_LIBC_MOSTLY_FREESTANDING) --# define LZO_INFO_LIBC "mfreestanding" --#elif (LZO_LIBC_ISOC90) --# define LZO_INFO_LIBC "isoc90" --#elif (LZO_LIBC_ISOC99) --# define LZO_INFO_LIBC "isoc99" --#elif defined(__dietlibc__) --# define LZO_LIBC_DIETLIBC 1 --# define LZO_INFO_LIBC "dietlibc" --#elif defined(_NEWLIB_VERSION) --# define LZO_LIBC_NEWLIB 1 --# define LZO_INFO_LIBC "newlib" --#elif defined(__UCLIBC__) && defined(__UCLIBC_MAJOR__) && defined(__UCLIBC_MINOR__) --# if defined(__UCLIBC_SUBLEVEL__) --# define LZO_LIBC_UCLIBC (__UCLIBC_MAJOR__ * 0x10000L + __UCLIBC_MINOR__ * 0x100 + __UCLIBC_SUBLEVEL__) -+#if !defined(LZO_DEFINE_UNINITIALIZED_VAR) -+# if 0 -+# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var -+# elif 0 && (LZO_CC_GNUC) -+# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = var - # else --# define LZO_LIBC_UCLIBC 0x00090bL -+# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = init - # endif --# define LZO_INFO_LIBC "uclibc" --#elif defined(__GLIBC__) && defined(__GLIBC_MINOR__) --# define LZO_LIBC_GLIBC (__GLIBC__ * 0x10000L + __GLIBC_MINOR__ * 0x100) --# define LZO_INFO_LIBC "glibc" --#elif (LZO_CC_MWERKS) && defined(__MSL__) --# define LZO_LIBC_MSL __MSL__ --# define LZO_INFO_LIBC "msl" --#elif 1 && defined(__IAR_SYSTEMS_ICC__) --# define LZO_LIBC_ISOC90 1 --# define LZO_INFO_LIBC "isoc90" --#else --# define LZO_LIBC_DEFAULT 1 --# define LZO_INFO_LIBC "default" --#endif --#endif --#if !defined(__lzo_gnuc_extension__) --#if (LZO_CC_GNUC >= 0x020800ul) --# define __lzo_gnuc_extension__ __extension__ --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define __lzo_gnuc_extension__ __extension__ --#else --# define __lzo_gnuc_extension__ /*empty*/ --#endif --#endif --#if !defined(__lzo_ua_volatile) --# define __lzo_ua_volatile volatile --#endif --#if !defined(__lzo_alignof) --#if (LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) --# define __lzo_alignof(e) __alignof__(e) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 700)) --# define __lzo_alignof(e) __alignof__(e) --#elif (LZO_CC_MSC && (_MSC_VER >= 1300)) --# define __lzo_alignof(e) __alignof(e) --#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) --# define __lzo_alignof(e) __alignof__(e) --#endif --#endif --#if defined(__lzo_alignof) --# define __lzo_HAVE_alignof 1 --#endif --#if !defined(__lzo_constructor) --#if (LZO_CC_GNUC >= 0x030400ul) --# define __lzo_constructor __attribute__((__constructor__,__used__)) --#elif (LZO_CC_GNUC >= 0x020700ul) --# define __lzo_constructor __attribute__((__constructor__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define __lzo_constructor __attribute__((__constructor__)) --#endif --#endif --#if defined(__lzo_constructor) --# define __lzo_HAVE_constructor 1 --#endif --#if !defined(__lzo_destructor) --#if (LZO_CC_GNUC >= 0x030400ul) --# define __lzo_destructor __attribute__((__destructor__,__used__)) --#elif (LZO_CC_GNUC >= 0x020700ul) --# define __lzo_destructor __attribute__((__destructor__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define __lzo_destructor __attribute__((__destructor__)) --#endif --#endif --#if defined(__lzo_destructor) --# define __lzo_HAVE_destructor 1 --#endif --#if (__lzo_HAVE_destructor) && !(__lzo_HAVE_constructor) --# error "this should not happen" - #endif - #if !defined(__lzo_inline) - #if (LZO_CC_TURBOC && (__TURBOC__ <= 0x0295)) - #elif defined(__cplusplus) - # define __lzo_inline inline -+#elif defined(__STDC_VERSION__) && (__STDC_VERSION__-0 >= 199901L) -+# define __lzo_inline inline - #elif (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0550)) - # define __lzo_inline __inline --#elif (LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) - # define __lzo_inline __inline__ - #elif (LZO_CC_DMC) - # define __lzo_inline __inline -+#elif (LZO_CC_GHS) -+# define __lzo_inline __inline__ -+#elif (LZO_CC_IBMC >= 600) -+# define __lzo_inline __inline__ - #elif (LZO_CC_INTELC) - # define __lzo_inline __inline - #elif (LZO_CC_MWERKS && (__MWERKS__ >= 0x2405)) - # define __lzo_inline __inline - #elif (LZO_CC_MSC && (_MSC_VER >= 900)) - # define __lzo_inline __inline --#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) -+#elif (LZO_CC_SUNPROC >= 0x5100) - # define __lzo_inline __inline__ --#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) --# define __lzo_inline inline - #endif - #endif - #if defined(__lzo_inline) -+# ifndef __lzo_HAVE_inline - # define __lzo_HAVE_inline 1 -+# endif - #else - # define __lzo_inline /*empty*/ - #endif - #if !defined(__lzo_forceinline) - #if (LZO_CC_GNUC >= 0x030200ul) - # define __lzo_forceinline __inline__ __attribute__((__always_inline__)) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC) -+#elif (LZO_CC_IBMC >= 700) -+# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) -+#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 450)) - # define __lzo_forceinline __forceinline --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800) && LZO_CC_SYNTAX_GNUC) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800)) - # define __lzo_forceinline __inline__ __attribute__((__always_inline__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) - # define __lzo_forceinline __inline__ __attribute__((__always_inline__)) - #elif (LZO_CC_MSC && (_MSC_VER >= 1200)) - # define __lzo_forceinline __forceinline --#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) -+#elif (LZO_CC_PGI >= 0x0d0a00ul) -+# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) -+#elif (LZO_CC_SUNPROC >= 0x5100) - # define __lzo_forceinline __inline__ __attribute__((__always_inline__)) - #endif - #endif - #if defined(__lzo_forceinline) -+# ifndef __lzo_HAVE_forceinline - # define __lzo_HAVE_forceinline 1 -+# endif - #else --# define __lzo_forceinline /*empty*/ -+# define __lzo_forceinline __lzo_inline - #endif - #if !defined(__lzo_noinline) - #if 1 && (LZO_ARCH_I386) && (LZO_CC_GNUC >= 0x040000ul) && (LZO_CC_GNUC < 0x040003ul) - # define __lzo_noinline __attribute__((__noinline__,__used__)) - #elif (LZO_CC_GNUC >= 0x030200ul) - # define __lzo_noinline __attribute__((__noinline__)) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_MSC) -+#elif (LZO_CC_IBMC >= 700) -+# define __lzo_noinline __attribute__((__noinline__)) -+#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 600)) - # define __lzo_noinline __declspec(noinline) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800) && LZO_CC_SYNTAX_GNUC) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800)) - # define __lzo_noinline __attribute__((__noinline__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) - # define __lzo_noinline __attribute__((__noinline__)) - #elif (LZO_CC_MSC && (_MSC_VER >= 1300)) - # define __lzo_noinline __declspec(noinline) -@@ -1494,179 +1499,409 @@ extern "C" { - # else - # define __lzo_noinline __declspec(noinline) - # endif --#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) -+#elif (LZO_CC_PGI >= 0x0d0a00ul) -+# define __lzo_noinline __attribute__((__noinline__)) -+#elif (LZO_CC_SUNPROC >= 0x5100) - # define __lzo_noinline __attribute__((__noinline__)) - #endif - #endif - #if defined(__lzo_noinline) -+# ifndef __lzo_HAVE_noinline - # define __lzo_HAVE_noinline 1 -+# endif - #else - # define __lzo_noinline /*empty*/ - #endif - #if (__lzo_HAVE_forceinline || __lzo_HAVE_noinline) && !(__lzo_HAVE_inline) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - #endif --#if !defined(__lzo_noreturn) --#if (LZO_CC_GNUC >= 0x020700ul) --# define __lzo_noreturn __attribute__((__noreturn__)) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC) --# define __lzo_noreturn __declspec(noreturn) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_GNUC) --# define __lzo_noreturn __attribute__((__noreturn__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define __lzo_noreturn __attribute__((__noreturn__)) --#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) --# define __lzo_noreturn __declspec(noreturn) -+#if !defined(__lzo_static_inline) -+#if (LZO_CC_IBMC) -+# define __lzo_static_inline __lzo_gnuc_extension__ static __lzo_inline - #endif - #endif --#if defined(__lzo_noreturn) --# define __lzo_HAVE_noreturn 1 --#else --# define __lzo_noreturn /*empty*/ -+#if !defined(__lzo_static_inline) -+# define __lzo_static_inline static __lzo_inline - #endif --#if !defined(__lzo_nothrow) --#if (LZO_CC_GNUC >= 0x030300ul) --# define __lzo_nothrow __attribute__((__nothrow__)) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC) && defined(__cplusplus) --# define __lzo_nothrow __declspec(nothrow) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 900) && LZO_CC_SYNTAX_GNUC) --# define __lzo_nothrow __attribute__((__nothrow__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+#if !defined(__lzo_static_forceinline) -+#if (LZO_CC_IBMC) -+# define __lzo_static_forceinline __lzo_gnuc_extension__ static __lzo_forceinline -+#endif -+#endif -+#if !defined(__lzo_static_forceinline) -+# define __lzo_static_forceinline static __lzo_forceinline -+#endif -+#if !defined(__lzo_static_noinline) -+#if (LZO_CC_IBMC) -+# define __lzo_static_noinline __lzo_gnuc_extension__ static __lzo_noinline -+#endif -+#endif -+#if !defined(__lzo_static_noinline) -+# define __lzo_static_noinline static __lzo_noinline -+#endif -+#if !defined(__lzo_c99_extern_inline) -+#if defined(__GNUC_GNU_INLINE__) -+# define __lzo_c99_extern_inline __lzo_inline -+#elif defined(__GNUC_STDC_INLINE__) -+# define __lzo_c99_extern_inline extern __lzo_inline -+#elif defined(__STDC_VERSION__) && (__STDC_VERSION__-0 >= 199901L) -+# define __lzo_c99_extern_inline extern __lzo_inline -+#endif -+#if !defined(__lzo_c99_extern_inline) && (__lzo_HAVE_inline) -+# define __lzo_c99_extern_inline __lzo_inline -+#endif -+#endif -+#if defined(__lzo_c99_extern_inline) -+# ifndef __lzo_HAVE_c99_extern_inline -+# define __lzo_HAVE_c99_extern_inline 1 -+# endif -+#else -+# define __lzo_c99_extern_inline /*empty*/ -+#endif -+#if !defined(__lzo_may_alias) -+#if (LZO_CC_GNUC >= 0x030400ul) -+# define __lzo_may_alias __attribute__((__may_alias__)) -+#elif (LZO_CC_CLANG >= 0x020900ul) -+# define __lzo_may_alias __attribute__((__may_alias__)) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 1210)) && 0 -+# define __lzo_may_alias __attribute__((__may_alias__)) -+#elif (LZO_CC_PGI >= 0x0d0a00ul) && 0 -+# define __lzo_may_alias __attribute__((__may_alias__)) -+#endif -+#endif -+#if defined(__lzo_may_alias) -+# ifndef __lzo_HAVE_may_alias -+# define __lzo_HAVE_may_alias 1 -+# endif -+#else -+# define __lzo_may_alias /*empty*/ -+#endif -+#if !defined(__lzo_noreturn) -+#if (LZO_CC_GNUC >= 0x020700ul) -+# define __lzo_noreturn __attribute__((__noreturn__)) -+#elif (LZO_CC_IBMC >= 700) -+# define __lzo_noreturn __attribute__((__noreturn__)) -+#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 450)) -+# define __lzo_noreturn __declspec(noreturn) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 600)) -+# define __lzo_noreturn __attribute__((__noreturn__)) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define __lzo_noreturn __attribute__((__noreturn__)) -+#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) -+# define __lzo_noreturn __declspec(noreturn) -+#elif (LZO_CC_PGI >= 0x0d0a00ul) -+# define __lzo_noreturn __attribute__((__noreturn__)) -+#endif -+#endif -+#if defined(__lzo_noreturn) -+# ifndef __lzo_HAVE_noreturn -+# define __lzo_HAVE_noreturn 1 -+# endif -+#else -+# define __lzo_noreturn /*empty*/ -+#endif -+#if !defined(__lzo_nothrow) -+#if (LZO_CC_GNUC >= 0x030300ul) -+# define __lzo_nothrow __attribute__((__nothrow__)) -+#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 450)) && defined(__cplusplus) -+# define __lzo_nothrow __declspec(nothrow) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 900)) -+# define __lzo_nothrow __attribute__((__nothrow__)) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) - # define __lzo_nothrow __attribute__((__nothrow__)) - #elif (LZO_CC_MSC && (_MSC_VER >= 1200)) && defined(__cplusplus) - # define __lzo_nothrow __declspec(nothrow) - #endif - #endif - #if defined(__lzo_nothrow) -+# ifndef __lzo_HAVE_nothrow - # define __lzo_HAVE_nothrow 1 -+# endif - #else - # define __lzo_nothrow /*empty*/ - #endif - #if !defined(__lzo_restrict) - #if (LZO_CC_GNUC >= 0x030400ul) - # define __lzo_restrict __restrict__ --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_GNUC) -+#elif (LZO_CC_IBMC >= 800) && !defined(__cplusplus) - # define __lzo_restrict __restrict__ --#elif (LZO_CC_CLANG || LZO_CC_LLVM) -+#elif (LZO_CC_IBMC >= 1210) -+# define __lzo_restrict __restrict__ -+#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 600)) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 600)) -+# define __lzo_restrict __restrict__ -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM) - # define __lzo_restrict __restrict__ - #elif (LZO_CC_MSC && (_MSC_VER >= 1400)) - # define __lzo_restrict __restrict -+#elif (LZO_CC_PGI >= 0x0d0a00ul) -+# define __lzo_restrict __restrict__ - #endif - #endif - #if defined(__lzo_restrict) -+# ifndef __lzo_HAVE_restrict - # define __lzo_HAVE_restrict 1 -+# endif - #else - # define __lzo_restrict /*empty*/ - #endif -+#if !defined(__lzo_alignof) -+#if (LZO_CC_ARMCC || LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) -+# define __lzo_alignof(e) __alignof__(e) -+#elif (LZO_CC_GHS) && !defined(__cplusplus) -+# define __lzo_alignof(e) __alignof__(e) -+#elif (LZO_CC_IBMC >= 600) -+# define __lzo_alignof(e) (__lzo_gnuc_extension__ __alignof__(e)) -+#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 700)) -+# define __lzo_alignof(e) __alignof__(e) -+#elif (LZO_CC_MSC && (_MSC_VER >= 1300)) -+# define __lzo_alignof(e) __alignof(e) -+#elif (LZO_CC_SUNPROC >= 0x5100) -+# define __lzo_alignof(e) __alignof__(e) -+#endif -+#endif -+#if defined(__lzo_alignof) -+# ifndef __lzo_HAVE_alignof -+# define __lzo_HAVE_alignof 1 -+# endif -+#endif -+#if !defined(__lzo_struct_packed) -+#if (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020800ul)) && defined(__cplusplus) -+#elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020700ul)) -+#elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul)) && defined(__cplusplus) -+#elif (LZO_CC_PCC && (LZO_CC_PCC < 0x010100ul)) -+#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC < 0x5110)) && !defined(__cplusplus) -+#elif (LZO_CC_GNUC >= 0x030400ul) && !(LZO_CC_PCC_GNUC) && (LZO_ARCH_AMD64 || LZO_ARCH_I386) -+# define __lzo_struct_packed(s) struct s { -+# define __lzo_struct_packed_end() } __attribute__((__gcc_struct__,__packed__)); -+# define __lzo_struct_packed_ma_end() } __lzo_may_alias __attribute__((__gcc_struct__,__packed__)); -+#elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || (LZO_CC_PGI >= 0x0d0a00ul) || (LZO_CC_SUNPROC >= 0x5100)) -+# define __lzo_struct_packed(s) struct s { -+# define __lzo_struct_packed_end() } __attribute__((__packed__)); -+# define __lzo_struct_packed_ma_end() } __lzo_may_alias __attribute__((__packed__)); -+#elif (LZO_CC_IBMC >= 700) -+# define __lzo_struct_packed(s) __lzo_gnuc_extension__ struct s { -+# define __lzo_struct_packed_end() } __attribute__((__packed__)); -+# define __lzo_struct_packed_ma_end() } __lzo_may_alias __attribute__((__packed__)); -+#elif (LZO_CC_INTELC_MSC) || (LZO_CC_MSC && (_MSC_VER >= 1300)) -+# define __lzo_struct_packed(s) __pragma(pack(push,1)) struct s { -+# define __lzo_struct_packed_end() } __pragma(pack(pop)); -+#elif (LZO_CC_WATCOMC && (__WATCOMC__ >= 900)) -+# define __lzo_struct_packed(s) _Packed struct s { -+# define __lzo_struct_packed_end() }; -+#endif -+#endif -+#if defined(__lzo_struct_packed) && !defined(__lzo_struct_packed_ma) -+# define __lzo_struct_packed_ma(s) __lzo_struct_packed(s) -+#endif -+#if defined(__lzo_struct_packed_end) && !defined(__lzo_struct_packed_ma_end) -+# define __lzo_struct_packed_ma_end() __lzo_struct_packed_end() -+#endif -+#if !defined(__lzo_byte_struct) -+#if defined(__lzo_struct_packed) -+# define __lzo_byte_struct(s,n) __lzo_struct_packed(s) unsigned char a[n]; __lzo_struct_packed_end() -+# define __lzo_byte_struct_ma(s,n) __lzo_struct_packed_ma(s) unsigned char a[n]; __lzo_struct_packed_ma_end() -+#elif (LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_PGI || (LZO_CC_SUNPROC >= 0x5100)) -+# define __lzo_byte_struct(s,n) struct s { unsigned char a[n]; } __attribute__((__packed__)); -+# define __lzo_byte_struct_ma(s,n) struct s { unsigned char a[n]; } __lzo_may_alias __attribute__((__packed__)); -+#endif -+#endif -+#if defined(__lzo_byte_struct) && !defined(__lzo_byte_struct_ma) -+# define __lzo_byte_struct_ma(s,n) __lzo_byte_struct(s,n) -+#endif -+#if !defined(__lzo_struct_align16) && (__lzo_HAVE_alignof) -+#if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x030000ul)) -+#elif (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020800ul)) && defined(__cplusplus) -+#elif (LZO_CC_CILLY || LZO_CC_PCC) -+#elif (LZO_CC_INTELC_MSC) || (LZO_CC_MSC && (_MSC_VER >= 1300)) -+# define __lzo_struct_align16(s) struct __declspec(align(16)) s { -+# define __lzo_struct_align16_end() }; -+# define __lzo_struct_align32(s) struct __declspec(align(32)) s { -+# define __lzo_struct_align32_end() }; -+# define __lzo_struct_align64(s) struct __declspec(align(64)) s { -+# define __lzo_struct_align64_end() }; -+#elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_GNUC || (LZO_CC_IBMC >= 700) || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define __lzo_struct_align16(s) struct s { -+# define __lzo_struct_align16_end() } __attribute__((__aligned__(16))); -+# define __lzo_struct_align32(s) struct s { -+# define __lzo_struct_align32_end() } __attribute__((__aligned__(32))); -+# define __lzo_struct_align64(s) struct s { -+# define __lzo_struct_align64_end() } __attribute__((__aligned__(64))); -+#endif -+#endif -+#if !defined(__lzo_union_um) -+#if (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020800ul)) && defined(__cplusplus) -+#elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020700ul)) -+#elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul)) && defined(__cplusplus) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER < 810)) -+#elif (LZO_CC_PCC && (LZO_CC_PCC < 0x010100ul)) -+#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC < 0x5110)) && !defined(__cplusplus) -+#elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || (LZO_CC_PGI >= 0x0d0a00ul) || (LZO_CC_SUNPROC >= 0x5100)) -+# define __lzo_union_am(s) union s { -+# define __lzo_union_am_end() } __lzo_may_alias; -+# define __lzo_union_um(s) union s { -+# define __lzo_union_um_end() } __lzo_may_alias __attribute__((__packed__)); -+#elif (LZO_CC_IBMC >= 700) -+# define __lzo_union_am(s) __lzo_gnuc_extension__ union s { -+# define __lzo_union_am_end() } __lzo_may_alias; -+# define __lzo_union_um(s) __lzo_gnuc_extension__ union s { -+# define __lzo_union_um_end() } __lzo_may_alias __attribute__((__packed__)); -+#elif (LZO_CC_INTELC_MSC) || (LZO_CC_MSC && (_MSC_VER >= 1300)) -+# define __lzo_union_um(s) __pragma(pack(push,1)) union s { -+# define __lzo_union_um_end() } __pragma(pack(pop)); -+#elif (LZO_CC_WATCOMC && (__WATCOMC__ >= 900)) -+# define __lzo_union_um(s) _Packed union s { -+# define __lzo_union_um_end() }; -+#endif -+#endif -+#if !defined(__lzo_union_am) -+# define __lzo_union_am(s) union s { -+# define __lzo_union_am_end() }; -+#endif -+#if !defined(__lzo_constructor) -+#if (LZO_CC_GNUC >= 0x030400ul) -+# define __lzo_constructor __attribute__((__constructor__,__used__)) -+#elif (LZO_CC_GNUC >= 0x020700ul) -+# define __lzo_constructor __attribute__((__constructor__)) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800)) -+# define __lzo_constructor __attribute__((__constructor__,__used__)) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define __lzo_constructor __attribute__((__constructor__)) -+#endif -+#endif -+#if defined(__lzo_constructor) -+# ifndef __lzo_HAVE_constructor -+# define __lzo_HAVE_constructor 1 -+# endif -+#endif -+#if !defined(__lzo_destructor) -+#if (LZO_CC_GNUC >= 0x030400ul) -+# define __lzo_destructor __attribute__((__destructor__,__used__)) -+#elif (LZO_CC_GNUC >= 0x020700ul) -+# define __lzo_destructor __attribute__((__destructor__)) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800)) -+# define __lzo_destructor __attribute__((__destructor__,__used__)) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define __lzo_destructor __attribute__((__destructor__)) -+#endif -+#endif -+#if defined(__lzo_destructor) -+# ifndef __lzo_HAVE_destructor -+# define __lzo_HAVE_destructor 1 -+# endif -+#endif -+#if (__lzo_HAVE_destructor) && !(__lzo_HAVE_constructor) -+# error "unexpected configuration - check your compiler defines" -+#endif - #if !defined(__lzo_likely) && !defined(__lzo_unlikely) - #if (LZO_CC_GNUC >= 0x030200ul) - # define __lzo_likely(e) (__builtin_expect(!!(e),1)) - # define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) -+#elif (LZO_CC_IBMC >= 1010) -+# define __lzo_likely(e) (__builtin_expect(!!(e),1)) -+# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) - #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800)) - # define __lzo_likely(e) (__builtin_expect(!!(e),1)) - # define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) - # define __lzo_likely(e) (__builtin_expect(!!(e),1)) - # define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) - #endif - #endif - #if defined(__lzo_likely) -+# ifndef __lzo_HAVE_likely - # define __lzo_HAVE_likely 1 -+# endif - #else - # define __lzo_likely(e) (e) - #endif - #if defined(__lzo_unlikely) -+# ifndef __lzo_HAVE_unlikely - # define __lzo_HAVE_unlikely 1 -+# endif - #else - # define __lzo_unlikely(e) (e) - #endif --#if !defined(LZO_UNUSED) --# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) --# define LZO_UNUSED(var) ((void) &var) --# elif (LZO_CC_BORLANDC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PELLESC || LZO_CC_TURBOC) --# define LZO_UNUSED(var) if (&var) ; else --# elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define LZO_UNUSED(var) ((void) var) --# elif (LZO_CC_MSC && (_MSC_VER < 900)) --# define LZO_UNUSED(var) if (&var) ; else --# elif (LZO_CC_KEILC) --# define LZO_UNUSED(var) {extern int __lzo_unused[1-2*!(sizeof(var)>0)];} --# elif (LZO_CC_PACIFICC) --# define LZO_UNUSED(var) ((void) sizeof(var)) --# elif (LZO_CC_WATCOMC) && defined(__cplusplus) --# define LZO_UNUSED(var) ((void) var) -+#if !defined(__lzo_static_unused_void_func) -+# if 1 && (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || (LZO_CC_GNUC >= 0x020700ul) || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) -+# define __lzo_static_unused_void_func(f) static void __attribute__((__unused__)) f(void) - # else --# define LZO_UNUSED(var) ((void) &var) -+# define __lzo_static_unused_void_func(f) static __lzo_inline void f(void) - # endif - #endif --#if !defined(LZO_UNUSED_FUNC) --# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) --# define LZO_UNUSED_FUNC(func) ((void) func) --# elif (LZO_CC_BORLANDC || LZO_CC_NDPC || LZO_CC_TURBOC) --# define LZO_UNUSED_FUNC(func) if (func) ; else --# elif (LZO_CC_CLANG || LZO_CC_LLVM) --# define LZO_UNUSED_FUNC(func) ((void) &func) --# elif (LZO_CC_MSC && (_MSC_VER < 900)) --# define LZO_UNUSED_FUNC(func) if (func) ; else --# elif (LZO_CC_MSC) --# define LZO_UNUSED_FUNC(func) ((void) &func) --# elif (LZO_CC_KEILC || LZO_CC_PELLESC) --# define LZO_UNUSED_FUNC(func) {extern int __lzo_unused[1-2*!(sizeof((int)func)>0)];} -+#if !defined(__lzo_loop_forever) -+# if (LZO_CC_IBMC) -+# define __lzo_loop_forever() LZO_BLOCK_BEGIN for (;;) { ; } LZO_BLOCK_END - # else --# define LZO_UNUSED_FUNC(func) ((void) func) -+# define __lzo_loop_forever() do { ; } while __lzo_cte(1) - # endif - #endif --#if !defined(LZO_UNUSED_LABEL) --# if (LZO_CC_WATCOMC) && defined(__cplusplus) --# define LZO_UNUSED_LABEL(l) switch(0) case 1:goto l --# elif (LZO_CC_CLANG || LZO_CC_INTELC || LZO_CC_WATCOMC) --# define LZO_UNUSED_LABEL(l) if (0) goto l --# else --# define LZO_UNUSED_LABEL(l) switch(0) case 1:goto l --# endif -+#if !defined(__lzo_unreachable) -+#if (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x020800ul)) -+# define __lzo_unreachable() __builtin_unreachable(); -+#elif (LZO_CC_GNUC >= 0x040500ul) -+# define __lzo_unreachable() __builtin_unreachable(); -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 1300)) && 1 -+# define __lzo_unreachable() __builtin_unreachable(); - #endif --#if !defined(LZO_DEFINE_UNINITIALIZED_VAR) -+#endif -+#if defined(__lzo_unreachable) -+# ifndef __lzo_HAVE_unreachable -+# define __lzo_HAVE_unreachable 1 -+# endif -+#else - # if 0 --# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var --# elif 0 && (LZO_CC_GNUC) --# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = var -+# define __lzo_unreachable() ((void)0); - # else --# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = init -+# define __lzo_unreachable() __lzo_loop_forever(); - # endif - #endif --#if !defined(LZO_UNCONST_CAST) --# if 0 && defined(__cplusplus) --# define LZO_UNCONST_CAST(t,e) (const_cast (e)) --# elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((char *) ((lzo_uintptr_t) ((const void *) (e)))))) --# else --# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((char *) ((const void *) (e))))) --# endif -+#ifndef __LZO_CTA_NAME -+#if (LZO_CFG_USE_COUNTER) -+# define __LZO_CTA_NAME(a) LZO_PP_ECONCAT2(a,__COUNTER__) -+#else -+# define __LZO_CTA_NAME(a) LZO_PP_ECONCAT2(a,__LINE__) -+#endif - #endif - #if !defined(LZO_COMPILE_TIME_ASSERT_HEADER) - # if (LZO_CC_AZTECC || LZO_CC_ZORTECHC) --# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1-!(e)]; -+# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1-!(e)]; LZO_EXTERN_C_END - # elif (LZO_CC_DMC || LZO_CC_SYMANTECC) --# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1u-2*!(e)]; -+# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1u-2*!(e)]; LZO_EXTERN_C_END - # elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295)) --# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1-!(e)]; -+# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1-!(e)]; LZO_EXTERN_C_END -+# elif (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020900ul)) && defined(__cplusplus) -+# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN int __LZO_CTA_NAME(lzo_cta_f__)(int [1-2*!(e)]); LZO_EXTERN_C_END -+# elif (LZO_CC_GNUC) && defined(__CHECKER__) && defined(__SPARSE_CHECKER__) -+# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN enum {__LZO_CTA_NAME(lzo_cta_e__)=1/!!(e)} __attribute__((__unused__)); LZO_EXTERN_C_END - # else --# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1-2*!(e)]; -+# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1-2*!(e)]; LZO_EXTERN_C_END - # endif - #endif - #if !defined(LZO_COMPILE_TIME_ASSERT) - # if (LZO_CC_AZTECC) --# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __lzo_cta_t[1-!(e)];} -+# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-!(e)];} - # elif (LZO_CC_DMC || LZO_CC_PACIFICC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC) - # define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; -+# elif (LZO_CC_GNUC) && defined(__CHECKER__) && defined(__SPARSE_CHECKER__) -+# define LZO_COMPILE_TIME_ASSERT(e) {(void) (0/!!(e));} -+# elif (LZO_CC_GNUC >= 0x040700ul) && (LZO_CFG_USE_COUNTER) && defined(__cplusplus) -+# define LZO_COMPILE_TIME_ASSERT(e) {enum {__LZO_CTA_NAME(lzo_cta_e__)=1/!!(e)} __attribute__((__unused__));} -+# elif (LZO_CC_GNUC >= 0x040700ul) -+# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-2*!(e)] __attribute__((__unused__));} - # elif (LZO_CC_MSC && (_MSC_VER < 900)) - # define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; - # elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295)) - # define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; - # else --# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __lzo_cta_t[1-2*!(e)];} -+# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-2*!(e)];} - # endif - #endif -+LZO_COMPILE_TIME_ASSERT_HEADER(1 == 1) -+#if defined(__cplusplus) -+extern "C" { LZO_COMPILE_TIME_ASSERT_HEADER(2 == 2) } -+#endif -+LZO_COMPILE_TIME_ASSERT_HEADER(3 == 3) - #if (LZO_ARCH_I086 || LZO_ARCH_I386) && (LZO_OS_DOS16 || LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_OS216 || LZO_OS_WIN16 || LZO_OS_WIN32 || LZO_OS_WIN64) - # if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC) - # elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC) -@@ -1730,6 +1965,7 @@ extern "C" { - # define __lzo_cdecl_va __lzo_cdecl - #endif - #if !(LZO_CFG_NO_WINDOWS_H) -+#if !defined(LZO_HAVE_WINDOWS_H) - #if (LZO_OS_CYGWIN || (LZO_OS_EMX && defined(__RSXNT__)) || LZO_OS_WIN32 || LZO_OS_WIN64) - # if (LZO_CC_WATCOMC && (__WATCOMC__ < 1000)) - # elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__PW32__) -@@ -1739,60 +1975,614 @@ extern "C" { - # endif - #endif - #endif -+#endif -+#ifndef LZO_SIZEOF_SHORT -+#if defined(SIZEOF_SHORT) -+# define LZO_SIZEOF_SHORT (SIZEOF_SHORT) -+#elif defined(__SIZEOF_SHORT__) -+# define LZO_SIZEOF_SHORT (__SIZEOF_SHORT__) -+#endif -+#endif -+#ifndef LZO_SIZEOF_INT -+#if defined(SIZEOF_INT) -+# define LZO_SIZEOF_INT (SIZEOF_INT) -+#elif defined(__SIZEOF_INT__) -+# define LZO_SIZEOF_INT (__SIZEOF_INT__) -+#endif -+#endif -+#ifndef LZO_SIZEOF_LONG -+#if defined(SIZEOF_LONG) -+# define LZO_SIZEOF_LONG (SIZEOF_LONG) -+#elif defined(__SIZEOF_LONG__) -+# define LZO_SIZEOF_LONG (__SIZEOF_LONG__) -+#endif -+#endif -+#ifndef LZO_SIZEOF_LONG_LONG -+#if defined(SIZEOF_LONG_LONG) -+# define LZO_SIZEOF_LONG_LONG (SIZEOF_LONG_LONG) -+#elif defined(__SIZEOF_LONG_LONG__) -+# define LZO_SIZEOF_LONG_LONG (__SIZEOF_LONG_LONG__) -+#endif -+#endif -+#ifndef LZO_SIZEOF___INT16 -+#if defined(SIZEOF___INT16) -+# define LZO_SIZEOF___INT16 (SIZEOF___INT16) -+#endif -+#endif -+#ifndef LZO_SIZEOF___INT32 -+#if defined(SIZEOF___INT32) -+# define LZO_SIZEOF___INT32 (SIZEOF___INT32) -+#endif -+#endif -+#ifndef LZO_SIZEOF___INT64 -+#if defined(SIZEOF___INT64) -+# define LZO_SIZEOF___INT64 (SIZEOF___INT64) -+#endif -+#endif -+#ifndef LZO_SIZEOF_VOID_P -+#if defined(SIZEOF_VOID_P) -+# define LZO_SIZEOF_VOID_P (SIZEOF_VOID_P) -+#elif defined(__SIZEOF_POINTER__) -+# define LZO_SIZEOF_VOID_P (__SIZEOF_POINTER__) -+#endif -+#endif -+#ifndef LZO_SIZEOF_SIZE_T -+#if defined(SIZEOF_SIZE_T) -+# define LZO_SIZEOF_SIZE_T (SIZEOF_SIZE_T) -+#elif defined(__SIZEOF_SIZE_T__) -+# define LZO_SIZEOF_SIZE_T (__SIZEOF_SIZE_T__) -+#endif -+#endif -+#ifndef LZO_SIZEOF_PTRDIFF_T -+#if defined(SIZEOF_PTRDIFF_T) -+# define LZO_SIZEOF_PTRDIFF_T (SIZEOF_PTRDIFF_T) -+#elif defined(__SIZEOF_PTRDIFF_T__) -+# define LZO_SIZEOF_PTRDIFF_T (__SIZEOF_PTRDIFF_T__) -+#endif -+#endif -+#define __LZO_LSR(x,b) (((x)+0ul) >> (b)) -+#if !defined(LZO_SIZEOF_SHORT) -+# if (LZO_ARCH_CRAY_PVP) -+# define LZO_SIZEOF_SHORT 8 -+# elif (USHRT_MAX == LZO_0xffffL) -+# define LZO_SIZEOF_SHORT 2 -+# elif (__LZO_LSR(USHRT_MAX,7) == 1) -+# define LZO_SIZEOF_SHORT 1 -+# elif (__LZO_LSR(USHRT_MAX,15) == 1) -+# define LZO_SIZEOF_SHORT 2 -+# elif (__LZO_LSR(USHRT_MAX,31) == 1) -+# define LZO_SIZEOF_SHORT 4 -+# elif (__LZO_LSR(USHRT_MAX,63) == 1) -+# define LZO_SIZEOF_SHORT 8 -+# elif (__LZO_LSR(USHRT_MAX,127) == 1) -+# define LZO_SIZEOF_SHORT 16 -+# else -+# error "LZO_SIZEOF_SHORT" -+# endif -+#endif -+LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_SHORT == sizeof(short)) -+#if !defined(LZO_SIZEOF_INT) -+# if (LZO_ARCH_CRAY_PVP) -+# define LZO_SIZEOF_INT 8 -+# elif (UINT_MAX == LZO_0xffffL) -+# define LZO_SIZEOF_INT 2 -+# elif (UINT_MAX == LZO_0xffffffffL) -+# define LZO_SIZEOF_INT 4 -+# elif (__LZO_LSR(UINT_MAX,7) == 1) -+# define LZO_SIZEOF_INT 1 -+# elif (__LZO_LSR(UINT_MAX,15) == 1) -+# define LZO_SIZEOF_INT 2 -+# elif (__LZO_LSR(UINT_MAX,31) == 1) -+# define LZO_SIZEOF_INT 4 -+# elif (__LZO_LSR(UINT_MAX,63) == 1) -+# define LZO_SIZEOF_INT 8 -+# elif (__LZO_LSR(UINT_MAX,127) == 1) -+# define LZO_SIZEOF_INT 16 -+# else -+# error "LZO_SIZEOF_INT" -+# endif -+#endif -+LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_INT == sizeof(int)) -+#if !defined(LZO_SIZEOF_LONG) -+# if (ULONG_MAX == LZO_0xffffffffL) -+# define LZO_SIZEOF_LONG 4 -+# elif (__LZO_LSR(ULONG_MAX,7) == 1) -+# define LZO_SIZEOF_LONG 1 -+# elif (__LZO_LSR(ULONG_MAX,15) == 1) -+# define LZO_SIZEOF_LONG 2 -+# elif (__LZO_LSR(ULONG_MAX,31) == 1) -+# define LZO_SIZEOF_LONG 4 -+# elif (__LZO_LSR(ULONG_MAX,39) == 1) -+# define LZO_SIZEOF_LONG 5 -+# elif (__LZO_LSR(ULONG_MAX,63) == 1) -+# define LZO_SIZEOF_LONG 8 -+# elif (__LZO_LSR(ULONG_MAX,127) == 1) -+# define LZO_SIZEOF_LONG 16 -+# else -+# error "LZO_SIZEOF_LONG" -+# endif -+#endif -+LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_LONG == sizeof(long)) -+#if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64) -+#if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8) -+# if defined(__LONG_MAX__) && defined(__LONG_LONG_MAX__) -+# if (LZO_CC_GNUC >= 0x030300ul) -+# if ((__LONG_MAX__-0) == (__LONG_LONG_MAX__-0)) -+# define LZO_SIZEOF_LONG_LONG LZO_SIZEOF_LONG -+# elif (__LZO_LSR(__LONG_LONG_MAX__,30) == 1) -+# define LZO_SIZEOF_LONG_LONG 4 -+# endif -+# endif -+# endif -+#endif -+#endif -+#if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64) -+#if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8) -+#if (LZO_ARCH_I086 && LZO_CC_DMC) -+#elif (LZO_CC_CILLY) && defined(__GNUC__) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif ((LZO_OS_WIN32 || LZO_OS_WIN64 || defined(_WIN32)) && LZO_CC_MSC && (_MSC_VER >= 1400)) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_OS_WIN64 || defined(_WIN64)) -+# define LZO_SIZEOF___INT64 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_DMC)) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_SYMANTECC && (__SC__ >= 0x700))) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_INTELC && defined(__linux__))) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_MWERKS || LZO_CC_PELLESC || LZO_CC_PGI || LZO_CC_SUNPROC)) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_INTELC || LZO_CC_MSC)) -+# define LZO_SIZEOF___INT64 8 -+#elif ((LZO_OS_WIN32 || defined(_WIN32)) && (LZO_CC_MSC)) -+# define LZO_SIZEOF___INT64 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0520))) -+# define LZO_SIZEOF___INT64 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_WATCOMC && (__WATCOMC__ >= 1100))) -+# define LZO_SIZEOF___INT64 8 -+#elif (LZO_CC_GHS && defined(__LLONG_BIT) && ((__LLONG_BIT-0) == 64)) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_CC_WATCOMC && defined(_INTEGRAL_MAX_BITS) && ((_INTEGRAL_MAX_BITS-0) == 64)) -+# define LZO_SIZEOF___INT64 8 -+#elif (LZO_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (defined(__vms) || defined(__VMS)) && ((__INITIAL_POINTER_SIZE-0) == 64) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_CC_SDCC) && (LZO_SIZEOF_INT == 2) -+#elif 1 && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) -+# define LZO_SIZEOF_LONG_LONG 8 -+#endif -+#endif -+#endif -+#if defined(__cplusplus) && (LZO_CC_GNUC) -+# if (LZO_CC_GNUC < 0x020800ul) -+# undef LZO_SIZEOF_LONG_LONG -+# endif -+#endif -+#if (LZO_CFG_NO_LONG_LONG) -+# undef LZO_SIZEOF_LONG_LONG -+#elif defined(__NO_LONG_LONG) -+# undef LZO_SIZEOF_LONG_LONG -+#elif defined(_NO_LONGLONG) -+# undef LZO_SIZEOF_LONG_LONG -+#endif -+#if !defined(LZO_WORDSIZE) -+#if (LZO_ARCH_ALPHA) -+# define LZO_WORDSIZE 8 -+#elif (LZO_ARCH_AMD64) -+# define LZO_WORDSIZE 8 -+#elif (LZO_ARCH_AVR) -+# define LZO_WORDSIZE 1 -+#elif (LZO_ARCH_H8300) -+# if defined(__NORMAL_MODE__) -+# define LZO_WORDSIZE 4 -+# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__) -+# define LZO_WORDSIZE 4 -+# else -+# define LZO_WORDSIZE 2 -+# endif -+#elif (LZO_ARCH_I086) -+# define LZO_WORDSIZE 2 -+#elif (LZO_ARCH_IA64) -+# define LZO_WORDSIZE 8 -+#elif (LZO_ARCH_M16C) -+# define LZO_WORDSIZE 2 -+#elif (LZO_ARCH_SPU) -+# define LZO_WORDSIZE 4 -+#elif (LZO_ARCH_Z80) -+# define LZO_WORDSIZE 1 -+#elif (LZO_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__)) -+# define LZO_WORDSIZE 8 -+#elif (LZO_OS_OS400 || defined(__OS400__)) -+# define LZO_WORDSIZE 8 -+#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) -+# define LZO_WORDSIZE 8 -+#endif -+#endif -+#if !defined(LZO_SIZEOF_VOID_P) -+#if defined(__ILP32__) || defined(__ILP32) || defined(_ILP32) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(int) == 4) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 4) -+# define LZO_SIZEOF_VOID_P 4 -+#elif defined(__ILP64__) || defined(__ILP64) || defined(_ILP64) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(int) == 8) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 8) -+# define LZO_SIZEOF_VOID_P 8 -+#elif defined(__LLP64__) || defined(__LLP64) || defined(_LLP64) || defined(_WIN64) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 4) -+# define LZO_SIZEOF_VOID_P 8 -+#elif defined(__LP64__) || defined(__LP64) || defined(_LP64) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 8) -+# define LZO_SIZEOF_VOID_P 8 -+#elif (LZO_ARCH_AVR) -+# define LZO_SIZEOF_VOID_P 2 -+#elif (LZO_ARCH_C166 || LZO_ARCH_MCS51 || LZO_ARCH_MCS251 || LZO_ARCH_MSP430) -+# define LZO_SIZEOF_VOID_P 2 -+#elif (LZO_ARCH_H8300) -+# if defined(__NORMAL_MODE__) -+# define LZO_SIZEOF_VOID_P 2 -+# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__) -+# define LZO_SIZEOF_VOID_P 4 -+# else -+# define LZO_SIZEOF_VOID_P 2 -+# endif -+# if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x040000ul)) && (LZO_SIZEOF_INT == 4) -+# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_INT -+# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_INT -+# endif -+#elif (LZO_ARCH_I086) -+# if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM) -+# define LZO_SIZEOF_VOID_P 2 -+# elif (LZO_MM_COMPACT || LZO_MM_LARGE || LZO_MM_HUGE) -+# define LZO_SIZEOF_VOID_P 4 -+# else -+# error "invalid LZO_ARCH_I086 memory model" -+# endif -+#elif (LZO_ARCH_M16C) -+# if defined(__m32c_cpu__) || defined(__m32cm_cpu__) -+# define LZO_SIZEOF_VOID_P 4 -+# else -+# define LZO_SIZEOF_VOID_P 2 -+# endif -+#elif (LZO_ARCH_SPU) -+# define LZO_SIZEOF_VOID_P 4 -+#elif (LZO_ARCH_Z80) -+# define LZO_SIZEOF_VOID_P 2 -+#elif (LZO_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__)) -+# define LZO_SIZEOF_VOID_P 4 -+#elif (LZO_OS_OS400 || defined(__OS400__)) -+# if defined(__LLP64_IFC__) -+# define LZO_SIZEOF_VOID_P 8 -+# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG -+# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG -+# else -+# define LZO_SIZEOF_VOID_P 16 -+# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG -+# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG -+# endif -+#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) -+# define LZO_SIZEOF_VOID_P 8 -+# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG -+# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG -+#endif -+#endif -+#if !defined(LZO_SIZEOF_VOID_P) -+# define LZO_SIZEOF_VOID_P LZO_SIZEOF_LONG -+#endif -+LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_VOID_P == sizeof(void *)) -+#if !defined(LZO_SIZEOF_SIZE_T) -+#if (LZO_ARCH_I086 || LZO_ARCH_M16C) -+# define LZO_SIZEOF_SIZE_T 2 -+#endif -+#endif -+#if !defined(LZO_SIZEOF_SIZE_T) -+# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_VOID_P -+#endif -+#if defined(offsetof) -+LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_SIZE_T == sizeof(size_t)) -+#endif -+#if !defined(LZO_SIZEOF_PTRDIFF_T) -+#if (LZO_ARCH_I086) -+# if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM || LZO_MM_HUGE) -+# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_VOID_P -+# elif (LZO_MM_COMPACT || LZO_MM_LARGE) -+# if (LZO_CC_BORLANDC || LZO_CC_TURBOC) -+# define LZO_SIZEOF_PTRDIFF_T 4 -+# else -+# define LZO_SIZEOF_PTRDIFF_T 2 -+# endif -+# else -+# error "invalid LZO_ARCH_I086 memory model" -+# endif -+#endif -+#endif -+#if !defined(LZO_SIZEOF_PTRDIFF_T) -+# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_SIZE_T -+#endif -+#if defined(offsetof) -+LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t)) -+#endif -+#if !defined(LZO_WORDSIZE) -+# define LZO_WORDSIZE LZO_SIZEOF_VOID_P -+#endif -+#if (LZO_ABI_NEUTRAL_ENDIAN) -+# undef LZO_ABI_BIG_ENDIAN -+# undef LZO_ABI_LITTLE_ENDIAN -+#elif !(LZO_ABI_BIG_ENDIAN) && !(LZO_ABI_LITTLE_ENDIAN) -+#if (LZO_ARCH_ALPHA) && (LZO_ARCH_CRAY_MPP) -+# define LZO_ABI_BIG_ENDIAN 1 -+#elif (LZO_ARCH_IA64) && (LZO_OS_POSIX_LINUX || LZO_OS_WIN64) -+# define LZO_ABI_LITTLE_ENDIAN 1 -+#elif (LZO_ARCH_ALPHA || LZO_ARCH_AMD64 || LZO_ARCH_BLACKFIN || LZO_ARCH_CRIS || LZO_ARCH_I086 || LZO_ARCH_I386 || LZO_ARCH_MSP430) -+# define LZO_ABI_LITTLE_ENDIAN 1 -+#elif (LZO_ARCH_AVR32 || LZO_ARCH_M68K || LZO_ARCH_S390 || LZO_ARCH_SPU) -+# define LZO_ABI_BIG_ENDIAN 1 -+#elif 1 && defined(__IAR_SYSTEMS_ICC__) && defined(__LITTLE_ENDIAN__) -+# if (__LITTLE_ENDIAN__ == 1) -+# define LZO_ABI_LITTLE_ENDIAN 1 -+# else -+# define LZO_ABI_BIG_ENDIAN 1 -+# endif -+#elif 1 && defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__) -+# define LZO_ABI_BIG_ENDIAN 1 -+#elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__) -+# define LZO_ABI_LITTLE_ENDIAN 1 -+#elif 1 && (LZO_ARCH_ARM) && defined(__ARMEB__) && !defined(__ARMEL__) -+# define LZO_ABI_BIG_ENDIAN 1 -+#elif 1 && (LZO_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__) -+# define LZO_ABI_LITTLE_ENDIAN 1 -+#elif 1 && (LZO_ARCH_ARM && LZO_CC_ARMCC_ARMCC) -+# if defined(__BIG_ENDIAN) && defined(__LITTLE_ENDIAN) -+# error "unexpected configuration - check your compiler defines" -+# elif defined(__BIG_ENDIAN) -+# define LZO_ABI_BIG_ENDIAN 1 -+# else -+# define LZO_ABI_LITTLE_ENDIAN 1 -+# endif -+# define LZO_ABI_LITTLE_ENDIAN 1 -+#elif 1 && (LZO_ARCH_ARM64) && defined(__AARCH64EB__) && !defined(__AARCH64EL__) -+# define LZO_ABI_BIG_ENDIAN 1 -+#elif 1 && (LZO_ARCH_ARM64) && defined(__AARCH64EL__) && !defined(__AARCH64EB__) -+# define LZO_ABI_LITTLE_ENDIAN 1 -+#elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__) -+# define LZO_ABI_BIG_ENDIAN 1 -+#elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__) -+# define LZO_ABI_LITTLE_ENDIAN 1 -+#endif -+#endif -+#if (LZO_ABI_BIG_ENDIAN) && (LZO_ABI_LITTLE_ENDIAN) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ABI_BIG_ENDIAN) -+# define LZO_INFO_ABI_ENDIAN "be" -+#elif (LZO_ABI_LITTLE_ENDIAN) -+# define LZO_INFO_ABI_ENDIAN "le" -+#elif (LZO_ABI_NEUTRAL_ENDIAN) -+# define LZO_INFO_ABI_ENDIAN "neutral" -+#endif -+#if (LZO_SIZEOF_INT == 1 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2) -+# define LZO_ABI_I8LP16 1 -+# define LZO_INFO_ABI_PM "i8lp16" -+#elif (LZO_SIZEOF_INT == 2 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2) -+# define LZO_ABI_ILP16 1 -+# define LZO_INFO_ABI_PM "ilp16" -+#elif (LZO_SIZEOF_INT == 2 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 4) -+# define LZO_ABI_LP32 1 -+# define LZO_INFO_ABI_PM "lp32" -+#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 4) -+# define LZO_ABI_ILP32 1 -+# define LZO_INFO_ABI_PM "ilp32" -+#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 8 && LZO_SIZEOF_SIZE_T == 8) -+# define LZO_ABI_LLP64 1 -+# define LZO_INFO_ABI_PM "llp64" -+#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8) -+# define LZO_ABI_LP64 1 -+# define LZO_INFO_ABI_PM "lp64" -+#elif (LZO_SIZEOF_INT == 8 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8) -+# define LZO_ABI_ILP64 1 -+# define LZO_INFO_ABI_PM "ilp64" -+#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 4) -+# define LZO_ABI_IP32L64 1 -+# define LZO_INFO_ABI_PM "ip32l64" -+#endif -+#if 0 -+#elif !defined(__LZO_LIBC_OVERRIDE) -+#if (LZO_LIBC_NAKED) -+# define LZO_INFO_LIBC "naked" -+#elif (LZO_LIBC_FREESTANDING) -+# define LZO_INFO_LIBC "freestanding" -+#elif (LZO_LIBC_MOSTLY_FREESTANDING) -+# define LZO_INFO_LIBC "mfreestanding" -+#elif (LZO_LIBC_ISOC90) -+# define LZO_INFO_LIBC "isoc90" -+#elif (LZO_LIBC_ISOC99) -+# define LZO_INFO_LIBC "isoc99" -+#elif (LZO_CC_ARMCC_ARMCC) && defined(__ARMCLIB_VERSION) -+# define LZO_LIBC_ISOC90 1 -+# define LZO_INFO_LIBC "isoc90" -+#elif defined(__dietlibc__) -+# define LZO_LIBC_DIETLIBC 1 -+# define LZO_INFO_LIBC "dietlibc" -+#elif defined(_NEWLIB_VERSION) -+# define LZO_LIBC_NEWLIB 1 -+# define LZO_INFO_LIBC "newlib" -+#elif defined(__UCLIBC__) && defined(__UCLIBC_MAJOR__) && defined(__UCLIBC_MINOR__) -+# if defined(__UCLIBC_SUBLEVEL__) -+# define LZO_LIBC_UCLIBC (__UCLIBC_MAJOR__ * 0x10000L + (__UCLIBC_MINOR__-0) * 0x100 + (__UCLIBC_SUBLEVEL__-0)) -+# else -+# define LZO_LIBC_UCLIBC 0x00090bL -+# endif -+# define LZO_INFO_LIBC "uc" "libc" -+#elif defined(__GLIBC__) && defined(__GLIBC_MINOR__) -+# define LZO_LIBC_GLIBC (__GLIBC__ * 0x10000L + (__GLIBC_MINOR__-0) * 0x100) -+# define LZO_INFO_LIBC "glibc" -+#elif (LZO_CC_MWERKS) && defined(__MSL__) -+# define LZO_LIBC_MSL __MSL__ -+# define LZO_INFO_LIBC "msl" -+#elif 1 && defined(__IAR_SYSTEMS_ICC__) -+# define LZO_LIBC_ISOC90 1 -+# define LZO_INFO_LIBC "isoc90" -+#else -+# define LZO_LIBC_DEFAULT 1 -+# define LZO_INFO_LIBC "default" -+#endif -+#endif -+#if (LZO_ARCH_I386 && (LZO_OS_DOS32 || LZO_OS_WIN32) && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC)) -+# define LZO_ASM_SYNTAX_MSC 1 -+#elif (LZO_OS_WIN64 && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC)) -+#elif (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC == 0x011f00ul)) -+#elif (LZO_ARCH_I386 && (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE)) -+# define LZO_ASM_SYNTAX_GNUC 1 -+#elif (LZO_ARCH_AMD64 && (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE)) -+# define LZO_ASM_SYNTAX_GNUC 1 -+#elif (LZO_CC_GNUC) -+# define LZO_ASM_SYNTAX_GNUC 1 -+#endif -+#if (LZO_ASM_SYNTAX_GNUC) -+#if (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC < 0x020000ul)) -+# define __LZO_ASM_CLOBBER "ax" -+# define __LZO_ASM_CLOBBER_LIST_CC /*empty*/ -+# define __LZO_ASM_CLOBBER_LIST_CC_MEMORY /*empty*/ -+# define __LZO_ASM_CLOBBER_LIST_EMPTY /*empty*/ -+#elif (LZO_CC_INTELC && (__INTEL_COMPILER < 1000)) -+# define __LZO_ASM_CLOBBER "memory" -+# define __LZO_ASM_CLOBBER_LIST_CC /*empty*/ -+# define __LZO_ASM_CLOBBER_LIST_CC_MEMORY : "memory" -+# define __LZO_ASM_CLOBBER_LIST_EMPTY /*empty*/ -+#else -+# define __LZO_ASM_CLOBBER "cc", "memory" -+# define __LZO_ASM_CLOBBER_LIST_CC : "cc" -+# define __LZO_ASM_CLOBBER_LIST_CC_MEMORY : "cc", "memory" -+# define __LZO_ASM_CLOBBER_LIST_EMPTY /*empty*/ -+#endif -+#endif - #if (LZO_ARCH_ALPHA) --# define LZO_OPT_AVOID_UINT_INDEX 1 --# define LZO_OPT_AVOID_SHORT 1 --# define LZO_OPT_AVOID_USHORT 1 -+# define LZO_OPT_AVOID_UINT_INDEX 1 - #elif (LZO_ARCH_AMD64) --# define LZO_OPT_AVOID_INT_INDEX 1 --# define LZO_OPT_AVOID_UINT_INDEX 1 --# define LZO_OPT_UNALIGNED16 1 --# define LZO_OPT_UNALIGNED32 1 --# define LZO_OPT_UNALIGNED64 1 --#elif (LZO_ARCH_ARM && LZO_ARCH_ARM_THUMB) -+# define LZO_OPT_AVOID_INT_INDEX 1 -+# define LZO_OPT_AVOID_UINT_INDEX 1 -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED64 -+# define LZO_OPT_UNALIGNED64 1 -+# endif - #elif (LZO_ARCH_ARM) --# define LZO_OPT_AVOID_SHORT 1 --# define LZO_OPT_AVOID_USHORT 1 -+# if defined(__ARM_FEATURE_UNALIGNED) -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif -+# elif defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM+0) >= 7) -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif -+# elif defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM+0) >= 6) && !defined(__TARGET_PROFILE_M) -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif -+# endif -+#elif (LZO_ARCH_ARM64) -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED64 -+# define LZO_OPT_UNALIGNED64 1 -+# endif - #elif (LZO_ARCH_CRIS) --# define LZO_OPT_UNALIGNED16 1 --# define LZO_OPT_UNALIGNED32 1 -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif - #elif (LZO_ARCH_I386) --# define LZO_OPT_UNALIGNED16 1 --# define LZO_OPT_UNALIGNED32 1 -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif - #elif (LZO_ARCH_IA64) --# define LZO_OPT_AVOID_INT_INDEX 1 --# define LZO_OPT_AVOID_UINT_INDEX 1 --# define LZO_OPT_PREFER_POSTINC 1 -+# define LZO_OPT_AVOID_INT_INDEX 1 -+# define LZO_OPT_AVOID_UINT_INDEX 1 -+# define LZO_OPT_PREFER_POSTINC 1 - #elif (LZO_ARCH_M68K) --# define LZO_OPT_PREFER_POSTINC 1 --# define LZO_OPT_PREFER_PREDEC 1 -+# define LZO_OPT_PREFER_POSTINC 1 -+# define LZO_OPT_PREFER_PREDEC 1 - # if defined(__mc68020__) && !defined(__mcoldfire__) --# define LZO_OPT_UNALIGNED16 1 --# define LZO_OPT_UNALIGNED32 1 -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif - # endif - #elif (LZO_ARCH_MIPS) --# define LZO_OPT_AVOID_UINT_INDEX 1 -+# define LZO_OPT_AVOID_UINT_INDEX 1 - #elif (LZO_ARCH_POWERPC) --# define LZO_OPT_PREFER_PREINC 1 --# define LZO_OPT_PREFER_PREDEC 1 -+# define LZO_OPT_PREFER_PREINC 1 -+# define LZO_OPT_PREFER_PREDEC 1 - # if (LZO_ABI_BIG_ENDIAN) --# define LZO_OPT_UNALIGNED16 1 --# define LZO_OPT_UNALIGNED32 1 -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif -+# if (LZO_WORDSIZE == 8) -+# ifndef LZO_OPT_UNALIGNED64 -+# define LZO_OPT_UNALIGNED64 1 -+# endif -+# endif - # endif - #elif (LZO_ARCH_S390) --# define LZO_OPT_UNALIGNED16 1 --# define LZO_OPT_UNALIGNED32 1 --# if (LZO_SIZEOF_SIZE_T == 8) --# define LZO_OPT_UNALIGNED64 1 -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif -+# if (LZO_WORDSIZE == 8) -+# ifndef LZO_OPT_UNALIGNED64 -+# define LZO_OPT_UNALIGNED64 1 -+# endif - # endif - #elif (LZO_ARCH_SH) --# define LZO_OPT_PREFER_POSTINC 1 --# define LZO_OPT_PREFER_PREDEC 1 -+# define LZO_OPT_PREFER_POSTINC 1 -+# define LZO_OPT_PREFER_PREDEC 1 - #endif - #ifndef LZO_CFG_NO_INLINE_ASM --#if (LZO_CC_LLVM) -+#if (LZO_ABI_NEUTRAL_ENDIAN) || (LZO_ARCH_GENERIC) - # define LZO_CFG_NO_INLINE_ASM 1 -+#elif (LZO_CC_LLVM) -+# define LZO_CFG_NO_INLINE_ASM 1 -+#endif - #endif -+#if (LZO_CFG_NO_INLINE_ASM) -+# undef LZO_ASM_SYNTAX_MSC -+# undef LZO_ASM_SYNTAX_GNUC -+# undef __LZO_ASM_CLOBBER -+# undef __LZO_ASM_CLOBBER_LIST_CC -+# undef __LZO_ASM_CLOBBER_LIST_CC_MEMORY -+# undef __LZO_ASM_CLOBBER_LIST_EMPTY - #endif - #ifndef LZO_CFG_NO_UNALIGNED - #if (LZO_ABI_NEUTRAL_ENDIAN) || (LZO_ARCH_GENERIC) -@@ -1804,25 +2594,6 @@ extern "C" { - # undef LZO_OPT_UNALIGNED32 - # undef LZO_OPT_UNALIGNED64 - #endif --#if (LZO_CFG_NO_INLINE_ASM) --#elif (LZO_ARCH_I386 && (LZO_OS_DOS32 || LZO_OS_WIN32) && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC)) --# define LZO_ASM_SYNTAX_MSC 1 --#elif (LZO_OS_WIN64 && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC)) --#elif (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC == 0x011f00ul)) --#elif (LZO_ARCH_I386 && (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE)) --# define LZO_ASM_SYNTAX_GNUC 1 --#elif (LZO_ARCH_AMD64 && (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE)) --# define LZO_ASM_SYNTAX_GNUC 1 --#endif --#if (LZO_ASM_SYNTAX_GNUC) --#if (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC < 0x020000ul)) --# define __LZO_ASM_CLOBBER "ax" --#elif (LZO_CC_INTELC) --# define __LZO_ASM_CLOBBER "memory" --#else --# define __LZO_ASM_CLOBBER "cc", "memory" --#endif --#endif - #if defined(__LZO_INFOSTR_MM) - #elif (LZO_MM_FLAT) && (defined(__LZO_INFOSTR_PM) || defined(LZO_INFO_ABI_PM)) - # define __LZO_INFOSTR_MM "" -@@ -1866,6 +2637,381 @@ extern "C" { - #define LZO_INFO_STRING \ - LZO_INFO_ARCH __LZO_INFOSTR_MM __LZO_INFOSTR_PM __LZO_INFOSTR_ENDIAN \ - " " __LZO_INFOSTR_OSNAME __LZO_INFOSTR_LIBC " " LZO_INFO_CC __LZO_INFOSTR_CCVER -+#if !(LZO_CFG_SKIP_LZO_TYPES) -+#if (!(LZO_SIZEOF_SHORT+0 > 0 && LZO_SIZEOF_INT+0 > 0 && LZO_SIZEOF_LONG+0 > 0)) -+# error "missing defines for sizes" -+#endif -+#if (!(LZO_SIZEOF_PTRDIFF_T+0 > 0 && LZO_SIZEOF_SIZE_T+0 > 0 && LZO_SIZEOF_VOID_P+0 > 0)) -+# error "missing defines for sizes" -+#endif -+#if !defined(lzo_llong_t) -+#if (LZO_SIZEOF_LONG_LONG+0 > 0) -+__lzo_gnuc_extension__ typedef long long lzo_llong_t__; -+__lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__; -+# define lzo_llong_t lzo_llong_t__ -+# define lzo_ullong_t lzo_ullong_t__ -+#endif -+#endif -+#if !defined(lzo_int16e_t) -+#if (LZO_SIZEOF_LONG == 2) -+# define lzo_int16e_t long -+# define lzo_uint16e_t unsigned long -+#elif (LZO_SIZEOF_INT == 2) -+# define lzo_int16e_t int -+# define lzo_uint16e_t unsigned int -+#elif (LZO_SIZEOF_SHORT == 2) -+# define lzo_int16e_t short int -+# define lzo_uint16e_t unsigned short int -+#elif 1 && !(LZO_CFG_TYPE_NO_MODE_HI) && (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x025f00ul) || LZO_CC_LLVM) -+ typedef int lzo_int16e_hi_t__ __attribute__((__mode__(__HI__))); -+ typedef unsigned int lzo_uint16e_hi_t__ __attribute__((__mode__(__HI__))); -+# define lzo_int16e_t lzo_int16e_hi_t__ -+# define lzo_uint16e_t lzo_uint16e_hi_t__ -+#elif (LZO_SIZEOF___INT16 == 2) -+# define lzo_int16e_t __int16 -+# define lzo_uint16e_t unsigned __int16 -+#else -+#endif -+#endif -+#if defined(lzo_int16e_t) -+# define LZO_SIZEOF_LZO_INT16E_T 2 -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16e_t) == 2) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16e_t) == LZO_SIZEOF_LZO_INT16E_T) -+#endif -+#if !defined(lzo_int32e_t) -+#if (LZO_SIZEOF_LONG == 4) -+# define lzo_int32e_t long int -+# define lzo_uint32e_t unsigned long int -+#elif (LZO_SIZEOF_INT == 4) -+# define lzo_int32e_t int -+# define lzo_uint32e_t unsigned int -+#elif (LZO_SIZEOF_SHORT == 4) -+# define lzo_int32e_t short int -+# define lzo_uint32e_t unsigned short int -+#elif (LZO_SIZEOF_LONG_LONG == 4) -+# define lzo_int32e_t lzo_llong_t -+# define lzo_uint32e_t lzo_ullong_t -+#elif 1 && !(LZO_CFG_TYPE_NO_MODE_SI) && (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x025f00ul) || LZO_CC_LLVM) && (__INT_MAX__+0 > 2147483647L) -+ typedef int lzo_int32e_si_t__ __attribute__((__mode__(__SI__))); -+ typedef unsigned int lzo_uint32e_si_t__ __attribute__((__mode__(__SI__))); -+# define lzo_int32e_t lzo_int32e_si_t__ -+# define lzo_uint32e_t lzo_uint32e_si_t__ -+#elif 1 && !(LZO_CFG_TYPE_NO_MODE_SI) && (LZO_CC_GNUC >= 0x025f00ul) && defined(__AVR__) && (__LONG_MAX__+0 == 32767L) -+ typedef int lzo_int32e_si_t__ __attribute__((__mode__(__SI__))); -+ typedef unsigned int lzo_uint32e_si_t__ __attribute__((__mode__(__SI__))); -+# define lzo_int32e_t lzo_int32e_si_t__ -+# define lzo_uint32e_t lzo_uint32e_si_t__ -+# define LZO_INT32_C(c) (c##LL) -+# define LZO_UINT32_C(c) (c##ULL) -+#elif (LZO_SIZEOF___INT32 == 4) -+# define lzo_int32e_t __int32 -+# define lzo_uint32e_t unsigned __int32 -+#else -+#endif -+#endif -+#if defined(lzo_int32e_t) -+# define LZO_SIZEOF_LZO_INT32E_T 4 -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32e_t) == 4) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32e_t) == LZO_SIZEOF_LZO_INT32E_T) -+#endif -+#if !defined(lzo_int64e_t) -+#if (LZO_SIZEOF___INT64 == 8) -+# if (LZO_CC_BORLANDC) && !(LZO_CFG_TYPE_PREFER___INT64) -+# define LZO_CFG_TYPE_PREFER___INT64 1 -+# endif -+#endif -+#if (LZO_SIZEOF_INT == 8) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG) -+# define lzo_int64e_t int -+# define lzo_uint64e_t unsigned int -+# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_INT -+#elif (LZO_SIZEOF_LONG == 8) -+# define lzo_int64e_t long int -+# define lzo_uint64e_t unsigned long int -+# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_LONG -+#elif (LZO_SIZEOF_LONG_LONG == 8) && !(LZO_CFG_TYPE_PREFER___INT64) -+# define lzo_int64e_t lzo_llong_t -+# define lzo_uint64e_t lzo_ullong_t -+# if (LZO_CC_BORLANDC) -+# define LZO_INT64_C(c) ((c) + 0ll) -+# define LZO_UINT64_C(c) ((c) + 0ull) -+# elif 0 -+# define LZO_INT64_C(c) (__lzo_gnuc_extension__ (c##LL)) -+# define LZO_UINT64_C(c) (__lzo_gnuc_extension__ (c##ULL)) -+# else -+# define LZO_INT64_C(c) (c##LL) -+# define LZO_UINT64_C(c) (c##ULL) -+# endif -+# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_LONG_LONG -+#elif (LZO_SIZEOF___INT64 == 8) -+# define lzo_int64e_t __int64 -+# define lzo_uint64e_t unsigned __int64 -+# if (LZO_CC_BORLANDC) -+# define LZO_INT64_C(c) ((c) + 0i64) -+# define LZO_UINT64_C(c) ((c) + 0ui64) -+# else -+# define LZO_INT64_C(c) (c##i64) -+# define LZO_UINT64_C(c) (c##ui64) -+# endif -+# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF___INT64 -+#else -+#endif -+#endif -+#if defined(lzo_int64e_t) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64e_t) == 8) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64e_t) == LZO_SIZEOF_LZO_INT64E_T) -+#endif -+#if !defined(lzo_int32l_t) -+#if defined(lzo_int32e_t) -+# define lzo_int32l_t lzo_int32e_t -+# define lzo_uint32l_t lzo_uint32e_t -+# define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_LZO_INT32E_T -+#elif (LZO_SIZEOF_INT >= 4) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG) -+# define lzo_int32l_t int -+# define lzo_uint32l_t unsigned int -+# define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_INT -+#elif (LZO_SIZEOF_LONG >= 4) -+# define lzo_int32l_t long int -+# define lzo_uint32l_t unsigned long int -+# define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_LONG -+#else -+# error "lzo_int32l_t" -+#endif -+#endif -+#if 1 -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32l_t) >= 4) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32l_t) == LZO_SIZEOF_LZO_INT32L_T) -+#endif -+#if !defined(lzo_int64l_t) -+#if defined(lzo_int64e_t) -+# define lzo_int64l_t lzo_int64e_t -+# define lzo_uint64l_t lzo_uint64e_t -+# define LZO_SIZEOF_LZO_INT64L_T LZO_SIZEOF_LZO_INT64E_T -+#else -+#endif -+#endif -+#if defined(lzo_int64l_t) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64l_t) >= 8) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64l_t) == LZO_SIZEOF_LZO_INT64L_T) -+#endif -+#if !defined(lzo_int32f_t) -+#if (LZO_SIZEOF_SIZE_T >= 8) -+# define lzo_int32f_t lzo_int64l_t -+# define lzo_uint32f_t lzo_uint64l_t -+# define LZO_SIZEOF_LZO_INT32F_T LZO_SIZEOF_LZO_INT64L_T -+#else -+# define lzo_int32f_t lzo_int32l_t -+# define lzo_uint32f_t lzo_uint32l_t -+# define LZO_SIZEOF_LZO_INT32F_T LZO_SIZEOF_LZO_INT32L_T -+#endif -+#endif -+#if 1 -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32f_t) >= 4) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32f_t) == LZO_SIZEOF_LZO_INT32F_T) -+#endif -+#if !defined(lzo_int64f_t) -+#if defined(lzo_int64l_t) -+# define lzo_int64f_t lzo_int64l_t -+# define lzo_uint64f_t lzo_uint64l_t -+# define LZO_SIZEOF_LZO_INT64F_T LZO_SIZEOF_LZO_INT64L_T -+#else -+#endif -+#endif -+#if defined(lzo_int64f_t) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64f_t) >= 8) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64f_t) == LZO_SIZEOF_LZO_INT64F_T) -+#endif -+#if !defined(lzo_intptr_t) -+#if 1 && (LZO_OS_OS400 && (LZO_SIZEOF_VOID_P == 16)) -+# define __LZO_INTPTR_T_IS_POINTER 1 -+ typedef char* lzo_intptr_t; -+ typedef char* lzo_uintptr_t; -+# define lzo_intptr_t lzo_intptr_t -+# define lzo_uintptr_t lzo_uintptr_t -+# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_VOID_P -+#elif (LZO_CC_MSC && (_MSC_VER >= 1300) && (LZO_SIZEOF_VOID_P == 4) && (LZO_SIZEOF_INT == 4)) -+ typedef __w64 int lzo_intptr_t; -+ typedef __w64 unsigned int lzo_uintptr_t; -+# define lzo_intptr_t lzo_intptr_t -+# define lzo_uintptr_t lzo_uintptr_t -+# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_INT -+#elif (LZO_SIZEOF_SHORT == LZO_SIZEOF_VOID_P) && (LZO_SIZEOF_INT > LZO_SIZEOF_VOID_P) -+# define lzo_intptr_t short -+# define lzo_uintptr_t unsigned short -+# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_SHORT -+#elif (LZO_SIZEOF_INT >= LZO_SIZEOF_VOID_P) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG) -+# define lzo_intptr_t int -+# define lzo_uintptr_t unsigned int -+# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_INT -+#elif (LZO_SIZEOF_LONG >= LZO_SIZEOF_VOID_P) -+# define lzo_intptr_t long -+# define lzo_uintptr_t unsigned long -+# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_LONG -+#elif (LZO_SIZEOF_LZO_INT64L_T >= LZO_SIZEOF_VOID_P) -+# define lzo_intptr_t lzo_int64l_t -+# define lzo_uintptr_t lzo_uint64l_t -+# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_LZO_INT64L_T -+#else -+# error "lzo_intptr_t" -+#endif -+#endif -+#if 1 -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_intptr_t) >= sizeof(void *)) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_intptr_t) == sizeof(lzo_uintptr_t)) -+#endif -+#if !defined(lzo_word_t) -+#if defined(LZO_WORDSIZE) && (LZO_WORDSIZE+0 > 0) -+#if (LZO_WORDSIZE == LZO_SIZEOF_LZO_INTPTR_T) && !(__LZO_INTPTR_T_IS_POINTER) -+# define lzo_word_t lzo_uintptr_t -+# define lzo_sword_t lzo_intptr_t -+# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INTPTR_T -+#elif (LZO_WORDSIZE == LZO_SIZEOF_LONG) -+# define lzo_word_t unsigned long -+# define lzo_sword_t long -+# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LONG -+#elif (LZO_WORDSIZE == LZO_SIZEOF_INT) -+# define lzo_word_t unsigned int -+# define lzo_sword_t int -+# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_INT -+#elif (LZO_WORDSIZE == LZO_SIZEOF_SHORT) -+# define lzo_word_t unsigned short -+# define lzo_sword_t short -+# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_SHORT -+#elif (LZO_WORDSIZE == 1) -+# define lzo_word_t unsigned char -+# define lzo_sword_t signed char -+# define LZO_SIZEOF_LZO_WORD_T 1 -+#elif (LZO_WORDSIZE == LZO_SIZEOF_LZO_INT64L_T) -+# define lzo_word_t lzo_uint64l_t -+# define lzo_sword_t lzo_int64l_t -+# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INT64L_T -+#elif (LZO_ARCH_SPU) && (LZO_CC_GNUC) -+#if 0 -+ typedef unsigned lzo_word_t __attribute__((__mode__(__V16QI__))); -+ typedef int lzo_sword_t __attribute__((__mode__(__V16QI__))); -+# define lzo_word_t lzo_word_t -+# define lzo_sword_t lzo_sword_t -+# define LZO_SIZEOF_LZO_WORD_T 16 -+#endif -+#else -+# error "lzo_word_t" -+#endif -+#endif -+#endif -+#if 1 && defined(lzo_word_t) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_word_t) == LZO_WORDSIZE) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_sword_t) == LZO_WORDSIZE) -+#endif -+#if 1 -+#define lzo_int8_t signed char -+#define lzo_uint8_t unsigned char -+#define LZO_SIZEOF_LZO_INT8_T 1 -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == 1) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == sizeof(lzo_uint8_t)) -+#endif -+#if defined(lzo_int16e_t) -+#define lzo_int16_t lzo_int16e_t -+#define lzo_uint16_t lzo_uint16e_t -+#define LZO_SIZEOF_LZO_INT16_T LZO_SIZEOF_LZO_INT16E_T -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == 2) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == sizeof(lzo_uint16_t)) -+#endif -+#if defined(lzo_int32e_t) -+#define lzo_int32_t lzo_int32e_t -+#define lzo_uint32_t lzo_uint32e_t -+#define LZO_SIZEOF_LZO_INT32_T LZO_SIZEOF_LZO_INT32E_T -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == 4) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == sizeof(lzo_uint32_t)) -+#endif -+#if defined(lzo_int64e_t) -+#define lzo_int64_t lzo_int64e_t -+#define lzo_uint64_t lzo_uint64e_t -+#define LZO_SIZEOF_LZO_INT64_T LZO_SIZEOF_LZO_INT64E_T -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == 8) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == sizeof(lzo_uint64_t)) -+#endif -+#if 1 -+#define lzo_int_least32_t lzo_int32l_t -+#define lzo_uint_least32_t lzo_uint32l_t -+#define LZO_SIZEOF_LZO_INT_LEAST32_T LZO_SIZEOF_LZO_INT32L_T -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) >= 4) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) == sizeof(lzo_uint_least32_t)) -+#endif -+#if defined(lzo_int64l_t) -+#define lzo_int_least64_t lzo_int64l_t -+#define lzo_uint_least64_t lzo_uint64l_t -+#define LZO_SIZEOF_LZO_INT_LEAST64_T LZO_SIZEOF_LZO_INT64L_T -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) >= 8) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) == sizeof(lzo_uint_least64_t)) -+#endif -+#if 1 -+#define lzo_int_fast32_t lzo_int32f_t -+#define lzo_uint_fast32_t lzo_uint32f_t -+#define LZO_SIZEOF_LZO_INT_FAST32_T LZO_SIZEOF_LZO_INT32F_T -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) >= 4) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) == sizeof(lzo_uint_fast32_t)) -+#endif -+#if defined(lzo_int64f_t) -+#define lzo_int_fast64_t lzo_int64f_t -+#define lzo_uint_fast64_t lzo_uint64f_t -+#define LZO_SIZEOF_LZO_INT_FAST64_T LZO_SIZEOF_LZO_INT64F_T -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) >= 8) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) == sizeof(lzo_uint_fast64_t)) -+#endif -+#if !defined(LZO_INT16_C) -+# if (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_INT >= 2) -+# define LZO_INT16_C(c) ((c) + 0) -+# define LZO_UINT16_C(c) ((c) + 0U) -+# elif (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_LONG >= 2) -+# define LZO_INT16_C(c) ((c) + 0L) -+# define LZO_UINT16_C(c) ((c) + 0UL) -+# elif (LZO_SIZEOF_INT >= 2) -+# define LZO_INT16_C(c) (c) -+# define LZO_UINT16_C(c) (c##U) -+# elif (LZO_SIZEOF_LONG >= 2) -+# define LZO_INT16_C(c) (c##L) -+# define LZO_UINT16_C(c) (c##UL) -+# else -+# error "LZO_INT16_C" -+# endif -+#endif -+#if !defined(LZO_INT32_C) -+# if (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_INT >= 4) -+# define LZO_INT32_C(c) ((c) + 0) -+# define LZO_UINT32_C(c) ((c) + 0U) -+# elif (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_LONG >= 4) -+# define LZO_INT32_C(c) ((c) + 0L) -+# define LZO_UINT32_C(c) ((c) + 0UL) -+# elif (LZO_SIZEOF_INT >= 4) -+# define LZO_INT32_C(c) (c) -+# define LZO_UINT32_C(c) (c##U) -+# elif (LZO_SIZEOF_LONG >= 4) -+# define LZO_INT32_C(c) (c##L) -+# define LZO_UINT32_C(c) (c##UL) -+# elif (LZO_SIZEOF_LONG_LONG >= 4) -+# define LZO_INT32_C(c) (c##LL) -+# define LZO_UINT32_C(c) (c##ULL) -+# else -+# error "LZO_INT32_C" -+# endif -+#endif -+#if !defined(LZO_INT64_C) && defined(lzo_int64l_t) -+# if (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_INT >= 8) -+# define LZO_INT64_C(c) ((c) + 0) -+# define LZO_UINT64_C(c) ((c) + 0U) -+# elif (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_LONG >= 8) -+# define LZO_INT64_C(c) ((c) + 0L) -+# define LZO_UINT64_C(c) ((c) + 0UL) -+# elif (LZO_SIZEOF_INT >= 8) -+# define LZO_INT64_C(c) (c) -+# define LZO_UINT64_C(c) (c##U) -+# elif (LZO_SIZEOF_LONG >= 8) -+# define LZO_INT64_C(c) (c##L) -+# define LZO_UINT64_C(c) (c##UL) -+# else -+# error "LZO_INT64_C" -+# endif -+#endif -+#endif - - #endif - -@@ -1874,7 +3020,7 @@ extern "C" { - #undef LZO_HAVE_CONFIG_H - #include "minilzo.h" - --#if !defined(MINILZO_VERSION) || (MINILZO_VERSION != 0x2050) -+#if !defined(MINILZO_VERSION) || (MINILZO_VERSION != 0x2080) - # error "version mismatch in miniLZO source files" - #endif - -@@ -1886,23 +3032,9 @@ extern "C" { - #define __LZO_CONF_H 1 - - #if !defined(__LZO_IN_MINILZO) --#if (LZO_CFG_FREESTANDING) -+#if defined(LZO_CFG_FREESTANDING) && (LZO_CFG_FREESTANDING) - # define LZO_LIBC_FREESTANDING 1 - # define LZO_OS_FREESTANDING 1 --# define ACC_LIBC_FREESTANDING 1 --# define ACC_OS_FREESTANDING 1 --#endif --#if (LZO_CFG_NO_UNALIGNED) --# define ACC_CFG_NO_UNALIGNED 1 --#endif --#if (LZO_ARCH_GENERIC) --# define ACC_ARCH_GENERIC 1 --#endif --#if (LZO_ABI_NEUTRAL_ENDIAN) --# define ACC_ABI_NEUTRAL_ENDIAN 1 --#endif --#if (LZO_HAVE_CONFIG_H) --# define ACC_CONFIG_NO_HEADER 1 - #endif - #if defined(LZO_CFG_EXTRA_CONFIG_HEADER) - # include LZO_CFG_EXTRA_CONFIG_HEADER -@@ -1911,22 +3043,27 @@ extern "C" { - # error "include this file first" - #endif - #include "lzo/lzoconf.h" -+#if defined(LZO_CFG_EXTRA_CONFIG_HEADER2) -+# include LZO_CFG_EXTRA_CONFIG_HEADER2 -+#endif - #endif - --#if (LZO_VERSION < 0x02000) || !defined(__LZOCONF_H_INCLUDED) -+#if (LZO_VERSION < 0x2080) || !defined(__LZOCONF_H_INCLUDED) - # error "version mismatch" - #endif - --#if (LZO_CC_BORLANDC && LZO_ARCH_I086) --# pragma option -h -+#if (LZO_CC_MSC && (_MSC_VER >= 1000 && _MSC_VER < 1100)) -+# pragma warning(disable: 4702) - #endif -- - #if (LZO_CC_MSC && (_MSC_VER >= 1000)) - # pragma warning(disable: 4127 4701) -+# pragma warning(disable: 4514 4710 4711) - #endif - #if (LZO_CC_MSC && (_MSC_VER >= 1300)) - # pragma warning(disable: 4820) --# pragma warning(disable: 4514 4710 4711) -+#endif -+#if (LZO_CC_MSC && (_MSC_VER >= 1800)) -+# pragma warning(disable: 4746) - #endif - - #if (LZO_CC_SUNPROC) -@@ -1937,48 +3074,15 @@ extern "C" { - #endif - #endif - --#if (__LZO_MMODEL_HUGE) && !(LZO_HAVE_MM_HUGE_PTR) --# error "this should not happen - check defines for __huge" --#endif -- --#if defined(__LZO_IN_MINILZO) || defined(LZO_CFG_FREESTANDING) --#elif (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16) --# define ACC_WANT_ACC_INCD_H 1 --# define ACC_WANT_ACC_INCE_H 1 --# define ACC_WANT_ACC_INCI_H 1 -+#if defined(__LZO_IN_MINILZO) || (LZO_CFG_FREESTANDING) - #elif 1 - # include - #else --# define ACC_WANT_ACC_INCD_H 1 -+# define LZO_WANT_ACC_INCD_H 1 - #endif -- --#if (LZO_ARCH_I086) --# define ACC_MM_AHSHIFT LZO_MM_AHSHIFT --# define ACC_PTR_FP_OFF(x) (((const unsigned __far*)&(x))[0]) --# define ACC_PTR_FP_SEG(x) (((const unsigned __far*)&(x))[1]) --# define ACC_PTR_MK_FP(s,o) ((void __far*)(((unsigned long)(s)<<16)+(unsigned)(o))) --#endif -- --#if !defined(lzo_uintptr_t) --# if defined(__LZO_MMODEL_HUGE) --# define lzo_uintptr_t unsigned long --# elif 1 && defined(LZO_OS_OS400) && (LZO_SIZEOF_VOID_P == 16) --# define __LZO_UINTPTR_T_IS_POINTER 1 -- typedef char* lzo_uintptr_t; --# define lzo_uintptr_t lzo_uintptr_t --# elif (LZO_SIZEOF_SIZE_T == LZO_SIZEOF_VOID_P) --# define lzo_uintptr_t size_t --# elif (LZO_SIZEOF_LONG == LZO_SIZEOF_VOID_P) --# define lzo_uintptr_t unsigned long --# elif (LZO_SIZEOF_INT == LZO_SIZEOF_VOID_P) --# define lzo_uintptr_t unsigned int --# elif (LZO_SIZEOF_LONG_LONG == LZO_SIZEOF_VOID_P) --# define lzo_uintptr_t unsigned long long --# else --# define lzo_uintptr_t size_t --# endif -+#if defined(LZO_HAVE_CONFIG_H) -+# define LZO_CFG_NO_CONFIG_HEADER 1 - #endif --LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uintptr_t) >= sizeof(lzo_voidp)) - - #if 1 && !defined(LZO_CFG_FREESTANDING) - #if 1 && !defined(HAVE_STRING_H) -@@ -2002,6 +3106,23 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uintptr_t) >= sizeof(lzo_voidp)) - #include - #endif - -+#if 1 || defined(lzo_int8_t) || defined(lzo_uint8_t) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == 1) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint8_t) == 1) -+#endif -+#if 1 || defined(lzo_int16_t) || defined(lzo_uint16_t) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == 2) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint16_t) == 2) -+#endif -+#if 1 || defined(lzo_int32_t) || defined(lzo_uint32_t) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == 4) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint32_t) == 4) -+#endif -+#if defined(lzo_int64_t) || defined(lzo_uint64_t) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == 8) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint64_t) == 8) -+#endif -+ - #if (LZO_CFG_FREESTANDING) - # undef HAVE_MEMCMP - # undef HAVE_MEMCPY -@@ -2012,169 +3133,635 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uintptr_t) >= sizeof(lzo_voidp)) - #if !(HAVE_MEMCMP) - # undef memcmp - # define memcmp(a,b,c) lzo_memcmp(a,b,c) --#elif !(__LZO_MMODEL_HUGE) -+#else - # undef lzo_memcmp - # define lzo_memcmp(a,b,c) memcmp(a,b,c) - #endif - #if !(HAVE_MEMCPY) - # undef memcpy - # define memcpy(a,b,c) lzo_memcpy(a,b,c) --#elif !(__LZO_MMODEL_HUGE) -+#else - # undef lzo_memcpy - # define lzo_memcpy(a,b,c) memcpy(a,b,c) - #endif - #if !(HAVE_MEMMOVE) - # undef memmove - # define memmove(a,b,c) lzo_memmove(a,b,c) --#elif !(__LZO_MMODEL_HUGE) -+#else - # undef lzo_memmove - # define lzo_memmove(a,b,c) memmove(a,b,c) - #endif - #if !(HAVE_MEMSET) - # undef memset - # define memset(a,b,c) lzo_memset(a,b,c) --#elif !(__LZO_MMODEL_HUGE) -+#else - # undef lzo_memset - # define lzo_memset(a,b,c) memset(a,b,c) - #endif - --#undef NDEBUG --#if (LZO_CFG_FREESTANDING) --# undef LZO_DEBUG --# define NDEBUG 1 --# undef assert --# define assert(e) ((void)0) -+#undef NDEBUG -+#if (LZO_CFG_FREESTANDING) -+# undef LZO_DEBUG -+# define NDEBUG 1 -+# undef assert -+# define assert(e) ((void)0) -+#else -+# if !defined(LZO_DEBUG) -+# define NDEBUG 1 -+# endif -+# include -+#endif -+ -+#if 0 && defined(__BOUNDS_CHECKING_ON) -+# include -+#else -+# define BOUNDS_CHECKING_OFF_DURING(stmt) stmt -+# define BOUNDS_CHECKING_OFF_IN_EXPR(expr) (expr) -+#endif -+ -+#if (LZO_CFG_PGO) -+# undef __lzo_likely -+# undef __lzo_unlikely -+# define __lzo_likely(e) (e) -+# define __lzo_unlikely(e) (e) -+#endif -+ -+#undef _ -+#undef __ -+#undef ___ -+#undef ____ -+#undef _p0 -+#undef _p1 -+#undef _p2 -+#undef _p3 -+#undef _p4 -+#undef _s0 -+#undef _s1 -+#undef _s2 -+#undef _s3 -+#undef _s4 -+#undef _ww -+ -+#if 1 -+# define LZO_BYTE(x) ((unsigned char) (x)) -+#else -+# define LZO_BYTE(x) ((unsigned char) ((x) & 0xff)) -+#endif -+ -+#define LZO_MAX(a,b) ((a) >= (b) ? (a) : (b)) -+#define LZO_MIN(a,b) ((a) <= (b) ? (a) : (b)) -+#define LZO_MAX3(a,b,c) ((a) >= (b) ? LZO_MAX(a,c) : LZO_MAX(b,c)) -+#define LZO_MIN3(a,b,c) ((a) <= (b) ? LZO_MIN(a,c) : LZO_MIN(b,c)) -+ -+#define lzo_sizeof(type) ((lzo_uint) (sizeof(type))) -+ -+#define LZO_HIGH(array) ((lzo_uint) (sizeof(array)/sizeof(*(array)))) -+ -+#define LZO_SIZE(bits) (1u << (bits)) -+#define LZO_MASK(bits) (LZO_SIZE(bits) - 1) -+ -+#define LZO_USIZE(bits) ((lzo_uint) 1 << (bits)) -+#define LZO_UMASK(bits) (LZO_USIZE(bits) - 1) -+ -+#if !defined(DMUL) -+#if 0 -+ -+# define DMUL(a,b) ((lzo_xint) ((lzo_uint32_t)(a) * (lzo_uint32_t)(b))) -+#else -+# define DMUL(a,b) ((lzo_xint) ((a) * (b))) -+#endif -+#endif -+ -+#ifndef __LZO_FUNC_H -+#define __LZO_FUNC_H 1 -+ -+#if !defined(LZO_BITOPS_USE_ASM_BITSCAN) && !defined(LZO_BITOPS_USE_GNUC_BITSCAN) && !defined(LZO_BITOPS_USE_MSC_BITSCAN) -+#if 1 && (LZO_ARCH_AMD64) && (LZO_CC_GNUC && (LZO_CC_GNUC < 0x040000ul)) && (LZO_ASM_SYNTAX_GNUC) -+#define LZO_BITOPS_USE_ASM_BITSCAN 1 -+#elif (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x030400ul) || (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 1000)) || (LZO_CC_LLVM && (!defined(__llvm_tools_version__) || (__llvm_tools_version__+0 >= 0x010500ul)))) -+#define LZO_BITOPS_USE_GNUC_BITSCAN 1 -+#elif (LZO_OS_WIN32 || LZO_OS_WIN64) && ((LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 1010)) || (LZO_CC_MSC && (_MSC_VER >= 1400))) -+#define LZO_BITOPS_USE_MSC_BITSCAN 1 -+#if (LZO_CC_MSC) && (LZO_ARCH_AMD64 || LZO_ARCH_I386) -+#include -+#endif -+#if (LZO_CC_MSC) && (LZO_ARCH_AMD64 || LZO_ARCH_I386) -+#pragma intrinsic(_BitScanReverse) -+#pragma intrinsic(_BitScanForward) -+#endif -+#if (LZO_CC_MSC) && (LZO_ARCH_AMD64) -+#pragma intrinsic(_BitScanReverse64) -+#pragma intrinsic(_BitScanForward64) -+#endif -+#endif -+#endif -+ -+__lzo_static_forceinline unsigned lzo_bitops_ctlz32_func(lzo_uint32_t v) -+{ -+#if (LZO_BITOPS_USE_MSC_BITSCAN) && (LZO_ARCH_AMD64 || LZO_ARCH_I386) -+ unsigned long r; (void) _BitScanReverse(&r, v); return (unsigned) r ^ 31; -+#define lzo_bitops_ctlz32(v) lzo_bitops_ctlz32_func(v) -+#elif (LZO_BITOPS_USE_ASM_BITSCAN) && (LZO_ARCH_AMD64 || LZO_ARCH_I386) && (LZO_ASM_SYNTAX_GNUC) -+ lzo_uint32_t r; -+ __asm__("bsr %1,%0" : "=r" (r) : "rm" (v) __LZO_ASM_CLOBBER_LIST_CC); -+ return (unsigned) r ^ 31; -+#define lzo_bitops_ctlz32(v) lzo_bitops_ctlz32_func(v) -+#elif (LZO_BITOPS_USE_GNUC_BITSCAN) && (LZO_SIZEOF_INT == 4) -+ unsigned r; r = (unsigned) __builtin_clz(v); return r; -+#define lzo_bitops_ctlz32(v) ((unsigned) __builtin_clz(v)) -+#else -+ LZO_UNUSED(v); return 0; -+#endif -+} -+ -+#if defined(lzo_uint64_t) -+__lzo_static_forceinline unsigned lzo_bitops_ctlz64_func(lzo_uint64_t v) -+{ -+#if (LZO_BITOPS_USE_MSC_BITSCAN) && (LZO_ARCH_AMD64) -+ unsigned long r; (void) _BitScanReverse64(&r, v); return (unsigned) r ^ 63; -+#define lzo_bitops_ctlz64(v) lzo_bitops_ctlz64_func(v) -+#elif (LZO_BITOPS_USE_ASM_BITSCAN) && (LZO_ARCH_AMD64) && (LZO_ASM_SYNTAX_GNUC) -+ lzo_uint64_t r; -+ __asm__("bsr %1,%0" : "=r" (r) : "rm" (v) __LZO_ASM_CLOBBER_LIST_CC); -+ return (unsigned) r ^ 63; -+#define lzo_bitops_ctlz64(v) lzo_bitops_ctlz64_func(v) -+#elif (LZO_BITOPS_USE_GNUC_BITSCAN) && (LZO_SIZEOF_LONG == 8) && (LZO_WORDSIZE >= 8) -+ unsigned r; r = (unsigned) __builtin_clzl(v); return r; -+#define lzo_bitops_ctlz64(v) ((unsigned) __builtin_clzl(v)) -+#elif (LZO_BITOPS_USE_GNUC_BITSCAN) && (LZO_SIZEOF_LONG_LONG == 8) && (LZO_WORDSIZE >= 8) -+ unsigned r; r = (unsigned) __builtin_clzll(v); return r; -+#define lzo_bitops_ctlz64(v) ((unsigned) __builtin_clzll(v)) -+#else -+ LZO_UNUSED(v); return 0; -+#endif -+} -+#endif -+ -+__lzo_static_forceinline unsigned lzo_bitops_cttz32_func(lzo_uint32_t v) -+{ -+#if (LZO_BITOPS_USE_MSC_BITSCAN) && (LZO_ARCH_AMD64 || LZO_ARCH_I386) -+ unsigned long r; (void) _BitScanForward(&r, v); return (unsigned) r; -+#define lzo_bitops_cttz32(v) lzo_bitops_cttz32_func(v) -+#elif (LZO_BITOPS_USE_ASM_BITSCAN) && (LZO_ARCH_AMD64 || LZO_ARCH_I386) && (LZO_ASM_SYNTAX_GNUC) -+ lzo_uint32_t r; -+ __asm__("bsf %1,%0" : "=r" (r) : "rm" (v) __LZO_ASM_CLOBBER_LIST_CC); -+ return (unsigned) r; -+#define lzo_bitops_cttz32(v) lzo_bitops_cttz32_func(v) -+#elif (LZO_BITOPS_USE_GNUC_BITSCAN) && (LZO_SIZEOF_INT >= 4) -+ unsigned r; r = (unsigned) __builtin_ctz(v); return r; -+#define lzo_bitops_cttz32(v) ((unsigned) __builtin_ctz(v)) -+#else -+ LZO_UNUSED(v); return 0; -+#endif -+} -+ -+#if defined(lzo_uint64_t) -+__lzo_static_forceinline unsigned lzo_bitops_cttz64_func(lzo_uint64_t v) -+{ -+#if (LZO_BITOPS_USE_MSC_BITSCAN) && (LZO_ARCH_AMD64) -+ unsigned long r; (void) _BitScanForward64(&r, v); return (unsigned) r; -+#define lzo_bitops_cttz64(v) lzo_bitops_cttz64_func(v) -+#elif (LZO_BITOPS_USE_ASM_BITSCAN) && (LZO_ARCH_AMD64) && (LZO_ASM_SYNTAX_GNUC) -+ lzo_uint64_t r; -+ __asm__("bsf %1,%0" : "=r" (r) : "rm" (v) __LZO_ASM_CLOBBER_LIST_CC); -+ return (unsigned) r; -+#define lzo_bitops_cttz64(v) lzo_bitops_cttz64_func(v) -+#elif (LZO_BITOPS_USE_GNUC_BITSCAN) && (LZO_SIZEOF_LONG >= 8) && (LZO_WORDSIZE >= 8) -+ unsigned r; r = (unsigned) __builtin_ctzl(v); return r; -+#define lzo_bitops_cttz64(v) ((unsigned) __builtin_ctzl(v)) -+#elif (LZO_BITOPS_USE_GNUC_BITSCAN) && (LZO_SIZEOF_LONG_LONG >= 8) && (LZO_WORDSIZE >= 8) -+ unsigned r; r = (unsigned) __builtin_ctzll(v); return r; -+#define lzo_bitops_cttz64(v) ((unsigned) __builtin_ctzll(v)) -+#else -+ LZO_UNUSED(v); return 0; -+#endif -+} -+#endif -+ -+#if 1 && (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || (LZO_CC_GNUC >= 0x020700ul) || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) -+static void __attribute__((__unused__)) -+#else -+__lzo_static_forceinline void -+#endif -+lzo_bitops_unused_funcs(void) -+{ -+ LZO_UNUSED_FUNC(lzo_bitops_ctlz32_func); -+ LZO_UNUSED_FUNC(lzo_bitops_cttz32_func); -+#if defined(lzo_uint64_t) -+ LZO_UNUSED_FUNC(lzo_bitops_ctlz64_func); -+ LZO_UNUSED_FUNC(lzo_bitops_cttz64_func); -+#endif -+ LZO_UNUSED_FUNC(lzo_bitops_unused_funcs); -+} -+ -+#if defined(__lzo_alignof) && !(LZO_CFG_NO_UNALIGNED) -+#ifndef __lzo_memops_tcheck -+#define __lzo_memops_tcheck(t,a,b) ((void)0, sizeof(t) == (a) && __lzo_alignof(t) == (b)) -+#endif -+#endif -+#ifndef lzo_memops_TU0p -+#define lzo_memops_TU0p void __LZO_MMODEL * -+#endif -+#ifndef lzo_memops_TU1p -+#define lzo_memops_TU1p unsigned char __LZO_MMODEL * -+#endif -+#ifndef lzo_memops_TU2p -+#if (LZO_OPT_UNALIGNED16) -+typedef lzo_uint16_t __lzo_may_alias lzo_memops_TU2; -+#define lzo_memops_TU2p volatile lzo_memops_TU2 * -+#elif defined(__lzo_byte_struct) -+__lzo_byte_struct(lzo_memops_TU2_struct,2) -+typedef struct lzo_memops_TU2_struct lzo_memops_TU2; -+#else -+struct lzo_memops_TU2_struct { unsigned char a[2]; } __lzo_may_alias; -+typedef struct lzo_memops_TU2_struct lzo_memops_TU2; -+#endif -+#ifndef lzo_memops_TU2p -+#define lzo_memops_TU2p lzo_memops_TU2 * -+#endif -+#endif -+#ifndef lzo_memops_TU4p -+#if (LZO_OPT_UNALIGNED32) -+typedef lzo_uint32_t __lzo_may_alias lzo_memops_TU4; -+#define lzo_memops_TU4p volatile lzo_memops_TU4 __LZO_MMODEL * -+#elif defined(__lzo_byte_struct) -+__lzo_byte_struct(lzo_memops_TU4_struct,4) -+typedef struct lzo_memops_TU4_struct lzo_memops_TU4; -+#else -+struct lzo_memops_TU4_struct { unsigned char a[4]; } __lzo_may_alias; -+typedef struct lzo_memops_TU4_struct lzo_memops_TU4; -+#endif -+#ifndef lzo_memops_TU4p -+#define lzo_memops_TU4p lzo_memops_TU4 __LZO_MMODEL * -+#endif -+#endif -+#ifndef lzo_memops_TU8p -+#if (LZO_OPT_UNALIGNED64) -+typedef lzo_uint64_t __lzo_may_alias lzo_memops_TU8; -+#define lzo_memops_TU8p volatile lzo_memops_TU8 __LZO_MMODEL * -+#elif defined(__lzo_byte_struct) -+__lzo_byte_struct(lzo_memops_TU8_struct,8) -+typedef struct lzo_memops_TU8_struct lzo_memops_TU8; -+#else -+struct lzo_memops_TU8_struct { unsigned char a[8]; } __lzo_may_alias; -+typedef struct lzo_memops_TU8_struct lzo_memops_TU8; -+#endif -+#ifndef lzo_memops_TU8p -+#define lzo_memops_TU8p lzo_memops_TU8 __LZO_MMODEL * -+#endif -+#endif -+#ifndef lzo_memops_set_TU1p -+#define lzo_memops_set_TU1p volatile lzo_memops_TU1p -+#endif -+#ifndef lzo_memops_move_TU1p -+#define lzo_memops_move_TU1p lzo_memops_TU1p -+#endif -+#define LZO_MEMOPS_SET1(dd,cc) \ -+ LZO_BLOCK_BEGIN \ -+ lzo_memops_set_TU1p d__1 = (lzo_memops_set_TU1p) (lzo_memops_TU0p) (dd); \ -+ d__1[0] = LZO_BYTE(cc); \ -+ LZO_BLOCK_END -+#define LZO_MEMOPS_SET2(dd,cc) \ -+ LZO_BLOCK_BEGIN \ -+ lzo_memops_set_TU1p d__2 = (lzo_memops_set_TU1p) (lzo_memops_TU0p) (dd); \ -+ d__2[0] = LZO_BYTE(cc); d__2[1] = LZO_BYTE(cc); \ -+ LZO_BLOCK_END -+#define LZO_MEMOPS_SET3(dd,cc) \ -+ LZO_BLOCK_BEGIN \ -+ lzo_memops_set_TU1p d__3 = (lzo_memops_set_TU1p) (lzo_memops_TU0p) (dd); \ -+ d__3[0] = LZO_BYTE(cc); d__3[1] = LZO_BYTE(cc); d__3[2] = LZO_BYTE(cc); \ -+ LZO_BLOCK_END -+#define LZO_MEMOPS_SET4(dd,cc) \ -+ LZO_BLOCK_BEGIN \ -+ lzo_memops_set_TU1p d__4 = (lzo_memops_set_TU1p) (lzo_memops_TU0p) (dd); \ -+ d__4[0] = LZO_BYTE(cc); d__4[1] = LZO_BYTE(cc); d__4[2] = LZO_BYTE(cc); d__4[3] = LZO_BYTE(cc); \ -+ LZO_BLOCK_END -+#define LZO_MEMOPS_MOVE1(dd,ss) \ -+ LZO_BLOCK_BEGIN \ -+ lzo_memops_move_TU1p d__1 = (lzo_memops_move_TU1p) (lzo_memops_TU0p) (dd); \ -+ const lzo_memops_move_TU1p s__1 = (const lzo_memops_move_TU1p) (const lzo_memops_TU0p) (ss); \ -+ d__1[0] = s__1[0]; \ -+ LZO_BLOCK_END -+#define LZO_MEMOPS_MOVE2(dd,ss) \ -+ LZO_BLOCK_BEGIN \ -+ lzo_memops_move_TU1p d__2 = (lzo_memops_move_TU1p) (lzo_memops_TU0p) (dd); \ -+ const lzo_memops_move_TU1p s__2 = (const lzo_memops_move_TU1p) (const lzo_memops_TU0p) (ss); \ -+ d__2[0] = s__2[0]; d__2[1] = s__2[1]; \ -+ LZO_BLOCK_END -+#define LZO_MEMOPS_MOVE3(dd,ss) \ -+ LZO_BLOCK_BEGIN \ -+ lzo_memops_move_TU1p d__3 = (lzo_memops_move_TU1p) (lzo_memops_TU0p) (dd); \ -+ const lzo_memops_move_TU1p s__3 = (const lzo_memops_move_TU1p) (const lzo_memops_TU0p) (ss); \ -+ d__3[0] = s__3[0]; d__3[1] = s__3[1]; d__3[2] = s__3[2]; \ -+ LZO_BLOCK_END -+#define LZO_MEMOPS_MOVE4(dd,ss) \ -+ LZO_BLOCK_BEGIN \ -+ lzo_memops_move_TU1p d__4 = (lzo_memops_move_TU1p) (lzo_memops_TU0p) (dd); \ -+ const lzo_memops_move_TU1p s__4 = (const lzo_memops_move_TU1p) (const lzo_memops_TU0p) (ss); \ -+ d__4[0] = s__4[0]; d__4[1] = s__4[1]; d__4[2] = s__4[2]; d__4[3] = s__4[3]; \ -+ LZO_BLOCK_END -+#define LZO_MEMOPS_MOVE8(dd,ss) \ -+ LZO_BLOCK_BEGIN \ -+ lzo_memops_move_TU1p d__8 = (lzo_memops_move_TU1p) (lzo_memops_TU0p) (dd); \ -+ const lzo_memops_move_TU1p s__8 = (const lzo_memops_move_TU1p) (const lzo_memops_TU0p) (ss); \ -+ d__8[0] = s__8[0]; d__8[1] = s__8[1]; d__8[2] = s__8[2]; d__8[3] = s__8[3]; \ -+ d__8[4] = s__8[4]; d__8[5] = s__8[5]; d__8[6] = s__8[6]; d__8[7] = s__8[7]; \ -+ LZO_BLOCK_END -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU1p)0)==1) -+#define LZO_MEMOPS_COPY1(dd,ss) LZO_MEMOPS_MOVE1(dd,ss) -+#if (LZO_OPT_UNALIGNED16) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU2p)0)==2) -+#define LZO_MEMOPS_COPY2(dd,ss) \ -+ * (lzo_memops_TU2p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU2p) (const lzo_memops_TU0p) (ss) -+#elif defined(__lzo_memops_tcheck) -+#define LZO_MEMOPS_COPY2(dd,ss) \ -+ LZO_BLOCK_BEGIN if (__lzo_memops_tcheck(lzo_memops_TU2,2,1)) { \ -+ * (lzo_memops_TU2p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU2p) (const lzo_memops_TU0p) (ss); \ -+ } else { LZO_MEMOPS_MOVE2(dd,ss); } LZO_BLOCK_END -+#else -+#define LZO_MEMOPS_COPY2(dd,ss) LZO_MEMOPS_MOVE2(dd,ss) -+#endif -+#if (LZO_OPT_UNALIGNED32) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU4p)0)==4) -+#define LZO_MEMOPS_COPY4(dd,ss) \ -+ * (lzo_memops_TU4p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU4p) (const lzo_memops_TU0p) (ss) -+#elif defined(__lzo_memops_tcheck) -+#define LZO_MEMOPS_COPY4(dd,ss) \ -+ LZO_BLOCK_BEGIN if (__lzo_memops_tcheck(lzo_memops_TU4,4,1)) { \ -+ * (lzo_memops_TU4p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU4p) (const lzo_memops_TU0p) (ss); \ -+ } else { LZO_MEMOPS_MOVE4(dd,ss); } LZO_BLOCK_END -+#else -+#define LZO_MEMOPS_COPY4(dd,ss) LZO_MEMOPS_MOVE4(dd,ss) -+#endif -+#if (LZO_WORDSIZE != 8) -+#define LZO_MEMOPS_COPY8(dd,ss) \ -+ LZO_BLOCK_BEGIN LZO_MEMOPS_COPY4(dd,ss); LZO_MEMOPS_COPY4((lzo_memops_TU1p)(lzo_memops_TU0p)(dd)+4,(const lzo_memops_TU1p)(const lzo_memops_TU0p)(ss)+4); LZO_BLOCK_END -+#else -+#if (LZO_OPT_UNALIGNED64) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU8p)0)==8) -+#define LZO_MEMOPS_COPY8(dd,ss) \ -+ * (lzo_memops_TU8p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU8p) (const lzo_memops_TU0p) (ss) -+#elif (LZO_OPT_UNALIGNED32) -+#define LZO_MEMOPS_COPY8(dd,ss) \ -+ LZO_BLOCK_BEGIN LZO_MEMOPS_COPY4(dd,ss); LZO_MEMOPS_COPY4((lzo_memops_TU1p)(lzo_memops_TU0p)(dd)+4,(const lzo_memops_TU1p)(const lzo_memops_TU0p)(ss)+4); LZO_BLOCK_END -+#elif defined(__lzo_memops_tcheck) -+#define LZO_MEMOPS_COPY8(dd,ss) \ -+ LZO_BLOCK_BEGIN if (__lzo_memops_tcheck(lzo_memops_TU8,8,1)) { \ -+ * (lzo_memops_TU8p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU8p) (const lzo_memops_TU0p) (ss); \ -+ } else { LZO_MEMOPS_MOVE8(dd,ss); } LZO_BLOCK_END -+#else -+#define LZO_MEMOPS_COPY8(dd,ss) LZO_MEMOPS_MOVE8(dd,ss) -+#endif -+#endif -+#define LZO_MEMOPS_COPYN(dd,ss,nn) \ -+ LZO_BLOCK_BEGIN \ -+ lzo_memops_TU1p d__n = (lzo_memops_TU1p) (lzo_memops_TU0p) (dd); \ -+ const lzo_memops_TU1p s__n = (const lzo_memops_TU1p) (const lzo_memops_TU0p) (ss); \ -+ lzo_uint n__n = (nn); \ -+ while ((void)0, n__n >= 8) { LZO_MEMOPS_COPY8(d__n, s__n); d__n += 8; s__n += 8; n__n -= 8; } \ -+ if ((void)0, n__n >= 4) { LZO_MEMOPS_COPY4(d__n, s__n); d__n += 4; s__n += 4; n__n -= 4; } \ -+ if ((void)0, n__n > 0) do { *d__n++ = *s__n++; } while (--n__n > 0); \ -+ LZO_BLOCK_END -+ -+__lzo_static_forceinline lzo_uint16_t lzo_memops_get_le16(const lzo_voidp ss) -+{ -+ lzo_uint16_t v; -+#if (LZO_ABI_LITTLE_ENDIAN) -+ LZO_MEMOPS_COPY2(&v, ss); -+#elif (LZO_OPT_UNALIGNED16 && LZO_ARCH_POWERPC && LZO_ABI_BIG_ENDIAN) && (LZO_ASM_SYNTAX_GNUC) -+ const lzo_memops_TU2p s = (const lzo_memops_TU2p) ss; -+ unsigned long vv; -+ __asm__("lhbrx %0,0,%1" : "=r" (vv) : "r" (s), "m" (*s)); -+ v = (lzo_uint16_t) vv; - #else --# if !defined(LZO_DEBUG) --# define NDEBUG 1 --# endif --# include -+ const lzo_memops_TU1p s = (const lzo_memops_TU1p) ss; -+ v = (lzo_uint16_t) (((lzo_uint16_t)s[0]) | ((lzo_uint16_t)s[1] << 8)); - #endif -- --#if 0 && defined(__BOUNDS_CHECKING_ON) --# include -+ return v; -+} -+#if (LZO_OPT_UNALIGNED16) && (LZO_ABI_LITTLE_ENDIAN) -+#define LZO_MEMOPS_GET_LE16(ss) * (const lzo_memops_TU2p) (const lzo_memops_TU0p) (ss) - #else --# define BOUNDS_CHECKING_OFF_DURING(stmt) stmt --# define BOUNDS_CHECKING_OFF_IN_EXPR(expr) (expr) -+#define LZO_MEMOPS_GET_LE16(ss) lzo_memops_get_le16(ss) - #endif - --#if !defined(__lzo_inline) --# define __lzo_inline /*empty*/ --#endif --#if !defined(__lzo_forceinline) --# define __lzo_forceinline /*empty*/ -+__lzo_static_forceinline lzo_uint32_t lzo_memops_get_le32(const lzo_voidp ss) -+{ -+ lzo_uint32_t v; -+#if (LZO_ABI_LITTLE_ENDIAN) -+ LZO_MEMOPS_COPY4(&v, ss); -+#elif (LZO_OPT_UNALIGNED32 && LZO_ARCH_POWERPC && LZO_ABI_BIG_ENDIAN) && (LZO_ASM_SYNTAX_GNUC) -+ const lzo_memops_TU4p s = (const lzo_memops_TU4p) ss; -+ unsigned long vv; -+ __asm__("lwbrx %0,0,%1" : "=r" (vv) : "r" (s), "m" (*s)); -+ v = (lzo_uint32_t) vv; -+#else -+ const lzo_memops_TU1p s = (const lzo_memops_TU1p) ss; -+ v = (lzo_uint32_t) (((lzo_uint32_t)s[0]) | ((lzo_uint32_t)s[1] << 8) | ((lzo_uint32_t)s[2] << 16) | ((lzo_uint32_t)s[3] << 24)); - #endif --#if !defined(__lzo_noinline) --# define __lzo_noinline /*empty*/ -+ return v; -+} -+#if (LZO_OPT_UNALIGNED32) && (LZO_ABI_LITTLE_ENDIAN) -+#define LZO_MEMOPS_GET_LE32(ss) * (const lzo_memops_TU4p) (const lzo_memops_TU0p) (ss) -+#else -+#define LZO_MEMOPS_GET_LE32(ss) lzo_memops_get_le32(ss) - #endif - --#if (LZO_CFG_PGO) --# undef __acc_likely --# undef __acc_unlikely --# undef __lzo_likely --# undef __lzo_unlikely --# define __acc_likely(e) (e) --# define __acc_unlikely(e) (e) --# define __lzo_likely(e) (e) --# define __lzo_unlikely(e) (e) -+#if (LZO_OPT_UNALIGNED64) && (LZO_ABI_LITTLE_ENDIAN) -+#define LZO_MEMOPS_GET_LE64(ss) * (const lzo_memops_TU8p) (const lzo_memops_TU0p) (ss) - #endif - --#if 1 --# define LZO_BYTE(x) ((unsigned char) (x)) -+__lzo_static_forceinline lzo_uint16_t lzo_memops_get_ne16(const lzo_voidp ss) -+{ -+ lzo_uint16_t v; -+ LZO_MEMOPS_COPY2(&v, ss); -+ return v; -+} -+#if (LZO_OPT_UNALIGNED16) -+#define LZO_MEMOPS_GET_NE16(ss) * (const lzo_memops_TU2p) (const lzo_memops_TU0p) (ss) - #else --# define LZO_BYTE(x) ((unsigned char) ((x) & 0xff)) -+#define LZO_MEMOPS_GET_NE16(ss) lzo_memops_get_ne16(ss) - #endif - --#define LZO_MAX(a,b) ((a) >= (b) ? (a) : (b)) --#define LZO_MIN(a,b) ((a) <= (b) ? (a) : (b)) --#define LZO_MAX3(a,b,c) ((a) >= (b) ? LZO_MAX(a,c) : LZO_MAX(b,c)) --#define LZO_MIN3(a,b,c) ((a) <= (b) ? LZO_MIN(a,c) : LZO_MIN(b,c)) -- --#define lzo_sizeof(type) ((lzo_uint) (sizeof(type))) -+__lzo_static_forceinline lzo_uint32_t lzo_memops_get_ne32(const lzo_voidp ss) -+{ -+ lzo_uint32_t v; -+ LZO_MEMOPS_COPY4(&v, ss); -+ return v; -+} -+#if (LZO_OPT_UNALIGNED32) -+#define LZO_MEMOPS_GET_NE32(ss) * (const lzo_memops_TU4p) (const lzo_memops_TU0p) (ss) -+#else -+#define LZO_MEMOPS_GET_NE32(ss) lzo_memops_get_ne32(ss) -+#endif - --#define LZO_HIGH(array) ((lzo_uint) (sizeof(array)/sizeof(*(array)))) -+#if (LZO_OPT_UNALIGNED64) -+#define LZO_MEMOPS_GET_NE64(ss) * (const lzo_memops_TU8p) (const lzo_memops_TU0p) (ss) -+#endif - --#define LZO_SIZE(bits) (1u << (bits)) --#define LZO_MASK(bits) (LZO_SIZE(bits) - 1) -+__lzo_static_forceinline void lzo_memops_put_le16(lzo_voidp dd, lzo_uint16_t vv) -+{ -+#if (LZO_ABI_LITTLE_ENDIAN) -+ LZO_MEMOPS_COPY2(dd, &vv); -+#elif (LZO_OPT_UNALIGNED16 && LZO_ARCH_POWERPC && LZO_ABI_BIG_ENDIAN) && (LZO_ASM_SYNTAX_GNUC) -+ lzo_memops_TU2p d = (lzo_memops_TU2p) dd; -+ unsigned long v = vv; -+ __asm__("sthbrx %2,0,%1" : "=m" (*d) : "r" (d), "r" (v)); -+#else -+ lzo_memops_TU1p d = (lzo_memops_TU1p) dd; -+ d[0] = LZO_BYTE((vv ) & 0xff); -+ d[1] = LZO_BYTE((vv >> 8) & 0xff); -+#endif -+} -+#if (LZO_OPT_UNALIGNED16) && (LZO_ABI_LITTLE_ENDIAN) -+#define LZO_MEMOPS_PUT_LE16(dd,vv) (* (lzo_memops_TU2p) (lzo_memops_TU0p) (dd) = (vv)) -+#else -+#define LZO_MEMOPS_PUT_LE16(dd,vv) lzo_memops_put_le16(dd,vv) -+#endif - --#define LZO_LSIZE(bits) (1ul << (bits)) --#define LZO_LMASK(bits) (LZO_LSIZE(bits) - 1) -+__lzo_static_forceinline void lzo_memops_put_le32(lzo_voidp dd, lzo_uint32_t vv) -+{ -+#if (LZO_ABI_LITTLE_ENDIAN) -+ LZO_MEMOPS_COPY4(dd, &vv); -+#elif (LZO_OPT_UNALIGNED32 && LZO_ARCH_POWERPC && LZO_ABI_BIG_ENDIAN) && (LZO_ASM_SYNTAX_GNUC) -+ lzo_memops_TU4p d = (lzo_memops_TU4p) dd; -+ unsigned long v = vv; -+ __asm__("stwbrx %2,0,%1" : "=m" (*d) : "r" (d), "r" (v)); -+#else -+ lzo_memops_TU1p d = (lzo_memops_TU1p) dd; -+ d[0] = LZO_BYTE((vv ) & 0xff); -+ d[1] = LZO_BYTE((vv >> 8) & 0xff); -+ d[2] = LZO_BYTE((vv >> 16) & 0xff); -+ d[3] = LZO_BYTE((vv >> 24) & 0xff); -+#endif -+} -+#if (LZO_OPT_UNALIGNED32) && (LZO_ABI_LITTLE_ENDIAN) -+#define LZO_MEMOPS_PUT_LE32(dd,vv) (* (lzo_memops_TU4p) (lzo_memops_TU0p) (dd) = (vv)) -+#else -+#define LZO_MEMOPS_PUT_LE32(dd,vv) lzo_memops_put_le32(dd,vv) -+#endif - --#define LZO_USIZE(bits) ((lzo_uint) 1 << (bits)) --#define LZO_UMASK(bits) (LZO_USIZE(bits) - 1) -+__lzo_static_forceinline void lzo_memops_put_ne16(lzo_voidp dd, lzo_uint16_t vv) -+{ -+ LZO_MEMOPS_COPY2(dd, &vv); -+} -+#if (LZO_OPT_UNALIGNED16) -+#define LZO_MEMOPS_PUT_NE16(dd,vv) (* (lzo_memops_TU2p) (lzo_memops_TU0p) (dd) = (vv)) -+#else -+#define LZO_MEMOPS_PUT_NE16(dd,vv) lzo_memops_put_ne16(dd,vv) -+#endif - --#if !defined(DMUL) --#if 0 -+__lzo_static_forceinline void lzo_memops_put_ne32(lzo_voidp dd, lzo_uint32_t vv) -+{ -+ LZO_MEMOPS_COPY4(dd, &vv); -+} -+#if (LZO_OPT_UNALIGNED32) -+#define LZO_MEMOPS_PUT_NE32(dd,vv) (* (lzo_memops_TU4p) (lzo_memops_TU0p) (dd) = (vv)) -+#else -+#define LZO_MEMOPS_PUT_NE32(dd,vv) lzo_memops_put_ne32(dd,vv) -+#endif - --# define DMUL(a,b) ((lzo_xint) ((lzo_uint32)(a) * (lzo_uint32)(b))) -+#if 1 && (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || (LZO_CC_GNUC >= 0x020700ul) || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) -+static void __attribute__((__unused__)) - #else --# define DMUL(a,b) ((lzo_xint) ((a) * (b))) -+__lzo_static_forceinline void - #endif -+lzo_memops_unused_funcs(void) -+{ -+ LZO_UNUSED_FUNC(lzo_memops_get_le16); -+ LZO_UNUSED_FUNC(lzo_memops_get_le32); -+ LZO_UNUSED_FUNC(lzo_memops_get_ne16); -+ LZO_UNUSED_FUNC(lzo_memops_get_ne32); -+ LZO_UNUSED_FUNC(lzo_memops_put_le16); -+ LZO_UNUSED_FUNC(lzo_memops_put_le32); -+ LZO_UNUSED_FUNC(lzo_memops_put_ne16); -+ LZO_UNUSED_FUNC(lzo_memops_put_ne32); -+ LZO_UNUSED_FUNC(lzo_memops_unused_funcs); -+} -+ - #endif - --#if 1 && (LZO_ARCH_AMD64 || LZO_ARCH_I386 || LZO_ARCH_POWERPC) --# if (LZO_SIZEOF_SHORT == 2) --# define LZO_UNALIGNED_OK_2 1 --# endif --# if (LZO_SIZEOF_INT == 4) --# define LZO_UNALIGNED_OK_4 1 --# endif -+#ifndef UA_SET1 -+#define UA_SET1 LZO_MEMOPS_SET1 - #endif --#if 1 && (LZO_ARCH_AMD64) --# if defined(LZO_UINT64_MAX) --# define LZO_UNALIGNED_OK_8 1 --# endif -+#ifndef UA_SET2 -+#define UA_SET2 LZO_MEMOPS_SET2 - #endif --#if (LZO_CFG_NO_UNALIGNED) --# undef LZO_UNALIGNED_OK_2 --# undef LZO_UNALIGNED_OK_4 --# undef LZO_UNALIGNED_OK_8 --#endif -- --#undef UA_GET16 --#undef UA_SET16 --#undef UA_COPY16 --#undef UA_GET32 --#undef UA_SET32 --#undef UA_COPY32 --#undef UA_GET64 --#undef UA_SET64 --#undef UA_COPY64 --#if defined(LZO_UNALIGNED_OK_2) -- LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(unsigned short) == 2) --# if 1 && defined(ACC_UA_COPY16) --# define UA_GET16 ACC_UA_GET16 --# define UA_SET16 ACC_UA_SET16 --# define UA_COPY16 ACC_UA_COPY16 --# else --# define UA_GET16(p) (* (__lzo_ua_volatile const lzo_ushortp) (__lzo_ua_volatile const lzo_voidp) (p)) --# define UA_SET16(p,v) ((* (__lzo_ua_volatile lzo_ushortp) (__lzo_ua_volatile lzo_voidp) (p)) = (unsigned short) (v)) --# define UA_COPY16(d,s) UA_SET16(d, UA_GET16(s)) --# endif -+#ifndef UA_SET3 -+#define UA_SET3 LZO_MEMOPS_SET3 - #endif --#if defined(LZO_UNALIGNED_OK_4) || defined(LZO_ALIGNED_OK_4) -- LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint32) == 4) --# if 1 && defined(ACC_UA_COPY32) --# define UA_GET32 ACC_UA_GET32 --# define UA_SET32 ACC_UA_SET32 --# define UA_COPY32 ACC_UA_COPY32 --# else --# define UA_GET32(p) (* (__lzo_ua_volatile const lzo_uint32p) (__lzo_ua_volatile const lzo_voidp) (p)) --# define UA_SET32(p,v) ((* (__lzo_ua_volatile lzo_uint32p) (__lzo_ua_volatile lzo_voidp) (p)) = (lzo_uint32) (v)) --# define UA_COPY32(d,s) UA_SET32(d, UA_GET32(s)) --# endif -+#ifndef UA_SET4 -+#define UA_SET4 LZO_MEMOPS_SET4 - #endif --#if defined(LZO_UNALIGNED_OK_8) -- LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint64) == 8) --# if 1 && defined(ACC_UA_COPY64) --# define UA_GET64 ACC_UA_GET64 --# define UA_SET64 ACC_UA_SET64 --# define UA_COPY64 ACC_UA_COPY64 --# else --# define UA_GET64(p) (* (__lzo_ua_volatile const lzo_uint64p) (__lzo_ua_volatile const lzo_voidp) (p)) --# define UA_SET64(p,v) ((* (__lzo_ua_volatile lzo_uint64p) (__lzo_ua_volatile lzo_voidp) (p)) = (lzo_uint64) (v)) --# define UA_COPY64(d,s) UA_SET64(d, UA_GET64(s)) --# endif -+#ifndef UA_MOVE1 -+#define UA_MOVE1 LZO_MEMOPS_MOVE1 -+#endif -+#ifndef UA_MOVE2 -+#define UA_MOVE2 LZO_MEMOPS_MOVE2 -+#endif -+#ifndef UA_MOVE3 -+#define UA_MOVE3 LZO_MEMOPS_MOVE3 -+#endif -+#ifndef UA_MOVE4 -+#define UA_MOVE4 LZO_MEMOPS_MOVE4 -+#endif -+#ifndef UA_MOVE8 -+#define UA_MOVE8 LZO_MEMOPS_MOVE8 -+#endif -+#ifndef UA_COPY1 -+#define UA_COPY1 LZO_MEMOPS_COPY1 -+#endif -+#ifndef UA_COPY2 -+#define UA_COPY2 LZO_MEMOPS_COPY2 -+#endif -+#ifndef UA_COPY3 -+#define UA_COPY3 LZO_MEMOPS_COPY3 -+#endif -+#ifndef UA_COPY4 -+#define UA_COPY4 LZO_MEMOPS_COPY4 -+#endif -+#ifndef UA_COPY8 -+#define UA_COPY8 LZO_MEMOPS_COPY8 -+#endif -+#ifndef UA_COPYN -+#define UA_COPYN LZO_MEMOPS_COPYN -+#endif -+#ifndef UA_COPYN_X -+#define UA_COPYN_X LZO_MEMOPS_COPYN -+#endif -+#ifndef UA_GET_LE16 -+#define UA_GET_LE16 LZO_MEMOPS_GET_LE16 -+#endif -+#ifndef UA_GET_LE32 -+#define UA_GET_LE32 LZO_MEMOPS_GET_LE32 -+#endif -+#ifdef LZO_MEMOPS_GET_LE64 -+#ifndef UA_GET_LE64 -+#define UA_GET_LE64 LZO_MEMOPS_GET_LE64 -+#endif -+#endif -+#ifndef UA_GET_NE16 -+#define UA_GET_NE16 LZO_MEMOPS_GET_NE16 -+#endif -+#ifndef UA_GET_NE32 -+#define UA_GET_NE32 LZO_MEMOPS_GET_NE32 -+#endif -+#ifdef LZO_MEMOPS_GET_NE64 -+#ifndef UA_GET_NE64 -+#define UA_GET_NE64 LZO_MEMOPS_GET_NE64 -+#endif -+#endif -+#ifndef UA_PUT_LE16 -+#define UA_PUT_LE16 LZO_MEMOPS_PUT_LE16 -+#endif -+#ifndef UA_PUT_LE32 -+#define UA_PUT_LE32 LZO_MEMOPS_PUT_LE32 -+#endif -+#ifndef UA_PUT_NE16 -+#define UA_PUT_NE16 LZO_MEMOPS_PUT_NE16 -+#endif -+#ifndef UA_PUT_NE32 -+#define UA_PUT_NE32 LZO_MEMOPS_PUT_NE32 - #endif - - #define MEMCPY8_DS(dest,src,len) \ -@@ -2195,25 +3782,10 @@ LZO_EXTERN(const lzo_bytep) lzo_copyright(void); - extern "C" { - #endif - --#if !defined(lzo_uintptr_t) --# if (__LZO_MMODEL_HUGE) --# define lzo_uintptr_t unsigned long --# else --# define lzo_uintptr_t acc_uintptr_t --# ifdef __ACC_INTPTR_T_IS_POINTER --# define __LZO_UINTPTR_T_IS_POINTER 1 --# endif --# endif --#endif -- - #if (LZO_ARCH_I086) --#define PTR(a) ((lzo_bytep) (a)) --#define PTR_ALIGNED_4(a) ((ACC_PTR_FP_OFF(a) & 3) == 0) --#define PTR_ALIGNED2_4(a,b) (((ACC_PTR_FP_OFF(a) | ACC_PTR_FP_OFF(b)) & 3) == 0) -+#error "LZO_ARCH_I086 is unsupported" - #elif (LZO_MM_PVP) --#define PTR(a) ((lzo_bytep) (a)) --#define PTR_ALIGNED_8(a) ((((lzo_uintptr_t)(a)) >> 61) == 0) --#define PTR_ALIGNED2_8(a,b) ((((lzo_uintptr_t)(a)|(lzo_uintptr_t)(b)) >> 61) == 0) -+#error "LZO_MM_PVP is unsupported" - #else - #define PTR(a) ((lzo_uintptr_t) (a)) - #define PTR_LINEAR(a) PTR(a) -@@ -2243,24 +3815,28 @@ typedef union - unsigned long a_ulong; - lzo_int a_lzo_int; - lzo_uint a_lzo_uint; -- lzo_int32 a_lzo_int32; -- lzo_uint32 a_lzo_uint32; --#if defined(LZO_UINT64_MAX) -- lzo_int64 a_lzo_int64; -- lzo_uint64 a_lzo_uint64; --#endif -+ lzo_xint a_lzo_xint; -+ lzo_int16_t a_lzo_int16_t; -+ lzo_uint16_t a_lzo_uint16_t; -+ lzo_int32_t a_lzo_int32_t; -+ lzo_uint32_t a_lzo_uint32_t; -+#if defined(lzo_uint64_t) -+ lzo_int64_t a_lzo_int64_t; -+ lzo_uint64_t a_lzo_uint64_t; -+#endif -+ size_t a_size_t; - ptrdiff_t a_ptrdiff_t; - lzo_uintptr_t a_lzo_uintptr_t; -- lzo_voidp a_lzo_voidp; - void * a_void_p; -- lzo_bytep a_lzo_bytep; -- lzo_bytepp a_lzo_bytepp; -- lzo_uintp a_lzo_uintp; -- lzo_uint * a_lzo_uint_p; -- lzo_uint32p a_lzo_uint32p; -- lzo_uint32 * a_lzo_uint32_p; -- unsigned char * a_uchar_p; - char * a_char_p; -+ unsigned char * a_uchar_p; -+ const void * a_c_void_p; -+ const char * a_c_char_p; -+ const unsigned char * a_c_uchar_p; -+ lzo_voidp a_lzo_voidp; -+ lzo_bytep a_lzo_bytep; -+ const lzo_voidp a_c_lzo_voidp; -+ const lzo_bytep a_c_lzo_bytep; - } - lzo_full_align_t; - -@@ -2276,18 +3852,14 @@ lzo_full_align_t; - - #ifndef LZO_DICT_USE_PTR - #define LZO_DICT_USE_PTR 1 --#if 0 && (LZO_ARCH_I086) --# undef LZO_DICT_USE_PTR --# define LZO_DICT_USE_PTR 0 --#endif - #endif - - #if (LZO_DICT_USE_PTR) - # define lzo_dict_t const lzo_bytep --# define lzo_dict_p lzo_dict_t __LZO_MMODEL * -+# define lzo_dict_p lzo_dict_t * - #else - # define lzo_dict_t lzo_uint --# define lzo_dict_p lzo_dict_t __LZO_MMODEL * -+# define lzo_dict_p lzo_dict_t * - #endif - - #endif -@@ -2300,10 +3872,9 @@ __lzo_ptr_linear(const lzo_voidp ptr) - lzo_uintptr_t p; - - #if (LZO_ARCH_I086) -- p = (((lzo_uintptr_t)(ACC_PTR_FP_SEG(ptr))) << (16 - ACC_MM_AHSHIFT)) + (ACC_PTR_FP_OFF(ptr)); -+#error "LZO_ARCH_I086 is unsupported" - #elif (LZO_MM_PVP) -- p = (lzo_uintptr_t) (ptr); -- p = (p << 3) | (p >> 61); -+#error "LZO_MM_PVP is unsupported" - #else - p = (lzo_uintptr_t) PTR_LINEAR(ptr); - #endif -@@ -2314,9 +3885,8 @@ __lzo_ptr_linear(const lzo_voidp ptr) - LZO_PUBLIC(unsigned) - __lzo_align_gap(const lzo_voidp ptr, lzo_uint size) - { --#if defined(__LZO_UINTPTR_T_IS_POINTER) -- size_t n = (size_t) ptr; -- n = (((n + size - 1) / size) * size) - n; -+#if (__LZO_UINTPTR_T_IS_POINTER) -+#error "__LZO_UINTPTR_T_IS_POINTER is unsupported" - #else - lzo_uintptr_t p, n; - p = __lzo_ptr_linear(ptr); -@@ -2342,7 +3912,7 @@ static const char __lzo_copyright[] = - #else - "\r\n\n" - "LZO data compression library.\n" -- "$Copyright: LZO Copyright (C) 1996-2011 Markus Franz Xaver Johannes Oberhumer\n" -+ "$Copyright: LZO Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer\n" - "\n" - "http://www.oberhumer.com $\n\n" - "$Id: LZO version: v" LZO_VERSION_STRING ", " LZO_VERSION_DATE " $\n" -@@ -2352,11 +3922,7 @@ static const char __lzo_copyright[] = - LZO_PUBLIC(const lzo_bytep) - lzo_copyright(void) - { --#if (LZO_OS_DOS16 && LZO_CC_TURBOC) -- return (lzo_voidp) __lzo_copyright; --#else - return (const lzo_bytep) __lzo_copyright; --#endif - } - - LZO_PUBLIC(unsigned) -@@ -2393,16 +3959,16 @@ _lzo_version_date(void) - #define LZO_NMAX 5552 - - #define LZO_DO1(buf,i) s1 += buf[i]; s2 += s1 --#define LZO_DO2(buf,i) LZO_DO1(buf,i); LZO_DO1(buf,i+1); --#define LZO_DO4(buf,i) LZO_DO2(buf,i); LZO_DO2(buf,i+2); --#define LZO_DO8(buf,i) LZO_DO4(buf,i); LZO_DO4(buf,i+4); --#define LZO_DO16(buf,i) LZO_DO8(buf,i); LZO_DO8(buf,i+8); -+#define LZO_DO2(buf,i) LZO_DO1(buf,i); LZO_DO1(buf,i+1) -+#define LZO_DO4(buf,i) LZO_DO2(buf,i); LZO_DO2(buf,i+2) -+#define LZO_DO8(buf,i) LZO_DO4(buf,i); LZO_DO4(buf,i+4) -+#define LZO_DO16(buf,i) LZO_DO8(buf,i); LZO_DO8(buf,i+8) - --LZO_PUBLIC(lzo_uint32) --lzo_adler32(lzo_uint32 adler, const lzo_bytep buf, lzo_uint len) -+LZO_PUBLIC(lzo_uint32_t) -+lzo_adler32(lzo_uint32_t adler, const lzo_bytep buf, lzo_uint len) - { -- lzo_uint32 s1 = adler & 0xffff; -- lzo_uint32 s2 = (adler >> 16) & 0xffff; -+ lzo_uint32_t s1 = adler & 0xffff; -+ lzo_uint32_t s2 = (adler >> 16) & 0xffff; - unsigned k; - - if (buf == NULL) -@@ -2459,8 +4025,8 @@ lzo_adler32(lzo_uint32 adler, const lzo_bytep buf, lzo_uint len) - LZOLIB_PUBLIC(int, lzo_hmemcmp) (const lzo_hvoid_p s1, const lzo_hvoid_p s2, lzo_hsize_t len) - { - #if (LZO_HAVE_MM_HUGE_PTR) || !(HAVE_MEMCMP) -- const lzo_hbyte_p p1 = (const lzo_hbyte_p) s1; -- const lzo_hbyte_p p2 = (const lzo_hbyte_p) s2; -+ const lzo_hbyte_p p1 = LZO_STATIC_CAST(const lzo_hbyte_p, s1); -+ const lzo_hbyte_p p2 = LZO_STATIC_CAST(const lzo_hbyte_p, s2); - if __lzo_likely(len > 0) do - { - int d = *p1 - *p2; -@@ -2476,8 +4042,8 @@ LZOLIB_PUBLIC(int, lzo_hmemcmp) (const lzo_hvoid_p s1, const lzo_hvoid_p s2, lzo - LZOLIB_PUBLIC(lzo_hvoid_p, lzo_hmemcpy) (lzo_hvoid_p dest, const lzo_hvoid_p src, lzo_hsize_t len) - { - #if (LZO_HAVE_MM_HUGE_PTR) || !(HAVE_MEMCPY) -- lzo_hbyte_p p1 = (lzo_hbyte_p) dest; -- const lzo_hbyte_p p2 = (const lzo_hbyte_p) src; -+ lzo_hbyte_p p1 = LZO_STATIC_CAST(lzo_hbyte_p, dest); -+ const lzo_hbyte_p p2 = LZO_STATIC_CAST(const lzo_hbyte_p, src); - if (!(len > 0) || p1 == p2) - return dest; - do -@@ -2491,8 +4057,8 @@ LZOLIB_PUBLIC(lzo_hvoid_p, lzo_hmemcpy) (lzo_hvoid_p dest, const lzo_hvoid_p src - LZOLIB_PUBLIC(lzo_hvoid_p, lzo_hmemmove) (lzo_hvoid_p dest, const lzo_hvoid_p src, lzo_hsize_t len) - { - #if (LZO_HAVE_MM_HUGE_PTR) || !(HAVE_MEMMOVE) -- lzo_hbyte_p p1 = (lzo_hbyte_p) dest; -- const lzo_hbyte_p p2 = (const lzo_hbyte_p) src; -+ lzo_hbyte_p p1 = LZO_STATIC_CAST(lzo_hbyte_p, dest); -+ const lzo_hbyte_p p2 = LZO_STATIC_CAST(const lzo_hbyte_p, src); - if (!(len > 0) || p1 == p2) - return dest; - if (p1 < p2) -@@ -2514,16 +4080,17 @@ LZOLIB_PUBLIC(lzo_hvoid_p, lzo_hmemmove) (lzo_hvoid_p dest, const lzo_hvoid_p sr - return memmove(dest, src, len); - #endif - } --LZOLIB_PUBLIC(lzo_hvoid_p, lzo_hmemset) (lzo_hvoid_p s, int c, lzo_hsize_t len) -+LZOLIB_PUBLIC(lzo_hvoid_p, lzo_hmemset) (lzo_hvoid_p s, int cc, lzo_hsize_t len) - { - #if (LZO_HAVE_MM_HUGE_PTR) || !(HAVE_MEMSET) -- lzo_hbyte_p p = (lzo_hbyte_p) s; -+ lzo_hbyte_p p = LZO_STATIC_CAST(lzo_hbyte_p, s); -+ unsigned char c = LZO_ITRUNC(unsigned char, cc); - if __lzo_likely(len > 0) do -- *p++ = (unsigned char) c; -+ *p++ = c; - while __lzo_likely(--len > 0); - return s; - #else -- return memset(s, c, len); -+ return memset(s, cc, len); - #endif - } - #undef LZOLIB_PUBLIC -@@ -2532,105 +4099,28 @@ LZOLIB_PUBLIC(lzo_hvoid_p, lzo_hmemset) (lzo_hvoid_p s, int c, lzo_hsize_t len) - - #if !defined(__LZO_IN_MINILZO) - --#define ACC_WANT_ACC_CHK_CH 1 --#undef ACCCHK_ASSERT -- -- ACCCHK_ASSERT_IS_SIGNED_T(lzo_int) -- ACCCHK_ASSERT_IS_UNSIGNED_T(lzo_uint) -- -- ACCCHK_ASSERT_IS_SIGNED_T(lzo_int32) -- ACCCHK_ASSERT_IS_UNSIGNED_T(lzo_uint32) -- ACCCHK_ASSERT((LZO_UINT32_C(1) << (int)(8*sizeof(LZO_UINT32_C(1))-1)) > 0) -- ACCCHK_ASSERT(sizeof(lzo_uint32) >= 4) --#if defined(LZO_UINT64_MAX) -- ACCCHK_ASSERT(sizeof(lzo_uint64) == 8) -- ACCCHK_ASSERT_IS_SIGNED_T(lzo_int64) -- ACCCHK_ASSERT_IS_UNSIGNED_T(lzo_uint64) --#endif -- --#if !defined(__LZO_UINTPTR_T_IS_POINTER) -- ACCCHK_ASSERT_IS_UNSIGNED_T(lzo_uintptr_t) --#endif -- ACCCHK_ASSERT(sizeof(lzo_uintptr_t) >= sizeof(lzo_voidp)) -- -- ACCCHK_ASSERT_IS_UNSIGNED_T(lzo_xint) -- ACCCHK_ASSERT(sizeof(lzo_xint) >= sizeof(lzo_uint32)) -- ACCCHK_ASSERT(sizeof(lzo_xint) >= sizeof(lzo_uint)) -- ACCCHK_ASSERT(sizeof(lzo_xint) == sizeof(lzo_uint32) || sizeof(lzo_xint) == sizeof(lzo_uint)) -+#define LZO_WANT_ACC_CHK_CH 1 -+#undef LZOCHK_ASSERT - -+ LZOCHK_ASSERT((LZO_UINT32_C(1) << (int)(8*sizeof(LZO_UINT32_C(1))-1)) > 0) -+ LZOCHK_ASSERT_IS_SIGNED_T(lzo_int) -+ LZOCHK_ASSERT_IS_UNSIGNED_T(lzo_uint) -+#if !(__LZO_UINTPTR_T_IS_POINTER) -+ LZOCHK_ASSERT_IS_UNSIGNED_T(lzo_uintptr_t) - #endif --#undef ACCCHK_ASSERT -+ LZOCHK_ASSERT(sizeof(lzo_uintptr_t) >= sizeof(lzo_voidp)) -+ LZOCHK_ASSERT_IS_UNSIGNED_T(lzo_xint) - --#if 0 --#define WANT_lzo_bitops_clz32 1 --#define WANT_lzo_bitops_clz64 1 --#endif --#define WANT_lzo_bitops_ctz32 1 --#define WANT_lzo_bitops_ctz64 1 -- --#if (defined(_WIN32) || defined(_WIN64)) && ((LZO_CC_INTELC && (__INTEL_COMPILER >= 1000)) || (LZO_CC_MSC && (_MSC_VER >= 1400))) --#include --#if !defined(lzo_bitops_clz32) && defined(WANT_lzo_bitops_clz32) && 0 --#pragma intrinsic(_BitScanReverse) --static __lzo_inline unsigned lzo_bitops_clz32(lzo_uint32 v) --{ -- unsigned long r; -- (void) _BitScanReverse(&r, v); -- return (unsigned) r; --} --#define lzo_bitops_clz32 lzo_bitops_clz32 --#endif --#if !defined(lzo_bitops_clz64) && defined(WANT_lzo_bitops_clz64) && defined(LZO_UINT64_MAX) && 0 --#pragma intrinsic(_BitScanReverse64) --static __lzo_inline unsigned lzo_bitops_clz64(lzo_uint64 v) --{ -- unsigned long r; -- (void) _BitScanReverse64(&r, v); -- return (unsigned) r; --} --#define lzo_bitops_clz64 lzo_bitops_clz64 --#endif --#if !defined(lzo_bitops_ctz32) && defined(WANT_lzo_bitops_ctz32) --#pragma intrinsic(_BitScanForward) --static __lzo_inline unsigned lzo_bitops_ctz32(lzo_uint32 v) --{ -- unsigned long r; -- (void) _BitScanForward(&r, v); -- return (unsigned) r; --} --#define lzo_bitops_ctz32 lzo_bitops_ctz32 --#endif --#if !defined(lzo_bitops_ctz64) && defined(WANT_lzo_bitops_ctz64) && defined(LZO_UINT64_MAX) --#pragma intrinsic(_BitScanForward64) --static __lzo_inline unsigned lzo_bitops_ctz64(lzo_uint64 v) --{ -- unsigned long r; -- (void) _BitScanForward64(&r, v); -- return (unsigned) r; --} --#define lzo_bitops_ctz64 lzo_bitops_ctz64 - #endif -+#undef LZOCHK_ASSERT - --#elif (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x030400ul) || (LZO_CC_INTELC && (__INTEL_COMPILER >= 1000)) || LZO_CC_LLVM) --#if !defined(lzo_bitops_clz32) && defined(WANT_lzo_bitops_clz32) --#define lzo_bitops_clz32(v) ((unsigned) __builtin_clz(v)) --#endif --#if !defined(lzo_bitops_clz64) && defined(WANT_lzo_bitops_clz64) && defined(LZO_UINT64_MAX) --#define lzo_bitops_clz64(v) ((unsigned) __builtin_clzll(v)) --#endif --#if !defined(lzo_bitops_ctz32) && defined(WANT_lzo_bitops_ctz32) --#define lzo_bitops_ctz32(v) ((unsigned) __builtin_ctz(v)) --#endif --#if !defined(lzo_bitops_ctz64) && defined(WANT_lzo_bitops_ctz64) && defined(LZO_UINT64_MAX) --#define lzo_bitops_ctz64(v) ((unsigned) __builtin_ctzll(v)) --#endif --#if !defined(lzo_bitops_popcount32) && defined(WANT_lzo_bitops_popcount32) --#define lzo_bitops_popcount32(v) ((unsigned) __builtin_popcount(v)) --#endif --#if !defined(lzo_bitops_popcount32) && defined(WANT_lzo_bitops_popcount64) && defined(LZO_UINT64_MAX) --#define lzo_bitops_popcount64(v) ((unsigned) __builtin_popcountll(v)) --#endif -+union lzo_config_check_union { -+ lzo_uint a[2]; -+ unsigned char b[2*LZO_MAX(8,sizeof(lzo_uint))]; -+#if defined(lzo_uint64_t) -+ lzo_uint64_t c[2]; - #endif -+}; - - #if 0 - #define u2p(ptr,off) ((lzo_voidp) (((lzo_bytep)(lzo_voidp)(ptr)) + (off))) -@@ -2644,73 +4134,101 @@ static __lzo_noinline lzo_voidp u2p(lzo_voidp ptr, lzo_uint off) - LZO_PUBLIC(int) - _lzo_config_check(void) - { -- lzo_bool r = 1; -- union { -- lzo_xint a[2]; unsigned char b[2*LZO_MAX(8,sizeof(lzo_xint))]; --#if defined(LZO_UNALIGNED_OK_8) -- lzo_uint64 c[2]; --#endif -- unsigned short x[2]; lzo_uint32 y[2]; lzo_uint z[2]; -- } u; -+#if (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x030100ul && LZO_CC_CLANG < 0x030300ul)) -+# if 0 -+ volatile -+# endif -+#endif -+ union lzo_config_check_union u; - lzo_voidp p; -+ unsigned r = 1; - - u.a[0] = u.a[1] = 0; - p = u2p(&u, 0); - r &= ((* (lzo_bytep) p) == 0); --#if !defined(LZO_CFG_NO_CONFIG_CHECK) --#if defined(LZO_ABI_BIG_ENDIAN) -+#if !(LZO_CFG_NO_CONFIG_CHECK) -+#if (LZO_ABI_BIG_ENDIAN) - u.a[0] = u.a[1] = 0; u.b[sizeof(lzo_uint) - 1] = 128; - p = u2p(&u, 0); - r &= ((* (lzo_uintp) p) == 128); - #endif --#if defined(LZO_ABI_LITTLE_ENDIAN) -+#if (LZO_ABI_LITTLE_ENDIAN) - u.a[0] = u.a[1] = 0; u.b[0] = 128; - p = u2p(&u, 0); - r &= ((* (lzo_uintp) p) == 128); - #endif --#if defined(LZO_UNALIGNED_OK_2) - u.a[0] = u.a[1] = 0; -- u.b[0] = 1; u.b[sizeof(unsigned short) + 1] = 2; -+ u.b[0] = 1; u.b[3] = 2; - p = u2p(&u, 1); -- r &= ((* (lzo_ushortp) p) == 0); -+ r &= UA_GET_NE16(p) == 0; -+ r &= UA_GET_LE16(p) == 0; -+ u.b[1] = 128; -+ r &= UA_GET_LE16(p) == 128; -+ u.b[2] = 129; -+ r &= UA_GET_LE16(p) == LZO_UINT16_C(0x8180); -+#if (LZO_ABI_BIG_ENDIAN) -+ r &= UA_GET_NE16(p) == LZO_UINT16_C(0x8081); -+#endif -+#if (LZO_ABI_LITTLE_ENDIAN) -+ r &= UA_GET_NE16(p) == LZO_UINT16_C(0x8180); - #endif --#if defined(LZO_UNALIGNED_OK_4) - u.a[0] = u.a[1] = 0; -- u.b[0] = 3; u.b[sizeof(lzo_uint32) + 1] = 4; -+ u.b[0] = 3; u.b[5] = 4; - p = u2p(&u, 1); -- r &= ((* (lzo_uint32p) p) == 0); -+ r &= UA_GET_NE32(p) == 0; -+ r &= UA_GET_LE32(p) == 0; -+ u.b[1] = 128; -+ r &= UA_GET_LE32(p) == 128; -+ u.b[2] = 129; u.b[3] = 130; u.b[4] = 131; -+ r &= UA_GET_LE32(p) == LZO_UINT32_C(0x83828180); -+#if (LZO_ABI_BIG_ENDIAN) -+ r &= UA_GET_NE32(p) == LZO_UINT32_C(0x80818283); - #endif --#if defined(LZO_UNALIGNED_OK_8) -+#if (LZO_ABI_LITTLE_ENDIAN) -+ r &= UA_GET_NE32(p) == LZO_UINT32_C(0x83828180); -+#endif -+#if defined(UA_GET_NE64) - u.c[0] = u.c[1] = 0; -- u.b[0] = 5; u.b[sizeof(lzo_uint64) + 1] = 6; -+ u.b[0] = 5; u.b[9] = 6; - p = u2p(&u, 1); -- r &= ((* (lzo_uint64p) p) == 0); --#endif --#if defined(lzo_bitops_clz32) -- { unsigned i; lzo_uint32 v = 1; -- for (i = 0; i < 31; i++, v <<= 1) -- r &= lzo_bitops_clz32(v) == 31 - i; -- } --#endif --#if defined(lzo_bitops_clz64) -- { unsigned i; lzo_uint64 v = 1; -- for (i = 0; i < 63; i++, v <<= 1) -- r &= lzo_bitops_clz64(v) == 63 - i; -- } --#endif --#if defined(lzo_bitops_ctz32) -- { unsigned i; lzo_uint32 v = 1; -- for (i = 0; i < 31; i++, v <<= 1) -- r &= lzo_bitops_ctz32(v) == i; -- } --#endif --#if defined(lzo_bitops_ctz64) -- { unsigned i; lzo_uint64 v = 1; -- for (i = 0; i < 63; i++, v <<= 1) -- r &= lzo_bitops_ctz64(v) == i; -- } --#endif --#endif -+ u.c[0] = u.c[1] = 0; -+ r &= UA_GET_NE64(p) == 0; -+#if defined(UA_GET_LE64) -+ r &= UA_GET_LE64(p) == 0; -+ u.b[1] = 128; -+ r &= UA_GET_LE64(p) == 128; -+#endif -+#endif -+#if defined(lzo_bitops_ctlz32) -+ { unsigned i = 0; lzo_uint32_t v; -+ for (v = 1; v != 0 && r == 1; v <<= 1, i++) { -+ r &= lzo_bitops_ctlz32(v) == 31 - i; -+ r &= lzo_bitops_ctlz32_func(v) == 31 - i; -+ }} -+#endif -+#if defined(lzo_bitops_ctlz64) -+ { unsigned i = 0; lzo_uint64_t v; -+ for (v = 1; v != 0 && r == 1; v <<= 1, i++) { -+ r &= lzo_bitops_ctlz64(v) == 63 - i; -+ r &= lzo_bitops_ctlz64_func(v) == 63 - i; -+ }} -+#endif -+#if defined(lzo_bitops_cttz32) -+ { unsigned i = 0; lzo_uint32_t v; -+ for (v = 1; v != 0 && r == 1; v <<= 1, i++) { -+ r &= lzo_bitops_cttz32(v) == i; -+ r &= lzo_bitops_cttz32_func(v) == i; -+ }} -+#endif -+#if defined(lzo_bitops_cttz64) -+ { unsigned i = 0; lzo_uint64_t v; -+ for (v = 1; v != 0 && r == 1; v <<= 1, i++) { -+ r &= lzo_bitops_cttz64(v) == i; -+ r &= lzo_bitops_cttz64_func(v) == i; -+ }} -+#endif -+#endif -+ LZO_UNUSED_FUNC(lzo_bitops_unused_funcs); - - return r == 1 ? LZO_E_OK : LZO_E_ERROR; - } -@@ -2724,11 +4242,11 @@ __lzo_init_v2(unsigned v, int s1, int s2, int s3, int s4, int s5, - #if defined(__LZO_IN_MINILZO) - #elif (LZO_CC_MSC && ((_MSC_VER) < 700)) - #else --#define ACC_WANT_ACC_CHK_CH 1 --#undef ACCCHK_ASSERT --#define ACCCHK_ASSERT(expr) LZO_COMPILE_TIME_ASSERT(expr) -+#define LZO_WANT_ACC_CHK_CH 1 -+#undef LZOCHK_ASSERT -+#define LZOCHK_ASSERT(expr) LZO_COMPILE_TIME_ASSERT(expr) - #endif --#undef ACCCHK_ASSERT -+#undef LZOCHK_ASSERT - - if (v == 0) - return LZO_E_ERROR; -@@ -2736,7 +4254,7 @@ __lzo_init_v2(unsigned v, int s1, int s2, int s3, int s4, int s5, - r = (s1 == -1 || s1 == (int) sizeof(short)) && - (s2 == -1 || s2 == (int) sizeof(int)) && - (s3 == -1 || s3 == (int) sizeof(long)) && -- (s4 == -1 || s4 == (int) sizeof(lzo_uint32)) && -+ (s4 == -1 || s4 == (int) sizeof(lzo_uint32_t)) && - (s5 == -1 || s5 == (int) sizeof(lzo_uint)) && - (s6 == -1 || s6 == (int) lzo_sizeof_dict_t) && - (s7 == -1 || s7 == (int) sizeof(char *)) && -@@ -2779,11 +4297,11 @@ int __far __pascal LibMain ( int a, short b, short c, long d ) - - #if !defined(MINILZO_CFG_SKIP_LZO1X_1_COMPRESS) - --#if 1 && defined(UA_GET32) -+#if 1 && defined(UA_GET_LE32) - #undef LZO_DICT_USE_PTR - #define LZO_DICT_USE_PTR 0 - #undef lzo_dict_t --#define lzo_dict_t unsigned short -+#define lzo_dict_t lzo_uint16_t - #endif - - #define LZO_NEED_DICT_H 1 -@@ -3088,77 +4606,7 @@ DVAL_ASSERT(lzo_xint dv, const lzo_bytep p) - #endif - - #if 1 && defined(DO_COMPRESS) && !defined(do_compress) --# define do_compress LZO_CPP_ECONCAT2(DO_COMPRESS,_core) --#endif -- --#if defined(UA_GET64) --# define WANT_lzo_bitops_ctz64 1 --#elif defined(UA_GET32) --# define WANT_lzo_bitops_ctz32 1 --#endif -- --#if (defined(_WIN32) || defined(_WIN64)) && ((LZO_CC_INTELC && (__INTEL_COMPILER >= 1000)) || (LZO_CC_MSC && (_MSC_VER >= 1400))) --#include --#if !defined(lzo_bitops_clz32) && defined(WANT_lzo_bitops_clz32) && 0 --#pragma intrinsic(_BitScanReverse) --static __lzo_inline unsigned lzo_bitops_clz32(lzo_uint32 v) --{ -- unsigned long r; -- (void) _BitScanReverse(&r, v); -- return (unsigned) r; --} --#define lzo_bitops_clz32 lzo_bitops_clz32 --#endif --#if !defined(lzo_bitops_clz64) && defined(WANT_lzo_bitops_clz64) && defined(LZO_UINT64_MAX) && 0 --#pragma intrinsic(_BitScanReverse64) --static __lzo_inline unsigned lzo_bitops_clz64(lzo_uint64 v) --{ -- unsigned long r; -- (void) _BitScanReverse64(&r, v); -- return (unsigned) r; --} --#define lzo_bitops_clz64 lzo_bitops_clz64 --#endif --#if !defined(lzo_bitops_ctz32) && defined(WANT_lzo_bitops_ctz32) --#pragma intrinsic(_BitScanForward) --static __lzo_inline unsigned lzo_bitops_ctz32(lzo_uint32 v) --{ -- unsigned long r; -- (void) _BitScanForward(&r, v); -- return (unsigned) r; --} --#define lzo_bitops_ctz32 lzo_bitops_ctz32 --#endif --#if !defined(lzo_bitops_ctz64) && defined(WANT_lzo_bitops_ctz64) && defined(LZO_UINT64_MAX) --#pragma intrinsic(_BitScanForward64) --static __lzo_inline unsigned lzo_bitops_ctz64(lzo_uint64 v) --{ -- unsigned long r; -- (void) _BitScanForward64(&r, v); -- return (unsigned) r; --} --#define lzo_bitops_ctz64 lzo_bitops_ctz64 --#endif -- --#elif (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x030400ul) || (LZO_CC_INTELC && (__INTEL_COMPILER >= 1000)) || LZO_CC_LLVM) --#if !defined(lzo_bitops_clz32) && defined(WANT_lzo_bitops_clz32) --#define lzo_bitops_clz32(v) ((unsigned) __builtin_clz(v)) --#endif --#if !defined(lzo_bitops_clz64) && defined(WANT_lzo_bitops_clz64) && defined(LZO_UINT64_MAX) --#define lzo_bitops_clz64(v) ((unsigned) __builtin_clzll(v)) --#endif --#if !defined(lzo_bitops_ctz32) && defined(WANT_lzo_bitops_ctz32) --#define lzo_bitops_ctz32(v) ((unsigned) __builtin_ctz(v)) --#endif --#if !defined(lzo_bitops_ctz64) && defined(WANT_lzo_bitops_ctz64) && defined(LZO_UINT64_MAX) --#define lzo_bitops_ctz64(v) ((unsigned) __builtin_ctzll(v)) --#endif --#if !defined(lzo_bitops_popcount32) && defined(WANT_lzo_bitops_popcount32) --#define lzo_bitops_popcount32(v) ((unsigned) __builtin_popcount(v)) --#endif --#if !defined(lzo_bitops_popcount32) && defined(WANT_lzo_bitops_popcount64) && defined(LZO_UINT64_MAX) --#define lzo_bitops_popcount64(v) ((unsigned) __builtin_popcountll(v)) --#endif -+# define do_compress LZO_PP_ECONCAT2(DO_COMPRESS,_core) - #endif - - static __lzo_noinline lzo_uint -@@ -3166,7 +4614,7 @@ do_compress ( const lzo_bytep in , lzo_uint in_len, - lzo_bytep out, lzo_uintp out_len, - lzo_uint ti, lzo_voidp wrkmem) - { -- register const lzo_bytep ip; -+ const lzo_bytep ip; - lzo_bytep op; - const lzo_bytep const in_end = in + in_len; - const lzo_bytep const ip_end = in + in_len - 20; -@@ -3175,7 +4623,7 @@ do_compress ( const lzo_bytep in , lzo_uint in_len, - - op = out; - ip = in; -- ii = ip - ti; -+ ii = ip; - - ip += ti < 4 ? 4 - ti : 0; - for (;;) -@@ -3205,8 +4653,8 @@ next: - goto literal; - - try_match: --#if defined(UA_GET32) -- if (UA_GET32(m_pos) != UA_GET32(ip)) -+#if (LZO_OPT_UNALIGNED32) -+ if (UA_GET_NE32(m_pos) != UA_GET_NE32(ip)) - #else - if (m_pos[0] != ip[0] || m_pos[1] != ip[1] || m_pos[2] != ip[2] || m_pos[3] != ip[3]) - #endif -@@ -3221,49 +4669,43 @@ literal: - lzo_uint m_off; - lzo_uint m_len; - { -- lzo_uint32 dv; -+ lzo_uint32_t dv; - lzo_uint dindex; - literal: - ip += 1 + ((ip - ii) >> 5); - next: - if __lzo_unlikely(ip >= ip_end) - break; -- dv = UA_GET32(ip); -+ dv = UA_GET_LE32(ip); - dindex = DINDEX(dv,ip); - GINDEX(m_off,m_pos,in+dict,dindex,in); - UPDATE_I(dict,0,dindex,ip,in); -- if __lzo_unlikely(dv != UA_GET32(m_pos)) -+ if __lzo_unlikely(dv != UA_GET_LE32(m_pos)) - goto literal; - } - #endif - -+ ii -= ti; ti = 0; - { -- register lzo_uint t = pd(ip,ii); -+ lzo_uint t = pd(ip,ii); - if (t != 0) - { - if (t <= 3) - { -- op[-2] |= LZO_BYTE(t); --#if defined(UA_COPY32) -- UA_COPY32(op, ii); -+ op[-2] = LZO_BYTE(op[-2] | t); -+#if (LZO_OPT_UNALIGNED32) -+ UA_COPY4(op, ii); - op += t; - #else - { do *op++ = *ii++; while (--t > 0); } - #endif - } --#if defined(UA_COPY32) || defined(UA_COPY64) -+#if (LZO_OPT_UNALIGNED32) || (LZO_OPT_UNALIGNED64) - else if (t <= 16) - { - *op++ = LZO_BYTE(t - 3); --#if defined(UA_COPY64) -- UA_COPY64(op, ii); -- UA_COPY64(op+8, ii+8); --#else -- UA_COPY32(op, ii); -- UA_COPY32(op+4, ii+4); -- UA_COPY32(op+8, ii+8); -- UA_COPY32(op+12, ii+12); --#endif -+ UA_COPY8(op, ii); -+ UA_COPY8(op+8, ii+8); - op += t; - } - #endif -@@ -3273,31 +4715,21 @@ next: - *op++ = LZO_BYTE(t - 3); - else - { -- register lzo_uint tt = t - 18; -+ lzo_uint tt = t - 18; - *op++ = 0; - while __lzo_unlikely(tt > 255) - { - tt -= 255; --#if 1 && (LZO_CC_MSC && (_MSC_VER >= 1400)) -- * (volatile unsigned char *) op++ = 0; --#else -- *op++ = 0; --#endif -+ UA_SET1(op, 0); -+ op++; - } - assert(tt > 0); - *op++ = LZO_BYTE(tt); - } --#if defined(UA_COPY32) || defined(UA_COPY64) -+#if (LZO_OPT_UNALIGNED32) || (LZO_OPT_UNALIGNED64) - do { --#if defined(UA_COPY64) -- UA_COPY64(op, ii); -- UA_COPY64(op+8, ii+8); --#else -- UA_COPY32(op, ii); -- UA_COPY32(op+4, ii+4); -- UA_COPY32(op+8, ii+8); -- UA_COPY32(op+12, ii+12); --#endif -+ UA_COPY8(op, ii); -+ UA_COPY8(op+8, ii+8); - op += 16; ii += 16; t -= 16; - } while (t >= 16); if (t > 0) - #endif -@@ -3307,19 +4739,26 @@ next: - } - m_len = 4; - { --#if defined(UA_GET64) -- lzo_uint64 v; -- v = UA_GET64(ip + m_len) ^ UA_GET64(m_pos + m_len); -+#if (LZO_OPT_UNALIGNED64) -+ lzo_uint64_t v; -+ v = UA_GET_NE64(ip + m_len) ^ UA_GET_NE64(m_pos + m_len); - if __lzo_unlikely(v == 0) { - do { - m_len += 8; -- v = UA_GET64(ip + m_len) ^ UA_GET64(m_pos + m_len); -+ v = UA_GET_NE64(ip + m_len) ^ UA_GET_NE64(m_pos + m_len); - if __lzo_unlikely(ip + m_len >= ip_end) - goto m_len_done; - } while (v == 0); - } --#if (LZO_ABI_LITTLE_ENDIAN) && defined(lzo_bitops_ctz64) -- m_len += lzo_bitops_ctz64(v) / CHAR_BIT; -+#if (LZO_ABI_BIG_ENDIAN) && defined(lzo_bitops_ctlz64) -+ m_len += lzo_bitops_ctlz64(v) / CHAR_BIT; -+#elif (LZO_ABI_BIG_ENDIAN) -+ if ((v >> (64 - CHAR_BIT)) == 0) do { -+ v <<= CHAR_BIT; -+ m_len += 1; -+ } while ((v >> (64 - CHAR_BIT)) == 0); -+#elif (LZO_ABI_LITTLE_ENDIAN) && defined(lzo_bitops_cttz64) -+ m_len += lzo_bitops_cttz64(v) / CHAR_BIT; - #elif (LZO_ABI_LITTLE_ENDIAN) - if ((v & UCHAR_MAX) == 0) do { - v >>= CHAR_BIT; -@@ -3330,19 +4769,30 @@ next: - m_len += 1; - } while (ip[m_len] == m_pos[m_len]); - #endif --#elif defined(UA_GET32) -- lzo_uint32 v; -- v = UA_GET32(ip + m_len) ^ UA_GET32(m_pos + m_len); -+#elif (LZO_OPT_UNALIGNED32) -+ lzo_uint32_t v; -+ v = UA_GET_NE32(ip + m_len) ^ UA_GET_NE32(m_pos + m_len); - if __lzo_unlikely(v == 0) { - do { - m_len += 4; -- v = UA_GET32(ip + m_len) ^ UA_GET32(m_pos + m_len); -+ v = UA_GET_NE32(ip + m_len) ^ UA_GET_NE32(m_pos + m_len); -+ if (v != 0) -+ break; -+ m_len += 4; -+ v = UA_GET_NE32(ip + m_len) ^ UA_GET_NE32(m_pos + m_len); - if __lzo_unlikely(ip + m_len >= ip_end) - goto m_len_done; - } while (v == 0); - } --#if (LZO_ABI_LITTLE_ENDIAN) && defined(lzo_bitops_ctz32) -- m_len += lzo_bitops_ctz32(v) / CHAR_BIT; -+#if (LZO_ABI_BIG_ENDIAN) && defined(lzo_bitops_ctlz32) -+ m_len += lzo_bitops_ctlz32(v) / CHAR_BIT; -+#elif (LZO_ABI_BIG_ENDIAN) -+ if ((v >> (32 - CHAR_BIT)) == 0) do { -+ v <<= CHAR_BIT; -+ m_len += 1; -+ } while ((v >> (32 - CHAR_BIT)) == 0); -+#elif (LZO_ABI_LITTLE_ENDIAN) && defined(lzo_bitops_cttz32) -+ m_len += lzo_bitops_cttz32(v) / CHAR_BIT; - #elif (LZO_ABI_LITTLE_ENDIAN) - if ((v & UCHAR_MAX) == 0) do { - v >>= CHAR_BIT; -@@ -3357,6 +4807,27 @@ next: - if __lzo_unlikely(ip[m_len] == m_pos[m_len]) { - do { - m_len += 1; -+ if (ip[m_len] != m_pos[m_len]) -+ break; -+ m_len += 1; -+ if (ip[m_len] != m_pos[m_len]) -+ break; -+ m_len += 1; -+ if (ip[m_len] != m_pos[m_len]) -+ break; -+ m_len += 1; -+ if (ip[m_len] != m_pos[m_len]) -+ break; -+ m_len += 1; -+ if (ip[m_len] != m_pos[m_len]) -+ break; -+ m_len += 1; -+ if (ip[m_len] != m_pos[m_len]) -+ break; -+ m_len += 1; -+ if (ip[m_len] != m_pos[m_len]) -+ break; -+ m_len += 1; - if __lzo_unlikely(ip + m_len >= ip_end) - goto m_len_done; - } while (ip[m_len] == m_pos[m_len]); -@@ -3390,11 +4861,8 @@ m_len_done: - while __lzo_unlikely(m_len > 255) - { - m_len -= 255; --#if 1 && (LZO_CC_MSC && (_MSC_VER >= 1400)) -- * (volatile unsigned char *) op++ = 0; --#else -- *op++ = 0; --#endif -+ UA_SET1(op, 0); -+ op++; - } - *op++ = LZO_BYTE(m_len); - } -@@ -3413,11 +4881,8 @@ m_len_done: - while __lzo_unlikely(m_len > 255) - { - m_len -= 255; --#if 1 && (LZO_CC_MSC && (_MSC_VER >= 1400)) -- * (volatile unsigned char *) op++ = 0; --#else -- *op++ = 0; --#endif -+ UA_SET1(op, 0); -+ op++; - } - *op++ = LZO_BYTE(m_len); - } -@@ -3428,7 +4893,7 @@ m_len_done: - } - - *out_len = pd(op, out); -- return pd(in_end,ii); -+ return pd(in_end,ii-ti); - } - - LZO_PUBLIC(int) -@@ -3468,7 +4933,7 @@ DO_COMPRESS ( const lzo_bytep in , lzo_uint in_len, - if (op == out && t <= 238) - *op++ = LZO_BYTE(17 + t); - else if (t <= 3) -- op[-2] |= LZO_BYTE(t); -+ op[-2] = LZO_BYTE(op[-2] | t); - else if (t <= 18) - *op++ = LZO_BYTE(t - 3); - else -@@ -3479,17 +4944,14 @@ DO_COMPRESS ( const lzo_bytep in , lzo_uint in_len, - while (tt > 255) - { - tt -= 255; --#if 1 && (LZO_CC_MSC && (_MSC_VER >= 1400)) -- -- * (volatile unsigned char *) op++ = 0; --#else -- *op++ = 0; --#endif -+ UA_SET1(op, 0); -+ op++; - } - assert(tt > 0); - *op++ = LZO_BYTE(tt); - } -- do *op++ = *ii++; while (--t > 0); -+ UA_COPYN(op, ii, t); -+ op += t; - } - - *op++ = M4_MARKER | 1; -@@ -3526,10 +4988,13 @@ DO_COMPRESS ( const lzo_bytep in , lzo_uint in_len, - - #undef TEST_IP - #undef TEST_OP -+#undef TEST_IP_AND_TEST_OP - #undef TEST_LB - #undef TEST_LBO - #undef NEED_IP - #undef NEED_OP -+#undef TEST_IV -+#undef TEST_OV - #undef HAVE_TEST_IP - #undef HAVE_TEST_OP - #undef HAVE_NEED_IP -@@ -3544,6 +5009,7 @@ DO_COMPRESS ( const lzo_bytep in , lzo_uint in_len, - # if (LZO_TEST_OVERRUN_INPUT >= 2) - # define NEED_IP(x) \ - if ((lzo_uint)(ip_end - ip) < (lzo_uint)(x)) goto input_overrun -+# define TEST_IV(x) if ((x) > (lzo_uint)0 - (511)) goto input_overrun - # endif - #endif - -@@ -3555,12 +5021,13 @@ DO_COMPRESS ( const lzo_bytep in , lzo_uint in_len, - # undef TEST_OP - # define NEED_OP(x) \ - if ((lzo_uint)(op_end - op) < (lzo_uint)(x)) goto output_overrun -+# define TEST_OV(x) if ((x) > (lzo_uint)0 - (511)) goto output_overrun - # endif - #endif - - #if defined(LZO_TEST_OVERRUN_LOOKBEHIND) --# define TEST_LB(m_pos) if (m_pos < out || m_pos >= op) goto lookbehind_overrun --# define TEST_LBO(m_pos,o) if (m_pos < out || m_pos >= op - (o)) goto lookbehind_overrun -+# define TEST_LB(m_pos) if (PTR_LT(m_pos,out) || PTR_GE(m_pos,op)) goto lookbehind_overrun -+# define TEST_LBO(m_pos,o) if (PTR_LT(m_pos,out) || PTR_GE(m_pos,op-(o))) goto lookbehind_overrun - #else - # define TEST_LB(m_pos) ((void) 0) - # define TEST_LBO(m_pos,o) ((void) 0) -@@ -3581,15 +5048,27 @@ DO_COMPRESS ( const lzo_bytep in , lzo_uint in_len, - # define TEST_OP 1 - #endif - -+#if defined(HAVE_TEST_IP) && defined(HAVE_TEST_OP) -+# define TEST_IP_AND_TEST_OP (TEST_IP && TEST_OP) -+#elif defined(HAVE_TEST_IP) -+# define TEST_IP_AND_TEST_OP TEST_IP -+#elif defined(HAVE_TEST_OP) -+# define TEST_IP_AND_TEST_OP TEST_OP -+#else -+# define TEST_IP_AND_TEST_OP 1 -+#endif -+ - #if defined(NEED_IP) - # define HAVE_NEED_IP 1 - #else - # define NEED_IP(x) ((void) 0) -+# define TEST_IV(x) ((void) 0) - #endif - #if defined(NEED_OP) - # define HAVE_NEED_OP 1 - #else - # define NEED_OP(x) ((void) 0) -+# define TEST_OV(x) ((void) 0) - #endif - - #if defined(HAVE_TEST_IP) || defined(HAVE_NEED_IP) -@@ -3606,14 +5085,14 @@ DO_DECOMPRESS ( const lzo_bytep in , lzo_uint in_len, - lzo_voidp wrkmem ) - #endif - { -- register lzo_bytep op; -- register const lzo_bytep ip; -- register lzo_uint t; -+ lzo_bytep op; -+ const lzo_bytep ip; -+ lzo_uint t; - #if defined(COPY_DICT) - lzo_uint m_off; - const lzo_bytep dict_end; - #else -- register const lzo_bytep m_pos; -+ const lzo_bytep m_pos; - #endif - - const lzo_bytep const ip_end = in + in_len; -@@ -3648,43 +5127,45 @@ DO_DECOMPRESS ( const lzo_bytep in , lzo_uint in_len, - op = out; - ip = in; - -+ NEED_IP(1); - if (*ip > 17) - { - t = *ip++ - 17; - if (t < 4) - goto match_next; -- assert(t > 0); NEED_OP(t); NEED_IP(t+1); -+ assert(t > 0); NEED_OP(t); NEED_IP(t+3); - do *op++ = *ip++; while (--t > 0); - goto first_literal_run; - } - -- while (TEST_IP && TEST_OP) -+ for (;;) - { -+ NEED_IP(3); - t = *ip++; - if (t >= 16) - goto match; - if (t == 0) - { -- NEED_IP(1); - while (*ip == 0) - { - t += 255; - ip++; -+ TEST_IV(t); - NEED_IP(1); - } - t += 15 + *ip++; - } -- assert(t > 0); NEED_OP(t+3); NEED_IP(t+4); --#if defined(LZO_UNALIGNED_OK_8) && defined(LZO_UNALIGNED_OK_4) -+ assert(t > 0); NEED_OP(t+3); NEED_IP(t+6); -+#if (LZO_OPT_UNALIGNED64) && (LZO_OPT_UNALIGNED32) - t += 3; - if (t >= 8) do - { -- UA_COPY64(op,ip); -+ UA_COPY8(op,ip); - op += 8; ip += 8; t -= 8; - } while (t >= 8); - if (t >= 4) - { -- UA_COPY32(op,ip); -+ UA_COPY4(op,ip); - op += 4; ip += 4; t -= 4; - } - if (t > 0) -@@ -3692,19 +5173,19 @@ DO_DECOMPRESS ( const lzo_bytep in , lzo_uint in_len, - *op++ = *ip++; - if (t > 1) { *op++ = *ip++; if (t > 2) { *op++ = *ip++; } } - } --#elif defined(LZO_UNALIGNED_OK_4) || defined(LZO_ALIGNED_OK_4) --#if !defined(LZO_UNALIGNED_OK_4) -+#elif (LZO_OPT_UNALIGNED32) || (LZO_ALIGNED_OK_4) -+#if !(LZO_OPT_UNALIGNED32) - if (PTR_ALIGNED2_4(op,ip)) - { - #endif -- UA_COPY32(op,ip); -+ UA_COPY4(op,ip); - op += 4; ip += 4; - if (--t > 0) - { - if (t >= 4) - { - do { -- UA_COPY32(op,ip); -+ UA_COPY4(op,ip); - op += 4; ip += 4; t -= 4; - } while (t >= 4); - if (t > 0) do *op++ = *ip++; while (--t > 0); -@@ -3712,12 +5193,12 @@ DO_DECOMPRESS ( const lzo_bytep in , lzo_uint in_len, - else - do *op++ = *ip++; while (--t > 0); - } --#if !defined(LZO_UNALIGNED_OK_4) -+#if !(LZO_OPT_UNALIGNED32) - } - else - #endif - #endif --#if !defined(LZO_UNALIGNED_OK_4) && !defined(LZO_UNALIGNED_OK_8) -+#if !(LZO_OPT_UNALIGNED32) - { - *op++ = *ip++; *op++ = *ip++; *op++ = *ip++; - do *op++ = *ip++; while (--t > 0); -@@ -3753,7 +5234,7 @@ first_literal_run: - #endif - goto match_done; - -- do { -+ for (;;) { - match: - if (t >= 64) - { -@@ -3813,14 +5294,15 @@ match: - t &= 31; - if (t == 0) - { -- NEED_IP(1); - while (*ip == 0) - { - t += 255; - ip++; -+ TEST_OV(t); - NEED_IP(1); - } - t += 31 + *ip++; -+ NEED_IP(2); - } - #if defined(COPY_DICT) - #if defined(LZO1Z) -@@ -3836,9 +5318,9 @@ match: - m_pos = op - off; - last_m_off = off; - } --#elif defined(LZO_UNALIGNED_OK_2) && defined(LZO_ABI_LITTLE_ENDIAN) -+#elif (LZO_OPT_UNALIGNED16) && (LZO_ABI_LITTLE_ENDIAN) - m_pos = op - 1; -- m_pos -= UA_GET16(ip) >> 2; -+ m_pos -= UA_GET_LE16(ip) >> 2; - #else - m_pos = op - 1; - m_pos -= (ip[0] >> 2) + (ip[1] << 6); -@@ -3857,14 +5339,15 @@ match: - t &= 7; - if (t == 0) - { -- NEED_IP(1); - while (*ip == 0) - { - t += 255; - ip++; -+ TEST_OV(t); - NEED_IP(1); - } - t += 7 + *ip++; -+ NEED_IP(2); - } - #if defined(COPY_DICT) - #if defined(LZO1Z) -@@ -3882,8 +5365,8 @@ match: - #else - #if defined(LZO1Z) - m_pos -= (ip[0] << 6) + (ip[1] >> 2); --#elif defined(LZO_UNALIGNED_OK_2) && defined(LZO_ABI_LITTLE_ENDIAN) -- m_pos -= UA_GET16(ip) >> 2; -+#elif (LZO_OPT_UNALIGNED16) && (LZO_ABI_LITTLE_ENDIAN) -+ m_pos -= UA_GET_LE16(ip) >> 2; - #else - m_pos -= (ip[0] >> 2) + (ip[1] << 6); - #endif -@@ -3931,18 +5414,18 @@ match: - #else - - TEST_LB(m_pos); assert(t > 0); NEED_OP(t+3-1); --#if defined(LZO_UNALIGNED_OK_8) && defined(LZO_UNALIGNED_OK_4) -+#if (LZO_OPT_UNALIGNED64) && (LZO_OPT_UNALIGNED32) - if (op - m_pos >= 8) - { - t += (3 - 1); - if (t >= 8) do - { -- UA_COPY64(op,m_pos); -+ UA_COPY8(op,m_pos); - op += 8; m_pos += 8; t -= 8; - } while (t >= 8); - if (t >= 4) - { -- UA_COPY32(op,m_pos); -+ UA_COPY4(op,m_pos); - op += 4; m_pos += 4; t -= 4; - } - if (t > 0) -@@ -3952,8 +5435,8 @@ match: - } - } - else --#elif defined(LZO_UNALIGNED_OK_4) || defined(LZO_ALIGNED_OK_4) --#if !defined(LZO_UNALIGNED_OK_4) -+#elif (LZO_OPT_UNALIGNED32) || (LZO_ALIGNED_OK_4) -+#if !(LZO_OPT_UNALIGNED32) - if (t >= 2 * 4 - (3 - 1) && PTR_ALIGNED2_4(op,m_pos)) - { - assert((op - m_pos) >= 4); -@@ -3961,10 +5444,10 @@ match: - if (t >= 2 * 4 - (3 - 1) && (op - m_pos) >= 4) - { - #endif -- UA_COPY32(op,m_pos); -+ UA_COPY4(op,m_pos); - op += 4; m_pos += 4; t -= 4 - (3 - 1); - do { -- UA_COPY32(op,m_pos); -+ UA_COPY4(op,m_pos); - op += 4; m_pos += 4; t -= 4; - } while (t >= 4); - if (t > 0) do *op++ = *m_pos++; while (--t > 0); -@@ -3989,7 +5472,7 @@ match_done: - break; - - match_next: -- assert(t > 0); assert(t < 4); NEED_OP(t); NEED_IP(t+1); -+ assert(t > 0); assert(t < 4); NEED_OP(t); NEED_IP(t+3); - #if 0 - do *op++ = *ip++; while (--t > 0); - #else -@@ -3997,16 +5480,10 @@ match_next: - if (t > 1) { *op++ = *ip++; if (t > 2) { *op++ = *ip++; } } - #endif - t = *ip++; -- } while (TEST_IP && TEST_OP); -+ } - } - --#if defined(HAVE_TEST_IP) || defined(HAVE_TEST_OP) -- *out_len = pd(op, out); -- return LZO_E_EOF_NOT_FOUND; --#endif -- - eof_found: -- assert(t == 1); - *out_len = pd(op, out); - return (ip == ip_end ? LZO_E_OK : - (ip < ip_end ? LZO_E_INPUT_NOT_CONSUMED : LZO_E_INPUT_OVERRUN)); -@@ -4052,10 +5529,13 @@ lookbehind_overrun: - - #undef TEST_IP - #undef TEST_OP -+#undef TEST_IP_AND_TEST_OP - #undef TEST_LB - #undef TEST_LBO - #undef NEED_IP - #undef NEED_OP -+#undef TEST_IV -+#undef TEST_OV - #undef HAVE_TEST_IP - #undef HAVE_TEST_OP - #undef HAVE_NEED_IP -@@ -4070,6 +5550,7 @@ lookbehind_overrun: - # if (LZO_TEST_OVERRUN_INPUT >= 2) - # define NEED_IP(x) \ - if ((lzo_uint)(ip_end - ip) < (lzo_uint)(x)) goto input_overrun -+# define TEST_IV(x) if ((x) > (lzo_uint)0 - (511)) goto input_overrun - # endif - #endif - -@@ -4081,12 +5562,13 @@ lookbehind_overrun: - # undef TEST_OP - # define NEED_OP(x) \ - if ((lzo_uint)(op_end - op) < (lzo_uint)(x)) goto output_overrun -+# define TEST_OV(x) if ((x) > (lzo_uint)0 - (511)) goto output_overrun - # endif - #endif - - #if defined(LZO_TEST_OVERRUN_LOOKBEHIND) --# define TEST_LB(m_pos) if (m_pos < out || m_pos >= op) goto lookbehind_overrun --# define TEST_LBO(m_pos,o) if (m_pos < out || m_pos >= op - (o)) goto lookbehind_overrun -+# define TEST_LB(m_pos) if (PTR_LT(m_pos,out) || PTR_GE(m_pos,op)) goto lookbehind_overrun -+# define TEST_LBO(m_pos,o) if (PTR_LT(m_pos,out) || PTR_GE(m_pos,op-(o))) goto lookbehind_overrun - #else - # define TEST_LB(m_pos) ((void) 0) - # define TEST_LBO(m_pos,o) ((void) 0) -@@ -4107,15 +5589,27 @@ lookbehind_overrun: - # define TEST_OP 1 - #endif - -+#if defined(HAVE_TEST_IP) && defined(HAVE_TEST_OP) -+# define TEST_IP_AND_TEST_OP (TEST_IP && TEST_OP) -+#elif defined(HAVE_TEST_IP) -+# define TEST_IP_AND_TEST_OP TEST_IP -+#elif defined(HAVE_TEST_OP) -+# define TEST_IP_AND_TEST_OP TEST_OP -+#else -+# define TEST_IP_AND_TEST_OP 1 -+#endif -+ - #if defined(NEED_IP) - # define HAVE_NEED_IP 1 - #else - # define NEED_IP(x) ((void) 0) -+# define TEST_IV(x) ((void) 0) - #endif - #if defined(NEED_OP) - # define HAVE_NEED_OP 1 - #else - # define NEED_OP(x) ((void) 0) -+# define TEST_OV(x) ((void) 0) - #endif - - #if defined(HAVE_TEST_IP) || defined(HAVE_NEED_IP) -@@ -4132,14 +5626,14 @@ DO_DECOMPRESS ( const lzo_bytep in , lzo_uint in_len, - lzo_voidp wrkmem ) - #endif - { -- register lzo_bytep op; -- register const lzo_bytep ip; -- register lzo_uint t; -+ lzo_bytep op; -+ const lzo_bytep ip; -+ lzo_uint t; - #if defined(COPY_DICT) - lzo_uint m_off; - const lzo_bytep dict_end; - #else -- register const lzo_bytep m_pos; -+ const lzo_bytep m_pos; - #endif - - const lzo_bytep const ip_end = in + in_len; -@@ -4174,43 +5668,45 @@ DO_DECOMPRESS ( const lzo_bytep in , lzo_uint in_len, - op = out; - ip = in; - -+ NEED_IP(1); - if (*ip > 17) - { - t = *ip++ - 17; - if (t < 4) - goto match_next; -- assert(t > 0); NEED_OP(t); NEED_IP(t+1); -+ assert(t > 0); NEED_OP(t); NEED_IP(t+3); - do *op++ = *ip++; while (--t > 0); - goto first_literal_run; - } - -- while (TEST_IP && TEST_OP) -+ for (;;) - { -+ NEED_IP(3); - t = *ip++; - if (t >= 16) - goto match; - if (t == 0) - { -- NEED_IP(1); - while (*ip == 0) - { - t += 255; - ip++; -+ TEST_IV(t); - NEED_IP(1); - } - t += 15 + *ip++; - } -- assert(t > 0); NEED_OP(t+3); NEED_IP(t+4); --#if defined(LZO_UNALIGNED_OK_8) && defined(LZO_UNALIGNED_OK_4) -+ assert(t > 0); NEED_OP(t+3); NEED_IP(t+6); -+#if (LZO_OPT_UNALIGNED64) && (LZO_OPT_UNALIGNED32) - t += 3; - if (t >= 8) do - { -- UA_COPY64(op,ip); -+ UA_COPY8(op,ip); - op += 8; ip += 8; t -= 8; - } while (t >= 8); - if (t >= 4) - { -- UA_COPY32(op,ip); -+ UA_COPY4(op,ip); - op += 4; ip += 4; t -= 4; - } - if (t > 0) -@@ -4218,19 +5714,19 @@ DO_DECOMPRESS ( const lzo_bytep in , lzo_uint in_len, - *op++ = *ip++; - if (t > 1) { *op++ = *ip++; if (t > 2) { *op++ = *ip++; } } - } --#elif defined(LZO_UNALIGNED_OK_4) || defined(LZO_ALIGNED_OK_4) --#if !defined(LZO_UNALIGNED_OK_4) -+#elif (LZO_OPT_UNALIGNED32) || (LZO_ALIGNED_OK_4) -+#if !(LZO_OPT_UNALIGNED32) - if (PTR_ALIGNED2_4(op,ip)) - { - #endif -- UA_COPY32(op,ip); -+ UA_COPY4(op,ip); - op += 4; ip += 4; - if (--t > 0) - { - if (t >= 4) - { - do { -- UA_COPY32(op,ip); -+ UA_COPY4(op,ip); - op += 4; ip += 4; t -= 4; - } while (t >= 4); - if (t > 0) do *op++ = *ip++; while (--t > 0); -@@ -4238,12 +5734,12 @@ DO_DECOMPRESS ( const lzo_bytep in , lzo_uint in_len, - else - do *op++ = *ip++; while (--t > 0); - } --#if !defined(LZO_UNALIGNED_OK_4) -+#if !(LZO_OPT_UNALIGNED32) - } - else - #endif - #endif --#if !defined(LZO_UNALIGNED_OK_4) && !defined(LZO_UNALIGNED_OK_8) -+#if !(LZO_OPT_UNALIGNED32) - { - *op++ = *ip++; *op++ = *ip++; *op++ = *ip++; - do *op++ = *ip++; while (--t > 0); -@@ -4279,7 +5775,7 @@ first_literal_run: - #endif - goto match_done; - -- do { -+ for (;;) { - match: - if (t >= 64) - { -@@ -4339,14 +5835,15 @@ match: - t &= 31; - if (t == 0) - { -- NEED_IP(1); - while (*ip == 0) - { - t += 255; - ip++; -+ TEST_OV(t); - NEED_IP(1); - } - t += 31 + *ip++; -+ NEED_IP(2); - } - #if defined(COPY_DICT) - #if defined(LZO1Z) -@@ -4362,9 +5859,9 @@ match: - m_pos = op - off; - last_m_off = off; - } --#elif defined(LZO_UNALIGNED_OK_2) && defined(LZO_ABI_LITTLE_ENDIAN) -+#elif (LZO_OPT_UNALIGNED16) && (LZO_ABI_LITTLE_ENDIAN) - m_pos = op - 1; -- m_pos -= UA_GET16(ip) >> 2; -+ m_pos -= UA_GET_LE16(ip) >> 2; - #else - m_pos = op - 1; - m_pos -= (ip[0] >> 2) + (ip[1] << 6); -@@ -4383,14 +5880,15 @@ match: - t &= 7; - if (t == 0) - { -- NEED_IP(1); - while (*ip == 0) - { - t += 255; - ip++; -+ TEST_OV(t); - NEED_IP(1); - } - t += 7 + *ip++; -+ NEED_IP(2); - } - #if defined(COPY_DICT) - #if defined(LZO1Z) -@@ -4408,8 +5906,8 @@ match: - #else - #if defined(LZO1Z) - m_pos -= (ip[0] << 6) + (ip[1] >> 2); --#elif defined(LZO_UNALIGNED_OK_2) && defined(LZO_ABI_LITTLE_ENDIAN) -- m_pos -= UA_GET16(ip) >> 2; -+#elif (LZO_OPT_UNALIGNED16) && (LZO_ABI_LITTLE_ENDIAN) -+ m_pos -= UA_GET_LE16(ip) >> 2; - #else - m_pos -= (ip[0] >> 2) + (ip[1] << 6); - #endif -@@ -4457,18 +5955,18 @@ match: - #else - - TEST_LB(m_pos); assert(t > 0); NEED_OP(t+3-1); --#if defined(LZO_UNALIGNED_OK_8) && defined(LZO_UNALIGNED_OK_4) -+#if (LZO_OPT_UNALIGNED64) && (LZO_OPT_UNALIGNED32) - if (op - m_pos >= 8) - { - t += (3 - 1); - if (t >= 8) do - { -- UA_COPY64(op,m_pos); -+ UA_COPY8(op,m_pos); - op += 8; m_pos += 8; t -= 8; - } while (t >= 8); - if (t >= 4) - { -- UA_COPY32(op,m_pos); -+ UA_COPY4(op,m_pos); - op += 4; m_pos += 4; t -= 4; - } - if (t > 0) -@@ -4478,8 +5976,8 @@ match: - } - } - else --#elif defined(LZO_UNALIGNED_OK_4) || defined(LZO_ALIGNED_OK_4) --#if !defined(LZO_UNALIGNED_OK_4) -+#elif (LZO_OPT_UNALIGNED32) || (LZO_ALIGNED_OK_4) -+#if !(LZO_OPT_UNALIGNED32) - if (t >= 2 * 4 - (3 - 1) && PTR_ALIGNED2_4(op,m_pos)) - { - assert((op - m_pos) >= 4); -@@ -4487,10 +5985,10 @@ match: - if (t >= 2 * 4 - (3 - 1) && (op - m_pos) >= 4) - { - #endif -- UA_COPY32(op,m_pos); -+ UA_COPY4(op,m_pos); - op += 4; m_pos += 4; t -= 4 - (3 - 1); - do { -- UA_COPY32(op,m_pos); -+ UA_COPY4(op,m_pos); - op += 4; m_pos += 4; t -= 4; - } while (t >= 4); - if (t > 0) do *op++ = *m_pos++; while (--t > 0); -@@ -4515,7 +6013,7 @@ match_done: - break; - - match_next: -- assert(t > 0); assert(t < 4); NEED_OP(t); NEED_IP(t+1); -+ assert(t > 0); assert(t < 4); NEED_OP(t); NEED_IP(t+3); - #if 0 - do *op++ = *ip++; while (--t > 0); - #else -@@ -4523,16 +6021,10 @@ match_next: - if (t > 1) { *op++ = *ip++; if (t > 2) { *op++ = *ip++; } } - #endif - t = *ip++; -- } while (TEST_IP && TEST_OP); -+ } - } - --#if defined(HAVE_TEST_IP) || defined(HAVE_TEST_OP) -- *out_len = pd(op, out); -- return LZO_E_EOF_NOT_FOUND; --#endif -- - eof_found: -- assert(t == 1); - *out_len = pd(op, out); - return (ip == ip_end ? LZO_E_OK : - (ip < ip_end ? LZO_E_INPUT_NOT_CONSUMED : LZO_E_INPUT_OVERRUN)); -@@ -4559,4 +6051,3 @@ lookbehind_overrun: - #endif - - /***** End of minilzo.c *****/ -- -diff --git a/grub-core/lib/minilzo/minilzo.h b/grub-core/lib/minilzo/minilzo.h -index 74fefa9..7937454 100644 ---- a/grub-core/lib/minilzo/minilzo.h -+++ b/grub-core/lib/minilzo/minilzo.h -@@ -2,22 +2,7 @@ - - This file is part of the LZO real-time data compression library. - -- Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer -+ Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer - All Rights Reserved. - - The LZO library is free software; you can redistribute it and/or -@@ -50,7 +35,7 @@ - #ifndef __MINILZO_H - #define __MINILZO_H 1 - --#define MINILZO_VERSION 0x2050 -+#define MINILZO_VERSION 0x2080 - - #ifdef __LZOCONF_H - # error "you cannot use both LZO and miniLZO" -@@ -78,7 +63,7 @@ extern "C" { - */ - - #define LZO1X_MEM_COMPRESS LZO1X_1_MEM_COMPRESS --#define LZO1X_1_MEM_COMPRESS ((lzo_uint32) (16384L * lzo_sizeof_dict_t)) -+#define LZO1X_1_MEM_COMPRESS ((lzo_uint32_t) (16384L * lzo_sizeof_dict_t)) - #define LZO1X_MEM_DECOMPRESS (0) - - --- -1.8.3.1 - diff --git a/0012-Move-bash-completion-script-922997.patch b/0014-Move-bash-completion-script-922997.patch similarity index 83% rename from 0012-Move-bash-completion-script-922997.patch rename to 0014-Move-bash-completion-script-922997.patch index 6e46b61..6bf0b4b 100644 --- a/0012-Move-bash-completion-script-922997.patch +++ b/0014-Move-bash-completion-script-922997.patch @@ -1,7 +1,7 @@ -From 11d400b4b4f1475cf1a75e7f216524a903e7df7c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Apr 2013 14:35:34 -0400 -Subject: [PATCH 012/220] Move bash completion script (#922997) +Subject: [PATCH] Move bash completion script (#922997) Apparently these go in a new place now. --- @@ -10,10 +10,10 @@ Apparently these go in a new place now. 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index 7656f24..d283af6 100644 +index 7517fc49d98..8331f95b645 100644 --- a/configure.ac +++ b/configure.ac -@@ -305,6 +305,14 @@ AC_SUBST(grubdirname) +@@ -314,6 +314,14 @@ AC_SUBST(grubdirname) AC_DEFINE_UNQUOTED(GRUB_DIR_NAME, "$grubdirname", [Default grub directory name]) @@ -28,7 +28,7 @@ index 7656f24..d283af6 100644 # # Checks for build programs. # -@@ -516,6 +524,9 @@ HOST_CFLAGS="$HOST_CFLAGS $grub_cv_cc_w_extra_flags" +@@ -525,6 +533,9 @@ HOST_CFLAGS="$HOST_CFLAGS $grub_cv_cc_w_extra_flags" # Check for target programs. # @@ -39,7 +39,7 @@ index 7656f24..d283af6 100644 if test "x$target_alias" != x && test "x$host_alias" != "x$target_alias"; then tmp_ac_tool_prefix="$ac_tool_prefix" diff --git a/util/bash-completion.d/Makefile.am b/util/bash-completion.d/Makefile.am -index 136287c..61108f0 100644 +index 136287cf1bf..61108f05429 100644 --- a/util/bash-completion.d/Makefile.am +++ b/util/bash-completion.d/Makefile.am @@ -6,7 +6,6 @@ EXTRA_DIST = $(bash_completion_source) @@ -50,6 +50,3 @@ index 136287c..61108f0 100644 bashcompletion_DATA = $(bash_completion_script) $(bash_completion_script): $(bash_completion_source) $(top_builddir)/config.status --- -1.8.3.1 - diff --git a/0015-Add-GRUB_DISABLE_UUID.patch b/0015-Add-GRUB_DISABLE_UUID.patch deleted file mode 100644 index fe853dc..0000000 --- a/0015-Add-GRUB_DISABLE_UUID.patch +++ /dev/null @@ -1,109 +0,0 @@ -From be1ed0f8e7ddf8747049c6e132c25032d2fef9ca Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Thu, 4 Sep 2014 16:49:25 -0400 -Subject: [PATCH 015/220] Add GRUB_DISABLE_UUID. - -This will cause "search --fs-uuid --set=root ..." not to be generated by -grub2-mkconfig, and instead simply attempt to use the grub device name -as it understands it. - -Signed-off-by: Peter Jones ---- - docs/grub.texi | 7 +++++++ - util/grub-mkconfig.in | 22 +++++++++++++++++++--- - util/grub-mkconfig_lib.in | 4 ++-- - 3 files changed, 28 insertions(+), 5 deletions(-) - -diff --git a/docs/grub.texi b/docs/grub.texi -index 8779507..6f52430 100644 ---- a/docs/grub.texi -+++ b/docs/grub.texi -@@ -1441,6 +1441,13 @@ enable the use of partition UUIDs, set this option to @samp{false}. - If this option is set to @samp{true}, disable the generation of recovery - mode menu entries. - -+@item GRUB_DISABLE_UUID -+Normally, @command{grub-mkconfig} will generate menu entries that use -+universally-unique identifiers (UUIDs) to identify various filesystems to -+search for files. This is usually more reliable, but in some cases it may -+not be appropriate. To disable this use of UUIDs, set this option to -+@samp{true}. -+ - @item GRUB_VIDEO_BACKEND - If graphical video support is required, either because the @samp{gfxterm} - graphical terminal is in use or because @samp{GRUB_GFXPAYLOAD_LINUX} is set, -diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 523d4e0..9ecbcfb 100644 ---- a/util/grub-mkconfig.in -+++ b/util/grub-mkconfig.in -@@ -133,12 +133,12 @@ fi - - # Device containing our userland. Typically used for root= parameter. - GRUB_DEVICE="`${grub_probe} --target=device /`" --GRUB_DEVICE_UUID="`${grub_probe} --device ${GRUB_DEVICE} --target=fs_uuid 2> /dev/null`" || true --GRUB_DEVICE_PARTUUID="`${grub_probe} --device ${GRUB_DEVICE} --target=partuuid 2> /dev/null`" || true -+GRUB_DEVICE_UUID_GENERATED="`${grub_probe} --device ${GRUB_DEVICE} --target=fs_uuid 2> /dev/null`" || true -+GRUB_DEVICE_PARTUUID_GENERATED="`${grub_probe} --device ${GRUB_DEVICE} --target=partuuid 2> /dev/null`" || true - - # Device containing our /boot partition. Usually the same as GRUB_DEVICE. - GRUB_DEVICE_BOOT="`${grub_probe} --target=device /boot`" --GRUB_DEVICE_BOOT_UUID="`${grub_probe} --device ${GRUB_DEVICE_BOOT} --target=fs_uuid 2> /dev/null`" || true -+GRUB_DEVICE_BOOT_UUID_GENERATED="`${grub_probe} --device ${GRUB_DEVICE_BOOT} --target=fs_uuid 2> /dev/null`" || true - - # Filesystem for the device containing our userland. Used for stuff like - # choosing Hurd filesystem module. -@@ -158,6 +158,21 @@ if test -f ${sysconfdir}/default/grub ; then - . ${sysconfdir}/default/grub - fi - -+if [ "x$GRUB_DISABLE_UUID" != "xtrue" ]; then -+ if [ -z "$GRUB_DEVICE_UUID" ]; then -+ GRUB_DEVICE_UUID="$GRUB_DEVICE_UUID_GENERATED" -+ fi -+ if [ -z "$GRUB_DEVICE_BOOT_UUID" ]; then -+ GRUB_DEVICE_BOOT_UUID="$GRUB_DEVICE_BOOT_UUID_GENERATED" -+ fi -+ if [ -z "$GRUB_DEVICE_UUID" ]; then -+ GRUB_DEVICE_UUID="$GRUB_DEVICE_UUID_GENERATED" -+ fi -+ if [ -z "$GRUB_DEVICE_PART_UUID" ]; then -+ GRUB_DEVICE_PART_UUID="$GRUB_DEVICE_PART_UUID_GENERATED" -+ fi -+fi -+ - # XXX: should this be deprecated at some point? - if [ "x${GRUB_TERMINAL}" != "x" ] ; then - GRUB_TERMINAL_INPUT="${GRUB_TERMINAL}" -@@ -227,6 +242,7 @@ export GRUB_DEFAULT \ - GRUB_DISABLE_LINUX_UUID \ - GRUB_DISABLE_LINUX_PARTUUID \ - GRUB_DISABLE_RECOVERY \ -+ GRUB_DISABLE_UUID \ - GRUB_VIDEO_BACKEND \ - GRUB_GFXMODE \ - GRUB_BACKGROUND \ -diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index 0f801ca..1001a12 100644 ---- a/util/grub-mkconfig_lib.in -+++ b/util/grub-mkconfig_lib.in -@@ -156,7 +156,7 @@ prepare_grub_to_access_device () - if [ "x$fs_hint" != x ]; then - echo "set root='$fs_hint'" - fi -- if fs_uuid="`"${grub_probe}" --device $@ --target=fs_uuid 2> /dev/null`" ; then -+ if [ "x$GRUB_DISABLE_UUID" != "xtrue" ] && fs_uuid="`"${grub_probe}" --device $@ --target=fs_uuid 2> /dev/null`" ; then - hints="`"${grub_probe}" --device $@ --target=hints_string 2> /dev/null`" || hints= - echo "if [ x\$feature_platform_search_hint = xy ]; then" - echo " search --no-floppy --fs-uuid --set=root ${hints} ${fs_uuid}" -@@ -173,7 +173,7 @@ grub_get_device_id () - IFS=' - ' - device="$1" -- if fs_uuid="`"${grub_probe}" --device ${device} --target=fs_uuid 2> /dev/null`" ; then -+ if [ "x$GRUB_DISABLE_UUID" != "xtrue" ] && fs_uuid="`"${grub_probe}" --device ${device} --target=fs_uuid 2> /dev/null`" ; then - echo "$fs_uuid"; - else - echo $device |sed 's, ,_,g' --- -1.8.3.1 - diff --git a/0014-Allow-fallback-to-include-entries-by-title-not-just-.patch b/0015-Allow-fallback-to-include-entries-by-title-not-just-.patch similarity index 86% rename from 0014-Allow-fallback-to-include-entries-by-title-not-just-.patch rename to 0015-Allow-fallback-to-include-entries-by-title-not-just-.patch index 9a4eac8..f2a4a82 100644 --- a/0014-Allow-fallback-to-include-entries-by-title-not-just-.patch +++ b/0015-Allow-fallback-to-include-entries-by-title-not-just-.patch @@ -1,8 +1,8 @@ -From f12a6d6082e3d532b676e3835e833df2d818416b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 5 Sep 2014 10:07:04 -0400 -Subject: [PATCH 014/220] Allow "fallback" to include entries by title, not - just number. +Subject: [PATCH] Allow "fallback" to include entries by title, not just + number. Resolves: rhbz#1026084 @@ -12,10 +12,10 @@ Signed-off-by: Peter Jones 1 file changed, 58 insertions(+), 27 deletions(-) diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c -index d5e0c79..9175ad2 100644 +index 8397886fa05..d7a222e681b 100644 --- a/grub-core/normal/menu.c +++ b/grub-core/normal/menu.c -@@ -163,16 +163,41 @@ grub_menu_set_timeout (int timeout) +@@ -163,15 +163,40 @@ grub_menu_set_timeout (int timeout) } } @@ -51,14 +51,13 @@ index d5e0c79..9175ad2 100644 -get_and_remove_first_entry_number (const char *name) +get_and_remove_first_entry_number (grub_menu_t menu, const char *name) { - const char *val; - char *tail; + const char *val, *tail; int entry; + int sz = 0; val = grub_env_get (name); if (! val) -@@ -182,9 +207,39 @@ get_and_remove_first_entry_number (const char *name) +@@ -181,9 +206,39 @@ get_and_remove_first_entry_number (const char *name) entry = (int) grub_strtoul (val, &tail, 0); @@ -99,7 +98,7 @@ index d5e0c79..9175ad2 100644 while (*tail && grub_isspace (*tail)) tail++; grub_env_set (name, tail); -@@ -347,7 +402,7 @@ grub_menu_execute_with_fallback (grub_menu_t menu, +@@ -346,7 +401,7 @@ grub_menu_execute_with_fallback (grub_menu_t menu, grub_menu_execute_entry (entry, 1); /* Deal with fallback entries. */ @@ -108,7 +107,7 @@ index d5e0c79..9175ad2 100644 >= 0) { grub_print_error (); -@@ -465,30 +520,6 @@ grub_menu_register_viewer (struct grub_menu_viewer *viewer) +@@ -464,30 +519,6 @@ grub_menu_register_viewer (struct grub_menu_viewer *viewer) viewers = viewer; } @@ -139,6 +138,3 @@ index d5e0c79..9175ad2 100644 /* Get the entry number from the variable NAME. */ static int get_entry_number (grub_menu_t menu, const char *name) --- -1.8.3.1 - diff --git a/0016-Make-exit-take-a-return-code.patch b/0016-Make-exit-take-a-return-code.patch index 4f409bd..39d7057 100644 --- a/0016-Make-exit-take-a-return-code.patch +++ b/0016-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ -From 479a8c2d36a28aaac12bf349ea09999655b90353 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 016/220] Make "exit" take a return code. +Subject: [PATCH] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support @@ -27,10 +27,10 @@ Signed-off-by: Peter Jones 14 files changed, 48 insertions(+), 21 deletions(-) diff --git a/grub-core/commands/minicmd.c b/grub-core/commands/minicmd.c -index 6bbce31..6d66b7c 100644 +index fa498931ed2..2bd3ac76f2d 100644 --- a/grub-core/commands/minicmd.c +++ b/grub-core/commands/minicmd.c -@@ -179,12 +179,24 @@ grub_mini_cmd_lsmod (struct grub_command *cmd __attribute__ ((unused)), +@@ -182,12 +182,24 @@ grub_mini_cmd_lsmod (struct grub_command *cmd __attribute__ ((unused)), } /* exit */ @@ -60,10 +60,10 @@ index 6bbce31..6d66b7c 100644 } diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index 6e1ceb9..370ce03 100644 +index 8cff7be0289..05d8237a9b2 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c -@@ -164,11 +164,16 @@ grub_reboot (void) +@@ -165,11 +165,16 @@ grub_reboot (void) } void @@ -83,7 +83,7 @@ index 6e1ceb9..370ce03 100644 } diff --git a/grub-core/kern/emu/main.c b/grub-core/kern/emu/main.c -index 425bb96..55ea5a1 100644 +index 425bb960347..55ea5a11ccd 100644 --- a/grub-core/kern/emu/main.c +++ b/grub-core/kern/emu/main.c @@ -67,7 +67,7 @@ grub_reboot (void) @@ -96,10 +96,10 @@ index 425bb96..55ea5a1 100644 grub_reboot (); } diff --git a/grub-core/kern/emu/misc.c b/grub-core/kern/emu/misc.c -index 65db79b..19cd007 100644 +index dfd8a8ec488..0ff13bcaf8c 100644 --- a/grub-core/kern/emu/misc.c +++ b/grub-core/kern/emu/misc.c -@@ -139,9 +139,10 @@ xasprintf (const char *fmt, ...) +@@ -151,9 +151,10 @@ xasprintf (const char *fmt, ...) #if !defined (GRUB_MACHINE_EMU) || defined (GRUB_UTIL) void @@ -113,7 +113,7 @@ index 65db79b..19cd007 100644 #endif diff --git a/grub-core/kern/i386/coreboot/init.c b/grub-core/kern/i386/coreboot/init.c -index 3314f02..36f9134 100644 +index 3314f027fec..36f9134b7b7 100644 --- a/grub-core/kern/i386/coreboot/init.c +++ b/grub-core/kern/i386/coreboot/init.c @@ -41,7 +41,7 @@ extern grub_uint8_t _end[]; @@ -126,7 +126,7 @@ index 3314f02..36f9134 100644 /* We can't use grub_fatal() in this function. This would create an infinite loop, since grub_fatal() calls grub_abort() which in turn calls grub_exit(). */ diff --git a/grub-core/kern/i386/qemu/init.c b/grub-core/kern/i386/qemu/init.c -index 271b6fb..9fafe98 100644 +index 271b6fbfabd..9fafe98f015 100644 --- a/grub-core/kern/i386/qemu/init.c +++ b/grub-core/kern/i386/qemu/init.c @@ -42,7 +42,7 @@ extern grub_uint8_t _end[]; @@ -139,7 +139,7 @@ index 271b6fb..9fafe98 100644 /* We can't use grub_fatal() in this function. This would create an infinite loop, since grub_fatal() calls grub_abort() which in turn calls grub_exit(). */ diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c -index d483e35..e71d158 100644 +index d483e35eed2..e71d1584164 100644 --- a/grub-core/kern/ieee1275/init.c +++ b/grub-core/kern/ieee1275/init.c @@ -71,7 +71,7 @@ grub_addr_t grub_ieee1275_original_stack; @@ -152,7 +152,7 @@ index d483e35..e71d158 100644 grub_ieee1275_exit (); } diff --git a/grub-core/kern/mips/arc/init.c b/grub-core/kern/mips/arc/init.c -index 3834a14..86b3a25 100644 +index 2ed3ff3191e..5c40c34078d 100644 --- a/grub-core/kern/mips/arc/init.c +++ b/grub-core/kern/mips/arc/init.c @@ -276,7 +276,7 @@ grub_halt (void) @@ -165,7 +165,7 @@ index 3834a14..86b3a25 100644 GRUB_ARC_FIRMWARE_VECTOR->exit (); diff --git a/grub-core/kern/mips/loongson/init.c b/grub-core/kern/mips/loongson/init.c -index 7b96531..dff598c 100644 +index 7b96531b983..dff598ca7b0 100644 --- a/grub-core/kern/mips/loongson/init.c +++ b/grub-core/kern/mips/loongson/init.c @@ -304,7 +304,7 @@ grub_halt (void) @@ -178,7 +178,7 @@ index 7b96531..dff598c 100644 grub_halt (); } diff --git a/grub-core/kern/mips/qemu_mips/init.c b/grub-core/kern/mips/qemu_mips/init.c -index be88b77..8b6c55f 100644 +index be88b77d22d..8b6c55ffc01 100644 --- a/grub-core/kern/mips/qemu_mips/init.c +++ b/grub-core/kern/mips/qemu_mips/init.c @@ -75,7 +75,7 @@ grub_machine_fini (int flags __attribute__ ((unused))) @@ -191,10 +191,10 @@ index be88b77..8b6c55f 100644 grub_halt (); } diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index 3b633d5..cd63a8c 100644 +index 3af336ee227..63b586d09cb 100644 --- a/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c -@@ -1095,9 +1095,18 @@ grub_abort (void) +@@ -1209,9 +1209,18 @@ grub_abort (void) grub_getkey (); } @@ -215,7 +215,7 @@ index 3b633d5..cd63a8c 100644 grub_fatal (const char *fmt, ...) { diff --git a/grub-core/kern/uboot/init.c b/grub-core/kern/uboot/init.c -index 3e33864..be2a5be 100644 +index 3e338645c57..be2a5be1d07 100644 --- a/grub-core/kern/uboot/init.c +++ b/grub-core/kern/uboot/init.c @@ -39,9 +39,9 @@ extern grub_size_t grub_total_module_size; @@ -240,7 +240,7 @@ index 3e33864..be2a5be 100644 else if (ver > API_SIG_VERSION) { diff --git a/grub-core/kern/xen/init.c b/grub-core/kern/xen/init.c -index 782ca72..708b060 100644 +index 782ca72952a..708b060f324 100644 --- a/grub-core/kern/xen/init.c +++ b/grub-core/kern/xen/init.c @@ -584,7 +584,7 @@ grub_machine_init (void) @@ -253,10 +253,10 @@ index 782ca72..708b060 100644 struct sched_shutdown arg; diff --git a/include/grub/misc.h b/include/grub/misc.h -index ee48eb7..f9135b6 100644 +index 7d2b5519690..fd18e6320b8 100644 --- a/include/grub/misc.h +++ b/include/grub/misc.h -@@ -334,7 +334,7 @@ int EXPORT_FUNC(grub_vsnprintf) (char *str, grub_size_t n, const char *fmt, +@@ -353,7 +353,7 @@ int EXPORT_FUNC(grub_vsnprintf) (char *str, grub_size_t n, const char *fmt, char *EXPORT_FUNC(grub_xasprintf) (const char *fmt, ...) __attribute__ ((format (GNU_PRINTF, 1, 2))) WARN_UNUSED_RESULT; char *EXPORT_FUNC(grub_xvasprintf) (const char *fmt, va_list args) WARN_UNUSED_RESULT; @@ -265,6 +265,3 @@ index ee48eb7..f9135b6 100644 grub_uint64_t EXPORT_FUNC(grub_divmod64) (grub_uint64_t n, grub_uint64_t d, grub_uint64_t *r); --- -1.8.3.1 - diff --git a/0018-Make-efi-machines-load-an-env-block-from-a-variable.patch b/0017-Make-efi-machines-load-an-env-block-from-a-variable.patch similarity index 68% rename from 0018-Make-efi-machines-load-an-env-block-from-a-variable.patch rename to 0017-Make-efi-machines-load-an-env-block-from-a-variable.patch index b99effd..d061461 100644 --- a/0018-Make-efi-machines-load-an-env-block-from-a-variable.patch +++ b/0017-Make-efi-machines-load-an-env-block-from-a-variable.patch @@ -1,35 +1,43 @@ -From 2c806ded764dd0e69dbc4e1b95a390bb65bbd019 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 7 Dec 2015 14:20:49 -0500 -Subject: [PATCH 018/220] Make efi machines load an env block from a variable +Subject: [PATCH] Make efi machines load an env block from a variable Signed-off-by: Peter Jones --- grub-core/Makefile.core.def | 1 + - grub-core/kern/efi/init.c | 34 +++++++++++++++++++++++++++++++++- - 2 files changed, 34 insertions(+), 1 deletion(-) + grub-core/kern/efi/init.c | 36 +++++++++++++++++++++++++++++++++++- + 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index eb1088f..41b5e16 100644 +index 45d3edaa4dc..c865a08b027 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def -@@ -203,6 +203,7 @@ kernel = { - efi = term/efi/console.c; - efi = kern/acpi.c; +@@ -207,6 +207,7 @@ kernel = { efi = kern/efi/acpi.c; + efi = kern/efi/sb.c; + efi = kern/lockdown.c; + efi = lib/envblk.c; i386_coreboot = kern/i386/pc/acpi.c; i386_multiboot = kern/i386/pc/acpi.c; i386_coreboot = kern/acpi.c; diff --git a/grub-core/kern/efi/init.c b/grub-core/kern/efi/init.c -index 3dfdf2d..71d2279 100644 +index 7facacf09c7..6d39bd3ad29 100644 --- a/grub-core/kern/efi/init.c +++ b/grub-core/kern/efi/init.c -@@ -25,9 +25,40 @@ +@@ -27,8 +27,11 @@ #include #include #include ++ + #include + +#include ++ + #ifdef GRUB_STACK_PROTECTOR + + static grub_efi_guid_t rng_protocol_guid = GRUB_EFI_RNG_PROTOCOL_GUID; +@@ -82,6 +85,36 @@ stack_protector_init (void) grub_addr_t grub_modbase; @@ -54,8 +62,8 @@ index 3dfdf2d..71d2279 100644 + struct grub_envblk envblk_s = { NULL, 0 }; + grub_envblk_t envblk = &envblk_s; + -+ envblk_s.buf = grub_efi_get_variable ("GRUB_ENV", &efi_grub_guid, -+ &envblk_s.size); ++ grub_efi_get_variable ("GRUB_ENV", &efi_grub_guid, &envblk_s.size, ++ (void **) &envblk_s.buf); + if (!envblk_s.buf || envblk_s.size < 1) + return; + @@ -66,7 +74,7 @@ index 3dfdf2d..71d2279 100644 void grub_efi_init (void) { -@@ -42,10 +73,11 @@ grub_efi_init (void) +@@ -108,10 +141,11 @@ grub_efi_init (void) efi_call_4 (grub_efi_system_table->boot_services->set_watchdog_timer, 0, 0, 0, NULL); @@ -79,6 +87,3 @@ index 3dfdf2d..71d2279 100644 char **device, char **path); --- -1.8.3.1 - diff --git a/0017-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch b/0017-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch deleted file mode 100644 index e67aa4b..0000000 --- a/0017-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 9851c77af2f615927719300b632f38d51d8f1d27 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Wed, 22 Jul 2015 11:21:01 -0400 -Subject: [PATCH 017/220] Mark po/exclude.pot as binary so git won't try to - diff nonprintables. - -Signed-off-by: Peter Jones ---- - .gitattributes | 1 + - 1 file changed, 1 insertion(+) - create mode 100644 .gitattributes - -diff --git a/.gitattributes b/.gitattributes -new file mode 100644 -index 0000000..33ffaa4 ---- /dev/null -+++ b/.gitattributes -@@ -0,0 +1 @@ -+po/exclude.pot binary --- -1.8.3.1 - diff --git a/0022-Migrate-PPC-from-Yaboot-to-Grub2.patch b/0018-Migrate-PPC-from-Yaboot-to-Grub2.patch similarity index 89% rename from 0022-Migrate-PPC-from-Yaboot-to-Grub2.patch rename to 0018-Migrate-PPC-from-Yaboot-to-Grub2.patch index 5465fb7..5cbe731 100644 --- a/0022-Migrate-PPC-from-Yaboot-to-Grub2.patch +++ b/0018-Migrate-PPC-from-Yaboot-to-Grub2.patch @@ -1,10 +1,13 @@ -From b29012d97aac59ab69aff7806cb012d6270706e2 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mark Hamzy Date: Wed, 28 Mar 2012 14:46:41 -0500 -Subject: [PATCH 022/220] Migrate PPC from Yaboot to Grub2 +Subject: [PATCH] Migrate PPC from Yaboot to Grub2 -Add configuration support for serial terminal consoles. This will set the -maximum screen size so that text is not overwritten. +Add configuration support for serial terminal consoles. This will set +the maximum screen size so that text is not overwritten. + +Signed-off-by: Mark Hamzy +Signed-off-by: Robbie Harwood --- Makefile.util.def | 7 +++ util/grub.d/20_ppc_terminfo.in | 114 +++++++++++++++++++++++++++++++++++++++++ @@ -12,26 +15,26 @@ maximum screen size so that text is not overwritten. create mode 100644 util/grub.d/20_ppc_terminfo.in diff --git a/Makefile.util.def b/Makefile.util.def -index 969d32f..8717774 100644 +index f8b356cc1fa..2c9b283a230 100644 --- a/Makefile.util.def +++ b/Makefile.util.def -@@ -497,6 +497,13 @@ script = { +@@ -508,6 +508,13 @@ script = { + condition = COND_HOST_LINUX; }; - script = { ++script = { + name = '20_ppc_terminfo'; + common = util/grub.d/20_ppc_terminfo.in; + installdir = grubconf; + condition = COND_HOST_LINUX; +}; + -+script = { + script = { name = '30_os-prober'; common = util/grub.d/30_os-prober.in; - installdir = grubconf; diff --git a/util/grub.d/20_ppc_terminfo.in b/util/grub.d/20_ppc_terminfo.in new file mode 100644 -index 0000000..10d6658 +index 00000000000..10d66586820 --- /dev/null +++ b/util/grub.d/20_ppc_terminfo.in @@ -0,0 +1,114 @@ @@ -149,6 +152,3 @@ index 0000000..10d6658 +cat << EOF + terminfo -g ${X}x${Y} ${TERMINAL} +EOF --- -1.8.3.1 - diff --git a/0023-Add-fw_path-variable-revised.patch b/0019-Add-fw_path-variable-revised.patch similarity index 83% rename from 0023-Add-fw_path-variable-revised.patch rename to 0019-Add-fw_path-variable-revised.patch index 2f1bb69..a8491e8 100644 --- a/0023-Add-fw_path-variable-revised.patch +++ b/0019-Add-fw_path-variable-revised.patch @@ -1,23 +1,26 @@ -From 0a416bfa1cb5647bcba96513edf4f6c8b68c79ba Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 19 Sep 2012 21:22:55 -0300 -Subject: [PATCH 023/220] Add fw_path variable (revised) +Subject: [PATCH] Add fw_path variable (revised) This patch makes grub look for its config file on efi where the app was found. It was originally written by Matthew Garrett, and adapted to fix the "No modules are loaded on grub2 network boot" issue: https://bugzilla.redhat.com/show_bug.cgi?id=857936 + +Signed-off-by: Paulo Flabiano Smorigo +Signed-off-by: Robbie Harwood --- grub-core/kern/main.c | 13 ++++++------- grub-core/normal/main.c | 25 ++++++++++++++++++++++++- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c -index 9cad0c4..8ab7794 100644 +index 73967e2f5b0..d1de9fa6873 100644 --- a/grub-core/kern/main.c +++ b/grub-core/kern/main.c -@@ -127,16 +127,15 @@ grub_set_prefix_and_root (void) +@@ -128,16 +128,15 @@ grub_set_prefix_and_root (void) grub_machine_get_bootlocation (&fwdevice, &fwpath); @@ -41,10 +44,10 @@ index 9cad0c4..8ab7794 100644 } diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index 222e239..394bfbe 100644 +index 70614de1565..62571e6dfcc 100644 --- a/grub-core/normal/main.c +++ b/grub-core/normal/main.c -@@ -338,7 +338,30 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)), +@@ -339,7 +339,30 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)), /* Guess the config filename. It is necessary to make CONFIG static, so that it won't get broken by longjmp. */ char *config; @@ -76,6 +79,3 @@ index 222e239..394bfbe 100644 prefix = grub_env_get ("prefix"); if (prefix) --- -1.8.3.1 - diff --git a/0019-DHCP-client-ID-and-UUID-options-added.patch b/0019-DHCP-client-ID-and-UUID-options-added.patch deleted file mode 100644 index 2d07496..0000000 --- a/0019-DHCP-client-ID-and-UUID-options-added.patch +++ /dev/null @@ -1,143 +0,0 @@ -From 93dd0d49c319a8611cfe346c21706d2390cbf854 Mon Sep 17 00:00:00 2001 -From: Paulo Flabiano Smorigo -Date: Mon, 8 Jul 2019 14:10:58 +0200 -Subject: [PATCH 019/220] DHCP client ID and UUID options added. - ---- - grub-core/net/bootp.c | 85 ++++++++++++++++++++++++++++++++++++++++++++++----- - include/grub/net.h | 2 ++ - 2 files changed, 79 insertions(+), 8 deletions(-) - -diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c -index 04cfbb0..0e6e41a 100644 ---- a/grub-core/net/bootp.c -+++ b/grub-core/net/bootp.c -@@ -95,6 +95,49 @@ enum - /* Max timeout when waiting for BOOTP/DHCP reply */ - #define GRUB_DHCP_MAX_PACKET_TIMEOUT 32 - -+static char * -+grub_env_write_readonly (struct grub_env_var *var __attribute__ ((unused)), -+ const char *val __attribute__ ((unused))) -+{ -+ return NULL; -+} -+ -+static void -+set_env_limn_ro (const char *intername, const char *suffix, -+ const char *value, grub_size_t len) -+{ -+ char *varname, *varvalue; -+ char *ptr; -+ varname = grub_xasprintf ("net_%s_%s", intername, suffix); -+ if (!varname) -+ return; -+ for (ptr = varname; *ptr; ptr++) -+ if (*ptr == ':') -+ *ptr = '_'; -+ varvalue = grub_malloc (len + 1); -+ if (!varvalue) -+ { -+ grub_free (varname); -+ return; -+ } -+ -+ grub_memcpy (varvalue, value, len); -+ varvalue[len] = 0; -+ grub_env_set (varname, varvalue); -+ grub_register_variable_hook (varname, 0, grub_env_write_readonly); -+ grub_env_export (varname); -+ grub_free (varname); -+ grub_free (varvalue); -+} -+ -+static char -+hexdigit (grub_uint8_t val) -+{ -+ if (val < 10) -+ return val + '0'; -+ return val + 'a' - 10; -+} -+ - static const void * - find_dhcp_option (const struct grub_net_bootp_packet *bp, grub_size_t size, - grub_uint8_t opt_code, grub_uint8_t *opt_len) -@@ -152,6 +195,9 @@ again: - if (i + taglength >= size) - return NULL; - -+ grub_dprintf("net", "DHCP option %u (0x%02x) found with length %u.\n", -+ tagtype, tagtype, taglength); -+ - /* FIXME RFC 3396 options concatentation */ - if (tagtype == opt_code) - { -@@ -354,6 +400,37 @@ grub_net_configure_by_dhcp_ack (const char *name, - } - grub_net_add_ipv4_local (inter, mask); - -+ opt = find_dhcp_option (bp, size, GRUB_NET_BOOTP_CLIENT_ID, &opt_len); -+ if (opt) -+ { -+ set_env_limn_ro (name, "clientid", (char *) opt, opt_len); -+ } -+ -+ opt = find_dhcp_option (bp, size, GRUB_NET_BOOTP_CLIENT_UUID, &opt_len); -+ if (opt && opt_len == 17) -+ { -+ /* The format is 9cfe245e-d0c8-bd45-a79f-54ea5fbd3d97 */ -+ -+ opt += 1; -+ opt_len -= 1; -+ -+ char *val = grub_malloc (2 * opt_len + 4 + 1); -+ int i = 0; -+ int j = 0; -+ for (i = 0; i < opt_len; i++) -+ { -+ val[2 * i + j] = hexdigit (opt[i] >> 4); -+ val[2 * i + 1 + j] = hexdigit (opt[i] & 0xf); -+ -+ if ((i == 3) || (i == 5) || (i == 7) || (i == 9)) -+ { -+ j++; -+ val[2 * i + 1+ j] = '-'; -+ } -+ } -+ set_env_limn_ro (name, "clientuuid", (char *) val, 2 * opt_len + 4); -+ } -+ - /* We do not implement dead gateway detection and the first entry SHOULD - be preferred one */ - opt = find_dhcp_option (bp, size, GRUB_NET_BOOTP_ROUTER, &opt_len); -@@ -631,14 +708,6 @@ grub_net_process_dhcp (struct grub_net_buff *nb, - } - } - --static char --hexdigit (grub_uint8_t val) --{ -- if (val < 10) -- return val + '0'; -- return val + 'a' - 10; --} -- - static grub_err_t - grub_cmd_dhcpopt (struct grub_command *cmd __attribute__ ((unused)), - int argc, char **args) -diff --git a/include/grub/net.h b/include/grub/net.h -index 4a9069a..556c54e 100644 ---- a/include/grub/net.h -+++ b/include/grub/net.h -@@ -462,6 +462,8 @@ enum - GRUB_NET_BOOTP_DOMAIN = 0x0f, - GRUB_NET_BOOTP_ROOT_PATH = 0x11, - GRUB_NET_BOOTP_EXTENSIONS_PATH = 0x12, -+ GRUB_NET_BOOTP_CLIENT_ID = 0x3d, -+ GRUB_NET_BOOTP_CLIENT_UUID = 0x61, - GRUB_NET_DHCP_REQUESTED_IP_ADDRESS = 50, - GRUB_NET_DHCP_OVERLOAD = 52, - GRUB_NET_DHCP_MESSAGE_TYPE = 53, --- -1.8.3.1 - diff --git a/0020-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch b/0020-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch deleted file mode 100644 index 4e436b9..0000000 --- a/0020-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 07241ef86e2d39264a89c5a3d789cb0cc9f41c81 Mon Sep 17 00:00:00 2001 -From: Prarit Bhargava -Date: Wed, 12 Mar 2014 10:58:16 -0400 -Subject: [PATCH 020/220] Fix bad test on GRUB_DISABLE_SUBMENU. - -The file /etc/grub.d/10_linux does - -if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then - -when it should do - -if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xtrue ]; then - -which results in submenus in /boot/grub2/grub.cfg when -GRUB_DISABLE_SUBMENU="yes". - -Resolves: rhbz#1063414 ---- - util/grub.d/10_linux.in | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 4532266..58defdb 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -261,7 +261,11 @@ while [ "x$list" != "x" ] ; do - fi - fi - -- if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then -+ if [ "x${GRUB_DISABLE_SUBMENU}" = "xyes" ] || [ "x${GRUB_DISABLE_SUBMENU}" = "xy" ]; then -+ GRUB_DISABLE_SUBMENU="true" -+ fi -+ -+ if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xtrue ]; then - linux_entry "${OS}" "${version}" simple \ - "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" - --- -1.8.3.1 - diff --git a/0024-Pass-x-hex-hex-straight-through-unmolested.patch b/0020-Pass-x-hex-hex-straight-through-unmolested.patch similarity index 83% rename from 0024-Pass-x-hex-hex-straight-through-unmolested.patch rename to 0020-Pass-x-hex-hex-straight-through-unmolested.patch index d080ca7..b81abb5 100644 --- a/0024-Pass-x-hex-hex-straight-through-unmolested.patch +++ b/0020-Pass-x-hex-hex-straight-through-unmolested.patch @@ -1,20 +1,22 @@ -From 98acf7f62203f6dda6e735743ce4e4f410d451e1 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 Oct 2012 13:24:37 -0400 -Subject: [PATCH 024/220] Pass "\x[[:hex:]][[:hex:]]" straight through - unmolested. +Subject: [PATCH] Pass "\x[[:hex:]][[:hex:]]" straight through unmolested. +Don't munge raw spaces when we're doing our cmdline escaping (#923374) + +Signed-off-by: Peter Jones --- grub-core/commands/wildcard.c | 16 +++++++++++++++- - grub-core/lib/cmdline.c | 34 ++++++++++++++++++++++++++++++++-- + grub-core/lib/cmdline.c | 25 +++++++++++++++++++++++-- grub-core/script/execute.c | 43 +++++++++++++++++++++++++++++++++++++------ - 3 files changed, 84 insertions(+), 9 deletions(-) + 3 files changed, 75 insertions(+), 9 deletions(-) diff --git a/grub-core/commands/wildcard.c b/grub-core/commands/wildcard.c -index 4a106ca..560d437 100644 +index cc3290311f0..8f67a4be7f0 100644 --- a/grub-core/commands/wildcard.c +++ b/grub-core/commands/wildcard.c -@@ -462,6 +462,12 @@ check_file (const char *dir, const char *basename) +@@ -488,6 +488,12 @@ check_file (const char *dir, const char *basename) return ctx.found; } @@ -27,7 +29,7 @@ index 4a106ca..560d437 100644 static void unescape (char *out, const char *in, const char *end) { -@@ -470,7 +476,15 @@ unescape (char *out, const char *in, const char *end) +@@ -496,7 +502,15 @@ unescape (char *out, const char *in, const char *end) for (optr = out, iptr = in; iptr < end;) { @@ -45,7 +47,7 @@ index 4a106ca..560d437 100644 *optr++ = iptr[1]; iptr += 2; diff --git a/grub-core/lib/cmdline.c b/grub-core/lib/cmdline.c -index ed0b149..e0fb0a9 100644 +index ed0b149dca5..8e2294d8ff6 100644 --- a/grub-core/lib/cmdline.c +++ b/grub-core/lib/cmdline.c @@ -20,6 +20,12 @@ @@ -76,21 +78,12 @@ index ed0b149..e0fb0a9 100644 size++; else if (*c == ' ') space = 1; -@@ -86,7 +98,25 @@ grub_create_loader_cmdline (int argc, char *argv[], char *buf, +@@ -86,7 +98,16 @@ grub_create_loader_cmdline (int argc, char *argv[], char *buf, while (*c) { - if (*c == '\\' || *c == '\'' || *c == '"') -+ if (*c == ' ') -+ { -+ *buf++ = '\\'; -+ *buf++ = 'x'; -+ *buf++ = '2'; -+ *buf++ = '0'; -+ c++; -+ continue; -+ } -+ else if (*c == '\\' && *(c+1) == 'x' && ++ if (*c == '\\' && *(c+1) == 'x' && + is_hex(*(c+2)) && is_hex(*(c+3))) + { + *buf++ = *c++; @@ -104,7 +97,7 @@ index ed0b149..e0fb0a9 100644 *buf++ = *c; diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c -index 0d05d6b..ba38b5e 100644 +index ad80399246a..0c6dd9c5201 100644 --- a/grub-core/script/execute.c +++ b/grub-core/script/execute.c @@ -56,6 +56,12 @@ static struct grub_script_scope *scope = 0; @@ -178,6 +171,3 @@ index 0d05d6b..ba38b5e 100644 break; case '$': if (escaped) --- -1.8.3.1 - diff --git a/0021-Add-support-for-UEFI-operating-systems-returned-by-o.patch b/0021-Add-support-for-UEFI-operating-systems-returned-by-o.patch deleted file mode 100644 index 5bc833a..0000000 --- a/0021-Add-support-for-UEFI-operating-systems-returned-by-o.patch +++ /dev/null @@ -1,50 +0,0 @@ -From bfa8c75e6921c3584538c7ecef354f7136133af3 Mon Sep 17 00:00:00 2001 -From: Matthew Garrett -Date: Wed, 12 Jun 2013 11:51:49 -0400 -Subject: [PATCH 021/220] Add support for UEFI operating systems returned by - os-prober - -os-prober returns UEFI operating systems in the form: - -path:long-name:name - -where path is the path under the EFI directory on the ESP. This is in -contrast to legacy OSes, where path is the device string. Handle this case. ---- - util/grub.d/30_os-prober.in | 21 ++++++++++++++++++--- - 1 file changed, 18 insertions(+), 3 deletions(-) - -diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in -index 515a68c..9b8f596 100644 ---- a/util/grub.d/30_os-prober.in -+++ b/util/grub.d/30_os-prober.in -@@ -328,8 +328,23 @@ EOF - EOF - ;; - *) -- # TRANSLATORS: %s is replaced by OS name. -- gettext_printf "%s is not yet supported by grub-mkconfig.\n" " ${LONGNAME}" >&2 -- ;; -+ case ${DEVICE} in -+ *.efi) -+ cat << EOF -+menuentry '$(echo "${LONGNAME}" | grub_quote)' { -+EOF -+ save_default_entry | grub_add_tab -+ cat << EOF -+ chainloader /EFI/${DEVICE} -+ boot -+} -+EOF -+ ;; -+ *) -+ echo -n " " -+ # TRANSLATORS: %s is replaced by OS name. -+ gettext_printf "%s is not yet supported by grub-mkconfig.\n" "${LONGNAME}" >&2 -+ ;; -+ esac - esac - done --- -1.8.3.1 - diff --git a/0027-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch b/0021-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch similarity index 90% rename from 0027-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch rename to 0021-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch index 450dab8..da65e18 100644 --- a/0027-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch +++ b/0021-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch @@ -1,8 +1,8 @@ -From 6f68e870cac4b87ef7caf2bd305de9ffa1907791 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 22 Jan 2013 06:31:38 +0100 -Subject: [PATCH 027/220] blscfg: add blscfg module to parse Boot Loader - Specification snippets +Subject: [PATCH] blscfg: add blscfg module to parse Boot Loader Specification + snippets The BootLoaderSpec (BLS) defines a scheme where different bootloaders can share a format for boot items and a configuration directory that accepts @@ -14,27 +14,28 @@ Signed-off-by: Javier Martinez Canillas Signed-off-by: Will Thompson --- grub-core/Makefile.core.def | 11 + - grub-core/commands/blscfg.c | 1096 ++++++++++++++++++++++++++++++++++++++++ + grub-core/commands/blscfg.c | 1177 ++++++++++++++++++++++++++++++++++++++++ grub-core/commands/legacycfg.c | 5 +- grub-core/commands/loadenv.c | 77 +-- - grub-core/commands/loadenv.h | 93 ++++ grub-core/commands/menuentry.c | 20 +- grub-core/normal/main.c | 6 + + grub-core/commands/loadenv.h | 93 ++++ include/grub/compiler.h | 2 + include/grub/menu.h | 13 + include/grub/normal.h | 2 +- - 10 files changed, 1243 insertions(+), 82 deletions(-) + 10 files changed, 1324 insertions(+), 82 deletions(-) create mode 100644 grub-core/commands/blscfg.c create mode 100644 grub-core/commands/loadenv.h diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 41b5e16..57e253a 100644 +index c865a08b027..c15e91943b9 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def -@@ -812,6 +812,16 @@ module = { +@@ -814,6 +814,16 @@ module = { + common = commands/blocklist.c; }; - module = { ++module = { + name = blscfg; + common = commands/blscfg.c; + common = commands/loadenv.h; @@ -44,11 +45,10 @@ index 41b5e16..57e253a 100644 + enable = emu; +}; + -+module = { + module = { name = boot; common = commands/boot.c; - i386_pc = lib/i386/pc/biosnum.c; -@@ -988,6 +998,7 @@ module = { +@@ -980,6 +990,7 @@ module = { module = { name = loadenv; common = commands/loadenv.c; @@ -58,10 +58,10 @@ index 41b5e16..57e253a 100644 diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c new file mode 100644 -index 0000000..54458b1 +index 00000000000..e907a6a5d28 --- /dev/null +++ b/grub-core/commands/blscfg.c -@@ -0,0 +1,1096 @@ +@@ -0,0 +1,1177 @@ +/*-*- Mode: C; c-basic-offset: 2; indent-tabs-mode: t -*-*/ + +/* bls.c - implementation of the boot loader spec */ @@ -227,8 +227,8 @@ index 0000000..54458b1 + + /* loop through each version segment of str1 and str2 and compare them */ + while (*one || *two) { -+ while (*one && !grub_isalnum(*one) && *one != '~') one++; -+ while (*two && !grub_isalnum(*two) && *two != '~') two++; ++ while (*one && !grub_isalnum(*one) && *one != '~' && *one != '+') one++; ++ while (*two && !grub_isalnum(*two) && *two != '~' && *two != '+') two++; + + /* handle the tilde separator, it sorts before everything else */ + if (*one == '~' || *two == '~') { @@ -239,6 +239,21 @@ index 0000000..54458b1 + continue; + } + ++ /* ++ * Handle plus separator. Concept is the same as tilde, ++ * except that if one of the strings ends (base version), ++ * the other is considered as higher version. ++ */ ++ if (*one == '+' || *two == '+') { ++ if (!*one) return -1; ++ if (!*two) return 1; ++ if (*one != '+') goto_return (1); ++ if (*two != '+') goto_return (-1); ++ one++; ++ two++; ++ continue; ++ } ++ + /* If we ran to the end of either, we are finished with the loop */ + if (!(*one && *two)) break; + @@ -649,43 +664,52 @@ index 0000000..54458b1 + list[nlist] = NULL; + } + ++ if (!nlist) ++ { ++ grub_free (list); ++ return NULL; ++ } ++ + if (num) + *num = nlist; + + return list; +} + -+static char *field_append(bool is_var, char *buffer, char *start, char *end) ++static char *field_append(bool is_var, char *buffer, const char *start, const char *end) +{ -+ char *temp = grub_strndup(start, end - start + 1); -+ const char *field = temp; ++ char *tmp = grub_strndup(start, end - start + 1); ++ const char *field = tmp; ++ int term = is_var ? 2 : 1; + + if (is_var) { -+ field = grub_env_get (temp); ++ field = grub_env_get (tmp); + if (!field) + return buffer; + } + -+ if (!buffer) { -+ buffer = grub_strdup(field); -+ if (!buffer) -+ return NULL; -+ } else { -+ buffer = grub_realloc (buffer, grub_strlen(buffer) + grub_strlen(field)); -+ if (!buffer) -+ return NULL; ++ if (!buffer) ++ buffer = grub_zalloc (grub_strlen(field) + term); ++ else ++ buffer = grub_realloc (buffer, grub_strlen(buffer) + grub_strlen(field) + term); + -+ grub_stpcpy (buffer + grub_strlen(buffer), field); -+ } ++ if (!buffer) ++ return NULL; ++ ++ tmp = buffer + grub_strlen(buffer); ++ tmp = grub_stpcpy (tmp, field); ++ ++ if (is_var) ++ tmp = grub_stpcpy (tmp, " "); + + return buffer; +} + -+static char *expand_val(char *value) ++static char *expand_val(const char *value) +{ + char *buffer = NULL; -+ char *start = value; -+ char *end = value; ++ const char *start = value; ++ const char *end = value; + bool is_var = false; + + if (!value) @@ -706,6 +730,8 @@ index 0000000..54458b1 + buffer = field_append(is_var, buffer, start, end); + is_var = false; + start = value; ++ if (*start == ' ') ++ start++; + } + } + @@ -762,6 +788,8 @@ index 0000000..54458b1 + const char *early_initrd = NULL; + char **early_initrds = NULL; + char *initrd_prefix = NULL; ++ char *devicetree = NULL; ++ char *dt = NULL; + char *id = entry->filename; + char *dotconf = id; + char *hotkey = NULL; @@ -773,6 +801,7 @@ index 0000000..54458b1 + + char *src = NULL; + int i, index; ++ bool add_dt_prefix = false; + + grub_dprintf("blscfg", "%s got here\n", __func__); + clinux = bls_get_val (entry, "linux", NULL); @@ -800,6 +829,14 @@ index 0000000..54458b1 + + initrds = bls_make_list (entry, "initrd", NULL); + ++ devicetree = expand_val (bls_get_val (entry, "devicetree", NULL)); ++ ++ if (!devicetree) ++ { ++ devicetree = expand_val (grub_env_get("devicetree")); ++ add_dt_prefix = true; ++ } ++ + hotkey = bls_get_val (entry, "grub_hotkey", NULL); + users = expand_val (bls_get_val (entry, "grub_users", NULL)); + classes = bls_make_list (entry, "grub_class", NULL); @@ -865,7 +902,6 @@ index 0000000..54458b1 + goto finish; + } + -+ + tmp = grub_stpcpy(initrd, "initrd"); + for (i = 0; early_initrds != NULL && early_initrds[i] != NULL; i++) + { @@ -885,21 +921,68 @@ index 0000000..54458b1 + tmp = grub_stpcpy (tmp, "\n"); + } + -+ src = grub_xasprintf ("load_video\n" ++ if (devicetree) ++ { ++ char *prefix = NULL; ++ int dt_size; ++ ++ if (add_dt_prefix) ++ { ++ prefix = grub_strrchr (clinux, '/'); ++ prefix = grub_strndup(clinux, prefix - clinux + 1); ++ if (!prefix) ++ { ++ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); ++ goto finish; ++ } ++ } ++ ++ dt_size = sizeof("devicetree " GRUB_BOOT_DEVICE) + grub_strlen(devicetree) + 1; ++ ++ if (add_dt_prefix) ++ { ++ dt_size += grub_strlen(prefix); ++ } ++ ++ dt = grub_malloc (dt_size); ++ if (!dt) ++ { ++ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); ++ goto finish; ++ } ++ char *tmp = dt; ++ tmp = grub_stpcpy (dt, "devicetree"); ++ tmp = grub_stpcpy (tmp, " " GRUB_BOOT_DEVICE); ++ if (add_dt_prefix) ++ tmp = grub_stpcpy (tmp, prefix); ++ tmp = grub_stpcpy (tmp, devicetree); ++ tmp = grub_stpcpy (tmp, "\n"); ++ ++ grub_free(prefix); ++ } ++ ++ grub_dprintf ("blscfg2", "devicetree %s for id:\"%s\"\n", dt, id); ++ ++ const char *sdval = grub_env_get("save_default"); ++ bool savedefault = ((NULL != sdval) && (grub_strcmp(sdval, "true") == 0)); ++ src = grub_xasprintf ("%sload_video\n" + "set gfxpayload=keep\n" + "insmod gzio\n" + "linux %s%s%s%s\n" -+ "%s", ++ "%s%s", ++ savedefault ? "savedefault\n" : "", + GRUB_BOOT_DEVICE, clinux, options ? " " : "", options ? options : "", -+ initrd ? initrd : ""); ++ initrd ? initrd : "", dt ? dt : ""); + + grub_normal_add_menu_entry (argc, argv, classes, id, users, hotkey, NULL, src, 0, &index, entry); + grub_dprintf ("blscfg", "Added entry %d id:\"%s\"\n", index, id); + +finish: ++ grub_free (dt); + grub_free (initrd); + grub_free (initrd_prefix); + grub_free (early_initrds); ++ grub_free (devicetree); + grub_free (initrds); + grub_free (options); + grub_free (classes); @@ -1009,14 +1092,12 @@ index 0000000..54458b1 + if (!devid) { +#ifdef GRUB_MACHINE_EMU + devid = "host"; -+#elif defined(GRUB_MACHINE_EFI) -+ devid = grub_env_get ("root"); +#else -+ devid = grub_env_get ("boot"); ++ devid = grub_env_get ("root"); +#endif + if (!devid) + return grub_error (GRUB_ERR_FILE_NOT_FOUND, -+ N_("variable `%s' isn't set"), "boot"); ++ N_("variable `%s' isn't set"), "root"); + } + + grub_dprintf ("blscfg", "opening %s\n", devid); @@ -1159,10 +1240,10 @@ index 0000000..54458b1 + grub_unregister_extcmd (oldcmd); +} diff --git a/grub-core/commands/legacycfg.c b/grub-core/commands/legacycfg.c -index db7a8f0..891eac5 100644 +index cc5971f4dbd..782761c31aa 100644 --- a/grub-core/commands/legacycfg.c +++ b/grub-core/commands/legacycfg.c -@@ -133,7 +133,7 @@ legacy_file (const char *filename) +@@ -143,7 +143,7 @@ legacy_file (const char *filename) args[0] = oldname; grub_normal_add_menu_entry (1, args, NULL, NULL, "legacy", NULL, NULL, @@ -1171,7 +1252,7 @@ index db7a8f0..891eac5 100644 grub_free (args); entrysrc[0] = 0; grub_free (oldname); -@@ -186,7 +186,8 @@ legacy_file (const char *filename) +@@ -205,7 +205,8 @@ legacy_file (const char *filename) } args[0] = entryname; grub_normal_add_menu_entry (1, args, NULL, NULL, NULL, @@ -1182,7 +1263,7 @@ index db7a8f0..891eac5 100644 } diff --git a/grub-core/commands/loadenv.c b/grub-core/commands/loadenv.c -index 3fd664a..163b9a0 100644 +index 3fd664aac33..163b9a09042 100644 --- a/grub-core/commands/loadenv.c +++ b/grub-core/commands/loadenv.c @@ -28,6 +28,8 @@ @@ -1276,9 +1357,105 @@ index 3fd664a..163b9a0 100644 static grub_err_t grub_cmd_load_env (grub_extcmd_context_t ctxt, int argc, char **args) { +diff --git a/grub-core/commands/menuentry.c b/grub-core/commands/menuentry.c +index 720e6d8ea3b..b194123eb67 100644 +--- a/grub-core/commands/menuentry.c ++++ b/grub-core/commands/menuentry.c +@@ -78,7 +78,7 @@ grub_normal_add_menu_entry (int argc, const char **args, + char **classes, const char *id, + const char *users, const char *hotkey, + const char *prefix, const char *sourcecode, +- int submenu) ++ int submenu, int *index, struct bls_entry *bls) + { + int menu_hotkey = 0; + char **menu_args = NULL; +@@ -149,9 +149,12 @@ grub_normal_add_menu_entry (int argc, const char **args, + if (! menu_title) + goto fail; + ++ grub_dprintf ("menu", "id:\"%s\"\n", id); ++ grub_dprintf ("menu", "title:\"%s\"\n", menu_title); + menu_id = grub_strdup (id ? : menu_title); + if (! menu_id) + goto fail; ++ grub_dprintf ("menu", "menu_id:\"%s\"\n", menu_id); + + /* Save argc, args to pass as parameters to block arg later. */ + menu_args = grub_calloc (argc + 1, sizeof (char *)); +@@ -170,8 +173,12 @@ grub_normal_add_menu_entry (int argc, const char **args, + } + + /* Add the menu entry at the end of the list. */ ++ int ind=0; + while (*last) +- last = &(*last)->next; ++ { ++ ind++; ++ last = &(*last)->next; ++ } + + *last = grub_zalloc (sizeof (**last)); + if (! *last) +@@ -188,8 +195,11 @@ grub_normal_add_menu_entry (int argc, const char **args, + (*last)->args = menu_args; + (*last)->sourcecode = menu_sourcecode; + (*last)->submenu = submenu; ++ (*last)->bls = bls; + + menu->size++; ++ if (index) ++ *index = ind; + return GRUB_ERR_NONE; + + fail: +@@ -286,7 +296,8 @@ grub_cmd_menuentry (grub_extcmd_context_t ctxt, int argc, char **args) + users, + ctxt->state[2].arg, 0, + ctxt->state[3].arg, +- ctxt->extcmd->cmd->name[0] == 's'); ++ ctxt->extcmd->cmd->name[0] == 's', ++ NULL, NULL); + + src = args[argc - 1]; + args[argc - 1] = NULL; +@@ -303,7 +314,8 @@ grub_cmd_menuentry (grub_extcmd_context_t ctxt, int argc, char **args) + ctxt->state[0].args, ctxt->state[4].arg, + users, + ctxt->state[2].arg, prefix, src + 1, +- ctxt->extcmd->cmd->name[0] == 's'); ++ ctxt->extcmd->cmd->name[0] == 's', NULL, ++ NULL); + + src[len - 1] = ch; + args[argc - 1] = src; +diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c +index 62571e6dfcc..7ca2e5400b1 100644 +--- a/grub-core/normal/main.c ++++ b/grub-core/normal/main.c +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -70,6 +71,11 @@ grub_normal_free_menu (grub_menu_t menu) + grub_free (entry->args); + } + ++ if (entry->bls) ++ { ++ entry->bls->visible = 0; ++ } ++ + grub_free ((void *) entry->id); + grub_free ((void *) entry->users); + grub_free ((void *) entry->title); diff --git a/grub-core/commands/loadenv.h b/grub-core/commands/loadenv.h new file mode 100644 -index 0000000..952f461 +index 00000000000..952f46121bd --- /dev/null +++ b/grub-core/commands/loadenv.h @@ -0,0 +1,93 @@ @@ -1375,115 +1552,19 @@ index 0000000..952f461 + + return 0; +} -diff --git a/grub-core/commands/menuentry.c b/grub-core/commands/menuentry.c -index 2c5363d..9faf2be 100644 ---- a/grub-core/commands/menuentry.c -+++ b/grub-core/commands/menuentry.c -@@ -78,7 +78,7 @@ grub_normal_add_menu_entry (int argc, const char **args, - char **classes, const char *id, - const char *users, const char *hotkey, - const char *prefix, const char *sourcecode, -- int submenu) -+ int submenu, int *index, struct bls_entry *bls) - { - int menu_hotkey = 0; - char **menu_args = NULL; -@@ -149,9 +149,12 @@ grub_normal_add_menu_entry (int argc, const char **args, - if (! menu_title) - goto fail; - -+ grub_dprintf ("menu", "id:\"%s\"\n", id); -+ grub_dprintf ("menu", "title:\"%s\"\n", menu_title); - menu_id = grub_strdup (id ? : menu_title); - if (! menu_id) - goto fail; -+ grub_dprintf ("menu", "menu_id:\"%s\"\n", menu_id); - - /* Save argc, args to pass as parameters to block arg later. */ - menu_args = grub_malloc (sizeof (char*) * (argc + 1)); -@@ -170,8 +173,12 @@ grub_normal_add_menu_entry (int argc, const char **args, - } - - /* Add the menu entry at the end of the list. */ -+ int ind=0; - while (*last) -- last = &(*last)->next; -+ { -+ ind++; -+ last = &(*last)->next; -+ } - - *last = grub_zalloc (sizeof (**last)); - if (! *last) -@@ -188,8 +195,11 @@ grub_normal_add_menu_entry (int argc, const char **args, - (*last)->args = menu_args; - (*last)->sourcecode = menu_sourcecode; - (*last)->submenu = submenu; -+ (*last)->bls = bls; - - menu->size++; -+ if (index) -+ *index = ind; - return GRUB_ERR_NONE; - - fail: -@@ -286,7 +296,8 @@ grub_cmd_menuentry (grub_extcmd_context_t ctxt, int argc, char **args) - users, - ctxt->state[2].arg, 0, - ctxt->state[3].arg, -- ctxt->extcmd->cmd->name[0] == 's'); -+ ctxt->extcmd->cmd->name[0] == 's', -+ NULL, NULL); - - src = args[argc - 1]; - args[argc - 1] = NULL; -@@ -303,7 +314,8 @@ grub_cmd_menuentry (grub_extcmd_context_t ctxt, int argc, char **args) - ctxt->state[0].args, ctxt->state[4].arg, - users, - ctxt->state[2].arg, prefix, src + 1, -- ctxt->extcmd->cmd->name[0] == 's'); -+ ctxt->extcmd->cmd->name[0] == 's', NULL, -+ NULL); - - src[len - 1] = ch; - args[argc - 1] = src; -diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index 9ef9848..a326b19 100644 ---- a/grub-core/normal/main.c -+++ b/grub-core/normal/main.c -@@ -20,6 +20,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -70,6 +71,11 @@ grub_normal_free_menu (grub_menu_t menu) - grub_free (entry->args); - } - -+ if (entry->bls) -+ { -+ entry->bls->visible = 0; -+ } -+ - grub_free ((void *) entry->id); - grub_free ((void *) entry->users); - grub_free ((void *) entry->title); diff --git a/include/grub/compiler.h b/include/grub/compiler.h -index c9e1d7a..9859ff4 100644 +index 8f3be3ae706..ebafec68957 100644 --- a/include/grub/compiler.h +++ b/include/grub/compiler.h -@@ -48,4 +48,6 @@ - # define WARN_UNUSED_RESULT +@@ -56,4 +56,6 @@ + # define CLANG_PREREQ(maj,min) 0 #endif +#define UNUSED __attribute__((__unused__)) + #endif /* ! GRUB_COMPILER_HEADER */ diff --git a/include/grub/menu.h b/include/grub/menu.h -index ee2b5e9..0acdc2a 100644 +index ee2b5e91045..0acdc2aa6bf 100644 --- a/include/grub/menu.h +++ b/include/grub/menu.h @@ -20,6 +20,16 @@ @@ -1514,7 +1595,7 @@ index ee2b5e9..0acdc2a 100644 typedef struct grub_menu_entry *grub_menu_entry_t; diff --git a/include/grub/normal.h b/include/grub/normal.h -index 218cbab..8839ad8 100644 +index 218cbabccaf..8839ad85a19 100644 --- a/include/grub/normal.h +++ b/include/grub/normal.h @@ -145,7 +145,7 @@ grub_normal_add_menu_entry (int argc, const char **args, char **classes, @@ -1526,6 +1607,3 @@ index 218cbab..8839ad8 100644 grub_err_t grub_normal_set_password (const char *user, const char *password); --- -1.8.3.1 - diff --git a/0028-Add-devicetree-loading.patch b/0022-Add-devicetree-loading.patch similarity index 84% rename from 0028-Add-devicetree-loading.patch rename to 0022-Add-devicetree-loading.patch index f60d16e..c0728a9 100644 --- a/0028-Add-devicetree-loading.patch +++ b/0022-Add-devicetree-loading.patch @@ -1,7 +1,7 @@ -From 5c649924a8e4d233f922c21408eeeaac5b30bc73 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 13:12:23 -0500 -Subject: [PATCH 028/220] Add devicetree loading +Subject: [PATCH] Add devicetree loading Signed-off-by: Peter Jones @@ -20,10 +20,10 @@ Signed-off-by: David A. Marlin 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 9ecbcfb..c645351 100644 +index d3e879b8e5c..8ea2315ebc2 100644 --- a/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in -@@ -254,7 +254,8 @@ export GRUB_DEFAULT \ +@@ -248,7 +248,8 @@ export GRUB_DEFAULT \ GRUB_ENABLE_CRYPTODISK \ GRUB_BADRAM \ GRUB_OS_PROBER_SKIP_LIST \ @@ -34,23 +34,23 @@ index 9ecbcfb..c645351 100644 if test "x${grub_cfg}" != "x"; then rm -f "${grub_cfg}.new" diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 58defdb..dd31284 100644 +index e8b01c0d0c7..dc75a1c30bf 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in -@@ -155,6 +155,13 @@ EOF +@@ -153,6 +153,13 @@ EOF + sed "s/^/$submenu_indentation/" << EOF + echo '$(echo "$message" | grub_quote)' initrd $(echo $initrd_path) - EOF - fi ++EOF ++ fi + if test -n "${fdt}" ; then + message="$(gettext_printf "Loading fdt ...")" + sed "s/^/$submenu_indentation/" << EOF + echo '$(echo "$message" | grub_quote)' + devicetree ${rel_dirname}/${fdt} -+EOF -+ fi - sed "s/^/$submenu_indentation/" << EOF - } EOF + fi + sed "s/^/$submenu_indentation/" << EOF @@ -236,6 +243,14 @@ while [ "x$list" != "x" ] ; do gettext_printf "Found initrd image: %s\n" "$(echo $initrd_display)" >&2 fi @@ -66,6 +66,3 @@ index 58defdb..dd31284 100644 config= for i in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do if test -e "${i}" ; then --- -1.8.3.1 - diff --git a/0038-Enable-pager-by-default.-985860.patch b/0023-Enable-pager-by-default.-985860.patch similarity index 78% rename from 0038-Enable-pager-by-default.-985860.patch rename to 0023-Enable-pager-by-default.-985860.patch index f9031b2..d92fbcc 100644 --- a/0038-Enable-pager-by-default.-985860.patch +++ b/0023-Enable-pager-by-default.-985860.patch @@ -1,7 +1,7 @@ -From 29aa9344700bc787778391d6176c2b3b220838e6 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:09:27 -0400 -Subject: [PATCH 038/220] Enable pager by default. (#985860) +Subject: [PATCH] Enable pager by default. (#985860) Signed-off-by: Peter Jones --- @@ -9,7 +9,7 @@ Signed-off-by: Peter Jones 1 file changed, 2 insertions(+) diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in -index 93a9023..858b526 100644 +index 93a90233ead..858b526c925 100644 --- a/util/grub.d/00_header.in +++ b/util/grub.d/00_header.in @@ -43,6 +43,8 @@ if [ "x${GRUB_DEFAULT_BUTTON}" = "xsaved" ] ; then GRUB_DEFAULT_BUTTON='${saved_ @@ -21,6 +21,3 @@ index 93a9023..858b526 100644 if [ -s \$prefix/grubenv ]; then load_env fi --- -1.8.3.1 - diff --git a/0040-Don-t-say-GNU-Linux-in-generated-menus.patch b/0024-Don-t-say-GNU-Linux-in-generated-menus.patch similarity index 86% rename from 0040-Don-t-say-GNU-Linux-in-generated-menus.patch rename to 0024-Don-t-say-GNU-Linux-in-generated-menus.patch index b859339..f288095 100644 --- a/0040-Don-t-say-GNU-Linux-in-generated-menus.patch +++ b/0024-Don-t-say-GNU-Linux-in-generated-menus.patch @@ -1,7 +1,7 @@ -From b2d841ee307560bbc0a3c4fe4a5516fb8e00dd65 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 14 Mar 2011 14:27:42 -0400 -Subject: [PATCH 040/220] Don't say "GNU/Linux" in generated menus. +Subject: [PATCH] Don't say "GNU/Linux" in generated menus. --- util/grub.d/10_linux.in | 4 ++-- @@ -9,7 +9,7 @@ Subject: [PATCH 040/220] Don't say "GNU/Linux" in generated menus. 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index ceb413f..2b402d8 100644 +index dc75a1c30bf..4a499c53a61 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -29,9 +29,9 @@ export TEXTDOMAINDIR="@localedir@" @@ -25,7 +25,7 @@ index ceb413f..2b402d8 100644 fi diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index 96179ea..47e0d3f 100644 +index 3b1f4704921..ada20775a14 100644 --- a/util/grub.d/20_linux_xen.in +++ b/util/grub.d/20_linux_xen.in @@ -29,9 +29,9 @@ export TEXTDOMAINDIR="@localedir@" @@ -40,6 +40,3 @@ index 96179ea..47e0d3f 100644 CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}" fi --- -1.8.3.1 - diff --git a/0043-Add-.eh_frame-to-list-of-relocations-stripped.patch b/0025-Add-.eh_frame-to-list-of-relocations-stripped.patch similarity index 84% rename from 0043-Add-.eh_frame-to-list-of-relocations-stripped.patch rename to 0025-Add-.eh_frame-to-list-of-relocations-stripped.patch index 8b83ed5..ed48c5c 100644 --- a/0043-Add-.eh_frame-to-list-of-relocations-stripped.patch +++ b/0025-Add-.eh_frame-to-list-of-relocations-stripped.patch @@ -1,14 +1,14 @@ -From dcfc32257387a45d41600d52f2393fee402b7271 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 13 Jan 2014 21:50:59 -0500 -Subject: [PATCH 043/220] Add .eh_frame to list of relocations stripped +Subject: [PATCH] Add .eh_frame to list of relocations stripped --- conf/Makefile.common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/Makefile.common b/conf/Makefile.common -index 6cd71cb..4ba729e 100644 +index 2a1a886f6d5..191b1a70c6b 100644 --- a/conf/Makefile.common +++ b/conf/Makefile.common @@ -38,7 +38,7 @@ CFLAGS_KERNEL = $(CFLAGS_PLATFORM) -ffreestanding @@ -20,6 +20,3 @@ index 6cd71cb..4ba729e 100644 CFLAGS_MODULE = $(CFLAGS_PLATFORM) -ffreestanding LDFLAGS_MODULE = $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) -Wl,-r,-d --- -1.8.3.1 - diff --git a/0025-Add-X-option-to-printf-functions.patch b/0025-Add-X-option-to-printf-functions.patch deleted file mode 100644 index 30b51f1..0000000 --- a/0025-Add-X-option-to-printf-functions.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 29e1ec69b76c2e5d95cf339e60461f22cb0aeed6 Mon Sep 17 00:00:00 2001 -From: Paulo Flabiano Smorigo -Date: Tue, 27 Nov 2012 16:58:39 -0200 -Subject: [PATCH 025/220] Add %X option to printf functions. - ---- - grub-core/kern/misc.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index cd63a8c..2656a67 100644 ---- a/grub-core/kern/misc.c -+++ b/grub-core/kern/misc.c -@@ -588,7 +588,7 @@ grub_divmod64 (grub_uint64_t n, grub_uint64_t d, grub_uint64_t *r) - static inline char * - grub_lltoa (char *str, int c, unsigned long long n) - { -- unsigned base = (c == 'x') ? 16 : 10; -+ unsigned base = ((c == 'x') || (c == 'X')) ? 16 : 10; - char *p; - - if ((long long) n < 0 && c == 'd') -@@ -603,7 +603,7 @@ grub_lltoa (char *str, int c, unsigned long long n) - do - { - unsigned d = (unsigned) (n & 0xf); -- *p++ = (d > 9) ? d + 'a' - 10 : d + '0'; -+ *p++ = (d > 9) ? d + ((c == 'x') ? 'a' : 'A') - 10 : d + '0'; - } - while (n >>= 4); - else -@@ -676,6 +676,7 @@ parse_printf_args (const char *fmt0, struct printf_args *args, - { - case 'p': - case 'x': -+ case 'X': - case 'u': - case 'd': - case 'c': -@@ -762,6 +763,7 @@ parse_printf_args (const char *fmt0, struct printf_args *args, - switch (c) - { - case 'x': -+ case 'X': - case 'u': - args->ptr[curn].type = UNSIGNED_INT + longfmt; - break; -@@ -900,6 +902,7 @@ grub_vsnprintf_real (char *str, grub_size_t max_len, const char *fmt0, - c = 'x'; - /* Fall through. */ - case 'x': -+ case 'X': - case 'u': - case 'd': - { --- -1.8.3.1 - diff --git a/0045-Don-t-require-a-password-to-boot-entries-generated-b.patch b/0026-Don-t-require-a-password-to-boot-entries-generated-b.patch similarity index 80% rename from 0045-Don-t-require-a-password-to-boot-entries-generated-b.patch rename to 0026-Don-t-require-a-password-to-boot-entries-generated-b.patch index 85e461b..ac9475e 100644 --- a/0045-Don-t-require-a-password-to-boot-entries-generated-b.patch +++ b/0026-Don-t-require-a-password-to-boot-entries-generated-b.patch @@ -1,7 +1,7 @@ -From 226cdd8a7722f5e1a60f21c5a2aea74f458d612d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 11 Feb 2014 11:14:50 -0500 -Subject: [PATCH 045/220] Don't require a password to boot entries generated by +Subject: [PATCH] Don't require a password to boot entries generated by grub-mkconfig. When we set a password, we just want that to mean you can't /edit/ an entry. @@ -14,7 +14,7 @@ Signed-off-by: Peter Jones 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 2b402d8..d35b0f4 100644 +index 4a499c53a61..cf8d1186981 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -26,7 +26,7 @@ datarootdir="@datarootdir@" @@ -26,6 +26,3 @@ index 2b402d8..d35b0f4 100644 if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then OS="$(sed 's, release .*$,,g' /etc/system-release)" --- -1.8.3.1 - diff --git a/0026-Search-for-specific-config-file-for-netboot.patch b/0026-Search-for-specific-config-file-for-netboot.patch deleted file mode 100644 index 98263fb..0000000 --- a/0026-Search-for-specific-config-file-for-netboot.patch +++ /dev/null @@ -1,203 +0,0 @@ -From 0b390eb5dbd310c6c1a92e001b35981c90f27565 Mon Sep 17 00:00:00 2001 -From: Paulo Flabiano Smorigo -Date: Tue, 27 Nov 2012 17:22:07 -0200 -Subject: [PATCH 026/220] Search for specific config file for netboot - -This patch implements a search for a specific configuration when the config -file is on a remoteserver. It uses the following order: - 1) DHCP client UUID option. - 2) MAC address (in lower case hexadecimal with dash separators); - 3) IP (in upper case hexadecimal) or IPv6; - 4) The original grub.cfg file. - -This procedure is similar to what is used by pxelinux and yaboot: -http://www.syslinux.org/wiki/index.php/PXELINUX#config - -This should close the bugzilla: -https://bugzilla.redhat.com/show_bug.cgi?id=873406 ---- - grub-core/net/net.c | 118 ++++++++++++++++++++++++++++++++++++++++++++++++ - grub-core/normal/main.c | 18 ++++++-- - include/grub/net.h | 3 ++ - 3 files changed, 135 insertions(+), 4 deletions(-) - -diff --git a/grub-core/net/net.c b/grub-core/net/net.c -index d5d726a..0645456 100644 ---- a/grub-core/net/net.c -+++ b/grub-core/net/net.c -@@ -1735,6 +1735,124 @@ grub_net_restore_hw (void) - return GRUB_ERR_NONE; - } - -+grub_err_t -+grub_net_search_configfile (char *config) -+{ -+ grub_size_t config_len; -+ char *suffix; -+ -+ auto int search_through (grub_size_t num_tries, grub_size_t slice_size); -+ int search_through (grub_size_t num_tries, grub_size_t slice_size) -+ { -+ while (num_tries-- > 0) -+ { -+ grub_dprintf ("net", "probe %s\n", config); -+ -+ grub_file_t file; -+ file = grub_file_open (config, GRUB_FILE_TYPE_CONFIG); -+ -+ if (file) -+ { -+ grub_file_close (file); -+ grub_dprintf ("net", "found!\n"); -+ return 0; -+ } -+ else -+ { -+ if (grub_errno == GRUB_ERR_IO) -+ grub_errno = GRUB_ERR_NONE; -+ } -+ -+ if (grub_strlen (suffix) < slice_size) -+ break; -+ -+ config[grub_strlen (config) - slice_size] = '\0'; -+ } -+ -+ return 1; -+ } -+ -+ config_len = grub_strlen (config); -+ config[config_len] = '-'; -+ suffix = config + config_len + 1; -+ -+ struct grub_net_network_level_interface *inf; -+ FOR_NET_NETWORK_LEVEL_INTERFACES (inf) -+ { -+ /* By the Client UUID. */ -+ -+ char client_uuid_var[sizeof ("net_") + grub_strlen (inf->name) + -+ sizeof ("_clientuuid") + 1]; -+ grub_snprintf (client_uuid_var, sizeof (client_uuid_var), -+ "net_%s_clientuuid", inf->name); -+ -+ const char *client_uuid; -+ client_uuid = grub_env_get (client_uuid_var); -+ -+ if (client_uuid) -+ { -+ grub_strcpy (suffix, client_uuid); -+ if (search_through (1, 0) == 0) return GRUB_ERR_NONE; -+ } -+ -+ /* By the MAC address. */ -+ -+ /* Add ethernet type */ -+ grub_strcpy (suffix, "01-"); -+ -+ grub_net_hwaddr_to_str (&inf->hwaddress, suffix + 3); -+ -+ char *ptr; -+ for (ptr = suffix; *ptr; ptr++) -+ if (*ptr == ':') -+ *ptr = '-'; -+ -+ if (search_through (1, 0) == 0) return GRUB_ERR_NONE; -+ -+ /* By IP address */ -+ -+ switch ((&inf->address)->type) -+ { -+ case GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV4: -+ { -+ grub_uint32_t n = grub_be_to_cpu32 ((&inf->address)->ipv4); -+ grub_snprintf (suffix, GRUB_NET_MAX_STR_ADDR_LEN, "%02X%02X%02X%02X", \ -+ ((n >> 24) & 0xff), ((n >> 16) & 0xff), \ -+ ((n >> 8) & 0xff), ((n >> 0) & 0xff)); -+ -+ if (search_through (8, 1) == 0) return GRUB_ERR_NONE; -+ break; -+ } -+ case GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6: -+ { -+ char buf[GRUB_NET_MAX_STR_ADDR_LEN]; -+ struct grub_net_network_level_address base; -+ base.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; -+ grub_memcpy (&base.ipv6, ((&inf->address)->ipv6), 16); -+ grub_net_addr_to_str (&base, buf); -+ -+ for (ptr = buf; *ptr; ptr++) -+ if (*ptr == ':') -+ *ptr = '-'; -+ -+ grub_snprintf (suffix, GRUB_NET_MAX_STR_ADDR_LEN, "%s", buf); -+ if (search_through (1, 0) == 0) return GRUB_ERR_NONE; -+ break; -+ } -+ case GRUB_NET_NETWORK_LEVEL_PROTOCOL_DHCP_RECV: -+ return grub_error (GRUB_ERR_BUG, "shouldn't reach here"); -+ default: -+ return grub_error (GRUB_ERR_BUG, -+ "unsupported address type %d", (&inf->address)->type); -+ } -+ } -+ -+ /* Remove the remaining minus sign at the end. */ -+ config[config_len] = '\0'; -+ -+ return GRUB_ERR_NONE; -+} -+ - static struct grub_preboot *fini_hnd; - - static grub_command_t cmd_addaddr, cmd_deladdr, cmd_addroute, cmd_delroute; -diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index 394bfbe..9ef9848 100644 ---- a/grub-core/normal/main.c -+++ b/grub-core/normal/main.c -@@ -33,6 +33,7 @@ - #include - #include - #include -+#include - #ifdef GRUB_MACHINE_IEEE1275 - #include - #endif -@@ -365,10 +366,19 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)), - - prefix = grub_env_get ("prefix"); - if (prefix) -- { -- config = grub_xasprintf ("%s/grub.cfg", prefix); -- if (! config) -- goto quit; -+ { -+ grub_size_t config_len; -+ config_len = grub_strlen (prefix) + -+ sizeof ("/grub.cfg-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"); -+ config = grub_malloc (config_len); -+ -+ if (! config) -+ goto quit; -+ -+ grub_snprintf (config, config_len, "%s/grub.cfg", prefix); -+ -+ if (grub_strncmp (prefix + 1, "tftp", sizeof ("tftp") - 1) == 0) -+ grub_net_search_configfile (config); - - grub_enter_normal_mode (config); - grub_free (config); -diff --git a/include/grub/net.h b/include/grub/net.h -index 556c54e..ff6d347 100644 ---- a/include/grub/net.h -+++ b/include/grub/net.h -@@ -578,4 +578,7 @@ extern char *grub_net_default_server; - - #define VLANTAG_IDENTIFIER 0x8100 - -+grub_err_t -+grub_net_search_configfile (char *config); -+ - #endif /* ! GRUB_NET_HEADER */ --- -1.8.3.1 - diff --git a/0047-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch b/0027-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch similarity index 95% rename from 0047-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch rename to 0027-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch index 774428b..daa6fae 100644 --- a/0047-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch +++ b/0027-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch @@ -1,12 +1,12 @@ -From 4e27eb84b310a600b89481245735a7b053f2250c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 4 Mar 2014 11:00:23 -0500 -Subject: [PATCH 047/220] Replace a lot of man pages with slightly nicer ones. +Subject: [PATCH] Replace a lot of man pages with slightly nicer ones. Replace a bunch of machine generated ones with ones that look nicer. --- - conf/Makefile.extra-dist | 1 - configure.ac | 23 ++++++ + conf/Makefile.extra-dist | 1 - docs/Makefile.am | 2 - docs/man/grub-bios-setup.h2m | 6 -- docs/man/grub-editenv.h2m | 5 -- @@ -44,7 +44,7 @@ Replace a bunch of machine generated ones with ones that look nicer. util/grub-file.1 | 165 ++++++++++++++++++++++++++++++++++++++ util/grub-fstest.1 | 99 +++++++++++++++++++++++ util/grub-glue-efi.1 | 31 +++++++ - util/grub-install.8 | 129 +++++++++++++++++++++++++++++ + util/grub-install.8 | 128 +++++++++++++++++++++++++++++ util/grub-kbdcomp.1 | 19 +++++ util/grub-macbless.1 | 22 +++++ util/grub-menulst2cfg.1 | 12 +++ @@ -64,7 +64,7 @@ Replace a bunch of machine generated ones with ones that look nicer. util/grub-script-check.1 | 21 +++++ util/grub-set-default.8 | 21 +++++ util/grub-sparc64-setup.8 | 12 +++ - 59 files changed, 1319 insertions(+), 147 deletions(-) + 59 files changed, 1318 insertions(+), 147 deletions(-) delete mode 100644 docs/man/grub-bios-setup.h2m delete mode 100644 docs/man/grub-editenv.h2m delete mode 100644 docs/man/grub-emu.h2m @@ -121,23 +121,11 @@ Replace a bunch of machine generated ones with ones that look nicer. create mode 100644 util/grub-set-default.8 create mode 100644 util/grub-sparc64-setup.8 -diff --git a/conf/Makefile.extra-dist b/conf/Makefile.extra-dist -index 46c4e95..58d7d95 100644 ---- a/conf/Makefile.extra-dist -+++ b/conf/Makefile.extra-dist -@@ -11,7 +11,6 @@ EXTRA_DIST += unicode - EXTRA_DIST += util/import_gcry.py - EXTRA_DIST += util/import_unicode.py - --EXTRA_DIST += docs/man - EXTRA_DIST += docs/autoiso.cfg - EXTRA_DIST += docs/grub.cfg - EXTRA_DIST += docs/osdetect.cfg diff --git a/configure.ac b/configure.ac -index d283af6..8df400e 100644 +index 8331f95b645..bec8535af70 100644 --- a/configure.ac +++ b/configure.ac -@@ -74,6 +74,29 @@ grub_TRANSFORM([grub-set-default]) +@@ -77,6 +77,29 @@ grub_TRANSFORM([grub-set-default]) grub_TRANSFORM([grub-sparc64-setup]) grub_TRANSFORM([grub-render-label]) grub_TRANSFORM([grub-file]) @@ -167,8 +155,20 @@ index d283af6..8df400e 100644 # Optimization flag. Allow user to override. if test "x$TARGET_CFLAGS" = x; then +diff --git a/conf/Makefile.extra-dist b/conf/Makefile.extra-dist +index 8f1485d52a5..b909f2c073a 100644 +--- a/conf/Makefile.extra-dist ++++ b/conf/Makefile.extra-dist +@@ -11,7 +11,6 @@ EXTRA_DIST += unicode + EXTRA_DIST += util/import_gcry.py + EXTRA_DIST += util/import_unicode.py + +-EXTRA_DIST += docs/man + EXTRA_DIST += docs/autoiso.cfg + EXTRA_DIST += docs/grub.cfg + EXTRA_DIST += docs/osdetect.cfg diff --git a/docs/Makefile.am b/docs/Makefile.am -index 93eb396..ab28f19 100644 +index 93eb3962765..ab28f199694 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -5,5 +5,3 @@ info_TEXINFOS = grub.texi grub-dev.texi @@ -179,7 +179,7 @@ index 93eb396..ab28f19 100644 - diff --git a/docs/man/grub-bios-setup.h2m b/docs/man/grub-bios-setup.h2m deleted file mode 100644 -index ac6ede3..0000000 +index ac6ede36296..00000000000 --- a/docs/man/grub-bios-setup.h2m +++ /dev/null @@ -1,6 +0,0 @@ @@ -191,7 +191,7 @@ index ac6ede3..0000000 -.BR grub-mkrescue (1) diff --git a/docs/man/grub-editenv.h2m b/docs/man/grub-editenv.h2m deleted file mode 100644 -index 3859d3d..0000000 +index 3859d3d4c4f..00000000000 --- a/docs/man/grub-editenv.h2m +++ /dev/null @@ -1,5 +0,0 @@ @@ -202,7 +202,7 @@ index 3859d3d..0000000 -.BR grub-set-default (8) diff --git a/docs/man/grub-emu.h2m b/docs/man/grub-emu.h2m deleted file mode 100644 -index ef1c000..0000000 +index ef1c000656a..00000000000 --- a/docs/man/grub-emu.h2m +++ /dev/null @@ -1,6 +0,0 @@ @@ -214,7 +214,7 @@ index ef1c000..0000000 -rather than this program. diff --git a/docs/man/grub-file.h2m b/docs/man/grub-file.h2m deleted file mode 100644 -index e09bb4d..0000000 +index e09bb4d3101..00000000000 --- a/docs/man/grub-file.h2m +++ /dev/null @@ -1,2 +0,0 @@ @@ -222,7 +222,7 @@ index e09bb4d..0000000 -grub-file \- check file type diff --git a/docs/man/grub-fstest.h2m b/docs/man/grub-fstest.h2m deleted file mode 100644 -index 9676b15..0000000 +index 9676b159afd..00000000000 --- a/docs/man/grub-fstest.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -232,7 +232,7 @@ index 9676b15..0000000 -.BR grub-probe (8) diff --git a/docs/man/grub-glue-efi.h2m b/docs/man/grub-glue-efi.h2m deleted file mode 100644 -index c1c6ded..0000000 +index c1c6ded49ff..00000000000 --- a/docs/man/grub-glue-efi.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -242,7 +242,7 @@ index c1c6ded..0000000 -grub-glue-efi processes ia32 and amd64 EFI images and glues them according to Apple format. diff --git a/docs/man/grub-install.h2m b/docs/man/grub-install.h2m deleted file mode 100644 -index 8cbbc87..0000000 +index 8cbbc87a0f2..00000000000 --- a/docs/man/grub-install.h2m +++ /dev/null @@ -1,6 +0,0 @@ @@ -254,7 +254,7 @@ index 8cbbc87..0000000 -.BR grub-mkrescue (1) diff --git a/docs/man/grub-kbdcomp.h2m b/docs/man/grub-kbdcomp.h2m deleted file mode 100644 -index d81f915..0000000 +index d81f9157e01..00000000000 --- a/docs/man/grub-kbdcomp.h2m +++ /dev/null @@ -1,10 +0,0 @@ @@ -270,7 +270,7 @@ index d81f915..0000000 -.BR grub-mklayout (8) diff --git a/docs/man/grub-macbless.h2m b/docs/man/grub-macbless.h2m deleted file mode 100644 -index 0197c00..0000000 +index 0197c0087d7..00000000000 --- a/docs/man/grub-macbless.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -280,7 +280,7 @@ index 0197c00..0000000 -.BR grub-install (1) diff --git a/docs/man/grub-macho2img.h2m b/docs/man/grub-macho2img.h2m deleted file mode 100644 -index d79aaee..0000000 +index d79aaeed8f9..00000000000 --- a/docs/man/grub-macho2img.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -290,7 +290,7 @@ index d79aaee..0000000 -.BR grub-mkimage (1) diff --git a/docs/man/grub-menulst2cfg.h2m b/docs/man/grub-menulst2cfg.h2m deleted file mode 100644 -index c2e0055..0000000 +index c2e0055ed7e..00000000000 --- a/docs/man/grub-menulst2cfg.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -300,7 +300,7 @@ index c2e0055..0000000 -.BR grub-mkconfig (8) diff --git a/docs/man/grub-mkconfig.h2m b/docs/man/grub-mkconfig.h2m deleted file mode 100644 -index 9b42f81..0000000 +index 9b42f813010..00000000000 --- a/docs/man/grub-mkconfig.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -310,7 +310,7 @@ index 9b42f81..0000000 -.BR grub-install (8) diff --git a/docs/man/grub-mkfont.h2m b/docs/man/grub-mkfont.h2m deleted file mode 100644 -index d46fe60..0000000 +index d46fe600eca..00000000000 --- a/docs/man/grub-mkfont.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -320,7 +320,7 @@ index d46fe60..0000000 -.BR grub-mkconfig (8) diff --git a/docs/man/grub-mkimage.h2m b/docs/man/grub-mkimage.h2m deleted file mode 100644 -index f0fbc2b..0000000 +index f0fbc2bb197..00000000000 --- a/docs/man/grub-mkimage.h2m +++ /dev/null @@ -1,6 +0,0 @@ @@ -332,7 +332,7 @@ index f0fbc2b..0000000 -.BR grub-mknetdir (8) diff --git a/docs/man/grub-mklayout.h2m b/docs/man/grub-mklayout.h2m deleted file mode 100644 -index 1e43409..0000000 +index 1e43409c0ab..00000000000 --- a/docs/man/grub-mklayout.h2m +++ /dev/null @@ -1,10 +0,0 @@ @@ -348,7 +348,7 @@ index 1e43409..0000000 -.BR grub-mkconfig (8) diff --git a/docs/man/grub-mknetdir.h2m b/docs/man/grub-mknetdir.h2m deleted file mode 100644 -index a2ef13e..0000000 +index a2ef13ec111..00000000000 --- a/docs/man/grub-mknetdir.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -358,7 +358,7 @@ index a2ef13e..0000000 -.BR grub-mkimage (1) diff --git a/docs/man/grub-mkpasswd-pbkdf2.h2m b/docs/man/grub-mkpasswd-pbkdf2.h2m deleted file mode 100644 -index 4d202f3..0000000 +index 4d202f3da7e..00000000000 --- a/docs/man/grub-mkpasswd-pbkdf2.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -368,7 +368,7 @@ index 4d202f3..0000000 -.BR grub-mkconfig (8) diff --git a/docs/man/grub-mkrelpath.h2m b/docs/man/grub-mkrelpath.h2m deleted file mode 100644 -index d01f396..0000000 +index d01f3961e3f..00000000000 --- a/docs/man/grub-mkrelpath.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -378,7 +378,7 @@ index d01f396..0000000 -.BR grub-probe (8) diff --git a/docs/man/grub-mkrescue.h2m b/docs/man/grub-mkrescue.h2m deleted file mode 100644 -index a427f02..0000000 +index a427f02e3c6..00000000000 --- a/docs/man/grub-mkrescue.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -388,7 +388,7 @@ index a427f02..0000000 -.BR grub-mkimage (1) diff --git a/docs/man/grub-mkstandalone.h2m b/docs/man/grub-mkstandalone.h2m deleted file mode 100644 -index c773139..0000000 +index c77313978ad..00000000000 --- a/docs/man/grub-mkstandalone.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -398,7 +398,7 @@ index c773139..0000000 -.BR grub-mkimage (1) diff --git a/docs/man/grub-mount.h2m b/docs/man/grub-mount.h2m deleted file mode 100644 -index 8d16898..0000000 +index 8d168982d72..00000000000 --- a/docs/man/grub-mount.h2m +++ /dev/null @@ -1,2 +0,0 @@ @@ -406,7 +406,7 @@ index 8d16898..0000000 -grub-mount \- export GRUB filesystem with FUSE diff --git a/docs/man/grub-ofpathname.h2m b/docs/man/grub-ofpathname.h2m deleted file mode 100644 -index 74b43ee..0000000 +index 74b43eea039..00000000000 --- a/docs/man/grub-ofpathname.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -416,7 +416,7 @@ index 74b43ee..0000000 -.BR grub-probe (8) diff --git a/docs/man/grub-pe2elf.h2m b/docs/man/grub-pe2elf.h2m deleted file mode 100644 -index 7ca29bd..0000000 +index 7ca29bd703c..00000000000 --- a/docs/man/grub-pe2elf.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -426,7 +426,7 @@ index 7ca29bd..0000000 -.BR grub-mkimage (1) diff --git a/docs/man/grub-probe.h2m b/docs/man/grub-probe.h2m deleted file mode 100644 -index 6e1ffdc..0000000 +index 6e1ffdcf937..00000000000 --- a/docs/man/grub-probe.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -436,7 +436,7 @@ index 6e1ffdc..0000000 -.BR grub-fstest (1) diff --git a/docs/man/grub-reboot.h2m b/docs/man/grub-reboot.h2m deleted file mode 100644 -index e4acace..0000000 +index e4acace65ce..00000000000 --- a/docs/man/grub-reboot.h2m +++ /dev/null @@ -1,5 +0,0 @@ @@ -447,7 +447,7 @@ index e4acace..0000000 -.BR grub-editenv (1) diff --git a/docs/man/grub-render-label.h2m b/docs/man/grub-render-label.h2m deleted file mode 100644 -index 50ae524..0000000 +index 50ae5247c05..00000000000 --- a/docs/man/grub-render-label.h2m +++ /dev/null @@ -1,3 +0,0 @@ @@ -456,7 +456,7 @@ index 50ae524..0000000 - diff --git a/docs/man/grub-script-check.h2m b/docs/man/grub-script-check.h2m deleted file mode 100644 -index 3653682..0000000 +index 3653682671a..00000000000 --- a/docs/man/grub-script-check.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -466,7 +466,7 @@ index 3653682..0000000 -.BR grub-mkconfig (8) diff --git a/docs/man/grub-set-default.h2m b/docs/man/grub-set-default.h2m deleted file mode 100644 -index 7945001..0000000 +index 7945001c154..00000000000 --- a/docs/man/grub-set-default.h2m +++ /dev/null @@ -1,5 +0,0 @@ @@ -477,7 +477,7 @@ index 7945001..0000000 -.BR grub-editenv (1) diff --git a/docs/man/grub-sparc64-setup.h2m b/docs/man/grub-sparc64-setup.h2m deleted file mode 100644 -index 18f803a..0000000 +index 18f803a50db..00000000000 --- a/docs/man/grub-sparc64-setup.h2m +++ /dev/null @@ -1,6 +0,0 @@ @@ -489,7 +489,7 @@ index 18f803a..0000000 -.BR grub-mkrescue (1) diff --git a/docs/man/grub-syslinux2cfg.h2m b/docs/man/grub-syslinux2cfg.h2m deleted file mode 100644 -index ad25c8a..0000000 +index ad25c8ab753..00000000000 --- a/docs/man/grub-syslinux2cfg.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -498,7 +498,7 @@ index ad25c8a..0000000 -[SEE ALSO] -.BR grub-menulst2cfg (8) diff --git a/gentpl.py b/gentpl.py -index 387588c..f05812e 100644 +index c86550d4f9e..2cba0bbbd6f 100644 --- a/gentpl.py +++ b/gentpl.py @@ -805,10 +805,7 @@ def manpage(defn, adddeps): @@ -515,7 +515,7 @@ index 387588c..f05812e 100644 diff --git a/util/grub-bios-setup.8 b/util/grub-bios-setup.8 new file mode 100644 -index 0000000..56f582b +index 00000000000..56f582b3d75 --- /dev/null +++ b/util/grub-bios-setup.8 @@ -0,0 +1,54 @@ @@ -575,7 +575,7 @@ index 0000000..56f582b +.BR "info grub" diff --git a/util/grub-editenv.1 b/util/grub-editenv.1 new file mode 100644 -index 0000000..d28ba03 +index 00000000000..d28ba03ba42 --- /dev/null +++ b/util/grub-editenv.1 @@ -0,0 +1,46 @@ @@ -627,7 +627,7 @@ index 0000000..d28ba03 +.BR "info grub" diff --git a/util/grub-file.1 b/util/grub-file.1 new file mode 100644 -index 0000000..b29cb32 +index 00000000000..b29cb327889 --- /dev/null +++ b/util/grub-file.1 @@ -0,0 +1,165 @@ @@ -798,7 +798,7 @@ index 0000000..b29cb32 +.BR "info grub" diff --git a/util/grub-fstest.1 b/util/grub-fstest.1 new file mode 100644 -index 0000000..792fa78 +index 00000000000..792fa78634c --- /dev/null +++ b/util/grub-fstest.1 @@ -0,0 +1,99 @@ @@ -903,7 +903,7 @@ index 0000000..792fa78 +.BR "info grub" diff --git a/util/grub-glue-efi.1 b/util/grub-glue-efi.1 new file mode 100644 -index 0000000..72bd555 +index 00000000000..72bd555d577 --- /dev/null +++ b/util/grub-glue-efi.1 @@ -0,0 +1,31 @@ @@ -940,10 +940,10 @@ index 0000000..72bd555 +.BR "info grub" diff --git a/util/grub-install.8 b/util/grub-install.8 new file mode 100644 -index 0000000..76272a3 +index 00000000000..1db89e94b3b --- /dev/null +++ b/util/grub-install.8 -@@ -0,0 +1,129 @@ +@@ -0,0 +1,128 @@ +.TH GRUB-INSTALL 1 "Wed Feb 26 2014" +.SH NAME +\fBgrub-install\fR \(em Install GRUB on a device. @@ -1060,12 +1060,11 @@ index 0000000..76272a3 + +.TP +\fB--bootloader-id\fR=\fIID\fR -+Use \fIID\fR as the bootloader ID. This opption is only available on the EFI target platform. ++Use \fIID\fR as the bootloader ID. This option is only available on the EFI target platform. + +.TP +\fB--efi-directory\fR=\fIDIR\fR -+Use \fIDIR\fR as the EFI System Partition root. This opption is only available on the EFI ta -+rget platform. ++Use \fIDIR\fR as the EFI System Partition root. This option is only available on the EFI target platform. + +.TP +\fIINSTALL_DEVICE\fR @@ -1075,7 +1074,7 @@ index 0000000..76272a3 +.BR "info grub" diff --git a/util/grub-kbdcomp.1 b/util/grub-kbdcomp.1 new file mode 100644 -index 0000000..0bb969a +index 00000000000..0bb969a5b43 --- /dev/null +++ b/util/grub-kbdcomp.1 @@ -0,0 +1,19 @@ @@ -1100,7 +1099,7 @@ index 0000000..0bb969a +.BR "info grub" diff --git a/util/grub-macbless.1 b/util/grub-macbless.1 new file mode 100644 -index 0000000..41a9618 +index 00000000000..41a96186f70 --- /dev/null +++ b/util/grub-macbless.1 @@ -0,0 +1,22 @@ @@ -1128,7 +1127,7 @@ index 0000000..41a9618 +.BR "info grub" diff --git a/util/grub-menulst2cfg.1 b/util/grub-menulst2cfg.1 new file mode 100644 -index 0000000..91e2ef8 +index 00000000000..91e2ef87113 --- /dev/null +++ b/util/grub-menulst2cfg.1 @@ -0,0 +1,12 @@ @@ -1146,7 +1145,7 @@ index 0000000..91e2ef8 +.BR "info grub" diff --git a/util/grub-mkconfig.8 b/util/grub-mkconfig.8 new file mode 100644 -index 0000000..a2d1f57 +index 00000000000..a2d1f577b9b --- /dev/null +++ b/util/grub-mkconfig.8 @@ -0,0 +1,17 @@ @@ -1169,7 +1168,7 @@ index 0000000..a2d1f57 +.BR "info grub" diff --git a/util/grub-mkfont.1 b/util/grub-mkfont.1 new file mode 100644 -index 0000000..3494857 +index 00000000000..3494857987d --- /dev/null +++ b/util/grub-mkfont.1 @@ -0,0 +1,87 @@ @@ -1262,7 +1261,7 @@ index 0000000..3494857 +.BR "info grub" diff --git a/util/grub-mkimage.1 b/util/grub-mkimage.1 new file mode 100644 -index 0000000..4dea4f5 +index 00000000000..4dea4f54597 --- /dev/null +++ b/util/grub-mkimage.1 @@ -0,0 +1,95 @@ @@ -1363,7 +1362,7 @@ index 0000000..4dea4f5 +.BR "info grub" diff --git a/util/grub-mklayout.1 b/util/grub-mklayout.1 new file mode 100644 -index 0000000..d1bbc2e +index 00000000000..d1bbc2ec515 --- /dev/null +++ b/util/grub-mklayout.1 @@ -0,0 +1,27 @@ @@ -1396,7 +1395,7 @@ index 0000000..d1bbc2e +.BR "info grub" diff --git a/util/grub-mknetdir.1 b/util/grub-mknetdir.1 new file mode 100644 -index 0000000..fa7e8d4 +index 00000000000..fa7e8d4ef0d --- /dev/null +++ b/util/grub-mknetdir.1 @@ -0,0 +1,12 @@ @@ -1414,7 +1413,7 @@ index 0000000..fa7e8d4 +.BR "info grub" diff --git a/util/grub-mkpasswd-pbkdf2.1 b/util/grub-mkpasswd-pbkdf2.1 new file mode 100644 -index 0000000..73c437c +index 00000000000..73c437c15d8 --- /dev/null +++ b/util/grub-mkpasswd-pbkdf2.1 @@ -0,0 +1,27 @@ @@ -1447,7 +1446,7 @@ index 0000000..73c437c +.BR "info grub" diff --git a/util/grub-mkrelpath.1 b/util/grub-mkrelpath.1 new file mode 100644 -index 0000000..85f1113 +index 00000000000..85f1113621d --- /dev/null +++ b/util/grub-mkrelpath.1 @@ -0,0 +1,12 @@ @@ -1465,7 +1464,7 @@ index 0000000..85f1113 +.BR "info grub" diff --git a/util/grub-mkrescue.1 b/util/grub-mkrescue.1 new file mode 100644 -index 0000000..4ed9fc7 +index 00000000000..4ed9fc723fd --- /dev/null +++ b/util/grub-mkrescue.1 @@ -0,0 +1,123 @@ @@ -1594,7 +1593,7 @@ index 0000000..4ed9fc7 +.BR "info grub" diff --git a/util/grub-mkstandalone.1 b/util/grub-mkstandalone.1 new file mode 100644 -index 0000000..ba2d2bd +index 00000000000..ba2d2bdf279 --- /dev/null +++ b/util/grub-mkstandalone.1 @@ -0,0 +1,100 @@ @@ -1700,7 +1699,7 @@ index 0000000..ba2d2bd +.BR "info grub" diff --git a/util/grub-ofpathname.8 b/util/grub-ofpathname.8 new file mode 100644 -index 0000000..bf3743a +index 00000000000..bf3743aeba1 --- /dev/null +++ b/util/grub-ofpathname.8 @@ -0,0 +1,12 @@ @@ -1718,7 +1717,7 @@ index 0000000..bf3743a +.BR "info grub" diff --git a/util/grub-probe.8 b/util/grub-probe.8 new file mode 100644 -index 0000000..04e26c8 +index 00000000000..04e26c832bb --- /dev/null +++ b/util/grub-probe.8 @@ -0,0 +1,80 @@ @@ -1804,7 +1803,7 @@ index 0000000..04e26c8 +.BR "info grub" diff --git a/util/grub-reboot.8 b/util/grub-reboot.8 new file mode 100644 -index 0000000..faa5e4e +index 00000000000..faa5e4eece2 --- /dev/null +++ b/util/grub-reboot.8 @@ -0,0 +1,21 @@ @@ -1831,7 +1830,7 @@ index 0000000..faa5e4e +.BR "info grub" diff --git a/util/grub-render-label.1 b/util/grub-render-label.1 new file mode 100644 -index 0000000..4d51c8a +index 00000000000..4d51c8abf01 --- /dev/null +++ b/util/grub-render-label.1 @@ -0,0 +1,51 @@ @@ -1888,7 +1887,7 @@ index 0000000..4d51c8a +.BR "info grub" diff --git a/util/grub-script-check.1 b/util/grub-script-check.1 new file mode 100644 -index 0000000..0f1f625 +index 00000000000..0f1f625b05d --- /dev/null +++ b/util/grub-script-check.1 @@ -0,0 +1,21 @@ @@ -1915,7 +1914,7 @@ index 0000000..0f1f625 +.BR "info grub" diff --git a/util/grub-set-default.8 b/util/grub-set-default.8 new file mode 100644 -index 0000000..a96265a +index 00000000000..a96265a1509 --- /dev/null +++ b/util/grub-set-default.8 @@ -0,0 +1,21 @@ @@ -1942,7 +1941,7 @@ index 0000000..a96265a +.BR "info grub" diff --git a/util/grub-sparc64-setup.8 b/util/grub-sparc64-setup.8 new file mode 100644 -index 0000000..37ea2dd +index 00000000000..37ea2dd5eaa --- /dev/null +++ b/util/grub-sparc64-setup.8 @@ -0,0 +1,12 @@ @@ -1958,6 +1957,3 @@ index 0000000..37ea2dd + +.SH SEE ALSO +.BR "info grub" --- -1.8.3.1 - diff --git a/0048-use-fw_path-prefix-when-fallback-searching-for-grub-.patch b/0028-use-fw_path-prefix-when-fallback-searching-for-grub-.patch similarity index 80% rename from 0048-use-fw_path-prefix-when-fallback-searching-for-grub-.patch rename to 0028-use-fw_path-prefix-when-fallback-searching-for-grub-.patch index 5928cfb..6b1580b 100644 --- a/0048-use-fw_path-prefix-when-fallback-searching-for-grub-.patch +++ b/0028-use-fw_path-prefix-when-fallback-searching-for-grub-.patch @@ -1,8 +1,7 @@ -From 612e9b3820efe48896ba9faf320e4f042d053dc2 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 19 Feb 2014 15:58:43 -0500 -Subject: [PATCH 048/220] use fw_path prefix when fallback searching for grub - config +Subject: [PATCH] use fw_path prefix when fallback searching for grub config When PXE booting via UEFI firmware, grub was searching for grub.cfg in the fw_path directory where the grub application was found. If @@ -18,10 +17,10 @@ Signed-off-by: Mark Salter 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index 7f61c5b..8add30e 100644 +index 7ca2e5400b1..02577502116 100644 --- a/grub-core/normal/main.c +++ b/grub-core/normal/main.c -@@ -349,7 +349,7 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)), +@@ -347,7 +347,7 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)), char *config; const char *prefix, *fw_path; @@ -30,7 +29,7 @@ index 7f61c5b..8add30e 100644 if (fw_path) { config = grub_xasprintf ("%s/grub.cfg", fw_path); -@@ -372,7 +372,8 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)), +@@ -370,7 +370,8 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)), } } @@ -40,6 +39,3 @@ index 7f61c5b..8add30e 100644 if (prefix) { grub_size_t config_len; --- -1.8.3.1 - diff --git a/0029-Don-t-write-messages-to-the-screen.patch b/0029-Don-t-write-messages-to-the-screen.patch deleted file mode 100644 index 61673d8..0000000 --- a/0029-Don-t-write-messages-to-the-screen.patch +++ /dev/null @@ -1,179 +0,0 @@ -From 88cba3a10617ef55989762a4195599a399dca957 Mon Sep 17 00:00:00 2001 -From: William Jon McCann -Date: Wed, 15 May 2013 13:30:20 -0400 -Subject: [PATCH 029/220] Don't write messages to the screen - -Writing messages to the screen before the menus or boot splash -happens so quickly it looks like something is wrong and isn't -very appealing. ---- - grub-core/boot/i386/pc/boot.S | 3 --- - grub-core/boot/i386/pc/diskboot.S | 5 ----- - grub-core/gettext/gettext.c | 25 +++++-------------------- - grub-core/kern/main.c | 5 ----- - util/grub.d/10_linux.in | 7 ------- - 5 files changed, 5 insertions(+), 40 deletions(-) - -diff --git a/grub-core/boot/i386/pc/boot.S b/grub-core/boot/i386/pc/boot.S -index 2bd0b2d..ea167fe 100644 ---- a/grub-core/boot/i386/pc/boot.S -+++ b/grub-core/boot/i386/pc/boot.S -@@ -249,9 +249,6 @@ real_start: - /* save drive reference first thing! */ - pushw %dx - -- /* print a notification message on the screen */ -- MSG(notification_string) -- - /* set %si to the disk address packet */ - movw $disk_address_packet, %si - -diff --git a/grub-core/boot/i386/pc/diskboot.S b/grub-core/boot/i386/pc/diskboot.S -index c1addc0..68d31de 100644 ---- a/grub-core/boot/i386/pc/diskboot.S -+++ b/grub-core/boot/i386/pc/diskboot.S -@@ -50,11 +50,6 @@ _start: - /* save drive reference first thing! */ - pushw %dx - -- /* print a notification message on the screen */ -- pushw %si -- MSG(notification_string) -- popw %si -- - /* this sets up for the first run through "bootloop" */ - movw $LOCAL(firstlist), %di - -diff --git a/grub-core/gettext/gettext.c b/grub-core/gettext/gettext.c -index 4d02e62..84d520c 100644 ---- a/grub-core/gettext/gettext.c -+++ b/grub-core/gettext/gettext.c -@@ -434,16 +434,12 @@ static char * - grub_gettext_env_write_lang (struct grub_env_var *var - __attribute__ ((unused)), const char *val) - { -- grub_err_t err; -+ grub_err_t __attribute__((__unused__)) err; - err = grub_gettext_init_ext (&main_context, val, grub_env_get ("locale_dir"), - grub_env_get ("prefix")); -- if (err) -- grub_print_error (); - - err = grub_gettext_init_ext (&secondary_context, val, - grub_env_get ("secondary_locale_dir"), 0); -- if (err) -- grub_print_error (); - - return grub_strdup (val); - } -@@ -451,23 +447,19 @@ grub_gettext_env_write_lang (struct grub_env_var *var - void - grub_gettext_reread_prefix (const char *val) - { -- grub_err_t err; -+ grub_err_t __attribute__((__unused__)) err; - err = grub_gettext_init_ext (&main_context, grub_env_get ("lang"), - grub_env_get ("locale_dir"), - val); -- if (err) -- grub_print_error (); - } - - static char * - read_main (struct grub_env_var *var - __attribute__ ((unused)), const char *val) - { -- grub_err_t err; -+ grub_err_t __attribute__((__unused__)) err; - err = grub_gettext_init_ext (&main_context, grub_env_get ("lang"), val, - grub_env_get ("prefix")); -- if (err) -- grub_print_error (); - return grub_strdup (val); - } - -@@ -475,12 +467,9 @@ static char * - read_secondary (struct grub_env_var *var - __attribute__ ((unused)), const char *val) - { -- grub_err_t err; -+ grub_err_t __attribute__((__unused__)) err; - err = grub_gettext_init_ext (&secondary_context, grub_env_get ("lang"), val, - 0); -- if (err) -- grub_print_error (); -- - return grub_strdup (val); - } - -@@ -500,18 +489,14 @@ grub_cmd_translate (grub_command_t cmd __attribute__ ((unused)), - GRUB_MOD_INIT (gettext) - { - const char *lang; -- grub_err_t err; -+ grub_err_t __attribute__((__unused__)) err; - - lang = grub_env_get ("lang"); - - err = grub_gettext_init_ext (&main_context, lang, grub_env_get ("locale_dir"), - grub_env_get ("prefix")); -- if (err) -- grub_print_error (); - err = grub_gettext_init_ext (&secondary_context, lang, - grub_env_get ("secondary_locale_dir"), 0); -- if (err) -- grub_print_error (); - - grub_register_variable_hook ("locale_dir", NULL, read_main); - grub_register_variable_hook ("secondary_locale_dir", NULL, read_secondary); -diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c -index 8ab7794..da47b18 100644 ---- a/grub-core/kern/main.c -+++ b/grub-core/kern/main.c -@@ -268,11 +268,6 @@ grub_main (void) - - grub_boot_time ("After machine init."); - -- /* Hello. */ -- grub_setcolorstate (GRUB_TERM_COLOR_HIGHLIGHT); -- grub_printf ("Welcome to GRUB!\n\n"); -- grub_setcolorstate (GRUB_TERM_COLOR_STANDARD); -- - grub_load_config (); - - grub_boot_time ("Before loading embedded modules."); -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index dd31284..ceb413f 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -138,27 +138,20 @@ linux_entry () - fi - printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/" - fi -- message="$(gettext_printf "Loading Linux %s ..." ${version})" - sed "s/^/$submenu_indentation/" << EOF -- echo '$(echo "$message" | grub_quote)' - linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} - EOF - if test -n "${initrd}" ; then -- # TRANSLATORS: ramdisk isn't identifier. Should be translated. -- message="$(gettext_printf "Loading initial ramdisk ...")" - initrd_path= - for i in ${initrd}; do - initrd_path="${initrd_path} ${rel_dirname}/${i}" - done - sed "s/^/$submenu_indentation/" << EOF -- echo '$(echo "$message" | grub_quote)' - initrd $(echo $initrd_path) - EOF - fi - if test -n "${fdt}" ; then -- message="$(gettext_printf "Loading fdt ...")" - sed "s/^/$submenu_indentation/" << EOF -- echo '$(echo "$message" | grub_quote)' - devicetree ${rel_dirname}/${fdt} - EOF - fi --- -1.8.3.1 - diff --git a/0049-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch b/0029-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch similarity index 72% rename from 0049-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch rename to 0029-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch index 57f8ce2..ab49bb1 100644 --- a/0049-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch +++ b/0029-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch @@ -1,19 +1,18 @@ -From 03c186bcadb3cae7a86d1674de33c6a2b8d81089 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 8 Jul 2019 17:33:22 +0200 -Subject: [PATCH 049/220] Try mac/guid/etc before grub.cfg on tftp config - files. +Subject: [PATCH] Try mac/guid/etc before grub.cfg on tftp config files. Signed-off-by: Peter Jones --- - grub-core/normal/main.c | 80 ++++++++++++++++++++++++++----------------------- - 1 file changed, 43 insertions(+), 37 deletions(-) + grub-core/normal/main.c | 97 ++++++++++++++++++++++++++----------------------- + 1 file changed, 51 insertions(+), 46 deletions(-) diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index 8add30e..d93bee6 100644 +index 02577502116..880d0ebd454 100644 --- a/grub-core/normal/main.c +++ b/grub-core/normal/main.c -@@ -347,53 +347,59 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)), +@@ -345,61 +345,66 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)), /* Guess the config filename. It is necessary to make CONFIG static, so that it won't get broken by longjmp. */ char *config; @@ -42,39 +41,55 @@ index 8add30e..d93bee6 100644 - } - } + const char *prefix; ++ const char *net_search_cfg; ++ int disable_net_search = 0; + prefix = grub_env_get ("fw_path"); if (! prefix) prefix = grub_env_get ("prefix"); ++ ++ net_search_cfg = grub_env_get ("feature_net_search_cfg"); ++ if (net_search_cfg && net_search_cfg[0] == 'n') ++ disable_net_search = 1; + if (prefix) { - grub_size_t config_len; +- int disable_net_search = 0; +- const char *net_search_cfg; +- - config_len = grub_strlen (prefix) + -- sizeof ("/grub.cfg-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"); +- sizeof ("/grub.cfg-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"); - config = grub_malloc (config_len); -+ if (grub_strncmp (prefix + 1, "tftp", sizeof ("tftp") - 1) == 0) +- +- if (!config) +- goto quit; +- +- grub_snprintf (config, config_len, "%s/grub.cfg", prefix); +- +- net_search_cfg = grub_env_get ("feature_net_search_cfg"); +- if (net_search_cfg && net_search_cfg[0] == 'n') +- disable_net_search = 1; +- + if (grub_strncmp (prefix + 1, "tftp", sizeof ("tftp") - 1) == 0 && + !disable_net_search) +- grub_net_search_config_file (config); + { + grub_size_t config_len; + config_len = grub_strlen (prefix) + + sizeof ("/grub.cfg-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"); + config = grub_malloc (config_len); -- if (! config) -- goto quit; -+ if (! config) -+ goto quit; - -- grub_snprintf (config, config_len, "%s/grub.cfg", prefix); -+ grub_snprintf (config, config_len, "%s/grub.cfg", prefix); - -- if (grub_strncmp (prefix + 1, "tftp", sizeof ("tftp") - 1) == 0) -- grub_net_search_configfile (config); -+ grub_net_search_configfile (config); - - grub_enter_normal_mode (config); - grub_free (config); - } ++ if (! config) ++ goto quit; ++ ++ grub_snprintf (config, config_len, "%s/grub.cfg", prefix); ++ ++ grub_net_search_configfile (config); ++ + grub_enter_normal_mode (config); + grub_free (config); + config = NULL; @@ -110,6 +125,3 @@ index 8add30e..d93bee6 100644 } else grub_enter_normal_mode (argv[0]); --- -1.8.3.1 - diff --git a/0030-Don-t-print-GNU-GRUB-header.patch b/0030-Don-t-print-GNU-GRUB-header.patch deleted file mode 100644 index aff2b02..0000000 --- a/0030-Don-t-print-GNU-GRUB-header.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 9af19d1f8184aad31b3094768a64722316d4f0da Mon Sep 17 00:00:00 2001 -From: William Jon McCann -Date: Wed, 15 May 2013 13:53:48 -0400 -Subject: [PATCH 030/220] Don't print GNU GRUB header - -No one cares. ---- - grub-core/normal/main.c | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index a326b19..09d0dfe 100644 ---- a/grub-core/normal/main.c -+++ b/grub-core/normal/main.c -@@ -208,15 +208,16 @@ read_config_file (const char *config) - /* Initialize the screen. */ - void - grub_normal_init_page (struct grub_term_output *term, -- int y) -+ int y __attribute__((__unused__))) - { -+ grub_term_cls (term); -+ -+#if 0 - grub_ssize_t msg_len; - int posx; - char *msg_formatted; - grub_uint32_t *unicode_msg; - grub_uint32_t *last_position; -- -- grub_term_cls (term); - - msg_formatted = grub_xasprintf (_("GNU GRUB version %s"), PACKAGE_VERSION); - if (!msg_formatted) -@@ -241,6 +242,7 @@ grub_normal_init_page (struct grub_term_output *term, - grub_putcode ('\n', term); - grub_putcode ('\n', term); - grub_free (unicode_msg); -+#endif - } - - static void --- -1.8.3.1 - diff --git a/0053-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch b/0030-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch similarity index 84% rename from 0053-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch rename to 0030-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch index a234d80..245faf7 100644 --- a/0053-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch +++ b/0030-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch @@ -1,8 +1,7 @@ -From 708e24f2d6ffadfa2d1b6638538ddc03a82dbbd6 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 14:23:23 -0400 -Subject: [PATCH 053/220] Generate OS and CLASS in 10_linux from - /etc/os-release +Subject: [PATCH] Generate OS and CLASS in 10_linux from /etc/os-release This makes us use pretty names in the titles we generate in grub2-mkconfig when GRUB_DISTRIBUTOR isn't set. @@ -15,7 +14,7 @@ Signed-off-by: Peter Jones 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index d35b0f4..d12d2d7 100644 +index cf8d1186981..5f6d3c8d52d 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -29,7 +29,8 @@ export TEXTDOMAINDIR="@localedir@" @@ -28,6 +27,3 @@ index d35b0f4..d12d2d7 100644 else OS="${GRUB_DISTRIBUTOR}" CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}" --- -1.8.3.1 - diff --git a/0031-Don-t-add-to-highlighted-row.patch b/0031-Don-t-add-to-highlighted-row.patch deleted file mode 100644 index 1f36a14..0000000 --- a/0031-Don-t-add-to-highlighted-row.patch +++ /dev/null @@ -1,26 +0,0 @@ -From fc5204f8800ecfa4f00fab8ab8cd2720a6d5b55e Mon Sep 17 00:00:00 2001 -From: William Jon McCann -Date: Wed, 15 May 2013 17:49:45 -0400 -Subject: [PATCH 031/220] Don't add '*' to highlighted row - -It is already highlighted. ---- - grub-core/normal/menu_text.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c -index e22bb91..a3d1f23 100644 ---- a/grub-core/normal/menu_text.c -+++ b/grub-core/normal/menu_text.c -@@ -242,7 +242,7 @@ print_entry (int y, int highlight, grub_menu_entry_t entry, - unicode_title[i] = ' '; - - if (data->geo.num_entries > 1) -- grub_putcode (highlight ? '*' : ' ', data->term); -+ grub_putcode (' ', data->term); - - grub_print_ucs4_menu (unicode_title, - unicode_title + len, --- -1.8.3.1 - diff --git a/0054-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch b/0031-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch similarity index 80% rename from 0054-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch rename to 0031-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch index b34aed4..3e2d3ae 100644 --- a/0054-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch +++ b/0031-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch @@ -1,8 +1,7 @@ -From 0fe1927a2ff37806bcdca1243dd2df9cba116091 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 15:52:08 -0400 -Subject: [PATCH 054/220] Minimize the sort ordering for .debug and -rescue- - kernels. +Subject: [PATCH] Minimize the sort ordering for .debug and -rescue- kernels. Resolves: rhbz#1065360 Signed-off-by: Peter Jones @@ -11,10 +10,10 @@ Signed-off-by: Peter Jones 1 file changed, 8 insertions(+) diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index 1001a12..1a4a578 100644 +index 301d1ac229a..0f6505bf3b6 100644 --- a/util/grub-mkconfig_lib.in +++ b/util/grub-mkconfig_lib.in -@@ -249,6 +249,14 @@ version_test_gt () +@@ -253,6 +253,14 @@ version_test_gt () *.old:*.old) ;; *.old:*) version_test_gt_a="`echo "$version_test_gt_a" | sed -e 's/\.old$//'`" ; version_test_gt_cmp=gt ;; *:*.old) version_test_gt_b="`echo "$version_test_gt_b" | sed -e 's/\.old$//'`" ; version_test_gt_cmp=ge ;; @@ -29,6 +28,3 @@ index 1001a12..1a4a578 100644 esac version_test_numeric "$version_test_gt_a" "$version_test_gt_cmp" "$version_test_gt_b" return "$?" --- -1.8.3.1 - diff --git a/0032-Message-string-cleanups.patch b/0032-Message-string-cleanups.patch deleted file mode 100644 index c9c0b6f..0000000 --- a/0032-Message-string-cleanups.patch +++ /dev/null @@ -1,71 +0,0 @@ -From cc62054bce6fc5f00f4e302d8fa7615d263f1f5b Mon Sep 17 00:00:00 2001 -From: William Jon McCann -Date: Fri, 7 Jun 2013 11:09:04 -0400 -Subject: [PATCH 032/220] Message string cleanups - -Make use of terminology consistent. Remove jargon. ---- - grub-core/normal/menu_text.c | 21 +++++++++------------ - 1 file changed, 9 insertions(+), 12 deletions(-) - -diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c -index a3d1f23..64a8386 100644 ---- a/grub-core/normal/menu_text.c -+++ b/grub-core/normal/menu_text.c -@@ -157,9 +157,8 @@ print_message (int nested, int edit, struct grub_term_output *term, int dry_run) - - if (edit) - { -- ret += grub_print_message_indented_real (_("Minimum Emacs-like screen editing is \ --supported. TAB lists completions. Press Ctrl-x or F10 to boot, Ctrl-c or F2 for a \ --command-line or ESC to discard edits and return to the GRUB menu."), -+ ret += grub_print_message_indented_real (_("Press Ctrl-x or F10 to start, Ctrl-c or F2 for a \ -+command prompt or Escape to discard edits and return to the menu. Pressing Tab lists possible completions."), - STANDARD_MARGIN, STANDARD_MARGIN, - term, dry_run); - } -@@ -167,8 +166,8 @@ command-line or ESC to discard edits and return to the GRUB menu."), - { - char *msg_translated; - -- msg_translated = grub_xasprintf (_("Use the %C and %C keys to select which " -- "entry is highlighted."), -+ msg_translated = grub_xasprintf (_("Use the %C and %C keys to change the " -+ "selection."), - GRUB_UNICODE_UPARROW, - GRUB_UNICODE_DOWNARROW); - if (!msg_translated) -@@ -181,17 +180,15 @@ command-line or ESC to discard edits and return to the GRUB menu."), - if (nested) - { - ret += grub_print_message_indented_real -- (_("Press enter to boot the selected OS, " -- "`e' to edit the commands before booting " -- "or `c' for a command-line. ESC to return previous menu."), -+ (_("Press 'e' to edit the selected item, " -+ "or 'c' for a command prompt. Press Escape to return to the previous menu."), - STANDARD_MARGIN, STANDARD_MARGIN, term, dry_run); - } - else - { - ret += grub_print_message_indented_real -- (_("Press enter to boot the selected OS, " -- "`e' to edit the commands before booting " -- "or `c' for a command-line."), -+ (_("Press 'e' to edit the selected item, " -+ "or 'c' for a command prompt."), - STANDARD_MARGIN, STANDARD_MARGIN, term, dry_run); - } - } -@@ -443,7 +440,7 @@ menu_text_print_timeout (int timeout, void *dataptr) - || data->timeout_msg == TIMEOUT_TERSE_NO_MARGIN) - msg_translated = grub_xasprintf (_("%ds"), timeout); - else -- msg_translated = grub_xasprintf (_("The highlighted entry will be executed automatically in %ds."), timeout); -+ msg_translated = grub_xasprintf (_("The selected entry will be started automatically in %ds."), timeout); - if (!msg_translated) - { - grub_print_error (); --- -1.8.3.1 - diff --git a/0055-Try-prefix-if-fw_path-doesn-t-work.patch b/0032-Try-prefix-if-fw_path-doesn-t-work.patch similarity index 81% rename from 0055-Try-prefix-if-fw_path-doesn-t-work.patch rename to 0032-Try-prefix-if-fw_path-doesn-t-work.patch index ff684db..54a876b 100644 --- a/0055-Try-prefix-if-fw_path-doesn-t-work.patch +++ b/0032-Try-prefix-if-fw_path-doesn-t-work.patch @@ -1,19 +1,19 @@ -From 75f23ba5e4f8e84b595b0b13f5f7ed744a866099 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 9 Jul 2019 10:35:16 +0200 -Subject: [PATCH 055/220] Try $prefix if $fw_path doesn't work. +Subject: [PATCH] Try $prefix if $fw_path doesn't work. Related: rhbz#1148652 Signed-off-by: Peter Jones --- - grub-core/kern/ieee1275/init.c | 30 ++++++----- + grub-core/kern/ieee1275/init.c | 28 +++++---- grub-core/net/net.c | 2 +- - grub-core/normal/main.c | 118 ++++++++++++++++++++--------------------- - 3 files changed, 75 insertions(+), 75 deletions(-) + grub-core/normal/main.c | 134 ++++++++++++++++++++--------------------- + 3 files changed, 82 insertions(+), 82 deletions(-) diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c -index e71d158..0cd2a62 100644 +index e71d1584164..0cd2a627231 100644 --- a/grub-core/kern/ieee1275/init.c +++ b/grub-core/kern/ieee1275/init.c @@ -127,23 +127,25 @@ grub_machine_get_bootlocation (char **device, char **path) @@ -35,11 +35,10 @@ index e71d158..0cd2a62 100644 { - *lastslash = '\0'; - grub_translate_ieee1275_path (filename); -- ++ char *lastslash = grub_strrchr (filename, '\\'); + - *path = filename; - } -+ char *lastslash = grub_strrchr (filename, '\\'); -+ + /* Truncate at last directory. */ + if (lastslash) + { @@ -57,10 +56,10 @@ index e71d158..0cd2a62 100644 } diff --git a/grub-core/net/net.c b/grub-core/net/net.c -index 0645456..4b7972b 100644 +index 4d3eb5c1a52..0ef148f4adc 100644 --- a/grub-core/net/net.c +++ b/grub-core/net/net.c -@@ -1850,7 +1850,7 @@ grub_net_search_configfile (char *config) +@@ -1869,7 +1869,7 @@ grub_net_search_config_file (char *config) /* Remove the remaining minus sign at the end. */ config[config_len] = '\0'; @@ -70,10 +69,10 @@ index 0645456..4b7972b 100644 static struct grub_preboot *fini_hnd; diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index d93bee6..2fe6743 100644 +index 880d0ebd454..d5df4f815b0 100644 --- a/grub-core/normal/main.c +++ b/grub-core/normal/main.c -@@ -337,74 +337,72 @@ grub_enter_normal_mode (const char *config) +@@ -335,81 +335,79 @@ grub_enter_normal_mode (const char *config) grub_boot_time ("Exiting normal mode"); } @@ -83,12 +82,19 @@ index d93bee6..2fe6743 100644 + char *config; + const char *prefix; + grub_err_t err = GRUB_ERR_FILE_NOT_FOUND; ++ const char *net_search_cfg; ++ int disable_net_search = 0; + + prefix = grub_env_get (variable); + if (!prefix) + return GRUB_ERR_FILE_NOT_FOUND; + -+ if (grub_strncmp (prefix + 1, "tftp", sizeof ("tftp") - 1) == 0) ++ net_search_cfg = grub_env_get ("feature_net_search_cfg"); ++ if (net_search_cfg && net_search_cfg[0] == 'n') ++ disable_net_search = 1; ++ ++ if (grub_strncmp (prefix + 1, "tftp", sizeof ("tftp") - 1) == 0 && ++ !disable_net_search) + { + grub_size_t config_len; + config_len = grub_strlen (prefix) + @@ -99,7 +105,7 @@ index d93bee6..2fe6743 100644 + return GRUB_ERR_FILE_NOT_FOUND; + + grub_snprintf (config, config_len, "%s/grub.cfg", prefix); -+ err = grub_net_search_configfile (config); ++ err = grub_net_search_config_file (config); + } + + if (err != GRUB_ERR_NONE) @@ -131,22 +137,26 @@ index d93bee6..2fe6743 100644 int argc, char *argv[]) { - if (argc == 0) -+ if (argc) -+ grub_enter_normal_mode (argv[0]); -+ else - { +- { - /* Guess the config filename. It is necessary to make CONFIG static, - so that it won't get broken by longjmp. */ - char *config; - const char *prefix; +- const char *net_search_cfg; +- int disable_net_search = 0; - - prefix = grub_env_get ("fw_path"); - if (! prefix) - prefix = grub_env_get ("prefix"); - +- net_search_cfg = grub_env_get ("feature_net_search_cfg"); +- if (net_search_cfg && net_search_cfg[0] == 'n') +- disable_net_search = 1; +- - if (prefix) - { -- if (grub_strncmp (prefix + 1, "tftp", sizeof ("tftp") - 1) == 0) +- if (grub_strncmp (prefix + 1, "tftp", sizeof ("tftp") - 1) == 0 && +- !disable_net_search) - { - grub_size_t config_len; - config_len = grub_strlen (prefix) + @@ -191,6 +201,12 @@ index d93bee6..2fe6743 100644 - { - grub_enter_normal_mode (0); - } +- } +- else ++ if (argc) + grub_enter_normal_mode (argv[0]); ++ else ++ { + /* Guess the config filename. */ + grub_err_t err; + err = grub_try_normal ("fw_path"); @@ -198,14 +214,9 @@ index d93bee6..2fe6743 100644 + err = grub_try_normal ("prefix"); + if (err == GRUB_ERR_FILE_NOT_FOUND) + grub_enter_normal_mode (0); - } -- else -- grub_enter_normal_mode (argv[0]); ++ } -quit: return 0; } --- -1.8.3.1 - diff --git a/0033-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch b/0033-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch deleted file mode 100644 index cb207c7..0000000 --- a/0033-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 9330deb86a791da573563dc319e1874af72eb97c Mon Sep 17 00:00:00 2001 -From: William Jon McCann -Date: Fri, 7 Jun 2013 14:08:23 -0400 -Subject: [PATCH 033/220] Fix border spacing now that we aren't displaying it - ---- - grub-core/normal/menu_text.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c -index 64a8386..1062d64 100644 ---- a/grub-core/normal/menu_text.c -+++ b/grub-core/normal/menu_text.c -@@ -331,12 +331,12 @@ grub_menu_init_page (int nested, int edit, - int empty_lines = 1; - int version_msg = 1; - -- geo->border = 1; -- geo->first_entry_x = 1 /* margin */ + 1 /* border */; -+ geo->border = 0; -+ geo->first_entry_x = 0 /* margin */ + 0 /* border */; - geo->entry_width = grub_term_width (term) - 5; - - geo->first_entry_y = 2 /* two empty lines*/ -- + 1 /* GNU GRUB version text */ + 1 /* top border */; -+ + 0 /* GNU GRUB version text */ + 1 /* top border */; - - geo->timeout_lines = 2; - --- -1.8.3.1 - diff --git a/0057-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch b/0033-Use-rpm-s-sort-for-grub2-mkconfig.patch similarity index 81% rename from 0057-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch rename to 0033-Use-rpm-s-sort-for-grub2-mkconfig.patch index 579266a..ff1c13e 100644 --- a/0057-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch +++ b/0033-Use-rpm-s-sort-for-grub2-mkconfig.patch @@ -1,34 +1,114 @@ -From e8cf594751f7bbce4ff01504197ebc25c71c2dc2 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 14:14:19 -0400 -Subject: [PATCH 057/220] Use Distribution Package Sort for grub2-mkconfig - (#1124074) +Subject: [PATCH] Use rpm's sort for grub2-mkconfig -Users reported that newly installed kernels on their systems installed -with grub-mkconfig would not appear on the grub boot list in order -starting with the most recent. Added an option for rpm-based systems to -use the rpm-sort library to sort kernels instead. - -Resolves rhbz#1124074 +Add an option for rpm-based systems to use the rpm-sort library to sort +kernels. This avoids problems due to discrepancies between `sort -V` +and rpm. Signed-off-by: Robert Marshall [pjones: fix --enable-rpm-sort configure option] Signed-off-by: Peter Jones +[thierry.vignaud: fix build with rpm-4.16] +Signed-off-by: Thierry Vignaud +[tim: fix disabling grub-rpm-sort by ./configure] +Signed-off-by: Tim Landscheidt +[javierm: don't check for rpmvercmp in librpm] +Signed-off-by: Javier Martinez Canillas +[rharwood: commit message] +Signed-off-by: Robbie Harwood --- - Makefile.util.def | 16 +++ - configure.ac | 29 +++++ + configure.ac | 37 ++++++ + Makefile.util.def | 17 +++ + util/grub-rpm-sort.c | 281 ++++++++++++++++++++++++++++++++++++++++++++++ util/grub-mkconfig_lib.in | 11 +- util/grub-rpm-sort.8 | 12 ++ - util/grub-rpm-sort.c | 281 ++++++++++++++++++++++++++++++++++++++++++++++ - 5 files changed, 348 insertions(+), 1 deletion(-) - create mode 100644 util/grub-rpm-sort.8 + 5 files changed, 357 insertions(+), 1 deletion(-) create mode 100644 util/grub-rpm-sort.c + create mode 100644 util/grub-rpm-sort.8 +diff --git a/configure.ac b/configure.ac +index bec8535af70..643a13f9147 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -72,6 +72,7 @@ grub_TRANSFORM([grub-mkrelpath]) + grub_TRANSFORM([grub-mkrescue]) + grub_TRANSFORM([grub-probe]) + grub_TRANSFORM([grub-reboot]) ++grub_TRANSFORM([grub-rpm-sort]) + grub_TRANSFORM([grub-script-check]) + grub_TRANSFORM([grub-set-default]) + grub_TRANSFORM([grub-sparc64-setup]) +@@ -95,6 +96,7 @@ grub_TRANSFORM([grub-mkrescue.1]) + grub_TRANSFORM([grub-mkstandalone.3]) + grub_TRANSFORM([grub-ofpathname.3]) + grub_TRANSFORM([grub-probe.3]) ++grub_TRANSFORM([grub-rpm-sort.8]) + grub_TRANSFORM([grub-reboot.3]) + grub_TRANSFORM([grub-render-label.3]) + grub_TRANSFORM([grub-script-check.3]) +@@ -1860,6 +1862,35 @@ fi + + AC_SUBST([LIBDEVMAPPER]) + ++AC_ARG_ENABLE([rpm-sort], ++ [AS_HELP_STRING([--enable-rpm-sort], ++ [enable native rpm sorting of kernels in grub (default=guessed)])]) ++if test x"$enable_rpm_sort" = xno ; then ++ rpm_sort_excuse="explicitly disabled" ++else ++ enable_rpm_sort=yes ++fi ++ ++if test x"$rpm_sort_excuse" = x ; then ++ # Check for rpmlib header. ++ AC_CHECK_HEADER([rpm/rpmlib.h], [], ++ [rpm_sort_excuse="need rpm/rpmlib header"]) ++fi ++ ++if test x"$rpm_sort_excuse" = x ; then ++ # Check for rpmio library. ++ AC_CHECK_LIB([rpmio], [rpmvercmp], [], ++ [rpm_sort_excuse="rpmio missing rpmvercmp"]) ++fi ++ ++if test x"$rpm_sort_excuse" = x ; then ++ LIBRPM="-lrpmio"; ++ AC_DEFINE([HAVE_RPMIO], [1], ++ [Define to 1 if you have the rpmio library.]) ++fi ++ ++AC_SUBST([LIBRPM]) ++ + LIBGEOM= + if test x$host_kernel = xkfreebsd; then + AC_CHECK_LIB([geom], [geom_gettree], [], +@@ -2047,6 +2078,7 @@ AM_CONDITIONAL([COND_GRUB_EMU_SDL], [test x$enable_grub_emu_sdl = xyes]) + AM_CONDITIONAL([COND_GRUB_EMU_PCI], [test x$enable_grub_emu_pci = xyes]) + AM_CONDITIONAL([COND_GRUB_MKFONT], [test x$enable_grub_mkfont = xyes]) + AM_CONDITIONAL([COND_GRUB_MOUNT], [test x$enable_grub_mount = xyes]) ++AM_CONDITIONAL([COND_GRUB_RPM_SORT], [test x$enable_rpm_sort = xyes]) + AM_CONDITIONAL([COND_HAVE_FONT_SOURCE], [test x$FONT_SOURCE != x]) + if test x$FONT_SOURCE != x ; then + HAVE_FONT_SOURCE=1 +@@ -2168,6 +2200,11 @@ echo grub-mount: Yes + else + echo grub-mount: No "($grub_mount_excuse)" + fi ++if [ x"$rpm_sort_excuse" = x ]; then ++echo grub-rpm-sort: Yes ++else ++echo grub-rpm-sort: No "($rpm_sort_excuse)" ++fi + if [ x"$starfield_excuse" = x ]; then + echo starfield theme: Yes + echo With DejaVuSans font from $DJVU_FONT_SOURCE diff --git a/Makefile.util.def b/Makefile.util.def -index 1f298d0..843ce09 100644 +index 2c9b283a230..bc10cc79722 100644 --- a/Makefile.util.def +++ b/Makefile.util.def -@@ -696,6 +696,22 @@ program = { +@@ -703,6 +703,23 @@ program = { ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; }; @@ -46,122 +126,15 @@ index 1f298d0..843ce09 100644 + ldadd = libgrubkern.a; + ldadd = grub-core/lib/gnulib/libgnu.a; + ldadd = '$(LIBDEVMAPPER) $(LIBRPM)'; ++ condition = COND_GRUB_RPM_SORT; +}; + script = { name = grub-mkconfig; common = util/grub-mkconfig.in; -diff --git a/configure.ac b/configure.ac -index 8df400e..6927615 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -69,6 +69,7 @@ grub_TRANSFORM([grub-mkrelpath]) - grub_TRANSFORM([grub-mkrescue]) - grub_TRANSFORM([grub-probe]) - grub_TRANSFORM([grub-reboot]) -+grub_TRANSFORM([grub-rpm-sort]) - grub_TRANSFORM([grub-script-check]) - grub_TRANSFORM([grub-set-default]) - grub_TRANSFORM([grub-sparc64-setup]) -@@ -92,6 +93,7 @@ grub_TRANSFORM([grub-mkrescue.1]) - grub_TRANSFORM([grub-mkstandalone.3]) - grub_TRANSFORM([grub-ofpathname.3]) - grub_TRANSFORM([grub-probe.3]) -+grub_TRANSFORM([grub-rpm-sort.8]) - grub_TRANSFORM([grub-reboot.3]) - grub_TRANSFORM([grub-render-label.3]) - grub_TRANSFORM([grub-script-check.3]) -@@ -1802,6 +1804,33 @@ fi - - AC_SUBST([LIBDEVMAPPER]) - -+AC_ARG_ENABLE([rpm-sort], -+ [AS_HELP_STRING([--enable-rpm-sort], -+ [enable native rpm sorting of kernels in grub (default=guessed)])]) -+if test x"$enable_rpm_sort" = xno ; then -+ rpm_sort_excuse="explicitly disabled" -+fi -+ -+if test x"$rpm_sort_excuse" = x ; then -+ # Check for rpmlib header. -+ AC_CHECK_HEADER([rpm/rpmlib.h], [], -+ [rpm_sort_excuse="need rpm/rpmlib header"]) -+fi -+ -+if test x"$rpm_sort_excuse" = x ; then -+ # Check for rpm library. -+ AC_CHECK_LIB([rpm], [rpmvercmp], [], -+ [rpm_sort_excuse="rpmlib missing rpmvercmp"]) -+fi -+ -+if test x"$rpm_sort_excuse" = x ; then -+ LIBRPM="-lrpm"; -+ AC_DEFINE([HAVE_RPM], [1], -+ [Define to 1 if you have the rpm library.]) -+fi -+ -+AC_SUBST([LIBRPM]) -+ - LIBGEOM= - if test x$host_kernel = xkfreebsd; then - AC_CHECK_LIB([geom], [geom_gettree], [], -diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index 1a4a578..113a41f 100644 ---- a/util/grub-mkconfig_lib.in -+++ b/util/grub-mkconfig_lib.in -@@ -33,6 +33,9 @@ fi - if test "x$grub_mkrelpath" = x; then - grub_mkrelpath="${bindir}/@grub_mkrelpath@" - fi -+if test "x$grub_rpm_sort" = x; then -+ grub_rpm_sort="${sbindir}/@grub_rpm_sort@" -+fi - - if which gettext >/dev/null 2>/dev/null; then - : -@@ -214,6 +217,12 @@ version_sort () - esac - } - -+if [ "x$grub_rpm_sort" != x -a -x "$grub_rpm_sort" ]; then -+ kernel_sort="$grub_rpm_sort" -+else -+ kernel_sort=version_sort -+fi -+ - version_test_numeric () - { - version_test_numeric_a="$1" -@@ -230,7 +239,7 @@ version_test_numeric () - version_test_numeric_a="$version_test_numeric_b" - version_test_numeric_b="$version_test_numeric_c" - fi -- if (echo "$version_test_numeric_a" ; echo "$version_test_numeric_b") | version_sort | head -n 1 | grep -qx "$version_test_numeric_b" ; then -+ if (echo "$version_test_numeric_a" ; echo "$version_test_numeric_b") | "$kernel_sort" | head -n 1 | grep -qx "$version_test_numeric_b" ; then - return 0 - else - return 1 -diff --git a/util/grub-rpm-sort.8 b/util/grub-rpm-sort.8 -new file mode 100644 -index 0000000..8ce2148 ---- /dev/null -+++ b/util/grub-rpm-sort.8 -@@ -0,0 +1,12 @@ -+.TH GRUB-RPM-SORT 8 "Wed Feb 26 2014" -+.SH NAME -+\fBgrub-rpm-sort\fR \(em Sort input according to RPM version compare. -+ -+.SH SYNOPSIS -+\fBgrub-rpm-sort\fR [OPTIONS]. -+ -+.SH DESCRIPTION -+You should not normally run this program directly. Use grub-mkconfig instead. -+ -+.SH SEE ALSO -+.BR "info grub" diff --git a/util/grub-rpm-sort.c b/util/grub-rpm-sort.c new file mode 100644 -index 0000000..f33bd1e +index 00000000000..f33bd1ed568 --- /dev/null +++ b/util/grub-rpm-sort.c @@ -0,0 +1,281 @@ @@ -446,6 +419,57 @@ index 0000000..f33bd1e + + return 0; +} --- -1.8.3.1 - +diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in +index 0f6505bf3b6..42c2ea9ba50 100644 +--- a/util/grub-mkconfig_lib.in ++++ b/util/grub-mkconfig_lib.in +@@ -33,6 +33,9 @@ fi + if test "x$grub_mkrelpath" = x; then + grub_mkrelpath="${bindir}/@grub_mkrelpath@" + fi ++if test "x$grub_rpm_sort" = x; then ++ grub_rpm_sort="${sbindir}/@grub_rpm_sort@" ++fi + + if command -v gettext >/dev/null; then + : +@@ -218,6 +221,12 @@ version_sort () + esac + } + ++if [ "x$grub_rpm_sort" != x -a -x "$grub_rpm_sort" ]; then ++ kernel_sort="$grub_rpm_sort" ++else ++ kernel_sort=version_sort ++fi ++ + version_test_numeric () + { + version_test_numeric_a="$1" +@@ -234,7 +243,7 @@ version_test_numeric () + version_test_numeric_a="$version_test_numeric_b" + version_test_numeric_b="$version_test_numeric_c" + fi +- if (echo "$version_test_numeric_a" ; echo "$version_test_numeric_b") | version_sort | head -n 1 | grep -qx "$version_test_numeric_b" ; then ++ if (echo "$version_test_numeric_a" ; echo "$version_test_numeric_b") | "$kernel_sort" | head -n 1 | grep -qx "$version_test_numeric_b" ; then + return 0 + else + return 1 +diff --git a/util/grub-rpm-sort.8 b/util/grub-rpm-sort.8 +new file mode 100644 +index 00000000000..8ce21488448 +--- /dev/null ++++ b/util/grub-rpm-sort.8 +@@ -0,0 +1,12 @@ ++.TH GRUB-RPM-SORT 8 "Wed Feb 26 2014" ++.SH NAME ++\fBgrub-rpm-sort\fR \(em Sort input according to RPM version compare. ++ ++.SH SYNOPSIS ++\fBgrub-rpm-sort\fR [OPTIONS]. ++ ++.SH DESCRIPTION ++You should not normally run this program directly. Use grub-mkconfig instead. ++ ++.SH SEE ALSO ++.BR "info grub" diff --git a/0059-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0034-Make-grub2-mkconfig-construct-titles-that-look-like-.patch similarity index 91% rename from 0059-Make-grub2-mkconfig-construct-titles-that-look-like-.patch rename to 0034-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index 10f709c..4eb37e1 100644 --- a/0059-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0034-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,8 +1,8 @@ -From 95e793ef45a127c800525d629b2fdec583ae8266 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 059/220] Make grub2-mkconfig construct titles that look like - the ones we want elsewhere. +Subject: [PATCH] Make grub2-mkconfig construct titles that look like the ones + we want elsewhere. Resolves: rhbz#1215839 @@ -12,7 +12,7 @@ Signed-off-by: Peter Jones 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index d12d2d7..12a20c9 100644 +index 5f6d3c8d52d..786dbabb4a8 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -78,6 +78,32 @@ case x"$GRUB_FS" in @@ -67,6 +67,3 @@ index d12d2d7..12a20c9 100644 fi echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/" else --- -1.8.3.1 - diff --git a/0034-Use-the-correct-indentation-for-the-term-help-text.patch b/0034-Use-the-correct-indentation-for-the-term-help-text.patch deleted file mode 100644 index f7fae87..0000000 --- a/0034-Use-the-correct-indentation-for-the-term-help-text.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 5e6cef121ba76d88608e6c124ff60e73cf057fe4 Mon Sep 17 00:00:00 2001 -From: William Jon McCann -Date: Fri, 7 Jun 2013 14:08:49 -0400 -Subject: [PATCH 034/220] Use the correct indentation for the term help text - -That is consistent with the menu help text ---- - grub-core/normal/main.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index 09d0dfe..7f61c5b 100644 ---- a/grub-core/normal/main.c -+++ b/grub-core/normal/main.c -@@ -432,8 +432,8 @@ grub_normal_reader_init (int nested) - grub_normal_init_page (term, 1); - grub_term_setcursor (term, 1); - -- if (grub_term_width (term) > 3 + STANDARD_MARGIN + 20) -- grub_print_message_indented (msg_formatted, 3, STANDARD_MARGIN, term); -+ if (grub_term_width (term) > 2 * STANDARD_MARGIN + 20) -+ grub_print_message_indented (msg_formatted, STANDARD_MARGIN, STANDARD_MARGIN, term); - else - grub_print_message_indented (msg_formatted, 0, 0, term); - grub_putcode ('\n', term); --- -1.8.3.1 - diff --git a/0060-Add-friendly-grub2-password-config-tool-985962.patch b/0035-Add-friendly-grub2-password-config-tool-985962.patch similarity index 93% rename from 0060-Add-friendly-grub2-password-config-tool-985962.patch rename to 0035-Add-friendly-grub2-password-config-tool-985962.patch index 8ac50f2..2d6f18a 100644 --- a/0060-Add-friendly-grub2-password-config-tool-985962.patch +++ b/0035-Add-friendly-grub2-password-config-tool-985962.patch @@ -1,7 +1,7 @@ -From a524d461543f57da4f36a9c9c12b329ea8b6629c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Thu, 25 Jun 2015 11:13:11 -0400 -Subject: [PATCH 060/220] Add friendly grub2 password config tool (#985962) +Subject: [PATCH] Add friendly grub2 password config tool (#985962) Provided a tool for users to reset the grub2 root user password without having to alter the grub.cfg. The hashed password now @@ -15,8 +15,8 @@ Signed-off-by: Peter Jones [luto: fix grub-setpassword -o's output path] Andy Lutomirski --- - Makefile.util.def | 13 +++++ configure.ac | 1 + + Makefile.util.def | 13 +++++ util/grub-mkconfig.in | 2 + util/grub-set-password.8 | 28 ++++++++++ util/grub-set-password.in | 128 ++++++++++++++++++++++++++++++++++++++++++++++ @@ -26,42 +26,11 @@ Andy Lutomirski create mode 100644 util/grub-set-password.in create mode 100644 util/grub.d/01_users.in -diff --git a/Makefile.util.def b/Makefile.util.def -index 843ce09..e50436a 100644 ---- a/Makefile.util.def -+++ b/Makefile.util.def -@@ -452,6 +452,12 @@ script = { - }; - - script = { -+ name = '01_users'; -+ common = util/grub.d/01_users.in; -+ installdir = grubconf; -+}; -+ -+script = { - name = '10_windows'; - common = util/grub.d/10_windows.in; - installdir = grubconf; -@@ -734,6 +740,13 @@ script = { - }; - - script = { -+ name = grub-set-password; -+ common = util/grub-set-password.in; -+ mansection = 8; -+ installdir = sbin; -+}; -+ -+script = { - name = grub-mkconfig_lib; - common = util/grub-mkconfig_lib.in; - installdir = noinst; diff --git a/configure.ac b/configure.ac -index 6927615..6850166 100644 +index 643a13f9147..25e1abb59b9 100644 --- a/configure.ac +++ b/configure.ac -@@ -69,6 +69,7 @@ grub_TRANSFORM([grub-mkrelpath]) +@@ -72,6 +72,7 @@ grub_TRANSFORM([grub-mkrelpath]) grub_TRANSFORM([grub-mkrescue]) grub_TRANSFORM([grub-probe]) grub_TRANSFORM([grub-reboot]) @@ -69,11 +38,42 @@ index 6927615..6850166 100644 grub_TRANSFORM([grub-rpm-sort]) grub_TRANSFORM([grub-script-check]) grub_TRANSFORM([grub-set-default]) +diff --git a/Makefile.util.def b/Makefile.util.def +index bc10cc79722..8ca4c14f0b9 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -452,6 +452,12 @@ script = { + installdir = grubconf; + }; + ++script = { ++ name = '01_users'; ++ common = util/grub.d/01_users.in; ++ installdir = grubconf; ++}; ++ + script = { + name = '10_windows'; + common = util/grub.d/10_windows.in; +@@ -741,6 +747,13 @@ script = { + installdir = sbin; + }; + ++script = { ++ name = grub-set-password; ++ common = util/grub-set-password.in; ++ mansection = 8; ++ installdir = sbin; ++}; ++ + script = { + name = grub-mkconfig_lib; + common = util/grub-mkconfig_lib.in; diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index c645351..4e7a875 100644 +index 8ea2315ebc2..ba14cf6261c 100644 --- a/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in -@@ -282,6 +282,8 @@ for i in "${grub_mkconfig_dir}"/* ; do +@@ -276,6 +276,8 @@ for i in "${grub_mkconfig_dir}"/* ; do *~) ;; # emacsen autosave files. FIXME: support other editors */\#*\#) ;; @@ -84,7 +84,7 @@ index c645351..4e7a875 100644 echo diff --git a/util/grub-set-password.8 b/util/grub-set-password.8 new file mode 100644 -index 0000000..9646546 +index 00000000000..9646546e43d --- /dev/null +++ b/util/grub-set-password.8 @@ -0,0 +1,28 @@ @@ -118,7 +118,7 @@ index 0000000..9646546 +.BR "info grub2-mkpasswd-pbkdf2" diff --git a/util/grub-set-password.in b/util/grub-set-password.in new file mode 100644 -index 0000000..5ebf505 +index 00000000000..5ebf50576d6 --- /dev/null +++ b/util/grub-set-password.in @@ -0,0 +1,128 @@ @@ -252,7 +252,7 @@ index 0000000..5ebf505 +fi diff --git a/util/grub.d/01_users.in b/util/grub.d/01_users.in new file mode 100644 -index 0000000..db2f44b +index 00000000000..db2f44bfb78 --- /dev/null +++ b/util/grub.d/01_users.in @@ -0,0 +1,11 @@ @@ -267,6 +267,3 @@ index 0000000..db2f44b + fi +fi +EOF --- -1.8.3.1 - diff --git a/0035-Indent-menu-entries.patch b/0035-Indent-menu-entries.patch deleted file mode 100644 index fde8f7e..0000000 --- a/0035-Indent-menu-entries.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 7d70ca36c17e14361284f986e4c62e6523bf6b98 Mon Sep 17 00:00:00 2001 -From: William Jon McCann -Date: Fri, 7 Jun 2013 14:30:55 -0400 -Subject: [PATCH 035/220] Indent menu entries - ---- - grub-core/normal/menu_text.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c -index 1062d64..ecc60f9 100644 ---- a/grub-core/normal/menu_text.c -+++ b/grub-core/normal/menu_text.c -@@ -239,7 +239,8 @@ print_entry (int y, int highlight, grub_menu_entry_t entry, - unicode_title[i] = ' '; - - if (data->geo.num_entries > 1) -- grub_putcode (' ', data->term); -+ for (i = 0; i < STANDARD_MARGIN; i++) -+ grub_putcode (' ', data->term); - - grub_print_ucs4_menu (unicode_title, - unicode_title + len, --- -1.8.3.1 - diff --git a/0036-Fix-margins.patch b/0036-Fix-margins.patch deleted file mode 100644 index 6c91ecd..0000000 --- a/0036-Fix-margins.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 61f83fac37fb9bacac50f75e0aa7d304bfabf410 Mon Sep 17 00:00:00 2001 -From: William Jon McCann -Date: Fri, 7 Jun 2013 14:59:36 -0400 -Subject: [PATCH 036/220] Fix margins - ---- - grub-core/normal/menu_text.c | 8 +++----- - 1 file changed, 3 insertions(+), 5 deletions(-) - -diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c -index ecc60f9..0e43f2c 100644 ---- a/grub-core/normal/menu_text.c -+++ b/grub-core/normal/menu_text.c -@@ -333,17 +333,15 @@ grub_menu_init_page (int nested, int edit, - int version_msg = 1; - - geo->border = 0; -- geo->first_entry_x = 0 /* margin */ + 0 /* border */; -- geo->entry_width = grub_term_width (term) - 5; -+ geo->first_entry_x = 0; /* no margin */ -+ geo->entry_width = grub_term_width (term) - 1; - -- geo->first_entry_y = 2 /* two empty lines*/ -- + 0 /* GNU GRUB version text */ + 1 /* top border */; -+ geo->first_entry_y = 3; /* three empty lines*/ - - geo->timeout_lines = 2; - - /* 3 lines for timeout message and bottom margin. 2 lines for the border. */ - geo->num_entries = grub_term_height (term) - geo->first_entry_y -- - 1 /* bottom border */ - - 1 /* empty line before info message*/ - - geo->timeout_lines /* timeout */ - - 1 /* empty final line */; --- -1.8.3.1 - diff --git a/0061-tcp-add-window-scaling-support.patch b/0036-tcp-add-window-scaling-support.patch similarity index 94% rename from 0061-tcp-add-window-scaling-support.patch rename to 0036-tcp-add-window-scaling-support.patch index 6cf2d79..7d1996c 100644 --- a/0061-tcp-add-window-scaling-support.patch +++ b/0036-tcp-add-window-scaling-support.patch @@ -1,7 +1,7 @@ -From 685960c950e661dec0d57a353ca01304b94a7092 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Wed, 12 Aug 2015 08:57:55 -0700 -Subject: [PATCH 061/220] tcp: add window scaling support +Subject: [PATCH] tcp: add window scaling support Sometimes we have to provision boxes across regions, such as California to Sweden. The http server has a 10 minute timeout, so if we can't get our 250mb @@ -17,7 +17,7 @@ Signed-off-by: Josef Bacik 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/grub-core/net/tcp.c b/grub-core/net/tcp.c -index e8ad34b..7d4b822 100644 +index e8ad34b84d4..7d4b822626d 100644 --- a/grub-core/net/tcp.c +++ b/grub-core/net/tcp.c @@ -106,6 +106,18 @@ struct tcphdr @@ -85,6 +85,3 @@ index e8ad34b..7d4b822 100644 tcp_socket_register (socket); --- -1.8.3.1 - diff --git a/0037-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch b/0037-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch deleted file mode 100644 index ed79a3e..0000000 --- a/0037-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 10fe905b3b3364436fe5328724b21def775aec60 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Fri, 21 Jun 2013 14:44:08 -0400 -Subject: [PATCH 037/220] Use -2 instead of -1 for our right-hand margin, so - linewrapping works (#976643). - -Signed-off-by: Peter Jones ---- - grub-core/normal/menu_text.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c -index 0e43f2c..537d4bf 100644 ---- a/grub-core/normal/menu_text.c -+++ b/grub-core/normal/menu_text.c -@@ -334,7 +334,7 @@ grub_menu_init_page (int nested, int edit, - - geo->border = 0; - geo->first_entry_x = 0; /* no margin */ -- geo->entry_width = grub_term_width (term) - 1; -+ geo->entry_width = grub_term_width (term) - 2; - - geo->first_entry_y = 3; /* three empty lines*/ - --- -1.8.3.1 - diff --git a/0064-efinet-and-bootp-add-support-for-dhcpv6.patch b/0037-efinet-and-bootp-add-support-for-dhcpv6.patch similarity index 92% rename from 0064-efinet-and-bootp-add-support-for-dhcpv6.patch rename to 0037-efinet-and-bootp-add-support-for-dhcpv6.patch index a23b63e..a9844b8 100644 --- a/0064-efinet-and-bootp-add-support-for-dhcpv6.patch +++ b/0037-efinet-and-bootp-add-support-for-dhcpv6.patch @@ -1,31 +1,23 @@ -From af6fa4f3b319c6d71badfba50fcb16619c38605a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 9 Jul 2019 11:47:37 +0200 -Subject: [PATCH 064/220] efinet and bootp: add support for dhcpv6 +Subject: [PATCH] efinet and bootp: add support for dhcpv6 Signed-off-by: Peter Jones --- - grub-core/net/bootp.c | 174 +++++++++++++++++++++++++++++++++++++ - grub-core/net/drivers/efi/efinet.c | 54 ++++++++++-- + grub-core/net/bootp.c | 173 +++++++++++++++++++++++++++++++++++++ + grub-core/net/drivers/efi/efinet.c | 53 ++++++++++-- grub-core/net/net.c | 72 +++++++++++++++ grub-core/net/tftp.c | 4 + include/grub/efi/api.h | 129 +++++++++++++++++++++++++-- include/grub/net.h | 60 +++++++++++++ - 6 files changed, 479 insertions(+), 14 deletions(-) + 6 files changed, 477 insertions(+), 14 deletions(-) diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c -index 0e6e41a..8c96959 100644 +index 6fb5627025d..e28fb6a09f9 100644 --- a/grub-core/net/bootp.c +++ b/grub-core/net/bootp.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - #include - - struct grub_dhcp_discover_options -@@ -935,6 +936,179 @@ grub_cmd_bootp (struct grub_command *cmd __attribute__ ((unused)), +@@ -902,6 +902,179 @@ grub_cmd_bootp (struct grub_command *cmd __attribute__ ((unused)), static grub_command_t cmd_getdhcp, cmd_bootp, cmd_dhcp; @@ -206,16 +198,15 @@ index 0e6e41a..8c96959 100644 grub_bootp_init (void) { diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index 5388f95..a57189e 100644 +index 5388f952ba9..173fb63153c 100644 --- a/grub-core/net/drivers/efi/efinet.c +++ b/grub-core/net/drivers/efi/efinet.c -@@ -18,11 +18,15 @@ +@@ -18,11 +18,14 @@ #include #include +#include #include -+#include #include #include #include @@ -225,7 +216,7 @@ index 5388f95..a57189e 100644 GRUB_MOD_LICENSE ("GPLv3+"); -@@ -329,7 +333,7 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, +@@ -329,7 +332,7 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, char **path) { struct grub_net_card *card; @@ -234,7 +225,7 @@ index 5388f95..a57189e 100644 dp = grub_efi_get_device_path (hnd); if (! dp) -@@ -340,14 +344,19 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, +@@ -340,14 +343,19 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, grub_efi_device_path_t *cdp; struct grub_efi_pxe *pxe; struct grub_efi_pxe_mode *pxe_mode; @@ -255,7 +246,7 @@ index 5388f95..a57189e 100644 int match; /* EDK2 UEFI PXE driver creates pseudo devices with type IPv4/IPv6 -@@ -356,7 +365,6 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, +@@ -356,7 +364,6 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, devices. We skip them when enumerating cards, so here we need to find matching MAC device. */ @@ -263,7 +254,7 @@ index 5388f95..a57189e 100644 if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) != GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE || (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE)) -@@ -373,16 +381,46 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, +@@ -373,16 +380,46 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, if (!match) continue; } @@ -316,10 +307,10 @@ index 5388f95..a57189e 100644 } } diff --git a/grub-core/net/net.c b/grub-core/net/net.c -index 4b7972b..f24f1fd 100644 +index 0ef148f4adc..22f2689aaeb 100644 --- a/grub-core/net/net.c +++ b/grub-core/net/net.c -@@ -955,6 +955,78 @@ grub_net_network_level_interface_register (struct grub_net_network_level_interfa +@@ -960,6 +960,78 @@ grub_net_network_level_interface_register (struct grub_net_network_level_interfa grub_net_network_level_interfaces = inter; } @@ -399,19 +390,18 @@ index 4b7972b..f24f1fd 100644 grub_err_t grub_net_add_ipv4_local (struct grub_net_network_level_interface *inter, diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c -index 7d90bf6..1157524 100644 +index 7f44b30f521..4ab2f5c7357 100644 --- a/grub-core/net/tftp.c +++ b/grub-core/net/tftp.c -@@ -379,19 +379,23 @@ tftp_open (struct grub_file *file, const char *filename) - return grub_errno; - } +@@ -358,18 +358,22 @@ tftp_open (struct grub_file *file, const char *filename) + file->not_easily_seekable = 1; + file->data = data; + grub_dprintf("tftp", "resolving address for %s\n", file->device->net->server); err = grub_net_resolve_address (file->device->net->server, &addr); if (err) { + grub_dprintf("tftp", "Address resolution failed: %d\n", err); - destroy_pq (data); grub_free (data); return err; } @@ -423,14 +413,14 @@ index 7d90bf6..1157524 100644 if (!data->sock) { + grub_dprintf("tftp", "connection failed\n"); - destroy_pq (data); grub_free (data); return grub_errno; + } diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index addcbfa..d97cdf9 100644 +index f1a52210c0c..117469450d3 100644 --- a/include/grub/efi/api.h +++ b/include/grub/efi/api.h -@@ -572,10 +572,16 @@ typedef void *grub_efi_handle_t; +@@ -592,10 +592,16 @@ typedef void *grub_efi_handle_t; typedef void *grub_efi_event_t; typedef grub_efi_uint64_t grub_efi_lba_t; typedef grub_efi_uintn_t grub_efi_tpl_t; @@ -451,7 +441,7 @@ index addcbfa..d97cdf9 100644 typedef grub_efi_uint64_t grub_efi_physical_address_t; typedef grub_efi_uint64_t grub_efi_virtual_address_t; -@@ -1450,16 +1456,127 @@ struct grub_efi_simple_text_output_interface +@@ -1474,16 +1480,127 @@ struct grub_efi_simple_text_output_interface }; typedef struct grub_efi_simple_text_output_interface grub_efi_simple_text_output_interface_t; @@ -582,7 +572,7 @@ index addcbfa..d97cdf9 100644 typedef struct grub_efi_pxe diff --git a/include/grub/net.h b/include/grub/net.h -index ff6d347..3647012 100644 +index 7ae4b6bd805..8a05ec4fe7a 100644 --- a/include/grub/net.h +++ b/include/grub/net.h @@ -447,6 +447,51 @@ struct grub_net_bootp_packet @@ -659,6 +649,3 @@ index ff6d347..3647012 100644 grub_err_t grub_net_add_ipv4_local (struct grub_net_network_level_interface *inf, int mask); --- -1.8.3.1 - diff --git a/0065-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch b/0038-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch similarity index 91% rename from 0065-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch rename to 0038-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch index 8837b09..bf78c81 100644 --- a/0065-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch +++ b/0038-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch @@ -1,7 +1,7 @@ -From 6f9c2df8b9b7905038bab5f3627806c00199ae25 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 23 Jun 2016 11:01:39 -0400 -Subject: [PATCH 065/220] Add grub-get-kernel-settings and use it in 10_linux +Subject: [PATCH] Add grub-get-kernel-settings and use it in 10_linux This patch adds grub-get-kernel-settings, which reads the system kernel installation configuration from /etc/sysconfig/kernel, and outputs @@ -11,8 +11,8 @@ debug stanzas. Resolves: rhbz#1226325 --- - Makefile.util.def | 7 ++ configure.ac | 2 + + Makefile.util.def | 7 ++ util/bash-completion.d/grub-completion.bash.in | 22 +++++++ util/grub-get-kernel-settings.3 | 20 ++++++ util/grub-get-kernel-settings.in | 88 ++++++++++++++++++++++++++ @@ -22,29 +22,11 @@ Resolves: rhbz#1226325 create mode 100644 util/grub-get-kernel-settings.3 create mode 100644 util/grub-get-kernel-settings.in -diff --git a/Makefile.util.def b/Makefile.util.def -index e50436a..2215cc7 100644 ---- a/Makefile.util.def -+++ b/Makefile.util.def -@@ -726,6 +726,13 @@ script = { - }; - - script = { -+ name = grub-get-kernel-settings; -+ common = util/grub-get-kernel-settings.in; -+ mansection = 3; -+ installdir = sbin; -+}; -+ -+script = { - name = grub-set-default; - common = util/grub-set-default.in; - mansection = 8; diff --git a/configure.ac b/configure.ac -index 6850166..fc3c2b4 100644 +index 25e1abb59b9..58e57a745fa 100644 --- a/configure.ac +++ b/configure.ac -@@ -62,6 +62,7 @@ grub_TRANSFORM([grub-install]) +@@ -65,6 +65,7 @@ grub_TRANSFORM([grub-install]) grub_TRANSFORM([grub-mkconfig]) grub_TRANSFORM([grub-mkfont]) grub_TRANSFORM([grub-mkimage]) @@ -52,7 +34,7 @@ index 6850166..fc3c2b4 100644 grub_TRANSFORM([grub-glue-efi]) grub_TRANSFORM([grub-mklayout]) grub_TRANSFORM([grub-mkpasswd-pbkdf2]) -@@ -79,6 +80,7 @@ grub_TRANSFORM([grub-file]) +@@ -82,6 +83,7 @@ grub_TRANSFORM([grub-file]) grub_TRANSFORM([grub-bios-setup.3]) grub_TRANSFORM([grub-editenv.1]) grub_TRANSFORM([grub-fstest.3]) @@ -60,14 +42,33 @@ index 6850166..fc3c2b4 100644 grub_TRANSFORM([grub-glue-efi.3]) grub_TRANSFORM([grub-install.1]) grub_TRANSFORM([grub-kbdcomp.3]) +diff --git a/Makefile.util.def b/Makefile.util.def +index 8ca4c14f0b9..43a1c7453b1 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -733,6 +733,13 @@ script = { + installdir = sbin; + }; + ++script = { ++ name = grub-get-kernel-settings; ++ common = util/grub-get-kernel-settings.in; ++ mansection = 3; ++ installdir = sbin; ++}; ++ + script = { + name = grub-set-default; + common = util/grub-set-default.in; diff --git a/util/bash-completion.d/grub-completion.bash.in b/util/bash-completion.d/grub-completion.bash.in -index 44bf135..5c4acd4 100644 +index 44bf135b9f8..5c4acd496d4 100644 --- a/util/bash-completion.d/grub-completion.bash.in +++ b/util/bash-completion.d/grub-completion.bash.in -@@ -265,6 +265,28 @@ unset __grub_sparc64_setup_program +@@ -264,6 +264,28 @@ have ${__grub_sparc64_setup_program} && \ + unset __grub_sparc64_setup_program - # ++# +# grub-get-kernel-settings +# +_grub_get_kernel_settings () { @@ -89,13 +90,12 @@ index 44bf135..5c4acd4 100644 +unset __grub_get_kernel_settings_program + + -+# + # # grub-install # - _grub_install () { diff --git a/util/grub-get-kernel-settings.3 b/util/grub-get-kernel-settings.3 new file mode 100644 -index 0000000..ba33330 +index 00000000000..ba33330e28d --- /dev/null +++ b/util/grub-get-kernel-settings.3 @@ -0,0 +1,20 @@ @@ -121,7 +121,7 @@ index 0000000..ba33330 +.BR "info grub" diff --git a/util/grub-get-kernel-settings.in b/util/grub-get-kernel-settings.in new file mode 100644 -index 0000000..7e87dfc +index 00000000000..7e87dfccc0e --- /dev/null +++ b/util/grub-get-kernel-settings.in @@ -0,0 +1,88 @@ @@ -214,7 +214,7 @@ index 0000000..7e87dfc + echo export GRUB_UPDATE_DEFAULT_KERNEL +fi diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 4e7a875..6247a0b 100644 +index ba14cf6261c..005f093809b 100644 --- a/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in @@ -45,6 +45,7 @@ grub_probe="${sbindir}/@grub_probe@" @@ -231,11 +231,11 @@ index 4e7a875..6247a0b 100644 +eval "$("${grub_get_kernel_settings}")" || true + - if [ "x$GRUB_DISABLE_UUID" != "xtrue" ]; then - if [ -z "$GRUB_DEVICE_UUID" ]; then - GRUB_DEVICE_UUID="$GRUB_DEVICE_UUID_GENERATED" + if [ "x${GRUB_DISABLE_UUID}" = "xtrue" ]; then + if [ -z "${GRUB_DISABLE_LINUX_UUID}" ]; then + GRUB_DISABLE_LINUX_UUID="true" diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 12a20c9..55f4aa7 100644 +index 786dbabb4a8..292e333324b 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -111,7 +111,8 @@ linux_entry () @@ -258,7 +258,7 @@ index 12a20c9..55f4aa7 100644 echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/" else echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/" -@@ -295,11 +299,15 @@ while [ "x$list" != "x" ] ; do +@@ -306,11 +310,15 @@ while [ "x$list" != "x" ] ; do fi if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xtrue ]; then @@ -276,7 +276,7 @@ index 12a20c9..55f4aa7 100644 if [ -z "$boot_device_id" ]; then boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" fi -@@ -308,10 +316,15 @@ while [ "x$list" != "x" ] ; do +@@ -319,10 +327,15 @@ while [ "x$list" != "x" ] ; do is_top_level=false fi @@ -294,6 +294,3 @@ index 12a20c9..55f4aa7 100644 "single ${GRUB_CMDLINE_LINUX}" fi --- -1.8.3.1 - diff --git a/0039-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch b/0039-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch deleted file mode 100644 index 6507767..0000000 --- a/0039-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 72ffa52429b18c75f461c5dfa339c05b4bed2788 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 28 Oct 2013 10:13:27 -0400 -Subject: [PATCH 039/220] F10 doesn't work on serial, so don't tell the user to - hit it (#987443) - -Signed-off-by: Peter Jones ---- - grub-core/normal/menu_text.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c -index 537d4bf..452d55b 100644 ---- a/grub-core/normal/menu_text.c -+++ b/grub-core/normal/menu_text.c -@@ -157,7 +157,7 @@ print_message (int nested, int edit, struct grub_term_output *term, int dry_run) - - if (edit) - { -- ret += grub_print_message_indented_real (_("Press Ctrl-x or F10 to start, Ctrl-c or F2 for a \ -+ ret += grub_print_message_indented_real (_("Press Ctrl-x to start, Ctrl-c for a \ - command prompt or Escape to discard edits and return to the menu. Pressing Tab lists possible completions."), - STANDARD_MARGIN, STANDARD_MARGIN, - term, dry_run); --- -1.8.3.1 - diff --git a/0067-bz1374141-fix-incorrect-mask-for-ppc64.patch b/0039-bz1374141-fix-incorrect-mask-for-ppc64.patch similarity index 89% rename from 0067-bz1374141-fix-incorrect-mask-for-ppc64.patch rename to 0039-bz1374141-fix-incorrect-mask-for-ppc64.patch index bf2455a..ef992f5 100644 --- a/0067-bz1374141-fix-incorrect-mask-for-ppc64.patch +++ b/0039-bz1374141-fix-incorrect-mask-for-ppc64.patch @@ -1,7 +1,7 @@ -From 293c75639a43d2ff06fe4824cb306ed81e1aa5af Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Masahiro Matsuya Date: Sat, 29 Oct 2016 08:35:26 +0900 -Subject: [PATCH 067/220] bz1374141 fix incorrect mask for ppc64 +Subject: [PATCH] bz1374141 fix incorrect mask for ppc64 The netmask configured in firmware is not respected on ppc64 (big endian). When 255.255.252.0 is set as netmask in firmware, the following is the value of bootpath string in grub_ieee1275_parse_bootpath(). @@ -25,12 +25,15 @@ This patch changes it as below. 0000 0000 0000 0000 0000 0011 1111 1111 # ~grub_swap_bytes32(grub_le_to_cpu32 (subnet_mask.ipv4)) The count of zero with __builtin_clz can be 22. (clz counts the number of one bits preceding the most significant zero bit) + +Signed-off-by: Masahiro Matsuya +Signed-off-by: Robbie Harwood --- grub-core/net/drivers/ieee1275/ofnet.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/grub-core/net/drivers/ieee1275/ofnet.c b/grub-core/net/drivers/ieee1275/ofnet.c -index ac4e62a..3860b6f 100644 +index ac4e62a95c9..3860b6f78d8 100644 --- a/grub-core/net/drivers/ieee1275/ofnet.c +++ b/grub-core/net/drivers/ieee1275/ofnet.c @@ -220,8 +220,7 @@ grub_ieee1275_parse_bootpath (const char *devpath, char *bootpath, @@ -43,6 +46,3 @@ index ac4e62a..3860b6f 100644 } if (gateway_addr.ipv4 != 0) --- -1.8.3.1 - diff --git a/0068-Make-grub_fatal-also-backtrace.patch b/0040-Make-grub_fatal-also-backtrace.patch similarity index 91% rename from 0068-Make-grub_fatal-also-backtrace.patch rename to 0040-Make-grub_fatal-also-backtrace.patch index 29cac50..3534b05 100644 --- a/0068-Make-grub_fatal-also-backtrace.patch +++ b/0040-Make-grub_fatal-also-backtrace.patch @@ -1,7 +1,7 @@ -From fc5bc8610eb9e556ced1f1b91f9c4f34a51f3852 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 27 Jan 2016 09:22:42 -0500 -Subject: [PATCH 068/220] Make grub_fatal() also backtrace. +Subject: [PATCH] Make grub_fatal() also backtrace. --- grub-core/Makefile.core.def | 3 ++ @@ -13,10 +13,10 @@ Subject: [PATCH 068/220] Make grub_fatal() also backtrace. create mode 100644 grub-core/lib/arm64/backtrace.c diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 99466b1..ebc5580 100644 +index c15e91943b9..058c88ac3af 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def -@@ -186,6 +186,9 @@ kernel = { +@@ -188,6 +188,9 @@ kernel = { softdiv = lib/division.c; @@ -27,7 +27,7 @@ index 99466b1..ebc5580 100644 i386_xen = kern/i386/dl.c; i386_xen_pvh = kern/i386/dl.c; diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index 1c560ea..04371ac 100644 +index 63b586d09cb..a3e215155bd 100644 --- a/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c @@ -24,6 +24,7 @@ @@ -38,7 +38,7 @@ index 1c560ea..04371ac 100644 union printf_arg { -@@ -1101,8 +1102,13 @@ grub_xasprintf (const char *fmt, ...) +@@ -1199,8 +1200,13 @@ grub_printf_fmt_check (const char *fmt, const char *fmt_expected) static void __attribute__ ((noreturn)) grub_abort (void) { @@ -55,7 +55,7 @@ index 1c560ea..04371ac 100644 #endif diff --git a/grub-core/lib/arm64/backtrace.c b/grub-core/lib/arm64/backtrace.c new file mode 100644 -index 0000000..1079b53 +index 00000000000..1079b5380e1 --- /dev/null +++ b/grub-core/lib/arm64/backtrace.c @@ -0,0 +1,62 @@ @@ -122,7 +122,7 @@ index 0000000..1079b53 +} + diff --git a/grub-core/lib/backtrace.c b/grub-core/lib/backtrace.c -index 825a880..c0ad6ab 100644 +index 825a8800e25..c0ad6ab8be1 100644 --- a/grub-core/lib/backtrace.c +++ b/grub-core/lib/backtrace.c @@ -29,6 +29,7 @@ GRUB_MOD_LICENSE ("GPLv3+"); @@ -142,7 +142,7 @@ index 825a880..c0ad6ab 100644 } diff --git a/grub-core/lib/i386/backtrace.c b/grub-core/lib/i386/backtrace.c -index c3e03c7..c67273d 100644 +index c3e03c7275c..c67273db3ae 100644 --- a/grub-core/lib/i386/backtrace.c +++ b/grub-core/lib/i386/backtrace.c @@ -15,11 +15,23 @@ @@ -170,6 +170,3 @@ index c3e03c7..c67273d 100644 #include #include #include --- -1.8.3.1 - diff --git a/0041-Don-t-draw-a-border-around-the-menu.patch b/0041-Don-t-draw-a-border-around-the-menu.patch deleted file mode 100644 index e77973a..0000000 --- a/0041-Don-t-draw-a-border-around-the-menu.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 6d92979792752de9af962a75f399768c655ce92e Mon Sep 17 00:00:00 2001 -From: William Jon McCann -Date: Wed, 15 May 2013 16:47:33 -0400 -Subject: [PATCH 041/220] Don't draw a border around the menu - -It looks cleaner without it. ---- - grub-core/normal/menu_text.c | 43 ------------------------------------------- - 1 file changed, 43 deletions(-) - -diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c -index 452d55b..1ed2bd9 100644 ---- a/grub-core/normal/menu_text.c -+++ b/grub-core/normal/menu_text.c -@@ -108,47 +108,6 @@ grub_print_message_indented (const char *msg, int margin_left, int margin_right, - grub_print_message_indented_real (msg, margin_left, margin_right, term, 0); - } - --static void --draw_border (struct grub_term_output *term, const struct grub_term_screen_geometry *geo) --{ -- int i; -- -- grub_term_setcolorstate (term, GRUB_TERM_COLOR_NORMAL); -- -- grub_term_gotoxy (term, (struct grub_term_coordinate) { geo->first_entry_x - 1, -- geo->first_entry_y - 1 }); -- grub_putcode (GRUB_UNICODE_CORNER_UL, term); -- for (i = 0; i < geo->entry_width + 1; i++) -- grub_putcode (GRUB_UNICODE_HLINE, term); -- grub_putcode (GRUB_UNICODE_CORNER_UR, term); -- -- for (i = 0; i < geo->num_entries; i++) -- { -- grub_term_gotoxy (term, (struct grub_term_coordinate) { geo->first_entry_x - 1, -- geo->first_entry_y + i }); -- grub_putcode (GRUB_UNICODE_VLINE, term); -- grub_term_gotoxy (term, -- (struct grub_term_coordinate) { geo->first_entry_x + geo->entry_width + 1, -- geo->first_entry_y + i }); -- grub_putcode (GRUB_UNICODE_VLINE, term); -- } -- -- grub_term_gotoxy (term, -- (struct grub_term_coordinate) { geo->first_entry_x - 1, -- geo->first_entry_y - 1 + geo->num_entries + 1 }); -- grub_putcode (GRUB_UNICODE_CORNER_LL, term); -- for (i = 0; i < geo->entry_width + 1; i++) -- grub_putcode (GRUB_UNICODE_HLINE, term); -- grub_putcode (GRUB_UNICODE_CORNER_LR, term); -- -- grub_term_setcolorstate (term, GRUB_TERM_COLOR_NORMAL); -- -- grub_term_gotoxy (term, -- (struct grub_term_coordinate) { geo->first_entry_x - 1, -- (geo->first_entry_y - 1 + geo->num_entries -- + GRUB_TERM_MARGIN + 1) }); --} -- - static int - print_message (int nested, int edit, struct grub_term_output *term, int dry_run) - { -@@ -406,8 +365,6 @@ grub_menu_init_page (int nested, int edit, - - grub_term_normal_color = grub_color_menu_normal; - grub_term_highlight_color = grub_color_menu_highlight; -- if (geo->border) -- draw_border (term, geo); - grub_term_normal_color = old_color_normal; - grub_term_highlight_color = old_color_highlight; - geo->timeout_y = geo->first_entry_y + geo->num_entries --- -1.8.3.1 - diff --git a/0069-Fix-up-some-man-pages-rpmdiff-noticed.patch b/0041-Fix-up-some-man-pages-rpmdiff-noticed.patch similarity index 90% rename from 0069-Fix-up-some-man-pages-rpmdiff-noticed.patch rename to 0041-Fix-up-some-man-pages-rpmdiff-noticed.patch index c079cdc..be58417 100644 --- a/0069-Fix-up-some-man-pages-rpmdiff-noticed.patch +++ b/0041-Fix-up-some-man-pages-rpmdiff-noticed.patch @@ -1,7 +1,7 @@ -From b059bbecd37f4111fa514a6b7bbda9910325a0f5 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 23 Sep 2014 09:58:49 -0400 -Subject: [PATCH 069/220] Fix up some man pages rpmdiff noticed. +Subject: [PATCH] Fix up some man pages rpmdiff noticed. --- configure.ac | 2 ++ @@ -13,10 +13,10 @@ Subject: [PATCH 069/220] Fix up some man pages rpmdiff noticed. create mode 100644 util/grub-syslinux2cfg.1 diff --git a/configure.ac b/configure.ac -index fc3c2b4..eb851b8 100644 +index 58e57a745fa..a0030632220 100644 --- a/configure.ac +++ b/configure.ac -@@ -84,6 +84,7 @@ grub_TRANSFORM([grub-get-kernel-settings.3]) +@@ -87,6 +87,7 @@ grub_TRANSFORM([grub-get-kernel-settings.3]) grub_TRANSFORM([grub-glue-efi.3]) grub_TRANSFORM([grub-install.1]) grub_TRANSFORM([grub-kbdcomp.3]) @@ -24,7 +24,7 @@ index fc3c2b4..eb851b8 100644 grub_TRANSFORM([grub-menulst2cfg.1]) grub_TRANSFORM([grub-mkconfig.1]) grub_TRANSFORM([grub-mkfont.3]) -@@ -102,6 +103,7 @@ grub_TRANSFORM([grub-render-label.3]) +@@ -105,6 +106,7 @@ grub_TRANSFORM([grub-render-label.3]) grub_TRANSFORM([grub-script-check.3]) grub_TRANSFORM([grub-set-default.1]) grub_TRANSFORM([grub-sparc64-setup.3]) @@ -34,7 +34,7 @@ index fc3c2b4..eb851b8 100644 if test "x$TARGET_CFLAGS" = x; then diff --git a/util/grub-macbless.8 b/util/grub-macbless.8 new file mode 100644 -index 0000000..ae842f3 +index 00000000000..ae842f3a606 --- /dev/null +++ b/util/grub-macbless.8 @@ -0,0 +1,26 @@ @@ -65,7 +65,7 @@ index 0000000..ae842f3 +.SH SEE ALSO +.BR "info grub" diff --git a/util/grub-mkimage.1 b/util/grub-mkimage.1 -index 4dea4f5..0eaaafe 100644 +index 4dea4f54597..0eaaafe505b 100644 --- a/util/grub-mkimage.1 +++ b/util/grub-mkimage.1 @@ -17,7 +17,7 @@ @@ -79,7 +79,7 @@ index 4dea4f5..0eaaafe 100644 .TP diff --git a/util/grub-syslinux2cfg.1 b/util/grub-syslinux2cfg.1 new file mode 100644 -index 0000000..8530948 +index 00000000000..85309482718 --- /dev/null +++ b/util/grub-syslinux2cfg.1 @@ -0,0 +1,65 @@ @@ -148,6 +148,3 @@ index 0000000..8530948 + +.SH SEE ALSO +.BR "info grub" --- -1.8.3.1 - diff --git a/0071-Make-our-info-pages-say-grub2-where-appropriate.patch b/0042-Make-our-info-pages-say-grub2-where-appropriate.patch similarity index 89% rename from 0071-Make-our-info-pages-say-grub2-where-appropriate.patch rename to 0042-Make-our-info-pages-say-grub2-where-appropriate.patch index 2c19907..be28efd 100644 --- a/0071-Make-our-info-pages-say-grub2-where-appropriate.patch +++ b/0042-Make-our-info-pages-say-grub2-where-appropriate.patch @@ -1,7 +1,7 @@ -From 13afb4d63420d8e1578efc8f5a3fe66c9c14e88a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 9 Jul 2019 12:59:58 +0200 -Subject: [PATCH 071/220] Make our info pages say "grub2" where appropriate. +Subject: [PATCH] Make our info pages say "grub2" where appropriate. This needs to be hooked up to --program-transform=, but I haven't had time. @@ -9,11 +9,11 @@ time. Signed-off-by: Peter Jones --- docs/grub-dev.texi | 4 +- - docs/grub.texi | 318 ++++++++++++++++++++++++++--------------------------- - 2 files changed, 161 insertions(+), 161 deletions(-) + docs/grub.texi | 321 ++++++++++++++++++++++++++++------------------------- + 2 files changed, 171 insertions(+), 154 deletions(-) diff --git a/docs/grub-dev.texi b/docs/grub-dev.texi -index ee389fd..e3fed73 100644 +index 6c629a23e2d..19f708ee662 100644 --- a/docs/grub-dev.texi +++ b/docs/grub-dev.texi @@ -1,7 +1,7 @@ @@ -35,7 +35,7 @@ index ee389fd..e3fed73 100644 @setchapternewpage odd diff --git a/docs/grub.texi b/docs/grub.texi -index 221064b..960e5f3 100644 +index 69f08d289f9..0615d0ed97e 100644 --- a/docs/grub.texi +++ b/docs/grub.texi @@ -1,7 +1,7 @@ @@ -212,7 +212,7 @@ index 221064b..960e5f3 100644 # @kbd{umount /mnt} @end group @end example -@@ -689,16 +689,16 @@ floppy instead of exposing the USB drive as a hard disk (they call it +@@ -689,30 +689,37 @@ floppy instead of exposing the USB drive as a hard disk (they call it @example # @kbd{losetup /dev/loop0 /dev/sdb1} # @kbd{mount /dev/loop0 /mnt/usb} @@ -223,17 +223,14 @@ index 221064b..960e5f3 100644 This install doesn't conflict with standard install as long as they are in separate directories. --Note that @command{grub-install} is actually just a shell script and the --real task is done by other tools such as @command{grub-mkimage}. Therefore, +Note that @command{grub2-install} is actually just a shell script and the +real task is done by other tools such as @command{grub2-mkimage}. Therefore, - you may run those commands directly to install GRUB, without using --@command{grub-install}. Don't do that, however, unless you are very familiar ++you may run those commands directly to install GRUB, without using +@command{grub2-install}. Don't do that, however, unless you are very familiar - with the internals of GRUB. Installing a boot loader on a running OS may be - extremely dangerous. - -@@ -706,20 +706,20 @@ On EFI systems for fixed disk install you have to mount EFI System Partition. ++with the internals of GRUB. Installing a boot loader on a running OS may be ++extremely dangerous. ++ + On EFI systems for fixed disk install you have to mount EFI System Partition. If you mount it at @file{/boot/efi} then you don't need any special arguments: @example @@ -257,7 +254,7 @@ index 221064b..960e5f3 100644 @end example @node Making a GRUB bootable CD-ROM -@@ -739,10 +739,10 @@ usually also need to include a configuration file @file{grub.cfg} and some +@@ -732,10 +739,10 @@ usually also need to include a configuration file @file{grub.cfg} and some other GRUB modules. To make a simple generic GRUB rescue CD, you can use the @@ -270,7 +267,7 @@ index 221064b..960e5f3 100644 @end example You will often need to include other files in your image. To do this, first -@@ -765,7 +765,7 @@ directory @file{iso/}. +@@ -758,7 +765,7 @@ directory @file{iso/}. Finally, make the image: @example @@ -279,7 +276,7 @@ index 221064b..960e5f3 100644 @end example This produces a file named @file{grub.iso}, which then can be burned -@@ -781,7 +781,7 @@ storage devices. +@@ -774,7 +781,7 @@ storage devices. @node Device map @section The map between BIOS drives and OS devices @@ -288,7 +285,7 @@ index 221064b..960e5f3 100644 etc.) read it to map BIOS drives to OS devices. This file consists of lines like this: -@@ -1225,23 +1225,23 @@ need to write the whole thing by hand. +@@ -1254,23 +1261,23 @@ need to write the whole thing by hand. @node Simple configuration @section Simple configuration handling @@ -317,7 +314,7 @@ index 221064b..960e5f3 100644 valid POSIX shell input; normally, it will just be a sequence of @samp{KEY=value} lines, but if the value contains spaces or other special characters then it must be quoted. For example: -@@ -1279,7 +1279,7 @@ works it's not recommended since titles often contain unstable device names +@@ -1308,7 +1315,7 @@ works it's not recommended since titles often contain unstable device names and may be translated If you set this to @samp{saved}, then the default menu entry will be that @@ -326,7 +323,7 @@ index 221064b..960e5f3 100644 the environment block, which may not be available in all situations (@pxref{Environment block}). -@@ -1290,7 +1290,7 @@ If this option is set to @samp{true}, then, when an entry is selected, save +@@ -1319,7 +1326,7 @@ If this option is set to @samp{true}, then, when an entry is selected, save it as a new default entry for use by future runs of GRUB. This is only useful if @samp{GRUB_DEFAULT=saved}; it is a separate option because @samp{GRUB_DEFAULT=saved} is useful without this option, in conjunction with @@ -335,7 +332,7 @@ index 221064b..960e5f3 100644 This option relies on the environment block, which may not be available in all situations (@pxref{Environment block}). -@@ -1420,7 +1420,7 @@ intel-uc.img intel-ucode.img amd-uc.img amd-ucode.img early_ucode.cpio microcode +@@ -1449,7 +1456,7 @@ intel-uc.img intel-ucode.img amd-uc.img amd-ucode.img early_ucode.cpio microcode @end example @item GRUB_DISABLE_LINUX_UUID @@ -344,7 +341,7 @@ index 221064b..960e5f3 100644 universally-unique identifiers (UUIDs) to identify the root filesystem to the Linux kernel, using a @samp{root=UUID=...} kernel parameter. This is usually more reliable, but in some cases it may not be appropriate. To -@@ -1442,7 +1442,7 @@ If this option is set to @samp{true}, disable the generation of recovery +@@ -1471,7 +1478,7 @@ If this option is set to @samp{true}, disable the generation of recovery mode menu entries. @item GRUB_DISABLE_UUID @@ -353,7 +350,7 @@ index 221064b..960e5f3 100644 universally-unique identifiers (UUIDs) to identify various filesystems to search for files. This is usually more reliable, but in some cases it may not be appropriate. To disable this use of UUIDs, set this option to -@@ -1451,12 +1451,12 @@ not be appropriate. To disable this use of UUIDs, set this option to +@@ -1482,12 +1489,12 @@ not be appropriate. To disable this use of UUIDs, set this option to @item GRUB_VIDEO_BACKEND If graphical video support is required, either because the @samp{gfxterm} graphical terminal is in use or because @samp{GRUB_GFXPAYLOAD_LINUX} is set, @@ -369,7 +366,7 @@ index 221064b..960e5f3 100644 @item GRUB_GFXMODE Set the resolution used on the @samp{gfxterm} graphical terminal. Note that -@@ -1488,7 +1488,7 @@ boot sequence. If you have problems, set this option to @samp{text} and +@@ -1519,7 +1526,7 @@ boot sequence. If you have problems, set this option to @samp{text} and GRUB will tell Linux to boot in normal text mode. @item GRUB_DISABLE_OS_PROBER @@ -378,7 +375,7 @@ index 221064b..960e5f3 100644 @command{os-prober} program, if installed, to discover other operating systems installed on the same system and generate appropriate menu entries for them. Set this option to @samp{true} to disable this. -@@ -1498,7 +1498,7 @@ List of space-separated FS UUIDs of filesystems to be ignored from os-prober +@@ -1529,7 +1536,7 @@ List of space-separated FS UUIDs of filesystems to be ignored from os-prober output. For efi chainloaders it's @@ @item GRUB_DISABLE_SUBMENU @@ -387,7 +384,7 @@ index 221064b..960e5f3 100644 the kernel with highest version number and put all other found kernels or alternative menu entries for recovery mode in submenu. For entries returned by @command{os-prober} first entry will be put on top level and all others -@@ -1506,11 +1506,11 @@ in submenu. If this option is set to @samp{y}, flat menu with all entries +@@ -1537,11 +1544,11 @@ in submenu. If this option is set to @samp{true}, flat menu with all entries on top level will be generated instead. Changing this option will require changing existing values of @samp{GRUB_DEFAULT}, @samp{fallback} (@pxref{fallback}) and @samp{default} (@pxref{default}) environment variables as well as saved @@ -402,7 +399,7 @@ index 221064b..960e5f3 100644 check for encrypted disks and generate additional commands needed to access them during boot. Note that in this case unattended boot is not possible because GRUB will wait for passphrase to unlock encrypted container. -@@ -1569,7 +1569,7 @@ confusing @samp{GRUB_TIMEOUT_STYLE=countdown} or +@@ -1600,7 +1607,7 @@ confusing @samp{GRUB_TIMEOUT_STYLE=countdown} or @end table @@ -411,7 +408,7 @@ index 221064b..960e5f3 100644 edit the scripts in @file{/etc/grub.d} directly. @file{/etc/grub.d/40_custom} is particularly useful for adding entire custom menu entries; simply type the menu entries you want to add at the end of -@@ -1831,7 +1831,7 @@ images as well. +@@ -1862,7 +1869,7 @@ images as well. Mount this partition on/mnt/boot and disable GRUB in all OSes and manually install self-compiled latest GRUB with: @@ -420,7 +417,7 @@ index 221064b..960e5f3 100644 In all the OSes install GRUB tools but disable installing GRUB in bootsector, so you'll have menu.lst and grub.cfg available for use. Also disable os-prober -@@ -1841,20 +1841,20 @@ use by setting: +@@ -1872,20 +1879,20 @@ use by setting: in /etc/default/grub @@ -444,7 +441,7 @@ index 221064b..960e5f3 100644 @} menuentry "Windows XP" @{ -@@ -1917,15 +1917,15 @@ GRUB supports embedding a configuration file directly into the core image, +@@ -1948,15 +1955,15 @@ GRUB supports embedding a configuration file directly into the core image, so that it is loaded before entering normal mode. This is useful, for example, when it is not straightforward to find the real configuration file, or when you need to debug problems with loading that file. @@ -463,7 +460,7 @@ index 221064b..960e5f3 100644 After the embedded configuration file (if any) is executed, GRUB will load the @samp{normal} module (@pxref{normal}), which will then read the real -@@ -1960,13 +1960,13 @@ included in the core image: +@@ -1991,13 +1998,13 @@ included in the core image: @example @group search.fs_label grub root @@ -481,7 +478,7 @@ index 221064b..960e5f3 100644 else echo "Could not find an example configuration file!" fi -@@ -2490,7 +2490,7 @@ grub-mknetdir --net-directory=/srv/tftp --subdir=/boot/grub -d /usr/lib/grub/i38 +@@ -2521,7 +2528,7 @@ grub-mknetdir --net-directory=/srv/tftp --subdir=/boot/grub -d /usr/lib/grub/i38 @end group @end example @@ -490,7 +487,7 @@ index 221064b..960e5f3 100644 server. The grub.cfg file is placed in the same directory as the path output by -@@ -2675,7 +2675,7 @@ team are: +@@ -2715,7 +2722,7 @@ team are: @end table To take full advantage of this function, install GRUB into the MBR @@ -499,7 +496,7 @@ index 221064b..960e5f3 100644 If you have a laptop which has a similar feature and not in the above list could you figure your address and contribute? -@@ -2736,7 +2736,7 @@ bytes. +@@ -2776,7 +2783,7 @@ bytes. The sole function of @file{boot.img} is to read the first sector of the core image from a local disk and jump to it. Because of the size restriction, @file{boot.img} cannot understand any file system structure, so @@ -508,7 +505,7 @@ index 221064b..960e5f3 100644 core image into @file{boot.img} when installing GRUB. @item diskboot.img -@@ -2766,7 +2766,7 @@ images. +@@ -2806,7 +2813,7 @@ images. @item core.img This is the core image of GRUB. It is built dynamically from the kernel @@ -517,7 +514,7 @@ index 221064b..960e5f3 100644 program. Usually, it contains enough modules to access @file{/boot/grub}, and loads everything else (including menu handling, the ability to load target operating systems, and so on) from the file system at run-time. The -@@ -2818,7 +2818,7 @@ GRUB 2 has no single Stage 2 image. Instead, it loads modules from +@@ -2858,7 +2865,7 @@ GRUB 2 has no single Stage 2 image. Instead, it loads modules from In GRUB 2, images for booting from CD-ROM drives are now constructed using @file{cdboot.img} and @file{core.img}, making sure that the core image contains the @samp{iso9660} module. It is usually best to use the @@ -526,7 +523,7 @@ index 221064b..960e5f3 100644 @item nbgrub There is as yet no equivalent for @file{nbgrub} in GRUB 2; it was used by -@@ -2974,8 +2974,8 @@ There are two ways to specify files, by @dfn{absolute file name} and by +@@ -3014,8 +3021,8 @@ There are two ways to specify files, by @dfn{absolute file name} and by An absolute file name resembles a Unix absolute file name, using @samp{/} for the directory separator (not @samp{\} as in DOS). One @@ -537,7 +534,7 @@ index 221064b..960e5f3 100644 disk. If you omit the device name in an absolute file name, GRUB uses GRUB's @dfn{root device} implicitly. So if you set the root device to, say, @samp{(hd1,1)} by the command @samp{set root=(hd1,1)} (@pxref{set}), -@@ -2983,8 +2983,8 @@ then @code{/boot/kernel} is the same as @code{(hd1,1)/boot/kernel}. +@@ -3023,8 +3030,8 @@ then @code{/boot/kernel} is the same as @code{(hd1,1)/boot/kernel}. On ZFS filesystem the first path component must be @var{volume}@samp{@@}[@var{snapshot}]. @@ -548,7 +545,7 @@ index 221064b..960e5f3 100644 @samp{snap-129}. Trailing @samp{@@} after volume name is mandatory even if snapshot name is omitted. -@@ -3387,7 +3387,7 @@ The more recent release of Minix would then be identified as +@@ -3427,7 +3434,7 @@ The more recent release of Minix would then be identified as @samp{other>minix>minix-3.4.0}. This variable is often set by @samp{GRUB_DEFAULT} (@pxref{Simple @@ -557,7 +554,7 @@ index 221064b..960e5f3 100644 @node fallback -@@ -3477,7 +3477,7 @@ If this variable is set, it names the language code that the +@@ -3517,7 +3524,7 @@ If this variable is set, it names the language code that the example, French would be named as @samp{fr}, and Simplified Chinese as @samp{zh_CN}. @@ -566,7 +563,7 @@ index 221064b..960e5f3 100644 reasonable default for this variable based on the system locale. -@@ -3485,10 +3485,10 @@ reasonable default for this variable based on the system locale. +@@ -3525,10 +3532,10 @@ reasonable default for this variable based on the system locale. @subsection locale_dir If this variable is set, it names the directory where translation files may @@ -579,7 +576,7 @@ index 221064b..960e5f3 100644 default for this variable if internationalization is needed and any translation files are available. -@@ -3606,7 +3606,7 @@ input. The default is not to pause output. +@@ -3646,7 +3653,7 @@ input. The default is not to pause output. The location of the @samp{/boot/grub} directory as an absolute file name (@pxref{File name syntax}). This is normally set by GRUB at startup based @@ -588,7 +585,7 @@ index 221064b..960e5f3 100644 dynamically loaded from this directory, so it must be set correctly in order for many parts of GRUB to work. -@@ -3697,17 +3697,17 @@ GRUB provides an ``environment block'' which can be used to save a small +@@ -3737,17 +3744,17 @@ GRUB provides an ``environment block'' which can be used to save a small amount of state. The environment block is a preallocated 1024-byte file, which normally lives @@ -609,7 +606,7 @@ index 221064b..960e5f3 100644 @samp{GRUB_SAVEDEFAULT} (@pxref{Simple configuration}). -@@ -4398,7 +4398,7 @@ Translate @var{string} into the current language. +@@ -4476,7 +4483,7 @@ Translate @var{string} into the current language. The current language code is stored in the @samp{lang} variable in GRUB's environment (@pxref{lang}). Translation files in MO format are read from @@ -618,7 +615,7 @@ index 221064b..960e5f3 100644 @end deffn -@@ -4793,7 +4793,7 @@ Define a user named @var{user} with password @var{clear-password}. +@@ -4871,7 +4878,7 @@ Define a user named @var{user} with password @var{clear-password}. @deffn Command password_pbkdf2 user hashed-password Define a user named @var{user} with password hash @var{hashed-password}. @@ -627,7 +624,7 @@ index 221064b..960e5f3 100644 to generate password hashes. @xref{Security}. @end deffn -@@ -5651,8 +5651,8 @@ The @samp{password} (@pxref{password}) and @samp{password_pbkdf2} +@@ -5814,8 +5821,8 @@ The @samp{password} (@pxref{password}) and @samp{password_pbkdf2} which has an associated password. @samp{password} sets the password in plain text, requiring @file{grub.cfg} to be secure; @samp{password_pbkdf2} sets the password hashed using the Password-Based Key Derivation Function @@ -638,7 +635,7 @@ index 221064b..960e5f3 100644 In order to enable authentication support, the @samp{superusers} environment variable must be set to a list of usernames, separated by any of spaces, -@@ -5696,7 +5696,7 @@ menuentry "May be run by user1 or a superuser" --users user1 @{ +@@ -5860,7 +5867,7 @@ menuentry "May be run by user1 or a superuser" --users user1 @{ @end group @end example @@ -647,28 +644,26 @@ index 221064b..960e5f3 100644 generating configuration files with authentication. You can use @file{/etc/grub.d/40_custom} to add simple superuser authentication, by adding @kbd{set superusers=} and @kbd{password} or @kbd{password_pbkdf2} -@@ -5721,15 +5721,15 @@ verified with a public key currently trusted by GRUB - validation fails, then file @file{foo} cannot be opened. This failure - may halt or otherwise impact the boot process. +@@ -5887,7 +5894,17 @@ may halt or otherwise impact the boot process. --@comment Unfortunately --pubkey is not yet supported by grub-install, --@comment but we should not bring up internal detail grub-mkimage here + An initial trusted public key can be embedded within the GRUB @file{core.img} + using the @code{--pubkey} option to @command{grub-install} +-(@pxref{Invoking grub-install}). ++(@pxref{Invoking grub2-install}). ++ +@comment Unfortunately --pubkey is not yet supported by grub2-install, +@comment but we should not bring up internal detail grub2-mkimage here - @comment in the user guide (as opposed to developer's manual). - - @comment An initial trusted public key can be embedded within the GRUB - @comment @file{core.img} using the @code{--pubkey} option to --@comment @command{grub-mkimage} (@pxref{Invoking grub-install}). Presently it --@comment is necessary to write a custom wrapper around @command{grub-mkimage} --@comment using the @code{--grub-mkimage} flag to @command{grub-install}. ++@comment in the user guide (as opposed to developer's manual). ++ ++@comment An initial trusted public key can be embedded within the GRUB ++@comment @file{core.img} using the @code{--pubkey} option to +@comment @command{grub2-mkimage} (@pxref{Invoking grub2-install}). Presently it +@comment is necessary to write a custom wrapper around @command{grub2-mkimage} +@comment using the @code{--grub-mkimage} flag to @command{grub2-install}. GRUB uses GPG-style detached signatures (meaning that a file @file{foo.sig} will be produced when file @file{foo} is signed), and -@@ -5749,8 +5749,8 @@ gpg --detach-sign /path/to/file +@@ -5907,8 +5924,8 @@ gpg --detach-sign /path/to/file For successful validation of all of GRUB's subcomponents and the loaded OS kernel, they must all be signed. One way to accomplish this is the following (after having already produced the desired @@ -679,7 +674,7 @@ index 221064b..960e5f3 100644 @example @group -@@ -5772,7 +5772,7 @@ See also: @ref{check_signatures}, @ref{verify_detached}, @ref{trust}, +@@ -5930,7 +5947,7 @@ See also: @ref{check_signatures}, @ref{verify_detached}, @ref{trust}, Note that internally signature enforcement is controlled by setting the environment variable @code{check_signatures} equal to @code{enforce}. Passing one or more @code{--pubkey} options to @@ -688,7 +683,7 @@ index 221064b..960e5f3 100644 equal to @code{enforce} in @file{core.img} prior to processing any configuration files. -@@ -6189,10 +6189,10 @@ Required files are: +@@ -6388,10 +6405,10 @@ Required files are: GRUB's normal start-up procedure involves setting the @samp{prefix} environment variable to a value set in the core image by @@ -701,7 +696,7 @@ index 221064b..960e5f3 100644 things GRUB is supposed to do. If, instead, you only get a rescue shell, this usually means that GRUB -@@ -6218,8 +6218,8 @@ normal +@@ -6417,8 +6434,8 @@ normal However, any problem that leaves you in the rescue shell probably means that GRUB was not correctly installed. It may be more useful to try to reinstall @@ -712,7 +707,7 @@ index 221064b..960e5f3 100644 @itemize @bullet{} @item -@@ -6231,7 +6231,7 @@ is usually better to use UUIDs or file system labels and avoid depending on +@@ -6430,7 +6447,7 @@ is usually better to use UUIDs or file system labels and avoid depending on drive ordering entirely. @item @@ -721,7 +716,7 @@ index 221064b..960e5f3 100644 to a partition but GRUB has already been installed in the master boot record, then the GRUB installation in the partition will be ignored. -@@ -6262,21 +6262,21 @@ entry which claims partition start at block 0. This change will not hamper +@@ -6461,21 +6478,21 @@ entry which claims partition start at block 0. This change will not hamper bootability on other machines. @@ -749,7 +744,7 @@ index 221064b..960e5f3 100644 @table @option @item --help -@@ -6292,13 +6292,13 @@ separate partition or a removable disk. +@@ -6491,13 +6508,13 @@ separate partition or a removable disk. If this option is not specified then it defaults to @file{/boot}, so @example @@ -765,7 +760,7 @@ index 221064b..960e5f3 100644 @end example Here is an example in which you have a separate @dfn{boot} partition which is -@@ -6306,16 +6306,16 @@ mounted on +@@ -6505,16 +6522,16 @@ mounted on @file{/mnt/boot}: @example @@ -785,7 +780,7 @@ index 221064b..960e5f3 100644 extra space in the bootloader embedding area for Reed-Solomon error-correcting codes. This enables GRUB to still boot successfully if some blocks are corrupted. The exact amount of protection offered -@@ -6328,17 +6328,17 @@ installation}) where GRUB does not reside in any unpartitioned space +@@ -6527,17 +6544,17 @@ installation}) where GRUB does not reside in any unpartitioned space outside of the MBR. Disable the Reed-Solomon codes with this option. @end table @@ -808,7 +803,7 @@ index 221064b..960e5f3 100644 @table @option @item --help -@@ -6354,17 +6354,17 @@ it to standard output. +@@ -6553,17 +6570,17 @@ it to standard output. @end table @@ -830,7 +825,7 @@ index 221064b..960e5f3 100644 @table @option @item -c @var{number} -@@ -6382,23 +6382,23 @@ Length of the salt. Defaults to 64. +@@ -6581,23 +6598,23 @@ Length of the salt. Defaults to 64. @end table @@ -860,7 +855,7 @@ index 221064b..960e5f3 100644 @table @option @item --help -@@ -6409,17 +6409,17 @@ Print the version number of GRUB and exit. +@@ -6608,17 +6625,17 @@ Print the version number of GRUB and exit. @end table @@ -882,7 +877,7 @@ index 221064b..960e5f3 100644 passed on directly to @command{xorriso} in @command{mkisofs} emulation mode. Options passed to @command{xorriso} will normally be interpreted as @command{mkisofs} options; if the option @samp{--} is used, then anything -@@ -6434,7 +6434,7 @@ mkdir -p disk/boot/grub +@@ -6633,7 +6650,7 @@ mkdir -p disk/boot/grub grub-mkrescue -o grub.iso disk @end example @@ -891,7 +886,7 @@ index 221064b..960e5f3 100644 @table @option @item --help -@@ -6462,15 +6462,15 @@ Use @var{file} as the @command{xorriso} program, rather than the built-in +@@ -6661,15 +6678,15 @@ Use @var{file} as the @command{xorriso} program, rather than the built-in default. @item --grub-mkimage=@var{file} @@ -911,7 +906,7 @@ index 221064b..960e5f3 100644 system or file system image that GRUB understands, using GRUB's file system drivers via FUSE. (It is only available if FUSE development files were present when GRUB was built.) This has a number of uses: -@@ -6502,13 +6502,13 @@ even if nobody has yet written a FUSE module specifically for that file +@@ -6701,13 +6718,13 @@ even if nobody has yet written a FUSE module specifically for that file system type. @end itemize @@ -927,7 +922,7 @@ index 221064b..960e5f3 100644 non-option arguments (if it is given more than one image, it will treat them as a RAID set), and also accepts the following options: -@@ -6530,13 +6530,13 @@ Show debugging output for conditions matching @var{string}. +@@ -6729,13 +6746,13 @@ Show debugging output for conditions matching @var{string}. @item -K prompt|@var{file} @itemx --zfs-key=prompt|@var{file} Load a ZFS encryption key. If you use @samp{prompt} as the argument, @@ -943,7 +938,7 @@ index 221064b..960e5f3 100644 root of the supplied file system. If @var{device} is just a number, then it will be treated as a partition -@@ -6554,10 +6554,10 @@ Print verbose messages. +@@ -6753,10 +6770,10 @@ Print verbose messages. @end table @@ -957,7 +952,7 @@ index 221064b..960e5f3 100644 or device. @example -@@ -6565,7 +6565,7 @@ grub-probe --target=fs /boot/grub +@@ -6764,7 +6781,7 @@ grub-probe --target=fs /boot/grub grub-probe --target=drive --device /dev/sda1 @end example @@ -966,7 +961,7 @@ index 221064b..960e5f3 100644 argument, and also accepts the following options: @table @option -@@ -6578,16 +6578,16 @@ Print the version number of GRUB and exit. +@@ -6777,16 +6794,16 @@ Print the version number of GRUB and exit. @item -d @itemx --device If this option is given, then the non-option argument is a system device @@ -986,7 +981,7 @@ index 221064b..960e5f3 100644 @item -t @var{target} @itemx --target=@var{target} -@@ -6640,19 +6640,19 @@ Print verbose messages. +@@ -6839,19 +6856,19 @@ Print verbose messages. @end table @@ -1011,6 +1006,3 @@ index 221064b..960e5f3 100644 @table @option @item --help --- -1.8.3.1 - diff --git a/0042-Use-the-standard-margin-for-the-timeout-string.patch b/0042-Use-the-standard-margin-for-the-timeout-string.patch deleted file mode 100644 index 315c176..0000000 --- a/0042-Use-the-standard-margin-for-the-timeout-string.patch +++ /dev/null @@ -1,43 +0,0 @@ -From ead897508b29261ccf87aa46e778863a351737b2 Mon Sep 17 00:00:00 2001 -From: William Jon McCann -Date: Fri, 7 Jun 2013 10:52:32 -0400 -Subject: [PATCH 042/220] Use the standard margin for the timeout string - -So that it aligns with the other messages ---- - grub-core/normal/menu_text.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c -index 1ed2bd9..7681f7d 100644 ---- a/grub-core/normal/menu_text.c -+++ b/grub-core/normal/menu_text.c -@@ -372,7 +372,7 @@ grub_menu_init_page (int nested, int edit, - if (bottom_message) - { - grub_term_gotoxy (term, -- (struct grub_term_coordinate) { GRUB_TERM_MARGIN, -+ (struct grub_term_coordinate) { STANDARD_MARGIN, - geo->timeout_y }); - - print_message (nested, edit, term, 0); -@@ -407,14 +407,14 @@ menu_text_print_timeout (int timeout, void *dataptr) - if (data->timeout_msg == TIMEOUT_UNKNOWN) - { - data->timeout_msg = grub_print_message_indented_real (msg_translated, -- 3, 1, data->term, 1) -+ STANDARD_MARGIN, 1, data->term, 1) - <= data->geo.timeout_lines ? TIMEOUT_NORMAL : TIMEOUT_TERSE; - if (data->timeout_msg == TIMEOUT_TERSE) - { - grub_free (msg_translated); - msg_translated = grub_xasprintf (_("%ds"), timeout); - if (grub_term_width (data->term) < 10) -- data->timeout_msg = TIMEOUT_TERSE_NO_MARGIN; -+ data->timeout_msg = STANDARD_MARGIN; - } - } - --- -1.8.3.1 - diff --git a/0073-macos-just-build-chainloader-entries-don-t-try-any-x.patch b/0043-macos-just-build-chainloader-entries-don-t-try-any-x.patch similarity index 95% rename from 0073-macos-just-build-chainloader-entries-don-t-try-any-x.patch rename to 0043-macos-just-build-chainloader-entries-don-t-try-any-x.patch index daf186f..574d117 100644 --- a/0073-macos-just-build-chainloader-entries-don-t-try-any-x.patch +++ b/0043-macos-just-build-chainloader-entries-don-t-try-any-x.patch @@ -1,8 +1,7 @@ -From 86b5e0f596cd6266c48dd1829d97f0debb5dc5c6 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 12:42:32 -0400 -Subject: [PATCH 073/220] macos: just build chainloader entries, don't try any - xnu xnu. +Subject: [PATCH] macos: just build chainloader entries, don't try any xnu xnu. Since our bugs tell us that the xnu boot entries really just don't work most of the time, and they create piles of extra boot entries, because @@ -21,7 +20,7 @@ Signed-off-by: Peter Jones 1 file changed, 18 insertions(+), 60 deletions(-) diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in -index 9b8f596..13a3a6b 100644 +index 1b91c102f35..4b27bd20153 100644 --- a/util/grub.d/30_os-prober.in +++ b/util/grub.d/30_os-prober.in @@ -42,68 +42,25 @@ if [ -z "${OSPROBED}" ] ; then @@ -105,7 +104,7 @@ index 9b8f596..13a3a6b 100644 } EOF } -@@ -284,11 +241,12 @@ EOF +@@ -292,11 +249,12 @@ EOF echo "$title_correction_code" ;; macosx) @@ -123,6 +122,3 @@ index 9b8f596..13a3a6b 100644 ;; hurd) onstr="$(gettext_printf "(on %s)" "${DEVICE}")" --- -1.8.3.1 - diff --git a/0044-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch b/0044-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch deleted file mode 100644 index 5e886d4..0000000 --- a/0044-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 6fa778275c0765f9d2535118ba0a37065dded86f Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 30 Jun 2014 14:16:46 -0400 -Subject: [PATCH 044/220] Don't munge raw spaces when we're doing our cmdline - escaping (#923374) - -Signed-off-by: Peter Jones ---- - grub-core/lib/cmdline.c | 11 +---------- - 1 file changed, 1 insertion(+), 10 deletions(-) - -diff --git a/grub-core/lib/cmdline.c b/grub-core/lib/cmdline.c -index e0fb0a9..8e2294d 100644 ---- a/grub-core/lib/cmdline.c -+++ b/grub-core/lib/cmdline.c -@@ -98,16 +98,7 @@ grub_create_loader_cmdline (int argc, char *argv[], char *buf, - - while (*c) - { -- if (*c == ' ') -- { -- *buf++ = '\\'; -- *buf++ = 'x'; -- *buf++ = '2'; -- *buf++ = '0'; -- c++; -- continue; -- } -- else if (*c == '\\' && *(c+1) == 'x' && -+ if (*c == '\\' && *(c+1) == 'x' && - is_hex(*(c+2)) && is_hex(*(c+3))) - { - *buf++ = *c++; --- -1.8.3.1 - diff --git a/0074-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch b/0044-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch similarity index 89% rename from 0074-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch rename to 0044-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch index fecc1f6..68dfc1d 100644 --- a/0074-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch +++ b/0044-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch @@ -1,7 +1,7 @@ -From 4f25cd0b089dadc0be92e9226fd1eb9e2dda594f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jeff Mahoney Date: Tue, 9 Jul 2019 13:39:45 +0200 -Subject: [PATCH 074/220] grub2/btrfs: Add ability to boot from subvolumes +Subject: [PATCH] grub2/btrfs: Add ability to boot from subvolumes This patch adds the ability to specify a different root on a btrfs filesystem too boot from other than the default one. @@ -19,12 +19,12 @@ variable and loading the config file from the subvolume. Signed-off-by: Jeff Mahoney --- - grub-core/fs/btrfs.c | 548 +++++++++++++++++++++++++++++++++++++++++++++++++-- + grub-core/fs/btrfs.c | 552 +++++++++++++++++++++++++++++++++++++++++++++++++-- include/grub/btrfs.h | 1 + - 2 files changed, 531 insertions(+), 18 deletions(-) + 2 files changed, 533 insertions(+), 20 deletions(-) diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 48bd3d0..6823d97 100644 +index 63203034dfc..f1fff7385b5 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c @@ -38,6 +38,9 @@ @@ -36,8 +36,8 @@ index 48bd3d0..6823d97 100644 +#include #include #include - -@@ -78,9 +81,11 @@ struct grub_btrfs_superblock + #include +@@ -79,9 +82,11 @@ struct grub_btrfs_superblock grub_uint64_t generation; grub_uint64_t root_tree; grub_uint64_t chunk_tree; @@ -51,7 +51,7 @@ index 48bd3d0..6823d97 100644 struct grub_btrfs_device this_device; char label[0x100]; grub_uint8_t dummy4[0x100]; -@@ -120,6 +125,7 @@ struct grub_btrfs_data +@@ -121,6 +126,7 @@ struct grub_btrfs_data grub_uint64_t exttree; grub_size_t extsize; struct grub_btrfs_extent_data *extent; @@ -59,7 +59,7 @@ index 48bd3d0..6823d97 100644 }; struct grub_btrfs_chunk_item -@@ -188,6 +194,14 @@ struct grub_btrfs_leaf_descriptor +@@ -191,6 +197,14 @@ struct grub_btrfs_leaf_descriptor } *data; }; @@ -74,7 +74,7 @@ index 48bd3d0..6823d97 100644 struct grub_btrfs_time { grub_int64_t sec; -@@ -233,6 +247,14 @@ struct grub_btrfs_extent_data +@@ -236,6 +250,14 @@ struct grub_btrfs_extent_data #define GRUB_BTRFS_OBJECT_ID_CHUNK 0x100 @@ -89,7 +89,7 @@ index 48bd3d0..6823d97 100644 static grub_disk_addr_t superblock_sectors[] = { 64 * 2, 64 * 1024 * 2, 256 * 1048576 * 2, 1048576ULL * 1048576ULL * 2 }; -@@ -1153,6 +1175,62 @@ grub_btrfs_read_logical (struct grub_btrfs_data *data, grub_disk_addr_t addr, +@@ -1173,6 +1195,62 @@ grub_btrfs_read_logical (struct grub_btrfs_data *data, grub_disk_addr_t addr, return GRUB_ERR_NONE; } @@ -152,7 +152,7 @@ index 48bd3d0..6823d97 100644 static struct grub_btrfs_data * grub_btrfs_mount (grub_device_t dev) { -@@ -1188,6 +1266,13 @@ grub_btrfs_mount (grub_device_t dev) +@@ -1208,6 +1286,13 @@ grub_btrfs_mount (grub_device_t dev) data->devices_attached[0].dev = dev; data->devices_attached[0].id = data->sblock.this_device.device_id; @@ -166,10 +166,11 @@ index 48bd3d0..6823d97 100644 return data; } -@@ -1654,6 +1739,91 @@ get_root (struct grub_btrfs_data *data, struct grub_btrfs_key *key, +@@ -1673,6 +1758,91 @@ get_root (struct grub_btrfs_data *data, struct grub_btrfs_key *key, + return GRUB_ERR_NONE; } - static grub_err_t ++static grub_err_t +find_pathname(struct grub_btrfs_data *data, grub_uint64_t objectid, + grub_uint64_t fs_root, const char *name, char **pathname) +{ @@ -254,11 +255,10 @@ index 48bd3d0..6823d97 100644 + return 0; +} + -+static grub_err_t + static grub_err_t find_path (struct grub_btrfs_data *data, const char *path, struct grub_btrfs_key *key, - grub_uint64_t *tree, grub_uint8_t *type) -@@ -1671,14 +1841,26 @@ find_path (struct grub_btrfs_data *data, +@@ -1691,14 +1861,26 @@ find_path (struct grub_btrfs_data *data, char *origpath = NULL; unsigned symlinks_max = 32; @@ -289,7 +289,7 @@ index 48bd3d0..6823d97 100644 while (1) { while (path[0] == '/') -@@ -1851,9 +2033,21 @@ find_path (struct grub_btrfs_data *data, +@@ -1871,9 +2053,21 @@ find_path (struct grub_btrfs_data *data, path = path_alloc = tmp; if (path[0] == '/') { @@ -314,45 +314,50 @@ index 48bd3d0..6823d97 100644 } continue; } -@@ -2094,6 +2288,20 @@ grub_btrfs_read (grub_file_t file, char *buf, grub_size_t len) +@@ -2114,18 +2308,10 @@ grub_btrfs_read (grub_file_t file, char *buf, grub_size_t len) data->tree, file->offset, buf, len); } +-static grub_err_t +-grub_btrfs_uuid (grub_device_t device, char **uuid) +static char * +btrfs_unparse_uuid(struct grub_btrfs_data *data) -+{ + { +- struct grub_btrfs_data *data; +- +- *uuid = NULL; +- +- data = grub_btrfs_mount (device); +- if (!data) +- return grub_errno; +- +- *uuid = grub_xasprintf ("%04x%04x-%04x-%04x-%04x-%04x%04x%04x", + return grub_xasprintf ("%04x%04x-%04x-%04x-%04x-%04x%04x%04x", -+ grub_be_to_cpu16 (data->sblock.uuid[0]), -+ grub_be_to_cpu16 (data->sblock.uuid[1]), -+ grub_be_to_cpu16 (data->sblock.uuid[2]), -+ grub_be_to_cpu16 (data->sblock.uuid[3]), -+ grub_be_to_cpu16 (data->sblock.uuid[4]), -+ grub_be_to_cpu16 (data->sblock.uuid[5]), -+ grub_be_to_cpu16 (data->sblock.uuid[6]), -+ grub_be_to_cpu16 (data->sblock.uuid[7])); + grub_be_to_cpu16 (data->sblock.uuid[0]), + grub_be_to_cpu16 (data->sblock.uuid[1]), + grub_be_to_cpu16 (data->sblock.uuid[2]), +@@ -2134,6 +2320,20 @@ grub_btrfs_uuid (grub_device_t device, char **uuid) + grub_be_to_cpu16 (data->sblock.uuid[5]), + grub_be_to_cpu16 (data->sblock.uuid[6]), + grub_be_to_cpu16 (data->sblock.uuid[7])); +} + - static grub_err_t - grub_btrfs_uuid (grub_device_t device, char **uuid) - { -@@ -2105,15 +2313,7 @@ grub_btrfs_uuid (grub_device_t device, char **uuid) - if (!data) - return grub_errno; - -- *uuid = grub_xasprintf ("%04x%04x-%04x-%04x-%04x-%04x%04x%04x", -- grub_be_to_cpu16 (data->sblock.uuid[0]), -- grub_be_to_cpu16 (data->sblock.uuid[1]), -- grub_be_to_cpu16 (data->sblock.uuid[2]), -- grub_be_to_cpu16 (data->sblock.uuid[3]), -- grub_be_to_cpu16 (data->sblock.uuid[4]), -- grub_be_to_cpu16 (data->sblock.uuid[5]), -- grub_be_to_cpu16 (data->sblock.uuid[6]), -- grub_be_to_cpu16 (data->sblock.uuid[7])); ++static grub_err_t ++grub_btrfs_uuid (grub_device_t device, char **uuid) ++{ ++ struct grub_btrfs_data *data; ++ ++ *uuid = NULL; ++ ++ data = grub_btrfs_mount (device); ++ if (!data) ++ return grub_errno; ++ + *uuid = btrfs_unparse_uuid(data); grub_btrfs_unmount (data); -@@ -2170,6 +2370,242 @@ grub_btrfs_embed (grub_device_t device __attribute__ ((unused)), +@@ -2190,6 +2390,242 @@ grub_btrfs_embed (grub_device_t device __attribute__ ((unused)), } #endif @@ -595,7 +600,7 @@ index 48bd3d0..6823d97 100644 static struct grub_fs grub_btrfs_fs = { .name = "btrfs", .fs_dir = grub_btrfs_dir, -@@ -2185,12 +2621,88 @@ static struct grub_fs grub_btrfs_fs = { +@@ -2205,12 +2641,88 @@ static struct grub_fs grub_btrfs_fs = { #endif }; @@ -685,7 +690,7 @@ index 48bd3d0..6823d97 100644 + +// vim: si et sw=2: diff --git a/include/grub/btrfs.h b/include/grub/btrfs.h -index 9d93fb6..234ad97 100644 +index 9d93fb6c182..234ad976771 100644 --- a/include/grub/btrfs.h +++ b/include/grub/btrfs.h @@ -29,6 +29,7 @@ enum @@ -696,6 +701,3 @@ index 9d93fb6..234ad97 100644 GRUB_BTRFS_ITEM_TYPE_CHUNK = 0xe4 }; --- -1.8.3.1 - diff --git a/0075-export-btrfs_subvol-and-btrfs_subvolid.patch b/0045-export-btrfs_subvol-and-btrfs_subvolid.patch similarity index 76% rename from 0075-export-btrfs_subvol-and-btrfs_subvolid.patch rename to 0045-export-btrfs_subvol-and-btrfs_subvolid.patch index 2925801..d38a6b8 100644 --- a/0075-export-btrfs_subvol-and-btrfs_subvolid.patch +++ b/0045-export-btrfs_subvol-and-btrfs_subvolid.patch @@ -1,7 +1,7 @@ -From 2f9525397b30997f24ff1e9fd508839b6d149da5 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 075/220] export btrfs_subvol and btrfs_subvolid +Subject: [PATCH] export btrfs_subvol and btrfs_subvolid We should export btrfs_subvol and btrfs_subvolid to have both visible to subsidiary configuration files loaded using configfile. @@ -12,10 +12,10 @@ Signed-off-by: Michael Chang 1 file changed, 2 insertions(+) diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 6823d97..2d099b1 100644 +index f1fff7385b5..ad1b56b716d 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c -@@ -2694,6 +2694,8 @@ GRUB_MOD_INIT (btrfs) +@@ -2714,6 +2714,8 @@ GRUB_MOD_INIT (btrfs) subvol_set_env); grub_register_variable_hook ("btrfs_subvolid", subvolid_get_env, subvolid_set_env); @@ -24,6 +24,3 @@ index 6823d97..2d099b1 100644 } GRUB_MOD_FINI (btrfs) --- -1.8.3.1 - diff --git a/0046-Don-t-emit-Booting-.-message.patch b/0046-Don-t-emit-Booting-.-message.patch deleted file mode 100644 index 0eef6ad..0000000 --- a/0046-Don-t-emit-Booting-.-message.patch +++ /dev/null @@ -1,52 +0,0 @@ -From a71ee9f8f976cc09c301c8c1ceb8ca0859880130 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 18 Feb 2014 09:37:49 -0500 -Subject: [PATCH 046/220] Don't emit "Booting ..." message. - -UI team still hates this stuff, so we're disabling it for RHEL 7. - -Resolves: rhbz#1023142 - -Signed-off-by: Peter Jones ---- - grub-core/normal/menu.c | 4 +++- - grub-core/normal/menu_entry.c | 3 --- - 2 files changed, 3 insertions(+), 4 deletions(-) - -diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c -index 9175ad2..783bde5 100644 ---- a/grub-core/normal/menu.c -+++ b/grub-core/normal/menu.c -@@ -839,12 +839,14 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot) - - /* Callback invoked immediately before a menu entry is executed. */ - static void --notify_booting (grub_menu_entry_t entry, -+notify_booting (grub_menu_entry_t __attribute__((unused)) entry, - void *userdata __attribute__((unused))) - { -+#if 0 - grub_printf (" "); - grub_printf_ (N_("Booting `%s'"), entry->title); - grub_printf ("\n\n"); -+#endif - } - - /* Callback invoked when a default menu entry executed because of a timeout -diff --git a/grub-core/normal/menu_entry.c b/grub-core/normal/menu_entry.c -index cdf3590..5785f67 100644 ---- a/grub-core/normal/menu_entry.c -+++ b/grub-core/normal/menu_entry.c -@@ -1167,9 +1167,6 @@ run (struct screen *screen) - char *dummy[1] = { NULL }; - - grub_cls (); -- grub_printf (" "); -- grub_printf_ (N_("Booting a command list")); -- grub_printf ("\n\n"); - - errs_before = grub_err_printed_errors; - --- -1.8.3.1 - diff --git a/0076-grub2-btrfs-03-follow_default.patch b/0046-grub2-btrfs-03-follow_default.patch similarity index 86% rename from 0076-grub2-btrfs-03-follow_default.patch rename to 0046-grub2-btrfs-03-follow_default.patch index 63ce942..ca203f4 100644 --- a/0076-grub2-btrfs-03-follow_default.patch +++ b/0046-grub2-btrfs-03-follow_default.patch @@ -1,17 +1,19 @@ -From 698e60b157eaa58d81150e74a3402a38047a9314 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 076/220] grub2-btrfs-03-follow_default +Subject: [PATCH] grub2-btrfs-03-follow_default +Signed-off-by: Michael Chang +Signed-off-by: Robbie Harwood --- grub-core/fs/btrfs.c | 107 ++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 76 insertions(+), 31 deletions(-) diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 2d099b1..2db89f7 100644 +index ad1b56b716d..113c1f746c9 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c -@@ -1236,6 +1236,7 @@ grub_btrfs_mount (grub_device_t dev) +@@ -1256,6 +1256,7 @@ grub_btrfs_mount (grub_device_t dev) { struct grub_btrfs_data *data; grub_err_t err; @@ -19,7 +21,7 @@ index 2d099b1..2db89f7 100644 if (!dev->disk) { -@@ -1266,11 +1267,14 @@ grub_btrfs_mount (grub_device_t dev) +@@ -1286,11 +1287,14 @@ grub_btrfs_mount (grub_device_t dev) data->devices_attached[0].dev = dev; data->devices_attached[0].id = data->sblock.this_device.device_id; @@ -38,7 +40,7 @@ index 2d099b1..2db89f7 100644 } return data; -@@ -1835,24 +1839,39 @@ find_path (struct grub_btrfs_data *data, +@@ -1855,24 +1859,39 @@ find_path (struct grub_btrfs_data *data, grub_size_t allocated = 0; struct grub_btrfs_dir_item *direl = NULL; struct grub_btrfs_key key_out; @@ -85,7 +87,7 @@ index 2d099b1..2db89f7 100644 } else { -@@ -1863,15 +1882,23 @@ find_path (struct grub_btrfs_data *data, +@@ -1883,15 +1902,23 @@ find_path (struct grub_btrfs_data *data, while (1) { @@ -118,7 +120,7 @@ index 2d099b1..2db89f7 100644 if (*type != GRUB_BTRFS_DIR_ITEM_TYPE_DIRECTORY) { -@@ -1882,7 +1909,9 @@ find_path (struct grub_btrfs_data *data, +@@ -1902,7 +1929,9 @@ find_path (struct grub_btrfs_data *data, if (ctokenlen == 1 && ctoken[0] == '.') { @@ -129,7 +131,7 @@ index 2d099b1..2db89f7 100644 continue; } if (ctokenlen == 2 && ctoken[0] == '.' && ctoken[1] == '.') -@@ -1913,8 +1942,9 @@ find_path (struct grub_btrfs_data *data, +@@ -1933,8 +1962,9 @@ find_path (struct grub_btrfs_data *data, *type = GRUB_BTRFS_DIR_ITEM_TYPE_DIRECTORY; key->object_id = key_out.offset; @@ -141,7 +143,7 @@ index 2d099b1..2db89f7 100644 continue; } -@@ -1983,7 +2013,9 @@ find_path (struct grub_btrfs_data *data, +@@ -2003,7 +2033,9 @@ find_path (struct grub_btrfs_data *data, return err; } @@ -152,7 +154,7 @@ index 2d099b1..2db89f7 100644 if (cdirel->type == GRUB_BTRFS_DIR_ITEM_TYPE_SYMLINK) { struct grub_btrfs_inode inode; -@@ -2033,14 +2065,26 @@ find_path (struct grub_btrfs_data *data, +@@ -2053,14 +2085,26 @@ find_path (struct grub_btrfs_data *data, path = path_alloc = tmp; if (path[0] == '/') { @@ -186,7 +188,7 @@ index 2d099b1..2db89f7 100644 } else { -@@ -2696,6 +2740,7 @@ GRUB_MOD_INIT (btrfs) +@@ -2716,6 +2760,7 @@ GRUB_MOD_INIT (btrfs) subvolid_set_env); grub_env_export ("btrfs_subvol"); grub_env_export ("btrfs_subvolid"); @@ -194,6 +196,3 @@ index 2d099b1..2db89f7 100644 } GRUB_MOD_FINI (btrfs) --- -1.8.3.1 - diff --git a/0077-grub2-btrfs-04-grub2-install.patch b/0047-grub2-btrfs-04-grub2-install.patch similarity index 88% rename from 0077-grub2-btrfs-04-grub2-install.patch rename to 0047-grub2-btrfs-04-grub2-install.patch index 3431a85..451f61d 100644 --- a/0077-grub2-btrfs-04-grub2-install.patch +++ b/0047-grub2-btrfs-04-grub2-install.patch @@ -1,19 +1,21 @@ -From d88b2fed5b13498999a6a186cf5a707ce0819f67 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 077/220] grub2-btrfs-04-grub2-install +Subject: [PATCH] grub2-btrfs-04-grub2-install +Signed-off-by: Michael Chang +Signed-off-by: Robbie Harwood --- grub-core/osdep/linux/getroot.c | 7 +++++++ grub-core/osdep/unix/config.c | 17 +++++++++++++++-- - include/grub/emu/config.h | 1 + util/config.c | 10 ++++++++++ util/grub-install.c | 15 +++++++++++++++ util/grub-mkrelpath.c | 6 ++++++ + include/grub/emu/config.h | 1 + 6 files changed, 54 insertions(+), 2 deletions(-) diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c -index 6d9f4e5..5d50dd6 100644 +index 001b818fe58..caf9b1ccd3f 100644 --- a/grub-core/osdep/linux/getroot.c +++ b/grub-core/osdep/linux/getroot.c @@ -376,6 +376,7 @@ get_btrfs_fs_prefix (const char *mount_path) @@ -38,7 +40,7 @@ index 6d9f4e5..5d50dd6 100644 else if (!retry && grub_strcmp (entries[i].fstype, "autofs") == 0) { diff --git a/grub-core/osdep/unix/config.c b/grub-core/osdep/unix/config.c -index 65effa9..b637c58 100644 +index 7d6325138ce..46a881530c0 100644 --- a/grub-core/osdep/unix/config.c +++ b/grub-core/osdep/unix/config.c @@ -82,6 +82,19 @@ grub_util_load_config (struct grub_util_config *cfg) @@ -72,20 +74,8 @@ index 65effa9..b637c58 100644 argv[2] = script; argv[3] = '\0'; -diff --git a/include/grub/emu/config.h b/include/grub/emu/config.h -index 875d589..c9a7e5f 100644 ---- a/include/grub/emu/config.h -+++ b/include/grub/emu/config.h -@@ -37,6 +37,7 @@ struct grub_util_config - { - int is_cryptodisk_enabled; - char *grub_distributor; -+ int is_suse_btrfs_snapshot_enabled; - }; - - void diff --git a/util/config.c b/util/config.c -index ebcdd8f..f044a88 100644 +index ebcdd8f5e22..f044a880a76 100644 --- a/util/config.c +++ b/util/config.c @@ -42,6 +42,16 @@ grub_util_parse_config (FILE *f, struct grub_util_config *cfg, int simple) @@ -106,10 +96,10 @@ index ebcdd8f..f044a88 100644 sizeof ("GRUB_DISTRIBUTOR=") - 1) == 0) { diff --git a/util/grub-install.c b/util/grub-install.c -index 8a55ad4..0e807b0 100644 +index 0fbe7f78c6d..0f66f36d23a 100644 --- a/util/grub-install.c +++ b/util/grub-install.c -@@ -819,6 +819,8 @@ fill_core_services (const char *core_services) +@@ -827,6 +827,8 @@ fill_core_services (const char *core_services) free (sysv_plist); } @@ -118,7 +108,7 @@ index 8a55ad4..0e807b0 100644 int main (int argc, char *argv[]) { -@@ -852,6 +854,9 @@ main (int argc, char *argv[]) +@@ -860,6 +862,9 @@ main (int argc, char *argv[]) grub_util_load_config (&config); @@ -128,7 +118,7 @@ index 8a55ad4..0e807b0 100644 if (!bootloader_id && config.grub_distributor) { char *ptr; -@@ -1344,6 +1349,16 @@ main (int argc, char *argv[]) +@@ -1352,6 +1357,16 @@ main (int argc, char *argv[]) fprintf (load_cfg_f, "set debug='%s'\n", debug_image); } @@ -146,7 +136,7 @@ index 8a55ad4..0e807b0 100644 char *install_drive = NULL; diff --git a/util/grub-mkrelpath.c b/util/grub-mkrelpath.c -index 47a241a..5db7a9a 100644 +index 47a241a391b..5db7a9a7d97 100644 --- a/util/grub-mkrelpath.c +++ b/util/grub-mkrelpath.c @@ -40,9 +40,12 @@ struct arguments @@ -172,6 +162,15 @@ index 47a241a..5db7a9a 100644 case ARGP_KEY_ARG: if (state->arg_num == 0) arguments->pathname = xstrdup (arg); --- -1.8.3.1 - +diff --git a/include/grub/emu/config.h b/include/grub/emu/config.h +index 875d5896ce1..c9a7e5f4ade 100644 +--- a/include/grub/emu/config.h ++++ b/include/grub/emu/config.h +@@ -37,6 +37,7 @@ struct grub_util_config + { + int is_cryptodisk_enabled; + char *grub_distributor; ++ int is_suse_btrfs_snapshot_enabled; + }; + + void diff --git a/0078-grub2-btrfs-05-grub2-mkconfig.patch b/0048-grub2-btrfs-05-grub2-mkconfig.patch similarity index 91% rename from 0078-grub2-btrfs-05-grub2-mkconfig.patch rename to 0048-grub2-btrfs-05-grub2-mkconfig.patch index 02b7a84..5afd183 100644 --- a/0078-grub2-btrfs-05-grub2-mkconfig.patch +++ b/0048-grub2-btrfs-05-grub2-mkconfig.patch @@ -1,7 +1,7 @@ -From 62438d289c38a88cd0d3d1efad8a52f0de44b6b3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 078/220] grub2-btrfs-05-grub2-mkconfig +Subject: [PATCH] grub2-btrfs-05-grub2-mkconfig Signed-off-by: Michael Chang --- @@ -13,10 +13,10 @@ Signed-off-by: Michael Chang 5 files changed, 38 insertions(+), 2 deletions(-) diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 6247a0b..4649e92 100644 +index 005f093809b..535c0f02499 100644 --- a/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in -@@ -258,7 +258,8 @@ export GRUB_DEFAULT \ +@@ -252,7 +252,8 @@ export GRUB_DEFAULT \ GRUB_BADRAM \ GRUB_OS_PROBER_SKIP_LIST \ GRUB_DISABLE_SUBMENU \ @@ -27,7 +27,7 @@ index 6247a0b..4649e92 100644 if test "x${grub_cfg}" != "x"; then rm -f "${grub_cfg}.new" diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index 113a41f..b3aae53 100644 +index 42c2ea9ba50..fafeac95061 100644 --- a/util/grub-mkconfig_lib.in +++ b/util/grub-mkconfig_lib.in @@ -52,7 +52,11 @@ grub_warn () @@ -43,7 +43,7 @@ index 113a41f..b3aae53 100644 is_path_readable_by_grub () diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in -index 858b526..de727e6 100644 +index 858b526c925..de727e6ee6b 100644 --- a/util/grub.d/00_header.in +++ b/util/grub.d/00_header.in @@ -27,6 +27,14 @@ export TEXTDOMAINDIR="@localedir@" @@ -90,7 +90,7 @@ index 858b526..de727e6 100644 +EOF +fi diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 55f4aa7..5cab299 100644 +index 292e333324b..7bb3a211a7c 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -66,10 +66,14 @@ fi @@ -109,7 +109,7 @@ index 55f4aa7..5cab299 100644 xzfs) rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true` diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index 47e0d3f..1519ec6 100644 +index ada20775a14..e9e73b815fb 100644 --- a/util/grub.d/20_linux_xen.in +++ b/util/grub.d/20_linux_xen.in @@ -73,10 +73,14 @@ fi @@ -127,6 +127,3 @@ index 47e0d3f..1519ec6 100644 fi;; xzfs) rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true` --- -1.8.3.1 - diff --git a/0079-grub2-btrfs-06-subvol-mount.patch b/0049-grub2-btrfs-06-subvol-mount.patch similarity index 93% rename from 0079-grub2-btrfs-06-subvol-mount.patch rename to 0049-grub2-btrfs-06-subvol-mount.patch index 5ba4bf8..14117ab 100644 --- a/0079-grub2-btrfs-06-subvol-mount.patch +++ b/0049-grub2-btrfs-06-subvol-mount.patch @@ -1,17 +1,19 @@ -From 226e9d1f9fde6c6ccf711ba7112135bfa1c01868 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Tue, 9 Jul 2019 13:56:16 +0200 -Subject: [PATCH 079/220] grub2-btrfs-06-subvol-mount +Subject: [PATCH] grub2-btrfs-06-subvol-mount +Signed-off-by: Michael Chang +Signed-off-by: Robbie Harwood --- grub-core/fs/btrfs.c | 195 +++++++++++++++++++++++++++++++++++++++- grub-core/osdep/linux/getroot.c | 148 +++++++++++++++++++++++++++++- - include/grub/emu/getroot.h | 5 ++ util/grub-install.c | 49 ++++++++++ + include/grub/emu/getroot.h | 5 ++ 4 files changed, 392 insertions(+), 5 deletions(-) diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 2db89f7..1627234 100644 +index 113c1f746c9..d323746ecfa 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c @@ -41,6 +41,7 @@ @@ -21,8 +23,8 @@ index 2db89f7..1627234 100644 +#include #include #include - -@@ -263,6 +264,12 @@ static grub_err_t + #include +@@ -266,6 +267,12 @@ static grub_err_t grub_btrfs_read_logical (struct grub_btrfs_data *data, grub_disk_addr_t addr, void *buf, grub_size_t size, int recursion_depth); @@ -35,7 +37,7 @@ index 2db89f7..1627234 100644 static grub_err_t read_sblock (grub_disk_t disk, struct grub_btrfs_superblock *sb) -@@ -1203,9 +1210,26 @@ lookup_root_by_name(struct grub_btrfs_data *data, const char *path) +@@ -1223,9 +1230,26 @@ lookup_root_by_name(struct grub_btrfs_data *data, const char *path) grub_err_t err; grub_uint64_t tree = 0; grub_uint8_t type; @@ -62,7 +64,7 @@ index 2db89f7..1627234 100644 if (err) return grub_error(GRUB_ERR_FILE_NOT_FOUND, "couldn't locate %s\n", path); -@@ -2179,11 +2203,20 @@ grub_btrfs_dir (grub_device_t device, const char *path, +@@ -2199,11 +2223,20 @@ grub_btrfs_dir (grub_device_t device, const char *path, int r = 0; grub_uint64_t tree; grub_uint8_t type; @@ -84,7 +86,7 @@ index 2db89f7..1627234 100644 if (err) { grub_btrfs_unmount (data); -@@ -2285,11 +2318,21 @@ grub_btrfs_open (struct grub_file *file, const char *name) +@@ -2305,11 +2338,21 @@ grub_btrfs_open (struct grub_file *file, const char *name) struct grub_btrfs_inode inode; grub_uint8_t type; struct grub_btrfs_key key_in; @@ -107,7 +109,7 @@ index 2db89f7..1627234 100644 if (err) { grub_btrfs_unmount (data); -@@ -2460,6 +2503,150 @@ grub_cmd_btrfs_info (grub_command_t cmd __attribute__ ((unused)), int argc, +@@ -2480,6 +2523,150 @@ grub_cmd_btrfs_info (grub_command_t cmd __attribute__ ((unused)), int argc, return 0; } @@ -258,7 +260,7 @@ index 2db89f7..1627234 100644 static grub_err_t get_fs_root(struct grub_btrfs_data *data, grub_uint64_t tree, grub_uint64_t objectid, grub_uint64_t offset, -@@ -2666,6 +2853,7 @@ static struct grub_fs grub_btrfs_fs = { +@@ -2686,6 +2873,7 @@ static struct grub_fs grub_btrfs_fs = { }; static grub_command_t cmd_info; @@ -266,7 +268,7 @@ index 2db89f7..1627234 100644 static grub_extcmd_t cmd_list_subvols; static char * -@@ -2729,6 +2917,9 @@ GRUB_MOD_INIT (btrfs) +@@ -2749,6 +2937,9 @@ GRUB_MOD_INIT (btrfs) cmd_info = grub_register_command("btrfs-info", grub_cmd_btrfs_info, "DEVICE", "Print BtrFS info about DEVICE."); @@ -277,7 +279,7 @@ index 2db89f7..1627234 100644 grub_cmd_btrfs_list_subvols, 0, "[-p|-n] [-o var] DEVICE", diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c -index 5d50dd6..4c5a130 100644 +index caf9b1ccd3f..28790307e00 100644 --- a/grub-core/osdep/linux/getroot.c +++ b/grub-core/osdep/linux/getroot.c @@ -107,6 +107,14 @@ struct btrfs_ioctl_search_key @@ -459,27 +461,11 @@ index 5d50dd6..4c5a130 100644 char * grub_make_system_path_relative_to_its_root_os (const char *path) { -diff --git a/include/grub/emu/getroot.h b/include/grub/emu/getroot.h -index 73fa2d3..9c642ae 100644 ---- a/include/grub/emu/getroot.h -+++ b/include/grub/emu/getroot.h -@@ -53,6 +53,11 @@ char ** - grub_find_root_devices_from_mountinfo (const char *dir, char **relroot); - #endif - -+#ifdef __linux__ -+char * -+grub_util_get_btrfs_subvol (const char *path, char **mount_path); -+#endif -+ - /* Devmapper functions provided by getroot_devmapper.c. */ - void - grub_util_pull_devmapper (const char *os_dev); diff --git a/util/grub-install.c b/util/grub-install.c -index 0e807b0..3e718b9 100644 +index 0f66f36d23a..84ed6e88ecb 100644 --- a/util/grub-install.c +++ b/util/grub-install.c -@@ -1561,6 +1561,55 @@ main (int argc, char *argv[]) +@@ -1569,6 +1569,55 @@ main (int argc, char *argv[]) prefix_drive = xasprintf ("(%s)", grub_drives[0]); } @@ -535,6 +521,19 @@ index 0e807b0..3e718b9 100644 char mkimage_target[200]; const char *core_name = NULL; --- -1.8.3.1 - +diff --git a/include/grub/emu/getroot.h b/include/grub/emu/getroot.h +index 73fa2d34abb..9c642ae3fe3 100644 +--- a/include/grub/emu/getroot.h ++++ b/include/grub/emu/getroot.h +@@ -53,6 +53,11 @@ char ** + grub_find_root_devices_from_mountinfo (const char *dir, char **relroot); + #endif + ++#ifdef __linux__ ++char * ++grub_util_get_btrfs_subvol (const char *path, char **mount_path); ++#endif ++ + /* Devmapper functions provided by getroot_devmapper.c. */ + void + grub_util_pull_devmapper (const char *os_dev); diff --git a/0080-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch b/0050-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch similarity index 84% rename from 0080-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch rename to 0050-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch index c56e7bb..b02ab53 100644 --- a/0080-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch +++ b/0050-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch @@ -1,8 +1,8 @@ -From dea875db30d83eeed6b53c3fc72a0dbb178abb94 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andrei Borzenkov Date: Tue, 21 Jun 2016 16:44:17 +0000 -Subject: [PATCH 080/220] Fallback to old subvol name scheme to support old - snapshot config +Subject: [PATCH] Fallback to old subvol name scheme to support old snapshot + config Ref: bsc#953538 --- @@ -10,13 +10,14 @@ Ref: bsc#953538 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 1627234..69c30e6 100644 +index d323746ecfa..673ded03522 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c -@@ -1241,10 +1241,40 @@ lookup_root_by_name(struct grub_btrfs_data *data, const char *path) +@@ -1260,11 +1260,41 @@ lookup_root_by_name(struct grub_btrfs_data *data, const char *path) + return GRUB_ERR_NONE; } - static grub_err_t ++static grub_err_t +lookup_root_by_name_fallback(struct grub_btrfs_data *data, const char *path) +{ + grub_err_t err; @@ -35,7 +36,7 @@ index 1627234..69c30e6 100644 + return GRUB_ERR_NONE; +} + -+static grub_err_t + static grub_err_t btrfs_handle_subvol(struct grub_btrfs_data *data __attribute__ ((unused))) { if (btrfs_default_subvol) @@ -55,6 +56,3 @@ index 1627234..69c30e6 100644 if (btrfs_default_subvolid) return lookup_root_by_id(data, btrfs_default_subvolid); --- -1.8.3.1 - diff --git a/0050-Fix-convert-function-to-support-NVMe-devices.patch b/0050-Fix-convert-function-to-support-NVMe-devices.patch deleted file mode 100644 index f9b9982..0000000 --- a/0050-Fix-convert-function-to-support-NVMe-devices.patch +++ /dev/null @@ -1,59 +0,0 @@ -From d876203ac9bfea1f5f0cea015dfa70ba3988d08a Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 18 Feb 2014 11:34:00 -0500 -Subject: [PATCH 050/220] Fix convert function to support NVMe devices - -This is adapted from the patch at -https://bugzilla.redhat.com/show_bug.cgi?id=1019660 , which is against -the now very old version of convert_system_partition_to_system_disk(). - -As such, it certainly not the right thing for upstream, but should -function for now. - -Resolves: rhbz#1019660 - -Signed-off-by: Peter Jones ---- - util/getroot.c | 19 +++++++++++++++++++ - 1 file changed, 19 insertions(+) - -diff --git a/util/getroot.c b/util/getroot.c -index 847406f..fa3460d 100644 ---- a/util/getroot.c -+++ b/util/getroot.c -@@ -153,6 +153,7 @@ convert_system_partition_to_system_disk (const char *os_dev, int *is_part) - { - #if GRUB_UTIL_FD_STAT_IS_FUNCTIONAL - struct stat st; -+ char *path = xmalloc(PATH_MAX); - - if (stat (os_dev, &st) < 0) - { -@@ -165,6 +166,24 @@ convert_system_partition_to_system_disk (const char *os_dev, int *is_part) - - *is_part = 0; - -+ if (realpath(os_dev, path)) -+ { -+ if ((strncmp ("/dev/nvme", path, 9) == 0)) -+ { -+ char *p = path + 5; -+ p = strchr(p, 'p'); -+ if (p) -+ { -+ *is_part = 1; -+ *p = '\0'; -+ } -+ return path; -+ } -+ } -+ -+ grub_free (path); -+ *is_part = 0; -+ - if (grub_util_device_is_mapped_stat (&st)) - return grub_util_devmapper_part_to_disk (&st, is_part, os_dev); - --- -1.8.3.1 - diff --git a/0051-Add-grub_util_readlink.patch b/0051-Add-grub_util_readlink.patch deleted file mode 100644 index e73c6c8..0000000 --- a/0051-Add-grub_util_readlink.patch +++ /dev/null @@ -1,85 +0,0 @@ -From a2099170d2f7e9cca6a743c15b6cb649b88fd873 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 8 Jul 2019 21:46:52 +0200 -Subject: [PATCH 051/220] Add grub_util_readlink() - -Add grub_util_readlink(). This requires pulling in stat and readlink from -gnulib, which pulls in stat and related headers, but after that the -implementation is straightforward. - -Signed-off-by: Peter Jones -Reviewed-by: Adam Jackson ---- - grub-core/osdep/windows/hostdisk.c | 6 ++++++ - include/grub/osdep/hostfile_aros.h | 6 ++++++ - include/grub/osdep/hostfile_unix.h | 6 ++++++ - include/grub/osdep/hostfile_windows.h | 2 ++ - 4 files changed, 20 insertions(+) - -diff --git a/grub-core/osdep/windows/hostdisk.c b/grub-core/osdep/windows/hostdisk.c -index 3551007..87a106c 100644 ---- a/grub-core/osdep/windows/hostdisk.c -+++ b/grub-core/osdep/windows/hostdisk.c -@@ -365,6 +365,12 @@ grub_util_mkdir (const char *dir) - free (windows_name); - } - -+ssize_t -+grub_util_readlink (const char *name, char *buf, size_t bufsize) -+{ -+ return readlink(name, buf, bufsize); -+} -+ - int - grub_util_rename (const char *from, const char *to) - { -diff --git a/include/grub/osdep/hostfile_aros.h b/include/grub/osdep/hostfile_aros.h -index a059c0f..161fbb7 100644 ---- a/include/grub/osdep/hostfile_aros.h -+++ b/include/grub/osdep/hostfile_aros.h -@@ -68,6 +68,12 @@ grub_util_rename (const char *from, const char *to) - return rename (from, to); - } - -+static inline ssize_t -+grub_util_readlink (const char *name, char *buf, size_t bufsize) -+{ -+ return readlink(name, buf, bufsize); -+} -+ - #define grub_util_mkdir(a) mkdir ((a), 0755) - - struct grub_util_fd -diff --git a/include/grub/osdep/hostfile_unix.h b/include/grub/osdep/hostfile_unix.h -index 9ffe46f..17cd3aa 100644 ---- a/include/grub/osdep/hostfile_unix.h -+++ b/include/grub/osdep/hostfile_unix.h -@@ -71,6 +71,12 @@ grub_util_rename (const char *from, const char *to) - return rename (from, to); - } - -+static inline ssize_t -+grub_util_readlink (const char *name, char *buf, size_t bufsize) -+{ -+ return readlink(name, buf, bufsize); -+} -+ - #define grub_util_mkdir(a) mkdir ((a), 0755) - - #if defined (__NetBSD__) -diff --git a/include/grub/osdep/hostfile_windows.h b/include/grub/osdep/hostfile_windows.h -index bf6451b..8c92d05 100644 ---- a/include/grub/osdep/hostfile_windows.h -+++ b/include/grub/osdep/hostfile_windows.h -@@ -41,6 +41,8 @@ typedef struct grub_util_fd_dir *grub_util_fd_dir_t; - - int - grub_util_rename (const char *from, const char *to); -+ssize_t -+grub_util_readlink (const char *name, char *buf, size_t bufsize); - int - grub_util_unlink (const char *name); - void --- -1.8.3.1 - diff --git a/0081-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch b/0051-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch similarity index 94% rename from 0081-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch rename to 0051-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch index b0342ae..b54b196 100644 --- a/0081-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch +++ b/0051-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch @@ -1,18 +1,19 @@ -From 0a31b397d0d3bc28e19401abe9b675fe7d3bb526 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 11 May 2017 08:56:57 +0000 -Subject: [PATCH 081/220] Grub not working correctly with btrfs snapshots - (bsc#1026511) +Subject: [PATCH] Grub not working correctly with btrfs snapshots (bsc#1026511) +Signed-off-by: Michael Chang +Signed-off-by: Robbie Harwood --- grub-core/fs/btrfs.c | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 238 insertions(+) diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 69c30e6..ba99d04 100644 +index 673ded03522..2b21cbaa67e 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c -@@ -2867,6 +2867,238 @@ out: +@@ -2887,6 +2887,238 @@ out: return 0; } @@ -251,7 +252,7 @@ index 69c30e6..ba99d04 100644 static struct grub_fs grub_btrfs_fs = { .name = "btrfs", .fs_dir = grub_btrfs_dir, -@@ -2885,6 +3117,7 @@ static struct grub_fs grub_btrfs_fs = { +@@ -2905,6 +3137,7 @@ static struct grub_fs grub_btrfs_fs = { static grub_command_t cmd_info; static grub_command_t cmd_mount_subvol; static grub_extcmd_t cmd_list_subvols; @@ -259,7 +260,7 @@ index 69c30e6..ba99d04 100644 static char * subvolid_set_env (struct grub_env_var *var __attribute__ ((unused)), -@@ -2955,6 +3188,11 @@ GRUB_MOD_INIT (btrfs) +@@ -2975,6 +3208,11 @@ GRUB_MOD_INIT (btrfs) "[-p|-n] [-o var] DEVICE", "Print list of BtrFS subvolumes on " "DEVICE.", options); @@ -271,6 +272,3 @@ index 69c30e6..ba99d04 100644 grub_register_variable_hook ("btrfs_subvol", subvol_get_env, subvol_set_env); grub_register_variable_hook ("btrfs_subvolid", subvolid_get_env, --- -1.8.3.1 - diff --git a/0082-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch b/0052-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch similarity index 90% rename from 0082-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch rename to 0052-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch index 051c7ba..bde7096 100644 --- a/0082-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch +++ b/0052-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch @@ -1,7 +1,7 @@ -From 67fceb3fe4d6a167f26478fa2c3fdbac9a9bc871 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 09:59:56 -0400 -Subject: [PATCH 082/220] Add grub_efi_allocate_pool() and grub_efi_free_pool() +Subject: [PATCH] Add grub_efi_allocate_pool() and grub_efi_free_pool() wrappers. Signed-off-by: Peter Jones @@ -10,7 +10,7 @@ Signed-off-by: Peter Jones 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index 090c862..5e2b479 100644 +index 585fa6662b6..03f9a9d0118 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h @@ -24,6 +24,10 @@ @@ -58,7 +58,7 @@ index 090c862..5e2b479 100644 grub_efi_loaded_image_t *EXPORT_FUNC(grub_efi_get_loaded_image) (grub_efi_handle_t image_handle); void EXPORT_FUNC(grub_efi_print_device_path) (grub_efi_device_path_t *dp); char *EXPORT_FUNC(grub_efi_get_filename) (grub_efi_device_path_t *dp); -@@ -109,10 +140,7 @@ void grub_efi_init (void); +@@ -115,10 +146,7 @@ void grub_efi_init (void); void grub_efi_fini (void); void grub_efi_set_prefix (void); @@ -70,6 +70,3 @@ index 090c862..5e2b479 100644 extern int EXPORT_VAR(grub_efi_is_finished); struct grub_net_card; --- -1.8.3.1 - diff --git a/0052-Make-editenv-chase-symlinks-including-those-across-d.patch b/0052-Make-editenv-chase-symlinks-including-those-across-d.patch deleted file mode 100644 index b006455..0000000 --- a/0052-Make-editenv-chase-symlinks-including-those-across-d.patch +++ /dev/null @@ -1,108 +0,0 @@ -From 33c5ef791304cd9c320dd0e6ec67e2bd5e7e8d30 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Wed, 3 Sep 2014 10:38:00 -0400 -Subject: [PATCH 052/220] Make editenv chase symlinks including those across - devices. - -This lets us make /boot/grub2/grubenv a symlink to -/boot/efi/EFI/fedora/grubenv even though they're different mount points, -which allows /usr/bin/grub2-editenv to be the same across platforms -(i.e. UEFI vs BIOS). - -Signed-off-by: Peter Jones -Reviewed-by: Adam Jackson ---- - Makefile.util.def | 11 +++++++++++ - util/editenv.c | 46 ++++++++++++++++++++++++++++++++++++++++++++-- - 2 files changed, 55 insertions(+), 2 deletions(-) - -diff --git a/Makefile.util.def b/Makefile.util.def -index 8717774..1f298d0 100644 ---- a/Makefile.util.def -+++ b/Makefile.util.def -@@ -240,8 +240,19 @@ program = { - - common = util/grub-editenv.c; - common = util/editenv.c; -+ common = util/grub-install-common.c; - common = grub-core/osdep/init.c; -+ common = grub-core/osdep/compress.c; -+ extra_dist = grub-core/osdep/unix/compress.c; -+ extra_dist = grub-core/osdep/basic/compress.c; -+ common = util/mkimage.c; -+ common = util/grub-mkimage32.c; -+ common = util/grub-mkimage64.c; -+ common = grub-core/osdep/config.c; -+ common = util/config.c; -+ common = util/resolve.c; - -+ ldadd = '$(LIBLZMA)'; - ldadd = libgrubmods.a; - ldadd = libgrubgcry.a; - ldadd = libgrubkern.a; -diff --git a/util/editenv.c b/util/editenv.c -index eb2d0c0..e61dc12 100644 ---- a/util/editenv.c -+++ b/util/editenv.c -@@ -37,6 +37,7 @@ grub_util_create_envblk_file (const char *name) - FILE *fp; - char *buf; - char *namenew; -+ char *rename_target = xstrdup(name); - - buf = xmalloc (DEFAULT_ENVBLK_SIZE); - -@@ -60,7 +61,48 @@ grub_util_create_envblk_file (const char *name) - free (buf); - fclose (fp); - -- if (grub_util_rename (namenew, name) < 0) -- grub_util_error (_("cannot rename the file %s to %s"), namenew, name); -+ ssize_t size = 1; -+ while (1) -+ { -+ char *linkbuf; -+ ssize_t retsize; -+ -+ linkbuf = xmalloc(size+1); -+ retsize = grub_util_readlink (rename_target, linkbuf, size); -+ if (retsize < 0 && (errno == ENOENT || errno == EINVAL)) -+ { -+ free (linkbuf); -+ break; -+ } -+ else if (retsize < 0) -+ { -+ grub_util_error (_("cannot rename the file %s to %s: %m"), namenew, name); -+ free (linkbuf); -+ free (namenew); -+ return; -+ } -+ else if (retsize == size) -+ { -+ free(linkbuf); -+ size += 128; -+ continue; -+ } -+ -+ free (rename_target); -+ linkbuf[retsize] = '\0'; -+ rename_target = linkbuf; -+ } -+ -+ int rc = grub_util_rename (namenew, rename_target); -+ if (rc < 0 && errno == EXDEV) -+ { -+ rc = grub_install_copy_file (namenew, rename_target, 1); -+ grub_util_unlink (namenew); -+ } -+ -+ if (rc < 0) -+ grub_util_error (_("cannot rename the file %s to %s: %m"), namenew, name); -+ - free (namenew); -+ free (rename_target); - } --- -1.8.3.1 - diff --git a/0083-Use-grub_efi_.-memory-helpers-where-reasonable.patch b/0053-Use-grub_efi_.-memory-helpers-where-reasonable.patch similarity index 85% rename from 0083-Use-grub_efi_.-memory-helpers-where-reasonable.patch rename to 0053-Use-grub_efi_.-memory-helpers-where-reasonable.patch index f65956a..ccdf282 100644 --- a/0083-Use-grub_efi_.-memory-helpers-where-reasonable.patch +++ b/0053-Use-grub_efi_.-memory-helpers-where-reasonable.patch @@ -1,7 +1,7 @@ -From 2a70ee4ec02463e5eda6137de9e3e7d9f1b2021a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:06:38 -0400 -Subject: [PATCH 083/220] Use grub_efi_...() memory helpers where reasonable. +Subject: [PATCH] Use grub_efi_...() memory helpers where reasonable. This uses grub_efi_allocate_pool(), grub_efi_free_pool(), and grub_efi_free_pages() instead of open-coded efi_call_N() calls, so we @@ -13,7 +13,7 @@ Signed-off-by: Peter Jones 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 5aa3a5d..3a724a9 100644 +index 07c4937898d..89ac84cc663 100644 --- a/grub-core/loader/efi/chainloader.c +++ b/grub-core/loader/efi/chainloader.c @@ -65,7 +65,7 @@ grub_chainloader_unload (void) @@ -34,7 +34,7 @@ index 5aa3a5d..3a724a9 100644 grub_loader_unset (); -@@ -506,10 +506,9 @@ grub_efi_get_media_file_path (grub_efi_device_path_t *dp) +@@ -527,10 +527,9 @@ grub_efi_get_media_file_path (grub_efi_device_path_t *dp) static grub_efi_boolean_t handle_image (void *data, grub_efi_uint32_t datasize) { @@ -46,7 +46,7 @@ index 5aa3a5d..3a724a9 100644 char *buffer_aligned = NULL; grub_efi_uint32_t i; struct grub_pe32_section_table *section; -@@ -520,8 +519,6 @@ handle_image (void *data, grub_efi_uint32_t datasize) +@@ -541,8 +540,6 @@ handle_image (void *data, grub_efi_uint32_t datasize) int found_entry_point = 0; int rc; @@ -55,7 +55,7 @@ index 5aa3a5d..3a724a9 100644 rc = read_header (data, datasize, &context); if (rc < 0) { -@@ -561,8 +558,8 @@ handle_image (void *data, grub_efi_uint32_t datasize) +@@ -582,8 +579,8 @@ handle_image (void *data, grub_efi_uint32_t datasize) grub_dprintf ("chain", "image size is %08"PRIxGRUB_UINT64_T", datasize is %08x\n", context.image_size, datasize); @@ -66,7 +66,7 @@ index 5aa3a5d..3a724a9 100644 if (efi_status != GRUB_EFI_SUCCESS) { -@@ -794,14 +791,14 @@ handle_image (void *data, grub_efi_uint32_t datasize) +@@ -815,14 +812,14 @@ handle_image (void *data, grub_efi_uint32_t datasize) grub_dprintf ("chain", "entry_point returned %ld\n", efi_status); grub_memcpy (li, &li_bak, sizeof (grub_efi_loaded_image_t)); @@ -83,7 +83,7 @@ index 5aa3a5d..3a724a9 100644 return 0; } -@@ -809,10 +806,7 @@ error_exit: +@@ -830,10 +827,7 @@ error_exit: static grub_err_t grub_secureboot_chainloader_unload (void) { @@ -95,7 +95,7 @@ index 5aa3a5d..3a724a9 100644 grub_free (file_path); grub_free (cmdline); cmdline = 0; -@@ -1079,7 +1073,7 @@ fail: +@@ -1100,7 +1094,7 @@ fail: grub_free (file_path); if (address) @@ -104,6 +104,3 @@ index 5aa3a5d..3a724a9 100644 if (cmdline) grub_free (cmdline); --- -1.8.3.1 - diff --git a/0084-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch b/0054-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch similarity index 72% rename from 0084-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch rename to 0054-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch index 8ebf61b..ef41fe1 100644 --- a/0084-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch +++ b/0054-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch @@ -1,21 +1,21 @@ -From aa6edc58113ecb1ff34417fa4702ff10b4e32ded Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:07:50 -0400 -Subject: [PATCH 084/220] Add PRIxGRUB_EFI_STATUS and use it. +Subject: [PATCH] Add PRIxGRUB_EFI_STATUS and use it. This avoids syntax checkers getting confused about if it's llx or lx. Signed-off-by: Peter Jones --- grub-core/loader/efi/chainloader.c | 3 ++- - include/grub/efi/api.h | 8 ++++++++ - 2 files changed, 10 insertions(+), 1 deletion(-) + include/grub/efi/api.h | 9 +++++++++ + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 3a724a9..f4ddbed 100644 +index 89ac84cc663..ac8dfd40c61 100644 --- a/grub-core/loader/efi/chainloader.c +++ b/grub-core/loader/efi/chainloader.c -@@ -789,7 +789,8 @@ handle_image (void *data, grub_efi_uint32_t datasize) +@@ -810,7 +810,8 @@ handle_image (void *data, grub_efi_uint32_t datasize) efi_status = efi_call_2 (entry_point, grub_efi_image_handle, grub_efi_system_table); @@ -26,13 +26,15 @@ index 3a724a9..f4ddbed 100644 efi_status = grub_efi_free_pool (buffer); diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index d97cdf9..955973e 100644 +index 117469450d3..99628801478 100644 --- a/include/grub/efi/api.h +++ b/include/grub/efi/api.h -@@ -527,6 +527,14 @@ typedef grub_uint8_t grub_efi_char8_t; +@@ -546,7 +546,16 @@ typedef grub_uint64_t grub_efi_uint64_t; + typedef grub_uint8_t grub_efi_char8_t; typedef grub_uint16_t grub_efi_char16_t; - typedef grub_efi_intn_t grub_efi_status_t; ++ + typedef grub_efi_uintn_t grub_efi_status_t; +/* Make grub_efi_status_t reasonably printable. */ +#if GRUB_CPU_SIZEOF_VOID_P == 8 +#define PRIxGRUB_EFI_STATUS "lx" @@ -44,6 +46,3 @@ index d97cdf9..955973e 100644 #define GRUB_EFI_ERROR_CODE(value) \ ((((grub_efi_status_t) 1) << (sizeof (grub_efi_status_t) * 8 - 1)) | (value)) --- -1.8.3.1 - diff --git a/0087-don-t-use-int-for-efi-status.patch b/0055-don-t-use-int-for-efi-status.patch similarity index 69% rename from 0087-don-t-use-int-for-efi-status.patch rename to 0055-don-t-use-int-for-efi-status.patch index 80782f5..44d3555 100644 --- a/0087-don-t-use-int-for-efi-status.patch +++ b/0055-don-t-use-int-for-efi-status.patch @@ -1,17 +1,17 @@ -From 7fba6daaf2d9cc2c96176020212dadad593c340f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:44:59 -0400 -Subject: [PATCH 087/220] don't use int for efi status +Subject: [PATCH] don't use int for efi status --- grub-core/kern/efi/efi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index a1af9b4..2cf6a5a 100644 +index 05d8237a9b2..ae9885edb84 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c -@@ -166,7 +166,7 @@ grub_reboot (void) +@@ -167,7 +167,7 @@ grub_reboot (void) void grub_exit (int retval) { @@ -20,6 +20,3 @@ index a1af9b4..2cf6a5a 100644 if (retval == 0) rc = GRUB_EFI_SUCCESS; --- -1.8.3.1 - diff --git a/0056-Update-info-with-grub.cfg-netboot-selection-order-11.patch b/0056-Update-info-with-grub.cfg-netboot-selection-order-11.patch deleted file mode 100644 index d5421e8..0000000 --- a/0056-Update-info-with-grub.cfg-netboot-selection-order-11.patch +++ /dev/null @@ -1,70 +0,0 @@ -From c2361e2d8c4b0d15eb78605097a9d2fa38c06d76 Mon Sep 17 00:00:00 2001 -From: Robert Marshall -Date: Mon, 16 Mar 2015 16:34:51 -0400 -Subject: [PATCH 056/220] Update info with grub.cfg netboot selection order - (#1148650) - -Added documentation to the grub info page that specifies the order -netboot clients will use to select a grub configuration file. - -Resolves rhbz#1148650 ---- - docs/grub.texi | 42 ++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 42 insertions(+) - -diff --git a/docs/grub.texi b/docs/grub.texi -index 6f52430..221064b 100644 ---- a/docs/grub.texi -+++ b/docs/grub.texi -@@ -2493,6 +2493,48 @@ grub-mknetdir --net-directory=/srv/tftp --subdir=/boot/grub -d /usr/lib/grub/i38 - Then follow instructions printed out by grub-mknetdir on configuring your DHCP - server. - -+The grub.cfg file is placed in the same directory as the path output by -+grub-mknetdir hereafter referred to as FWPATH. GRUB will search for its -+configuration files in order using the following rules where the appended -+value corresponds to a value on the client machine. -+ -+@example -+@group -+@samp{(FWPATH)}/grub.cfg-@samp{(UUID OF NIC)} -+@samp{(FWPATH)}/grub.cfg-@samp{(MAC ADDRESS OF NIC)} -+@samp{(FWPATH)}/grub.cfg-@samp{(IPv4 OR IPv6 ADDRESS)} -+@samp{(FWPATH)}/grub.cfg -+@end group -+@end example -+ -+The client will only attempt to look up an IPv6 address config once, however, -+it will try the IPv4 multiple times. The concrete example below shows what -+would happen under the IPv4 case. -+ -+@example -+@group -+UUID: 7726a678-7fc0-4853-a4f6-c85ac36a120a -+MAC: 52:54:00:ec:33:81 -+IPV4: 10.0.0.130 (0A000082) -+@end group -+@end example -+ -+@example -+@group -+@samp{(FWPATH)}/grub.cfg-7726a678-7fc0-4853-a4f6-c85ac36a120a -+@samp{(FWPATH)}/grub.cfg-52-54-00-ec-33-81 -+@samp{(FWPATH)}/grub.cfg-0A000082 -+@samp{(FWPATH)}/grub.cfg-0A00008 -+@samp{(FWPATH)}/grub.cfg-0A0000 -+@samp{(FWPATH)}/grub.cfg-0A000 -+@samp{(FWPATH)}/grub.cfg-0A00 -+@samp{(FWPATH)}/grub.cfg-0A0 -+@samp{(FWPATH)}/grub.cfg-0A -+@samp{(FWPATH)}/grub.cfg-0 -+@samp{(FWPATH)}/grub.cfg -+@end group -+@end example -+ - After GRUB has started, files on the TFTP server will be accessible via the - @samp{(tftp)} device. - --- -1.8.3.1 - diff --git a/0088-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch b/0056-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch similarity index 81% rename from 0088-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch rename to 0056-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch index 3d4575e..1014900 100644 --- a/0088-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch +++ b/0056-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch @@ -1,14 +1,14 @@ -From c0d5d9ca9964f2d634a25014821199e1f4ea7be1 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:46:23 -0400 -Subject: [PATCH 088/220] make GRUB_MOD_INIT() declare its function prototypes. +Subject: [PATCH] make GRUB_MOD_INIT() declare its function prototypes. --- include/grub/dl.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/grub/dl.h b/include/grub/dl.h -index f03c035..90dc9bb 100644 +index b3753c9ca26..91933b85f2c 100644 --- a/include/grub/dl.h +++ b/include/grub/dl.h @@ -54,6 +54,7 @@ grub_mod_fini (void) @@ -27,6 +27,3 @@ index f03c035..90dc9bb 100644 void \ grub_##name##_fini (void) { grub_mod_fini (); } \ static void \ --- -1.8.3.1 - diff --git a/0091-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch b/0057-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch similarity index 81% rename from 0091-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch rename to 0057-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch index e33528e..890aa34 100644 --- a/0091-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch +++ b/0057-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch @@ -1,7 +1,7 @@ -From 36ceae144ede50b60f1256e0b57ceb7ed5be8eee Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 20 Apr 2017 13:29:06 -0400 -Subject: [PATCH 091/220] Don't guess /boot/efi/ as HFS+ on ppc machines in +Subject: [PATCH] Don't guess /boot/efi/ as HFS+ on ppc machines in grub-install This should never be trying this, and since we've consolidated the @@ -16,10 +16,10 @@ Signed-off-by: Peter Jones 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/util/grub-install.c b/util/grub-install.c -index 3e718b9..37fcdac 100644 +index 84ed6e88ecb..a2bec7446cb 100644 --- a/util/grub-install.c +++ b/util/grub-install.c -@@ -1182,18 +1182,8 @@ main (int argc, char *argv[]) +@@ -1190,18 +1190,8 @@ main (int argc, char *argv[]) char *d; is_guess = 1; @@ -39,6 +39,3 @@ index 3e718b9..37fcdac 100644 if (!grub_util_is_directory (d)) { free (d); --- -1.8.3.1 - diff --git a/0058-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch b/0058-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch new file mode 100644 index 0000000..3fd779f --- /dev/null +++ b/0058-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch @@ -0,0 +1,47 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Tue, 9 Jul 2019 14:31:19 +0200 +Subject: [PATCH] 20_linux_xen: load xen or multiboot{,2} modules as needed. + +Signed-off-by: Peter Jones +--- + util/grub.d/20_linux_xen.in | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in +index e9e73b815fb..c23b064be6c 100644 +--- a/util/grub.d/20_linux_xen.in ++++ b/util/grub.d/20_linux_xen.in +@@ -153,6 +153,7 @@ linux_entry_xsm () + else + xen_rm_opts="no-real-mode edd=off" + fi ++ insmod ${xen_module} + ${xen_loader} ${rel_xen_dirname}/${xen_basename} placeholder ${xen_args} \${xen_rm_opts} + echo '$(echo "$lmessage" | grub_quote)' + ${module_loader} ${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args} +@@ -166,6 +167,7 @@ EOF + done + sed "s/^/$submenu_indentation/" << EOF + echo '$(echo "$message" | grub_quote)' ++ insmod ${xen_module} + ${module_loader} --nounzip $(echo $initrd_path) + EOF + fi +@@ -253,13 +255,16 @@ while [ "x${xen_list}" != "x" ] ; do + echo " submenu '$(gettext_printf "Xen hypervisor, version %s" "${xen_version}" | grub_quote)' \$menuentry_id_option 'xen-hypervisor-$xen_version-$boot_device_id' {" + fi + if ($grub_file --is-arm64-efi $current_xen); then ++ xen_module="xen_boot" + xen_loader="xen_hypervisor" + module_loader="xen_module" + else + if ($grub_file --is-x86-multiboot2 $current_xen); then ++ xen_module="multiboot2" + xen_loader="multiboot2" + module_loader="module2" + else ++ xen_module="multiboot" + xen_loader="multiboot" + module_loader="module" + fi diff --git a/0058-Handle-rssd-storage-devices.patch b/0058-Handle-rssd-storage-devices.patch deleted file mode 100644 index 6006555..0000000 --- a/0058-Handle-rssd-storage-devices.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 186a94f0f82bbebcbf607573ba792647acebf9cd Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 30 Jun 2015 15:50:41 -0400 -Subject: [PATCH 058/220] Handle rssd storage devices. - -Resolves: rhbz#1087962 - -Signed-off-by: Peter Jones ---- - grub-core/osdep/linux/getroot.c | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - -diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c -index 90d92d3..6d9f4e5 100644 ---- a/grub-core/osdep/linux/getroot.c -+++ b/grub-core/osdep/linux/getroot.c -@@ -921,6 +921,19 @@ grub_util_part_to_disk (const char *os_dev, struct stat *st, - return path; - } - -+ /* If this is an rssd device. */ -+ if ((strncmp ("rssd", p, 4) == 0) && p[4] >= 'a' && p[4] <= 'z') -+ { -+ char *pp = p + 4; -+ while (*pp >= 'a' && *pp <= 'z') -+ pp++; -+ if (*pp) -+ *is_part = 1; -+ /* /dev/rssd[a-z]+[0-9]* */ -+ *pp = '\0'; -+ return path; -+ } -+ - /* If this is a loop device */ - if ((strncmp ("loop", p, 4) == 0) && p[4] >= '0' && p[4] <= '9') - { --- -1.8.3.1 - diff --git a/0093-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch b/0059-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch similarity index 97% rename from 0093-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch rename to 0059-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch index 95358a0..acfb116 100644 --- a/0093-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch +++ b/0059-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch @@ -1,8 +1,7 @@ -From 1742890ed8ea75a898f2bc7a47c61d6acacf4128 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 7 Nov 2017 17:12:17 -0500 -Subject: [PATCH 093/220] Make pmtimer tsc calibration not take 51 seconds to - fail. +Subject: [PATCH] Make pmtimer tsc calibration not take 51 seconds to fail. On my laptop running at 2.4GHz, if I run a VM where tsc calibration using pmtimer will fail presuming a broken pmtimer, it takes ~51 seconds @@ -64,7 +63,7 @@ Signed-off-by: Peter Jones 1 file changed, 89 insertions(+), 20 deletions(-) diff --git a/grub-core/kern/i386/tsc_pmtimer.c b/grub-core/kern/i386/tsc_pmtimer.c -index c9c3616..ca15c3a 100644 +index c9c36169978..ca15c3aacd7 100644 --- a/grub-core/kern/i386/tsc_pmtimer.c +++ b/grub-core/kern/i386/tsc_pmtimer.c @@ -28,40 +28,101 @@ @@ -210,6 +209,3 @@ index c9c3616..ca15c3a 100644 tsc_diff = grub_pmtimer_wait_count_tsc (pmtimer, 3580); if (tsc_diff == 0) return 0; --- -1.8.3.1 - diff --git a/0094-align-struct-efi_variable-better.patch b/0060-align-struct-efi_variable-better.patch similarity index 81% rename from 0094-align-struct-efi_variable-better.patch rename to 0060-align-struct-efi_variable-better.patch index 6ecad78..ec26def 100644 --- a/0094-align-struct-efi_variable-better.patch +++ b/0060-align-struct-efi_variable-better.patch @@ -1,7 +1,7 @@ -From d49469ac1d2173db50595517e4bb8d5fe8f2a68b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 27 Feb 2018 13:55:35 -0500 -Subject: [PATCH 094/220] align struct efi_variable better... +Subject: [PATCH] align struct efi_variable better... --- include/grub/efiemu/runtime.h | 2 +- @@ -9,7 +9,7 @@ Subject: [PATCH 094/220] align struct efi_variable better... 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/include/grub/efiemu/runtime.h b/include/grub/efiemu/runtime.h -index 36d2ded..9d93ba8 100644 +index 36d2dedf47e..9d93ba88bac 100644 --- a/include/grub/efiemu/runtime.h +++ b/include/grub/efiemu/runtime.h @@ -33,5 +33,5 @@ struct efi_variable @@ -20,7 +20,7 @@ index 36d2ded..9d93ba8 100644 +} GRUB_PACKED GRUB_ALIGNED(8); #endif /* ! GRUB_EFI_EMU_RUNTIME_HEADER */ diff --git a/include/grub/types.h b/include/grub/types.h -index 035a4b5..2fc4be4 100644 +index 0a3ff159136..ba446d99040 100644 --- a/include/grub/types.h +++ b/include/grub/types.h @@ -29,6 +29,7 @@ @@ -31,6 +31,3 @@ index 035a4b5..2fc4be4 100644 #ifdef GRUB_BUILD # define GRUB_CPU_SIZEOF_VOID_P BUILD_SIZEOF_VOID_P --- -1.8.3.1 - diff --git a/0061-Add-BLS-support-to-grub-mkconfig.patch b/0061-Add-BLS-support-to-grub-mkconfig.patch new file mode 100644 index 0000000..f7c8064 --- /dev/null +++ b/0061-Add-BLS-support-to-grub-mkconfig.patch @@ -0,0 +1,399 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Fri, 9 Dec 2016 15:40:29 -0500 +Subject: [PATCH] Add BLS support to grub-mkconfig + +GRUB now has BootLoaderSpec support, the user can choose to use this by +setting GRUB_ENABLE_BLSCFG to true in /etc/default/grub. On this setup, +the boot menu entries are not added to the grub.cfg, instead BLS config +files are parsed by blscfg command and the entries created dynamically. + +A 10_linux_bls grub.d snippet to generate menu entries from BLS files +is also added that can be used on platforms where the bootloader doesn't +have BLS support and only can parse a normal grub configuration file. + +Portions of the 10_linux_bls were taken from the ostree-grub-generator +script that's included in the OSTree project. + +Fixes to support multi-devices and generate a BLS section even if no +kernels are found in the boot directory were proposed by Yclept Nemo +and Tom Gundersen respectively. + +Signed-off-by: Peter Jones +[javierm: remove outdated URL for BLS document] +Signed-off-by: Javier Martinez Canillas +Signed-off-by: Robbie Harwood +--- + util/grub-mkconfig.8 | 4 + + util/grub-mkconfig.in | 9 +- + util/grub-mkconfig_lib.in | 22 ++++- + util/grub.d/10_linux.in | 223 +++++++++++++++++++++++++++++++++++++++++++++- + 4 files changed, 252 insertions(+), 6 deletions(-) + +diff --git a/util/grub-mkconfig.8 b/util/grub-mkconfig.8 +index a2d1f577b9b..434fa4deda4 100644 +--- a/util/grub-mkconfig.8 ++++ b/util/grub-mkconfig.8 +@@ -13,5 +13,9 @@ + \fB--output\fR=\fIFILE\fR + Write generated output to \fIFILE\fR. + ++.TP ++\fB--no-grubenv-update\fR ++Do not update variables in the grubenv file. ++ + .SH SEE ALSO + .BR "info grub" +diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in +index 535c0f02499..f55339a3f64 100644 +--- a/util/grub-mkconfig.in ++++ b/util/grub-mkconfig.in +@@ -50,6 +50,8 @@ grub_get_kernel_settings="${sbindir}/@grub_get_kernel_settings@" + export TEXTDOMAIN=@PACKAGE@ + export TEXTDOMAINDIR="@localedir@" + ++export GRUB_GRUBENV_UPDATE="yes" ++ + . "${pkgdatadir}/grub-mkconfig_lib" + + # Usage: usage +@@ -59,6 +61,7 @@ usage () { + gettext "Generate a grub config file"; echo + echo + print_option_help "-o, --output=$(gettext FILE)" "$(gettext "output generated config to FILE [default=stdout]")" ++ print_option_help "--no-grubenv-update" "$(gettext "do not update variables in the grubenv file")" + print_option_help "-h, --help" "$(gettext "print this message and exit")" + print_option_help "-V, --version" "$(gettext "print the version information and exit")" + echo +@@ -94,6 +97,9 @@ do + --output=*) + grub_cfg=`echo "$option" | sed 's/--output=//'` + ;; ++ --no-grubenv-update) ++ GRUB_GRUBENV_UPDATE="no" ++ ;; + -*) + gettext_printf "Unrecognized option \`%s'\n" "$option" 1>&2 + usage +@@ -253,7 +259,8 @@ export GRUB_DEFAULT \ + GRUB_OS_PROBER_SKIP_LIST \ + GRUB_DISABLE_SUBMENU \ + GRUB_DEFAULT_DTB \ +- SUSE_BTRFS_SNAPSHOT_BOOTING ++ SUSE_BTRFS_SNAPSHOT_BOOTING \ ++ GRUB_ENABLE_BLSCFG + + if test "x${grub_cfg}" != "x"; then + rm -f "${grub_cfg}.new" +diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in +index fafeac95061..d8bb4069360 100644 +--- a/util/grub-mkconfig_lib.in ++++ b/util/grub-mkconfig_lib.in +@@ -30,6 +30,9 @@ fi + if test "x$grub_file" = x; then + grub_file="${bindir}/@grub_file@" + fi ++if test "x$grub_editenv" = x; then ++ grub_editenv="${bindir}/@grub_editenv@" ++fi + if test "x$grub_mkrelpath" = x; then + grub_mkrelpath="${bindir}/@grub_mkrelpath@" + fi +@@ -125,8 +128,19 @@ EOF + fi + } + ++prepare_grub_to_access_device_with_variable () ++{ ++ device_variable="$1" ++ shift ++ prepare_grub_to_access_device "$@" ++ unset "device_variable" ++} ++ + prepare_grub_to_access_device () + { ++ if [ -z "$device_variable" ]; then ++ device_variable="root" ++ fi + old_ifs="$IFS" + IFS=' + ' +@@ -161,18 +175,18 @@ prepare_grub_to_access_device () + # otherwise set root as per value in device.map. + fs_hint="`"${grub_probe}" --device $@ --target=compatibility_hint`" + if [ "x$fs_hint" != x ]; then +- echo "set root='$fs_hint'" ++ echo "set ${device_variable}='$fs_hint'" + fi + if [ "x${GRUB_DISABLE_UUID}" != "xtrue" ] && fs_uuid="`"${grub_probe}" --device $@ --target=fs_uuid 2> /dev/null`" ; then + hints="`"${grub_probe}" --device $@ --target=hints_string 2> /dev/null`" || hints= + if [ "x$hints" != x ]; then + echo "if [ x\$feature_platform_search_hint = xy ]; then" +- echo " search --no-floppy --fs-uuid --set=root ${hints} ${fs_uuid}" ++ echo " search --no-floppy --fs-uuid --set=${device_variable} ${hints} ${fs_uuid}" + echo "else" +- echo " search --no-floppy --fs-uuid --set=root ${fs_uuid}" ++ echo " search --no-floppy --fs-uuid --set=${device_variable} ${fs_uuid}" + echo "fi" + else +- echo "search --no-floppy --fs-uuid --set=root ${fs_uuid}" ++ echo "search --no-floppy --fs-uuid --set=${device_variable} ${fs_uuid}" + fi + fi + IFS="$old_ifs" +diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +index 7bb3a211a7c..6bceabf3dc9 100644 +--- a/util/grub.d/10_linux.in ++++ b/util/grub.d/10_linux.in +@@ -82,6 +82,223 @@ case x"$GRUB_FS" in + ;; + esac + ++populate_header_warn() ++{ ++if [ "x${BLS_POPULATE_MENU}" = "xtrue" ]; then ++ bls_parser="10_linux script" ++else ++ bls_parser="blscfg command" ++fi ++cat </dev/null | tac)) || : ++ ++ echo "${files[@]}" ++} ++ ++update_bls_cmdline() ++{ ++ local cmdline="root=${LINUX_ROOT_DEVICE} ro ${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" ++ local -a files=($(get_sorted_bls)) ++ ++ for bls in "${files[@]}"; do ++ local options="${cmdline}" ++ if [ -z "${bls##*debug*}" ]; then ++ options="${options} ${GRUB_CMDLINE_LINUX_DEBUG}" ++ fi ++ options="$(echo "${options}" | sed -e 's/\//\\\//g')" ++ sed -i -e "s/^options.*/options ${options}/" "${blsdir}/${bls}.conf" ++ done ++} ++ ++populate_menu() ++{ ++ local -a files=($(get_sorted_bls)) ++ ++ gettext_printf "Generating boot entries from BLS files...\n" >&2 ++ ++ for bls in "${files[@]}"; do ++ read_config "${blsdir}/${bls}.conf" ++ ++ menu="${menu}menuentry '${title}' ${grub_arg} --id=${bls} {\n" ++ menu="${menu}\t linux ${linux} ${options}\n" ++ if [ -n "${initrd}" ] ; then ++ menu="${menu}\t initrd ${boot_prefix}${initrd}\n" ++ fi ++ menu="${menu}}\n\n" ++ done ++ # The printf command seems to be more reliable across shells for special character (\n, \t) evaluation ++ printf "$menu" ++} ++ ++# Make BLS the default if GRUB_ENABLE_BLSCFG was not set and grubby is not installed. ++if [ -z "${GRUB_ENABLE_BLSCFG}" ] && [ -z "$(which new-kernel-pkg 2> /dev/null)" ]; then ++ GRUB_ENABLE_BLSCFG="true" ++fi ++ ++if [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then ++ if [ x$dirname = x/ ]; then ++ if [ -z "${prepare_root_cache}" ]; then ++ prepare_grub_to_access_device ${GRUB_DEVICE} ++ fi ++ else ++ if [ -z "${prepare_boot_cache}" ]; then ++ prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} ++ fi ++ fi ++ ++ if [ -d /sys/firmware/efi ]; then ++ bootefi_device="`${grub_probe} --target=device /boot/efi/`" ++ prepare_grub_to_access_device_with_variable boot ${bootefi_device} ++ else ++ boot_device="`${grub_probe} --target=device /boot/`" ++ prepare_grub_to_access_device_with_variable boot ${boot_device} ++ fi ++ ++ arch="$(uname -m)" ++ if [ "x${arch}" = "xppc64le" ] && [ -d /sys/firmware/opal ]; then ++ ++ BLS_POPULATE_MENU="true" ++ petitboot_path="/sys/firmware/devicetree/base/ibm,firmware-versions/petitboot" ++ ++ if test -e ${petitboot_path}; then ++ read -r -d '' petitboot_version < ${petitboot_path} ++ petitboot_version="$(echo ${petitboot_version//v})" ++ ++ if test -n ${petitboot_version}; then ++ major_version="$(echo ${petitboot_version} | cut -d . -f1)" ++ minor_version="$(echo ${petitboot_version} | cut -d . -f2)" ++ ++ re='^[0-9]+$' ++ if [[ $major_version =~ $re ]] && [[ $minor_version =~ $re ]] && ++ ([[ ${major_version} -gt 1 ]] || ++ [[ ${major_version} -eq 1 && ++ ${minor_version} -ge 8 ]]); then ++ BLS_POPULATE_MENU="false" ++ fi ++ fi ++ fi ++ fi ++ ++ populate_header_warn ++ ++ cat << EOF ++# The kernelopts variable should be defined in the grubenv file. But to ensure that menu ++# entries populated from BootLoaderSpec files that use this variable work correctly even ++# without a grubenv file, define a fallback kernelopts variable if this has not been set. ++# ++# The kernelopts variable in the grubenv file can be modified using the grubby tool or by ++# executing the grub2-mkconfig tool. For the latter, the values of the GRUB_CMDLINE_LINUX ++# and GRUB_CMDLINE_LINUX_DEFAULT options from /etc/default/grub file are used to set both ++# the kernelopts variable in the grubenv file and the fallback kernelopts variable. ++if [ -z "\${kernelopts}" ]; then ++ set kernelopts="root=${LINUX_ROOT_DEVICE} ro ${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" ++fi ++EOF ++ ++ update_bls_cmdline ++ ++ if [ "x${BLS_POPULATE_MENU}" = "xtrue" ]; then ++ populate_menu ++ else ++ cat << EOF ++ ++insmod blscfg ++blscfg ++EOF ++ fi ++ ++ if [ "x${GRUB_GRUBENV_UPDATE}" = "xyes" ]; then ++ blsdir="/boot/loader/entries" ++ [ -d "${blsdir}" ] && GRUB_BLS_FS="$(${grub_probe} --target=fs ${blsdir})" ++ if [ "x${GRUB_BLS_FS}" = "xbtrfs" ] || [ "x${GRUB_BLS_FS}" = "xzfs" ]; then ++ blsdir=$(make_system_path_relative_to_its_root "${blsdir}") ++ if [ "x${blsdir}" != "x/loader/entries" ] && [ "x${blsdir}" != "x/boot/loader/entries" ]; then ++ ${grub_editenv} - set blsdir="${blsdir}" ++ fi ++ fi ++ ++ if [ -n "${GRUB_EARLY_INITRD_LINUX_CUSTOM}" ]; then ++ ${grub_editenv} - set early_initrd="${GRUB_EARLY_INITRD_LINUX_CUSTOM}" ++ fi ++ ++ if [ -n "${GRUB_DEFAULT_DTB}" ]; then ++ ${grub_editenv} - set devicetree="${GRUB_DEFAULT_DTB}" ++ fi ++ ++ if [ -n "${GRUB_SAVEDEFAULT}" ]; then ++ ${grub_editenv} - set save_default="${GRUB_SAVEDEFAULT}" ++ fi ++ fi ++ ++ exit 0 ++fi ++ + mktitle () + { + local title_type +@@ -121,6 +338,7 @@ linux_entry () + if [ -z "$boot_device_id" ]; then + boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" + fi ++ + if [ x$type != xsimple ] ; then + title=$(mktitle "$type" "$version") + if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then +@@ -231,6 +449,7 @@ is_top_level=true + while [ "x$list" != "x" ] ; do + linux=`version_find_latest $list` + gettext_printf "Found linux image: %s\n" "$linux" >&2 ++ + basename=`basename $linux` + dirname=`dirname $linux` + rel_dirname=`make_system_path_relative_to_its_root $dirname` +@@ -269,7 +488,9 @@ while [ "x$list" != "x" ] ; do + for i in ${initrd}; do + initrd_display="${initrd_display} ${dirname}/${i}" + done +- gettext_printf "Found initrd image: %s\n" "$(echo $initrd_display)" >&2 ++ if [ "x${GRUB_ENABLE_BLSCFG}" != "xtrue" ]; then ++ gettext_printf "Found initrd image: %s\n" "$(echo $initrd_display)" >&2 ++ fi + fi + + fdt= diff --git a/0096-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch b/0062-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch similarity index 73% rename from 0096-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch rename to 0062-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch index d5a0d7f..9ff4c8b 100644 --- a/0096-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch +++ b/0062-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch @@ -1,8 +1,7 @@ -From 141eaab0d63830598e4304451e407289468968cb Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:16:28 +0100 -Subject: [PATCH 096/220] Don't attempt to backtrace on grub_abort() for - grub-emu +Subject: [PATCH] Don't attempt to backtrace on grub_abort() for grub-emu The emu platform doesn't have a grub_backtrace() implementation, so this causes a build error. Don't attempt to call this when building grub-emu. @@ -13,10 +12,10 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index 04371ac..636f97e 100644 +index a3e215155bd..c60601b699d 100644 --- a/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c -@@ -1103,7 +1103,7 @@ static void __attribute__ ((noreturn)) +@@ -1201,7 +1201,7 @@ static void __attribute__ ((noreturn)) grub_abort (void) { #ifndef GRUB_UTIL @@ -25,6 +24,3 @@ index 04371ac..636f97e 100644 grub_backtrace(); #endif #endif --- -1.8.3.1 - diff --git a/0062-Fix-security-issue-when-reading-username-and-passwor.patch b/0062-Fix-security-issue-when-reading-username-and-passwor.patch deleted file mode 100644 index 489d490..0000000 --- a/0062-Fix-security-issue-when-reading-username-and-passwor.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 8483464867a872744a2c40a3b4016d3b81033a5d Mon Sep 17 00:00:00 2001 -From: Hector Marco-Gisbert -Date: Fri, 13 Nov 2015 16:21:09 +0100 -Subject: [PATCH 062/220] Fix security issue when reading username and password - - This patch fixes two integer underflows at: - * grub-core/lib/crypto.c - * grub-core/normal/auth.c - -Resolves: CVE-2015-8370 - -Signed-off-by: Hector Marco-Gisbert -Signed-off-by: Ismael Ripoll-Ripoll ---- - grub-core/lib/crypto.c | 2 +- - grub-core/normal/auth.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/grub-core/lib/crypto.c b/grub-core/lib/crypto.c -index ca334d5..e6c78d1 100644 ---- a/grub-core/lib/crypto.c -+++ b/grub-core/lib/crypto.c -@@ -468,7 +468,7 @@ grub_password_get (char buf[], unsigned buf_size) - break; - } - -- if (key == '\b') -+ if (key == '\b' && cur_len) - { - if (cur_len) - cur_len--; -diff --git a/grub-core/normal/auth.c b/grub-core/normal/auth.c -index 6be678c..c35ce97 100644 ---- a/grub-core/normal/auth.c -+++ b/grub-core/normal/auth.c -@@ -172,7 +172,7 @@ grub_username_get (char buf[], unsigned buf_size) - break; - } - -- if (key == GRUB_TERM_BACKSPACE) -+ if (key == GRUB_TERM_BACKSPACE && cur_len) - { - if (cur_len) - { --- -1.8.3.1 - diff --git a/0063-Add-a-url-parser.patch b/0063-Add-a-url-parser.patch deleted file mode 100644 index ec773a7..0000000 --- a/0063-Add-a-url-parser.patch +++ /dev/null @@ -1,1024 +0,0 @@ -From eb8bcbb4845d6b87f16774ee62de3e5a11ccd6f1 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 14 Jun 2016 16:18:44 -0400 -Subject: [PATCH 063/220] Add a url parser. - -This patch adds a url parser that can parse http, https, tftp, and tftps -urls, and is easily extensible to handle more types. - -It's a little ugly in terms of the arguments it takes. - -Signed-off-by: Peter Jones ---- - grub-core/Makefile.core.def | 1 + - grub-core/kern/misc.c | 13 + - grub-core/net/url.c | 861 ++++++++++++++++++++++++++++++++++++++++++++ - include/grub/misc.h | 45 +++ - include/grub/net/url.h | 28 ++ - 5 files changed, 948 insertions(+) - create mode 100644 grub-core/net/url.c - create mode 100644 include/grub/net/url.h - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 57e253a..99466b1 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -2284,6 +2284,7 @@ module = { - common = net/ethernet.c; - common = net/arp.c; - common = net/netbuff.c; -+ common = net/url.c; - }; - - module = { -diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index 2656a67..1c560ea 100644 ---- a/grub-core/kern/misc.c -+++ b/grub-core/kern/misc.c -@@ -296,6 +296,19 @@ grub_strrchr (const char *s, int c) - return p; - } - -+char * -+grub_strchrnul (const char *s, int c) -+{ -+ do -+ { -+ if (*s == c) -+ break; -+ } -+ while (*s++); -+ -+ return (char *) s; -+} -+ - int - grub_strword (const char *haystack, const char *needle) - { -diff --git a/grub-core/net/url.c b/grub-core/net/url.c -new file mode 100644 -index 0000000..1468582 ---- /dev/null -+++ b/grub-core/net/url.c -@@ -0,0 +1,861 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2016 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#ifdef URL_TEST -+ -+#define _GNU_SOURCE 1 -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define N_(x) x -+ -+#define grub_malloc(x) malloc(x) -+#define grub_free(x) ({if (x) free(x);}) -+#define grub_error(a, fmt, args...) printf(fmt "\n", ## args) -+#define grub_dprintf(a, fmt, args...) printf(a ": " fmt, ## args) -+#define grub_strlen(x) strlen(x) -+#define grub_strdup(x) strdup(x) -+#define grub_strstr(x,y) strstr(x,y) -+#define grub_memcpy(x,y,z) memcpy(x,y,z) -+#define grub_strcmp(x,y) strcmp(x,y) -+#define grub_strncmp(x,y,z) strncmp(x,y,z) -+#define grub_strcasecmp(x,y) strcasecmp(x,y) -+#define grub_strchrnul(x,y) strchrnul(x,y) -+#define grub_strchr(x,y) strchr(x,y) -+#define grub_strndup(x,y) strndup(x,y) -+#define grub_strtoul(x,y,z) strtoul(x,y,z) -+#define grub_memmove(x,y,z) memmove(x,y,z) -+#define grub_size_t size_t -+#define grub_errno errno -+ -+#else -+#include -+#include -+#include -+#include -+#endif -+ -+static char * -+translate_slashes(char *str) -+{ -+ int i, j; -+ if (str == NULL) -+ return str; -+ -+ for (i = 0, j = 0; str[i] != '\0'; i++, j++) -+ { -+ if (str[i] == '\\') -+ { -+ str[j] = '/'; -+ if (str[i+1] == '\\') -+ i++; -+ } -+ } -+ -+ return str; -+} -+ -+static inline int -+hex2int (char c) -+{ -+ if (c >= '0' && c <= '9') -+ return c - '0'; -+ c |= 0x20; -+ if (c >= 'a' && c <= 'f') -+ return c - 'a' + 10; -+ return -1; -+} -+ -+static int -+url_unescape (char *buf, grub_size_t len) -+{ -+ int c, rc; -+ unsigned int i; -+ -+ -+ if (len < 3) -+ { -+ for (i = 0; i < len; i++) -+ if (buf[i] == '%') -+ return -1; -+ return 0; -+ } -+ -+ for (i = 0; len > 2 && i < len - 2; i++) -+ { -+ if (buf[i] == '%') -+ { -+ unsigned int j; -+ for (j = i+1; j < i+3; j++) -+ { -+ if (!(buf[j] >= '0' && buf[j] <= '9') && -+ !(buf[j] >= 'a' && buf[j] <= 'f') && -+ !(buf[j] >= 'A' && buf[j] <= 'F')) -+ return -1; -+ } -+ i += 2; -+ } -+ } -+ if (i == len - 2) -+ { -+ if (buf[i+1] == '%' || buf[i+2] == '%') -+ return -1; -+ } -+ for (i = 0; i < len - 2; i++) -+ { -+ if (buf[i] == '%') -+ { -+ rc = hex2int (buf[i+1]); -+ if (rc < 0) -+ return -1; -+ c = (rc & 0xf) << 4; -+ rc = hex2int (buf[i+2]); -+ if (rc < 0) -+ return -1; -+ c |= (rc & 0xf); -+ -+ buf[i] = c; -+ grub_memmove (buf+i+1, buf+i+3, len-(i+2)); -+ len -= 2; -+ } -+ } -+ return 0; -+} -+ -+static int -+extract_http_url_info (char *url, int ssl, -+ char **userinfo, char **host, int *port, -+ char **file) -+{ -+ char *colon, *slash, *query, *at = NULL, *separator, *auth_end; -+ -+ char *userinfo_off = NULL; -+ char *userinfo_end; -+ char *host_off = NULL; -+ char *host_end; -+ char *port_off = NULL; -+ char *port_end; -+ char *file_off = NULL; -+ -+ grub_size_t l; -+ int c; -+ -+ if (!url || !userinfo || !host || !port || !file) -+ return grub_error (GRUB_ERR_BAD_ARGUMENT, "Invalid argument"); -+ -+ *userinfo = *host = *file = NULL; -+ *port = -1; -+ -+ userinfo_off = url; -+ -+ slash = grub_strchrnul (userinfo_off, '/'); -+ query = grub_strchrnul (userinfo_off, '?'); -+ auth_end = slash < query ? slash : query; -+ /* auth_end here is one /past/ the last character in the auth section, i.e. -+ * it's the : or / or NUL */ -+ -+ separator = grub_strchrnul (userinfo_off, '@'); -+ if (separator > auth_end) -+ { -+ host_off = userinfo_off; -+ userinfo_off = NULL; -+ userinfo_end = NULL; -+ } -+ else -+ { -+ at = separator; -+ *separator = '\0'; -+ userinfo_end = separator; -+ host_off = separator + 1; -+ } -+ -+ if (*host_off == '[') -+ { -+ separator = grub_strchrnul (host_off, ']'); -+ if (separator >= auth_end) -+ goto fail; -+ -+ separator += 1; -+ host_end = separator; -+ } -+ else -+ { -+ host_end = separator = colon = grub_strchrnul (host_off, ':'); -+ -+ if (colon > auth_end) -+ { -+ separator = NULL; -+ host_end = auth_end; -+ } -+ } -+ -+ if (separator && separator < auth_end) -+ { -+ if (*separator == ':') -+ { -+ port_off = separator + 1; -+ port_end = auth_end; -+ -+ if (auth_end - port_end > 0) -+ goto fail; -+ if (port_end - port_off < 1) -+ goto fail; -+ } -+ else -+ goto fail; -+ } -+ -+ file_off = auth_end; -+ if (port_off) -+ { -+ unsigned long portul; -+ -+ separator = NULL; -+ c = *port_end; -+ *port_end = '\0'; -+ -+ portul = grub_strtoul (port_off, &separator, 10); -+ *port_end = c; -+#ifdef URL_TEST -+ if (portul == ULONG_MAX && errno == ERANGE) -+ goto fail; -+#else -+ if (grub_errno == GRUB_ERR_OUT_OF_RANGE) -+ goto fail; -+#endif -+ if (portul & ~0xfffful) -+ goto fail; -+ if (separator != port_end) -+ goto fail; -+ -+ *port = portul & 0xfffful; -+ } -+ else if (ssl) -+ *port = 443; -+ else -+ *port = 80; -+ -+ if (userinfo_off && *userinfo_off) -+ { -+ l = userinfo_end - userinfo_off + 1; -+ -+ *userinfo = grub_strndup (userinfo_off, l); -+ if (!*userinfo) -+ goto fail; -+ (*userinfo)[l-1]= '\0'; -+ } -+ -+ l = host_end - host_off; -+ -+ if (host_end == NULL) -+ goto fail; -+ else -+ c = *host_end; -+ -+ *host_end = '\0'; -+ *host = grub_strndup (host_off, l); -+ *host_end = c; -+ if (!*host) -+ goto fail; -+ (*host)[l] = '\0'; -+ -+ *file = grub_strdup (file_off); -+ if (!*file) -+ goto fail; -+ -+ if (at) -+ *at = '@'; -+ return 0; -+fail: -+ if (at) -+ *at = '@'; -+ grub_free (*userinfo); -+ grub_free (*host); -+ grub_free (*file); -+ -+ return -1; -+} -+ -+static int -+extract_tftp_url_info (char *url, int ssl, char **host, char **file, int *port) -+{ -+ char *slash, *semi; -+ -+ char *host_off = url; -+ char *host_end; -+ char *file_off; -+ -+ int c; -+ -+ if (!url || !host || !file || !port) -+ return grub_error (GRUB_ERR_BAD_ARGUMENT, "Invalid argument"); -+ -+ if (ssl) -+ *port = 3713; -+ else -+ *port = 69; -+ -+ slash = grub_strchr (url, '/'); -+ if (!slash) -+ return -1; -+ -+ host_end = file_off = slash; -+ -+ semi = grub_strchrnul (slash, ';'); -+ if (!grub_strncmp (semi, ";mode=", 6) && grub_strcmp (semi+6, "octet")) -+ { -+ grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, -+ N_("TFTP mode `%s' is not implemented."), semi+6); -+ return -1; -+ } -+ -+ /* -+ * Maybe somebody added a new method, I dunno. Anyway, semi is a reserved -+ * character, so if it's there, it's the start of the mode block or it's -+ * invalid. So set it to \0 unconditionally, not just for ;mode=octet -+ */ -+ *semi = '\0'; -+ -+ c = *host_end; -+ *host_end = '\0'; -+ *host = grub_strdup (host_off); -+ *host_end = c; -+ -+ *file = grub_strdup (file_off); -+ -+ if (!*file || !*host) -+ { -+ grub_free (*file); -+ grub_free (*host); -+ return -1; -+ } -+ -+ return 0; -+} -+ -+int -+extract_url_info (const char *urlbuf, grub_size_t buflen, -+ char **scheme, char **userinfo, -+ char **host, int *port, char **file) -+{ -+ char *url; -+ char *colon; -+ -+ char *scheme_off; -+ char *specific_off; -+ -+ int rc; -+ int c; -+ -+ int https; -+ -+ if (!urlbuf || !buflen || !scheme || !userinfo || !host || !port || !file) -+ return grub_error (GRUB_ERR_BAD_ARGUMENT, "Invalid argument"); -+ -+ *scheme = *userinfo = *host = *file = NULL; -+ *port = -1; -+ -+ /* make sure we have our own coherent grub_string. */ -+ url = grub_malloc (buflen + 1); -+ if (!url) -+ return -1; -+ -+ grub_memcpy (url, urlbuf, buflen); -+ url[buflen] = '\0'; -+ -+ grub_dprintf ("net", "dhcpv6 boot-file-url: `%s'\n", url); -+ -+ /* get rid of any backslashes */ -+ url = translate_slashes (url); -+ -+ /* find the constituent parts */ -+ colon = grub_strstr (url, "://"); -+ if (!colon) -+ goto fail; -+ -+ scheme_off = url; -+ c = *colon; -+ *colon = '\0'; -+ specific_off = colon + 3; -+ -+ https = !grub_strcasecmp (scheme_off, "https"); -+ -+ rc = 0; -+ if (!grub_strcasecmp (scheme_off, "tftp")) -+ { -+ rc = extract_tftp_url_info (specific_off, 0, host, file, port); -+ } -+#ifdef URL_TEST -+ else if (!grub_strcasecmp (scheme_off, "http") || https) -+#else -+ else if (!grub_strcasecmp (scheme_off, "http")) -+#endif -+ { -+ rc = extract_http_url_info (specific_off, -+ https, userinfo, host, port, file); -+ } -+#ifdef URL_TEST -+ else if (!grub_strcasecmp (scheme_off, "iscsi")) -+ { -+ grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, -+ N_("Unimplemented URL scheme `%s'"), scheme_off); -+ *colon = c; -+ goto fail; -+ } -+ else if (!grub_strcasecmp (scheme_off, "tftps")) -+ { -+ rc = extract_tftp_url_info (specific_off, 1, host, file, port); -+ } -+#endif -+ else -+ { -+ grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, -+ N_("Unimplemented URL scheme `%s'"), scheme_off); -+ *colon = c; -+ goto fail; -+ } -+ -+ if (rc < 0) -+ { -+ *colon = c; -+ goto fail; -+ } -+ -+ *scheme = grub_strdup (scheme_off); -+ *colon = c; -+ if (!*scheme) -+ goto fail; -+ -+ if (*userinfo) -+ { -+ rc = url_unescape (*userinfo, grub_strlen (*userinfo)); -+ if (rc < 0) -+ goto fail; -+ } -+ -+ if (*host) -+ { -+ rc = url_unescape (*host, grub_strlen (*host)); -+ if (rc < 0) -+ goto fail; -+ } -+ -+ if (*file) -+ { -+ rc = url_unescape (*file, grub_strlen (*file)); -+ if (rc < 0) -+ goto fail; -+ } -+ -+ grub_free (url); -+ return 0; -+fail: -+ grub_free (*scheme); -+ grub_free (*userinfo); -+ grub_free (*host); -+ grub_free (*file); -+ -+ if (!grub_errno) -+ grub_error (GRUB_ERR_NET_BAD_ADDRESS, N_("Invalid boot-file-url `%s'"), -+ url); -+ grub_free (url); -+ return -1; -+} -+ -+#ifdef URL_TEST -+ -+struct test { -+ char *url; -+ int rc; -+ char *scheme; -+ char *userinfo; -+ char *host; -+ int port; -+ char *file; -+} tests[] = { -+ {.url = "http://foo.example.com/", -+ .rc = 0, -+ .scheme = "http", -+ .host = "foo.example.com", -+ .port = 80, -+ .file = "/", -+ }, -+ {.url = "http://foo.example.com/?foobar", -+ .rc = 0, -+ .scheme = "http", -+ .host = "foo.example.com", -+ .port = 80, -+ .file = "/?foobar", -+ }, -+ {.url = "http://[foo.example.com/", -+ .rc = -1, -+ }, -+ {.url = "http://[foo.example.com/?foobar", -+ .rc = -1, -+ }, -+ {.url = "http://foo.example.com:/", -+ .rc = -1, -+ }, -+ {.url = "http://foo.example.com:81/", -+ .rc = 0, -+ .scheme = "http", -+ .host = "foo.example.com", -+ .port = 81, -+ .file = "/", -+ }, -+ {.url = "http://foo.example.com:81/?foobar", -+ .rc = 0, -+ .scheme = "http", -+ .host = "foo.example.com", -+ .port = 81, -+ .file = "/?foobar", -+ }, -+ {.url = "http://[1234::1]/", -+ .rc = 0, -+ .scheme = "http", -+ .host = "[1234::1]", -+ .port = 80, -+ .file = "/", -+ }, -+ {.url = "http://[1234::1]/?foobar", -+ .rc = 0, -+ .scheme = "http", -+ .host = "[1234::1]", -+ .port = 80, -+ .file = "/?foobar", -+ }, -+ {.url = "http://[1234::1]:81/", -+ .rc = 0, -+ .scheme = "http", -+ .host = "[1234::1]", -+ .port = 81, -+ .file = "/", -+ }, -+ {.url = "http://[1234::1]:81/?foobar", -+ .rc = 0, -+ .scheme = "http", -+ .host = "[1234::1]", -+ .port = 81, -+ .file = "/?foobar", -+ }, -+ {.url = "http://foo@foo.example.com/", -+ .rc = 0, -+ .scheme = "http", -+ .userinfo = "foo", -+ .host = "foo.example.com", -+ .port = 80, -+ .file = "/", -+ }, -+ {.url = "http://foo@foo.example.com/?foobar", -+ .rc = 0, -+ .scheme = "http", -+ .userinfo = "foo", -+ .host = "foo.example.com", -+ .port = 80, -+ .file = "/?foobar", -+ }, -+ {.url = "http://foo@[foo.example.com/", -+ .rc = -1, -+ }, -+ {.url = "http://foo@[foo.example.com/?foobar", -+ .rc = -1, -+ }, -+ {.url = "http://foo@foo.example.com:81/", -+ .rc = 0, -+ .scheme = "http", -+ .userinfo = "foo", -+ .host = "foo.example.com", -+ .port = 81, -+ .file = "/", -+ }, -+ {.url = "http://foo@foo.example.com:81/?foobar", -+ .rc = 0, -+ .scheme = "http", -+ .userinfo = "foo", -+ .host = "foo.example.com", -+ .port = 81, -+ .file = "/?foobar", -+ }, -+ {.url = "http://foo@[1234::1]/", -+ .rc = 0, -+ .scheme = "http", -+ .userinfo = "foo", -+ .host = "[1234::1]", -+ .port = 80, -+ .file = "/", -+ }, -+ {.url = "http://foo@[1234::1]/?foobar", -+ .rc = 0, -+ .scheme = "http", -+ .userinfo = "foo", -+ .host = "[1234::1]", -+ .port = 80, -+ .file = "/?foobar", -+ }, -+ {.url = "http://foo@[1234::1]:81/", -+ .rc = 0, -+ .scheme = "http", -+ .userinfo = "foo", -+ .host = "[1234::1]", -+ .port = 81, -+ .file = "/", -+ }, -+ {.url = "http://foo@[1234::1]:81/?foobar", -+ .rc = 0, -+ .scheme = "http", -+ .userinfo = "foo", -+ .host = "[1234::1]", -+ .port = 81, -+ .file = "/?foobar", -+ }, -+ {.url = "https://foo.example.com/", -+ .rc = 0, -+ .scheme = "https", -+ .host = "foo.example.com", -+ .port = 443, -+ .file = "/", -+ }, -+ {.url = "https://foo.example.com/?foobar", -+ .rc = 0, -+ .scheme = "https", -+ .host = "foo.example.com", -+ .port = 443, -+ .file = "/?foobar", -+ }, -+ {.url = "https://[foo.example.com/", -+ .rc = -1, -+ }, -+ {.url = "https://[foo.example.com/?foobar", -+ .rc = -1, -+ }, -+ {.url = "https://foo.example.com:81/", -+ .rc = 0, -+ .scheme = "https", -+ .host = "foo.example.com", -+ .port = 81, -+ .file = "/", -+ }, -+ {.url = "https://foo.example.com:81/?foobar", -+ .rc = 0, -+ .scheme = "https", -+ .host = "foo.example.com", -+ .port = 81, -+ .file = "/?foobar", -+ }, -+ {.url = "https://[1234::1]/", -+ .rc = 0, -+ .scheme = "https", -+ .host = "[1234::1]", -+ .port = 443, -+ .file = "/", -+ }, -+ {.url = "https://[1234::1]/?foobar", -+ .rc = 0, -+ .scheme = "https", -+ .host = "[1234::1]", -+ .port = 443, -+ .file = "/?foobar", -+ }, -+ {.url = "https://[1234::1]:81/", -+ .rc = 0, -+ .scheme = "https", -+ .host = "[1234::1]", -+ .port = 81, -+ .file = "/", -+ }, -+ {.url = "https://[1234::1]:81/?foobar", -+ .rc = 0, -+ .scheme = "https", -+ .host = "[1234::1]", -+ .port = 81, -+ .file = "/?foobar", -+ }, -+ {.url = "https://foo@foo.example.com/", -+ .rc = 0, -+ .scheme = "https", -+ .userinfo = "foo", -+ .host = "foo.example.com", -+ .port = 443, -+ .file = "/", -+ }, -+ {.url = "https://foo@foo.example.com/?foobar", -+ .rc = 0, -+ .scheme = "https", -+ .userinfo = "foo", -+ .host = "foo.example.com", -+ .port = 443, -+ .file = "/?foobar", -+ }, -+ {.url = "https://foo@[foo.example.com/", -+ .rc = -1, -+ }, -+ {.url = "https://f%6fo@[foo.example.com/?fooba%72", -+ .rc = -1, -+ }, -+ {.url = "https://foo@foo.example.com:81/", -+ .rc = 0, -+ .scheme = "https", -+ .userinfo = "foo", -+ .host = "foo.example.com", -+ .port = 81, -+ .file = "/", -+ }, -+ {.url = "https://foo@foo.example.com:81/?foobar", -+ .rc = 0, -+ .scheme = "https", -+ .userinfo = "foo", -+ .host = "foo.example.com", -+ .port = 81, -+ .file = "/?foobar", -+ }, -+ {.url = "https://foo@[1234::1]/", -+ .rc = 0, -+ .scheme = "https", -+ .userinfo = "foo", -+ .host = "[1234::1]", -+ .port = 443, -+ .file = "/", -+ }, -+ {.url = "https://foo@[1234::1]/?foobar", -+ .rc = 0, -+ .scheme = "https", -+ .userinfo = "foo", -+ .host = "[1234::1]", -+ .port = 443, -+ .file = "/?foobar", -+ }, -+ {.url = "https://f%6fo@[12%334::1]:81/", -+ .rc = 0, -+ .scheme = "https", -+ .userinfo = "foo", -+ .host = "[1234::1]", -+ .port = 81, -+ .file = "/", -+ }, -+ {.url = "https://foo@[1234::1]:81/?foobar", -+ .rc = 0, -+ .scheme = "https", -+ .userinfo = "foo", -+ .host = "[1234::1]", -+ .port = 81, -+ .file = "/?foobar", -+ }, -+ {.url = "tftp://foo.e%78ample.com/foo/bar/b%61%7a", -+ .rc = 0, -+ .scheme = "tftp", -+ .host = "foo.example.com", -+ .port = 69, -+ .file = "/foo/bar/baz", -+ }, -+ {.url = "tftp://foo.example.com/foo/bar/baz", -+ .rc = 0, -+ .scheme = "tftp", -+ .host = "foo.example.com", -+ .port = 69, -+ .file = "/foo/bar/baz", -+ }, -+ {.url = "tftps://foo.example.com/foo/bar/baz", -+ .rc = 0, -+ .scheme = "tftps", -+ .host = "foo.example.com", -+ .port = 3713, -+ .file = "/foo/bar/baz", -+ }, -+ {.url = "tftps://foo.example.com/foo/bar/baz;mode=netascii", -+ .rc = -1, -+ }, -+ {.url = "tftps://foo.example.com/foo/bar/baz;mode=octet", -+ .rc = 0, -+ .scheme = "tftps", -+ .host = "foo.example.com", -+ .port = 3713, -+ .file = "/foo/bar/baz", -+ }, -+ {.url = "tftps://foo.example.com/foo/bar/baz;mode=invalid", -+ .rc = -1, -+ }, -+ {.url = "", -+ }, -+}; -+ -+static int -+string_test (char *name, char *a, char *b) -+{ -+ if ((a && !b) || (!a && b)) -+ { -+ printf("expected %s \"%s\", got \"%s\"\n", name, a, b); -+ return -1; -+ } -+ if (a && b && strcmp(a, b)) -+ { -+ printf("expected %s \"%s\", got \"%s\"\n", name, a, b); -+ return -1; -+ } -+ return 0; -+} -+ -+int -+main(void) -+{ -+ unsigned int i; -+ int rc; -+ -+ for (i = 0; tests[i].url[0] != '\0'; i++) -+ { -+ char *scheme, *userinfo, *host, *file; -+ int port; -+ -+ printf("======= url: \"%s\"\n", tests[i].url); -+ rc = extract_url_info(tests[i].url, strlen(tests[i].url) + 1, -+ &scheme, &userinfo, &host, &port, &file); -+ if (tests[i].rc != rc) -+ { -+ printf(" extract_url_info(...) = %d\n", rc); -+ exit(1); -+ } -+ else if (rc >= 0) -+ { -+ if (string_test("scheme", tests[i].scheme, scheme) < 0) -+ exit(1); -+ if (string_test("userinfo", tests[i].userinfo, userinfo) < 0) -+ exit(1); -+ if (string_test("host", tests[i].host, host) < 0) -+ exit(1); -+ if (port != tests[i].port) -+ { -+ printf(" bad port \"%d\" should have been \"%d\"\n", -+ port, tests[i].port); -+ exit(1); -+ } -+ if (string_test("file", tests[i].file, file) < 0) -+ exit(1); -+ } -+ free(scheme); -+ free(userinfo); -+ free(host); -+ free(file); -+ } -+ printf("everything worked?!?\n"); -+} -+#endif -diff --git a/include/grub/misc.h b/include/grub/misc.h -index f9135b6..b433922 100644 ---- a/include/grub/misc.h -+++ b/include/grub/misc.h -@@ -85,6 +85,7 @@ int EXPORT_FUNC(grub_strncmp) (const char *s1, const char *s2, grub_size_t n); - - char *EXPORT_FUNC(grub_strchr) (const char *s, int c); - char *EXPORT_FUNC(grub_strrchr) (const char *s, int c); -+char *EXPORT_FUNC(grub_strchrnul) (const char *s, int c); - int EXPORT_FUNC(grub_strword) (const char *s, const char *w); - - /* Copied from gnulib. -@@ -207,6 +208,50 @@ grub_toupper (int c) - return c; - } - -+static inline char * -+grub_strcasestr (const char *haystack, const char *needle) -+{ -+ /* Be careful not to look at the entire extent of haystack or needle -+ until needed. This is useful because of these two cases: -+ - haystack may be very long, and a match of needle found early, -+ - needle may be very long, and not even a short initial segment of -+ needle may be found in haystack. */ -+ if (*needle != '\0') -+ { -+ /* Speed up the following searches of needle by caching its first -+ character. */ -+ char b = *needle++; -+ -+ for (;; haystack++) -+ { -+ if (*haystack == '\0') -+ /* No match. */ -+ return 0; -+ if (grub_tolower(*haystack) == grub_tolower(b)) -+ /* The first character matches. */ -+ { -+ const char *rhaystack = haystack + 1; -+ const char *rneedle = needle; -+ -+ for (;; rhaystack++, rneedle++) -+ { -+ if (*rneedle == '\0') -+ /* Found a match. */ -+ return (char *) haystack; -+ if (*rhaystack == '\0') -+ /* No match. */ -+ return 0; -+ if (grub_tolower(*rhaystack) != grub_tolower(*rneedle)) -+ /* Nothing in this round. */ -+ break; -+ } -+ } -+ } -+ } -+ else -+ return (char *) haystack; -+} -+ - static inline int - grub_strcasecmp (const char *s1, const char *s2) - { -diff --git a/include/grub/net/url.h b/include/grub/net/url.h -new file mode 100644 -index 0000000..a215fa2 ---- /dev/null -+++ b/include/grub/net/url.h -@@ -0,0 +1,28 @@ -+/* url.h - prototypes for url parsing functions */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2016 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#ifndef GRUB_URL_HEADER -+#define GRUB_URL_HEADER 1 -+ -+int -+EXPORT_FUNC(extract_url_info) (const char *urlbuf, grub_size_t buflen, -+ char **scheme, char **userinfo, -+ char **host, int *port, char **file); -+ -+#endif /* GRUB_URL_HEADER */ --- -1.8.3.1 - diff --git a/0097-Add-linux-and-initrd-commands-for-grub-emu.patch b/0063-Add-linux-and-initrd-commands-for-grub-emu.patch similarity index 92% rename from 0097-Add-linux-and-initrd-commands-for-grub-emu.patch rename to 0063-Add-linux-and-initrd-commands-for-grub-emu.patch index ac02615..2431a4d 100644 --- a/0097-Add-linux-and-initrd-commands-for-grub-emu.patch +++ b/0063-Add-linux-and-initrd-commands-for-grub-emu.patch @@ -1,12 +1,14 @@ -From 5dbb03ccd67da4cb9e775c429d3b933bc257194f Mon Sep 17 00:00:00 2001 -From: Michael Chang +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Raymund Will Date: Tue, 6 Feb 2018 09:09:00 +0100 -Subject: [PATCH 097/220] Add linux and initrd commands for grub-emu +Subject: [PATCH] Add linux and initrd commands for grub-emu When using grub-emu, the linux and initrd commands are used as arguments to the kexec command line tool, to allow booting the selected menu entry. + +Signed-off-by: Raymund Will +Signed-off-by: Robbie Harwood --- - grub-core/Makefile.am | 1 + grub-core/Makefile.core.def | 1 - grub-core/kern/emu/main.c | 4 + grub-core/kern/emu/misc.c | 18 ++++- @@ -14,26 +16,15 @@ to the kexec command line tool, to allow booting the selected menu entry. include/grub/emu/exec.h | 4 +- include/grub/emu/hostfile.h | 3 +- include/grub/emu/misc.h | 3 + + grub-core/Makefile.am | 1 + 8 files changed, 202 insertions(+), 4 deletions(-) create mode 100644 grub-core/loader/emu/linux.c -diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index c6ba5b2..5ff3afd 100644 ---- a/grub-core/Makefile.am -+++ b/grub-core/Makefile.am -@@ -304,6 +304,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/net.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/hostdisk.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/hostfile.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/exec.h - if COND_GRUB_EMU_SDL - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/sdl.h - endif diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index ebc5580..528f76a 100644 +index 058c88ac3af..5354f9613d3 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def -@@ -1802,7 +1802,6 @@ module = { +@@ -1826,7 +1826,6 @@ module = { common = loader/linux.c; common = lib/cmdline.c; @@ -42,7 +33,7 @@ index ebc5580..528f76a 100644 efi = loader/efi/linux.c; }; diff --git a/grub-core/kern/emu/main.c b/grub-core/kern/emu/main.c -index 55ea5a1..846fe97 100644 +index 55ea5a11ccd..846fe9715ec 100644 --- a/grub-core/kern/emu/main.c +++ b/grub-core/kern/emu/main.c @@ -107,6 +107,7 @@ static struct argp_option options[] = { @@ -64,7 +55,7 @@ index 55ea5a1..846fe97 100644 case ARGP_KEY_ARG: { diff --git a/grub-core/kern/emu/misc.c b/grub-core/kern/emu/misc.c -index 19cd007..245b69c 100644 +index 0ff13bcaf8c..eeea092752d 100644 --- a/grub-core/kern/emu/misc.c +++ b/grub-core/kern/emu/misc.c @@ -39,6 +39,7 @@ @@ -84,7 +75,7 @@ index 19cd007..245b69c 100644 } void * -@@ -142,6 +143,9 @@ void +@@ -154,6 +155,9 @@ void __attribute__ ((noreturn)) grub_exit (int rc) { @@ -94,7 +85,7 @@ index 19cd007..245b69c 100644 exit (rc < 0 ? 1 : rc); } #endif -@@ -203,3 +207,15 @@ grub_util_load_image (const char *path, char *buf) +@@ -215,3 +219,15 @@ grub_util_load_image (const char *path, char *buf) fclose (fp); } @@ -112,7 +103,7 @@ index 19cd007..245b69c 100644 +} diff --git a/grub-core/loader/emu/linux.c b/grub-core/loader/emu/linux.c new file mode 100644 -index 0000000..fda9e00 +index 00000000000..fda9e00d24c --- /dev/null +++ b/grub-core/loader/emu/linux.c @@ -0,0 +1,172 @@ @@ -289,7 +280,7 @@ index 0000000..fda9e00 + grub_unregister_command (cmd_initrd); +} diff --git a/include/grub/emu/exec.h b/include/grub/emu/exec.h -index d1073ef..1b61b4a 100644 +index d1073ef86af..1b61b4a2e5d 100644 --- a/include/grub/emu/exec.h +++ b/include/grub/emu/exec.h @@ -23,6 +23,8 @@ @@ -311,7 +302,7 @@ index d1073ef..1b61b4a 100644 grub_util_exec_redirect (const char *const *argv, const char *stdin_file, const char *stdout_file); diff --git a/include/grub/emu/hostfile.h b/include/grub/emu/hostfile.h -index cfb1e2b..a61568e 100644 +index cfb1e2b5661..a61568e36e9 100644 --- a/include/grub/emu/hostfile.h +++ b/include/grub/emu/hostfile.h @@ -22,6 +22,7 @@ @@ -332,10 +323,10 @@ index cfb1e2b..a61568e 100644 char * grub_util_path_concat (size_t n, ...); diff --git a/include/grub/emu/misc.h b/include/grub/emu/misc.h -index ce464cf..5ef4f79 100644 +index ff9c48a6490..01056954b96 100644 --- a/include/grub/emu/misc.h +++ b/include/grub/emu/misc.h -@@ -56,6 +56,9 @@ void EXPORT_FUNC(grub_util_warn) (const char *fmt, ...) __attribute__ ((format ( +@@ -57,6 +57,9 @@ void EXPORT_FUNC(grub_util_warn) (const char *fmt, ...) __attribute__ ((format ( void EXPORT_FUNC(grub_util_info) (const char *fmt, ...) __attribute__ ((format (GNU_PRINTF, 1, 2))); void EXPORT_FUNC(grub_util_error) (const char *fmt, ...) __attribute__ ((format (GNU_PRINTF, 1, 2), noreturn)); @@ -345,6 +336,15 @@ index ce464cf..5ef4f79 100644 grub_uint64_t EXPORT_FUNC (grub_util_get_cpu_time_ms) (void); #ifdef HAVE_DEVICE_MAPPER --- -1.8.3.1 - +diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am +index ee88e44e97a..80e7a83edf9 100644 +--- a/grub-core/Makefile.am ++++ b/grub-core/Makefile.am +@@ -307,6 +307,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/net.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/hostdisk.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/hostfile.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/exec.h + if COND_GRUB_EMU_SDL + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/sdl.h + endif diff --git a/0098-Add-grub2-switch-to-blscfg.patch b/0064-Add-grub2-switch-to-blscfg.patch similarity index 85% rename from 0098-Add-grub2-switch-to-blscfg.patch rename to 0064-Add-grub2-switch-to-blscfg.patch index 8f7f4e6..ac30490 100644 --- a/0098-Add-grub2-switch-to-blscfg.patch +++ b/0064-Add-grub2-switch-to-blscfg.patch @@ -1,7 +1,7 @@ -From 2e187d17d3ffeb9a9bf4bfa3e079be7e335d8c80 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:40 -0400 -Subject: [PATCH 098/220] Add grub2-switch-to-blscfg +Subject: [PATCH] Add grub2-switch-to-blscfg Signed-off-by: Peter Jones Signed-off-by: Javier Martinez Canillas @@ -11,16 +11,16 @@ Signed-off-by: Jan Hlavac Makefile.util.def | 7 + util/grub-set-password.in | 2 +- util/grub-switch-to-blscfg.8 | 33 +++++ - util/grub-switch-to-blscfg.in | 314 ++++++++++++++++++++++++++++++++++++++++++ - 4 files changed, 355 insertions(+), 1 deletion(-) + util/grub-switch-to-blscfg.in | 317 ++++++++++++++++++++++++++++++++++++++++++ + 4 files changed, 358 insertions(+), 1 deletion(-) create mode 100644 util/grub-switch-to-blscfg.8 create mode 100644 util/grub-switch-to-blscfg.in diff --git a/Makefile.util.def b/Makefile.util.def -index a616136..f55473c 100644 +index 43a1c7453b1..a90879fa9ba 100644 --- a/Makefile.util.def +++ b/Makefile.util.def -@@ -1364,6 +1364,13 @@ program = { +@@ -1365,6 +1365,13 @@ program = { ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; }; @@ -35,7 +35,7 @@ index a616136..f55473c 100644 name = grub-glue-efi; mansection = 1; diff --git a/util/grub-set-password.in b/util/grub-set-password.in -index 5ebf505..c0b5ebb 100644 +index 5ebf50576d6..c0b5ebbfdc5 100644 --- a/util/grub-set-password.in +++ b/util/grub-set-password.in @@ -1,6 +1,6 @@ @@ -48,7 +48,7 @@ index 5ebf505..c0b5ebb 100644 else diff --git a/util/grub-switch-to-blscfg.8 b/util/grub-switch-to-blscfg.8 new file mode 100644 -index 0000000..9a88628 +index 00000000000..9a886282976 --- /dev/null +++ b/util/grub-switch-to-blscfg.8 @@ -0,0 +1,33 @@ @@ -87,10 +87,10 @@ index 0000000..9a88628 +.BR "info grub" diff --git a/util/grub-switch-to-blscfg.in b/util/grub-switch-to-blscfg.in new file mode 100644 -index 0000000..49b3985 +index 00000000000..a851424beb2 --- /dev/null +++ b/util/grub-switch-to-blscfg.in -@@ -0,0 +1,314 @@ +@@ -0,0 +1,317 @@ +#! /bin/sh +# +# Set a default boot entry for GRUB. @@ -283,7 +283,7 @@ index 0000000..49b3985 +mkbls() { + local kernelver=$1 && shift + local datetime=$1 && shift -+ local bootprefix=$1 && shift ++ local kernelopts=$1 && shift + + local debugname="" + local debugid="" @@ -302,10 +302,9 @@ index 0000000..49b3985 + cat <"${bls_target}" -+ fi ++ mkbls "${kernelver}" \ ++ "$(date -u +%Y%m%d%H%M%S -d "$(stat -c '%y' "${kernel_dir}")")" \ ++ "${bootprefix}" "${cmdline}" >"${bls_target}" + + if [ "x$GRUB_LINUX_MAKE_DEBUG" = "xtrue" ]; then + bls_debug="$(echo ${bls_target} | sed -e "s/${kernelver}/${kernelver}~debug/")" + cp -aT "${bls_target}" "${bls_debug}" + title="$(grep '^title[ \t]' "${bls_debug}" | sed -e 's/^title[ \t]*//')" -+ blsid="$(grep '^id[ \t]' "${bls_debug}" | sed -e "s/\.${ARCH}/-debug.${arch}/")" ++ options="$(echo "${cmdline} ${GRUB_CMDLINE_LINUX_DEBUG}" | sed -e 's/\//\\\//g')" + sed -i -e "s/^title.*/title ${title}${GRUB_LINUX_DEBUG_TITLE_POSTFIX}/" "${bls_debug}" -+ sed -i -e "s/^id.*/${blsid}/" "${bls_debug}" -+ sed -i -e "s/^options.*/options \$kernelopts ${GRUB_CMDLINE_LINUX_DEBUG}/" "${bls_debug}" ++ sed -i -e "s/^options.*/options ${options}/" "${bls_debug}" + fi + done + @@ -359,6 +349,19 @@ index 0000000..49b3985 + fi +} + ++# The grub2 EFI binary is not copied to the ESP as a part of an ostree ++# transaction. Make sure a grub2 version with BLS support is installed ++# but only do this if the blsdir is not set, to make sure that the BLS ++# parsing module will search for the BLS snippets in the default path. ++if test -f /run/ostree-booted && test -d /sys/firmware/efi/efivars && \ ++ ! ${grub_editenv} - list | grep -q blsdir && \ ++ mountpoint -q /boot; then ++ grub_binary="$(find /usr/lib/ostree-boot/efi/EFI/${EFIDIR}/ -name grub*.efi)" ++ install -m 700 ${grub_binary} ${grubdir} || exit 1 ++ # Create a hidden file to indicate that grub2 now has BLS support. ++ touch /boot/grub2/.grub2-blscfg-supported ++fi ++ +GENERATE=0 +if grep '^GRUB_ENABLE_BLSCFG=.*' "${etcdefaultgrub}" \ + | grep -vq '^GRUB_ENABLE_BLSCFG="*true"*\s*$' ; then @@ -388,13 +391,13 @@ index 0000000..49b3985 + + if [ -n "${mod_dir}" ]; then + for mod in blscfg increment; do -+ cp ${prefix}/lib/grub/${mod_dir}/${mod}.mod ${grubdir}/$mod_dir/ || exit 1 ++ install -m 700 ${prefix}/lib/grub/${mod_dir}/${mod}.mod ${grubdir}/$mod_dir/ || exit 1 + done + fi + + cp -af "${GRUB_CONFIG_FILE}" "${GRUB_CONFIG_FILE}${backupsuffix}" + if ! grub2-mkconfig -o "${GRUB_CONFIG_FILE}" ; then -+ cp -af "${GRUB_CONFIG_FILE}${backupsuffix}" "${GRUB_CONFIG_FILE}" ++ install -m 700 "${GRUB_CONFIG_FILE}${backupsuffix}" "${GRUB_CONFIG_FILE}" + sed -i"${backupsuffix}" \ + -e 's,^GRUB_ENABLE_BLSCFG=.*,GRUB_ENABLE_BLSCFG=false,' \ + "${etcdefaultgrub}" @@ -405,6 +408,3 @@ index 0000000..49b3985 + +# Bye. +exit 0 --- -1.8.3.1 - diff --git a/0100-make-better-backtraces.patch b/0065-make-better-backtraces.patch similarity index 76% rename from 0100-make-better-backtraces.patch rename to 0065-make-better-backtraces.patch index d76b4fe..6376567 100644 --- a/0100-make-better-backtraces.patch +++ b/0065-make-better-backtraces.patch @@ -1,49 +1,47 @@ -From 69fbc18e0758e780236f713b579a951551d7e829 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 9 Jul 2019 17:05:03 +0200 -Subject: [PATCH 100/220] make better backtraces +Subject: [PATCH] make better backtraces Signed-off-by: Peter Jones --- - Makefile.util.def | 6 ++ - grub-core/Makefile.am | 1 + - grub-core/Makefile.core.def | 16 ++--- - grub-core/commands/backtrace.c | 72 +++++++++++++++++++ - grub-core/gdb/cstub.c | 1 - - grub-core/kern/arm/efi/startup.S | 2 + - grub-core/kern/arm/startup.S | 2 + - grub-core/kern/arm64/backtrace.c | 94 +++++++++++++++++++++++++ - grub-core/kern/arm64/efi/startup.S | 2 + - grub-core/kern/backtrace.c | 97 +++++++++++++++++++++++++ - grub-core/kern/dl.c | 45 ++++++++++++ - grub-core/kern/i386/backtrace.c | 125 +++++++++++++++++++++++++++++++++ - grub-core/kern/i386/pc/init.c | 4 +- - grub-core/kern/i386/qemu/startup.S | 3 +- - grub-core/kern/ia64/efi/startup.S | 3 +- - grub-core/kern/ieee1275/init.c | 1 - - grub-core/kern/misc.c | 13 ++-- - grub-core/kern/mm.c | 6 +- - grub-core/kern/sparc64/ieee1275/crt0.S | 3 +- - grub-core/lib/arm64/backtrace.c | 62 ---------------- - grub-core/lib/backtrace.c | 72 ------------------- - grub-core/lib/i386/backtrace.c | 78 -------------------- - include/grub/backtrace.h | 10 ++- - include/grub/dl.h | 2 + - include/grub/kernel.h | 3 + - 25 files changed, 485 insertions(+), 238 deletions(-) - create mode 100644 grub-core/commands/backtrace.c + Makefile.util.def | 6 ++ + grub-core/Makefile.core.def | 16 ++-- + grub-core/{lib => commands}/backtrace.c | 2 +- + grub-core/gdb/cstub.c | 1 - + grub-core/kern/arm64/backtrace.c | 94 ++++++++++++++++++++++++ + grub-core/kern/backtrace.c | 97 +++++++++++++++++++++++++ + grub-core/kern/dl.c | 45 ++++++++++++ + grub-core/kern/i386/backtrace.c | 125 ++++++++++++++++++++++++++++++++ + grub-core/kern/i386/pc/init.c | 4 +- + grub-core/kern/ieee1275/init.c | 1 - + grub-core/kern/misc.c | 13 ++-- + grub-core/kern/mm.c | 6 +- + grub-core/lib/arm64/backtrace.c | 62 ---------------- + grub-core/lib/i386/backtrace.c | 78 -------------------- + include/grub/backtrace.h | 10 ++- + include/grub/dl.h | 2 + + include/grub/kernel.h | 3 + + grub-core/kern/arm/efi/startup.S | 2 + + grub-core/kern/arm/startup.S | 2 + + grub-core/kern/arm64/efi/startup.S | 2 + + grub-core/kern/i386/qemu/startup.S | 3 +- + grub-core/kern/ia64/efi/startup.S | 3 +- + grub-core/kern/sparc64/ieee1275/crt0.S | 3 +- + grub-core/Makefile.am | 1 + + 24 files changed, 414 insertions(+), 167 deletions(-) + rename grub-core/{lib => commands}/backtrace.c (98%) create mode 100644 grub-core/kern/arm64/backtrace.c create mode 100644 grub-core/kern/backtrace.c create mode 100644 grub-core/kern/i386/backtrace.c delete mode 100644 grub-core/lib/arm64/backtrace.c - delete mode 100644 grub-core/lib/backtrace.c delete mode 100644 grub-core/lib/i386/backtrace.c diff --git a/Makefile.util.def b/Makefile.util.def -index f55473c..c13ca68 100644 +index a90879fa9ba..48512bc6311 100644 --- a/Makefile.util.def +++ b/Makefile.util.def -@@ -49,6 +49,12 @@ library = { +@@ -51,6 +51,12 @@ library = { common = grub-core/partmap/msdos.c; common = grub-core/fs/proc.c; common = grub-core/fs/archelp.c; @@ -56,26 +54,14 @@ index f55473c..c13ca68 100644 }; library = { -diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index 5ff3afd..d9ad300 100644 ---- a/grub-core/Makefile.am -+++ b/grub-core/Makefile.am -@@ -66,6 +66,7 @@ CLEANFILES += grub_script.yy.c grub_script.yy.h - - include $(srcdir)/Makefile.core.am - -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/backtrace.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/cache.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/command.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/device.h diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 528f76a..49c5dc4 100644 +index 5354f9613d3..4b7c45a7b06 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def -@@ -140,6 +140,12 @@ kernel = { - common = kern/rescue_parser.c; +@@ -142,6 +142,12 @@ kernel = { common = kern/rescue_reader.c; common = kern/term.c; + common = kern/verifiers.c; + common = kern/backtrace.c; + + x86 = kern/i386/backtrace.c; @@ -85,7 +71,7 @@ index 528f76a..49c5dc4 100644 noemu = kern/compiler-rt.c; noemu = kern/mm.c; -@@ -186,9 +192,6 @@ kernel = { +@@ -188,9 +194,6 @@ kernel = { softdiv = lib/division.c; @@ -95,7 +81,7 @@ index 528f76a..49c5dc4 100644 i386 = kern/i386/dl.c; i386_xen = kern/i386/dl.c; i386_xen_pvh = kern/i386/dl.c; -@@ -2376,15 +2379,12 @@ module = { +@@ -2398,15 +2401,12 @@ module = { module = { name = backtrace; @@ -113,86 +99,24 @@ index 528f76a..49c5dc4 100644 }; module = { -diff --git a/grub-core/commands/backtrace.c b/grub-core/commands/backtrace.c -new file mode 100644 -index 0000000..8b5ec39 ---- /dev/null +diff --git a/grub-core/lib/backtrace.c b/grub-core/commands/backtrace.c +similarity index 98% +rename from grub-core/lib/backtrace.c +rename to grub-core/commands/backtrace.c +index c0ad6ab8be1..8b5ec3913b5 100644 +--- a/grub-core/lib/backtrace.c +++ b/grub-core/commands/backtrace.c -@@ -0,0 +1,72 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2009 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+GRUB_MOD_LICENSE ("GPLv3+"); -+ -+void -+grub_backtrace_print_address (void *addr) -+{ -+#ifndef GRUB_UTIL -+ grub_dl_t mod; -+ -+ FOR_DL_MODULES (mod) -+ { -+ grub_dl_segment_t segment; -+ for (segment = mod->segment; segment; segment = segment->next) -+ if (segment->addr <= addr && (grub_uint8_t *) segment->addr -+ + segment->size > (grub_uint8_t *) addr) -+ { -+ grub_printf ("%s.%x+%" PRIxGRUB_SIZE, mod->name, segment->section, -+ (grub_size_t) ((grub_uint8_t *) addr - (grub_uint8_t *) segment->addr)); -+ return; -+ } -+ } -+ -+#endif -+ grub_printf ("%p", addr); -+} -+ -+static grub_err_t -+grub_cmd_backtrace (grub_command_t cmd __attribute__ ((unused)), -+ int argc __attribute__ ((unused)), -+ char **args __attribute__ ((unused))) -+{ +@@ -54,7 +54,7 @@ grub_cmd_backtrace (grub_command_t cmd __attribute__ ((unused)), + int argc __attribute__ ((unused)), + char **args __attribute__ ((unused))) + { +- grub_backtrace (); + grub_backtrace (1); -+ return 0; -+} -+ -+static grub_command_t cmd; -+ -+GRUB_MOD_INIT(backtrace) -+{ -+ cmd = grub_register_command ("backtrace", grub_cmd_backtrace, -+ 0, N_("Print backtrace.")); -+} -+ -+GRUB_MOD_FINI(backtrace) -+{ -+ grub_unregister_command (cmd); -+} + return 0; + } + diff --git a/grub-core/gdb/cstub.c b/grub-core/gdb/cstub.c -index b64acd7..9928147 100644 +index b64acd70fee..99281472d36 100644 --- a/grub-core/gdb/cstub.c +++ b/grub-core/gdb/cstub.c @@ -215,7 +215,6 @@ grub_gdb_trap (int trap_no) @@ -203,35 +127,9 @@ index b64acd7..9928147 100644 grub_fatal ("Unhandled exception"); } -diff --git a/grub-core/kern/arm/efi/startup.S b/grub-core/kern/arm/efi/startup.S -index 9f82653..f3bc41f 100644 ---- a/grub-core/kern/arm/efi/startup.S -+++ b/grub-core/kern/arm/efi/startup.S -@@ -23,6 +23,8 @@ - .file "startup.S" - .text - .arm -+ .globl start, _start -+FUNCTION(start) - FUNCTION(_start) - /* - * EFI_SYSTEM_TABLE and EFI_HANDLE are passed in r1/r0. -diff --git a/grub-core/kern/arm/startup.S b/grub-core/kern/arm/startup.S -index 3946fe8..5679a1d 100644 ---- a/grub-core/kern/arm/startup.S -+++ b/grub-core/kern/arm/startup.S -@@ -48,6 +48,8 @@ - - .text - .arm -+ .globl start, _start -+FUNCTION(start) - FUNCTION(_start) - b codestart - diff --git a/grub-core/kern/arm64/backtrace.c b/grub-core/kern/arm64/backtrace.c new file mode 100644 -index 0000000..019c6fd +index 00000000000..019c6fdfef2 --- /dev/null +++ b/grub-core/kern/arm64/backtrace.c @@ -0,0 +1,94 @@ @@ -329,23 +227,9 @@ index 0000000..019c6fd + skip += 1; + grub_backtrace_pointer(__builtin_frame_address(0), skip); +} -diff --git a/grub-core/kern/arm64/efi/startup.S b/grub-core/kern/arm64/efi/startup.S -index 666a7ee..41676bd 100644 ---- a/grub-core/kern/arm64/efi/startup.S -+++ b/grub-core/kern/arm64/efi/startup.S -@@ -19,7 +19,9 @@ - #include - - .file "startup.S" -+ .globl start, _start - .text -+FUNCTION(start) - FUNCTION(_start) - /* - * EFI_SYSTEM_TABLE and EFI_HANDLE are passed in x1/x0. diff --git a/grub-core/kern/backtrace.c b/grub-core/kern/backtrace.c new file mode 100644 -index 0000000..4a82e86 +index 00000000000..4a82e865cc6 --- /dev/null +++ b/grub-core/kern/backtrace.c @@ -0,0 +1,97 @@ @@ -447,7 +331,7 @@ index 0000000..4a82e86 + grub_backtrace (skip + 1); +} diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c -index d7718d2..2e57e5e 100644 +index 7afb9e6f724..88d2077709e 100644 --- a/grub-core/kern/dl.c +++ b/grub-core/kern/dl.c @@ -124,6 +124,50 @@ grub_dl_resolve_symbol (const char *name) @@ -511,7 +395,7 @@ index d7718d2..2e57e5e 100644 i++, s = (Elf_Shdr *) ((char *) s + e->e_shentsize)) diff --git a/grub-core/kern/i386/backtrace.c b/grub-core/kern/i386/backtrace.c new file mode 100644 -index 0000000..2413f9a +index 00000000000..2413f9a57db --- /dev/null +++ b/grub-core/kern/i386/backtrace.c @@ -0,0 +1,125 @@ @@ -641,7 +525,7 @@ index 0000000..2413f9a +#endif +} diff --git a/grub-core/kern/i386/pc/init.c b/grub-core/kern/i386/pc/init.c -index 27bc68b..b51d0ab 100644 +index 27bc68b8a53..b51d0abfa6e 100644 --- a/grub-core/kern/i386/pc/init.c +++ b/grub-core/kern/i386/pc/init.c @@ -153,7 +153,7 @@ compact_mem_regions (void) @@ -662,37 +546,8 @@ index 27bc68b..b51d0ab 100644 /* Initialize the console as early as possible. */ grub_console_init (); -diff --git a/grub-core/kern/i386/qemu/startup.S b/grub-core/kern/i386/qemu/startup.S -index 0d89858..939f182 100644 ---- a/grub-core/kern/i386/qemu/startup.S -+++ b/grub-core/kern/i386/qemu/startup.S -@@ -24,7 +24,8 @@ - - .text - .code32 -- .globl _start -+ .globl start, _start -+start: - _start: - jmp codestart - -diff --git a/grub-core/kern/ia64/efi/startup.S b/grub-core/kern/ia64/efi/startup.S -index d75c6d7..8f2a593 100644 ---- a/grub-core/kern/ia64/efi/startup.S -+++ b/grub-core/kern/ia64/efi/startup.S -@@ -24,8 +24,9 @@ - .psr lsb - .lsb - -- .global _start -+ .global start, _start - .proc _start -+start: - _start: - alloc loc0=ar.pfs,2,4,0,0 - mov loc1=rp diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c -index 0cd2a62..937c1bc 100644 +index 0cd2a627231..937c1bc44cb 100644 --- a/grub-core/kern/ieee1275/init.c +++ b/grub-core/kern/ieee1275/init.c @@ -63,7 +63,6 @@ @@ -704,11 +559,11 @@ index 0cd2a62..937c1bc 100644 #ifdef __sparc__ diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index e758ab3..5c2d203 100644 +index c60601b699d..a432a6be54a 100644 --- a/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c -@@ -1110,15 +1110,15 @@ grub_xasprintf (const char *fmt, ...) - } +@@ -1197,15 +1197,15 @@ grub_printf_fmt_check (const char *fmt, const char *fmt_expected) + /* Abort GRUB. This function does not return. */ -static void __attribute__ ((noreturn)) @@ -718,18 +573,18 @@ index e758ab3..5c2d203 100644 -#ifndef GRUB_UTIL -#if (defined(__i386__) || defined(__x86_64__)) && !defined(GRUB_MACHINE_EMU) - grub_backtrace(); --#endif +#if !defined(GRUB_MACHINE_EMU) && !defined(GRUB_UTIL) + grub_backtrace (1); +#else + grub_printf ("\n"); #endif +-#endif - grub_printf ("\nAborted."); + grub_printf ("Aborted."); #ifndef GRUB_UTIL if (grub_term_inputs) -@@ -1145,6 +1145,7 @@ grub_fatal (const char *fmt, ...) +@@ -1232,6 +1232,7 @@ grub_fatal (const char *fmt, ...) { va_list ap; @@ -738,10 +593,10 @@ index e758ab3..5c2d203 100644 grub_vprintf (_(fmt), ap); va_end (ap); diff --git a/grub-core/kern/mm.c b/grub-core/kern/mm.c -index ee88ff6..002cbfa 100644 +index c070afc621f..d8c8377578b 100644 --- a/grub-core/kern/mm.c +++ b/grub-core/kern/mm.c -@@ -95,13 +95,13 @@ get_header_from_pointer (void *ptr, grub_mm_header_t *p, grub_mm_region_t *r) +@@ -97,13 +97,13 @@ get_header_from_pointer (void *ptr, grub_mm_header_t *p, grub_mm_region_t *r) break; if (! *r) @@ -758,23 +613,9 @@ index ee88ff6..002cbfa 100644 (unsigned long) (*p)->magic); } -diff --git a/grub-core/kern/sparc64/ieee1275/crt0.S b/grub-core/kern/sparc64/ieee1275/crt0.S -index 03b916f..701bf63 100644 ---- a/grub-core/kern/sparc64/ieee1275/crt0.S -+++ b/grub-core/kern/sparc64/ieee1275/crt0.S -@@ -22,7 +22,8 @@ - - .text - .align 4 -- .globl _start -+ .globl start, _start -+start: - _start: - ba codestart - mov %o4, %o0 diff --git a/grub-core/lib/arm64/backtrace.c b/grub-core/lib/arm64/backtrace.c deleted file mode 100644 -index 1079b53..0000000 +index 1079b5380e1..00000000000 --- a/grub-core/lib/arm64/backtrace.c +++ /dev/null @@ -1,62 +0,0 @@ @@ -840,87 +681,9 @@ index 1079b53..0000000 - grub_backtrace_pointer (1); -} - -diff --git a/grub-core/lib/backtrace.c b/grub-core/lib/backtrace.c -deleted file mode 100644 -index c0ad6ab..0000000 ---- a/grub-core/lib/backtrace.c -+++ /dev/null -@@ -1,72 +0,0 @@ --/* -- * GRUB -- GRand Unified Bootloader -- * Copyright (C) 2009 Free Software Foundation, Inc. -- * -- * GRUB is free software: you can redistribute it and/or modify -- * it under the terms of the GNU General Public License as published by -- * the Free Software Foundation, either version 3 of the License, or -- * (at your option) any later version. -- * -- * GRUB is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- * GNU General Public License for more details. -- * -- * You should have received a copy of the GNU General Public License -- * along with GRUB. If not, see . -- */ -- --#include --#include --#include --#include --#include --#include --#include -- --GRUB_MOD_LICENSE ("GPLv3+"); -- --void --grub_backtrace_print_address (void *addr) --{ --#ifndef GRUB_UTIL -- grub_dl_t mod; -- -- FOR_DL_MODULES (mod) -- { -- grub_dl_segment_t segment; -- for (segment = mod->segment; segment; segment = segment->next) -- if (segment->addr <= addr && (grub_uint8_t *) segment->addr -- + segment->size > (grub_uint8_t *) addr) -- { -- grub_printf ("%s.%x+%" PRIxGRUB_SIZE, mod->name, segment->section, -- (grub_size_t) ((grub_uint8_t *) addr - (grub_uint8_t *) segment->addr)); -- return; -- } -- } -- --#endif -- grub_printf ("%p", addr); --} -- --static grub_err_t --grub_cmd_backtrace (grub_command_t cmd __attribute__ ((unused)), -- int argc __attribute__ ((unused)), -- char **args __attribute__ ((unused))) --{ -- grub_backtrace (); -- return 0; --} -- --static grub_command_t cmd; -- --GRUB_MOD_INIT(backtrace) --{ -- cmd = grub_register_command ("backtrace", grub_cmd_backtrace, -- 0, N_("Print backtrace.")); --} -- --GRUB_MOD_FINI(backtrace) --{ -- grub_unregister_command (cmd); --} diff --git a/grub-core/lib/i386/backtrace.c b/grub-core/lib/i386/backtrace.c deleted file mode 100644 -index c67273d..0000000 +index c67273db3ae..00000000000 --- a/grub-core/lib/i386/backtrace.c +++ /dev/null @@ -1,78 +0,0 @@ @@ -1003,7 +766,7 @@ index c67273d..0000000 -} - diff --git a/include/grub/backtrace.h b/include/grub/backtrace.h -index 3955197..275cf85 100644 +index 395519762f0..275cf85e2d3 100644 --- a/include/grub/backtrace.h +++ b/include/grub/backtrace.h @@ -19,8 +19,14 @@ @@ -1024,10 +787,10 @@ index 3955197..275cf85 100644 #endif diff --git a/include/grub/dl.h b/include/grub/dl.h -index 90dc9bb..4fe2b52 100644 +index 91933b85f2c..2f76e6b0437 100644 --- a/include/grub/dl.h +++ b/include/grub/dl.h -@@ -257,6 +257,8 @@ grub_dl_is_persistent (grub_dl_t mod) +@@ -259,6 +259,8 @@ grub_dl_is_persistent (grub_dl_t mod) #endif @@ -1037,10 +800,10 @@ index 90dc9bb..4fe2b52 100644 int isfunc, grub_dl_t mod); diff --git a/include/grub/kernel.h b/include/grub/kernel.h -index 133a37c..e5a5f43 100644 +index abbca5ea335..300a9766cda 100644 --- a/include/grub/kernel.h +++ b/include/grub/kernel.h -@@ -110,6 +110,9 @@ grub_addr_t grub_modules_get_end (void); +@@ -111,6 +111,9 @@ grub_addr_t grub_modules_get_end (void); #endif @@ -1050,6 +813,98 @@ index 133a37c..e5a5f43 100644 /* The start point of the C code. */ void grub_main (void) __attribute__ ((noreturn)); --- -1.8.3.1 - +diff --git a/grub-core/kern/arm/efi/startup.S b/grub-core/kern/arm/efi/startup.S +index 9f8265315a9..f3bc41f9d0f 100644 +--- a/grub-core/kern/arm/efi/startup.S ++++ b/grub-core/kern/arm/efi/startup.S +@@ -23,6 +23,8 @@ + .file "startup.S" + .text + .arm ++ .globl start, _start ++FUNCTION(start) + FUNCTION(_start) + /* + * EFI_SYSTEM_TABLE and EFI_HANDLE are passed in r1/r0. +diff --git a/grub-core/kern/arm/startup.S b/grub-core/kern/arm/startup.S +index 3946fe8e183..5679a1d00ad 100644 +--- a/grub-core/kern/arm/startup.S ++++ b/grub-core/kern/arm/startup.S +@@ -48,6 +48,8 @@ + + .text + .arm ++ .globl start, _start ++FUNCTION(start) + FUNCTION(_start) + b codestart + +diff --git a/grub-core/kern/arm64/efi/startup.S b/grub-core/kern/arm64/efi/startup.S +index 666a7ee3c92..41676bdb2b8 100644 +--- a/grub-core/kern/arm64/efi/startup.S ++++ b/grub-core/kern/arm64/efi/startup.S +@@ -19,7 +19,9 @@ + #include + + .file "startup.S" ++ .globl start, _start + .text ++FUNCTION(start) + FUNCTION(_start) + /* + * EFI_SYSTEM_TABLE and EFI_HANDLE are passed in x1/x0. +diff --git a/grub-core/kern/i386/qemu/startup.S b/grub-core/kern/i386/qemu/startup.S +index 0d89858d9b3..939f182fc74 100644 +--- a/grub-core/kern/i386/qemu/startup.S ++++ b/grub-core/kern/i386/qemu/startup.S +@@ -24,7 +24,8 @@ + + .text + .code32 +- .globl _start ++ .globl start, _start ++start: + _start: + jmp codestart + +diff --git a/grub-core/kern/ia64/efi/startup.S b/grub-core/kern/ia64/efi/startup.S +index d75c6d7cc74..8f2a593e529 100644 +--- a/grub-core/kern/ia64/efi/startup.S ++++ b/grub-core/kern/ia64/efi/startup.S +@@ -24,8 +24,9 @@ + .psr lsb + .lsb + +- .global _start ++ .global start, _start + .proc _start ++start: + _start: + alloc loc0=ar.pfs,2,4,0,0 + mov loc1=rp +diff --git a/grub-core/kern/sparc64/ieee1275/crt0.S b/grub-core/kern/sparc64/ieee1275/crt0.S +index 03b916f0534..701bf63abcf 100644 +--- a/grub-core/kern/sparc64/ieee1275/crt0.S ++++ b/grub-core/kern/sparc64/ieee1275/crt0.S +@@ -22,7 +22,8 @@ + + .text + .align 4 +- .globl _start ++ .globl start, _start ++start: + _start: + ba codestart + mov %o4, %o0 +diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am +index 80e7a83edf9..f512573c0da 100644 +--- a/grub-core/Makefile.am ++++ b/grub-core/Makefile.am +@@ -66,6 +66,7 @@ CLEANFILES += grub_script.yy.c grub_script.yy.h + + include $(srcdir)/Makefile.core.am + ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/backtrace.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/cache.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/command.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/device.h diff --git a/0066-Normalize-slashes-in-tftp-paths.patch b/0066-Normalize-slashes-in-tftp-paths.patch deleted file mode 100644 index 4c4c84e..0000000 --- a/0066-Normalize-slashes-in-tftp-paths.patch +++ /dev/null @@ -1,64 +0,0 @@ -From be6b7ff630f73fe21b797d5396a29944262d3805 Mon Sep 17 00:00:00 2001 -From: Lenny Szubowicz -Date: Mon, 29 Aug 2016 11:04:48 -0400 -Subject: [PATCH 066/220] Normalize slashes in tftp paths. - -Some tftp servers do not handle multiple consecutive slashes correctly; -this patch avoids sending tftp requests with non-normalized paths. - -Signed-off-by: Lenny Szubowicz -[msalter: fix malformed tftp packets] -Signed-off-by: Mark Salter ---- - grub-core/net/tftp.c | 28 +++++++++++++++++++++++++--- - 1 file changed, 25 insertions(+), 3 deletions(-) - -diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c -index 1157524..dcd8249 100644 ---- a/grub-core/net/tftp.c -+++ b/grub-core/net/tftp.c -@@ -300,6 +300,25 @@ destroy_pq (tftp_data_t data) - grub_priority_queue_destroy (data->pq); - } - -+/* Create a normalized copy of the filename. -+ Compress any string of consecutive forward slashes to a single forward -+ slash. */ -+static void -+grub_normalize_filename (char *normalized, const char *filename) -+{ -+ char *dest = normalized; -+ char *src = filename; -+ -+ while (*src != '\0') -+ { -+ if (src[0] == '/' && src[1] == '/') -+ src++; -+ else -+ *dest++ = *src++; -+ } -+ *dest = '\0'; -+} -+ - static grub_err_t - tftp_open (struct grub_file *file, const char *filename) - { -@@ -337,9 +356,12 @@ tftp_open (struct grub_file *file, const char *filename) - rrqlen = 0; - - tftph->opcode = grub_cpu_to_be16_compile_time (TFTP_RRQ); -- grub_strcpy (rrq, filename); -- rrqlen += grub_strlen (filename) + 1; -- rrq += grub_strlen (filename) + 1; -+ -+ /* Copy and normalize the filename to work-around issues on some tftp -+ servers when file names are being matched for remapping. */ -+ grub_normalize_filename (rrq, filename); -+ rrqlen += grub_strlen (rrq) + 1; -+ rrq += grub_strlen (rrq) + 1; - - grub_strcpy (rrq, "octet"); - rrqlen += grub_strlen ("octet") + 1; --- -1.8.3.1 - diff --git a/0101-normal-don-t-draw-our-startup-message-if-debug-is-se.patch b/0066-normal-don-t-draw-our-startup-message-if-debug-is-se.patch similarity index 72% rename from 0101-normal-don-t-draw-our-startup-message-if-debug-is-se.patch rename to 0066-normal-don-t-draw-our-startup-message-if-debug-is-se.patch index 555227b..9ebfc7a 100644 --- a/0101-normal-don-t-draw-our-startup-message-if-debug-is-se.patch +++ b/0066-normal-don-t-draw-our-startup-message-if-debug-is-se.patch @@ -1,18 +1,17 @@ -From e215e2c09bc7d7e970f4b644c30a1a3818829bfb Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Nov 2017 15:58:52 -0500 -Subject: [PATCH 101/220] normal: don't draw our startup message if debug is - set +Subject: [PATCH] normal: don't draw our startup message if debug is set --- grub-core/normal/main.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index 2fe6743..f7ee912 100644 +index d5df4f815b0..1970e4816a8 100644 --- a/grub-core/normal/main.c +++ b/grub-core/normal/main.c -@@ -425,6 +425,9 @@ grub_normal_reader_init (int nested) +@@ -430,6 +430,9 @@ grub_normal_reader_init (int nested) const char *msg_esc = _("ESC at any time exits."); char *msg_formatted; @@ -22,6 +21,3 @@ index 2fe6743..f7ee912 100644 msg_formatted = grub_xasprintf (_("Minimal BASH-like line editing is supported. For " "the first word, TAB lists possible command completions. Anywhere " "else TAB lists possible device or file completions. %s"), --- -1.8.3.1 - diff --git a/0102-Work-around-some-minor-include-path-weirdnesses.patch b/0067-Work-around-some-minor-include-path-weirdnesses.patch similarity index 95% rename from 0102-Work-around-some-minor-include-path-weirdnesses.patch rename to 0067-Work-around-some-minor-include-path-weirdnesses.patch index 7a99987..460d792 100644 --- a/0102-Work-around-some-minor-include-path-weirdnesses.patch +++ b/0067-Work-around-some-minor-include-path-weirdnesses.patch @@ -1,7 +1,7 @@ -From 5327dd96cf5e2323a3aaac3f191ed72ad3d7294b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 16 Mar 2018 13:28:57 -0400 -Subject: [PATCH 102/220] Work around some minor include path weirdnesses +Subject: [PATCH] Work around some minor include path weirdnesses Signed-off-by: Peter Jones --- @@ -17,7 +17,7 @@ Signed-off-by: Peter Jones diff --git a/include/grub/arm/efi/console.h b/include/grub/arm/efi/console.h new file mode 100644 -index 0000000..1592f6f +index 00000000000..1592f6f76b5 --- /dev/null +++ b/include/grub/arm/efi/console.h @@ -0,0 +1,24 @@ @@ -47,7 +47,7 @@ index 0000000..1592f6f +#endif /* ! GRUB_ARM_EFI_CONSOLE_H */ diff --git a/include/grub/arm64/efi/console.h b/include/grub/arm64/efi/console.h new file mode 100644 -index 0000000..9568933 +index 00000000000..95689339384 --- /dev/null +++ b/include/grub/arm64/efi/console.h @@ -0,0 +1,24 @@ @@ -77,7 +77,7 @@ index 0000000..9568933 +#endif /* ! GRUB_ARM64_EFI_CONSOLE_H */ diff --git a/include/grub/i386/efi/console.h b/include/grub/i386/efi/console.h new file mode 100644 -index 0000000..9231375 +index 00000000000..9231375cb07 --- /dev/null +++ b/include/grub/i386/efi/console.h @@ -0,0 +1,24 @@ @@ -107,7 +107,7 @@ index 0000000..9231375 +#endif /* ! GRUB_I386_EFI_CONSOLE_H */ diff --git a/include/grub/x86_64/efi/console.h b/include/grub/x86_64/efi/console.h new file mode 100644 -index 0000000..dba9d86 +index 00000000000..dba9d8678d0 --- /dev/null +++ b/include/grub/x86_64/efi/console.h @@ -0,0 +1,24 @@ @@ -135,6 +135,3 @@ index 0000000..dba9d86 +#include + +#endif /* ! GRUB_X86_64_EFI_CONSOLE_H */ --- -1.8.3.1 - diff --git a/0103-Make-it-possible-to-enabled-build-id-sha1.patch b/0068-Make-it-possible-to-enabled-build-id-sha1.patch similarity index 87% rename from 0103-Make-it-possible-to-enabled-build-id-sha1.patch rename to 0068-Make-it-possible-to-enabled-build-id-sha1.patch index 9873991..f68fc58 100644 --- a/0103-Make-it-possible-to-enabled-build-id-sha1.patch +++ b/0068-Make-it-possible-to-enabled-build-id-sha1.patch @@ -1,16 +1,36 @@ -From cc30961c213539793d723cd1ce0c61b8a5553c12 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:41:06 -0400 -Subject: [PATCH 103/220] Make it possible to enabled --build-id=sha1 +Subject: [PATCH] Make it possible to enabled --build-id=sha1 Signed-off-by: Peter Jones --- - acinclude.m4 | 19 +++++++++++++++++++ configure.ac | 8 ++++++++ + acinclude.m4 | 19 +++++++++++++++++++ 2 files changed, 27 insertions(+) +diff --git a/configure.ac b/configure.ac +index a0030632220..b50fb2e9897 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1470,7 +1470,15 @@ grub_PROG_TARGET_CC + if test "x$TARGET_APPLE_LINKER" != x1 ; then + grub_PROG_OBJCOPY_ABSOLUTE + fi ++ ++AC_ARG_ENABLE([build-id], ++ [AS_HELP_STRING([--enable-build-id], ++ [ask the linker to supply build-id notes (default=no)])]) ++if test x$enable_build_id = xyes; then ++grub_PROG_LD_BUILD_ID_SHA1 ++else + grub_PROG_LD_BUILD_ID_NONE ++fi + if test "x$target_cpu" = xi386; then + if test "$platform" != emu && test "x$TARGET_APPLE_LINKER" != x1 ; then + if test ! -z "$TARGET_IMG_LDSCRIPT"; then diff --git a/acinclude.m4 b/acinclude.m4 -index 78cdf6e..242e829 100644 +index 6e14bb553c6..21238fcfd03 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -136,6 +136,25 @@ if test "x$grub_cv_prog_ld_build_id_none" = xyes; then @@ -39,26 +59,3 @@ index 78cdf6e..242e829 100644 dnl Check nm AC_DEFUN([grub_PROG_NM_WORKS], [AC_MSG_CHECKING([whether nm works]) -diff --git a/configure.ac b/configure.ac -index eb851b8..8ee18ba 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1414,7 +1414,15 @@ grub_PROG_TARGET_CC - if test "x$TARGET_APPLE_LINKER" != x1 ; then - grub_PROG_OBJCOPY_ABSOLUTE - fi -+ -+AC_ARG_ENABLE([build-id], -+ [AS_HELP_STRING([--enable-build-id], -+ [ask the linker to supply build-id notes (default=no)])]) -+if test x$enable_build_id = xyes; then -+grub_PROG_LD_BUILD_ID_SHA1 -+else - grub_PROG_LD_BUILD_ID_NONE -+fi - if test "x$target_cpu" = xi386; then - if test "$platform" != emu && test "x$TARGET_APPLE_LINKER" != x1 ; then - if test ! -z "$TARGET_IMG_LDSCRIPT"; then --- -1.8.3.1 - diff --git a/0104-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch b/0069-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch similarity index 81% rename from 0104-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch rename to 0069-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch index d609304..a8a757e 100644 --- a/0104-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch +++ b/0069-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch @@ -1,8 +1,8 @@ -From 550772dbfbe9a0bc144d3d90ed0c2e87663a318b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sun, 28 Jun 2015 13:09:58 -0400 -Subject: [PATCH 104/220] Add grub_qdprintf() - grub_dprintf() without the - file+line number. +Subject: [PATCH] Add grub_qdprintf() - grub_dprintf() without the file+line + number. This just makes copy+paste of our debug loading info easier. @@ -13,10 +13,10 @@ Signed-off-by: Peter Jones 2 files changed, 20 insertions(+) diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index 5c2d203..0e89c48 100644 +index a432a6be54a..9a2fae6398e 100644 --- a/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c -@@ -190,6 +190,24 @@ grub_real_dprintf (const char *file, const int line, const char *condition, +@@ -191,6 +191,24 @@ grub_real_dprintf (const char *file, const int line, const char *condition, } } @@ -42,10 +42,10 @@ index 5c2d203..0e89c48 100644 int diff --git a/include/grub/misc.h b/include/grub/misc.h -index 4a4f485..960097f 100644 +index fd18e6320b8..3adc4036e3b 100644 --- a/include/grub/misc.h +++ b/include/grub/misc.h -@@ -372,6 +372,8 @@ void EXPORT_FUNC(grub_real_dprintf) (const char *file, +@@ -345,6 +345,8 @@ void EXPORT_FUNC(grub_real_dprintf) (const char *file, const int line, const char *condition, const char *fmt, ...) __attribute__ ((format (GNU_PRINTF, 4, 5))); @@ -54,6 +54,3 @@ index 4a4f485..960097f 100644 int EXPORT_FUNC(grub_vprintf) (const char *fmt, va_list args); int EXPORT_FUNC(grub_snprintf) (char *str, grub_size_t n, const char *fmt, ...) __attribute__ ((format (GNU_PRINTF, 3, 4))); --- -1.8.3.1 - diff --git a/0105-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch b/0070-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch similarity index 87% rename from 0105-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch rename to 0070-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch index 5f44b93..75de764 100644 --- a/0105-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +++ b/0070-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch @@ -1,7 +1,7 @@ -From 0439dd373f4c7fe346fd3e2b4680e21135f5a00b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:11:36 -0400 -Subject: [PATCH 105/220] Make a "gdb" dprintf that tells us load addresses. +Subject: [PATCH] Make a "gdb" dprintf that tells us load addresses. This makes a grub_dprintf() call during platform init and during module loading that tells us the virtual addresses of the .text and .data @@ -20,7 +20,7 @@ Signed-off-by: Peter Jones 4 files changed, 78 insertions(+), 4 deletions(-) diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c -index 2e57e5e..6a5e770 100644 +index 88d2077709e..9557254035e 100644 --- a/grub-core/kern/dl.c +++ b/grub-core/kern/dl.c @@ -501,6 +501,23 @@ grub_dl_find_section (Elf_Ehdr *e, const char *name) @@ -47,7 +47,7 @@ index 2e57e5e..6a5e770 100644 /* Me, Vladimir Serbinenko, hereby I add this module check as per new GNU module policy. Note that this license check is informative only. -@@ -644,6 +661,37 @@ grub_dl_relocate_symbols (grub_dl_t mod, void *ehdr) +@@ -653,6 +670,37 @@ grub_dl_relocate_symbols (grub_dl_t mod, void *ehdr) return GRUB_ERR_NONE; } @@ -85,7 +85,7 @@ index 2e57e5e..6a5e770 100644 /* Load a module from core memory. */ grub_dl_t -@@ -703,6 +751,8 @@ grub_dl_load_core_noinit (void *addr, grub_size_t size) +@@ -712,6 +760,8 @@ grub_dl_load_core_noinit (void *addr, grub_size_t size) grub_dprintf ("modules", "module name: %s\n", mod->name); grub_dprintf ("modules", "init function: %p\n", mod->init); @@ -95,10 +95,10 @@ index 2e57e5e..6a5e770 100644 { grub_dl_unload (mod); diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index 2cf6a5a..19054b1 100644 +index ae9885edb84..d6a2fb57789 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c -@@ -283,7 +283,7 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, +@@ -296,7 +296,7 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, /* Search the mods section from the PE32/PE32+ image. This code uses a PE32 header, but should work with PE32+ as well. */ grub_addr_t @@ -107,7 +107,7 @@ index 2cf6a5a..19054b1 100644 { grub_efi_loaded_image_t *image; struct grub_pe32_header *header; -@@ -308,7 +308,7 @@ grub_efi_modules_addr (void) +@@ -321,7 +321,7 @@ grub_efi_modules_addr (void) i < coff_header->num_sections; i++, section++) { @@ -117,10 +117,10 @@ index 2cf6a5a..19054b1 100644 } diff --git a/grub-core/kern/efi/init.c b/grub-core/kern/efi/init.c -index 71d2279..e6183a4 100644 +index 6d39bd3ad29..2d12e6188fd 100644 --- a/grub-core/kern/efi/init.c +++ b/grub-core/kern/efi/init.c -@@ -59,10 +59,33 @@ grub_efi_env_init (void) +@@ -115,10 +115,33 @@ grub_efi_env_init (void) grub_free (envblk_s.buf); } @@ -155,7 +155,7 @@ index 71d2279..e6183a4 100644 /* First of all, initialize the console so that GRUB can display messages. */ grub_console_init (); -@@ -74,6 +97,7 @@ grub_efi_init (void) +@@ -142,6 +165,7 @@ grub_efi_init (void) 0, 0, 0, NULL); grub_efi_env_init (); @@ -164,10 +164,10 @@ index 71d2279..e6183a4 100644 } diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index 5e2b479..8ca3981 100644 +index 03f9a9d0118..2e0691454b1 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h -@@ -132,7 +132,7 @@ grub_err_t grub_arch_efi_linux_check_image(struct linux_arch_kernel_header *lh); +@@ -138,7 +138,7 @@ grub_err_t grub_arch_efi_linux_check_image(struct linux_arch_kernel_header *lh); grub_err_t grub_arch_efi_linux_boot_image(grub_addr_t addr, char *args); #endif @@ -176,6 +176,3 @@ index 5e2b479..8ca3981 100644 void grub_efi_mm_init (void); void grub_efi_mm_fini (void); --- -1.8.3.1 - diff --git a/0070-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch b/0070-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch deleted file mode 100644 index 1bbd05c..0000000 --- a/0070-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 32025dc603bdf22bdb60ebbd881a4b43b587a1a0 Mon Sep 17 00:00:00 2001 -From: Mark Salter -Date: Mon, 17 Apr 2017 08:44:29 -0400 -Subject: [PATCH 070/220] arm64: make sure fdt has #address-cells and - #size-cells properties - -Recent upstream changes to kexec-tools relies on #address-cells -and #size-cells properties in the FDT. If grub2 needs to create -a chosen node, it is likely because firmware did not provide one. -In that case, set #address-cells and #size-cells properties to -make sure they exist. ---- - grub-core/loader/arm64/linux.c | 16 +++++++++++++++- - 1 file changed, 15 insertions(+), 1 deletion(-) - -diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index 04994d5..4c0a09c 100644 ---- a/grub-core/loader/arm64/linux.c -+++ b/grub-core/loader/arm64/linux.c -@@ -81,7 +81,21 @@ finalize_params_linux (void) - - node = grub_fdt_find_subnode (fdt, 0, "chosen"); - if (node < 0) -- node = grub_fdt_add_subnode (fdt, 0, "chosen"); -+ { -+ /* -+ * If we have to create a chosen node, Make sure we -+ * have #address-cells and #size-cells properties. -+ */ -+ retval = grub_fdt_set_prop32(fdt, 0, "#address-cells", 2); -+ if (retval) -+ goto failure; -+ -+ retval = grub_fdt_set_prop32(fdt, 0, "#size-cells", 2); -+ if (retval) -+ goto failure; -+ -+ node = grub_fdt_add_subnode (fdt, 0, "chosen"); -+ } - - if (node < 1) - goto failure; --- -1.8.3.1 - diff --git a/0106-Fixup-for-newer-compiler.patch b/0071-Fixup-for-newer-compiler.patch similarity index 79% rename from 0106-Fixup-for-newer-compiler.patch rename to 0071-Fixup-for-newer-compiler.patch index cc830c7..12dd193 100644 --- a/0106-Fixup-for-newer-compiler.patch +++ b/0071-Fixup-for-newer-compiler.patch @@ -1,7 +1,7 @@ -From d274cc00ea92dc4aa9c7b4b63e230e37186d31c6 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 10 May 2018 13:40:19 -0400 -Subject: [PATCH 106/220] Fixup for newer compiler +Subject: [PATCH] Fixup for newer compiler --- grub-core/fs/btrfs.c | 2 +- @@ -9,10 +9,10 @@ Subject: [PATCH 106/220] Fixup for newer compiler 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index ba99d04..9cd7f4b 100644 +index 2b21cbaa67e..4cc86e9b79e 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c -@@ -215,7 +215,7 @@ struct grub_btrfs_inode +@@ -218,7 +218,7 @@ struct grub_btrfs_inode grub_uint64_t size; grub_uint8_t dummy2[0x70]; struct grub_btrfs_time mtime; @@ -22,7 +22,7 @@ index ba99d04..9cd7f4b 100644 struct grub_btrfs_extent_data { diff --git a/include/grub/gpt_partition.h b/include/grub/gpt_partition.h -index 7a93f43..8212697 100644 +index 7a93f43291c..8212697bf6b 100644 --- a/include/grub/gpt_partition.h +++ b/include/grub/gpt_partition.h @@ -76,7 +76,7 @@ struct grub_gpt_partentry @@ -34,6 +34,3 @@ index 7a93f43..8212697 100644 grub_err_t grub_gpt_partition_map_iterate (grub_disk_t disk, --- -1.8.3.1 - diff --git a/0107-Don-t-attempt-to-export-the-start-and-_start-symbols.patch b/0072-Don-t-attempt-to-export-the-start-and-_start-symbols.patch similarity index 84% rename from 0107-Don-t-attempt-to-export-the-start-and-_start-symbols.patch rename to 0072-Don-t-attempt-to-export-the-start-and-_start-symbols.patch index db380c1..0e925ee 100644 --- a/0107-Don-t-attempt-to-export-the-start-and-_start-symbols.patch +++ b/0072-Don-t-attempt-to-export-the-start-and-_start-symbols.patch @@ -1,8 +1,8 @@ -From c6522389c9a795007a54aedeb10f8c3afd9dab24 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Sat, 12 May 2018 11:29:07 +0200 -Subject: [PATCH 107/220] Don't attempt to export the start and _start symbols - for grub-emu +Subject: [PATCH] Don't attempt to export the start and _start symbols for + grub-emu Commit 318ee04aadc ("make better backtraces") reworked the backtrace logic but the changes lead to the following build error on the grub-emu platform: @@ -26,10 +26,10 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 2 insertions(+) diff --git a/include/grub/kernel.h b/include/grub/kernel.h -index e5a5f43..de48cd4 100644 +index 300a9766cda..55849777eaa 100644 --- a/include/grub/kernel.h +++ b/include/grub/kernel.h -@@ -110,8 +110,10 @@ grub_addr_t grub_modules_get_end (void); +@@ -111,8 +111,10 @@ grub_addr_t grub_modules_get_end (void); #endif @@ -40,6 +40,3 @@ index e5a5f43..de48cd4 100644 /* The start point of the C code. */ void grub_main (void) __attribute__ ((noreturn)); --- -1.8.3.1 - diff --git a/0072-print-more-debug-info-in-our-module-loader.patch b/0072-print-more-debug-info-in-our-module-loader.patch deleted file mode 100644 index 2c2a738..0000000 --- a/0072-print-more-debug-info-in-our-module-loader.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 2b61111bf5f5fa076faa6c7ad1066823b16b1474 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 1 May 2017 11:19:40 -0400 -Subject: [PATCH 072/220] print more debug info in our module loader. - -Signed-off-by: Peter Jones ---- - grub-core/kern/efi/efi.c | 16 +++++++++++++--- - 1 file changed, 13 insertions(+), 3 deletions(-) - -diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index 370ce03..a1af9b4 100644 ---- a/grub-core/kern/efi/efi.c -+++ b/grub-core/kern/efi/efi.c -@@ -313,13 +313,23 @@ grub_efi_modules_addr (void) - } - - if (i == coff_header->num_sections) -- return 0; -+ { -+ grub_dprintf("sections", "section %d is last section; invalid.\n", i); -+ return 0; -+ } - - info = (struct grub_module_info *) ((char *) image->image_base - + section->virtual_address); -- if (info->magic != GRUB_MODULE_MAGIC) -- return 0; -+ if (section->name[0] != '.' && info->magic != GRUB_MODULE_MAGIC) -+ { -+ grub_dprintf("sections", -+ "section %d has bad magic %08x, should be %08x\n", -+ i, info->magic, GRUB_MODULE_MAGIC); -+ return 0; -+ } - -+ grub_dprintf("sections", "returning section info for section %d: \"%s\"\n", -+ i, section->name); - return (grub_addr_t) info; - } - --- -1.8.3.1 - diff --git a/0108-Fixup-for-newer-compiler.patch b/0073-Fixup-for-newer-compiler.patch similarity index 86% rename from 0108-Fixup-for-newer-compiler.patch rename to 0073-Fixup-for-newer-compiler.patch index f6b78d2..11ed6e5 100644 --- a/0108-Fixup-for-newer-compiler.patch +++ b/0073-Fixup-for-newer-compiler.patch @@ -1,14 +1,14 @@ -From 433752e769b2a31d94b7e70fba2a73be509e8510 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 10 May 2018 13:40:19 -0400 -Subject: [PATCH 108/220] Fixup for newer compiler +Subject: [PATCH] Fixup for newer compiler --- conf/Makefile.common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/Makefile.common b/conf/Makefile.common -index 4ba729e..5e8ba2a 100644 +index 191b1a70c6b..5f0ef969857 100644 --- a/conf/Makefile.common +++ b/conf/Makefile.common @@ -38,7 +38,7 @@ CFLAGS_KERNEL = $(CFLAGS_PLATFORM) -ffreestanding @@ -20,6 +20,3 @@ index 4ba729e..5e8ba2a 100644 CFLAGS_MODULE = $(CFLAGS_PLATFORM) -ffreestanding LDFLAGS_MODULE = $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) -Wl,-r,-d --- -1.8.3.1 - diff --git a/0109-Add-support-for-non-Ethernet-network-cards.patch b/0074-Add-support-for-non-Ethernet-network-cards.patch similarity index 94% rename from 0109-Add-support-for-non-Ethernet-network-cards.patch rename to 0074-Add-support-for-non-Ethernet-network-cards.patch index c66ef7d..02fb951 100644 --- a/0109-Add-support-for-non-Ethernet-network-cards.patch +++ b/0074-Add-support-for-non-Ethernet-network-cards.patch @@ -1,7 +1,7 @@ -From e8e2d019246798865075a3577619ac89ac34eee6 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andrzej Kacprowski Date: Wed, 10 Jul 2019 15:22:29 +0200 -Subject: [PATCH 109/220] Add support for non-Ethernet network cards +Subject: [PATCH] Add support for non-Ethernet network cards This patch replaces fixed 6-byte link layer address with up to 32-byte variable sized address. @@ -23,22 +23,22 @@ Signed-off-by: Andrzej Kacprowski [msalter: Fix max string calculation in grub_net_hwaddr_to_str] Signed-off-by: Mark Salter --- - grub-core/net/arp.c | 157 +++++++++++++++++++++------------ + grub-core/net/arp.c | 155 ++++++++++++++++++++++----------- grub-core/net/bootp.c | 15 ++-- grub-core/net/drivers/efi/efinet.c | 8 +- grub-core/net/drivers/emu/emunet.c | 1 + grub-core/net/drivers/i386/pc/pxe.c | 13 +-- grub-core/net/drivers/ieee1275/ofnet.c | 2 + grub-core/net/drivers/uboot/ubootnet.c | 1 + - grub-core/net/ethernet.c | 88 +++++++++--------- + grub-core/net/ethernet.c | 88 +++++++++---------- grub-core/net/icmp6.c | 15 ++-- grub-core/net/ip.c | 4 +- grub-core/net/net.c | 50 ++++++----- include/grub/net.h | 19 ++-- - 12 files changed, 220 insertions(+), 153 deletions(-) + 12 files changed, 219 insertions(+), 152 deletions(-) diff --git a/grub-core/net/arp.c b/grub-core/net/arp.c -index 54306e3..67b409a 100644 +index 54306e3b16d..67b409a8acc 100644 --- a/grub-core/net/arp.c +++ b/grub-core/net/arp.c @@ -31,22 +31,12 @@ enum @@ -146,16 +146,15 @@ index 54306e3..67b409a 100644 grub_net_network_level_address_t sender_addr, target_addr; grub_net_link_level_address_t sender_mac_addr; struct grub_net_network_level_interface *inf; -- -- if (arp_packet->pro != grub_cpu_to_be16_compile_time (GRUB_NET_ETHERTYPE_IP) -- || arp_packet->pln != 4 || arp_packet->hln != 6 -- || nb->tail - nb->data < (int) sizeof (*arp_packet)) + grub_uint16_t hw_type; + grub_uint8_t hln; + grub_uint8_t pln; + grub_uint8_t arp_packet_len; + grub_uint8_t *tmp_ptr; -+ + +- if (arp_packet->pro != grub_cpu_to_be16_compile_time (GRUB_NET_ETHERTYPE_IP) +- || arp_packet->pln != 4 || arp_packet->hln != 6 +- || nb->tail - nb->data < (int) sizeof (*arp_packet)) + hw_type = card->default_address.type; + hln = card->default_address.len; + pln = sizeof(sender_addr.ipv4); @@ -178,29 +177,29 @@ index 54306e3..67b409a 100644 + + /* The source protocol address. */ sender_addr.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV4; -- target_addr.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV4; -- sender_addr.ipv4 = arp_packet->sender_ip; -- target_addr.ipv4 = arp_packet->recv_ip; -- if (arp_packet->sender_ip == pending_req) -- have_pending = 1; + grub_memcpy(&sender_addr.ipv4, tmp_ptr, pln); + tmp_ptr += pln; - -- sender_mac_addr.type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET; -- grub_memcpy (sender_mac_addr.mac, arp_packet->sender_mac, -- sizeof (sender_mac_addr.mac)); - grub_net_link_layer_add_address (card, &sender_addr, &sender_mac_addr, 1); - ++ ++ grub_net_link_layer_add_address (card, &sender_addr, &sender_mac_addr, 1); ++ + /* The target hardware address. */ + tmp_ptr += hln; + + /* The target protocol address. */ -+ target_addr.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV4; + target_addr.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV4; +- sender_addr.ipv4 = arp_packet->sender_ip; +- target_addr.ipv4 = arp_packet->recv_ip; +- if (arp_packet->sender_ip == pending_req) + grub_memcpy(&target_addr.ipv4, tmp_ptr, pln); + + if (sender_addr.ipv4 == pending_req) -+ have_pending = 1; -+ + have_pending = 1; + +- sender_mac_addr.type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET; +- grub_memcpy (sender_mac_addr.mac, arp_packet->sender_mac, +- sizeof (sender_mac_addr.mac)); +- grub_net_link_layer_add_address (card, &sender_addr, &sender_mac_addr, 1); +- FOR_NET_NETWORK_LEVEL_INTERFACES (inf) { /* Verify vlantag id */ @@ -272,10 +271,10 @@ index 54306e3..67b409a 100644 /* Change operation to REPLY and send packet */ send_ethernet_packet (inf, &nb_reply, target, GRUB_NET_ETHERTYPE_ARP); diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c -index 8c96959..3cf6dbf 100644 +index e28fb6a09f9..08b6b2b5d6c 100644 --- a/grub-core/net/bootp.c +++ b/grub-core/net/bootp.c -@@ -269,7 +269,6 @@ grub_net_configure_by_dhcp_ack (const char *name, +@@ -233,7 +233,6 @@ grub_net_configure_by_dhcp_ack (const char *name, int is_def, char **device, char **path) { grub_net_network_level_address_t addr; @@ -283,7 +282,7 @@ index 8c96959..3cf6dbf 100644 struct grub_net_network_level_interface *inter; int mask = -1; char server_ip[sizeof ("xxx.xxx.xxx.xxx")]; -@@ -286,12 +285,8 @@ grub_net_configure_by_dhcp_ack (const char *name, +@@ -250,12 +249,8 @@ grub_net_configure_by_dhcp_ack (const char *name, if (path) *path = 0; @@ -298,7 +297,7 @@ index 8c96959..3cf6dbf 100644 if (!inter) return 0; -@@ -601,7 +596,9 @@ send_dhcp_packet (struct grub_net_network_level_interface *iface) +@@ -567,7 +562,9 @@ send_dhcp_packet (struct grub_net_network_level_interface *iface) grub_memset (pack, 0, sizeof (*pack)); pack->opcode = 1; pack->hw_type = 1; @@ -309,7 +308,7 @@ index 8c96959..3cf6dbf 100644 err = grub_get_datetime (&date); if (err || !grub_datetime2unixtime (&date, &t)) { -@@ -614,7 +611,7 @@ send_dhcp_packet (struct grub_net_network_level_interface *iface) +@@ -580,7 +577,7 @@ send_dhcp_packet (struct grub_net_network_level_interface *iface) else pack->ident = iface->xid; @@ -319,10 +318,10 @@ index 8c96959..3cf6dbf 100644 grub_netbuff_push (nb, sizeof (*udph)); diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index a57189e..4444e8e 100644 +index 173fb63153c..a673bea807a 100644 --- a/grub-core/net/drivers/efi/efinet.c +++ b/grub-core/net/drivers/efi/efinet.c -@@ -280,6 +280,9 @@ grub_efinet_findcards (void) +@@ -279,6 +279,9 @@ grub_efinet_findcards (void) /* This should not happen... Why? */ continue; @@ -332,7 +331,7 @@ index a57189e..4444e8e 100644 if (net->mode->state == GRUB_EFI_NETWORK_STOPPED && efi_call_1 (net->start, net) != GRUB_EFI_SUCCESS) continue; -@@ -316,10 +319,11 @@ grub_efinet_findcards (void) +@@ -315,10 +318,11 @@ grub_efinet_findcards (void) card->name = grub_xasprintf ("efinet%d", i++); card->driver = &efidriver; card->flags = 0; @@ -347,7 +346,7 @@ index a57189e..4444e8e 100644 card->efi_handle = *handle; diff --git a/grub-core/net/drivers/emu/emunet.c b/grub-core/net/drivers/emu/emunet.c -index b194920..5b6c5e1 100644 +index b194920861f..5b6c5e16a6d 100644 --- a/grub-core/net/drivers/emu/emunet.c +++ b/grub-core/net/drivers/emu/emunet.c @@ -46,6 +46,7 @@ static struct grub_net_card emucard = @@ -359,7 +358,7 @@ index b194920..5b6c5e1 100644 }, .flags = 0 diff --git a/grub-core/net/drivers/i386/pc/pxe.c b/grub-core/net/drivers/i386/pc/pxe.c -index 3f4152d..9f8fb4b 100644 +index 3f4152d036c..9f8fb4b6d2b 100644 --- a/grub-core/net/drivers/i386/pc/pxe.c +++ b/grub-core/net/drivers/i386/pc/pxe.c @@ -386,20 +386,21 @@ GRUB_MOD_INIT(pxe) @@ -391,7 +390,7 @@ index 3f4152d..9f8fb4b 100644 grub_pxe_card.default_address.type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET; diff --git a/grub-core/net/drivers/ieee1275/ofnet.c b/grub-core/net/drivers/ieee1275/ofnet.c -index 3860b6f..bcb3f9e 100644 +index 3860b6f78d8..bcb3f9ea02d 100644 --- a/grub-core/net/drivers/ieee1275/ofnet.c +++ b/grub-core/net/drivers/ieee1275/ofnet.c @@ -160,6 +160,7 @@ grub_ieee1275_parse_bootpath (const char *devpath, char *bootpath, @@ -411,7 +410,7 @@ index 3860b6f..bcb3f9e 100644 card->txbufsize = ALIGN_UP (card->mtu, 64) + 256; diff --git a/grub-core/net/drivers/uboot/ubootnet.c b/grub-core/net/drivers/uboot/ubootnet.c -index 056052e..22ebcbf 100644 +index 056052e40d5..22ebcbf211e 100644 --- a/grub-core/net/drivers/uboot/ubootnet.c +++ b/grub-core/net/drivers/uboot/ubootnet.c @@ -131,6 +131,7 @@ GRUB_MOD_INIT (ubootnet) @@ -423,7 +422,7 @@ index 056052e..22ebcbf 100644 card->txbufsize = ALIGN_UP (card->mtu, 64) + 256; card->txbuf = grub_zalloc (card->txbufsize); diff --git a/grub-core/net/ethernet.c b/grub-core/net/ethernet.c -index 4d7ceed..9aae83a 100644 +index 4d7ceed6f93..9aae83a5eb4 100644 --- a/grub-core/net/ethernet.c +++ b/grub-core/net/ethernet.c @@ -29,13 +29,6 @@ @@ -573,7 +572,7 @@ index 4d7ceed..9aae83a 100644 { /* ARP packet. */ diff --git a/grub-core/net/icmp6.c b/grub-core/net/icmp6.c -index 2cbd95d..56a3ec5 100644 +index 2cbd95dce25..56a3ec5c8e8 100644 --- a/grub-core/net/icmp6.c +++ b/grub-core/net/icmp6.c @@ -231,8 +231,9 @@ grub_net_recv_icmp6_packet (struct grub_net_buff *nb, @@ -613,7 +612,7 @@ index 2cbd95d..56a3ec5 100644 } if (ohdr->type == OPTION_PREFIX && ohdr->len == 4) diff --git a/grub-core/net/ip.c b/grub-core/net/ip.c -index ea5edf8..a5896f6 100644 +index ea5edf8f1f6..a5896f6dc26 100644 --- a/grub-core/net/ip.c +++ b/grub-core/net/ip.c @@ -276,8 +276,8 @@ handle_dgram (struct grub_net_buff *nb, @@ -628,10 +627,10 @@ index ea5edf8..a5896f6 100644 grub_net_process_dhcp (nb, inf); grub_netbuff_free (nb); diff --git a/grub-core/net/net.c b/grub-core/net/net.c -index 5366e44..6468eb2 100644 +index 22f2689aaeb..a46f82362ed 100644 --- a/grub-core/net/net.c +++ b/grub-core/net/net.c -@@ -128,8 +128,9 @@ grub_net_link_layer_resolve (struct grub_net_network_level_interface *inf, +@@ -133,8 +133,9 @@ grub_net_link_layer_resolve (struct grub_net_network_level_interface *inf, << 48) && proto_addr->ipv6[1] == (grub_be_to_cpu64_compile_time (1)))) { @@ -643,7 +642,7 @@ index 5366e44..6468eb2 100644 return GRUB_ERR_NONE; } -@@ -137,6 +138,7 @@ grub_net_link_layer_resolve (struct grub_net_network_level_interface *inf, +@@ -142,6 +143,7 @@ grub_net_link_layer_resolve (struct grub_net_network_level_interface *inf, && ((grub_be_to_cpu64 (proto_addr->ipv6[0]) >> 56) == 0xff)) { hw_addr->type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET; @@ -651,7 +650,7 @@ index 5366e44..6468eb2 100644 hw_addr->mac[0] = 0x33; hw_addr->mac[1] = 0x33; hw_addr->mac[2] = ((grub_be_to_cpu64 (proto_addr->ipv6[1]) >> 24) & 0xff); -@@ -757,23 +759,23 @@ grub_net_addr_to_str (const grub_net_network_level_address_t *target, char *buf) +@@ -762,23 +764,23 @@ grub_net_addr_to_str (const grub_net_network_level_address_t *target, char *buf) void grub_net_hwaddr_to_str (const grub_net_link_level_address_t *addr, char *str) { @@ -690,7 +689,7 @@ index 5366e44..6468eb2 100644 } int -@@ -784,13 +786,17 @@ grub_net_hwaddr_cmp (const grub_net_link_level_address_t *a, +@@ -789,13 +791,17 @@ grub_net_hwaddr_cmp (const grub_net_link_level_address_t *a, return -1; if (a->type > b->type) return +1; @@ -714,7 +713,7 @@ index 5366e44..6468eb2 100644 int diff --git a/include/grub/net.h b/include/grub/net.h -index 3647012..fc1fc44 100644 +index 8a05ec4fe7a..af0404db7e3 100644 --- a/include/grub/net.h +++ b/include/grub/net.h @@ -29,7 +29,8 @@ @@ -765,6 +764,3 @@ index 3647012..fc1fc44 100644 void grub_net_addr_to_str (const grub_net_network_level_address_t *target, --- -1.8.3.1 - diff --git a/0111-net-read-bracketed-ipv6-addrs-and-port-numbers.patch b/0075-net-read-bracketed-ipv6-addrs-and-port-numbers.patch similarity index 86% rename from 0111-net-read-bracketed-ipv6-addrs-and-port-numbers.patch rename to 0075-net-read-bracketed-ipv6-addrs-and-port-numbers.patch index fef7bf8..834b96e 100644 --- a/0111-net-read-bracketed-ipv6-addrs-and-port-numbers.patch +++ b/0075-net-read-bracketed-ipv6-addrs-and-port-numbers.patch @@ -1,7 +1,7 @@ -From 4a61dd01be61bb37b64866659e357558535b8b56 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Aaron Miller Date: Fri, 29 Jul 2016 17:41:38 +0800 -Subject: [PATCH 111/220] net: read bracketed ipv6 addrs and port numbers +Subject: [PATCH] net: read bracketed ipv6 addrs and port numbers Allow specifying port numbers for http and tftp paths, and allow ipv6 addresses to be recognized with brackets around them, which is required to specify a port @@ -11,14 +11,14 @@ Signed-off-by: Aaron Miller [pjones: various bug fixes] Signed-off-by: Peter Jones --- - grub-core/net/http.c | 27 ++++++++++++---- + grub-core/net/http.c | 25 ++++++++++++--- grub-core/net/net.c | 87 +++++++++++++++++++++++++++++++++++++++++++++++++--- grub-core/net/tftp.c | 8 +++-- include/grub/net.h | 1 + - 4 files changed, 110 insertions(+), 13 deletions(-) + 4 files changed, 109 insertions(+), 12 deletions(-) diff --git a/grub-core/net/http.c b/grub-core/net/http.c -index 5aa4ad3..00737c5 100644 +index b616cf40b1e..12a2632ea55 100644 --- a/grub-core/net/http.c +++ b/grub-core/net/http.c @@ -289,7 +289,9 @@ http_receive (grub_net_tcp_socket_t sock __attribute__ ((unused)), @@ -73,26 +73,24 @@ index 5aa4ad3..00737c5 100644 ptr = nb->tail; err = grub_netbuff_put (nb, sizeof ("\r\nUser-Agent: " PACKAGE_STRING "\r\n") -@@ -390,9 +403,11 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial) +@@ -390,8 +403,10 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial) grub_netbuff_put (nb, 2); grub_memcpy (ptr, "\r\n", 2); - data->sock = grub_net_tcp_open (file->device->net->server, - HTTP_PORT, http_receive, -- http_err, http_err, + grub_dprintf ("http", "opening path %s on host %s TCP port %d\n", + data->filename, server, port ? port : HTTP_PORT); + data->sock = grub_net_tcp_open (server, + port ? port : HTTP_PORT, http_receive, -+ http_err, NULL, + http_err, NULL, file); if (!data->sock) - { diff --git a/grub-core/net/net.c b/grub-core/net/net.c -index 6468eb2..2734f70 100644 +index a46f82362ed..0ce5e675ed7 100644 --- a/grub-core/net/net.c +++ b/grub-core/net/net.c -@@ -439,6 +439,13 @@ parse_ip6 (const char *val, grub_uint64_t *ip, const char **rest) +@@ -444,6 +444,13 @@ parse_ip6 (const char *val, grub_uint64_t *ip, const char **rest) grub_uint16_t newip[8]; const char *ptr = val; int word, quaddot = -1; @@ -106,7 +104,7 @@ index 6468eb2..2734f70 100644 if (ptr[0] == ':' && ptr[1] != ':') return 0; -@@ -477,6 +484,8 @@ parse_ip6 (const char *val, grub_uint64_t *ip, const char **rest) +@@ -482,6 +489,8 @@ parse_ip6 (const char *val, grub_uint64_t *ip, const char **rest) grub_memset (&newip[quaddot], 0, (7 - word) * sizeof (newip[0])); } grub_memcpy (ip, newip, 16); @@ -115,7 +113,7 @@ index 6468eb2..2734f70 100644 if (rest) *rest = ptr; return 1; -@@ -1338,8 +1347,10 @@ grub_net_open_real (const char *name) +@@ -1343,8 +1352,10 @@ grub_net_open_real (const char *name) { grub_net_app_level_t proto; const char *protname, *server; @@ -126,7 +124,7 @@ index 6468eb2..2734f70 100644 if (grub_strncmp (name, "pxe:", sizeof ("pxe:") - 1) == 0) { -@@ -1377,6 +1388,72 @@ grub_net_open_real (const char *name) +@@ -1382,6 +1393,72 @@ grub_net_open_real (const char *name) return NULL; } @@ -199,7 +197,7 @@ index 6468eb2..2734f70 100644 for (try = 0; try < 2; try++) { FOR_NET_APP_LEVEL (proto) -@@ -1386,14 +1463,13 @@ grub_net_open_real (const char *name) +@@ -1391,14 +1468,13 @@ grub_net_open_real (const char *name) { grub_net_t ret = grub_zalloc (sizeof (*ret)); if (!ret) @@ -218,7 +216,7 @@ index 6468eb2..2734f70 100644 ret->fs = &grub_net_fs; return ret; } -@@ -1468,6 +1544,7 @@ grub_net_open_real (const char *name) +@@ -1473,6 +1549,7 @@ grub_net_open_real (const char *name) grub_error (GRUB_ERR_UNKNOWN_DEVICE, N_("disk `%s' not found"), name); @@ -227,10 +225,10 @@ index 6468eb2..2734f70 100644 } diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c -index f900713..e267af3 100644 +index 4ab2f5c7357..d54b13f09ff 100644 --- a/grub-core/net/tftp.c +++ b/grub-core/net/tftp.c -@@ -333,6 +333,7 @@ tftp_open (struct grub_file *file, const char *filename) +@@ -295,6 +295,7 @@ tftp_open (struct grub_file *file, const char *filename) grub_err_t err; grub_uint8_t *nbd; grub_net_network_level_address_t addr; @@ -238,7 +236,7 @@ index f900713..e267af3 100644 data = grub_zalloc (sizeof (*data)); if (!data) -@@ -405,7 +406,10 @@ tftp_open (struct grub_file *file, const char *filename) +@@ -362,14 +363,17 @@ tftp_open (struct grub_file *file, const char *filename) err = grub_net_resolve_address (file->device->net->server, &addr); if (err) { @@ -247,10 +245,9 @@ index f900713..e267af3 100644 + grub_dprintf ("tftp", "file_size is %llu, block_size is %llu\n", + (unsigned long long)data->file_size, + (unsigned long long)data->block_size); - destroy_pq (data); grub_free (data); return err; -@@ -413,7 +417,7 @@ tftp_open (struct grub_file *file, const char *filename) + } grub_dprintf("tftp", "opening connection\n"); data->sock = grub_net_udp_open (addr, @@ -260,7 +257,7 @@ index f900713..e267af3 100644 if (!data->sock) { diff --git a/include/grub/net.h b/include/grub/net.h -index fc1fc44..fa7a8c3 100644 +index af0404db7e3..d55d505a03a 100644 --- a/include/grub/net.h +++ b/include/grub/net.h @@ -273,6 +273,7 @@ typedef struct grub_net @@ -271,6 +268,3 @@ index fc1fc44..fa7a8c3 100644 grub_net_app_level_t protocol; grub_net_packets_t packs; grub_off_t offset; --- -1.8.3.1 - diff --git a/0112-bootp-New-net_bootp6-command.patch b/0076-bootp-New-net_bootp6-command.patch similarity index 98% rename from 0112-bootp-New-net_bootp6-command.patch rename to 0076-bootp-New-net_bootp6-command.patch index 1f8d229..21b3871 100644 --- a/0112-bootp-New-net_bootp6-command.patch +++ b/0076-bootp-New-net_bootp6-command.patch @@ -1,7 +1,7 @@ -From c8eb4df74d416a4d94c364f2d361c7cc3f9b2cac Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Wed, 10 Jul 2019 15:42:36 +0200 -Subject: [PATCH 112/220] bootp: New net_bootp6 command +Subject: [PATCH] bootp: New net_bootp6 command Implement new net_bootp6 command for IPv6 network auto configuration via the DHCPv6 protocol (RFC3315). @@ -19,12 +19,12 @@ Signed-off-by: Peter Jones 5 files changed, 1002 insertions(+), 209 deletions(-) diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c -index 3cf6dbf..85adc9c 100644 +index 08b6b2b5d6c..fe93b80f1cf 100644 --- a/grub-core/net/bootp.c +++ b/grub-core/net/bootp.c -@@ -25,6 +25,98 @@ +@@ -24,6 +24,98 @@ + #include #include - #include #include +#include +#include @@ -121,7 +121,7 @@ index 3cf6dbf..85adc9c 100644 struct grub_dhcp_discover_options { -@@ -638,6 +730,584 @@ out: +@@ -604,6 +696,584 @@ out: return err; } @@ -706,7 +706,7 @@ index 3cf6dbf..85adc9c 100644 /* * This is called directly from net/ip.c:handle_dgram(), because those * BOOTP/DHCP packets are a bit special due to their improper -@@ -706,6 +1376,77 @@ grub_net_process_dhcp (struct grub_net_buff *nb, +@@ -672,6 +1342,77 @@ grub_net_process_dhcp (struct grub_net_buff *nb, } } @@ -784,7 +784,7 @@ index 3cf6dbf..85adc9c 100644 static grub_err_t grub_cmd_dhcpopt (struct grub_command *cmd __attribute__ ((unused)), int argc, char **args) -@@ -931,180 +1672,174 @@ grub_cmd_bootp (struct grub_command *cmd __attribute__ ((unused)), +@@ -897,180 +1638,174 @@ grub_cmd_bootp (struct grub_command *cmd __attribute__ ((unused)), return err; } @@ -805,22 +805,43 @@ index 3cf6dbf..85adc9c 100644 - struct grub_net_network_level_interface *inter = NULL; - struct grub_net_network_level_address addr; - int mask = -1; -- ++ struct grub_net_card *card; ++ grub_uint32_t iaid = 0; ++ int interval; ++ grub_err_t err; ++ grub_dhcp6_session_t se; + - if (!device || !path) - return NULL; -- ++ err = GRUB_ERR_NONE; + - *device = 0; - *path = 0; -- ++ FOR_NET_CARDS (card) ++ { ++ struct grub_net_network_level_interface *iface; + - grub_dprintf ("net", "mac address is %02x:%02x:%02x:%02x:%02x:%02x\n", - hwaddr->mac[0], hwaddr->mac[1], hwaddr->mac[2], - hwaddr->mac[3], hwaddr->mac[4], hwaddr->mac[5]); -- ++ if (argc > 0 && grub_strcmp (card->name, args[0]) != 0) ++ continue; + - if (is_def) - grub_net_default_server = 0; -- ++ iface = grub_net_ipv6_get_link_local (card, &card->default_address); ++ if (!iface) ++ { ++ grub_dhcp6_session_remove_all (); ++ return grub_errno; ++ } + - if (is_def && !grub_net_default_server && packet) -- { ++ grub_dhcp6_session_add (iface, iaid++); ++ } ++ ++ for (interval = 200; interval < 10000; interval *= 2) + { - const grub_uint8_t *options = packet->dhcp_options; - unsigned int option_max = 1024 - OFFSET_OF (dhcp_options, packet); - unsigned int i; @@ -833,26 +854,15 @@ index 3cf6dbf..85adc9c 100644 - - num = grub_be_to_cpu16(opt->option_num); - len = grub_be_to_cpu16(opt->option_len); -+ struct grub_net_card *card; -+ grub_uint32_t iaid = 0; -+ int interval; -+ grub_err_t err; -+ grub_dhcp6_session_t se; - +- - grub_dprintf ("net", "got dhcpv6 option %d len %d\n", num, len); -+ err = GRUB_ERR_NONE; - +- - if (len == 0) - break; -+ FOR_NET_CARDS (card) -+ { -+ struct grub_net_network_level_interface *iface; - +- - if (len + i > 1024) - break; -+ if (argc > 0 && grub_strcmp (card->name, args[0]) != 0) -+ continue; - +- - if (num == GRUB_NET_DHCP6_BOOTFILE_URL) - { - char *scheme, *userinfo, *host, *file; @@ -958,21 +968,11 @@ index 3cf6dbf..85adc9c 100644 - left -= ia_na_opt_len; - } - } -+ iface = grub_net_ipv6_get_link_local (card, &card->default_address); -+ if (!iface) -+ { -+ grub_dhcp6_session_remove_all (); -+ return grub_errno; -+ } - +- - i += len + 4; - } -+ grub_dhcp6_session_add (iface, iaid++); -+ } - +- - grub_print_error (); -+ for (interval = 200; interval < 10000; interval *= 2) -+ { + int done = 1; + + FOR_DHCP6_SESSIONS (se) @@ -1119,7 +1119,7 @@ index 3cf6dbf..85adc9c 100644 void grub_bootp_init (void) -@@ -1118,11 +1853,15 @@ grub_bootp_init (void) +@@ -1084,11 +1819,15 @@ grub_bootp_init (void) cmd_getdhcp = grub_register_command ("net_get_dhcp_option", grub_cmd_dhcpopt, N_("VAR INTERFACE NUMBER DESCRIPTION"), N_("retrieve DHCP option and save it into VAR. If VAR is - then print the value.")); @@ -1136,10 +1136,10 @@ index 3cf6dbf..85adc9c 100644 grub_unregister_command (cmd_bootp); grub_unregister_command (cmd_dhcp); diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index 4444e8e..00d7d37 100644 +index a673bea807a..8e25680db0c 100644 --- a/grub-core/net/drivers/efi/efinet.c +++ b/grub-core/net/drivers/efi/efinet.c -@@ -394,9 +394,6 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, +@@ -393,9 +393,6 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, pxe_mode = pxe->mode; if (pxe_mode->using_ipv6) { @@ -1149,7 +1149,7 @@ index 4444e8e..00d7d37 100644 grub_dprintf ("efinet", "using ipv6 and dhcpv6\n"); grub_dprintf ("efinet", "dhcp_ack_received: %s%s\n", pxe_mode->dhcp_ack_received ? "yes" : "no", -@@ -404,15 +401,14 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, +@@ -403,15 +400,14 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, if (!pxe_mode->dhcp_ack_received) continue; @@ -1174,7 +1174,7 @@ index 4444e8e..00d7d37 100644 } else diff --git a/grub-core/net/ip.c b/grub-core/net/ip.c -index a5896f6..ce6bdc7 100644 +index a5896f6dc26..ce6bdc75c6d 100644 --- a/grub-core/net/ip.c +++ b/grub-core/net/ip.c @@ -239,6 +239,45 @@ handle_dgram (struct grub_net_buff *nb, @@ -1224,10 +1224,10 @@ index a5896f6..ce6bdc7 100644 { const struct grub_net_bootp_packet *bootp; diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index 955973e..71d972a 100644 +index 99628801478..7614b58dca8 100644 --- a/include/grub/efi/api.h +++ b/include/grub/efi/api.h -@@ -1507,7 +1507,7 @@ typedef struct grub_efi_pxe_ip_filter +@@ -1532,7 +1532,7 @@ typedef struct grub_efi_pxe_ip_filter { grub_efi_uint8_t filters; grub_efi_uint8_t ip_count; @@ -1237,7 +1237,7 @@ index 955973e..71d972a 100644 } grub_efi_pxe_ip_filter_t; diff --git a/include/grub/net.h b/include/grub/net.h -index fa7a8c3..aedf4b5 100644 +index d55d505a03a..543251f7273 100644 --- a/include/grub/net.h +++ b/include/grub/net.h @@ -451,50 +451,65 @@ struct grub_net_bootp_packet @@ -1366,6 +1366,3 @@ index fa7a8c3..aedf4b5 100644 int grub_net_hwaddr_cmp (const grub_net_link_level_address_t *a, const grub_net_link_level_address_t *b); --- -1.8.3.1 - diff --git a/0113-efinet-UEFI-IPv6-PXE-support.patch b/0077-efinet-UEFI-IPv6-PXE-support.patch similarity index 89% rename from 0113-efinet-UEFI-IPv6-PXE-support.patch rename to 0077-efinet-UEFI-IPv6-PXE-support.patch index daf6476..d8b22b8 100644 --- a/0113-efinet-UEFI-IPv6-PXE-support.patch +++ b/0077-efinet-UEFI-IPv6-PXE-support.patch @@ -1,7 +1,7 @@ -From 31d0e54b21a9dde2cfe4eefcab5371fc1454e373 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Wed, 15 Apr 2015 14:48:30 +0800 -Subject: [PATCH 113/220] efinet: UEFI IPv6 PXE support +Subject: [PATCH] efinet: UEFI IPv6 PXE support When grub2 image is booted from UEFI IPv6 PXE, the DHCPv6 Reply packet is cached in firmware buffer which can be obtained by PXE Base Code protocol. The @@ -15,10 +15,10 @@ Signed-off-by: Ken Lin 2 files changed, 46 insertions(+), 27 deletions(-) diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index 00d7d37..c3db328 100644 +index 8e25680db0c..014e5bf9802 100644 --- a/grub-core/net/drivers/efi/efinet.c +++ b/grub-core/net/drivers/efi/efinet.c -@@ -410,6 +410,8 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, +@@ -409,6 +409,8 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, grub_print_error (); if (device && path) grub_dprintf ("efinet", "device: `%s' path: `%s'\n", *device, *path); @@ -28,10 +28,10 @@ index 00d7d37..c3db328 100644 else { diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index 71d972a..186cf39 100644 +index 7614b58dca8..91ab528e4d0 100644 --- a/include/grub/efi/api.h +++ b/include/grub/efi/api.h -@@ -1499,31 +1499,6 @@ typedef union +@@ -1524,31 +1524,6 @@ typedef union grub_efi_pxe_dhcpv6_packet_t dhcpv6; } grub_efi_pxe_packet_t; @@ -63,7 +63,7 @@ index 71d972a..186cf39 100644 typedef struct grub_efi_pxe_icmp_error { grub_efi_uint8_t type; -@@ -1549,6 +1524,48 @@ typedef struct grub_efi_pxe_tftp_error +@@ -1574,6 +1549,48 @@ typedef struct grub_efi_pxe_tftp_error grub_efi_char8_t error_string[127]; } grub_efi_pxe_tftp_error_t; @@ -112,7 +112,7 @@ index 71d972a..186cf39 100644 typedef struct grub_efi_pxe_mode { grub_efi_boolean_t started; -@@ -1580,9 +1597,9 @@ typedef struct grub_efi_pxe_mode +@@ -1605,9 +1622,9 @@ typedef struct grub_efi_pxe_mode grub_efi_pxe_packet_t pxe_bis_reply; grub_efi_pxe_ip_filter_t ip_filter; grub_efi_uint32_t arp_cache_entries; @@ -124,6 +124,3 @@ index 71d972a..186cf39 100644 grub_efi_pxe_icmp_error_t icmp_error; grub_efi_pxe_tftp_error_t tftp_error; } grub_efi_pxe_mode_t; --- -1.8.3.1 - diff --git a/0114-grub.texi-Add-net_bootp6-doument.patch b/0078-grub.texi-Add-net_bootp6-doument.patch similarity index 73% rename from 0114-grub.texi-Add-net_bootp6-doument.patch rename to 0078-grub.texi-Add-net_bootp6-doument.patch index acd465c..3f8ec97 100644 --- a/0114-grub.texi-Add-net_bootp6-doument.patch +++ b/0078-grub.texi-Add-net_bootp6-doument.patch @@ -1,7 +1,7 @@ -From 5d9e28b3bf21eebf915b4519d6bac521f87815d3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Tue, 5 May 2015 14:19:24 +0800 -Subject: [PATCH 114/220] grub.texi: Add net_bootp6 doument +Subject: [PATCH] grub.texi: Add net_bootp6 doument Update grub documentation for net_bootp6 command. @@ -12,18 +12,18 @@ Signed-off-by: Ken Lin 1 file changed, 17 insertions(+) diff --git a/docs/grub.texi b/docs/grub.texi -index 960e5f3..495462b 100644 +index 0615d0ed97e..04ed6ac1f07 100644 --- a/docs/grub.texi +++ b/docs/grub.texi -@@ -5338,6 +5338,7 @@ This command is only available on AArch64 systems. +@@ -5487,6 +5487,7 @@ This command is only available on AArch64 systems. * net_add_dns:: Add a DNS server * net_add_route:: Add routing entry - * net_bootp:: Perform a bootp autoconfiguration + * net_bootp:: Perform a bootp/DHCP autoconfiguration +* net_bootp6:: Perform a DHCPv6 autoconfiguration * net_del_addr:: Remove IP address from interface * net_del_dns:: Remove a DNS server * net_del_route:: Remove a route entry -@@ -5419,6 +5420,22 @@ Sets environment variable @samp{net_}@var{}@samp{_dhcp_extensionspath} +@@ -5611,6 +5612,22 @@ Sets environment variable @samp{net_}@var{}@samp{_boot_file} @end deffn @@ -44,8 +44,5 @@ index 960e5f3..495462b 100644 + +@end deffn - @node net_del_addr - @subsection net_del_addr --- -1.8.3.1 - + @node net_get_dhcp_option + @subsection net_get_dhcp_option diff --git a/0115-bootp-Add-processing-DHCPACK-packet-from-HTTP-Boot.patch b/0079-bootp-Add-processing-DHCPACK-packet-from-HTTP-Boot.patch similarity index 85% rename from 0115-bootp-Add-processing-DHCPACK-packet-from-HTTP-Boot.patch rename to 0079-bootp-Add-processing-DHCPACK-packet-from-HTTP-Boot.patch index a28b33b..e800dd2 100644 --- a/0115-bootp-Add-processing-DHCPACK-packet-from-HTTP-Boot.patch +++ b/0079-bootp-Add-processing-DHCPACK-packet-from-HTTP-Boot.patch @@ -1,7 +1,7 @@ -From 03bca00dc93a92f9f5ae5194b2c86a40b6281766 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Wed, 10 Jul 2019 23:58:28 +0200 -Subject: [PATCH 115/220] bootp: Add processing DHCPACK packet from HTTP Boot +Subject: [PATCH] bootp: Add processing DHCPACK packet from HTTP Boot The vendor class identifier with the string "HTTPClient" is used to denote the packet as responding to HTTP boot request. In DHCP4 config, the filename for @@ -22,7 +22,7 @@ Signed-off-by: Ken Lin 2 files changed, 56 insertions(+) diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c -index 85adc9c..2e46842 100644 +index fe93b80f1cf..8fb8918ae7e 100644 --- a/grub-core/net/bootp.c +++ b/grub-core/net/bootp.c @@ -20,6 +20,7 @@ @@ -33,7 +33,7 @@ index 85adc9c..2e46842 100644 #include #include #include -@@ -567,6 +568,60 @@ grub_net_configure_by_dhcp_ack (const char *name, +@@ -500,6 +501,60 @@ grub_net_configure_by_dhcp_ack (const char *name, if (opt && opt_len) grub_env_set_net_property (name, "rootpath", (const char *) opt, opt_len); @@ -95,17 +95,14 @@ index 85adc9c..2e46842 100644 if (opt && opt_len) grub_env_set_net_property (name, "extensionspath", (const char *) opt, opt_len); diff --git a/include/grub/net.h b/include/grub/net.h -index aedf4b5..ebb569b 100644 +index 543251f7273..42af7de250a 100644 --- a/include/grub/net.h +++ b/include/grub/net.h -@@ -526,6 +526,7 @@ enum - GRUB_NET_BOOTP_DOMAIN = 0x0f, - GRUB_NET_BOOTP_ROOT_PATH = 0x11, - GRUB_NET_BOOTP_EXTENSIONS_PATH = 0x12, -+ GRUB_NET_BOOTP_VENDOR_CLASS_IDENTIFIER = 0x3C, - GRUB_NET_BOOTP_CLIENT_ID = 0x3d, - GRUB_NET_BOOTP_CLIENT_UUID = 0x61, - GRUB_NET_DHCP_REQUESTED_IP_ADDRESS = 50, --- -1.8.3.1 - +@@ -531,6 +531,7 @@ enum + GRUB_NET_DHCP_MESSAGE_TYPE = 53, + GRUB_NET_DHCP_SERVER_IDENTIFIER = 54, + GRUB_NET_DHCP_PARAMETER_REQUEST_LIST = 55, ++ GRUB_NET_BOOTP_VENDOR_CLASS_IDENTIFIER = 60, + GRUB_NET_BOOTP_CLIENT_ID = 61, + GRUB_NET_DHCP_TFTP_SERVER_NAME = 66, + GRUB_NET_DHCP_BOOTFILE_NAME = 67, diff --git a/0116-efinet-Setting-network-from-UEFI-device-path.patch b/0080-efinet-Setting-network-from-UEFI-device-path.patch similarity index 94% rename from 0116-efinet-Setting-network-from-UEFI-device-path.patch rename to 0080-efinet-Setting-network-from-UEFI-device-path.patch index 6a766bc..11b2a72 100644 --- a/0116-efinet-Setting-network-from-UEFI-device-path.patch +++ b/0080-efinet-Setting-network-from-UEFI-device-path.patch @@ -1,7 +1,7 @@ -From b412d2074f75951680962af0f64b1467cd485821 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Sun, 10 Jul 2016 23:46:31 +0800 -Subject: [PATCH 116/220] efinet: Setting network from UEFI device path +Subject: [PATCH] efinet: Setting network from UEFI device path The PXE Base Code protocol used to obtain cached PXE DHCPACK packet is no longer provided for HTTP Boot. Instead, we have to get the HTTP boot @@ -32,10 +32,10 @@ Signed-off-by: Ken Lin 2 files changed, 280 insertions(+), 15 deletions(-) diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index c3db328..2817b6f 100644 +index 014e5bf9802..8171ecaa5e4 100644 --- a/grub-core/net/drivers/efi/efinet.c +++ b/grub-core/net/drivers/efi/efinet.c -@@ -27,6 +27,7 @@ +@@ -26,6 +26,7 @@ #include #include #include @@ -43,7 +43,7 @@ index c3db328..2817b6f 100644 GRUB_MOD_LICENSE ("GPLv3+"); -@@ -332,6 +333,227 @@ grub_efinet_findcards (void) +@@ -331,6 +332,227 @@ grub_efinet_findcards (void) grub_free (handles); } @@ -271,7 +271,7 @@ index c3db328..2817b6f 100644 static void grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, char **path) -@@ -347,7 +569,11 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, +@@ -346,7 +568,11 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, { grub_efi_device_path_t *cdp; struct grub_efi_pxe *pxe; @@ -284,7 +284,7 @@ index c3db328..2817b6f 100644 if (card->driver != &efidriver) continue; -@@ -371,11 +597,21 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, +@@ -370,11 +596,21 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, */ if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) != GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE || (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE @@ -307,7 +307,7 @@ index c3db328..2817b6f 100644 dup_ldp = grub_efi_find_last_device_path (dup_dp); dup_ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; dup_ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -@@ -388,23 +624,37 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, +@@ -387,23 +623,37 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, pxe = grub_efi_open_protocol (hnd, &pxe_io_guid, GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); @@ -356,7 +356,7 @@ index c3db328..2817b6f 100644 1, device, path); if (grub_errno) grub_print_error (); -@@ -418,11 +668,15 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, +@@ -417,11 +667,15 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, grub_dprintf ("efinet", "using ipv4 and dhcp\n"); grub_net_configure_by_dhcp_ack (card->name, card, 0, (struct grub_net_bootp_packet *) @@ -375,10 +375,10 @@ index c3db328..2817b6f 100644 } } diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index 186cf39..0d4839a 100644 +index 91ab528e4d0..4a51667adb1 100644 --- a/include/grub/efi/api.h +++ b/include/grub/efi/api.h -@@ -839,6 +839,8 @@ struct grub_efi_ipv4_device_path +@@ -864,6 +864,8 @@ struct grub_efi_ipv4_device_path grub_efi_uint16_t remote_port; grub_efi_uint16_t protocol; grub_efi_uint8_t static_ip_address; @@ -387,7 +387,7 @@ index 186cf39..0d4839a 100644 } GRUB_PACKED; typedef struct grub_efi_ipv4_device_path grub_efi_ipv4_device_path_t; -@@ -893,6 +895,15 @@ struct grub_efi_sata_device_path +@@ -918,6 +920,15 @@ struct grub_efi_sata_device_path } GRUB_PACKED; typedef struct grub_efi_sata_device_path grub_efi_sata_device_path_t; @@ -403,6 +403,3 @@ index 186cf39..0d4839a 100644 #define GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE 10 /* Media Device Path. */ --- -1.8.3.1 - diff --git a/0117-efinet-Setting-DNS-server-from-UEFI-protocol.patch b/0081-efinet-Setting-DNS-server-from-UEFI-protocol.patch similarity index 91% rename from 0117-efinet-Setting-DNS-server-from-UEFI-protocol.patch rename to 0081-efinet-Setting-DNS-server-from-UEFI-protocol.patch index 75d786b..1460c8a 100644 --- a/0117-efinet-Setting-DNS-server-from-UEFI-protocol.patch +++ b/0081-efinet-Setting-DNS-server-from-UEFI-protocol.patch @@ -1,7 +1,7 @@ -From 8bccd41162bf0172c30934330b71983706d796f4 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 14 Jul 2016 17:48:45 +0800 -Subject: [PATCH 117/220] efinet: Setting DNS server from UEFI protocol +Subject: [PATCH] efinet: Setting DNS server from UEFI protocol In the URI device path node, any name rahter than address can be used for looking up the resources so that DNS service become needed to get answer of the @@ -29,14 +29,14 @@ Signed-off-by: Michael Chang Signed-off-by: Ken Lin --- grub-core/net/drivers/efi/efinet.c | 163 +++++++++++++++++++++++++++++++++++++ - include/grub/efi/api.h | 76 +++++++++++++++++ - 2 files changed, 239 insertions(+) + include/grub/efi/api.h | 75 +++++++++++++++++ + 2 files changed, 238 insertions(+) diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index 2817b6f..c843654 100644 +index 8171ecaa5e4..715a6168d77 100644 --- a/grub-core/net/drivers/efi/efinet.c +++ b/grub-core/net/drivers/efi/efinet.c -@@ -34,6 +34,8 @@ GRUB_MOD_LICENSE ("GPLv3+"); +@@ -33,6 +33,8 @@ GRUB_MOD_LICENSE ("GPLv3+"); /* GUID. */ static grub_efi_guid_t net_io_guid = GRUB_EFI_SIMPLE_NETWORK_GUID; static grub_efi_guid_t pxe_io_guid = GRUB_EFI_PXE_GUID; @@ -45,7 +45,7 @@ index 2817b6f..c843654 100644 static grub_err_t send_card_buffer (struct grub_net_card *dev, -@@ -333,6 +335,125 @@ grub_efinet_findcards (void) +@@ -332,6 +334,125 @@ grub_efinet_findcards (void) grub_free (handles); } @@ -171,7 +171,7 @@ index 2817b6f..c843654 100644 static struct grub_net_buff * grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *use_ipv6) { -@@ -391,6 +512,8 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u +@@ -390,6 +511,8 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u grub_efi_ipv4_device_path_t *ipv4 = (grub_efi_ipv4_device_path_t *) ldp; struct grub_net_bootp_packet *bp; grub_uint8_t *ptr; @@ -180,7 +180,7 @@ index 2817b6f..c843654 100644 bp = (struct grub_net_bootp_packet *) nb->tail; err = grub_netbuff_put (nb, sizeof (*bp) + 4); -@@ -452,6 +575,25 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u +@@ -451,6 +574,25 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u *ptr++ = sizeof ("HTTPClient") - 1; grub_memcpy (ptr, "HTTPClient", sizeof ("HTTPClient") - 1); @@ -206,7 +206,7 @@ index 2817b6f..c843654 100644 ptr = nb->tail; err = grub_netbuff_put (nb, 1); if (err) -@@ -484,6 +626,8 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u +@@ -483,6 +625,8 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u struct grub_net_dhcp6_option *opt; struct grub_net_dhcp6_option_iana *iana; struct grub_net_dhcp6_option_iaaddr *iaaddr; @@ -215,7 +215,7 @@ index 2817b6f..c843654 100644 d6p = (struct grub_net_dhcp6_packet *)nb->tail; err = grub_netbuff_put (nb, sizeof(*d6p)); -@@ -547,6 +691,25 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u +@@ -546,6 +690,25 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u opt->len = grub_cpu_to_be16 (uri_len); grub_memcpy (opt->data, uri_dp->uri, uri_len); @@ -242,13 +242,14 @@ index 2817b6f..c843654 100644 } diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index 0d4839a..716f121 100644 +index 4a51667adb1..0b490195ad9 100644 --- a/include/grub/efi/api.h +++ b/include/grub/efi/api.h -@@ -334,6 +334,16 @@ - { 0x8B, 0x8C, 0xE2, 0x1B, 0x01, 0xAE, 0xF2, 0xB7 } \ - } - +@@ -352,6 +352,15 @@ + #define GRUB_EFI_RNG_PROTOCOL_GUID \ + { 0x3152bca5, 0xeade, 0x433d, \ + { 0x86, 0x2e, 0xc0, 0x1c, 0xdc, 0x29, 0x1f, 0x44 } \ ++ +#define GRUB_EFI_IP4_CONFIG2_PROTOCOL_GUID \ + { 0x5b446ed1, 0xe30b, 0x4faa, \ + { 0x87, 0x1a, 0x36, 0x54, 0xec, 0xa3, 0x60, 0x80 } \ @@ -257,14 +258,12 @@ index 0d4839a..716f121 100644 +#define GRUB_EFI_IP6_CONFIG_PROTOCOL_GUID \ + { 0x937fe521, 0x95ae, 0x4d1a, \ + { 0x89, 0x29, 0x48, 0xbc, 0xd9, 0x0a, 0xd3, 0x1a } \ -+ } -+ + } + struct grub_efi_sal_system_table - { - grub_uint32_t signature; -@@ -1838,6 +1848,72 @@ struct grub_efi_block_io +@@ -1883,6 +1892,72 @@ struct grub_efi_rng_protocol }; - typedef struct grub_efi_block_io grub_efi_block_io_t; + typedef struct grub_efi_rng_protocol grub_efi_rng_protocol_t; +enum grub_efi_ip4_config2_data_type { + GRUB_EFI_IP4_CONFIG2_DATA_TYPE_INTERFACEINFO, @@ -335,6 +334,3 @@ index 0d4839a..716f121 100644 #if (GRUB_TARGET_SIZEOF_VOID_P == 4) || defined (__ia64__) \ || defined (__aarch64__) || defined (__MINGW64__) || defined (__CYGWIN__) \ || defined(__riscv) --- -1.8.3.1 - diff --git a/0119-Support-UEFI-networking-protocols.patch b/0082-Support-UEFI-networking-protocols.patch similarity index 98% rename from 0119-Support-UEFI-networking-protocols.patch rename to 0082-Support-UEFI-networking-protocols.patch index 3841449..fb14386 100644 --- a/0119-Support-UEFI-networking-protocols.patch +++ b/0082-Support-UEFI-networking-protocols.patch @@ -1,7 +1,7 @@ -From 52cf36ce649fc8a5f915b143ccc680cf4a2ebbda Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Wed, 22 Feb 2017 14:27:50 +0800 -Subject: [PATCH 119/220] Support UEFI networking protocols +Subject: [PATCH] Support UEFI networking protocols References: fate#320130, bsc#1015589, bsc#1076132 Patch-Mainline: no @@ -39,11 +39,11 @@ Signed-off-by: Peter Jones grub-core/net/efi/net.c | 1428 ++++++++++++++++++++++++++++++++++++ grub-core/net/efi/pxe.c | 424 +++++++++++ grub-core/net/net.c | 74 ++ + util/grub-mknetdir.c | 23 +- include/grub/efi/api.h | 180 ++++- include/grub/efi/dhcp.h | 343 +++++++++ include/grub/efi/http.h | 215 ++++++ include/grub/net/efi.h | 144 ++++ - util/grub-mknetdir.c | 23 +- 17 files changed, 4620 insertions(+), 41 deletions(-) create mode 100644 grub-core/net/efi/dhcp.c create mode 100644 grub-core/net/efi/efi_netfs.c @@ -57,26 +57,26 @@ Signed-off-by: Peter Jones create mode 100644 include/grub/net/efi.h diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 49c5dc4..48491b5 100644 +index 4b7c45a7b06..c40170f2dd2 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def -@@ -2277,6 +2277,12 @@ module = { +@@ -2299,6 +2299,12 @@ module = { + common = hook/datehook.c; }; - module = { ++module = { + name = efi_netfs; + common = net/efi/efi_netfs.c; + enable = efi; +}; + -+module = { + module = { name = net; common = net/net.c; - common = net/dns.c; -@@ -2290,6 +2296,12 @@ module = { +@@ -2312,6 +2318,12 @@ module = { + common = net/ethernet.c; common = net/arp.c; common = net/netbuff.c; - common = net/url.c; + efi = net/efi/net.c; + efi = net/efi/http.c; + efi = net/efi/pxe.c; @@ -87,7 +87,7 @@ index 49c5dc4..48491b5 100644 module = { diff --git a/grub-core/io/bufio.c b/grub-core/io/bufio.c -index a458c3a..1637731 100644 +index a458c3aca78..1637731535e 100644 --- a/grub-core/io/bufio.c +++ b/grub-core/io/bufio.c @@ -139,7 +139,7 @@ grub_bufio_read (grub_file_t file, char *buf, grub_size_t len) @@ -100,10 +100,10 @@ index a458c3a..1637731 100644 if (file->offset + res < next_buf) { diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index 19054b1..ada3004 100644 +index d6a2fb57789..2a446f5031b 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c -@@ -709,7 +709,7 @@ grub_efi_print_device_path (grub_efi_device_path_t *dp) +@@ -755,7 +755,7 @@ grub_efi_print_device_path (grub_efi_device_path_t *dp) { grub_efi_ipv4_device_path_t *ipv4 = (grub_efi_ipv4_device_path_t *) dp; @@ -112,7 +112,7 @@ index 19054b1..ada3004 100644 (unsigned) ipv4->local_ip_address[0], (unsigned) ipv4->local_ip_address[1], (unsigned) ipv4->local_ip_address[2], -@@ -722,33 +722,60 @@ grub_efi_print_device_path (grub_efi_device_path_t *dp) +@@ -768,33 +768,60 @@ grub_efi_print_device_path (grub_efi_device_path_t *dp) (unsigned) ipv4->remote_port, (unsigned) ipv4->protocol, (unsigned) ipv4->static_ip_address); @@ -190,7 +190,7 @@ index 19054b1..ada3004 100644 } break; case GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE: -@@ -788,6 +815,39 @@ grub_efi_print_device_path (grub_efi_device_path_t *dp) +@@ -834,6 +861,39 @@ grub_efi_print_device_path (grub_efi_device_path_t *dp) dump_vendor_path ("Messaging", (grub_efi_vendor_device_path_t *) dp); break; @@ -231,10 +231,10 @@ index 19054b1..ada3004 100644 grub_printf ("/UnknownMessaging(%x)", (unsigned) subtype); break; diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index c843654..ca8bd3c 100644 +index 715a6168d77..e11d759f19a 100644 --- a/grub-core/net/drivers/efi/efinet.c +++ b/grub-core/net/drivers/efi/efinet.c -@@ -28,6 +28,7 @@ +@@ -27,6 +27,7 @@ #include #include #include @@ -242,7 +242,7 @@ index c843654..ca8bd3c 100644 GRUB_MOD_LICENSE ("GPLv3+"); -@@ -492,6 +493,17 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u +@@ -491,6 +492,17 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u ldp = grub_efi_find_last_device_path (ddp); @@ -260,7 +260,7 @@ index c843654..ca8bd3c 100644 if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) != GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE || (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE)) -@@ -761,6 +773,7 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, +@@ -760,6 +772,7 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) != GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE || (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE @@ -268,10 +268,11 @@ index c843654..ca8bd3c 100644 && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_URI_DEVICE_PATH_SUBTYPE)) continue; dup_dp = grub_efi_duplicate_device_path (dp); -@@ -776,6 +789,15 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, +@@ -774,6 +787,15 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, + dup_ldp->length = sizeof (*dup_ldp); } - dup_ldp = grub_efi_find_last_device_path (dup_dp); ++ dup_ldp = grub_efi_find_last_device_path (dup_dp); + if (GRUB_EFI_DEVICE_PATH_SUBTYPE (dup_ldp) == GRUB_EFI_DNS_DEVICE_PATH_SUBTYPE) + { + dup_ldp = grub_efi_find_last_device_path (dup_dp); @@ -280,11 +281,10 @@ index c843654..ca8bd3c 100644 + dup_ldp->length = sizeof (*dup_ldp); + } + -+ dup_ldp = grub_efi_find_last_device_path (dup_dp); + dup_ldp = grub_efi_find_last_device_path (dup_dp); dup_ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; dup_ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; - dup_ldp->length = sizeof (*dup_ldp); -@@ -846,6 +868,9 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, +@@ -845,6 +867,9 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, GRUB_MOD_INIT(efinet) { @@ -294,7 +294,7 @@ index c843654..ca8bd3c 100644 grub_efinet_findcards (); grub_efi_net_config = grub_efi_net_config_real; } -@@ -857,5 +882,7 @@ GRUB_MOD_FINI(efinet) +@@ -856,5 +881,7 @@ GRUB_MOD_FINI(efinet) FOR_NET_CARDS_SAFE (card, next) if (card->driver == &efidriver) grub_net_card_unregister (card); @@ -304,7 +304,7 @@ index c843654..ca8bd3c 100644 diff --git a/grub-core/net/efi/dhcp.c b/grub-core/net/efi/dhcp.c new file mode 100644 -index 0000000..dbef63d +index 00000000000..dbef63d8c08 --- /dev/null +++ b/grub-core/net/efi/dhcp.c @@ -0,0 +1,397 @@ @@ -707,7 +707,7 @@ index 0000000..dbef63d +grub_command_func_t grub_efi_net_bootp6 = grub_cmd_efi_bootp6; diff --git a/grub-core/net/efi/efi_netfs.c b/grub-core/net/efi/efi_netfs.c new file mode 100644 -index 0000000..ef371d8 +index 00000000000..ef371d885ea --- /dev/null +++ b/grub-core/net/efi/efi_netfs.c @@ -0,0 +1,57 @@ @@ -770,7 +770,7 @@ index 0000000..ef371d8 +} diff --git a/grub-core/net/efi/http.c b/grub-core/net/efi/http.c new file mode 100644 -index 0000000..3f61fd2 +index 00000000000..3f61fd2fa5b --- /dev/null +++ b/grub-core/net/efi/http.c @@ -0,0 +1,419 @@ @@ -1195,7 +1195,7 @@ index 0000000..3f61fd2 + }; diff --git a/grub-core/net/efi/ip4_config.c b/grub-core/net/efi/ip4_config.c new file mode 100644 -index 0000000..b711a5d +index 00000000000..b711a5d9457 --- /dev/null +++ b/grub-core/net/efi/ip4_config.c @@ -0,0 +1,398 @@ @@ -1599,7 +1599,7 @@ index 0000000..b711a5d + }; diff --git a/grub-core/net/efi/ip6_config.c b/grub-core/net/efi/ip6_config.c new file mode 100644 -index 0000000..017c4d0 +index 00000000000..017c4d05bc7 --- /dev/null +++ b/grub-core/net/efi/ip6_config.c @@ -0,0 +1,422 @@ @@ -2027,7 +2027,7 @@ index 0000000..017c4d0 + }; diff --git a/grub-core/net/efi/net.c b/grub-core/net/efi/net.c new file mode 100644 -index 0000000..86bce65 +index 00000000000..86bce6535d3 --- /dev/null +++ b/grub-core/net/efi/net.c @@ -0,0 +1,1428 @@ @@ -3461,7 +3461,7 @@ index 0000000..86bce65 +} diff --git a/grub-core/net/efi/pxe.c b/grub-core/net/efi/pxe.c new file mode 100644 -index 0000000..531949c +index 00000000000..531949cba5c --- /dev/null +++ b/grub-core/net/efi/pxe.c @@ -0,0 +1,424 @@ @@ -3890,7 +3890,7 @@ index 0000000..531949c + }; + diff --git a/grub-core/net/net.c b/grub-core/net/net.c -index 2734f70..27a0a1d 100644 +index 0ce5e675ed7..55aed92722c 100644 --- a/grub-core/net/net.c +++ b/grub-core/net/net.c @@ -32,6 +32,9 @@ @@ -3903,7 +3903,7 @@ index 2734f70..27a0a1d 100644 GRUB_MOD_LICENSE ("GPLv3+"); -@@ -2025,8 +2028,49 @@ static grub_command_t cmd_addaddr, cmd_deladdr, cmd_addroute, cmd_delroute; +@@ -2033,8 +2036,49 @@ static grub_command_t cmd_addaddr, cmd_deladdr, cmd_addroute, cmd_delroute; static grub_command_t cmd_lsroutes, cmd_lscards; static grub_command_t cmd_lsaddr, cmd_slaac; @@ -3953,7 +3953,7 @@ index 2734f70..27a0a1d 100644 grub_register_variable_hook ("net_default_server", defserver_get_env, defserver_set_env); grub_env_export ("net_default_server"); -@@ -2074,10 +2118,37 @@ GRUB_MOD_INIT(net) +@@ -2082,10 +2126,37 @@ GRUB_MOD_INIT(net) grub_net_restore_hw, GRUB_LOADER_PREBOOT_HOOK_PRIO_DISK); grub_net_poll_cards_idle = grub_net_poll_cards_idle_real; @@ -3991,7 +3991,7 @@ index 2734f70..27a0a1d 100644 grub_register_variable_hook ("net_default_server", 0, 0); grub_register_variable_hook ("pxe_default_server", 0, 0); -@@ -2096,4 +2167,7 @@ GRUB_MOD_FINI(net) +@@ -2104,4 +2175,7 @@ GRUB_MOD_FINI(net) grub_net_fini_hw (0); grub_loader_unregister_preboot_hook (fini_hnd); grub_net_poll_cards_idle = grub_net_poll_cards_idle_real; @@ -3999,11 +3999,93 @@ index 2734f70..27a0a1d 100644 + init_mode = INIT_MODE_NONE; +#endif } +diff --git a/util/grub-mknetdir.c b/util/grub-mknetdir.c +index a2461cda1c4..77958dd9dd5 100644 +--- a/util/grub-mknetdir.c ++++ b/util/grub-mknetdir.c +@@ -32,13 +32,15 @@ + + static char *rootdir = NULL, *subdir = NULL; + static char *debug_image = NULL; ++static char efi_netfs = 0; + + enum + { + OPTION_NET_DIRECTORY = 0x301, + OPTION_SUBDIR, + OPTION_DEBUG, +- OPTION_DEBUG_IMAGE ++ OPTION_DEBUG_IMAGE, ++ OPTION_DEBUG_EFI_NETFS + }; + + static struct argp_option options[] = { +@@ -49,6 +51,7 @@ static struct argp_option options[] = { + 0, N_("relative subdirectory on network server"), 2}, + {"debug", OPTION_DEBUG, 0, OPTION_HIDDEN, 0, 2}, + {"debug-image", OPTION_DEBUG_IMAGE, N_("STRING"), OPTION_HIDDEN, 0, 2}, ++ {"debug-efi-netfs", OPTION_DEBUG_EFI_NETFS, 0, OPTION_HIDDEN, 0, 2}, + {0, 0, 0, 0, 0, 0} + }; + +@@ -67,6 +70,9 @@ argp_parser (int key, char *arg, struct argp_state *state) + free (subdir); + subdir = xstrdup (arg); + return 0; ++ case OPTION_DEBUG_EFI_NETFS: ++ efi_netfs = 1; ++ return 0; + /* This is an undocumented feature... */ + case OPTION_DEBUG: + verbosity++; +@@ -82,7 +88,6 @@ argp_parser (int key, char *arg, struct argp_state *state) + } + } + +- + struct argp argp = { + options, argp_parser, NULL, + "\v"N_("Prepares GRUB network boot images at net_directory/subdir " +@@ -92,7 +97,7 @@ struct argp argp = { + + static char *base; + +-static const struct ++static struct + { + const char *mkimage_target; + const char *netmodule; +@@ -156,6 +161,7 @@ process_input_dir (const char *input_dir, enum grub_install_plat platform) + grub_install_push_module (targets[platform].netmodule); + + output = grub_util_path_concat_ext (2, grubdir, "core", targets[platform].ext); ++ + grub_install_make_image_wrap (input_dir, prefix, output, + 0, load_cfg, + targets[platform].mkimage_target, 0); +@@ -195,7 +201,16 @@ main (int argc, char *argv[]) + + grub_install_mkdir_p (base); + +- grub_install_push_module ("tftp"); ++ if (!efi_netfs) ++ { ++ grub_install_push_module ("tftp"); ++ grub_install_push_module ("http"); ++ } ++ else ++ { ++ targets[GRUB_INSTALL_PLATFORM_I386_EFI].netmodule = "efi_netfs"; ++ targets[GRUB_INSTALL_PLATFORM_X86_64_EFI].netmodule = "efi_netfs"; ++ } + + if (!grub_install_source_directory) + { diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index 716f121..2ed9c26 100644 +index 0b490195ad9..f431f49973e 100644 --- a/include/grub/efi/api.h +++ b/include/grub/efi/api.h -@@ -602,6 +602,23 @@ typedef union +@@ -622,6 +622,23 @@ typedef union typedef grub_efi_uint64_t grub_efi_physical_address_t; typedef grub_efi_uint64_t grub_efi_virtual_address_t; @@ -4027,7 +4109,7 @@ index 716f121..2ed9c26 100644 struct grub_efi_guid { -@@ -865,6 +882,8 @@ struct grub_efi_ipv6_device_path +@@ -889,6 +906,8 @@ struct grub_efi_ipv6_device_path grub_efi_uint16_t remote_port; grub_efi_uint16_t protocol; grub_efi_uint8_t static_ip_address; @@ -4036,7 +4118,7 @@ index 716f121..2ed9c26 100644 } GRUB_PACKED; typedef struct grub_efi_ipv6_device_path grub_efi_ipv6_device_path_t; -@@ -914,6 +933,15 @@ struct grub_efi_uri_device_path +@@ -938,6 +957,15 @@ struct grub_efi_uri_device_path } GRUB_PACKED; typedef struct grub_efi_uri_device_path grub_efi_uri_device_path_t; @@ -4052,7 +4134,7 @@ index 716f121..2ed9c26 100644 #define GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE 10 /* Media Device Path. */ -@@ -996,6 +1024,23 @@ struct grub_efi_bios_device_path +@@ -1020,6 +1048,23 @@ struct grub_efi_bios_device_path } GRUB_PACKED; typedef struct grub_efi_bios_device_path grub_efi_bios_device_path_t; @@ -4076,7 +4158,7 @@ index 716f121..2ed9c26 100644 struct grub_efi_open_protocol_information_entry { grub_efi_handle_t agent_handle; -@@ -1545,23 +1590,27 @@ typedef struct grub_efi_pxe_tftp_error +@@ -1569,23 +1614,27 @@ typedef struct grub_efi_pxe_tftp_error grub_efi_char8_t error_string[127]; } grub_efi_pxe_tftp_error_t; @@ -4118,7 +4200,7 @@ index 716f121..2ed9c26 100644 #define GRUB_EFI_PXE_BASE_CODE_MAX_IPCNT 8 typedef struct grub_efi_pxe_ip_filter -@@ -1628,17 +1677,31 @@ typedef struct grub_efi_pxe_mode +@@ -1652,17 +1701,31 @@ typedef struct grub_efi_pxe_mode typedef struct grub_efi_pxe { grub_uint64_t rev; @@ -4154,7 +4236,7 @@ index 716f121..2ed9c26 100644 void (*setpackets) (void); struct grub_efi_pxe_mode *mode; } grub_efi_pxe_t; -@@ -1880,6 +1943,44 @@ struct grub_efi_ip4_config2_protocol +@@ -1924,6 +1987,44 @@ struct grub_efi_ip4_config2_protocol }; typedef struct grub_efi_ip4_config2_protocol grub_efi_ip4_config2_protocol_t; @@ -4199,7 +4281,7 @@ index 716f121..2ed9c26 100644 enum grub_efi_ip6_config_data_type { GRUB_EFI_IP6_CONFIG_DATA_TYPE_INTERFACEINFO, GRUB_EFI_IP6_CONFIG_DATA_TYPE_ALT_INTERFACEID, -@@ -1914,6 +2015,49 @@ struct grub_efi_ip6_config_protocol +@@ -1958,6 +2059,49 @@ struct grub_efi_ip6_config_protocol }; typedef struct grub_efi_ip6_config_protocol grub_efi_ip6_config_protocol_t; @@ -4251,7 +4333,7 @@ index 716f121..2ed9c26 100644 || defined(__riscv) diff --git a/include/grub/efi/dhcp.h b/include/grub/efi/dhcp.h new file mode 100644 -index 0000000..fdb88eb +index 00000000000..fdb88eb810e --- /dev/null +++ b/include/grub/efi/dhcp.h @@ -0,0 +1,343 @@ @@ -4600,7 +4682,7 @@ index 0000000..fdb88eb +#endif /* ! GRUB_EFI_DHCP_HEADER */ diff --git a/include/grub/efi/http.h b/include/grub/efi/http.h new file mode 100644 -index 0000000..c5e9a89 +index 00000000000..c5e9a89f505 --- /dev/null +++ b/include/grub/efi/http.h @@ -0,0 +1,215 @@ @@ -4821,7 +4903,7 @@ index 0000000..c5e9a89 +#endif /* !GRUB_EFI_HTTP_HEADER */ diff --git a/include/grub/net/efi.h b/include/grub/net/efi.h new file mode 100644 -index 0000000..de90d22 +index 00000000000..de90d223e8e --- /dev/null +++ b/include/grub/net/efi.h @@ -0,0 +1,144 @@ @@ -4969,88 +5051,3 @@ index 0000000..de90d22 +extern grub_command_func_t grub_efi_net_bootp6; + +#endif /* ! GRUB_NET_EFI_HEADER */ -diff --git a/util/grub-mknetdir.c b/util/grub-mknetdir.c -index 602574d..1a61e05 100644 ---- a/util/grub-mknetdir.c -+++ b/util/grub-mknetdir.c -@@ -32,13 +32,15 @@ - - static char *rootdir = NULL, *subdir = NULL; - static char *debug_image = NULL; -+static char efi_netfs = 0; - - enum - { - OPTION_NET_DIRECTORY = 0x301, - OPTION_SUBDIR, - OPTION_DEBUG, -- OPTION_DEBUG_IMAGE -+ OPTION_DEBUG_IMAGE, -+ OPTION_DEBUG_EFI_NETFS - }; - - static struct argp_option options[] = { -@@ -49,6 +51,7 @@ static struct argp_option options[] = { - 0, N_("relative subdirectory on network server"), 2}, - {"debug", OPTION_DEBUG, 0, OPTION_HIDDEN, 0, 2}, - {"debug-image", OPTION_DEBUG_IMAGE, N_("STRING"), OPTION_HIDDEN, 0, 2}, -+ {"debug-efi-netfs", OPTION_DEBUG_EFI_NETFS, 0, OPTION_HIDDEN, 0, 2}, - {0, 0, 0, 0, 0, 0} - }; - -@@ -67,6 +70,9 @@ argp_parser (int key, char *arg, struct argp_state *state) - free (subdir); - subdir = xstrdup (arg); - return 0; -+ case OPTION_DEBUG_EFI_NETFS: -+ efi_netfs = 1; -+ return 0; - /* This is an undocumented feature... */ - case OPTION_DEBUG: - verbosity++; -@@ -82,7 +88,6 @@ argp_parser (int key, char *arg, struct argp_state *state) - } - } - -- - struct argp argp = { - options, argp_parser, NULL, - "\v"N_("Prepares GRUB network boot images at net_directory/subdir " -@@ -92,7 +97,7 @@ struct argp argp = { - - static char *base; - --static const struct -+static struct - { - const char *mkimage_target; - const char *netmodule; -@@ -156,6 +161,7 @@ process_input_dir (const char *input_dir, enum grub_install_plat platform) - grub_install_push_module (targets[platform].netmodule); - - output = grub_util_path_concat_ext (2, grubdir, "core", targets[platform].ext); -+ - grub_install_make_image_wrap (input_dir, prefix, output, - 0, load_cfg, - targets[platform].mkimage_target, 0); -@@ -192,7 +198,16 @@ main (int argc, char *argv[]) - - grub_install_mkdir_p (base); - -- grub_install_push_module ("tftp"); -+ if (!efi_netfs) -+ { -+ grub_install_push_module ("tftp"); -+ grub_install_push_module ("http"); -+ } -+ else -+ { -+ targets[GRUB_INSTALL_PLATFORM_I386_EFI].netmodule = "efi_netfs"; -+ targets[GRUB_INSTALL_PLATFORM_X86_64_EFI].netmodule = "efi_netfs"; -+ } - - if (!grub_install_source_directory) - { --- -1.8.3.1 - diff --git a/0120-AUDIT-0-http-boot-tracker-bug.patch b/0083-AUDIT-0-http-boot-tracker-bug.patch similarity index 90% rename from 0120-AUDIT-0-http-boot-tracker-bug.patch rename to 0083-AUDIT-0-http-boot-tracker-bug.patch index 1bc19bc..ef3e67b 100644 --- a/0120-AUDIT-0-http-boot-tracker-bug.patch +++ b/0083-AUDIT-0-http-boot-tracker-bug.patch @@ -1,7 +1,7 @@ -From c5fa5fa521644d4f41ba0f436826d0b0345645b2 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Sebastian Krahmer Date: Tue, 28 Nov 2017 17:24:38 +0800 -Subject: [PATCH 120/220] AUDIT-0: http boot tracker bug +Subject: [PATCH] AUDIT-0: http boot tracker bug Fixing a memory leak in case of error, and a integer overflow, leading to a heap overflow due to overly large chunk sizes. @@ -22,7 +22,7 @@ Signed-off-by: Michael Chang 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/grub-core/net/efi/net.c b/grub-core/net/efi/net.c -index 86bce65..4bb3080 100644 +index 86bce6535d3..4bb308026ce 100644 --- a/grub-core/net/efi/net.c +++ b/grub-core/net/efi/net.c @@ -645,8 +645,10 @@ grub_efihttp_chunk_read (grub_file_t file, char *buf, @@ -38,7 +38,7 @@ index 86bce65..4bb3080 100644 if (buf) { diff --git a/grub-core/net/http.c b/grub-core/net/http.c -index 00737c5..c9c5969 100644 +index 12a2632ea55..b52b558d631 100644 --- a/grub-core/net/http.c +++ b/grub-core/net/http.c @@ -31,7 +31,8 @@ GRUB_MOD_LICENSE ("GPLv3+"); @@ -60,6 +60,3 @@ index 00737c5..c9c5969 100644 grub_errno = GRUB_ERR_NONE; if (data->chunk_rem == 0) { --- -1.8.3.1 - diff --git a/0128-grub-editenv-Add-incr-command-to-increment-integer-v.patch b/0084-grub-editenv-Add-incr-command-to-increment-integer-v.patch similarity index 89% rename from 0128-grub-editenv-Add-incr-command-to-increment-integer-v.patch rename to 0084-grub-editenv-Add-incr-command-to-increment-integer-v.patch index 7d1d531..f8de42a 100644 --- a/0128-grub-editenv-Add-incr-command-to-increment-integer-v.patch +++ b/0084-grub-editenv-Add-incr-command-to-increment-integer-v.patch @@ -1,8 +1,8 @@ -From 379558c0a9affaef66eea173f58952e2848b654c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 4 Jun 2018 19:49:47 +0200 -Subject: [PATCH 128/220] grub-editenv: Add "incr" command to increment integer - value env. variables +Subject: [PATCH] grub-editenv: Add "incr" command to increment integer value + env. variables To be able to automatically detect if the last boot was successful, We want to keep count of succesful / failed boots in some integer @@ -17,7 +17,7 @@ Signed-off-by: Hans de Goede 1 file changed, 50 insertions(+) diff --git a/util/grub-editenv.c b/util/grub-editenv.c -index f3662c9..d848038 100644 +index db6f187cc63..948eec8a114 100644 --- a/util/grub-editenv.c +++ b/util/grub-editenv.c @@ -53,6 +53,9 @@ static struct argp_option options[] = { @@ -30,7 +30,7 @@ index f3662c9..d848038 100644 {0, 0, 0, OPTION_DOC, N_("Options:"), -1}, {"verbose", 'v', 0, 0, N_("print verbose messages."), 0}, -@@ -247,6 +250,51 @@ unset_variables (const char *name, int argc, char *argv[]) +@@ -253,6 +256,51 @@ unset_variables (const char *name, int argc, char *argv[]) grub_envblk_close (envblk); } @@ -82,7 +82,7 @@ index f3662c9..d848038 100644 int main (int argc, char *argv[]) { -@@ -286,6 +334,8 @@ main (int argc, char *argv[]) +@@ -292,6 +340,8 @@ main (int argc, char *argv[]) set_variables (filename, argc - curindex, argv + curindex); else if (strcmp (command, "unset") == 0) unset_variables (filename, argc - curindex, argv + curindex); @@ -91,6 +91,3 @@ index f3662c9..d848038 100644 else { char *program = xstrdup(program_name); --- -1.8.3.1 - diff --git a/0129-Add-auto-hide-menu-support.patch b/0085-Add-auto-hide-menu-support.patch similarity index 90% rename from 0129-Add-auto-hide-menu-support.patch rename to 0085-Add-auto-hide-menu-support.patch index 83ea223..863cd05 100644 --- a/0129-Add-auto-hide-menu-support.patch +++ b/0085-Add-auto-hide-menu-support.patch @@ -1,7 +1,7 @@ -From 07f39734261c2c98ed3e0486558de362e7294d1f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Wed, 6 Jun 2018 08:44:11 +0200 -Subject: [PATCH 129/220] Add auto-hide menu support +Subject: [PATCH] Add auto-hide menu support On single-os systems we do not want to show the menu, unless something went wrong with the previous boot, in which case the user may need the @@ -35,6 +35,12 @@ fastboot If set to "1" and the conditions for auto-hiding the menu https://git.launchpad.net/~ubuntu-core-dev/grub/+git/ubuntu/tree/debian/patches/quick_boot.patch Signed-off-by: Hans de Goede +--- +Changes in v2: +-Drop shutdown_success tests, there is no meaningful way for systemd to set + this flag (by the time it knows all filesystems are unmounted or read-only +-Drop fwsetup_once support, systemd already supports booting directly into + the fwsetup by doing "systemctl reboot --firmware" --- Makefile.util.def | 6 +++++ util/grub.d/01_menu_auto_hide.in | 48 ++++++++++++++++++++++++++++++++++++++++ @@ -43,25 +49,25 @@ Signed-off-by: Hans de Goede create mode 100644 util/grub.d/01_menu_auto_hide.in diff --git a/Makefile.util.def b/Makefile.util.def -index c13ca68..026b458 100644 +index 48512bc6311..314e6f2acf8 100644 --- a/Makefile.util.def +++ b/Makefile.util.def @@ -458,6 +458,12 @@ script = { + installdir = grubconf; }; - script = { ++script = { + name = '01_menu_auto_hide'; + common = util/grub.d/01_menu_auto_hide.in; + installdir = grubconf; +}; + -+script = { + script = { name = '01_users'; common = util/grub.d/01_users.in; - installdir = grubconf; diff --git a/util/grub.d/01_menu_auto_hide.in b/util/grub.d/01_menu_auto_hide.in new file mode 100644 -index 0000000..ad17587 +index 00000000000..ad175870a54 --- /dev/null +++ b/util/grub.d/01_menu_auto_hide.in @@ -0,0 +1,48 @@ @@ -114,7 +120,7 @@ index 0000000..ad17587 +fi +EOF diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in -index 13a3a6b..ab63439 100644 +index 4b27bd20153..3c9431cfcfb 100644 --- a/util/grub.d/30_os-prober.in +++ b/util/grub.d/30_os-prober.in @@ -42,6 +42,7 @@ if [ -z "${OSPROBED}" ] ; then @@ -149,7 +155,7 @@ index 13a3a6b..ab63439 100644 onstr="$(gettext_printf "(on %s)" "${DEVICE}")" recovery_params="$(echo "${LPARAMS}" | grep single)" || true counter=1 -@@ -249,6 +253,7 @@ EOF +@@ -257,6 +261,7 @@ EOF done ;; hurd) @@ -157,7 +163,7 @@ index 13a3a6b..ab63439 100644 onstr="$(gettext_printf "(on %s)" "${DEVICE}")" cat << EOF menuentry '$(echo "${LONGNAME} $onstr" | grub_quote)' --class hurd --class gnu --class os \$menuentry_id_option 'osprober-gnuhurd-/boot/gnumach.gz-false-$(grub_get_device_id "${DEVICE}")' { -@@ -275,6 +280,7 @@ EOF +@@ -283,6 +288,7 @@ EOF EOF ;; minix) @@ -165,8 +171,8 @@ index 13a3a6b..ab63439 100644 cat << EOF menuentry "${LONGNAME} (on ${DEVICE}, Multiboot)" { EOF -@@ -306,3 +312,15 @@ EOF - esac +@@ -299,3 +305,15 @@ EOF + ;; esac done + @@ -181,6 +187,3 @@ index 13a3a6b..ab63439 100644 +fi +EOF +fi --- -1.8.3.1 - diff --git a/0085-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch b/0085-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch deleted file mode 100644 index d57c5c3..0000000 --- a/0085-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch +++ /dev/null @@ -1,46 +0,0 @@ -From a7fba153297429ab5124366aba482a462c239a3e Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 26 Jun 2017 12:42:57 -0400 -Subject: [PATCH 085/220] Don't use dynamic sized arrays since we don't build - with -std=c99 - ---- - grub-core/net/net.c | 17 ++++++++++++++--- - 1 file changed, 14 insertions(+), 3 deletions(-) - -diff --git a/grub-core/net/net.c b/grub-core/net/net.c -index f24f1fd..5366e44 100644 ---- a/grub-core/net/net.c -+++ b/grub-core/net/net.c -@@ -1853,14 +1853,25 @@ grub_net_search_configfile (char *config) - { - /* By the Client UUID. */ - -- char client_uuid_var[sizeof ("net_") + grub_strlen (inf->name) + -- sizeof ("_clientuuid") + 1]; -- grub_snprintf (client_uuid_var, sizeof (client_uuid_var), -+ char *client_uuid_var; -+ grub_size_t client_uuid_var_size; -+ -+ client_uuid_var_size = grub_snprintf (NULL, 0, -+ "net_%s_clientuuid", inf->name); -+ if (client_uuid_var_size <= 0) -+ continue; -+ client_uuid_var_size += 1; -+ client_uuid_var = grub_malloc(client_uuid_var_size); -+ if (!client_uuid_var) -+ continue; -+ grub_snprintf (client_uuid_var, client_uuid_var_size, - "net_%s_clientuuid", inf->name); - - const char *client_uuid; - client_uuid = grub_env_get (client_uuid_var); - -+ grub_free(client_uuid_var); -+ - if (client_uuid) - { - grub_strcpy (suffix, client_uuid); --- -1.8.3.1 - diff --git a/0131-Add-grub-set-bootflag-utility.patch b/0086-Add-grub-set-bootflag-utility.patch similarity index 92% rename from 0131-Add-grub-set-bootflag-utility.patch rename to 0086-Add-grub-set-bootflag-utility.patch index af4acd2..e39f8be 100644 --- a/0131-Add-grub-set-bootflag-utility.patch +++ b/0086-Add-grub-set-bootflag-utility.patch @@ -1,7 +1,7 @@ -From 07c1dfb9df01d3be4bbb9219fbe8a25b5d7dc0d9 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Tue, 12 Jun 2018 13:25:16 +0200 -Subject: [PATCH 131/220] Add grub-set-bootflag utility +Subject: [PATCH] Add grub-set-bootflag utility This commit adds a new grub-set-bootflag utility, which can be used to set known bootflags in the grubenv: boot_success or menu_show_once. @@ -31,24 +31,27 @@ and a symlink to grub-boot-success.timer should be added to /lib/systemd/user/timers.target.wants. Signed-off-by: Hans de Goede +[makhomed: grub-boot-success.timer: Only run if not in a container] +Signed-off-by: Gena Makhomed +Signed-off-by: Robbie Harwood --- Makefile.util.def | 7 ++ + util/grub-set-bootflag.c | 160 +++++++++++++++++++++++++++++++++++++++++ conf/Makefile.extra-dist | 3 + docs/grub-boot-success.service | 6 ++ - docs/grub-boot-success.timer | 6 ++ + docs/grub-boot-success.timer | 7 ++ util/grub-set-bootflag.1 | 20 ++++++ - util/grub-set-bootflag.c | 160 +++++++++++++++++++++++++++++++++++++++++ - 6 files changed, 202 insertions(+) + 6 files changed, 203 insertions(+) + create mode 100644 util/grub-set-bootflag.c create mode 100644 docs/grub-boot-success.service create mode 100644 docs/grub-boot-success.timer create mode 100644 util/grub-set-bootflag.1 - create mode 100644 util/grub-set-bootflag.c diff --git a/Makefile.util.def b/Makefile.util.def -index 89a9da1..125ad62 100644 +index 314e6f2acf8..0b85a7fce4a 100644 --- a/Makefile.util.def +++ b/Makefile.util.def -@@ -1451,3 +1451,10 @@ program = { +@@ -1446,3 +1446,10 @@ program = { ldadd = grub-core/lib/gnulib/libgnu.a; ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; }; @@ -59,73 +62,9 @@ index 89a9da1..125ad62 100644 + mansection = 1; + common = util/grub-set-bootflag.c; +}; -diff --git a/conf/Makefile.extra-dist b/conf/Makefile.extra-dist -index 58d7d95..375b1bf 100644 ---- a/conf/Makefile.extra-dist -+++ b/conf/Makefile.extra-dist -@@ -14,6 +14,9 @@ EXTRA_DIST += util/import_unicode.py - EXTRA_DIST += docs/autoiso.cfg - EXTRA_DIST += docs/grub.cfg - EXTRA_DIST += docs/osdetect.cfg -+EXTRA_DIST += docs/org.gnu.grub.policy -+EXTRA_DIST += docs/grub-boot-success.service -+EXTRA_DIST += docs/grub-boot-success.timer - - EXTRA_DIST += conf/i386-cygwin-img-ld.sc - -diff --git a/docs/grub-boot-success.service b/docs/grub-boot-success.service -new file mode 100644 -index 0000000..80e7958 ---- /dev/null -+++ b/docs/grub-boot-success.service -@@ -0,0 +1,6 @@ -+[Unit] -+Description=Mark boot as successful -+ -+[Service] -+Type=oneshot -+ExecStart=/usr/sbin/grub2-set-bootflag boot_success -diff --git a/docs/grub-boot-success.timer b/docs/grub-boot-success.timer -new file mode 100644 -index 0000000..5d8fcba ---- /dev/null -+++ b/docs/grub-boot-success.timer -@@ -0,0 +1,6 @@ -+[Unit] -+Description=Mark boot as successful after the user session has run 2 minutes -+ConditionUser=!@system -+ -+[Timer] -+OnActiveSec=2min -diff --git a/util/grub-set-bootflag.1 b/util/grub-set-bootflag.1 -new file mode 100644 -index 0000000..57801da ---- /dev/null -+++ b/util/grub-set-bootflag.1 -@@ -0,0 +1,20 @@ -+.TH GRUB-SET-BOOTFLAG 1 "Tue Jun 12 2018" -+.SH NAME -+\fBgrub-set-bootflag\fR \(em Set a bootflag in the GRUB environment block. -+ -+.SH SYNOPSIS -+\fBgrub-set-bootflag\fR <\fIBOOTFLAG\fR> -+ -+.SH DESCRIPTION -+\fBgrub-set-bootflag\fR is a command line to set bootflags in GRUB's -+stored environment. -+ -+.SH COMMANDS -+.TP -+\fBBOOTFLAG\fR -+.RS 7 -+Bootflag to set, one of \fIboot_success\fR or \fIshow_menu_once\fR. -+.RE -+ -+.SH SEE ALSO -+.BR "info grub" diff --git a/util/grub-set-bootflag.c b/util/grub-set-bootflag.c new file mode 100644 -index 0000000..bb198f0 +index 00000000000..bb198f02351 --- /dev/null +++ b/util/grub-set-bootflag.c @@ -0,0 +1,160 @@ @@ -289,6 +228,68 @@ index 0000000..bb198f0 + + return 0; +} --- -1.8.3.1 - +diff --git a/conf/Makefile.extra-dist b/conf/Makefile.extra-dist +index b909f2c073a..ea58362b555 100644 +--- a/conf/Makefile.extra-dist ++++ b/conf/Makefile.extra-dist +@@ -14,6 +14,9 @@ EXTRA_DIST += util/import_unicode.py + EXTRA_DIST += docs/autoiso.cfg + EXTRA_DIST += docs/grub.cfg + EXTRA_DIST += docs/osdetect.cfg ++EXTRA_DIST += docs/org.gnu.grub.policy ++EXTRA_DIST += docs/grub-boot-success.service ++EXTRA_DIST += docs/grub-boot-success.timer + + EXTRA_DIST += conf/i386-cygwin-img-ld.sc + +diff --git a/docs/grub-boot-success.service b/docs/grub-boot-success.service +new file mode 100644 +index 00000000000..80e79584c91 +--- /dev/null ++++ b/docs/grub-boot-success.service +@@ -0,0 +1,6 @@ ++[Unit] ++Description=Mark boot as successful ++ ++[Service] ++Type=oneshot ++ExecStart=/usr/sbin/grub2-set-bootflag boot_success +diff --git a/docs/grub-boot-success.timer b/docs/grub-boot-success.timer +new file mode 100644 +index 00000000000..406f1720056 +--- /dev/null ++++ b/docs/grub-boot-success.timer +@@ -0,0 +1,7 @@ ++[Unit] ++Description=Mark boot as successful after the user session has run 2 minutes ++ConditionUser=!@system ++ConditionVirtualization=!container ++ ++[Timer] ++OnActiveSec=2min +diff --git a/util/grub-set-bootflag.1 b/util/grub-set-bootflag.1 +new file mode 100644 +index 00000000000..57801da22a0 +--- /dev/null ++++ b/util/grub-set-bootflag.1 +@@ -0,0 +1,20 @@ ++.TH GRUB-SET-BOOTFLAG 1 "Tue Jun 12 2018" ++.SH NAME ++\fBgrub-set-bootflag\fR \(em Set a bootflag in the GRUB environment block. ++ ++.SH SYNOPSIS ++\fBgrub-set-bootflag\fR <\fIBOOTFLAG\fR> ++ ++.SH DESCRIPTION ++\fBgrub-set-bootflag\fR is a command line to set bootflags in GRUB's ++stored environment. ++ ++.SH COMMANDS ++.TP ++\fBBOOTFLAG\fR ++.RS 7 ++Bootflag to set, one of \fIboot_success\fR or \fIshow_menu_once\fR. ++.RE ++ ++.SH SEE ALSO ++.BR "info grub" diff --git a/0086-don-t-ignore-const.patch b/0086-don-t-ignore-const.patch deleted file mode 100644 index c84fba8..0000000 --- a/0086-don-t-ignore-const.patch +++ /dev/null @@ -1,25 +0,0 @@ -From f35f4b17be40199adb6df155f208da0a33ea95e9 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 26 Jun 2017 12:43:22 -0400 -Subject: [PATCH 086/220] don't ignore const - ---- - grub-core/net/tftp.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c -index dcd8249..f900713 100644 ---- a/grub-core/net/tftp.c -+++ b/grub-core/net/tftp.c -@@ -307,7 +307,7 @@ static void - grub_normalize_filename (char *normalized, const char *filename) - { - char *dest = normalized; -- char *src = filename; -+ const char *src = filename; - - while (*src != '\0') - { --- -1.8.3.1 - diff --git a/0132-docs-Add-grub-boot-indeterminate.service-example.patch b/0087-docs-Add-grub-boot-indeterminate.service-example.patch similarity index 83% rename from 0132-docs-Add-grub-boot-indeterminate.service-example.patch rename to 0087-docs-Add-grub-boot-indeterminate.service-example.patch index 0293664..44f6ad3 100644 --- a/0132-docs-Add-grub-boot-indeterminate.service-example.patch +++ b/0087-docs-Add-grub-boot-indeterminate.service-example.patch @@ -1,7 +1,7 @@ -From 600518039d5a46d1098d28da0e352a4f92dbc145 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Tue, 19 Jun 2018 15:20:54 +0200 -Subject: [PATCH 132/220] docs: Add grub-boot-indeterminate.service example +Subject: [PATCH] docs: Add grub-boot-indeterminate.service example This is an example service file, for use from /lib/systemd/system/system-update.target.wants @@ -16,7 +16,7 @@ Signed-off-by: Hans de Goede diff --git a/docs/grub-boot-indeterminate.service b/docs/grub-boot-indeterminate.service new file mode 100644 -index 0000000..6c8dcb1 +index 00000000000..6c8dcb186b6 --- /dev/null +++ b/docs/grub-boot-indeterminate.service @@ -0,0 +1,11 @@ @@ -31,6 +31,3 @@ index 0000000..6c8dcb1 +[Service] +Type=oneshot +ExecStart=/usr/bin/grub2-editenv - incr boot_indeterminate --- -1.8.3.1 - diff --git a/0133-gentpl-add-disable-support.patch b/0088-gentpl-add-disable-support.patch similarity index 89% rename from 0133-gentpl-add-disable-support.patch rename to 0088-gentpl-add-disable-support.patch index 3f12f5f..2c3c998 100644 --- a/0133-gentpl-add-disable-support.patch +++ b/0088-gentpl-add-disable-support.patch @@ -1,7 +1,7 @@ -From 5b8e719389524825b88322555030188309d88ba6 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 11 Jul 2018 13:43:15 -0400 -Subject: [PATCH 133/220] gentpl: add 'disable = ' support +Subject: [PATCH] gentpl: add 'disable = ' support Signed-off-by: Peter Jones --- @@ -9,7 +9,7 @@ Signed-off-by: Peter Jones 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/gentpl.py b/gentpl.py -index f05812e..3a0c049 100644 +index 2cba0bbbd6f..628e8bec1d7 100644 --- a/gentpl.py +++ b/gentpl.py @@ -592,11 +592,21 @@ def platform_conditional(platform, closure): @@ -44,6 +44,3 @@ index f05812e..3a0c049 100644 for suffix in [ "", "_nodist" ]: template = platform_values(defn, GRUB_PLATFORMS[0], suffix) for platform in GRUB_PLATFORMS[1:]: --- -1.8.3.1 - diff --git a/0089-editenv-handle-relative-symlinks.patch b/0089-editenv-handle-relative-symlinks.patch deleted file mode 100644 index e0ccccc..0000000 --- a/0089-editenv-handle-relative-symlinks.patch +++ /dev/null @@ -1,53 +0,0 @@ -From aa5c3b11994dc7b3856d7f4a3671029eb7056c66 Mon Sep 17 00:00:00 2001 -From: Jonathan Lebon -Date: Mon, 14 Aug 2017 14:37:20 -0400 -Subject: [PATCH 089/220] editenv: handle relative symlinks - -Handle symlinks with targets relative to the containing dir. This -ensures that the rename operation does not depend on the cwd. - -Resolves: rhbz#1479960 - -Signed-off-by: Jonathan Lebon ---- - util/editenv.c | 16 ++++++++++++++-- - 1 file changed, 14 insertions(+), 2 deletions(-) - -diff --git a/util/editenv.c b/util/editenv.c -index e61dc12..1f7f6f3 100644 ---- a/util/editenv.c -+++ b/util/editenv.c -@@ -28,6 +28,7 @@ - - #include - #include -+#include - - #define DEFAULT_ENVBLK_SIZE 1024 - -@@ -88,9 +89,20 @@ grub_util_create_envblk_file (const char *name) - continue; - } - -- free (rename_target); - linkbuf[retsize] = '\0'; -- rename_target = linkbuf; -+ if (linkbuf[0] == '/') -+ { -+ free (rename_target); -+ rename_target = linkbuf; -+ } -+ else -+ { -+ char *dbuf = xstrdup (rename_target); -+ const char *dir = dirname (dbuf); -+ free (rename_target); -+ rename_target = xasprintf("%s/%s", dir, linkbuf); -+ free (dbuf); -+ } - } - - int rc = grub_util_rename (namenew, rename_target); --- -1.8.3.1 - diff --git a/0134-gentpl-add-pc-firmware-type.patch b/0089-gentpl-add-pc-firmware-type.patch similarity index 78% rename from 0134-gentpl-add-pc-firmware-type.patch rename to 0089-gentpl-add-pc-firmware-type.patch index 9b5a742..96dd2b8 100644 --- a/0134-gentpl-add-pc-firmware-type.patch +++ b/0089-gentpl-add-pc-firmware-type.patch @@ -1,7 +1,7 @@ -From f763ca059bb527b66e2b7194e7f0bb7b6d47ccb9 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 11 Jul 2019 11:04:24 +0200 -Subject: [PATCH 134/220] gentpl: add 'pc' firmware type +Subject: [PATCH] gentpl: add 'pc' firmware type Signed-off-by: Peter Jones --- @@ -9,7 +9,7 @@ Signed-off-by: Peter Jones 1 file changed, 1 insertion(+) diff --git a/gentpl.py b/gentpl.py -index 3a0c049..1d9dda4 100644 +index 628e8bec1d7..34a4eba2b42 100644 --- a/gentpl.py +++ b/gentpl.py @@ -51,6 +51,7 @@ GROUPS["riscv32"] = [ "riscv32_efi" ] @@ -20,6 +20,3 @@ index 3a0c049..1d9dda4 100644 GROUPS["efi"] = [ "i386_efi", "x86_64_efi", "ia64_efi", "arm_efi", "arm64_efi", "riscv32_efi", "riscv64_efi" ] GROUPS["ieee1275"] = [ "i386_ieee1275", "sparc64_ieee1275", "powerpc_ieee1275" ] --- -1.8.3.1 - diff --git a/0090-Make-libgrub.pp-depend-on-config-util.h.patch b/0090-Make-libgrub.pp-depend-on-config-util.h.patch deleted file mode 100644 index 58bb475..0000000 --- a/0090-Make-libgrub.pp-depend-on-config-util.h.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 6cac349f34599ab50c3c548c1832d502ae1c17d6 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Wed, 23 Aug 2017 10:37:27 -0400 -Subject: [PATCH 090/220] Make libgrub.pp depend on config-util.h - -If you build with "make -j48" a lot, sometimes you see: - -gcc -E -DHAVE_CONFIG_H -I. -I.. -Wall -W -DGRUB_UTIL=1 -D_FILE_OFFSET_BITS=64 -I./include -DGRUB_FILE=\"grub_script.tab.h\" -I. -I.. -I. -I.. -I../include -I./include -I../grub-core/lib/libgcrypt-grub/src/ -I../grub-core/lib/minilzo -I../grub-core/lib/xzembed -DMINILZO_HAVE_CONFIG_H -Wall -W -DGRUB_UTIL=1 -D_FILE_OFFSET_BITS=64 -I./include -DGRUB_FILE=\"grub_script.tab.h\" -I. -I.. -I. -I.. -I../include -I./include -I../grub-core/lib/libgcrypt-grub/src/ -I./grub-core/gnulib -I../grub-core/gnulib -I/builddir/build/BUILD/grub-2.02/grub-aarch64-efi-2.02 -D_FILE_OFFSET_BITS=64 \ - -D'GRUB_MOD_INIT(x)=@MARKER@x@' grub_script.tab.h grub_script.yy.h ../grub-core/commands/blocklist.c ../grub-core/commands/macbless.c ../grub-core/commands/xnu_uuid.c ../grub-core/commands/testload.c ../grub-core/commands/ls.c ../grub-core/disk/dmraid_nvidia.c ../grub-core/disk/loopback.c ../grub-core/disk/lvm.c ../grub-core/disk/mdraid_linux.c ../grub-core/disk/mdraid_linux_be.c ../grub-core/disk/mdraid1x_linux.c ../grub-core/disk/raid5_recover.c ../grub-core/disk/raid6_recover.c ../grub-core/font/font.c ../grub-core/gfxmenu/font.c ../grub-core/normal/charset.c ../grub-core/video/fb/fbblit.c ../grub-core/video/fb/fbutil.c ../grub-core/video/fb/fbfill.c ../grub-core/video/fb/video_fb.c ../grub-core/video/video.c ../grub-core/video/capture.c ../grub-core/video/colors.c ../grub-core/unidata.c ../grub-core/io/bufio.c ../grub-core/fs/affs.c ../grub-core/fs/afs.c ../grub-core/fs/bfs.c ../grub-core/fs/btrfs.c ../grub-core/fs/cbfs.c ../grub-core/fs/cpio.c ../grub-core/fs/cpio_be.c ../grub-core/fs/odc.c ../grub-core/fs/newc.c ../grub-core/fs/ext2.c ../grub-core/fs/fat.c ../grub-core/fs/exfat.c ../grub-core/fs/fshelp.c ../grub-core/fs/hfs.c ../grub-core/fs/hfsplus.c ../grub-core/fs/hfspluscomp.c ../grub-core/fs/iso9660.c ../grub-core/fs/jfs.c ../grub-core/fs/minix.c ../grub-core/fs/minix2.c ../grub-core/fs/minix3.c ../grub-core/fs/minix_be.c ../grub-core/fs/minix2_be.c ../grub-core/fs/minix3_be.c ../grub-core/fs/nilfs2.c ../grub-core/fs/ntfs.c ../grub-core/fs/ntfscomp.c ../grub-core/fs/reiserfs.c ../grub-core/fs/romfs.c ../grub-core/fs/sfs.c ../grub-core/fs/squash4.c ../grub-core/fs/tar.c ../grub-core/fs/udf.c ../grub-core/fs/ufs2.c ../grub-core/fs/ufs.c ../grub-core/fs/ufs_be.c ../grub-core/fs/xfs.c ../grub-core/fs/zfs/zfscrypt.c ../grub-core/fs/zfs/zfs.c ../grub-core/fs/zfs/zfsinfo.c ../grub-core/fs/zfs/zfs_lzjb.c ../grub-core/fs/zfs/zfs_lz4.c ../grub-core/fs/zfs/zfs_sha256.c ../grub-core/fs/zfs/zfs_fletcher.c ../grub-core/lib/envblk.c ../grub-core/lib/hexdump.c ../grub-core/lib/LzFind.c ../grub-core/lib/LzmaEnc.c ../grub-core/lib/crc.c ../grub-core/lib/adler32.c ../grub-core/lib/crc64.c ../grub-core/normal/datetime.c ../grub-core/normal/misc.c ../grub-core/partmap/acorn.c ../grub-core/partmap/amiga.c ../grub-core/partmap/apple.c ../grub-core/partmap/sun.c ../grub-core/partmap/plan.c ../grub-core/partmap/dvh.c ../grub-core/partmap/sunpc.c ../grub-core/partmap/bsdlabel.c ../grub-core/partmap/dfly.c ../grub-core/script/function.c ../grub-core/script/lexer.c ../grub-core/script/main.c ../grub-core/script/script.c ../grub-core/script/argv.c ../grub-core/io/gzio.c ../grub-core/io/xzio.c ../grub-core/io/lzopio.c ../grub-core/kern/ia64/dl_helper.c ../grub-core/kern/arm/dl_helper.c ../grub-core/kern/arm64/dl_helper.c ../grub-core/lib/minilzo/minilzo.c ../grub-core/lib/xzembed/xz_dec_bcj.c ../grub-core/lib/xzembed/xz_dec_lzma2.c ../grub-core/lib/xzembed/xz_dec_stream.c ../util/misc.c ../grub-core/kern/command.c ../grub-core/kern/device.c ../grub-core/kern/disk.c ../grub-core/lib/disk.c ../util/getroot.c ../grub-core/osdep/unix/getroot.c ../grub-core/osdep/getroot.c ../grub-core/osdep/devmapper/getroot.c ../grub-core/osdep/relpath.c ../grub-core/kern/emu/hostdisk.c ../grub-core/osdep/devmapper/hostdisk.c ../grub-core/osdep/hostdisk.c ../grub-core/osdep/unix/hostdisk.c ../grub-core/osdep/exec.c ../grub-core/osdep/sleep.c ../grub-core/osdep/password.c ../grub-core/kern/emu/misc.c ../grub-core/kern/emu/mm.c ../grub-core/kern/env.c ../grub-core/kern/err.c ../grub-core/kern/file.c ../grub-core/kern/fs.c ../grub-core/kern/list.c ../grub-core/kern/misc.c ../grub-core/kern/partition.c ../grub-core/lib/crypto.c ../grub-core/disk/luks.c ../grub-core/disk/geli.c ../grub-core/disk/cryptodisk.c ../grub-core/disk/AFSplitter.c ../grub-core/lib/pbkdf2.c ../grub-core/commands/extcmd.c ../grub-core/lib/arg.c ../grub-core/disk/ldm.c ../grub-core/disk/diskfilter.c ../grub-core/partmap/gpt.c ../grub-core/partmap/msdos.c ../grub-core/fs/proc.c ../grub-core/fs/archelp.c > libgrub.pp || (rm -f libgrub.pp; exit 1) -rm -f stamp-h1 -touch ../config-util.h.in -cd . && /bin/sh ./config.status config-util.h -config.status: creating config-util.h -In file included from ../include/grub/mm.h:25:0, - from ../include/grub/disk.h:29, - from ../include/grub/file.h:26, - from ../grub-core/fs/btrfs.c:21: -./config.h:38:10: fatal error: ./config-util.h: No such file or directory - #include - ^~~~~~~~~~~~~~~ -compilation terminated. -make: *** [Makefile:13098: libgrub.pp] Error 1 - -This is because libgrub.pp is built with -DGRUB_UTIL=1, which means -it'll try to include config-util.h, but a parallel make is actually -building that file. I think. - -Signed-off-by: Peter Jones ---- - Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile.am b/Makefile.am -index 1f4bb9b..bf9c1ba 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -37,7 +37,7 @@ grub_script.yy.c: grub_script.yy.h - CLEANFILES += grub_script.yy.c grub_script.yy.h - - # For libgrub.a --libgrub.pp: grub_script.tab.h grub_script.yy.h $(libgrubmods_a_SOURCES) $(libgrubkern_a_SOURCES) -+libgrub.pp: config-util.h grub_script.tab.h grub_script.yy.h $(libgrubmods_a_SOURCES) $(libgrubkern_a_SOURCES) - $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgrubmods_a_CPPFLAGS) $(libgrubkern_a_CPPFLAGS) $(CPPFLAGS) \ - -D'GRUB_MOD_INIT(x)=@MARKER@x@' $^ > $@ || (rm -f $@; exit 1) - CLEANFILES += libgrub.pp --- -1.8.3.1 - diff --git a/0135-efinet-also-use-the-firmware-acceleration-for-http.patch b/0090-efinet-also-use-the-firmware-acceleration-for-http.patch similarity index 83% rename from 0135-efinet-also-use-the-firmware-acceleration-for-http.patch rename to 0090-efinet-also-use-the-firmware-acceleration-for-http.patch index 2132bd9..915b5aa 100644 --- a/0135-efinet-also-use-the-firmware-acceleration-for-http.patch +++ b/0090-efinet-also-use-the-firmware-acceleration-for-http.patch @@ -1,7 +1,7 @@ -From 4b0d5c577825b4b9e4f0fc768ea57cfb941e6c45 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 30 Jul 2018 14:06:42 -0400 -Subject: [PATCH 135/220] efinet: also use the firmware acceleration for http +Subject: [PATCH] efinet: also use the firmware acceleration for http Signed-off-by: Peter Jones --- @@ -9,7 +9,7 @@ Signed-off-by: Peter Jones 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/grub-core/net/efi/net.c b/grub-core/net/efi/net.c -index 4bb3080..6603cd8 100644 +index 4bb308026ce..6603cd83edc 100644 --- a/grub-core/net/efi/net.c +++ b/grub-core/net/efi/net.c @@ -1324,7 +1324,9 @@ grub_efi_net_boot_from_https (void) @@ -23,6 +23,3 @@ index 4bb3080..6603cd8 100644 } if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp)) --- -1.8.3.1 - diff --git a/0136-efi-http-Make-root_url-reflect-the-protocol-hostname.patch b/0091-efi-http-Make-root_url-reflect-the-protocol-hostname.patch similarity index 87% rename from 0136-efi-http-Make-root_url-reflect-the-protocol-hostname.patch rename to 0091-efi-http-Make-root_url-reflect-the-protocol-hostname.patch index 43bfc60..985a037 100644 --- a/0136-efi-http-Make-root_url-reflect-the-protocol-hostname.patch +++ b/0091-efi-http-Make-root_url-reflect-the-protocol-hostname.patch @@ -1,8 +1,8 @@ -From f1173dcc353427122e640347a35df802fabd020f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 30 Jul 2018 16:39:57 -0400 -Subject: [PATCH 136/220] efi/http: Make root_url reflect the protocol+hostname - of our boot url. +Subject: [PATCH] efi/http: Make root_url reflect the protocol+hostname of our + boot url. This lets you write config files that don't know urls. @@ -12,7 +12,7 @@ Signed-off-by: Peter Jones 1 file changed, 19 insertions(+) diff --git a/grub-core/net/efi/http.c b/grub-core/net/efi/http.c -index 3f61fd2..243acba 100644 +index 3f61fd2fa5b..243acbaa35b 100644 --- a/grub-core/net/efi/http.c +++ b/grub-core/net/efi/http.c @@ -4,6 +4,7 @@ @@ -48,6 +48,3 @@ index 3f61fd2..243acba 100644 err = efihttp_request (dev->http, file->device->net->server, file->device->net->name, type, 1, 0); if (err != GRUB_ERR_NONE) --- -1.8.3.1 - diff --git a/0092-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch b/0092-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch deleted file mode 100644 index 7d31e77..0000000 --- a/0092-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch +++ /dev/null @@ -1,35 +0,0 @@ -From aef6341482706bc7a6620324795006e7209df380 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 9 Jul 2019 14:31:19 +0200 -Subject: [PATCH 092/220] 20_linux_xen: load xen or multiboot{,2} modules as - needed. - -Signed-off-by: Peter Jones ---- - util/grub.d/20_linux_xen.in | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index 1519ec6..9aa23bc 100644 ---- a/util/grub.d/20_linux_xen.in -+++ b/util/grub.d/20_linux_xen.in -@@ -136,6 +136,8 @@ linux_entry () - else - xen_rm_opts="no-real-mode edd=off" - fi -+ insmod ${module_loader} -+ insmod ${xen_loader} - ${xen_loader} ${rel_xen_dirname}/${xen_basename} placeholder ${xen_args} \${xen_rm_opts} - echo '$(echo "$lmessage" | grub_quote)' - ${module_loader} ${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args} -@@ -149,6 +151,7 @@ EOF - done - sed "s/^/$submenu_indentation/" << EOF - echo '$(echo "$message" | grub_quote)' -+ insmod ${module_loader} - ${module_loader} --nounzip $(echo $initrd_path) - EOF - fi --- -1.8.3.1 - diff --git a/0137-Make-it-so-we-can-tell-configure-which-cflags-utils-.patch b/0092-Make-it-so-we-can-tell-configure-which-cflags-utils-.patch similarity index 93% rename from 0137-Make-it-so-we-can-tell-configure-which-cflags-utils-.patch rename to 0092-Make-it-so-we-can-tell-configure-which-cflags-utils-.patch index 287dbe7..ee2216e 100644 --- a/0137-Make-it-so-we-can-tell-configure-which-cflags-utils-.patch +++ b/0092-Make-it-so-we-can-tell-configure-which-cflags-utils-.patch @@ -1,8 +1,8 @@ -From 2ed3f5abf24ef7b6802aba64ecf2e3bf415f2f67 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 26 Jun 2018 17:16:06 -0400 -Subject: [PATCH 137/220] Make it so we can tell configure which cflags utils - are built with +Subject: [PATCH] Make it so we can tell configure which cflags utils are built + with This lets us have kernel.img be built with TARGET_CFLAGS but grub-mkimage and friends built with HOST_CFLAGS. That in turn lets us build with an ARM compiler @@ -11,57 +11,16 @@ float for grub.efi. Signed-off-by: Peter Jones --- - conf/Makefile.common | 23 ++++++++++++----------- configure.ac | 49 ++++++++++++++++++++++++++++++++++++++++++++++++- + conf/Makefile.common | 23 ++++++++++++----------- gentpl.py | 8 ++++---- 3 files changed, 64 insertions(+), 16 deletions(-) -diff --git a/conf/Makefile.common b/conf/Makefile.common -index 5e8ba2a..bbf33b0 100644 ---- a/conf/Makefile.common -+++ b/conf/Makefile.common -@@ -40,24 +40,25 @@ CPPFLAGS_KERNEL = $(CPPFLAGS_CPU) $(CPPFLAGS_PLATFORM) -DGRUB_KERNEL=1 - CCASFLAGS_KERNEL = $(CCASFLAGS_CPU) $(CCASFLAGS_PLATFORM) - STRIPFLAGS_KERNEL = -R .eh_frame -R .rel.dyn -R .reginfo -R .note -R .comment -R .drectve -R .note.gnu.gold-version -R .MIPS.abiflags -R .ARM.exidx -R .note.gnu.property -R .gnu.build.attributes - --CFLAGS_MODULE = $(CFLAGS_PLATFORM) -ffreestanding --LDFLAGS_MODULE = $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) -Wl,-r,-d --CPPFLAGS_MODULE = $(CPPFLAGS_CPU) $(CPPFLAGS_PLATFORM) --CCASFLAGS_MODULE = $(CCASFLAGS_CPU) $(CCASFLAGS_PLATFORM) -+CFLAGS_MODULE = $(TARGET_CFLAGS) $(CFLAGS_PLATFORM) -ffreestanding -+LDFLAGS_MODULE = $(TARGET_LDFLAGS) $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) -Wl,-r,-d -+CPPFLAGS_MODULE = $(TARGET_CPPFLAGS) $(CPPFLAGS_DEFAULT) $(CPPFLAGS_CPU) $(CPPFLAGS_PLATFORM) -+CCASFLAGS_MODULE = $(TARGET_CCASFLAGS) $(CCASFLAGS_DEFAULT) $(CCASFLAGS_CPU) $(CCASFLAGS_PLATFORM) - - CFLAGS_IMAGE = $(CFLAGS_PLATFORM) -fno-builtin - LDFLAGS_IMAGE = $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) -Wl,-S - CPPFLAGS_IMAGE = $(CPPFLAGS_CPU) $(CPPFLAGS_PLATFORM) - CCASFLAGS_IMAGE = $(CCASFLAGS_CPU) $(CCASFLAGS_PLATFORM) - --CFLAGS_PROGRAM = --LDFLAGS_PROGRAM = --CPPFLAGS_PROGRAM = --CCASFLAGS_PROGRAM = -+CFLAGS_PROGRAM = $(UTILS_CFLAGS) -+LDFLAGS_PROGRAM = $(UTILS_LDFLAGS) -+CPPFLAGS_PROGRAM = $(UTILS_CPPFLAGS) -+CCASFLAGS_PROGRAM = $(UTILS_CCASFLAGS) - --CFLAGS_LIBRARY = --CPPFLAGS_LIBRARY = --CCASFLAGS_LIBRARY = -+CFLAGS_LIBRARY = $(UTILS_CFLAGS) -+LDFLAGS_LIBRARY = $(UTILS_LDFLAGS) -+CPPFLAGS_LIBRARY = $(UTILS_CPPFLAGS) -+CCASFLAGS_LIBRARY = $(UTILS_CCASFLAGS) - - # Other variables - diff --git a/configure.ac b/configure.ac -index 8ee18ba..cf32748 100644 +index b50fb2e9897..b27573b3de5 100644 --- a/configure.ac +++ b/configure.ac -@@ -868,11 +868,23 @@ if ( test "x$target_cpu" = xi386 || test "x$target_cpu" = xx86_64 ) && test "x$p +@@ -877,11 +877,23 @@ if ( test "x$target_cpu" = xi386 || test "x$target_cpu" = xx86_64 ) && test "x$p TARGET_CFLAGS="$TARGET_CFLAGS -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-3dnow" fi @@ -86,7 +45,7 @@ index 8ee18ba..cf32748 100644 AC_CACHE_CHECK([for options to get soft-float], grub_cv_target_cc_soft_float, [ grub_cv_target_cc_soft_float=no if test "x$target_cpu" = xarm64; then -@@ -1951,6 +1963,41 @@ HOST_CPPFLAGS="$HOST_CPPFLAGS -I\$(top_builddir)/include" +@@ -2011,6 +2023,41 @@ HOST_CPPFLAGS="$HOST_CPPFLAGS -I\$(top_builddir)/include" TARGET_CPPFLAGS="$TARGET_CPPFLAGS -I\$(top_srcdir)/include" TARGET_CPPFLAGS="$TARGET_CPPFLAGS -I\$(top_builddir)/include" @@ -128,8 +87,49 @@ index 8ee18ba..cf32748 100644 GRUB_TARGET_CPU="${target_cpu}" GRUB_PLATFORM="${platform}" +diff --git a/conf/Makefile.common b/conf/Makefile.common +index 5f0ef969857..2ff9b39357c 100644 +--- a/conf/Makefile.common ++++ b/conf/Makefile.common +@@ -40,24 +40,25 @@ CPPFLAGS_KERNEL = $(CPPFLAGS_CPU) $(CPPFLAGS_PLATFORM) -DGRUB_KERNEL=1 + CCASFLAGS_KERNEL = $(CCASFLAGS_CPU) $(CCASFLAGS_PLATFORM) + STRIPFLAGS_KERNEL = -R .eh_frame -R .rel.dyn -R .reginfo -R .note -R .comment -R .drectve -R .note.gnu.gold-version -R .MIPS.abiflags -R .ARM.exidx -R .note.gnu.property -R .gnu.build.attributes + +-CFLAGS_MODULE = $(CFLAGS_PLATFORM) -ffreestanding +-LDFLAGS_MODULE = $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) -Wl,-r,-d +-CPPFLAGS_MODULE = $(CPPFLAGS_CPU) $(CPPFLAGS_PLATFORM) +-CCASFLAGS_MODULE = $(CCASFLAGS_CPU) $(CCASFLAGS_PLATFORM) ++CFLAGS_MODULE = $(TARGET_CFLAGS) $(CFLAGS_PLATFORM) -ffreestanding ++LDFLAGS_MODULE = $(TARGET_LDFLAGS) $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) -Wl,-r,-d ++CPPFLAGS_MODULE = $(TARGET_CPPFLAGS) $(CPPFLAGS_DEFAULT) $(CPPFLAGS_CPU) $(CPPFLAGS_PLATFORM) ++CCASFLAGS_MODULE = $(TARGET_CCASFLAGS) $(CCASFLAGS_DEFAULT) $(CCASFLAGS_CPU) $(CCASFLAGS_PLATFORM) + + CFLAGS_IMAGE = $(CFLAGS_PLATFORM) -fno-builtin + LDFLAGS_IMAGE = $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) -Wl,-S + CPPFLAGS_IMAGE = $(CPPFLAGS_CPU) $(CPPFLAGS_PLATFORM) + CCASFLAGS_IMAGE = $(CCASFLAGS_CPU) $(CCASFLAGS_PLATFORM) + +-CFLAGS_PROGRAM = +-LDFLAGS_PROGRAM = +-CPPFLAGS_PROGRAM = +-CCASFLAGS_PROGRAM = ++CFLAGS_PROGRAM = $(UTILS_CFLAGS) ++LDFLAGS_PROGRAM = $(UTILS_LDFLAGS) ++CPPFLAGS_PROGRAM = $(UTILS_CPPFLAGS) ++CCASFLAGS_PROGRAM = $(UTILS_CCASFLAGS) + +-CFLAGS_LIBRARY = +-CPPFLAGS_LIBRARY = +-CCASFLAGS_LIBRARY = ++CFLAGS_LIBRARY = $(UTILS_CFLAGS) ++LDFLAGS_LIBRARY = $(UTILS_LDFLAGS) ++CPPFLAGS_LIBRARY = $(UTILS_CPPFLAGS) ++CCASFLAGS_LIBRARY = $(UTILS_CCASFLAGS) + + # Other variables + diff --git a/gentpl.py b/gentpl.py -index 1d9dda4..95fe1a2 100644 +index 34a4eba2b42..59f62ef9522 100644 --- a/gentpl.py +++ b/gentpl.py @@ -697,10 +697,10 @@ def module(defn, platform): @@ -147,6 +147,3 @@ index 1d9dda4..95fe1a2 100644 var_set(cname(defn) + "_DEPENDENCIES", "$(TARGET_OBJ2ELF) " + platform_dependencies(defn, platform)) gvar_add("dist_noinst_DATA", extra_dist(defn)) --- -1.8.3.1 - diff --git a/0138-module-verifier-make-it-possible-to-run-checkers-on-.patch b/0093-module-verifier-make-it-possible-to-run-checkers-on-.patch similarity index 87% rename from 0138-module-verifier-make-it-possible-to-run-checkers-on-.patch rename to 0093-module-verifier-make-it-possible-to-run-checkers-on-.patch index 0d6301e..e31b38f 100644 --- a/0138-module-verifier-make-it-possible-to-run-checkers-on-.patch +++ b/0093-module-verifier-make-it-possible-to-run-checkers-on-.patch @@ -1,7 +1,7 @@ -From cf80fb1ad8e247a4d56a9740d489bb85c447a3ca Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 1 Aug 2018 10:24:52 -0400 -Subject: [PATCH 138/220] module-verifier: make it possible to run checkers on +Subject: [PATCH] module-verifier: make it possible to run checkers on grub-module-verifierxx.c This makes it so you can treat grub-module-verifierxx.c as a file you can @@ -22,7 +22,7 @@ Signed-off-by: Peter Jones 3 files changed, 13 insertions(+) diff --git a/util/grub-module-verifier32.c b/util/grub-module-verifier32.c -index 257229f..ba7d41a 100644 +index 257229f8f08..ba7d41aafea 100644 --- a/util/grub-module-verifier32.c +++ b/util/grub-module-verifier32.c @@ -1,2 +1,4 @@ @@ -31,7 +31,7 @@ index 257229f..ba7d41a 100644 #include "grub-module-verifierXX.c" +#endif diff --git a/util/grub-module-verifier64.c b/util/grub-module-verifier64.c -index 4db6b4b..fc23ef8 100644 +index 4db6b4bedd1..fc23ef800b3 100644 --- a/util/grub-module-verifier64.c +++ b/util/grub-module-verifier64.c @@ -1,2 +1,4 @@ @@ -40,7 +40,7 @@ index 4db6b4b..fc23ef8 100644 #include "grub-module-verifierXX.c" +#endif diff --git a/util/grub-module-verifierXX.c b/util/grub-module-verifierXX.c -index ceb2430..a98e2f9 100644 +index ceb24309aec..a98e2f9b1ac 100644 --- a/util/grub-module-verifierXX.c +++ b/util/grub-module-verifierXX.c @@ -1,3 +1,12 @@ @@ -56,6 +56,3 @@ index ceb2430..a98e2f9 100644 #include #include --- -1.8.3.1 - diff --git a/0139-Rework-how-the-fdt-command-builds.patch b/0094-Rework-how-the-fdt-command-builds.patch similarity index 73% rename from 0139-Rework-how-the-fdt-command-builds.patch rename to 0094-Rework-how-the-fdt-command-builds.patch index 1c42474..e233067 100644 --- a/0139-Rework-how-the-fdt-command-builds.patch +++ b/0094-Rework-how-the-fdt-command-builds.patch @@ -1,7 +1,7 @@ -From 849085d266f998cdcf6191194b12fdf5b52a38bd Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 11 Jul 2019 13:01:41 +0200 -Subject: [PATCH 139/220] Rework how the fdt command builds. +Subject: [PATCH] Rework how the fdt command builds. Trying to avoid all variants of: cat syminfo.lst | sort | gawk -f ../../grub-core/genmoddep.awk > moddep.lst || (rm -f moddep.lst; exit 1) @@ -13,31 +13,22 @@ grub_fdt_load in xen_boot is not defined grub_fdt_unload in xen_boot is not defined Signed-off-by: Peter Jones +[javierm: Fix build with platform emu, aarch64, and risc-v] +Signed-off-by: Javier Martinez Canillas +Signed-off-by: Robbie Harwood --- - grub-core/Makefile.am | 1 + grub-core/Makefile.core.def | 5 ++--- grub-core/lib/fdt.c | 2 -- grub-core/loader/efi/fdt.c | 2 ++ - include/grub/fdt.h | 4 ++++ - 5 files changed, 9 insertions(+), 5 deletions(-) + include/grub/fdt.h | 6 ++++++ + grub-core/Makefile.am | 1 + + 5 files changed, 11 insertions(+), 5 deletions(-) -diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index d9ad300..ee9c4e4 100644 ---- a/grub-core/Makefile.am -+++ b/grub-core/Makefile.am -@@ -76,6 +76,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/sb.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env_private.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/err.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fdt.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/file.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fs.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i18n.h diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 48491b5..556adca 100644 +index c40170f2dd2..84a3d89de9a 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def -@@ -175,7 +175,6 @@ kernel = { +@@ -177,7 +177,6 @@ kernel = { arm_coreboot = kern/arm/coreboot/init.c; arm_coreboot = kern/arm/coreboot/timer.c; arm_coreboot = kern/arm/coreboot/coreboot.S; @@ -45,7 +36,7 @@ index 48491b5..556adca 100644 arm_coreboot = bus/fdt.c; arm_coreboot = term/ps2.c; arm_coreboot = term/arm/pl050.c; -@@ -348,6 +347,8 @@ kernel = { +@@ -351,6 +350,8 @@ kernel = { riscv64 = kern/riscv/cache_flush.S; riscv64 = kern/riscv/dl.c; @@ -54,7 +45,7 @@ index 48491b5..556adca 100644 emu = disk/host.c; emu = kern/emu/cache_s.S; emu = kern/emu/hostdisk.c; -@@ -1801,7 +1802,6 @@ module = { +@@ -1825,7 +1826,6 @@ module = { riscv32 = loader/riscv/linux.c; riscv64 = loader/riscv/linux.c; emu = loader/emu/linux.c; @@ -62,7 +53,7 @@ index 48491b5..556adca 100644 common = loader/linux.c; common = lib/cmdline.c; -@@ -1812,7 +1812,6 @@ module = { +@@ -1836,7 +1836,6 @@ module = { module = { name = fdt; efi = loader/efi/fdt.c; @@ -71,7 +62,7 @@ index 48491b5..556adca 100644 }; diff --git a/grub-core/lib/fdt.c b/grub-core/lib/fdt.c -index 0d371c5..37e04bd 100644 +index 0d371c5633e..37e04bd69e7 100644 --- a/grub-core/lib/fdt.c +++ b/grub-core/lib/fdt.c @@ -21,8 +21,6 @@ @@ -84,12 +75,12 @@ index 0d371c5..37e04bd 100644 #define FDT_BEGIN_NODE 0x00000001 diff --git a/grub-core/loader/efi/fdt.c b/grub-core/loader/efi/fdt.c -index ee9c559..37ca407 100644 +index c86f283d756..c572415d38a 100644 --- a/grub-core/loader/efi/fdt.c +++ b/grub-core/loader/efi/fdt.c -@@ -26,6 +26,8 @@ - #include +@@ -27,6 +27,8 @@ #include + #include +GRUB_MOD_LICENSE ("GPLv3+"); + @@ -97,25 +88,36 @@ index ee9c559..37ca407 100644 static void *fdt; diff --git a/include/grub/fdt.h b/include/grub/fdt.h -index e609c7e..22b7c54 100644 +index e609c7e4111..3514aa4a5b6 100644 --- a/include/grub/fdt.h +++ b/include/grub/fdt.h -@@ -19,6 +19,8 @@ +@@ -19,6 +19,9 @@ #ifndef GRUB_FDT_HEADER #define GRUB_FDT_HEADER 1 -+#if defined(__arm__) || defined(__aarch64__) ++#if !defined(GRUB_MACHINE_EMU) && \ ++ (defined(__arm__) || defined(__aarch64__) || defined(__riscv)) + #include #include -@@ -144,4 +146,6 @@ int EXPORT_FUNC(grub_fdt_set_prop) (void *fdt, unsigned int nodeoffset, const ch +@@ -144,4 +147,7 @@ int EXPORT_FUNC(grub_fdt_set_prop) (void *fdt, unsigned int nodeoffset, const ch grub_fdt_set_prop ((fdt), (nodeoffset), "reg", reg_64, 16); \ }) -+#endif /* defined(__arm__) || defined(__aarch64__) */ ++#endif /* !defined(GRUB_MACHINE_EMU) && \ ++ (defined(__arm__) || defined(__aarch64__) || defined(__riscv)) */ + #endif /* ! GRUB_FDT_HEADER */ --- -1.8.3.1 - +diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am +index f512573c0da..dd49939aaa9 100644 +--- a/grub-core/Makefile.am ++++ b/grub-core/Makefile.am +@@ -76,6 +76,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/sb.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env_private.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/err.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fdt.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/file.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fs.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i18n.h diff --git a/0095-Add-BLS-support-to-grub-mkconfig.patch b/0095-Add-BLS-support-to-grub-mkconfig.patch deleted file mode 100644 index 75b0884..0000000 --- a/0095-Add-BLS-support-to-grub-mkconfig.patch +++ /dev/null @@ -1,744 +0,0 @@ -From 9a2531c2784e9d86e4f15d549dc82b37243d46e4 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Fri, 9 Dec 2016 15:40:29 -0500 -Subject: [PATCH 095/220] Add BLS support to grub-mkconfig - -GRUB now has BootLoaderSpec support, the user can choose to use this by -setting GRUB_ENABLE_BLSCFG to true in /etc/default/grub. On this setup, -the boot menu entries are not added to the grub.cfg, instead BLS config -files are parsed by blscfg command and the entries created dynamically. - -A 10_linux_bls grub.d snippet to generate menu entries from BLS files -is also added that can be used on platforms where the bootloader doesn't -have BLS support and only can parse a normal grub configuration file. - -Portions of the 10_linux_bls were taken from the ostree-grub-generator -script that's included in the OSTree project. - -Fixes to support multi-devices and generate a BLS section even if no -kernels are found in the boot directory were proposed by Yclept Nemo -and Tom Gundersen respectively. - -Signed-off-by: Peter Jones -Signed-off-by: Javier Martinez Canillas ---- - Makefile.util.def | 7 + - util/grub-mkconfig.8 | 4 + - util/grub-mkconfig.in | 9 +- - util/grub-mkconfig_lib.in | 20 +- - util/grub.d/10_linux.in | 67 ++++++- - util/grub.d/10_linux_bls.in | 478 ++++++++++++++++++++++++++++++++++++++++++++ - 6 files changed, 580 insertions(+), 5 deletions(-) - create mode 100644 util/grub.d/10_linux_bls.in - -diff --git a/Makefile.util.def b/Makefile.util.def -index 2215cc7..a616136 100644 ---- a/Makefile.util.def -+++ b/Makefile.util.def -@@ -500,6 +500,13 @@ script = { - }; - - script = { -+ name = '10_linux_bls'; -+ common = util/grub.d/10_linux_bls.in; -+ installdir = grubconf; -+ condition = COND_HOST_LINUX; -+}; -+ -+script = { - name = '10_xnu'; - common = util/grub.d/10_xnu.in; - installdir = grubconf; -diff --git a/util/grub-mkconfig.8 b/util/grub-mkconfig.8 -index a2d1f57..434fa4d 100644 ---- a/util/grub-mkconfig.8 -+++ b/util/grub-mkconfig.8 -@@ -13,5 +13,9 @@ - \fB--output\fR=\fIFILE\fR - Write generated output to \fIFILE\fR. - -+.TP -+\fB--no-grubenv-update\fR -+Do not update variables in the grubenv file. -+ - .SH SEE ALSO - .BR "info grub" -diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 4649e92..2601bdc 100644 ---- a/util/grub-mkconfig.in -+++ b/util/grub-mkconfig.in -@@ -50,6 +50,8 @@ grub_get_kernel_settings="${sbindir}/@grub_get_kernel_settings@" - export TEXTDOMAIN=@PACKAGE@ - export TEXTDOMAINDIR="@localedir@" - -+export GRUB_GRUBENV_UPDATE="yes" -+ - . "${pkgdatadir}/grub-mkconfig_lib" - - # Usage: usage -@@ -59,6 +61,7 @@ usage () { - gettext "Generate a grub config file"; echo - echo - print_option_help "-o, --output=$(gettext FILE)" "$(gettext "output generated config to FILE [default=stdout]")" -+ print_option_help "--no-grubenv-update" "$(gettext "do not update variables in the grubenv file")" - print_option_help "-h, --help" "$(gettext "print this message and exit")" - print_option_help "-v, --version" "$(gettext "print the version information and exit")" - echo -@@ -94,6 +97,9 @@ do - --output=*) - grub_cfg=`echo "$option" | sed 's/--output=//'` - ;; -+ --no-grubenv-update) -+ GRUB_GRUBENV_UPDATE="no" -+ ;; - -*) - gettext_printf "Unrecognized option \`%s'\n" "$option" 1>&2 - usage -@@ -259,7 +265,8 @@ export GRUB_DEFAULT \ - GRUB_OS_PROBER_SKIP_LIST \ - GRUB_DISABLE_SUBMENU \ - GRUB_DEFAULT_DTB \ -- SUSE_BTRFS_SNAPSHOT_BOOTING -+ SUSE_BTRFS_SNAPSHOT_BOOTING \ -+ GRUB_ENABLE_BLSCFG - - if test "x${grub_cfg}" != "x"; then - rm -f "${grub_cfg}.new" -diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index b3aae53..bc11df2 100644 ---- a/util/grub-mkconfig_lib.in -+++ b/util/grub-mkconfig_lib.in -@@ -30,6 +30,9 @@ fi - if test "x$grub_file" = x; then - grub_file="${bindir}/@grub_file@" - fi -+if test "x$grub_editenv" = x; then -+ grub_editenv="${bindir}/@grub_editenv@" -+fi - if test "x$grub_mkrelpath" = x; then - grub_mkrelpath="${bindir}/@grub_mkrelpath@" - fi -@@ -125,8 +128,19 @@ EOF - fi - } - -+prepare_grub_to_access_device_with_variable () -+{ -+ device_variable="$1" -+ shift -+ prepare_grub_to_access_device "$@" -+ unset "device_variable" -+} -+ - prepare_grub_to_access_device () - { -+ if [ -z "$device_variable" ]; then -+ device_variable="root" -+ fi - old_ifs="$IFS" - IFS=' - ' -@@ -161,14 +175,14 @@ prepare_grub_to_access_device () - # otherwise set root as per value in device.map. - fs_hint="`"${grub_probe}" --device $@ --target=compatibility_hint`" - if [ "x$fs_hint" != x ]; then -- echo "set root='$fs_hint'" -+ echo "set ${device_variable}='$fs_hint'" - fi - if [ "x$GRUB_DISABLE_UUID" != "xtrue" ] && fs_uuid="`"${grub_probe}" --device $@ --target=fs_uuid 2> /dev/null`" ; then - hints="`"${grub_probe}" --device $@ --target=hints_string 2> /dev/null`" || hints= - echo "if [ x\$feature_platform_search_hint = xy ]; then" -- echo " search --no-floppy --fs-uuid --set=root ${hints} ${fs_uuid}" -+ echo " search --no-floppy --fs-uuid --set=${device_variable} ${hints} ${fs_uuid}" - echo "else" -- echo " search --no-floppy --fs-uuid --set=root ${fs_uuid}" -+ echo " search --no-floppy --fs-uuid --set=${device_variable} ${fs_uuid}" - echo "fi" - fi - IFS="$old_ifs" -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 5cab299..301594a 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -82,6 +82,67 @@ case x"$GRUB_FS" in - ;; - esac - -+populate_header_warn() -+{ -+cat <$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then -@@ -224,6 +286,7 @@ is_top_level=true - while [ "x$list" != "x" ] ; do - linux=`version_find_latest $list` - gettext_printf "Found linux image: %s\n" "$linux" >&2 -+ - basename=`basename $linux` - dirname=`dirname $linux` - rel_dirname=`make_system_path_relative_to_its_root $dirname` -@@ -262,7 +325,9 @@ while [ "x$list" != "x" ] ; do - for i in ${initrd}; do - initrd_display="${initrd_display} ${dirname}/${i}" - done -- gettext_printf "Found initrd image: %s\n" "$(echo $initrd_display)" >&2 -+ if [ "x${GRUB_ENABLE_BLSCFG}" != "xtrue" ]; then -+ gettext_printf "Found initrd image: %s\n" "$(echo $initrd_display)" >&2 -+ fi - fi - - fdt= -diff --git a/util/grub.d/10_linux_bls.in b/util/grub.d/10_linux_bls.in -new file mode 100644 -index 0000000..1b75364 ---- /dev/null -+++ b/util/grub.d/10_linux_bls.in -@@ -0,0 +1,478 @@ -+#! /bin/sh -+set -e -+ -+# grub-mkconfig helper script. -+# Copyright (C) 2006,2007,2008,2009,2010 Free Software Foundation, Inc. -+# -+# GRUB is free software: you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation, either version 3 of the License, or -+# (at your option) any later version. -+# -+# GRUB is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with GRUB. If not, see . -+ -+prefix="@prefix@" -+exec_prefix="@exec_prefix@" -+datarootdir="@datarootdir@" -+ -+. "$pkgdatadir/grub-mkconfig_lib" -+ -+export TEXTDOMAIN=@PACKAGE@ -+export TEXTDOMAINDIR="@localedir@" -+ -+CLASS="--class gnu-linux --class gnu --class os --unrestricted" -+ -+if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then -+ OS="$(eval $(grep PRETTY_NAME /etc/os-release) ; echo ${PRETTY_NAME})" -+ CLASS="--class $(eval $(grep '^ID_LIKE=\|^ID=' /etc/os-release) ; [ -n "${ID_LIKE}" ] && echo ${ID_LIKE} || echo ${ID}) ${CLASS}" -+else -+ OS="${GRUB_DISTRIBUTOR}" -+ CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}" -+fi -+ -+# loop-AES arranges things so that /dev/loop/X can be our root device, but -+# the initrds that Linux uses don't like that. -+case ${GRUB_DEVICE} in -+ /dev/loop/*|/dev/loop[0-9]) -+ GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"` -+ ;; -+esac -+ -+# Default to disabling partition uuid support to maintian compatibility with -+# older kernels. -+GRUB_DISABLE_LINUX_PARTUUID=${GRUB_DISABLE_LINUX_PARTUUID-true} -+ -+# btrfs may reside on multiple devices. We cannot pass them as value of root= parameter -+# and mounting btrfs requires user space scanning, so force UUID in this case. -+if ( [ "x${GRUB_DEVICE_UUID}" = "x" ] && [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] ) \ -+ || ( [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \ -+ && [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ] ) \ -+ || ( ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \ -+ && ! test -e "/dev/disk/by-partuuid/${GRUB_DEVICE_PARTUUID}" ) \ -+ || ( test -e "${GRUB_DEVICE}" && uses_abstraction "${GRUB_DEVICE}" lvm ); then -+ LINUX_ROOT_DEVICE=${GRUB_DEVICE} -+elif [ "x${GRUB_DEVICE_UUID}" = "x" ] \ -+ || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ]; then -+ LINUX_ROOT_DEVICE=PARTUUID=${GRUB_DEVICE_PARTUUID} -+else -+ LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID} -+fi -+ -+case x"$GRUB_FS" in -+ xbtrfs) -+ if [ "x${SUSE_BTRFS_SNAPSHOT_BOOTING}" = "xtrue" ]; then -+ GRUB_CMDLINE_LINUX="${GRUB_CMDLINE_LINUX} \${extra_cmdline}" -+ else -+ rootsubvol="`make_system_path_relative_to_its_root /`" -+ rootsubvol="${rootsubvol#/}" -+ if [ "x${rootsubvol}" != x ]; then -+ GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}" -+ fi -+ fi;; -+ xzfs) -+ rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true` -+ bootfs="`make_system_path_relative_to_its_root / | sed -e "s,@$,,"`" -+ LINUX_ROOT_DEVICE="ZFS=${rpool}${bootfs}" -+ ;; -+esac -+ -+mktitle () -+{ -+ local title_type -+ local version -+ local OS_NAME -+ local OS_VERS -+ -+ title_type=$1 && shift -+ version=$1 && shift -+ -+ OS_NAME="$(eval $(grep ^NAME= /etc/os-release) ; echo ${NAME})" -+ OS_VERS="$(eval $(grep ^VERSION= /etc/os-release) ; echo ${VERSION})" -+ -+ case $title_type in -+ recovery) -+ title=$(printf '%s (%s) %s (recovery mode)' \ -+ "${OS_NAME}" "${version}" "${OS_VERS}") -+ ;; -+ *) -+ title=$(printf '%s (%s) %s' \ -+ "${OS_NAME}" "${version}" "${OS_VERS}") -+ ;; -+ esac -+ echo -n ${title} -+} -+ -+title_correction_code= -+ -+populate_header_warn() -+{ -+cat <&2 -+ -+ files=($(for bls in ${blsdir}/*.conf ; do -+ if ! [[ -e "${bls}" ]] ; then -+ continue -+ fi -+ bls="${bls%.conf}" -+ bls="${bls##*/}" -+ echo "${bls}" -+ done | ${kernel_sort} | tac)) || : -+ -+ for bls in "${files[@]}" ; do -+ read_config "${blsdir}/${bls}.conf" -+ -+ menu="${menu}menuentry '${title}' --class ${grub_class} ${grub_arg} --id=${bls} {\n" -+ menu="${menu}\t linux ${linux} ${options}\n" -+ if [ -n "${initrd}" ] ; then -+ menu="${menu}\t initrd ${boot_prefix}${initrd}\n" -+ fi -+ menu="${menu}}\n\n" -+ done -+ # The printf command seems to be more reliable across shells for special character (\n, \t) evaluation -+ printf "$menu" -+} -+ -+linux_entry () -+{ -+ os="$1" -+ version="$2" -+ type="$3" -+ isdebug="$4" -+ args="$5" -+ -+ if [ -z "$boot_device_id" ]; then -+ boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" -+ fi -+ -+ if [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then -+ if [ x$dirname = x/ ]; then -+ if [ -z "${prepare_root_cache}" ]; then -+ prepare_grub_to_access_device ${GRUB_DEVICE} -+ fi -+ else -+ if [ -z "${prepare_boot_cache}" ]; then -+ prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} -+ fi -+ fi -+ -+ if [ -d /sys/firmware/efi ]; then -+ bootefi_device="`${grub_probe} --target=device /boot/efi/`" -+ prepare_grub_to_access_device_with_variable boot ${bootefi_device} -+ else -+ boot_device="`${grub_probe} --target=device /boot/`" -+ prepare_grub_to_access_device_with_variable boot ${boot_device} -+ fi -+ -+ populate_header_warn -+ populate_menu -+ -+ if [ "x${GRUB_GRUBENV_UPDATE}" = "xyes" ]; then -+ blsdir="/boot/loader/entries" -+ [ -d "${blsdir}" ] && GRUB_BLS_FS="$(${grub_probe} --target=fs ${blsdir})" -+ if [ "x${GRUB_BLS_FS}" = "xbtrfs" ] || [ "x${GRUB_BLS_FS}" = "xzfs" ]; then -+ blsdir=$(make_system_path_relative_to_its_root "${blsdir}") -+ if [ "x${blsdir}" != "x/loader/entries" ] && [ "x${blsdir}" != "x/boot/loader/entries" ]; then -+ ${grub_editenv} - set blsdir="${blsdir}" -+ fi -+ fi -+ -+ ${grub_editenv} - set kernelopts="root=${linux_root_device_thisversion} ro ${args}" -+ if [ -n "${GRUB_EARLY_INITRD_LINUX_CUSTOM}" ]; then -+ ${grub_editenv} - set early_initrd="${GRUB_EARLY_INITRD_LINUX_CUSTOM}" -+ fi -+ fi -+ -+ exit 0 -+ fi -+ -+ if [ x$type != xsimple ] ; then -+ title=$(mktitle "$type" "$version") -+ if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then -+ replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')" -+ quoted="$(echo "$GRUB_ACTUAL_DEFAULT" | grub_quote)" -+ title_correction_code="${title_correction_code}if [ \"x\$default\" = '$quoted' ]; then default='$(echo "$replacement_title" | grub_quote)'; fi;" -+ fi -+ if [ x$isdebug = xdebug ]; then -+ title="$title${GRUB_LINUX_DEBUG_TITLE_POSTFIX}" -+ fi -+ echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/" -+ else -+ echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/" -+ fi -+ if [ x$type != xrecovery ] ; then -+ save_default_entry | grub_add_tab -+ fi -+ -+ # Use ELILO's generic "efifb" when it's known to be available. -+ # FIXME: We need an interface to select vesafb in case efifb can't be used. -+ if [ "x$GRUB_GFXPAYLOAD_LINUX" = x ]; then -+ echo " load_video" | sed "s/^/$submenu_indentation/" -+ if grep -qx "CONFIG_FB_EFI=y" "${config}" 2> /dev/null \ -+ && grep -qx "CONFIG_VT_HW_CONSOLE_BINDING=y" "${config}" 2> /dev/null; then -+ echo " set gfxpayload=keep" | sed "s/^/$submenu_indentation/" -+ fi -+ else -+ if [ "x$GRUB_GFXPAYLOAD_LINUX" != xtext ]; then -+ echo " load_video" | sed "s/^/$submenu_indentation/" -+ fi -+ echo " set gfxpayload=$GRUB_GFXPAYLOAD_LINUX" | sed "s/^/$submenu_indentation/" -+ fi -+ -+ echo " insmod gzio" | sed "s/^/$submenu_indentation/" -+ -+ if [ x$dirname = x/ ]; then -+ if [ -z "${prepare_root_cache}" ]; then -+ prepare_root_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE} | grub_add_tab)" -+ fi -+ printf '%s\n' "${prepare_root_cache}" | sed "s/^/$submenu_indentation/" -+ else -+ if [ -z "${prepare_boot_cache}" ]; then -+ prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | grub_add_tab)" -+ fi -+ printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/" -+ fi -+ sed "s/^/$submenu_indentation/" << EOF -+ linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} -+EOF -+ if test -n "${initrd}" ; then -+ initrd_path= -+ for i in ${initrd}; do -+ initrd_path="${initrd_path} ${rel_dirname}/${i}" -+ done -+ sed "s/^/$submenu_indentation/" << EOF -+ initrd $(echo $initrd_path) -+EOF -+ fi -+ if test -n "${fdt}" ; then -+ sed "s/^/$submenu_indentation/" << EOF -+ devicetree ${rel_dirname}/${fdt} -+EOF -+ fi -+ sed "s/^/$submenu_indentation/" << EOF -+} -+EOF -+} -+ -+machine=`uname -m` -+case "x$machine" in -+ xi?86 | xx86_64) -+ list= -+ for i in /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* ; do -+ if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi -+ done ;; -+ *) -+ list= -+ for i in /boot/vmlinuz-* /boot/vmlinux-* /vmlinuz-* /vmlinux-* /boot/kernel-* ; do -+ if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi -+ done ;; -+esac -+ -+if [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then -+ for i in /boot/ostree/*/vmlinuz-* ; do -+ if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi -+ done -+fi -+ -+case "$machine" in -+ i?86) GENKERNEL_ARCH="x86" ;; -+ mips|mips64) GENKERNEL_ARCH="mips" ;; -+ mipsel|mips64el) GENKERNEL_ARCH="mipsel" ;; -+ arm*) GENKERNEL_ARCH="arm" ;; -+ *) GENKERNEL_ARCH="$machine" ;; -+esac -+ -+prepare_boot_cache= -+prepare_root_cache= -+boot_device_id= -+title_correction_code= -+ -+# Extra indentation to add to menu entries in a submenu. We're not in a submenu -+# yet, so it's empty. In a submenu it will be equal to '\t' (one tab). -+submenu_indentation="" -+ -+is_top_level=true -+while [ "x$list" != "x" ] ; do -+ linux=`version_find_latest $list` -+ if [ "x${GRUB_ENABLE_BLSCFG}" != "xtrue" ]; then -+ gettext_printf "Found linux image: %s\n" "$linux" >&2 -+ fi -+ -+ basename=`basename $linux` -+ dirname=`dirname $linux` -+ rel_dirname=`make_system_path_relative_to_its_root $dirname` -+ version=`echo $basename | sed -e "s,^[^0-9]*-,,g"` -+ alt_version=`echo $version | sed -e "s,\.old$,,g"` -+ linux_root_device_thisversion="${LINUX_ROOT_DEVICE}" -+ -+ initrd_early= -+ for i in ${GRUB_EARLY_INITRD_LINUX_STOCK} \ -+ ${GRUB_EARLY_INITRD_LINUX_CUSTOM}; do -+ if test -e "${dirname}/${i}" ; then -+ initrd_early="${initrd_early} ${i}" -+ fi -+ done -+ -+ initrd_real= -+ for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \ -+ "initrd-${version}" "initramfs-${version}.img" \ -+ "initrd.img-${alt_version}" "initrd-${alt_version}.img" \ -+ "initrd-${alt_version}" "initramfs-${alt_version}.img" \ -+ "initramfs-genkernel-${version}" \ -+ "initramfs-genkernel-${alt_version}" \ -+ "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \ -+ "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do -+ if test -e "${dirname}/${i}" ; then -+ initrd_real="${i}" -+ break -+ fi -+ done -+ -+ initrd= -+ if test -n "${initrd_early}" || test -n "${initrd_real}"; then -+ initrd="${initrd_early} ${initrd_real}" -+ -+ initrd_display= -+ for i in ${initrd}; do -+ initrd_display="${initrd_display} ${dirname}/${i}" -+ done -+ if [ "x${GRUB_ENABLE_BLSCFG}" != "xtrue" ]; then -+ gettext_printf "Found initrd image: %s\n" "$(echo $initrd_display)" >&2 -+ fi -+ fi -+ -+ fdt= -+ for i in "dtb-${version}" "dtb-${alt_version}"; do -+ if test -f "${dirname}/${i}/${GRUB_DEFAULT_DTB}" ; then -+ fdt="${i}/${GRUB_DEFAULT_DTB}" -+ break -+ fi -+ done -+ -+ config= -+ for i in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do -+ if test -e "${i}" ; then -+ config="${i}" -+ break -+ fi -+ done -+ -+ initramfs= -+ if test -n "${config}" ; then -+ initramfs=`grep CONFIG_INITRAMFS_SOURCE= "${config}" | cut -f2 -d= | tr -d \"` -+ fi -+ -+ if test -z "${initramfs}" && test -z "${initrd_real}" ; then -+ # "UUID=" and "ZFS=" magic is parsed by initrd or initramfs. Since there's -+ # no initrd or builtin initramfs, it can't work here. -+ if [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] \ -+ || [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ]; then -+ -+ linux_root_device_thisversion=${GRUB_DEVICE} -+ else -+ linux_root_device_thisversion=PARTUUID=${GRUB_DEVICE_PARTUUID} -+ fi -+ fi -+ -+ if [ "x${GRUB_DISABLE_SUBMENU}" = "xyes" ] || [ "x${GRUB_DISABLE_SUBMENU}" = "xy" ]; then -+ GRUB_DISABLE_SUBMENU="true" -+ fi -+ -+ if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xtrue ]; then -+ linux_entry "${OS}" "${version}" simple standard \ -+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" -+ if [ "x$GRUB_LINUX_MAKE_DEBUG" = "xtrue" ]; then -+ linux_entry "${OS}" "${version}" simple debug \ -+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} ${GRUB_CMDLINE_LINUX_DEBUG}" -+ fi -+ -+ submenu_indentation="$grub_tab" -+ -+ if [ -z "$boot_device_id" ]; then -+ boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" -+ fi -+ # TRANSLATORS: %s is replaced with an OS name -+ echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {" -+ is_top_level=false -+ fi -+ -+ linux_entry "${OS}" "${version}" advanced standard \ -+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" -+ if [ "x$GRUB_LINUX_MAKE_DEBUG" = "xtrue" ]; then -+ linux_entry "${OS}" "${version}" advanced debug \ -+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} ${GRUB_CMDLINE_LINUX_DEBUG}" -+ fi -+ -+ if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then -+ linux_entry "${OS}" "${version}" recovery standard \ -+ "single ${GRUB_CMDLINE_LINUX}" -+ fi -+ -+ list=`echo $list | tr ' ' '\n' | fgrep -vx "$linux" | tr '\n' ' '` -+done -+ -+# If at least one kernel was found, then we need to -+# add a closing '}' for the submenu command. -+if [ x"$is_top_level" != xtrue ]; then -+ echo '}' -+fi -+ -+echo "$title_correction_code" --- -1.8.3.1 - diff --git a/0140-Disable-non-wordsize-allocations-on-arm.patch b/0095-Disable-non-wordsize-allocations-on-arm.patch similarity index 84% rename from 0140-Disable-non-wordsize-allocations-on-arm.patch rename to 0095-Disable-non-wordsize-allocations-on-arm.patch index 6722d9c..e28041a 100644 --- a/0140-Disable-non-wordsize-allocations-on-arm.patch +++ b/0095-Disable-non-wordsize-allocations-on-arm.patch @@ -1,7 +1,7 @@ -From 454da6e71b93313ce7bc1067ea173ffb709a64bb Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 2 Aug 2018 10:56:38 -0400 -Subject: [PATCH 140/220] Disable non-wordsize allocations on arm +Subject: [PATCH] Disable non-wordsize allocations on arm Signed-off-by: Peter Jones --- @@ -9,10 +9,10 @@ Signed-off-by: Peter Jones 1 file changed, 20 insertions(+) diff --git a/configure.ac b/configure.ac -index cf32748..9b0946c 100644 +index b27573b3de5..bb4e05ceef3 100644 --- a/configure.ac +++ b/configure.ac -@@ -1262,6 +1262,26 @@ if test "x$target_cpu" = xarm; then +@@ -1288,6 +1288,26 @@ if test "x$target_cpu" = xarm; then done ]) @@ -39,6 +39,3 @@ index cf32748..9b0946c 100644 if test x"$grub_cv_target_cc_mno_movt" != xno ; then # A trick so that clang doesn't see it on link stage TARGET_CPPFLAGS="$TARGET_CPPFLAGS $grub_cv_target_cc_mno_movt" --- -1.8.3.1 - diff --git a/0142-Prepend-prefix-when-HTTP-path-is-relative.patch b/0096-Prepend-prefix-when-HTTP-path-is-relative.patch similarity index 90% rename from 0142-Prepend-prefix-when-HTTP-path-is-relative.patch rename to 0096-Prepend-prefix-when-HTTP-path-is-relative.patch index 3c086af..d3e599d 100644 --- a/0142-Prepend-prefix-when-HTTP-path-is-relative.patch +++ b/0096-Prepend-prefix-when-HTTP-path-is-relative.patch @@ -1,23 +1,25 @@ -From d8321112ee226889aeeedff6c83a7c0f49151cc9 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Stephen Benjamin Date: Thu, 16 Aug 2018 16:58:51 -0400 -Subject: [PATCH 142/220] Prepend prefix when HTTP path is relative +Subject: [PATCH] Prepend prefix when HTTP path is relative This sets a couple of variables. With the url http://www.example.com/foo/bar : http_path: /foo/bar http_url: http://www.example.com/foo/bar Signed-off-by: Peter Jones +Signed-off-by: Stephen Benjamin +Signed-off-by: Robbie Harwood --- grub-core/kern/main.c | 10 +++++- - grub-core/net/efi/http.c | 84 ++++++++++++++++++++++++++++++++++++------------ - 2 files changed, 72 insertions(+), 22 deletions(-) + grub-core/net/efi/http.c | 82 ++++++++++++++++++++++++++++++++++++------------ + 2 files changed, 71 insertions(+), 21 deletions(-) diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c -index da47b18..dcf4872 100644 +index d1de9fa6873..1c540fc8c26 100644 --- a/grub-core/kern/main.c +++ b/grub-core/kern/main.c -@@ -130,11 +130,19 @@ grub_set_prefix_and_root (void) +@@ -131,11 +131,19 @@ grub_set_prefix_and_root (void) if (fwdevice && fwpath) { char *fw_path; @@ -39,7 +41,7 @@ index da47b18..dcf4872 100644 } } diff --git a/grub-core/net/efi/http.c b/grub-core/net/efi/http.c -index 243acba..de351b2 100644 +index 243acbaa35b..de351b2cd03 100644 --- a/grub-core/net/efi/http.c +++ b/grub-core/net/efi/http.c @@ -9,10 +9,52 @@ @@ -102,7 +104,9 @@ index 243acba..de351b2 100644 - char *root_url; - grub_efi_ipv6_address_t address; - const char *rest; -- ++ char *file_name = NULL; ++ const char *http_path; + - if (grub_efi_string_to_ip6_address (file->device->net->server, &address, &rest) && *rest == 0) - root_url = grub_xasprintf ("%s://[%s]", type ? "https" : "http", file->device->net->server); - else @@ -115,9 +119,6 @@ index 243acba..de351b2 100644 - } - else - { -+ char *file_name = NULL; -+ const char *http_path; -+ + /* If path is relative, prepend http_path */ + http_path = grub_env_get ("http_path"); + if (http_path && file->device->net->name[0] != '/') { @@ -149,6 +150,3 @@ index 243acba..de351b2 100644 buf = grub_malloc (size); efihttp_read (dev, buf, size); --- -1.8.3.1 - diff --git a/0097-Make-grub_error-more-verbose.patch b/0097-Make-grub_error-more-verbose.patch new file mode 100644 index 0000000..2492e9f --- /dev/null +++ b/0097-Make-grub_error-more-verbose.patch @@ -0,0 +1,61 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Mon, 27 Aug 2018 13:14:06 -0400 +Subject: [PATCH] Make grub_error() more verbose + +Signed-off-by: Peter Jones +--- + grub-core/kern/err.c | 13 +++++++++++-- + include/grub/err.h | 8 ++++++-- + 2 files changed, 17 insertions(+), 4 deletions(-) + +diff --git a/grub-core/kern/err.c b/grub-core/kern/err.c +index 53c734de70e..aebfe0cf839 100644 +--- a/grub-core/kern/err.c ++++ b/grub-core/kern/err.c +@@ -33,15 +33,24 @@ static struct grub_error_saved grub_error_stack_items[GRUB_ERROR_STACK_SIZE]; + static int grub_error_stack_pos; + static int grub_error_stack_assert; + ++#ifdef grub_error ++#undef grub_error ++#endif ++ + grub_err_t +-grub_error (grub_err_t n, const char *fmt, ...) ++grub_error (grub_err_t n, const char *file, const int line, const char *fmt, ...) + { + va_list ap; ++ int m; + + grub_errno = n; + ++ m = grub_snprintf (grub_errmsg, sizeof (grub_errmsg), "%s:%d:", file, line); ++ if (m < 0) ++ m = 0; ++ + va_start (ap, fmt); +- grub_vsnprintf (grub_errmsg, sizeof (grub_errmsg), _(fmt), ap); ++ grub_vsnprintf (grub_errmsg + m, sizeof (grub_errmsg) - m, _(fmt), ap); + va_end (ap); + + return n; +diff --git a/include/grub/err.h b/include/grub/err.h +index b08d5d0de4c..c0f90ef07c8 100644 +--- a/include/grub/err.h ++++ b/include/grub/err.h +@@ -85,8 +85,12 @@ struct grub_error_saved + extern grub_err_t EXPORT_VAR(grub_errno); + extern char EXPORT_VAR(grub_errmsg)[GRUB_MAX_ERRMSG]; + +-grub_err_t EXPORT_FUNC(grub_error) (grub_err_t n, const char *fmt, ...) +- __attribute__ ((format (GNU_PRINTF, 2, 3))); ++grub_err_t EXPORT_FUNC(grub_error) (grub_err_t n, const char *file, const int line, const char *fmt, ...) ++ __attribute__ ((format (GNU_PRINTF, 4, 5))); ++ ++#define grub_error(n, fmt, ...) grub_error (n, __FILE__, __LINE__, fmt, ##__VA_ARGS__) ++ ++ + void EXPORT_FUNC(grub_fatal) (const char *fmt, ...) __attribute__ ((noreturn)); + void EXPORT_FUNC(grub_error_push) (void); + int EXPORT_FUNC(grub_error_pop) (void); diff --git a/0145-Make-reset-an-alias-for-the-reboot-command.patch b/0098-Make-reset-an-alias-for-the-reboot-command.patch similarity index 86% rename from 0145-Make-reset-an-alias-for-the-reboot-command.patch rename to 0098-Make-reset-an-alias-for-the-reboot-command.patch index 6af5d06..c86acf1 100644 --- a/0145-Make-reset-an-alias-for-the-reboot-command.patch +++ b/0098-Make-reset-an-alias-for-the-reboot-command.patch @@ -1,7 +1,7 @@ -From 0ad7fa987ac696ec412e3247e548a1e05e269537 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 31 Aug 2018 16:42:03 -0400 -Subject: [PATCH 145/220] Make "reset" an alias for the "reboot" command. +Subject: [PATCH] Make "reset" an alias for the "reboot" command. I'm really tired of half the tools I get to use having one and the other half having the other. @@ -12,7 +12,7 @@ Signed-off-by: Peter Jones 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/grub-core/commands/reboot.c b/grub-core/commands/reboot.c -index 46d364c..f5cc228 100644 +index 46d364c99a9..f5cc2283636 100644 --- a/grub-core/commands/reboot.c +++ b/grub-core/commands/reboot.c @@ -32,15 +32,18 @@ grub_cmd_reboot (grub_command_t cmd __attribute__ ((unused)), @@ -38,6 +38,3 @@ index 46d364c..f5cc228 100644 + grub_unregister_command (reboot_cmd); + grub_unregister_command (reset_cmd); } --- -1.8.3.1 - diff --git a/0147-Add-a-version-command.patch b/0099-Add-a-version-command.patch similarity index 91% rename from 0147-Add-a-version-command.patch rename to 0099-Add-a-version-command.patch index 2b4ec61..bf3b4b8 100644 --- a/0147-Add-a-version-command.patch +++ b/0099-Add-a-version-command.patch @@ -1,7 +1,7 @@ -From 568f0094df7aeef7ec558142139c7e93a4d019f3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 11 Sep 2018 14:20:37 -0400 -Subject: [PATCH 147/220] Add a "version" command. +Subject: [PATCH] Add a "version" command. This adds a command that shows you info about grub's version, the grub target platform, the compiler version, and if you built with @@ -9,30 +9,18 @@ platform, the compiler version, and if you built with Signed-off-by: Peter Jones --- - config.h.in | 1 + configure.ac | 13 ++++++++++ grub-core/Makefile.core.def | 5 ++++ grub-core/commands/version.c | 56 ++++++++++++++++++++++++++++++++++++++++++++ + config.h.in | 1 + 4 files changed, 75 insertions(+) create mode 100644 grub-core/commands/version.c -diff --git a/config.h.in b/config.h.in -index 9e8f991..c7e316f 100644 ---- a/config.h.in -+++ b/config.h.in -@@ -59,6 +59,7 @@ - - #define GRUB_TARGET_CPU "@GRUB_TARGET_CPU@" - #define GRUB_PLATFORM "@GRUB_PLATFORM@" -+#define GRUB_RPM_VERSION "@GRUB_RPM_VERSION@" - - #define RE_ENABLE_I18N 1 - diff --git a/configure.ac b/configure.ac -index 9b0946c..bca7c28 100644 +index bb4e05ceef3..59ccda24475 100644 --- a/configure.ac +++ b/configure.ac -@@ -303,6 +303,19 @@ AC_SUBST(target_cpu) +@@ -312,6 +312,19 @@ AC_SUBST(target_cpu) AC_SUBST(platform) # Define default variables @@ -53,24 +41,24 @@ index 9b0946c..bca7c28 100644 have_with_bootdir=n AC_ARG_WITH([bootdir], diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 556adca..8bb1daf 100644 +index 84a3d89de9a..498ca11762a 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def -@@ -577,6 +577,11 @@ image = { +@@ -579,6 +579,11 @@ image = { + enable = mips_loongson; }; - module = { ++module = { + name = version; + common = commands/version.c; +}; + -+module = { + module = { name = disk; common = lib/disk.c; - extra_dist = kern/disk_common.c; diff --git a/grub-core/commands/version.c b/grub-core/commands/version.c new file mode 100644 -index 0000000..f0966a5 +index 00000000000..f0966a518f7 --- /dev/null +++ b/grub-core/commands/version.c @@ -0,0 +1,56 @@ @@ -130,6 +118,15 @@ index 0000000..f0966a5 +{ + grub_unregister_command (cmd); +} --- -1.8.3.1 - +diff --git a/config.h.in b/config.h.in +index 9e8f9911b18..c7e316f0f1f 100644 +--- a/config.h.in ++++ b/config.h.in +@@ -59,6 +59,7 @@ + + #define GRUB_TARGET_CPU "@GRUB_TARGET_CPU@" + #define GRUB_PLATFORM "@GRUB_PLATFORM@" ++#define GRUB_RPM_VERSION "@GRUB_RPM_VERSION@" + + #define RE_ENABLE_I18N 1 + diff --git a/0099-Add-grub_debug_enabled.patch b/0099-Add-grub_debug_enabled.patch deleted file mode 100644 index 1cd52b2..0000000 --- a/0099-Add-grub_debug_enabled.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 211d314fd314f2cced175de112ddc418ab763d23 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Thu, 30 Nov 2017 15:11:39 -0500 -Subject: [PATCH 099/220] Add grub_debug_enabled() - ---- - grub-core/kern/misc.c | 21 ++++++++++++++++----- - include/grub/misc.h | 1 + - 2 files changed, 17 insertions(+), 5 deletions(-) - -diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index 636f97e..e758ab3 100644 ---- a/grub-core/kern/misc.c -+++ b/grub-core/kern/misc.c -@@ -159,17 +159,28 @@ int grub_err_printf (const char *fmt, ...) - __attribute__ ((alias("grub_printf"))); - #endif - -+int -+grub_debug_enabled (const char * condition) -+{ -+ const char *debug; -+ -+ debug = grub_env_get ("debug"); -+ if (!debug) -+ return 0; -+ -+ if (grub_strword (debug, "all") || grub_strword (debug, condition)) -+ return 1; -+ -+ return 0; -+} -+ - void - grub_real_dprintf (const char *file, const int line, const char *condition, - const char *fmt, ...) - { - va_list args; -- const char *debug = grub_env_get ("debug"); -- -- if (! debug) -- return; - -- if (grub_strword (debug, "all") || grub_strword (debug, condition)) -+ if (grub_debug_enabled (condition)) - { - grub_printf ("%s:%d: ", file, line); - va_start (args, fmt); -diff --git a/include/grub/misc.h b/include/grub/misc.h -index b433922..4a4f485 100644 ---- a/include/grub/misc.h -+++ b/include/grub/misc.h -@@ -367,6 +367,7 @@ grub_puts (const char *s) - } - - int EXPORT_FUNC(grub_puts_) (const char *s); -+int EXPORT_FUNC(grub_debug_enabled) (const char *condition); - void EXPORT_FUNC(grub_real_dprintf) (const char *file, - const int line, - const char *condition, --- -1.8.3.1 - diff --git a/0148-Add-more-dprintf-and-nerf-dprintf-in-script.c.patch b/0100-Add-more-dprintf-and-nerf-dprintf-in-script.c.patch similarity index 83% rename from 0148-Add-more-dprintf-and-nerf-dprintf-in-script.c.patch rename to 0100-Add-more-dprintf-and-nerf-dprintf-in-script.c.patch index 04d9b79..9afb315 100644 --- a/0148-Add-more-dprintf-and-nerf-dprintf-in-script.c.patch +++ b/0100-Add-more-dprintf-and-nerf-dprintf-in-script.c.patch @@ -1,7 +1,7 @@ -From 088dae49c71c95b0c354afabad3263aca9a6d8bf Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 11 Sep 2018 15:58:29 -0400 -Subject: [PATCH 148/220] Add more dprintf, and nerf dprintf in script.c +Subject: [PATCH] Add more dprintf, and nerf dprintf in script.c Signed-off-by: Peter Jones --- @@ -12,7 +12,7 @@ Signed-off-by: Peter Jones 4 files changed, 10 insertions(+) diff --git a/grub-core/disk/diskfilter.c b/grub-core/disk/diskfilter.c -index c3b578a..1a3eb6b 100644 +index 0320115662f..7cdffe3ebd5 100644 --- a/grub-core/disk/diskfilter.c +++ b/grub-core/disk/diskfilter.c @@ -188,6 +188,8 @@ scan_disk (const char *name, int accept_diskfilter) @@ -24,16 +24,16 @@ index c3b578a..1a3eb6b 100644 if (!accept_diskfilter && is_valid_diskfilter_name (name)) return 0; -@@ -1211,6 +1213,7 @@ insert_array (grub_disk_t disk, const struct grub_diskfilter_pv_id *id, +@@ -1212,6 +1214,7 @@ insert_array (grub_disk_t disk, const struct grub_diskfilter_pv_id *id, the same. */ - if (pv->disk && grub_disk_get_size (disk) >= pv->part_size) + if (pv->disk && grub_disk_native_sectors (disk) >= pv->part_size) return GRUB_ERR_NONE; + grub_dprintf ("diskfilter", "checking %s\n", disk->name); pv->disk = grub_disk_open (disk->name); if (!pv->disk) return grub_errno; diff --git a/grub-core/disk/efi/efidisk.c b/grub-core/disk/efi/efidisk.c -index 9e20af7..54c227b 100644 +index f077b5f5535..fe8ba6e6c93 100644 --- a/grub-core/disk/efi/efidisk.c +++ b/grub-core/disk/efi/efidisk.c @@ -855,6 +855,7 @@ grub_efidisk_get_device_name (grub_efi_handle_t *handle) @@ -45,7 +45,7 @@ index 9e20af7..54c227b 100644 grub_free (dup_dp); diff --git a/grub-core/kern/device.c b/grub-core/kern/device.c -index 73b8ecc..f58b58c 100644 +index 73b8ecc0c09..f58b58c89d5 100644 --- a/grub-core/kern/device.c +++ b/grub-core/kern/device.c @@ -34,6 +34,7 @@ grub_device_open (const char *name) @@ -57,7 +57,7 @@ index 73b8ecc..f58b58c 100644 { name = grub_env_get ("root"); diff --git a/grub-core/script/script.c b/grub-core/script/script.c -index ec4d433..844e834 100644 +index ec4d4337c66..844e8343ca7 100644 --- a/grub-core/script/script.c +++ b/grub-core/script/script.c @@ -22,6 +22,11 @@ @@ -72,6 +72,3 @@ index ec4d433..844e834 100644 /* It is not possible to deallocate the memory when a syntax error was found. Because of that it is required to keep track of all memory allocations. The memory is freed in case of an error, or assigned --- -1.8.3.1 - diff --git a/0149-arm-arm64-loader-Better-memory-allocation-and-error-.patch b/0101-arm-arm64-loader-Better-memory-allocation-and-error-.patch similarity index 88% rename from 0149-arm-arm64-loader-Better-memory-allocation-and-error-.patch rename to 0101-arm-arm64-loader-Better-memory-allocation-and-error-.patch index 740ea2e..1fdc552 100644 --- a/0149-arm-arm64-loader-Better-memory-allocation-and-error-.patch +++ b/0101-arm-arm64-loader-Better-memory-allocation-and-error-.patch @@ -1,7 +1,7 @@ -From 5df842469c4b53ecabeaad3edca5f31355507cee Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 11 Jul 2019 14:38:57 +0200 -Subject: [PATCH 149/220] arm/arm64 loader: Better memory allocation and error +Subject: [PATCH] arm/arm64 loader: Better memory allocation and error messages. On mustang, our memory map looks like: @@ -66,12 +66,12 @@ per-platform constraints on its given address are maintained. Signed-off-by: Peter Jones --- - grub-core/kern/efi/mm.c | 33 +++++++++++++----- - grub-core/loader/arm64/linux.c | 78 ++++++++++++++++++++++++++++++++---------- - 2 files changed, 84 insertions(+), 27 deletions(-) + grub-core/kern/efi/mm.c | 33 +++++++++++++++----- + grub-core/loader/arm64/linux.c | 68 +++++++++++++++++++++++++++++++----------- + 2 files changed, 76 insertions(+), 25 deletions(-) diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c -index 15595a4..1b14fa0 100644 +index f6aef0ef649..85ad4b4494c 100644 --- a/grub-core/kern/efi/mm.c +++ b/grub-core/kern/efi/mm.c @@ -154,6 +154,7 @@ grub_efi_allocate_pages_real (grub_efi_physical_address_t address, @@ -82,7 +82,7 @@ index 15595a4..1b14fa0 100644 /* Limit the memory access to less than 4GB for 32-bit platforms. */ if (address > GRUB_EFI_MAX_USABLE_ADDRESS) -@@ -165,19 +166,22 @@ grub_efi_allocate_pages_real (grub_efi_physical_address_t address, +@@ -170,19 +171,22 @@ grub_efi_allocate_pages_real (grub_efi_physical_address_t address, } b = grub_efi_system_table->boot_services; @@ -109,7 +109,7 @@ index 15595a4..1b14fa0 100644 grub_efi_free_pages (0, pages); if (status != GRUB_EFI_SUCCESS) { -@@ -186,9 +190,9 @@ grub_efi_allocate_pages_real (grub_efi_physical_address_t address, +@@ -191,9 +195,9 @@ grub_efi_allocate_pages_real (grub_efi_physical_address_t address, } } @@ -121,7 +121,7 @@ index 15595a4..1b14fa0 100644 } void * -@@ -699,8 +703,21 @@ grub_efi_get_ram_base(grub_addr_t *base_addr) +@@ -713,8 +717,21 @@ grub_efi_get_ram_base(grub_addr_t *base_addr) for (desc = memory_map, *base_addr = GRUB_EFI_MAX_USABLE_ADDRESS; (grub_addr_t) desc < ((grub_addr_t) memory_map + memory_map_size); desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size)) @@ -146,10 +146,10 @@ index 15595a4..1b14fa0 100644 grub_free(memory_map); diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index 4c0a09c..8791b35 100644 +index 04994d5c67d..70a0075ec5e 100644 --- a/grub-core/loader/arm64/linux.c +++ b/grub-core/loader/arm64/linux.c -@@ -71,13 +71,15 @@ finalize_params_linux (void) +@@ -71,20 +71,25 @@ finalize_params_linux (void) { grub_efi_loaded_image_t *loaded_image = NULL; int node, retval, len; @@ -168,26 +168,7 @@ index 4c0a09c..8791b35 100644 node = grub_fdt_find_subnode (fdt, 0, "chosen"); if (node < 0) -@@ -88,17 +90,26 @@ finalize_params_linux (void) - */ - retval = grub_fdt_set_prop32(fdt, 0, "#address-cells", 2); - if (retval) -- goto failure; -+ { -+ err = grub_error(retval, "Could not find #address-cells"); -+ goto failure; -+ } - - retval = grub_fdt_set_prop32(fdt, 0, "#size-cells", 2); - if (retval) -- goto failure; -+ { -+ err = grub_error(retval, "Could not find #size-cells"); -+ goto failure; -+ } - - node = grub_fdt_add_subnode (fdt, 0, "chosen"); - } + node = grub_fdt_add_subnode (fdt, 0, "chosen"); if (node < 1) - goto failure; @@ -198,7 +179,7 @@ index 4c0a09c..8791b35 100644 /* Set initrd info */ if (initrd_start && initrd_end > initrd_start) -@@ -109,15 +120,26 @@ finalize_params_linux (void) +@@ -95,15 +100,26 @@ finalize_params_linux (void) retval = grub_fdt_set_prop64 (fdt, node, "linux,initrd-start", initrd_start); if (retval) @@ -229,7 +210,7 @@ index 4c0a09c..8791b35 100644 grub_dprintf ("linux", "Installed/updated FDT configuration table @ %p\n", fdt); -@@ -125,14 +147,20 @@ finalize_params_linux (void) +@@ -111,14 +127,20 @@ finalize_params_linux (void) /* Convert command line to UCS-2 */ loaded_image = grub_efi_get_loaded_image (grub_efi_image_handle); if (!loaded_image) @@ -252,7 +233,7 @@ index 4c0a09c..8791b35 100644 loaded_image->load_options_size = 2 * grub_utf8_to_utf16 (loaded_image->load_options, len, -@@ -142,7 +170,7 @@ finalize_params_linux (void) +@@ -128,7 +150,7 @@ finalize_params_linux (void) failure: grub_fdt_unload(); @@ -261,7 +242,7 @@ index 4c0a09c..8791b35 100644 } static void -@@ -226,16 +254,28 @@ grub_linux_unload (void) +@@ -212,16 +234,28 @@ grub_linux_unload (void) static void * allocate_initrd_mem (int initrd_pages) { @@ -269,16 +250,16 @@ index 4c0a09c..8791b35 100644 + grub_addr_t max_addr = 0; + grub_err_t err; + void *ret; -+ + +- if (grub_efi_get_ram_base (&max_addr) != GRUB_ERR_NONE) +- return NULL; + err = grub_efi_get_ram_base (&max_addr); + if (err != GRUB_ERR_NONE) + { + grub_error (err, "grub_efi_get_ram_base() failed"); + return NULL; + } - -- if (grub_efi_get_ram_base (&max_addr) != GRUB_ERR_NONE) -- return NULL; ++ + grub_dprintf ("linux", "max_addr: 0x%016lx, INITRD_MAX_ADDRESS_OFFSET: 0x%016llx\n", + max_addr, INITRD_MAX_ADDRESS_OFFSET); @@ -296,6 +277,3 @@ index 4c0a09c..8791b35 100644 } static grub_err_t --- -1.8.3.1 - diff --git a/0150-Try-to-pick-better-locations-for-kernel-and-initrd.patch b/0102-Try-to-pick-better-locations-for-kernel-and-initrd.patch similarity index 85% rename from 0150-Try-to-pick-better-locations-for-kernel-and-initrd.patch rename to 0102-Try-to-pick-better-locations-for-kernel-and-initrd.patch index 138a525..06329b9 100644 --- a/0150-Try-to-pick-better-locations-for-kernel-and-initrd.patch +++ b/0102-Try-to-pick-better-locations-for-kernel-and-initrd.patch @@ -1,7 +1,7 @@ -From f3626af8bf79ed7498b723f46c54312b69a429b8 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 11 Jul 2019 17:17:02 +0200 -Subject: [PATCH 150/220] Try to pick better locations for kernel and initrd +Subject: [PATCH] Try to pick better locations for kernel and initrd - Don't limit allocations on 64-bit platforms to < 0x[37f]fffffff if we're using the "large" code model ; use __UINTPTR_MAX__. @@ -23,6 +23,9 @@ Additionally, we now try to locate kernel+initrd+cmdline+etc below we try a higher address. Signed-off-by: Peter Jones +[david.abdurachmanov: fix macro for riscv64] +Signed-off-by: David Abdurachmanov +Signed-off-by: Robbie Harwood --- grub-core/kern/efi/mm.c | 8 ++++---- grub-core/loader/i386/efi/linux.c | 24 +++++++++++++++++------- @@ -30,11 +33,12 @@ Signed-off-by: Peter Jones include/grub/arm64/efi/memory.h | 1 + include/grub/i386/efi/memory.h | 1 + include/grub/ia64/efi/memory.h | 1 + + include/grub/riscv64/efi/memory.h | 1 + include/grub/x86_64/efi/memory.h | 4 +++- - 7 files changed, 28 insertions(+), 12 deletions(-) + 8 files changed, 29 insertions(+), 12 deletions(-) diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c -index 1b14fa0..d70e5b4 100644 +index 85ad4b4494c..e84961d078c 100644 --- a/grub-core/kern/efi/mm.c +++ b/grub-core/kern/efi/mm.c @@ -122,7 +122,7 @@ grub_efi_allocate_pages_max (grub_efi_physical_address_t max, @@ -46,7 +50,7 @@ index 1b14fa0..d70e5b4 100644 return 0; b = grub_efi_system_table->boot_services; -@@ -466,7 +466,7 @@ filter_memory_map (grub_efi_memory_descriptor_t *memory_map, +@@ -480,7 +480,7 @@ filter_memory_map (grub_efi_memory_descriptor_t *memory_map, { if (desc->type == GRUB_EFI_CONVENTIONAL_MEMORY #if 1 @@ -55,7 +59,7 @@ index 1b14fa0..d70e5b4 100644 #endif && desc->physical_start + PAGES_TO_BYTES (desc->num_pages) > 0x100000 && desc->num_pages != 0) -@@ -484,9 +484,9 @@ filter_memory_map (grub_efi_memory_descriptor_t *memory_map, +@@ -498,9 +498,9 @@ filter_memory_map (grub_efi_memory_descriptor_t *memory_map, #if 1 if (BYTES_TO_PAGES (filtered_desc->physical_start) + filtered_desc->num_pages @@ -68,7 +72,7 @@ index 1b14fa0..d70e5b4 100644 #endif diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 3017d0f..33e981e 100644 +index 3017d0f3e52..33e981e76e7 100644 --- a/grub-core/loader/i386/efi/linux.c +++ b/grub-core/loader/i386/efi/linux.c @@ -27,6 +27,7 @@ @@ -134,7 +138,7 @@ index 3017d0f..33e981e 100644 { grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("can't allocate kernel")); diff --git a/include/grub/arm/efi/memory.h b/include/grub/arm/efi/memory.h -index 2c64918..a4c2ec8 100644 +index 2c64918e3f7..a4c2ec83502 100644 --- a/include/grub/arm/efi/memory.h +++ b/include/grub/arm/efi/memory.h @@ -2,5 +2,6 @@ @@ -145,7 +149,7 @@ index 2c64918..a4c2ec8 100644 #endif /* ! GRUB_MEMORY_CPU_HEADER */ diff --git a/include/grub/arm64/efi/memory.h b/include/grub/arm64/efi/memory.h -index c6cb324..acb61dc 100644 +index c6cb3241714..acb61dca44b 100644 --- a/include/grub/arm64/efi/memory.h +++ b/include/grub/arm64/efi/memory.h @@ -2,5 +2,6 @@ @@ -156,7 +160,7 @@ index c6cb324..acb61dc 100644 #endif /* ! GRUB_MEMORY_CPU_HEADER */ diff --git a/include/grub/i386/efi/memory.h b/include/grub/i386/efi/memory.h -index 2c64918..a4c2ec8 100644 +index 2c64918e3f7..a4c2ec83502 100644 --- a/include/grub/i386/efi/memory.h +++ b/include/grub/i386/efi/memory.h @@ -2,5 +2,6 @@ @@ -167,7 +171,7 @@ index 2c64918..a4c2ec8 100644 #endif /* ! GRUB_MEMORY_CPU_HEADER */ diff --git a/include/grub/ia64/efi/memory.h b/include/grub/ia64/efi/memory.h -index 2c64918..a4c2ec8 100644 +index 2c64918e3f7..a4c2ec83502 100644 --- a/include/grub/ia64/efi/memory.h +++ b/include/grub/ia64/efi/memory.h @@ -2,5 +2,6 @@ @@ -176,9 +180,20 @@ index 2c64918..a4c2ec8 100644 #define GRUB_EFI_MAX_USABLE_ADDRESS 0xffffffff +#define GRUB_EFI_MAX_ALLOCATION_ADDRESS GRUB_EFI_MAX_USABLE_ADDRESS + #endif /* ! GRUB_MEMORY_CPU_HEADER */ +diff --git a/include/grub/riscv64/efi/memory.h b/include/grub/riscv64/efi/memory.h +index c6cb3241714..acb61dca44b 100644 +--- a/include/grub/riscv64/efi/memory.h ++++ b/include/grub/riscv64/efi/memory.h +@@ -2,5 +2,6 @@ + #include + + #define GRUB_EFI_MAX_USABLE_ADDRESS 0xffffffffffffULL ++#define GRUB_EFI_MAX_ALLOCATION_ADDRESS GRUB_EFI_MAX_USABLE_ADDRESS + #endif /* ! GRUB_MEMORY_CPU_HEADER */ diff --git a/include/grub/x86_64/efi/memory.h b/include/grub/x86_64/efi/memory.h -index 46e9145..e81cfb3 100644 +index 46e9145a308..e81cfb32213 100644 --- a/include/grub/x86_64/efi/memory.h +++ b/include/grub/x86_64/efi/memory.h @@ -2,9 +2,11 @@ @@ -194,6 +209,3 @@ index 46e9145..e81cfb3 100644 #endif #endif /* ! GRUB_MEMORY_CPU_HEADER */ --- -1.8.3.1 - diff --git a/0151-Attempt-to-fix-up-all-the-places-Wsign-compare-error.patch b/0103-Attempt-to-fix-up-all-the-places-Wsign-compare-error.patch similarity index 89% rename from 0151-Attempt-to-fix-up-all-the-places-Wsign-compare-error.patch rename to 0103-Attempt-to-fix-up-all-the-places-Wsign-compare-error.patch index 7c2c13f..c2f2a59 100644 --- a/0151-Attempt-to-fix-up-all-the-places-Wsign-compare-error.patch +++ b/0103-Attempt-to-fix-up-all-the-places-Wsign-compare-error.patch @@ -1,13 +1,11 @@ -From 902fb795c21608b8dd34553fe3c915cd8866b0c6 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 11 Jul 2019 18:03:25 +0200 -Subject: [PATCH 151/220] Attempt to fix up all the places -Wsign-compare=error - finds. +Subject: [PATCH] Attempt to fix up all the places -Wsign-compare=error finds. Signed-off-by: Peter Jones --- grub-core/kern/emu/misc.c | 2 +- - .../gnulib-patches/fix-sign-compare-errors.patch | 161 +++++++++++++++++++++ grub-core/lib/reed_solomon.c | 4 +- grub-core/osdep/linux/blocklist.c | 2 +- grub-core/osdep/linux/getroot.c | 2 +- @@ -18,14 +16,16 @@ Signed-off-by: Peter Jones util/grub-probe.c | 2 +- util/grub-rpm-sort.c | 2 +- util/setup.c | 2 +- - 12 files changed, 179 insertions(+), 17 deletions(-) + bootstrap.conf | 3 +- + .../gnulib-patches/fix-sign-compare-errors.patch | 161 +++++++++++++++++++++ + 13 files changed, 181 insertions(+), 18 deletions(-) create mode 100644 grub-core/lib/gnulib-patches/fix-sign-compare-errors.patch diff --git a/grub-core/kern/emu/misc.c b/grub-core/kern/emu/misc.c -index 245b69c..7a8d9e6 100644 +index eeea092752d..f08a1bb8415 100644 --- a/grub-core/kern/emu/misc.c +++ b/grub-core/kern/emu/misc.c -@@ -177,7 +177,7 @@ grub_util_get_image_size (const char *path) +@@ -189,7 +189,7 @@ grub_util_get_image_size (const char *path) sz = ftello (f); if (sz < 0) grub_util_error (_("cannot open `%s': %s"), path, strerror (errno)); @@ -34,9 +34,203 @@ index 245b69c..7a8d9e6 100644 grub_util_error (_("file `%s' is too big"), path); ret = (size_t) sz; +diff --git a/grub-core/lib/reed_solomon.c b/grub-core/lib/reed_solomon.c +index 467305b46ab..79037c093f7 100644 +--- a/grub-core/lib/reed_solomon.c ++++ b/grub-core/lib/reed_solomon.c +@@ -157,7 +157,7 @@ static void + rs_encode (gf_single_t *data, grub_size_t s, grub_size_t rs) + { + gf_single_t *rs_polynomial; +- int i, j; ++ unsigned int i, j; + gf_single_t *m; + m = xcalloc (s + rs, sizeof (gf_single_t)); + grub_memcpy (m, data, s * sizeof (gf_single_t)); +@@ -324,7 +324,7 @@ static void + encode_block (gf_single_t *ptr, grub_size_t s, + gf_single_t *rptr, grub_size_t rs) + { +- int i, j; ++ unsigned int i, j; + for (i = 0; i < SECTOR_SIZE; i++) + { + grub_size_t ds = (s + SECTOR_SIZE - 1 - i) / SECTOR_SIZE; +diff --git a/grub-core/osdep/linux/blocklist.c b/grub-core/osdep/linux/blocklist.c +index c77d6085ccb..42a315031ff 100644 +--- a/grub-core/osdep/linux/blocklist.c ++++ b/grub-core/osdep/linux/blocklist.c +@@ -109,7 +109,7 @@ grub_install_get_blocklist (grub_device_t root_dev, + else + { + struct fiemap *fie2; +- int i; ++ unsigned int i; + fie2 = xmalloc (sizeof (*fie2) + + fie1.fm_mapped_extents + * sizeof (fie1.fm_extents[1])); +diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c +index 28790307e00..9f730b35189 100644 +--- a/grub-core/osdep/linux/getroot.c ++++ b/grub-core/osdep/linux/getroot.c +@@ -236,7 +236,7 @@ grub_find_root_devices_from_btrfs (const char *dir) + { + int fd; + struct btrfs_ioctl_fs_info_args fsi; +- int i, j = 0; ++ unsigned int i, j = 0; + char **ret; + + fd = open (dir, 0); +diff --git a/grub-core/osdep/linux/hostdisk.c b/grub-core/osdep/linux/hostdisk.c +index da62f924e35..7bc99ac1c1d 100644 +--- a/grub-core/osdep/linux/hostdisk.c ++++ b/grub-core/osdep/linux/hostdisk.c +@@ -83,7 +83,7 @@ grub_util_get_fd_size_os (grub_util_fd_t fd, const char *name, unsigned *log_sec + if (sector_size & (sector_size - 1) || !sector_size) + return -1; + for (log_sector_size = 0; +- (1 << log_sector_size) < sector_size; ++ (1U << log_sector_size) < sector_size; + log_sector_size++); + + if (log_secsize) +diff --git a/util/grub-fstest.c b/util/grub-fstest.c +index 83865642009..bfcef852d83 100644 +--- a/util/grub-fstest.c ++++ b/util/grub-fstest.c +@@ -323,7 +323,7 @@ cmd_cmp (char *src, char *dest) + read_file (src, cmp_hook, ff); + + { +- grub_uint64_t pre; ++ long long pre; + pre = ftell (ff); + fseek (ff, 0, SEEK_END); + if (pre != ftell (ff)) +diff --git a/util/grub-menulst2cfg.c b/util/grub-menulst2cfg.c +index a39f8693947..358d604210b 100644 +--- a/util/grub-menulst2cfg.c ++++ b/util/grub-menulst2cfg.c +@@ -34,7 +34,7 @@ main (int argc, char **argv) + char *buf = NULL; + size_t bufsize = 0; + char *suffix = xstrdup (""); +- int suffixlen = 0; ++ size_t suffixlen = 0; + const char *out_fname = 0; + + grub_util_host_init (&argc, &argv); +diff --git a/util/grub-mkfont.c b/util/grub-mkfont.c +index 0fe45a6103d..3e09240b99f 100644 +--- a/util/grub-mkfont.c ++++ b/util/grub-mkfont.c +@@ -138,7 +138,8 @@ add_glyph (struct grub_font_info *font_info, FT_UInt glyph_idx, FT_Face face, + int width, height; + int cuttop, cutbottom, cutleft, cutright; + grub_uint8_t *data; +- int mask, i, j, bitmap_size; ++ int mask, i, bitmap_size; ++ unsigned int j; + FT_GlyphSlot glyph; + int flag = FT_LOAD_RENDER | FT_LOAD_MONOCHROME; + FT_Error err; +@@ -183,7 +184,7 @@ add_glyph (struct grub_font_info *font_info, FT_UInt glyph_idx, FT_Face face, + cuttop = cutbottom = cutleft = cutright = 0; + else + { +- for (cuttop = 0; cuttop < glyph->bitmap.rows; cuttop++) ++ for (cuttop = 0; cuttop < (long)glyph->bitmap.rows; cuttop++) + { + for (j = 0; j < glyph->bitmap.width; j++) + if (glyph->bitmap.buffer[j / 8 + cuttop * glyph->bitmap.pitch] +@@ -203,10 +204,10 @@ add_glyph (struct grub_font_info *font_info, FT_UInt glyph_idx, FT_Face face, + break; + } + cutbottom = glyph->bitmap.rows - 1 - cutbottom; +- if (cutbottom + cuttop >= glyph->bitmap.rows) ++ if (cutbottom + cuttop >= (long)glyph->bitmap.rows) + cutbottom = 0; + +- for (cutleft = 0; cutleft < glyph->bitmap.width; cutleft++) ++ for (cutleft = 0; cutleft < (long)glyph->bitmap.width; cutleft++) + { + for (j = 0; j < glyph->bitmap.rows; j++) + if (glyph->bitmap.buffer[cutleft / 8 + j * glyph->bitmap.pitch] +@@ -225,7 +226,7 @@ add_glyph (struct grub_font_info *font_info, FT_UInt glyph_idx, FT_Face face, + break; + } + cutright = glyph->bitmap.width - 1 - cutright; +- if (cutright + cutleft >= glyph->bitmap.width) ++ if (cutright + cutleft >= (long)glyph->bitmap.width) + cutright = 0; + } + +@@ -262,7 +263,7 @@ add_glyph (struct grub_font_info *font_info, FT_UInt glyph_idx, FT_Face face, + + mask = 0; + data = &glyph_info->bitmap[0] - 1; +- for (j = cuttop; j < height + cuttop; j++) ++ for (j = cuttop; j < (long)height + cuttop; j++) + for (i = cutleft; i < width + cutleft; i++) + add_pixel (&data, &mask, + glyph->bitmap.buffer[i / 8 + j * glyph->bitmap.pitch] & +diff --git a/util/grub-probe.c b/util/grub-probe.c +index c08e46bbb40..c6fac732b40 100644 +--- a/util/grub-probe.c ++++ b/util/grub-probe.c +@@ -798,7 +798,7 @@ argp_parser (int key, char *arg, struct argp_state *state) + + case 't': + { +- int i; ++ unsigned int i; + + for (i = PRINT_FS; i < ARRAY_SIZE (targets); i++) + if (strcmp (arg, targets[i]) == 0) +diff --git a/util/grub-rpm-sort.c b/util/grub-rpm-sort.c +index f33bd1ed568..8345944105f 100644 +--- a/util/grub-rpm-sort.c ++++ b/util/grub-rpm-sort.c +@@ -232,7 +232,7 @@ main (int argc, char *argv[]) + struct arguments arguments; + char **package_names = NULL; + size_t n_package_names = 0; +- int i; ++ unsigned int i; + + grub_util_host_init (&argc, &argv); + +diff --git a/util/setup.c b/util/setup.c +index da5f2c07f50..8b22bb8ccac 100644 +--- a/util/setup.c ++++ b/util/setup.c +@@ -406,7 +406,7 @@ SETUP (const char *dir, + int is_ldm; + grub_err_t err; + grub_disk_addr_t *sectors; +- int i; ++ unsigned int i; + grub_fs_t fs; + unsigned int nsec, maxsec; + +diff --git a/bootstrap.conf b/bootstrap.conf +index 6b043fc354c..186be9c48ce 100644 +--- a/bootstrap.conf ++++ b/bootstrap.conf +@@ -80,7 +80,8 @@ cp -a INSTALL INSTALL.grub + bootstrap_post_import_hook () { + set -e + for patchname in fix-base64 fix-null-deref fix-null-state-deref fix-regcomp-uninit-token \ +- fix-regexec-null-deref fix-uninit-structure fix-unused-value fix-width no-abort; do ++ fix-regexec-null-deref fix-uninit-structure fix-unused-value fix-width no-abort \ ++ fix-sign-compare-errors; do + patch -d grub-core/lib/gnulib -p2 \ + < "grub-core/lib/gnulib-patches/$patchname.patch" + done diff --git a/grub-core/lib/gnulib-patches/fix-sign-compare-errors.patch b/grub-core/lib/gnulib-patches/fix-sign-compare-errors.patch new file mode 100644 -index 0000000..479029c +index 00000000000..479029c0565 --- /dev/null +++ b/grub-core/lib/gnulib-patches/fix-sign-compare-errors.patch @@ -0,0 +1,161 @@ @@ -201,186 +395,3 @@ index 0000000..479029c + mctx->max_mb_elem_len = to - from; + return REG_NOERROR; + } -diff --git a/grub-core/lib/reed_solomon.c b/grub-core/lib/reed_solomon.c -index ee9fa7b..19c2008 100644 ---- a/grub-core/lib/reed_solomon.c -+++ b/grub-core/lib/reed_solomon.c -@@ -156,7 +156,7 @@ static void - rs_encode (gf_single_t *data, grub_size_t s, grub_size_t rs) - { - gf_single_t *rs_polynomial; -- int i, j; -+ unsigned int i, j; - gf_single_t *m; - m = xmalloc ((s + rs) * sizeof (gf_single_t)); - grub_memcpy (m, data, s * sizeof (gf_single_t)); -@@ -325,7 +325,7 @@ static void - encode_block (gf_single_t *ptr, grub_size_t s, - gf_single_t *rptr, grub_size_t rs) - { -- int i, j; -+ unsigned int i, j; - for (i = 0; i < SECTOR_SIZE; i++) - { - grub_size_t ds = (s + SECTOR_SIZE - 1 - i) / SECTOR_SIZE; -diff --git a/grub-core/osdep/linux/blocklist.c b/grub-core/osdep/linux/blocklist.c -index c77d608..42a3150 100644 ---- a/grub-core/osdep/linux/blocklist.c -+++ b/grub-core/osdep/linux/blocklist.c -@@ -109,7 +109,7 @@ grub_install_get_blocklist (grub_device_t root_dev, - else - { - struct fiemap *fie2; -- int i; -+ unsigned int i; - fie2 = xmalloc (sizeof (*fie2) - + fie1.fm_mapped_extents - * sizeof (fie1.fm_extents[1])); -diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c -index 4c5a130..2b7a626 100644 ---- a/grub-core/osdep/linux/getroot.c -+++ b/grub-core/osdep/linux/getroot.c -@@ -236,7 +236,7 @@ grub_find_root_devices_from_btrfs (const char *dir) - { - int fd; - struct btrfs_ioctl_fs_info_args fsi; -- int i, j = 0; -+ unsigned int i, j = 0; - char **ret; - - fd = open (dir, 0); -diff --git a/grub-core/osdep/linux/hostdisk.c b/grub-core/osdep/linux/hostdisk.c -index 8b92f85..370d027 100644 ---- a/grub-core/osdep/linux/hostdisk.c -+++ b/grub-core/osdep/linux/hostdisk.c -@@ -83,7 +83,7 @@ grub_util_get_fd_size_os (grub_util_fd_t fd, const char *name, unsigned *log_sec - if (sector_size & (sector_size - 1) || !sector_size) - return -1; - for (log_sector_size = 0; -- (1 << log_sector_size) < sector_size; -+ (1U << log_sector_size) < sector_size; - log_sector_size++); - - if (log_secsize) -diff --git a/util/grub-fstest.c b/util/grub-fstest.c -index f14e02d..88f9c5d 100644 ---- a/util/grub-fstest.c -+++ b/util/grub-fstest.c -@@ -323,7 +323,7 @@ cmd_cmp (char *src, char *dest) - read_file (src, cmp_hook, ff); - - { -- grub_uint64_t pre; -+ long long pre; - pre = ftell (ff); - fseek (ff, 0, SEEK_END); - if (pre != ftell (ff)) -diff --git a/util/grub-menulst2cfg.c b/util/grub-menulst2cfg.c -index a39f869..358d604 100644 ---- a/util/grub-menulst2cfg.c -+++ b/util/grub-menulst2cfg.c -@@ -34,7 +34,7 @@ main (int argc, char **argv) - char *buf = NULL; - size_t bufsize = 0; - char *suffix = xstrdup (""); -- int suffixlen = 0; -+ size_t suffixlen = 0; - const char *out_fname = 0; - - grub_util_host_init (&argc, &argv); -diff --git a/util/grub-mkfont.c b/util/grub-mkfont.c -index 0fe45a6..3e09240 100644 ---- a/util/grub-mkfont.c -+++ b/util/grub-mkfont.c -@@ -138,7 +138,8 @@ add_glyph (struct grub_font_info *font_info, FT_UInt glyph_idx, FT_Face face, - int width, height; - int cuttop, cutbottom, cutleft, cutright; - grub_uint8_t *data; -- int mask, i, j, bitmap_size; -+ int mask, i, bitmap_size; -+ unsigned int j; - FT_GlyphSlot glyph; - int flag = FT_LOAD_RENDER | FT_LOAD_MONOCHROME; - FT_Error err; -@@ -183,7 +184,7 @@ add_glyph (struct grub_font_info *font_info, FT_UInt glyph_idx, FT_Face face, - cuttop = cutbottom = cutleft = cutright = 0; - else - { -- for (cuttop = 0; cuttop < glyph->bitmap.rows; cuttop++) -+ for (cuttop = 0; cuttop < (long)glyph->bitmap.rows; cuttop++) - { - for (j = 0; j < glyph->bitmap.width; j++) - if (glyph->bitmap.buffer[j / 8 + cuttop * glyph->bitmap.pitch] -@@ -203,10 +204,10 @@ add_glyph (struct grub_font_info *font_info, FT_UInt glyph_idx, FT_Face face, - break; - } - cutbottom = glyph->bitmap.rows - 1 - cutbottom; -- if (cutbottom + cuttop >= glyph->bitmap.rows) -+ if (cutbottom + cuttop >= (long)glyph->bitmap.rows) - cutbottom = 0; - -- for (cutleft = 0; cutleft < glyph->bitmap.width; cutleft++) -+ for (cutleft = 0; cutleft < (long)glyph->bitmap.width; cutleft++) - { - for (j = 0; j < glyph->bitmap.rows; j++) - if (glyph->bitmap.buffer[cutleft / 8 + j * glyph->bitmap.pitch] -@@ -225,7 +226,7 @@ add_glyph (struct grub_font_info *font_info, FT_UInt glyph_idx, FT_Face face, - break; - } - cutright = glyph->bitmap.width - 1 - cutright; -- if (cutright + cutleft >= glyph->bitmap.width) -+ if (cutright + cutleft >= (long)glyph->bitmap.width) - cutright = 0; - } - -@@ -262,7 +263,7 @@ add_glyph (struct grub_font_info *font_info, FT_UInt glyph_idx, FT_Face face, - - mask = 0; - data = &glyph_info->bitmap[0] - 1; -- for (j = cuttop; j < height + cuttop; j++) -+ for (j = cuttop; j < (long)height + cuttop; j++) - for (i = cutleft; i < width + cutleft; i++) - add_pixel (&data, &mask, - glyph->bitmap.buffer[i / 8 + j * glyph->bitmap.pitch] & -diff --git a/util/grub-probe.c b/util/grub-probe.c -index 81d27ee..7481e48 100644 ---- a/util/grub-probe.c -+++ b/util/grub-probe.c -@@ -798,7 +798,7 @@ argp_parser (int key, char *arg, struct argp_state *state) - - case 't': - { -- int i; -+ unsigned int i; - - for (i = PRINT_FS; i < ARRAY_SIZE (targets); i++) - if (strcmp (arg, targets[i]) == 0) -diff --git a/util/grub-rpm-sort.c b/util/grub-rpm-sort.c -index f33bd1e..8345944 100644 ---- a/util/grub-rpm-sort.c -+++ b/util/grub-rpm-sort.c -@@ -232,7 +232,7 @@ main (int argc, char *argv[]) - struct arguments arguments; - char **package_names = NULL; - size_t n_package_names = 0; -- int i; -+ unsigned int i; - - grub_util_host_init (&argc, &argv); - -diff --git a/util/setup.c b/util/setup.c -index 6f88f3c..864094d 100644 ---- a/util/setup.c -+++ b/util/setup.c -@@ -402,7 +402,7 @@ SETUP (const char *dir, - int is_ldm; - grub_err_t err; - grub_disk_addr_t *sectors; -- int i; -+ unsigned int i; - grub_fs_t fs; - unsigned int nsec, maxsec; - --- -1.8.3.1 - diff --git a/0152-Don-t-use-Wno-sign-compare-Wno-conversion-Wno-error-.patch b/0104-Don-t-use-Wno-sign-compare-Wno-conversion-Wno-error-.patch similarity index 84% rename from 0152-Don-t-use-Wno-sign-compare-Wno-conversion-Wno-error-.patch rename to 0104-Don-t-use-Wno-sign-compare-Wno-conversion-Wno-error-.patch index 145031d..1fa705e 100644 --- a/0152-Don-t-use-Wno-sign-compare-Wno-conversion-Wno-error-.patch +++ b/0104-Don-t-use-Wno-sign-compare-Wno-conversion-Wno-error-.patch @@ -1,33 +1,20 @@ -From 7a86d5c7160b12f0608fa51cd5fa2fccd9b8f596 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 11 Jul 2019 18:20:37 +0200 -Subject: [PATCH 152/220] Don't use -Wno-sign-compare -Wno-conversion - -Wno-error, do use -Wextra. +Subject: [PATCH] Don't use -Wno-sign-compare -Wno-conversion -Wno-error, do + use -Wextra. Signed-off-by: Peter Jones --- - conf/Makefile.common | 2 +- configure.ac | 14 +++++++++++--- + conf/Makefile.common | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) -diff --git a/conf/Makefile.common b/conf/Makefile.common -index bbf33b0..b867691 100644 ---- a/conf/Makefile.common -+++ b/conf/Makefile.common -@@ -66,7 +66,7 @@ grubconfdir = $(sysconfdir)/grub.d - platformdir = $(pkglibdir)/$(target_cpu)-$(platform) - starfielddir = $(pkgdatadir)/themes/starfield - --CFLAGS_GNULIB = -Wno-undef -Wno-sign-compare -Wno-unused -Wno-unused-parameter -Wno-redundant-decls -Wno-unreachable-code -Wno-conversion -+CFLAGS_GNULIB = -Wno-undef -Wno-unused -Wno-unused-parameter -Wno-redundant-decls -Wno-unreachable-code - CPPFLAGS_GNULIB = -I$(top_builddir)/grub-core/lib/gnulib -I$(top_srcdir)/grub-core/lib/gnulib - - CFLAGS_POSIX = -fno-builtin diff --git a/configure.ac b/configure.ac -index bca7c28..38d978b 100644 +index 59ccda24475..6eb297fdbf6 100644 --- a/configure.ac +++ b/configure.ac -@@ -1424,11 +1424,11 @@ fi +@@ -1480,11 +1480,11 @@ fi # Set them to their new values for the tests below. CC="$TARGET_CC" if test x"$platform" = xemu ; then @@ -42,7 +29,7 @@ index bca7c28..38d978b 100644 fi CPPFLAGS="$TARGET_CPPFLAGS" -@@ -1987,6 +1987,14 @@ if test x"$enable_werror" != xno ; then +@@ -2047,6 +2047,14 @@ if test x"$enable_werror" != xno ; then HOST_CFLAGS="$HOST_CFLAGS -Werror" fi @@ -57,6 +44,16 @@ index bca7c28..38d978b 100644 TARGET_CPP="$TARGET_CC -E" TARGET_CCAS=$TARGET_CC --- -1.8.3.1 - +diff --git a/conf/Makefile.common b/conf/Makefile.common +index 2ff9b39357c..35e14ff017e 100644 +--- a/conf/Makefile.common ++++ b/conf/Makefile.common +@@ -66,7 +66,7 @@ grubconfdir = $(sysconfdir)/grub.d + platformdir = $(pkglibdir)/$(target_cpu)-$(platform) + starfielddir = $(pkgdatadir)/themes/starfield + +-CFLAGS_GNULIB = -Wno-undef -Wno-sign-compare -Wno-unused -Wno-unused-parameter -Wno-redundant-decls -Wno-unreachable-code -Wno-conversion ++CFLAGS_GNULIB = -Wno-undef -Wno-unused -Wno-unused-parameter -Wno-redundant-decls -Wno-unreachable-code + CPPFLAGS_GNULIB = -I$(top_builddir)/grub-core/lib/gnulib -I$(top_srcdir)/grub-core/lib/gnulib + + CFLAGS_POSIX = -fno-builtin diff --git a/0153-x86-efi-Use-bounce-buffers-for-reading-to-addresses-.patch b/0105-x86-efi-Use-bounce-buffers-for-reading-to-addresses-.patch similarity index 93% rename from 0153-x86-efi-Use-bounce-buffers-for-reading-to-addresses-.patch rename to 0105-x86-efi-Use-bounce-buffers-for-reading-to-addresses-.patch index 6d5eaae..fdd3096 100644 --- a/0153-x86-efi-Use-bounce-buffers-for-reading-to-addresses-.patch +++ b/0105-x86-efi-Use-bounce-buffers-for-reading-to-addresses-.patch @@ -1,8 +1,7 @@ -From c776520796765685c405a72ecbf3ac6f5eeae1cb Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 12 Jul 2019 09:53:32 +0200 -Subject: [PATCH 153/220] x86-efi: Use bounce buffers for reading to addresses - > 4GB +Subject: [PATCH] x86-efi: Use bounce buffers for reading to addresses > 4GB Lots of machines apparently can't DMA correctly above 4GB during UEFI, so use bounce buffers for the initramfs read. @@ -13,7 +12,7 @@ Signed-off-by: Peter Jones 1 file changed, 45 insertions(+), 7 deletions(-) diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 33e981e..2f03368 100644 +index 33e981e76e7..2f0336809e7 100644 --- a/grub-core/loader/i386/efi/linux.c +++ b/grub-core/loader/i386/efi/linux.c @@ -35,11 +35,16 @@ static grub_dl_t my_mod; @@ -100,6 +99,3 @@ index 33e981e..2f03368 100644 static grub_err_t grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), int argc, char *argv[]) --- -1.8.3.1 - diff --git a/0154-x86-efi-Re-arrange-grub_cmd_linux-a-little-bit.patch b/0106-x86-efi-Re-arrange-grub_cmd_linux-a-little-bit.patch similarity index 96% rename from 0154-x86-efi-Re-arrange-grub_cmd_linux-a-little-bit.patch rename to 0106-x86-efi-Re-arrange-grub_cmd_linux-a-little-bit.patch index 056b492..f8284ec 100644 --- a/0154-x86-efi-Re-arrange-grub_cmd_linux-a-little-bit.patch +++ b/0106-x86-efi-Re-arrange-grub_cmd_linux-a-little-bit.patch @@ -1,7 +1,7 @@ -From da26129db9e007294b3b35dc75ef74c5e516afff Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 13 Sep 2018 14:42:34 -0400 -Subject: [PATCH 154/220] x86-efi: Re-arrange grub_cmd_linux() a little bit. +Subject: [PATCH] x86-efi: Re-arrange grub_cmd_linux() a little bit. This just helps the next patch be easier to read. @@ -11,7 +11,7 @@ Signed-off-by: Peter Jones 1 file changed, 41 insertions(+), 34 deletions(-) diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 2f03368..5f48fa5 100644 +index 2f0336809e7..5f48fa55619 100644 --- a/grub-core/loader/i386/efi/linux.c +++ b/grub-core/loader/i386/efi/linux.c @@ -243,32 +243,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), @@ -28,13 +28,13 @@ index 2f03368..5f48fa5 100644 - grub_error (GRUB_ERR_OUT_OF_MEMORY, "cannot allocate kernel parameters"); - goto fail; - } -- -- grub_dprintf ("linux", "params = %p\n", params); -- -- grub_memset (params, 0, sizeof(*params)); + lh = (struct linux_i386_kernel_header *)kernel; + grub_dprintf ("linux", "original lh is at %p\n", kernel); +- grub_dprintf ("linux", "params = %p\n", params); +- +- grub_memset (params, 0, sizeof(*params)); +- - setup_header_end_offset = *((grub_uint8_t *)kernel + 0x201); - grub_dprintf ("linux", "copying %lu bytes from %p to %p\n", - MIN((grub_size_t)0x202+setup_header_end_offset, @@ -131,6 +131,3 @@ index 2f03368..5f48fa5 100644 if (file) grub_file_close (file); --- -1.8.3.1 - diff --git a/0155-x86-efi-Make-our-own-allocator-for-kernel-stuff.patch b/0107-x86-efi-Make-our-own-allocator-for-kernel-stuff.patch similarity index 97% rename from 0155-x86-efi-Make-our-own-allocator-for-kernel-stuff.patch rename to 0107-x86-efi-Make-our-own-allocator-for-kernel-stuff.patch index 63d419f..4ad0696 100644 --- a/0155-x86-efi-Make-our-own-allocator-for-kernel-stuff.patch +++ b/0107-x86-efi-Make-our-own-allocator-for-kernel-stuff.patch @@ -1,7 +1,7 @@ -From 70dc54b23fb32c57a58540857c54ed3291215f28 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 12 Sep 2018 16:03:55 -0400 -Subject: [PATCH 155/220] x86-efi: Make our own allocator for kernel stuff +Subject: [PATCH] x86-efi: Make our own allocator for kernel stuff This helps enable allocations above 4GB. @@ -11,7 +11,7 @@ Signed-off-by: Peter Jones 1 file changed, 94 insertions(+), 73 deletions(-) diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 5f48fa5..075b77e 100644 +index 5f48fa55619..3e4f7ef39f4 100644 --- a/grub-core/loader/i386/efi/linux.c +++ b/grub-core/loader/i386/efi/linux.c @@ -47,6 +47,65 @@ static char *linux_cmdline; @@ -72,7 +72,7 @@ index 5f48fa5..075b77e 100644 + } + + if (addr == NULL) -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, errmsg); ++ grub_error (GRUB_ERR_OUT_OF_MEMORY, "%s", errmsg); + + return addr; +} @@ -238,15 +238,15 @@ index 5f48fa5..075b77e 100644 - grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t) - linux_cmdline, - BYTES_TO_PAGES(lh->cmdline_size + 1)); -- -- if (kernel_mem && !loaded) -- grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)kernel_mem, -- BYTES_TO_PAGES(kernel_size)); + if (!loaded) + { + if (lh) + kernel_free (linux_cmdline, lh->cmdline_size + 1); +- if (kernel_mem && !loaded) +- grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)kernel_mem, +- BYTES_TO_PAGES(kernel_size)); +- - if (params && !loaded) - grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)params, - BYTES_TO_PAGES(16384)); @@ -256,6 +256,3 @@ index 5f48fa5..075b77e 100644 return grub_errno; } --- -1.8.3.1 - diff --git a/0156-x86-efi-Allow-initrd-params-cmdline-allocations-abov.patch b/0108-x86-efi-Allow-initrd-params-cmdline-allocations-abov.patch similarity index 95% rename from 0156-x86-efi-Allow-initrd-params-cmdline-allocations-abov.patch rename to 0108-x86-efi-Allow-initrd-params-cmdline-allocations-abov.patch index 0b33b34..b1233ce 100644 --- a/0156-x86-efi-Allow-initrd-params-cmdline-allocations-abov.patch +++ b/0108-x86-efi-Allow-initrd-params-cmdline-allocations-abov.patch @@ -1,8 +1,7 @@ -From c2315ea6badfef590717c50b652c9d31a1156ca4 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 12 Sep 2018 16:12:27 -0400 -Subject: [PATCH 156/220] x86-efi: Allow initrd+params+cmdline allocations - above 4GB. +Subject: [PATCH] x86-efi: Allow initrd+params+cmdline allocations above 4GB. This enables everything except the kernel itself to be above 4GB. Putting the kernel up there still doesn't work, because of the way @@ -15,7 +14,7 @@ Signed-off-by: Peter Jones 2 files changed, 65 insertions(+), 8 deletions(-) diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 075b77e..50b7798 100644 +index 3e4f7ef39f4..6bc18d5aef5 100644 --- a/grub-core/loader/i386/efi/linux.c +++ b/grub-core/loader/i386/efi/linux.c @@ -52,13 +52,22 @@ struct allocation_choice { @@ -154,10 +153,10 @@ index 075b77e..50b7798 100644 grub_memcpy (kernel_mem, (char *)kernel + start, filelen - start); diff --git a/include/grub/i386/linux.h b/include/grub/i386/linux.h -index a093679..91123b1 100644 +index 25ef52c04eb..fac22476cc5 100644 --- a/include/grub/i386/linux.h +++ b/include/grub/i386/linux.h -@@ -234,7 +234,11 @@ struct linux_kernel_params +@@ -236,7 +236,11 @@ struct linux_kernel_params grub_uint32_t ofw_cif_handler; /* b8 */ grub_uint32_t ofw_idt; /* bc */ @@ -170,6 +169,3 @@ index a093679..91123b1 100644 union { --- -1.8.3.1 - diff --git a/0157-Fix-getroot.c-s-trampolines.patch b/0109-Fix-getroot.c-s-trampolines.patch similarity index 87% rename from 0157-Fix-getroot.c-s-trampolines.patch rename to 0109-Fix-getroot.c-s-trampolines.patch index 43b559f..29ec44c 100644 --- a/0157-Fix-getroot.c-s-trampolines.patch +++ b/0109-Fix-getroot.c-s-trampolines.patch @@ -1,7 +1,7 @@ -From 56c9e4636e9bfcdd16e8616c3b4084c12abe39d8 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 28 Sep 2018 15:42:19 -0400 -Subject: [PATCH 157/220] Fix getroot.c's trampolines. +Subject: [PATCH] Fix getroot.c's trampolines. This makes the stack executable on most of the grub utilities, which is bad, and rpmdiff complains about it. @@ -12,7 +12,7 @@ Signed-off-by: Peter Jones 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c -index 2b7a626..36429a7 100644 +index 9f730b35189..f0c503f43d3 100644 --- a/grub-core/osdep/linux/getroot.c +++ b/grub-core/osdep/linux/getroot.c @@ -1264,22 +1264,20 @@ grub_util_get_grub_dev_os (const char *os_dev) @@ -45,6 +45,3 @@ index 2b7a626..36429a7 100644 grub_free (grub_find_root_devices_from_mountinfo (path, NULL)); grub_find_root_btrfs_mount_path_hook = NULL; --- -1.8.3.1 - diff --git a/0158-Do-not-allow-stack-trampolines-anywhere.patch b/0110-Do-not-allow-stack-trampolines-anywhere.patch similarity index 81% rename from 0158-Do-not-allow-stack-trampolines-anywhere.patch rename to 0110-Do-not-allow-stack-trampolines-anywhere.patch index f4a8b6e..2a3247a 100644 --- a/0158-Do-not-allow-stack-trampolines-anywhere.patch +++ b/0110-Do-not-allow-stack-trampolines-anywhere.patch @@ -1,16 +1,30 @@ -From 7840cc28efc1de9777fec4e9c85dd7d2887be628 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 12 Jul 2019 10:06:50 +0200 -Subject: [PATCH 158/220] Do not allow stack trampolines, anywhere. +Subject: [PATCH] Do not allow stack trampolines, anywhere. Signed-off-by: Peter Jones --- - conf/Makefile.common | 2 +- configure.ac | 3 +++ + conf/Makefile.common | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) +diff --git a/configure.ac b/configure.ac +index 6eb297fdbf6..c6bd965f1f9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2055,6 +2055,9 @@ if test x"$enable_wextra" != xno ; then + HOST_CFLAGS="$HOST_CFLAGS -Wextra" + fi + ++TARGET_CFLAGS="$TARGET_CFLAGS -Werror=trampolines -fno-trampolines" ++HOST_CFLAGS="$HOST_CFLAGS -Werror=trampolines -fno-trampolines" ++ + TARGET_CPP="$TARGET_CC -E" + TARGET_CCAS=$TARGET_CC + diff --git a/conf/Makefile.common b/conf/Makefile.common -index b867691..87c1f0e 100644 +index 35e14ff017e..0647c53b916 100644 --- a/conf/Makefile.common +++ b/conf/Makefile.common @@ -66,7 +66,7 @@ grubconfdir = $(sysconfdir)/grub.d @@ -22,20 +36,3 @@ index b867691..87c1f0e 100644 CPPFLAGS_GNULIB = -I$(top_builddir)/grub-core/lib/gnulib -I$(top_srcdir)/grub-core/lib/gnulib CFLAGS_POSIX = -fno-builtin -diff --git a/configure.ac b/configure.ac -index 38d978b..5076d63 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1995,6 +1995,9 @@ if test x"$enable_wextra" != xno ; then - HOST_CFLAGS="$HOST_CFLAGS -Wextra" - fi - -+TARGET_CFLAGS="$TARGET_CFLAGS -Werror=trampolines -fno-trampolines" -+HOST_CFLAGS="$HOST_CFLAGS -Werror=trampolines -fno-trampolines" -+ - TARGET_CPP="$TARGET_CC -E" - TARGET_CCAS=$TARGET_CC - --- -1.8.3.1 - diff --git a/0110-misc-fix-invalid-character-recongition-in-strto-l.patch b/0110-misc-fix-invalid-character-recongition-in-strto-l.patch deleted file mode 100644 index 110cfc9..0000000 --- a/0110-misc-fix-invalid-character-recongition-in-strto-l.patch +++ /dev/null @@ -1,40 +0,0 @@ -From d2f8885f7d9ea9581d93541c321dd1ce564c8446 Mon Sep 17 00:00:00 2001 -From: Aaron Miller -Date: Fri, 29 Jul 2016 17:41:27 +0800 -Subject: [PATCH 110/220] misc: fix invalid character recongition in strto*l - -Would previously allow digits larger than the base and didn't check that -subtracting the difference from 0-9 to lowercase letters for characters -larger than 9 didn't result in a value lower than 9, which allowed the -parses: ` = 9, _ = 8, ^ = 7, ] = 6, \ = 5, and [ = 4 ---- - grub-core/kern/misc.c | 13 ++++++++----- - 1 file changed, 8 insertions(+), 5 deletions(-) - -diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index 0e89c48..5c3899f 100644 ---- a/grub-core/kern/misc.c -+++ b/grub-core/kern/misc.c -@@ -434,11 +434,14 @@ grub_strtoull (const char *str, char **end, int base) - unsigned long digit; - - digit = grub_tolower (*str) - '0'; -- if (digit >= 'a' - '0') -- digit += '0' - 'a' + 10; -- else if (digit > 9) -- break; -- -+ if (digit > 9) -+ { -+ digit += '0' - 'a' + 10; -+ /* digit <= 9 check is needed to keep chars larger than -+ '9' but less than 'a' from being read as numbers */ -+ if (digit >= (unsigned long) base || digit <= 9) -+ break; -+ } - if (digit >= (unsigned long) base) - break; - --- -1.8.3.1 - diff --git a/0159-Reimplement-boot_counter.patch b/0111-Reimplement-boot_counter.patch similarity index 95% rename from 0159-Reimplement-boot_counter.patch rename to 0111-Reimplement-boot_counter.patch index 88b642b..a203929 100644 --- a/0159-Reimplement-boot_counter.patch +++ b/0111-Reimplement-boot_counter.patch @@ -1,7 +1,7 @@ -From 6a1bf02b86814f1b015bfc0a0979ecdca4106516 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Oct 2018 14:22:09 -0400 -Subject: [PATCH 159/220] Reimplement boot_counter +Subject: [PATCH] Reimplement boot_counter This adds "increment" and "decrement" commands, and uses them to maintain our variables in 01_fallback_counter. It also simplifies the counter logic, so @@ -23,27 +23,27 @@ Signed-off-by: Christian Glombek create mode 100644 util/grub.d/01_fallback_counting.in diff --git a/Makefile.util.def b/Makefile.util.def -index 125ad62..2019ebd 100644 +index 0b85a7fce4a..27a13bc734e 100644 --- a/Makefile.util.def +++ b/Makefile.util.def @@ -458,6 +458,12 @@ script = { + installdir = grubconf; }; - script = { ++script = { + name = '01_fallback_counting'; + common = util/grub.d/01_fallback_counting.in; + installdir = grubconf; +}; + -+script = { + script = { name = '01_menu_auto_hide'; common = util/grub.d/01_menu_auto_hide.in; - installdir = grubconf; diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 8bb1daf..65ca74f 100644 +index 498ca11762a..1e15345107e 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def -@@ -395,6 +395,11 @@ kernel = { +@@ -398,6 +398,11 @@ kernel = { extra_dist = kern/mips/cache_flush.S; }; @@ -57,7 +57,7 @@ index 8bb1daf..65ca74f 100644 mansection = 1; diff --git a/grub-core/commands/increment.c b/grub-core/commands/increment.c new file mode 100644 -index 0000000..79cf137 +index 00000000000..79cf137656c --- /dev/null +++ b/grub-core/commands/increment.c @@ -0,0 +1,105 @@ @@ -168,7 +168,7 @@ index 0000000..79cf137 +} diff --git a/util/grub.d/01_fallback_counting.in b/util/grub.d/01_fallback_counting.in new file mode 100644 -index 0000000..be0e770 +index 00000000000..be0e770ea82 --- /dev/null +++ b/util/grub.d/01_fallback_counting.in @@ -0,0 +1,22 @@ @@ -194,6 +194,3 @@ index 0000000..be0e770 + save_env boot_counter +fi +EOF --- -1.8.3.1 - diff --git a/0161-Fix-menu-entry-selection-based-on-ID-and-title.patch b/0112-Fix-menu-entry-selection-based-on-ID-and-title.patch similarity index 96% rename from 0161-Fix-menu-entry-selection-based-on-ID-and-title.patch rename to 0112-Fix-menu-entry-selection-based-on-ID-and-title.patch index 4cbd698..957fda3 100644 --- a/0161-Fix-menu-entry-selection-based-on-ID-and-title.patch +++ b/0112-Fix-menu-entry-selection-based-on-ID-and-title.patch @@ -1,7 +1,7 @@ -From 14470b5b42b1cc05979e8607fc0659418226b718 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 19 Oct 2018 10:57:52 -0400 -Subject: [PATCH 161/220] Fix menu entry selection based on ID and title +Subject: [PATCH] Fix menu entry selection based on ID and title Currently if grub_strtoul(saved_entry_value, NULL, 0) does not return an error, we assume the value it has produced is a correct index into our @@ -24,7 +24,7 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 71 insertions(+), 70 deletions(-) diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c -index 37d753d..ea714d2 100644 +index d7a222e681b..4a02aadb01c 100644 --- a/grub-core/normal/menu.c +++ b/grub-core/normal/menu.c @@ -164,12 +164,12 @@ grub_menu_set_timeout (int timeout) @@ -127,9 +127,13 @@ index 37d753d..ea714d2 100644 grub_error_push (); - entry = (int) grub_strtoul (val, &tail, 0); -- ++ entry = get_entry_number_helper(menu, val, &tail); ++ if (!(*tail == 0 || grub_isspace(*tail))) ++ entry = -1; + - if (grub_errno == GRUB_ERR_BAD_NUMBER) -- { ++ if (entry >= 0) + { - /* See if the variable matches the title of a menu entry. */ - grub_menu_entry_t e = menu->entry_list; - int i; @@ -147,10 +151,7 @@ index 37d753d..ea714d2 100644 - } - e = e->next; - } -+ entry = get_entry_number_helper(menu, val, &tail); -+ if (!(*tail == 0 || grub_isspace(*tail))) -+ entry = -1; - +- - if (sz > 0) - grub_errno = GRUB_ERR_NONE; - @@ -159,8 +160,7 @@ index 37d753d..ea714d2 100644 - } - - if (grub_errno == GRUB_ERR_NONE) -+ if (entry >= 0) - { +- { - if (sz > 0) - tail += sz; - @@ -231,6 +231,3 @@ index 37d753d..ea714d2 100644 grub_error_pop (); return entry; --- -1.8.3.1 - diff --git a/0162-Make-the-menu-entry-users-option-argument-to-be-opti.patch b/0113-Make-the-menu-entry-users-option-argument-to-be-opti.patch similarity index 90% rename from 0162-Make-the-menu-entry-users-option-argument-to-be-opti.patch rename to 0113-Make-the-menu-entry-users-option-argument-to-be-opti.patch index 3c12b5f..e0d36db 100644 --- a/0162-Make-the-menu-entry-users-option-argument-to-be-opti.patch +++ b/0113-Make-the-menu-entry-users-option-argument-to-be-opti.patch @@ -1,8 +1,7 @@ -From 5088373cfad54d6c61604cb7b266ef58aaaedb61 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 26 Nov 2018 10:06:42 +0100 -Subject: [PATCH 162/220] Make the menu entry users option argument to be - optional +Subject: [PATCH] Make the menu entry users option argument to be optional The --users option is used to restrict the access to specific menu entries only to a set of users. But the option requires an argument to either be a @@ -24,7 +23,7 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grub-core/commands/menuentry.c b/grub-core/commands/menuentry.c -index 9faf2be..29736f5 100644 +index b194123eb67..b175a1b43b7 100644 --- a/grub-core/commands/menuentry.c +++ b/grub-core/commands/menuentry.c @@ -29,7 +29,7 @@ static const struct grub_arg_option options[] = @@ -45,6 +44,3 @@ index 9faf2be..29736f5 100644 users = ctxt->state[1].arg; else if (ctxt->state[5].set) users = NULL; --- -1.8.3.1 - diff --git a/0163-Add-efi-export-env-and-efi-load-env-commands.patch b/0114-Add-efi-export-env-and-efi-load-env-commands.patch similarity index 90% rename from 0163-Add-efi-export-env-and-efi-load-env-commands.patch rename to 0114-Add-efi-export-env-and-efi-load-env-commands.patch index d4b7ec0..73456bc 100644 --- a/0163-Add-efi-export-env-and-efi-load-env-commands.patch +++ b/0114-Add-efi-export-env-and-efi-load-env-commands.patch @@ -1,7 +1,7 @@ -From cdd189ff589f11629f67198755490e93974354d1 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 16 Jan 2019 13:21:46 -0500 -Subject: [PATCH 163/220] Add efi-export-env and efi-load-env commands +Subject: [PATCH] Add efi-export-env and efi-load-env commands This adds "efi-export-env VARIABLE" and "efi-load-env", which manipulate the environment block stored in the EFI variable @@ -14,33 +14,32 @@ Signed-off-by: Peter Jones grub-core/kern/efi/efi.c | 3 + grub-core/kern/efi/init.c | 5 -- grub-core/lib/envblk.c | 43 +++++++++++ + util/grub-set-bootflag.c | 1 + include/grub/efi/efi.h | 5 ++ include/grub/lib/envblk.h | 3 + - util/editenv.c | 2 - - util/grub-set-bootflag.c | 1 + - 9 files changed, 229 insertions(+), 7 deletions(-) + 8 files changed, 229 insertions(+), 5 deletions(-) create mode 100644 grub-core/commands/efi/env.c diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 65ca74f..6619946 100644 +index 1e15345107e..81fc274148e 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def -@@ -818,6 +818,12 @@ module = { +@@ -820,6 +820,12 @@ module = { + enable = efi; }; - module = { ++module = { + name = efienv; + common = commands/efi/env.c; + enable = efi; +}; + -+module = { + module = { name = efifwsetup; efi = commands/efi/efifwsetup.c; - enable = efi; diff --git a/grub-core/commands/efi/env.c b/grub-core/commands/efi/env.c new file mode 100644 -index 0000000..a690797 +index 00000000000..cbd13e03e81 --- /dev/null +++ b/grub-core/commands/efi/env.c @@ -0,0 +1,168 @@ @@ -96,8 +95,8 @@ index 0000000..a690797 + if (argc != 1) + return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("variable name expected")); + -+ envblk_s.buf = grub_efi_get_variable ("GRUB_ENV", &grub_env_guid, -+ &envblk_s.size); ++ grub_efi_get_variable ("GRUB_ENV", &grub_env_guid, &envblk_s.size, ++ (void **) &envblk_s.buf); + if (!envblk_s.buf || envblk_s.size < 1) + { + char *buf = grub_malloc (1025); @@ -185,8 +184,8 @@ index 0000000..a690797 + struct grub_envblk envblk_s = { NULL, 0 }; + grub_envblk_t envblk = &envblk_s; + -+ envblk_s.buf = grub_efi_get_variable ("GRUB_ENV", &grub_env_guid, -+ &envblk_s.size); ++ grub_efi_get_variable ("GRUB_ENV", &grub_env_guid, &envblk_s.size, ++ (void **) &envblk_s.buf); + if (!envblk_s.buf || envblk_s.size < 1) + return 0; + @@ -213,10 +212,10 @@ index 0000000..a690797 + grub_unregister_command (loadenv_cmd); +} diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index ada3004..279394d 100644 +index 2a446f5031b..14bc10eb564 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c -@@ -224,6 +224,9 @@ grub_efi_set_variable(const char *var, const grub_efi_guid_t *guid, +@@ -225,6 +225,9 @@ grub_efi_set_variable(const char *var, const grub_efi_guid_t *guid, if (status == GRUB_EFI_SUCCESS) return GRUB_ERR_NONE; @@ -227,10 +226,10 @@ index ada3004..279394d 100644 } diff --git a/grub-core/kern/efi/init.c b/grub-core/kern/efi/init.c -index e6183a4..d1afa3a 100644 +index 2d12e6188fd..0574d8d6217 100644 --- a/grub-core/kern/efi/init.c +++ b/grub-core/kern/efi/init.c -@@ -29,11 +29,6 @@ +@@ -85,11 +85,6 @@ stack_protector_init (void) grub_addr_t grub_modbase; @@ -243,7 +242,7 @@ index e6183a4..d1afa3a 100644 static int set_var (const char *name, const char *value, diff --git a/grub-core/lib/envblk.c b/grub-core/lib/envblk.c -index 230e0e9..f89d86d 100644 +index 2e4e78b132d..874506da169 100644 --- a/grub-core/lib/envblk.c +++ b/grub-core/lib/envblk.c @@ -223,6 +223,49 @@ grub_envblk_delete (grub_envblk_t envblk, const char *name) @@ -296,8 +295,20 @@ index 230e0e9..f89d86d 100644 void grub_envblk_iterate (grub_envblk_t envblk, void *hook_data, +diff --git a/util/grub-set-bootflag.c b/util/grub-set-bootflag.c +index bb198f02351..6a79ee67444 100644 +--- a/util/grub-set-bootflag.c ++++ b/util/grub-set-bootflag.c +@@ -25,6 +25,7 @@ + + #include /* For *_DIR_NAME defines */ + #include ++#include + #include /* For GRUB_ENVBLK_DEFCFG define */ + #include + #include diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index 8ca3981..d24afba 100644 +index 2e0691454b1..8dfc89a33b9 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h @@ -24,6 +24,11 @@ @@ -313,7 +324,7 @@ index 8ca3981..d24afba 100644 extern grub_efi_system_table_t *EXPORT_VAR(grub_efi_system_table); extern grub_efi_handle_t EXPORT_VAR(grub_efi_image_handle); diff --git a/include/grub/lib/envblk.h b/include/grub/lib/envblk.h -index c3e6559..ab969af 100644 +index c3e65592170..ab969af2461 100644 --- a/include/grub/lib/envblk.h +++ b/include/grub/lib/envblk.h @@ -22,6 +22,8 @@ @@ -333,31 +344,3 @@ index c3e6559..ab969af 100644 void grub_envblk_delete (grub_envblk_t envblk, const char *name); void grub_envblk_iterate (grub_envblk_t envblk, void *hook_data, -diff --git a/util/editenv.c b/util/editenv.c -index 1f7f6f3..66f99f9 100644 ---- a/util/editenv.c -+++ b/util/editenv.c -@@ -30,8 +30,6 @@ - #include - #include - --#define DEFAULT_ENVBLK_SIZE 1024 -- - void - grub_util_create_envblk_file (const char *name) - { -diff --git a/util/grub-set-bootflag.c b/util/grub-set-bootflag.c -index bb198f0..6a79ee6 100644 ---- a/util/grub-set-bootflag.c -+++ b/util/grub-set-bootflag.c -@@ -25,6 +25,7 @@ - - #include /* For *_DIR_NAME defines */ - #include -+#include - #include /* For GRUB_ENVBLK_DEFCFG define */ - #include - #include --- -1.8.3.1 - diff --git a/0164-Make-it-possible-to-subtract-conditions-from-debug.patch b/0115-Make-it-possible-to-subtract-conditions-from-debug.patch similarity index 84% rename from 0164-Make-it-possible-to-subtract-conditions-from-debug.patch rename to 0115-Make-it-possible-to-subtract-conditions-from-debug.patch index 9ae6b00..fce51ea 100644 --- a/0164-Make-it-possible-to-subtract-conditions-from-debug.patch +++ b/0115-Make-it-possible-to-subtract-conditions-from-debug.patch @@ -1,7 +1,7 @@ -From 735e69de93dc746ded8c03eed4c193b5299492cf Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 17 Jan 2019 13:10:39 -0500 -Subject: [PATCH 164/220] Make it possible to subtract conditions from debug= +Subject: [PATCH] Make it possible to subtract conditions from debug= This makes it so you can do set debug to "all,-scripting,-lexer" and get the obvious outcome. Any negation present will take preference over that @@ -14,10 +14,10 @@ Signed-off-by: Peter Jones 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index e21dd44..18a7dbf 100644 +index 9a2fae6398e..578bf51a5fc 100644 --- a/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c -@@ -163,12 +163,24 @@ int +@@ -164,12 +164,24 @@ int grub_debug_enabled (const char * condition) { const char *debug; @@ -43,6 +43,3 @@ index e21dd44..18a7dbf 100644 return 1; return 0; --- -1.8.3.1 - diff --git a/0165-Export-all-variables-from-the-initial-context-when-c.patch b/0116-Export-all-variables-from-the-initial-context-when-c.patch similarity index 84% rename from 0165-Export-all-variables-from-the-initial-context-when-c.patch rename to 0116-Export-all-variables-from-the-initial-context-when-c.patch index c0c028e..4e32260 100644 --- a/0165-Export-all-variables-from-the-initial-context-when-c.patch +++ b/0116-Export-all-variables-from-the-initial-context-when-c.patch @@ -1,8 +1,8 @@ -From 7eeac73061708872cd41d3e03233d2ff8fe4167c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 22 Jan 2019 15:40:25 +0100 -Subject: [PATCH 165/220] Export all variables from the initial context when - creating a submenu +Subject: [PATCH] Export all variables from the initial context when creating a + submenu When a submenu is created, only the exported variables are copied to the new menu context. But we want the variables to be global, so export lets @@ -17,7 +17,7 @@ Signed-off-by: Javier Martinez Canillas 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/grub-core/normal/context.c b/grub-core/normal/context.c -index ee53d4a..87edd25 100644 +index ee53d4a68e5..87edd254c44 100644 --- a/grub-core/normal/context.c +++ b/grub-core/normal/context.c @@ -99,7 +99,7 @@ grub_env_new_context (int export_all) @@ -30,7 +30,7 @@ index ee53d4a..87edd25 100644 int grub_extractor_level = 0; diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c -index ea714d2..d4832f1 100644 +index 4a02aadb01c..fe2e77a43e2 100644 --- a/grub-core/normal/menu.c +++ b/grub-core/normal/menu.c @@ -375,8 +375,6 @@ grub_menu_execute_entry(grub_menu_entry_t entry, int auto_boot) @@ -42,6 +42,3 @@ index ea714d2..d4832f1 100644 grub_script_execute_new_scope (entry->sourcecode, entry->argc, entry->args); --- -1.8.3.1 - diff --git a/0117-grub.d-Split-out-boot-success-reset-from-menu-auto-h.patch b/0117-grub.d-Split-out-boot-success-reset-from-menu-auto-h.patch new file mode 100644 index 0000000..92f259d --- /dev/null +++ b/0117-grub.d-Split-out-boot-success-reset-from-menu-auto-h.patch @@ -0,0 +1,168 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Christian Glombek +Date: Tue, 2 Apr 2019 16:22:21 +0200 +Subject: [PATCH] grub.d: Split out boot success reset from menu auto hide + script + +Also rename fallback and menu auto hide script to be executed +before and after boot success reset script. +In menu auto hide script, rename last_boot_ok var to menu_hide_ok + +Signed-off-by: Christian Glombek +Signed-off-by: Robbie Harwood +--- + Makefile.util.def | 14 ++++++++---- + ...allback_counting.in => 08_fallback_counting.in} | 14 ++++++------ + util/grub.d/10_reset_boot_success.in | 25 ++++++++++++++++++++++ + .../{01_menu_auto_hide.in => 12_menu_auto_hide.in} | 23 +++++--------------- + 4 files changed, 48 insertions(+), 28 deletions(-) + rename util/grub.d/{01_fallback_counting.in => 08_fallback_counting.in} (65%) + create mode 100644 util/grub.d/10_reset_boot_success.in + rename util/grub.d/{01_menu_auto_hide.in => 12_menu_auto_hide.in} (58%) + +diff --git a/Makefile.util.def b/Makefile.util.def +index 27a13bc734e..2e6ad979c3e 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -459,14 +459,14 @@ script = { + }; + + script = { +- name = '01_fallback_counting'; +- common = util/grub.d/01_fallback_counting.in; ++ name = '08_fallback_counting'; ++ common = util/grub.d/08_fallback_counting.in; + installdir = grubconf; + }; + + script = { +- name = '01_menu_auto_hide'; +- common = util/grub.d/01_menu_auto_hide.in; ++ name = '12_menu_auto_hide'; ++ common = util/grub.d/12_menu_auto_hide.in; + installdir = grubconf; + }; + +@@ -518,6 +518,12 @@ script = { + condition = COND_HOST_LINUX; + }; + ++script = { ++ name = '10_reset_boot_success'; ++ common = util/grub.d/10_reset_boot_success.in; ++ installdir = grubconf; ++}; ++ + script = { + name = '10_xnu'; + common = util/grub.d/10_xnu.in; +diff --git a/util/grub.d/01_fallback_counting.in b/util/grub.d/08_fallback_counting.in +similarity index 65% +rename from util/grub.d/01_fallback_counting.in +rename to util/grub.d/08_fallback_counting.in +index be0e770ea82..2e2c3ff7d31 100644 +--- a/util/grub.d/01_fallback_counting.in ++++ b/util/grub.d/08_fallback_counting.in +@@ -1,15 +1,17 @@ + #! /bin/sh -e +- +-# Boot Counting ++# Fallback Countdown ++# ++# This snippet depends on 10_reset_boot_success and needs to be kept in sync. ++# + # The boot_counter env var can be used to count down boot attempts after an +-# OSTree upgrade and choose the rollback deployment when 0 is reached. Both +-# boot_counter and boot_success need to be (re-)set from userspace. ++# OSTree upgrade and choose the rollback deployment when 0 is reached. ++# Both boot_counter=X and boot_success=1 need to be set from userspace. + cat << EOF + insmod increment + # Check if boot_counter exists and boot_success=0 to activate this behaviour. + if [ -n "\${boot_counter}" -a "\${boot_success}" = "0" ]; then +- # if countdown has ended, choose to boot rollback deployment (default=1 on +- # OSTree-based systems) ++ # if countdown has ended, choose to boot rollback deployment, ++ # i.e. default=1 on OSTree-based systems. + if [ "\${boot_counter}" = "0" -o "\${boot_counter}" = "-1" ]; then + set default=1 + set boot_counter=-1 +diff --git a/util/grub.d/10_reset_boot_success.in b/util/grub.d/10_reset_boot_success.in +new file mode 100644 +index 00000000000..6c88d933dde +--- /dev/null ++++ b/util/grub.d/10_reset_boot_success.in +@@ -0,0 +1,25 @@ ++#! /bin/sh -e ++# Reset Boot Success ++# ++# The 08_fallback_counting and 12_menu_auto_hide snippets rely on this one ++# and need to be kept in sync. ++# ++# The boot_success var needs to be set to 1 from userspace to mark a boot successful. ++cat << EOF ++insmod increment ++# Hiding the menu is ok if last boot was ok or if this is a first boot attempt to boot the entry ++if [ "\${boot_success}" = "1" -o "\${boot_indeterminate}" = "1" ]; then ++ set menu_hide_ok=1 ++else ++ set menu_hide_ok=0 ++fi ++# Reset boot_indeterminate after a successful boot, increment otherwise ++if [ "\${boot_success}" = "1" ] ; then ++ set boot_indeterminate=0 ++else ++ increment boot_indeterminate ++fi ++# Reset boot_success for current boot ++set boot_success=0 ++save_env boot_success boot_indeterminate ++EOF +diff --git a/util/grub.d/01_menu_auto_hide.in b/util/grub.d/12_menu_auto_hide.in +similarity index 58% +rename from util/grub.d/01_menu_auto_hide.in +rename to util/grub.d/12_menu_auto_hide.in +index ad175870a54..6a7c0fa0d43 100644 +--- a/util/grub.d/01_menu_auto_hide.in ++++ b/util/grub.d/12_menu_auto_hide.in +@@ -1,5 +1,8 @@ + #! /bin/sh +- ++# Menu Auto Hide ++# ++# This snippet depends on 10_reset_boot_success and needs to be kept in sync. ++# + # Disable / skip generating menu-auto-hide config parts on serial terminals + for x in ${GRUB_TERMINAL_INPUT} ${GRUB_TERMINAL_OUTPUT}; do + case "$x" in +@@ -10,29 +13,13 @@ for x in ${GRUB_TERMINAL_INPUT} ${GRUB_TERMINAL_OUTPUT}; do + done + + cat << EOF +-if [ "\${boot_success}" = "1" -o "\${boot_indeterminate}" = "1" ]; then +- set last_boot_ok=1 +-else +- set last_boot_ok=0 +-fi +- +-# Reset boot_indeterminate after a successful boot +-if [ "\${boot_success}" = "1" ] ; then +- set boot_indeterminate=0 +-# Avoid boot_indeterminate causing the menu to be hidden more then once +-elif [ "\${boot_indeterminate}" = "1" ]; then +- set boot_indeterminate=2 +-fi +-set boot_success=0 +-save_env boot_success boot_indeterminate +- + if [ x\$feature_timeout_style = xy ] ; then + if [ "\${menu_show_once}" ]; then + unset menu_show_once + save_env menu_show_once + set timeout_style=menu + set timeout=60 +- elif [ "\${menu_auto_hide}" -a "\${last_boot_ok}" = "1" ]; then ++ elif [ "\${menu_auto_hide}" -a "\${menu_hide_ok}" = "1" ]; then + set orig_timeout_style=\${timeout_style} + set orig_timeout=\${timeout} + if [ "\${fastboot}" = "1" ]; then diff --git a/0118-Fix-one-more-coverity-complaint.patch b/0118-Fix-one-more-coverity-complaint.patch deleted file mode 100644 index f8a130d..0000000 --- a/0118-Fix-one-more-coverity-complaint.patch +++ /dev/null @@ -1,30 +0,0 @@ -From c160c16be2002a3f61b7c0432ff2759c9a5219a0 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Thu, 25 May 2017 11:27:40 -0400 -Subject: [PATCH 118/220] Fix one more coverity complaint - -No idea why covscan thinks this is an "added" bug, since the file hasn't -changed in 3 years, but... yeah. - -Signed-off-by: Peter Jones ---- - grub-core/normal/completion.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/grub-core/normal/completion.c b/grub-core/normal/completion.c -index 5961028..c07100a 100644 ---- a/grub-core/normal/completion.c -+++ b/grub-core/normal/completion.c -@@ -284,7 +284,8 @@ complete_file (void) - - /* Cut away the filename part. */ - dirfile = grub_strrchr (dir, '/'); -- dirfile[1] = '\0'; -+ if (dirfile) -+ dirfile[1] = '\0'; - - /* Iterate the directory. */ - (fs->fs_dir) (dev, dir, iterate_dir, NULL); --- -1.8.3.1 - diff --git a/0170-Fix-systemctl-kexec-exit-status-check.patch b/0118-Fix-systemctl-kexec-exit-status-check.patch similarity index 88% rename from 0170-Fix-systemctl-kexec-exit-status-check.patch rename to 0118-Fix-systemctl-kexec-exit-status-check.patch index afb9597..74ecedc 100644 --- a/0170-Fix-systemctl-kexec-exit-status-check.patch +++ b/0118-Fix-systemctl-kexec-exit-status-check.patch @@ -1,7 +1,7 @@ -From 425daec448d7ad73d0d2dc5e0918af823b4b11b3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 9 Apr 2019 12:30:38 +0200 -Subject: [PATCH 170/220] Fix systemctl kexec exit status check +Subject: [PATCH] Fix systemctl kexec exit status check There's always an error printed even when the systemctl kexec command does succeed. That's because systemctl executes it asynchronously, but the emu @@ -19,7 +19,7 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/grub-core/loader/emu/linux.c b/grub-core/loader/emu/linux.c -index fda9e00..5b85b22 100644 +index fda9e00d24c..5b85b225eed 100644 --- a/grub-core/loader/emu/linux.c +++ b/grub-core/loader/emu/linux.c @@ -71,8 +71,10 @@ grub_linux_boot (void) @@ -35,6 +35,3 @@ index fda9e00..5b85b22 100644 /* need to check read-only root before resetting hard!? */ grub_printf("Performing 'kexec -e'"); --- -1.8.3.1 - diff --git a/0171-Print-grub-emu-linux-loader-messages-as-debug.patch b/0119-Print-grub-emu-linux-loader-messages-as-debug.patch similarity index 86% rename from 0171-Print-grub-emu-linux-loader-messages-as-debug.patch rename to 0119-Print-grub-emu-linux-loader-messages-as-debug.patch index 55c2bbf..a49ec44 100644 --- a/0171-Print-grub-emu-linux-loader-messages-as-debug.patch +++ b/0119-Print-grub-emu-linux-loader-messages-as-debug.patch @@ -1,7 +1,7 @@ -From d82290c42e977165ed19c02e0a548f11b50db818 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 9 Apr 2019 12:42:37 +0200 -Subject: [PATCH 171/220] Print grub-emu linux loader messages as debug +Subject: [PATCH] Print grub-emu linux loader messages as debug They just polute the output and should better be debug messages instead. @@ -11,7 +11,7 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grub-core/loader/emu/linux.c b/grub-core/loader/emu/linux.c -index 5b85b22..22ab6af 100644 +index 5b85b225eed..22ab6af1727 100644 --- a/grub-core/loader/emu/linux.c +++ b/grub-core/loader/emu/linux.c @@ -50,7 +50,7 @@ grub_linux_boot (void) @@ -32,6 +32,3 @@ index 5b85b22..22ab6af 100644 (kexecute==1) ? "do-or-die" : "just-in-case"); rc = grub_util_exec (systemctl); --- -1.8.3.1 - diff --git a/0172-Don-t-assume-that-boot-commands-will-only-return-on-.patch b/0120-Don-t-assume-that-boot-commands-will-only-return-on-.patch similarity index 76% rename from 0172-Don-t-assume-that-boot-commands-will-only-return-on-.patch rename to 0120-Don-t-assume-that-boot-commands-will-only-return-on-.patch index 5ff8cb1..bd7b2c1 100644 --- a/0172-Don-t-assume-that-boot-commands-will-only-return-on-.patch +++ b/0120-Don-t-assume-that-boot-commands-will-only-return-on-.patch @@ -1,8 +1,7 @@ -From 8edc8d1d8e0f4a6f4a25c85e4821fbabc8fb2232 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 9 Apr 2019 13:12:40 +0200 -Subject: [PATCH 172/220] Don't assume that boot commands will only return on - fail +Subject: [PATCH] Don't assume that boot commands will only return on fail While it's true that for most loaders the boot command never returns, it may be the case that it does. For example the GRUB emulator boot command @@ -14,11 +13,11 @@ kexec call later succeeds. Signed-off-by: Javier Martinez Canillas --- - grub-core/normal/menu.c | 19 +++++++++++-------- - 1 file changed, 11 insertions(+), 8 deletions(-) + grub-core/normal/menu.c | 23 +++++++++++++---------- + 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c -index d4832f1..9ea1f41 100644 +index fe2e77a43e2..ec0c92bade0 100644 --- a/grub-core/normal/menu.c +++ b/grub-core/normal/menu.c @@ -285,7 +285,7 @@ get_and_remove_first_entry_number (grub_menu_t menu, const char *name) @@ -30,6 +29,24 @@ index d4832f1..9ea1f41 100644 grub_menu_execute_entry(grub_menu_entry_t entry, int auto_boot) { grub_err_t err = GRUB_ERR_NONE; +@@ -302,7 +302,7 @@ grub_menu_execute_entry(grub_menu_entry_t entry, int auto_boot) + { + grub_print_error (); + grub_errno = GRUB_ERR_NONE; +- return; ++ return grub_errno; + } + + errs_before = grub_err_printed_errors; +@@ -315,7 +315,7 @@ grub_menu_execute_entry(grub_menu_entry_t entry, int auto_boot) + grub_env_context_open (); + menu = grub_zalloc (sizeof (*menu)); + if (! menu) +- return; ++ return grub_errno; + grub_env_set_menu (menu); + if (auto_boot) + grub_env_set ("timeout", "0"); @@ -385,7 +385,7 @@ grub_menu_execute_entry(grub_menu_entry_t entry, int auto_boot) if (grub_errno == GRUB_ERR_NONE && grub_loader_is_loaded ()) @@ -78,6 +95,3 @@ index d4832f1..9ea1f41 100644 } if (!autobooted) --- -1.8.3.1 - diff --git a/0121-Do-better-in-bootstrap.conf.patch b/0121-Do-better-in-bootstrap.conf.patch new file mode 100644 index 0000000..ec9d8ec --- /dev/null +++ b/0121-Do-better-in-bootstrap.conf.patch @@ -0,0 +1,28 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Mon, 29 Jul 2019 10:58:52 -0400 +Subject: [PATCH] Do better in bootstrap.conf + +--- + bootstrap.conf | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/bootstrap.conf b/bootstrap.conf +index 186be9c48ce..9259526e891 100644 +--- a/bootstrap.conf ++++ b/bootstrap.conf +@@ -16,7 +16,13 @@ + # along with this program. If not, see . + + +-GNULIB_REVISION=d271f868a8df9bbec29049d01e056481b7a1a263 ++# GNULIB_REVISION=d271f868a8df9bbec29049d01e056481b7a1a263 ++if [[ -z "${GNULIB_REVISION}" ]] ;then ++ GNULIB_REVISION=fixes ++fi ++if [[ -z "${GNULIB_URL}" ]] ;then ++ GNULIB_URL=https://github.com/rhboot/gnulib.git ++fi + + # gnulib modules used by this package. + # mbswidth is used by gnulib-fix-width.diff's changes to argp rather than diff --git a/0121-grub-core-video-efi_gop.c-Add-support-for-BLT_ONLY-a.patch b/0121-grub-core-video-efi_gop.c-Add-support-for-BLT_ONLY-a.patch deleted file mode 100644 index f12a3f7..0000000 --- a/0121-grub-core-video-efi_gop.c-Add-support-for-BLT_ONLY-a.patch +++ /dev/null @@ -1,60 +0,0 @@ -From dc1adda5b575712665a1e5a4d2a86232e34748a8 Mon Sep 17 00:00:00 2001 -From: Alexander Graf -Date: Wed, 1 Feb 2017 23:10:45 +0100 -Subject: [PATCH 121/220] grub-core/video/efi_gop.c: Add support for BLT_ONLY - adapters - -EFI GOP has support for multiple different bitness types of frame buffers -and for a special "BLT only" type which is always defined to be RGBx. - -Because grub2 doesn't ever directly access the frame buffer but instead -only renders graphics via the BLT interface anyway, we can easily support -these adapters. - -The reason this has come up now is the emerging support for virtio-gpu -in OVMF. That adapter does not have the notion of a memory mapped frame -buffer and thus is BLT only. - -Signed-off-by: Alexander Graf ---- - grub-core/video/efi_gop.c | 2 ++ - include/grub/efi/graphics_output.h | 3 ++- - 2 files changed, 4 insertions(+), 1 deletion(-) - -diff --git a/grub-core/video/efi_gop.c b/grub-core/video/efi_gop.c -index 7f9d1c2..c9e40e8 100644 ---- a/grub-core/video/efi_gop.c -+++ b/grub-core/video/efi_gop.c -@@ -121,6 +121,7 @@ grub_video_gop_get_bpp (struct grub_efi_gop_mode_info *in) - { - case GRUB_EFI_GOT_BGRA8: - case GRUB_EFI_GOT_RGBA8: -+ case GRUB_EFI_GOT_BLT_ONLY: - return 32; - - case GRUB_EFI_GOT_BITMASK: -@@ -187,6 +188,7 @@ grub_video_gop_fill_real_mode_info (unsigned mode, - switch (in->pixel_format) - { - case GRUB_EFI_GOT_RGBA8: -+ case GRUB_EFI_GOT_BLT_ONLY: - out->red_mask_size = 8; - out->red_field_pos = 0; - out->green_mask_size = 8; -diff --git a/include/grub/efi/graphics_output.h b/include/grub/efi/graphics_output.h -index 1297774..e438812 100644 ---- a/include/grub/efi/graphics_output.h -+++ b/include/grub/efi/graphics_output.h -@@ -28,7 +28,8 @@ typedef enum - { - GRUB_EFI_GOT_RGBA8, - GRUB_EFI_GOT_BGRA8, -- GRUB_EFI_GOT_BITMASK -+ GRUB_EFI_GOT_BITMASK, -+ GRUB_EFI_GOT_BLT_ONLY, - } - grub_efi_gop_pixel_format_t; - --- -1.8.3.1 - diff --git a/0122-Use-git-to-apply-gnulib-patches.patch b/0122-Use-git-to-apply-gnulib-patches.patch new file mode 100644 index 0000000..7654648 --- /dev/null +++ b/0122-Use-git-to-apply-gnulib-patches.patch @@ -0,0 +1,631 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Mon, 29 Jul 2019 11:21:27 -0400 +Subject: [PATCH] Use git to apply gnulib patches. + +Signed-off-by: Peter Jones +--- + bootstrap.conf | 6 - + conf/Makefile.extra-dist | 10 - + grub-core/lib/gnulib-patches/fix-base64.patch | 21 -- + grub-core/lib/gnulib-patches/fix-null-deref.patch | 13 -- + .../lib/gnulib-patches/fix-null-state-deref.patch | 12 -- + .../gnulib-patches/fix-regcomp-uninit-token.patch | 15 -- + .../gnulib-patches/fix-regexec-null-deref.patch | 12 -- + .../gnulib-patches/fix-sign-compare-errors.patch | 161 --------------- + .../lib/gnulib-patches/fix-uninit-structure.patch | 11 -- + .../lib/gnulib-patches/fix-unused-value.patch | 14 -- + grub-core/lib/gnulib-patches/fix-width.patch | 217 --------------------- + grub-core/lib/gnulib-patches/no-abort.patch | 26 --- + 12 files changed, 518 deletions(-) + delete mode 100644 grub-core/lib/gnulib-patches/fix-base64.patch + delete mode 100644 grub-core/lib/gnulib-patches/fix-null-deref.patch + delete mode 100644 grub-core/lib/gnulib-patches/fix-null-state-deref.patch + delete mode 100644 grub-core/lib/gnulib-patches/fix-regcomp-uninit-token.patch + delete mode 100644 grub-core/lib/gnulib-patches/fix-regexec-null-deref.patch + delete mode 100644 grub-core/lib/gnulib-patches/fix-sign-compare-errors.patch + delete mode 100644 grub-core/lib/gnulib-patches/fix-uninit-structure.patch + delete mode 100644 grub-core/lib/gnulib-patches/fix-unused-value.patch + delete mode 100644 grub-core/lib/gnulib-patches/fix-width.patch + delete mode 100644 grub-core/lib/gnulib-patches/no-abort.patch + +diff --git a/bootstrap.conf b/bootstrap.conf +index 9259526e891..452f4d79b0d 100644 +--- a/bootstrap.conf ++++ b/bootstrap.conf +@@ -85,12 +85,6 @@ cp -a INSTALL INSTALL.grub + + bootstrap_post_import_hook () { + set -e +- for patchname in fix-base64 fix-null-deref fix-null-state-deref fix-regcomp-uninit-token \ +- fix-regexec-null-deref fix-uninit-structure fix-unused-value fix-width no-abort \ +- fix-sign-compare-errors; do +- patch -d grub-core/lib/gnulib -p2 \ +- < "grub-core/lib/gnulib-patches/$patchname.patch" +- done + for patchname in \ + 0001-Support-POTFILES-shell \ + 0002-Handle-gettext_printf-shell-function \ +diff --git a/conf/Makefile.extra-dist b/conf/Makefile.extra-dist +index ea58362b555..8ddf22e6c99 100644 +--- a/conf/Makefile.extra-dist ++++ b/conf/Makefile.extra-dist +@@ -30,16 +30,6 @@ EXTRA_DIST += grub-core/gensymlist.sh + EXTRA_DIST += grub-core/genemuinit.sh + EXTRA_DIST += grub-core/genemuinitheader.sh + +-EXTRA_DIST += grub-core/lib/gnulib-patches/fix-base64.patch +-EXTRA_DIST += grub-core/lib/gnulib-patches/fix-null-deref.patch +-EXTRA_DIST += grub-core/lib/gnulib-patches/fix-null-state-deref.patch +-EXTRA_DIST += grub-core/lib/gnulib-patches/fix-regcomp-uninit-token.patch +-EXTRA_DIST += grub-core/lib/gnulib-patches/fix-regexec-null-deref.patch +-EXTRA_DIST += grub-core/lib/gnulib-patches/fix-uninit-structure.patch +-EXTRA_DIST += grub-core/lib/gnulib-patches/fix-unused-value.patch +-EXTRA_DIST += grub-core/lib/gnulib-patches/fix-width.patch +-EXTRA_DIST += grub-core/lib/gnulib-patches/no-abort.patch +- + EXTRA_DIST += grub-core/lib/libgcrypt + EXTRA_DIST += grub-core/lib/libgcrypt-grub/mpi/generic + EXTRA_DIST += $(shell find $(top_srcdir)/include -name '*.h') +diff --git a/grub-core/lib/gnulib-patches/fix-base64.patch b/grub-core/lib/gnulib-patches/fix-base64.patch +deleted file mode 100644 +index 985db127971..00000000000 +--- a/grub-core/lib/gnulib-patches/fix-base64.patch ++++ /dev/null +@@ -1,21 +0,0 @@ +-diff --git a/lib/base64.h b/lib/base64.h +-index 9cd0183b8..185a2afa1 100644 +---- a/lib/base64.h +-+++ b/lib/base64.h +-@@ -21,8 +21,14 @@ +- /* Get size_t. */ +- # include +- +--/* Get bool. */ +--# include +-+#ifndef GRUB_POSIX_BOOL_DEFINED +-+typedef enum { false = 0, true = 1 } bool; +-+#define GRUB_POSIX_BOOL_DEFINED 1 +-+#endif +-+ +-+#ifndef _GL_ATTRIBUTE_CONST +-+# define _GL_ATTRIBUTE_CONST /* empty */ +-+#endif +- +- # ifdef __cplusplus +- extern "C" { +diff --git a/grub-core/lib/gnulib-patches/fix-null-deref.patch b/grub-core/lib/gnulib-patches/fix-null-deref.patch +deleted file mode 100644 +index 8fafa153a47..00000000000 +--- a/grub-core/lib/gnulib-patches/fix-null-deref.patch ++++ /dev/null +@@ -1,13 +0,0 @@ +-diff --git a/lib/argp-parse.c b/lib/argp-parse.c +-index 6dec57310..900adad54 100644 +---- a/lib/argp-parse.c +-+++ b/lib/argp-parse.c +-@@ -940,7 +940,7 @@ weak_alias (__argp_parse, argp_parse) +- void * +- __argp_input (const struct argp *argp, const struct argp_state *state) +- { +-- if (state) +-+ if (state && state->pstate) +- { +- struct group *group; +- struct parser *parser = state->pstate; +diff --git a/grub-core/lib/gnulib-patches/fix-null-state-deref.patch b/grub-core/lib/gnulib-patches/fix-null-state-deref.patch +deleted file mode 100644 +index 813ec09c8a1..00000000000 +--- a/grub-core/lib/gnulib-patches/fix-null-state-deref.patch ++++ /dev/null +@@ -1,12 +0,0 @@ +---- a/lib/argp-help.c 2020-10-28 14:32:19.189215988 +0000 +-+++ b/lib/argp-help.c 2020-10-28 14:38:21.204673940 +0000 +-@@ -145,7 +145,8 @@ +- if (*(int *)((char *)upptr + up->uparams_offs) >= upptr->rmargin) +- { +- __argp_failure (state, 0, 0, +-- dgettext (state->root_argp->argp_domain, +-+ dgettext (state == NULL ? NULL +-+ : state->root_argp->argp_domain, +- "\ +- ARGP_HELP_FMT: %s value is less than or equal to %s"), +- "rmargin", up->name); +diff --git a/grub-core/lib/gnulib-patches/fix-regcomp-uninit-token.patch b/grub-core/lib/gnulib-patches/fix-regcomp-uninit-token.patch +deleted file mode 100644 +index 02e06315dff..00000000000 +--- a/grub-core/lib/gnulib-patches/fix-regcomp-uninit-token.patch ++++ /dev/null +@@ -1,15 +0,0 @@ +---- a/lib/regcomp.c 2020-11-24 17:06:08.159223858 +0000 +-+++ b/lib/regcomp.c 2020-11-24 17:06:15.630253923 +0000 +-@@ -3808,11 +3808,7 @@ +- create_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, +- re_token_type_t type) +- { +-- re_token_t t; +--#if defined GCC_LINT || defined lint +-- memset (&t, 0, sizeof t); +--#endif +-- t.type = type; +-+ re_token_t t = { .type = type }; +- return create_token_tree (dfa, left, right, &t); +- } +- +diff --git a/grub-core/lib/gnulib-patches/fix-regexec-null-deref.patch b/grub-core/lib/gnulib-patches/fix-regexec-null-deref.patch +deleted file mode 100644 +index db6dac9c9e3..00000000000 +--- a/grub-core/lib/gnulib-patches/fix-regexec-null-deref.patch ++++ /dev/null +@@ -1,12 +0,0 @@ +---- a/lib/regexec.c 2020-10-21 14:25:35.310195912 +0000 +-+++ b/lib/regexec.c 2020-11-05 10:55:09.621542984 +0000 +-@@ -1692,6 +1692,9 @@ +- { +- Idx top = mctx->state_log_top; +- +-+ if (mctx->state_log == NULL) +-+ return REG_NOERROR; +-+ +- if ((next_state_log_idx >= mctx->input.bufs_len +- && mctx->input.bufs_len < mctx->input.len) +- || (next_state_log_idx >= mctx->input.valid_len +diff --git a/grub-core/lib/gnulib-patches/fix-sign-compare-errors.patch b/grub-core/lib/gnulib-patches/fix-sign-compare-errors.patch +deleted file mode 100644 +index 479029c0565..00000000000 +--- a/grub-core/lib/gnulib-patches/fix-sign-compare-errors.patch ++++ /dev/null +@@ -1,161 +0,0 @@ +-diff --git a/lib/regcomp.c b/lib/regcomp.c +-index cc85f35ac58..361079d82d6 100644 +---- a/lib/regcomp.c +-+++ b/lib/regcomp.c +-@@ -322,7 +322,7 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, +- *p++ = dfa->nodes[node].opr.c; +- memset (&state, '\0', sizeof (state)); +- if (__mbrtowc (&wc, (const char *) buf, p - buf, +-- &state) == p - buf +-+ &state) == (size_t)(p - buf) +- && (__wcrtomb ((char *) buf, __towlower (wc), &state) +- != (size_t) -1)) +- re_set_fastmap (fastmap, false, buf[0]); +-@@ -3778,7 +3778,7 @@ fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax) +- num = ((token->type != CHARACTER || c < '0' || '9' < c || num == -2) +- ? -2 +- : num == -1 +-- ? c - '0' +-+ ? (Idx)(c - '0') +- : MIN (RE_DUP_MAX + 1, num * 10 + c - '0')); +- } +- return num; +-diff --git a/lib/regex_internal.c b/lib/regex_internal.c +-index 9004ce809eb..193a1e3d332 100644 +---- a/lib/regex_internal.c +-+++ b/lib/regex_internal.c +-@@ -233,7 +233,7 @@ build_wcs_buffer (re_string_t *pstr) +- /* Apply the translation if we need. */ +- if (__glibc_unlikely (pstr->trans != NULL)) +- { +-- int i, ch; +-+ unsigned int i, ch; +- +- for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i) +- { +-@@ -376,7 +376,7 @@ build_wcs_upper_buffer (re_string_t *pstr) +- prev_st = pstr->cur_state; +- if (__glibc_unlikely (pstr->trans != NULL)) +- { +-- int i, ch; +-+ unsigned int i, ch; +- +- for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i) +- { +-@@ -754,7 +754,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) +- memset (&cur_state, 0, sizeof (cur_state)); +- mbclen = __mbrtowc (&wc2, (const char *) pp, mlen, +- &cur_state); +-- if (raw + offset - p <= mbclen +-+ if ((size_t)(raw + offset - p) <= mbclen +- && mbclen < (size_t) -2) +- { +- memset (&pstr->cur_state, '\0', +-diff --git a/lib/regex_internal.h b/lib/regex_internal.h +-index 5462419b787..e0f8292395d 100644 +---- a/lib/regex_internal.h +-+++ b/lib/regex_internal.h +-@@ -425,7 +425,7 @@ struct re_string_t +- unsigned char offsets_needed; +- unsigned char newline_anchor; +- unsigned char word_ops_used; +-- int mb_cur_max; +-+ unsigned int mb_cur_max; +- }; +- typedef struct re_string_t re_string_t; +- +-@@ -702,7 +702,7 @@ struct re_dfa_t +- unsigned int is_utf8 : 1; +- unsigned int map_notascii : 1; +- unsigned int word_ops_used : 1; +-- int mb_cur_max; +-+ unsigned int mb_cur_max; +- bitset_t word_char; +- reg_syntax_t syntax; +- Idx *subexp_map; +-diff --git a/lib/regexec.c b/lib/regexec.c +-index 0a7a27b772e..b57d4f9141d 100644 +---- a/lib/regexec.c +-+++ b/lib/regexec.c +-@@ -443,7 +443,7 @@ re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length, +- { +- if (ret_len) +- { +-- assert (pmatch[0].rm_so == start); +-+ assert (pmatch[0].rm_so == (long)start); +- rval = pmatch[0].rm_eo - start; +- } +- else +-@@ -877,11 +877,11 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, +- if (__glibc_unlikely (mctx.input.offsets_needed != 0)) +- { +- pmatch[reg_idx].rm_so = +-- (pmatch[reg_idx].rm_so == mctx.input.valid_len +-+ (pmatch[reg_idx].rm_so == (long)mctx.input.valid_len +- ? mctx.input.valid_raw_len +- : mctx.input.offsets[pmatch[reg_idx].rm_so]); +- pmatch[reg_idx].rm_eo = +-- (pmatch[reg_idx].rm_eo == mctx.input.valid_len +-+ (pmatch[reg_idx].rm_eo == (long)mctx.input.valid_len +- ? mctx.input.valid_raw_len +- : mctx.input.offsets[pmatch[reg_idx].rm_eo]); +- } +-@@ -1418,11 +1418,11 @@ set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch, +- } +- memcpy (prev_idx_match, pmatch, sizeof (regmatch_t) * nmatch); +- +-- for (idx = pmatch[0].rm_so; idx <= pmatch[0].rm_eo ;) +-+ for (idx = pmatch[0].rm_so; idx <= (long)pmatch[0].rm_eo ;) +- { +- update_regs (dfa, pmatch, prev_idx_match, cur_node, idx, nmatch); +- +-- if (idx == pmatch[0].rm_eo && cur_node == mctx->last_node) +-+ if (idx == (long)pmatch[0].rm_eo && cur_node == mctx->last_node) +- { +- Idx reg_idx; +- if (fs) +-@@ -1519,7 +1519,7 @@ update_regs (const re_dfa_t *dfa, regmatch_t *pmatch, +- if (reg_num < nmatch) +- { +- /* We are at the last node of this sub expression. */ +-- if (pmatch[reg_num].rm_so < cur_idx) +-+ if (pmatch[reg_num].rm_so < (long)cur_idx) +- { +- pmatch[reg_num].rm_eo = cur_idx; +- /* This is a non-empty match or we are not inside an optional +-@@ -2938,7 +2938,7 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, +- mctx->state_log[str_idx] = cur_state; +- } +- +-- for (null_cnt = 0; str_idx < last_str && null_cnt <= mctx->max_mb_elem_len;) +-+ for (null_cnt = 0; str_idx < last_str && null_cnt <= (long)mctx->max_mb_elem_len;) +- { +- re_node_set_empty (&next_nodes); +- if (mctx->state_log[str_idx + 1]) +-@@ -3718,7 +3718,7 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, +- const re_string_t *input, Idx str_idx) +- { +- const re_token_t *node = dfa->nodes + node_idx; +-- int char_len, elem_len; +-+ unsigned int char_len, elem_len; +- Idx i; +- +- if (__glibc_unlikely (node->type == OP_UTF8_PERIOD)) +-@@ -4066,7 +4066,7 @@ extend_buffers (re_match_context_t *mctx, int min_len) +- /* Double the lengths of the buffers, but allocate at least MIN_LEN. */ +- ret = re_string_realloc_buffers (pstr, +- MAX (min_len, +-- MIN (pstr->len, pstr->bufs_len * 2))); +-+ MIN ((long)pstr->len, pstr->bufs_len * 2))); +- if (__glibc_unlikely (ret != REG_NOERROR)) +- return ret; +- +-@@ -4236,7 +4236,7 @@ match_ctx_add_entry (re_match_context_t *mctx, Idx node, Idx str_idx, Idx from, +- = (from == to ? -1 : 0); +- +- mctx->bkref_ents[mctx->nbkref_ents++].more = 0; +-- if (mctx->max_mb_elem_len < to - from) +-+ if (mctx->max_mb_elem_len < (long)(to - from)) +- mctx->max_mb_elem_len = to - from; +- return REG_NOERROR; +- } +diff --git a/grub-core/lib/gnulib-patches/fix-uninit-structure.patch b/grub-core/lib/gnulib-patches/fix-uninit-structure.patch +deleted file mode 100644 +index 7b4d9f67af4..00000000000 +--- a/grub-core/lib/gnulib-patches/fix-uninit-structure.patch ++++ /dev/null +@@ -1,11 +0,0 @@ +---- a/lib/regcomp.c 2020-10-22 13:49:06.770168928 +0000 +-+++ b/lib/regcomp.c 2020-10-22 13:50:37.026528298 +0000 +-@@ -3662,7 +3662,7 @@ +- Idx alloc = 0; +- #endif /* not RE_ENABLE_I18N */ +- reg_errcode_t ret; +-- re_token_t br_token; +-+ re_token_t br_token = {0}; +- bin_tree_t *tree; +- +- sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); +diff --git a/grub-core/lib/gnulib-patches/fix-unused-value.patch b/grub-core/lib/gnulib-patches/fix-unused-value.patch +deleted file mode 100644 +index ba51f1bf223..00000000000 +--- a/grub-core/lib/gnulib-patches/fix-unused-value.patch ++++ /dev/null +@@ -1,14 +0,0 @@ +---- a/lib/regexec.c 2020-10-21 14:25:35.310195912 +0000 +-+++ b/lib/regexec.c 2020-10-21 14:32:07.961765604 +0000 +-@@ -828,7 +828,11 @@ +- break; +- if (__glibc_unlikely (err != REG_NOMATCH)) +- goto free_return; +-+#ifdef DEBUG +-+ /* Only used for assertion below when DEBUG is set, otherwise +-+ it will be over-written when we loop around. */ +- match_last = -1; +-+#endif +- } +- else +- break; /* We found a match. */ +diff --git a/grub-core/lib/gnulib-patches/fix-width.patch b/grub-core/lib/gnulib-patches/fix-width.patch +deleted file mode 100644 +index 0a208ad08b5..00000000000 +--- a/grub-core/lib/gnulib-patches/fix-width.patch ++++ /dev/null +@@ -1,217 +0,0 @@ +-diff --git a/lib/argp-fmtstream.c b/lib/argp-fmtstream.c +-index ba6a407f7..d0685b3d4 100644 +---- a/lib/argp-fmtstream.c +-+++ b/lib/argp-fmtstream.c +-@@ -28,9 +28,11 @@ +- #include +- #include +- #include +-+#include +- +- #include "argp-fmtstream.h" +- #include "argp-namefrob.h" +-+#include "mbswidth.h" +- +- #ifndef ARGP_FMTSTREAM_USE_LINEWRAP +- +-@@ -115,6 +117,51 @@ weak_alias (__argp_fmtstream_free, argp_fmtstream_free) +- #endif +- #endif +- +-+ +-+/* Return the pointer to the first character that doesn't fit in l columns. */ +-+static inline const ptrdiff_t +-+add_width (const char *ptr, const char *end, size_t l) +-+{ +-+ mbstate_t ps; +-+ const char *ptr0 = ptr; +-+ +-+ memset (&ps, 0, sizeof (ps)); +-+ +-+ while (ptr < end) +-+ { +-+ wchar_t wc; +-+ size_t s, k; +-+ +-+ s = mbrtowc (&wc, ptr, end - ptr, &ps); +-+ if (s == (size_t) -1) +-+ break; +-+ if (s == (size_t) -2) +-+ { +-+ if (1 >= l) +-+ break; +-+ l--; +-+ ptr++; +-+ continue; +-+ } +-+ +-+ if (wc == '\e' && ptr + 3 < end +-+ && ptr[1] == '[' && (ptr[2] == '0' || ptr[2] == '1') +-+ && ptr[3] == 'm') +-+ { +-+ ptr += 4; +-+ continue; +-+ } +-+ +-+ k = wcwidth (wc); +-+ +-+ if (k >= l) +-+ break; +-+ l -= k; +-+ ptr += s; +-+ } +-+ return ptr - ptr0; +-+} +-+ +- /* Process FS's buffer so that line wrapping is done from POINT_OFFS to the +- end of its buffer. This code is mostly from glibc stdio/linewrap.c. */ +- void +-@@ -168,13 +215,15 @@ __argp_fmtstream_update (argp_fmtstream_t fs) +- if (!nl) +- { +- /* The buffer ends in a partial line. */ +-+ size_t display_width = mbsnwidth (buf, fs->p - buf, +-+ MBSW_STOP_AT_NUL); +- +-- if (fs->point_col + len < fs->rmargin) +-+ if (fs->point_col + display_width < fs->rmargin) +- { +- /* The remaining buffer text is a partial line and fits +- within the maximum line width. Advance point for the +- characters to be written and stop scanning. */ +-- fs->point_col += len; +-+ fs->point_col += display_width; +- break; +- } +- else +-@@ -182,14 +231,18 @@ __argp_fmtstream_update (argp_fmtstream_t fs) +- the end of the buffer. */ +- nl = fs->p; +- } +-- else if (fs->point_col + (nl - buf) < (ssize_t) fs->rmargin) +-- { +-- /* The buffer contains a full line that fits within the maximum +-- line width. Reset point and scan the next line. */ +-- fs->point_col = 0; +-- buf = nl + 1; +-- continue; +-- } +-+ else +-+ { +-+ size_t display_width = mbsnwidth (buf, nl - buf, MBSW_STOP_AT_NUL); +-+ if (display_width < (ssize_t) fs->rmargin) +-+ { +-+ /* The buffer contains a full line that fits within the maximum +-+ line width. Reset point and scan the next line. */ +-+ fs->point_col = 0; +-+ buf = nl + 1; +-+ continue; +-+ } +-+ } +- +- /* This line is too long. */ +- r = fs->rmargin - 1; +-@@ -225,7 +278,7 @@ __argp_fmtstream_update (argp_fmtstream_t fs) +- char *p, *nextline; +- int i; +- +-- p = buf + (r + 1 - fs->point_col); +-+ p = buf + add_width (buf, fs->p, (r + 1 - fs->point_col)); +- while (p >= buf && !isblank ((unsigned char) *p)) +- --p; +- nextline = p + 1; /* This will begin the next line. */ +-@@ -243,7 +296,7 @@ __argp_fmtstream_update (argp_fmtstream_t fs) +- { +- /* A single word that is greater than the maximum line width. +- Oh well. Put it on an overlong line by itself. */ +-- p = buf + (r + 1 - fs->point_col); +-+ p = buf + add_width (buf, fs->p, (r + 1 - fs->point_col)); +- /* Find the end of the long word. */ +- if (p < nl) +- do +-@@ -277,7 +330,8 @@ __argp_fmtstream_update (argp_fmtstream_t fs) +- && fs->p > nextline) +- { +- /* The margin needs more blanks than we removed. */ +-- if (fs->end - fs->p > fs->wmargin + 1) +-+ if (mbsnwidth (fs->p, fs->end - fs->p, MBSW_STOP_AT_NUL) +-+ > fs->wmargin + 1) +- /* Make some space for them. */ +- { +- size_t mv = fs->p - nextline; +-diff --git a/lib/argp-help.c b/lib/argp-help.c +-index e5375a0f0..5d8f451ec 100644 +---- a/lib/argp-help.c +-+++ b/lib/argp-help.c +-@@ -51,6 +51,7 @@ +- #include "argp.h" +- #include "argp-fmtstream.h" +- #include "argp-namefrob.h" +-+#include "mbswidth.h" +- +- #ifndef SIZE_MAX +- # define SIZE_MAX ((size_t) -1) +-@@ -1432,7 +1433,7 @@ argp_args_usage (const struct argp *argp, const struct argp_state *state, +- +- /* Manually do line wrapping so that it (probably) won't get wrapped at +- any embedded spaces. */ +-- space (stream, 1 + nl - cp); +-+ space (stream, 1 + mbsnwidth (cp, nl - cp, MBSW_STOP_AT_NUL)); +- +- __argp_fmtstream_write (stream, cp, nl - cp); +- } +-diff --git a/lib/mbswidth.c b/lib/mbswidth.c +-index 408a15e34..b3fb7f83a 100644 +---- a/lib/mbswidth.c +-+++ b/lib/mbswidth.c +-@@ -38,6 +38,14 @@ +- /* Get INT_MAX. */ +- #include +- +-+#ifndef FALLTHROUGH +-+# if __GNUC__ < 7 +-+# define FALLTHROUGH ((void) 0) +-+# else +-+# define FALLTHROUGH __attribute__ ((__fallthrough__)) +-+# endif +-+#endif +-+ +- /* Returns the number of columns needed to represent the multibyte +- character string pointed to by STRING. If a non-printable character +- occurs, and MBSW_REJECT_UNPRINTABLE is specified, -1 is returned. +-@@ -90,6 +98,10 @@ mbsnwidth (const char *string, size_t nbytes, int flags) +- p++; +- width++; +- break; +-+ case '\0': +-+ if (flags & MBSW_STOP_AT_NUL) +-+ return width; +-+ FALLTHROUGH; +- default: +- /* If we have a multibyte sequence, scan it up to its end. */ +- { +-@@ -168,6 +180,9 @@ mbsnwidth (const char *string, size_t nbytes, int flags) +- { +- unsigned char c = (unsigned char) *p++; +- +-+ if (c == 0 && (flags & MBSW_STOP_AT_NUL)) +-+ return width; +-+ +- if (isprint (c)) +- { +- if (width == INT_MAX) +-diff --git a/lib/mbswidth.h b/lib/mbswidth.h +-index 2b5c53c37..45a123e63 100644 +---- a/lib/mbswidth.h +-+++ b/lib/mbswidth.h +-@@ -45,6 +45,10 @@ extern "C" { +- control characters and 1 otherwise. */ +- #define MBSW_REJECT_UNPRINTABLE 2 +- +-+/* If this bit is set \0 is treated as the end of string. +-+ Otherwise it's treated as a normal one column width character. */ +-+#define MBSW_STOP_AT_NUL 4 +-+ +- +- /* Returns the number of screen columns needed for STRING. */ +- #define mbswidth gnu_mbswidth /* avoid clash with UnixWare 7.1.1 function */ +diff --git a/grub-core/lib/gnulib-patches/no-abort.patch b/grub-core/lib/gnulib-patches/no-abort.patch +deleted file mode 100644 +index e469c4762eb..00000000000 +--- a/grub-core/lib/gnulib-patches/no-abort.patch ++++ /dev/null +@@ -1,26 +0,0 @@ +-diff --git a/lib/regcomp.c b/lib/regcomp.c +-index cc85f35ac..de45ebb5c 100644 +---- a/lib/regcomp.c +-+++ b/lib/regcomp.c +-@@ -528,9 +528,9 @@ regerror (int errcode, const regex_t *__restrict preg, char *__restrict errbuf, +- to this routine. If we are given anything else, or if other regex +- code generates an invalid error code, then the program has a bug. +- Dump core so we can fix it. */ +-- abort (); +-- +-- msg = gettext (__re_error_msgid + __re_error_msgid_idx[errcode]); +-+ msg = gettext ("unknown regexp error"); +-+ else +-+ msg = gettext (__re_error_msgid + __re_error_msgid_idx[errcode]); +- +- msg_size = strlen (msg) + 1; /* Includes the null. */ +- +-@@ -1136,7 +1136,7 @@ optimize_utf8 (re_dfa_t *dfa) +- } +- break; +- default: +-- abort (); +-+ break; +- } +- +- if (mb_chars || has_period) diff --git a/0122-efi-uga-use-64-bit-for-fb_base.patch b/0122-efi-uga-use-64-bit-for-fb_base.patch deleted file mode 100644 index a08c153..0000000 --- a/0122-efi-uga-use-64-bit-for-fb_base.patch +++ /dev/null @@ -1,108 +0,0 @@ -From 0cb697c89b068b6a130150fb5f980fd7e17da387 Mon Sep 17 00:00:00 2001 -From: Andrei Borzenkov -Date: Wed, 16 May 2018 13:06:04 -0400 -Subject: [PATCH 122/220] efi/uga: use 64 bit for fb_base - -We get 64 bit from PCI BAR but then truncate by assigning to 32 bit. -Make sure to check that pointer does not overflow on 32 bit platform. - -Closes: 50931 ---- - grub-core/video/efi_uga.c | 31 ++++++++++++++++--------------- - 1 file changed, 16 insertions(+), 15 deletions(-) - -diff --git a/grub-core/video/efi_uga.c b/grub-core/video/efi_uga.c -index 044af1d..97a607c 100644 ---- a/grub-core/video/efi_uga.c -+++ b/grub-core/video/efi_uga.c -@@ -34,7 +34,7 @@ GRUB_MOD_LICENSE ("GPLv3+"); - - static grub_efi_guid_t uga_draw_guid = GRUB_EFI_UGA_DRAW_GUID; - static struct grub_efi_uga_draw_protocol *uga; --static grub_uint32_t uga_fb; -+static grub_uint64_t uga_fb; - static grub_uint32_t uga_pitch; - - static struct -@@ -52,7 +52,7 @@ static struct - #define FBTEST_COUNT 8 - - static int --find_line_len (grub_uint32_t *fb_base, grub_uint32_t *line_len) -+find_line_len (grub_uint64_t *fb_base, grub_uint32_t *line_len) - { - grub_uint32_t *base = (grub_uint32_t *) (grub_addr_t) *fb_base; - int i; -@@ -67,7 +67,7 @@ find_line_len (grub_uint32_t *fb_base, grub_uint32_t *line_len) - { - if ((base[j] & RGB_MASK) == RGB_MAGIC) - { -- *fb_base = (grub_uint32_t) (grub_addr_t) base; -+ *fb_base = (grub_uint64_t) (grub_addr_t) base; - *line_len = j << 2; - - return 1; -@@ -84,7 +84,7 @@ find_line_len (grub_uint32_t *fb_base, grub_uint32_t *line_len) - /* Context for find_framebuf. */ - struct find_framebuf_ctx - { -- grub_uint32_t *fb_base; -+ grub_uint64_t *fb_base; - grub_uint32_t *line_len; - int found; - }; -@@ -129,7 +129,9 @@ find_card (grub_pci_device_t dev, grub_pci_id_t pciid, void *data) - if (i == 5) - break; - -- old_bar2 = grub_pci_read (addr + 4); -+ i++; -+ addr += 4; -+ old_bar2 = grub_pci_read (addr); - } - else - old_bar2 = 0; -@@ -138,10 +140,15 @@ find_card (grub_pci_device_t dev, grub_pci_id_t pciid, void *data) - base64 <<= 32; - base64 |= (old_bar1 & GRUB_PCI_ADDR_MEM_MASK); - -- grub_dprintf ("fb", "%s(%d): 0x%llx\n", -+ grub_dprintf ("fb", "%s(%d): 0x%" PRIxGRUB_UINT64_T "\n", - ((old_bar1 & GRUB_PCI_ADDR_MEM_PREFETCH) ? -- "VMEM" : "MMIO"), i, -- (unsigned long long) base64); -+ "VMEM" : "MMIO"), type == GRUB_PCI_ADDR_MEM_TYPE_64 ? i - 1 : i, -+ base64); -+ -+#if GRUB_CPU_SIZEOF_VOID_P == 4 -+ if (old_bar2) -+ continue; -+#endif - - if ((old_bar1 & GRUB_PCI_ADDR_MEM_PREFETCH) && (! ctx->found)) - { -@@ -149,12 +156,6 @@ find_card (grub_pci_device_t dev, grub_pci_id_t pciid, void *data) - if (find_line_len (ctx->fb_base, ctx->line_len)) - ctx->found++; - } -- -- if (type == GRUB_PCI_ADDR_MEM_TYPE_64) -- { -- i++; -- addr += 4; -- } - } - } - -@@ -162,7 +163,7 @@ find_card (grub_pci_device_t dev, grub_pci_id_t pciid, void *data) - } - - static int --find_framebuf (grub_uint32_t *fb_base, grub_uint32_t *line_len) -+find_framebuf (grub_uint64_t *fb_base, grub_uint32_t *line_len) - { - struct find_framebuf_ctx ctx = { - .fb_base = fb_base, --- -1.8.3.1 - diff --git a/0123-EFI-console-Do-not-set-text-mode-until-we-actually-n.patch b/0123-EFI-console-Do-not-set-text-mode-until-we-actually-n.patch deleted file mode 100644 index 8040da5..0000000 --- a/0123-EFI-console-Do-not-set-text-mode-until-we-actually-n.patch +++ /dev/null @@ -1,188 +0,0 @@ -From de237e1a95e9526f500d7de8264a481a1cc0201a Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 6 Mar 2018 17:11:15 +0100 -Subject: [PATCH 123/220] EFI: console: Do not set text-mode until we actually - need it - -If we're running with a hidden menu we may never need text mode, so do not -change the video-mode to text until we actually need it. - -Signed-off-by: Hans de Goede ---- - grub-core/term/efi/console.c | 65 ++++++++++++++++++++++++++++++-------------- - 1 file changed, 44 insertions(+), 21 deletions(-) - -diff --git a/grub-core/term/efi/console.c b/grub-core/term/efi/console.c -index 4840cc5..051633d 100644 ---- a/grub-core/term/efi/console.c -+++ b/grub-core/term/efi/console.c -@@ -24,6 +24,11 @@ - #include - #include - -+static grub_err_t grub_prepare_for_text_output(struct grub_term_output *term); -+ -+static int text_mode_available = -1; -+static int text_colorstate = -1; -+ - static grub_uint32_t - map_char (grub_uint32_t c) - { -@@ -66,14 +71,14 @@ map_char (grub_uint32_t c) - } - - static void --grub_console_putchar (struct grub_term_output *term __attribute__ ((unused)), -+grub_console_putchar (struct grub_term_output *term, - const struct grub_unicode_glyph *c) - { - grub_efi_char16_t str[2 + 30]; - grub_efi_simple_text_output_interface_t *o; - unsigned i, j; - -- if (grub_efi_is_finished) -+ if (grub_prepare_for_text_output (term)) - return; - - o = grub_efi_system_table->con_out; -@@ -223,14 +228,15 @@ grub_console_getkey (struct grub_term_input *term) - } - - static struct grub_term_coordinate --grub_console_getwh (struct grub_term_output *term __attribute__ ((unused))) -+grub_console_getwh (struct grub_term_output *term) - { - grub_efi_simple_text_output_interface_t *o; - grub_efi_uintn_t columns, rows; - - o = grub_efi_system_table->con_out; -- if (grub_efi_is_finished || efi_call_4 (o->query_mode, o, o->mode->mode, -- &columns, &rows) != GRUB_EFI_SUCCESS) -+ if (grub_prepare_for_text_output (term) != GRUB_ERR_NONE || -+ efi_call_4 (o->query_mode, o, o->mode->mode, -+ &columns, &rows) != GRUB_EFI_SUCCESS) - { - /* Why does this fail? */ - columns = 80; -@@ -245,7 +251,7 @@ grub_console_getxy (struct grub_term_output *term __attribute__ ((unused))) - { - grub_efi_simple_text_output_interface_t *o; - -- if (grub_efi_is_finished) -+ if (grub_efi_is_finished || text_mode_available != 1) - return (struct grub_term_coordinate) { 0, 0 }; - - o = grub_efi_system_table->con_out; -@@ -253,12 +259,12 @@ grub_console_getxy (struct grub_term_output *term __attribute__ ((unused))) - } - - static void --grub_console_gotoxy (struct grub_term_output *term __attribute__ ((unused)), -+grub_console_gotoxy (struct grub_term_output *term, - struct grub_term_coordinate pos) - { - grub_efi_simple_text_output_interface_t *o; - -- if (grub_efi_is_finished) -+ if (grub_prepare_for_text_output (term)) - return; - - o = grub_efi_system_table->con_out; -@@ -271,7 +277,7 @@ grub_console_cls (struct grub_term_output *term __attribute__ ((unused))) - grub_efi_simple_text_output_interface_t *o; - grub_efi_int32_t orig_attr; - -- if (grub_efi_is_finished) -+ if (grub_efi_is_finished || text_mode_available != 1) - return; - - o = grub_efi_system_table->con_out; -@@ -291,6 +297,12 @@ grub_console_setcolorstate (struct grub_term_output *term - if (grub_efi_is_finished) - return; - -+ if (text_mode_available != 1) { -+ /* Avoid "color_normal" environment writes causing a switch to textmode */ -+ text_colorstate = state; -+ return; -+ } -+ - o = grub_efi_system_table->con_out; - - switch (state) { -@@ -315,7 +327,7 @@ grub_console_setcursor (struct grub_term_output *term __attribute__ ((unused)), - { - grub_efi_simple_text_output_interface_t *o; - -- if (grub_efi_is_finished) -+ if (grub_efi_is_finished || text_mode_available != 1) - return; - - o = grub_efi_system_table->con_out; -@@ -323,18 +335,38 @@ grub_console_setcursor (struct grub_term_output *term __attribute__ ((unused)), - } - - static grub_err_t --grub_efi_console_output_init (struct grub_term_output *term) -+grub_prepare_for_text_output(struct grub_term_output *term) - { -- grub_efi_set_text_mode (1); -+ if (grub_efi_is_finished) -+ return GRUB_ERR_BAD_DEVICE; -+ -+ if (text_mode_available != -1) -+ return text_mode_available ? 0 : GRUB_ERR_BAD_DEVICE; -+ -+ if (! grub_efi_set_text_mode (1)) -+ { -+ /* This really should never happen */ -+ grub_error (GRUB_ERR_BAD_DEVICE, "cannot set text mode"); -+ text_mode_available = 0; -+ return GRUB_ERR_BAD_DEVICE; -+ } -+ - grub_console_setcursor (term, 1); -+ if (text_colorstate != -1) -+ grub_console_setcolorstate (term, text_colorstate); -+ text_mode_available = 1; - return 0; - } - - static grub_err_t - grub_efi_console_output_fini (struct grub_term_output *term) - { -+ if (text_mode_available != 1) -+ return 0; -+ - grub_console_setcursor (term, 0); - grub_efi_set_text_mode (0); -+ text_mode_available = -1; - return 0; - } - -@@ -348,7 +380,6 @@ static struct grub_term_input grub_console_term_input = - static struct grub_term_output grub_console_term_output = - { - .name = "console", -- .init = grub_efi_console_output_init, - .fini = grub_efi_console_output_fini, - .putchar = grub_console_putchar, - .getwh = grub_console_getwh, -@@ -364,14 +395,6 @@ static struct grub_term_output grub_console_term_output = - void - grub_console_init (void) - { -- /* FIXME: it is necessary to consider the case where no console control -- is present but the default is already in text mode. */ -- if (! grub_efi_set_text_mode (1)) -- { -- grub_error (GRUB_ERR_BAD_DEVICE, "cannot set text mode"); -- return; -- } -- - grub_term_register_output ("console", &grub_console_term_output); - grub_term_register_input ("console", &grub_console_term_input); - } --- -1.8.3.1 - diff --git a/0182-grub-set-bootflag-Update-comment-about-running-as-ro.patch b/0123-grub-set-bootflag-Update-comment-about-running-as-ro.patch similarity index 79% rename from 0182-grub-set-bootflag-Update-comment-about-running-as-ro.patch rename to 0123-grub-set-bootflag-Update-comment-about-running-as-ro.patch index abaf89c..cd4ef77 100644 --- a/0182-grub-set-bootflag-Update-comment-about-running-as-ro.patch +++ b/0123-grub-set-bootflag-Update-comment-about-running-as-ro.patch @@ -1,8 +1,8 @@ -From 791c8d7fcd59c406f5d61e79950cdf08bd732617 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Wed, 13 Nov 2019 12:15:43 +0100 -Subject: [PATCH 182/220] grub-set-bootflag: Update comment about running as - root through pkexec +Subject: [PATCH] grub-set-bootflag: Update comment about running as root + through pkexec We have stopped using pkexec for grub-set-bootflag, instead it is now installed suid root, update the comment accordingly. @@ -13,7 +13,7 @@ Signed-off-by: Hans de Goede 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/grub-set-bootflag.c b/util/grub-set-bootflag.c -index 6a79ee6..65d74ce 100644 +index 6a79ee67444..65d74ce010f 100644 --- a/util/grub-set-bootflag.c +++ b/util/grub-set-bootflag.c @@ -18,7 +18,7 @@ @@ -25,6 +25,3 @@ index 6a79ee6..65d74ce 100644 * use any grub library / util functions to allow for easy auditing. * The grub headers are only included to get certain defines. */ --- -1.8.3.1 - diff --git a/0124-EFI-console-Add-grub_console_read_key_stroke-helper-.patch b/0124-EFI-console-Add-grub_console_read_key_stroke-helper-.patch deleted file mode 100644 index bbcb6c3..0000000 --- a/0124-EFI-console-Add-grub_console_read_key_stroke-helper-.patch +++ /dev/null @@ -1,105 +0,0 @@ -From 6662c908c594e9b6bd6d3b7102c56310002cc5af Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 6 Jun 2018 15:54:44 +0200 -Subject: [PATCH 124/220] EFI: console: Add grub_console_read_key_stroke() - helper function - -This is a preparation patch for adding getkeystatus() support to the -EFI console terminal input driver. - -We can get modifier status through the simple_text_input read_key_stroke -method, but if a non-modifier key is (also) pressed the read_key_stroke -call will consume that key from the firmware's queue. - -The new grub_console_read_key_stroke() helper buffers upto 1 key-stroke. -If it has a non-modifier key buffered, it will return that one, if its -buffer is empty, it will fills its buffer by getting a new key-stroke. - -If called with consume=1 it will empty its buffer after copying the -key-data to the callers buffer, this is how getkey() will use it. - -If called with consume=0 it will keep the last key-stroke buffered, this -is how getkeystatus() will call it. This means that if a non-modifier -key gets pressed, repeated getkeystatus() calls will return the modifiers -of that key-press until it is consumed by a getkey() call. - -Signed-off-by: Hans de Goede ---- - grub-core/term/efi/console.c | 51 ++++++++++++++++++++++++++++++++++---------- - 1 file changed, 40 insertions(+), 11 deletions(-) - -diff --git a/grub-core/term/efi/console.c b/grub-core/term/efi/console.c -index 051633d..3d36c5c 100644 ---- a/grub-core/term/efi/console.c -+++ b/grub-core/term/efi/console.c -@@ -157,27 +157,56 @@ grub_console_getkey_con (struct grub_term_input *term __attribute__ ((unused))) - return grub_efi_translate_key(key); - } - -+/* -+ * When more then just modifiers are pressed, our getkeystatus() consumes a -+ * press from the queue, this function buffers the press for the regular -+ * getkey() so that it does not get lost. -+ */ - static int --grub_console_getkey_ex(struct grub_term_input *term) -+grub_console_read_key_stroke ( -+ grub_efi_simple_text_input_ex_interface_t *text_input, -+ grub_efi_key_data_t *key_data_ret, int *key_ret, -+ int consume) - { -- grub_efi_key_data_t key_data; -+ static grub_efi_key_data_t key_data; - grub_efi_status_t status; -- grub_efi_uint32_t kss; -- int key = -1; -+ int key; - -- grub_efi_simple_text_input_ex_interface_t *text_input = term->data; -+ if (!text_input) -+ return GRUB_ERR_EOF; - -- status = efi_call_2 (text_input->read_key_stroke, text_input, &key_data); -+ key = grub_efi_translate_key (key_data.key); -+ if (key == GRUB_TERM_NO_KEY) { -+ status = efi_call_2 (text_input->read_key_stroke, text_input, &key_data); -+ if (status != GRUB_EFI_SUCCESS) -+ return GRUB_ERR_EOF; - -- if (status != GRUB_EFI_SUCCESS) -- return GRUB_TERM_NO_KEY; -+ key = grub_efi_translate_key (key_data.key); -+ } - -- kss = key_data.key_state.key_shift_state; -- key = grub_efi_translate_key(key_data.key); -+ *key_data_ret = key_data; -+ *key_ret = key; -+ -+ if (consume) { -+ key_data.key.scan_code = 0; -+ key_data.key.unicode_char = 0; -+ } -+ -+ return 0; -+} -+ -+static int -+grub_console_getkey_ex(struct grub_term_input *term) -+{ -+ grub_efi_key_data_t key_data; -+ grub_efi_uint32_t kss; -+ int key = -1; - -- if (key == GRUB_TERM_NO_KEY) -+ if (grub_console_read_key_stroke (term->data, &key_data, &key, 1) || -+ key == GRUB_TERM_NO_KEY) - return GRUB_TERM_NO_KEY; - -+ kss = key_data.key_state.key_shift_state; - if (kss & GRUB_EFI_SHIFT_STATE_VALID) - { - if ((kss & GRUB_EFI_LEFT_SHIFT_PRESSED --- -1.8.3.1 - diff --git a/0183-grub-set-bootflag-Write-new-env-to-tmpfile-and-then-.patch b/0124-grub-set-bootflag-Write-new-env-to-tmpfile-and-then-.patch similarity index 95% rename from 0183-grub-set-bootflag-Write-new-env-to-tmpfile-and-then-.patch rename to 0124-grub-set-bootflag-Write-new-env-to-tmpfile-and-then-.patch index a97854d..122bf68 100644 --- a/0183-grub-set-bootflag-Write-new-env-to-tmpfile-and-then-.patch +++ b/0124-grub-set-bootflag-Write-new-env-to-tmpfile-and-then-.patch @@ -1,8 +1,7 @@ -From d70d66650887f945e402dd0e1099c9d639d6dc8b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Wed, 13 Nov 2019 13:02:01 +0100 -Subject: [PATCH 183/220] grub-set-bootflag: Write new env to tmpfile and then - rename +Subject: [PATCH] grub-set-bootflag: Write new env to tmpfile and then rename Make the grubenv writing code in grub-set-bootflag more robust by writing the modified grubenv to a tmpfile first and then renaming the @@ -14,7 +13,7 @@ Signed-off-by: Hans de Goede 1 file changed, 78 insertions(+), 9 deletions(-) diff --git a/util/grub-set-bootflag.c b/util/grub-set-bootflag.c -index 65d74ce..d1c5e28 100644 +index 65d74ce010f..d1c5e28862b 100644 --- a/util/grub-set-bootflag.c +++ b/util/grub-set-bootflag.c @@ -28,7 +28,9 @@ @@ -151,6 +150,3 @@ index 65d74ce..d1c5e28 100644 return 0; } --- -1.8.3.1 - diff --git a/0125-EFI-console-Implement-getkeystatus-support.patch b/0125-EFI-console-Implement-getkeystatus-support.patch deleted file mode 100644 index 3410681..0000000 --- a/0125-EFI-console-Implement-getkeystatus-support.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 05bea373a5f88292528ed2b2fef16448f0265771 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 6 Jun 2018 16:16:47 +0200 -Subject: [PATCH 125/220] EFI: console: Implement getkeystatus() support - -Implement getkeystatus() support. - -Note that if a non-modifier key gets pressed and repeated calls to -getkeystatus() are made then it will return the modifier status at the -time of the non-modifier key, until that key-press gets consumed by a -getkey() call. - -This is a side-effect of how the EFI simple-text-input protocol works -and cannot be avoided. - -Signed-off-by: Hans de Goede ---- - grub-core/term/efi/console.c | 34 ++++++++++++++++++++++++++++++++++ - 1 file changed, 34 insertions(+) - -diff --git a/grub-core/term/efi/console.c b/grub-core/term/efi/console.c -index 3d36c5c..92dd499 100644 ---- a/grub-core/term/efi/console.c -+++ b/grub-core/term/efi/console.c -@@ -223,6 +223,39 @@ grub_console_getkey_ex(struct grub_term_input *term) - return key; - } - -+static int -+grub_console_getkeystatus(struct grub_term_input *term) -+{ -+ grub_efi_key_data_t key_data; -+ grub_efi_uint32_t kss; -+ int key, mods = 0; -+ -+ if (grub_efi_is_finished) -+ return 0; -+ -+ if (grub_console_read_key_stroke (term->data, &key_data, &key, 0)) -+ return 0; -+ -+ kss = key_data.key_state.key_shift_state; -+ if (kss & GRUB_EFI_SHIFT_STATE_VALID) -+ { -+ if (kss & GRUB_EFI_LEFT_SHIFT_PRESSED) -+ mods |= GRUB_TERM_STATUS_LSHIFT; -+ if (kss & GRUB_EFI_RIGHT_SHIFT_PRESSED) -+ mods |= GRUB_TERM_STATUS_RSHIFT; -+ if (kss & GRUB_EFI_LEFT_ALT_PRESSED) -+ mods |= GRUB_TERM_STATUS_LALT; -+ if (kss & GRUB_EFI_RIGHT_ALT_PRESSED) -+ mods |= GRUB_TERM_STATUS_RALT; -+ if (kss & GRUB_EFI_LEFT_CONTROL_PRESSED) -+ mods |= GRUB_TERM_STATUS_LCTRL; -+ if (kss & GRUB_EFI_RIGHT_CONTROL_PRESSED) -+ mods |= GRUB_TERM_STATUS_RCTRL; -+ } -+ -+ return mods; -+} -+ - static grub_err_t - grub_efi_console_input_init (struct grub_term_input *term) - { -@@ -403,6 +436,7 @@ static struct grub_term_input grub_console_term_input = - { - .name = "console", - .getkey = grub_console_getkey, -+ .getkeystatus = grub_console_getkeystatus, - .init = grub_efi_console_input_init, - }; - --- -1.8.3.1 - diff --git a/0185-grub.d-Fix-boot_indeterminate-getting-set-on-boot_su.patch b/0125-grub.d-Fix-boot_indeterminate-getting-set-on-boot_su.patch similarity index 87% rename from 0185-grub.d-Fix-boot_indeterminate-getting-set-on-boot_su.patch rename to 0125-grub.d-Fix-boot_indeterminate-getting-set-on-boot_su.patch index 5845ccf..a32c146 100644 --- a/0185-grub.d-Fix-boot_indeterminate-getting-set-on-boot_su.patch +++ b/0125-grub.d-Fix-boot_indeterminate-getting-set-on-boot_su.patch @@ -1,8 +1,11 @@ -From cdefb84f0b4e7773ebf97259b6f89445f39a44d8 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Tue, 26 Nov 2019 09:51:41 +0100 -Subject: [PATCH 185/220] grub.d: Fix boot_indeterminate getting set on - boot_success=0 boot +Subject: [PATCH] grub.d: Fix boot_indeterminate getting set on boot_success=0 + boot +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit The "grub.d: Split out boot success reset from menu auto hide script" not only moved the code to clear boot_success and boot_indeterminate @@ -42,12 +45,15 @@ boot_indeterminate to 2 when it was 1 before. Fixes: "grub.d: Split out boot success reset from menu auto hide script" Signed-off-by: Hans de Goede +[jpokorny: 01_menu_auto_hide.in: fix a then/than typo] +Signed-off-by: Jan Pokorný +Signed-off-by: Robbie Harwood --- util/grub.d/10_reset_boot_success.in | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/util/grub.d/10_reset_boot_success.in b/util/grub.d/10_reset_boot_success.in -index 6c88d93..737e1ae 100644 +index 6c88d933dde..e73f4137b36 100644 --- a/util/grub.d/10_reset_boot_success.in +++ b/util/grub.d/10_reset_boot_success.in @@ -6,18 +6,18 @@ @@ -67,12 +73,9 @@ index 6c88d93..737e1ae 100644 set boot_indeterminate=0 -else - increment boot_indeterminate -+# Avoid boot_indeterminate causing the menu to be hidden more then once ++# Avoid boot_indeterminate causing the menu to be hidden more than once +elif [ "\${boot_indeterminate}" = "1" ]; then + set boot_indeterminate=2 fi # Reset boot_success for current boot set boot_success=0 --- -1.8.3.1 - diff --git a/0190-Add-start-symbol-for-RISC-V.patch b/0126-Add-start-symbol-for-RISC-V.patch similarity index 81% rename from 0190-Add-start-symbol-for-RISC-V.patch rename to 0126-Add-start-symbol-for-RISC-V.patch index b5538a1..677efae 100644 --- a/0190-Add-start-symbol-for-RISC-V.patch +++ b/0126-Add-start-symbol-for-RISC-V.patch @@ -1,7 +1,7 @@ -From 02d1800799c3ada95d10af90af4d4ed3a479f2e3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Abdurachmanov Date: Sat, 9 Nov 2019 19:51:57 +0000 -Subject: [PATCH 190/220] Add start symbol for RISC-V +Subject: [PATCH] Add start symbol for RISC-V All other architectures have start symbol. @@ -15,7 +15,7 @@ Signed-off-by: David Abdurachmanov 1 file changed, 1 insertion(+) diff --git a/grub-core/kern/riscv/efi/startup.S b/grub-core/kern/riscv/efi/startup.S -index f2a7b2b..7817731 100644 +index f2a7b2b1ede..781773136e8 100644 --- a/grub-core/kern/riscv/efi/startup.S +++ b/grub-core/kern/riscv/efi/startup.S @@ -29,6 +29,7 @@ @@ -26,6 +26,3 @@ index f2a7b2b..7817731 100644 FUNCTION(_start) /* * EFI_SYSTEM_TABLE and EFI_HANDLE are passed in a1/a0. --- -1.8.3.1 - diff --git a/0126-Make-grub_getkeystatus-helper-funtion-available-ever.patch b/0126-Make-grub_getkeystatus-helper-funtion-available-ever.patch deleted file mode 100644 index c49a787..0000000 --- a/0126-Make-grub_getkeystatus-helper-funtion-available-ever.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 493de1bf8d04c9129efd66e7134eef12f436aba4 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 6 Jun 2018 16:47:11 +0200 -Subject: [PATCH 126/220] Make grub_getkeystatus helper funtion available - everywhere - -Move the grub_getkeystatus helper function from -grub-core/commands/keystatus.c to grub-core/kern/term.c -and export it so that it can be used outside of the -keystatus command code too. - -Signed-off-by: Hans de Goede ---- - grub-core/commands/keystatus.c | 18 ------------------ - grub-core/kern/term.c | 18 ++++++++++++++++++ - include/grub/term.h | 1 + - 3 files changed, 19 insertions(+), 18 deletions(-) - -diff --git a/grub-core/commands/keystatus.c b/grub-core/commands/keystatus.c -index 460cf4e..ff3f587 100644 ---- a/grub-core/commands/keystatus.c -+++ b/grub-core/commands/keystatus.c -@@ -35,24 +35,6 @@ static const struct grub_arg_option options[] = - {0, 0, 0, 0, 0, 0} - }; - --static int --grub_getkeystatus (void) --{ -- int status = 0; -- grub_term_input_t term; -- -- if (grub_term_poll_usb) -- grub_term_poll_usb (0); -- -- FOR_ACTIVE_TERM_INPUTS(term) -- { -- if (term->getkeystatus) -- status |= term->getkeystatus (term); -- } -- -- return status; --} -- - static grub_err_t - grub_cmd_keystatus (grub_extcmd_context_t ctxt, - int argc __attribute__ ((unused)), -diff --git a/grub-core/kern/term.c b/grub-core/kern/term.c -index 07720ee..93bd337 100644 ---- a/grub-core/kern/term.c -+++ b/grub-core/kern/term.c -@@ -120,6 +120,24 @@ grub_getkey (void) - } - } - -+int -+grub_getkeystatus (void) -+{ -+ int status = 0; -+ grub_term_input_t term; -+ -+ if (grub_term_poll_usb) -+ grub_term_poll_usb (0); -+ -+ FOR_ACTIVE_TERM_INPUTS(term) -+ { -+ if (term->getkeystatus) -+ status |= term->getkeystatus (term); -+ } -+ -+ return status; -+} -+ - void - grub_refresh (void) - { -diff --git a/include/grub/term.h b/include/grub/term.h -index 8117e2a..c215133 100644 ---- a/include/grub/term.h -+++ b/include/grub/term.h -@@ -327,6 +327,7 @@ grub_term_unregister_output (grub_term_output_t term) - void grub_putcode (grub_uint32_t code, struct grub_term_output *term); - int EXPORT_FUNC(grub_getkey) (void); - int EXPORT_FUNC(grub_getkey_noblock) (void); -+int EXPORT_FUNC(grub_getkeystatus) (void); - void grub_cls (void); - void EXPORT_FUNC(grub_refresh) (void); - void grub_puts_terminal (const char *str, struct grub_term_output *term); --- -1.8.3.1 - diff --git a/0127-Accept-ESC-F8-and-holding-SHIFT-as-user-interrupt-ke.patch b/0127-Accept-ESC-F8-and-holding-SHIFT-as-user-interrupt-ke.patch deleted file mode 100644 index d7516f9..0000000 --- a/0127-Accept-ESC-F8-and-holding-SHIFT-as-user-interrupt-ke.patch +++ /dev/null @@ -1,98 +0,0 @@ -From a4df3e0fa8fa0e188889883195e5b7830def4cd7 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 26 Mar 2018 16:15:53 +0200 -Subject: [PATCH 127/220] Accept ESC, F8 and holding SHIFT as user interrupt - keys - -On some devices the ESC key is the hotkey to enter the BIOS/EFI setup -screen, making it really hard to time pressing it right. Besides that -ESC is also pretty hard to discover for a user who does not know it -will unhide the menu. - -This commit makes F8, which used to be the hotkey to show the Windows -boot menu during boot for a long long time, also interrupt sleeps / -stop the menu countdown. - -This solves the ESC gets into the BIOS setup and also somewhat solves -the discoverability issue, but leaves the timing issue unresolved. - -This commit fixes the timing issue by also adding support for keeping -SHIFT pressed during boot to stop the menu countdown. This matches -what Ubuntu is doing, which should also help with discoverability. - -Signed-off-by: Hans de Goede ---- - grub-core/commands/sleep.c | 2 +- - grub-core/kern/term.c | 16 ++++++++++++++++ - grub-core/normal/menu.c | 2 +- - include/grub/term.h | 1 + - 4 files changed, 19 insertions(+), 2 deletions(-) - -diff --git a/grub-core/commands/sleep.c b/grub-core/commands/sleep.c -index e77e790..a1370b7 100644 ---- a/grub-core/commands/sleep.c -+++ b/grub-core/commands/sleep.c -@@ -55,7 +55,7 @@ grub_interruptible_millisleep (grub_uint32_t ms) - start = grub_get_time_ms (); - - while (grub_get_time_ms () - start < ms) -- if (grub_getkey_noblock () == GRUB_TERM_ESC) -+ if (grub_key_is_interrupt (grub_getkey_noblock ())) - return 1; - - return 0; -diff --git a/grub-core/kern/term.c b/grub-core/kern/term.c -index 93bd337..6cae4c2 100644 ---- a/grub-core/kern/term.c -+++ b/grub-core/kern/term.c -@@ -138,6 +138,22 @@ grub_getkeystatus (void) - return status; - } - -+int -+grub_key_is_interrupt (int key) -+{ -+ /* ESC sometimes is the BIOS setup hotkey and may be hard to discover, also -+ check F8, which was the key to get the Windows bootmenu for a long time. */ -+ if (key == GRUB_TERM_ESC || key == GRUB_TERM_KEY_F8) -+ return 1; -+ -+ /* Pressing keys at the right time during boot is hard to time, also allow -+ interrupting sleeps / the menu countdown by keeping shift pressed. */ -+ if (grub_getkeystatus() & (GRUB_TERM_STATUS_LSHIFT|GRUB_TERM_STATUS_RSHIFT)) -+ return 1; -+ -+ return 0; -+} -+ - void - grub_refresh (void) - { -diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c -index 783bde5..046a1fb 100644 ---- a/grub-core/normal/menu.c -+++ b/grub-core/normal/menu.c -@@ -655,7 +655,7 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot) - if (entry >= 0) - break; - } -- if (key == GRUB_TERM_ESC) -+ if (grub_key_is_interrupt (key)) - { - timeout = -1; - break; -diff --git a/include/grub/term.h b/include/grub/term.h -index c215133..2b079c2 100644 ---- a/include/grub/term.h -+++ b/include/grub/term.h -@@ -328,6 +328,7 @@ void grub_putcode (grub_uint32_t code, struct grub_term_output *term); - int EXPORT_FUNC(grub_getkey) (void); - int EXPORT_FUNC(grub_getkey_noblock) (void); - int EXPORT_FUNC(grub_getkeystatus) (void); -+int EXPORT_FUNC(grub_key_is_interrupt) (int key); - void grub_cls (void); - void EXPORT_FUNC(grub_refresh) (void); - void grub_puts_terminal (const char *str, struct grub_term_output *term); --- -1.8.3.1 - diff --git a/0127-bootstrap.conf-Force-autogen.sh-to-use-python3.patch b/0127-bootstrap.conf-Force-autogen.sh-to-use-python3.patch new file mode 100644 index 0000000..5c3b968 --- /dev/null +++ b/0127-bootstrap.conf-Force-autogen.sh-to-use-python3.patch @@ -0,0 +1,33 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Wed, 15 Jan 2020 12:47:46 +0100 +Subject: [PATCH] bootstrap.conf: Force autogen.sh to use python3 + +The python-unversioned-command package is not installed in the buildroot, +but the bootstrap script expects the python command to be present if one +is not defined. So building the package leads to the following error: + +./autogen.sh: line 20: python: command not found + +This is harmless since gnulib is included as a source anyways, because the +builders can't download. But still the issue should be fixed by forcing to +use python3 that's the default in Fedora now. + +Signed-off-by: Javier Martinez Canillas +--- + bootstrap.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/bootstrap.conf b/bootstrap.conf +index 452f4d79b0d..03f10930230 100644 +--- a/bootstrap.conf ++++ b/bootstrap.conf +@@ -93,7 +93,7 @@ bootstrap_post_import_hook () { + patch -d po -p3 \ + < "po/gettext-patches/$patchname.patch" + done +- FROM_BOOTSTRAP=1 ./autogen.sh ++ PYTHON=python3 FROM_BOOTSTRAP=1 ./autogen.sh + set +e # bootstrap expects this + } + diff --git a/0194-efi-http-Export-fw-http-_path-variables-to-make-them.patch b/0128-efi-http-Export-fw-http-_path-variables-to-make-them.patch similarity index 84% rename from 0194-efi-http-Export-fw-http-_path-variables-to-make-them.patch rename to 0128-efi-http-Export-fw-http-_path-variables-to-make-them.patch index 0fd4597..74183bc 100644 --- a/0194-efi-http-Export-fw-http-_path-variables-to-make-them.patch +++ b/0128-efi-http-Export-fw-http-_path-variables-to-make-them.patch @@ -1,8 +1,7 @@ -From 14623de497794581948d8df3e69d22833588da43 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 5 Mar 2020 16:21:47 +0100 -Subject: [PATCH 194/220] efi/http: Export {fw,http}_path variables to make - them global +Subject: [PATCH] efi/http: Export {fw,http}_path variables to make them global The fw_path environment variable is used by http_configure() function to determine the HTTP path that should be used as prefix when using relative @@ -26,10 +25,10 @@ Signed-off-by: Javier Martinez Canillas 2 files changed, 2 insertions(+) diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c -index dcf4872..9bf6a8b 100644 +index 1c540fc8c26..b573be6650d 100644 --- a/grub-core/kern/main.c +++ b/grub-core/kern/main.c -@@ -142,6 +142,7 @@ grub_set_prefix_and_root (void) +@@ -143,6 +143,7 @@ grub_set_prefix_and_root (void) if (fw_path) { grub_env_set ("fw_path", fw_path); @@ -38,7 +37,7 @@ index dcf4872..9bf6a8b 100644 grub_free (fw_path); } diff --git a/grub-core/net/efi/http.c b/grub-core/net/efi/http.c -index de351b2..755b7a6 100644 +index de351b2cd03..755b7a6d054 100644 --- a/grub-core/net/efi/http.c +++ b/grub-core/net/efi/http.c @@ -39,6 +39,7 @@ http_configure (struct grub_efi_net_device *dev, int prefer_ip6) @@ -49,6 +48,3 @@ index de351b2..755b7a6 100644 } } --- -1.8.3.1 - diff --git a/0195-efi-http-Enclose-literal-IPv6-addresses-in-square-br.patch b/0129-efi-http-Enclose-literal-IPv6-addresses-in-square-br.patch similarity index 95% rename from 0195-efi-http-Enclose-literal-IPv6-addresses-in-square-br.patch rename to 0129-efi-http-Enclose-literal-IPv6-addresses-in-square-br.patch index 995d9c7..c394549 100644 --- a/0195-efi-http-Enclose-literal-IPv6-addresses-in-square-br.patch +++ b/0129-efi-http-Enclose-literal-IPv6-addresses-in-square-br.patch @@ -1,8 +1,7 @@ -From 0b3d15aa1bae1afbc7bd0b50a12e56d4f9b1248d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 5 Mar 2020 16:21:58 +0100 -Subject: [PATCH 195/220] efi/http: Enclose literal IPv6 addresses in square - brackets +Subject: [PATCH] efi/http: Enclose literal IPv6 addresses in square brackets According to RFC 2732 (https://www.ietf.org/rfc/rfc2732.txt), literal IPv6 addresses must be enclosed in square brackets. But GRUB currently does not @@ -44,7 +43,7 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/grub-core/net/efi/http.c b/grub-core/net/efi/http.c -index 755b7a6..fc8cb25 100644 +index 755b7a6d054..fc8cb25ae0a 100644 --- a/grub-core/net/efi/http.c +++ b/grub-core/net/efi/http.c @@ -158,13 +158,7 @@ efihttp_request (grub_efi_http_t *http, char *server, char *name, int use_https, @@ -113,6 +112,3 @@ index 755b7a6..fc8cb25 100644 if (status != GRUB_EFI_SUCCESS) { efi_call_1 (b->close_event, request_token.event); --- -1.8.3.1 - diff --git a/0130-Output-a-menu-entry-for-firmware-setup-on-UEFI-FastB.patch b/0130-Output-a-menu-entry-for-firmware-setup-on-UEFI-FastB.patch deleted file mode 100644 index 2b3fb81..0000000 --- a/0130-Output-a-menu-entry-for-firmware-setup-on-UEFI-FastB.patch +++ /dev/null @@ -1,97 +0,0 @@ -From ebd3c8a460e55ac9507f1c690d49b6919cf908ad Mon Sep 17 00:00:00 2001 -From: Steve Langasek -Date: Mon, 13 Jan 2014 12:13:12 +0000 -Subject: [PATCH 130/220] Output a menu entry for firmware setup on UEFI - FastBoot systems - -If fastboot is enabled in the BIOS then often it is not possible to -enter the firmware setup menu, add a menu entry for this. - -hdegoede: Cherry picked the Ubuntu patch from: -https://git.launchpad.net/~ubuntu-core-dev/grub/+git/ubuntu/tree/debian/patches/uefi_firmware_setup.patch -Into the Fedora / RH grub version - -According to: -https://git.launchpad.net/~ubuntu-core-dev/grub/+git/ubuntu/tree/debian/copyright -The patch is licensed under GPL-3+ - -[hdegoede: fix use with /sys/firmware/efi/efivars] -Signed-off-by: Hans de Goede ---- - Makefile.util.def | 6 ++++++ - util/grub.d/30_uefi-firmware.in | 46 +++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 52 insertions(+) - create mode 100644 util/grub.d/30_uefi-firmware.in - -diff --git a/Makefile.util.def b/Makefile.util.def -index 026b458..89a9da1 100644 ---- a/Makefile.util.def -+++ b/Makefile.util.def -@@ -546,6 +546,12 @@ script = { - }; - - script = { -+ name = '30_uefi-firmware'; -+ common = util/grub.d/30_uefi-firmware.in; -+ installdir = grubconf; -+}; -+ -+script = { - name = '40_custom'; - common = util/grub.d/40_custom.in; - installdir = grubconf; -diff --git a/util/grub.d/30_uefi-firmware.in b/util/grub.d/30_uefi-firmware.in -new file mode 100644 -index 0000000..93ececf ---- /dev/null -+++ b/util/grub.d/30_uefi-firmware.in -@@ -0,0 +1,46 @@ -+#! /bin/sh -+set -e -+ -+# grub-mkconfig helper script. -+# Copyright (C) 2012 Free Software Foundation, Inc. -+# -+# GRUB is free software: you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation, either version 3 of the License, or -+# (at your option) any later version. -+# -+# GRUB is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with GRUB. If not, see . -+ -+prefix="@prefix@" -+exec_prefix="@exec_prefix@" -+datarootdir="@datarootdir@" -+ -+export TEXTDOMAIN=@PACKAGE@ -+export TEXTDOMAINDIR="@localedir@" -+ -+. "@datadir@/@PACKAGE@/grub-mkconfig_lib" -+ -+efi_vars_dir=/sys/firmware/efi/efivars -+EFI_GLOBAL_VARIABLE=8be4df61-93ca-11d2-aa0d-00e098032b8c -+OsIndications="$efi_vars_dir/OsIndicationsSupported-$EFI_GLOBAL_VARIABLE" -+ -+if [ -e "$OsIndications" ] && \ -+ [ "$(( $(printf 0x%x \'"$(cat $OsIndications | cut -b5)") & 1 ))" = 1 ]; then -+ LABEL="System setup" -+ -+ gettext_printf "Adding boot menu entry for EFI firmware configuration\n" >&2 -+ -+ onstr="$(gettext_printf "(on %s)" "${DEVICE}")" -+ -+ cat << EOF -+menuentry '$LABEL' \$menuentry_id_option 'uefi-firmware' { -+ fwsetup -+} -+EOF -+fi --- -1.8.3.1 - diff --git a/0196-efi-net-Allow-to-specify-a-port-number-in-addresses.patch b/0130-efi-net-Allow-to-specify-a-port-number-in-addresses.patch similarity index 89% rename from 0196-efi-net-Allow-to-specify-a-port-number-in-addresses.patch rename to 0130-efi-net-Allow-to-specify-a-port-number-in-addresses.patch index 79750fc..209aed8 100644 --- a/0196-efi-net-Allow-to-specify-a-port-number-in-addresses.patch +++ b/0130-efi-net-Allow-to-specify-a-port-number-in-addresses.patch @@ -1,7 +1,7 @@ -From f1933ae113b13658743a43e1bbbcca76d88e45e3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 9 Mar 2020 15:29:45 +0100 -Subject: [PATCH 196/220] efi/net: Allow to specify a port number in addresses +Subject: [PATCH] efi/net: Allow to specify a port number in addresses The grub_efi_net_parse_address() function is not covering the case where a port number is specified in an IPv4 or IPv6 address, so will fail to parse @@ -25,7 +25,7 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grub-core/net/efi/net.c b/grub-core/net/efi/net.c -index 6603cd8..8457393 100644 +index 6603cd83edc..84573937b18 100644 --- a/grub-core/net/efi/net.c +++ b/grub-core/net/efi/net.c @@ -742,7 +742,7 @@ grub_efi_net_parse_address (const char *address, @@ -46,6 +46,3 @@ index 6603cd8..8457393 100644 { ip6->prefix_length = 128; ip6->is_anycast = 0; --- -1.8.3.1 - diff --git a/0197-efi-ip4_config-Improve-check-to-detect-literal-IPv6-.patch b/0131-efi-ip4_config-Improve-check-to-detect-literal-IPv6-.patch similarity index 87% rename from 0197-efi-ip4_config-Improve-check-to-detect-literal-IPv6-.patch rename to 0131-efi-ip4_config-Improve-check-to-detect-literal-IPv6-.patch index cb8da9f..f92dee4 100644 --- a/0197-efi-ip4_config-Improve-check-to-detect-literal-IPv6-.patch +++ b/0131-efi-ip4_config-Improve-check-to-detect-literal-IPv6-.patch @@ -1,7 +1,7 @@ -From 9c470c8bc1921a38d15c568f25aada9e2bdb3c71 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 9 Mar 2020 15:30:05 +0100 -Subject: [PATCH 197/220] efi/ip4_config: Improve check to detect literal IPv6 +Subject: [PATCH] efi/ip4_config: Improve check to detect literal IPv6 addresses The grub_efi_string_to_ip4_address() function wrongly assumes that an IPv6 @@ -21,7 +21,7 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/grub-core/net/efi/ip4_config.c b/grub-core/net/efi/ip4_config.c -index b711a5d..313c818 100644 +index b711a5d9457..313c818b184 100644 --- a/grub-core/net/efi/ip4_config.c +++ b/grub-core/net/efi/ip4_config.c @@ -56,9 +56,20 @@ int @@ -46,6 +46,3 @@ index b711a5d..313c818 100644 for (i = 0; i < 4; i++) { unsigned long t; --- -1.8.3.1 - diff --git a/0198-efi-net-Print-a-debug-message-if-parsing-the-address.patch b/0132-efi-net-Print-a-debug-message-if-parsing-the-address.patch similarity index 92% rename from 0198-efi-net-Print-a-debug-message-if-parsing-the-address.patch rename to 0132-efi-net-Print-a-debug-message-if-parsing-the-address.patch index b38c6a7..33d8f88 100644 --- a/0198-efi-net-Print-a-debug-message-if-parsing-the-address.patch +++ b/0132-efi-net-Print-a-debug-message-if-parsing-the-address.patch @@ -1,8 +1,7 @@ -From 51b1f81e7744031f7b3ad96a8264e493be5b069c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 10 Mar 2020 11:23:49 +0100 -Subject: [PATCH 198/220] efi/net: Print a debug message if parsing the address - fails +Subject: [PATCH] efi/net: Print a debug message if parsing the address fails Currently if parsing the address fails an error message is printed. But in most cases this isn't a fatal error since the grub_efi_net_parse_address() @@ -23,7 +22,7 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/grub-core/net/efi/net.c b/grub-core/net/efi/net.c -index 8457393..a3f0535 100644 +index 84573937b18..a3f0535d43c 100644 --- a/grub-core/net/efi/net.c +++ b/grub-core/net/efi/net.c @@ -778,9 +778,9 @@ grub_efi_net_parse_address (const char *address, @@ -67,6 +66,3 @@ index 8457393..a3f0535 100644 { grub_error (GRUB_ERR_UNKNOWN_DEVICE, N_("disk `%s' no route found"), name); --- -1.8.3.1 - diff --git a/0133-kern-term-Also-accept-F8-as-a-user-interrupt-key.patch b/0133-kern-term-Also-accept-F8-as-a-user-interrupt-key.patch new file mode 100644 index 0000000..3dd525a --- /dev/null +++ b/0133-kern-term-Also-accept-F8-as-a-user-interrupt-key.patch @@ -0,0 +1,30 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Wed, 22 Apr 2020 12:41:52 +0200 +Subject: [PATCH] kern/term: Also accept F8 as a user interrupt key + +Make F8, which used to be the hotkey to show the Windows boot menu during +boot for a long long time, also interrupt sleeps / stop the menu countdown. + +Signed-off-by: Javier Martinez Canillas +--- + grub-core/kern/term.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/grub-core/kern/term.c b/grub-core/kern/term.c +index 14d59649832..4d61f4e9790 100644 +--- a/grub-core/kern/term.c ++++ b/grub-core/kern/term.c +@@ -144,9 +144,10 @@ grub_key_is_interrupt (int key) + /* + * ESC sometimes is the BIOS setup hotkey and may be hard to discover, also + * check F4, which was chosen because is not used as a hotkey to enter the +- * BIOS setup by any vendor. ++ * BIOS setup by any vendor. Also, F8 which was the key to get the Windows ++ * bootmenu for a long time. + */ +- if (key == GRUB_TERM_ESC || key == GRUB_TERM_KEY_F4) ++ if (key == GRUB_TERM_ESC || key == GRUB_TERM_KEY_F4 || key == GRUB_TERM_KEY_F8) + return 1; + + /* diff --git a/0205-efi-Set-image-base-address-before-jumping-to-the-PE-.patch b/0134-efi-Set-image-base-address-before-jumping-to-the-PE-.patch similarity index 76% rename from 0205-efi-Set-image-base-address-before-jumping-to-the-PE-.patch rename to 0134-efi-Set-image-base-address-before-jumping-to-the-PE-.patch index a2987a4..336bcf1 100644 --- a/0205-efi-Set-image-base-address-before-jumping-to-the-PE-.patch +++ b/0134-efi-Set-image-base-address-before-jumping-to-the-PE-.patch @@ -1,8 +1,8 @@ -From c565dc1a029d823a601716a30d06f9d6626d4a93 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 23 Apr 2020 15:06:46 +0200 -Subject: [PATCH 205/220] efi: Set image base address before jumping to the - PE/COFF entry point +Subject: [PATCH] efi: Set image base address before jumping to the PE/COFF + entry point Upstream GRUB uses the EFI LoadImage() and StartImage() to boot the Linux kernel. But our custom EFI loader that supports Secure Boot instead uses @@ -21,15 +21,15 @@ and print the following warning message: EFI stub: ERROR: FIRMWARE BUG: efi_loaded_image_t::image_base has bogus value -Resolves: rhbz#1825411 +Resolves: rhbz#1814690 Signed-off-by: Javier Martinez Canillas --- - grub-core/loader/efi/linux.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) + grub-core/loader/efi/linux.c | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c -index b56ea0b..e09f824 100644 +index 0622dfa48d4..e8b9ecb17f6 100644 --- a/grub-core/loader/efi/linux.c +++ b/grub-core/loader/efi/linux.c @@ -72,6 +72,7 @@ grub_err_t @@ -40,7 +40,7 @@ index b56ea0b..e09f824 100644 handover_func hf; int offset = 0; -@@ -79,6 +80,17 @@ grub_efi_linux_boot (void *kernel_addr, grub_off_t handover_offset, +@@ -79,6 +80,19 @@ grub_efi_linux_boot (void *kernel_addr, grub_off_t handover_offset, offset = 512; #endif @@ -55,9 +55,8 @@ index b56ea0b..e09f824 100644 + else + grub_dprintf ("linux", "Loaded Image base address could not be set\n"); + - grub_dprintf ("linux", "kernel_addr: %p handover_offset: %p params: %p\n", - kernel_addr, (void *)(grub_efi_uintn_t)handover_offset, kernel_params); ++ grub_dprintf ("linux", "kernel_addr: %p handover_offset: %p params: %p\n", ++ kernel_addr, (void *)(grub_efi_uintn_t)handover_offset, kernel_params); hf = (handover_func)((char *)kernel_addr + handover_offset + offset); --- -1.8.3.1 - + hf (grub_efi_image_handle, grub_efi_system_table, kernel_params); + diff --git a/0211-tpm-Don-t-propagate-TPM-measurement-errors-to-the-ve.patch b/0135-tpm-Don-t-propagate-TPM-measurement-errors-to-the-ve.patch similarity index 82% rename from 0211-tpm-Don-t-propagate-TPM-measurement-errors-to-the-ve.patch rename to 0135-tpm-Don-t-propagate-TPM-measurement-errors-to-the-ve.patch index 34d34c8..747773d 100644 --- a/0211-tpm-Don-t-propagate-TPM-measurement-errors-to-the-ve.patch +++ b/0135-tpm-Don-t-propagate-TPM-measurement-errors-to-the-ve.patch @@ -1,8 +1,8 @@ -From cf02c5792d50eb41f390dd82f8849d75ae7f2208 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Sat, 16 May 2020 11:33:18 +0200 -Subject: [PATCH 211/220] tpm: Don't propagate TPM measurement errors to the - verifiers layer +Subject: [PATCH] tpm: Don't propagate TPM measurement errors to the verifiers + layer Currently if the EFI firmware fails to do a TPM measurement for a file, the error will be propagated to the verifiers framework and so opening @@ -18,10 +18,10 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/grub-core/commands/tpm.c b/grub-core/commands/tpm.c -index 1441c49..dbaeae4 100644 +index 2052c36eaba..e287d042e6b 100644 --- a/grub-core/commands/tpm.c +++ b/grub-core/commands/tpm.c -@@ -49,7 +49,8 @@ grub_tpm_verify_init (grub_file_t io, +@@ -42,7 +42,8 @@ grub_tpm_verify_init (grub_file_t io, static grub_err_t grub_tpm_verify_write (void *context, void *buf, grub_size_t size) { @@ -31,7 +31,7 @@ index 1441c49..dbaeae4 100644 } static grub_err_t -@@ -57,7 +58,6 @@ grub_tpm_verify_string (char *str, enum grub_verify_string_type type) +@@ -50,7 +51,6 @@ grub_tpm_verify_string (char *str, enum grub_verify_string_type type) { const char *prefix = NULL; char *description; @@ -39,7 +39,7 @@ index 1441c49..dbaeae4 100644 switch (type) { -@@ -73,15 +73,15 @@ grub_tpm_verify_string (char *str, enum grub_verify_string_type type) +@@ -66,15 +66,15 @@ grub_tpm_verify_string (char *str, enum grub_verify_string_type type) } description = grub_malloc (grub_strlen (str) + grub_strlen (prefix) + 1); if (!description) @@ -60,6 +60,3 @@ index 1441c49..dbaeae4 100644 } struct grub_file_verifier grub_tpm_verifier = { --- -1.8.3.1 - diff --git a/0214-x86-efi-Reduce-maximum-bounce-buffer-size-to-16-MiB.patch b/0136-x86-efi-Reduce-maximum-bounce-buffer-size-to-16-MiB.patch similarity index 88% rename from 0214-x86-efi-Reduce-maximum-bounce-buffer-size-to-16-MiB.patch rename to 0136-x86-efi-Reduce-maximum-bounce-buffer-size-to-16-MiB.patch index a445031..825d0f7 100644 --- a/0214-x86-efi-Reduce-maximum-bounce-buffer-size-to-16-MiB.patch +++ b/0136-x86-efi-Reduce-maximum-bounce-buffer-size-to-16-MiB.patch @@ -1,7 +1,7 @@ -From c9ea6acded92ff5a4dfb336965da35e3b3407934 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 26 May 2020 16:59:28 +0200 -Subject: [PATCH 214/220] x86-efi: Reduce maximum bounce buffer size to 16 MiB +Subject: [PATCH] x86-efi: Reduce maximum bounce buffer size to 16 MiB The EFI linux loader allocates a bounce buffer to copy the initrd since in some machines doing DMA on addresses above 4GB is not possible during EFI. @@ -26,7 +26,7 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 50b7798..e5b2736 100644 +index 6bc18d5aef5..15d40d6e35b 100644 --- a/grub-core/loader/i386/efi/linux.c +++ b/grub-core/loader/i386/efi/linux.c @@ -144,7 +144,7 @@ grub_linuxefi_unload (void) @@ -38,6 +38,3 @@ index 50b7798..e5b2736 100644 static grub_ssize_t read(grub_file_t file, grub_uint8_t *bufp, grub_size_t len) --- -1.8.3.1 - diff --git a/0215-http-Prepend-prefix-when-the-HTTP-path-is-relative-a.patch b/0137-http-Prepend-prefix-when-the-HTTP-path-is-relative-a.patch similarity index 87% rename from 0215-http-Prepend-prefix-when-the-HTTP-path-is-relative-a.patch rename to 0137-http-Prepend-prefix-when-the-HTTP-path-is-relative-a.patch index a1afac7..97d2e06 100644 --- a/0215-http-Prepend-prefix-when-the-HTTP-path-is-relative-a.patch +++ b/0137-http-Prepend-prefix-when-the-HTTP-path-is-relative-a.patch @@ -1,8 +1,8 @@ -From 38e8b235d4fdb4ff0d615d83cb03e716c7fde08b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 2 Jun 2020 13:25:01 +0200 -Subject: [PATCH 215/220] http: Prepend prefix when the HTTP path is relative - as done in efi/http +Subject: [PATCH] http: Prepend prefix when the HTTP path is relative as done + in efi/http There are two different HTTP drivers that can be used when requesting an HTTP resource: the efi/http that uses the EFI_HTTP_PROTOCOL and the http @@ -20,7 +20,7 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/grub-core/net/http.c b/grub-core/net/http.c -index b52b558..7f878b5 100644 +index b52b558d631..7f878b56157 100644 --- a/grub-core/net/http.c +++ b/grub-core/net/http.c @@ -501,13 +501,20 @@ http_open (struct grub_file *file, const char *filename) @@ -45,6 +45,3 @@ index b52b558..7f878b5 100644 if (!data->filename) { grub_free (data); --- -1.8.3.1 - diff --git a/0138-Fix-a-missing-return-in-efi-export-env-and-efi-load-.patch b/0138-Fix-a-missing-return-in-efi-export-env-and-efi-load-.patch new file mode 100644 index 0000000..1657d7a --- /dev/null +++ b/0138-Fix-a-missing-return-in-efi-export-env-and-efi-load-.patch @@ -0,0 +1,27 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Wed, 16 Jan 2019 13:21:46 -0500 +Subject: [PATCH] Fix a missing return in efi-export-env and efi-load-env + commands + +Somewhere along the way this got mis-merged to include a return without +a value. Fix it up. + +Signed-off-by: Peter Jones +--- + grub-core/commands/efi/env.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/grub-core/commands/efi/env.c b/grub-core/commands/efi/env.c +index cbd13e03e81..977edb6b065 100644 +--- a/grub-core/commands/efi/env.c ++++ b/grub-core/commands/efi/env.c +@@ -149,6 +149,8 @@ grub_efi_load_env(grub_command_t cmd __attribute__ ((unused)), + + grub_envblk_iterate (envblk, NULL, set_var); + grub_free (envblk_s.buf); ++ ++ return GRUB_ERR_NONE; + } + + static grub_command_t export_cmd, loadenv_cmd; diff --git a/0139-efi-dhcp-fix-some-allocation-error-checking.patch b/0139-efi-dhcp-fix-some-allocation-error-checking.patch new file mode 100644 index 0000000..7549733 --- /dev/null +++ b/0139-efi-dhcp-fix-some-allocation-error-checking.patch @@ -0,0 +1,37 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Sun, 19 Jul 2020 17:11:06 -0400 +Subject: [PATCH] efi+dhcp: fix some allocation error checking. + +Signed-off-by: Peter Jones +--- + grub-core/net/efi/dhcp.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/grub-core/net/efi/dhcp.c b/grub-core/net/efi/dhcp.c +index dbef63d8c08..e5c79b748b0 100644 +--- a/grub-core/net/efi/dhcp.c ++++ b/grub-core/net/efi/dhcp.c +@@ -80,7 +80,7 @@ grub_efi_dhcp4_parse_dns (grub_efi_dhcp4_protocol_t *dhcp4, grub_efi_dhcp4_packe + if (status != GRUB_EFI_BUFFER_TOO_SMALL) + return NULL; + +- option_list = grub_malloc (option_count * sizeof(*option_list)); ++ option_list = grub_calloc (option_count, sizeof(*option_list)); + if (!option_list) + return NULL; + +@@ -360,8 +360,11 @@ grub_cmd_efi_bootp6 (struct grub_command *cmd __attribute__ ((unused)), + + if (status == GRUB_EFI_BUFFER_TOO_SMALL && count) + { +- options = grub_malloc (count * sizeof(*options)); +- status = efi_call_4 (dev->dhcp6->parse, dev->dhcp6, mode.ia->reply_packet, &count, options); ++ options = grub_calloc (count, sizeof(*options)); ++ if (options) ++ status = efi_call_4 (dev->dhcp6->parse, dev->dhcp6, mode.ia->reply_packet, &count, options); ++ else ++ status = GRUB_EFI_OUT_OF_RESOURCES; + } + + if (status != GRUB_EFI_SUCCESS) diff --git a/0140-efi-http-fix-some-allocation-error-checking.patch b/0140-efi-http-fix-some-allocation-error-checking.patch new file mode 100644 index 0000000..4dffab9 --- /dev/null +++ b/0140-efi-http-fix-some-allocation-error-checking.patch @@ -0,0 +1,39 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Sun, 19 Jul 2020 17:14:15 -0400 +Subject: [PATCH] efi+http: fix some allocation error checking. + +Signed-off-by: Peter Jones +--- + grub-core/net/efi/http.c | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +diff --git a/grub-core/net/efi/http.c b/grub-core/net/efi/http.c +index fc8cb25ae0a..26647a50fa4 100644 +--- a/grub-core/net/efi/http.c ++++ b/grub-core/net/efi/http.c +@@ -412,8 +412,8 @@ grub_efihttp_open (struct grub_efi_net_device *dev, + int type) + { + grub_err_t err; +- grub_off_t size; +- char *buf; ++ grub_off_t size = 0; ++ char *buf = NULL; + char *file_name = NULL; + const char *http_path; + +@@ -441,8 +441,11 @@ grub_efihttp_open (struct grub_efi_net_device *dev, + return err; + } + +- buf = grub_malloc (size); +- efihttp_read (dev, buf, size); ++ if (size) ++ { ++ buf = grub_malloc (size); ++ efihttp_read (dev, buf, size); ++ } + + file->size = size; + file->data = buf; diff --git a/0141-efi-ip-46-_config.c-fix-some-potential-allocation-ov.patch b/0141-efi-ip-46-_config.c-fix-some-potential-allocation-ov.patch new file mode 100644 index 0000000..30c21a5 --- /dev/null +++ b/0141-efi-ip-46-_config.c-fix-some-potential-allocation-ov.patch @@ -0,0 +1,127 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Sun, 19 Jul 2020 17:27:00 -0400 +Subject: [PATCH] efi/ip[46]_config.c: fix some potential allocation overflows + +In theory all of this data comes from the firmware stack and it should +be safe, but it's better to be paranoid. + +Signed-off-by: Peter Jones +--- + grub-core/net/efi/ip4_config.c | 25 ++++++++++++++++++------- + grub-core/net/efi/ip6_config.c | 13 ++++++++++--- + 2 files changed, 28 insertions(+), 10 deletions(-) + +diff --git a/grub-core/net/efi/ip4_config.c b/grub-core/net/efi/ip4_config.c +index 313c818b184..9725e928f7e 100644 +--- a/grub-core/net/efi/ip4_config.c ++++ b/grub-core/net/efi/ip4_config.c +@@ -4,15 +4,20 @@ + #include + #include + #include ++#include + + char * + grub_efi_hw_address_to_string (grub_efi_uint32_t hw_address_size, grub_efi_mac_address_t hw_address) + { + char *hw_addr, *p; +- int sz, s; +- int i; ++ grub_size_t sz, s, i; + +- sz = (int)hw_address_size * (sizeof ("XX:") - 1) + 1; ++ if (grub_mul (hw_address_size, sizeof ("XX:") - 1, &sz) || ++ grub_add (sz, 1, &sz)) ++ { ++ grub_errno = GRUB_ERR_OUT_OF_RANGE; ++ return NULL; ++ } + + hw_addr = grub_malloc (sz); + if (!hw_addr) +@@ -20,7 +25,7 @@ grub_efi_hw_address_to_string (grub_efi_uint32_t hw_address_size, grub_efi_mac_a + + p = hw_addr; + s = sz; +- for (i = 0; i < (int)hw_address_size; i++) ++ for (i = 0; i < hw_address_size; i++) + { + grub_snprintf (p, sz, "%02x:", hw_address[i]); + p += sizeof ("XX:") - 1; +@@ -238,14 +243,20 @@ grub_efi_ip4_interface_route_table (struct grub_efi_net_device *dev) + { + grub_efi_ip4_config2_interface_info_t *interface_info; + char **ret; +- int i, id; ++ int id; ++ grub_size_t i, nmemb; + + interface_info = efi_ip4_config_interface_info (dev->ip4_config); + if (!interface_info) + return NULL; + +- ret = grub_malloc (sizeof (*ret) * (interface_info->route_table_size + 1)); ++ if (grub_add (interface_info->route_table_size, 1, &nmemb)) ++ { ++ grub_errno = GRUB_ERR_OUT_OF_RANGE; ++ return NULL; ++ } + ++ ret = grub_calloc (nmemb, sizeof (*ret)); + if (!ret) + { + grub_free (interface_info); +@@ -253,7 +264,7 @@ grub_efi_ip4_interface_route_table (struct grub_efi_net_device *dev) + } + + id = 0; +- for (i = 0; i < (int)interface_info->route_table_size; i++) ++ for (i = 0; i < interface_info->route_table_size; i++) + { + char *subnet, *gateway, *mask; + grub_uint32_t u32_subnet, u32_gateway; +diff --git a/grub-core/net/efi/ip6_config.c b/grub-core/net/efi/ip6_config.c +index 017c4d05bc7..a46f6f9b685 100644 +--- a/grub-core/net/efi/ip6_config.c ++++ b/grub-core/net/efi/ip6_config.c +@@ -3,6 +3,7 @@ + #include + #include + #include ++#include + + char * + grub_efi_ip6_address_to_string (grub_efi_pxe_ipv6_address_t *address) +@@ -228,14 +229,20 @@ grub_efi_ip6_interface_route_table (struct grub_efi_net_device *dev) + { + grub_efi_ip6_config_interface_info_t *interface_info; + char **ret; +- int i, id; ++ int id; ++ grub_size_t i, nmemb; + + interface_info = efi_ip6_config_interface_info (dev->ip6_config); + if (!interface_info) + return NULL; + +- ret = grub_malloc (sizeof (*ret) * (interface_info->route_count + 1)); ++ if (grub_add (interface_info->route_count, 1, &nmemb)) ++ { ++ grub_errno = GRUB_ERR_OUT_OF_RANGE; ++ return NULL; ++ } + ++ ret = grub_calloc (nmemb, sizeof (*ret)); + if (!ret) + { + grub_free (interface_info); +@@ -243,7 +250,7 @@ grub_efi_ip6_interface_route_table (struct grub_efi_net_device *dev) + } + + id = 0; +- for (i = 0; i < (int)interface_info->route_count ; i++) ++ for (i = 0; i < interface_info->route_count ; i++) + { + char *gateway, *destination; + grub_uint64_t u64_gateway[2]; diff --git a/0141-strip-R-.note.gnu.property-at-more-places.patch b/0141-strip-R-.note.gnu.property-at-more-places.patch deleted file mode 100644 index aa8663e..0000000 --- a/0141-strip-R-.note.gnu.property-at-more-places.patch +++ /dev/null @@ -1,85 +0,0 @@ -From bb28d337980306efaaac35cf5515cdfbaecc28e3 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Fri, 3 Aug 2018 15:07:23 -0400 -Subject: [PATCH 141/220] strip "-R .note.gnu.property" at more places. - -For whatever reason, sometimes I see: - - lzma_decompress.image: file format elf32-i386 - lzma_decompress.image - architecture: i386, flags 0x00000012: - EXEC_P, HAS_SYMS - start address 0x00008200 - - Program Header: - LOAD off 0x000000c0 vaddr 0x00008200 paddr 0x00008200 align 2**5 - filesz 0x00000b10 memsz 0x00000b10 flags rwx - LOAD off 0x00000bd0 vaddr 0x080480b4 paddr 0x080480b4 align 2**2 - filesz 0x0000001c memsz 0x0000001c flags r-- - NOTE off 0x00000bd0 vaddr 0x080480b4 paddr 0x080480b4 align 2**2 - filesz 0x0000001c memsz 0x0000001c flags r-- - STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**4 - filesz 0x00000000 memsz 0x00000000 flags rw- - - Sections: - Idx Name Size VMA LMA File off Algn - 0 .note.gnu.property 0000001c 080480b4 080480b4 00000bd0 2**2 - CONTENTS, ALLOC, LOAD, READONLY, DATA - 1 .text 00000b10 00008200 00008200 000000c0 2**5 - CONTENTS, ALLOC, LOAD, CODE - SYMBOL TABLE: - 080480b4 l d .note.gnu.property 00000000 .note.gnu.property - 00008200 l d .text 00000000 .text - 00000000 l df *ABS* 00000000 startup_raw.S - ... - -Which just looks wrong no matter what to my eyes (seriously it's at -128M? Why?), and when we fail to strip it, we get: - -trillian:~/tmp/f29$ hexdump -C usr/lib/grub/i386-pc/lzma_decompress.img | tail -6 -00000b00 ff 45 e8 5a 83 c2 02 89 d1 e9 df fe ff ff 66 90 |.E.Z..........f.| -00000b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -* -0803feb0 00 00 00 00 04 00 00 00 0c 00 00 00 05 00 00 00 |................| -0803fec0 47 4e 55 00 02 00 00 c0 04 00 00 00 03 00 00 00 |GNU.............| -0803fed0 - -Which is very very much not what we want. - -Cut it out. - -Signed-off-by: Peter Jones ---- - Makefile.am | 2 +- - gentpl.py | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index bf9c1ba..0d4dd7c 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -209,7 +209,7 @@ pc-chainloader.elf: $(srcdir)/grub-core/tests/boot/kernel-8086.S $(srcdir)/grub- - $(TARGET_CC) -o $@ $< -static -DTARGET_CHAINLOADER=1 -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -ffreestanding -nostdlib -nostdinc -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0x7c00 -m32 - - pc-chainloader.bin: pc-chainloader.elf -- $(TARGET_OBJCOPY) -O binary --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .reginfo -R .rel.dyn -R .note.gnu.gold-version $< $@; -+ $(TARGET_OBJCOPY) -O binary --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property $< $@; - - ntldr.elf: $(srcdir)/grub-core/tests/boot/kernel-8086.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S - $(TARGET_CC) -o $@ $< -DTARGET_NTLDR=1 -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -static -ffreestanding -nostdlib -nostdinc -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0 -m32 -diff --git a/gentpl.py b/gentpl.py -index 95fe1a2..32cf745 100644 ---- a/gentpl.py -+++ b/gentpl.py -@@ -779,7 +779,7 @@ def image(defn, platform): - if test x$(TARGET_APPLE_LINKER) = x1; then \ - $(MACHO2IMG) $< $@; \ - else \ -- $(TARGET_OBJCOPY) $(""" + cname(defn) + """_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; \ -+ $(TARGET_OBJCOPY) $(""" + cname(defn) + """_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx -R .note.gnu.property $< $@; \ - fi - """) - --- -1.8.3.1 - diff --git a/0142-efilinux-Fix-integer-overflows-in-grub_cmd_initrd.patch b/0142-efilinux-Fix-integer-overflows-in-grub_cmd_initrd.patch new file mode 100644 index 0000000..95f7e20 --- /dev/null +++ b/0142-efilinux-Fix-integer-overflows-in-grub_cmd_initrd.patch @@ -0,0 +1,49 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Colin Watson +Date: Fri, 24 Jul 2020 17:18:09 +0100 +Subject: [PATCH] efilinux: Fix integer overflows in grub_cmd_initrd + +These could be triggered by an extremely large number of arguments to +the initrd command on 32-bit architectures, or a crafted filesystem with +very large files on any architecture. + +Signed-off-by: Colin Watson +--- + grub-core/loader/i386/efi/linux.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c +index 15d40d6e35b..f992ceeef20 100644 +--- a/grub-core/loader/i386/efi/linux.c ++++ b/grub-core/loader/i386/efi/linux.c +@@ -28,6 +28,8 @@ + #include + #include + #include ++#include ++#include + + GRUB_MOD_LICENSE ("GPLv3+"); + +@@ -206,7 +208,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), + goto fail; + } + +- files = grub_zalloc (argc * sizeof (files[0])); ++ files = grub_calloc (argc, sizeof (files[0])); + if (!files) + goto fail; + +@@ -216,7 +218,11 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), + if (! files[i]) + goto fail; + nfiles++; +- size += ALIGN_UP (grub_file_size (files[i]), 4); ++ if (grub_add (size, ALIGN_UP (grub_file_size (files[i]), 4), &size)) ++ { ++ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); ++ goto fail; ++ } + } + + initrd_mem = kernel_alloc(size, N_("can't allocate initrd")); diff --git a/0143-Make-linux_arm_kernel_header.hdr_offset-be-at-the-ri.patch b/0143-Make-linux_arm_kernel_header.hdr_offset-be-at-the-ri.patch deleted file mode 100644 index 73183f6..0000000 --- a/0143-Make-linux_arm_kernel_header.hdr_offset-be-at-the-ri.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 1fc3dfd0a51daf61a4605217a89d35232d11959b Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Thu, 16 Aug 2018 11:08:11 -0400 -Subject: [PATCH 143/220] Make linux_arm_kernel_header.hdr_offset be at the - right place - -The kernel in front of me (slightly edited to make objdump work) looks like: - -00000000 4d 5a 10 13 4d 5a 10 13 4d 5a 10 13 4d 5a 10 13 |MZ..MZ..MZ..MZ..| -00000010 4d 5a 10 13 4d 5a 10 13 4d 5a 10 13 00 00 a0 e1 |MZ..MZ..MZ......| -00000020 f6 03 00 ea 18 28 6f 01 00 00 00 00 00 32 74 00 |.....(o......2t.| -00000030 01 02 03 04 45 45 45 45 74 a2 00 00 40 00 00 00 |....EEEEt...@...| -00000040 50 45 00 00 4c 01 04 00 00 00 00 00 00 00 00 00 |PE..L...........| -00000050 00 00 00 00 90 00 06 03 0b 01 02 14 00 20 74 00 |............. t.| -00000060 00 14 00 00 00 00 00 00 b4 19 00 00 00 10 00 00 |................| -00000070 00 30 74 00 00 00 00 00 00 10 00 00 00 02 00 00 |.0t.............| -00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000090 00 44 74 00 00 10 00 00 00 00 00 00 0a 00 00 00 |.Dt.............| -000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -000000b0 00 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 |................| -000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -* - -(I don't know why the MZ header is there 7 times, but the offsets work out, so -it's merely a surprising distraction.) - -If linux_arm_kernel_header.reserved2 is 16 bytes, that means hdr_offset is -here: - -00000030 01 02 03 04 45 45 45 45 74 a2 00 00 40 00 00 00 |....EEEEt...@...| -00000040 50 45 00 00 4c 01 04 00 00 00 00 00 00 00 00 00 |PE..L...........| - ^^^^^^^^^^^ - -But it's supposed to be 4 bytes before that. - -This patch makes the reserved field be 3*32 instead of 4*32, and that means we -can find the PE header correcrtly at 0x40 by reading the value at 0x3c. - -Signed-off-by: Peter Jones ---- - grub-core/loader/efi/linux.c | 3 +++ - include/grub/arm/linux.h | 2 +- - 2 files changed, 4 insertions(+), 1 deletion(-) - -diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c -index 0622dfa..b56ea0b 100644 ---- a/grub-core/loader/efi/linux.c -+++ b/grub-core/loader/efi/linux.c -@@ -79,7 +79,10 @@ grub_efi_linux_boot (void *kernel_addr, grub_off_t handover_offset, - offset = 512; - #endif - -+ grub_dprintf ("linux", "kernel_addr: %p handover_offset: %p params: %p\n", -+ kernel_addr, (void *)(grub_efi_uintn_t)handover_offset, kernel_params); - hf = (handover_func)((char *)kernel_addr + handover_offset + offset); -+ grub_dprintf ("linux", "handover_func() = %p\n", hf); - hf (grub_efi_image_handle, grub_efi_system_table, kernel_params); - - return GRUB_ERR_BUG; -diff --git a/include/grub/arm/linux.h b/include/grub/arm/linux.h -index 775297d..b582f67 100644 ---- a/include/grub/arm/linux.h -+++ b/include/grub/arm/linux.h -@@ -31,7 +31,7 @@ struct linux_arm_kernel_header { - grub_uint32_t magic; - grub_uint32_t start; /* _start */ - grub_uint32_t end; /* _edata */ -- grub_uint32_t reserved2[4]; -+ grub_uint32_t reserved2[3]; - grub_uint32_t hdr_offset; - }; - --- -1.8.3.1 - diff --git a/0248-linuxefi-fail-kernel-validation-without-shim-protoco.patch b/0143-linuxefi-fail-kernel-validation-without-shim-protoco.patch similarity index 50% rename from 0248-linuxefi-fail-kernel-validation-without-shim-protoco.patch rename to 0143-linuxefi-fail-kernel-validation-without-shim-protoco.patch index 66fbfd9..20fc786 100644 --- a/0248-linuxefi-fail-kernel-validation-without-shim-protoco.patch +++ b/0143-linuxefi-fail-kernel-validation-without-shim-protoco.patch @@ -1,7 +1,7 @@ -From b01dc9aaedb5a5e91e2ca10748fce65406d657c0 Mon Sep 17 00:00:00 2001 -From: Fedora Ninjas -Date: Mon, 10 Aug 2020 14:54:34 +0800 -Subject: [PATCH 7/7] linuxefi: fail kernel validation without shim protocol. +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dimitri John Ledkov +Date: Wed, 22 Jul 2020 11:31:43 +0100 +Subject: [PATCH] linuxefi: fail kernel validation without shim protocol. If certificates that signed grub are installed into db, grub can be booted directly. It will then boot any kernel without signature @@ -15,24 +15,32 @@ CVE-2020-15705 Reported-by: Mathieu Trudel-Lapierre Signed-off-by: Dimitri John Ledkov -Signed-off-by: Baogen Shang --- - grub-core/loader/arm64/linux.c | 12 ++++++++---- - grub-core/loader/efi/linux.c | 1 + - grub-core/loader/i386/efi/linux.c | 13 ++++++++----- - 3 files changed, 17 insertions(+), 9 deletions(-) + grub-core/loader/arm64/linux.c | 13 +++++++++---- + grub-core/loader/efi/chainloader.c | 1 + + grub-core/loader/efi/linux.c | 1 + + grub-core/loader/i386/efi/linux.c | 17 +++++++++++------ + 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index 8791b35..a18c487 100644 +index 70a0075ec5e..47f8cf0d84b 100644 --- a/grub-core/loader/arm64/linux.c +++ b/grub-core/loader/arm64/linux.c -@@ -383,11 +383,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -34,6 +34,7 @@ + #include + #include + #include ++#include + + GRUB_MOD_LICENSE ("GPLv3+"); + +@@ -363,11 +364,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), grub_dprintf ("linux", "kernel @ %p\n", kernel_addr); - rc = grub_linuxefi_secure_validate (kernel_addr, kernel_size); - if (rc < 0) -+ if (grub_efi_secure_boot ()) ++ if (grub_efi_get_secureboot () == GRUB_EFI_SECUREBOOT_MODE_ENABLED) { - grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), argv[0]); - goto fail; @@ -46,8 +54,20 @@ index 8791b35..a18c487 100644 } pe = (void *)((unsigned long)kernel_addr + lh.hdr_offset); +diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c +index ac8dfd40c61..d41e8ea14a8 100644 +--- a/grub-core/loader/efi/chainloader.c ++++ b/grub-core/loader/efi/chainloader.c +@@ -1084,6 +1084,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), + + return 0; + } ++ // -1 fall-through to fail + + fail: + if (dev) diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c -index e09f824..927d89a 100644 +index e8b9ecb17f6..9260731c107 100644 --- a/grub-core/loader/efi/linux.c +++ b/grub-core/loader/efi/linux.c @@ -33,6 +33,7 @@ struct grub_efi_shim_lock @@ -59,16 +79,33 @@ index e09f824..927d89a 100644 grub_linuxefi_secure_validate (void *data, grub_uint32_t size) { diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index e5b2736..e613115 100644 +index f992ceeef20..3cf0f9b330b 100644 --- a/grub-core/loader/i386/efi/linux.c +++ b/grub-core/loader/i386/efi/linux.c -@@ -301,12 +301,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -30,6 +30,7 @@ + #include + #include + #include ++#include + + GRUB_MOD_LICENSE ("GPLv3+"); + +@@ -101,7 +102,7 @@ kernel_alloc(grub_efi_uintn_t size, const char * const errmsg) + + pages = BYTES_TO_PAGES(size); + grub_dprintf ("linux", "Trying to allocate %lu pages from %p\n", +- pages, (void *)max); ++ (unsigned long)pages, (void *)(unsigned long)max); + + prev_max = max; + addr = grub_efi_allocate_pages_real (max, pages, +@@ -307,12 +308,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), goto fail; } - rc = grub_linuxefi_secure_validate (kernel, filelen); - if (rc < 0) -+ if (grub_efi_secure_boot ()) ++ if (grub_efi_get_secureboot () == GRUB_EFI_SECUREBOOT_MODE_ENABLED) { - grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), - argv[0]); @@ -83,6 +120,11 @@ index e5b2736..e613115 100644 } lh = (struct linux_i386_kernel_header *)kernel; --- -1.8.3.1 - +@@ -386,6 +390,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + + setup_header_end_offset = *((grub_uint8_t *)kernel + 0x201); + grub_dprintf ("linux", "copying %lu bytes from %p to %p\n", ++ (unsigned long) + MIN((grub_size_t)0x202+setup_header_end_offset, + sizeof (*params)) - 0x1f1, + (grub_uint8_t *)kernel + 0x1f1, diff --git a/0144-Fix-const-char-pointers-in-grub-core-net-bootp.c.patch b/0144-Fix-const-char-pointers-in-grub-core-net-bootp.c.patch new file mode 100644 index 0000000..9b0db5f --- /dev/null +++ b/0144-Fix-const-char-pointers-in-grub-core-net-bootp.c.patch @@ -0,0 +1,37 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Mon, 20 Jul 2020 12:24:02 -0400 +Subject: [PATCH] Fix const char ** pointers in grub-core/net/bootp.c + +This will need to get folded back in the right place on the next rebase, +but it's before "Make grub_strtol() "end" pointers have safer const +qualifiers" currently, so for now I'm leaving it here instead of merging +it back with the original patch. + +Signed-off-by: Peter Jones +--- + grub-core/net/bootp.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c +index 8fb8918ae7e..7baf3540c81 100644 +--- a/grub-core/net/bootp.c ++++ b/grub-core/net/bootp.c +@@ -329,7 +329,7 @@ grub_net_configure_by_dhcp_ack (const char *name, + struct grub_net_network_level_interface *inter; + int mask = -1; + char server_ip[sizeof ("xxx.xxx.xxx.xxx")]; +- const grub_uint8_t *opt; ++ const char *opt; + grub_uint8_t opt_len, overload = 0; + const char *boot_file = 0, *server_name = 0; + grub_size_t boot_file_len, server_name_len; +@@ -505,7 +505,7 @@ grub_net_configure_by_dhcp_ack (const char *name, + if (opt && opt_len) + { + grub_env_set_net_property (name, "vendor_class_identifier", (const char *) opt, opt_len); +- if (opt && grub_strcmp (opt, "HTTPClient") == 0) ++ if (opt && grub_strcmp ((char *)opt, "HTTPClient") == 0) + { + char *proto, *ip, *pa; + diff --git a/0144-Make-grub_error-more-verbose.patch b/0144-Make-grub_error-more-verbose.patch deleted file mode 100644 index f2ed953..0000000 --- a/0144-Make-grub_error-more-verbose.patch +++ /dev/null @@ -1,101 +0,0 @@ -From c1576dc60b66fc5219e99d8b6c817287c5f5ec4b Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 27 Aug 2018 13:14:06 -0400 -Subject: [PATCH 144/220] Make grub_error() more verbose - -Signed-off-by: Peter Jones ---- - grub-core/kern/efi/mm.c | 17 ++++++++++++++--- - grub-core/kern/err.c | 13 +++++++++++-- - include/grub/err.h | 5 ++++- - 3 files changed, 29 insertions(+), 6 deletions(-) - -diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c -index a9e3710..15595a4 100644 ---- a/grub-core/kern/efi/mm.c -+++ b/grub-core/kern/efi/mm.c -@@ -157,12 +157,20 @@ grub_efi_allocate_pages_real (grub_efi_physical_address_t address, - - /* Limit the memory access to less than 4GB for 32-bit platforms. */ - if (address > GRUB_EFI_MAX_USABLE_ADDRESS) -- return 0; -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, -+ N_("invalid memory address (0x%llx > 0x%llx)"), -+ address, GRUB_EFI_MAX_USABLE_ADDRESS); -+ return NULL; -+ } - - b = grub_efi_system_table->boot_services; - status = efi_call_4 (b->allocate_pages, alloctype, memtype, pages, &address); - if (status != GRUB_EFI_SUCCESS) -- return 0; -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); -+ return NULL; -+ } - - if (address == 0) - { -@@ -172,7 +180,10 @@ grub_efi_allocate_pages_real (grub_efi_physical_address_t address, - status = efi_call_4 (b->allocate_pages, alloctype, memtype, pages, &address); - grub_efi_free_pages (0, pages); - if (status != GRUB_EFI_SUCCESS) -- return 0; -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); -+ return NULL; -+ } - } - - grub_efi_store_alloc (address, pages); -diff --git a/grub-core/kern/err.c b/grub-core/kern/err.c -index 53c734d..aebfe0c 100644 ---- a/grub-core/kern/err.c -+++ b/grub-core/kern/err.c -@@ -33,15 +33,24 @@ static struct grub_error_saved grub_error_stack_items[GRUB_ERROR_STACK_SIZE]; - static int grub_error_stack_pos; - static int grub_error_stack_assert; - -+#ifdef grub_error -+#undef grub_error -+#endif -+ - grub_err_t --grub_error (grub_err_t n, const char *fmt, ...) -+grub_error (grub_err_t n, const char *file, const int line, const char *fmt, ...) - { - va_list ap; -+ int m; - - grub_errno = n; - -+ m = grub_snprintf (grub_errmsg, sizeof (grub_errmsg), "%s:%d:", file, line); -+ if (m < 0) -+ m = 0; -+ - va_start (ap, fmt); -- grub_vsnprintf (grub_errmsg, sizeof (grub_errmsg), _(fmt), ap); -+ grub_vsnprintf (grub_errmsg + m, sizeof (grub_errmsg) - m, _(fmt), ap); - va_end (ap); - - return n; -diff --git a/include/grub/err.h b/include/grub/err.h -index 24ba9f5..b68bbec 100644 ---- a/include/grub/err.h -+++ b/include/grub/err.h -@@ -85,7 +85,10 @@ struct grub_error_saved - extern grub_err_t EXPORT_VAR(grub_errno); - extern char EXPORT_VAR(grub_errmsg)[GRUB_MAX_ERRMSG]; - --grub_err_t EXPORT_FUNC(grub_error) (grub_err_t n, const char *fmt, ...); -+grub_err_t EXPORT_FUNC(grub_error) (grub_err_t n, const char *file, const int line, const char *fmt, ...); -+ -+#define grub_error(n, fmt, ...) grub_error (n, __FILE__, __LINE__, fmt, ##__VA_ARGS__) -+ - void EXPORT_FUNC(grub_fatal) (const char *fmt, ...) __attribute__ ((noreturn)); - void EXPORT_FUNC(grub_error_push) (void); - int EXPORT_FUNC(grub_error_pop) (void); --- -1.8.3.1 - diff --git a/0145-Fix-const-char-pointers-in-grub-core-net-efi-ip4_con.patch b/0145-Fix-const-char-pointers-in-grub-core-net-efi-ip4_con.patch new file mode 100644 index 0000000..6c16e9e --- /dev/null +++ b/0145-Fix-const-char-pointers-in-grub-core-net-efi-ip4_con.patch @@ -0,0 +1,38 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Mon, 20 Jul 2020 12:24:02 -0400 +Subject: [PATCH] Fix const char ** pointers in grub-core/net/efi/ip4_config.c + +This will need to get folded back in the right place on the next rebase, +but it's before "Make grub_strtol() "end" pointers have safer const +qualifiers" currently, so for now I'm leaving it here instead of merging +it back with the original patch. + +Signed-off-by: Peter Jones +--- + grub-core/net/efi/ip4_config.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/grub-core/net/efi/ip4_config.c b/grub-core/net/efi/ip4_config.c +index 9725e928f7e..cb880fc3e8f 100644 +--- a/grub-core/net/efi/ip4_config.c ++++ b/grub-core/net/efi/ip4_config.c +@@ -61,7 +61,8 @@ int + grub_efi_string_to_ip4_address (const char *val, grub_efi_ipv4_address_t *address, const char **rest) + { + grub_uint32_t newip = 0; +- int i, ncolon = 0; ++ grub_size_t i; ++ int ncolon = 0; + const char *ptr = val; + + /* Check that is not an IPv6 address */ +@@ -78,7 +79,7 @@ grub_efi_string_to_ip4_address (const char *val, grub_efi_ipv4_address_t *addres + for (i = 0; i < 4; i++) + { + unsigned long t; +- t = grub_strtoul (ptr, (char **) &ptr, 0); ++ t = grub_strtoul (ptr, &ptr, 0); + if (grub_errno) + { + grub_errno = GRUB_ERR_NONE; diff --git a/0146-EFI-more-debug-output-on-GOP-and-UGA-probing.patch b/0146-EFI-more-debug-output-on-GOP-and-UGA-probing.patch deleted file mode 100644 index 85de92f..0000000 --- a/0146-EFI-more-debug-output-on-GOP-and-UGA-probing.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 18dd72a5313ff33acaa0dd5e933ea7933439cedc Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 10 Sep 2018 13:01:24 -0400 -Subject: [PATCH 146/220] EFI: more debug output on GOP and UGA probing. - -Signed-off-by: Peter Jones ---- - grub-core/video/efi_gop.c | 8 +++++++- - grub-core/video/efi_uga.c | 4 ++-- - 2 files changed, 9 insertions(+), 3 deletions(-) - -diff --git a/grub-core/video/efi_gop.c b/grub-core/video/efi_gop.c -index c9e40e8..be446f8 100644 ---- a/grub-core/video/efi_gop.c -+++ b/grub-core/video/efi_gop.c -@@ -71,7 +71,10 @@ check_protocol (void) - handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL, - &graphics_output_guid, NULL, &num_handles); - if (!handles || num_handles == 0) -- return 0; -+ { -+ grub_dprintf ("video", "GOP: no handles\n"); -+ return 0; -+ } - - for (i = 0; i < num_handles; i++) - { -@@ -81,6 +84,7 @@ check_protocol (void) - grub_video_gop_iterate (check_protocol_hook, &have_usable_mode); - if (have_usable_mode) - { -+ grub_dprintf ("video", "GOP: found usable mode\n"); - grub_free (handles); - return 1; - } -@@ -89,6 +93,8 @@ check_protocol (void) - gop = 0; - gop_handle = 0; - -+ grub_dprintf ("video", "GOP: no usable mode\n"); -+ - return 0; - } - -diff --git a/grub-core/video/efi_uga.c b/grub-core/video/efi_uga.c -index 97a607c..e74d6c2 100644 ---- a/grub-core/video/efi_uga.c -+++ b/grub-core/video/efi_uga.c -@@ -110,7 +110,7 @@ find_card (grub_pci_device_t dev, grub_pci_id_t pciid, void *data) - { - int i; - -- grub_dprintf ("fb", "Display controller: %d:%d.%d\nDevice id: %x\n", -+ grub_dprintf ("video", "Display controller: %d:%d.%d\nDevice id: %x\n", - grub_pci_get_bus (dev), grub_pci_get_device (dev), - grub_pci_get_function (dev), pciid); - addr += 8; -@@ -140,7 +140,7 @@ find_card (grub_pci_device_t dev, grub_pci_id_t pciid, void *data) - base64 <<= 32; - base64 |= (old_bar1 & GRUB_PCI_ADDR_MEM_MASK); - -- grub_dprintf ("fb", "%s(%d): 0x%" PRIxGRUB_UINT64_T "\n", -+ grub_dprintf ("video", "%s(%d): 0x%" PRIxGRUB_UINT64_T "\n", - ((old_bar1 & GRUB_PCI_ADDR_MEM_PREFETCH) ? - "VMEM" : "MMIO"), type == GRUB_PCI_ADDR_MEM_TYPE_64 ? i - 1 : i, - base64); --- -1.8.3.1 - diff --git a/0146-Fix-const-char-pointers-in-grub-core-net-efi-ip6_con.patch b/0146-Fix-const-char-pointers-in-grub-core-net-efi-ip6_con.patch new file mode 100644 index 0000000..7c29683 --- /dev/null +++ b/0146-Fix-const-char-pointers-in-grub-core-net-efi-ip6_con.patch @@ -0,0 +1,28 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Mon, 20 Jul 2020 12:24:02 -0400 +Subject: [PATCH] Fix const char ** pointers in grub-core/net/efi/ip6_config.c + +This will need to get folded back in the right place on the next rebase, +but it's before "Make grub_strtol() "end" pointers have safer const +qualifiers" currently, so for now I'm leaving it here instead of merging +it back with the original patch. + +Signed-off-by: Peter Jones +--- + grub-core/net/efi/ip6_config.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/grub-core/net/efi/ip6_config.c b/grub-core/net/efi/ip6_config.c +index a46f6f9b685..1c5415d7185 100644 +--- a/grub-core/net/efi/ip6_config.c ++++ b/grub-core/net/efi/ip6_config.c +@@ -85,7 +85,7 @@ grub_efi_string_to_ip6_address (const char *val, grub_efi_ipv6_address_t *addres + ptr++; + continue; + } +- t = grub_strtoul (ptr, (char **) &ptr, 16); ++ t = grub_strtoul (ptr, &ptr, 16); + if (grub_errno) + { + grub_errno = GRUB_ERR_NONE; diff --git a/0147-Fix-const-char-pointers-in-grub-core-net-efi-net.c.patch b/0147-Fix-const-char-pointers-in-grub-core-net-efi-net.c.patch new file mode 100644 index 0000000..0fe90c8 --- /dev/null +++ b/0147-Fix-const-char-pointers-in-grub-core-net-efi-net.c.patch @@ -0,0 +1,37 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Mon, 20 Jul 2020 12:24:02 -0400 +Subject: [PATCH] Fix const char ** pointers in grub-core/net/efi/net.c + +This will need to get folded back in the right place on the next rebase, +but it's before "Make grub_strtol() "end" pointers have safer const +qualifiers" currently, so for now I'm leaving it here instead of merging +it back with the original patch. + +Signed-off-by: Peter Jones +--- + grub-core/net/efi/net.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/grub-core/net/efi/net.c b/grub-core/net/efi/net.c +index a3f0535d43c..78e5442fc52 100644 +--- a/grub-core/net/efi/net.c ++++ b/grub-core/net/efi/net.c +@@ -729,7 +729,7 @@ grub_efi_net_parse_address (const char *address, + { + grub_uint32_t subnet_mask_size; + +- subnet_mask_size = grub_strtoul (rest + 1, (char **) &rest, 0); ++ subnet_mask_size = grub_strtoul (rest + 1, &rest, 0); + + if (!grub_errno && subnet_mask_size <= 32 && *rest == 0) + { +@@ -758,7 +758,7 @@ grub_efi_net_parse_address (const char *address, + { + grub_efi_uint8_t prefix_length; + +- prefix_length = grub_strtoul (rest + 1, (char **) &rest, 0); ++ prefix_length = grub_strtoul (rest + 1, &rest, 0); + if (!grub_errno && prefix_length <= 128 && *rest == 0) + { + ip6->prefix_length = prefix_length; diff --git a/0148-Fix-const-char-pointers-in-grub-core-net-efi-pxe.c.patch b/0148-Fix-const-char-pointers-in-grub-core-net-efi-pxe.c.patch new file mode 100644 index 0000000..59f29e4 --- /dev/null +++ b/0148-Fix-const-char-pointers-in-grub-core-net-efi-pxe.c.patch @@ -0,0 +1,46 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Mon, 20 Jul 2020 12:24:02 -0400 +Subject: [PATCH] Fix const char ** pointers in grub-core/net/efi/pxe.c + +This will need to get folded back in the right place on the next rebase, +but it's before "Make grub_strtol() "end" pointers have safer const +qualifiers" currently, so for now I'm leaving it here instead of merging +it back with the original patch. + +Signed-off-by: Peter Jones +--- + grub-core/net/efi/pxe.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/grub-core/net/efi/pxe.c b/grub-core/net/efi/pxe.c +index 531949cba5c..73e2bb01c1b 100644 +--- a/grub-core/net/efi/pxe.c ++++ b/grub-core/net/efi/pxe.c +@@ -187,7 +187,7 @@ parse_ip6 (const char *val, grub_uint64_t *ip, const char **rest) + ptr++; + continue; + } +- t = grub_strtoul (ptr, (char **) &ptr, 16); ++ t = grub_strtoul (ptr, &ptr, 16); + if (grub_errno) + { + grub_errno = GRUB_ERR_NONE; +@@ -225,7 +225,7 @@ pxe_open (struct grub_efi_net_device *dev, + int type __attribute__((unused))) + { + int i; +- char *p; ++ const char *p; + grub_efi_status_t status; + grub_efi_pxe_ip_address_t server_ip; + grub_efi_uint64_t file_size = 0; +@@ -313,7 +313,7 @@ pxe_read (struct grub_efi_net_device *dev, + grub_size_t len) + { + int i; +- char *p; ++ const char *p; + grub_efi_status_t status; + grub_efi_pxe_t *pxe = (prefer_ip6) ? dev->ip6_pxe : dev->ip4_pxe; + grub_efi_uint64_t bufsz = len; diff --git a/0149-Add-systemd-integration-scripts-to-make-systemctl-re.patch b/0149-Add-systemd-integration-scripts-to-make-systemctl-re.patch new file mode 100644 index 0000000..8e2481e --- /dev/null +++ b/0149-Add-systemd-integration-scripts-to-make-systemctl-re.patch @@ -0,0 +1,190 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Wed, 22 Jul 2020 14:03:42 +0200 +Subject: [PATCH] Add systemd integration scripts to make "systemctl reboot + --boot-loader-menu=xxx" work with grub + +This commit adds a number of scripts / config files to make +"systemctl reboot --boot-loader-menu=xxx" work with grub: + +1. /lib/systemd/system/systemd-logind.service.d/10-grub.conf +This sets SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU in the env. for logind, +indicating that the boot-loader which is used supports this feature, see: +https://github.com/systemd/systemd/blob/master/docs/ENVIRONMENT.md + +2. /lib/systemd/system/grub-systemd-integration.service + /lib/systemd/system/reboot.target.wants/grub-systemd-integration.service -> + ../grub-systemd-integration.service + /usr/libexec/grub/grub-systemd-integration.sh + +The symlink in the .wants dir causes the added service file to be started +by systemd just before rebooting the system. +If /run/systemd/reboot-to-boot-loader-menu exist then the service will run +the grub-systemd-integration.sh script. +This script sets the new menu_show_once_timeout grubenv variable to the +requested timeout in seconds. + +3. /etc/grub.d/14_menu_show_once + +This new grub-mkconfig snippet adds the necessary code to the generated +grub.conf to honor the new menu_show_once_timeout variable, and to +automatically clear it after consuming it. + +Note the service and libexec script use grub-systemd-integration as name +because in the future they may be used to add further integration with +systemctl reboot --foo options, e.g. support for --boot-loader-entry=NAME. + +A few notes about upstreaming this patch from the rhboot grub2 fork: +1. I have deliberately put the grub.conf bits for this in a new / separate + grub-mkconfig snippet generator for easy upstreaming +2. Even though the commit message mentions the .wants symlink for the .service + I have been unable to come up with a clean way to do this at "make install" + time, this should be fixed before upstreaming. + +Downstream notes: +1. Since make install does not add the .wants symlink, this needs to be done + in grub2.spec %install +2. This is keeping support for the "old" Fedora specific menu_show_once env + variable, which has a hardcoded timeout of 60 sec in 12_menu_auto_hide in + place for now. This can be dropped (eventually) in a follow-up patch once + GNOME has been converted to use the systemd dbus API equivalent of + "systemctl reboot --boot-loader-menu=xxx". + +Signed-off-by: Hans de Goede +--- + Makefile.util.def | 27 ++++++++++++++++++++++++ + conf/Makefile.common | 6 ++++++ + util/grub.d/14_menu_show_once.in | 13 ++++++++++++ + util/systemd/10-grub-logind-service.conf.in | 2 ++ + util/systemd/grub-systemd-integration.service.in | 8 +++++++ + util/systemd/systemd-integration.sh.in | 6 ++++++ + 6 files changed, 62 insertions(+) + create mode 100755 util/grub.d/14_menu_show_once.in + create mode 100644 util/systemd/10-grub-logind-service.conf.in + create mode 100644 util/systemd/grub-systemd-integration.service.in + create mode 100644 util/systemd/systemd-integration.sh.in + +diff --git a/Makefile.util.def b/Makefile.util.def +index 2e6ad979c3e..9927c2cfd6a 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -470,6 +470,12 @@ script = { + installdir = grubconf; + }; + ++script = { ++ name = '14_menu_show_once'; ++ common = util/grub.d/14_menu_show_once.in; ++ installdir = grubconf; ++}; ++ + script = { + name = '01_users'; + common = util/grub.d/01_users.in; +@@ -569,6 +575,27 @@ script = { + installdir = grubconf; + }; + ++script = { ++ name = 'grub-systemd-integration.service'; ++ common = util/systemd/grub-systemd-integration.service.in; ++ installdir = systemdunit; ++ condition = COND_HOST_LINUX; ++}; ++ ++script = { ++ name = 'systemd-integration.sh'; ++ common = util/systemd/systemd-integration.sh.in; ++ installdir = grublibexec; ++ condition = COND_HOST_LINUX; ++}; ++ ++script = { ++ name = '10-grub-logind-service.conf'; ++ common = util/systemd/10-grub-logind-service.conf.in; ++ installdir = systemd_logind_service_d; ++ condition = COND_HOST_LINUX; ++}; ++ + program = { + mansection = 1; + name = grub-mkrescue; +diff --git a/conf/Makefile.common b/conf/Makefile.common +index 0647c53b916..9fe5863b2d9 100644 +--- a/conf/Makefile.common ++++ b/conf/Makefile.common +@@ -63,8 +63,11 @@ CCASFLAGS_LIBRARY = $(UTILS_CCASFLAGS) + # Other variables + + grubconfdir = $(sysconfdir)/grub.d ++grublibexecdir = $(libexecdir)/$(grubdirname) + platformdir = $(pkglibdir)/$(target_cpu)-$(platform) + starfielddir = $(pkgdatadir)/themes/starfield ++systemdunitdir = ${prefix}/lib/systemd/system ++systemd_logind_service_ddir = $(systemdunitdir)/systemd-logind.service.d + + CFLAGS_GNULIB = -Wno-undef -Wno-unused -Wno-unused-parameter -Wno-redundant-decls -Wno-unreachable-code -Werror=trampolines -fno-trampolines + CPPFLAGS_GNULIB = -I$(top_builddir)/grub-core/lib/gnulib -I$(top_srcdir)/grub-core/lib/gnulib +@@ -121,6 +124,9 @@ noinst_LIBRARIES = + dist_noinst_DATA = + platform_SCRIPTS = + platform_PROGRAMS = ++grublibexec_SCRIPTS = ++systemdunit_SCRIPTS = ++systemd_logind_service_d_SCRIPTS = + + TESTS = + EXTRA_DIST = +diff --git a/util/grub.d/14_menu_show_once.in b/util/grub.d/14_menu_show_once.in +new file mode 100755 +index 00000000000..1cd7f36142b +--- /dev/null ++++ b/util/grub.d/14_menu_show_once.in +@@ -0,0 +1,13 @@ ++#! /bin/sh ++# Force the menu to be shown once, with a timeout of ${menu_show_once_timeout} ++# if requested by ${menu_show_once_timeout} being set in the env. ++cat << EOF ++if [ x\$feature_timeout_style = xy ]; then ++ if [ "\${menu_show_once_timeout}" ]; then ++ set timeout_style=menu ++ set timeout="\${menu_show_once_timeout}" ++ unset menu_show_once_timeout ++ save_env menu_show_once_timeout ++ fi ++fi ++EOF +diff --git a/util/systemd/10-grub-logind-service.conf.in b/util/systemd/10-grub-logind-service.conf.in +new file mode 100644 +index 00000000000..f2d4ac00732 +--- /dev/null ++++ b/util/systemd/10-grub-logind-service.conf.in +@@ -0,0 +1,2 @@ ++[Service] ++Environment=SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU=true +diff --git a/util/systemd/grub-systemd-integration.service.in b/util/systemd/grub-systemd-integration.service.in +new file mode 100644 +index 00000000000..c81fb594ce1 +--- /dev/null ++++ b/util/systemd/grub-systemd-integration.service.in +@@ -0,0 +1,8 @@ ++[Unit] ++Description=Grub2 systemctl reboot --boot-loader-menu=... support ++Before=umount.target systemd-reboot.service ++DefaultDependencies=no ++ConditionPathExists=/run/systemd/reboot-to-boot-loader-menu ++ ++[Service] ++ExecStart=@libexecdir@/@grubdirname@/systemd-integration.sh +diff --git a/util/systemd/systemd-integration.sh.in b/util/systemd/systemd-integration.sh.in +new file mode 100644 +index 00000000000..dc1218597bc +--- /dev/null ++++ b/util/systemd/systemd-integration.sh.in +@@ -0,0 +1,6 @@ ++#!/bin/sh ++ ++TIMEOUT_USEC=$(cat /run/systemd/reboot-to-boot-loader-menu) ++TIMEOUT=$(((TIMEOUT_USEC + 500000) / 1000000)) ++ ++@grub_editenv@ - set menu_show_once_timeout=$TIMEOUT diff --git a/0150-systemd-integration.sh-Also-set-old-menu_show_once-g.patch b/0150-systemd-integration.sh-Also-set-old-menu_show_once-g.patch new file mode 100644 index 0000000..9021de5 --- /dev/null +++ b/0150-systemd-integration.sh-Also-set-old-menu_show_once-g.patch @@ -0,0 +1,32 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Thu, 23 Jul 2020 09:27:36 +0200 +Subject: [PATCH] systemd-integration.sh: Also set old menu_show_once grubenv + var + +Downstream RH / Fedora patch for compatibility with old, not (yet) +regenerated grub.cfg files which miss the menu_show_once_timeout check. +This older grubenv variable leads to a fixed timeout of 60 seconds. + +Note that the new menu_show_once_timeout will overrule these 60 seconds +if both are set and the grub.cfg does have the menu_show_once_timeout +check. + +Signed-off-by: Hans de Goede +--- + util/systemd/systemd-integration.sh.in | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/util/systemd/systemd-integration.sh.in b/util/systemd/systemd-integration.sh.in +index dc1218597bc..a4c071c5b0c 100644 +--- a/util/systemd/systemd-integration.sh.in ++++ b/util/systemd/systemd-integration.sh.in +@@ -4,3 +4,8 @@ TIMEOUT_USEC=$(cat /run/systemd/reboot-to-boot-loader-menu) + TIMEOUT=$(((TIMEOUT_USEC + 500000) / 1000000)) + + @grub_editenv@ - set menu_show_once_timeout=$TIMEOUT ++ ++# Downstream RH / Fedora patch for compatibility with old, not (yet) ++# regenerated grub.cfg files which miss the menu_show_once_timeout check ++# this older grubenv variable leads to a fixed timeout of 60 seconds ++@grub_editenv@ - set menu_show_once=1 diff --git a/0151-at_keyboard-use-set-1-when-keyboard-is-in-Translate-.patch b/0151-at_keyboard-use-set-1-when-keyboard-is-in-Translate-.patch new file mode 100644 index 0000000..c338840 --- /dev/null +++ b/0151-at_keyboard-use-set-1-when-keyboard-is-in-Translate-.patch @@ -0,0 +1,121 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Renaud=20M=C3=A9trich?= +Date: Thu, 3 Dec 2020 09:13:24 +0100 +Subject: [PATCH] at_keyboard: use set 1 when keyboard is in Translate mode +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +When keyboard controller acts in Translate mode (0x40 mask), then use +set 1 since translation is done. +Otherwise use the mode queried from the controller (usually set 2). + +Added "atkeyb" debugging messages in at_keyboard module as well. + +Resolves: rhbz#1897587 + +Tested on: +- Asus N53SN (set 1 used) +- Dell Precision (set 1 used) +- HP Elitebook (set 2 used) +- HP G5430 (set 1 used, keyboard in XT mode!) +- Lenovo P71 & Lenovo T460s (set 2 used) +- QEMU/KVM (set 1 used) + +Signed-off-by: Renaud Métrich +--- + grub-core/term/at_keyboard.c | 29 ++++++++++++++++++++++++----- + include/grub/at_keyboard.h | 4 ++++ + 2 files changed, 28 insertions(+), 5 deletions(-) + +diff --git a/grub-core/term/at_keyboard.c b/grub-core/term/at_keyboard.c +index 597111077bd..26014382608 100644 +--- a/grub-core/term/at_keyboard.c ++++ b/grub-core/term/at_keyboard.c +@@ -135,20 +135,28 @@ query_mode (void) + int e; + + e = write_mode (0); +- if (!e) ++ if (!e) { ++ grub_dprintf("atkeyb", "query_mode: write_mode(0) failed\n"); + return 0; ++ } + + do { + keyboard_controller_wait_until_ready (); + ret = grub_inb (KEYBOARD_REG_DATA); + } while (ret == GRUB_AT_ACK); + /* QEMU translates the set even in no-translate mode. */ +- if (ret == 0x43 || ret == 1) ++ if (ret == 0x43 || ret == 1) { ++ grub_dprintf("atkeyb", "query_mode: returning 1 (ret=0x%x)\n", ret); + return 1; +- if (ret == 0x41 || ret == 2) ++ } ++ if (ret == 0x41 || ret == 2) { ++ grub_dprintf("atkeyb", "query_mode: returning 2 (ret=0x%x)\n", ret); + return 2; +- if (ret == 0x3f || ret == 3) ++ } ++ if (ret == 0x3f || ret == 3) { ++ grub_dprintf("atkeyb", "query_mode: returning 3 (ret=0x%x)\n", ret); + return 3; ++ } + return 0; + } + +@@ -165,7 +173,13 @@ set_scancodes (void) + } + + #if !USE_SCANCODE_SET +- ps2_state.current_set = 1; ++ if ((grub_keyboard_controller_orig & KEYBOARD_AT_TRANSLATE) == KEYBOARD_AT_TRANSLATE) { ++ grub_dprintf ("atkeyb", "queried set is %d but keyboard in Translate mode, so actually in set 1\n", grub_keyboard_orig_set); ++ ps2_state.current_set = 1; ++ } else { ++ grub_dprintf ("atkeyb", "using queried set %d\n", grub_keyboard_orig_set); ++ ps2_state.current_set = grub_keyboard_orig_set; ++ } + return; + #else + +@@ -266,6 +280,7 @@ grub_keyboard_controller_init (void) + grub_keyboard_orig_set = 2; + #else + grub_keyboard_controller_orig = grub_keyboard_controller_read (); ++ grub_dprintf ("atkeyb", "grub_keyboard_controller_orig = 0x%x\n", grub_keyboard_controller_orig); + grub_keyboard_orig_set = query_mode (); + #endif + set_scancodes (); +@@ -275,11 +290,15 @@ grub_keyboard_controller_init (void) + static grub_err_t + grub_keyboard_controller_fini (struct grub_term_input *term __attribute__ ((unused))) + { ++/* In !USE_SCANCODE_SET mode, we didn't change anything, so nothing to restore */ ++#if USE_SCANCODE_SET + if (ps2_state.current_set == 0) + return GRUB_ERR_NONE; ++ grub_dprintf ("atkeyb", "restoring set %d, controller 0x%x\n", grub_keyboard_orig_set, grub_keyboard_controller_orig); + if (grub_keyboard_orig_set) + write_mode (grub_keyboard_orig_set); + grub_keyboard_controller_write (grub_keyboard_controller_orig); ++#endif + return GRUB_ERR_NONE; + } + +diff --git a/include/grub/at_keyboard.h b/include/grub/at_keyboard.h +index bcb4d9ba78f..9414dc1b996 100644 +--- a/include/grub/at_keyboard.h ++++ b/include/grub/at_keyboard.h +@@ -19,6 +19,10 @@ + #ifndef GRUB_AT_KEYBOARD_HEADER + #define GRUB_AT_KEYBOARD_HEADER 1 + ++/* ++ * Refer to https://wiki.osdev.org/%228042%22_PS/2_Controller for details. ++ */ ++ + /* Used for sending commands to the controller. */ + #define KEYBOARD_COMMAND_ISREADY(x) !((x) & 0x02) + #define KEYBOARD_COMMAND_READ 0x20 diff --git a/0152-grub-install-disable-support-for-EFI-platforms.patch b/0152-grub-install-disable-support-for-EFI-platforms.patch new file mode 100644 index 0000000..41003e2 --- /dev/null +++ b/0152-grub-install-disable-support-for-EFI-platforms.patch @@ -0,0 +1,120 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jan Hlavac +Date: Fri, 20 Nov 2020 23:51:47 +0100 +Subject: [PATCH] grub-install: disable support for EFI platforms + +For each platform, GRUB is shipped as a kernel image and a set of +modules. These files are then used by the grub-install utility to +install GRUB on a specific device. However, in order to support UEFI +Secure Boot, the resulting EFI binary must be signed by a recognized +private key. For this reason, for EFI platforms, most distributions also +ship prebuilt EFI binaries signed by a distribution-specific private +key. In this case, however, the grub-install utility should not be used +because it would overwrite the signed EFI binary. + +The current fix is suboptimal because it preserves all EFI-related code. +A better solution could be to modularize the code and provide a +build-time option. + +Resolves: rhbz#1737444 + +Signed-off-by: Jan Hlavac +--- + util/grub-install.c | 37 ++++++++++++++++--------------------- + docs/grub.texi | 7 +++++++ + util/grub-install.8 | 4 +++- + 3 files changed, 26 insertions(+), 22 deletions(-) + +diff --git a/util/grub-install.c b/util/grub-install.c +index a2bec7446cb..5babc7af551 100644 +--- a/util/grub-install.c ++++ b/util/grub-install.c +@@ -899,6 +899,22 @@ main (int argc, char *argv[]) + + platform = grub_install_get_target (grub_install_source_directory); + ++ switch (platform) ++ { ++ case GRUB_INSTALL_PLATFORM_ARM_EFI: ++ case GRUB_INSTALL_PLATFORM_ARM64_EFI: ++ case GRUB_INSTALL_PLATFORM_I386_EFI: ++ case GRUB_INSTALL_PLATFORM_IA64_EFI: ++ case GRUB_INSTALL_PLATFORM_X86_64_EFI: ++ is_efi = 1; ++ grub_util_error (_("this utility cannot be used for EFI platforms" ++ " because it does not support UEFI Secure Boot")); ++ break; ++ default: ++ is_efi = 0; ++ break; ++ } ++ + { + char *platname = grub_install_get_platform_name (platform); + fprintf (stderr, _("Installing for %s platform.\n"), platname); +@@ -1011,28 +1027,7 @@ main (int argc, char *argv[]) + grub_hostfs_init (); + grub_host_init (); + +- switch (platform) +- { +- case GRUB_INSTALL_PLATFORM_I386_EFI: +- case GRUB_INSTALL_PLATFORM_X86_64_EFI: +- case GRUB_INSTALL_PLATFORM_ARM_EFI: +- case GRUB_INSTALL_PLATFORM_ARM64_EFI: +- case GRUB_INSTALL_PLATFORM_RISCV32_EFI: +- case GRUB_INSTALL_PLATFORM_RISCV64_EFI: +- case GRUB_INSTALL_PLATFORM_IA64_EFI: +- is_efi = 1; +- break; +- default: +- is_efi = 0; +- break; +- +- /* pacify warning. */ +- case GRUB_INSTALL_PLATFORM_MAX: +- break; +- } +- + /* Find the EFI System Partition. */ +- + if (is_efi) + { + grub_fs_t fs; +diff --git a/docs/grub.texi b/docs/grub.texi +index 04ed6ac1f07..4870faaa00a 100644 +--- a/docs/grub.texi ++++ b/docs/grub.texi +@@ -6509,6 +6509,13 @@ grub2-install @var{install_device} + The device name @var{install_device} is an OS device name or a GRUB + device name. + ++In order to support UEFI Secure Boot, the resulting GRUB EFI binary must ++be signed by a recognized private key. For this reason, for EFI ++platforms, most distributions also ship prebuilt GRUB EFI binaries ++signed by a distribution-specific private key. In this case, however, ++@command{grub2-install} should not be used because it would overwrite ++the signed EFI binary. ++ + @command{grub2-install} accepts the following options: + + @table @option +diff --git a/util/grub-install.8 b/util/grub-install.8 +index 1db89e94b3b..811d441b16c 100644 +--- a/util/grub-install.8 ++++ b/util/grub-install.8 +@@ -1,4 +1,4 @@ +-.TH GRUB-INSTALL 1 "Wed Feb 26 2014" ++.TH GRUB-INSTALL 1 "Fri Nov 20 2020" + .SH NAME + \fBgrub-install\fR \(em Install GRUB on a device. + +@@ -31,6 +31,8 @@ + .SH DESCRIPTION + \fBgrub-install\fR installs GRUB onto a device. This includes copying GRUB images into the target directory (generally \fI/boot/grub\fR), and on some platforms may also include installing GRUB onto a boot sector. + ++In order to support UEFI Secure Boot, the resulting GRUB EFI binary must be signed by a recognized private key. For this reason, for EFI platforms, most distributions also ship prebuilt GRUB EFI binaries signed by a distribution-specific private key. In this case, however, the \fBgrub-install\fR utility should not be used because it would overwrite the signed EFI binary. ++ + .SH OPTIONS + .TP + \fB--modules\fR=\fIMODULES\fR\! diff --git a/0153-New-with-debug-timestamps-configure-flag-to-prepend-.patch b/0153-New-with-debug-timestamps-configure-flag-to-prepend-.patch new file mode 100644 index 0000000..d216284 --- /dev/null +++ b/0153-New-with-debug-timestamps-configure-flag-to-prepend-.patch @@ -0,0 +1,112 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Renaud=20M=C3=A9trich?= +Date: Sat, 23 Nov 2019 14:57:41 +0100 +Subject: [PATCH] New --with-debug-timestamps configure flag to prepend debug + traces with absolute and relative timestamp +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Renaud Métrich +--- + configure.ac | 18 ++++++++++++++++++ + grub-core/kern/misc.c | 20 ++++++++++++++++++++ + config.h.in | 1 + + 3 files changed, 39 insertions(+) + +diff --git a/configure.ac b/configure.ac +index c6bd965f1f9..3c808a72230 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1613,6 +1613,17 @@ else + fi + AC_SUBST([BOOT_TIME_STATS]) + ++AC_ARG_WITH([debug-timestamps], ++ AS_HELP_STRING([--with-debug-timestamps], ++ [prepend debug traces with absolute and relative timestamps])) ++ ++if test x$with_debug_timestamps = xyes; then ++ DEBUG_WITH_TIMESTAMPS=1 ++else ++ DEBUG_WITH_TIMESTAMPS=0 ++fi ++AC_SUBST([DEBUG_WITH_TIMESTAMPS]) ++ + AC_ARG_ENABLE([grub-emu-sdl], + [AS_HELP_STRING([--enable-grub-emu-sdl], + [build and install the `grub-emu' debugging utility with SDL support (default=guessed)])]) +@@ -2194,6 +2205,7 @@ AM_CONDITIONAL([COND_APPLE_LINKER], [test x$TARGET_APPLE_LINKER = x1]) + AM_CONDITIONAL([COND_ENABLE_EFIEMU], [test x$enable_efiemu = xyes]) + AM_CONDITIONAL([COND_ENABLE_CACHE_STATS], [test x$DISK_CACHE_STATS = x1]) + AM_CONDITIONAL([COND_ENABLE_BOOT_TIME_STATS], [test x$BOOT_TIME_STATS = x1]) ++AM_CONDITIONAL([COND_DEBUG_WITH_TIMESTAMPS], [test x$DEBUG_WITH_TIMESTAMPS = x1]) + + AM_CONDITIONAL([COND_HAVE_CXX], [test x$HAVE_CXX = xyes]) + +@@ -2289,6 +2301,12 @@ else + echo With boot time statistics: No + fi + ++if [ x"$with_debug_timestamps" = xyes ]; then ++echo Debug traces with timestamps: Yes ++else ++echo Debug traces with timestamps: No ++fi ++ + if [ x"$efiemu_excuse" = x ]; then + echo efiemu runtime: Yes + else +diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c +index 578bf51a5fc..9f54b6b7d2d 100644 +--- a/grub-core/kern/misc.c ++++ b/grub-core/kern/misc.c +@@ -25,6 +25,9 @@ + #include + #include + #include ++#if DEBUG_WITH_TIMESTAMPS ++#include ++#endif + + union printf_arg + { +@@ -192,9 +195,26 @@ grub_real_dprintf (const char *file, const int line, const char *condition, + const char *fmt, ...) + { + va_list args; ++#if DEBUG_WITH_TIMESTAMPS ++ static long unsigned int last_time = 0; ++ static int last_had_cr = 1; ++#endif + + if (grub_debug_enabled (condition)) + { ++#if DEBUG_WITH_TIMESTAMPS ++ /* Don't print timestamp if last printed message isn't terminated yet */ ++ if (last_had_cr) { ++ long unsigned int tmabs = (long unsigned int) grub_get_time_ms(); ++ long unsigned int tmrel = tmabs - last_time; ++ last_time = tmabs; ++ grub_printf ("%3lu.%03lus +%2lu.%03lus ", tmabs / 1000, tmabs % 1000, tmrel / 1000, tmrel % 1000); ++ } ++ if (fmt[grub_strlen(fmt)-1] == '\n') ++ last_had_cr = 1; ++ else ++ last_had_cr = 0; ++#endif + grub_printf ("%s:%d: ", file, line); + va_start (args, fmt); + grub_vprintf (fmt, args); +diff --git a/config.h.in b/config.h.in +index c7e316f0f1f..c80e3e0aba3 100644 +--- a/config.h.in ++++ b/config.h.in +@@ -12,6 +12,7 @@ + /* Define to 1 to enable disk cache statistics. */ + #define DISK_CACHE_STATS @DISK_CACHE_STATS@ + #define BOOT_TIME_STATS @BOOT_TIME_STATS@ ++#define DEBUG_WITH_TIMESTAMPS @DEBUG_WITH_TIMESTAMPS@ + + /* We don't need those. */ + #define MINILZO_CFG_SKIP_LZO_PTR 1 diff --git a/0154-Added-debug-statements-to-grub_disk_open-and-grub_di.patch b/0154-Added-debug-statements-to-grub_disk_open-and-grub_di.patch new file mode 100644 index 0000000..cbb1a38 --- /dev/null +++ b/0154-Added-debug-statements-to-grub_disk_open-and-grub_di.patch @@ -0,0 +1,47 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Renaud=20M=C3=A9trich?= +Date: Sat, 23 Nov 2019 15:22:16 +0100 +Subject: [PATCH] Added debug statements to grub_disk_open() and + grub_disk_close() on success +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Renaud Métrich +--- + grub-core/kern/disk.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/grub-core/kern/disk.c b/grub-core/kern/disk.c +index e1b0e073e09..05a28ab1429 100644 +--- a/grub-core/kern/disk.c ++++ b/grub-core/kern/disk.c +@@ -285,6 +285,8 @@ grub_disk_open (const char *name) + return 0; + } + ++ grub_dprintf ("disk", "Opening `%s' succeeded.\n", name); ++ + return disk; + } + +@@ -292,7 +294,7 @@ void + grub_disk_close (grub_disk_t disk) + { + grub_partition_t part; +- grub_dprintf ("disk", "Closing `%s'.\n", disk->name); ++ grub_dprintf ("disk", "Closing `%s'...\n", disk->name); + + if (disk->dev && disk->dev->disk_close) + (disk->dev->disk_close) (disk); +@@ -306,8 +308,10 @@ grub_disk_close (grub_disk_t disk) + grub_free (disk->partition); + disk->partition = part; + } ++ grub_dprintf ("disk", "Closing `%s' succeeded.\n", disk->name); + grub_free ((void *) disk->name); + grub_free (disk); ++ + } + + /* Small read (less than cache size and not pass across cache unit boundaries). diff --git a/0155-Introduce-function-grub_debug_is_enabled-void-return.patch b/0155-Introduce-function-grub_debug_is_enabled-void-return.patch new file mode 100644 index 0000000..4e4718b --- /dev/null +++ b/0155-Introduce-function-grub_debug_is_enabled-void-return.patch @@ -0,0 +1,51 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Renaud=20M=C3=A9trich?= +Date: Mon, 25 Nov 2019 09:29:53 +0100 +Subject: [PATCH] Introduce function grub_debug_is_enabled(void) returning 1 if + 'debug' is in the environment and not empty +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Renaud Métrich +--- + grub-core/kern/misc.c | 13 +++++++++++++ + include/grub/misc.h | 1 + + 2 files changed, 14 insertions(+) + +diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c +index 9f54b6b7d2d..a186ad3dd41 100644 +--- a/grub-core/kern/misc.c ++++ b/grub-core/kern/misc.c +@@ -163,6 +163,19 @@ int grub_err_printf (const char *fmt, ...) + __attribute__ ((alias("grub_printf"))); + #endif + ++/* Return 1 if 'debug' is set and not empty */ ++int ++grub_debug_is_enabled (void) ++{ ++ const char *debug; ++ ++ debug = grub_env_get ("debug"); ++ if (!debug || debug[0] == '\0') ++ return 0; ++ ++ return 1; ++} ++ + int + grub_debug_enabled (const char * condition) + { +diff --git a/include/grub/misc.h b/include/grub/misc.h +index 3adc4036e3b..6c4aa85ac50 100644 +--- a/include/grub/misc.h ++++ b/include/grub/misc.h +@@ -340,6 +340,7 @@ grub_puts (const char *s) + } + + int EXPORT_FUNC(grub_puts_) (const char *s); ++int EXPORT_FUNC(grub_debug_is_enabled) (void); + int EXPORT_FUNC(grub_debug_enabled) (const char *condition); + void EXPORT_FUNC(grub_real_dprintf) (const char *file, + const int line, diff --git a/0156-Don-t-clear-screen-when-debugging-is-enabled.patch b/0156-Don-t-clear-screen-when-debugging-is-enabled.patch new file mode 100644 index 0000000..d17b080 --- /dev/null +++ b/0156-Don-t-clear-screen-when-debugging-is-enabled.patch @@ -0,0 +1,31 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Renaud=20M=C3=A9trich?= +Date: Sat, 23 Nov 2019 16:23:54 +0100 +Subject: [PATCH] Don't clear screen when debugging is enabled +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Renaud Métrich +[rharwood@redhat.com: rebase fuzz] +Signed-off-by: Robbie Harwood +--- + grub-core/normal/main.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c +index 1970e4816a8..4ebdbd228d4 100644 +--- a/grub-core/normal/main.c ++++ b/grub-core/normal/main.c +@@ -215,8 +215,9 @@ grub_normal_init_page (struct grub_term_output *term, + char *msg_formatted; + grub_uint32_t *unicode_msg; + grub_uint32_t *last_position; +- +- grub_term_cls (term); ++ ++ if (! grub_debug_is_enabled ()) ++ grub_term_cls (term); + + msg_formatted = grub_xasprintf (_("GNU GRUB version %s"), PACKAGE_VERSION); + if (!msg_formatted) diff --git a/0157-grub_file_-instrumentation-new-file-debug-tag.patch b/0157-grub_file_-instrumentation-new-file-debug-tag.patch new file mode 100644 index 0000000..0cc6b8c --- /dev/null +++ b/0157-grub_file_-instrumentation-new-file-debug-tag.patch @@ -0,0 +1,71 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Renaud=20M=C3=A9trich?= +Date: Fri, 29 Nov 2019 11:02:00 +0100 +Subject: [PATCH] grub_file_* instrumentation (new 'file' debug tag) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Renaud Métrich +--- + grub-core/kern/file.c | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/grub-core/kern/file.c b/grub-core/kern/file.c +index 58454458c47..e19aea3e514 100644 +--- a/grub-core/kern/file.c ++++ b/grub-core/kern/file.c +@@ -66,6 +66,8 @@ grub_file_open (const char *name, enum grub_file_type type) + const char *file_name; + grub_file_filter_id_t filter; + ++ grub_dprintf ("file", "Opening `%s' ...\n", name); ++ + device_name = grub_file_get_device_name (name); + if (grub_errno) + goto fail; +@@ -128,6 +130,8 @@ grub_file_open (const char *name, enum grub_file_type type) + if (!file) + grub_file_close (last_file); + ++ grub_dprintf ("file", "Opening `%s' succeeded.\n", name); ++ + return file; + + fail: +@@ -138,6 +142,8 @@ grub_file_open (const char *name, enum grub_file_type type) + + grub_free (file); + ++ grub_dprintf ("file", "Opening `%s' failed.\n", name); ++ + return 0; + } + +@@ -169,6 +175,7 @@ grub_file_read (grub_file_t file, void *buf, grub_size_t len) + + if (len == 0) + return 0; ++ + read_hook = file->read_hook; + read_hook_data = file->read_hook_data; + if (!file->read_hook) +@@ -189,11 +196,18 @@ grub_file_read (grub_file_t file, void *buf, grub_size_t len) + grub_err_t + grub_file_close (grub_file_t file) + { ++ grub_dprintf ("file", "Closing `%s' ...\n", file->name); + if (file->fs->fs_close) + (file->fs->fs_close) (file); + + if (file->device) + grub_device_close (file->device); ++ ++ if (grub_errno == GRUB_ERR_NONE) ++ grub_dprintf ("file", "Closing `%s' succeeded.\n", file->name); ++ else ++ grub_dprintf ("file", "Closing `%s' failed with %d.\n", file->name, grub_errno); ++ + grub_free (file->name); + grub_free (file); + return grub_errno; diff --git a/0158-ieee1275-Avoiding-many-unecessary-open-close.patch b/0158-ieee1275-Avoiding-many-unecessary-open-close.patch new file mode 100644 index 0000000..6a0ad75 --- /dev/null +++ b/0158-ieee1275-Avoiding-many-unecessary-open-close.patch @@ -0,0 +1,136 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Diego Domingos +Date: Mon, 14 Dec 2020 17:42:45 +0100 +Subject: [PATCH] ieee1275: Avoiding many unecessary open/close + +Signed-off-by: Diego Domingos +--- + grub-core/disk/ieee1275/ofdisk.c | 64 ++++++++++++++++++++++------------------ + 1 file changed, 35 insertions(+), 29 deletions(-) + +diff --git a/grub-core/disk/ieee1275/ofdisk.c b/grub-core/disk/ieee1275/ofdisk.c +index 03674cb477e..ea7f78ac7d8 100644 +--- a/grub-core/disk/ieee1275/ofdisk.c ++++ b/grub-core/disk/ieee1275/ofdisk.c +@@ -44,7 +44,7 @@ struct ofdisk_hash_ent + }; + + static grub_err_t +-grub_ofdisk_get_block_size (const char *device, grub_uint32_t *block_size, ++grub_ofdisk_get_block_size (grub_uint32_t *block_size, + struct ofdisk_hash_ent *op); + + #define OFDISK_HASH_SZ 8 +@@ -461,6 +461,7 @@ grub_ofdisk_open (const char *name, grub_disk_t disk) + grub_ssize_t actual; + grub_uint32_t block_size = 0; + grub_err_t err; ++ struct ofdisk_hash_ent *op; + + if (grub_strncmp (name, "ieee1275/", sizeof ("ieee1275/") - 1) != 0) + return grub_error (GRUB_ERR_UNKNOWN_DEVICE, +@@ -471,6 +472,35 @@ grub_ofdisk_open (const char *name, grub_disk_t disk) + + grub_dprintf ("disk", "Opening `%s'.\n", devpath); + ++ op = ofdisk_hash_find (devpath); ++ if (!op) ++ op = ofdisk_hash_add (devpath, NULL); ++ if (!op) ++ { ++ grub_free (devpath); ++ return grub_errno; ++ } ++ ++ /* Check if the call to open is the same to the last disk already opened */ ++ if (last_devpath && !grub_strcmp(op->open_path,last_devpath)) ++ { ++ goto finish; ++ } ++ ++ /* If not, we need to close the previous disk and open the new one */ ++ else { ++ if (last_ihandle){ ++ grub_ieee1275_close (last_ihandle); ++ } ++ last_ihandle = 0; ++ last_devpath = NULL; ++ ++ grub_ieee1275_open (op->open_path, &last_ihandle); ++ if (! last_ihandle) ++ return grub_error (GRUB_ERR_UNKNOWN_DEVICE, "can't open device"); ++ last_devpath = op->open_path; ++ } ++ + if (grub_ieee1275_finddevice (devpath, &dev)) + { + grub_free (devpath); +@@ -491,25 +521,18 @@ grub_ofdisk_open (const char *name, grub_disk_t disk) + return grub_error (GRUB_ERR_UNKNOWN_DEVICE, "not a block device"); + } + ++ ++ finish: + /* XXX: There is no property to read the number of blocks. There + should be a property `#blocks', but it is not there. Perhaps it + is possible to use seek for this. */ + disk->total_sectors = GRUB_DISK_SIZE_UNKNOWN; + + { +- struct ofdisk_hash_ent *op; +- op = ofdisk_hash_find (devpath); +- if (!op) +- op = ofdisk_hash_add (devpath, NULL); +- if (!op) +- { +- grub_free (devpath); +- return grub_errno; +- } + disk->id = (unsigned long) op; + disk->data = op->open_path; + +- err = grub_ofdisk_get_block_size (devpath, &block_size, op); ++ err = grub_ofdisk_get_block_size (&block_size, op); + if (err) + { + grub_free (devpath); +@@ -532,13 +555,6 @@ grub_ofdisk_open (const char *name, grub_disk_t disk) + static void + grub_ofdisk_close (grub_disk_t disk) + { +- if (disk->data == last_devpath) +- { +- if (last_ihandle) +- grub_ieee1275_close (last_ihandle); +- last_ihandle = 0; +- last_devpath = NULL; +- } + disk->data = 0; + } + +@@ -685,7 +701,7 @@ grub_ofdisk_init (void) + } + + static grub_err_t +-grub_ofdisk_get_block_size (const char *device, grub_uint32_t *block_size, ++grub_ofdisk_get_block_size (grub_uint32_t *block_size, + struct ofdisk_hash_ent *op) + { + struct size_args_ieee1275 +@@ -698,16 +714,6 @@ grub_ofdisk_get_block_size (const char *device, grub_uint32_t *block_size, + grub_ieee1275_cell_t size2; + } args_ieee1275; + +- if (last_ihandle) +- grub_ieee1275_close (last_ihandle); +- +- last_ihandle = 0; +- last_devpath = NULL; +- +- grub_ieee1275_open (device, &last_ihandle); +- if (! last_ihandle) +- return grub_error (GRUB_ERR_UNKNOWN_DEVICE, "can't open device"); +- + *block_size = 0; + + if (op->block_size_fails >= 2) diff --git a/0159-ieee1275-powerpc-implements-fibre-channel-discovery-.patch b/0159-ieee1275-powerpc-implements-fibre-channel-discovery-.patch new file mode 100644 index 0000000..9fa02bb --- /dev/null +++ b/0159-ieee1275-powerpc-implements-fibre-channel-discovery-.patch @@ -0,0 +1,90 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Diego Domingos +Date: Mon, 14 Dec 2020 17:45:28 +0100 +Subject: [PATCH] ieee1275/powerpc: implements fibre channel discovery for + ofpathname + +grub-ofpathname doesn't work with fibre channel because there is no +function currently implemented for it. +This patch enables it by prividing a function that looks for the port +name, building the entire path for OF devices. + +Signed-off-by: Diego Domingos +--- + grub-core/osdep/linux/ofpath.c | 49 ++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 49 insertions(+) + +diff --git a/grub-core/osdep/linux/ofpath.c b/grub-core/osdep/linux/ofpath.c +index a6153d35954..0f5d54e9f2d 100644 +--- a/grub-core/osdep/linux/ofpath.c ++++ b/grub-core/osdep/linux/ofpath.c +@@ -350,6 +350,38 @@ of_path_of_ide(const char *sys_devname __attribute__((unused)), const char *devi + return ret; + } + ++ ++static void ++of_fc_port_name(const char *path, const char *subpath, char *port_name) ++{ ++ char *bname, *basepath, *p; ++ int fd; ++ ++ bname = xmalloc(sizeof(char)*150); ++ basepath = xmalloc(strlen(path)); ++ ++ /* Generate the path to get port name information from the drive */ ++ strncpy(basepath,path,subpath-path); ++ basepath[subpath-path-1] = '\0'; ++ p = get_basename(basepath); ++ snprintf(bname,sizeof(char)*150,"%s/fc_transport/%s/port_name",basepath,p); ++ ++ /* Read the information from the port name */ ++ fd = open (bname, O_RDONLY); ++ if (fd < 0) ++ grub_util_error (_("cannot open `%s': %s"), bname, strerror (errno)); ++ ++ if (read(fd,port_name,sizeof(char)*19) < 0) ++ grub_util_error (_("cannot read `%s': %s"), bname, strerror (errno)); ++ ++ sscanf(port_name,"0x%s",port_name); ++ ++ close(fd); ++ ++ free(bname); ++ free(basepath); ++} ++ + #ifdef __sparc__ + static char * + of_path_of_nvme(const char *sys_devname __attribute__((unused)), +@@ -577,6 +609,16 @@ of_path_of_scsi(const char *sys_devname __attribute__((unused)), const char *dev + digit_string = trailing_digits (device); + if (strncmp (of_path, "/vdevice/", sizeof ("/vdevice/") - 1) == 0) + { ++ if(strstr(of_path,"vfc-client")) ++ { ++ char * port_name = xmalloc(sizeof(char)*17); ++ of_fc_port_name(sysfs_path, p, port_name); ++ ++ snprintf(disk,sizeof(disk),"/%s@%s", disk_name, port_name); ++ free(port_name); ++ } ++ else ++ { + unsigned long id = 0x8000 | (tgt << 8) | (bus << 5) | lun; + if (*digit_string == '\0') + { +@@ -590,6 +632,13 @@ of_path_of_scsi(const char *sys_devname __attribute__((unused)), const char *dev + snprintf(disk, sizeof (disk), + "/%s@%04lx000000000000:%c", disk_name, id, 'a' + (part - 1)); + } ++ } ++ } else if (strstr(of_path,"fibre-channel")||(strstr(of_path,"vfc-client"))){ ++ char * port_name = xmalloc(sizeof(char)*17); ++ of_fc_port_name(sysfs_path, p, port_name); ++ ++ snprintf(disk,sizeof(disk),"/%s@%s", disk_name, port_name); ++ free(port_name); + } + else + { diff --git a/0160-Make-grub_strtol-end-pointers-have-safer-const-quali.patch b/0160-Make-grub_strtol-end-pointers-have-safer-const-quali.patch deleted file mode 100644 index 234bf07..0000000 --- a/0160-Make-grub_strtol-end-pointers-have-safer-const-quali.patch +++ /dev/null @@ -1,990 +0,0 @@ -From 9b30aea6e6282803165d852d2dc0e1d35836114f Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Fri, 19 Oct 2018 13:41:48 -0400 -Subject: [PATCH 160/220] Make grub_strtol() "end" pointers have safer const - qualifiers. (v2) - -Currently the string functions grub_strtol(), grub_strtoul(), and -grub_strtoull() don't declare the "end" pointer in such a way as to -require the pointer itself or the character array to be immutable to the -implementation, nor does the C standard do so in its similar functions, -though it does require us not to change any of it. - -The typical declarations of these functions follow this pattern: - -long -strtol(const char * restrict nptr, char ** restrict endptr, int base); - -Much of the reason for this is historic, and a discussion of that -follows below, after the explanation of this change. (GRUB currently -does not include the "restrict" qualifiers, and we name the arguments a -bit differently.) - -The implementation is semantically required to treat the character array -as immutable, but such accidental modifications aren't stopped by the -compiler, and the semantics for both the callers and the implementation -of these functions are sometimes also helped by adding that requirement. - -This patch changes these declarations to follow this pattern instead: - -long -strtol(const char * restrict nptr, - const char ** const restrict endptr, - int base); - -This means that if any modification to these functions accidentally -introduces either an errant modification to the underlying character -array, or an accidental assignment to endptr rather than *endptr, the -compiler should generate an error. (The two uses of "restrict" in this -case basically mean strtol() isn't allowed to modify the character array -by going through *endptr, and endptr isn't allowed to point inside the -array.) - -It also means the typical use case changes to: - - char *s = ...; - const char *end; - long l; - - l = strtol(s, &end, 10); - -Or even: - - const char *p = str; - while (p && *p) { - long l = strtol(p, &p, 10); - ... - } - -This fixes 26 places where we discard our attempts at treating the data -safely by doing: - - const char *p = str; - long l; - - l = strtol(p, (char **)&ptr, 10); - -It also adds 5 places where we do: - - char *p = str; - while (p && *p) { - long l = strtol(p, (const char ** const)&p, 10); - ... - /* more calls that need p not to be pointer-to-const */ - } - -While moderately distasteful, this is a better problem to have. - -With one minor exception, I have tested that all of this compiles -without relevant warnings or errors, and that /much/ of it behaves -correctly, with gcc 9 using 'gcc -W -Wall -Wextra'. The one exception -is the changes in grub-core/osdep/aros/hostdisk.c , which I have no idea -how to build. - -Because the C standard defined type-qualifiers in a way that can be -confusing, in the past there's been a slow but fairly regular stream of -churn within our patches, which add and remove the const qualifier in many -of the users of these functions. This change should help avoid that in -the future, and in order to help ensure this, I've added an explanation -in misc.h so that when someone does get a compiler warning about a type -error, they have the fix at hand. - -The reason we don't have "const" in these calls in the standard is -purely anachronistic: C78 (de facto) did not have type qualifiers in the -syntax, and the "const" type qualifier was added for C89 (I think; it -may have been later). strtol() appears to date from 4.3BSD in 1986, -which means it could not be added to those functions in the standard -without breaking compatibility, which is usually avoided. - -The syntax chosen for type qualifiers is what has led to the churn -regarding usage of const, and is especially confusing on string -functions due to the lack of a string type. Quoting from C99, the -syntax is: - - declarator: - pointer[opt] direct-declarator - direct-declarator: - identifier - ( declarator ) - direct-declarator [ type-qualifier-list[opt] assignment-expression[opt] ] - ... - direct-declarator [ type-qualifier-list[opt] * ] - ... - pointer: - * type-qualifier-list[opt] - * type-qualifier-list[opt] pointer - type-qualifier-list: - type-qualifier - type-qualifier-list type-qualifier - ... - type-qualifier: - const - restrict - volatile - -So the examples go like: - -const char foo; // immutable object -const char *foo; // mutable pointer to object -char * const foo; // immutable pointer to mutable object -const char * const foo; // immutable pointer to immutable object -const char const * const foo; // XXX extra const keyword in the middle -const char * const * const foo; // immutable pointer to immutable - // pointer to immutable object -const char ** const foo; // immutable pointer to mutable pointer - // to immutable object - -Making const left-associative for * and right-associative for everything -else may not have been the best choice ever, but here we are, and the -inevitable result is people using trying to use const (as they should!), -putting it at the wrong place, fighting with the compiler for a bit, and -then either removing it or typecasting something in a bad way. I won't -go into describing restrict, but its syntax has exactly the same issue -as with const. - -Anyway, the last example above actually represents the *behavior* that's -required of strtol()-like functions, so that's our choice for the "end" -pointer. - -Signed-off-by: Peter Jones ---- - grub-core/commands/date.c | 3 ++- - grub-core/commands/i386/cmostest.c | 2 +- - grub-core/commands/i386/pc/play.c | 2 +- - grub-core/commands/i386/rdmsr.c | 2 +- - grub-core/commands/i386/wrmsr.c | 2 +- - grub-core/commands/password_pbkdf2.c | 2 +- - grub-core/commands/pcidump.c | 13 ++++++------- - grub-core/commands/regexp.c | 2 +- - grub-core/commands/setpci.c | 21 ++++++++++----------- - grub-core/commands/test.c | 2 +- - grub-core/commands/videoinfo.c | 2 +- - grub-core/disk/diskfilter.c | 3 ++- - grub-core/disk/lvm.c | 9 +++++---- - grub-core/efiemu/pnvram.c | 5 +++-- - grub-core/gfxmenu/gui_circular_progress.c | 2 +- - grub-core/gfxmenu/theme_loader.c | 2 +- - grub-core/kern/fs.c | 2 +- - grub-core/kern/misc.c | 10 ++++++---- - grub-core/kern/partition.c | 2 +- - grub-core/lib/arg.c | 2 +- - grub-core/lib/legacy_parse.c | 2 +- - grub-core/lib/syslinux_parse.c | 6 +++--- - grub-core/loader/i386/bsd.c | 6 +++--- - grub-core/loader/i386/linux.c | 2 +- - grub-core/loader/i386/pc/linux.c | 2 +- - grub-core/loader/i386/xen_fileXX.c | 2 +- - grub-core/mmap/mmap.c | 4 ++-- - grub-core/net/http.c | 4 ++-- - grub-core/net/net.c | 8 ++++---- - grub-core/normal/menu.c | 3 +-- - grub-core/osdep/aros/hostdisk.c | 2 +- - grub-core/osdep/devmapper/hostdisk.c | 2 +- - grub-core/script/execute.c | 6 +++--- - grub-core/term/serial.c | 2 +- - grub-core/term/terminfo.c | 2 +- - grub-core/tests/strtoull_test.c | 2 +- - include/grub/misc.h | 24 +++++++++++++++++++++--- - util/grub-fstest.c | 2 +- - 38 files changed, 96 insertions(+), 75 deletions(-) - -diff --git a/grub-core/commands/date.c b/grub-core/commands/date.c -index 8e1f41f..5cb4faf 100644 ---- a/grub-core/commands/date.c -+++ b/grub-core/commands/date.c -@@ -59,7 +59,8 @@ grub_cmd_date (grub_command_t cmd __attribute__ ((unused)), - - for (; argc; argc--, args++) - { -- char *p, c; -+ const char *p; -+ char c; - int m1, ofs, n, cur_mask; - - p = args[0]; -diff --git a/grub-core/commands/i386/cmostest.c b/grub-core/commands/i386/cmostest.c -index c839b70..9f6b56a 100644 ---- a/grub-core/commands/i386/cmostest.c -+++ b/grub-core/commands/i386/cmostest.c -@@ -27,7 +27,7 @@ GRUB_MOD_LICENSE ("GPLv3+"); - static grub_err_t - parse_args (int argc, char *argv[], int *byte, int *bit) - { -- char *rest; -+ const char *rest; - - if (argc != 1) - return grub_error (GRUB_ERR_BAD_ARGUMENT, "address required"); -diff --git a/grub-core/commands/i386/pc/play.c b/grub-core/commands/i386/pc/play.c -index c818131..a980e46 100644 ---- a/grub-core/commands/i386/pc/play.c -+++ b/grub-core/commands/i386/pc/play.c -@@ -132,7 +132,7 @@ grub_cmd_play (grub_command_t cmd __attribute__ ((unused)), - } - else - { -- char *end; -+ const char *end; - unsigned tempo; - struct note note; - int i; -diff --git a/grub-core/commands/i386/rdmsr.c b/grub-core/commands/i386/rdmsr.c -index 15b9adf..46c4346 100644 ---- a/grub-core/commands/i386/rdmsr.c -+++ b/grub-core/commands/i386/rdmsr.c -@@ -44,7 +44,7 @@ grub_cmd_msr_read (grub_extcmd_context_t ctxt, int argc, char **argv) - { - grub_uint32_t manufacturer[3], max_cpuid, a, b, c, features, addr; - grub_uint64_t value; -- char *ptr; -+ const char *ptr; - char buf[sizeof("1122334455667788")]; - - /* -diff --git a/grub-core/commands/i386/wrmsr.c b/grub-core/commands/i386/wrmsr.c -index 9c5e510..fa76f5a 100644 ---- a/grub-core/commands/i386/wrmsr.c -+++ b/grub-core/commands/i386/wrmsr.c -@@ -37,7 +37,7 @@ grub_cmd_msr_write (grub_command_t cmd __attribute__ ((unused)), int argc, char - { - grub_uint32_t manufacturer[3], max_cpuid, a, b, c, features, addr; - grub_uint64_t value; -- char *ptr; -+ const char *ptr; - - /* - * The CPUID instruction should be used to determine whether MSRs -diff --git a/grub-core/commands/password_pbkdf2.c b/grub-core/commands/password_pbkdf2.c -index da636e6..ab845d2 100644 ---- a/grub-core/commands/password_pbkdf2.c -+++ b/grub-core/commands/password_pbkdf2.c -@@ -86,7 +86,7 @@ grub_cmd_password (grub_command_t cmd __attribute__ ((unused)), - int argc, char **args) - { - grub_err_t err; -- char *ptr, *ptr2; -+ const char *ptr, *ptr2; - grub_uint8_t *ptro; - struct pbkdf2_password *pass; - -diff --git a/grub-core/commands/pcidump.c b/grub-core/commands/pcidump.c -index f99ad4a..f72628f 100644 ---- a/grub-core/commands/pcidump.c -+++ b/grub-core/commands/pcidump.c -@@ -95,7 +95,7 @@ grub_cmd_pcidump (grub_extcmd_context_t ctxt, - if (ctxt->state[0].set) - { - ptr = ctxt->state[0].arg; -- ctx.pciid_check_value |= (grub_strtoul (ptr, (char **) &ptr, 16) & 0xffff); -+ ctx.pciid_check_value |= (grub_strtoul (ptr, &ptr, 16) & 0xffff); - if (grub_errno == GRUB_ERR_BAD_NUMBER) - { - grub_errno = GRUB_ERR_NONE; -@@ -108,8 +108,7 @@ grub_cmd_pcidump (grub_extcmd_context_t ctxt, - if (*ptr != ':') - return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("missing `%c' symbol"), ':'); - ptr++; -- ctx.pciid_check_value |= (grub_strtoul (ptr, (char **) &ptr, 16) & 0xffff) -- << 16; -+ ctx.pciid_check_value |= (grub_strtoul (ptr, &ptr, 16) & 0xffff) << 16; - if (grub_errno == GRUB_ERR_BAD_NUMBER) - grub_errno = GRUB_ERR_NONE; - else -@@ -121,10 +120,10 @@ grub_cmd_pcidump (grub_extcmd_context_t ctxt, - if (ctxt->state[1].set) - { - const char *optr; -- -+ - ptr = ctxt->state[1].arg; - optr = ptr; -- ctx.bus = grub_strtoul (ptr, (char **) &ptr, 16); -+ ctx.bus = grub_strtoul (ptr, &ptr, 16); - if (grub_errno == GRUB_ERR_BAD_NUMBER) - { - grub_errno = GRUB_ERR_NONE; -@@ -138,7 +137,7 @@ grub_cmd_pcidump (grub_extcmd_context_t ctxt, - return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("missing `%c' symbol"), ':'); - ptr++; - optr = ptr; -- ctx.device = grub_strtoul (ptr, (char **) &ptr, 16); -+ ctx.device = grub_strtoul (ptr, &ptr, 16); - if (grub_errno == GRUB_ERR_BAD_NUMBER) - { - grub_errno = GRUB_ERR_NONE; -@@ -149,7 +148,7 @@ grub_cmd_pcidump (grub_extcmd_context_t ctxt, - if (*ptr == '.') - { - ptr++; -- ctx.function = grub_strtoul (ptr, (char **) &ptr, 16); -+ ctx.function = grub_strtoul (ptr, &ptr, 16); - if (grub_errno) - return grub_errno; - ctx.check_function = 1; -diff --git a/grub-core/commands/regexp.c b/grub-core/commands/regexp.c -index f00b184..7c5c72f 100644 ---- a/grub-core/commands/regexp.c -+++ b/grub-core/commands/regexp.c -@@ -64,7 +64,7 @@ set_matches (char **varnames, char *str, grub_size_t nmatches, - { - int i; - char *p; -- char *q; -+ const char * q; - grub_err_t err; - unsigned long j; - -diff --git a/grub-core/commands/setpci.c b/grub-core/commands/setpci.c -index d5bc97d..e966af0 100644 ---- a/grub-core/commands/setpci.c -+++ b/grub-core/commands/setpci.c -@@ -169,7 +169,7 @@ grub_cmd_setpci (grub_extcmd_context_t ctxt, int argc, char **argv) - if (ctxt->state[0].set) - { - ptr = ctxt->state[0].arg; -- pciid_check_value |= (grub_strtoul (ptr, (char **) &ptr, 16) & 0xffff); -+ pciid_check_value |= (grub_strtoul (ptr, &ptr, 16) & 0xffff); - if (grub_errno == GRUB_ERR_BAD_NUMBER) - { - grub_errno = GRUB_ERR_NONE; -@@ -182,8 +182,7 @@ grub_cmd_setpci (grub_extcmd_context_t ctxt, int argc, char **argv) - if (*ptr != ':') - return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("missing `%c' symbol"), ':'); - ptr++; -- pciid_check_value |= (grub_strtoul (ptr, (char **) &ptr, 16) & 0xffff) -- << 16; -+ pciid_check_value |= (grub_strtoul (ptr, &ptr, 16) & 0xffff) << 16; - if (grub_errno == GRUB_ERR_BAD_NUMBER) - grub_errno = GRUB_ERR_NONE; - else -@@ -197,10 +196,10 @@ grub_cmd_setpci (grub_extcmd_context_t ctxt, int argc, char **argv) - if (ctxt->state[1].set) - { - const char *optr; -- -+ - ptr = ctxt->state[1].arg; - optr = ptr; -- bus = grub_strtoul (ptr, (char **) &ptr, 16); -+ bus = grub_strtoul (ptr, &ptr, 16); - if (grub_errno == GRUB_ERR_BAD_NUMBER) - { - grub_errno = GRUB_ERR_NONE; -@@ -214,7 +213,7 @@ grub_cmd_setpci (grub_extcmd_context_t ctxt, int argc, char **argv) - return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("missing `%c' symbol"), ':'); - ptr++; - optr = ptr; -- device = grub_strtoul (ptr, (char **) &ptr, 16); -+ device = grub_strtoul (ptr, &ptr, 16); - if (grub_errno == GRUB_ERR_BAD_NUMBER) - { - grub_errno = GRUB_ERR_NONE; -@@ -225,7 +224,7 @@ grub_cmd_setpci (grub_extcmd_context_t ctxt, int argc, char **argv) - if (*ptr == '.') - { - ptr++; -- function = grub_strtoul (ptr, (char **) &ptr, 16); -+ function = grub_strtoul (ptr, &ptr, 16); - if (grub_errno) - return grub_errno; - check_function = 1; -@@ -253,7 +252,7 @@ grub_cmd_setpci (grub_extcmd_context_t ctxt, int argc, char **argv) - if (i == ARRAY_SIZE (pci_registers)) - { - regsize = 0; -- regaddr = grub_strtoul (ptr, (char **) &ptr, 16); -+ regaddr = grub_strtoul (ptr, &ptr, 16); - if (grub_errno) - return grub_error (GRUB_ERR_BAD_ARGUMENT, "unknown register"); - } -@@ -270,7 +269,7 @@ grub_cmd_setpci (grub_extcmd_context_t ctxt, int argc, char **argv) - if (*ptr == '+') - { - ptr++; -- regaddr += grub_strtoul (ptr, (char **) &ptr, 16); -+ regaddr += grub_strtoul (ptr, &ptr, 16); - if (grub_errno) - return grub_errno; - } -@@ -302,14 +301,14 @@ grub_cmd_setpci (grub_extcmd_context_t ctxt, int argc, char **argv) - if (*ptr == '=') - { - ptr++; -- regwrite = grub_strtoul (ptr, (char **) &ptr, 16); -+ regwrite = grub_strtoul (ptr, &ptr, 16); - if (grub_errno) - return grub_errno; - write_mask = 0xffffffff; - if (*ptr == ':') - { - ptr++; -- write_mask = grub_strtoul (ptr, (char **) &ptr, 16); -+ write_mask = grub_strtoul (ptr, &ptr, 16); - if (grub_errno) - return grub_errno; - write_mask = 0xffffffff; -diff --git a/grub-core/commands/test.c b/grub-core/commands/test.c -index 4e929e0..62d3fb3 100644 ---- a/grub-core/commands/test.c -+++ b/grub-core/commands/test.c -@@ -31,7 +31,7 @@ GRUB_MOD_LICENSE ("GPLv3+"); - - /* A simple implementation for signed numbers. */ - static int --grub_strtosl (char *arg, char **end, int base) -+grub_strtosl (char *arg, const char ** const end, int base) - { - if (arg[0] == '-') - return -grub_strtoul (arg + 1, end, base); -diff --git a/grub-core/commands/videoinfo.c b/grub-core/commands/videoinfo.c -index 4be8107..016a4d8 100644 ---- a/grub-core/commands/videoinfo.c -+++ b/grub-core/commands/videoinfo.c -@@ -136,7 +136,7 @@ grub_cmd_videoinfo (grub_command_t cmd __attribute__ ((unused)), - ctx.height = ctx.width = ctx.depth = 0; - if (argc) - { -- char *ptr; -+ const char *ptr; - ptr = args[0]; - ctx.width = grub_strtoul (ptr, &ptr, 0); - if (grub_errno) -diff --git a/grub-core/disk/diskfilter.c b/grub-core/disk/diskfilter.c -index 1a3eb6b..3f264be 100644 ---- a/grub-core/disk/diskfilter.c -+++ b/grub-core/disk/diskfilter.c -@@ -971,7 +971,8 @@ grub_diskfilter_vg_register (struct grub_diskfilter_vg *vg) - for (p = vgp->lvs; p; p = p->next) - { - int cur_num; -- char *num, *end; -+ char *num; -+ const char *end; - if (!p->fullname) - continue; - if (grub_strncmp (p->fullname, lv->fullname, len) != 0) -diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c -index 7b265c7..0cbd0dd 100644 ---- a/grub-core/disk/lvm.c -+++ b/grub-core/disk/lvm.c -@@ -38,7 +38,7 @@ GRUB_MOD_LICENSE ("GPLv3+"); - at the number. In case STR is not found, *P will be NULL and the - return value will be 0. */ - static grub_uint64_t --grub_lvm_getvalue (char **p, const char *str) -+grub_lvm_getvalue (const char ** const p, const char *str) - { - *p = grub_strstr (*p, str); - if (! *p) -@@ -63,12 +63,12 @@ grub_lvm_checkvalue (char **p, char *str, char *tmpl) - #endif - - static int --grub_lvm_check_flag (char *p, const char *str, const char *flag) -+grub_lvm_check_flag (const char *p, const char *str, const char *flag) - { - grub_size_t len_str = grub_strlen (str), len_flag = grub_strlen (flag); - while (1) - { -- char *q; -+ const char *q; - p = grub_strstr (p, str); - if (! p) - return 0; -@@ -105,7 +105,8 @@ grub_lvm_detect (grub_disk_t disk, - char buf[GRUB_LVM_LABEL_SIZE]; - char vg_id[GRUB_LVM_ID_STRLEN+1]; - char pv_id[GRUB_LVM_ID_STRLEN+1]; -- char *metadatabuf, *p, *q, *vgname; -+ char *metadatabuf, *vgname; -+ const char *p, *q; - struct grub_lvm_label_header *lh = (struct grub_lvm_label_header *) buf; - struct grub_lvm_pv_header *pvh; - struct grub_lvm_disk_locn *dlocn; -diff --git a/grub-core/efiemu/pnvram.c b/grub-core/efiemu/pnvram.c -index c5c3d4b..dd42bc6 100644 ---- a/grub-core/efiemu/pnvram.c -+++ b/grub-core/efiemu/pnvram.c -@@ -39,7 +39,7 @@ static grub_size_t nvramsize; - - /* Parse signed value */ - static int --grub_strtosl (const char *arg, char **end, int base) -+grub_strtosl (const char *arg, const char ** const end, int base) - { - if (arg[0] == '-') - return -grub_strtoul (arg + 1, end, base); -@@ -120,7 +120,8 @@ nvram_set (void * data __attribute__ ((unused))) - grub_memset (nvram, 0, nvramsize); - FOR_SORTED_ENV (var) - { -- char *guid, *attr, *name, *varname; -+ const char *guid; -+ char *attr, *name, *varname; - struct efi_variable *efivar; - int len = 0; - int i; -diff --git a/grub-core/gfxmenu/gui_circular_progress.c b/grub-core/gfxmenu/gui_circular_progress.c -index 354dd7b..7578bfb 100644 ---- a/grub-core/gfxmenu/gui_circular_progress.c -+++ b/grub-core/gfxmenu/gui_circular_progress.c -@@ -230,7 +230,7 @@ circprog_set_state (void *vself, int visible, int start, - static int - parse_angle (const char *value) - { -- char *ptr; -+ const char *ptr; - int angle; - - angle = grub_strtol (value, &ptr, 10); -diff --git a/grub-core/gfxmenu/theme_loader.c b/grub-core/gfxmenu/theme_loader.c -index d6829bb..eae8308 100644 ---- a/grub-core/gfxmenu/theme_loader.c -+++ b/grub-core/gfxmenu/theme_loader.c -@@ -484,7 +484,7 @@ parse_proportional_spec (const char *value, signed *abs, grub_fixed_signed_t *pr - ptr++; - } - -- num = grub_strtoul (ptr, (char **) &ptr, 0); -+ num = grub_strtoul (ptr, &ptr, 0); - if (grub_errno) - return grub_errno; - if (sig) -diff --git a/grub-core/kern/fs.c b/grub-core/kern/fs.c -index 2b85f49..88d3936 100644 ---- a/grub-core/kern/fs.c -+++ b/grub-core/kern/fs.c -@@ -134,7 +134,7 @@ struct grub_fs_block - static grub_err_t - grub_fs_blocklist_open (grub_file_t file, const char *name) - { -- char *p = (char *) name; -+ const char *p = name; - unsigned num = 0; - unsigned i; - grub_disk_t disk = file->device->disk; -diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index 5c3899f..e21dd44 100644 ---- a/grub-core/kern/misc.c -+++ b/grub-core/kern/misc.c -@@ -383,7 +383,8 @@ grub_isspace (int c) - } - - unsigned long --grub_strtoul (const char *str, char **end, int base) -+grub_strtoul (const char * restrict str, const char ** const restrict end, -+ int base) - { - unsigned long long num; - -@@ -400,7 +401,8 @@ grub_strtoul (const char *str, char **end, int base) - } - - unsigned long long --grub_strtoull (const char *str, char **end, int base) -+grub_strtoull (const char * restrict str, const char ** const restrict end, -+ int base) - { - unsigned long long num = 0; - int found = 0; -@@ -901,14 +903,14 @@ grub_vsnprintf_real (char *str, grub_size_t max_len, const char *fmt0, - { - if (fmt[0] == '0') - zerofill = '0'; -- format1 = grub_strtoul (fmt, (char **) &fmt, 10); -+ format1 = grub_strtoul (fmt, &fmt, 10); - } - - if (*fmt == '.') - fmt++; - - if (grub_isdigit (*fmt)) -- format2 = grub_strtoul (fmt, (char **) &fmt, 10); -+ format2 = grub_strtoul (fmt, &fmt, 10); - - if (*fmt == '$') - { -diff --git a/grub-core/kern/partition.c b/grub-core/kern/partition.c -index e499147..2c401b8 100644 ---- a/grub-core/kern/partition.c -+++ b/grub-core/kern/partition.c -@@ -126,7 +126,7 @@ grub_partition_probe (struct grub_disk *disk, const char *str) - while (*ptr && grub_isalpha (*ptr)) - ptr++; - partname_end = ptr; -- num = grub_strtoul (ptr, (char **) &ptr, 0) - 1; -+ num = grub_strtoul (ptr, &ptr, 0) - 1; - - curpart = 0; - /* Use the first partition map type found. */ -diff --git a/grub-core/lib/arg.c b/grub-core/lib/arg.c -index fd7744a..ccc1850 100644 ---- a/grub-core/lib/arg.c -+++ b/grub-core/lib/arg.c -@@ -375,7 +375,7 @@ grub_arg_parse (grub_extcmd_t cmd, int argc, char **argv, - - case ARG_TYPE_INT: - { -- char *tail; -+ const char * tail; - - grub_strtoull (option, &tail, 0); - if (tail == 0 || tail == option || *tail != '\0' || grub_errno) -diff --git a/grub-core/lib/legacy_parse.c b/grub-core/lib/legacy_parse.c -index ef56150..05719ab 100644 ---- a/grub-core/lib/legacy_parse.c -+++ b/grub-core/lib/legacy_parse.c -@@ -418,7 +418,7 @@ adjust_file (const char *in, grub_size_t len) - } - if (*comma != ',') - return grub_legacy_escape (in, len); -- part = grub_strtoull (comma + 1, (char **) &rest, 0); -+ part = grub_strtoull (comma + 1, &rest, 0); - if (rest[0] == ',' && rest[1] >= 'a' && rest[1] <= 'z') - { - subpart = rest[1] - 'a'; -diff --git a/grub-core/lib/syslinux_parse.c b/grub-core/lib/syslinux_parse.c -index 4afa992..de9fda0 100644 ---- a/grub-core/lib/syslinux_parse.c -+++ b/grub-core/lib/syslinux_parse.c -@@ -1062,7 +1062,7 @@ write_entry (struct output_buffer *outbuf, - if (ptr[0] == 'h' && ptr[1] == 'd') - { - is_fd = 0; -- devn = grub_strtoul (ptr + 2, &ptr, 0); -+ devn = grub_strtoul (ptr + 2, (const char **)&ptr, 0); - continue; - } - if (grub_strncasecmp (ptr, "file=", 5) == 0) -@@ -1086,12 +1086,12 @@ write_entry (struct output_buffer *outbuf, - if (ptr[0] == 'f' && ptr[1] == 'd') - { - is_fd = 1; -- devn = grub_strtoul (ptr + 2, &ptr, 0); -+ devn = grub_strtoul (ptr + 2, (const char **)&ptr, 0); - continue; - } - if (grub_isdigit (ptr[0])) - { -- part = grub_strtoul (ptr, &ptr, 0); -+ part = grub_strtoul (ptr, (const char **)&ptr, 0); - continue; - } - /* FIXME: isolinux, ntldr, cmldr, *dos, seg, hide -diff --git a/grub-core/loader/i386/bsd.c b/grub-core/loader/i386/bsd.c -index 5b9b92d..50cca30 100644 ---- a/grub-core/loader/i386/bsd.c -+++ b/grub-core/loader/i386/bsd.c -@@ -1616,7 +1616,7 @@ grub_cmd_openbsd (grub_extcmd_context_t ctxt, int argc, char *argv[]) - return grub_error (GRUB_ERR_BAD_ARGUMENT, - "unknown disk type name"); - -- unit = grub_strtoul (arg, (char **) &arg, 10); -+ unit = grub_strtoul (arg, &arg, 10); - if (! (arg && *arg >= 'a' && *arg <= 'z')) - return grub_error (GRUB_ERR_BAD_ARGUMENT, - "only device specifications of form " -@@ -1634,7 +1634,7 @@ grub_cmd_openbsd (grub_extcmd_context_t ctxt, int argc, char *argv[]) - if (ctxt->state[OPENBSD_SERIAL_ARG].set) - { - struct grub_openbsd_bootarg_console serial; -- char *ptr; -+ const char *ptr; - unsigned port = 0; - unsigned speed = 9600; - -@@ -1736,7 +1736,7 @@ grub_cmd_netbsd (grub_extcmd_context_t ctxt, int argc, char *argv[]) - if (ctxt->state[NETBSD_SERIAL_ARG].set) - { - struct grub_netbsd_btinfo_serial serial; -- char *ptr; -+ const char *ptr; - - grub_memset (&serial, 0, sizeof (serial)); - grub_strcpy (serial.devname, "com"); -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index 376c726..201e659 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -954,7 +954,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - #endif /* GRUB_MACHINE_PCBIOS */ - if (grub_memcmp (argv[i], "mem=", 4) == 0) - { -- char *val = argv[i] + 4; -+ const char *val = argv[i] + 4; - - linux_mem_size = grub_strtoul (val, &val, 0); - -diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c -index fe3e1d4..0bf0e13 100644 ---- a/grub-core/loader/i386/pc/linux.c -+++ b/grub-core/loader/i386/pc/linux.c -@@ -272,7 +272,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - } - else if (grub_memcmp (argv[i], "mem=", 4) == 0) - { -- char *val = argv[i] + 4; -+ const char *val = argv[i] + 4; - - linux_mem_size = grub_strtoul (val, &val, 0); - -diff --git a/grub-core/loader/i386/xen_fileXX.c b/grub-core/loader/i386/xen_fileXX.c -index 6329ec0..27afcaa 100644 ---- a/grub-core/loader/i386/xen_fileXX.c -+++ b/grub-core/loader/i386/xen_fileXX.c -@@ -25,7 +25,7 @@ parse_xen_guest (grub_elf_t elf, struct grub_xen_file_info *xi, - grub_off_t off, grub_size_t sz) - { - char *buf; -- char *ptr; -+ const char *ptr; - int has_paddr = 0; - - grub_errno = GRUB_ERR_NONE; -diff --git a/grub-core/mmap/mmap.c b/grub-core/mmap/mmap.c -index 6a31cba..b569cb2 100644 ---- a/grub-core/mmap/mmap.c -+++ b/grub-core/mmap/mmap.c -@@ -423,7 +423,7 @@ static grub_err_t - grub_cmd_badram (grub_command_t cmd __attribute__ ((unused)), - int argc, char **args) - { -- char * str; -+ const char *str; - struct badram_entry entry; - - if (argc != 1) -@@ -465,7 +465,7 @@ static grub_uint64_t - parsemem (const char *str) - { - grub_uint64_t ret; -- char *ptr; -+ const char *ptr; - - ret = grub_strtoul (str, &ptr, 0); - -diff --git a/grub-core/net/http.c b/grub-core/net/http.c -index c9c5969..b52b558 100644 ---- a/grub-core/net/http.c -+++ b/grub-core/net/http.c -@@ -110,7 +110,7 @@ parse_line (grub_file_t file, http_data_t data, char *ptr, grub_size_t len) - return GRUB_ERR_NONE; - } - ptr += sizeof ("HTTP/1.1 ") - 1; -- code = grub_strtoul (ptr, &ptr, 10); -+ code = grub_strtoul (ptr, (const char **)&ptr, 10); - if (grub_errno) - return grub_errno; - switch (code) -@@ -137,7 +137,7 @@ parse_line (grub_file_t file, http_data_t data, char *ptr, grub_size_t len) - == 0 && !data->size_recv) - { - ptr += sizeof ("Content-Length: ") - 1; -- file->size = grub_strtoull (ptr, &ptr, 10); -+ file->size = grub_strtoull (ptr, (const char **)&ptr, 10); - data->size_recv = 1; - return GRUB_ERR_NONE; - } -diff --git a/grub-core/net/net.c b/grub-core/net/net.c -index 27a0a1d..aa56393 100644 ---- a/grub-core/net/net.c -+++ b/grub-core/net/net.c -@@ -411,7 +411,7 @@ parse_ip (const char *val, grub_uint32_t *ip, const char **rest) - for (i = 0; i < 4; i++) - { - unsigned long t; -- t = grub_strtoul (ptr, (char **) &ptr, 0); -+ t = grub_strtoul (ptr, &ptr, 0); - if (grub_errno) - { - grub_errno = GRUB_ERR_NONE; -@@ -465,7 +465,7 @@ parse_ip6 (const char *val, grub_uint64_t *ip, const char **rest) - ptr++; - continue; - } -- t = grub_strtoul (ptr, (char **) &ptr, 16); -+ t = grub_strtoul (ptr, &ptr, 16); - if (grub_errno) - { - grub_errno = GRUB_ERR_NONE; -@@ -577,7 +577,7 @@ grub_net_resolve_net_address (const char *name, - addr->type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV4; - if (*rest == '/') - { -- addr->ipv4.masksize = grub_strtoul (rest + 1, (char **) &rest, 0); -+ addr->ipv4.masksize = grub_strtoul (rest + 1, &rest, 0); - if (!grub_errno && *rest == 0) - return GRUB_ERR_NONE; - grub_errno = GRUB_ERR_NONE; -@@ -593,7 +593,7 @@ grub_net_resolve_net_address (const char *name, - addr->type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; - if (*rest == '/') - { -- addr->ipv6.masksize = grub_strtoul (rest + 1, (char **) &rest, 0); -+ addr->ipv6.masksize = grub_strtoul (rest + 1, &rest, 0); - if (!grub_errno && *rest == 0) - return GRUB_ERR_NONE; - grub_errno = GRUB_ERR_NONE; -diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c -index 046a1fb..37d753d 100644 ---- a/grub-core/normal/menu.c -+++ b/grub-core/normal/menu.c -@@ -194,8 +194,7 @@ menuentry_eq (const char *id, const char *spec) - static int - get_and_remove_first_entry_number (grub_menu_t menu, const char *name) - { -- const char *val; -- char *tail; -+ const char *val, *tail; - int entry; - int sz = 0; - -diff --git a/grub-core/osdep/aros/hostdisk.c b/grub-core/osdep/aros/hostdisk.c -index 2be654c..3b2c9de 100644 ---- a/grub-core/osdep/aros/hostdisk.c -+++ b/grub-core/osdep/aros/hostdisk.c -@@ -194,7 +194,7 @@ grub_util_fd_open (const char *dev, int flg) - p1 = dev + strlen (dev); - else - { -- unit = grub_strtoul (p1 + 1, (char **) &p2, 16); -+ unit = grub_strtoul (p1 + 1, &p2, 16); - if (p2 && *p2 == '/') - flags = grub_strtoul (p2 + 1, 0, 16); - } -diff --git a/grub-core/osdep/devmapper/hostdisk.c b/grub-core/osdep/devmapper/hostdisk.c -index a697bcb..a8afc0c 100644 ---- a/grub-core/osdep/devmapper/hostdisk.c -+++ b/grub-core/osdep/devmapper/hostdisk.c -@@ -113,7 +113,7 @@ grub_util_get_dm_node_linear_info (dev_t dev, - void *next = NULL; - uint64_t length, start; - char *target, *params; -- char *ptr; -+ const char *ptr; - int major = 0, minor = 0; - int first = 1; - grub_disk_addr_t partstart = 0; -diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c -index ba38b5e..c6d2c36 100644 ---- a/grub-core/script/execute.c -+++ b/grub-core/script/execute.c -@@ -146,7 +146,7 @@ replace_scope (struct grub_script_scope *new_scope) - grub_err_t - grub_script_break (grub_command_t cmd, int argc, char *argv[]) - { -- char *p = 0; -+ const char *p = NULL; - unsigned long count; - - if (argc == 0) -@@ -178,7 +178,7 @@ grub_err_t - grub_script_shift (grub_command_t cmd __attribute__((unused)), - int argc, char *argv[]) - { -- char *p = 0; -+ const char *p = NULL; - unsigned long n = 0; - - if (! scope) -@@ -239,7 +239,7 @@ grub_err_t - grub_script_return (grub_command_t cmd __attribute__((unused)), - int argc, char *argv[]) - { -- char *p; -+ const char *p = NULL; - unsigned long n; - - if (! scope || argc > 1) -diff --git a/grub-core/term/serial.c b/grub-core/term/serial.c -index db80b3b..f9271b0 100644 ---- a/grub-core/term/serial.c -+++ b/grub-core/term/serial.c -@@ -269,7 +269,7 @@ grub_cmd_serial (grub_extcmd_context_t ctxt, int argc, char **args) - - if (state[OPTION_BASE_CLOCK].set) - { -- char *ptr; -+ const char *ptr; - config.base_clock = grub_strtoull (state[OPTION_BASE_CLOCK].arg, &ptr, 0); - if (grub_errno) - return grub_errno; -diff --git a/grub-core/term/terminfo.c b/grub-core/term/terminfo.c -index 29df35e..537a5c0 100644 ---- a/grub-core/term/terminfo.c -+++ b/grub-core/term/terminfo.c -@@ -737,7 +737,7 @@ grub_cmd_terminfo (grub_extcmd_context_t ctxt, int argc, char **args) - - if (state[OPTION_GEOMETRY].set) - { -- char *ptr = state[OPTION_GEOMETRY].arg; -+ const char *ptr = state[OPTION_GEOMETRY].arg; - w = grub_strtoul (ptr, &ptr, 0); - if (grub_errno) - return grub_errno; -diff --git a/grub-core/tests/strtoull_test.c b/grub-core/tests/strtoull_test.c -index 7da615f..5488ab2 100644 ---- a/grub-core/tests/strtoull_test.c -+++ b/grub-core/tests/strtoull_test.c -@@ -25,7 +25,7 @@ static void - strtoull_testcase (const char *input, int base, unsigned long long expected, - int num_digits, grub_err_t error) - { -- char *output; -+ const char *output; - unsigned long long value; - grub_errno = 0; - value = grub_strtoull(input, &output, base); -diff --git a/include/grub/misc.h b/include/grub/misc.h -index 960097f..998e47e 100644 ---- a/include/grub/misc.h -+++ b/include/grub/misc.h -@@ -288,11 +288,29 @@ grub_strncasecmp (const char *s1, const char *s2, grub_size_t n) - - (int) grub_tolower ((grub_uint8_t) *s2); - } - --unsigned long EXPORT_FUNC(grub_strtoul) (const char *str, char **end, int base); --unsigned long long EXPORT_FUNC(grub_strtoull) (const char *str, char **end, int base); -+/* -+ * Note that these differ from the C standard's definitions of strtol, -+ * strtoul(), and strtoull() by the addition of two const qualifiers on the end -+ * pointer, which make the declaration match the *semantic* requirements of -+ * their behavior. This means that instead of: -+ * -+ * char *s = "1234 abcd"; -+ * char *end; -+ * unsigned long l; -+ * -+ * l = grub_strtoul(s, &end, 10); -+ * -+ * We must one of: -+ * -+ * const char *end; -+ * ... or ... -+ * l = grub_strtoul(s, (const char ** const)&end, 10); -+ */ -+unsigned long EXPORT_FUNC(grub_strtoul) (const char * restrict str, const char ** const restrict end, int base); -+unsigned long long EXPORT_FUNC(grub_strtoull) (const char * restrict str, const char ** const restrict end, int base); - - static inline long --grub_strtol (const char *str, char **end, int base) -+grub_strtol (const char * restrict str, const char ** const restrict end, int base) - { - int negative = 0; - unsigned long long magnitude; -diff --git a/util/grub-fstest.c b/util/grub-fstest.c -index 88f9c5d..39bad1f 100644 ---- a/util/grub-fstest.c -+++ b/util/grub-fstest.c -@@ -538,7 +538,7 @@ void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version; - static error_t - argp_parser (int key, char *arg, struct argp_state *state) - { -- char *p; -+ const char *p; - - switch (key) - { --- -1.8.3.1 - diff --git a/0160-ieee1275-powerpc-enables-device-mapper-discovery.patch b/0160-ieee1275-powerpc-enables-device-mapper-discovery.patch new file mode 100644 index 0000000..6f1c21b --- /dev/null +++ b/0160-ieee1275-powerpc-enables-device-mapper-discovery.patch @@ -0,0 +1,106 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Diego Domingos +Date: Mon, 14 Dec 2020 17:47:16 +0100 +Subject: [PATCH] ieee1275/powerpc: enables device mapper discovery + +this patch enables the device mapper discovery on ofpath.c. Currently, +when we are dealing with a device like /dev/dm-* the ofpath returns null +since there is no function implemented to handle this case. + +This patch implements a function that will look into /sys/block/dm-* +devices and search recursively inside slaves directory to find the root +disk. + +Signed-off-by: Diego Domingos +--- + grub-core/osdep/linux/ofpath.c | 64 +++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 63 insertions(+), 1 deletion(-) + +diff --git a/grub-core/osdep/linux/ofpath.c b/grub-core/osdep/linux/ofpath.c +index 0f5d54e9f2d..cc849d9c94c 100644 +--- a/grub-core/osdep/linux/ofpath.c ++++ b/grub-core/osdep/linux/ofpath.c +@@ -37,6 +37,7 @@ + #include + #include + #include ++#include + + #ifdef __sparc__ + typedef enum +@@ -755,13 +756,74 @@ strip_trailing_digits (const char *p) + return new; + } + ++static char * ++get_slave_from_dm(const char * device){ ++ char *curr_device, *tmp; ++ char *directory; ++ char *ret = NULL; ++ ++ directory = grub_strdup (device); ++ tmp = get_basename(directory); ++ curr_device = grub_strdup (tmp); ++ *tmp = '\0'; ++ ++ /* Recursively check for slaves devices so we can find the root device */ ++ while ((curr_device[0] == 'd') && (curr_device[1] == 'm') && (curr_device[2] == '-')){ ++ DIR *dp; ++ struct dirent *ep; ++ char* device_path; ++ ++ device_path = grub_xasprintf ("/sys/block/%s/slaves", curr_device); ++ dp = opendir(device_path); ++ free(device_path); ++ ++ if (dp != NULL) ++ { ++ ep = readdir (dp); ++ while (ep != NULL){ ++ ++ /* avoid some system directories */ ++ if (!strcmp(ep->d_name,".")) ++ goto next_dir; ++ if (!strcmp(ep->d_name,"..")) ++ goto next_dir; ++ ++ free (curr_device); ++ free (ret); ++ curr_device = grub_strdup (ep->d_name); ++ ret = grub_xasprintf ("%s%s", directory, curr_device); ++ break; ++ ++ next_dir: ++ ep = readdir (dp); ++ continue; ++ } ++ closedir (dp); ++ } ++ else ++ grub_util_warn (_("cannot open directory `%s'"), device_path); ++ } ++ ++ free (directory); ++ free (curr_device); ++ ++ return ret; ++} ++ + char * + grub_util_devname_to_ofpath (const char *sys_devname) + { +- char *name_buf, *device, *devnode, *devicenode, *ofpath; ++ char *name_buf, *device, *devnode, *devicenode, *ofpath, *realname; + + name_buf = xrealpath (sys_devname); + ++ realname = get_slave_from_dm (name_buf); ++ if (realname) ++ { ++ free (name_buf); ++ name_buf = realname; ++ } ++ + device = get_basename (name_buf); + devnode = strip_trailing_digits (name_buf); + devicenode = strip_trailing_digits (device); diff --git a/0161-Add-at_keyboard_fallback_set-var-to-force-the-set-ma.patch b/0161-Add-at_keyboard_fallback_set-var-to-force-the-set-ma.patch new file mode 100644 index 0000000..01e7e67 --- /dev/null +++ b/0161-Add-at_keyboard_fallback_set-var-to-force-the-set-ma.patch @@ -0,0 +1,245 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Renaud=20M=C3=A9trich?= +Date: Fri, 18 Dec 2020 15:39:26 +0100 +Subject: [PATCH] Add 'at_keyboard_fallback_set' var to force the set manually +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This seems required with HP DL380p Gen 8 systems. +Indeed, with this system, we can see the following sequence: + +1. controller is queried to get current configuration (returns 0x30 which is quite standard) +2. controller is queried to get the current keyboard set in used, using code 0xf0 (first part) +3. controller answers with 0xfa which means "ACK" (== ok) +4. then we send "0" to tell "we want to know which set your are supporting" +5. controller answers with 0xfa ("ACK") +6. controller should then give us 1, 2, 3 or 0x43, 0x41, 0x3f, but here it gives us 0xfe which means "NACK" + +Since there seems no way to determine the current set, and in fact the +controller expects set2 to be used, we need to rely on an environment +variable. +Everything has been tested on this system: using 0xFE (resend command), +making sure we wait for ACK in the 2 steps "write_mode", etc. + +Below is litterature I used to come up with "there is no other +solution": +- https://wiki.osdev.org/%228042%22_PS/2_Controller +- http://www-ug.eecg.toronto.edu/msl/nios_devices/datasheets/PS2%20Keyboard%20Protocol.htm +- http://www.s100computers.com/My%20System%20Pages/MSDOS%20Board/PC%20Keyboard.pdf + +Signed-off-by: Renaud Métrich +Signed-off-by: Robbie Harwood +--- + grub-core/term/at_keyboard.c | 121 ++++++++++++++++++++++++++++++++++--------- + 1 file changed, 96 insertions(+), 25 deletions(-) + +diff --git a/grub-core/term/at_keyboard.c b/grub-core/term/at_keyboard.c +index 26014382608..dac0f946fe6 100644 +--- a/grub-core/term/at_keyboard.c ++++ b/grub-core/term/at_keyboard.c +@@ -31,6 +31,7 @@ GRUB_MOD_LICENSE ("GPLv3+"); + static grub_uint8_t grub_keyboard_controller_orig; + static grub_uint8_t grub_keyboard_orig_set; + struct grub_ps2_state ps2_state; ++static int fallback_set; + + static int ping_sent; + +@@ -76,6 +77,8 @@ at_command (grub_uint8_t data) + break; + return 0; + } ++ if (i == GRUB_AT_TRIES) ++ grub_dprintf ("atkeyb", "at_command() timed out! (stopped after %d tries)\n", i); + return (i != GRUB_AT_TRIES); + } + +@@ -105,6 +108,21 @@ grub_keyboard_controller_read (void) + + #endif + ++static int ++resend_last_result (void) ++{ ++ grub_uint8_t ret; ++ keyboard_controller_wait_until_ready (); ++ grub_dprintf ("atkeyb", "resend_last_result: sending 0xfe\n"); ++ grub_outb (0xfe, KEYBOARD_REG_DATA); ++ ret = wait_ack (); ++ grub_dprintf ("atkeyb", "resend_last_result: wait_ack() returned 0x%x\n", ret); ++ keyboard_controller_wait_until_ready (); ++ ret = grub_inb (KEYBOARD_REG_DATA); ++ grub_dprintf ("atkeyb", "resend_last_result: read 0x%x from controller\n", ret); ++ return ret; ++} ++ + static int + write_mode (int mode) + { +@@ -113,11 +131,14 @@ write_mode (int mode) + { + grub_uint8_t ack; + keyboard_controller_wait_until_ready (); ++ grub_dprintf ("atkeyb", "write_mode: sending 0xf0\n"); + grub_outb (0xf0, KEYBOARD_REG_DATA); + keyboard_controller_wait_until_ready (); ++ grub_dprintf ("atkeyb", "write_mode: sending mode %d\n", mode); + grub_outb (mode, KEYBOARD_REG_DATA); + keyboard_controller_wait_until_ready (); + ack = wait_ack (); ++ grub_dprintf ("atkeyb", "write_mode: wait_ack() returned 0x%x\n", ack); + if (ack == GRUB_AT_NACK) + continue; + if (ack == GRUB_AT_ACK) +@@ -125,6 +146,9 @@ write_mode (int mode) + return 0; + } + ++ if (i == GRUB_AT_TRIES) ++ grub_dprintf ("atkeyb", "write_mode() timed out! (stopped after %d tries)\n", i); ++ + return (i != GRUB_AT_TRIES); + } + +@@ -132,31 +156,66 @@ static int + query_mode (void) + { + grub_uint8_t ret; ++ grub_uint64_t endtime; ++ unsigned i; + int e; ++ char *envvar; + +- e = write_mode (0); +- if (!e) { +- grub_dprintf("atkeyb", "query_mode: write_mode(0) failed\n"); +- return 0; +- } ++ for (i = 0; i < GRUB_AT_TRIES; i++) { ++ grub_dprintf ("atkeyb", "query_mode: sending command to controller\n"); ++ e = write_mode (0); ++ if (!e) { ++ grub_dprintf ("atkeyb", "query_mode: write_mode(0) failed\n"); ++ return 0; ++ } + +- do { +- keyboard_controller_wait_until_ready (); +- ret = grub_inb (KEYBOARD_REG_DATA); +- } while (ret == GRUB_AT_ACK); +- /* QEMU translates the set even in no-translate mode. */ +- if (ret == 0x43 || ret == 1) { +- grub_dprintf("atkeyb", "query_mode: returning 1 (ret=0x%x)\n", ret); +- return 1; +- } +- if (ret == 0x41 || ret == 2) { +- grub_dprintf("atkeyb", "query_mode: returning 2 (ret=0x%x)\n", ret); +- return 2; ++ endtime = grub_get_time_ms () + 20; ++ do { ++ keyboard_controller_wait_until_ready (); ++ ret = grub_inb (KEYBOARD_REG_DATA); ++ grub_dprintf ("atkeyb", "query_mode/loop: read 0x%x from controller\n", ret); ++ } while ((ret == GRUB_AT_ACK || ret == GRUB_AT_NACK) && grub_get_time_ms () < endtime); ++ if (ret == 0xfe) { ++ grub_dprintf ("atkeyb", "query_mode: asking controller to resend last result\n"); ++ ret = resend_last_result(); ++ grub_dprintf ("atkeyb", "query_mode: read 0x%x from controller\n", ret); ++ } ++ /* QEMU translates the set even in no-translate mode. */ ++ if (ret == 0x43 || ret == 1) { ++ grub_dprintf ("atkeyb", "query_mode: controller returned 0x%x, returning 1\n", ret); ++ return 1; ++ } ++ if (ret == 0x41 || ret == 2) { ++ grub_dprintf ("atkeyb", "query_mode: controller returned 0x%x, returning 2\n", ret); ++ return 2; ++ } ++ if (ret == 0x3f || ret == 3) { ++ grub_dprintf ("atkeyb", "query_mode: controller returned 0x%x, returning 3\n", ret); ++ return 3; ++ } ++ grub_dprintf ("atkeyb", "query_mode: controller returned unexpected value 0x%x, retrying\n", ret); + } +- if (ret == 0x3f || ret == 3) { +- grub_dprintf("atkeyb", "query_mode: returning 3 (ret=0x%x)\n", ret); +- return 3; ++ ++ /* ++ * Falling here means we tried querying and the controller returned something ++ * we don't understand, try to use 'at_keyboard_fallback_set' if it exists, ++ * otherwise return 0. ++ */ ++ envvar = grub_env_get ("at_keyboard_fallback_set"); ++ if (envvar) { ++ fallback_set = grub_strtoul (envvar, 0, 10); ++ if ((grub_errno) || (fallback_set < 1) || (fallback_set > 3)) { ++ grub_dprintf ("atkeyb", "WARNING: ignoring unexpected value '%s' for '%s' variable\n", ++ envvar, "at_keyboard_fallback_set"); ++ fallback_set = 0; ++ } else { ++ grub_dprintf ("atkeyb", "query_mode: '%s' specified in environment, returning %d\n", ++ "at_keyboard_fallback_set", fallback_set); ++ } ++ return fallback_set; + } ++ grub_dprintf ("atkeyb", "WARNING: no '%s' specified in environment, returning 0\n", ++ "at_keyboard_fallback_set"); + return 0; + } + +@@ -165,14 +224,25 @@ set_scancodes (void) + { + /* You must have visited computer museum. Keyboard without scancode set + knowledge. Assume XT. */ +- if (!grub_keyboard_orig_set) +- { +- grub_dprintf ("atkeyb", "No sets support assumed\n"); +- ps2_state.current_set = 1; ++ if (!grub_keyboard_orig_set) { ++ if (fallback_set) { ++ grub_dprintf ("atkeyb", "No sets support assumed but set forced to %d\n", fallback_set); ++ ps2_state.current_set = fallback_set; + return; + } ++ grub_dprintf ("atkeyb", "No sets support assumed, forcing to set 1\n"); ++ ps2_state.current_set = 1; ++ return; ++ } + + #if !USE_SCANCODE_SET ++ if (fallback_set) { ++ grub_dprintf ("atkeyb", "queried set is %d but set forced to %d\n", ++ grub_keyboard_orig_set, fallback_set); ++ ps2_state.current_set = fallback_set; ++ return; ++ } ++ + if ((grub_keyboard_controller_orig & KEYBOARD_AT_TRANSLATE) == KEYBOARD_AT_TRANSLATE) { + grub_dprintf ("atkeyb", "queried set is %d but keyboard in Translate mode, so actually in set 1\n", grub_keyboard_orig_set); + ps2_state.current_set = 1; +@@ -261,6 +331,7 @@ grub_at_keyboard_getkey (struct grub_term_input *term __attribute__ ((unused))) + static void + grub_keyboard_controller_init (void) + { ++ grub_dprintf ("atkeyb", "initializing the controller\n"); + ps2_state.at_keyboard_status = 0; + /* Drain input buffer. */ + while (1) +@@ -282,6 +353,7 @@ grub_keyboard_controller_init (void) + grub_keyboard_controller_orig = grub_keyboard_controller_read (); + grub_dprintf ("atkeyb", "grub_keyboard_controller_orig = 0x%x\n", grub_keyboard_controller_orig); + grub_keyboard_orig_set = query_mode (); ++ grub_dprintf ("atkeyb", "grub_keyboard_orig_set = %d\n", grub_keyboard_orig_set); + #endif + set_scancodes (); + keyboard_controller_led (ps2_state.led_status); +@@ -329,7 +401,6 @@ grub_at_restore_hw (void) + return GRUB_ERR_NONE; + } + +- + static struct grub_term_input grub_at_keyboard_term = + { + .name = "at_keyboard", diff --git a/0162-Add-suport-for-signing-grub-with-an-appended-signatu.patch b/0162-Add-suport-for-signing-grub-with-an-appended-signatu.patch new file mode 100644 index 0000000..caab8d5 --- /dev/null +++ b/0162-Add-suport-for-signing-grub-with-an-appended-signatu.patch @@ -0,0 +1,316 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Rashmica Gupta +Date: Thu, 11 Jun 2020 11:26:23 +1000 +Subject: [PATCH] Add suport for signing grub with an appended signature + +Add infrastructure to allow firmware to verify the integrity of grub +by use of a Linux-kernel-module-style appended signature. We initially +target powerpc-ieee1275, but the code should be extensible to other +platforms. + +Usually these signatures are appended to a file without modifying the +ELF file itself. (This is what the 'sign-file' tool does, for example.) +The verifier loads the signed file from the file system and looks at the +end of the file for the appended signature. However, on powerpc-ieee1275 +platforms, the bootloader is often stored directly in the PReP partition +as raw bytes without a file-system. This makes determining the location +of an appended signature more difficult. + +To address this, we add a new ELF note. + +The name field of shall be the string "Appended-Signature", zero-padded +to 4 byte alignment. The type field shall be 0x41536967 (the ASCII values +for the string "ASig"). It must be the final section in the ELF binary. + +The description shall contain the appended signature structure as defined +by the Linux kernel. The description will also be padded to be a multiple +of 4 bytes. The padding shall be added before the appended signature +structure (not at the end) so that the final bytes of a signed ELF file +are the appended signature magic. + +A subsequent patch documents how to create a grub core.img validly signed +under this scheme. + +Signed-off-by: Daniel Axtens +Signed-off-by: Rashmica Gupta + +--- + +You can experiment with this code with a patched version of SLOF +that verifies these signatures. You can find one at: + https://github.com/daxtens/SLOF + +I will be proposing this for inclusion in a future Power Architecture +Platform Reference (PAPR). +--- + util/grub-install-common.c | 18 ++++++++++++++++-- + util/grub-mkimage.c | 15 +++++++++++++-- + util/grub-mkimagexx.c | 39 ++++++++++++++++++++++++++++++++++++++- + util/mkimage.c | 13 +++++++------ + include/grub/util/install.h | 8 ++++++-- + include/grub/util/mkimage.h | 4 ++-- + 6 files changed, 82 insertions(+), 15 deletions(-) + +diff --git a/util/grub-install-common.c b/util/grub-install-common.c +index 4e212e690c5..aab2a941f85 100644 +--- a/util/grub-install-common.c ++++ b/util/grub-install-common.c +@@ -461,10 +461,12 @@ static size_t npubkeys; + static char *sbat; + static int disable_shim_lock; + static grub_compression_t compression; ++static size_t appsig_size; + + int + grub_install_parse (int key, char *arg) + { ++ const char *end; + switch (key) + { + case 'C': +@@ -562,6 +564,12 @@ grub_install_parse (int key, char *arg) + grub_util_error (_("Unrecognized compression `%s'"), arg); + case GRUB_INSTALL_OPTIONS_GRUB_MKIMAGE: + return 1; ++ case GRUB_INSTALL_OPTIONS_APPENDED_SIGNATURE_SIZE: ++ grub_errno = 0; ++ appsig_size = grub_strtol(arg, &end, 10); ++ if (grub_errno) ++ return 0; ++ return 1; + default: + return 0; + } +@@ -665,7 +673,13 @@ grub_install_make_image_wrap_file (const char *dir, const char *prefix, + dir, prefix, + outname, dtb ? : "", sbat ? : "", mkimage_target, + compnames[compression], note ? "--note" : "", +- disable_shim_lock ? "--disable-shim-lock" : "", s); ++ disable_shim_lock ? "--disable-shim-lock" : "", ++ "--format '%s' --compression '%s' " ++ "--appended-signature-size %zu %s %s\n", ++ dir, prefix, ++ outname, dtb ? : "", mkimage_target, ++ compnames[compression], appsig_size, ++ note ? "--note" : "", s); + free (s); + + tgt = grub_install_get_image_target (mkimage_target); +@@ -675,7 +689,7 @@ grub_install_make_image_wrap_file (const char *dir, const char *prefix, + grub_install_generate_image (dir, prefix, fp, outname, + modules.entries, memdisk_path, + pubkeys, npubkeys, config_path, tgt, +- note, compression, dtb, sbat, ++ note, appsig_size, compression, dtb, sbat, + disable_shim_lock); + while (dc--) + grub_install_pop_module (); +diff --git a/util/grub-mkimage.c b/util/grub-mkimage.c +index c0d55993702..8a53310548b 100644 +--- a/util/grub-mkimage.c ++++ b/util/grub-mkimage.c +@@ -84,6 +84,7 @@ static struct argp_option options[] = { + {"sbat", 's', N_("FILE"), 0, N_("SBAT metadata"), 0}, + {"disable-shim-lock", GRUB_INSTALL_OPTIONS_DISABLE_SHIM_LOCK, 0, 0, N_("disable shim_lock verifier"), 0}, + {"verbose", 'v', 0, 0, N_("print verbose messages."), 0}, ++ {"appended-signature-size", 'S', N_("SIZE"), 0, N_("Add a note segment reserving SIZE bytes for an appended signature"), 0}, + { 0, 0, 0, 0, 0, 0 } + }; + +@@ -128,6 +129,7 @@ struct arguments + char *sbat; + int note; + int disable_shim_lock; ++ size_t appsig_size; + const struct grub_install_image_target_desc *image_target; + grub_compression_t comp; + }; +@@ -138,6 +140,7 @@ argp_parser (int key, char *arg, struct argp_state *state) + /* Get the input argument from argp_parse, which we + know is a pointer to our arguments structure. */ + struct arguments *arguments = state->input; ++ const char* end; + + switch (key) + { +@@ -170,6 +173,13 @@ argp_parser (int key, char *arg, struct argp_state *state) + arguments->note = 1; + break; + ++ case 'S': ++ grub_errno = 0; ++ arguments->appsig_size = grub_strtol(arg, &end, 10); ++ if (grub_errno) ++ return 0; ++ break; ++ + case 'm': + if (arguments->memdisk) + free (arguments->memdisk); +@@ -324,8 +334,9 @@ main (int argc, char *argv[]) + arguments.memdisk, arguments.pubkeys, + arguments.npubkeys, arguments.config, + arguments.image_target, arguments.note, +- arguments.comp, arguments.dtb, +- arguments.sbat, arguments.disable_shim_lock); ++ arguments.appsig_size, arguments.comp, ++ arguments.dtb, arguments.sbat, ++ arguments.disable_shim_lock); + + if (grub_util_file_sync (fp) < 0) + grub_util_error (_("cannot sync `%s': %s"), arguments.output ? : "stdout", +diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c +index d78fa3e5330..393119486d3 100644 +--- a/util/grub-mkimagexx.c ++++ b/util/grub-mkimagexx.c +@@ -84,6 +84,15 @@ struct grub_ieee1275_note + struct grub_ieee1275_note_desc descriptor; + }; + ++#define GRUB_APPENDED_SIGNATURE_NOTE_NAME "Appended-Signature" ++#define GRUB_APPENDED_SIGNATURE_NOTE_TYPE 0x41536967 /* "ASig" */ ++ ++struct grub_appended_signature_note ++{ ++ Elf32_Nhdr header; ++ char name[ALIGN_UP(sizeof (GRUB_APPENDED_SIGNATURE_NOTE_NAME), 4)]; ++}; ++ + #define GRUB_XEN_NOTE_NAME "Xen" + + struct fixup_block_list +@@ -207,7 +216,7 @@ grub_arm_reloc_jump24 (grub_uint32_t *target, Elf32_Addr sym_addr) + + void + SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc *image_target, +- int note, char **core_img, size_t *core_size, ++ int note, size_t appsig_size, char **core_img, size_t *core_size, + Elf_Addr target_addr, + struct grub_mkimage_layout *layout) + { +@@ -221,6 +230,12 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc + int shnum = 4; + int string_size = sizeof (".text") + sizeof ("mods") + 1; + ++ if (appsig_size) ++ { ++ phnum++; ++ footer_size += ALIGN_UP(sizeof (struct grub_appended_signature_note) + appsig_size, 4); ++ } ++ + if (image_target->id != IMAGE_LOONGSON_ELF) + phnum += 2; + +@@ -484,6 +499,28 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc + phdr->p_offset = grub_host_to_target32 (header_size + program_size); + } + ++ if (appsig_size) { ++ int note_size = ALIGN_UP(sizeof (struct grub_appended_signature_note) + appsig_size, 4); ++ struct grub_appended_signature_note *note_ptr = (struct grub_appended_signature_note *) ++ (elf_img + program_size + header_size + (note ? sizeof (struct grub_ieee1275_note) : 0)); ++ ++ note_ptr->header.n_namesz = grub_host_to_target32 (sizeof (GRUB_APPENDED_SIGNATURE_NOTE_NAME)); ++ /* needs to sit at the end, so we round this up and sign some zero padding */ ++ note_ptr->header.n_descsz = grub_host_to_target32 (ALIGN_UP(appsig_size, 4)); ++ note_ptr->header.n_type = grub_host_to_target32 (GRUB_APPENDED_SIGNATURE_NOTE_TYPE); ++ strcpy (note_ptr->name, GRUB_APPENDED_SIGNATURE_NOTE_NAME); ++ ++ phdr++; ++ phdr->p_type = grub_host_to_target32 (PT_NOTE); ++ phdr->p_flags = grub_host_to_target32 (PF_R); ++ phdr->p_align = grub_host_to_target32 (image_target->voidp_sizeof); ++ phdr->p_vaddr = 0; ++ phdr->p_paddr = 0; ++ phdr->p_filesz = grub_host_to_target32 (note_size); ++ phdr->p_memsz = 0; ++ phdr->p_offset = grub_host_to_target32 (header_size + program_size + (note ? sizeof (struct grub_ieee1275_note) : 0)); ++ } ++ + { + char *str_start = (elf_img + sizeof (*ehdr) + phnum * sizeof (*phdr) + + shnum * sizeof (*shdr)); +diff --git a/util/mkimage.c b/util/mkimage.c +index a26cf76f72f..bab12276010 100644 +--- a/util/mkimage.c ++++ b/util/mkimage.c +@@ -869,8 +869,9 @@ grub_install_generate_image (const char *dir, const char *prefix, + char *memdisk_path, char **pubkey_paths, + size_t npubkeys, char *config_path, + const struct grub_install_image_target_desc *image_target, +- int note, grub_compression_t comp, const char *dtb_path, +- const char *sbat_path, int disable_shim_lock) ++ int note, size_t appsig_size, grub_compression_t comp, ++ const char *dtb_path, const char *sbat_path, ++ int disable_shim_lock) + { + char *kernel_img, *core_img; + size_t total_module_size, core_size; +@@ -1773,11 +1774,11 @@ grub_install_generate_image (const char *dir, const char *prefix, + else + target_addr = image_target->link_addr; + if (image_target->voidp_sizeof == 4) +- grub_mkimage_generate_elf32 (image_target, note, &core_img, &core_size, +- target_addr, &layout); ++ grub_mkimage_generate_elf32 (image_target, note, appsig_size, &core_img, ++ &core_size, target_addr, &layout); + else +- grub_mkimage_generate_elf64 (image_target, note, &core_img, &core_size, +- target_addr, &layout); ++ grub_mkimage_generate_elf64 (image_target, note, appsig_size, &core_img, ++ &core_size, target_addr, &layout); + } + break; + } +diff --git a/include/grub/util/install.h b/include/grub/util/install.h +index 7df3191f47e..cf4531e02b6 100644 +--- a/include/grub/util/install.h ++++ b/include/grub/util/install.h +@@ -67,6 +67,9 @@ + N_("SBAT metadata"), 0 }, \ + { "disable-shim-lock", GRUB_INSTALL_OPTIONS_DISABLE_SHIM_LOCK, 0, 0, \ + N_("disable shim_lock verifier"), 0 }, \ ++ { "appended-signature-size", GRUB_INSTALL_OPTIONS_APPENDED_SIGNATURE_SIZE,\ ++ "SIZE", 0, N_("Add a note segment reserving SIZE bytes for an appended signature"), \ ++ 1}, \ + { "verbose", 'v', 0, 0, \ + N_("print verbose messages."), 1 } + +@@ -128,7 +131,8 @@ enum grub_install_options { + GRUB_INSTALL_OPTIONS_INSTALL_CORE_COMPRESS, + GRUB_INSTALL_OPTIONS_DTB, + GRUB_INSTALL_OPTIONS_SBAT, +- GRUB_INSTALL_OPTIONS_DISABLE_SHIM_LOCK ++ GRUB_INSTALL_OPTIONS_DISABLE_SHIM_LOCK, ++ GRUB_INSTALL_OPTIONS_APPENDED_SIGNATURE_SIZE + }; + + extern char *grub_install_source_directory; +@@ -188,7 +192,7 @@ grub_install_generate_image (const char *dir, const char *prefix, + size_t npubkeys, + char *config_path, + const struct grub_install_image_target_desc *image_target, +- int note, ++ int note, size_t appsig_size, + grub_compression_t comp, const char *dtb_file, + const char *sbat_path, const int disable_shim_lock); + +diff --git a/include/grub/util/mkimage.h b/include/grub/util/mkimage.h +index 3819a67441c..6f1da89b9b6 100644 +--- a/include/grub/util/mkimage.h ++++ b/include/grub/util/mkimage.h +@@ -51,12 +51,12 @@ grub_mkimage_load_image64 (const char *kernel_path, + const struct grub_install_image_target_desc *image_target); + void + grub_mkimage_generate_elf32 (const struct grub_install_image_target_desc *image_target, +- int note, char **core_img, size_t *core_size, ++ int note, size_t appsig_size, char **core_img, size_t *core_size, + Elf32_Addr target_addr, + struct grub_mkimage_layout *layout); + void + grub_mkimage_generate_elf64 (const struct grub_install_image_target_desc *image_target, +- int note, char **core_img, size_t *core_size, ++ int note, size_t appsig_size, char **core_img, size_t *core_size, + Elf64_Addr target_addr, + struct grub_mkimage_layout *layout); + diff --git a/0163-docs-grub-Document-signing-grub-under-UEFI.patch b/0163-docs-grub-Document-signing-grub-under-UEFI.patch new file mode 100644 index 0000000..9b9b19a --- /dev/null +++ b/0163-docs-grub-Document-signing-grub-under-UEFI.patch @@ -0,0 +1,61 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Axtens +Date: Sat, 15 Aug 2020 02:00:57 +1000 +Subject: [PATCH] docs/grub: Document signing grub under UEFI + +Before adding information about how grub is signed with an appended +signature scheme, it's worth adding some information about how it +can currently be signed for UEFI. + +Signed-off-by: Daniel Axtens +--- + docs/grub.texi | 22 +++++++++++++++++++++- + 1 file changed, 21 insertions(+), 1 deletion(-) + +diff --git a/docs/grub.texi b/docs/grub.texi +index 4870faaa00a..365d1d6931b 100644 +--- a/docs/grub.texi ++++ b/docs/grub.texi +@@ -5817,6 +5817,7 @@ environment variables and commands are listed in the same order. + * Secure Boot Advanced Targeting:: Embedded information for generation number based revocation + * Measured Boot:: Measuring boot components + * Lockdown:: Lockdown when booting on a secure setup ++* Signing GRUB itself:: Ensuring the integrity of the GRUB core image + @end menu + + @node Authentication and authorisation +@@ -5895,7 +5896,7 @@ commands. + + GRUB's @file{core.img} can optionally provide enforcement that all files + subsequently read from disk are covered by a valid digital signature. +-This document does @strong{not} cover how to ensure that your ++This section does @strong{not} cover how to ensure that your + platform's firmware (e.g., Coreboot) validates @file{core.img}. + + If environment variable @code{check_signatures} +@@ -6067,6 +6068,25 @@ be restricted and some operations/commands cannot be executed. + The @samp{lockdown} variable is set to @samp{y} when the GRUB is locked down. + Otherwise it does not exit. + ++@node Signing GRUB itself ++@section Signing GRUB itself ++ ++To ensure a complete secure-boot chain, there must be a way for the code that ++loads GRUB to verify the integrity of the core image. ++ ++This is ultimately platform-specific and individual platforms can define their ++own mechanisms. However, there are general-purpose mechanisms that can be used ++with GRUB. ++ ++@section Signing GRUB for UEFI secure boot ++ ++On UEFI platforms, @file{core.img} is a PE binary. Therefore, it can be signed ++with a tool such as @command{pesign} or @command{sbsign}. Refer to the ++suggestions in @pxref{UEFI secure boot and shim} to ensure that the final ++image works under UEFI secure boot and can maintain the secure-boot chain. It ++will also be necessary to enrol the public key used into a relevant firmware ++key database. ++ + @node Platform limitations + @chapter Platform limitations + diff --git a/0164-docs-grub-Document-signing-grub-with-an-appended-sig.patch b/0164-docs-grub-Document-signing-grub-with-an-appended-sig.patch new file mode 100644 index 0000000..4d85d93 --- /dev/null +++ b/0164-docs-grub-Document-signing-grub-with-an-appended-sig.patch @@ -0,0 +1,67 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Axtens +Date: Sat, 15 Aug 2020 02:19:36 +1000 +Subject: [PATCH] docs/grub: Document signing grub with an appended signature + +Signing grub for firmware that verifies an appended signature is a +bit fiddly. I don't want people to have to figure it out from scratch +so document it here. + +Signed-off-by: Daniel Axtens +--- + docs/grub.texi | 42 ++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 42 insertions(+) + +diff --git a/docs/grub.texi b/docs/grub.texi +index 365d1d6931b..afbde7c1f7b 100644 +--- a/docs/grub.texi ++++ b/docs/grub.texi +@@ -6087,6 +6087,48 @@ image works under UEFI secure boot and can maintain the secure-boot chain. It + will also be necessary to enrol the public key used into a relevant firmware + key database. + ++@section Signing GRUB with an appended signature ++ ++The @file{core.elf} itself can be signed with a Linux kernel module-style ++appended signature. ++ ++To support IEEE1275 platforms where the boot image is often loaded directly ++from a disk partition rather than from a file system, the @file{core.elf} ++can specify the size and location of the appended signature with an ELF ++note added by @command{grub-install}. ++ ++An image can be signed this way using the @command{sign-file} command from ++the Linux kernel: ++ ++@example ++@group ++# grub.key is your private key and certificate.der is your public key ++ ++# Determine the size of the appended signature. It depends on the signing ++# certificate and the hash algorithm ++touch empty ++sign-file SHA256 grub.key certificate.der empty empty.sig ++SIG_SIZE=`stat -c '%s' empty.sig` ++rm empty empty.sig ++ ++# Build a grub image with $SIG_SIZE reserved for the signature ++grub-install --appended-signature-size $SIG_SIZE --modules="..." ... ++ ++# Replace the reserved size with a signature: ++# cut off the last $SIG_SIZE bytes with truncate's minus modifier ++truncate -s -$SIG_SIZE /boot/grub/powerpc-ieee1275/core.elf core.elf.unsigned ++# sign the trimmed file with an appended signature, restoring the correct size ++sign-file SHA256 grub.key certificate.der core.elf.unsigned core.elf.signed ++ ++# Don't forget to install the signed image as required ++# (e.g. on powerpc-ieee1275, to the PReP partition) ++@end group ++@end example ++ ++As with UEFI secure boot, it is necessary to build in the required modules, ++or sign them separately. ++ ++ + @node Platform limitations + @chapter Platform limitations + diff --git a/0165-dl-provide-a-fake-grub_dl_set_persistent-for-the-emu.patch b/0165-dl-provide-a-fake-grub_dl_set_persistent-for-the-emu.patch new file mode 100644 index 0000000..6e46db0 --- /dev/null +++ b/0165-dl-provide-a-fake-grub_dl_set_persistent-for-the-emu.patch @@ -0,0 +1,44 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Axtens +Date: Thu, 30 Jul 2020 00:13:21 +1000 +Subject: [PATCH] dl: provide a fake grub_dl_set_persistent for the emu target + +Trying to start grub-emu with a module that calls grub_dl_set_persistent +will crash because grub-emu fakes modules and passes NULL to the module +init function. + +Provide an empty function for the emu case. + +Fixes: ee7808e2197c (dl: Add support for persistent modules) +Signed-off-by: Daniel Axtens +--- + include/grub/dl.h | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/include/grub/dl.h b/include/grub/dl.h +index 2f76e6b0437..20d870f2a47 100644 +--- a/include/grub/dl.h ++++ b/include/grub/dl.h +@@ -245,11 +245,22 @@ grub_dl_get (const char *name) + return 0; + } + ++#ifdef GRUB_MACHINE_EMU ++/* ++ * Under grub-emu, modules are faked and NULL is passed to GRUB_MOD_INIT. ++ * So we fake this out to avoid a NULL deref. ++ */ ++static inline void ++grub_dl_set_persistent (grub_dl_t mod __attribute__((unused))) ++{ ++} ++#else + static inline void + grub_dl_set_persistent (grub_dl_t mod) + { + mod->persistent = 1; + } ++#endif + + static inline int + grub_dl_is_persistent (grub_dl_t mod) diff --git a/0166-Fix-the-looking-up-grub.cfg-XXX-while-tftp-booting.patch b/0166-Fix-the-looking-up-grub.cfg-XXX-while-tftp-booting.patch deleted file mode 100644 index f36868e..0000000 --- a/0166-Fix-the-looking-up-grub.cfg-XXX-while-tftp-booting.patch +++ /dev/null @@ -1,45 +0,0 @@ -From d564918e5c24a056a75d43b59335d56bfa3478be Mon Sep 17 00:00:00 2001 -From: Masayoshi Mizuma -Date: Tue, 18 Dec 2018 21:27:45 -0500 -Subject: [PATCH 166/220] Fix the looking up grub.cfg-XXX while tftp booting. - -Currently, grub doesn't look up grub.cfg-UUID, grub.cfg-MAC and grub.cfg-IP -while the boot is from tftp. That is because the uuid size is got by -grub_snprintf(, 0, ,), but the grub_snprintf() always returns 0, -so grub judges there's no available uuid in the client and give up -the looking up grub.cfg-XXX. - -This issue can be fixed by changing grub_snprintf(, 0, ,) behaivior -to like as snprintf() from glibc, however, somewhere may expect -such argument as the error, so it's risky. - -Let's use sizeof() and grub_strlen() to calculate the uuid size -instead of grub_snprintf(). - -Resolves: rhbz#1658500 ---- - grub-core/net/net.c | 8 +++----- - 1 file changed, 3 insertions(+), 5 deletions(-) - -diff --git a/grub-core/net/net.c b/grub-core/net/net.c -index aa56393..15073dd 100644 ---- a/grub-core/net/net.c -+++ b/grub-core/net/net.c -@@ -1942,11 +1942,9 @@ grub_net_search_configfile (char *config) - char *client_uuid_var; - grub_size_t client_uuid_var_size; - -- client_uuid_var_size = grub_snprintf (NULL, 0, -- "net_%s_clientuuid", inf->name); -- if (client_uuid_var_size <= 0) -- continue; -- client_uuid_var_size += 1; -+ client_uuid_var_size = sizeof ("net_") + grub_strlen (inf->name) + -+ sizeof ("_clientuuid") + 1; -+ - client_uuid_var = grub_malloc(client_uuid_var_size); - if (!client_uuid_var) - continue; --- -1.8.3.1 - diff --git a/0166-pgp-factor-out-rsa_pad.patch b/0166-pgp-factor-out-rsa_pad.patch new file mode 100644 index 0000000..a8154e7 --- /dev/null +++ b/0166-pgp-factor-out-rsa_pad.patch @@ -0,0 +1,191 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Axtens +Date: Thu, 1 Oct 2020 20:23:48 +1000 +Subject: [PATCH] pgp: factor out rsa_pad + +rsa_pad does the PKCS#1 v1.5 padding for the RSA signature scheme. +We want to use it in other RSA signature verification applications. + +I considered and rejected putting it in lib/crypto.c. That file doesn't +currently require any MPI functions, but rsa_pad does. That's not so +much of a problem for the grub kernel and modules, but crypto.c also +gets built into all the grub utilities. So - despite the utils not +using any asymmetric ciphers - we would need to built the entire MPI +infrastructure in to them. + +A better and simpler solution is just to spin rsa_pad out into its own +PKCS#1 v1.5 module. + +Signed-off-by: Daniel Axtens +--- + grub-core/Makefile.core.def | 8 ++++++ + grub-core/commands/pgp.c | 28 ++------------------- + grub-core/lib/pkcs1_v15.c | 59 +++++++++++++++++++++++++++++++++++++++++++++ + include/grub/pkcs1_v15.h | 27 +++++++++++++++++++++ + 4 files changed, 96 insertions(+), 26 deletions(-) + create mode 100644 grub-core/lib/pkcs1_v15.c + create mode 100644 include/grub/pkcs1_v15.h + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 81fc274148e..97347ae76f9 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -2510,6 +2510,14 @@ module = { + cppflags = '$(CPPFLAGS_GCRY)'; + }; + ++module = { ++ name = pkcs1_v15; ++ common = lib/pkcs1_v15.c; ++ ++ cflags = '$(CFLAGS_GCRY) -Wno-redundant-decls -Wno-sign-compare'; ++ cppflags = '$(CPPFLAGS_GCRY)'; ++}; ++ + module = { + name = all_video; + common = lib/fake_module.c; +diff --git a/grub-core/commands/pgp.c b/grub-core/commands/pgp.c +index 5daa1e9d00c..2408db4994f 100644 +--- a/grub-core/commands/pgp.c ++++ b/grub-core/commands/pgp.c +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -411,32 +412,7 @@ static int + rsa_pad (gcry_mpi_t *hmpi, grub_uint8_t *hval, + const gcry_md_spec_t *hash, struct grub_public_subkey *sk) + { +- grub_size_t tlen, emlen, fflen; +- grub_uint8_t *em, *emptr; +- unsigned nbits = gcry_mpi_get_nbits (sk->mpis[0]); +- int ret; +- tlen = hash->mdlen + hash->asnlen; +- emlen = (nbits + 7) / 8; +- if (emlen < tlen + 11) +- return 1; +- +- em = grub_malloc (emlen); +- if (!em) +- return 1; +- +- em[0] = 0x00; +- em[1] = 0x01; +- fflen = emlen - tlen - 3; +- for (emptr = em + 2; emptr < em + 2 + fflen; emptr++) +- *emptr = 0xff; +- *emptr++ = 0x00; +- grub_memcpy (emptr, hash->asnoid, hash->asnlen); +- emptr += hash->asnlen; +- grub_memcpy (emptr, hval, hash->mdlen); +- +- ret = gcry_mpi_scan (hmpi, GCRYMPI_FMT_USG, em, emlen, 0); +- grub_free (em); +- return ret; ++ return grub_crypto_rsa_pad(hmpi, hval, hash, sk->mpis[0]); + } + + struct grub_pubkey_context +diff --git a/grub-core/lib/pkcs1_v15.c b/grub-core/lib/pkcs1_v15.c +new file mode 100644 +index 00000000000..dbacd563d01 +--- /dev/null ++++ b/grub-core/lib/pkcs1_v15.c +@@ -0,0 +1,59 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2013 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++ ++GRUB_MOD_LICENSE ("GPLv3+"); ++ ++/* ++ * Given a hash value 'hval', of hash specification 'hash', perform ++ * the EMSA-PKCS1-v1_5 padding suitable for a key with modulus 'mod' ++ * (see RFC 8017 s 9.2) and place the result in 'hmpi'. ++ */ ++gcry_err_code_t ++grub_crypto_rsa_pad (gcry_mpi_t * hmpi, grub_uint8_t * hval, ++ const gcry_md_spec_t * hash, gcry_mpi_t mod) ++{ ++ grub_size_t tlen, emlen, fflen; ++ grub_uint8_t *em, *emptr; ++ unsigned nbits = gcry_mpi_get_nbits (mod); ++ int ret; ++ tlen = hash->mdlen + hash->asnlen; ++ emlen = (nbits + 7) / 8; ++ if (emlen < tlen + 11) ++ return GPG_ERR_TOO_SHORT; ++ ++ em = grub_malloc (emlen); ++ if (!em) ++ return 1; ++ ++ em[0] = 0x00; ++ em[1] = 0x01; ++ fflen = emlen - tlen - 3; ++ for (emptr = em + 2; emptr < em + 2 + fflen; emptr++) ++ *emptr = 0xff; ++ *emptr++ = 0x00; ++ grub_memcpy (emptr, hash->asnoid, hash->asnlen); ++ emptr += hash->asnlen; ++ grub_memcpy (emptr, hval, hash->mdlen); ++ ++ ret = gcry_mpi_scan (hmpi, GCRYMPI_FMT_USG, em, emlen, 0); ++ grub_free (em); ++ return ret; ++} +diff --git a/include/grub/pkcs1_v15.h b/include/grub/pkcs1_v15.h +new file mode 100644 +index 00000000000..5c338c84a15 +--- /dev/null ++++ b/include/grub/pkcs1_v15.h +@@ -0,0 +1,27 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2013 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++/* ++ * Given a hash value 'hval', of hash specification 'hash', perform ++ * the EMSA-PKCS1-v1_5 padding suitable for a key with modulus 'mod' ++ * (See RFC 8017 s 9.2) ++ */ ++gcry_err_code_t ++grub_crypto_rsa_pad (gcry_mpi_t * hmpi, grub_uint8_t * hval, ++ const gcry_md_spec_t * hash, gcry_mpi_t mod); ++ diff --git a/0167-Don-t-make-grub_strtoull-print-an-error-if-no-conver.patch b/0167-Don-t-make-grub_strtoull-print-an-error-if-no-conver.patch deleted file mode 100644 index 9ee4127..0000000 --- a/0167-Don-t-make-grub_strtoull-print-an-error-if-no-conver.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 46b860c3c423cefdf427aa547e43927400d02f8c Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Mon, 11 Feb 2019 15:14:10 +0100 -Subject: [PATCH 167/220] Don't make grub_strtoull() print an error if no - conversion is performed - -Callers can check if grub_errno was set to GRUB_ERR_BAD_NUMBER, so there's -no need to print an error if a conversion couldn't be performed. This just -pollutes the output with noisy error messages. - -Resolves: rhbz#1674512 - -Signed-off-by: Javier Martinez Canillas ---- - grub-core/kern/misc.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index 18a7dbf..87afb43 100644 ---- a/grub-core/kern/misc.c -+++ b/grub-core/kern/misc.c -@@ -475,8 +475,7 @@ grub_strtoull (const char * restrict str, const char ** const restrict end, - - if (! found) - { -- grub_error (GRUB_ERR_BAD_NUMBER, -- N_("unrecognized number")); -+ grub_errno = GRUB_ERR_BAD_NUMBER; - return 0; - } - --- -1.8.3.1 - diff --git a/0167-crypto-move-storage-for-grub_crypto_pk_-to-crypto.c.patch b/0167-crypto-move-storage-for-grub_crypto_pk_-to-crypto.c.patch new file mode 100644 index 0000000..763cdc6 --- /dev/null +++ b/0167-crypto-move-storage-for-grub_crypto_pk_-to-crypto.c.patch @@ -0,0 +1,71 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Axtens +Date: Fri, 2 Oct 2020 10:49:26 +1000 +Subject: [PATCH] crypto: move storage for grub_crypto_pk_* to crypto.c + +The way gcry_rsa and friends (the asymmetric ciphers) are loaded for the +pgp module is a bit quirky. + +include/grub/crypto.h contains: + extern struct gcry_pk_spec *grub_crypto_pk_rsa; + +commands/pgp.c contains the actual storage: + struct gcry_pk_spec *grub_crypto_pk_rsa; + +And the module itself saves to the storage in pgp.c: + GRUB_MOD_INIT(gcry_rsa) + { + grub_crypto_pk_rsa = &_gcry_pubkey_spec_rsa; + } + +This is annoying: gcry_rsa now has a dependency on pgp! + +We want to be able to bring in gcry_rsa without bringing in PGP, +so move the storage to crypto.c. + +Previously, gcry_rsa depended on pgp and mpi. Now it depends on +crypto and mpi. As pgp depends on crypto, this doesn't add any new +module dependencies using the PGP verfier. + +[FWIW, the story is different for the symmetric ciphers. cryptodisk +and friends (zfs encryption etc) use grub_crypto_lookup_cipher_by_name() +to get a cipher handle. That depends on grub_ciphers being populated +by people calling grub_cipher_register. import_gcry.py ensures that the +symmetric ciphers call it.] + +Signed-off-by: Daniel Axtens +--- + grub-core/commands/pgp.c | 4 ---- + grub-core/lib/crypto.c | 4 ++++ + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/grub-core/commands/pgp.c b/grub-core/commands/pgp.c +index 2408db4994f..355a43844ac 100644 +--- a/grub-core/commands/pgp.c ++++ b/grub-core/commands/pgp.c +@@ -147,10 +147,6 @@ const char *hashes[] = { + [0x0b] = "sha224" + }; + +-struct gcry_pk_spec *grub_crypto_pk_dsa; +-struct gcry_pk_spec *grub_crypto_pk_ecdsa; +-struct gcry_pk_spec *grub_crypto_pk_rsa; +- + static int + dsa_pad (gcry_mpi_t *hmpi, grub_uint8_t *hval, + const gcry_md_spec_t *hash, struct grub_public_subkey *sk); +diff --git a/grub-core/lib/crypto.c b/grub-core/lib/crypto.c +index ca334d5a40e..c578128a59d 100644 +--- a/grub-core/lib/crypto.c ++++ b/grub-core/lib/crypto.c +@@ -121,6 +121,10 @@ grub_md_unregister (gcry_md_spec_t *cipher) + } + } + ++struct gcry_pk_spec *grub_crypto_pk_dsa; ++struct gcry_pk_spec *grub_crypto_pk_ecdsa; ++struct gcry_pk_spec *grub_crypto_pk_rsa; ++ + void + grub_crypto_hash (const gcry_md_spec_t *hash, void *out, const void *in, + grub_size_t inlen) diff --git a/0168-Fix-the-type-of-grub_efi_status_t.patch b/0168-Fix-the-type-of-grub_efi_status_t.patch deleted file mode 100644 index 2186ddf..0000000 --- a/0168-Fix-the-type-of-grub_efi_status_t.patch +++ /dev/null @@ -1,82 +0,0 @@ -From a9484492c1672abbae572d2bfae5b1dd8c91d4d2 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Thu, 21 Mar 2019 13:06:06 -0400 -Subject: [PATCH 168/220] Fix the type of grub_efi_status_t - -Currently, in some builds with some checkers, we see: - -1. grub-core/disk/efi/efidisk.c:601: error[shiftTooManyBitsSigned]: Shifting signed 64-bit value by 63 bits is undefined behaviour - -This is because grub_efi_status_t is defined as grub_efi_intn_t, which is -signed, and shifting into the sign bit is not defined behavior. UEFI fixed -this in the spec in 2.3: - -2.3 | Change the defined type of EFI_STATUS from INTN to UINTN | May 7, 2009 - -And the current EDK2 code has: -MdePkg/Include/Base.h-// -MdePkg/Include/Base.h-// Status codes common to all execution phases -MdePkg/Include/Base.h-// -MdePkg/Include/Base.h:typedef UINTN RETURN_STATUS; -MdePkg/Include/Base.h- -MdePkg/Include/Base.h-/** -MdePkg/Include/Base.h- Produces a RETURN_STATUS code with the highest bit set. -MdePkg/Include/Base.h- -MdePkg/Include/Base.h- @param StatusCode The status code value to convert into a warning code. -MdePkg/Include/Base.h- StatusCode must be in the range 0x00000000..0x7FFFFFFF. -MdePkg/Include/Base.h- -MdePkg/Include/Base.h- @return The value specified by StatusCode with the highest bit set. -MdePkg/Include/Base.h- -MdePkg/Include/Base.h-**/ -MdePkg/Include/Base.h-#define ENCODE_ERROR(StatusCode) ((RETURN_STATUS)(MAX_BIT | (StatusCode))) -MdePkg/Include/Base.h- -MdePkg/Include/Base.h-/** -MdePkg/Include/Base.h- Produces a RETURN_STATUS code with the highest bit clear. -MdePkg/Include/Base.h- -MdePkg/Include/Base.h- @param StatusCode The status code value to convert into a warning code. -MdePkg/Include/Base.h- StatusCode must be in the range 0x00000000..0x7FFFFFFF. -MdePkg/Include/Base.h- -MdePkg/Include/Base.h- @return The value specified by StatusCode with the highest bit clear. -MdePkg/Include/Base.h- -MdePkg/Include/Base.h-**/ -MdePkg/Include/Base.h-#define ENCODE_WARNING(StatusCode) ((RETURN_STATUS)(StatusCode)) -MdePkg/Include/Base.h- -MdePkg/Include/Base.h-/** -MdePkg/Include/Base.h- Returns TRUE if a specified RETURN_STATUS code is an error code. -MdePkg/Include/Base.h- -MdePkg/Include/Base.h- This function returns TRUE if StatusCode has the high bit set. Otherwise, FALSE is returned. -MdePkg/Include/Base.h- -MdePkg/Include/Base.h- @param StatusCode The status code value to evaluate. -MdePkg/Include/Base.h- -MdePkg/Include/Base.h- @retval TRUE The high bit of StatusCode is set. -MdePkg/Include/Base.h- @retval FALSE The high bit of StatusCode is clear. -MdePkg/Include/Base.h- -MdePkg/Include/Base.h-**/ -MdePkg/Include/Base.h-#define RETURN_ERROR(StatusCode) (((INTN)(RETURN_STATUS)(StatusCode)) < 0) -... -Uefi/UefiBaseType.h:typedef RETURN_STATUS EFI_STATUS; - -This patch makes grub's implementation match the Edk2 declaration with regards -to the signedness of the type. - -Signed-off-by: Peter Jones ---- - include/grub/efi/api.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index 2ed9c26..dec7b06 100644 ---- a/include/grub/efi/api.h -+++ b/include/grub/efi/api.h -@@ -536,7 +536,7 @@ typedef grub_uint64_t grub_efi_uint64_t; - typedef grub_uint8_t grub_efi_char8_t; - typedef grub_uint16_t grub_efi_char16_t; - --typedef grub_efi_intn_t grub_efi_status_t; -+typedef grub_efi_uintn_t grub_efi_status_t; - /* Make grub_efi_status_t reasonably printable. */ - #if GRUB_CPU_SIZEOF_VOID_P == 8 - #define PRIxGRUB_EFI_STATUS "lx" --- -1.8.3.1 - diff --git a/0168-posix_wrap-tweaks-in-preparation-for-libtasn1.patch b/0168-posix_wrap-tweaks-in-preparation-for-libtasn1.patch new file mode 100644 index 0000000..a09cab1 --- /dev/null +++ b/0168-posix_wrap-tweaks-in-preparation-for-libtasn1.patch @@ -0,0 +1,64 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Axtens +Date: Sat, 2 May 2020 00:27:57 +1000 +Subject: [PATCH] posix_wrap: tweaks in preparation for libtasn1 + + - Define SIZEOF_UNSIGNED_LONG_INT, it's the same as + SIZEOF_UNSIGNED_LONG. + + - Define WORD_BIT, the size in bits of an int. This is a defined + in the Single Unix Specification and in gnulib's limits.h. gnulib + assumes it's 32 bits on all our platforms, including 64 bit + platforms, so we also use that value. + + - Provide strto[u]l[l] preprocessor macros that resolve to + grub_strto[u]l[l]. To avoid gcrypt redefining strtoul, we + also define HAVE_STRTOUL here. + +Signed-off-by: Daniel Axtens +--- + grub-core/lib/posix_wrap/limits.h | 1 + + grub-core/lib/posix_wrap/stdlib.h | 8 ++++++++ + grub-core/lib/posix_wrap/sys/types.h | 1 + + 3 files changed, 10 insertions(+) + +diff --git a/grub-core/lib/posix_wrap/limits.h b/grub-core/lib/posix_wrap/limits.h +index 7217138ffd6..591dbf3289d 100644 +--- a/grub-core/lib/posix_wrap/limits.h ++++ b/grub-core/lib/posix_wrap/limits.h +@@ -37,5 +37,6 @@ + #define LONG_MAX GRUB_LONG_MAX + + #define CHAR_BIT 8 ++#define WORD_BIT 32 + + #endif +diff --git a/grub-core/lib/posix_wrap/stdlib.h b/grub-core/lib/posix_wrap/stdlib.h +index 7a8d385e973..4634db09f29 100644 +--- a/grub-core/lib/posix_wrap/stdlib.h ++++ b/grub-core/lib/posix_wrap/stdlib.h +@@ -58,4 +58,12 @@ abs (int c) + return (c >= 0) ? c : -c; + } + ++#define strtol grub_strtol ++ ++/* for libgcrypt */ ++#define HAVE_STRTOUL ++#define strtoul grub_strtoul ++ ++#define strtoull grub_strtoull ++ + #endif +diff --git a/grub-core/lib/posix_wrap/sys/types.h b/grub-core/lib/posix_wrap/sys/types.h +index 854eb0122ef..f63412c8da0 100644 +--- a/grub-core/lib/posix_wrap/sys/types.h ++++ b/grub-core/lib/posix_wrap/sys/types.h +@@ -51,6 +51,7 @@ typedef grub_uint8_t byte; + typedef grub_addr_t uintptr_t; + + #define SIZEOF_UNSIGNED_LONG GRUB_CPU_SIZEOF_LONG ++#define SIZEOF_UNSIGNED_LONG_INT GRUB_CPU_SIZEOF_LONG + #define SIZEOF_UNSIGNED_INT 4 + #define SIZEOF_UNSIGNED_LONG_LONG 8 + #define SIZEOF_UNSIGNED_SHORT 2 diff --git a/0169-grub.d-Split-out-boot-success-reset-from-menu-auto-h.patch b/0169-grub.d-Split-out-boot-success-reset-from-menu-auto-h.patch deleted file mode 100644 index e4f09ce..0000000 --- a/0169-grub.d-Split-out-boot-success-reset-from-menu-auto-h.patch +++ /dev/null @@ -1,246 +0,0 @@ -From d371c69fed702b24a9025309c5773abddc18d3d3 Mon Sep 17 00:00:00 2001 -From: Christian Glombek -Date: Tue, 2 Apr 2019 16:22:21 +0200 -Subject: [PATCH 169/220] grub.d: Split out boot success reset from menu auto - hide script - -Also rename fallback and menu auto hide script to be executed -before and after boot success reset script. -In menu auto hide script, rename last_boot_ok var to menu_hide_ok ---- - Makefile.util.def | 14 ++++++++--- - util/grub.d/01_fallback_counting.in | 22 ----------------- - util/grub.d/01_menu_auto_hide.in | 48 ------------------------------------ - util/grub.d/08_fallback_counting.in | 24 ++++++++++++++++++ - util/grub.d/10_reset_boot_success.in | 25 +++++++++++++++++++ - util/grub.d/12_menu_auto_hide.in | 35 ++++++++++++++++++++++++++ - 6 files changed, 94 insertions(+), 74 deletions(-) - delete mode 100644 util/grub.d/01_fallback_counting.in - delete mode 100644 util/grub.d/01_menu_auto_hide.in - create mode 100644 util/grub.d/08_fallback_counting.in - create mode 100644 util/grub.d/10_reset_boot_success.in - create mode 100644 util/grub.d/12_menu_auto_hide.in - -diff --git a/Makefile.util.def b/Makefile.util.def -index 2019ebd..1fa92ca 100644 ---- a/Makefile.util.def -+++ b/Makefile.util.def -@@ -458,14 +458,14 @@ script = { - }; - - script = { -- name = '01_fallback_counting'; -- common = util/grub.d/01_fallback_counting.in; -+ name = '08_fallback_counting'; -+ common = util/grub.d/08_fallback_counting.in; - installdir = grubconf; - }; - - script = { -- name = '01_menu_auto_hide'; -- common = util/grub.d/01_menu_auto_hide.in; -+ name = '12_menu_auto_hide'; -+ common = util/grub.d/12_menu_auto_hide.in; - installdir = grubconf; - }; - -@@ -525,6 +525,12 @@ script = { - }; - - script = { -+ name = '10_reset_boot_success'; -+ common = util/grub.d/10_reset_boot_success.in; -+ installdir = grubconf; -+}; -+ -+script = { - name = '10_xnu'; - common = util/grub.d/10_xnu.in; - installdir = grubconf; -diff --git a/util/grub.d/01_fallback_counting.in b/util/grub.d/01_fallback_counting.in -deleted file mode 100644 -index be0e770..0000000 ---- a/util/grub.d/01_fallback_counting.in -+++ /dev/null -@@ -1,22 +0,0 @@ --#! /bin/sh -e -- --# Boot Counting --# The boot_counter env var can be used to count down boot attempts after an --# OSTree upgrade and choose the rollback deployment when 0 is reached. Both --# boot_counter and boot_success need to be (re-)set from userspace. --cat << EOF --insmod increment --# Check if boot_counter exists and boot_success=0 to activate this behaviour. --if [ -n "\${boot_counter}" -a "\${boot_success}" = "0" ]; then -- # if countdown has ended, choose to boot rollback deployment (default=1 on -- # OSTree-based systems) -- if [ "\${boot_counter}" = "0" -o "\${boot_counter}" = "-1" ]; then -- set default=1 -- set boot_counter=-1 -- # otherwise decrement boot_counter -- else -- decrement boot_counter -- fi -- save_env boot_counter --fi --EOF -diff --git a/util/grub.d/01_menu_auto_hide.in b/util/grub.d/01_menu_auto_hide.in -deleted file mode 100644 -index ad17587..0000000 ---- a/util/grub.d/01_menu_auto_hide.in -+++ /dev/null -@@ -1,48 +0,0 @@ --#! /bin/sh -- --# Disable / skip generating menu-auto-hide config parts on serial terminals --for x in ${GRUB_TERMINAL_INPUT} ${GRUB_TERMINAL_OUTPUT}; do -- case "$x" in -- serial*) -- exit 0 -- ;; -- esac --done -- --cat << EOF --if [ "\${boot_success}" = "1" -o "\${boot_indeterminate}" = "1" ]; then -- set last_boot_ok=1 --else -- set last_boot_ok=0 --fi -- --# Reset boot_indeterminate after a successful boot --if [ "\${boot_success}" = "1" ] ; then -- set boot_indeterminate=0 --# Avoid boot_indeterminate causing the menu to be hidden more then once --elif [ "\${boot_indeterminate}" = "1" ]; then -- set boot_indeterminate=2 --fi --set boot_success=0 --save_env boot_success boot_indeterminate -- --if [ x\$feature_timeout_style = xy ] ; then -- if [ "\${menu_show_once}" ]; then -- unset menu_show_once -- save_env menu_show_once -- set timeout_style=menu -- set timeout=60 -- elif [ "\${menu_auto_hide}" -a "\${last_boot_ok}" = "1" ]; then -- set orig_timeout_style=\${timeout_style} -- set orig_timeout=\${timeout} -- if [ "\${fastboot}" = "1" ]; then -- # timeout_style=menu + timeout=0 avoids the countdown code keypress check -- set timeout_style=menu -- set timeout=0 -- else -- set timeout_style=hidden -- set timeout=1 -- fi -- fi --fi --EOF -diff --git a/util/grub.d/08_fallback_counting.in b/util/grub.d/08_fallback_counting.in -new file mode 100644 -index 0000000..2e2c3ff ---- /dev/null -+++ b/util/grub.d/08_fallback_counting.in -@@ -0,0 +1,24 @@ -+#! /bin/sh -e -+# Fallback Countdown -+# -+# This snippet depends on 10_reset_boot_success and needs to be kept in sync. -+# -+# The boot_counter env var can be used to count down boot attempts after an -+# OSTree upgrade and choose the rollback deployment when 0 is reached. -+# Both boot_counter=X and boot_success=1 need to be set from userspace. -+cat << EOF -+insmod increment -+# Check if boot_counter exists and boot_success=0 to activate this behaviour. -+if [ -n "\${boot_counter}" -a "\${boot_success}" = "0" ]; then -+ # if countdown has ended, choose to boot rollback deployment, -+ # i.e. default=1 on OSTree-based systems. -+ if [ "\${boot_counter}" = "0" -o "\${boot_counter}" = "-1" ]; then -+ set default=1 -+ set boot_counter=-1 -+ # otherwise decrement boot_counter -+ else -+ decrement boot_counter -+ fi -+ save_env boot_counter -+fi -+EOF -diff --git a/util/grub.d/10_reset_boot_success.in b/util/grub.d/10_reset_boot_success.in -new file mode 100644 -index 0000000..6c88d93 ---- /dev/null -+++ b/util/grub.d/10_reset_boot_success.in -@@ -0,0 +1,25 @@ -+#! /bin/sh -e -+# Reset Boot Success -+# -+# The 08_fallback_counting and 12_menu_auto_hide snippets rely on this one -+# and need to be kept in sync. -+# -+# The boot_success var needs to be set to 1 from userspace to mark a boot successful. -+cat << EOF -+insmod increment -+# Hiding the menu is ok if last boot was ok or if this is a first boot attempt to boot the entry -+if [ "\${boot_success}" = "1" -o "\${boot_indeterminate}" = "1" ]; then -+ set menu_hide_ok=1 -+else -+ set menu_hide_ok=0 -+fi -+# Reset boot_indeterminate after a successful boot, increment otherwise -+if [ "\${boot_success}" = "1" ] ; then -+ set boot_indeterminate=0 -+else -+ increment boot_indeterminate -+fi -+# Reset boot_success for current boot -+set boot_success=0 -+save_env boot_success boot_indeterminate -+EOF -diff --git a/util/grub.d/12_menu_auto_hide.in b/util/grub.d/12_menu_auto_hide.in -new file mode 100644 -index 0000000..6a7c0fa ---- /dev/null -+++ b/util/grub.d/12_menu_auto_hide.in -@@ -0,0 +1,35 @@ -+#! /bin/sh -+# Menu Auto Hide -+# -+# This snippet depends on 10_reset_boot_success and needs to be kept in sync. -+# -+# Disable / skip generating menu-auto-hide config parts on serial terminals -+for x in ${GRUB_TERMINAL_INPUT} ${GRUB_TERMINAL_OUTPUT}; do -+ case "$x" in -+ serial*) -+ exit 0 -+ ;; -+ esac -+done -+ -+cat << EOF -+if [ x\$feature_timeout_style = xy ] ; then -+ if [ "\${menu_show_once}" ]; then -+ unset menu_show_once -+ save_env menu_show_once -+ set timeout_style=menu -+ set timeout=60 -+ elif [ "\${menu_auto_hide}" -a "\${menu_hide_ok}" = "1" ]; then -+ set orig_timeout_style=\${timeout_style} -+ set orig_timeout=\${timeout} -+ if [ "\${fastboot}" = "1" ]; then -+ # timeout_style=menu + timeout=0 avoids the countdown code keypress check -+ set timeout_style=menu -+ set timeout=0 -+ else -+ set timeout_style=hidden -+ set timeout=1 -+ fi -+ fi -+fi -+EOF --- -1.8.3.1 - diff --git a/0169-libtasn1-import-libtasn1-4.16.0.patch b/0169-libtasn1-import-libtasn1-4.16.0.patch new file mode 100644 index 0000000..89552c8 --- /dev/null +++ b/0169-libtasn1-import-libtasn1-4.16.0.patch @@ -0,0 +1,8934 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Axtens +Date: Wed, 10 Jun 2020 16:31:22 +1000 +Subject: [PATCH] libtasn1: import libtasn1-4.16.0 + +Import a very trimmed-down set of libtasn1 files: + +pushd /tmp +wget https://ftp.gnu.org/gnu/libtasn1/libtasn1-4.16.0.tar.gz +popd +pushd grub-core/lib +mkdir libtasn1 +cp /tmp/libtasn1-4.16.0/{README.md,LICENSE} libtasn1/ +mkdir libtasn1/lib +cp /tmp/libtasn1-4.16.0/lib/{coding.c,decoding.c,element.c,element.h,errors.c,gstr.c,gstr.h,int.h,parser_aux.c,parser_aux.h,structure.c,structure.h} libtasn1/lib +cp /tmp/libtasn1-4.16.0/lib/includes/libtasn1.h ../../include/grub/ +git add libtasn1/ ../../include/grub/libtasn1.h +popd + +Signed-off-by: Daniel Axtens +--- + grub-core/lib/libtasn1/lib/coding.c | 1415 ++++++++++++++++++ + grub-core/lib/libtasn1/lib/decoding.c | 2478 +++++++++++++++++++++++++++++++ + grub-core/lib/libtasn1/lib/element.c | 1111 ++++++++++++++ + grub-core/lib/libtasn1/lib/errors.c | 100 ++ + grub-core/lib/libtasn1/lib/gstr.c | 74 + + grub-core/lib/libtasn1/lib/parser_aux.c | 1173 +++++++++++++++ + grub-core/lib/libtasn1/lib/structure.c | 1220 +++++++++++++++ + grub-core/lib/libtasn1/lib/element.h | 40 + + grub-core/lib/libtasn1/lib/gstr.h | 47 + + grub-core/lib/libtasn1/lib/int.h | 221 +++ + grub-core/lib/libtasn1/lib/parser_aux.h | 172 +++ + grub-core/lib/libtasn1/lib/structure.h | 45 + + include/grub/libtasn1.h | 588 ++++++++ + grub-core/lib/libtasn1/LICENSE | 16 + + grub-core/lib/libtasn1/README.md | 91 ++ + 15 files changed, 8791 insertions(+) + create mode 100644 grub-core/lib/libtasn1/lib/coding.c + create mode 100644 grub-core/lib/libtasn1/lib/decoding.c + create mode 100644 grub-core/lib/libtasn1/lib/element.c + create mode 100644 grub-core/lib/libtasn1/lib/errors.c + create mode 100644 grub-core/lib/libtasn1/lib/gstr.c + create mode 100644 grub-core/lib/libtasn1/lib/parser_aux.c + create mode 100644 grub-core/lib/libtasn1/lib/structure.c + create mode 100644 grub-core/lib/libtasn1/lib/element.h + create mode 100644 grub-core/lib/libtasn1/lib/gstr.h + create mode 100644 grub-core/lib/libtasn1/lib/int.h + create mode 100644 grub-core/lib/libtasn1/lib/parser_aux.h + create mode 100644 grub-core/lib/libtasn1/lib/structure.h + create mode 100644 include/grub/libtasn1.h + create mode 100644 grub-core/lib/libtasn1/LICENSE + create mode 100644 grub-core/lib/libtasn1/README.md + +diff --git a/grub-core/lib/libtasn1/lib/coding.c b/grub-core/lib/libtasn1/lib/coding.c +new file mode 100644 +index 00000000000..245ea64cf0a +--- /dev/null ++++ b/grub-core/lib/libtasn1/lib/coding.c +@@ -0,0 +1,1415 @@ ++/* ++ * Copyright (C) 2002-2014 Free Software Foundation, Inc. ++ * ++ * This file is part of LIBTASN1. ++ * ++ * The LIBTASN1 library is free software; you can redistribute it ++ * and/or modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ++ * 02110-1301, USA ++ */ ++ ++ ++/*****************************************************/ ++/* File: coding.c */ ++/* Description: Functions to create a DER coding of */ ++/* an ASN1 type. */ ++/*****************************************************/ ++ ++#include ++#include "parser_aux.h" ++#include ++#include "element.h" ++#include "minmax.h" ++#include ++ ++#define MAX_TAG_LEN 16 ++ ++/******************************************************/ ++/* Function : _asn1_error_description_value_not_found */ ++/* Description: creates the ErrorDescription string */ ++/* for the ASN1_VALUE_NOT_FOUND error. */ ++/* Parameters: */ ++/* node: node of the tree where the value is NULL. */ ++/* ErrorDescription: string returned. */ ++/* Return: */ ++/******************************************************/ ++static void ++_asn1_error_description_value_not_found (asn1_node node, ++ char *ErrorDescription) ++{ ++ ++ if (ErrorDescription == NULL) ++ return; ++ ++ Estrcpy (ErrorDescription, ":: value of element '"); ++ _asn1_hierarchical_name (node, ErrorDescription + strlen (ErrorDescription), ++ ASN1_MAX_ERROR_DESCRIPTION_SIZE - 40); ++ Estrcat (ErrorDescription, "' not found"); ++ ++} ++ ++/** ++ * asn1_length_der: ++ * @len: value to convert. ++ * @der: buffer to hold the returned encoding (may be %NULL). ++ * @der_len: number of meaningful bytes of ANS (der[0]..der[der_len-1]). ++ * ++ * Creates the DER encoding of the provided length value. ++ * The @der buffer must have enough room for the output. The maximum ++ * length this function will encode is %ASN1_MAX_LENGTH_SIZE. ++ * ++ * To know the size of the DER encoding use a %NULL value for @der. ++ **/ ++void ++asn1_length_der (unsigned long int len, unsigned char *der, int *der_len) ++{ ++ int k; ++ unsigned char temp[ASN1_MAX_LENGTH_SIZE]; ++#if SIZEOF_UNSIGNED_LONG_INT > 8 ++ len &= 0xFFFFFFFFFFFFFFFF; ++#endif ++ ++ if (len < 128) ++ { ++ /* short form */ ++ if (der != NULL) ++ der[0] = (unsigned char) len; ++ *der_len = 1; ++ } ++ else ++ { ++ /* Long form */ ++ k = 0; ++ while (len) ++ { ++ temp[k++] = len & 0xFF; ++ len = len >> 8; ++ } ++ *der_len = k + 1; ++ if (der != NULL) ++ { ++ der[0] = ((unsigned char) k & 0x7F) + 128; ++ while (k--) ++ der[*der_len - 1 - k] = temp[k]; ++ } ++ } ++} ++ ++/******************************************************/ ++/* Function : _asn1_tag_der */ ++/* Description: creates the DER coding for the CLASS */ ++/* and TAG parameters. */ ++/* It is limited by the ASN1_MAX_TAG_SIZE variable */ ++/* Parameters: */ ++/* class: value to convert. */ ++/* tag_value: value to convert. */ ++/* ans: string returned. */ ++/* ans_len: number of meaningful bytes of ANS */ ++/* (ans[0]..ans[ans_len-1]). */ ++/* Return: */ ++/******************************************************/ ++static void ++_asn1_tag_der (unsigned char class, unsigned int tag_value, ++ unsigned char ans[ASN1_MAX_TAG_SIZE], int *ans_len) ++{ ++ int k; ++ unsigned char temp[ASN1_MAX_TAG_SIZE]; ++ ++ if (tag_value < 31) ++ { ++ /* short form */ ++ ans[0] = (class & 0xE0) + ((unsigned char) (tag_value & 0x1F)); ++ *ans_len = 1; ++ } ++ else ++ { ++ /* Long form */ ++ ans[0] = (class & 0xE0) + 31; ++ k = 0; ++ while (tag_value != 0) ++ { ++ temp[k++] = tag_value & 0x7F; ++ tag_value >>= 7; ++ ++ if (k > ASN1_MAX_TAG_SIZE - 1) ++ break; /* will not encode larger tags */ ++ } ++ *ans_len = k + 1; ++ while (k--) ++ ans[*ans_len - 1 - k] = temp[k] + 128; ++ ans[*ans_len - 1] -= 128; ++ } ++} ++ ++/** ++ * asn1_octet_der: ++ * @str: the input data. ++ * @str_len: STR length (str[0]..str[*str_len-1]). ++ * @der: encoded string returned. ++ * @der_len: number of meaningful bytes of DER (der[0]..der[der_len-1]). ++ * ++ * Creates a length-value DER encoding for the input data. ++ * The DER encoding of the input data will be placed in the @der variable. ++ * ++ * Note that the OCTET STRING tag is not included in the output. ++ * ++ * This function does not return any value because it is expected ++ * that @der_len will contain enough bytes to store the string ++ * plus the DER encoding. The DER encoding size can be obtained using ++ * asn1_length_der(). ++ **/ ++void ++asn1_octet_der (const unsigned char *str, int str_len, ++ unsigned char *der, int *der_len) ++{ ++ int len_len; ++ ++ if (der == NULL || str_len < 0) ++ return; ++ ++ asn1_length_der (str_len, der, &len_len); ++ memcpy (der + len_len, str, str_len); ++ *der_len = str_len + len_len; ++} ++ ++ ++/** ++ * asn1_encode_simple_der: ++ * @etype: The type of the string to be encoded (ASN1_ETYPE_) ++ * @str: the string data. ++ * @str_len: the string length ++ * @tl: the encoded tag and length ++ * @tl_len: the bytes of the @tl field ++ * ++ * Creates the DER encoding for various simple ASN.1 types like strings etc. ++ * It stores the tag and length in @tl, which should have space for at least ++ * %ASN1_MAX_TL_SIZE bytes. Initially @tl_len should contain the size of @tl. ++ * ++ * The complete DER encoding should consist of the value in @tl appended ++ * with the provided @str. ++ * ++ * Returns: %ASN1_SUCCESS if successful or an error value. ++ **/ ++int ++asn1_encode_simple_der (unsigned int etype, const unsigned char *str, ++ unsigned int str_len, unsigned char *tl, ++ unsigned int *tl_len) ++{ ++ int tag_len, len_len; ++ unsigned tlen; ++ unsigned char der_tag[ASN1_MAX_TAG_SIZE]; ++ unsigned char der_length[ASN1_MAX_LENGTH_SIZE]; ++ unsigned char *p; ++ ++ if (str == NULL) ++ return ASN1_VALUE_NOT_VALID; ++ ++ if (ETYPE_OK (etype) == 0) ++ return ASN1_VALUE_NOT_VALID; ++ ++ /* doesn't handle constructed classes */ ++ if (ETYPE_CLASS (etype) != ASN1_CLASS_UNIVERSAL) ++ return ASN1_VALUE_NOT_VALID; ++ ++ _asn1_tag_der (ETYPE_CLASS (etype), ETYPE_TAG (etype), der_tag, &tag_len); ++ ++ asn1_length_der (str_len, der_length, &len_len); ++ ++ if (tag_len <= 0 || len_len <= 0) ++ return ASN1_VALUE_NOT_VALID; ++ ++ tlen = tag_len + len_len; ++ ++ if (*tl_len < tlen) ++ return ASN1_MEM_ERROR; ++ ++ p = tl; ++ memcpy (p, der_tag, tag_len); ++ p += tag_len; ++ memcpy (p, der_length, len_len); ++ ++ *tl_len = tlen; ++ ++ return ASN1_SUCCESS; ++} ++ ++/******************************************************/ ++/* Function : _asn1_time_der */ ++/* Description: creates the DER coding for a TIME */ ++/* type (length included). */ ++/* Parameters: */ ++/* str: TIME null-terminated string. */ ++/* der: string returned. */ ++/* der_len: number of meaningful bytes of DER */ ++/* (der[0]..der[ans_len-1]). Initially it */ ++/* if must store the lenght of DER. */ ++/* Return: */ ++/* ASN1_MEM_ERROR when DER isn't big enough */ ++/* ASN1_SUCCESS otherwise */ ++/******************************************************/ ++static int ++_asn1_time_der (unsigned char *str, int str_len, unsigned char *der, ++ int *der_len) ++{ ++ int len_len; ++ int max_len; ++ ++ if (der == NULL) ++ return ASN1_VALUE_NOT_VALID; ++ ++ max_len = *der_len; ++ ++ asn1_length_der (str_len, (max_len > 0) ? der : NULL, &len_len); ++ ++ if ((len_len + str_len) <= max_len) ++ memcpy (der + len_len, str, str_len); ++ *der_len = len_len + str_len; ++ ++ if ((*der_len) > max_len) ++ return ASN1_MEM_ERROR; ++ ++ return ASN1_SUCCESS; ++} ++ ++ ++/* ++void ++_asn1_get_utctime_der(unsigned char *der,int *der_len,unsigned char *str) ++{ ++ int len_len,str_len; ++ char temp[20]; ++ ++ if(str==NULL) return; ++ str_len=asn1_get_length_der(der,*der_len,&len_len); ++ if (str_len<0) return; ++ memcpy(temp,der+len_len,str_len); ++ *der_len=str_len+len_len; ++ switch(str_len) ++ { ++ case 11: ++ temp[10]=0; ++ strcat(temp,"00+0000"); ++ break; ++ case 13: ++ temp[12]=0; ++ strcat(temp,"+0000"); ++ break; ++ case 15: ++ temp[15]=0; ++ memmove(temp+12,temp+10,6); ++ temp[10]=temp[11]='0'; ++ break; ++ case 17: ++ temp[17]=0; ++ break; ++ default: ++ return; ++ } ++ strcpy(str,temp); ++} ++*/ ++ ++static ++void encode_val(uint64_t val, unsigned char *der, int max_len, int *der_len) ++{ ++ int first, k; ++ unsigned char bit7; ++ ++ first = 0; ++ for (k = sizeof(val); k >= 0; k--) ++ { ++ bit7 = (val >> (k * 7)) & 0x7F; ++ if (bit7 || first || !k) ++ { ++ if (k) ++ bit7 |= 0x80; ++ if (max_len > (*der_len)) ++ der[*der_len] = bit7; ++ (*der_len)++; ++ first = 1; ++ } ++ } ++} ++ ++/******************************************************/ ++/* Function : _asn1_object_id_der */ ++/* Description: creates the DER coding for an */ ++/* OBJECT IDENTIFIER type (length included). */ ++/* Parameters: */ ++/* str: OBJECT IDENTIFIER null-terminated string. */ ++/* der: string returned. */ ++/* der_len: number of meaningful bytes of DER */ ++/* (der[0]..der[ans_len-1]). Initially it */ ++/* must store the length of DER. */ ++/* Return: */ ++/* ASN1_MEM_ERROR when DER isn't big enough */ ++/* ASN1_SUCCESS if succesful */ ++/* or an error value. */ ++/******************************************************/ ++static int ++_asn1_object_id_der (const char *str, unsigned char *der, int *der_len) ++{ ++ int len_len, counter, max_len; ++ char *temp, *n_end, *n_start; ++ uint64_t val, val1 = 0; ++ int str_len = _asn1_strlen (str); ++ ++ max_len = *der_len; ++ *der_len = 0; ++ ++ if (der == NULL && max_len > 0) ++ return ASN1_VALUE_NOT_VALID; ++ ++ temp = malloc (str_len + 2); ++ if (temp == NULL) ++ return ASN1_MEM_ALLOC_ERROR; ++ ++ memcpy (temp, str, str_len); ++ temp[str_len] = '.'; ++ temp[str_len + 1] = 0; ++ ++ counter = 0; ++ n_start = temp; ++ while ((n_end = strchr (n_start, '.'))) ++ { ++ *n_end = 0; ++ val = _asn1_strtou64 (n_start, NULL, 10); ++ counter++; ++ ++ if (counter == 1) ++ { ++ val1 = val; ++ } ++ else if (counter == 2) ++ { ++ uint64_t val0; ++ ++ if (val1 > 2) ++ { ++ free(temp); ++ return ASN1_VALUE_NOT_VALID; ++ } ++ else if ((val1 == 0 || val1 == 1) && val > 39) ++ { ++ free(temp); ++ return ASN1_VALUE_NOT_VALID; ++ } ++ ++ val0 = 40 * val1 + val; ++ encode_val(val0, der, max_len, der_len); ++ } ++ else ++ { ++ encode_val(val, der, max_len, der_len); ++ } ++ n_start = n_end + 1; ++ } ++ ++ asn1_length_der (*der_len, NULL, &len_len); ++ if (max_len >= (*der_len + len_len)) ++ { ++ memmove (der + len_len, der, *der_len); ++ asn1_length_der (*der_len, der, &len_len); ++ } ++ *der_len += len_len; ++ ++ free (temp); ++ ++ if (max_len < (*der_len)) ++ return ASN1_MEM_ERROR; ++ ++ return ASN1_SUCCESS; ++} ++ ++/** ++ * asn1_object_id_der: ++ * @str: An object identifier in numeric, dot format. ++ * @der: buffer to hold the returned encoding (may be %NULL). ++ * @der_len: initially the size of @der; will hold the final size. ++ * @flags: must be zero ++ * ++ * Creates the DER encoding of the provided object identifier. ++ * ++ * Returns: %ASN1_SUCCESS if DER encoding was OK, %ASN1_VALUE_NOT_VALID ++ * if @str is not a valid OID, %ASN1_MEM_ERROR if the @der ++ * vector isn't big enough and in this case @der_len will contain the ++ * length needed. ++ **/ ++int asn1_object_id_der(const char *str, unsigned char *der, int *der_len, unsigned flags) ++{ ++ unsigned char tag_der[MAX_TAG_LEN]; ++ int tag_len = 0, r; ++ int max_len = *der_len; ++ ++ *der_len = 0; ++ ++ _asn1_tag_der (ETYPE_CLASS (ASN1_ETYPE_OBJECT_ID), ETYPE_TAG (ASN1_ETYPE_OBJECT_ID), ++ tag_der, &tag_len); ++ ++ if (max_len > tag_len) ++ { ++ memcpy(der, tag_der, tag_len); ++ } ++ max_len -= tag_len; ++ der += tag_len; ++ ++ r = _asn1_object_id_der (str, der, &max_len); ++ if (r == ASN1_MEM_ERROR || r == ASN1_SUCCESS) ++ { ++ *der_len = max_len + tag_len; ++ } ++ ++ return r; ++} ++ ++static const unsigned char bit_mask[] = ++ { 0xFF, 0xFE, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x80 }; ++ ++/** ++ * asn1_bit_der: ++ * @str: BIT string. ++ * @bit_len: number of meaningful bits in STR. ++ * @der: string returned. ++ * @der_len: number of meaningful bytes of DER ++ * (der[0]..der[ans_len-1]). ++ * ++ * Creates a length-value DER encoding for the input data ++ * as it would have been for a BIT STRING. ++ * The DER encoded data will be copied in @der. ++ * ++ * Note that the BIT STRING tag is not included in the output. ++ * ++ * This function does not return any value because it is expected ++ * that @der_len will contain enough bytes to store the string ++ * plus the DER encoding. The DER encoding size can be obtained using ++ * asn1_length_der(). ++ **/ ++void ++asn1_bit_der (const unsigned char *str, int bit_len, ++ unsigned char *der, int *der_len) ++{ ++ int len_len, len_byte, len_pad; ++ ++ if (der == NULL) ++ return; ++ ++ len_byte = bit_len >> 3; ++ len_pad = 8 - (bit_len & 7); ++ if (len_pad == 8) ++ len_pad = 0; ++ else ++ len_byte++; ++ asn1_length_der (len_byte + 1, der, &len_len); ++ der[len_len] = len_pad; ++ ++ if (str) ++ memcpy (der + len_len + 1, str, len_byte); ++ der[len_len + len_byte] &= bit_mask[len_pad]; ++ *der_len = len_byte + len_len + 1; ++} ++ ++ ++/******************************************************/ ++/* Function : _asn1_complete_explicit_tag */ ++/* Description: add the length coding to the EXPLICIT */ ++/* tags. */ ++/* Parameters: */ ++/* node: pointer to the tree element. */ ++/* der: string with the DER coding of the whole tree*/ ++/* counter: number of meaningful bytes of DER */ ++/* (der[0]..der[*counter-1]). */ ++/* max_len: size of der vector */ ++/* Return: */ ++/* ASN1_MEM_ERROR if der vector isn't big enough, */ ++/* otherwise ASN1_SUCCESS. */ ++/******************************************************/ ++static int ++_asn1_complete_explicit_tag (asn1_node node, unsigned char *der, ++ int *counter, int *max_len) ++{ ++ asn1_node p; ++ int is_tag_implicit, len2, len3; ++ unsigned char temp[SIZEOF_UNSIGNED_INT]; ++ ++ if (der == NULL && *max_len > 0) ++ return ASN1_VALUE_NOT_VALID; ++ ++ is_tag_implicit = 0; ++ ++ if (node->type & CONST_TAG) ++ { ++ p = node->down; ++ if (p == NULL) ++ return ASN1_DER_ERROR; ++ /* When there are nested tags we must complete them reverse to ++ the order they were created. This is because completing a tag ++ modifies all data within it, including the incomplete tags ++ which store buffer positions -- simon@josefsson.org 2002-09-06 ++ */ ++ while (p->right) ++ p = p->right; ++ while (p && p != node->down->left) ++ { ++ if (type_field (p->type) == ASN1_ETYPE_TAG) ++ { ++ if (p->type & CONST_EXPLICIT) ++ { ++ len2 = strtol (p->name, NULL, 10); ++ _asn1_set_name (p, NULL); ++ ++ asn1_length_der (*counter - len2, temp, &len3); ++ if (len3 <= (*max_len)) ++ { ++ memmove (der + len2 + len3, der + len2, ++ *counter - len2); ++ memcpy (der + len2, temp, len3); ++ } ++ *max_len -= len3; ++ *counter += len3; ++ is_tag_implicit = 0; ++ } ++ else ++ { /* CONST_IMPLICIT */ ++ if (!is_tag_implicit) ++ { ++ is_tag_implicit = 1; ++ } ++ } ++ } ++ p = p->left; ++ } ++ } ++ ++ if (*max_len < 0) ++ return ASN1_MEM_ERROR; ++ ++ return ASN1_SUCCESS; ++} ++ ++const tag_and_class_st _asn1_tags[] = { ++ [ASN1_ETYPE_GENERALSTRING] = ++ {ASN1_TAG_GENERALSTRING, ASN1_CLASS_UNIVERSAL, "type:GENERALSTRING"}, ++ [ASN1_ETYPE_NUMERIC_STRING] = ++ {ASN1_TAG_NUMERIC_STRING, ASN1_CLASS_UNIVERSAL, "type:NUMERIC_STR"}, ++ [ASN1_ETYPE_IA5_STRING] = ++ {ASN1_TAG_IA5_STRING, ASN1_CLASS_UNIVERSAL, "type:IA5_STR"}, ++ [ASN1_ETYPE_TELETEX_STRING] = ++ {ASN1_TAG_TELETEX_STRING, ASN1_CLASS_UNIVERSAL, "type:TELETEX_STR"}, ++ [ASN1_ETYPE_PRINTABLE_STRING] = ++ {ASN1_TAG_PRINTABLE_STRING, ASN1_CLASS_UNIVERSAL, "type:PRINTABLE_STR"}, ++ [ASN1_ETYPE_UNIVERSAL_STRING] = ++ {ASN1_TAG_UNIVERSAL_STRING, ASN1_CLASS_UNIVERSAL, "type:UNIVERSAL_STR"}, ++ [ASN1_ETYPE_BMP_STRING] = ++ {ASN1_TAG_BMP_STRING, ASN1_CLASS_UNIVERSAL, "type:BMP_STR"}, ++ [ASN1_ETYPE_UTF8_STRING] = ++ {ASN1_TAG_UTF8_STRING, ASN1_CLASS_UNIVERSAL, "type:UTF8_STR"}, ++ [ASN1_ETYPE_VISIBLE_STRING] = ++ {ASN1_TAG_VISIBLE_STRING, ASN1_CLASS_UNIVERSAL, "type:VISIBLE_STR"}, ++ [ASN1_ETYPE_OCTET_STRING] = ++ {ASN1_TAG_OCTET_STRING, ASN1_CLASS_UNIVERSAL, "type:OCT_STR"}, ++ [ASN1_ETYPE_BIT_STRING] = ++ {ASN1_TAG_BIT_STRING, ASN1_CLASS_UNIVERSAL, "type:BIT_STR"}, ++ [ASN1_ETYPE_OBJECT_ID] = ++ {ASN1_TAG_OBJECT_ID, ASN1_CLASS_UNIVERSAL, "type:OBJ_ID"}, ++ [ASN1_ETYPE_NULL] = {ASN1_TAG_NULL, ASN1_CLASS_UNIVERSAL, "type:NULL"}, ++ [ASN1_ETYPE_BOOLEAN] = ++ {ASN1_TAG_BOOLEAN, ASN1_CLASS_UNIVERSAL, "type:BOOLEAN"}, ++ [ASN1_ETYPE_INTEGER] = ++ {ASN1_TAG_INTEGER, ASN1_CLASS_UNIVERSAL, "type:INTEGER"}, ++ [ASN1_ETYPE_ENUMERATED] = ++ {ASN1_TAG_ENUMERATED, ASN1_CLASS_UNIVERSAL, "type:ENUMERATED"}, ++ [ASN1_ETYPE_SEQUENCE] = ++ {ASN1_TAG_SEQUENCE, ASN1_CLASS_UNIVERSAL | ASN1_CLASS_STRUCTURED, ++ "type:SEQUENCE"}, ++ [ASN1_ETYPE_SEQUENCE_OF] = ++ {ASN1_TAG_SEQUENCE, ASN1_CLASS_UNIVERSAL | ASN1_CLASS_STRUCTURED, ++ "type:SEQ_OF"}, ++ [ASN1_ETYPE_SET] = ++ {ASN1_TAG_SET, ASN1_CLASS_UNIVERSAL | ASN1_CLASS_STRUCTURED, "type:SET"}, ++ [ASN1_ETYPE_SET_OF] = ++ {ASN1_TAG_SET, ASN1_CLASS_UNIVERSAL | ASN1_CLASS_STRUCTURED, ++ "type:SET_OF"}, ++ [ASN1_ETYPE_GENERALIZED_TIME] = ++ {ASN1_TAG_GENERALIZEDTime, ASN1_CLASS_UNIVERSAL, "type:GENERALIZED_TIME"}, ++ [ASN1_ETYPE_UTC_TIME] = ++ {ASN1_TAG_UTCTime, ASN1_CLASS_UNIVERSAL, "type:UTC_TIME"}, ++}; ++ ++unsigned int _asn1_tags_size = sizeof (_asn1_tags) / sizeof (_asn1_tags[0]); ++ ++/******************************************************/ ++/* Function : _asn1_insert_tag_der */ ++/* Description: creates the DER coding of tags of one */ ++/* NODE. */ ++/* Parameters: */ ++/* node: pointer to the tree element. */ ++/* der: string returned */ ++/* counter: number of meaningful bytes of DER */ ++/* (counter[0]..der[*counter-1]). */ ++/* max_len: size of der vector */ ++/* Return: */ ++/* ASN1_GENERIC_ERROR if the type is unknown, */ ++/* ASN1_MEM_ERROR if der vector isn't big enough, */ ++/* otherwise ASN1_SUCCESS. */ ++/******************************************************/ ++static int ++_asn1_insert_tag_der (asn1_node node, unsigned char *der, int *counter, ++ int *max_len) ++{ ++ asn1_node p; ++ int tag_len, is_tag_implicit; ++ unsigned char class, class_implicit = 0, temp[MAX(SIZEOF_UNSIGNED_INT * 3 + 1, LTOSTR_MAX_SIZE)]; ++ unsigned long tag_implicit = 0; ++ unsigned char tag_der[MAX_TAG_LEN]; ++ ++ is_tag_implicit = 0; ++ ++ if (node->type & CONST_TAG) ++ { ++ p = node->down; ++ while (p) ++ { ++ if (type_field (p->type) == ASN1_ETYPE_TAG) ++ { ++ if (p->type & CONST_APPLICATION) ++ class = ASN1_CLASS_APPLICATION; ++ else if (p->type & CONST_UNIVERSAL) ++ class = ASN1_CLASS_UNIVERSAL; ++ else if (p->type & CONST_PRIVATE) ++ class = ASN1_CLASS_PRIVATE; ++ else ++ class = ASN1_CLASS_CONTEXT_SPECIFIC; ++ ++ if (p->type & CONST_EXPLICIT) ++ { ++ if (is_tag_implicit) ++ _asn1_tag_der (class_implicit, tag_implicit, tag_der, ++ &tag_len); ++ else ++ _asn1_tag_der (class | ASN1_CLASS_STRUCTURED, ++ _asn1_strtoul (p->value, NULL, 10), ++ tag_der, &tag_len); ++ ++ *max_len -= tag_len; ++ if (der && *max_len >= 0) ++ memcpy (der + *counter, tag_der, tag_len); ++ *counter += tag_len; ++ ++ _asn1_ltostr (*counter, (char *) temp); ++ _asn1_set_name (p, (const char *) temp); ++ ++ is_tag_implicit = 0; ++ } ++ else ++ { /* CONST_IMPLICIT */ ++ if (!is_tag_implicit) ++ { ++ if ((type_field (node->type) == ASN1_ETYPE_SEQUENCE) || ++ (type_field (node->type) == ASN1_ETYPE_SEQUENCE_OF) ++ || (type_field (node->type) == ASN1_ETYPE_SET) ++ || (type_field (node->type) == ASN1_ETYPE_SET_OF)) ++ class |= ASN1_CLASS_STRUCTURED; ++ class_implicit = class; ++ tag_implicit = _asn1_strtoul (p->value, NULL, 10); ++ is_tag_implicit = 1; ++ } ++ } ++ } ++ p = p->right; ++ } ++ } ++ ++ if (is_tag_implicit) ++ { ++ _asn1_tag_der (class_implicit, tag_implicit, tag_der, &tag_len); ++ } ++ else ++ { ++ unsigned type = type_field (node->type); ++ switch (type) ++ { ++ CASE_HANDLED_ETYPES: ++ _asn1_tag_der (_asn1_tags[type].class, _asn1_tags[type].tag, ++ tag_der, &tag_len); ++ break; ++ case ASN1_ETYPE_TAG: ++ case ASN1_ETYPE_CHOICE: ++ case ASN1_ETYPE_ANY: ++ tag_len = 0; ++ break; ++ default: ++ return ASN1_GENERIC_ERROR; ++ } ++ } ++ ++ *max_len -= tag_len; ++ if (der && *max_len >= 0) ++ memcpy (der + *counter, tag_der, tag_len); ++ *counter += tag_len; ++ ++ if (*max_len < 0) ++ return ASN1_MEM_ERROR; ++ ++ return ASN1_SUCCESS; ++} ++ ++/******************************************************/ ++/* Function : _asn1_ordering_set */ ++/* Description: puts the elements of a SET type in */ ++/* the correct order according to DER rules. */ ++/* Parameters: */ ++/* der: string with the DER coding. */ ++/* node: pointer to the SET element. */ ++/* Return: */ ++/* ASN1_SUCCESS if successful */ ++/* or an error value. */ ++/******************************************************/ ++static int ++_asn1_ordering_set (unsigned char *der, int der_len, asn1_node node) ++{ ++ struct vet ++ { ++ int end; ++ unsigned long value; ++ struct vet *next, *prev; ++ }; ++ ++ int counter, len, len2; ++ struct vet *first, *last, *p_vet, *p2_vet; ++ asn1_node p; ++ unsigned char class, *temp; ++ unsigned long tag, t; ++ int err; ++ ++ counter = 0; ++ ++ if (type_field (node->type) != ASN1_ETYPE_SET) ++ return ASN1_VALUE_NOT_VALID; ++ ++ p = node->down; ++ while (p && ((type_field (p->type) == ASN1_ETYPE_TAG) || ++ (type_field (p->type) == ASN1_ETYPE_SIZE))) ++ p = p->right; ++ ++ if ((p == NULL) || (p->right == NULL)) ++ return ASN1_SUCCESS; ++ ++ first = last = NULL; ++ while (p) ++ { ++ p_vet = malloc (sizeof (struct vet)); ++ if (p_vet == NULL) ++ { ++ err = ASN1_MEM_ALLOC_ERROR; ++ goto error; ++ } ++ ++ p_vet->next = NULL; ++ p_vet->prev = last; ++ if (first == NULL) ++ first = p_vet; ++ else ++ last->next = p_vet; ++ last = p_vet; ++ ++ /* tag value calculation */ ++ err = asn1_get_tag_der (der + counter, der_len - counter, &class, &len2, ++ &tag); ++ if (err != ASN1_SUCCESS) ++ goto error; ++ ++ t = ((unsigned int)class) << 24; ++ p_vet->value = t | tag; ++ counter += len2; ++ ++ /* extraction and length */ ++ len2 = asn1_get_length_der (der + counter, der_len - counter, &len); ++ if (len2 < 0) ++ { ++ err = ASN1_DER_ERROR; ++ goto error; ++ } ++ counter += len + len2; ++ ++ p_vet->end = counter; ++ p = p->right; ++ } ++ ++ p_vet = first; ++ ++ while (p_vet) ++ { ++ p2_vet = p_vet->next; ++ counter = 0; ++ while (p2_vet) ++ { ++ if (p_vet->value > p2_vet->value) ++ { ++ /* change position */ ++ temp = malloc (p_vet->end - counter); ++ if (temp == NULL) ++ { ++ err = ASN1_MEM_ALLOC_ERROR; ++ goto error; ++ } ++ ++ memcpy (temp, der + counter, p_vet->end - counter); ++ memcpy (der + counter, der + p_vet->end, ++ p2_vet->end - p_vet->end); ++ memcpy (der + counter + p2_vet->end - p_vet->end, temp, ++ p_vet->end - counter); ++ free (temp); ++ ++ tag = p_vet->value; ++ p_vet->value = p2_vet->value; ++ p2_vet->value = tag; ++ ++ p_vet->end = counter + (p2_vet->end - p_vet->end); ++ } ++ counter = p_vet->end; ++ ++ p2_vet = p2_vet->next; ++ p_vet = p_vet->next; ++ } ++ ++ if (p_vet != first) ++ p_vet->prev->next = NULL; ++ else ++ first = NULL; ++ free (p_vet); ++ p_vet = first; ++ } ++ return ASN1_SUCCESS; ++ ++error: ++ while (first != NULL) ++ { ++ p_vet = first; ++ first = first->next; ++ free(p_vet); ++ } ++ return err; ++} ++ ++struct vet ++{ ++ unsigned char *ptr; ++ int size; ++}; ++ ++static int setof_compar(const void *_e1, const void *_e2) ++{ ++ unsigned length; ++ const struct vet *e1 = _e1, *e2 = _e2; ++ int rval; ++ ++ /* The encodings of the component values of a set-of value shall ++ * appear in ascending order, the encodings being compared ++ * as octet strings with the shorter components being ++ * padded at their trailing end with 0-octets. ++ * The padding octets are for comparison purposes and ++ * do not appear in the encodings. ++ */ ++ length = MIN(e1->size, e2->size); ++ ++ rval = memcmp(e1->ptr, e2->ptr, length); ++ if (rval == 0 && e1->size != e2->size) ++ { ++ if (e1->size > e2->size) ++ rval = 1; ++ else if (e2->size > e1->size) ++ rval = -1; ++ } ++ ++ return rval; ++} ++ ++/******************************************************/ ++/* Function : _asn1_ordering_set_of */ ++/* Description: puts the elements of a SET OF type in */ ++/* the correct order according to DER rules. */ ++/* Parameters: */ ++/* der: string with the DER coding. */ ++/* node: pointer to the SET OF element. */ ++/* Return: */ ++/* ASN1_SUCCESS if successful */ ++/* or an error value. */ ++/******************************************************/ ++static int ++_asn1_ordering_set_of (unsigned char *der, int der_len, asn1_node node) ++{ ++ int counter, len, len2; ++ struct vet *list = NULL, *tlist; ++ unsigned list_size = 0; ++ struct vet *p_vet; ++ asn1_node p; ++ unsigned char class; ++ unsigned i; ++ unsigned char *out = NULL; ++ int err; ++ ++ if (der == NULL) ++ return ASN1_VALUE_NOT_VALID; ++ ++ counter = 0; ++ ++ if (type_field (node->type) != ASN1_ETYPE_SET_OF) ++ return ASN1_VALUE_NOT_VALID; ++ ++ p = node->down; ++ while (p && ((type_field (p->type) == ASN1_ETYPE_TAG) || ++ (type_field (p->type) == ASN1_ETYPE_SIZE))) ++ p = p->right; ++ if (p == NULL) ++ return ASN1_VALUE_NOT_VALID; ++ p = p->right; ++ ++ if ((p == NULL) || (p->right == NULL)) ++ return ASN1_SUCCESS; ++ ++ while (p) ++ { ++ list_size++; ++ tlist = realloc (list, list_size*sizeof(struct vet)); ++ if (tlist == NULL) ++ { ++ err = ASN1_MEM_ALLOC_ERROR; ++ goto error; ++ } ++ list = tlist; ++ p_vet = &list[list_size-1]; ++ ++ p_vet->ptr = der+counter; ++ p_vet->size = 0; ++ ++ /* extraction of tag and length */ ++ if (der_len - counter > 0) ++ { ++ err = asn1_get_tag_der (der + counter, der_len - counter, &class, ++ &len, NULL); ++ if (err != ASN1_SUCCESS) ++ goto error; ++ counter += len; ++ p_vet->size += len; ++ ++ len2 = asn1_get_length_der (der + counter, der_len - counter, &len); ++ if (len2 < 0) ++ { ++ err = ASN1_DER_ERROR; ++ goto error; ++ } ++ counter += len + len2; ++ p_vet->size += len + len2; ++ ++ } ++ else ++ { ++ err = ASN1_DER_ERROR; ++ goto error; ++ } ++ p = p->right; ++ } ++ ++ if (counter > der_len) ++ { ++ err = ASN1_DER_ERROR; ++ goto error; ++ } ++ ++ qsort(list, list_size, sizeof(struct vet), setof_compar); ++ ++ out = malloc(der_len); ++ if (out == NULL) ++ { ++ err = ASN1_MEM_ERROR; ++ goto error; ++ } ++ ++ /* the sum of p_vet->size == der_len */ ++ counter = 0; ++ for (i = 0; i < list_size; i++) ++ { ++ p_vet = &list[i]; ++ memcpy(out+counter, p_vet->ptr, p_vet->size); ++ counter += p_vet->size; ++ } ++ memcpy(der, out, der_len); ++ free(out); ++ ++ err = ASN1_SUCCESS; ++ ++error: ++ free(list); ++ return err; ++} ++ ++/** ++ * asn1_der_coding: ++ * @element: pointer to an ASN1 element ++ * @name: the name of the structure you want to encode (it must be ++ * inside *POINTER). ++ * @ider: vector that will contain the DER encoding. DER must be a ++ * pointer to memory cells already allocated. ++ * @len: number of bytes of *@ider: @ider[0]..@ider[len-1], Initialy ++ * holds the sizeof of der vector. ++ * @ErrorDescription: return the error description or an empty ++ * string if success. ++ * ++ * Creates the DER encoding for the NAME structure (inside *POINTER ++ * structure). ++ * ++ * Returns: %ASN1_SUCCESS if DER encoding OK, %ASN1_ELEMENT_NOT_FOUND ++ * if @name is not a valid element, %ASN1_VALUE_NOT_FOUND if there ++ * is an element without a value, %ASN1_MEM_ERROR if the @ider ++ * vector isn't big enough and in this case @len will contain the ++ * length needed. ++ **/ ++int ++asn1_der_coding (asn1_node_const element, const char *name, void *ider, int *len, ++ char *ErrorDescription) ++{ ++ asn1_node node, p, p2; ++ unsigned char temp[MAX(LTOSTR_MAX_SIZE, SIZEOF_UNSIGNED_LONG_INT * 3 + 1)]; ++ int counter, counter_old, len2, len3, move, max_len, max_len_old; ++ int err; ++ unsigned char *der = ider; ++ ++ if (ErrorDescription) ++ ErrorDescription[0] = 0; ++ ++ node = asn1_find_node (element, name); ++ if (node == NULL) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ /* Node is now a locally allocated variable. ++ * That is because in some point we modify the ++ * structure, and I don't know why! --nmav ++ */ ++ node = _asn1_copy_structure3 (node); ++ if (node == NULL) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ max_len = *len; ++ ++ if (der == NULL && max_len > 0) ++ return ASN1_VALUE_NOT_VALID; ++ ++ counter = 0; ++ move = DOWN; ++ p = node; ++ ++ while (1) ++ { ++ ++ counter_old = counter; ++ max_len_old = max_len; ++ if (move != UP) ++ { ++ p->start = counter; ++ err = _asn1_insert_tag_der (p, der, &counter, &max_len); ++ if (err != ASN1_SUCCESS && err != ASN1_MEM_ERROR) ++ goto error; ++ } ++ switch (type_field (p->type)) ++ { ++ case ASN1_ETYPE_NULL: ++ max_len--; ++ if (der != NULL && max_len >= 0) ++ der[counter] = 0; ++ counter++; ++ move = RIGHT; ++ break; ++ case ASN1_ETYPE_BOOLEAN: ++ if ((p->type & CONST_DEFAULT) && (p->value == NULL)) ++ { ++ counter = counter_old; ++ max_len = max_len_old; ++ } ++ else ++ { ++ if (p->value == NULL) ++ { ++ _asn1_error_description_value_not_found (p, ++ ErrorDescription); ++ err = ASN1_VALUE_NOT_FOUND; ++ goto error; ++ } ++ max_len -= 2; ++ if (der != NULL && max_len >= 0) ++ { ++ der[counter++] = 1; ++ if (p->value[0] == 'F') ++ der[counter++] = 0; ++ else ++ der[counter++] = 0xFF; ++ } ++ else ++ counter += 2; ++ } ++ move = RIGHT; ++ break; ++ case ASN1_ETYPE_INTEGER: ++ case ASN1_ETYPE_ENUMERATED: ++ if ((p->type & CONST_DEFAULT) && (p->value == NULL)) ++ { ++ counter = counter_old; ++ max_len = max_len_old; ++ } ++ else ++ { ++ if (p->value == NULL) ++ { ++ _asn1_error_description_value_not_found (p, ++ ErrorDescription); ++ err = ASN1_VALUE_NOT_FOUND; ++ goto error; ++ } ++ len2 = asn1_get_length_der (p->value, p->value_len, &len3); ++ if (len2 < 0) ++ { ++ err = ASN1_DER_ERROR; ++ goto error; ++ } ++ max_len -= len2 + len3; ++ if (der != NULL && max_len >= 0) ++ memcpy (der + counter, p->value, len3 + len2); ++ counter += len3 + len2; ++ } ++ move = RIGHT; ++ break; ++ case ASN1_ETYPE_OBJECT_ID: ++ if ((p->type & CONST_DEFAULT) && (p->value == NULL)) ++ { ++ counter = counter_old; ++ max_len = max_len_old; ++ } ++ else ++ { ++ if (p->value == NULL) ++ { ++ _asn1_error_description_value_not_found (p, ++ ErrorDescription); ++ err = ASN1_VALUE_NOT_FOUND; ++ goto error; ++ } ++ len2 = max_len; ++ err = _asn1_object_id_der ((char*)p->value, der + counter, &len2); ++ if (err != ASN1_SUCCESS && err != ASN1_MEM_ERROR) ++ goto error; ++ ++ max_len -= len2; ++ counter += len2; ++ } ++ move = RIGHT; ++ break; ++ case ASN1_ETYPE_GENERALIZED_TIME: ++ case ASN1_ETYPE_UTC_TIME: ++ if (p->value == NULL) ++ { ++ _asn1_error_description_value_not_found (p, ErrorDescription); ++ err = ASN1_VALUE_NOT_FOUND; ++ goto error; ++ } ++ len2 = max_len; ++ err = _asn1_time_der (p->value, p->value_len, der + counter, &len2); ++ if (err != ASN1_SUCCESS && err != ASN1_MEM_ERROR) ++ goto error; ++ ++ max_len -= len2; ++ counter += len2; ++ move = RIGHT; ++ break; ++ case ASN1_ETYPE_OCTET_STRING: ++ case ASN1_ETYPE_GENERALSTRING: ++ case ASN1_ETYPE_NUMERIC_STRING: ++ case ASN1_ETYPE_IA5_STRING: ++ case ASN1_ETYPE_TELETEX_STRING: ++ case ASN1_ETYPE_PRINTABLE_STRING: ++ case ASN1_ETYPE_UNIVERSAL_STRING: ++ case ASN1_ETYPE_BMP_STRING: ++ case ASN1_ETYPE_UTF8_STRING: ++ case ASN1_ETYPE_VISIBLE_STRING: ++ case ASN1_ETYPE_BIT_STRING: ++ if (p->value == NULL) ++ { ++ _asn1_error_description_value_not_found (p, ErrorDescription); ++ err = ASN1_VALUE_NOT_FOUND; ++ goto error; ++ } ++ len2 = asn1_get_length_der (p->value, p->value_len, &len3); ++ if (len2 < 0) ++ { ++ err = ASN1_DER_ERROR; ++ goto error; ++ } ++ max_len -= len2 + len3; ++ if (der != NULL && max_len >= 0) ++ memcpy (der + counter, p->value, len3 + len2); ++ counter += len3 + len2; ++ move = RIGHT; ++ break; ++ case ASN1_ETYPE_SEQUENCE: ++ case ASN1_ETYPE_SET: ++ if (move != UP) ++ { ++ p->tmp_ival = counter; ++ if (p->down == NULL) ++ { ++ move = UP; ++ continue; ++ } ++ else ++ { ++ p2 = p->down; ++ while (p2 && (type_field (p2->type) == ASN1_ETYPE_TAG)) ++ p2 = p2->right; ++ if (p2) ++ { ++ p = p2; ++ move = RIGHT; ++ continue; ++ } ++ move = UP; ++ continue; ++ } ++ } ++ else ++ { /* move==UP */ ++ len2 = p->tmp_ival; ++ p->tmp_ival = 0; ++ if ((type_field (p->type) == ASN1_ETYPE_SET) && (max_len >= 0)) ++ { ++ err = _asn1_ordering_set (der + len2, counter - len2, p); ++ if (err != ASN1_SUCCESS) ++ goto error; ++ } ++ asn1_length_der (counter - len2, temp, &len3); ++ max_len -= len3; ++ if (der != NULL && max_len >= 0) ++ { ++ memmove (der + len2 + len3, der + len2, counter - len2); ++ memcpy (der + len2, temp, len3); ++ } ++ counter += len3; ++ move = RIGHT; ++ } ++ break; ++ case ASN1_ETYPE_SEQUENCE_OF: ++ case ASN1_ETYPE_SET_OF: ++ if (move != UP) ++ { ++ p->tmp_ival = counter; ++ p = p->down; ++ while ((type_field (p->type) == ASN1_ETYPE_TAG) ++ || (type_field (p->type) == ASN1_ETYPE_SIZE)) ++ p = p->right; ++ if (p->right) ++ { ++ p = p->right; ++ move = RIGHT; ++ continue; ++ } ++ else ++ p = _asn1_find_up (p); ++ move = UP; ++ } ++ if (move == UP) ++ { ++ len2 = p->tmp_ival; ++ p->tmp_ival = 0; ++ if ((type_field (p->type) == ASN1_ETYPE_SET_OF) ++ && (counter - len2 > 0) && (max_len >= 0)) ++ { ++ err = _asn1_ordering_set_of (der + len2, counter - len2, p); ++ if (err != ASN1_SUCCESS) ++ goto error; ++ } ++ asn1_length_der (counter - len2, temp, &len3); ++ max_len -= len3; ++ if (der != NULL && max_len >= 0) ++ { ++ memmove (der + len2 + len3, der + len2, counter - len2); ++ memcpy (der + len2, temp, len3); ++ } ++ counter += len3; ++ move = RIGHT; ++ } ++ break; ++ case ASN1_ETYPE_ANY: ++ if (p->value == NULL) ++ { ++ _asn1_error_description_value_not_found (p, ErrorDescription); ++ err = ASN1_VALUE_NOT_FOUND; ++ goto error; ++ } ++ len2 = asn1_get_length_der (p->value, p->value_len, &len3); ++ if (len2 < 0) ++ { ++ err = ASN1_DER_ERROR; ++ goto error; ++ } ++ max_len -= len2; ++ if (der != NULL && max_len >= 0) ++ memcpy (der + counter, p->value + len3, len2); ++ counter += len2; ++ move = RIGHT; ++ break; ++ default: ++ move = (move == UP) ? RIGHT : DOWN; ++ break; ++ } ++ ++ if ((move != DOWN) && (counter != counter_old)) ++ { ++ p->end = counter - 1; ++ err = _asn1_complete_explicit_tag (p, der, &counter, &max_len); ++ if (err != ASN1_SUCCESS && err != ASN1_MEM_ERROR) ++ goto error; ++ } ++ ++ if (p == node && move != DOWN) ++ break; ++ ++ if (move == DOWN) ++ { ++ if (p->down) ++ p = p->down; ++ else ++ move = RIGHT; ++ } ++ if (move == RIGHT) ++ { ++ if (p->right) ++ p = p->right; ++ else ++ move = UP; ++ } ++ if (move == UP) ++ p = _asn1_find_up (p); ++ } ++ ++ *len = counter; ++ ++ if (max_len < 0) ++ { ++ err = ASN1_MEM_ERROR; ++ goto error; ++ } ++ ++ err = ASN1_SUCCESS; ++ ++error: ++ asn1_delete_structure (&node); ++ return err; ++} +diff --git a/grub-core/lib/libtasn1/lib/decoding.c b/grub-core/lib/libtasn1/lib/decoding.c +new file mode 100644 +index 00000000000..ff04eb778cb +--- /dev/null ++++ b/grub-core/lib/libtasn1/lib/decoding.c +@@ -0,0 +1,2478 @@ ++/* ++ * Copyright (C) 2002-2016 Free Software Foundation, Inc. ++ * ++ * This file is part of LIBTASN1. ++ * ++ * The LIBTASN1 library is free software; you can redistribute it ++ * and/or modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ++ * 02110-1301, USA ++ */ ++ ++ ++/*****************************************************/ ++/* File: decoding.c */ ++/* Description: Functions to manage DER decoding */ ++/*****************************************************/ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#ifdef DEBUG ++# define warn() fprintf(stderr, "%s: %d\n", __func__, __LINE__) ++#else ++# define warn() ++#endif ++ ++#define IS_ERR(len, flags) (len < -1 || ((flags & ASN1_DECODE_FLAG_STRICT_DER) && len < 0)) ++ ++#define HAVE_TWO(x) (x>=2?1:0) ++ ++/* Decoding flags (dflags) used in several decoding functions. ++ * DECODE_FLAG_HAVE_TAG: The provided buffer includes a tag ++ * DECODE_FLAG_CONSTRUCTED: The provided buffer is of indefinite encoding (useful ++ * when no tags are present). ++ * DECODE_FLAG_LEVEL1: Internal flag to indicate a level of recursion for BER strings. ++ * DECODE_FLAG_LEVEL2: Internal flag to indicate two levels of recursion for BER strings. ++ * DECODE_FLAG_LEVEL3: Internal flag to indicate three levels of recursion for BER strings. ++ * This is the maximum levels of recursion possible to prevent stack ++ * exhaustion. ++ */ ++ ++#define DECODE_FLAG_HAVE_TAG 1 ++#define DECODE_FLAG_CONSTRUCTED (1<<1) ++#define DECODE_FLAG_LEVEL1 (1<<2) ++#define DECODE_FLAG_LEVEL2 (1<<3) ++#define DECODE_FLAG_LEVEL3 (1<<4) ++ ++#define DECR_LEN(l, s) do { \ ++ l -= s; \ ++ if (l < 0) { \ ++ warn(); \ ++ result = ASN1_DER_ERROR; \ ++ goto cleanup; \ ++ } \ ++ } while (0) ++ ++static int ++_asn1_get_indefinite_length_string (const unsigned char *der, int der_len, int *len); ++ ++static int ++_asn1_decode_simple_ber (unsigned int etype, const unsigned char *der, ++ unsigned int _der_len, unsigned char **str, ++ unsigned int *str_len, unsigned int *ber_len, ++ unsigned dflags); ++ ++static int ++_asn1_decode_simple_der (unsigned int etype, const unsigned char *der, ++ unsigned int _der_len, const unsigned char **str, ++ unsigned int *str_len, unsigned dflags); ++ ++static void ++_asn1_error_description_tag_error (asn1_node node, char *ErrorDescription) ++{ ++ ++ Estrcpy (ErrorDescription, ":: tag error near element '"); ++ _asn1_hierarchical_name (node, ErrorDescription + strlen (ErrorDescription), ++ ASN1_MAX_ERROR_DESCRIPTION_SIZE - 40); ++ Estrcat (ErrorDescription, "'"); ++ ++} ++ ++/** ++ * asn1_get_length_der: ++ * @der: DER data to decode. ++ * @der_len: Length of DER data to decode. ++ * @len: Output variable containing the length of the DER length field. ++ * ++ * Extract a length field from DER data. ++ * ++ * Returns: Return the decoded length value, or -1 on indefinite ++ * length, or -2 when the value was too big to fit in a int, or -4 ++ * when the decoded length value plus @len would exceed @der_len. ++ **/ ++long ++asn1_get_length_der (const unsigned char *der, int der_len, int *len) ++{ ++ unsigned int ans; ++ int k, punt, sum; ++ ++ *len = 0; ++ if (der_len <= 0) ++ return 0; ++ ++ if (!(der[0] & 128)) ++ { ++ /* short form */ ++ *len = 1; ++ ans = der[0]; ++ } ++ else ++ { ++ /* Long form */ ++ k = der[0] & 0x7F; ++ punt = 1; ++ if (k) ++ { /* definite length method */ ++ ans = 0; ++ while (punt <= k && punt < der_len) ++ { ++ if (INT_MULTIPLY_OVERFLOW (ans, 256)) ++ return -2; ++ ans *= 256; ++ ++ if (INT_ADD_OVERFLOW (ans, ((unsigned) der[punt]))) ++ return -2; ++ ans += der[punt]; ++ punt++; ++ } ++ } ++ else ++ { /* indefinite length method */ ++ *len = punt; ++ return -1; ++ } ++ ++ *len = punt; ++ } ++ ++ sum = ans; ++ if (ans >= INT_MAX || INT_ADD_OVERFLOW (sum, (*len))) ++ return -2; ++ sum += *len; ++ ++ if (sum > der_len) ++ return -4; ++ ++ return ans; ++} ++ ++/** ++ * asn1_get_tag_der: ++ * @der: DER data to decode. ++ * @der_len: Length of DER data to decode. ++ * @cls: Output variable containing decoded class. ++ * @len: Output variable containing the length of the DER TAG data. ++ * @tag: Output variable containing the decoded tag (may be %NULL). ++ * ++ * Decode the class and TAG from DER code. ++ * ++ * Returns: Returns %ASN1_SUCCESS on success, or an error. ++ **/ ++int ++asn1_get_tag_der (const unsigned char *der, int der_len, ++ unsigned char *cls, int *len, unsigned long *tag) ++{ ++ unsigned int ris; ++ int punt; ++ ++ if (der == NULL || der_len < 2 || len == NULL) ++ return ASN1_DER_ERROR; ++ ++ *cls = der[0] & 0xE0; ++ if ((der[0] & 0x1F) != 0x1F) ++ { ++ /* short form */ ++ *len = 1; ++ ris = der[0] & 0x1F; ++ } ++ else ++ { ++ /* Long form */ ++ punt = 1; ++ ris = 0; ++ while (punt < der_len && der[punt] & 128) ++ { ++ ++ if (INT_MULTIPLY_OVERFLOW (ris, 128)) ++ return ASN1_DER_ERROR; ++ ris *= 128; ++ ++ if (INT_ADD_OVERFLOW (ris, ((unsigned) (der[punt] & 0x7F)))) ++ return ASN1_DER_ERROR; ++ ris += (der[punt] & 0x7F); ++ punt++; ++ } ++ ++ if (punt >= der_len) ++ return ASN1_DER_ERROR; ++ ++ if (INT_MULTIPLY_OVERFLOW (ris, 128)) ++ return ASN1_DER_ERROR; ++ ris *= 128; ++ ++ if (INT_ADD_OVERFLOW (ris, ((unsigned) (der[punt] & 0x7F)))) ++ return ASN1_DER_ERROR; ++ ris += (der[punt] & 0x7F); ++ punt++; ++ ++ *len = punt; ++ } ++ ++ if (tag) ++ *tag = ris; ++ return ASN1_SUCCESS; ++} ++ ++/** ++ * asn1_get_length_ber: ++ * @ber: BER data to decode. ++ * @ber_len: Length of BER data to decode. ++ * @len: Output variable containing the length of the BER length field. ++ * ++ * Extract a length field from BER data. The difference to ++ * asn1_get_length_der() is that this function will return a length ++ * even if the value has indefinite encoding. ++ * ++ * Returns: Return the decoded length value, or negative value when ++ * the value was too big. ++ * ++ * Since: 2.0 ++ **/ ++long ++asn1_get_length_ber (const unsigned char *ber, int ber_len, int *len) ++{ ++ int ret; ++ long err; ++ ++ ret = asn1_get_length_der (ber, ber_len, len); ++ ++ if (ret == -1 && ber_len > 1) ++ { /* indefinite length method */ ++ err = _asn1_get_indefinite_length_string (ber + 1, ber_len-1, &ret); ++ if (err != ASN1_SUCCESS) ++ return -3; ++ } ++ ++ return ret; ++} ++ ++/** ++ * asn1_get_octet_der: ++ * @der: DER data to decode containing the OCTET SEQUENCE. ++ * @der_len: The length of the @der data to decode. ++ * @ret_len: Output variable containing the encoded length of the DER data. ++ * @str: Pre-allocated output buffer to put decoded OCTET SEQUENCE in. ++ * @str_size: Length of pre-allocated output buffer. ++ * @str_len: Output variable containing the length of the contents of the OCTET SEQUENCE. ++ * ++ * Extract an OCTET SEQUENCE from DER data. Note that this function ++ * expects the DER data past the tag field, i.e., the length and ++ * content octets. ++ * ++ * Returns: Returns %ASN1_SUCCESS on success, or an error. ++ **/ ++int ++asn1_get_octet_der (const unsigned char *der, int der_len, ++ int *ret_len, unsigned char *str, int str_size, ++ int *str_len) ++{ ++ int len_len = 0; ++ ++ if (der_len <= 0) ++ return ASN1_GENERIC_ERROR; ++ ++ *str_len = asn1_get_length_der (der, der_len, &len_len); ++ ++ if (*str_len < 0) ++ return ASN1_DER_ERROR; ++ ++ *ret_len = *str_len + len_len; ++ if (str_size >= *str_len) ++ { ++ if (*str_len > 0 && str != NULL) ++ memcpy (str, der + len_len, *str_len); ++ } ++ else ++ { ++ return ASN1_MEM_ERROR; ++ } ++ ++ return ASN1_SUCCESS; ++} ++ ++ ++/*- ++ * _asn1_get_time_der: ++ * @type: %ASN1_ETYPE_GENERALIZED_TIME or %ASN1_ETYPE_UTC_TIME ++ * @der: DER data to decode containing the time ++ * @der_len: Length of DER data to decode. ++ * @ret_len: Output variable containing the length of the DER data. ++ * @str: Pre-allocated output buffer to put the textual time in. ++ * @str_size: Length of pre-allocated output buffer. ++ * @flags: Zero or %ASN1_DECODE_FLAG_STRICT_DER ++ * ++ * Performs basic checks in the DER encoded time object and returns its textual form. ++ * The textual form will be in the YYYYMMDD000000Z format for GeneralizedTime ++ * and YYMMDD000000Z for UTCTime. ++ * ++ * Returns: %ASN1_SUCCESS on success, or an error. ++ -*/ ++static int ++_asn1_get_time_der (unsigned type, const unsigned char *der, int der_len, int *ret_len, ++ char *str, int str_size, unsigned flags) ++{ ++ int len_len, str_len; ++ unsigned i; ++ unsigned sign_count = 0; ++ unsigned dot_count = 0; ++ const unsigned char *p; ++ ++ if (der_len <= 0 || str == NULL) ++ return ASN1_DER_ERROR; ++ ++ str_len = asn1_get_length_der (der, der_len, &len_len); ++ if (str_len <= 0 || str_size < str_len) ++ return ASN1_DER_ERROR; ++ ++ /* perform some sanity checks on the data */ ++ if (str_len < 8) ++ { ++ warn(); ++ return ASN1_TIME_ENCODING_ERROR; ++ } ++ ++ if ((flags & ASN1_DECODE_FLAG_STRICT_DER) && !(flags & ASN1_DECODE_FLAG_ALLOW_INCORRECT_TIME)) ++ { ++ p = &der[len_len]; ++ for (i=0;i<(unsigned)(str_len-1);i++) ++ { ++ if (c_isdigit(p[i]) == 0) ++ { ++ if (type == ASN1_ETYPE_GENERALIZED_TIME) ++ { ++ /* tolerate lax encodings */ ++ if (p[i] == '.' && dot_count == 0) ++ { ++ dot_count++; ++ continue; ++ } ++ ++ /* This is not really valid DER, but there are ++ * structures using that */ ++ if (!(flags & ASN1_DECODE_FLAG_STRICT_DER) && ++ (p[i] == '+' || p[i] == '-') && sign_count == 0) ++ { ++ sign_count++; ++ continue; ++ } ++ } ++ ++ warn(); ++ return ASN1_TIME_ENCODING_ERROR; ++ } ++ } ++ ++ if (sign_count == 0 && p[str_len-1] != 'Z') ++ { ++ warn(); ++ return ASN1_TIME_ENCODING_ERROR; ++ } ++ } ++ memcpy (str, der + len_len, str_len); ++ str[str_len] = 0; ++ *ret_len = str_len + len_len; ++ ++ return ASN1_SUCCESS; ++} ++ ++/** ++ * asn1_get_object_id_der: ++ * @der: DER data to decode containing the OBJECT IDENTIFIER ++ * @der_len: Length of DER data to decode. ++ * @ret_len: Output variable containing the length of the DER data. ++ * @str: Pre-allocated output buffer to put the textual object id in. ++ * @str_size: Length of pre-allocated output buffer. ++ * ++ * Converts a DER encoded object identifier to its textual form. This ++ * function expects the DER object identifier without the tag. ++ * ++ * Returns: %ASN1_SUCCESS on success, or an error. ++ **/ ++int ++asn1_get_object_id_der (const unsigned char *der, int der_len, int *ret_len, ++ char *str, int str_size) ++{ ++ int len_len, len, k; ++ int leading, parsed; ++ char temp[LTOSTR_MAX_SIZE]; ++ uint64_t val, val1, val0; ++ ++ *ret_len = 0; ++ if (str && str_size > 0) ++ str[0] = 0; /* no oid */ ++ ++ if (str == NULL || der_len <= 0) ++ return ASN1_GENERIC_ERROR; ++ ++ len = asn1_get_length_der (der, der_len, &len_len); ++ ++ if (len <= 0 || len + len_len > der_len) ++ return ASN1_DER_ERROR; ++ ++ /* leading octet can never be 0x80 */ ++ if (der[len_len] == 0x80) ++ return ASN1_DER_ERROR; ++ ++ val0 = 0; ++ ++ for (k = 0; k < len; k++) ++ { ++ if (INT_LEFT_SHIFT_OVERFLOW (val0, 7)) ++ return ASN1_DER_ERROR; ++ ++ val0 <<= 7; ++ val0 |= der[len_len + k] & 0x7F; ++ if (!(der[len_len + k] & 0x80)) ++ break; ++ } ++ parsed = ++k; ++ ++ /* val0 = (X*40) + Y, X={0,1,2}, Y<=39 when X={0,1} */ ++ /* X = val, Y = val1 */ ++ ++ /* check if X == 0 */ ++ val = 0; ++ val1 = val0; ++ if (val1 > 39) ++ { ++ val = 1; ++ val1 = val0 - 40; ++ if (val1 > 39) ++ { ++ val = 2; ++ val1 = val0 - 80; ++ } ++ } ++ ++ _asn1_str_cpy (str, str_size, _asn1_ltostr (val, temp)); ++ _asn1_str_cat (str, str_size, "."); ++ _asn1_str_cat (str, str_size, _asn1_ltostr (val1, temp)); ++ ++ val = 0; ++ leading = 1; ++ for (k = parsed; k < len; k++) ++ { ++ /* X.690 mandates that the leading byte must never be 0x80 ++ */ ++ if (leading != 0 && der[len_len + k] == 0x80) ++ return ASN1_DER_ERROR; ++ leading = 0; ++ ++ /* check for wrap around */ ++ if (INT_LEFT_SHIFT_OVERFLOW (val, 7)) ++ return ASN1_DER_ERROR; ++ ++ val = val << 7; ++ val |= der[len_len + k] & 0x7F; ++ ++ if (!(der[len_len + k] & 0x80)) ++ { ++ _asn1_str_cat (str, str_size, "."); ++ _asn1_str_cat (str, str_size, _asn1_ltostr (val, temp)); ++ val = 0; ++ leading = 1; ++ } ++ } ++ ++ if (INT_ADD_OVERFLOW (len, len_len)) ++ return ASN1_DER_ERROR; ++ ++ *ret_len = len + len_len; ++ ++ return ASN1_SUCCESS; ++} ++ ++/** ++ * asn1_get_bit_der: ++ * @der: DER data to decode containing the BIT SEQUENCE. ++ * @der_len: Length of DER data to decode. ++ * @ret_len: Output variable containing the length of the DER data. ++ * @str: Pre-allocated output buffer to put decoded BIT SEQUENCE in. ++ * @str_size: Length of pre-allocated output buffer. ++ * @bit_len: Output variable containing the size of the BIT SEQUENCE. ++ * ++ * Extract a BIT SEQUENCE from DER data. ++ * ++ * Returns: %ASN1_SUCCESS on success, or an error. ++ **/ ++int ++asn1_get_bit_der (const unsigned char *der, int der_len, ++ int *ret_len, unsigned char *str, int str_size, ++ int *bit_len) ++{ ++ int len_len = 0, len_byte; ++ ++ if (der_len <= 0) ++ return ASN1_GENERIC_ERROR; ++ ++ len_byte = asn1_get_length_der (der, der_len, &len_len) - 1; ++ if (len_byte < 0) ++ return ASN1_DER_ERROR; ++ ++ *ret_len = len_byte + len_len + 1; ++ *bit_len = len_byte * 8 - der[len_len]; ++ ++ if (*bit_len < 0) ++ return ASN1_DER_ERROR; ++ ++ if (str_size >= len_byte) ++ { ++ if (len_byte > 0 && str) ++ memcpy (str, der + len_len + 1, len_byte); ++ } ++ else ++ { ++ return ASN1_MEM_ERROR; ++ } ++ ++ return ASN1_SUCCESS; ++} ++ ++/* tag_len: the total tag length (explicit+inner) ++ * inner_tag_len: the inner_tag length ++ */ ++static int ++_asn1_extract_tag_der (asn1_node node, const unsigned char *der, int der_len, ++ int *tag_len, int *inner_tag_len, unsigned flags) ++{ ++ asn1_node p; ++ int counter, len2, len3, is_tag_implicit; ++ int result; ++ unsigned long tag, tag_implicit = 0; ++ unsigned char class, class2, class_implicit = 0; ++ ++ if (der_len <= 0) ++ return ASN1_GENERIC_ERROR; ++ ++ counter = is_tag_implicit = 0; ++ ++ if (node->type & CONST_TAG) ++ { ++ p = node->down; ++ while (p) ++ { ++ if (type_field (p->type) == ASN1_ETYPE_TAG) ++ { ++ if (p->type & CONST_APPLICATION) ++ class2 = ASN1_CLASS_APPLICATION; ++ else if (p->type & CONST_UNIVERSAL) ++ class2 = ASN1_CLASS_UNIVERSAL; ++ else if (p->type & CONST_PRIVATE) ++ class2 = ASN1_CLASS_PRIVATE; ++ else ++ class2 = ASN1_CLASS_CONTEXT_SPECIFIC; ++ ++ if (p->type & CONST_EXPLICIT) ++ { ++ if (asn1_get_tag_der ++ (der + counter, der_len, &class, &len2, ++ &tag) != ASN1_SUCCESS) ++ return ASN1_DER_ERROR; ++ ++ DECR_LEN(der_len, len2); ++ counter += len2; ++ ++ if (flags & ASN1_DECODE_FLAG_STRICT_DER) ++ len3 = ++ asn1_get_length_der (der + counter, der_len, ++ &len2); ++ else ++ len3 = ++ asn1_get_length_ber (der + counter, der_len, ++ &len2); ++ if (len3 < 0) ++ return ASN1_DER_ERROR; ++ ++ DECR_LEN(der_len, len2); ++ counter += len2; ++ ++ if (!is_tag_implicit) ++ { ++ if ((class != (class2 | ASN1_CLASS_STRUCTURED)) || ++ (tag != strtoul ((char *) p->value, NULL, 10))) ++ return ASN1_TAG_ERROR; ++ } ++ else ++ { /* ASN1_TAG_IMPLICIT */ ++ if ((class != class_implicit) || (tag != tag_implicit)) ++ return ASN1_TAG_ERROR; ++ } ++ is_tag_implicit = 0; ++ } ++ else ++ { /* ASN1_TAG_IMPLICIT */ ++ if (!is_tag_implicit) ++ { ++ if ((type_field (node->type) == ASN1_ETYPE_SEQUENCE) || ++ (type_field (node->type) == ASN1_ETYPE_SEQUENCE_OF) ++ || (type_field (node->type) == ASN1_ETYPE_SET) ++ || (type_field (node->type) == ASN1_ETYPE_SET_OF)) ++ class2 |= ASN1_CLASS_STRUCTURED; ++ class_implicit = class2; ++ tag_implicit = strtoul ((char *) p->value, NULL, 10); ++ is_tag_implicit = 1; ++ } ++ } ++ } ++ p = p->right; ++ } ++ } ++ ++ if (is_tag_implicit) ++ { ++ if (asn1_get_tag_der ++ (der + counter, der_len, &class, &len2, ++ &tag) != ASN1_SUCCESS) ++ return ASN1_DER_ERROR; ++ ++ DECR_LEN(der_len, len2); ++ ++ if ((class != class_implicit) || (tag != tag_implicit)) ++ { ++ if (type_field (node->type) == ASN1_ETYPE_OCTET_STRING) ++ { ++ class_implicit |= ASN1_CLASS_STRUCTURED; ++ if ((class != class_implicit) || (tag != tag_implicit)) ++ return ASN1_TAG_ERROR; ++ } ++ else ++ return ASN1_TAG_ERROR; ++ } ++ } ++ else ++ { ++ unsigned type = type_field (node->type); ++ if (type == ASN1_ETYPE_TAG) ++ { ++ *tag_len = 0; ++ if (inner_tag_len) ++ *inner_tag_len = 0; ++ return ASN1_SUCCESS; ++ } ++ ++ if (asn1_get_tag_der ++ (der + counter, der_len, &class, &len2, ++ &tag) != ASN1_SUCCESS) ++ return ASN1_DER_ERROR; ++ ++ DECR_LEN(der_len, len2); ++ ++ switch (type) ++ { ++ case ASN1_ETYPE_NULL: ++ case ASN1_ETYPE_BOOLEAN: ++ case ASN1_ETYPE_INTEGER: ++ case ASN1_ETYPE_ENUMERATED: ++ case ASN1_ETYPE_OBJECT_ID: ++ case ASN1_ETYPE_GENERALSTRING: ++ case ASN1_ETYPE_NUMERIC_STRING: ++ case ASN1_ETYPE_IA5_STRING: ++ case ASN1_ETYPE_TELETEX_STRING: ++ case ASN1_ETYPE_PRINTABLE_STRING: ++ case ASN1_ETYPE_UNIVERSAL_STRING: ++ case ASN1_ETYPE_BMP_STRING: ++ case ASN1_ETYPE_UTF8_STRING: ++ case ASN1_ETYPE_VISIBLE_STRING: ++ case ASN1_ETYPE_BIT_STRING: ++ case ASN1_ETYPE_SEQUENCE: ++ case ASN1_ETYPE_SEQUENCE_OF: ++ case ASN1_ETYPE_SET: ++ case ASN1_ETYPE_SET_OF: ++ case ASN1_ETYPE_GENERALIZED_TIME: ++ case ASN1_ETYPE_UTC_TIME: ++ if ((class != _asn1_tags[type].class) ++ || (tag != _asn1_tags[type].tag)) ++ return ASN1_DER_ERROR; ++ break; ++ ++ case ASN1_ETYPE_OCTET_STRING: ++ /* OCTET STRING is handled differently to allow ++ * BER encodings (structured class). */ ++ if (((class != ASN1_CLASS_UNIVERSAL) ++ && (class != (ASN1_CLASS_UNIVERSAL | ASN1_CLASS_STRUCTURED))) ++ || (tag != ASN1_TAG_OCTET_STRING)) ++ return ASN1_DER_ERROR; ++ break; ++ case ASN1_ETYPE_ANY: ++ counter -= len2; ++ break; ++ case ASN1_ETYPE_CHOICE: ++ counter -= len2; ++ break; ++ default: ++ return ASN1_DER_ERROR; ++ break; ++ } ++ } ++ ++ counter += len2; ++ *tag_len = counter; ++ if (inner_tag_len) ++ *inner_tag_len = len2; ++ return ASN1_SUCCESS; ++ ++cleanup: ++ return result; ++} ++ ++static int ++extract_tag_der_recursive(asn1_node node, const unsigned char *der, int der_len, ++ int *ret_len, int *inner_len, unsigned flags) ++{ ++asn1_node p; ++int ris = ASN1_DER_ERROR; ++ ++ if (type_field (node->type) == ASN1_ETYPE_CHOICE) ++ { ++ p = node->down; ++ while (p) ++ { ++ ris = _asn1_extract_tag_der (p, der, der_len, ret_len, inner_len, flags); ++ if (ris == ASN1_SUCCESS) ++ break; ++ p = p->right; ++ } ++ ++ *ret_len = 0; ++ return ris; ++ } ++ else ++ return _asn1_extract_tag_der (node, der, der_len, ret_len, inner_len, flags); ++} ++ ++static int ++_asn1_delete_not_used (asn1_node node) ++{ ++ asn1_node p, p2; ++ ++ if (node == NULL) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ p = node; ++ while (p) ++ { ++ if (p->type & CONST_NOT_USED) ++ { ++ p2 = NULL; ++ if (p != node) ++ { ++ p2 = _asn1_find_left (p); ++ if (!p2) ++ p2 = _asn1_find_up (p); ++ } ++ asn1_delete_structure (&p); ++ p = p2; ++ } ++ ++ if (!p) ++ break; /* reach node */ ++ ++ if (p->down) ++ { ++ p = p->down; ++ } ++ else ++ { ++ if (p == node) ++ p = NULL; ++ else if (p->right) ++ p = p->right; ++ else ++ { ++ while (1) ++ { ++ p = _asn1_find_up (p); ++ if (p == node) ++ { ++ p = NULL; ++ break; ++ } ++ if (p->right) ++ { ++ p = p->right; ++ break; ++ } ++ } ++ } ++ } ++ } ++ return ASN1_SUCCESS; ++} ++ ++static int ++_asn1_get_indefinite_length_string (const unsigned char *der, ++ int der_len, int *len) ++{ ++ int len2, len3, counter, indefinite; ++ int result; ++ unsigned long tag; ++ unsigned char class; ++ ++ counter = indefinite = 0; ++ ++ while (1) ++ { ++ if (HAVE_TWO(der_len) && (der[counter] == 0) && (der[counter + 1] == 0)) ++ { ++ counter += 2; ++ DECR_LEN(der_len, 2); ++ ++ indefinite--; ++ if (indefinite <= 0) ++ break; ++ else ++ continue; ++ } ++ ++ if (asn1_get_tag_der ++ (der + counter, der_len, &class, &len2, ++ &tag) != ASN1_SUCCESS) ++ return ASN1_DER_ERROR; ++ ++ DECR_LEN(der_len, len2); ++ counter += len2; ++ ++ len2 = asn1_get_length_der (der + counter, der_len, &len3); ++ if (len2 < -1) ++ return ASN1_DER_ERROR; ++ ++ if (len2 == -1) ++ { ++ indefinite++; ++ counter += 1; ++ DECR_LEN(der_len, 1); ++ } ++ else ++ { ++ counter += len2 + len3; ++ DECR_LEN(der_len, len2+len3); ++ } ++ } ++ ++ *len = counter; ++ return ASN1_SUCCESS; ++ ++cleanup: ++ return result; ++} ++ ++static void delete_unneeded_choice_fields(asn1_node p) ++{ ++ asn1_node p2; ++ ++ while (p->right) ++ { ++ p2 = p->right; ++ asn1_delete_structure (&p2); ++ } ++} ++ ++ ++/** ++ * asn1_der_decoding2 ++ * @element: pointer to an ASN1 structure. ++ * @ider: vector that contains the DER encoding. ++ * @max_ider_len: pointer to an integer giving the information about the ++ * maximal number of bytes occupied by *@ider. The real size of the DER ++ * encoding is returned through this pointer. ++ * @flags: flags controlling the behaviour of the function. ++ * @errorDescription: null-terminated string contains details when an ++ * error occurred. ++ * ++ * Fill the structure *@element with values of a DER encoding string. The ++ * structure must just be created with function asn1_create_element(). ++ * ++ * If %ASN1_DECODE_FLAG_ALLOW_PADDING flag is set then the function will ignore ++ * padding after the decoded DER data. Upon a successful return the value of ++ * *@max_ider_len will be set to the number of bytes decoded. ++ * ++ * If %ASN1_DECODE_FLAG_STRICT_DER flag is set then the function will ++ * not decode any BER-encoded elements. ++ * ++ * Returns: %ASN1_SUCCESS if DER encoding OK, %ASN1_ELEMENT_NOT_FOUND ++ * if @ELEMENT is %NULL, and %ASN1_TAG_ERROR or ++ * %ASN1_DER_ERROR if the der encoding doesn't match the structure ++ * name (*@ELEMENT deleted). ++ **/ ++int ++asn1_der_decoding2 (asn1_node *element, const void *ider, int *max_ider_len, ++ unsigned int flags, char *errorDescription) ++{ ++ asn1_node node, p, p2, p3; ++ char temp[128]; ++ int counter, len2, len3, len4, move, ris, tlen; ++ struct node_tail_cache_st tcache = {NULL, NULL}; ++ unsigned char class; ++ unsigned long tag; ++ int tag_len; ++ int indefinite, result, total_len = *max_ider_len, ider_len = *max_ider_len; ++ int inner_tag_len; ++ unsigned char *ptmp; ++ const unsigned char *ptag; ++ const unsigned char *der = ider; ++ ++ node = *element; ++ ++ if (errorDescription != NULL) ++ errorDescription[0] = 0; ++ ++ if (node == NULL) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ if (node->type & CONST_OPTION) ++ { ++ result = ASN1_GENERIC_ERROR; ++ warn(); ++ goto cleanup; ++ } ++ ++ counter = 0; ++ move = DOWN; ++ p = node; ++ while (1) ++ { ++ tag_len = 0; ++ inner_tag_len = 0; ++ ris = ASN1_SUCCESS; ++ if (move != UP) ++ { ++ if (p->type & CONST_SET) ++ { ++ p2 = _asn1_find_up (p); ++ len2 = p2->tmp_ival; ++ if (len2 == -1) ++ { ++ if (HAVE_TWO(ider_len) && !der[counter] && !der[counter + 1]) ++ { ++ p = p2; ++ move = UP; ++ counter += 2; ++ DECR_LEN(ider_len, 2); ++ continue; ++ } ++ } ++ else if (counter == len2) ++ { ++ p = p2; ++ move = UP; ++ continue; ++ } ++ else if (counter > len2) ++ { ++ result = ASN1_DER_ERROR; ++ warn(); ++ goto cleanup; ++ } ++ p2 = p2->down; ++ while (p2) ++ { ++ if ((p2->type & CONST_SET) && (p2->type & CONST_NOT_USED)) ++ { ++ ris = ++ extract_tag_der_recursive (p2, der + counter, ++ ider_len, &len2, NULL, flags); ++ if (ris == ASN1_SUCCESS) ++ { ++ p2->type &= ~CONST_NOT_USED; ++ p = p2; ++ break; ++ } ++ } ++ p2 = p2->right; ++ } ++ if (p2 == NULL) ++ { ++ result = ASN1_DER_ERROR; ++ warn(); ++ goto cleanup; ++ } ++ } ++ ++ /* the position in the DER structure this starts */ ++ p->start = counter; ++ p->end = total_len - 1; ++ ++ if ((p->type & CONST_OPTION) || (p->type & CONST_DEFAULT)) ++ { ++ p2 = _asn1_find_up (p); ++ len2 = p2->tmp_ival; ++ if (counter == len2) ++ { ++ if (p->right) ++ { ++ p2 = p->right; ++ move = RIGHT; ++ } ++ else ++ move = UP; ++ ++ if (p->type & CONST_OPTION) ++ asn1_delete_structure (&p); ++ ++ p = p2; ++ continue; ++ } ++ } ++ ++ if (type_field (p->type) == ASN1_ETYPE_CHOICE) ++ { ++ while (p->down) ++ { ++ ris = ++ extract_tag_der_recursive (p->down, der + counter, ++ ider_len, &len2, NULL, flags); ++ ++ if (ris == ASN1_SUCCESS) ++ { ++ delete_unneeded_choice_fields(p->down); ++ break; ++ } ++ else if (ris == ASN1_ERROR_TYPE_ANY) ++ { ++ result = ASN1_ERROR_TYPE_ANY; ++ warn(); ++ goto cleanup; ++ } ++ else ++ { ++ p2 = p->down; ++ asn1_delete_structure (&p2); ++ } ++ } ++ ++ if (p->down == NULL) ++ { ++ if (!(p->type & CONST_OPTION)) ++ { ++ result = ASN1_DER_ERROR; ++ warn(); ++ goto cleanup; ++ } ++ } ++ else if (type_field (p->type) != ASN1_ETYPE_CHOICE) ++ p = p->down; ++ ++ p->start = counter; ++ } ++ ++ if ((p->type & CONST_OPTION) || (p->type & CONST_DEFAULT)) ++ { ++ p2 = _asn1_find_up (p); ++ len2 = p2->tmp_ival; ++ ++ if ((len2 != -1) && (counter > len2)) ++ ris = ASN1_TAG_ERROR; ++ } ++ ++ if (ris == ASN1_SUCCESS) ++ ris = ++ extract_tag_der_recursive (p, der + counter, ider_len, ++ &tag_len, &inner_tag_len, flags); ++ ++ if (ris != ASN1_SUCCESS) ++ { ++ if (p->type & CONST_OPTION) ++ { ++ p->type |= CONST_NOT_USED; ++ move = RIGHT; ++ } ++ else if (p->type & CONST_DEFAULT) ++ { ++ _asn1_set_value (p, NULL, 0); ++ move = RIGHT; ++ } ++ else ++ { ++ if (errorDescription != NULL) ++ _asn1_error_description_tag_error (p, errorDescription); ++ ++ result = ASN1_TAG_ERROR; ++ warn(); ++ goto cleanup; ++ } ++ } ++ else ++ { ++ DECR_LEN(ider_len, tag_len); ++ counter += tag_len; ++ } ++ } ++ ++ if (ris == ASN1_SUCCESS) ++ { ++ switch (type_field (p->type)) ++ { ++ case ASN1_ETYPE_NULL: ++ DECR_LEN(ider_len, 1); ++ if (der[counter]) ++ { ++ result = ASN1_DER_ERROR; ++ warn(); ++ goto cleanup; ++ } ++ counter++; ++ move = RIGHT; ++ break; ++ case ASN1_ETYPE_BOOLEAN: ++ DECR_LEN(ider_len, 2); ++ ++ if (der[counter++] != 1) ++ { ++ result = ASN1_DER_ERROR; ++ warn(); ++ goto cleanup; ++ } ++ if (der[counter++] == 0) ++ _asn1_set_value (p, "F", 1); ++ else ++ _asn1_set_value (p, "T", 1); ++ move = RIGHT; ++ break; ++ case ASN1_ETYPE_INTEGER: ++ case ASN1_ETYPE_ENUMERATED: ++ len2 = ++ asn1_get_length_der (der + counter, ider_len, &len3); ++ if (len2 < 0) ++ { ++ result = ASN1_DER_ERROR; ++ warn(); ++ goto cleanup; ++ } ++ ++ DECR_LEN(ider_len, len3+len2); ++ ++ _asn1_set_value (p, der + counter, len3 + len2); ++ counter += len3 + len2; ++ move = RIGHT; ++ break; ++ case ASN1_ETYPE_OBJECT_ID: ++ result = ++ asn1_get_object_id_der (der + counter, ider_len, &len2, ++ temp, sizeof (temp)); ++ if (result != ASN1_SUCCESS) ++ { ++ warn(); ++ goto cleanup; ++ } ++ ++ DECR_LEN(ider_len, len2); ++ ++ tlen = strlen (temp); ++ if (tlen > 0) ++ _asn1_set_value (p, temp, tlen + 1); ++ ++ counter += len2; ++ move = RIGHT; ++ break; ++ case ASN1_ETYPE_GENERALIZED_TIME: ++ case ASN1_ETYPE_UTC_TIME: ++ result = ++ _asn1_get_time_der (type_field (p->type), der + counter, ider_len, &len2, temp, ++ sizeof (temp) - 1, flags); ++ if (result != ASN1_SUCCESS) ++ { ++ warn(); ++ goto cleanup; ++ } ++ ++ DECR_LEN(ider_len, len2); ++ ++ tlen = strlen (temp); ++ if (tlen > 0) ++ _asn1_set_value (p, temp, tlen); ++ ++ counter += len2; ++ move = RIGHT; ++ break; ++ case ASN1_ETYPE_OCTET_STRING: ++ if (counter < inner_tag_len) ++ { ++ result = ASN1_DER_ERROR; ++ warn(); ++ goto cleanup; ++ } ++ ++ ptag = der + counter - inner_tag_len; ++ if ((flags & ASN1_DECODE_FLAG_STRICT_DER) || !(ptag[0] & ASN1_CLASS_STRUCTURED)) ++ { ++ if (ptag[0] & ASN1_CLASS_STRUCTURED) ++ { ++ result = ASN1_DER_ERROR; ++ warn(); ++ goto cleanup; ++ } ++ ++ len2 = ++ asn1_get_length_der (der + counter, ider_len, &len3); ++ if (len2 < 0) ++ { ++ result = ASN1_DER_ERROR; ++ warn(); ++ goto cleanup; ++ } ++ ++ DECR_LEN(ider_len, len3+len2); ++ ++ _asn1_set_value (p, der + counter, len3 + len2); ++ counter += len3 + len2; ++ } ++ else ++ { ++ unsigned dflags = 0, vlen, ber_len; ++ ++ if (ptag[0] & ASN1_CLASS_STRUCTURED) ++ dflags |= DECODE_FLAG_CONSTRUCTED; ++ ++ result = _asn1_decode_simple_ber(type_field (p->type), der+counter, ider_len, &ptmp, &vlen, &ber_len, dflags); ++ if (result != ASN1_SUCCESS) ++ { ++ warn(); ++ goto cleanup; ++ } ++ ++ DECR_LEN(ider_len, ber_len); ++ ++ _asn1_set_value_lv (p, ptmp, vlen); ++ ++ counter += ber_len; ++ free(ptmp); ++ } ++ move = RIGHT; ++ break; ++ case ASN1_ETYPE_GENERALSTRING: ++ case ASN1_ETYPE_NUMERIC_STRING: ++ case ASN1_ETYPE_IA5_STRING: ++ case ASN1_ETYPE_TELETEX_STRING: ++ case ASN1_ETYPE_PRINTABLE_STRING: ++ case ASN1_ETYPE_UNIVERSAL_STRING: ++ case ASN1_ETYPE_BMP_STRING: ++ case ASN1_ETYPE_UTF8_STRING: ++ case ASN1_ETYPE_VISIBLE_STRING: ++ case ASN1_ETYPE_BIT_STRING: ++ len2 = ++ asn1_get_length_der (der + counter, ider_len, &len3); ++ if (len2 < 0) ++ { ++ result = ASN1_DER_ERROR; ++ warn(); ++ goto cleanup; ++ } ++ ++ DECR_LEN(ider_len, len3+len2); ++ ++ _asn1_set_value (p, der + counter, len3 + len2); ++ counter += len3 + len2; ++ move = RIGHT; ++ break; ++ case ASN1_ETYPE_SEQUENCE: ++ case ASN1_ETYPE_SET: ++ if (move == UP) ++ { ++ len2 = p->tmp_ival; ++ p->tmp_ival = 0; ++ if (len2 == -1) ++ { /* indefinite length method */ ++ DECR_LEN(ider_len, 2); ++ if ((der[counter]) || der[counter + 1]) ++ { ++ result = ASN1_DER_ERROR; ++ warn(); ++ goto cleanup; ++ } ++ counter += 2; ++ } ++ else ++ { /* definite length method */ ++ if (len2 != counter) ++ { ++ result = ASN1_DER_ERROR; ++ warn(); ++ goto cleanup; ++ } ++ } ++ move = RIGHT; ++ } ++ else ++ { /* move==DOWN || move==RIGHT */ ++ len3 = ++ asn1_get_length_der (der + counter, ider_len, &len2); ++ if (IS_ERR(len3, flags)) ++ { ++ result = ASN1_DER_ERROR; ++ warn(); ++ goto cleanup; ++ } ++ ++ DECR_LEN(ider_len, len2); ++ counter += len2; ++ ++ if (len3 > 0) ++ { ++ p->tmp_ival = counter + len3; ++ move = DOWN; ++ } ++ else if (len3 == 0) ++ { ++ p2 = p->down; ++ while (p2) ++ { ++ if (type_field (p2->type) != ASN1_ETYPE_TAG) ++ { ++ p3 = p2->right; ++ asn1_delete_structure (&p2); ++ p2 = p3; ++ } ++ else ++ p2 = p2->right; ++ } ++ move = RIGHT; ++ } ++ else ++ { /* indefinite length method */ ++ p->tmp_ival = -1; ++ move = DOWN; ++ } ++ } ++ break; ++ case ASN1_ETYPE_SEQUENCE_OF: ++ case ASN1_ETYPE_SET_OF: ++ if (move == UP) ++ { ++ len2 = p->tmp_ival; ++ if (len2 == -1) ++ { /* indefinite length method */ ++ if (!HAVE_TWO(ider_len) || ((der[counter]) || der[counter + 1])) ++ { ++ result = _asn1_append_sequence_set (p, &tcache); ++ if (result != 0) ++ { ++ warn(); ++ goto cleanup; ++ } ++ p = tcache.tail; ++ move = RIGHT; ++ continue; ++ } ++ ++ p->tmp_ival = 0; ++ tcache.tail = NULL; /* finished decoding this structure */ ++ tcache.head = NULL; ++ DECR_LEN(ider_len, 2); ++ counter += 2; ++ } ++ else ++ { /* definite length method */ ++ if (len2 > counter) ++ { ++ result = _asn1_append_sequence_set (p, &tcache); ++ if (result != 0) ++ { ++ warn(); ++ goto cleanup; ++ } ++ p = tcache.tail; ++ move = RIGHT; ++ continue; ++ } ++ ++ p->tmp_ival = 0; ++ tcache.tail = NULL; /* finished decoding this structure */ ++ tcache.head = NULL; ++ ++ if (len2 != counter) ++ { ++ result = ASN1_DER_ERROR; ++ warn(); ++ goto cleanup; ++ } ++ } ++ } ++ else ++ { /* move==DOWN || move==RIGHT */ ++ len3 = ++ asn1_get_length_der (der + counter, ider_len, &len2); ++ if (IS_ERR(len3, flags)) ++ { ++ result = ASN1_DER_ERROR; ++ warn(); ++ goto cleanup; ++ } ++ ++ DECR_LEN(ider_len, len2); ++ counter += len2; ++ if (len3) ++ { ++ if (len3 > 0) ++ { /* definite length method */ ++ p->tmp_ival = counter + len3; ++ } ++ else ++ { /* indefinite length method */ ++ p->tmp_ival = -1; ++ } ++ ++ p2 = p->down; ++ if (p2 == NULL) ++ { ++ result = ASN1_DER_ERROR; ++ warn(); ++ goto cleanup; ++ } ++ ++ while ((type_field (p2->type) == ASN1_ETYPE_TAG) ++ || (type_field (p2->type) == ASN1_ETYPE_SIZE)) ++ p2 = p2->right; ++ if (p2->right == NULL) ++ { ++ result = _asn1_append_sequence_set (p, &tcache); ++ if (result != 0) ++ { ++ warn(); ++ goto cleanup; ++ } ++ } ++ p = p2; ++ } ++ } ++ move = RIGHT; ++ break; ++ case ASN1_ETYPE_ANY: ++ /* Check indefinite lenth method in an EXPLICIT TAG */ ++ ++ if (!(flags & ASN1_DECODE_FLAG_STRICT_DER) && (p->type & CONST_TAG) && ++ tag_len == 2 && (der[counter - 1] == 0x80)) ++ indefinite = 1; ++ else ++ indefinite = 0; ++ ++ if (asn1_get_tag_der ++ (der + counter, ider_len, &class, &len2, ++ &tag) != ASN1_SUCCESS) ++ { ++ result = ASN1_DER_ERROR; ++ warn(); ++ goto cleanup; ++ } ++ ++ DECR_LEN(ider_len, len2); ++ ++ len4 = ++ asn1_get_length_der (der + counter + len2, ++ ider_len, &len3); ++ if (IS_ERR(len4, flags)) ++ { ++ result = ASN1_DER_ERROR; ++ warn(); ++ goto cleanup; ++ } ++ if (len4 != -1) /* definite */ ++ { ++ len2 += len4; ++ ++ DECR_LEN(ider_len, len4+len3); ++ _asn1_set_value_lv (p, der + counter, len2 + len3); ++ counter += len2 + len3; ++ } ++ else /* == -1 */ ++ { /* indefinite length */ ++ ider_len += len2; /* undo DECR_LEN */ ++ ++ if (counter == 0) ++ { ++ result = ASN1_DER_ERROR; ++ warn(); ++ goto cleanup; ++ } ++ ++ result = ++ _asn1_get_indefinite_length_string (der + counter, ider_len, &len2); ++ if (result != ASN1_SUCCESS) ++ { ++ warn(); ++ goto cleanup; ++ } ++ ++ DECR_LEN(ider_len, len2); ++ _asn1_set_value_lv (p, der + counter, len2); ++ counter += len2; ++ ++ } ++ ++ /* Check if a couple of 0x00 are present due to an EXPLICIT TAG with ++ an indefinite length method. */ ++ if (indefinite) ++ { ++ DECR_LEN(ider_len, 2); ++ if (!der[counter] && !der[counter + 1]) ++ { ++ counter += 2; ++ } ++ else ++ { ++ result = ASN1_DER_ERROR; ++ warn(); ++ goto cleanup; ++ } ++ } ++ ++ move = RIGHT; ++ break; ++ default: ++ move = (move == UP) ? RIGHT : DOWN; ++ break; ++ } ++ } ++ ++ if (p) ++ { ++ p->end = counter - 1; ++ } ++ ++ if (p == node && move != DOWN) ++ break; ++ ++ if (move == DOWN) ++ { ++ if (p->down) ++ p = p->down; ++ else ++ move = RIGHT; ++ } ++ if ((move == RIGHT) && !(p->type & CONST_SET)) ++ { ++ if (p->right) ++ p = p->right; ++ else ++ move = UP; ++ } ++ if (move == UP) ++ p = _asn1_find_up (p); ++ } ++ ++ _asn1_delete_not_used (*element); ++ ++ if ((ider_len < 0) || ++ (!(flags & ASN1_DECODE_FLAG_ALLOW_PADDING) && (ider_len != 0))) ++ { ++ warn(); ++ result = ASN1_DER_ERROR; ++ goto cleanup; ++ } ++ ++ *max_ider_len = total_len - ider_len; ++ ++ return ASN1_SUCCESS; ++ ++cleanup: ++ asn1_delete_structure (element); ++ return result; ++} ++ ++ ++/** ++ * asn1_der_decoding: ++ * @element: pointer to an ASN1 structure. ++ * @ider: vector that contains the DER encoding. ++ * @ider_len: number of bytes of *@ider: @ider[0]..@ider[len-1]. ++ * @errorDescription: null-terminated string contains details when an ++ * error occurred. ++ * ++ * Fill the structure *@element with values of a DER encoding ++ * string. The structure must just be created with function ++ * asn1_create_element(). ++ * ++ * Note that the *@element variable is provided as a pointer for ++ * historical reasons. ++ * ++ * Returns: %ASN1_SUCCESS if DER encoding OK, %ASN1_ELEMENT_NOT_FOUND ++ * if @ELEMENT is %NULL, and %ASN1_TAG_ERROR or ++ * %ASN1_DER_ERROR if the der encoding doesn't match the structure ++ * name (*@ELEMENT deleted). ++ **/ ++int ++asn1_der_decoding (asn1_node * element, const void *ider, int ider_len, ++ char *errorDescription) ++{ ++ return asn1_der_decoding2 (element, ider, &ider_len, 0, errorDescription); ++} ++ ++/** ++ * asn1_der_decoding_element: ++ * @structure: pointer to an ASN1 structure ++ * @elementName: name of the element to fill ++ * @ider: vector that contains the DER encoding of the whole structure. ++ * @len: number of bytes of *der: der[0]..der[len-1] ++ * @errorDescription: null-terminated string contains details when an ++ * error occurred. ++ * ++ * Fill the element named @ELEMENTNAME with values of a DER encoding ++ * string. The structure must just be created with function ++ * asn1_create_element(). The DER vector must contain the encoding ++ * string of the whole @STRUCTURE. If an error occurs during the ++ * decoding procedure, the *@STRUCTURE is deleted and set equal to ++ * %NULL. ++ * ++ * This function is deprecated and may just be an alias to asn1_der_decoding ++ * in future versions. Use asn1_der_decoding() instead. ++ * ++ * Returns: %ASN1_SUCCESS if DER encoding OK, %ASN1_ELEMENT_NOT_FOUND ++ * if ELEMENT is %NULL or @elementName == NULL, and ++ * %ASN1_TAG_ERROR or %ASN1_DER_ERROR if the der encoding doesn't ++ * match the structure @structure (*ELEMENT deleted). ++ **/ ++int ++asn1_der_decoding_element (asn1_node * structure, const char *elementName, ++ const void *ider, int len, char *errorDescription) ++{ ++ return asn1_der_decoding(structure, ider, len, errorDescription); ++} ++ ++/** ++ * asn1_der_decoding_startEnd: ++ * @element: pointer to an ASN1 element ++ * @ider: vector that contains the DER encoding. ++ * @ider_len: number of bytes of *@ider: @ider[0]..@ider[len-1] ++ * @name_element: an element of NAME structure. ++ * @start: the position of the first byte of NAME_ELEMENT decoding ++ * (@ider[*start]) ++ * @end: the position of the last byte of NAME_ELEMENT decoding ++ * (@ider[*end]) ++ * ++ * Find the start and end point of an element in a DER encoding ++ * string. I mean that if you have a der encoding and you have already ++ * used the function asn1_der_decoding() to fill a structure, it may ++ * happen that you want to find the piece of string concerning an ++ * element of the structure. ++ * ++ * One example is the sequence "tbsCertificate" inside an X509 ++ * certificate. ++ * ++ * Note that since libtasn1 3.7 the @ider and @ider_len parameters ++ * can be omitted, if the element is already decoded using asn1_der_decoding(). ++ * ++ * Returns: %ASN1_SUCCESS if DER encoding OK, %ASN1_ELEMENT_NOT_FOUND ++ * if ELEMENT is %asn1_node EMPTY or @name_element is not a valid ++ * element, %ASN1_TAG_ERROR or %ASN1_DER_ERROR if the der encoding ++ * doesn't match the structure ELEMENT. ++ **/ ++int ++asn1_der_decoding_startEnd (asn1_node element, const void *ider, int ider_len, ++ const char *name_element, int *start, int *end) ++{ ++ asn1_node node, node_to_find; ++ int result = ASN1_DER_ERROR; ++ ++ node = element; ++ ++ if (node == NULL) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ node_to_find = asn1_find_node (node, name_element); ++ ++ if (node_to_find == NULL) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ *start = node_to_find->start; ++ *end = node_to_find->end; ++ ++ if (*start == 0 && *end == 0) ++ { ++ if (ider == NULL || ider_len == 0) ++ return ASN1_GENERIC_ERROR; ++ ++ /* it seems asn1_der_decoding() wasn't called before. Do it now */ ++ result = asn1_der_decoding (&node, ider, ider_len, NULL); ++ if (result != ASN1_SUCCESS) ++ { ++ warn(); ++ return result; ++ } ++ ++ node_to_find = asn1_find_node (node, name_element); ++ if (node_to_find == NULL) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ *start = node_to_find->start; ++ *end = node_to_find->end; ++ } ++ ++ if (*end < *start) ++ return ASN1_GENERIC_ERROR; ++ ++ return ASN1_SUCCESS; ++} ++ ++/** ++ * asn1_expand_any_defined_by: ++ * @definitions: ASN1 definitions ++ * @element: pointer to an ASN1 structure ++ * ++ * Expands every "ANY DEFINED BY" element of a structure created from ++ * a DER decoding process (asn1_der_decoding function). The element ++ * ANY must be defined by an OBJECT IDENTIFIER. The type used to ++ * expand the element ANY is the first one following the definition of ++ * the actual value of the OBJECT IDENTIFIER. ++ * ++ * Returns: %ASN1_SUCCESS if Substitution OK, %ASN1_ERROR_TYPE_ANY if ++ * some "ANY DEFINED BY" element couldn't be expanded due to a ++ * problem in OBJECT_ID -> TYPE association, or other error codes ++ * depending on DER decoding. ++ **/ ++int ++asn1_expand_any_defined_by (asn1_node_const definitions, asn1_node * element) ++{ ++ char name[2 * ASN1_MAX_NAME_SIZE + 2], ++ value[ASN1_MAX_NAME_SIZE]; ++ int retCode = ASN1_SUCCESS, result; ++ int len, len2, len3; ++ asn1_node_const p2; ++ asn1_node p, p3, aux = NULL; ++ char errorDescription[ASN1_MAX_ERROR_DESCRIPTION_SIZE]; ++ const char *definitionsName; ++ ++ if ((definitions == NULL) || (*element == NULL)) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ definitionsName = definitions->name; ++ ++ p = *element; ++ while (p) ++ { ++ ++ switch (type_field (p->type)) ++ { ++ case ASN1_ETYPE_ANY: ++ if ((p->type & CONST_DEFINED_BY) && (p->value)) ++ { ++ /* search the "DEF_BY" element */ ++ p2 = p->down; ++ while ((p2) && (type_field (p2->type) != ASN1_ETYPE_CONSTANT)) ++ p2 = p2->right; ++ ++ if (!p2) ++ { ++ retCode = ASN1_ERROR_TYPE_ANY; ++ break; ++ } ++ ++ p3 = _asn1_find_up (p); ++ ++ if (!p3) ++ { ++ retCode = ASN1_ERROR_TYPE_ANY; ++ break; ++ } ++ ++ p3 = p3->down; ++ while (p3) ++ { ++ if (!(strcmp (p3->name, p2->name))) ++ break; ++ p3 = p3->right; ++ } ++ ++ if ((!p3) || (type_field (p3->type) != ASN1_ETYPE_OBJECT_ID) || ++ (p3->value == NULL)) ++ { ++ ++ p3 = _asn1_find_up (p); ++ p3 = _asn1_find_up (p3); ++ ++ if (!p3) ++ { ++ retCode = ASN1_ERROR_TYPE_ANY; ++ break; ++ } ++ ++ p3 = p3->down; ++ ++ while (p3) ++ { ++ if (!(strcmp (p3->name, p2->name))) ++ break; ++ p3 = p3->right; ++ } ++ ++ if ((!p3) || (type_field (p3->type) != ASN1_ETYPE_OBJECT_ID) ++ || (p3->value == NULL)) ++ { ++ retCode = ASN1_ERROR_TYPE_ANY; ++ break; ++ } ++ } ++ ++ /* search the OBJECT_ID into definitions */ ++ p2 = definitions->down; ++ while (p2) ++ { ++ if ((type_field (p2->type) == ASN1_ETYPE_OBJECT_ID) && ++ (p2->type & CONST_ASSIGN)) ++ { ++ snprintf(name, sizeof(name), "%s.%s", definitionsName, p2->name); ++ ++ len = ASN1_MAX_NAME_SIZE; ++ result = ++ asn1_read_value (definitions, name, value, &len); ++ ++ if ((result == ASN1_SUCCESS) ++ && (!_asn1_strcmp (p3->value, value))) ++ { ++ p2 = p2->right; /* pointer to the structure to ++ use for expansion */ ++ while ((p2) && (p2->type & CONST_ASSIGN)) ++ p2 = p2->right; ++ ++ if (p2) ++ { ++ snprintf(name, sizeof(name), "%s.%s", definitionsName, p2->name); ++ ++ result = ++ asn1_create_element (definitions, name, &aux); ++ if (result == ASN1_SUCCESS) ++ { ++ _asn1_cpy_name (aux, p); ++ len2 = ++ asn1_get_length_der (p->value, ++ p->value_len, &len3); ++ if (len2 < 0) ++ return ASN1_DER_ERROR; ++ ++ result = ++ asn1_der_decoding (&aux, p->value + len3, ++ len2, ++ errorDescription); ++ if (result == ASN1_SUCCESS) ++ { ++ ++ _asn1_set_right (aux, p->right); ++ _asn1_set_right (p, aux); ++ ++ result = asn1_delete_structure (&p); ++ if (result == ASN1_SUCCESS) ++ { ++ p = aux; ++ aux = NULL; ++ break; ++ } ++ else ++ { /* error with asn1_delete_structure */ ++ asn1_delete_structure (&aux); ++ retCode = result; ++ break; ++ } ++ } ++ else ++ { /* error with asn1_der_decoding */ ++ retCode = result; ++ break; ++ } ++ } ++ else ++ { /* error with asn1_create_element */ ++ retCode = result; ++ break; ++ } ++ } ++ else ++ { /* error with the pointer to the structure to exapand */ ++ retCode = ASN1_ERROR_TYPE_ANY; ++ break; ++ } ++ } ++ } ++ p2 = p2->right; ++ } /* end while */ ++ ++ if (!p2) ++ { ++ retCode = ASN1_ERROR_TYPE_ANY; ++ break; ++ } ++ ++ } ++ break; ++ default: ++ break; ++ } ++ ++ ++ if (p->down) ++ { ++ p = p->down; ++ } ++ else if (p == *element) ++ { ++ p = NULL; ++ break; ++ } ++ else if (p->right) ++ p = p->right; ++ else ++ { ++ while (1) ++ { ++ p = _asn1_find_up (p); ++ if (p == *element) ++ { ++ p = NULL; ++ break; ++ } ++ if (p->right) ++ { ++ p = p->right; ++ break; ++ } ++ } ++ } ++ } ++ ++ return retCode; ++} ++ ++/** ++ * asn1_expand_octet_string: ++ * @definitions: ASN1 definitions ++ * @element: pointer to an ASN1 structure ++ * @octetName: name of the OCTECT STRING field to expand. ++ * @objectName: name of the OBJECT IDENTIFIER field to use to define ++ * the type for expansion. ++ * ++ * Expands an "OCTET STRING" element of a structure created from a DER ++ * decoding process (the asn1_der_decoding() function). The type used ++ * for expansion is the first one following the definition of the ++ * actual value of the OBJECT IDENTIFIER indicated by OBJECTNAME. ++ * ++ * Returns: %ASN1_SUCCESS if substitution OK, %ASN1_ELEMENT_NOT_FOUND ++ * if @objectName or @octetName are not correct, ++ * %ASN1_VALUE_NOT_VALID if it wasn't possible to find the type to ++ * use for expansion, or other errors depending on DER decoding. ++ **/ ++int ++asn1_expand_octet_string (asn1_node_const definitions, asn1_node * element, ++ const char *octetName, const char *objectName) ++{ ++ char name[2 * ASN1_MAX_NAME_SIZE + 1], value[ASN1_MAX_NAME_SIZE]; ++ int retCode = ASN1_SUCCESS, result; ++ int len, len2, len3; ++ asn1_node_const p2; ++ asn1_node aux = NULL; ++ asn1_node octetNode = NULL, objectNode = NULL; ++ char errorDescription[ASN1_MAX_ERROR_DESCRIPTION_SIZE]; ++ ++ if ((definitions == NULL) || (*element == NULL)) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ octetNode = asn1_find_node (*element, octetName); ++ if (octetNode == NULL) ++ return ASN1_ELEMENT_NOT_FOUND; ++ if (type_field (octetNode->type) != ASN1_ETYPE_OCTET_STRING) ++ return ASN1_ELEMENT_NOT_FOUND; ++ if (octetNode->value == NULL) ++ return ASN1_VALUE_NOT_FOUND; ++ ++ objectNode = asn1_find_node (*element, objectName); ++ if (objectNode == NULL) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ if (type_field (objectNode->type) != ASN1_ETYPE_OBJECT_ID) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ if (objectNode->value == NULL) ++ return ASN1_VALUE_NOT_FOUND; ++ ++ ++ /* search the OBJECT_ID into definitions */ ++ p2 = definitions->down; ++ while (p2) ++ { ++ if ((type_field (p2->type) == ASN1_ETYPE_OBJECT_ID) && ++ (p2->type & CONST_ASSIGN)) ++ { ++ strcpy (name, definitions->name); ++ strcat (name, "."); ++ strcat (name, p2->name); ++ ++ len = sizeof (value); ++ result = asn1_read_value (definitions, name, value, &len); ++ ++ if ((result == ASN1_SUCCESS) ++ && (!_asn1_strcmp (objectNode->value, value))) ++ { ++ ++ p2 = p2->right; /* pointer to the structure to ++ use for expansion */ ++ while ((p2) && (p2->type & CONST_ASSIGN)) ++ p2 = p2->right; ++ ++ if (p2) ++ { ++ strcpy (name, definitions->name); ++ strcat (name, "."); ++ strcat (name, p2->name); ++ ++ result = asn1_create_element (definitions, name, &aux); ++ if (result == ASN1_SUCCESS) ++ { ++ _asn1_cpy_name (aux, octetNode); ++ len2 = ++ asn1_get_length_der (octetNode->value, ++ octetNode->value_len, &len3); ++ if (len2 < 0) ++ return ASN1_DER_ERROR; ++ ++ result = ++ asn1_der_decoding (&aux, octetNode->value + len3, ++ len2, errorDescription); ++ if (result == ASN1_SUCCESS) ++ { ++ ++ _asn1_set_right (aux, octetNode->right); ++ _asn1_set_right (octetNode, aux); ++ ++ result = asn1_delete_structure (&octetNode); ++ if (result == ASN1_SUCCESS) ++ { ++ aux = NULL; ++ break; ++ } ++ else ++ { /* error with asn1_delete_structure */ ++ asn1_delete_structure (&aux); ++ retCode = result; ++ break; ++ } ++ } ++ else ++ { /* error with asn1_der_decoding */ ++ retCode = result; ++ break; ++ } ++ } ++ else ++ { /* error with asn1_create_element */ ++ retCode = result; ++ break; ++ } ++ } ++ else ++ { /* error with the pointer to the structure to exapand */ ++ retCode = ASN1_VALUE_NOT_VALID; ++ break; ++ } ++ } ++ } ++ ++ p2 = p2->right; ++ ++ } ++ ++ if (!p2) ++ retCode = ASN1_VALUE_NOT_VALID; ++ ++ return retCode; ++} ++ ++/*- ++ * _asn1_decode_simple_der: ++ * @etype: The type of the string to be encoded (ASN1_ETYPE_) ++ * @der: the encoded string ++ * @_der_len: the bytes of the encoded string ++ * @str: a pointer to the data ++ * @str_len: the length of the data ++ * @dflags: DECODE_FLAG_* ++ * ++ * Decodes a simple DER encoded type (e.g. a string, which is not constructed). ++ * The output is a pointer inside the @der. ++ * ++ * Returns: %ASN1_SUCCESS if successful or an error value. ++ -*/ ++static int ++_asn1_decode_simple_der (unsigned int etype, const unsigned char *der, ++ unsigned int _der_len, const unsigned char **str, ++ unsigned int *str_len, unsigned dflags) ++{ ++ int tag_len, len_len; ++ const unsigned char *p; ++ int der_len = _der_len; ++ unsigned char class; ++ unsigned long tag; ++ long ret; ++ ++ if (der == NULL || der_len == 0) ++ return ASN1_VALUE_NOT_VALID; ++ ++ if (ETYPE_OK (etype) == 0 || ETYPE_IS_STRING(etype) == 0) ++ return ASN1_VALUE_NOT_VALID; ++ ++ /* doesn't handle constructed classes */ ++ class = ETYPE_CLASS(etype); ++ if (class != ASN1_CLASS_UNIVERSAL) ++ return ASN1_VALUE_NOT_VALID; ++ ++ p = der; ++ ++ if (dflags & DECODE_FLAG_HAVE_TAG) ++ { ++ ret = asn1_get_tag_der (p, der_len, &class, &tag_len, &tag); ++ if (ret != ASN1_SUCCESS) ++ return ret; ++ ++ if (class != ETYPE_CLASS (etype) || tag != ETYPE_TAG (etype)) ++ { ++ warn(); ++ return ASN1_DER_ERROR; ++ } ++ ++ p += tag_len; ++ der_len -= tag_len; ++ if (der_len <= 0) ++ return ASN1_DER_ERROR; ++ } ++ ++ ret = asn1_get_length_der (p, der_len, &len_len); ++ if (ret < 0) ++ return ASN1_DER_ERROR; ++ ++ p += len_len; ++ der_len -= len_len; ++ if (der_len <= 0) ++ return ASN1_DER_ERROR; ++ ++ *str_len = ret; ++ *str = p; ++ ++ return ASN1_SUCCESS; ++} ++ ++/** ++ * asn1_decode_simple_der: ++ * @etype: The type of the string to be encoded (ASN1_ETYPE_) ++ * @der: the encoded string ++ * @_der_len: the bytes of the encoded string ++ * @str: a pointer to the data ++ * @str_len: the length of the data ++ * ++ * Decodes a simple DER encoded type (e.g. a string, which is not constructed). ++ * The output is a pointer inside the @der. ++ * ++ * Returns: %ASN1_SUCCESS if successful or an error value. ++ **/ ++int ++asn1_decode_simple_der (unsigned int etype, const unsigned char *der, ++ unsigned int _der_len, const unsigned char **str, ++ unsigned int *str_len) ++{ ++ return _asn1_decode_simple_der(etype, der, _der_len, str, str_len, DECODE_FLAG_HAVE_TAG); ++} ++ ++static int append(uint8_t **dst, unsigned *dst_size, const unsigned char *src, unsigned src_size) ++{ ++ if (src_size == 0) ++ return ASN1_SUCCESS; ++ ++ *dst = _asn1_realloc(*dst, *dst_size+src_size); ++ if (*dst == NULL) ++ return ASN1_MEM_ALLOC_ERROR; ++ memcpy(*dst + *dst_size, src, src_size); ++ *dst_size += src_size; ++ return ASN1_SUCCESS; ++} ++ ++/*- ++ * _asn1_decode_simple_ber: ++ * @etype: The type of the string to be encoded (ASN1_ETYPE_) ++ * @der: the encoded string ++ * @_der_len: the bytes of the encoded string ++ * @str: a pointer to the data ++ * @str_len: the length of the data ++ * @ber_len: the total length occupied by BER (may be %NULL) ++ * @have_tag: whether a DER tag is included ++ * ++ * Decodes a BER encoded type. The output is an allocated value ++ * of the data. This decodes BER STRINGS only. Other types are ++ * decoded as DER. ++ * ++ * Returns: %ASN1_SUCCESS if successful or an error value. ++ -*/ ++static int ++_asn1_decode_simple_ber (unsigned int etype, const unsigned char *der, ++ unsigned int _der_len, unsigned char **str, ++ unsigned int *str_len, unsigned int *ber_len, ++ unsigned dflags) ++{ ++ int tag_len, len_len; ++ const unsigned char *p; ++ int der_len = _der_len; ++ uint8_t *total = NULL; ++ unsigned total_size = 0; ++ unsigned char class; ++ unsigned long tag; ++ unsigned char *out = NULL; ++ const unsigned char *cout = NULL; ++ unsigned out_len; ++ long result; ++ ++ if (ber_len) *ber_len = 0; ++ ++ if (der == NULL || der_len == 0) ++ { ++ warn(); ++ return ASN1_VALUE_NOT_VALID; ++ } ++ ++ if (ETYPE_OK (etype) == 0) ++ { ++ warn(); ++ return ASN1_VALUE_NOT_VALID; ++ } ++ ++ /* doesn't handle constructed + definite classes */ ++ class = ETYPE_CLASS (etype); ++ if (class != ASN1_CLASS_UNIVERSAL) ++ { ++ warn(); ++ return ASN1_VALUE_NOT_VALID; ++ } ++ ++ p = der; ++ ++ if (dflags & DECODE_FLAG_HAVE_TAG) ++ { ++ result = asn1_get_tag_der (p, der_len, &class, &tag_len, &tag); ++ if (result != ASN1_SUCCESS) ++ { ++ warn(); ++ return result; ++ } ++ ++ if (tag != ETYPE_TAG (etype)) ++ { ++ warn(); ++ return ASN1_DER_ERROR; ++ } ++ ++ p += tag_len; ++ ++ DECR_LEN(der_len, tag_len); ++ ++ if (ber_len) *ber_len += tag_len; ++ } ++ ++ /* indefinite constructed */ ++ if ((((dflags & DECODE_FLAG_CONSTRUCTED) || class == ASN1_CLASS_STRUCTURED) && ETYPE_IS_STRING(etype)) && ++ !(dflags & DECODE_FLAG_LEVEL3)) ++ { ++ if (der_len == 0) ++ { ++ warn(); ++ result = ASN1_DER_ERROR; ++ goto cleanup; ++ } ++ ++ if (der_len > 0 && p[0] == 0x80) /* indefinite */ ++ { ++ len_len = 1; ++ DECR_LEN(der_len, len_len); ++ p += len_len; ++ ++ if (ber_len) *ber_len += len_len; ++ ++ /* decode the available octet strings */ ++ do ++ { ++ unsigned tmp_len; ++ unsigned flags = DECODE_FLAG_HAVE_TAG; ++ ++ if (dflags & DECODE_FLAG_LEVEL1) ++ flags |= DECODE_FLAG_LEVEL2; ++ else if (dflags & DECODE_FLAG_LEVEL2) ++ flags |= DECODE_FLAG_LEVEL3; ++ else ++ flags |= DECODE_FLAG_LEVEL1; ++ ++ result = _asn1_decode_simple_ber(etype, p, der_len, &out, &out_len, &tmp_len, ++ flags); ++ if (result != ASN1_SUCCESS) ++ { ++ warn(); ++ goto cleanup; ++ } ++ ++ p += tmp_len; ++ DECR_LEN(der_len, tmp_len); ++ ++ if (ber_len) *ber_len += tmp_len; ++ ++ DECR_LEN(der_len, 2); /* we need the EOC */ ++ ++ result = append(&total, &total_size, out, out_len); ++ if (result != ASN1_SUCCESS) ++ { ++ warn(); ++ goto cleanup; ++ } ++ ++ free(out); ++ out = NULL; ++ ++ if (p[0] == 0 && p[1] == 0) /* EOC */ ++ { ++ if (ber_len) *ber_len += 2; ++ break; ++ } ++ ++ /* no EOC */ ++ der_len += 2; ++ ++ if (der_len == 2) ++ { ++ warn(); ++ result = ASN1_DER_ERROR; ++ goto cleanup; ++ } ++ } ++ while(1); ++ } ++ else /* constructed */ ++ { ++ long const_len; ++ ++ result = asn1_get_length_ber(p, der_len, &len_len); ++ if (result < 0) ++ { ++ warn(); ++ result = ASN1_DER_ERROR; ++ goto cleanup; ++ } ++ ++ DECR_LEN(der_len, len_len); ++ p += len_len; ++ ++ const_len = result; ++ ++ if (ber_len) *ber_len += len_len; ++ ++ /* decode the available octet strings */ ++ while(const_len > 0) ++ { ++ unsigned tmp_len; ++ unsigned flags = DECODE_FLAG_HAVE_TAG; ++ ++ if (dflags & DECODE_FLAG_LEVEL1) ++ flags |= DECODE_FLAG_LEVEL2; ++ else if (dflags & DECODE_FLAG_LEVEL2) ++ flags |= DECODE_FLAG_LEVEL3; ++ else ++ flags |= DECODE_FLAG_LEVEL1; ++ ++ result = _asn1_decode_simple_ber(etype, p, der_len, &out, &out_len, &tmp_len, ++ flags); ++ if (result != ASN1_SUCCESS) ++ { ++ warn(); ++ goto cleanup; ++ } ++ ++ p += tmp_len; ++ DECR_LEN(der_len, tmp_len); ++ DECR_LEN(const_len, tmp_len); ++ ++ if (ber_len) *ber_len += tmp_len; ++ ++ result = append(&total, &total_size, out, out_len); ++ if (result != ASN1_SUCCESS) ++ { ++ warn(); ++ goto cleanup; ++ } ++ ++ free(out); ++ out = NULL; ++ } ++ } ++ } ++ else if (class == ETYPE_CLASS(etype)) ++ { ++ if (ber_len) ++ { ++ result = asn1_get_length_der (p, der_len, &len_len); ++ if (result < 0) ++ { ++ warn(); ++ result = ASN1_DER_ERROR; ++ goto cleanup; ++ } ++ *ber_len += result + len_len; ++ } ++ ++ /* non-string values are decoded as DER */ ++ result = _asn1_decode_simple_der(etype, der, _der_len, &cout, &out_len, dflags); ++ if (result != ASN1_SUCCESS) ++ { ++ warn(); ++ goto cleanup; ++ } ++ ++ result = append(&total, &total_size, cout, out_len); ++ if (result != ASN1_SUCCESS) ++ { ++ warn(); ++ goto cleanup; ++ } ++ } ++ else ++ { ++ warn(); ++ result = ASN1_DER_ERROR; ++ goto cleanup; ++ } ++ ++ *str = total; ++ *str_len = total_size; ++ ++ return ASN1_SUCCESS; ++cleanup: ++ free(out); ++ free(total); ++ return result; ++} ++ ++/** ++ * asn1_decode_simple_ber: ++ * @etype: The type of the string to be encoded (ASN1_ETYPE_) ++ * @der: the encoded string ++ * @_der_len: the bytes of the encoded string ++ * @str: a pointer to the data ++ * @str_len: the length of the data ++ * @ber_len: the total length occupied by BER (may be %NULL) ++ * ++ * Decodes a BER encoded type. The output is an allocated value ++ * of the data. This decodes BER STRINGS only. Other types are ++ * decoded as DER. ++ * ++ * Returns: %ASN1_SUCCESS if successful or an error value. ++ **/ ++int ++asn1_decode_simple_ber (unsigned int etype, const unsigned char *der, ++ unsigned int _der_len, unsigned char **str, ++ unsigned int *str_len, unsigned int *ber_len) ++{ ++ return _asn1_decode_simple_ber(etype, der, _der_len, str, str_len, ber_len, DECODE_FLAG_HAVE_TAG); ++} +diff --git a/grub-core/lib/libtasn1/lib/element.c b/grub-core/lib/libtasn1/lib/element.c +new file mode 100644 +index 00000000000..997eb2725dc +--- /dev/null ++++ b/grub-core/lib/libtasn1/lib/element.c +@@ -0,0 +1,1111 @@ ++/* ++ * Copyright (C) 2000-2014 Free Software Foundation, Inc. ++ * ++ * This file is part of LIBTASN1. ++ * ++ * The LIBTASN1 library is free software; you can redistribute it ++ * and/or modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ++ * 02110-1301, USA ++ */ ++ ++/*****************************************************/ ++/* File: element.c */ ++/* Description: Functions with the read and write */ ++/* functions. */ ++/*****************************************************/ ++ ++ ++#include ++#include "parser_aux.h" ++#include ++#include "structure.h" ++#include "c-ctype.h" ++#include "element.h" ++ ++void ++_asn1_hierarchical_name (asn1_node_const node, char *name, int name_size) ++{ ++ asn1_node_const p; ++ char tmp_name[64]; ++ ++ p = node; ++ ++ name[0] = 0; ++ ++ while (p != NULL) ++ { ++ if (p->name[0] != 0) ++ { ++ _asn1_str_cpy (tmp_name, sizeof (tmp_name), name), ++ _asn1_str_cpy (name, name_size, p->name); ++ _asn1_str_cat (name, name_size, "."); ++ _asn1_str_cat (name, name_size, tmp_name); ++ } ++ p = _asn1_find_up (p); ++ } ++ ++ if (name[0] == 0) ++ _asn1_str_cpy (name, name_size, "ROOT"); ++} ++ ++ ++/******************************************************************/ ++/* Function : _asn1_convert_integer */ ++/* Description: converts an integer from a null terminated string */ ++/* to der decoding. The convertion from a null */ ++/* terminated string to an integer is made with */ ++/* the 'strtol' function. */ ++/* Parameters: */ ++/* value: null terminated string to convert. */ ++/* value_out: convertion result (memory must be already */ ++/* allocated). */ ++/* value_out_size: number of bytes of value_out. */ ++/* len: number of significant byte of value_out. */ ++/* Return: ASN1_MEM_ERROR or ASN1_SUCCESS */ ++/******************************************************************/ ++int ++_asn1_convert_integer (const unsigned char *value, unsigned char *value_out, ++ int value_out_size, int *len) ++{ ++ char negative; ++ unsigned char val[SIZEOF_UNSIGNED_LONG_INT]; ++ long valtmp; ++ int k, k2; ++ ++ valtmp = _asn1_strtol (value, NULL, 10); ++ ++ for (k = 0; k < SIZEOF_UNSIGNED_LONG_INT; k++) ++ { ++ val[SIZEOF_UNSIGNED_LONG_INT - k - 1] = (valtmp >> (8 * k)) & 0xFF; ++ } ++ ++ if (val[0] & 0x80) ++ negative = 1; ++ else ++ negative = 0; ++ ++ for (k = 0; k < SIZEOF_UNSIGNED_LONG_INT - 1; k++) ++ { ++ if (negative && (val[k] != 0xFF)) ++ break; ++ else if (!negative && val[k]) ++ break; ++ } ++ ++ if ((negative && !(val[k] & 0x80)) || (!negative && (val[k] & 0x80))) ++ k--; ++ ++ *len = SIZEOF_UNSIGNED_LONG_INT - k; ++ ++ if (SIZEOF_UNSIGNED_LONG_INT - k > value_out_size) ++ /* VALUE_OUT is too short to contain the value conversion */ ++ return ASN1_MEM_ERROR; ++ ++ if (value_out != NULL) ++ { ++ for (k2 = k; k2 < SIZEOF_UNSIGNED_LONG_INT; k2++) ++ value_out[k2 - k] = val[k2]; ++ } ++ ++#if 0 ++ printf ("_asn1_convert_integer: valueIn=%s, lenOut=%d", value, *len); ++ for (k = 0; k < SIZEOF_UNSIGNED_LONG_INT; k++) ++ printf (", vOut[%d]=%d", k, value_out[k]); ++ printf ("\n"); ++#endif ++ ++ return ASN1_SUCCESS; ++} ++ ++/* Appends a new element into the sequence (or set) defined by this ++ * node. The new element will have a name of '?number', where number ++ * is a monotonically increased serial number. ++ * ++ * The last element in the list may be provided in @pcache, to avoid ++ * traversing the list, an expensive operation in long lists. ++ * ++ * On success it returns in @pcache the added element (which is the ++ * tail in the list of added elements). ++ */ ++int ++_asn1_append_sequence_set (asn1_node node, struct node_tail_cache_st *pcache) ++{ ++ asn1_node p, p2; ++ char temp[LTOSTR_MAX_SIZE]; ++ long n; ++ ++ if (!node || !(node->down)) ++ return ASN1_GENERIC_ERROR; ++ ++ p = node->down; ++ while ((type_field (p->type) == ASN1_ETYPE_TAG) ++ || (type_field (p->type) == ASN1_ETYPE_SIZE)) ++ p = p->right; ++ ++ p2 = _asn1_copy_structure3 (p); ++ if (p2 == NULL) ++ return ASN1_GENERIC_ERROR; ++ ++ if (pcache == NULL || pcache->tail == NULL || pcache->head != node) ++ { ++ while (p->right) ++ { ++ p = p->right; ++ } ++ } ++ else ++ { ++ p = pcache->tail; ++ } ++ ++ _asn1_set_right (p, p2); ++ if (pcache) ++ { ++ pcache->head = node; ++ pcache->tail = p2; ++ } ++ ++ if (p->name[0] == 0) ++ _asn1_str_cpy (temp, sizeof (temp), "?1"); ++ else ++ { ++ n = strtol (p->name + 1, NULL, 0); ++ n++; ++ temp[0] = '?'; ++ _asn1_ltostr (n, temp + 1); ++ } ++ _asn1_set_name (p2, temp); ++ /* p2->type |= CONST_OPTION; */ ++ ++ return ASN1_SUCCESS; ++} ++ ++ ++/** ++ * asn1_write_value: ++ * @node_root: pointer to a structure ++ * @name: the name of the element inside the structure that you want to set. ++ * @ivalue: vector used to specify the value to set. If len is >0, ++ * VALUE must be a two's complement form integer. if len=0 *VALUE ++ * must be a null terminated string with an integer value. ++ * @len: number of bytes of *value to use to set the value: ++ * value[0]..value[len-1] or 0 if value is a null terminated string ++ * ++ * Set the value of one element inside a structure. ++ * ++ * If an element is OPTIONAL and you want to delete it, you must use ++ * the value=NULL and len=0. Using "pkix.asn": ++ * ++ * result=asn1_write_value(cert, "tbsCertificate.issuerUniqueID", ++ * NULL, 0); ++ * ++ * Description for each type: ++ * ++ * INTEGER: VALUE must contain a two's complement form integer. ++ * ++ * value[0]=0xFF , len=1 -> integer=-1. ++ * value[0]=0xFF value[1]=0xFF , len=2 -> integer=-1. ++ * value[0]=0x01 , len=1 -> integer= 1. ++ * value[0]=0x00 value[1]=0x01 , len=2 -> integer= 1. ++ * value="123" , len=0 -> integer= 123. ++ * ++ * ENUMERATED: As INTEGER (but only with not negative numbers). ++ * ++ * BOOLEAN: VALUE must be the null terminated string "TRUE" or ++ * "FALSE" and LEN != 0. ++ * ++ * value="TRUE" , len=1 -> boolean=TRUE. ++ * value="FALSE" , len=1 -> boolean=FALSE. ++ * ++ * OBJECT IDENTIFIER: VALUE must be a null terminated string with ++ * each number separated by a dot (e.g. "1.2.3.543.1"). LEN != 0. ++ * ++ * value="1 2 840 10040 4 3" , len=1 -> OID=dsa-with-sha. ++ * ++ * UTCTime: VALUE must be a null terminated string in one of these ++ * formats: "YYMMDDhhmmssZ", "YYMMDDhhmmssZ", ++ * "YYMMDDhhmmss+hh'mm'", "YYMMDDhhmmss-hh'mm'", ++ * "YYMMDDhhmm+hh'mm'", or "YYMMDDhhmm-hh'mm'". LEN != 0. ++ * ++ * value="9801011200Z" , len=1 -> time=Jannuary 1st, 1998 ++ * at 12h 00m Greenwich Mean Time ++ * ++ * GeneralizedTime: VALUE must be in one of this format: ++ * "YYYYMMDDhhmmss.sZ", "YYYYMMDDhhmmss.sZ", ++ * "YYYYMMDDhhmmss.s+hh'mm'", "YYYYMMDDhhmmss.s-hh'mm'", ++ * "YYYYMMDDhhmm+hh'mm'", or "YYYYMMDDhhmm-hh'mm'" where ss.s ++ * indicates the seconds with any precision like "10.1" or "01.02". ++ * LEN != 0 ++ * ++ * value="2001010112001.12-0700" , len=1 -> time=Jannuary ++ * 1st, 2001 at 12h 00m 01.12s Pacific Daylight Time ++ * ++ * OCTET STRING: VALUE contains the octet string and LEN is the ++ * number of octets. ++ * ++ * value="$\backslash$x01$\backslash$x02$\backslash$x03" , ++ * len=3 -> three bytes octet string ++ * ++ * GeneralString: VALUE contains the generalstring and LEN is the ++ * number of octets. ++ * ++ * value="$\backslash$x01$\backslash$x02$\backslash$x03" , ++ * len=3 -> three bytes generalstring ++ * ++ * BIT STRING: VALUE contains the bit string organized by bytes and ++ * LEN is the number of bits. ++ * ++ * value="$\backslash$xCF" , len=6 -> bit string="110011" (six ++ * bits) ++ * ++ * CHOICE: if NAME indicates a choice type, VALUE must specify one of ++ * the alternatives with a null terminated string. LEN != 0. Using ++ * "pkix.asn"\: ++ * ++ * result=asn1_write_value(cert, ++ * "certificate1.tbsCertificate.subject", "rdnSequence", ++ * 1); ++ * ++ * ANY: VALUE indicates the der encoding of a structure. LEN != 0. ++ * ++ * SEQUENCE OF: VALUE must be the null terminated string "NEW" and ++ * LEN != 0. With this instruction another element is appended in ++ * the sequence. The name of this element will be "?1" if it's the ++ * first one, "?2" for the second and so on. ++ * ++ * Using "pkix.asn"\: ++ * ++ * result=asn1_write_value(cert, ++ * "certificate1.tbsCertificate.subject.rdnSequence", "NEW", 1); ++ * ++ * SET OF: the same as SEQUENCE OF. Using "pkix.asn": ++ * ++ * result=asn1_write_value(cert, ++ * "tbsCertificate.subject.rdnSequence.?LAST", "NEW", 1); ++ * ++ * Returns: %ASN1_SUCCESS if the value was set, ++ * %ASN1_ELEMENT_NOT_FOUND if @name is not a valid element, and ++ * %ASN1_VALUE_NOT_VALID if @ivalue has a wrong format. ++ **/ ++int ++asn1_write_value (asn1_node node_root, const char *name, ++ const void *ivalue, int len) ++{ ++ asn1_node node, p, p2; ++ unsigned char *temp, *value_temp = NULL, *default_temp = NULL; ++ int len2, k, k2, negative; ++ size_t i; ++ const unsigned char *value = ivalue; ++ unsigned int type; ++ ++ node = asn1_find_node (node_root, name); ++ if (node == NULL) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ if ((node->type & CONST_OPTION) && (value == NULL) && (len == 0)) ++ { ++ asn1_delete_structure (&node); ++ return ASN1_SUCCESS; ++ } ++ ++ type = type_field (node->type); ++ ++ if ((type == ASN1_ETYPE_SEQUENCE_OF || type == ASN1_ETYPE_SET_OF) && (value == NULL) && (len == 0)) ++ { ++ p = node->down; ++ while ((type_field (p->type) == ASN1_ETYPE_TAG) ++ || (type_field (p->type) == ASN1_ETYPE_SIZE)) ++ p = p->right; ++ ++ while (p->right) ++ asn1_delete_structure (&p->right); ++ ++ return ASN1_SUCCESS; ++ } ++ ++ /* Don't allow element deletion for other types */ ++ if (value == NULL) ++ { ++ return ASN1_VALUE_NOT_VALID; ++ } ++ ++ switch (type) ++ { ++ case ASN1_ETYPE_BOOLEAN: ++ if (!_asn1_strcmp (value, "TRUE")) ++ { ++ if (node->type & CONST_DEFAULT) ++ { ++ p = node->down; ++ while (type_field (p->type) != ASN1_ETYPE_DEFAULT) ++ p = p->right; ++ if (p->type & CONST_TRUE) ++ _asn1_set_value (node, NULL, 0); ++ else ++ _asn1_set_value (node, "T", 1); ++ } ++ else ++ _asn1_set_value (node, "T", 1); ++ } ++ else if (!_asn1_strcmp (value, "FALSE")) ++ { ++ if (node->type & CONST_DEFAULT) ++ { ++ p = node->down; ++ while (type_field (p->type) != ASN1_ETYPE_DEFAULT) ++ p = p->right; ++ if (p->type & CONST_FALSE) ++ _asn1_set_value (node, NULL, 0); ++ else ++ _asn1_set_value (node, "F", 1); ++ } ++ else ++ _asn1_set_value (node, "F", 1); ++ } ++ else ++ return ASN1_VALUE_NOT_VALID; ++ break; ++ case ASN1_ETYPE_INTEGER: ++ case ASN1_ETYPE_ENUMERATED: ++ if (len == 0) ++ { ++ if ((c_isdigit (value[0])) || (value[0] == '-')) ++ { ++ value_temp = malloc (SIZEOF_UNSIGNED_LONG_INT); ++ if (value_temp == NULL) ++ return ASN1_MEM_ALLOC_ERROR; ++ ++ _asn1_convert_integer (value, value_temp, ++ SIZEOF_UNSIGNED_LONG_INT, &len); ++ } ++ else ++ { /* is an identifier like v1 */ ++ if (!(node->type & CONST_LIST)) ++ return ASN1_VALUE_NOT_VALID; ++ p = node->down; ++ while (p) ++ { ++ if (type_field (p->type) == ASN1_ETYPE_CONSTANT) ++ { ++ if (!_asn1_strcmp (p->name, value)) ++ { ++ value_temp = malloc (SIZEOF_UNSIGNED_LONG_INT); ++ if (value_temp == NULL) ++ return ASN1_MEM_ALLOC_ERROR; ++ ++ _asn1_convert_integer (p->value, ++ value_temp, ++ SIZEOF_UNSIGNED_LONG_INT, ++ &len); ++ break; ++ } ++ } ++ p = p->right; ++ } ++ if (p == NULL) ++ return ASN1_VALUE_NOT_VALID; ++ } ++ } ++ else ++ { /* len != 0 */ ++ value_temp = malloc (len); ++ if (value_temp == NULL) ++ return ASN1_MEM_ALLOC_ERROR; ++ memcpy (value_temp, value, len); ++ } ++ ++ if (value_temp[0] & 0x80) ++ negative = 1; ++ else ++ negative = 0; ++ ++ if (negative && (type_field (node->type) == ASN1_ETYPE_ENUMERATED)) ++ { ++ free (value_temp); ++ return ASN1_VALUE_NOT_VALID; ++ } ++ ++ for (k = 0; k < len - 1; k++) ++ if (negative && (value_temp[k] != 0xFF)) ++ break; ++ else if (!negative && value_temp[k]) ++ break; ++ ++ if ((negative && !(value_temp[k] & 0x80)) || ++ (!negative && (value_temp[k] & 0x80))) ++ k--; ++ ++ _asn1_set_value_lv (node, value_temp + k, len - k); ++ ++ if (node->type & CONST_DEFAULT) ++ { ++ p = node->down; ++ while (type_field (p->type) != ASN1_ETYPE_DEFAULT) ++ p = p->right; ++ if ((c_isdigit (p->value[0])) || (p->value[0] == '-')) ++ { ++ default_temp = malloc (SIZEOF_UNSIGNED_LONG_INT); ++ if (default_temp == NULL) ++ { ++ free (value_temp); ++ return ASN1_MEM_ALLOC_ERROR; ++ } ++ ++ _asn1_convert_integer (p->value, default_temp, ++ SIZEOF_UNSIGNED_LONG_INT, &len2); ++ } ++ else ++ { /* is an identifier like v1 */ ++ if (!(node->type & CONST_LIST)) ++ { ++ free (value_temp); ++ return ASN1_VALUE_NOT_VALID; ++ } ++ p2 = node->down; ++ while (p2) ++ { ++ if (type_field (p2->type) == ASN1_ETYPE_CONSTANT) ++ { ++ if (!_asn1_strcmp (p2->name, p->value)) ++ { ++ default_temp = malloc (SIZEOF_UNSIGNED_LONG_INT); ++ if (default_temp == NULL) ++ { ++ free (value_temp); ++ return ASN1_MEM_ALLOC_ERROR; ++ } ++ ++ _asn1_convert_integer (p2->value, ++ default_temp, ++ SIZEOF_UNSIGNED_LONG_INT, ++ &len2); ++ break; ++ } ++ } ++ p2 = p2->right; ++ } ++ if (p2 == NULL) ++ { ++ free (value_temp); ++ return ASN1_VALUE_NOT_VALID; ++ } ++ } ++ ++ ++ if ((len - k) == len2) ++ { ++ for (k2 = 0; k2 < len2; k2++) ++ if (value_temp[k + k2] != default_temp[k2]) ++ { ++ break; ++ } ++ if (k2 == len2) ++ _asn1_set_value (node, NULL, 0); ++ } ++ free (default_temp); ++ } ++ free (value_temp); ++ break; ++ case ASN1_ETYPE_OBJECT_ID: ++ for (i = 0; i < _asn1_strlen (value); i++) ++ if ((!c_isdigit (value[i])) && (value[i] != '.') && (value[i] != '+')) ++ return ASN1_VALUE_NOT_VALID; ++ if (node->type & CONST_DEFAULT) ++ { ++ p = node->down; ++ while (type_field (p->type) != ASN1_ETYPE_DEFAULT) ++ p = p->right; ++ if (!_asn1_strcmp (value, p->value)) ++ { ++ _asn1_set_value (node, NULL, 0); ++ break; ++ } ++ } ++ _asn1_set_value (node, value, _asn1_strlen (value) + 1); ++ break; ++ case ASN1_ETYPE_UTC_TIME: ++ { ++ len = _asn1_strlen (value); ++ if (len < 11) ++ return ASN1_VALUE_NOT_VALID; ++ for (k = 0; k < 10; k++) ++ if (!c_isdigit (value[k])) ++ return ASN1_VALUE_NOT_VALID; ++ switch (len) ++ { ++ case 11: ++ if (value[10] != 'Z') ++ return ASN1_VALUE_NOT_VALID; ++ break; ++ case 13: ++ if ((!c_isdigit (value[10])) || (!c_isdigit (value[11])) || ++ (value[12] != 'Z')) ++ return ASN1_VALUE_NOT_VALID; ++ break; ++ case 15: ++ if ((value[10] != '+') && (value[10] != '-')) ++ return ASN1_VALUE_NOT_VALID; ++ for (k = 11; k < 15; k++) ++ if (!c_isdigit (value[k])) ++ return ASN1_VALUE_NOT_VALID; ++ break; ++ case 17: ++ if ((!c_isdigit (value[10])) || (!c_isdigit (value[11]))) ++ return ASN1_VALUE_NOT_VALID; ++ if ((value[12] != '+') && (value[12] != '-')) ++ return ASN1_VALUE_NOT_VALID; ++ for (k = 13; k < 17; k++) ++ if (!c_isdigit (value[k])) ++ return ASN1_VALUE_NOT_VALID; ++ break; ++ default: ++ return ASN1_VALUE_NOT_FOUND; ++ } ++ _asn1_set_value (node, value, len); ++ } ++ break; ++ case ASN1_ETYPE_GENERALIZED_TIME: ++ len = _asn1_strlen (value); ++ _asn1_set_value (node, value, len); ++ break; ++ case ASN1_ETYPE_OCTET_STRING: ++ case ASN1_ETYPE_GENERALSTRING: ++ case ASN1_ETYPE_NUMERIC_STRING: ++ case ASN1_ETYPE_IA5_STRING: ++ case ASN1_ETYPE_TELETEX_STRING: ++ case ASN1_ETYPE_PRINTABLE_STRING: ++ case ASN1_ETYPE_UNIVERSAL_STRING: ++ case ASN1_ETYPE_BMP_STRING: ++ case ASN1_ETYPE_UTF8_STRING: ++ case ASN1_ETYPE_VISIBLE_STRING: ++ if (len == 0) ++ len = _asn1_strlen (value); ++ _asn1_set_value_lv (node, value, len); ++ break; ++ case ASN1_ETYPE_BIT_STRING: ++ if (len == 0) ++ len = _asn1_strlen (value); ++ asn1_length_der ((len >> 3) + 2, NULL, &len2); ++ temp = malloc ((len >> 3) + 2 + len2); ++ if (temp == NULL) ++ return ASN1_MEM_ALLOC_ERROR; ++ ++ asn1_bit_der (value, len, temp, &len2); ++ _asn1_set_value_m (node, temp, len2); ++ temp = NULL; ++ break; ++ case ASN1_ETYPE_CHOICE: ++ p = node->down; ++ while (p) ++ { ++ if (!_asn1_strcmp (p->name, value)) ++ { ++ p2 = node->down; ++ while (p2) ++ { ++ if (p2 != p) ++ { ++ asn1_delete_structure (&p2); ++ p2 = node->down; ++ } ++ else ++ p2 = p2->right; ++ } ++ break; ++ } ++ p = p->right; ++ } ++ if (!p) ++ return ASN1_ELEMENT_NOT_FOUND; ++ break; ++ case ASN1_ETYPE_ANY: ++ _asn1_set_value_lv (node, value, len); ++ break; ++ case ASN1_ETYPE_SEQUENCE_OF: ++ case ASN1_ETYPE_SET_OF: ++ if (_asn1_strcmp (value, "NEW")) ++ return ASN1_VALUE_NOT_VALID; ++ _asn1_append_sequence_set (node, NULL); ++ break; ++ default: ++ return ASN1_ELEMENT_NOT_FOUND; ++ break; ++ } ++ ++ return ASN1_SUCCESS; ++} ++ ++ ++#define PUT_VALUE( ptr, ptr_size, data, data_size) \ ++ *len = data_size; \ ++ if (ptr_size < data_size) { \ ++ return ASN1_MEM_ERROR; \ ++ } else { \ ++ if (ptr && data_size > 0) \ ++ memcpy (ptr, data, data_size); \ ++ } ++ ++#define PUT_STR_VALUE( ptr, ptr_size, data) \ ++ *len = _asn1_strlen (data) + 1; \ ++ if (ptr_size < *len) { \ ++ return ASN1_MEM_ERROR; \ ++ } else { \ ++ /* this strcpy is checked */ \ ++ if (ptr) { \ ++ _asn1_strcpy (ptr, data); \ ++ } \ ++ } ++ ++#define PUT_AS_STR_VALUE( ptr, ptr_size, data, data_size) \ ++ *len = data_size + 1; \ ++ if (ptr_size < *len) { \ ++ return ASN1_MEM_ERROR; \ ++ } else { \ ++ /* this strcpy is checked */ \ ++ if (ptr) { \ ++ if (data_size > 0) \ ++ memcpy (ptr, data, data_size); \ ++ ptr[data_size] = 0; \ ++ } \ ++ } ++ ++#define ADD_STR_VALUE( ptr, ptr_size, data) \ ++ *len += _asn1_strlen(data); \ ++ if (ptr_size < (int) *len) { \ ++ (*len)++; \ ++ return ASN1_MEM_ERROR; \ ++ } else { \ ++ /* this strcat is checked */ \ ++ if (ptr) _asn1_strcat (ptr, data); \ ++ } ++ ++/** ++ * asn1_read_value: ++ * @root: pointer to a structure. ++ * @name: the name of the element inside a structure that you want to read. ++ * @ivalue: vector that will contain the element's content, must be a ++ * pointer to memory cells already allocated (may be %NULL). ++ * @len: number of bytes of *value: value[0]..value[len-1]. Initialy ++ * holds the sizeof value. ++ * ++ * Returns the value of one element inside a structure. ++ * If an element is OPTIONAL and this returns ++ * %ASN1_ELEMENT_NOT_FOUND, it means that this element wasn't present ++ * in the der encoding that created the structure. The first element ++ * of a SEQUENCE_OF or SET_OF is named "?1". The second one "?2" and ++ * so on. If the @root provided is a node to specific sequence element, ++ * then the keyword "?CURRENT" is also acceptable and indicates the ++ * current sequence element of this node. ++ * ++ * Note that there can be valid values with length zero. In these case ++ * this function will succeed and @len will be zero. ++ * ++ * INTEGER: VALUE will contain a two's complement form integer. ++ * ++ * integer=-1 -> value[0]=0xFF , len=1. ++ * integer=1 -> value[0]=0x01 , len=1. ++ * ++ * ENUMERATED: As INTEGER (but only with not negative numbers). ++ * ++ * BOOLEAN: VALUE will be the null terminated string "TRUE" or ++ * "FALSE" and LEN=5 or LEN=6. ++ * ++ * OBJECT IDENTIFIER: VALUE will be a null terminated string with ++ * each number separated by a dot (i.e. "1.2.3.543.1"). ++ * ++ * LEN = strlen(VALUE)+1 ++ * ++ * UTCTime: VALUE will be a null terminated string in one of these ++ * formats: "YYMMDDhhmmss+hh'mm'" or "YYMMDDhhmmss-hh'mm'". ++ * LEN=strlen(VALUE)+1. ++ * ++ * GeneralizedTime: VALUE will be a null terminated string in the ++ * same format used to set the value. ++ * ++ * OCTET STRING: VALUE will contain the octet string and LEN will be ++ * the number of octets. ++ * ++ * GeneralString: VALUE will contain the generalstring and LEN will ++ * be the number of octets. ++ * ++ * BIT STRING: VALUE will contain the bit string organized by bytes ++ * and LEN will be the number of bits. ++ * ++ * CHOICE: If NAME indicates a choice type, VALUE will specify the ++ * alternative selected. ++ * ++ * ANY: If NAME indicates an any type, VALUE will indicate the DER ++ * encoding of the structure actually used. ++ * ++ * Returns: %ASN1_SUCCESS if value is returned, ++ * %ASN1_ELEMENT_NOT_FOUND if @name is not a valid element, ++ * %ASN1_VALUE_NOT_FOUND if there isn't any value for the element ++ * selected, and %ASN1_MEM_ERROR if The value vector isn't big enough ++ * to store the result, and in this case @len will contain the number of ++ * bytes needed. On the occasion that the stored data are of zero-length ++ * this function may return %ASN1_SUCCESS even if the provided @len is zero. ++ **/ ++int ++asn1_read_value (asn1_node_const root, const char *name, void *ivalue, int *len) ++{ ++ return asn1_read_value_type (root, name, ivalue, len, NULL); ++} ++ ++/** ++ * asn1_read_value_type: ++ * @root: pointer to a structure. ++ * @name: the name of the element inside a structure that you want to read. ++ * @ivalue: vector that will contain the element's content, must be a ++ * pointer to memory cells already allocated (may be %NULL). ++ * @len: number of bytes of *value: value[0]..value[len-1]. Initialy ++ * holds the sizeof value. ++ * @etype: The type of the value read (ASN1_ETYPE) ++ * ++ * Returns the type and value of one element inside a structure. ++ * If an element is OPTIONAL and this returns ++ * %ASN1_ELEMENT_NOT_FOUND, it means that this element wasn't present ++ * in the der encoding that created the structure. The first element ++ * of a SEQUENCE_OF or SET_OF is named "?1". The second one "?2" and ++ * so on. If the @root provided is a node to specific sequence element, ++ * then the keyword "?CURRENT" is also acceptable and indicates the ++ * current sequence element of this node. ++ * ++ * Note that there can be valid values with length zero. In these case ++ * this function will succeed and @len will be zero. ++ * ++ * ++ * INTEGER: VALUE will contain a two's complement form integer. ++ * ++ * integer=-1 -> value[0]=0xFF , len=1. ++ * integer=1 -> value[0]=0x01 , len=1. ++ * ++ * ENUMERATED: As INTEGER (but only with not negative numbers). ++ * ++ * BOOLEAN: VALUE will be the null terminated string "TRUE" or ++ * "FALSE" and LEN=5 or LEN=6. ++ * ++ * OBJECT IDENTIFIER: VALUE will be a null terminated string with ++ * each number separated by a dot (i.e. "1.2.3.543.1"). ++ * ++ * LEN = strlen(VALUE)+1 ++ * ++ * UTCTime: VALUE will be a null terminated string in one of these ++ * formats: "YYMMDDhhmmss+hh'mm'" or "YYMMDDhhmmss-hh'mm'". ++ * LEN=strlen(VALUE)+1. ++ * ++ * GeneralizedTime: VALUE will be a null terminated string in the ++ * same format used to set the value. ++ * ++ * OCTET STRING: VALUE will contain the octet string and LEN will be ++ * the number of octets. ++ * ++ * GeneralString: VALUE will contain the generalstring and LEN will ++ * be the number of octets. ++ * ++ * BIT STRING: VALUE will contain the bit string organized by bytes ++ * and LEN will be the number of bits. ++ * ++ * CHOICE: If NAME indicates a choice type, VALUE will specify the ++ * alternative selected. ++ * ++ * ANY: If NAME indicates an any type, VALUE will indicate the DER ++ * encoding of the structure actually used. ++ * ++ * Returns: %ASN1_SUCCESS if value is returned, ++ * %ASN1_ELEMENT_NOT_FOUND if @name is not a valid element, ++ * %ASN1_VALUE_NOT_FOUND if there isn't any value for the element ++ * selected, and %ASN1_MEM_ERROR if The value vector isn't big enough ++ * to store the result, and in this case @len will contain the number of ++ * bytes needed. On the occasion that the stored data are of zero-length ++ * this function may return %ASN1_SUCCESS even if the provided @len is zero. ++ **/ ++int ++asn1_read_value_type (asn1_node_const root, const char *name, void *ivalue, ++ int *len, unsigned int *etype) ++{ ++ asn1_node_const node, p, p2; ++ int len2, len3, result; ++ int value_size = *len; ++ unsigned char *value = ivalue; ++ unsigned type; ++ ++ node = asn1_find_node (root, name); ++ if (node == NULL) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ type = type_field (node->type); ++ ++ if ((type != ASN1_ETYPE_NULL) && ++ (type != ASN1_ETYPE_CHOICE) && ++ !(node->type & CONST_DEFAULT) && !(node->type & CONST_ASSIGN) && ++ (node->value == NULL)) ++ return ASN1_VALUE_NOT_FOUND; ++ ++ if (etype) ++ *etype = type; ++ switch (type) ++ { ++ case ASN1_ETYPE_NULL: ++ PUT_STR_VALUE (value, value_size, "NULL"); ++ break; ++ case ASN1_ETYPE_BOOLEAN: ++ if ((node->type & CONST_DEFAULT) && (node->value == NULL)) ++ { ++ p = node->down; ++ while (type_field (p->type) != ASN1_ETYPE_DEFAULT) ++ p = p->right; ++ if (p->type & CONST_TRUE) ++ { ++ PUT_STR_VALUE (value, value_size, "TRUE"); ++ } ++ else ++ { ++ PUT_STR_VALUE (value, value_size, "FALSE"); ++ } ++ } ++ else if (node->value[0] == 'T') ++ { ++ PUT_STR_VALUE (value, value_size, "TRUE"); ++ } ++ else ++ { ++ PUT_STR_VALUE (value, value_size, "FALSE"); ++ } ++ break; ++ case ASN1_ETYPE_INTEGER: ++ case ASN1_ETYPE_ENUMERATED: ++ if ((node->type & CONST_DEFAULT) && (node->value == NULL)) ++ { ++ p = node->down; ++ while (type_field (p->type) != ASN1_ETYPE_DEFAULT) ++ p = p->right; ++ if ((c_isdigit (p->value[0])) || (p->value[0] == '-') ++ || (p->value[0] == '+')) ++ { ++ result = _asn1_convert_integer ++ (p->value, value, value_size, len); ++ if (result != ASN1_SUCCESS) ++ return result; ++ } ++ else ++ { /* is an identifier like v1 */ ++ p2 = node->down; ++ while (p2) ++ { ++ if (type_field (p2->type) == ASN1_ETYPE_CONSTANT) ++ { ++ if (!_asn1_strcmp (p2->name, p->value)) ++ { ++ result = _asn1_convert_integer ++ (p2->value, value, value_size, ++ len); ++ if (result != ASN1_SUCCESS) ++ return result; ++ break; ++ } ++ } ++ p2 = p2->right; ++ } ++ } ++ } ++ else ++ { ++ len2 = -1; ++ result = asn1_get_octet_der ++ (node->value, node->value_len, &len2, value, value_size, ++ len); ++ if (result != ASN1_SUCCESS) ++ return result; ++ } ++ break; ++ case ASN1_ETYPE_OBJECT_ID: ++ if (node->type & CONST_ASSIGN) ++ { ++ *len = 0; ++ if (value) ++ value[0] = 0; ++ p = node->down; ++ while (p) ++ { ++ if (type_field (p->type) == ASN1_ETYPE_CONSTANT) ++ { ++ ADD_STR_VALUE (value, value_size, p->value); ++ if (p->right) ++ { ++ ADD_STR_VALUE (value, value_size, "."); ++ } ++ } ++ p = p->right; ++ } ++ (*len)++; ++ } ++ else if ((node->type & CONST_DEFAULT) && (node->value == NULL)) ++ { ++ p = node->down; ++ while (type_field (p->type) != ASN1_ETYPE_DEFAULT) ++ p = p->right; ++ PUT_STR_VALUE (value, value_size, p->value); ++ } ++ else ++ { ++ PUT_STR_VALUE (value, value_size, node->value); ++ } ++ break; ++ case ASN1_ETYPE_GENERALIZED_TIME: ++ case ASN1_ETYPE_UTC_TIME: ++ PUT_AS_STR_VALUE (value, value_size, node->value, node->value_len); ++ break; ++ case ASN1_ETYPE_OCTET_STRING: ++ case ASN1_ETYPE_GENERALSTRING: ++ case ASN1_ETYPE_NUMERIC_STRING: ++ case ASN1_ETYPE_IA5_STRING: ++ case ASN1_ETYPE_TELETEX_STRING: ++ case ASN1_ETYPE_PRINTABLE_STRING: ++ case ASN1_ETYPE_UNIVERSAL_STRING: ++ case ASN1_ETYPE_BMP_STRING: ++ case ASN1_ETYPE_UTF8_STRING: ++ case ASN1_ETYPE_VISIBLE_STRING: ++ len2 = -1; ++ result = asn1_get_octet_der ++ (node->value, node->value_len, &len2, value, value_size, ++ len); ++ if (result != ASN1_SUCCESS) ++ return result; ++ break; ++ case ASN1_ETYPE_BIT_STRING: ++ len2 = -1; ++ result = asn1_get_bit_der ++ (node->value, node->value_len, &len2, value, value_size, ++ len); ++ if (result != ASN1_SUCCESS) ++ return result; ++ break; ++ case ASN1_ETYPE_CHOICE: ++ PUT_STR_VALUE (value, value_size, node->down->name); ++ break; ++ case ASN1_ETYPE_ANY: ++ len3 = -1; ++ len2 = asn1_get_length_der (node->value, node->value_len, &len3); ++ if (len2 < 0) ++ return ASN1_DER_ERROR; ++ PUT_VALUE (value, value_size, node->value + len3, len2); ++ break; ++ default: ++ return ASN1_ELEMENT_NOT_FOUND; ++ break; ++ } ++ return ASN1_SUCCESS; ++} ++ ++ ++/** ++ * asn1_read_tag: ++ * @root: pointer to a structure ++ * @name: the name of the element inside a structure. ++ * @tagValue: variable that will contain the TAG value. ++ * @classValue: variable that will specify the TAG type. ++ * ++ * Returns the TAG and the CLASS of one element inside a structure. ++ * CLASS can have one of these constants: %ASN1_CLASS_APPLICATION, ++ * %ASN1_CLASS_UNIVERSAL, %ASN1_CLASS_PRIVATE or ++ * %ASN1_CLASS_CONTEXT_SPECIFIC. ++ * ++ * Returns: %ASN1_SUCCESS if successful, %ASN1_ELEMENT_NOT_FOUND if ++ * @name is not a valid element. ++ **/ ++int ++asn1_read_tag (asn1_node_const root, const char *name, int *tagValue, ++ int *classValue) ++{ ++ asn1_node node, p, pTag; ++ ++ node = asn1_find_node (root, name); ++ if (node == NULL) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ p = node->down; ++ ++ /* pTag will points to the IMPLICIT TAG */ ++ pTag = NULL; ++ if (node->type & CONST_TAG) ++ { ++ while (p) ++ { ++ if (type_field (p->type) == ASN1_ETYPE_TAG) ++ { ++ if ((p->type & CONST_IMPLICIT) && (pTag == NULL)) ++ pTag = p; ++ else if (p->type & CONST_EXPLICIT) ++ pTag = NULL; ++ } ++ p = p->right; ++ } ++ } ++ ++ if (pTag) ++ { ++ *tagValue = _asn1_strtoul (pTag->value, NULL, 10); ++ ++ if (pTag->type & CONST_APPLICATION) ++ *classValue = ASN1_CLASS_APPLICATION; ++ else if (pTag->type & CONST_UNIVERSAL) ++ *classValue = ASN1_CLASS_UNIVERSAL; ++ else if (pTag->type & CONST_PRIVATE) ++ *classValue = ASN1_CLASS_PRIVATE; ++ else ++ *classValue = ASN1_CLASS_CONTEXT_SPECIFIC; ++ } ++ else ++ { ++ unsigned type = type_field (node->type); ++ *classValue = ASN1_CLASS_UNIVERSAL; ++ ++ switch (type) ++ { ++ CASE_HANDLED_ETYPES: ++ *tagValue = _asn1_tags[type].tag; ++ break; ++ case ASN1_ETYPE_TAG: ++ case ASN1_ETYPE_CHOICE: ++ case ASN1_ETYPE_ANY: ++ *tagValue = -1; ++ break; ++ default: ++ break; ++ } ++ } ++ ++ return ASN1_SUCCESS; ++} ++ ++/** ++ * asn1_read_node_value: ++ * @node: pointer to a node. ++ * @data: a point to a asn1_data_node_st ++ * ++ * Returns the value a data node inside a asn1_node structure. ++ * The data returned should be handled as constant values. ++ * ++ * Returns: %ASN1_SUCCESS if the node exists. ++ **/ ++int ++asn1_read_node_value (asn1_node_const node, asn1_data_node_st * data) ++{ ++ data->name = node->name; ++ data->value = node->value; ++ data->value_len = node->value_len; ++ data->type = type_field (node->type); ++ ++ return ASN1_SUCCESS; ++} +diff --git a/grub-core/lib/libtasn1/lib/errors.c b/grub-core/lib/libtasn1/lib/errors.c +new file mode 100644 +index 00000000000..cee74daf795 +--- /dev/null ++++ b/grub-core/lib/libtasn1/lib/errors.c +@@ -0,0 +1,100 @@ ++/* ++ * Copyright (C) 2002-2014 Free Software Foundation, Inc. ++ * ++ * This file is part of LIBTASN1. ++ * ++ * The LIBTASN1 library is free software; you can redistribute it ++ * and/or modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ++ * 02110-1301, USA ++ */ ++ ++#include ++#ifdef STDC_HEADERS ++#include ++#endif ++ ++#define LIBTASN1_ERROR_ENTRY(name) { #name, name } ++ ++struct libtasn1_error_entry ++{ ++ const char *name; ++ int number; ++}; ++typedef struct libtasn1_error_entry libtasn1_error_entry; ++ ++static const libtasn1_error_entry error_algorithms[] = { ++ LIBTASN1_ERROR_ENTRY (ASN1_SUCCESS), ++ LIBTASN1_ERROR_ENTRY (ASN1_FILE_NOT_FOUND), ++ LIBTASN1_ERROR_ENTRY (ASN1_ELEMENT_NOT_FOUND), ++ LIBTASN1_ERROR_ENTRY (ASN1_IDENTIFIER_NOT_FOUND), ++ LIBTASN1_ERROR_ENTRY (ASN1_DER_ERROR), ++ LIBTASN1_ERROR_ENTRY (ASN1_VALUE_NOT_FOUND), ++ LIBTASN1_ERROR_ENTRY (ASN1_GENERIC_ERROR), ++ LIBTASN1_ERROR_ENTRY (ASN1_VALUE_NOT_VALID), ++ LIBTASN1_ERROR_ENTRY (ASN1_TAG_ERROR), ++ LIBTASN1_ERROR_ENTRY (ASN1_TAG_IMPLICIT), ++ LIBTASN1_ERROR_ENTRY (ASN1_ERROR_TYPE_ANY), ++ LIBTASN1_ERROR_ENTRY (ASN1_SYNTAX_ERROR), ++ LIBTASN1_ERROR_ENTRY (ASN1_MEM_ERROR), ++ LIBTASN1_ERROR_ENTRY (ASN1_MEM_ALLOC_ERROR), ++ LIBTASN1_ERROR_ENTRY (ASN1_DER_OVERFLOW), ++ LIBTASN1_ERROR_ENTRY (ASN1_NAME_TOO_LONG), ++ LIBTASN1_ERROR_ENTRY (ASN1_ARRAY_ERROR), ++ LIBTASN1_ERROR_ENTRY (ASN1_ELEMENT_NOT_EMPTY), ++ LIBTASN1_ERROR_ENTRY (ASN1_TIME_ENCODING_ERROR), ++ LIBTASN1_ERROR_ENTRY (ASN1_RECURSION), ++ {0, 0} ++}; ++ ++/** ++ * asn1_perror: ++ * @error: is an error returned by a libtasn1 function. ++ * ++ * Prints a string to stderr with a description of an error. This ++ * function is like perror(). The only difference is that it accepts ++ * an error returned by a libtasn1 function. ++ * ++ * Since: 1.6 ++ **/ ++void ++asn1_perror (int error) ++{ ++ const char *str = asn1_strerror (error); ++ fprintf (stderr, "LIBTASN1 ERROR: %s\n", str ? str : "(null)"); ++} ++ ++/** ++ * asn1_strerror: ++ * @error: is an error returned by a libtasn1 function. ++ * ++ * Returns a string with a description of an error. This function is ++ * similar to strerror. The only difference is that it accepts an ++ * error (number) returned by a libtasn1 function. ++ * ++ * Returns: Pointer to static zero-terminated string describing error ++ * code. ++ * ++ * Since: 1.6 ++ **/ ++const char * ++asn1_strerror (int error) ++{ ++ const libtasn1_error_entry *p; ++ ++ for (p = error_algorithms; p->name != NULL; p++) ++ if (p->number == error) ++ return p->name + sizeof ("ASN1_") - 1; ++ ++ return NULL; ++} +diff --git a/grub-core/lib/libtasn1/lib/gstr.c b/grub-core/lib/libtasn1/lib/gstr.c +new file mode 100644 +index 00000000000..e91a3a151c0 +--- /dev/null ++++ b/grub-core/lib/libtasn1/lib/gstr.c +@@ -0,0 +1,74 @@ ++/* ++ * Copyright (C) 2002-2014 Free Software Foundation, Inc. ++ * ++ * This file is part of LIBTASN1. ++ * ++ * The LIBTASN1 library is free software; you can redistribute it ++ * and/or modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ++ * 02110-1301, USA ++ */ ++ ++#include ++#include "gstr.h" ++ ++/* These function are like strcat, strcpy. They only ++ * do bounds checking (they shouldn't cause buffer overruns), ++ * and they always produce null terminated strings. ++ * ++ * They should be used only with null terminated strings. ++ */ ++void ++_asn1_str_cat (char *dest, size_t dest_tot_size, const char *src) ++{ ++ size_t str_size = strlen (src); ++ size_t dest_size = strlen (dest); ++ ++ if (dest_tot_size - dest_size > str_size) ++ { ++ strcat (dest, src); ++ } ++ else ++ { ++ if (dest_tot_size - dest_size > 0) ++ { ++ strncat (dest, src, (dest_tot_size - dest_size) - 1); ++ dest[dest_tot_size - 1] = 0; ++ } ++ } ++} ++ ++/* Returns the bytes copied (not including the null terminator) */ ++unsigned int ++_asn1_str_cpy (char *dest, size_t dest_tot_size, const char *src) ++{ ++ size_t str_size = strlen (src); ++ ++ if (dest_tot_size > str_size) ++ { ++ strcpy (dest, src); ++ return str_size; ++ } ++ else ++ { ++ if (dest_tot_size > 0) ++ { ++ str_size = dest_tot_size - 1; ++ memcpy (dest, src, str_size); ++ dest[str_size] = 0; ++ return str_size; ++ } ++ else ++ return 0; ++ } ++} +diff --git a/grub-core/lib/libtasn1/lib/parser_aux.c b/grub-core/lib/libtasn1/lib/parser_aux.c +new file mode 100644 +index 00000000000..d5dbbf8765d +--- /dev/null ++++ b/grub-core/lib/libtasn1/lib/parser_aux.c +@@ -0,0 +1,1173 @@ ++/* ++ * Copyright (C) 2000-2016 Free Software Foundation, Inc. ++ * ++ * This file is part of LIBTASN1. ++ * ++ * The LIBTASN1 library is free software; you can redistribute it ++ * and/or modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ++ * 02110-1301, USA ++ */ ++ ++#include // WORD_BIT ++ ++#include "int.h" ++#include "parser_aux.h" ++#include "gstr.h" ++#include "structure.h" ++#include "element.h" ++#include "c-ctype.h" ++ ++char _asn1_identifierMissing[ASN1_MAX_NAME_SIZE + 1]; /* identifier name not found */ ++ ++/* Return a hash of the N bytes of X using the method described by ++ Bruno Haible in https://www.haible.de/bruno/hashfunc.html. ++ Note that while many hash functions reduce their result via modulo ++ to a 0..table_size-1 range, this function does not do that. ++ ++ This implementation has been changed from size_t -> unsigned int. */ ++ ++#ifdef __clang__ ++__attribute__((no_sanitize("integer"))) ++#endif ++_GL_ATTRIBUTE_PURE ++static unsigned int ++_asn1_hash_name (const char *x) ++{ ++ const unsigned char *s = (unsigned char *) x; ++ unsigned h = 0; ++ ++ while (*s) ++ h = (*s++) + ((h << 9) | (h >> (WORD_BIT - 9))); ++ ++ return h; ++} ++ ++/******************************************************/ ++/* Function : _asn1_add_static_node */ ++/* Description: creates a new NODE_ASN element and */ ++/* puts it in the list pointed by e_list. */ ++/* Parameters: */ ++/* e_list: of type list_type; must be NULL initially */ ++/* type: type of the new element (see ASN1_ETYPE_ */ ++/* and CONST_ constants). */ ++/* Return: pointer to the new element. */ ++/******************************************************/ ++asn1_node ++_asn1_add_static_node (list_type **e_list, unsigned int type) ++{ ++ list_type *p; ++ asn1_node punt; ++ ++ punt = calloc (1, sizeof (struct asn1_node_st)); ++ if (punt == NULL) ++ return NULL; ++ ++ p = malloc (sizeof (list_type)); ++ if (p == NULL) ++ { ++ free (punt); ++ return NULL; ++ } ++ ++ p->node = punt; ++ p->next = *e_list; ++ *e_list = p; ++ ++ punt->type = type; ++ ++ return punt; ++} ++ ++static ++int _asn1_add_static_node2 (list_type **e_list, asn1_node node) ++{ ++ list_type *p; ++ ++ p = malloc (sizeof (list_type)); ++ if (p == NULL) ++ { ++ return -1; ++ } ++ ++ p->node = node; ++ p->next = *e_list; ++ *e_list = p; ++ ++ return 0; ++} ++ ++/** ++ * asn1_find_node: ++ * @pointer: NODE_ASN element pointer. ++ * @name: null terminated string with the element's name to find. ++ * ++ * Searches for an element called @name starting from @pointer. The ++ * name is composed by different identifiers separated by dots. When ++ * *@pointer has a name, the first identifier must be the name of ++ * *@pointer, otherwise it must be the name of one child of *@pointer. ++ * ++ * Returns: the search result, or %NULL if not found. ++ **/ ++asn1_node ++asn1_find_node (asn1_node_const pointer, const char *name) ++{ ++ asn1_node_const p; ++ char *n_end, n[ASN1_MAX_NAME_SIZE + 1]; ++ const char *n_start; ++ unsigned int nsize; ++ unsigned int nhash; ++ ++ if (pointer == NULL) ++ return NULL; ++ ++ if (name == NULL) ++ return NULL; ++ ++ p = pointer; ++ n_start = name; ++ ++ if (name[0] == '?' && name[1] == 'C' && p->name[0] == '?') ++ { /* ?CURRENT */ ++ n_start = strchr(n_start, '.'); ++ if (n_start) ++ n_start++; ++ } ++ else if (p->name[0] != 0) ++ { /* has *pointer got a name ? */ ++ n_end = strchr (n_start, '.'); /* search the first dot */ ++ if (n_end) ++ { ++ nsize = n_end - n_start; ++ if (nsize >= sizeof(n)) ++ return NULL; ++ ++ memcpy (n, n_start, nsize); ++ n[nsize] = 0; ++ n_start = n_end; ++ n_start++; ++ ++ nhash = _asn1_hash_name (n); ++ } ++ else ++ { ++ _asn1_str_cpy (n, sizeof (n), n_start); ++ nhash = _asn1_hash_name (n); ++ ++ n_start = NULL; ++ } ++ ++ while (p) ++ { ++ if (nhash == p->name_hash && (!strcmp (p->name, n))) ++ break; ++ else ++ p = p->right; ++ } /* while */ ++ ++ if (p == NULL) ++ return NULL; ++ } ++ else ++ { /* *pointer doesn't have a name */ ++ if (n_start[0] == 0) ++ return (asn1_node) p; ++ } ++ ++ while (n_start) ++ { /* Has the end of NAME been reached? */ ++ n_end = strchr (n_start, '.'); /* search the next dot */ ++ if (n_end) ++ { ++ nsize = n_end - n_start; ++ if (nsize >= sizeof(n)) ++ return NULL; ++ ++ memcpy (n, n_start, nsize); ++ n[nsize] = 0; ++ n_start = n_end; ++ n_start++; ++ ++ nhash = _asn1_hash_name (n); ++ } ++ else ++ { ++ _asn1_str_cpy (n, sizeof (n), n_start); ++ nhash = _asn1_hash_name (n); ++ n_start = NULL; ++ } ++ ++ if (p->down == NULL) ++ return NULL; ++ ++ p = p->down; ++ if (p == NULL) ++ return NULL; ++ ++ /* The identifier "?LAST" indicates the last element ++ in the right chain. */ ++ if (n[0] == '?' && n[1] == 'L') /* ?LAST */ ++ { ++ while (p->right) ++ p = p->right; ++ } ++ else ++ { /* no "?LAST" */ ++ while (p) ++ { ++ if (p->name_hash == nhash && !strcmp (p->name, n)) ++ break; ++ else ++ p = p->right; ++ } ++ } ++ if (p == NULL) ++ return NULL; ++ } /* while */ ++ ++ return (asn1_node) p; ++} ++ ++ ++/******************************************************************/ ++/* Function : _asn1_set_value */ ++/* Description: sets the field VALUE in a NODE_ASN element. The */ ++/* previous value (if exist) will be lost */ ++/* Parameters: */ ++/* node: element pointer. */ ++/* value: pointer to the value that you want to set. */ ++/* len: character number of value. */ ++/* Return: pointer to the NODE_ASN element. */ ++/******************************************************************/ ++asn1_node ++_asn1_set_value (asn1_node node, const void *value, unsigned int len) ++{ ++ if (node == NULL) ++ return node; ++ if (node->value) ++ { ++ if (node->value != node->small_value) ++ free (node->value); ++ node->value = NULL; ++ node->value_len = 0; ++ } ++ ++ if (!len) ++ return node; ++ ++ if (len < sizeof (node->small_value)) ++ { ++ node->value = node->small_value; ++ } ++ else ++ { ++ node->value = malloc (len); ++ if (node->value == NULL) ++ return NULL; ++ } ++ node->value_len = len; ++ ++ memcpy (node->value, value, len); ++ return node; ++} ++ ++/******************************************************************/ ++/* Function : _asn1_set_value_lv */ ++/* Description: sets the field VALUE in a NODE_ASN element. The */ ++/* previous value (if exist) will be lost. The value */ ++/* given is stored as an length-value format (LV */ ++/* Parameters: */ ++/* node: element pointer. */ ++/* value: pointer to the value that you want to set. */ ++/* len: character number of value. */ ++/* Return: pointer to the NODE_ASN element. */ ++/******************************************************************/ ++asn1_node ++_asn1_set_value_lv (asn1_node node, const void *value, unsigned int len) ++{ ++ int len2; ++ void *temp; ++ ++ if (node == NULL) ++ return node; ++ ++ asn1_length_der (len, NULL, &len2); ++ temp = malloc (len + len2); ++ if (temp == NULL) ++ return NULL; ++ ++ asn1_octet_der (value, len, temp, &len2); ++ return _asn1_set_value_m (node, temp, len2); ++} ++ ++/* the same as _asn1_set_value except that it sets an already malloc'ed ++ * value. ++ */ ++asn1_node ++_asn1_set_value_m (asn1_node node, void *value, unsigned int len) ++{ ++ if (node == NULL) ++ return node; ++ ++ if (node->value) ++ { ++ if (node->value != node->small_value) ++ free (node->value); ++ node->value = NULL; ++ node->value_len = 0; ++ } ++ ++ if (!len) ++ return node; ++ ++ node->value = value; ++ node->value_len = len; ++ ++ return node; ++} ++ ++/******************************************************************/ ++/* Function : _asn1_append_value */ ++/* Description: appends to the field VALUE in a NODE_ASN element. */ ++/* */ ++/* Parameters: */ ++/* node: element pointer. */ ++/* value: pointer to the value that you want to be appended. */ ++/* len: character number of value. */ ++/* Return: pointer to the NODE_ASN element. */ ++/******************************************************************/ ++asn1_node ++_asn1_append_value (asn1_node node, const void *value, unsigned int len) ++{ ++ if (node == NULL) ++ return node; ++ ++ if (node->value == NULL) ++ return _asn1_set_value (node, value, len); ++ ++ if (len == 0) ++ return node; ++ ++ if (node->value == node->small_value) ++ { ++ /* value is in node */ ++ int prev_len = node->value_len; ++ node->value_len += len; ++ node->value = malloc (node->value_len); ++ if (node->value == NULL) ++ { ++ node->value_len = 0; ++ return NULL; ++ } ++ ++ if (prev_len > 0) ++ memcpy (node->value, node->small_value, prev_len); ++ ++ memcpy (&node->value[prev_len], value, len); ++ ++ return node; ++ } ++ else /* if (node->value != NULL && node->value != node->small_value) */ ++ { ++ /* value is allocated */ ++ int prev_len = node->value_len; ++ node->value_len += len; ++ ++ node->value = _asn1_realloc (node->value, node->value_len); ++ if (node->value == NULL) ++ { ++ node->value_len = 0; ++ return NULL; ++ } ++ ++ memcpy (&node->value[prev_len], value, len); ++ ++ return node; ++ } ++} ++ ++/******************************************************************/ ++/* Function : _asn1_set_name */ ++/* Description: sets the field NAME in a NODE_ASN element. The */ ++/* previous value (if exist) will be lost */ ++/* Parameters: */ ++/* node: element pointer. */ ++/* name: a null terminated string with the name that you want */ ++/* to set. */ ++/* Return: pointer to the NODE_ASN element. */ ++/******************************************************************/ ++asn1_node ++_asn1_set_name (asn1_node node, const char *name) ++{ ++ if (node == NULL) ++ return node; ++ ++ _asn1_str_cpy (node->name, sizeof (node->name), name ? name : ""); ++ node->name_hash = _asn1_hash_name (node->name); ++ ++ return node; ++} ++ ++/******************************************************************/ ++/* Function : _asn1_cpy_name */ ++/* Description: copies the field NAME in a NODE_ASN element. */ ++/* Parameters: */ ++/* dst: a dest element pointer. */ ++/* src: a source element pointer. */ ++/* Return: pointer to the NODE_ASN element. */ ++/******************************************************************/ ++asn1_node ++_asn1_cpy_name (asn1_node dst, asn1_node_const src) ++{ ++ if (dst == NULL) ++ return dst; ++ ++ if (src == NULL) ++ { ++ dst->name[0] = 0; ++ dst->name_hash = _asn1_hash_name (dst->name); ++ return dst; ++ } ++ ++ _asn1_str_cpy (dst->name, sizeof (dst->name), src->name); ++ dst->name_hash = src->name_hash; ++ ++ return dst; ++} ++ ++/******************************************************************/ ++/* Function : _asn1_set_right */ ++/* Description: sets the field RIGHT in a NODE_ASN element. */ ++/* Parameters: */ ++/* node: element pointer. */ ++/* right: pointer to a NODE_ASN element that you want be pointed*/ ++/* by NODE. */ ++/* Return: pointer to *NODE. */ ++/******************************************************************/ ++asn1_node ++_asn1_set_right (asn1_node node, asn1_node right) ++{ ++ if (node == NULL) ++ return node; ++ node->right = right; ++ if (right) ++ right->left = node; ++ return node; ++} ++ ++ ++/******************************************************************/ ++/* Function : _asn1_get_last_right */ ++/* Description: return the last element along the right chain. */ ++/* Parameters: */ ++/* node: starting element pointer. */ ++/* Return: pointer to the last element along the right chain. */ ++/******************************************************************/ ++asn1_node ++_asn1_get_last_right (asn1_node_const node) ++{ ++ asn1_node_const p; ++ ++ if (node == NULL) ++ return NULL; ++ p = node; ++ while (p->right) ++ p = p->right; ++ return (asn1_node) p; ++} ++ ++/******************************************************************/ ++/* Function : _asn1_remove_node */ ++/* Description: gets free the memory allocated for an NODE_ASN */ ++/* element (not the elements pointed by it). */ ++/* Parameters: */ ++/* node: NODE_ASN element pointer. */ ++/* flags: ASN1_DELETE_FLAG_* */ ++/******************************************************************/ ++void ++_asn1_remove_node (asn1_node node, unsigned int flags) ++{ ++ if (node == NULL) ++ return; ++ ++ if (node->value != NULL) ++ { ++ if (flags & ASN1_DELETE_FLAG_ZEROIZE) ++ { ++ safe_memset(node->value, 0, node->value_len); ++ } ++ ++ if (node->value != node->small_value) ++ free (node->value); ++ } ++ free (node); ++} ++ ++/******************************************************************/ ++/* Function : _asn1_find_up */ ++/* Description: return the father of the NODE_ASN element. */ ++/* Parameters: */ ++/* node: NODE_ASN element pointer. */ ++/* Return: Null if not found. */ ++/******************************************************************/ ++asn1_node ++_asn1_find_up (asn1_node_const node) ++{ ++ asn1_node_const p; ++ ++ if (node == NULL) ++ return NULL; ++ ++ p = node; ++ ++ while ((p->left != NULL) && (p->left->right == p)) ++ p = p->left; ++ ++ return p->left; ++} ++ ++static ++unsigned _asn1_is_up (asn1_node_const up_cand, asn1_node_const down) ++{ ++ asn1_node_const d, u; ++ ++ if (up_cand == NULL || down == NULL) ++ return 0; ++ ++ d = down; ++ ++ while ((u = _asn1_find_up(d)) != NULL && u != d) ++ { ++ if (u == up_cand) ++ return 1; ++ d = u; ++ } ++ ++ return 0; ++} ++ ++/******************************************************************/ ++/* Function : _asn1_delete_node_from_list */ ++/* Description: deletes the list element given */ ++/******************************************************************/ ++void ++_asn1_delete_node_from_list (list_type *list, asn1_node node) ++{ ++ list_type *p = list; ++ ++ while (p) ++ { ++ if (p->node == node) ++ p->node = NULL; ++ p = p->next; ++ } ++} ++ ++/******************************************************************/ ++/* Function : _asn1_delete_list */ ++/* Description: deletes the list elements (not the elements */ ++/* pointed by them). */ ++/******************************************************************/ ++void ++_asn1_delete_list (list_type *e_list) ++{ ++ list_type *p; ++ ++ while (e_list) ++ { ++ p = e_list; ++ e_list = e_list->next; ++ free (p); ++ } ++} ++ ++/******************************************************************/ ++/* Function : _asn1_delete_list_and nodes */ ++/* Description: deletes the list elements and the elements */ ++/* pointed by them. */ ++/******************************************************************/ ++void ++_asn1_delete_list_and_nodes (list_type *e_list) ++{ ++ list_type *p; ++ ++ while (e_list) ++ { ++ p = e_list; ++ e_list = e_list->next; ++ _asn1_remove_node (p->node, 0); ++ free (p); ++ } ++} ++ ++ ++char * ++_asn1_ltostr (int64_t v, char str[LTOSTR_MAX_SIZE]) ++{ ++ uint64_t d, r; ++ char temp[LTOSTR_MAX_SIZE]; ++ int count, k, start; ++ uint64_t val; ++ ++ if (v < 0) ++ { ++ str[0] = '-'; ++ start = 1; ++ val = -((uint64_t)v); ++ } ++ else ++ { ++ val = v; ++ start = 0; ++ } ++ ++ count = 0; ++ do ++ { ++ d = val / 10; ++ r = val - d * 10; ++ temp[start + count] = '0' + (char) r; ++ count++; ++ val = d; ++ } ++ while (val && ((start+count) < LTOSTR_MAX_SIZE-1)); ++ ++ for (k = 0; k < count; k++) ++ str[k + start] = temp[start + count - k - 1]; ++ str[count + start] = 0; ++ return str; ++} ++ ++ ++/******************************************************************/ ++/* Function : _asn1_change_integer_value */ ++/* Description: converts into DER coding the value assign to an */ ++/* INTEGER constant. */ ++/* Parameters: */ ++/* node: root of an ASN1element. */ ++/* Return: */ ++/* ASN1_ELEMENT_NOT_FOUND if NODE is NULL, */ ++/* otherwise ASN1_SUCCESS */ ++/******************************************************************/ ++int ++_asn1_change_integer_value (asn1_node node) ++{ ++ asn1_node p; ++ unsigned char val[SIZEOF_UNSIGNED_LONG_INT]; ++ unsigned char val2[SIZEOF_UNSIGNED_LONG_INT + 1]; ++ int len; ++ ++ if (node == NULL) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ p = node; ++ while (p) ++ { ++ if ((type_field (p->type) == ASN1_ETYPE_INTEGER) ++ && (p->type & CONST_ASSIGN)) ++ { ++ if (p->value) ++ { ++ _asn1_convert_integer (p->value, val, sizeof (val), &len); ++ asn1_octet_der (val, len, val2, &len); ++ _asn1_set_value (p, val2, len); ++ } ++ } ++ ++ if (p->down) ++ { ++ p = p->down; ++ } ++ else ++ { ++ if (p == node) ++ p = NULL; ++ else if (p->right) ++ p = p->right; ++ else ++ { ++ while (1) ++ { ++ p = _asn1_find_up (p); ++ if (p == node) ++ { ++ p = NULL; ++ break; ++ } ++ if (p && p->right) ++ { ++ p = p->right; ++ break; ++ } ++ } ++ } ++ } ++ } ++ ++ return ASN1_SUCCESS; ++} ++ ++#define MAX_CONSTANTS 1024 ++/******************************************************************/ ++/* Function : _asn1_expand_object_id */ ++/* Description: expand the IDs of an OBJECT IDENTIFIER constant. */ ++/* Parameters: */ ++/* list: root of an object list */ ++/* node: root of an ASN1 element. */ ++/* Return: */ ++/* ASN1_ELEMENT_NOT_FOUND if NODE is NULL, */ ++/* otherwise ASN1_SUCCESS */ ++/******************************************************************/ ++int ++_asn1_expand_object_id (list_type **list, asn1_node node) ++{ ++ asn1_node p, p2, p3, p4, p5; ++ char name_root[ASN1_MAX_NAME_SIZE], name2[2 * ASN1_MAX_NAME_SIZE + 1]; ++ int move, tlen, tries; ++ unsigned max_constants; ++ ++ if (node == NULL) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ _asn1_str_cpy (name_root, sizeof (name_root), node->name); ++ ++ p = node; ++ move = DOWN; ++ tries = 0; ++ ++ while (!((p == node) && (move == UP))) ++ { ++ if (move != UP) ++ { ++ if ((type_field (p->type) == ASN1_ETYPE_OBJECT_ID) ++ && (p->type & CONST_ASSIGN)) ++ { ++ p2 = p->down; ++ if (p2 && (type_field (p2->type) == ASN1_ETYPE_CONSTANT)) ++ { ++ if (p2->value && !c_isdigit (p2->value[0])) ++ { ++ _asn1_str_cpy (name2, sizeof (name2), name_root); ++ _asn1_str_cat (name2, sizeof (name2), "."); ++ _asn1_str_cat (name2, sizeof (name2), (char *) p2->value); ++ p3 = asn1_find_node (node, name2); ++ if (!p3 || _asn1_is_up(p2, p3) || ++ (type_field (p3->type) != ASN1_ETYPE_OBJECT_ID) || ++ !(p3->type & CONST_ASSIGN)) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ _asn1_set_down (p, p2->right); ++ if (p2->down) ++ _asn1_delete_structure (*list, &p2->down, 0); ++ _asn1_delete_node_from_list(*list, p2); ++ _asn1_remove_node (p2, 0); ++ p2 = p; ++ p4 = p3->down; ++ max_constants = 0; ++ while (p4) ++ { ++ if (type_field (p4->type) == ASN1_ETYPE_CONSTANT) ++ { ++ max_constants++; ++ if (max_constants == MAX_CONSTANTS) ++ return ASN1_RECURSION; ++ ++ p5 = ++ _asn1_add_single_node (ASN1_ETYPE_CONSTANT); ++ _asn1_set_name (p5, p4->name); ++ if (p4->value) ++ { ++ tlen = _asn1_strlen (p4->value); ++ if (tlen > 0) ++ _asn1_set_value (p5, p4->value, tlen + 1); ++ } ++ _asn1_add_static_node2(list, p5); ++ ++ if (p2 == p) ++ { ++ _asn1_set_right (p5, p->down); ++ _asn1_set_down (p, p5); ++ } ++ else ++ { ++ _asn1_set_right (p5, p2->right); ++ _asn1_set_right (p2, p5); ++ } ++ p2 = p5; ++ } ++ p4 = p4->right; ++ } ++ move = DOWN; ++ ++ tries++; ++ if (tries >= EXPAND_OBJECT_ID_MAX_RECURSION) ++ return ASN1_RECURSION; ++ ++ continue; ++ } ++ } ++ } ++ move = DOWN; ++ } ++ else ++ move = RIGHT; ++ ++ tries = 0; ++ if (move == DOWN) ++ { ++ if (p->down) ++ p = p->down; ++ else ++ move = RIGHT; ++ } ++ ++ if (p == node) ++ { ++ move = UP; ++ continue; ++ } ++ ++ if (move == RIGHT) ++ { ++ if (p && p->right) ++ p = p->right; ++ else ++ move = UP; ++ } ++ if (move == UP) ++ p = _asn1_find_up (p); ++ } ++ ++ /*******************************/ ++ /* expand DEFAULT */ ++ /*******************************/ ++ p = node; ++ move = DOWN; ++ ++ while (!((p == node) && (move == UP))) ++ { ++ if (move != UP) ++ { ++ if ((type_field (p->type) == ASN1_ETYPE_OBJECT_ID) && ++ (p->type & CONST_DEFAULT)) ++ { ++ p2 = p->down; ++ if (p2 && (type_field (p2->type) == ASN1_ETYPE_DEFAULT)) ++ { ++ _asn1_str_cpy (name2, sizeof (name2), name_root); ++ _asn1_str_cat (name2, sizeof (name2), "."); ++ if (p2->value) ++ _asn1_str_cat (name2, sizeof (name2), (char *) p2->value); ++ p3 = asn1_find_node (node, name2); ++ if (!p3 || (type_field (p3->type) != ASN1_ETYPE_OBJECT_ID) ++ || !(p3->type & CONST_ASSIGN)) ++ return ASN1_ELEMENT_NOT_FOUND; ++ p4 = p3->down; ++ name2[0] = 0; ++ while (p4) ++ { ++ if (type_field (p4->type) == ASN1_ETYPE_CONSTANT) ++ { ++ if (p4->value == NULL) ++ return ASN1_VALUE_NOT_FOUND; ++ ++ if (name2[0]) ++ _asn1_str_cat (name2, sizeof (name2), "."); ++ _asn1_str_cat (name2, sizeof (name2), ++ (char *) p4->value); ++ } ++ p4 = p4->right; ++ } ++ tlen = strlen (name2); ++ if (tlen > 0) ++ _asn1_set_value (p2, name2, tlen + 1); ++ } ++ } ++ move = DOWN; ++ } ++ else ++ move = RIGHT; ++ ++ if (move == DOWN) ++ { ++ if (p->down) ++ p = p->down; ++ else ++ move = RIGHT; ++ } ++ ++ if (p == node) ++ { ++ move = UP; ++ continue; ++ } ++ ++ if (move == RIGHT) ++ { ++ if (p && p->right) ++ p = p->right; ++ else ++ move = UP; ++ } ++ if (move == UP) ++ p = _asn1_find_up (p); ++ } ++ ++ return ASN1_SUCCESS; ++} ++ ++ ++/******************************************************************/ ++/* Function : _asn1_type_set_config */ ++/* Description: sets the CONST_SET and CONST_NOT_USED properties */ ++/* in the fields of the SET elements. */ ++/* Parameters: */ ++/* node: root of an ASN1 element. */ ++/* Return: */ ++/* ASN1_ELEMENT_NOT_FOUND if NODE is NULL, */ ++/* otherwise ASN1_SUCCESS */ ++/******************************************************************/ ++int ++_asn1_type_set_config (asn1_node node) ++{ ++ asn1_node p, p2; ++ int move; ++ ++ if (node == NULL) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ p = node; ++ move = DOWN; ++ ++ while (!((p == node) && (move == UP))) ++ { ++ if (move != UP) ++ { ++ if (type_field (p->type) == ASN1_ETYPE_SET) ++ { ++ p2 = p->down; ++ while (p2) ++ { ++ if (type_field (p2->type) != ASN1_ETYPE_TAG) ++ p2->type |= CONST_SET | CONST_NOT_USED; ++ p2 = p2->right; ++ } ++ } ++ move = DOWN; ++ } ++ else ++ move = RIGHT; ++ ++ if (move == DOWN) ++ { ++ if (p->down) ++ p = p->down; ++ else ++ move = RIGHT; ++ } ++ ++ if (p == node) ++ { ++ move = UP; ++ continue; ++ } ++ ++ if (move == RIGHT) ++ { ++ if (p && p->right) ++ p = p->right; ++ else ++ move = UP; ++ } ++ if (move == UP) ++ p = _asn1_find_up (p); ++ } ++ ++ return ASN1_SUCCESS; ++} ++ ++ ++/******************************************************************/ ++/* Function : _asn1_check_identifier */ ++/* Description: checks the definitions of all the identifiers */ ++/* and the first element of an OBJECT_ID (e.g. {pkix 0 4}). */ ++/* The _asn1_identifierMissing global variable is filled if */ ++/* necessary. */ ++/* Parameters: */ ++/* node: root of an ASN1 element. */ ++/* Return: */ ++/* ASN1_ELEMENT_NOT_FOUND if NODE is NULL, */ ++/* ASN1_IDENTIFIER_NOT_FOUND if an identifier is not defined, */ ++/* otherwise ASN1_SUCCESS */ ++/******************************************************************/ ++int ++_asn1_check_identifier (asn1_node_const node) ++{ ++ asn1_node_const p, p2; ++ char name2[ASN1_MAX_NAME_SIZE * 2 + 2]; ++ ++ if (node == NULL) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ p = node; ++ while (p) ++ { ++ if (p->value && type_field (p->type) == ASN1_ETYPE_IDENTIFIER) ++ { ++ _asn1_str_cpy (name2, sizeof (name2), node->name); ++ _asn1_str_cat (name2, sizeof (name2), "."); ++ _asn1_str_cat (name2, sizeof (name2), (char *) p->value); ++ p2 = asn1_find_node (node, name2); ++ if (p2 == NULL) ++ { ++ if (p->value) ++ _asn1_str_cpy (_asn1_identifierMissing, sizeof(_asn1_identifierMissing), (char*)p->value); ++ else ++ _asn1_strcpy (_asn1_identifierMissing, "(null)"); ++ return ASN1_IDENTIFIER_NOT_FOUND; ++ } ++ } ++ else if ((type_field (p->type) == ASN1_ETYPE_OBJECT_ID) && ++ (p->type & CONST_DEFAULT)) ++ { ++ p2 = p->down; ++ if (p2 && (type_field (p2->type) == ASN1_ETYPE_DEFAULT)) ++ { ++ _asn1_str_cpy (name2, sizeof (name2), node->name); ++ if (p2->value) ++ { ++ _asn1_str_cat (name2, sizeof (name2), "."); ++ _asn1_str_cat (name2, sizeof (name2), (char *) p2->value); ++ _asn1_str_cpy (_asn1_identifierMissing, sizeof(_asn1_identifierMissing), (char*)p2->value); ++ } ++ else ++ _asn1_strcpy (_asn1_identifierMissing, "(null)"); ++ ++ p2 = asn1_find_node (node, name2); ++ if (!p2 || (type_field (p2->type) != ASN1_ETYPE_OBJECT_ID) || ++ !(p2->type & CONST_ASSIGN)) ++ return ASN1_IDENTIFIER_NOT_FOUND; ++ else ++ _asn1_identifierMissing[0] = 0; ++ } ++ } ++ else if ((type_field (p->type) == ASN1_ETYPE_OBJECT_ID) && ++ (p->type & CONST_ASSIGN)) ++ { ++ p2 = p->down; ++ if (p2 && (type_field (p2->type) == ASN1_ETYPE_CONSTANT)) ++ { ++ if (p2->value && !c_isdigit (p2->value[0])) ++ { ++ _asn1_str_cpy (name2, sizeof (name2), node->name); ++ _asn1_str_cat (name2, sizeof (name2), "."); ++ _asn1_str_cat (name2, sizeof (name2), (char *) p2->value); ++ _asn1_str_cpy (_asn1_identifierMissing, sizeof(_asn1_identifierMissing), (char*)p2->value); ++ ++ p2 = asn1_find_node (node, name2); ++ if (!p2 || (type_field (p2->type) != ASN1_ETYPE_OBJECT_ID) ++ || !(p2->type & CONST_ASSIGN)) ++ return ASN1_IDENTIFIER_NOT_FOUND; ++ else ++ _asn1_identifierMissing[0] = 0; ++ } ++ } ++ } ++ ++ if (p->down) ++ { ++ p = p->down; ++ } ++ else if (p->right) ++ p = p->right; ++ else ++ { ++ while (p) ++ { ++ p = _asn1_find_up (p); ++ if (p == node) ++ { ++ p = NULL; ++ break; ++ } ++ if (p && p->right) ++ { ++ p = p->right; ++ break; ++ } ++ } ++ } ++ } ++ ++ return ASN1_SUCCESS; ++} ++ ++ ++/******************************************************************/ ++/* Function : _asn1_set_default_tag */ ++/* Description: sets the default IMPLICIT or EXPLICIT property in */ ++/* the tagged elements that don't have this declaration. */ ++/* Parameters: */ ++/* node: pointer to a DEFINITIONS element. */ ++/* Return: */ ++/* ASN1_ELEMENT_NOT_FOUND if NODE is NULL or not a pointer to */ ++/* a DEFINITIONS element, */ ++/* otherwise ASN1_SUCCESS */ ++/******************************************************************/ ++int ++_asn1_set_default_tag (asn1_node node) ++{ ++ asn1_node p; ++ ++ if ((node == NULL) || (type_field (node->type) != ASN1_ETYPE_DEFINITIONS)) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ p = node; ++ while (p) ++ { ++ if ((type_field (p->type) == ASN1_ETYPE_TAG) && ++ !(p->type & CONST_EXPLICIT) && !(p->type & CONST_IMPLICIT)) ++ { ++ if (node->type & CONST_EXPLICIT) ++ p->type |= CONST_EXPLICIT; ++ else ++ p->type |= CONST_IMPLICIT; ++ } ++ ++ if (p->down) ++ { ++ p = p->down; ++ } ++ else if (p->right) ++ p = p->right; ++ else ++ { ++ while (1) ++ { ++ p = _asn1_find_up (p); ++ if (p == node) ++ { ++ p = NULL; ++ break; ++ } ++ if (p && p->right) ++ { ++ p = p->right; ++ break; ++ } ++ } ++ } ++ } ++ ++ return ASN1_SUCCESS; ++} +diff --git a/grub-core/lib/libtasn1/lib/structure.c b/grub-core/lib/libtasn1/lib/structure.c +new file mode 100644 +index 00000000000..8189c56a4c9 +--- /dev/null ++++ b/grub-core/lib/libtasn1/lib/structure.c +@@ -0,0 +1,1220 @@ ++/* ++ * Copyright (C) 2002-2014 Free Software Foundation, Inc. ++ * ++ * This file is part of LIBTASN1. ++ * ++ * The LIBTASN1 library is free software; you can redistribute it ++ * and/or modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ++ * 02110-1301, USA ++ */ ++ ++ ++/*****************************************************/ ++/* File: structure.c */ ++/* Description: Functions to create and delete an */ ++/* ASN1 tree. */ ++/*****************************************************/ ++ ++ ++#include ++#include ++#include "parser_aux.h" ++#include ++ ++ ++extern char _asn1_identifierMissing[]; ++ ++ ++/******************************************************/ ++/* Function : _asn1_add_single_node */ ++/* Description: creates a new NODE_ASN element. */ ++/* Parameters: */ ++/* type: type of the new element (see ASN1_ETYPE_ */ ++/* and CONST_ constants). */ ++/* Return: pointer to the new element. */ ++/******************************************************/ ++asn1_node ++_asn1_add_single_node (unsigned int type) ++{ ++ asn1_node punt; ++ ++ punt = calloc (1, sizeof (struct asn1_node_st)); ++ if (punt == NULL) ++ return NULL; ++ ++ punt->type = type; ++ ++ return punt; ++} ++ ++ ++/******************************************************************/ ++/* Function : _asn1_find_left */ ++/* Description: returns the NODE_ASN element with RIGHT field that*/ ++/* points the element NODE. */ ++/* Parameters: */ ++/* node: NODE_ASN element pointer. */ ++/* Return: NULL if not found. */ ++/******************************************************************/ ++asn1_node ++_asn1_find_left (asn1_node_const node) ++{ ++ if ((node == NULL) || (node->left == NULL) || (node->left->down == node)) ++ return NULL; ++ ++ return node->left; ++} ++ ++ ++int ++_asn1_create_static_structure (asn1_node_const pointer, char *output_file_name, ++ char *vector_name) ++{ ++ FILE *file; ++ asn1_node_const p; ++ unsigned long t; ++ ++ file = fopen (output_file_name, "w"); ++ ++ if (file == NULL) ++ return ASN1_FILE_NOT_FOUND; ++ ++ fprintf (file, "#if HAVE_CONFIG_H\n"); ++ fprintf (file, "# include \"config.h\"\n"); ++ fprintf (file, "#endif\n\n"); ++ ++ fprintf (file, "#include \n\n"); ++ ++ fprintf (file, "const asn1_static_node %s[] = {\n", vector_name); ++ ++ p = pointer; ++ ++ while (p) ++ { ++ fprintf (file, " { "); ++ ++ if (p->name[0] != 0) ++ fprintf (file, "\"%s\", ", p->name); ++ else ++ fprintf (file, "NULL, "); ++ ++ t = p->type; ++ if (p->down) ++ t |= CONST_DOWN; ++ if (p->right) ++ t |= CONST_RIGHT; ++ ++ fprintf (file, "%lu, ", t); ++ ++ if (p->value) ++ fprintf (file, "\"%s\"},\n", p->value); ++ else ++ fprintf (file, "NULL },\n"); ++ ++ if (p->down) ++ { ++ p = p->down; ++ } ++ else if (p->right) ++ { ++ p = p->right; ++ } ++ else ++ { ++ while (1) ++ { ++ p = _asn1_find_up (p); ++ if (p == pointer) ++ { ++ p = NULL; ++ break; ++ } ++ if (p->right) ++ { ++ p = p->right; ++ break; ++ } ++ } ++ } ++ } ++ ++ fprintf (file, " { NULL, 0, NULL }\n};\n"); ++ ++ fclose (file); ++ ++ return ASN1_SUCCESS; ++} ++ ++ ++/** ++ * asn1_array2tree: ++ * @array: specify the array that contains ASN.1 declarations ++ * @definitions: return the pointer to the structure created by ++ * *ARRAY ASN.1 declarations ++ * @errorDescription: return the error description. ++ * ++ * Creates the structures needed to manage the ASN.1 definitions. ++ * @array is a vector created by asn1_parser2array(). ++ * ++ * Returns: %ASN1_SUCCESS if structure was created correctly, ++ * %ASN1_ELEMENT_NOT_EMPTY if *@definitions not NULL, ++ * %ASN1_IDENTIFIER_NOT_FOUND if in the file there is an identifier ++ * that is not defined (see @errorDescription for more information), ++ * %ASN1_ARRAY_ERROR if the array pointed by @array is wrong. ++ **/ ++int ++asn1_array2tree (const asn1_static_node * array, asn1_node * definitions, ++ char *errorDescription) ++{ ++ asn1_node p, p_last = NULL; ++ unsigned long k; ++ int move; ++ int result; ++ unsigned int type; ++ list_type *e_list = NULL; ++ ++ if (errorDescription) ++ errorDescription[0] = 0; ++ ++ if (*definitions != NULL) ++ return ASN1_ELEMENT_NOT_EMPTY; ++ ++ move = UP; ++ ++ for (k = 0; array[k].value || array[k].type || array[k].name; k++) ++ { ++ type = convert_old_type (array[k].type); ++ ++ p = _asn1_add_static_node (&e_list, type & (~CONST_DOWN)); ++ if (array[k].name) ++ _asn1_set_name (p, array[k].name); ++ if (array[k].value) ++ _asn1_set_value (p, array[k].value, strlen (array[k].value) + 1); ++ ++ if (*definitions == NULL) ++ *definitions = p; ++ ++ if (move == DOWN) ++ { ++ if (p_last && p_last->down) ++ _asn1_delete_structure (e_list, &p_last->down, 0); ++ _asn1_set_down (p_last, p); ++ } ++ else if (move == RIGHT) ++ { ++ if (p_last && p_last->right) ++ _asn1_delete_structure (e_list, &p_last->right, 0); ++ _asn1_set_right (p_last, p); ++ } ++ ++ p_last = p; ++ ++ if (type & CONST_DOWN) ++ move = DOWN; ++ else if (type & CONST_RIGHT) ++ move = RIGHT; ++ else ++ { ++ while (p_last != *definitions) ++ { ++ p_last = _asn1_find_up (p_last); ++ ++ if (p_last == NULL) ++ break; ++ ++ if (p_last->type & CONST_RIGHT) ++ { ++ p_last->type &= ~CONST_RIGHT; ++ move = RIGHT; ++ break; ++ } ++ } /* while */ ++ } ++ } /* while */ ++ ++ if (p_last == *definitions) ++ { ++ result = _asn1_check_identifier (*definitions); ++ if (result == ASN1_SUCCESS) ++ { ++ _asn1_change_integer_value (*definitions); ++ result = _asn1_expand_object_id (&e_list, *definitions); ++ } ++ } ++ else ++ { ++ result = ASN1_ARRAY_ERROR; ++ } ++ ++ if (errorDescription != NULL) ++ { ++ if (result == ASN1_IDENTIFIER_NOT_FOUND) ++ { ++ Estrcpy (errorDescription, ":: identifier '"); ++ Estrcat (errorDescription, _asn1_identifierMissing); ++ Estrcat (errorDescription, "' not found"); ++ } ++ else ++ errorDescription[0] = 0; ++ } ++ ++ if (result != ASN1_SUCCESS) ++ { ++ _asn1_delete_list_and_nodes (e_list); ++ *definitions = NULL; ++ } ++ else ++ _asn1_delete_list (e_list); ++ ++ return result; ++} ++ ++/** ++ * asn1_delete_structure: ++ * @structure: pointer to the structure that you want to delete. ++ * ++ * Deletes the structure *@structure. At the end, *@structure is set ++ * to NULL. ++ * ++ * Returns: %ASN1_SUCCESS if successful, %ASN1_ELEMENT_NOT_FOUND if ++ * *@structure was NULL. ++ **/ ++int ++asn1_delete_structure (asn1_node * structure) ++{ ++ return _asn1_delete_structure (NULL, structure, 0); ++} ++ ++/** ++ * asn1_delete_structure2: ++ * @structure: pointer to the structure that you want to delete. ++ * @flags: additional flags (see %ASN1_DELETE_FLAG) ++ * ++ * Deletes the structure *@structure. At the end, *@structure is set ++ * to NULL. ++ * ++ * Returns: %ASN1_SUCCESS if successful, %ASN1_ELEMENT_NOT_FOUND if ++ * *@structure was NULL. ++ **/ ++int ++asn1_delete_structure2 (asn1_node * structure, unsigned int flags) ++{ ++ return _asn1_delete_structure (NULL, structure, flags); ++} ++ ++int ++_asn1_delete_structure (list_type *e_list, asn1_node * structure, unsigned int flags) ++{ ++ asn1_node p, p2, p3; ++ ++ if (*structure == NULL) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ p = *structure; ++ while (p) ++ { ++ if (p->down) ++ { ++ p = p->down; ++ } ++ else ++ { /* no down */ ++ p2 = p->right; ++ if (p != *structure) ++ { ++ p3 = _asn1_find_up (p); ++ _asn1_set_down (p3, p2); ++ if (e_list) ++ _asn1_delete_node_from_list (e_list, p); ++ _asn1_remove_node (p, flags); ++ p = p3; ++ } ++ else ++ { /* p==root */ ++ p3 = _asn1_find_left (p); ++ if (!p3) ++ { ++ p3 = _asn1_find_up (p); ++ if (p3) ++ _asn1_set_down (p3, p2); ++ else ++ { ++ if (p->right) ++ p->right->left = NULL; ++ } ++ } ++ else ++ _asn1_set_right (p3, p2); ++ if (e_list) ++ _asn1_delete_node_from_list (e_list, p); ++ _asn1_remove_node (p, flags); ++ p = NULL; ++ } ++ } ++ } ++ ++ *structure = NULL; ++ return ASN1_SUCCESS; ++} ++ ++ ++/** ++ * asn1_delete_element: ++ * @structure: pointer to the structure that contains the element you ++ * want to delete. ++ * @element_name: element's name you want to delete. ++ * ++ * Deletes the element named *@element_name inside *@structure. ++ * ++ * Returns: %ASN1_SUCCESS if successful, %ASN1_ELEMENT_NOT_FOUND if ++ * the @element_name was not found. ++ **/ ++int ++asn1_delete_element (asn1_node structure, const char *element_name) ++{ ++ asn1_node p2, p3, source_node; ++ ++ source_node = asn1_find_node (structure, element_name); ++ ++ if (source_node == NULL) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ p2 = source_node->right; ++ p3 = _asn1_find_left (source_node); ++ if (!p3) ++ { ++ p3 = _asn1_find_up (source_node); ++ if (p3) ++ _asn1_set_down (p3, p2); ++ else if (source_node->right) ++ source_node->right->left = NULL; ++ } ++ else ++ _asn1_set_right (p3, p2); ++ ++ return asn1_delete_structure (&source_node); ++} ++ ++#ifndef __clang_analyzer__ ++asn1_node ++_asn1_copy_structure3 (asn1_node_const source_node) ++{ ++ asn1_node_const p_s; ++ asn1_node dest_node, p_d, p_d_prev; ++ int move; ++ ++ if (source_node == NULL) ++ return NULL; ++ ++ dest_node = _asn1_add_single_node (source_node->type); ++ ++ p_s = source_node; ++ p_d = dest_node; ++ ++ move = DOWN; ++ ++ do ++ { ++ if (move != UP) ++ { ++ if (p_s->name[0] != 0) ++ _asn1_cpy_name (p_d, p_s); ++ if (p_s->value) ++ _asn1_set_value (p_d, p_s->value, p_s->value_len); ++ if (p_s->down) ++ { ++ p_s = p_s->down; ++ p_d_prev = p_d; ++ p_d = _asn1_add_single_node (p_s->type); ++ _asn1_set_down (p_d_prev, p_d); ++ continue; ++ } ++ p_d->start = p_s->start; ++ p_d->end = p_s->end; ++ } ++ ++ if (p_s == source_node) ++ break; ++ ++ if (p_s->right) ++ { ++ move = RIGHT; ++ p_s = p_s->right; ++ p_d_prev = p_d; ++ p_d = _asn1_add_single_node (p_s->type); ++ _asn1_set_right (p_d_prev, p_d); ++ } ++ else ++ { ++ move = UP; ++ p_s = _asn1_find_up (p_s); ++ p_d = _asn1_find_up (p_d); ++ } ++ } ++ while (p_s != source_node); ++ return dest_node; ++} ++#else ++ ++/* Non-production code */ ++asn1_node ++_asn1_copy_structure3 (asn1_node_const source_node) ++{ ++ return NULL; ++} ++#endif /* __clang_analyzer__ */ ++ ++ ++static asn1_node ++_asn1_copy_structure2 (asn1_node_const root, const char *source_name) ++{ ++ asn1_node source_node; ++ ++ source_node = asn1_find_node (root, source_name); ++ ++ return _asn1_copy_structure3 (source_node); ++ ++} ++ ++ ++static int ++_asn1_type_choice_config (asn1_node node) ++{ ++ asn1_node p, p2, p3, p4; ++ int move, tlen; ++ ++ if (node == NULL) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ p = node; ++ move = DOWN; ++ ++ while (!((p == node) && (move == UP))) ++ { ++ if (move != UP) ++ { ++ if ((type_field (p->type) == ASN1_ETYPE_CHOICE) ++ && (p->type & CONST_TAG)) ++ { ++ p2 = p->down; ++ while (p2) ++ { ++ if (type_field (p2->type) != ASN1_ETYPE_TAG) ++ { ++ p2->type |= CONST_TAG; ++ p3 = _asn1_find_left (p2); ++ while (p3) ++ { ++ if (type_field (p3->type) == ASN1_ETYPE_TAG) ++ { ++ p4 = _asn1_add_single_node (p3->type); ++ tlen = _asn1_strlen (p3->value); ++ if (tlen > 0) ++ _asn1_set_value (p4, p3->value, tlen + 1); ++ _asn1_set_right (p4, p2->down); ++ _asn1_set_down (p2, p4); ++ } ++ p3 = _asn1_find_left (p3); ++ } ++ } ++ p2 = p2->right; ++ } ++ p->type &= ~(CONST_TAG); ++ p2 = p->down; ++ while (p2) ++ { ++ p3 = p2->right; ++ if (type_field (p2->type) == ASN1_ETYPE_TAG) ++ asn1_delete_structure (&p2); ++ p2 = p3; ++ } ++ } ++ move = DOWN; ++ } ++ else ++ move = RIGHT; ++ ++ if (move == DOWN) ++ { ++ if (p->down) ++ p = p->down; ++ else ++ move = RIGHT; ++ } ++ ++ if (p == node) ++ { ++ move = UP; ++ continue; ++ } ++ ++ if (move == RIGHT) ++ { ++ if (p->right) ++ p = p->right; ++ else ++ move = UP; ++ } ++ if (move == UP) ++ p = _asn1_find_up (p); ++ } ++ ++ return ASN1_SUCCESS; ++} ++ ++ ++static int ++_asn1_expand_identifier (asn1_node * node, asn1_node_const root) ++{ ++ asn1_node p, p2, p3; ++ char name2[ASN1_MAX_NAME_SIZE + 2]; ++ int move; ++ ++ if (node == NULL) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ p = *node; ++ move = DOWN; ++ ++ while (!((p == *node) && (move == UP))) ++ { ++ if (move != UP) ++ { ++ if (type_field (p->type) == ASN1_ETYPE_IDENTIFIER) ++ { ++ snprintf (name2, sizeof (name2), "%s.%s", root->name, p->value); ++ p2 = _asn1_copy_structure2 (root, name2); ++ if (p2 == NULL) ++ { ++ return ASN1_IDENTIFIER_NOT_FOUND; ++ } ++ _asn1_cpy_name (p2, p); ++ p2->right = p->right; ++ p2->left = p->left; ++ if (p->right) ++ p->right->left = p2; ++ p3 = p->down; ++ if (p3) ++ { ++ while (p3->right) ++ p3 = p3->right; ++ _asn1_set_right (p3, p2->down); ++ _asn1_set_down (p2, p->down); ++ } ++ ++ p3 = _asn1_find_left (p); ++ if (p3) ++ _asn1_set_right (p3, p2); ++ else ++ { ++ p3 = _asn1_find_up (p); ++ if (p3) ++ _asn1_set_down (p3, p2); ++ else ++ { ++ p2->left = NULL; ++ } ++ } ++ ++ if (p->type & CONST_SIZE) ++ p2->type |= CONST_SIZE; ++ if (p->type & CONST_TAG) ++ p2->type |= CONST_TAG; ++ if (p->type & CONST_OPTION) ++ p2->type |= CONST_OPTION; ++ if (p->type & CONST_DEFAULT) ++ p2->type |= CONST_DEFAULT; ++ if (p->type & CONST_SET) ++ p2->type |= CONST_SET; ++ if (p->type & CONST_NOT_USED) ++ p2->type |= CONST_NOT_USED; ++ ++ if (p == *node) ++ *node = p2; ++ _asn1_remove_node (p, 0); ++ p = p2; ++ move = DOWN; ++ continue; ++ } ++ move = DOWN; ++ } ++ else ++ move = RIGHT; ++ ++ if (move == DOWN) ++ { ++ if (p->down) ++ p = p->down; ++ else ++ move = RIGHT; ++ } ++ ++ if (p == *node) ++ { ++ move = UP; ++ continue; ++ } ++ ++ if (move == RIGHT) ++ { ++ if (p->right) ++ p = p->right; ++ else ++ move = UP; ++ } ++ if (move == UP) ++ p = _asn1_find_up (p); ++ } ++ ++ return ASN1_SUCCESS; ++} ++ ++ ++/** ++ * asn1_create_element: ++ * @definitions: pointer to the structure returned by "parser_asn1" function ++ * @source_name: the name of the type of the new structure (must be ++ * inside p_structure). ++ * @element: pointer to the structure created. ++ * ++ * Creates a structure of type @source_name. Example using ++ * "pkix.asn": ++ * ++ * rc = asn1_create_element(cert_def, "PKIX1.Certificate", certptr); ++ * ++ * Returns: %ASN1_SUCCESS if creation OK, %ASN1_ELEMENT_NOT_FOUND if ++ * @source_name is not known. ++ **/ ++int ++asn1_create_element (asn1_node_const definitions, const char *source_name, ++ asn1_node * element) ++{ ++ asn1_node dest_node; ++ int res; ++ ++ dest_node = _asn1_copy_structure2 (definitions, source_name); ++ ++ if (dest_node == NULL) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ _asn1_set_name (dest_node, ""); ++ ++ res = _asn1_expand_identifier (&dest_node, definitions); ++ _asn1_type_choice_config (dest_node); ++ ++ *element = dest_node; ++ ++ return res; ++} ++ ++ ++/** ++ * asn1_print_structure: ++ * @out: pointer to the output file (e.g. stdout). ++ * @structure: pointer to the structure that you want to visit. ++ * @name: an element of the structure ++ * @mode: specify how much of the structure to print, can be ++ * %ASN1_PRINT_NAME, %ASN1_PRINT_NAME_TYPE, ++ * %ASN1_PRINT_NAME_TYPE_VALUE, or %ASN1_PRINT_ALL. ++ * ++ * Prints on the @out file descriptor the structure's tree starting ++ * from the @name element inside the structure @structure. ++ **/ ++void ++asn1_print_structure (FILE * out, asn1_node_const structure, const char *name, ++ int mode) ++{ ++ asn1_node_const p, root; ++ int k, indent = 0, len, len2, len3; ++ ++ if (out == NULL) ++ return; ++ ++ root = asn1_find_node (structure, name); ++ ++ if (root == NULL) ++ return; ++ ++ p = root; ++ while (p) ++ { ++ if (mode == ASN1_PRINT_ALL) ++ { ++ for (k = 0; k < indent; k++) ++ fprintf (out, " "); ++ fprintf (out, "name:"); ++ if (p->name[0] != 0) ++ fprintf (out, "%s ", p->name); ++ else ++ fprintf (out, "NULL "); ++ } ++ else ++ { ++ switch (type_field (p->type)) ++ { ++ case ASN1_ETYPE_CONSTANT: ++ case ASN1_ETYPE_TAG: ++ case ASN1_ETYPE_SIZE: ++ break; ++ default: ++ for (k = 0; k < indent; k++) ++ fprintf (out, " "); ++ fprintf (out, "name:"); ++ if (p->name[0] != 0) ++ fprintf (out, "%s ", p->name); ++ else ++ fprintf (out, "NULL "); ++ } ++ } ++ ++ if (mode != ASN1_PRINT_NAME) ++ { ++ unsigned type = type_field (p->type); ++ switch (type) ++ { ++ case ASN1_ETYPE_CONSTANT: ++ if (mode == ASN1_PRINT_ALL) ++ fprintf (out, "type:CONST"); ++ break; ++ case ASN1_ETYPE_TAG: ++ if (mode == ASN1_PRINT_ALL) ++ fprintf (out, "type:TAG"); ++ break; ++ case ASN1_ETYPE_SIZE: ++ if (mode == ASN1_PRINT_ALL) ++ fprintf (out, "type:SIZE"); ++ break; ++ case ASN1_ETYPE_DEFAULT: ++ fprintf (out, "type:DEFAULT"); ++ break; ++ case ASN1_ETYPE_IDENTIFIER: ++ fprintf (out, "type:IDENTIFIER"); ++ break; ++ case ASN1_ETYPE_ANY: ++ fprintf (out, "type:ANY"); ++ break; ++ case ASN1_ETYPE_CHOICE: ++ fprintf (out, "type:CHOICE"); ++ break; ++ case ASN1_ETYPE_DEFINITIONS: ++ fprintf (out, "type:DEFINITIONS"); ++ break; ++ CASE_HANDLED_ETYPES: ++ fprintf (out, "%s", _asn1_tags[type].desc); ++ break; ++ default: ++ break; ++ } ++ } ++ ++ if ((mode == ASN1_PRINT_NAME_TYPE_VALUE) || (mode == ASN1_PRINT_ALL)) ++ { ++ switch (type_field (p->type)) ++ { ++ case ASN1_ETYPE_CONSTANT: ++ if (mode == ASN1_PRINT_ALL) ++ if (p->value) ++ fprintf (out, " value:%s", p->value); ++ break; ++ case ASN1_ETYPE_TAG: ++ if (mode == ASN1_PRINT_ALL) ++ if (p->value) ++ fprintf (out, " value:%s", p->value); ++ break; ++ case ASN1_ETYPE_SIZE: ++ if (mode == ASN1_PRINT_ALL) ++ if (p->value) ++ fprintf (out, " value:%s", p->value); ++ break; ++ case ASN1_ETYPE_DEFAULT: ++ if (p->value) ++ fprintf (out, " value:%s", p->value); ++ else if (p->type & CONST_TRUE) ++ fprintf (out, " value:TRUE"); ++ else if (p->type & CONST_FALSE) ++ fprintf (out, " value:FALSE"); ++ break; ++ case ASN1_ETYPE_IDENTIFIER: ++ if (p->value) ++ fprintf (out, " value:%s", p->value); ++ break; ++ case ASN1_ETYPE_INTEGER: ++ if (p->value) ++ { ++ len2 = -1; ++ len = asn1_get_length_der (p->value, p->value_len, &len2); ++ fprintf (out, " value:0x"); ++ if (len > 0) ++ for (k = 0; k < len; k++) ++ fprintf (out, "%02x", (unsigned) (p->value)[k + len2]); ++ } ++ break; ++ case ASN1_ETYPE_ENUMERATED: ++ if (p->value) ++ { ++ len2 = -1; ++ len = asn1_get_length_der (p->value, p->value_len, &len2); ++ fprintf (out, " value:0x"); ++ if (len > 0) ++ for (k = 0; k < len; k++) ++ fprintf (out, "%02x", (unsigned) (p->value)[k + len2]); ++ } ++ break; ++ case ASN1_ETYPE_BOOLEAN: ++ if (p->value) ++ { ++ if (p->value[0] == 'T') ++ fprintf (out, " value:TRUE"); ++ else if (p->value[0] == 'F') ++ fprintf (out, " value:FALSE"); ++ } ++ break; ++ case ASN1_ETYPE_BIT_STRING: ++ if (p->value) ++ { ++ len2 = -1; ++ len = asn1_get_length_der (p->value, p->value_len, &len2); ++ if (len > 0) ++ { ++ fprintf (out, " value(%i):", ++ (len - 1) * 8 - (p->value[len2])); ++ for (k = 1; k < len; k++) ++ fprintf (out, "%02x", (unsigned) (p->value)[k + len2]); ++ } ++ } ++ break; ++ case ASN1_ETYPE_GENERALIZED_TIME: ++ case ASN1_ETYPE_UTC_TIME: ++ if (p->value) ++ { ++ fprintf (out, " value:"); ++ for (k = 0; k < p->value_len; k++) ++ fprintf (out, "%c", (p->value)[k]); ++ } ++ break; ++ case ASN1_ETYPE_GENERALSTRING: ++ case ASN1_ETYPE_NUMERIC_STRING: ++ case ASN1_ETYPE_IA5_STRING: ++ case ASN1_ETYPE_TELETEX_STRING: ++ case ASN1_ETYPE_PRINTABLE_STRING: ++ case ASN1_ETYPE_UNIVERSAL_STRING: ++ case ASN1_ETYPE_UTF8_STRING: ++ case ASN1_ETYPE_VISIBLE_STRING: ++ if (p->value) ++ { ++ len2 = -1; ++ len = asn1_get_length_der (p->value, p->value_len, &len2); ++ fprintf (out, " value:"); ++ if (len > 0) ++ for (k = 0; k < len; k++) ++ fprintf (out, "%c", (p->value)[k + len2]); ++ } ++ break; ++ case ASN1_ETYPE_BMP_STRING: ++ case ASN1_ETYPE_OCTET_STRING: ++ if (p->value) ++ { ++ len2 = -1; ++ len = asn1_get_length_der (p->value, p->value_len, &len2); ++ fprintf (out, " value:"); ++ if (len > 0) ++ for (k = 0; k < len; k++) ++ fprintf (out, "%02x", (unsigned) (p->value)[k + len2]); ++ } ++ break; ++ case ASN1_ETYPE_OBJECT_ID: ++ if (p->value) ++ fprintf (out, " value:%s", p->value); ++ break; ++ case ASN1_ETYPE_ANY: ++ if (p->value) ++ { ++ len3 = -1; ++ len2 = asn1_get_length_der (p->value, p->value_len, &len3); ++ fprintf (out, " value:"); ++ if (len2 > 0) ++ for (k = 0; k < len2; k++) ++ fprintf (out, "%02x", (unsigned) (p->value)[k + len3]); ++ } ++ break; ++ case ASN1_ETYPE_SET: ++ case ASN1_ETYPE_SET_OF: ++ case ASN1_ETYPE_CHOICE: ++ case ASN1_ETYPE_DEFINITIONS: ++ case ASN1_ETYPE_SEQUENCE_OF: ++ case ASN1_ETYPE_SEQUENCE: ++ case ASN1_ETYPE_NULL: ++ break; ++ default: ++ break; ++ } ++ } ++ ++ if (mode == ASN1_PRINT_ALL) ++ { ++ if (p->type & 0x1FFFFF00) ++ { ++ fprintf (out, " attr:"); ++ if (p->type & CONST_UNIVERSAL) ++ fprintf (out, "UNIVERSAL,"); ++ if (p->type & CONST_PRIVATE) ++ fprintf (out, "PRIVATE,"); ++ if (p->type & CONST_APPLICATION) ++ fprintf (out, "APPLICATION,"); ++ if (p->type & CONST_EXPLICIT) ++ fprintf (out, "EXPLICIT,"); ++ if (p->type & CONST_IMPLICIT) ++ fprintf (out, "IMPLICIT,"); ++ if (p->type & CONST_TAG) ++ fprintf (out, "TAG,"); ++ if (p->type & CONST_DEFAULT) ++ fprintf (out, "DEFAULT,"); ++ if (p->type & CONST_TRUE) ++ fprintf (out, "TRUE,"); ++ if (p->type & CONST_FALSE) ++ fprintf (out, "FALSE,"); ++ if (p->type & CONST_LIST) ++ fprintf (out, "LIST,"); ++ if (p->type & CONST_MIN_MAX) ++ fprintf (out, "MIN_MAX,"); ++ if (p->type & CONST_OPTION) ++ fprintf (out, "OPTION,"); ++ if (p->type & CONST_1_PARAM) ++ fprintf (out, "1_PARAM,"); ++ if (p->type & CONST_SIZE) ++ fprintf (out, "SIZE,"); ++ if (p->type & CONST_DEFINED_BY) ++ fprintf (out, "DEF_BY,"); ++ if (p->type & CONST_GENERALIZED) ++ fprintf (out, "GENERALIZED,"); ++ if (p->type & CONST_UTC) ++ fprintf (out, "UTC,"); ++ if (p->type & CONST_SET) ++ fprintf (out, "SET,"); ++ if (p->type & CONST_NOT_USED) ++ fprintf (out, "NOT_USED,"); ++ if (p->type & CONST_ASSIGN) ++ fprintf (out, "ASSIGNMENT,"); ++ } ++ } ++ ++ if (mode == ASN1_PRINT_ALL) ++ { ++ fprintf (out, "\n"); ++ } ++ else ++ { ++ switch (type_field (p->type)) ++ { ++ case ASN1_ETYPE_CONSTANT: ++ case ASN1_ETYPE_TAG: ++ case ASN1_ETYPE_SIZE: ++ break; ++ default: ++ fprintf (out, "\n"); ++ } ++ } ++ ++ if (p->down) ++ { ++ p = p->down; ++ indent += 2; ++ } ++ else if (p == root) ++ { ++ p = NULL; ++ break; ++ } ++ else if (p->right) ++ p = p->right; ++ else ++ { ++ while (1) ++ { ++ p = _asn1_find_up (p); ++ if (p == root) ++ { ++ p = NULL; ++ break; ++ } ++ indent -= 2; ++ if (p->right) ++ { ++ p = p->right; ++ break; ++ } ++ } ++ } ++ } ++} ++ ++ ++ ++/** ++ * asn1_number_of_elements: ++ * @element: pointer to the root of an ASN1 structure. ++ * @name: the name of a sub-structure of ROOT. ++ * @num: pointer to an integer where the result will be stored ++ * ++ * Counts the number of elements of a sub-structure called NAME with ++ * names equal to "?1","?2", ... ++ * ++ * Returns: %ASN1_SUCCESS if successful, %ASN1_ELEMENT_NOT_FOUND if ++ * @name is not known, %ASN1_GENERIC_ERROR if pointer @num is %NULL. ++ **/ ++int ++asn1_number_of_elements (asn1_node_const element, const char *name, int *num) ++{ ++ asn1_node_const node, p; ++ ++ if (num == NULL) ++ return ASN1_GENERIC_ERROR; ++ ++ *num = 0; ++ ++ node = asn1_find_node (element, name); ++ if (node == NULL) ++ return ASN1_ELEMENT_NOT_FOUND; ++ ++ p = node->down; ++ ++ while (p) ++ { ++ if (p->name[0] == '?') ++ (*num)++; ++ p = p->right; ++ } ++ ++ return ASN1_SUCCESS; ++} ++ ++ ++/** ++ * asn1_find_structure_from_oid: ++ * @definitions: ASN1 definitions ++ * @oidValue: value of the OID to search (e.g. "1.2.3.4"). ++ * ++ * Search the structure that is defined just after an OID definition. ++ * ++ * Returns: %NULL when @oidValue not found, otherwise the pointer to a ++ * constant string that contains the element name defined just after ++ * the OID. ++ **/ ++const char * ++asn1_find_structure_from_oid (asn1_node_const definitions, const char *oidValue) ++{ ++ char name[2 * ASN1_MAX_NAME_SIZE + 2]; ++ char value[ASN1_MAX_NAME_SIZE]; ++ asn1_node p; ++ int len; ++ int result; ++ const char *definitionsName; ++ ++ if ((definitions == NULL) || (oidValue == NULL)) ++ return NULL; /* ASN1_ELEMENT_NOT_FOUND; */ ++ ++ definitionsName = definitions->name; ++ ++ /* search the OBJECT_ID into definitions */ ++ p = definitions->down; ++ while (p) ++ { ++ if ((type_field (p->type) == ASN1_ETYPE_OBJECT_ID) && ++ (p->type & CONST_ASSIGN)) ++ { ++ snprintf(name, sizeof(name), "%s.%s", definitionsName, p->name); ++ ++ len = ASN1_MAX_NAME_SIZE; ++ result = asn1_read_value (definitions, name, value, &len); ++ ++ if ((result == ASN1_SUCCESS) && (!strcmp (oidValue, value))) ++ { ++ p = p->right; ++ if (p == NULL) /* reach the end of ASN1 definitions */ ++ return NULL; /* ASN1_ELEMENT_NOT_FOUND; */ ++ ++ return p->name; ++ } ++ } ++ p = p->right; ++ } ++ ++ return NULL; /* ASN1_ELEMENT_NOT_FOUND; */ ++} ++ ++/** ++ * asn1_copy_node: ++ * @dst: Destination asn1 node. ++ * @dst_name: Field name in destination node. ++ * @src: Source asn1 node. ++ * @src_name: Field name in source node. ++ * ++ * Create a deep copy of a asn1_node variable. That ++ * function requires @dst to be expanded using asn1_create_element(). ++ * ++ * Returns: Return %ASN1_SUCCESS on success. ++ **/ ++int ++asn1_copy_node (asn1_node dst, const char *dst_name, ++ asn1_node_const src, const char *src_name) ++{ ++ int result; ++ asn1_node dst_node; ++ void *data = NULL; ++ int size = 0; ++ ++ result = asn1_der_coding (src, src_name, NULL, &size, NULL); ++ if (result != ASN1_MEM_ERROR) ++ return result; ++ ++ data = malloc (size); ++ if (data == NULL) ++ return ASN1_MEM_ERROR; ++ ++ result = asn1_der_coding (src, src_name, data, &size, NULL); ++ if (result != ASN1_SUCCESS) ++ { ++ free (data); ++ return result; ++ } ++ ++ dst_node = asn1_find_node (dst, dst_name); ++ if (dst_node == NULL) ++ { ++ free (data); ++ return ASN1_ELEMENT_NOT_FOUND; ++ } ++ ++ result = asn1_der_decoding (&dst_node, data, size, NULL); ++ ++ free (data); ++ ++ return result; ++} ++ ++/** ++ * asn1_dup_node: ++ * @src: Source asn1 node. ++ * @src_name: Field name in source node. ++ * ++ * Create a deep copy of a asn1_node variable. This function ++ * will return an exact copy of the provided structure. ++ * ++ * Returns: Return %NULL on failure. ++ **/ ++asn1_node ++asn1_dup_node (asn1_node_const src, const char *src_name) ++{ ++ return _asn1_copy_structure2(src, src_name); ++} +diff --git a/grub-core/lib/libtasn1/lib/element.h b/grub-core/lib/libtasn1/lib/element.h +new file mode 100644 +index 00000000000..440a33f4bb1 +--- /dev/null ++++ b/grub-core/lib/libtasn1/lib/element.h +@@ -0,0 +1,40 @@ ++/* ++ * Copyright (C) 2000-2014 Free Software Foundation, Inc. ++ * ++ * This file is part of LIBTASN1. ++ * ++ * The LIBTASN1 library is free software; you can redistribute it ++ * and/or modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ++ * 02110-1301, USA ++ */ ++ ++#ifndef _ELEMENT_H ++#define _ELEMENT_H ++ ++ ++struct node_tail_cache_st ++{ ++ asn1_node head; /* the first element of the sequence */ ++ asn1_node tail; ++}; ++ ++int _asn1_append_sequence_set (asn1_node node, struct node_tail_cache_st *pcached); ++ ++int _asn1_convert_integer (const unsigned char *value, ++ unsigned char *value_out, ++ int value_out_size, int *len); ++ ++void _asn1_hierarchical_name (asn1_node_const node, char *name, int name_size); ++ ++#endif +diff --git a/grub-core/lib/libtasn1/lib/gstr.h b/grub-core/lib/libtasn1/lib/gstr.h +new file mode 100644 +index 00000000000..48229844ff3 +--- /dev/null ++++ b/grub-core/lib/libtasn1/lib/gstr.h +@@ -0,0 +1,47 @@ ++/* ++ * Copyright (C) 2002-2014 Free Software Foundation, Inc. ++ * ++ * This file is part of LIBTASN1. ++ * ++ * The LIBTASN1 library is free software; you can redistribute it ++ * and/or modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ++ * 02110-1301, USA ++ */ ++ ++#ifndef GSTR_H ++# define GSTR_H ++ ++unsigned int _asn1_str_cpy (char *dest, size_t dest_tot_size, ++ const char *src); ++void _asn1_str_cat (char *dest, size_t dest_tot_size, const char *src); ++ ++#define Estrcpy(x,y) _asn1_str_cpy(x,ASN1_MAX_ERROR_DESCRIPTION_SIZE,y) ++#define Estrcat(x,y) _asn1_str_cat(x,ASN1_MAX_ERROR_DESCRIPTION_SIZE,y) ++ ++inline static ++void safe_memset(void *data, int c, size_t size) ++{ ++ volatile unsigned volatile_zero = 0; ++ volatile char *vdata = (volatile char*)data; ++ ++ /* This is based on a nice trick for safe memset, ++ * sent by David Jacobson in the openssl-dev mailing list. ++ */ ++ ++ if (size > 0) do { ++ memset(data, c, size); ++ } while(vdata[volatile_zero] != c); ++} ++ ++#endif /* GSTR_H */ +diff --git a/grub-core/lib/libtasn1/lib/int.h b/grub-core/lib/libtasn1/lib/int.h +new file mode 100644 +index 00000000000..ea1625786c1 +--- /dev/null ++++ b/grub-core/lib/libtasn1/lib/int.h +@@ -0,0 +1,221 @@ ++/* ++ * Copyright (C) 2002-2014 Free Software Foundation, Inc. ++ * ++ * This file is part of LIBTASN1. ++ * ++ * The LIBTASN1 library is free software; you can redistribute it ++ * and/or modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ++ * 02110-1301, USA ++ */ ++ ++#ifndef INT_H ++#define INT_H ++ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include ++#include ++#include ++#include ++ ++#ifdef HAVE_SYS_TYPES_H ++#include ++#endif ++ ++#include ++ ++#define ASN1_SMALL_VALUE_SIZE 16 ++ ++/* This structure is also in libtasn1.h, but then contains less ++ fields. You cannot make any modifications to these first fields ++ without breaking ABI. */ ++struct asn1_node_st ++{ ++ /* public fields: */ ++ char name[ASN1_MAX_NAME_SIZE + 1]; /* Node name */ ++ unsigned int name_hash; ++ unsigned int type; /* Node type */ ++ unsigned char *value; /* Node value */ ++ int value_len; ++ asn1_node down; /* Pointer to the son node */ ++ asn1_node right; /* Pointer to the brother node */ ++ asn1_node left; /* Pointer to the next list element */ ++ /* private fields: */ ++ unsigned char small_value[ASN1_SMALL_VALUE_SIZE]; /* For small values */ ++ ++ /* values used during decoding/coding */ ++ int tmp_ival; ++ unsigned start; /* the start of the DER sequence - if decoded */ ++ unsigned end; /* the end of the DER sequence - if decoded */ ++}; ++ ++typedef struct tag_and_class_st ++{ ++ unsigned tag; ++ unsigned class; ++ const char *desc; ++} tag_and_class_st; ++ ++/* the types that are handled in _asn1_tags */ ++#define CASE_HANDLED_ETYPES \ ++ case ASN1_ETYPE_NULL: \ ++ case ASN1_ETYPE_BOOLEAN: \ ++ case ASN1_ETYPE_INTEGER: \ ++ case ASN1_ETYPE_ENUMERATED: \ ++ case ASN1_ETYPE_OBJECT_ID: \ ++ case ASN1_ETYPE_OCTET_STRING: \ ++ case ASN1_ETYPE_GENERALSTRING: \ ++ case ASN1_ETYPE_NUMERIC_STRING: \ ++ case ASN1_ETYPE_IA5_STRING: \ ++ case ASN1_ETYPE_TELETEX_STRING: \ ++ case ASN1_ETYPE_PRINTABLE_STRING: \ ++ case ASN1_ETYPE_UNIVERSAL_STRING: \ ++ case ASN1_ETYPE_BMP_STRING: \ ++ case ASN1_ETYPE_UTF8_STRING: \ ++ case ASN1_ETYPE_VISIBLE_STRING: \ ++ case ASN1_ETYPE_BIT_STRING: \ ++ case ASN1_ETYPE_SEQUENCE: \ ++ case ASN1_ETYPE_SEQUENCE_OF: \ ++ case ASN1_ETYPE_SET: \ ++ case ASN1_ETYPE_UTC_TIME: \ ++ case ASN1_ETYPE_GENERALIZED_TIME: \ ++ case ASN1_ETYPE_SET_OF ++ ++#define ETYPE_TAG(etype) (_asn1_tags[etype].tag) ++#define ETYPE_CLASS(etype) (_asn1_tags[etype].class) ++#define ETYPE_OK(etype) (((etype) != ASN1_ETYPE_INVALID && \ ++ (etype) <= _asn1_tags_size && \ ++ _asn1_tags[(etype)].desc != NULL)?1:0) ++ ++#define ETYPE_IS_STRING(etype) ((etype == ASN1_ETYPE_GENERALSTRING || \ ++ etype == ASN1_ETYPE_NUMERIC_STRING || etype == ASN1_ETYPE_IA5_STRING || \ ++ etype == ASN1_ETYPE_TELETEX_STRING || etype == ASN1_ETYPE_PRINTABLE_STRING || \ ++ etype == ASN1_ETYPE_UNIVERSAL_STRING || etype == ASN1_ETYPE_BMP_STRING || \ ++ etype == ASN1_ETYPE_UTF8_STRING || etype == ASN1_ETYPE_VISIBLE_STRING || \ ++ etype == ASN1_ETYPE_OCTET_STRING)?1:0) ++ ++extern unsigned int _asn1_tags_size; ++extern const tag_and_class_st _asn1_tags[]; ++ ++#define _asn1_strlen(s) strlen((const char *) s) ++#define _asn1_strtol(n,e,b) strtol((const char *) n, e, b) ++#define _asn1_strtoul(n,e,b) strtoul((const char *) n, e, b) ++#define _asn1_strcmp(a,b) strcmp((const char *)a, (const char *)b) ++#define _asn1_strcpy(a,b) strcpy((char *)a, (const char *)b) ++#define _asn1_strcat(a,b) strcat((char *)a, (const char *)b) ++ ++#if SIZEOF_UNSIGNED_LONG_INT == 8 ++# define _asn1_strtou64(n,e,b) strtoul((const char *) n, e, b) ++#else ++# define _asn1_strtou64(n,e,b) strtoull((const char *) n, e, b) ++#endif ++ ++#define MAX_LOG_SIZE 1024 /* maximum number of characters of a log message */ ++ ++/* Define used for visiting trees. */ ++#define UP 1 ++#define RIGHT 2 ++#define DOWN 3 ++ ++/***********************************************************************/ ++/* List of constants to better specify the type of typedef asn1_node_st. */ ++/***********************************************************************/ ++/* Used with TYPE_TAG */ ++#define CONST_UNIVERSAL (1U<<8) ++#define CONST_PRIVATE (1U<<9) ++#define CONST_APPLICATION (1U<<10) ++#define CONST_EXPLICIT (1U<<11) ++#define CONST_IMPLICIT (1U<<12) ++ ++#define CONST_TAG (1U<<13) /* Used in ASN.1 assignement */ ++#define CONST_OPTION (1U<<14) ++#define CONST_DEFAULT (1U<<15) ++#define CONST_TRUE (1U<<16) ++#define CONST_FALSE (1U<<17) ++ ++#define CONST_LIST (1U<<18) /* Used with TYPE_INTEGER and TYPE_BIT_STRING */ ++#define CONST_MIN_MAX (1U<<19) ++ ++#define CONST_1_PARAM (1U<<20) ++ ++#define CONST_SIZE (1U<<21) ++ ++#define CONST_DEFINED_BY (1U<<22) ++ ++/* Those two are deprecated and used for backwards compatibility */ ++#define CONST_GENERALIZED (1U<<23) ++#define CONST_UTC (1U<<24) ++ ++/* #define CONST_IMPORTS (1U<<25) */ ++ ++#define CONST_NOT_USED (1U<<26) ++#define CONST_SET (1U<<27) ++#define CONST_ASSIGN (1U<<28) ++ ++#define CONST_DOWN (1U<<29) ++#define CONST_RIGHT (1U<<30) ++ ++ ++#define ASN1_ETYPE_TIME 17 ++/****************************************/ ++/* Returns the first 8 bits. */ ++/* Used with the field type of asn1_node_st */ ++/****************************************/ ++inline static unsigned int ++type_field (unsigned int ntype) ++{ ++ return (ntype & 0xff); ++} ++ ++/* To convert old types from a static structure */ ++inline static unsigned int ++convert_old_type (unsigned int ntype) ++{ ++ unsigned int type = ntype & 0xff; ++ if (type == ASN1_ETYPE_TIME) ++ { ++ if (ntype & CONST_UTC) ++ type = ASN1_ETYPE_UTC_TIME; ++ else ++ type = ASN1_ETYPE_GENERALIZED_TIME; ++ ++ ntype &= ~(CONST_UTC | CONST_GENERALIZED); ++ ntype &= 0xffffff00; ++ ntype |= type; ++ ++ return ntype; ++ } ++ else ++ return ntype; ++} ++ ++static inline ++void *_asn1_realloc(void *ptr, size_t size) ++{ ++ void *ret; ++ ++ if (size == 0) ++ return ptr; ++ ++ ret = realloc(ptr, size); ++ if (ret == NULL) ++ { ++ free(ptr); ++ } ++ return ret; ++} ++ ++#endif /* INT_H */ +diff --git a/grub-core/lib/libtasn1/lib/parser_aux.h b/grub-core/lib/libtasn1/lib/parser_aux.h +new file mode 100644 +index 00000000000..598e684b355 +--- /dev/null ++++ b/grub-core/lib/libtasn1/lib/parser_aux.h +@@ -0,0 +1,172 @@ ++/* ++ * Copyright (C) 2000-2014 Free Software Foundation, Inc. ++ * ++ * This file is part of LIBTASN1. ++ * ++ * The LIBTASN1 library is free software; you can redistribute it ++ * and/or modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ++ * 02110-1301, USA ++ */ ++ ++#ifndef _PARSER_AUX_H ++#define _PARSER_AUX_H ++ ++/***********************************************/ ++/* Type: list_type */ ++/* Description: type used in the list during */ ++/* the structure creation. */ ++/***********************************************/ ++typedef struct list_struct ++{ ++ asn1_node node; ++ struct list_struct *next; ++} list_type; ++ ++/***************************************/ ++/* Functions used by ASN.1 parser */ ++/***************************************/ ++asn1_node _asn1_add_static_node (list_type **e_list, unsigned int type); ++ ++void _asn1_delete_list (list_type *e_list); ++ ++void _asn1_delete_list_and_nodes (list_type *e_list); ++ ++void _asn1_delete_node_from_list (list_type *list, asn1_node node); ++ ++asn1_node ++_asn1_set_value (asn1_node node, const void *value, unsigned int len); ++ ++asn1_node _asn1_set_value_m (asn1_node node, void *value, unsigned int len); ++ ++asn1_node ++_asn1_set_value_lv (asn1_node node, const void *value, unsigned int len); ++ ++asn1_node ++_asn1_append_value (asn1_node node, const void *value, unsigned int len); ++ ++asn1_node _asn1_set_name (asn1_node node, const char *name); ++ ++asn1_node _asn1_cpy_name (asn1_node dst, asn1_node_const src); ++ ++asn1_node _asn1_set_right (asn1_node node, asn1_node right); ++ ++asn1_node _asn1_get_last_right (asn1_node_const node); ++ ++void _asn1_remove_node (asn1_node node, unsigned int flags); ++ ++/* Max 64-bit integer length is 20 chars + 1 for sign + 1 for null termination */ ++#define LTOSTR_MAX_SIZE 22 ++char *_asn1_ltostr (int64_t v, char str[LTOSTR_MAX_SIZE]); ++ ++asn1_node _asn1_find_up (asn1_node_const node); ++ ++int _asn1_change_integer_value (asn1_node node); ++ ++#define EXPAND_OBJECT_ID_MAX_RECURSION 16 ++int _asn1_expand_object_id (list_type **list, asn1_node node); ++ ++int _asn1_type_set_config (asn1_node node); ++ ++int _asn1_check_identifier (asn1_node_const node); ++ ++int _asn1_set_default_tag (asn1_node node); ++ ++/******************************************************************/ ++/* Function : _asn1_get_right */ ++/* Description: returns the element pointed by the RIGHT field of */ ++/* a NODE_ASN element. */ ++/* Parameters: */ ++/* node: NODE_ASN element pointer. */ ++/* Return: field RIGHT of NODE. */ ++/******************************************************************/ ++inline static asn1_node ++_asn1_get_right (asn1_node_const node) ++{ ++ if (node == NULL) ++ return NULL; ++ return node->right; ++} ++ ++/******************************************************************/ ++/* Function : _asn1_set_down */ ++/* Description: sets the field DOWN in a NODE_ASN element. */ ++/* Parameters: */ ++/* node: element pointer. */ ++/* down: pointer to a NODE_ASN element that you want be pointed */ ++/* by NODE. */ ++/* Return: pointer to *NODE. */ ++/******************************************************************/ ++inline static asn1_node ++_asn1_set_down (asn1_node node, asn1_node down) ++{ ++ if (node == NULL) ++ return node; ++ node->down = down; ++ if (down) ++ down->left = node; ++ return node; ++} ++ ++/******************************************************************/ ++/* Function : _asn1_get_down */ ++/* Description: returns the element pointed by the DOWN field of */ ++/* a NODE_ASN element. */ ++/* Parameters: */ ++/* node: NODE_ASN element pointer. */ ++/* Return: field DOWN of NODE. */ ++/******************************************************************/ ++inline static asn1_node ++_asn1_get_down (asn1_node_const node) ++{ ++ if (node == NULL) ++ return NULL; ++ return node->down; ++} ++ ++/******************************************************************/ ++/* Function : _asn1_get_name */ ++/* Description: returns the name of a NODE_ASN element. */ ++/* Parameters: */ ++/* node: NODE_ASN element pointer. */ ++/* Return: a null terminated string. */ ++/******************************************************************/ ++inline static char * ++_asn1_get_name (asn1_node_const node) ++{ ++ if (node == NULL) ++ return NULL; ++ return (char *) node->name; ++} ++ ++/******************************************************************/ ++/* Function : _asn1_mod_type */ ++/* Description: change the field TYPE of an NODE_ASN element. */ ++/* The new value is the old one | (bitwise or) the */ ++/* paramener VALUE. */ ++/* Parameters: */ ++/* node: NODE_ASN element pointer. */ ++/* value: the integer value that must be or-ed with the current */ ++/* value of field TYPE. */ ++/* Return: NODE pointer. */ ++/******************************************************************/ ++inline static asn1_node ++_asn1_mod_type (asn1_node node, unsigned int value) ++{ ++ if (node == NULL) ++ return node; ++ node->type |= value; ++ return node; ++} ++ ++#endif +diff --git a/grub-core/lib/libtasn1/lib/structure.h b/grub-core/lib/libtasn1/lib/structure.h +new file mode 100644 +index 00000000000..99e685da07a +--- /dev/null ++++ b/grub-core/lib/libtasn1/lib/structure.h +@@ -0,0 +1,45 @@ ++/* ++ * Copyright (C) 2002-2014 Free Software Foundation, Inc. ++ * ++ * This file is part of LIBTASN1. ++ * ++ * The LIBTASN1 library is free software; you can redistribute it ++ * and/or modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ++ * 02110-1301, USA ++ */ ++ ++/*************************************************/ ++/* File: structure.h */ ++/* Description: list of exported object by */ ++/* "structure.c" */ ++/*************************************************/ ++ ++#ifndef _STRUCTURE_H ++#define _STRUCTURE_H ++ ++#include "parser_aux.h" // list_type ++ ++int _asn1_create_static_structure (asn1_node_const pointer, ++ char *output_file_name, char *vector_name); ++ ++asn1_node _asn1_copy_structure3 (asn1_node_const source_node); ++ ++asn1_node _asn1_add_single_node (unsigned int type); ++ ++asn1_node _asn1_find_left (asn1_node_const node); ++ ++int ++_asn1_delete_structure (list_type *e_list, asn1_node *structure, unsigned int flags); ++ ++#endif +diff --git a/include/grub/libtasn1.h b/include/grub/libtasn1.h +new file mode 100644 +index 00000000000..6fd7a30dc35 +--- /dev/null ++++ b/include/grub/libtasn1.h +@@ -0,0 +1,588 @@ ++/* ++ * Copyright (C) 2002-2014 Free Software Foundation, Inc. ++ * ++ * This file is part of LIBTASN1. ++ * ++ * LIBTASN1 is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU Lesser General Public License as ++ * published by the Free Software Foundation; either version 2.1 of ++ * the License, or (at your option) any later version. ++ * ++ * LIBTASN1 is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with LIBTASN1; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ++ * 02110-1301, USA ++ * ++ */ ++ ++/** ++ * libtasn1:Short_Description: ++ * ++ * GNU ASN.1 library ++ */ ++/** ++ * libtasn1:Long_Description: ++ * ++ * The Libtasn1 library provides Abstract Syntax Notation One (ASN.1, as ++ * specified by the X.680 ITU-T recommendation) parsing and structures ++ * management, and Distinguished Encoding Rules (DER, as per X.690) ++ * encoding and decoding functions. ++ */ ++ ++ ++#ifndef LIBTASN1_H ++#define LIBTASN1_H ++ ++#ifndef ASN1_API ++#if defined ASN1_BUILDING && defined HAVE_VISIBILITY && HAVE_VISIBILITY ++#define ASN1_API __attribute__((__visibility__("default"))) ++#elif defined ASN1_BUILDING && defined _MSC_VER && ! defined ASN1_STATIC ++#define ASN1_API __declspec(dllexport) ++#elif defined _MSC_VER && ! defined ASN1_STATIC ++#define ASN1_API __declspec(dllimport) ++#else ++#define ASN1_API ++#endif ++#endif ++ ++#ifdef __GNUC__ ++# define __LIBTASN1_CONST__ __attribute__((const)) ++# define __LIBTASN1_PURE__ __attribute__((pure)) ++#else ++# define __LIBTASN1_CONST__ ++# define __LIBTASN1_PURE__ ++#endif ++ ++#include ++#include ++#include /* for FILE* */ ++ ++#ifdef __cplusplus ++extern "C" ++{ ++#endif ++ ++/** ++ * ASN1_VERSION: ++ * ++ * Version of the library as a string. ++ */ ++#define ASN1_VERSION "4.16.0" ++ ++/** ++ * ASN1_VERSION_MAJOR: ++ * ++ * Major version number of the library. ++ */ ++#define ASN1_VERSION_MAJOR 4 ++ ++/** ++ * ASN1_VERSION_MINOR: ++ * ++ * Minor version number of the library. ++ */ ++#define ASN1_VERSION_MINOR 16 ++ ++/** ++ * ASN1_VERSION_PATCH: ++ * ++ * Patch version number of the library. ++ */ ++#define ASN1_VERSION_PATCH 0 ++ ++/** ++ * ASN1_VERSION_NUMBER: ++ * ++ * Version number of the library as a number. ++ */ ++#define ASN1_VERSION_NUMBER 0x041000 ++ ++ ++#if defined __GNUC__ && !defined ASN1_INTERNAL_BUILD ++# define _ASN1_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) ++# if _ASN1_GCC_VERSION >= 30100 ++# define _ASN1_GCC_ATTR_DEPRECATED __attribute__ ((__deprecated__)) ++# endif ++#endif ++ ++#ifndef _ASN1_GCC_ATTR_DEPRECATED ++#define _ASN1_GCC_ATTR_DEPRECATED ++#endif ++ ++/*****************************************/ ++/* Errors returned by libtasn1 functions */ ++/*****************************************/ ++#define ASN1_SUCCESS 0 ++#define ASN1_FILE_NOT_FOUND 1 ++#define ASN1_ELEMENT_NOT_FOUND 2 ++#define ASN1_IDENTIFIER_NOT_FOUND 3 ++#define ASN1_DER_ERROR 4 ++#define ASN1_VALUE_NOT_FOUND 5 ++#define ASN1_GENERIC_ERROR 6 ++#define ASN1_VALUE_NOT_VALID 7 ++#define ASN1_TAG_ERROR 8 ++#define ASN1_TAG_IMPLICIT 9 ++#define ASN1_ERROR_TYPE_ANY 10 ++#define ASN1_SYNTAX_ERROR 11 ++#define ASN1_MEM_ERROR 12 ++#define ASN1_MEM_ALLOC_ERROR 13 ++#define ASN1_DER_OVERFLOW 14 ++#define ASN1_NAME_TOO_LONG 15 ++#define ASN1_ARRAY_ERROR 16 ++#define ASN1_ELEMENT_NOT_EMPTY 17 ++#define ASN1_TIME_ENCODING_ERROR 18 ++#define ASN1_RECURSION 19 ++ ++/*************************************/ ++/* Constants used in asn1_visit_tree */ ++/*************************************/ ++#define ASN1_PRINT_NAME 1 ++#define ASN1_PRINT_NAME_TYPE 2 ++#define ASN1_PRINT_NAME_TYPE_VALUE 3 ++#define ASN1_PRINT_ALL 4 ++ ++/*****************************************/ ++/* Constants returned by asn1_read_tag */ ++/*****************************************/ ++#define ASN1_CLASS_UNIVERSAL 0x00 /* old: 1 */ ++#define ASN1_CLASS_APPLICATION 0x40 /* old: 2 */ ++#define ASN1_CLASS_CONTEXT_SPECIFIC 0x80 /* old: 3 */ ++#define ASN1_CLASS_PRIVATE 0xC0 /* old: 4 */ ++#define ASN1_CLASS_STRUCTURED 0x20 ++ ++/*****************************************/ ++/* Constants returned by asn1_read_tag */ ++/*****************************************/ ++#define ASN1_TAG_BOOLEAN 0x01 ++#define ASN1_TAG_INTEGER 0x02 ++#define ASN1_TAG_SEQUENCE 0x10 ++#define ASN1_TAG_SET 0x11 ++#define ASN1_TAG_OCTET_STRING 0x04 ++#define ASN1_TAG_BIT_STRING 0x03 ++#define ASN1_TAG_UTCTime 0x17 ++#define ASN1_TAG_GENERALIZEDTime 0x18 ++#define ASN1_TAG_OBJECT_ID 0x06 ++#define ASN1_TAG_ENUMERATED 0x0A ++#define ASN1_TAG_NULL 0x05 ++#define ASN1_TAG_GENERALSTRING 0x1B ++#define ASN1_TAG_NUMERIC_STRING 0x12 ++#define ASN1_TAG_IA5_STRING 0x16 ++#define ASN1_TAG_TELETEX_STRING 0x14 ++#define ASN1_TAG_PRINTABLE_STRING 0x13 ++#define ASN1_TAG_UNIVERSAL_STRING 0x1C ++#define ASN1_TAG_BMP_STRING 0x1E ++#define ASN1_TAG_UTF8_STRING 0x0C ++#define ASN1_TAG_VISIBLE_STRING 0x1A ++ ++/** ++ * asn1_node: ++ * ++ * Structure definition used for the node of the tree ++ * that represents an ASN.1 DEFINITION. ++ */ ++typedef struct asn1_node_st asn1_node_st; ++ ++typedef asn1_node_st *asn1_node; ++typedef const asn1_node_st *asn1_node_const; ++ ++/** ++ * ASN1_MAX_NAME_SIZE: ++ * ++ * Maximum number of characters of a name ++ * inside a file with ASN1 definitions. ++ */ ++#define ASN1_MAX_NAME_SIZE 64 ++ ++ ++/** ++ * asn1_static_node: ++ * @name: Node name ++ * @type: Node typ ++ * @value: Node value ++ * ++ * For the on-disk format of ASN.1 trees, created by asn1_parser2array(). ++ */ ++struct asn1_static_node_st ++{ ++ const char *name; /* Node name */ ++ unsigned int type; /* Node type */ ++ const void *value; /* Node value */ ++}; ++typedef struct asn1_static_node_st asn1_static_node; ++ ++/* List of constants for field type of node_asn */ ++#define ASN1_ETYPE_INVALID 0 ++#define ASN1_ETYPE_CONSTANT 1 ++#define ASN1_ETYPE_IDENTIFIER 2 ++#define ASN1_ETYPE_INTEGER 3 ++#define ASN1_ETYPE_BOOLEAN 4 ++#define ASN1_ETYPE_SEQUENCE 5 ++#define ASN1_ETYPE_BIT_STRING 6 ++#define ASN1_ETYPE_OCTET_STRING 7 ++#define ASN1_ETYPE_TAG 8 ++#define ASN1_ETYPE_DEFAULT 9 ++#define ASN1_ETYPE_SIZE 10 ++#define ASN1_ETYPE_SEQUENCE_OF 11 ++#define ASN1_ETYPE_OBJECT_ID 12 ++#define ASN1_ETYPE_ANY 13 ++#define ASN1_ETYPE_SET 14 ++#define ASN1_ETYPE_SET_OF 15 ++#define ASN1_ETYPE_DEFINITIONS 16 ++#define ASN1_ETYPE_CHOICE 18 ++#define ASN1_ETYPE_IMPORTS 19 ++#define ASN1_ETYPE_NULL 20 ++#define ASN1_ETYPE_ENUMERATED 21 ++#define ASN1_ETYPE_GENERALSTRING 27 ++#define ASN1_ETYPE_NUMERIC_STRING 28 ++#define ASN1_ETYPE_IA5_STRING 29 ++#define ASN1_ETYPE_TELETEX_STRING 30 ++#define ASN1_ETYPE_PRINTABLE_STRING 31 ++#define ASN1_ETYPE_UNIVERSAL_STRING 32 ++#define ASN1_ETYPE_BMP_STRING 33 ++#define ASN1_ETYPE_UTF8_STRING 34 ++#define ASN1_ETYPE_VISIBLE_STRING 35 ++#define ASN1_ETYPE_UTC_TIME 36 ++#define ASN1_ETYPE_GENERALIZED_TIME 37 ++ ++/** ++ * ASN1_DELETE_FLAG_ZEROIZE: ++ * ++ * Used by: asn1_delete_structure2() ++ * ++ * Zeroize values prior to deinitialization. ++ */ ++#define ASN1_DELETE_FLAG_ZEROIZE 1 ++ ++/** ++ * ASN1_DECODE_FLAG_ALLOW_PADDING: ++ * ++ * Used by: asn1_der_decoding2() ++ * ++ * This flag would allow arbitrary data past the DER data. ++ */ ++#define ASN1_DECODE_FLAG_ALLOW_PADDING 1 ++/** ++ * ASN1_DECODE_FLAG_STRICT_DER: ++ * ++ * Used by: asn1_der_decoding2() ++ * ++ * This flag would ensure that no BER decoding takes place. ++ */ ++#define ASN1_DECODE_FLAG_STRICT_DER (1<<1) ++/** ++ * ASN1_DECODE_FLAG_ALLOW_INCORRECT_TIME: ++ * ++ * Used by: asn1_der_decoding2() ++ * ++ * This flag will tolerate Time encoding errors when in strict DER. ++ */ ++#define ASN1_DECODE_FLAG_ALLOW_INCORRECT_TIME (1<<2) ++ ++ ++/** ++ * asn1_data_node_st: ++ * @name: Node name ++ * @value: Node value ++ * @value_len: Node value size ++ * @type: Node value type (ASN1_ETYPE_*) ++ * ++ * Data node inside a #asn1_node structure. ++ */ ++struct asn1_data_node_st ++{ ++ const char *name; /* Node name */ ++ const void *value; /* Node value */ ++ unsigned int value_len; /* Node value size */ ++ unsigned int type; /* Node value type (ASN1_ETYPE_*) */ ++}; ++typedef struct asn1_data_node_st asn1_data_node_st; ++ ++/***********************************/ ++/* Fixed constants */ ++/***********************************/ ++ ++/** ++ * ASN1_MAX_ERROR_DESCRIPTION_SIZE: ++ * ++ * Maximum number of characters ++ * of a description message ++ * (null character included). ++ */ ++#define ASN1_MAX_ERROR_DESCRIPTION_SIZE 128 ++ ++/***********************************/ ++/* Functions definitions */ ++/***********************************/ ++ ++extern ASN1_API int ++ asn1_parser2tree (const char *file, ++ asn1_node * definitions, char *error_desc); ++ ++extern ASN1_API int ++ asn1_parser2array (const char *inputFileName, ++ const char *outputFileName, ++ const char *vectorName, char *error_desc); ++ ++extern ASN1_API int ++ asn1_array2tree (const asn1_static_node * array, ++ asn1_node * definitions, char *errorDescription); ++ ++extern ASN1_API void ++ asn1_print_structure (FILE * out, asn1_node_const structure, ++ const char *name, int mode); ++ ++extern ASN1_API int ++ asn1_create_element (asn1_node_const definitions, ++ const char *source_name, asn1_node * element); ++ ++extern ASN1_API int asn1_delete_structure (asn1_node * structure); ++ ++extern ASN1_API int asn1_delete_structure2 (asn1_node * structure, unsigned int flags); ++ ++extern ASN1_API int ++ asn1_delete_element (asn1_node structure, const char *element_name); ++ ++extern ASN1_API int ++ asn1_write_value (asn1_node node_root, const char *name, ++ const void *ivalue, int len); ++ ++extern ASN1_API int ++ asn1_read_value (asn1_node_const root, const char *name, ++ void *ivalue, int *len); ++ ++extern ASN1_API int ++ asn1_read_value_type (asn1_node_const root, const char *name, ++ void *ivalue, int *len, unsigned int *etype); ++ ++extern ASN1_API int ++ asn1_read_node_value (asn1_node_const node, asn1_data_node_st * data); ++ ++extern ASN1_API int ++ asn1_number_of_elements (asn1_node_const element, const char *name, int *num); ++ ++extern ASN1_API int ++ asn1_der_coding (asn1_node_const element, const char *name, ++ void *ider, int *len, char *ErrorDescription); ++ ++extern ASN1_API int ++ asn1_der_decoding2 (asn1_node *element, const void *ider, ++ int *max_ider_len, unsigned int flags, ++ char *errorDescription); ++ ++extern ASN1_API int ++ asn1_der_decoding (asn1_node * element, const void *ider, ++ int ider_len, char *errorDescription); ++ ++/* Do not use. Use asn1_der_decoding() instead. */ ++extern ASN1_API int ++ asn1_der_decoding_element (asn1_node * structure, ++ const char *elementName, ++ const void *ider, int len, ++ char *errorDescription) _ASN1_GCC_ATTR_DEPRECATED; ++ ++extern ASN1_API int ++ asn1_der_decoding_startEnd (asn1_node element, ++ const void *ider, int ider_len, ++ const char *name_element, ++ int *start, int *end); ++ ++extern ASN1_API int ++ asn1_expand_any_defined_by (asn1_node_const definitions, asn1_node * element); ++ ++extern ASN1_API int ++ asn1_expand_octet_string (asn1_node_const definitions, ++ asn1_node * element, ++ const char *octetName, const char *objectName); ++ ++extern ASN1_API int ++ asn1_read_tag (asn1_node_const root, const char *name, ++ int *tagValue, int *classValue); ++ ++extern ASN1_API const char *asn1_find_structure_from_oid (asn1_node_const ++ definitions, ++ const char ++ *oidValue); ++ ++__LIBTASN1_PURE__ ++extern ASN1_API const char *asn1_check_version (const char *req_version); ++ ++__LIBTASN1_PURE__ ++extern ASN1_API const char *asn1_strerror (int error); ++ ++extern ASN1_API void asn1_perror (int error); ++ ++#define ASN1_MAX_TAG_SIZE 4 ++#define ASN1_MAX_LENGTH_SIZE 9 ++#define ASN1_MAX_TL_SIZE (ASN1_MAX_TAG_SIZE+ASN1_MAX_LENGTH_SIZE) ++extern ASN1_API long ++ asn1_get_length_der (const unsigned char *der, int der_len, int *len); ++ ++extern ASN1_API long ++ asn1_get_length_ber (const unsigned char *ber, int ber_len, int *len); ++ ++extern ASN1_API void ++ asn1_length_der (unsigned long int len, unsigned char *der, int *der_len); ++ ++/* Other utility functions. */ ++ ++extern ASN1_API ++ int asn1_decode_simple_der (unsigned int etype, const unsigned char *der, ++ unsigned int _der_len, ++ const unsigned char **str, ++ unsigned int *str_len); ++ ++extern ASN1_API ++ int asn1_decode_simple_ber (unsigned int etype, const unsigned char *der, ++ unsigned int _der_len, ++ unsigned char **str, ++ unsigned int *str_len, ++ unsigned int *ber_len); ++ ++extern ASN1_API int ++ asn1_encode_simple_der (unsigned int etype, const unsigned char *str, ++ unsigned int str_len, unsigned char *tl, ++ unsigned int *tl_len); ++ ++extern ASN1_API asn1_node ++ asn1_find_node (asn1_node_const pointer, const char *name); ++ ++extern ASN1_API int ++ asn1_copy_node (asn1_node dst, const char *dst_name, ++ asn1_node_const src, const char *src_name); ++extern ASN1_API asn1_node ++ asn1_dup_node (asn1_node_const src, const char *src_name); ++ ++/* Internal and low-level DER utility functions. */ ++ ++extern ASN1_API int ++ asn1_get_tag_der (const unsigned char *der, int der_len, ++ unsigned char *cls, int *len, unsigned long *tag); ++ ++extern ASN1_API void ++ asn1_octet_der (const unsigned char *str, int str_len, ++ unsigned char *der, int *der_len); ++ ++extern ASN1_API int ++ asn1_get_octet_der (const unsigned char *der, int der_len, ++ int *ret_len, unsigned char *str, ++ int str_size, int *str_len); ++ ++extern ASN1_API void asn1_bit_der (const unsigned char *str, int bit_len, ++ unsigned char *der, int *der_len); ++ ++extern ASN1_API int ++ asn1_get_bit_der (const unsigned char *der, int der_len, ++ int *ret_len, unsigned char *str, ++ int str_size, int *bit_len); ++ ++extern ASN1_API int ++ asn1_get_object_id_der (const unsigned char *der, ++ int der_len, int *ret_len, ++ char *str, int str_size); ++ ++extern ASN1_API int ++ asn1_object_id_der (const char *str, unsigned char *der, int *der_len, ++ unsigned flags); ++ ++/* Compatibility types */ ++ ++/** ++ * asn1_retCode: ++ * ++ * Type formerly returned by libtasn1 functions. ++ * ++ * Deprecated: 3.0: Use int instead. ++ */ ++typedef int asn1_retCode; ++ ++/** ++ * node_asn_struct: ++ * ++ * Compat #define. ++ * ++ * Deprecated: 3.0: Use #asn1_node instead. ++ */ ++#define node_asn_struct asn1_node_st ++ ++/** ++ * node_asn: ++ * ++ * Compat #define. ++ * ++ * Deprecated: 3.0: Use #asn1_node instead. ++ */ ++#define node_asn asn1_node_st ++ ++/** ++ * ASN1_TYPE: ++ * ++ * Compat #define. ++ * ++ * Deprecated: 3.0: Use #asn1_node instead. ++ */ ++#define ASN1_TYPE asn1_node ++ ++/** ++ * ASN1_TYPE_EMPTY: ++ * ++ * Compat #define. ++ * ++ * Deprecated: 3.0: Use NULL instead. ++ */ ++#define ASN1_TYPE_EMPTY NULL ++ ++/** ++ * static_struct_asn: ++ * ++ * Compat #define. ++ * ++ * Deprecated: 3.0: Use #asn1_static_node instead. ++ */ ++#define static_struct_asn asn1_static_node_st ++ ++/** ++ * ASN1_ARRAY_TYPE: ++ * ++ * Compat #define. ++ * ++ * Deprecated: 3.0: Use #asn1_static_node instead. ++ */ ++#define ASN1_ARRAY_TYPE asn1_static_node ++ ++/** ++ * asn1_static_node_t: ++ * ++ * Compat #define. ++ * ++ * Deprecated: 3.0: Use #asn1_static_node instead. ++ */ ++#define asn1_static_node_t asn1_static_node ++ ++/** ++ * node_data_struct: ++ * ++ * Compat #define. ++ * ++ * Deprecated: 3.0: Use #asn1_data_node_st instead. ++ */ ++#define node_data_struct asn1_data_node_st ++ ++/** ++ * ASN1_DATA_NODE: ++ * ++ * Compat #define. ++ * ++ * Deprecated: 3.0: Use #asn1_data_node_st instead. ++ */ ++#define ASN1_DATA_NODE asn1_data_node_st ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif /* LIBTASN1_H */ +diff --git a/grub-core/lib/libtasn1/LICENSE b/grub-core/lib/libtasn1/LICENSE +new file mode 100644 +index 00000000000..e8b3628db9b +--- /dev/null ++++ b/grub-core/lib/libtasn1/LICENSE +@@ -0,0 +1,16 @@ ++LICENSING ++========= ++ ++The libtasn1 library is released under the GNU Lesser General Public ++License (LGPL) version 2.1 or later; see [COPYING.LESSER](doc/COPYING.LESSER) ++for the license terms. ++ ++The GNU LGPL applies to the main libtasn1 library, while the ++included applications library are under the GNU GPL version 3. ++The libtasn1 library is located in the lib directory, while the applications ++in src/. ++ ++The documentation in doc/ is under the GNU FDL license 1.3. ++ ++For any copyright year range specified as YYYY-ZZZZ in this package ++note that the range specifies every single year in that closed interval. +diff --git a/grub-core/lib/libtasn1/README.md b/grub-core/lib/libtasn1/README.md +new file mode 100644 +index 00000000000..50a8642296c +--- /dev/null ++++ b/grub-core/lib/libtasn1/README.md +@@ -0,0 +1,91 @@ ++|Branch|CI system|Status| ++|:----:|:-------:|-----:| ++|Master|Gitlab|[![build status](https://gitlab.com/gnutls/libtasn1/badges/master/pipeline.svg)](https://gitlab.com/gnutls/libtasn1/commits/master)[![coverage report](https://gitlab.com/gnutls/libtasn1/badges/master/coverage.svg)](https://gnutls.gitlab.io/libtasn1/coverage)| ++ ++# libtasn1 ++ ++This is GNU Libtasn1, a small ASN.1 library. ++ ++The C library (libtasn1.*) is licensed under the GNU Lesser General ++Public License version 2.1 or later. See the file COPYING.LIB. ++ ++The command line tool, self tests, examples, and other auxilliary ++files, are licensed under the GNU General Public License version 3.0 ++or later. See the file COPYING. ++ ++## Building the library ++ ++We require several tools to build the software, including: ++ ++* [Make](https://www.gnu.org/software/make/) ++* [Automake](https://www.gnu.org/software/automake/) (use 1.11.3 or later) ++* [Autoconf](https://www.gnu.org/software/autoconf/) ++* [Libtool](https://www.gnu.org/software/libtool/) ++* [Texinfo](https://www.gnu.org/software/texinfo/) ++* [help2man](http://www.gnu.org/software/help2man/) ++* [Tar](https://www.gnu.org/software/tar/) ++* [Gzip](https://www.gnu.org/software/gzip/) ++* [bison](https://www.gnu.org/software/bison/) ++* [Texlive & epsf](https://www.tug.org/texlive/) (for PDF manual) ++* [GTK-DOC](https://www.gtk.org/gtk-doc/) (for API manual) ++* [Git](https://git-scm.com/) ++* [libabigail](https://pagure.io/libabigail/) (for abi comparison in make dist) ++* [Valgrind](https://valgrind.org/) (optional) ++ ++The required software is typically distributed with your operating ++system, and the instructions for installing them differ. Here are ++some hints: ++ ++gNewSense/Debian/Ubuntu: ++``` ++sudo apt-get install make git-core autoconf automake libtool ++sudo apt-get install texinfo texlive texlive-generic-recommended texlive-extra-utils ++sudo apt-get install help2man gtk-doc-tools valgrind abigail-tools ++``` ++ ++The next step is to run autoreconf, ./configure, etc: ++ ++``` ++$ ./bootstrap ++``` ++ ++Then build the project normally: ++ ++``` ++$ make ++$ make check ++``` ++ ++Happy hacking! ++ ++ ++## Manual ++ ++The manual is in the `doc/` directory of the release. You can also browse ++the manual online at: ++ ++ - https://gnutls.gitlab.io/libtasn1/ ++ ++ ++## Code coverage report ++ ++The coverage report is at: ++ ++ - https://gnutls.gitlab.io/libtasn1/coverage ++ ++ ++## Issue trackers ++ ++ - [Main issue tracker](https://gitlab.com/gnutls/libtasn1/issues) ++ - [oss-fuzz found issues](https://bugs.chromium.org/p/oss-fuzz/issues/list?q=libtasn1&can=2) ++ ++ ++## Homepage ++ ++The project homepage at the gnu site is at: ++ ++http://www.gnu.org/software/libtasn1/ ++ ++ ++For any copyright year range specified as YYYY-ZZZZ in this package ++note that the range specifies every single year in that closed interval. diff --git a/0170-libtasn1-disable-code-not-needed-in-grub.patch b/0170-libtasn1-disable-code-not-needed-in-grub.patch new file mode 100644 index 0000000..00f5588 --- /dev/null +++ b/0170-libtasn1-disable-code-not-needed-in-grub.patch @@ -0,0 +1,307 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Axtens +Date: Fri, 1 May 2020 17:12:23 +1000 +Subject: [PATCH] libtasn1: disable code not needed in grub + +We don't expect to be able to write ASN.1, only read it, +so we can disable some code. + +Do that with #if 0/#endif, rather than deletion. This means +that the difference between upstream and grub is smaller, +which should make updating libtasn1 easier in the future. + +With these exclusions we also avoid the need for minmax.h, +which is convenient because it means we don't have to +import it from gnulib. + +Signed-off-by: Daniel Axtens +--- + grub-core/lib/libtasn1/lib/coding.c | 12 ++++++++++-- + grub-core/lib/libtasn1/lib/decoding.c | 2 ++ + grub-core/lib/libtasn1/lib/element.c | 4 ++-- + grub-core/lib/libtasn1/lib/errors.c | 3 +++ + grub-core/lib/libtasn1/lib/structure.c | 10 ++++++---- + include/grub/libtasn1.h | 15 +++++++++++++++ + 6 files changed, 38 insertions(+), 8 deletions(-) + +diff --git a/grub-core/lib/libtasn1/lib/coding.c b/grub-core/lib/libtasn1/lib/coding.c +index 245ea64cf0a..52def598368 100644 +--- a/grub-core/lib/libtasn1/lib/coding.c ++++ b/grub-core/lib/libtasn1/lib/coding.c +@@ -30,11 +30,11 @@ + #include "parser_aux.h" + #include + #include "element.h" +-#include "minmax.h" + #include + + #define MAX_TAG_LEN 16 + ++#if 0 + /******************************************************/ + /* Function : _asn1_error_description_value_not_found */ + /* Description: creates the ErrorDescription string */ +@@ -58,6 +58,7 @@ _asn1_error_description_value_not_found (asn1_node node, + Estrcat (ErrorDescription, "' not found"); + + } ++#endif + + /** + * asn1_length_der: +@@ -244,6 +245,7 @@ asn1_encode_simple_der (unsigned int etype, const unsigned char *str, + return ASN1_SUCCESS; + } + ++#if 0 + /******************************************************/ + /* Function : _asn1_time_der */ + /* Description: creates the DER coding for a TIME */ +@@ -281,7 +283,7 @@ _asn1_time_der (unsigned char *str, int str_len, unsigned char *der, + + return ASN1_SUCCESS; + } +- ++#endif + + /* + void +@@ -520,6 +522,7 @@ asn1_bit_der (const unsigned char *str, int bit_len, + } + + ++#if 0 + /******************************************************/ + /* Function : _asn1_complete_explicit_tag */ + /* Description: add the length coding to the EXPLICIT */ +@@ -596,6 +599,7 @@ _asn1_complete_explicit_tag (asn1_node node, unsigned char *der, + + return ASN1_SUCCESS; + } ++#endif + + const tag_and_class_st _asn1_tags[] = { + [ASN1_ETYPE_GENERALSTRING] = +@@ -648,6 +652,8 @@ const tag_and_class_st _asn1_tags[] = { + + unsigned int _asn1_tags_size = sizeof (_asn1_tags) / sizeof (_asn1_tags[0]); + ++ ++#if 0 + /******************************************************/ + /* Function : _asn1_insert_tag_der */ + /* Description: creates the DER coding of tags of one */ +@@ -1413,3 +1419,5 @@ error: + asn1_delete_structure (&node); + return err; + } ++ ++#endif +\ No newline at end of file +diff --git a/grub-core/lib/libtasn1/lib/decoding.c b/grub-core/lib/libtasn1/lib/decoding.c +index ff04eb778cb..42f9a92b5d4 100644 +--- a/grub-core/lib/libtasn1/lib/decoding.c ++++ b/grub-core/lib/libtasn1/lib/decoding.c +@@ -1613,6 +1613,7 @@ asn1_der_decoding (asn1_node * element, const void *ider, int ider_len, + return asn1_der_decoding2 (element, ider, &ider_len, 0, errorDescription); + } + ++#if 0 + /** + * asn1_der_decoding_element: + * @structure: pointer to an ASN1 structure +@@ -1643,6 +1644,7 @@ asn1_der_decoding_element (asn1_node * structure, const char *elementName, + { + return asn1_der_decoding(structure, ider, len, errorDescription); + } ++#endif + + /** + * asn1_der_decoding_startEnd: +diff --git a/grub-core/lib/libtasn1/lib/element.c b/grub-core/lib/libtasn1/lib/element.c +index 997eb2725dc..539008d8e94 100644 +--- a/grub-core/lib/libtasn1/lib/element.c ++++ b/grub-core/lib/libtasn1/lib/element.c +@@ -191,7 +191,7 @@ _asn1_append_sequence_set (asn1_node node, struct node_tail_cache_st *pcache) + return ASN1_SUCCESS; + } + +- ++#if 0 + /** + * asn1_write_value: + * @node_root: pointer to a structure +@@ -645,7 +645,7 @@ asn1_write_value (asn1_node node_root, const char *name, + + return ASN1_SUCCESS; + } +- ++#endif + + #define PUT_VALUE( ptr, ptr_size, data, data_size) \ + *len = data_size; \ +diff --git a/grub-core/lib/libtasn1/lib/errors.c b/grub-core/lib/libtasn1/lib/errors.c +index cee74daf795..42785e8622b 100644 +--- a/grub-core/lib/libtasn1/lib/errors.c ++++ b/grub-core/lib/libtasn1/lib/errors.c +@@ -57,6 +57,8 @@ static const libtasn1_error_entry error_algorithms[] = { + {0, 0} + }; + ++ ++#if 0 + /** + * asn1_perror: + * @error: is an error returned by a libtasn1 function. +@@ -73,6 +75,7 @@ asn1_perror (int error) + const char *str = asn1_strerror (error); + fprintf (stderr, "LIBTASN1 ERROR: %s\n", str ? str : "(null)"); + } ++#endif + + /** + * asn1_strerror: +diff --git a/grub-core/lib/libtasn1/lib/structure.c b/grub-core/lib/libtasn1/lib/structure.c +index 8189c56a4c9..fcfde01a393 100644 +--- a/grub-core/lib/libtasn1/lib/structure.c ++++ b/grub-core/lib/libtasn1/lib/structure.c +@@ -76,7 +76,7 @@ _asn1_find_left (asn1_node_const node) + return node->left; + } + +- ++#if 0 + int + _asn1_create_static_structure (asn1_node_const pointer, char *output_file_name, + char *vector_name) +@@ -155,7 +155,7 @@ _asn1_create_static_structure (asn1_node_const pointer, char *output_file_name, + + return ASN1_SUCCESS; + } +- ++#endif + + /** + * asn1_array2tree: +@@ -718,7 +718,7 @@ asn1_create_element (asn1_node_const definitions, const char *source_name, + return res; + } + +- ++#if 0 + /** + * asn1_print_structure: + * @out: pointer to the output file (e.g. stdout). +@@ -1058,7 +1058,7 @@ asn1_print_structure (FILE * out, asn1_node_const structure, const char *name, + } + } + } +- ++#endif + + + /** +@@ -1153,6 +1153,7 @@ asn1_find_structure_from_oid (asn1_node_const definitions, const char *oidValue) + return NULL; /* ASN1_ELEMENT_NOT_FOUND; */ + } + ++#if 0 + /** + * asn1_copy_node: + * @dst: Destination asn1 node. +@@ -1202,6 +1203,7 @@ asn1_copy_node (asn1_node dst, const char *dst_name, + + return result; + } ++#endif + + /** + * asn1_dup_node: +diff --git a/include/grub/libtasn1.h b/include/grub/libtasn1.h +index 6fd7a30dc35..785eda2ae3f 100644 +--- a/include/grub/libtasn1.h ++++ b/include/grub/libtasn1.h +@@ -319,6 +319,8 @@ typedef struct asn1_data_node_st asn1_data_node_st; + /* Functions definitions */ + /***********************************/ + ++/* These functions are not used in grub and should not be referenced. */ ++#if 0 + extern ASN1_API int + asn1_parser2tree (const char *file, + asn1_node * definitions, char *error_desc); +@@ -327,14 +329,17 @@ extern ASN1_API int + asn1_parser2array (const char *inputFileName, + const char *outputFileName, + const char *vectorName, char *error_desc); ++#endif + + extern ASN1_API int + asn1_array2tree (const asn1_static_node * array, + asn1_node * definitions, char *errorDescription); + ++#if 0 + extern ASN1_API void + asn1_print_structure (FILE * out, asn1_node_const structure, + const char *name, int mode); ++#endif + + extern ASN1_API int + asn1_create_element (asn1_node_const definitions, +@@ -347,9 +352,11 @@ extern ASN1_API int asn1_delete_structure2 (asn1_node * structure, unsigned int + extern ASN1_API int + asn1_delete_element (asn1_node structure, const char *element_name); + ++#if 0 + extern ASN1_API int + asn1_write_value (asn1_node node_root, const char *name, + const void *ivalue, int len); ++#endif + + extern ASN1_API int + asn1_read_value (asn1_node_const root, const char *name, +@@ -365,9 +372,11 @@ extern ASN1_API int + extern ASN1_API int + asn1_number_of_elements (asn1_node_const element, const char *name, int *num); + ++#if 0 + extern ASN1_API int + asn1_der_coding (asn1_node_const element, const char *name, + void *ider, int *len, char *ErrorDescription); ++#endif + + extern ASN1_API int + asn1_der_decoding2 (asn1_node *element, const void *ider, +@@ -378,12 +387,14 @@ extern ASN1_API int + asn1_der_decoding (asn1_node * element, const void *ider, + int ider_len, char *errorDescription); + ++#if 0 + /* Do not use. Use asn1_der_decoding() instead. */ + extern ASN1_API int + asn1_der_decoding_element (asn1_node * structure, + const char *elementName, + const void *ider, int len, + char *errorDescription) _ASN1_GCC_ATTR_DEPRECATED; ++#endif + + extern ASN1_API int + asn1_der_decoding_startEnd (asn1_node element, +@@ -408,13 +419,17 @@ extern ASN1_API const char *asn1_find_structure_from_oid (asn1_node_const + const char + *oidValue); + ++#if 0 + __LIBTASN1_PURE__ + extern ASN1_API const char *asn1_check_version (const char *req_version); ++#endif + + __LIBTASN1_PURE__ + extern ASN1_API const char *asn1_strerror (int error); + ++#if 0 + extern ASN1_API void asn1_perror (int error); ++#endif + + #define ASN1_MAX_TAG_SIZE 4 + #define ASN1_MAX_LENGTH_SIZE 9 diff --git a/0171-libtasn1-changes-for-grub-compatibility.patch b/0171-libtasn1-changes-for-grub-compatibility.patch new file mode 100644 index 0000000..9b2275c --- /dev/null +++ b/0171-libtasn1-changes-for-grub-compatibility.patch @@ -0,0 +1,202 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Axtens +Date: Fri, 1 May 2020 20:44:29 +1000 +Subject: [PATCH] libtasn1: changes for grub compatibility + +Do a few things to make libtasn1 compile as part of grub: + + - replace strcat. grub removed strcat so replace it with the appropriate + calls to memcpy and strlen. + + - replace c_isdigit with grub_isdigit (and don't import c-ctype from + gnulib) grub_isdigit provides the same functionality as c_isdigit: it + determines if the input is an ASCII digit without regard for locale. + + - replace GL_ATTRIBUTE_PURE with __attribute__((pure)) which been + supported since gcc-2.96. This avoids messing around with gnulib. + + - adjust libtasn1.h: drop the ASN1_API logic, it's not needed for our + modules. Unconditionally support const and pure attributes and adjust + header paths. + + - adjust header paths to "grub/libtasn1.h". + + - replace a 64 bit division with a call to grub_divmod64, preventing + creation of __udivdi3 calls on 32 bit platforms. + +Signed-off-by: Daniel Axtens +--- + grub-core/lib/libtasn1/lib/decoding.c | 11 ++++++----- + grub-core/lib/libtasn1/lib/element.c | 3 ++- + grub-core/lib/libtasn1/lib/gstr.c | 4 ++-- + grub-core/lib/libtasn1/lib/parser_aux.c | 7 ++++--- + grub-core/lib/libtasn1/lib/int.h | 4 ++-- + include/grub/libtasn1.h | 26 ++++++-------------------- + 6 files changed, 22 insertions(+), 33 deletions(-) + +diff --git a/grub-core/lib/libtasn1/lib/decoding.c b/grub-core/lib/libtasn1/lib/decoding.c +index 42f9a92b5d4..7856858b272 100644 +--- a/grub-core/lib/libtasn1/lib/decoding.c ++++ b/grub-core/lib/libtasn1/lib/decoding.c +@@ -32,7 +32,8 @@ + #include + #include + #include +-#include ++ ++#define c_isdigit grub_isdigit + + #ifdef DEBUG + # define warn() fprintf(stderr, "%s: %d\n", __func__, __LINE__) +@@ -2008,8 +2009,8 @@ asn1_expand_octet_string (asn1_node_const definitions, asn1_node * element, + (p2->type & CONST_ASSIGN)) + { + strcpy (name, definitions->name); +- strcat (name, "."); +- strcat (name, p2->name); ++ memcpy (name + strlen(name), ".", sizeof(" . ")); ++ memcpy (name + strlen(name), p2->name, strlen(p2->name) + 1); + + len = sizeof (value); + result = asn1_read_value (definitions, name, value, &len); +@@ -2026,8 +2027,8 @@ asn1_expand_octet_string (asn1_node_const definitions, asn1_node * element, + if (p2) + { + strcpy (name, definitions->name); +- strcat (name, "."); +- strcat (name, p2->name); ++ memcpy (name + strlen(name), ".", sizeof(" . ")); ++ memcpy (name + strlen(name), p2->name, strlen(p2->name) + 1); + + result = asn1_create_element (definitions, name, &aux); + if (result == ASN1_SUCCESS) +diff --git a/grub-core/lib/libtasn1/lib/element.c b/grub-core/lib/libtasn1/lib/element.c +index 539008d8e94..ed761ff56bd 100644 +--- a/grub-core/lib/libtasn1/lib/element.c ++++ b/grub-core/lib/libtasn1/lib/element.c +@@ -30,9 +30,10 @@ + #include "parser_aux.h" + #include + #include "structure.h" +-#include "c-ctype.h" + #include "element.h" + ++#define c_isdigit grub_isdigit ++ + void + _asn1_hierarchical_name (asn1_node_const node, char *name, int name_size) + { +diff --git a/grub-core/lib/libtasn1/lib/gstr.c b/grub-core/lib/libtasn1/lib/gstr.c +index e91a3a151c0..e33875c2c7c 100644 +--- a/grub-core/lib/libtasn1/lib/gstr.c ++++ b/grub-core/lib/libtasn1/lib/gstr.c +@@ -36,13 +36,13 @@ _asn1_str_cat (char *dest, size_t dest_tot_size, const char *src) + + if (dest_tot_size - dest_size > str_size) + { +- strcat (dest, src); ++ memcpy (dest + dest_size, src, str_size + 1); + } + else + { + if (dest_tot_size - dest_size > 0) + { +- strncat (dest, src, (dest_tot_size - dest_size) - 1); ++ memcpy (dest + dest_size, src, (dest_tot_size - dest_size) - 1); + dest[dest_tot_size - 1] = 0; + } + } +diff --git a/grub-core/lib/libtasn1/lib/parser_aux.c b/grub-core/lib/libtasn1/lib/parser_aux.c +index d5dbbf8765d..89c9be69dc2 100644 +--- a/grub-core/lib/libtasn1/lib/parser_aux.c ++++ b/grub-core/lib/libtasn1/lib/parser_aux.c +@@ -26,7 +26,8 @@ + #include "gstr.h" + #include "structure.h" + #include "element.h" +-#include "c-ctype.h" ++ ++#define c_isdigit grub_isdigit + + char _asn1_identifierMissing[ASN1_MAX_NAME_SIZE + 1]; /* identifier name not found */ + +@@ -40,7 +41,7 @@ char _asn1_identifierMissing[ASN1_MAX_NAME_SIZE + 1]; /* identifier name not fou + #ifdef __clang__ + __attribute__((no_sanitize("integer"))) + #endif +-_GL_ATTRIBUTE_PURE ++__attribute__((__pure__)) + static unsigned int + _asn1_hash_name (const char *x) + { +@@ -634,7 +635,7 @@ _asn1_ltostr (int64_t v, char str[LTOSTR_MAX_SIZE]) + count = 0; + do + { +- d = val / 10; ++ d = grub_divmod64(val, 10, NULL); + r = val - d * 10; + temp[start + count] = '0' + (char) r; + count++; +diff --git a/grub-core/lib/libtasn1/lib/int.h b/grub-core/lib/libtasn1/lib/int.h +index ea1625786c1..4a568efee9c 100644 +--- a/grub-core/lib/libtasn1/lib/int.h ++++ b/grub-core/lib/libtasn1/lib/int.h +@@ -35,7 +35,7 @@ + #include + #endif + +-#include ++#include "grub/libtasn1.h" + + #define ASN1_SMALL_VALUE_SIZE 16 + +@@ -115,7 +115,7 @@ extern const tag_and_class_st _asn1_tags[]; + #define _asn1_strtoul(n,e,b) strtoul((const char *) n, e, b) + #define _asn1_strcmp(a,b) strcmp((const char *)a, (const char *)b) + #define _asn1_strcpy(a,b) strcpy((char *)a, (const char *)b) +-#define _asn1_strcat(a,b) strcat((char *)a, (const char *)b) ++#define _asn1_strcat(a,b) memcpy((char *)a + strlen((const char *)a), (const char *)b, strlen((const char *)b) + 1) + + #if SIZEOF_UNSIGNED_LONG_INT == 8 + # define _asn1_strtou64(n,e,b) strtoul((const char *) n, e, b) +diff --git a/include/grub/libtasn1.h b/include/grub/libtasn1.h +index 785eda2ae3f..28dbf16c4e0 100644 +--- a/include/grub/libtasn1.h ++++ b/include/grub/libtasn1.h +@@ -38,29 +38,15 @@ + #ifndef LIBTASN1_H + #define LIBTASN1_H + +-#ifndef ASN1_API +-#if defined ASN1_BUILDING && defined HAVE_VISIBILITY && HAVE_VISIBILITY +-#define ASN1_API __attribute__((__visibility__("default"))) +-#elif defined ASN1_BUILDING && defined _MSC_VER && ! defined ASN1_STATIC +-#define ASN1_API __declspec(dllexport) +-#elif defined _MSC_VER && ! defined ASN1_STATIC +-#define ASN1_API __declspec(dllimport) +-#else ++/* grub: ASN1_API is not used */ + #define ASN1_API +-#endif +-#endif + +-#ifdef __GNUC__ +-# define __LIBTASN1_CONST__ __attribute__((const)) +-# define __LIBTASN1_PURE__ __attribute__((pure)) +-#else +-# define __LIBTASN1_CONST__ +-# define __LIBTASN1_PURE__ +-#endif ++/* grub: all our supported compilers support these attributes */ ++#define __LIBTASN1_CONST__ __attribute__((const)) ++#define __LIBTASN1_PURE__ __attribute__((pure)) + +-#include +-#include +-#include /* for FILE* */ ++#include ++#include + + #ifdef __cplusplus + extern "C" diff --git a/0172-libtasn1-compile-into-asn1-module.patch b/0172-libtasn1-compile-into-asn1-module.patch new file mode 100644 index 0000000..67be4e8 --- /dev/null +++ b/0172-libtasn1-compile-into-asn1-module.patch @@ -0,0 +1,70 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Axtens +Date: Fri, 5 Jun 2020 17:47:25 +1000 +Subject: [PATCH] libtasn1: compile into asn1 module + +Create a wrapper file that specifies the module license. +Set up the makefile so it is built. + +Signed-off-by: Daniel Axtens +--- + grub-core/Makefile.core.def | 15 +++++++++++++++ + grub-core/lib/libtasn1_wrap/wrap.c | 26 ++++++++++++++++++++++++++ + 2 files changed, 41 insertions(+) + create mode 100644 grub-core/lib/libtasn1_wrap/wrap.c + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 97347ae76f9..21d2c541850 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -2576,3 +2576,18 @@ module = { + common = commands/i386/wrmsr.c; + enable = x86; + }; ++ ++module = { ++ name = asn1; ++ common = lib/libtasn1/lib/decoding.c; ++ common = lib/libtasn1/lib/coding.c; ++ common = lib/libtasn1/lib/element.c; ++ common = lib/libtasn1/lib/structure.c; ++ common = lib/libtasn1/lib/parser_aux.c; ++ common = lib/libtasn1/lib/gstr.c; ++ common = lib/libtasn1/lib/errors.c; ++ common = lib/libtasn1_wrap/wrap.c; ++ cflags = '$(CFLAGS_POSIX) $(CFLAGS_GNULIB)'; ++ // -Wno-type-limits comes from libtasn1's configure.ac ++ cppflags = '$(CPPFLAGS_POSIX) $(CPPFLAGS_GNULIB) -I$(srcdir)/lib/libtasn1/lib -Wno-type-limits'; ++}; +diff --git a/grub-core/lib/libtasn1_wrap/wrap.c b/grub-core/lib/libtasn1_wrap/wrap.c +new file mode 100644 +index 00000000000..622ba942e33 +--- /dev/null ++++ b/grub-core/lib/libtasn1_wrap/wrap.c +@@ -0,0 +1,26 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2020 IBM Corporation ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++ ++/* ++ * libtasn1 is provided under LGPL2.1+, which is compatible ++ * with GPL3+. As Grub as a whole is under GPL3+, this module ++ * is therefore under GPL3+ also. ++ */ ++GRUB_MOD_LICENSE ("GPLv3+"); diff --git a/0173-Fix-undefined-references-for-fdt-when-building-with-.patch b/0173-Fix-undefined-references-for-fdt-when-building-with-.patch deleted file mode 100644 index 7f5bc53..0000000 --- a/0173-Fix-undefined-references-for-fdt-when-building-with-.patch +++ /dev/null @@ -1,44 +0,0 @@ -From b7e0553fec4b8e033d794e30b83565f5dd3652c6 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Wed, 1 May 2019 00:36:19 +0200 -Subject: [PATCH 173/220] Fix undefined references for fdt when building with - platform emu - -The fdt module isn't build for this platform, so adding the declarations -with platform emu will lead to the following undefined reference errors: - -BUILDSTDERR: /usr/bin/ld: grub_emu_lite-symlist.o:(.data+0x500): undefined reference to `grub_fdt_add_subnode' -BUILDSTDERR: /usr/bin/ld: grub_emu_lite-symlist.o:(.data+0x518): undefined reference to `grub_fdt_check_header' -BUILDSTDERR: /usr/bin/ld: grub_emu_lite-symlist.o:(.data+0x530): undefined reference to `grub_fdt_check_header_nosize' -BUILDSTDERR: /usr/bin/ld: grub_emu_lite-symlist.o:(.data+0x548): undefined reference to `grub_fdt_create_empty_tree' -BUILDSTDERR: /usr/bin/ld: grub_emu_lite-symlist.o:(.data+0x560): undefined reference to `grub_fdt_find_subnode' -BUILDSTDERR: /usr/bin/ld: grub_emu_lite-symlist.o:(.data+0x578): undefined reference to `grub_fdt_first_node' -BUILDSTDERR: /usr/bin/ld: grub_emu_lite-symlist.o:(.data+0x590): undefined reference to `grub_fdt_get_nodename' -BUILDSTDERR: /usr/bin/ld: grub_emu_lite-symlist.o:(.data+0x5a8): undefined reference to `grub_fdt_get_prop' -BUILDSTDERR: /usr/bin/ld: grub_emu_lite-symlist.o:(.data+0x5c0): undefined reference to `grub_fdt_next_node' -BUILDSTDERR: /usr/bin/ld: grub_emu_lite-symlist.o:(.data+0x5d8): undefined reference to `grub_fdt_set_prop' -BUILDSTDERR: collect2: error: ld returned 1 exit status -BUILDSTDERR: make[1]: *** [Makefile:27093: grub-emu-lite] Error 1 -BUILDSTDERR: make[1]: *** Waiting for unfinished jobs.... - -Signed-off-by: Javier Martinez Canillas ---- - include/grub/fdt.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/grub/fdt.h b/include/grub/fdt.h -index 22b7c54..2041341 100644 ---- a/include/grub/fdt.h -+++ b/include/grub/fdt.h -@@ -19,7 +19,7 @@ - #ifndef GRUB_FDT_HEADER - #define GRUB_FDT_HEADER 1 - --#if defined(__arm__) || defined(__aarch64__) -+#if !defined(GRUB_MACHINE_EMU) && (defined(__arm__) || defined(__aarch64__)) - - #include - #include --- -1.8.3.1 - diff --git a/0173-test_asn1-test-module-for-libtasn1.patch b/0173-test_asn1-test-module-for-libtasn1.patch new file mode 100644 index 0000000..b659558 --- /dev/null +++ b/0173-test_asn1-test-module-for-libtasn1.patch @@ -0,0 +1,1457 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Axtens +Date: Wed, 10 Jun 2020 17:48:42 +1000 +Subject: [PATCH] test_asn1: test module for libtasn1 + +Import tests from libtasn1 that don't use functionality we don't +import. I have put them here rather than in the libtasn1 directory +because: + + - They need much more significant changes to run in the grub + context. + + - I don't expect they will need to be changed when updating + libtasn1: I expect the old tests will usually continue to pass on + new versions. + +This doesn't test the full decoder but that will be exercised in +test suites for coming patch sets. + +Signed-off-by: Daniel Axtens +--- + Makefile.util.def | 6 + + grub-core/Makefile.core.def | 13 ++ + .../lib/libtasn1_wrap/tests/CVE-2018-1000654.c | 61 ++++++ + grub-core/lib/libtasn1_wrap/tests/Test_overflow.c | 138 ++++++++++++++ + grub-core/lib/libtasn1_wrap/tests/Test_simple.c | 207 ++++++++++++++++++++ + grub-core/lib/libtasn1_wrap/tests/Test_strings.c | 150 +++++++++++++++ + .../lib/libtasn1_wrap/tests/object-id-decoding.c | 116 +++++++++++ + .../lib/libtasn1_wrap/tests/object-id-encoding.c | 120 ++++++++++++ + grub-core/lib/libtasn1_wrap/tests/octet-string.c | 211 +++++++++++++++++++++ + grub-core/lib/libtasn1_wrap/tests/reproducers.c | 81 ++++++++ + grub-core/lib/libtasn1_wrap/wrap_tests.c | 75 ++++++++ + .../tests/CVE-2018-1000654-1_asn1_tab.h | 32 ++++ + .../tests/CVE-2018-1000654-2_asn1_tab.h | 36 ++++ + grub-core/lib/libtasn1_wrap/wrap_tests.h | 38 ++++ + .gitignore | 1 + + tests/test_asn1.in | 12 ++ + 16 files changed, 1297 insertions(+) + create mode 100644 grub-core/lib/libtasn1_wrap/tests/CVE-2018-1000654.c + create mode 100644 grub-core/lib/libtasn1_wrap/tests/Test_overflow.c + create mode 100644 grub-core/lib/libtasn1_wrap/tests/Test_simple.c + create mode 100644 grub-core/lib/libtasn1_wrap/tests/Test_strings.c + create mode 100644 grub-core/lib/libtasn1_wrap/tests/object-id-decoding.c + create mode 100644 grub-core/lib/libtasn1_wrap/tests/object-id-encoding.c + create mode 100644 grub-core/lib/libtasn1_wrap/tests/octet-string.c + create mode 100644 grub-core/lib/libtasn1_wrap/tests/reproducers.c + create mode 100644 grub-core/lib/libtasn1_wrap/wrap_tests.c + create mode 100644 grub-core/lib/libtasn1_wrap/tests/CVE-2018-1000654-1_asn1_tab.h + create mode 100644 grub-core/lib/libtasn1_wrap/tests/CVE-2018-1000654-2_asn1_tab.h + create mode 100644 grub-core/lib/libtasn1_wrap/wrap_tests.h + create mode 100644 tests/test_asn1.in + +diff --git a/Makefile.util.def b/Makefile.util.def +index 9927c2cfd6a..3f191aa8095 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -1306,6 +1306,12 @@ script = { + common = tests/syslinux_test.in; + }; + ++script = { ++ testcase; ++ name = test_asn1; ++ common = tests/test_asn1.in; ++}; ++ + program = { + testcase; + name = example_unit_test; +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 21d2c541850..b4aaccf7b57 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -2591,3 +2591,16 @@ module = { + // -Wno-type-limits comes from libtasn1's configure.ac + cppflags = '$(CPPFLAGS_POSIX) $(CPPFLAGS_GNULIB) -I$(srcdir)/lib/libtasn1/lib -Wno-type-limits'; + }; ++ ++module = { ++ name = test_asn1; ++ common = lib/libtasn1_wrap/tests/CVE-2018-1000654.c; ++ common = lib/libtasn1_wrap/tests/object-id-decoding.c; ++ common = lib/libtasn1_wrap/tests/object-id-encoding.c; ++ common = lib/libtasn1_wrap/tests/octet-string.c; ++ common = lib/libtasn1_wrap/tests/reproducers.c; ++ common = lib/libtasn1_wrap/tests/Test_overflow.c; ++ common = lib/libtasn1_wrap/tests/Test_simple.c; ++ common = lib/libtasn1_wrap/tests/Test_strings.c; ++ common = lib/libtasn1_wrap/wrap_tests.c; ++}; +diff --git a/grub-core/lib/libtasn1_wrap/tests/CVE-2018-1000654.c b/grub-core/lib/libtasn1_wrap/tests/CVE-2018-1000654.c +new file mode 100644 +index 00000000000..534e304521e +--- /dev/null ++++ b/grub-core/lib/libtasn1_wrap/tests/CVE-2018-1000654.c +@@ -0,0 +1,61 @@ ++/* ++ * Copyright (C) 2002-2018 Free Software Foundation, Inc. ++ * ++ * This file is part of LIBTASN1. ++ * ++ * This program is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program. If not, see . ++ * ++ */ ++ ++/****************************************************************/ ++/* Description: reproducer for CVE-2018-1000654 */ ++/****************************************************************/ ++ ++#include ++#include ++#include ++#include ++#include ++#include "../wrap_tests.h" ++ ++#include "CVE-2018-1000654-1_asn1_tab.h" ++#include "CVE-2018-1000654-2_asn1_tab.h" ++ ++void ++test_CVE_2018_1000654 (void) ++{ ++ int result; ++ asn1_node definitions = NULL; ++ char errorDescription[ASN1_MAX_ERROR_DESCRIPTION_SIZE]; ++ ++ result = asn1_array2tree (CVE_2018_1000654_1_asn1_tab, &definitions, errorDescription); ++ if (result != ASN1_RECURSION) ++ { ++ grub_fatal ("Error: %s\nErrorDescription = %s\n\n", ++ asn1_strerror (result), errorDescription); ++ return; ++ } ++ ++ asn1_delete_structure (&definitions); ++ ++ result = asn1_array2tree (CVE_2018_1000654_2_asn1_tab, &definitions, errorDescription); ++ if (result != ASN1_RECURSION) ++ { ++ grub_fatal ("Error: %s\nErrorDescription = %s\n\n", ++ asn1_strerror (result), errorDescription); ++ return; ++ } ++ ++ asn1_delete_structure (&definitions); ++} +diff --git a/grub-core/lib/libtasn1_wrap/tests/Test_overflow.c b/grub-core/lib/libtasn1_wrap/tests/Test_overflow.c +new file mode 100644 +index 00000000000..f48aea0ef8b +--- /dev/null ++++ b/grub-core/lib/libtasn1_wrap/tests/Test_overflow.c +@@ -0,0 +1,138 @@ ++/* ++ * Copyright (C) 2012-2014 Free Software Foundation, Inc. ++ * ++ * This file is part of LIBTASN1. ++ * ++ * This program is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program. If not, see . ++ * ++ */ ++ ++/* Written by Simon Josefsson */ ++ ++#include ++#include ++#include ++#include ++#include ++#include "../wrap_tests.h" ++ ++void ++test_overflow(void) ++{ ++ /* Test that values larger than long are rejected. This has worked ++ fine with all versions of libtasn1. */ ++ ++ { ++ unsigned char der[] = "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"; ++ long l; ++ int len; ++ ++ l = asn1_get_length_der (der, sizeof der, &len); ++ ++ if (l != -2L) ++ { ++ grub_fatal ("ERROR: asn1_get_length_der bignum (l %ld len %d)\n", l, len); ++ return; ++ } ++ } ++ ++ /* Test that values larger than int but smaller than long are ++ rejected. This limitation was introduced with libtasn1 2.12. */ ++#if (GRUB_LONG_MAX > GRUB_INT_MAX) ++ { ++ unsigned long num = ((long) GRUB_UINT_MAX) << 2; ++ unsigned char der[20]; ++ int der_len; ++ long l; ++ int len; ++ ++ asn1_length_der (num, der, &der_len); ++ ++ l = asn1_get_length_der (der, der_len, &len); ++ ++ if (l != -2L) ++ { ++ grub_fatal ("ERROR: asn1_get_length_der intnum (l %ld len %d)\n", l, ++ len); ++ return; ++ } ++ } ++#endif ++ ++ /* Test that values larger than would fit in the input string are ++ rejected. This problem was fixed in libtasn1 2.12. */ ++ { ++ unsigned long num = 64; ++ unsigned char der[20]; ++ int der_len; ++ long l; ++ int len; ++ ++ asn1_length_der (num, der, &der_len); ++ ++ der_len = sizeof (der); ++ l = asn1_get_length_der (der, der_len, &len); ++ ++ if (l != -4L) ++ { ++ grub_fatal ("ERROR: asn1_get_length_der overflow-small (l %ld len %d)\n", ++ l, len); ++ return; ++ } ++ } ++ ++ /* Test that values larger than would fit in the input string are ++ rejected. This problem was fixed in libtasn1 2.12. */ ++ { ++ unsigned long num = 1073741824; ++ unsigned char der[20]; ++ int der_len; ++ long l; ++ int len; ++ ++ asn1_length_der (num, der, &der_len); ++ ++ der_len = sizeof (der); ++ l = asn1_get_length_der (der, der_len, &len); ++ ++ if (l != -4L) ++ { ++ grub_fatal ("ERROR: asn1_get_length_der overflow-large1 (l %ld len %d)\n", ++ l, len); ++ return; ++ } ++ } ++ ++ /* Test that values larger than would fit in the input string are ++ rejected. This problem was fixed in libtasn1 2.12. */ ++ { ++ unsigned long num = 2147483649; ++ unsigned char der[20]; ++ int der_len; ++ long l; ++ int len; ++ ++ asn1_length_der (num, der, &der_len); ++ ++ der_len = sizeof (der); ++ l = asn1_get_length_der (der, der_len, &len); ++ ++ if (l != -2L) ++ { ++ grub_fatal ("ERROR: asn1_get_length_der overflow-large2 (l %ld len %d)\n", ++ l, len); ++ return; ++ } ++ } ++} +diff --git a/grub-core/lib/libtasn1_wrap/tests/Test_simple.c b/grub-core/lib/libtasn1_wrap/tests/Test_simple.c +new file mode 100644 +index 00000000000..9f01006ddf4 +--- /dev/null ++++ b/grub-core/lib/libtasn1_wrap/tests/Test_simple.c +@@ -0,0 +1,207 @@ ++/* ++ * Copyright (C) 2011-2014 Free Software Foundation, Inc. ++ * ++ * This file is part of LIBTASN1. ++ * ++ * This program is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program. If not, see . ++ * ++ * Written by Simon Josefsson ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include "../wrap_tests.h" ++ ++struct tv ++{ ++ int bitlen; ++ const char *bitstr; ++ int derlen; ++ const char *der; ++}; ++ ++static const struct tv tv[] = { ++ {0, "", 2, "\x01\x00"}, ++ {1, "\x00", 3, "\x02\x07\x00"}, ++ {2, "\x00", 3, "\x02\x06\x00"}, ++ {3, "\x00", 3, "\x02\x05\x00"}, ++ {4, "\x00", 3, "\x02\x04\x00"}, ++ {5, "\x00", 3, "\x02\x03\x00"}, ++ {6, "\x00", 3, "\x02\x02\x00"}, ++ {7, "\x00", 3, "\x02\x01\x00"}, ++ {8, "\x00\x00", 3, "\x02\x00\x00"}, ++ {9, "\x00\x00", 4, "\x03\x07\x00\x00"}, ++ {10, "\x00\x00", 4, "\x03\x06\x00\x00"}, ++ {11, "\x00\x00", 4, "\x03\x05\x00\x00"}, ++ {12, "\x00\x00", 4, "\x03\x04\x00\x00"}, ++ {13, "\x00\x00", 4, "\x03\x03\x00\x00"}, ++ {14, "\x00\x00", 4, "\x03\x02\x00\x00"}, ++ {15, "\x00\x00", 4, "\x03\x01\x00\x00"}, ++ {16, "\x00\x00", 4, "\x03\x00\x00\x00"}, ++ {17, "\x00\x00\x00", 5, "\x04\x07\x00\x00\x00"}, ++ {18, "\x00\x00\x00", 5, "\x04\x06\x00\x00\x00"}, ++ {19, "\x00\x00\x00", 5, "\x04\x05\x00\x00\x00"}, ++ {1, "\xFF", 3, "\x02\x07\x80"}, ++ {2, "\xFF", 3, "\x02\x06\xc0"}, ++ {3, "\xFF", 3, "\x02\x05\xe0"}, ++ {4, "\xFF", 3, "\x02\x04\xf0"}, ++ {5, "\xFF", 3, "\x02\x03\xf8"}, ++ {6, "\xFF", 3, "\x02\x02\xfc"}, ++ {7, "\xFF", 3, "\x02\x01\xfe"}, ++ {8, "\xFF\xFF", 3, "\x02\x00\xff"}, ++ {9, "\xFF\xFF", 4, "\x03\x07\xff\x80"}, ++ {10, "\xFF\xFF", 4, "\x03\x06\xff\xc0"}, ++ {11, "\xFF\xFF", 4, "\x03\x05\xff\xe0"}, ++ {12, "\xFF\xFF", 4, "\x03\x04\xff\xf0"}, ++ {13, "\xFF\xFF", 4, "\x03\x03\xff\xf8"}, ++ {14, "\xFF\xFF", 4, "\x03\x02\xff\xfc"}, ++ {15, "\xFF\xFF", 4, "\x03\x01\xff\xfe"}, ++ {16, "\xFF\xFF", 4, "\x03\x00\xff\xff"}, ++ {17, "\xFF\xFF\xFF", 5, "\x04\x07\xff\xff\x80"}, ++ {18, "\xFF\xFF\xFF", 5, "\x04\x06\xff\xff\xc0"}, ++ {19, "\xFF\xFF\xFF", 5, "\x04\x05\xff\xff\xe0"}, ++}; ++ ++void ++test_simple (void) ++{ ++ int result; ++ unsigned char der[100]; ++ unsigned char str[100]; ++ int der_len = sizeof (der); ++ int str_size = sizeof (str); ++ int ret_len, bit_len; ++ grub_size_t i; ++ ++ /* Dummy test */ ++ ++ asn1_bit_der (NULL, 0, der, &der_len); ++ result = asn1_get_bit_der (der, 0, &ret_len, str, str_size, &bit_len); ++ if (result != ASN1_GENERIC_ERROR) ++ { ++ grub_fatal ("asn1_get_bit_der zero\n"); ++ return; ++ } ++ ++ /* Encode short strings with increasing bit lengths */ ++ ++ for (i = 0; i < sizeof (tv) / sizeof (tv[0]); i++) ++ { ++ /* Encode */ ++ ++ asn1_bit_der ((const unsigned char *) tv[i].bitstr, tv[i].bitlen, ++ der, &der_len); ++ ++#if 0 ++ { ++ size_t j; ++ for (j = 0; j < der_len; j++) ++ printf ("\\x%02x", der[j]); ++ printf ("\n"); ++ } ++#endif ++ ++ if (der_len != tv[i].derlen || grub_memcmp (der, tv[i].der, der_len) != 0) ++ { ++ grub_fatal ("asn1_bit_der iter %lu\n", (unsigned long) i); ++ return; ++ } ++ ++ /* Decode it */ ++ ++ result = asn1_get_bit_der (der, der_len, &ret_len, str, ++ str_size, &bit_len); ++ if (result != ASN1_SUCCESS || ret_len != tv[i].derlen ++ || bit_len != tv[i].bitlen) ++ { ++ grub_fatal ("asn1_get_bit_der iter %lu, err: %d\n", (unsigned long) i, result); ++ return; ++ } ++ } ++ ++ ++ /* Decode sample from "A Layman's Guide to a Subset of ASN.1, BER, ++ and DER" section 5.4 "BIT STRING": "The BER encoding of the BIT ++ STRING value "011011100101110111" can be any of the following, ++ among others, depending on the choice of padding bits, the form ++ of length octets [...]". ++ */ ++ ++ /* 03 04 06 6e 5d c0 DER encoding */ ++ ++ grub_memcpy (der, "\x04\x06\x6e\x5d\xc0", 5); ++ der_len = 5; ++ ++ result = asn1_get_bit_der (der, der_len, &ret_len, str, str_size, &bit_len); ++ if (result != ASN1_SUCCESS || ret_len != 5 ++ || bit_len != 18 || grub_memcmp (str, "\x6e\x5d\xc0", 3) != 0) ++ { ++ grub_fatal ("asn1_get_bit_der example\n"); ++ return; ++ } ++ ++ der_len = sizeof (der); ++ asn1_bit_der (str, bit_len, der, &der_len); ++ if (der_len != 5 || grub_memcmp (der, "\x04\x06\x6e\x5d\xc0", 5) != 0) ++ { ++ grub_fatal ("asn1_bit_der example roundtrip\n"); ++ return; ++ } ++ ++ /* 03 04 06 6e 5d e0 padded with "100000" */ ++ ++ grub_memcpy (der, "\x04\x06\x6e\x5d\xe0", 5); ++ der_len = 5; ++ ++ result = asn1_get_bit_der (der, der_len, &ret_len, str, str_size, &bit_len); ++ if (result != ASN1_SUCCESS || ret_len != 5 ++ || bit_len != 18 || grub_memcmp (str, "\x6e\x5d\xe0", 3) != 0) ++ { ++ grub_fatal ("asn1_get_bit_der example padded\n"); ++ return; ++ } ++ ++ der_len = sizeof (der); ++ asn1_bit_der (str, bit_len, der, &der_len); ++ if (der_len != 5 || grub_memcmp (der, "\x04\x06\x6e\x5d\xc0", 5) != 0) ++ { ++ grub_fatal ("asn1_bit_der example roundtrip\n"); ++ return; ++ } ++ ++ /* 03 81 04 06 6e 5d c0 long form of length octets */ ++ ++ grub_memcpy (der, "\x81\x04\x06\x6e\x5d\xc0", 6); ++ der_len = 6; ++ ++ result = asn1_get_bit_der (der, der_len, &ret_len, str, str_size, &bit_len); ++ ++ if (result != ASN1_SUCCESS || ret_len != 6 ++ || bit_len != 18 || grub_memcmp (str, "\x6e\x5d\xc0", 3) != 0) ++ { ++ grub_fatal ("asn1_get_bit_der example long form\n"); ++ return; ++ } ++ ++ der_len = sizeof (der); ++ asn1_bit_der (str, bit_len, der, &der_len); ++ if (der_len != 5 || grub_memcmp (der, "\x04\x06\x6e\x5d\xc0", 5) != 0) ++ { ++ grub_fatal ("asn1_bit_der example roundtrip\n"); ++ return; ++ } ++} +diff --git a/grub-core/lib/libtasn1_wrap/tests/Test_strings.c b/grub-core/lib/libtasn1_wrap/tests/Test_strings.c +new file mode 100644 +index 00000000000..dbe1474b204 +--- /dev/null ++++ b/grub-core/lib/libtasn1_wrap/tests/Test_strings.c +@@ -0,0 +1,150 @@ ++/* ++ * Copyright (C) 2012-2014 Free Software Foundation, Inc. ++ * ++ * This file is part of LIBTASN1. ++ * ++ * This program is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program. If not, see . ++ * ++ * Written by Simon Josefsson ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include "../wrap_tests.h" ++ ++struct tv ++{ ++ unsigned int etype; ++ unsigned int str_len; ++ const void *str; ++ unsigned int der_len; ++ const void *der; ++}; ++ ++static const struct tv tv[] = { ++ {ASN1_ETYPE_IA5_STRING, 20, ++ "\x63\x73\x63\x61\x40\x70\x61\x73\x73\x70\x6f\x72\x74\x2e\x67\x6f\x76\x2e\x67\x72", ++ 22, ++ "\x16\x14\x63\x73\x63\x61\x40\x70\x61\x73\x73\x70\x6f\x72\x74\x2e\x67\x6f\x76\x2e\x67\x72"}, ++ {ASN1_ETYPE_PRINTABLE_STRING, 5, "\x4e\x69\x6b\x6f\x73", ++ 7, "\x13\x05\x4e\x69\x6b\x6f\x73"}, ++ {ASN1_ETYPE_UTF8_STRING, 12, "Αττική", ++ 14, "\x0c\x0c\xce\x91\xcf\x84\xcf\x84\xce\xb9\xce\xba\xce\xae"}, ++ {ASN1_ETYPE_TELETEX_STRING, 15, ++ "\x53\x69\x6d\x6f\x6e\x20\x4a\x6f\x73\x65\x66\x73\x73\x6f\x6e", ++ 17, ++ "\x14\x0f\x53\x69\x6d\x6f\x6e\x20\x4a\x6f\x73\x65\x66\x73\x73\x6f\x6e"}, ++ {ASN1_ETYPE_OCTET_STRING, 36, ++ "\x30\x22\x80\x0F\x32\x30\x31\x31\x30\x38\x32\x31\x30\x38\x30\x30\x30\x36\x5A\x81\x0F\x32\x30\x31\x31\x30\x38\x32\x33\x32\x30\x35\x39\x35\x39\x5A", ++ 38, ++ "\x04\x24\x30\x22\x80\x0F\x32\x30\x31\x31\x30\x38\x32\x31\x30\x38\x30\x30\x30\x36\x5A\x81\x0F\x32\x30\x31\x31\x30\x38\x32\x33\x32\x30\x35\x39\x35\x39\x5A"} ++}; ++ ++#define SSTR(x) sizeof(x)-1,x ++static const struct tv ber[] = { ++ {ASN1_ETYPE_OCTET_STRING, ++ SSTR("\xa0\xa0"), ++ SSTR("\x24\x80\x04\x82\x00\x02\xa0\xa0\x00\x00")}, ++ {ASN1_ETYPE_OCTET_STRING, ++ SSTR("\xa0\xa0\xb0\xb0\xb0"), ++ SSTR("\x24\x80\x04\x82\x00\x02\xa0\xa0\x04\x82\x00\x03\xb0\xb0\xb0\x00\x00")}, ++ {ASN1_ETYPE_OCTET_STRING, ++ SSTR("\xa0\xa0\xb0\xb0\xb0\xa1\xa1"), ++ SSTR("\x24\x80\x04\x82\x00\x02\xa0\xa0\x04\x82\x00\x03\xb0\xb0\xb0\x24\x80\x04\x82\x00\x02\xa1\xa1\x00\x00\x00\x00")}, ++ {ASN1_ETYPE_OCTET_STRING, ++ SSTR("\xa0\xa0\xb0\xb0\xb0\xa1\xa1\xc1"), ++ SSTR("\x24\x80\x04\x82\x00\x02\xa0\xa0\x04\x82\x00\x03\xb0\xb0\xb0\x24\x80\x04\x82\x00\x02\xa1\xa1\x04\x82\x00\x01\xc1\x00\x00\x00\x00")}, ++}; ++ ++void ++test_strings () ++{ ++ int ret; ++ unsigned char tl[ASN1_MAX_TL_SIZE]; ++ unsigned int tl_len, der_len, str_len; ++ const unsigned char *str; ++ unsigned char *b; ++ unsigned int i; ++ ++ /* Dummy test */ ++ ++ for (i = 0; i < sizeof (tv) / sizeof (tv[0]); i++) ++ { ++ /* Encode */ ++ tl_len = sizeof (tl); ++ ret = asn1_encode_simple_der (tv[i].etype, tv[i].str, tv[i].str_len, ++ tl, &tl_len); ++ if (ret != ASN1_SUCCESS) ++ { ++ grub_fatal ("Encoding error in %u: %s\n", i, ++ asn1_strerror (ret)); ++ return; ++ } ++ der_len = tl_len + tv[i].str_len; ++ ++ if (der_len != tv[i].der_len || grub_memcmp (tl, tv[i].der, tl_len) != 0) ++ { ++ grub_fatal ( ++ "DER encoding differs in %u! (size: %u, expected: %u)\n", ++ i, der_len, tv[i].der_len); ++ return; ++ } ++ ++ /* decoding */ ++ ret = ++ asn1_decode_simple_der (tv[i].etype, tv[i].der, tv[i].der_len, &str, ++ &str_len); ++ if (ret != ASN1_SUCCESS) ++ { ++ grub_fatal ("Decoding error in %u: %s\n", i, ++ asn1_strerror (ret)); ++ return; ++ } ++ ++ if (str_len != tv[i].str_len || grub_memcmp (str, tv[i].str, str_len) != 0) ++ { ++ grub_fatal ( ++ "DER decoded data differ in %u! (size: %u, expected: %u)\n", ++ i, der_len, tv[i].str_len); ++ return; ++ } ++ } ++ ++ /* BER decoding */ ++ for (i = 0; i < sizeof (ber) / sizeof (ber[0]); i++) ++ { ++ /* decoding */ ++ ret = ++ asn1_decode_simple_ber (ber[i].etype, ber[i].der, ber[i].der_len, &b, ++ &str_len, NULL); ++ if (ret != ASN1_SUCCESS) ++ { ++ grub_fatal ("BER decoding error in %u: %s\n", i, ++ asn1_strerror (ret)); ++ return; ++ } ++ ++ if (str_len != ber[i].str_len || grub_memcmp (b, ber[i].str, str_len) != 0) ++ { ++ grub_fatal ( ++ "BER decoded data differ in %u! (size: %u, expected: %u)\n", ++ i, str_len, ber[i].str_len); ++ return; ++ } ++ grub_free(b); ++ } ++} +diff --git a/grub-core/lib/libtasn1_wrap/tests/object-id-decoding.c b/grub-core/lib/libtasn1_wrap/tests/object-id-decoding.c +new file mode 100644 +index 00000000000..d367bbfb5a7 +--- /dev/null ++++ b/grub-core/lib/libtasn1_wrap/tests/object-id-decoding.c +@@ -0,0 +1,116 @@ ++/* ++ * Copyright (C) 2016 Red Hat, Inc. ++ * ++ * This file is part of LIBTASN1. ++ * ++ * This program is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program. If not, see . ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include "../wrap_tests.h" ++ ++struct tv ++{ ++ int der_len; ++ const unsigned char *der; ++ const char *oid; ++ int expected_error; ++}; ++ ++static const struct tv tv[] = { ++ {.der_len = 5, ++ .der = (void *) "\x06\x03\x80\x37\x03", ++ .oid = "2.999.3", ++ .expected_error = ASN1_DER_ERROR /* leading 0x80 */ ++ }, ++ {.der_len = 12, ++ .der = (void *) "\x06\x0a\x2b\x06\x01\x80\x01\x92\x08\x09\x05\x01", ++ .oid = "1.3.6.1.4.1.2312.9.5.1", ++ .expected_error = ASN1_DER_ERROR /* leading 0x80 */ ++ }, ++ {.der_len = 6, ++ .der = (void *) "\x06\x04\x01\x02\x03\x04", ++ .oid = "0.1.2.3.4", ++ .expected_error = ASN1_SUCCESS}, ++ {.der_len = 5, ++ .der = (void *) "\x06\x03\x51\x02\x03", ++ .oid = "2.1.2.3", ++ .expected_error = ASN1_SUCCESS}, ++ {.der_len = 5, ++ .der = (void *) "\x06\x03\x88\x37\x03", ++ .oid = "2.999.3", ++ .expected_error = ASN1_SUCCESS}, ++ {.der_len = 12, ++ .der = (void *) "\x06\x0a\x2b\x06\x01\x04\x01\x92\x08\x09\x05\x01", ++ .oid = "1.3.6.1.4.1.2312.9.5.1", ++ .expected_error = ASN1_SUCCESS}, ++ {.der_len = 19, ++ .der = (void *) "\x06\x11\xfa\x80\x00\x00\x00\x0e\x01\x0e\xfa\x80\x00\x00\x00\x0e\x63\x6f\x6d", ++ .oid = "2.1998768.0.0.14.1.14.1998848.0.0.14.99.111.109", ++ .expected_error = ASN1_SUCCESS}, ++ {.der_len = 19, ++ .der = ++ (void *) ++ "\x06\x11\x2b\x06\x01\x04\x01\x92\x08\x09\x02\xaa\xda\xbe\xbe\xfa\x72\x01\x07", ++ .oid = "1.3.6.1.4.1.2312.9.2.1467399257458.1.7", ++ .expected_error = ASN1_SUCCESS}, ++}; ++ ++void ++test_object_id_decoding (void) ++{ ++ char str[128]; ++ int ret, ret_len; ++ grub_size_t i; ++ ++ for (i = 0; i < sizeof (tv) / sizeof (tv[0]); i++) ++ { ++ /* decode */ ++ ret = ++ asn1_get_object_id_der (tv[i].der+1, ++ tv[i].der_len-1, &ret_len, str, ++ sizeof (str)); ++ if (ret != tv[i].expected_error) ++ { ++ grub_fatal ( ++ "%d: asn1_get_object_id_der iter %lu: got '%s' expected %d\n", ++ __LINE__, (unsigned long) i, asn1_strerror(ret), tv[i].expected_error); ++ return; ++ } ++ ++ if (tv[i].expected_error != ASN1_SUCCESS) ++ continue; ++ ++ if (ret_len != tv[i].der_len-1) ++ { ++ grub_fatal ( ++ "%d: iter %lu: error in DER, length returned is %d, had %d\n", ++ __LINE__, (unsigned long)i, ret_len, tv[i].der_len-1); ++ return; ++ } ++ ++ if (grub_strcmp (tv[i].oid, str) != 0) ++ { ++ grub_fatal ( ++ "%d: strcmp iter %lu: got invalid OID: %s, expected: %s\n", ++ __LINE__, (unsigned long) i, str, tv[i].oid); ++ return; ++ } ++ ++ } ++} +diff --git a/grub-core/lib/libtasn1_wrap/tests/object-id-encoding.c b/grub-core/lib/libtasn1_wrap/tests/object-id-encoding.c +new file mode 100644 +index 00000000000..3a83b58c59f +--- /dev/null ++++ b/grub-core/lib/libtasn1_wrap/tests/object-id-encoding.c +@@ -0,0 +1,120 @@ ++/* ++ * Copyright (C) 2019 Nikos Mavrogiannopoulos ++ * ++ * This file is part of LIBTASN1. ++ * ++ * This program is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program. If not, see . ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include "../wrap_tests.h" ++ ++struct tv ++{ ++ int der_len; ++ const unsigned char *der; ++ const char *oid; ++ int expected_error; ++}; ++ ++static const struct tv tv[] = { ++ {.der_len = 0, ++ .der = (void *) "", ++ .oid = "5.999.3", ++ .expected_error = ASN1_VALUE_NOT_VALID /* cannot start with 5 */ ++ }, ++ {.der_len = 0, ++ .der = (void *) "", ++ .oid = "0.48.9", ++ .expected_error = ASN1_VALUE_NOT_VALID /* second field cannot be 48 */ ++ }, ++ {.der_len = 0, ++ .der = (void *) "", ++ .oid = "1.40.9", ++ .expected_error = ASN1_VALUE_NOT_VALID /* second field cannot be 40 */ ++ }, ++ {.der_len = 4, ++ .der = (void *) "\x06\x02\x4f\x63", ++ .oid = "1.39.99", ++ .expected_error = ASN1_SUCCESS, ++ }, ++ {.der_len = 6, ++ .der = (void *) "\x06\x04\x01\x02\x03\x04", ++ .oid = "0.1.2.3.4", ++ .expected_error = ASN1_SUCCESS}, ++ {.der_len = 5, ++ .der = (void *) "\x06\x03\x51\x02\x03", ++ .oid = "2.1.2.3", ++ .expected_error = ASN1_SUCCESS}, ++ {.der_len = 5, ++ .der = (void *) "\x06\x03\x88\x37\x03", ++ .oid = "2.999.3", ++ .expected_error = ASN1_SUCCESS}, ++ {.der_len = 12, ++ .der = (void *) "\x06\x0a\x2b\x06\x01\x04\x01\x92\x08\x09\x05\x01", ++ .oid = "1.3.6.1.4.1.2312.9.5.1", ++ .expected_error = ASN1_SUCCESS}, ++ {.der_len = 19, ++ .der = (void *) "\x06\x11\xfa\x80\x00\x00\x00\x0e\x01\x0e\xfa\x80\x00\x00\x00\x0e\x63\x6f\x6d", ++ .oid = "2.1998768.0.0.14.1.14.1998848.0.0.14.99.111.109", ++ .expected_error = ASN1_SUCCESS}, ++ {.der_len = 19, ++ .der = ++ (void *) ++ "\x06\x11\x2b\x06\x01\x04\x01\x92\x08\x09\x02\xaa\xda\xbe\xbe\xfa\x72\x01\x07", ++ .oid = "1.3.6.1.4.1.2312.9.2.1467399257458.1.7", ++ .expected_error = ASN1_SUCCESS}, ++}; ++ ++void ++test_object_id_encoding(void) ++{ ++ unsigned char der[128]; ++ int ret, der_len, i; ++ ++ for (i = 0; i < (int)(sizeof (tv) / sizeof (tv[0])); i++) ++ { ++ der_len = sizeof(der); ++ ret = asn1_object_id_der(tv[i].oid, der, &der_len, 0); ++ if (ret != ASN1_SUCCESS) ++ { ++ if (ret == tv[i].expected_error) ++ continue; ++ grub_fatal ( ++ "%d: iter %lu, encoding of OID failed: %s\n", ++ __LINE__, (unsigned long) i, asn1_strerror(ret)); ++ return; ++ } ++ else if (ret != tv[i].expected_error) ++ { ++ grub_fatal ( ++ "%d: iter %lu, encoding of OID %s succeeded when expecting failure\n", ++ __LINE__, (unsigned long) i, tv[i].oid); ++ return; ++ } ++ ++ if (der_len != tv[i].der_len || grub_memcmp(der, tv[i].der, der_len) != 0) ++ { ++ grub_fatal ( ++ "%d: iter %lu, re-encoding of OID %s resulted to different string (%d vs %d bytes)\n", ++ __LINE__, (unsigned long) i, tv[i].oid, der_len, tv[i].der_len); ++ ++ return; ++ } ++ } ++} +diff --git a/grub-core/lib/libtasn1_wrap/tests/octet-string.c b/grub-core/lib/libtasn1_wrap/tests/octet-string.c +new file mode 100644 +index 00000000000..d8a049e8df0 +--- /dev/null ++++ b/grub-core/lib/libtasn1_wrap/tests/octet-string.c +@@ -0,0 +1,211 @@ ++/* ++ * Copyright (C) 2011-2020 Free Software Foundation, Inc. ++ * ++ * This file is part of LIBTASN1. ++ * ++ * This program is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program. If not, see . ++ * ++ * Written by Simon Josefsson and Nikos Mavrogiannopoulos ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include "../wrap_tests.h" ++ ++ ++struct tv ++{ ++ const char *name; ++ int der_len; ++ const unsigned char *der_str; ++ int len; ++ const unsigned char *string; ++ int expected_error; ++ int ber; ++}; ++ ++static const struct tv tv[] = { ++ {.name = "primitive octet strings", ++ .der_len = 10, ++ .der_str = ++ (void*)"\x04\x08\x01\x23\x45\x67\x89\xab\xcd\xef", ++ .len = 8, ++ .string = ++ (void*)"\x01\x23\x45\x67\x89\xab\xcd\xef", ++ .ber = 0}, ++ {.der_len = 22, ++ .der_str = ++ (void*)"\x04\x14\x13\x00\xd9\xa8\x47\xf7\xf2\x1c\xf4\xb0\xec\x5f\xc1\x73\xe5\x1b\x25\xc2\x62\x27", ++ .len = 20, ++ .string = ++ (void*)"\x13\x00\xD9\xA8\x47\xF7\xF2\x1C\xF4\xB0\xEC\x5F\xC1\x73\xE5\x1B\x25\xC2\x62\x27"}, ++ ++ {.name = "long type of length", ++ .der_len = 23, ++ .der_str = ++ (void*)"\x04\x81\x14\x13\x00\xd9\xa8\x47\xf7\xf2\x1c\xf4\xb0\xec\x5f\xc1\x73\xe5\x1b\x25\xc2\x62\x27", ++ .len = 20, ++ .string = ++ (void*)"\x13\x00\xD9\xA8\x47\xF7\xF2\x1C\xF4\xB0\xEC\x5F\xC1\x73\xE5\x1B\x25\xC2\x62\x27", ++ .ber = 1}, ++ {.der_len = 11, ++ .der_str = ++ (void*)"\x04\x81\x08\x01\x23\x45\x67\x89\xab\xcd\xef", ++ .len = 8, ++ .string = ++ (void*)"\x01\x23\x45\x67\x89\xab\xcd\xef", ++ .ber = 1}, ++ ++ {.name = "constructed - indefinite", ++ .der_len = 11, ++ .der_str = (void*)"\x24\x80\x04\x05\x01\x02\x03\x04\x05\x00\x00", ++ .len = 5, ++ .string = (void*)"\x01\x02\x03\x04\x05", ++ .ber = 1, ++ }, ++ ++ {.name = "constructed - definite - concat", ++ .der_len = 12, ++ .der_str = (void*)"\x24\x0a\x04\x04\x0a\x0b\x0c\x0d\x04\x02\x0e\x0f", ++ .len = 6, ++ .string = (void*)"\x0a\x0b\x0c\x0d\x0e\x0f", ++ .ber = 1, ++ }, ++ {.name = "constructed - definite - recursive", ++ .der_len = 15, ++ .der_str = (void*)"\x24\x0d\x04\x04\x0a\x0b\x0c\x0d\x24\x05\x04\x00\x04\x01\x0f", ++ .len = 5, ++ .string = (void*)"\x0a\x0b\x0c\x0d\x0f", ++ .ber = 1, ++ }, ++ {.name = "constructed - definite - single", ++ .der_len = 7, ++ .der_str = (void*)"\x24\x05\x04\x03\x01\x02\x03", ++ .len = 3, ++ .string = (void*)"\x01\x02\x03", ++ .ber = 1, ++ }, ++ ++ /* a large amount of recursive indefinite encoding */ ++ {.name = "a large amount of recursive indefinite encoding", ++ .der_len = 29325, ++ .der_str = (void*)"\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80\x24\x80", ++ .len = 0, ++ .ber = 1, ++ .expected_error = ASN1_DER_ERROR ++ } ++}; ++ ++void ++test_octet_string (void) ++{ ++ unsigned char str[100]; ++ unsigned char der[100]; ++ int der_len = sizeof (der); ++ int str_size = sizeof (str); ++ unsigned char *tmp = NULL; ++ int ret, ret_len; ++ grub_size_t i; ++ ++ for (i = 0; i < sizeof (tv) / sizeof (tv[0]); i++) ++ { ++ /* Decode */ ++ ++ if (tv[i].ber == 0) ++ { ++ str_size = sizeof (str); ++ ret = ++ asn1_get_octet_der (tv[i].der_str + 1, ++ tv[i].der_len - 1, &ret_len, str, ++ sizeof (str), &str_size); ++ if (ret != tv[i].expected_error) ++ { ++ grub_fatal ( ++ "%d: asn1_get_octet_der: %s: got %d expected %d\n", ++ __LINE__, tv[i].name, ret, ++ tv[i].expected_error); ++ return; ++ } ++ if (tv[i].expected_error) ++ continue; ++ ++ if (ret_len != tv[i].der_len - 1) ++ { ++ grub_fatal ( ++ "%d: error in DER, length returned is %d, had %d\n", ++ __LINE__, ret_len, tv[i].der_len - 1); ++ return; ++ } ++ ++ if (str_size != tv[i].len ++ || grub_memcmp (tv[i].string, str, tv[i].len) != 0) ++ { ++ grub_fatal ( ++ "%d: memcmp: %s: got invalid decoding\n", ++ __LINE__, tv[i].name); ++ ++ return; ++ } ++ ++ /* Encode */ ++ der_len = sizeof (der); ++ asn1_octet_der (str, str_size, der, &der_len); ++ ++ if (der_len != tv[i].der_len - 1 ++ || grub_memcmp (tv[i].der_str + 1, der, tv[i].der_len - 1) != 0) ++ { ++ grub_fatal ( ++ "encoding: %s: got invalid encoding\n", ++ tv[i].name); ++ return; ++ } ++ } ++ ++ ret = ++ asn1_decode_simple_ber (ASN1_ETYPE_OCTET_STRING, ++ tv[i].der_str, tv[i].der_len, ++ &tmp, (unsigned int*)&str_size, (unsigned int*)&der_len); ++ if (ret != tv[i].expected_error) ++ { ++ grub_fatal ( ++ "%d: asn1_decode_simple_ber: %s: got %s expected %s\n", ++ __LINE__, tv[i].name, asn1_strerror(ret), asn1_strerror(tv[i].expected_error)); ++ return; ++ } ++ if (tv[i].expected_error) ++ continue; ++ ++ if (der_len != tv[i].der_len) ++ { ++ grub_fatal ( ++ "%d: error: %s: DER, length returned is %d, had %d\n", ++ __LINE__, tv[i].name, der_len, tv[i].der_len); ++ return; ++ } ++ ++ if (str_size != tv[i].len || grub_memcmp (tv[i].string, tmp, tv[i].len) != 0) ++ { ++ grub_fatal ( ++ "%d: memcmp: %s: got invalid decoding\n", ++ __LINE__, tv[i].name); ++ return; ++ } ++ grub_free (tmp); ++ tmp = NULL; ++ ++ } ++} +diff --git a/grub-core/lib/libtasn1_wrap/tests/reproducers.c b/grub-core/lib/libtasn1_wrap/tests/reproducers.c +new file mode 100644 +index 00000000000..dc7268d4c6c +--- /dev/null ++++ b/grub-core/lib/libtasn1_wrap/tests/reproducers.c +@@ -0,0 +1,81 @@ ++/* ++ * Copyright (C) 2019 Free Software Foundation, Inc. ++ * ++ * This file is part of LIBTASN1. ++ * ++ * This program is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program. If not, see . ++ * ++ */ ++ ++/****************************************************************/ ++/* Description: run reproducers for several fixed issues */ ++/****************************************************************/ ++ ++#include ++#include ++#include ++#include "../wrap_tests.h" ++ ++#define CONST_DOWN (1U<<29) ++ ++/* produces endless loop (fixed by d4b624b2): ++ * The following translates into a single node with all pointers ++ * (right,left,down) set to NULL. */ ++const asn1_static_node endless_asn1_tab[] = { ++ { "TEST_TREE", 536875024, NULL }, ++ { NULL, 0, NULL } ++}; ++ ++/* produces memory leak (fixed by f16d1ff9): ++ * 152 bytes in 1 blocks are definitely lost in loss record 1 of 1 ++ * at 0x4837B65: calloc (vg_replace_malloc.c:762) ++ * by 0x4851C0D: _asn1_add_static_node (parser_aux.c:71) ++ * by 0x4853AAC: asn1_array2tree (structure.c:200) ++ * by 0x10923B: main (single_node.c:67) ++ */ ++const asn1_static_node tab[] = { ++{ "a", CONST_DOWN, "" }, ++{ "b", 0, "" }, ++{ "c", 0, "" }, ++{ NULL, 0, NULL } ++}; ++ ++void ++test_reproducers (void) ++{ ++ int result; ++ asn1_node definitions = NULL; ++ char errorDescription[ASN1_MAX_ERROR_DESCRIPTION_SIZE]; ++ ++ result = asn1_array2tree (endless_asn1_tab, &definitions, errorDescription); ++ if (result != ASN1_SUCCESS) ++ { ++ grub_fatal ("Error: %s\nErrorDescription = %s\n\n", ++ asn1_strerror (result), errorDescription); ++ return; ++ } ++ ++ asn1_delete_structure (&definitions); ++ ++ definitions = NULL; ++ result = asn1_array2tree (tab, &definitions, errorDescription); ++ if (result != ASN1_SUCCESS) ++ { ++ grub_fatal ("Error: %s\nErrorDescription = %s\n\n", ++ asn1_strerror (result), errorDescription); ++ return; ++ } ++ ++ asn1_delete_structure (&definitions); ++} +diff --git a/grub-core/lib/libtasn1_wrap/wrap_tests.c b/grub-core/lib/libtasn1_wrap/wrap_tests.c +new file mode 100644 +index 00000000000..75fcd21f0d5 +--- /dev/null ++++ b/grub-core/lib/libtasn1_wrap/wrap_tests.c +@@ -0,0 +1,75 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2020 IBM Corporation ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include "wrap_tests.h" ++ ++/* ++ * libtasn1 tests - from which this is derived - are provided under GPL3+. ++ */ ++GRUB_MOD_LICENSE ("GPLv3+"); ++ ++static grub_command_t cmd; ++ ++static grub_err_t ++grub_cmd_asn1test (grub_command_t cmdd __attribute__((unused)), ++ int argc __attribute__((unused)), ++ char **args __attribute__((unused))) ++{ ++ grub_printf ("test_CVE_2018_1000654\n"); ++ test_CVE_2018_1000654 (); ++ ++ grub_printf ("test_object_id_decoding\n"); ++ test_object_id_decoding (); ++ ++ grub_printf ("test_object_id_encoding\n"); ++ test_object_id_encoding (); ++ ++ grub_printf ("test_octet_string\n"); ++ test_octet_string (); ++ ++ grub_printf ("test_overflow\n"); ++ test_overflow (); ++ ++ grub_printf ("test_reproducers\n"); ++ test_overflow (); ++ ++ grub_printf ("test_simple\n"); ++ test_simple (); ++ ++ grub_printf ("test_strings\n"); ++ test_strings (); ++ ++ grub_printf ("ASN.1 self-tests passed\n"); ++ ++ return GRUB_ERR_NONE; ++} ++ ++ ++GRUB_MOD_INIT(test_asn1) ++{ ++ cmd = grub_register_command ("test_asn1", grub_cmd_asn1test, NULL, ++ "Run self-tests for the ASN.1 parser."); ++} ++ ++GRUB_MOD_FINI(test_asn1) ++{ ++ grub_unregister_command (cmd); ++} +diff --git a/grub-core/lib/libtasn1_wrap/tests/CVE-2018-1000654-1_asn1_tab.h b/grub-core/lib/libtasn1_wrap/tests/CVE-2018-1000654-1_asn1_tab.h +new file mode 100644 +index 00000000000..1e7d3d64f55 +--- /dev/null ++++ b/grub-core/lib/libtasn1_wrap/tests/CVE-2018-1000654-1_asn1_tab.h +@@ -0,0 +1,32 @@ ++#if HAVE_CONFIG_H ++# include "config.h" ++#endif ++ ++#include ++ ++const asn1_static_node CVE_2018_1000654_1_asn1_tab[] = { ++ { "TEST_TREE", 536875024, NULL }, ++ { NULL, 1610612748, NULL }, ++ { "iso", 1073741825, "1"}, ++ { "identified-organization", 1073741825, "3"}, ++ { "dod", 1073741825, "6"}, ++ { "internet", 1073741825, "1"}, ++ { "security", 1073741825, "5"}, ++ { "mechanisms", 1073741825, "5"}, ++ { "pkix", 1073741825, "7"}, ++ { "id-mod", 1073741825, "0"}, ++ { "id-pkix1-implicit-88", 1, "2"}, ++ { "id-xnyTest", 1879048204, NULL }, ++ { NULL, 1073741825, "id-ix"}, ++ { NULL, 1073741825, "29"}, ++ { NULL, 1, "1"}, ++ { "id-ix", 1880096780, "OBJECR"}, ++ { NULL, 1073741825, "id-ix"}, ++ { NULL, 1073741825, "29"}, ++ { NULL, 1, "2"}, ++ { "id-xnyTest", 805306380, NULL }, ++ { NULL, 1073741825, "id-ix"}, ++ { NULL, 1073741825, "29"}, ++ { NULL, 1, "1"}, ++ { NULL, 0, NULL } ++}; +diff --git a/grub-core/lib/libtasn1_wrap/tests/CVE-2018-1000654-2_asn1_tab.h b/grub-core/lib/libtasn1_wrap/tests/CVE-2018-1000654-2_asn1_tab.h +new file mode 100644 +index 00000000000..e2561e5ec6d +--- /dev/null ++++ b/grub-core/lib/libtasn1_wrap/tests/CVE-2018-1000654-2_asn1_tab.h +@@ -0,0 +1,36 @@ ++#if HAVE_CONFIG_H ++# include "config.h" ++#endif ++ ++#include ++ ++const asn1_static_node CVE_2018_1000654_2_asn1_tab[] = { ++ { "TEST_TREE", 536875024, NULL }, ++ { NULL, 1610612748, NULL }, ++ { "iso", 1073741825, "1"}, ++ { "identified-organization", 1073741825, "3"}, ++ { "dod", 1073741825, "6"}, ++ { "internet", 1073741825, "1"}, ++ { "security", 1073741825, "5"}, ++ { "mechanisms", 1073741825, "5"}, ++ { "pkix", 1073741825, "7"}, ++ { "id-mod", 1073741825, "0"}, ++ { "id-pkix1-implicit-88", 1, "2"}, ++ { "id-oneTest", 1879048204, NULL }, ++ { NULL, 1073741825, "id-two"}, ++ { NULL, 1073741825, "9"}, ++ { NULL, 1, "1"}, ++ { "id-two", 1879048204, NULL }, ++ { NULL, 1073741825, "id-three"}, ++ { NULL, 1073741825, "2"}, ++ { NULL, 1, "2"}, ++ { "id-three", 1879048204, NULL }, ++ { NULL, 1073741825, "id-four"}, ++ { NULL, 1073741825, "3"}, ++ { NULL, 1, "3"}, ++ { "id-four", 805306380, NULL }, ++ { NULL, 1073741825, "id-two"}, ++ { NULL, 1073741825, "3"}, ++ { NULL, 1, "3"}, ++ { NULL, 0, NULL } ++}; +diff --git a/grub-core/lib/libtasn1_wrap/wrap_tests.h b/grub-core/lib/libtasn1_wrap/wrap_tests.h +new file mode 100644 +index 00000000000..555e56dd202 +--- /dev/null ++++ b/grub-core/lib/libtasn1_wrap/wrap_tests.h +@@ -0,0 +1,38 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2020 IBM Corporation ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#ifndef LIBTASN1_WRAP_TESTS_H ++#define LIBTASN1_WRAP_TESTS_H ++ ++void test_CVE_2018_1000654 (void); ++ ++void test_object_id_encoding (void); ++ ++void test_object_id_decoding (void); ++ ++void test_octet_string (void); ++ ++void test_overflow (void); ++ ++void test_reproducers (void); ++ ++void test_simple (void); ++ ++void test_strings (void); ++ ++#endif +diff --git a/.gitignore b/.gitignore +index 594d0134d33..856e69bc5c1 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -264,6 +264,7 @@ widthspec.bin + /stamp-h1 + /syslinux_test + /tar_test ++/test_asn1 + /test_sha512sum + /test_unset + /tests/syslinux/ubuntu10.04_grub.cfg +diff --git a/tests/test_asn1.in b/tests/test_asn1.in +new file mode 100644 +index 00000000000..8173c5c270e +--- /dev/null ++++ b/tests/test_asn1.in +@@ -0,0 +1,12 @@ ++#! @BUILD_SHEBANG@ ++set -e ++ ++. "@builddir@/grub-core/modinfo.sh" ++ ++out=`echo test_asn1 | @builddir@/grub-shell` ++ ++if [ "$(echo "$out" | tail -n 1)" != "ASN.1 self-tests passed" ]; then ++ echo "ASN.1 test failure: $out" ++ exit 1 ++fi ++ diff --git a/0174-autogen.sh-use-find-wholename-for-long-path-matches.patch b/0174-autogen.sh-use-find-wholename-for-long-path-matches.patch deleted file mode 100644 index e2b3dee..0000000 --- a/0174-autogen.sh-use-find-wholename-for-long-path-matches.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 948006eab0c0414ebb2e197fbbf406808ac3dd10 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 29 Jul 2019 14:01:50 -0400 -Subject: [PATCH 174/220] autogen.sh: use find -wholename for long path matches - -Signed-off-by: Peter Jones ---- - autogen.sh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/autogen.sh b/autogen.sh -index ef43270..a1783d6 100755 ---- a/autogen.sh -+++ b/autogen.sh -@@ -13,7 +13,7 @@ fi - export LC_COLLATE=C - unset LC_ALL - --find . -iname '*.[ch]' ! -ipath './grub-core/lib/libgcrypt-grub/*' ! -ipath './build-aux/*' ! -ipath './grub-core/lib/libgcrypt/src/misc.c' ! -ipath './grub-core/lib/libgcrypt/src/global.c' ! -ipath './grub-core/lib/libgcrypt/src/secmem.c' ! -ipath './util/grub-gen-widthspec.c' ! -ipath './util/grub-gen-asciih.c' ! -ipath './gnulib/*' ! -iname './grub-core/lib/gnulib/*' |sort > po/POTFILES.in -+find . -iname '*.[ch]' ! -ipath './grub-core/lib/libgcrypt-grub/*' ! -ipath './build-aux/*' ! -ipath './grub-core/lib/libgcrypt/src/misc.c' ! -ipath './grub-core/lib/libgcrypt/src/global.c' ! -ipath './grub-core/lib/libgcrypt/src/secmem.c' ! -ipath './util/grub-gen-widthspec.c' ! -ipath './util/grub-gen-asciih.c' ! -ipath './gnulib/*' ! -wholename './grub-core/lib/gnulib/*' |sort > po/POTFILES.in - find util -iname '*.in' ! -name Makefile.in |sort > po/POTFILES-shell.in - - echo "Importing unicode..." --- -1.8.3.1 - diff --git a/0174-grub-install-support-embedding-x509-certificates.patch b/0174-grub-install-support-embedding-x509-certificates.patch new file mode 100644 index 0000000..bd02e6d --- /dev/null +++ b/0174-grub-install-support-embedding-x509-certificates.patch @@ -0,0 +1,252 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Alastair D'Silva +Date: Mon, 6 Jul 2020 13:33:04 +1000 +Subject: [PATCH] grub-install: support embedding x509 certificates + +To support verification of appended signatures, we need a way to +embed the necessary public keys. Existing appended signature schemes +in the Linux kernel use X.509 certificates, so allow certificates to +be embedded in the grub core image in the same way as PGP keys. + +Signed-off-by: Alastair D'Silva +Signed-off-by: Daniel Axtens +--- + grub-core/commands/pgp.c | 2 +- + util/grub-install-common.c | 22 +++++++++++++++++++++- + util/grub-mkimage.c | 15 +++++++++++++-- + util/mkimage.c | 38 ++++++++++++++++++++++++++++++++++++-- + include/grub/kernel.h | 4 +++- + include/grub/util/install.h | 7 +++++-- + 6 files changed, 79 insertions(+), 9 deletions(-) + +diff --git a/grub-core/commands/pgp.c b/grub-core/commands/pgp.c +index 355a43844ac..b81ac0ae46c 100644 +--- a/grub-core/commands/pgp.c ++++ b/grub-core/commands/pgp.c +@@ -944,7 +944,7 @@ GRUB_MOD_INIT(pgp) + grub_memset (&pseudo_file, 0, sizeof (pseudo_file)); + + /* Not an ELF module, skip. */ +- if (header->type != OBJ_TYPE_PUBKEY) ++ if (header->type != OBJ_TYPE_GPG_PUBKEY) + continue; + + pseudo_file.fs = &pseudo_fs; +diff --git a/util/grub-install-common.c b/util/grub-install-common.c +index aab2a941f85..422f82362c7 100644 +--- a/util/grub-install-common.c ++++ b/util/grub-install-common.c +@@ -460,6 +460,8 @@ static char **pubkeys; + static size_t npubkeys; + static char *sbat; + static int disable_shim_lock; ++static char **x509keys; ++static size_t nx509keys; + static grub_compression_t compression; + static size_t appsig_size; + +@@ -500,6 +502,11 @@ grub_install_parse (int key, char *arg) + return 1; + case GRUB_INSTALL_OPTIONS_DISABLE_SHIM_LOCK: + disable_shim_lock = 1; ++ case 'x': ++ x509keys = xrealloc (x509keys, ++ sizeof (x509keys[0]) ++ * (nx509keys + 1)); ++ x509keys[nx509keys++] = xstrdup (arg); + return 1; + + case GRUB_INSTALL_OPTIONS_VERBOSITY: +@@ -627,6 +634,9 @@ grub_install_make_image_wrap_file (const char *dir, const char *prefix, + for (pk = pubkeys; pk < pubkeys + npubkeys; pk++) + slen += 20 + grub_strlen (*pk); + ++ for (pk = x509keys; pk < x509keys + nx509keys; pk++) ++ slen += 10 + grub_strlen (*pk); ++ + for (md = modules.entries; *md; md++) + { + slen += 10 + grub_strlen (*md); +@@ -655,6 +665,14 @@ grub_install_make_image_wrap_file (const char *dir, const char *prefix, + *p++ = ' '; + } + ++ for (pk = x509keys; pk < x509keys + nx509keys; pk++) ++ { ++ p = grub_stpcpy (p, "--x509 '"); ++ p = grub_stpcpy (p, *pk); ++ *p++ = '\''; ++ *p++ = ' '; ++ } ++ + for (md = modules.entries; *md; md++) + { + *p++ = '\''; +@@ -688,7 +706,9 @@ grub_install_make_image_wrap_file (const char *dir, const char *prefix, + + grub_install_generate_image (dir, prefix, fp, outname, + modules.entries, memdisk_path, +- pubkeys, npubkeys, config_path, tgt, ++ pubkeys, npubkeys, ++ x509keys, nx509keys, ++ config_path, tgt, + note, appsig_size, compression, dtb, sbat, + disable_shim_lock); + while (dc--) +diff --git a/util/grub-mkimage.c b/util/grub-mkimage.c +index 8a53310548b..e1f1112784a 100644 +--- a/util/grub-mkimage.c ++++ b/util/grub-mkimage.c +@@ -75,7 +75,8 @@ static struct argp_option options[] = { + /* TRANSLATORS: "embed" is a verb (command description). "*/ + {"config", 'c', N_("FILE"), 0, N_("embed FILE as an early config"), 0}, + /* TRANSLATORS: "embed" is a verb (command description). "*/ +- {"pubkey", 'k', N_("FILE"), 0, N_("embed FILE as public key for signature checking"), 0}, ++ {"pubkey", 'k', N_("FILE"), 0, N_("embed FILE as public key for PGP signature checking"), 0}, ++ {"x509", 'x', N_("FILE"), 0, N_("embed FILE as an x509 certificate for appended signature checking"), 0}, + /* TRANSLATORS: NOTE is a name of segment. */ + {"note", 'n', 0, 0, N_("add NOTE segment for CHRP IEEE1275"), 0}, + {"output", 'o', N_("FILE"), 0, N_("output a generated image to FILE [default=stdout]"), 0}, +@@ -124,6 +125,8 @@ struct arguments + char *dtb; + char **pubkeys; + size_t npubkeys; ++ char **x509keys; ++ size_t nx509keys; + char *font; + char *config; + char *sbat; +@@ -206,6 +209,13 @@ argp_parser (int key, char *arg, struct argp_state *state) + arguments->pubkeys[arguments->npubkeys++] = xstrdup (arg); + break; + ++ case 'x': ++ arguments->x509keys = xrealloc (arguments->x509keys, ++ sizeof (arguments->x509keys[0]) ++ * (arguments->nx509keys + 1)); ++ arguments->x509keys[arguments->nx509keys++] = xstrdup (arg); ++ break; ++ + case 'c': + if (arguments->config) + free (arguments->config); +@@ -332,7 +342,8 @@ main (int argc, char *argv[]) + grub_install_generate_image (arguments.dir, arguments.prefix, fp, + arguments.output, arguments.modules, + arguments.memdisk, arguments.pubkeys, +- arguments.npubkeys, arguments.config, ++ arguments.npubkeys, arguments.x509keys, ++ arguments.nx509keys, arguments.config, + arguments.image_target, arguments.note, + arguments.appsig_size, arguments.comp, + arguments.dtb, arguments.sbat, +diff --git a/util/mkimage.c b/util/mkimage.c +index bab12276010..8319e8dfbde 100644 +--- a/util/mkimage.c ++++ b/util/mkimage.c +@@ -867,7 +867,8 @@ void + grub_install_generate_image (const char *dir, const char *prefix, + FILE *out, const char *outname, char *mods[], + char *memdisk_path, char **pubkey_paths, +- size_t npubkeys, char *config_path, ++ size_t npubkeys, char **x509key_paths, ++ size_t nx509keys, char *config_path, + const struct grub_install_image_target_desc *image_target, + int note, size_t appsig_size, grub_compression_t comp, + const char *dtb_path, const char *sbat_path, +@@ -913,6 +914,19 @@ grub_install_generate_image (const char *dir, const char *prefix, + } + } + ++ { ++ size_t i; ++ for (i = 0; i < nx509keys; i++) ++ { ++ size_t curs; ++ curs = ALIGN_ADDR (grub_util_get_image_size (x509key_paths[i])); ++ grub_util_info ("the size of x509 public key %u is 0x%" ++ GRUB_HOST_PRIxLONG_LONG, ++ (unsigned) i, (unsigned long long) curs); ++ total_module_size += curs + sizeof (struct grub_module_header); ++ } ++ } ++ + if (memdisk_path) + { + memdisk_size = ALIGN_UP(grub_util_get_image_size (memdisk_path), 512); +@@ -1034,7 +1048,7 @@ grub_install_generate_image (const char *dir, const char *prefix, + curs = grub_util_get_image_size (pubkey_paths[i]); + + header = (struct grub_module_header *) (kernel_img + offset); +- header->type = grub_host_to_target32 (OBJ_TYPE_PUBKEY); ++ header->type = grub_host_to_target32 (OBJ_TYPE_GPG_PUBKEY); + header->size = grub_host_to_target32 (curs + sizeof (*header)); + offset += sizeof (*header); + +@@ -1043,6 +1057,26 @@ grub_install_generate_image (const char *dir, const char *prefix, + } + } + ++ { ++ size_t i; ++ for (i = 0; i < nx509keys; i++) ++ { ++ size_t curs; ++ struct grub_module_header *header; ++ ++ curs = grub_util_get_image_size (x509key_paths[i]); ++ ++ header = (struct grub_module_header *) (kernel_img + offset); ++ header->type = grub_host_to_target32 (OBJ_TYPE_X509_PUBKEY); ++ header->size = grub_host_to_target32 (curs + sizeof (*header)); ++ offset += sizeof (*header); ++ ++ grub_util_load_image (x509key_paths[i], kernel_img + offset); ++ offset += ALIGN_ADDR (curs); ++ } ++ } ++ ++ + if (memdisk_path) + { + struct grub_module_header *header; +diff --git a/include/grub/kernel.h b/include/grub/kernel.h +index 55849777eaa..98edc0863f6 100644 +--- a/include/grub/kernel.h ++++ b/include/grub/kernel.h +@@ -30,7 +30,9 @@ enum + OBJ_TYPE_PREFIX, + OBJ_TYPE_PUBKEY, + OBJ_TYPE_DTB, +- OBJ_TYPE_DISABLE_SHIM_LOCK ++ OBJ_TYPE_DISABLE_SHIM_LOCK, ++ OBJ_TYPE_GPG_PUBKEY, ++ OBJ_TYPE_X509_PUBKEY, + }; + + /* The module header. */ +diff --git a/include/grub/util/install.h b/include/grub/util/install.h +index cf4531e02b6..51f3b13ac13 100644 +--- a/include/grub/util/install.h ++++ b/include/grub/util/install.h +@@ -67,6 +67,8 @@ + N_("SBAT metadata"), 0 }, \ + { "disable-shim-lock", GRUB_INSTALL_OPTIONS_DISABLE_SHIM_LOCK, 0, 0, \ + N_("disable shim_lock verifier"), 0 }, \ ++ { "x509key", 'x', N_("FILE"), 0, \ ++ N_("embed FILE as an x509 certificate for signature checking"), 0}, \ + { "appended-signature-size", GRUB_INSTALL_OPTIONS_APPENDED_SIGNATURE_SIZE,\ + "SIZE", 0, N_("Add a note segment reserving SIZE bytes for an appended signature"), \ + 1}, \ +@@ -188,8 +190,9 @@ void + grub_install_generate_image (const char *dir, const char *prefix, + FILE *out, + const char *outname, char *mods[], +- char *memdisk_path, char **pubkey_paths, +- size_t npubkeys, ++ char *memdisk_path, ++ char **pubkey_paths, size_t npubkeys, ++ char **x509key_paths, size_t nx509keys, + char *config_path, + const struct grub_install_image_target_desc *image_target, + int note, size_t appsig_size, diff --git a/0175-Fix-build-error-with-the-fdt-module-on-risc-v.patch b/0175-Fix-build-error-with-the-fdt-module-on-risc-v.patch deleted file mode 100644 index dee1042..0000000 --- a/0175-Fix-build-error-with-the-fdt-module-on-risc-v.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 0982a417f60eeb8f117ae4d2931947c0f4515934 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Tue, 27 Aug 2019 10:34:24 +0200 -Subject: [PATCH 175/220] Fix build error with the fdt module on risc-v - -The risc-v architecture also uses Device Trees, but the symbols in the -fdt header aren't defined for this arch which lead to following error: - -BUILDSTDERR: ../../grub-core/loader/efi/fdt.c: In function 'grub_fdt_load': -BUILDSTDERR: ../../grub-core/loader/efi/fdt.c:48:39: warning: implicit declaration of function 'grub_fdt_get_totalsize' [-Wimplicit-function-declaration] -BUILDSTDERR: 48 | size = GRUB_EFI_BYTES_TO_PAGES (grub_fdt_get_totalsize (fdt)); - -Signed-off-by: Javier Martinez Canillas ---- - include/grub/fdt.h | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/include/grub/fdt.h b/include/grub/fdt.h -index 2041341..3514aa4 100644 ---- a/include/grub/fdt.h -+++ b/include/grub/fdt.h -@@ -19,7 +19,8 @@ - #ifndef GRUB_FDT_HEADER - #define GRUB_FDT_HEADER 1 - --#if !defined(GRUB_MACHINE_EMU) && (defined(__arm__) || defined(__aarch64__)) -+#if !defined(GRUB_MACHINE_EMU) && \ -+ (defined(__arm__) || defined(__aarch64__) || defined(__riscv)) - - #include - #include -@@ -146,6 +147,7 @@ int EXPORT_FUNC(grub_fdt_set_prop) (void *fdt, unsigned int nodeoffset, const ch - grub_fdt_set_prop ((fdt), (nodeoffset), "reg", reg_64, 16); \ - }) - --#endif /* defined(__arm__) || defined(__aarch64__) */ -+#endif /* !defined(GRUB_MACHINE_EMU) && \ -+ (defined(__arm__) || defined(__aarch64__) || defined(__riscv)) */ - - #endif /* ! GRUB_FDT_HEADER */ --- -1.8.3.1 - diff --git a/0175-appended-signatures-import-GNUTLS-s-ASN.1-descriptio.patch b/0175-appended-signatures-import-GNUTLS-s-ASN.1-descriptio.patch new file mode 100644 index 0000000..7b7d70c --- /dev/null +++ b/0175-appended-signatures-import-GNUTLS-s-ASN.1-descriptio.patch @@ -0,0 +1,639 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Axtens +Date: Thu, 30 Jul 2020 01:35:10 +1000 +Subject: [PATCH] appended signatures: import GNUTLS's ASN.1 description files + +In order to parse PKCS#7 messages and X.509 certificates with libtasn1, +we need some information about how they are encoded. + +We get these from GNUTLS, which has the benefit that they support the +features we need and are well tested. + +The GNUTLS license is LGPLv2.1+, which is GPLv3 compatible, allowing +us to import it without issue. + +Signed-off-by: Daniel Axtens +--- + grub-core/commands/appendedsig/gnutls_asn1_tab.c | 121 ++++++ + grub-core/commands/appendedsig/pkix_asn1_tab.c | 484 +++++++++++++++++++++++ + 2 files changed, 605 insertions(+) + create mode 100644 grub-core/commands/appendedsig/gnutls_asn1_tab.c + create mode 100644 grub-core/commands/appendedsig/pkix_asn1_tab.c + +diff --git a/grub-core/commands/appendedsig/gnutls_asn1_tab.c b/grub-core/commands/appendedsig/gnutls_asn1_tab.c +new file mode 100644 +index 00000000000..ddd1314e63b +--- /dev/null ++++ b/grub-core/commands/appendedsig/gnutls_asn1_tab.c +@@ -0,0 +1,121 @@ ++#include ++#include ++ ++const asn1_static_node gnutls_asn1_tab[] = { ++ { "GNUTLS", 536872976, NULL }, ++ { NULL, 1073741836, NULL }, ++ { "RSAPublicKey", 1610612741, NULL }, ++ { "modulus", 1073741827, NULL }, ++ { "publicExponent", 3, NULL }, ++ { "RSAPrivateKey", 1610612741, NULL }, ++ { "version", 1073741827, NULL }, ++ { "modulus", 1073741827, NULL }, ++ { "publicExponent", 1073741827, NULL }, ++ { "privateExponent", 1073741827, NULL }, ++ { "prime1", 1073741827, NULL }, ++ { "prime2", 1073741827, NULL }, ++ { "exponent1", 1073741827, NULL }, ++ { "exponent2", 1073741827, NULL }, ++ { "coefficient", 1073741827, NULL }, ++ { "otherPrimeInfos", 16386, "OtherPrimeInfos"}, ++ { "ProvableSeed", 1610612741, NULL }, ++ { "algorithm", 1073741836, NULL }, ++ { "seed", 7, NULL }, ++ { "OtherPrimeInfos", 1612709899, NULL }, ++ { "MAX", 1074266122, "1"}, ++ { NULL, 2, "OtherPrimeInfo"}, ++ { "OtherPrimeInfo", 1610612741, NULL }, ++ { "prime", 1073741827, NULL }, ++ { "exponent", 1073741827, NULL }, ++ { "coefficient", 3, NULL }, ++ { "AlgorithmIdentifier", 1610612741, NULL }, ++ { "algorithm", 1073741836, NULL }, ++ { "parameters", 541081613, NULL }, ++ { "algorithm", 1, NULL }, ++ { "DigestInfo", 1610612741, NULL }, ++ { "digestAlgorithm", 1073741826, "DigestAlgorithmIdentifier"}, ++ { "digest", 7, NULL }, ++ { "DigestAlgorithmIdentifier", 1073741826, "AlgorithmIdentifier"}, ++ { "DSAPublicKey", 1073741827, NULL }, ++ { "DSAParameters", 1610612741, NULL }, ++ { "p", 1073741827, NULL }, ++ { "q", 1073741827, NULL }, ++ { "g", 3, NULL }, ++ { "DSASignatureValue", 1610612741, NULL }, ++ { "r", 1073741827, NULL }, ++ { "s", 3, NULL }, ++ { "DSAPrivateKey", 1610612741, NULL }, ++ { "version", 1073741827, NULL }, ++ { "p", 1073741827, NULL }, ++ { "q", 1073741827, NULL }, ++ { "g", 1073741827, NULL }, ++ { "Y", 1073741827, NULL }, ++ { "priv", 3, NULL }, ++ { "DHParameter", 1610612741, NULL }, ++ { "prime", 1073741827, NULL }, ++ { "base", 1073741827, NULL }, ++ { "privateValueLength", 16387, NULL }, ++ { "ECParameters", 1610612754, NULL }, ++ { "namedCurve", 12, NULL }, ++ { "ECPrivateKey", 1610612741, NULL }, ++ { "Version", 1073741827, NULL }, ++ { "privateKey", 1073741831, NULL }, ++ { "parameters", 1610637314, "ECParameters"}, ++ { NULL, 2056, "0"}, ++ { "publicKey", 536895494, NULL }, ++ { NULL, 2056, "1"}, ++ { "PrincipalName", 1610612741, NULL }, ++ { "name-type", 1610620931, NULL }, ++ { NULL, 2056, "0"}, ++ { "name-string", 536879115, NULL }, ++ { NULL, 1073743880, "1"}, ++ { NULL, 27, NULL }, ++ { "KRB5PrincipalName", 1610612741, NULL }, ++ { "realm", 1610620955, NULL }, ++ { NULL, 2056, "0"}, ++ { "principalName", 536879106, "PrincipalName"}, ++ { NULL, 2056, "1"}, ++ { "RSAPSSParameters", 1610612741, NULL }, ++ { "hashAlgorithm", 1610637314, "AlgorithmIdentifier"}, ++ { NULL, 2056, "0"}, ++ { "maskGenAlgorithm", 1610637314, "AlgorithmIdentifier"}, ++ { NULL, 2056, "1"}, ++ { "saltLength", 1610653699, NULL }, ++ { NULL, 1073741833, "20"}, ++ { NULL, 2056, "2"}, ++ { "trailerField", 536911875, NULL }, ++ { NULL, 1073741833, "1"}, ++ { NULL, 2056, "3"}, ++ { "GOSTParameters", 1610612741, NULL }, ++ { "publicKeyParamSet", 1073741836, NULL }, ++ { "digestParamSet", 16396, NULL }, ++ { "GOSTParametersOld", 1610612741, NULL }, ++ { "publicKeyParamSet", 1073741836, NULL }, ++ { "digestParamSet", 1073741836, NULL }, ++ { "encryptionParamSet", 16396, NULL }, ++ { "GOSTPrivateKey", 1073741831, NULL }, ++ { "GOSTPrivateKeyOld", 1073741827, NULL }, ++ { "IssuerSignTool", 1610612741, NULL }, ++ { "signTool", 1073741858, NULL }, ++ { "cATool", 1073741858, NULL }, ++ { "signToolCert", 1073741858, NULL }, ++ { "cAToolCert", 34, NULL }, ++ { "Gost28147-89-EncryptedKey", 1610612741, NULL }, ++ { "encryptedKey", 1073741831, NULL }, ++ { "maskKey", 1610637319, NULL }, ++ { NULL, 4104, "0"}, ++ { "macKey", 7, NULL }, ++ { "SubjectPublicKeyInfo", 1610612741, NULL }, ++ { "algorithm", 1073741826, "AlgorithmIdentifier"}, ++ { "subjectPublicKey", 6, NULL }, ++ { "GostR3410-TransportParameters", 1610612741, NULL }, ++ { "encryptionParamSet", 1073741836, NULL }, ++ { "ephemeralPublicKey", 1610637314, "SubjectPublicKeyInfo"}, ++ { NULL, 4104, "0"}, ++ { "ukm", 7, NULL }, ++ { "GostR3410-KeyTransport", 536870917, NULL }, ++ { "sessionEncryptedKey", 1073741826, "Gost28147-89-EncryptedKey"}, ++ { "transportParameters", 536895490, "GostR3410-TransportParameters"}, ++ { NULL, 4104, "0"}, ++ { NULL, 0, NULL } ++}; +diff --git a/grub-core/commands/appendedsig/pkix_asn1_tab.c b/grub-core/commands/appendedsig/pkix_asn1_tab.c +new file mode 100644 +index 00000000000..adef69d95ce +--- /dev/null ++++ b/grub-core/commands/appendedsig/pkix_asn1_tab.c +@@ -0,0 +1,484 @@ ++#include ++#include ++ ++const asn1_static_node pkix_asn1_tab[] = { ++ { "PKIX1", 536875024, NULL }, ++ { NULL, 1073741836, NULL }, ++ { "PrivateKeyUsagePeriod", 1610612741, NULL }, ++ { "notBefore", 1610637349, NULL }, ++ { NULL, 4104, "0"}, ++ { "notAfter", 536895525, NULL }, ++ { NULL, 4104, "1"}, ++ { "AuthorityKeyIdentifier", 1610612741, NULL }, ++ { "keyIdentifier", 1610637319, NULL }, ++ { NULL, 4104, "0"}, ++ { "authorityCertIssuer", 1610637314, "GeneralNames"}, ++ { NULL, 4104, "1"}, ++ { "authorityCertSerialNumber", 536895490, "CertificateSerialNumber"}, ++ { NULL, 4104, "2"}, ++ { "SubjectKeyIdentifier", 1073741831, NULL }, ++ { "KeyUsage", 1073741830, NULL }, ++ { "DirectoryString", 1610612754, NULL }, ++ { "teletexString", 1612709918, NULL }, ++ { "MAX", 524298, "1"}, ++ { "printableString", 1612709919, NULL }, ++ { "MAX", 524298, "1"}, ++ { "universalString", 1612709920, NULL }, ++ { "MAX", 524298, "1"}, ++ { "utf8String", 1612709922, NULL }, ++ { "MAX", 524298, "1"}, ++ { "bmpString", 1612709921, NULL }, ++ { "MAX", 524298, "1"}, ++ { "ia5String", 538968093, NULL }, ++ { "MAX", 524298, "1"}, ++ { "SubjectAltName", 1073741826, "GeneralNames"}, ++ { "GeneralNames", 1612709899, NULL }, ++ { "MAX", 1074266122, "1"}, ++ { NULL, 2, "GeneralName"}, ++ { "GeneralName", 1610612754, NULL }, ++ { "otherName", 1610620930, "AnotherName"}, ++ { NULL, 4104, "0"}, ++ { "rfc822Name", 1610620957, NULL }, ++ { NULL, 4104, "1"}, ++ { "dNSName", 1610620957, NULL }, ++ { NULL, 4104, "2"}, ++ { "x400Address", 1610620941, NULL }, ++ { NULL, 4104, "3"}, ++ { "directoryName", 1610620939, NULL }, ++ { NULL, 1073743880, "4"}, ++ { NULL, 2, "RelativeDistinguishedName"}, ++ { "ediPartyName", 1610620941, NULL }, ++ { NULL, 4104, "5"}, ++ { "uniformResourceIdentifier", 1610620957, NULL }, ++ { NULL, 4104, "6"}, ++ { "iPAddress", 1610620935, NULL }, ++ { NULL, 4104, "7"}, ++ { "registeredID", 536879116, NULL }, ++ { NULL, 4104, "8"}, ++ { "AnotherName", 1610612741, NULL }, ++ { "type-id", 1073741836, NULL }, ++ { "value", 541073421, NULL }, ++ { NULL, 1073743880, "0"}, ++ { "type-id", 1, NULL }, ++ { "IssuerAltName", 1073741826, "GeneralNames"}, ++ { "BasicConstraints", 1610612741, NULL }, ++ { "cA", 1610645508, NULL }, ++ { NULL, 131081, NULL }, ++ { "pathLenConstraint", 537411587, NULL }, ++ { "0", 10, "MAX"}, ++ { "CRLDistributionPoints", 1612709899, NULL }, ++ { "MAX", 1074266122, "1"}, ++ { NULL, 2, "DistributionPoint"}, ++ { "DistributionPoint", 1610612741, NULL }, ++ { "distributionPoint", 1610637314, "DistributionPointName"}, ++ { NULL, 2056, "0"}, ++ { "reasons", 1610637314, "ReasonFlags"}, ++ { NULL, 4104, "1"}, ++ { "cRLIssuer", 536895490, "GeneralNames"}, ++ { NULL, 4104, "2"}, ++ { "DistributionPointName", 1610612754, NULL }, ++ { "fullName", 1610620930, "GeneralNames"}, ++ { NULL, 4104, "0"}, ++ { "nameRelativeToCRLIssuer", 536879106, "RelativeDistinguishedName"}, ++ { NULL, 4104, "1"}, ++ { "ReasonFlags", 1073741830, NULL }, ++ { "ExtKeyUsageSyntax", 1612709899, NULL }, ++ { "MAX", 1074266122, "1"}, ++ { NULL, 12, NULL }, ++ { "AuthorityInfoAccessSyntax", 1612709899, NULL }, ++ { "MAX", 1074266122, "1"}, ++ { NULL, 2, "AccessDescription"}, ++ { "AccessDescription", 1610612741, NULL }, ++ { "accessMethod", 1073741836, NULL }, ++ { "accessLocation", 2, "GeneralName"}, ++ { "Attribute", 1610612741, NULL }, ++ { "type", 1073741836, NULL }, ++ { "values", 536870927, NULL }, ++ { NULL, 13, NULL }, ++ { "AttributeTypeAndValue", 1610612741, NULL }, ++ { "type", 1073741836, NULL }, ++ { "value", 13, NULL }, ++ { "Name", 1610612754, NULL }, ++ { "rdnSequence", 536870923, NULL }, ++ { NULL, 2, "RelativeDistinguishedName"}, ++ { "DistinguishedName", 1610612747, NULL }, ++ { NULL, 2, "RelativeDistinguishedName"}, ++ { "RelativeDistinguishedName", 1612709903, NULL }, ++ { "MAX", 1074266122, "1"}, ++ { NULL, 2, "AttributeTypeAndValue"}, ++ { "Certificate", 1610612741, NULL }, ++ { "tbsCertificate", 1073741826, "TBSCertificate"}, ++ { "signatureAlgorithm", 1073741826, "AlgorithmIdentifier"}, ++ { "signature", 6, NULL }, ++ { "TBSCertificate", 1610612741, NULL }, ++ { "version", 1610653699, NULL }, ++ { NULL, 1073741833, "0"}, ++ { NULL, 2056, "0"}, ++ { "serialNumber", 1073741826, "CertificateSerialNumber"}, ++ { "signature", 1073741826, "AlgorithmIdentifier"}, ++ { "issuer", 1073741826, "Name"}, ++ { "validity", 1073741826, "Validity"}, ++ { "subject", 1073741826, "Name"}, ++ { "subjectPublicKeyInfo", 1073741826, "SubjectPublicKeyInfo"}, ++ { "issuerUniqueID", 1610637314, "UniqueIdentifier"}, ++ { NULL, 4104, "1"}, ++ { "subjectUniqueID", 1610637314, "UniqueIdentifier"}, ++ { NULL, 4104, "2"}, ++ { "extensions", 536895490, "Extensions"}, ++ { NULL, 2056, "3"}, ++ { "CertificateSerialNumber", 1073741827, NULL }, ++ { "Validity", 1610612741, NULL }, ++ { "notBefore", 1073741826, "Time"}, ++ { "notAfter", 2, "Time"}, ++ { "Time", 1610612754, NULL }, ++ { "utcTime", 1073741860, NULL }, ++ { "generalTime", 37, NULL }, ++ { "UniqueIdentifier", 1073741830, NULL }, ++ { "SubjectPublicKeyInfo", 1610612741, NULL }, ++ { "algorithm", 1073741826, "AlgorithmIdentifier"}, ++ { "subjectPublicKey", 6, NULL }, ++ { "Extensions", 1612709899, NULL }, ++ { "MAX", 1074266122, "1"}, ++ { NULL, 2, "Extension"}, ++ { "Extension", 1610612741, NULL }, ++ { "extnID", 1073741836, NULL }, ++ { "critical", 1610645508, NULL }, ++ { NULL, 131081, NULL }, ++ { "extnValue", 7, NULL }, ++ { "CertificateList", 1610612741, NULL }, ++ { "tbsCertList", 1073741826, "TBSCertList"}, ++ { "signatureAlgorithm", 1073741826, "AlgorithmIdentifier"}, ++ { "signature", 6, NULL }, ++ { "TBSCertList", 1610612741, NULL }, ++ { "version", 1073758211, NULL }, ++ { "signature", 1073741826, "AlgorithmIdentifier"}, ++ { "issuer", 1073741826, "Name"}, ++ { "thisUpdate", 1073741826, "Time"}, ++ { "nextUpdate", 1073758210, "Time"}, ++ { "revokedCertificates", 1610629131, NULL }, ++ { NULL, 536870917, NULL }, ++ { "userCertificate", 1073741826, "CertificateSerialNumber"}, ++ { "revocationDate", 1073741826, "Time"}, ++ { "crlEntryExtensions", 16386, "Extensions"}, ++ { "crlExtensions", 536895490, "Extensions"}, ++ { NULL, 2056, "0"}, ++ { "AlgorithmIdentifier", 1610612741, NULL }, ++ { "algorithm", 1073741836, NULL }, ++ { "parameters", 541081613, NULL }, ++ { "algorithm", 1, NULL }, ++ { "Dss-Sig-Value", 1610612741, NULL }, ++ { "r", 1073741827, NULL }, ++ { "s", 3, NULL }, ++ { "Dss-Parms", 1610612741, NULL }, ++ { "p", 1073741827, NULL }, ++ { "q", 1073741827, NULL }, ++ { "g", 3, NULL }, ++ { "pkcs-7-ContentInfo", 1610612741, NULL }, ++ { "contentType", 1073741836, NULL }, ++ { "content", 541073421, NULL }, ++ { NULL, 1073743880, "0"}, ++ { "contentType", 1, NULL }, ++ { "pkcs-7-DigestInfo", 1610612741, NULL }, ++ { "digestAlgorithm", 1073741826, "AlgorithmIdentifier"}, ++ { "digest", 7, NULL }, ++ { "pkcs-7-SignedData", 1610612741, NULL }, ++ { "version", 1073741827, NULL }, ++ { "digestAlgorithms", 1073741826, "pkcs-7-DigestAlgorithmIdentifiers"}, ++ { "encapContentInfo", 1073741826, "pkcs-7-EncapsulatedContentInfo"}, ++ { "certificates", 1610637314, "pkcs-7-CertificateSet"}, ++ { NULL, 4104, "0"}, ++ { "crls", 1610637314, "pkcs-7-CertificateRevocationLists"}, ++ { NULL, 4104, "1"}, ++ { "signerInfos", 2, "pkcs-7-SignerInfos"}, ++ { "pkcs-7-DigestAlgorithmIdentifiers", 1610612751, NULL }, ++ { NULL, 2, "AlgorithmIdentifier"}, ++ { "pkcs-7-EncapsulatedContentInfo", 1610612741, NULL }, ++ { "eContentType", 1073741836, NULL }, ++ { "eContent", 536895501, NULL }, ++ { NULL, 2056, "0"}, ++ { "pkcs-7-CertificateRevocationLists", 1610612751, NULL }, ++ { NULL, 13, NULL }, ++ { "pkcs-7-CertificateChoices", 1610612754, NULL }, ++ { "certificate", 13, NULL }, ++ { "pkcs-7-CertificateSet", 1610612751, NULL }, ++ { NULL, 2, "pkcs-7-CertificateChoices"}, ++ { "IssuerAndSerialNumber", 1610612741, NULL }, ++ { "issuer", 1073741826, "Name"}, ++ { "serialNumber", 2, "CertificateSerialNumber"}, ++ { "pkcs-7-SignerInfo", 1610612741, NULL }, ++ { "version", 1073741827, NULL }, ++ { "sid", 1073741826, "SignerIdentifier"}, ++ { "digestAlgorithm", 1073741826, "AlgorithmIdentifier"}, ++ { "signedAttrs", 1610637314, "SignedAttributes"}, ++ { NULL, 4104, "0"}, ++ { "signatureAlgorithm", 1073741826, "AlgorithmIdentifier"}, ++ { "signature", 1073741831, NULL }, ++ { "unsignedAttrs", 536895490, "SignedAttributes"}, ++ { NULL, 4104, "1"}, ++ { "SignedAttributes", 1612709903, NULL }, ++ { "MAX", 1074266122, "1"}, ++ { NULL, 2, "Attribute"}, ++ { "SignerIdentifier", 1610612754, NULL }, ++ { "issuerAndSerialNumber", 1073741826, "IssuerAndSerialNumber"}, ++ { "subjectKeyIdentifier", 536879111, NULL }, ++ { NULL, 4104, "0"}, ++ { "pkcs-7-SignerInfos", 1610612751, NULL }, ++ { NULL, 2, "pkcs-7-SignerInfo"}, ++ { "pkcs-10-CertificationRequestInfo", 1610612741, NULL }, ++ { "version", 1073741827, NULL }, ++ { "subject", 1073741826, "Name"}, ++ { "subjectPKInfo", 1073741826, "SubjectPublicKeyInfo"}, ++ { "attributes", 536879106, "Attributes"}, ++ { NULL, 4104, "0"}, ++ { "Attributes", 1610612751, NULL }, ++ { NULL, 2, "Attribute"}, ++ { "pkcs-10-CertificationRequest", 1610612741, NULL }, ++ { "certificationRequestInfo", 1073741826, "pkcs-10-CertificationRequestInfo"}, ++ { "signatureAlgorithm", 1073741826, "AlgorithmIdentifier"}, ++ { "signature", 6, NULL }, ++ { "pkcs-9-at-challengePassword", 1879048204, NULL }, ++ { "iso", 1073741825, "1"}, ++ { "member-body", 1073741825, "2"}, ++ { "us", 1073741825, "840"}, ++ { "rsadsi", 1073741825, "113549"}, ++ { "pkcs", 1073741825, "1"}, ++ { NULL, 1073741825, "9"}, ++ { NULL, 1, "7"}, ++ { "pkcs-9-challengePassword", 1610612754, NULL }, ++ { "printableString", 1073741855, NULL }, ++ { "utf8String", 34, NULL }, ++ { "pkcs-9-localKeyId", 1073741831, NULL }, ++ { "pkcs-8-PrivateKeyInfo", 1610612741, NULL }, ++ { "version", 1073741827, NULL }, ++ { "privateKeyAlgorithm", 1073741826, "AlgorithmIdentifier"}, ++ { "privateKey", 1073741831, NULL }, ++ { "attributes", 536895490, "Attributes"}, ++ { NULL, 4104, "0"}, ++ { "pkcs-8-EncryptedPrivateKeyInfo", 1610612741, NULL }, ++ { "encryptionAlgorithm", 1073741826, "AlgorithmIdentifier"}, ++ { "encryptedData", 2, "pkcs-8-EncryptedData"}, ++ { "pkcs-8-EncryptedData", 1073741831, NULL }, ++ { "pkcs-5-des-CBC-params", 1612709895, NULL }, ++ { NULL, 1048586, "8"}, ++ { "pkcs-5-des-EDE3-CBC-params", 1612709895, NULL }, ++ { NULL, 1048586, "8"}, ++ { "pkcs-5-aes128-CBC-params", 1612709895, NULL }, ++ { NULL, 1048586, "16"}, ++ { "pkcs-5-aes192-CBC-params", 1612709895, NULL }, ++ { NULL, 1048586, "16"}, ++ { "pkcs-5-aes256-CBC-params", 1612709895, NULL }, ++ { NULL, 1048586, "16"}, ++ { "Gost28147-89-Parameters", 1610612741, NULL }, ++ { "iv", 1073741831, NULL }, ++ { "encryptionParamSet", 12, NULL }, ++ { "pkcs-5-PBE-params", 1610612741, NULL }, ++ { "salt", 1073741831, NULL }, ++ { "iterationCount", 3, NULL }, ++ { "pkcs-5-PBES2-params", 1610612741, NULL }, ++ { "keyDerivationFunc", 1073741826, "AlgorithmIdentifier"}, ++ { "encryptionScheme", 2, "AlgorithmIdentifier"}, ++ { "pkcs-5-PBKDF2-params", 1610612741, NULL }, ++ { "salt", 1610612754, NULL }, ++ { "specified", 1073741831, NULL }, ++ { "otherSource", 2, "AlgorithmIdentifier"}, ++ { "iterationCount", 1611137027, NULL }, ++ { "1", 10, "MAX"}, ++ { "keyLength", 1611153411, NULL }, ++ { "1", 10, "MAX"}, ++ { "prf", 16386, "AlgorithmIdentifier"}, ++ { "pkcs-12-PFX", 1610612741, NULL }, ++ { "version", 1610874883, NULL }, ++ { "v3", 1, "3"}, ++ { "authSafe", 1073741826, "pkcs-7-ContentInfo"}, ++ { "macData", 16386, "pkcs-12-MacData"}, ++ { "pkcs-12-PbeParams", 1610612741, NULL }, ++ { "salt", 1073741831, NULL }, ++ { "iterations", 3, NULL }, ++ { "pkcs-12-MacData", 1610612741, NULL }, ++ { "mac", 1073741826, "pkcs-7-DigestInfo"}, ++ { "macSalt", 1073741831, NULL }, ++ { "iterations", 536903683, NULL }, ++ { NULL, 9, "1"}, ++ { "pkcs-12-AuthenticatedSafe", 1610612747, NULL }, ++ { NULL, 2, "pkcs-7-ContentInfo"}, ++ { "pkcs-12-SafeContents", 1610612747, NULL }, ++ { NULL, 2, "pkcs-12-SafeBag"}, ++ { "pkcs-12-SafeBag", 1610612741, NULL }, ++ { "bagId", 1073741836, NULL }, ++ { "bagValue", 1614815245, NULL }, ++ { NULL, 1073743880, "0"}, ++ { "badId", 1, NULL }, ++ { "bagAttributes", 536887311, NULL }, ++ { NULL, 2, "Attribute"}, ++ { "pkcs-12-CertBag", 1610612741, NULL }, ++ { "certId", 1073741836, NULL }, ++ { "certValue", 541073421, NULL }, ++ { NULL, 1073743880, "0"}, ++ { "certId", 1, NULL }, ++ { "pkcs-12-CRLBag", 1610612741, NULL }, ++ { "crlId", 1073741836, NULL }, ++ { "crlValue", 541073421, NULL }, ++ { NULL, 1073743880, "0"}, ++ { "crlId", 1, NULL }, ++ { "pkcs-12-SecretBag", 1610612741, NULL }, ++ { "secretTypeId", 1073741836, NULL }, ++ { "secretValue", 541073421, NULL }, ++ { NULL, 1073743880, "0"}, ++ { "secretTypeId", 1, NULL }, ++ { "pkcs-7-Data", 1073741831, NULL }, ++ { "pkcs-7-EncryptedData", 1610612741, NULL }, ++ { "version", 1073741827, NULL }, ++ { "encryptedContentInfo", 1073741826, "pkcs-7-EncryptedContentInfo"}, ++ { "unprotectedAttrs", 536895490, "pkcs-7-UnprotectedAttributes"}, ++ { NULL, 4104, "1"}, ++ { "pkcs-7-EncryptedContentInfo", 1610612741, NULL }, ++ { "contentType", 1073741836, NULL }, ++ { "contentEncryptionAlgorithm", 1073741826, "pkcs-7-ContentEncryptionAlgorithmIdentifier"}, ++ { "encryptedContent", 536895495, NULL }, ++ { NULL, 4104, "0"}, ++ { "pkcs-7-ContentEncryptionAlgorithmIdentifier", 1073741826, "AlgorithmIdentifier"}, ++ { "pkcs-7-UnprotectedAttributes", 1612709903, NULL }, ++ { "MAX", 1074266122, "1"}, ++ { NULL, 2, "Attribute"}, ++ { "ProxyCertInfo", 1610612741, NULL }, ++ { "pCPathLenConstraint", 1611153411, NULL }, ++ { "0", 10, "MAX"}, ++ { "proxyPolicy", 2, "ProxyPolicy"}, ++ { "ProxyPolicy", 1610612741, NULL }, ++ { "policyLanguage", 1073741836, NULL }, ++ { "policy", 16391, NULL }, ++ { "certificatePolicies", 1612709899, NULL }, ++ { "MAX", 1074266122, "1"}, ++ { NULL, 2, "PolicyInformation"}, ++ { "PolicyInformation", 1610612741, NULL }, ++ { "policyIdentifier", 1073741836, NULL }, ++ { "policyQualifiers", 538984459, NULL }, ++ { "MAX", 1074266122, "1"}, ++ { NULL, 2, "PolicyQualifierInfo"}, ++ { "PolicyQualifierInfo", 1610612741, NULL }, ++ { "policyQualifierId", 1073741836, NULL }, ++ { "qualifier", 541065229, NULL }, ++ { "policyQualifierId", 1, NULL }, ++ { "CPSuri", 1073741853, NULL }, ++ { "UserNotice", 1610612741, NULL }, ++ { "noticeRef", 1073758210, "NoticeReference"}, ++ { "explicitText", 16386, "DisplayText"}, ++ { "NoticeReference", 1610612741, NULL }, ++ { "organization", 1073741826, "DisplayText"}, ++ { "noticeNumbers", 536870923, NULL }, ++ { NULL, 3, NULL }, ++ { "DisplayText", 1610612754, NULL }, ++ { "ia5String", 1612709917, NULL }, ++ { "200", 524298, "1"}, ++ { "visibleString", 1612709923, NULL }, ++ { "200", 524298, "1"}, ++ { "bmpString", 1612709921, NULL }, ++ { "200", 524298, "1"}, ++ { "utf8String", 538968098, NULL }, ++ { "200", 524298, "1"}, ++ { "OCSPRequest", 1610612741, NULL }, ++ { "tbsRequest", 1073741826, "TBSRequest"}, ++ { "optionalSignature", 536895490, "Signature"}, ++ { NULL, 2056, "0"}, ++ { "TBSRequest", 1610612741, NULL }, ++ { "version", 1610653699, NULL }, ++ { NULL, 1073741833, "0"}, ++ { NULL, 2056, "0"}, ++ { "requestorName", 1610637314, "GeneralName"}, ++ { NULL, 2056, "1"}, ++ { "requestList", 1610612747, NULL }, ++ { NULL, 2, "Request"}, ++ { "requestExtensions", 536895490, "Extensions"}, ++ { NULL, 2056, "2"}, ++ { "Signature", 1610612741, NULL }, ++ { "signatureAlgorithm", 1073741826, "AlgorithmIdentifier"}, ++ { "signature", 1073741830, NULL }, ++ { "certs", 536895499, NULL }, ++ { NULL, 1073743880, "0"}, ++ { NULL, 2, "Certificate"}, ++ { "Request", 1610612741, NULL }, ++ { "reqCert", 1073741826, "CertID"}, ++ { "singleRequestExtensions", 536895490, "Extensions"}, ++ { NULL, 2056, "0"}, ++ { "CertID", 1610612741, NULL }, ++ { "hashAlgorithm", 1073741826, "AlgorithmIdentifier"}, ++ { "issuerNameHash", 1073741831, NULL }, ++ { "issuerKeyHash", 1073741831, NULL }, ++ { "serialNumber", 2, "CertificateSerialNumber"}, ++ { "OCSPResponse", 1610612741, NULL }, ++ { "responseStatus", 1073741826, "OCSPResponseStatus"}, ++ { "responseBytes", 536895490, "ResponseBytes"}, ++ { NULL, 2056, "0"}, ++ { "OCSPResponseStatus", 1610874901, NULL }, ++ { "successful", 1073741825, "0"}, ++ { "malformedRequest", 1073741825, "1"}, ++ { "internalError", 1073741825, "2"}, ++ { "tryLater", 1073741825, "3"}, ++ { "sigRequired", 1073741825, "5"}, ++ { "unauthorized", 1, "6"}, ++ { "ResponseBytes", 1610612741, NULL }, ++ { "responseType", 1073741836, NULL }, ++ { "response", 7, NULL }, ++ { "BasicOCSPResponse", 1610612741, NULL }, ++ { "tbsResponseData", 1073741826, "ResponseData"}, ++ { "signatureAlgorithm", 1073741826, "AlgorithmIdentifier"}, ++ { "signature", 1073741830, NULL }, ++ { "certs", 536895499, NULL }, ++ { NULL, 1073743880, "0"}, ++ { NULL, 2, "Certificate"}, ++ { "ResponseData", 1610612741, NULL }, ++ { "version", 1610653699, NULL }, ++ { NULL, 1073741833, "0"}, ++ { NULL, 2056, "0"}, ++ { "responderID", 1073741826, "ResponderID"}, ++ { "producedAt", 1073741861, NULL }, ++ { "responses", 1610612747, NULL }, ++ { NULL, 2, "SingleResponse"}, ++ { "responseExtensions", 536895490, "Extensions"}, ++ { NULL, 2056, "1"}, ++ { "ResponderID", 1610612754, NULL }, ++ { "byName", 1610620939, NULL }, ++ { NULL, 1073743880, "1"}, ++ { NULL, 2, "RelativeDistinguishedName"}, ++ { "byKey", 536879111, NULL }, ++ { NULL, 2056, "2"}, ++ { "SingleResponse", 1610612741, NULL }, ++ { "certID", 1073741826, "CertID"}, ++ { "certStatus", 1073741826, "CertStatus"}, ++ { "thisUpdate", 1073741861, NULL }, ++ { "nextUpdate", 1610637349, NULL }, ++ { NULL, 2056, "0"}, ++ { "singleExtensions", 536895490, "Extensions"}, ++ { NULL, 2056, "1"}, ++ { "CertStatus", 1610612754, NULL }, ++ { "good", 1610620948, NULL }, ++ { NULL, 4104, "0"}, ++ { "revoked", 1610620930, "RevokedInfo"}, ++ { NULL, 4104, "1"}, ++ { "unknown", 536879106, "UnknownInfo"}, ++ { NULL, 4104, "2"}, ++ { "RevokedInfo", 1610612741, NULL }, ++ { "revocationTime", 1073741861, NULL }, ++ { "revocationReason", 537157653, NULL }, ++ { NULL, 1073743880, "0"}, ++ { "unspecified", 1, "0"}, ++ { "UnknownInfo", 1073741844, NULL }, ++ { "NameConstraints", 1610612741, NULL }, ++ { "permittedSubtrees", 1610637314, "GeneralSubtrees"}, ++ { NULL, 4104, "0"}, ++ { "excludedSubtrees", 536895490, "GeneralSubtrees"}, ++ { NULL, 4104, "1"}, ++ { "GeneralSubtrees", 1612709899, NULL }, ++ { "MAX", 1074266122, "1"}, ++ { NULL, 2, "GeneralSubtree"}, ++ { "GeneralSubtree", 1610612741, NULL }, ++ { "base", 1073741826, "GeneralName"}, ++ { "minimum", 1610653699, NULL }, ++ { NULL, 1073741833, "0"}, ++ { NULL, 4104, "0"}, ++ { "maximum", 536895491, NULL }, ++ { NULL, 4104, "1"}, ++ { "TlsFeatures", 536870923, NULL }, ++ { NULL, 3, NULL }, ++ { NULL, 0, NULL } ++}; diff --git a/0176-RISC-V-Fix-computation-of-pc-relative-relocation-off.patch b/0176-RISC-V-Fix-computation-of-pc-relative-relocation-off.patch deleted file mode 100644 index 89f42c5..0000000 --- a/0176-RISC-V-Fix-computation-of-pc-relative-relocation-off.patch +++ /dev/null @@ -1,40 +0,0 @@ -From bad3d7b8f5b050898b20f0ca10894e6d1c5bb161 Mon Sep 17 00:00:00 2001 -From: Andreas Schwab -Date: Wed, 26 Jun 2019 16:50:03 +0200 -Subject: [PATCH 176/220] RISC-V: Fix computation of pc-relative relocation - offset - -The offset calculation was missing the relocation addend. - -Signed-off-by: Andreas Schwab -Tested-by: Chester Lin -Reviewed-by: Daniel Kiper ---- - util/grub-mkimagexx.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c -index bc087c2..d16ec63 100644 ---- a/util/grub-mkimagexx.c -+++ b/util/grub-mkimagexx.c -@@ -1232,8 +1232,7 @@ SUFFIX (relocate_addrs) (Elf_Ehdr *e, struct section_metadata *smd, - grub_uint32_t *t32 = (grub_uint32_t *) target; - grub_uint16_t *t16 = (grub_uint16_t *) target; - grub_uint8_t *t8 = (grub_uint8_t *) target; -- grub_int64_t off = (long)sym_addr - target_section_addr - offset -- - image_target->vaddr_offset; -+ grub_int64_t off; - - /* - * Instructions and instruction encoding are documented in the RISC-V -@@ -1243,6 +1242,7 @@ SUFFIX (relocate_addrs) (Elf_Ehdr *e, struct section_metadata *smd, - */ - - sym_addr += addend; -+ off = sym_addr - target_section_addr - offset - image_target->vaddr_offset; - - switch (ELF_R_TYPE (info)) - { --- -1.8.3.1 - diff --git a/0176-appended-signatures-parse-PKCS-7-signedData-and-X.50.patch b/0176-appended-signatures-parse-PKCS-7-signedData-and-X.50.patch new file mode 100644 index 0000000..04bf1df --- /dev/null +++ b/0176-appended-signatures-parse-PKCS-7-signedData-and-X.50.patch @@ -0,0 +1,1528 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Axtens +Date: Thu, 30 Jul 2020 01:33:46 +1000 +Subject: [PATCH] appended signatures: parse PKCS#7 signedData and X.509 + certificates + +This code allows us to parse: + + - PKCS#7 signedData messages. Only a single signerInfo is supported, + which is all that the Linux sign-file utility supports creating + out-of-the-box. Only RSA, SHA-256 and SHA-512 are supported. + Any certificate embedded in the PKCS#7 message will be ignored. + + - X.509 certificates: at least enough to verify the signatures on the + PKCS#7 messages. We expect that the certificates embedded in grub will + be leaf certificates, not CA certificates. The parser enforces this. + +Signed-off-by: Daniel Axtens +--- + grub-core/commands/appendedsig/asn1util.c | 102 +++ + grub-core/commands/appendedsig/pkcs7.c | 305 +++++++++ + grub-core/commands/appendedsig/x509.c | 958 +++++++++++++++++++++++++++ + grub-core/commands/appendedsig/appendedsig.h | 110 +++ + 4 files changed, 1475 insertions(+) + create mode 100644 grub-core/commands/appendedsig/asn1util.c + create mode 100644 grub-core/commands/appendedsig/pkcs7.c + create mode 100644 grub-core/commands/appendedsig/x509.c + create mode 100644 grub-core/commands/appendedsig/appendedsig.h + +diff --git a/grub-core/commands/appendedsig/asn1util.c b/grub-core/commands/appendedsig/asn1util.c +new file mode 100644 +index 00000000000..eff095a9df2 +--- /dev/null ++++ b/grub-core/commands/appendedsig/asn1util.c +@@ -0,0 +1,102 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2020 IBM Corporation. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "appendedsig.h" ++ ++asn1_node _gnutls_gnutls_asn = ASN1_TYPE_EMPTY; ++asn1_node _gnutls_pkix_asn = ASN1_TYPE_EMPTY; ++ ++extern const ASN1_ARRAY_TYPE gnutls_asn1_tab[]; ++extern const ASN1_ARRAY_TYPE pkix_asn1_tab[]; ++ ++/* ++ * Read a value from an ASN1 node, allocating memory to store it. ++ * ++ * It will work for anything where the size libtasn1 returns is right: ++ * - Integers ++ * - Octet strings ++ * - DER encoding of other structures ++ * It will _not_ work for things where libtasn1 size requires adjustment: ++ * - Strings that require an extra NULL byte at the end ++ * - Bit strings because libtasn1 returns the length in bits, not bytes. ++ * ++ * If the function returns a non-NULL value, the caller must free it. ++ */ ++void * ++grub_asn1_allocate_and_read (asn1_node node, const char *name, ++ const char *friendly_name, int *content_size) ++{ ++ int result; ++ grub_uint8_t *tmpstr = NULL; ++ int tmpstr_size = 0; ++ ++ result = asn1_read_value (node, name, NULL, &tmpstr_size); ++ if (result != ASN1_MEM_ERROR) ++ { ++ grub_snprintf (grub_errmsg, sizeof (grub_errmsg), ++ _ ++ ("Reading size of %s did not return expected status: %s"), ++ friendly_name, asn1_strerror (result)); ++ grub_errno = GRUB_ERR_BAD_FILE_TYPE; ++ return NULL; ++ } ++ ++ tmpstr = grub_malloc (tmpstr_size); ++ if (tmpstr == NULL) ++ { ++ grub_snprintf (grub_errmsg, sizeof (grub_errmsg), ++ "Could not allocate memory to store %s", friendly_name); ++ grub_errno = GRUB_ERR_OUT_OF_MEMORY; ++ return NULL; ++ } ++ ++ result = asn1_read_value (node, name, tmpstr, &tmpstr_size); ++ if (result != ASN1_SUCCESS) ++ { ++ grub_free (tmpstr); ++ grub_snprintf (grub_errmsg, sizeof (grub_errmsg), ++ "Error reading %s: %s", ++ friendly_name, asn1_strerror (result)); ++ grub_errno = GRUB_ERR_BAD_FILE_TYPE; ++ return NULL; ++ } ++ ++ *content_size = tmpstr_size; ++ ++ return tmpstr; ++} ++ ++int ++asn1_init (void) ++{ ++ int res; ++ res = asn1_array2tree (gnutls_asn1_tab, &_gnutls_gnutls_asn, NULL); ++ if (res != ASN1_SUCCESS) ++ { ++ return res; ++ } ++ res = asn1_array2tree (pkix_asn1_tab, &_gnutls_pkix_asn, NULL); ++ return res; ++} +diff --git a/grub-core/commands/appendedsig/pkcs7.c b/grub-core/commands/appendedsig/pkcs7.c +new file mode 100644 +index 00000000000..dc6afe203f7 +--- /dev/null ++++ b/grub-core/commands/appendedsig/pkcs7.c +@@ -0,0 +1,305 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2020 IBM Corporation. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include "appendedsig.h" ++#include ++#include ++#include ++ ++ ++static char asn1_error[ASN1_MAX_ERROR_DESCRIPTION_SIZE]; ++ ++/* ++ * RFC 5652 s 5.1 ++ */ ++const char *signedData_oid = "1.2.840.113549.1.7.2"; ++ ++/* ++ * RFC 4055 s 2.1 ++ */ ++const char *sha256_oid = "2.16.840.1.101.3.4.2.1"; ++const char *sha512_oid = "2.16.840.1.101.3.4.2.3"; ++ ++static grub_err_t ++process_content (grub_uint8_t * content, int size, ++ struct pkcs7_signedData *msg) ++{ ++ int res; ++ asn1_node signed_part; ++ grub_err_t err = GRUB_ERR_NONE; ++ char algo_oid[MAX_OID_LEN]; ++ int algo_oid_size = sizeof (algo_oid); ++ int algo_count; ++ char version; ++ int version_size = sizeof (version); ++ grub_uint8_t *result_buf; ++ int result_size = 0; ++ int crls_size = 0; ++ gcry_error_t gcry_err; ++ ++ res = asn1_create_element (_gnutls_pkix_asn, "PKIX1.pkcs-7-SignedData", ++ &signed_part); ++ if (res != ASN1_SUCCESS) ++ { ++ return grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ "Could not create ASN.1 structure for PKCS#7 signed part."); ++ } ++ ++ res = asn1_der_decoding2 (&signed_part, content, &size, ++ ASN1_DECODE_FLAG_STRICT_DER, asn1_error); ++ if (res != ASN1_SUCCESS) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_SIGNATURE, ++ "Error reading PKCS#7 signed data: %s", asn1_error); ++ goto cleanup_signed_part; ++ } ++ ++ /* SignedData ::= SEQUENCE { ++ * version CMSVersion, ++ * digestAlgorithms DigestAlgorithmIdentifiers, ++ * encapContentInfo EncapsulatedContentInfo, ++ * certificates [0] IMPLICIT CertificateSet OPTIONAL, ++ * crls [1] IMPLICIT RevocationInfoChoices OPTIONAL, ++ * signerInfos SignerInfos } ++ */ ++ ++ /* version per the algo in 5.1, must be 1 */ ++ res = asn1_read_value (signed_part, "version", &version, &version_size); ++ if (res != ASN1_SUCCESS) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_SIGNATURE, ++ "Error reading signedData version: %s", ++ asn1_strerror (res)); ++ goto cleanup_signed_part; ++ } ++ ++ if (version != 1) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_SIGNATURE, ++ "Unexpected signature version v%d, only v1 supported", ++ version); ++ goto cleanup_signed_part; ++ } ++ ++ /* ++ * digestAlgorithms DigestAlgorithmIdentifiers ++ * ++ * DigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier ++ * DigestAlgorithmIdentifer is an X.509 AlgorithmIdentifier (10.1.1) ++ * ++ * RFC 4055 s 2.1: ++ * sha256Identifier AlgorithmIdentifier ::= { id-sha256, NULL } ++ * sha512Identifier AlgorithmIdentifier ::= { id-sha512, NULL } ++ * ++ * We only support 1 element in the set, and we do not check parameters atm. ++ */ ++ res = ++ asn1_number_of_elements (signed_part, "digestAlgorithms", &algo_count); ++ if (res != ASN1_SUCCESS) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_SIGNATURE, ++ "Error counting number of digest algorithms: %s", ++ asn1_strerror (res)); ++ goto cleanup_signed_part; ++ } ++ ++ if (algo_count != 1) ++ { ++ err = ++ grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, ++ "Only 1 digest algorithm is supported"); ++ goto cleanup_signed_part; ++ } ++ ++ res = ++ asn1_read_value (signed_part, "digestAlgorithms.?1.algorithm", algo_oid, ++ &algo_oid_size); ++ if (res != ASN1_SUCCESS) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_SIGNATURE, ++ "Error reading digest algorithm: %s", ++ asn1_strerror (res)); ++ goto cleanup_signed_part; ++ } ++ ++ if (grub_strncmp (sha512_oid, algo_oid, algo_oid_size) == 0) ++ { ++ msg->hash = grub_crypto_lookup_md_by_name ("sha512"); ++ } ++ else if (grub_strncmp (sha256_oid, algo_oid, algo_oid_size) == 0) ++ { ++ msg->hash = grub_crypto_lookup_md_by_name ("sha256"); ++ } ++ else ++ { ++ err = ++ grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, ++ "Only SHA-256 and SHA-512 hashes are supported, found OID %s", ++ algo_oid); ++ goto cleanup_signed_part; ++ } ++ ++ if (!msg->hash) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_SIGNATURE, ++ "Hash algorithm for OID %s not loaded", algo_oid); ++ goto cleanup_signed_part; ++ } ++ ++ /* ++ * We ignore the certificates, but we don't permit CRLs. ++ * A CRL entry might be revoking the certificate we're using, and we have ++ * no way of dealing with that at the moment. ++ */ ++ res = asn1_read_value (signed_part, "crls", NULL, &crls_size); ++ if (res != ASN1_ELEMENT_NOT_FOUND) ++ { ++ err = ++ grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, ++ "PKCS#7 messages with embedded CRLs are not supported"); ++ goto cleanup_signed_part; ++ } ++ ++ /* read the signature */ ++ result_buf = ++ grub_asn1_allocate_and_read (signed_part, "signerInfos.?1.signature", ++ "signature data", &result_size); ++ if (!result_buf) ++ { ++ err = grub_errno; ++ goto cleanup_signed_part; ++ } ++ ++ gcry_err = ++ gcry_mpi_scan (&(msg->sig_mpi), GCRYMPI_FMT_USG, result_buf, result_size, ++ NULL); ++ if (gcry_err != GPG_ERR_NO_ERROR) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_SIGNATURE, ++ "Error loading signature into MPI structure: %d", ++ gcry_err); ++ goto cleanup_result; ++ } ++ ++cleanup_result: ++ grub_free (result_buf); ++cleanup_signed_part: ++ asn1_delete_structure (&signed_part); ++ ++ return err; ++} ++ ++grub_err_t ++parse_pkcs7_signedData (void *sigbuf, grub_size_t data_size, ++ struct pkcs7_signedData *msg) ++{ ++ int res; ++ asn1_node content_info; ++ grub_err_t err = GRUB_ERR_NONE; ++ char content_oid[MAX_OID_LEN]; ++ grub_uint8_t *content; ++ int content_size; ++ int content_oid_size = sizeof (content_oid); ++ int size; ++ ++ if (data_size > GRUB_INT_MAX) ++ return grub_error (GRUB_ERR_OUT_OF_RANGE, ++ "Cannot parse a PKCS#7 message where data size > INT_MAX"); ++ size = (int) data_size; ++ ++ res = asn1_create_element (_gnutls_pkix_asn, ++ "PKIX1.pkcs-7-ContentInfo", &content_info); ++ if (res != ASN1_SUCCESS) ++ { ++ return grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ "Could not create ASN.1 structure for PKCS#7 data: %s", ++ asn1_strerror (res)); ++ } ++ ++ res = asn1_der_decoding2 (&content_info, sigbuf, &size, ++ ASN1_DECODE_FLAG_STRICT_DER, asn1_error); ++ if (res != ASN1_SUCCESS) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_SIGNATURE, ++ "Error decoding PKCS#7 message DER: %s", asn1_error); ++ goto cleanup; ++ } ++ ++ /* ++ * ContentInfo ::= SEQUENCE { ++ * contentType ContentType, ++ * content [0] EXPLICIT ANY DEFINED BY contentType } ++ * ++ * ContentType ::= OBJECT IDENTIFIER ++ */ ++ res = ++ asn1_read_value (content_info, "contentType", content_oid, ++ &content_oid_size); ++ if (res != ASN1_SUCCESS) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_SIGNATURE, ++ "Error reading PKCS#7 content type: %s", ++ asn1_strerror (res)); ++ goto cleanup; ++ } ++ ++ /* OID for SignedData defined in 5.1 */ ++ if (grub_strncmp (signedData_oid, content_oid, content_oid_size) != 0) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_SIGNATURE, ++ "Unexpected content type in PKCS#7 message: OID %s", ++ content_oid); ++ goto cleanup; ++ } ++ ++ content = ++ grub_asn1_allocate_and_read (content_info, "content", ++ "PKCS#7 message content", &content_size); ++ if (!content) ++ { ++ err = grub_errno; ++ goto cleanup; ++ } ++ ++ err = process_content (content, content_size, msg); ++ grub_free (content); ++ ++cleanup: ++ asn1_delete_structure (&content_info); ++ return err; ++} ++ ++/* ++ * Release all the storage associated with the PKCS#7 message. ++ * If the caller dynamically allocated the message, it must free it. ++ */ ++void ++pkcs7_signedData_release (struct pkcs7_signedData *msg) ++{ ++ gcry_mpi_release (msg->sig_mpi); ++} +diff --git a/grub-core/commands/appendedsig/x509.c b/grub-core/commands/appendedsig/x509.c +new file mode 100644 +index 00000000000..2b38b3670a2 +--- /dev/null ++++ b/grub-core/commands/appendedsig/x509.c +@@ -0,0 +1,958 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2020 IBM Corporation. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "appendedsig.h" ++ ++static char asn1_error[ASN1_MAX_ERROR_DESCRIPTION_SIZE]; ++ ++/* ++ * RFC 3279 2.3.1 RSA Keys ++ */ ++const char *rsaEncryption_oid = "1.2.840.113549.1.1.1"; ++ ++/* ++ * RFC 5280 Appendix A ++ */ ++const char *commonName_oid = "2.5.4.3"; ++ ++/* ++ * RFC 5280 4.2.1.3 Key Usage ++ */ ++const char *keyUsage_oid = "2.5.29.15"; ++ ++/* ++ * RFC 5280 4.2.1.9 Basic Constraints ++ */ ++const char *basicConstraints_oid = "2.5.29.19"; ++ ++/* ++ * RFC 3279 2.3.1 ++ * ++ * The RSA public key MUST be encoded using the ASN.1 type RSAPublicKey: ++ * ++ * RSAPublicKey ::= SEQUENCE { ++ * modulus INTEGER, -- n ++ * publicExponent INTEGER } -- e ++ * ++ * where modulus is the modulus n, and publicExponent is the public ++ * exponent e. ++ */ ++static grub_err_t ++grub_parse_rsa_pubkey (grub_uint8_t * der, int dersize, ++ struct x509_certificate *certificate) ++{ ++ int result; ++ asn1_node spk = ASN1_TYPE_EMPTY; ++ grub_uint8_t *m_data, *e_data; ++ int m_size, e_size; ++ grub_err_t err = GRUB_ERR_NONE; ++ gcry_error_t gcry_err; ++ ++ result = ++ asn1_create_element (_gnutls_gnutls_asn, "GNUTLS.RSAPublicKey", &spk); ++ if (result != ASN1_SUCCESS) ++ { ++ return grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ "Cannot create storage for public key ASN.1 data"); ++ } ++ ++ result = asn1_der_decoding2 (&spk, der, &dersize, ++ ASN1_DECODE_FLAG_STRICT_DER, asn1_error); ++ if (result != ASN1_SUCCESS) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Cannot decode certificate public key DER: %s", ++ asn1_error); ++ goto cleanup; ++ } ++ ++ m_data = ++ grub_asn1_allocate_and_read (spk, "modulus", "RSA modulus", &m_size); ++ if (!m_data) ++ { ++ err = grub_errno; ++ goto cleanup; ++ } ++ ++ e_data = ++ grub_asn1_allocate_and_read (spk, "publicExponent", "RSA public exponent", ++ &e_size); ++ if (!e_data) ++ { ++ err = grub_errno; ++ goto cleanup_m_data; ++ } ++ ++ /* ++ * convert m, e to mpi ++ * ++ * nscanned is not set for FMT_USG, it's only set for FMT_PGP, ++ * so we can't verify it ++ */ ++ gcry_err = ++ gcry_mpi_scan (&certificate->mpis[0], GCRYMPI_FMT_USG, m_data, m_size, ++ NULL); ++ if (gcry_err != GPG_ERR_NO_ERROR) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Error loading RSA modulus into MPI structure: %d", ++ gcry_err); ++ goto cleanup_e_data; ++ } ++ ++ gcry_err = ++ gcry_mpi_scan (&certificate->mpis[1], GCRYMPI_FMT_USG, e_data, e_size, ++ NULL); ++ if (gcry_err != GPG_ERR_NO_ERROR) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Error loading RSA exponent into MPI structure: %d", ++ gcry_err); ++ goto cleanup_m_mpi; ++ } ++ ++ grub_free (e_data); ++ grub_free (m_data); ++ asn1_delete_structure (&spk); ++ return GRUB_ERR_NONE; ++ ++cleanup_m_mpi: ++ gcry_mpi_release (certificate->mpis[0]); ++cleanup_e_data: ++ grub_free (e_data); ++cleanup_m_data: ++ grub_free (m_data); ++cleanup: ++ asn1_delete_structure (&spk); ++ return err; ++} ++ ++ ++/* ++ * RFC 5280: ++ * SubjectPublicKeyInfo ::= SEQUENCE { ++ * algorithm AlgorithmIdentifier, ++ * subjectPublicKey BIT STRING } ++ * ++ * AlgorithmIdentifiers come from RFC 3279, we are not strictly compilant as we ++ * only support RSA Encryption. ++ */ ++ ++static grub_err_t ++grub_x509_read_subject_public_key (asn1_node asn, ++ struct x509_certificate *results) ++{ ++ int result; ++ grub_err_t err; ++ const char *algo_name = ++ "tbsCertificate.subjectPublicKeyInfo.algorithm.algorithm"; ++ const char *params_name = ++ "tbsCertificate.subjectPublicKeyInfo.algorithm.parameters"; ++ const char *pk_name = ++ "tbsCertificate.subjectPublicKeyInfo.subjectPublicKey"; ++ char algo_oid[MAX_OID_LEN]; ++ int algo_size = sizeof (algo_oid); ++ char params_value[2]; ++ int params_size = sizeof (params_value); ++ grub_uint8_t *key_data = NULL; ++ int key_size = 0; ++ unsigned int key_type; ++ ++ /* algorithm: see notes for rsaEncryption_oid */ ++ result = asn1_read_value (asn, algo_name, algo_oid, &algo_size); ++ if (result != ASN1_SUCCESS) ++ { ++ return grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Error reading x509 public key algorithm: %s", ++ asn1_strerror (result)); ++ } ++ ++ if (grub_strncmp (algo_oid, rsaEncryption_oid, sizeof (rsaEncryption_oid)) ++ != 0) ++ { ++ return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, ++ "Unsupported x509 public key algorithm: %s", ++ algo_oid); ++ } ++ ++ /* ++ * RFC 3279 2.3.1 ++ * The rsaEncryption OID is intended to be used in the algorithm field ++ * of a value of type AlgorithmIdentifier. The parameters field MUST ++ * have ASN.1 type NULL for this algorithm identifier. ++ */ ++ result = asn1_read_value (asn, params_name, params_value, ¶ms_size); ++ if (result != ASN1_SUCCESS) ++ { ++ return grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Error reading x509 public key parameters: %s", ++ asn1_strerror (result)); ++ } ++ ++ if (params_value[0] != ASN1_TAG_NULL) ++ { ++ return grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Invalid x509 public key parameters: expected NULL"); ++ } ++ ++ /* ++ * RFC 3279 2.3.1: The DER encoded RSAPublicKey is the value of the BIT ++ * STRING subjectPublicKey. ++ */ ++ result = asn1_read_value_type (asn, pk_name, NULL, &key_size, &key_type); ++ if (result != ASN1_MEM_ERROR) ++ { ++ return grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Error reading size of x509 public key: %s", ++ asn1_strerror (result)); ++ } ++ if (key_type != ASN1_ETYPE_BIT_STRING) ++ { ++ return grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Unexpected ASN.1 type when reading x509 public key: %x", ++ key_type); ++ } ++ ++ /* length is in bits */ ++ key_size = (key_size + 7) / 8; ++ ++ key_data = grub_malloc (key_size); ++ if (!key_data) ++ { ++ return grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ "Out of memory for x509 public key"); ++ } ++ ++ result = asn1_read_value (asn, pk_name, key_data, &key_size); ++ if (result != ASN1_SUCCESS) ++ { ++ grub_free (key_data); ++ return grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Error reading public key data"); ++ } ++ key_size = (key_size + 7) / 8; ++ ++ err = grub_parse_rsa_pubkey (key_data, key_size, results); ++ grub_free (key_data); ++ ++ return err; ++} ++ ++/* Decode a string as defined in Appendix A */ ++static grub_err_t ++decode_string (char *der, int der_size, char **string, ++ grub_size_t * string_size) ++{ ++ asn1_node strasn; ++ int result; ++ char *choice; ++ int choice_size = 0; ++ int tmp_size = 0; ++ grub_err_t err = GRUB_ERR_NONE; ++ ++ result = ++ asn1_create_element (_gnutls_pkix_asn, "PKIX1.DirectoryString", &strasn); ++ if (result != ASN1_SUCCESS) ++ { ++ return grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ "Could not create ASN.1 structure for certificate: %s", ++ asn1_strerror (result)); ++ } ++ ++ result = asn1_der_decoding2 (&strasn, der, &der_size, ++ ASN1_DECODE_FLAG_STRICT_DER, asn1_error); ++ if (result != ASN1_SUCCESS) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Could not parse DER for DirectoryString: %s", ++ asn1_error); ++ goto cleanup; ++ } ++ ++ choice = ++ grub_asn1_allocate_and_read (strasn, "", "DirectoryString choice", ++ &choice_size); ++ if (!choice) ++ { ++ err = grub_errno; ++ goto cleanup; ++ } ++ ++ if (grub_strncmp ("utf8String", choice, choice_size)) ++ { ++ err = ++ grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, ++ "Only UTF-8 DirectoryStrings are supported, got %s", ++ choice); ++ goto cleanup_choice; ++ } ++ ++ result = asn1_read_value (strasn, "utf8String", NULL, &tmp_size); ++ if (result != ASN1_MEM_ERROR) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Error reading size of UTF-8 string: %s", ++ asn1_strerror (result)); ++ goto cleanup_choice; ++ } ++ ++ /* read size does not include trailing null */ ++ tmp_size++; ++ ++ *string = grub_malloc (tmp_size); ++ if (!*string) ++ { ++ err = ++ grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ "Cannot allocate memory for DirectoryString contents"); ++ goto cleanup_choice; ++ } ++ ++ result = asn1_read_value (strasn, "utf8String", *string, &tmp_size); ++ if (result != ASN1_SUCCESS) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Error reading out UTF-8 string in DirectoryString: %s", ++ asn1_strerror (result)); ++ grub_free (*string); ++ goto cleanup_choice; ++ } ++ *string_size = tmp_size + 1; ++ (*string)[tmp_size] = '\0'; ++ ++cleanup_choice: ++ grub_free (choice); ++cleanup: ++ asn1_delete_structure (&strasn); ++ return err; ++} ++ ++/* ++ * TBSCertificate ::= SEQUENCE { ++ * version [0] EXPLICIT Version DEFAULT v1, ++ * ... ++ * ++ * Version ::= INTEGER { v1(0), v2(1), v3(2) } ++ */ ++static grub_err_t ++check_version (asn1_node certificate) ++{ ++ int rc; ++ const char *name = "tbsCertificate.version"; ++ grub_uint8_t version; ++ int len = 1; ++ ++ rc = asn1_read_value (certificate, name, &version, &len); ++ ++ /* require version 3 */ ++ if (rc != ASN1_SUCCESS || len != 1) ++ return grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Error reading certificate version"); ++ ++ if (version != 0x02) ++ return grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Invalid x509 certificate version, expected v3 (0x02), got 0x%02x", ++ version); ++ ++ return GRUB_ERR_NONE; ++} ++ ++/* ++ * This is an X.501 Name, which is complex. ++ * ++ * For simplicity, we extract only the CN. ++ */ ++static grub_err_t ++read_name (asn1_node asn, const char *name_path, char **name, ++ grub_size_t * name_size) ++{ ++ int seq_components, set_components; ++ int result; ++ int i, j; ++ char *top_path, *set_path, *type_path, *val_path; ++ char type[MAX_OID_LEN]; ++ int type_len = sizeof (type); ++ int string_size = 0; ++ char *string_der; ++ grub_err_t err; ++ ++ *name = NULL; ++ ++ top_path = grub_xasprintf ("%s.rdnSequence", name_path); ++ if (!top_path) ++ return grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ "Could not allocate memory for %s name parsing path", ++ name_path); ++ ++ result = asn1_number_of_elements (asn, top_path, &seq_components); ++ if (result != ASN1_SUCCESS) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Error counting name components: %s", ++ asn1_strerror (result)); ++ goto cleanup; ++ } ++ ++ for (i = 1; i <= seq_components; i++) ++ { ++ set_path = grub_xasprintf ("%s.?%d", top_path, i); ++ if (!set_path) ++ { ++ err = ++ grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ "Could not allocate memory for %s name set parsing path", ++ name_path); ++ goto cleanup_set; ++ } ++ /* this brings us, hopefully, to a set */ ++ result = asn1_number_of_elements (asn, set_path, &set_components); ++ if (result != ASN1_SUCCESS) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Error counting name sub-components components (element %d): %s", ++ i, asn1_strerror (result)); ++ goto cleanup_set; ++ } ++ for (j = 1; j <= set_components; j++) ++ { ++ type_path = grub_xasprintf ("%s.?%d.?%d.type", top_path, i, j); ++ if (!type_path) ++ { ++ err = ++ grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ "Could not allocate memory for %s name component type path", ++ name_path); ++ goto cleanup_set; ++ } ++ type_len = sizeof (type); ++ result = asn1_read_value (asn, type_path, type, &type_len); ++ if (result != ASN1_SUCCESS) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Error reading %s name component type: %s", ++ name_path, asn1_strerror (result)); ++ goto cleanup_type; ++ } ++ ++ if (grub_strncmp (type, commonName_oid, type_len) != 0) ++ { ++ grub_free (type_path); ++ continue; ++ } ++ ++ val_path = grub_xasprintf ("%s.?%d.?%d.value", top_path, i, j); ++ if (!val_path) ++ { ++ err = ++ grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ "Could not allocate memory for %s name component value path", ++ name_path); ++ goto cleanup_set; ++ } ++ ++ string_der = ++ grub_asn1_allocate_and_read (asn, val_path, name_path, ++ &string_size); ++ if (!string_der) ++ { ++ err = grub_errno; ++ goto cleanup_val_path; ++ } ++ ++ err = decode_string (string_der, string_size, name, name_size); ++ if (err) ++ goto cleanup_string; ++ ++ grub_free (string_der); ++ grub_free (type_path); ++ grub_free (val_path); ++ break; ++ } ++ grub_free (set_path); ++ ++ if (*name) ++ break; ++ } ++ ++ return GRUB_ERR_NONE; ++ ++cleanup_string: ++ grub_free (string_der); ++cleanup_val_path: ++ grub_free (val_path); ++cleanup_type: ++ grub_free (type_path); ++cleanup_set: ++ grub_free (set_path); ++cleanup: ++ grub_free (top_path); ++ return err; ++} ++ ++/* ++ * details here ++ */ ++static grub_err_t ++verify_key_usage (grub_uint8_t * value, int value_size) ++{ ++ asn1_node usageasn; ++ int result; ++ grub_err_t err = GRUB_ERR_NONE; ++ grub_uint8_t usage = 0xff; ++ int usage_size = 1; ++ ++ result = ++ asn1_create_element (_gnutls_pkix_asn, "PKIX1.KeyUsage", &usageasn); ++ if (result != ASN1_SUCCESS) ++ { ++ return grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ "Could not create ASN.1 structure for key usage"); ++ } ++ ++ result = asn1_der_decoding2 (&usageasn, value, &value_size, ++ ASN1_DECODE_FLAG_STRICT_DER, asn1_error); ++ if (result != ASN1_SUCCESS) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Error parsing DER for Key Usage: %s", asn1_error); ++ goto cleanup; ++ } ++ ++ result = asn1_read_value (usageasn, "", &usage, &usage_size); ++ if (result != ASN1_SUCCESS) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Error reading Key Usage value: %s", ++ asn1_strerror (result)); ++ goto cleanup; ++ } ++ ++ /* Only the first bit is permitted to be set */ ++ if (usage != 0x80) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_FILE_TYPE, "Unexpected Key Usage value: %x", ++ usage); ++ goto cleanup; ++ } ++ ++cleanup: ++ asn1_delete_structure (&usageasn); ++ return err; ++} ++ ++/* ++ * BasicConstraints ::= SEQUENCE { ++ * cA BOOLEAN DEFAULT FALSE, ++ * pathLenConstraint INTEGER (0..MAX) OPTIONAL } ++ */ ++static grub_err_t ++verify_basic_constraints (grub_uint8_t * value, int value_size) ++{ ++ asn1_node basicasn; ++ int result; ++ grub_err_t err = GRUB_ERR_NONE; ++ char cA[6]; /* FALSE or TRUE */ ++ int cA_size = sizeof (cA); ++ ++ result = ++ asn1_create_element (_gnutls_pkix_asn, "PKIX1.BasicConstraints", ++ &basicasn); ++ if (result != ASN1_SUCCESS) ++ { ++ return grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ "Could not create ASN.1 structure for Basic Constraints"); ++ } ++ ++ result = asn1_der_decoding2 (&basicasn, value, &value_size, ++ ASN1_DECODE_FLAG_STRICT_DER, asn1_error); ++ if (result != ASN1_SUCCESS) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Error parsing DER for Basic Constraints: %s", ++ asn1_error); ++ goto cleanup; ++ } ++ ++ result = asn1_read_value (basicasn, "cA", cA, &cA_size); ++ if (result == ASN1_ELEMENT_NOT_FOUND) ++ { ++ /* Not present, default is False, so this is OK */ ++ err = GRUB_ERR_NONE; ++ goto cleanup; ++ } ++ else if (result != ASN1_SUCCESS) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Error reading Basic Constraints cA value: %s", ++ asn1_strerror (result)); ++ goto cleanup; ++ } ++ ++ /* The certificate must not be a CA certificate */ ++ if (grub_strncmp ("FALSE", cA, cA_size) != 0) ++ { ++ err = grub_error (GRUB_ERR_BAD_FILE_TYPE, "Unexpected CA value: %s", ++ cA); ++ goto cleanup; ++ } ++ ++cleanup: ++ asn1_delete_structure (&basicasn); ++ return err; ++} ++ ++ ++/* ++ * Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension ++ * ++ * Extension ::= SEQUENCE { ++ * extnID OBJECT IDENTIFIER, ++ * critical BOOLEAN DEFAULT FALSE, ++ * extnValue OCTET STRING ++ * -- contains the DER encoding of an ASN.1 value ++ * -- corresponding to the extension type identified ++ * -- by extnID ++ * } ++ * ++ * We require that a certificate: ++ * - contain the Digital Signature usage only ++ * - not be a CA ++ * - MUST not contain any other critical extensions (RFC 5280 s 4.2) ++ */ ++static grub_err_t ++verify_extensions (asn1_node cert) ++{ ++ int result; ++ int ext, num_extensions = 0; ++ int usage_present = 0, constraints_present = 0; ++ char *oid_path, *critical_path, *value_path; ++ char extnID[MAX_OID_LEN]; ++ int extnID_size; ++ grub_err_t err; ++ char critical[6]; /* we get either "TRUE" or "FALSE" */ ++ int critical_size; ++ grub_uint8_t *value; ++ int value_size; ++ ++ result = ++ asn1_number_of_elements (cert, "tbsCertificate.extensions", ++ &num_extensions); ++ if (result != ASN1_SUCCESS) ++ { ++ return grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Error counting number of extensions: %s", ++ asn1_strerror (result)); ++ } ++ ++ if (num_extensions < 2) ++ { ++ return grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Insufficient number of extensions for certificate, need at least 2, got %d", ++ num_extensions); ++ } ++ ++ for (ext = 1; ext <= num_extensions; ext++) ++ { ++ oid_path = grub_xasprintf ("tbsCertificate.extensions.?%d.extnID", ext); ++ ++ extnID_size = sizeof (extnID); ++ result = asn1_read_value (cert, oid_path, extnID, &extnID_size); ++ if (result != GRUB_ERR_NONE) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Error reading extension OID: %s", ++ asn1_strerror (result)); ++ goto cleanup_oid_path; ++ } ++ ++ critical_path = ++ grub_xasprintf ("tbsCertificate.extensions.?%d.critical", ext); ++ critical_size = sizeof (critical); ++ result = ++ asn1_read_value (cert, critical_path, critical, &critical_size); ++ if (result == ASN1_ELEMENT_NOT_FOUND) ++ { ++ critical[0] = '\0'; ++ } ++ else if (result != ASN1_SUCCESS) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Error reading extension criticality: %s", ++ asn1_strerror (result)); ++ goto cleanup_critical_path; ++ } ++ ++ value_path = ++ grub_xasprintf ("tbsCertificate.extensions.?%d.extnValue", ext); ++ value = ++ grub_asn1_allocate_and_read (cert, value_path, ++ "certificate extension value", ++ &value_size); ++ if (!value) ++ { ++ err = grub_errno; ++ goto cleanup_value_path; ++ } ++ ++ /* ++ * Now we must see if we recognise the OID. ++ * If we have an unrecognised critical extension we MUST bail. ++ */ ++ if (grub_strncmp (keyUsage_oid, extnID, extnID_size) == 0) ++ { ++ err = verify_key_usage (value, value_size); ++ if (err != GRUB_ERR_NONE) ++ { ++ goto cleanup_value; ++ } ++ usage_present++; ++ } ++ else if (grub_strncmp (basicConstraints_oid, extnID, extnID_size) == 0) ++ { ++ err = verify_basic_constraints (value, value_size); ++ if (err != GRUB_ERR_NONE) ++ { ++ goto cleanup_value; ++ } ++ constraints_present++; ++ } ++ else if (grub_strncmp ("TRUE", critical, critical_size) == 0) ++ { ++ /* ++ * per the RFC, we must not process a certificate with ++ * a critical extension we do not understand. ++ */ ++ err = ++ grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Unhandled critical x509 extension with OID %s", ++ extnID); ++ goto cleanup_value; ++ } ++ ++ grub_free (value); ++ grub_free (value_path); ++ grub_free (critical_path); ++ grub_free (oid_path); ++ } ++ ++ if (usage_present != 1) ++ { ++ return grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Unexpected number of Key Usage extensions - expected 1, got %d", ++ usage_present); ++ } ++ if (constraints_present != 1) ++ { ++ return grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Unexpected number of basic constraints extensions - expected 1, got %d", ++ constraints_present); ++ } ++ return GRUB_ERR_NONE; ++ ++cleanup_value: ++ grub_free (value); ++cleanup_value_path: ++ grub_free (value_path); ++cleanup_critical_path: ++ grub_free (critical_path); ++cleanup_oid_path: ++ grub_free (oid_path); ++ return err; ++} ++ ++/* ++ * Parse a certificate whose DER-encoded form is in @data, of size @data_size. ++ * Return the results in @results, which must point to an allocated x509 certificate. ++ */ ++grub_err_t ++certificate_import (void *data, grub_size_t data_size, ++ struct x509_certificate *results) ++{ ++ int result = 0; ++ asn1_node cert; ++ grub_err_t err; ++ int size; ++ int tmp_size; ++ ++ if (data_size > GRUB_INT_MAX) ++ return grub_error (GRUB_ERR_OUT_OF_RANGE, ++ "Cannot parse a certificate where data size > INT_MAX"); ++ size = (int) data_size; ++ ++ result = asn1_create_element (_gnutls_pkix_asn, "PKIX1.Certificate", &cert); ++ if (result != ASN1_SUCCESS) ++ { ++ return grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ "Could not create ASN.1 structure for certificate: %s", ++ asn1_strerror (result)); ++ } ++ ++ result = asn1_der_decoding2 (&cert, data, &size, ++ ASN1_DECODE_FLAG_STRICT_DER, asn1_error); ++ if (result != ASN1_SUCCESS) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Could not parse DER for certificate: %s", asn1_error); ++ goto cleanup; ++ } ++ ++ /* ++ * TBSCertificate ::= SEQUENCE { ++ * version [0] EXPLICIT Version DEFAULT v1 ++ */ ++ err = check_version (cert); ++ if (err != GRUB_ERR_NONE) ++ { ++ goto cleanup; ++ } ++ ++ /* ++ * serialNumber CertificateSerialNumber, ++ * ++ * CertificateSerialNumber ::= INTEGER ++ */ ++ results->serial = ++ grub_asn1_allocate_and_read (cert, "tbsCertificate.serialNumber", ++ "certificate serial number", &tmp_size); ++ if (!results->serial) ++ { ++ err = grub_errno; ++ goto cleanup; ++ } ++ /* ++ * It's safe to cast the signed int to an unsigned here, we know ++ * length is non-negative ++ */ ++ results->serial_len = tmp_size; ++ ++ /* ++ * signature AlgorithmIdentifier, ++ * ++ * We don't load the signature or issuer at the moment, ++ * as we don't attempt x509 verification. ++ */ ++ ++ /* ++ * issuer Name, ++ * ++ * The RFC only requires the serial number to be unique within ++ * issuers, so to avoid ambiguity we _technically_ ought to make ++ * this available. ++ */ ++ ++ /* ++ * validity Validity, ++ * ++ * Validity ::= SEQUENCE { ++ * notBefore Time, ++ * notAfter Time } ++ * ++ * We can't validate this reasonably, we have no true time source on several ++ * platforms. For now we do not parse them. ++ */ ++ ++ /* ++ * subject Name, ++ * ++ * This is an X501 name, we parse out just the CN. ++ */ ++ err = ++ read_name (cert, "tbsCertificate.subject", &results->subject, ++ &results->subject_len); ++ if (err != GRUB_ERR_NONE) ++ goto cleanup_serial; ++ ++ /* ++ * TBSCertificate ::= SEQUENCE { ++ * ... ++ * subjectPublicKeyInfo SubjectPublicKeyInfo, ++ * ... ++ */ ++ err = grub_x509_read_subject_public_key (cert, results); ++ if (err != GRUB_ERR_NONE) ++ goto cleanup_name; ++ ++ /* ++ * TBSCertificate ::= SEQUENCE { ++ * ... ++ * extensions [3] EXPLICIT Extensions OPTIONAL ++ * -- If present, version MUST be v3 ++ * } ++ */ ++ ++ err = verify_extensions (cert); ++ if (err != GRUB_ERR_NONE) ++ goto cleanup_name; ++ ++ ++ /* ++ * We do not read or check the signature on the certificate: ++ * as discussed we do not try to validate the certificate but trust ++ * it implictly. ++ */ ++ ++ asn1_delete_structure (&cert); ++ return GRUB_ERR_NONE; ++ ++ ++cleanup_name: ++ grub_free (results->subject); ++cleanup_serial: ++ grub_free (results->serial); ++cleanup: ++ asn1_delete_structure (&cert); ++ return err; ++} ++ ++/* ++ * Release all the storage associated with the x509 certificate. ++ * If the caller dynamically allocated the certificate, it must free it. ++ * The caller is also responsible for maintenance of the linked list. ++ */ ++void ++certificate_release (struct x509_certificate *cert) ++{ ++ grub_free (cert->subject); ++ grub_free (cert->serial); ++ gcry_mpi_release (cert->mpis[0]); ++ gcry_mpi_release (cert->mpis[1]); ++} +diff --git a/grub-core/commands/appendedsig/appendedsig.h b/grub-core/commands/appendedsig/appendedsig.h +new file mode 100644 +index 00000000000..9792ef3901e +--- /dev/null ++++ b/grub-core/commands/appendedsig/appendedsig.h +@@ -0,0 +1,110 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2020 IBM Corporation. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++ ++extern asn1_node _gnutls_gnutls_asn; ++extern asn1_node _gnutls_pkix_asn; ++ ++#define MAX_OID_LEN 32 ++ ++/* ++ * One or more x509 certificates. ++ * ++ * We do limited parsing: extracting only the serial, CN and RSA public key. ++ */ ++struct x509_certificate ++{ ++ struct x509_certificate *next; ++ ++ grub_uint8_t *serial; ++ grub_size_t serial_len; ++ ++ char *subject; ++ grub_size_t subject_len; ++ ++ /* We only support RSA public keys. This encodes [modulus, publicExponent] */ ++ gcry_mpi_t mpis[2]; ++}; ++ ++/* ++ * A PKCS#7 signedData message. ++ * ++ * We make no attempt to match intelligently, so we don't save any info about ++ * the signer. We also support only 1 signerInfo, so we only store a single ++ * MPI for the signature. ++ */ ++struct pkcs7_signedData ++{ ++ const gcry_md_spec_t *hash; ++ gcry_mpi_t sig_mpi; ++}; ++ ++ ++/* Do libtasn1 init */ ++int asn1_init (void); ++ ++/* ++ * Import a DER-encoded certificate at 'data', of size 'size'. ++ * ++ * Place the results into 'results', which must be already allocated. ++ */ ++grub_err_t ++certificate_import (void *data, grub_size_t size, ++ struct x509_certificate *results); ++ ++/* ++ * Release all the storage associated with the x509 certificate. ++ * If the caller dynamically allocated the certificate, it must free it. ++ * The caller is also responsible for maintenance of the linked list. ++ */ ++void certificate_release (struct x509_certificate *cert); ++ ++/* ++ * Parse a PKCS#7 message, which must be a signedData message. ++ * ++ * The message must be in 'sigbuf' and of size 'data_size'. The result is ++ * placed in 'msg', which must already be allocated. ++ */ ++grub_err_t ++parse_pkcs7_signedData (void *sigbuf, grub_size_t data_size, ++ struct pkcs7_signedData *msg); ++ ++/* ++ * Release all the storage associated with the PKCS#7 message. ++ * If the caller dynamically allocated the message, it must free it. ++ */ ++void pkcs7_signedData_release (struct pkcs7_signedData *msg); ++ ++/* ++ * Read a value from an ASN1 node, allocating memory to store it. ++ * ++ * It will work for anything where the size libtasn1 returns is right: ++ * - Integers ++ * - Octet strings ++ * - DER encoding of other structures ++ * It will _not_ work for things where libtasn1 size requires adjustment: ++ * - Strings that require an extra NULL byte at the end ++ * - Bit strings because libtasn1 returns the length in bits, not bytes. ++ * ++ * If the function returns a non-NULL value, the caller must free it. ++ */ ++void *grub_asn1_allocate_and_read (asn1_node node, const char *name, ++ const char *friendly_name, ++ int *content_size); diff --git a/0177-appended-signatures-support-verifying-appended-signa.patch b/0177-appended-signatures-support-verifying-appended-signa.patch new file mode 100644 index 0000000..262efc0 --- /dev/null +++ b/0177-appended-signatures-support-verifying-appended-signa.patch @@ -0,0 +1,716 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Axtens +Date: Thu, 30 Jul 2020 01:35:43 +1000 +Subject: [PATCH] appended signatures: support verifying appended signatures + +Building on the parsers and the ability to embed x509 certificates, as +well as the existing gcrypt functionality, add a module for verifying +appended signatures. + +This includes a verifier that requires that Linux kernels and grub modules +have appended signatures, and commands to manage the list of trusted +certificates for verification. + +Verification must be enabled by setting check_appended_signatures. If +GRUB is locked down when the module is loaded, verification will be +enabled and locked automatically. + +As with the PGP verifier, it is not a complete secure-boot solution: +other mechanisms, such as a password or lockdown, must be used to ensure +that a user cannot drop to the grub shell and disable verification. + +Signed-off-by: Daniel Axtens +--- + grub-core/Makefile.core.def | 12 + + grub-core/commands/appendedsig/appendedsig.c | 645 +++++++++++++++++++++++++++ + include/grub/file.h | 2 + + 3 files changed, 659 insertions(+) + create mode 100644 grub-core/commands/appendedsig/appendedsig.c + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index b4aaccf7b57..77321d218c8 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -980,6 +980,18 @@ module = { + cppflags = '-I$(srcdir)/lib/posix_wrap'; + }; + ++module = { ++ name = appendedsig; ++ common = commands/appendedsig/appendedsig.c; ++ common = commands/appendedsig/x509.c; ++ common = commands/appendedsig/pkcs7.c; ++ common = commands/appendedsig/asn1util.c; ++ common = commands/appendedsig/gnutls_asn1_tab.c; ++ common = commands/appendedsig/pkix_asn1_tab.c; ++ cflags = '$(CFLAGS_POSIX)'; ++ cppflags = '-I$(srcdir)/lib/posix_wrap'; ++}; ++ + module = { + name = hdparm; + common = commands/hdparm.c; +diff --git a/grub-core/commands/appendedsig/appendedsig.c b/grub-core/commands/appendedsig/appendedsig.c +new file mode 100644 +index 00000000000..dc294cd339e +--- /dev/null ++++ b/grub-core/commands/appendedsig/appendedsig.c +@@ -0,0 +1,645 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2020-2021 IBM Corporation. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "appendedsig.h" ++ ++GRUB_MOD_LICENSE ("GPLv3+"); ++ ++const char magic[] = "~Module signature appended~\n"; ++ ++/* ++ * This structure is extracted from scripts/sign-file.c in the linux kernel ++ * source. It was licensed as LGPLv2.1+, which is GPLv3+ compatible. ++ */ ++struct module_signature ++{ ++ grub_uint8_t algo; /* Public-key crypto algorithm [0] */ ++ grub_uint8_t hash; /* Digest algorithm [0] */ ++ grub_uint8_t id_type; /* Key identifier type [PKEY_ID_PKCS7] */ ++ grub_uint8_t signer_len; /* Length of signer's name [0] */ ++ grub_uint8_t key_id_len; /* Length of key identifier [0] */ ++ grub_uint8_t __pad[3]; ++ grub_uint32_t sig_len; /* Length of signature data */ ++} GRUB_PACKED; ++ ++ ++/* This represents an entire, parsed, appended signature */ ++struct grub_appended_signature ++{ ++ grub_size_t signature_len; /* Length of PKCS#7 data + ++ * metadata + magic */ ++ ++ struct module_signature sig_metadata; /* Module signature metadata */ ++ struct pkcs7_signedData pkcs7; /* Parsed PKCS#7 data */ ++}; ++ ++/* Trusted certificates for verifying appended signatures */ ++struct x509_certificate *grub_trusted_key; ++ ++/* ++ * Force gcry_rsa to be a module dependency. ++ * ++ * If we use grub_crypto_pk_rsa, then then the gcry_rsa module won't be built ++ * in if you add 'appendedsig' to grub-install --modules. You would need to ++ * add 'gcry_rsa' too. That's confusing and seems suboptimal, especially when ++ * we only support RSA. ++ * ++ * Dynamic loading also causes some concerns. We can't load gcry_rsa from the ++ * the filesystem after we install the verifier - we won't be able to verify ++ * it without having it already present. We also shouldn't load it before we ++ * install the verifier, because that would mean it wouldn't be verified - an ++ * attacker could insert any code they wanted into the module. ++ * ++ * So instead, reference the internal symbol from gcry_rsa. That creates a ++ * direct dependency on gcry_rsa, so it will be built in when this module ++ * is built in. Being built in (assuming the core image is itself signed!) ++ * also resolves our concerns about loading from the filesystem. ++ */ ++extern gcry_pk_spec_t _gcry_pubkey_spec_rsa; ++ ++static int check_sigs = 0; ++ ++static const char * ++grub_env_read_sec (struct grub_env_var *var __attribute__ ((unused)), ++ const char *val __attribute__ ((unused))) ++{ ++ if (check_sigs == 2) ++ return "forced"; ++ else if (check_sigs == 1) ++ return "enforce"; ++ else ++ return "no"; ++} ++ ++static char * ++grub_env_write_sec (struct grub_env_var *var __attribute__((unused)), ++ const char *val) ++{ ++ /* Do not allow the value to be changed if set to forced */ ++ if (check_sigs == 2) ++ return grub_strdup ("forced"); ++ ++ if ((*val == '2') || (*val == 'f')) ++ check_sigs = 2; ++ else if ((*val == '1') || (*val == 'e')) ++ check_sigs = 1; ++ else if ((*val == '0') || (*val == 'n')) ++ check_sigs = 0; ++ ++ return grub_strdup (grub_env_read_sec (NULL, NULL)); ++} ++ ++static grub_err_t ++read_cert_from_file (grub_file_t f, struct x509_certificate *certificate) ++{ ++ grub_err_t err; ++ grub_uint8_t *buf = NULL; ++ grub_ssize_t read_size; ++ grub_off_t total_read_size = 0; ++ grub_off_t file_size = grub_file_size (f); ++ ++ ++ if (file_size == GRUB_FILE_SIZE_UNKNOWN) ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, ++ N_("Cannot parse a certificate file of unknown size")); ++ ++ buf = grub_zalloc (file_size); ++ if (!buf) ++ return grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ N_("Could not allocate buffer for certificate file contents")); ++ ++ while (total_read_size < file_size) ++ { ++ read_size = ++ grub_file_read (f, &buf[total_read_size], ++ file_size - total_read_size); ++ if (read_size < 0) ++ { ++ err = grub_error (GRUB_ERR_READ_ERROR, ++ N_("Error reading certificate file")); ++ goto cleanup_buf; ++ } ++ total_read_size += read_size; ++ } ++ ++ err = certificate_import (buf, total_read_size, certificate); ++ if (err != GRUB_ERR_NONE) ++ goto cleanup_buf; ++ ++ return GRUB_ERR_NONE; ++ ++cleanup_buf: ++ grub_free (buf); ++ return err; ++} ++ ++static grub_err_t ++extract_appended_signature (grub_uint8_t * buf, grub_size_t bufsize, ++ struct grub_appended_signature *sig) ++{ ++ grub_err_t err; ++ grub_size_t pkcs7_size; ++ grub_size_t remaining_len; ++ grub_uint8_t *appsigdata = buf + bufsize - grub_strlen (magic); ++ ++ if (bufsize < grub_strlen (magic)) ++ return grub_error (GRUB_ERR_BAD_SIGNATURE, ++ N_("File too short for signature magic")); ++ ++ if (grub_memcmp (appsigdata, (grub_uint8_t *) magic, grub_strlen (magic))) ++ return grub_error (GRUB_ERR_BAD_SIGNATURE, ++ N_("Missing or invalid signature magic")); ++ ++ remaining_len = bufsize - grub_strlen (magic); ++ ++ if (remaining_len < sizeof (struct module_signature)) ++ return grub_error (GRUB_ERR_BAD_SIGNATURE, ++ N_("File too short for signature metadata")); ++ ++ appsigdata -= sizeof (struct module_signature); ++ ++ /* extract the metadata */ ++ grub_memcpy (&(sig->sig_metadata), appsigdata, ++ sizeof (struct module_signature)); ++ ++ remaining_len -= sizeof (struct module_signature); ++ ++ if (sig->sig_metadata.id_type != 2) ++ return grub_error (GRUB_ERR_BAD_SIGNATURE, N_("Wrong signature type")); ++ ++#ifdef GRUB_TARGET_WORDS_BIGENDIAN ++ pkcs7_size = sig->sig_metadata.sig_len; ++#else ++ pkcs7_size = __builtin_bswap32 (sig->sig_metadata.sig_len); ++#endif ++ ++ if (pkcs7_size > remaining_len) ++ return grub_error (GRUB_ERR_BAD_SIGNATURE, ++ N_("File too short for PKCS#7 message")); ++ ++ grub_dprintf ("appendedsig", "sig len %" PRIuGRUB_SIZE "\n", pkcs7_size); ++ ++ sig->signature_len = ++ grub_strlen (magic) + sizeof (struct module_signature) + pkcs7_size; ++ ++ /* rewind pointer and parse pkcs7 data */ ++ appsigdata -= pkcs7_size; ++ ++ err = parse_pkcs7_signedData (appsigdata, pkcs7_size, &sig->pkcs7); ++ if (err != GRUB_ERR_NONE) ++ return err; ++ ++ return GRUB_ERR_NONE; ++} ++ ++static grub_err_t ++grub_verify_appended_signature (grub_uint8_t * buf, grub_size_t bufsize) ++{ ++ grub_err_t err = GRUB_ERR_NONE; ++ grub_size_t datasize; ++ void *context; ++ unsigned char *hash; ++ gcry_mpi_t hashmpi; ++ gcry_err_code_t rc; ++ struct x509_certificate *pk; ++ struct grub_appended_signature sig; ++ ++ if (!grub_trusted_key) ++ return grub_error (GRUB_ERR_BAD_SIGNATURE, ++ N_("No trusted keys to verify against")); ++ ++ err = extract_appended_signature (buf, bufsize, &sig); ++ if (err != GRUB_ERR_NONE) ++ return err; ++ ++ datasize = bufsize - sig.signature_len; ++ ++ context = grub_zalloc (sig.pkcs7.hash->contextsize); ++ if (!context) ++ return grub_errno; ++ ++ sig.pkcs7.hash->init (context); ++ sig.pkcs7.hash->write (context, buf, datasize); ++ sig.pkcs7.hash->final (context); ++ hash = sig.pkcs7.hash->read (context); ++ grub_dprintf ("appendedsig", ++ "data size %" PRIxGRUB_SIZE ", hash %02x%02x%02x%02x...\n", ++ datasize, hash[0], hash[1], hash[2], hash[3]); ++ ++ err = GRUB_ERR_BAD_SIGNATURE; ++ for (pk = grub_trusted_key; pk; pk = pk->next) ++ { ++ rc = grub_crypto_rsa_pad (&hashmpi, hash, sig.pkcs7.hash, pk->mpis[0]); ++ if (rc) ++ { ++ err = grub_error (GRUB_ERR_BAD_SIGNATURE, ++ N_("Error padding hash for RSA verification: %d"), ++ rc); ++ goto cleanup; ++ } ++ ++ rc = _gcry_pubkey_spec_rsa.verify (0, hashmpi, &sig.pkcs7.sig_mpi, ++ pk->mpis, NULL, NULL); ++ gcry_mpi_release (hashmpi); ++ ++ if (rc == 0) ++ { ++ grub_dprintf ("appendedsig", "verify with key '%s' succeeded\n", ++ pk->subject); ++ err = GRUB_ERR_NONE; ++ break; ++ } ++ ++ grub_dprintf ("appendedsig", "verify with key '%s' failed with %d\n", ++ pk->subject, rc); ++ } ++ ++ /* If we didn't verify, provide a neat message */ ++ if (err != GRUB_ERR_NONE) ++ err = grub_error (GRUB_ERR_BAD_SIGNATURE, ++ N_("Failed to verify signature against a trusted key")); ++ ++cleanup: ++ grub_free (context); ++ pkcs7_signedData_release (&sig.pkcs7); ++ ++ return err; ++} ++ ++static grub_err_t ++grub_cmd_verify_signature (grub_command_t cmd __attribute__((unused)), ++ int argc, char **args) ++{ ++ grub_file_t f; ++ grub_err_t err = GRUB_ERR_NONE; ++ grub_uint8_t *data; ++ grub_ssize_t read_size; ++ grub_off_t file_size, total_read_size = 0; ++ ++ if (argc < 1) ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("one argument expected")); ++ ++ grub_dprintf ("appendedsig", "verifying %s\n", args[0]); ++ ++ f = grub_file_open (args[0], GRUB_FILE_TYPE_VERIFY_SIGNATURE); ++ if (!f) ++ { ++ err = grub_errno; ++ goto cleanup; ++ } ++ ++ file_size = grub_file_size (f); ++ if (file_size == GRUB_FILE_SIZE_UNKNOWN) ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, ++ N_("Cannot verify the signature of a file of unknown size")); ++ ++ data = grub_malloc (file_size); ++ if (!data) ++ return grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ N_("Could not allocate data buffer size " ++ PRIuGRUB_UINT64_T " for verification"), file_size); ++ ++ while (total_read_size < file_size) ++ { ++ read_size = ++ grub_file_read (f, &data[total_read_size], ++ file_size - total_read_size); ++ if (read_size < 0) ++ { ++ err = grub_error (GRUB_ERR_READ_ERROR, ++ N_("Error reading file to verify")); ++ goto cleanup_data; ++ } ++ total_read_size += read_size; ++ } ++ ++ err = grub_verify_appended_signature (data, file_size); ++ ++cleanup_data: ++ grub_free (data); ++cleanup: ++ if (f) ++ grub_file_close (f); ++ return err; ++} ++ ++static grub_err_t ++grub_cmd_distrust (grub_command_t cmd __attribute__((unused)), ++ int argc, char **args) ++{ ++ unsigned long cert_num, i; ++ struct x509_certificate *cert, *prev; ++ ++ if (argc != 1) ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("One argument expected")); ++ ++ grub_errno = GRUB_ERR_NONE; ++ cert_num = grub_strtoul (args[0], NULL, 10); ++ if (grub_errno != GRUB_ERR_NONE) ++ return grub_errno; ++ ++ if (cert_num < 1) ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, ++ N_("Certificate number too small - numbers start at 1")); ++ ++ if (cert_num == 1) ++ { ++ cert = grub_trusted_key; ++ grub_trusted_key = cert->next; ++ ++ certificate_release (cert); ++ grub_free (cert); ++ return GRUB_ERR_NONE; ++ } ++ i = 2; ++ prev = grub_trusted_key; ++ cert = grub_trusted_key->next; ++ while (cert) ++ { ++ if (i == cert_num) ++ { ++ prev->next = cert->next; ++ certificate_release (cert); ++ grub_free (cert); ++ return GRUB_ERR_NONE; ++ } ++ i++; ++ prev = cert; ++ cert = cert->next; ++ } ++ ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, ++ N_("No certificate number %d found - only %d certificates in the store"), ++ cert_num, i - 1); ++} ++ ++static grub_err_t ++grub_cmd_trust (grub_command_t cmd __attribute__((unused)), ++ int argc, char **args) ++{ ++ grub_file_t certf; ++ struct x509_certificate *cert = NULL; ++ grub_err_t err; ++ ++ if (argc != 1) ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("one argument expected")); ++ ++ certf = grub_file_open (args[0], ++ GRUB_FILE_TYPE_CERTIFICATE_TRUST ++ | GRUB_FILE_TYPE_NO_DECOMPRESS); ++ if (!certf) ++ return grub_errno; ++ ++ ++ cert = grub_zalloc (sizeof (struct x509_certificate)); ++ if (!cert) ++ return grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ N_("Could not allocate memory for certificate")); ++ ++ err = read_cert_from_file (certf, cert); ++ grub_file_close (certf); ++ if (err != GRUB_ERR_NONE) ++ { ++ grub_free (cert); ++ return err; ++ } ++ grub_dprintf ("appendedsig", "Loaded certificate with CN: %s\n", ++ cert->subject); ++ ++ cert->next = grub_trusted_key; ++ grub_trusted_key = cert; ++ ++ return GRUB_ERR_NONE; ++} ++ ++static grub_err_t ++grub_cmd_list (grub_command_t cmd __attribute__((unused)), ++ int argc __attribute__((unused)), ++ char **args __attribute__((unused))) ++{ ++ struct x509_certificate *cert; ++ int cert_num = 1; ++ grub_size_t i; ++ ++ for (cert = grub_trusted_key; cert; cert = cert->next) ++ { ++ grub_printf (N_("Certificate %d:\n"), cert_num); ++ ++ grub_printf (N_("\tSerial: ")); ++ for (i = 0; i < cert->serial_len - 1; i++) ++ { ++ grub_printf ("%02x:", cert->serial[i]); ++ } ++ grub_printf ("%02x\n", cert->serial[cert->serial_len - 1]); ++ ++ grub_printf ("\tCN: %s\n\n", cert->subject); ++ cert_num++; ++ ++ } ++ ++ return GRUB_ERR_NONE; ++} ++ ++static grub_err_t ++appendedsig_init (grub_file_t io __attribute__((unused)), ++ enum grub_file_type type, ++ void **context __attribute__((unused)), ++ enum grub_verify_flags *flags) ++{ ++ if (!check_sigs) ++ { ++ *flags = GRUB_VERIFY_FLAGS_SKIP_VERIFICATION; ++ return GRUB_ERR_NONE; ++ } ++ ++ switch (type & GRUB_FILE_TYPE_MASK) ++ { ++ case GRUB_FILE_TYPE_CERTIFICATE_TRUST: ++ /* ++ * This is a certificate to add to trusted keychain. ++ * ++ * This needs to be verified or blocked. Ideally we'd write an x509 ++ * verifier, but we lack the hubris required to take this on. Instead, ++ * require that it have an appended signature. ++ */ ++ ++ /* Fall through */ ++ ++ case GRUB_FILE_TYPE_LINUX_KERNEL: ++ case GRUB_FILE_TYPE_GRUB_MODULE: ++ /* ++ * Appended signatures are only defined for ELF binaries. ++ * Out of an abundance of caution, we only verify Linux kernels and ++ * GRUB modules at this point. ++ */ ++ *flags = GRUB_VERIFY_FLAGS_SINGLE_CHUNK; ++ return GRUB_ERR_NONE; ++ ++ case GRUB_FILE_TYPE_ACPI_TABLE: ++ case GRUB_FILE_TYPE_DEVICE_TREE_IMAGE: ++ /* ++ * It is possible to use appended signature verification without ++ * lockdown - like the PGP verifier. When combined with an embedded ++ * config file in a signed grub binary, this could still be a meaningful ++ * secure-boot chain - so long as it isn't subverted by something like a ++ * rouge ACPI table or DT image. Defer them explicitly. ++ */ ++ *flags = GRUB_VERIFY_FLAGS_DEFER_AUTH; ++ return GRUB_ERR_NONE; ++ ++ default: ++ *flags = GRUB_VERIFY_FLAGS_SKIP_VERIFICATION; ++ return GRUB_ERR_NONE; ++ } ++} ++ ++static grub_err_t ++appendedsig_write (void *ctxt __attribute__((unused)), ++ void *buf, grub_size_t size) ++{ ++ return grub_verify_appended_signature (buf, size); ++} ++ ++struct grub_file_verifier grub_appendedsig_verifier = { ++ .name = "appendedsig", ++ .init = appendedsig_init, ++ .write = appendedsig_write, ++}; ++ ++static grub_ssize_t ++pseudo_read (struct grub_file *file, char *buf, grub_size_t len) ++{ ++ grub_memcpy (buf, (grub_uint8_t *) file->data + file->offset, len); ++ return len; ++} ++ ++/* Filesystem descriptor. */ ++static struct grub_fs pseudo_fs = { ++ .name = "pseudo", ++ .fs_read = pseudo_read ++}; ++ ++static grub_command_t cmd_verify, cmd_list, cmd_distrust, cmd_trust; ++ ++GRUB_MOD_INIT (appendedsig) ++{ ++ int rc; ++ struct grub_module_header *header; ++ ++ /* If in lockdown, immediately enter forced mode */ ++ if (grub_is_lockdown () == GRUB_LOCKDOWN_ENABLED) ++ check_sigs = 2; ++ ++ grub_trusted_key = NULL; ++ ++ grub_register_variable_hook ("check_appended_signatures", ++ grub_env_read_sec, ++ grub_env_write_sec); ++ grub_env_export ("check_appended_signatures"); ++ ++ rc = asn1_init (); ++ if (rc) ++ grub_fatal ("Error initing ASN.1 data structures: %d: %s\n", rc, ++ asn1_strerror (rc)); ++ ++ FOR_MODULES (header) ++ { ++ struct grub_file pseudo_file; ++ struct x509_certificate *pk = NULL; ++ grub_err_t err; ++ ++ /* Not an ELF module, skip. */ ++ if (header->type != OBJ_TYPE_X509_PUBKEY) ++ continue; ++ ++ grub_memset (&pseudo_file, 0, sizeof (pseudo_file)); ++ pseudo_file.fs = &pseudo_fs; ++ pseudo_file.size = header->size - sizeof (struct grub_module_header); ++ pseudo_file.data = (char *) header + sizeof (struct grub_module_header); ++ ++ grub_dprintf ("appendedsig", ++ "Found an x509 key, size=%" PRIuGRUB_UINT64_T "\n", ++ pseudo_file.size); ++ ++ pk = grub_zalloc (sizeof (struct x509_certificate)); ++ if (!pk) ++ { ++ grub_fatal ("Out of memory loading initial certificates"); ++ } ++ ++ err = read_cert_from_file (&pseudo_file, pk); ++ if (err != GRUB_ERR_NONE) ++ grub_fatal ("Error loading initial key: %s", grub_errmsg); ++ ++ grub_dprintf ("appendedsig", "loaded certificate CN='%s'\n", pk->subject); ++ ++ pk->next = grub_trusted_key; ++ grub_trusted_key = pk; ++ } ++ ++ cmd_trust = ++ grub_register_command ("trust_certificate", grub_cmd_trust, ++ N_("X509_CERTIFICATE"), ++ N_("Add X509_CERTIFICATE to trusted certificates.")); ++ cmd_list = ++ grub_register_command ("list_certificates", grub_cmd_list, 0, ++ N_("Show the list of trusted x509 certificates.")); ++ cmd_verify = ++ grub_register_command ("verify_appended", grub_cmd_verify_signature, ++ N_("FILE"), ++ N_("Verify FILE against the trusted x509 certificates.")); ++ cmd_distrust = ++ grub_register_command ("distrust_certificate", grub_cmd_distrust, ++ N_("CERT_NUMBER"), ++ N_("Remove CERT_NUMBER (as listed by list_certificates) from trusted certificates.")); ++ ++ grub_verifier_register (&grub_appendedsig_verifier); ++ grub_dl_set_persistent (mod); ++} ++ ++GRUB_MOD_FINI (appendedsig) ++{ ++ /* ++ * grub_dl_set_persistent should prevent this from actually running, but ++ * it does still run under emu. ++ */ ++ ++ grub_verifier_unregister (&grub_appendedsig_verifier); ++ grub_unregister_command (cmd_verify); ++ grub_unregister_command (cmd_list); ++ grub_unregister_command (cmd_trust); ++ grub_unregister_command (cmd_distrust); ++} +diff --git a/include/grub/file.h b/include/grub/file.h +index 31567483ccf..96827a4f896 100644 +--- a/include/grub/file.h ++++ b/include/grub/file.h +@@ -80,6 +80,8 @@ enum grub_file_type + GRUB_FILE_TYPE_PUBLIC_KEY, + /* File holding public key to add to trused keys. */ + GRUB_FILE_TYPE_PUBLIC_KEY_TRUST, ++ /* File holding x509 certificiate to add to trusted keys. */ ++ GRUB_FILE_TYPE_CERTIFICATE_TRUST, + /* File of which we intend to print a blocklist to the user. */ + GRUB_FILE_TYPE_PRINT_BLOCKLIST, + /* File we intend to use for test loading or testing speed. */ diff --git a/0177-blscfg-Add-support-for-the-devicetree-field.patch b/0177-blscfg-Add-support-for-the-devicetree-field.patch deleted file mode 100644 index e0065d5..0000000 --- a/0177-blscfg-Add-support-for-the-devicetree-field.patch +++ /dev/null @@ -1,135 +0,0 @@ -From a2d218b17e33e56829b9a23f73dded07ae5839a8 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Sun, 15 Sep 2019 09:37:45 +0200 -Subject: [PATCH 177/220] blscfg: Add support for the devicetree field - -The BootLoaderSpec mentions that a devicetree field can be used to pass a -Device Tree (DT) to the kernel, for the platforms that use it to describe -information about the hardware. - -Allow the blscfg module to parse this field and call the grub2 devicetree -command in that case. If there is a devicetree grub2 environment variable -defined, this will be used if the field is not defined in the BLS snippet. - -Resolves: rhbz#1751307 - -Signed-off-by: Javier Martinez Canillas ---- - grub-core/commands/blscfg.c | 60 ++++++++++++++++++++++++++++++++++++++++++--- - 1 file changed, 57 insertions(+), 3 deletions(-) - -diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 54458b1..1ec8987 100644 ---- a/grub-core/commands/blscfg.c -+++ b/grub-core/commands/blscfg.c -@@ -698,6 +698,8 @@ static void create_entry (struct bls_entry *entry) - const char *early_initrd = NULL; - char **early_initrds = NULL; - char *initrd_prefix = NULL; -+ char *devicetree = NULL; -+ char *dt = NULL; - char *id = entry->filename; - char *dotconf = id; - char *hotkey = NULL; -@@ -709,6 +711,7 @@ static void create_entry (struct bls_entry *entry) - - char *src = NULL; - int i, index; -+ bool add_dt_prefix = false; - - grub_dprintf("blscfg", "%s got here\n", __func__); - clinux = bls_get_val (entry, "linux", NULL); -@@ -736,6 +739,14 @@ static void create_entry (struct bls_entry *entry) - - initrds = bls_make_list (entry, "initrd", NULL); - -+ devicetree = expand_val (bls_get_val (entry, "devicetree", NULL)); -+ -+ if (!devicetree) -+ { -+ devicetree = expand_val (grub_env_get("devicetree")); -+ add_dt_prefix = true; -+ } -+ - hotkey = bls_get_val (entry, "grub_hotkey", NULL); - users = expand_val (bls_get_val (entry, "grub_users", NULL)); - classes = bls_make_list (entry, "grub_class", NULL); -@@ -801,7 +812,6 @@ static void create_entry (struct bls_entry *entry) - goto finish; - } - -- - tmp = grub_stpcpy(initrd, "initrd"); - for (i = 0; early_initrds != NULL && early_initrds[i] != NULL; i++) - { -@@ -821,21 +831,65 @@ static void create_entry (struct bls_entry *entry) - tmp = grub_stpcpy (tmp, "\n"); - } - -+ if (devicetree) -+ { -+ char *prefix = NULL; -+ int dt_size; -+ -+ if (add_dt_prefix) -+ { -+ prefix = grub_strrchr (clinux, '/'); -+ prefix = grub_strndup(clinux, prefix - clinux + 1); -+ if (!prefix) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); -+ goto finish; -+ } -+ } -+ -+ dt_size = sizeof("devicetree " GRUB_BOOT_DEVICE) + grub_strlen(devicetree) + 1; -+ -+ if (add_dt_prefix) -+ { -+ dt_size += grub_strlen(prefix); -+ } -+ -+ dt = grub_malloc (dt_size); -+ if (!dt) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); -+ goto finish; -+ } -+ char *tmp = dt; -+ tmp = grub_stpcpy (dt, "devicetree"); -+ tmp = grub_stpcpy (tmp, " " GRUB_BOOT_DEVICE); -+ if (add_dt_prefix) -+ tmp = grub_stpcpy (tmp, prefix); -+ tmp = grub_stpcpy (tmp, devicetree); -+ tmp = grub_stpcpy (tmp, "\n"); -+ -+ grub_free(prefix); -+ } -+ -+ grub_dprintf ("blscfg2", "devicetree %s for id:\"%s\"\n", dt, id); -+ - src = grub_xasprintf ("load_video\n" - "set gfxpayload=keep\n" - "insmod gzio\n" - "linux %s%s%s%s\n" -- "%s", -+ "%s%s", - GRUB_BOOT_DEVICE, clinux, options ? " " : "", options ? options : "", -- initrd ? initrd : ""); -+ initrd ? initrd : "", dt ? dt : ""); - - grub_normal_add_menu_entry (argc, argv, classes, id, users, hotkey, NULL, src, 0, &index, entry); - grub_dprintf ("blscfg", "Added entry %d id:\"%s\"\n", index, id); - - finish: -+ grub_free (dt); - grub_free (initrd); - grub_free (initrd_prefix); - grub_free (early_initrds); -+ grub_free (devicetree); - grub_free (initrds); - grub_free (options); - grub_free (classes); --- -1.8.3.1 - diff --git a/0178-Set-a-devicetree-var-in-a-BLS-config-if-GRUB_DEFAULT.patch b/0178-Set-a-devicetree-var-in-a-BLS-config-if-GRUB_DEFAULT.patch deleted file mode 100644 index 21f7bf1..0000000 --- a/0178-Set-a-devicetree-var-in-a-BLS-config-if-GRUB_DEFAULT.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 6af4cfe6059cdce1ff72db3c72e77097e1285cc0 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Sun, 15 Sep 2019 10:05:29 +0200 -Subject: [PATCH 178/220] Set a devicetree var in a BLS config if - GRUB_DEFAULT_DTB is present - -The BootLoaderSpec mentions that a devicetree field can be used to pass a -Device Tree (DT) to the kernel, for the platforms that use it to describe -information about the hardware. - -The blscfg module supports parsing the field from the BLS snippets but it -allows to set a DT for all the entries if a devicetree env var is defined. - -Make the grub2-mkconfig tool to set this variable if GRUB_DEFAULT_DTB was -defined in the /etc/default/grub file. - -Resolves: rhbz#1751307 - -Signed-off-by: Javier Martinez Canillas ---- - util/grub.d/10_linux.in | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 301594a..1520b7e 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -138,6 +138,10 @@ EOF - if [ -n "${GRUB_EARLY_INITRD_LINUX_CUSTOM}" ]; then - ${grub_editenv} - set early_initrd="${GRUB_EARLY_INITRD_LINUX_CUSTOM}" - fi -+ -+ if [ -n "${GRUB_DEFAULT_DTB}" ]; then -+ ${grub_editenv} - set devicetree="${GRUB_DEFAULT_DTB}" -+ fi - fi - - exit 0 --- -1.8.3.1 - diff --git a/0178-appended-signatures-verification-tests.patch b/0178-appended-signatures-verification-tests.patch new file mode 100644 index 0000000..9f6c3c6 --- /dev/null +++ b/0178-appended-signatures-verification-tests.patch @@ -0,0 +1,897 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Axtens +Date: Thu, 30 Jul 2020 01:31:02 +1000 +Subject: [PATCH] appended signatures: verification tests + +These tests are run through all_functional_test and test a range +of commands and behaviours. + +Signed-off-by: Daniel Axtens +--- + grub-core/Makefile.core.def | 6 + + grub-core/tests/appended_signature_test.c | 281 +++++++++++++++ + grub-core/tests/lib/functional_test.c | 1 + + grub-core/tests/appended_signatures.h | 557 ++++++++++++++++++++++++++++++ + 4 files changed, 845 insertions(+) + create mode 100644 grub-core/tests/appended_signature_test.c + create mode 100644 grub-core/tests/appended_signatures.h + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 77321d218c8..6bddc841b85 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -2161,6 +2161,12 @@ module = { + common = tests/setjmp_test.c; + }; + ++module = { ++ name = appended_signature_test; ++ common = tests/appended_signature_test.c; ++ common = tests/appended_signatures.h; ++}; ++ + module = { + name = signature_test; + common = tests/signature_test.c; +diff --git a/grub-core/tests/appended_signature_test.c b/grub-core/tests/appended_signature_test.c +new file mode 100644 +index 00000000000..88a485200d8 +--- /dev/null ++++ b/grub-core/tests/appended_signature_test.c +@@ -0,0 +1,281 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2020 IBM Corporation. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "appended_signatures.h" ++ ++GRUB_MOD_LICENSE ("GPLv3+"); ++ ++#define DEFINE_TEST_CASE(case_name) \ ++static char * \ ++get_ ## case_name (grub_size_t *sz) \ ++{ \ ++ char *ret; \ ++ *sz = case_name ## _len; \ ++ ret = grub_malloc (*sz); \ ++ if (ret) \ ++ grub_memcpy (ret, case_name, *sz); \ ++ return ret; \ ++} \ ++\ ++static struct grub_procfs_entry case_name ## _entry = \ ++{ \ ++ .name = #case_name, \ ++ .get_contents = get_ ## case_name \ ++} ++ ++#define DO_TEST(case_name, is_valid) \ ++{ \ ++ grub_procfs_register (#case_name, &case_name ## _entry); \ ++ do_verify ("(proc)/" #case_name, is_valid); \ ++ grub_procfs_unregister (&case_name ## _entry); \ ++} ++ ++ ++DEFINE_TEST_CASE (hi_signed); ++DEFINE_TEST_CASE (hi_signed_sha256); ++DEFINE_TEST_CASE (hj_signed); ++DEFINE_TEST_CASE (short_msg); ++DEFINE_TEST_CASE (unsigned_msg); ++DEFINE_TEST_CASE (hi_signed_2nd); ++ ++static char * ++get_certificate_der (grub_size_t * sz) ++{ ++ char *ret; ++ *sz = certificate_der_len; ++ ret = grub_malloc (*sz); ++ if (ret) ++ grub_memcpy (ret, certificate_der, *sz); ++ return ret; ++} ++ ++static struct grub_procfs_entry certificate_der_entry = { ++ .name = "certificate.der", ++ .get_contents = get_certificate_der ++}; ++ ++static char * ++get_certificate2_der (grub_size_t * sz) ++{ ++ char *ret; ++ *sz = certificate2_der_len; ++ ret = grub_malloc (*sz); ++ if (ret) ++ grub_memcpy (ret, certificate2_der, *sz); ++ return ret; ++} ++ ++static struct grub_procfs_entry certificate2_der_entry = { ++ .name = "certificate2.der", ++ .get_contents = get_certificate2_der ++}; ++ ++static char * ++get_certificate_printable_der (grub_size_t * sz) ++{ ++ char *ret; ++ *sz = certificate_printable_der_len; ++ ret = grub_malloc (*sz); ++ if (ret) ++ grub_memcpy (ret, certificate_printable_der, *sz); ++ return ret; ++} ++ ++static struct grub_procfs_entry certificate_printable_der_entry = { ++ .name = "certificate_printable.der", ++ .get_contents = get_certificate_printable_der ++}; ++ ++ ++static void ++do_verify (const char *f, int is_valid) ++{ ++ grub_command_t cmd; ++ char *args[] = { (char *) f, NULL }; ++ grub_err_t err; ++ ++ cmd = grub_command_find ("verify_appended"); ++ if (!cmd) ++ { ++ grub_test_assert (0, "can't find command `%s'", "verify_appended"); ++ return; ++ } ++ err = (cmd->func) (cmd, 1, args); ++ if (is_valid) ++ { ++ grub_test_assert (err == GRUB_ERR_NONE, ++ "verification of %s failed: %d: %s", f, grub_errno, ++ grub_errmsg); ++ } ++ else ++ { ++ grub_test_assert (err == GRUB_ERR_BAD_SIGNATURE, ++ "verification of %s unexpectedly succeeded", f); ++ } ++ grub_errno = GRUB_ERR_NONE; ++ ++} ++ ++static void ++appended_signature_test (void) ++{ ++ grub_command_t cmd_trust, cmd_distrust; ++ char *trust_args[] = { (char *) "(proc)/certificate.der", NULL }; ++ char *trust_args2[] = { (char *) "(proc)/certificate2.der", NULL }; ++ char *trust_args_printable[] = { (char *) "(proc)/certificate_printable.der", ++ NULL }; ++ char *distrust_args[] = { (char *) "1", NULL }; ++ char *distrust2_args[] = { (char *) "2", NULL }; ++ grub_err_t err; ++ ++ grub_procfs_register ("certificate.der", &certificate_der_entry); ++ grub_procfs_register ("certificate2.der", &certificate2_der_entry); ++ grub_procfs_register ("certificate_printable.der", ++ &certificate_printable_der_entry); ++ ++ cmd_trust = grub_command_find ("trust_certificate"); ++ if (!cmd_trust) ++ { ++ grub_test_assert (0, "can't find command `%s'", "trust_certificate"); ++ return; ++ } ++ err = (cmd_trust->func) (cmd_trust, 1, trust_args); ++ ++ grub_test_assert (err == GRUB_ERR_NONE, ++ "loading certificate failed: %d: %s", grub_errno, ++ grub_errmsg); ++ ++ /* If we have no certificate the remainder of the tests are meaningless */ ++ if (err != GRUB_ERR_NONE) ++ return; ++ ++ /* ++ * Reload the command: this works around some 'interesting' behaviour in the ++ * dynamic command dispatcher. The first time you call cmd->func you get a ++ * dispatcher that loads the module, finds the real cmd, calls it, and then ++ * releases some internal storage. This means it's not safe to call a second ++ * time and we need to reload it. ++ */ ++ cmd_trust = grub_command_find ("trust_certificate"); ++ ++ DO_TEST (hi_signed, 1); ++ DO_TEST (hi_signed_sha256, 1); ++ DO_TEST (hj_signed, 0); ++ DO_TEST (short_msg, 0); ++ DO_TEST (unsigned_msg, 0); ++ ++ /* ++ * in enforcing mode, we shouldn't be able to load a certificate that isn't ++ * signed by an existing trusted key. ++ * ++ * However, procfs files automatically skip the verification test, so we can't ++ * easily test this. ++ */ ++ ++ /* ++ * verify that testing with 2 trusted certs works ++ */ ++ DO_TEST (hi_signed_2nd, 0); ++ ++ err = (cmd_trust->func) (cmd_trust, 1, trust_args2); ++ ++ grub_test_assert (err == GRUB_ERR_NONE, ++ "loading certificate 2 failed: %d: %s", grub_errno, ++ grub_errmsg); ++ ++ if (err != GRUB_ERR_NONE) ++ return; ++ ++ DO_TEST (hi_signed_2nd, 1); ++ DO_TEST (hi_signed, 1); ++ ++ /* ++ * Check certificate removal. They're added to the _top_ of the list and ++ * removed by position in the list. Current the list looks like [#2, #1]. ++ * ++ * First test removing the second certificate in the list, which is ++ * certificate #1, giving us just [#2]. ++ */ ++ cmd_distrust = grub_command_find ("distrust_certificate"); ++ if (!cmd_distrust) ++ { ++ grub_test_assert (0, "can't find command `%s'", "distrust_certificate"); ++ return; ++ } ++ ++ err = (cmd_distrust->func) (cmd_distrust, 1, distrust2_args); ++ grub_test_assert (err == GRUB_ERR_NONE, ++ "distrusting certificate 1 failed: %d: %s", grub_errno, ++ grub_errmsg); ++ DO_TEST (hi_signed_2nd, 1); ++ DO_TEST (hi_signed, 0); ++ ++ /* ++ * Now reload certificate #1. This will make the list look like [#1, #2] ++ */ ++ err = (cmd_trust->func) (cmd_trust, 1, trust_args); ++ ++ grub_test_assert (err == GRUB_ERR_NONE, ++ "reloading certificate 1 failed: %d: %s", grub_errno, ++ grub_errmsg); ++ DO_TEST (hi_signed, 1); ++ ++ /* Remove the first certificate in the list, giving us just [#2] */ ++ err = (cmd_distrust->func) (cmd_distrust, 1, distrust_args); ++ grub_test_assert (err == GRUB_ERR_NONE, ++ "distrusting certificate 1 (first time) failed: %d: %s", ++ grub_errno, grub_errmsg); ++ DO_TEST (hi_signed_2nd, 1); ++ DO_TEST (hi_signed, 0); ++ ++ /* ++ * Remove the first certificate again, giving an empty list. ++ * ++ * verify_appended should fail if there are no certificates to verify against. ++ */ ++ err = (cmd_distrust->func) (cmd_distrust, 1, distrust_args); ++ grub_test_assert (err == GRUB_ERR_NONE, ++ "distrusting certificate 1 (second time) failed: %d: %s", ++ grub_errno, grub_errmsg); ++ DO_TEST (hi_signed_2nd, 0); ++ ++ /* ++ * Lastly, check a certificate that uses printableString rather than ++ * utf8String loads properly. ++ */ ++ err = (cmd_trust->func) (cmd_trust, 1, trust_args_printable); ++ grub_test_assert (err == GRUB_ERR_NONE, ++ "distrusting printable certificate failed: %d: %s", ++ grub_errno, grub_errmsg); ++ ++ grub_procfs_unregister (&certificate_der_entry); ++ grub_procfs_unregister (&certificate2_der_entry); ++ grub_procfs_unregister (&certificate_printable_der_entry); ++} ++ ++GRUB_FUNCTIONAL_TEST (appended_signature_test, appended_signature_test); +diff --git a/grub-core/tests/lib/functional_test.c b/grub-core/tests/lib/functional_test.c +index 96781fb39b5..403fa5c789a 100644 +--- a/grub-core/tests/lib/functional_test.c ++++ b/grub-core/tests/lib/functional_test.c +@@ -73,6 +73,7 @@ grub_functional_all_tests (grub_extcmd_context_t ctxt __attribute__ ((unused)), + grub_dl_load ("xnu_uuid_test"); + grub_dl_load ("pbkdf2_test"); + grub_dl_load ("signature_test"); ++ grub_dl_load ("appended_signature_test"); + grub_dl_load ("sleep_test"); + grub_dl_load ("bswap_test"); + grub_dl_load ("ctz_test"); +diff --git a/grub-core/tests/appended_signatures.h b/grub-core/tests/appended_signatures.h +new file mode 100644 +index 00000000000..aa3dc6278e3 +--- /dev/null ++++ b/grub-core/tests/appended_signatures.h +@@ -0,0 +1,557 @@ ++unsigned char certificate_der[] = { ++ 0x30, 0x82, 0x03, 0x88, 0x30, 0x82, 0x02, 0x70, 0xa0, 0x03, 0x02, 0x01, ++ 0x02, 0x02, 0x14, 0x25, 0x2e, 0xb8, 0xfd, 0x12, 0x62, 0x2e, 0xcd, 0x5d, ++ 0xa7, 0x53, 0xd2, 0x0b, 0xc2, 0x61, 0x7c, 0x14, 0xe0, 0x0f, 0x5c, 0x30, ++ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, ++ 0x05, 0x00, 0x30, 0x49, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, ++ 0x03, 0x0c, 0x1f, 0x47, 0x72, 0x75, 0x62, 0x20, 0x41, 0x70, 0x70, 0x65, ++ 0x6e, 0x64, 0x65, 0x64, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, ++ 0x72, 0x65, 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x43, 0x41, 0x31, 0x1d, ++ 0x30, 0x1b, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, ++ 0x01, 0x16, 0x0e, 0x64, 0x6a, 0x61, 0x40, 0x61, 0x78, 0x74, 0x65, 0x6e, ++ 0x73, 0x2e, 0x6e, 0x65, 0x74, 0x30, 0x20, 0x17, 0x0d, 0x32, 0x30, 0x30, ++ 0x37, 0x30, 0x39, 0x30, 0x36, 0x32, 0x32, 0x30, 0x37, 0x5a, 0x18, 0x0f, ++ 0x32, 0x31, 0x32, 0x30, 0x30, 0x36, 0x31, 0x35, 0x30, 0x36, 0x32, 0x32, ++ 0x30, 0x37, 0x5a, 0x30, 0x52, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, ++ 0x04, 0x03, 0x0c, 0x28, 0x47, 0x72, 0x75, 0x62, 0x20, 0x41, 0x70, 0x70, ++ 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, ++ 0x75, 0x72, 0x65, 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x53, 0x69, 0x67, ++ 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x4b, 0x65, 0x79, 0x31, 0x1d, 0x30, 0x1b, ++ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, ++ 0x0e, 0x64, 0x6a, 0x61, 0x40, 0x61, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x2e, ++ 0x6e, 0x65, 0x74, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, ++ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, ++ 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, ++ 0xcd, 0xe8, 0x1c, 0x08, 0x68, 0x2e, 0xcb, 0xfe, 0x8c, 0x4b, 0x3b, 0x61, ++ 0xe7, 0x8e, 0x80, 0x58, 0x85, 0x85, 0xea, 0xc8, 0x3b, 0x42, 0xba, 0x72, ++ 0x84, 0x65, 0x20, 0xbc, 0x48, 0xa2, 0x25, 0x49, 0x6e, 0x1c, 0xb9, 0x7d, ++ 0xeb, 0xc1, 0x0c, 0xa8, 0xb7, 0xcc, 0x13, 0x78, 0xba, 0x11, 0xa4, 0x98, ++ 0xd7, 0xd0, 0x7c, 0xdd, 0xf5, 0x5a, 0xb7, 0xcd, 0x31, 0x0e, 0xcd, 0x9e, ++ 0xa7, 0x19, 0xf0, 0xbd, 0x0f, 0xa6, 0xfe, 0x8a, 0x11, 0x97, 0xed, 0x8b, ++ 0xe5, 0x16, 0xa6, 0x21, 0x13, 0x36, 0xad, 0x05, 0x49, 0xec, 0x29, 0x12, ++ 0x38, 0xa7, 0x4b, 0x0f, 0xa1, 0xfb, 0x72, 0xc0, 0xc0, 0x09, 0x67, 0x78, ++ 0xa8, 0xb6, 0xd6, 0x1a, 0x39, 0xc0, 0xa8, 0xbf, 0x5f, 0x14, 0x89, 0x5c, ++ 0xbc, 0x41, 0x0c, 0x0c, 0x5d, 0x42, 0x2e, 0x1c, 0xdf, 0x1f, 0x1d, 0xc9, ++ 0x43, 0x94, 0x5b, 0x6e, 0x8f, 0x15, 0x8c, 0x8f, 0x94, 0x73, 0x4f, 0x97, ++ 0x54, 0xf1, 0x86, 0x8a, 0xbc, 0xe4, 0xe4, 0x93, 0xc1, 0x5e, 0xc2, 0x3e, ++ 0x31, 0x5e, 0xd4, 0x85, 0x57, 0x14, 0xd0, 0x11, 0x07, 0x65, 0xf4, 0x7c, ++ 0x8f, 0x07, 0x57, 0xe1, 0x22, 0xd4, 0x78, 0x47, 0x65, 0x4e, 0xa9, 0xb3, ++ 0xaa, 0xce, 0xc7, 0x36, 0xfe, 0xda, 0x66, 0x02, 0xb6, 0x8d, 0x18, 0x2f, ++ 0x3b, 0x41, 0x8d, 0x02, 0x08, 0x72, 0x4b, 0x69, 0xbd, 0x1e, 0x58, 0xfc, ++ 0x1b, 0x64, 0x04, 0x52, 0x35, 0x35, 0xe2, 0x3d, 0x3e, 0xde, 0xd6, 0x64, ++ 0xf4, 0xec, 0x57, 0x7e, 0x65, 0x59, 0x00, 0xa6, 0xd3, 0x4b, 0x09, 0x93, ++ 0x2a, 0x95, 0x0f, 0x30, 0xb6, 0xa1, 0x8c, 0xe7, 0x8b, 0x49, 0xa4, 0x1d, ++ 0x25, 0x2d, 0x65, 0x48, 0x8a, 0x0f, 0xcf, 0x2a, 0xa2, 0xe1, 0xef, 0x72, ++ 0x92, 0xc3, 0xf5, 0x21, 0x37, 0x83, 0x9b, 0x6d, 0x0b, 0x1b, 0xb3, 0xa2, ++ 0x32, 0x38, 0x11, 0xb1, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x5d, 0x30, ++ 0x5b, 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, ++ 0x02, 0x30, 0x00, 0x30, 0x0b, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x04, 0x04, ++ 0x03, 0x02, 0x07, 0x80, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, ++ 0x16, 0x04, 0x14, 0xe5, 0x2a, 0x4f, 0xf2, 0x84, 0x91, 0x57, 0x91, 0xaf, ++ 0x12, 0xd2, 0xf1, 0xa1, 0x87, 0x73, 0x0f, 0x90, 0x25, 0xa0, 0x7a, 0x30, ++ 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, ++ 0x56, 0xd1, 0xfd, 0xe2, 0x1e, 0x7e, 0x1c, 0x63, 0x4f, 0x47, 0xdb, 0xe4, ++ 0xc4, 0x51, 0x04, 0x03, 0x9a, 0x48, 0x35, 0x6e, 0x30, 0x0d, 0x06, 0x09, ++ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, ++ 0x82, 0x01, 0x01, 0x00, 0x65, 0x82, 0xd5, 0x88, 0x30, 0xe2, 0x2c, 0x47, ++ 0xf3, 0x31, 0x39, 0xa1, 0x75, 0x9a, 0xb0, 0x8a, 0x6c, 0x4b, 0xac, 0xdf, ++ 0x09, 0x7b, 0x90, 0xb6, 0x9e, 0x76, 0x62, 0x94, 0xc1, 0x3a, 0x99, 0x49, ++ 0x68, 0x29, 0x47, 0x42, 0xc3, 0x06, 0xcb, 0x88, 0x75, 0xe6, 0x79, 0x13, ++ 0x8c, 0x4b, 0x49, 0x6a, 0xb5, 0x56, 0x95, 0xc0, 0x42, 0x21, 0x9b, 0xd4, ++ 0x61, 0xd0, 0x02, 0x41, 0xdd, 0x20, 0x61, 0xe5, 0x91, 0xdf, 0x75, 0x00, ++ 0x25, 0x0e, 0x99, 0x65, 0x5c, 0x54, 0x49, 0x32, 0xa3, 0xe2, 0xcd, 0xa1, ++ 0x5f, 0x40, 0xf3, 0xc5, 0x81, 0xd9, 0x3c, 0xa3, 0x63, 0x5a, 0x38, 0x79, ++ 0xab, 0x77, 0x98, 0xde, 0x8f, 0x4e, 0x9e, 0x26, 0xbc, 0x4e, 0x80, 0x9e, ++ 0x8f, 0xbe, 0xf1, 0x00, 0xb3, 0x78, 0xb9, 0x4b, 0x1d, 0xc7, 0xa4, 0x83, ++ 0x59, 0x56, 0x11, 0xd1, 0x11, 0x1e, 0x50, 0x39, 0xd5, 0x78, 0x14, 0xf3, ++ 0xb9, 0x1d, 0xda, 0xe4, 0xc4, 0x63, 0x74, 0x26, 0xab, 0xa3, 0xfd, 0x9d, ++ 0x58, 0xa2, 0xee, 0x7b, 0x28, 0x34, 0xa3, 0xbe, 0x85, 0x7e, 0xaa, 0x97, ++ 0xb7, 0x5b, 0x9d, 0xa9, 0x4d, 0x96, 0xdb, 0x6b, 0x21, 0xe1, 0x96, 0x5d, ++ 0xc7, 0xad, 0x23, 0x03, 0x9a, 0x16, 0xdb, 0xa4, 0x1f, 0x63, 0xef, 0xaf, ++ 0x1e, 0x4f, 0xf8, 0x27, 0xdc, 0x4b, 0xfc, 0x2b, 0x68, 0x2e, 0xa0, 0xd3, ++ 0xae, 0xf2, 0xce, 0xf5, 0xfc, 0x97, 0x92, 0xd2, 0x29, 0x0f, 0x4f, 0x4b, ++ 0x29, 0xeb, 0x06, 0xcb, 0xf8, 0x21, 0x6e, 0xbc, 0x8b, 0x5c, 0xc5, 0xc9, ++ 0xf7, 0xe2, 0x7c, 0x47, 0xcd, 0x43, 0x98, 0xc4, 0xa3, 0x9a, 0xd7, 0x3e, ++ 0xdc, 0x01, 0x13, 0x28, 0x96, 0xc4, 0x60, 0x83, 0xe2, 0x79, 0xa1, 0x46, ++ 0xef, 0xf5, 0xa4, 0x7b, 0x00, 0xe3, 0x3d, 0x7d, 0xbc, 0xa8, 0x98, 0x49, ++ 0xa8, 0xcf, 0x3b, 0x41, 0xb6, 0x09, 0x97, 0x07 ++}; ++unsigned int certificate_der_len = 908; ++ ++unsigned char hi_signed[] = { ++ 0x68, 0x69, 0x0a, 0x30, 0x82, 0x01, 0xc0, 0x06, 0x09, 0x2a, 0x86, 0x48, ++ 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x02, 0xa0, 0x82, 0x01, 0xb1, 0x30, 0x82, ++ 0x01, 0xad, 0x02, 0x01, 0x01, 0x31, 0x0d, 0x30, 0x0b, 0x06, 0x09, 0x60, ++ 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03, 0x30, 0x0b, 0x06, 0x09, ++ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0x31, 0x82, 0x01, ++ 0x8a, 0x30, 0x82, 0x01, 0x86, 0x02, 0x01, 0x01, 0x30, 0x61, 0x30, 0x49, ++ 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1f, 0x47, ++ 0x72, 0x75, 0x62, 0x20, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, ++ 0x20, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x54, ++ 0x65, 0x73, 0x74, 0x20, 0x43, 0x41, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x09, ++ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, 0x0e, 0x64, ++ 0x6a, 0x61, 0x40, 0x61, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x2e, 0x6e, 0x65, ++ 0x74, 0x02, 0x14, 0x25, 0x2e, 0xb8, 0xfd, 0x12, 0x62, 0x2e, 0xcd, 0x5d, ++ 0xa7, 0x53, 0xd2, 0x0b, 0xc2, 0x61, 0x7c, 0x14, 0xe0, 0x0f, 0x5c, 0x30, ++ 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03, ++ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, ++ 0x01, 0x05, 0x00, 0x04, 0x82, 0x01, 0x00, 0xc7, 0x69, 0x35, 0x21, 0x66, ++ 0x4d, 0x50, 0xd4, 0x73, 0xde, 0xbd, 0x3a, 0xf6, 0x45, 0xe3, 0xe4, 0xd0, ++ 0xb6, 0xa1, 0xe7, 0xc0, 0xa2, 0xc9, 0xf4, 0xf0, 0x05, 0x8c, 0xa4, 0x16, ++ 0x9e, 0x81, 0x0d, 0x21, 0x68, 0xf3, 0xfe, 0x03, 0x96, 0x77, 0x31, 0x69, ++ 0x01, 0xd8, 0x26, 0xd9, 0x48, 0x95, 0xcf, 0xd1, 0x17, 0xb1, 0x0b, 0x6b, ++ 0x2c, 0xf1, 0xb0, 0xab, 0x65, 0x65, 0x56, 0xf8, 0x0c, 0xa7, 0xf7, 0xbb, ++ 0xf6, 0x5a, 0x55, 0x98, 0x14, 0x07, 0x8d, 0x2a, 0xbc, 0x16, 0x48, 0x94, ++ 0xab, 0x2f, 0x85, 0x97, 0x90, 0x51, 0x78, 0xa0, 0xda, 0x60, 0xb5, 0x41, ++ 0x4b, 0xe8, 0x78, 0xc5, 0xa6, 0x04, 0x9d, 0x54, 0x2a, 0x85, 0xfd, 0x86, ++ 0x0b, 0x6d, 0xc2, 0xd2, 0xad, 0x07, 0xff, 0x16, 0x42, 0x82, 0xe3, 0x5c, ++ 0xaa, 0x22, 0x59, 0x78, 0x92, 0xea, 0x94, 0xc3, 0x41, 0xb7, 0xa1, 0x86, ++ 0x44, 0xea, 0xd1, 0xdb, 0xe5, 0xac, 0x30, 0x32, 0xfb, 0x7d, 0x3f, 0xf7, ++ 0x8b, 0x11, 0x7f, 0x80, 0x3b, 0xe5, 0xc7, 0x82, 0x0f, 0x92, 0x07, 0x14, ++ 0x66, 0x01, 0x6e, 0x85, 0xab, 0x3a, 0x14, 0xcf, 0x76, 0xd1, 0x7e, 0x14, ++ 0x85, 0xca, 0x01, 0x73, 0x72, 0x38, 0xdc, 0xde, 0x30, 0x5c, 0xfb, 0xc0, ++ 0x3d, 0x93, 0xef, 0x9c, 0xbc, 0xf8, 0xcc, 0xd2, 0xbf, 0x47, 0xec, 0xf8, ++ 0x88, 0x9b, 0xe1, 0x43, 0xbe, 0xa7, 0x47, 0x96, 0xb6, 0x5d, 0x46, 0x0e, ++ 0x7a, 0x78, 0x38, 0x19, 0xbc, 0xb5, 0xbc, 0x9b, 0x3c, 0x39, 0x92, 0x70, ++ 0x0d, 0x9d, 0x8a, 0x35, 0xaf, 0xb4, 0x9e, 0xf4, 0xef, 0xc1, 0xb8, 0x25, ++ 0xd0, 0x14, 0x91, 0xd6, 0xc2, 0xb6, 0xc7, 0x3c, 0x72, 0x91, 0x0f, 0xad, ++ 0xde, 0xb2, 0x36, 0xf8, 0x4e, 0x59, 0xd4, 0xa4, 0x21, 0x9f, 0x03, 0x95, ++ 0x48, 0x01, 0xb4, 0x05, 0xc3, 0x39, 0x60, 0x51, 0x08, 0xd0, 0xbe, 0x00, ++ 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc4, 0x7e, ++ 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, ++ 0x74, 0x75, 0x72, 0x65, 0x20, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x65, ++ 0x64, 0x7e, 0x0a ++}; ++unsigned int hi_signed_len = 495; ++ ++unsigned char hj_signed[] = { ++ 0x68, 0x6a, 0x0a, 0x30, 0x82, 0x01, 0xc0, 0x06, 0x09, 0x2a, 0x86, 0x48, ++ 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x02, 0xa0, 0x82, 0x01, 0xb1, 0x30, 0x82, ++ 0x01, 0xad, 0x02, 0x01, 0x01, 0x31, 0x0d, 0x30, 0x0b, 0x06, 0x09, 0x60, ++ 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03, 0x30, 0x0b, 0x06, 0x09, ++ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0x31, 0x82, 0x01, ++ 0x8a, 0x30, 0x82, 0x01, 0x86, 0x02, 0x01, 0x01, 0x30, 0x61, 0x30, 0x49, ++ 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1f, 0x47, ++ 0x72, 0x75, 0x62, 0x20, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, ++ 0x20, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x54, ++ 0x65, 0x73, 0x74, 0x20, 0x43, 0x41, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x09, ++ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, 0x0e, 0x64, ++ 0x6a, 0x61, 0x40, 0x61, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x2e, 0x6e, 0x65, ++ 0x74, 0x02, 0x14, 0x25, 0x2e, 0xb8, 0xfd, 0x12, 0x62, 0x2e, 0xcd, 0x5d, ++ 0xa7, 0x53, 0xd2, 0x0b, 0xc2, 0x61, 0x7c, 0x14, 0xe0, 0x0f, 0x5c, 0x30, ++ 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03, ++ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, ++ 0x01, 0x05, 0x00, 0x04, 0x82, 0x01, 0x00, 0xc7, 0x69, 0x35, 0x21, 0x66, ++ 0x4d, 0x50, 0xd4, 0x73, 0xde, 0xbd, 0x3a, 0xf6, 0x45, 0xe3, 0xe4, 0xd0, ++ 0xb6, 0xa1, 0xe7, 0xc0, 0xa2, 0xc9, 0xf4, 0xf0, 0x05, 0x8c, 0xa4, 0x16, ++ 0x9e, 0x81, 0x0d, 0x21, 0x68, 0xf3, 0xfe, 0x03, 0x96, 0x77, 0x31, 0x69, ++ 0x01, 0xd8, 0x26, 0xd9, 0x48, 0x95, 0xcf, 0xd1, 0x17, 0xb1, 0x0b, 0x6b, ++ 0x2c, 0xf1, 0xb0, 0xab, 0x65, 0x65, 0x56, 0xf8, 0x0c, 0xa7, 0xf7, 0xbb, ++ 0xf6, 0x5a, 0x55, 0x98, 0x14, 0x07, 0x8d, 0x2a, 0xbc, 0x16, 0x48, 0x94, ++ 0xab, 0x2f, 0x85, 0x97, 0x90, 0x51, 0x78, 0xa0, 0xda, 0x60, 0xb5, 0x41, ++ 0x4b, 0xe8, 0x78, 0xc5, 0xa6, 0x04, 0x9d, 0x54, 0x2a, 0x85, 0xfd, 0x86, ++ 0x0b, 0x6d, 0xc2, 0xd2, 0xad, 0x07, 0xff, 0x16, 0x42, 0x82, 0xe3, 0x5c, ++ 0xaa, 0x22, 0x59, 0x78, 0x92, 0xea, 0x94, 0xc3, 0x41, 0xb7, 0xa1, 0x86, ++ 0x44, 0xea, 0xd1, 0xdb, 0xe5, 0xac, 0x30, 0x32, 0xfb, 0x7d, 0x3f, 0xf7, ++ 0x8b, 0x11, 0x7f, 0x80, 0x3b, 0xe5, 0xc7, 0x82, 0x0f, 0x92, 0x07, 0x14, ++ 0x66, 0x01, 0x6e, 0x85, 0xab, 0x3a, 0x14, 0xcf, 0x76, 0xd1, 0x7e, 0x14, ++ 0x85, 0xca, 0x01, 0x73, 0x72, 0x38, 0xdc, 0xde, 0x30, 0x5c, 0xfb, 0xc0, ++ 0x3d, 0x93, 0xef, 0x9c, 0xbc, 0xf8, 0xcc, 0xd2, 0xbf, 0x47, 0xec, 0xf8, ++ 0x88, 0x9b, 0xe1, 0x43, 0xbe, 0xa7, 0x47, 0x96, 0xb6, 0x5d, 0x46, 0x0e, ++ 0x7a, 0x78, 0x38, 0x19, 0xbc, 0xb5, 0xbc, 0x9b, 0x3c, 0x39, 0x92, 0x70, ++ 0x0d, 0x9d, 0x8a, 0x35, 0xaf, 0xb4, 0x9e, 0xf4, 0xef, 0xc1, 0xb8, 0x25, ++ 0xd0, 0x14, 0x91, 0xd6, 0xc2, 0xb6, 0xc7, 0x3c, 0x72, 0x91, 0x0f, 0xad, ++ 0xde, 0xb2, 0x36, 0xf8, 0x4e, 0x59, 0xd4, 0xa4, 0x21, 0x9f, 0x03, 0x95, ++ 0x48, 0x01, 0xb4, 0x05, 0xc3, 0x39, 0x60, 0x51, 0x08, 0xd0, 0xbe, 0x00, ++ 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc4, 0x7e, ++ 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, ++ 0x74, 0x75, 0x72, 0x65, 0x20, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x65, ++ 0x64, 0x7e, 0x0a ++}; ++unsigned int hj_signed_len = 495; ++ ++unsigned char hi_signed_sha256[] = { ++ 0x68, 0x69, 0x0a, 0x30, 0x82, 0x01, 0xc0, 0x06, 0x09, 0x2a, 0x86, 0x48, ++ 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x02, 0xa0, 0x82, 0x01, 0xb1, 0x30, 0x82, ++ 0x01, 0xad, 0x02, 0x01, 0x01, 0x31, 0x0d, 0x30, 0x0b, 0x06, 0x09, 0x60, ++ 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x30, 0x0b, 0x06, 0x09, ++ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0x31, 0x82, 0x01, ++ 0x8a, 0x30, 0x82, 0x01, 0x86, 0x02, 0x01, 0x01, 0x30, 0x61, 0x30, 0x49, ++ 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1f, 0x47, ++ 0x72, 0x75, 0x62, 0x20, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, ++ 0x20, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x54, ++ 0x65, 0x73, 0x74, 0x20, 0x43, 0x41, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x09, ++ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, 0x0e, 0x64, ++ 0x6a, 0x61, 0x40, 0x61, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x2e, 0x6e, 0x65, ++ 0x74, 0x02, 0x14, 0x25, 0x2e, 0xb8, 0xfd, 0x12, 0x62, 0x2e, 0xcd, 0x5d, ++ 0xa7, 0x53, 0xd2, 0x0b, 0xc2, 0x61, 0x7c, 0x14, 0xe0, 0x0f, 0x5c, 0x30, ++ 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, ++ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, ++ 0x01, 0x05, 0x00, 0x04, 0x82, 0x01, 0x00, 0x7b, 0x5e, 0x82, 0x1d, 0x21, ++ 0xb6, 0x40, 0xd3, 0x33, 0x79, 0xa7, 0x52, 0x2b, 0xfc, 0x46, 0x51, 0x26, ++ 0xfe, 0x0f, 0x81, 0x90, 0x81, 0xab, 0x57, 0x5e, 0xf6, 0x45, 0x41, 0xa3, ++ 0x7b, 0x48, 0xdd, 0xd6, 0x59, 0x60, 0x51, 0x31, 0x14, 0x14, 0x7b, 0xb4, ++ 0x55, 0x7b, 0x4d, 0xfe, 0x09, 0x7a, 0x5d, 0xae, 0xc4, 0x58, 0x50, 0x80, ++ 0x75, 0xf2, 0x23, 0x20, 0x62, 0xe3, 0x7c, 0x26, 0x1d, 0x2a, 0x4d, 0x9f, ++ 0x89, 0xf0, 0x4f, 0x95, 0x8a, 0x80, 0x6e, 0x1a, 0xea, 0x87, 0xdb, 0x1f, ++ 0xf3, 0xda, 0x04, 0x91, 0x37, 0xea, 0x0a, 0xfb, 0x6c, 0xc9, 0x3d, 0x73, ++ 0xf9, 0x58, 0x7c, 0x15, 0x6b, 0xa2, 0x52, 0x5a, 0x97, 0xff, 0xd6, 0xb0, ++ 0xf1, 0xbf, 0xa5, 0x04, 0x6d, 0x91, 0xc1, 0x54, 0x05, 0xdc, 0x7f, 0x5d, ++ 0x19, 0xaf, 0x55, 0xec, 0x51, 0xfb, 0x66, 0x0a, 0xa4, 0x4e, 0x96, 0x47, ++ 0x43, 0x54, 0x7c, 0x64, 0xa8, 0xaa, 0xb4, 0x90, 0x02, 0xf3, 0xa7, 0x0b, ++ 0xb7, 0xbf, 0x06, 0xdb, 0x5e, 0x9c, 0x32, 0x6d, 0x45, 0x14, 0x1c, 0xaf, ++ 0x46, 0x30, 0x08, 0x55, 0x49, 0x78, 0xfa, 0x57, 0xda, 0x3d, 0xf5, 0xa0, ++ 0xef, 0x11, 0x0a, 0x81, 0x0d, 0x82, 0xcd, 0xaf, 0xdb, 0xda, 0x0e, 0x1a, ++ 0x44, 0xd1, 0xee, 0xc4, 0xb8, 0xde, 0x97, 0xb4, 0xda, 0xb4, 0x8b, 0x4f, ++ 0x58, 0x24, 0x59, 0xc0, 0xe0, 0x08, 0x97, 0x14, 0x68, 0xbe, 0x31, 0x09, ++ 0x5e, 0x67, 0x45, 0xf0, 0xcb, 0x81, 0x4f, 0x17, 0x44, 0x61, 0xe0, 0xe2, ++ 0xf0, 0xfc, 0x1e, 0xb9, 0x73, 0xaf, 0x42, 0xff, 0x33, 0xde, 0x61, 0x6b, ++ 0x7f, 0xc2, 0x69, 0x0d, 0x66, 0x54, 0xae, 0xf6, 0xde, 0x20, 0x47, 0x44, ++ 0x9b, 0x73, 0xd1, 0x07, 0x6e, 0x77, 0x37, 0x0a, 0xbb, 0x7f, 0xa0, 0x93, ++ 0x2d, 0x8d, 0x44, 0xba, 0xe2, 0xdd, 0x34, 0x32, 0xd7, 0x56, 0x71, 0x00, ++ 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc4, 0x7e, ++ 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, ++ 0x74, 0x75, 0x72, 0x65, 0x20, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x65, ++ 0x64, 0x7e, 0x0a ++}; ++unsigned int hi_signed_sha256_len = 495; ++ ++unsigned char short_msg[] = { ++ 0x68, 0x69, 0x0a ++}; ++unsigned int short_msg_len = 3; ++ ++unsigned char unsigned_msg[] = { ++ 0x53, 0x65, 0x64, 0x20, 0x75, 0x74, 0x20, 0x70, 0x65, 0x72, 0x73, 0x70, ++ 0x69, 0x63, 0x69, 0x61, 0x74, 0x69, 0x73, 0x20, 0x75, 0x6e, 0x64, 0x65, ++ 0x20, 0x6f, 0x6d, 0x6e, 0x69, 0x73, 0x20, 0x69, 0x73, 0x74, 0x65, 0x20, ++ 0x6e, 0x61, 0x74, 0x75, 0x73, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, ++ 0x73, 0x69, 0x74, 0x20, 0x76, 0x6f, 0x6c, 0x75, 0x70, 0x74, 0x61, 0x74, ++ 0x65, 0x6d, 0x20, 0x61, 0x63, 0x63, 0x75, 0x73, 0x61, 0x6e, 0x74, 0x69, ++ 0x75, 0x6d, 0x20, 0x64, 0x6f, 0x6c, 0x6f, 0x72, 0x65, 0x6d, 0x71, 0x75, ++ 0x65, 0x20, 0x6c, 0x61, 0x75, 0x64, 0x61, 0x6e, 0x74, 0x69, 0x75, 0x6d, ++ 0x2c, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6d, 0x20, 0x72, 0x65, 0x6d, 0x20, ++ 0x61, 0x70, 0x65, 0x72, 0x69, 0x61, 0x6d, 0x2c, 0x20, 0x65, 0x61, 0x71, ++ 0x75, 0x65, 0x20, 0x69, 0x70, 0x73, 0x61, 0x20, 0x71, 0x75, 0x61, 0x65, ++ 0x20, 0x61, 0x62, 0x20, 0x69, 0x6c, 0x6c, 0x6f, 0x20, 0x69, 0x6e, 0x76, ++ 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x65, 0x20, 0x76, 0x65, 0x72, 0x69, 0x74, ++ 0x61, 0x74, 0x69, 0x73, 0x20, 0x65, 0x74, 0x20, 0x71, 0x75, 0x61, 0x73, ++ 0x69, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x6f, ++ 0x20, 0x62, 0x65, 0x61, 0x74, 0x61, 0x65, 0x20, 0x76, 0x69, 0x74, 0x61, ++ 0x65, 0x20, 0x64, 0x69, 0x63, 0x74, 0x61, 0x20, 0x73, 0x75, 0x6e, 0x74, ++ 0x20, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x6f, 0x2e, 0x20, ++ 0x4e, 0x65, 0x6d, 0x6f, 0x20, 0x65, 0x6e, 0x69, 0x6d, 0x20, 0x69, 0x70, ++ 0x73, 0x61, 0x6d, 0x20, 0x76, 0x6f, 0x6c, 0x75, 0x70, 0x74, 0x61, 0x74, ++ 0x65, 0x6d, 0x20, 0x71, 0x75, 0x69, 0x61, 0x20, 0x76, 0x6f, 0x6c, 0x75, ++ 0x70, 0x74, 0x61, 0x73, 0x20, 0x73, 0x69, 0x74, 0x20, 0x61, 0x73, 0x70, ++ 0x65, 0x72, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x20, 0x61, 0x75, 0x74, 0x20, ++ 0x6f, 0x64, 0x69, 0x74, 0x20, 0x61, 0x75, 0x74, 0x20, 0x66, 0x75, 0x67, ++ 0x69, 0x74, 0x2c, 0x20, 0x73, 0x65, 0x64, 0x20, 0x71, 0x75, 0x69, 0x61, ++ 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x71, 0x75, 0x75, 0x6e, 0x74, 0x75, ++ 0x72, 0x20, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x20, 0x64, 0x6f, 0x6c, 0x6f, ++ 0x72, 0x65, 0x73, 0x20, 0x65, 0x6f, 0x73, 0x20, 0x71, 0x75, 0x69, 0x20, ++ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x6f, 0x6c, 0x75, ++ 0x70, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x20, 0x73, 0x65, 0x71, 0x75, 0x69, ++ 0x20, 0x6e, 0x65, 0x73, 0x63, 0x69, 0x75, 0x6e, 0x74, 0x2e, 0x20, 0x4e, ++ 0x65, 0x71, 0x75, 0x65, 0x20, 0x70, 0x6f, 0x72, 0x72, 0x6f, 0x20, 0x71, ++ 0x75, 0x69, 0x73, 0x71, 0x75, 0x61, 0x6d, 0x20, 0x65, 0x73, 0x74, 0x2c, ++ 0x20, 0x71, 0x75, 0x69, 0x20, 0x64, 0x6f, 0x6c, 0x6f, 0x72, 0x65, 0x6d, ++ 0x20, 0x69, 0x70, 0x73, 0x75, 0x6d, 0x20, 0x71, 0x75, 0x69, 0x61, 0x20, ++ 0x64, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x73, 0x69, 0x74, 0x20, 0x61, 0x6d, ++ 0x65, 0x74, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x74, 0x65, ++ 0x74, 0x75, 0x72, 0x2c, 0x20, 0x61, 0x64, 0x69, 0x70, 0x69, 0x73, 0x63, ++ 0x69, 0x20, 0x76, 0x65, 0x6c, 0x69, 0x74, 0x2c, 0x20, 0x73, 0x65, 0x64, ++ 0x20, 0x71, 0x75, 0x69, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x20, 0x6e, 0x75, ++ 0x6d, 0x71, 0x75, 0x61, 0x6d, 0x20, 0x65, 0x69, 0x75, 0x73, 0x20, 0x6d, ++ 0x6f, 0x64, 0x69, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x20, ++ 0x69, 0x6e, 0x63, 0x69, 0x64, 0x75, 0x6e, 0x74, 0x20, 0x75, 0x74, 0x20, ++ 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x65, 0x20, 0x65, 0x74, 0x20, 0x64, 0x6f, ++ 0x6c, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x61, 0x67, 0x6e, 0x61, 0x6d, 0x20, ++ 0x61, 0x6c, 0x69, 0x71, 0x75, 0x61, 0x6d, 0x20, 0x71, 0x75, 0x61, 0x65, ++ 0x72, 0x61, 0x74, 0x20, 0x76, 0x6f, 0x6c, 0x75, 0x70, 0x74, 0x61, 0x74, ++ 0x65, 0x6d, 0x2e, 0x20, 0x55, 0x74, 0x20, 0x65, 0x6e, 0x69, 0x6d, 0x20, ++ 0x61, 0x64, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x20, 0x76, 0x65, ++ 0x6e, 0x69, 0x61, 0x6d, 0x2c, 0x20, 0x71, 0x75, 0x69, 0x73, 0x20, 0x6e, ++ 0x6f, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x20, 0x65, 0x78, 0x65, 0x72, 0x63, ++ 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x6d, 0x20, 0x75, 0x6c, ++ 0x6c, 0x61, 0x6d, 0x20, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x69, 0x73, ++ 0x20, 0x73, 0x75, 0x73, 0x63, 0x69, 0x70, 0x69, 0x74, 0x20, 0x6c, 0x61, ++ 0x62, 0x6f, 0x72, 0x69, 0x6f, 0x73, 0x61, 0x6d, 0x2c, 0x20, 0x6e, 0x69, ++ 0x73, 0x69, 0x20, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x71, 0x75, 0x69, ++ 0x64, 0x20, 0x65, 0x78, 0x20, 0x65, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x6d, ++ 0x6f, 0x64, 0x69, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x71, 0x75, 0x61, ++ 0x74, 0x75, 0x72, 0x3f, 0x20, 0x51, 0x75, 0x69, 0x73, 0x20, 0x61, 0x75, ++ 0x74, 0x65, 0x6d, 0x20, 0x76, 0x65, 0x6c, 0x20, 0x65, 0x75, 0x6d, 0x20, ++ 0x69, 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x68, 0x65, ++ 0x6e, 0x64, 0x65, 0x72, 0x69, 0x74, 0x20, 0x71, 0x75, 0x69, 0x20, 0x69, ++ 0x6e, 0x20, 0x65, 0x61, 0x20, 0x76, 0x6f, 0x6c, 0x75, 0x70, 0x74, 0x61, ++ 0x74, 0x65, 0x20, 0x76, 0x65, 0x6c, 0x69, 0x74, 0x20, 0x65, 0x73, 0x73, ++ 0x65, 0x20, 0x71, 0x75, 0x61, 0x6d, 0x20, 0x6e, 0x69, 0x68, 0x69, 0x6c, ++ 0x20, 0x6d, 0x6f, 0x6c, 0x65, 0x73, 0x74, 0x69, 0x61, 0x65, 0x20, 0x63, ++ 0x6f, 0x6e, 0x73, 0x65, 0x71, 0x75, 0x61, 0x74, 0x75, 0x72, 0x2c, 0x20, ++ 0x76, 0x65, 0x6c, 0x20, 0x69, 0x6c, 0x6c, 0x75, 0x6d, 0x20, 0x71, 0x75, ++ 0x69, 0x20, 0x64, 0x6f, 0x6c, 0x6f, 0x72, 0x65, 0x6d, 0x20, 0x65, 0x75, ++ 0x6d, 0x20, 0x66, 0x75, 0x67, 0x69, 0x61, 0x74, 0x20, 0x71, 0x75, 0x6f, ++ 0x20, 0x76, 0x6f, 0x6c, 0x75, 0x70, 0x74, 0x61, 0x73, 0x20, 0x6e, 0x75, ++ 0x6c, 0x6c, 0x61, 0x20, 0x70, 0x61, 0x72, 0x69, 0x61, 0x74, 0x75, 0x72, ++ 0x3f, 0x0a ++}; ++unsigned int unsigned_msg_len = 866; ++ ++unsigned char certificate2_der[] = { ++ 0x30, 0x82, 0x05, 0x52, 0x30, 0x82, 0x03, 0x3a, 0xa0, 0x03, 0x02, 0x01, ++ 0x02, 0x02, 0x14, 0x5b, 0x5e, 0x59, 0xf2, 0x5f, 0x75, 0x4c, 0x8e, 0xc5, ++ 0x3a, 0x91, 0x07, 0xe9, 0xe7, 0x6d, 0x3c, 0xd0, 0x7f, 0x91, 0xff, 0x30, ++ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, ++ 0x05, 0x00, 0x30, 0x3a, 0x31, 0x38, 0x30, 0x36, 0x06, 0x03, 0x55, 0x04, ++ 0x03, 0x0c, 0x2f, 0x47, 0x72, 0x75, 0x62, 0x20, 0x32, 0x6e, 0x64, 0x20, ++ 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, ++ 0x54, 0x65, 0x73, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, ++ 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, ++ 0x74, 0x79, 0x30, 0x20, 0x17, 0x0d, 0x32, 0x30, 0x30, 0x37, 0x32, 0x38, ++ 0x31, 0x33, 0x32, 0x34, 0x32, 0x39, 0x5a, 0x18, 0x0f, 0x32, 0x31, 0x32, ++ 0x30, 0x30, 0x37, 0x30, 0x34, 0x31, 0x33, 0x32, 0x34, 0x32, 0x39, 0x5a, ++ 0x30, 0x2b, 0x31, 0x29, 0x30, 0x27, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, ++ 0x20, 0x47, 0x72, 0x75, 0x62, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x43, 0x65, ++ 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x53, 0x69, ++ 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x4b, 0x65, 0x79, 0x30, 0x82, 0x02, ++ 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, ++ 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00, 0x30, 0x82, 0x02, ++ 0x0a, 0x02, 0x82, 0x02, 0x01, 0x00, 0xb0, 0x2f, 0x50, 0x01, 0x9c, 0x0e, ++ 0xd6, 0x8c, 0x07, 0xca, 0xc1, 0xcf, 0xbc, 0x03, 0xdd, 0xd3, 0xfa, 0xe3, ++ 0x4f, 0x71, 0xc1, 0x30, 0xaa, 0x09, 0x96, 0xe4, 0xd0, 0x6c, 0x42, 0x93, ++ 0xdb, 0x35, 0xf6, 0x7e, 0x1b, 0x67, 0xc0, 0xc2, 0x2d, 0x5b, 0xec, 0xca, ++ 0x35, 0x06, 0x32, 0x6c, 0x7b, 0x2c, 0xd3, 0x71, 0x2b, 0xe9, 0x7a, 0x19, ++ 0xd1, 0xf2, 0xa0, 0x7f, 0xd7, 0x4d, 0x6e, 0x28, 0xbb, 0xae, 0x49, 0x4a, ++ 0xbc, 0xea, 0x47, 0x67, 0xb8, 0x36, 0xa6, 0xf5, 0x0d, 0x0e, 0x20, 0x14, ++ 0x0c, 0x66, 0x67, 0x28, 0xb5, 0x97, 0x8b, 0x1f, 0x5e, 0x32, 0x06, 0x29, ++ 0x9c, 0x99, 0x92, 0x0f, 0x73, 0xac, 0xfd, 0xd2, 0x1d, 0xf2, 0xa8, 0x55, ++ 0x9d, 0x1b, 0xd8, 0x3d, 0xb0, 0x76, 0x9a, 0xb6, 0x6c, 0x9f, 0x62, 0x37, ++ 0x2f, 0xc0, 0xef, 0x44, 0xb3, 0x0d, 0x4a, 0x3e, 0x4f, 0x7d, 0xbd, 0xdb, ++ 0xd8, 0x75, 0x5f, 0x68, 0xe3, 0xf0, 0xec, 0x82, 0x66, 0x7c, 0x31, 0x70, ++ 0xa9, 0xa1, 0x6f, 0x38, 0x9f, 0xdf, 0xf5, 0xf0, 0x7d, 0x23, 0x9d, 0x34, ++ 0xa5, 0x85, 0xd3, 0xdf, 0x68, 0x41, 0xfc, 0x4f, 0x89, 0x45, 0x3c, 0x24, ++ 0x81, 0xa6, 0xf2, 0x3c, 0x02, 0x26, 0x09, 0x48, 0xdd, 0xfe, 0x4b, 0xb6, ++ 0x66, 0xbf, 0x8f, 0xe5, 0x5f, 0xf0, 0x5d, 0x8a, 0x61, 0x2e, 0x5f, 0x9f, ++ 0x80, 0xd9, 0xd5, 0xe6, 0x41, 0xd8, 0x10, 0x5e, 0x7a, 0xc6, 0xdb, 0x89, ++ 0xc7, 0xca, 0x6c, 0x5b, 0xb1, 0x4e, 0x7d, 0x0c, 0x03, 0xfd, 0x50, 0xca, ++ 0xbf, 0xbb, 0xe2, 0x69, 0x4b, 0x4e, 0xc2, 0x3d, 0x75, 0xfa, 0xd1, 0xcc, ++ 0xd6, 0xf9, 0x39, 0xb9, 0xdc, 0x53, 0xad, 0x62, 0xfb, 0x1b, 0x94, 0x26, ++ 0x7f, 0x21, 0x54, 0x5c, 0xb7, 0xdc, 0xe7, 0x96, 0x8c, 0xce, 0x75, 0xe0, ++ 0x17, 0x01, 0x3a, 0x3c, 0x77, 0x6e, 0xa4, 0x8b, 0x7a, 0x83, 0x28, 0x7a, ++ 0xf7, 0xb0, 0x5f, 0xfc, 0x7f, 0x2d, 0x2e, 0xec, 0xf5, 0xeb, 0x9c, 0x63, ++ 0x74, 0xd0, 0xe5, 0xdc, 0x19, 0xe4, 0x71, 0xc5, 0x4a, 0x8a, 0x54, 0xa4, ++ 0xe0, 0x7d, 0x4e, 0xbf, 0x53, 0x30, 0xaf, 0xd0, 0xeb, 0x96, 0xc3, 0xbb, ++ 0x65, 0xf7, 0x67, 0xf5, 0xae, 0xd3, 0x96, 0xf2, 0x63, 0xc8, 0x69, 0xf7, ++ 0x47, 0xcb, 0x27, 0x79, 0xe1, 0xff, 0x2f, 0x68, 0xdf, 0x1e, 0xb3, 0xb8, ++ 0x0c, 0xc5, 0x58, 0x73, 0xcc, 0xfe, 0x8c, 0xda, 0x4e, 0x3b, 0x01, 0x04, ++ 0xcd, 0xcb, 0xb8, 0x3e, 0x06, 0xfd, 0x4c, 0x0a, 0x9f, 0x5e, 0x76, 0x8c, ++ 0x0c, 0x83, 0x75, 0x09, 0x08, 0xb2, 0xdb, 0xf4, 0x49, 0x4e, 0xa0, 0xf2, ++ 0x0c, 0x7b, 0x87, 0x38, 0x9e, 0x22, 0x67, 0xbd, 0xd1, 0x97, 0x57, 0x24, ++ 0xf1, 0x46, 0x07, 0xf9, 0xd2, 0x1b, 0xec, 0x25, 0x5e, 0x67, 0xd9, 0x66, ++ 0x23, 0x1b, 0xd3, 0xe4, 0xaa, 0xec, 0x88, 0xf0, 0x7e, 0x15, 0x83, 0x51, ++ 0x31, 0x67, 0x51, 0x76, 0x5f, 0x55, 0xd7, 0x36, 0xdf, 0x4a, 0x84, 0x0b, ++ 0x6f, 0x5c, 0xbb, 0x5b, 0x8f, 0x37, 0x23, 0x7f, 0xf8, 0x17, 0x84, 0xa2, ++ 0x70, 0x20, 0x07, 0x0c, 0x90, 0x3a, 0x04, 0xfd, 0xf0, 0x08, 0x4a, 0xb1, ++ 0x16, 0x0f, 0xe6, 0xf6, 0x40, 0x51, 0x83, 0xd2, 0x87, 0x40, 0x9c, 0x1c, ++ 0x9f, 0x13, 0x38, 0x17, 0xd3, 0x34, 0x58, 0xad, 0x05, 0x71, 0xa0, 0x73, ++ 0xca, 0x40, 0xa6, 0xa4, 0x81, 0x02, 0xee, 0xa8, 0x72, 0x41, 0xa1, 0x41, ++ 0x18, 0x64, 0x8a, 0x86, 0x8a, 0x5d, 0xe6, 0x4f, 0x0a, 0xc5, 0x95, 0x98, ++ 0xf9, 0x78, 0xfe, 0x19, 0x0d, 0xc9, 0xb3, 0x89, 0xc1, 0x2b, 0x09, 0xbe, ++ 0xf1, 0xd2, 0x04, 0x5d, 0xcc, 0x28, 0xf5, 0x4b, 0xd2, 0x20, 0x4f, 0xc5, ++ 0x41, 0x9d, 0x8c, 0x85, 0xd8, 0xb0, 0x68, 0x5e, 0xc1, 0x0c, 0xb7, 0x24, ++ 0x4d, 0x67, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x5d, 0x30, 0x5b, 0x30, ++ 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x02, 0x30, ++ 0x00, 0x30, 0x0b, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x04, 0x04, 0x03, 0x02, ++ 0x07, 0x80, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, ++ 0x14, 0xac, 0xf5, 0x47, 0x17, 0xd9, 0x7d, 0xc1, 0xb1, 0xc4, 0x41, 0xe1, ++ 0x41, 0x60, 0xcb, 0x37, 0x11, 0x60, 0x28, 0x78, 0x5f, 0x30, 0x1f, 0x06, ++ 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x21, 0x94, ++ 0xfb, 0xf9, 0xb2, 0x43, 0xe9, 0x33, 0xd7, 0x50, 0x7d, 0xc7, 0x37, 0xdb, ++ 0xd5, 0x82, 0x5a, 0x4e, 0xbe, 0x1b, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, ++ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x02, ++ 0x01, 0x00, 0x96, 0x70, 0x65, 0x26, 0x42, 0xf8, 0xdc, 0x69, 0xde, 0xcf, ++ 0x41, 0x3a, 0x2e, 0x7f, 0x5b, 0xf1, 0xf9, 0x3b, 0x9b, 0xd2, 0x4e, 0x64, ++ 0x48, 0x81, 0xe4, 0x5d, 0x1e, 0x22, 0xce, 0x68, 0x63, 0x62, 0xe5, 0x1b, ++ 0x9b, 0xf2, 0xc7, 0x12, 0xda, 0x1e, 0x9b, 0x90, 0x84, 0x79, 0x48, 0x12, ++ 0xe6, 0x21, 0x6f, 0x2f, 0x7e, 0x18, 0x77, 0xdb, 0x8c, 0xc4, 0xd1, 0x0d, ++ 0x91, 0xbf, 0x39, 0x22, 0x0f, 0x64, 0xcf, 0x25, 0x2e, 0x8c, 0x1f, 0x91, ++ 0x81, 0xb5, 0xe9, 0x6c, 0x02, 0x3a, 0xf8, 0x07, 0xa2, 0x6f, 0x46, 0x5d, ++ 0x7b, 0xfd, 0x43, 0xff, 0x41, 0x0f, 0xe2, 0x57, 0x1c, 0xbd, 0x48, 0x60, ++ 0x53, 0x11, 0x48, 0x87, 0x88, 0x9d, 0x13, 0x82, 0x40, 0x68, 0x44, 0x2c, ++ 0xc6, 0xc8, 0x95, 0x27, 0x4f, 0xb6, 0xb9, 0x4a, 0x22, 0x0a, 0xfd, 0xe4, ++ 0x46, 0x8f, 0x35, 0x12, 0x98, 0x5a, 0x34, 0x6f, 0x2b, 0x57, 0x62, 0xa1, ++ 0x4d, 0x8d, 0x79, 0x37, 0xe4, 0x6b, 0x8a, 0x32, 0x5b, 0xcb, 0xef, 0x79, ++ 0x11, 0xed, 0xa7, 0xf8, 0x7a, 0x1c, 0xbd, 0x86, 0xdc, 0x0e, 0x2e, 0xfd, ++ 0xd3, 0x51, 0xbb, 0x73, 0xad, 0x00, 0xa0, 0x1b, 0xf9, 0x1d, 0xd1, 0x4a, ++ 0xe4, 0xd4, 0x02, 0x63, 0x2b, 0x39, 0x5f, 0x18, 0x08, 0x2f, 0x42, 0xb7, ++ 0x23, 0x4b, 0x48, 0x46, 0x1f, 0x63, 0x87, 0xae, 0x6d, 0xd5, 0xdb, 0x60, ++ 0xf8, 0x5f, 0xd3, 0x13, 0xec, 0xca, 0xdd, 0x60, 0x60, 0x79, 0x52, 0x70, ++ 0x47, 0xae, 0x1d, 0x38, 0x78, 0x71, 0xcf, 0xb3, 0x04, 0x03, 0xbe, 0xba, ++ 0x81, 0xba, 0x74, 0xb1, 0x30, 0x35, 0xdc, 0xea, 0x21, 0x4a, 0x9b, 0x70, ++ 0xfb, 0xd6, 0x60, 0x59, 0x78, 0x0c, 0x4d, 0x39, 0x19, 0x1d, 0xe5, 0x75, ++ 0xba, 0x07, 0xf4, 0x22, 0x37, 0x64, 0xb7, 0xf2, 0x9a, 0xc9, 0x11, 0x2d, ++ 0x8e, 0x58, 0xa6, 0xcf, 0x83, 0xf1, 0xcb, 0x6c, 0x7f, 0x02, 0xbd, 0xda, ++ 0x03, 0x92, 0xa9, 0x45, 0x24, 0x56, 0xc5, 0xbd, 0x41, 0xd1, 0x20, 0x86, ++ 0xc0, 0xb6, 0xb7, 0xe8, 0xa7, 0xb2, 0x46, 0xf7, 0x8e, 0xa9, 0x38, 0x0e, ++ 0x23, 0x77, 0x3c, 0x0d, 0x66, 0x83, 0x6a, 0x1a, 0x6b, 0x7f, 0x54, 0x11, ++ 0x58, 0x0d, 0x4a, 0xb5, 0x74, 0x60, 0xca, 0xed, 0xff, 0x91, 0x47, 0xd9, ++ 0x29, 0xe0, 0xaa, 0x8c, 0xa8, 0x8f, 0x10, 0x4c, 0x15, 0x7d, 0xce, 0x95, ++ 0xf9, 0x87, 0x1e, 0x18, 0x38, 0x18, 0xfc, 0xcc, 0xaf, 0x91, 0x17, 0x3f, ++ 0xfa, 0xf0, 0x8a, 0x09, 0x6f, 0xba, 0x4e, 0x53, 0xf7, 0xfa, 0x4f, 0x20, ++ 0xa3, 0xf4, 0x4a, 0x5a, 0xde, 0x17, 0x1c, 0x29, 0x6a, 0x6f, 0x03, 0x48, ++ 0xdf, 0xad, 0x4f, 0xe4, 0xbc, 0x71, 0xc4, 0x72, 0x32, 0x11, 0x84, 0xac, ++ 0x09, 0xd2, 0x18, 0x44, 0x35, 0xf1, 0xcd, 0xaf, 0xa8, 0x98, 0xe0, 0x8b, ++ 0xec, 0xa0, 0x83, 0x37, 0xc3, 0x35, 0x85, 0xd6, 0xd8, 0x1b, 0xe0, 0x75, ++ 0xdc, 0xfd, 0xde, 0xc9, 0xeb, 0xd5, 0x18, 0x0f, 0xd3, 0x4c, 0x2f, 0x71, ++ 0xdc, 0x48, 0xe3, 0x14, 0xeb, 0xda, 0x00, 0x24, 0x24, 0x9e, 0xa3, 0x8e, ++ 0x3e, 0x08, 0x6f, 0x22, 0x24, 0xd6, 0xc4, 0x85, 0x8f, 0x68, 0x00, 0x4a, ++ 0x82, 0x4c, 0x33, 0x6e, 0xa5, 0x35, 0x7b, 0xeb, 0x4b, 0xdc, 0xa0, 0xa6, ++ 0x65, 0x6f, 0x5a, 0x7a, 0xdf, 0x8a, 0x01, 0x52, 0xa1, 0x6c, 0xff, 0x59, ++ 0x22, 0x7f, 0xe1, 0x96, 0x1b, 0x19, 0xb8, 0xf9, 0x5d, 0x44, 0x9f, 0x91, ++ 0x03, 0x3c, 0x3d, 0xa1, 0x2a, 0xb6, 0x5a, 0x51, 0xa0, 0xce, 0x4a, 0x88, ++ 0x22, 0x72, 0x9c, 0xdc, 0xc0, 0x47, 0x76, 0x35, 0x84, 0x75, 0x9b, 0x87, ++ 0x5c, 0xd3, 0xcf, 0xe7, 0xdd, 0xa3, 0x57, 0x14, 0xdf, 0x00, 0xfd, 0x19, ++ 0x2a, 0x7d, 0x89, 0x27, 0x1c, 0x78, 0x97, 0x04, 0x58, 0x48 ++}; ++unsigned int certificate2_der_len = 1366; ++ ++unsigned char hi_signed_2nd[] = { ++ 0x68, 0x69, 0x0a, 0x30, 0x82, 0x02, 0xb1, 0x06, 0x09, 0x2a, 0x86, 0x48, ++ 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x02, 0xa0, 0x82, 0x02, 0xa2, 0x30, 0x82, ++ 0x02, 0x9e, 0x02, 0x01, 0x01, 0x31, 0x0d, 0x30, 0x0b, 0x06, 0x09, 0x60, ++ 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03, 0x30, 0x0b, 0x06, 0x09, ++ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0x31, 0x82, 0x02, ++ 0x7b, 0x30, 0x82, 0x02, 0x77, 0x02, 0x01, 0x01, 0x30, 0x52, 0x30, 0x3a, ++ 0x31, 0x38, 0x30, 0x36, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x2f, 0x47, ++ 0x72, 0x75, 0x62, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x43, 0x65, 0x72, 0x74, ++ 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x54, 0x65, 0x73, 0x74, ++ 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, ++ 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x02, 0x14, ++ 0x5b, 0x5e, 0x59, 0xf2, 0x5f, 0x75, 0x4c, 0x8e, 0xc5, 0x3a, 0x91, 0x07, ++ 0xe9, 0xe7, 0x6d, 0x3c, 0xd0, 0x7f, 0x91, 0xff, 0x30, 0x0b, 0x06, 0x09, ++ 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03, 0x30, 0x0d, 0x06, ++ 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, ++ 0x04, 0x82, 0x02, 0x00, 0x0e, 0xc2, 0x30, 0x38, 0x81, 0x23, 0x68, 0x90, ++ 0xae, 0x5f, 0xce, 0xf7, 0x27, 0xb1, 0x8c, 0x2e, 0x12, 0x10, 0xc6, 0x99, ++ 0xdc, 0x4d, 0x4b, 0x79, 0xda, 0xe4, 0x32, 0x10, 0x46, 0x1c, 0x16, 0x07, ++ 0x87, 0x66, 0x55, 0xff, 0x64, 0x1c, 0x61, 0x25, 0xd5, 0xb9, 0xe1, 0xfe, ++ 0xea, 0x5a, 0xcd, 0x56, 0xa5, 0xc3, 0xbe, 0xb1, 0x61, 0xc7, 0x6f, 0x5f, ++ 0x69, 0x20, 0x64, 0x50, 0x6f, 0x12, 0x78, 0xb6, 0x0c, 0x72, 0x44, 0x4f, ++ 0x60, 0x0f, 0x9f, 0xa2, 0x83, 0x3b, 0xc2, 0x83, 0xd5, 0x14, 0x1f, 0x6f, ++ 0x3e, 0xb2, 0x47, 0xb5, 0x58, 0xc5, 0xa7, 0xb4, 0x82, 0x53, 0x2e, 0x53, ++ 0x95, 0x4e, 0x3d, 0xe4, 0x62, 0xe8, 0xa1, 0xaf, 0xae, 0xbf, 0xa9, 0xd2, ++ 0x22, 0x07, 0xbe, 0x71, 0x37, 0x2c, 0x5a, 0xa7, 0x6c, 0xaf, 0x14, 0xc0, ++ 0x6c, 0x2f, 0xbf, 0x4f, 0x15, 0xc2, 0x0f, 0x8b, 0xdc, 0x68, 0x45, 0xdf, ++ 0xf3, 0xa5, 0x7f, 0x11, 0x6a, 0x54, 0xcd, 0x67, 0xb9, 0x2e, 0x7d, 0x05, ++ 0xe3, 0x1c, 0x1d, 0xcc, 0x77, 0x8e, 0x97, 0xb1, 0xa0, 0x11, 0x09, 0x3d, ++ 0x90, 0x54, 0xfc, 0x7e, 0xbb, 0xbb, 0x21, 0x23, 0x03, 0x44, 0xbf, 0x7d, ++ 0x2c, 0xc9, 0x15, 0x42, 0xe5, 0xa0, 0x3b, 0xa2, 0xd1, 0x5b, 0x73, 0x81, ++ 0xff, 0xfa, 0x90, 0xfc, 0x27, 0x7b, 0x2f, 0x86, 0x9c, 0x1d, 0x14, 0x36, ++ 0x94, 0xa2, 0x6e, 0xe8, 0x9d, 0xa0, 0x5f, 0xfc, 0x5a, 0x0d, 0xa4, 0xd5, ++ 0x2f, 0x8d, 0xd6, 0x00, 0xfa, 0x93, 0x5b, 0x09, 0x7f, 0x42, 0x78, 0xcc, ++ 0x8c, 0x49, 0xda, 0xd9, 0xf6, 0x43, 0xe7, 0xe1, 0x3c, 0xa2, 0xe2, 0x70, ++ 0xe2, 0x6a, 0x99, 0xc5, 0xd6, 0xa2, 0xe3, 0x0b, 0xd4, 0x09, 0xac, 0x94, ++ 0xaf, 0xb7, 0xf0, 0xb3, 0x0c, 0x1e, 0xf5, 0x16, 0x4f, 0x53, 0x9a, 0xe3, ++ 0xcc, 0xe2, 0x0c, 0x4a, 0xb9, 0xe6, 0x06, 0xbb, 0xf7, 0x41, 0x43, 0x20, ++ 0x04, 0xee, 0x99, 0x2f, 0xd8, 0x9f, 0xda, 0x3f, 0xfd, 0x49, 0xb8, 0xc2, ++ 0xbd, 0xd9, 0xc5, 0x72, 0xfd, 0xe3, 0xce, 0x1c, 0xbc, 0xe4, 0x39, 0xac, ++ 0x2a, 0x99, 0xe9, 0xb4, 0x3e, 0x74, 0x10, 0xeb, 0xd5, 0x14, 0xcc, 0xdb, ++ 0xf1, 0x04, 0x63, 0x36, 0xfb, 0x1f, 0x2b, 0xe2, 0x73, 0xd4, 0xd8, 0x49, ++ 0x31, 0xa8, 0x55, 0xcc, 0xa7, 0x76, 0x36, 0x6e, 0x18, 0xdc, 0xb9, 0xb0, ++ 0x29, 0x99, 0xcf, 0x49, 0xbf, 0xf9, 0xdb, 0x7f, 0x24, 0x42, 0x02, 0xcb, ++ 0xc1, 0xaa, 0xcb, 0xba, 0x18, 0x85, 0x86, 0xc7, 0xf4, 0x1c, 0x62, 0x76, ++ 0xbc, 0x73, 0xfb, 0xe4, 0x15, 0xb8, 0xdd, 0x5d, 0xa6, 0x68, 0x39, 0xa5, ++ 0x3d, 0x33, 0xaf, 0xd5, 0x92, 0x4d, 0x48, 0xdb, 0x22, 0xc0, 0xdc, 0x49, ++ 0x5f, 0x7b, 0xa8, 0xd2, 0x62, 0x2d, 0xa7, 0x39, 0x93, 0x48, 0xe7, 0x6b, ++ 0x23, 0xba, 0xd4, 0xe0, 0xc1, 0x29, 0x55, 0xc4, 0x34, 0xe3, 0xac, 0x25, ++ 0xa7, 0x15, 0xad, 0xab, 0xb3, 0xb7, 0x25, 0xca, 0x37, 0x88, 0x40, 0x2e, ++ 0x47, 0x6e, 0x92, 0x20, 0x09, 0x2e, 0x5a, 0xec, 0xf2, 0xfb, 0xb3, 0xa0, ++ 0x16, 0xb6, 0x93, 0xf2, 0xf5, 0x8b, 0xfe, 0xaf, 0x25, 0xee, 0x2e, 0x98, ++ 0x6c, 0x0a, 0xfe, 0xae, 0x0b, 0x57, 0xf5, 0x9f, 0x3c, 0x80, 0xe9, 0x8b, ++ 0xaf, 0x92, 0x8a, 0xad, 0xe7, 0xa0, 0xe4, 0xe6, 0x0a, 0xa0, 0xc7, 0x83, ++ 0xb5, 0x48, 0x58, 0x5f, 0x55, 0x9e, 0x9b, 0x27, 0xcd, 0x31, 0x1f, 0x3e, ++ 0x50, 0x5a, 0x91, 0xad, 0x21, 0x1b, 0x97, 0x5b, 0xe8, 0xfa, 0x29, 0x8a, ++ 0xa4, 0x17, 0xe8, 0xab, 0x87, 0x02, 0xd6, 0x18, 0x8c, 0x9f, 0x65, 0xb7, ++ 0x2a, 0xfa, 0xde, 0x5f, 0x77, 0x30, 0x6c, 0x04, 0x22, 0xe6, 0x58, 0x26, ++ 0x14, 0x0d, 0x9c, 0x41, 0x0a, 0x82, 0x77, 0xdb, 0x40, 0xa1, 0x58, 0xac, ++ 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xb5, ++ 0x7e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, ++ 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, ++ 0x65, 0x64, 0x7e, 0x0a ++}; ++unsigned int hi_signed_2nd_len = 736; ++ ++unsigned char certificate_printable_der[] = { ++ 0x30, 0x82, 0x03, 0x39, 0x30, 0x82, 0x02, 0x21, 0xa0, 0x03, 0x02, 0x01, ++ 0x02, 0x02, 0x09, 0x00, 0xde, 0xf6, 0x22, 0xc4, 0xf2, 0xf1, 0x86, 0x02, ++ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, ++ 0x0b, 0x05, 0x00, 0x30, 0x2a, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, ++ 0x04, 0x03, 0x13, 0x1f, 0x52, 0x65, 0x64, 0x20, 0x48, 0x61, 0x74, 0x20, ++ 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x42, 0x6f, 0x6f, 0x74, 0x20, ++ 0x43, 0x41, 0x20, 0x32, 0x20, 0x28, 0x62, 0x65, 0x74, 0x61, 0x29, 0x30, ++ 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x31, 0x30, 0x33, 0x31, 0x31, 0x34, 0x31, ++ 0x39, 0x32, 0x33, 0x5a, 0x17, 0x0d, 0x33, 0x37, 0x31, 0x30, 0x32, 0x35, ++ 0x31, 0x34, 0x31, 0x39, 0x32, 0x33, 0x5a, 0x30, 0x2f, 0x31, 0x2d, 0x30, ++ 0x2b, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x24, 0x52, 0x65, 0x64, 0x20, ++ 0x48, 0x61, 0x74, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x42, ++ 0x6f, 0x6f, 0x74, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x20, ++ 0x33, 0x20, 0x28, 0x62, 0x65, 0x74, 0x61, 0x29, 0x30, 0x82, 0x01, 0x22, ++ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, ++ 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, ++ 0x02, 0x82, 0x01, 0x01, 0x00, 0xbd, 0xda, 0xa1, 0xed, 0x8d, 0x8e, 0x15, ++ 0x5c, 0xf8, 0x01, 0x77, 0x48, 0x4a, 0x60, 0x96, 0xf9, 0x27, 0xfa, 0xe2, ++ 0xb1, 0x69, 0x0f, 0x51, 0x19, 0x52, 0x7e, 0xc4, 0x34, 0x8e, 0xe1, 0x9b, ++ 0x9c, 0xa4, 0xb1, 0x5c, 0xd6, 0x81, 0x98, 0x78, 0xfe, 0xa9, 0xe5, 0x0b, ++ 0x00, 0xba, 0x9c, 0x64, 0x7e, 0xc7, 0xcc, 0x72, 0xb1, 0x73, 0x4b, 0x11, ++ 0x07, 0x52, 0xf0, 0x20, 0x96, 0x8b, 0x99, 0x39, 0xde, 0xdb, 0xfa, 0x3d, ++ 0x45, 0xe2, 0x98, 0x7b, 0x0c, 0x41, 0xe4, 0x0c, 0xb5, 0x5d, 0x92, 0x74, ++ 0x39, 0x96, 0xe1, 0x97, 0x97, 0xa1, 0xad, 0x2e, 0xcc, 0xd0, 0x1b, 0x4d, ++ 0x9d, 0xbd, 0x3e, 0xa9, 0x36, 0x8e, 0xcc, 0xc7, 0x5f, 0x6a, 0x7d, 0x39, ++ 0x5e, 0x0b, 0x8d, 0xca, 0xe4, 0x83, 0xe9, 0x3b, 0x5c, 0x86, 0x47, 0xd4, ++ 0xba, 0x7d, 0x98, 0x26, 0xa1, 0xf4, 0xe8, 0x90, 0x6b, 0x0f, 0xf1, 0x6b, ++ 0x8c, 0xe3, 0xa2, 0x80, 0x3c, 0x96, 0xf1, 0x0a, 0xb6, 0x66, 0xc0, 0x4b, ++ 0x61, 0xf7, 0x74, 0xcd, 0xd3, 0x7b, 0x8e, 0x5e, 0x39, 0xda, 0x99, 0x20, ++ 0x33, 0x93, 0xd3, 0xf0, 0x7f, 0xad, 0x35, 0xe9, 0x88, 0x8d, 0x9c, 0xbf, ++ 0x65, 0xf1, 0x47, 0x02, 0xf9, 0x7c, 0xed, 0x27, 0x5f, 0x4a, 0x65, 0x3c, ++ 0xcf, 0x5f, 0x0e, 0x88, 0x95, 0x74, 0xde, 0xfb, 0x9e, 0x2e, 0x91, 0x9b, ++ 0x45, 0x37, 0xc8, 0x85, 0xff, 0xe3, 0x41, 0x70, 0xfe, 0xd5, 0xef, 0x0e, ++ 0x82, 0x22, 0x08, 0xb7, 0x3b, 0x44, 0x3e, 0xdc, 0x5b, 0x7f, 0xba, 0xbf, ++ 0xe6, 0x58, 0x9d, 0x02, 0x6e, 0x75, 0xbf, 0x50, 0xec, 0xcf, 0x3f, 0xa5, ++ 0x91, 0x0a, 0xe2, 0x59, 0x2c, 0xc3, 0xe7, 0x05, 0x03, 0xe8, 0xf2, 0x6f, ++ 0x2a, 0x04, 0x68, 0x9a, 0x31, 0x32, 0x8f, 0x04, 0x35, 0xcd, 0x1f, 0x34, ++ 0xcc, 0x4f, 0x79, 0x5a, 0x99, 0x8d, 0x9d, 0x5c, 0xf5, 0x02, 0x03, 0x01, ++ 0x00, 0x01, 0xa3, 0x5d, 0x30, 0x5b, 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, ++ 0x13, 0x01, 0x01, 0xff, 0x04, 0x02, 0x30, 0x00, 0x30, 0x0b, 0x06, 0x03, ++ 0x55, 0x1d, 0x0f, 0x04, 0x04, 0x03, 0x02, 0x07, 0x80, 0x30, 0x1d, 0x06, ++ 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x65, 0xc5, 0xbe, 0xca, ++ 0xe6, 0x59, 0x6a, 0xfd, 0x6c, 0x71, 0xc4, 0xa7, 0x98, 0xc6, 0x25, 0x8d, ++ 0x7b, 0x67, 0x05, 0xd0, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, ++ 0x18, 0x30, 0x16, 0x80, 0x14, 0x81, 0xf8, 0xee, 0x47, 0x5c, 0x3e, 0xed, ++ 0xfb, 0xce, 0xa5, 0x84, 0xbe, 0xd7, 0xae, 0xdb, 0xd3, 0x7d, 0x64, 0xb3, ++ 0x2a, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, ++ 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x66, 0x1e, 0x3d, ++ 0x1d, 0x53, 0x33, 0xde, 0x4e, 0xc7, 0xc4, 0xf4, 0xdf, 0xda, 0x18, 0x19, ++ 0x8a, 0xa9, 0xff, 0xe2, 0x63, 0x2b, 0xbe, 0xf2, 0x61, 0x63, 0xe2, 0xf6, ++ 0xed, 0x47, 0x1a, 0x71, 0x02, 0xec, 0x2a, 0xef, 0x89, 0x77, 0xe3, 0xfd, ++ 0x86, 0x69, 0xf1, 0x3f, 0x0d, 0xf9, 0x6e, 0xf9, 0x3b, 0xad, 0x26, 0x47, ++ 0xb7, 0xf2, 0x0d, 0xad, 0x23, 0xa3, 0x67, 0x3b, 0xcb, 0x6d, 0x9e, 0x03, ++ 0x0f, 0xbc, 0x69, 0x73, 0x9f, 0xd4, 0xa5, 0x0f, 0x6f, 0xf8, 0xab, 0x4d, ++ 0x36, 0xd1, 0xe0, 0xe0, 0x5d, 0x20, 0x43, 0x90, 0xc4, 0x65, 0x61, 0x93, ++ 0xe2, 0x0f, 0x51, 0x59, 0x0a, 0xf7, 0x88, 0x70, 0x57, 0xb9, 0x04, 0xa9, ++ 0x32, 0x57, 0x9c, 0xb3, 0x57, 0x38, 0x8b, 0x8e, 0x46, 0xc8, 0x32, 0x6c, ++ 0xb4, 0xf3, 0x96, 0x7f, 0x4b, 0xf0, 0x88, 0xf9, 0x7f, 0xe2, 0x71, 0xe1, ++ 0x8b, 0xe2, 0x14, 0xf1, 0x4b, 0x25, 0x00, 0x48, 0x1c, 0x7e, 0xe5, 0x8d, ++ 0x65, 0x2d, 0xeb, 0x72, 0x4f, 0x92, 0x44, 0xf3, 0xe6, 0xe0, 0xd0, 0xdf, ++ 0x85, 0xa8, 0x13, 0x4a, 0xfb, 0x99, 0xca, 0x14, 0x2c, 0x97, 0x80, 0x93, ++ 0x27, 0xd3, 0x20, 0xf8, 0x6d, 0x29, 0x28, 0x2c, 0xb9, 0x77, 0xea, 0xb1, ++ 0x63, 0xbd, 0x7d, 0x53, 0xfd, 0x4a, 0x62, 0x64, 0x0b, 0x98, 0xa8, 0xae, ++ 0x11, 0xfc, 0x6e, 0x8d, 0x63, 0xd4, 0x15, 0x55, 0xc6, 0x4c, 0x74, 0xf5, ++ 0x5f, 0xa0, 0xb9, 0x2c, 0x2d, 0x9a, 0x7a, 0x87, 0x6e, 0xf0, 0x5e, 0x25, ++ 0xed, 0xfc, 0xd8, 0xc4, 0x34, 0x33, 0x32, 0xad, 0x01, 0xd4, 0x4b, 0x49, ++ 0x51, 0xc2, 0x07, 0x7f, 0x90, 0x6d, 0xea, 0xf5, 0x4c, 0x41, 0x71, 0x64, ++ 0xeb, 0x1f, 0x29, 0xa3, 0x1f, 0x64, 0xa2, 0x1e, 0x0e, 0x6f, 0xa1, 0x67, ++ 0x99, 0x8d, 0x98, 0x1c, 0xb8, 0x53, 0x9d, 0x30, 0x1d, 0xae, 0x32, 0x56, ++ 0xd2 ++}; ++unsigned int certificate_printable_der_len = 829; diff --git a/0179-Don-t-add-a-class-option-to-menu-entries-generated-f.patch b/0179-Don-t-add-a-class-option-to-menu-entries-generated-f.patch deleted file mode 100644 index 26ad736..0000000 --- a/0179-Don-t-add-a-class-option-to-menu-entries-generated-f.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 4207465e5a4866df6afde297e356057454c3d946 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Fri, 4 Oct 2019 16:43:05 +0200 -Subject: [PATCH 179/220] Don't add a class option to menu entries generated - for ppc64le - -For ppc64le a grub config file with menuentry commands is still generated -even when BLS support is enabled. That's because BLS support was added to -Petitboot 1.8.0 and any previous version won't be able to parse BLS files. - -To make the BLS snippets the source of truth, these are used to generate -the menuentry commands in the grub config file. - -And to keep it consistent across all ppc64le machines regardless of the -firmware used, the grub config file is also generated for machines with -OF that use grub2 and would have BLS support. - -The BLS snippets created by the kernel package have fields that are used -to specify the generated menuentry command users and class options. These -fields are not present in BLS snippets created by OSTree though, so the -script generating the menuentry commands will add options with an empty -argument which will lead to grub failing to parse them. - -We could check if the field is defined before attempting to add those, but -since the grub2 blscfg module also supports setting these to variables, it -could lead to an empty argument even if was defined in the BLS snippet if -the variable doesn't exist. - -So to make more robust, just don't add a class to the menuentry commands -generated by the script. It's better to not have a class for the menuentry -than grub2 failing to parse the command and not populating the boot menu. - -Resolves: rhbz#1758225 - -Signed-off-by: Javier Martinez Canillas ---- - util/grub.d/10_linux_bls.in | 10 +--------- - 1 file changed, 1 insertion(+), 9 deletions(-) - -diff --git a/util/grub.d/10_linux_bls.in b/util/grub.d/10_linux_bls.in -index 1b75364..68fbedf 100644 ---- a/util/grub.d/10_linux_bls.in -+++ b/util/grub.d/10_linux_bls.in -@@ -127,9 +127,7 @@ read_config() - initrd="" - options="" - linux="" -- grub_users="" - grub_arg="" -- grub_class="" - - while read -r line - do -@@ -148,15 +146,9 @@ read_config() - "options") - options=${value} - ;; -- "grub_users") -- grub_users=${value} -- ;; - "grub_arg") - grub_arg=${value} - ;; -- "grub_class") -- grub_class=${value} -- ;; - esac - done < ${config_file} - } -@@ -180,7 +172,7 @@ populate_menu() - for bls in "${files[@]}" ; do - read_config "${blsdir}/${bls}.conf" - -- menu="${menu}menuentry '${title}' --class ${grub_class} ${grub_arg} --id=${bls} {\n" -+ menu="${menu}menuentry '${title}' ${grub_arg} --id=${bls} {\n" - menu="${menu}\t linux ${linux} ${options}\n" - if [ -n "${initrd}" ] ; then - menu="${menu}\t initrd ${boot_prefix}${initrd}\n" --- -1.8.3.1 - diff --git a/0179-appended-signatures-documentation.patch b/0179-appended-signatures-documentation.patch new file mode 100644 index 0000000..864cfa3 --- /dev/null +++ b/0179-appended-signatures-documentation.patch @@ -0,0 +1,341 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Axtens +Date: Thu, 1 Oct 2020 13:02:09 +1000 +Subject: [PATCH] appended signatures: documentation + +This explains how appended signatures can be used to form part of +a secure boot chain, and documents the commands and variables +introduced. + +Signed-off-by: Daniel Axtens +--- + docs/grub.texi | 199 ++++++++++++++++++++++++++++++++++++++++++++++++++++----- + 1 file changed, 182 insertions(+), 17 deletions(-) + +diff --git a/docs/grub.texi b/docs/grub.texi +index afbde7c1f7b..4816be85611 100644 +--- a/docs/grub.texi ++++ b/docs/grub.texi +@@ -3214,6 +3214,7 @@ These variables have special meaning to GRUB. + + @menu + * biosnum:: ++* check_appended_signatures:: + * check_signatures:: + * chosen:: + * cmdpath:: +@@ -3273,11 +3274,18 @@ For an alternative approach which also changes BIOS drive mappings for the + chain-loaded system, @pxref{drivemap}. + + ++@node check_appended_signatures ++@subsection check_appended_signatures ++ ++This variable controls whether GRUB enforces appended signature validation on ++certain loaded files. @xref{Using appended signatures}. ++ ++ + @node check_signatures + @subsection check_signatures + +-This variable controls whether GRUB enforces digital signature +-validation on loaded files. @xref{Using digital signatures}. ++This variable controls whether GRUB enforces GPG-style digital signature ++validation on loaded files. @xref{Using GPG-style digital signatures}. + + @node chosen + @subsection chosen +@@ -3994,6 +4002,7 @@ you forget a command, you can run the command @command{help} + * date:: Display or set current date and time + * devicetree:: Load a device tree blob + * distrust:: Remove a pubkey from trusted keys ++* distrust_certificate:: Remove a certificate from the list of trusted certificates + * drivemap:: Map a drive to another + * echo:: Display a line of text + * eval:: Evaluate agruments as GRUB commands +@@ -4010,6 +4019,7 @@ you forget a command, you can run the command @command{help} + * keystatus:: Check key modifier status + * linux:: Load a Linux kernel + * linux16:: Load a Linux kernel (16-bit mode) ++* list_certificates:: List trusted certificates + * list_env:: List variables in environment block + * list_trusted:: List trusted public keys + * load_env:: Load variables from environment block +@@ -4047,8 +4057,10 @@ you forget a command, you can run the command @command{help} + * test:: Check file types and compare values + * true:: Do nothing, successfully + * trust:: Add public key to list of trusted keys ++* trust_certificate:: Add an x509 certificate to the list of trusted certificates + * unset:: Unset an environment variable + @comment * vbeinfo:: List available video modes ++* verify_appended:: Verify appended digital signature + * verify_detached:: Verify detached digital signature + * videoinfo:: List available video modes + @comment * xen_*:: Xen boot commands for AArch64 +@@ -4376,9 +4388,28 @@ These keys are used to validate signatures when environment variable + @code{check_signatures} is set to @code{enforce} + (@pxref{check_signatures}), and by some invocations of + @command{verify_detached} (@pxref{verify_detached}). @xref{Using +-digital signatures}, for more information. ++GPG-style digital signatures}, for more information. + @end deffn + ++ ++@node distrust_certificate ++@subsection distrust_certificate ++ ++@deffn Command distrust_certificate cert_number ++Remove the x509 certificate numbered @var{cert_number} from GRUB's keyring of ++trusted x509 certificates for verifying appended signatures. ++ ++@var{cert_number} is the certificate number as listed by ++@command{list_certificates} (@pxref{list_certificates}). ++ ++These certificates are used to validate appended signatures when environment ++variable @code{check_appended_signatures} is set to @code{enforce} or ++@code{forced} (@pxref{check_appended_signatures}), and by ++@command{verify_appended} (@pxref{verify_appended}). See ++@xref{Using appended signatures} for more information. ++@end deffn ++ ++ + @node drivemap + @subsection drivemap + +@@ -4636,6 +4667,21 @@ This command is only available on x86 systems. + @end deffn + + ++@node list_certificates ++@subsection list_certificates ++ ++@deffn Command list_certificates ++List all x509 certificates trusted by GRUB for validating appended signatures. ++The output is a numbered list of certificates, showing the certificate's serial ++number and Common Name. ++ ++The certificate number can be used as an argument to ++@command{distrust_certificate} (@pxref{distrust_certificate}). ++ ++See @xref{Using appended signatures} for more information. ++@end deffn ++ ++ + @node list_env + @subsection list_env + +@@ -4655,7 +4701,7 @@ The output is in GPG's v4 key fingerprint format (i.e., the output of + @code{gpg --fingerprint}). The least significant four bytes (last + eight hexadecimal digits) can be used as an argument to + @command{distrust} (@pxref{distrust}). +-@xref{Using digital signatures}, for more information about uses for ++@xref{Using GPG-style digital signatures}, for more information about uses for + these keys. + @end deffn + +@@ -4690,8 +4736,13 @@ When used with care, @option{--skip-sig} and the whitelist enable an + administrator to configure a system to boot only signed + configurations, but to allow the user to select from among multiple + configurations, and to enable ``one-shot'' boot attempts and +-``savedefault'' behavior. @xref{Using digital signatures}, for more ++``savedefault'' behavior. @xref{Using GPG-style digital signatures}, for more + information. ++ ++Extra care should be taken when combining this command with appended signatures ++(@pxref{Using appended signatures}), as this file is not validated by an ++appended signature and could set @code{check_appended_signatures=no} if GRUB is ++not in @pxref{Lockdown} mode. + @end deffn + + +@@ -4987,7 +5038,7 @@ read. It is possible to modify a digitally signed environment block + file from within GRUB using this command, such that its signature will + no longer be valid on subsequent boots. Care should be taken in such + advanced configurations to avoid rendering the system +-unbootable. @xref{Using digital signatures}, for more information. ++unbootable. @xref{Using GPG-style digital signatures}, for more information. + @end deffn + + +@@ -5387,11 +5438,32 @@ signatures when environment variable @code{check_signatures} is set to + must itself be properly signed. The @option{--skip-sig} option can be + used to disable signature-checking when reading @var{pubkey_file} + itself. It is expected that @option{--skip-sig} is useful for testing +-and manual booting. @xref{Using digital signatures}, for more ++and manual booting. @xref{Using GPG-style digital signatures}, for more + information. + @end deffn + + ++@node trust_certificate ++@subsection trust_certificate ++ ++@deffn Command trust_certificate x509_certificate ++Read an DER-formatted x509 certificate from the file @var{x509_certificate} ++and add it to GRUB's internal list of trusted x509 certificates. These ++certificates are used to validate appended signatures when the environment ++variable @code{check_appended_signatures} is set to @code{enforce} or ++@code{forced}. ++ ++Note that if @code{check_appended_signatures} is set to @code{enforce} or ++@code{forced} when @command{trust_certificate} is executed, then ++@var{x509_certificate} must itself bear an appended signature. (It is not ++sufficient that @var{x509_certificate} be signed by a trusted certificate ++according to the x509 rules: grub does not include support for validating ++signatures within x509 certificates themselves.) ++ ++See @xref{Using appended signatures} for more information. ++@end deffn ++ ++ + @node unset + @subsection unset + +@@ -5410,6 +5482,18 @@ only on PC BIOS platforms. + @end deffn + @end ignore + ++@node verify_appended ++@subsection verify_appended ++ ++@deffn Command verify_appended file ++Verifies an appended signature on @var{file} against the trusted certificates ++known to GRUB (See @pxref{list_certificates}, @pxref{trust_certificate}, and ++@pxref{distrust_certificate}). ++ ++Exit code @code{$?} is set to 0 if the signature validates ++successfully. If validation fails, it is set to a non-zero value. ++See @xref{Using appended signatures}, for more information. ++@end deffn + + @node verify_detached + @subsection verify_detached +@@ -5428,7 +5512,7 @@ tried. + + Exit code @code{$?} is set to 0 if the signature validates + successfully. If validation fails, it is set to a non-zero value. +-@xref{Using digital signatures}, for more information. ++@xref{Using GPG-style digital signatures}, for more information. + @end deffn + + @node videoinfo +@@ -5811,13 +5895,14 @@ environment variables and commands are listed in the same order. + @chapter Security + + @menu +-* Authentication and authorisation:: Users and access control +-* Using digital signatures:: Booting digitally signed code +-* UEFI secure boot and shim:: Booting digitally signed PE files +-* Secure Boot Advanced Targeting:: Embedded information for generation number based revocation +-* Measured Boot:: Measuring boot components +-* Lockdown:: Lockdown when booting on a secure setup +-* Signing GRUB itself:: Ensuring the integrity of the GRUB core image ++* Authentication and authorisation:: Users and access control ++* Using GPG-style digital signatures:: Booting digitally signed code ++* Using appended signatures:: An alternative approach to booting digitally signed code ++* UEFI secure boot and shim:: Booting digitally signed PE files ++* Secure Boot Advanced Targeting:: Embedded information for generation number based revocation ++* Measured Boot:: Measuring boot components ++* Lockdown:: Lockdown when booting on a secure setup ++* Signing GRUB itself:: Ensuring the integrity of the GRUB core image + @end menu + + @node Authentication and authorisation +@@ -5891,8 +5976,8 @@ generating configuration files with authentication. You can use + adding @kbd{set superusers=} and @kbd{password} or @kbd{password_pbkdf2} + commands. + +-@node Using digital signatures +-@section Using digital signatures in GRUB ++@node Using GPG-style digital signatures ++@section Using GPG-style digital signatures in GRUB + + GRUB's @file{core.img} can optionally provide enforcement that all files + subsequently read from disk are covered by a valid digital signature. +@@ -5985,6 +6070,86 @@ or BIOS) configuration to cause the machine to boot from a different + (attacker-controlled) device. GRUB is at best only one link in a + secure boot chain. + ++@node Using appended signatures ++@section Using appended signatures in GRUB ++ ++GRUB supports verifying Linux-style 'appended signatures' for secure boot. ++Appended signatures are PKCS#7 messages containing a signature over the ++contents of a file, plus some metadata, appended to the end of a file. A file ++with an appended signature ends with the magic string: ++ ++@example ++~Module signature appended~\n ++@end example ++ ++where @code{\n} represents the line-feed character, @code{0x0a}. ++ ++Certificates can be managed at boot time using the @pxref{trust_certificate}, ++@pxref{distrust_certificate} and @pxref{list_certificates} commands. ++Certificates can also be built in to the core image using the @code{--x509} ++parameter to @command{grub-install} or @command{grub-mkimage}. ++ ++A file can be explictly verified using the @pxref{verify_appended} command. ++ ++Only signatures made with the SHA-256 or SHA-512 hash algorithm are supported, ++and only RSA signatures are supported. ++ ++A file can be signed with the @command{sign-file} utility supplied with the ++Linux kernel source. For example, if you have @code{signing.key} as the private ++key and @code{certificate.der} as the x509 certificate containing the public key: ++ ++@example ++sign-file SHA256 signing.key certificate.der vmlinux vmlinux.signed ++@end example ++ ++Enforcement of signature verification is controlled by the ++@code{check_appended_signatures} variable. ++ ++@itemize ++@item @samp{no}: no verification is performed. This is the default when GRUB ++ is not in @pxref{Lockdown} mode. ++@item @samp{enforce}: verification is performed. Verification can be disabled ++ by setting the variable back to @samp{no}. ++@item @samp{forced}: verification is performed and cannot be disabled. This is ++ set when GRUB is in Lockdown when the appendedsig module is loaded. ++@end itemize ++ ++Unlike GPG-style signatures, not all files loaded by GRUB are required to be ++signed. Once verification is turned on, the following file types will have ++appended signatures verified: ++ ++@itemize ++@item Linux kernels ++@item GRUB modules, except those built into the core image ++@item Any new certificate files to be trusted ++@end itemize ++ ++ACPI tables and Device Tree images will not be checked for appended signatures ++but must be verified by another mechanism such as GPG-style signatures before ++they will be loaded. ++ ++Unless lockdown mode is enabled, signature checking does @strong{not} ++stop an attacker with console access from dropping manually to the GRUB ++console and executing: ++ ++@example ++set check_appended_signatures=no ++@end example ++ ++Refer to the section on password-protecting GRUB (@pxref{Authentication ++and authorisation}) for more information on preventing this. ++ ++Additionally, unless lockdown mode is enabled: ++ ++@itemize ++@item Special care must be taken around the @command{loadenv} command, which ++ can be used to turn off @code{check_appended_signature}. ++ ++@item If the grub configuration file is loaded from the disk, anyone who can ++ modify the file on disk can turn off @code{check_appended_signature}. ++ Consider embedding the configuration into the core grub image. ++@end itemize ++ + @node UEFI secure boot and shim + @section UEFI secure boot and shim support + diff --git a/0180-10_linux.in-Also-use-GRUB_CMDLINE_LINUX_DEFAULT-to-s.patch b/0180-10_linux.in-Also-use-GRUB_CMDLINE_LINUX_DEFAULT-to-s.patch deleted file mode 100644 index d40d7d1..0000000 --- a/0180-10_linux.in-Also-use-GRUB_CMDLINE_LINUX_DEFAULT-to-s.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 867888c0e7570ed08c47ce546ccdc61b63e2a449 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Tue, 15 Oct 2019 09:08:25 +0200 -Subject: [PATCH 180/220] 10_linux.in: Also use GRUB_CMDLINE_LINUX_DEFAULT to - set kernelopts - -The GRUB documentation mentions that there are two variables to set the -linux kernel cmdline: GRUB_CMDLINE_LINUX and GRUB_CMDLINE_LINUX_DEFAULT. - -The former is added to all the menuentry commands and the latter is not -added to the recovery mode menu entries. But the blscfg module doesn't -populate recovery entries from the BLS snippets, so the values set in the -GRUB_CMDLINE_LINUX_DEFAULT variable should also be included in kernelopts. - -This is needed because the GRUB_CMDLINE_LINUX_DEFAULT option is mentioned -in the GRUB documentation so users assume that the kernel cmdline options -can be changed by setting this option and running the grub2-mkconfig tool. - -Signed-off-by: Javier Martinez Canillas ---- - util/grub.d/10_linux.in | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 1520b7e..0471464 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -118,7 +118,7 @@ if [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then - populate_header_warn - - cat << EOF --set default_kernelopts="root=${LINUX_ROOT_DEVICE} ro ${GRUB_CMDLINE_LINUX}" -+set default_kernelopts="root=${LINUX_ROOT_DEVICE} ro ${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" - - insmod blscfg - blscfg -@@ -134,7 +134,7 @@ EOF - fi - fi - -- ${grub_editenv} - set kernelopts="root=${LINUX_ROOT_DEVICE} ro ${GRUB_CMDLINE_LINUX}" -+ ${grub_editenv} - set kernelopts="root=${LINUX_ROOT_DEVICE} ro ${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" - if [ -n "${GRUB_EARLY_INITRD_LINUX_CUSTOM}" ]; then - ${grub_editenv} - set early_initrd="${GRUB_EARLY_INITRD_LINUX_CUSTOM}" - fi --- -1.8.3.1 - diff --git a/0180-ieee1275-enter-lockdown-based-on-ibm-secure-boot.patch b/0180-ieee1275-enter-lockdown-based-on-ibm-secure-boot.patch new file mode 100644 index 0000000..40c3b3e --- /dev/null +++ b/0180-ieee1275-enter-lockdown-based-on-ibm-secure-boot.patch @@ -0,0 +1,109 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Axtens +Date: Mon, 28 Sep 2020 11:11:17 +1000 +Subject: [PATCH] ieee1275: enter lockdown based on /ibm,secure-boot + +If the 'ibm,secure-boot' property of the root node is 2 or greater, +enter lockdown. + +Signed-off-by: Daniel Axtens +--- + grub-core/Makefile.core.def | 1 + + grub-core/kern/ieee1275/init.c | 27 +++++++++++++++++++++++++++ + include/grub/lockdown.h | 3 ++- + docs/grub.texi | 4 ++-- + 4 files changed, 32 insertions(+), 3 deletions(-) + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 6bddc841b85..3f3459b2c70 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -323,6 +323,7 @@ kernel = { + powerpc_ieee1275 = kern/powerpc/cache.S; + powerpc_ieee1275 = kern/powerpc/dl.c; + powerpc_ieee1275 = kern/powerpc/compiler-rt.S; ++ powerpc_ieee1275 = kern/lockdown.c; + + sparc64_ieee1275 = kern/sparc64/cache.S; + sparc64_ieee1275 = kern/sparc64/dl.c; +diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c +index 937c1bc44cb..fc7d9712729 100644 +--- a/grub-core/kern/ieee1275/init.c ++++ b/grub-core/kern/ieee1275/init.c +@@ -44,6 +44,7 @@ + #ifdef __sparc__ + #include + #endif ++#include + + /* The minimal heap size we can live with. */ + #define HEAP_MIN_SIZE (unsigned long) (2 * 1024 * 1024) +@@ -271,6 +272,30 @@ grub_parse_cmdline (void) + } + } + ++static void ++grub_get_ieee1275_secure_boot (void) ++{ ++ grub_ieee1275_phandle_t root; ++ int rc; ++ grub_uint32_t is_sb; ++ ++ grub_ieee1275_finddevice ("/", &root); ++ ++ rc = grub_ieee1275_get_integer_property (root, "ibm,secure-boot", &is_sb, ++ sizeof (is_sb), 0); ++ ++ /* ibm,secure-boot: ++ * 0 - disabled ++ * 1 - audit ++ * 2 - enforce ++ * 3 - enforce + OS-specific behaviour ++ * ++ * We only support enforce. ++ */ ++ if (rc >= 0 && is_sb >= 2) ++ grub_lockdown (); ++} ++ + grub_addr_t grub_modbase; + + void +@@ -296,6 +321,8 @@ grub_machine_init (void) + #else + grub_install_get_time_ms (grub_rtc_get_time_ms); + #endif ++ ++ grub_get_ieee1275_secure_boot (); + } + + void +diff --git a/include/grub/lockdown.h b/include/grub/lockdown.h +index 40531fa823b..ebfee4bf06e 100644 +--- a/include/grub/lockdown.h ++++ b/include/grub/lockdown.h +@@ -24,7 +24,8 @@ + #define GRUB_LOCKDOWN_DISABLED 0 + #define GRUB_LOCKDOWN_ENABLED 1 + +-#ifdef GRUB_MACHINE_EFI ++#if defined(GRUB_MACHINE_EFI) || \ ++ (defined(__powerpc__) && defined(GRUB_MACHINE_IEEE1275)) + extern void + EXPORT_FUNC (grub_lockdown) (void); + extern int +diff --git a/docs/grub.texi b/docs/grub.texi +index 4816be85611..a4da9c2a1b9 100644 +--- a/docs/grub.texi ++++ b/docs/grub.texi +@@ -6227,8 +6227,8 @@ Measured boot is currently only supported on EFI platforms. + @section Lockdown when booting on a secure setup + + The GRUB can be locked down when booted on a secure boot environment, for example +-if the UEFI secure boot is enabled. On a locked down configuration, the GRUB will +-be restricted and some operations/commands cannot be executed. ++if UEFI or Power secure boot is enabled. On a locked down configuration, the ++GRUB will be restricted and some operations/commands cannot be executed. + + The @samp{lockdown} variable is set to @samp{y} when the GRUB is locked down. + Otherwise it does not exit. diff --git a/0181-blscfg-Don-t-hardcode-an-env-var-as-fallback-for-the.patch b/0181-blscfg-Don-t-hardcode-an-env-var-as-fallback-for-the.patch deleted file mode 100644 index bce20a1..0000000 --- a/0181-blscfg-Don-t-hardcode-an-env-var-as-fallback-for-the.patch +++ /dev/null @@ -1,66 +0,0 @@ -From aefccfaac8af45dba1b9f08ecbf95c7343d8b4b6 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Mon, 14 Oct 2019 17:37:26 +0200 -Subject: [PATCH 181/220] blscfg: Don't hardcode an env var as fallback for the - BLS options field - -If the BLS fragments don't have an options field or if this was set to an -environment variable that was not defined in the grubenv file, the blscfg -module searches for an default_kernelopts variable that is defined in the -grub.cfg file. - -But the blscfg module shouldn't hardcode fallbacks variables and instead -this logic should be handled in the GRUB config file itself. - -Also, add a comment explaining where the kernelopts variable is supposed -to be defined and what is the process for the user to change its value. - -Resolves: rhbz#1710483 - -Signed-off-by: Javier Martinez Canillas ---- - grub-core/commands/blscfg.c | 4 ---- - util/grub.d/10_linux.in | 12 +++++++++++- - 2 files changed, 11 insertions(+), 5 deletions(-) - -diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 1ec8987..471975f 100644 ---- a/grub-core/commands/blscfg.c -+++ b/grub-core/commands/blscfg.c -@@ -733,10 +733,6 @@ static void create_entry (struct bls_entry *entry) - - title = bls_get_val (entry, "title", NULL); - options = expand_val (bls_get_val (entry, "options", NULL)); -- -- if (!options) -- options = expand_val (grub_env_get("default_kernelopts")); -- - initrds = bls_make_list (entry, "initrd", NULL); - - devicetree = expand_val (bls_get_val (entry, "devicetree", NULL)); -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 0471464..21a6915 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -118,7 +118,17 @@ if [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then - populate_header_warn - - cat << EOF --set default_kernelopts="root=${LINUX_ROOT_DEVICE} ro ${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" -+# The kernelopts variable should be defined in the grubenv file. But to ensure that menu -+# entries populated from BootLoaderSpec files that use this variable work correctly even -+# without a grubenv file, define a fallback kernelopts variable if this has not been set. -+# -+# The kernelopts variable in the grubenv file can be modified using the grubby tool or by -+# executing the grub2-mkconfig tool. For the latter, the values of the GRUB_CMDLINE_LINUX -+# and GRUB_CMDLINE_LINUX_DEFAULT options from /etc/default/grub file are used to set both -+# the kernelopts variable in the grubenv file and the fallback kernelopts variable. -+if [ -z "\${kernelopts}" ]; then -+ set kernelopts="root=${LINUX_ROOT_DEVICE} ro ${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" -+fi - - insmod blscfg - blscfg --- -1.8.3.1 - diff --git a/0181-ieee1275-drop-HEAP_MAX_ADDR-HEAP_MIN_SIZE.patch b/0181-ieee1275-drop-HEAP_MAX_ADDR-HEAP_MIN_SIZE.patch new file mode 100644 index 0000000..52fa9d2 --- /dev/null +++ b/0181-ieee1275-drop-HEAP_MAX_ADDR-HEAP_MIN_SIZE.patch @@ -0,0 +1,75 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Axtens +Date: Wed, 14 Apr 2021 20:10:23 +1000 +Subject: [PATCH] ieee1275: drop HEAP_MAX_ADDR, HEAP_MIN_SIZE + +HEAP_MAX_ADDR is confusing. Currently it is set to 32MB, except +on ieee1275 on x86, where it is 64MB. + +There is a comment which purports to explain it: + +/* If possible, we will avoid claiming heap above this address, because it + seems to cause relocation problems with OSes that link at 4 MiB */ + +This doesn't make a lot of sense when the constants are well above 4MB +already. It was not always this way. Prior to +commit 7b5d0fe4440c ("Increase heap limit") in 2010, HEAP_MAX_SIZE and +HEAP_MAX_ADDR were indeed 4MB. However, when the constants were increased +the comment was left unchanged. + +It's been over a decade. It doesn't seem like we have problems with +claims over 4MB on powerpc or x86 ieee1275. (sparc does things completely +differently and never used the constant.) + +Drop the constant and the check. + +The only use of HEAP_MIN_SIZE was to potentially override the +HEAP_MAX_ADDR check. It is now unused. Remove it. + +Signed-off-by: Daniel Axtens +--- + grub-core/kern/ieee1275/init.c | 17 ----------------- + 1 file changed, 17 deletions(-) + +diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c +index fc7d9712729..0dcd114ce54 100644 +--- a/grub-core/kern/ieee1275/init.c ++++ b/grub-core/kern/ieee1275/init.c +@@ -46,9 +46,6 @@ + #endif + #include + +-/* The minimal heap size we can live with. */ +-#define HEAP_MIN_SIZE (unsigned long) (2 * 1024 * 1024) +- + /* The maximum heap size we're going to claim */ + #ifdef __i386__ + #define HEAP_MAX_SIZE (unsigned long) (64 * 1024 * 1024) +@@ -56,14 +53,6 @@ + #define HEAP_MAX_SIZE (unsigned long) (32 * 1024 * 1024) + #endif + +-/* If possible, we will avoid claiming heap above this address, because it +- seems to cause relocation problems with OSes that link at 4 MiB */ +-#ifdef __i386__ +-#define HEAP_MAX_ADDR (unsigned long) (64 * 1024 * 1024) +-#else +-#define HEAP_MAX_ADDR (unsigned long) (32 * 1024 * 1024) +-#endif +- + extern char _end[]; + + #ifdef __sparc__ +@@ -185,12 +174,6 @@ heap_init (grub_uint64_t addr, grub_uint64_t len, grub_memory_type_t type, + if (*total + len > HEAP_MAX_SIZE) + len = HEAP_MAX_SIZE - *total; + +- /* Avoid claiming anything above HEAP_MAX_ADDR, if possible. */ +- if ((addr < HEAP_MAX_ADDR) && /* if it's too late, don't bother */ +- (addr + len > HEAP_MAX_ADDR) && /* if it wasn't available anyway, don't bother */ +- (*total + (HEAP_MAX_ADDR - addr) > HEAP_MIN_SIZE)) /* only limit ourselves when we can afford to */ +- len = HEAP_MAX_ADDR - addr; +- + /* In theory, firmware should already prevent this from happening by not + listing our own image in /memory/available. The check below is intended + as a safeguard in case that doesn't happen. However, it doesn't protect diff --git a/0182-ieee1275-claim-more-memory.patch b/0182-ieee1275-claim-more-memory.patch new file mode 100644 index 0000000..001a9df --- /dev/null +++ b/0182-ieee1275-claim-more-memory.patch @@ -0,0 +1,252 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Axtens +Date: Wed, 15 Apr 2020 23:28:29 +1000 +Subject: [PATCH] ieee1275: claim more memory + +On powerpc-ieee1275, we are running out of memory trying to verify +anything. This is because: + + - we have to load an entire file into memory to verify it. This is + extremely difficult to change with appended signatures. + - We only have 32MB of heap. + - Distro kernels are now often around 30MB. + +So we want to claim more memory from OpenFirmware for our heap. + +There are some complications: + + - The grub mm code isn't the only thing that will make claims on + memory from OpenFirmware: + + * PFW/SLOF will have claimed some for their own use. + + * The ieee1275 loader will try to find other bits of memory that we + haven't claimed to place the kernel and initrd when we go to boot. + + * Once we load Linux, it will also try to claim memory. It claims + memory without any reference to /memory/available, it just starts + at min(top of RMO, 768MB) and works down. So we need to avoid this + area. See arch/powerpc/kernel/prom_init.c as of v5.11. + + - The smallest amount of memory a ppc64 KVM guest can have is 256MB. + It doesn't work with distro kernels but can work with custom kernels. + We should maintain support for that. (ppc32 can boot with even less, + and we shouldn't break that either.) + + - Even if a VM has more memory, the memory OpenFirmware makes available + as Real Memory Area can be restricted. A freshly created LPAR on a + PowerVM machine is likely to have only 256MB available to OpenFirmware + even if it has many gigabytes of memory allocated. + +EFI systems will attempt to allocate 1/4th of the available memory, +clamped to between 1M and 1600M. That seems like a good sort of +approach, we just need to figure out if 1/4 is the right fraction +for us. + +We don't know in advance how big the kernel and initrd are going to be, +which makes figuring out how much memory we can take a bit tricky. + +To figure out how much memory we should leave unused, I looked at: + + - an Ubuntu 20.04.1 ppc64le pseries KVM guest: + vmlinux: ~30MB + initrd: ~50MB + + - a RHEL8.2 ppc64le pseries KVM guest: + vmlinux: ~30MB + initrd: ~30MB + +Ubuntu VMs struggle to boot with just 256MB under SLOF. +RHEL likewise has a higher minimum supported memory figure. +So lets first consider a distro kernel and 512MB of addressible memory. +(This is the default case for anything booting under PFW.) Say we lose +131MB to PFW (based on some tests). This leaves us 381MB. 1/4 of 381MB +is ~95MB. That should be enough to verify a 30MB vmlinux and should +leave plenty of space to load Linux and the initrd. + +If we consider 256MB of RMA under PFW, we have just 125MB remaining. 1/4 +of that is a smidge under 32MB, which gives us very poor odds of verifying +a distro-sized kernel. However, if we need 80MB just to put the kernel +and initrd in memory, we can't claim any more than 45MB anyway. So 1/4 +will do. We'll come back to this later. + +grub is always built as a 32-bit binary, even if it's loading a ppc64 +kernel. So we can't address memory beyond 4GB. This gives a natural cap +of 1GB for powerpc-ieee1275. + +Also apply this 1/4 approach to i386-ieee1275, but keep the 32MB cap. + +make check still works for both i386 and powerpc and I've booted +powerpc grub with this change under SLOF and PFW. + +Signed-off-by: Daniel Axtens +--- + grub-core/kern/ieee1275/init.c | 81 +++++++++++++++++++++++++++++++++--------- + docs/grub-dev.texi | 6 ++-- + 2 files changed, 69 insertions(+), 18 deletions(-) + +diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c +index 0dcd114ce54..c61d91a0285 100644 +--- a/grub-core/kern/ieee1275/init.c ++++ b/grub-core/kern/ieee1275/init.c +@@ -46,11 +46,12 @@ + #endif + #include + +-/* The maximum heap size we're going to claim */ ++/* The maximum heap size we're going to claim. Not used by sparc. ++ We allocate 1/4 of the available memory under 4G, up to this limit. */ + #ifdef __i386__ + #define HEAP_MAX_SIZE (unsigned long) (64 * 1024 * 1024) +-#else +-#define HEAP_MAX_SIZE (unsigned long) (32 * 1024 * 1024) ++#else // __powerpc__ ++#define HEAP_MAX_SIZE (unsigned long) (1 * 1024 * 1024 * 1024) + #endif + + extern char _end[]; +@@ -147,16 +148,45 @@ grub_claim_heap (void) + + GRUB_KERNEL_MACHINE_STACK_SIZE), 0x200000); + } + #else +-/* Helper for grub_claim_heap. */ ++/* Helper for grub_claim_heap on powerpc. */ ++static int ++heap_size (grub_uint64_t addr, grub_uint64_t len, grub_memory_type_t type, ++ void *data) ++{ ++ grub_uint32_t total = *(grub_uint32_t *)data; ++ ++ if (type != GRUB_MEMORY_AVAILABLE) ++ return 0; ++ ++ /* Do not consider memory beyond 4GB */ ++ if (addr > 0xffffffffUL) ++ return 0; ++ ++ if (addr + len > 0xffffffffUL) ++ len = 0xffffffffUL - addr; ++ ++ total += len; ++ *(grub_uint32_t *)data = total; ++ ++ return 0; ++} ++ + static int + heap_init (grub_uint64_t addr, grub_uint64_t len, grub_memory_type_t type, + void *data) + { +- unsigned long *total = data; ++ grub_uint32_t total = *(grub_uint32_t *)data; + + if (type != GRUB_MEMORY_AVAILABLE) + return 0; + ++ /* Do not consider memory beyond 4GB */ ++ if (addr > 0xffffffffUL) ++ return 0; ++ ++ if (addr + len > 0xffffffffUL) ++ len = 0xffffffffUL - addr; ++ + if (grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_NO_PRE1_5M_CLAIM)) + { + if (addr + len <= 0x180000) +@@ -170,10 +200,6 @@ heap_init (grub_uint64_t addr, grub_uint64_t len, grub_memory_type_t type, + } + len -= 1; /* Required for some firmware. */ + +- /* Never exceed HEAP_MAX_SIZE */ +- if (*total + len > HEAP_MAX_SIZE) +- len = HEAP_MAX_SIZE - *total; +- + /* In theory, firmware should already prevent this from happening by not + listing our own image in /memory/available. The check below is intended + as a safeguard in case that doesn't happen. However, it doesn't protect +@@ -185,6 +211,18 @@ heap_init (grub_uint64_t addr, grub_uint64_t len, grub_memory_type_t type, + len = 0; + } + ++ /* If this block contains 0x30000000 (768MB), do not claim below that. ++ Linux likes to claim memory at min(RMO top, 768MB) and works down ++ without reference to /memory/available. */ ++ if ((addr < 0x30000000) && ((addr + len) > 0x30000000)) ++ { ++ len = len - (0x30000000 - addr); ++ addr = 0x30000000; ++ } ++ ++ if (len > total) ++ len = total; ++ + if (len) + { + grub_err_t err; +@@ -193,10 +231,12 @@ heap_init (grub_uint64_t addr, grub_uint64_t len, grub_memory_type_t type, + if (err) + return err; + grub_mm_init_region ((void *) (grub_addr_t) addr, len); ++ total -= len; + } + +- *total += len; +- if (*total >= HEAP_MAX_SIZE) ++ *(grub_uint32_t *)data = total; ++ ++ if (total == 0) + return 1; + + return 0; +@@ -205,13 +245,22 @@ heap_init (grub_uint64_t addr, grub_uint64_t len, grub_memory_type_t type, + static void + grub_claim_heap (void) + { +- unsigned long total = 0; ++ grub_uint32_t total = 0; + + if (grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_FORCE_CLAIM)) +- heap_init (GRUB_IEEE1275_STATIC_HEAP_START, GRUB_IEEE1275_STATIC_HEAP_LEN, +- 1, &total); +- else +- grub_machine_mmap_iterate (heap_init, &total); ++ { ++ heap_init (GRUB_IEEE1275_STATIC_HEAP_START, GRUB_IEEE1275_STATIC_HEAP_LEN, ++ 1, &total); ++ return; ++ } ++ ++ grub_machine_mmap_iterate (heap_size, &total); ++ ++ total = total / 4; ++ if (total > HEAP_MAX_SIZE) ++ total = HEAP_MAX_SIZE; ++ ++ grub_machine_mmap_iterate (heap_init, &total); + } + #endif + +diff --git a/docs/grub-dev.texi b/docs/grub-dev.texi +index 19f708ee662..90083772c8a 100644 +--- a/docs/grub-dev.texi ++++ b/docs/grub-dev.texi +@@ -1047,7 +1047,9 @@ space is limited to 4GiB. GRUB allocates pages from EFI for its heap, at most + 1.6 GiB. + + On i386-ieee1275 and powerpc-ieee1275 GRUB uses same stack as IEEE1275. +-It allocates at most 32MiB for its heap. ++ ++On i386-ieee1275, GRUB allocates at most 32MiB for its heap. On ++powerpc-ieee1275, GRUB allocates up to 1GiB. + + On sparc64-ieee1275 stack is 256KiB and heap is 2MiB. + +@@ -1075,7 +1077,7 @@ In short: + @item i386-qemu @tab 60 KiB @tab < 4 GiB + @item *-efi @tab ? @tab < 1.6 GiB + @item i386-ieee1275 @tab ? @tab < 32 MiB +-@item powerpc-ieee1275 @tab ? @tab < 32 MiB ++@item powerpc-ieee1275 @tab ? @tab < 1 GiB + @item sparc64-ieee1275 @tab 256KiB @tab 2 MiB + @item arm-uboot @tab 256KiB @tab 2 MiB + @item mips(el)-qemu_mips @tab 2MiB @tab 253 MiB diff --git a/0183-ieee1275-request-memory-with-ibm-client-architecture.patch b/0183-ieee1275-request-memory-with-ibm-client-architecture.patch new file mode 100644 index 0000000..6e6c1f0 --- /dev/null +++ b/0183-ieee1275-request-memory-with-ibm-client-architecture.patch @@ -0,0 +1,268 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Axtens +Date: Fri, 16 Apr 2021 11:48:46 +1000 +Subject: [PATCH] ieee1275: request memory with ibm,client-architecture-support + +On PowerVM, the first time we boot a Linux partition, we may only get +256MB of real memory area, even if the partition has more memory. + +This isn't really enough. Fortunately, the Power Architecture Platform +Reference (PAPR) defines a method we can call to ask for more memory. +This is part of the broad and powerful ibm,client-architecture-support +(CAS) method. + +CAS can do an enormous amount of things on a PAPR platform: as well as +asking for memory, you can set the supported processor level, the interrupt +controller, hash vs radix mmu, and so on. We want to touch as little of +this as possible because we don't want to step on the toes of the future OS. + +If: + + - we are running under what we think is PowerVM (compatible property of / + begins with "IBM"), and + + - the full amount of RMA is less than 512MB (as determined by the reg + property of /memory) + +then call CAS as follows: (refer to the Linux on Power Architecture +Reference, LoPAR, which is public, at B.5.2.3): + + - Use the "any" PVR value and supply 2 option vectors. + + - Set option vector 1 (PowerPC Server Processor Architecture Level) + to "ignore". + + - Set option vector 2 with default or Linux-like options, including a + min-rma-size of 512MB. + +This will cause a CAS reboot and the partition will restart with 512MB +of RMA. Grub will notice the 512MB and not call CAS again. + +(A partition can be configured with only 256MB of memory, which would +mean this request couldn't be satisfied, but PFW refuses to load with +only 256MB of memory, so it's a bit moot. SLOF will run fine with 256MB, +but we will never call CAS under qemu/SLOF because /compatible won't +begin with "IBM".) + +One of the first things Linux does while still running under OpenFirmware +is to call CAS with a much fuller set of options (including asking for +512MB of memory). This includes a much more restrictive set of PVR values +and processor support levels, and this will induce another reboot. On this +reboot grub will again notice the higher RMA, and not call CAS. We will get +to Linux, Linux will call CAS but because the values are now set for Linux +this will not induce another CAS reboot and we will finally boot. + +On all subsequent boots, everything will be configured with 512MB of RMA +and all the settings Linux likes, so there will be no further CAS reboots. + +(phyp is super sticky with the RMA size - it persists even on cold boots. +So if you've ever booted Linux in a partition, you'll probably never have +grub call CAS. It'll only ever fire the first time a partition loads grub, +or if you deliberately lower the amount of memory your partition has below +512MB.) + +Signed-off-by: Daniel Axtens +--- + grub-core/kern/ieee1275/cmain.c | 3 + + grub-core/kern/ieee1275/init.c | 144 ++++++++++++++++++++++++++++++++++++++- + include/grub/ieee1275/ieee1275.h | 8 ++- + 3 files changed, 152 insertions(+), 3 deletions(-) + +diff --git a/grub-core/kern/ieee1275/cmain.c b/grub-core/kern/ieee1275/cmain.c +index 04df9d2c667..6435628ec57 100644 +--- a/grub-core/kern/ieee1275/cmain.c ++++ b/grub-core/kern/ieee1275/cmain.c +@@ -127,6 +127,9 @@ grub_ieee1275_find_options (void) + break; + } + } ++ ++ if (grub_strncmp (tmp, "IBM,", 4) == 0) ++ grub_ieee1275_set_flag (GRUB_IEEE1275_FLAG_CAN_TRY_CAS_FOR_MORE_MEMORY); + } + + if (is_smartfirmware) +diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c +index c61d91a0285..9704715c837 100644 +--- a/grub-core/kern/ieee1275/init.c ++++ b/grub-core/kern/ieee1275/init.c +@@ -242,6 +242,135 @@ heap_init (grub_uint64_t addr, grub_uint64_t len, grub_memory_type_t type, + return 0; + } + ++/* How much memory does OF believe it has? (regardless of whether ++ it's accessible or not) */ ++static grub_err_t ++grub_ieee1275_total_mem (grub_uint64_t *total) ++{ ++ grub_ieee1275_phandle_t root; ++ grub_ieee1275_phandle_t memory; ++ grub_uint32_t reg[4]; ++ grub_ssize_t reg_size; ++ grub_uint32_t address_cells = 1; ++ grub_uint32_t size_cells = 1; ++ grub_uint64_t size; ++ ++ /* If we fail to get to the end, report 0. */ ++ *total = 0; ++ ++ /* Determine the format of each entry in `reg'. */ ++ grub_ieee1275_finddevice ("/", &root); ++ grub_ieee1275_get_integer_property (root, "#address-cells", &address_cells, ++ sizeof address_cells, 0); ++ grub_ieee1275_get_integer_property (root, "#size-cells", &size_cells, ++ sizeof size_cells, 0); ++ ++ if (size_cells > address_cells) ++ address_cells = size_cells; ++ ++ /* Load `/memory/reg'. */ ++ if (grub_ieee1275_finddevice ("/memory", &memory)) ++ return grub_error (GRUB_ERR_UNKNOWN_DEVICE, ++ "couldn't find /memory node"); ++ if (grub_ieee1275_get_integer_property (memory, "reg", reg, ++ sizeof reg, ®_size)) ++ return grub_error (GRUB_ERR_UNKNOWN_DEVICE, ++ "couldn't examine /memory/reg property"); ++ if (reg_size < 0 || (grub_size_t) reg_size > sizeof (reg)) ++ return grub_error (GRUB_ERR_UNKNOWN_DEVICE, ++ "/memory response buffer exceeded"); ++ ++ if (grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_BROKEN_ADDRESS_CELLS)) ++ { ++ address_cells = 1; ++ size_cells = 1; ++ } ++ ++ /* Decode only the size */ ++ size = reg[address_cells]; ++ if (size_cells == 2) ++ size = (size << 32) | reg[address_cells + 1]; ++ ++ *total = size; ++ ++ return grub_errno; ++} ++ ++/* Based on linux - arch/powerpc/kernel/prom_init.c */ ++struct option_vector2 { ++ grub_uint8_t byte1; ++ grub_uint16_t reserved; ++ grub_uint32_t real_base; ++ grub_uint32_t real_size; ++ grub_uint32_t virt_base; ++ grub_uint32_t virt_size; ++ grub_uint32_t load_base; ++ grub_uint32_t min_rma; ++ grub_uint32_t min_load; ++ grub_uint8_t min_rma_percent; ++ grub_uint8_t max_pft_size; ++} __attribute__((packed)); ++ ++struct pvr_entry { ++ grub_uint32_t mask; ++ grub_uint32_t entry; ++}; ++ ++struct cas_vector { ++ struct { ++ struct pvr_entry terminal; ++ } pvr_list; ++ grub_uint8_t num_vecs; ++ grub_uint8_t vec1_size; ++ grub_uint8_t vec1; ++ grub_uint8_t vec2_size; ++ struct option_vector2 vec2; ++} __attribute__((packed)); ++ ++/* Call ibm,client-architecture-support to try to get more RMA. ++ We ask for 512MB which should be enough to verify a distro kernel. ++ We ignore most errors: if we don't succeed we'll proceed with whatever ++ memory we have. */ ++static void ++grub_ieee1275_ibm_cas (void) ++{ ++ int rc; ++ grub_ieee1275_ihandle_t root; ++ struct cas_args { ++ struct grub_ieee1275_common_hdr common; ++ grub_ieee1275_cell_t method; ++ grub_ieee1275_ihandle_t ihandle; ++ grub_ieee1275_cell_t cas_addr; ++ grub_ieee1275_cell_t result; ++ } args; ++ struct cas_vector vector = { ++ .pvr_list = { { 0x00000000, 0xffffffff } }, /* any processor */ ++ .num_vecs = 2 - 1, ++ .vec1_size = 0, ++ .vec1 = 0x80, /* ignore */ ++ .vec2_size = 1 + sizeof(struct option_vector2) - 2, ++ .vec2 = { ++ 0, 0, -1, -1, -1, -1, -1, 512, -1, 0, 48 ++ }, ++ }; ++ ++ INIT_IEEE1275_COMMON (&args.common, "call-method", 3, 2); ++ args.method = (grub_ieee1275_cell_t)"ibm,client-architecture-support"; ++ rc = grub_ieee1275_open("/", &root); ++ if (rc) { ++ grub_error (GRUB_ERR_IO, "could not open root when trying to call CAS"); ++ return; ++ } ++ args.ihandle = root; ++ args.cas_addr = (grub_ieee1275_cell_t)&vector; ++ ++ grub_printf("Calling ibm,client-architecture-support..."); ++ IEEE1275_CALL_ENTRY_FN (&args); ++ grub_printf("done\n"); ++ ++ grub_ieee1275_close(root); ++} ++ + static void + grub_claim_heap (void) + { +@@ -249,11 +378,22 @@ grub_claim_heap (void) + + if (grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_FORCE_CLAIM)) + { +- heap_init (GRUB_IEEE1275_STATIC_HEAP_START, GRUB_IEEE1275_STATIC_HEAP_LEN, +- 1, &total); ++ heap_init (GRUB_IEEE1275_STATIC_HEAP_START, ++ GRUB_IEEE1275_STATIC_HEAP_LEN, 1, &total); + return; + } + ++ if (grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_CAN_TRY_CAS_FOR_MORE_MEMORY)) ++ { ++ grub_uint64_t rma_size; ++ grub_err_t err; ++ ++ err = grub_ieee1275_total_mem (&rma_size); ++ /* if we have an error, don't call CAS, just hope for the best */ ++ if (!err && rma_size < (512 * 1024 * 1024)) ++ grub_ieee1275_ibm_cas(); ++ } ++ + grub_machine_mmap_iterate (heap_size, &total); + + total = total / 4; +diff --git a/include/grub/ieee1275/ieee1275.h b/include/grub/ieee1275/ieee1275.h +index b5a1d49bbc3..e0a6c2ce1e6 100644 +--- a/include/grub/ieee1275/ieee1275.h ++++ b/include/grub/ieee1275/ieee1275.h +@@ -149,7 +149,13 @@ enum grub_ieee1275_flag + + GRUB_IEEE1275_FLAG_RAW_DEVNAMES, + +- GRUB_IEEE1275_FLAG_DISABLE_VIDEO_SUPPORT ++ GRUB_IEEE1275_FLAG_DISABLE_VIDEO_SUPPORT, ++ ++ /* On PFW, the first time we boot a Linux partition, we may only get 256MB ++ of real memory area, even if the partition has more memory. Set this flag ++ if we think we're running under PFW. Then, if this flag is set, and the ++ RMA is only 256MB in size, try asking for more with CAS. */ ++ GRUB_IEEE1275_FLAG_CAN_TRY_CAS_FOR_MORE_MEMORY, + }; + + extern int EXPORT_FUNC(grub_ieee1275_test_flag) (enum grub_ieee1275_flag flag); diff --git a/0184-appendedsig-x509-Also-handle-the-Extended-Key-Usage-.patch b/0184-appendedsig-x509-Also-handle-the-Extended-Key-Usage-.patch new file mode 100644 index 0000000..a237a21 --- /dev/null +++ b/0184-appendedsig-x509-Also-handle-the-Extended-Key-Usage-.patch @@ -0,0 +1,315 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Sat, 8 May 2021 02:27:58 +0200 +Subject: [PATCH] appendedsig/x509: Also handle the Extended Key Usage + extension + +Red Hat certificates have both Key Usage and Extended Key Usage extensions +present, but the appended signatures x509 parser doesn't handle the latter +and so buils due finding an unrecognised critical extension: + +Error loading initial key: +../../grub-core/commands/appendedsig/x509.c:780:Unhandled critical x509 extension with OID 2.5.29.37 + +Fix this by also parsing the Extended Key Usage extension and handle it by +verifying that the certificate has a single purpose, that is code signing. + +Signed-off-by: Javier Martinez Canillas +Signed-off-by: Daniel Axtens +--- + grub-core/commands/appendedsig/x509.c | 94 ++++++++++++++++++++++++++++++- + grub-core/tests/appended_signature_test.c | 29 +++++++++- + grub-core/tests/appended_signatures.h | 81 ++++++++++++++++++++++++++ + 3 files changed, 201 insertions(+), 3 deletions(-) + +diff --git a/grub-core/commands/appendedsig/x509.c b/grub-core/commands/appendedsig/x509.c +index 2b38b3670a2..42ec65c54aa 100644 +--- a/grub-core/commands/appendedsig/x509.c ++++ b/grub-core/commands/appendedsig/x509.c +@@ -47,6 +47,12 @@ const char *keyUsage_oid = "2.5.29.15"; + */ + const char *basicConstraints_oid = "2.5.29.19"; + ++/* ++ * RFC 5280 4.2.1.12 Extended Key Usage ++ */ ++const char *extendedKeyUsage_oid = "2.5.29.37"; ++const char *codeSigningUsage_oid = "1.3.6.1.5.5.7.3.3"; ++ + /* + * RFC 3279 2.3.1 + * +@@ -637,6 +643,77 @@ cleanup: + return err; + } + ++/* ++ * ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId ++ * ++ * KeyPurposeId ::= OBJECT IDENTIFIER ++ */ ++static grub_err_t ++verify_extended_key_usage (grub_uint8_t * value, int value_size) ++{ ++ asn1_node extendedasn; ++ int result, count; ++ grub_err_t err = GRUB_ERR_NONE; ++ char usage[MAX_OID_LEN]; ++ int usage_size = sizeof (usage); ++ ++ result = ++ asn1_create_element (_gnutls_pkix_asn, "PKIX1.ExtKeyUsageSyntax", ++ &extendedasn); ++ if (result != ASN1_SUCCESS) ++ { ++ return grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ "Could not create ASN.1 structure for Extended Key Usage"); ++ } ++ ++ result = asn1_der_decoding2 (&extendedasn, value, &value_size, ++ ASN1_DECODE_FLAG_STRICT_DER, asn1_error); ++ if (result != ASN1_SUCCESS) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Error parsing DER for Extended Key Usage: %s", ++ asn1_error); ++ goto cleanup; ++ } ++ ++ /* ++ * If EKUs are present, there must be exactly 1 and it must be a ++ * codeSigning usage. ++ */ ++ result = asn1_number_of_elements(extendedasn, "", &count); ++ if (result != ASN1_SUCCESS) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Error counting number of Extended Key Usages: %s", ++ asn1_strerror (result)); ++ goto cleanup; ++ } ++ ++ result = asn1_read_value (extendedasn, "?1", usage, &usage_size); ++ if (result != ASN1_SUCCESS) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Error reading Extended Key Usage: %s", ++ asn1_strerror (result)); ++ goto cleanup; ++ } ++ ++ if (grub_strncmp (codeSigningUsage_oid, usage, usage_size) != 0) ++ { ++ err = ++ grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Unexpected Extended Key Usage OID, got: %s", ++ usage); ++ goto cleanup; ++ } ++ ++cleanup: ++ asn1_delete_structure (&extendedasn); ++ return err; ++} + + /* + * Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension +@@ -660,7 +737,7 @@ verify_extensions (asn1_node cert) + { + int result; + int ext, num_extensions = 0; +- int usage_present = 0, constraints_present = 0; ++ int usage_present = 0, constraints_present = 0, extended_usage_present = 0; + char *oid_path, *critical_path, *value_path; + char extnID[MAX_OID_LEN]; + int extnID_size; +@@ -754,6 +831,15 @@ verify_extensions (asn1_node cert) + } + constraints_present++; + } ++ else if (grub_strncmp (extendedKeyUsage_oid, extnID, extnID_size) == 0) ++ { ++ err = verify_extended_key_usage (value, value_size); ++ if (err != GRUB_ERR_NONE) ++ { ++ goto cleanup_value; ++ } ++ extended_usage_present++; ++ } + else if (grub_strncmp ("TRUE", critical, critical_size) == 0) + { + /* +@@ -785,6 +871,12 @@ verify_extensions (asn1_node cert) + "Unexpected number of basic constraints extensions - expected 1, got %d", + constraints_present); + } ++ if (extended_usage_present > 1) ++ { ++ return grub_error (GRUB_ERR_BAD_FILE_TYPE, ++ "Unexpected number of Extended Key Usage extensions - expected 0 or 1, got %d", ++ extended_usage_present); ++ } + return GRUB_ERR_NONE; + + cleanup_value: +diff --git a/grub-core/tests/appended_signature_test.c b/grub-core/tests/appended_signature_test.c +index 88a485200d8..dbba0616621 100644 +--- a/grub-core/tests/appended_signature_test.c ++++ b/grub-core/tests/appended_signature_test.c +@@ -111,6 +111,22 @@ static struct grub_procfs_entry certificate_printable_der_entry = { + .get_contents = get_certificate_printable_der + }; + ++static char * ++get_certificate_eku_der (grub_size_t * sz) ++{ ++ char *ret; ++ *sz = certificate_eku_der_len; ++ ret = grub_malloc (*sz); ++ if (ret) ++ grub_memcpy (ret, certificate_eku_der, *sz); ++ return ret; ++} ++ ++static struct grub_procfs_entry certificate_eku_der_entry = { ++ .name = "certificate_eku.der", ++ .get_contents = get_certificate_eku_der ++}; ++ + + static void + do_verify (const char *f, int is_valid) +@@ -149,6 +165,7 @@ appended_signature_test (void) + char *trust_args2[] = { (char *) "(proc)/certificate2.der", NULL }; + char *trust_args_printable[] = { (char *) "(proc)/certificate_printable.der", + NULL }; ++ char *trust_args_eku[] = { (char *) "(proc)/certificate_eku.der", NULL }; + char *distrust_args[] = { (char *) "1", NULL }; + char *distrust2_args[] = { (char *) "2", NULL }; + grub_err_t err; +@@ -157,6 +174,7 @@ appended_signature_test (void) + grub_procfs_register ("certificate2.der", &certificate2_der_entry); + grub_procfs_register ("certificate_printable.der", + &certificate_printable_der_entry); ++ grub_procfs_register ("certificate_eku.der", &certificate_eku_der_entry); + + cmd_trust = grub_command_find ("trust_certificate"); + if (!cmd_trust) +@@ -266,16 +284,23 @@ appended_signature_test (void) + + /* + * Lastly, check a certificate that uses printableString rather than +- * utf8String loads properly. ++ * utf8String loads properly, and that a certificate with an appropriate ++ * extended key usage loads. + */ + err = (cmd_trust->func) (cmd_trust, 1, trust_args_printable); + grub_test_assert (err == GRUB_ERR_NONE, +- "distrusting printable certificate failed: %d: %s", ++ "trusting printable certificate failed: %d: %s", ++ grub_errno, grub_errmsg); ++ ++ err = (cmd_trust->func) (cmd_trust, 1, trust_args_eku); ++ grub_test_assert (err == GRUB_ERR_NONE, ++ "trusting certificate with extended key usage failed: %d: %s", + grub_errno, grub_errmsg); + + grub_procfs_unregister (&certificate_der_entry); + grub_procfs_unregister (&certificate2_der_entry); + grub_procfs_unregister (&certificate_printable_der_entry); ++ grub_procfs_unregister (&certificate_eku_der_entry); + } + + GRUB_FUNCTIONAL_TEST (appended_signature_test, appended_signature_test); +diff --git a/grub-core/tests/appended_signatures.h b/grub-core/tests/appended_signatures.h +index aa3dc6278e3..2e5ebd7d8bd 100644 +--- a/grub-core/tests/appended_signatures.h ++++ b/grub-core/tests/appended_signatures.h +@@ -555,3 +555,84 @@ unsigned char certificate_printable_der[] = { + 0xd2 + }; + unsigned int certificate_printable_der_len = 829; ++ ++unsigned char certificate_eku_der[] = { ++ 0x30, 0x82, 0x03, 0x90, 0x30, 0x82, 0x02, 0x78, 0xa0, 0x03, 0x02, 0x01, ++ 0x02, 0x02, 0x09, 0x00, 0xd3, 0x9c, 0x41, 0x33, 0xdd, 0x6b, 0x5f, 0x45, ++ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, ++ 0x0b, 0x05, 0x00, 0x30, 0x47, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, ++ 0x04, 0x03, 0x0c, 0x18, 0x52, 0x65, 0x64, 0x20, 0x48, 0x61, 0x74, 0x20, ++ 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x42, 0x6f, 0x6f, 0x74, 0x20, ++ 0x43, 0x41, 0x20, 0x36, 0x31, 0x22, 0x30, 0x20, 0x06, 0x09, 0x2a, 0x86, ++ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, 0x13, 0x73, 0x65, 0x63, ++ 0x61, 0x6c, 0x65, 0x72, 0x74, 0x40, 0x72, 0x65, 0x64, 0x68, 0x61, 0x74, ++ 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x31, 0x30, 0x32, ++ 0x31, 0x35, 0x31, 0x34, 0x30, 0x30, 0x34, 0x34, 0x5a, 0x17, 0x0d, 0x33, ++ 0x38, 0x30, 0x31, 0x31, 0x37, 0x31, 0x34, 0x30, 0x30, 0x34, 0x34, 0x5a, ++ 0x30, 0x4e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, ++ 0x1f, 0x52, 0x65, 0x64, 0x20, 0x48, 0x61, 0x74, 0x20, 0x53, 0x65, 0x63, ++ 0x75, 0x72, 0x65, 0x20, 0x42, 0x6f, 0x6f, 0x74, 0x20, 0x53, 0x69, 0x67, ++ 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x36, 0x30, 0x32, 0x31, 0x22, 0x30, 0x20, ++ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, ++ 0x13, 0x73, 0x65, 0x63, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x40, 0x72, 0x65, ++ 0x64, 0x68, 0x61, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x82, 0x01, 0x22, ++ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, ++ 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, ++ 0x02, 0x82, 0x01, 0x01, 0x00, 0xaa, 0x6f, 0xbb, 0x92, 0x77, 0xd7, 0x15, ++ 0xef, 0x88, 0x80, 0x88, 0xc0, 0xe7, 0x89, 0xeb, 0x35, 0x76, 0xf4, 0x85, ++ 0x05, 0x0f, 0x19, 0xe4, 0x5f, 0x25, 0xdd, 0xc1, 0xa2, 0xe5, 0x5c, 0x06, ++ 0xfb, 0xf1, 0x06, 0xb5, 0x65, 0x45, 0xcb, 0xbd, 0x19, 0x33, 0x54, 0xb5, ++ 0x1a, 0xcd, 0xe4, 0xa8, 0x35, 0x2a, 0xfe, 0x9c, 0x53, 0xf4, 0xc6, 0x76, ++ 0xdb, 0x1f, 0x8a, 0xd4, 0x7b, 0x18, 0x11, 0xaf, 0xa3, 0x90, 0xd4, 0xdd, ++ 0x4d, 0xd5, 0x42, 0xcc, 0x14, 0x9a, 0x64, 0x6b, 0xc0, 0x7f, 0xaa, 0x1c, ++ 0x94, 0x47, 0x4d, 0x79, 0xbd, 0x57, 0x9a, 0xbf, 0x99, 0x4e, 0x96, 0xa9, ++ 0x31, 0x2c, 0xa9, 0xe7, 0x14, 0x65, 0x86, 0xc8, 0xac, 0x79, 0x5e, 0x78, ++ 0xa4, 0x3c, 0x00, 0x24, 0xd3, 0xf7, 0xe1, 0xf5, 0x12, 0xad, 0xa0, 0x29, ++ 0xe5, 0xfe, 0x80, 0xae, 0xf8, 0xaa, 0x60, 0x36, 0xe7, 0xe8, 0x94, 0xcb, ++ 0xe9, 0xd1, 0xcc, 0x0b, 0x4d, 0xf7, 0xde, 0xeb, 0x52, 0xd2, 0x73, 0x09, ++ 0x28, 0xdf, 0x48, 0x99, 0x53, 0x9f, 0xc5, 0x9a, 0xd4, 0x36, 0xa3, 0xc6, ++ 0x5e, 0x8d, 0xbe, 0xd5, 0xdc, 0x76, 0xb4, 0x74, 0xb8, 0x26, 0x18, 0x27, ++ 0xfb, 0xf2, 0xfb, 0xd0, 0x9b, 0x3d, 0x7f, 0x10, 0xe2, 0xab, 0x44, 0xc7, ++ 0x88, 0x7f, 0xb4, 0x3d, 0x3e, 0xa3, 0xff, 0x6d, 0x06, 0x4b, 0x3e, 0x55, ++ 0xb2, 0x84, 0xf4, 0xad, 0x54, 0x88, 0x81, 0xc3, 0x9c, 0xf8, 0xb6, 0x68, ++ 0x96, 0x38, 0x8b, 0xcd, 0x90, 0x6d, 0x25, 0x4b, 0xbf, 0x0c, 0x44, 0x90, ++ 0xa5, 0x5b, 0x98, 0xd0, 0x40, 0x2f, 0xbb, 0x0d, 0xa8, 0x4b, 0x8a, 0x62, ++ 0x82, 0x46, 0x46, 0x18, 0x38, 0xae, 0x82, 0x07, 0xd0, 0xb4, 0x2f, 0x16, ++ 0x79, 0x55, 0x9f, 0x1b, 0xc5, 0x08, 0x6d, 0x85, 0xdf, 0x3f, 0xa9, 0x9b, ++ 0x4b, 0xc6, 0x28, 0xd3, 0x58, 0x72, 0x3d, 0x37, 0x11, 0x02, 0x03, 0x01, ++ 0x00, 0x01, 0xa3, 0x78, 0x30, 0x76, 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, ++ 0x13, 0x01, 0x01, 0xff, 0x04, 0x02, 0x30, 0x00, 0x30, 0x0e, 0x06, 0x03, ++ 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x07, 0x80, ++ 0x30, 0x16, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x01, 0x01, 0xff, 0x04, 0x0c, ++ 0x30, 0x0a, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x03, ++ 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x6c, ++ 0xe4, 0x6c, 0x27, 0xaa, 0xcd, 0x0d, 0x4b, 0x74, 0x21, 0xa4, 0xf6, 0x5f, ++ 0x87, 0xb5, 0x31, 0xfe, 0x10, 0xbb, 0xa7, 0x30, 0x1f, 0x06, 0x03, 0x55, ++ 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xe8, 0x6a, 0x1c, 0xab, ++ 0x2c, 0x48, 0xf9, 0x60, 0x36, 0xa2, 0xf0, 0x7b, 0x8e, 0xd2, 0x9d, 0xb4, ++ 0x2a, 0x28, 0x98, 0xc8, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, ++ 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, ++ 0x55, 0x34, 0xe2, 0xfa, 0xf6, 0x89, 0x86, 0xad, 0x92, 0x21, 0xec, 0xb9, ++ 0x54, 0x0e, 0x18, 0x47, 0x0d, 0x1b, 0xa7, 0x58, 0xad, 0x69, 0xe4, 0xef, ++ 0x3b, 0xe6, 0x8d, 0xdd, 0xda, 0x0c, 0x45, 0xf6, 0xe8, 0x96, 0xa4, 0x29, ++ 0x0f, 0xbb, 0xcf, 0x16, 0xae, 0x93, 0xd0, 0xcb, 0x2a, 0x26, 0x1a, 0x7b, ++ 0xfc, 0x51, 0x22, 0x76, 0x98, 0x31, 0xa7, 0x0f, 0x29, 0x35, 0x79, 0xbf, ++ 0xe2, 0x4f, 0x0f, 0x14, 0xf5, 0x1f, 0xcb, 0xbf, 0x87, 0x65, 0x13, 0x32, ++ 0xa3, 0x19, 0x4a, 0xd1, 0x3f, 0x45, 0xd4, 0x4b, 0xe2, 0x00, 0x26, 0xa9, ++ 0x3e, 0xd7, 0xa5, 0x37, 0x9f, 0xf5, 0xad, 0x61, 0xe2, 0x40, 0xa9, 0x74, ++ 0x24, 0x53, 0xf2, 0x78, 0xeb, 0x10, 0x9b, 0x2c, 0x27, 0x88, 0x46, 0xcb, ++ 0xe4, 0x60, 0xca, 0xf5, 0x06, 0x24, 0x40, 0x2a, 0x97, 0x3a, 0xcc, 0xd0, ++ 0x81, 0xb1, 0x15, 0xa3, 0x4f, 0xd0, 0x2b, 0x4f, 0xca, 0x6e, 0xaa, 0x24, ++ 0x31, 0xb3, 0xac, 0xa6, 0x75, 0x05, 0xfe, 0x8a, 0xf4, 0x41, 0xc4, 0x06, ++ 0x8a, 0xc7, 0x0a, 0x83, 0x4e, 0x49, 0xd4, 0x3f, 0x83, 0x50, 0xec, 0x57, ++ 0x04, 0x97, 0x14, 0x49, 0xf5, 0xe1, 0xb1, 0x7a, 0x9c, 0x09, 0x4f, 0x61, ++ 0x87, 0xc3, 0x97, 0x22, 0x17, 0xc2, 0xeb, 0xcc, 0x32, 0x81, 0x31, 0x21, ++ 0x3f, 0x10, 0x57, 0x5b, 0x43, 0xbe, 0xcd, 0x68, 0x82, 0xbe, 0xe5, 0xc1, ++ 0x65, 0x94, 0x7e, 0xc2, 0x34, 0x76, 0x2b, 0xcf, 0x89, 0x3c, 0x2b, 0x81, ++ 0x23, 0x72, 0x95, 0xcf, 0xc9, 0x67, 0x19, 0x2a, 0xd5, 0x5c, 0xca, 0xa3, ++ 0x46, 0xbd, 0x48, 0x06, 0x0b, 0xa6, 0xa3, 0x96, 0x50, 0x28, 0xc7, 0x7e, ++ 0xcf, 0x62, 0xf2, 0xfa, 0xc4, 0xf2, 0x53, 0xe3, 0xc9, 0xe8, 0x2e, 0xdd, ++ 0x29, 0x37, 0x07, 0x47, 0xff, 0xff, 0x8a, 0x32, 0xbd, 0xa2, 0xb7, 0x21, ++ 0x89, 0xa0, 0x55, 0xf7 ++}; ++unsigned int certificate_eku_der_len = 916; diff --git a/0184-blscfg-add-a-space-char-when-appending-fields-for-va.patch b/0184-blscfg-add-a-space-char-when-appending-fields-for-va.patch deleted file mode 100644 index 9f1eff9..0000000 --- a/0184-blscfg-add-a-space-char-when-appending-fields-for-va.patch +++ /dev/null @@ -1,79 +0,0 @@ -From b6c9be5bfcfc8b7724f8a30b032ee1dcf58607d1 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Tue, 26 Nov 2019 09:51:41 +0100 -Subject: [PATCH 184/220] blscfg: add a space char when appending fields for - variable expansion - -The GRUB variables are expanded and replaced by their values before adding -menu entries, but they didn't include space characters after the values so -the result was not correct. - -For the common case this wasn't a problem but it is if there are variables -that are part of the values of other variables. - -Resolves: rhbz#1669252 - -Signed-off-by: Javier Martinez Canillas ---- - grub-core/commands/blscfg.c | 31 ++++++++++++++++++------------- - 1 file changed, 18 insertions(+), 13 deletions(-) - -diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 471975f..d78cff7 100644 ---- a/grub-core/commands/blscfg.c -+++ b/grub-core/commands/blscfg.c -@@ -593,26 +593,29 @@ static char **bls_make_list (struct bls_entry *entry, const char *key, int *num) - - static char *field_append(bool is_var, char *buffer, char *start, char *end) - { -- char *temp = grub_strndup(start, end - start + 1); -- const char *field = temp; -+ char *tmp = grub_strndup(start, end - start + 1); -+ const char *field = tmp; -+ int term = is_var ? 2 : 1; - - if (is_var) { -- field = grub_env_get (temp); -+ field = grub_env_get (tmp); - if (!field) - return buffer; - } - -- if (!buffer) { -- buffer = grub_strdup(field); -- if (!buffer) -- return NULL; -- } else { -- buffer = grub_realloc (buffer, grub_strlen(buffer) + grub_strlen(field)); -- if (!buffer) -- return NULL; -+ if (!buffer) -+ buffer = grub_zalloc (grub_strlen(field) + term); -+ else -+ buffer = grub_realloc (buffer, grub_strlen(buffer) + grub_strlen(field) + term); - -- grub_stpcpy (buffer + grub_strlen(buffer), field); -- } -+ if (!buffer) -+ return NULL; -+ -+ tmp = buffer + grub_strlen(buffer); -+ tmp = grub_stpcpy (tmp, field); -+ -+ if (is_var) -+ tmp = grub_stpcpy (tmp, " "); - - return buffer; - } -@@ -642,6 +645,8 @@ static char *expand_val(char *value) - buffer = field_append(is_var, buffer, start, end); - is_var = false; - start = value; -+ if (*start == ' ') -+ start++; - } - } - --- -1.8.3.1 - diff --git a/0185-ieee1275-ofdisk-retry-on-open-failure.patch b/0185-ieee1275-ofdisk-retry-on-open-failure.patch new file mode 100644 index 0000000..275d14f --- /dev/null +++ b/0185-ieee1275-ofdisk-retry-on-open-failure.patch @@ -0,0 +1,103 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Diego Domingos +Date: Wed, 10 Mar 2021 14:17:52 -0500 +Subject: [PATCH] ieee1275/ofdisk: retry on open failure + +This patch aims to make grub more robust when booting from SAN/Multipath disks. + +If a path is failing intermittently so grub will retry the OPEN and READ the +disk (grub_ieee1275_open and grub_ieee1275_read) until the total amount of times +specified in MAX_RETRIES. + +Signed-off-by: Diego Domingos +--- + grub-core/disk/ieee1275/ofdisk.c | 25 ++++++++++++++++++++----- + include/grub/ieee1275/ofdisk.h | 8 ++++++++ + 2 files changed, 28 insertions(+), 5 deletions(-) + +diff --git a/grub-core/disk/ieee1275/ofdisk.c b/grub-core/disk/ieee1275/ofdisk.c +index ea7f78ac7d8..55346849d35 100644 +--- a/grub-core/disk/ieee1275/ofdisk.c ++++ b/grub-core/disk/ieee1275/ofdisk.c +@@ -225,7 +225,9 @@ dev_iterate (const struct grub_ieee1275_devalias *alias) + char *buf, *bufptr; + unsigned i; + +- if (grub_ieee1275_open (alias->path, &ihandle)) ++ ++ RETRY_IEEE1275_OFDISK_OPEN(alias->path, &ihandle) ++ if (! ihandle) + return; + + /* This method doesn't need memory allocation for the table. Open +@@ -305,7 +307,9 @@ dev_iterate (const struct grub_ieee1275_devalias *alias) + return; + } + +- if (grub_ieee1275_open (alias->path, &ihandle)) ++ RETRY_IEEE1275_OFDISK_OPEN(alias->path, &ihandle); ++ ++ if (! ihandle) + { + grub_free (buf); + grub_free (table); +@@ -495,7 +499,7 @@ grub_ofdisk_open (const char *name, grub_disk_t disk) + last_ihandle = 0; + last_devpath = NULL; + +- grub_ieee1275_open (op->open_path, &last_ihandle); ++ RETRY_IEEE1275_OFDISK_OPEN(op->open_path, &last_ihandle); + if (! last_ihandle) + return grub_error (GRUB_ERR_UNKNOWN_DEVICE, "can't open device"); + last_devpath = op->open_path; +@@ -571,7 +575,7 @@ grub_ofdisk_prepare (grub_disk_t disk, grub_disk_addr_t sector) + last_ihandle = 0; + last_devpath = NULL; + +- grub_ieee1275_open (disk->data, &last_ihandle); ++ RETRY_IEEE1275_OFDISK_OPEN(disk->data, &last_ihandle); + if (! last_ihandle) + return grub_error (GRUB_ERR_UNKNOWN_DEVICE, "can't open device"); + last_devpath = disk->data; +@@ -598,12 +602,23 @@ grub_ofdisk_read (grub_disk_t disk, grub_disk_addr_t sector, + return err; + grub_ieee1275_read (last_ihandle, buf, size << disk->log_sector_size, + &actual); +- if (actual != (grub_ssize_t) (size << disk->log_sector_size)) ++ int i = 0; ++ while(actual != (grub_ssize_t) (size << disk->log_sector_size)){ ++ if (i>MAX_RETRIES){ + return grub_error (GRUB_ERR_READ_ERROR, N_("failure reading sector 0x%llx " + "from `%s'"), + (unsigned long long) sector, + disk->name); ++ } ++ last_devpath = NULL; ++ err = grub_ofdisk_prepare (disk, sector); ++ if (err) ++ return err; + ++ grub_ieee1275_read (last_ihandle, buf, size << disk->log_sector_size, ++ &actual); ++ i++; ++ } + return 0; + } + +diff --git a/include/grub/ieee1275/ofdisk.h b/include/grub/ieee1275/ofdisk.h +index 2f69e3f191d..7d2d5409305 100644 +--- a/include/grub/ieee1275/ofdisk.h ++++ b/include/grub/ieee1275/ofdisk.h +@@ -22,4 +22,12 @@ + extern void grub_ofdisk_init (void); + extern void grub_ofdisk_fini (void); + ++#define MAX_RETRIES 20 ++ ++ ++#define RETRY_IEEE1275_OFDISK_OPEN(device, last_ihandle) unsigned retry_i=0;for(retry_i=0; retry_i < MAX_RETRIES; retry_i++){ \ ++ if(!grub_ieee1275_open(device, last_ihandle)) \ ++ break; \ ++ grub_dprintf("ofdisk","Opening disk %s failed. Retrying...\n",device); } ++ + #endif /* ! GRUB_INIT_HEADER */ diff --git a/0186-Allow-chainloading-EFI-apps-from-loop-mounts.patch b/0186-Allow-chainloading-EFI-apps-from-loop-mounts.patch new file mode 100644 index 0000000..66e61a7 --- /dev/null +++ b/0186-Allow-chainloading-EFI-apps-from-loop-mounts.patch @@ -0,0 +1,138 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dimitri John Ledkov +Date: Fri, 11 Jun 2021 13:51:20 +0200 +Subject: [PATCH] Allow chainloading EFI apps from loop mounts. + +Signed-off-by: Dimitri John Ledkov +Signed-off-by: Robbie Harwood +--- + grub-core/disk/loopback.c | 9 +-------- + grub-core/loader/efi/chainloader.c | 23 +++++++++++++++++++++++ + include/grub/loopback.h | 30 ++++++++++++++++++++++++++++++ + 3 files changed, 54 insertions(+), 8 deletions(-) + create mode 100644 include/grub/loopback.h + +diff --git a/grub-core/disk/loopback.c b/grub-core/disk/loopback.c +index 41bebd14fe3..99f47924ec2 100644 +--- a/grub-core/disk/loopback.c ++++ b/grub-core/disk/loopback.c +@@ -21,20 +21,13 @@ + #include + #include + #include ++#include + #include + #include + #include + + GRUB_MOD_LICENSE ("GPLv3+"); + +-struct grub_loopback +-{ +- char *devname; +- grub_file_t file; +- struct grub_loopback *next; +- unsigned long id; +-}; +- + static struct grub_loopback *loopback_list; + static unsigned long last_id = 0; + +diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c +index d41e8ea14a8..3af6b122926 100644 +--- a/grub-core/loader/efi/chainloader.c ++++ b/grub-core/loader/efi/chainloader.c +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -901,6 +902,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), + grub_efi_status_t status; + grub_efi_boot_services_t *b; + grub_device_t dev = 0; ++ grub_device_t orig_dev = 0; + grub_efi_device_path_t *dp = 0; + char *filename; + void *boot_image = 0; +@@ -958,6 +960,15 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), + if (! dev) + goto fail; + ++ /* if device is loopback, use underlying dev */ ++ if (dev->disk->dev->id == GRUB_DISK_DEVICE_LOOPBACK_ID) ++ { ++ struct grub_loopback *d; ++ orig_dev = dev; ++ d = dev->disk->data; ++ dev = d->file->device; ++ } ++ + if (dev->disk) + dev_handle = grub_efidisk_get_device_handle (dev->disk); + else if (dev->net && dev->net->server) +@@ -1065,6 +1076,12 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), + } + #endif + ++ if (orig_dev) ++ { ++ dev = orig_dev; ++ orig_dev = 0; ++ } ++ + rc = grub_linuxefi_secure_validate((void *)(unsigned long)address, fsize); + grub_dprintf ("chain", "linuxefi_secure_validate: %d\n", rc); + if (rc > 0) +@@ -1087,6 +1104,12 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), + // -1 fall-through to fail + + fail: ++ if (orig_dev) ++ { ++ dev = orig_dev; ++ orig_dev = 0; ++ } ++ + if (dev) + grub_device_close (dev); + +diff --git a/include/grub/loopback.h b/include/grub/loopback.h +new file mode 100644 +index 00000000000..3b9a9e32e80 +--- /dev/null ++++ b/include/grub/loopback.h +@@ -0,0 +1,30 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2019 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#ifndef GRUB_LOOPBACK_HEADER ++#define GRUB_LOOPBACK_HEADER 1 ++ ++struct grub_loopback ++{ ++ char *devname; ++ grub_file_t file; ++ struct grub_loopback *next; ++ unsigned long id; ++}; ++ ++#endif /* ! GRUB_LOOPBACK_HEADER */ diff --git a/0186-blscfg-Add-support-for-sorting-the-plus-higher-than-.patch b/0186-blscfg-Add-support-for-sorting-the-plus-higher-than-.patch deleted file mode 100644 index 03b100c..0000000 --- a/0186-blscfg-Add-support-for-sorting-the-plus-higher-than-.patch +++ /dev/null @@ -1,62 +0,0 @@ -From c8a79b3f43d083a70688067f095edea1a3dffb7b Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Mon, 4 Nov 2019 17:33:30 +0100 -Subject: [PATCH 186/220] blscfg: Add support for sorting the plus ('+') higher - than base version - -Handle plus separator. Concept is the same as tilde, except that if one of -the strings ends (base version), the other is considered as higher version. - -A plus character is used for example by the Linux kernel build system to -denote that is the base version plus some changes on top of it. - -Currently for example rpmvercmp("5.3.0", "5.3.0+") will return 0 even when -the two versions are not the same. - -Resolves: rhbz#1767395 - -Signed-off-by: Javier Martinez Canillas ---- - grub-core/commands/blscfg.c | 19 +++++++++++++++++-- - 1 file changed, 17 insertions(+), 2 deletions(-) - -diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index d78cff7..83b33c1 100644 ---- a/grub-core/commands/blscfg.c -+++ b/grub-core/commands/blscfg.c -@@ -163,8 +163,8 @@ static int vercmp(const char * a, const char * b) - - /* loop through each version segment of str1 and str2 and compare them */ - while (*one || *two) { -- while (*one && !grub_isalnum(*one) && *one != '~') one++; -- while (*two && !grub_isalnum(*two) && *two != '~') two++; -+ while (*one && !grub_isalnum(*one) && *one != '~' && *one != '+') one++; -+ while (*two && !grub_isalnum(*two) && *two != '~' && *two != '+') two++; - - /* handle the tilde separator, it sorts before everything else */ - if (*one == '~' || *two == '~') { -@@ -175,6 +175,21 @@ static int vercmp(const char * a, const char * b) - continue; - } - -+ /* -+ * Handle plus separator. Concept is the same as tilde, -+ * except that if one of the strings ends (base version), -+ * the other is considered as higher version. -+ */ -+ if (*one == '+' || *two == '+') { -+ if (!*one) return -1; -+ if (!*two) return 1; -+ if (*one != '+') goto_return (1); -+ if (*two != '+') goto_return (-1); -+ one++; -+ two++; -+ continue; -+ } -+ - /* If we ran to the end of either, we are finished with the loop */ - if (!(*one && *two)) break; - --- -1.8.3.1 - diff --git a/0187-Fix-savedefault-with-blscfg.patch b/0187-Fix-savedefault-with-blscfg.patch deleted file mode 100644 index ef0d8e6..0000000 --- a/0187-Fix-savedefault-with-blscfg.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 51ba69910056d9720c114ed67d13da766c21a609 Mon Sep 17 00:00:00 2001 -From: Fritz Elfert -Date: Mon, 13 Jan 2020 19:29:58 +0100 -Subject: [PATCH 187/220] Fix savedefault with blscfg - -The GRUB_SAVEDEFAULT option was ignored on a BLS configuration. Fix it by -making the menu entries populated from the BLS files to call savedefault -if a save_default environment variable has been set to "true". - -This variable is set by grub2-mkconfig to the value in GRUB_SAVEDEFAULT. ---- - grub-core/commands/blscfg.c | 5 ++++- - util/grub.d/10_linux.in | 4 ++++ - 2 files changed, 8 insertions(+), 1 deletion(-) - -diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 83b33c1..069db72 100644 ---- a/grub-core/commands/blscfg.c -+++ b/grub-core/commands/blscfg.c -@@ -889,11 +889,14 @@ static void create_entry (struct bls_entry *entry) - - grub_dprintf ("blscfg2", "devicetree %s for id:\"%s\"\n", dt, id); - -- src = grub_xasprintf ("load_video\n" -+ const char *sdval = grub_env_get("save_default"); -+ bool savedefault = ((NULL != sdval) && (grub_strcmp(sdval, "true") == 0)); -+ src = grub_xasprintf ("%sload_video\n" - "set gfxpayload=keep\n" - "insmod gzio\n" - "linux %s%s%s%s\n" - "%s%s", -+ savedefault ? "savedefault\n" : "", - GRUB_BOOT_DEVICE, clinux, options ? " " : "", options ? options : "", - initrd ? initrd : "", dt ? dt : ""); - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 21a6915..b70dca2 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -152,6 +152,10 @@ EOF - if [ -n "${GRUB_DEFAULT_DTB}" ]; then - ${grub_editenv} - set devicetree="${GRUB_DEFAULT_DTB}" - fi -+ -+ if [ -n "${GRUB_SAVEDEFAULT}" ]; then -+ ${grub_editenv} - set save_default="${GRUB_SAVEDEFAULT}" -+ fi - fi - - exit 0 --- -1.8.3.1 - diff --git a/0187-efinet-Add-DHCP-proxy-support.patch b/0187-efinet-Add-DHCP-proxy-support.patch new file mode 100644 index 0000000..dcaac6f --- /dev/null +++ b/0187-efinet-Add-DHCP-proxy-support.patch @@ -0,0 +1,53 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ian Page Hands +Date: Tue, 8 Jun 2021 13:48:56 -0400 +Subject: [PATCH] efinet: Add DHCP proxy support + +If a proxyDHCP configuration is used, the server name, server IP and boot +file values should be taken from the DHCP proxy offer instead of the DHCP +server ack packet. Currently that case is not handled, add support for it. + +Signed-off-by: Ian Page Hands +Signed-off-by: Robbie Harwood +--- + grub-core/net/drivers/efi/efinet.c | 25 +++++++++++++++++++++++-- + 1 file changed, 23 insertions(+), 2 deletions(-) + +diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c +index e11d759f19a..1a24f38a21a 100644 +--- a/grub-core/net/drivers/efi/efinet.c ++++ b/grub-core/net/drivers/efi/efinet.c +@@ -850,10 +850,31 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, + else + { + grub_dprintf ("efinet", "using ipv4 and dhcp\n"); ++ ++ struct grub_net_bootp_packet *dhcp_ack = &pxe_mode->dhcp_ack; ++ ++ if (pxe_mode->proxy_offer_received) ++ { ++ grub_dprintf ("efinet", "proxy offer receive"); ++ struct grub_net_bootp_packet *proxy_offer = &pxe_mode->proxy_offer; ++ ++ if (proxy_offer && dhcp_ack->boot_file[0] == '\0') ++ { ++ grub_dprintf ("efinet", "setting values from proxy offer"); ++ /* Here we got a proxy offer and the dhcp_ack has a nil boot_file ++ * Copy the proxy DHCP offer details into the bootp_packet we are ++ * sending forward as they are the deatils we need. ++ */ ++ *dhcp_ack->server_name = *proxy_offer->server_name; ++ *dhcp_ack->boot_file = *proxy_offer->boot_file; ++ dhcp_ack->server_ip = proxy_offer->server_ip; ++ } ++ } ++ + grub_net_configure_by_dhcp_ack (card->name, card, 0, + (struct grub_net_bootp_packet *) +- packet_buf, +- packet_bufsz, ++ &pxe_mode->dhcp_ack, ++ sizeof (pxe_mode->dhcp_ack), + 1, device, path); + grub_dprintf ("efinet", "device: `%s' path: `%s'\n", *device, *path); + } diff --git a/0188-Also-define-GRUB_EFI_MAX_ALLOCATION_ADDRESS-for-RISC.patch b/0188-Also-define-GRUB_EFI_MAX_ALLOCATION_ADDRESS-for-RISC.patch deleted file mode 100644 index 5d109f0..0000000 --- a/0188-Also-define-GRUB_EFI_MAX_ALLOCATION_ADDRESS-for-RISC.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 2fbd48422e294322dbae05bf90d39c1e92c7846c Mon Sep 17 00:00:00 2001 -From: David Abdurachmanov -Date: Thu, 16 Jan 2020 13:10:10 +0100 -Subject: [PATCH 188/220] Also define GRUB_EFI_MAX_ALLOCATION_ADDRESS for - RISC-V - -The commit "Try to pick better locations for kernel and initrd" missed to -define this macro for the RISC-V (riscv64) architecture, so add it there. - -Signed-off-by: David Abdurachmanov ---- - include/grub/riscv64/efi/memory.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/include/grub/riscv64/efi/memory.h b/include/grub/riscv64/efi/memory.h -index c6cb324..acb61dc 100644 ---- a/include/grub/riscv64/efi/memory.h -+++ b/include/grub/riscv64/efi/memory.h -@@ -2,5 +2,6 @@ - #include - - #define GRUB_EFI_MAX_USABLE_ADDRESS 0xffffffffffffULL -+#define GRUB_EFI_MAX_ALLOCATION_ADDRESS GRUB_EFI_MAX_USABLE_ADDRESS - - #endif /* ! GRUB_MEMORY_CPU_HEADER */ --- -1.8.3.1 - diff --git a/0188-fs-ext2-Ignore-checksum-seed-incompat-feature.patch b/0188-fs-ext2-Ignore-checksum-seed-incompat-feature.patch new file mode 100644 index 0000000..b4a5fd4 --- /dev/null +++ b/0188-fs-ext2-Ignore-checksum-seed-incompat-feature.patch @@ -0,0 +1,54 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Fri, 11 Jun 2021 00:01:29 +0200 +Subject: [PATCH] fs/ext2: Ignore checksum seed incompat feature + +This incompat feature is used to denote that the filesystem stored its +metadata checksum seed in the superblock. This is used to allow tune2fs +to change the UUID on a mounted metadata_csum filesystem without having +to rewrite all the disk metadata. + +But GRUB doesn't use the metadata checksum in anyway, so can just ignore +this feature if is enabled. This is consistent with GRUB filesystem code +in general which just does a best effort to access the filesystem's data. + +It may be removed from the ignored list in the future if supports to do +metadata checksumming verification is added to the read-only FS driver. + +Suggested-by: Eric Sandeen +Suggested-by: Lukas Czerner +Signed-off-by: Javier Martinez Canillas +--- + grub-core/fs/ext2.c | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/grub-core/fs/ext2.c b/grub-core/fs/ext2.c +index e7dd78e6635..731d346f886 100644 +--- a/grub-core/fs/ext2.c ++++ b/grub-core/fs/ext2.c +@@ -103,6 +103,7 @@ GRUB_MOD_LICENSE ("GPLv3+"); + #define EXT4_FEATURE_INCOMPAT_64BIT 0x0080 + #define EXT4_FEATURE_INCOMPAT_MMP 0x0100 + #define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200 ++#define EXT4_FEATURE_INCOMPAT_CSUM_SEED 0x2000 + #define EXT4_FEATURE_INCOMPAT_ENCRYPT 0x10000 + + /* The set of back-incompatible features this driver DOES support. Add (OR) +@@ -123,9 +124,16 @@ GRUB_MOD_LICENSE ("GPLv3+"); + * mmp: Not really back-incompatible - was added as such to + * avoid multiple read-write mounts. Safe to ignore for this + * RO driver. ++ * checksum seed: Not really back-incompatible - was added to allow tools ++ * such as tune2fs to change the UUID on a mounted metadata ++ * checksummed filesystem. Safe to ignore for now since the ++ * driver doesn't support checksum verification. But it must ++ * be removed from this list if that support is added later. ++ * + */ + #define EXT2_DRIVER_IGNORED_INCOMPAT ( EXT3_FEATURE_INCOMPAT_RECOVER \ +- | EXT4_FEATURE_INCOMPAT_MMP) ++ | EXT4_FEATURE_INCOMPAT_MMP \ ++ | EXT4_FEATURE_INCOMPAT_CSUM_SEED) + + + #define EXT3_JOURNAL_MAGIC_NUMBER 0xc03b3998U diff --git a/0189-Don-t-update-the-cmdline-when-generating-legacy-menu.patch b/0189-Don-t-update-the-cmdline-when-generating-legacy-menu.patch new file mode 100644 index 0000000..2e13f39 --- /dev/null +++ b/0189-Don-t-update-the-cmdline-when-generating-legacy-menu.patch @@ -0,0 +1,36 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Thu, 17 Jun 2021 14:31:42 +0200 +Subject: [PATCH] Don't update the cmdline when generating legacy menuentry + commands + +On OPAL ppc64le machines with an old petitboot version that doesn't have +support to parse BLS snippets, the grub2-mkconfig script is executed to +generate menuentry commands from the BLS snippets. + +In this case, the script is executed with the --no-grubenv-update option +that indicates that no side effects should happen when running the script. + +But the options field in the BLS snippets are updated regardless, only do +the update if --no-grubenv-update was not used. + +Signed-off-by: Javier Martinez Canillas +--- + util/grub.d/10_linux.in | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +index 6bceabf3dc9..b95a9a8d7ca 100644 +--- a/util/grub.d/10_linux.in ++++ b/util/grub.d/10_linux.in +@@ -261,7 +261,9 @@ if [ -z "\${kernelopts}" ]; then + fi + EOF + +- update_bls_cmdline ++ if [ "x${GRUB_GRUBENV_UPDATE}" = "xyes" ]; then ++ update_bls_cmdline ++ fi + + if [ "x${BLS_POPULATE_MENU}" = "xtrue" ]; then + populate_menu diff --git a/0189-chainloader-Define-machine-types-for-RISC-V.patch b/0189-chainloader-Define-machine-types-for-RISC-V.patch deleted file mode 100644 index 676c44f..0000000 --- a/0189-chainloader-Define-machine-types-for-RISC-V.patch +++ /dev/null @@ -1,34 +0,0 @@ -From a41c6f6cd8ad540c6503610b2c438072ebde9117 Mon Sep 17 00:00:00 2001 -From: David Abdurachmanov -Date: Sat, 9 Nov 2019 18:06:32 +0000 -Subject: [PATCH 189/220] chainloader: Define machine types for RISC-V - -The commit "Add secureboot support on efi chainloader" didn't add machine -types for RISC-V, so this patch adds them. - -Note, that grub-core/loader/riscv/linux.c is skipped because Linux is not -supported yet. This patch might need a new revision once that's the case. - -Signed-off-by: David Abdurachmanov ---- - grub-core/loader/efi/chainloader.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index f4ddbed..2c529f7 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -316,6 +316,10 @@ static const grub_uint16_t machine_type __attribute__((__unused__)) = - GRUB_PE32_MACHINE_I386; - #elif defined(__ia64__) - GRUB_PE32_MACHINE_IA64; -+#elif defined(__riscv) && (__riscv_xlen == 32) -+ GRUB_PE32_MACHINE_RISCV32; -+#elif defined(__riscv) && (__riscv_xlen == 64) -+ GRUB_PE32_MACHINE_RISCV64; - #else - #error this architecture is not supported by grub2 - #endif --- -1.8.3.1 - diff --git a/0190-Suppress-gettext-error-message.patch b/0190-Suppress-gettext-error-message.patch new file mode 100644 index 0000000..c42dd0d --- /dev/null +++ b/0190-Suppress-gettext-error-message.patch @@ -0,0 +1,33 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Paulo Flabiano Smorigo +Date: Tue, 29 Jun 2021 13:17:42 +0200 +Subject: [PATCH] Suppress gettext error message + +Colin Watson's patch from comment #11 on the upstream bug: +https://savannah.gnu.org/bugs/?35880#comment11 + +Resolves: rhbz#1592124 + +Signed-off-by: Paulo Flabiano Smorigo +--- + grub-core/gettext/gettext.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/grub-core/gettext/gettext.c b/grub-core/gettext/gettext.c +index 4d02e62c109..7ec81ca0b48 100644 +--- a/grub-core/gettext/gettext.c ++++ b/grub-core/gettext/gettext.c +@@ -424,6 +424,13 @@ grub_gettext_init_ext (struct grub_gettext_context *ctx, + grub_free (lang); + } + ++ /* If no translations are available, fall back to untranslated text. */ ++ if (err == GRUB_ERR_FILE_NOT_FOUND) ++ { ++ grub_errno = GRUB_ERR_NONE; ++ return 0; ++ } ++ + if (locale[0] == 'e' && locale[1] == 'n' + && (locale[2] == '\0' || locale[2] == '_')) + grub_errno = err = GRUB_ERR_NONE; diff --git a/0191-RISC-V-Add-__clzdi2-symbol.patch b/0191-RISC-V-Add-__clzdi2-symbol.patch deleted file mode 100644 index 0ddf275..0000000 --- a/0191-RISC-V-Add-__clzdi2-symbol.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 679f2a9866b6cc770734e58fffa3e0a54ed7aded Mon Sep 17 00:00:00 2001 -From: Andreas Schwab -Date: Thu, 19 Sep 2019 09:39:04 +0200 -Subject: [PATCH 191/220] RISC-V: Add __clzdi2 symbol - -This is needed for the zstd module build for riscv64-emu. - -Signed-off-by: Andreas Schwab -Reviewed-by: Daniel Kiper ---- - configure.ac | 2 +- - include/grub/compiler-rt-emu.h | 5 +++++ - 2 files changed, 6 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 5076d63..eff160b 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1444,7 +1444,7 @@ fi - - # Check for libgcc symbols - if test x"$platform" = xemu; then --AC_CHECK_FUNCS(__udivsi3 __umodsi3 __divsi3 __modsi3 __divdi3 __moddi3 __udivdi3 __umoddi3 __ctzdi2 __ctzsi2 __aeabi_uidiv __aeabi_uidivmod __aeabi_idiv __aeabi_idivmod __aeabi_ulcmp __muldi3 __aeabi_lmul __aeabi_memcpy __aeabi_memcpy4 __aeabi_memcpy8 __aeabi_memclr __aeabi_memclr4 __aeabi_memclr8 __aeabi_memset __aeabi_lasr __aeabi_llsl __aeabi_llsr _restgpr_14_x __ucmpdi2 __ashldi3 __ashrdi3 __lshrdi3 __bswapsi2 __bswapdi2 __bzero __register_frame_info __deregister_frame_info ___chkstk_ms __chkstk_ms) -+AC_CHECK_FUNCS(__udivsi3 __umodsi3 __divsi3 __modsi3 __divdi3 __moddi3 __udivdi3 __umoddi3 __ctzdi2 __ctzsi2 __clzdi2 __aeabi_uidiv __aeabi_uidivmod __aeabi_idiv __aeabi_idivmod __aeabi_ulcmp __muldi3 __aeabi_lmul __aeabi_memcpy __aeabi_memcpy4 __aeabi_memcpy8 __aeabi_memclr __aeabi_memclr4 __aeabi_memclr8 __aeabi_memset __aeabi_lasr __aeabi_llsl __aeabi_llsr _restgpr_14_x __ucmpdi2 __ashldi3 __ashrdi3 __lshrdi3 __bswapsi2 __bswapdi2 __bzero __register_frame_info __deregister_frame_info ___chkstk_ms __chkstk_ms) - fi - - if test "x$TARGET_APPLE_LINKER" = x1 ; then -diff --git a/include/grub/compiler-rt-emu.h b/include/grub/compiler-rt-emu.h -index b21425d..fde620a 100644 ---- a/include/grub/compiler-rt-emu.h -+++ b/include/grub/compiler-rt-emu.h -@@ -74,6 +74,11 @@ unsigned - EXPORT_FUNC (__ctzsi2) (grub_uint32_t x); - #endif - -+#ifdef HAVE___CLZDI2 -+int -+EXPORT_FUNC (__clzdi2) (grub_uint64_t x); -+#endif -+ - #ifdef HAVE___AEABI_UIDIV - grub_uint32_t - EXPORT_FUNC (__aeabi_uidiv) (grub_uint32_t a, grub_uint32_t b); --- -1.8.3.1 - diff --git a/0191-grub-set-password-Always-use-boot-grub2-user.cfg-as-.patch b/0191-grub-set-password-Always-use-boot-grub2-user.cfg-as-.patch new file mode 100644 index 0000000..7ecea22 --- /dev/null +++ b/0191-grub-set-password-Always-use-boot-grub2-user.cfg-as-.patch @@ -0,0 +1,42 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Mon, 5 Jul 2021 18:24:22 +0200 +Subject: [PATCH] grub-set-password: Always use /boot/grub2/user.cfg as + password default + +The GRUB configuration file is always placed in /boot/grub2/ now, even for +EFI. But the tool is still creating the user.cfg in the ESP and not there. + +Resolves: rhbz#1955294 + +Signed-off-by: Javier Martinez Canillas +--- + util/grub-set-password.in | 9 +-------- + 1 file changed, 1 insertion(+), 8 deletions(-) + +diff --git a/util/grub-set-password.in b/util/grub-set-password.in +index c0b5ebbfdc5..d8005e5a142 100644 +--- a/util/grub-set-password.in ++++ b/util/grub-set-password.in +@@ -1,11 +1,6 @@ + #!/bin/sh -e + +-EFIDIR=$(grep ^ID= /etc/os-release | sed -e 's/^ID=//' -e 's/rhel/redhat/' -e 's/\"//g') +-if [ -d /sys/firmware/efi/efivars/ ]; then +- grubdir=`echo "/@bootdirname@/efi/EFI/${EFIDIR}/" | sed 's,//*,/,g'` +-else +- grubdir=`echo "/@bootdirname@/@grubdirname@" | sed 's,//*,/,g'` +-fi ++grubdir=`echo "/@bootdirname@/@grubdirname@" | sed 's,//*,/,g'` + + PACKAGE_VERSION="@PACKAGE_VERSION@" + PACKAGE_NAME="@PACKAGE_NAME@" +@@ -116,8 +111,6 @@ if [ -z "${MYPASS}" ]; then + exit 1 + fi + +-# on the ESP, these will fail to set the permissions, but it's okay because +-# the directory is protected. + install -m 0600 /dev/null "${OUTPUT_PATH}/user.cfg" 2>/dev/null || : + chmod 0600 "${OUTPUT_PATH}/user.cfg" 2>/dev/null || : + echo "GRUB2_PASSWORD=${MYPASS}" > "${OUTPUT_PATH}/user.cfg" diff --git a/0192-grub-install-Define-default-platform-for-RISC-V.patch b/0192-grub-install-Define-default-platform-for-RISC-V.patch deleted file mode 100644 index ec8684e..0000000 --- a/0192-grub-install-Define-default-platform-for-RISC-V.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 06417565c4c66b670f72e5b0cc7ae9e7e147aaad Mon Sep 17 00:00:00 2001 -From: Andreas Schwab -Date: Thu, 15 Aug 2019 16:55:13 +0200 -Subject: [PATCH 192/220] grub-install: Define default platform for RISC-V - -Signed-off-by: Andreas Schwab -Reviewed-by: Daniel Kiper -Reviewed-by: Alexander Graf ---- - util/grub-install.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/util/grub-install.c b/util/grub-install.c -index 37fcdac..8b6a037 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -324,6 +324,14 @@ get_default_platform (void) - return "arm64-efi"; - #elif defined (__amd64__) || defined (__x86_64__) || defined (__i386__) - return grub_install_get_default_x86_platform (); -+#elif defined (__riscv) -+#if __riscv_xlen == 32 -+ return "riscv32-efi"; -+#elif __riscv_xlen == 64 -+ return "riscv64-efi"; -+#else -+ return NULL; -+#endif - #else - return NULL; - #endif --- -1.8.3.1 - diff --git a/0192-templates-Check-for-EFI-at-runtime-instead-of-config.patch b/0192-templates-Check-for-EFI-at-runtime-instead-of-config.patch new file mode 100644 index 0000000..e36afa1 --- /dev/null +++ b/0192-templates-Check-for-EFI-at-runtime-instead-of-config.patch @@ -0,0 +1,63 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Tue, 6 Jul 2021 00:38:40 +0200 +Subject: [PATCH] templates: Check for EFI at runtime instead of config + generation time + +The 30_uefi-firmware template checks if an OsIndicationsSupported UEFI var +exists and EFI_OS_INDICATIONS_BOOT_TO_FW_UI bit is set, to decide whether +a "fwsetup" menu entry would be added or not to the GRUB menu. + +But this has the problem that it will only work if the configuration file +was created on an UEFI machine that supports booting to a firmware UI. + +This for example doesn't support creating GRUB config files when executing +on systems that support both UEFI and legacy BIOS booting. Since creating +the config file from legacy BIOS wouldn't allow to access the firmware UI. + +To prevent this, make the template to unconditionally create the grub.cfg +snippet but check at runtime if was booted through UEFI to decide if this +entry should be added. That way it won't be added when booting with BIOS. + +There's no need to check if EFI_OS_INDICATIONS_BOOT_TO_FW_UI bit is set, +since that's already done by the "fwsetup" command when is executed. + +Resolves: rhbz#1823864 + +Signed-off-by: Javier Martinez Canillas +--- + util/grub.d/30_uefi-firmware.in | 21 ++++++++------------- + 1 file changed, 8 insertions(+), 13 deletions(-) + +diff --git a/util/grub.d/30_uefi-firmware.in b/util/grub.d/30_uefi-firmware.in +index d344d3883d7..b6041b55e2a 100644 +--- a/util/grub.d/30_uefi-firmware.in ++++ b/util/grub.d/30_uefi-firmware.in +@@ -26,19 +26,14 @@ export TEXTDOMAINDIR="@localedir@" + + . "$pkgdatadir/grub-mkconfig_lib" + +-EFI_VARS_DIR=/sys/firmware/efi/efivars +-EFI_GLOBAL_VARIABLE=8be4df61-93ca-11d2-aa0d-00e098032b8c +-OS_INDICATIONS="$EFI_VARS_DIR/OsIndicationsSupported-$EFI_GLOBAL_VARIABLE" ++LABEL="UEFI Firmware Settings" + +-if [ -e "$OS_INDICATIONS" ] && \ +- [ "$(( $(printf 0x%x \'"$(cat $OS_INDICATIONS | cut -b5)"\') & 1 ))" = 1 ]; then +- LABEL="UEFI Firmware Settings" ++gettext_printf "Adding boot menu entry for UEFI Firmware Settings ...\n" >&2 + +- gettext_printf "Adding boot menu entry for UEFI Firmware Settings ...\n" >&2 +- +- cat << EOF +-menuentry '$LABEL' \$menuentry_id_option 'uefi-firmware' { +- fwsetup +-} +-EOF ++cat << EOF ++if [ "\$grub_platform" = "efi" ]; then ++ menuentry '$LABEL' \$menuentry_id_option 'uefi-firmware' { ++ fwsetup ++ } + fi ++EOF diff --git a/0193-blscfg-Always-use-the-root-variable-to-search-for-BL.patch b/0193-blscfg-Always-use-the-root-variable-to-search-for-BL.patch deleted file mode 100644 index 612fc3b..0000000 --- a/0193-blscfg-Always-use-the-root-variable-to-search-for-BL.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 2dba8190a3e18837d37b316e82890b60993b18e5 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Tue, 14 Jan 2020 17:41:29 +0100 -Subject: [PATCH 193/220] blscfg: Always use the root variable to search for - BLS snippets - -The boot and root variables are set by grub2-mkconfig to tell GRUB what -are the devices and partitions used as the EFI System Partition (ESP) -and to store the /boot directory (or used as the /boot mount point). - -But the boot variable is not needed anymore, this was added because the -blscfg module used to search for the BLS snippets in the ESP, but was -later changed to always search for the BLS files in /boot even for EFI. - -When doing that change, the logic was made backwards and so the boot -variable is wrongly used for legacy BIOS. This only works because this -is set to the same value as the root variable. - -So the correct thing to do is to always use the root variable to search -the BLS snippets, since that is set to the partition that stores them. - -Signed-off-by: Javier Martinez Canillas ---- - grub-core/commands/blscfg.c | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 069db72..24e35a4 100644 ---- a/grub-core/commands/blscfg.c -+++ b/grub-core/commands/blscfg.c -@@ -1018,14 +1018,12 @@ bls_load_entries (const char *path) - if (!devid) { - #ifdef GRUB_MACHINE_EMU - devid = "host"; --#elif defined(GRUB_MACHINE_EFI) -- devid = grub_env_get ("root"); - #else -- devid = grub_env_get ("boot"); -+ devid = grub_env_get ("root"); - #endif - if (!devid) - return grub_error (GRUB_ERR_FILE_NOT_FOUND, -- N_("variable `%s' isn't set"), "boot"); -+ N_("variable `%s' isn't set"), "root"); - } - - grub_dprintf ("blscfg", "opening %s\n", devid); --- -1.8.3.1 - diff --git a/0193-efi-Print-an-error-if-boot-to-firmware-setup-is-not-.patch b/0193-efi-Print-an-error-if-boot-to-firmware-setup-is-not-.patch new file mode 100644 index 0000000..65b4aec --- /dev/null +++ b/0193-efi-Print-an-error-if-boot-to-firmware-setup-is-not-.patch @@ -0,0 +1,92 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Tue, 6 Jul 2021 01:10:18 +0200 +Subject: [PATCH] efi: Print an error if boot to firmware setup is not + supported + +The "fwsetup" command is only registered if the firmware supports booting +to the firmware setup UI. But it could be possible that the GRUB config +already contains a "fwsetup" entry, because it was generated in a machine +that has support for this feature. + +To prevent users getting a "can't find command `fwsetup`" error if it is +not supported by the firmware, let's just always register the command but +print a more accurate message if the firmware doesn't support this option. + +Resolves: rhbz#1823864 + +Signed-off-by: Javier Martinez Canillas +--- + grub-core/commands/efi/efifwsetup.c | 43 ++++++++++++++++++++----------------- + 1 file changed, 23 insertions(+), 20 deletions(-) + +diff --git a/grub-core/commands/efi/efifwsetup.c b/grub-core/commands/efi/efifwsetup.c +index eaca0328388..328c45e82e0 100644 +--- a/grub-core/commands/efi/efifwsetup.c ++++ b/grub-core/commands/efi/efifwsetup.c +@@ -27,6 +27,25 @@ + + GRUB_MOD_LICENSE ("GPLv3+"); + ++static grub_efi_boolean_t ++efifwsetup_is_supported (void) ++{ ++ grub_efi_uint64_t *os_indications_supported = NULL; ++ grub_size_t oi_size = 0; ++ grub_efi_guid_t global = GRUB_EFI_GLOBAL_VARIABLE_GUID; ++ ++ grub_efi_get_variable ("OsIndicationsSupported", &global, &oi_size, ++ (void **) &os_indications_supported); ++ ++ if (!os_indications_supported) ++ return 0; ++ ++ if (*os_indications_supported & GRUB_EFI_OS_INDICATIONS_BOOT_TO_FW_UI) ++ return 1; ++ ++ return 0; ++} ++ + static grub_err_t + grub_cmd_fwsetup (grub_command_t cmd __attribute__ ((unused)), + int argc __attribute__ ((unused)), +@@ -38,6 +57,10 @@ grub_cmd_fwsetup (grub_command_t cmd __attribute__ ((unused)), + grub_size_t oi_size; + grub_efi_guid_t global = GRUB_EFI_GLOBAL_VARIABLE_GUID; + ++ if (!efifwsetup_is_supported ()) ++ return grub_error (GRUB_ERR_INVALID_COMMAND, ++ N_("Reboot to firmware setup is not supported")); ++ + grub_efi_get_variable ("OsIndications", &global, &oi_size, + (void **) &old_os_indications); + +@@ -56,28 +79,8 @@ grub_cmd_fwsetup (grub_command_t cmd __attribute__ ((unused)), + + static grub_command_t cmd = NULL; + +-static grub_efi_boolean_t +-efifwsetup_is_supported (void) +-{ +- grub_efi_uint64_t *os_indications_supported = NULL; +- grub_size_t oi_size = 0; +- grub_efi_guid_t global = GRUB_EFI_GLOBAL_VARIABLE_GUID; +- +- grub_efi_get_variable ("OsIndicationsSupported", &global, &oi_size, +- (void **) &os_indications_supported); +- +- if (!os_indications_supported) +- return 0; +- +- if (*os_indications_supported & GRUB_EFI_OS_INDICATIONS_BOOT_TO_FW_UI) +- return 1; +- +- return 0; +-} +- + GRUB_MOD_INIT (efifwsetup) + { +- if (efifwsetup_is_supported ()) + cmd = grub_register_command ("fwsetup", grub_cmd_fwsetup, NULL, + N_("Reboot into firmware setup menu.")); + diff --git a/backport-arm64-Fix-EFI-loader-kernel-image-allocation.patch b/0194-arm64-Fix-EFI-loader-kernel-image-allocation.patch similarity index 73% rename from backport-arm64-Fix-EFI-loader-kernel-image-allocation.patch rename to 0194-arm64-Fix-EFI-loader-kernel-image-allocation.patch index c4b26c0..0472a42 100644 --- a/backport-arm64-Fix-EFI-loader-kernel-image-allocation.patch +++ b/0194-arm64-Fix-EFI-loader-kernel-image-allocation.patch @@ -1,6 +1,7 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Benjamin Herrenschmidt Date: Mon, 2 Aug 2021 23:10:01 +1000 -Subject: [PATCH 1/2] arm64: Fix EFI loader kernel image allocation +Subject: [PATCH] arm64: Fix EFI loader kernel image allocation We are currently allocating just enough memory for the file size, which means that the kernel BSS is in limbo (and not even zeroed). @@ -13,15 +14,20 @@ actual size it needs, including BSS, and make sure we clear it, and honors the specified alignment for the image. Signed-off-by: Benjamin Herrenschmidt +[pjones: arm: check for the PE magic for the compiled arch] +Signed-off-by: Peter Jones +Signed-off-by: Robbie Harwood --- - grub-core/loader/arm64/linux.c | 102 ++++++++++++++++++++++----------- - 1 file changed, 67 insertions(+), 35 deletions(-) + grub-core/loader/arm64/linux.c | 100 +++++++++++++++++++++++++++-------------- + include/grub/arm/linux.h | 1 + + include/grub/arm64/linux.h | 1 + + 3 files changed, 68 insertions(+), 34 deletions(-) diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index a18c487..a803aa9 100644 +index 47f8cf0d84b..f18d90bd749 100644 --- a/grub-core/loader/arm64/linux.c +++ b/grub-core/loader/arm64/linux.c -@@ -40,6 +40,8 @@ GRUB_MOD_LICENSE ("GPLv3+"); +@@ -41,6 +41,8 @@ GRUB_MOD_LICENSE ("GPLv3+"); static grub_dl_t my_mod; static int loaded; @@ -30,7 +36,7 @@ index a18c487..a803aa9 100644 static void *kernel_addr; static grub_uint64_t kernel_size; static grub_uint32_t handover_offset; -@@ -223,9 +225,8 @@ grub_linux_unload (void) +@@ -204,9 +206,8 @@ grub_linux_unload (void) GRUB_EFI_BYTES_TO_PAGES (initrd_end - initrd_start)); initrd_start = initrd_end = 0; grub_free (linux_args); @@ -42,7 +48,7 @@ index a18c487..a803aa9 100644 grub_fdt_unload (); return GRUB_ERR_NONE; } -@@ -330,14 +331,35 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), +@@ -311,14 +312,35 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), return grub_errno; } @@ -56,7 +62,7 @@ index a18c487..a803aa9 100644 + + pe = (void *)((unsigned long)kernel + lh->hdr_offset); + -+ if (pe->opt.magic != GRUB_PE32_PE64_MAGIC) ++ if (pe->opt.magic != GRUB_PE32_PEXX_MAGIC) + return grub_error(GRUB_ERR_BAD_OS, "Invalid PE optional header magic"); + + *total_size = pe->opt.image_size; @@ -80,11 +86,10 @@ index a18c487..a803aa9 100644 int rc; grub_dl_ref (my_mod); -@@ -351,41 +373,25 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - file = grub_file_open (argv[0], GRUB_FILE_TYPE_LINUX_KERNEL); +@@ -333,40 +355,24 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), if (!file) goto fail; -- + - kernel_size = grub_file_size (file); - - if (grub_file_read (file, &lh, sizeof (lh)) < (long) sizeof (lh)) @@ -100,7 +105,6 @@ index a18c487..a803aa9 100644 - grub_dprintf ("linux", "kernel numpages: %lld\n", - (long long) GRUB_EFI_BYTES_TO_PAGES (kernel_size)); - if (!kernel_addr) -+ + filelen = grub_file_size (file); + kernel = grub_malloc(filelen); + if (!kernel) @@ -124,14 +128,14 @@ index a18c487..a803aa9 100644 - grub_dprintf ("linux", "kernel @ %p\n", kernel_addr); - - if (grub_efi_secure_boot ()) + if (grub_efi_get_secureboot () == GRUB_EFI_SECUREBOOT_MODE_ENABLED) { - rc = grub_linuxefi_secure_validate (kernel_addr, kernel_size); + rc = grub_linuxefi_secure_validate (kernel, filelen); if (rc <= 0) { grub_error (GRUB_ERR_INVALID_COMMAND, -@@ -394,8 +400,32 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -375,8 +381,32 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), } } @@ -166,7 +170,7 @@ index a18c487..a803aa9 100644 cmdline_size = grub_loader_cmdline_size (argc, argv) + sizeof (LINUX_IMAGE); linux_args = grub_malloc (cmdline_size); -@@ -419,6 +449,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -400,6 +430,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), } fail: @@ -176,7 +180,7 @@ index a18c487..a803aa9 100644 if (file) grub_file_close (file); -@@ -431,9 +464,8 @@ fail: +@@ -412,9 +445,8 @@ fail: if (linux_args && !loaded) grub_free (linux_args); @@ -188,5 +192,27 @@ index a18c487..a803aa9 100644 return grub_errno; } --- -2.23.0 +diff --git a/include/grub/arm/linux.h b/include/grub/arm/linux.h +index b582f67f661..966a5074f53 100644 +--- a/include/grub/arm/linux.h ++++ b/include/grub/arm/linux.h +@@ -44,6 +44,7 @@ struct grub_arm_linux_pe_header + + #if defined(__arm__) + # define GRUB_LINUX_ARMXX_MAGIC_SIGNATURE GRUB_LINUX_ARM_MAGIC_SIGNATURE ++# define GRUB_PE32_PEXX_MAGIC GRUB_PE32_PE32_MAGIC + # define linux_arch_kernel_header linux_arm_kernel_header + # define grub_armxx_linux_pe_header grub_arm_linux_pe_header + #endif +diff --git a/include/grub/arm64/linux.h b/include/grub/arm64/linux.h +index ea030312df3..422bf2bf24b 100644 +--- a/include/grub/arm64/linux.h ++++ b/include/grub/arm64/linux.h +@@ -48,6 +48,7 @@ struct grub_arm64_linux_pe_header + + #if defined(__aarch64__) + # define GRUB_LINUX_ARMXX_MAGIC_SIGNATURE GRUB_LINUX_ARM64_MAGIC_SIGNATURE ++# define GRUB_PE32_PEXX_MAGIC GRUB_PE32_PE64_MAGIC + # define linux_arch_kernel_header linux_arm64_kernel_header + # define grub_armxx_linux_pe_header grub_arm64_linux_pe_header + #endif diff --git a/0195-normal-main-Discover-the-device-to-read-the-config-f.patch b/0195-normal-main-Discover-the-device-to-read-the-config-f.patch new file mode 100644 index 0000000..8009038 --- /dev/null +++ b/0195-normal-main-Discover-the-device-to-read-the-config-f.patch @@ -0,0 +1,123 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Mon, 30 Aug 2021 12:31:18 +0200 +Subject: [PATCH] normal/main: Discover the device to read the config from as a + fallback + +The GRUB core.img is generated locally, when this is done the grub2-probe +tool figures out the device and partition that needs to be read to parse +the GRUB configuration file. + +But in some cases the core.img can't be generated on the host and instead +has to be done at package build time. For example, if needs to get signed +with a key that's only available on the package building infrastructure. + +If that's the case, the prefix variable won't have a device and partition +but only a directory path. So there's no way for GRUB to know from which +device has to read the configuration file. + +To allow GRUB to continue working on that scenario, fallback to iterating +over all the available devices, if reading the config failed when using +the prefix and fw_path variables. + +Signed-off-by: Javier Martinez Canillas +--- + grub-core/normal/main.c | 58 +++++++++++++++++++++++++++++++++++++++++++------ + 1 file changed, 51 insertions(+), 7 deletions(-) + +diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c +index 4ebdbd228d4..b72fe3d653c 100644 +--- a/grub-core/normal/main.c ++++ b/grub-core/normal/main.c +@@ -337,18 +337,13 @@ grub_enter_normal_mode (const char *config) + } + + static grub_err_t +-grub_try_normal (const char *variable) ++grub_try_normal_prefix (const char *prefix) + { + char *config; +- const char *prefix; + grub_err_t err = GRUB_ERR_FILE_NOT_FOUND; + const char *net_search_cfg; + int disable_net_search = 0; + +- prefix = grub_env_get (variable); +- if (!prefix) +- return GRUB_ERR_FILE_NOT_FOUND; +- + net_search_cfg = grub_env_get ("feature_net_search_cfg"); + if (net_search_cfg && net_search_cfg[0] == 'n') + disable_net_search = 1; +@@ -362,7 +357,7 @@ grub_try_normal (const char *variable) + config = grub_malloc (config_len); + + if (! config) +- return GRUB_ERR_FILE_NOT_FOUND; ++ return err; + + grub_snprintf (config, config_len, "%s/grub.cfg", prefix); + err = grub_net_search_config_file (config); +@@ -391,6 +386,53 @@ grub_try_normal (const char *variable) + return err; + } + ++static int ++grub_try_normal_dev (const char *name, void *data) ++{ ++ grub_err_t err; ++ const char *prefix = grub_xasprintf ("(%s)%s", name, (char *)data); ++ ++ if (!prefix) ++ return 0; ++ ++ err = grub_try_normal_prefix (prefix); ++ if (err == GRUB_ERR_NONE) ++ return 1; ++ ++ return 0; ++} ++ ++static grub_err_t ++grub_try_normal_discover (void) ++{ ++ char *prefix = grub_env_get ("prefix"); ++ grub_err_t err = GRUB_ERR_FILE_NOT_FOUND; ++ ++ if (!prefix) ++ return err; ++ ++ if (grub_device_iterate (grub_try_normal_dev, (void *)prefix)) ++ return GRUB_ERR_NONE; ++ ++ return err; ++} ++ ++static grub_err_t ++grub_try_normal (const char *variable) ++{ ++ grub_err_t err = GRUB_ERR_FILE_NOT_FOUND; ++ const char *prefix; ++ ++ if (!variable) ++ return err; ++ ++ prefix = grub_env_get (variable); ++ if (!prefix) ++ return err; ++ ++ return grub_try_normal_prefix (prefix); ++} ++ + /* Enter normal mode from rescue mode. */ + static grub_err_t + grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)), +@@ -405,6 +447,8 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)), + err = grub_try_normal ("fw_path"); + if (err == GRUB_ERR_FILE_NOT_FOUND) + err = grub_try_normal ("prefix"); ++ if (err == GRUB_ERR_FILE_NOT_FOUND) ++ err = grub_try_normal_discover (); + if (err == GRUB_ERR_FILE_NOT_FOUND) + grub_enter_normal_mode (0); + } diff --git a/0196-powerpc-adjust-setting-of-prefix-for-signed-binary-c.patch b/0196-powerpc-adjust-setting-of-prefix-for-signed-binary-c.patch new file mode 100644 index 0000000..7f3161e --- /dev/null +++ b/0196-powerpc-adjust-setting-of-prefix-for-signed-binary-c.patch @@ -0,0 +1,88 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Axtens +Date: Mon, 19 Jul 2021 14:35:55 +1000 +Subject: [PATCH] powerpc: adjust setting of prefix for signed binary case + +On RHEL-signed powerpc grub, we sign a grub with -p /grub2 and expect +that there's a boot partition. + +Unfortunately grub_set_prefix_and_root tries to convert this to +($fwdevice)/grub2. This ends up being (ieee1275/disk)/grub2 and that +falls apart pretty quickly - there's no file-system on ieee1275/disk, +and it makes the search routine try things like +(ieee1275/disk,msdos2)(ieee1275/disk)/grub2 which also doesn't work. + +Detect if we would be about to create (ieee1275/disk)/path and don't: +preserve a prefix of /path instead and hope the search later finds us. + +Related: rhbz#1899864 + +Signed-off-by: Daniel Axtens +[rharwood@redhat.com: squash in fixup commit] +Signed-off-by: Robbie Harwood +--- + grub-core/kern/main.c | 49 ++++++++++++++++++++++++++++++++++++++++++++----- + 1 file changed, 44 insertions(+), 5 deletions(-) + +diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c +index b573be6650d..3fc34014726 100644 +--- a/grub-core/kern/main.c ++++ b/grub-core/kern/main.c +@@ -216,13 +216,52 @@ grub_set_prefix_and_root (void) + if (device) + { + char *prefix_set; +- +- prefix_set = grub_xasprintf ("(%s)%s", device, path ? : ""); +- if (prefix_set) ++ ++#ifdef __powerpc__ ++ /* We have to be careful here on powerpc-ieee1275 + signed grub. We ++ will have signed something with a prefix that doesn't have a device ++ because we cannot know in advance what partition we're on. ++ ++ We will have had !device earlier, so we will have set device=fwdevice ++ However, we want to make sure we do not end up setting prefix to be ++ ($fwdevice)/path, because we will then end up trying to boot or search ++ based on a prefix of (ieee1275/disk)/path, which will not work because ++ it's missing a partition. ++ ++ Also: ++ - You can end up with a device with an FS directly on it, without ++ a partition, e.g. ieee1275/cdrom. ++ ++ - powerpc-ieee1275 + grub-install sets e.g. prefix=(,gpt2)/path, ++ which will have now been extended to device=$fwdisk,partition ++ and path=/path ++ ++ - PowerVM will give us device names like ++ ieee1275//vdevice/v-scsi@3000006c/disk@8100000000000000 ++ and we don't want to try to encode some sort of truth table about ++ what sorts of paths represent disks with partition tables and those ++ without partition tables. ++ ++ So we act unless there is a comma in the device, which would indicate ++ a partition has already been specified. ++ ++ (If we only have a path, the code in normal to discover config files ++ will try both without partitions and then with any partitions so we ++ will cover both CDs and HDs.) ++ */ ++ if (grub_strchr (device, ',') == NULL) ++ grub_env_set ("prefix", path); ++ else ++#endif + { +- grub_env_set ("prefix", prefix_set); +- grub_free (prefix_set); ++ prefix_set = grub_xasprintf ("(%s)%s", device, path ? : ""); ++ if (prefix_set) ++ { ++ grub_env_set ("prefix", prefix_set); ++ grub_free (prefix_set); ++ } + } ++ + grub_env_set ("root", device); + } + diff --git a/0197-fs-xfs-Fix-unreadable-filesystem-with-v4-superblock.patch b/0197-fs-xfs-Fix-unreadable-filesystem-with-v4-superblock.patch new file mode 100644 index 0000000..893d8b4 --- /dev/null +++ b/0197-fs-xfs-Fix-unreadable-filesystem-with-v4-superblock.patch @@ -0,0 +1,118 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Erwan Velu +Date: Wed, 25 Aug 2021 15:31:52 +0200 +Subject: [PATCH] fs/xfs: Fix unreadable filesystem with v4 superblock + +The commit 8b1e5d193 (fs/xfs: Add bigtime incompat feature support) +introduced the bigtime support by adding some features in v3 inodes. +This change extended grub_xfs_inode struct by 76 bytes but also changed +the computation of XFS_V2_INODE_SIZE and XFS_V3_INODE_SIZE. Prior this +commit, XFS_V2_INODE_SIZE was 100 bytes. After the commit it's 84 bytes +XFS_V2_INODE_SIZE becomes 16 bytes too small. + +As a result, the data structures aren't properly aligned and the GRUB +generates "attempt to read or write outside of partition" errors when +trying to read the XFS filesystem: + + GNU GRUB version 2.11 + .... + grub> set debug=efi,gpt,xfs + grub> insmod part_gpt + grub> ls (hd0,gpt1)/ + partmap/gpt.c:93: Read a valid GPT header + partmap/gpt.c:115: GPT entry 0: start=4096, length=1953125 + fs/xfs.c:931: Reading sb + fs/xfs.c:270: Validating superblock + fs/xfs.c:295: XFS v4 superblock detected + fs/xfs.c:962: Reading root ino 128 + fs/xfs.c:515: Reading inode (128) - 64, 0 + fs/xfs.c:515: Reading inode (739521961424144223) - 344365866970255880, 3840 + error: attempt to read or write outside of partition. + +This commit change the XFS_V2_INODE_SIZE computation by subtracting 76 +bytes instead of 92 bytes from the actual size of grub_xfs_inode struct. +This 76 bytes value comes from added members: + 20 grub_uint8_t unused5 + 1 grub_uint64_t flags2 + 48 grub_uint8_t unused6 + +This patch explicitly splits the v2 and v3 parts of the structure. +The unused4 is still ending of the v2 structures and the v3 starts +at unused5. Thanks to this we will avoid future corruptions of v2 +or v3 inodes. + +The XFS_V2_INODE_SIZE is returning to its expected size and the +filesystem is back to a readable state: + + GNU GRUB version 2.11 + .... + grub> set debug=efi,gpt,xfs + grub> insmod part_gpt + grub> ls (hd0,gpt1)/ + partmap/gpt.c:93: Read a valid GPT header + partmap/gpt.c:115: GPT entry 0: start=4096, length=1953125 + fs/xfs.c:931: Reading sb + fs/xfs.c:270: Validating superblock + fs/xfs.c:295: XFS v4 superblock detected + fs/xfs.c:962: Reading root ino 128 + fs/xfs.c:515: Reading inode (128) - 64, 0 + fs/xfs.c:515: Reading inode (128) - 64, 0 + fs/xfs.c:931: Reading sb + fs/xfs.c:270: Validating superblock + fs/xfs.c:295: XFS v4 superblock detected + fs/xfs.c:962: Reading root ino 128 + fs/xfs.c:515: Reading inode (128) - 64, 0 + fs/xfs.c:515: Reading inode (128) - 64, 0 + fs/xfs.c:515: Reading inode (128) - 64, 0 + fs/xfs.c:515: Reading inode (131) - 64, 768 + efi/ fs/xfs.c:515: Reading inode (3145856) - 1464904, 0 + grub2/ fs/xfs.c:515: Reading inode (132) - 64, 1024 + grub/ fs/xfs.c:515: Reading inode (139) - 64, 2816 + grub> + +Fixes: 8b1e5d193 (fs/xfs: Add bigtime incompat feature support) + +Signed-off-by: Erwan Velu +Tested-by: Carlos Maiolino +Reviewed-by: Daniel Kiper +(cherry picked from commit a4b495520e4dc41a896a8b916a64eda9970c50ea) +--- + grub-core/fs/xfs.c | 14 ++++++++++---- + 1 file changed, 10 insertions(+), 4 deletions(-) + +diff --git a/grub-core/fs/xfs.c b/grub-core/fs/xfs.c +index 0f524c3a8a6..e3816d1ec4a 100644 +--- a/grub-core/fs/xfs.c ++++ b/grub-core/fs/xfs.c +@@ -192,6 +192,11 @@ struct grub_xfs_time_legacy + grub_uint32_t nanosec; + } GRUB_PACKED; + ++/* ++ * The struct grub_xfs_inode layout was taken from the ++ * struct xfs_dinode_core which is described here: ++ * https://mirrors.edge.kernel.org/pub/linux/utils/fs/xfs/docs/xfs_filesystem_structure.pdf ++ */ + struct grub_xfs_inode + { + grub_uint8_t magic[2]; +@@ -208,14 +213,15 @@ struct grub_xfs_inode + grub_uint32_t nextents; + grub_uint16_t unused3; + grub_uint8_t fork_offset; +- grub_uint8_t unused4[37]; ++ grub_uint8_t unused4[17]; /* Last member of inode v2. */ ++ grub_uint8_t unused5[20]; /* First member of inode v3. */ + grub_uint64_t flags2; +- grub_uint8_t unused5[48]; ++ grub_uint8_t unused6[48]; /* Last member of inode v3. */ + } GRUB_PACKED; + + #define XFS_V3_INODE_SIZE sizeof(struct grub_xfs_inode) +-/* Size of struct grub_xfs_inode until fork_offset (included). */ +-#define XFS_V2_INODE_SIZE (XFS_V3_INODE_SIZE - 92) ++/* Size of struct grub_xfs_inode v2, up to unused4 member included. */ ++#define XFS_V2_INODE_SIZE (XFS_V3_INODE_SIZE - 76) + + struct grub_xfs_dirblock_tail + { diff --git a/0198-Print-module-name-on-license-check-failure.patch b/0198-Print-module-name-on-license-check-failure.patch new file mode 100644 index 0000000..c4b9a13 --- /dev/null +++ b/0198-Print-module-name-on-license-check-failure.patch @@ -0,0 +1,48 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Robbie Harwood +Date: Tue, 12 Oct 2021 12:34:23 -0400 +Subject: [PATCH] Print module name on license check failure + +At the very least, this will make it easier to track down the problem +module - or, if something else has gone wrong, provide more information +for debugging. + +Signed-off-by: Robbie Harwood +--- + grub-core/kern/dl.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c +index 9557254035e..f3044945742 100644 +--- a/grub-core/kern/dl.c ++++ b/grub-core/kern/dl.c +@@ -528,14 +528,16 @@ grub_dl_find_section_index (Elf_Ehdr *e, const char *name) + Be sure to understand your license obligations. + */ + static grub_err_t +-grub_dl_check_license (Elf_Ehdr *e) ++grub_dl_check_license (grub_dl_t mod, Elf_Ehdr *e) + { + Elf_Shdr *s = grub_dl_find_section (e, ".module_license"); + if (s && (grub_strcmp ((char *) e + s->sh_offset, "LICENSE=GPLv3") == 0 + || grub_strcmp ((char *) e + s->sh_offset, "LICENSE=GPLv3+") == 0 + || grub_strcmp ((char *) e + s->sh_offset, "LICENSE=GPLv2+") == 0)) + return GRUB_ERR_NONE; +- return grub_error (GRUB_ERR_BAD_MODULE, "incompatible license"); ++ return grub_error (GRUB_ERR_BAD_MODULE, ++ "incompatible license in module %s: %s", mod->name, ++ (char *) e + s->sh_offset); + } + + static grub_err_t +@@ -743,8 +745,8 @@ grub_dl_load_core_noinit (void *addr, grub_size_t size) + constitutes linking) and GRUB core being licensed under GPLv3+. + Be sure to understand your license obligations. + */ +- if (grub_dl_check_license (e) +- || grub_dl_resolve_name (mod, e) ++ if (grub_dl_resolve_name (mod, e) ++ || grub_dl_check_license (mod, e) + || grub_dl_resolve_dependencies (mod, e) + || grub_dl_load_segments (mod, e) + || grub_dl_resolve_symbols (mod, e) diff --git a/0199-blscfg-return-NULL-instead-of-a-zero-length-array-in.patch b/0199-blscfg-return-NULL-instead-of-a-zero-length-array-in.patch deleted file mode 100644 index c27f789..0000000 --- a/0199-blscfg-return-NULL-instead-of-a-zero-length-array-in.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 2b8388901cc52d875baa490a97dd314ef51ed0d9 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Mon, 16 Mar 2020 13:51:45 +0100 -Subject: [PATCH 199/220] blscfg: return NULL instead of a zero-length array in - bls_make_list() - -The bls_make_list() function returns a list of all the values for a given -key and if there is none a NULL pointer should be returned. But currently -is returnin a zero-length array instead. - -This makes the callers to wrongly assume that there are values for a key -and populate wrong menu entries. For example menu entries are populated -with an initrd command even if there is no initrd fiel in the BLS file. - -Resolves: rhbz#1806022 - -Signed-off-by: Javier Martinez Canillas ---- - grub-core/commands/blscfg.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 24e35a4..9263a5c 100644 ---- a/grub-core/commands/blscfg.c -+++ b/grub-core/commands/blscfg.c -@@ -600,6 +600,12 @@ static char **bls_make_list (struct bls_entry *entry, const char *key, int *num) - list[nlist] = NULL; - } - -+ if (!nlist) -+ { -+ grub_free (list); -+ return NULL; -+ } -+ - if (num) - *num = nlist; - --- -1.8.3.1 - diff --git a/0199-powerpc-ieee1275-load-grub-at-4MB-not-2MB.patch b/0199-powerpc-ieee1275-load-grub-at-4MB-not-2MB.patch new file mode 100644 index 0000000..a80727e --- /dev/null +++ b/0199-powerpc-ieee1275-load-grub-at-4MB-not-2MB.patch @@ -0,0 +1,106 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Axtens +Date: Fri, 22 Oct 2021 09:53:15 +1100 +Subject: [PATCH] powerpc-ieee1275: load grub at 4MB, not 2MB + +This was first reported under PFW but reproduces under SLOF. + + - The core.elf was 2126152 = 0x207148 bytes in size with the following + program headers (per readelf): + +Entry point 0x200000 +There are 4 program headers, starting at offset 52 + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x000160 0x00200000 0x00200000 0x21f98 0x2971c RWE 0x8 + GNU_STACK 0x0220f8 0x00000000 0x00000000 0x00000 0x00000 RWE 0x4 + LOAD 0x0220f8 0x00232000 0x00232000 0x1e4e50 0x1e4e50 RWE 0x4 + NOTE 0x206f48 0x00000000 0x00000000 0x00200 0x00000 R 0x4 + + - SLOF places the ELF file at 0x4000 (after the reserved space for + interrupt handlers etc.) upwards. The image was 2126152 = 0x207148 + bytes in size, so it runs from 0x4000 - 0x20b148. We'll call 0x4000 the + load address. + +0x0 0x4000 0x20b148 + |----------|--------------| + | reserved | ELF contents | + + - SLOF then copies the first LOAD program header (for .text). That runs + for 0x21f98 bytes. It runs from + (load addr + 0x160) to (load addr + 0x160 + 0x21f98) + = 0x4160 to 0x260f8 + and we copy it to 0x200000 to 0x221f98. This overwrites the end of the + image: + +0x0 0x4000 0x200000 0x221f98 + |----------|------------|---------------| + | reserved | ELF cont.. | .text section | + + - SLOF zeros the bss up to PhysAddr + MemSize = 0x22971c + +0x0 0x4000 0x200000 0x221f98 0x22971c + |----------|------------|---------------|--------| + | reserved | ELF cont.. | .text section | bss 0s | + + - SLOF then goes to fulfil the next LOAD header (for mods), which is + for 0x1e4e50 bytes. We copy from + (load addr + 0x220f8) to (load addr + 0x220f8 + 0x1e4e50) + = 0x260f8 to 0x20af48 + and we copy it to 0x232000 to 0x416e50: + +0x0 0x4000 0x200000 0x221f98 0x22971c + |----------|------------|---------------|--------| + | reserved | ELF cont.. | .text section | bss 0s | + |-------------| + | copied area | + 0x260f8 0x20af48 + + This goes poorly: + +0x0 0x4000 0x200000 0x221f98 0x22971c 0x232000 0x40bf08 0x416e50 + |----------|------------|---------------|--------|-----|-----------|-------------| + | reserved | ELF cont.. | .text section | bss 0s | pad | some mods | .text start | + +This matches the observations on the running system - 0x40bf08 was where +the contents of memory no longer matched the contents of the ELF file. + +This was reported as a license verification failure on SLOF as the +last module's .module_license section fell past where the corruption +began. + +Signed-off-by: Daniel Axtens +[rharwood@redhat.com: trim very detailed commit message] +Signed-off-by: Robbie Harwood +--- + grub-core/Makefile.core.def | 2 +- + include/grub/offsets.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 3f3459b2c70..6b00eb55575 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -89,7 +89,7 @@ kernel = { + i386_xen_pvh_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x100000'; + + mips_loongson_ldflags = '-Wl,-Ttext,0x80200000'; +- powerpc_ieee1275_ldflags = '-Wl,-Ttext,0x200000'; ++ powerpc_ieee1275_ldflags = '-Wl,-Ttext,0x400000'; + sparc64_ieee1275_ldflags = '-Wl,-Ttext,0x4400'; + mips_arc_ldflags = '-Wl,-Ttext,$(TARGET_LINK_ADDR)'; + mips_qemu_mips_ldflags = '-Wl,-Ttext,0x80200000'; +diff --git a/include/grub/offsets.h b/include/grub/offsets.h +index 871e1cd4c38..69211aa798b 100644 +--- a/include/grub/offsets.h ++++ b/include/grub/offsets.h +@@ -63,7 +63,7 @@ + #define GRUB_KERNEL_SPARC64_IEEE1275_LINK_ADDR 0x4400 + + #define GRUB_KERNEL_POWERPC_IEEE1275_LINK_ALIGN 4 +-#define GRUB_KERNEL_POWERPC_IEEE1275_LINK_ADDR 0x200000 ++#define GRUB_KERNEL_POWERPC_IEEE1275_LINK_ADDR 0x400000 + + #define GRUB_KERNEL_MIPS_LOONGSON_LINK_ADDR 0x80200000 + diff --git a/0200-grub-mkconfig-restore-umask-for-grub.cfg.patch b/0200-grub-mkconfig-restore-umask-for-grub.cfg.patch new file mode 100644 index 0000000..7c7bee0 --- /dev/null +++ b/0200-grub-mkconfig-restore-umask-for-grub.cfg.patch @@ -0,0 +1,40 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Michael Chang via Grub-devel +Date: Fri, 3 Dec 2021 16:13:28 +0800 +Subject: [PATCH] grub-mkconfig: restore umask for grub.cfg + +Since commit: + + ab2e53c8a grub-mkconfig: Honor a symlink when generating configuration +by grub-mkconfig + +has inadvertently discarded umask for creating grub.cfg in the process +of grub-mkconfig. The resulting wrong permission (0644) would allow +unprivileged users to read grub's configuration file content. This +presents a low confidentiality risk as grub.cfg may contain non-secured +plain-text passwords. + +This patch restores the missing umask and set the file mode of creation +to 0600 preventing unprivileged access. + +Fixes: CVE-2021-3981 + +Signed-off-by: Michael Chang +--- + util/grub-mkconfig.in | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in +index f55339a3f64..520a672cd2c 100644 +--- a/util/grub-mkconfig.in ++++ b/util/grub-mkconfig.in +@@ -311,7 +311,9 @@ and /etc/grub.d/* files or please file a bug report with + exit 1 + else + # none of the children aborted with error, install the new grub.cfg ++ oldumask=$(umask); umask 077 + cat ${grub_cfg}.new > ${grub_cfg} ++ umask $oldumask + rm -f ${grub_cfg}.new + fi + fi diff --git a/0200-grub-switch-to-blscfg-Update-grub2-binary-in-ESP-for.patch b/0200-grub-switch-to-blscfg-Update-grub2-binary-in-ESP-for.patch deleted file mode 100644 index b06d6c9..0000000 --- a/0200-grub-switch-to-blscfg-Update-grub2-binary-in-ESP-for.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 8695bfa3538b24635c77242669cb35a70603e599 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Thu, 26 Mar 2020 15:08:30 +0100 -Subject: [PATCH 200/220] grub-switch-to-blscfg: Update grub2 binary in ESP for - OSTree systems - -The grub2 EFI binary in the ESP isn't updated as a part of an OSTree update -transaction. So let's make the script to update this and also create a file -to indicate that the installed version has support for the blscfg module. - -Related: rhbz#1751272 - -Signed-off-by: Javier Martinez Canillas ---- - util/grub-switch-to-blscfg.in | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/util/grub-switch-to-blscfg.in b/util/grub-switch-to-blscfg.in -index 49b3985..a05a8d9 100644 ---- a/util/grub-switch-to-blscfg.in -+++ b/util/grub-switch-to-blscfg.in -@@ -266,6 +266,15 @@ copy_bls() { - fi - } - -+# The grub2 EFI binary is not copied to the ESP as a part of an ostree -+# transaction. Make sure a grub2 version with BLS support is installed. -+if test -f /run/ostree-booted && test -d /sys/firmware/efi/efivars/; then -+ grub_binary="$(find /usr/lib/ostree-boot/efi/EFI/${EFIDIR}/ -name grub*.efi)" -+ cp ${grub_binary} ${grubdir} || exit 1 -+ # Create a hidden file to indicate that grub2 now has BLS support. -+ touch /boot/grub2/.grub2-blscfg-supported -+fi -+ - GENERATE=0 - if grep '^GRUB_ENABLE_BLSCFG=.*' "${etcdefaultgrub}" \ - | grep -vq '^GRUB_ENABLE_BLSCFG="*true"*\s*$' ; then --- -1.8.3.1 - diff --git a/0201-fs-btrfs-Use-full-btrfs-bootloader-area.patch b/0201-fs-btrfs-Use-full-btrfs-bootloader-area.patch new file mode 100644 index 0000000..ecfc58c --- /dev/null +++ b/0201-fs-btrfs-Use-full-btrfs-bootloader-area.patch @@ -0,0 +1,160 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Michael Chang +Date: Mon, 13 Dec 2021 14:25:49 +0800 +Subject: [PATCH] fs/btrfs: Use full btrfs bootloader area + +Up to now GRUB can only embed to the first 64 KiB before primary +superblock of btrfs, effectively limiting the GRUB core size. That +could consequently pose restrictions to feature enablement like +advanced zstd compression. + +This patch attempts to utilize full unused area reserved by btrfs for +the bootloader outlined in the document [1]: + + The first 1MiB on each device is unused with the exception of primary + superblock that is on the offset 64KiB and spans 4KiB. + +Apart from that, adjacent sectors to superblock and first block group +are not used for embedding in case of overflow and logged access to +adjacent sectors could be useful for tracing it up. + +This patch has been tested to provide out of the box support for btrfs +zstd compression with which GRUB has been installed to the partition. + +[1] https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs(5)#BOOTLOADER_SUPPORT + +Signed-off-by: Michael Chang +Reviewed-by: Daniel Kiper +(cherry picked from commit b0f06a81c6f31b6fa20be67a96b6683bba8210c9) +--- + grub-core/fs/btrfs.c | 90 ++++++++++++++++++++++++++++++++++++++++++++-------- + include/grub/disk.h | 2 ++ + 2 files changed, 79 insertions(+), 13 deletions(-) + +diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c +index 4cc86e9b79e..07c0ff874b8 100644 +--- a/grub-core/fs/btrfs.c ++++ b/grub-core/fs/btrfs.c +@@ -2476,6 +2476,33 @@ grub_btrfs_label (grub_device_t device, char **label) + } + + #ifdef GRUB_UTIL ++ ++struct embed_region { ++ unsigned int start; ++ unsigned int secs; ++}; ++ ++/* ++ * https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs(5)#BOOTLOADER_SUPPORT ++ * The first 1 MiB on each device is unused with the exception of primary ++ * superblock that is on the offset 64 KiB and spans 4 KiB. ++ */ ++ ++static const struct { ++ struct embed_region available; ++ struct embed_region used[6]; ++} btrfs_head = { ++ .available = {0, GRUB_DISK_KiB_TO_SECTORS (1024)}, /* The first 1 MiB. */ ++ .used = { ++ {0, 1}, /* boot.S. */ ++ {GRUB_DISK_KiB_TO_SECTORS (64) - 1, 1}, /* Overflow guard. */ ++ {GRUB_DISK_KiB_TO_SECTORS (64), GRUB_DISK_KiB_TO_SECTORS (4)}, /* 4 KiB superblock. */ ++ {GRUB_DISK_KiB_TO_SECTORS (68), 1}, /* Overflow guard. */ ++ {GRUB_DISK_KiB_TO_SECTORS (1024) - 1, 1}, /* Overflow guard. */ ++ {0, 0} /* Array terminator. */ ++ } ++}; ++ + static grub_err_t + grub_btrfs_embed (grub_device_t device __attribute__ ((unused)), + unsigned int *nsectors, +@@ -2483,25 +2510,62 @@ grub_btrfs_embed (grub_device_t device __attribute__ ((unused)), + grub_embed_type_t embed_type, + grub_disk_addr_t **sectors) + { +- unsigned i; ++ unsigned int i, j, n = 0; ++ const struct embed_region *u; ++ grub_disk_addr_t *map; + + if (embed_type != GRUB_EMBED_PCBIOS) + return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, + "BtrFS currently supports only PC-BIOS embedding"); + +- if (64 * 2 - 1 < *nsectors) +- return grub_error (GRUB_ERR_OUT_OF_RANGE, +- N_("your core.img is unusually large. " +- "It won't fit in the embedding area")); +- +- *nsectors = 64 * 2 - 1; +- if (*nsectors > max_nsectors) +- *nsectors = max_nsectors; +- *sectors = grub_calloc (*nsectors, sizeof (**sectors)); +- if (!*sectors) ++ map = grub_calloc (btrfs_head.available.secs, sizeof (*map)); ++ if (map == NULL) + return grub_errno; +- for (i = 0; i < *nsectors; i++) +- (*sectors)[i] = i + 1; ++ ++ /* ++ * Populating the map array so that it can be used to index if a disk ++ * address is available to embed: ++ * - 0: available, ++ * - 1: unavailable. ++ */ ++ for (u = btrfs_head.used; u->secs; ++u) ++ { ++ unsigned int end = u->start + u->secs; ++ ++ if (end > btrfs_head.available.secs) ++ end = btrfs_head.available.secs; ++ for (i = u->start; i < end; ++i) ++ map[i] = 1; ++ } ++ ++ /* Adding up n until it matches total size of available embedding area. */ ++ for (i = 0; i < btrfs_head.available.secs; ++i) ++ if (map[i] == 0) ++ n++; ++ ++ if (n < *nsectors) ++ { ++ grub_free (map); ++ return grub_error (GRUB_ERR_OUT_OF_RANGE, ++ N_("your core.img is unusually large. " ++ "It won't fit in the embedding area")); ++ } ++ ++ if (n > max_nsectors) ++ n = max_nsectors; ++ ++ /* ++ * Populating the array so that it can used to index disk block address for ++ * an image file's offset to be embedded on disk (the unit is in sectors): ++ * - i: The disk block address relative to btrfs_head.available.start, ++ * - j: The offset in image file. ++ */ ++ for (i = 0, j = 0; i < btrfs_head.available.secs && j < n; ++i) ++ if (map[i] == 0) ++ map[j++] = btrfs_head.available.start + i; ++ ++ *nsectors = n; ++ *sectors = map; + + return GRUB_ERR_NONE; + } +diff --git a/include/grub/disk.h b/include/grub/disk.h +index f95aca929a6..06210a70492 100644 +--- a/include/grub/disk.h ++++ b/include/grub/disk.h +@@ -182,6 +182,8 @@ typedef struct grub_disk_memberlist *grub_disk_memberlist_t; + /* Return value of grub_disk_native_sectors() in case disk size is unknown. */ + #define GRUB_DISK_SIZE_UNKNOWN 0xffffffffffffffffULL + ++#define GRUB_DISK_KiB_TO_SECTORS(x) ((x) << (10 - GRUB_DISK_SECTOR_BITS)) ++ + /* Convert sector number from one sector size to another. */ + static inline grub_disk_addr_t + grub_convert_sector (grub_disk_addr_t sector, diff --git a/0201-grub-switch-to-blscfg-Only-mark-GRUB-as-BLS-supporte.patch b/0201-grub-switch-to-blscfg-Only-mark-GRUB-as-BLS-supporte.patch deleted file mode 100644 index 920606a..0000000 --- a/0201-grub-switch-to-blscfg-Only-mark-GRUB-as-BLS-supporte.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 96e237b59b621bcfe6f5fa888fe583def382d415 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Thu, 2 Apr 2020 11:07:24 +0200 -Subject: [PATCH 201/220] grub-switch-to-blscfg: Only mark GRUB as BLS - supported if blsdir isn't set - -If the user set the blsdir environemnt variable to a path that is not the -default where ostree writes the BLS snippets, the blscfg module won't be -able to parse them and can lead to not having any menu entries on boot. - -So to minimize the risk of things going wrong when dropping the 15_ostree -script used by ostree to create the menu entries, only mark the bootloader -as BLS supported if the blsdir variable has not been set. - -Signed-off-by: Javier Martinez Canillas ---- - util/grub-switch-to-blscfg.in | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/util/grub-switch-to-blscfg.in b/util/grub-switch-to-blscfg.in -index a05a8d9..4bbed8e 100644 ---- a/util/grub-switch-to-blscfg.in -+++ b/util/grub-switch-to-blscfg.in -@@ -267,8 +267,11 @@ copy_bls() { - } - - # The grub2 EFI binary is not copied to the ESP as a part of an ostree --# transaction. Make sure a grub2 version with BLS support is installed. --if test -f /run/ostree-booted && test -d /sys/firmware/efi/efivars/; then -+# transaction. Make sure a grub2 version with BLS support is installed -+# but only do this if the blsdir is not set, to make sure that the BLS -+# parsing module will search for the BLS snippets in the default path. -+if test -f /run/ostree-booted && test -d /sys/firmware/efi/efivars && \ -+ ! ${grub_editenv} - list | grep -q blsdir; then - grub_binary="$(find /usr/lib/ostree-boot/efi/EFI/${EFIDIR}/ -name grub*.efi)" - cp ${grub_binary} ${grubdir} || exit 1 - # Create a hidden file to indicate that grub2 now has BLS support. --- -1.8.3.1 - diff --git a/0202-10_linux.in-Merge-logic-from-10_linux_bls-and-drop-t.patch b/0202-10_linux.in-Merge-logic-from-10_linux_bls-and-drop-t.patch deleted file mode 100644 index 576503b..0000000 --- a/0202-10_linux.in-Merge-logic-from-10_linux_bls-and-drop-t.patch +++ /dev/null @@ -1,665 +0,0 @@ -From 25d1ed30a9330c8b3d84fdc3e0812ef5d1db5238 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Tue, 31 Mar 2020 12:35:42 +0200 -Subject: [PATCH 202/220] 10_linux.in: Merge logic from 10_linux_bls and drop - that script - -There's a 10_linux_bls snippet that's used in ppc64le machines to generate -a set of menuentry commands by parsing BLS configs in /boot/loader/entries. - -This was made because on PowerNV ppc64le machines that boot using the OPAL -firmware, there could be an old version of the Petitboot bootloader that -doesn't have support to parse BLS snippets. - -But there is no need to have a separate GRUB script for that and the logic -could just be part of the usual 10_linux snippet. - -Also the BLS files could be used directly if the bootloader has support to -parse them, which is the case for GRUB that's used in ppc64le OF or if the -Petitboot used in ppc64le OPAL machines is version 1.8.0 or newer. - -So only generate the menuentry commands from the BLS snippets in the case -of OPAL machines with an old Petitboot version. - -Signed-off-by: Javier Martinez Canillas ---- - Makefile.util.def | 7 - - util/grub.d/10_linux.in | 97 ++++++++- - util/grub.d/10_linux_bls.in | 470 -------------------------------------------- - 3 files changed, 96 insertions(+), 478 deletions(-) - delete mode 100644 util/grub.d/10_linux_bls.in - -diff --git a/Makefile.util.def b/Makefile.util.def -index 1fa92ca..f3a6996 100644 ---- a/Makefile.util.def -+++ b/Makefile.util.def -@@ -518,13 +518,6 @@ script = { - }; - - script = { -- name = '10_linux_bls'; -- common = util/grub.d/10_linux_bls.in; -- installdir = grubconf; -- condition = COND_HOST_LINUX; --}; -- --script = { - name = '10_reset_boot_success'; - common = util/grub.d/10_reset_boot_success.in; - installdir = grubconf; -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index b70dca2..c72cc32 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -84,18 +84,86 @@ esac - - populate_header_warn() - { -+if [ "x${BLS_POPULATE_MENU}" = "xtrue" ]; then -+ bls_parser="10_linux script" -+else -+ bls_parser="blscfg command" -+fi - cat <&2 -+ -+ files=($(for bls in ${blsdir}/*.conf ; do -+ if ! [[ -e "${bls}" ]] ; then -+ continue -+ fi -+ bls="${bls%.conf}" -+ bls="${bls##*/}" -+ echo "${bls}" -+ done | ${kernel_sort} | tac)) || : -+ -+ for bls in "${files[@]}" ; do -+ read_config "${blsdir}/${bls}.conf" -+ -+ menu="${menu}menuentry '${title}' ${grub_arg} --id=${bls} {\n" -+ menu="${menu}\t linux ${linux} ${options}\n" -+ if [ -n "${initrd}" ] ; then -+ menu="${menu}\t initrd ${boot_prefix}${initrd}\n" -+ fi -+ menu="${menu}}\n\n" -+ done -+ # The printf command seems to be more reliable across shells for special character (\n, \t) evaluation -+ printf "$menu" -+} -+ - if [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then - if [ x$dirname = x/ ]; then - if [ -z "${prepare_root_cache}" ]; then -@@ -115,6 +183,26 @@ if [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then - prepare_grub_to_access_device_with_variable boot ${boot_device} - fi - -+ arch="$(uname -m)" -+ if [ "x${arch}" = "xppc64le" ] && [ -d /sys/firmware/opal ]; then -+ -+ petitboot_path="/sys/firmware/devicetree/base/ibm,firmware-versions/petitboot" -+ -+ if test -e ${petitboot_path}; then -+ read -a petitboot_version < ${petitboot_path} -+ petitboot_version="$(echo ${petitboot_version//v})" -+ major_version="$(echo ${petitboot_version} | cut -d . -f1)" -+ minor_version="$(echo ${petitboot_version} | cut -d . -f2)" -+ -+ if test -z ${petitboot_version} || test ${major_version} -lt 1 || \ -+ test ${major_version} -eq 1 -a ${minor_version} -lt 8; then -+ BLS_POPULATE_MENU="true" -+ fi -+ else -+ BLS_POPULATE_MENU="true" -+ fi -+ fi -+ - populate_header_warn - - cat << EOF -@@ -129,10 +217,17 @@ if [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then - if [ -z "\${kernelopts}" ]; then - set kernelopts="root=${LINUX_ROOT_DEVICE} ro ${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" - fi -+EOF -+ -+ if [ "x${BLS_POPULATE_MENU}" = "xtrue" ]; then -+ populate_menu -+ else -+ cat << EOF - - insmod blscfg - blscfg - EOF -+ fi - - if [ "x${GRUB_GRUBENV_UPDATE}" = "xyes" ]; then - blsdir="/boot/loader/entries" -diff --git a/util/grub.d/10_linux_bls.in b/util/grub.d/10_linux_bls.in -deleted file mode 100644 -index 68fbedf..0000000 ---- a/util/grub.d/10_linux_bls.in -+++ /dev/null -@@ -1,470 +0,0 @@ --#! /bin/sh --set -e -- --# grub-mkconfig helper script. --# Copyright (C) 2006,2007,2008,2009,2010 Free Software Foundation, Inc. --# --# GRUB is free software: you can redistribute it and/or modify --# it under the terms of the GNU General Public License as published by --# the Free Software Foundation, either version 3 of the License, or --# (at your option) any later version. --# --# GRUB is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY; without even the implied warranty of --# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --# GNU General Public License for more details. --# --# You should have received a copy of the GNU General Public License --# along with GRUB. If not, see . -- --prefix="@prefix@" --exec_prefix="@exec_prefix@" --datarootdir="@datarootdir@" -- --. "$pkgdatadir/grub-mkconfig_lib" -- --export TEXTDOMAIN=@PACKAGE@ --export TEXTDOMAINDIR="@localedir@" -- --CLASS="--class gnu-linux --class gnu --class os --unrestricted" -- --if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then -- OS="$(eval $(grep PRETTY_NAME /etc/os-release) ; echo ${PRETTY_NAME})" -- CLASS="--class $(eval $(grep '^ID_LIKE=\|^ID=' /etc/os-release) ; [ -n "${ID_LIKE}" ] && echo ${ID_LIKE} || echo ${ID}) ${CLASS}" --else -- OS="${GRUB_DISTRIBUTOR}" -- CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}" --fi -- --# loop-AES arranges things so that /dev/loop/X can be our root device, but --# the initrds that Linux uses don't like that. --case ${GRUB_DEVICE} in -- /dev/loop/*|/dev/loop[0-9]) -- GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"` -- ;; --esac -- --# Default to disabling partition uuid support to maintian compatibility with --# older kernels. --GRUB_DISABLE_LINUX_PARTUUID=${GRUB_DISABLE_LINUX_PARTUUID-true} -- --# btrfs may reside on multiple devices. We cannot pass them as value of root= parameter --# and mounting btrfs requires user space scanning, so force UUID in this case. --if ( [ "x${GRUB_DEVICE_UUID}" = "x" ] && [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] ) \ -- || ( [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \ -- && [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ] ) \ -- || ( ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \ -- && ! test -e "/dev/disk/by-partuuid/${GRUB_DEVICE_PARTUUID}" ) \ -- || ( test -e "${GRUB_DEVICE}" && uses_abstraction "${GRUB_DEVICE}" lvm ); then -- LINUX_ROOT_DEVICE=${GRUB_DEVICE} --elif [ "x${GRUB_DEVICE_UUID}" = "x" ] \ -- || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ]; then -- LINUX_ROOT_DEVICE=PARTUUID=${GRUB_DEVICE_PARTUUID} --else -- LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID} --fi -- --case x"$GRUB_FS" in -- xbtrfs) -- if [ "x${SUSE_BTRFS_SNAPSHOT_BOOTING}" = "xtrue" ]; then -- GRUB_CMDLINE_LINUX="${GRUB_CMDLINE_LINUX} \${extra_cmdline}" -- else -- rootsubvol="`make_system_path_relative_to_its_root /`" -- rootsubvol="${rootsubvol#/}" -- if [ "x${rootsubvol}" != x ]; then -- GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}" -- fi -- fi;; -- xzfs) -- rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true` -- bootfs="`make_system_path_relative_to_its_root / | sed -e "s,@$,,"`" -- LINUX_ROOT_DEVICE="ZFS=${rpool}${bootfs}" -- ;; --esac -- --mktitle () --{ -- local title_type -- local version -- local OS_NAME -- local OS_VERS -- -- title_type=$1 && shift -- version=$1 && shift -- -- OS_NAME="$(eval $(grep ^NAME= /etc/os-release) ; echo ${NAME})" -- OS_VERS="$(eval $(grep ^VERSION= /etc/os-release) ; echo ${VERSION})" -- -- case $title_type in -- recovery) -- title=$(printf '%s (%s) %s (recovery mode)' \ -- "${OS_NAME}" "${version}" "${OS_VERS}") -- ;; -- *) -- title=$(printf '%s (%s) %s' \ -- "${OS_NAME}" "${version}" "${OS_VERS}") -- ;; -- esac -- echo -n ${title} --} -- --title_correction_code= -- --populate_header_warn() --{ --cat <&2 -- -- files=($(for bls in ${blsdir}/*.conf ; do -- if ! [[ -e "${bls}" ]] ; then -- continue -- fi -- bls="${bls%.conf}" -- bls="${bls##*/}" -- echo "${bls}" -- done | ${kernel_sort} | tac)) || : -- -- for bls in "${files[@]}" ; do -- read_config "${blsdir}/${bls}.conf" -- -- menu="${menu}menuentry '${title}' ${grub_arg} --id=${bls} {\n" -- menu="${menu}\t linux ${linux} ${options}\n" -- if [ -n "${initrd}" ] ; then -- menu="${menu}\t initrd ${boot_prefix}${initrd}\n" -- fi -- menu="${menu}}\n\n" -- done -- # The printf command seems to be more reliable across shells for special character (\n, \t) evaluation -- printf "$menu" --} -- --linux_entry () --{ -- os="$1" -- version="$2" -- type="$3" -- isdebug="$4" -- args="$5" -- -- if [ -z "$boot_device_id" ]; then -- boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" -- fi -- -- if [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then -- if [ x$dirname = x/ ]; then -- if [ -z "${prepare_root_cache}" ]; then -- prepare_grub_to_access_device ${GRUB_DEVICE} -- fi -- else -- if [ -z "${prepare_boot_cache}" ]; then -- prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} -- fi -- fi -- -- if [ -d /sys/firmware/efi ]; then -- bootefi_device="`${grub_probe} --target=device /boot/efi/`" -- prepare_grub_to_access_device_with_variable boot ${bootefi_device} -- else -- boot_device="`${grub_probe} --target=device /boot/`" -- prepare_grub_to_access_device_with_variable boot ${boot_device} -- fi -- -- populate_header_warn -- populate_menu -- -- if [ "x${GRUB_GRUBENV_UPDATE}" = "xyes" ]; then -- blsdir="/boot/loader/entries" -- [ -d "${blsdir}" ] && GRUB_BLS_FS="$(${grub_probe} --target=fs ${blsdir})" -- if [ "x${GRUB_BLS_FS}" = "xbtrfs" ] || [ "x${GRUB_BLS_FS}" = "xzfs" ]; then -- blsdir=$(make_system_path_relative_to_its_root "${blsdir}") -- if [ "x${blsdir}" != "x/loader/entries" ] && [ "x${blsdir}" != "x/boot/loader/entries" ]; then -- ${grub_editenv} - set blsdir="${blsdir}" -- fi -- fi -- -- ${grub_editenv} - set kernelopts="root=${linux_root_device_thisversion} ro ${args}" -- if [ -n "${GRUB_EARLY_INITRD_LINUX_CUSTOM}" ]; then -- ${grub_editenv} - set early_initrd="${GRUB_EARLY_INITRD_LINUX_CUSTOM}" -- fi -- fi -- -- exit 0 -- fi -- -- if [ x$type != xsimple ] ; then -- title=$(mktitle "$type" "$version") -- if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then -- replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')" -- quoted="$(echo "$GRUB_ACTUAL_DEFAULT" | grub_quote)" -- title_correction_code="${title_correction_code}if [ \"x\$default\" = '$quoted' ]; then default='$(echo "$replacement_title" | grub_quote)'; fi;" -- fi -- if [ x$isdebug = xdebug ]; then -- title="$title${GRUB_LINUX_DEBUG_TITLE_POSTFIX}" -- fi -- echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/" -- else -- echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/" -- fi -- if [ x$type != xrecovery ] ; then -- save_default_entry | grub_add_tab -- fi -- -- # Use ELILO's generic "efifb" when it's known to be available. -- # FIXME: We need an interface to select vesafb in case efifb can't be used. -- if [ "x$GRUB_GFXPAYLOAD_LINUX" = x ]; then -- echo " load_video" | sed "s/^/$submenu_indentation/" -- if grep -qx "CONFIG_FB_EFI=y" "${config}" 2> /dev/null \ -- && grep -qx "CONFIG_VT_HW_CONSOLE_BINDING=y" "${config}" 2> /dev/null; then -- echo " set gfxpayload=keep" | sed "s/^/$submenu_indentation/" -- fi -- else -- if [ "x$GRUB_GFXPAYLOAD_LINUX" != xtext ]; then -- echo " load_video" | sed "s/^/$submenu_indentation/" -- fi -- echo " set gfxpayload=$GRUB_GFXPAYLOAD_LINUX" | sed "s/^/$submenu_indentation/" -- fi -- -- echo " insmod gzio" | sed "s/^/$submenu_indentation/" -- -- if [ x$dirname = x/ ]; then -- if [ -z "${prepare_root_cache}" ]; then -- prepare_root_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE} | grub_add_tab)" -- fi -- printf '%s\n' "${prepare_root_cache}" | sed "s/^/$submenu_indentation/" -- else -- if [ -z "${prepare_boot_cache}" ]; then -- prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | grub_add_tab)" -- fi -- printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/" -- fi -- sed "s/^/$submenu_indentation/" << EOF -- linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} --EOF -- if test -n "${initrd}" ; then -- initrd_path= -- for i in ${initrd}; do -- initrd_path="${initrd_path} ${rel_dirname}/${i}" -- done -- sed "s/^/$submenu_indentation/" << EOF -- initrd $(echo $initrd_path) --EOF -- fi -- if test -n "${fdt}" ; then -- sed "s/^/$submenu_indentation/" << EOF -- devicetree ${rel_dirname}/${fdt} --EOF -- fi -- sed "s/^/$submenu_indentation/" << EOF --} --EOF --} -- --machine=`uname -m` --case "x$machine" in -- xi?86 | xx86_64) -- list= -- for i in /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* ; do -- if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi -- done ;; -- *) -- list= -- for i in /boot/vmlinuz-* /boot/vmlinux-* /vmlinuz-* /vmlinux-* /boot/kernel-* ; do -- if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi -- done ;; --esac -- --if [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then -- for i in /boot/ostree/*/vmlinuz-* ; do -- if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi -- done --fi -- --case "$machine" in -- i?86) GENKERNEL_ARCH="x86" ;; -- mips|mips64) GENKERNEL_ARCH="mips" ;; -- mipsel|mips64el) GENKERNEL_ARCH="mipsel" ;; -- arm*) GENKERNEL_ARCH="arm" ;; -- *) GENKERNEL_ARCH="$machine" ;; --esac -- --prepare_boot_cache= --prepare_root_cache= --boot_device_id= --title_correction_code= -- --# Extra indentation to add to menu entries in a submenu. We're not in a submenu --# yet, so it's empty. In a submenu it will be equal to '\t' (one tab). --submenu_indentation="" -- --is_top_level=true --while [ "x$list" != "x" ] ; do -- linux=`version_find_latest $list` -- if [ "x${GRUB_ENABLE_BLSCFG}" != "xtrue" ]; then -- gettext_printf "Found linux image: %s\n" "$linux" >&2 -- fi -- -- basename=`basename $linux` -- dirname=`dirname $linux` -- rel_dirname=`make_system_path_relative_to_its_root $dirname` -- version=`echo $basename | sed -e "s,^[^0-9]*-,,g"` -- alt_version=`echo $version | sed -e "s,\.old$,,g"` -- linux_root_device_thisversion="${LINUX_ROOT_DEVICE}" -- -- initrd_early= -- for i in ${GRUB_EARLY_INITRD_LINUX_STOCK} \ -- ${GRUB_EARLY_INITRD_LINUX_CUSTOM}; do -- if test -e "${dirname}/${i}" ; then -- initrd_early="${initrd_early} ${i}" -- fi -- done -- -- initrd_real= -- for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \ -- "initrd-${version}" "initramfs-${version}.img" \ -- "initrd.img-${alt_version}" "initrd-${alt_version}.img" \ -- "initrd-${alt_version}" "initramfs-${alt_version}.img" \ -- "initramfs-genkernel-${version}" \ -- "initramfs-genkernel-${alt_version}" \ -- "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \ -- "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do -- if test -e "${dirname}/${i}" ; then -- initrd_real="${i}" -- break -- fi -- done -- -- initrd= -- if test -n "${initrd_early}" || test -n "${initrd_real}"; then -- initrd="${initrd_early} ${initrd_real}" -- -- initrd_display= -- for i in ${initrd}; do -- initrd_display="${initrd_display} ${dirname}/${i}" -- done -- if [ "x${GRUB_ENABLE_BLSCFG}" != "xtrue" ]; then -- gettext_printf "Found initrd image: %s\n" "$(echo $initrd_display)" >&2 -- fi -- fi -- -- fdt= -- for i in "dtb-${version}" "dtb-${alt_version}"; do -- if test -f "${dirname}/${i}/${GRUB_DEFAULT_DTB}" ; then -- fdt="${i}/${GRUB_DEFAULT_DTB}" -- break -- fi -- done -- -- config= -- for i in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do -- if test -e "${i}" ; then -- config="${i}" -- break -- fi -- done -- -- initramfs= -- if test -n "${config}" ; then -- initramfs=`grep CONFIG_INITRAMFS_SOURCE= "${config}" | cut -f2 -d= | tr -d \"` -- fi -- -- if test -z "${initramfs}" && test -z "${initrd_real}" ; then -- # "UUID=" and "ZFS=" magic is parsed by initrd or initramfs. Since there's -- # no initrd or builtin initramfs, it can't work here. -- if [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] \ -- || [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ]; then -- -- linux_root_device_thisversion=${GRUB_DEVICE} -- else -- linux_root_device_thisversion=PARTUUID=${GRUB_DEVICE_PARTUUID} -- fi -- fi -- -- if [ "x${GRUB_DISABLE_SUBMENU}" = "xyes" ] || [ "x${GRUB_DISABLE_SUBMENU}" = "xy" ]; then -- GRUB_DISABLE_SUBMENU="true" -- fi -- -- if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xtrue ]; then -- linux_entry "${OS}" "${version}" simple standard \ -- "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" -- if [ "x$GRUB_LINUX_MAKE_DEBUG" = "xtrue" ]; then -- linux_entry "${OS}" "${version}" simple debug \ -- "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} ${GRUB_CMDLINE_LINUX_DEBUG}" -- fi -- -- submenu_indentation="$grub_tab" -- -- if [ -z "$boot_device_id" ]; then -- boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" -- fi -- # TRANSLATORS: %s is replaced with an OS name -- echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {" -- is_top_level=false -- fi -- -- linux_entry "${OS}" "${version}" advanced standard \ -- "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" -- if [ "x$GRUB_LINUX_MAKE_DEBUG" = "xtrue" ]; then -- linux_entry "${OS}" "${version}" advanced debug \ -- "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} ${GRUB_CMDLINE_LINUX_DEBUG}" -- fi -- -- if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then -- linux_entry "${OS}" "${version}" recovery standard \ -- "single ${GRUB_CMDLINE_LINUX}" -- fi -- -- list=`echo $list | tr ' ' '\n' | fgrep -vx "$linux" | tr '\n' ' '` --done -- --# If at least one kernel was found, then we need to --# add a closing '}' for the submenu command. --if [ x"$is_top_level" != xtrue ]; then -- echo '}' --fi -- --echo "$title_correction_code" --- -1.8.3.1 - diff --git a/0203-grub-switch-to-blscfg-Use-install-to-copy-GRUB-binar.patch b/0203-grub-switch-to-blscfg-Use-install-to-copy-GRUB-binar.patch deleted file mode 100644 index 217876c..0000000 --- a/0203-grub-switch-to-blscfg-Use-install-to-copy-GRUB-binar.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 06b00bced8807fe8c16f2abdfad956f59e053ca8 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Thu, 16 Apr 2020 18:53:03 +0200 -Subject: [PATCH 203/220] grub-switch-to-blscfg: Use install to copy GRUB - binary, modules and config - -By default the cp command truncates the destination before copying from the -source, so if interrupted it can lead to a file that's half written. - -This behavior can be modified using the --remove-destination option, but is -usually a better choice to use the install tool for this. So let's do that. - -Signed-off-by: Javier Martinez Canillas ---- - util/grub-switch-to-blscfg.in | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/util/grub-switch-to-blscfg.in b/util/grub-switch-to-blscfg.in -index 4bbed8e..3333a62 100644 ---- a/util/grub-switch-to-blscfg.in -+++ b/util/grub-switch-to-blscfg.in -@@ -273,7 +273,7 @@ copy_bls() { - if test -f /run/ostree-booted && test -d /sys/firmware/efi/efivars && \ - ! ${grub_editenv} - list | grep -q blsdir; then - grub_binary="$(find /usr/lib/ostree-boot/efi/EFI/${EFIDIR}/ -name grub*.efi)" -- cp ${grub_binary} ${grubdir} || exit 1 -+ install -m 700 ${grub_binary} ${grubdir} || exit 1 - # Create a hidden file to indicate that grub2 now has BLS support. - touch /boot/grub2/.grub2-blscfg-supported - fi -@@ -307,13 +307,13 @@ if [ "${GENERATE}" -eq 1 ] ; then - - if [ -n "${mod_dir}" ]; then - for mod in blscfg increment; do -- cp ${prefix}/lib/grub/${mod_dir}/${mod}.mod ${grubdir}/$mod_dir/ || exit 1 -+ install -m 700 ${prefix}/lib/grub/${mod_dir}/${mod}.mod ${grubdir}/$mod_dir/ || exit 1 - done - fi - - cp -af "${GRUB_CONFIG_FILE}" "${GRUB_CONFIG_FILE}${backupsuffix}" - if ! grub2-mkconfig -o "${GRUB_CONFIG_FILE}" ; then -- cp -af "${GRUB_CONFIG_FILE}${backupsuffix}" "${GRUB_CONFIG_FILE}" -+ install -m 700 "${GRUB_CONFIG_FILE}${backupsuffix}" "${GRUB_CONFIG_FILE}" - sed -i"${backupsuffix}" \ - -e 's,^GRUB_ENABLE_BLSCFG=.*,GRUB_ENABLE_BLSCFG=false,' \ - "${etcdefaultgrub}" --- -1.8.3.1 - diff --git a/0204-10_linux.in-Enable-BLS-configuration-if-new-kernel-p.patch b/0204-10_linux.in-Enable-BLS-configuration-if-new-kernel-p.patch deleted file mode 100644 index a7af8ac..0000000 --- a/0204-10_linux.in-Enable-BLS-configuration-if-new-kernel-p.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 4522b79934cf8777fbd4bdc437497ed22f77a9f0 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Thu, 16 Apr 2020 18:53:05 +0200 -Subject: [PATCH 204/220] 10_linux.in: Enable BLS configuration if - new-kernel-pkg isn't present - -Currently if the the GRUB_ENABLE_BLSCFG option in /etc/default/grub hasn't -been set, the 10_linux script will generate a GRUB configuration that does -not include the blscfg command to populate the menu entries from BLS files. - -But on kernel install the /usr/lib/kernel/install.d/20-grub.install script -will only add menuentry commands to the GRUB config file if the old grubby -tool and new-kernel-pkg script are installed. - -So a configuration with the GRUB_ENABLE_BLSCFG option will lead to a setup -where new kernel entries are not added. Make a BLS config the default if -that option wasn't set and the new-kernel-pkg script is not present. - -Signed-off-by: Javier Martinez Canillas ---- - util/grub.d/10_linux.in | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index c72cc32..847646b 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -164,6 +164,11 @@ populate_menu() - printf "$menu" - } - -+# Make BLS the default if GRUB_ENABLE_BLSCFG was not set and grubby is not installed. -+if [ -z "${GRUB_ENABLE_BLSCFG}" ] && [ -z "$(which new-kernel-pkg 2> /dev/null)" ]; then -+ GRUB_ENABLE_BLSCFG="true" -+fi -+ - if [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then - if [ x$dirname = x/ ]; then - if [ -z "${prepare_root_cache}" ]; then --- -1.8.3.1 - diff --git a/0206-blscfg-Lookup-default_kernelopts-variable-as-fallbac.patch b/0206-blscfg-Lookup-default_kernelopts-variable-as-fallbac.patch deleted file mode 100644 index caeb3f8..0000000 --- a/0206-blscfg-Lookup-default_kernelopts-variable-as-fallbac.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 79e6846f6f4a4c097d88e83c9544b96334a6ea9e Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Wed, 29 Apr 2020 20:08:27 +0200 -Subject: [PATCH 206/220] blscfg: Lookup default_kernelopts variable as - fallback for options - -The 10_linux script sets a variable that contains the kernel command line -parameters. This is done so the entries will still have a kernel cmdline -defined even if the grubenv can't be read. - -But older versions of the script used to set a default_kernelopts variable -while newer versions just sets the kernelopts, which is what's defined in -the BLS snippets. - -The blscfg module needs to keep looking for the default_kernelops since it -may be that a user doesn't have a grubenv file and has an older grub.cfg -that sets this variable instead of kernelopts. - -Related: rhbz#1765297 - -Signed-off-by: Javier Martinez Canillas ---- - grub-core/commands/blscfg.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 9263a5c..4ec6504 100644 ---- a/grub-core/commands/blscfg.c -+++ b/grub-core/commands/blscfg.c -@@ -759,6 +759,10 @@ static void create_entry (struct bls_entry *entry) - - title = bls_get_val (entry, "title", NULL); - options = expand_val (bls_get_val (entry, "options", NULL)); -+ -+ if (!options) -+ options = expand_val (grub_env_get("default_kernelopts")); -+ - initrds = bls_make_list (entry, "initrd", NULL); - - devicetree = expand_val (bls_get_val (entry, "devicetree", NULL)); --- -1.8.3.1 - diff --git a/0207-10_linux.in-fix-early-exit-due-error-when-reading-pe.patch b/0207-10_linux.in-fix-early-exit-due-error-when-reading-pe.patch deleted file mode 100644 index bebd240..0000000 --- a/0207-10_linux.in-fix-early-exit-due-error-when-reading-pe.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 35181b2c411954a96e3ed9a0ebc6ce470d037595 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Thu, 30 Apr 2020 15:45:31 +0200 -Subject: [PATCH 207/220] 10_linux.in: fix early exit due error when reading - petitboot version - -The script uses bash's read built-in command to get the petitboot version -version, but this command has a non-zero exit status if the EOF is found. - -Since the /sys/firmware/devicetree/base/ibm,firmware-versions/petitboot -string ends with a NUL character, use the empty string as read delimiter -to prevent the command to read to the end-of-file and exit with an error. - -Resolves: rhbz#1827397 - -Signed-off-by: Javier Martinez Canillas ---- - util/grub.d/10_linux.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 847646b..09adfce 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -194,7 +194,7 @@ if [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then - petitboot_path="/sys/firmware/devicetree/base/ibm,firmware-versions/petitboot" - - if test -e ${petitboot_path}; then -- read -a petitboot_version < ${petitboot_path} -+ read -r -d '' petitboot_version < ${petitboot_path} - petitboot_version="$(echo ${petitboot_version//v})" - major_version="$(echo ${petitboot_version} | cut -d . -f1)" - minor_version="$(echo ${petitboot_version} | cut -d . -f2)" --- -1.8.3.1 - diff --git a/0208-envblk-Fix-buffer-overrun-when-attempting-to-shrink-.patch b/0208-envblk-Fix-buffer-overrun-when-attempting-to-shrink-.patch deleted file mode 100644 index 586cc71..0000000 --- a/0208-envblk-Fix-buffer-overrun-when-attempting-to-shrink-.patch +++ /dev/null @@ -1,63 +0,0 @@ -From aecc9de8fc2345cb582d0587fc89d01891ae2650 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Tue, 12 May 2020 01:00:51 +0200 -Subject: [PATCH 208/220] envblk: Fix buffer overrun when attempting to shrink - a variable value -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -If an existing variable is set with a value whose length is smaller than -the current value, a memory corruption can happen due copying padding '#' -characters outside of the environment block buffer. - -This is caused by a wrong calculation of the previous free space position -after moving backward the characters that followed the old variable value. - -That position is calculated to fill the remaining of the buffer with the -padding '#' characters. But since isn't calculated correctly, it can lead -to copies outside of the buffer. - -The issue can be reproduced by creating a variable with a large value and -then try to set a new value that is much smaller: - -$ grub2-editenv --version -grub2-editenv (GRUB) 2.04 - -$ grub2-editenv env create - -$ grub2-editenv env set a="$(for i in {1..500}; do var="b$var"; done; echo $var)" - -$ wc -c env -1024 grubenv - -$ grub2-editenv env set a="$(for i in {1..50}; do var="b$var"; done; echo $var)" -malloc(): corrupted top size -Aborted (core dumped) - -$ wc -c env -0 grubenv - -Reported-by: Renaud Métrich -Signed-off-by: Javier Martinez Canillas -Patch-cc: Daniel Kiper ---- - grub-core/lib/envblk.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/lib/envblk.c b/grub-core/lib/envblk.c -index f89d86d..874506d 100644 ---- a/grub-core/lib/envblk.c -+++ b/grub-core/lib/envblk.c -@@ -143,7 +143,7 @@ grub_envblk_set (grub_envblk_t envblk, const char *name, const char *value) - /* Move the following characters backward, and fill the new - space with harmless characters. */ - grub_memmove (p + vl, p + len, pend - (p + len)); -- grub_memset (space + len - vl, '#', len - vl); -+ grub_memset (space - (len - vl), '#', len - vl); - } - else - /* Move the following characters forward. */ --- -1.8.3.1 - diff --git a/0209-10_linux.in-Store-cmdline-in-BLS-snippets-instead-of.patch b/0209-10_linux.in-Store-cmdline-in-BLS-snippets-instead-of.patch deleted file mode 100644 index 6c3fc79..0000000 --- a/0209-10_linux.in-Store-cmdline-in-BLS-snippets-instead-of.patch +++ /dev/null @@ -1,163 +0,0 @@ -From 9140d0e92dc51839ff77634d4b030bf4f88f248a Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Wed, 13 May 2020 19:40:10 +0200 -Subject: [PATCH 209/220] 10_linux.in: Store cmdline in BLS snippets instead of - using a variable - -The kernel cmdline was stored as a kernelopts variable in the grubenv file -and the BLS snippets used that. But this turned out to be fragile since the -grubenv file could be removed or get corrupted easily. - -To prevent the entries to not have a cmdline if the grubenv can't be read, -a fallback variable was set in the GRUB config file. But this still caused -issues since the config needs to be re-generated to change the parameters. - -Instead, let's store the cmdline in the BLS snippets. This will make the -configuration more robust, since it will work even without the grubenv -file and the BLS entries will contain all the information needed to boot. - -Signed-off-by: Javier Martinez Canillas ---- - util/grub-switch-to-blscfg.in | 30 ++++++++++-------------------- - util/grub.d/10_linux.in | 41 +++++++++++++++++++++++++++++++---------- - 2 files changed, 41 insertions(+), 30 deletions(-) - -diff --git a/util/grub-switch-to-blscfg.in b/util/grub-switch-to-blscfg.in -index 3333a62..cb22912 100644 ---- a/util/grub-switch-to-blscfg.in -+++ b/util/grub-switch-to-blscfg.in -@@ -190,7 +190,7 @@ fi - mkbls() { - local kernelver=$1 && shift - local datetime=$1 && shift -- local bootprefix=$1 && shift -+ local kernelopts=$1 && shift - - local debugname="" - local debugid="" -@@ -209,10 +209,9 @@ mkbls() { - cat <"${bls_target}" -- fi -+ mkbls "${kernelver}" \ -+ "$(date -u +%Y%m%d%H%M%S -d "$(stat -c '%y' "${kernel_dir}")")" \ -+ "${bootprefix}" "${cmdline}" >"${bls_target}" - - if [ "x$GRUB_LINUX_MAKE_DEBUG" = "xtrue" ]; then - bls_debug="$(echo ${bls_target} | sed -e "s/${kernelver}/${kernelver}~debug/")" - cp -aT "${bls_target}" "${bls_debug}" - title="$(grep '^title[ \t]' "${bls_debug}" | sed -e 's/^title[ \t]*//')" -- blsid="$(grep '^id[ \t]' "${bls_debug}" | sed -e "s/\.${ARCH}/-debug.${arch}/")" -+ options="$(echo "${cmdline} ${GRUB_CMDLINE_LINUX_DEBUG}" | sed -e 's/\//\\\//g')" - sed -i -e "s/^title.*/title ${title}${GRUB_LINUX_DEBUG_TITLE_POSTFIX}/" "${bls_debug}" -- sed -i -e "s/^id.*/${blsid}/" "${bls_debug}" -- sed -i -e "s/^options.*/options \$kernelopts ${GRUB_CMDLINE_LINUX_DEBUG}/" "${bls_debug}" -+ sed -i -e "s/^options.*/options ${options}/" "${bls_debug}" - fi - done - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 09adfce..80299ec 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -134,23 +134,43 @@ read_config() - done < ${config_file} - } - --populate_menu() -+blsdir="/boot/loader/entries" -+ -+get_sorted_bls() - { -- blsdir="/boot/loader/entries" -- local -a files - local IFS=$'\n' -- gettext_printf "Generating boot entries from BLS files...\n" >&2 - -- files=($(for bls in ${blsdir}/*.conf ; do -- if ! [[ -e "${bls}" ]] ; then -- continue -- fi -+ files=($(for bls in ${blsdir}/*.conf; do - bls="${bls%.conf}" - bls="${bls##*/}" - echo "${bls}" - done | ${kernel_sort} | tac)) || : - -- for bls in "${files[@]}" ; do -+ echo "${files[@]}" -+} -+ -+update_bls_cmdline() -+{ -+ local cmdline="root=${LINUX_ROOT_DEVICE} ro ${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" -+ local -a files=($(get_sorted_bls)) -+ -+ for bls in "${files[@]}"; do -+ local options="${cmdline}" -+ if [ -z "${bls##*debug*}" ]; then -+ options="${options} ${GRUB_CMDLINE_LINUX_DEBUG}" -+ fi -+ options="$(echo "${options}" | sed -e 's/\//\\\//g')" -+ sed -i -e "s/^options.*/options ${options}/" "${blsdir}/${bls}.conf" -+ done -+} -+ -+populate_menu() -+{ -+ local -a files=($(get_sorted_bls)) -+ -+ gettext_printf "Generating boot entries from BLS files...\n" >&2 -+ -+ for bls in "${files[@]}"; do - read_config "${blsdir}/${bls}.conf" - - menu="${menu}menuentry '${title}' ${grub_arg} --id=${bls} {\n" -@@ -224,6 +244,8 @@ if [ -z "\${kernelopts}" ]; then - fi - EOF - -+ update_bls_cmdline -+ - if [ "x${BLS_POPULATE_MENU}" = "xtrue" ]; then - populate_menu - else -@@ -244,7 +266,6 @@ EOF - fi - fi - -- ${grub_editenv} - set kernelopts="root=${LINUX_ROOT_DEVICE} ro ${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" - if [ -n "${GRUB_EARLY_INITRD_LINUX_CUSTOM}" ]; then - ${grub_editenv} - set early_initrd="${GRUB_EARLY_INITRD_LINUX_CUSTOM}" - fi --- -1.8.3.1 - diff --git a/0210-10_linux.in-restore-existence-check-in-get_sorted_bl.patch b/0210-10_linux.in-restore-existence-check-in-get_sorted_bl.patch deleted file mode 100644 index ae26224..0000000 --- a/0210-10_linux.in-restore-existence-check-in-get_sorted_bl.patch +++ /dev/null @@ -1,36 +0,0 @@ -From e635565f71e4a2ee106b6d8ef71e989452af90f8 Mon Sep 17 00:00:00 2001 -From: Adam Williamson -Date: Thu, 14 May 2020 17:52:53 -0700 -Subject: [PATCH 210/220] 10_linux.in: restore existence check in - `get_sorted_bls` - -This is necessary to handle `/boot/loader/entries` not existing -at all (or possibly existing but being empty - not sure about -that case). Without this check, this function gets pretty wacky -and winds up returning the contents of the current working -directory, which of course causes whatever called it to break. - -Resolves: rhbz#1836020 - -Signed-off-by: Adam Williamson ---- - util/grub.d/10_linux.in | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 80299ec..519e2d9 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -141,6 +141,9 @@ get_sorted_bls() - local IFS=$'\n' - - files=($(for bls in ${blsdir}/*.conf; do -+ if ! [[ -e "${bls}" ]] ; then -+ continue -+ fi - bls="${bls%.conf}" - bls="${bls##*/}" - echo "${bls}" --- -1.8.3.1 - diff --git a/0212-tpm-Enable-module-for-all-EFI-platforms.patch b/0212-tpm-Enable-module-for-all-EFI-platforms.patch deleted file mode 100644 index db25a35..0000000 --- a/0212-tpm-Enable-module-for-all-EFI-platforms.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 605c3bd42fbec1fa1c09e35bb93c6c577110b870 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Mon, 18 May 2020 12:56:27 +0200 -Subject: [PATCH 212/220] tpm: Enable module for all EFI platforms - -The tpm module is only enabled for x86_64, but there's nothing specific to -that architecture in the code and could be enabled for all EFI platforms. - -Signed-off-by: Javier Martinez Canillas ---- - grub-core/Makefile.core.def | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 6619946..b283c50 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -2512,7 +2512,7 @@ module = { - name = tpm; - common = commands/tpm.c; - efi = commands/efi/tpm.c; -- enable = x86_64_efi; -+ enable = efi; - }; - - module = { --- -1.8.3.1 - diff --git a/0213-10_linux.in-Don-t-update-BLS-files-that-aren-t-manag.patch b/0213-10_linux.in-Don-t-update-BLS-files-that-aren-t-manag.patch deleted file mode 100644 index 3df6cb4..0000000 --- a/0213-10_linux.in-Don-t-update-BLS-files-that-aren-t-manag.patch +++ /dev/null @@ -1,59 +0,0 @@ -From b72f41efc2b25d77e8530d0ed412acc03d6911d3 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Wed, 20 May 2020 12:23:27 +0200 -Subject: [PATCH 213/220] 10_linux.in: Don't update BLS files that aren't - managed by GRUB scripts - -The script is updating all BLS files present in the /boot/loader/entries -directory, but it should only update the BLS that belong to the machine. - -Otherwise if a user is sharing the same boot partition between different -operating systems, the grub2-mkconfig tool will wrongly update BLS files -that were created by a different OS. - -There are also cases where the BLS snippets are not managed by the GRUB -scripts at all, for example in OSTree based systems. So it's also wrong -to update the BLS snippets created by OSTree. - -Resolves: rhbz#1837783 - -Signed-off-by: Javier Martinez Canillas ---- - util/grub.d/10_linux.in | 13 +++++++++++-- - 1 file changed, 11 insertions(+), 2 deletions(-) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 519e2d9..e61b6c9 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -138,16 +138,25 @@ blsdir="/boot/loader/entries" - - get_sorted_bls() - { -+ if ! [ -d "${blsdir}" ] || ! [ -e /etc/machine-id ]; then -+ return -+ fi -+ -+ read machine_id < /etc/machine-id -+ if [ -z "${machine_id}" ]; then -+ return -+ fi -+ - local IFS=$'\n' - -- files=($(for bls in ${blsdir}/*.conf; do -+ files=($(for bls in ${blsdir}/${machine_id}-*.conf; do - if ! [[ -e "${bls}" ]] ; then - continue - fi - bls="${bls%.conf}" - bls="${bls##*/}" - echo "${bls}" -- done | ${kernel_sort} | tac)) || : -+ done | ${kernel_sort} 2>/dev/null | tac)) || : - - echo "${files[@]}" - } --- -1.8.3.1 - diff --git a/0216-fix-build-with-rpm-4.16.patch b/0216-fix-build-with-rpm-4.16.patch deleted file mode 100644 index 4fe2191..0000000 --- a/0216-fix-build-with-rpm-4.16.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 975515d9a2ccab6ca78f9d2dd9e916e444f568ae Mon Sep 17 00:00:00 2001 -From: Thierry Vignaud -Date: Mon, 8 Jun 2020 06:50:21 +0200 -Subject: [PATCH 216/220] fix build with rpm-4.16 - -Signed-off-by: Thierry Vignaud ---- - configure.ac | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/configure.ac b/configure.ac -index eff160b..5d33161 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1887,6 +1887,15 @@ if test x"$rpm_sort_excuse" = x ; then - [Define to 1 if you have the rpm library.]) - fi - -+if test x"$LIBRPM" = x ; then -+ # Check for rpm library. -+ AC_CHECK_LIB([rpmio], [rpmvercmp], [], -+ [rpm_sort_excuse="rpmio missing rpmvercmp"]) -+ LIBRPM="-lrpmio"; -+ AC_DEFINE([HAVE_RPMIO], [1], -+ [Define to 1 if you have the rpm library.]) -+fi -+ - AC_SUBST([LIBRPM]) - - LIBGEOM= --- -1.8.3.1 - diff --git a/0217-Only-mark-GRUB-as-BLS-supported-in-OSTree-systems-wi.patch b/0217-Only-mark-GRUB-as-BLS-supported-in-OSTree-systems-wi.patch deleted file mode 100644 index c27df44..0000000 --- a/0217-Only-mark-GRUB-as-BLS-supported-in-OSTree-systems-wi.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 077d33c5035a51c50fa256330bbc82cde106855e Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Thu, 18 Jun 2020 11:19:00 +0200 -Subject: [PATCH 217/220] Only mark GRUB as BLS supported in OSTree systems - with a boot partition - -The script grub2-switch-to-blscfg updates the grub2 EFI binary in OSTree -systems and marks that has BLS support, to indicate that's not necessary -to add menuentry commands since the BLS snippets can be used to populate -the GRUB boot menu. - -But OSTree doesn't support installations that don't have a boot partition, -the BLS snippets assume that there will be one so this has to be checked -and only mark the bootloader as supporting BLS in OSTree installations -that have /boot as a mountpoint. - -Signed-off-by: Javier Martinez Canillas ---- - util/grub-switch-to-blscfg.in | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/util/grub-switch-to-blscfg.in b/util/grub-switch-to-blscfg.in -index cb22912..a851424 100644 ---- a/util/grub-switch-to-blscfg.in -+++ b/util/grub-switch-to-blscfg.in -@@ -261,7 +261,8 @@ copy_bls() { - # but only do this if the blsdir is not set, to make sure that the BLS - # parsing module will search for the BLS snippets in the default path. - if test -f /run/ostree-booted && test -d /sys/firmware/efi/efivars && \ -- ! ${grub_editenv} - list | grep -q blsdir; then -+ ! ${grub_editenv} - list | grep -q blsdir && \ -+ mountpoint -q /boot; then - grub_binary="$(find /usr/lib/ostree-boot/efi/EFI/${EFIDIR}/ -name grub*.efi)" - install -m 700 ${grub_binary} ${grubdir} || exit 1 - # Create a hidden file to indicate that grub2 now has BLS support. --- -1.8.3.1 - diff --git a/0218-support-TPM2.0-in-grub2-both-legacy-and-efi.patch b/0218-support-TPM2.0-in-grub2-both-legacy-and-efi.patch deleted file mode 100644 index d5fbdf7..0000000 --- a/0218-support-TPM2.0-in-grub2-both-legacy-and-efi.patch +++ /dev/null @@ -1,27 +0,0 @@ -From ca6d4093a87c9aa6059ad4e396a50ff485cc0066 Mon Sep 17 00:00:00 2001 -From: linyanly -Date: Fri, 3 Nov 2017 15:53:29 +0800 -Subject: [PATCH 218/220] backport 'support TPM2.0 in grub2, both legacy and - efi' - ---- - grub-core/kern/emu/mm.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/grub-core/kern/emu/mm.c b/grub-core/kern/emu/mm.c -index f262e95..43b31fa 100644 ---- a/grub-core/kern/emu/mm.c -+++ b/grub-core/kern/emu/mm.c -@@ -50,7 +50,8 @@ grub_zalloc (grub_size_t size) - void - grub_free (void *ptr) - { -- free (ptr); -+ if (ptr) -+ free (ptr); - } - - void * --- -1.8.3.1 - diff --git a/0219-Workaround-for-EFI-Bug-Plan3.patch b/0219-Workaround-for-EFI-Bug-Plan3.patch deleted file mode 100644 index a1cd9bd..0000000 --- a/0219-Workaround-for-EFI-Bug-Plan3.patch +++ /dev/null @@ -1,160 +0,0 @@ -From 55f6c378c70e139d28f1d8b60bb0197946659fb1 Mon Sep 17 00:00:00 2001 -From: Zhao Lei -Date: Mon, 25 Feb 2019 18:04:10 +0800 -Subject: [PATCH 219/220] Workaround for EFI Bug (Plan3) - -Signed-off-by: Zhao Lei ---- - grub-core/disk/efi/efidisk.c | 108 ++++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 107 insertions(+), 1 deletion(-) - -diff --git a/grub-core/disk/efi/efidisk.c b/grub-core/disk/efi/efidisk.c -index 54c227b..abb98aa 100644 ---- a/grub-core/disk/efi/efidisk.c -+++ b/grub-core/disk/efi/efidisk.c -@@ -27,12 +27,19 @@ - #include - #include - -+typedef enum { -+ GRUB_EFI_BIOS_OVERFLOW_INIT, -+ GRUB_EFI_BIOS_OVERFLOW_EXIST, -+ GRUB_EFI_BIOS_OVERFLOW_NOEXIST -+} grub_efi_bios_overflow_t; -+ - struct grub_efidisk_data - { - grub_efi_handle_t handle; - grub_efi_device_path_t *device_path; - grub_efi_device_path_t *last_device_path; - grub_efi_block_io_t *block_io; -+ grub_efi_bios_overflow_t bios_overflow; - struct grub_efidisk_data *next; - }; - -@@ -107,6 +114,7 @@ make_devices (void) - d->device_path = dp; - d->last_device_path = ldp; - d->block_io = bio; -+ d->bios_overflow = GRUB_EFI_BIOS_OVERFLOW_INIT; - d->next = devices; - devices = d; - } -@@ -540,8 +548,9 @@ grub_efidisk_close (struct grub_disk *disk __attribute__ ((unused))) - grub_dprintf ("efidisk", "closing %s\n", disk->name); - } - -+ - static grub_efi_status_t --grub_efidisk_readwrite (struct grub_disk *disk, grub_disk_addr_t sector, -+__grub_efidisk_readwrite (struct grub_disk *disk, grub_disk_addr_t sector, - grub_size_t size, char *buf, int wr) - { - struct grub_efidisk_data *d; -@@ -584,6 +593,103 @@ grub_efidisk_readwrite (struct grub_disk *disk, grub_disk_addr_t sector, - return status; - } - -+static void grub_efidisk_set_overflow(struct grub_disk *disk) -+{ -+ struct grub_efidisk_data *d = disk->data; -+ -+ char *buf; -+ int read_len; -+ int buf_len; -+ -+ static char magic_list[] = {0x55, 0xaa}; -+ unsigned int magic_index; -+ -+ if (d->bios_overflow != GRUB_EFI_BIOS_OVERFLOW_INIT) -+ return; -+ -+ if (d->block_io->media->removable_media) { -+ d->bios_overflow = GRUB_EFI_BIOS_OVERFLOW_NOEXIST; -+ return; -+ } -+ -+ read_len = (1 << disk->log_sector_size); -+ -+ /* read_len + 9 is enough, we use more */ -+ buf_len = (read_len + 8) * 2; -+ -+ buf = grub_malloc(buf_len); -+ if (!buf) { -+ grub_printf("grub_efidisk_set_overflow: malloc failed, ignore operation %s\n", disk->name); -+ d->bios_overflow = GRUB_EFI_BIOS_OVERFLOW_EXIST; -+ return; -+ } -+ -+ for (magic_index = 0; magic_index < sizeof(magic_list)/sizeof(magic_list[0]); magic_index++) { -+ int buf_index; -+ -+ grub_memset(buf + read_len, magic_list[magic_index], buf_len - read_len); -+ -+ /* -+ * If disk can not read, we can not determine overflow state now, -+ * just leave GRUB_EFI_BIOS_OVERFLOW_INIT state and re-check on -+ * next operation of this disk. -+ */ -+ if (GRUB_EFI_SUCCESS != __grub_efidisk_readwrite(disk, 0, 1, buf, 0)) { -+ d->bios_overflow = GRUB_EFI_BIOS_OVERFLOW_INIT; -+ goto out; -+ } -+ -+ for (buf_index = read_len; buf_index < buf_len; buf_index++) { -+ if (buf[buf_index] != magic_list[magic_index]) { -+ d->bios_overflow = GRUB_EFI_BIOS_OVERFLOW_EXIST; -+ goto out; -+ } -+ } -+ } -+ -+ d->bios_overflow = GRUB_EFI_BIOS_OVERFLOW_NOEXIST; -+ -+out: -+ grub_free(buf); -+ return; -+} -+ -+static int grub_efidisk_check_overflow(struct grub_disk *disk) -+{ -+ struct grub_efidisk_data *d = disk->data; -+ int ret; -+ -+ grub_efidisk_set_overflow(disk); -+ -+ switch (d->bios_overflow) { -+ case GRUB_EFI_BIOS_OVERFLOW_INIT: -+ ret = 0; -+ break; -+ case GRUB_EFI_BIOS_OVERFLOW_NOEXIST: -+ ret = 0; -+ break; -+ case GRUB_EFI_BIOS_OVERFLOW_EXIST: -+ ret = 1; -+ break; -+ default: -+ grub_printf("grub_efidisk_check_overflow: internal error in bios_overflow value(%d), ignore operation %s\n", d->bios_overflow, disk->name); -+ ret = 1; -+ break; -+ } -+ -+ return ret; -+} -+ -+static grub_efi_status_t -+grub_efidisk_readwrite (struct grub_disk *disk, grub_disk_addr_t sector, -+ grub_size_t size, char *buf, int wr) -+{ -+ if (grub_efidisk_check_overflow(disk)) -+ return GRUB_ERR_UNKNOWN_DEVICE; -+ -+ return __grub_efidisk_readwrite(disk, sector, size, buf, wr); -+} -+ - static grub_err_t - grub_efidisk_read (struct grub_disk *disk, grub_disk_addr_t sector, - grub_size_t size, char *buf) --- -1.8.3.1 - diff --git a/0220-bugfix-remove-excess-qutos.patch b/0220-bugfix-remove-excess-qutos.patch deleted file mode 100644 index f1a1e42..0000000 --- a/0220-bugfix-remove-excess-qutos.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 2332d14570ed41a15c36ff264b9790d832106607 Mon Sep 17 00:00:00 2001 -From: fengtao -Date: Tue, 10 Sep 2019 21:43:31 +0800 -Subject: [PATCH 220/220] fix grub2-setpassword errors for openEuler - ---- - util/grub-set-password.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/util/grub-set-password.in b/util/grub-set-password.in -index c0b5ebb..487fbb1 100644 ---- a/util/grub-set-password.in -+++ b/util/grub-set-password.in -@@ -1,6 +1,6 @@ - #!/bin/sh -e - --EFIDIR=$(grep ^ID= /etc/os-release | sed -e 's/^ID=//' -e 's/rhel/redhat/' -e 's/\"//g') -+EFIDIR=$(grep ^ID= /etc/os-release | sed -e 's/^ID=//' -e 's/rhel/redhat/' -e 's/\"//g' | tr -d '"') - if [ -d /sys/firmware/efi/efivars/ ]; then - grubdir=`echo "/@bootdirname@/efi/EFI/${EFIDIR}/" | sed 's,//*,/,g'` - else --- -1.8.3.1 - diff --git a/0221-yylex-Make-lexer-fatal-errors-actually-be-fatal.patch b/0221-yylex-Make-lexer-fatal-errors-actually-be-fatal.patch deleted file mode 100644 index ca9fbe1..0000000 --- a/0221-yylex-Make-lexer-fatal-errors-actually-be-fatal.patch +++ /dev/null @@ -1,69 +0,0 @@ -From a4d3fbdff1e3ca8f87642af2ac8752c30c617a3e Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Wed, 15 Apr 2020 15:45:02 -0400 -Subject: [PATCH 01/27] yylex: Make lexer fatal errors actually be fatal - -When presented with a command that can't be tokenized to anything -smaller than YYLMAX characters, the parser calls YY_FATAL_ERROR(errmsg), -expecting that will stop further processing, as such: - - #define YY_DO_BEFORE_ACTION \ - yyg->yytext_ptr = yy_bp; \ - yyleng = (int) (yy_cp - yy_bp); \ - yyg->yy_hold_char = *yy_cp; \ - *yy_cp = '\0'; \ - if ( yyleng >= YYLMAX ) \ - YY_FATAL_ERROR( "token too large, exceeds YYLMAX" ); \ - yy_flex_strncpy( yytext, yyg->yytext_ptr, yyleng + 1 , yyscanner); \ - yyg->yy_c_buf_p = yy_cp; - -The code flex generates expects that YY_FATAL_ERROR() will either return -for it or do some form of longjmp(), or handle the error in some way at -least, and so the strncpy() call isn't in an "else" clause, and thus if -YY_FATAL_ERROR() is *not* actually fatal, it does the call with the -questionable limit, and predictable results ensue. - -Unfortunately, our implementation of YY_FATAL_ERROR() is: - - #define YY_FATAL_ERROR(msg) \ - do { \ - grub_printf (_("fatal error: %s\n"), _(msg)); \ - } while (0) - -The same pattern exists in yyless(), and similar problems exist in users -of YY_INPUT(), several places in the main parsing loop, -yy_get_next_buffer(), yy_load_buffer_state(), yyensure_buffer_stack, -yy_scan_buffer(), etc. - -All of these callers expect YY_FATAL_ERROR() to actually be fatal, and -the things they do if it returns after calling it are wildly unsafe. - -Fixes: CVE-2020-10713 - -Signed-off-by: Peter Jones -Reviewed-by: Daniel Kiper ---- - grub-core/script/yylex.l | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/grub-core/script/yylex.l b/grub-core/script/yylex.l -index 7b44c37..b7203c8 100644 ---- a/grub-core/script/yylex.l -+++ b/grub-core/script/yylex.l -@@ -37,11 +37,11 @@ - - /* - * As we don't have access to yyscanner, we cannot do much except to -- * print the fatal error. -+ * print the fatal error and exit. - */ - #define YY_FATAL_ERROR(msg) \ - do { \ -- grub_printf (_("fatal error: %s\n"), _(msg)); \ -+ grub_fatal (_("fatal error: %s\n"), _(msg));\ - } while (0) - - #define COPY(str, hint) \ --- -2.23.0 - diff --git a/0222-safemath-Add-some-arithmetic-primitives-that-check-f.patch b/0222-safemath-Add-some-arithmetic-primitives-that-check-f.patch deleted file mode 100644 index 0cb63df..0000000 --- a/0222-safemath-Add-some-arithmetic-primitives-that-check-f.patch +++ /dev/null @@ -1,89 +0,0 @@ -From 68708c4503018d61dbcce7ac11cbb511d6425f4d Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 15 Jun 2020 10:58:42 -0400 -Subject: [PATCH 02/27] safemath: Add some arithmetic primitives that check for - overflow - -This adds a new header, include/grub/safemath.h, that includes easy to -use wrappers for __builtin_{add,sub,mul}_overflow() declared like: - - bool OP(a, b, res) - -where OP is grub_add, grub_sub or grub_mul. OP() returns true in the -case where the operation would overflow and res is not modified. -Otherwise, false is returned and the operation is executed. - -These arithmetic primitives require newer compiler versions. So, bump -these requirements in the INSTALL file too. - -Signed-off-by: Peter Jones -Reviewed-by: Daniel Kiper ---- - include/grub/compiler.h | 8 ++++++++ - include/grub/safemath.h | 37 +++++++++++++++++++++++++++++++++++++ - 2 files changed, 45 insertions(+) - create mode 100644 include/grub/safemath.h - -diff --git a/include/grub/compiler.h b/include/grub/compiler.h -index 9859ff4..61c0cb3 100644 ---- a/include/grub/compiler.h -+++ b/include/grub/compiler.h -@@ -50,4 +50,12 @@ - - #define UNUSED __attribute__((__unused__)) - -+#if defined(__clang__) && defined(__clang_major__) && defined(__clang_minor__) -+# define CLANG_PREREQ(maj,min) \ -+ ((__clang_major__ > (maj)) || \ -+ (__clang_major__ == (maj) && __clang_minor__ >= (min))) -+#else -+# define CLANG_PREREQ(maj,min) 0 -+#endif -+ - #endif /* ! GRUB_COMPILER_HEADER */ -diff --git a/include/grub/safemath.h b/include/grub/safemath.h -new file mode 100644 -index 0000000..c17b89b ---- /dev/null -+++ b/include/grub/safemath.h -@@ -0,0 +1,37 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2020 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ * -+ * Arithmetic operations that protect against overflow. -+ */ -+ -+#ifndef GRUB_SAFEMATH_H -+#define GRUB_SAFEMATH_H 1 -+ -+#include -+ -+/* These appear in gcc 5.1 and clang 3.8. */ -+#if GNUC_PREREQ(5, 1) || CLANG_PREREQ(3, 8) -+ -+#define grub_add(a, b, res) __builtin_add_overflow(a, b, res) -+#define grub_sub(a, b, res) __builtin_sub_overflow(a, b, res) -+#define grub_mul(a, b, res) __builtin_mul_overflow(a, b, res) -+ -+#else -+#error gcc 5.1 or newer or clang 3.8 or newer is required -+#endif -+ -+#endif /* GRUB_SAFEMATH_H */ --- -2.23.0 - diff --git a/0223-calloc-Make-sure-we-always-have-an-overflow-checking.patch b/0223-calloc-Make-sure-we-always-have-an-overflow-checking.patch deleted file mode 100644 index bdfeb09..0000000 --- a/0223-calloc-Make-sure-we-always-have-an-overflow-checking.patch +++ /dev/null @@ -1,242 +0,0 @@ -From 64e26162ebfe68317c143ca5ec996c892019f8f8 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 15 Jun 2020 12:15:29 -0400 -Subject: [PATCH 03/27] calloc: Make sure we always have an overflow-checking - calloc() available - -This tries to make sure that everywhere in this source tree, we always have -an appropriate version of calloc() (i.e. grub_calloc(), xcalloc(), etc.) -available, and that they all safely check for overflow and return NULL when -it would occur. - -Signed-off-by: Peter Jones -Reviewed-by: Daniel Kiper ---- - grub-core/kern/emu/misc.c | 12 +++++++++ - grub-core/kern/emu/mm.c | 10 ++++++++ - grub-core/kern/mm.c | 40 ++++++++++++++++++++++++++++++ - grub-core/lib/libgcrypt_wrap/mem.c | 11 ++++++-- - grub-core/lib/posix_wrap/stdlib.h | 8 +++++- - include/grub/emu/misc.h | 1 + - include/grub/mm.h | 6 +++++ - 7 files changed, 85 insertions(+), 3 deletions(-) - -diff --git a/grub-core/kern/emu/misc.c b/grub-core/kern/emu/misc.c -index 7a8d9e6..f08a1bb 100644 ---- a/grub-core/kern/emu/misc.c -+++ b/grub-core/kern/emu/misc.c -@@ -86,6 +86,18 @@ grub_util_error (const char *fmt, ...) - grub_exit (1); - } - -+void * -+xcalloc (grub_size_t nmemb, grub_size_t size) -+{ -+ void *p; -+ -+ p = calloc (nmemb, size); -+ if (!p) -+ grub_util_error ("%s", _("out of memory")); -+ -+ return p; -+} -+ - void * - xmalloc (grub_size_t size) - { -diff --git a/grub-core/kern/emu/mm.c b/grub-core/kern/emu/mm.c -index 43b31fa..4d1046a 100644 ---- a/grub-core/kern/emu/mm.c -+++ b/grub-core/kern/emu/mm.c -@@ -25,6 +25,16 @@ - #include - #include - -+void * -+grub_calloc (grub_size_t nmemb, grub_size_t size) -+{ -+ void *ret; -+ ret = calloc (nmemb, size); -+ if (!ret) -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); -+ return ret; -+} -+ - void * - grub_malloc (grub_size_t size) - { -diff --git a/grub-core/kern/mm.c b/grub-core/kern/mm.c -index 002cbfa..80d0720 100644 ---- a/grub-core/kern/mm.c -+++ b/grub-core/kern/mm.c -@@ -67,8 +67,10 @@ - #include - #include - #include -+#include - - #ifdef MM_DEBUG -+# undef grub_calloc - # undef grub_malloc - # undef grub_zalloc - # undef grub_realloc -@@ -375,6 +377,30 @@ grub_memalign (grub_size_t align, grub_size_t size) - return 0; - } - -+/* -+ * Allocate NMEMB instances of SIZE bytes and return the pointer, or error on -+ * integer overflow. -+ */ -+void * -+grub_calloc (grub_size_t nmemb, grub_size_t size) -+{ -+ void *ret; -+ grub_size_t sz = 0; -+ -+ if (grub_mul (nmemb, size, &sz)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ return NULL; -+ } -+ -+ ret = grub_memalign (0, sz); -+ if (!ret) -+ return NULL; -+ -+ grub_memset (ret, 0, sz); -+ return ret; -+} -+ - /* Allocate SIZE bytes and return the pointer. */ - void * - grub_malloc (grub_size_t size) -@@ -561,6 +587,20 @@ grub_mm_dump (unsigned lineno) - grub_printf ("\n"); - } - -+void * -+grub_debug_calloc (const char *file, int line, grub_size_t nmemb, grub_size_t size) -+{ -+ void *ptr; -+ -+ if (grub_mm_debug) -+ grub_printf ("%s:%d: calloc (0x%" PRIxGRUB_SIZE ", 0x%" PRIxGRUB_SIZE ") = ", -+ file, line, size); -+ ptr = grub_calloc (nmemb, size); -+ if (grub_mm_debug) -+ grub_printf ("%p\n", ptr); -+ return ptr; -+} -+ - void * - grub_debug_malloc (const char *file, int line, grub_size_t size) - { -diff --git a/grub-core/lib/libgcrypt_wrap/mem.c b/grub-core/lib/libgcrypt_wrap/mem.c -index beeb661..74c6eaf 100644 ---- a/grub-core/lib/libgcrypt_wrap/mem.c -+++ b/grub-core/lib/libgcrypt_wrap/mem.c -@@ -4,6 +4,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -36,7 +37,10 @@ void * - gcry_xcalloc (size_t n, size_t m) - { - void *ret; -- ret = grub_zalloc (n * m); -+ size_t sz; -+ if (grub_mul (n, m, &sz)) -+ grub_fatal ("gcry_xcalloc would overflow"); -+ ret = grub_zalloc (sz); - if (!ret) - grub_fatal ("gcry_xcalloc failed"); - return ret; -@@ -56,7 +60,10 @@ void * - gcry_xcalloc_secure (size_t n, size_t m) - { - void *ret; -- ret = grub_zalloc (n * m); -+ size_t sz; -+ if (grub_mul (n, m, &sz)) -+ grub_fatal ("gcry_xcalloc would overflow"); -+ ret = grub_zalloc (sz); - if (!ret) - grub_fatal ("gcry_xcalloc failed"); - return ret; -diff --git a/grub-core/lib/posix_wrap/stdlib.h b/grub-core/lib/posix_wrap/stdlib.h -index 3b46f47..7a8d385 100644 ---- a/grub-core/lib/posix_wrap/stdlib.h -+++ b/grub-core/lib/posix_wrap/stdlib.h -@@ -21,6 +21,7 @@ - - #include - #include -+#include - - static inline void - free (void *ptr) -@@ -37,7 +38,12 @@ malloc (grub_size_t size) - static inline void * - calloc (grub_size_t size, grub_size_t nelem) - { -- return grub_zalloc (size * nelem); -+ grub_size_t sz; -+ -+ if (grub_mul (size, nelem, &sz)) -+ return NULL; -+ -+ return grub_zalloc (sz); - } - - static inline void * -diff --git a/include/grub/emu/misc.h b/include/grub/emu/misc.h -index 5ef4f79..0105695 100644 ---- a/include/grub/emu/misc.h -+++ b/include/grub/emu/misc.h -@@ -47,6 +47,7 @@ grub_util_device_is_mapped (const char *dev); - #define GRUB_HOST_PRIuLONG_LONG "llu" - #define GRUB_HOST_PRIxLONG_LONG "llx" - -+void * EXPORT_FUNC(xcalloc) (grub_size_t nmemb, grub_size_t size) WARN_UNUSED_RESULT; - void * EXPORT_FUNC(xmalloc) (grub_size_t size) WARN_UNUSED_RESULT; - void * EXPORT_FUNC(xrealloc) (void *ptr, grub_size_t size) WARN_UNUSED_RESULT; - char * EXPORT_FUNC(xstrdup) (const char *str) WARN_UNUSED_RESULT; -diff --git a/include/grub/mm.h b/include/grub/mm.h -index 28e2e53..9c38dd3 100644 ---- a/include/grub/mm.h -+++ b/include/grub/mm.h -@@ -29,6 +29,7 @@ - #endif - - void grub_mm_init_region (void *addr, grub_size_t size); -+void *EXPORT_FUNC(grub_calloc) (grub_size_t nmemb, grub_size_t size); - void *EXPORT_FUNC(grub_malloc) (grub_size_t size); - void *EXPORT_FUNC(grub_zalloc) (grub_size_t size); - void EXPORT_FUNC(grub_free) (void *ptr); -@@ -48,6 +49,9 @@ extern int EXPORT_VAR(grub_mm_debug); - void grub_mm_dump_free (void); - void grub_mm_dump (unsigned lineno); - -+#define grub_calloc(nmemb, size) \ -+ grub_debug_calloc (GRUB_FILE, __LINE__, nmemb, size) -+ - #define grub_malloc(size) \ - grub_debug_malloc (GRUB_FILE, __LINE__, size) - -@@ -63,6 +67,8 @@ void grub_mm_dump (unsigned lineno); - #define grub_free(ptr) \ - grub_debug_free (GRUB_FILE, __LINE__, ptr) - -+void *EXPORT_FUNC(grub_debug_calloc) (const char *file, int line, -+ grub_size_t nmemb, grub_size_t size); - void *EXPORT_FUNC(grub_debug_malloc) (const char *file, int line, - grub_size_t size); - void *EXPORT_FUNC(grub_debug_zalloc) (const char *file, int line, --- -2.23.0 - diff --git a/0224-calloc-Use-calloc-at-most-places.patch b/0224-calloc-Use-calloc-at-most-places.patch deleted file mode 100644 index d806057..0000000 --- a/0224-calloc-Use-calloc-at-most-places.patch +++ /dev/null @@ -1,1836 +0,0 @@ -From f725fa7cb2ece547c5af01eeeecfe8d95802ed41 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 15 Jun 2020 12:26:01 -0400 -Subject: [PATCH 04/27] calloc: Use calloc() at most places - -This modifies most of the places we do some form of: - - X = malloc(Y * Z); - -to use calloc(Y, Z) instead. - -Among other issues, this fixes: - - allocation of integer overflow in grub_png_decode_image_header() - reported by Chris Coulson, - - allocation of integer overflow in luks_recover_key() - reported by Chris Coulson, - - allocation of integer overflow in grub_lvm_detect() - reported by Chris Coulson. - -Fixes: CVE-2020-14308 - -Signed-off-by: Peter Jones -Reviewed-by: Daniel Kiper ---- - grub-core/bus/usb/usbhub.c | 8 ++++---- - grub-core/commands/efi/lsefisystab.c | 3 ++- - grub-core/commands/legacycfg.c | 6 +++--- - grub-core/commands/menuentry.c | 2 +- - grub-core/commands/nativedisk.c | 2 +- - grub-core/commands/parttool.c | 12 +++++++++--- - grub-core/commands/regexp.c | 2 +- - grub-core/commands/search_wrap.c | 2 +- - grub-core/disk/diskfilter.c | 4 ++-- - grub-core/disk/ieee1275/ofdisk.c | 2 +- - grub-core/disk/ldm.c | 14 +++++++------- - grub-core/disk/luks.c | 2 +- - grub-core/disk/lvm.c | 8 ++++---- - grub-core/disk/xen/xendisk.c | 2 +- - grub-core/efiemu/loadcore.c | 2 +- - grub-core/efiemu/mm.c | 6 +++--- - grub-core/font/font.c | 3 +-- - grub-core/fs/affs.c | 6 +++--- - grub-core/fs/btrfs.c | 6 +++--- - grub-core/fs/hfs.c | 2 +- - grub-core/fs/hfsplus.c | 6 +++--- - grub-core/fs/iso9660.c | 2 +- - grub-core/fs/ntfs.c | 4 ++-- - grub-core/fs/sfs.c | 2 +- - grub-core/fs/tar.c | 2 +- - grub-core/fs/udf.c | 4 ++-- - grub-core/fs/zfs/zfs.c | 4 ++-- - grub-core/gfxmenu/gui_string_util.c | 2 +- - grub-core/gfxmenu/widget-box.c | 4 ++-- - grub-core/io/gzio.c | 2 +- - grub-core/kern/efi/efi.c | 6 +++--- - grub-core/kern/emu/hostdisk.c | 2 +- - grub-core/kern/fs.c | 2 +- - grub-core/kern/misc.c | 2 +- - grub-core/kern/parser.c | 2 +- - grub-core/kern/uboot/uboot.c | 2 +- - grub-core/lib/libgcrypt/cipher/ac.c | 8 ++++---- - grub-core/lib/libgcrypt/cipher/primegen.c | 4 ++-- - grub-core/lib/libgcrypt/cipher/pubkey.c | 4 ++-- - grub-core/lib/priority_queue.c | 2 +- - grub-core/lib/reed_solomon.c | 7 +++---- - grub-core/lib/relocator.c | 10 +++++----- - grub-core/lib/zstd/fse_decompress.c | 2 +- - grub-core/loader/arm/linux.c | 2 +- - grub-core/loader/efi/chainloader.c | 2 +- - grub-core/loader/i386/bsdXX.c | 2 +- - grub-core/loader/i386/xnu.c | 4 ++-- - grub-core/loader/macho.c | 2 +- - grub-core/loader/multiboot_elfxx.c | 2 +- - grub-core/loader/xnu.c | 2 +- - grub-core/mmap/mmap.c | 4 ++-- - grub-core/net/bootp.c | 2 +- - grub-core/net/dns.c | 10 +++++----- - grub-core/net/net.c | 4 ++-- - grub-core/normal/charset.c | 10 +++++----- - grub-core/normal/cmdline.c | 14 +++++++------- - grub-core/normal/menu_entry.c | 14 +++++++------- - grub-core/normal/menu_text.c | 4 ++-- - grub-core/normal/term.c | 4 ++-- - grub-core/osdep/linux/getroot.c | 6 +++--- - grub-core/osdep/unix/config.c | 2 +- - grub-core/osdep/windows/getroot.c | 2 +- - grub-core/osdep/windows/hostdisk.c | 4 ++-- - grub-core/osdep/windows/init.c | 2 +- - grub-core/osdep/windows/platform.c | 4 ++-- - grub-core/osdep/windows/relpath.c | 2 +- - grub-core/partmap/gpt.c | 2 +- - grub-core/partmap/msdos.c | 2 +- - grub-core/script/execute.c | 2 +- - grub-core/tests/fake_input.c | 2 +- - grub-core/tests/video_checksum.c | 6 +++--- - grub-core/video/capture.c | 2 +- - grub-core/video/emu/sdl.c | 2 +- - grub-core/video/i386/pc/vga.c | 2 +- - grub-core/video/readers/png.c | 2 +- - include/grub/unicode.h | 4 ++-- - util/getroot.c | 2 +- - util/grub-file.c | 2 +- - util/grub-fstest.c | 4 ++-- - util/grub-install-common.c | 2 +- - util/grub-install.c | 4 ++-- - util/grub-mkimagexx.c | 6 ++---- - util/grub-mkrescue.c | 4 ++-- - util/grub-mkstandalone.c | 2 +- - util/grub-pe2elf.c | 12 +++++------- - util/grub-probe.c | 4 ++-- - 86 files changed, 176 insertions(+), 175 deletions(-) - -diff --git a/grub-core/bus/usb/usbhub.c b/grub-core/bus/usb/usbhub.c -index 34a7ff1..a06cce3 100644 ---- a/grub-core/bus/usb/usbhub.c -+++ b/grub-core/bus/usb/usbhub.c -@@ -149,8 +149,8 @@ grub_usb_add_hub (grub_usb_device_t dev) - grub_usb_set_configuration (dev, 1); - - dev->nports = hubdesc.portcnt; -- dev->children = grub_zalloc (hubdesc.portcnt * sizeof (dev->children[0])); -- dev->ports = grub_zalloc (dev->nports * sizeof (dev->ports[0])); -+ dev->children = grub_calloc (hubdesc.portcnt, sizeof (dev->children[0])); -+ dev->ports = grub_calloc (dev->nports, sizeof (dev->ports[0])); - if (!dev->children || !dev->ports) - { - grub_free (dev->children); -@@ -268,8 +268,8 @@ grub_usb_controller_dev_register_iter (grub_usb_controller_t controller, void *d - - /* Query the number of ports the root Hub has. */ - hub->nports = controller->dev->hubports (controller); -- hub->devices = grub_zalloc (sizeof (hub->devices[0]) * hub->nports); -- hub->ports = grub_zalloc (sizeof (hub->ports[0]) * hub->nports); -+ hub->devices = grub_calloc (hub->nports, sizeof (hub->devices[0])); -+ hub->ports = grub_calloc (hub->nports, sizeof (hub->ports[0])); - if (!hub->devices || !hub->ports) - { - grub_free (hub->devices); -diff --git a/grub-core/commands/efi/lsefisystab.c b/grub-core/commands/efi/lsefisystab.c -index df10302..cd81507 100644 ---- a/grub-core/commands/efi/lsefisystab.c -+++ b/grub-core/commands/efi/lsefisystab.c -@@ -71,7 +71,8 @@ grub_cmd_lsefisystab (struct grub_command *cmd __attribute__ ((unused)), - grub_printf ("Vendor: "); - - for (vendor_utf16 = st->firmware_vendor; *vendor_utf16; vendor_utf16++); -- vendor = grub_malloc (4 * (vendor_utf16 - st->firmware_vendor) + 1); -+ /* Allocate extra 3 bytes to simplify math. */ -+ vendor = grub_calloc (4, vendor_utf16 - st->firmware_vendor + 1); - if (!vendor) - return grub_errno; - *grub_utf16_to_utf8 ((grub_uint8_t *) vendor, st->firmware_vendor, -diff --git a/grub-core/commands/legacycfg.c b/grub-core/commands/legacycfg.c -index 891eac5..da5143d 100644 ---- a/grub-core/commands/legacycfg.c -+++ b/grub-core/commands/legacycfg.c -@@ -315,7 +315,7 @@ grub_cmd_legacy_kernel (struct grub_command *mycmd __attribute__ ((unused)), - if (argc < 2) - return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); - -- cutargs = grub_malloc (sizeof (cutargs[0]) * (argc - 1)); -+ cutargs = grub_calloc (argc - 1, sizeof (cutargs[0])); - if (!cutargs) - return grub_errno; - cutargc = argc - 1; -@@ -437,7 +437,7 @@ grub_cmd_legacy_kernel (struct grub_command *mycmd __attribute__ ((unused)), - { - char rbuf[3] = "-r"; - bsdargc = cutargc + 2; -- bsdargs = grub_malloc (sizeof (bsdargs[0]) * bsdargc); -+ bsdargs = grub_calloc (bsdargc, sizeof (bsdargs[0])); - if (!bsdargs) - { - err = grub_errno; -@@ -560,7 +560,7 @@ grub_cmd_legacy_initrdnounzip (struct grub_command *mycmd __attribute__ ((unused - return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("can't find command `%s'"), - "module"); - -- newargs = grub_malloc ((argc + 1) * sizeof (newargs[0])); -+ newargs = grub_calloc (argc + 1, sizeof (newargs[0])); - if (!newargs) - return grub_errno; - grub_memcpy (newargs + 1, args, argc * sizeof (newargs[0])); -diff --git a/grub-core/commands/menuentry.c b/grub-core/commands/menuentry.c -index 29736f5..84edfc0 100644 ---- a/grub-core/commands/menuentry.c -+++ b/grub-core/commands/menuentry.c -@@ -157,7 +157,7 @@ grub_normal_add_menu_entry (int argc, const char **args, - grub_dprintf ("menu", "menu_id:\"%s\"\n", menu_id); - - /* Save argc, args to pass as parameters to block arg later. */ -- menu_args = grub_malloc (sizeof (char*) * (argc + 1)); -+ menu_args = grub_calloc (argc + 1, sizeof (char *)); - if (! menu_args) - goto fail; - -diff --git a/grub-core/commands/nativedisk.c b/grub-core/commands/nativedisk.c -index 699447d..7c8f97f 100644 ---- a/grub-core/commands/nativedisk.c -+++ b/grub-core/commands/nativedisk.c -@@ -195,7 +195,7 @@ grub_cmd_nativedisk (grub_command_t cmd __attribute__ ((unused)), - else - path_prefix = prefix; - -- mods = grub_malloc (argc * sizeof (mods[0])); -+ mods = grub_calloc (argc, sizeof (mods[0])); - if (!mods) - return grub_errno; - -diff --git a/grub-core/commands/parttool.c b/grub-core/commands/parttool.c -index 22b46b1..051e313 100644 ---- a/grub-core/commands/parttool.c -+++ b/grub-core/commands/parttool.c -@@ -59,7 +59,13 @@ grub_parttool_register(const char *part_name, - for (nargs = 0; args[nargs].name != 0; nargs++); - cur->nargs = nargs; - cur->args = (struct grub_parttool_argdesc *) -- grub_malloc ((nargs + 1) * sizeof (struct grub_parttool_argdesc)); -+ grub_calloc (nargs + 1, sizeof (struct grub_parttool_argdesc)); -+ if (!cur->args) -+ { -+ grub_free (cur); -+ curhandle--; -+ return -1; -+ } - grub_memcpy (cur->args, args, - (nargs + 1) * sizeof (struct grub_parttool_argdesc)); - -@@ -257,7 +263,7 @@ grub_cmd_parttool (grub_command_t cmd __attribute__ ((unused)), - return err; - } - -- parsed = (int *) grub_zalloc (argc * sizeof (int)); -+ parsed = (int *) grub_calloc (argc, sizeof (int)); - - for (i = 1; i < argc; i++) - if (! parsed[i]) -@@ -290,7 +296,7 @@ grub_cmd_parttool (grub_command_t cmd __attribute__ ((unused)), - } - ptool = cur; - pargs = (struct grub_parttool_args *) -- grub_zalloc (ptool->nargs * sizeof (struct grub_parttool_args)); -+ grub_calloc (ptool->nargs, sizeof (struct grub_parttool_args)); - for (j = i; j < argc; j++) - if (! parsed[j]) - { -diff --git a/grub-core/commands/regexp.c b/grub-core/commands/regexp.c -index 7c5c72f..612003f 100644 ---- a/grub-core/commands/regexp.c -+++ b/grub-core/commands/regexp.c -@@ -116,7 +116,7 @@ grub_cmd_regexp (grub_extcmd_context_t ctxt, int argc, char **args) - if (ret) - goto fail; - -- matches = grub_zalloc (sizeof (*matches) * (regex.re_nsub + 1)); -+ matches = grub_calloc (regex.re_nsub + 1, sizeof (*matches)); - if (! matches) - goto fail; - -diff --git a/grub-core/commands/search_wrap.c b/grub-core/commands/search_wrap.c -index d7fd26b..47fc8eb 100644 ---- a/grub-core/commands/search_wrap.c -+++ b/grub-core/commands/search_wrap.c -@@ -122,7 +122,7 @@ grub_cmd_search (grub_extcmd_context_t ctxt, int argc, char **args) - for (i = 0; state[SEARCH_HINT_BAREMETAL].args[i]; i++) - nhints++; - -- hints = grub_malloc (sizeof (hints[0]) * nhints); -+ hints = grub_calloc (nhints, sizeof (hints[0])); - if (!hints) - return grub_errno; - j = 0; -diff --git a/grub-core/disk/diskfilter.c b/grub-core/disk/diskfilter.c -index 3f264be..88784dc 100644 ---- a/grub-core/disk/diskfilter.c -+++ b/grub-core/disk/diskfilter.c -@@ -1137,7 +1137,7 @@ grub_diskfilter_make_raid (grub_size_t uuidlen, char *uuid, int nmemb, - array->lvs->segments->node_count = nmemb; - array->lvs->segments->raid_member_size = disk_size; - array->lvs->segments->nodes -- = grub_zalloc (nmemb * sizeof (array->lvs->segments->nodes[0])); -+ = grub_calloc (nmemb, sizeof (array->lvs->segments->nodes[0])); - array->lvs->segments->stripe_size = stripe_size; - for (i = 0; i < nmemb; i++) - { -@@ -1230,7 +1230,7 @@ insert_array (grub_disk_t disk, const struct grub_diskfilter_pv_id *id, - grub_partition_t p; - for (p = disk->partition; p; p = p->parent) - s++; -- pv->partmaps = xmalloc (s * sizeof (pv->partmaps[0])); -+ pv->partmaps = xcalloc (s, sizeof (pv->partmaps[0])); - s = 0; - for (p = disk->partition; p; p = p->parent) - pv->partmaps[s++] = xstrdup (p->partmap->name); -diff --git a/grub-core/disk/ieee1275/ofdisk.c b/grub-core/disk/ieee1275/ofdisk.c -index f73257e..03674cb 100644 ---- a/grub-core/disk/ieee1275/ofdisk.c -+++ b/grub-core/disk/ieee1275/ofdisk.c -@@ -297,7 +297,7 @@ dev_iterate (const struct grub_ieee1275_devalias *alias) - /* Power machines documentation specify 672 as maximum SAS disks in - one system. Using a slightly larger value to be safe. */ - table_size = 768; -- table = grub_malloc (table_size * sizeof (grub_uint64_t)); -+ table = grub_calloc (table_size, sizeof (grub_uint64_t)); - - if (!table) - { -diff --git a/grub-core/disk/ldm.c b/grub-core/disk/ldm.c -index 2a22d2d..e632370 100644 ---- a/grub-core/disk/ldm.c -+++ b/grub-core/disk/ldm.c -@@ -323,8 +323,8 @@ make_vg (grub_disk_t disk, - lv->segments->type = GRUB_DISKFILTER_MIRROR; - lv->segments->node_count = 0; - lv->segments->node_alloc = 8; -- lv->segments->nodes = grub_zalloc (sizeof (*lv->segments->nodes) -- * lv->segments->node_alloc); -+ lv->segments->nodes = grub_calloc (lv->segments->node_alloc, -+ sizeof (*lv->segments->nodes)); - if (!lv->segments->nodes) - goto fail2; - ptr = vblk[i].dynamic; -@@ -543,8 +543,8 @@ make_vg (grub_disk_t disk, - { - comp->segment_alloc = 8; - comp->segment_count = 0; -- comp->segments = grub_malloc (sizeof (*comp->segments) -- * comp->segment_alloc); -+ comp->segments = grub_calloc (comp->segment_alloc, -+ sizeof (*comp->segments)); - if (!comp->segments) - goto fail2; - } -@@ -590,8 +590,8 @@ make_vg (grub_disk_t disk, - } - comp->segments->node_count = read_int (ptr + 1, *ptr); - comp->segments->node_alloc = comp->segments->node_count; -- comp->segments->nodes = grub_zalloc (sizeof (*comp->segments->nodes) -- * comp->segments->node_alloc); -+ comp->segments->nodes = grub_calloc (comp->segments->node_alloc, -+ sizeof (*comp->segments->nodes)); - if (!lv->segments->nodes) - goto fail2; - } -@@ -1017,7 +1017,7 @@ grub_util_ldm_embed (struct grub_disk *disk, unsigned int *nsectors, - *nsectors = lv->size; - if (*nsectors > max_nsectors) - *nsectors = max_nsectors; -- *sectors = grub_malloc (*nsectors * sizeof (**sectors)); -+ *sectors = grub_calloc (*nsectors, sizeof (**sectors)); - if (!*sectors) - return grub_errno; - for (i = 0; i < *nsectors; i++) -diff --git a/grub-core/disk/luks.c b/grub-core/disk/luks.c -index 86c50c6..18b3a8b 100644 ---- a/grub-core/disk/luks.c -+++ b/grub-core/disk/luks.c -@@ -336,7 +336,7 @@ luks_recover_key (grub_disk_t source, - && grub_be_to_cpu32 (header.keyblock[i].stripes) > max_stripes) - max_stripes = grub_be_to_cpu32 (header.keyblock[i].stripes); - -- split_key = grub_malloc (keysize * max_stripes); -+ split_key = grub_calloc (keysize, max_stripes); - if (!split_key) - return grub_errno; - -diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c -index 0cbd0dd..8e76d1a 100644 ---- a/grub-core/disk/lvm.c -+++ b/grub-core/disk/lvm.c -@@ -174,7 +174,7 @@ grub_lvm_detect (grub_disk_t disk, - first one. */ - - /* Allocate buffer space for the circular worst-case scenario. */ -- metadatabuf = grub_malloc (2 * mda_size); -+ metadatabuf = grub_calloc (2, mda_size); - if (! metadatabuf) - goto fail; - -@@ -427,7 +427,7 @@ grub_lvm_detect (grub_disk_t disk, - #endif - goto lvs_fail; - } -- lv->segments = grub_zalloc (sizeof (*seg) * lv->segment_count); -+ lv->segments = grub_calloc (lv->segment_count, sizeof (*seg)); - seg = lv->segments; - - for (i = 0; i < lv->segment_count; i++) -@@ -484,8 +484,8 @@ grub_lvm_detect (grub_disk_t disk, - if (seg->node_count != 1) - seg->stripe_size = grub_lvm_getvalue (&p, "stripe_size = "); - -- seg->nodes = grub_zalloc (sizeof (*stripe) -- * seg->node_count); -+ seg->nodes = grub_calloc (seg->node_count, -+ sizeof (*stripe)); - stripe = seg->nodes; - - p = grub_strstr (p, "stripes = ["); -diff --git a/grub-core/disk/xen/xendisk.c b/grub-core/disk/xen/xendisk.c -index 48476cb..d6612ee 100644 ---- a/grub-core/disk/xen/xendisk.c -+++ b/grub-core/disk/xen/xendisk.c -@@ -426,7 +426,7 @@ grub_xendisk_init (void) - if (!ctr) - return; - -- virtdisks = grub_malloc (ctr * sizeof (virtdisks[0])); -+ virtdisks = grub_calloc (ctr, sizeof (virtdisks[0])); - if (!virtdisks) - return; - if (grub_xenstore_dir ("device/vbd", fill, &ctr)) -diff --git a/grub-core/efiemu/loadcore.c b/grub-core/efiemu/loadcore.c -index 44085ef..2b92462 100644 ---- a/grub-core/efiemu/loadcore.c -+++ b/grub-core/efiemu/loadcore.c -@@ -201,7 +201,7 @@ grub_efiemu_count_symbols (const Elf_Ehdr *e) - - grub_efiemu_nelfsyms = (unsigned) s->sh_size / (unsigned) s->sh_entsize; - grub_efiemu_elfsyms = (struct grub_efiemu_elf_sym *) -- grub_malloc (sizeof (struct grub_efiemu_elf_sym) * grub_efiemu_nelfsyms); -+ grub_calloc (grub_efiemu_nelfsyms, sizeof (struct grub_efiemu_elf_sym)); - - /* Relocators */ - for (i = 0, s = (Elf_Shdr *) ((char *) e + e->e_shoff); -diff --git a/grub-core/efiemu/mm.c b/grub-core/efiemu/mm.c -index 52a032f..9b8e0d0 100644 ---- a/grub-core/efiemu/mm.c -+++ b/grub-core/efiemu/mm.c -@@ -554,11 +554,11 @@ grub_efiemu_mmap_sort_and_uniq (void) - /* Initialize variables*/ - grub_memset (present, 0, sizeof (int) * GRUB_EFI_MAX_MEMORY_TYPE); - scanline_events = (struct grub_efiemu_mmap_scan *) -- grub_malloc (sizeof (struct grub_efiemu_mmap_scan) * 2 * mmap_num); -+ grub_calloc (mmap_num, sizeof (struct grub_efiemu_mmap_scan) * 2); - - /* Number of chunks can't increase more than by factor of 2 */ - result = (grub_efi_memory_descriptor_t *) -- grub_malloc (sizeof (grub_efi_memory_descriptor_t) * 2 * mmap_num); -+ grub_calloc (mmap_num, sizeof (grub_efi_memory_descriptor_t) * 2); - if (!result || !scanline_events) - { - grub_free (result); -@@ -660,7 +660,7 @@ grub_efiemu_mm_do_alloc (void) - - /* Preallocate mmap */ - efiemu_mmap = (grub_efi_memory_descriptor_t *) -- grub_malloc (mmap_reserved_size * sizeof (grub_efi_memory_descriptor_t)); -+ grub_calloc (mmap_reserved_size, sizeof (grub_efi_memory_descriptor_t)); - if (!efiemu_mmap) - { - grub_efiemu_unload (); -diff --git a/grub-core/font/font.c b/grub-core/font/font.c -index 85a2925..8e118b3 100644 ---- a/grub-core/font/font.c -+++ b/grub-core/font/font.c -@@ -293,8 +293,7 @@ load_font_index (grub_file_t file, grub_uint32_t sect_length, struct - font->num_chars = sect_length / FONT_CHAR_INDEX_ENTRY_SIZE; - - /* Allocate the character index array. */ -- font->char_index = grub_malloc (font->num_chars -- * sizeof (struct char_index_entry)); -+ font->char_index = grub_calloc (font->num_chars, sizeof (struct char_index_entry)); - if (!font->char_index) - return 1; - font->bmp_idx = grub_malloc (0x10000 * sizeof (grub_uint16_t)); -diff --git a/grub-core/fs/affs.c b/grub-core/fs/affs.c -index 6b6a2bc..220b371 100644 ---- a/grub-core/fs/affs.c -+++ b/grub-core/fs/affs.c -@@ -301,7 +301,7 @@ grub_affs_read_symlink (grub_fshelp_node_t node) - return 0; - } - latin1[symlink_size] = 0; -- utf8 = grub_malloc (symlink_size * GRUB_MAX_UTF8_PER_LATIN1 + 1); -+ utf8 = grub_calloc (GRUB_MAX_UTF8_PER_LATIN1 + 1, symlink_size); - if (!utf8) - { - grub_free (latin1); -@@ -422,7 +422,7 @@ grub_affs_iterate_dir (grub_fshelp_node_t dir, - return 1; - } - -- hashtable = grub_zalloc (data->htsize * sizeof (*hashtable)); -+ hashtable = grub_calloc (data->htsize, sizeof (*hashtable)); - if (!hashtable) - return 1; - -@@ -628,7 +628,7 @@ grub_affs_label (grub_device_t device, char **label) - len = file.namelen; - if (len > sizeof (file.name)) - len = sizeof (file.name); -- *label = grub_malloc (len * GRUB_MAX_UTF8_PER_LATIN1 + 1); -+ *label = grub_calloc (GRUB_MAX_UTF8_PER_LATIN1 + 1, len); - if (*label) - *grub_latin1_to_utf8 ((grub_uint8_t *) *label, file.name, len) = '\0'; - } -diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 9cd7f4b..ba080fd 100644 ---- a/grub-core/fs/btrfs.c -+++ b/grub-core/fs/btrfs.c -@@ -442,7 +442,7 @@ lower_bound (struct grub_btrfs_data *data, - { - desc->allocated = 16; - desc->depth = 0; -- desc->data = grub_malloc (sizeof (desc->data[0]) * desc->allocated); -+ desc->data = grub_calloc (desc->allocated, sizeof (desc->data[0])); - if (!desc->data) - return grub_errno; - } -@@ -781,7 +781,7 @@ raid56_read_retry (struct grub_btrfs_data *data, - grub_err_t ret = GRUB_ERR_OUT_OF_MEMORY; - grub_uint64_t i, failed_devices; - -- buffers = grub_zalloc (sizeof(*buffers) * nstripes); -+ buffers = grub_calloc (nstripes, sizeof (*buffers)); - if (!buffers) - goto cleanup; - -@@ -2477,7 +2477,7 @@ grub_btrfs_embed (grub_device_t device __attribute__ ((unused)), - *nsectors = 64 * 2 - 1; - if (*nsectors > max_nsectors) - *nsectors = max_nsectors; -- *sectors = grub_malloc (*nsectors * sizeof (**sectors)); -+ *sectors = grub_calloc (*nsectors, sizeof (**sectors)); - if (!*sectors) - return grub_errno; - for (i = 0; i < *nsectors; i++) -diff --git a/grub-core/fs/hfs.c b/grub-core/fs/hfs.c -index ac0a409..3fe842b 100644 ---- a/grub-core/fs/hfs.c -+++ b/grub-core/fs/hfs.c -@@ -1360,7 +1360,7 @@ grub_hfs_label (grub_device_t device, char **label) - grub_size_t len = data->sblock.volname[0]; - if (len > sizeof (data->sblock.volname) - 1) - len = sizeof (data->sblock.volname) - 1; -- *label = grub_malloc (len * MAX_UTF8_PER_MAC_ROMAN + 1); -+ *label = grub_calloc (MAX_UTF8_PER_MAC_ROMAN + 1, len); - if (*label) - macroman_to_utf8 (*label, data->sblock.volname + 1, - len + 1, 0); -diff --git a/grub-core/fs/hfsplus.c b/grub-core/fs/hfsplus.c -index 54786bb..dae43be 100644 ---- a/grub-core/fs/hfsplus.c -+++ b/grub-core/fs/hfsplus.c -@@ -720,7 +720,7 @@ list_nodes (void *record, void *hook_arg) - if (! filename) - return 0; - -- keyname = grub_malloc (grub_be_to_cpu16 (catkey->namelen) * sizeof (*keyname)); -+ keyname = grub_calloc (grub_be_to_cpu16 (catkey->namelen), sizeof (*keyname)); - if (!keyname) - { - grub_free (filename); -@@ -1007,7 +1007,7 @@ grub_hfsplus_label (grub_device_t device, char **label) - grub_hfsplus_btree_recptr (&data->catalog_tree, node, ptr); - - label_len = grub_be_to_cpu16 (catkey->namelen); -- label_name = grub_malloc (label_len * sizeof (*label_name)); -+ label_name = grub_calloc (label_len, sizeof (*label_name)); - if (!label_name) - { - grub_free (node); -@@ -1029,7 +1029,7 @@ grub_hfsplus_label (grub_device_t device, char **label) - } - } - -- *label = grub_malloc (label_len * GRUB_MAX_UTF8_PER_UTF16 + 1); -+ *label = grub_calloc (label_len, GRUB_MAX_UTF8_PER_UTF16 + 1); - if (! *label) - { - grub_free (label_name); -diff --git a/grub-core/fs/iso9660.c b/grub-core/fs/iso9660.c -index 49c0c63..4f1b52a 100644 ---- a/grub-core/fs/iso9660.c -+++ b/grub-core/fs/iso9660.c -@@ -331,7 +331,7 @@ grub_iso9660_convert_string (grub_uint8_t *us, int len) - int i; - grub_uint16_t t[MAX_NAMELEN / 2 + 1]; - -- p = grub_malloc (len * GRUB_MAX_UTF8_PER_UTF16 + 1); -+ p = grub_calloc (len, GRUB_MAX_UTF8_PER_UTF16 + 1); - if (! p) - return NULL; - -diff --git a/grub-core/fs/ntfs.c b/grub-core/fs/ntfs.c -index fc4e1f6..2f34f76 100644 ---- a/grub-core/fs/ntfs.c -+++ b/grub-core/fs/ntfs.c -@@ -556,8 +556,8 @@ get_utf8 (grub_uint8_t *in, grub_size_t len) - grub_uint16_t *tmp; - grub_size_t i; - -- buf = grub_malloc (len * GRUB_MAX_UTF8_PER_UTF16 + 1); -- tmp = grub_malloc (len * sizeof (tmp[0])); -+ buf = grub_calloc (len, GRUB_MAX_UTF8_PER_UTF16 + 1); -+ tmp = grub_calloc (len, sizeof (tmp[0])); - if (!buf || !tmp) - { - grub_free (buf); -diff --git a/grub-core/fs/sfs.c b/grub-core/fs/sfs.c -index 50c1fe7..90f7fb3 100644 ---- a/grub-core/fs/sfs.c -+++ b/grub-core/fs/sfs.c -@@ -266,7 +266,7 @@ grub_sfs_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock) - node->next_extent = node->block; - node->cache_size = 0; - -- node->cache = grub_malloc (sizeof (node->cache[0]) * cache_size); -+ node->cache = grub_calloc (cache_size, sizeof (node->cache[0])); - if (!node->cache) - { - grub_errno = 0; -diff --git a/grub-core/fs/tar.c b/grub-core/fs/tar.c -index 7d63e0c..c551ed6 100644 ---- a/grub-core/fs/tar.c -+++ b/grub-core/fs/tar.c -@@ -120,7 +120,7 @@ grub_cpio_find_file (struct grub_archelp_data *data, char **name, - if (data->linkname_alloc < linksize + 1) - { - char *n; -- n = grub_malloc (2 * (linksize + 1)); -+ n = grub_calloc (2, linksize + 1); - if (!n) - return grub_errno; - grub_free (data->linkname); -diff --git a/grub-core/fs/udf.c b/grub-core/fs/udf.c -index dc8b6e2..a837616 100644 ---- a/grub-core/fs/udf.c -+++ b/grub-core/fs/udf.c -@@ -873,7 +873,7 @@ read_string (const grub_uint8_t *raw, grub_size_t sz, char *outbuf) - { - unsigned i; - utf16len = sz - 1; -- utf16 = grub_malloc (utf16len * sizeof (utf16[0])); -+ utf16 = grub_calloc (utf16len, sizeof (utf16[0])); - if (!utf16) - return NULL; - for (i = 0; i < utf16len; i++) -@@ -883,7 +883,7 @@ read_string (const grub_uint8_t *raw, grub_size_t sz, char *outbuf) - { - unsigned i; - utf16len = (sz - 1) / 2; -- utf16 = grub_malloc (utf16len * sizeof (utf16[0])); -+ utf16 = grub_calloc (utf16len, sizeof (utf16[0])); - if (!utf16) - return NULL; - for (i = 0; i < utf16len; i++) -diff --git a/grub-core/fs/zfs/zfs.c b/grub-core/fs/zfs/zfs.c -index 2f72e42..381dde5 100644 ---- a/grub-core/fs/zfs/zfs.c -+++ b/grub-core/fs/zfs/zfs.c -@@ -3325,7 +3325,7 @@ dnode_get_fullpath (const char *fullpath, struct subvolume *subvol, - } - subvol->nkeys = 0; - zap_iterate (&keychain_dn, 8, count_zap_keys, &ctx, data); -- subvol->keyring = grub_zalloc (subvol->nkeys * sizeof (subvol->keyring[0])); -+ subvol->keyring = grub_calloc (subvol->nkeys, sizeof (subvol->keyring[0])); - if (!subvol->keyring) - { - grub_free (fsname); -@@ -4336,7 +4336,7 @@ grub_zfs_embed (grub_device_t device __attribute__ ((unused)), - *nsectors = (VDEV_BOOT_SIZE >> GRUB_DISK_SECTOR_BITS); - if (*nsectors > max_nsectors) - *nsectors = max_nsectors; -- *sectors = grub_malloc (*nsectors * sizeof (**sectors)); -+ *sectors = grub_calloc (*nsectors, sizeof (**sectors)); - if (!*sectors) - return grub_errno; - for (i = 0; i < *nsectors; i++) -diff --git a/grub-core/gfxmenu/gui_string_util.c b/grub-core/gfxmenu/gui_string_util.c -index a9a415e..ba1e1ea 100644 ---- a/grub-core/gfxmenu/gui_string_util.c -+++ b/grub-core/gfxmenu/gui_string_util.c -@@ -55,7 +55,7 @@ canonicalize_path (const char *path) - if (*p == '/') - components++; - -- char **path_array = grub_malloc (components * sizeof (*path_array)); -+ char **path_array = grub_calloc (components, sizeof (*path_array)); - if (! path_array) - return 0; - -diff --git a/grub-core/gfxmenu/widget-box.c b/grub-core/gfxmenu/widget-box.c -index b606028..470597d 100644 ---- a/grub-core/gfxmenu/widget-box.c -+++ b/grub-core/gfxmenu/widget-box.c -@@ -303,10 +303,10 @@ grub_gfxmenu_create_box (const char *pixmaps_prefix, - box->content_height = 0; - box->raw_pixmaps = - (struct grub_video_bitmap **) -- grub_malloc (BOX_NUM_PIXMAPS * sizeof (struct grub_video_bitmap *)); -+ grub_calloc (BOX_NUM_PIXMAPS, sizeof (struct grub_video_bitmap *)); - box->scaled_pixmaps = - (struct grub_video_bitmap **) -- grub_malloc (BOX_NUM_PIXMAPS * sizeof (struct grub_video_bitmap *)); -+ grub_calloc (BOX_NUM_PIXMAPS, sizeof (struct grub_video_bitmap *)); - - /* Initialize all pixmap pointers to NULL so that proper destruction can - be performed if an error is encountered partway through construction. */ -diff --git a/grub-core/io/gzio.c b/grub-core/io/gzio.c -index 6208a97..43d98a7 100644 ---- a/grub-core/io/gzio.c -+++ b/grub-core/io/gzio.c -@@ -554,7 +554,7 @@ huft_build (unsigned *b, /* code lengths in bits (all assumed <= BMAX) */ - z = 1 << j; /* table entries for j-bit table */ - - /* allocate and link in new table */ -- q = (struct huft *) grub_zalloc ((z + 1) * sizeof (struct huft)); -+ q = (struct huft *) grub_calloc (z + 1, sizeof (struct huft)); - if (! q) - { - if (h) -diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index 279394d..ab133fe 100644 ---- a/grub-core/kern/efi/efi.c -+++ b/grub-core/kern/efi/efi.c -@@ -207,7 +207,7 @@ grub_efi_set_variable(const char *var, const grub_efi_guid_t *guid, - - len = grub_strlen (var); - len16 = len * GRUB_MAX_UTF16_PER_UTF8; -- var16 = grub_malloc ((len16 + 1) * sizeof (var16[0])); -+ var16 = grub_calloc (len16 + 1, sizeof (var16[0])); - if (!var16) - return grub_errno; - len16 = grub_utf8_to_utf16 (var16, len16, (grub_uint8_t *) var, len, NULL); -@@ -245,7 +245,7 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, - - len = grub_strlen (var); - len16 = len * GRUB_MAX_UTF16_PER_UTF8; -- var16 = grub_malloc ((len16 + 1) * sizeof (var16[0])); -+ var16 = grub_calloc (len16 + 1, sizeof (var16[0])); - if (!var16) - return NULL; - len16 = grub_utf8_to_utf16 (var16, len16, (grub_uint8_t *) var, len, NULL); -@@ -401,7 +401,7 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0) - while (len > 0 && fp->path_name[len - 1] == 0) - len--; - -- dup_name = grub_malloc (len * sizeof (*dup_name)); -+ dup_name = grub_calloc (len, sizeof (*dup_name)); - if (!dup_name) - { - grub_free (name); -diff --git a/grub-core/kern/emu/hostdisk.c b/grub-core/kern/emu/hostdisk.c -index e9ec680..d975265 100644 ---- a/grub-core/kern/emu/hostdisk.c -+++ b/grub-core/kern/emu/hostdisk.c -@@ -615,7 +615,7 @@ static char * - grub_util_path_concat_real (size_t n, int ext, va_list ap) - { - size_t totlen = 0; -- char **l = xmalloc ((n + ext) * sizeof (l[0])); -+ char **l = xcalloc (n + ext, sizeof (l[0])); - char *r, *p, *pi; - size_t i; - int first = 1; -diff --git a/grub-core/kern/fs.c b/grub-core/kern/fs.c -index 88d3936..fb30da9 100644 ---- a/grub-core/kern/fs.c -+++ b/grub-core/kern/fs.c -@@ -151,7 +151,7 @@ grub_fs_blocklist_open (grub_file_t file, const char *name) - while (p); - - /* Allocate a block list. */ -- blocks = grub_zalloc (sizeof (struct grub_fs_block) * (num + 1)); -+ blocks = grub_calloc (num + 1, sizeof (struct grub_fs_block)); - if (! blocks) - return 0; - -diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index 87afb43..dc5e10b 100644 ---- a/grub-core/kern/misc.c -+++ b/grub-core/kern/misc.c -@@ -750,7 +750,7 @@ parse_printf_args (const char *fmt0, struct printf_args *args, - args->ptr = args->prealloc; - else - { -- args->ptr = grub_malloc (args->count * sizeof (args->ptr[0])); -+ args->ptr = grub_calloc (args->count, sizeof (args->ptr[0])); - if (!args->ptr) - { - grub_errno = GRUB_ERR_NONE; -diff --git a/grub-core/kern/parser.c b/grub-core/kern/parser.c -index 78175aa..619db31 100644 ---- a/grub-core/kern/parser.c -+++ b/grub-core/kern/parser.c -@@ -213,7 +213,7 @@ grub_parser_split_cmdline (const char *cmdline, - return grub_errno; - grub_memcpy (args, buffer, bp - buffer); - -- *argv = grub_malloc (sizeof (char *) * (*argc + 1)); -+ *argv = grub_calloc (*argc + 1, sizeof (char *)); - if (!*argv) - { - grub_free (args); -diff --git a/grub-core/kern/uboot/uboot.c b/grub-core/kern/uboot/uboot.c -index be4816f..aac8f9a 100644 ---- a/grub-core/kern/uboot/uboot.c -+++ b/grub-core/kern/uboot/uboot.c -@@ -133,7 +133,7 @@ grub_uboot_dev_enum (void) - return num_devices; - - max_devices = 2; -- enum_devices = grub_malloc (sizeof(struct device_info) * max_devices); -+ enum_devices = grub_calloc (max_devices, sizeof(struct device_info)); - if (!enum_devices) - return 0; - -diff --git a/grub-core/lib/libgcrypt/cipher/ac.c b/grub-core/lib/libgcrypt/cipher/ac.c -index f5e946a..63f6fcd 100644 ---- a/grub-core/lib/libgcrypt/cipher/ac.c -+++ b/grub-core/lib/libgcrypt/cipher/ac.c -@@ -185,7 +185,7 @@ ac_data_mpi_copy (gcry_ac_mpi_t *data_mpis, unsigned int data_mpis_n, - gcry_mpi_t mpi; - char *label; - -- data_mpis_new = gcry_malloc (sizeof (*data_mpis_new) * data_mpis_n); -+ data_mpis_new = gcry_calloc (data_mpis_n, sizeof (*data_mpis_new)); - if (! data_mpis_new) - { - err = gcry_error_from_errno (errno); -@@ -572,7 +572,7 @@ _gcry_ac_data_to_sexp (gcry_ac_data_t data, gcry_sexp_t *sexp, - } - - /* Add MPI list. */ -- arg_list = gcry_malloc (sizeof (*arg_list) * (data_n + 1)); -+ arg_list = gcry_calloc (data_n + 1, sizeof (*arg_list)); - if (! arg_list) - { - err = gcry_error_from_errno (errno); -@@ -1283,7 +1283,7 @@ ac_data_construct (const char *identifier, int include_flags, - /* We build a list of arguments to pass to - gcry_sexp_build_array(). */ - data_length = _gcry_ac_data_length (data); -- arg_list = gcry_malloc (sizeof (*arg_list) * (data_length * 2)); -+ arg_list = gcry_calloc (data_length, sizeof (*arg_list) * 2); - if (! arg_list) - { - err = gcry_error_from_errno (errno); -@@ -1593,7 +1593,7 @@ _gcry_ac_key_pair_generate (gcry_ac_handle_t handle, unsigned int nbits, - arg_list_n += 2; - - /* Allocate list. */ -- arg_list = gcry_malloc (sizeof (*arg_list) * arg_list_n); -+ arg_list = gcry_calloc (arg_list_n, sizeof (*arg_list)); - if (! arg_list) - { - err = gcry_error_from_errno (errno); -diff --git a/grub-core/lib/libgcrypt/cipher/primegen.c b/grub-core/lib/libgcrypt/cipher/primegen.c -index 2788e34..b12e79b 100644 ---- a/grub-core/lib/libgcrypt/cipher/primegen.c -+++ b/grub-core/lib/libgcrypt/cipher/primegen.c -@@ -383,7 +383,7 @@ prime_generate_internal (int need_q_factor, - } - - /* Allocate an array to track pool usage. */ -- pool_in_use = gcry_malloc (n * sizeof *pool_in_use); -+ pool_in_use = gcry_calloc (n, sizeof *pool_in_use); - if (!pool_in_use) - { - err = gpg_err_code_from_errno (errno); -@@ -765,7 +765,7 @@ gen_prime (unsigned int nbits, int secret, int randomlevel, - if (nbits < 16) - log_fatal ("can't generate a prime with less than %d bits\n", 16); - -- mods = gcry_xmalloc( no_of_small_prime_numbers * sizeof *mods ); -+ mods = gcry_xcalloc( no_of_small_prime_numbers, sizeof *mods); - /* Make nbits fit into gcry_mpi_t implementation. */ - val_2 = mpi_alloc_set_ui( 2 ); - val_3 = mpi_alloc_set_ui( 3); -diff --git a/grub-core/lib/libgcrypt/cipher/pubkey.c b/grub-core/lib/libgcrypt/cipher/pubkey.c -index 9109821..ca087ad 100644 ---- a/grub-core/lib/libgcrypt/cipher/pubkey.c -+++ b/grub-core/lib/libgcrypt/cipher/pubkey.c -@@ -2941,7 +2941,7 @@ gcry_pk_encrypt (gcry_sexp_t *r_ciph, gcry_sexp_t s_data, gcry_sexp_t s_pkey) - * array to a format string, so we have to do it this way :-(. */ - /* FIXME: There is now such a format specifier, so we can - change the code to be more clear. */ -- arg_list = malloc (nelem * sizeof *arg_list); -+ arg_list = calloc (nelem, sizeof *arg_list); - if (!arg_list) - { - rc = gpg_err_code_from_syserror (); -@@ -3233,7 +3233,7 @@ gcry_pk_sign (gcry_sexp_t *r_sig, gcry_sexp_t s_hash, gcry_sexp_t s_skey) - } - strcpy (p, "))"); - -- arg_list = malloc (nelem * sizeof *arg_list); -+ arg_list = calloc (nelem, sizeof *arg_list); - if (!arg_list) - { - rc = gpg_err_code_from_syserror (); -diff --git a/grub-core/lib/priority_queue.c b/grub-core/lib/priority_queue.c -index 659be0b..7d5e7c0 100644 ---- a/grub-core/lib/priority_queue.c -+++ b/grub-core/lib/priority_queue.c -@@ -92,7 +92,7 @@ grub_priority_queue_new (grub_size_t elsize, - { - struct grub_priority_queue *ret; - void *els; -- els = grub_malloc (elsize * 8); -+ els = grub_calloc (8, elsize); - if (!els) - return 0; - ret = (struct grub_priority_queue *) grub_malloc (sizeof (*ret)); -diff --git a/grub-core/lib/reed_solomon.c b/grub-core/lib/reed_solomon.c -index 19c2008..79037c0 100644 ---- a/grub-core/lib/reed_solomon.c -+++ b/grub-core/lib/reed_solomon.c -@@ -20,6 +20,7 @@ - #include - #include - #include -+#define xcalloc calloc - #define xmalloc malloc - #define grub_memset memset - #define grub_memcpy memcpy -@@ -158,11 +159,9 @@ rs_encode (gf_single_t *data, grub_size_t s, grub_size_t rs) - gf_single_t *rs_polynomial; - unsigned int i, j; - gf_single_t *m; -- m = xmalloc ((s + rs) * sizeof (gf_single_t)); -+ m = xcalloc (s + rs, sizeof (gf_single_t)); - grub_memcpy (m, data, s * sizeof (gf_single_t)); -- grub_memset (m + s, 0, rs * sizeof (gf_single_t)); -- rs_polynomial = xmalloc ((rs + 1) * sizeof (gf_single_t)); -- grub_memset (rs_polynomial, 0, (rs + 1) * sizeof (gf_single_t)); -+ rs_polynomial = xcalloc (rs + 1, sizeof (gf_single_t)); - rs_polynomial[rs] = 1; - /* Multiply with X - a^r */ - for (j = 0; j < rs; j++) -diff --git a/grub-core/lib/relocator.c b/grub-core/lib/relocator.c -index ea3ebc7..5847aac 100644 ---- a/grub-core/lib/relocator.c -+++ b/grub-core/lib/relocator.c -@@ -495,9 +495,9 @@ malloc_in_range (struct grub_relocator *rel, - } - #endif - -- eventt = grub_malloc (maxevents * sizeof (events[0])); -+ eventt = grub_calloc (maxevents, sizeof (events[0])); - counter = grub_malloc ((DIGITSORT_MASK + 2) * sizeof (counter[0])); -- events = grub_malloc (maxevents * sizeof (events[0])); -+ events = grub_calloc (maxevents, sizeof (events[0])); - if (!events || !eventt || !counter) - { - grub_dprintf ("relocator", "events or counter allocation failed %d\n", -@@ -963,7 +963,7 @@ malloc_in_range (struct grub_relocator *rel, - #endif - unsigned cural = 0; - int oom = 0; -- res->subchunks = grub_malloc (sizeof (res->subchunks[0]) * nallocs); -+ res->subchunks = grub_calloc (nallocs, sizeof (res->subchunks[0])); - if (!res->subchunks) - oom = 1; - res->nsubchunks = nallocs; -@@ -1562,8 +1562,8 @@ grub_relocator_prepare_relocs (struct grub_relocator *rel, grub_addr_t addr, - count[(chunk->src & 0xff) + 1]++; - } - } -- from = grub_malloc (nchunks * sizeof (sorted[0])); -- to = grub_malloc (nchunks * sizeof (sorted[0])); -+ from = grub_calloc (nchunks, sizeof (sorted[0])); -+ to = grub_calloc (nchunks, sizeof (sorted[0])); - if (!from || !to) - { - grub_free (from); -diff --git a/grub-core/lib/zstd/fse_decompress.c b/grub-core/lib/zstd/fse_decompress.c -index 72bbead..2227b84 100644 ---- a/grub-core/lib/zstd/fse_decompress.c -+++ b/grub-core/lib/zstd/fse_decompress.c -@@ -82,7 +82,7 @@ - FSE_DTable* FSE_createDTable (unsigned tableLog) - { - if (tableLog > FSE_TABLELOG_ABSOLUTE_MAX) tableLog = FSE_TABLELOG_ABSOLUTE_MAX; -- return (FSE_DTable*)malloc( FSE_DTABLE_SIZE_U32(tableLog) * sizeof (U32) ); -+ return (FSE_DTable*)calloc( FSE_DTABLE_SIZE_U32(tableLog), sizeof (U32) ); - } - - void FSE_freeDTable (FSE_DTable* dt) -diff --git a/grub-core/loader/arm/linux.c b/grub-core/loader/arm/linux.c -index 5168491..d70c174 100644 ---- a/grub-core/loader/arm/linux.c -+++ b/grub-core/loader/arm/linux.c -@@ -78,7 +78,7 @@ linux_prepare_atag (void *target_atag) - - /* some place for cmdline, initrd and terminator. */ - tmp_size = get_atag_size (atag_orig) + 20 + (arg_size) / 4; -- tmp_atag = grub_malloc (tmp_size * sizeof (grub_uint32_t)); -+ tmp_atag = grub_calloc (tmp_size, sizeof (grub_uint32_t)); - if (!tmp_atag) - return grub_errno; - -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 2c529f7..7365051 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -125,7 +125,7 @@ copy_file_path (grub_efi_file_path_device_path_t *fp, - fp->header.type = GRUB_EFI_MEDIA_DEVICE_PATH_TYPE; - fp->header.subtype = GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE; - -- path_name = grub_malloc (len * GRUB_MAX_UTF16_PER_UTF8 * sizeof (*path_name)); -+ path_name = grub_calloc (len, GRUB_MAX_UTF16_PER_UTF8 * sizeof (*path_name)); - if (!path_name) - return; - -diff --git a/grub-core/loader/i386/bsdXX.c b/grub-core/loader/i386/bsdXX.c -index af6741d..a8d8bf7 100644 ---- a/grub-core/loader/i386/bsdXX.c -+++ b/grub-core/loader/i386/bsdXX.c -@@ -48,7 +48,7 @@ read_headers (grub_file_t file, const char *filename, Elf_Ehdr *e, char **shdr) - if (e->e_ident[EI_CLASS] != SUFFIX (ELFCLASS)) - return grub_error (GRUB_ERR_BAD_OS, N_("invalid arch-dependent ELF magic")); - -- *shdr = grub_malloc ((grub_uint32_t) e->e_shnum * e->e_shentsize); -+ *shdr = grub_calloc (e->e_shnum, e->e_shentsize); - if (! *shdr) - return grub_errno; - -diff --git a/grub-core/loader/i386/xnu.c b/grub-core/loader/i386/xnu.c -index e64ed08..b7d176b 100644 ---- a/grub-core/loader/i386/xnu.c -+++ b/grub-core/loader/i386/xnu.c -@@ -295,7 +295,7 @@ grub_xnu_devprop_add_property_utf8 (struct grub_xnu_devprop_device_descriptor *d - return grub_errno; - - len = grub_strlen (name); -- utf16 = grub_malloc (sizeof (grub_uint16_t) * len); -+ utf16 = grub_calloc (len, sizeof (grub_uint16_t)); - if (!utf16) - { - grub_free (utf8); -@@ -331,7 +331,7 @@ grub_xnu_devprop_add_property_utf16 (struct grub_xnu_devprop_device_descriptor * - grub_uint16_t *utf16; - grub_err_t err; - -- utf16 = grub_malloc (sizeof (grub_uint16_t) * namelen); -+ utf16 = grub_calloc (namelen, sizeof (grub_uint16_t)); - if (!utf16) - return grub_errno; - grub_memcpy (utf16, name, sizeof (grub_uint16_t) * namelen); -diff --git a/grub-core/loader/macho.c b/grub-core/loader/macho.c -index 085f9c6..05710c4 100644 ---- a/grub-core/loader/macho.c -+++ b/grub-core/loader/macho.c -@@ -97,7 +97,7 @@ grub_macho_file (grub_file_t file, const char *filename, int is_64bit) - if (grub_file_seek (macho->file, sizeof (struct grub_macho_fat_header)) - == (grub_off_t) -1) - goto fail; -- archs = grub_malloc (sizeof (struct grub_macho_fat_arch) * narchs); -+ archs = grub_calloc (narchs, sizeof (struct grub_macho_fat_arch)); - if (!archs) - goto fail; - if (grub_file_read (macho->file, archs, -diff --git a/grub-core/loader/multiboot_elfxx.c b/grub-core/loader/multiboot_elfxx.c -index 70cd1db..cc68536 100644 ---- a/grub-core/loader/multiboot_elfxx.c -+++ b/grub-core/loader/multiboot_elfxx.c -@@ -217,7 +217,7 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) - { - grub_uint8_t *shdr, *shdrptr; - -- shdr = grub_malloc ((grub_uint32_t) ehdr->e_shnum * ehdr->e_shentsize); -+ shdr = grub_calloc (ehdr->e_shnum, ehdr->e_shentsize); - if (!shdr) - return grub_errno; - -diff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c -index e0f47e7..2f0ebd0 100644 ---- a/grub-core/loader/xnu.c -+++ b/grub-core/loader/xnu.c -@@ -801,7 +801,7 @@ grub_cmd_xnu_mkext (grub_command_t cmd __attribute__ ((unused)), - if (grub_be_to_cpu32 (head.magic) == GRUB_MACHO_FAT_MAGIC) - { - narchs = grub_be_to_cpu32 (head.nfat_arch); -- archs = grub_malloc (sizeof (struct grub_macho_fat_arch) * narchs); -+ archs = grub_calloc (narchs, sizeof (struct grub_macho_fat_arch)); - if (! archs) - { - grub_file_close (file); -diff --git a/grub-core/mmap/mmap.c b/grub-core/mmap/mmap.c -index b569cb2..64684c2 100644 ---- a/grub-core/mmap/mmap.c -+++ b/grub-core/mmap/mmap.c -@@ -143,9 +143,9 @@ grub_mmap_iterate (grub_memory_hook_t hook, void *hook_data) - - /* Initialize variables. */ - ctx.scanline_events = (struct grub_mmap_scan *) -- grub_malloc (sizeof (struct grub_mmap_scan) * 2 * mmap_num); -+ grub_calloc (mmap_num, sizeof (struct grub_mmap_scan) * 2); - -- present = grub_zalloc (sizeof (present[0]) * current_priority); -+ present = grub_calloc (current_priority, sizeof (present[0])); - - if (! ctx.scanline_events || !present) - { -diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c -index 2e46842..5a5ebbf 100644 ---- a/grub-core/net/bootp.c -+++ b/grub-core/net/bootp.c -@@ -1629,7 +1629,7 @@ grub_cmd_bootp (struct grub_command *cmd __attribute__ ((unused)), - if (ncards == 0) - return grub_error (GRUB_ERR_NET_NO_CARD, N_("no network card found")); - -- ifaces = grub_zalloc (ncards * sizeof (ifaces[0])); -+ ifaces = grub_calloc (ncards, sizeof (ifaces[0])); - if (!ifaces) - return grub_errno; - -diff --git a/grub-core/net/dns.c b/grub-core/net/dns.c -index 5d9afe0..e332d5e 100644 ---- a/grub-core/net/dns.c -+++ b/grub-core/net/dns.c -@@ -285,8 +285,8 @@ recv_hook (grub_net_udp_socket_t sock __attribute__ ((unused)), - ptr++; - ptr += 4; - } -- *data->addresses = grub_malloc (sizeof ((*data->addresses)[0]) -- * grub_be_to_cpu16 (head->ancount)); -+ *data->addresses = grub_calloc (grub_be_to_cpu16 (head->ancount), -+ sizeof ((*data->addresses)[0])); - if (!*data->addresses) - { - grub_errno = GRUB_ERR_NONE; -@@ -406,8 +406,8 @@ recv_hook (grub_net_udp_socket_t sock __attribute__ ((unused)), - dns_cache[h].addresses = 0; - dns_cache[h].name = grub_strdup (data->oname); - dns_cache[h].naddresses = *data->naddresses; -- dns_cache[h].addresses = grub_malloc (*data->naddresses -- * sizeof (dns_cache[h].addresses[0])); -+ dns_cache[h].addresses = grub_calloc (*data->naddresses, -+ sizeof (dns_cache[h].addresses[0])); - dns_cache[h].limit_time = grub_get_time_ms () + 1000 * ttl_all; - if (!dns_cache[h].addresses || !dns_cache[h].name) - { -@@ -479,7 +479,7 @@ grub_net_dns_lookup (const char *name, - } - } - -- sockets = grub_malloc (sizeof (sockets[0]) * n_servers); -+ sockets = grub_calloc (n_servers, sizeof (sockets[0])); - if (!sockets) - return grub_errno; - -diff --git a/grub-core/net/net.c b/grub-core/net/net.c -index 15073dd..ad024c9 100644 ---- a/grub-core/net/net.c -+++ b/grub-core/net/net.c -@@ -338,8 +338,8 @@ grub_cmd_ipv6_autoconf (struct grub_command *cmd __attribute__ ((unused)), - ncards++; - } - -- ifaces = grub_zalloc (ncards * sizeof (ifaces[0])); -- slaacs = grub_zalloc (ncards * sizeof (slaacs[0])); -+ ifaces = grub_calloc (ncards, sizeof (ifaces[0])); -+ slaacs = grub_calloc (ncards, sizeof (slaacs[0])); - if (!ifaces || !slaacs) - { - grub_free (ifaces); -diff --git a/grub-core/normal/charset.c b/grub-core/normal/charset.c -index b0ab47d..d57fb72 100644 ---- a/grub-core/normal/charset.c -+++ b/grub-core/normal/charset.c -@@ -203,7 +203,7 @@ grub_utf8_to_ucs4_alloc (const char *msg, grub_uint32_t **unicode_msg, - { - grub_size_t msg_len = grub_strlen (msg); - -- *unicode_msg = grub_malloc (msg_len * sizeof (grub_uint32_t)); -+ *unicode_msg = grub_calloc (msg_len, sizeof (grub_uint32_t)); - - if (!*unicode_msg) - return -1; -@@ -488,7 +488,7 @@ grub_unicode_aglomerate_comb (const grub_uint32_t *in, grub_size_t inlen, - } - else - { -- n = grub_malloc (sizeof (n[0]) * (out->ncomb + 1)); -+ n = grub_calloc (out->ncomb + 1, sizeof (n[0])); - if (!n) - { - grub_errno = GRUB_ERR_NONE; -@@ -842,7 +842,7 @@ grub_bidi_line_logical_to_visual (const grub_uint32_t *logical, - } \ - } - -- visual = grub_malloc (sizeof (visual[0]) * logical_len); -+ visual = grub_calloc (logical_len, sizeof (visual[0])); - if (!visual) - return -1; - -@@ -1165,8 +1165,8 @@ grub_bidi_logical_to_visual (const grub_uint32_t *logical, - { - const grub_uint32_t *line_start = logical, *ptr; - struct grub_unicode_glyph *visual_ptr; -- *visual_out = visual_ptr = grub_malloc (3 * sizeof (visual_ptr[0]) -- * (logical_len + 2)); -+ *visual_out = visual_ptr = grub_calloc (logical_len + 2, -+ 3 * sizeof (visual_ptr[0])); - if (!visual_ptr) - return -1; - for (ptr = logical; ptr <= logical + logical_len; ptr++) -diff --git a/grub-core/normal/cmdline.c b/grub-core/normal/cmdline.c -index c037d50..c57242e 100644 ---- a/grub-core/normal/cmdline.c -+++ b/grub-core/normal/cmdline.c -@@ -41,7 +41,7 @@ grub_err_t - grub_set_history (int newsize) - { - grub_uint32_t **old_hist_lines = hist_lines; -- hist_lines = grub_malloc (sizeof (grub_uint32_t *) * newsize); -+ hist_lines = grub_calloc (newsize, sizeof (grub_uint32_t *)); - - /* Copy the old lines into the new buffer. */ - if (old_hist_lines) -@@ -114,7 +114,7 @@ static void - grub_history_set (int pos, grub_uint32_t *s, grub_size_t len) - { - grub_free (hist_lines[pos]); -- hist_lines[pos] = grub_malloc ((len + 1) * sizeof (grub_uint32_t)); -+ hist_lines[pos] = grub_calloc (len + 1, sizeof (grub_uint32_t)); - if (!hist_lines[pos]) - { - grub_print_error (); -@@ -349,7 +349,7 @@ grub_cmdline_get (const char *prompt_translated) - char *ret; - unsigned nterms; - -- buf = grub_malloc (max_len * sizeof (grub_uint32_t)); -+ buf = grub_calloc (max_len, sizeof (grub_uint32_t)); - if (!buf) - return 0; - -@@ -377,7 +377,7 @@ grub_cmdline_get (const char *prompt_translated) - FOR_ACTIVE_TERM_OUTPUTS(cur) - nterms++; - -- cl_terms = grub_malloc (sizeof (cl_terms[0]) * nterms); -+ cl_terms = grub_calloc (nterms, sizeof (cl_terms[0])); - if (!cl_terms) - { - grub_free (buf); -@@ -385,7 +385,7 @@ grub_cmdline_get (const char *prompt_translated) - } - cl_term_cur = cl_terms; - -- unicode_msg = grub_malloc (msg_len * sizeof (grub_uint32_t)); -+ unicode_msg = grub_calloc (msg_len, sizeof (grub_uint32_t)); - if (!unicode_msg) - { - grub_free (buf); -@@ -495,7 +495,7 @@ grub_cmdline_get (const char *prompt_translated) - grub_uint32_t *insert; - - insertlen = grub_strlen (insertu8); -- insert = grub_malloc ((insertlen + 1) * sizeof (grub_uint32_t)); -+ insert = grub_calloc (insertlen + 1, sizeof (grub_uint32_t)); - if (!insert) - { - grub_free (insertu8); -@@ -602,7 +602,7 @@ grub_cmdline_get (const char *prompt_translated) - - grub_free (kill_buf); - -- kill_buf = grub_malloc ((n + 1) * sizeof(grub_uint32_t)); -+ kill_buf = grub_calloc (n + 1, sizeof (grub_uint32_t)); - if (grub_errno) - { - grub_print_error (); -diff --git a/grub-core/normal/menu_entry.c b/grub-core/normal/menu_entry.c -index 5785f67..f31487c 100644 ---- a/grub-core/normal/menu_entry.c -+++ b/grub-core/normal/menu_entry.c -@@ -95,8 +95,8 @@ init_line (struct screen *screen, struct line *linep) - { - linep->len = 0; - linep->max_len = 80; -- linep->buf = grub_malloc ((linep->max_len + 1) * sizeof (linep->buf[0])); -- linep->pos = grub_zalloc (screen->nterms * sizeof (linep->pos[0])); -+ linep->buf = grub_calloc (linep->max_len + 1, sizeof (linep->buf[0])); -+ linep->pos = grub_calloc (screen->nterms, sizeof (linep->pos[0])); - if (! linep->buf || !linep->pos) - { - grub_free (linep->buf); -@@ -287,7 +287,7 @@ update_screen (struct screen *screen, struct per_term_screen *term_screen, - pos = linep->pos + (term_screen - screen->terms); - - if (!*pos) -- *pos = grub_zalloc ((linep->len + 1) * sizeof (**pos)); -+ *pos = grub_calloc (linep->len + 1, sizeof (**pos)); - - if (i == region_start || linep == screen->lines + screen->line - || (i > region_start && mode == ALL_LINES)) -@@ -471,7 +471,7 @@ insert_string (struct screen *screen, const char *s, int update) - - /* Insert the string. */ - current_linep = screen->lines + screen->line; -- unicode_msg = grub_malloc ((p - s) * sizeof (grub_uint32_t)); -+ unicode_msg = grub_calloc (p - s, sizeof (grub_uint32_t)); - - if (!unicode_msg) - return 0; -@@ -1023,7 +1023,7 @@ complete (struct screen *screen, int continuous, int update) - if (completion_buffer.buf) - { - buflen = grub_strlen (completion_buffer.buf); -- ucs4 = grub_malloc (sizeof (grub_uint32_t) * (buflen + 1)); -+ ucs4 = grub_calloc (buflen + 1, sizeof (grub_uint32_t)); - - if (!ucs4) - { -@@ -1265,7 +1265,7 @@ grub_menu_entry_run (grub_menu_entry_t entry) - for (i = 0; i < (unsigned) screen->num_lines; i++) - { - grub_free (screen->lines[i].pos); -- screen->lines[i].pos = grub_zalloc (screen->nterms * sizeof (screen->lines[i].pos[0])); -+ screen->lines[i].pos = grub_calloc (screen->nterms, sizeof (screen->lines[i].pos[0])); - if (! screen->lines[i].pos) - { - grub_print_error (); -@@ -1275,7 +1275,7 @@ grub_menu_entry_run (grub_menu_entry_t entry) - } - } - -- screen->terms = grub_zalloc (screen->nterms * sizeof (screen->terms[0])); -+ screen->terms = grub_calloc (screen->nterms, sizeof (screen->terms[0])); - if (!screen->terms) - { - grub_print_error (); -diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c -index 7681f7d..ca13562 100644 ---- a/grub-core/normal/menu_text.c -+++ b/grub-core/normal/menu_text.c -@@ -78,7 +78,7 @@ grub_print_message_indented_real (const char *msg, int margin_left, - grub_size_t msg_len = grub_strlen (msg) + 2; - int ret = 0; - -- unicode_msg = grub_malloc (msg_len * sizeof (grub_uint32_t)); -+ unicode_msg = grub_calloc (msg_len, sizeof (grub_uint32_t)); - - if (!unicode_msg) - return 0; -@@ -167,7 +167,7 @@ print_entry (int y, int highlight, grub_menu_entry_t entry, - - title = entry ? entry->title : ""; - title_len = grub_strlen (title); -- unicode_title = grub_malloc (title_len * sizeof (*unicode_title)); -+ unicode_title = grub_calloc (title_len, sizeof (*unicode_title)); - if (! unicode_title) - /* XXX How to show this error? */ - return; -diff --git a/grub-core/normal/term.c b/grub-core/normal/term.c -index a1e5c5a..cc8c173 100644 ---- a/grub-core/normal/term.c -+++ b/grub-core/normal/term.c -@@ -264,7 +264,7 @@ grub_term_save_pos (void) - FOR_ACTIVE_TERM_OUTPUTS(cur) - cnt++; - -- ret = grub_malloc (cnt * sizeof (ret[0])); -+ ret = grub_calloc (cnt, sizeof (ret[0])); - if (!ret) - return NULL; - -@@ -1013,7 +1013,7 @@ grub_xnputs (const char *str, grub_size_t msg_len) - - grub_error_push (); - -- unicode_str = grub_malloc (msg_len * sizeof (grub_uint32_t)); -+ unicode_str = grub_calloc (msg_len, sizeof (grub_uint32_t)); - - grub_error_pop (); - -diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c -index 36429a7..f0c503f 100644 ---- a/grub-core/osdep/linux/getroot.c -+++ b/grub-core/osdep/linux/getroot.c -@@ -176,7 +176,7 @@ grub_util_raid_getmembers (const char *name, int bootable) - if (ret != 0) - grub_util_error (_("ioctl GET_ARRAY_INFO error: %s"), strerror (errno)); - -- devicelist = xmalloc ((info.nr_disks + 1) * sizeof (char *)); -+ devicelist = xcalloc (info.nr_disks + 1, sizeof (char *)); - - for (i = 0, j = 0; j < info.nr_disks; i++) - { -@@ -249,7 +249,7 @@ grub_find_root_devices_from_btrfs (const char *dir) - return NULL; - } - -- ret = xmalloc ((fsi.num_devices + 1) * sizeof (ret[0])); -+ ret = xcalloc (fsi.num_devices + 1, sizeof (ret[0])); - - for (i = 1; i <= fsi.max_id && j < fsi.num_devices; i++) - { -@@ -508,7 +508,7 @@ grub_find_root_devices_from_mountinfo (const char *dir, char **relroot) - if (relroot) - *relroot = NULL; - -- entries = xmalloc (entry_max * sizeof (*entries)); -+ entries = xcalloc (entry_max, sizeof (*entries)); - - again: - fp = grub_util_fopen ("/proc/self/mountinfo", "r"); -diff --git a/grub-core/osdep/unix/config.c b/grub-core/osdep/unix/config.c -index b637c58..46a8815 100644 ---- a/grub-core/osdep/unix/config.c -+++ b/grub-core/osdep/unix/config.c -@@ -102,7 +102,7 @@ grub_util_load_config (struct grub_util_config *cfg) - argv[0] = "sh"; - argv[1] = "-c"; - -- script = xmalloc (4 * strlen (cfgfile) + 300); -+ script = xcalloc (4, strlen (cfgfile) + 300); - - ptr = script; - memcpy (ptr, ". '", 3); -diff --git a/grub-core/osdep/windows/getroot.c b/grub-core/osdep/windows/getroot.c -index 661d954..eada663 100644 ---- a/grub-core/osdep/windows/getroot.c -+++ b/grub-core/osdep/windows/getroot.c -@@ -59,7 +59,7 @@ grub_get_mount_point (const TCHAR *path) - - for (ptr = path; *ptr; ptr++); - allocsize = (ptr - path + 10) * 2; -- out = xmalloc (allocsize * sizeof (out[0])); -+ out = xcalloc (allocsize, sizeof (out[0])); - - /* When pointing to EFI system partition GetVolumePathName fails - for ESP root and returns abberant information for everything -diff --git a/grub-core/osdep/windows/hostdisk.c b/grub-core/osdep/windows/hostdisk.c -index 87a106c..29cf427 100644 ---- a/grub-core/osdep/windows/hostdisk.c -+++ b/grub-core/osdep/windows/hostdisk.c -@@ -111,7 +111,7 @@ grub_util_get_windows_path_real (const char *path) - - while (1) - { -- fpa = xmalloc (alloc * sizeof (fpa[0])); -+ fpa = xcalloc (alloc, sizeof (fpa[0])); - - len = GetFullPathName (tpath, alloc, fpa, NULL); - if (len >= alloc) -@@ -405,7 +405,7 @@ grub_util_fd_opendir (const char *name) - for (l = 0; name_windows[l]; l++); - for (l--; l >= 0 && (name_windows[l] == '\\' || name_windows[l] == '/'); l--); - l++; -- pattern = xmalloc ((l + 3) * sizeof (pattern[0])); -+ pattern = xcalloc (l + 3, sizeof (pattern[0])); - memcpy (pattern, name_windows, l * sizeof (pattern[0])); - pattern[l] = '\\'; - pattern[l + 1] = '*'; -diff --git a/grub-core/osdep/windows/init.c b/grub-core/osdep/windows/init.c -index e8ffd62..6297de6 100644 ---- a/grub-core/osdep/windows/init.c -+++ b/grub-core/osdep/windows/init.c -@@ -161,7 +161,7 @@ grub_util_host_init (int *argc __attribute__ ((unused)), - LPWSTR *targv; - - targv = CommandLineToArgvW (tcmdline, argc); -- *argv = xmalloc ((*argc + 1) * sizeof (argv[0])); -+ *argv = xcalloc (*argc + 1, sizeof (argv[0])); - - for (i = 0; i < *argc; i++) - (*argv)[i] = grub_util_tchar_to_utf8 (targv[i]); -diff --git a/grub-core/osdep/windows/platform.c b/grub-core/osdep/windows/platform.c -index 7eb53fe..1ef86bf 100644 ---- a/grub-core/osdep/windows/platform.c -+++ b/grub-core/osdep/windows/platform.c -@@ -225,8 +225,8 @@ grub_install_register_efi (grub_device_t efidir_grub_dev, - grub_util_error ("%s", _("no EFI routines are available when running in BIOS mode")); - - distrib8_len = grub_strlen (efi_distributor); -- distributor16 = xmalloc ((distrib8_len + 1) * GRUB_MAX_UTF16_PER_UTF8 -- * sizeof (grub_uint16_t)); -+ distributor16 = xcalloc (distrib8_len + 1, -+ GRUB_MAX_UTF16_PER_UTF8 * sizeof (grub_uint16_t)); - distrib16_len = grub_utf8_to_utf16 (distributor16, distrib8_len * GRUB_MAX_UTF16_PER_UTF8, - (const grub_uint8_t *) efi_distributor, - distrib8_len, 0); -diff --git a/grub-core/osdep/windows/relpath.c b/grub-core/osdep/windows/relpath.c -index cb08617..478e8ef 100644 ---- a/grub-core/osdep/windows/relpath.c -+++ b/grub-core/osdep/windows/relpath.c -@@ -72,7 +72,7 @@ grub_make_system_path_relative_to_its_root (const char *path) - if (dirwindows[0] && dirwindows[1] == ':') - offset = 2; - } -- ret = xmalloc (sizeof (ret[0]) * (flen - offset + 2)); -+ ret = xcalloc (flen - offset + 2, sizeof (ret[0])); - if (dirwindows[offset] != '\\' - && dirwindows[offset] != '/' - && dirwindows[offset]) -diff --git a/grub-core/partmap/gpt.c b/grub-core/partmap/gpt.c -index 103f679..72a2e37 100644 ---- a/grub-core/partmap/gpt.c -+++ b/grub-core/partmap/gpt.c -@@ -199,7 +199,7 @@ gpt_partition_map_embed (struct grub_disk *disk, unsigned int *nsectors, - *nsectors = ctx.len; - if (*nsectors > max_nsectors) - *nsectors = max_nsectors; -- *sectors = grub_malloc (*nsectors * sizeof (**sectors)); -+ *sectors = grub_calloc (*nsectors, sizeof (**sectors)); - if (!*sectors) - return grub_errno; - for (i = 0; i < *nsectors; i++) -diff --git a/grub-core/partmap/msdos.c b/grub-core/partmap/msdos.c -index 7b8e450..ee3f249 100644 ---- a/grub-core/partmap/msdos.c -+++ b/grub-core/partmap/msdos.c -@@ -337,7 +337,7 @@ pc_partition_map_embed (struct grub_disk *disk, unsigned int *nsectors, - avail_nsectors = *nsectors; - if (*nsectors > max_nsectors) - *nsectors = max_nsectors; -- *sectors = grub_malloc (*nsectors * sizeof (**sectors)); -+ *sectors = grub_calloc (*nsectors, sizeof (**sectors)); - if (!*sectors) - return grub_errno; - for (i = 0; i < *nsectors; i++) -diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c -index c6d2c36..b55e171 100644 ---- a/grub-core/script/execute.c -+++ b/grub-core/script/execute.c -@@ -587,7 +587,7 @@ gettext_append (struct grub_script_argv *result, const char *orig_str) - for (iptr = orig_str; *iptr; iptr++) - if (*iptr == '$') - dollar_cnt++; -- ctx.allowed_strings = grub_malloc (sizeof (ctx.allowed_strings[0]) * dollar_cnt); -+ ctx.allowed_strings = grub_calloc (dollar_cnt, sizeof (ctx.allowed_strings[0])); - - if (parse_string (orig_str, gettext_save_allow, &ctx, 0)) - goto fail; -diff --git a/grub-core/tests/fake_input.c b/grub-core/tests/fake_input.c -index 2d60852..b5eb516 100644 ---- a/grub-core/tests/fake_input.c -+++ b/grub-core/tests/fake_input.c -@@ -49,7 +49,7 @@ grub_terminal_input_fake_sequence (int *seq_in, int nseq_in) - saved = grub_term_inputs; - if (seq) - grub_free (seq); -- seq = grub_malloc (nseq_in * sizeof (seq[0])); -+ seq = grub_calloc (nseq_in, sizeof (seq[0])); - if (!seq) - return; - -diff --git a/grub-core/tests/video_checksum.c b/grub-core/tests/video_checksum.c -index 74d5b65..44d0810 100644 ---- a/grub-core/tests/video_checksum.c -+++ b/grub-core/tests/video_checksum.c -@@ -336,7 +336,7 @@ grub_video_capture_write_bmp (const char *fname, - { - case 4: - { -- grub_uint8_t *buffer = xmalloc (mode_info->width * 3); -+ grub_uint8_t *buffer = xcalloc (3, mode_info->width); - grub_uint32_t rmask = ((1 << mode_info->red_mask_size) - 1); - grub_uint32_t gmask = ((1 << mode_info->green_mask_size) - 1); - grub_uint32_t bmask = ((1 << mode_info->blue_mask_size) - 1); -@@ -367,7 +367,7 @@ grub_video_capture_write_bmp (const char *fname, - } - case 3: - { -- grub_uint8_t *buffer = xmalloc (mode_info->width * 3); -+ grub_uint8_t *buffer = xcalloc (3, mode_info->width); - grub_uint32_t rmask = ((1 << mode_info->red_mask_size) - 1); - grub_uint32_t gmask = ((1 << mode_info->green_mask_size) - 1); - grub_uint32_t bmask = ((1 << mode_info->blue_mask_size) - 1); -@@ -407,7 +407,7 @@ grub_video_capture_write_bmp (const char *fname, - } - case 2: - { -- grub_uint8_t *buffer = xmalloc (mode_info->width * 3); -+ grub_uint8_t *buffer = xcalloc (3, mode_info->width); - grub_uint16_t rmask = ((1 << mode_info->red_mask_size) - 1); - grub_uint16_t gmask = ((1 << mode_info->green_mask_size) - 1); - grub_uint16_t bmask = ((1 << mode_info->blue_mask_size) - 1); -diff --git a/grub-core/video/capture.c b/grub-core/video/capture.c -index 4f83c74..4d3195e 100644 ---- a/grub-core/video/capture.c -+++ b/grub-core/video/capture.c -@@ -89,7 +89,7 @@ grub_video_capture_start (const struct grub_video_mode_info *mode_info, - framebuffer.mode_info = *mode_info; - framebuffer.mode_info.blit_format = grub_video_get_blit_format (&framebuffer.mode_info); - -- framebuffer.ptr = grub_malloc (framebuffer.mode_info.height * framebuffer.mode_info.pitch); -+ framebuffer.ptr = grub_calloc (framebuffer.mode_info.height, framebuffer.mode_info.pitch); - if (!framebuffer.ptr) - return grub_errno; - -diff --git a/grub-core/video/emu/sdl.c b/grub-core/video/emu/sdl.c -index a2f639f..0ebab6f 100644 ---- a/grub-core/video/emu/sdl.c -+++ b/grub-core/video/emu/sdl.c -@@ -172,7 +172,7 @@ grub_video_sdl_set_palette (unsigned int start, unsigned int count, - if (start + count > mode_info.number_of_colors) - count = mode_info.number_of_colors - start; - -- tmp = grub_malloc (count * sizeof (tmp[0])); -+ tmp = grub_calloc (count, sizeof (tmp[0])); - for (i = 0; i < count; i++) - { - tmp[i].r = palette_data[i].r; -diff --git a/grub-core/video/i386/pc/vga.c b/grub-core/video/i386/pc/vga.c -index 01f4711..b2f776c 100644 ---- a/grub-core/video/i386/pc/vga.c -+++ b/grub-core/video/i386/pc/vga.c -@@ -127,7 +127,7 @@ grub_video_vga_setup (unsigned int width, unsigned int height, - - vga_height = height ? : 480; - -- framebuffer.temporary_buffer = grub_malloc (vga_height * VGA_WIDTH); -+ framebuffer.temporary_buffer = grub_calloc (vga_height, VGA_WIDTH); - framebuffer.front_page = 0; - framebuffer.back_page = 0; - if (!framebuffer.temporary_buffer) -diff --git a/grub-core/video/readers/png.c b/grub-core/video/readers/png.c -index 777e713..61bd645 100644 ---- a/grub-core/video/readers/png.c -+++ b/grub-core/video/readers/png.c -@@ -309,7 +309,7 @@ grub_png_decode_image_header (struct grub_png_data *data) - if (data->is_16bit || data->is_gray || data->is_palette) - #endif - { -- data->image_data = grub_malloc (data->image_height * data->row_bytes); -+ data->image_data = grub_calloc (data->image_height, data->row_bytes); - if (grub_errno) - return grub_errno; - -diff --git a/include/grub/unicode.h b/include/grub/unicode.h -index a0403e9..4de986a 100644 ---- a/include/grub/unicode.h -+++ b/include/grub/unicode.h -@@ -293,7 +293,7 @@ grub_unicode_glyph_dup (const struct grub_unicode_glyph *in) - grub_memcpy (out, in, sizeof (*in)); - if (in->ncomb > ARRAY_SIZE (out->combining_inline)) - { -- out->combining_ptr = grub_malloc (in->ncomb * sizeof (out->combining_ptr[0])); -+ out->combining_ptr = grub_calloc (in->ncomb, sizeof (out->combining_ptr[0])); - if (!out->combining_ptr) - { - grub_free (out); -@@ -315,7 +315,7 @@ grub_unicode_set_glyph (struct grub_unicode_glyph *out, - grub_memcpy (out, in, sizeof (*in)); - if (in->ncomb > ARRAY_SIZE (out->combining_inline)) - { -- out->combining_ptr = grub_malloc (in->ncomb * sizeof (out->combining_ptr[0])); -+ out->combining_ptr = grub_calloc (in->ncomb, sizeof (out->combining_ptr[0])); - if (!out->combining_ptr) - return; - grub_memcpy (out->combining_ptr, in->combining_ptr, -diff --git a/util/getroot.c b/util/getroot.c -index fa3460d..6feb2a4 100644 ---- a/util/getroot.c -+++ b/util/getroot.c -@@ -219,7 +219,7 @@ make_device_name (const char *drive) - char *ret, *ptr; - const char *iptr; - -- ret = xmalloc (strlen (drive) * 2); -+ ret = xcalloc (2, strlen (drive)); - ptr = ret; - for (iptr = drive; *iptr; iptr++) - { -diff --git a/util/grub-file.c b/util/grub-file.c -index 50c18b6..b2e7dd6 100644 ---- a/util/grub-file.c -+++ b/util/grub-file.c -@@ -54,7 +54,7 @@ main (int argc, char *argv[]) - - grub_util_host_init (&argc, &argv); - -- argv2 = xmalloc (argc * sizeof (argv2[0])); -+ argv2 = xcalloc (argc, sizeof (argv2[0])); - - if (argc == 2 && strcmp (argv[1], "--version") == 0) - { -diff --git a/util/grub-fstest.c b/util/grub-fstest.c -index 39bad1f..bfcef85 100644 ---- a/util/grub-fstest.c -+++ b/util/grub-fstest.c -@@ -650,7 +650,7 @@ argp_parser (int key, char *arg, struct argp_state *state) - if (args_count < num_disks) - { - if (args_count == 0) -- images = xmalloc (num_disks * sizeof (images[0])); -+ images = xcalloc (num_disks, sizeof (images[0])); - images[args_count] = grub_canonicalize_file_name (arg); - args_count++; - return 0; -@@ -734,7 +734,7 @@ main (int argc, char *argv[]) - - grub_util_host_init (&argc, &argv); - -- args = xmalloc (argc * sizeof (args[0])); -+ args = xcalloc (argc, sizeof (args[0])); - - argp_parse (&argp, argc, argv, 0, 0, 0); - -diff --git a/util/grub-install-common.c b/util/grub-install-common.c -index ca0ac61..0295d40 100644 ---- a/util/grub-install-common.c -+++ b/util/grub-install-common.c -@@ -286,7 +286,7 @@ handle_install_list (struct install_list *il, const char *val, - il->n_entries++; - } - il->n_alloc = il->n_entries + 1; -- il->entries = xmalloc (il->n_alloc * sizeof (il->entries[0])); -+ il->entries = xcalloc (il->n_alloc, sizeof (il->entries[0])); - ptr = val; - for (ce = il->entries; ; ce++) - { -diff --git a/util/grub-install.c b/util/grub-install.c -index 8b6a037..dddb757 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -634,7 +634,7 @@ device_map_check_duplicates (const char *dev_map) - if (! fp) - return; - -- d = xmalloc (alloced * sizeof (d[0])); -+ d = xcalloc (alloced, sizeof (d[0])); - - while (fgets (buf, sizeof (buf), fp)) - { -@@ -1263,7 +1263,7 @@ main (int argc, char *argv[]) - ndev++; - } - -- grub_drives = xmalloc (sizeof (grub_drives[0]) * (ndev + 1)); -+ grub_drives = xcalloc (ndev + 1, sizeof (grub_drives[0])); - - for (curdev = grub_devices, curdrive = grub_drives; *curdev; curdev++, - curdrive++) -diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c -index d16ec63..52bc9c8 100644 ---- a/util/grub-mkimagexx.c -+++ b/util/grub-mkimagexx.c -@@ -2294,10 +2294,8 @@ SUFFIX (grub_mkimage_load_image) (const char *kernel_path, - + grub_host_to_target16 (e->e_shstrndx) * smd.section_entsize); - smd.strtab = (char *) e + grub_host_to_target_addr (s->sh_offset); - -- smd.addrs = xmalloc (sizeof (*smd.addrs) * smd.num_sections); -- memset (smd.addrs, 0, sizeof (*smd.addrs) * smd.num_sections); -- smd.vaddrs = xmalloc (sizeof (*smd.vaddrs) * smd.num_sections); -- memset (smd.vaddrs, 0, sizeof (*smd.vaddrs) * smd.num_sections); -+ smd.addrs = xcalloc (smd.num_sections, sizeof (*smd.addrs)); -+ smd.vaddrs = xcalloc (smd.num_sections, sizeof (*smd.vaddrs)); - - SUFFIX (locate_sections) (e, kernel_path, &smd, layout, image_target); - -diff --git a/util/grub-mkrescue.c b/util/grub-mkrescue.c -index ce2cbc4..5183102 100644 ---- a/util/grub-mkrescue.c -+++ b/util/grub-mkrescue.c -@@ -441,8 +441,8 @@ main (int argc, char *argv[]) - xorriso = xstrdup ("xorriso"); - label_font = grub_util_path_concat (2, pkgdatadir, "unicode.pf2"); - -- argp_argv = xmalloc (sizeof (argp_argv[0]) * argc); -- xorriso_tail_argv = xmalloc (sizeof (argp_argv[0]) * argc); -+ argp_argv = xcalloc (argc, sizeof (argp_argv[0])); -+ xorriso_tail_argv = xcalloc (argc, sizeof (argp_argv[0])); - - xorriso_tail_argc = 0; - /* Program name */ -diff --git a/util/grub-mkstandalone.c b/util/grub-mkstandalone.c -index 4907d44..edf3097 100644 ---- a/util/grub-mkstandalone.c -+++ b/util/grub-mkstandalone.c -@@ -296,7 +296,7 @@ main (int argc, char *argv[]) - grub_util_host_init (&argc, &argv); - grub_util_disable_fd_syncs (); - -- files = xmalloc ((argc + 1) * sizeof (files[0])); -+ files = xcalloc (argc + 1, sizeof (files[0])); - - argp_parse (&argp, argc, argv, 0, 0, 0); - -diff --git a/util/grub-pe2elf.c b/util/grub-pe2elf.c -index 0d4084a..1133129 100644 ---- a/util/grub-pe2elf.c -+++ b/util/grub-pe2elf.c -@@ -100,9 +100,9 @@ write_section_data (FILE* fp, const char *name, char *image, - char *pe_strtab = (image + pe_chdr->symtab_offset - + pe_chdr->num_symbols * sizeof (struct grub_pe32_symbol)); - -- section_map = xmalloc ((2 * pe_chdr->num_sections + 5) * sizeof (int)); -+ section_map = xcalloc (2 * pe_chdr->num_sections + 5, sizeof (int)); - section_map[0] = 0; -- shdr = xmalloc ((2 * pe_chdr->num_sections + 5) * sizeof (shdr[0])); -+ shdr = xcalloc (2 * pe_chdr->num_sections + 5, sizeof (shdr[0])); - idx = 1; - idx_reloc = pe_chdr->num_sections + 1; - -@@ -233,7 +233,7 @@ write_reloc_section (FILE* fp, const char *name, char *image, - - pe_sec = pe_shdr + shdr[i].sh_link; - pe_rel = (struct grub_pe32_reloc *) (image + pe_sec->relocations_offset); -- rel = (elf_reloc_t *) xmalloc (pe_sec->num_relocations * sizeof (elf_reloc_t)); -+ rel = (elf_reloc_t *) xcalloc (pe_sec->num_relocations, sizeof (elf_reloc_t)); - num_rels = 0; - modified = 0; - -@@ -365,12 +365,10 @@ write_symbol_table (FILE* fp, const char *name, char *image, - pe_symtab = (struct grub_pe32_symbol *) (image + pe_chdr->symtab_offset); - pe_strtab = (char *) (pe_symtab + pe_chdr->num_symbols); - -- symtab = (Elf_Sym *) xmalloc ((pe_chdr->num_symbols + 1) * -- sizeof (Elf_Sym)); -- memset (symtab, 0, (pe_chdr->num_symbols + 1) * sizeof (Elf_Sym)); -+ symtab = (Elf_Sym *) xcalloc (pe_chdr->num_symbols + 1, sizeof (Elf_Sym)); - num_syms = 1; - -- symtab_map = (int *) xmalloc (pe_chdr->num_symbols * sizeof (int)); -+ symtab_map = (int *) xcalloc (pe_chdr->num_symbols, sizeof (int)); - - for (i = 0; i < (int) pe_chdr->num_symbols; - i += pe_symtab->num_aux + 1, pe_symtab += pe_symtab->num_aux + 1) -diff --git a/util/grub-probe.c b/util/grub-probe.c -index 7481e48..cf4291c 100644 ---- a/util/grub-probe.c -+++ b/util/grub-probe.c -@@ -361,8 +361,8 @@ probe (const char *path, char **device_names, char delim) - grub_util_pull_device (*curdev); - ndev++; - } -- -- drives_names = xmalloc (sizeof (drives_names[0]) * (ndev + 1)); -+ -+ drives_names = xcalloc (ndev + 1, sizeof (drives_names[0])); - - for (curdev = device_names, curdrive = drives_names; *curdev; curdev++, - curdrive++) --- -2.23.0 - diff --git a/0225-malloc-Use-overflow-checking-primitives-where-we-do-.patch b/0225-malloc-Use-overflow-checking-primitives-where-we-do-.patch deleted file mode 100644 index 3f6f47f..0000000 --- a/0225-malloc-Use-overflow-checking-primitives-where-we-do-.patch +++ /dev/null @@ -1,1322 +0,0 @@ -From 3f05d693d1274965ffbe4ba99080dc2c570944c6 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 15 Jun 2020 12:28:27 -0400 -Subject: [PATCH 05/27] malloc: Use overflow checking primitives where we do - complex allocations - -This attempts to fix the places where we do the following where -arithmetic_expr may include unvalidated data: - - X = grub_malloc(arithmetic_expr); - -It accomplishes this by doing the arithmetic ahead of time using grub_add(), -grub_sub(), grub_mul() and testing for overflow before proceeding. - -Among other issues, this fixes: - - allocation of integer overflow in grub_video_bitmap_create() - reported by Chris Coulson, - - allocation of integer overflow in grub_png_decode_image_header() - reported by Chris Coulson, - - allocation of integer overflow in grub_squash_read_symlink() - reported by Chris Coulson, - - allocation of integer overflow in grub_ext2_read_symlink() - reported by Chris Coulson, - - allocation of integer overflow in read_section_as_string() - reported by Chris Coulson. - -Fixes: CVE-2020-14309, CVE-2020-14310, CVE-2020-14311 - -Signed-off-by: Peter Jones -Reviewed-by: Daniel Kiper ---- - grub-core/commands/legacycfg.c | 29 +++++++++++++++---- - grub-core/commands/wildcard.c | 36 ++++++++++++++++++++---- - grub-core/disk/ldm.c | 32 +++++++++++++++------ - grub-core/font/font.c | 7 ++++- - grub-core/fs/btrfs.c | 28 +++++++++++++------ - grub-core/fs/ext2.c | 10 ++++++- - grub-core/fs/iso9660.c | 51 ++++++++++++++++++++++++---------- - grub-core/fs/sfs.c | 27 ++++++++++++++---- - grub-core/fs/squash4.c | 45 ++++++++++++++++++++++-------- - grub-core/fs/udf.c | 41 +++++++++++++++++---------- - grub-core/fs/xfs.c | 11 +++++--- - grub-core/fs/zfs/zfs.c | 22 ++++++++++----- - grub-core/fs/zfs/zfscrypt.c | 7 ++++- - grub-core/lib/arg.c | 20 +++++++++++-- - grub-core/loader/i386/bsd.c | 8 +++++- - grub-core/net/dns.c | 9 +++++- - grub-core/normal/charset.c | 10 +++++-- - grub-core/normal/cmdline.c | 14 ++++++++-- - grub-core/normal/menu_entry.c | 13 +++++++-- - grub-core/script/argv.c | 16 +++++++++-- - grub-core/script/lexer.c | 21 ++++++++++++-- - grub-core/video/bitmap.c | 25 +++++++++++------ - grub-core/video/readers/png.c | 13 +++++++-- - 23 files changed, 382 insertions(+), 113 deletions(-) - -diff --git a/grub-core/commands/legacycfg.c b/grub-core/commands/legacycfg.c -index da5143d..782761c 100644 ---- a/grub-core/commands/legacycfg.c -+++ b/grub-core/commands/legacycfg.c -@@ -32,6 +32,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -104,13 +105,22 @@ legacy_file (const char *filename) - if (newsuffix) - { - char *t; -- -+ grub_size_t sz; -+ -+ if (grub_add (grub_strlen (suffix), grub_strlen (newsuffix), &sz) || -+ grub_add (sz, 1, &sz)) -+ { -+ grub_errno = GRUB_ERR_OUT_OF_RANGE; -+ goto fail_0; -+ } -+ - t = suffix; -- suffix = grub_realloc (suffix, grub_strlen (suffix) -- + grub_strlen (newsuffix) + 1); -+ suffix = grub_realloc (suffix, sz); - if (!suffix) - { - grub_free (t); -+ -+ fail_0: - grub_free (entrysrc); - grub_free (parsed); - grub_free (newsuffix); -@@ -154,13 +164,22 @@ legacy_file (const char *filename) - else - { - char *t; -+ grub_size_t sz; -+ -+ if (grub_add (grub_strlen (entrysrc), grub_strlen (parsed), &sz) || -+ grub_add (sz, 1, &sz)) -+ { -+ grub_errno = GRUB_ERR_OUT_OF_RANGE; -+ goto fail_1; -+ } - - t = entrysrc; -- entrysrc = grub_realloc (entrysrc, grub_strlen (entrysrc) -- + grub_strlen (parsed) + 1); -+ entrysrc = grub_realloc (entrysrc, sz); - if (!entrysrc) - { - grub_free (t); -+ -+ fail_1: - grub_free (parsed); - grub_free (suffix); - return grub_errno; -diff --git a/grub-core/commands/wildcard.c b/grub-core/commands/wildcard.c -index 560d437..8f67a4b 100644 ---- a/grub-core/commands/wildcard.c -+++ b/grub-core/commands/wildcard.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - - #include - -@@ -48,6 +49,7 @@ merge (char **dest, char **ps) - int i; - int j; - char **p; -+ grub_size_t sz; - - if (! dest) - return ps; -@@ -60,7 +62,12 @@ merge (char **dest, char **ps) - for (j = 0; ps[j]; j++) - ; - -- p = grub_realloc (dest, sizeof (char*) * (i + j + 1)); -+ if (grub_add (i, j, &sz) || -+ grub_add (sz, 1, &sz) || -+ grub_mul (sz, sizeof (char *), &sz)) -+ return dest; -+ -+ p = grub_realloc (dest, sz); - if (! p) - { - grub_free (dest); -@@ -115,8 +122,15 @@ make_regex (const char *start, const char *end, regex_t *regexp) - char ch; - int i = 0; - unsigned len = end - start; -- char *buffer = grub_malloc (len * 2 + 2 + 1); /* worst case size. */ -+ char *buffer; -+ grub_size_t sz; - -+ /* Worst case size is (len * 2 + 2 + 1). */ -+ if (grub_mul (len, 2, &sz) || -+ grub_add (sz, 3, &sz)) -+ return 1; -+ -+ buffer = grub_malloc (sz); - if (! buffer) - return 1; - -@@ -226,6 +240,7 @@ match_devices_iter (const char *name, void *data) - struct match_devices_ctx *ctx = data; - char **t; - char *buffer; -+ grub_size_t sz; - - /* skip partitions if asked to. */ - if (ctx->noparts && grub_strchr (name, ',')) -@@ -239,11 +254,16 @@ match_devices_iter (const char *name, void *data) - if (regexec (ctx->regexp, buffer, 0, 0, 0)) - { - grub_dprintf ("expand", "not matched\n"); -+ fail: - grub_free (buffer); - return 0; - } - -- t = grub_realloc (ctx->devs, sizeof (char*) * (ctx->ndev + 2)); -+ if (grub_add (ctx->ndev, 2, &sz) || -+ grub_mul (sz, sizeof (char *), &sz)) -+ goto fail; -+ -+ t = grub_realloc (ctx->devs, sz); - if (! t) - { - grub_free (buffer); -@@ -300,6 +320,7 @@ match_files_iter (const char *name, - struct match_files_ctx *ctx = data; - char **t; - char *buffer; -+ grub_size_t sz; - - /* skip . and .. names */ - if (grub_strcmp(".", name) == 0 || grub_strcmp("..", name) == 0) -@@ -315,9 +336,14 @@ match_files_iter (const char *name, - if (! buffer) - return 1; - -- t = grub_realloc (ctx->files, sizeof (char*) * (ctx->nfile + 2)); -- if (! t) -+ if (grub_add (ctx->nfile, 2, &sz) || -+ grub_mul (sz, sizeof (char *), &sz)) -+ goto fail; -+ -+ t = grub_realloc (ctx->files, sz); -+ if (!t) - { -+ fail: - grub_free (buffer); - return 1; - } -diff --git a/grub-core/disk/ldm.c b/grub-core/disk/ldm.c -index e632370..58f8a53 100644 ---- a/grub-core/disk/ldm.c -+++ b/grub-core/disk/ldm.c -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - - #ifdef GRUB_UTIL - #include -@@ -289,6 +290,7 @@ make_vg (grub_disk_t disk, - struct grub_ldm_vblk vblk[GRUB_DISK_SECTOR_SIZE - / sizeof (struct grub_ldm_vblk)]; - unsigned i; -+ grub_size_t sz; - err = grub_disk_read (disk, cursec, 0, - sizeof(vblk), &vblk); - if (err) -@@ -350,7 +352,13 @@ make_vg (grub_disk_t disk, - grub_free (lv); - goto fail2; - } -- lv->name = grub_malloc (*ptr + 1); -+ if (grub_add (*ptr, 1, &sz)) -+ { -+ grub_free (lv->internal_id); -+ grub_free (lv); -+ goto fail2; -+ } -+ lv->name = grub_malloc (sz); - if (!lv->name) - { - grub_free (lv->internal_id); -@@ -599,10 +607,13 @@ make_vg (grub_disk_t disk, - if (lv->segments->node_alloc == lv->segments->node_count) - { - void *t; -- lv->segments->node_alloc *= 2; -- t = grub_realloc (lv->segments->nodes, -- sizeof (*lv->segments->nodes) -- * lv->segments->node_alloc); -+ grub_size_t sz; -+ -+ if (grub_mul (lv->segments->node_alloc, 2, &lv->segments->node_alloc) || -+ grub_mul (lv->segments->node_alloc, sizeof (*lv->segments->nodes), &sz)) -+ goto fail2; -+ -+ t = grub_realloc (lv->segments->nodes, sz); - if (!t) - goto fail2; - lv->segments->nodes = t; -@@ -723,10 +734,13 @@ make_vg (grub_disk_t disk, - if (comp->segment_alloc == comp->segment_count) - { - void *t; -- comp->segment_alloc *= 2; -- t = grub_realloc (comp->segments, -- comp->segment_alloc -- * sizeof (*comp->segments)); -+ grub_size_t sz; -+ -+ if (grub_mul (comp->segment_alloc, 2, &comp->segment_alloc) || -+ grub_mul (comp->segment_alloc, sizeof (*comp->segments), &sz)) -+ goto fail2; -+ -+ t = grub_realloc (comp->segments, sz); - if (!t) - goto fail2; - comp->segments = t; -diff --git a/grub-core/font/font.c b/grub-core/font/font.c -index 8e118b3..5edb477 100644 ---- a/grub-core/font/font.c -+++ b/grub-core/font/font.c -@@ -30,6 +30,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -360,9 +361,13 @@ static char * - read_section_as_string (struct font_file_section *section) - { - char *str; -+ grub_size_t sz; - grub_ssize_t ret; - -- str = grub_malloc (section->length + 1); -+ if (grub_add (section->length, 1, &sz)) -+ return NULL; -+ -+ str = grub_malloc (sz); - if (!str) - return 0; - -diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index ba080fd..0d8c666 100644 ---- a/grub-core/fs/btrfs.c -+++ b/grub-core/fs/btrfs.c -@@ -44,6 +44,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -358,9 +359,13 @@ save_ref (struct grub_btrfs_leaf_descriptor *desc, - if (desc->allocated < desc->depth) - { - void *newdata; -- desc->allocated *= 2; -- newdata = grub_realloc (desc->data, sizeof (desc->data[0]) -- * desc->allocated); -+ grub_size_t sz; -+ -+ if (grub_mul (desc->allocated, 2, &desc->allocated) || -+ grub_mul (desc->allocated, sizeof (desc->data[0]), &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ -+ newdata = grub_realloc (desc->data, sz); - if (!newdata) - return grub_errno; - desc->data = newdata; -@@ -651,16 +656,21 @@ find_device (struct grub_btrfs_data *data, grub_uint64_t id) - if (data->n_devices_attached > data->n_devices_allocated) - { - void *tmp; -- data->n_devices_allocated = 2 * data->n_devices_attached + 1; -- data->devices_attached -- = grub_realloc (tmp = data->devices_attached, -- data->n_devices_allocated -- * sizeof (data->devices_attached[0])); -+ grub_size_t sz; -+ -+ if (grub_mul (data->n_devices_attached, 2, &data->n_devices_allocated) || -+ grub_add (data->n_devices_allocated, 1, &data->n_devices_allocated) || -+ grub_mul (data->n_devices_allocated, sizeof (data->devices_attached[0]), &sz)) -+ goto fail; -+ -+ data->devices_attached = grub_realloc (tmp = data->devices_attached, sz); - if (!data->devices_attached) - { -+ data->devices_attached = tmp; -+ -+ fail: - if (ctx.dev_found) - grub_device_close (ctx.dev_found); -- data->devices_attached = tmp; - return NULL; - } - } -diff --git a/grub-core/fs/ext2.c b/grub-core/fs/ext2.c -index 9b38980..ac33bcd 100644 ---- a/grub-core/fs/ext2.c -+++ b/grub-core/fs/ext2.c -@@ -46,6 +46,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -703,6 +704,7 @@ grub_ext2_read_symlink (grub_fshelp_node_t node) - { - char *symlink; - struct grub_fshelp_node *diro = node; -+ grub_size_t sz; - - if (! diro->inode_read) - { -@@ -717,7 +719,13 @@ grub_ext2_read_symlink (grub_fshelp_node_t node) - } - } - -- symlink = grub_malloc (grub_le_to_cpu32 (diro->inode.size) + 1); -+ if (grub_add (grub_le_to_cpu32 (diro->inode.size), 1, &sz)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ return NULL; -+ } -+ -+ symlink = grub_malloc (sz); - if (! symlink) - return 0; - -diff --git a/grub-core/fs/iso9660.c b/grub-core/fs/iso9660.c -index 4f1b52a..7ba5b30 100644 ---- a/grub-core/fs/iso9660.c -+++ b/grub-core/fs/iso9660.c -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -531,8 +532,13 @@ add_part (struct iterate_dir_ctx *ctx, - int len2) - { - int size = ctx->symlink ? grub_strlen (ctx->symlink) : 0; -+ grub_size_t sz; - -- ctx->symlink = grub_realloc (ctx->symlink, size + len2 + 1); -+ if (grub_add (size, len2, &sz) || -+ grub_add (sz, 1, &sz)) -+ return; -+ -+ ctx->symlink = grub_realloc (ctx->symlink, sz); - if (! ctx->symlink) - return; - -@@ -560,17 +566,24 @@ susp_iterate_dir (struct grub_iso9660_susp_entry *entry, - { - grub_size_t off = 0, csize = 1; - char *old; -+ grub_size_t sz; -+ - csize = entry->len - 5; - old = ctx->filename; - if (ctx->filename_alloc) - { - off = grub_strlen (ctx->filename); -- ctx->filename = grub_realloc (ctx->filename, csize + off + 1); -+ if (grub_add (csize, off, &sz) || -+ grub_add (sz, 1, &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ ctx->filename = grub_realloc (ctx->filename, sz); - } - else - { - off = 0; -- ctx->filename = grub_zalloc (csize + 1); -+ if (grub_add (csize, 1, &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ ctx->filename = grub_zalloc (sz); - } - if (!ctx->filename) - { -@@ -776,14 +789,18 @@ grub_iso9660_iterate_dir (grub_fshelp_node_t dir, - if (node->have_dirents >= node->alloc_dirents) - { - struct grub_fshelp_node *new_node; -- node->alloc_dirents *= 2; -- new_node = grub_realloc (node, -- sizeof (struct grub_fshelp_node) -- + ((node->alloc_dirents -- - ARRAY_SIZE (node->dirents)) -- * sizeof (node->dirents[0]))); -+ grub_size_t sz; -+ -+ if (grub_mul (node->alloc_dirents, 2, &node->alloc_dirents) || -+ grub_sub (node->alloc_dirents, ARRAY_SIZE (node->dirents), &sz) || -+ grub_mul (sz, sizeof (node->dirents[0]), &sz) || -+ grub_add (sz, sizeof (struct grub_fshelp_node), &sz)) -+ goto fail_0; -+ -+ new_node = grub_realloc (node, sz); - if (!new_node) - { -+ fail_0: - if (ctx.filename_alloc) - grub_free (ctx.filename); - grub_free (node); -@@ -799,14 +816,18 @@ grub_iso9660_iterate_dir (grub_fshelp_node_t dir, - * sizeof (node->dirents[0]) < grub_strlen (ctx.symlink) + 1) - { - struct grub_fshelp_node *new_node; -- new_node = grub_realloc (node, -- sizeof (struct grub_fshelp_node) -- + ((node->alloc_dirents -- - ARRAY_SIZE (node->dirents)) -- * sizeof (node->dirents[0])) -- + grub_strlen (ctx.symlink) + 1); -+ grub_size_t sz; -+ -+ if (grub_sub (node->alloc_dirents, ARRAY_SIZE (node->dirents), &sz) || -+ grub_mul (sz, sizeof (node->dirents[0]), &sz) || -+ grub_add (sz, sizeof (struct grub_fshelp_node) + 1, &sz) || -+ grub_add (sz, grub_strlen (ctx.symlink), &sz)) -+ goto fail_1; -+ -+ new_node = grub_realloc (node, sz); - if (!new_node) - { -+ fail_1: - if (ctx.filename_alloc) - grub_free (ctx.filename); - grub_free (node); -diff --git a/grub-core/fs/sfs.c b/grub-core/fs/sfs.c -index 90f7fb3..de2b107 100644 ---- a/grub-core/fs/sfs.c -+++ b/grub-core/fs/sfs.c -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -307,10 +308,15 @@ grub_sfs_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock) - if (node->cache && node->cache_size >= node->cache_allocated) - { - struct cache_entry *e = node->cache; -- e = grub_realloc (node->cache,node->cache_allocated * 2 -- * sizeof (e[0])); -+ grub_size_t sz; -+ -+ if (grub_mul (node->cache_allocated, 2 * sizeof (e[0]), &sz)) -+ goto fail; -+ -+ e = grub_realloc (node->cache, sz); - if (!e) - { -+ fail: - grub_errno = 0; - grub_free (node->cache); - node->cache = 0; -@@ -477,10 +483,16 @@ grub_sfs_create_node (struct grub_fshelp_node **node, - grub_size_t len = grub_strlen (name); - grub_uint8_t *name_u8; - int ret; -+ grub_size_t sz; -+ -+ if (grub_mul (len, GRUB_MAX_UTF8_PER_LATIN1, &sz) || -+ grub_add (sz, 1, &sz)) -+ return 1; -+ - *node = grub_malloc (sizeof (**node)); - if (!*node) - return 1; -- name_u8 = grub_malloc (len * GRUB_MAX_UTF8_PER_LATIN1 + 1); -+ name_u8 = grub_malloc (sz); - if (!name_u8) - { - grub_free (*node); -@@ -724,8 +736,13 @@ grub_sfs_label (grub_device_t device, char **label) - data = grub_sfs_mount (disk); - if (data) - { -- grub_size_t len = grub_strlen (data->label); -- *label = grub_malloc (len * GRUB_MAX_UTF8_PER_LATIN1 + 1); -+ grub_size_t sz, len = grub_strlen (data->label); -+ -+ if (grub_mul (len, GRUB_MAX_UTF8_PER_LATIN1, &sz) || -+ grub_add (sz, 1, &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ -+ *label = grub_malloc (sz); - if (*label) - *grub_latin1_to_utf8 ((grub_uint8_t *) *label, - (const grub_uint8_t *) data->label, -diff --git a/grub-core/fs/squash4.c b/grub-core/fs/squash4.c -index 95d5c1e..7851238 100644 ---- a/grub-core/fs/squash4.c -+++ b/grub-core/fs/squash4.c -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - #include - - #include "xz.h" -@@ -459,7 +460,17 @@ grub_squash_read_symlink (grub_fshelp_node_t node) - { - char *ret; - grub_err_t err; -- ret = grub_malloc (grub_le_to_cpu32 (node->ino.symlink.namelen) + 1); -+ grub_size_t sz; -+ -+ if (grub_add (grub_le_to_cpu32 (node->ino.symlink.namelen), 1, &sz)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ return NULL; -+ } -+ -+ ret = grub_malloc (sz); -+ if (!ret) -+ return NULL; - - err = read_chunk (node->data, ret, - grub_le_to_cpu32 (node->ino.symlink.namelen), -@@ -506,11 +517,16 @@ grub_squash_iterate_dir (grub_fshelp_node_t dir, - - { - grub_fshelp_node_t node; -- node = grub_malloc (sizeof (*node) + dir->stsize * sizeof (dir->stack[0])); -+ grub_size_t sz; -+ -+ if (grub_mul (dir->stsize, sizeof (dir->stack[0]), &sz) || -+ grub_add (sz, sizeof (*node), &sz)) -+ return 0; -+ -+ node = grub_malloc (sz); - if (!node) - return 0; -- grub_memcpy (node, dir, -- sizeof (*node) + dir->stsize * sizeof (dir->stack[0])); -+ grub_memcpy (node, dir, sz); - if (hook (".", GRUB_FSHELP_DIR, node, hook_data)) - return 1; - -@@ -518,12 +534,15 @@ grub_squash_iterate_dir (grub_fshelp_node_t dir, - { - grub_err_t err; - -- node = grub_malloc (sizeof (*node) + dir->stsize * sizeof (dir->stack[0])); -+ if (grub_mul (dir->stsize, sizeof (dir->stack[0]), &sz) || -+ grub_add (sz, sizeof (*node), &sz)) -+ return 0; -+ -+ node = grub_malloc (sz); - if (!node) - return 0; - -- grub_memcpy (node, dir, -- sizeof (*node) + dir->stsize * sizeof (dir->stack[0])); -+ grub_memcpy (node, dir, sz); - - node->stsize--; - err = read_chunk (dir->data, &node->ino, sizeof (node->ino), -@@ -557,6 +576,7 @@ grub_squash_iterate_dir (grub_fshelp_node_t dir, - enum grub_fshelp_filetype filetype = GRUB_FSHELP_REG; - struct grub_squash_dirent di; - struct grub_squash_inode ino; -+ grub_size_t sz; - - err = read_chunk (dir->data, &di, sizeof (di), - grub_le_to_cpu64 (dir->data->sb.diroffset) -@@ -589,13 +609,16 @@ grub_squash_iterate_dir (grub_fshelp_node_t dir, - if (grub_le_to_cpu16 (di.type) == SQUASH_TYPE_SYMLINK) - filetype = GRUB_FSHELP_SYMLINK; - -- node = grub_malloc (sizeof (*node) -- + (dir->stsize + 1) * sizeof (dir->stack[0])); -+ if (grub_add (dir->stsize, 1, &sz) || -+ grub_mul (sz, sizeof (dir->stack[0]), &sz) || -+ grub_add (sz, sizeof (*node), &sz)) -+ return 0; -+ -+ node = grub_malloc (sz); - if (! node) - return 0; - -- grub_memcpy (node, dir, -- sizeof (*node) + dir->stsize * sizeof (dir->stack[0])); -+ grub_memcpy (node, dir, sz - sizeof(dir->stack[0])); - - node->ino = ino; - node->stack[node->stsize].ino_chunk = grub_le_to_cpu32 (dh.ino_chunk); -diff --git a/grub-core/fs/udf.c b/grub-core/fs/udf.c -index a837616..21ac7f4 100644 ---- a/grub-core/fs/udf.c -+++ b/grub-core/fs/udf.c -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -890,9 +891,19 @@ read_string (const grub_uint8_t *raw, grub_size_t sz, char *outbuf) - utf16[i] = (raw[2 * i + 1] << 8) | raw[2*i + 2]; - } - if (!outbuf) -- outbuf = grub_malloc (utf16len * GRUB_MAX_UTF8_PER_UTF16 + 1); -+ { -+ grub_size_t size; -+ -+ if (grub_mul (utf16len, GRUB_MAX_UTF8_PER_UTF16, &size) || -+ grub_add (size, 1, &size)) -+ goto fail; -+ -+ outbuf = grub_malloc (size); -+ } - if (outbuf) - *grub_utf16_to_utf8 ((grub_uint8_t *) outbuf, utf16, utf16len) = '\0'; -+ -+ fail: - grub_free (utf16); - return outbuf; - } -@@ -1005,7 +1016,7 @@ grub_udf_read_symlink (grub_fshelp_node_t node) - grub_size_t sz = U64 (node->block.fe.file_size); - grub_uint8_t *raw; - const grub_uint8_t *ptr; -- char *out, *optr; -+ char *out = NULL, *optr; - - if (sz < 4) - return NULL; -@@ -1013,14 +1024,16 @@ grub_udf_read_symlink (grub_fshelp_node_t node) - if (!raw) - return NULL; - if (grub_udf_read_file (node, NULL, NULL, 0, sz, (char *) raw) < 0) -- { -- grub_free (raw); -- return NULL; -- } -+ goto fail_1; - -- out = grub_malloc (sz * 2 + 1); -+ if (grub_mul (sz, 2, &sz) || -+ grub_add (sz, 1, &sz)) -+ goto fail_0; -+ -+ out = grub_malloc (sz); - if (!out) - { -+ fail_0: - grub_free (raw); - return NULL; - } -@@ -1031,17 +1044,17 @@ grub_udf_read_symlink (grub_fshelp_node_t node) - { - grub_size_t s; - if ((grub_size_t) (ptr - raw + 4) > sz) -- goto fail; -+ goto fail_1; - if (!(ptr[2] == 0 && ptr[3] == 0)) -- goto fail; -+ goto fail_1; - s = 4 + ptr[1]; - if ((grub_size_t) (ptr - raw + s) > sz) -- goto fail; -+ goto fail_1; - switch (*ptr) - { - case 1: - if (ptr[1]) -- goto fail; -+ goto fail_1; - /* Fallthrough. */ - case 2: - /* in 4 bytes. out: 1 byte. */ -@@ -1066,11 +1079,11 @@ grub_udf_read_symlink (grub_fshelp_node_t node) - if (optr != out) - *optr++ = '/'; - if (!read_string (ptr + 4, s - 4, optr)) -- goto fail; -+ goto fail_1; - optr += grub_strlen (optr); - break; - default: -- goto fail; -+ goto fail_1; - } - ptr += s; - } -@@ -1078,7 +1091,7 @@ grub_udf_read_symlink (grub_fshelp_node_t node) - grub_free (raw); - return out; - -- fail: -+ fail_1: - grub_free (raw); - grub_free (out); - grub_error (GRUB_ERR_BAD_FS, "invalid symlink"); -diff --git a/grub-core/fs/xfs.c b/grub-core/fs/xfs.c -index 96ffecb..ea65902 100644 ---- a/grub-core/fs/xfs.c -+++ b/grub-core/fs/xfs.c -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -899,6 +900,7 @@ static struct grub_xfs_data * - grub_xfs_mount (grub_disk_t disk) - { - struct grub_xfs_data *data = 0; -+ grub_size_t sz; - - data = grub_zalloc (sizeof (struct grub_xfs_data)); - if (!data) -@@ -913,10 +915,11 @@ grub_xfs_mount (grub_disk_t disk) - if (!grub_xfs_sb_valid(data)) - goto fail; - -- data = grub_realloc (data, -- sizeof (struct grub_xfs_data) -- - sizeof (struct grub_xfs_inode) -- + grub_xfs_inode_size(data) + 1); -+ if (grub_add (grub_xfs_inode_size (data), -+ sizeof (struct grub_xfs_data) - sizeof (struct grub_xfs_inode) + 1, &sz)) -+ goto fail; -+ -+ data = grub_realloc (data, sz); - - if (! data) - goto fail; -diff --git a/grub-core/fs/zfs/zfs.c b/grub-core/fs/zfs/zfs.c -index 381dde5..36d0373 100644 ---- a/grub-core/fs/zfs/zfs.c -+++ b/grub-core/fs/zfs/zfs.c -@@ -55,6 +55,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -773,11 +774,14 @@ fill_vdev_info (struct grub_zfs_data *data, - if (data->n_devices_attached > data->n_devices_allocated) - { - void *tmp; -- data->n_devices_allocated = 2 * data->n_devices_attached + 1; -- data->devices_attached -- = grub_realloc (tmp = data->devices_attached, -- data->n_devices_allocated -- * sizeof (data->devices_attached[0])); -+ grub_size_t sz; -+ -+ if (grub_mul (data->n_devices_attached, 2, &data->n_devices_allocated) || -+ grub_add (data->n_devices_allocated, 1, &data->n_devices_allocated) || -+ grub_mul (data->n_devices_allocated, sizeof (data->devices_attached[0]), &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ -+ data->devices_attached = grub_realloc (tmp = data->devices_attached, sz); - if (!data->devices_attached) - { - data->devices_attached = tmp; -@@ -3468,14 +3472,18 @@ grub_zfs_nvlist_lookup_nvlist (const char *nvlist, const char *name) - { - char *nvpair; - char *ret; -- grub_size_t size; -+ grub_size_t size, sz; - int found; - - found = nvlist_find_value (nvlist, name, DATA_TYPE_NVLIST, &nvpair, - &size, 0); - if (!found) - return 0; -- ret = grub_zalloc (size + 3 * sizeof (grub_uint32_t)); -+ -+ if (grub_add (size, 3 * sizeof (grub_uint32_t), &sz)) -+ return 0; -+ -+ ret = grub_zalloc (sz); - if (!ret) - return 0; - grub_memcpy (ret, nvlist, sizeof (grub_uint32_t)); -diff --git a/grub-core/fs/zfs/zfscrypt.c b/grub-core/fs/zfs/zfscrypt.c -index 1402e0b..de3b015 100644 ---- a/grub-core/fs/zfs/zfscrypt.c -+++ b/grub-core/fs/zfs/zfscrypt.c -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -82,9 +83,13 @@ grub_zfs_add_key (grub_uint8_t *key_in, - int passphrase) - { - struct grub_zfs_wrap_key *key; -+ grub_size_t sz; -+ - if (!passphrase && keylen > 32) - keylen = 32; -- key = grub_malloc (sizeof (*key) + keylen); -+ if (grub_add (sizeof (*key), keylen, &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ key = grub_malloc (sz); - if (!key) - return grub_errno; - key->is_passphrase = passphrase; -diff --git a/grub-core/lib/arg.c b/grub-core/lib/arg.c -index ccc1850..8439a00 100644 ---- a/grub-core/lib/arg.c -+++ b/grub-core/lib/arg.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - - /* Built-in parser for default options. */ - static const struct grub_arg_option help_options[] = -@@ -216,7 +217,13 @@ static inline grub_err_t - add_arg (char ***argl, int *num, char *s) - { - char **p = *argl; -- *argl = grub_realloc (*argl, (++(*num) + 1) * sizeof (char *)); -+ grub_size_t sz; -+ -+ if (grub_add (++(*num), 1, &sz) || -+ grub_mul (sz, sizeof (char *), &sz)) -+ return grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ -+ *argl = grub_realloc (*argl, sz); - if (! *argl) - { - grub_free (p); -@@ -431,6 +438,7 @@ grub_arg_list_alloc(grub_extcmd_t extcmd, int argc, - grub_size_t argcnt; - struct grub_arg_list *list; - const struct grub_arg_option *options; -+ grub_size_t sz0, sz1; - - options = extcmd->options; - if (! options) -@@ -443,7 +451,15 @@ grub_arg_list_alloc(grub_extcmd_t extcmd, int argc, - argcnt += ((grub_size_t) argc + 1) / 2 + 1; /* max possible for any option */ - } - -- list = grub_zalloc (sizeof (*list) * i + sizeof (char*) * argcnt); -+ if (grub_mul (sizeof (*list), i, &sz0) || -+ grub_mul (sizeof (char *), argcnt, &sz1) || -+ grub_add (sz0, sz1, &sz0)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ return 0; -+ } -+ -+ list = grub_zalloc (sz0); - if (! list) - return 0; - -diff --git a/grub-core/loader/i386/bsd.c b/grub-core/loader/i386/bsd.c -index 50cca30..ff98fb7 100644 ---- a/grub-core/loader/i386/bsd.c -+++ b/grub-core/loader/i386/bsd.c -@@ -35,6 +35,7 @@ - #include - #include - #include -+#include - #include - #ifdef GRUB_MACHINE_PCBIOS - #include -@@ -1013,11 +1014,16 @@ grub_netbsd_add_modules (void) - struct grub_netbsd_btinfo_modules *mods; - unsigned i; - grub_err_t err; -+ grub_size_t sz; - - for (mod = netbsd_mods; mod; mod = mod->next) - modcnt++; - -- mods = grub_malloc (sizeof (*mods) + sizeof (mods->mods[0]) * modcnt); -+ if (grub_mul (modcnt, sizeof (mods->mods[0]), &sz) || -+ grub_add (sz, sizeof (*mods), &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ -+ mods = grub_malloc (sz); - if (!mods) - return grub_errno; - -diff --git a/grub-core/net/dns.c b/grub-core/net/dns.c -index e332d5e..906ec7d 100644 ---- a/grub-core/net/dns.c -+++ b/grub-core/net/dns.c -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - - struct dns_cache_element - { -@@ -51,9 +52,15 @@ grub_net_add_dns_server (const struct grub_net_network_level_address *s) - { - int na = dns_servers_alloc * 2; - struct grub_net_network_level_address *ns; -+ grub_size_t sz; -+ - if (na < 8) - na = 8; -- ns = grub_realloc (dns_servers, na * sizeof (ns[0])); -+ -+ if (grub_mul (na, sizeof (ns[0]), &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ -+ ns = grub_realloc (dns_servers, sz); - if (!ns) - return grub_errno; - dns_servers_alloc = na; -diff --git a/grub-core/normal/charset.c b/grub-core/normal/charset.c -index d57fb72..4dfcc31 100644 ---- a/grub-core/normal/charset.c -+++ b/grub-core/normal/charset.c -@@ -48,6 +48,7 @@ - #include - #include - #include -+#include - - #if HAVE_FONT_SOURCE - #include "widthspec.h" -@@ -464,6 +465,7 @@ grub_unicode_aglomerate_comb (const grub_uint32_t *in, grub_size_t inlen, - { - struct grub_unicode_combining *n; - unsigned j; -+ grub_size_t sz; - - if (!haveout) - continue; -@@ -477,10 +479,14 @@ grub_unicode_aglomerate_comb (const grub_uint32_t *in, grub_size_t inlen, - n = out->combining_inline; - else if (out->ncomb > (int) ARRAY_SIZE (out->combining_inline)) - { -- n = grub_realloc (out->combining_ptr, -- sizeof (n[0]) * (out->ncomb + 1)); -+ if (grub_add (out->ncomb, 1, &sz) || -+ grub_mul (sz, sizeof (n[0]), &sz)) -+ goto fail; -+ -+ n = grub_realloc (out->combining_ptr, sz); - if (!n) - { -+ fail: - grub_errno = GRUB_ERR_NONE; - continue; - } -diff --git a/grub-core/normal/cmdline.c b/grub-core/normal/cmdline.c -index c57242e..de03fe6 100644 ---- a/grub-core/normal/cmdline.c -+++ b/grub-core/normal/cmdline.c -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - - static grub_uint32_t *kill_buf; - -@@ -307,12 +308,21 @@ cl_insert (struct cmdline_term *cl_terms, unsigned nterms, - if (len + (*llen) >= (*max_len)) - { - grub_uint32_t *nbuf; -- (*max_len) *= 2; -- nbuf = grub_realloc ((*buf), sizeof (grub_uint32_t) * (*max_len)); -+ grub_size_t sz; -+ -+ if (grub_mul (*max_len, 2, max_len) || -+ grub_mul (*max_len, sizeof (grub_uint32_t), &sz)) -+ { -+ grub_errno = GRUB_ERR_OUT_OF_RANGE; -+ goto fail; -+ } -+ -+ nbuf = grub_realloc ((*buf), sz); - if (nbuf) - (*buf) = nbuf; - else - { -+ fail: - grub_print_error (); - grub_errno = GRUB_ERR_NONE; - (*max_len) /= 2; -diff --git a/grub-core/normal/menu_entry.c b/grub-core/normal/menu_entry.c -index f31487c..de64a36 100644 ---- a/grub-core/normal/menu_entry.c -+++ b/grub-core/normal/menu_entry.c -@@ -27,6 +27,7 @@ - #include - #include - #include -+#include - - enum update_mode - { -@@ -113,10 +114,18 @@ ensure_space (struct line *linep, int extra) - { - if (linep->max_len < linep->len + extra) - { -- linep->max_len = 2 * (linep->len + extra); -- linep->buf = grub_realloc (linep->buf, (linep->max_len + 1) * sizeof (linep->buf[0])); -+ grub_size_t sz0, sz1; -+ -+ if (grub_add (linep->len, extra, &sz0) || -+ grub_mul (sz0, 2, &sz0) || -+ grub_add (sz0, 1, &sz1) || -+ grub_mul (sz1, sizeof (linep->buf[0]), &sz1)) -+ return 0; -+ -+ linep->buf = grub_realloc (linep->buf, sz1); - if (! linep->buf) - return 0; -+ linep->max_len = sz0; - } - - return 1; -diff --git a/grub-core/script/argv.c b/grub-core/script/argv.c -index 217ec5d..5751fdd 100644 ---- a/grub-core/script/argv.c -+++ b/grub-core/script/argv.c -@@ -20,6 +20,7 @@ - #include - #include - #include -+#include - - /* Return nearest power of two that is >= v. */ - static unsigned -@@ -81,11 +82,16 @@ int - grub_script_argv_next (struct grub_script_argv *argv) - { - char **p = argv->args; -+ grub_size_t sz; - - if (argv->args && argv->argc && argv->args[argv->argc - 1] == 0) - return 0; - -- p = grub_realloc (p, round_up_exp ((argv->argc + 2) * sizeof (char *))); -+ if (grub_add (argv->argc, 2, &sz) || -+ grub_mul (sz, sizeof (char *), &sz)) -+ return 1; -+ -+ p = grub_realloc (p, round_up_exp (sz)); - if (! p) - return 1; - -@@ -105,13 +111,19 @@ grub_script_argv_append (struct grub_script_argv *argv, const char *s, - { - grub_size_t a; - char *p = argv->args[argv->argc - 1]; -+ grub_size_t sz; - - if (! s) - return 0; - - a = p ? grub_strlen (p) : 0; - -- p = grub_realloc (p, round_up_exp ((a + slen + 1) * sizeof (char))); -+ if (grub_add (a, slen, &sz) || -+ grub_add (sz, 1, &sz) || -+ grub_mul (sz, sizeof (char), &sz)) -+ return 1; -+ -+ p = grub_realloc (p, round_up_exp (sz)); - if (! p) - return 1; - -diff --git a/grub-core/script/lexer.c b/grub-core/script/lexer.c -index c6bd317..5fb0cbd 100644 ---- a/grub-core/script/lexer.c -+++ b/grub-core/script/lexer.c -@@ -24,6 +24,7 @@ - #include - #include - #include -+#include - - #define yytext_ptr char * - #include "grub_script.tab.h" -@@ -110,10 +111,14 @@ grub_script_lexer_record (struct grub_parser_param *parser, char *str) - old = lexer->recording; - if (lexer->recordlen < len) - lexer->recordlen = len; -- lexer->recordlen *= 2; -+ -+ if (grub_mul (lexer->recordlen, 2, &lexer->recordlen)) -+ goto fail; -+ - lexer->recording = grub_realloc (lexer->recording, lexer->recordlen); - if (!lexer->recording) - { -+ fail: - grub_free (old); - lexer->recordpos = 0; - lexer->recordlen = 0; -@@ -130,7 +135,7 @@ int - grub_script_lexer_yywrap (struct grub_parser_param *parserstate, - const char *input) - { -- grub_size_t len = 0; -+ grub_size_t len = 0, sz; - char *p = 0; - char *line = 0; - YY_BUFFER_STATE buffer; -@@ -168,12 +173,22 @@ grub_script_lexer_yywrap (struct grub_parser_param *parserstate, - } - else if (len && line[len - 1] != '\n') - { -- p = grub_realloc (line, len + 2); -+ if (grub_add (len, 2, &sz)) -+ { -+ grub_free (line); -+ grub_script_yyerror (parserstate, N_("overflow is detected")); -+ return 1; -+ } -+ -+ p = grub_realloc (line, sz); - if (p) - { - p[len++] = '\n'; - p[len] = '\0'; - } -+ else -+ grub_free (line); -+ - line = p; - } - -diff --git a/grub-core/video/bitmap.c b/grub-core/video/bitmap.c -index b2e0315..6256e20 100644 ---- a/grub-core/video/bitmap.c -+++ b/grub-core/video/bitmap.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -58,7 +59,7 @@ grub_video_bitmap_create (struct grub_video_bitmap **bitmap, - enum grub_video_blit_format blit_format) - { - struct grub_video_mode_info *mode_info; -- unsigned int size; -+ grub_size_t size; - - if (!bitmap) - return grub_error (GRUB_ERR_BUG, "invalid argument"); -@@ -137,19 +138,25 @@ grub_video_bitmap_create (struct grub_video_bitmap **bitmap, - - mode_info->pitch = width * mode_info->bytes_per_pixel; - -- /* Calculate size needed for the data. */ -- size = (width * mode_info->bytes_per_pixel) * height; -+ /* Calculate size needed for the data. */ -+ if (grub_mul (width, mode_info->bytes_per_pixel, &size) || -+ grub_mul (size, height, &size)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ goto fail; -+ } - - (*bitmap)->data = grub_zalloc (size); - if (! (*bitmap)->data) -- { -- grub_free (*bitmap); -- *bitmap = 0; -- -- return grub_errno; -- } -+ goto fail; - - return GRUB_ERR_NONE; -+ -+ fail: -+ grub_free (*bitmap); -+ *bitmap = NULL; -+ -+ return grub_errno; - } - - /* Frees all resources allocated by bitmap. */ -diff --git a/grub-core/video/readers/png.c b/grub-core/video/readers/png.c -index 61bd645..0157ff7 100644 ---- a/grub-core/video/readers/png.c -+++ b/grub-core/video/readers/png.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -301,9 +302,17 @@ grub_png_decode_image_header (struct grub_png_data *data) - data->bpp <<= 1; - - data->color_bits = color_bits; -- data->row_bytes = data->image_width * data->bpp; -+ -+ if (grub_mul (data->image_width, data->bpp, &data->row_bytes)) -+ return grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ - if (data->color_bits <= 4) -- data->row_bytes = (data->image_width * data->color_bits + 7) / 8; -+ { -+ if (grub_mul (data->image_width, data->color_bits + 7, &data->row_bytes)) -+ return grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ -+ data->row_bytes >>= 3; -+ } - - #ifndef GRUB_CPU_WORDS_BIGENDIAN - if (data->is_16bit || data->is_gray || data->is_palette) --- -2.23.0 - diff --git a/0226-iso9660-Don-t-leak-memory-on-realloc-failures.patch b/0226-iso9660-Don-t-leak-memory-on-realloc-failures.patch deleted file mode 100644 index 93dc15e..0000000 --- a/0226-iso9660-Don-t-leak-memory-on-realloc-failures.patch +++ /dev/null @@ -1,68 +0,0 @@ -From f14380cfa955a2fb502ba148d045f68ac1250f2d Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Sat, 4 Jul 2020 12:25:09 -0400 -Subject: [PATCH 06/27] iso9660: Don't leak memory on realloc() failures - -Signed-off-by: Peter Jones -Reviewed-by: Daniel Kiper ---- - grub-core/fs/iso9660.c | 24 ++++++++++++++++++++---- - 1 file changed, 20 insertions(+), 4 deletions(-) - -diff --git a/grub-core/fs/iso9660.c b/grub-core/fs/iso9660.c -index 7ba5b30..5ec4433 100644 ---- a/grub-core/fs/iso9660.c -+++ b/grub-core/fs/iso9660.c -@@ -533,14 +533,20 @@ add_part (struct iterate_dir_ctx *ctx, - { - int size = ctx->symlink ? grub_strlen (ctx->symlink) : 0; - grub_size_t sz; -+ char *new; - - if (grub_add (size, len2, &sz) || - grub_add (sz, 1, &sz)) - return; - -- ctx->symlink = grub_realloc (ctx->symlink, sz); -- if (! ctx->symlink) -- return; -+ new = grub_realloc (ctx->symlink, sz); -+ if (!new) -+ { -+ grub_free (ctx->symlink); -+ ctx->symlink = NULL; -+ return; -+ } -+ ctx->symlink = new; - - grub_memcpy (ctx->symlink + size, part, len2); - ctx->symlink[size + len2] = 0; -@@ -634,7 +640,12 @@ susp_iterate_dir (struct grub_iso9660_susp_entry *entry, - is the length. Both are part of the `Component - Record'. */ - if (ctx->symlink && !ctx->was_continue) -- add_part (ctx, "/", 1); -+ { -+ add_part (ctx, "/", 1); -+ if (grub_errno) -+ return grub_errno; -+ } -+ - add_part (ctx, (char *) &entry->data[pos + 2], - entry->data[pos + 1]); - ctx->was_continue = (entry->data[pos] & 1); -@@ -653,6 +664,11 @@ susp_iterate_dir (struct grub_iso9660_susp_entry *entry, - add_part (ctx, "/", 1); - break; - } -+ -+ /* Check if grub_realloc() failed in add_part(). */ -+ if (grub_errno) -+ return grub_errno; -+ - /* In pos + 1 the length of the `Component Record' is - stored. */ - pos += entry->data[pos + 1] + 2; --- -2.23.0 - diff --git a/0227-font-Do-not-load-more-than-one-NAME-section.patch b/0227-font-Do-not-load-more-than-one-NAME-section.patch deleted file mode 100644 index c80d43b..0000000 --- a/0227-font-Do-not-load-more-than-one-NAME-section.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 7c1e10c986d1c4b50146f03f58c1aece2aa0bdbe Mon Sep 17 00:00:00 2001 -From: Daniel Kiper -Date: Tue, 7 Jul 2020 15:36:26 +0200 -Subject: [PATCH 07/27] font: Do not load more than one NAME section - -The GRUB font file can have one NAME section only. Though if somebody -crafts a broken font file with many NAME sections and loads it then the -GRUB leaks memory. So, prevent against that by loading first NAME -section and failing in controlled way on following one. - -Reported-by: Chris Coulson -Signed-off-by: Daniel Kiper -Reviewed-by: Jan Setje-Eilers ---- - grub-core/font/font.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/grub-core/font/font.c b/grub-core/font/font.c -index 5edb477..d09bb38 100644 ---- a/grub-core/font/font.c -+++ b/grub-core/font/font.c -@@ -532,6 +532,12 @@ grub_font_load (const char *filename) - if (grub_memcmp (section.name, FONT_FORMAT_SECTION_NAMES_FONT_NAME, - sizeof (FONT_FORMAT_SECTION_NAMES_FONT_NAME) - 1) == 0) - { -+ if (font->name != NULL) -+ { -+ grub_error (GRUB_ERR_BAD_FONT, "invalid font file: too many NAME sections"); -+ goto fail; -+ } -+ - font->name = read_section_as_string (§ion); - if (!font->name) - goto fail; --- -2.23.0 - diff --git a/0228-gfxmenu-Fix-double-free-in-load_image.patch b/0228-gfxmenu-Fix-double-free-in-load_image.patch deleted file mode 100644 index 7170aca..0000000 --- a/0228-gfxmenu-Fix-double-free-in-load_image.patch +++ /dev/null @@ -1,35 +0,0 @@ -From a2e9386cbca0aeb951badd992a1fc3634c348877 Mon Sep 17 00:00:00 2001 -From: Alexey Makhalov -Date: Wed, 8 Jul 2020 20:41:56 +0000 -Subject: [PATCH 08/27] gfxmenu: Fix double free in load_image() - -self->bitmap should be zeroed after free. Otherwise, there is a chance -to double free (USE_AFTER_FREE) it later in rescale_image(). - -Fixes: CID 292472 - -Signed-off-by: Alexey Makhalov -Reviewed-by: Daniel Kiper ---- - grub-core/gfxmenu/gui_image.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/grub-core/gfxmenu/gui_image.c b/grub-core/gfxmenu/gui_image.c -index 29784ed..6b2e976 100644 ---- a/grub-core/gfxmenu/gui_image.c -+++ b/grub-core/gfxmenu/gui_image.c -@@ -195,7 +195,10 @@ load_image (grub_gui_image_t self, const char *path) - return grub_errno; - - if (self->bitmap && (self->bitmap != self->raw_bitmap)) -- grub_video_bitmap_destroy (self->bitmap); -+ { -+ grub_video_bitmap_destroy (self->bitmap); -+ self->bitmap = 0; -+ } - if (self->raw_bitmap) - grub_video_bitmap_destroy (self->raw_bitmap); - --- -2.23.0 - diff --git a/0229-xnu-Fix-double-free-in-grub_xnu_devprop_add_property.patch b/0229-xnu-Fix-double-free-in-grub_xnu_devprop_add_property.patch deleted file mode 100644 index 6a80f6e..0000000 --- a/0229-xnu-Fix-double-free-in-grub_xnu_devprop_add_property.patch +++ /dev/null @@ -1,54 +0,0 @@ -From d7bdee0e38c93b4c49281f5ca79d416bab6eb3ce Mon Sep 17 00:00:00 2001 -From: Alexey Makhalov -Date: Wed, 8 Jul 2020 21:30:43 +0000 -Subject: [PATCH 09/27] xnu: Fix double free in grub_xnu_devprop_add_property() - -grub_xnu_devprop_add_property() should not free utf8 and utf16 as it get -allocated and freed in the caller. - -Minor improvement: do prop fields initialization after memory allocations. - -Fixes: CID 292442, CID 292457, CID 292460, CID 292466 - -Signed-off-by: Alexey Makhalov -Reviewed-by: Daniel Kiper ---- - grub-core/loader/i386/xnu.c | 17 ++++++++--------- - 1 file changed, 8 insertions(+), 9 deletions(-) - -diff --git a/grub-core/loader/i386/xnu.c b/grub-core/loader/i386/xnu.c -index b7d176b..e9e1192 100644 ---- a/grub-core/loader/i386/xnu.c -+++ b/grub-core/loader/i386/xnu.c -@@ -262,20 +262,19 @@ grub_xnu_devprop_add_property (struct grub_xnu_devprop_device_descriptor *dev, - if (!prop) - return grub_errno; - -- prop->name = utf8; -- prop->name16 = utf16; -- prop->name16len = utf16len; -- -- prop->length = datalen; -- prop->data = grub_malloc (prop->length); -+ prop->data = grub_malloc (datalen); - if (!prop->data) - { -- grub_free (prop->name); -- grub_free (prop->name16); - grub_free (prop); - return grub_errno; - } -- grub_memcpy (prop->data, data, prop->length); -+ grub_memcpy (prop->data, data, datalen); -+ -+ prop->name = utf8; -+ prop->name16 = utf16; -+ prop->name16len = utf16len; -+ prop->length = datalen; -+ - grub_list_push (GRUB_AS_LIST_P (&dev->properties), - GRUB_AS_LIST (prop)); - return GRUB_ERR_NONE; --- -2.23.0 - diff --git a/0230-lzma-Make-sure-we-don-t-dereference-past-array.patch b/0230-lzma-Make-sure-we-don-t-dereference-past-array.patch deleted file mode 100644 index 74f4f2a..0000000 --- a/0230-lzma-Make-sure-we-don-t-dereference-past-array.patch +++ /dev/null @@ -1,51 +0,0 @@ -From a2fd8fe73250d5a6ebe7e1b9dc31df6ecbcdfc8f Mon Sep 17 00:00:00 2001 -From: Konrad Rzeszutek Wilk -Date: Thu, 9 Jul 2020 03:05:23 +0000 -Subject: [PATCH 10/27] lzma: Make sure we don't dereference past array - -The two dimensional array p->posSlotEncoder[4][64] is being dereferenced -using the GetLenToPosState() macro which checks if len is less than 5, -and if so subtracts 2 from it. If len = 0, that is 0 - 2 = 4294967294. -Obviously we don't want to dereference that far out so we check if the -position found is greater or equal kNumLenToPosStates (4) and bail out. - -N.B.: Upstream LZMA 18.05 and later has this function completely rewritten -without any history. - -Fixes: CID 51526 - -Signed-off-by: Konrad Rzeszutek Wilk -Reviewed-by: Daniel Kiper ---- - grub-core/lib/LzmaEnc.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/grub-core/lib/LzmaEnc.c b/grub-core/lib/LzmaEnc.c -index f2ec04a..753e56a 100644 ---- a/grub-core/lib/LzmaEnc.c -+++ b/grub-core/lib/LzmaEnc.c -@@ -1877,13 +1877,19 @@ static SRes LzmaEnc_CodeOneBlock(CLzmaEnc *p, Bool useLimits, UInt32 maxPackSize - } - else - { -- UInt32 posSlot; -+ UInt32 posSlot, lenToPosState; - RangeEnc_EncodeBit(&p->rc, &p->isRep[p->state], 0); - p->state = kMatchNextStates[p->state]; - LenEnc_Encode2(&p->lenEnc, &p->rc, len - LZMA_MATCH_LEN_MIN, posState, !p->fastMode, p->ProbPrices); - pos -= LZMA_NUM_REPS; - GetPosSlot(pos, posSlot); -- RcTree_Encode(&p->rc, p->posSlotEncoder[GetLenToPosState(len)], kNumPosSlotBits, posSlot); -+ lenToPosState = GetLenToPosState(len); -+ if (lenToPosState >= kNumLenToPosStates) -+ { -+ p->result = SZ_ERROR_DATA; -+ return CheckErrors(p); -+ } -+ RcTree_Encode(&p->rc, p->posSlotEncoder[lenToPosState], kNumPosSlotBits, posSlot); - - if (posSlot >= kStartPosModelIndex) - { --- -2.23.0 - diff --git a/0231-term-Fix-overflow-on-user-inputs.patch b/0231-term-Fix-overflow-on-user-inputs.patch deleted file mode 100644 index 90def34..0000000 --- a/0231-term-Fix-overflow-on-user-inputs.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 8054c31c62c4caf5a8767c0e4c8ce09219b8ec6e Mon Sep 17 00:00:00 2001 -From: Konrad Rzeszutek Wilk -Date: Tue, 7 Jul 2020 15:12:25 -0400 -Subject: [PATCH 11/27] term: Fix overflow on user inputs - -This requires a very weird input from the serial interface but can cause -an overflow in input_buf (keys) overwriting the next variable (npending) -with the user choice: - -(pahole output) - -struct grub_terminfo_input_state { - int input_buf[6]; /* 0 24 */ - int npending; /* 24 4 */ <- CORRUPT - ...snip... - -The magic string requires causing this is "ESC,O,],0,1,2,q" and we overflow -npending with "q" (aka increase npending to 161). The simplest fix is to -just to disallow overwrites input_buf, which exactly what this patch does. - -Fixes: CID 292449 - -Signed-off-by: Konrad Rzeszutek Wilk -Reviewed-by: Daniel Kiper ---- - grub-core/term/terminfo.c | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git a/grub-core/term/terminfo.c b/grub-core/term/terminfo.c -index 537a5c0..44d0b3b 100644 ---- a/grub-core/term/terminfo.c -+++ b/grub-core/term/terminfo.c -@@ -398,7 +398,7 @@ grub_terminfo_getwh (struct grub_term_output *term) - } - - static void --grub_terminfo_readkey (struct grub_term_input *term, int *keys, int *len, -+grub_terminfo_readkey (struct grub_term_input *term, int *keys, int *len, int max_len, - int (*readkey) (struct grub_term_input *term)) - { - int c; -@@ -414,6 +414,9 @@ grub_terminfo_readkey (struct grub_term_input *term, int *keys, int *len, - if (c == -1) \ - return; \ - \ -+ if (*len >= max_len) \ -+ return; \ -+ \ - keys[*len] = c; \ - (*len)++; \ - } -@@ -602,8 +605,8 @@ grub_terminfo_getkey (struct grub_term_input *termi) - return ret; - } - -- grub_terminfo_readkey (termi, data->input_buf, -- &data->npending, data->readkey); -+ grub_terminfo_readkey (termi, data->input_buf, &data->npending, -+ GRUB_TERMINFO_READKEY_MAX_LEN, data->readkey); - - #if defined(__powerpc__) && defined(GRUB_MACHINE_IEEE1275) - if (data->npending == 1 && data->input_buf[0] == GRUB_TERM_ESC --- -2.23.0 - diff --git a/0232-udf-Fix-memory-leak.patch b/0232-udf-Fix-memory-leak.patch deleted file mode 100644 index 2a74369..0000000 --- a/0232-udf-Fix-memory-leak.patch +++ /dev/null @@ -1,55 +0,0 @@ -From ba6a43c85d73196ed00ba662a4d310c310540864 Mon Sep 17 00:00:00 2001 -From: Konrad Rzeszutek Wilk -Date: Tue, 7 Jul 2020 22:02:31 -0400 -Subject: [PATCH 12/27] udf: Fix memory leak - -Fixes: CID 73796 - -Signed-off-by: Konrad Rzeszutek Wilk -Reviewed-by: Daniel Kiper -Reviewed-by: Jan Setje-Eilers ---- - grub-core/fs/udf.c | 17 +++++++++++++---- - 1 file changed, 13 insertions(+), 4 deletions(-) - -diff --git a/grub-core/fs/udf.c b/grub-core/fs/udf.c -index 21ac7f4..2ac5c1d 100644 ---- a/grub-core/fs/udf.c -+++ b/grub-core/fs/udf.c -@@ -965,8 +965,10 @@ grub_udf_iterate_dir (grub_fshelp_node_t dir, - return 0; - - if (grub_udf_read_icb (dir->data, &dirent.icb, child)) -- return 0; -- -+ { -+ grub_free (child); -+ return 0; -+ } - if (dirent.characteristics & GRUB_UDF_FID_CHAR_PARENT) - { - /* This is the parent directory. */ -@@ -988,11 +990,18 @@ grub_udf_iterate_dir (grub_fshelp_node_t dir, - dirent.file_ident_length, - (char *) raw)) - != dirent.file_ident_length) -- return 0; -+ { -+ grub_free (child); -+ return 0; -+ } - - filename = read_string (raw, dirent.file_ident_length, 0); - if (!filename) -- grub_print_error (); -+ { -+ /* As the hook won't get called. */ -+ grub_free (child); -+ grub_print_error (); -+ } - - if (filename && hook (filename, type, child, hook_data)) - { --- -2.23.0 - diff --git a/0233-multiboot2-Fix-memory-leak-if-grub_create_loader_cmd.patch b/0233-multiboot2-Fix-memory-leak-if-grub_create_loader_cmd.patch deleted file mode 100644 index c53f981..0000000 --- a/0233-multiboot2-Fix-memory-leak-if-grub_create_loader_cmd.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 1eebc205991aeb48f5d88acaac3833ad527b1fb1 Mon Sep 17 00:00:00 2001 -From: Konrad Rzeszutek Wilk -Date: Fri, 26 Jun 2020 10:51:43 -0400 -Subject: [PATCH 13/27] multiboot2: Fix memory leak if - grub_create_loader_cmdline() fails - -Fixes: CID 292468 - -Signed-off-by: Konrad Rzeszutek Wilk -Reviewed-by: Daniel Kiper ---- - grub-core/loader/multiboot_mbi2.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/grub-core/loader/multiboot_mbi2.c b/grub-core/loader/multiboot_mbi2.c -index 53da786..0efc660 100644 ---- a/grub-core/loader/multiboot_mbi2.c -+++ b/grub-core/loader/multiboot_mbi2.c -@@ -1070,7 +1070,11 @@ grub_multiboot2_add_module (grub_addr_t start, grub_size_t size, - err = grub_create_loader_cmdline (argc, argv, newmod->cmdline, - newmod->cmdline_size, GRUB_VERIFY_MODULE_CMDLINE); - if (err) -- return err; -+ { -+ grub_free (newmod->cmdline); -+ grub_free (newmod); -+ return err; -+ } - - if (modules_last) - modules_last->next = newmod; --- -2.23.0 - diff --git a/0234-tftp-Do-not-use-priority-queue.patch b/0234-tftp-Do-not-use-priority-queue.patch deleted file mode 100644 index da00b10..0000000 --- a/0234-tftp-Do-not-use-priority-queue.patch +++ /dev/null @@ -1,284 +0,0 @@ -From 781b3e5efc35c17cbce95393aafd63a5b429f9e6 Mon Sep 17 00:00:00 2001 -From: Alexey Makhalov -Date: Thu, 9 Jul 2020 08:10:40 +0000 -Subject: [PATCH 14/27] tftp: Do not use priority queue - -There is not need to reassemble the order of blocks. Per RFC 1350, -server must wait for the ACK, before sending next block. Data packets -can be served immediately without putting them to priority queue. - -Logic to handle incoming packet is this: - - if packet block id equal to expected block id, then - process the packet, - - if packet block id is less than expected - this is retransmit - of old packet, then ACK it and drop the packet, - - if packet block id is more than expected - that shouldn't - happen, just drop the packet. - -It makes the tftp receive path code simpler, smaller and faster. -As a benefit, this change fixes CID# 73624 and CID# 96690, caused -by following while loop: - - while (cmp_block (grub_be_to_cpu16 (tftph->u.data.block), data->block + 1) == 0) - -where tftph pointer is not moving from one iteration to another, causing -to serve same packet again. Luckily, double serving didn't happen due to -data->block++ during the first iteration. - -Fixes: CID 73624, CID 96690 - -Signed-off-by: Alexey Makhalov -Reviewed-by: Daniel Kiper ---- ---- - grub-core/net/tftp.c | 168 ++++++++++++++----------------------------- - 1 file changed, 53 insertions(+), 115 deletions(-) - -diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c -index e267af3..c2df3d7 100644 ---- a/grub-core/net/tftp.c -+++ b/grub-core/net/tftp.c -@@ -25,7 +25,6 @@ - #include - #include - #include --#include - #include - - GRUB_MOD_LICENSE ("GPLv3+"); -@@ -106,31 +105,8 @@ typedef struct tftp_data - int have_oack; - struct grub_error_saved save_err; - grub_net_udp_socket_t sock; -- grub_priority_queue_t pq; - } *tftp_data_t; - --static int --cmp_block (grub_uint16_t a, grub_uint16_t b) --{ -- grub_int16_t i = (grub_int16_t) (a - b); -- if (i > 0) -- return +1; -- if (i < 0) -- return -1; -- return 0; --} -- --static int --cmp (const void *a__, const void *b__) --{ -- struct grub_net_buff *a_ = *(struct grub_net_buff **) a__; -- struct grub_net_buff *b_ = *(struct grub_net_buff **) b__; -- struct tftphdr *a = (struct tftphdr *) a_->data; -- struct tftphdr *b = (struct tftphdr *) b_->data; -- /* We want the first elements to be on top. */ -- return -cmp_block (grub_be_to_cpu16 (a->u.data.block), grub_be_to_cpu16 (b->u.data.block)); --} -- - static grub_err_t - ack (tftp_data_t data, grub_uint64_t block) - { -@@ -207,73 +183,60 @@ tftp_receive (grub_net_udp_socket_t sock __attribute__ ((unused)), - return GRUB_ERR_NONE; - } - -- err = grub_priority_queue_push (data->pq, &nb); -- if (err) -- return err; -- -- { -- struct grub_net_buff **nb_top_p, *nb_top; -- while (1) -- { -- nb_top_p = grub_priority_queue_top (data->pq); -- if (!nb_top_p) -- return GRUB_ERR_NONE; -- nb_top = *nb_top_p; -- tftph = (struct tftphdr *) nb_top->data; -- if (cmp_block (grub_be_to_cpu16 (tftph->u.data.block), data->block + 1) >= 0) -- break; -- ack (data, grub_be_to_cpu16 (tftph->u.data.block)); -- grub_netbuff_free (nb_top); -- grub_priority_queue_pop (data->pq); -- } -- while (cmp_block (grub_be_to_cpu16 (tftph->u.data.block), data->block + 1) == 0) -- { -- unsigned size; -- -- grub_priority_queue_pop (data->pq); -- -- if (file->device->net->packs.count < 50) -+ /* Ack old/retransmitted block. */ -+ if (grub_be_to_cpu16 (tftph->u.data.block) < data->block + 1) -+ ack (data, grub_be_to_cpu16 (tftph->u.data.block)); -+ /* Ignore unexpected block. */ -+ else if (grub_be_to_cpu16 (tftph->u.data.block) > data->block + 1) -+ grub_dprintf ("tftp", "TFTP unexpected block # %d\n", tftph->u.data.block); -+ else -+ { -+ unsigned size; -+ -+ if (file->device->net->packs.count < 50) -+ { - err = ack (data, data->block + 1); -- else -- { -- file->device->net->stall = 1; -- err = 0; -- } -- if (err) -- return err; -- -- err = grub_netbuff_pull (nb_top, sizeof (tftph->opcode) + -- sizeof (tftph->u.data.block)); -- if (err) -- return err; -- size = nb_top->tail - nb_top->data; -- -- data->block++; -- if (size < data->block_size) -- { -- if (data->ack_sent < data->block) -- ack (data, data->block); -- file->device->net->eof = 1; -- file->device->net->stall = 1; -- grub_net_udp_close (data->sock); -- data->sock = NULL; -- } -- /* Prevent garbage in broken cards. Is it still necessary -- given that IP implementation has been fixed? -- */ -- if (size > data->block_size) -- { -- err = grub_netbuff_unput (nb_top, size - data->block_size); -- if (err) -- return err; -- } -- /* If there is data, puts packet in socket list. */ -- if ((nb_top->tail - nb_top->data) > 0) -- grub_net_put_packet (&file->device->net->packs, nb_top); -- else -- grub_netbuff_free (nb_top); -- } -- } -+ if (err) -+ return err; -+ } -+ else -+ file->device->net->stall = 1; -+ -+ err = grub_netbuff_pull (nb, sizeof (tftph->opcode) + -+ sizeof (tftph->u.data.block)); -+ if (err) -+ return err; -+ size = nb->tail - nb->data; -+ -+ data->block++; -+ if (size < data->block_size) -+ { -+ if (data->ack_sent < data->block) -+ ack (data, data->block); -+ file->device->net->eof = 1; -+ file->device->net->stall = 1; -+ grub_net_udp_close (data->sock); -+ data->sock = NULL; -+ } -+ /* -+ * Prevent garbage in broken cards. Is it still necessary -+ * given that IP implementation has been fixed? -+ */ -+ if (size > data->block_size) -+ { -+ err = grub_netbuff_unput (nb, size - data->block_size); -+ if (err) -+ return err; -+ } -+ /* If there is data, puts packet in socket list. */ -+ if ((nb->tail - nb->data) > 0) -+ { -+ grub_net_put_packet (&file->device->net->packs, nb); -+ /* Do not free nb. */ -+ return GRUB_ERR_NONE; -+ } -+ } -+ grub_netbuff_free (nb); - return GRUB_ERR_NONE; - case TFTP_ERROR: - data->have_oack = 1; -@@ -287,19 +250,6 @@ tftp_receive (grub_net_udp_socket_t sock __attribute__ ((unused)), - } - } - --static void --destroy_pq (tftp_data_t data) --{ -- struct grub_net_buff **nb_p; -- while ((nb_p = grub_priority_queue_top (data->pq))) -- { -- grub_netbuff_free (*nb_p); -- grub_priority_queue_pop (data->pq); -- } -- -- grub_priority_queue_destroy (data->pq); --} -- - /* Create a normalized copy of the filename. - Compress any string of consecutive forward slashes to a single forward - slash. */ -@@ -395,13 +345,6 @@ tftp_open (struct grub_file *file, const char *filename) - file->not_easily_seekable = 1; - file->data = data; - -- data->pq = grub_priority_queue_new (sizeof (struct grub_net_buff *), cmp); -- if (!data->pq) -- { -- grub_free (data); -- return grub_errno; -- } -- - grub_dprintf("tftp", "resolving address for %s\n", file->device->net->server); - err = grub_net_resolve_address (file->device->net->server, &addr); - if (err) -@@ -410,7 +353,6 @@ tftp_open (struct grub_file *file, const char *filename) - grub_dprintf ("tftp", "file_size is %llu, block_size is %llu\n", - (unsigned long long)data->file_size, - (unsigned long long)data->block_size); -- destroy_pq (data); - grub_free (data); - return err; - } -@@ -422,7 +364,6 @@ tftp_open (struct grub_file *file, const char *filename) - if (!data->sock) - { - grub_dprintf("tftp", "connection failed\n"); -- destroy_pq (data); - grub_free (data); - return grub_errno; - } -@@ -436,7 +377,6 @@ tftp_open (struct grub_file *file, const char *filename) - if (err) - { - grub_net_udp_close (data->sock); -- destroy_pq (data); - grub_free (data); - return err; - } -@@ -453,7 +393,6 @@ tftp_open (struct grub_file *file, const char *filename) - if (grub_errno) - { - grub_net_udp_close (data->sock); -- destroy_pq (data); - grub_free (data); - return grub_errno; - } -@@ -496,7 +435,6 @@ tftp_close (struct grub_file *file) - grub_print_error (); - grub_net_udp_close (data->sock); - } -- destroy_pq (data); - grub_free (data); - return GRUB_ERR_NONE; - } --- -2.23.0 - diff --git a/0235-relocator-Protect-grub_relocator_alloc_chunk_addr-in.patch b/0235-relocator-Protect-grub_relocator_alloc_chunk_addr-in.patch deleted file mode 100644 index a1a42cf..0000000 --- a/0235-relocator-Protect-grub_relocator_alloc_chunk_addr-in.patch +++ /dev/null @@ -1,149 +0,0 @@ -From caea56d1f8fa1ae298936f8d75b220e7f12b73d3 Mon Sep 17 00:00:00 2001 -From: Alexey Makhalov -Date: Wed, 15 Jul 2020 06:42:37 +0000 -Subject: [PATCH 15/27] relocator: Protect grub_relocator_alloc_chunk_addr() - input args against integer underflow/overflow - -Use arithmetic macros from safemath.h to accomplish it. In this commit, -I didn't want to be too paranoid to check every possible math equation -for overflow/underflow. Only obvious places (with non zero chance of -overflow/underflow) were refactored. - -Signed-off-by: Alexey Makhalov -Reviewed-by: Daniel Kiper ---- - grub-core/loader/i386/linux.c | 9 +++++++-- - grub-core/loader/i386/pc/linux.c | 9 +++++++-- - grub-core/loader/i386/xen.c | 12 ++++++++++-- - grub-core/loader/xnu.c | 11 +++++++---- - 4 files changed, 31 insertions(+), 10 deletions(-) - -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index 201e659..90f2315 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -37,6 +37,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -548,9 +549,13 @@ grub_linux_boot (void) - - { - grub_relocator_chunk_t ch; -+ grub_size_t sz; -+ -+ if (grub_add (ctx.real_size, efi_mmap_size, &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ - err = grub_relocator_alloc_chunk_addr (relocator, &ch, -- ctx.real_mode_target, -- (ctx.real_size + efi_mmap_size)); -+ ctx.real_mode_target, sz); - if (err) - return err; - real_mode_mem = get_virtual_current_address (ch); -diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c -index 0bf0e13..33d1196 100644 ---- a/grub-core/loader/i386/pc/linux.c -+++ b/grub-core/loader/i386/pc/linux.c -@@ -36,6 +36,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -231,8 +232,12 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - setup_sects = GRUB_LINUX_DEFAULT_SETUP_SECTS; - - real_size = setup_sects << GRUB_DISK_SECTOR_BITS; -- grub_linux16_prot_size = grub_file_size (file) -- - real_size - GRUB_DISK_SECTOR_SIZE; -+ if (grub_sub (grub_file_size (file), real_size, &grub_linux16_prot_size) || -+ grub_sub (grub_linux16_prot_size, GRUB_DISK_SECTOR_SIZE, &grub_linux16_prot_size)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ goto fail; -+ } - - if (! grub_linux_is_bzimage - && GRUB_LINUX_ZIMAGE_ADDR + grub_linux16_prot_size -diff --git a/grub-core/loader/i386/xen.c b/grub-core/loader/i386/xen.c -index 8f662c8..cd24874 100644 ---- a/grub-core/loader/i386/xen.c -+++ b/grub-core/loader/i386/xen.c -@@ -41,6 +41,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -636,6 +637,7 @@ grub_cmd_xen (grub_command_t cmd __attribute__ ((unused)), - grub_relocator_chunk_t ch; - grub_addr_t kern_start; - grub_addr_t kern_end; -+ grub_size_t sz; - - if (argc == 0) - return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -@@ -703,8 +705,14 @@ grub_cmd_xen (grub_command_t cmd __attribute__ ((unused)), - - xen_state.max_addr = ALIGN_UP (kern_end, PAGE_SIZE); - -- err = grub_relocator_alloc_chunk_addr (xen_state.relocator, &ch, kern_start, -- kern_end - kern_start); -+ -+ if (grub_sub (kern_end, kern_start, &sz)) -+ { -+ err = GRUB_ERR_OUT_OF_RANGE; -+ goto fail; -+ } -+ -+ err = grub_relocator_alloc_chunk_addr (xen_state.relocator, &ch, kern_start, sz); - if (err) - goto fail; - kern_chunk_src = get_virtual_current_address (ch); -diff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c -index 2f0ebd0..3fd6539 100644 ---- a/grub-core/loader/xnu.c -+++ b/grub-core/loader/xnu.c -@@ -35,6 +35,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -60,15 +61,17 @@ grub_xnu_heap_malloc (int size, void **src, grub_addr_t *target) - { - grub_err_t err; - grub_relocator_chunk_t ch; -+ grub_addr_t tgt; -+ -+ if (grub_add (grub_xnu_heap_target_start, grub_xnu_heap_size, &tgt)) -+ return GRUB_ERR_OUT_OF_RANGE; - -- err = grub_relocator_alloc_chunk_addr (grub_xnu_relocator, &ch, -- grub_xnu_heap_target_start -- + grub_xnu_heap_size, size); -+ err = grub_relocator_alloc_chunk_addr (grub_xnu_relocator, &ch, tgt, size); - if (err) - return err; - - *src = get_virtual_current_address (ch); -- *target = grub_xnu_heap_target_start + grub_xnu_heap_size; -+ *target = tgt; - grub_xnu_heap_size += size; - grub_dprintf ("xnu", "val=%p\n", *src); - return GRUB_ERR_NONE; --- -2.23.0 - diff --git a/0236-multiboot2-Set-min-address-for-mbi-allocation-to-0x1.patch b/0236-multiboot2-Set-min-address-for-mbi-allocation-to-0x1.patch deleted file mode 100644 index ba498f8..0000000 --- a/0236-multiboot2-Set-min-address-for-mbi-allocation-to-0x1.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 0f3f5b7c13fa9b677a64cf11f20eca0f850a2b20 Mon Sep 17 00:00:00 2001 -From: Lukasz Hawrylko -Date: Mon, 16 Dec 2019 11:15:55 +0100 -Subject: [PATCH] multiboot2: Set min address for mbi allocation to 0x1000 - -Subject: [PATCH 16/27] multiboot2: Set min address for mbi allocation to - 0x1000 - -In some cases GRUB2 allocates multiboot2 structure at 0 address, that is -a confusing behavior. Consumers of that structure can have internal NULL-checks -that will throw an error when get a pointer to data allocated at address 0. -To prevent that, define min address for mbi allocation on x86 and x86_64 -platforms. - -Signed-off-by: Lukasz Hawrylko -Reviewed-by: Daniel Kiper ---- - grub-core/loader/multiboot_mbi2.c | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/grub-core/loader/multiboot_mbi2.c b/grub-core/loader/multiboot_mbi2.c -index 0efc660..e88c9f4 100644 ---- a/grub-core/loader/multiboot_mbi2.c -+++ b/grub-core/loader/multiboot_mbi2.c -@@ -48,6 +48,12 @@ - #define HAS_VGA_TEXT 0 - #endif - -+#if defined (__i386__) || defined (__x86_64__) -+#define MBI_MIN_ADDR 0x1000 -+#else -+#define MBI_MIN_ADDR 0 -+#endif -+ - struct module - { - struct module *next; -@@ -708,7 +714,7 @@ grub_multiboot2_make_mbi (grub_uint32_t *target) - COMPILE_TIME_ASSERT (MULTIBOOT_TAG_ALIGN % sizeof (grub_properly_aligned_t) == 0); - - err = grub_relocator_alloc_chunk_align (grub_multiboot2_relocator, &ch, -- 0, 0xffffffff - bufsize, -+ MBI_MIN_ADDR, 0xffffffff - bufsize, - bufsize, MULTIBOOT_TAG_ALIGN, - GRUB_RELOCATOR_PREFERENCE_NONE, 1); - if (err) --- -2.23.0 - diff --git a/0237-relocator-Protect-grub_relocator_alloc_chunk_align-m.patch b/0237-relocator-Protect-grub_relocator_alloc_chunk_align-m.patch deleted file mode 100644 index 2106575..0000000 --- a/0237-relocator-Protect-grub_relocator_alloc_chunk_align-m.patch +++ /dev/null @@ -1,334 +0,0 @@ -From 61ff5602fe8f2a3446346795daebe4ec3b82c20f Mon Sep 17 00:00:00 2001 -From: Alexey Makhalov -Date: Wed, 8 Jul 2020 01:44:38 +0000 -Subject: [PATCH 17/27] relocator: Protect grub_relocator_alloc_chunk_align() - max_addr against integer underflow - -This commit introduces integer underflow mitigation in max_addr calculation -in grub_relocator_alloc_chunk_align() invocation. - -It consists of 2 fixes: - 1. Introduced grub_relocator_alloc_chunk_align_safe() wrapper function to perform - sanity check for min/max and size values, and to make safe invocation of - grub_relocator_alloc_chunk_align() with validated max_addr value. Replace all - invocations such as grub_relocator_alloc_chunk_align(..., min_addr, max_addr - size, size, ...) - by grub_relocator_alloc_chunk_align_safe(..., min_addr, max_addr, size, ...). - 2. Introduced UP_TO_TOP32(s) macro for the cases where max_addr is 32-bit top - address (0xffffffff - size + 1) or similar. ---- - grub-core/lib/i386/relocator.c | 28 ++++++++++---------------- - grub-core/lib/mips/relocator.c | 6 ++---- - grub-core/lib/powerpc/relocator.c | 6 ++---- - grub-core/lib/x86_64/efi/relocator.c | 7 +++---- - grub-core/loader/i386/linux.c | 5 ++--- - grub-core/loader/i386/multiboot_mbi.c | 7 +++---- - grub-core/loader/i386/pc/linux.c | 6 ++---- - grub-core/loader/mips/linux.c | 9 +++------ - grub-core/loader/multiboot.c | 2 +- - grub-core/loader/multiboot_elfxx.c | 10 ++++----- - grub-core/loader/multiboot_mbi2.c | 10 ++++----- - grub-core/loader/xnu_resume.c | 2 +- - include/grub/relocator.h | 29 +++++++++++++++++++++++++++ - 13 files changed, 69 insertions(+), 58 deletions(-) - -diff --git a/grub-core/lib/i386/relocator.c b/grub-core/lib/i386/relocator.c -index 71dd4f0..34cbe83 100644 ---- a/grub-core/lib/i386/relocator.c -+++ b/grub-core/lib/i386/relocator.c -@@ -83,11 +83,10 @@ grub_relocator32_boot (struct grub_relocator *rel, - /* Specific memory range due to Global Descriptor Table for use by payload - that we will store in returned chunk. The address range and preference - are based on "THE LINUX/x86 BOOT PROTOCOL" specification. */ -- err = grub_relocator_alloc_chunk_align (rel, &ch, 0x1000, -- 0x9a000 - RELOCATOR_SIZEOF (32), -- RELOCATOR_SIZEOF (32), 16, -- GRUB_RELOCATOR_PREFERENCE_LOW, -- avoid_efi_bootservices); -+ err = grub_relocator_alloc_chunk_align_safe (rel, &ch, 0x1000, 0x9a000, -+ RELOCATOR_SIZEOF (32), 16, -+ GRUB_RELOCATOR_PREFERENCE_LOW, -+ avoid_efi_bootservices); - if (err) - return err; - -@@ -125,13 +124,10 @@ grub_relocator16_boot (struct grub_relocator *rel, - grub_relocator_chunk_t ch; - - /* Put it higher than the byte it checks for A20 check. */ -- err = grub_relocator_alloc_chunk_align (rel, &ch, 0x8010, -- 0xa0000 - RELOCATOR_SIZEOF (16) -- - GRUB_RELOCATOR16_STACK_SIZE, -- RELOCATOR_SIZEOF (16) -- + GRUB_RELOCATOR16_STACK_SIZE, 16, -- GRUB_RELOCATOR_PREFERENCE_NONE, -- 0); -+ err = grub_relocator_alloc_chunk_align_safe (rel, &ch, 0x8010, 0xa0000, -+ RELOCATOR_SIZEOF (16) + -+ GRUB_RELOCATOR16_STACK_SIZE, 16, -+ GRUB_RELOCATOR_PREFERENCE_NONE, 0); - if (err) - return err; - -@@ -183,11 +179,9 @@ grub_relocator64_boot (struct grub_relocator *rel, - void *relst; - grub_relocator_chunk_t ch; - -- err = grub_relocator_alloc_chunk_align (rel, &ch, min_addr, -- max_addr - RELOCATOR_SIZEOF (64), -- RELOCATOR_SIZEOF (64), 16, -- GRUB_RELOCATOR_PREFERENCE_NONE, -- 0); -+ err = grub_relocator_alloc_chunk_align_safe (rel, &ch, min_addr, max_addr, -+ RELOCATOR_SIZEOF (64), 16, -+ GRUB_RELOCATOR_PREFERENCE_NONE, 0); - if (err) - return err; - -diff --git a/grub-core/lib/mips/relocator.c b/grub-core/lib/mips/relocator.c -index 9d5f49c..743b213 100644 ---- a/grub-core/lib/mips/relocator.c -+++ b/grub-core/lib/mips/relocator.c -@@ -120,10 +120,8 @@ grub_relocator32_boot (struct grub_relocator *rel, - unsigned i; - grub_addr_t vtarget; - -- err = grub_relocator_alloc_chunk_align (rel, &ch, 0, -- (0xffffffff - stateset_size) -- + 1, stateset_size, -- sizeof (grub_uint32_t), -+ err = grub_relocator_alloc_chunk_align (rel, &ch, 0, UP_TO_TOP32 (stateset_size), -+ stateset_size, sizeof (grub_uint32_t), - GRUB_RELOCATOR_PREFERENCE_NONE, 0); - if (err) - return err; -diff --git a/grub-core/lib/powerpc/relocator.c b/grub-core/lib/powerpc/relocator.c -index bdf2b11..8ffb8b6 100644 ---- a/grub-core/lib/powerpc/relocator.c -+++ b/grub-core/lib/powerpc/relocator.c -@@ -115,10 +115,8 @@ grub_relocator32_boot (struct grub_relocator *rel, - unsigned i; - grub_relocator_chunk_t ch; - -- err = grub_relocator_alloc_chunk_align (rel, &ch, 0, -- (0xffffffff - stateset_size) -- + 1, stateset_size, -- sizeof (grub_uint32_t), -+ err = grub_relocator_alloc_chunk_align (rel, &ch, 0, UP_TO_TOP32 (stateset_size), -+ stateset_size, sizeof (grub_uint32_t), - GRUB_RELOCATOR_PREFERENCE_NONE, 0); - if (err) - return err; -diff --git a/grub-core/lib/x86_64/efi/relocator.c b/grub-core/lib/x86_64/efi/relocator.c -index 3caef7a..7d200a1 100644 ---- a/grub-core/lib/x86_64/efi/relocator.c -+++ b/grub-core/lib/x86_64/efi/relocator.c -@@ -50,10 +50,9 @@ grub_relocator64_efi_boot (struct grub_relocator *rel, - * 64-bit relocator code may live above 4 GiB quite well. - * However, I do not want ask for problems. Just in case. - */ -- err = grub_relocator_alloc_chunk_align (rel, &ch, 0, -- 0x100000000 - RELOCATOR_SIZEOF (64_efi), -- RELOCATOR_SIZEOF (64_efi), 16, -- GRUB_RELOCATOR_PREFERENCE_NONE, 1); -+ err = grub_relocator_alloc_chunk_align_safe (rel, &ch, 0, 0x100000000, -+ RELOCATOR_SIZEOF (64_efi), 16, -+ GRUB_RELOCATOR_PREFERENCE_NONE, 1); - if (err) - return err; - -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index 90f2315..7d0c987 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -182,9 +182,8 @@ allocate_pages (grub_size_t prot_size, grub_size_t *align, - for (; err && *align + 1 > min_align; (*align)--) - { - grub_errno = GRUB_ERR_NONE; -- err = grub_relocator_alloc_chunk_align (relocator, &ch, -- 0x1000000, -- 0xffffffff & ~prot_size, -+ err = grub_relocator_alloc_chunk_align (relocator, &ch, 0x1000000, -+ UP_TO_TOP32 (prot_size), - prot_size, 1 << *align, - GRUB_RELOCATOR_PREFERENCE_LOW, - 1); -diff --git a/grub-core/loader/i386/multiboot_mbi.c b/grub-core/loader/i386/multiboot_mbi.c -index ad3cc29..a67d9d0 100644 ---- a/grub-core/loader/i386/multiboot_mbi.c -+++ b/grub-core/loader/i386/multiboot_mbi.c -@@ -466,10 +466,9 @@ grub_multiboot_make_mbi (grub_uint32_t *target) - - bufsize = grub_multiboot_get_mbi_size (); - -- err = grub_relocator_alloc_chunk_align (grub_multiboot_relocator, &ch, -- 0x10000, 0xa0000 - bufsize, -- bufsize, 4, -- GRUB_RELOCATOR_PREFERENCE_NONE, 0); -+ err = grub_relocator_alloc_chunk_align_safe (grub_multiboot_relocator, &ch, -+ 0x10000, 0xa0000, bufsize, 4, -+ GRUB_RELOCATOR_PREFERENCE_NONE, 0); - if (err) - return err; - ptrorig = get_virtual_current_address (ch); -diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c -index 33d1196..f1ad185 100644 ---- a/grub-core/loader/i386/pc/linux.c -+++ b/grub-core/loader/i386/pc/linux.c -@@ -463,10 +463,8 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - - { - grub_relocator_chunk_t ch; -- err = grub_relocator_alloc_chunk_align (relocator, &ch, -- addr_min, addr_max - size, -- size, 0x1000, -- GRUB_RELOCATOR_PREFERENCE_HIGH, 0); -+ err = grub_relocator_alloc_chunk_align_safe (relocator, &ch, addr_min, addr_max, size, -+ 0x1000, GRUB_RELOCATOR_PREFERENCE_HIGH, 0); - if (err) - return err; - initrd_chunk = get_virtual_current_address (ch); -diff --git a/grub-core/loader/mips/linux.c b/grub-core/loader/mips/linux.c -index 7b723bf..e4ed959 100644 ---- a/grub-core/loader/mips/linux.c -+++ b/grub-core/loader/mips/linux.c -@@ -442,12 +442,9 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - { - grub_relocator_chunk_t ch; - -- err = grub_relocator_alloc_chunk_align (relocator, &ch, -- (target_addr & 0x1fffffff) -- + linux_size + 0x10000, -- (0x10000000 - size), -- size, 0x10000, -- GRUB_RELOCATOR_PREFERENCE_NONE, 0); -+ err = grub_relocator_alloc_chunk_align_safe (relocator, &ch, (target_addr & 0x1fffffff) + -+ linux_size + 0x10000, 0x10000000, size, -+ 0x10000, GRUB_RELOCATOR_PREFERENCE_NONE, 0); - - if (err) - goto fail; -diff --git a/grub-core/loader/multiboot.c b/grub-core/loader/multiboot.c -index 3e6ad16..3e28690 100644 ---- a/grub-core/loader/multiboot.c -+++ b/grub-core/loader/multiboot.c -@@ -404,7 +404,7 @@ grub_cmd_module (grub_command_t cmd __attribute__ ((unused)), - { - grub_relocator_chunk_t ch; - err = grub_relocator_alloc_chunk_align (GRUB_MULTIBOOT (relocator), &ch, -- lowest_addr, (0xffffffff - size) + 1, -+ lowest_addr, UP_TO_TOP32 (size), - size, MULTIBOOT_MOD_ALIGN, - GRUB_RELOCATOR_PREFERENCE_NONE, 1); - if (err) -diff --git a/grub-core/loader/multiboot_elfxx.c b/grub-core/loader/multiboot_elfxx.c -index cc68536..f2318e0 100644 ---- a/grub-core/loader/multiboot_elfxx.c -+++ b/grub-core/loader/multiboot_elfxx.c -@@ -109,10 +109,10 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) - if (load_size > mld->max_addr || mld->min_addr > mld->max_addr - load_size) - return grub_error (GRUB_ERR_BAD_OS, "invalid min/max address and/or load size"); - -- err = grub_relocator_alloc_chunk_align (GRUB_MULTIBOOT (relocator), &ch, -- mld->min_addr, mld->max_addr - load_size, -- load_size, mld->align ? mld->align : 1, -- mld->preference, mld->avoid_efi_boot_services); -+ err = grub_relocator_alloc_chunk_align_safe (GRUB_MULTIBOOT (relocator), &ch, -+ mld->min_addr, mld->max_addr, -+ load_size, mld->align ? mld->align : 1, -+ mld->preference, mld->avoid_efi_boot_services); - - if (err) - { -@@ -256,7 +256,7 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) - continue; - - err = grub_relocator_alloc_chunk_align (GRUB_MULTIBOOT (relocator), &ch, 0, -- (0xffffffff - sh->sh_size) + 1, -+ UP_TO_TOP32 (sh->sh_size), - sh->sh_size, sh->sh_addralign, - GRUB_RELOCATOR_PREFERENCE_NONE, - mld->avoid_efi_boot_services); -diff --git a/grub-core/loader/multiboot_mbi2.c b/grub-core/loader/multiboot_mbi2.c -index e88c9f4..9a943d7 100644 ---- a/grub-core/loader/multiboot_mbi2.c -+++ b/grub-core/loader/multiboot_mbi2.c -@@ -301,10 +301,10 @@ grub_multiboot2_load (grub_file_t file, const char *filename) - return grub_error (GRUB_ERR_BAD_OS, "invalid min/max address and/or load size"); - } - -- err = grub_relocator_alloc_chunk_align (grub_multiboot2_relocator, &ch, -- mld.min_addr, mld.max_addr - code_size, -- code_size, mld.align ? mld.align : 1, -- mld.preference, keep_bs); -+ err = grub_relocator_alloc_chunk_align_safe (grub_multiboot2_relocator, &ch, -+ mld.min_addr, mld.max_addr, -+ code_size, mld.align ? mld.align : 1, -+ mld.preference, keep_bs); - } - else - err = grub_relocator_alloc_chunk_addr (grub_multiboot2_relocator, -@@ -714,7 +714,7 @@ grub_multiboot2_make_mbi (grub_uint32_t *target) - COMPILE_TIME_ASSERT (MULTIBOOT_TAG_ALIGN % sizeof (grub_properly_aligned_t) == 0); - - err = grub_relocator_alloc_chunk_align (grub_multiboot2_relocator, &ch, -- MBI_MIN_ADDR, 0xffffffff - bufsize, -+ MBI_MIN_ADDR, UP_TO_TOP32 (bufsize), - bufsize, MULTIBOOT_TAG_ALIGN, - GRUB_RELOCATOR_PREFERENCE_NONE, 1); - if (err) -diff --git a/grub-core/loader/xnu_resume.c b/grub-core/loader/xnu_resume.c -index 8089804..d648ef0 100644 ---- a/grub-core/loader/xnu_resume.c -+++ b/grub-core/loader/xnu_resume.c -@@ -129,7 +129,7 @@ grub_xnu_resume (char *imagename) - { - grub_relocator_chunk_t ch; - err = grub_relocator_alloc_chunk_align (grub_xnu_relocator, &ch, 0, -- (0xffffffff - hibhead.image_size) + 1, -+ UP_TO_TOP32 (hibhead.image_size), - hibhead.image_size, - GRUB_XNU_PAGESIZE, - GRUB_RELOCATOR_PREFERENCE_NONE, 0); -diff --git a/include/grub/relocator.h b/include/grub/relocator.h -index 24d8672..1b3bdd9 100644 ---- a/include/grub/relocator.h -+++ b/include/grub/relocator.h -@@ -49,6 +49,35 @@ grub_relocator_alloc_chunk_align (struct grub_relocator *rel, - int preference, - int avoid_efi_boot_services); - -+/* -+ * Wrapper for grub_relocator_alloc_chunk_align() with purpose of -+ * protecting against integer underflow. -+ * -+ * Compare to its callee, max_addr has different meaning here. -+ * It covers entire chunk and not just start address of the chunk. -+ */ -+static inline grub_err_t -+grub_relocator_alloc_chunk_align_safe (struct grub_relocator *rel, -+ grub_relocator_chunk_t *out, -+ grub_phys_addr_t min_addr, -+ grub_phys_addr_t max_addr, -+ grub_size_t size, grub_size_t align, -+ int preference, -+ int avoid_efi_boot_services) -+{ -+ /* Sanity check and ensure following equation (max_addr - size) is safe. */ -+ if (max_addr < size || (max_addr - size) < min_addr) -+ return GRUB_ERR_OUT_OF_RANGE; -+ -+ return grub_relocator_alloc_chunk_align (rel, out, min_addr, -+ max_addr - size, -+ size, align, preference, -+ avoid_efi_boot_services); -+} -+ -+/* Top 32-bit address minus s bytes and plus 1 byte. */ -+#define UP_TO_TOP32(s) ((~(s) & 0xffffffff) + 1) -+ - #define GRUB_RELOCATOR_PREFERENCE_NONE 0 - #define GRUB_RELOCATOR_PREFERENCE_LOW 1 - #define GRUB_RELOCATOR_PREFERENCE_HIGH 2 --- -2.23.0 - diff --git a/0238-script-Remove-unused-fields-from-grub_script_functio.patch b/0238-script-Remove-unused-fields-from-grub_script_functio.patch deleted file mode 100644 index 3567b6f..0000000 --- a/0238-script-Remove-unused-fields-from-grub_script_functio.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 78dc80eec01a56866a0732bf2f808ec26ae45a59 Mon Sep 17 00:00:00 2001 -From: Chris Coulson -Date: Fri, 10 Jul 2020 11:21:14 +0100 -Subject: [PATCH 18/27] script: Remove unused fields from grub_script_function - struct - -Signed-off-by: Chris Coulson -Reviewed-by: Daniel Kiper ---- - include/grub/script_sh.h | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git a/include/grub/script_sh.h b/include/grub/script_sh.h -index 360c2be..b382bcf 100644 ---- a/include/grub/script_sh.h -+++ b/include/grub/script_sh.h -@@ -359,13 +359,8 @@ struct grub_script_function - /* The script function. */ - struct grub_script *func; - -- /* The flags. */ -- unsigned flags; -- - /* The next element. */ - struct grub_script_function *next; -- -- int references; - }; - typedef struct grub_script_function *grub_script_function_t; - --- -2.23.0 - diff --git a/0239-script-Avoid-a-use-after-free-when-redefining-a-func.patch b/0239-script-Avoid-a-use-after-free-when-redefining-a-func.patch deleted file mode 100644 index a48426e..0000000 --- a/0239-script-Avoid-a-use-after-free-when-redefining-a-func.patch +++ /dev/null @@ -1,109 +0,0 @@ -From 0b86881d32d66a0d21b71fdb148ec2accba1be6e Mon Sep 17 00:00:00 2001 -From: Chris Coulson -Date: Fri, 10 Jul 2020 14:41:45 +0100 -Subject: [PATCH 19/27] script: Avoid a use-after-free when redefining a - function during execution - -Defining a new function with the same name as a previously defined -function causes the grub_script and associated resources for the -previous function to be freed. If the previous function is currently -executing when a function with the same name is defined, this results -in use-after-frees when processing subsequent commands in the original -function. - -Instead, reject a new function definition if it has the same name as -a previously defined function, and that function is currently being -executed. Although a behavioural change, this should be backwards -compatible with existing configurations because they can't be -dependent on the current behaviour without being broken. - -Fixes: CVE-2020-15706 - -Signed-off-by: Chris Coulson -Reviewed-by: Daniel Kiper ---- - grub-core/script/execute.c | 2 ++ - grub-core/script/function.c | 16 +++++++++++++--- - grub-core/script/parser.y | 3 ++- - include/grub/script_sh.h | 2 ++ - 4 files changed, 19 insertions(+), 4 deletions(-) - -diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c -index b55e171..d2f02cc 100644 ---- a/grub-core/script/execute.c -+++ b/grub-core/script/execute.c -@@ -872,7 +872,9 @@ grub_script_function_call (grub_script_function_t func, int argc, char **args) - old_scope = scope; - scope = &new_scope; - -+ func->executing++; - ret = grub_script_execute (func->func); -+ func->executing--; - - function_return = 0; - active_loops = loops; -diff --git a/grub-core/script/function.c b/grub-core/script/function.c -index d36655e..3aad04b 100644 ---- a/grub-core/script/function.c -+++ b/grub-core/script/function.c -@@ -34,6 +34,7 @@ grub_script_function_create (struct grub_script_arg *functionname_arg, - func = (grub_script_function_t) grub_malloc (sizeof (*func)); - if (! func) - return 0; -+ func->executing = 0; - - func->name = grub_strdup (functionname_arg->str); - if (! func->name) -@@ -60,10 +61,19 @@ grub_script_function_create (struct grub_script_arg *functionname_arg, - grub_script_function_t q; - - q = *p; -- grub_script_free (q->func); -- q->func = cmd; - grub_free (func); -- func = q; -+ if (q->executing > 0) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, -+ N_("attempt to redefine a function being executed")); -+ func = NULL; -+ } -+ else -+ { -+ grub_script_free (q->func); -+ q->func = cmd; -+ func = q; -+ } - } - else - { -diff --git a/grub-core/script/parser.y b/grub-core/script/parser.y -index 4f0ab83..f80b86b 100644 ---- a/grub-core/script/parser.y -+++ b/grub-core/script/parser.y -@@ -289,7 +289,8 @@ function: "function" "name" - grub_script_mem_free (state->func_mem); - else { - script->children = state->scripts; -- grub_script_function_create ($2, script); -+ if (!grub_script_function_create ($2, script)) -+ grub_script_free (script); - } - - state->scripts = $3; -diff --git a/include/grub/script_sh.h b/include/grub/script_sh.h -index b382bcf..6c48e07 100644 ---- a/include/grub/script_sh.h -+++ b/include/grub/script_sh.h -@@ -361,6 +361,8 @@ struct grub_script_function - - /* The next element. */ - struct grub_script_function *next; -+ -+ unsigned executing; - }; - typedef struct grub_script_function *grub_script_function_t; - --- -2.23.0 - diff --git a/0240-relocator-Fix-grub_relocator_alloc_chunk_align-top-m.patch b/0240-relocator-Fix-grub_relocator_alloc_chunk_align-top-m.patch deleted file mode 100644 index 9df944f..0000000 --- a/0240-relocator-Fix-grub_relocator_alloc_chunk_align-top-m.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 93ec7ea234ae82499034313df0f63c01cb382520 Mon Sep 17 00:00:00 2001 -From: Alexey Makhalov -Date: Fri, 17 Jul 2020 05:17:26 +0000 -Subject: [PATCH 20/27] relocator: Fix grub_relocator_alloc_chunk_align() top - memory allocation - -Current implementation of grub_relocator_alloc_chunk_align() -does not allow allocation of the top byte. - -Assuming input args are: - max_addr = 0xfffff000; - size = 0x1000; - -And this is valid. But following overflow protection will -unnecessarily move max_addr one byte down (to 0xffffefff): - if (max_addr > ~size) - max_addr = ~size; - -~size + 1 will fix the situation. In addition, check size -for non zero to do not zero max_addr. - -Signed-off-by: Alexey Makhalov -Reviewed-by: Daniel Kiper ---- - grub-core/lib/relocator.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/grub-core/lib/relocator.c b/grub-core/lib/relocator.c -index 5847aac..f2c1944 100644 ---- a/grub-core/lib/relocator.c -+++ b/grub-core/lib/relocator.c -@@ -1386,8 +1386,8 @@ grub_relocator_alloc_chunk_align (struct grub_relocator *rel, - }; - grub_addr_t min_addr2 = 0, max_addr2; - -- if (max_addr > ~size) -- max_addr = ~size; -+ if (size && (max_addr > ~size)) -+ max_addr = ~size + 1; - - #ifdef GRUB_MACHINE_PCBIOS - if (min_addr < 0x1000) --- -2.23.0 - diff --git a/0241-hfsplus-Fix-two-more-overflows.patch b/0241-hfsplus-Fix-two-more-overflows.patch deleted file mode 100644 index 1dbbd02..0000000 --- a/0241-hfsplus-Fix-two-more-overflows.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 0c0c7f7de657dde6994c58e29133a7356f6f672f Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Sun, 19 Jul 2020 14:43:31 -0400 -Subject: [PATCH 21/27] hfsplus: Fix two more overflows - -Both node->size and node->namelen come from the supplied filesystem, -which may be user-supplied. We can't trust them for the math unless we -know they don't overflow. Making sure they go through grub_add() or -grub_calloc() first will give us that. - -Signed-off-by: Peter Jones -Reviewed-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/fs/hfsplus.c | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git a/grub-core/fs/hfsplus.c b/grub-core/fs/hfsplus.c -index dae43be..9c4e4c8 100644 ---- a/grub-core/fs/hfsplus.c -+++ b/grub-core/fs/hfsplus.c -@@ -31,6 +31,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -475,8 +476,12 @@ grub_hfsplus_read_symlink (grub_fshelp_node_t node) - { - char *symlink; - grub_ssize_t numread; -+ grub_size_t sz = node->size; - -- symlink = grub_malloc (node->size + 1); -+ if (grub_add (sz, 1, &sz)) -+ return NULL; -+ -+ symlink = grub_malloc (sz); - if (!symlink) - return 0; - -@@ -715,8 +720,8 @@ list_nodes (void *record, void *hook_arg) - if (type == GRUB_FSHELP_UNKNOWN) - return 0; - -- filename = grub_malloc (grub_be_to_cpu16 (catkey->namelen) -- * GRUB_MAX_UTF8_PER_UTF16 + 1); -+ filename = grub_calloc (grub_be_to_cpu16 (catkey->namelen), -+ GRUB_MAX_UTF8_PER_UTF16 + 1); - if (! filename) - return 0; - --- -2.23.0 - diff --git a/0242-lvm-Fix-two-more-potential-data-dependent-alloc-over.patch b/0242-lvm-Fix-two-more-potential-data-dependent-alloc-over.patch deleted file mode 100644 index 3f3cad2..0000000 --- a/0242-lvm-Fix-two-more-potential-data-dependent-alloc-over.patch +++ /dev/null @@ -1,112 +0,0 @@ -From 4a56a951ae3cc8ff25f94a291051b5246f1b828a Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Sun, 19 Jul 2020 15:48:20 -0400 -Subject: [PATCH 22/27] lvm: Fix two more potential data-dependent alloc - overflows - -It appears to be possible to make a (possibly invalid) lvm PV with -a metadata size field that overflows our type when adding it to the -address we've allocated. Even if it doesn't, it may be possible to do so -with the math using the outcome of that as an operand. Check them both. - -Signed-off-by: Peter Jones -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/disk/lvm.c | 48 ++++++++++++++++++++++++++++++++++++-------- - 1 file changed, 40 insertions(+), 8 deletions(-) - -diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c -index 8e76d1a..9f5630c 100644 ---- a/grub-core/disk/lvm.c -+++ b/grub-core/disk/lvm.c -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - - #ifdef GRUB_UTIL - #include -@@ -102,10 +103,11 @@ grub_lvm_detect (grub_disk_t disk, - { - grub_err_t err; - grub_uint64_t mda_offset, mda_size; -+ grub_size_t ptr; - char buf[GRUB_LVM_LABEL_SIZE]; - char vg_id[GRUB_LVM_ID_STRLEN+1]; - char pv_id[GRUB_LVM_ID_STRLEN+1]; -- char *metadatabuf, *vgname; -+ char *metadatabuf, *mda_end, *vgname; - const char *p, *q; - struct grub_lvm_label_header *lh = (struct grub_lvm_label_header *) buf; - struct grub_lvm_pv_header *pvh; -@@ -206,19 +208,31 @@ grub_lvm_detect (grub_disk_t disk, - grub_le_to_cpu64 (rlocn->size) - - grub_le_to_cpu64 (mdah->size)); - } -- p = q = metadatabuf + grub_le_to_cpu64 (rlocn->offset); - -- while (*q != ' ' && q < metadatabuf + mda_size) -- q++; -- -- if (q == metadatabuf + mda_size) -+ if (grub_add ((grub_size_t)metadatabuf, -+ (grub_size_t)grub_le_to_cpu64 (rlocn->offset), -+ &ptr)) - { -+ error_parsing_metadata: - #ifdef GRUB_UTIL - grub_util_info ("error parsing metadata"); - #endif - goto fail2; - } - -+ p = q = (char *)ptr; -+ -+ if (grub_add ((grub_size_t)metadatabuf, (grub_size_t)mda_size, &ptr)) -+ goto error_parsing_metadata; -+ -+ mda_end = (char *)ptr; -+ -+ while (*q != ' ' && q < mda_end) -+ q++; -+ -+ if (q == mda_end) -+ goto error_parsing_metadata; -+ - vgname_len = q - p; - vgname = grub_malloc (vgname_len + 1); - if (!vgname) -@@ -368,8 +382,26 @@ grub_lvm_detect (grub_disk_t disk, - { - const char *iptr; - char *optr; -- lv->fullname = grub_malloc (sizeof ("lvm/") - 1 + 2 * vgname_len -- + 1 + 2 * s + 1); -+ -+ /* -+ * This is kind of hard to read with our safe (but rather -+ * baroque) math primatives, but it boils down to: -+ * -+ * sz0 = vgname_len * 2 + 1 + -+ * s * 2 + 1 + -+ * sizeof ("lvm/") - 1; -+ */ -+ grub_size_t sz0 = vgname_len, sz1 = s; -+ -+ if (grub_mul (sz0, 2, &sz0) || -+ grub_add (sz0, 1, &sz0) || -+ grub_mul (sz1, 2, &sz1) || -+ grub_add (sz1, 1, &sz1) || -+ grub_add (sz0, sz1, &sz0) || -+ grub_add (sz0, sizeof ("lvm/") - 1, &sz0)) -+ goto lvs_fail; -+ -+ lv->fullname = grub_malloc (sz0); - if (!lv->fullname) - goto lvs_fail; - --- -2.23.0 - diff --git a/0243-efi-Fix-some-malformed-device-path-arithmetic-errors.patch b/0243-efi-Fix-some-malformed-device-path-arithmetic-errors.patch deleted file mode 100644 index 4453d63..0000000 --- a/0243-efi-Fix-some-malformed-device-path-arithmetic-errors.patch +++ /dev/null @@ -1,235 +0,0 @@ -From 8088b8c61e7b45dd8d6115eac72bc718e261e6fe Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Sun, 19 Jul 2020 16:53:27 -0400 -Subject: [PATCH 23/27] efi: Fix some malformed device path arithmetic errors - -Several places we take the length of a device path and subtract 4 from -it, without ever checking that it's >= 4. There are also cases where -this kind of malformation will result in unpredictable iteration, -including treating the length from one dp node as the type in the next -node. These are all errors, no matter where the data comes from. - -This patch adds a checking macro, GRUB_EFI_DEVICE_PATH_VALID(), which -can be used in several places, and makes GRUB_EFI_NEXT_DEVICE_PATH() -return NULL and GRUB_EFI_END_ENTIRE_DEVICE_PATH() evaluate as true when -the length is too small. Additionally, it makes several places in the -code check for and return errors in these cases. - -Signed-off-by: Peter Jones -Reviewed-by: Daniel Kiper ---- - grub-core/kern/efi/efi.c | 64 +++++++++++++++++++++++++----- - grub-core/loader/efi/chainloader.c | 13 +++++- - grub-core/loader/i386/xnu.c | 9 +++-- - include/grub/efi/api.h | 14 ++++--- - 4 files changed, 79 insertions(+), 21 deletions(-) - -diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index ab133fe..d6f7bf0 100644 ---- a/grub-core/kern/efi/efi.c -+++ b/grub-core/kern/efi/efi.c -@@ -350,7 +350,7 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0) - - dp = dp0; - -- while (1) -+ while (dp) - { - grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp); - grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp); -@@ -360,9 +360,15 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0) - if (type == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE - && subtype == GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE) - { -- grub_efi_uint16_t len; -- len = ((GRUB_EFI_DEVICE_PATH_LENGTH (dp) - 4) -- / sizeof (grub_efi_char16_t)); -+ grub_efi_uint16_t len = GRUB_EFI_DEVICE_PATH_LENGTH (dp); -+ -+ if (len < 4) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, -+ "malformed EFI Device Path node has length=%d", len); -+ return NULL; -+ } -+ len = (len - 4) / sizeof (grub_efi_char16_t); - filesize += GRUB_MAX_UTF8_PER_UTF16 * len + 2; - } - -@@ -378,7 +384,7 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0) - if (!name) - return NULL; - -- while (1) -+ while (dp) - { - grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp); - grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp); -@@ -394,8 +400,15 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0) - - *p++ = '/'; - -- len = ((GRUB_EFI_DEVICE_PATH_LENGTH (dp) - 4) -- / sizeof (grub_efi_char16_t)); -+ len = GRUB_EFI_DEVICE_PATH_LENGTH (dp); -+ if (len < 4) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, -+ "malformed EFI Device Path node has length=%d", len); -+ return NULL; -+ } -+ -+ len = (len - 4) / sizeof (grub_efi_char16_t); - fp = (grub_efi_file_path_device_path_t *) dp; - /* According to EFI spec Path Name is NULL terminated */ - while (len > 0 && fp->path_name[len - 1] == 0) -@@ -470,7 +483,26 @@ grub_efi_duplicate_device_path (const grub_efi_device_path_t *dp) - ; - p = GRUB_EFI_NEXT_DEVICE_PATH (p)) - { -- total_size += GRUB_EFI_DEVICE_PATH_LENGTH (p); -+ grub_size_t len = GRUB_EFI_DEVICE_PATH_LENGTH (p); -+ -+ /* -+ * In the event that we find a node that's completely garbage, for -+ * example if we get to 0x7f 0x01 0x02 0x00 ... (EndInstance with a size -+ * of 2), GRUB_EFI_END_ENTIRE_DEVICE_PATH() will be true and -+ * GRUB_EFI_NEXT_DEVICE_PATH() will return NULL, so we won't continue, -+ * and neither should our consumers, but there won't be any error raised -+ * even though the device path is junk. -+ * -+ * This keeps us from passing junk down back to our caller. -+ */ -+ if (len < 4) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, -+ "malformed EFI Device Path node has length=%d", len); -+ return NULL; -+ } -+ -+ total_size += len; - if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (p)) - break; - } -@@ -515,7 +547,7 @@ dump_vendor_path (const char *type, grub_efi_vendor_device_path_t *vendor) - void - grub_efi_print_device_path (grub_efi_device_path_t *dp) - { -- while (1) -+ while (GRUB_EFI_DEVICE_PATH_VALID (dp)) - { - grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp); - grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp); -@@ -987,7 +1019,10 @@ grub_efi_compare_device_paths (const grub_efi_device_path_t *dp1, - /* Return non-zero. */ - return 1; - -- while (1) -+ if (dp1 == dp2) -+ return 0; -+ -+ while (GRUB_EFI_DEVICE_PATH_VALID (dp1) && GRUB_EFI_DEVICE_PATH_VALID (dp2)) - { - grub_efi_uint8_t type1, type2; - grub_efi_uint8_t subtype1, subtype2; -@@ -1023,5 +1058,14 @@ grub_efi_compare_device_paths (const grub_efi_device_path_t *dp1, - dp2 = (grub_efi_device_path_t *) ((char *) dp2 + len2); - } - -+ /* -+ * There's no "right" answer here, but we probably don't want to call a valid -+ * dp and an invalid dp equal, so pick one way or the other. -+ */ -+ if (GRUB_EFI_DEVICE_PATH_VALID (dp1) && !GRUB_EFI_DEVICE_PATH_VALID (dp2)) -+ return 1; -+ else if (!GRUB_EFI_DEVICE_PATH_VALID (dp1) && GRUB_EFI_DEVICE_PATH_VALID (dp2)) -+ return -1; -+ - return 0; - } -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 7365051..9a99f04 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -165,9 +165,18 @@ make_file_path (grub_efi_device_path_t *dp, const char *filename) - - size = 0; - d = dp; -- while (1) -+ while (d) - { -- size += GRUB_EFI_DEVICE_PATH_LENGTH (d); -+ grub_size_t len = GRUB_EFI_DEVICE_PATH_LENGTH (d); -+ -+ if (len < 4) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, -+ "malformed EFI Device Path node has length=%d", len); -+ return NULL; -+ } -+ -+ size += len; - if ((GRUB_EFI_END_ENTIRE_DEVICE_PATH (d))) - break; - d = GRUB_EFI_NEXT_DEVICE_PATH (d); -diff --git a/grub-core/loader/i386/xnu.c b/grub-core/loader/i386/xnu.c -index e9e1192..a700936 100644 ---- a/grub-core/loader/i386/xnu.c -+++ b/grub-core/loader/i386/xnu.c -@@ -515,14 +515,15 @@ grub_cmd_devprop_load (grub_command_t cmd __attribute__ ((unused)), - - devhead = buf; - buf = devhead + 1; -- dpstart = buf; -+ dp = dpstart = buf; - -- do -+ while (GRUB_EFI_DEVICE_PATH_VALID (dp) && buf < bufend) - { -- dp = buf; - buf = (char *) buf + GRUB_EFI_DEVICE_PATH_LENGTH (dp); -+ if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp)) -+ break; -+ dp = buf; - } -- while (!GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp) && buf < bufend); - - dev = grub_xnu_devprop_add_device (dpstart, (char *) buf - - (char *) dpstart); -diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index dec7b06..fc8a564 100644 ---- a/include/grub/efi/api.h -+++ b/include/grub/efi/api.h -@@ -666,6 +666,7 @@ typedef struct grub_efi_device_path grub_efi_device_path_protocol_t; - #define GRUB_EFI_DEVICE_PATH_TYPE(dp) ((dp)->type & 0x7f) - #define GRUB_EFI_DEVICE_PATH_SUBTYPE(dp) ((dp)->subtype) - #define GRUB_EFI_DEVICE_PATH_LENGTH(dp) ((dp)->length) -+#define GRUB_EFI_DEVICE_PATH_VALID(dp) ((dp) != NULL && GRUB_EFI_DEVICE_PATH_LENGTH (dp) >= 4) - - /* The End of Device Path nodes. */ - #define GRUB_EFI_END_DEVICE_PATH_TYPE (0xff & 0x7f) -@@ -674,13 +675,16 @@ typedef struct grub_efi_device_path grub_efi_device_path_protocol_t; - #define GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE 0x01 - - #define GRUB_EFI_END_ENTIRE_DEVICE_PATH(dp) \ -- (GRUB_EFI_DEVICE_PATH_TYPE (dp) == GRUB_EFI_END_DEVICE_PATH_TYPE \ -- && (GRUB_EFI_DEVICE_PATH_SUBTYPE (dp) \ -- == GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE)) -+ (!GRUB_EFI_DEVICE_PATH_VALID (dp) || \ -+ (GRUB_EFI_DEVICE_PATH_TYPE (dp) == GRUB_EFI_END_DEVICE_PATH_TYPE \ -+ && (GRUB_EFI_DEVICE_PATH_SUBTYPE (dp) \ -+ == GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE))) - - #define GRUB_EFI_NEXT_DEVICE_PATH(dp) \ -- ((grub_efi_device_path_t *) ((char *) (dp) \ -- + GRUB_EFI_DEVICE_PATH_LENGTH (dp))) -+ (GRUB_EFI_DEVICE_PATH_VALID (dp) \ -+ ? ((grub_efi_device_path_t *) \ -+ ((char *) (dp) + GRUB_EFI_DEVICE_PATH_LENGTH (dp))) \ -+ : NULL) - - /* Hardware Device Path. */ - #define GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE 1 --- -2.23.0 - diff --git a/0244-efi-chainloader-Propagate-errors-from-copy_file_path.patch b/0244-efi-chainloader-Propagate-errors-from-copy_file_path.patch deleted file mode 100644 index df0d20c..0000000 --- a/0244-efi-chainloader-Propagate-errors-from-copy_file_path.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 098058752e1cee7b457ff45562a81e756ab0b532 Mon Sep 17 00:00:00 2001 -From: Daniel Kiper -Date: Wed, 29 Jul 2020 13:38:31 +0200 -Subject: [PATCH 24/27] efi/chainloader: Propagate errors from copy_file_path() - -Without any error propagated to the caller, make_file_path() -would then try to advance the invalid device path node with -GRUB_EFI_NEXT_DEVICE_PATH(), which would fail, returning a NULL -pointer that would subsequently be dereferenced. Hence, propagate -errors from copy_file_path(). - -Signed-off-by: Chris Coulson -Reviewed-by: Daniel Kiper ---- - grub-core/loader/efi/chainloader.c | 19 +++++++++++++------ - 1 file changed, 13 insertions(+), 6 deletions(-) - -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 9a99f04..813dc0e 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -115,7 +115,7 @@ grub_chainloader_boot (void) - return grub_errno; - } - --static void -+static grub_err_t - copy_file_path (grub_efi_file_path_device_path_t *fp, - const char *str, grub_efi_uint16_t len) - { -@@ -127,7 +127,7 @@ copy_file_path (grub_efi_file_path_device_path_t *fp, - - path_name = grub_calloc (len, GRUB_MAX_UTF16_PER_UTF8 * sizeof (*path_name)); - if (!path_name) -- return; -+ return grub_error (GRUB_ERR_OUT_OF_MEMORY, "failed to allocate path buffer"); - - size = grub_utf8_to_utf16 (path_name, len * GRUB_MAX_UTF16_PER_UTF8, - (const grub_uint8_t *) str, len, 0); -@@ -140,6 +140,7 @@ copy_file_path (grub_efi_file_path_device_path_t *fp, - fp->path_name[size++] = '\0'; - fp->header.length = size * sizeof (grub_efi_char16_t) + sizeof (*fp); - grub_free (path_name); -+ return GRUB_ERR_NONE; - } - - static grub_efi_device_path_t * -@@ -197,13 +198,19 @@ make_file_path (grub_efi_device_path_t *dp, const char *filename) - /* Fill the file path for the directory. */ - d = (grub_efi_device_path_t *) ((char *) file_path - + ((char *) d - (char *) dp)); -- copy_file_path ((grub_efi_file_path_device_path_t *) d, -- dir_start, dir_end - dir_start); -+ if (copy_file_path ((grub_efi_file_path_device_path_t *) d, -+ dir_start, dir_end - dir_start) != GRUB_ERR_NONE) -+ { -+fail: -+ grub_free(file_path); -+ return 0; -+ } - - /* Fill the file path for the file. */ - d = GRUB_EFI_NEXT_DEVICE_PATH (d); -- copy_file_path ((grub_efi_file_path_device_path_t *) d, -- dir_end + 1, grub_strlen (dir_end + 1)); -+ if (copy_file_path ((grub_efi_file_path_device_path_t *) d, -+ dir_end + 1, grub_strlen (dir_end + 1)) != GRUB_ERR_NONE) -+ goto fail; - - /* Fill the end of device path nodes. */ - d = GRUB_EFI_NEXT_DEVICE_PATH (d); --- -2.23.0 - diff --git a/0245-efi-Fix-use-after-free-in-halt-reboot-path.patch b/0245-efi-Fix-use-after-free-in-halt-reboot-path.patch deleted file mode 100644 index cfc13ab..0000000 --- a/0245-efi-Fix-use-after-free-in-halt-reboot-path.patch +++ /dev/null @@ -1,179 +0,0 @@ -From f7bd9986f607a924bf23b813900a8595f2815f0c Mon Sep 17 00:00:00 2001 -From: Alexey Makhalov -Date: Mon, 20 Jul 2020 23:03:05 +0000 -Subject: [PATCH 25/27] efi: Fix use-after-free in halt/reboot path - -commit 92bfc33db984 ("efi: Free malloc regions on exit") -introduced memory freeing in grub_efi_fini(), which is -used not only by exit path but by halt/reboot one as well. -As result of memory freeing, code and data regions used by -modules, such as halt, reboot, acpi (used by halt) also got -freed. After return to module code, CPU executes, filled -by UEFI firmware (tested with edk2), 0xAFAFAFAF pattern as -a code. Which leads to #UD exception later. - -grub> halt -!!!! X64 Exception Type - 06(#UD - Invalid Opcode) CPU Apic ID - 00000000 !!!! -RIP - 0000000003F4EC28, CS - 0000000000000038, RFLAGS - 0000000000200246 -RAX - 0000000000000000, RCX - 00000000061DA188, RDX - 0A74C0854DC35D41 -RBX - 0000000003E10E08, RSP - 0000000007F0F860, RBP - 0000000000000000 -RSI - 00000000064DB768, RDI - 000000000832C5C3 -R8 - 0000000000000002, R9 - 0000000000000000, R10 - 00000000061E2E52 -R11 - 0000000000000020, R12 - 0000000003EE5C1F, R13 - 00000000061E0FF4 -R14 - 0000000003E10D80, R15 - 00000000061E2F60 -DS - 0000000000000030, ES - 0000000000000030, FS - 0000000000000030 -GS - 0000000000000030, SS - 0000000000000030 -CR0 - 0000000080010033, CR2 - 0000000000000000, CR3 - 0000000007C01000 -CR4 - 0000000000000668, CR8 - 0000000000000000 -DR0 - 0000000000000000, DR1 - 0000000000000000, DR2 - 0000000000000000 -DR3 - 0000000000000000, DR6 - 00000000FFFF0FF0, DR7 - 0000000000000400 -GDTR - 00000000079EEA98 0000000000000047, LDTR - 0000000000000000 -IDTR - 0000000007598018 0000000000000FFF, TR - 0000000000000000 -FXSAVE_STATE - 0000000007F0F4C0 - -Proposal here is to continue to free allocated memory for -exit boot services path but keep it for halt/reboot path -as it won't be much security concern here. -Introduced GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY -loader flag to be used by efi halt/reboot path. - -Signed-off-by: Alexey Makhalov -Reviewed-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/kern/arm/efi/init.c | 3 +++ - grub-core/kern/arm64/efi/init.c | 3 +++ - grub-core/kern/efi/efi.c | 3 ++- - grub-core/kern/efi/init.c | 1 - - grub-core/kern/i386/efi/init.c | 9 +++++++-- - grub-core/kern/ia64/efi/init.c | 9 +++++++-- - grub-core/kern/riscv/efi/init.c | 3 +++ - grub-core/lib/efi/halt.c | 3 ++- - include/grub/loader.h | 1 + - 9 files changed, 28 insertions(+), 7 deletions(-) - -diff --git a/grub-core/kern/arm/efi/init.c b/grub-core/kern/arm/efi/init.c -index 06df60e..40c3b46 100644 ---- a/grub-core/kern/arm/efi/init.c -+++ b/grub-core/kern/arm/efi/init.c -@@ -71,4 +71,7 @@ grub_machine_fini (int flags) - efi_call_1 (b->close_event, tmr_evt); - - grub_efi_fini (); -+ -+ if (!(flags & GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY)) -+ grub_efi_memory_fini (); - } -diff --git a/grub-core/kern/arm64/efi/init.c b/grub-core/kern/arm64/efi/init.c -index 6224999..5010cae 100644 ---- a/grub-core/kern/arm64/efi/init.c -+++ b/grub-core/kern/arm64/efi/init.c -@@ -57,4 +57,7 @@ grub_machine_fini (int flags) - return; - - grub_efi_fini (); -+ -+ if (!(flags & GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY)) -+ grub_efi_memory_fini (); - } -diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index d6f7bf0..c45c8f4 100644 ---- a/grub-core/kern/efi/efi.c -+++ b/grub-core/kern/efi/efi.c -@@ -157,7 +157,8 @@ grub_efi_get_loaded_image (grub_efi_handle_t image_handle) - void - grub_reboot (void) - { -- grub_machine_fini (GRUB_LOADER_FLAG_NORETURN); -+ grub_machine_fini (GRUB_LOADER_FLAG_NORETURN | -+ GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY); - efi_call_4 (grub_efi_system_table->runtime_services->reset_system, - GRUB_EFI_RESET_COLD, GRUB_EFI_SUCCESS, 0, NULL); - for (;;) ; -diff --git a/grub-core/kern/efi/init.c b/grub-core/kern/efi/init.c -index d1afa3a..2ffb520 100644 ---- a/grub-core/kern/efi/init.c -+++ b/grub-core/kern/efi/init.c -@@ -131,5 +131,4 @@ grub_efi_fini (void) - { - grub_efidisk_fini (); - grub_console_fini (); -- grub_efi_memory_fini (); - } -diff --git a/grub-core/kern/i386/efi/init.c b/grub-core/kern/i386/efi/init.c -index da499ab..deb2eac 100644 ---- a/grub-core/kern/i386/efi/init.c -+++ b/grub-core/kern/i386/efi/init.c -@@ -39,6 +39,11 @@ grub_machine_init (void) - void - grub_machine_fini (int flags) - { -- if (flags & GRUB_LOADER_FLAG_NORETURN) -- grub_efi_fini (); -+ if (!(flags & GRUB_LOADER_FLAG_NORETURN)) -+ return; -+ -+ grub_efi_fini (); -+ -+ if (!(flags & GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY)) -+ grub_efi_memory_fini (); - } -diff --git a/grub-core/kern/ia64/efi/init.c b/grub-core/kern/ia64/efi/init.c -index b5ecbd0..f196557 100644 ---- a/grub-core/kern/ia64/efi/init.c -+++ b/grub-core/kern/ia64/efi/init.c -@@ -70,6 +70,11 @@ grub_machine_init (void) - void - grub_machine_fini (int flags) - { -- if (flags & GRUB_LOADER_FLAG_NORETURN) -- grub_efi_fini (); -+ if (!(flags & GRUB_LOADER_FLAG_NORETURN)) -+ return; -+ -+ grub_efi_fini (); -+ -+ if (!(flags & GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY)) -+ grub_efi_memory_fini (); - } -diff --git a/grub-core/kern/riscv/efi/init.c b/grub-core/kern/riscv/efi/init.c -index 7eb1969..38795fe 100644 ---- a/grub-core/kern/riscv/efi/init.c -+++ b/grub-core/kern/riscv/efi/init.c -@@ -73,4 +73,7 @@ grub_machine_fini (int flags) - return; - - grub_efi_fini (); -+ -+ if (!(flags & GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY)) -+ grub_efi_memory_fini (); - } -diff --git a/grub-core/lib/efi/halt.c b/grub-core/lib/efi/halt.c -index 5859f04..29d4136 100644 ---- a/grub-core/lib/efi/halt.c -+++ b/grub-core/lib/efi/halt.c -@@ -28,7 +28,8 @@ - void - grub_halt (void) - { -- grub_machine_fini (GRUB_LOADER_FLAG_NORETURN); -+ grub_machine_fini (GRUB_LOADER_FLAG_NORETURN | -+ GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY); - #if !defined(__ia64__) && !defined(__arm__) && !defined(__aarch64__) && \ - !defined(__riscv) - grub_acpi_halt (); -diff --git a/include/grub/loader.h b/include/grub/loader.h -index 7f82a49..b208642 100644 ---- a/include/grub/loader.h -+++ b/include/grub/loader.h -@@ -33,6 +33,7 @@ enum - { - GRUB_LOADER_FLAG_NORETURN = 1, - GRUB_LOADER_FLAG_PXE_NOT_UNLOAD = 2, -+ GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY = 4, - }; - - void EXPORT_FUNC (grub_loader_set) (grub_err_t (*boot) (void), --- -2.23.0 - diff --git a/0246-loader-linux-Avoid-overflow-on-initrd-size-calculati.patch b/0246-loader-linux-Avoid-overflow-on-initrd-size-calculati.patch deleted file mode 100644 index fdfc666..0000000 --- a/0246-loader-linux-Avoid-overflow-on-initrd-size-calculati.patch +++ /dev/null @@ -1,28 +0,0 @@ -From cb79f0455946270ddaf6b098d8cd71b39f840edc Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Fri, 24 Jul 2020 13:57:27 -0400 -Subject: [PATCH 26/27] loader/linux: Avoid overflow on initrd size calculation - -Signed-off-by: Peter Jones -Reviewed-by: Daniel Kiper ---- - grub-core/loader/linux.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/grub-core/loader/linux.c b/grub-core/loader/linux.c -index 471b214..4cd8c20 100644 ---- a/grub-core/loader/linux.c -+++ b/grub-core/loader/linux.c -@@ -151,8 +151,7 @@ grub_initrd_init (int argc, char *argv[], - initrd_ctx->nfiles = 0; - initrd_ctx->components = 0; - -- initrd_ctx->components = grub_zalloc (argc -- * sizeof (initrd_ctx->components[0])); -+ initrd_ctx->components = grub_calloc (argc, sizeof (initrd_ctx->components[0])); - if (!initrd_ctx->components) - return grub_errno; - --- -2.23.0 - diff --git a/0247-linux-Fix-integer-overflows-in-initrd-size-handling.patch b/0247-linux-Fix-integer-overflows-in-initrd-size-handling.patch deleted file mode 100644 index 6deb52d..0000000 --- a/0247-linux-Fix-integer-overflows-in-initrd-size-handling.patch +++ /dev/null @@ -1,169 +0,0 @@ -From 4edf7dc1bf561beb36fe245348a91d3bde699f15 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Sat, 25 Jul 2020 12:15:37 +0100 -Subject: [PATCH 27/27] linux: Fix integer overflows in initrd size handling - -These could be triggered by a crafted filesystem with very large files. - -Fixes: CVE-2020-15707 - -Signed-off-by: Colin Watson -Reviewed-by: Jan Setje-Eilers -Reviewed-by: Daniel Kiper ---- - grub-core/loader/linux.c | 74 +++++++++++++++++++++++++++++----------- - 1 file changed, 54 insertions(+), 20 deletions(-) - -diff --git a/grub-core/loader/linux.c b/grub-core/loader/linux.c -index 4cd8c20..3fe390f 100644 ---- a/grub-core/loader/linux.c -+++ b/grub-core/loader/linux.c -@@ -4,6 +4,7 @@ - #include - #include - #include -+#include - - struct newc_head - { -@@ -98,13 +99,13 @@ free_dir (struct dir *root) - grub_free (root); - } - --static grub_size_t -+static grub_err_t - insert_dir (const char *name, struct dir **root, -- grub_uint8_t *ptr) -+ grub_uint8_t *ptr, grub_size_t *size) - { - struct dir *cur, **head = root; - const char *cb, *ce = name; -- grub_size_t size = 0; -+ *size = 0; - while (1) - { - for (cb = ce; *cb == '/'; cb++); -@@ -130,14 +131,22 @@ insert_dir (const char *name, struct dir **root, - ptr = make_header (ptr, name, ce - name, - 040777, 0); - } -- size += ALIGN_UP ((ce - (char *) name) -- + sizeof (struct newc_head), 4); -+ if (grub_add (*size, -+ ALIGN_UP ((ce - (char *) name) -+ + sizeof (struct newc_head), 4), -+ size)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ grub_free (n->name); -+ grub_free (n); -+ return grub_errno; -+ } - *head = n; - cur = n; - } - root = &cur->next; - } -- return size; -+ return GRUB_ERR_NONE; - } - - grub_err_t -@@ -172,26 +181,33 @@ grub_initrd_init (int argc, char *argv[], - eptr = grub_strchr (ptr, ':'); - if (eptr) - { -+ grub_size_t dir_size, name_len; -+ - initrd_ctx->components[i].newc_name = grub_strndup (ptr, eptr - ptr); -- if (!initrd_ctx->components[i].newc_name) -+ if (!initrd_ctx->components[i].newc_name || -+ insert_dir (initrd_ctx->components[i].newc_name, &root, 0, -+ &dir_size)) - { - grub_initrd_close (initrd_ctx); - return grub_errno; - } -- initrd_ctx->size -- += ALIGN_UP (sizeof (struct newc_head) -- + grub_strlen (initrd_ctx->components[i].newc_name), -- 4); -- initrd_ctx->size += insert_dir (initrd_ctx->components[i].newc_name, -- &root, 0); -+ name_len = grub_strlen (initrd_ctx->components[i].newc_name); -+ if (grub_add (initrd_ctx->size, -+ ALIGN_UP (sizeof (struct newc_head) + name_len, 4), -+ &initrd_ctx->size) || -+ grub_add (initrd_ctx->size, dir_size, &initrd_ctx->size)) -+ goto overflow; - newc = 1; - fname = eptr + 1; - } - } - else if (newc) - { -- initrd_ctx->size += ALIGN_UP (sizeof (struct newc_head) -- + sizeof ("TRAILER!!!") - 1, 4); -+ if (grub_add (initrd_ctx->size, -+ ALIGN_UP (sizeof (struct newc_head) -+ + sizeof ("TRAILER!!!") - 1, 4), -+ &initrd_ctx->size)) -+ goto overflow; - free_dir (root); - root = 0; - newc = 0; -@@ -207,19 +223,29 @@ grub_initrd_init (int argc, char *argv[], - initrd_ctx->nfiles++; - initrd_ctx->components[i].size - = grub_file_size (initrd_ctx->components[i].file); -- initrd_ctx->size += initrd_ctx->components[i].size; -+ if (grub_add (initrd_ctx->size, initrd_ctx->components[i].size, -+ &initrd_ctx->size)) -+ goto overflow; - } - - if (newc) - { - initrd_ctx->size = ALIGN_UP (initrd_ctx->size, 4); -- initrd_ctx->size += ALIGN_UP (sizeof (struct newc_head) -- + sizeof ("TRAILER!!!") - 1, 4); -+ if (grub_add (initrd_ctx->size, -+ ALIGN_UP (sizeof (struct newc_head) -+ + sizeof ("TRAILER!!!") - 1, 4), -+ &initrd_ctx->size)) -+ goto overflow; - free_dir (root); - root = 0; - } - - return GRUB_ERR_NONE; -+ -+ overflow: -+ free_dir (root); -+ grub_initrd_close (initrd_ctx); -+ return grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); - } - - grub_size_t -@@ -260,8 +286,16 @@ grub_initrd_load (struct grub_linux_initrd_context *initrd_ctx, - - if (initrd_ctx->components[i].newc_name) - { -- ptr += insert_dir (initrd_ctx->components[i].newc_name, -- &root, ptr); -+ grub_size_t dir_size; -+ -+ if (insert_dir (initrd_ctx->components[i].newc_name, &root, ptr, -+ &dir_size)) -+ { -+ free_dir (root); -+ grub_initrd_close (initrd_ctx); -+ return grub_errno; -+ } -+ ptr += dir_size; - ptr = make_header (ptr, initrd_ctx->components[i].newc_name, - grub_strlen (initrd_ctx->components[i].newc_name), - 0100777, --- -2.23.0 - diff --git a/0249-remove-08_fallback_counting.in-apply-grubby.patch b/0249-remove-08_fallback_counting.in-apply-grubby.patch deleted file mode 100644 index 48ea19c..0000000 --- a/0249-remove-08_fallback_counting.in-apply-grubby.patch +++ /dev/null @@ -1,61 +0,0 @@ -From f09f144a2f04bd2775367a0df0a2e7900d96d6a1 Mon Sep 17 00:00:00 2001 -From: Fedora Ninjas -Date: Tue, 1 Sep 2020 16:59:53 +0800 -Subject: [PATCH] remove 08_fallback_counting.in apply grubby - ---- - Makefile.util.def | 6 ------ - util/grub.d/08_fallback_counting.in | 24 ------------------------ - 2 files changed, 30 deletions(-) - delete mode 100644 util/grub.d/08_fallback_counting.in - -diff --git a/Makefile.util.def b/Makefile.util.def -index f3a6996..3473947 100644 ---- a/Makefile.util.def -+++ b/Makefile.util.def -@@ -458,12 +458,6 @@ script = { - }; - - script = { -- name = '08_fallback_counting'; -- common = util/grub.d/08_fallback_counting.in; -- installdir = grubconf; --}; -- --script = { - name = '12_menu_auto_hide'; - common = util/grub.d/12_menu_auto_hide.in; - installdir = grubconf; -diff --git a/util/grub.d/08_fallback_counting.in b/util/grub.d/08_fallback_counting.in -deleted file mode 100644 -index 2e2c3ff..0000000 ---- a/util/grub.d/08_fallback_counting.in -+++ /dev/null -@@ -1,24 +0,0 @@ --#! /bin/sh -e --# Fallback Countdown --# --# This snippet depends on 10_reset_boot_success and needs to be kept in sync. --# --# The boot_counter env var can be used to count down boot attempts after an --# OSTree upgrade and choose the rollback deployment when 0 is reached. --# Both boot_counter=X and boot_success=1 need to be set from userspace. --cat << EOF --insmod increment --# Check if boot_counter exists and boot_success=0 to activate this behaviour. --if [ -n "\${boot_counter}" -a "\${boot_success}" = "0" ]; then -- # if countdown has ended, choose to boot rollback deployment, -- # i.e. default=1 on OSTree-based systems. -- if [ "\${boot_counter}" = "0" -o "\${boot_counter}" = "-1" ]; then -- set default=1 -- set boot_counter=-1 -- # otherwise decrement boot_counter -- else -- decrement boot_counter -- fi -- save_env boot_counter --fi --EOF --- -1.8.3.1 - diff --git a/0250-tftp-roll-over-block-counter-to-prevent-timeouts-wit.patch b/0250-tftp-roll-over-block-counter-to-prevent-timeouts-wit.patch deleted file mode 100644 index 6f5a072..0000000 --- a/0250-tftp-roll-over-block-counter-to-prevent-timeouts-wit.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 54e42c1874f75cfe9129e0af0972becc5f9e71f5 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Thu, 10 Sep 2020 17:17:57 +0200 -Subject: [PATCH] tftp: Roll-over block counter to prevent data packets - timeouts - -Commit 781b3e5efc3 (tftp: Do not use priority queue) caused a regression -when fetching files over TFTP whose size is bigger than 65535 * block size. - - grub> linux /images/pxeboot/vmlinuz - grub> echo $? - 0 - grub> initrd /images/pxeboot/initrd.img - error: timeout reading '/images/pxeboot/initrd.img'. - grub> echo $? - 28 - -It is caused by the block number counter being a 16-bit field, which leads -to a maximum file size of ((1 << 16) - 1) * block size. Because GRUB sets -the block size to 1024 octets (by using the TFTP Blocksize Option from RFC -2348 [0]), the maximum file size that can be transferred is 67107840 bytes. - -The TFTP PROTOCOL (REVISION 2) RFC 1350 [1] does not mention what a client -should do when a file size is bigger than the maximum, but most TFTP hosts -support the block number counter to be rolled over. That is, acking a data -packet with a block number of 0 is taken as if the 65356th block was acked. - -It was working before because the block counter roll-over was happening due -an overflow. But that got fixed by the mentioned commit, which led to the -regression when attempting to fetch files larger than the maximum size. - -To allow TFTP file transfers of unlimited size again, re-introduce a block -counter roll-over so the data packets are acked preventing the timeouts. - -[0]: https://tools.ietf.org/html/rfc2348 -[1]: https://tools.ietf.org/html/rfc1350 - -Fixes: 781b3e5efc3 (tftp: Do not use priority queue) - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=a6838bbc6726ad624bd2b94991f690b8e9d23c69 - -Suggested-by: Peter Jones -Signed-off-by: Javier Martinez Canillas -Reviewed-by: Daniel Kiper ---- - grub-core/net/tftp.c | 17 ++++++++++++++--- - 1 file changed, 14 insertions(+), 3 deletions(-) - -diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c -index c2df3d7..300c5ca 100644 ---- a/grub-core/net/tftp.c -+++ b/grub-core/net/tftp.c -@@ -183,11 +183,22 @@ tftp_receive (grub_net_udp_socket_t sock __attribute__ ((unused)), - return GRUB_ERR_NONE; - } - -- /* Ack old/retransmitted block. */ -- if (grub_be_to_cpu16 (tftph->u.data.block) < data->block + 1) -+ /* -+ * Ack old/retransmitted block. -+ * -+ * The block number is a 16-bit counter, thus the maximum file size that -+ * could be transfered is 65535 * block size. Most TFTP hosts support to -+ * roll-over the block counter to allow unlimited transfer file size. -+ * -+ * This behavior is not defined in the RFC 1350 [0] but is implemented by -+ * most TFTP clients and hosts. -+ * -+ * [0]: https://tools.ietf.org/html/rfc1350 -+ */ -+ if (grub_be_to_cpu16 (tftph->u.data.block) < ((grub_uint16_t) (data->block + 1))) - ack (data, grub_be_to_cpu16 (tftph->u.data.block)); - /* Ignore unexpected block. */ -- else if (grub_be_to_cpu16 (tftph->u.data.block) > data->block + 1) -+ else if (grub_be_to_cpu16 (tftph->u.data.block) > ((grub_uint16_t) (data->block + 1))) - grub_dprintf ("tftp", "TFTP unexpected block # %d\n", tftph->u.data.block); - else - { --- -2.19.1 - diff --git a/backport-0001-CVE-2020-27749.patch b/backport-0001-CVE-2020-27749.patch deleted file mode 100644 index 57f9700..0000000 --- a/backport-0001-CVE-2020-27749.patch +++ /dev/null @@ -1,50 +0,0 @@ -From d06161b035dde4769199ad65aa0a587a5920012b Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Fri, 22 Jan 2021 12:32:41 +0000 -Subject: kern/parser: Fix resource leak if argc == 0 - -After processing the command-line yet arriving at the point where we are -setting argv, we are allocating memory, even if argc == 0, which makes -no sense since we never put anything into the allocated argv. - -The solution is to simply return that we've successfully processed the -arguments but that argc == 0, and also ensure that argv is NULL when -we're not allocating anything in it. - -There are only 2 callers of this function, and both are handling a zero -value in argc assuming nothing is allocated in argv. - -Fixes: CID 96680 - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/kern/parser.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/grub-core/kern/parser.c b/grub-core/kern/parser.c -index 619db31..d1cf061 100644 ---- a/grub-core/kern/parser.c -+++ b/grub-core/kern/parser.c -@@ -146,6 +146,7 @@ grub_parser_split_cmdline (const char *cmdline, - int i; - - *argc = 0; -+ *argv = NULL; - do - { - if (!rd || !*rd) -@@ -207,6 +208,10 @@ grub_parser_split_cmdline (const char *cmdline, - (*argc)++; - } - -+ /* If there are no args, then we're done. */ -+ if (!*argc) -+ return 0; -+ - /* Reserve memory for the return values. */ - args = grub_malloc (bp - buffer); - if (!args) --- -2.23.0 - diff --git a/backport-0001-CVE-2020-27779-and-CVE-2020-14372.patch b/backport-0001-CVE-2020-27779-and-CVE-2020-14372.patch deleted file mode 100644 index 2476441..0000000 --- a/backport-0001-CVE-2020-27779-and-CVE-2020-14372.patch +++ /dev/null @@ -1,129 +0,0 @@ -From ea5950d8597278ba9066f24d7abcee403f825668 Mon Sep 17 00:00:00 2001 -From: Marco A Benatto -Date: Wed, 23 Sep 2020 11:33:33 -0400 -Subject: [PATCH 07/46] verifiers: Move verifiers API to kernel image - -Move verifiers API from a module to the kernel image, so it can be -used there as well. There are no functional changes in this patch. - -Signed-off-by: Marco A Benatto -Signed-off-by: Javier Martinez Canillas -Reviewed-by: Daniel Kiper ---- - grub-core/Makefile.am | 1 + - grub-core/Makefile.core.def | 6 +----- - grub-core/kern/main.c | 4 ++++ - grub-core/{commands => kern}/verifiers.c | 8 ++------ - include/grub/verify.h | 9 ++++++--- - 5 files changed, 14 insertions(+), 14 deletions(-) - rename grub-core/{commands => kern}/verifiers.c (97%) - -diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index 5ff3afd62..3569b7101 100644 ---- a/grub-core/Makefile.am -+++ b/grub-core/Makefile.am -@@ -91,6 +91,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/parser.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/partition.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/term.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/time.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/verify.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/mm_private.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/net.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/memory.h -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 072b1628c..5cb869f5b 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -140,6 +140,7 @@ kernel = { - common = kern/rescue_reader.c; - common = kern/term.c; - common = kern/backtrace.c; -+ common = kern/verifiers.c; - - x86 = kern/i386/backtrace.c; - i386_xen = kern/i386/backtrace.c; -@@ -943,11 +944,6 @@ module = { - cppflags = '-I$(srcdir)/lib/posix_wrap'; - }; - --module = { -- name = verifiers; -- common = commands/verifiers.c; --}; -- - module = { - name = shim_lock; - common = commands/efi/shim_lock.c; -diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c -index 9cad0c448..73967e2f5 100644 ---- a/grub-core/kern/main.c -+++ b/grub-core/kern/main.c -@@ -29,6 +29,7 @@ - #include - #include - #include -+#include - - #ifdef GRUB_MACHINE_PCBIOS - #include -@@ -274,6 +275,9 @@ grub_main (void) - - grub_boot_time ("After machine init."); - -+ /* Init verifiers API. */ -+ grub_verifiers_init (); -+ - grub_load_config (); - - grub_boot_time ("Before loading embedded modules."); -diff --git a/grub-core/commands/verifiers.c b/grub-core/kern/verifiers.c -similarity index 97% -rename from grub-core/commands/verifiers.c -rename to grub-core/kern/verifiers.c -index 7b9297cd3..3d19bffd1 100644 ---- a/grub-core/commands/verifiers.c -+++ b/grub-core/kern/verifiers.c -@@ -218,12 +218,8 @@ grub_verify_string (char *str, enum grub_verify_string_type type) - return GRUB_ERR_NONE; - } - --GRUB_MOD_INIT(verifiers) -+void -+grub_verifiers_init (void) - { - grub_file_filter_register (GRUB_FILE_FILTER_VERIFY, grub_verifiers_open); - } -- --GRUB_MOD_FINI(verifiers) --{ -- grub_file_filter_unregister (GRUB_FILE_FILTER_VERIFY); --} -diff --git a/include/grub/verify.h b/include/grub/verify.h -index ea0491433..cd129c398 100644 ---- a/include/grub/verify.h -+++ b/include/grub/verify.h -@@ -64,7 +64,10 @@ struct grub_file_verifier - grub_err_t (*verify_string) (char *str, enum grub_verify_string_type type); - }; - --extern struct grub_file_verifier *grub_file_verifiers; -+extern struct grub_file_verifier *EXPORT_VAR (grub_file_verifiers); -+ -+extern void -+grub_verifiers_init (void); - - static inline void - grub_verifier_register (struct grub_file_verifier *ver) -@@ -78,7 +81,7 @@ grub_verifier_unregister (struct grub_file_verifier *ver) - grub_list_remove (GRUB_AS_LIST (ver)); - } - --grub_err_t --grub_verify_string (char *str, enum grub_verify_string_type type); -+extern grub_err_t -+EXPORT_FUNC (grub_verify_string) (char *str, enum grub_verify_string_type type); - - #endif /* ! GRUB_VERIFY_HEADER */ --- -2.26.2 - diff --git a/backport-0001-mmap-Fix-memory-leak-when-iterating-over-mapped-memo.patch b/backport-0001-mmap-Fix-memory-leak-when-iterating-over-mapped-memo.patch deleted file mode 100644 index b3646bb..0000000 --- a/backport-0001-mmap-Fix-memory-leak-when-iterating-over-mapped-memo.patch +++ /dev/null @@ -1,40 +0,0 @@ -From e0cd3c9d4dd8e2f796e32e9cc0061e2298e18ef2 Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Thu, 3 Dec 2020 14:39:45 +0000 -Subject: [PATCH] mmap: Fix memory leak when iterating over mapped memory -When returning from grub_mmap_iterate() the memory allocated to present -is not being released causing it to leak. - -Fixes: CID 96655 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=8cb2848f9699642a698af84b12ba187cab722031 - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/mmap/mmap.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/grub-core/mmap/mmap.c b/grub-core/mmap/mmap.c -index 3cae683..c8c8312 100644 ---- a/grub-core/mmap/mmap.c -+++ b/grub-core/mmap/mmap.c -@@ -270,6 +270,7 @@ grub_mmap_iterate (grub_memory_hook_t hook, void *hook_data) - hook_data)) - { - grub_free (ctx.scanline_events); -+ grub_free (present); - return GRUB_ERR_NONE; - } - -@@ -282,6 +283,7 @@ grub_mmap_iterate (grub_memory_hook_t hook, void *hook_data) - } - - grub_free (ctx.scanline_events); -+ grub_free (present); - return GRUB_ERR_NONE; - } - --- -2.19.1 - diff --git a/backport-0002-CVE-2020-27749.patch b/backport-0002-CVE-2020-27749.patch deleted file mode 100644 index 51b3c28..0000000 --- a/backport-0002-CVE-2020-27749.patch +++ /dev/null @@ -1,77 +0,0 @@ -From c6c426e5ab6ea715153b72584de6bd8c82f698ec Mon Sep 17 00:00:00 2001 -From: Chris Coulson -Date: Wed, 18 Nov 2020 00:59:24 +0000 -Subject: kern/parser: Fix a memory leak - -The getline() function supplied to grub_parser_split_cmdline() returns -a newly allocated buffer and can be called multiple times, but the -returned buffer is never freed. - -Signed-off-by: Chris Coulson -Reviewed-by: Daniel Kiper ---- - grub-core/kern/parser.c | 22 +++++++++++++++++----- - 1 file changed, 17 insertions(+), 5 deletions(-) - -diff --git a/grub-core/kern/parser.c b/grub-core/kern/parser.c -index d1cf061..0163a62 100644 ---- a/grub-core/kern/parser.c -+++ b/grub-core/kern/parser.c -@@ -141,6 +141,7 @@ grub_parser_split_cmdline (const char *cmdline, - char *bp = buffer; - char *rd = (char *) cmdline; - char varname[200]; -+ char *rp = rd; - char *vp = varname; - char *args; - int i; -@@ -149,10 +150,18 @@ grub_parser_split_cmdline (const char *cmdline, - *argv = NULL; - do - { -- if (!rd || !*rd) -- { -+ if (rp == NULL || *rp == '\0') -+ { -+ if (rd != cmdline) -+ { -+ grub_free (rd); -+ rd = rp = NULL; -+ } - if (getline) -- getline (&rd, 1, getline_data); -+ { -+ getline (&rd, 1, getline_data); -+ rp = rd; -+ } - else - break; - } -@@ -160,12 +169,12 @@ grub_parser_split_cmdline (const char *cmdline, - if (!rd) - break; - -- for (; *rd; rd++) -+ for (; *rp != '\0'; rp++) - { - grub_parser_state_t newstate; - char use; - -- newstate = grub_parser_cmdline_state (state, *rd, &use); -+ newstate = grub_parser_cmdline_state (state, *rp, &use); - - /* If a variable was being processed and this character does - not describe the variable anymore, write the variable to -@@ -198,6 +207,9 @@ grub_parser_split_cmdline (const char *cmdline, - } - while (state != GRUB_PARSER_STATE_TEXT && !check_varstate (state)); - -+ if (rd != cmdline) -+ grub_free (rd); -+ - /* A special case for when the last character was part of a - variable. */ - add_var (varname, &bp, &vp, state, GRUB_PARSER_STATE_TEXT); --- -2.23.0 - diff --git a/backport-0002-CVE-2020-27779-and-CVE-2020-14372.patch b/backport-0002-CVE-2020-27779-and-CVE-2020-14372.patch deleted file mode 100644 index 3806ee1..0000000 --- a/backport-0002-CVE-2020-27779-and-CVE-2020-14372.patch +++ /dev/null @@ -1,430 +0,0 @@ -From 1aebb5645e749917034444b24b88825ea557cae9 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Mon, 28 Sep 2020 20:08:02 +0200 -Subject: [PATCH 09/46] kern: Add lockdown support - -When the GRUB starts on a secure boot platform, some commands can be -used to subvert the protections provided by the verification mechanism and -could lead to booting untrusted system. - -To prevent that situation, allow GRUB to be locked down. That way the code -may check if GRUB has been locked down and further restrict the commands -that are registered or what subset of their functionality could be used. - -The lockdown support adds the following components: - -* The grub_lockdown() function which can be used to lockdown GRUB if, - e.g., UEFI Secure Boot is enabled. - -* The grub_is_lockdown() function which can be used to check if the GRUB - was locked down. - -* A verifier that flags OS kernels, the GRUB modules, Device Trees and ACPI - tables as GRUB_VERIFY_FLAGS_DEFER_AUTH to defer verification to other - verifiers. These files are only successfully verified if another registered - verifier returns success. Otherwise, the whole verification process fails. - - For example, PE/COFF binaries verification can be done by the shim_lock - verifier which validates the signatures using the shim_lock protocol. - However, the verification is not deferred directly to the shim_lock verifier. - The shim_lock verifier is hooked into the verification process instead. - -* A set of grub_{command,extcmd}_lockdown functions that can be used by - code registering command handlers, to only register unsafe commands if - the GRUB has not been locked down. - -Signed-off-by: Javier Martinez Canillas -Reviewed-by: Daniel Kiper ---- - conf/Makefile.common | 2 + - docs/grub-dev.texi | 27 +++++++++++++ - docs/grub.texi | 8 ++++ - grub-core/Makefile.am | 5 ++- - grub-core/Makefile.core.def | 1 + - grub-core/commands/extcmd.c | 23 +++++++++++ - grub-core/kern/command.c | 24 +++++++++++ - grub-core/kern/lockdown.c | 80 +++++++++++++++++++++++++++++++++++++ - include/grub/command.h | 5 +++ - include/grub/extcmd.h | 7 ++++ - include/grub/lockdown.h | 44 ++++++++++++++++++++ - 11 files changed, 225 insertions(+), 1 deletion(-) - create mode 100644 grub-core/kern/lockdown.c - create mode 100644 include/grub/lockdown.h - -diff --git a/conf/Makefile.common b/conf/Makefile.common -index 6cd71cbb2..2a1a886f6 100644 ---- a/conf/Makefile.common -+++ b/conf/Makefile.common -@@ -84,7 +84,9 @@ CPPFLAGS_PARTTOOL_LIST = -Dgrub_parttool_register=PARTTOOL_LIST_MARKER - CPPFLAGS_TERMINAL_LIST = '-Dgrub_term_register_input(...)=INPUT_TERMINAL_LIST_MARKER(__VA_ARGS__)' - CPPFLAGS_TERMINAL_LIST += '-Dgrub_term_register_output(...)=OUTPUT_TERMINAL_LIST_MARKER(__VA_ARGS__)' - CPPFLAGS_COMMAND_LIST = '-Dgrub_register_command(...)=COMMAND_LIST_MARKER(__VA_ARGS__)' -+CPPFLAGS_COMMAND_LIST += '-Dgrub_register_command_lockdown(...)=COMMAND_LOCKDOWN_LIST_MARKER(__VA_ARGS__)' - CPPFLAGS_COMMAND_LIST += '-Dgrub_register_extcmd(...)=EXTCOMMAND_LIST_MARKER(__VA_ARGS__)' -+CPPFLAGS_COMMAND_LIST += '-Dgrub_register_extcmd_lockdown(...)=EXTCOMMAND_LOCKDOWN_LIST_MARKER(__VA_ARGS__)' - CPPFLAGS_COMMAND_LIST += '-Dgrub_register_command_p1(...)=P1COMMAND_LIST_MARKER(__VA_ARGS__)' - CPPFLAGS_FDT_LIST := '-Dgrub_fdtbus_register(...)=FDT_DRIVER_LIST_MARKER(__VA_ARGS__)' - CPPFLAGS_MARKER = $(CPPFLAGS_FS_LIST) $(CPPFLAGS_VIDEO_LIST) \ -diff --git a/docs/grub-dev.texi b/docs/grub-dev.texi -index ee389fd83..635ec7231 100644 ---- a/docs/grub-dev.texi -+++ b/docs/grub-dev.texi -@@ -86,6 +86,7 @@ This edition documents version @value{VERSION}. - * PFF2 Font File Format:: - * Graphical Menu Software Design:: - * Verifiers framework:: -+* Lockdown framework:: - * Copying This Manual:: Copying This Manual - * Index:: - @end menu -@@ -2086,6 +2087,32 @@ Optionally at the end of the file @samp{fini}, if it exists, is called with just - the context. If you return no error during any of @samp{init}, @samp{write} and - @samp{fini} then the file is considered as having succeded verification. - -+@node Lockdown framework -+@chapter Lockdown framework -+ -+The GRUB can be locked down, which is a restricted mode where some operations -+are not allowed. For instance, some commands cannot be used when the GRUB is -+locked down. -+ -+The function -+@code{grub_lockdown()} is used to lockdown GRUB and the function -+@code{grub_is_lockdown()} function can be used to check whether lockdown is -+enabled or not. When enabled, the function returns @samp{GRUB_LOCKDOWN_ENABLED} -+and @samp{GRUB_LOCKDOWN_DISABLED} when is not enabled. -+ -+The following functions can be used to register the commands that can only be -+used when lockdown is disabled: -+ -+@itemize -+ -+@item @code{grub_cmd_lockdown()} registers command which should not run when the -+GRUB is in lockdown mode. -+ -+@item @code{grub_cmd_lockdown()} registers extended command which should not run -+when the GRUB is in lockdown mode. -+ -+@end itemize -+ - @node Copying This Manual - @appendix Copying This Manual - -diff --git a/docs/grub.texi b/docs/grub.texi -index d3fbc81db..a459a71e4 100644 ---- a/docs/grub.texi -+++ b/docs/grub.texi -@@ -5598,6 +5598,7 @@ environment variables and commands are listed in the same order. - * Using digital signatures:: Booting digitally signed code - * UEFI secure boot and shim:: Booting digitally signed PE files - * Measured Boot:: Measuring boot components -+* Lockdown:: Lockdown when booting on a secure setup - @end menu - - @node Authentication and authorisation -@@ -5812,6 +5813,13 @@ into @file{core.img} in order to avoid a potential gap in measurement between - - Measured boot is currently only supported on EFI platforms. - -+@node Lockdown -+@section Lockdown when booting on a secure setup -+ -+The GRUB can be locked down when booted on a secure boot environment, for example -+if the UEFI secure boot is enabled. On a locked down configuration, the GRUB will -+be restricted and some operations/commands cannot be executed. -+ - @node Platform limitations - @chapter Platform limitations - -diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index 3569b7101..6b2e5e139 100644 ---- a/grub-core/Makefile.am -+++ b/grub-core/Makefile.am -@@ -80,6 +80,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fs.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i18n.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/kernel.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/list.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/lockdown.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/misc.h - if COND_emu - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/compiler-rt-emu.h -@@ -378,8 +379,10 @@ command.lst: $(MARKER_FILES) - b=`basename $$pp .marker`; \ - sed -n \ - -e "/EXTCOMMAND_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/*\1: $$b/;p;}" \ -+ -e "/EXTCOMMAND_LOCKDOWN_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/*\1: $$b/;p;}" \ - -e "/P1COMMAND_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/*\1: $$b/;p;}" \ -- -e "/COMMAND_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/\1: $$b/;p;}" $$pp; \ -+ -e "/COMMAND_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/\1: $$b/;p;}" \ -+ -e "/COMMAND_LOCKDOWN_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/\1: $$b/;p;}" $$pp; \ - done) | sort -u > $@ - platform_DATA += command.lst - CLEANFILES += command.lst -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 8c8f8c579..a00e7f983 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -205,6 +205,7 @@ kernel = { - efi = term/efi/console.c; - efi = kern/acpi.c; - efi = kern/efi/acpi.c; -+ efi = kern/lockdown.c; - efi = lib/envblk.c; - i386_coreboot = kern/i386/pc/acpi.c; - i386_multiboot = kern/i386/pc/acpi.c; -diff --git a/grub-core/commands/extcmd.c b/grub-core/commands/extcmd.c -index 69574e2b0..90a5ca24a 100644 ---- a/grub-core/commands/extcmd.c -+++ b/grub-core/commands/extcmd.c -@@ -19,6 +19,7 @@ - - #include - #include -+#include - #include - #include - #include -@@ -110,6 +111,28 @@ grub_register_extcmd (const char *name, grub_extcmd_func_t func, - summary, description, parser, 1); - } - -+static grub_err_t -+grub_extcmd_lockdown (grub_extcmd_context_t ctxt __attribute__ ((unused)), -+ int argc __attribute__ ((unused)), -+ char **argv __attribute__ ((unused))) -+{ -+ return grub_error (GRUB_ERR_ACCESS_DENIED, -+ N_("%s: the command is not allowed when lockdown is enforced"), -+ ctxt->extcmd->cmd->name); -+} -+ -+grub_extcmd_t -+grub_register_extcmd_lockdown (const char *name, grub_extcmd_func_t func, -+ grub_command_flags_t flags, const char *summary, -+ const char *description, -+ const struct grub_arg_option *parser) -+{ -+ if (grub_is_lockdown () == GRUB_LOCKDOWN_ENABLED) -+ func = grub_extcmd_lockdown; -+ -+ return grub_register_extcmd (name, func, flags, summary, description, parser); -+} -+ - void - grub_unregister_extcmd (grub_extcmd_t ext) - { -diff --git a/grub-core/kern/command.c b/grub-core/kern/command.c -index acd721879..4aabcd4b5 100644 ---- a/grub-core/kern/command.c -+++ b/grub-core/kern/command.c -@@ -17,6 +17,7 @@ - * along with GRUB. If not, see . - */ - -+#include - #include - #include - -@@ -77,6 +78,29 @@ grub_register_command_prio (const char *name, - return cmd; - } - -+static grub_err_t -+grub_cmd_lockdown (grub_command_t cmd __attribute__ ((unused)), -+ int argc __attribute__ ((unused)), -+ char **argv __attribute__ ((unused))) -+ -+{ -+ return grub_error (GRUB_ERR_ACCESS_DENIED, -+ N_("%s: the command is not allowed when lockdown is enforced"), -+ cmd->name); -+} -+ -+grub_command_t -+grub_register_command_lockdown (const char *name, -+ grub_command_func_t func, -+ const char *summary, -+ const char *description) -+{ -+ if (grub_is_lockdown () == GRUB_LOCKDOWN_ENABLED) -+ func = grub_cmd_lockdown; -+ -+ return grub_register_command_prio (name, func, summary, description, 0); -+} -+ - void - grub_unregister_command (grub_command_t cmd) - { -diff --git a/grub-core/kern/lockdown.c b/grub-core/kern/lockdown.c -new file mode 100644 -index 000000000..1e56c0b80 ---- /dev/null -+++ b/grub-core/kern/lockdown.c -@@ -0,0 +1,80 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2020 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ * -+ */ -+ -+#include -+#include -+#include -+#include -+ -+static int lockdown = GRUB_LOCKDOWN_DISABLED; -+ -+static grub_err_t -+lockdown_verifier_init (grub_file_t io __attribute__ ((unused)), -+ enum grub_file_type type, -+ void **context __attribute__ ((unused)), -+ enum grub_verify_flags *flags) -+{ -+ *flags = GRUB_VERIFY_FLAGS_SKIP_VERIFICATION; -+ -+ switch (type & GRUB_FILE_TYPE_MASK) -+ { -+ case GRUB_FILE_TYPE_GRUB_MODULE: -+ case GRUB_FILE_TYPE_LINUX_KERNEL: -+ case GRUB_FILE_TYPE_MULTIBOOT_KERNEL: -+ case GRUB_FILE_TYPE_XEN_HYPERVISOR: -+ case GRUB_FILE_TYPE_BSD_KERNEL: -+ case GRUB_FILE_TYPE_XNU_KERNEL: -+ case GRUB_FILE_TYPE_PLAN9_KERNEL: -+ case GRUB_FILE_TYPE_NTLDR: -+ case GRUB_FILE_TYPE_TRUECRYPT: -+ case GRUB_FILE_TYPE_FREEDOS: -+ case GRUB_FILE_TYPE_PXECHAINLOADER: -+ case GRUB_FILE_TYPE_PCCHAINLOADER: -+ case GRUB_FILE_TYPE_COREBOOT_CHAINLOADER: -+ case GRUB_FILE_TYPE_EFI_CHAINLOADED_IMAGE: -+ case GRUB_FILE_TYPE_ACPI_TABLE: -+ case GRUB_FILE_TYPE_DEVICE_TREE_IMAGE: -+ *flags = GRUB_VERIFY_FLAGS_DEFER_AUTH; -+ -+ /* Fall through. */ -+ -+ default: -+ return GRUB_ERR_NONE; -+ } -+} -+ -+struct grub_file_verifier lockdown_verifier = -+ { -+ .name = "lockdown_verifier", -+ .init = lockdown_verifier_init, -+ }; -+ -+void -+grub_lockdown (void) -+{ -+ lockdown = GRUB_LOCKDOWN_ENABLED; -+ -+ grub_verifier_register (&lockdown_verifier); -+} -+ -+int -+grub_is_lockdown (void) -+{ -+ return lockdown; -+} -diff --git a/include/grub/command.h b/include/grub/command.h -index eee4e847e..2a6f7f846 100644 ---- a/include/grub/command.h -+++ b/include/grub/command.h -@@ -86,6 +86,11 @@ EXPORT_FUNC(grub_register_command_prio) (const char *name, - const char *summary, - const char *description, - int prio); -+grub_command_t -+EXPORT_FUNC(grub_register_command_lockdown) (const char *name, -+ grub_command_func_t func, -+ const char *summary, -+ const char *description); - void EXPORT_FUNC(grub_unregister_command) (grub_command_t cmd); - - static inline grub_command_t -diff --git a/include/grub/extcmd.h b/include/grub/extcmd.h -index 19fe59266..fe9248b8b 100644 ---- a/include/grub/extcmd.h -+++ b/include/grub/extcmd.h -@@ -62,6 +62,13 @@ grub_extcmd_t EXPORT_FUNC(grub_register_extcmd) (const char *name, - const char *description, - const struct grub_arg_option *parser); - -+grub_extcmd_t EXPORT_FUNC(grub_register_extcmd_lockdown) (const char *name, -+ grub_extcmd_func_t func, -+ grub_command_flags_t flags, -+ const char *summary, -+ const char *description, -+ const struct grub_arg_option *parser); -+ - grub_extcmd_t EXPORT_FUNC(grub_register_extcmd_prio) (const char *name, - grub_extcmd_func_t func, - grub_command_flags_t flags, -diff --git a/include/grub/lockdown.h b/include/grub/lockdown.h -new file mode 100644 -index 000000000..40531fa82 ---- /dev/null -+++ b/include/grub/lockdown.h -@@ -0,0 +1,44 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2020 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#ifndef GRUB_LOCKDOWN_H -+#define GRUB_LOCKDOWN_H 1 -+ -+#include -+ -+#define GRUB_LOCKDOWN_DISABLED 0 -+#define GRUB_LOCKDOWN_ENABLED 1 -+ -+#ifdef GRUB_MACHINE_EFI -+extern void -+EXPORT_FUNC (grub_lockdown) (void); -+extern int -+EXPORT_FUNC (grub_is_lockdown) (void); -+#else -+static inline void -+grub_lockdown (void) -+{ -+} -+ -+static inline int -+grub_is_lockdown (void) -+{ -+ return GRUB_LOCKDOWN_DISABLED; -+} -+#endif -+#endif /* ! GRUB_LOCKDOWN_H */ --- -2.26.2 - diff --git a/backport-0002-net-net-Fix-possible-dereference-to-of-a-NULL-pointe.patch b/backport-0002-net-net-Fix-possible-dereference-to-of-a-NULL-pointe.patch deleted file mode 100644 index c4c03e0..0000000 --- a/backport-0002-net-net-Fix-possible-dereference-to-of-a-NULL-pointe.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 1600d11874762eab2235555e0171215cf9258da5 Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Fri, 27 Nov 2020 15:10:26 +0000 -Subject: [PATCH] net/net: Fix possible dereference to of a NULL pointer - -It is always possible that grub_zalloc() could fail, so we should check for -a NULL return. Otherwise we run the risk of dereferencing a NULL pointer. - -Fixes: CID 296221 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=03f2515ae0c503406f1a99a2178405049c6555db ---- - grub-core/net/net.c | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - -diff --git a/grub-core/net/net.c b/grub-core/net/net.c -index ad024c9..d2fac17 100644 ---- a/grub-core/net/net.c -+++ b/grub-core/net/net.c -@@ -89,8 +89,13 @@ grub_net_link_layer_add_address (struct grub_net_card *card, - - /* Add sender to cache table. */ - if (card->link_layer_table == NULL) -- card->link_layer_table = grub_zalloc (LINK_LAYER_CACHE_SIZE -- * sizeof (card->link_layer_table[0])); -+ { -+ card->link_layer_table = grub_zalloc (LINK_LAYER_CACHE_SIZE -+ * sizeof (card->link_layer_table[0])); -+ if (card->link_layer_table == NULL) -+ return; -+ } -+ - entry = &(card->link_layer_table[card->new_ll_entry]); - entry->avail = 1; - grub_memcpy (&entry->ll_address, ll, sizeof (entry->ll_address)); --- -2.19.1 - diff --git a/backport-0003-CVE-2020-27749.patch b/backport-0003-CVE-2020-27749.patch deleted file mode 100644 index 4cfac0a..0000000 --- a/backport-0003-CVE-2020-27749.patch +++ /dev/null @@ -1,119 +0,0 @@ -From b1c9e9e889e4273fb15712051c887e6078511448 Mon Sep 17 00:00:00 2001 -From: Chris Coulson -Date: Tue, 5 Jan 2021 22:17:28 +0000 -Subject: kern/parser: Introduce process_char() helper - -grub_parser_split_cmdline() iterates over each command line character. -In order to add error checking and to simplify the subsequent error -handling, split the character processing in to a separate function. - -Signed-off-by: Chris Coulson -Reviewed-by: Daniel Kiper ---- - grub-core/kern/parser.c | 74 +++++++++++++++++++++++++---------------- - 1 file changed, 46 insertions(+), 28 deletions(-) - -diff --git a/grub-core/kern/parser.c b/grub-core/kern/parser.c -index 0163a62..7e1ba99 100644 ---- a/grub-core/kern/parser.c -+++ b/grub-core/kern/parser.c -@@ -1,7 +1,7 @@ - /* parser.c - the part of the parser that can return partial tokens */ - /* - * GRUB -- GRand Unified Bootloader -- * Copyright (C) 2005,2007,2009 Free Software Foundation, Inc. -+ * Copyright (C) 2005,2007,2009,2021 Free Software Foundation, Inc. - * - * GRUB is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by -@@ -129,6 +129,46 @@ add_var (char *varname, char **bp, char **vp, - *((*bp)++) = *val; - } - -+static grub_err_t -+process_char (char c, char *buffer, char **bp, char *varname, char **vp, -+ grub_parser_state_t state, int *argc, -+ grub_parser_state_t *newstate) -+{ -+ char use; -+ -+ *newstate = grub_parser_cmdline_state (state, c, &use); -+ -+ /* -+ * If a variable was being processed and this character does -+ * not describe the variable anymore, write the variable to -+ * the buffer. -+ */ -+ add_var (varname, bp, vp, state, *newstate); -+ -+ if (check_varstate (*newstate)) -+ { -+ if (use) -+ *((*vp)++) = use; -+ } -+ else if (*newstate == GRUB_PARSER_STATE_TEXT && -+ state != GRUB_PARSER_STATE_ESC && grub_isspace (use)) -+ { -+ /* -+ * Don't add more than one argument if multiple -+ * spaces are used. -+ */ -+ if (*bp != buffer && *((*bp) - 1) != '\0') -+ { -+ *((*bp)++) = '\0'; -+ (*argc)++; -+ } -+ } -+ else if (use) -+ *((*bp)++) = use; -+ -+ return GRUB_ERR_NONE; -+} -+ - grub_err_t - grub_parser_split_cmdline (const char *cmdline, - grub_reader_getline_t getline, void *getline_data, -@@ -172,35 +212,13 @@ grub_parser_split_cmdline (const char *cmdline, - for (; *rp != '\0'; rp++) - { - grub_parser_state_t newstate; -- char use; -- -- newstate = grub_parser_cmdline_state (state, *rp, &use); - -- /* If a variable was being processed and this character does -- not describe the variable anymore, write the variable to -- the buffer. */ -- add_var (varname, &bp, &vp, state, newstate); -- -- if (check_varstate (newstate)) -- { -- if (use) -- *(vp++) = use; -- } -- else -+ if (process_char (*rp, buffer, &bp, varname, &vp, state, argc, -+ &newstate) != GRUB_ERR_NONE) - { -- if (newstate == GRUB_PARSER_STATE_TEXT -- && state != GRUB_PARSER_STATE_ESC && grub_isspace (use)) -- { -- /* Don't add more than one argument if multiple -- spaces are used. */ -- if (bp != buffer && *(bp - 1)) -- { -- *(bp++) = '\0'; -- (*argc)++; -- } -- } -- else if (use) -- *(bp++) = use; -+ if (rd != cmdline) -+ grub_free (rd); -+ return grub_errno; - } - state = newstate; - } --- -2.23.0 - diff --git a/backport-0003-CVE-2020-27779-and-CVE-2020-14372.patch b/backport-0003-CVE-2020-27779-and-CVE-2020-14372.patch deleted file mode 100644 index e785f4a..0000000 --- a/backport-0003-CVE-2020-27779-and-CVE-2020-14372.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 959db537b12c5e76c244ccc51cbbed7f27b0abe2 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Tue, 2 Feb 2021 19:59:48 +0100 -Subject: [PATCH 10/46] kern/lockdown: Set a variable if the GRUB is locked - down - -It may be useful for scripts to determine whether the GRUB is locked -down or not. Add the lockdown variable which is set to "y" when the GRUB -is locked down. - -Suggested-by: Dimitri John Ledkov -Signed-off-by: Javier Martinez Canillas -Reviewed-by: Daniel Kiper ---- - docs/grub.texi | 3 +++ - grub-core/kern/lockdown.c | 4 ++++ - 2 files changed, 7 insertions(+) - -diff --git a/docs/grub.texi b/docs/grub.texi -index a459a71e4..3a4d18e06 100644 ---- a/docs/grub.texi -+++ b/docs/grub.texi -@@ -5820,6 +5820,9 @@ The GRUB can be locked down when booted on a secure boot environment, for exampl - if the UEFI secure boot is enabled. On a locked down configuration, the GRUB will - be restricted and some operations/commands cannot be executed. - -+The @samp{lockdown} variable is set to @samp{y} when the GRUB is locked down. -+Otherwise it does not exit. -+ - @node Platform limitations - @chapter Platform limitations - -diff --git a/grub-core/kern/lockdown.c b/grub-core/kern/lockdown.c -index 1e56c0b80..0bc70fd42 100644 ---- a/grub-core/kern/lockdown.c -+++ b/grub-core/kern/lockdown.c -@@ -18,6 +18,7 @@ - */ - - #include -+#include - #include - #include - #include -@@ -71,6 +72,9 @@ grub_lockdown (void) - lockdown = GRUB_LOCKDOWN_ENABLED; - - grub_verifier_register (&lockdown_verifier); -+ -+ grub_env_set ("lockdown", "y"); -+ grub_env_export ("lockdown"); - } - - int --- -2.26.2 - diff --git a/backport-0003-net-tftp-Fix-dangling-memory-pointer.patch b/backport-0003-net-tftp-Fix-dangling-memory-pointer.patch deleted file mode 100644 index 0b05891..0000000 --- a/backport-0003-net-tftp-Fix-dangling-memory-pointer.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 7d02eb14ad9119643e9727b11efff13662fe9063 Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Fri, 19 Feb 2021 17:12:23 +0000 -Subject: [PATCH] net/tftp: Fix dangling memory pointer - -The static code analysis tool, Parfait, reported that the valid of -file->data was left referencing memory that was freed by the call to -grub_free(data) where data was initialized from file->data. - -To ensure that there is no unintentional access to this memory -referenced by file->data we should set the pointer to NULL. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/grub-core/net/tftp.c?id=0cb838b281a68b536a09681f9557ea6a7ac5da7a - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/net/tftp.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c -index c054072..658caa2 100644 ---- a/grub-core/net/tftp.c -+++ b/grub-core/net/tftp.c -@@ -448,6 +448,7 @@ tftp_close (struct grub_file *file) - grub_net_udp_close (data->sock); - } - grub_free (data); -+ file->data = NULL; - return GRUB_ERR_NONE; - } - --- -2.19.1 - diff --git a/backport-0004-CVE-2020-27749.patch b/backport-0004-CVE-2020-27749.patch deleted file mode 100644 index bec946e..0000000 --- a/backport-0004-CVE-2020-27749.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 3d157bbd06506b170fde5ec23980c4bf9f7660e2 Mon Sep 17 00:00:00 2001 -From: Chris Coulson -Date: Thu, 7 Jan 2021 19:53:55 +0000 -Subject: kern/parser: Introduce terminate_arg() helper - -process_char() and grub_parser_split_cmdline() use similar code for -terminating the most recent argument. Add a helper function for this. - -Signed-off-by: Chris Coulson -Reviewed-by: Daniel Kiper ---- - grub-core/kern/parser.c | 23 +++++++++++++---------- - 1 file changed, 13 insertions(+), 10 deletions(-) - -diff --git a/grub-core/kern/parser.c b/grub-core/kern/parser.c -index 7e1ba99..45d0871 100644 ---- a/grub-core/kern/parser.c -+++ b/grub-core/kern/parser.c -@@ -129,6 +129,16 @@ add_var (char *varname, char **bp, char **vp, - *((*bp)++) = *val; - } - -+static void -+terminate_arg (char *buffer, char **bp, int *argc) -+{ -+ if (*bp != buffer && *((*bp) - 1) != '\0') -+ { -+ *((*bp)++) = '\0'; -+ (*argc)++; -+ } -+} -+ - static grub_err_t - process_char (char c, char *buffer, char **bp, char *varname, char **vp, - grub_parser_state_t state, int *argc, -@@ -157,11 +167,7 @@ process_char (char c, char *buffer, char **bp, char *varname, char **vp, - * Don't add more than one argument if multiple - * spaces are used. - */ -- if (*bp != buffer && *((*bp) - 1) != '\0') -- { -- *((*bp)++) = '\0'; -- (*argc)++; -- } -+ terminate_arg (buffer, bp, argc); - } - else if (use) - *((*bp)++) = use; -@@ -232,11 +238,8 @@ grub_parser_split_cmdline (const char *cmdline, - variable. */ - add_var (varname, &bp, &vp, state, GRUB_PARSER_STATE_TEXT); - -- if (bp != buffer && *(bp - 1)) -- { -- *(bp++) = '\0'; -- (*argc)++; -- } -+ /* Ensure that the last argument is terminated. */ -+ terminate_arg (buffer, &bp, argc); - - /* If there are no args, then we're done. */ - if (!*argc) --- -2.23.0 - diff --git a/backport-0004-CVE-2020-27779-and-CVE-2020-14372.patch b/backport-0004-CVE-2020-27779-and-CVE-2020-14372.patch deleted file mode 100644 index aea97f9..0000000 --- a/backport-0004-CVE-2020-27779-and-CVE-2020-14372.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Mon, 28 Sep 2020 20:08:29 +0200 -Subject: [PATCH] efi: Lockdown the GRUB when the UEFI Secure Boot is enabled - -If the UEFI Secure Boot is enabled then the GRUB must be locked down -to prevent executing code that can potentially be used to subvert its -verification mechanisms. - -Signed-off-by: Javier Martinez Canillas -Reviewed-by: Daniel Kiper ---- - grub-core/kern/efi/init.c | 19 +++++++++++++++++++ - 1 file changed, 19 insertions(+) - -diff --git a/grub-core/kern/efi/init.c b/grub-core/kern/efi/init.c -index 2ffb520..634e3ac 100644 ---- a/grub-core/kern/efi/init.c -+++ b/grub-core/kern/efi/init.c -@@ -20,6 +20,8 @@ - #include - #include - #include -+#include -+#include - #include - #include - #include -@@ -88,6 +90,23 @@ grub_efi_init (void) - /* Initialize the memory management system. */ - grub_efi_mm_init (); - -+ /* -+ * Lockdown the GRUB and register the shim_lock verifier -+ * if the UEFI Secure Boot is enabled. -+ */ -+ if (grub_efi_secure_boot ()) -+ { -+ grub_lockdown (); -+ -+ /* -+ * TODO: Move GRUB to using the shim_lock verifier and -+ * enable the lockdown verifier. -+ */ -+#if 0 -+ grub_shim_lock_verifier_setup (); -+#endif -+ } -+ - efi_call_4 (grub_efi_system_table->boot_services->set_watchdog_timer, - 0, 0, 0, NULL); - --- -2.23.0 \ No newline at end of file diff --git a/backport-0004-kern-efi-Fix-memory-leak-on-failure.patch b/backport-0004-kern-efi-Fix-memory-leak-on-failure.patch deleted file mode 100644 index dbc8de8..0000000 --- a/backport-0004-kern-efi-Fix-memory-leak-on-failure.patch +++ /dev/null @@ -1,31 +0,0 @@ -From b62f77df4d5582bf0999f92f3cf53cb6e3c100ec Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Thu, 5 Nov 2020 10:15:25 +0000 -Subject: [PATCH] kern/efi: Fix memory leak on failure -Free the memory allocated to name before returning on failure. - -Fixes: CID 296222 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=ed286ceba6015d37a9304f04602451c47bf195d7 - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/kern/efi/efi.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index c45c8f4..f3e24f9 100644 ---- a/grub-core/kern/efi/efi.c -+++ b/grub-core/kern/efi/efi.c -@@ -406,6 +406,7 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0) - { - grub_error (GRUB_ERR_OUT_OF_RANGE, - "malformed EFI Device Path node has length=%d", len); -+ grub_free (name); - return NULL; - } - --- -2.19.1 - diff --git a/backport-0005-CVE-2020-27749.patch b/backport-0005-CVE-2020-27749.patch deleted file mode 100644 index 4cf21e0..0000000 --- a/backport-0005-CVE-2020-27749.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 8bc817014ce3d7a498db44eae33c8b90e2430926 Mon Sep 17 00:00:00 2001 -From: Chris Coulson -Date: Wed, 6 Jan 2021 13:54:26 +0000 -Subject: kern/parser: Refactor grub_parser_split_cmdline() cleanup - -Introduce a common function epilogue used for cleaning up on all -return paths, which will simplify additional error handling to be -introduced in a subsequent commit. - -Signed-off-by: Chris Coulson -Reviewed-by: Daniel Kiper ---- - grub-core/kern/parser.c | 35 ++++++++++++++++++++--------------- - 1 file changed, 20 insertions(+), 15 deletions(-) - -diff --git a/grub-core/kern/parser.c b/grub-core/kern/parser.c -index 572c67089..e010eaa1f 100644 ---- a/grub-core/kern/parser.c -+++ b/grub-core/kern/parser.c -@@ -221,19 +221,13 @@ grub_parser_split_cmdline (const char *cmdline, - - if (process_char (*rp, buffer, &bp, varname, &vp, state, argc, - &newstate) != GRUB_ERR_NONE) -- { -- if (rd != cmdline) -- grub_free (rd); -- return grub_errno; -- } -+ goto fail; -+ - state = newstate; - } - } - while (state != GRUB_PARSER_STATE_TEXT && !check_varstate (state)); - -- if (rd != cmdline) -- grub_free (rd); -- - /* A special case for when the last character was part of a - variable. */ - add_var (varname, &bp, &vp, state, GRUB_PARSER_STATE_TEXT); -@@ -243,20 +237,20 @@ grub_parser_split_cmdline (const char *cmdline, - - /* If there are no args, then we're done. */ - if (!*argc) -- return 0; -+ { -+ grub_errno = GRUB_ERR_NONE; -+ goto out; -+ } - - /* Reserve memory for the return values. */ - args = grub_malloc (bp - buffer); - if (!args) -- return grub_errno; -+ goto fail; - grub_memcpy (args, buffer, bp - buffer); - - *argv = grub_calloc (*argc + 1, sizeof (char *)); - if (!*argv) -- { -- grub_free (args); -- return grub_errno; -- } -+ goto fail; - - /* The arguments are separated with 0's, setup argv so it points to - the right values. */ -@@ -269,7 +263,18 @@ grub_parser_split_cmdline (const char *cmdline, - bp++; - } - -- return 0; -+ grub_errno = GRUB_ERR_NONE; -+ -+ out: -+ if (rd != cmdline) -+ grub_free (rd); -+ -+ return grub_errno; -+ -+ fail: -+ grub_free (*argv); -+ grub_free (args); -+ goto out; - } - - /* Helper for grub_parser_execute. */ --- -cgit v1.2.1 \ No newline at end of file diff --git a/backport-0005-CVE-2020-27779-and-CVE-2020-14372.patch b/backport-0005-CVE-2020-27779-and-CVE-2020-14372.patch deleted file mode 100644 index 0402b17..0000000 --- a/backport-0005-CVE-2020-27779-and-CVE-2020-14372.patch +++ /dev/null @@ -1,129 +0,0 @@ -From 8f73052885892bc0dbc01e297f79d7cf4925e491 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Mon, 28 Sep 2020 20:08:33 +0200 -Subject: efi: Use grub_is_lockdown() instead of hardcoding a disabled modules - list - -Now the GRUB can check if it has been locked down and this can be used to -prevent executing commands that can be utilized to circumvent the UEFI -Secure Boot mechanisms. So, instead of hardcoding a list of modules that -have to be disabled, prevent the usage of commands that can be dangerous. - -This not only allows the commands to be disabled on other platforms, but -also properly separate the concerns. Since the shim_lock verifier logic -should be only about preventing to run untrusted binaries and not about -defining these kind of policies. - -Signed-off-by: Javier Martinez Canillas -Reviewed-by: Daniel Kiper ---- - docs/grub.texi | 15 +++++++----- - grub-core/commands/i386/wrmsr.c | 5 ++-- - grub-core/commands/iorw.c | 19 +++++++-------- - grub-core/commands/memrw.c | 19 +++++++-------- - 4 files changed, 32 insertions(+), 67 deletions(-) - -diff --git a/grub-core/commands/i386/wrmsr.c b/grub-core/commands/i386/wrmsr.c -index 9c5e510eb..56a29c29f 100644 ---- a/grub-core/commands/i386/wrmsr.c -+++ b/grub-core/commands/i386/wrmsr.c -@@ -24,6 +24,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -83,8 +84,8 @@ grub_cmd_msr_write (grub_command_t cmd __attribute__ ((unused)), int argc, char - - GRUB_MOD_INIT(wrmsr) - { -- cmd_write = grub_register_command ("wrmsr", grub_cmd_msr_write, N_("ADDR VALUE"), -- N_("Write a value to a CPU model specific register.")); -+ cmd_write = grub_register_command_lockdown ("wrmsr", grub_cmd_msr_write, N_("ADDR VALUE"), -+ N_("Write a value to a CPU model specific register.")); - } - - GRUB_MOD_FINI(wrmsr) -diff --git a/grub-core/commands/iorw.c b/grub-core/commands/iorw.c -index a0c164e54..584baec8f 100644 ---- a/grub-core/commands/iorw.c -+++ b/grub-core/commands/iorw.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -131,17 +132,17 @@ GRUB_MOD_INIT(memrw) - N_("PORT"), N_("Read 32-bit value from PORT."), - options); - cmd_write_byte = -- grub_register_command ("outb", grub_cmd_write, -- N_("PORT VALUE [MASK]"), -- N_("Write 8-bit VALUE to PORT.")); -+ grub_register_command_lockdown ("outb", grub_cmd_write, -+ N_("PORT VALUE [MASK]"), -+ N_("Write 8-bit VALUE to PORT.")); - cmd_write_word = -- grub_register_command ("outw", grub_cmd_write, -- N_("PORT VALUE [MASK]"), -- N_("Write 16-bit VALUE to PORT.")); -+ grub_register_command_lockdown ("outw", grub_cmd_write, -+ N_("PORT VALUE [MASK]"), -+ N_("Write 16-bit VALUE to PORT.")); - cmd_write_dword = -- grub_register_command ("outl", grub_cmd_write, -- N_("ADDR VALUE [MASK]"), -- N_("Write 32-bit VALUE to PORT.")); -+ grub_register_command_lockdown ("outl", grub_cmd_write, -+ N_("ADDR VALUE [MASK]"), -+ N_("Write 32-bit VALUE to PORT.")); - } - - GRUB_MOD_FINI(memrw) -diff --git a/grub-core/commands/memrw.c b/grub-core/commands/memrw.c -index 98769eadb..d401a6db0 100644 ---- a/grub-core/commands/memrw.c -+++ b/grub-core/commands/memrw.c -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -133,17 +134,17 @@ GRUB_MOD_INIT(memrw) - N_("ADDR"), N_("Read 32-bit value from ADDR."), - options); - cmd_write_byte = -- grub_register_command ("write_byte", grub_cmd_write, -- N_("ADDR VALUE [MASK]"), -- N_("Write 8-bit VALUE to ADDR.")); -+ grub_register_command_lockdown ("write_byte", grub_cmd_write, -+ N_("ADDR VALUE [MASK]"), -+ N_("Write 8-bit VALUE to ADDR.")); - cmd_write_word = -- grub_register_command ("write_word", grub_cmd_write, -- N_("ADDR VALUE [MASK]"), -- N_("Write 16-bit VALUE to ADDR.")); -+ grub_register_command_lockdown ("write_word", grub_cmd_write, -+ N_("ADDR VALUE [MASK]"), -+ N_("Write 16-bit VALUE to ADDR.")); - cmd_write_dword = -- grub_register_command ("write_dword", grub_cmd_write, -- N_("ADDR VALUE [MASK]"), -- N_("Write 32-bit VALUE to ADDR.")); -+ grub_register_command_lockdown ("write_dword", grub_cmd_write, -+ N_("ADDR VALUE [MASK]"), -+ N_("Write 32-bit VALUE to ADDR.")); - } - - GRUB_MOD_FINI(memrw) --- -2.23.0 - diff --git a/backport-0005-kern-efi-mm-Fix-possible-NULL-pointer-dereference.patch b/backport-0005-kern-efi-mm-Fix-possible-NULL-pointer-dereference.patch deleted file mode 100644 index 5c79f9b..0000000 --- a/backport-0005-kern-efi-mm-Fix-possible-NULL-pointer-dereference.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 17e7c7cd02d2cf14b16f9cb8aaad3d62c35b5609 Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Fri, 11 Dec 2020 15:03:13 +0000 -Subject: [PATCH] kern/efi/mm: Fix possible NULL pointer dereference - -The model of grub_efi_get_memory_map() is that if memory_map is NULL, -then the purpose is to discover how much memory should be allocated to -it for the subsequent call. - -The problem here is that with grub_efi_is_finished set to 1, there is no -check at all that the function is being called with a non-NULL memory_map. - -While this MAY be true, we shouldn't assume it. - -The solution to this is to behave as expected, and if memory_map is NULL, -then don't try to use it and allow memory_map_size to be filled in, and -return 0 as is done later in the code if the buffer is too small (or NULL). - -Additionally, drop unneeded ret = 1. - -Fixes: CID 96632 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=6aee4bfd6973c714056fb7b56890b8d524e94ee1 - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/kern/efi/mm.c | 19 ++++++++++++++----- - 1 file changed, 14 insertions(+), 5 deletions(-) - -diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c -index d70e5b4..f64f79e 100644 ---- a/grub-core/kern/efi/mm.c -+++ b/grub-core/kern/efi/mm.c -@@ -375,15 +375,24 @@ grub_efi_get_memory_map (grub_efi_uintn_t *memory_map_size, - if (grub_efi_is_finished) - { - int ret = 1; -- if (*memory_map_size < finish_mmap_size) -+ -+ if (memory_map != NULL) - { -- grub_memcpy (memory_map, finish_mmap_buf, *memory_map_size); -- ret = 0; -+ if (*memory_map_size < finish_mmap_size) -+ { -+ grub_memcpy (memory_map, finish_mmap_buf, *memory_map_size); -+ ret = 0; -+ } -+ else -+ grub_memcpy (memory_map, finish_mmap_buf, finish_mmap_size); - } - else - { -- grub_memcpy (memory_map, finish_mmap_buf, finish_mmap_size); -- ret = 1; -+ /* -+ * Incomplete, no buffer to copy into, same as -+ * GRUB_EFI_BUFFER_TOO_SMALL below. -+ */ -+ ret = 0; - } - *memory_map_size = finish_mmap_size; - if (map_key) --- -2.19.1 - diff --git a/backport-0006-CVE-2020-27749.patch b/backport-0006-CVE-2020-27749.patch deleted file mode 100644 index a54feef..0000000 --- a/backport-0006-CVE-2020-27749.patch +++ /dev/null @@ -1,307 +0,0 @@ -From 030fb6c4fa354cdbd6a8d6903dfed5d36eaf3cb2 Mon Sep 17 00:00:00 2001 -From: Chris Coulson -Date: Thu, 7 Jan 2021 15:15:43 +0000 -Subject: kern/buffer: Add variable sized heap buffer - -Add a new variable sized heap buffer type (grub_buffer_t) with simple -operations for appending data, accessing the data and maintaining -a read cursor. - -Signed-off-by: Chris Coulson -Reviewed-by: Daniel Kiper ---- - grub-core/Makefile.core.def | 1 + - grub-core/kern/buffer.c | 117 +++++++++++++++++++++++++++++++++++ - include/grub/buffer.h | 144 ++++++++++++++++++++++++++++++++++++++++++++ - 3 files changed, 262 insertions(+) - create mode 100644 grub-core/kern/buffer.c - create mode 100644 include/grub/buffer.h - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index b283c50..c7563bb 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -123,6 +123,7 @@ kernel = { - riscv32_efi_startup = kern/riscv/efi/startup.S; - riscv64_efi_startup = kern/riscv/efi/startup.S; - -+ common = kern/buffer.c; - common = kern/command.c; - common = kern/corecmd.c; - common = kern/device.c; -diff --git a/grub-core/kern/buffer.c b/grub-core/kern/buffer.c -new file mode 100644 -index 0000000..b50a187 ---- /dev/null -+++ b/grub-core/kern/buffer.c -@@ -0,0 +1,117 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2021 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+grub_buffer_t -+grub_buffer_new (grub_size_t sz) -+{ -+ struct grub_buffer *ret; -+ -+ ret = (struct grub_buffer *) grub_malloc (sizeof (*ret)); -+ if (ret == NULL) -+ return NULL; -+ -+ ret->data = (grub_uint8_t *) grub_malloc (sz); -+ if (ret->data == NULL) -+ { -+ grub_free (ret); -+ return NULL; -+ } -+ -+ ret->sz = sz; -+ ret->pos = 0; -+ ret->used = 0; -+ -+ return ret; -+} -+ -+void -+grub_buffer_free (grub_buffer_t buf) -+{ -+ grub_free (buf->data); -+ grub_free (buf); -+} -+ -+grub_err_t -+grub_buffer_ensure_space (grub_buffer_t buf, grub_size_t req) -+{ -+ grub_uint8_t *d; -+ grub_size_t newsz = 1; -+ -+ /* Is the current buffer size adequate? */ -+ if (buf->sz >= req) -+ return GRUB_ERR_NONE; -+ -+ /* Find the smallest power-of-2 size that satisfies the request. */ -+ while (newsz < req) -+ { -+ if (newsz == 0) -+ return grub_error (GRUB_ERR_OUT_OF_RANGE, -+ N_("requested buffer size is too large")); -+ newsz <<= 1; -+ } -+ -+ d = (grub_uint8_t *) grub_realloc (buf->data, newsz); -+ if (d == NULL) -+ return grub_errno; -+ -+ buf->data = d; -+ buf->sz = newsz; -+ -+ return GRUB_ERR_NONE; -+} -+ -+void * -+grub_buffer_take_data (grub_buffer_t buf) -+{ -+ void *data = buf->data; -+ -+ buf->data = NULL; -+ buf->sz = buf->pos = buf->used = 0; -+ -+ return data; -+} -+ -+void -+grub_buffer_reset (grub_buffer_t buf) -+{ -+ buf->pos = buf->used = 0; -+} -+ -+grub_err_t -+grub_buffer_advance_read_pos (grub_buffer_t buf, grub_size_t n) -+{ -+ grub_size_t newpos; -+ -+ if (grub_add (buf->pos, n, &newpos)) -+ return grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ -+ if (newpos > buf->used) -+ return grub_error (GRUB_ERR_OUT_OF_RANGE, -+ N_("new read is position beyond the end of the written data")); -+ -+ buf->pos = newpos; -+ -+ return GRUB_ERR_NONE; -+} -diff --git a/include/grub/buffer.h b/include/grub/buffer.h -new file mode 100644 -index 0000000..f4b10cf ---- /dev/null -+++ b/include/grub/buffer.h -@@ -0,0 +1,144 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2021 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#ifndef GRUB_BUFFER_H -+#define GRUB_BUFFER_H 1 -+ -+#include -+#include -+#include -+#include -+#include -+ -+struct grub_buffer -+{ -+ grub_uint8_t *data; -+ grub_size_t sz; -+ grub_size_t pos; -+ grub_size_t used; -+}; -+ -+/* -+ * grub_buffer_t represents a simple variable sized byte buffer with -+ * read and write cursors. It currently only implements -+ * functionality required by the only user in GRUB (append byte[s], -+ * peeking data at a specified position and updating the read cursor. -+ * Some things that this doesn't do yet are: -+ * - Reading a portion of the buffer by copying data from the current -+ * read position in to a caller supplied destination buffer and then -+ * automatically updating the read cursor. -+ * - Dropping the read part at the start of the buffer when an append -+ * requires more space. -+ */ -+typedef struct grub_buffer *grub_buffer_t; -+ -+/* Allocate a new buffer with the specified initial size. */ -+extern grub_buffer_t grub_buffer_new (grub_size_t sz); -+ -+/* Free the buffer and its resources. */ -+extern void grub_buffer_free (grub_buffer_t buf); -+ -+/* Return the number of unread bytes in this buffer. */ -+static inline grub_size_t -+grub_buffer_get_unread_bytes (grub_buffer_t buf) -+{ -+ return buf->used - buf->pos; -+} -+ -+/* -+ * Ensure that the buffer size is at least the requested -+ * number of bytes. -+ */ -+extern grub_err_t grub_buffer_ensure_space (grub_buffer_t buf, grub_size_t req); -+ -+/* -+ * Append the specified number of bytes from the supplied -+ * data to the buffer. -+ */ -+static inline grub_err_t -+grub_buffer_append_data (grub_buffer_t buf, const void *data, grub_size_t len) -+{ -+ grub_size_t req; -+ -+ if (grub_add (buf->used, len, &req)) -+ return grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ -+ if (grub_buffer_ensure_space (buf, req) != GRUB_ERR_NONE) -+ return grub_errno; -+ -+ grub_memcpy (&buf->data[buf->used], data, len); -+ buf->used = req; -+ -+ return GRUB_ERR_NONE; -+} -+ -+/* Append the supplied character to the buffer. */ -+static inline grub_err_t -+grub_buffer_append_char (grub_buffer_t buf, char c) -+{ -+ return grub_buffer_append_data (buf, &c, 1); -+} -+ -+/* -+ * Forget and return the underlying data buffer. The caller -+ * becomes the owner of this buffer, and must free it when it -+ * is no longer required. -+ */ -+extern void *grub_buffer_take_data (grub_buffer_t buf); -+ -+/* Reset this buffer. Note that this does not deallocate any resources. */ -+void grub_buffer_reset (grub_buffer_t buf); -+ -+/* -+ * Return a pointer to the underlying data buffer at the specified -+ * offset from the current read position. Note that this pointer may -+ * become invalid if the buffer is mutated further. -+ */ -+static inline void * -+grub_buffer_peek_data_at (grub_buffer_t buf, grub_size_t off) -+{ -+ if (grub_add (buf->pos, off, &off)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected.")); -+ return NULL; -+ } -+ -+ if (off >= buf->used) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("peek out of range")); -+ return NULL; -+ } -+ -+ return &buf->data[off]; -+} -+ -+/* -+ * Return a pointer to the underlying data buffer at the current -+ * read position. Note that this pointer may become invalid if the -+ * buffer is mutated further. -+ */ -+static inline void * -+grub_buffer_peek_data (grub_buffer_t buf) -+{ -+ return grub_buffer_peek_data_at (buf, 0); -+} -+ -+/* Advance the read position by the specified number of bytes. */ -+extern grub_err_t grub_buffer_advance_read_pos (grub_buffer_t buf, grub_size_t n); -+ -+#endif /* GRUB_BUFFER_H */ --- -2.23.0 - diff --git a/backport-0006-CVE-2020-27779-and-CVE-2020-14372.patch b/backport-0006-CVE-2020-27779-and-CVE-2020-14372.patch deleted file mode 100644 index 8e80b98..0000000 --- a/backport-0006-CVE-2020-27779-and-CVE-2020-14372.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 08c63ad119ce0c0d0de56d9878f0be6811f623d4 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Mon, 28 Sep 2020 20:08:41 +0200 -Subject: [PATCH 13/46] acpi: Don't register the acpi command when locked down -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The command is not allowed when lockdown is enforced. Otherwise an -attacker can instruct the GRUB to load an SSDT table to overwrite -the kernel lockdown configuration and later load and execute -unsigned code. - -Fixes: CVE-2020-14372 - -Reported-by: Máté Kukri -Signed-off-by: Javier Martinez Canillas -Reviewed-by: Daniel Kiper ---- - docs/grub.texi | 5 +++++ - grub-core/commands/acpi.c | 15 ++++++++------- - 2 files changed, 13 insertions(+), 7 deletions(-) - -diff --git a/docs/grub.texi b/docs/grub.texi -index 6d8d32b0b..2ee8721a1 100644 ---- a/docs/grub.texi -+++ b/docs/grub.texi -@@ -3986,6 +3986,11 @@ Normally, this command will replace the Root System Description Pointer - (RSDP) in the Extended BIOS Data Area to point to the new tables. If the - @option{--no-ebda} option is used, the new tables will be known only to - GRUB, but may be used by GRUB's EFI emulation. -+ -+Note: The command is not allowed when lockdown is enforced (@pxref{Lockdown}). -+ Otherwise an attacker can instruct the GRUB to load an SSDT table to -+ overwrite the kernel lockdown configuration and later load and execute -+ unsigned code. - @end deffn - - -diff --git a/grub-core/commands/acpi.c b/grub-core/commands/acpi.c -index 5a1499aa0..1215f2a62 100644 ---- a/grub-core/commands/acpi.c -+++ b/grub-core/commands/acpi.c -@@ -27,6 +27,7 @@ - #include - #include - #include -+#include - - #ifdef GRUB_MACHINE_EFI - #include -@@ -775,13 +776,13 @@ static grub_extcmd_t cmd; - - GRUB_MOD_INIT(acpi) - { -- cmd = grub_register_extcmd ("acpi", grub_cmd_acpi, 0, -- N_("[-1|-2] [--exclude=TABLE1,TABLE2|" -- "--load-only=TABLE1,TABLE2] FILE1" -- " [FILE2] [...]"), -- N_("Load host ACPI tables and tables " -- "specified by arguments."), -- options); -+ cmd = grub_register_extcmd_lockdown ("acpi", grub_cmd_acpi, 0, -+ N_("[-1|-2] [--exclude=TABLE1,TABLE2|" -+ "--load-only=TABLE1,TABLE2] FILE1" -+ " [FILE2] [...]"), -+ N_("Load host ACPI tables and tables " -+ "specified by arguments."), -+ options); - } - - GRUB_MOD_FINI(acpi) --- -2.26.2 - diff --git a/backport-0006-zstd-Initialize-seq_t-structure-fully.patch b/backport-0006-zstd-Initialize-seq_t-structure-fully.patch deleted file mode 100644 index 0487a7a..0000000 --- a/backport-0006-zstd-Initialize-seq_t-structure-fully.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 4567a832aaade9589162e6f7a50af81af151d635 Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Thu, 5 Nov 2020 10:29:59 +0000 -Subject: [PATCH] zstd: Initialize seq_t structure fully - -While many compilers will initialize this to zero, not all will, so it -is better to be sure that fields not being explicitly set are at known -values, and there is code that checks this fields value elsewhere in the -code. - -Fixes: CID 292440 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=2777cf4466719921dbe4b30af358a75e7d76f217 - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/lib/zstd/zstd_decompress.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/lib/zstd/zstd_decompress.c b/grub-core/lib/zstd/zstd_decompress.c -index 711b5b6..e4b5670 100644 ---- a/grub-core/lib/zstd/zstd_decompress.c -+++ b/grub-core/lib/zstd/zstd_decompress.c -@@ -1325,7 +1325,7 @@ typedef enum { ZSTD_lo_isRegularOffset, ZSTD_lo_isLongOffset=1 } ZSTD_longOffset - FORCE_INLINE_TEMPLATE seq_t - ZSTD_decodeSequence(seqState_t* seqState, const ZSTD_longOffset_e longOffsets) - { -- seq_t seq; -+ seq_t seq = {0}; - U32 const llBits = seqState->stateLL.table[seqState->stateLL.state].nbAdditionalBits; - U32 const mlBits = seqState->stateML.table[seqState->stateML.state].nbAdditionalBits; - U32 const ofBits = seqState->stateOffb.table[seqState->stateOffb.state].nbAdditionalBits; --- -2.19.1 - diff --git a/backport-0007-CVE-2020-27749.patch b/backport-0007-CVE-2020-27749.patch deleted file mode 100644 index 53089f3..0000000 --- a/backport-0007-CVE-2020-27749.patch +++ /dev/null @@ -1,247 +0,0 @@ -From 4ea7bae51f97e49c84dc67ea30b466ca8633b9f6 Mon Sep 17 00:00:00 2001 -From: Chris Coulson -Date: Thu, 7 Jan 2021 19:21:03 +0000 -Subject: kern/parser: Fix a stack buffer overflow - -grub_parser_split_cmdline() expands variable names present in the supplied -command line in to their corresponding variable contents and uses a 1 kiB -stack buffer for temporary storage without sufficient bounds checking. If -the function is called with a command line that references a variable with -a sufficiently large payload, it is possible to overflow the stack -buffer via tab completion, corrupt the stack frame and potentially -control execution. - -Fixes: CVE-2020-27749 - -Reported-by: Chris Coulson -Signed-off-by: Chris Coulson -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/kern/parser.c | 110 ++++++++++++++++++++++++---------------- - 1 file changed, 67 insertions(+), 43 deletions(-) - -diff --git a/grub-core/kern/parser.c b/grub-core/kern/parser.c -index d50538f..89276d5 100644 ---- a/grub-core/kern/parser.c -+++ b/grub-core/kern/parser.c -@@ -18,6 +18,7 @@ - */ - - #include -+#include - #include - #include - #include -@@ -107,8 +108,8 @@ check_varstate (grub_parser_state_t s) - } - - --static void --add_var (char *varname, char **bp, char **vp, -+static grub_err_t -+add_var (grub_buffer_t varname, grub_buffer_t buf, - grub_parser_state_t state, grub_parser_state_t newstate) - { - const char *val; -@@ -116,31 +117,41 @@ add_var (char *varname, char **bp, char **vp, - /* Check if a variable was being read in and the end of the name - was reached. */ - if (!(check_varstate (state) && !check_varstate (newstate))) -- return; -+ return GRUB_ERR_NONE; -+ -+ if (grub_buffer_append_char (varname, '\0') != GRUB_ERR_NONE) -+ return grub_errno; - -- *((*vp)++) = '\0'; -- val = grub_env_get (varname); -- *vp = varname; -+ val = grub_env_get ((const char *) grub_buffer_peek_data (varname)); -+ grub_buffer_reset (varname); - if (!val) -- return; -+ return GRUB_ERR_NONE; - - /* Insert the contents of the variable in the buffer. */ -- for (; *val; val++) -- *((*bp)++) = *val; -+ return grub_buffer_append_data (buf, val, grub_strlen (val)); - } - --static void --terminate_arg (char *buffer, char **bp, int *argc) -+static grub_err_t -+terminate_arg (grub_buffer_t buffer, int *argc) - { -- if (*bp != buffer && *((*bp) - 1) != '\0') -- { -- *((*bp)++) = '\0'; -- (*argc)++; -- } -+ grub_size_t unread = grub_buffer_get_unread_bytes (buffer); -+ -+ if (unread == 0) -+ return GRUB_ERR_NONE; -+ -+ if (*(const char *) grub_buffer_peek_data_at (buffer, unread - 1) == '\0') -+ return GRUB_ERR_NONE; -+ -+ if (grub_buffer_append_char (buffer, '\0') != GRUB_ERR_NONE) -+ return grub_errno; -+ -+ (*argc)++; -+ -+ return GRUB_ERR_NONE; - } - - static grub_err_t --process_char (char c, char *buffer, char **bp, char *varname, char **vp, -+process_char (char c, grub_buffer_t buffer, grub_buffer_t varname, - grub_parser_state_t state, int *argc, - grub_parser_state_t *newstate) - { -@@ -153,12 +164,13 @@ process_char (char c, char *buffer, char **bp, char *varname, char **vp, - * not describe the variable anymore, write the variable to - * the buffer. - */ -- add_var (varname, bp, vp, state, *newstate); -+ if (add_var (varname, buffer, state, *newstate) != GRUB_ERR_NONE) -+ return grub_errno; - - if (check_varstate (*newstate)) - { - if (use) -- *((*vp)++) = use; -+ return grub_buffer_append_char (varname, use); - } - else if (*newstate == GRUB_PARSER_STATE_TEXT && - state != GRUB_PARSER_STATE_ESC && grub_isspace (use)) -@@ -167,10 +179,10 @@ process_char (char c, char *buffer, char **bp, char *varname, char **vp, - * Don't add more than one argument if multiple - * spaces are used. - */ -- terminate_arg (buffer, bp, argc); -+ return terminate_arg (buffer, argc); - } - else if (use) -- *((*bp)++) = use; -+ return grub_buffer_append_char (buffer, use); - - return GRUB_ERR_NONE; - } -@@ -181,19 +193,22 @@ grub_parser_split_cmdline (const char *cmdline, - int *argc, char ***argv) - { - grub_parser_state_t state = GRUB_PARSER_STATE_TEXT; -- /* XXX: Fixed size buffer, perhaps this buffer should be dynamically -- allocated. */ -- char buffer[1024]; -- char *bp = buffer; -+ grub_buffer_t buffer, varname; - char *rd = (char *) cmdline; -- char varname[200]; - char *rp = rd; -- char *vp = varname; -- char *args; - int i; - - *argc = 0; - *argv = NULL; -+ -+ buffer = grub_buffer_new (1024); -+ if (buffer == NULL) -+ return grub_errno; -+ -+ varname = grub_buffer_new (200); -+ if (varname == NULL) -+ goto fail; -+ - do - { - if (rp == NULL || *rp == '\0') -@@ -219,7 +234,7 @@ grub_parser_split_cmdline (const char *cmdline, - { - grub_parser_state_t newstate; - -- if (process_char (*rp, buffer, &bp, varname, &vp, state, argc, -+ if (process_char (*rp, buffer, varname, state, argc, - &newstate) != GRUB_ERR_NONE) - goto fail; - -@@ -230,10 +245,12 @@ grub_parser_split_cmdline (const char *cmdline, - - /* A special case for when the last character was part of a - variable. */ -- add_var (varname, &bp, &vp, state, GRUB_PARSER_STATE_TEXT); -+ if (add_var (varname, buffer, state, GRUB_PARSER_STATE_TEXT) != GRUB_ERR_NONE) -+ goto fail; - - /* Ensure that the last argument is terminated. */ -- terminate_arg (buffer, &bp, argc); -+ if (terminate_arg (buffer, argc) != GRUB_ERR_NONE) -+ goto fail; - - /* If there are no args, then we're done. */ - if (!*argc) -@@ -242,38 +259,45 @@ grub_parser_split_cmdline (const char *cmdline, - goto out; - } - -- /* Reserve memory for the return values. */ -- args = grub_malloc (bp - buffer); -- if (!args) -- goto fail; -- grub_memcpy (args, buffer, bp - buffer); -- - *argv = grub_calloc (*argc + 1, sizeof (char *)); - if (!*argv) - goto fail; - - /* The arguments are separated with 0's, setup argv so it points to - the right values. */ -- bp = args; - for (i = 0; i < *argc; i++) - { -- (*argv)[i] = bp; -- while (*bp) -- bp++; -- bp++; -+ char *arg; -+ -+ if (i > 0) -+ { -+ if (grub_buffer_advance_read_pos (buffer, 1) != GRUB_ERR_NONE) -+ goto fail; -+ } -+ -+ arg = (char *) grub_buffer_peek_data (buffer); -+ if (arg == NULL || -+ grub_buffer_advance_read_pos (buffer, grub_strlen (arg)) != GRUB_ERR_NONE) -+ goto fail; -+ -+ (*argv)[i] = arg; - } - -+ /* Keep memory for the return values. */ -+ grub_buffer_take_data (buffer); -+ - grub_errno = GRUB_ERR_NONE; - - out: - if (rd != cmdline) - grub_free (rd); -+ grub_buffer_free (buffer); -+ grub_buffer_free (varname); - - return grub_errno; - - fail: - grub_free (*argv); -- grub_free (args); - goto out; - } - --- -2.23.0 - diff --git a/backport-0007-CVE-2020-27779-and-CVE-2020-14372.patch b/backport-0007-CVE-2020-27779-and-CVE-2020-14372.patch deleted file mode 100644 index 0efa1f9..0000000 --- a/backport-0007-CVE-2020-27779-and-CVE-2020-14372.patch +++ /dev/null @@ -1,69 +0,0 @@ -From cbd4d630728847bcc3eb82c4a1667fc7ba6de73a Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Wed, 14 Oct 2020 16:33:42 +0200 -Subject: [PATCH 14/46] mmap: Don't register cutmem and badram commands when - lockdown is enforced - -The cutmem and badram commands can be used to remove EFI memory regions -and potentially disable the UEFI Secure Boot. Prevent the commands to be -registered if the GRUB is locked down. - -Fixes: CVE-2020-27779 - -Reported-by: Teddy Reed -Signed-off-by: Javier Martinez Canillas -Reviewed-by: Daniel Kiper ---- - docs/grub.texi | 4 ++++ - grub-core/mmap/mmap.c | 13 +++++++------ - 2 files changed, 11 insertions(+), 6 deletions(-) - -diff --git a/docs/grub.texi b/docs/grub.texi -index 2ee8721a1..70bf91f40 100644 ---- a/docs/grub.texi -+++ b/docs/grub.texi -@@ -4051,6 +4051,10 @@ this page is to be filtered. This syntax makes it easy to represent patterns - that are often result of memory damage, due to physical distribution of memory - cells. - -+Note: The command is not allowed when lockdown is enforced (@pxref{Lockdown}). -+ This prevents removing EFI memory regions to potentially subvert the -+ security mechanisms provided by the UEFI secure boot. -+ - @node blocklist - @subsection blocklist - -diff --git a/grub-core/mmap/mmap.c b/grub-core/mmap/mmap.c -index 57b4e9a72..7ebf32e1e 100644 ---- a/grub-core/mmap/mmap.c -+++ b/grub-core/mmap/mmap.c -@@ -20,6 +20,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -534,12 +535,12 @@ static grub_command_t cmd, cmd_cut; - - GRUB_MOD_INIT(mmap) - { -- cmd = grub_register_command ("badram", grub_cmd_badram, -- N_("ADDR1,MASK1[,ADDR2,MASK2[,...]]"), -- N_("Declare memory regions as faulty (badram).")); -- cmd_cut = grub_register_command ("cutmem", grub_cmd_cutmem, -- N_("FROM[K|M|G] TO[K|M|G]"), -- N_("Remove any memory regions in specified range.")); -+ cmd = grub_register_command_lockdown ("badram", grub_cmd_badram, -+ N_("ADDR1,MASK1[,ADDR2,MASK2[,...]]"), -+ N_("Declare memory regions as faulty (badram).")); -+ cmd_cut = grub_register_command_lockdown ("cutmem", grub_cmd_cutmem, -+ N_("FROM[K|M|G] TO[K|M|G]"), -+ N_("Remove any memory regions in specified range.")); - - } - --- -2.26.2 - diff --git a/backport-0007-kern-partition-Check-for-NULL-before-dereferencing-i.patch b/backport-0007-kern-partition-Check-for-NULL-before-dereferencing-i.patch deleted file mode 100644 index c76b81d..0000000 --- a/backport-0007-kern-partition-Check-for-NULL-before-dereferencing-i.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 3b75201b76a8b728fc3680be92f7391f75096013 Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Fri, 23 Oct 2020 09:49:59 +0000 -Subject: [PATCH] kern/partition: Check for NULL before dereferencing input - string - -There is the possibility that the value of str comes from an external -source and continuing to use it before ever checking its validity is -wrong. So, needs fixing. - -Additionally, drop unneeded part initialization. - -Fixes: CID 292444 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=bc9c468a2ce84bc767234eec888b71f1bc744fff - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/kern/partition.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/grub-core/kern/partition.c b/grub-core/kern/partition.c -index 2c401b8..3068c4d 100644 ---- a/grub-core/kern/partition.c -+++ b/grub-core/kern/partition.c -@@ -109,11 +109,14 @@ grub_partition_map_probe (const grub_partition_map_t partmap, - grub_partition_t - grub_partition_probe (struct grub_disk *disk, const char *str) - { -- grub_partition_t part = 0; -+ grub_partition_t part; - grub_partition_t curpart = 0; - grub_partition_t tail; - const char *ptr; - -+ if (str == NULL) -+ return 0; -+ - part = tail = disk->partition; - - for (ptr = str; *ptr;) --- -2.19.1 - diff --git a/backport-0008-CVE-2020-27779-and-CVE-2020-14372.patch b/backport-0008-CVE-2020-27779-and-CVE-2020-14372.patch deleted file mode 100644 index 18a5c17..0000000 --- a/backport-0008-CVE-2020-27779-and-CVE-2020-14372.patch +++ /dev/null @@ -1,104 +0,0 @@ -From d1a40f870dbcb55280f57673c1d9c2c7110df42a Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Wed, 24 Feb 2021 09:00:05 +0100 -Subject: [PATCH 15/46] commands: Restrict commands that can load BIOS or DT - blobs when locked down - -There are some more commands that should be restricted when the GRUB is -locked down. Following is the list of commands and reasons to restrict: - - * fakebios: creates BIOS-like structures for backward compatibility with - existing OSes. This should not be allowed when locked down. - - * loadbios: reads a BIOS dump from storage and loads it. This action - should not be allowed when locked down. - - * devicetree: loads a Device Tree blob and passes it to the OS. It replaces - any Device Tree provided by the firmware. This also should - not be allowed when locked down. - -Signed-off-by: Javier Martinez Canillas -Reviewed-by: Daniel Kiper ---- - docs/grub.texi | 3 +++ - grub-core/commands/efi/loadbios.c | 16 ++++++++-------- - grub-core/loader/arm/linux.c | 6 +++--- - grub-core/loader/efi/fdt.c | 4 ++-- - 4 files changed, 16 insertions(+), 13 deletions(-) - -diff --git a/docs/grub.texi b/docs/grub.texi -index 70bf91f40..cf29a1797 100644 ---- a/docs/grub.texi -+++ b/docs/grub.texi -@@ -4236,6 +4236,9 @@ Load a device tree blob (.dtb) from a filesystem, for later use by a Linux - kernel. Does not perform merging with any device tree supplied by firmware, - but rather replaces it completely. - @ref{GNU/Linux}. -+ -+Note: The command is not allowed when lockdown is enforced (@pxref{Lockdown}). -+ This is done to prevent subverting various security mechanisms. - @end deffn - - @node distrust -diff --git a/grub-core/commands/efi/loadbios.c b/grub-core/commands/efi/loadbios.c -index d41d521a4..5c7725f8b 100644 ---- a/grub-core/commands/efi/loadbios.c -+++ b/grub-core/commands/efi/loadbios.c -@@ -205,14 +205,14 @@ static grub_command_t cmd_fakebios, cmd_loadbios; - - GRUB_MOD_INIT(loadbios) - { -- cmd_fakebios = grub_register_command ("fakebios", grub_cmd_fakebios, -- 0, N_("Create BIOS-like structures for" -- " backward compatibility with" -- " existing OS.")); -- -- cmd_loadbios = grub_register_command ("loadbios", grub_cmd_loadbios, -- N_("BIOS_DUMP [INT10_DUMP]"), -- N_("Load BIOS dump.")); -+ cmd_fakebios = grub_register_command_lockdown ("fakebios", grub_cmd_fakebios, -+ 0, N_("Create BIOS-like structures for" -+ " backward compatibility with" -+ " existing OS.")); -+ -+ cmd_loadbios = grub_register_command_lockdown ("loadbios", grub_cmd_loadbios, -+ N_("BIOS_DUMP [INT10_DUMP]"), -+ N_("Load BIOS dump.")); - } - - GRUB_MOD_FINI(loadbios) -diff --git a/grub-core/loader/arm/linux.c b/grub-core/loader/arm/linux.c -index d70c17486..ed23dc71e 100644 ---- a/grub-core/loader/arm/linux.c -+++ b/grub-core/loader/arm/linux.c -@@ -493,9 +493,9 @@ GRUB_MOD_INIT (linux) - 0, N_("Load Linux.")); - cmd_initrd = grub_register_command ("initrd", grub_cmd_initrd, - 0, N_("Load initrd.")); -- cmd_devicetree = grub_register_command ("devicetree", grub_cmd_devicetree, -- /* TRANSLATORS: DTB stands for device tree blob. */ -- 0, N_("Load DTB file.")); -+ cmd_devicetree = grub_register_command_lockdown ("devicetree", grub_cmd_devicetree, -+ /* TRANSLATORS: DTB stands for device tree blob. */ -+ 0, N_("Load DTB file.")); - my_mod = mod; - current_fdt = (const void *) grub_arm_firmware_get_boot_data (); - machine_type = grub_arm_firmware_get_machine_type (); -diff --git a/grub-core/loader/efi/fdt.c b/grub-core/loader/efi/fdt.c -index ee9c5592c..003d07cd8 100644 ---- a/grub-core/loader/efi/fdt.c -+++ b/grub-core/loader/efi/fdt.c -@@ -165,8 +165,8 @@ static grub_command_t cmd_devicetree; - GRUB_MOD_INIT (fdt) - { - cmd_devicetree = -- grub_register_command ("devicetree", grub_cmd_devicetree, 0, -- N_("Load DTB file.")); -+ grub_register_command_lockdown ("devicetree", grub_cmd_devicetree, 0, -+ N_("Load DTB file.")); - } - - GRUB_MOD_FINI (fdt) --- -2.26.2 - diff --git a/backport-0008-disk-ldm-Make-sure-comp-data-is-freed-before-exiting.patch b/backport-0008-disk-ldm-Make-sure-comp-data-is-freed-before-exiting.patch deleted file mode 100644 index 9f78d32..0000000 --- a/backport-0008-disk-ldm-Make-sure-comp-data-is-freed-before-exiting.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 0397e0712f40fa1d0933da821a0b483b25509680 Mon Sep 17 00:00:00 2001 -From: Marco A Benatto -Date: Mon, 7 Dec 2020 11:53:03 -0300 -Subject: [PATCH] disk/ldm: Make sure comp data is freed before exiting from - make_vg() - -Several error handling paths in make_vg() do not free comp data before -jumping to fail2 label and returning from the function. This will leak -memory. So, let's fix all issues of that kind. - -Fixes: CID 73804 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=23e39f50ca7a107f6b66396ed4d177a914dee035 - -Signed-off-by: Marco A Benatto -Reviewed-by: Daniel Kiper ---- - grub-core/disk/ldm.c | 51 ++++++++++++++++++++++++++++++++++++++------ - 1 file changed, 44 insertions(+), 7 deletions(-) - -diff --git a/grub-core/disk/ldm.c b/grub-core/disk/ldm.c -index 58f8a53..428415f 100644 ---- a/grub-core/disk/ldm.c -+++ b/grub-core/disk/ldm.c -@@ -554,7 +554,11 @@ make_vg (grub_disk_t disk, - comp->segments = grub_calloc (comp->segment_alloc, - sizeof (*comp->segments)); - if (!comp->segments) -- goto fail2; -+ { -+ grub_free (comp->internal_id); -+ grub_free (comp); -+ goto fail2; -+ } - } - else - { -@@ -562,7 +566,11 @@ make_vg (grub_disk_t disk, - comp->segment_count = 1; - comp->segments = grub_malloc (sizeof (*comp->segments)); - if (!comp->segments) -- goto fail2; -+ { -+ grub_free (comp->internal_id); -+ grub_free (comp); -+ goto fail2; -+ } - comp->segments->start_extent = 0; - comp->segments->extent_count = lv->size; - comp->segments->layout = 0; -@@ -574,15 +582,26 @@ make_vg (grub_disk_t disk, - comp->segments->layout = GRUB_RAID_LAYOUT_SYMMETRIC_MASK; - } - else -- goto fail2; -+ { -+ grub_free (comp->segments); -+ grub_free (comp->internal_id); -+ grub_free (comp); -+ goto fail2; -+ } - ptr += *ptr + 1; - ptr++; - if (!(vblk[i].flags & 0x10)) -- goto fail2; -+ { -+ grub_free (comp->segments); -+ grub_free (comp->internal_id); -+ grub_free (comp); -+ goto fail2; -+ } - if (ptr >= vblk[i].dynamic + sizeof (vblk[i].dynamic) - || ptr + *ptr + 1 >= vblk[i].dynamic - + sizeof (vblk[i].dynamic)) - { -+ grub_free (comp->segments); - grub_free (comp->internal_id); - grub_free (comp); - goto fail2; -@@ -592,6 +611,7 @@ make_vg (grub_disk_t disk, - if (ptr + *ptr + 1 >= vblk[i].dynamic - + sizeof (vblk[i].dynamic)) - { -+ grub_free (comp->segments); - grub_free (comp->internal_id); - grub_free (comp); - goto fail2; -@@ -601,7 +621,12 @@ make_vg (grub_disk_t disk, - comp->segments->nodes = grub_calloc (comp->segments->node_alloc, - sizeof (*comp->segments->nodes)); - if (!lv->segments->nodes) -- goto fail2; -+ { -+ grub_free (comp->segments); -+ grub_free (comp->internal_id); -+ grub_free (comp); -+ goto fail2; -+ } - } - - if (lv->segments->node_alloc == lv->segments->node_count) -@@ -611,11 +636,23 @@ make_vg (grub_disk_t disk, - - if (grub_mul (lv->segments->node_alloc, 2, &lv->segments->node_alloc) || - grub_mul (lv->segments->node_alloc, sizeof (*lv->segments->nodes), &sz)) -- goto fail2; -+ { -+ grub_free (comp->segments->nodes); -+ grub_free (comp->segments); -+ grub_free (comp->internal_id); -+ grub_free (comp); -+ goto fail2; -+ } - - t = grub_realloc (lv->segments->nodes, sz); - if (!t) -- goto fail2; -+ { -+ grub_free (comp->segments->nodes); -+ grub_free (comp->segments); -+ grub_free (comp->internal_id); -+ grub_free (comp); -+ goto fail2; -+ } - lv->segments->nodes = t; - } - lv->segments->nodes[lv->segments->node_count].pv = 0; --- -2.19.1 - diff --git a/backport-0009-CVE-2020-27779-and-CVE-2020-14372.patch b/backport-0009-CVE-2020-27779-and-CVE-2020-14372.patch deleted file mode 100644 index af2c256..0000000 --- a/backport-0009-CVE-2020-27779-and-CVE-2020-14372.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 3e5b0593346fde8d92dd4e87ce15ff07e0cacf88 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Wed, 24 Feb 2021 22:59:59 +0100 -Subject: [PATCH 16/46] commands/setpci: Restrict setpci command when locked - down - -This command can set PCI devices register values, which makes it dangerous -in a locked down configuration. Restrict it so can't be used on this setup. - -Signed-off-by: Javier Martinez Canillas -Reviewed-by: Daniel Kiper ---- - grub-core/commands/setpci.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/grub-core/commands/setpci.c b/grub-core/commands/setpci.c -index d5bc97d60..fa2ba7d89 100644 ---- a/grub-core/commands/setpci.c -+++ b/grub-core/commands/setpci.c -@@ -329,10 +329,10 @@ static grub_extcmd_t cmd; - - GRUB_MOD_INIT(setpci) - { -- cmd = grub_register_extcmd ("setpci", grub_cmd_setpci, 0, -- N_("[-s POSITION] [-d DEVICE] [-v VAR] " -- "REGISTER[=VALUE[:MASK]]"), -- N_("Manipulate PCI devices."), options); -+ cmd = grub_register_extcmd_lockdown ("setpci", grub_cmd_setpci, 0, -+ N_("[-s POSITION] [-d DEVICE] [-v VAR] " -+ "REGISTER[=VALUE[:MASK]]"), -+ N_("Manipulate PCI devices."), options); - } - - GRUB_MOD_FINI(setpci) --- -2.26.2 - diff --git a/backport-0009-disk-ldm-If-failed-then-free-vg-variable-too.patch b/backport-0009-disk-ldm-If-failed-then-free-vg-variable-too.patch deleted file mode 100644 index 0f9fa56..0000000 --- a/backport-0009-disk-ldm-If-failed-then-free-vg-variable-too.patch +++ /dev/null @@ -1,30 +0,0 @@ -From e0cb364719ee0adfc6bc8e27abf4d262075a0062 Mon Sep 17 00:00:00 2001 -From: Paulo Flabiano Smorigo -Date: Mon, 7 Dec 2020 10:07:47 -0300 -Subject: [PATCH] disk/ldm: If failed then free vg variable too - -Fixes: CID 73809 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=e0b83df5da538d2a38f770e60817b3a4b9d5b4d7 - -Signed-off-by: Paulo Flabiano Smorigo -Reviewed-by: Daniel Kiper ---- - grub-core/disk/ldm.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/grub-core/disk/ldm.c b/grub-core/disk/ldm.c -index 428415f..54713f4 100644 ---- a/grub-core/disk/ldm.c -+++ b/grub-core/disk/ldm.c -@@ -199,6 +199,7 @@ make_vg (grub_disk_t disk, - { - grub_free (vg->uuid); - grub_free (vg->name); -+ grub_free (vg); - return NULL; - } - grub_memcpy (vg->uuid, label->group_guid, LDM_GUID_STRLEN); --- -2.19.1 - diff --git a/backport-0010-CVE-2020-27779-and-CVE-2020-14372.patch b/backport-0010-CVE-2020-27779-and-CVE-2020-14372.patch deleted file mode 100644 index 5f51396..0000000 --- a/backport-0010-CVE-2020-27779-and-CVE-2020-14372.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 75dd393392f16194904c8958a22fe12034f915a3 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Wed, 24 Feb 2021 12:59:29 +0100 -Subject: [PATCH 17/46] commands/hdparm: Restrict hdparm command when locked - down - -The command can be used to get/set ATA disk parameters. Some of these can -be dangerous since change the disk behavior. Restrict it when locked down. - -Signed-off-by: Javier Martinez Canillas -Reviewed-by: Daniel Kiper ---- - grub-core/commands/hdparm.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/grub-core/commands/hdparm.c b/grub-core/commands/hdparm.c -index d3fa9661e..2e2319e64 100644 ---- a/grub-core/commands/hdparm.c -+++ b/grub-core/commands/hdparm.c -@@ -436,9 +436,9 @@ static grub_extcmd_t cmd; - - GRUB_MOD_INIT(hdparm) - { -- cmd = grub_register_extcmd ("hdparm", grub_cmd_hdparm, 0, -- N_("[OPTIONS] DISK"), -- N_("Get/set ATA disk parameters."), options); -+ cmd = grub_register_extcmd_lockdown ("hdparm", grub_cmd_hdparm, 0, -+ N_("[OPTIONS] DISK"), -+ N_("Get/set ATA disk parameters."), options); - } - - GRUB_MOD_FINI(hdparm) --- -2.26.2 - diff --git a/backport-0010-disk-ldm-Fix-memory-leak-on-uninserted-lv-references.patch b/backport-0010-disk-ldm-Fix-memory-leak-on-uninserted-lv-references.patch deleted file mode 100644 index bfdfc19..0000000 --- a/backport-0010-disk-ldm-Fix-memory-leak-on-uninserted-lv-references.patch +++ /dev/null @@ -1,49 +0,0 @@ -From f63402685ccd4bfa9c441d63067853db2a1f6c6a Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Tue, 8 Dec 2020 10:00:51 +0000 -Subject: [PATCH] disk/ldm: Fix memory leak on uninserted lv references - -The problem here is that the memory allocated to the variable lv is not -yet inserted into the list that is being processed at the label fail2. - -As we can already see at line 342, which correctly frees lv before going -to fail2, we should also be doing that at these earlier jumps to fail2. - -Fixes: CID 73824 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=156c281a1625dc73fd350530630c6f2d5673d4f6 ---- - grub-core/disk/ldm.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/grub-core/disk/ldm.c b/grub-core/disk/ldm.c -index 54713f4..e82e989 100644 ---- a/grub-core/disk/ldm.c -+++ b/grub-core/disk/ldm.c -@@ -321,7 +321,10 @@ make_vg (grub_disk_t disk, - lv->visible = 1; - lv->segments = grub_zalloc (sizeof (*lv->segments)); - if (!lv->segments) -- goto fail2; -+ { -+ grub_free (lv); -+ goto fail2; -+ } - lv->segments->start_extent = 0; - lv->segments->type = GRUB_DISKFILTER_MIRROR; - lv->segments->node_count = 0; -@@ -329,7 +332,10 @@ make_vg (grub_disk_t disk, - lv->segments->nodes = grub_calloc (lv->segments->node_alloc, - sizeof (*lv->segments->nodes)); - if (!lv->segments->nodes) -- goto fail2; -+ { -+ grub_free (lv); -+ goto fail2; -+ } - ptr = vblk[i].dynamic; - if (ptr + *ptr + 1 >= vblk[i].dynamic - + sizeof (vblk[i].dynamic)) --- -2.19.1 - diff --git a/backport-0011-CVE-2020-27779-and-CVE-2020-14372.patch b/backport-0011-CVE-2020-27779-and-CVE-2020-14372.patch deleted file mode 100644 index 07fd153..0000000 --- a/backport-0011-CVE-2020-27779-and-CVE-2020-14372.patch +++ /dev/null @@ -1,61 +0,0 @@ -From a4df9a0d74376aa4fc82f8c86c280cb087de01be Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Wed, 24 Feb 2021 15:03:26 +0100 -Subject: [PATCH 18/46] gdb: Restrict GDB access when locked down - -The gdbstub* commands allow to start and control a GDB stub running on -local host that can be used to connect from a remote debugger. Restrict -this functionality when the GRUB is locked down. - -Signed-off-by: Javier Martinez Canillas -Reviewed-by: Daniel Kiper ---- - grub-core/gdb/gdb.c | 32 ++++++++++++++++++-------------- - 1 file changed, 18 insertions(+), 14 deletions(-) - -diff --git a/grub-core/gdb/gdb.c b/grub-core/gdb/gdb.c -index 847a1e1e3..1818cb6f8 100644 ---- a/grub-core/gdb/gdb.c -+++ b/grub-core/gdb/gdb.c -@@ -75,20 +75,24 @@ static grub_command_t cmd, cmd_stop, cmd_break; - GRUB_MOD_INIT (gdb) - { - grub_gdb_idtinit (); -- cmd = grub_register_command ("gdbstub", grub_cmd_gdbstub, -- N_("PORT"), -- /* TRANSLATORS: GDB stub is a small part of -- GDB functionality running on local host -- which allows remote debugger to -- connect to it. */ -- N_("Start GDB stub on given port")); -- cmd_break = grub_register_command ("gdbstub_break", grub_cmd_gdb_break, -- /* TRANSLATORS: this refers to triggering -- a breakpoint so that the user will land -- into GDB. */ -- 0, N_("Break into GDB")); -- cmd_stop = grub_register_command ("gdbstub_stop", grub_cmd_gdbstop, -- 0, N_("Stop GDB stub")); -+ cmd = grub_register_command_lockdown ("gdbstub", grub_cmd_gdbstub, -+ N_("PORT"), -+ /* -+ * TRANSLATORS: GDB stub is a small part of -+ * GDB functionality running on local host -+ * which allows remote debugger to -+ * connect to it. -+ */ -+ N_("Start GDB stub on given port")); -+ cmd_break = grub_register_command_lockdown ("gdbstub_break", grub_cmd_gdb_break, -+ /* -+ * TRANSLATORS: this refers to triggering -+ * a breakpoint so that the user will land -+ * into GDB. -+ */ -+ 0, N_("Break into GDB")); -+ cmd_stop = grub_register_command_lockdown ("gdbstub_stop", grub_cmd_gdbstop, -+ 0, N_("Stop GDB stub")); - } - - GRUB_MOD_FINI (gdb) --- -2.26.2 - diff --git a/backport-0011-hfsplus-Check-that-the-volume-name-length-is-valid.patch b/backport-0011-hfsplus-Check-that-the-volume-name-length-is-valid.patch deleted file mode 100644 index 42c6f04..0000000 --- a/backport-0011-hfsplus-Check-that-the-volume-name-length-is-valid.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 7dd75b3a9750afa151bf72f3a17123e46ea29456 Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Fri, 23 Oct 2020 17:09:31 +0000 -Subject: [PATCH] hfsplus: Check that the volume name length is valid - -HFS+ documentation suggests that the maximum filename and volume name is -255 Unicode characters in length. - -So, when converting from big-endian to little-endian, we should ensure -that the name of the volume has a length that is between 0 and 255, -inclusive. - -Fixes: CID 73641 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=2298f6e0d951251bb9ca97d891d1bc8b74515f8c - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/fs/hfsplus.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/grub-core/fs/hfsplus.c b/grub-core/fs/hfsplus.c -index 9c4e4c8..8fe7c12 100644 ---- a/grub-core/fs/hfsplus.c -+++ b/grub-core/fs/hfsplus.c -@@ -1012,6 +1012,15 @@ grub_hfsplus_label (grub_device_t device, char **label) - grub_hfsplus_btree_recptr (&data->catalog_tree, node, ptr); - - label_len = grub_be_to_cpu16 (catkey->namelen); -+ -+ /* Ensure that the length is >= 0. */ -+ if (label_len < 0) -+ label_len = 0; -+ -+ /* Ensure label length is at most 255 Unicode characters. */ -+ if (label_len > 255) -+ label_len = 255; -+ - label_name = grub_calloc (label_len, sizeof (*label_name)); - if (!label_name) - { --- -2.19.1 - diff --git a/backport-0012-CVE-2020-27779-and-CVE-2020-14372.patch b/backport-0012-CVE-2020-27779-and-CVE-2020-14372.patch deleted file mode 100644 index 3a5c91c..0000000 --- a/backport-0012-CVE-2020-27779-and-CVE-2020-14372.patch +++ /dev/null @@ -1,60 +0,0 @@ -From da75051bd36ce97b94254f17a6a94b5cbdf77d48 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Wed, 24 Feb 2021 14:44:38 +0100 -Subject: [PATCH 19/46] loader/xnu: Don't allow loading extension and packages - when locked down - -The shim_lock verifier validates the XNU kernels but no its extensions -and packages. Prevent these to be loaded when the GRUB is locked down. - -Signed-off-by: Javier Martinez Canillas -Reviewed-by: Daniel Kiper ---- - grub-core/loader/xnu.c | 31 +++++++++++++++++-------------- - 1 file changed, 17 insertions(+), 14 deletions(-) - -diff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c -index 77d7060e1..07232d2a1 100644 ---- a/grub-core/loader/xnu.c -+++ b/grub-core/loader/xnu.c -@@ -1482,20 +1482,23 @@ GRUB_MOD_INIT(xnu) - N_("Load XNU image.")); - cmd_kernel64 = grub_register_command ("xnu_kernel64", grub_cmd_xnu_kernel64, - 0, N_("Load 64-bit XNU image.")); -- cmd_mkext = grub_register_command ("xnu_mkext", grub_cmd_xnu_mkext, 0, -- N_("Load XNU extension package.")); -- cmd_kext = grub_register_command ("xnu_kext", grub_cmd_xnu_kext, 0, -- N_("Load XNU extension.")); -- cmd_kextdir = grub_register_command ("xnu_kextdir", grub_cmd_xnu_kextdir, -- /* TRANSLATORS: OSBundleRequired is a -- variable name in xnu extensions -- manifests. It behaves mostly like -- GNU/Linux runlevels. -- */ -- N_("DIRECTORY [OSBundleRequired]"), -- /* TRANSLATORS: There are many extensions -- in extension directory. */ -- N_("Load XNU extension directory.")); -+ cmd_mkext = grub_register_command_lockdown ("xnu_mkext", grub_cmd_xnu_mkext, 0, -+ N_("Load XNU extension package.")); -+ cmd_kext = grub_register_command_lockdown ("xnu_kext", grub_cmd_xnu_kext, 0, -+ N_("Load XNU extension.")); -+ cmd_kextdir = grub_register_command_lockdown ("xnu_kextdir", grub_cmd_xnu_kextdir, -+ /* -+ * TRANSLATORS: OSBundleRequired is -+ * a variable name in xnu extensions -+ * manifests. It behaves mostly like -+ * GNU/Linux runlevels. -+ */ -+ N_("DIRECTORY [OSBundleRequired]"), -+ /* -+ * TRANSLATORS: There are many extensions -+ * in extension directory. -+ */ -+ N_("Load XNU extension directory.")); - cmd_ramdisk = grub_register_command ("xnu_ramdisk", grub_cmd_xnu_ramdisk, 0, - /* TRANSLATORS: ramdisk here isn't identifier. It can be translated. */ - N_("Load XNU ramdisk. " --- -2.26.2 - diff --git a/backport-0012-zfs-Fix-possible-negative-shift-operation.patch b/backport-0012-zfs-Fix-possible-negative-shift-operation.patch deleted file mode 100644 index c136e57..0000000 --- a/backport-0012-zfs-Fix-possible-negative-shift-operation.patch +++ /dev/null @@ -1,44 +0,0 @@ -From c2f4b251269b140e899528f9a824fad5e226d736 Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Tue, 24 Nov 2020 16:41:49 +0000 -Subject: [PATCH] zfs: Fix possible negative shift operation - -While it is possible for the return value from zfs_log2() to be zero -(0), it is quite unlikely, given that the previous assignment to blksz -is shifted up by SPA_MINBLOCKSHIFT (9) before 9 is subtracted at the -assignment to epbs. - -But, while unlikely during a normal operation, it may be that a carefully -crafted ZFS filesystem could result in a zero (0) value to the -dn_datalbkszsec field, which means that the shift left does nothing -and assigns zero (0) to blksz, resulting in a negative epbs value. - -Fixes: CID 73608 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=a02091834d3e167320d8a262ff04b8e83c5e616d - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/fs/zfs/zfs.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/grub-core/fs/zfs/zfs.c b/grub-core/fs/zfs/zfs.c -index 36d0373..0c42cba 100644 ---- a/grub-core/fs/zfs/zfs.c -+++ b/grub-core/fs/zfs/zfs.c -@@ -2667,6 +2667,11 @@ dnode_get (dnode_end_t * mdn, grub_uint64_t objnum, grub_uint8_t type, - blksz = grub_zfs_to_cpu16 (mdn->dn.dn_datablkszsec, - mdn->endian) << SPA_MINBLOCKSHIFT; - epbs = zfs_log2 (blksz) - DNODE_SHIFT; -+ -+ /* While this should never happen, we should check that epbs is not negative. */ -+ if (epbs < 0) -+ epbs = 0; -+ - blkid = objnum >> epbs; - idx = objnum & ((1 << epbs) - 1); - --- -2.19.1 - diff --git a/backport-0013-zfs-Fix-resource-leaks-while-constructing-path.patch b/backport-0013-zfs-Fix-resource-leaks-while-constructing-path.patch deleted file mode 100644 index 4c09cbe..0000000 --- a/backport-0013-zfs-Fix-resource-leaks-while-constructing-path.patch +++ /dev/null @@ -1,123 +0,0 @@ -From d8f1c05738b877a1035bbc6daaae0e99a1210afb Mon Sep 17 00:00:00 2001 -From: Paulo Flabiano Smorigo -Date: Mon, 14 Dec 2020 18:54:49 -0300 -Subject: [PATCH] zfs: Fix resource leaks while constructing path - -There are several exit points in dnode_get_path() that are causing possible -memory leaks. - -In the while(1) the correct exit mechanism should not be to do a direct return, -but to instead break out of the loop, setting err first if it is not already set. - -The reason behind this is that the dnode_path is a linked list, and while doing -through this loop, it is being allocated and built up - the only way to -correctly unravel it is to traverse it, which is what is being done at the end -of the function outside of the loop. - -Several of the existing exit points correctly did a break, but not all so this -change makes that more consistent and should resolve the leaking of memory as -found by Coverity. - -Fixes: CID 73741 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=89bdab965805e8d54d7f75349024e1a11cbe2eb8 - -Signed-off-by: Paulo Flabiano Smorigo -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/fs/zfs/zfs.c | 30 +++++++++++++++++++++--------- - 1 file changed, 21 insertions(+), 9 deletions(-) - -diff --git a/grub-core/fs/zfs/zfs.c b/grub-core/fs/zfs/zfs.c -index 0c42cba..98567a7 100644 ---- a/grub-core/fs/zfs/zfs.c -+++ b/grub-core/fs/zfs/zfs.c -@@ -2836,8 +2836,8 @@ dnode_get_path (struct subvolume *subvol, const char *path_in, dnode_end_t *dn, - - if (dnode_path->dn.dn.dn_type != DMU_OT_DIRECTORY_CONTENTS) - { -- grub_free (path_buf); -- return grub_error (GRUB_ERR_BAD_FILE_TYPE, N_("not a directory")); -+ err = grub_error (GRUB_ERR_BAD_FILE_TYPE, N_("not a directory")); -+ break; - } - err = zap_lookup (&(dnode_path->dn), cname, &objnum, - data, subvol->case_insensitive); -@@ -2879,11 +2879,18 @@ dnode_get_path (struct subvolume *subvol, const char *path_in, dnode_end_t *dn, - << SPA_MINBLOCKSHIFT); - - if (blksz == 0) -- return grub_error(GRUB_ERR_BAD_FS, "0-sized block"); -+ { -+ err = grub_error (GRUB_ERR_BAD_FS, "0-sized block"); -+ break; -+ } - - sym_value = grub_malloc (sym_sz); - if (!sym_value) -- return grub_errno; -+ { -+ err = grub_errno; -+ break; -+ } -+ - for (block = 0; block < (sym_sz + blksz - 1) / blksz; block++) - { - void *t; -@@ -2893,7 +2900,7 @@ dnode_get_path (struct subvolume *subvol, const char *path_in, dnode_end_t *dn, - if (err) - { - grub_free (sym_value); -- return err; -+ break; - } - - movesize = sym_sz - block * blksz; -@@ -2903,6 +2910,8 @@ dnode_get_path (struct subvolume *subvol, const char *path_in, dnode_end_t *dn, - grub_memcpy (sym_value + block * blksz, t, movesize); - grub_free (t); - } -+ if (err) -+ break; - free_symval = 1; - } - path = path_buf = grub_malloc (sym_sz + grub_strlen (oldpath) + 1); -@@ -2911,7 +2920,8 @@ dnode_get_path (struct subvolume *subvol, const char *path_in, dnode_end_t *dn, - grub_free (oldpathbuf); - if (free_symval) - grub_free (sym_value); -- return grub_errno; -+ err = grub_errno; -+ break; - } - grub_memcpy (path, sym_value, sym_sz); - if (free_symval) -@@ -2949,11 +2959,12 @@ dnode_get_path (struct subvolume *subvol, const char *path_in, dnode_end_t *dn, - - err = zio_read (bp, dnode_path->dn.endian, &sahdrp, NULL, data); - if (err) -- return err; -+ break; - } - else - { -- return grub_error (GRUB_ERR_BAD_FS, "filesystem is corrupt"); -+ err = grub_error (GRUB_ERR_BAD_FS, "filesystem is corrupt"); -+ break; - } - - hdrsize = SA_HDR_SIZE (((sa_hdr_phys_t *) sahdrp)); -@@ -2974,7 +2985,8 @@ dnode_get_path (struct subvolume *subvol, const char *path_in, dnode_end_t *dn, - if (!path_buf) - { - grub_free (oldpathbuf); -- return grub_errno; -+ err = grub_errno; -+ break; - } - grub_memcpy (path, sym_value, sym_sz); - path [sym_sz] = 0; --- -2.19.1 - diff --git a/backport-0014-zfs-Fix-possible-integer-overflows.patch b/backport-0014-zfs-Fix-possible-integer-overflows.patch deleted file mode 100644 index 36db4d5..0000000 --- a/backport-0014-zfs-Fix-possible-integer-overflows.patch +++ /dev/null @@ -1,58 +0,0 @@ -From a005682edd852f7d44903885504d1bfbf313c98a Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Tue, 8 Dec 2020 22:17:04 +0000 -Subject: [PATCH] zfs: Fix possible integer overflows - -In all cases the problem is that the value being acted upon by -a left-shift is a 32-bit number which is then being used in the -context of a 64-bit number. - -To avoid overflow we ensure that the number being shifted is 64-bit -before the shift is done. - -Fixes: CID 73684, CID 73695, CID 73764 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=302c12ff5714bc455949117c1c9548ccb324d55b - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/fs/zfs/zfs.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/grub-core/fs/zfs/zfs.c b/grub-core/fs/zfs/zfs.c -index 98567a7..e3b5f50 100644 ---- a/grub-core/fs/zfs/zfs.c -+++ b/grub-core/fs/zfs/zfs.c -@@ -564,7 +564,7 @@ find_bestub (uberblock_phys_t * ub_array, - ubptr = (uberblock_phys_t *) ((grub_properly_aligned_t *) ub_array - + ((i << ub_shift) - / sizeof (grub_properly_aligned_t))); -- err = uberblock_verify (ubptr, offset, 1 << ub_shift); -+ err = uberblock_verify (ubptr, offset, (grub_size_t) 1 << ub_shift); - if (err) - { - grub_errno = GRUB_ERR_NONE; -@@ -1543,7 +1543,7 @@ read_device (grub_uint64_t offset, struct grub_zfs_device_desc *desc, - - high = grub_divmod64 ((offset >> desc->ashift) + c, - desc->n_children, &devn); -- csize = bsize << desc->ashift; -+ csize = (grub_size_t) bsize << desc->ashift; - if (csize > len) - csize = len; - -@@ -1635,8 +1635,8 @@ read_device (grub_uint64_t offset, struct grub_zfs_device_desc *desc, - - while (len > 0) - { -- grub_size_t csize; -- csize = ((s / (desc->n_children - desc->nparity)) -+ grub_size_t csize = s; -+ csize = ((csize / (desc->n_children - desc->nparity)) - << desc->ashift); - if (csize > len) - csize = len; --- -2.19.1 - diff --git a/backport-0015-zfsinfo-Correct-a-check-for-error-allocating-memory.patch b/backport-0015-zfsinfo-Correct-a-check-for-error-allocating-memory.patch deleted file mode 100644 index ec4bac8..0000000 --- a/backport-0015-zfsinfo-Correct-a-check-for-error-allocating-memory.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 241197448f94998e4bf0bdc32fcb8a93338d11c7 Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Thu, 26 Nov 2020 10:56:45 +0000 -Subject: [PATCH] zfsinfo: Correct a check for error allocating memory - -While arguably the check for grub_errno is correct, we should really be -checking the return value from the function since it is always possible -that grub_errno was set elsewhere, making this code behave incorrectly. - -Fixes: CID 73668 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=7aab03418ec6a9b991aa44416cb2585aff4e7972 - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/fs/zfs/zfsinfo.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/grub-core/fs/zfs/zfsinfo.c b/grub-core/fs/zfs/zfsinfo.c -index c8a28ac..bf29180 100644 ---- a/grub-core/fs/zfs/zfsinfo.c -+++ b/grub-core/fs/zfs/zfsinfo.c -@@ -358,8 +358,8 @@ grub_cmd_zfs_bootfs (grub_command_t cmd __attribute__ ((unused)), int argc, - return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("one argument expected")); - - devname = grub_file_get_device_name (args[0]); -- if (grub_errno) -- return grub_errno; -+ if (devname == NULL) -+ return GRUB_ERR_OUT_OF_MEMORY; - - dev = grub_device_open (devname); - grub_free (devname); --- -2.19.1 - diff --git a/backport-0016-affs-Fix-memory-leaks.patch b/backport-0016-affs-Fix-memory-leaks.patch deleted file mode 100644 index a779c45..0000000 --- a/backport-0016-affs-Fix-memory-leaks.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 8f3bc051b74a471f1b083fa80c752dc69566daba Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Thu, 26 Nov 2020 12:48:07 +0000 -Subject: [PATCH] affs: Fix memory leaks - -The node structure reference is being allocated but not freed if it -reaches the end of the function. If any of the hooks had returned -a non-zero value, then node would have been copied in to the context -reference, but otherwise node is not stored and should be freed. - -Similarly, the call to grub_affs_create_node() replaces the allocated -memory in node with a newly allocated structure, leaking the existing -memory pointed by node. - -Finally, when dir->parent is set, then we again replace node with newly -allocated memory, which seems unnecessary when we copy in the values -from dir->parent immediately after. - -Fixes: CID 73759 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=178ac5107389f8e5b32489d743d6824a5ebf342a - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/fs/affs.c | 18 ++++++++---------- - 1 file changed, 8 insertions(+), 10 deletions(-) - -diff --git a/grub-core/fs/affs.c b/grub-core/fs/affs.c -index 220b371..230e26a 100644 ---- a/grub-core/fs/affs.c -+++ b/grub-core/fs/affs.c -@@ -400,12 +400,12 @@ grub_affs_iterate_dir (grub_fshelp_node_t dir, - { - unsigned int i; - struct grub_affs_file file; -- struct grub_fshelp_node *node = 0; -+ struct grub_fshelp_node *node, *orig_node; - struct grub_affs_data *data = dir->data; - grub_uint32_t *hashtable; - - /* Create the directory entries for `.' and `..'. */ -- node = grub_zalloc (sizeof (*node)); -+ node = orig_node = grub_zalloc (sizeof (*node)); - if (!node) - return 1; - -@@ -414,9 +414,6 @@ grub_affs_iterate_dir (grub_fshelp_node_t dir, - return 1; - if (dir->parent) - { -- node = grub_zalloc (sizeof (*node)); -- if (!node) -- return 1; - *node = *dir->parent; - if (hook ("..", GRUB_FSHELP_DIR, node, hook_data)) - return 1; -@@ -456,17 +453,18 @@ grub_affs_iterate_dir (grub_fshelp_node_t dir, - - if (grub_affs_create_node (dir, hook, hook_data, &node, &hashtable, - next, &file)) -- return 1; -+ { -+ /* Node has been replaced in function. */ -+ grub_free (orig_node); -+ return 1; -+ } - - next = grub_be_to_cpu32 (file.next); - } - } - -- grub_free (hashtable); -- return 0; -- - fail: -- grub_free (node); -+ grub_free (orig_node); - grub_free (hashtable); - return 0; - } --- -2.19.1 - diff --git a/backport-0017-libgcrypt-mpi-Fix-possible-unintended-sign-extension.patch b/backport-0017-libgcrypt-mpi-Fix-possible-unintended-sign-extension.patch deleted file mode 100644 index af3aec5..0000000 --- a/backport-0017-libgcrypt-mpi-Fix-possible-unintended-sign-extension.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 6ca2b8bcd83f1da666f390274f9d749f2cebe75c Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Tue, 3 Nov 2020 16:43:37 +0000 -Subject: [PATCH] libgcrypt/mpi: Fix possible unintended sign extension - -The array of unsigned char gets promoted to a signed 32-bit int before -it is finally promoted to a size_t. There is the possibility that this -may result in the signed-bit being set for the intermediate signed -32-bit int. We should ensure that the promotion is to the correct type -before we bitwise-OR the values. - -Fixes: CID 96697 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=e8814c811132a70f9b55418f7567378a34ad3883 - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/lib/libgcrypt/mpi/mpicoder.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/lib/libgcrypt/mpi/mpicoder.c b/grub-core/lib/libgcrypt/mpi/mpicoder.c -index a3435ed..7ecad27 100644 ---- a/grub-core/lib/libgcrypt/mpi/mpicoder.c -+++ b/grub-core/lib/libgcrypt/mpi/mpicoder.c -@@ -458,7 +458,7 @@ gcry_mpi_scan (struct gcry_mpi **ret_mpi, enum gcry_mpi_format format, - if (len && len < 4) - return gcry_error (GPG_ERR_TOO_SHORT); - -- n = (s[0] << 24 | s[1] << 16 | s[2] << 8 | s[3]); -+ n = ((size_t)s[0] << 24 | (size_t)s[1] << 16 | (size_t)s[2] << 8 | (size_t)s[3]); - s += 4; - if (len) - len -= 4; --- -2.19.1 - diff --git a/backport-0018-libgcrypt-mpi-Fix-possible-NULL-dereference.patch b/backport-0018-libgcrypt-mpi-Fix-possible-NULL-dereference.patch deleted file mode 100644 index 247fb9f..0000000 --- a/backport-0018-libgcrypt-mpi-Fix-possible-NULL-dereference.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 376207d95a9b4bd824cff943fac190b31f73f9d0 Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Thu, 26 Nov 2020 10:41:54 +0000 -Subject: [PATCH] libgcrypt/mpi: Fix possible NULL dereference - -The code in gcry_mpi_scan() assumes that buffer is not NULL, but there -is no explicit check for that, so we add one. - -Fixes: CID 73757 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=ae0f3fabeba7b393113d5dc185b6aff9b728136d - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/lib/libgcrypt/mpi/mpicoder.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/grub-core/lib/libgcrypt/mpi/mpicoder.c b/grub-core/lib/libgcrypt/mpi/mpicoder.c -index 7ecad27..6fe3891 100644 ---- a/grub-core/lib/libgcrypt/mpi/mpicoder.c -+++ b/grub-core/lib/libgcrypt/mpi/mpicoder.c -@@ -379,6 +379,9 @@ gcry_mpi_scan (struct gcry_mpi **ret_mpi, enum gcry_mpi_format format, - unsigned int len; - int secure = (buffer && gcry_is_secure (buffer)); - -+ if (!buffer) -+ return gcry_error (GPG_ERR_INV_ARG); -+ - if (format == GCRYMPI_FMT_SSH) - len = 0; - else --- -2.19.1 - diff --git a/backport-0019-syslinux-Fix-memory-leak-while-parsing.patch b/backport-0019-syslinux-Fix-memory-leak-while-parsing.patch deleted file mode 100644 index 457a8f6..0000000 --- a/backport-0019-syslinux-Fix-memory-leak-while-parsing.patch +++ /dev/null @@ -1,45 +0,0 @@ -From f15dc85e88c85f08afb67d59099aa150e096264f Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Thu, 26 Nov 2020 15:31:53 +0000 -Subject: [PATCH] syslinux: Fix memory leak while parsing - -In syslinux_parse_real() the 2 points where return is being called -didn't release the memory stored in buf which is no longer required. - -Fixes: CID 176634 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=95bc016dba94cab3d398dd74160665915cd08ad6 - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/lib/syslinux_parse.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/grub-core/lib/syslinux_parse.c b/grub-core/lib/syslinux_parse.c -index de9fda0..ff244d2 100644 ---- a/grub-core/lib/syslinux_parse.c -+++ b/grub-core/lib/syslinux_parse.c -@@ -737,7 +737,10 @@ syslinux_parse_real (struct syslinux_menu *menu) - && grub_strncasecmp ("help", ptr3, ptr4 - ptr3) == 0)) - { - if (helptext (ptr5, file, menu)) -- return 1; -+ { -+ grub_free (buf); -+ return 1; -+ } - continue; - } - -@@ -757,6 +760,7 @@ syslinux_parse_real (struct syslinux_menu *menu) - } - fail: - grub_file_close (file); -+ grub_free (buf); - return err; - } - --- -2.19.1 - diff --git a/backport-0020-normal-completion-Fix-leaking-of-memory-when-process.patch b/backport-0020-normal-completion-Fix-leaking-of-memory-when-process.patch deleted file mode 100644 index 6d80085..0000000 --- a/backport-0020-normal-completion-Fix-leaking-of-memory-when-process.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 2cf1f83fcb5e816144f4352f153a07219e2c2e5a Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Fri, 4 Dec 2020 18:56:48 +0000 -Subject: [PATCH] normal/completion: Fix leaking of memory when processing a - completion - -It is possible for the code to reach the end of the function without -freeing the memory allocated to argv and argc still to be 0. - -We should always call grub_free(argv). The grub_free() will handle -a NULL argument correctly if it reaches that code without the memory -being allocated. - -Fixes: CID 96672 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=9213575b7a95b514bce80be5964a28d407d7d56d - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/normal/completion.c | 10 ++++------ - 1 file changed, 4 insertions(+), 6 deletions(-) - -diff --git a/grub-core/normal/completion.c b/grub-core/normal/completion.c -index c07100a..18cadfa 100644 ---- a/grub-core/normal/completion.c -+++ b/grub-core/normal/completion.c -@@ -401,8 +401,8 @@ char * - grub_normal_do_completion (char *buf, int *restore, - void (*hook) (const char *, grub_completion_type_t, int)) - { -- int argc; -- char **argv; -+ int argc = 0; -+ char **argv = NULL; - - /* Initialize variables. */ - match = 0; -@@ -517,10 +517,8 @@ grub_normal_do_completion (char *buf, int *restore, - - fail: - if (argc != 0) -- { -- grub_free (argv[0]); -- grub_free (argv); -- } -+ grub_free (argv[0]); -+ grub_free (argv); - grub_free (match); - grub_errno = GRUB_ERR_NONE; - --- -2.19.1 - diff --git a/backport-0021-commands-hashsum-Fix-a-memory-leak.patch b/backport-0021-commands-hashsum-Fix-a-memory-leak.patch deleted file mode 100644 index d391cc1..0000000 --- a/backport-0021-commands-hashsum-Fix-a-memory-leak.patch +++ /dev/null @@ -1,58 +0,0 @@ -From d172ca13c6fdf9a3daf1539eec9fd6b3a17dc16b Mon Sep 17 00:00:00 2001 -From: Chris Coulson -Date: Tue, 1 Dec 2020 23:41:24 +0000 -Subject: [PATCH] commands/hashsum: Fix a memory leak - -check_list() uses grub_file_getline(), which allocates a buffer. -If the hash list file contains invalid lines, the function leaks -this buffer when it returns an error. - -Fixes: CID 176635 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=8b6f528e52e18b7a69f90b8dc3671d7b1147d9f3 - -Signed-off-by: Chris Coulson -Reviewed-by: Daniel Kiper ---- - grub-core/commands/hashsum.c | 15 ++++++++++++--- - 1 file changed, 12 insertions(+), 3 deletions(-) - -diff --git a/grub-core/commands/hashsum.c b/grub-core/commands/hashsum.c -index 456ba90..b8a22b0 100644 ---- a/grub-core/commands/hashsum.c -+++ b/grub-core/commands/hashsum.c -@@ -128,11 +128,17 @@ check_list (const gcry_md_spec_t *hash, const char *hashfilename, - high = hextoval (*p++); - low = hextoval (*p++); - if (high < 0 || low < 0) -- return grub_error (GRUB_ERR_BAD_FILE_TYPE, "invalid hash list"); -+ { -+ grub_free (buf); -+ return grub_error (GRUB_ERR_BAD_FILE_TYPE, "invalid hash list"); -+ } - expected[i] = (high << 4) | low; - } - if ((p[0] != ' ' && p[0] != '\t') || (p[1] != ' ' && p[1] != '\t')) -- return grub_error (GRUB_ERR_BAD_FILE_TYPE, "invalid hash list"); -+ { -+ grub_free (buf); -+ return grub_error (GRUB_ERR_BAD_FILE_TYPE, "invalid hash list"); -+ } - p += 2; - if (prefix) - { -@@ -140,7 +146,10 @@ check_list (const gcry_md_spec_t *hash, const char *hashfilename, - - filename = grub_xasprintf ("%s/%s", prefix, p); - if (!filename) -- return grub_errno; -+ { -+ grub_free (buf); -+ return grub_errno; -+ } - file = grub_file_open (filename, GRUB_FILE_TYPE_TO_HASH - | (!uncompress ? GRUB_FILE_TYPE_NO_DECOMPRESS - : GRUB_FILE_TYPE_NONE)); --- -2.19.1 - diff --git a/backport-0022-video-efi_gop-Remove-unnecessary-return-value-of-gru.patch b/backport-0022-video-efi_gop-Remove-unnecessary-return-value-of-gru.patch deleted file mode 100644 index 1b28771..0000000 --- a/backport-0022-video-efi_gop-Remove-unnecessary-return-value-of-gru.patch +++ /dev/null @@ -1,96 +0,0 @@ -From cbd9c660d75335e49d928b37a1c4b3c85aee6df3 Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Tue, 8 Dec 2020 21:14:31 +0000 -Subject: [PATCH] video/efi_gop: Remove unnecessary return value of - grub_video_gop_fill_mode_info() - -The return value of grub_video_gop_fill_mode_info() is never able to be -anything other than GRUB_ERR_NONE. So, rather than continue to return -a value and checking it each time, it is more correct to redefine the -function to not return anything and remove checks of its return value -altogether. - -Fixes: CID 96701 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=fc5951d3b1616055ef81a019a5affc09d13344d0 - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/video/efi_gop.c | 25 ++++++------------------- - 1 file changed, 6 insertions(+), 19 deletions(-) - -diff --git a/grub-core/video/efi_gop.c b/grub-core/video/efi_gop.c -index be446f8..e6c9372 100644 ---- a/grub-core/video/efi_gop.c -+++ b/grub-core/video/efi_gop.c -@@ -235,7 +235,7 @@ grub_video_gop_fill_real_mode_info (unsigned mode, - return GRUB_ERR_NONE; - } - --static grub_err_t -+static void - grub_video_gop_fill_mode_info (unsigned mode, - struct grub_efi_gop_mode_info *in, - struct grub_video_mode_info *out) -@@ -260,8 +260,6 @@ grub_video_gop_fill_mode_info (unsigned mode, - out->blit_format = GRUB_VIDEO_BLIT_FORMAT_BGRA_8888; - out->mode_type |= (GRUB_VIDEO_MODE_TYPE_DOUBLE_BUFFERED - | GRUB_VIDEO_MODE_TYPE_UPDATING_SWAP); -- -- return GRUB_ERR_NONE; - } - - static int -@@ -274,7 +272,6 @@ grub_video_gop_iterate (int (*hook) (const struct grub_video_mode_info *info, vo - grub_efi_uintn_t size; - grub_efi_status_t status; - struct grub_efi_gop_mode_info *info = NULL; -- grub_err_t err; - struct grub_video_mode_info mode_info; - - status = efi_call_4 (gop->query_mode, gop, mode, &size, &info); -@@ -285,12 +282,7 @@ grub_video_gop_iterate (int (*hook) (const struct grub_video_mode_info *info, vo - continue; - } - -- err = grub_video_gop_fill_mode_info (mode, info, &mode_info); -- if (err) -- { -- grub_errno = GRUB_ERR_NONE; -- continue; -- } -+ grub_video_gop_fill_mode_info (mode, info, &mode_info); - if (hook (&mode_info, hook_arg)) - return 1; - } -@@ -474,13 +466,8 @@ grub_video_gop_setup (unsigned int width, unsigned int height, - - info = gop->mode->info; - -- err = grub_video_gop_fill_mode_info (gop->mode->mode, info, -- &framebuffer.mode_info); -- if (err) -- { -- grub_dprintf ("video", "GOP: couldn't fill mode info\n"); -- return err; -- } -+ grub_video_gop_fill_mode_info (gop->mode->mode, info, -+ &framebuffer.mode_info); - - framebuffer.ptr = (void *) (grub_addr_t) gop->mode->fb_base; - framebuffer.offscreen -@@ -494,8 +481,8 @@ grub_video_gop_setup (unsigned int width, unsigned int height, - { - grub_dprintf ("video", "GOP: couldn't allocate shadow\n"); - grub_errno = 0; -- err = grub_video_gop_fill_mode_info (gop->mode->mode, info, -- &framebuffer.mode_info); -+ grub_video_gop_fill_mode_info (gop->mode->mode, info, -+ &framebuffer.mode_info); - buffer = framebuffer.ptr; - } - --- -2.19.1 - diff --git a/backport-0023-video-fb-fbfill-Fix-potential-integer-overflow.patch b/backport-0023-video-fb-fbfill-Fix-potential-integer-overflow.patch deleted file mode 100644 index 2a7be81..0000000 --- a/backport-0023-video-fb-fbfill-Fix-potential-integer-overflow.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 7ad0a046156daf7dfb10018a1c5804e6ec668c6b Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Wed, 4 Nov 2020 15:10:51 +0000 -Subject: [PATCH] video/fb/fbfill: Fix potential integer overflow - -The multiplication of 2 unsigned 32-bit integers may overflow before -promotion to unsigned 64-bit. We should ensure that the multiplication -is done with overflow detection. Additionally, use grub_sub() for -subtraction. - -Fixes: CID 73640, CID 73697, CID 73702, CID 73823 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=7ce3259f67ac2cd93acb0ec0080c24b3b69e66c6 - -Signed-off-by: Darren Kenny -Signed-off-by: Marco A Benatto -Reviewed-by: Daniel Kiper ---- - grub-core/video/fb/fbfill.c | 17 +++++++++++++---- - 1 file changed, 13 insertions(+), 4 deletions(-) - -diff --git a/grub-core/video/fb/fbfill.c b/grub-core/video/fb/fbfill.c -index 11816d0..a37acd1 100644 ---- a/grub-core/video/fb/fbfill.c -+++ b/grub-core/video/fb/fbfill.c -@@ -31,6 +31,7 @@ - #include - #include - #include -+#include - #include - - /* Generic filler that works for every supported mode. */ -@@ -61,7 +62,9 @@ grub_video_fbfill_direct32 (struct grub_video_fbblit_info *dst, - - /* Calculate the number of bytes to advance from the end of one line - to the beginning of the next line. */ -- rowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width; -+ if (grub_mul (dst->mode_info->bytes_per_pixel, width, &rowskip) || -+ grub_sub (dst->mode_info->pitch, rowskip, &rowskip)) -+ return; - - /* Get the start address. */ - dstptr = grub_video_fb_get_video_ptr (dst, x, y); -@@ -98,7 +101,9 @@ grub_video_fbfill_direct24 (struct grub_video_fbblit_info *dst, - #endif - /* Calculate the number of bytes to advance from the end of one line - to the beginning of the next line. */ -- rowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width; -+ if (grub_mul (dst->mode_info->bytes_per_pixel, width, &rowskip) || -+ grub_sub (dst->mode_info->pitch, rowskip, &rowskip)) -+ return; - - /* Get the start address. */ - dstptr = grub_video_fb_get_video_ptr (dst, x, y); -@@ -131,7 +136,9 @@ grub_video_fbfill_direct16 (struct grub_video_fbblit_info *dst, - - /* Calculate the number of bytes to advance from the end of one line - to the beginning of the next line. */ -- rowskip = (dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width); -+ if (grub_mul (dst->mode_info->bytes_per_pixel, width, &rowskip) || -+ grub_sub (dst->mode_info->pitch, rowskip, &rowskip)) -+ return; - - /* Get the start address. */ - dstptr = grub_video_fb_get_video_ptr (dst, x, y); -@@ -161,7 +168,9 @@ grub_video_fbfill_direct8 (struct grub_video_fbblit_info *dst, - - /* Calculate the number of bytes to advance from the end of one line - to the beginning of the next line. */ -- rowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width; -+ if (grub_mul (dst->mode_info->bytes_per_pixel, width, &rowskip) || -+ grub_sub (dst->mode_info->pitch, rowskip, &rowskip)) -+ return; - - /* Get the start address. */ - dstptr = grub_video_fb_get_video_ptr (dst, x, y); --- -2.19.1 - diff --git a/backport-0024-video-fb-video_fb-Fix-multiple-integer-overflows.patch b/backport-0024-video-fb-video_fb-Fix-multiple-integer-overflows.patch deleted file mode 100644 index b93d548..0000000 --- a/backport-0024-video-fb-video_fb-Fix-multiple-integer-overflows.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 57f8f7adde0a9c47e56d8619d2d2d14c5e5ca172 Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Wed, 4 Nov 2020 14:43:44 +0000 -Subject: [PATCH] video/fb/video_fb: Fix multiple integer overflows - -The calculation of the unsigned 64-bit value is being generated by -multiplying 2, signed or unsigned, 32-bit integers which may overflow -before promotion to unsigned 64-bit. Fix all of them. - -Fixes: CID 73703, CID 73767, CID 73833 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=08e098b1dbf01e96376f594b337491bc4cfa48dd - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/video/fb/video_fb.c | 52 ++++++++++++++++++++++++----------- - 1 file changed, 36 insertions(+), 16 deletions(-) - -diff --git a/grub-core/video/fb/video_fb.c b/grub-core/video/fb/video_fb.c -index 1a602c8..1c9a138 100644 ---- a/grub-core/video/fb/video_fb.c -+++ b/grub-core/video/fb/video_fb.c -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -1417,15 +1418,23 @@ doublebuf_blit_update_screen (void) - { - if (framebuffer.current_dirty.first_line - <= framebuffer.current_dirty.last_line) -- grub_memcpy ((char *) framebuffer.pages[0] -- + framebuffer.current_dirty.first_line -- * framebuffer.back_target->mode_info.pitch, -- (char *) framebuffer.back_target->data -- + framebuffer.current_dirty.first_line -- * framebuffer.back_target->mode_info.pitch, -- framebuffer.back_target->mode_info.pitch -- * (framebuffer.current_dirty.last_line -- - framebuffer.current_dirty.first_line)); -+ { -+ grub_size_t copy_size; -+ -+ if (grub_sub (framebuffer.current_dirty.last_line, -+ framebuffer.current_dirty.first_line, ©_size) || -+ grub_mul (framebuffer.back_target->mode_info.pitch, copy_size, ©_size)) -+ { -+ /* Shouldn't happen, but if it does we've a bug. */ -+ return GRUB_ERR_BUG; -+ } -+ -+ grub_memcpy ((char *) framebuffer.pages[0] + framebuffer.current_dirty.first_line * -+ framebuffer.back_target->mode_info.pitch, -+ (char *) framebuffer.back_target->data + framebuffer.current_dirty.first_line * -+ framebuffer.back_target->mode_info.pitch, -+ copy_size); -+ } - framebuffer.current_dirty.first_line - = framebuffer.back_target->mode_info.height; - framebuffer.current_dirty.last_line = 0; -@@ -1439,7 +1448,7 @@ grub_video_fb_doublebuf_blit_init (struct grub_video_fbrender_target **back, - volatile void *framebuf) - { - grub_err_t err; -- grub_size_t page_size = mode_info.pitch * mode_info.height; -+ grub_size_t page_size = (grub_size_t) mode_info.pitch * mode_info.height; - - framebuffer.offscreen_buffer = grub_zalloc (page_size); - if (! framebuffer.offscreen_buffer) -@@ -1482,12 +1491,23 @@ doublebuf_pageflipping_update_screen (void) - last_line = framebuffer.previous_dirty.last_line; - - if (first_line <= last_line) -- grub_memcpy ((char *) framebuffer.pages[framebuffer.render_page] -- + first_line * framebuffer.back_target->mode_info.pitch, -- (char *) framebuffer.back_target->data -- + first_line * framebuffer.back_target->mode_info.pitch, -- framebuffer.back_target->mode_info.pitch -- * (last_line - first_line)); -+ { -+ grub_size_t copy_size; -+ -+ if (grub_sub (last_line, first_line, ©_size) || -+ grub_mul (framebuffer.back_target->mode_info.pitch, copy_size, ©_size)) -+ { -+ /* Shouldn't happen, but if it does we've a bug. */ -+ return GRUB_ERR_BUG; -+ } -+ -+ grub_memcpy ((char *) framebuffer.pages[framebuffer.render_page] + first_line * -+ framebuffer.back_target->mode_info.pitch, -+ (char *) framebuffer.back_target->data + first_line * -+ framebuffer.back_target->mode_info.pitch, -+ copy_size); -+ } -+ - framebuffer.previous_dirty = framebuffer.current_dirty; - framebuffer.current_dirty.first_line - = framebuffer.back_target->mode_info.height; --- -2.19.1 - diff --git a/backport-0025-video-fb-video_fb-Fix-possible-integer-overflow.patch b/backport-0025-video-fb-video_fb-Fix-possible-integer-overflow.patch deleted file mode 100644 index dcb40c0..0000000 --- a/backport-0025-video-fb-video_fb-Fix-possible-integer-overflow.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 12e144d4c50cee2e773f9994921524e1a342b565 Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Fri, 4 Dec 2020 14:51:30 +0000 -Subject: [PATCH] video/fb/video_fb: Fix possible integer overflow - -It is minimal possibility that the values being used here will overflow. -So, change the code to use the safemath function grub_mul() to ensure -that doesn't happen. - -Fixes: CID 73761 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=08413f2f4edec0e2d9bf15f836f6ee5ca2e379cb - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/video/fb/video_fb.c | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/grub-core/video/fb/video_fb.c b/grub-core/video/fb/video_fb.c -index 1c9a138..ae6b89f 100644 ---- a/grub-core/video/fb/video_fb.c -+++ b/grub-core/video/fb/video_fb.c -@@ -1537,7 +1537,13 @@ doublebuf_pageflipping_init (struct grub_video_mode_info *mode_info, - volatile void *page1_ptr) - { - grub_err_t err; -- grub_size_t page_size = mode_info->pitch * mode_info->height; -+ grub_size_t page_size = 0; -+ -+ if (grub_mul (mode_info->pitch, mode_info->height, &page_size)) -+ { -+ /* Shouldn't happen, but if it does we've a bug. */ -+ return GRUB_ERR_BUG; -+ } - - framebuffer.offscreen_buffer = grub_malloc (page_size); - if (! framebuffer.offscreen_buffer) --- -2.19.1 - diff --git a/backport-0026-video-readers-jpeg-Test-for-an-invalid-next-marker-r.patch b/backport-0026-video-readers-jpeg-Test-for-an-invalid-next-marker-r.patch deleted file mode 100644 index 37eb0d5..0000000 --- a/backport-0026-video-readers-jpeg-Test-for-an-invalid-next-marker-r.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 7317421fa3343bc1aaf2a631a26b17a3a7bff9a7 Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Fri, 4 Dec 2020 15:39:00 +0000 -Subject: [PATCH] video/readers/jpeg: Test for an invalid next marker reference - from a jpeg file - -While it may never happen, and potentially could be caught at the end of -the function, it is worth checking up front for a bad reference to the -next marker just in case of a maliciously crafted file being provided. - -Fixes: CID 73694 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=5f5eb7ca8e971227e95745abe541df3e1509360e - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/video/readers/jpeg.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/grub-core/video/readers/jpeg.c b/grub-core/video/readers/jpeg.c -index 31359a4..0b6ce3c 100644 ---- a/grub-core/video/readers/jpeg.c -+++ b/grub-core/video/readers/jpeg.c -@@ -253,6 +253,12 @@ grub_jpeg_decode_quan_table (struct grub_jpeg_data *data) - next_marker = data->file->offset; - next_marker += grub_jpeg_get_word (data); - -+ if (next_marker > data->file->size) -+ { -+ /* Should never be set beyond the size of the file. */ -+ return grub_error (GRUB_ERR_BAD_FILE_TYPE, "jpeg: invalid next reference"); -+ } -+ - while (data->file->offset + sizeof (data->quan_table[id]) + 1 - <= next_marker) - { --- -2.19.1 - diff --git a/backport-0027-gfxmenu-gui_list-Remove-code-that-coverity-is-flaggi.patch b/backport-0027-gfxmenu-gui_list-Remove-code-that-coverity-is-flaggi.patch deleted file mode 100644 index e101343..0000000 --- a/backport-0027-gfxmenu-gui_list-Remove-code-that-coverity-is-flaggi.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 19fdfa6f93f586fd7d3ce0be0a94f90cb6bbf09d Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Mon, 7 Dec 2020 14:44:47 +0000 -Subject: [PATCH] gfxmenu/gui_list: Remove code that coverity is flagging as - dead - -The test of value for NULL before calling grub_strdup() is not required, -since the if condition prior to this has already tested for value being -NULL and cannot reach this code if it is. - -Fixes: CID 73659 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=4a1aa5917595650efbd46b581368c470ebee42ab - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/gfxmenu/gui_list.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/gfxmenu/gui_list.c b/grub-core/gfxmenu/gui_list.c -index 01477cd..df334a6 100644 ---- a/grub-core/gfxmenu/gui_list.c -+++ b/grub-core/gfxmenu/gui_list.c -@@ -771,7 +771,7 @@ list_set_property (void *vself, const char *name, const char *value) - { - self->need_to_recreate_boxes = 1; - grub_free (self->selected_item_box_pattern); -- self->selected_item_box_pattern = value ? grub_strdup (value) : 0; -+ self->selected_item_box_pattern = grub_strdup (value); - self->selected_item_box_pattern_inherit = 0; - } - } --- -2.19.1 - diff --git a/backport-0028-loader-bsd-Check-for-NULL-arg-up-front.patch b/backport-0028-loader-bsd-Check-for-NULL-arg-up-front.patch deleted file mode 100644 index 014934f..0000000 --- a/backport-0028-loader-bsd-Check-for-NULL-arg-up-front.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 57e99b2d5e72074ee07264e6c167e444b5419c78 Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Tue, 8 Dec 2020 21:47:13 +0000 -Subject: [PATCH] loader/bsd: Check for NULL arg up-front - -The code in the next block suggests that it is possible for .set to be -true but .arg may still be NULL. - -This code assumes that it is never NULL, yet later is testing if it is -NULL - that is inconsistent. - -So we should check first if .arg is not NULL, and remove this check that -is being flagged by Coverity since it is no longer required. - -Fixes: CID 292471 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=5d5391b0a05abe76e04c1eb68dcc6cbef5326c4a - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/loader/i386/bsd.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/grub-core/loader/i386/bsd.c b/grub-core/loader/i386/bsd.c -index ff98fb7..a1c0abf 100644 ---- a/grub-core/loader/i386/bsd.c -+++ b/grub-core/loader/i386/bsd.c -@@ -1606,7 +1606,7 @@ grub_cmd_openbsd (grub_extcmd_context_t ctxt, int argc, char *argv[]) - kernel_type = KERNEL_TYPE_OPENBSD; - bootflags = grub_bsd_parse_flags (ctxt->state, openbsd_flags); - -- if (ctxt->state[OPENBSD_ROOT_ARG].set) -+ if (ctxt->state[OPENBSD_ROOT_ARG].set && ctxt->state[OPENBSD_ROOT_ARG].arg != NULL) - { - const char *arg = ctxt->state[OPENBSD_ROOT_ARG].arg; - unsigned type, unit, part; -@@ -1623,7 +1623,7 @@ grub_cmd_openbsd (grub_extcmd_context_t ctxt, int argc, char *argv[]) - "unknown disk type name"); - - unit = grub_strtoul (arg, &arg, 10); -- if (! (arg && *arg >= 'a' && *arg <= 'z')) -+ if (! (*arg >= 'a' && *arg <= 'z')) - return grub_error (GRUB_ERR_BAD_ARGUMENT, - "only device specifications of form " - " are supported"); --- -2.19.1 - diff --git a/backport-0029-loader-xnu-Fix-memory-leak.patch b/backport-0029-loader-xnu-Fix-memory-leak.patch deleted file mode 100644 index 90f7304..0000000 --- a/backport-0029-loader-xnu-Fix-memory-leak.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 9c80754151a398650d7467a94b6c0ca6160f21f8 Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Thu, 26 Nov 2020 12:53:10 +0000 -Subject: [PATCH] loader/xnu: Fix memory leak - -he code here is finished with the memory stored in name, but it only -frees it if there curvalue is valid, while it could actually free it -regardless. - -The fix is a simple relocation of the grub_free() to before the test -of curvalue. - -Fixes: CID 96646 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=bcb59ece3263d118510c4440c4da0950f224bb7f - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - grub-core/loader/xnu.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c -index 36481d8..9d40908 100644 ---- a/grub-core/loader/xnu.c -+++ b/grub-core/loader/xnu.c -@@ -1392,9 +1392,9 @@ grub_xnu_fill_devicetree (void) - name[len] = 0; - - curvalue = grub_xnu_create_value (curkey, name); -+ grub_free (name); - if (!curvalue) - return grub_errno; -- grub_free (name); - - data = grub_malloc (grub_strlen (var->value) + 1); - if (!data) --- -2.19.1 - diff --git a/backport-0030-loader-xnu-Free-driverkey-data-when-an-error-is-dete.patch b/backport-0030-loader-xnu-Free-driverkey-data-when-an-error-is-dete.patch deleted file mode 100644 index 3e2461f..0000000 --- a/backport-0030-loader-xnu-Free-driverkey-data-when-an-error-is-dete.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 0699bb82f8c260161ff11cf28024c7e25f0a5dd5 Mon Sep 17 00:00:00 2001 -From: Marco A Benatto -Date: Mon, 30 Nov 2020 12:18:24 -0300 -Subject: [PATCH] loader/xnu: Free driverkey data when an error is detected in - grub_xnu_writetree_toheap() - -... to avoid memory leaks. - -Fixes: CID 96640 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=4b4027b6b1c877d7ab467896b04c7bd1aadcfa15 - -Signed-off-by: Marco A Benatto -Reviewed-by: Daniel Kiper ---- - grub-core/loader/xnu.c | 24 ++++++++++++++++++++---- - 1 file changed, 20 insertions(+), 4 deletions(-) - -diff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c -index 9d40908..8efcbd2 100644 ---- a/grub-core/loader/xnu.c -+++ b/grub-core/loader/xnu.c -@@ -228,26 +228,33 @@ grub_xnu_writetree_toheap (grub_addr_t *target, grub_size_t *size) - if (! memorymap) - return grub_errno; - -- driverkey = (struct grub_xnu_devtree_key *) grub_malloc (sizeof (*driverkey)); -+ driverkey = (struct grub_xnu_devtree_key *) grub_zalloc (sizeof (*driverkey)); - if (! driverkey) - return grub_errno; - driverkey->name = grub_strdup ("DeviceTree"); - if (! driverkey->name) -- return grub_errno; -+ { -+ err = grub_errno; -+ goto fail; -+ } -+ - driverkey->datasize = sizeof (*extdesc); - driverkey->next = memorymap->first_child; - memorymap->first_child = driverkey; - driverkey->data = extdesc - = (struct grub_xnu_extdesc *) grub_malloc (sizeof (*extdesc)); - if (! driverkey->data) -- return grub_errno; -+ { -+ err = grub_errno; -+ goto fail; -+ } - - /* Allocate the space based on the size with dummy value. */ - *size = grub_xnu_writetree_get_size (grub_xnu_devtree_root, "/"); - err = grub_xnu_heap_malloc (ALIGN_UP (*size + 1, GRUB_XNU_PAGESIZE), - &src, target); - if (err) -- return err; -+ goto fail; - - /* Put real data in the dummy. */ - extdesc->addr = *target; -@@ -256,6 +263,15 @@ grub_xnu_writetree_toheap (grub_addr_t *target, grub_size_t *size) - /* Write the tree to heap. */ - grub_xnu_writetree_toheap_real (src, grub_xnu_devtree_root, "/"); - return GRUB_ERR_NONE; -+ -+fail: -+ memorymap->first_child = NULL; -+ -+ grub_free (driverkey->data); -+ grub_free (driverkey->name); -+ grub_free (driverkey); -+ -+ return err; - } - - /* Find a key or value in parent key. */ --- -2.19.1 - diff --git a/backport-0031-loader-xnu-Check-if-pointer-is-NULL-before-using-it.patch b/backport-0031-loader-xnu-Check-if-pointer-is-NULL-before-using-it.patch deleted file mode 100644 index acb371c..0000000 --- a/backport-0031-loader-xnu-Check-if-pointer-is-NULL-before-using-it.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 650d479e6c326c8579b3fd4fa13d99bf3a775bf2 Mon Sep 17 00:00:00 2001 -From: Paulo Flabiano Smorigo -Date: Mon, 30 Nov 2020 10:36:00 -0300 -Subject: [PATCH] loader/xnu: Check if pointer is NULL before using it - -Fixes: CID 73654 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=7c8a2b5d1421a0f2a33d33531f7561f3da93b844 - -Signed-off-by: Paulo Flabiano Smorigo -Reviewed-by: Daniel Kiper ---- - grub-core/loader/xnu.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c -index 8efcbd2..74f3b4f 100644 ---- a/grub-core/loader/xnu.c -+++ b/grub-core/loader/xnu.c -@@ -671,6 +671,9 @@ grub_xnu_load_driver (char *infoplistname, grub_file_t binaryfile, - char *name, *nameend; - int namelen; - -+ if (infoplistname == NULL) -+ return grub_error (GRUB_ERR_BAD_FILENAME, N_("missing p-list filename")); -+ - name = get_name_ptr (infoplistname); - nameend = grub_strchr (name, '/'); - -@@ -702,10 +705,7 @@ grub_xnu_load_driver (char *infoplistname, grub_file_t binaryfile, - else - macho = 0; - -- if (infoplistname) -- infoplist = grub_file_open (infoplistname, GRUB_FILE_TYPE_XNU_INFO_PLIST); -- else -- infoplist = 0; -+ infoplist = grub_file_open (infoplistname, GRUB_FILE_TYPE_XNU_INFO_PLIST); - grub_errno = GRUB_ERR_NONE; - if (infoplist) - { --- -2.19.1 - diff --git a/backport-0032-util-grub-install-Fix-NULL-pointer-dereferences.patch b/backport-0032-util-grub-install-Fix-NULL-pointer-dereferences.patch deleted file mode 100644 index ecf67ac..0000000 --- a/backport-0032-util-grub-install-Fix-NULL-pointer-dereferences.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 11c0550c2a5e0ff79b21294e9decf3c1da66e43b Mon Sep 17 00:00:00 2001 -From: Daniel Kiper -Date: Thu, 25 Feb 2021 18:35:01 +0100 -Subject: [PATCH] util/grub-install: Fix NULL pointer dereferences - -Two grub_device_open() calls does not have associated NULL checks -for returned values. Fix that and appease the Coverity. - -Fixes: CID 314583 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=8b3a95655b4391122e7b0315d8cc6f876caf8183 - -Signed-off-by: Daniel Kiper -Reviewed-by: Javier Martinez Canillas ---- - util/grub-install.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/util/grub-install.c b/util/grub-install.c -index dddb757..d4fd549 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -1837,6 +1837,8 @@ main (int argc, char *argv[]) - fill_core_services (core_services); - - ins_dev = grub_device_open (install_drive); -+ if (ins_dev == NULL) -+ grub_util_error ("%s", grub_errmsg); - - bless (ins_dev, core_services, 0); - -@@ -1937,6 +1939,8 @@ main (int argc, char *argv[]) - fill_core_services(core_services); - - ins_dev = grub_device_open (install_drive); -+ if (ins_dev == NULL) -+ grub_util_error ("%s", grub_errmsg); - - bless (ins_dev, boot_efi, 1); - if (!removable && update_nvram) --- -2.19.1 - diff --git a/backport-0033-util-grub-editenv-Fix-incorrect-casting-of-a-signed-.patch b/backport-0033-util-grub-editenv-Fix-incorrect-casting-of-a-signed-.patch deleted file mode 100644 index 70a4cda..0000000 --- a/backport-0033-util-grub-editenv-Fix-incorrect-casting-of-a-signed-.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 9f3d2f056a602df45e41646cf75bd4f379ccc94c Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Thu, 5 Nov 2020 14:33:50 +0000 -Subject: [PATCH] util/grub-editenv: Fix incorrect casting of a signed value - -The return value of ftell() may be negative (-1) on error. While it is -probably unlikely to occur, we should not blindly cast to an unsigned -value without first testing that it is not negative. - -Fixes: CID 73856 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=5dc41edc4eba259c6043ae7698c245ec1baaacc6 - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - util/grub-editenv.c | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/util/grub-editenv.c b/util/grub-editenv.c -index d848038..948eec8 100644 ---- a/util/grub-editenv.c -+++ b/util/grub-editenv.c -@@ -128,6 +128,7 @@ open_envblk_file (const char *name) - { - FILE *fp; - char *buf; -+ long loc; - size_t size; - grub_envblk_t envblk; - -@@ -146,7 +147,12 @@ open_envblk_file (const char *name) - grub_util_error (_("cannot seek `%s': %s"), name, - strerror (errno)); - -- size = (size_t) ftell (fp); -+ loc = ftell (fp); -+ if (loc < 0) -+ grub_util_error (_("cannot get file location `%s': %s"), name, -+ strerror (errno)); -+ -+ size = (size_t) loc; - - if (fseek (fp, 0, SEEK_SET) < 0) - grub_util_error (_("cannot seek `%s': %s"), name, --- -2.19.1 - diff --git a/backport-0034-util-glue-efi-Fix-incorrect-use-of-a-possibly-negati.patch b/backport-0034-util-glue-efi-Fix-incorrect-use-of-a-possibly-negati.patch deleted file mode 100644 index 96b170d..0000000 --- a/backport-0034-util-glue-efi-Fix-incorrect-use-of-a-possibly-negati.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 97292a12c766871e51e3efb2b04948841c1458df Mon Sep 17 00:00:00 2001 -From: Darren Kenny -Date: Fri, 4 Dec 2020 15:04:28 +0000 -Subject: [PATCH] util/glue-efi: Fix incorrect use of a possibly negative value - -It is possible for the ftell() function to return a negative value, -although it is fairly unlikely here, we should be checking for -a negative value before we assign it to an unsigned value. - -Fixes: CID 73744 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=1641d74e16f9d1ca35ba1a87ee4a0bf3afa48e72 - -Signed-off-by: Darren Kenny -Reviewed-by: Daniel Kiper ---- - util/glue-efi.c | 14 ++++++++++++-- - 1 file changed, 12 insertions(+), 2 deletions(-) - -diff --git a/util/glue-efi.c b/util/glue-efi.c -index 68f5316..de0fa6d 100644 ---- a/util/glue-efi.c -+++ b/util/glue-efi.c -@@ -39,13 +39,23 @@ write_fat (FILE *in32, FILE *in64, FILE *out, const char *out_filename, - struct grub_macho_fat_header head; - struct grub_macho_fat_arch arch32, arch64; - grub_uint32_t size32, size64; -+ long size; - char *buf; - - fseek (in32, 0, SEEK_END); -- size32 = ftell (in32); -+ size = ftell (in32); -+ if (size < 0) -+ grub_util_error ("cannot get end of input file '%s': %s", -+ name32, strerror (errno)); -+ size32 = (grub_uint32_t) size; - fseek (in32, 0, SEEK_SET); -+ - fseek (in64, 0, SEEK_END); -- size64 = ftell (in64); -+ size = ftell (in64); -+ if (size < 0) -+ grub_util_error ("cannot get end of input file '%s': %s", -+ name64, strerror (errno)); -+ size64 = (grub_uint64_t) size; - fseek (in64, 0, SEEK_SET); - - head.magic = grub_cpu_to_le32_compile_time (GRUB_MACHO_FAT_EFI_MAGIC); --- -2.19.1 - diff --git a/backport-0035-script-execute-Fix-NULL-dereference-in-grub_script_e.patch b/backport-0035-script-execute-Fix-NULL-dereference-in-grub_script_e.patch deleted file mode 100644 index 2d31106..0000000 --- a/backport-0035-script-execute-Fix-NULL-dereference-in-grub_script_e.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 502ceabcd34bd4fe666195142694d15f863bc6dc Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Fri, 3 Apr 2020 23:05:13 +1100 -Subject: [PATCH] script/execute: Fix NULL dereference in - grub_script_execute_cmdline() - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=41ae93b2e6c75453514629bcfe684300e3aec0ce - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/script/execute.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c -index d2f02cc..b6e326c 100644 ---- a/grub-core/script/execute.c -+++ b/grub-core/script/execute.c -@@ -978,7 +978,7 @@ grub_script_execute_cmdline (struct grub_script_cmd *cmd) - struct grub_script_argv argv = { 0, 0, 0 }; - - /* Lookup the command. */ -- if (grub_script_arglist_to_argv (cmdline->arglist, &argv) || ! argv.args[0]) -+ if (grub_script_arglist_to_argv (cmdline->arglist, &argv) || ! argv.args || ! argv.args[0]) - return grub_errno; - - for (i = 0; i < argv.argc; i++) --- -2.19.1 - diff --git a/backport-0036-commands-ls-Require-device_name-is-not-NULL-before-p.patch b/backport-0036-commands-ls-Require-device_name-is-not-NULL-before-p.patch deleted file mode 100644 index 206359f..0000000 --- a/backport-0036-commands-ls-Require-device_name-is-not-NULL-before-p.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 5955a69bc4281d159a19424917382aa32faa6e95 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Mon, 11 Jan 2021 16:57:37 +1100 -Subject: [PATCH] commands/ls: Require device_name is not NULL before printing - -This can be triggered with: - ls -l (0 0*) -and causes a NULL deref in grub_normal_print_device_info(). - -I'm not sure if there's any implication with the IEEE 1275 platform. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=6afbe6063c95b827372f9ec310c9fc7461311eb1 - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/commands/ls.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/commands/ls.c b/grub-core/commands/ls.c -index 5b7491a..326d2d6 100644 ---- a/grub-core/commands/ls.c -+++ b/grub-core/commands/ls.c -@@ -196,7 +196,7 @@ grub_ls_list_files (char *dirname, int longlist, int all, int human) - goto fail; - } - -- if (! *path) -+ if (! *path && device_name) - { - if (grub_errno == GRUB_ERR_UNKNOWN_FS) - grub_errno = GRUB_ERR_NONE; --- -2.19.1 - diff --git a/backport-0037-script-execute-Avoid-crash-when-using-outside-a-func.patch b/backport-0037-script-execute-Avoid-crash-when-using-outside-a-func.patch deleted file mode 100644 index a060016..0000000 --- a/backport-0037-script-execute-Avoid-crash-when-using-outside-a-func.patch +++ /dev/null @@ -1,39 +0,0 @@ -From c7b1dc3c5cbe4d6bf9af4736f3fc6d62405dad31 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Mon, 11 Jan 2021 17:30:42 +1100 -Subject: [PATCH] script/execute: Avoid crash when using "$#" outside a - function scope - -"$#" represents the number of arguments to a function. It is only -defined in a function scope, where "scope" is non-NULL. Currently, -if we attempt to evaluate "$#" outside a function scope, "scope" will -be NULL and we will crash with a NULL pointer dereference. - -Do not attempt to count arguments for "$#" if "scope" is NULL. This -will result in "$#" being interpreted as an empty string if evaluated -outside a function scope. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=fe0586347ee46f927ae27bb9673532da9f5dead5 - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/script/execute.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c -index b6e326c..4bf8d38 100644 ---- a/grub-core/script/execute.c -+++ b/grub-core/script/execute.c -@@ -519,7 +519,7 @@ gettext_putvar (const char *str, grub_size_t len, - return 0; - - /* Enough for any number. */ -- if (len == 1 && str[0] == '#') -+ if (len == 1 && str[0] == '#' && scope != NULL) - { - grub_snprintf (*ptr, 30, "%u", scope->argv.argc); - *ptr += grub_strlen (*ptr); --- -2.19.1 - diff --git a/backport-0038-script-execute-Don-t-crash-on-a-for-loop-with-no-ite.patch b/backport-0038-script-execute-Don-t-crash-on-a-for-loop-with-no-ite.patch deleted file mode 100644 index 9fe3803..0000000 --- a/backport-0038-script-execute-Don-t-crash-on-a-for-loop-with-no-ite.patch +++ /dev/null @@ -1,41 +0,0 @@ -From bebb524f8bd54ffe42074d825b8b98913356a670 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Fri, 22 Jan 2021 16:18:26 +1100 -Subject: [PATCH] script/execute: Don't crash on a "for" loop with no items - -The following crashes the parser: - - for x in; do - 0 - done - -This is because grub_script_arglist_to_argv() doesn't consider the -possibility that arglist is NULL. Catch that explicitly. - -This avoids a NULL pointer dereference. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=0a05f88e2bb33ed2a0cfd93f481f471efb7791aa - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/script/execute.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c -index 4bf8d38..0c6dd9c 100644 ---- a/grub-core/script/execute.c -+++ b/grub-core/script/execute.c -@@ -658,6 +658,9 @@ grub_script_arglist_to_argv (struct grub_script_arglist *arglist, - struct grub_script_arg *arg = 0; - struct grub_script_argv result = { 0, 0, 0 }; - -+ if (arglist == NULL) -+ return 1; -+ - for (; arglist && arglist->arg; arglist = arglist->next) - { - if (grub_script_argv_next (&result)) --- -2.19.1 - diff --git a/backport-0039-kern-misc-Always-set-end-in-grub_strtoull.patch b/backport-0039-kern-misc-Always-set-end-in-grub_strtoull.patch deleted file mode 100644 index cba9aa4..0000000 --- a/backport-0039-kern-misc-Always-set-end-in-grub_strtoull.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 4dee187a7b30a8a666adf01a56cebca1f78e15f0 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Wed, 13 Jan 2021 22:19:01 +1100 -Subject: [PATCH] kern/misc: Always set *end in grub_strtoull() - -Currently, if there is an error in grub_strtoull(), *end is not set. -This differs from the usual behavior of strtoull(), and also means that -some callers may use an uninitialized value for *end. - -Set *end unconditionally. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=f41f0af48ab7f7c135aac17ac862c30bde0bbab7 - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/kern/misc.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index dc5e10b..8f8a32d 100644 ---- a/grub-core/kern/misc.c -+++ b/grub-core/kern/misc.c -@@ -466,6 +466,10 @@ grub_strtoull (const char * restrict str, const char ** const restrict end, - { - grub_error (GRUB_ERR_OUT_OF_RANGE, - N_("overflow is detected")); -+ -+ if (end) -+ *end = (char *) str; -+ - return ~0ULL; - } - -@@ -476,6 +480,10 @@ grub_strtoull (const char * restrict str, const char ** const restrict end, - if (! found) - { - grub_errno = GRUB_ERR_BAD_NUMBER; -+ -+ if (end) -+ *end = (char *) str; -+ - return 0; - } - --- -2.19.1 - diff --git a/backport-0040-video-readers-jpeg-Catch-files-with-unsupported-quan.patch b/backport-0040-video-readers-jpeg-Catch-files-with-unsupported-quan.patch deleted file mode 100644 index 16f3d1c..0000000 --- a/backport-0040-video-readers-jpeg-Catch-files-with-unsupported-quan.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 05aa64ac71242bff90a2356a319d6373b44d7d10 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Fri, 15 Jan 2021 12:57:04 +1100 -Subject: [PATCH] video/readers/jpeg: Catch files with unsupported quantization - or Huffman tables - -Our decoder only supports 2 quantization tables. If a file asks for -a quantization table with index > 1, reject it. - -Similarly, our decoder only supports 4 Huffman tables. If a file asks -for a Huffman table with index > 3, reject it. - -This fixes some out of bounds reads. It's not clear what degree of control -over subsequent execution could be gained by someone who can carefully -set up the contents of memory before loading an invalid JPEG file. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=693989598fd38c3c0b2a928f4f64865b5681762f - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/video/readers/jpeg.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/grub-core/video/readers/jpeg.c b/grub-core/video/readers/jpeg.c -index 0b6ce3c..23f919a 100644 ---- a/grub-core/video/readers/jpeg.c -+++ b/grub-core/video/readers/jpeg.c -@@ -333,7 +333,11 @@ grub_jpeg_decode_sof (struct grub_jpeg_data *data) - else if (ss != JPEG_SAMPLING_1x1) - return grub_error (GRUB_ERR_BAD_FILE_TYPE, - "jpeg: sampling method not supported"); -+ - data->comp_index[id][0] = grub_jpeg_get_byte (data); -+ if (data->comp_index[id][0] > 1) -+ return grub_error (GRUB_ERR_BAD_FILE_TYPE, -+ "jpeg: too many quantization tables"); - } - - if (data->file->offset != next_marker) -@@ -602,6 +606,10 @@ grub_jpeg_decode_sos (struct grub_jpeg_data *data) - ht = grub_jpeg_get_byte (data); - data->comp_index[id][1] = (ht >> 4); - data->comp_index[id][2] = (ht & 0xF) + 2; -+ -+ if ((data->comp_index[id][1] < 0) || (data->comp_index[id][1] > 3) || -+ (data->comp_index[id][2] < 0) || (data->comp_index[id][2] > 3)) -+ return grub_error (GRUB_ERR_BAD_FILE_TYPE, "jpeg: invalid hufftable index"); - } - - grub_jpeg_get_byte (data); /* Skip 3 unused bytes. */ --- -2.19.1 - diff --git a/backport-0041-video-readers-jpeg-Catch-OOB-reads-writes-in-grub_jp.patch b/backport-0041-video-readers-jpeg-Catch-OOB-reads-writes-in-grub_jp.patch deleted file mode 100644 index bba2d74..0000000 --- a/backport-0041-video-readers-jpeg-Catch-OOB-reads-writes-in-grub_jp.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 420121392a223d772381d5e82a256dcc3a41f080 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Fri, 15 Jan 2021 13:29:53 +1100 -Subject: [PATCH] video/readers/jpeg: Catch OOB reads/writes in - grub_jpeg_decode_du() - -The key line is: - - du[jpeg_zigzag_order[pos]] = val * (int) data->quan_table[qt][pos]; - -jpeg_zigzag_order is grub_uint8_t[64]. - -I don't understand JPEG decoders quite well enough to explain what's -going on here. However, I observe sometimes pos=64, which leads to an -OOB read of the jpeg_zigzag_order global then an OOB write to du. -That leads to various unpleasant memory corruption conditions. - -Catch where pos >= ARRAY_SIZE(jpeg_zigzag_order) and bail. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=34b85a6e07014383ddcad09f99ff239ad752dd1a - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/video/readers/jpeg.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/grub-core/video/readers/jpeg.c b/grub-core/video/readers/jpeg.c -index 23f919a..e514812 100644 ---- a/grub-core/video/readers/jpeg.c -+++ b/grub-core/video/readers/jpeg.c -@@ -526,6 +526,14 @@ grub_jpeg_decode_du (struct grub_jpeg_data *data, int id, jpeg_data_unit_t du) - val = grub_jpeg_get_number (data, num & 0xF); - num >>= 4; - pos += num; -+ -+ if (pos >= ARRAY_SIZE (jpeg_zigzag_order)) -+ { -+ grub_error (GRUB_ERR_BAD_FILE_TYPE, -+ "jpeg: invalid position in zigzag order!?"); -+ return; -+ } -+ - du[jpeg_zigzag_order[pos]] = val * (int) data->quan_table[qt][pos]; - pos++; - } --- -2.19.1 - diff --git a/backport-0042-video-readers-jpeg-Don-t-decode-data-before-start-of.patch b/backport-0042-video-readers-jpeg-Don-t-decode-data-before-start-of.patch deleted file mode 100644 index 02efb18..0000000 --- a/backport-0042-video-readers-jpeg-Don-t-decode-data-before-start-of.patch +++ /dev/null @@ -1,41 +0,0 @@ -From cd1d391aa0babd48c3ac2836fc841ce325c54f98 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Fri, 15 Jan 2021 14:06:46 +1100 -Subject: [PATCH] video/readers/jpeg: Don't decode data before start of stream - -When a start of stream marker is encountered, we call grub_jpeg_decode_sos() -which allocates space for a bitmap. - -When a restart marker is encountered, we call grub_jpeg_decode_data() which -then fills in that bitmap. - -If we get a restart marker before the start of stream marker, we will -attempt to write to a bitmap_ptr that hasn't been allocated. Catch this -and bail out. This fixes an attempt to write to NULL. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=8338a8238f08d9f3ae4c2ddfff0603eff80af9e2 - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/video/readers/jpeg.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/grub-core/video/readers/jpeg.c b/grub-core/video/readers/jpeg.c -index e514812..e31602f 100644 ---- a/grub-core/video/readers/jpeg.c -+++ b/grub-core/video/readers/jpeg.c -@@ -646,6 +646,10 @@ grub_jpeg_decode_data (struct grub_jpeg_data *data) - nr1 = (data->image_height + vb - 1) >> (3 + data->log_vs); - nc1 = (data->image_width + hb - 1) >> (3 + data->log_hs); - -+ if (data->bitmap_ptr == NULL) -+ return grub_error(GRUB_ERR_BAD_FILE_TYPE, -+ "jpeg: attempted to decode data before start of stream"); -+ - for (; data->r1 < nr1 && (!data->dri || rst); - data->r1++, data->bitmap_ptr += (vb * data->image_width - hb * nc1) * 3) - for (c1 = 0; c1 < nc1 && (!data->dri || rst); --- -2.19.1 - diff --git a/backport-0043-term-gfxterm-Don-t-set-up-a-font-with-glyphs-that-ar.patch b/backport-0043-term-gfxterm-Don-t-set-up-a-font-with-glyphs-that-ar.patch deleted file mode 100644 index ddd239e..0000000 --- a/backport-0043-term-gfxterm-Don-t-set-up-a-font-with-glyphs-that-ar.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 3f68d043b1624a320fdfdc39a064aabd06ff4a58 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Fri, 15 Jan 2021 20:03:20 +1100 -Subject: [PATCH] term/gfxterm: Don't set up a font with glyphs that are too - big - -Catch the case where we have a font so big that it causes the number of -rows or columns to be 0. Currently we continue and allocate a -virtual_screen.text_buffer of size 0. We then try to use that for glpyhs -and things go badly. - -On the emu platform, malloc() may give us a valid pointer, in which case -we'll access heap memory which we shouldn't. Alternatively, it may give us -NULL, in which case we'll crash. For other platforms, if I understand -grub_memalign() correctly, we will receive a valid but small allocation -that we will very likely later overrun. - -Prevent the creation of a virtual screen that isn't at least 40 cols -by 12 rows. This is arbitrary, but it seems that if your width or height -is half a standard 80x24 terminal, you're probably going to struggle to -read anything anyway. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=829329bddb2c3e623270cc634cc9ab32e6455fe7 - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/term/gfxterm.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/grub-core/term/gfxterm.c b/grub-core/term/gfxterm.c -index af7c090..b40fcce 100644 ---- a/grub-core/term/gfxterm.c -+++ b/grub-core/term/gfxterm.c -@@ -232,6 +232,15 @@ grub_virtual_screen_setup (unsigned int x, unsigned int y, - virtual_screen.columns = virtual_screen.width / virtual_screen.normal_char_width; - virtual_screen.rows = virtual_screen.height / virtual_screen.normal_char_height; - -+ /* -+ * There must be a minimum number of rows and columns for the screen to -+ * make sense. Arbitrarily pick half of 80x24. If either dimensions is 0 -+ * we would allocate 0 bytes for the text_buffer. -+ */ -+ if (virtual_screen.columns < 40 || virtual_screen.rows < 12) -+ return grub_error (GRUB_ERR_BAD_FONT, -+ "font: glyphs too large to fit on screen"); -+ - /* Allocate memory for text buffer. */ - virtual_screen.text_buffer = - (struct grub_colored_char *) grub_malloc (virtual_screen.columns --- -2.19.1 - diff --git a/backport-0044-fs-fshelp-Catch-impermissibly-large-block-sizes-in-r.patch b/backport-0044-fs-fshelp-Catch-impermissibly-large-block-sizes-in-r.patch deleted file mode 100644 index 5761dbd..0000000 --- a/backport-0044-fs-fshelp-Catch-impermissibly-large-block-sizes-in-r.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 717b6b29d8b0bff9a1f89a3f602ece385c0e9d3d Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Mon, 18 Jan 2021 11:46:39 +1100 -Subject: [PATCH] fs/fshelp: Catch impermissibly large block sizes in read - helper - -A fuzzed HFS+ filesystem had log2blocksize = 22. This gave -log2blocksize + GRUB_DISK_SECTOR_BITS = 31. 1 << 31 = 0x80000000, -which is -1 as an int. This caused some wacky behavior later on in -the function, leading to out-of-bounds writes on the destination buffer. - -Catch log2blocksize + GRUB_DISK_SECTOR_BITS >= 31. We could be stricter, -but this is the minimum that will prevent integer size weirdness. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=b5bc456f664bc301ab4cd5a17d3d23c6661c259e - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/fs/fshelp.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/grub-core/fs/fshelp.c b/grub-core/fs/fshelp.c -index 4c902ad..a2d0d29 100644 ---- a/grub-core/fs/fshelp.c -+++ b/grub-core/fs/fshelp.c -@@ -362,6 +362,18 @@ grub_fshelp_read_file (grub_disk_t disk, grub_fshelp_node_t node, - grub_disk_addr_t i, blockcnt; - int blocksize = 1 << (log2blocksize + GRUB_DISK_SECTOR_BITS); - -+ /* -+ * Catch blatantly invalid log2blocksize. We could be a lot stricter, but -+ * this is the most permissive we can be before we start to see integer -+ * overflow/underflow issues. -+ */ -+ if (log2blocksize + GRUB_DISK_SECTOR_BITS >= 31) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, -+ N_("blocksize too large")); -+ return -1; -+ } -+ - if (pos > filesize) - { - grub_error (GRUB_ERR_OUT_OF_RANGE, --- -2.19.1 - diff --git a/backport-0045-fs-hfsplus-Don-t-fetch-a-key-beyond-the-end-of-the-n.patch b/backport-0045-fs-hfsplus-Don-t-fetch-a-key-beyond-the-end-of-the-n.patch deleted file mode 100644 index acad440..0000000 --- a/backport-0045-fs-hfsplus-Don-t-fetch-a-key-beyond-the-end-of-the-n.patch +++ /dev/null @@ -1,34 +0,0 @@ -From cb045eb0b724ae94dca014ef83a6f0c3ae802d83 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Fri, 22 Jan 2021 18:13:56 +1100 -Subject: [PATCH] fs/hfsplus: Don't fetch a key beyond the end of the node - -Otherwise you get a wild pointer, leading to a bunch of invalid reads. -Check it falls inside the given node. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=58ea11d5b9ca0966bd9c68d8ba5240cf7dc3ba83 - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/fs/hfsplus.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/grub-core/fs/hfsplus.c b/grub-core/fs/hfsplus.c -index 8fe7c12..1c7791b 100644 ---- a/grub-core/fs/hfsplus.c -+++ b/grub-core/fs/hfsplus.c -@@ -635,6 +635,10 @@ grub_hfsplus_btree_search (struct grub_hfsplus_btree *btree, - pointer = ((char *) currkey - + grub_be_to_cpu16 (currkey->keylen) - + 2); -+ -+ if ((char *) pointer > node + btree->nodesize - 2) -+ return grub_error (GRUB_ERR_BAD_FS, "HFS+ key beyond end of node"); -+ - currnode = grub_be_to_cpu32 (grub_get_unaligned32 (pointer)); - match = 1; - } --- -2.19.1 - diff --git a/backport-0046-fs-hfsplus-Don-t-use-uninitialized-data-on-corrupt-f.patch b/backport-0046-fs-hfsplus-Don-t-use-uninitialized-data-on-corrupt-f.patch deleted file mode 100644 index 4f9ebea..0000000 --- a/backport-0046-fs-hfsplus-Don-t-use-uninitialized-data-on-corrupt-f.patch +++ /dev/null @@ -1,109 +0,0 @@ -From dbfe338e79d47fc535bd924660ae5bb0881716d3 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Tue, 2 Feb 2021 16:59:35 +1100 -Subject: [PATCH] fs/hfsplus: Don't use uninitialized data on corrupt - filesystems - -Valgrind identified the following use of uninitialized data: - - ==2782220== Conditional jump or move depends on uninitialised value(s) - ==2782220== at 0x42B364: grub_hfsplus_btree_search (hfsplus.c:566) - ==2782220== by 0x42B21D: grub_hfsplus_read_block (hfsplus.c:185) - ==2782220== by 0x42A693: grub_fshelp_read_file (fshelp.c:386) - ==2782220== by 0x42C598: grub_hfsplus_read_file (hfsplus.c:219) - ==2782220== by 0x42C598: grub_hfsplus_mount (hfsplus.c:330) - ==2782220== by 0x42B8C5: grub_hfsplus_dir (hfsplus.c:958) - ==2782220== by 0x4C1AE6: grub_fs_probe (fs.c:73) - ==2782220== by 0x407C94: grub_ls_list_files (ls.c:186) - ==2782220== by 0x407C94: grub_cmd_ls (ls.c:284) - ==2782220== by 0x4D7130: grub_extcmd_dispatcher (extcmd.c:55) - ==2782220== by 0x4045A6: execute_command (grub-fstest.c:59) - ==2782220== by 0x4045A6: fstest (grub-fstest.c:433) - ==2782220== by 0x4045A6: main (grub-fstest.c:772) - ==2782220== Uninitialised value was created by a heap allocation - ==2782220== at 0x483C7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) - ==2782220== by 0x4C0305: grub_malloc (mm.c:42) - ==2782220== by 0x42C21D: grub_hfsplus_mount (hfsplus.c:239) - ==2782220== by 0x42B8C5: grub_hfsplus_dir (hfsplus.c:958) - ==2782220== by 0x4C1AE6: grub_fs_probe (fs.c:73) - ==2782220== by 0x407C94: grub_ls_list_files (ls.c:186) - ==2782220== by 0x407C94: grub_cmd_ls (ls.c:284) - ==2782220== by 0x4D7130: grub_extcmd_dispatcher (extcmd.c:55) - ==2782220== by 0x4045A6: execute_command (grub-fstest.c:59) - ==2782220== by 0x4045A6: fstest (grub-fstest.c:433) - ==2782220== by 0x4045A6: main (grub-fstest.c:772) - -This happens when the process of reading the catalog file goes sufficiently -wrong that there's an attempt to read the extent overflow file, which has -not yet been loaded. Keep track of when the extent overflow file is -fully loaded and refuse to use it before then. - -The load valgrind doesn't like is btree->nodesize, and that's then used -to allocate a data structure. It looks like there are subsequently a lot -of reads based on that pointer so OOB reads are likely, and indeed crashes -(albeit difficult-to-replicate ones) have been observed in fuzzing. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=2ca0e5dbcdcb6fc93ccae39a0f39d0dba4a7ff20 - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/fs/hfsplus.c | 14 ++++++++++++++ - include/grub/hfsplus.h | 2 ++ - 2 files changed, 16 insertions(+) - -diff --git a/grub-core/fs/hfsplus.c b/grub-core/fs/hfsplus.c -index 1c7791b..361e5be 100644 ---- a/grub-core/fs/hfsplus.c -+++ b/grub-core/fs/hfsplus.c -@@ -177,6 +177,17 @@ grub_hfsplus_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock) - break; - } - -+ /* -+ * If the extent overflow tree isn't ready yet, we can't look -+ * in it. This can happen where the catalog file is corrupted. -+ */ -+ if (!node->data->extoverflow_tree_ready) -+ { -+ grub_error (GRUB_ERR_BAD_FS, -+ "attempted to read extent overflow tree before loading"); -+ break; -+ } -+ - /* Set up the key to look for in the extent overflow file. */ - extoverflow.extkey.fileid = node->fileid; - extoverflow.extkey.type = 0; -@@ -241,6 +252,7 @@ grub_hfsplus_mount (grub_disk_t disk) - return 0; - - data->disk = disk; -+ data->extoverflow_tree_ready = 0; - - /* Read the bootblock. */ - grub_disk_read (disk, GRUB_HFSPLUS_SBLOCK, 0, sizeof (volheader), -@@ -357,6 +369,8 @@ grub_hfsplus_mount (grub_disk_t disk) - if (data->extoverflow_tree.nodesize < 2) - goto fail; - -+ data->extoverflow_tree_ready = 1; -+ - if (grub_hfsplus_read_file (&data->attr_tree.file, 0, 0, - sizeof (struct grub_hfsplus_btnode), - sizeof (header), (char *) &header) <= 0) -diff --git a/include/grub/hfsplus.h b/include/grub/hfsplus.h -index 117740a..e14dd31 100644 ---- a/include/grub/hfsplus.h -+++ b/include/grub/hfsplus.h -@@ -113,6 +113,8 @@ struct grub_hfsplus_data - struct grub_hfsplus_btree extoverflow_tree; - struct grub_hfsplus_btree attr_tree; - -+ int extoverflow_tree_ready; -+ - struct grub_hfsplus_file dirroot; - struct grub_hfsplus_file opened_file; - --- -2.19.1 - diff --git a/backport-0047-fs-hfs-Disable-under-lockdown.patch b/backport-0047-fs-hfs-Disable-under-lockdown.patch deleted file mode 100644 index 56de3c1..0000000 --- a/backport-0047-fs-hfs-Disable-under-lockdown.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 0cb62a411ee329bc3f25e46303c3e458b905bb34 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Mon, 18 Jan 2021 12:19:07 +1100 -Subject: [PATCH] fs/hfs: Disable under lockdown - -HFS has issues such as infinite mutual recursion that are simply too -complex to fix for such a legacy format. So simply do not permit -it to be loaded under lockdown. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=1c15848838d924552611247110723e2a1c17a5a1 - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/fs/hfs.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/grub-core/fs/hfs.c b/grub-core/fs/hfs.c -index 3fe842b..9a5b7bb 100644 ---- a/grub-core/fs/hfs.c -+++ b/grub-core/fs/hfs.c -@@ -30,6 +30,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -1433,11 +1434,13 @@ static struct grub_fs grub_hfs_fs = - - GRUB_MOD_INIT(hfs) - { -- grub_fs_register (&grub_hfs_fs); -+ if (!grub_is_lockdown ()) -+ grub_fs_register (&grub_hfs_fs); - my_mod = mod; - } - - GRUB_MOD_FINI(hfs) - { -- grub_fs_unregister (&grub_hfs_fs); -+ if (!grub_is_lockdown()) -+ grub_fs_unregister (&grub_hfs_fs); - } --- -2.19.1 - diff --git a/backport-0048-fs-sfs-Fix-over-read-of-root-object-name.patch b/backport-0048-fs-sfs-Fix-over-read-of-root-object-name.patch deleted file mode 100644 index 6a30250..0000000 --- a/backport-0048-fs-sfs-Fix-over-read-of-root-object-name.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 087dad12b18f238b360aade771d34f4e8d50a8b9 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Mon, 18 Jan 2021 14:34:58 +1100 -Subject: [PATCH] fs/sfs: Fix over-read of root object name - -There's a read of the name of the root object that assumes that the name -is nul-terminated within the root block. This isn't guaranteed - it seems -SFS would require you to read multiple blocks to get a full name in general, -but maybe that doesn't apply to the root object. - -Either way, figure out how much space is left in the root block and don't -over-read it. This fixes some OOB reads. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=8d3ae59dee2930d640add3bba983006e1f5dd1b6 - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/fs/sfs.c | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/grub-core/fs/sfs.c b/grub-core/fs/sfs.c -index de2b107..983e880 100644 ---- a/grub-core/fs/sfs.c -+++ b/grub-core/fs/sfs.c -@@ -373,6 +373,7 @@ grub_sfs_mount (grub_disk_t disk) - struct grub_sfs_objc *rootobjc; - char *rootobjc_data = 0; - grub_uint32_t blk; -+ unsigned int max_len; - - data = grub_malloc (sizeof (*data)); - if (!data) -@@ -421,7 +422,13 @@ grub_sfs_mount (grub_disk_t disk) - data->diropen.data = data; - data->diropen.cache = 0; - data->disk = disk; -- data->label = grub_strdup ((char *) (rootobjc->objects[0].filename)); -+ -+ /* We only read 1 block of data, so truncate the name if needed. */ -+ max_len = ((GRUB_DISK_SECTOR_SIZE << data->log_blocksize) -+ - 24 /* offsetof (struct grub_sfs_objc, objects) */ -+ - 25); /* offsetof (struct grub_sfs_obj, filename) */ -+ data->label = grub_zalloc (max_len + 1); -+ grub_strncpy (data->label, (char *) rootobjc->objects[0].filename, max_len); - - grub_free (rootobjc_data); - return data; --- -2.19.1 - diff --git a/backport-0049-fs-jfs-Do-not-move-to-leaf-level-if-name-length-is-n.patch b/backport-0049-fs-jfs-Do-not-move-to-leaf-level-if-name-length-is-n.patch deleted file mode 100644 index 0c8684c..0000000 --- a/backport-0049-fs-jfs-Do-not-move-to-leaf-level-if-name-length-is-n.patch +++ /dev/null @@ -1,35 +0,0 @@ -From fb52b550be82812b6e9a4eeb0bc80bf1ae67de0b Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Mon, 18 Jan 2021 14:51:11 +1100 -Subject: [PATCH] fs/jfs: Do not move to leaf level if name length is negative - -Fuzzing JFS revealed crashes where a negative number would be passed -to le_to_cpu16_copy(). There it would be cast to a large positive number -and the copy would read and write off the end of the respective buffers. - -Catch this at the top as well as the bottom of the loop. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=ffd5a46f68710e2781899d0be4d701429a5a817d - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/fs/jfs.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/fs/jfs.c b/grub-core/fs/jfs.c -index d5a6d65..e5bbda6 100644 ---- a/grub-core/fs/jfs.c -+++ b/grub-core/fs/jfs.c -@@ -567,7 +567,7 @@ grub_jfs_getent (struct grub_jfs_diropen *diro) - - /* Move down to the leaf level. */ - nextent = leaf->next; -- if (leaf->next != 255) -+ if (leaf->next != 255 && len > 0) - do - { - next_leaf = &diro->next_leaf[nextent]; --- -2.19.1 - diff --git a/backport-0050-fs-jfs-Limit-the-extents-that-getblk-can-consider.patch b/backport-0050-fs-jfs-Limit-the-extents-that-getblk-can-consider.patch deleted file mode 100644 index c5f393b..0000000 --- a/backport-0050-fs-jfs-Limit-the-extents-that-getblk-can-consider.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 53d8b876fbe2b507845e81a7758a8bbe5f1d4f2d Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Mon, 18 Jan 2021 14:57:17 +1100 -Subject: [PATCH] fs/jfs: Limit the extents that getblk() can consider - -getblk() implicitly trusts that treehead->count is an accurate count of -the number of extents. However, that value is read from disk and is not -trustworthy, leading to OOB reads and crashes. I am not sure to what -extent the data read from OOB can influence subsequent program execution. - -Require callers to pass in the maximum number of extents for which -they have storage. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=bd0cf8148ccf721f6e39ffbd70f8abad0c8897f0 - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/fs/jfs.c | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -diff --git a/grub-core/fs/jfs.c b/grub-core/fs/jfs.c -index e5bbda6..804c42d 100644 ---- a/grub-core/fs/jfs.c -+++ b/grub-core/fs/jfs.c -@@ -261,13 +261,15 @@ static grub_err_t grub_jfs_lookup_symlink (struct grub_jfs_data *data, grub_uint - static grub_int64_t - getblk (struct grub_jfs_treehead *treehead, - struct grub_jfs_tree_extent *extents, -+ int max_extents, - struct grub_jfs_data *data, - grub_uint64_t blk) - { - int found = -1; - int i; - -- for (i = 0; i < grub_le_to_cpu16 (treehead->count) - 2; i++) -+ for (i = 0; i < grub_le_to_cpu16 (treehead->count) - 2 && -+ i < max_extents; i++) - { - if (treehead->flags & GRUB_JFS_TREE_LEAF) - { -@@ -302,7 +304,7 @@ getblk (struct grub_jfs_treehead *treehead, - << (grub_le_to_cpu16 (data->sblock.log2_blksz) - - GRUB_DISK_SECTOR_BITS), 0, - sizeof (*tree), (char *) tree)) -- ret = getblk (&tree->treehead, &tree->extents[0], data, blk); -+ ret = getblk (&tree->treehead, &tree->extents[0], 254, data, blk); - grub_free (tree); - return ret; - } -@@ -316,7 +318,7 @@ static grub_int64_t - grub_jfs_blkno (struct grub_jfs_data *data, struct grub_jfs_inode *inode, - grub_uint64_t blk) - { -- return getblk (&inode->file.tree, &inode->file.extents[0], data, blk); -+ return getblk (&inode->file.tree, &inode->file.extents[0], 16, data, blk); - } - - --- -2.19.1 - diff --git a/backport-0051-fs-jfs-Catch-infinite-recursion.patch b/backport-0051-fs-jfs-Catch-infinite-recursion.patch deleted file mode 100644 index 44366d5..0000000 --- a/backport-0051-fs-jfs-Catch-infinite-recursion.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 1311dfb93e144af93d6c91949101a802d46a510f Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Mon, 18 Jan 2021 15:47:24 +1100 -Subject: [PATCH] fs/jfs: Catch infinite recursion - -It's possible with a fuzzed filesystem for JFS to keep getblk()-ing -the same data over and over again, leading to stack exhaustion. - -Check if we'd be calling the function with exactly the same data as -was passed in, and if so abort. - -I'm not sure what the performance impact of this is and am open to -better ideas. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=223120dd83745126cb232a0248c9a8901d7e350d - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/fs/jfs.c | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git a/grub-core/fs/jfs.c b/grub-core/fs/jfs.c -index 804c42d..6f7c439 100644 ---- a/grub-core/fs/jfs.c -+++ b/grub-core/fs/jfs.c -@@ -304,7 +304,16 @@ getblk (struct grub_jfs_treehead *treehead, - << (grub_le_to_cpu16 (data->sblock.log2_blksz) - - GRUB_DISK_SECTOR_BITS), 0, - sizeof (*tree), (char *) tree)) -- ret = getblk (&tree->treehead, &tree->extents[0], 254, data, blk); -+ { -+ if (grub_memcmp (&tree->treehead, treehead, sizeof (struct grub_jfs_treehead)) || -+ grub_memcmp (&tree->extents, extents, 254 * sizeof (struct grub_jfs_tree_extent))) -+ ret = getblk (&tree->treehead, &tree->extents[0], 254, data, blk); -+ else -+ { -+ grub_error (GRUB_ERR_BAD_FS, "jfs: infinite recursion detected"); -+ ret = -1; -+ } -+ } - grub_free (tree); - return ret; - } --- -2.19.1 - diff --git a/backport-0052-fs-nilfs2-Reject-too-large-keys.patch b/backport-0052-fs-nilfs2-Reject-too-large-keys.patch deleted file mode 100644 index 8623d8c..0000000 --- a/backport-0052-fs-nilfs2-Reject-too-large-keys.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 054375c8ae2e78a53b8a098265c18515770cf599 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Mon, 18 Jan 2021 16:49:09 +1100 -Subject: [PATCH] fs/nilfs2: Reject too-large keys - -NILFS2 has up to 7 keys, per the data structure. Do not permit array -indices in excess of that. - -This catches some OOB reads. I don't know how controllable the invalidly -read data is or if that could be used later in the program. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=20ab8cb44bc140a1dedda82a3fccdd45e9bc6929 - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/fs/nilfs2.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/grub-core/fs/nilfs2.c b/grub-core/fs/nilfs2.c -index 7ed148d..fee2242 100644 ---- a/grub-core/fs/nilfs2.c -+++ b/grub-core/fs/nilfs2.c -@@ -569,6 +569,11 @@ grub_nilfs2_btree_lookup (struct grub_nilfs2_data *data, - static inline grub_uint64_t - grub_nilfs2_direct_lookup (struct grub_nilfs2_inode *inode, grub_uint64_t key) - { -+ if (1 + key > 6) -+ { -+ grub_error (GRUB_ERR_BAD_FS, "key is too large"); -+ return 0xffffffffffffffff; -+ } - return grub_le_to_cpu64 (inode->i_bmap[1 + key]); - } - -@@ -584,7 +589,7 @@ grub_nilfs2_bmap_lookup (struct grub_nilfs2_data *data, - { - grub_uint64_t ptr; - ptr = grub_nilfs2_direct_lookup (inode, key); -- if (need_translate) -+ if (ptr != ((grub_uint64_t) 0xffffffffffffffff) && need_translate) - ptr = grub_nilfs2_dat_translate (data, ptr); - return ptr; - } --- -2.19.1 - diff --git a/backport-0053-fs-nilfs2-Don-t-search-children-if-provided-number-i.patch b/backport-0053-fs-nilfs2-Don-t-search-children-if-provided-number-i.patch deleted file mode 100644 index 3a79d1c..0000000 --- a/backport-0053-fs-nilfs2-Don-t-search-children-if-provided-number-i.patch +++ /dev/null @@ -1,101 +0,0 @@ -From 1e3762857742b41d0752a9dd52513481bc4ecaf0 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Mon, 18 Jan 2021 16:49:44 +1100 -Subject: [PATCH] fs/nilfs2: Don't search children if provided number is too - large - -NILFS2 reads the number of children a node has from the node. Unfortunately, -that's not trustworthy. Check if it's beyond what the filesystem permits and -reject it if so. - -This blocks some OOB reads. I'm not sure how controllable the read is and what -could be done with invalidly read data later on. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=37c0eb05cdcc64c28d31c4ebd300f14d5239d05e - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/fs/nilfs2.c | 38 +++++++++++++++++++++++--------------- - 1 file changed, 23 insertions(+), 15 deletions(-) - -diff --git a/grub-core/fs/nilfs2.c b/grub-core/fs/nilfs2.c -index fee2242..43ac1ad 100644 ---- a/grub-core/fs/nilfs2.c -+++ b/grub-core/fs/nilfs2.c -@@ -416,14 +416,34 @@ grub_nilfs2_btree_node_get_key (struct grub_nilfs2_btree_node *node, - } - - static inline int --grub_nilfs2_btree_node_lookup (struct grub_nilfs2_btree_node *node, -+grub_nilfs2_btree_node_nchildren_max (struct grub_nilfs2_data *data, -+ struct grub_nilfs2_btree_node *node) -+{ -+ int node_children_max = ((NILFS2_BLOCK_SIZE (data) - -+ sizeof (struct grub_nilfs2_btree_node) - -+ NILFS_BTREE_NODE_EXTRA_PAD_SIZE) / -+ (sizeof (grub_uint64_t) + sizeof (grub_uint64_t))); -+ -+ return (node->bn_flags & NILFS_BTREE_NODE_ROOT) ? 3 : node_children_max; -+} -+ -+static inline int -+grub_nilfs2_btree_node_lookup (struct grub_nilfs2_data *data, -+ struct grub_nilfs2_btree_node *node, - grub_uint64_t key, int *indexp) - { - grub_uint64_t nkey; - int index, low, high, s; - - low = 0; -+ - high = grub_le_to_cpu16 (node->bn_nchildren) - 1; -+ if (high >= grub_nilfs2_btree_node_nchildren_max (data, node)) -+ { -+ grub_error (GRUB_ERR_BAD_FS, "too many children"); -+ return 0; -+ } -+ - index = 0; - s = 0; - while (low <= high) -@@ -459,18 +479,6 @@ grub_nilfs2_btree_node_lookup (struct grub_nilfs2_btree_node *node, - return s == 0; - } - --static inline int --grub_nilfs2_btree_node_nchildren_max (struct grub_nilfs2_data *data, -- struct grub_nilfs2_btree_node *node) --{ -- int node_children_max = ((NILFS2_BLOCK_SIZE (data) - -- sizeof (struct grub_nilfs2_btree_node) - -- NILFS_BTREE_NODE_EXTRA_PAD_SIZE) / -- (sizeof (grub_uint64_t) + sizeof (grub_uint64_t))); -- -- return (node->bn_flags & NILFS_BTREE_NODE_ROOT) ? 3 : node_children_max; --} -- - static inline grub_uint64_t * - grub_nilfs2_btree_node_dptrs (struct grub_nilfs2_data *data, - struct grub_nilfs2_btree_node *node) -@@ -517,7 +525,7 @@ grub_nilfs2_btree_lookup (struct grub_nilfs2_data *data, - node = grub_nilfs2_btree_get_root (inode); - level = grub_nilfs2_btree_get_level (node); - -- found = grub_nilfs2_btree_node_lookup (node, key, &index); -+ found = grub_nilfs2_btree_node_lookup (data, node, key, &index); - ptr = grub_nilfs2_btree_node_get_ptr (data, node, index); - if (need_translate) - ptr = grub_nilfs2_dat_translate (data, ptr); -@@ -538,7 +546,7 @@ grub_nilfs2_btree_lookup (struct grub_nilfs2_data *data, - } - - if (!found) -- found = grub_nilfs2_btree_node_lookup (node, key, &index); -+ found = grub_nilfs2_btree_node_lookup (data, node, key, &index); - else - index = 0; - --- -2.19.1 - diff --git a/backport-0054-fs-nilfs2-Properly-bail-on-errors-in-grub_nilfs2_btr.patch b/backport-0054-fs-nilfs2-Properly-bail-on-errors-in-grub_nilfs2_btr.patch deleted file mode 100644 index 36e6da0..0000000 --- a/backport-0054-fs-nilfs2-Properly-bail-on-errors-in-grub_nilfs2_btr.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 5d69fb2f9cee027c76ff179478ca3ec7069ac7ce Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Mon, 18 Jan 2021 17:06:19 +1100 -Subject: [PATCH] fs/nilfs2: Properly bail on errors in - grub_nilfs2_btree_node_lookup() - -We just introduced an error return in grub_nilfs2_btree_node_lookup(). -Make sure the callers catch it. - -At the same time, make sure that grub_nilfs2_btree_node_lookup() always -inits the index pointer passed to it. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=ca5d9ac206043b1fb4cb06259272fb1c5946bb6d - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/fs/nilfs2.c | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git a/grub-core/fs/nilfs2.c b/grub-core/fs/nilfs2.c -index 43ac1ad..aaba002 100644 ---- a/grub-core/fs/nilfs2.c -+++ b/grub-core/fs/nilfs2.c -@@ -433,7 +433,7 @@ grub_nilfs2_btree_node_lookup (struct grub_nilfs2_data *data, - grub_uint64_t key, int *indexp) - { - grub_uint64_t nkey; -- int index, low, high, s; -+ int index = 0, low, high, s; - - low = 0; - -@@ -441,10 +441,10 @@ grub_nilfs2_btree_node_lookup (struct grub_nilfs2_data *data, - if (high >= grub_nilfs2_btree_node_nchildren_max (data, node)) - { - grub_error (GRUB_ERR_BAD_FS, "too many children"); -+ *indexp = index; - return 0; - } - -- index = 0; - s = 0; - while (low <= high) - { -@@ -526,6 +526,10 @@ grub_nilfs2_btree_lookup (struct grub_nilfs2_data *data, - level = grub_nilfs2_btree_get_level (node); - - found = grub_nilfs2_btree_node_lookup (data, node, key, &index); -+ -+ if (grub_errno != GRUB_ERR_NONE) -+ goto fail; -+ - ptr = grub_nilfs2_btree_node_get_ptr (data, node, index); - if (need_translate) - ptr = grub_nilfs2_dat_translate (data, ptr); -@@ -550,7 +554,8 @@ grub_nilfs2_btree_lookup (struct grub_nilfs2_data *data, - else - index = 0; - -- if (index < grub_nilfs2_btree_node_nchildren_max (data, node)) -+ if (index < grub_nilfs2_btree_node_nchildren_max (data, node) && -+ grub_errno == GRUB_ERR_NONE) - { - ptr = grub_nilfs2_btree_node_get_ptr (data, node, index); - if (need_translate) --- -2.19.1 - diff --git a/backport-0055-io-gzio-Bail-if-gzio-tl-td-is-NULL.patch b/backport-0055-io-gzio-Bail-if-gzio-tl-td-is-NULL.patch deleted file mode 100644 index caaa018..0000000 --- a/backport-0055-io-gzio-Bail-if-gzio-tl-td-is-NULL.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 4b1839b9d9220161a20041722458b39b269fb70d Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Wed, 13 Jan 2021 20:59:09 +1100 -Subject: [PATCH] io/gzio: Bail if gzio->tl/td is NULL - -This is an ugly fix that doesn't address why gzio->tl comes to be NULL. -However, it seems to be sufficient to patch up a bunch of NULL derefs. - -It would be good to revisit this in future and see if we can have -a cleaner solution that addresses some of the causes of the unexpected -NULL pointers. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=3334a5e6c86f10e715cca3bf66ce0fc2f164b61b - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/io/gzio.c | 20 ++++++++++++++++++++ - 1 file changed, 20 insertions(+) - -diff --git a/grub-core/io/gzio.c b/grub-core/io/gzio.c -index 43d98a7..4a8eaea 100644 ---- a/grub-core/io/gzio.c -+++ b/grub-core/io/gzio.c -@@ -669,6 +669,13 @@ inflate_codes_in_window (grub_gzio_t gzio) - { - if (! gzio->code_state) - { -+ -+ if (gzio->tl == NULL) -+ { -+ grub_error (GRUB_ERR_BAD_COMPRESSED_DATA, "NULL gzio->tl"); -+ return 1; -+ } -+ - NEEDBITS ((unsigned) gzio->bl); - if ((e = (t = gzio->tl + ((unsigned) b & ml))->e) > 16) - do -@@ -707,6 +714,12 @@ inflate_codes_in_window (grub_gzio_t gzio) - n = t->v.n + ((unsigned) b & mask_bits[e]); - DUMPBITS (e); - -+ if (gzio->td == NULL) -+ { -+ grub_error (GRUB_ERR_BAD_COMPRESSED_DATA, "NULL gzio->td"); -+ return 1; -+ } -+ - /* decode distance of block to copy */ - NEEDBITS ((unsigned) gzio->bd); - if ((e = (t = gzio->td + ((unsigned) b & md))->e) > 16) -@@ -917,6 +930,13 @@ init_dynamic_block (grub_gzio_t gzio) - n = nl + nd; - m = mask_bits[gzio->bl]; - i = l = 0; -+ -+ if (gzio->tl == NULL) -+ { -+ grub_error (GRUB_ERR_BAD_COMPRESSED_DATA, "NULL gzio->tl"); -+ return; -+ } -+ - while ((unsigned) i < n) - { - NEEDBITS ((unsigned) gzio->bl); --- -2.19.1 - diff --git a/backport-0056-io-gzio-Add-init_dynamic_block-clean-up-if-unpacking.patch b/backport-0056-io-gzio-Add-init_dynamic_block-clean-up-if-unpacking.patch deleted file mode 100644 index d454d9f..0000000 --- a/backport-0056-io-gzio-Add-init_dynamic_block-clean-up-if-unpacking.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 00c2eb1b68e59d50f8bbd5659d9c4b3bd8fc899a Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Thu, 21 Jan 2021 00:05:58 +1100 -Subject: [PATCH] io/gzio: Add init_dynamic_block() clean up if unpacking codes - fails - -init_dynamic_block() didn't clean up gzio->tl and td in some error -paths. This left td pointing to part of tl. Then in grub_gzio_close(), -when tl was freed the storage for td would also be freed. The code then -attempts to free td explicitly, performing a UAF and then a double free. - -Explicitly clean up tl and td in the error paths. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=18490336d91da2b532277cba56473bfed1376fc4 - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/io/gzio.c | 12 +++++++++--- - 1 file changed, 9 insertions(+), 3 deletions(-) - -diff --git a/grub-core/io/gzio.c b/grub-core/io/gzio.c -index 4a8eaea..d38b43f 100644 ---- a/grub-core/io/gzio.c -+++ b/grub-core/io/gzio.c -@@ -953,7 +953,7 @@ init_dynamic_block (grub_gzio_t gzio) - if ((unsigned) i + j > n) - { - grub_error (GRUB_ERR_BAD_COMPRESSED_DATA, "too many codes found"); -- return; -+ goto fail; - } - while (j--) - ll[i++] = l; -@@ -966,7 +966,7 @@ init_dynamic_block (grub_gzio_t gzio) - if ((unsigned) i + j > n) - { - grub_error (GRUB_ERR_BAD_COMPRESSED_DATA, "too many codes found"); -- return; -+ goto fail; - } - while (j--) - ll[i++] = 0; -@@ -981,7 +981,7 @@ init_dynamic_block (grub_gzio_t gzio) - if ((unsigned) i + j > n) - { - grub_error (GRUB_ERR_BAD_COMPRESSED_DATA, "too many codes found"); -- return; -+ goto fail; - } - while (j--) - ll[i++] = 0; -@@ -1019,6 +1019,12 @@ init_dynamic_block (grub_gzio_t gzio) - /* indicate we're now working on a block */ - gzio->code_state = 0; - gzio->block_len++; -+ return; -+ -+fail: -+ huft_free (gzio->tl); -+ gzio->td = NULL; -+ gzio->tl = NULL; - } - - --- -2.19.1 - diff --git a/backport-0057-io-gzio-Catch-missing-values-in-huft_build-and-bail.patch b/backport-0057-io-gzio-Catch-missing-values-in-huft_build-and-bail.patch deleted file mode 100644 index 13e975a..0000000 --- a/backport-0057-io-gzio-Catch-missing-values-in-huft_build-and-bail.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 5c1220e03508fe8155d2c963eb38fe733bc48e40 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Thu, 21 Jan 2021 12:20:49 +1100 -Subject: [PATCH] io/gzio: Catch missing values in huft_build() and bail - -In huft_build(), "v" is a table of values in order of bit length. -The code later (when setting up table entries in "r") assumes that all -elements of this array corresponding to a code are initialized and less -than N_MAX. However, it doesn't enforce this. - -With sufficiently manipulated inputs (e.g. from fuzzing), there can be -elements of "v" that are not filled. Therefore a lookup into "e" or "d" -will use an uninitialized value. This can lead to an invalid/OOB read on -those values, often leading to a crash. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=4e76b08f7171a8603d74fcafb27409a91f578647 - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/io/gzio.c | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -diff --git a/grub-core/io/gzio.c b/grub-core/io/gzio.c -index d38b43f..0b95cf3 100644 ---- a/grub-core/io/gzio.c -+++ b/grub-core/io/gzio.c -@@ -507,6 +507,7 @@ huft_build (unsigned *b, /* code lengths in bits (all assumed <= BMAX) */ - } - - /* Make a table of values in order of bit lengths */ -+ grub_memset (v, N_MAX, ARRAY_SIZE (v)); - p = b; - i = 0; - do -@@ -588,11 +589,18 @@ huft_build (unsigned *b, /* code lengths in bits (all assumed <= BMAX) */ - r.v.n = (ush) (*p); /* simple code is just the value */ - p++; /* one compiler does not like *p++ */ - } -- else -+ else if (*p < N_MAX) - { - r.e = (uch) e[*p - s]; /* non-simple--look up in lists */ - r.v.n = d[*p++ - s]; - } -+ else -+ { -+ /* Detected an uninitialised value, abort. */ -+ if (h) -+ huft_free (u[0]); -+ return 2; -+ } - - /* fill code-like entries with r */ - f = 1 << (k - w); --- -2.19.1 - diff --git a/backport-0058-io-gzio-Zero-gzio-tl-td-in-init_dynamic_block-if-huf.patch b/backport-0058-io-gzio-Zero-gzio-tl-td-in-init_dynamic_block-if-huf.patch deleted file mode 100644 index b8d0e0f..0000000 --- a/backport-0058-io-gzio-Zero-gzio-tl-td-in-init_dynamic_block-if-huf.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 1d80defcd0db38752fbe94a53ea41c27c1117c80 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Thu, 21 Jan 2021 12:22:28 +1100 -Subject: [PATCH] io/gzio: Zero gzio->tl/td in init_dynamic_block() if - huft_build() fails - -If huft_build() fails, gzio->tl or gzio->td could contain pointers that -are no longer valid. Zero them out. - -This prevents a double free when grub_gzio_close() comes through and -attempts to free them again. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=b5a2b59cc5b8f5ee7ba3b951e7693e402d5b3a6f - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/io/gzio.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/grub-core/io/gzio.c b/grub-core/io/gzio.c -index 0b95cf3..df8cf66 100644 ---- a/grub-core/io/gzio.c -+++ b/grub-core/io/gzio.c -@@ -1010,6 +1010,7 @@ init_dynamic_block (grub_gzio_t gzio) - gzio->bl = lbits; - if (huft_build (ll, nl, 257, cplens, cplext, &gzio->tl, &gzio->bl) != 0) - { -+ gzio->tl = 0; - grub_error (GRUB_ERR_BAD_COMPRESSED_DATA, - "failed in building a Huffman code table"); - return; -@@ -1019,6 +1020,7 @@ init_dynamic_block (grub_gzio_t gzio) - { - huft_free (gzio->tl); - gzio->tl = 0; -+ gzio->td = 0; - grub_error (GRUB_ERR_BAD_COMPRESSED_DATA, - "failed in building a Huffman code table"); - return; --- -2.19.1 - diff --git a/backport-0059-disk-lvm-Don-t-go-beyond-the-end-of-the-data-we-read.patch b/backport-0059-disk-lvm-Don-t-go-beyond-the-end-of-the-data-we-read.patch deleted file mode 100644 index 1c9c24c..0000000 --- a/backport-0059-disk-lvm-Don-t-go-beyond-the-end-of-the-data-we-read.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 9251d03c58041e300f935379e9dd81375106a3ac Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Thu, 21 Jan 2021 17:59:14 +1100 -Subject: [PATCH] disk/lvm: Don't go beyond the end of the data we read from - disk - -We unconditionally trusted offset_xl from the LVM label header, even if -it told us that the PV header/disk locations were way off past the end -of the data we read from disk. - -Require that the offset be sane, fixing an OOB read and crash. - -Fixes: CID 314367, CID 314371 - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=a8cc95de74ccc3ad090e8062ac335c844f13c9f4 - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/disk/lvm.c | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c -index 9f5630c..25e6c70 100644 ---- a/grub-core/disk/lvm.c -+++ b/grub-core/disk/lvm.c -@@ -142,6 +142,20 @@ grub_lvm_detect (grub_disk_t disk, - goto fail; - } - -+ /* -+ * We read a grub_lvm_pv_header and then 2 grub_lvm_disk_locns that -+ * immediately follow the PV header. Make sure we have space for both. -+ */ -+ if (grub_le_to_cpu32 (lh->offset_xl) >= -+ GRUB_LVM_LABEL_SIZE - sizeof (struct grub_lvm_pv_header) - -+ 2 * sizeof (struct grub_lvm_disk_locn)) -+ { -+#ifdef GRUB_UTIL -+ grub_util_info ("LVM PV header/disk locations are beyond the end of the block"); -+#endif -+ goto fail; -+ } -+ - pvh = (struct grub_lvm_pv_header *) (buf + grub_le_to_cpu32(lh->offset_xl)); - - for (i = 0, j = 0; i < GRUB_LVM_ID_LEN; i++) --- -2.19.1 - diff --git a/backport-0060-disk-lvm-Don-t-blast-past-the-end-of-the-circular-me.patch b/backport-0060-disk-lvm-Don-t-blast-past-the-end-of-the-circular-me.patch deleted file mode 100644 index 6d20ae4..0000000 --- a/backport-0060-disk-lvm-Don-t-blast-past-the-end-of-the-circular-me.patch +++ /dev/null @@ -1,44 +0,0 @@ -From f702b93b2a023c941a49d6d3e18915fdd6c14c89 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Thu, 21 Jan 2021 18:19:51 +1100 -Subject: [PATCH] disk/lvm: Don't blast past the end of the circular metadata - buffer - -This catches at least some OOB reads, and it's possible I suppose that -if 2 * mda_size is less than GRUB_LVM_MDA_HEADER_SIZE it might catch some -OOB writes too (although that hasn't showed up as a crash in fuzzing yet). - -It's a bit ugly and I'd appreciate better suggestions. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=27a79bf38e6d050e497eb96a3fdddce43af25577 - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/disk/lvm.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c -index 25e6c70..f25521a 100644 ---- a/grub-core/disk/lvm.c -+++ b/grub-core/disk/lvm.c -@@ -215,6 +215,16 @@ grub_lvm_detect (grub_disk_t disk, - if (grub_le_to_cpu64 (rlocn->offset) + grub_le_to_cpu64 (rlocn->size) > - grub_le_to_cpu64 (mdah->size)) - { -+ if (2 * mda_size < GRUB_LVM_MDA_HEADER_SIZE || -+ (grub_le_to_cpu64 (rlocn->offset) + grub_le_to_cpu64 (rlocn->size) - -+ grub_le_to_cpu64 (mdah->size) > mda_size - GRUB_LVM_MDA_HEADER_SIZE)) -+ { -+#ifdef GRUB_UTIL -+ grub_util_info ("cannot copy metadata wrap in circular buffer"); -+#endif -+ goto fail2; -+ } -+ - /* Metadata is circular. Copy the wrap in place. */ - grub_memcpy (metadatabuf + mda_size, - metadatabuf + GRUB_LVM_MDA_HEADER_SIZE, --- -2.19.1 - diff --git a/backport-0061-disk-lvm-Bail-on-missing-PV-list.patch b/backport-0061-disk-lvm-Bail-on-missing-PV-list.patch deleted file mode 100644 index 3c3471a..0000000 --- a/backport-0061-disk-lvm-Bail-on-missing-PV-list.patch +++ /dev/null @@ -1,36 +0,0 @@ -From c8ca81d1cd6f486b028c34533c89b36f250870d4 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Thu, 21 Jan 2021 18:54:29 +1100 -Subject: [PATCH] disk/lvm: Bail on missing PV list - -There's an if block for the presence of "physical_volumes {", but if -that block is absent, then p remains NULL and a NULL-deref will result -when looking for logical volumes. - -It doesn't seem like LVM makes sense without physical volumes, so error -out rather than crashing. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=2958695c4cdc785de6ed708709af071a2d20afef - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/disk/lvm.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c -index f25521a..944c398 100644 ---- a/grub-core/disk/lvm.c -+++ b/grub-core/disk/lvm.c -@@ -371,6 +371,8 @@ grub_lvm_detect (grub_disk_t disk, - goto fail4; - } - } -+ else -+ goto fail4; - - p = grub_strstr (p, "logical_volumes {"); - if (p) --- -2.19.1 - diff --git a/backport-0062-disk-lvm-Do-not-crash-if-an-expected-string-is-not-f.patch b/backport-0062-disk-lvm-Do-not-crash-if-an-expected-string-is-not-f.patch deleted file mode 100644 index ada14d7..0000000 --- a/backport-0062-disk-lvm-Do-not-crash-if-an-expected-string-is-not-f.patch +++ /dev/null @@ -1,84 +0,0 @@ -From e9b6e755fd0f4fcfac36c149d2c74cc2d483d65a Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Thu, 21 Jan 2021 18:35:22 +1100 -Subject: [PATCH] disk/lvm: Do not crash if an expected string is not found - -Clean up a bunch of cases where we could have strstr() fail and lead to -us dereferencing NULL. - -We'll still leak memory in some cases (loops don't clean up allocations -from earlier iterations if a later iteration fails) but at least we're -not crashing. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=db29073fc7aec71a40dabfc722a96ea9f3280907 - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/disk/lvm.c | 22 +++++++++++++++++----- - 1 file changed, 17 insertions(+), 5 deletions(-) - -diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c -index 944c398..85ee89c 100644 ---- a/grub-core/disk/lvm.c -+++ b/grub-core/disk/lvm.c -@@ -540,7 +540,16 @@ grub_lvm_detect (grub_disk_t disk, - } - - if (seg->node_count != 1) -- seg->stripe_size = grub_lvm_getvalue (&p, "stripe_size = "); -+ { -+ seg->stripe_size = grub_lvm_getvalue (&p, "stripe_size = "); -+ if (p == NULL) -+ { -+#ifdef GRUB_UTIL -+ grub_util_info ("unknown stripe_size"); -+#endif -+ goto lvs_segment_fail; -+ } -+ } - - seg->nodes = grub_calloc (seg->node_count, - sizeof (*stripe)); -@@ -560,7 +569,7 @@ grub_lvm_detect (grub_disk_t disk, - { - p = grub_strchr (p, '"'); - if (p == NULL) -- continue; -+ goto lvs_segment_fail2; - q = ++p; - while (*q != '"') - q++; -@@ -579,7 +588,10 @@ grub_lvm_detect (grub_disk_t disk, - stripe->start = grub_lvm_getvalue (&p, ",") - * vg->extent_size; - if (p == NULL) -- continue; -+ { -+ grub_free (stripe->name); -+ goto lvs_segment_fail2; -+ } - - stripe++; - } -@@ -616,7 +628,7 @@ grub_lvm_detect (grub_disk_t disk, - - p = grub_strchr (p, '"'); - if (p == NULL) -- continue; -+ goto lvs_segment_fail2; - q = ++p; - while (*q != '"') - q++; -@@ -704,7 +716,7 @@ grub_lvm_detect (grub_disk_t disk, - p = p ? grub_strchr (p + 1, '"') : 0; - p = p ? grub_strchr (p + 1, '"') : 0; - if (p == NULL) -- continue; -+ goto lvs_segment_fail2; - q = ++p; - while (*q != '"') - q++; --- -2.19.1 - diff --git a/backport-0063-lvm-Add-LVM-cache-logical-volume-handling.patch b/backport-0063-lvm-Add-LVM-cache-logical-volume-handling.patch deleted file mode 100644 index 7613767..0000000 --- a/backport-0063-lvm-Add-LVM-cache-logical-volume-handling.patch +++ /dev/null @@ -1,286 +0,0 @@ -From cd73fa65a8fc466950d49ee854f1b986730d94e7 Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 19 Mar 2020 13:56:13 +0800 -Subject: [PATCH] lvm: Add LVM cache logical volume handling - -The LVM cache logical volume is the logical volume consisting of the original -and the cache pool logical volume. The original is usually on a larger and -slower storage device while the cache pool is on a smaller and faster one. The -performance of the original volume can be improved by storing the frequently -used data on the cache pool to utilize the greater performance of faster -device. - -The default cache mode "writethrough" ensures that any data written will be -stored both in the cache and on the origin LV, therefore grub can be straight -to read the original lv as no data loss is guarenteed. - -The second cache mode is "writeback", which delays writing from the cache pool -back to the origin LV to have increased performance. The drawback is potential -data loss if losing the associated cache device. - -During the boot time grub reads the LVM offline i.e. LVM volumes are not -activated and mounted, hence it should be fine to read directly from original -lv since all cached data should have been flushed back in the process of taking -it offline. - -It is also not much helpful to the situation by adding fsync calls to the -install code. The fsync did not force to write back dirty cache to the original -device and rather it would update associated cache metadata to complete the -write transaction with the cache device. IOW the writes to cached blocks still -go only to the cache device. - -To write back dirty cache, as LVM cache did not support dirty cache flush per -block range, there'no way to do it for file. On the other hand the "cleaner" -policy is implemented and can be used to write back "all" dirty blocks in a -cache, which effectively drain all dirty cache gradually to attain and last in -the "clean" state, which can be useful for shrinking or decommissioning a -cache. The result and effect is not what we are looking for here. - -In conclusion, as it seems no way to enforce file writes to the original -device, grub may suffer from power failure as it cannot assemble the cache -device and read the dirty data from it. However since the case is only -applicable to writeback mode which is sensitive to data lost in nature, I'd -still like to propose my (relatively simple) patch and treat reading dirty -cache as improvement. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/grub-core/disk/lvm.c?id=0454b0445393aafc5600e92ef0c39494e333b135 - -Signed-off-by: Michael Chang -Reviewed-by: Daniel Kiper ---- - grub-core/disk/lvm.c | 191 ++++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 190 insertions(+), 1 deletion(-) - -diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c -index 85ee89c..e5d6c3f 100644 ---- a/grub-core/disk/lvm.c -+++ b/grub-core/disk/lvm.c -@@ -34,7 +34,14 @@ - - GRUB_MOD_LICENSE ("GPLv3+"); - -- -+struct cache_lv -+{ -+ struct grub_diskfilter_lv *lv; -+ char *cache_pool; -+ char *origin; -+ struct cache_lv *next; -+}; -+ - /* Go the string STR and return the number after STR. *P will point - at the number. In case STR is not found, *P will be NULL and the - return value will be 0. */ -@@ -96,6 +103,34 @@ grub_lvm_check_flag (const char *p, const char *str, const char *flag) - } - } - -+static void -+grub_lvm_free_cache_lvs (struct cache_lv *cache_lvs) -+{ -+ struct cache_lv *cache; -+ -+ while ((cache = cache_lvs)) -+ { -+ cache_lvs = cache_lvs->next; -+ -+ if (cache->lv) -+ { -+ unsigned int i; -+ -+ for (i = 0; i < cache->lv->segment_count; ++i) -+ if (cache->lv->segments) -+ grub_free (cache->lv->segments[i].nodes); -+ grub_free (cache->lv->segments); -+ grub_free (cache->lv->fullname); -+ grub_free (cache->lv->idname); -+ grub_free (cache->lv->name); -+ } -+ grub_free (cache->lv); -+ grub_free (cache->origin); -+ grub_free (cache->cache_pool); -+ grub_free (cache); -+ } -+} -+ - static struct grub_diskfilter_vg * - grub_lvm_detect (grub_disk_t disk, - struct grub_diskfilter_pv_id *id, -@@ -281,6 +316,8 @@ grub_lvm_detect (grub_disk_t disk, - - if (! vg) - { -+ struct cache_lv *cache_lvs = NULL; -+ - /* First time we see this volume group. We've to create the - whole volume group structure. */ - vg = grub_malloc (sizeof (*vg)); -@@ -742,6 +779,106 @@ grub_lvm_detect (grub_disk_t disk, - seg->nodes[seg->node_count - 1].name = tmp; - } - } -+ else if (grub_memcmp (p, "cache\"", -+ sizeof ("cache\"") - 1) == 0) -+ { -+ struct cache_lv *cache = NULL; -+ -+ char *p2, *p3; -+ grub_size_t sz; -+ -+ cache = grub_zalloc (sizeof (*cache)); -+ if (!cache) -+ goto cache_lv_fail; -+ cache->lv = grub_zalloc (sizeof (*cache->lv)); -+ if (!cache->lv) -+ goto cache_lv_fail; -+ grub_memcpy (cache->lv, lv, sizeof (*cache->lv)); -+ -+ if (lv->fullname) -+ { -+ cache->lv->fullname = grub_strdup (lv->fullname); -+ if (!cache->lv->fullname) -+ goto cache_lv_fail; -+ } -+ if (lv->idname) -+ { -+ cache->lv->idname = grub_strdup (lv->idname); -+ if (!cache->lv->idname) -+ goto cache_lv_fail; -+ } -+ if (lv->name) -+ { -+ cache->lv->name = grub_strdup (lv->name); -+ if (!cache->lv->name) -+ goto cache_lv_fail; -+ } -+ -+ skip_lv = 1; -+ -+ p2 = grub_strstr (p, "cache_pool = \""); -+ if (!p2) -+ goto cache_lv_fail; -+ -+ p2 = grub_strchr (p2, '"'); -+ if (!p2) -+ goto cache_lv_fail; -+ -+ p3 = ++p2; -+ p3 = grub_strchr (p3, '"'); -+ if (!p3) -+ goto cache_lv_fail; -+ -+ sz = p3 - p2; -+ -+ cache->cache_pool = grub_malloc (sz + 1); -+ if (!cache->cache_pool) -+ goto cache_lv_fail; -+ grub_memcpy (cache->cache_pool, p2, sz); -+ cache->cache_pool[sz] = '\0'; -+ -+ p2 = grub_strstr (p, "origin = \""); -+ if (!p2) -+ goto cache_lv_fail; -+ -+ p2 = grub_strchr (p2, '"'); -+ if (!p2) -+ goto cache_lv_fail; -+ -+ p3 = ++p2; -+ p3 = grub_strchr (p3, '"'); -+ if (!p3) -+ goto cache_lv_fail; -+ -+ sz = p3 - p2; -+ -+ cache->origin = grub_malloc (sz + 1); -+ if (!cache->origin) -+ goto cache_lv_fail; -+ grub_memcpy (cache->origin, p2, sz); -+ cache->origin[sz] = '\0'; -+ -+ cache->next = cache_lvs; -+ cache_lvs = cache; -+ break; -+ -+ cache_lv_fail: -+ if (cache) -+ { -+ grub_free (cache->origin); -+ grub_free (cache->cache_pool); -+ if (cache->lv) -+ { -+ grub_free (cache->lv->fullname); -+ grub_free (cache->lv->idname); -+ grub_free (cache->lv->name); -+ } -+ grub_free (cache->lv); -+ grub_free (cache); -+ } -+ grub_lvm_free_cache_lvs (cache_lvs); -+ goto fail4; -+ } - else - { - #ifdef GRUB_UTIL -@@ -818,6 +955,58 @@ grub_lvm_detect (grub_disk_t disk, - } - - } -+ -+ { -+ struct cache_lv *cache; -+ -+ for (cache = cache_lvs; cache; cache = cache->next) -+ { -+ struct grub_diskfilter_lv *lv; -+ -+ for (lv = vg->lvs; lv; lv = lv->next) -+ if (grub_strcmp (lv->name, cache->origin) == 0) -+ break; -+ if (lv) -+ { -+ cache->lv->segments = grub_malloc (lv->segment_count * sizeof (*lv->segments)); -+ if (!cache->lv->segments) -+ { -+ grub_lvm_free_cache_lvs (cache_lvs); -+ goto fail4; -+ } -+ grub_memcpy (cache->lv->segments, lv->segments, lv->segment_count * sizeof (*lv->segments)); -+ -+ for (i = 0; i < lv->segment_count; ++i) -+ { -+ struct grub_diskfilter_node *nodes = lv->segments[i].nodes; -+ grub_size_t node_count = lv->segments[i].node_count; -+ -+ cache->lv->segments[i].nodes = grub_malloc (node_count * sizeof (*nodes)); -+ if (!cache->lv->segments[i].nodes) -+ { -+ for (j = 0; j < i; ++j) -+ grub_free (cache->lv->segments[j].nodes); -+ grub_free (cache->lv->segments); -+ cache->lv->segments = NULL; -+ grub_lvm_free_cache_lvs (cache_lvs); -+ goto fail4; -+ } -+ grub_memcpy (cache->lv->segments[i].nodes, nodes, node_count * sizeof (*nodes)); -+ } -+ -+ if (cache->lv->segments) -+ { -+ cache->lv->segment_count = lv->segment_count; -+ cache->lv->vg = vg; -+ cache->lv->next = vg->lvs; -+ vg->lvs = cache->lv; -+ cache->lv = NULL; -+ } -+ } -+ } -+ } -+ -+ grub_lvm_free_cache_lvs (cache_lvs); - if (grub_diskfilter_vg_register (vg)) - goto fail4; - } --- -2.19.1 - diff --git a/backport-0064-disk-lvm-Do-not-overread-metadata.patch b/backport-0064-disk-lvm-Do-not-overread-metadata.patch deleted file mode 100644 index 5a77cf7..0000000 --- a/backport-0064-disk-lvm-Do-not-overread-metadata.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 6a079d978c3c4c77da338b81880799146e47e6bf Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Thu, 21 Jan 2021 18:35:22 +1100 -Subject: [PATCH] disk/lvm: Do not overread metadata - -We could reach the end of valid metadata and not realize, leading to -some buffer overreads. Check if we have reached the end and bail. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=1155d7dffd3337942cb7583706b429d567d4db86 - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/disk/lvm.c | 35 +++++++++++++++++++++++++++++------ - 1 file changed, 29 insertions(+), 6 deletions(-) - -diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c -index e5d6c3f..a44861f 100644 ---- a/grub-core/disk/lvm.c -+++ b/grub-core/disk/lvm.c -@@ -351,17 +351,23 @@ grub_lvm_detect (grub_disk_t disk, - while (1) - { - grub_ssize_t s; -- while (grub_isspace (*p)) -+ while (grub_isspace (*p) && p < mda_end) - p++; - -+ if (p == mda_end) -+ goto fail4; -+ - if (*p == '}') - break; - - pv = grub_zalloc (sizeof (*pv)); - q = p; -- while (*q != ' ') -+ while (*q != ' ' && q < mda_end) - q++; - -+ if (q == mda_end) -+ goto pvs_fail_noname; -+ - s = q - p; - pv->name = grub_malloc (s + 1); - grub_memcpy (pv->name, p, s); -@@ -404,6 +410,7 @@ grub_lvm_detect (grub_disk_t disk, - continue; - pvs_fail: - grub_free (pv->name); -+ pvs_fail_noname: - grub_free (pv); - goto fail4; - } -@@ -425,18 +432,24 @@ grub_lvm_detect (grub_disk_t disk, - struct grub_diskfilter_segment *seg; - int is_pvmove; - -- while (grub_isspace (*p)) -+ while (grub_isspace (*p) && p < mda_end) - p++; - -+ if (p == mda_end) -+ goto fail4; -+ - if (*p == '}') - break; - - lv = grub_zalloc (sizeof (*lv)); - - q = p; -- while (*q != ' ') -+ while (*q != ' ' && q < mda_end) - q++; - -+ if (q == mda_end) -+ goto lvs_fail; -+ - s = q - p; - lv->name = grub_strndup (p, s); - if (!lv->name) -@@ -608,9 +621,12 @@ grub_lvm_detect (grub_disk_t disk, - if (p == NULL) - goto lvs_segment_fail2; - q = ++p; -- while (*q != '"') -+ while (q < mda_end && *q != '"') - q++; - -+ if (q == mda_end) -+ goto lvs_segment_fail2; -+ - s = q - p; - - stripe->name = grub_malloc (s + 1); -@@ -667,9 +683,12 @@ grub_lvm_detect (grub_disk_t disk, - if (p == NULL) - goto lvs_segment_fail2; - q = ++p; -- while (*q != '"') -+ while (q < mda_end && *q != '"') - q++; - -+ if (q == mda_end) -+ goto lvs_segment_fail2; -+ - s = q - p; - - lvname = grub_malloc (s + 1); -@@ -825,6 +844,8 @@ grub_lvm_detect (grub_disk_t disk, - goto cache_lv_fail; - - p3 = ++p2; -+ if (p3 == mda_end) -+ goto cache_lv_fail; - p3 = grub_strchr (p3, '"'); - if (!p3) - goto cache_lv_fail; -@@ -846,6 +867,8 @@ grub_lvm_detect (grub_disk_t disk, - goto cache_lv_fail; - - p3 = ++p2; -+ if (p3 == mda_end) -+ goto cache_lv_fail; - p3 = grub_strchr (p3, '"'); - if (!p3) - goto cache_lv_fail; --- -2.19.1 - diff --git a/backport-0065-disk-lvm-Sanitize-rlocn-offset-to-prevent-wild-read.patch b/backport-0065-disk-lvm-Sanitize-rlocn-offset-to-prevent-wild-read.patch deleted file mode 100644 index b7bcdaf..0000000 --- a/backport-0065-disk-lvm-Sanitize-rlocn-offset-to-prevent-wild-read.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 6074485c541ef5b96acd051854e5ddad77acc858 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Fri, 22 Jan 2021 14:43:58 +1100 -Subject: [PATCH] disk/lvm: Sanitize rlocn->offset to prevent wild read - -rlocn->offset is read directly from disk and added to the metadatabuf -pointer to create a pointer to a block of metadata. It's a 64-bit -quantity so as long as you don't overflow you can set subsequent -pointers to point anywhere in memory. - -Require that rlocn->offset fits within the metadata buffer size. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=701293684742d00133b39bf957d3642c81dc83f4 - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/disk/lvm.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c -index a44861f..cf8f597 100644 ---- a/grub-core/disk/lvm.c -+++ b/grub-core/disk/lvm.c -@@ -247,6 +247,14 @@ grub_lvm_detect (grub_disk_t disk, - } - - rlocn = mdah->raw_locns; -+ if (grub_le_to_cpu64 (rlocn->offset) >= grub_le_to_cpu64 (mda_size)) -+ { -+#ifdef GRUB_UTIL -+ grub_util_info ("metadata offset is beyond end of metadata area"); -+#endif -+ goto fail2; -+ } -+ - if (grub_le_to_cpu64 (rlocn->offset) + grub_le_to_cpu64 (rlocn->size) > - grub_le_to_cpu64 (mdah->size)) - { --- -2.19.1 - diff --git a/backport-0066-disk-lvm-Do-not-allow-a-LV-to-be-it-s-own-segment-s-.patch b/backport-0066-disk-lvm-Do-not-allow-a-LV-to-be-it-s-own-segment-s-.patch deleted file mode 100644 index 595ad11..0000000 --- a/backport-0066-disk-lvm-Do-not-allow-a-LV-to-be-it-s-own-segment-s-.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 5ee2584caa3acd9289d2eedee38a9a73101aa1fe Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Fri, 22 Jan 2021 14:42:21 +1100 -Subject: [PATCH] disk/lvm: Do not allow a LV to be it's own segment's node's - LV - -This prevents infinite recursion in the diskfilter verification code. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=e18a00073890021362b4a48097672f1d4b340d3c - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/disk/lvm.c | 10 +++++++--- - 1 file changed, 7 insertions(+), 3 deletions(-) - -diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c -index cf8f597..7fb1b4e 100644 ---- a/grub-core/disk/lvm.c -+++ b/grub-core/disk/lvm.c -@@ -980,9 +980,13 @@ grub_lvm_detect (grub_disk_t disk, - } - if (lv1->segments[i].nodes[j].pv == NULL) - for (lv2 = vg->lvs; lv2; lv2 = lv2->next) -- if (grub_strcmp (lv2->name, -- lv1->segments[i].nodes[j].name) == 0) -- lv1->segments[i].nodes[j].lv = lv2; -+ { -+ if (lv1 == lv2) -+ continue; -+ if (grub_strcmp (lv2->name, -+ lv1->segments[i].nodes[j].name) == 0) -+ lv1->segments[i].nodes[j].lv = lv2; -+ } - } - - } --- -2.19.1 - diff --git a/backport-0067-fs-btrfs-Validate-the-number-of-stripes-parities-in-.patch b/backport-0067-fs-btrfs-Validate-the-number-of-stripes-parities-in-.patch deleted file mode 100644 index bf9c5fa..0000000 --- a/backport-0067-fs-btrfs-Validate-the-number-of-stripes-parities-in-.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 356c74f00ed24b08810dc236f37caaca228e5853 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Mon, 18 Jan 2021 17:17:16 +1100 -Subject: [PATCH] fs/btrfs: Validate the number of stripes/parities in RAID5/6 - -This prevents a divide by zero if nstripes == nparities, and -also prevents propagation of invalid values if nstripes ends up -less than nparities. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=b88a82e78cdd0ab8e0339c1c3f9564c4d8c0c969 - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/fs/btrfs.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 0d8c666..a6384a8 100644 ---- a/grub-core/fs/btrfs.c -+++ b/grub-core/fs/btrfs.c -@@ -1105,6 +1105,9 @@ grub_btrfs_read_logical (struct grub_btrfs_data *data, grub_disk_addr_t addr, - * stripen is computed without the parities - * (0 for A0, A1, A2, 1 for B0, B1, B2, etc.). - */ -+ if (nparities >= nstripes) -+ return grub_error (GRUB_ERR_BAD_FS, -+ "invalid RAID5/6: nparities >= nstripes"); - high = grub_divmod64 (stripe_nr, nstripes - nparities, &stripen); - - /* --- -2.19.1 - diff --git a/backport-0068-fs-btrfs-Squash-some-uninitialized-reads.patch b/backport-0068-fs-btrfs-Squash-some-uninitialized-reads.patch deleted file mode 100644 index 20912d5..0000000 --- a/backport-0068-fs-btrfs-Squash-some-uninitialized-reads.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 498830861020ac6b713d002bb2e72f713860ea04 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Mon, 18 Jan 2021 17:27:18 +1100 -Subject: [PATCH] fs/btrfs: Squash some uninitialized reads - -We need to check errors before calling into a function that uses the result. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=b911884dd707ba1e6f641eb17857df3155013a45 - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - grub-core/fs/btrfs.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index a6384a8..cf3647a 100644 ---- a/grub-core/fs/btrfs.c -+++ b/grub-core/fs/btrfs.c -@@ -410,9 +410,9 @@ next (struct grub_btrfs_data *data, - - err = grub_btrfs_read_logical (data, grub_le_to_cpu64 (node.addr), - &head, sizeof (head), 0); -- check_btrfs_header (data, &head, grub_le_to_cpu64 (node.addr)); - if (err) - return -err; -+ check_btrfs_header (data, &head, grub_le_to_cpu64 (node.addr)); - - save_ref (desc, grub_le_to_cpu64 (node.addr), 0, - grub_le_to_cpu32 (head.nitems), !head.level); -@@ -472,9 +472,9 @@ lower_bound (struct grub_btrfs_data *data, - /* FIXME: preread few nodes into buffer. */ - err = grub_btrfs_read_logical (data, addr, &head, sizeof (head), - recursion_depth + 1); -- check_btrfs_header (data, &head, addr); - if (err) - return err; -+ check_btrfs_header (data, &head, addr); - addr += sizeof (head); - if (head.level) - { --- -2.19.1 - diff --git a/backport-0069-kern-efi-Add-initial-stack-protector-implementation.patch b/backport-0069-kern-efi-Add-initial-stack-protector-implementation.patch deleted file mode 100644 index c59b2c0..0000000 --- a/backport-0069-kern-efi-Add-initial-stack-protector-implementation.patch +++ /dev/null @@ -1,305 +0,0 @@ -From f3821a98c9324f0f45bca9a1aed3921084a794ad Mon Sep 17 00:00:00 2001 -From: Chris Coulson -Date: Tue, 1 Dec 2020 23:03:39 +0000 -Subject: [PATCH] kern/efi: Add initial stack protector implementation - -It works only on UEFI platforms but can be quite easily extended to -others architectures and platforms if needed. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=133d73079c5771bbf3d8311281b6772846357ec1 - -Signed-off-by: Chris Coulson -Signed-off-by: Daniel Kiper -Reviewed-by: Marco A Benatto -Reviewed-by: Javier Martinez Canillas ---- - acinclude.m4 | 40 +++++++++++++++++++++++-- - configure.ac | 44 +++++++++++++++++++++++---- - grub-core/Makefile.am | 1 + - grub-core/kern/efi/init.c | 54 ++++++++++++++++++++++++++++++++++ - include/grub/efi/api.h | 19 ++++++++++++ - include/grub/stack_protector.h | 30 +++++++++++++++++++ - 6 files changed, 180 insertions(+), 8 deletions(-) - create mode 100644 include/grub/stack_protector.h - -diff --git a/acinclude.m4 b/acinclude.m4 -index 242e829..8eeed6f 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -323,10 +323,10 @@ else - fi - ]) - -- --dnl Check if the C compiler supports `-fstack-protector'. -+ -+dnl Check if the C compiler supports the stack protector - AC_DEFUN([grub_CHECK_STACK_PROTECTOR],[ --[# Smashing stack protector. -+[# Stack smashing protector. - ssp_possible=yes] - AC_MSG_CHECKING([whether `$CC' accepts `-fstack-protector']) - # Is this a reliable test case? -@@ -343,6 +343,40 @@ else - ssp_possible=no] - AC_MSG_RESULT([no]) - [fi] -+[# Strong stack smashing protector. -+ssp_strong_possible=yes] -+AC_MSG_CHECKING([whether `$CC' accepts `-fstack-protector-strong']) -+# Is this a reliable test case? -+AC_LANG_CONFTEST([AC_LANG_SOURCE([[ -+void foo (void) { volatile char a[8]; a[3]; } -+]])]) -+[# `$CC -c -o ...' might not be portable. But, oh, well... Is calling -+# `ac_compile' like this correct, after all? -+if eval "$ac_compile -S -fstack-protector-strong -o conftest.s" 2> /dev/null; then] -+ AC_MSG_RESULT([yes]) -+ [# Should we clear up other files as well, having called `AC_LANG_CONFTEST'? -+ rm -f conftest.s -+else -+ ssp_strong_possible=no] -+ AC_MSG_RESULT([no]) -+[fi] -+[# Global stack smashing protector. -+ssp_global_possible=yes] -+AC_MSG_CHECKING([whether `$CC' accepts `-mstack-protector-guard=global']) -+# Is this a reliable test case? -+AC_LANG_CONFTEST([AC_LANG_SOURCE([[ -+void foo (void) { volatile char a[8]; a[3]; } -+]])]) -+[# `$CC -c -o ...' might not be portable. But, oh, well... Is calling -+# `ac_compile' like this correct, after all? -+if eval "$ac_compile -S -fstack-protector -mstack-protector-guard=global -o conftest.s" 2> /dev/null; then] -+ AC_MSG_RESULT([yes]) -+ [# Should we clear up other files as well, having called `AC_LANG_CONFTEST'? -+ rm -f conftest.s -+else -+ ssp_global_possible=no] -+ AC_MSG_RESULT([no]) -+[fi] - ]) - - dnl Check if the C compiler supports `-mstack-arg-probe' (Cygwin). -diff --git a/configure.ac b/configure.ac -index 5d33161..da735a6 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1371,12 +1371,41 @@ fi] - - CFLAGS="$TARGET_CFLAGS" - --# Smashing stack protector. -+# Stack smashing protector. - grub_CHECK_STACK_PROTECTOR --# Need that, because some distributions ship compilers that include --# `-fstack-protector' in the default specs. --if test "x$ssp_possible" = xyes; then -- TARGET_CFLAGS="$TARGET_CFLAGS -fno-stack-protector" -+AC_ARG_ENABLE([stack-protector], -+ AS_HELP_STRING([--enable-stack-protector], -+ [enable the stack protector]), -+ [], -+ [enable_stack_protector=no]) -+if test "x$enable_stack_protector" = xno; then -+ if test "x$ssp_possible" = xyes; then -+ # Need that, because some distributions ship compilers that include -+ # `-fstack-protector' in the default specs. -+ TARGET_CFLAGS="$TARGET_CFLAGS -fno-stack-protector" -+ fi -+elif test "x$platform" != xefi; then -+ AC_MSG_ERROR([--enable-stack-protector is only supported on EFI platforms]) -+elif test "x$ssp_global_possible" != xyes; then -+ AC_MSG_ERROR([--enable-stack-protector is not supported (compiler doesn't support -mstack-protector-guard=global)]) -+else -+ TARGET_CFLAGS="$TARGET_CFLAGS -mstack-protector-guard=global" -+ if test "x$enable_stack_protector" = xyes; then -+ if test "x$ssp_possible" != xyes; then -+ AC_MSG_ERROR([--enable-stack-protector is not supported (compiler doesn't support -fstack-protector)]) -+ fi -+ TARGET_CFLAGS="$TARGET_CFLAGS -fstack-protector" -+ elif test "x$enable_stack_protector" = xstrong; then -+ if test "x$ssp_strong_possible" != xyes; then -+ AC_MSG_ERROR([--enable-stack-protector=strong is not supported (compiler doesn't support -fstack-protector-strong)]) -+ fi -+ TARGET_CFLAGS="$TARGET_CFLAGS -fstack-protector-strong" -+ else -+ # Note, -fstack-protector-all requires that the protector is disabled for -+ # functions that appear in the call stack when the canary is initialized. -+ AC_MSG_ERROR([invalid value $enable_stack_protector for --enable-stack-protector]) -+ fi -+ TARGET_CPPFLAGS="$TARGET_CPPFLAGS -DGRUB_STACK_PROTECTOR=1" - fi - - CFLAGS="$TARGET_CFLAGS" -@@ -2279,5 +2308,10 @@ echo "Without liblzma (no support for XZ-compressed mips images) ($liblzma_excus - else - echo "With liblzma from $LIBLZMA (support for XZ-compressed mips images)" - fi -+if test "x$enable_stack_protector" != xno; then -+echo "With stack smashing protector: Yes" -+else -+echo "With stack smashing protector: No" -+fi - echo "*******************************************************" - ] -diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index d75feef..dd49939 100644 ---- a/grub-core/Makefile.am -+++ b/grub-core/Makefile.am -@@ -92,6 +92,7 @@ endif - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/mm.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/parser.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/partition.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/stack_protector.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/term.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/time.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/verify.h -diff --git a/grub-core/kern/efi/init.c b/grub-core/kern/efi/init.c -index 634e3ac..8054fdd 100644 ---- a/grub-core/kern/efi/init.c -+++ b/grub-core/kern/efi/init.c -@@ -28,6 +28,58 @@ - #include - #include - #include -+#include -+ -+#ifdef GRUB_STACK_PROTECTOR -+ -+static grub_efi_guid_t rng_protocol_guid = GRUB_EFI_RNG_PROTOCOL_GUID; -+ -+/* -+ * Don't put this on grub_efi_init()'s local stack to avoid it -+ * getting a stack check. -+ */ -+static grub_efi_uint8_t stack_chk_guard_buf[32]; -+ -+grub_addr_t __stack_chk_guard; -+ -+void __attribute__ ((noreturn)) -+__stack_chk_fail (void) -+{ -+ /* -+ * Assume it's not safe to call into EFI Boot Services. Sorry, that -+ * means no console message here. -+ */ -+ do -+ { -+ /* Do not optimize out the loop. */ -+ asm volatile (""); -+ } -+ while (1); -+} -+ -+static void -+stack_protector_init (void) -+{ -+ grub_efi_rng_protocol_t *rng; -+ -+ /* Set up the stack canary. Make errors here non-fatal for now. */ -+ rng = grub_efi_locate_protocol (&rng_protocol_guid, NULL); -+ if (rng != NULL) -+ { -+ grub_efi_status_t status; -+ -+ status = efi_call_4 (rng->get_rng, rng, NULL, sizeof (stack_chk_guard_buf), -+ stack_chk_guard_buf); -+ if (status == GRUB_EFI_SUCCESS) -+ grub_memcpy (&__stack_chk_guard, stack_chk_guard_buf, sizeof (__stack_chk_guard)); -+ } -+} -+#else -+static void -+stack_protector_init (void) -+{ -+} -+#endif - - grub_addr_t grub_modbase; - -@@ -87,6 +139,8 @@ grub_efi_init (void) - messages. */ - grub_console_init (); - -+ stack_protector_init (); -+ - /* Initialize the memory management system. */ - grub_efi_mm_init (); - -diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index fc8a564..0e7e926 100644 ---- a/include/grub/efi/api.h -+++ b/include/grub/efi/api.h -@@ -344,6 +344,11 @@ - { 0x89, 0x29, 0x48, 0xbc, 0xd9, 0x0a, 0xd3, 0x1a } \ - } - -+#define GRUB_EFI_RNG_PROTOCOL_GUID \ -+ { 0x3152bca5, 0xeade, 0x433d, \ -+ { 0x86, 0x2e, 0xc0, 0x1c, 0xdc, 0x29, 0x1f, 0x44 } \ -+ } -+ - struct grub_efi_sal_system_table - { - grub_uint32_t signature; -@@ -2062,6 +2067,20 @@ struct grub_efi_ip6_config_manual_address { - }; - typedef struct grub_efi_ip6_config_manual_address grub_efi_ip6_config_manual_address_t; - -+typedef grub_efi_guid_t grub_efi_rng_algorithm_t; -+ -+struct grub_efi_rng_protocol -+{ -+ grub_efi_status_t (*get_info) (struct grub_efi_rng_protocol *this, -+ grub_efi_uintn_t *rng_algorithm_list_size, -+ grub_efi_rng_algorithm_t *rng_algorithm_list); -+ grub_efi_status_t (*get_rng) (struct grub_efi_rng_protocol *this, -+ grub_efi_rng_algorithm_t *rng_algorithm, -+ grub_efi_uintn_t rng_value_length, -+ grub_efi_uint8_t *rng_value); -+}; -+typedef struct grub_efi_rng_protocol grub_efi_rng_protocol_t; -+ - #if (GRUB_TARGET_SIZEOF_VOID_P == 4) || defined (__ia64__) \ - || defined (__aarch64__) || defined (__MINGW64__) || defined (__CYGWIN__) \ - || defined(__riscv) -diff --git a/include/grub/stack_protector.h b/include/grub/stack_protector.h -new file mode 100644 -index 0000000..c88dc00 ---- /dev/null -+++ b/include/grub/stack_protector.h -@@ -0,0 +1,30 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2021 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#ifndef GRUB_STACK_PROTECTOR_H -+#define GRUB_STACK_PROTECTOR_H 1 -+ -+#include -+#include -+ -+#ifdef GRUB_STACK_PROTECTOR -+extern grub_addr_t EXPORT_VAR (__stack_chk_guard); -+extern void __attribute__ ((noreturn)) EXPORT_FUNC (__stack_chk_fail) (void); -+#endif -+ -+#endif /* GRUB_STACK_PROTECTOR_H */ --- -2.19.1 - diff --git a/backport-0070-util-mkimage-Remove-unused-code-to-add-BSS-section.patch b/backport-0070-util-mkimage-Remove-unused-code-to-add-BSS-section.patch deleted file mode 100644 index 7b338ce..0000000 --- a/backport-0070-util-mkimage-Remove-unused-code-to-add-BSS-section.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 5ee52e31fb8bb37ef11cf3dbff933465944d9e32 Mon Sep 17 00:00:00 2001 -From: Javier Martinez Canillas -Date: Thu, 11 Feb 2021 17:06:49 +0100 -Subject: [PATCH] util/mkimage: Remove unused code to add BSS section - -The code is compiled out so there is no reason to keep it. - -Additionally, don't set bss_size field since we do not add a BSS section. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=d52f78def1b9c4f435fdbf6b24fd899208580c76 - -Signed-off-by: Javier Martinez Canillas -Reviewed-by: Daniel Kiper ---- - util/mkimage.c | 17 ----------------- - 1 file changed, 17 deletions(-) - -diff --git a/util/mkimage.c b/util/mkimage.c -index 37d6249..048089f 100644 ---- a/util/mkimage.c -+++ b/util/mkimage.c -@@ -1304,7 +1304,6 @@ grub_install_generate_image (const char *dir, const char *prefix, - o->code_size = grub_host_to_target32 (layout.exec_size); - o->data_size = grub_cpu_to_le32 (reloc_addr - layout.exec_size - - header_size); -- o->bss_size = grub_cpu_to_le32 (layout.bss_size); - o->entry_addr = grub_cpu_to_le32 (layout.start_address); - o->code_base = grub_cpu_to_le32 (header_size); - -@@ -1342,7 +1341,6 @@ grub_install_generate_image (const char *dir, const char *prefix, - o->code_size = grub_host_to_target32 (layout.exec_size); - o->data_size = grub_cpu_to_le32 (reloc_addr - layout.exec_size - - header_size); -- o->bss_size = grub_cpu_to_le32 (layout.bss_size); - o->entry_addr = grub_cpu_to_le32 (layout.start_address); - o->code_base = grub_cpu_to_le32 (header_size); - o->image_base = 0; -@@ -1388,21 +1386,6 @@ grub_install_generate_image (const char *dir, const char *prefix, - | GRUB_PE32_SCN_MEM_READ - | GRUB_PE32_SCN_MEM_WRITE); - --#if 0 -- bss_section = data_section + 1; -- strcpy (bss_section->name, ".bss"); -- bss_section->virtual_size = grub_cpu_to_le32 (layout.bss_size); -- bss_section->virtual_address = grub_cpu_to_le32 (header_size + layout.kernel_size); -- bss_section->raw_data_size = 0; -- bss_section->raw_data_offset = 0; -- bss_section->characteristics -- = grub_cpu_to_le32_compile_time (GRUB_PE32_SCN_MEM_READ -- | GRUB_PE32_SCN_MEM_WRITE -- | GRUB_PE32_SCN_ALIGN_64BYTES -- | GRUB_PE32_SCN_CNT_INITIALIZED_DATA -- | 0x80); --#endif -- - mods_section = data_section + 1; - strcpy (mods_section->name, "mods"); - mods_section->virtual_size = grub_cpu_to_le32 (reloc_addr - layout.kernel_size - header_size); --- -2.19.1 - diff --git a/backport-0071-util-mkimage-Use-grub_host_to_target32-instead-of-gr.patch b/backport-0071-util-mkimage-Use-grub_host_to_target32-instead-of-gr.patch deleted file mode 100644 index cdc03b5..0000000 --- a/backport-0071-util-mkimage-Use-grub_host_to_target32-instead-of-gr.patch +++ /dev/null @@ -1,114 +0,0 @@ -From fe56aca056a6bb39b3968e37a6e4df079419ca2c Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 15 Feb 2021 13:59:21 +0100 -Subject: [PATCH] util/mkimage: Use grub_host_to_target32() instead of - grub_cpu_to_le32() - -The latter doesn't take into account the target image endianness. There is -a grub_cpu_to_le32_compile_time() but no compile time variant for function -grub_host_to_target32(). So, let's keep using the other one for this case. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=1710452aca05ccdd21e74390ec08c63fdf0ee10a - -Signed-off-by: Peter Jones -Signed-off-by: Javier Martinez Canillas -Reviewed-by: Daniel Kiper ---- - util/mkimage.c | 44 ++++++++++++++++++++++---------------------- - 1 file changed, 22 insertions(+), 22 deletions(-) - -diff --git a/util/mkimage.c b/util/mkimage.c -index 048089f..47cd705 100644 ---- a/util/mkimage.c -+++ b/util/mkimage.c -@@ -1302,10 +1302,10 @@ grub_install_generate_image (const char *dir, const char *prefix, - + sizeof (struct grub_pe32_coff_header)); - o->magic = grub_host_to_target16 (GRUB_PE32_PE32_MAGIC); - o->code_size = grub_host_to_target32 (layout.exec_size); -- o->data_size = grub_cpu_to_le32 (reloc_addr - layout.exec_size -+ o->data_size = grub_host_to_target32 (reloc_addr - layout.exec_size - - header_size); -- o->entry_addr = grub_cpu_to_le32 (layout.start_address); -- o->code_base = grub_cpu_to_le32 (header_size); -+ o->entry_addr = grub_host_to_target32 (layout.start_address); -+ o->code_base = grub_host_to_target32 (header_size); - - o->data_base = grub_host_to_target32 (header_size + layout.exec_size); - -@@ -1339,10 +1339,10 @@ grub_install_generate_image (const char *dir, const char *prefix, - + sizeof (struct grub_pe32_coff_header)); - o->magic = grub_host_to_target16 (GRUB_PE32_PE64_MAGIC); - o->code_size = grub_host_to_target32 (layout.exec_size); -- o->data_size = grub_cpu_to_le32 (reloc_addr - layout.exec_size -+ o->data_size = grub_host_to_target32 (reloc_addr - layout.exec_size - - header_size); -- o->entry_addr = grub_cpu_to_le32 (layout.start_address); -- o->code_base = grub_cpu_to_le32 (header_size); -+ o->entry_addr = grub_host_to_target32 (layout.start_address); -+ o->code_base = grub_host_to_target32 (header_size); - o->image_base = 0; - o->section_alignment = grub_host_to_target32 (image_target->section_align); - o->file_alignment = grub_host_to_target32 (GRUB_PE32_FILE_ALIGNMENT); -@@ -1366,10 +1366,10 @@ grub_install_generate_image (const char *dir, const char *prefix, - /* The sections. */ - text_section = sections; - strcpy (text_section->name, ".text"); -- text_section->virtual_size = grub_cpu_to_le32 (layout.exec_size); -- text_section->virtual_address = grub_cpu_to_le32 (header_size); -- text_section->raw_data_size = grub_cpu_to_le32 (layout.exec_size); -- text_section->raw_data_offset = grub_cpu_to_le32 (header_size); -+ text_section->virtual_size = grub_host_to_target32 (layout.exec_size); -+ text_section->virtual_address = grub_host_to_target32 (header_size); -+ text_section->raw_data_size = grub_host_to_target32 (layout.exec_size); -+ text_section->raw_data_offset = grub_host_to_target32 (header_size); - text_section->characteristics = grub_cpu_to_le32_compile_time ( - GRUB_PE32_SCN_CNT_CODE - | GRUB_PE32_SCN_MEM_EXECUTE -@@ -1377,10 +1377,10 @@ grub_install_generate_image (const char *dir, const char *prefix, - - data_section = text_section + 1; - strcpy (data_section->name, ".data"); -- data_section->virtual_size = grub_cpu_to_le32 (layout.kernel_size - layout.exec_size); -- data_section->virtual_address = grub_cpu_to_le32 (header_size + layout.exec_size); -- data_section->raw_data_size = grub_cpu_to_le32 (layout.kernel_size - layout.exec_size); -- data_section->raw_data_offset = grub_cpu_to_le32 (header_size + layout.exec_size); -+ data_section->virtual_size = grub_host_to_target32 (layout.kernel_size - layout.exec_size); -+ data_section->virtual_address = grub_host_to_target32 (header_size + layout.exec_size); -+ data_section->raw_data_size = grub_host_to_target32 (layout.kernel_size - layout.exec_size); -+ data_section->raw_data_offset = grub_host_to_target32 (header_size + layout.exec_size); - data_section->characteristics - = grub_cpu_to_le32_compile_time (GRUB_PE32_SCN_CNT_INITIALIZED_DATA - | GRUB_PE32_SCN_MEM_READ -@@ -1388,10 +1388,10 @@ grub_install_generate_image (const char *dir, const char *prefix, - - mods_section = data_section + 1; - strcpy (mods_section->name, "mods"); -- mods_section->virtual_size = grub_cpu_to_le32 (reloc_addr - layout.kernel_size - header_size); -- mods_section->virtual_address = grub_cpu_to_le32 (header_size + layout.kernel_size + layout.bss_size); -- mods_section->raw_data_size = grub_cpu_to_le32 (reloc_addr - layout.kernel_size - header_size); -- mods_section->raw_data_offset = grub_cpu_to_le32 (header_size + layout.kernel_size); -+ mods_section->virtual_size = grub_host_to_target32 (reloc_addr - layout.kernel_size - header_size); -+ mods_section->virtual_address = grub_host_to_target32 (header_size + layout.kernel_size + layout.bss_size); -+ mods_section->raw_data_size = grub_host_to_target32 (reloc_addr - layout.kernel_size - header_size); -+ mods_section->raw_data_offset = grub_host_to_target32 (header_size + layout.kernel_size); - mods_section->characteristics - = grub_cpu_to_le32_compile_time (GRUB_PE32_SCN_CNT_INITIALIZED_DATA - | GRUB_PE32_SCN_MEM_READ -@@ -1399,10 +1399,10 @@ grub_install_generate_image (const char *dir, const char *prefix, - - reloc_section = mods_section + 1; - strcpy (reloc_section->name, ".reloc"); -- reloc_section->virtual_size = grub_cpu_to_le32 (layout.reloc_size); -- reloc_section->virtual_address = grub_cpu_to_le32 (reloc_addr + layout.bss_size); -- reloc_section->raw_data_size = grub_cpu_to_le32 (layout.reloc_size); -- reloc_section->raw_data_offset = grub_cpu_to_le32 (reloc_addr); -+ reloc_section->virtual_size = grub_host_to_target32 (layout.reloc_size); -+ reloc_section->virtual_address = grub_host_to_target32 (reloc_addr + layout.bss_size); -+ reloc_section->raw_data_size = grub_host_to_target32 (layout.reloc_size); -+ reloc_section->raw_data_offset = grub_host_to_target32 (reloc_addr); - reloc_section->characteristics - = grub_cpu_to_le32_compile_time (GRUB_PE32_SCN_CNT_INITIALIZED_DATA - | GRUB_PE32_SCN_MEM_DISCARDABLE --- -2.19.1 - diff --git a/backport-0072-kern-mm-Fix-grub_debug_calloc-compilation-error.patch b/backport-0072-kern-mm-Fix-grub_debug_calloc-compilation-error.patch deleted file mode 100644 index f7c2a2f..0000000 --- a/backport-0072-kern-mm-Fix-grub_debug_calloc-compilation-error.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 4a2ba9ed2b2d058b9692ae86ce06b0d485a86ad5 Mon Sep 17 00:00:00 2001 -From: Marco A Benatto -Date: Tue, 9 Feb 2021 12:33:06 -0300 -Subject: [PATCH] kern/mm: Fix grub_debug_calloc() compilation error - -Fix compilation error due to missing parameter to -grub_printf() when MM_DEBUG is defined. - -Fixes: 64e26162e (calloc: Make sure we always have an overflow-checking calloc() available) - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=a9d8de960834f376087856f9d60a214b47c76f61 - -Signed-off-by: Marco A Benatto -Reviewed-by: Daniel Kiper ---- - grub-core/kern/mm.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/kern/mm.c b/grub-core/kern/mm.c -index 80d0720..d8c8377 100644 ---- a/grub-core/kern/mm.c -+++ b/grub-core/kern/mm.c -@@ -594,7 +594,7 @@ grub_debug_calloc (const char *file, int line, grub_size_t nmemb, grub_size_t si - - if (grub_mm_debug) - grub_printf ("%s:%d: calloc (0x%" PRIxGRUB_SIZE ", 0x%" PRIxGRUB_SIZE ") = ", -- file, line, size); -+ file, line, nmemb, size); - ptr = grub_calloc (nmemb, size); - if (grub_mm_debug) - grub_printf ("%p\n", ptr); --- -2.19.1 - diff --git a/backport-0073-grub-mkconfig-Fix-typo-in-help-output.patch b/backport-0073-grub-mkconfig-Fix-typo-in-help-output.patch deleted file mode 100644 index 1cb04a8..0000000 --- a/backport-0073-grub-mkconfig-Fix-typo-in-help-output.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 55453a6734278cf820d599b67c03e84e35e1d87b Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Fri, 23 Aug 2019 12:00:30 +0100 -Subject: [PATCH] grub-mkconfig: Fix typo in --help output - -The short form of "--version" that grub-mkconfig accepts is "-V", not "-v". - -Fixes Debian bug #935504. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=ff3e91be9cc3d6f040a7f47fac0db1c93f80a9a8 - -Signed-off-by: Colin Watson -Reviewed-by: Vladimir 'phcoder' Serbinenko -Reviewed-by: Daniel Kiper ---- - util/grub-mkconfig.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 2601bdc..0a2c1ce 100644 ---- a/util/grub-mkconfig.in -+++ b/util/grub-mkconfig.in -@@ -63,7 +63,7 @@ usage () { - print_option_help "-o, --output=$(gettext FILE)" "$(gettext "output generated config to FILE [default=stdout]")" - print_option_help "--no-grubenv-update" "$(gettext "do not update variables in the grubenv file")" - print_option_help "-h, --help" "$(gettext "print this message and exit")" -- print_option_help "-v, --version" "$(gettext "print the version information and exit")" -+ print_option_help "-V, --version" "$(gettext "print the version information and exit")" - echo - gettext "Report bugs to ."; echo - } --- -2.19.1 - diff --git a/backport-0074-at_keyboard-Fix-unreliable-key-presses.patch b/backport-0074-at_keyboard-Fix-unreliable-key-presses.patch deleted file mode 100644 index 6240832..0000000 --- a/backport-0074-at_keyboard-Fix-unreliable-key-presses.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 2d3fcce21fc1118449219a8c66b25aefca989493 Mon Sep 17 00:00:00 2001 -From: Michael Bideau -Date: Wed, 2 Oct 2019 23:48:10 +0200 -Subject: [PATCH] at_keyboard: Fix unreliable key presses - -This patch fixes an issue that prevented the at_keyboard module to work -(for me). The cause was a bad/wrong return value in the -grub_at_keyboard_getkey() function in grub-core/term/at_keyboard.c file -at line 237. My symptoms were to have an unresponsive keyboard. Keys -needed to be pressed 10x and more to effectively be printed sometimes -generating multiple key presses (after 1 or 2 sec of no printing). It -was very problematic when typing passphrase in early stage (with -GRUB_ENABLE_CRYPTODISK). When switched to "console" terminal input -keyboard worked perfectly. It also worked great with the GRUB 2.02 -packaged by Debian (2.02+dfsg1-20). It was not an output issue but an -input one. - -I've managed to analyze the issue and found that it came from the commit -216950a4e (at_keyboard: Split protocol from controller code.). Three -lines where moved from the fetch_key() function in -grub-core/term/at_keyboard.c file to the beginning of -grub_at_keyboard_getkey() function (same file). However, returning -1 -made sense when it happened in fetch_key() function but not anymore in -grub_at_keyboard_getkey() function which should return GRUB_TERM_NO_KEY. -I think it was just an incomplete cut-paste missing a small manual -correction. Let's fix it. - -Note: Commit message updated by Daniel Kiper. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=33203ca3484717712b54e199c46ae8a818374284 - -Signed-off-by: Michael Bideau -Reviewed-by: Daniel Kiper ---- - grub-core/term/at_keyboard.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/term/at_keyboard.c b/grub-core/term/at_keyboard.c -index f0a986e..5971110 100644 ---- a/grub-core/term/at_keyboard.c -+++ b/grub-core/term/at_keyboard.c -@@ -234,7 +234,7 @@ grub_at_keyboard_getkey (struct grub_term_input *term __attribute__ ((unused))) - return GRUB_TERM_NO_KEY; - - if (! KEYBOARD_ISREADY (grub_inb (KEYBOARD_REG_STATUS))) -- return -1; -+ return GRUB_TERM_NO_KEY; - at_key = grub_inb (KEYBOARD_REG_DATA); - old_led = ps2_state.led_status; - --- -2.19.1 - diff --git a/backport-0075-hostdisk-Set-linux-file-descriptor-to-O_CLOEXEC-as-d.patch b/backport-0075-hostdisk-Set-linux-file-descriptor-to-O_CLOEXEC-as-d.patch deleted file mode 100644 index 9d46594..0000000 --- a/backport-0075-hostdisk-Set-linux-file-descriptor-to-O_CLOEXEC-as-d.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 9917f2b39a6a6cd1f8d3ec50773b445158f9b1ef Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Tue, 5 Nov 2019 09:19:26 +0000 -Subject: [PATCH] hostdisk: Set linux file descriptor to O_CLOEXEC as default - -We are often bothered by this sort of lvm warning while running grub-install -every now and then: - - File descriptor 4 (/dev/vda1) leaked on vgs invocation. Parent PID 1991: /usr/sbin/grub2-install - -The requirement related to the warning is dictated in the lvm man page: - - "On invocation, lvm requires that only the standard file descriptors stdin, - stdout and stderr are available. If others are found, they get closed and - messages are issued warning about the leak. This warning can be suppressed by - setting the environment variable LVM_SUPPRESS_FD_WARNINGS." - -While it could be disabled through settings, most Linux distributions seem to -enable it by default and the justification provided by the developer looks to -be valid to me: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=466138#15 - -Rather than trying to close and reopen the file descriptor to the same file -multiple times, which is rather cumbersome, for the sake of no vgs invocation -could happen in between. This patch enables the close-on-exec flag (O_CLOEXEC) -for new file descriptor returned by the open() system call, making it closed -thus not inherited by the child process forked and executed by the exec() -family of functions. - -Fixes Debian bug #466138. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=42acdd3b405c44d08439a3bbfdbd3466049d172d - -Signed-off-by: Michael Chang -Reviewed-by: Daniel Kiper ---- - grub-core/osdep/linux/hostdisk.c | 3 +++ - grub-core/osdep/unix/hostdisk.c | 3 +++ - 2 files changed, 6 insertions(+) - -diff --git a/grub-core/osdep/linux/hostdisk.c b/grub-core/osdep/linux/hostdisk.c -index 370d027..7bc99ac 100644 ---- a/grub-core/osdep/linux/hostdisk.c -+++ b/grub-core/osdep/linux/hostdisk.c -@@ -366,6 +366,9 @@ grub_util_fd_open_device (const grub_disk_t disk, grub_disk_addr_t sector, int f - #ifdef O_BINARY - flags |= O_BINARY; - #endif -+#ifdef O_CLOEXEC -+ flags |= O_CLOEXEC; -+#endif - - /* Linux has a bug that the disk cache for a whole disk is not consistent - with the one for a partition of the disk. */ -diff --git a/grub-core/osdep/unix/hostdisk.c b/grub-core/osdep/unix/hostdisk.c -index 9115096..3a00d74 100644 ---- a/grub-core/osdep/unix/hostdisk.c -+++ b/grub-core/osdep/unix/hostdisk.c -@@ -164,6 +164,9 @@ grub_util_fd_open (const char *os_dev, int flags) - #ifdef O_BINARY - flags |= O_BINARY; - #endif -+#ifdef O_CLOEXEC -+ flags |= O_CLOEXEC; -+#endif - - return open (os_dev, flags, S_IROTH | S_IRGRP | S_IRUSR | S_IWUSR); - } --- -2.19.1 - diff --git a/backport-0076-squash4-Fix-an-uninitialized-variable.patch b/backport-0076-squash4-Fix-an-uninitialized-variable.patch deleted file mode 100644 index 77af559..0000000 --- a/backport-0076-squash4-Fix-an-uninitialized-variable.patch +++ /dev/null @@ -1,40 +0,0 @@ -From eb6d0ed961e6f83ea1cc8f8c81fdb4904a11d984 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 27 Jan 2020 15:01:16 -0500 -Subject: [PATCH] squash4: Fix an uninitialized variable - -gcc says: - -grub-core/fs/squash4.c: In function ‘direct_read’: -grub-core/fs/squash4.c:868:10: error: ‘err’ may be used uninitialized in -this function [-Werror=maybe-uninitialized] - 868 | if (err) - | ^ -cc1: all warnings being treated as errors - -This patch initializes it to GRUB_ERR_NONE. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=598de14d9340137cd7c7a099e8ed53d97f1f68a0 - -Signed-off-by: Peter Jones -Reviewed-by: Daniel Kiper ---- - grub-core/fs/squash4.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/fs/squash4.c b/grub-core/fs/squash4.c -index 7851238..a5f35c1 100644 ---- a/grub-core/fs/squash4.c -+++ b/grub-core/fs/squash4.c -@@ -769,7 +769,7 @@ direct_read (struct grub_squash_data *data, - struct grub_squash_cache_inode *ino, - grub_off_t off, char *buf, grub_size_t len) - { -- grub_err_t err; -+ grub_err_t err = GRUB_ERR_NONE; - grub_off_t cumulated_uncompressed_size = 0; - grub_uint64_t a = 0; - grub_size_t i; --- -2.19.1 - diff --git a/backport-0077-efi-tpm-Fix-memory-leak-in-grub_tpm1-2_log_event.patch b/backport-0077-efi-tpm-Fix-memory-leak-in-grub_tpm1-2_log_event.patch deleted file mode 100644 index 17b2e24..0000000 --- a/backport-0077-efi-tpm-Fix-memory-leak-in-grub_tpm1-2_log_event.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 0ffa81ce9e0395b113ca3903a064ff7bcdfb4454 Mon Sep 17 00:00:00 2001 -From: Tianjia Zhang -Date: Mon, 23 Mar 2020 19:52:51 +0800 -Subject: [PATCH] efi/tpm: Fix memory leak in grub_tpm1/2_log_event() - -The memory requested for the event is not released here, -causing memory leaks. This patch fixes this problem. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=800de4a1d0e72022694f8773ec5fe7dca8e34ae6 - -Signed-off-by: Jia Zhang -Signed-off-by: Tianjia Zhang -Reviewed-by: Javier Martinez Canillas -Reviewed-by: Daniel Kiper ---- - grub-core/commands/efi/tpm.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/grub-core/commands/efi/tpm.c b/grub-core/commands/efi/tpm.c -index 32909c1..6a6cd0d 100644 ---- a/grub-core/commands/efi/tpm.c -+++ b/grub-core/commands/efi/tpm.c -@@ -247,6 +247,7 @@ grub_tpm1_log_event (grub_efi_handle_t tpm_handle, unsigned char *buf, - algorithm = TCG_ALG_SHA; - status = efi_call_7 (tpm->log_extend_event, tpm, (grub_addr_t) buf, (grub_uint64_t) size, - algorithm, event, &eventnum, &lastevent); -+ grub_free (event); - - switch (status) - { -@@ -297,6 +298,7 @@ grub_tpm2_log_event (grub_efi_handle_t tpm_handle, unsigned char *buf, - - status = efi_call_5 (tpm->hash_log_extend_event, tpm, 0, (grub_addr_t) buf, - (grub_uint64_t) size, event); -+ grub_free (event); - - switch (status) - { --- -2.19.1 - diff --git a/backport-0078-powerpc-mkimage-Fix-CHRP-note-descsz.patch b/backport-0078-powerpc-mkimage-Fix-CHRP-note-descsz.patch deleted file mode 100644 index 90faa6d..0000000 --- a/backport-0078-powerpc-mkimage-Fix-CHRP-note-descsz.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 0a18ad3787b0aca65a6a9e246f03d8dd89d9dfdc Mon Sep 17 00:00:00 2001 -From: Daniel Axtens -Date: Tue, 7 Apr 2020 16:17:26 +1000 -Subject: [PATCH] powerpc/mkimage: Fix CHRP note descsz - -Currently, an image generated with 'grub-mkimage -n' causes an error when -read with 'readelf -a': - -Displaying notes found at file offset 0x000106f0 with length 0x0000002c: - Owner Data size Description -readelf: Warning: note with invalid namesz and/or descsz found at offset 0x0 -readelf: Warning: type: 0x1275, namesize: 0x00000008, descsize: 0x0000002c, alignment: 4 - -This is because the descsz of the CHRP note is set to - sizeof (struct grub_ieee1275_note) -which is the size of the entire note, including name and elf header. The -desczs should contain only the contents, not the name and header sizes. - -Set the descsz instead to 'sizeof (struct grub_ieee1275_note_desc)' - -Resultant readelf output: - -Displaying notes found at file offset 0x00010710 with length 0x0000002c: - Owner Data size Description - PowerPC 0x00000018 Unknown note type: (0x00001275) - description data: ff ff ff ff 00 c0 00 00 ff ff ff ff ff ff ff ff ff ff ff ff 00 00 40 00 - -So far as I can tell this issue has existed for as long as the note -generation code has existed, but I guess nothing really checks descsz. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=06fd69a3fd9d6b86e4a5af6c0d5da1b12545d27c - -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper ---- - util/grub-mkimagexx.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c -index 52bc9c8..00f49cc 100644 ---- a/util/grub-mkimagexx.c -+++ b/util/grub-mkimagexx.c -@@ -463,7 +463,7 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc - grub_util_info ("adding CHRP NOTE segment"); - - note_ptr->header.n_namesz = grub_host_to_target32 (sizeof (GRUB_IEEE1275_NOTE_NAME)); -- note_ptr->header.n_descsz = grub_host_to_target32 (note_size); -+ note_ptr->header.n_descsz = grub_host_to_target32 (sizeof (struct grub_ieee1275_note_desc)); - note_ptr->header.n_type = grub_host_to_target32 (GRUB_IEEE1275_NOTE_TYPE); - strcpy (note_ptr->name, GRUB_IEEE1275_NOTE_NAME); - note_ptr->descriptor.real_mode = grub_host_to_target32 (0xffffffff); --- -2.19.1 - diff --git a/backport-0079-efi-tpm-Fix-typo-in-grub_efi_tpm2_protocol-struct.patch b/backport-0079-efi-tpm-Fix-typo-in-grub_efi_tpm2_protocol-struct.patch deleted file mode 100644 index 4df8455..0000000 --- a/backport-0079-efi-tpm-Fix-typo-in-grub_efi_tpm2_protocol-struct.patch +++ /dev/null @@ -1,37 +0,0 @@ -From c98fb6f044005e65186a9dd2964143cb5cadeaa9 Mon Sep 17 00:00:00 2001 -From: Daniel Kiper -Date: Mon, 25 May 2020 21:02:15 +0200 -Subject: [PATCH] efi/tpm: Fix typo in grub_efi_tpm2_protocol struct - -Rename get_active_pcr_blanks() to get_active_pcr_banks(). - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=1e81bf6d2dd57ddee7a24ca9a8b4cac7700d3dc4 - -Signed-off-by: Daniel Kiper -Reviewed-by: Javier Martinez Canillas ---- - include/grub/efi/tpm.h | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/include/grub/efi/tpm.h b/include/grub/efi/tpm.h -index 3ea6b4d..ec39725 100644 ---- a/include/grub/efi/tpm.h -+++ b/include/grub/efi/tpm.h -@@ -176,10 +176,10 @@ struct grub_efi_tpm2_protocol - OutputParameterBlockSize, - grub_efi_uint8_t * - OutputParameterBlock); -- grub_efi_status_t (*get_active_pcr_blanks) (struct grub_efi_tpm2_protocol * -- this, -- grub_efi_uint32_t * -- ActivePcrBanks); -+ grub_efi_status_t (*get_active_pcr_banks) (struct grub_efi_tpm2_protocol * -+ this, -+ grub_efi_uint32_t * -+ ActivePcrBanks); - grub_efi_status_t (*set_active_pcr_banks) (struct grub_efi_tpm2_protocol * - this, - grub_efi_uint32_t --- -2.19.1 - diff --git a/backport-0080-misc-Add-parentheses-around-ALIGN_UP-and-ALIGN_DOWN-.patch b/backport-0080-misc-Add-parentheses-around-ALIGN_UP-and-ALIGN_DOWN-.patch deleted file mode 100644 index f49bbac..0000000 --- a/backport-0080-misc-Add-parentheses-around-ALIGN_UP-and-ALIGN_DOWN-.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 2e5e020db1e1ced5038c5ca9b847f62a224383ff Mon Sep 17 00:00:00 2001 -From: Glenn Washburn -Date: Tue, 8 Dec 2020 16:45:33 -0600 -Subject: [PATCH] misc: Add parentheses around ALIGN_UP() and ALIGN_DOWN() - arguments - -This ensures that expected order of operations is preserved when arguments -are expressions. - -Reference: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=8e8b2316acbaef8c4e6c0839cf27a42217dfb7c3 - -Signed-off-by: Glenn Washburn -Reviewed-by: Patrick Steinhardt -Reviewed-by: Daniel Kiper ---- - include/grub/misc.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/include/grub/misc.h b/include/grub/misc.h -index 998e47e..08ea894 100644 ---- a/include/grub/misc.h -+++ b/include/grub/misc.h -@@ -28,10 +28,10 @@ - #include - - #define ALIGN_UP(addr, align) \ -- ((addr + (typeof (addr)) align - 1) & ~((typeof (addr)) align - 1)) -+ (((addr) + (typeof (addr)) (align) - 1) & ~((typeof (addr)) (align) - 1)) - #define ALIGN_UP_OVERHEAD(addr, align) ((-(addr)) & ((typeof (addr)) (align) - 1)) - #define ALIGN_DOWN(addr, align) \ -- ((addr) & ~((typeof (addr)) align - 1)) -+ ((addr) & ~((typeof (addr)) (align) - 1)) - #define ARRAY_SIZE(array) (sizeof (array) / sizeof (array[0])) - #define COMPILE_TIME_ASSERT(cond) switch (0) { case 1: case !(cond): ; } - --- -2.19.1 - diff --git a/backport-0081-verifiers-Fix-calling-uninitialized-function-pointer.patch b/backport-0081-verifiers-Fix-calling-uninitialized-function-pointer.patch deleted file mode 100644 index e692363..0000000 --- a/backport-0081-verifiers-Fix-calling-uninitialized-function-pointer.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 53d2cf59c7c683f473a43007303a30c1e3e8baad Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Tue, 18 Feb 2020 18:08:18 +0800 -Subject: [PATCH] verifiers: Fix calling uninitialized function pointer - -The necessary check for NULL before use of function ver->close is not -taking place in the failure path. This patch simply adds the missing -check and fixes the problem that GRUB hangs indefinitely after booting -rogue image without valid signature if secure boot is turned on. - -Now it displays like this for booting rogue UEFI image: - - error: bad shim signature - error: you need to load the kernel first - - Press any key to continue... - -and then you can go back to boot menu by pressing any key or after a few -seconds expired. - -Reference:https://git.savannah.gnu.org/cgit/grub.git/commit/?id=d0de8b37f651e13886ef0e0fda285a1294adafe8 - -Signed-off-by: Michael Chang -Reviewed-by: Javier Martinez Canillas -Reviewed-by: Daniel Kiper ---- - grub-core/kern/verifiers.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/grub-core/kern/verifiers.c b/grub-core/kern/verifiers.c -index aa3dc7c..3d19bff 100644 ---- a/grub-core/kern/verifiers.c -+++ b/grub-core/kern/verifiers.c -@@ -196,7 +196,8 @@ grub_verifiers_open (grub_file_t io, enum grub_file_type type) - return ret; - - fail: -- ver->close (context); -+ if (ver->close) -+ ver->close (context); - fail_noclose: - verified_free (verified); - grub_free (ret); --- -2.19.1 - diff --git a/backport-Arm-check-for-the-PE-magic-for-the-compiled-arch.patch b/backport-Arm-check-for-the-PE-magic-for-the-compiled-arch.patch deleted file mode 100644 index 5dea6ff..0000000 --- a/backport-Arm-check-for-the-PE-magic-for-the-compiled-arch.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 337b3d963d28b3544e8817428fb68ca559613a39 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Thu, 9 Sep 2021 10:59:28 -0400 -Subject: [PATCH 2/2] Arm: check for the PE magic for the compiled arch - -In "arm64: Fix EFI loader kernel image allocation", Ben fixed the kernel -alignment to match the alignment given in the PE header. In doing so, a -check for valid PE magic was added, which was hard-coded to the value -seen on Aarch64 (GRUB_PE32_PE64_MAGIC). - -Unfortunately, this code is shared between 64-bit and 32-bit, and so -that value broke 32-bit Arm systems. - -This patch adds a constant definition for GRUB_PE32_PEXX_MAGIC, which is -either GRUB_PE32_PE64_MAGIC or GRUB_PE32_PE32_MAGIC, depending on which -platform is being built, and uses it in the header magic check. - -Resolves: rhbz#2000756 - -Signed-off-by: Peter Jones ---- - grub-core/loader/arm64/linux.c | 2 +- - include/grub/arm/linux.h | 1 + - include/grub/arm64/linux.h | 1 + - 3 files changed, 3 insertions(+), 1 deletion(-) - -diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index 1da1886..f0ad052 100644 ---- a/grub-core/loader/arm64/linux.c -+++ b/grub-core/loader/arm64/linux.c -@@ -342,7 +342,7 @@ parse_pe_header (void *kernel, grub_uint64_t *total_size, - - pe = (void *)((unsigned long)kernel + lh->hdr_offset); - -- if (pe->opt.magic != GRUB_PE32_PE64_MAGIC) -+ if (pe->opt.magic != GRUB_PE32_PEXX_MAGIC) - return grub_error(GRUB_ERR_BAD_OS, "Invalid PE optional header magic"); - - *total_size = pe->opt.image_size; -diff --git a/include/grub/arm/linux.h b/include/grub/arm/linux.h -index b582f67..966a507 100644 ---- a/include/grub/arm/linux.h -+++ b/include/grub/arm/linux.h -@@ -44,6 +44,7 @@ struct grub_arm_linux_pe_header - - #if defined(__arm__) - # define GRUB_LINUX_ARMXX_MAGIC_SIGNATURE GRUB_LINUX_ARM_MAGIC_SIGNATURE -+# define GRUB_PE32_PEXX_MAGIC GRUB_PE32_PE32_MAGIC - # define linux_arch_kernel_header linux_arm_kernel_header - # define grub_armxx_linux_pe_header grub_arm_linux_pe_header - #endif -diff --git a/include/grub/arm64/linux.h b/include/grub/arm64/linux.h -index a3be9dd..20828d9 100644 ---- a/include/grub/arm64/linux.h -+++ b/include/grub/arm64/linux.h -@@ -47,6 +47,7 @@ struct grub_arm64_linux_pe_header - - #if defined(__aarch64__) - # define GRUB_LINUX_ARMXX_MAGIC_SIGNATURE GRUB_LINUX_ARM64_MAGIC_SIGNATURE -+# define GRUB_PE32_PEXX_MAGIC GRUB_PE32_PE64_MAGIC - # define linux_arch_kernel_header linux_arm64_kernel_header - # define grub_armxx_linux_pe_header grub_arm64_linux_pe_header - #endif --- -2.23.0 diff --git a/backport-CVE-2020-25632.patch b/backport-CVE-2020-25632.patch deleted file mode 100644 index 1795977..0000000 --- a/backport-CVE-2020-25632.patch +++ /dev/null @@ -1,83 +0,0 @@ -From 7630ec5397fe418276b360f9011934b8c034936c -From: Daniel Kiper -Date: 2021-03-02 15:54:15 +0100 -Subject: [PATCH] dl: Only allow unloading modules that are not dependencies -When a module is attempted to be removed its reference counter is always -decremented. This means that repeated rmmod invocations will cause the -module to be unloaded even if another module depends on it. - -This may lead to a use-after-free scenario allowing an attacker to execute -arbitrary code and by-pass the UEFI Secure Boot protection. - -While being there, add the extern keyword to some function declarations in -that header file. - -Fixes: CVE-2020-25632 - -Reference:http://git.savannah.gnu.org/cgit/grub.git/commit/?id=7630ec5397fe418276b360f9011934b8c034936c - -Reported-by: Chris Coulson -Signed-off-by: Javier Martinez Canillas -Reviewed-by: Daniel Kiper -Diffstat --rw-r--r-- grub-core/commands/minicmd.c 7 --rw-r--r-- grub-core/kern/dl.c 9 --rw-r--r-- include/grub/dl.h 8 -3 files changed, 19 insertions, 5 deletions -diff --git a/grub-core/commands/minicmd.c b/grub-core/commands/minicmd.c -index 6bbce3128..fa498931e 100644 ---- a/grub-core/commands/minicmd.c -+++ b/grub-core/commands/minicmd.c -@@ -140,8 +140,11 @@ grub_mini_cmd_rmmod (struct grub_command *cmd __attribute__ ((unused)), - if (grub_dl_is_persistent (mod)) - return grub_error (GRUB_ERR_BAD_ARGUMENT, "cannot unload persistent module"); - -- if (grub_dl_unref (mod) <= 0) -- grub_dl_unload (mod); -+ if (grub_dl_ref_count (mod) > 1) -+ return grub_error (GRUB_ERR_BAD_ARGUMENT, "cannot unload referenced module"); -+ -+ grub_dl_unref (mod); -+ grub_dl_unload (mod); - - return 0; - } -diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c -index 48eb5e7b6..48f8a7907 100644 ---- a/grub-core/kern/dl.c -+++ b/grub-core/kern/dl.c -@@ -549,6 +549,15 @@ grub_dl_unref (grub_dl_t mod) - return --mod->ref_count; - } - -+int -+grub_dl_ref_count (grub_dl_t mod) -+{ -+ if (mod == NULL) -+ return 0; -+ -+ return mod->ref_count; -+} -+ - static void - grub_dl_flush_cache (grub_dl_t mod) - { -diff --git a/include/grub/dl.h b/include/grub/dl.h -index f03c03561..b3753c9ca 100644 ---- a/include/grub/dl.h -+++ b/include/grub/dl.h -@@ -203,9 +203,11 @@ grub_dl_t EXPORT_FUNC(grub_dl_load) (const char *name); - grub_dl_t grub_dl_load_core (void *addr, grub_size_t size); - grub_dl_t EXPORT_FUNC(grub_dl_load_core_noinit) (void *addr, grub_size_t size); - int EXPORT_FUNC(grub_dl_unload) (grub_dl_t mod); --void grub_dl_unload_unneeded (void); --int EXPORT_FUNC(grub_dl_ref) (grub_dl_t mod); --int EXPORT_FUNC(grub_dl_unref) (grub_dl_t mod); -+extern void grub_dl_unload_unneeded (void); -+extern int EXPORT_FUNC(grub_dl_ref) (grub_dl_t mod); -+extern int EXPORT_FUNC(grub_dl_unref) (grub_dl_t mod); -+extern int EXPORT_FUNC(grub_dl_ref_count) (grub_dl_t mod); -+ - extern grub_dl_t EXPORT_VAR(grub_dl_head); - - #ifndef GRUB_UTIL diff --git a/backport-CVE-2020-25647.patch b/backport-CVE-2020-25647.patch deleted file mode 100644 index bdac237..0000000 --- a/backport-CVE-2020-25647.patch +++ /dev/null @@ -1,110 +0,0 @@ -From 128c16a682034263eb519c89bc0934eeb6fa8cfa -From: Daniel Kiper -Date: 2021-03-02 15:54:15 +0100 -Subject: [PATCH] usb: Avoid possible out-of-bound accesses caused by malicious devices -The maximum number of configurations and interfaces are fixed but there is -no out-of-bound checking to prevent a malicious USB device to report large -values for these and cause accesses outside the arrays' memory. - -Fixes: CVE-2020-25647 -Reference:http://git.savannah.gnu.org/cgit/grub.git/commit/?id=128c16a682034263eb519c89bc0934eeb6fa8cfa - -Reported-by: Joseph Tartaro -Reported-by: Ilja Van Sprundel -Signed-off-by: Javier Martinez Canillas -Reviewed-by: Daniel Kiper -Diffstat --rw-r--r-- grub-core/bus/usb/usb.c 15 --rw-r--r-- include/grub/usb.h 10 -2 files changed, 19 insertions, 6 deletions -diff --git a/grub-core/bus/usb/usb.c b/grub-core/bus/usb/usb.c -index 8da5e4c74..7cb3cc230 100644 ---- a/grub-core/bus/usb/usb.c -+++ b/grub-core/bus/usb/usb.c -@@ -75,6 +75,9 @@ grub_usb_controller_iterate (grub_usb_controller_iterate_hook_t hook, - grub_usb_err_t - grub_usb_clear_halt (grub_usb_device_t dev, int endpoint) - { -+ if (endpoint >= GRUB_USB_MAX_TOGGLE) -+ return GRUB_USB_ERR_BADDEVICE; -+ - dev->toggle[endpoint] = 0; - return grub_usb_control_msg (dev, (GRUB_USB_REQTYPE_OUT - | GRUB_USB_REQTYPE_STANDARD -@@ -134,10 +137,10 @@ grub_usb_device_initialize (grub_usb_device_t dev) - return err; - descdev = &dev->descdev; - -- for (i = 0; i < 8; i++) -+ for (i = 0; i < GRUB_USB_MAX_CONF; i++) - dev->config[i].descconf = NULL; - -- if (descdev->configcnt == 0) -+ if (descdev->configcnt == 0 || descdev->configcnt > GRUB_USB_MAX_CONF) - { - err = GRUB_USB_ERR_BADDEVICE; - goto fail; -@@ -172,6 +175,12 @@ grub_usb_device_initialize (grub_usb_device_t dev) - /* Skip the configuration descriptor. */ - pos = dev->config[i].descconf->length; - -+ if (dev->config[i].descconf->numif > GRUB_USB_MAX_IF) -+ { -+ err = GRUB_USB_ERR_BADDEVICE; -+ goto fail; -+ } -+ - /* Read all interfaces. */ - for (currif = 0; currif < dev->config[i].descconf->numif; currif++) - { -@@ -217,7 +226,7 @@ grub_usb_device_initialize (grub_usb_device_t dev) - - fail: - -- for (i = 0; i < 8; i++) -+ for (i = 0; i < GRUB_USB_MAX_CONF; i++) - grub_free (dev->config[i].descconf); - - return err; -diff --git a/include/grub/usb.h b/include/grub/usb.h -index 512ae1dd0..6475c552f 100644 ---- a/include/grub/usb.h -+++ b/include/grub/usb.h -@@ -23,6 +23,10 @@ - #include - #include - -+#define GRUB_USB_MAX_CONF 8 -+#define GRUB_USB_MAX_IF 32 -+#define GRUB_USB_MAX_TOGGLE 256 -+ - typedef struct grub_usb_device *grub_usb_device_t; - typedef struct grub_usb_controller *grub_usb_controller_t; - typedef struct grub_usb_controller_dev *grub_usb_controller_dev_t; -@@ -167,7 +171,7 @@ struct grub_usb_configuration - struct grub_usb_desc_config *descconf; - - /* Interfaces associated to this configuration. */ -- struct grub_usb_interface interf[32]; -+ struct grub_usb_interface interf[GRUB_USB_MAX_IF]; - }; - - struct grub_usb_hub_port -@@ -191,7 +195,7 @@ struct grub_usb_device - struct grub_usb_controller controller; - - /* Device configurations (after opening the device). */ -- struct grub_usb_configuration config[8]; -+ struct grub_usb_configuration config[GRUB_USB_MAX_CONF]; - - /* Device address. */ - int addr; -@@ -203,7 +207,7 @@ struct grub_usb_device - int initialized; - - /* Data toggle values (used for bulk transfers only). */ -- int toggle[256]; -+ int toggle[GRUB_USB_MAX_TOGGLE]; - - /* Used by libusb wrapper. Schedulded for removal. */ - void *data; diff --git a/backport-CVE-2021-20225.patch b/backport-CVE-2021-20225.patch deleted file mode 100644 index e161ad0..0000000 --- a/backport-CVE-2021-20225.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 2a330dba93ff11bc00eda76e9419bc52b0c7ead6 -From: Daniel Kiper -Date: 2021-03-02 15:54:15 +0100 -Subject: [PATCH] lib/arg: Block repeated short options that require an argument -Fuzzing found the following crash: - - search -hhhhhhhhhhhhhf - -We didn't allocate enough option space for 13 hints because the -allocation code counts the number of discrete arguments (i.e. argc). -However, the shortopt parsing code will happily keep processing -a combination of short options without checking if those short -options require an argument. This means you can easily end writing -past the allocated option space. - -This fixes a OOB write which can cause heap corruption. - -Fixes: CVE-2021-20225 - -Reference:http://git.savannah.gnu.org/cgit/grub.git/commit/?id=2a330dba93ff11bc00eda76e9419bc52b0c7ead6 - -Reported-by: Daniel Axtens -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper -Diffstat --rw-r--r-- grub-core/lib/arg.c 13 -1 files changed, 13 insertions, 0 deletions -diff --git a/grub-core/lib/arg.c b/grub-core/lib/arg.c -index 8439a0062..ade82d5dc 100644 ---- a/grub-core/lib/arg.c -+++ b/grub-core/lib/arg.c -@@ -299,6 +299,19 @@ grub_arg_parse (grub_extcmd_t cmd, int argc, char **argv, - it can have an argument value. */ - if (*curshort) - { -+ /* -+ * Only permit further short opts if this one doesn't -+ * require a value. -+ */ -+ if (opt->type != ARG_TYPE_NONE && -+ !(opt->flags & GRUB_ARG_OPTION_OPTIONAL)) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, -+ N_("missing mandatory option for `%s'"), -+ opt->longarg); -+ goto fail; -+ } -+ - if (parse_option (cmd, opt, 0, usr) || grub_errno) - goto fail; - } diff --git a/backport-CVE-2021-20233.patch b/backport-CVE-2021-20233.patch deleted file mode 100644 index 0909104..0000000 --- a/backport-CVE-2021-20233.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 2f533a89a8dfcacbf2c9dbc77d910f111f24bf33 -From: Daniel Kiper -Date: 2021-03-02 15:54:15 +0100 -Subject: [PATCH] commands/menuentry: Fix quoting in setparams_prefix() -Commit 9acdcbf32542 (use single quotes in menuentry setparams command) -says that expressing a quoted single quote will require 3 characters. It -actually requires (and always did require!) 4 characters: - - str: a'b => a'\''b - len: 3 => 6 (2 for the letters + 4 for the quote) - -This leads to not allocating enough memory and thus out of bounds writes -that have been observed to cause heap corruption. - -Allocate 4 bytes for each single quote. - -Commit 22e7dbb2bb81 (Fix quoting in legacy parser.) does the same -quoting, but it adds 3 as extra overhead on top of the single byte that -the quote already needs. So it's correct. - -Fixes: 9acdcbf32542 (use single quotes in menuentry setparams command) -Fixes: CVE-2021-20233 - -Reference:http://git.savannah.gnu.org/cgit/grub.git/commit/?id=2f533a89a8dfcacbf2c9dbc77d910f111f24bf33 - -Reported-by: Daniel Axtens -Signed-off-by: Daniel Axtens -Reviewed-by: Daniel Kiper -Diffstat --rw-r--r-- grub-core/commands/menuentry.c 2 -1 files changed, 1 insertions, 1 deletions -diff --git a/grub-core/commands/menuentry.c b/grub-core/commands/menuentry.c -index 9164df744..720e6d8ea 100644 ---- a/grub-core/commands/menuentry.c -+++ b/grub-core/commands/menuentry.c -@@ -230,7 +230,7 @@ setparams_prefix (int argc, char **args) - len += 3; /* 3 = 1 space + 2 quotes */ - p = args[i]; - while (*p) -- len += (*p++ == '\'' ? 3 : 1); -+ len += (*p++ == '\'' ? 4 : 1); - } - - result = grub_malloc (len + 2); diff --git a/backport-templates-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch b/backport-templates-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch deleted file mode 100644 index 64d395e..0000000 --- a/backport-templates-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 8d803482eda7214f33dbef79f3f88886d3a20263 Mon Sep 17 00:00:00 2001 -From: Prarit Bhargava -Date: Mon, 30 Sep 2019 17:00:16 +0200 -Subject: [PATCH] templates: Fix bad test on GRUB_DISABLE_SUBMENU - -The GRUB_DISABLE_SUBMENU option is different than the others in the sense -that it has to be set to "y" instead of "true" to be enabled. - -That causes a lot of confusion to users, some may wrongly set it to "true" -expecting that will work the same than with most options, and some may set -it to "yes" since for other options the value to set is a word and not a -single character. - -This patch changes all the grub.d scripts using the GRUB_DISABLE_SUBMENU -option, so they check if it was set to "true" instead of "y", making it -consistent with all the other options. - -But to keep backward compatibility for users that set the option to "y" in -/etc/default/grub file, keep testing for this value. And also do it for -"yes", since it is a common mistake made by users caused by this option -being inconsistent with the others. - -Reference:https://git.savannah.gnu.org/cgit/grub.git/commit/util/grub.d/30_os-prober.in?id=ee4bd79ef28e6fa4a68bb51c31a5e67a7cbf01ea -Conflict:NA - -Signed-off-by: Prarit Bhargava -Signed-off-by: Javier Martinez Canillas -Reviewed-by: Daniel Kiper ---- - util/grub.d/30_os-prober.in | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in -index ab63439..b659aeb 100644 ---- a/util/grub.d/30_os-prober.in -+++ b/util/grub.d/30_os-prober.in -@@ -195,7 +195,15 @@ EOF - prepare_boot_cache="$(prepare_grub_to_access_device ${LBOOT} | grub_add_tab)" - fi - -- if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then -+ # The GRUB_DISABLE_SUBMENU option used to be different than others since it was -+ # mentioned in the documentation that has to be set to 'y' instead of 'true' to -+ # enable it. This caused a lot of confusion to users that set the option to 'y', -+ # 'yes' or 'true'. This was fixed but all of these values must be supported now. -+ if [ "x${GRUB_DISABLE_SUBMENU}" = xyes ] || [ "x${GRUB_DISABLE_SUBMENU}" = xy ]; then -+ GRUB_DISABLE_SUBMENU="true" -+ fi -+ -+ if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xtrue ]; then - cat << EOF - menuentry '$(echo "$OS $onstr" | grub_quote)' $CLASS --class gnu-linux --class gnu --class os \$menuentry_id_option 'osprober-gnulinux-simple-$boot_device_id' { - EOF --- -2.19.1 - diff --git a/bootstrap b/bootstrap new file mode 100644 index 0000000..4e1e91f --- /dev/null +++ b/bootstrap @@ -0,0 +1,1073 @@ +#!/bin/sh +# Print a version string. +scriptversion=2019-01-04.17; # UTC + +# Bootstrap this package from checked-out sources. + +# Copyright (C) 2003-2019 Free Software Foundation, Inc. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Originally written by Paul Eggert. The canonical version of this +# script is maintained as build-aux/bootstrap in gnulib, however, to +# be useful to your project, you should place a copy of it under +# version control in the top-level directory of your project. The +# intent is that all customization can be done with a bootstrap.conf +# file also maintained in your version control; gnulib comes with a +# template build-aux/bootstrap.conf to get you started. + +# Please report bugs or propose patches to bug-gnulib@gnu.org. + +nl=' +' + +# Ensure file names are sorted consistently across platforms. +LC_ALL=C +export LC_ALL + +# Ensure that CDPATH is not set. Otherwise, the output from cd +# would cause trouble in at least one use below. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +local_gl_dir=gl + +# Honor $PERL, but work even if there is none. +PERL="${PERL-perl}" + +me=$0 + +default_gnulib_url=git://git.sv.gnu.org/gnulib + +usage() { + cat <&2 +} + +# warn_ WORD1... +warn_ () +{ + # If IFS does not start with ' ', set it and emit the warning in a subshell. + case $IFS in + ' '*) warnf_ '%s\n' "$*";; + *) (IFS=' '; warn_ "$@");; + esac +} + +# die WORD1... +die() { warn_ "$@"; exit 1; } + +# Configuration. + +# Name of the Makefile.am +gnulib_mk=gnulib.mk + +# List of gnulib modules needed. +gnulib_modules= + +# Any gnulib files needed that are not in modules. +gnulib_files= + +: ${AUTOPOINT=autopoint} +: ${AUTORECONF=autoreconf} + +# A function to be called right after gnulib-tool is run. +# Override it via your own definition in bootstrap.conf. +bootstrap_post_import_hook() { :; } + +# A function to be called after everything else in this script. +# Override it via your own definition in bootstrap.conf. +bootstrap_epilogue() { :; } + +# The command to download all .po files for a specified domain into a +# specified directory. Fill in the first %s with the destination +# directory and the second with the domain name. +po_download_command_format=\ +"wget --mirror --level=1 -nd -q -A.po -P '%s' \ + https://translationproject.org/latest/%s/" + +# Prefer a non-empty tarname (4th argument of AC_INIT if given), else +# fall back to the package name (1st argument with munging) +extract_package_name=' + /^AC_INIT(\[*/{ + s/// + /^[^,]*,[^,]*,[^,]*,[ []*\([^][ ,)]\)/{ + s//\1/ + s/[],)].*// + p + q + } + s/[],)].*// + s/^GNU // + y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ + s/[^abcdefghijklmnopqrstuvwxyz0123456789_]/-/g + p + } +' +package=$(sed -n "$extract_package_name" configure.ac) \ + || die 'cannot find package name in configure.ac' +gnulib_name=lib$package + +build_aux=build-aux +source_base=lib +m4_base=m4 +doc_base=doc +tests_base=tests +gnulib_extra_files=" + build-aux/install-sh + build-aux/mdate-sh + build-aux/texinfo.tex + build-aux/depcomp + build-aux/config.guess + build-aux/config.sub + doc/INSTALL +" + +# Additional gnulib-tool options to use. Use "\newline" to break lines. +gnulib_tool_option_extras= + +# Other locale categories that need message catalogs. +EXTRA_LOCALE_CATEGORIES= + +# Additional xgettext options to use. Use "\\\newline" to break lines. +XGETTEXT_OPTIONS='\\\ + --flag=_:1:pass-c-format\\\ + --flag=N_:1:pass-c-format\\\ + --flag=error:3:c-format --flag=error_at_line:5:c-format\\\ +' + +# Package bug report address and copyright holder for gettext files +COPYRIGHT_HOLDER='Free Software Foundation, Inc.' +MSGID_BUGS_ADDRESS=bug-$package@gnu.org + +# Files we don't want to import. +excluded_files= + +# File that should exist in the top directory of a checked out hierarchy, +# but not in a distribution tarball. +checkout_only_file=README-hacking + +# Whether to use copies instead of symlinks. +copy=false + +# Set this to '.cvsignore .gitignore' in bootstrap.conf if you want +# those files to be generated in directories like lib/, m4/, and po/. +# Or set it to 'auto' to make this script select which to use based +# on which version control system (if any) is used in the source directory. +vc_ignore=auto + +# Set this to true in bootstrap.conf to enable --bootstrap-sync by +# default. +bootstrap_sync=false + +# Use git to update gnulib sources +use_git=true + +check_exists() { + if test "$1" = "--verbose"; then + ($2 --version /dev/null 2>&1 + if test $? -ge 126; then + # If not found, run with diagnostics as one may be + # presented with env variables to set to find the right version + ($2 --version /dev/null 2>&1 + fi + + test $? -lt 126 +} + +# find_tool ENVVAR NAMES... +# ------------------------- +# Search for a required program. Use the value of ENVVAR, if set, +# otherwise find the first of the NAMES that can be run. +# If found, set ENVVAR to the program name, die otherwise. +# +# FIXME: code duplication, see also gnu-web-doc-update. +find_tool () +{ + find_tool_envvar=$1 + shift + find_tool_names=$@ + eval "find_tool_res=\$$find_tool_envvar" + if test x"$find_tool_res" = x; then + for i; do + if check_exists $i; then + find_tool_res=$i + break + fi + done + fi + if test x"$find_tool_res" = x; then + warn_ "one of these is required: $find_tool_names;" + die "alternatively set $find_tool_envvar to a compatible tool" + fi + eval "$find_tool_envvar=\$find_tool_res" + eval "export $find_tool_envvar" +} + +# Override the default configuration, if necessary. +# Make sure that bootstrap.conf is sourced from the current directory +# if we were invoked as "sh bootstrap". +case "$0" in + */*) test -r "$0.conf" && . "$0.conf" ;; + *) test -r "$0.conf" && . ./"$0.conf" ;; +esac + +if test "$vc_ignore" = auto; then + vc_ignore= + test -d .git && vc_ignore=.gitignore + test -d CVS && vc_ignore="$vc_ignore .cvsignore" +fi + +if test x"$gnulib_modules$gnulib_files$gnulib_extra_files" = x; then + use_gnulib=false +else + use_gnulib=true +fi + +# Translate configuration into internal form. + +# Parse options. + +for option +do + case $option in + --help) + usage + exit;; + --gnulib-srcdir=*) + GNULIB_SRCDIR=${option#--gnulib-srcdir=};; + --skip-po) + SKIP_PO=t;; + --force) + checkout_only_file=;; + --copy) + copy=true;; + --bootstrap-sync) + bootstrap_sync=true;; + --no-bootstrap-sync) + bootstrap_sync=false;; + --no-git) + use_git=false;; + *) + die "$option: unknown option";; + esac +done + +$use_git || test -d "$GNULIB_SRCDIR" \ + || die "Error: --no-git requires --gnulib-srcdir" + +if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then + die "Bootstrapping from a non-checked-out distribution is risky." +fi + +# Strip blank and comment lines to leave significant entries. +gitignore_entries() { + sed '/^#/d; /^$/d' "$@" +} + +# If $STR is not already on a line by itself in $FILE, insert it at the start. +# Entries are inserted at the start of the ignore list to ensure existing +# entries starting with ! are not overridden. Such entries support +# whitelisting exceptions after a more generic blacklist pattern. +insert_if_absent() { + file=$1 + str=$2 + test -f $file || touch $file + test -r $file || die "Error: failed to read ignore file: $file" + duplicate_entries=$(gitignore_entries $file | sort | uniq -d) + if [ "$duplicate_entries" ] ; then + die "Error: Duplicate entries in $file: " $duplicate_entries + fi + linesold=$(gitignore_entries $file | wc -l) + linesnew=$( { echo "$str"; cat $file; } | gitignore_entries | sort -u | wc -l) + if [ $linesold != $linesnew ] ; then + { echo "$str" | cat - $file > $file.bak && mv $file.bak $file; } \ + || die "insert_if_absent $file $str: failed" + fi +} + +# Adjust $PATTERN for $VC_IGNORE_FILE and insert it with +# insert_if_absent. +insert_vc_ignore() { + vc_ignore_file="$1" + pattern="$2" + case $vc_ignore_file in + *.gitignore) + # A .gitignore entry that does not start with '/' applies + # recursively to subdirectories, so prepend '/' to every + # .gitignore entry. + pattern=$(echo "$pattern" | sed s,^,/,);; + esac + insert_if_absent "$vc_ignore_file" "$pattern" +} + +# Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac. +found_aux_dir=no +grep '^[ ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'\])' configure.ac \ + >/dev/null && found_aux_dir=yes +grep '^[ ]*AC_CONFIG_AUX_DIR('"$build_aux"')' configure.ac \ + >/dev/null && found_aux_dir=yes +test $found_aux_dir = yes \ + || die "configure.ac lacks 'AC_CONFIG_AUX_DIR([$build_aux])'; add it" + +# If $build_aux doesn't exist, create it now, otherwise some bits +# below will malfunction. If creating it, also mark it as ignored. +if test ! -d $build_aux; then + mkdir $build_aux + for dot_ig in x $vc_ignore; do + test $dot_ig = x && continue + insert_vc_ignore $dot_ig $build_aux + done +fi + +# Note this deviates from the version comparison in automake +# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a +# but this should suffice as we won't be specifying old +# version formats or redundant trailing .0 in bootstrap.conf. +# If we did want full compatibility then we should probably +# use m4_version_compare from autoconf. +sort_ver() { # sort -V is not generally available + ver1="$1" + ver2="$2" + + # split on '.' and compare each component + i=1 + while : ; do + p1=$(echo "$ver1" | cut -d. -f$i) + p2=$(echo "$ver2" | cut -d. -f$i) + if [ ! "$p1" ]; then + echo "$1 $2" + break + elif [ ! "$p2" ]; then + echo "$2 $1" + break + elif [ ! "$p1" = "$p2" ]; then + if [ "$p1" -gt "$p2" ] 2>/dev/null; then # numeric comparison + echo "$2 $1" + elif [ "$p2" -gt "$p1" ] 2>/dev/null; then # numeric comparison + echo "$1 $2" + else # numeric, then lexicographic comparison + lp=$(printf "$p1\n$p2\n" | LANG=C sort -n | tail -n1) + if [ "$lp" = "$p2" ]; then + echo "$1 $2" + else + echo "$2 $1" + fi + fi + break + fi + i=$(($i+1)) + done +} + +get_version_sed=' +# Move version to start of line. +s/.*[v ]\([0-9]\)/\1/ + +# Skip lines that do not start with version. +/^[0-9]/!d + +# Remove characters after the version. +s/[^.a-z0-9-].*// + +# The first component must be digits only. +s/^\([0-9]*\)[a-z-].*/\1/ + +#the following essentially does s/5.005/5.5/ +s/\.0*\([1-9]\)/.\1/g +p +q' + +get_version() { + app=$1 + + $app --version >/dev/null 2>&1 || { $app --version; return 1; } + + $app --version 2>&1 | sed -n "$get_version_sed" +} + +check_versions() { + ret=0 + + while read app req_ver; do + # We only need libtoolize from the libtool package. + if test "$app" = libtool; then + app=libtoolize + fi + # Exempt git if --no-git is in effect. + if test "$app" = git; then + $use_git || continue + fi + # Honor $APP variables ($TAR, $AUTOCONF, etc.) + appvar=$(echo $app | LC_ALL=C tr '[a-z]-' '[A-Z]_') + test "$appvar" = TAR && appvar=AMTAR + case $appvar in + GZIP) ;; # Do not use $GZIP: it contains gzip options. + PERL::*) ;; # Keep perl modules as-is + *) eval "app=\${$appvar-$app}" ;; + esac + + # Handle the still-experimental Automake-NG programs specially. + # They remain named as the mainstream Automake programs ("automake", + # and "aclocal") to avoid gratuitous incompatibilities with + # pre-existing usages (by, say, autoreconf, or custom autogen.sh + # scripts), but correctly identify themselves (as being part of + # "GNU automake-ng") when asked their version. + case $app in + automake-ng|aclocal-ng) + app=${app%-ng} + ($app --version | grep '(GNU automake-ng)') >/dev/null 2>&1 || { + warn_ "Error: '$app' not found or not from Automake-NG" + ret=1 + continue + } ;; + # Another check is for perl modules. These can be written as + # e.g. perl::XML::XPath in case of XML::XPath module, etc. + perl::*) + # Extract module name + app="${app#perl::}" + if ! $PERL -m"$app" -e 'exit 0' >/dev/null 2>&1; then + warn_ "Error: perl module '$app' not found" + ret=1 + fi + continue + ;; + esac + if [ "$req_ver" = "-" ]; then + # Merely require app to exist; not all prereq apps are well-behaved + # so we have to rely on $? rather than get_version. + if ! check_exists --verbose $app; then + warn_ "Error: '$app' not found" + ret=1 + fi + else + # Require app to produce a new enough version string. + inst_ver=$(get_version $app) + if [ ! "$inst_ver" ]; then + warn_ "Error: '$app' not found" + ret=1 + else + latest_ver=$(sort_ver $req_ver $inst_ver | cut -d' ' -f2) + if [ ! "$latest_ver" = "$inst_ver" ]; then + warnf_ '%s\n' \ + "Error: '$app' version == $inst_ver is too old" \ + " '$app' version >= $req_ver is required" + ret=1 + fi + fi + fi + done + + return $ret +} + +print_versions() { + echo "Program Min_version" + echo "----------------------" + printf %s "$buildreq" + echo "----------------------" + # can't depend on column -t +} + +# Find sha1sum, named gsha1sum on MacPorts, shasum on Mac OS X 10.6. +# Also find the compatible sha1 utility on the BSDs +if test x"$SKIP_PO" = x; then + find_tool SHA1SUM sha1sum gsha1sum shasum sha1 +fi + +use_libtool=0 +# We'd like to use grep -E, to see if any of LT_INIT, +# AC_PROG_LIBTOOL, AM_PROG_LIBTOOL is used in configure.ac, +# but that's not portable enough (e.g., for Solaris). +grep '^[ ]*A[CM]_PROG_LIBTOOL' configure.ac >/dev/null \ + && use_libtool=1 +grep '^[ ]*LT_INIT' configure.ac >/dev/null \ + && use_libtool=1 +if test $use_libtool = 1; then + find_tool LIBTOOLIZE glibtoolize libtoolize +fi + +# gnulib-tool requires at least automake and autoconf. +# If either is not listed, add it (with minimum version) as a prerequisite. +case $buildreq in + *automake*) ;; + *) buildreq="automake 1.9 +$buildreq" ;; +esac +case $buildreq in + *autoconf*) ;; + *) buildreq="autoconf 2.59 +$buildreq" ;; +esac + +# When we can deduce that gnulib-tool will require patch, +# and when patch is not already listed as a prerequisite, add it, too. +if test -d "$local_gl_dir" \ + && ! find "$local_gl_dir" -name '*.diff' -exec false {} +; then + case $buildreq in + *patch*) ;; + *) buildreq="patch - +$buildreq" ;; + esac +fi + +if ! printf "$buildreq" | check_versions; then + echo >&2 + if test -f README-prereq; then + die "See README-prereq for how to get the prerequisite programs" + else + die "Please install the prerequisite programs" + fi +fi + +# Warn the user if autom4te appears to be broken; this causes known +# issues with at least gettext 0.18.3. +probe=$(echo 'm4_quote([hi])' | autom4te -l M4sugar -t 'm4_quote:$%' -) +if test "x$probe" != xhi; then + warn_ "WARNING: your autom4te wrapper eats stdin;" + warn_ "if bootstrap fails, consider upgrading your autotools" +fi + +echo "$0: Bootstrapping from checked-out $package sources..." + +# See if we can use gnulib's git-merge-changelog merge driver. +if $use_git && test -d .git && check_exists git; then + if git config merge.merge-changelog.driver >/dev/null ; then + : + elif check_exists git-merge-changelog; then + echo "$0: initializing git-merge-changelog driver" + git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver' + git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B' + else + echo "$0: consider installing git-merge-changelog from gnulib" + fi +fi + + +cleanup_gnulib() { + status=$? + rm -fr "$gnulib_path" + exit $status +} + +git_modules_config () { + test -f .gitmodules && git config --file .gitmodules "$@" +} + +if $use_gnulib; then + if $use_git; then + gnulib_path=$(git_modules_config submodule.gnulib.path) + test -z "$gnulib_path" && gnulib_path=gnulib + fi + + # Get gnulib files. Populate $GNULIB_SRCDIR, possibly updating a + # submodule, for use in the rest of the script. + + case ${GNULIB_SRCDIR--} in + -) + # Note that $use_git is necessarily true in this case. + if git_modules_config submodule.gnulib.url >/dev/null; then + echo "$0: getting gnulib files..." + git submodule init -- "$gnulib_path" || exit $? + git submodule update -- "$gnulib_path" || exit $? + + elif [ ! -d "$gnulib_path" ]; then + echo "$0: getting gnulib files..." + + trap cleanup_gnulib 1 2 13 15 + + shallow= + if test -z "$GNULIB_REVISION"; then + git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2' + fi + git clone $shallow ${GNULIB_URL:-$default_gnulib_url} "$gnulib_path" \ + || cleanup_gnulib + + trap - 1 2 13 15 + fi + GNULIB_SRCDIR=$gnulib_path + ;; + *) + # Use GNULIB_SRCDIR directly or as a reference. + if $use_git && test -d "$GNULIB_SRCDIR"/.git && \ + git_modules_config submodule.gnulib.url >/dev/null; then + echo "$0: getting gnulib files..." + if git submodule -h|grep -- --reference > /dev/null; then + # Prefer the one-liner available in git 1.6.4 or newer. + git submodule update --init --reference "$GNULIB_SRCDIR" \ + "$gnulib_path" || exit $? + else + # This fallback allows at least git 1.5.5. + if test -f "$gnulib_path"/gnulib-tool; then + # Since file already exists, assume submodule init already complete. + git submodule update -- "$gnulib_path" || exit $? + else + # Older git can't clone into an empty directory. + rmdir "$gnulib_path" 2>/dev/null + git clone --reference "$GNULIB_SRCDIR" \ + "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \ + && git submodule init -- "$gnulib_path" \ + && git submodule update -- "$gnulib_path" \ + || exit $? + fi + fi + GNULIB_SRCDIR=$gnulib_path + fi + ;; + esac + + if test -d "$GNULIB_SRCDIR"/.git && test -n "$GNULIB_REVISION" \ + && ! git_modules_config submodule.gnulib.url >/dev/null; then + (cd "$GNULIB_SRCDIR" && git checkout "$GNULIB_REVISION") || cleanup_gnulib + fi + + # $GNULIB_SRCDIR now points to the version of gnulib to use, and + # we no longer need to use git or $gnulib_path below here. + + if $bootstrap_sync; then + cmp -s "$0" "$GNULIB_SRCDIR/build-aux/bootstrap" || { + echo "$0: updating bootstrap and restarting..." + case $(sh -c 'echo "$1"' -- a) in + a) ignored=--;; + *) ignored=ignored;; + esac + exec sh -c \ + 'cp "$1" "$2" && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \ + $ignored "$GNULIB_SRCDIR/build-aux/bootstrap" \ + "$0" "$@" --no-bootstrap-sync + } + fi + + gnulib_tool=$GNULIB_SRCDIR/gnulib-tool + <$gnulib_tool || exit $? +fi + +# Get translations. + +download_po_files() { + subdir=$1 + domain=$2 + echo "$me: getting translations into $subdir for $domain..." + cmd=$(printf "$po_download_command_format" "$subdir" "$domain") + eval "$cmd" +} + +# Mirror .po files to $po_dir/.reference and copy only the new +# or modified ones into $po_dir. Also update $po_dir/LINGUAS. +# Note po files that exist locally only are left in $po_dir but will +# not be included in LINGUAS and hence will not be distributed. +update_po_files() { + # Directory containing primary .po files. + # Overwrite them only when we're sure a .po file is new. + po_dir=$1 + domain=$2 + + # Mirror *.po files into this dir. + # Usually contains *.s1 checksum files. + ref_po_dir="$po_dir/.reference" + + test -d $ref_po_dir || mkdir $ref_po_dir || return + download_po_files $ref_po_dir $domain \ + && ls "$ref_po_dir"/*.po 2>/dev/null | + sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return + + langs=$(cd $ref_po_dir && echo *.po | sed 's/\.po//g') + test "$langs" = '*' && langs=x + for po in $langs; do + case $po in x) continue;; esac + new_po="$ref_po_dir/$po.po" + cksum_file="$ref_po_dir/$po.s1" + if ! test -f "$cksum_file" || + ! test -f "$po_dir/$po.po" || + ! $SHA1SUM -c "$cksum_file" < "$new_po" > /dev/null 2>&1; then + echo "$me: updated $po_dir/$po.po..." + cp "$new_po" "$po_dir/$po.po" \ + && $SHA1SUM < "$new_po" > "$cksum_file" || return + fi + done +} + +case $SKIP_PO in +'') + if test -d po; then + update_po_files po $package || exit + fi + + if test -d runtime-po; then + update_po_files runtime-po $package-runtime || exit + fi;; +esac + +symlink_to_dir() +{ + src=$1/$2 + dst=${3-$2} + + test -f "$src" && { + + # If the destination directory doesn't exist, create it. + # This is required at least for "lib/uniwidth/cjk.h". + dst_dir=$(dirname "$dst") + if ! test -d "$dst_dir"; then + mkdir -p "$dst_dir" + + # If we've just created a directory like lib/uniwidth, + # tell version control system(s) it's ignorable. + # FIXME: for now, this does only one level + parent=$(dirname "$dst_dir") + for dot_ig in x $vc_ignore; do + test $dot_ig = x && continue + ig=$parent/$dot_ig + insert_vc_ignore $ig "${dst_dir##*/}" + done + fi + + if $copy; then + { + test ! -h "$dst" || { + echo "$me: rm -f $dst" && + rm -f "$dst" + } + } && + test -f "$dst" && + cmp -s "$src" "$dst" || { + echo "$me: cp -fp $src $dst" && + cp -fp "$src" "$dst" + } + else + # Leave any existing symlink alone, if it already points to the source, + # so that broken build tools that care about symlink times + # aren't confused into doing unnecessary builds. Conversely, if the + # existing symlink's timestamp is older than the source, make it afresh, + # so that broken tools aren't confused into skipping needed builds. See + # . + test -h "$dst" && + src_ls=$(ls -diL "$src" 2>/dev/null) && set $src_ls && src_i=$1 && + dst_ls=$(ls -diL "$dst" 2>/dev/null) && set $dst_ls && dst_i=$1 && + test "$src_i" = "$dst_i" && + both_ls=$(ls -dt "$src" "$dst") && + test "X$both_ls" = "X$dst$nl$src" || { + dot_dots= + case $src in + /*) ;; + *) + case /$dst/ in + *//* | */../* | */./* | /*/*/*/*/*/) + die "invalid symlink calculation: $src -> $dst";; + /*/*/*/*/) dot_dots=../../../;; + /*/*/*/) dot_dots=../../;; + /*/*/) dot_dots=../;; + esac;; + esac + + echo "$me: ln -fs $dot_dots$src $dst" && + ln -fs "$dot_dots$src" "$dst" + } + fi + } +} + +version_controlled_file() { + parent=$1 + file=$2 + if test -d .git; then + git rm -n "$file" > /dev/null 2>&1 + elif test -d .svn; then + svn log -r HEAD "$file" > /dev/null 2>&1 + elif test -d CVS; then + grep -F "/${file##*/}/" "$parent/CVS/Entries" 2>/dev/null | + grep '^/[^/]*/[0-9]' > /dev/null + else + warn_ "no version control for $file?" + false + fi +} + +# NOTE: we have to be careful to run both autopoint and libtoolize +# before gnulib-tool, since gnulib-tool is likely to provide newer +# versions of files "installed" by these two programs. +# Then, *after* gnulib-tool (see below), we have to be careful to +# run autoreconf in such a way that it does not run either of these +# two just-pre-run programs. + +# Import from gettext. +with_gettext=yes +grep '^[ ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \ + with_gettext=no + +if test $with_gettext = yes || test $use_libtool = 1; then + + tempbase=.bootstrap$$ + trap "rm -f $tempbase.0 $tempbase.1" 1 2 13 15 + + > $tempbase.0 > $tempbase.1 && + find . ! -type d -print | sort > $tempbase.0 || exit + + if test $with_gettext = yes; then + # Released autopoint has the tendency to install macros that have been + # obsoleted in current gnulib, so run this before gnulib-tool. + echo "$0: $AUTOPOINT --force" + $AUTOPOINT --force || exit + fi + + # Autoreconf runs aclocal before libtoolize, which causes spurious + # warnings if the initial aclocal is confused by the libtoolized + # (or worse out-of-date) macro directory. + # libtoolize 1.9b added the --install option; but we support back + # to libtoolize 1.5.22, where the install action was default. + if test $use_libtool = 1; then + install= + case $($LIBTOOLIZE --help) in + *--install*) install=--install ;; + esac + echo "running: $LIBTOOLIZE $install --copy" + $LIBTOOLIZE $install --copy + fi + + find . ! -type d -print | sort >$tempbase.1 + old_IFS=$IFS + IFS=$nl + for file in $(comm -13 $tempbase.0 $tempbase.1); do + IFS=$old_IFS + parent=${file%/*} + version_controlled_file "$parent" "$file" || { + for dot_ig in x $vc_ignore; do + test $dot_ig = x && continue + ig=$parent/$dot_ig + insert_vc_ignore "$ig" "${file##*/}" + done + } + done + IFS=$old_IFS + + rm -f $tempbase.0 $tempbase.1 + trap - 1 2 13 15 +fi + +# Import from gnulib. + +if $use_gnulib; then + gnulib_tool_options="\ + --no-changelog\ + --aux-dir=$build_aux\ + --doc-base=$doc_base\ + --lib=$gnulib_name\ + --m4-base=$m4_base/\ + --source-base=$source_base/\ + --tests-base=$tests_base\ + --local-dir=$local_gl_dir\ + $gnulib_tool_option_extras\ + " + if test $use_libtool = 1; then + case "$gnulib_tool_options " in + *' --libtool '*) ;; + *) gnulib_tool_options="$gnulib_tool_options --libtool" ;; + esac + fi + echo "$0: $gnulib_tool $gnulib_tool_options --import ..." + $gnulib_tool $gnulib_tool_options --import $gnulib_modules \ + || die "gnulib-tool failed" + + for file in $gnulib_files; do + symlink_to_dir "$GNULIB_SRCDIR" $file \ + || die "failed to symlink $file" + done +fi + +bootstrap_post_import_hook \ + || die "bootstrap_post_import_hook failed" + +# Don't proceed if there are uninitialized submodules. In particular, +# the next step will remove dangling links, which might be links into +# uninitialized submodules. +# +# Uninitialized submodules are listed with an initial dash. +if $use_git && git submodule | grep '^-' >/dev/null; then + die "some git submodules are not initialized. " \ + "Run 'git submodule init' and bootstrap again." +fi + +# Remove any dangling symlink matching "*.m4" or "*.[ch]" in some +# gnulib-populated directories. Such .m4 files would cause aclocal to fail. +# The following requires GNU find 4.2.3 or newer. Considering the usual +# portability constraints of this script, that may seem a very demanding +# requirement, but it should be ok. Ignore any failure, which is fine, +# since this is only a convenience to help developers avoid the relatively +# unusual case in which a symlinked-to .m4 file is git-removed from gnulib +# between successive runs of this script. +find "$m4_base" "$source_base" \ + -depth \( -name '*.m4' -o -name '*.[ch]' \) \ + -type l -xtype l -delete > /dev/null 2>&1 + +# Invoke autoreconf with --force --install to ensure upgrades of tools +# such as ylwrap. +AUTORECONFFLAGS="--verbose --install --force -I $m4_base $ACLOCAL_FLAGS" + +# Some systems (RHEL 5) are using ancient autotools, for which the +# --no-recursive option had not been invented. Detect that lack and +# omit the option when it's not supported. FIXME in 2017: remove this +# hack when RHEL 5 autotools are updated, or when they become irrelevant. +case $($AUTORECONF --help) in + *--no-recursive*) AUTORECONFFLAGS="$AUTORECONFFLAGS --no-recursive";; +esac + +# Tell autoreconf not to invoke autopoint or libtoolize; they were run above. +echo "running: AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS" +AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS \ + || die "autoreconf failed" + +# Get some extra files from gnulib, overriding existing files. +for file in $gnulib_extra_files; do + case $file in + */INSTALL) dst=INSTALL;; + build-aux/*) dst=$build_aux/${file#build-aux/};; + *) dst=$file;; + esac + symlink_to_dir "$GNULIB_SRCDIR" $file $dst \ + || die "failed to symlink $file" +done + +if test $with_gettext = yes; then + # Create gettext configuration. + echo "$0: Creating po/Makevars from po/Makevars.template ..." + rm -f po/Makevars + sed ' + /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/ + /^COPYRIGHT_HOLDER *=/s/=.*/= '"$COPYRIGHT_HOLDER"'/ + /^MSGID_BUGS_ADDRESS *=/s|=.*|= '"$MSGID_BUGS_ADDRESS"'| + /^XGETTEXT_OPTIONS *=/{ + s/$/ \\/ + a\ + '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+} + } + ' po/Makevars.template >po/Makevars \ + || die 'cannot generate po/Makevars' + + # If the 'gettext' module is in use, grab the latest Makefile.in.in. + # If only the 'gettext-h' module is in use, assume autopoint already + # put the correct version of this file into place. + case $gnulib_modules in + *gettext-h*) ;; + *gettext*) + cp $GNULIB_SRCDIR/build-aux/po/Makefile.in.in po/Makefile.in.in \ + || die "cannot create po/Makefile.in.in" + ;; + esac + + if test -d runtime-po; then + # Similarly for runtime-po/Makevars, but not quite the same. + rm -f runtime-po/Makevars + sed ' + /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/ + /^subdir *=.*/s/=.*/= runtime-po/ + /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/ + /^XGETTEXT_OPTIONS *=/{ + s/$/ \\/ + a\ + '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+} + } + ' po/Makevars.template >runtime-po/Makevars \ + || die 'cannot generate runtime-po/Makevars' + + # Copy identical files from po to runtime-po. + (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po) + fi +fi + +bootstrap_epilogue + +echo "$0: done. Now you can run './configure'." + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/bootstrap.conf b/bootstrap.conf new file mode 100644 index 0000000..6b043fc --- /dev/null +++ b/bootstrap.conf @@ -0,0 +1,101 @@ +# Bootstrap configuration. + +# Copyright (C) 2006-2019 Free Software Foundation, Inc. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +GNULIB_REVISION=d271f868a8df9bbec29049d01e056481b7a1a263 + +# gnulib modules used by this package. +# mbswidth is used by gnulib-fix-width.diff's changes to argp rather than +# directly. +gnulib_modules=" + argp + base64 + error + fnmatch + getdelim + getline + gettext-h + gitlog-to-changelog + mbswidth + progname + realloc-gnu + regex + save-cwd +" + +gnulib_tool_option_extras="\ + --no-conditional-dependencies \ + --no-vc-files \ +" + +gnulib_name=libgnu +source_base=grub-core/lib/gnulib +gnulib_extra_files=" + build-aux/install-sh + build-aux/mdate-sh + build-aux/texinfo.tex + build-aux/depcomp + build-aux/config.guess + build-aux/config.sub +" + +# Additional xgettext options to use. Use "\\\newline" to break lines. +XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\ + --from-code=UTF-8\\\ +' + +checkout_only_file= +copy=true +vc_ignore= + +SKIP_PO=t + +# Build prerequisites +buildreq="\ +autoconf 2.63 +automake 1.11 +gettext 0.18.3 +git 1.5.5 +tar - +" + +# bootstrap doesn't give us a reasonable way to stop Automake from +# overwriting this, so we just copy our version aside and put it back later. +cp -a INSTALL INSTALL.grub + +bootstrap_post_import_hook () { + set -e + for patchname in fix-base64 fix-null-deref fix-null-state-deref fix-regcomp-uninit-token \ + fix-regexec-null-deref fix-uninit-structure fix-unused-value fix-width no-abort; do + patch -d grub-core/lib/gnulib -p2 \ + < "grub-core/lib/gnulib-patches/$patchname.patch" + done + for patchname in \ + 0001-Support-POTFILES-shell \ + 0002-Handle-gettext_printf-shell-function \ + 0003-Make-msgfmt-output-in-little-endian \ + 0004-Use-SHELL-rather-than-bin-sh; do + patch -d po -p3 \ + < "po/gettext-patches/$patchname.patch" + done + FROM_BOOTSTRAP=1 ./autogen.sh + set +e # bootstrap expects this +} + +bootstrap_epilogue () { + mv INSTALL.grub INSTALL +} diff --git a/gitignore b/gitignore index 819cd18..f6a1bd0 100644 --- a/gitignore +++ b/gitignore @@ -1,237 +1,277 @@ -*~ -00_header -10_* -20_linux_xen -30_os-prober -40_custom -41_custom +# +# Ignore patterns in this directory and all subdirectories. +# *.1 *.8 -ABOUT-NLS -aclocal.m4 -ahci_test -ascii.bitmaps -ascii.h -autom4te.cache -build-aux -build-grub-gen-asciih -build-grub-gen-widthspec -build-grub-mkfont -cdboot_test -cmp_test -config.cache -config.guess -config.h -config-util.h -config-util.h.in -config.log -config.status -config.sub -configure -core_compress_test -DISTLIST -docs/*.info -docs/stamp-vti -docs/version.texi -ehci_test -example_grub_script_test -example_scripted_test -example_unit_test +*.a *.exec *.exec.exe -fddboot_test -genkernsyms.sh -gensymlist.sh -gentrigtables -gentrigtables.exe -gettext_strings_test -/gnulib -grub-bin2h -/grub-bios-setup -/grub-bios-setup.exe -grub_cmd_date -grub_cmd_echo -grub_cmd_regexp -grub_cmd_set_date -grub_cmd_sleep -/grub-editenv -/grub-editenv.exe -grub-emu -grub-emu-lite -grub-emu.exe -grub-emu-lite.exe -grub_emu_init.c -grub_emu_init.h -/grub-file -/grub-file.exe -grub-fstest -grub-fstest.exe -grub_fstest_init.c -grub_fstest_init.h -grub_func_test -grub-install -grub-install.exe -grub-kbdcomp -/grub-macbless -/grub-macbless.exe -grub-macho2img -/grub-menulst2cfg -/grub-menulst2cfg.exe -/grub-mk* -grub-mount -/grub-ofpathname -/grub-ofpathname.exe -grub-core/build-grub-pe2elf.exe -/grub-probe -/grub-probe.exe -grub_probe_init.c -grub_probe_init.h -/grub-reboot -grub_script_blanklines -grub_script_blockarg -grub_script_break -grub-script-check -grub-script-check.exe -grub_script_check_init.c -grub_script_check_init.h -grub_script_comments -grub_script_continue -grub_script_dollar -grub_script_echo1 -grub_script_echo_keywords -grub_script_escape_comma -grub_script_eval -grub_script_expansion -grub_script_final_semicolon -grub_script_for1 -grub_script_functions -grub_script_gettext -grub_script_if -grub_script_leading_whitespace -grub_script_no_commands -grub_script_not -grub_script_return -grub_script_setparams -grub_script_shift -grub_script_strcmp -grub_script_test -grub_script_vars1 -grub_script_while1 -grub_script.tab.c -grub_script.tab.h -grub_script.yy.c -grub_script.yy.h -grub-set-default -grub_setup_init.c -grub_setup_init.h -grub-shell -grub-shell-tester -grub-sparc64-setup -grub-sparc64-setup.exe -/grub-syslinux2cfg -/grub-syslinux2cfg.exe -gzcompress_test -hddboot_test -help_test -*.img *.image *.image.exe -include/grub/cpu -include/grub/machine -INSTALL.grub -install-sh -lib/libgcrypt-grub -libgrub_a_init.c +*.img *.log *.lst -lzocompress_test *.marker -Makefile -/m4 *.mod -mod-*.c -missing -netboot_test *.o -*.a -ohci_test -partmap_test -pata_test *.pf2 *.pp -po/*.mo -po/grub.pot -po/Makefile.in.in -po/Makevars -po/Makevars.template -po/POTFILES -po/Rules-quot -po/stamp-po -printf_test -priority_queue_unit_test -pseries_test -stamp-h -stamp-h1 -stamp-h.in -symlist.c -symlist.h -trigtables.c *.trs -uhci_test -update-grub_lib -unidata.c -xzcompress_test -Makefile.in +*~ +.deps-core/ +.deps-util/ +.deps/ +.dirstamp +DISTLIST GPATH GRTAGS GSYMS GTAGS -compile -depcomp +Makefile +Makefile.in +ascii.bitmaps +genkernsyms.sh +gensymlist.sh +grub-bin2h +grub-emu +grub-emu-lite +grub-emu-lite.exe +grub-emu.exe +grub-macho2img +grub_emu_init.c +grub_emu_init.h +grub_probe_init.c +grub_probe_init.h +grub_script.tab.c +grub_script.tab.h +grub_script.yy.c +grub_script.yy.h +grub_script_check_init.c +grub_script_check_init.h +grub_setup_init.c +grub_setup_init.h mdate-sh -texinfo.tex -grub-core/lib/libgcrypt-grub -.deps -.deps-util -.deps-core -.dirstamp -Makefile.util.am -contrib -grub-core/bootinfo.txt -grub-core/Makefile.core.am -grub-core/Makefile.gcry.def -grub-core/contrib -grub-core/gdb_grub -grub-core/genmod.sh -grub-core/gensyminfo.sh -grub-core/gmodule.pl -grub-core/grub.chrp -grub-core/modinfo.sh -grub-core/*.module -grub-core/*.module.exe -grub-core/*.pp -grub-core/kernel.img.bin -util/bash-completion.d/grub -grub-core/lib/gnulib -grub-core/rs_decoder.h +mod-*.c +update-grub_lib widthspec.bin -widthspec.h -docs/stamp-1 -docs/version-dev.texi -Makefile.utilgcry.def -po/*.po -po/*.gmo -po/LINGUAS -po/remove-potcdate.sed -include/grub/gcrypt/gcrypt.h -include/grub/gcrypt/g10lib.h -po/POTFILES.in -po/POTFILES-shell.in -/grub-glue-efi -/grub-render-label -/grub-glue-efi.exe -/grub-render-label.exe + +# +# Ignore patterns relative to this .gitignore file's directory. +# +/00_header +/10_* +/20_linux_xen +/30_os-prober +/30_uefi-firmware +/40_custom +/41_custom +/ABOUT-NLS +/ChangeLog +/INSTALL.grub +/Makefile.util.am +/Makefile.utilgcry.def +/aclocal.m4 +/ahci_test +/ascii.h +/autom4te.cache/ +/btrfs_test +/build-aux/ +/build-grub-gen-asciih +/build-grub-gen-widthspec +/build-grub-mkfont +/cdboot_test +/cmp_test +/compile +/config-util.h +/config-util.h.in +/config.cache +/config.guess +/config.h +/config.log +/config.status +/config.sub +/configure +/contrib +/core_compress_test +/cpio_test +/date_test +/depcomp +/docs/*.info +/docs/*.info-[0-9]* +/docs/stamp-1 +/docs/stamp-vti +/docs/version-dev.texi +/docs/version.texi +/ehci_test +/example_grub_script_test +/example_scripted_test +/example_unit_test +/exfat_test +/ext234_test +/f2fs_test +/fat_test +/fddboot_test +/file_filter_test /garbage-gen /garbage-gen.exe +/gettext_strings_test +/gnulib/ +/grub-2.[0-9]*/ +/grub-2.[0-9]*.tar.gz +/grub-bios-setup +/grub-bios-setup.exe +/grub-core/*.module +/grub-core/*.module.exe +/grub-core/*.pp +/grub-core/Makefile.core.am +/grub-core/Makefile.gcry.def +/grub-core/bootinfo.txt +/grub-core/build-grub-module-verifier +/grub-core/build-grub-pe2elf.exe +/grub-core/contrib +/grub-core/gdb_grub +/grub-core/genmod.sh +/grub-core/gensyminfo.sh +/grub-core/gentrigtables +/grub-core/gentrigtables.exe +/grub-core/gmodule.pl +/grub-core/grub.chrp +/grub-core/kernel.img.bin +/grub-core/lib/gnulib +/grub-core/lib/libgcrypt-grub +/grub-core/modinfo.sh +/grub-core/rs_decoder.h +/grub-core/symlist.c +/grub-core/symlist.h +/grub-core/trigtables.c +/grub-core/unidata.c +/grub-editenv +/grub-editenv.exe +/grub-file +/grub-file.exe /grub-fs-tester -grub-core/build-grub-module-verifier +/grub-fstest +/grub-fstest.exe +/grub-glue-efi +/grub-glue-efi.exe +/grub-install +/grub-install.exe +/grub-kbdcomp +/grub-macbless +/grub-macbless.exe +/grub-menulst2cfg +/grub-menulst2cfg.exe +/grub-mk* +/grub-mount +/grub-ofpathname +/grub-ofpathname.exe +/grub-probe +/grub-probe.exe +/grub-reboot +/grub-render-label +/grub-render-label.exe +/grub-script-check +/grub-script-check.exe +/grub-set-default +/grub-shell +/grub-shell-tester +/grub-sparc64-setup +/grub-sparc64-setup.exe +/grub-syslinux2cfg +/grub-syslinux2cfg.exe +/grub_cmd_date +/grub_cmd_echo +/grub_cmd_regexp +/grub_cmd_set_date +/grub_cmd_sleep +/grub_cmd_test +/grub_cmd_tr +/grub_fstest_init.c +/grub_fstest_init.h +/grub_func_test +/grub_script_blanklines +/grub_script_blockarg +/grub_script_break +/grub_script_comments +/grub_script_continue +/grub_script_dollar +/grub_script_echo1 +/grub_script_echo_keywords +/grub_script_escape_comma +/grub_script_eval +/grub_script_expansion +/grub_script_final_semicolon +/grub_script_for1 +/grub_script_functions +/grub_script_gettext +/grub_script_if +/grub_script_leading_whitespace +/grub_script_no_commands +/grub_script_not +/grub_script_return +/grub_script_setparams +/grub_script_shift +/grub_script_strcmp +/grub_script_test +/grub_script_vars1 +/grub_script_while1 +/gzcompress_test +/hddboot_test +/help_test +/hfs_test +/hfsplus_test +/include/grub/cpu +/include/grub/gcrypt/g10lib.h +/include/grub/gcrypt/gcrypt.h +/include/grub/machine +/install-sh +/iso9660_test +/jfs_test +/lib/libgcrypt-grub +/libgrub_a_init.c +/lzocompress_test +/m4/ +/minixfs_test +/missing +/netboot_test +/nilfs2_test +/ntfs_test +/ohci_test +/partmap_test +/pata_test +/po/*.gmo +/po/*.mo +/po/*.po +/po/LINGUAS +/po/Makefile.in.in +/po/Makevars +/po/Makevars.template +/po/POTFILES +/po/POTFILES-shell.in +/po/POTFILES.in +/po/Rules-quot +/po/grub.pot +/po/remove-potcdate.sed +/po/stamp-po +/printf_test +/priority_queue_unit_test +/pseries_test +/reiserfs_test +/romfs_test +/squashfs_test +/stamp-h +/stamp-h.in +/stamp-h1 +/syslinux_test +/tar_test +/test_sha512sum +/test_unset +/tests/syslinux/ubuntu10.04_grub.cfg +/texinfo.tex +/udf_test +/uhci_test +/util/bash-completion.d/grub +/widthspec.h +/xfs_test +/xzcompress_test +/zfs_test diff --git a/gnulib-fixes.tar.gz b/gnulib-fixes.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..9b2472311a1a5a0a02b5d34e8e54000522f156f8 GIT binary patch literal 7104719 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

uc+4&VEVQ_1bmh+wVOVaY(8> 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≫R`dL_ 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%0D%dZA-0p=Uk>rjZY@iPLJxqpQkO%e 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≪I{M`01}R+D1CMPNa$7`L+2+^qfa(XvDhrf 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

1_s@fOA+NEgxNt(rt)uLuP^YQ& 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

Wd=l@Wko8?l@q}xH6@fapV|%n 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

Rp$Fwr8TqE4@=etm~ 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 nga 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≺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 f|0aqZoaI`St`q$>M=w`oWwW|rr7-?SQ2 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%0AmvpaW;* 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

+Z0MLZY#)(Ft>)za!B))AYqFzoDs)$4HY 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 z%0A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£A51z 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%0DQyNu%_yo8 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

YkpB8Z3E5 zR7<0j+iKB!+}^Zm)Og7&_TT*PPxf2Q)Te18y2kH;|DD>?Y|b18Nf`7>gSJQcl8`4} zzL}<^m{5Ln{;yh6+KK@qROW?KEtw2c99<{OITz`Tdop{LGUf5fU&H5+`6eewVMfB!!x6U_fpo+r^?o4aXilrhQ}o|CjF39Ur5P-|YYF}zVL z8X(bXjJ%@;0Kuosc*ac zZyH-i+ix3z4dCDZcGMdgM5^Cq1Gm8Y{jI&-H~aOS#$jfVC1o92`(QL|;7lex__M=x zAWbN{VAj}lqGJY-AhbkJm=w^Xcx;P=F}NJJ+Ilk)Ec~M|I)rJ{)}~qxSC9)7eyl`H z;Ym@cd7@pPAhtyI-5h<)=*ppbG28TO2&vxnKgZe-Evg$qt$8Ww4d|e`rHmcjULSI#a29gz9 zGV6#+p+6Y5ySN!Z-Gb1>`_ZL`dlHnBm~$_Q7?mIi4#Z7i4G0`rxOz(xmy^sNSz)w7 znT9U&+aJGMt~%v%h$}2Tb~KLsm-UTivs@``yx+^wuQS}N>6VJ(mxpVJ%hihb)%2>x zVy$`lp6`3ie~}f}#amhNO#G4+JqbrtY^s{FqHI%EEJ-+`qJ%0ddb*~l*c5MNMF~e% zlyGFls_t#8=B~Rn)!WlT`K*#xy{#5EJhz~F+pLsY<&y5LtSDQN6-%mrTv0-m6?JcA z#g^=!sCX*-Cn{FOFIiEyDJ#~*TUoIn=Sx(SYa}aHR83jYmFp=gmgUGqML7~#v83A+ z73ElDML9#VqMRXFv8Bf;D#|uxMTs@CqI@SSmUVCCvMB5mv#YRA%&x*dF}vT>ddh?Y zM@$c_L=lQ2ynbECe9Zlt`x{9Y&PV5eonPs{zd2c>KrtwQB0o|Qb~fuoyVo3wuu2sl<0uzuIEGWD`Ir2> z@B3|ixLP_RrJ02t3F83_GsXXfNutf3h_}e9b?J!=fGX@%oBo4T;>v=t!?z~&$52_Y zq(N5`{j5C7&G4H7zY*f+OQ%%8zlAJhU)vGOwK*M?+|R>)C-WtTdtow}%$F>Dgc$@l z{YYT4ysz<;;AJwUA}R3nPQ46>!eJhTQ1X8Tybbk7VcjfNu!aSvn%ISh13YlHd zmoLBV{s`XkyFq|H6veyIB`vkXFjcAl{qkF8cXcBxe=%e{Daj{jFYEk0-nRO`jxJx& z71p!#oS#+YqnPSBqn|I(FJmM}nRad~_bRuY+sV~)uXAs5Z*wQP4~5)^qUZ_7wrQ9U z)}KE8Bh*PFB<|6li!JBR`P!Em{`q_FQ7&Puf2@4H18`+Q*DjoiGqG*k&Lk7twr$(C zZQJ&QCz{x{ZRcjb_ultb{Z;?1dQNrkK2NV+-KY1evwL-~jpi_^GU=Y|*y1=TGg*F= zwZwTOJ?Wmg0dxB7^8*o=h5Ff+T9pF0c>9YxKO72`Mu8s%J#j=h`sq8y;!^F`eW^>x z5wMPsfp93mWc%^d^B?+A|P#y==Z$`{N5sTMg(Y|n+Hw0DU782|o>rMDGFb53f8W(5w zyuvS$hW4Kb^&Gwk=K{$+$_z0ppuDUMi=Us;?s8*4ir=nMt znkg#Ft}2w3pB7m?&g>TwstS6Rsw&6kk>Oqy+=W;8+)_{ZoeTJHt^m&vuB%ngQ1Mm`n)H{5{K9Yv zlp*aIV?+fTn>2={aICx%tiGcCt{N(uvhaezW(Aji)z8R9?eehxKTrXyLXM8tLv;!r{{27&@IWq?NFu`bNzZugZVQR?iKSmz9#1 zm740!`_)Ltz5YXO_}2x}aOr=*&P)JkBrGd^ z2Xw}NemK)*A#J24A+WoTFOy<*T|w$q@kZA*W8NzKrY})+_GX2XtiSw}^C2Cs9%2W2F!B<_BK5FtT zbmyzB^`c$d=~CauR*D59@7UsQgiL< zy>EBMp>IbbybX`Dndg;{Q_gsCuN!9Kdi?QQYx*=r@zoZEH~bNd?@p4+r-NJ5!{LU? z-t*EPvYh&))jN8zby@2ggy+@P1^$=t?~yX@J1l&cCrRNV%rAaE3#+f!5Ikfr4;-E$ z>rmMGbc9AaucNO|SGnE4I);{4VHsb|^_{)lPd*U&x1JDdnw}5CnuwbbWmp+R>tQSN zq5-^nOp`uW5P5&Qq*y}{i;DtL2SqFZEq5rxRvo-gs`ybrxV_uT6-MB)rg zz95Ed6cMWPwBDq$U$w@#V1bVE~r%GVsaMq5DGUOUUx541#rt4)5@M*jK7I^%j8gYT9V}! zEKw<*aJQb|;Be!cJ1P3Ll z!TvBqi1!H_;w}1n=`Eb~sRjEgOu(kQ9DjVp-j3}Y2V$cvC&I~)X_AH+kc7qfd~fvh z{Aa~v(tX zqwkC4G|`f4NT5vMmj+{BMWUPL;51$&2xhE%^2VXrxeJ%-{XB;)k>WuF*A>s;OF7hD zCe8dt9m~ka)8MpAYv92&B@o7sbVn$Q;snkF$n9D}@=H#{_8*R6yt;Vd=u>PJ*x1;R zaa(R7>u)S9ScaYRO7CUnH%I~#dj%o_{+FhDptjZwr5X?C|P>|f??k$44 zhVJZX9fpNB;ieIWus5s8rjRSR$1`$G(caBDqLiBEunnJD`z7dbwksdT8H>6+gSd;k z96Wc(4~bX1SpgkfJ?5~6K=K`=?JZ%UBCo%xHc~j@g@Amg;pHjj z{rL+|*inj#=x}ar|FYaQXieZr4bR#7n^FLdZD#UA^Jm_r zw`M+aL0RO1J%5qN)>IlHT&N&Ttq701T?pNGWkLFgohFq=0s3ab?m_#O* zI)fLzH1C|l)BeSzLTST?vm`s%c7B22VZXPr?MXZ%>d1T?+J$ZqDVEj{o)@K<)}-%L zpSAD7X)hn4;5Favyjx6x)f-v^O=+*W0i@S2Gl%dXk{NS+s3m%>RqKWFH+qxr=i+Vy z-~0X<3~=EjDnmQKBIwRv32vW02Q?9-jG5@Rk^E=!(-}U=FxS`TQ=+L1nbe(ss_&1U zpOG4JT$cJi*CvQ*TX%GYX4UvihXAyC2EH;z#5?EuEH?UKT*ROGT7_q?x&3aTZ-Ky& za7}M!3Vh@Ss1rsJE6?6eksm)@GSz53-3{4xte-^k%Rh4#Y3mc6TLsE^*J9Z0DH;l$ zD`#-6rG^TD0IR&%%0rK5ZgXiPlWzlhN75^<{OX=tV76%WR~mc#PKqa?T~`K?YHxI9 zjP_e62H+x;<$kj6cMZcEp_hIeI*JpSRcS^S z)H7Cy_9ZmOcig_eOGv65F$`O7{i))i1ma+q_3&1zo$5=9+I_ra(4jT(Bp@P)c<)o( zB)AE#!ZnyrZxar1Ad=qu`v`!U-enKvjGftFq+Z^yjtA8}j|Tc=WfL{yBr0aoy~6x`N!u%`&7b-UQ{ac!^BtiFR@$G2G9}DlNQnsIU#6G8Y+A3K>3ZfB zZ=|_jdqmTG$h?W(zHqSW)*Se9>CdsIN8friv~*kd_^5{zI=-&<1t+ef$rE^>+UNUD zxi3xO*+Jjz^}m9nHH?!#S4MWmu7E$<<#+g&UUYFlvg;)=T_>e*|Dk9_Q4K}n$9rxu>Qlu_OyqcEfd zmFMIZNTHOI&F`T)RYfmq$hBpe;>iAZWw?BiR(u~=<49W~P?_#HZP&(X`#w2NNASdJ{KtJijD%2sqax_nz7;#XpUIyh0`7TWJY zFUVltK<_j173{jDYw>d;TH?X^mZ{!6I|1a;t%$#YJ?Z+J&HlEv+0hwNT(&XamOe%h zKdkb$Vg=~=x)kS-X-?H23~Cd@b-EB*G!|FeyVZ62D)2Q}1Rgs`moE8j{kh>H0xGc9 zV!}QOstegPy&Wz?mP&Fei@dyI-&B-sqo3Tv z7l^8)^&FpfKE6-H&C$r+O|n69uj8GD;C74{zJ0ERHZv_%356MlH+KNG0z*C6t3)Ewz*MYu#1H6YBZ@@V{{IS9@Qs77j8U$4FoBV+MVt@NE;vSe_t%W3XTMI4r`9@ zcxPgd8?xNskBrJJ3q+@q1Ze%j8gc4>4^kWc&Kti00j}D>dp6P>!#XvY%n1`E#0)L+ zvA1oVQuQd;#NdKl#5N~ua;(#Z7e11xpW8)8fRg!T&jZQnVT{k~X7Di2hz9QN*7OE# zy~F;1YXz=)hEer<#E>IO<~0p@=2}K{F#oqEab9VF>Rod{h`azUN<=%DPIe}jW#pYO zBe~&z^ZBr#Eywu-@ltE<<6HLeuPbl)rSR5tOqH8G-B|3R7OU=o7d&z;JoyCekP8ZI zSGyCQ=mtE~IaWep9 zQUsKx&*UjohoRagt+w<@#q$+Yq>w#yF;0lP1zb)(Nh$LLhrbYOoRfrQyZv15 zvJfkrf3>0$^y;N*$2KjeD4+*lt|b&Ie?qUwfsp184 zV>s0)4SudYiE>wZW%w`1)}NqS)oXZ_)XzXpi3tpxBO)F=3}NORD(=FungOU>$l|P% zfeJ&YXxW9>&A7)iS0>j9Gl|2}o(2uZ2W%V?9UQMcXU}2ni|aagnWI)P%|ceDN5^0= zlo$W#m}n6W!d9?jX}yvGz1vS!#FC3Rzosj_8OV(tl{S4|ZkKH$oFz>M?&-#ip&|Gf z0rlBJ|0bK)oqM6OF#T&-n!XpOFBUG%dP`?P{Ys|1}7WvyUB9XcuY6 zzH*jJf6J}9;^{Spp1VS-6FRlB%lPw;_-*@Or+(C(fMG`vWM|!hSK>Sfy2HGZW#Bs% zB6s^s38a~$D%Ad_l}hjlr^x+71ng#5GDo1rdDmWiItzq9cBSQ3VXo$zhy4k&=kTFA ziV8M|xCya{k{kUkAVsENi`#Z99|%zO%N;H|pN$`>I=$^|II)nH@2s_~G6pIZc1SLS zx<%eb1Qo+{>VZ)2ZLW4SmuA4_rnGCVK+P||tFSV10-z`;snPBZu$~BfMwyoN(V`WF z=0cRp$pQ&!{!*EMfmG4k_=7qzHr%yrCl&zf{-)Z|>9{4S_5wiLMOaP;9X^nAiU5<+ zUw5OpCj3l={&7gUK#ioHFp{x>Y}tgsMZzI`Q@!mRH4rzq(M?Sz*Q zY$Be8U}hVuAVz<~u0@oojNE44AP-`Rv{1|f%VgR>ePoEC5zTH4>5&1bU!N>tZv0PqPR-8Rb zm?`~dthDAx!8fi&&(!98W8GuH4X zBVlIneh0>D8PoA7+kypC#&OJu52Rx0c}7NtOYcGUiTO;dX3iE)3&d$~0CjcoPd=xc zDeW(H$b?ISvXB}3Lf=D{8F1+E5JDAGhYo}`d?ijOrnIhUo5-?pdz@cUECZiqSGuba z2|JOIbNPB@N>fA2G2dZ%aWX;nAY}RwijY{z**MkKQ5IvW#6XLpqO5>8G2DLn?!z_> zR??s`Irx2aUBnlZcK7f=L`|bw6Z6L)<~o%e27@@ZJJIpW!C^8&?Cs=TjiZQDxko+) zQ@PeO!IbPnr47MA3vA)Ddeu6DAKeHGenlY(D9`8-UA44qMfe7d6qMrCfX- z)q=+)teRLe`(}{6nUFR8@w4VhmQv#sp7%B?8ALCMPm#|WY07Kv$TXFfQAcyS{QB{* zY~UK+1^3*@E!6bm?P;ALtj~5&#y~+&zbGiqB{)hP1hJzSSuEJ42bAJ!k#7eqw`t0~SAt+KhyGIg=*}Pr)XP-;Tytv(_3HERUO1(> zICW8N7yNb1m-Dq&n%CG@9L0M<`y!#p#h&f*U5^m?&#-x1MDE9gfrpsf&+!gwFHTap zK}cTsC$a<({s5oFTVB4mc~ahKQ`^##R~gIY&#K9@asC?~?Y8cmrIjQyL3r${B4+p!?hBFvIr!D3{>mV7I(Gp2za4QgnkQT|AxGehxD&98FbIK7o26a_ZyYzHQAM>j)@o>$uGwW}1}tb*-Ezk97%Ce?e$I7Ip4NT~Uz|wtUJ6v)HW{!+;ouR)+O3GRbnJ zGF{k~KrF>UA{ZH3h?6*-b*Nt7+ZjRg9f3E{Fi($Fqdk)_y{WBurWuo)!t?nhNXrls zs-nc-Q~y}yP{4EAzuNMdV&r<9_OvIb^Vv;pbD#d)&M;&o7_dQ^&IK_;fo%u2wTed1 z(XsI7mfk*V^6JGSb`WU^^@L13hr;?DMTdN@vmu_Wbo&Bb+NP4cyXwgYxjchDuj|3Y zj|aGeJfaV%wzi+Z=_5yUWIJWhxb+6#Mf7cjb!(FUNJnW57y%v~T}A`(Re2^@1HAj6j|d zufz>DOo{;m50zX`T}ho*=+y4YvxAt{bsxN&U)p%p48@EbGy53RTdq|NJgiv*0g*-} zDk+|_Kf-HQisJd6WpfMyTxW+|*CQM+EP!5@!$Ho1efwsvv`t*`Ogh)&d$(;xEcdEH z8|Dusm{^k*^YUZ!cnR*3Lx^9jWPdE56ubqxX@g@Mzo_pm4~1b}x2!0bqR!y^sy>`a z-_dJJ>vJKq)>SR3KTG32>kTwEV03zQtJOJ6B6+;FU#7skh%2-?mk{$Q5 zET1OBV*Z6|oi_ZF3$c1juU(g-+5iwR1N#e~Kb(FSYhv5Waq>l8b}8r#P_W@FV3M1Dxey`t>lPD-1T);gB*V>3 zX^prs_m<0P>$7(@sR%38wI?|tqKPxYx^DAlzx@*$s>BNpU4!d}~7o;Y0HMBa1VFcN>rNaPGO zfu6M<*$gDp=|u8dU~MQ5#Zu(+C`sGna;y@)aLTv7QJzV@;Vk=Dv$q@e51+0Z4s81R z{G7DvFczb6tq=t#hxgCvlnMc86t5nvUKyxZUa;C;jXRF~yN;N4sbC)KitRqddL-Fg zBr2q`Z4Ztp`P!L`A5r$gG)al;&n0S-jt(VH0*{2~{n_Lc)t#sZt3Q%VO@0Zo#wAWH z%gK_P&v*sGZQ7{rwa{J zkZh-54N=cj^Z6wuc~7!eNz({5o(uJNOcP<>&!YF9*47^O_WXK=TgA(Q863uCm=wS6 zQIMks3PGA&?1ES#qE$5koomq>A4?F?)(ImrY{;R5)M{dr_6ms{Zu8ZM^Uj;pwM+v#JU5KY{)8q zB`OoLe$S19y>rEEl+$sW=vCTZ>Q{!$ zM>7$Sq`_bc7Ow#tHQZgZe9Mm}a=iMnfmh-v@}N_7$F@u}e70|5%?M;coJa81%_uS* zVNh&6WG7zM!FUbiayCQlRCxDDCBv-<83qP;RSXo5euYOLSub&WU zE$~}w!p{|X=y2Wsph7~%Uk{hqod_{DhS=dW$w5gb_|ArH9lOD7Ty{`_TwrH8lnllX znIU1etAB`UcuP;H1|oE<*n9iVxxY5y*0Pj|i!cUz`5Oy+K`!iE zjK5Pzle$+k-UeEY+-I_QdTIgynT!XorM^x4YpeG3#EsY|n(rv%259nGJX1H0w1;me z&_5icCy=3@{#ayEaE%dGUuC7xnduks^F9{bZOM$jjE!a+FXHL_Ga#LTq~+ z9Nn#_8!zAhb{&(t{ru7C`t9cs851Vs6hQ8`4mIII7W{TrJ3s57;7v%JI~@O1AIQSj zL3o_$f}E>r{!tA9N%PKZ_6*Nz=wVu>tVZgc`#2(LmAtUvl7`24UJCWc_ifKrG3z-H zMX|sv6cGJU`1A(o^sR(2yBDqFw1$^!2u{cLE#ZEhKs-)HX=BL7C;BAF!I$`fsT#Ob zS3dGosHLCAWL%4IsUPnENsh6x)6TQAHN4;!MtWx-qo(8Pc-X?tv=eTpr1(%E*FiJRD9D&4MMe>q+<`i-+G5pm7ZO|4Kr(^^^A$|X z(0xq*P`I}d_#wh;>A68hpY!M5XUY;%ho{kzpv)^I({I<3{1tp+)s%SFoW&2*Kpsg> z6lY5orKIJ#dAdq1^E8gj`3Aj;ke8G4TFv<_*EpcUKa#)^(fJ2Ln%T=5dI}e(`zhf= z(Pcswg$$eBEToE~W`#KT0C%CBv&aY(Ywq6Ww zVGQ5!Rr>D|ylfXNDi#rEkPp0Y>IPYz3sxf<_;IyWucSbm+UM#V8y#9pFP=km{`_Xd z=8?8>q&6bouZuLWqDb#*;qiQlca)I)2&aA-TJqHxdtcx~1?j){D=Zt5OuC}W-9=OP zQy1Dly?-Noy&hgOjQWva?4vzniaw5#pfe!}bf@O}<(hvQh8LqjuS?LeO{p4&L=0 z*AUZZa{^7- zBO-slpUOlTtUrS%_m6jpPPsRGqxH{BZy^|G24JBdm@X=MYXT4^u%FhNLW@pkLGbOyJgcV;)G9PYlW>44q+mN6NePf)lk1alm-El=;h^YQA~G*>Sv;yRH(>zg^FogO5^p8Hq=yh-j5j=rS(8J1jdnJ$pi4K$v8Auz-jv|R3&;JI(Tf@^%xM@aX)zR;L&qLx zDpToZgHqkZJjZV)@d=i!IU+xd1;W9k6)SiwO&ais z8x@N11%knxyyx7t0*ci~a*tcbV5$-r9|ezqrJK3}=>~OxKSt2R5HFaJ8Vx`FgdQd@xl9=NSjFH~4F7YJV=2Ahbtg9(sOmd7z>oSVGM;fP+ycOF&EWrFY5 z?ihdcaU9){8}=Vy3dox>U=c;4Tv8IEP3N`f84r#MlHbWVVdDPfyn^%H1fKCvXF&0& zKKsxc#=zQG9ImmN9*&jy9DhxJ4uUVm=vL%;#l7`~+6$P#v%tY7qBMo$KaqtBqeZsD z+(kO7+d}{s0KJM_+CL|}kRORA;}xp}6J;xx{2S>~`moF%%M~49=4q&l%hK`$cZz?u zX0Sk7IW3#*RhME>!`UVyI{jPYYpE?MV6i)$#+{dD{s5Q~1e!%VE3KVWk*x?;=j3>F+_3s56OzvipmBIBcnxe#qhm zPuT9}f%nL_r|<~PTw;m>P`>Xv&pWU0m8uK__wfSzyD7=OtP8AmdRgv!=(CO z^Gq-PoWaa<9hm3`ma~2AHwx3K+9Z#DZv>^dGy2wkbC*M5(u2|_^W!ohs;^@C0k#xI zP*p7hqKM2I=?H(p$s-@5pa|uq1_w@OSE134QRNGRf9!;!CvIk*(X*FUyGm)L%KZs# z=QCi3EF>U|;!#-mIqc(EDByXzE_ntXm=R>1GVvGq{)0kqPN{-(!cN5k`<#OJ53GhC z%<%AVx`pi0DC@li|3v0W9-d-1LUoRrd~CUn&_mF*0yTM9#%_=h0iV#Kq46+twu;d1 zQgYgxFZhMOs@B5>vu#@$v|q{km$DW;3enRS3f0L6pX<$z^kchh03&_ZwOu67?CIE; z{9QjXq3VvOU&M6+!7CzqHodcuV>^^BdVL3a|1}%3rFir0mXX^@TuY zTo3PsiBDtvy?VQf>tc&|tb~_=?Wvu}J4!5N9&cK1qjss=gt7lCvvLq2GZ)R}Wy@D; z?`ue*+34=eAsw&y{R@sa&s@zm2A1oLAPMWF)c%w1@RV=&PWbTA_*2#HQ)BE!aq>%! z^DCeGlH=jd(U#-q<{s6Up}pf&iVl+w`Z{nBapgxzrlV2=SPz^ynVD50#D1wM`T;9v*RouS%gJn0h^OFI&puRYA4IO@2Aos0uo_()837mrkhW&7zA_pf; zHI=2)s&(+w46NojmR}oLS#$9`b33kx@GE>D1A;1m9>#lV02s=GnH@c#Z)*Fn$(HMa zP5{O}sBMq3tqIz@hfq|iVYyxGTBxzBIOA{#d+cDp=zz*qMYr@K!Mpu>{fDiO?S&UD zIYZ;PwK3FgZCC-0xw-jvizkzl+JWo#ve1NlEcxTS;dt-XRn!nF$1WScH*-f9Ve%{e z9@D)sk9O-2zbdU3E@_AV9#5=s~v}g-9Y(l(5 z$oC-vraMwGyXsn-rGOjGkSAl%bTw_{`4OiN$E>TQE1VbZM+>|=tQ-P*($2)V^%0Yr)`X^5AP>7taveRvTT+>vl6x9 zi_DwU5qRJDYo_jW7u}Oq3W4Oya@bAd=-ty<(>WmtjG8Pd*28oQ`bO-)1FkXhex@C8CHYup}R`V`xC)K zBD)k-8x=EEz}8IEudC0Iuz7@_`SM0(PcL_7qbX}v@sv{FQBZP_@f{y7#)sGC=Wq2% z8tgZ&-U8%H2wDu!4Kp_Um7`lHM*Ueiuy(&|mIY%SuL~r@f-^lf)lj^_LX|W}J@N3K zkQ+IYxjVs8#B_I~oN4xcbvtG(T2VokR8&q;HsMmS>l`AV`FN3CPl!n409;HS5~DC3eWJ@Q?{bqdR!2^CWjPS0)*!PLVV2{r!+woARF zd2IdgY|4^H2t=3ogfLBLn>It+iB;HIT6pO1a7GlAqUio?=5+i91p+7Ix&RKRooq{x z*t_-(c%tu@ZRE0iUDJ%n5fgV9t=1VI=%sRFGUnC=jZp5-x%z!>-K+s#DD5K=6pa*U zY%fL#xGB7YCydXhm4(vb-;kNl{`|o6$w8f2YXtJTPrM78KU$$auFlIyfj=}y#^go- zuE0^}qnH@1U~}^{zP1H$H|$Q~wmKRA3!s~~m4!0usF{Y?7ZIo{TMATaBeIU3N3;6{xoHBX zmd#>oT|tifK7?~K>X$;C78ddixeOJl!}eKhS1u1~^IH_O<8bpRPXsu7`>|fL{AgNB zIucqrw^An5P&jt9QJv)DwZrYO90*H**&HT9`|lhe-J&zq6NB&u{hvX*7SJGLBl$@y z(8Xqt`;2t?PKt$su5QNS!H$l6`cTJDpC_?bWdBxkBea-Qs@_7#tVKW$?tx4j2uk^ zrlT50=7}GZo|Swhq{xlmlpVSVixg9*Pbg&|ea>p>G~{+QQj^7C93m;RX=pp^XJT|% zPC)-jJ+Ekxd9SV#hcTAqj8-J)0(?$rAAVe3x?CHMgym^NH)jT3As_sUSld<%yT~0i z6mcC_n|}IcUl$o_>fxGfR(yl6KWAB*qMmB~O;4%b*(SoH>-*1}6E#6e{Y9KoA~_UU z5U$+@E13IIlU9WYp|+SqtdYZ1)rwS8uMJ7-&tDgBp5kYtpqh$4X&XhB9@dHK-@HhKGOsXyb3tVjqSb-`KG?WXIjcSFlx+4dn=^7=I-o8E9%fZL(>xuJ#MSzjYHZW;*p{rISiKMTq`lhVjBlAk-80 zzmXS56Qd>hR7hHAYKJrlrd}-1Qn!96*2rMp_r^L7G!ojzb^ul`$%T3-`>oYz(T`=( zuLFu4EvjOfMwG2`JQi9wJjxQ&iXEzHdzz&UxWp4h)U>YR8aB%X|NR%pyGV~|_;H>e zi%gp-ES%9!1ouVGAU&MuW)~BLLAZ&+7IyrVCkfpbkK>rDXC@up_tI;p<_3Q~U#%V% z-;>T^SZO~?ilSI_G0hJ{&PD$hCntGbc-RzA0Riu$c_P8J=6GlYl%PYF?ERk7wSOA8 z6k2Z+x0GKV{SA)UM7~0V03>*on#`bYv- zz1&y`hU_e&t^g&f$s52X4I^SxZ(wTzlUfgrbf<`cr$AITi6bJJCH+DL+y*)hCpHXA zR);0iAO?f4!o1_6jdtaM9B6CY-zIou%3}wj$l8We*us_m5E@tdRJ7lPe)Mk=B(sGk zOJ1!r&L6Twa=b*3j5WA;I9EP{w9CcK{ZyXt-p7c8{jsNj2jr1xrpI9XOZ@YB-KE&& zRg)211pojOpEsAX-3j(5H2f)}08^)b(2~WJnSlHjI>E0;Wx3kc&8ut{pN;CP z3!FmF+D&}w1F0t(;+&)Jup5J8%a$TU6dM9rfp7fnO(yb;{h%LMXh&6W z$=SijT#Ebe7zgwyfO48sSClXG@GqRF)$F;QQd4Lv5c!<5u(K$>uRhkKN|{ z)0wCy`2()$*~e&KXLaJnMRj+#u5a9u&PAWdpYQlC?@*!3kXdgLaTjNTe-{L{d4 zs%-7*qlqF=?~GBX(H4J{tM!MtMjRkT$Z1w=7&H$LS%A^C$cxk~_}~sn2oYQ>@7^Sh ztq&*!ix8X!fE~DrX;}q!>P$K=jSF9Tv=3_2r?#IRP&sSQ(<0+bW|7<|*WA>NVe`;r zFfJTP#D}U--b_=W;%O9*3079A&L|WQ4^$kwt0^PJ8Esg^hl(KQ!hgreG*GG1K-E3- z=vsiqyYk2Zbn0y1)S$a}of&^$1_LB3M}#dry3Vk9HZ^hpO4QeB7Nk1gr=b9fmDg?- zXFNGr-A#7H_re$nu{`S|cXjL$V8Phfq&hRvOz@efd9%Y@v95(=RMtS`&@aFu5J`!5 zS|h0p{Q^Bvh-kM9MCh8ecJ){yY6L?KCi6q7RhB&IAJo;IaUH<|<*(DPS&PzVCC+ml z$fp83-TIxuNX(lEOF?c!T~!)2nD9$Wl@%MXc18(&1o|jptp!f?kSdxKDTMkc5y?#G zRhV%Ss3wiYRE_F21gDeg;wo{@N0lVhBOQ0j z38+RJFI1yH8!o+)jlk4hdn6kApPEFP3la=XRUK>!2#TFk3oeC#)mQcOb66xa;ZcR^ zw2W?gv<%!Ev`k(#Ypm>wol7zfG}JGGZ^2R01d9LcHz*i6h+A0j9!nKZC^ae=SE#Em zd8Av_DHsAvSV(MQXq3q+m+PF}pjF(0oh{Y{GlfxIMNv`D7ggL$s+k6N)WHR7%xjw# zchu1(onB8=s|LknFiaJx-+5IvZo*z*$5~XlqW|yD9Gua?e3@n?19~~sgC?7rA#InO zA#GM0+|-Z=V;Z!hH#By!LDAG}w%lT&_h#8Oi8bVcw@g6k8ciK;T+!XE_Zj7up!Ra|9rF?`ngwen4zHe<%-N>! zhJn1=6~0RDjzu2*j)@zBcTaCe02s;&x*|;ja*0}1MCe)bZxaeMc3^wu3CHkkh9M+w zeX+Uau!fWbyU{XTRMI=yeNocKbri|wuxA&?bqZ^e6J%GWDdWdqsN?-lPIoRlQiEE_ z!EaOwO9nrTU2IXu&o?8Ekc=dgOpdD-O*`_ZaKi>=dbkh~`x zsT_muoU#a>{C^q$-wIW_)cKBoJZs^w*RC9vK4Sj3HIw%G=Dh!c8YX(RN5%kz?y7$j zK7Zyu?Rr|udg0@ZUIkt|QkClCh+(XS-Z;C)4n3{u4)n(Q!s?xmyVTxfLkcz*_9*wB z+hTQw#4DMETtR>cR;OyTkzRxUez`p;q`Cof=02k$>6Fv4ZJQo_F7hr z+w9}|t~H5O%dW4kURb2vzAaQfvl+bAXHLfkJ+VAO1fD7Ox~3N4j{_5D$D)Y*Bo2=6 z7t{9|XMo`?H7*8qC%@&b!Jl!xizUtfAaR%fDEXuXWYG~u8P8xVU{J!mz5T`AE1%Ui z>>+-w{_tLM>7u&Oz+5}3=1wS^nzimZs8Z2l8>f6 z-n{}SqRhE&gKS~}t135H`+XVO^%%|{z8#@(1;WXULHlr8#j!_F&=r?>ux z+M#p0%43gH{o1zt7E+Y)8a-vy*+80Li3S%>wrWWx=pNgV(otR9R^zeb(hO88ETClc zduL>F;(00a@;u%|PqrZp^MKfHZ(|f`xG8;r&)}b!KWWM)46mMsm?oYv97#nl8KFMQ z3|A38%Z$i(+iBXO2T^IFbX~Boi~}CU_j?%(WIVZ#pR-M4i6vF^tn5_~nHe3z1+Vfn)03^js$CI{lJ)}iWbFNWai`lnu6 zhBjBhK1H{HR!P1~iO)1a+wl86%|+dsK*Pu+z685dvU|f2=Z?pmOi^Cxg2uav6BxtJ zP(!SZHrN+KyjOc{rU|Awc+HS>!x+;;`c^{Ub+)O`l>OMwJp6B2 zHjzGBf|p@`(o$=t`mw(?QUj&cB8mC#kp4`p@q%tjy3a)CQk1)<#`n#q(I)0jQ;fd_ zA7z}%w>!*qrW3oe<%;!nL-3G#!n>8ebU^n`{~i4yJcn+rryDAYbJ)om(mJz#Bx@|c!D&<@=0^gzI3D^qwR`z^m3^> z)*gTV{xwN(B>USr-qZ3Yn*mJFIdlPNGJ)|dDI6G$lNZ`EvFZSmn(?ZO;fe8P0Mb(I zS{^=oU%l~4>l3WtDCa3$Owm=E1J-aR35LVxf+z7->gyuIxvMRW`!cT~4tcHYbYZFY z7FEt>2%OPA7R;~MxhG{z@7hD1_bU!}Z^Vvez<#slvX@sRgUQMp`^->H5gXs@yPN8P=SnY^=&NsoviBBv zBYD}eMHz)MY{ek+Z4qVkix}`wqKxAM6)?7VqtrhbBIk8?_0~oCQrxvuz(hLewuZBO zBt31^U*r3qU7p67rbK`4J?byJtc&y7E1QCE%>-u0n%~`ZpSNcY&e5)^eOsca%s*X0+c|rbkiSz4w#i>}A(*YY zm%BLE-ZS;W_XE5T*zx5$!f*OZ>BG#?j*?qL9simhhuot(s84IWkz~go2R97Sl4I9N z4Q2T^Xt%vQEZ#Qi`e}Fe=tqa9>Z!&j0G3tL@toG=+N=Cy`PLtMWG?ci&QrwQ8`@UMxMT;k6f#CW>lKGa%1 z9F`a^6RrRcd-?nJGWt@VJ@g$tkS~VnNB4vSYHU4xP$Eb=BtznWo3+k)YVvAH3E3$PjT+reKa2+}6eF){#`dS%fOAYT*ORdImyIpDF|H2{`7y( zUH4}7bppvljLtI|pDl18P3)g65!RPt8%=(X&Nd%cN6vg@ik>r9wJ{F86kioOdS zBRx;lEP^*_6e=EZ@-WrL>{3Xp4dbJ9-vr73-zb6sz2{mr*!baxv>V99K#dK+PDkG$ z<+19S|G8~726RS$U5%0sdOxbY=i-*OKsi$ID90p(6)in}Xj?X7yLE{B)Nj_%E49D- zyQ18^eB5L5cfbmen6Z<+wGGXZ|d%g6E%wL=8zzv9;3106h;^>vt@F3ZnT z(>p7BYg1iW`22As4b1k~@j8mniH?OrUm5OtE4XrFN&(cTvS5bZwCoD{>7UyB3`!K4 zt|Ig?{d>jokXBSbg^W1b*PI*Qjc2-$OY-it06yC63EmE#XlQjJ{+ z>$>JZKJ~r;{+lhcrw;4R#l#*hDTxMCk`dc3xg?HpEE>j+tBNNM)}?jofh%ldt>WZt zQ_&PtmXXNg4Vq{dy%ao{xrCWkn4Qh-P5bd?icKi)CD%uG=BnrYZi=yJ2NH4Us6eAG zaqT>opQtMFjFGOUJ;11>-Iwxdq|pIBy81pv0{q3uhZ2y&3cB*`O`~$7KYU&W(CgWV z9yfm1!3(|Oqti>IXde6!8cVl!>5#OTV+kx({>wgdMwk{x|62%f<9@YDf7hF{jq2lY zXyf~zDKPQ5s_9nQZa???CoS$6G=(rD@c+TfRgq}Zlt)Um4R9glXVABnmZt`z(pKbc zn6KXtIJqNoEV2;WtdPbVfJuPsiE3@b@1yY`$~)i0q=7t#0XCuDb2%~kx<-d5#|3~H z@k$VEx<&_C9ypF0;jQh6dCvx?T)hpJU5)SJLKEs5ry+@FsrE*lqg*N4cOzvrGm`o% zrePfN1HKmj&HNdfjMZQ}CGkj+Ip_=E?9VHQqD{DCq6#nWRb{=jLE7NKx<{Wz`ImE`|I+O&2htKw%rLzZRzCYF~w?@%0f zyHmDjBQTN9fH1=I)#@rw2cFU5sYn6;ps98$%rlys$JEGgs2M2)wX(kMr&vAZj3MhtN47aj?NA8UWJKvh zb$B%y#pvo;`5g?^-UIa8(Lkj4x~xB96-V-$SgsR#($aJEbUO7AqoptY@M}Nwo~TAG zvX3MRo$y+!phKJ0yfOsrWAR+fO5;5hsIPpanyi{5 zy52VpD8Im~w__-~YpE#;BcG;H6E z4?bfGx;B zvFf{TcoF4q%WMbd+{+oUpbhXm{F#PH0Eee-s$!^TIN;3KmSLxJ7LYsXS;|{Y&wlbf6(*=8k;A z@lljvbg8a-teq|CtoQ2#W?av+OOJ^BLJ=j$i^t)^|4_0AH={+DlU{@Tnjd)!ylV=1 z3G|9N15t?{gSH#VX4eI@#E!y8x$Doo@6hY@<&Ur92b_qmaTvbP4Kp3B3N529a`qAXM3v$Re1WsyHN67F26W{HBDrk@s%AOM#fMgCL8Rn}?eC}Fn^CnGeP-VnzPmy?!zOV;bG z@oMF1h!e7N#?{J_VZpVdJ76!uSz*Dn!Jdb5W4gW89b>z~!Dhad9r#r5(z4iyxSjj= z&~_TjSu|x=KPF7Dcteo^L($sK|d)XC__^600X(hj1$ z=0FYo#6XD{>-z<;<)J>B(O)q`D|$b9DC+ATs zrJ98_y5R9i-(%L*0;Z2Jd*jrjrJ<{Av`RLB?y}V#yGvC$(ue~5<g0oqp+(;-fS3 zBn)p)4be&wXjdezy$C%XKpv}Qi~0$Kal*r_dGrmgl^|8W%pR?`y3iCumXQ|NQY>sX zUf%%q1+8{&6fS8(a2|7{#0a}3Ule;|7>~KyeSK zeWg%v1LOb@`hs@LTxT=Z3Bj3r$BKu8PTf`a=f5>KH=^`YfA|Tr5WD+gotHfr&JZ}W zG`wZ*Pg%J8-0nR@2K~hdA@6rgX+1$jo4Eug~V)OG_vcQ14;IZ*U zc{v|T4<-;sx8%UKx)CVv&qkftCFNUpGNyo-KbeZGd77?!B68PkM?RMQQ%chROxuxLQ$ zDI{~Ksdf@;H^0g>_-XLszTmNGSm3Yp9yIM+iq4*ID+|maV?V54%Wo!R5xi)|vIjGDI%%F%Gy@ zct)!H53_~A0hdhE@CRU`J;uK%9lgtTH!>e+yZt|S{+~>qc54y701jq?z%$PjHFbv z+-&n23h%i7!$A}X(WYz9{{t3YY|mD#50V%mFoQ@Q4NFk}Cu#qTWyQPgzW}1=_I4s@ z`zTObgP6ma=!thvxQ1=!NVM;N>EHhX4je2Rc}(wc;A4&vOFm5cVaMOa!6Hh5IK?z# zFh}qontkj{P0%a?s6Nt!aEL|YixJAcJEsA67kJa2W&Q_YV6rS({E06BhmW#0$Gqv( zSsu$(sneBsK?KUlxW8c=-5=_!1EXp_(0_QA_&x+!ThZIdof6jd@1kp^leVgK42 z>Zs}AwPF5Sjd(f?^~-+nBlK*AMO2* z8u!S-bfq_3CpAnk1%F`7XcW&Kc8;*N4K+j6EGx_FJkbJs=7)nY@JSZ^JTLNZ7OGk5 z0A|W8Im~M#vsP;Jr5Pn)X7aI6z$&z$sqcjv@ z3EGGd^UkTy&L1z|TC91v|2N_CfQqQ&D1S#C7YO|gjagQ$C|EEhEc_n|9iSz~l9p96 zV&Ow49VA?flfGy+U2=wnX~IH_Vf;MM5pT(fLbyH7J9Abf7n_agHW4 z?Qy!F^l%z1(0Zw5=AXS7X9-M08Z;~MKJ{C@Z5h4v&V^|8Ew8`z8%4Wr*o_mon`nPR zWjIZho}RHc5y8}j}H|_T6KmgFT-DiV5^kf z?J?xpp+;QmOL=-^kJ0PFdwxINo#sk$RGDI}SMdgjkPUJGrUQza_qPQhDi7E}L~2H( zD)%rNEgAY1#CQAL4Kuhf16_3LyWJiNi%)C|!F=Z)aQU9)nu8g=meQT0`1&HW;Euk{ zz)QCi6Frkb`B`KlCvzTa=FYN_FUYQ~&N%}XfHBft81G~OHd}-H6-{0d#C(Leziobyib=U~STSa*Av@HsWZwEmx#{a@(&-?$ODZNFVtgiF`m zC-Qkh;bJV_AerHaM_v!fI#Z0YZX_MEIT?`wn#6*s};LWP?>-X#L zwmXMvG68UZrM%1(>0MM zGxUekL+xh}A#c`#$t5x1y-sq5RgY9` z+(&QMASD+ij}tByaaz?s)&?E8JeS`s5s1KjJWAkmks-?Ax(d~!lvM4p8>-3Wnyucg44u>1SqrTU&$rva{oC$@+Fdd`^6V44&W#m8C(I2>*j@dF1+x9c z>si`2Lpz?L+XVT|Hl8$%YnS~8phCL4(x~hd=S{ymi_%Q}XD-)C*Nos4E_NEj=4{bT z{!j(iK>5PhvmAl;*N^)Tvzz-w`BPoc!=>7hkrAG}c=6BFvFQDvyTs38o((lu#cq{L zB#k8=wHrd#;7YwVUF}?mi||FpX{}q5X<5U5QmY9o}UV?-&yPGIv?HmaXExIY}nzKPkel?{cbTvuk-HLZuIJ8(dovdYR+S$dEPEdIDT$qx`f(B10H7wh8Y| z{)smUS(4j%0G@+xx+EPCX60FAEN)^4OEsJrHk@`6^TnZO-b{>eE@-XU;2XrE2xVP6 zb#JG*Oseok(hz=+HjN7I*erAW6B0-_Pa3?SAe|-j{)U zEmhrY^@rqebSAv#sNMJ9PKRv;)n*(mcb-^e=_vOWi|2?V$IQc$;Sp~4qn7!o9jnoH zRM11UTNmsX5^8Vw_cz~AE0iFDxkVg2T&e}0j8ke+9HH__5<`at7H@I!TR(ZGNn%+f zt&WT(SMq&}NxJP+a;{%Gcaslp&Y36jDLMf4-zFA934YBPQ_Vrow(zE)tCy*6#iy8+ zS+$Ops5rcHaB3KUIXI$n_zXneGW6-~skyFRwQDL?kD0;_h$M4_Z6^ms_T2l(7-l4n zvQ*UmcQ5A;I~Lx@P5Mwu2E30lafYX*BCrQuHpGfRN*5E>FSU^%s~cr~s2Fn-*yKyd zn7{OHcVtPc`M4YKd1s;53wZ3|?Vf7B-FGc3S}IR*j-rW*&V5h&p*~E1|IcO*_g7i; zF?Y0s^JIpPab9VIl9F2%wI~uooef^g6qZJBE#$G>Q;ax4WJ6&2r^^d}goBB~OM#HU7rDNGgnv5qe!iIly2EWLsuMW~|Iim+GJ zam?Wc(dzTrVTqU>uUw?V1j=Y!)tsSTbN=sGu;S@ZDY-yB%`rnMxwcP-nh>Wx;Bj_u zXDEsGcg;5d4;%YzQJBKqjBGBXO8kMwDm!u3OX{U zJO@>WxU1fRss}(pEfVd;Rzm9}ceyO$DPnop1ggM&^y zFBuT!so?lVNwr{iW#=|({Fs>M-b>Wqof7>~P}l&-@thu#v)NfGaQ1eri_;~DkZKj< zwjFOKCOgetXaIC~UI29q>iovn5N)^Ee^y0WnPU9af^XG^H#%X>khj4WKYKn#@;LiR z$Sz^;U|+VNeskaOp8+ zKAT8y=ay>k8EI|wwZ%qrAR&IXjP(9S6)p3q7^(c&`cG2X#>p6Ys5ZcaFBa4;xhj_v zQ|{^U8P{&r=j-~i@q}y1ft}rz%}Hox?6J%tW=l0!Jt?ioh9V#ROiZUfGGCD^jh&{# z;Q;%W0Mdd1mN#~7da)SZb>6a9G6)snb}y`X!fZ99j_-`dN)n}QMRpq;djoS@F3%`h zbBT7RXiAsCUgiL_skq8a<`V`|PqFGK`daU-mE{rYSOPBo<|by)lYc#IlC{!B0Zb0d5y?(mq=)_7F&hRB{)RF>vh{s)bhpr2<|hv_&pi)ah0+@{0_nY5q%{tK)t66un<5Pwx9TEDv9J`6*}9L8;H2%6nqoZo9;v`+YE1-_E;0t4hla;h>SLDP4T7ryqzx7H1Lrdx#59_bY;NZGUZdag z9eF5ioAwnxiaZG8Qa`jC{x32SmHQUQXF2voxe&B|ILNt2i8S5`VN91KWXjY){2q^r zOBg4&ZsuG>1A%#1-S+zyth}2QSU)Bj^MUDm$+4?%T=@M5BBJ$VXD{l4o4aj|ph%}- z^f2@M|B7Bp=>vBIvQ7aTESV1H-I)2jjw?JXGunU}Q3kwp>F3`% z&<98OH|xupMqLK1H_MmdvYhPdE@2IfG1ql#Z#-jFac&>O$kD9rr?-1c0~+b!pM!!O z3dz3Ul9GmI6KB6?BU+E_uH12&nq03OV7FNr!iL^$zLk6_<~xa+apj{dSFC-#Guq;} zZ6V06vWO^6s)n4sO~MIs6c~J-zIjVK>efoTm?X8@oTxh$W7nc>#)UGKT@~u6m%0Y( zCnwTND-`j`8Feuh=dB{(!;0m9Jet;E$W0BQuZ|6eru<+lbtPrb&%%@ETb8c@ruNUK>Sr%V5pGJNxd+52tT~a=2 z7qFyUW*q=focU>F<1Cg|>RqfA?LTd5xD^wvn?^J(am@VdSG%h|74Bq~5$`I9KYv zes){nD;2!WaP|ZmZQjX`j{M53V}6>lfQ$0w|Z3`gO)ym(x=5{ z>CHeTV<|629Lc_ zdv~RyK?aR1iB|hCMg?>|L#5pYkJ13d;8_;W+E0#vP(+E|@FfDMf@>z1gh3gV0w-geHIJ(e4~76)p|}eo!9? zr1icH)T-4Y_{xk}QZ8U#HlH%Zq^zORon<3f>{2TXrTk)LazHTmhSfi5rXgKIz?K>X z;VlGmV<}w0%+&^Wqw{=U3QvXe7MK}Wdd-a#2VM7$URyXKohcNR&n5agyzo}E-t5D# zQ5Bx(@N>{X|H zhuQ7Ly(4QK>c#+`ea&13sXd>&6TfB~GG`mAbTs}w|Nj2DeW!YZYpEj0%kscoMF0b$ zB-v@t{g?Y@<)I*V18*Qb)UP;q<0Bz+PAUkkaq6vv*; zPKh|mmF7PqVNlN+$-TD)O*&TkM@ozu?yXUxhgaZMO1Zh4t}fh2ZWuE;?skZ*R1@x? zj-M9ZnapIgfxeFtEpVLnAQi>TeSLn{8hmZgX8ad(9?SYME$r-xm48SY{H`)mDby?; zT4rLu4z(KXo!Pp52Dcoh-f@jU#EAH8fPWyJ$H`Xx9Z>Uj6(tDN{ZjrMDi48{LZLFR zpoe)`&7i+b;EPbJ#9zlc@bJv~_N%5;36W50VQ*OBqr$c~>hICwblwquTz)@ZvUY0% z*9kBe_?RKNX193GSW{c0{rb@yu)SGzn&TZAQ(iL?UnNQVi%#9L1-J;7i8D%C6X3Ud zUW1!mKZe8io}Un|}_MgZi!CTIJ z^mkp)gH4bnI)TKQ^FNj|aB&-ma1f4Cf&IGU7pd@I1I;#04_lY-ac8{-mM*bcxI08{ zuLo*aVV?pzeY-BAbm58w1_5J8h3hBq(P^~&uRNHhl3OgCHmu2W+3YDdQ9u(31GCFF~NE(TlpB%%kr934EW8Qy!= zc@{M8lI|pR0vsJT-+t1 zUGU$tv;2p*MD}>{AJS}QW|8jVO2w%vQ@)asaTlM%i7XH)LdKu)&GrRKf1eX$c;jW%(Q99uL3)fPnu-f9wq>0NET_b7^&XW1 z=Bfasjs^s9y|aFYi_6-(3A)Sr1kC|}_L*lvu&I^tF;=4vN|QclgXEj%Wr=8zr_-$U64+2+yZeL222GBoo6p=!*xTN?5@gd7^9S=Q@o3kbvE2 zMz5DnyieuWF&7psW*wtWN&9MpPLIH|MxNB!&;rTdk(l+uTSKfURPetIZBKW4Z1=N7 z8o|!%dd(t=!Fy+|1&a!lCSyw4)VUDZ>L|KtLlbh!#bF(ZG}47&)WWcfpVvv z(rAviDLjSGx^nHLF%M@*UD0A^@ecMFNtnkPE!73uO-vu;TTk;h*9CqZc>I!>`j-ra zZ*Tw{E_DjC66%$xKQH#S8RS-9dFi?=)1!{C1Eb;m&4>bp63?0k@$r4nTw&^aTx5)&=)qjs@gNgZ!I0^ESE+}itv`XZf zWyF|YHQaK<+{j(MS#DXOm^1~BR?m`kfbt5;4>y!72ck?ymO3w*VSP$C0ud43KG5v`dO z`Cr-$G&bgO&}X~VJJRhbZC3vGrL)@4AzLXnO;yaMTT13;OBSwsHhc}rej;Uj4Y7^x z?uQ9@+=@;fy|Qm^|iLxVwa|{!%4tbTd9PSfa3ag?iiXXDC{~)6Q$B zgco!p+b8i#>_?;}Lims8;#Ft`p7`pAr67e96(*&T6LGo}y857#&lxM5OJt11@r4V@ z*Ng>^_*vXwiIQ8`CPSHOtT=v8P42&sjYTa*L;mN}y`(+0G}{A9QKZY%ml@ELI)kbT z$WJqM-}enT;uYFj4NYY_PI#HheBsBI(5^*FOye59Dc++457+UK;)EezW=B{XKZ$s3H!jW8;6bcevk09@6;TQFv8w+L%UBP2ofp~+wE;k0 z^rT=V)(v-iojr5c9Gvgogd{r?lE594cVBFGopd1hP1vhFhIQ4QEj=ZC_q(&(?T1IH zU=dSpgX7BnuvX>xK@r=%qK?QCJWI{gvtLTiiLFey2Am6~NwGjZe$<$%{Wf*k;8Apq zDgXDU{b=f?eOY`OHCJVL?)wG)9EYlHw!lmh(&(gSfJF2PdA!(ip-3mqML0p%#lu7> zgzfa43tWvr|AEp$LOG4}GobEl>O_KNGfEqjXVrn7-qDBsE#+sd(^qgH zwzYmF*_7%vf20Lt-mP7q3e`+}kP;8zCCznIK!LSAYCvotC$8E0U=6S$%kqmXvL$DK z&`!#-*I#xxrH-FYx1}7=yERdkbcmoP5BY|-HkP28(Rb#_4p@a^spyt6ofbeh04Aj{>tW`L{fD zAV41FC)A>XiJ(#d}SXG?E-#+%v5vHvzIwH(E6m zcSec)fdxc~9QC%!<$#Ms?zQ)Py|m&j*)k`F?m}|P?nuyJSfMo?*TliJU5AWTR#j8B z+`z}}3Wh7kNrjrCAlBc9-YZx^R6Vn2SBIP&#Nn2GjFuXw@{MhGMO{Y71&H7W;usU| zc+8wpJjwzRqQdmIisXVEwbC^ z6@5RKDNUj?)H0+q-JT>+j5lTx^2q1bJLN_`TK+^$VW=HRC-}C0{&;@lrM#axN-8)7 z?R`DVTz?gqgQ}IL{7Qi`V5O=YL7Rh=k6>_8tQ5*{3oUpB&qAFCUnvi8<5RT%qz&IE z8R`VXjf*=;6w1~N$kc9-xO;C!2n80(h+ZXirIp|9Uvsg}4i_Yj&KaB04-j^m^bmhT!iF1^IqwH5y_JWTYE?$^*7-)9;jzHW>QT5JvViaU#~YTF#G75 zxei{LH5?Rsm1B8-^=Y;yE2IzGLko{rCu@Tz_aLvmn#*D9)r7L5M=(Zv4W30mdSjYS z;u!t8xm_R6NjY=H_~#-eyOi`rnS$Yzc|rVJP}7iK$9~P8 z%OFU42DDS9?h2Z+5M}wgA@nGWSEO3KHGaf&nrMbh@gCb}Ih|6zg!FE3pC}fz8`oAr zqZ(R!g?)*k`Ioe!2G4!_eaGguTjPfF>*vUc^mB%0aY?(sV|2>%2Eo02Tc=2A_Vb(X z;JzehgYXarS1H!H2z^Sr+t)NP>WSXl*SFyK=GVX<$I!SXUPSyQkC!OxtLj3iub%o+lrF<`dQ8-8%<8;)s_4Z4`L`9$Wp^~!@r`Zd+<4?_NmrgSMisbeZsI#qG8GT1>PnU zqGlXEro4cD8wpX^gZAHkuD7~|ein#KWGrzykHGQ&f0#>kS%1pBMY@wg4WhR+gWXEg`OL9 zJZqL@ZGxgp%dgF!Mmu2zJFHvRVTC(f+Ptfje{x`AXzqW^rw`L#IIb4C3p9&z81I(W z3%>~HPQSB^nv~@i$nq;D2n~u^kmPJw7x;#su7RUnX#98^LcOdTlWnhmJ|}&Qd7(5L zAWhm0tV6u8L>F1|GD!}$)YhLG?fJkq6T&BXqx0>k*l-gZ)Uu;*DspN zWvE<`U25;;WzJ$oi}aR%ioPH;nJ(q90BuO(@~1o^E!!zReaH-C@vuw6pW%Su8REYD5R?0)ZX@OqdlU5bmQ*>eA=b~9 z`{Iw^%`{_LCa!O4-$JU+_2{re_73aaR(~+Y1GtCf#@&+Q>Auq(Uh_fuDVTXH=vBE) zQ=zQ52+{bV+j=(E^AG2fJOW}qeLeoKgfWSYc&orOBVT*>;`K$*#Zv2b$tmtar~c#+ z?X(}&r?zH^wr(u9I^}BE5u+%%YVFt1aok497F!3Q(!$5O2D@V4^*9zzRF*TrbzQ9{0WeD`%>Z;iltH%cH)x!qt5pW5sG zX6+;lTgL94Iyc49S?~?-qx#?6ob{g$Z_7<2Z3VZq0h>y?H;!3WL*%>CRCHq&aek(& ztCsV_CaWyAsiTaz?c3+z3-`&{&mTi&mJOu$#Sh;6QU1*wbC^0Qv_#~z`=FPXuYk{% zK7mE0Dq#1U2T^igt0epBxcuImA?ClXz(a9ks=L2ATK`0d*Z!R`o%)ed8PxSXlu0<@ zs|VYB#!$qFQ+Xil9;+Yt#{r)py&ItK^eFIcK*}vrjFYScZ^X@KPuo(g;1*aMgTT)j zw}5wv#nH|vN;TuQz5^$GvWaWp&o-J#-WUqQna7guYHSQdYV$*A-m#x$^qzkY7#rWj z-7)9GQi;f0p3FQ;f)dMHzlyVC^x?fF1rQ5%ioYZ><}cqqn^`5(~55cu;)^f z@>y{-D7lUM(%MsUN3!DKiGr;`giUyi~X6*S-9aNycD(P#b5f!U!ujdyUV&=%g;f|ffTE-ju|uD&=M zvZQwFnNaA*@N64K8@^8C&zh85=<|Np@3#`w@yo%B0sWn#58znsI|Nb1aW^TKd80ns zZ%bRBAX`KKh(K2DFq9>z$gps_)X$n}XJrSkSzj}PJjGmH-Y)jTPx+1>PPDw7fzqa0Vth$>2D3OMExd#9 z=pkVPi{IS)suq)j5~Ap5CmgUW6eX{#O3mzV>EtuO-#p$Mm?5MGEJc?s9~(H0l5^0J z?Kria85W?|qcNg-EVK*KnT4lfSoSBYcya_qe2bGzK>dm)hGz**Dw2gq*~{_FQ=$L; zrUUPfS&kfUHin779{$$=$qH1F_*!hU3$oBXBzwu4U>HFkD-}n$ zbBa@CwmgY`<&+MuKbm&dDcl=J1k6!TWe0R`r+i0G1k0vo0?qI@op3>7dI^1Bg^9?g zI@U%;HaL<6f45_c?u`_eDsF*NR}_1hegVa)I^@?ZiZ|8umZBaYyQOVqyt6>oA$ zvqpmV!B*jA!X=-F{IhfL6uRLgPTOM$RHRW}-^k2F(b9f%G3+Z~-uarSMF8r}5YO}f zdi3NNe)t*d*G*(UO-Z;~6VXoeMV*p^K3{axXZ+@y*=C|M0IFQ7uorbF4OW;byYT50 zhkA#<7_9aW9E}vp;pz%F-e3iAB0fD8($*pZz_pMu|(~yb^&2xg}JwXZ&stJ+Ghg{ajoe zW<6SAX>XchxE&W<$qEu#>_5Iop}lj++qeB%9_#GgGdEZ}P%RSoxM~mt$L+CB>D)qR zV5*4#pn)r2n@L*j;tK z@&=l~PIgW3Qfxg+U<)eQe4_#G+ip_a6Hm&6IA0-FJ6?_g;5|EQT+|PPDU*6Gj5?-@JC#!Wk0eh<5zt=n0Vdrj&lm8o%+;E zcg1je5kv7SJNK6YE|t>Kz$u2Ui7+aXB-1_RK+S`rsbHMt z;O2x)(on@nM}V>NuR@{I46in)Y!t!bSi4u60RwIK70DO$>>^sl@%|_ zf=2H_S=A#8jbRBdY@)#hdy(6SAI%L^n#EUa_C7ELtG-6w@CPe69w5fQ7cJy z3xPp?o=I14>*0t12KuS=Ea-xV+pZXp+4$g+26!Cm1P8(iV5MHTNWXq!N{W?}0^pura4h`%&+`YkZ1L}5Z}$hFD+o#GI*84G)|Le4b-<7DbX za=VAsFh3f3aQWmQgY0d&JN29;AYwXX<$C4k7X@Hp=HgI{)I)>hRd4GWp7y5s1S#Oj zS!_k!B`L%ex6k#HglSYJ>i_MFCz42WA?MGY9wY6aLVNVG>5QN*Wj zex2puQ@7{3&lAap?y7SrYK#;8q88rlP9WXnG*u-|dnXz6CvZIi3Ac|;3rlsfS+J3< z9U+T0+7-A2|7(mewcY{81op!H{$TSmLMFA z+A(?Nd*&*y*84IS_cd4GT?6EKSZFg`MyX1xtSisV$(9QXa1bESoc_6CXcuE}0FBY2Ug?%JxBOgh*He?gTH33nIyF--miLj-oa)M-5k?1A!go$8R*geQg}V<0UQa9-lEb+cL_%vs2JvN>%3 zxS@!J_bxJSZIB77TVkW2YrQ_iWbOnLk$9`OkgPOt zO;(#ZtmsLuDE(_K-0;iv>CM2Jb`nH{Vsts?o%^~SI@>BqOG5lBdr?99^Mn`qn?9yo zCepZm#H=IKa1xJzx9g7HU~0)Y@+-zjJ9?hkta%lC?vv4Z6+CG?QY%I465n--v3Zqu zuy=ys`N>Ig-O>3;fk=AZ+4Ol8=rrm0yb3bxyZ58YZ$oo2@Mk)y&Dw~vFZ$SO!hl>P z$xi@D!L9Dvr8eGA~oSOD;=buX34k>$|jg^@yaXloP}r3T9L zb)INjv#HI3?rUy?h#HJL#~AW9{_nkhQB7OQZ%CQ zPX<6$D*`ZYx&p;)^P$Lbulk0kE71?4I%0lLZE)v{p1M;SI`U5LDhPXwwgq9E@E6j z;yP!oHFQ0g-LTW+z8(A+r2e#b#)~uzZvyI6;7|5 zzq+5sr_NtJ_%lA`oIn2f3#k=Dca46JzpOR?2?!ia0Z1>d@ew_+1eOwKk01A(cWtDk z6*;Vh9K!cuabdWUeQ)@g&rNgtJH!GzL?2o>;6T+6anQs~0(6ROik|QDBpky1?W;)` zgT;eI<)q{xyxfLpGU7-7s?K%Anf9L1dbGTO|E%qK-g>3{tkXK}tQLy3X9|OZP#ydxpqQv5-3&OK z4rV2+{-O}!lQ-;nL2T(yc*dVbL%ag|cMP+}+S;09f$KTHtq$7H$~pY=dlUjsLl{D& zONlV#h#Nz%+ZeR_#g2xdGJ`=99t$usfwLUjJCDRYfinErLpu4~HY4Z>@qI!u8MV>w z<#;hTK!as#PKiSj7-D*R8p3a@hr85A=PAB^U!w`;OYArYg6ho|Y>TVH(<>Z;|FZh& z35}?zA+*&%9fHDR6&t2QeM9DrPuNCIIq0;!ZBGtKe|qW<>N~Br_?w2H|8_7Ci3j+s zUi%YjHy`|YY^>?FV}4FTRSL1iR?X_pYT;S9QZcsR>ZEo`@x>C`xzUUO$gxNx%hoFY zrx2PE@jDl1%vg3;2qseDxxHX{Q84p#b$9$axO0BR_Td%Aa3;FU!Q5yJu{E>F(^B2zS z6+?Y8NLuDg&iQ9HG`ij1SyrziKgsj&g6OtBXZFQ;O1*eN^g;9oC$!e`;lVqrGyw+c zBJ;JFG|^xT`9rD|;u^Xw!v*Isb%_#F3?jJcRa@kpADvR7Jw9)mr)77|iE%PlzvYRp zU71&r$-0G@x~nFqG3w@=f?d5hq56cTW6bJSzbCh?ZjaPARS97rZ`=tNoPJUVXdeA} ztx(-N=fg9iZ*$-rH@*l+&XeNCLZK}ZSSi0qXyt`=ZLw?cthCUP3UK;<-uqUi9^@yY z{|~)$?@L3Sw^~RD*kt{`vR++ZxAgyNp`70Tb|)V`UOe(30ueVjAL9(B_l2{VfSHoo z*St{2Ons7=h%t7Qo!*JL0k)t^+&KD(6(@ z!~1gH@Sq|7=Ew;g4oAs`@xsaEWE@|(8qPFj@K+XT@`GA7Rg z@u@#*kBBPy#)TP~%#<55j!DzsK51<2AMZ9A+0gYWW}%&Jbv=rJ0AF{$um^S6ejU2R zB#K1VY#0c{D}Wg$;>g4ULfRce69}rdD zJ)Q|rB9ITe`#T38W&@(;$OI$udn8pcE-FdbhYCNB1G~nBj26*=IOh zFK&hz)h1wC!W86ZBIi2a;p5hs``B^ug7ZT?8uvKqiOy@m1sy{<(a6m7ijnR)!x=V zvljlnQ{UcG56#6>4K**aoF$Xv6(7_807?D)`{;4jv@L~LycUkAjn}*T@I7sB?bREv z-|ugq5V*%;!BG*F(sP)PKQK`{-^Q4yf@dFag|yU(r3a|ZbD*| z+O@bkru|QvSDA9h50*hpFAbigJxF>q!S($u_}TXNj@f_%5^m6S(Mq4 zj2V+pRQe<^&qkxw)M=E2v;nY(#dFTycHa@Cxm&31hc0#$7gykdm*ef-T_b8H zd?OUUZIB{$bnN86)bdtkBp+p${K!iLar|nVN050BF#P9J+$5n3Y#;3HHR^lyca6RJ zKEJQ&{6)dpFqNx`{nL>CWTL8YWBc_FI4{XP=0o)Q%?D)03BBIq_u_y(hu4r4$yW;^ z<-*qCu1r0^84ky6IA8~{-aI`M<;ODENoXI&19gNY{Kzgf>WfhR@FR}dHshw`u^?St zzfi3>Mswy%QO{^tzf>(dMih>F~eiE@U&!xp_vumh)REujtD$$! z78ChxWH&-C0Kp_o_4Qa?>m2~mkBId9@{$23qaQwVirH+KkkXQ4T4-fyKYL$1UnEWl zcCVtfK4;g?abE;vwo(KsT!Ah+kC*~RpyXvdG^+mDSp(*tt4mh~ZZK*IFy|umz{opC z+*%ND#`kTy&M86hyPPwCYhn+KyPO>O4EJyjbr_s^Ss2&?+gaH}!dI?}v}t2sj8t4K zCpxPkur9HR`%I}Yq>8x8uF4;GwR*`pC0ONFAb2x9-few(EPSU}*A8gkkmsaJVoq13 zc)xIczvD@p&Co+{dYq)pB@u)-ofrbo1Pd9|=`P>+%EHfM8i<g+2f^^kh>HHZ_A6 zMh((S-qafhuU{Y6PmTlB+1>fbIAUN`SgKP6aL2uPtvuqMw$fSj(5XNb@PPr5h@cV&#!h* zXyO|m4vuzsI^T0-4<edz?%BQ;LNIU2a zSCQ3ZwNzX^Wda~KHt+ggv)|Ku)W2w-QRh#ugdq{N0Hsur{TG?+uO5plhaF|S2n0BL zMsYsp%bEPV-wQCt2<9?FQ+uN&Vd%aE181!rIs7n zJ3#xG^GPc+T?D}M7pekh$>g*uk9K+q=li|FGvDZeL2Tez$_|0SQ#7s6%s4^Co>6%7gg<4HWIa=1(qsG8NH z68Xc$3V91!e6eCa4DD6@&8zpX?NVh6Sbcvdrc^B`#U1CIS5~1y-T-wVCnBz3kqYWH z!&Sc=53{>}3^fO}oEPz{^6%IghM>TYUhf_qpQySqQ#_^m-d0dMp=uOpF6g;@IlTk% zP2^7MGQfUEWavc!iucEo*iCDDi*t{C>36E08GMxm9LK2lx$G| zB5VfuAQA!zjA(rksf9M>kDf=;y!!D3Kag7-z!=n{b0;AT_li`d`=IFcyPS? z?r^W(ctyp2u47h9czSTyc!dV;LtRL+j09`6MCFxs64{GrM@ID#S(cP{0qK;$ii}<6RP8L6sqxDksUd4n99%C{M@j2W|I z!?9jyF!2^PF{9ear-zd4yv#cZr`Ph_(f;pKY9`50<*^FRNS073T&n6tcW#ZnU-|Fj7S zL6x^ywXjLVGGQk)0N%kSAe%>r^4mv;2zZ#KcIyjuUIEeaLC|?qKysR+FG5mM6(qmn z;$NNqV94geAoAlSNhFiPKUN%@*a?I3Pfl%9>X`8*)B@Vr&q~(N#h--!dG4qjg844G zZCc|&r!CS){v>Yv3BB$QMh$;_N~kGbC#_PblG|*0RIhugKnj~Vjs^$=oxINhcP6%k z6B6~& z)`vz=GP3q!bUd;o^bU>J$~_sn5(Yf1Kg7{Q*lLjoppQ;!IRtlh&^Ekm`dX9fpPdmw z^wf|DZr$ap!&Gkw#Bc52jZOgf#pKBK`%Qi~hz2@O zo%Zi0XEWXz7iP*_wQ@y-Y0OBMAVYHnYK9mk7i~~=16X)|dVxiZ@3(@_OZ34(SngF6 z8eWGXhPx-b!MFiR@L~Jd1VXQUtA1O}Dpkn^3ppONRDSbdXP(hExoDuTCQvL_Fl9l1 z6y`;SVh=)i3sHQpzVEE6ijCbJ*!X_g+S}ccZ^YlSqzN(rR}U`KmgJ)AUhxGw7yaQ# zWljenmOYgVDE6H{ZeB>LfivkssA?1qYSAdJiR=}8R~=j=$0rAe%oshpX#vT&Udie; zCW7|$AZ8{QXm~2z)*pPS5qyLF@%e=#9daf_0nNlW!3H4-687hR7dM>xdOxcIKm#PH z=gS^*!bcmBl?WI$skAw1oFK03;!(Q{htw1*1yCZFakhH{Tt1`-XOt_A+5;tw7$|FA zW@V6jeNusw{+l$v0heOC;}MI4KUJ%?MCwjR3q3}v6Je-f(3?s>5^?8Lzjfv|kgs3! zKLsJy#2XZokch)^K&~eC@npE&l-K%NkNw7YbXJSL=(>XjX(6uPY`0_H5+&2=v7@gg zL@Kq5ugTLm#D$lO-rOUS-kl-;j1A8@KncD zPsNB`diXE zq*>>pzh`5h24qrHn+opf(|9=TAuucG9u-x<_|F$F90f@;8xGo&4~f(MMg@Pz@!b!c zVL#ePoAZa9)8;@!jJ46$65xreL?b;wx480Cr$7Km)%Z`VQ~Gt#wYa`{{kEJz-3kaC z+*Z~M#?_XuYzPx-oYM{#l-sUEixyWwun@a2J&h~O^Xrbp?D7PJZ~_w>SIz%KM3Ci! zxSARv<($VtpkXnap9DbHXJsxNXG*KbQFB{+h}bm483lm}=i3VJN|lmC)|Dju;FwtF z*u{->=VO<%tU&7RaW)H&pS6gdpL_b=-2P~U`@)r6>^48?Fb!9fSU9TGmsiYkP?CG*iHn{Up@c70Tw>fI7NVqu5QMFc-zNa_hH~^qMD=iF#fnhS zT;~k8)e5dNTn%n12y%0YOI7_&f28ehL0lIHbP{2e1U%Ejg3&+EsVk*oRz>Q=_saz! zHRy;Vm5-~-@AwW}zL*@cig-3tgZUsNRXj8*1f{z2qKcjwTN)cAEUUg_L}=t2M5p%; z_W9PAf^?Z{i$P4G$q@1p{0jxS(T|LqJH;%zn8ghJ`QQBSPYylN0dBhT?!Hl(*hx%f zmn)wd(Q(Gk6Vs9z<#^>rxTIFi6lU#-x=1NA%7(YBy!j(D$eDHZeISFJGr2y(05gNE zyt-l#=+~!hQqt+6RIejXohKwdc_Qa<%*&2rI{SL6%IkkS~@=q*p5^@7hMVLJ(r5KxShW4njN8xr7DOZ`H&) zW@ky6bAOBN-0u^I89P90ARCS>Y@WimJNtrG?ix zC@pJ?!lpq=xxG;;)8umwFh!Xi%9`a3*LFe`St3*`@N_3s5(Pqa0>^hk9Z?`uhkCoa zzjgF$q?SlD9Ub`Fts`-~qwR}`XZ~fL?`S-Z8-Msrh#3eTD*ZvlPZ%v3;nj9ydv1p9$=~IjKOhESsTE@CvgW7j%(j^Rhe7W580Nq9GOx?V7+M0T#Mz7J?c8C%}tDVrXz-%r&4T%s0nuTxY)H0%2yK?>JyL znDJO}*O~LlAS1CY8e(|!ho?QH`byiVOwJcXJade+xI0USqA&;ZqYrxxkM#A}m+jtX zui5GQE5YDmEKumzX4vt<&#+hxtoD@- zf|9q$gyNy>WoP>?H_wsn_$34^dAU5dFg}&GRHPi{BOR^qbJFWo*k@8i7UUXbX`ZP^ zV(J_GQymTvt_&O|9Cn2X(LKdMCE;vufy(XFoy&{9FU3S!K`RbuN-qhB>LI=24lBzg zX^I@fE*cRYdsn;kL%k)Pc61?KZ1(KkXe36|6K|ZYUTXr7+~lcX9X#Un;f5LW;j;n? zAky!6^1P|JvZgUSDNn?#sP(7W@Og5#gocg&vl#%k_Mk}#F(}UGZM5?xR5A`(pF9y& z?bTqM4ecbkXB$noc@f!5F^HjlvX{958@lyq)W-v1(CrK2%s<2_<`7+A2M1FJkaJ|4A6|15UDqU=y=mCx_nYxXq=~s6BF|pFQ28IS+AFK= zz)!?)`Vqto*hS>az=K$Sy|?w|SQ(LG{K9HLJc;Zrm$du?$I-LHR|VrBAjm|o0Ath= zGWMud*E0-e(CMECF`o*kXL=Pv^i2Fkl>+pU4;q2@=oRcq0e4{x459xiVa_DhO*df%hpdIr;bO&LCy1>`K?WV&};&C=IOYO6f*AmRk zk7EnsI#RPlWR>&-V}qK)5QET!fEo;SGMKt966XQ_~iXhE|3O$(cl23R{F45~uet+tnpN`Kg zD-G_2=D$PF4a<&tub#;^tY9Js|c(XBqLyff=8$bJm)bcn4YoWO`OCA8Tw9)8iV9)v*|F2Dh3g6ZZ1y6kZ$MLcc$k#wm`@`tV-A(VmvIBQmh-N0S1 z3kriDIp^`;^N(}dRBKcV8{jptp@%R$uB)TCywuPs~A<<5z5ZgS7uH_|poQ=V1He zUpdx3h>j;#c}mFn2_1!;kbLMSQcMPYPKm>nH%3|!Z6c2n9~+Tz+?S%Hj99gMg&+i6 zG%oY~i$pORJ#oRZarMFqXkNQX2#pX4hfgufvWzdf9vZDB7ta3?I?URSY)nUxFi>|yV6nQ7H?c$NKE&jX zy?hzp0p~|Hd`y}RkpwR^8=}<-n_Csm#*NTgZOA@T!LJq~z=L!2`aEmQxm8ZdjN~?| zOmq@BH@irMjtLB%m0d-I#S6g|5*9WYFw>lAxP}<1VDu2(a*n;+!=|2+CW?zv^!OSx z4!3>GY#Uh?I1~!IR~2i67;fsO;PND|rvqU|wHL@<}sJ&oBwG?LUtfx#$- zKqMueaiW9Jg%5>b;$&T%2i$Z-Je+>^+!3IH@Mp}Rd@BG3?a7ETqrMTWCh%Hccq_XR zbUZ*05n4X`qzRc|jtQG-f-<5TSw|HWL0v}Qtr9ApPN0mP4$e+;cj+O}!pv`XErelt zXD)=X&)&rzkQn4hNB=S!@^$Z`gg%I;+(JU09Bmm;)zr+@PY$j8&;K;x?(XmG9@V!`4A29DsWB3V z9>k`{2O0UW{W5ZeR4;O3lsV@|T2@gPft{<25vsDp=>a_sz^?}2aVLq&7@`iP83!*- zy7G1M(L5EF^?GY>@8s>#!TUFFMP#8qbN1X>H^S45a^V!uR(@NvoV|Y<4P-%Q-TtsG+x6siF1V7N z7DZg@(heYqUtt)*W5RV|KIYhTiLl~ymw-TsHW-ueB`AQtj7iH3_3^XS2f7sBj*?*lq=srtmNzj^yCr& zw$$VbvtQozRO7h7LAA$4c{}rHh&X@@U+=4vGvS1lQAaV9%(1X!@@Y!_te6czbqATO zPF0RX>Yb53K&3B9mqMn~7g!xwsvMlWI`0n^=5Wu)LrxqZFDR3uBn^=!(WgE16Ml-8 zPRC~sAJiH-eA>^I_ejWooQb^GG_oh+K<+?Lj1f!YoJtD8(YbPhbDVOy!qs*mqmC{_Dv6x#3`fFxBN;%+B77)khk~GjDpBJ7092he zBwKN%p$ub}cW;w)OgcM34N1sS3{)!^mW!!JGL=m*2{K$u^%Qbc+&=jlWAh63+d~$y zmiiNs|IV7dQD+sWmWPWH0jJ1+h4oU|w*Qq1sr+{*AI^F7x&Mi{G%q}|MrmS8+Zh4| zUu;FfSr-=o;%;xJc+ygiaUZmHk3W=2J5NaLBxICw9Mg);?EWn&W}jY@fB8M(k}+wCj#8RKcx4 z43Zal`XVFUqw{9dS^eN&xUK%>BkOj1b=~IJ7ZwwuuB0z32}`yoQsB@lZE8S5So*Ku zBlUGq=r;t1K7K{&#d-)0>yj7yXIG^<_~#ZeS-5a#}m(EstM-Srkq z{-@CY!vCMWcmHb}#~O#9pZiz1>^nn36G(v43#Bs@LYp0KUjl7syIp@wV!+cRPUED& z>~#P3_go}dw&hDgdYPH{d3G9X=}0;{IyyQ!mq+k1&i_~8NHFLBU*SRF#~*&MoFQ^R zYXA(4^hM|6OY+KLaxn7$M|1u^=l_2m{vQ?db%T_gb;tR9g=8?X(lDp6^)jOTeyCe!XpYQ*o2azBAYHIwGi|mgJ%&Xo!Qa*1 zi?}ZO%ev_$pe1SoO6Cm@wyafYyLf$t`+q3`OIg!Xl?M-`CF4Ei+DZW~aW3!&=PK76 zUpqrsNA_R{balhAFfmzl%ie9gZtgThdFv-@)p}~x%F++>#N~+XLs+783xG&*fe73i za{i;h)9&!rqHt;$A+drN1TvZg_c`8lnH5Asx95_dB>?e;7N@~%E6;G5L{s?cvW>-+ zi!O6edW&r{I7%B2M-&tYq?gZ=!%j>I7Od9e^P;zeh9Alr_CkQ(+DgKHpgBE+*5UY2 zBUNqA^hGq3E@2|%IWIz6z1G{L2%dUJsT6cFbSty02n5VJb+*4BvwYP-#EXl+MWZ+< zee|)?3_Tq7f7LHb+y!h|jl-jZ#=)lcMTni%die6Q?2YiniL_I(_`lervT>L+kLU)2 z4pW;kULrWmL6tR4Eh+*t`T@i#@Z6m#)(_ij+ z?V*n{%5vN9t-zd*Nj}E7nk$a8wz2m3;p1f|7~DLcuJ)sKt}WIGY|gv;4cS@t*9kia z6G&J~*sSa|_Z#*}V|&-$K0Q5YzBoH=w5&h)^_!FCX+wLTQX36f7>2CKZ>W0o)ox?I zaoR}2p-ZF0TTX=Zw%Iyu9==R|Mn@F{jqx&U+F9&Y;{aro=1$8h5jWRN-dH^1P~a59 z)nvZoiL3}t5C#n|i=@o~$to26m6Cip0~VCTZLP+Y7xjRXh#@DrqQ~ z>*VZM8w(8dkBp%%t(Xz2-0~z%Y+21i4o=U+V#6P2jVKS{w3%BVQjPYVVAP;LOKP26 z`k46|b^s3RBGwKzqPS!f9`qeRAqj3v%k?1a?PN5+{$xE$^Z4+(Rc7%4_dVL6p#BK& z(rbi>AuNX!pUTU!aD>lJ*ALuRjCXcv!6o83bA&g8tyC*$QkA*;5j=5xv^AU#)E^bQk+J5!K2mn zCu?guSDm>2>f<<#A@Wa~2Mvz7;?UKamJ+Aq|L729Q<4k2zEP{=|0zdYeoCrv8BbcZ_sgSCb^yn& zC95u!WFWMuFMa&9f}c>7t8c8YuRmJbsL4l4hUU>PcdqyS>s=5iPI-(aV!dTkH*?^; z@-DA5K&EkGdg;|9Yn&OX>Zz!zPl>8<{_ljT2$<;+^;vNrjkC&qpdzevevHqJd=+-0 zoMc(q8%v>WC1+C+`$nz6%0Z<`P5s5fKyWd#bNA>Avhjz`2BQuXu2>5~yP4xa#upteu3hDB-kfrutl3@}^3^!lIB5u4ac05%(aEQWmoP;Ndm85i) zjU*jG8gg=no-%Cu8eF3liB)3QF`__?o3A`Y0x^lC`#X2eL3|g96|O*n2RU9S2VJQ> zYI8!mZ~|nsR?OmqyIhD1*nVD&M;Lt4`p`$s+OobO(Mh6la&mOSVkJf<-a9%w+QS?RfwZ&uiI%m!%k4KdR{Q-I&E~O_PcmXfob{7aFv|?G`U(2j~a)k;c68sq9ly% zot;Jtb#sT!2F$W~#5+&_&7zI<+V76xV>67E`tJ+hPa8O%%HeEnziuAwZ)1|=r>XEU zdkN`2;5@q+mAmAaP|y{N*!sz895+r5tfy9kMo=y=)T6W0qrHR1K^np$ilbC0thG2k zIXVU08{nKA?X?Pn+1ozbS3tC{q%leR__A>b-L6(B_YB%2QGpwFzrbk~vVO)sZXE6cSr9S2eft(8sUhRznQY9r?>31m&YHTC+n@&;6S_G zA6@zVTkF)n2Epr@^V`qP@8hAnd^H9Reu=ll%g)$b`SD-UprkT4DEZ47ltcmsfg}fV z-cBS$MC7H61%Y%SiGcmEf~Vn(Di1eyox>|DE)#m)k>FJ?TQ6=g)y`h?t(_mPN>WIFS1&R(UkQ#A4RWFEl4utZx$B;LPJa<-Yw+Q+ES1Om z!V2Secj%LGn5@aJhympg_b&UGkb&x~l@YDvuT~Nr#(~Jrl&OOIaqM&}qT3-BM37}9 z1}W%<&c~QyG3pk`%boR3d_jbXlJU0ByC`dz6tILBBXt;kp1royWio4y1e`zykA7Yw ziiBBs4s|M)`V*v2gaM#L$!F@*Gx)MxU~b9fGW52@o&$1tzTpS=P@oy1DNMt64WlhM zZ@|xz_*a@70X3BVz5H&w`Y)&Y`~TjHAGPX}|Gi%-FR?e~&{fzOA+1pJ&$w}3`)tU{ zGJ%>$D#pzbM+slAir1LNux7#mh5H_%uel81;Q-3%P)?~55QWes95oU$E;clD)jJXK zIjmPAHW&d=z5Q}uyKe*j(}+ZG&{yZ*+_Nwt{|z`O%2)LNST*>6tgp`fKfcO?R((Ut zE@i>dH^3aX9XDu$JVCMDNj0qE6HO_xS?Qs`hs~x-C-bB~*{fYvuf{Du)%1DcQa2r(EOx5InVh2q^gs2D+I;{28V@DC!3iffWUIMy#JrR20fEw@+y30^XTF91 z1-5XhrFr{;Gh8>1?B*e50LO!4<1I#57H_nTSmTVi1845;e29u~_{ynA!E|rD5gK%m z_l|lClmxUNZDrxo9bpnUDk%ezmU_V@2A&q*Eb%uxBOTd1ynFZTLtp4dXnViGBmz7b zn}QFB?Vf^I(*`eIVDD@dA&B?F(6GWTEwC*LZl@T0i2YsZ^e`AfeeBZ8dB|NBIMs*~ z1bD|?BDW9D95KIE`c_Y3{|8bE{PqWODVvc1khlM@uP5SvuRVG+-~YeH1N(nu#;t0# zYF!V}wra@vL*9rBVy&1uYnY<|{Wb4#<|4vhR78l!|M9!N^}_G}?)ANV5rQ0j;pDr0 zXm20x+6VCC9yRcvwW+}pKJkL=db&M%Eq zwo}vLEL^XxVriBW_#Ce-Qns%d4!X9!a!aI2?4oG|3!EGWYj-4?|9ibeRc8{{nG4Lw%Yb1 zZ>_q1P8Ym$LCYfYa$jf@>{pHL-NuRiqVckMc+dI=pR*T^yDl2>N)S@a;7|<93-WlJ z2FK7SeKV*iRxDpZ|s# z&qhA-Gj~LBuX(|ChTg?Ur9~u-$*b+x4SV|pmexT7$lrc-LKr(mRXu&%ZS3sZgiHLO z2WOFCV3LR?dH{J!W3wV%*ng$GL7(_bc@xAAkwh%Dri$=rAc@A|u6ZWo0hU>`N$mgU zxE#M`{I6OaHjhO7ui8BR*H?L9DT^7$&7W9t&jt2S9O>-~%@+wqor-e}qFjI$NFrXc*Bz?HKG(D(N>FPFQ>@l1TF9Nt(Uo?+ z8L5P~f?PWc?t=Bbm|lA{cRZ<>9YQj>nI&c3@eC zo;j2RRls|&CHhw(z~SGU>fdTrj(|@xOVz6AApBx5@}^Ml>HV$ru5$mdr=rtZSI^x` zuisbPQ*}6_L)gxP2iPHQ8v`Hx_0Lz|`;*}RLl-?lI^GOT!1B(28yk-j_rJBd{nuA{ zC^8r?>!C33r6{HS5$Ack0D&%aNhQ93-^2B9IuXu81JBQbf2OnGRCZptD*B@|Loe+> z$OWr|q4x=8B0L$Ah@v>HRoZQyzy|3J2P)L!KIUQY=tvU)?GG`kP8hThi&me@v)BEs z$WVLG21PN5)lz{0WlI>zG13qh$MoN049mot*=WmK1bz>XsT`(^Kf`}*RLPR18p&;8rqhKrASPDSlGA^L}`Lofx1Nha={~YH)q!Km|y?#4nYhEYUoj zeDOjac`6~5GBd?Phs8P&cPdYGLPlSjq1cqv|90)J*Z<&luAJb?#>}6076fwk|Bbbc z`1x<+(c0R4|Nj~f60!Snj4m+1W+~AtY<7-?X)Z#mO^!~5u@r+Vk?US$Dq~uqie?k> zjmk_6#mzaRH|9dbT!{D+3lR$jZX2~NLu+!9GH|;g=d$L%8ur2V+l0}%uqM|v(Wu*q zXrjjeYcLwxqfj%fUWHkD5h2|t%D{s)8|RE!%(u`2tp-RY41dq)MV)mScH*`qTxbqVDL=q|~UAZ6Gi z-##CsRe@Csk&pjWR8RYqYKY*oq$#vtqTUvLsXo72##Tw1`GFu*pHmNPEKYKxUd|>- zXG<^mjscQ4fZ;V1{!u_c9T0|7a)BvfAa9X-d#D@(WbQ)ilhYkjSesgOMj}HeR99$x z7DnOJzln*c@bD{W6mTyLj4iOPPPoPJKBUSv*7{1ww-6qoo#bgW)ELl|kp69es5MQ5 zwQ13}($WAZQB7M^z(%=zX@J7GoE~#*QY@1sfn32=Zy*{a4W@yxFK%tbw#9M;j{ud- zUMHLx#7`usX8X$NU*bW=>A?1gF{8S-KSkv2&>ure(Rbn-yk_r3;?&5gj=Q@gxO}_> z20LU7tFm_g#-^-cu1&r$m9)?C4@f78!bp3xf{b4P7TU#_3&7M;srZM%(Ea53|_} z%{=DSmPw$54AynvwFiRCVCeOnq1U}tHsR=YdEoV5zR`}Ncm#EabQB|DD)`t1{<0=6 zPy;&U>jx_SPG_oM*j@pd?!x~GwTD~yr%w^emfIP%+EV2}S!M3UvX9)c4SA;{vWz2g4DRe9#hK1)thgK+o0C zzvi4+WJ{$LdFF|HTcI`EuFEznZp5Yy1!=wk75?%s+_oe0IQpc-13E`R#p&F$;P8Ij z46JK+5s$HWmhHQwOu2T4D`WJhu>hCnK=T6!B-M)b!F2~JCk-`*Kqvt>pM8BFm}Pk2 zd~tNNe-F!&gpWC&IAu&l#LZsfw!%NDQ9f!e(WfxEMvEXoRW5@^B5};FZ;FG_{?X1a zoV8@Txoauy9@k$)vYekIdC} z`{URf;(?tcl{kVrzD@g>h8}bq==**996ylvJSWZsatL5`GKR1++6W>lL>zKFo(q)H zZ^9LR$GEQh+sDU^UCaN}9mtpm6nL7$ZSvLH8+Q>pdg;@xx^D^VL>D7YcX`^;;et%A zBXqDV!x11fZN_0NKkB{uG3=JQSGy0jBJogFZ(4NA?_XS?uO{kIDztw)UFZUa^b*Pz zw9mp0b4o9<`FMdi;)<@pM}$)P5yxM#YAP@S{vCRQ=vWuQ4G2enY^6`P9EdhQ=8BEC zJNsv?=Ie%yuQ-1g4_RYMh%>6HI+>hOK&0q4Q~p_>W(x1_&~$Yel1eJcjr&oe6H#g@ z5Jmx#n(<_dKX@E`F?&VhPep+m`=Nhr;Wq!GwOb`tB&0%_{z!)7y2tO8JCR6H&V_jN z5*M7G4u6;9Or2eaBz6R<;>%T0(^cUdNCn)BNQoIX0_9crtsjZV?86sWSbM!?{ZDOU~Tp6m1j+Vp%()JztY0Z6r7 zvYyhmC0S83Mj-Tu;o3Fm3aQ&Kx0{CsU23!^M`JRv7q+@7t)bOJ0)+;j*q#s$$Ujz6v}5Q z9-K^l2vK1$+K@eke|7bA1`UUtl>!yubi)wtOPVI}+G2Zq@)2mAo}BHR+IuwB`}XOt z#|?5eaVg0J(8)CpTj_rVgT=FvJnLPw`=hQ1GOCHK{F+5(y}`4?X6tkpgO6HT>2V)U zUL6*6rSzmj)AG*hiDy*+s$x7IU$uMijj$=S;9TvZs~ER|v+@#ys%S%Gw;HGWzeFM# zMZUbr=EF)Dx#;Sm$VHdd_C++}2zco)g!0=0Ptz280dYKGiCTJ!ACTytt} zPq|!?NO51UFkSp8W`R9%x6q6X&yxb^mP{{kFVd1=f%kNWTwHvXT779NO)eVYSjDyx zGN(BzvI0q+B7y+e5e&fe>_0|MB~70TYeXV zE?ZBQ%?i?ux%2PbR_o7ZtCi~fOS{28y`FX8-nzrkI}|E3xsxyz!^I%<(d9H`lvykq z-~*ZH)$&26R=!UJ!GQHZM`4p(D|? z2UC31+FPkx50~rK?&&X9o9=qtuE!3R0WSrK(Q~1n7VBv+6a|O3mKp07S;c%x7`td) zjE16hMpezdJtF{~I;^Bbx1D%0HDxk>v-ghn_mAGR?AHEv>s4ddZvA?&-#q+9S14zd zvudGIS)-Fard{jiQ%a0V(9BB`NrXm-ddZEOA(Lh=N{o_v5F`^$8GkB`oGd69sMEc6 zZUd1u7&u7p-0uqWC2?O1qr%N(g^$vlH$d&;$ciKvfk^-a353{(M~o`U9LF}RB8>xj zh#)OitkDpdI%+wBE*fF^eG#lT^biYU@4_a|Q4o3K!%U92yQ*{*n9mW8!19ur$gM2{ z`O?o$XXpk2vO)wA_}xz~b5cB(aRv*_oWOg`cJrZfS~`GFce0*66i5vhoeh#V=zZ_8*9V}eu<)Ri%^)N z9gmLI5PmC02NCTTYV;>z-(@L99rZzQ=wDt}^Z?}%@rSv0U@hW{MV2b$X`QYlu!AIK zY!ZVT2gs0^FCe9#9q!nBs}}8qfv_iLy^)AyN>a3TlMCA<@FGm2jEP4uCb?sYT~x?3 z%%X-aT|5HAx+aF?3@=G99Z)xb6HvODOAp0wzmI$BD^xmFF!?N91p`O)`oKP^2Ouef zTuuiVz5yJdzBAsRh{ZAT7TQn{9ac%_C=wh6Gr|sr_8p3IN!^be6@34)>r%#gHe&qgu&80|oBF9JE6-ko~TM`>m0SZ2Oj@A8%alWvE(+Oa^7b_Q?mA%~+yuMuEv`Two zLq!U!BtQgkTC&^Mot2CB73{GqC4~3~;i9|(qzGFsedj%MjMgKrtgTCHw9Uh-F4^Q{h;qdf|g-JP> zP}+2{x)6wkZNeT*0Q!t-57u{u5ddAvN;r6+9EnUnqWW&}>KJDWm4nz5ad0e0fr-A@ zM~C~r+S{$2W)tR`VkFk_KW?AA9w`Zha9d{bB>zk}bU1Aw^N90Z0gVTA zpfwTIL_?;(c8-4y%fkN9hNa9_g0fX)2V%C~y|<7J-3Ad5t;T5t1Y&4H5C<<>hx?5~ z0pdL9qr#&wjKn(TrKIj+r1*n+TB&9%E6C}nW7{z27D-#|8VVFbx)xFu12`?dprxLH zR)Ww3@jRyXMbr!&uM>_}4Z+mcR8XX4fc{_O4|}xC{UrBf_h!)by%B40QvnEToRS!E z+4@7h+Lf7 zk4*LI8(1-;9uzQETwBel2n9ykMv1=omv9zn)6JwvXNYw}yBPR2@`*?(Td$z=Qh8a) zJiReFQupvy3LR{?L^t5ecDn9KApa zFO|(nE-hI!Bmof1%VF-U=qk;tElM;5~>MrR#}!1$i^6 z`pN3=NEy5%9R(UtLiLO0X|&iy*Jn+qEVlb%9|N)2jkm`YYhU|I%q6SD5BKf;?ZcPN z!@VP&Cb~}l5a^DPM<;mh9VIXz%gUKKahjP4HBx&#~hm=h+hutVP%XN z%YZE(HX6IOkWO}w&M;!kAAeZ-+x?@%m*NxMT-=umWb+yV;pK|0RaKibArELg;i@gt zG|WZwuzA|JTk~Gf2fkG8`#{va%wA|iP3_9v(Lw#`>iyABH5j+AvoR$_T6;U*#~EWO zL6)%4ZwAwL?#tp$?_sw9PHFw_ZSU`+U*g%zSG<62+-7!c+j?d_(ylbLa#l%%gs+vg z^=l|++s;Vn4**`NWZM_OFwxm@e0gQt<+5pQ@3KL!Jn+KVZHoOybVfS|Ya5T=TOnEq zc~SeaoBHK6r;d{6>iQ>j-V@bqb-Xf_Y9)&WTDizcN{q@ThMDLM9)hlU<4JtO)6F%X zYLXKf!(A%su%8CJ#a^FgmCnH!VIl`z(K4yH%0*QMrb0yNB>N8|39|o9D7S{^5#8?? zuRRo!>rBpJ<_7rmMi4r0;YWSxn^cLaaO7zX4?b(Hke!b`8OFD)1 zH7^Z@+=V;R@jX!eo5(xQg)=6K27Ao z9i1#m2g(hEe1*Il)xAU?LfDdoxMq}AkW{2Og-D#Pj^>A_tZH#JnKWR zpKn>Un>D^G5e;tRReHR|eXl>h!I%r}hq7V5$X6|sa+Bb10iFrcHQFKuq_q}(k;>$A z)PBQyAccw$<+a=TQe-)ad4Nrsy&lAi=vHjoFB(TJ*st(qiFQNWn@=$Hu8l@2^|Cg( zi6tE4qLJ^R6<>0xM^?I6=4p#6Z%v8SB>iZ#H8tBMCCFKvFkay-O6w8SHJ}ETsgsN| zWO=qAMYA(?(37o;OI>}pQ9f4aoe9H|7Zz~Xx9aP_={f|C^!8y3WZYtaZ&>hOaJ_2? znhkyu=!tAaMcPO-5otld7vRapdS?fh_WE*-*Jbq$LUi#A3cW#l39`Jj7M7QnrH&33 zdj~#}DK;6Ab{6Pr#2KQie!wbsalHWzBZI5%cF{5c?NY{r0UAZw?+T5c8r5&;|!~Y6Cn^FRg*%+~oTG9eHP~H^^7NI&$TC;`Ab{o(TTsg2r z7eW;h=aUx3s&ZEaNxW1Rs?Z(<-@xeFazzFav_n~C3lG2Xf4=;tYO50J4gM0RkoysC z0~op=;dAy$-2=Q*%6Mp-F&O_L{h}q!DvXTZt<^v z(q}^mS+~083FAnDOENUbM9mo0xIZ8&<%mtT{dBMq~*6$6)AO_8g*a&17gW z4zAL^2_mo-VCo61KdAb^i{M;;jpVJji#E+$BuZXkS{%`f#edfpE3y+>3==H<6BMIP zmaP*0T@^a>vh`Hd*i7xTKS0BMjXlK_W-xW7*^owpGRj!^?!XC(`3Sw=N;xN&Q-~Gc zMo$%7k}W=2%F?#qH#;pL=LGRyw*#am{wK=vrE&V|GP*h74$P%sU9+vXiznBStKv$* zzt_uwzigfQmP2t^#Z>_`iT77-zl|1oXkRHjBt*@MB`q8s?iMD9gE=3KN9rDMmwU}I zPt;f5|9rCNr0aI?B4oK%=z}46&wB zoMt8Cw3^yP2(OOY_IggYI`An%fizmMoOatEc0@cTJ=T}F`%vc`A_D=%CMY&5L_%5+ zq>x@HqzBT`Bnygkj@rEQZbv0Vgo1Ef()Fb`?gCG`!tg}Zz`1bA2gXtXCi-1lUM>J% zVs@0MLP3e)#3;jcaU@5lZNY){t$bOLhV3NUvh};*ZydNI0T!Jpk6O*Q(48PW7+v|- zz%qvwi>?KuRRq_K+%!QkVAg1soG7gws^YgRNE>*#1e!oyt0v9b_SsJOwiLeJK0e-W z@VQhwqHXWIB2B7gG4*UkP+B_K-fh06U2v06Q_vSYRMXT^jq~xvyN49}Tw2zZ+Peq}o7y=|eh*P(0gkHAqlC8^u3{0XMp34KfSVpWK%w_k z|FY{+O2?5Zq^xjU z;tim{Pk;kH*4+03@=bM1HzYLOkb4Z%Y)9s!6jW=GZa?lz;RQBKDZ#M)p-nN+N*#ZU z)=xJP=Lx>WuvAMAxV0PM6_Ybyo$bX(9sl<2hTgSGoG8jr=e(qiN#~7IqS*1Kq_8rs(u@y(3PLOCk zgLa9Ry#ZtNlM{@97X=iuN4Wc=mm&pGL$AV1e+b>^iL>WDG>gF9L*>)J)z=%?U9Wd; z(?S(H$IF9b81TUhylZY*YpeJ87L^Y!XxySIl`ZX78t@*eiQ)DVZ4$!hKLBKO?He0E zeRCAHzp-v=UsW}AL9dU!U|$?ev@GM=lMfXmp7fcFBH3H^rOr5X^X(U_mjVNbDO+-{SzDke72KX6g95LSlN(i1I_Pr_QdM_b+i=&eK@ zwt`{1Ua{2gRrz~~^R|YfgNCpHdGRG*uSR`D>(M_~mCq=)xy)06##Y#@_%rHDh%hYr zE{jWd!hw1pd5x`D5rC?Kdau1kFGQuSOg5T;Q8&QQ8%^|b)zC}fkBNa0YdCspkN;iO zeKNTp%4=5hbVZ0{@&{ePZ8vle<{~(A)#n1gTcP7Bzn8B|+RT*&HCv^6IRiCPU0F}- zx4dTnm>tr9@GGsQ&R{cI?gNNz73((@!mY#Jzy$q)ARF;zklJgiv}7gunu@+hDFF?c zLB#%pFJ)0W3Vq-{tZrH#@EEjdg;hF(ch%~L_c~^&ibroO&w9qhZ+Y@CtK%?=kB)cg zjgYJc^>^O;&1f0L8)2~zfgNZKsz!g~Mt|c*p}W87jm8@`G>#-XSbg_fq;Y(>%?Dd? zHZ8imWPHDx3I(v{!GtE;Q6D0+TjrW(a9iTv=g*@%RkZZydx=I6MLF$!4r%?6Ln;KW zPTtp7oQP689|Q1??h{?pXoU{Po92b7FOlfll&eH@lhz7I-&%c}`8f7R9*S@Jj_A-f z!%=wUyL0R{?K}=$bBi!FPJl1AtdB6U=YXl9aEu@pH3aH92PAyN8hUFLi{zCsurF+s z>~@OLUAngwmYJ#}zsgFj00V5It+?BHiVmei=*{`cDsnULf&#qZU)W)4%NKb!J_-%k zP-F}ICOc=xBjZ%DZ#r_LJXbsBN0nW5Tgq(0yMr8gg(p7-U2$lL=T9wX>z(tiSFOLV zU=RrhPCV~HDBOB?{;n@yp5se#sY-Ik^DUmz{_`4!f3VJRJm>BRr*HK?QPE8te*x3I zXMN#h{qd;)Fnqe@Xa$~c^|wG25EGdkH@)`+UV5 ztal&78T`mIcS|(V2`+N(#zp|=8?7^D48`2?=6cbuQYu3+k-w6!vp$_SXdF*i1=7ELxvzPhk#C(kaJ?~GP&3=Z2Y@gkJOf( z0YMB3q_hhg0{~c(lR;mR!0G$ydmSE5M0<@Idxzhk*2kqti~p50L5PBOpINJnsa0`v z5Psm-?9Qe}7gmGA z;lHqvSHzUUe;lRF-K8yx${h1Cc@QdIRob&#Hcym60(_sl=Z-RSF2=@6}tW4#>kDOZI6Ad z%)8?z-)o93G9tTvjBQNV8`&=HGBRbO+@n|yl1(KbtKACO#!vxA-SyD-dqn@#cfnFZ zF;b)k71E@V4q=mE1W8XcTIJz9;|*=@&#_MC^ll7=b>a zcX4dKxN|}^gE(9}HlL;)O)-(EelDt?C#s)|>gUTwy&2+=?hhkxNAO#Gv9{E~S}X9; z7L`ORA8m0C(m}_{3~d>6jHGLxrf?EzoDWv{3@RNlONSH`i9XfECo0Xy6^uS9rTqmW__$n_cNl7qs))X4DzQFB8v&|{!2Kv1 zt3_3K(V43!MhmCDr}D-wc^1)FeR$j=7g;Gv_25Ld^*sE%%Adm{OD`W!$&sm$c%lAE z(_ArIA|k438l|vAXlxhJnkASYXAKnm(>5SAs=b7bgv)+3msRd<4H} zShYw$r3poR(4q&SE)bPC@gs35ri%+l|Lj@pGROMETB=snu%jw7_!15g8(KkBN6YA# z#Uek%i-dAYlwDEeO=PjdD1YDpgc9g;oe#tjF%&b7lp<@ydMDOE-Q1%HCkaby6cXw4 z$7oMKnpQIpfau}f$25i}>V_=sb7YAomgI9-l2So1-J-0BFMaVvt;Rkr*CYU0(4cG3 zkPxvL2@HDwAZy+Bf{t3ZA@irJw=HqXs?ZLmAwAln6}y}S0A7FOUb-}um!m6SoI$4? zJEV8eJZ|90l%X7yYB7jaU2bcB2+FDMxwS@S9qI+l>>6&d;>AJp@aP1~ZCUH#gkwi- z`+V%d9QN&Y_jm5sX2cduS%si;Z{zJT45(&PCLzsYME?f=iBMe>6)<`1C46{_FVdHh z@KITm7v3tVNRT)UZ3n@)M~)m;v(ac+j~=dv^`c3}6E^#z=g^_nFTkR759TWOw0Ves zAy0Z#Hr0I5+-_N=2%Hsb6^SNN{19>0vi>dPK6Ss${lvqWe52o)mkAC4G=7YpAIE)M ze*cxm3zW!wGkODm?GHQexF{U+1fA?r9*+(X}8DmyYVzhoW`n4VjBx?|>PR`OliYad)Qqt1 z#{^sIVeE(>?}=0~87EX*bhM_NtTmL+=hh$V+4#0ui+Ao`dVO>SdTMEB z%y+frWfJ6d9k$T>0Z&MjWt{{Hs2{Zt^i~4OKj$(Vh@K51mLb!s22`8xL{}mULZUcw z{L$OZKNrVrQ<95yXegDvNYj?+YPP8N^+u z#yXv1aNL=oaw|hUrNPQQ_a<|=4!lV zNKMo#R#uJhJ!7(3Qa8dqHt9vUOA%Fo(rk8pe?a+3P%=k56GA3tUWuNWeq-_kUg}@> z;SA2n%-dH^{}Ka;@f|pw#~C+#(vGs*i25}?O;Id^O_CAy05L*t zwR~rbuef(V#diVIJ}A%xXKdq@FR*TTve#~*lN(H8l1+*((}X5R6rWoIkU!$pm}(Ox z8No^$MyN`bYS)!A%vd72E60>jsaQP{xT^52tr@-I%6y4&Y(}dZgvM?Dr~R%muOKB1 z**KVhP~<*z9lLVLpCjddzr+yAOVK-i)4}l>s*R0c9>gpJ1h5C0kkpFGumO1>Y%o^n z2HFIQr$b!PTK7L219CPmtXmgkk>AF>frz@w*@np*GrWW*wqb-&(()P<#N@M7MDq9x z4_oQltg>mMja=e66SlE+)Q-^#FfA$igZPVNGzJ(U>v=Bw_Mk3uA0{7BRE@%+bV@EJ zbmCNUv0+oHi6AW=F5R4)*NtUe`V`=RCp1^qR_pBJQsQ!-5LCoI$SOU@t0uBpD<}J9 zFz40mgjab_Y}fTB;yWTgaW)DaG;NB>IbBV#$!H(e!hKm7Fd3VV@5&?&B&>=}8yp8* zVM`yj>Z!1CDB5wg*?hF)%D>kP>u(3dT@P;?+H2J|TCX!SkK^K?tCOnljYJ&x=#!K> z0LqInKb}DU zKr~e)^DH5FnHlG_ZA6z*QY9q7Jx?Ax<-&|xO&NF7mMENIhLs|cNWxB#p&8ecsy^cF z#LrY{9G_An$3sBjDODH3&vY7*bPV7lujSeJj(YcuEQC@xEn$uak-9C@_tdWs%)BGX zQ}jb%4m4Tiep`-vzR~~+-M7W131Ns1WQU2#oO6F{4DTJUX2u;cC}a=u;wE}EQ>)fz6dx|h?R8>(XKL1Q0mgxds?4N zby1j-Xv(S=S+}y;2MWl8?B$D39^=EOl+FF<`AIeZJi2`UCpwc|{b^X;SUZ*XnVCr1 zTcG|uZRu-fujHvj?^sYyTN-h=NlAQ(lHut3>=xOcaQZ;<O3!q{-*E(9}ckpvvwkEh}|ZUb^W?0SgmlUqaRkH3l}KuySrk=KLnbzYI1v6hfv? zp@SSo4ts2@tX5+7{G`YtwLCh1r(Sa*ClyAoF;m?MF2llg80AmHsM*b|G|a<0XqXcU z=D0pLai%irkPV9JY83|!wM%h(mmskWm*UrkWpP&%7Y1TA!(|h{2#t_p#9m7nn+|nj zQ{H)pX{0&SO`nAO^Nt`n8e(0LT_h!~Xh5^jq{F!K0<=FOK%Nyb&mK3Sym5JTDMhNu zB57!Q5xxuco(Yn`k$E)4pTr0~9vxscF)4M7`xapge-JDIN7{R(WQu^1*cn@zP#`-Njg)7qw{nd{6Q!jXFw#b=BTmKO&y! z0+C_T4Fy}ehcu@3oey?$-lDUd^txt4@~GQ2_U6F@(F5;&IdOey7`w)4A3S&;8WZB^ zxa8A&$$R$u`aL_}r)!^S=01iVzRC#xqvjB-Ea7EpWO;e`Sr1qe_wTJpOF>VDrl{Bc zru!QKrcF*Ha$vI`Q-(7$DW3=l6zly{hnobhv(t8JCaJ6>Prq>`~y zgvC9E)9|m+Hv)YV5t@jn!FzKUP{Tp|X|c4bxn8^k>>`;+(CEd>p|9?Vd^+~Xw`E5| zk6uAxI`Y`3cWQ47v?N)st*xy;qz$x-n_?HQs)v^x$QQA5Sz0Zxl%6c%uR5#^xfbO1 zCEz~6qpXZNS(2B+F;=A7yC{=aQd#ukjo9_|u~C2~_KA>`!s+QKd7)@GETbGE#LOaj zL~GQkv~seLGmMl0^CpMIGtm}!#S zySRUokVEnE;WNz;y=>bl3Q1|&2L%77_QZw5fbeGImaS#vn`V$XpWL7)~Y>e)Cm5bTB( z>qq#dn!I1SbOU7>U{G!)2|gu~(Lf9e|`_Q#u`xR=zHke@`%`5vLNtVbP<5%Lf5eG-o^WJh11 zZ0zult`iXfDJ1zTuL28Faz>b}s4{_Wh7+xo63|0)#4A3=qLamK2)4QfA9Pd5Y%-3M zaz@{hU6B>Keo9Zm@lMwhvFhJN(Gp`a6l@BRVeTV}J+d1VCOPR0rujThI6Y>?PbUQ% zov(z9PGqzqDzs8PsS|xBoK05C$e3(Xl5;xA{EdjWTJQh$x7p+}uW4XR^ z^LV2YKaZm=Vjmw39MUhZSgVPFvvy%b;!XjXn z1gI_f3FW^O@$U;se_urS`xyAKjhZ&orrp0LeiTp zA_|Ime<~^O&q=ZqN_cVM%ed$Ittfz)d@jZ+hAyUhc` zH{w=_=1c{&7nseF{vuL5x%Au)H2sDza*QE zwNye+dbDN;tfy9AF)8xUk5dFbee(xlJVJK1w`n711nQNARQZC1y>^)QBfJ-{L~?L) zR9CL`dme_hNZb$q^GE-WibU3}GMGBQwf+eH;E;tFjg^BT@p)J#aO2jHJOS|P^4jWZ z=8f^g@(N!Z%WlxxK~#$XXg@(SPpv8=o0bsIgZPLOQ4K_fAYMzUXP^>oPbF>vjtSJe zi};3JE))fmo(G~sF$i>DT?9bpSu7lm=~kF6GkC!&I!pvO5QNrL2~mY%g+#V&gJV(E z6&AJNQ&9at=GvgjL>&71VSFZ*j^M+Z(Jh(#1~?lww(_pNhM0P#6voiqInt zOVZDIGup(2$rjXRGhM<3Nj_gH?Sj@o5kvlI(<+b!2G@z-8>=2jOtC3dZsrC2uh_7y zEi;>-J)ib&RpN(a3G7=x zbfwmGk5@GT#K_cP++Vhik6Xq_aUTz(VYaLa0jO9%{$5UwBsH)~X#CYfDG)($?hTYE zGa6ROMlzZ;MvwfmIPHtGGm7)Im}9L8-@?;Nj0O;pV6FJ@fvZ36VHiR`#xVOF@71R> zaP%Xe&d|y>JfF!Ye48?jsySoyEYpe3gcE#Nq?EW$m~I&*PWcoHt;LFU&Sq!EV6;oA zTM;mm_@wg_H?0;uj~Q4iPU6L79?KF&>ItTxv9kF7Ur*a|wCN5>Ic^)M7g8i0GR>3# zu*OBENTH%bjjcJ|s5>#4Mfd>5o2I4nJa_59K{K&(1p6w!a1;%|_qZG)UZtP-l*aCX zj?+SiGw~D(RHyp!U97XzRTK$|ob<1ZchtO^CRzTosm z2At)z8y&1-e`>EVF4C}An1D|#>#C_n@jb&Jph<2d;2K3Y13QbcuzN;rr@C^0SHByS zoqC>w-;IJyj2Vgxh%L+H8}oZ5>JAfj^LKq4lvxUeUi{8R(evw>X|8AT%(JyS8P{sU zl)%K4wuE1yW}c(p=FmDx8h?{L3jD99Pk+v(5ndQoEO|-PFVDzYYECOtUF8|=w(dqD zUy(S9a}!}sCngjq#2E~R{tdLwh=VPwuly$as2{w++x6OiN-EJJW{ir~!my6P7?VG- z^AI_^_c@_^&$-25yZ*%m`@|^&$jIaXitka#wyu9!uXSVVRhxzse+lvXckOpqZW-Uk z)c{L}Mw|Lh12cxf{=-73J$M+qnGrSw__2g7SS#>vs?kE$$Ff;}L8ci5c_|BW)<=DZ zC+mc*G|5j_F(!vp-zeTmC~Ig|k5!-D*5l$$JvO!UxM)M`#T!~THMCx|q1ECIt(qEI zEj&#V%#v}EOmbgjQ9Uf+zawv#jjXF{p{3B}YU!pdEM^|?-?!>!xXT|98eV4K%4PUF zEyG8(NA=pqqsR67e{2V+LMR1^~Z`bx;R)E z%w}Ye4FBorhii}O>krr0>PGPO$4^$FEA@x9+UlcK=+efc82D8q{3rEC zwc2`ZeQmY2zVWEOx>kSm(AYrjN$p|n(WAB1jSc9_qm748R$~p+Q(Az+wYAm9wT&l_ zA3j>!Sl@VJZeV?V_0ig+$E)zqdVLKBz7}f$?@z-P$dKxq8o*uWcl-}PQJ2g(S#^*J zeiw8=(^{|ojuTxMxBp0gPy$O~U_ttKZDo!AU0+#;f0vh+1r6`PiHbxJkduZO^Gi>8VQeu)ey1WKetj7$$gaz4mAwdhvZ}o&c>sdAPbJ8a^TM592k<2(FZCHfG!`b}}~9>!QbQ7m36A$*Rh59(NaJ{}iH1 zC^9C5lrJuyOm7FT3nv9+lT6X%i%BNmN-&u~F1e#vQd}yzlTcDzCb^SHQd}arlR#2j z9=WqPlIu(|7e?m7$Xpota|t6Nbbp{+sT>jP0#!*uXN9)`Ucga(+#81i+8>`ZcABl` z(V+x6ZDn%u0gk*R>78(_a{peA~a8!^O9~2)SuOA zMf6x+nc>n9Fws{^izXtlRFf=5FI8WR2m!TF56;&O;=Qc0C1ZdfTBV2wFz=tW8g}cD zWjqXofB)6?>+p?z(l~v+y>IV4d4eCY@ImYKj;#vN+;CbzfO+8#F%9~~xX*!T`%cfL z;9WiE14U<)R@j`p38`c88j)&`7I8EnKS2$c+25HCWnlb8EVG#Sj4KUIok6xid(DU? z@@VMvgD#gF_vHkWRQsm6+pu?DZJ*e$8z)E|=-MMPF=BqllcS>p8%5v7u65mWZYTtr z&89Y5`pc9Wh6;*^b#*R#7bCTvQeRG~n}G~?=|CyBH}Hqf@YV_jPCJZB#SWx6NK~>8 zU>%Gu&|ObWBgVCo6dvYc6nP%JPf;B!Q}Mm{Fa*Ur!^?4xVyP`T14Z)i*2VxnAj|HF z&WG(JG6z^xesnv4X@~!?p7x^aT!w4t+Utz2_`{VG*lM*HV8vG**BUq-8yIrnc0b9G zXQCjQJ8*hb65az~gzYODp6IW>`;h8-v9tJ8{PNVV@#0ga9$FuyyrusD!Zm@11_^8J z^w(o9g#UvgxOgJp&a{uAL=^Tl8q+bF^;4w>Rj*06ivPhKj3z`+w3>XD1P@=MJO{8< z;GMv8bqkOh;2R$O-cu%NB2Gi+D?SpnT~7ld){7pU(}=26G|db}-z|3TIyid${f$l9 zqKP3r)3-{~ki+j%($lRV(fF={d=bPI5C%|IVV=0Rzx~pFd2)1iteY1_0COsMN&w7-u{Pt+hPrf>G?mD&! z*~wQL+Dy2~S6tvXN_KerS6k|<52Mq41qZIV@bInBbJx*Lw%oto;AXbqS92CT9-f@; z$Q|~DNYR^s1*~SUfD6R}_7ipq`CQD05#XhmJ4&A!Wy z>fZL3TZFsKmpSzGc#S4h4*R>?7QVkx%!dDKT>s81q@Km>+Yu@64PMKh;%(IZq`pxb zpH76TV9NLoUf4TlC&<4x^@)y(N3lBf^bQBn4znUJvu~}_ljh+|{RWRCfTfL4%t5nt zWbIgia~p`{NI!JR#`NNvm6!4Kht@*#f;63>65R_pp4tFjTwtCEpJKRO!k|VnssyQj zLAXiKpwG~p;n2CQgg>p|%IS8cDJ;kY{W1J`jn?tXqIG#83a#bicq#B2$1l|Mkk_u& z8wVrmC}z>TZU-<8ahE67s|u~Rwd4#h(F+oeFCueaq*MjVILVgu{8K=wytQm7MU_oDXZi_ILT%M9YHO6^?c}SqM z`0nuq(XC%WXYLv^*)Rae9XAXfMYvU%*K1NN8Dt+K($pF3&{0T{F})gN$`cx&dvpba zR6o>i!m>IlI_`x78;Qh3G&tgC=^b}JcI}BD1+QxyZo^^5K09o-PIsF}p+J0$S>~bT zwn!l!zl~ND9OwaNBW1#|xm}lUhn)*tNCN?ztul2aKF53Us4z`;z8XT&oD;bT@Htpe z-N<(QY)dDG2V8doB@MR~V=V=cA;(u?)^mK+YQBxf)rlNYVuOlwi@rry0?lN;jyX;} zqoLzHMr$CI zV$U58K@9Z54JL3$;VeX)LGS%Tm}TtjH?|MYj!R|h-=e+Fa>t`gTlB+ik8JWjv*C|& z%5slA|EBiXd6a;_%uM&lJ^{N1PJSO#u0{HUJah6s5wvm~!FvrdFnQS`Rvg68E3NJX zzO(?WjP)(6(L8*;t%431BF){4Ww8W062>o*67i$7a#@1U$u~9!Zg551-58;@2b+2W zA})aVk-iNWRd>zf&vk)cU+c+sY*PBM^4ZbLfi)anu|Q)Eq*3_hA^P{$${K`(t- zHf$qwAl_0tgJFJBK}MsN=+J6WFlrmDsrB6Ke{zPN1AB*(@&#Pj5L}PULASJC<9ZTE z#Gj0ss%ldOu7MMRXze+AU{kOf0a)Nj1tOq+H2N6KKj0-E4&nJ$7=&vZr8F!tBwJv| z`fc1BXe&N4hZIMZZT(;%t>(WPsMy0U`#7d+Ok6zjeN2!cY!}7O);MgPoyb*u3a8i- zgDH!>0Owo1dLDMQ;D!=D|CSRvX~k@CYQYLx#=oZ6M?-Lmor@q^ckJCvo_`yuy`<3% zSvyNErQYLxqV<#%&1P^jnO%Lbk^Tw56QVE#r%kEGgSF8~=DVwyZx%QsKi1kP7a8@x zGg;}x)DrETWN|tJ`r{8Pd`--@VDD5kf>1Ko^0;WjPVaOG4mt9qW1GBpAdhqRc*GSe zvzt-e#Ui`ht#@B#W`F!q+cWYytoM#FwsZWe9CgK#2$M#L#e1i=)miX6AtZ3zBg|PK z4`LMN3nWT>_amKl-qqf3TALP?>I|yS;gt;%Sp}niVZks4*ncCKgbMe=8o|gJj&$+n zzY)$W_J+O{tAQ~~2Aig$&iE3KmTo70h?W9hzZ}tpS;-v~SX2y1EdH8Ob@~I(CGDN( za@HSlMtS$1wLgyBjo!V7U7I2wT_;q%th1LM5R7nnU=jMnfb#cP+pV2uQ&Y*rA$h6; zbd@0&CORacGEq82kX=+N+ zehkC-sQHV}M!e`0!NNLz;+0%U@3;|;?+jnhY0N~lkP^x zqps}32PMoKw>{=FCHro~95!^YxHdG`4s`GNVKH}ACGnb|hx-ItX_OK2_Q^~8@aV9S zpo4hI7V$Q3J=S9tCSQ(`dBa(Q!ADCJBBgMqVkGq6T(sOTgq8#t!?g7m^Ou)&S|J6` zyGT#oFXP%S8f=g>>~x>Mb98oiYPV=n9v?LiPa7wRTNHYhjE&+w1JSe{&`mZOQ&4hm z^NQt15PgAuy*fHMy<@+wU>0WGFEr}7Q?H;mv+k3ya=lx>(86`%zA258$)q{2%QNft zbX||$Muku8;wAc+86H3J_?VvwJ?3i|en_Zr(d{o7bv%qDF>?FJ7lPzgP11Y{2RSRi zK_VV_$QIK$Npfh)TTh5&^xIqvuNcKGNBpzy=$BqOVZoIEpp{4zQO%nJyJmcnm}PA$ z3!Fk`u1&d+Wdb9VnJtEdT&#yA*Lc{p1aL8G-E=uqv zbb5QZPCZkURr$ynp>bsm3!8dojxsBsbj;xcYi(g01n*0Sl<^nn_%50Uv3}%yaQoz1 zW-V41iQ043K^Hz8e6Kk-l7o)TUL5lBLSh*wfY7@7V~Z_>_Zxes>3G0LBCMLSj>0Dy zt~cwwL4=l1I$mR!G~{V6&xYDU%Ai=IP%a-iRu&$mE=hO_Q}_bWk)^Ylx_K)wvZl}&#mIwlK1-$&UhYKLRQP%-RuxwNX6(w)g)h#sjBVz! ztr#9eGvez{#3j7{gE_QO*hGd7)G#AMyn;+`LmdSnbi4(7p=;iZ`8Bct9 zP$Gp?NI7dxK1TMDyW&iZM46dp12!Q;D?BA8v>W)7JYi0Em^^zdOvBA$bJ|SuJdRT4@;vUg_3S$t1^kuEoSM+`52{e~@M6M2EqHQDJivN;ZK2{N=kPiF62S_o!t!wSHKip`(H{P;;dLYsl+ z2$=lj4N`)mPOo36(WDJg))U$n?YA2LuSkv5 z94MwIZ6A`4Tt5%C(sDsWpKuwO^uxtkPWz%x_e!+96N_O}|B*Lz#jOH6Ixv-|SaO=4 zaLC_`8Ewv4&Yb0BJad+l({dKenJJH%h(&-{&dX8r5XfxuG{r{U>iBNZUqr94(a0U< zb)qQyF-XY#(9#Wo2!n5O^DHUlsP$v0&&gPASyFTmQbR3g=g6eX5PgRO6QCDOI4=u&23IzNAs);0X z*DSq>=sh2G&QABLkI{LNT#k^RwEa#lE769OL5RR!upp*_l3+1I3ASV7N(x-m6dB?R zWf7VuK zF&AgBwvTKg65&r49edGH=Z!YyN{=5Fx>R@bWs_{N3nk0I`2_7tp@RO+-lk_MrA;88 zO)HsAERz+L#w5x#1ZGz#D2AnrLDAX2pJ0a56GHBe5~b7}%w+8_8u`bmKMN$!qNjX5pi$aqAm*)Z+qx0*YKHRaBF!0M1pp z*7vH)<>{O&R_2P8xngCm%QZc-*X7Q6&Yb7Wd5(O(y)u{A<6N6-e*WU85Q8=s=wYtT z{Tr%t>lWAB^0_d(&)}kr8{$-E>8(*cW0^7#T7marS4p-t3PwCZt|IHbq&v4 ztNYiLr;5KVq}5$py`xqa02I*bLaCx!T?KHi)wRA?tu9aJT*ETgu*@|qbFHrFnY~tb z&U5BGXU=ov^X;{|ydLLTUGwu7KZO{yxCG+JGrl2EH# z-m55%rF7V6?AoG&O3h&Jw@C2j*ySCod1&u9UqBgPn)tzx zdXS&2fM>yCem*blfo4*}ogsUP=Qqrh?=pcIk|ib*AL&ni+%|cv!Wgk#&Z&hWlE@VX zn9wpzoV#8B8kptBF}zBIip56=hm;t@8o9lJKg9G$oV)_$2W+b2!gA|*eFw!RY{(lK zVF{|&Qq`0zn39XqmEq;XHAd8rCiXMI(Q^Go2LN@oc|UhY*De7>p78Fy5tPXJ(Z|di zBE#al_nZe!oq(I9Z|ZgcA{_Fyr(a_!m=~jWE)%Y7&rY>>iXE_(9;EcQH=@ zcU5E|!D#8jG2m=`iF&~%Cb;fkb`sxmFin;bcjNXIRiJcaYIM31VKDSD$6%EHOt3v)bl{V~m`Az^Ns@lv|sQVd9%!BR0} zrGkb^Y2>LJC;=PL6QKt(ml(+SAg6c6Z8x-GN++ObifFTi6W<=tLH*#x$?4IXofLSz zb66K6L<9YsMmCuH4z>C}QmKly`0v_cm>5a{Dd#JS3)wUjyH31=WmOh8RMrif#nDKe z78Vh`^Pz4FQLzqQ*gIz@m?^GeF#-$RAL#JXz!g!;PiAWY0I)z$ztp-1MLR@JN~gd{ zYxC}a3s`APV4;y`oguOec0Eqm-f#PO{2gId?(WFL6{h9&&h7cEEj=c(@|fPjV+!kz z;+7qgS#=b)=*Y6>n8cE!m=#BH6>d>$u^dKU+)9iXdHMk3W@3LMmY!jrHfP-CXU@3i zj9Wf`L&iN5PMt+DuXha{6sU^2hKI$RD~r$LrHE`1_R)@+~;j=+h^kBm*^E zpgE1!LNxFZQ2jaW5m4Mi!oQiD;@#zqk$>F=6koS1Mzgi4gpN#@lS&@Xibx)EAeg=s zbuV5p!fVKD50)GYRTWC>PF>5}8_hrfM!qnRukbad56zxs;`h1RTH59)wA!f2Ql_*S zVo3G~CfxnLUydLYsCXy{7BGCquwAG8kg3tR-_XcSCtqw7hsdu48AArhQ8KSOmFX4dRd|`_}ZMEBeFI)Nym4HGzh}`Q; zCmqlgVEcT0@or=N{U%QEHmwa!6^Hxg#(Lh4r3nx@oAHuD#PmA5{o&*^y>r;o0HGDd$)=KhuG=P16N@}E&_(VzeIdu>JAZ}k&lQgP^9>Y^h>4Iv zJhMt;kV7w#!eObFna;AYlB@F;M49a)tZ}p=y3er7)u{!|f}Vk<`>gZ@O0P2)-^}j4 z($Pbk<9s)aK6knjn{R;g4KVAOZ-5!kcfA45es`L|elwGeW0Gq)@;bM#+ri|QacqP) z>w7r0d?z`&OGk0iUa&tD@LM1K2t2p#lIMx(*Qf@Y=!U5zjp4WaMp`h=8=ui0_@LXyH{azX|_ zpX5?&a+~`ZZT>~Je!21IZu+6(cc#-u!%g3&qg!akz7|+dOc#hW2o27+F%H|SsP3mmzyw52up#CkklnH8~L`7TsyfuJAoXVFTYL@CnQ&BH7)8G zxN8?d|hsfijR`V_TWG@D&fw^#pj_|-n z<3nf2LMXMIq07Gn?iR#tcVOE&09K2{9?l%ri@k&Co znY^Q?kbaeis~C4DZB!&2+v)v}kCX=lGLUl{FuL;w7rW(3-&7|udVq0W7nbR-S&&a5 z#_O+QF?apvyQeLBAp9!Ub9{=sgU#G`uV(zdOzZwsYRCdA$S-&vnc0ct&S#Q|&4ea8 zmlU(+k!O?SE>`G}5)F`*bIX!*P?_YY^4(hY{ki$p>1LLIlEkg-6BAfvfmk(1E;AS9j?gH;2! zjK*y=hg{r7W~G1HKRSGA?;f4K*l)x?@!N7rjK)ag$_T_1lF?a2$c7Kwi)D@oazCrL zrL^uszYN_?;fY96HF2a&)=FQ&(1HAzjsl1x@MJSuzwg)*Ciln7%{rWQ%z=F+$rAfWvBs8)NQUI=d&GrkU-jy)I+vq~7`!g&b6 zc?iLI2tnifc?dz{lM;U`{%XSbfEoN}9v?9Ena2mzo@{0}j}J)C-!?vA{1vL%MA8~V zRC0=}4Zpm$hmN5r#ihiO#@m0h5N*OxC@Q8{V#K@vN~QhX7yEE-d5QB{EMeM`Ra<_% zR>u)`0ACovz53j`a&H{@XRbnu9&>9*UI>~rE*D*&BH-XXwCfoGr_lT4i1?G^L70ii zK|ixHUHo+PWSu~eircKa#5*v=SVfI?;Nza;j@rwn4n>;aRT{p6<+)lmu#vd z;Duy1aUaTrVn-X{Xy|xd5futYmD|HDrQYX5R@qunZ+4~OsJZ`a#|d?kcu%2fGY8j> ziFg44f8l5aN7Tog=vN9O$1xI647m@qcWnUb6;_ig z*Ng-1`mjbi{ur%D3{D2H!tWr{Vp4*PazwdGpeALF0D$QJhy~G1Hd?3+*H4} zwcqf53YjhUvZ+|7`dUXE?RS5wPR&q|Bx6I^B(kNy-Nw$oPGR=R(b*x|gQm-sFB&gV zforHk$CFITzz&^zBSBom@maO8T-(Q39_rljyF2u=H|^}{5hJf=iu3Z!RLwahq$UCl z2bHIukz`TLAPc4cj@($ZULCz@HD4YUf&O4}=*QbTsV86^w6&NswRCRdiNq8}03TdNq&7kEny`)o${z(jH1z5g*DqEDN#tX}B=`Ij z8-|3r_wXcJOkB62vQ+(BzO zJE$lZ6GEyeg8;Kze4A4}JXIP_j{1|gm=rh2Wlm9^QIz{B^cLkBAp!vpg=&y>M??VK z-ajouEpR4Q-4jwKyeb%VNj^omm7Hu=tl6YkBfpsfrfm4g;AUOlAE+=9ZeX3eZ3h!H zUdxbY#kc~6McdmywNJKpn{V+F1}|H$S#7;qY(rE!{ul;}tvKMiRqp4~pki&{v7!>|LB%R~c*{q%pvWb<0mUBXlj8tw za`S`e;3Kv8y2hVFRnBD3l8J#!B~Bw&wg6)bKRoCxOn@PLroaL|gKP&De)49ZkVIYt z8-xQGHn~|K*%%D%47Id0Y;KOA#*e}}w>2HcNse~$Vu7J-685*S4`n$Co0bb0p6OH+ z2;7t*JU0$^)AhgUO{UJU?tGHgtt9!RUd&B$xsq|OQtV2l*mX*0ex34{x=zWQuZ&BM z`5nh!2BJom$FTHg8?$E(-qasQ^#)EWkMgS=gDb;!dO3YT_Y?PxbV>d`k z3^I3zBkc$7kWvM*$Je=wZ$YLKLb+Ljl3}w3c-rfkVngUzI#T_-%=9W_XE+@#Ku$(T zBjqK;sSyT1)KE9$0wo#0XJX|&Ov$m+VKfH=rwsxupb!->L+|n`CvX?%w4njgaS(oF z9|(1IvbjY1y@cUJ@vp|o5yj7u2d|vCUB%FVWF_+#rIlAxh38_*1DRS>3PFG((alT@ zRjUXR{>flYQ{z2dOq$_+P&!G4SrXIgPKQ@mx!(?_S+s2YFpxtlRAUkj^?XZnCN=dP zU3EjZ&})oW&~N)g5Q#_KTdVDK+v6@V=Bjn!-K6ndOXMd#_dmJ!Q>HWAAxyi#f%5?v zj1Qci+*y&^P+YHc_i{BrNBFB_AJYe#$&f>j{Ag6W6k;<(E;Gj)OL4Ft3|yhp&KhKD z)I69l(LpWS%WitM7wI;7UpnrZ@S{S^835#j-%AgJ);!#69yU)KneoozZ&js?NNL)q zyN64=NDG&?mv&q?7kAU(G$w;{nFirKB|HTs3+H!3<7Z!AF=t6N)8IFdogJJwJxW5BbjNdS>%(dI?7El7hlzIW+36_U9 za&3QTlaOr2V`!vP4kOtm$l(ix)=Q_0q74=x4z0yZv;l#%{9Z^QCYn%lo;#rtn!t?a zI%uyiXLsaY`or5?Xr<;!^R4x8d97?DuPFWGLi-~0)y*KV(6PRp9WD`{gc+DHSu0Jj zk7)ZuYG}&>dr*>RP7tjzZJaZS+L#?p@oU9&oJVb(M{SHh^QevUsEw)5JZj@SYNPhd zqc&YZKP)&wNX5%V8z^QRxkjdutNnzy&d<$LDf;%)X2BaU2B653qQb-2~S_G71K>JOb? zBG6xmbJY(Hyx2DO&O9_&y|r|0;r$58P4mqRZ9+AQnQ-)}-7xDrrwOu|qL+z><BJ2@!c$-!ubkas+l`dxFsE&5mFH#2^fY25UEhhI0?=q5@x2d zCM_95&dJ%_)wB?P88^%+z8e|(*U7SvOc~wJ42=1K9^j93T5(5~>5^LsKPTW>tT!Ru zP~Y#P?xaXQE6ss`f~B?{^;w`8l1ika5R8z~W#0*W9PSNT=o@lIP(A{_NoczI=$} zJ8+u(_VAep7Pt%BoHDng74yEFlq#k=x#|7R{w~}VSZ8dw@sB^!Qc;%At-u8fdFljh zr|Z^h_7HvTZRu)*+rBtViWmvuNh!a-%H2E2llSzen3vZSF_ofEQE4~&sg`UE%x#+Ck)wek`hu8Wi$wYUdEb3r7sh?(o2EIUu ziirvTZlqs~_;Ugo;KR1tiq+huO(oV%X5W1G-7p#=sL%ou;$YG6yv68Xvd}#EOiIZ! zT>JPGC-1xS0DKI5pf(i;(7H5%w|225lUJhPrceyG;@HWjm7;MOgpEz-w{b9Xjjlh* zXEKQqpNXYLd@?SV3et%jR`Er|RJA#KqMtwvmQO)(cmjw89twgHE~@He-o*S&Cv(fE zI8O1ovkWeu>11*F6pNaK&s}75`RFqGmL~KS&%VjeM1i5A%|0t=lNNtqdojq*(DBtt zIxhTX6o){EK{OD$9J@i_b|zaA+zYpRYq@=Ye0f!zb@G#MFc^PGY7o3>!eJl6fbmXZ zbnRQ8obDKXST90Ec)?_2SN_x%)Q5o|58Y1)$LXUUzYEx$3?9ZD`ttajNYD(Qv}H5N z6evtrb1WER)g}w{7T)Vl)QYy>6|Pl`bH$IE8ulL4Cy+JhhQ@{o@3_OR*H^QsD|KeS z`I2Mr?YT?ju5e4tf>_7M_pK{f1(VP^niM!zfY*-hFa+9$m2-{`wNCqLGDdWMOWBGk zID}QNEiW(EIA`$_`1#~!vQ?#vXsdr>sY96h6@?Q@9;;to^q7(h;q#}HTIfP3BCo8L z?<9JBHB>8xCAvLX?J3#)B&eNmYtT`#S{N5I= z6q-VO?xroorzm+B&>G@1@%kCwXyJF1o4$Nr}#lt4nj0r^pu*A4XvN7n)TGu&yV$@>eLA( zsM%ezh4P^o|DQ&lov^=?^%~P`Q_r>E*Ep0=F^_}-D3POGuxX* z+I8l)i+|7C#dP6ge#e;od^dND-zA#o_lw25lgsIgLfLgWuNm{)ewrq$=&)l7ugNu8 zN`+PQK$xNznk40=)XRvbpGmAv#yip5P+S8tp!cLGE`BGW29N6RqVpG5xMH4_j-1m8 z@E#AaQC%?(@Z2J>>0GePbZnJo^zu{Td9>F)GaCEz$)mcCq*zn zkw6|H2oNrMj)#K6M8J4KV`>eI^$=T!lSvnes3~8L?+XQzD|1=sBEe*goK8<8_o+yT zpu1uLT(LAKJ-jF{2hl-tap2#R`8VKmH=_*sd;x{Fd?uSZd}gEImd`8{-SU}yEci^R z_?FMz%{t^$T)LRN{1=m4?zZ%+p(r-#+Mn*?VV2}Odp0rgU}m*?CSN&sST(a*F<*lE ziG{jo)Kt7oC0-K+^?>1j(rtn`cQ5tr7EnILr*LXRID96v5tPrJYz5^rp`FVyQ;hV%znG-`1Fta9x;vO$W`;`@Uahfp{ zFZ-REzE4Wn3A&yc702zr3sPJuLbTRTQQHWS&Y}pQnXMwtO>Q$hss7p6>EtPH)iYbF zOFa~C)1mln0T2;EW0rlJv-&U0>ce?Ho`4(AmdnprK+idnWE?}LFn=*;xtdknbQ-%F zQ%)w4Nr9&=iOEuR7(uA0>YaI1^*eUzPZCusI-E%*B{h0^pPH*K;;7C6Y()~AZqyM@a`Crs+{=4yZ zpGVY=K7Tcj_jyF^qEO}$wIk(<9Xsa{weuh7`SH;2jN2@91Wr#6CZRahWN{TxRKcJW zd<`yq2E5*&>-GSc=1PZXLOgZc3ygYT*>9SMYpZxGdOv(;@BI1_-rIJuTabi%&|2I* zh*~YoAq)5$F~EYp1AoQv;}cUYF~B*=@`Fw^Yn_Ej2~+sqOh|rr^!_Tkl^8v~?(A82 z2bZtH{y;@`q2kP=VE?9f>YC1-E8)m>=c)M;o?J7Wvw6(aZp_dMCy|F(C}^BC^@%wxFEFQ22& z_p_hRub>UjJm7lPGrxYG2V9>AT%QMAFZ9d1$#oknz;6GIU&e~lCe6N$ed z&lW*Vagld+60bfN#rMK_f`^o6p5P(-`BNr%m`Jk94NhPD{bv;rKJii9-e0}j7>BpQX}8l9mm4Il4#M#IfjdNg!Elp##tY)rD3FmYD*?kr|F3{SNi% z0oKikWgl6y`;EQSMVr1*aYumu5t@U6(?%QHerPJ2EkVn@6#($A>U6UAQ$2vUxkP#- zc!Tiqug1wy88;CrZr{%~g)4@JB6bIAsy^c3v7a_c_z3;M0Byjzo0%A@RuLrplW|U- z8t>`6XND2@(@Co9UgS{Jba;i8`|WU=Ma#wy139!pH74Ou&$qCM-F5qyW9)sRV$4l4TZh~>oDlvcxBRTC%-#BcYoisou+CSRaK5ZTyS|xKp zYs2ipShoiQU3P#VYpHEEm8$=fv?0v>X zvt^&+4-}~zhufGZ=j^cAI^As^#WT>T?Q(nfpJ%O8<7eDj;vdcqUts1PdePWv8t?wF zqgPH~({{fpQAPbcYc*_j;RB%WzuJBszOhdlr?0p7?VTr2@FNyJXuaOCqgB4Ev5MvN zWrjK};xk;ir92jv(E2=0dkD$)$HTzwenJ<@f5^m0k%!N>vBFj@t?}55rGf)lB7|1Q zwx?eVccJ!3NAhqG>2%G+N$@$9QozNzVaFc#G06>V0AdPYr?OL|>ac_xyjy*5HTUd& z7@Sqwvi=Ka%FibD2~~WMeQkF*?E9NZdQKy&aAQpZl>=gi{O(b$X1GI9qo!?MpyoSd zaf-dM$@*WK#cAVA5Q8qr=q9Na>O| zxt?P>sq_+j|DiVGSo6FcqfYAd*W-o_Xv@4H$@gxIXKzcihdJE5EZ2HDBbjNkWE_*6 zL|EDSE0En5w!;m}?@y6oH!AKHOYPQsgM_h$YaoP;7y;1urev4R?ceS0s zMQhck;+Lm>jTcQ`g#69V_;#Zpyj8yj#`0GD;JX!@kRN}HUG=3*Woi%?I9od7?x}M@5!5ui6xxI~OCIkSo|`!e#*fd*gl^ZwXUO8|czv-1mY}$MgA4 z5-SGAHqL?UJ676ug*VJj8+*aZ+o8iWa)t3`*gk^4q}_<{s%oqC6~OvR&9$v&KNZl0 z0<@=ox$0L#{kl}YUS===N0r*vx@E#cROge*ey3dCG2n5H+(a#9h`vU}zPO2iquj{t z4g8@qytU597Z+?z6TmO8?YWeX`gfOZI@(URo8lcUtX$2+pk3OS%qI@E-`XcfM+Y`i zL}S+~{peJzh+e%CGc&1>4!%%y6FP5JEOCg6@NO-bO(9T`*)mf=A9Ats^|7-CP6e2LP^-yO0r)W7xx6zhq<`u`q%b= z0SWM_VmpxBk*EUG;g7o=tLr))izBQc$#I00tQ*#%@mLsvC8d%qTRpmXi}uu9S6)En z#HGRE%(mN^TlEeK!ozWUL@b<5$EE#=wluAvFRa-7;l#`I;vBJNq&ZY&^L_CTi<@Sh z|I3r3v*YIBOH=RBY-ZfYSW>rS>=LoCvpT*T^cP_`VyZ5qu!T$ru4=f;Po}AVb@Zmyd}$D(bWkR9%;FjELpUb$f}-|% zA(VdzqO`IrpRc!9j-<3X8ba(B0s%@_-M8U5lC=cO(;9lV2Fj!YP(3|);5en$p{Xp&ah)`w|1IMZPjO+<>-!Gdzxcck-az{RrpBr2bir&96=Sp;*x29 z%>szL_`#Ny8PPl4h%(23GJ7mBolDQC;LZY&nx?3be2 z0fM3%p8cc4m;4_PP}8&kbkl%^@PAM)Rb4;@&mtxNaYuKMsFaaiVk5W2dP)hQEBHq` z&4nIdmN*>9HwVqb zqZ2+ftd+~M&3}jeFdrn!$$q9kAvEku2yFZKc)tN{W3);2@?d-CRVMrtXqkM*uuB3~ z-__sCW4r0=Dt+yzd|jij|7JfmBM(6}NZ-2bdgtv`E4U3tZcjMD&^tP(Ew6!)G8p>j zaMr%HoNnM-ez)Tq6%>Bo4WRV3OJWFzCzU#l#lRZ67r#wsGR`eYUo0@TpR;Nn07w-UdI{- zs8aZ$uhbKPHyX2pp$SR~PFHKS^=iFVtv^N&%f5T<4k>)4g~|&MV16(v^P$Oz!iaPv z*F%qWAFPnFdd{uY9y-C5xc&1lhfdD~tpqEu?e_+->kBUld++Gvw7K`I-8wou*=cO8 zmMa#_F^oUBB0V3Yz#FA>E`|@I#K?4Z;Iyrymh~26Zm(%5$R-z4vk3~CfLx5qB#^|v zDY@vVsjsDxN0Js&<|IxY=eKgZVJdM0oleAj8#Rtm5}0hhg=6j;uix>n1GN@P!5HK~ zC$M@jg6nd{fICxHe&|a@UrOxRs0p zC{8wAqmd6YpT1xzu_JRDG?=~f+Y#QumK5L;g%eq;SPMUNtRFfH6>I(B#-ob$_(_@D zN_Bt+fw5vOKE(fQEOO*}f`z@*z5(N3PC0sIpi1Mb8k!V7()xr7dYI!eEk-!a_?LaW ztw87`O#ucRq~GvjDh-mj#KJ?}QzSX&0XFUNQ{5v1L#WM87_7X9g#*HPUu35Szg zPp7M*W@8hbZDgk$6Z8>3c<_E|1L;C4If<$%tQd=->u$D*GeFs-hKir>C67t*GD7L6 z%vyz)9;`Tr-1}hrVT%*~@UFJJ%=g0Y(}WhQ>x{4hf`E;8I0W$#_?j?#*$kWF2C$S- zY?2j~i-`{$dl{Rcdpoo;4?OLP&M0EUw0Bm=`{Z@pAmMJ9#^Ri=ciE3Xc(xV3l(l6f z5aA3&Wn1=fFfEbM746O1s>J!SzpcVROG>AKs+qzrV3vaCbb?U2Qe z^};=B83hmClwd|AzbchkMrXKNTXoB618eJgA6&`DN@X)AGdPY$+)i_Jh}u(HwH_q# zRh=lX-bw<1NlQx+V%&iPNN8WV?GMPhrFolT;ZhzT(E^vC@qpkturrx4v!q)V#9dy? zxm!-?pM|c}?5CC7zS8psrZ6&TkcG|?XbGFk6=W^IN5*!AkGOyk#A)(kHrIpcP>cWt zbQA@V<6;<+07N{@%OtkjjC^R%EmR2}Y`;yvOh7I!dZ$X8NG7ETHL&!m<^igT;>VJq zp5hovLVj_!M>!{T6_k!`q370ji6XivGc*kUI?a;?jfC;q(-}dtbm|M^$!0FFN(MCJ z!;@3tGtMM^Gd`GC%lc9H+)o0HRk9Pcl|2jfzws<6S*rHFVwjSzI18)uS>Rbvf7Ioa zOb9J~QRVb)mUAj^Rb~TCI}*$Q+GpjTKHpL@P%hVy3cX7~NQmMo)$?S~zGt?bG154L zRKxyrvc{q#)tS%)>?f5jiuCR8#D2_28hqr5ChZK7W4(b-n(a$?o!;VW|FoWG8P5nm z)wIYxsA37wa4E}zMd!D9dE?V9fHD($YsL}Nk2MlxBxlg$?`qJkS4SsCqY-}YI>A?d zwsF+go!~nRcA^>nzJ{G*6~xaSCpgoa`)g0{)B~Mpa=)h`XBd6)lQn8gL|SCTSnhio z^x2(8t>(Ju@W)?!{DrM5@hNOs$xkjlOhOdjC1K2vI3}WyuTCXdQJ6!VWZ6RElZ6eD z**<6VTF3qdcpk)nR&$pB(&y(rQH=u!3Gjke%+0;A@cs?#<2E{yd5IKBpoD?I7<0ELX zG38<)JE6S6Q{a5}Tc2bzjq>ry3td&jo&z7e>IO*8x!3hZw@)z#JKoF2oT~%!&Qitz zX}!V=b7=re*1cWNA$R9p7f{+mRWl_@k;zul;E;`C)C{*&#;6NuvW8yU9Wq`7ES-JhtDT0EHzW_eG97@I!wwYbH7#Mw|CO3up^sj z6FYL9P6b3o|3fAycpSEJ)G(p@ROF|eiIAv&_=F9R90H$A&k#u1DbdkF*p_zaWDO5= z>{0MtS4M+T232OSsQ80Z^Fue#W*m2DVRm_|HBxA#T_2>5{$-UhCA*Tp&S+fmK;(sT zZ50R}Rix+f#~5!)1e2Nu9><@Wre-u`)ie3Sij>LiYRZ0{mV+f)>xc%S(4?Q@FpP ziQlHQkySOdpj=Z-_8qNkEu*1r_BO97E?L`X(Am9qZUYRXbd6#>Ms$Knfa$m`#Ch>4 zkyjkKB%T9bb72)a-Ow?kV!2McFg@Vp5nr@GlpS?7N>h7NQBbguK6(Ba6GFMmV(uJ1GXu<+lqxwmi5(wQ-iBmr{!mn&J?AO$ZCi{DAo&uLAeH`;82PPmGb$V8QD=U zm-V$kHo~H(nXJaLjVo|*jWAB*NQ=`ehz zG6BiL6^V8prMiK2J*r?2oqlHUJk|sU&{QXGG@n`l!^-Ft?i4^fB?Lk{E&XYboBlL9 zm_~EI)%bte^jv@j<3JDL$dOHlnfSXeRSa8OLcakbDvmgOP2mx<#>#2BxI)JA_Slux z<`|8@TypXthM@IY84c|0H?|MYj{XY)cF3i=w1b{pip3T%5jx=OErE>Irg982lfSOSDq`pUn?-5A04{eD$}O@pPK zR4+v6Vg;YXGRZlGj0w^TI)A0|kT#CbI)}p)sg_}U3uRJ+IxZRUbYCWi!JnHD7p@Q-bJBkZ>%>#xv7E~1}Hlq1Muz{|2$pe)c;5>Z7_+4}Q}~XdB_oqhLA2Cv z1WYUYK%I>3%t6eOC#At+itD+2RN{1n>;k+F6RHb5y{o;ahHClfRf$}vUY+aR&{W0W zzMTm1s~Mz=lx>Mb#S|m0$f}SGMrNErAa}Z51d-4kjtV7?$49J6k85pdp=7IKsbd$Y9iRJYWBGTlz%gv{XHB@wVJQnlx5#Bp}v>n$5*E0 zywN8^^`iqv+%WuXfcfEst5t2HQX|>RCj-ej(<5lLNVkg#fZ17e@QLhBrGS}JIsc{% z_^x)-d5viV`)z-Sm$0Z7ak}ksS47yrEjRO)qV0EFH0t@}-p}CPq18`Da^^G@)ei04 zqpVC<*_xKwXizgnW{%Pn+8v|LI%F@;9Sqy)G`y=7>;(B@G#5jP%M=AqIq4WuQ~(>OH0P7uf{%-6jk=gU zmQQS3S4zZYg88izcQ3l-Ga3r*7g^^M1*Xt3g>jWBVKDl4jt*bjdnZQ+cH?m8Xcq_t zBo4|NLuT25iz{xbTYJl+RdHp19J>L^b^rw>&KA%a;^d- z?(;7Ja_(&=y*82^n8noxJ_WBoWV4fAfrL#IyavHXzY57JH_>efJ_T+>@JYXF%?mfC z@vp4>3}RUx|C-h_D2 zDBM(${i!6Ay%A*&FiVerp^dtjkytLbVhi}(!QI*PB!3ptvB#K`3v5E zH^_9AYzgI^aGo!arY{K91*K#_%~a_!Q!0pFd~-V@TXP@`Yh_bec#hd^W)eyvb*$my zQ>=x`R#bBwJ?%1MK#-HBBB!39a72(N@W$PEiI~8$Q-35W9O%UYtS_?AD-WX7p=qn#-ZV`Az~TkZ7`7}nWTB4k$2KY zMYbR2oMPgMkCg{hfur1Qz$nijoM7R3yA+btwe`%(q#%5F;PXj%G>8A z=e~N!nH#Z61lukHM>g=`S;$`|w)}v`8)eQ#M6eV)nTdRC^6$>@37Pg5vI1fTK2zL&Y3)??wU953r#3eWL-goo#q=}jmL(tQsF>WPCYTL%JQZi# z;lL!U7DAj6R3TMutUh&NQ0x*=t0wLc8LNeB;dVM04L4JfS#(q6C-t7Bz(SkW7M=N% zPq+V7A;l0o6wV7TV#fdIh2LXmzI!**xu$RCW*TB6n+$P zG%+9r_SFTif3ZNujthOKzfjblj4X{MvEV)7;`Sm6U+NXC;>CXzm@0nInkE9xNkaQQ z+eRgPCY!H37Nz8wOSccw95N+AN0^??y%|w15V}N!8393WP+$|G1Qxiv<8(+#TU_xX zp|i8;xl3MN1@=%eW!q97CUk_ET@F`#?M(ZP`Rf7r`jz-rl=PZ(*{#A!E6KTIo+l>0&x4Zmp#4%^jg z1=jn62U+V7(S@DTq%inP2w<73jfaB&ty0woC=^bo#4L0q&d3KIe9e+&CVTy`B^a~B?(oTD3+qJ!MKl)Aho5=rYs#yS<6h`woeoA-5V z4wxy4HaHeM3we^9wUDmS3;GIJ!iShsrtrdp7G#pTC=n~7<$~H)BWi9bo`82(;wDXY zw;~4`_gmB0h=fO;c?{Da8Of_%OZFo&33-+$sTL-2OOhq-E>g9=F6kgO64~uUo?a2% z&2lh^fIJ{zepfjsdd4r(Sjyp$4l^FGjS|eVWT4!ik6t%U_V$n7L^8f&z6fA2@WlUJd-Q1i|LSXx z>Z=>;tLu**{$H)W4$uEtwb^wc{TZWGlx6+j(Dz4KPtyb{A>-68p)zw=4iM59uqvcl*gAP5fDNbB~d<$4qhLCWuIvJC+c1H2)S66~VT z^P%MrupVZ|y~VV?VO8_s!!dTG>-m*Ga8+y zz1coF**-k|b(3~&;LVo%iG%u4_*xGjU!zS@e{?H?%^oyPfEyj2Zog>mH&1^>L;k(y z>0zVQvi6QntZfSz;%Rf|Y#)w{$7d%XG&C?kjq6I!i3|i^&>R60JMIWY2_E*ZFsUL> zIc@DA@QaOA5PyPqa54>Xq(N%#eYm9`3gh4Yx->c*P(CzYlT;N`+ zpuyHB&+oDTgJn;63&fy~fjgow6tq*8aWfXeRUbv5b8`Q88GmmuOrsO;2wp50TM_|F zXk!L>SB#KgcRAWnlSVmkf&eF>9|k&fKaK(UTDZfiRjbgf#+$EbMOw|5t;WmOs-U@7 zgkKc(NXElt)(%E-B&2CFHXLcAElDHXqrTO{bv1w*Xeh#2hey{w$1kD4%U8~@L$U5) zVF7Z-u+ld<%B9z*=$^`CpA_H<3Dm}F8A(Z?O9-tPo~7pofph6%>Fc348sYMyP6C^N z=3oMS4CBH&4*_0V2Xmai7d z6(+@Nj{-+gd_SB6?-GxJVrH0(wk_D=yK;bG@@gc2c5;fY6zdl?day$xVLHKWAA|#H zp&B?BcvurfM*by-kD-xZa2BFD7VoJ(&bt1A@wAJ?*@KF z>x$qeGDf!iw_00UPso3d*4F0o-`99xOAKe+s#dLI^tl3h#<#@XE`hlWgpOf3 zDH7J7JbqHGKY0RjA^i6d{(MZrVU7N~Y7h|-$XrUCONrm7ln5*0jo9zcZ>?SD6EM&N zr~QlD|J?%^o!@#tV_nBv?s=nSw=;gOE?@fX?zjVG+J67SyIj6{&LStQE$_l>YYHt@ zbU`h?s|6iGFzTH9eiuPRUV47))orkXUb{i`_29Y_eQ`M)PwvqJZT)B zhMA)QIhRA&n@g~v(l%Sh7@69&QKa(mn|S5Hb#CRe=B`az+_0j0#s1asqj_+4V3o#R z#~vjiyi7uPnF8T53IVM{x8Fi@BZxB0Sp3M><&JPPv|FX(^-2TR|N}c7v!D*O8b^D}67phzUi4m@!lzw0 zAjWajNm9aV+IP~LFV+^7@V@wDk+(F4XXq5K1A5us)h#5rhTa3S=q(*jfVZn1&1tjq(AYX78+KNA#)GE+;~&;kzmg z?Aey}q)gKzj=!Vfm~2y8rzaRnZs-PRw;Mrg2RLO9I6USdx^$(1QGk+s+d_tT&kJl} z%U#m5Tm@(Zf;Ubgl!m-~BAvNJVTp=`H#A{0Q#>*In1K7M5 zUL}ftQ4hE?OZNsSKH0bv*@25|V?@CUwIayvE0Id7V45ixEpBTG{;61({2TsBE6o^L z!kwk>^xTSkL4q8j^w71+B7&zIGaP6`BDX@PTe!E2MXoh@@ z_c0J0-ZaBs_>w2!l3&6f)=xAW)>Ermr@pHGX^@Z(<%BQ+s`-hP(q@T@slQdZdwiqn zj;u2h&|l&*?fZSwZHW6n-hj~=VhHPO;P=VmkNE?M^-McLwr2qaIVT=beQJkgr!yIc zgJTfzf!P7Jc-b=G)@?AT)t=i^tyUQ50}8vLm3xP;lZkvji#{T$;0<+R z+!TmTdrjBVTMR}*`H4!(zn)sr(wl~TkPW)`fD(N0 z24c7LKUBv9-TVL%fi}=%5nfPC3Cslukb`Sjku)fsu&7Ghd_X5H+`(`z?5=<5^%bks zXh94B@o=eN=~O2ei4GxZCKER&;?a*NmMpDho`1vUF%q(XNE{)ho-j!7!c)K*pL$K! zMmpaMd3w}hMmJ_jSO9}Se7}>$yPiz!Z15juM9`>yt+aG$;)a();)a(|Zg|PwBk9~QcX>yb_T}VDJF=`_ zie-HnUDlW8WqoN}(uw74Udn{@xI_@EEd@wHQ5vD@^b#EpihYzZ#Ja#UO2-Y_LvH{} zGBQ;O(v8zn4*8&<3-ytuMCQ}$geW43cZ&uQ5v?L3ZhXRZk#`&sr4r6FpCg16k%$ve zbqSdUuY-<@^g4J#2%9^N2}k^!s?gu!+!x~OC(918R|e{5u%GFe+qfB_yEJPbTE~r@ z3Z5m~SCqPdY&7vmz3>jP@c!M?<@fKX=kFJYPdaGMbaJ?T(5R4fbyl%R*x@%)*5W97 zO`#Ko7o>i{fbF=s(~_h#GW`+Wv|%UcE^_FSgpMf`NEXzg$Y!|>*<=WquUIAM+eMTk zF8lsaT%R^r3r-Ry>0zM=5Ql7cG8Fp0f}ThKv^c27cB;; zM!^d8l=+m`1=u#8-YmB6Ta;$F`egcj5CQ3i=UmLZ%8=@Tz%4RqsEY{R_pv@tjZB0Y zJ$wSIaEEa82cpFq=yU=+2DbVBC6W?WKM73*DfPg(-FAZjZ#UQw0W}A-{M6;VjNC<9 zesT0P=wpyrSi@jY#T3@A6jZF}EwueEIsgbg0ra+gHI%1HAf}LoM5}2Wnz~`uDhW*z zHbJAH?pLg^e__Wql^g*b!9x~zOqV50hbAKPMIwE!5TpGLUajDCdz1|21I`80eTY3c zbaq`53Ps*4tK==a%N5}&0a5Ev`+7Z zs$i^X@4Ra4{89=~8yu9?IpZg5p@gO<siRt3tKlk@C4_b_6ug9HFMPo;NCp&dP->(} zBgqQ;{LXu?rVIs*1j8Xo^+%eOA8A^C3_JCszCsy>?t{c{MAEp@!Vkey>xb@`{}=H8 z|GU2s=TxFs@z<*DNxM74#RoZq`s^|;YhPexn*5gC7Y;Ht<3bNE~f773+ z+8KHn?k0G8&m$|D>c}|{sy)BsKDGK@_gP%*X^N z$Nu}_qep8o`=5vF>#KA7pRe)2KELa-ts+a;|AhHhHZ8$;fOm^z5Mv=_xHoRwU<9-Z z6I{p^9BOLD6)%QkkSty~wD~?e$G?7VcfDYMmKo2+EH-IWjCH>DWp{ffZm6O&)3yPscEP8^0bKS2Fyn!2if9-gqDoh_938P;~ zPL00O41hEXAiU5I?SIH-0O#)|oEVOOdASRy+ijl2Cy?hFugD16J#n{81{MJctQe3F z))i^sSY+%%dmyxIMr{{xtgvWp;7T?owY0HV)Q$nklaOn;q+pRWR@g=iDej8zKJ2fxPrS8jwo_5{IsBsB*|HQ?E;U||& zF7RA&(eZJBr3=hKQ-PJcpsq$Q24-a~t3yh)3VW1PfXWvbjPUDqI}4#+-emCt{}3ID zQ=pm`nF&rz3g4M9#r}x@!0AO61yl@FPgVIXjth>_Spg|&-L6rW;Vcu3&&BGtnkz?K z0{tB1>}3uj+Vpd)M*ivW=R5hXYKi1y|L%*x0*23_q}dN4hXxK3 z=X|on0q4>~^|>Gkxn`pUKMN(>(mlz-Z7J)pF(d22G*;E_IzeCyUA(?0E`Ujz_nl5q_t>Pz(#PAz7u6cLPl(pp@faV9^JHNkusv|3lMFWia=hQjPG(Wqqm8 zR5DA)5!p0Im^?LB=uX&=idC0W$IJ%XNaHnF?-q&a1KfS zPx}A*eL!m!FPKP2J%ck~&iQZs(b{V4{I^kGo1g!_%EK{c#5!=S3v?BebI-iZ5fKbA zI0kYyhrRbe5?2MyC&GGFISLm$9M0;X2QTOX=B@`ld2+eaK@Sgg2xNY)`)<#5QIC(P zQsRpK6GgIO`FP`HB|ZI63Z*sEx~5c-`{E2|=eF;<95aTt&`qs^^u6xS_CJ zgpCGD&7%a zmcqfWCn76BlU+KXh%x0y*n0q#XiUm}iLOBjiWsc*R5!&<2UL$-jl}}qsQP-i85}r= zq(L`dn0dOn3{5;$D71XLVudJM7#NE&sP|##`s_Ah2OtMtX>r0!Q5etZh>VU{r;P*5 zJh0b%Yf~ir5N3!Ky!&gmTKn6rS6YF0QIL3u(GPoR(-^JwKiXKl`2A0Pbsqoct30IFz&jp_c#*Ob($0yx1yf8Q^7@YW zdrP68{`+L^06xFw`BNPSj8eVH3pwpVCgWa03*j=Yzw$lQu-)Tc*ubWBm77qj>ak-; z!@BT8ut0iNvBce*D+d^#&<(SC(?0aY9ufv4VtYQ28AY@kGKNChL*ZSNmU#zIr_C0S zO2mhWsNn&?hfTLTAWJLQ;D!M&P70+H+KOo-Qhuo1M1`ZhQ2K2d6^28JQbKM|8F^tO z7og+|*BK$#f(-KRzsF9zNGiha zI%yAryMMhtw+fky3x9QSfkRl>6b#pf!~8MERFT_ww1m_c(kYh46nEigozs7+LUD;Vuc5?meFw`8fIqA+3 zMV$zgM*<05-N*d00;P027X$0aVJ3l*2e$N`7#SxIx!JiZ=S9m)t09GWhUb4is$tHg(x4!>7HgB;E;{C@Kyx|9E{3o>wsBz2Vsj# zGoAR+ljRCGj8+pJ6)X7fY2)O8e!Mz6X7>dggLfe=uZn>Be`igG^-B})lVLXC_x6hu zeo3)85fsN8q<2&f{@pun@cizHn1o_0mm3GKXA$yUj8p`!QDGJZRR{t{U?in43Q#s; z9;Erni*HPt{neY;wlHoHa#4QnCKyg)tGZx+zMCO~X`m}fl z{)Ik96^4c`No7B!>DMV8L;}By(uK5lliN^2zpg9$#UD_{mVOC%6?Mh2H0j6%{T`Et zlPev1B~p-Thpr&_L|{_c97P{f(*nbmF)(!;nZQ_0S_R?81iywOzQLhfICwI}YbxoF z2Fx#vP9e8*>dZEV?b>agNajg>LWI#J9nU-_jO}Ym{!Ltn!b$@zAf0iS`V%jw##j;? z;s1AfaExuiFjvr51cPLGJ+JEw`O-=R%(q`RPF{d4grW`GUI)lo3eG!kps7=zyd1L@ zW3;DNjL$W06k?N) zqt0l?q!?)~*|Fjj$$(~zOu3U5BFb-tO+}kIxYS9Mq^qJ-dRNpIL$0uf&0g(&y?2&3 z()Xqsn_q}sh{V@wode?Ii41+j1B^NeoB4Uy?M22-k*;+)bNZE8a8;%aHl(7jHrBh% z?*wy;;=CM?u&UvslSa9CObHjt7aKEn5Ra)8G155lyLO$v;=gd5bGsKb60xMkHo?Md z|CW_f&IR)okznCVjy!X~!X+Yl+QuVOx_mD87!HEL76X*DI;y;gs4WtmL`?zpFe=fh zl~ZAN5X?eb!E+QE(cnMOZ2^TnMBqq}3rT-1V9-H?O!Oxkd$=bA;;7($^89f?+O7z_ zB*N=NW(ZmqeP*wha9H%WUO;-nh+gkw@`VdbDdC3l`fR$TLCt8J`xanOnBL5B!e9-p zn^c!!C{_NKt|4`WsWtcB{=!e<{!iRwd;QsE0L#4ptJfZ`)#Co&>zER3e*gCs9t!RE z^6;!mIblLOh7?Pmhm~(?*+0Lmn_t%5^|B6jAZTyLwlU}M+P$BTPqtqkY)d=bSB>r6 z#>vleW0GHYK-xbzZ2im-_-?NQkl4gh9Mc+a zPk*+4#((VA>F$2>h5ZT#NoLSwHa_g7buoVb`SZ)O?UP+$$^5ed$9IuPm3*ZM7`ai& zpeTMB5bKE2bamY-6{01FxtfI7ncv^MKB(*1tWF-fqZh4R>)~?E>Ulwxs{}F{w(i7% zd=frOe~$xih!yKKOV)YQc-uT}oo=6=wQzmYEiQU_LX8Sv^z?ORD|07UKLcrEhon_F zMwD=7Q=;#HQ`0KEij+aArdU->4z=4)rP9VzaeLxXb;E3+zL)4ISaY-%lH_gMf zRSwP-F8iHdU&4FaF6;dfcl%mqd5L7;si4s=)#=S^zxfuDE$9(mv| zQs4Lm(G^>^Q6fXeAfk@$5JOVKW2k-7XdIs6=0RH#_Ziu#=qK(!SHO-xVMaH;;X_EK zE~uHf5K}J(0<-=PD;&7$B)pZQ$2#`~y_}w$?VQTG=*vr__VY>Ocz=7R5n>15-j6hN z5^V?#DEgyG8oEajaELh=2Z$qofl-bzg9y+l9F+%M#gQ***TP*~L-EiBdTLV&I?@%k zefP$bk>LJ8hW+=&ybI*p+_J5;d@tD<869nH6=M`$3`WCPd|0~I+Z+0D8XNc&4Nt{n zm$il|wN5ZCV_GG2DR<+wP;vzE;#Q>X18MD((;d5kR+~C+qxFiZ$y0cbm3f4gi1{us z>JJleI__lxj776|iDKLYkOFsLhUDQ@TH6KAGrD%s5`u8a{`^i7FF;{-0-qR$pYe#1 z0X@30MC@Z9h1@?gTM>~_bT z;k7R$JeD|FquGyaWr?jZ%(|s*e<+UGwlflE5SS)qGYvpLfdG%hiu=oDyDd*Lfwj8) zkeZ|ejxy6wU;yL*U;s2!aXOt2A8ruD>hhC~a03k`aBCH*s-#|QZCOMf;>AJp@aTjk z^(PxzG$Nobd;9eCr1=7M@NiaX#D-HU$-YqJp-99dLuK?4>kZ(bgdL2cDa@aQ940i9 zN4>8<@Iq@N;Yl2=LuXTLaPRDJXScDlZ=W3RTkfd6Og0wh)Cok>8qeFT7K0!@5 zC?48JhxS>kVXn!7A{-wiS#^ApQ3bwG;Ix-2sQVjuBUej2D=eUF@^5(9dkFDbfYAsnd8! zh9)u~jPj1=+b8L#;dk7MI{gpF{k{lbP4S@t){Qq>l!<8rO;i)okZ3(Zo*=rza%|jS z;+OPu1mpB> zpC0Y+)AY)$swsKS!pkGpz>_2;wIg9Nv<907NrOi;9%`#AVSQ#r!^xQiaj4s^aA;Tj zPbHB?4M-^85f`5%8!cW<<7K5%y_`)=#rkX{Evh;JX;FC-X%Rw`q$RqxK>tojT3ojP zY3Y=;v%SB6v?KHb;`}8~OZ@F;dC~}lukhvtx7Zjq@DjUq4E4(-n=(FxvPu(H`HeLk zbnWnCICGJ0uEZrOBIsO2#sjnZJ-2sWk*@XlPkj2Oss9gl-cJ(H#9$JH$kfDeCLpI! z*S8%6HG61vQ#JWmBiAhK!{c<1)n}9TaDG zCSsqoJ0Z;r+%oe|n}FnQ@J%rgnVI;4oemYL>(&HrqIH}?TZw(bjC<3Ay5t*tmQeQ|wT?b~nZh?Rdr@Kn{>LG&Sw?Rd@&T#36;fKf#2v!k&AwJx<9I3^k zF~|-jg({k09RbM&6>8VX{H1~!9PnDh5^vwVuZZ|CUAI?gF-1P|y9$OrLB zDqlghcyh)5E{yySZhrx$HjE(^i<+ixU}ACxo>s9|E7n>* zXZr#jOyhvu)MN~h>!k2M#=MdJ$zd&o9AUZ*KCC|}=fmqj!S{A3Cl^s8C1eV&Jl1tP zWYB62kZ}Zo(5jIsdl#)c$POV~tAoHDcYMiax+42<&msG0DvN$aGFd1(;qC1vcU{#n z1Hqzki=+l+h?z}7X;lm)z(pq^0Ip%2ejbHk@@0n>#INahJyE~F#B*{l>lD6 z=gVf{lE=Onl+K(EyvihI~#1WVXYSu%%~4c&QyTtT@O}oE*dyCleo4t$(YT z`r{8Hes$$aFQHuNh02v)u5zW9qSZ)Or{vX0RiG58m~!;$6;zqfm7ob>YH{`Ax|H68 zx)eExh2E@nDZPTa6b{J>@G00DS`wi6MB9g}DC ze!cUNe;uVudc$<7KBm$om5?0v8b^Y6<%8>X)Q~?=nzw!mxlRWtorrTMy@1ea~#jw!lZuERzwKj!b=8od#h2Z$l%ea!J&^J z`GZ)GYPIC9udtWg^?M&Wh(BE$#NPBPOZXn|rk7UAQyiR&0XE7CqUr>)f~aAV6~x#L z987j_LHwFhNR+iF6cLrtNH$56pUAhPW@)acG9QvUG!v{I`ynCz3 zIY;)+{!!y?V<$B6Lp!^Rc7KG?ddkx7_Q*bMygjYJzb~4H+b6$9iZ7gl$UD5PqQ&1r zIqU=ZCs9ZHaurm<+ucwY7JgH3T;VVPDE)X8u8vH}NNOVM$OLG)wlGgbmHdHl>kB?u zm}S_-38-za&$6@sHz46(Mcv7rO%P+VyW zBh#0M05nCX<9c|A)h{|tL384%e?xnNYMmpI%J|)ZJ2J5jNv0;=!Nxjr6EG}rR*tPK z(G0+P&sWk-!)Ye&Mhe?uI1}+5u3~09j5!nMksV%8#!u7o9#MTt=F|Fe+(-CvJ0hww ze(SpZ%Mk^|Zk_GzHQ!=*?m3g1GpU&|sa6)33i9+^MvlSM3zS=kmrc*SX5PC@78gvx zX-qcEPa3qqirJv#od$2bwI@M1Z#Pj=s&@C7?A3kvuf zemp$dIX(R~NqNz}C8>`z_BQr0b|r}2$flOus!5{It4u%`dNmVq=z~lWNVJ~|`kzzZ zG)90-N-n1@wnhvog#&O#r&90|uSoFHKBoy@qKKw}HeXQZmp0jjs<9dtLMEv6MUdTt6d6g> znq&zm)Fr8(2W239*|!Bb2~(51s6QR0qlYqDO1h&jL+CQwGzA_bs#hrvwND74@As>8 zsa|A7NXP2gtO+kHearioZPaeL#J8h3gZvRt+ zu;~p`wfdM!(o`ZUZ3JnyW?X&HIC!C~ zSu33Ol`MTm=qfx!!?G9Ktwx1I#fySSB7VC)9*|K`tNE`6nVgc44qUP=k2gaMc;mF& z@PkfxzBDWyVE7ZC_@4~#ZtWZ$U{r7u_ftcd0eyT700&XdCteYSXrI$aL=;h;lx%-< zPEq+&eVB@bctuW9T4MCLWdT@NNeVL``PUR4AKcAyk*ZwO8JcOnVy&l;{oe^QDI1X@ z)#Ntxcfw8<-DGU8eIP`HSq zQG_@q0KT&iw%_WETfVba>+6r!AFpk!KMJXorC$t%#Q(O)dfNEay z?!~j&a6x3n1x1!z5S{LVd!~sdID#WF)d@EA8dmaLbQNo_X&uLkrLAPG*hFNJF8>;}88ad9bOqw~ zF^VbJ#rM(i$p7R^l2I?M6}ig)8-3HZlgG%OHXa+2Dq*XR=hNjtN;GmDZS(H4eDkVq{Y zCqa#AL905WNC^UBey9W!-D19@U!{IfrkjX-GH5-xL9#+nvt(i~$$2Xt9rOz|l}aeo z#3Tw1t(sBEp&>Dq9>lm7^gpM*#ESr#R49So9&ew%GBGgu{_ZX_*h93{Q_Kke$m2#> zCL>Cv{4{g}zx&DUOb}Z^`4ONlu3kTZBO0-SJp3FZp*VtMMTse8egA_s9$1|J zovr!Z{wHtf_tAi_A`FnxDzAp$JwRX^GmQk^XiPpxhES`qW=zK!gkfL0Y{r;z6HA|j z#SNLAPj&leYRv#UWs923QHj z$TX0SjCd+G_(*6vA7oGVrE~i1euo4`5gkotowDWGs4HStzx+n3DRQiS12;6hHIi#` z_tM_b0ND#o_%=@B({EHx%(gcv;)FaQr>^F2hm>r!#FxO1uo)vlj8iC`@RB$yn{^n1 zpQt5QSdWp)P|`SwVj*|p9aAxl)05Mq-JkDSS{4-%(3*UU;d}G&rHDa{OrUYNdyGSK z2ABhAh+Z^CmLTBH;;;~mh9kej9DsgiasVn(5rar3Gg0wr0e~@l?j4rva(tJyVKDB^fHD+`xU8_pqlGp3d03@Y>)96ngn!pI%A1Hc z`g?23su9OkUhpbo5{%JrkKjj1r1^3&I>170p^Trd+#5%h)C(Z2h1!h>as)C3GKtd@ zslPzt;&8Xp6UEm9ty7dv=VBysj)&tTmv>BoK;e{@7$`MyHo)M>Af#M${c8p-Q)y8| zb7**f|LE`~*%U*^#UIVXO6X8e;gMZ(fdTY2PPPwUHVmS&oW_*(7)_m&w~et6P-Kye zSSe34H=77TU!Y%R!JFHebOoC;KnXmjtYOLmC4Svy6;GZCiu!dHUB`V(zcHOJYGLdjgdXBq2vjHIQe^Lt#$U#f@cYkEBSq8?|g>a)~kJr39P_-+e(Jo(B# zJKR6o`9(z4IO}))_6KvY{Rt!OW2Y(DKE+k%Od%A(7Z)dbm76jOhMh^$>6rR9Ss?!O zI>|YgWha<(S;aKxawy3;4?DFWe@=bHp#V%g>zbP6#O(p+5t&fnD1#j!wFw=4;`$Q9 zDJO(B1Jwtt@r3e2zN5pBULfuGBg>c+tl9dxs0eK4sAWQ$WM3ACv+ETA++K{&((MHtgDO;x>EI*Tx_el&bOUsV`l?I+{vzu7rG zI(QMkRSe(WdHGzoM}F^IUp)MVmQMIFZQ*c+vYV=s9LIlL($qPM`*4d zx!0#3sLZi{etEWivTGloH1?Wrf0p(PufiPM#Y)}#zxgx$!>g_eg0&m0z^@f?F|^#C zT^lucHa6DjUwC5w*4G|AeE5Ix-}>st`s(_lhyPcruRnZP`#-BTyDp?ZV?6v=*8dHC zf0R`&@B5$hfhD%mp8~I^U?fTs#R4)fKL~5Jrw33BDoom!pkG*If)O zG|yYUhvjzs!R^qyyc$`how8Mb@?@ie|9xDsR)HAkzpGXF&l>&QfS>gz)*fbxZ21?X zYlm~Z@A<$}sY4a3*>5xG(<|ufVCY{C9ddfTz*>Q*_0+oc$0XPCHJo{vYA!3|Dq zE0m25n8~d;sv^hcBO>BP9U?K&(Mu4JhahAhkI%ba+uHZqF5Zbd&@{dYt|*t44A~Uv zxz_DX%k>D?ux(K$tu@((09X;3jY=S%L(hjIXswj7DG>oeE8O z`Xh|+f)EZGCp)j8%Jz%qe)IHKB$mDA>0zVQvi6QntZnOf`{cB_bGE;IVjZ8IfZTyc z;ufdALjV~FzKCVa<6-{_lgjY|tt*E}vh4zCb|_Ed;5L8ah<54FDk7YRXj~@!0!aTA z%Fg!;v+o5W{T}d5O1#%)D8b5emMB1^5Mc?QfqZx2T`pfeCkdq$N#-Y{4_P!Ab%6I$ z(a6hl-^Xz7(U%}Rh?1!M*nWXYX7^htx2Qt5!OG}%;09DTeBbqY-YEW(7rS^VM7{m( z!9Fs@CFXRhJwJpn4bwI zMp~Q0m;24uEBko+^t5qu2-9|mru(~%xAMFU%SVKl?RRa38L2;Gk41zhSSqT({C@XV zRUP+7UY9!AM;vHCC`C6D3fc<;#p(x!dumL!96;ni;r1_)7s-zmgzSyn9{r11FO6;z zNN*h8v3qM1LfWJ9z5hZ{9rg&8e1I%SwY`aJ5pe#-B`qDx-Irm=J1i6Mq1CaDk0`(_ zt}b9hv~9B_O10j2DHSaoBK{7^O-(3QG#G2Rj*WX;v^E;Hd;T?WOOd!sNwx#N0z@3@88< zsz}}C%VmtYw{v@W?XkI(h=R;h$VM>OBNoP%2T&V#3wU#mgg>-CjvYMwAS1tIE+)Wi zcLQJc9x)|)M`I>*W6(d|2WbES53A#2*kWRs4g*@`ny~T~IUj2ub3P!m9Sl98f35}7uX_J)EkP``?kGIlOqF$Bb0;P+g~bul*BxP65i>SBAa zSg{s+pYXrK9{v{?LkIu8afX)x{1Ebh6-^|`rpnN@RO*2Vd*g<|kg3-U=-dUoc(~&N zS_#npulCN-$w_19ROoaoa$Hv6d~m~Dy>bL%E1)IOyimA<-4fFSBP(df&8gd%MmO47 zhC=7gQesVFPyZ{HaB@9bThUR=MPJ?&RVd4++x}oVmkuroOgA#b^r(VPA}Vg#5qz*S zhW74naj;c53Maq5tG&kpi~p`IhH7WgfQgsD*UtibWL+i`@(Kk3@NLWu4m&CA+n2I) zMkLs!7#}1Aq>N!}%Zitdpc$F}0mMzWHWk^Ducl)Jd+ zpxEi4D%-ajjPBfl$EJnBeZH63;%80sC*+C5mKmpxirO6G>rMK$Bne81KysJ%`lEXz zm};ZxXw*bVZO-Bf1jFJF&|(rKC=PhQn=j4~e?%gsS^47+N5a=(GRa)h z?o=AOijeW)mtsKr2Z;viL-^ryIGW=z@4Z51!};(n96BaL#{`5T&l8GQD3U=Ju$S6G zEs0kotzj{J<%PC~SXnf(7|`V*Zfe>9b$mmQVZJ)!aK6;A5Vz5yaSRJGuh#Xo&Y0CD zEV_GaJMAkv*5Vd*F&?3*?QkrOY{M4i7~w}H($k7{(s*e%-kvr<&fV3iDL&aeNqXJL zR3&;HPLrC&C`ob==KOdl^e)78YeHxz9ThO!lSb?K=&;q0qZ4h?3Ub>#xNz;&D&l^) zR;G(-;u2CbiR)HcMVrmOVJ*haT-4J8sv^0r-&fai%3fYdz!k9`I0=P%&q(15YBYy; zG1G!Gyw$~sH?EjjBVe9+xz=d(gTO-9EQuI-grE^2_U&7cSOB4dZNSkA|Jn?TN-jjr zcCa`iQ~cG36||Xo0y7^bV9HCvc(}9>6RsA@inoM1<=D|9>~z>)wy?y5mOO@>o@^hs z_P0-uPFhc`Z4>>BT(%g-MS@XkLuUo}Gq`q#JSURdKeZO14lu31fv&ZPO~FMQ~~j6*lGJ6Hj{G5({t$JED1@&y@~8oCAGQWezbVIh;m)@-LH$* zPgY&qR-eWS^bM5`u~H3+R_o#A+h@~FS@QlzbIqL5B~bSLPi?inQH$OGJbd_YV}Aeh zH6Ebqs57n%lFs)8fd#znyv>o+N2s4O-Quj)>W>T;HS=4V`7OkNY{z;^4(xk|spF{l`6a|GyVmb;V)=+~dO+Zd?r6 zR*~eI_I0z49Vjt2E)1O&0KsPAeTah^qPz&M!91CcX;XH}{ zhsR2F^x~iqB^nI%%39)XZJM{B`ST5*#Qu*mr~~BP|KN<4uV&Il&i=oiwEuYcaJ@d? z|G&mV%iQU}5utbPBg4g+4_ImDU`#c<%##}nu40QWk;SGybh~^Yg3=eA6w#nQ7Y*j3 z!JkSrcoT{S$IiHGH7+mRApm(X9K$a9%JImx5D$L;^m^8Td+U-3g){)+G!kSDxqZ^u z-ra8={<3{)zq#L53 zhiO!K14_``U*5<^7CT=EAr=AEd(Hg@8JNRra4gsxy3(rv$xs+E;J^o*qc*}Pq(=_t zr-Nbb?e4sRW))D67>hd`fUH1z%8+|#{YEI){_q1frG`+!9>Fp|{{+~W?un+zx&sG+ z7qdN7)w_Lve0fC-N%rr>+1_5`M0R;ZYEi7u?@@P;d<`J*3mel+@$`zC!qx-PagPNs ztt3{&pajM~p&HcXfq_{ zL3ojEYDteZnOPc}sFaI>2e7hQ7o}p^`$W(Xw1c6@0h)d%d{m56=!hQX6#h()bZW&J zglvnWx|yp8*rlaG*yA#FIojXJQWnWLDGVJg#mNwEEOJ&eRbEiUqOjRToE$Z8p_#r6 zOC_k1n4aJ;v|EaxcE}?X2NktRfk%d}#C^kReNK=K?R0NLXDD7_+SCb`gpSXYjq8Og z%EJ-0SG^Ji*|elbA`p<;wF^s4s#S^p6vKtDqH5^7LwkqpqIP+$dR?ln)z<4zHXfD} zju4vJd}4<|_y+keA^!)rK~>rb&Pc}0k^k4~8yj)?e|7cIT>k$W4=zZ)9iWSDp81#@ z590gd*~svl-?Rz;5<4x`xzPTVg!WAl5^gf1>rm!y{o1nkn+MI)R!riKe9(mJ z&?@>K-R9qTy>SnOz1}&@Hrilf!cise06sYI6eb{rt*w9Al_p(mv8%`;v=D}=CPZq* z0v3=0;Mgbx;7$VATG{vdV>ZpbzVg~vu;dnJbibC=HIV^PR*)#aB=zuHk7U6Z<@3}$f zb^6M^aW2tz8ckqn2J6;=_re;0%nGs+?{>~e>~ScaVK5#*tl$<7OJe{9Bo&qe@M08) z3K(-f0i`)?3kDe3LWiYWKK|&JaJZ~4ctQd(xOS@$?nuo8q_j!>O^55F}!-w^l z{I{{XKKK9oDi7ZOCT85KR;$*Dcx|=40kQ#QD=+PumlCSp+C%i*+aS-qCxs+NYYE}d zc1hdd)B@wu-33Mja(;Ukfe|5OXn75TolssxVG&{6MP6LGo4knFL?DIbMIQAGB*vwL z#E4j&OkCvNu$Fhb;|vh**kxhV57XcBdN8m5^a0^P5YE~Q2fejWbmp9t#uyO zR@WY`b=&!1so z4;>U5m(PdK^_5M-_1O3p$cX}fsow|HCtBeXzvtOa>Ih($0tXxo4bu&>&36| zv0-hW!D>HgS&NI?E%?5;2&mnqwU5?wuxttMCsy;|c)tnN1V?B#TEJxwclOVADMIE8 zU>Ju-rxu-opxEhAg}{qy#8*^J>u4{*C$QB#MuAXp7`x5Z&i;1ups|ap;X`QHYP@d1 z(F2yl{(fXw0BPsw@bsh!9mKz15Rm;QT3K^DFw)&7nh4`~!e2XpBUFDe^18XxXl+{iM=iqGS*uZjMozb}d4vM!g3sKQ7iX;|;SPl3#>vUq@oDqu zux!0LdIOjN9Bf1FT|)BFA&nW3bae77!bN1z98_qQUNzv;38Iw{w~gq)$Zb2PT1o5y z;PX@)taaFUx!-)*INWInk~u;^Zo$;8p8v=as;|B>V052Uz@Fw{uBSMetO-f8&z#W5;y|-CNSp zo{O+^q-yoMUH=-7G6UBibY0EE5D$Gr7muU?^^9a%zQ=)$aOi(xPrqP%dC8IM0|tsG zqNr>GE152lu4&gnc24c%;S2TZs14^`8-b9Uq%-il{w3ZHpjx2w2_5=`aXASmz!3vB z0lfge03Q_=`kkSB4P2%RN5N5S9p-BP^so9>>x16`zW6Mle}DV=+CBd`_QDqQePJQo z1-h5C3!wM5;j7pq(6%YuR2*Ql!%@O_Jz+K#dY|8u5ba@G{XTF$xWBk)|0`a=AI(09 z?1 z^zNkj&%@pA#y*~Ue|hnqjEK=t3o1nYd8AF2xJ6R+UTp8$zchZen}@B_ZCIe1Hw?ll zg`)#-sunOq8Z^~-)J5&plhydE)rT9V9?Ak@_NM6D!S-paZ`!0sUE3rmpwNCBB-E1Zf-GLK;(uW0 zR;=}M)RPJG_j#P11F0cEJ9Uscp0eQ_!{9MRz#|akASKU2S0&4{o<*>*Vm*eJ4;~mi z{XiK0q#XPZwxHVw4|Jci(#U$gWi8eg%jn|?e?5c0o-CF_XRlA_t~0W#TalKs3hPf?f<7{kB+2!w;3PQMrD~8H+j{=&oB7XnJ?t z)S97Z$Y=8|wL{gKu+GDcO1_hO6@%8cs~#Q{@INV+|JugXd>#4$m#CgT2?s~J4ZE@P zf|;oK^UjMMeSb(PwD+POW4qkz>T|9@-JOu@?lg}<#H0qI6xDof=C^1k;YlivGeCWt zwVSWW07v73IvfcLnBi}V$nn8t-+cXU6?I1Mb%)hrOCO)#QW>LMdIi})6qu1gnjmJd zgeXKKqm&RMbu#8I6iHIBh;2-bNfRTT3X7=>bt(*|GS-=3Pp&J#AaUE$7)bT8Jt`xu z%0i#hS6a{Qq0Lb#ghSrVrsbhCKb?`0zq4RQFECauutL-(<+3m%yOInmRZh>W#ca;& z55~q!EBHuR9LuoePIdh8=ml9sMJ0CN-xXZ>{c(@R79bMfSOojmf4L@IzP+n&yx+7C z_iL*d&e9)tf_Lli>a%r@)k4AF`=msAp}Nu{F=#@*_%k9+r-B&KYtHK;mr-HtM@;f0Sxc1mlUfUq_b}8~vVvBkj zXY1ko02g^qT)tX0^Kwa9icHmhFXVy>_p@S!G!fxRgtG^5-q_GztHSY5GFHL)&~-kD z#cLQ9?5uKB9tx=8icIWb6AYH9Z<*<_Mhv2)sC22!V=3d8|HQw1!q=NApz5ih>Sj>& zR8Xs_pjOSGR#QQ(rGi>BgIbG#DnJ7biv}NJ#t4uu56*kS+NFAM`)t{>e2<{<_iiKqJb5n z*1wgA!9--?M_l+iHmdkeTUn|-R)Dph*(Ljr?1E|ofF`(>UY-sY zT6tuDVaZDDUsdz&Tk%}lGJ={*Ti@ZjiYuqI6_TNo(uEp2`%|~@=YLRe&{a~O;{aVi zqQ4DATc9Q^fT1BO+VBg)8|g}J6=Ix$8O`CnO6Qhcy!=g-*g|DVL}n77FrYh>=_#u}Mh zwy{QZXErfi^D*C`4~Q`Ixw0dCzJRjh`&Lo_ov}nRi9%vl8k|3)V&hJ-#9XmaRIy>S zGx+Wl8(KpG?hh!ICPQ+YdXAQ(8VP=34av$988e=96X=GD5jDdo(Mjfur>5^${DAS$ z0BAtrFzzNGs3WA#$$(qR@06TD92MzsXhuoqWb1>N@~DU1h#mKUYS3`*#r{y-(j*c>E%(d9qoWY=$PAoylfq0xpEx7;bG!e>LYxg?Z9! z6i_&uxm*)pxqH2?3KE|7CSO9{=Uh>e}4@_iH>D|K*ATCsCvf zk3?_shy*$y-x(qZ5x(8#G$~U?f3~cs^XtGFj&#S*9c$k^A7bJQ6^AVHdSdTjgu)KO zIo`qhE^7T_o~KwlC9q5(Ct<7~`b*Xg;UOo84QW8dpD)%7`wm-Xbk8p2O#W=@e#9}% zM*NAf(qs{6UhW^gu*t#iaC;vE(8%~*@edR`gO1<$<#_uPQ^_}Y%hufRUK@BYxy!kR2z0v<U-6U5>NCPMq8hJ)CuqXN7 z_xq}P9ukrr`*7LZUFJTFdiqgaRb5p*-BtB;XZOdW{hg!l<&``4>J{E~UYl0_8Ut`t zNvarUPjXdtyK^g?c|+&(-&A>lc$@nDESsj+Q$kLt3pEi7KWsIpB)U~h2qyd~bN!%6 znLzBJ_29uo4T5q*yE$15VJ+K*``_LFcJB9P^}ABR3n;7I8>GQ6zcgCVKr!=KWs8Vm zMdR;UvNL@E`MgoW`Tzd-I(3@0YQv>ze3T&mJU^$o-jtvZKidA+g&DGsZ!EtF`6^T` zbX!7O+c)?}zJS$%<`&r6S`lXM?)i&8*X+OS7$Tzot~<%GoKJ2f1IQ=rzrghu_)Rvsqo6SrYn5ikI_S)XQ>;eukRxo6)+1H6j{c$3ip)gWV6Hxv!<%Tllp7xQXf@9um#TpK!s4t9s5dK2 z4xl#^CSuf_nkL#XR}IjRI_PRJLyZIsH4pcNMi!CDmhnU+iu1`_*!*&U z{@HB&PP1~GB%satudA4J!qdDu+-2=Y29o)6PBS2YDK`|_v(~N8 zXVDwI&MV<+t+OT5{P60`6BbEgit5Q8pIT1*4vh80_;(Qm2&`fJB3mC~joNaVpEV1hCid!xquRy^LT_ zLe%M%O6ZSAy)hOik497kjm*dFYd)g$Af=am3`eD0MOQ5uy_f(h32ZCte9$Box0Tf4 zChaU_7{!Z;+R{iVT!ME>$)qrddW^Zx_Swf)~o zaRuZ3W)eS|=TrHge0MSar|-J%-Tv=39terf`HXuRODHcP4)K!$x6qBsh%#b072R~+ z%ZE@)Z-?VSc2Sh+FZy{_6fKi~Iya%M4~FCCZyWm}Nz#xHtH6lG`_XWkde{xl@_wp2 z&8B&;@5RC|^8WS-<6C{lWEqe7Gb_3m!*RR+kyib3+bUs@1&~H!pI1X_v4QorebBak z$i@u6mH)e(?bx+f2H!DumbgMI`5PkbEo^}t8{$sa$`11AluU@`o0+nj# zeqMa&w|H+4Hj3=&)n;l`d8D5Js^s(Bhp1RI>3eiL0Up}h?^tKNJga|iEI?(gqb{wP zy|*u4?Qxe=naXE0BPG83i@mP4?&8Or&b%pGW$b*qv-fPJZCYBw*YLi6w%|5FYY=Op z5K&)b=V>LxWea9f{^b()a4uTEh?zIz;bm#BZJHLq{K3)QAy+e2=?Ke$LS|OXz`ZS9 z)RG0E5P8PzIph1&x|2cH*VIfB){*(Bat18qXr}+F?skn69xkQReVD%;R%+Po<=GJ` zExV5*aCBb1dikomv%8BW-`(pRzUb`Lhb4leXOifhmU}B3L(?faw~TT$Ygkf7aZhao zjtLeiYkU5H2qe7dNt}IY&#Cq#-BfEj1PP#mFy*3YNH@rA&xMQua4Agg*ZGyXcB&xt ztm*Ws-E7~O={%b?r&_U>RGGUoHg~3U?NZEq6GV)U!c4VH1E$|Ho@>Zv!&j7sABI@MB%W-uG<{TQdh{ebD40^4weK|#v6_JV zZyRK{{9LpDhsA|#F>i1S@Cp0h2|Rbv{>P6y`~Nl`s)e+my)_VVl=u3y-Dt)frxY~G z40p#scgH~gFOGpO`n&)mRcZW{($HFmbvmW5OJ7YuqtPzu1I2HoyNkVHhpm|McCv^Z(mnv$1tB%^@1fDCm2TW+RBi0n?J9`A>NUBX3nl$Fl<4$wG3ASU)j6aUp_QvW2Bv z<}60FhT4h^wL+=FcBS?y)e&s{Q_4@8^~RPQl=(n4NiO7zcEoJEAkvM;fPgM!CvRmdSG4t!`lw!-(b_*_HFqy+H`_#&trMJ z-L5*2qyXhMI;}ba0)Mu*>~`?0z`Z%QTU;D&^YS0==Bsu5|3+2yX*#_~G0}D)*lmYy zpxeskp50O&zuq?nW&`xiK^jFHEVJ?>j=pUbM+PtQa8G`v*pP$l{)Z@lV3adSCXAO?>nowmJCqw8#TYJR2<{KRvma6-Qq zdAzpcJ3-=xffvL{gbH5lhtOG`7kh4$1hyN;zLP{{!_4iTiPua!i0mi{JvWRJKTg8X zNnFqIpyLuJ^pYrWeBZT`IIJ6vxV`q|&yp%a9m9s5D-Bykjk5Z7T6MV*#|w$(l!3!|T-Sa!`B*hHOSCGk( zjh2r)VUy8QZ@59 zTG$5tK?9H<6tqLzO=2$!g1`-95Y_Vo-;N^CplarGG_M^yk%#GEJQom!VdA=8fT1zC zi>~~Hyw(6R;Al?U1AF^%QgXc4%S%^L*ijfhz{58IHp<5 z(W15sl;Z_h&9g%{60Wl`2p|L>GchI536!+Tc8N~T4zRpDESAKJfJ2XFqZ0tF9vV2H zXlVQ3WH7t(>w9ICpbdjD23U6F6HctgFmMw5>-)A7I1v*JV$OlV%6nxLU2r(>B8rVUCl?GZu0)$EER?UP_ z0^4h2o%(V~wHf4x^m!DtbCi@=7S5B9^Vj=*a^ zIMWBmV7_q#kVC^?5Io?KKlgO(1!?tpijPmrZrf~9OECUiEyTRG*AQZP$(xWsSk0Ie zkeD#DIV4QrW1WKK{5S&bAVA`%qdF*8-t^l(5$ZcwK17cLsRwBed_~+aL3$I*9th!> zX2P3J+XK3QZm=!ZIb=)dkh>!ch9aAqCc+{q36U#rf?Fs|z)3Dd7S&TsZ3X!Sxe-fSgpw!xb5!Sh%<;IlZw zf(^O6L4SyR$N?<>s#&N^hI&4@pDP(01_p*S0>favLMx&exWuZmt7ehT&7+gjBp6R z@k#7Ly>rDRfzJ`62$%roK}Hx00Tp)H&aqW%(I9Yv2h0*QfFw_Veb0k{j!Ag19#%(e zSIW9j2J@kSprriB=OP7}5(-cV1P%&{+jbPvRtXG)6{VJpA;c&zU7w2%GllR1@nR1a z17-jwaG=*pY!)ShQP0F7WsU>#`Dhukr3WDcu}8Y#zhP)NrKlJTEr5ssD8rJ5lno$F zApSsk$OjP^z^hv|^L1{qP1Oq2CsYV9Tfod@ag6M{GBD&DESM6=K!LPvAEL^KiUnlA zB=o8SZo^DrEKz4cTLUT8Xu@Do8!N<(Y2tyCJxEWFTG)YdvBAikmxITPtI-UDx!_`t zEQ`t^)T|Gi1ach<-Gy=iIly*M5>+$9U@>Ja>@olvdLTR~1@i=21cDHKBoOid$E}(r zs$79ah*bzoFeNYp&V@FI)`XD+6%H1lq2s`)b4#K5`BIbOF&BBM(jAKw*u+AI=?kR- zwg4V!Mse*ya{ItDkU-vixb|oFoXsL$F4?l)S7)RUxRkdGnL(zqy|7xA>9ln@cePCH zcM9_-H0(Dx_3|s7ZV)uxc;lqZyq+$crd~=Y4-Vh3iMj1SY1zDaLR!TyGUQ-3apRPeg^(7=PB zgP{eP0ArHY1w}EKFo2Z^DamE$&W+%1ZnlD`iA_Qb!mQgHj~}$S4g3_|FR`mDw@DA` zU!!a;Lles{t3U`6yVN{195=1%NV)kupf$R&;w@iBD_-(lxcnVo1xsJ?jlb*-UwBJi zu-v^~&SK|UF-vVJt?=@`frb@Re7|!3e79oye6@V`e6w`&e6eiqEMGEp7GIw^OBW{2 zqWS>ba7@W9EwZw*%=(0z&JD&|Q08f7Ut3rrV(x)W<*&u{p}f|z)GS=eaOqJhW251atKWoeIk}Sb)axIzp}DhE-m1U%Z*3>uKehCqU&i;E!Q+f#6&Do;_0Qz<)@?I->+?AM zk5by-#QE>F^Z(29^n5Uz*f$gUNuE#L|BBpb@%%pw?(Tox$^&b-rnuE==~bPc3A;zP z#r$|Um0SBJh}vW{<8{i))%5Vq{*Aauthyfd?O*(Qn770&f}MPpXT;rYvA=*zghp`s z&x6jv-kYDg-*;=zg+^J^HKCXeP(dzZhzA0jce{PA5dLp1y=1H->)!4?>@q8-0`;CP zSDo7E=6HH@vQ_%u(#>^gr+?HvHEu8)2yKA)S+|(4-~STt<{P~L_Hp^o@3PnKf1&VB z{@=!<5p{*)l>Vh}yVaXbGu|bkL;n>Q=cqS4$Ldtif01toSuq`5ZCH~mpNc=Rh|zv) zkjdVYl147!>x~q2z6Uw-{Nifd@Clr+W7hmnZ=Y7KVhT`w^`A{I&W8On<8~tP4=SjQ zC-aH+lh4NLW?|f%GnMTsM(Go3`nP`GyAmhExeHB% zeHU-6Vm2Xis~CW}1~3rsok^Ywh(!VMD$)bJ8jnpVOHm7H<)(GPyHV<(Nu5oREV`*M zH_a@)VJD9EqDjwr2M!I(iy-~0hfqTo&?EVl0BGDoic*MUu^o5m}luMhaLuE=wCurQVm#4v%GgoyMaxM409k~Ofeu3oEGIxBz5yI z74{%QRZ+v!8QD$ov_ng(Xk3WeGLv4nH_8EvYDA;VRq<)$4bTz@puSU%woVysVmL^9 z<~C%bzo9UNkX;t2uv|8>Mp*{6lTQ0>@hZx4ETL1FeH^l%jYb-e|6`Y`>p~+-<_k@< zfK^d&zE&NVp7;7iL%ZICNj6b8y{bqUK;k=_7t*qGu(NyAefFx;p)cP|v^Y&j{xS+& zEXuihszSdu9)PBrO1Cb((bi$G9cPRQvr&Cr(=a0SGLl9Ae0P^F0@E_G>3wCFu|!)a zFK?b$UzJO7z1xLRv)k=%@XmPogC{EG09@a^ns(MJss(K1Amd7adi^}xGKMNx{(Qzb z*+wpCSQR>*nI-^B4AwevL6-)&PbK^KP77EY{-9W8=XtN`td~ zQ;^DE>-`QvwcZ4_7^?+_+PI(AbT0)V0V~C5hTjxc*)cQ)L(h~h^6eVv%7$A6s6@t~ ztXkDHnAYN|RPku;wt|gRz>Clm(Eyfxht4E4PR13|JLi6myDPE4H4;hXM+dvLHyGq} z>pV}fg8TQZoxQzR^qhS5=1@TtPAnyZ95Gg0zWZwD?;G?Lo-66fB#%1JyPd9H8@D;LV@+UX$RN4;>6>~D7m}?>BKA~fWj`B~EvvA) zQ)P-Skk(8a!@FzTRJZW|lp6ChTnc;DPqX(m)EjiGR|aF^oW4m~YLMOm?5#6B_A$|< zwyeSI{QOFCPOTZAaUs55S>RuI_l;Cyg-uf;|2#4;tnV<1Z%yULb)k(yb@#wLz+aRKV87sTLRP;VYW7+yjX&1ZQyvpPj5L7%(GF zX?%#Spb@{+fE%8U#r<8vjFrKjXgHt1=E^Rpd5n!cr&+|vUR-zj?CigIe%L*F@n4-e z5m=R4RtcJ3yJ<>5dcCnHP4;v)$Th?>WvzhvbKT9a4{N4=T^fw@b1og)HDue|F?%(D zwaMUPjYVR-?}bF1z4kTd9IvvUX8mGLCeye1OPPM_SlIg8+GM&B z4Gz}pnljB4)tGPViDo7FANKxqy=^O57)JMRT?L|aEK(+AQJxYja<(kdwmO=&h77OU zFCU16B-kXt0Hh_Q<8v?P63#80@5a8G)&wk&lq@?*Z{g{VMPQA!YSpT$RfB_R+FwP* z>kC09rW6V!oMJ3BtV2t{*^~*Nh^e;(TJQN#6iZPUrT95YPif>-5&eK+SL`B&mdoO^ zIANBJSQQeHl{9NJhS2i}_^X7Y^Vk9L7^uWAh=`8$si%yk9O`<&J~SYFB8zl_@$Gt% zVmaw-LS|e&dCbYl)4Q5VTy;~ zV?+VaoJ6Z7JlV(Bxs58%#AY`-1KudgG@2n6t(Cc+8a2%NIp3LtWJ!puq3HOs?hfQw z4pBK%HH|bFYgMnHrih;nh61JK1KPQ=%zTvWZ0hPjgjbR48a9h=5y768HE~6G({U_2 zC4v)jRLa$YF?~g$)V9}@j!yo zLs*rw(gim>BZV~(FFloow@9hDZ86?eFZ%JWf7va&P1*!&I@6x=5VI(_J^0bLfFtlR`_X2=j|ja9TqOiTxYUE=4;< zc*WHT2xCA)0(q2a5_JMlgu~+xu)JRL*}Q3@%og?Ckzm^RZg*AsrN_}VJHLe9ag%qGqXj(ygs;MZoWLH`E7 zGQxgf{tb1N+B3yQmC2YArT~rDmx<4PeKOeh4pSVAtIzMx_-`wptcl*uVesj0q z-0e4a`^~A}k1W_3T_7F32n#s@jDp6XE+5`Z+CBhdo*Ht3Juo9;BCj4E{fH?f^)<9Y z8VZ#%VA^vMX@;7pA)G7uDbF0bj|bzyOtecR^g+lsy1;K2Cxa(ohnRq(fW&MPow$Zc zDAd*`(u5O%2cZv^+CO0F_FlGk>!biFo-ya~DE9-`w5XD6s`LR^r_c-<4kf)(OHMOv zp+_aj1fjTHNAJ@PGxfQvWTWJymh6)wQmSbcS|L458AKik>5>c=2Gl|OXt(Yg7|OL1 zfZmHd!^6hPZ4GYJ)($jQY)g2)GHanWR#KR*#jm^fR{oQ454bG3?n1wcLXKRniwa8Nv=wg#1^u#$$J&XO0_s-Eu4o0R?0f-J%8_mA#zd2~<8ub!4)eOrF@ zUHMgO+4HXDdFO#r>!Ih}BbVV)7k!%Ja?BoZF^zUaDGEgsqxB=35n6tu*ck@%yd&f$ zXr6f7FtKdfMYm4|dRyd;E|(eeu#ls9zLTMJ280@ev0{tWES~b-oWy8-viY^hK)_WC6Q4h z7)IH7ILsSJ)w2lro+#V&A>#f;f)Jz3krxKEgUbsNKA!YrghHBaHodZpC0R(OH7jH3YJFN)%Ab6el5)J5<3&B4Bfl95|0KBDWAq z-J8&JBH)@;Qlakgb~-#^(=r~;#X0*T(HUVaJYSA5r0dGsMyoy4ajR4xEN!SED2seP zQ+*c@axFpk4|Kqqli5vZNVWzM00(Vk>`P@bjzE1@;+s8Ik&|pV&d`oQv4Es;5#2K% zYMAXj%m8)B?vxB=b9UCs?OE}@p&2OyiYaHkbJQ!Dw6Bk5enb7Ds<$CLEaQcAUUjTb z(uxO*c|MfuD2`Qi((+4PvUF7H z{~RNm8nyxH5gIJ;-od7DQw>AKZ_xU|IO!OH0l~N}OH`$85nl*3EVc6XooCr+11hY3V9Z$Q3PxLxj95R;PBmkg)dAAs!>BT6doSMu4nBjq#qER|-O?$TJJHvzRL8I%7~6bg#O7cH+1|cD{&zG#Q&? z{v_NYtl}d{3_VIn^cO)8!wA|)F@b$4stc4N!OtQ%(G?J+4Jy11h0*&dpO7MGIe3wcVS~L6>1_Z01b_W^m;C$E?Ckm9KL*6g zT?~leKOqJLic;IJY#CCt|KYwVu<01&?E)~5dI7xaJScz#uB{Xh=}_w?m&`bctEBZx%e5S z!&S9R-YKC#0b8`&A0w(=&~-bALXBS-W@8O{g zDZz7i=n@`h1u1rmP^#^Mpe*9FVLKYzrLtsqf~KSxCnS`A!hiuZ1G$ zo6JWu%tw@`<_ecA&x!u$OnKqJ7!2T4q_tcMYR3uQS1B2QylybTHhC)s7m@&5DZvEI z2S}j$0D>_&hiD{~?W#v5F&30FNRHtkU~`?r!3YD*Wf8T+h4ZDM(ggwTYK6?G9K8a` z`%-Qv$ihcoVqB<*5;&7SrB8*0LNR@ua3ZGOQhiRlI%DjMexDZp8SUVI1j5#i(iCKu zW*6k%QPdnoXpx=43;6HagVA94Kwh<09{SiIZmZi13T65I(gO~GFy>|Z2N5Ro7j9r2 z7YBOi^}TMm?Bh9rNt&9yg1uo=yBbHH9j!1rNq~_5jhO|KKD} zd_qO=&0g@$dhpGQIW_;S1X+~qN-ho4>`K%?N}m}P$O`>xnNQK*Eu5Px*qy z7$8iZ*)TD!1p&`&t%v}sbPd^@`2lRx$AQzqykTw7gc{J&zuYIkXNBb!w50`Jh%QIe z^#T2vm9Fa2ihSA|Dbk)e^9gn zJ+i|h*Ni#70ZRx+pglO8V(1+qv-Fs;3=Rao6SC%{nqyx9zV}CVR*3g8OJ8V|(I-ry zj4A;A1-v7BxbSSwKLfNU!0R&MJ& zcF*UfF7RC6yqH>-qs>T7!^7LxJ4X9V`Gkd=ibe7TqOaJvFqp?f5vXELDd_uG^TMS8 zc8rI>Uq--?56R^$S~^?eVbJvy$J@a6kW0YRLVT}-F7k7L+~$20I_UP?6@C)@*qf`*E97jNeiTWW_l+ zkWrJ*qG6iHe4?hhG14Pf0C*ZGZajD|V%-d)1Pc=!0XSQ_9a0zu{L&BuaG`KP@p-;k zCo!T+v<8E5b&9je=1si3HANK?Exhvi`30i9KxfFNQF zId4*!2O7Jj7|XZIcyuDSOq^VXYJ(JbQw)S7z?BCSilE!9cJas6`^p*^srOc)gDF2JL^gPIdoRI`MBZ zQUk#~l3Xd66OE<7#vEQ!7HdiCA=#RXy2S4!Tyq2lz2)`L*7b_Hx&t7c_FxMi*FE(W zgn1H|1XTX}DyUt-D6WE&NRw{75v$Yus3VO}(%+=U2q-~~Y1x%515nOf%+pM3{K-Z_ zs#|YZ0kh;9RsjL^Fa}<#p%U0O1Se@@g3N!GqR~%}cm8}%fkzbL&Ob9U1I?j@34Hm_ zL{FSL9uDaa*OaHt(&3q7CHuEJwK`U#?z==sjVGm#uuI;3LFGHKSk&5$z)QSxMo?;S zz+scEQrY>F_{>aHbd#(g?klrGIO7f-hzL5V=KLrJdjs~eZIWgy4~zJSv_ub2t6zh> z(64v@ttxwvD>QxW@%Gj@1V8&xlR<7y%;1HYx6^FIM#T-?rdE~crY&_goLqc5k%#55 zAC+i_tLhVG!>{L~1!1LjC=qMRt&Fs0@7FM zrNkrfgyEbLuJbB?fFYs^-Ha31-92}V^Q6(E_?-F`p4Uw}a%Q z_Y+5mIR_cR|2;baHa4pM&hb;X zomf>5lwfgDAB&P7ewh1OMesU2Y#$ueqRSx&FaMfD``X~Po`111$?Y~L0YiAi^~p76 zYR)nb{`Ap({FEk&&53c&a@{P~%fq9Cjh+3@(d&cu;p@HaP0Tk|`U?MSZ5*`^oMPWf z6fxm5bX085O;w;}0Oo(Lv?<%}@ivDUTeVc`iY2k`B#`eI_CpQ}oDRd^#wq|VS#>IJ z39<2^ZcR|QMebNx{dLegAvwcPF6CE04E?)TLM&#u9Wb8jdE_k#6C?t~4>_`Po#WyLT z?%hMQ0{R}*R3){#s*3YlH(KW)p#oPO3Q!}zzRj`hp358CK|I1H0k~S&63BgM#{aCj z*d<`m0YK?x31eIr4{}6-9c<}=&&iBusTVyUL!Jj%A1&fZ2kb;^q;bjyvCRNsha`pH z=i2NY9}44!3Thdm0(fFx3FgDA=NOqazkeS-H=D-T6-_?UZ0{HX!bB-LAo~mGinAUIO_4+~Q#nusUdf(OSbv?2I%rK(as{fPOfUpE* zyTw9jg*N-F)<%^G$+xU@jwPP}Zql;;0-M(82Ap-=hZ>_R<@TuX&f4K1x?p%dS3c}a)# zbsAgoHnuWTV{)#pnP}UJ6E-6iN_rnq;(noR9b%2C2)BXJ-V8*jkM8g)s140DE9feh zAEF7c`-ML&4)5QGwsDgFmWvd7rLyIfi7kI54n=RTH7X+FEow z4qdFvHaIeRxCZl%CP-%xkYJUMfRIDc@7*o;9Ezx_RBClnixlvGNV>GB91?ZrezJ%n ziuS7dLXwoJNXq6^8V@>B%yQ6{_80XR;YtrM+)`2R?ts;z%+ARVb6fN1yekxCSWv7t&2b_F$~Z+fJ3L@1gKv?>$9xK);3*`L(yO# z^}eDip{wr#z|3ypvFRDE5t_;9&4}+=8;|2ws`555Qp`u$gMl5-IUP&b;~6b{lP{1v zgX%{6kdmsU*8XMdsPl4tYy0@1Z6}9T9J7s@vZ)oCF_YgRAOy8n+nw#L-5=YVuh$P> z!=HyoLQsSmR=?DlUOHv0hvW7lXW;PsMf9CEo`V-h2krLlj|byb6cKyMWs+0DzDnX= zZ*-qjx=iA>u63gn1czvAXm)_L3rDFne!^?}#8L%2=rOcr>fI0QLqZ9F7;4cJ;%}lI z;E&%2c7uvhHKBot)yBYUMfX4BxTFOHRY#6i^2VWFR`n;Bcwrk>WMSn~G|DQ5NAQ-PKYV$Cph#AB!Wtf4@AG@_2*i zYr#sX2M`3|+neRLIB=Y*uf$h4vo|eW24f7^Z$`y8!9sl|02D_))0{t=6~+Zu(vntI z5Q;Qt%1y=>YpE2G346T`MP{z~C}e|LuBgVheWiMen(4Y0lJd48UuH8Ohdx_}G8$7! zcjQjy9ifk)qQYfYXgA9tg61VLH zrAS~(NIb+3vTI9yQ^e)ky_hKCJ!l91i?uYS6-MxeCUgJ(+X)&1&lEWrIdvn$XU#O` zA0gnZ`PR(DTBbt;t! zo&0@84!#{3AsNx23qhCftavmSVaI*9BFD_SNVUxtO5RCsY_=J;)E+k??$?~FuBw?8 zyP0?-E*hiYDjKnefZVG0G*2d|x=72Rz%s+ERy?z6U3XS1-dUBJxusbtnxdKUZS?yX z56MKjAO0TquT)EQw$YLKv$d1l=-XqAmEjsAv-8d3;hnE54N2-l-W-mpfM zvv9bB9>_I6eg}*4M?=FTmLxwY`}4Qva|cXs;*MRxu)>QzHPN?3xA4^`h8rQpC5cm*oTBVBW7cI-jq*=Ph@sV45K*^rqcWC z)A|Z#Coa=6^X*ocov9@KX3S1&7G}r8m-CoDjoDc-%+9-s%+9-s%uY3jZa4JqU5VLw z=P>V@dw(}OvtwvfnTIc~gfsB#F+G+1JTUY#GCdPGel^AGasB@3nf{Rb_ptxo0o@MM zGgTbWOwT)HdfwfH>9G$bVSY;6zJl<{jwwq;*I|16hax_+Ge50cWPV(D%*+H?)ojZ( zi~vBT-kOai^;MHY?NH}SKYz~L2nOJycB;R;-MTFndA zCh=~S*Wg6@Jk*YiPcd_$=UWvsTDVfLQl>I9=_*ql1;LF}w0!cFTW!s%BAtaLoz9MG z&axpIHK#Y{h9zlfww=ve6c31OACRF0*}(hvnHKqEqm^<8YC3L5E1r(taYyg4qZRnq z+fjiIafj1+RkS6+;2v7MqQxrkMM#Y&N}lHE@SAN`sx&KjrU^<*l=-YnDI67AI=Xy; zbwfu(u+Dp&3o|;^9Jt|%;QxiQ%CM8@`hrn8T{2r_<5VEe%EiK=G%##0g-QzhXb6I# zwt>uZ0E5DoCaZ3fScK-+Fac-S<(2|?NWdL(`b?QxCdJldhhxAV3)))}jvf878xmjk z+{x)?gL77$ZW++jLV3G*xTXoX?vXl_YC*>`DS$%9SWqSiJ9Ji|Q>~9*3v&)=%|VK< zf?*hE0p+ASPVjH^^741!YmGMr#T|-HM>?FH%&iP!KiCZY!j7xNuRbWA8y1e4DeIf^Btm81>x6h{OMAG+dFP`hGdy$xDTSd4Az6- z=J8rLIJ13squKh%+;wNWqGtPU=GngcgxP8o<#P!BKN)2-vT7=_jnkqAlvExI1oWj|N}o zClLmLV;|iU<9e%7mk_r?c6mgzBj7Is?5=~JrHZvatcp)S=QMd6E0Vvyxw&<;wYS@t zrKWh}uX5-F6-}fffP(2uSr^jjr#$>IN%L+x($OnpiHJajbY6=&8}yi*nFfs^R$sNR zGh{X0gZ9qePwU%rI&0h{J8%H2YbygU2*fVb1N@JO9|tHtiL0E58M1Ok@wq5>#K7*y zD^}_}vIA>SLU+dFRd$@fnEjk+mZ6~L#LZo23?+%`9gN}KwZ@>)M@EC~O@(bSI0zjx zC_uBJz1)|ewjj~msQKjDFInv<>|YnVbgj}5dm(`av@51I@}lOunPJ46W^PoUNhb9U zXr(xy*0lyyVJS3aK(;umEc$z~%0e~D!XzipDK#DiE1!u!*0Zd^@Hg7`^J~F@t-%mo zj@<>v_{9?AEbL=&iP8ChCx$_au^e}&ynWl-?Va}SQPG7|fBv6iKz`e1TYuVn`SP%R zq_5C)jbDxq);k+}yGQU>=jB#=d-ISSktIZ255fQ2t+y#R4``hLNvi9v#2DKfs>zOmGeL_d^GtCo{eL4 zf0ck7xKp?R9opr-ij=fU2^f=w5$F4pAk;aK9?H{09LYR4G%o?Ogs$k|*W{rf5&rUE zoTzYrdBk1|1zUf$bZ8HLIU@ADbzPbLgP2>t2NMw>c3@&6B->@_@gBC+KWSXW-GxWPA|BRt8+hiSU3HucP(82X+W00 z{Y0u;ZQT#7%DUhvO*z_NT}f3j>k-*+=SAt<8izRB+-xk`m>; zgikLmyzl_yMwHt(0>s&OMU=&7Mzr;rNI0u=+lYD7m3>p8ZoR>ZdT4?aDANUeJPYbU z_-mZxzMgR*<6BzD&$z*=rtn3#Bx|AmChPZ~N+%qxe^G!c4{{boe)ZJs+FCDF@^PiN zu2ZX&t8i)MnL2ynR{dGcfWEu~D|YR5U*&1uqW7wvkNG0RQK619<@mR7 z-^+oH8lp|1BC@i@qylGII6NoaN_+R{;8)Ui*um~Z8_2J94tPs7e$`NAzF*@uRKS^{ z{gu>q6GH1TsOTtCs@NC-j?KnKoIf=ial8d9l7mG3vmzLHAjWD2 zUXKT7$Cb0A@CAjiVV1^5$IX)hYEpBB3w?F2*o`NBEBt}f5h)s^BxHK!Ix^$9eTOTOVRIwC=-H~y|fPR4BxkrArc`3CV` zQTBC2h`x&StRmZ{nKu47+B({9s~<1+Hh;yxDd;oC_P<8Gmi>bQE|>_(7{6>3kCd`c zU$|jESX}?HK;J2FnOIYjB9<+5R3vh2O^wY8obDfyR-}3gEU39Mc-b=3j*F(WtE}84 zt0fu=0)k?NtBPcpS&p}emjje8jdSRzFw@?B0;|NIt1TRS)c_FFs+B9ynBJ_smH30Q zHDLg>NFBgSQcadOxEZ7z>)PPuVrpG8QdQR;7q)zo_O41Fu$um0`3W#w&5p3W1Y84i zspVFfWAz_mAr1To(V9{8+X5)o-1%uhTk$3}V62FTYQE-`(=G>{tUE#6B;Y5!Qt(*P zl(EzW(lEQhRlAy|msT}HN*}b5br_Y58#K7!Yl*g(vks)i+JYL)KIo+YAE|^ zdVN6(9w7JBA|fj#JvEB6b`GerH;2!c!xp)w!F{z7X#PDdfm0tpXs@!q`%)rBGAqUOuuU(+tk#M8d9V zCA5UyMmCJ z^9I8)6`~q>Xk-~&ydp&@2*B3zQ3t!gO2y9f9v~)m*x)2iDEzCD(x^9z9=6iph_qZq z1*}w+yks9MSCr>ATb^q0r8G=xN-5zDU|VItn(y%m*jXOC;{5_P5h-Ax)ZzXH2SZ-i?$-*P1!1a`2)@O>rjZ`9m?q#v- zaG6raER+lXW_!?@pFDm$0`Z}hBz3K`G|u!j%dRL$Pu9< zh2H>)BUJf!Fn=EPhtO=2c2tr@bx*o*z7TwDa48~wFw29u!1ckG(`QH-PN zYyKDq`z(N7-t6t;UDVrPuZi2dxx2p84%V%|Uzoqko%(upI)Wmxd*?##opy4tS=4P|Jt=J^=0z<2VASl$?X5|f_hp5n{EVDfL zEPv+jTV8m(gJ)kQm&!fLFU{g=h98&bUj@u7K78b$PP>G_9X9NOENQRM;usFX2nRQ!oLMjpfLl1dJz)4yNh_&wPa@7sMQ&Q>nCC2^=Jdfi zy}=%gV1~tqJr@MG(Ywj5+Ar1lbr6vW@yYm%ETzAPKboAG{=ea$r8GNx?jfR_f7Fgt&2g-SqSGk| zoz7uOTc-7JwsadJc);Hu-iS^PzroRmA4uhaj?cZcgCMeh%Ut!Vva(TYxsqm9s!N6})9h((-7F5z(-ymgaRhPm|RK-t6uELC}ls4uk&khm=L6lqZ zJ)K?jO-{_-v=e|4QGk%^#c%`<&?(Gm?`K5!aS-$x zlL`_GAvXkQ6rIH ztoJ*JcdIxqo2irO*tL2Qnz$396)LWmD+;w$>AF`-tq~JgXy?V`0pJn9%~|!zrIeUe zDC2isa6mDsV4?GgMePxA!3ps$oDme_UKBbtXjT!q!?M%xI$n^AiPvgDTr!kw+8L&> zpMY4m3^%B{SW-iaEFGxYxGk{^hDBP0PU7AW^1CYpyOwNlvYd@qW$aXNb{>E^Vj ztiB+@0Qs(yrMzxVC$g_-Z2pY%ujc2R%X+@Pq+RS^qHCfS`G}uXsjuYtipeW1MEZ2( zdWKnP!g&#bc{P-IxeK2+Q=LbpBD#~NEc=iX8%fy1D8+oUR=VVVn!YEaeO5zl+~X1=Wa%V8am29JFfH08`x`$(%sW$|s;QIsY(Z!tYGcw9m~ zcnl4xEQ>Yd0ldSBe>i7z^V) zOvxQhp)KLxN!{+9k>CP4%Nwq*nvrc?RSRE*X|4O5HD9g^71$F_+LPx}ZpbU(eo ze}|i_2`hm>Wbj=OtJ_h6vMZlCrxV4~`r642&b@Xp+Fx3L)Jbg=aP6 zPXZ%FefW^noVc^|@XDqW^LrSpOwr&V%!z;jOwQOSO(L3UF1yED{v?7$v-XZv0QhN; ziuzYNErGD(39=pd1G=&1k=pTv9C{v$(&P%*-@($nDt4q@FJTcTJVVUn}5FiiQ zFSqwzb=Egf1Fjt70XhIxu4f@_YVG!m_WQ_oc23eT_{+;zu>k5>3^MknL5GhBbl znOln2rBxNBM%VuMCjWy}79YZ5TCsvsxdJMMulN9*YG}cmkf9Wmh2u@O)FZa1^Hfqb zyB(+r|5Fvs=BigEI8)Cbe*}eI`8I$riJl1+4psU5`Hu+cc!($BoA1^~jitOnPJEmOdGuzG*ElFTXA6!d_B>GFBs>2H$+M z?%X%zsvI3lAyw)S8uMpL9hx)ee$S44Di6@whZ zdCtE=21un~!Y(k%lWRzXWc)x?WVSUlv8Yc9boRP4k6W&3BMIYHb87n#r5LF|E@`G zcK?fnMa646NA-HB$--I#v7 zTSq1=h)2b$RV2-QobW=$M+e%Gd96s&IW^5f?zw4GrT&}?3<^=BukPL1Dr9t1oY_xh z@>ql6RtFU^MW@I2oS8Y+ahp1<2laJm%8-_KQjzyFH1oc?88r%x|9%H)jj~OBTjM_3 z(N(oa0S){;vgUeCZv={%gqy)#T8p$zq@}=4I;YL-6`##AXBypG?^MjBc}kUYE*8XC zAPP{nABX)Ew!Av9-KlD;R%z{RwG>rVkw)|u)$EbEKP#!)+{auQpq?8m3-&zBhPhEyE2l=Z8rL@ie5HItvkzA)Jdqq()_vG?PuWgV-@!9!FI?g6c-g~vq z=MovM7BIcKA-Y1VKo$cd4T1?PRUJFK3M%+aIt-WwXY4ax69RdyG77t1F zOy>rtpOxwlnn)2IE zls_DjswL${(7mzP;mPqp@~4FADvF=wt%Gc)K7&=D+(5kL;U7P~+p%ZeN4sq?%wozG zpjQAxxX1n#@b7AO-6d|RCVdq=ZN*w>acBlkvSLAqwIDvL5{H2Qvh_l^+}5D4krrfv z-lYnItB(;C&RqG(p6J;BHWQzF(h*G>5@qUxMuK=Wi7pln=sX&A$h5z7-pmdhd8(CM z*Kg~d6;-K{!1#}^35?5)mgE8>BuUySD^@SOp13+fnU+l0i?HP2>3?qL z=`>+_r9;B1IP>{X?2&!_ogF%La-P$%^7O4Z2`3)HpLS&UQFKx^8homb5e^tQ{S*<) z^CYUif<^Cbm9l~Osc}9gleYo8NtSFL$*H;*`bj3o+{a{VJvK5a8oaJ z2*+n+JxH>1S~OMA4?`r&mEn9(#dNcq4>0G<=RTDz?6{OuGTXo_QQ5D9_&nBwb-GEgnUWOK%1ktDjuXyD~ z9npLyoM#eN$v|k5qG7U{p_-|;pAv&la^Q?iesScCkvgJO6+eFi!1)&_zP**1kn6ts z`Ti!=rYVQ;DQuFeL%94*OcH3GYK6|EZ?}k?j+|<=IqtDP%T1_xxIIdUq4I;0Ww5xf z$}u>t73Ct|znaWqQ&|%QN1eiE)7S);wiHbHd9ZwqHaVAveX-_hYwDP_(eyoe)hFKh zng^5b5?e8pIIRRn3U@GxMmpP1Z%QD>evZw4X1LH*alEEzDMbR)*ff0sOZp{D(xM?x zxe;f*`!>(?{rx%AzqfQVZk|abf?&NXegnQ;_KBdszQ+CfV3%E^06zn5GG z{1B+9X|t4mR*48x7tWmg6zlwcnIgSgnW2qO*RI*m44O9kDQVqqk(I#b2Ff`5ndJ!o zd|ER5xlN6k{W!a0hV`9BFYrON8b`YQtZQ2u{q3#jZRypVv0hWhR;W9xzRiAaN%vMg z64t|APo3{+u|hpJJ8-UXY2`k*cZD@|ObjarV`ppY)6|OgGi~cm{w{h#pNq*Xjm)Co zlmOY-)9hM2OWWWd*Gy`@f_^WEM^$sQ^?R=7O+~fr_biXiDb__~mZRk&xzI;bnNQKn z{pYCN3QDk>&iOB-OPi{#5w-KQop$3JTW6-9MUnGal{nYd#9Ui>Gu5g`EznHbni(`T z*CCk`Z!KpTnNjZC=sMb~&B2Hv75bP-6IXO|R$a_(>tQ~J4rT^V0rO1Pov9^NvBExC zZ+25(0t;%hX_)SGF4fOuM(eMpGWi6!-DxPMJ$D+4DbMH9P<%#Z!EAD!@-F%8T9Tlo zD49`+y;FMlMslb0n0-wD+m#+uNzIh2{TZAN%cUpz7Mh3DCK!Ms^m-VY=eB$e%`>~# zp?Q4FFncpi_N<%A7Q6m)aV|*DmTHmMS)sj@#r{ugQ|-u4ceFFl3@&%(xh3a2^Dv^I zfb{+vi-x=w*SrN5btW?xe6(i7cGeW_i1o@A=Vmc{Q4^ZVgJOUo%YmUkzl=DI&*u`U@wvWOjnDKQiO-DUH9oTg{ib3zK3`JQ#^*-jHdXv|k(-+N z1hHG{-$eAr=QD`k@+!<3QoZ7;s7TSftu=g+C{{y_Yd6MHIJ@Ju1Q*(baWZn z&P@4>IkBiE{sbSEuVxVBDH4zBN#uA&gTM6M(bS2-!rqSmN*U+>LM|+~hn=6Od#Khs z@HV>@kB)2XpqoYgGtYJJlXdd(Tf2jwS>>R+zKuKiPqDVbX9l?4uE2h6VO>@D^Mv); z@!)ew-=9P3o+(I$dj6hfxVK?5uV`4Kir9Gt+bRpNsupGuZEr!0{Unl6%)4&Q?fRnc zEyahrj-Y#6LhUC-hPwT@P&b!>XcD3E!p2Y#6@n0yBbh7Vw2{@&!uIQIQ_OYSBtA>L!!5CS9Di ziC1k*B5kqMj93|YVu})3J$zMOIjhq$FQqs0GVS6ZDeYd>PKSX2aBP&w9-z4%1RUp` z(2GE^IR!s@C$Cc{P#U8||I}Lxk%+)dIpkvTOYu;(K*V`+D5Cvh z)VG9p53g)KN=oL^2$JX$nVXp672bpP;J;YY5mT5c@qky6kN_&y%OlafP~u(g#e%Sn z`_#B3k3AjMXWao@11qDUz$m@#Enp3lOHRRLGJO6au-gls1*J5*ALl;K{a4k)>ByU> z@nw`hfWID4MlH;uf;p(pE9+h7S%&AylSlL~JcWN-51*_&{IAx-r>&JIk5(Q%ef(d` zt;g{ESFn65y-#_@`6$eS;J>mo9Zf1X?fc*Kp@cdrL2HOPAJZhpoNAP<1nD8s;c-TZ z@CZ4gg`Cptgk2;jQPKs%lyG8DH!t@JtZozj^RR(`eg}WHzMGP%8ylhUXtcHB+zDKO zDZ4Sd`C4EN+`$M{`ds;U!W3-htM^?p^RfE)DG6Dn&)Z|#iZ`liN_llJ+20a1dKD2+^9s7 z!sJRal1o|tZ0%%*l7#RacmYl+3sa(WfhQE#>vY^F=>`*${JeGadhhrsSl|6sCmvsg z!lUyPzD6G;8W`GQ#T4}}%fe)IB~h$)+6NeZ>}dVP*7nxXuQ-L5TSvPgUUY5xkVDB)o#sbv;*qZniF zVHmyP)hsL3PdS|)PLi#_1dOYAE&yu->?({<=YPMrxL7LXfPc=%?cCS#Dd5U!&;kB; zeOvId^Lp-U&iYb%Pc^7Qr#tMAbNv4tCV0=1V18pB&K{KwY0lY{Gwwf5bgB0*o*3-h zNST9D&OpV9VC^lQ2YA9D=0^SWLiV5HH-iCCM`HO-IG;V5P;u5k3~AP-2yvKlvKx*h zRPUCr6Z|Qy=xorvhQ-)&G(@P<)D^KYtjo|AIN53Y1Q;DTt0XMjj6_?I_1$!=~Z1j4{m?;x&J>zH|xnIVUj%&LGY(lcCzc z5jPFrDUctkv64KNOP6B_y%%CG>miJi%Is|Iv;#F)sf~>dv*;8U69m6%TVo3vB&I4g zrw+}PS`0C_sx>iqI>=~1)w-IH&nwKIe;Q22hB3AsPXK{km-_>c4i zNETlP-K(<;4x74lxYzvl+sEHETkgny)$N5){(LyT4B`y_O7qjI9#GPM zSk;GW(NpJ9xekqH=7Bh^J^li-d@{9<3DbT01qS%-)IRLyJq>(!^FdaRs#U-a-KYby zYfrZIsG?b4*~b-Sab7ou`;U8D-!>0QEn8rleTKTd<4NsZYh*{|mh{AlL*9S%@TtE{ z&`WbJ^7LsLbcG_{K3=XU5(;3gqAL|ets*mY_@tr;bf}6H>0RHabgd&28o`xTlX+g2!M^!T+OyYT$ z8?MB`Qqk7(qY7Z_F|=AM6|l04RIIA$sI^it6|0qp6-elkRVlqvHA|VKE>_X#4ash) z`HH2-l`j^pSnp!73UC*TRe+r5RV-Yw%Ee+8gu*KJ>cz^#mS@gY$KzyX&`|02@kaBX z`?I$@;f(UO{o};5>C@Ui`gzh)RJYA-Vku3fD4iaM*0~^^b=ehgE}f@ZV{M z7yC#5%$#9O<$#KG=hchWx62Rx+jsi5G{ZZ5z4h{_^Utl~>}Fw~O)LN0d%gZ*;v`iQ z);2iWI&3~!nKXqdZ01i}C`Xkm>lLS7Hh$WD{Is=Fl#K$r(E7m+HdSPJt)Wy-{Z)JK z;MLapZgankAVvOh|EN_(nWU^VZ>qfBZyxOJtnd0phMj&#Ewl+M4tTL|-+U*~w zwDY?C;-LNWOF0S zz4Wfxls)g=>)76II*OhJyQDy1MF46zQNJ??v-hZw!w6S+MG~^sf;0=Fx)U`JDH23p zK)Va*40Um%w43%>NfRgV-vI~CC({gZ2gNkPeX{t$tiGe}Qhmu96)6o!6IRe0kn!tP zk|tM!betCzA(HD3UQnnTY>(7Fqz%qT*xpGxIv1@8IgMhzT#Dd@(~W)`#~;Fel#G_< zNIB@!^?fu7KK=vm`wCh@to%jw|E2q%VVcL69b`#{qowYx^fCGVXZcABz7_6&o;FwCQIFKx2MHtc(^cv{Od-Rn%frg`=kzovPp`j7_k z)&?6XUfkT>+T8A~4PAuc#ZCFvW{IvFu6=Ejbo*n#@bB>=Jw97He@<5hhr_5FpUMfq zWlhn1)C1Z`Ma|17%aRn|nOCRXWYp(ZAU4xIP!G-k++i;cH#?oVuLINORsJAOyHehL zKN?-pTRAUacs5zC)%j+DQ&0ggKE&u}oJz1qKGUDC1uIJ{ORb=WXhZia`DlCsr4ZN; zUXQb0T`V1yMjq?5mX{vMYup+zYJB?`+v(G~0j}m*mrVtrp9c(@2WN<8cw(sFmftQd ztM+%Jk+k!0X<6Q_Z~ejzuQZSqI_Az>OAlKO*pAGB&~O^T2J`m#Yw4-nP>m_~EtJWk zVL$9fn6xE09VcDp7vO+T2gA5;K}AmzX85oX$dUw)mcDBQJ9Jg>aH+NQtu;KDv>F=> zYy~Q99l+}+OOK)Y;mZdtE}=&Iom7?Kww4|*T{iF*;_L!?IQ(e?N-(oSeL*8HqP;_! z&-wuIo33dj9%z$Ba1KQ4K`;97U^wb7sSh%u<)x)oYs!#TmYyu({LGNlT@CF;X?k$! zZJV#ItRY+t9&}+N0_8g)3#B+OFm*{3^>oJ0rVV1dnSltT5?7NO$q z0Fv^mq1wX5%lo)6J{EyMtZ#$^H6Ga-n6wg_L(#xN2F&$(74sHwumX*&O!h)r6Y>ZX zi!i8<=JIf2hpRZ^)1HR?{`%4D4m7pd{t325=V0^a12Tpp`>!4w%G02f$rpa$KH+;q zM$riFVdHhHyj=$$4Pq>~)ID`P)?mND$ylRL`Dw52`R2S;hJcRWq1_vTAP*@Wo~$MP zJFQ)_^j76n-z=J~vPGIT9;Y0l4|IiSsqb`Y`wH1)>LirOCX^OIvQRsPT`pJ3%mpEu z7Z1Jy;VR;}yYU8>_RixR#HWa!Ouc$(#QBIX((HXBxIlYTBxjQH5!-55$yT3P^hHhh znI?{JhRut&Z?)!JkRK-RWjdi9!lX4c430vvqItDe9Z#U;Z}9Yp{Eor zL$STg*B-6WOg+moKAX@c@ma#Vpr^%XoF$rkPB2Eid%pNnlK(Hd`9<6to!^q|kIxkO zzxCuv(f;$%(?_j4`Tt8ij;UEP9-IIf#fbM^VE)nGsy`kixo~zQ;)P^3-#kG{83jyK z7N8_sVFB7|&1&}fa~6+A&?gYv7ugsNtJh(C(g%U)1b_W^7r4M7igeE#)a;!~;ZCLS zcUCD}pe6t?RSDrpyF4F(U z%TMp<|Ce|GP4$Wg%_dsden4mUlW25-Cjfj*w7DqCYJ5iIb3S6fyh4`#kFR0xe@Ddc zi1=TEh+_tH!-4FF<9^USJA6MxddoQzLT0j-2d z1IhIqa}$O3-VOTkduZeJ@&3H@CR!i6JIomJdjw6+!^?vscrzc|54LuXI#6J{z1w-Q zcf7kvx-m?Y(W=kx(m;9(o;KBQh!H=?<@AXG5!C1{Tlp_GNZYYkU!8KBYH7*WmB~D@ zr>N^zFkq@hswqjQPAN=iwTwfDQH8;mP6Cx3KZDh42Xgv4ay=w;h)O-rU^60cS3u++z<~1c89;%lSc|#ivE|+|MTW=<8%~#Ir;DL_)v&jeniLmlj}M2RZ4Z|^sk6@xZ|~Kw|pnt-LVCK6}I3evfaF< zp?Fl=x5%U>am70-7-nZ!*1Wx>I}~-)Z$^0+79Tip*`)-%{G4t%VFb9La@@s|shPd= z)GdkB=`hCS!D4>iDZFE^xveA~#pF7e^XXVB7kmh_m>k*ce$ep_j`4WZ@zkjC1)Ar} zT0qx{A^qFO z>kjFDV%(x~ZyH2E?PFPS2L#AT4oT+AEFc1kW^~;S<%Y^%G&63Ja83>cJA;${JoAK$!$$DgK|X|mmB3CBC>>B%a8j01C#k8mtEXt7oZuf6cqsXn^%%oF{yF|Gxc3P1+L>2%kd4A{|IY z=7rI}bPy=+nq|AXo+3`90EOA-h$YG-0rn(M?>46fI0N;ezlC6-d?mk#BU$*@@`9e1 zYzt><&Skk2xCG4YjfX*Pe!l*fyZ$W8f1_*!{MRjte^c-O9zAZAy#N;;>FZd9swtffE2s%<(b4d* zc};cT9qGR#{eKD4@80#j>xZi_rVp_MH|o6`RIC2X(Vz*XtK{=|h2*1NoEA(y$jjqu z80Cec@EWyhg}3^~(P5B%Y0aC9IH>h4hVAWiU@bSu-DQ}CXM-?!wXp%%9-bv>jv7Ol4`4|zm~Z~f zSB_1Izug=}gRlz{d_HgA>meBmj*ptp$DQ0cU>7F-ULqJ?i|Ysb*mVf!GcL0cr) z*Toh->7r02MgK6}|xv00Q@XI*7DI_7IK-wgQ2zoQ;U`hKZsH zXo7ti55@!Dp$uLik4QebF1?3#Q8#m-7e#l;jo8{77aniCGkB|Ia?vRaDQ3C_#`{`5 zWxqCh1E=u!!4O?BhHsh}G}=`JEH;};1Hf7Y)KkR?hi6wP;;blZytY`aM<**sus!B@ zaOM^o$a@xCoTqR;y%&A--u}_n-tOTKjBBE2$NfI1W65=}NlCa+vr$d-Q)9kAR~k4% zK1#8J-F1L`V&wL%LxN^!|6mW}#R62dmqbk|0q+F|?e$G++bLWpw-w!5-PU>N^dOZj zZM<%8{Mgyw+B{TB8E8#6W?n7Bs=%5dCO@E*EOXyJ?n1`7lj-cHCbIy-jpTRGG~=+6K617kY{~;jsjZK~sKl z{1R)^=`Qq6KJRwgyGI9G?L+vkxDs<)p#wf!)adspOP5r*#f*e*+)fmtm>2~q*KAQ2 zbZJCT;Z}NNwZiNa^@e)X0U845DvYC`V8xQ%bB|$dePp5Skd=WdpR+4hcf`Rc@s4jP5W-wuDcIy<&_kPpmA@F#fQkZg(^bNp4h>!# z1Jqu*-|Mc{9Vv&O*a2lzi>C;JQ5j=3wTx?O?QFfTEZOBs0)_a1#a9@LoD1vIl2+H~ zvAOCSZv6gzJbQ4B`4j2I+q;{k2^-ABIG0ox>u9`$xA^C(%m&uvFx?1+so3O&yUtiPgDYaU=XD#$wUEF;MboG={ zhgp7s&V_;u@%~!i$KpaK=B7-elk4brssh&6gCFF8d&cWQBUf&Jw2Nd+6`q20BWQj4 zs^kpGA@m*aOmHBy)=ZE66VTqVPrG|Q?^DwMjYd~^_;j+{Qvgo6|9SM}Ve$UwaclX` z{_l%CuKyQu9b{5$LcWx>fOj!p?(}_sXMNuc-i6DPtpCi*aRLk4n;sU%_;q=W0g=Vi zWLH8@^pu4>GH!|wgTMPxQlI;JOr8R|4l!^zNz{0mmPp0|c5sX#=11DgAb7q0Q@e9? z^eb`j2V9jjGIzA~si)?}h?HK{8e0{2EaPYc{d(0_RR+<3l$SJ13qI0}W{1C4W;MJkSVj6*Uk4tgE!3K| zFswM0g5}Z!o(g?ZVSYN`NeNri;PwKYm~op$XO|S4gfL;?_=`kFVved&MMcaC+9D=* zP4a-~zXkp}l*w!modT_DNR^=Epk^6B4oCC@%X)eIhJtJgHtRIUS;DbISIQM(TqOW zqQp!h!#r-Z3WI^7Q;_QsMA|?1)ma1sz8uj@m2|8&$j{ve!By9V*M;{PMJ#s}Fj?#?f3c3n2FEMDAa(lkun0p^!$x->)APx>I zVLMol4)c=`%`U8Ju%nQx;3f2qRKiWu`kU5IyXQa%c;_QCH{!7Yx!T#=#OBs9o*@vp zT%j!H8yljcBd2|Q5|1>wuyT2FGquCc*5UEiW+T8qUa3ERI{JmU2fEfn1uR(EuuF1Sh!qTC(2`io3xLud^crr&e}T**|>{1+B9l7(obmmBJ8u~VB@myHIn9MAik ze7-Ke8^V&=TonBCmott3U-6XqzweVe_!H(Qvp{T zSU>!S>>H4rs>^%w2ru(_t?$13)^Z8QKd<91P&jV?83W0Tt|E3PLnG5WuJDd4{L{HY ztvg-^ZVI}BK4`1R1_`_G!?Vbg+7x$!!**xy#o^KV#*fGqwD8zOOuYybVZPYm5uJ`x zVxiI#AVC<=H--Z{3h8)f#B_k5hZ=PP{psN$P= zz6$8H`l_NOBqx;(5v`FD(u$a)idQ|tkFWCQl*SHiWP(MGMojvMSITKN)x5Bj1Wg)rfqiUmS1z*ghf|1mo=_y&O@1-*&dQcD9b1Ep6|? zVH<}jkn@wcAJgs*b~{}9aLL3UPmxUN4`}SSsrpuJsZ=k~U^u$6<7yidwy;aFx7GE( z5UY_18&Clo?x_lN!p?G`4&A6oQDvhdBlW-SV8)rkCmEp__#n{7>~<_J$9W@o9}P!1 z0|4LoRW2EimDjP161a9VFCOM=T2pRqk^i-NIVaqbVD&7{oW(?m(_n$79P3C73rwp> zCP}+AEIM!0dYqsowuCUiBT`xwLobYM+-n4{*AHK}4+5avj~9YQubRrt$Fz-~u3X}0rZ$M8#NASTX{%6&^=U$2I znm?`YxNB+CXMy?Ctl2t=vbHk?qGAPWr`@h;(Z<*(V00S z5O9de4avjJo0`R3H)S&-)p-eF*ldEOB75}5qHK?rOyaY%@aquGsHddri?UJu6P$S~v9IQc3FSV6`p@D+NzM00xmaW<< zo>m5tlG{p&%28v`Apwu+yQUf`EFS|Ug13>)EO

)_AD?d&=Om1 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

R*Dqc8mV1nURMN@k=iw@w-3ziiXiZ!)92)N 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%0Atr}UEbxxa> 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

lxUz4hQM#Dqr`FS1GY?Cg)Ni!yGF1YsG*3j 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ʲryo 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

sK1NPE$B7yCtj;1$4`=vq>Rs;LqS#(;yixNtd7t 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

-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

spoRU5{7j%gubE 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 z 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

wu(gF3{14Z^{4z;_3oO^{6Bjxl-U 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�jK4pPegwVO|8>I?wSF+*IPc36?;( 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%0Af4s8wsD%23@ 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 kY)BdwL1kQE2c^TPI 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

%<{+WACvhOY6}8FH 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%0A?mm11g+ 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¦!jWi@w3o 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 z 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 z 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

mr0%-_RDD`LDqmIREHyt&P*&`~A%y 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

}m0OqS(rZuc!J^ia67kSgG!9BmakJ% z`_?+#U!EcQo1{_1==TLFlm$kFs~;bHs?;DKr|~#^z2!*1 z7MM%*c^s=-{8v)cIFh~L?c>=46>}Q5ZhURq0X$q)#8(;r9BNbq_gh0M{8H7pm7;1J zLSktTD}|awih6B?5V%t!F*HJynxFL!!+(+mKt2LTNx5sjPLR%d??sZL$33}PoS@;^ zj-8VJg&&`9F2yz$3~tE^WF)KfwH-IU1${M`_NhjfoAExLEcV7^_#cq$&YC$p6#+tETLq08A zFM%7Yrz{O)H5@EQcu=$P7ns9R!g_e@r9G~FY<)3Dpuz3rq%L)H`VmHvFGL-Qv-KJm zDPK{#h^IOJn?dJ~n5kCv5J4Ns*xlImP2%6EQ(`PP*u2fi##3bB`6(rzzW_f9VrO}Z zdTnK2X)J`!JOn(^24{&3Wr?6>4X?Olc~*I1zG)wc(iFO`vL`BK{<&qx%CeLEa8P_^ zJ@GSNd{h4Z*3z)0ahhzyXy59d+-pWbIIZO!*V7wmkJdyxt?t+S9Q+GS)8zWObG`Rw zD((fLm|oi@5vxM1R~zSas08%OC@%}Y8ijWn71gm88phh5qQ)k+$@E@DK9ja};85i$ zXBOzzmlmn8wDj5gC}E-7jm<9z$Qg>MB7=4lcu*$=-p?>)@DE}1*@-ZbZcXFAp{E93 z#(P>3e>~fzt@=~>>CGvPTanMxkb7!*tLu15XH^7#Zr-kIDr;lPuwyc=*k$3<`1%(ah?w%cCy#*N0Op8f~syn<^F19If@seTbPFvOP zOYC~cVH?MHoiQ}r5H`&wD!M|e=;bc($gyS$HU0;LFxq_Pbk53+g7+YGUt1Xu(}0HJ zx95C3KAtkPZi>88Nnu4k@|Qz4`5l$Kh1;MZo_6EE+*++G<- zobUT=Lk~OVlinKR?|%W?&SA){xz9BNbL%NV>DG}>*MtIuT_T3!xQ>i zQdxf-_@v$7siurN^&K8j&8%0t*zb9VNDaQ36f@4fIZ{-i%FQm8u9yz~TxH`1B2SuG z0WLE-_@8a%%UQgb)$^rRJx+v=yRvbKGZ>gjqEaTx>jI?CnGI-yvVVA92 zYnXKOj$^GmUxLP}83#iGZD(Lwc8F+(K_8UmY%g%Zmlod`D5m5!<4p3#j>Kqz!Pe#` z#C-&_?WFTgq#EMJY7)m}gz{d^9wS!u+!$naPmhrDSiNGBe4+FUGPBg?w~#Z9_u}#l zW_S^zU$$_Z@Fa=Rx}tLi(d}ichLp^-?7jTi@Fs5j!<`cLB9Rz@6M91$Sx{Q5w;zA2 z_bVi>whU{oqk7~I-6Dz3a3AG^-;?3J(YG@H-7`+>fo*g;3IU$+HcH3wtiT~qJ(?>Z0tg(M$WEhNad zq$@gIzi7Um;4ogLzConEHf)sPaH1(``A~_BB}>HlE(=Zo zE4Wr9mKG$ngkKj@rQMW2kT7?oW#-35AQp2Hnj^m_Uh$oC!uC$t-;7x+vn-mSESz^&5>! z`LYF%0#nhWk-7vK#rEvv$ay*m`~Qau`l1>OYYqhLC$YUPxckAd@Jhx)fU zvvbJqqZ4;kz!Q~f=kP1z5W)^3YyYL?kw6RK_)qxoD8dhHHrz>XAj3KoO&bc~=dXfi zWZEdvkzRaejCi+FFmn8~+4=|J_gFELV}h|&=SvRwqHO;6EJUvJ#NvmgeEm-TeUf;O zynT|qkGuntzrhnek8UykAHWlFxBDp1ces#GasGZy$O>uPf!)TD;F}HwOpZbj`30{W zwJ9Ob@Z|stOaZmcL8XtmLT*BY-w8`m^e!XIkR}AZG6nmDSynk<6sDXxC%AwEKkglx z8%0+K^%tgG~5$djESn@ff8Az?m3vhIXW8hnwV#y6NY{6)%#T^ap* zQYxJAEwzRPSY@|fXt@cbgndR^ulT2MSQtc;$ORd2Ma}71@Ug%uyPU9*v3jEW1=i2& zV91^HyfC}jMY2^;L>`_gAgXKpX!7DPQvkMWs6ah%(;>mE>pWJsoo{; zk{BBIGqKP}wXm0*Y=%vjg_(S+Xd(0yURVF`%q+AC-pq*H z3dB~_vyi+MQrFT3aiamKW4a;Jx9At3Q}-^1*G;c>4KkRmsUv@p3g0!riyfR`I)*ZP zTi&%w(z)b)>x@f@W`Rbs0AB&&(R7}8bAUz(ox_oUCmUnW z+9<__s%TH+q8Pr#THRVJJ<)friIQ9N<2?Dy-2hB3s%j}hs&T!EIK2U;mo`=VWAj~` z>X+~8`K3uK1sV6y^PE`jahCXf zy)ty;d54VqiE_NcC@l;|*Ev#=uy{O3Ts&R-Pu_%7SMkOoe{0SZ1ELe+b5hRr<;45n z;(TJGGfEAbW%EZdr`Z>0b?r}kU2X^;dLSl~A9o61TcxMHkm%l?@ZVREV>;ZJaEOQ0 zVoEKz$n*@Fc}b}(H#sYz_y!$QQ#2G$94xRPI)gDK!O3x4=n zNWg*k3VVz!roy19j)o<0b7=ri=NQ>MsUszAF)5M8OD$^lGpmHh7d+$GXz$l9x8;AH zT<^;Fdcs(tu;WJK`o7aVIQ#p`kgrWRA0r>$eN66e@L20;a&Bh*D2kt_#=C!P~`oDSl8)G0z*Apf+!FbD~!{U$-}8`z@s4Dz|+Np31#yPS5%kRlptG z_{UX@Z*8X80$=Q+CXnj;=(_knE?>2z zylpnMjb~(_o7elCAI>AMIpbG0kfCjy|5CZ0xRoGwLh+2?BMk4_xJ4X+OIpyd@8-CO z0q(c!IrdYAhVTmPob^r{T}9`7lwt;(Y-zXN#X>Bv|nX?Jc$N z1X`*D*pup1$Wq6C4Vd+k3P&%NN>N~@;({|+7Q~8RGX;MP(jy6fiT%C;k@SJgugKRv zp_x5gZ)jS`{8If4r?{f1WTxq(Nnf<*uUUlo+R@|pdx$+z0G!TCn2_&qvaeP%iA5hb z!ZThxbfpo6Ic<8o+Jjih45)oUqf)+T3UfI4Wb_>J*wM^f-3PI;a6m)&D z5#Dh{>Q26T_GP}@4{cgHTMz!!7Fmm;DcpLjJnn@^GWsY7-O%?4)=g)qMX!HW$c^h1gNF^_O|~+NA-@Q#kLUBgpZXd^^Vx#LLUB`N@lcs6{a! z;X3N!hVJQs+^a}OrU~M#S^3<_`8i3%=MP;6vwn{Z=rZ^nS`AP@+X|`kP>l>fTO+_| zfk}D929V!%*(;qhQs$wqHIPs21h9fcQ9*P>ZxNle5!I}Lf7MdJI%MS=;+j2$j_IM= z`aJ%#v$ycMWwnZ`F>>Gx*0kB#rr=ksJW8rD>cmB)RkO38zL0ljX_=(0&WZ%FWo0hW z$Yq^;{QO_fX?8zpYHojlDN6P@I;tpCI=bFx${s67piiDU60~5se_7>*+nC$xv@&X?&1B%fX zM#r7)cIHRN-IfA)s||rm-fl*`qWdA8TGhN>7{$nSP3N>0f)fw4{Bn@yx0(EZr zQ7^4~tvuy-7B!4ka^i?m4lH~mJV%4G6X&lcC&PFH7bT{@*=Gnn+V0*$_VI2Xq$Coar z*VH+6+4V~{Tgw;l^~^b z$JifYt=lhHEy zN~}%6Ql6D-_UOJ-s*xJ$GOY_|*#|mc$I(iusmkQzBGIM zkQ|_u&e?w`kD?y}F%$bRTTP(D)xRo_qdy+P{ZpWPQA0l3rCwLhxF58{P9e%BYSlG9 zoS<7>$74x&vb-@u+(>HafH)t0UZx(Zy)jN4M(P0)4(bQZSOlb9*hI69@hnU9$L$Gh z>~GGZgD<)4k#4AprW6);uNO*-(Z9u5cVqAK7o|}?8gEzs|Gg@@?!X9@U&CMr+ zy?cEaXttouF0?s-HpkHBY&c_ubztDOZ8YUI?#zNFxlx6bd^sj3tv;~x*2uAiqh2OkG;amcSeZGdK9e}&f zx5$mmz|#~)vj2|2B0wJi@qg5jbB=E^U`|9b?0pnVj~3<$91`kL+KNUHBeB+bodtlr zjm{Rqiwm~MGG%a)hs%lPt)L$VxONFm=_Nq{@r+j|3IW*nlf1{ZegSgfco{WmoFzHJ z15WLua>-$j0NJtQ?)N9YDC=i%kzgN+SBl2n?@WX%>t=IVW3!D%J;B{?NknDYPZ#P) zaaUxS=@qVISCn<3WK;h9&Mey@UU?@+NFn8&A_G$7rN(PHt*v|^q7?Uc1OkzlY6*F) z&Kg;6k?30EDlR!J8t+&n`>W?1$0HX_;0DG2ydR zqlWc)=M4rDq_dAd$-?T4Tf6*ZV(rv;ALS;dtF+(eoy|@lgx6yUJKpQ28^Bv*NC>UT zSzjV>tKlyD?$Vh}*}%qGK@p@4S%}+h%J?L~A-=&L;fH}?K;c|)7AQ5;RSPm{=k%<{XxIgGs#)8!{kV^Yrwc|}&w ziVC#(1Z^sy%?h+Zugn6u z!P68{vTcsSM&X?rlVTc_n4#X^7<@EM#49k#XuMPO2sbI!xkN2Z;@(0+cM zE^`Fv{qMT&b2ADlGq8rQfGih@n+4qePgT4y5R_;9|E+Uw(?O0GYO^Ij=illo%1S^~ z879%~EOOvhHHktHW6@W^Tcm|m8z!7VXaLBq?c)o4i3|Rh!`NUmU`MXJG#yAR!^Ths z9obs#E!})29gbRroSCl(E=@`k{d_(hiAIRJS-Y?XH35iWK7|fLW1OSLkGw2iBR0Zg zOQ&MMTwEv>zN}v`gL+Pf2@hI~=YbvWG(rN+3?_45SQx#%NpIH0G&3Xx4%!i@KOk_4oUd)G)1DRsK;MR_#6 z?M}Tku4oJ)ZAeBmH+-2o%UI(_sN6q39)7gAZ&FOeOIG7YNA zmrh)S3ix&OvWiDqbvygJRR-BMJ&~MQ!&klEl))BfxU@zxp-e7m*youVZSGzue?NSW zIB2#`nKz1?mBT@;tRNOZYfY1(%>o$yok40;(26h+<&_q`QQWE=Zi2fP-va3U?>gr; zkXHn=QF&O<3r6!;6%zn9Xwd&*_ty(?8(#?m&OgxorH>HTtvZ~^5-p-N_`mP|nNd%j zd3Z4i7Nd0(x`}JUAk05PPW84ofbKY+r6 zVx|L^!2v|SvAO*r{XR16u_c`(8DRW$Iy@-8Yw)x!vL6kt#`u8VOFdQmnOa2nQKl)!Kq&Sc~A``+Nk8 z3RuB!+w5gT%Clm&o=E9SHQq#e+3D09Zi|zqhGYij^5j{Wl%bcBG_k_lA@vUjv>2>K z-WbOh3@@>*c}t_R?^lB+5QVFghqhJ;Qz!AyCD4=+#s}?=I!T&UDTL^H%HXYcggrK* z9ZE3U+{dH5)ZW6S@))-{ea3A_hHO#brD~pms)BdTCb~j~7u~oDc>a*Ll}3vri?W(e zbR|F!74tyLZQD&Ck0-AEhmuxGccGu<$ARJ6$^%I)l;I!`l$_CPsb2d*F#UIAS|d%M zihZQsavV9=FvOB=qd;uqTY$#_zIkx=0b0;?-w7}beDzRv7vBJ(KuubX179$jVwM3; znf_ND?0~YfIDqg+v~XaTi$Mg&ZS)MNv;SH5kC&}tl3O`07HbRGBv*MtE*5=711wpf zg15Pg!L_8{t?uQzPy(MKr3nm&Y5eDqL(=K`Holu^jr;j z)2;&NCh1bP<@lc@dX8m9y+kQh0-0vJ@IkLA{+&Q0QiGllP|}H=trM!)sc91ahFyk! zgM~|$DU}8nj89yEH-Zgk^x3UzBv_3UCmyNt+BZm0 zc0ZR$u@+?o;;tZQsPBp;Z_vfZvRW1*AO|AqQ+J7)ye`#Ee@(%UCRtW!Wy<0)%WhB{ zn;B9wtDZKZj}i+5tSEdKK(LB|#pJ0QaMhp)yc5U>{P?i-aHp=WDv1zVBMZE>rI6)D zg;)uCR?2B|AW&;jJpC9p==YWri0?3n4CV$ow<5%tHeSa((&h}>(dLXo50DdfB@y4r zi6zt&fDYyTaMX56h}+)Lb%Zn3s*@XKCK&hPH8T-%_Ca-3@Z!=Oc8Jbpjb3*u^If>L z(bIJVqS>Y^W|;lGH2)<06f7mAxAGzPH#gF5Uc*MPbM00o>SafQtSu7D3|JHXLj zv%hY_)9liSx-3Q$P*nO!c%b?KgHU~!P-vP%LNZo>zC{)dFAxT(j3hu966?WeAWSr` zg}h&En#E4sMsddUe?$;Ep8S#?n#M38F4Qeh3ZZUmLwccUEWI)V+!i^|aQ~f+KR##Q z{maioOSJImSuc44{t=j_p|i>Q?>chMp+TykG>2-!|BN0KMq=8zaF#6qw{jpnKp*rJ z12C3BQwyZghy27_Z5yS{SaBVfwz^a9iMGJiZ zSl&dUizP#7qvw5YJ596bF~(PmVB*>mKb|&Ap_LiC)Zw zyDPa#nm{Fj?A^Z-bT(;232?#5|Dgv^aJ$dCR;@4Q3@_=&J_6Z^<;Rxv69PgOR3JYB zjcmoq)_DUbQ4ZH}FCt!p<27IUgz>Pf{oPjlQCk6e**M2={1JH}An*agC#WDY424(r z8;I2c7hXIiv-dE$!~vJ+ykG^dJ1MhQu8sLP_}qfg1&4E35H6>e9$+s+zE@c=A_}A) z8?jORSEW_?Q5~2e5;t0bmF92Ve*F2Ve(H z1HcaO2d#gAKY-TsUT7Kyy~;HNQU7l72VDj3N4P`n|GQ3TKv^I{0h~D2N}CR+RvN?t z4i@=$f=m(g1R;hhLg$T&o&Y@y(Ao$j110ly);7bJ-a=3Wp)SsUs(t@f4V!4j0PQko znM@#2&CO6gAgz*a4BLNZAJ?VKQxIvQw33JVwHKrOUkMfQW*2zp$vQNB(5N-9BL9hM zejYq55reF0jwr{)|Nbq)zZR;S@2Fv&K1g7L6JypcQ#hBl+KF>$1(~;5c!GIyXw?9r zHUto?p+~}apv&H++U)SOUfPKrE5|RsqUt>MQ6O%1+}@8%`bI78(S+T80J!ijolX^qNt^?~gw6J8i){v$9OMgAiYw^{t7;{uAXa*Rzgo5$QL z{_;Z(xCWy*_UkWufHNq2fEx6(7chg?x{8;7*_$W)%N~#kl)WE+ksSkG+0<7-(XISL zHtOG2gHSVoJ-`gg9$*G#4={tW2bclu0m(zzgGK`?Wu3r)GPix$`E>Nae?$;E4j>54 z20#$%7C;c14S*ov7K$L?7K-2xVdx|~m1}My|4#&=_5gzaW%oCQD9{k29?rj8|NYyF zkVXS~g5UrWfeAoK1mZ$T1hRmVSTT04G5QOqP4-*)i?7|-!zQfg`RM;i04g4!{SF`z zm;sbTU_MY1|CznQc_Ml~Z91-C>1P&~Al82+uoa~P!5Q8wLMN>R06D)0VzD|EY6C47 zzxdjZ8fjuzk@tTS+%Bcz)>b}IZxpBh*an|CZ|3v`v0Ma_rqfcD2L4w9PauWqXX_Bj z-36tpXB!c&<&+$6b0K}ao{VaLHuGh2)sHDTjw{i~U$R3kO1pp5%@p}>;y%xB_>20N z^LyG~XIr&5w?38FIX14X06Q#kl*N`U%w`-2(D>KBv`#1IMa^E_s7sB=ZyvrxXs)P5Y z5wqXsR+ZZIeB_OmLSaYOz8D-gNE_+SsB0?(^9WOV2%y~_?xq~Z*En7~`YLWTgyjmI zF-;7OW+ui;e5NU|7r|S0P-8;kX3`0MIl?IO&Hj&7IQ#_6YW2|0Fg0EerHBsQqhX z0lhm<=esx7zd44w4&!#7y6*0}4tL{x;z6#KUHaQeU3sH4SDe%`l@15(B>0p#YxUz; z9bsyiMwGea#?LRbsHolEv#u1qdti@>AQG!@V?R%nM;w7svQRLBk5730aLBVH3iFmRK zE}*y>9L!9PfR}qbv*RHVooH?2Y;c+-MXr1sN(yQ;%8K(YV!Jc_5->83|vuar04lSX%d^m_DpZ!W5{#|(tt&Wa>? zfWhudTl71oB->tPUy}5QV%hbe@$GOOjpER1g^U#bzFbP)$ZA1x~ek!GRLJ z4K9Ip{hUu9;NGDVzaA!_R;5JcU=bZA@q>beZPo8$6 zGyBM{=`Dml{h6E~cB$RVPUPM-&%Dtbd?0Asv!%$p5A;wa$yae1km6&s1nwJ?$w`-z z^l;xHCoVS_zQThYaMum}U{nE5mC^oviY{~SYOI?sZ<=y8%Ea-_#P~XS)}&HpSov+R z!|&8?Th6t1bb2g*LlDCCS#w!y{0wM?rUOFhmuK5e=Ww7X^5^Z$EZVO@owpkm^e5Er zq&7|H1RCGo=VSN3=s$b~YxN7o*(GlRttUg^;FVy~b*HAQWm>1tz5>p`G+?Zn~(#~j^IIW;h2xkb~22rR;bnP)a z-snW{yL{J;pu+jh2v1kfdp%JRpPP%K;_TdZQE?Fo-*6Ur-*|ch z*=)p70s_OqYf_Az8DM)iH@uRy!TntP4oH#x+k6zW;HYoQ^_cnATomCG)L80`ByUw( z>?q3BGi=)wjZ7VSGBER;EBH=mu!pg=ymh$C{aln4^Q6XezQw}A2HCycpopE~`n9pl zV@j1~kb*gAock!|Z6yY5jrSD+8@|8Z<98t2&ql-ttX~Y{Lsnj<}4WjLgxa0q87uHnr{d|>{o33QqHE<6; z6_PlEE>+RUHC>ho8L7IUl>x z0p+GFina=ZGG&jC1~II z8m_K%**YUN;)hhMPkJXzEbz`2zAyiB{qfZH^6=T{x3J@@G~a1QO@3Y*M@m`SsV zVqT?2=2FIbnEn=1OCtJ)sHxwHcx|{>iZr9C?&KBe)6I5Z1yaxs>%$T>eCipSImHr; z`4jfVj_CQ%#*HTE`J`uz7c^h$*HqT?8>whH(7GS9jdw%xcKL%s=a~BH7?IWHbIRSw zK$o*cjQ@}9p{tqeu@g4~mm@!yOqeJ9$f*#sE7Eud{7SvBf=+)Cd~34EsfsRMW)0-E z<69r1HNnjceez&OH6O`#;qpTCsg|Z$j#$Xlea3jjy5hrCkbkU6 z0Q-b>>RR?(l5_0u`ZUoq1+mcHP9ImK!eFIC>+j3YbAA1`FFinvhp7&%8Sr|3ky`F% z@ci)Gw&nrJ^TX8!U%?nk%gCkn08xBmb>cmiA=ie~`z+X_x3~I_8}B4B#G}+<#6P+x ze&0R6^Z_20`iwzZAb?C&+f4VS@KQmuX62a8_Ibc%zCKH7e<*2e{4;KV#dFo^S>%0g zcJ}GYb6q0vfT;ieAK~b*-i(Iq2;qFqi*RxY@6VSt3HrgV5gT2~2$%Z7E8bX@z(w21=!>GV(XUKP7PQ2{PC`6MvyUf>19&Q z(%d8kx|IfpL$Aa3F?-4a+vU_zf4=jjw29jN!}g3k zh2z#bLc%3cQNg)qw|6JC)s zV)aS$U1grmAB)-p$v}rGrBKGKOJ>$`MO%_v!}wj2sS)4H-Dw*{wgOSdfz@RpwJ@zEqw@+=i$*}~ReyzVd_fkI>`m1Eu18$9a>^Ia?GC#i>uUh$}K4 z3#^)dIuoX)m`!lyUB8=$wq_Yy=OzcA(H~Eu9+;4Xwe5${a{0Vtxln>9IhaH7q8fNnFQlux(V@_wYd3wF-`3T3JR*Rq&_m z{&27hhJ0b{W+yS;@^*Hh$KLyRxPtY7S^V_y`!uwo=iSJ)zpQA*A*Dh_m7;VI zs2MYMHkaTDa-F}=_fR~{Cq0R6!p7iYyGY$#M)>tn``ClV+9vA^!8|%|EaEVwx^Du6 zxdIUi=yH(gLY89qF^R|b1kQ{yzUW56Fv@qtWL7+FRpMq#@fIIh;(d0;}niGna~| z)CUYJ%xe#3qRlcvN(->9xJINCTwh-9kjAWXal5mA7dTo&0DqJlNu1my&-5yA2_rRT z{IFuA8>}cF4crmd7{(m+zCb_1FxhvyfUdGa6+ULz3KS-Pv~5n!SbT|@#NYb(f`<4# zHKK~Rl()_F*gGr-*$OlPtf^a3`)qEF__Zyf zCO@gKPbqR2{4dY8Tq~TMdTwQSgY>aDSk7Z}K}-TQBNpKVYkW9gY?u-cl+Bi#eta|W zs^z&=qpjT8!&bx@SIp;JY+QQiDT(&N#6-r&N$VO{a6=D1=*38q-izZ=>5eB5buN#y zju1-`azyxfRh0Karj~?XFFl>}@$0?lph-Iko`G(VDYA$d{UXy$=4b4+LzRL1@S}PU zo8+cY3x3uQ9x-bAg@-0@doymH?v@UR;?Bg5`EBYsX9l9v%h<%Gf?r1iy9XU6UOU!= zil*7L%#I!_Wyr{oQIR$53Im1j2W4yCCO&MGxru5gJ`+9I^WU%A z(S3j{yg7rkCq^CnyCC#Qq}@YiU4J-z|KlrUx4vs{nV_79Fj|vhZ{_kJD6eOtwm&=Z zHB1*gN0Y8QJ3!7wP6lA|DL_Lg|IclJsYQDydorxom?qVbLYv3$*?g+H+?mUXW4xe`%6MPQTRlILt)Q# zM<$*w>M4+rn49hk%AA=U>>!4G7wVU6@q>eJHrU@M-~ar>DQ~^?I9vLx;&oM1)=(OR zuI{i6JTQqY7g-PpxdP`(JiCQJ(r+g?ZzmKUk+m%PXr6hy{VU8ex?;{3s&3!ZltE+Pj*&=p1}cI3Z3kN(+TPs@lUJ0vS-MNu^;c>7Zp3@oSe}SrFKrlO zTWtt72tF8EPdBj5#7xc~Fj{|=e+-T!c;vn=Mvg%B`q||;=Bt1c;^pCw%&0F*9Q69- zp00Q}cWp~OJvdC_#%n3RG)@?4c#s!8Imv1?F?d)ui3_8)iRAZ}mniZ*A*^x)BMC?-pR}xvH>vc74i>^AcqqQ2BEbB4H*{o)>X%p}m7tIeecWu)O~xl zMi?l|5^m>OTiy?pn?L@fMX=^7Lec!p^@_Y^S*cJHS_7P%n&eCVG?jYwz^} z6X|%Kq#f6oVXCcyv`EnF*Q94$bNOFPcgzyHhr77UjIg;!d*ZkVU#f|}%b~7f#NXSw z-Ac41cy2^4G6l24?GVrs=0LdZ^&E5#8uN{jT=-u6k+$)#aFWOWN?TR3g0mcBL?{_A z_2qb#gOmQ#DOuVrVuhOiTCFsG0me3Q%WAWkjLs67QNdGpE2614mF&j(J(_*nqSr*< zinn)49fu}op$5w&`s>x6H9wYHLmVO*EG+#%<>*49lO$~3fW<-bdpMQZ7s>swLnzBL z%0wr@dCg5hYdUlL`JVTxHb2;BvDNSb&r}OgJYS~qD81_X8SM8XkVNtC5oWThVpLe;5?jhEe2Pcl8VN;g}gBb z*l5<*@RxQ4?L&E0?=4p8T|;Ueq9Q4zj&up4TdC#tw9fk7z zO2(s?}9@T@;erX6lp+wh)odK?*6vR_?r`@p$V_a(UVNv1HC5V_R}} zit^$R()9+yIz<`(^SBWoA*)tLn0UI3T;xv3^_5z=vW|ucYsw3a5ws_KqIFRL+GGuo zQ+l6j%LG5ixS)7H3B2!2MPcC28(r3kYnEU!p8Jntt_*Bf+W1|pF3%;Hk>AoG=fSCV z7SHQt`b?;DSChChuscQ++2ydi8~ZWuNtrmcKnT8POg>J$pMbv}T?h}AxL(7<$r z_g_0>-Swb%2qKvWwQhgCPhiU09Dw(w7i!t>k|acV4m`aX%lLC~d$sYX(2*L;-9_wu z+mbXm?L%%!lbSv<`3KcPUwdQ2D-k?U}yaPET5#x$wCLz>_ zkKG2a`M`x_Dk2|$#dZo&@QA==ZE>60WL2s7{x~hD{s?mOM0oP>we;~rMNey+W*y&ZamLfHs)efA|B7HYO@m?2En6}dN07I3sLdf?=$Ar;I^L1;$ z`O23Tot}JVB{@RYS)rNp^vpfq-^5DOba3r&^V+ctr}7)TD;nPHzWz4AypRvhb^mfI zbAv++*|?dU7pHdG30Wfc`mSHEx=EHkpzb9pXA?lT&>(??01BNh*Vl_Cm9~^6W{rQC zLc{8$X^xUwy51gaq2#{tJqkpA@x+#sf@mf_>H;6Ud2)@!K!=P#IR5kP5Brg4MN2N` zUXwpr<7fO02``4lxg5Xd+xeR`Z4@+uk%#ZIEst1vCBen&im zG2^X{(-gz-6>QOiBN?ZN_2;9y9y9#xq;ht@ye^&Hoq^cWil|NQy(_TG2r@@Dh*x&jPw zoZHXmf(Et4Wx7#D7?-4Kv1-y3Do%GX%K+gN?ypzKwn-SvK_syQLMhHP<8{NefyM7V z3q59g=578o#MZ}kA@>8t6{C@UubO7Ou!dJY*iE^)MRLD6}7VdKuV3( zT=(uRWv6XfUSRnp?9=;9ljeB;YdS`P2x01Rr)B8+OizE(xR3sE!E7c4ozf`ESbloQtloNBipq z(?$3r_v~^3vu%F=9{_$pfxn0$w{Pa7w}r_qYpZgCqt%wRYc!EMO@>-eoY7p-=r+kQ zrePMR$0f8{J=kj83hb^bQEMcN5hIs=m@aaeBG0lAeK|)RG1^K@xbcY!X1GZ>f)3kq z>fo-}L_MvaB~{h38v@V@}9c( z?9tAfSXi5`S3U#BK4qtF+^*84-<^=vS^=-6P~m{e2V!zOKRHa4r=9h5l_X&SWI zp{Dr`hzCbU=g^bP%~U)4+rf|MaAf*P(E$N9!0X-vv~8hpko(}x@#)z)P1h)4eNQc@ zFSXz~xNo#$Ky~zP*Y?iQ;SNo1`ClI%Lh<$f$a1Lv0JU&+NzwbNC@HPrjG4IeHh7R7 zZ4K&GM2fVnpVMFb&>GkIt;o^&7jC!`{t5k=@=a>`Y6Kl!{rtqt@h=&hzW-*Q)Z#y> zMc_3JtEgcjjg~}%(MxloeUQ{-Nd=;QQb5eeic}!LK^YUmVAP-LIGiB4Q*LC^1CV*3 zQ_6%n7+;$F1^#;uLgmkU>|OgO)|n{y zMP7D(N^e9FQK9(MbZ(#nm-WeYZl+mve_F?!N~F5EjkvVLL1@Aj3Q^9XHfZWn1A`8Z z`FOw-Lq>`C*)uW(HXaXj7@69G8TO>-q=iEfVNm zO6YZ$t8su}EH}b1;@o+NhZ4gBzb;_Rqeg3(*{C}gb@{^a!nlE<*zq0fiCasrvneuq zEPRWdO1S%j`88f?2j>OQ3f-oaNtp;rS;LoUQ(eQ0ttXLI6b zYmBBtpw(Z9Te33wNLc@t$$&p38}5^#`wkw|w|CGvff4rTry(!2#j_b`+8E=LZ-3p3KS_{z+|q^UoE<(FKf3!8J)V*JOmZ5YK`e#qaH-jzCM2Wh8!IKKyC&df1Ku`@D9i# z@IQub8?Fl;NK^l!4?&zcF@^(UhDr<8Wz|Y`dk-Zv_Cc23uCm^)KHc$%#g(Md_m+UT zHZg|=ou*mou7V2 z_o-?PH!kk%K7Cg78~xjLOhBHH?b1(`I{bCHtM)Ta@88m|n?EP?i?4BDBI8Q54oT~O zvpcrUPnE6>ld~}#Z#q}==Yfm-U0m14um5Y!?Ygl3-`(BK_kXVBdi2d!+Z=5nQ*9@&~Y_SVg~-=v?L-936PB#`j&(Z2Yu;JP)# zEBMhfF{?{Ajw}p%p8NO|209cB`(}5u06+Hs`S|#VRHpwd^t~Vbe-^xA@YgI1rknpG zT(yi0c2KYGd~}5v^pd}}>@KP^ijRMD>`vFTza-H56v({@$)F7Q2XZg+IvAZRixf{0 zA1Q+1moU8aVcf%va4owQ2f9X!yh)CX(F}(QRCaVNTX$( zMZD?b4Q2&2!A+Cp5-8UL=X&5jkRCWgTtIhK`MPy^escWg z_!1Z0Y@NxUNY4qG!FY@t1!Eq=f+qSDrcCOspLE{dxREY!s?zwB} zz#ceQ!Fbz4tRZfHz#&99MaV&Ipw+?c#V8qAwr7BBh00t(y&17i0>rd9E+R?$~fu~Hw6?)*gD_ixAiCdBNz{@iEmOd<@G9NdZXH;2N!V-dT^20oCg;VxiMv>4>sjoWbPh}0kTKuV_eH#Tpk?$EwORw z+lSn~3Kj6RQ@Cq1F8(Rsg^3$S>DR8FCUhFXZw0>ffo(Y*8Zb9uoG(W2WZkRoo|h8K z%+t9cQN4Fw8EbxeNQ-Btx!;sYZMRHfV0q=9@<(6%@_Hu*umdAq$qSlp(uMiFOp1Tr zeSMQ&s=S2LK_NMiQ$B++)$5+d~qL6jL{^v@r!1^EiyJEs3Y2=3BWJkrI&dfFJ(nUnP z3Lszn=ZpV*@gEzoH$57lKhW}tu1waM>j@3ou;D&-e~A%-5j%2_d{mDRd(M6A$pk!* z7}Zl8wGL0T10aMqY^`%d0|7!eL*HT~7H)}|=pSh;Ba24WDPyBDCpdm6px(CZ36mT; zI#4rRTS8kLoSeUbrab^MXF-d2per|!*Z|f?(DS-Ignu22{$?=2c5|bKg@QBr?~&2m zh)5RI^J8hTunY)G>>WyoG6&|S@$ggIbfLqV8P61@B`#ypwWC*T<2Ebadf>Z|PrAD* z@gs1Uqw#dYjL1F9a;?X~2p!%Ytw0^t=~p0+6@~p(Jn=rm<$J4^p6{6?V{ea{H1mU( zhXnpRI(X^+!T*k0Sqp^U=`W8IinVRMi%Y9N@ zYRTLNpjG!eXWtdqHcFmOaTwTeO+%0JwBLl)iN11@s}On0GFdxVE0bYBeaK&-hvz<7 zd$|_#YDiywsIKi5yqEO6SnrhB7ygN{l}gfqu0HJsDcmm`>vpQR)PTjzBZMQ{vaD-o=QnomlFM zl8|(qsFMvc^n&83bzePYTtR)StV^R4S)k7nh9O$cxS@!?NFI)O{c17f5g{!-jkJRB z{6zwA?Ccz&As;R}O$WxbVTgWWNh@Y_3kdc?)KaRx&`DdTp2wavU8I9nk?_Xwi@xUY zg1QGcdlL5$R`jrt9RZH>(HxUsFtXYh{mPN1ht!{&#@OBD2vqxoVmj_m@EeD@LI>bn z?K-6>wgHVJFl{mURNbsrn$POH{sHmn5uH`-wfXzi&v=xPAvOxs=47GI;$bfArG zqi5cT@A@}4nybOkVm|GR$M71m9}I-o#t5D4wLVoaO^mLF+r2ULj>fzeBN>gR+MpXL zTI5OB80w?`z_1Z2`Wj($M|>K3;+AZn+kFEI6@7J0J;F78a1BixeN98OfovD^#=?zU z{TRr;j+#x4>FJ;~fFCh%?<5AE^%iU1n@ESiN9~x8hQLfF^lxWi^ljJZ zm_s~pa$xB(uhCG^)hJy@Urw%UL+{2EW-^F*XtjUoX#Gy4Kd*JWSC1xlfVPcD_p-Ke zW)9j1B2AO5JxYg{uKH)0>zu2hG>SD$#Q#?Ghd&+V?-=| zv_XS7D~ze$d7Px;kECcItTkf>#|u2P6lz#zavSRNZL{B}TZ>YM7E;{Yyf!zFHdCv& z*^RzmxF&J+IC0~lvkgLJw%wQ2gg)*K^lPf(zqT}BVhzPxjpfD%S5IlG^GO`W>47oo z!<2DycKTX7ZME=Zfy?jDTNmG-og9(%M!kgU`#x^1gC^rh=ajcu-1><6u(j zN-a0~!0eBxsuaerDU6r1GC5xRIH$^2V~C1d zgZsd948LJ9l@XW-F`=R36y<4bt?-g|#6f6!A1TmrSR;q{QMZzbJTRhH=mwu|WnxvJ zaVw2_r5(#7SNCiBqOT1t@MJUf5%)4mzQMC+?Xr7@4sWYE&HMhTg!s z+DTc*)SFosF|`bfm^9@`)D3=jJLq~LArLnWl~vSG4n?Vh4hEKlKg*QEi$gS0%^sVbQbXfO85W4z2M^cpSwGa zYVQBDii=MR&eU|pw@A<9z%b`=pu|-=(5Q9jvw;W0_}(66@RLiVlT>YO5Ba2>% z`+oTnUe;F-75&aNN8+iYD|nG;=Y>bVk6G zm5~K?873Z-4Go4Tb+gJd?jV)k_&L%&?j#1fcGwZ9ZjdIX*TJ|mfq+cR6S%;%J`bc}nyrtvwo$Fgeyoq4)Jp8Z=H_PbaT6bN<>ERk zQHiYA-jVOVBkNuTsNRiik?j&{_%x~x|)C7Mt4Zr7xY zxUu`IfsEI6z`Jn$km!M+O!FH!DN(o2NT`lQ>4V z#d1(Ou23#yB|~?F<5sIxaFw$>dK8SW?goG|jmAW`;CgO1%;Ca;0(XMLXDBu(Lv+WE zt}zD21loj>23nAYg2Nzm>;&}zFpGP_GvrC5@G_K2j~2P&Oe}gb`NRu4iJOBN8fPEe zAx!r#i!VOIiy8GcLEZId@&Y-vx>+p+w;+3`s9{va8~CqQ=Bu117@?BR(ysqnXKK^q zpgrk}9^+$rZXblaYH3Gj?@wW}Kk^M-Jpb=7|C*OSURXr8PD z3$CkZ{a-(p-ERJfyJ`KgCYZHBW8b>@2S*ye5J9&tJXoBbVeOtkJ;Ed5FaRkUN7pf5 zDuLPrmW&oIm#<-DD@Nmt+BOOeeQY@YP@t{?pbUccFKwM6Pchx8X zydV`ifgGRu<#cHcau4m)R;GfA8X0&6xHB3^>E=`dxn&w~+y67&om}8cENb%pbqZ3= zWEPsZQN2Q6_>)H28;C+1p4XY+Mb>Xhj=O{TQ?eB z-^3A!pEggZtVGXt43&!p)plQK?0an-Q%3iIs6at!ORV4UJ>WM;LlumZ>^s?2cmoo5 z2l@@2T5-Jel7WD7gWtP9U+lYyC}hP;g+Xf>hTDqlMH%MaaC^`>(G6u4+Y*s(VTWI? zvnekymml}sMvWH?u|+{5W=)4Db(#Yd;UU!!*0!)V9C!y|y3jt7D{BQsiJQ=ICD9(a zDf{2E4fcK!_09y_BwD^}n{L(P+BY}qC=f!|2-}6d67rM7uz0*sj7JiRM9G4)j&DMw zJ;j3yVlKGf5Eg(Z$1kh1aQ>E$bpMkMq2D;S#q%33BxR+2yW*Z-`SpkVHe z_vkMlMpTa}Tu`)Ng9*2ca=bIoyhtyhO4NdeRC?+*m)lR@z0tlue*OK+JqdR5vgoS7!eT<-k4h1&DY2xe(OYb(P>>GLH%G z7l^bq6l{aVE&1=c?*xT#^I!=4M-afRSIK)D=X!x|*VeF&ZQ+#yM=uTt#RmydT-%MN z!?t0EIuUE{`tVR?70@`x0EC@pCDaA@JUpsTN5}xbakB31ktyT^?T)S|8WI{}rwM~ms3l8Lsw2OL0M^$7xBg?Vd4sULedADt>&1)ccPfQr zpN6TyOU9_`_kH&$;C0p{y^uEnpP*P;7Dv2F`G+xjlzD}KoFm$IPWFDE2d6sO3+I|6JYPu8H>lS}l+Nxsods|CtI& zEYkn+#aZR))9q&PbfD-?o z-R+uq{@X4*%=v#6*VaaXY(#8&wVIlHPuP?Kf8OhZ2@MlWVV7g?+gOslZ(|wuz6~XN zUwrj5Tl_W_w)kxR-a5cuPM?5i& zSxMvZx@ldv?@*$+KtO)P-E`v`jx?32*`+qLSi>4$RN`V8ONs?0MRzFY!!|R(4WSs< zbfHB}anD#poxU+KAO~ndi!fImoph(e;f$#PsXgdyL=I>DYZI8=O}<{D=SaB{ILzvm z&xUO=3dDxM^BjoY=>Si`5(ayY+HSj02Bds_0%`n^`!sX3hlH|5w!Jn61OG6vZ+Hyl z*1O{)j4sHJ-qN(gA78&eJ`J9M=a=;S?Ces5FFa$OEV3ZcUY}_1PTyU$j+mNZE`Gew4vyX&pJHU#(e#GuO5UCy|J{GX5Y`=Q zfaao7nV^ds@hw2^sH5Xf>5uf7L)PMCol;tvk{JVeR$?O>+qKAR=Gx9T-GEChzAZy2 zp~FA#x3JD!x_ku5Z`$jb9TWALW0)dL_oyVkZp14TAJ^X(am|l)wD=aKYlBWqUDQZG z@wR|Rw&1V30QS>)Tb-b@M|~Y%3^{wk_LH$gq&UtdZFiIVFH~w*GuSYKj|@%*H&*? zh!d(nrU_Zr#2mTVE!4fS{Ns++KKr;2LfnHF3z7aF=-Rr5;aT?z#W|fBtsP?YdPavD zn=RZrulFY0XpNT+Wp2ZW9hlA5z3B_4u0}n6LMsKz5u5^W3~J*9eocc37zE=9;S4>Y zwmM2&{O}{c6z&*9Ing_8iB^VAw(cm+oI_9y)dO=0ULbh^CD3i4SoiK`*aV0>m4@R$ zr0C2Bj^_CN4^)G^o4V3Am7;&NsGB`?2kM&P0UB==Q~RQ7)(jw=R0pgGu*@=`75J z@RUcth#4h$%5q#jk@2xoi`c2r?m8UPnK6-w0@UC|Z%LT5++jL8XQj}C+gm)gq|b=% zxyu4=gz18lfvoUz7rgM$x5lZS|F?(=NTUDQ*{w&;|J$kN{@*LP0{-9BzYMtzgz>FD zOvHiX(X6nu63htHON}3EVGa^}!}CL-a^LU=f3&_Z~JL|+t1v${gw6Y>u{SVXB^)F{Yc;TEJkl{m(4hj7P{g?zyNdBUF!U{c99OkIDB6wqUKHSbF!<>o1mUG!jV58>-p1PbFN3G0{P&My-^mLQ3K zA}I5KxI`E%OW%X(E5k%kR6$bujxUNcb>DOp?!fuGPw)IXHEk63`Y;-0?8WfNac?>_ zJkH#9-{M1bFkeImk?j95fZ4MGgWSUIUo!u%+V-v(|7B;lQP0=^tGImsFW3Exbv%$C z>RxfFvcj5KxOb5i0fplYkb-Qu171Mq^8wiP0{Twp|I=0tQIRX zlqFoqjGb{YHaaHy^DUW3<}8rN355cEQ@uBu;za%L$f^wW#q_@XlEwepZ8pX6zgpYP z$NyDa!L3nlpSzI>VimfzYOc`D6}k^cp&JhN@h|3(yfJ2m?VW=o)%d!@V4^Etcq12T z38q7s4UbQ8;FGHlV+VR@?@w>{IK!tY2-^U^6M>sU5)#;zTme7u0U~BV0bHPTWZy6LgZm- zzVzr2j3*qIe}ldVZ#tx^Ee6J-wz|KvS*4Tr|F{8YI|~|r|0JFNoAtVQ{_k$Jk^BFz z6Ag?xsty3d>}UGz$(Y z6Y(7^UZaj(tl;Rv>~@Jhz@t-UtZS&7vk?f@6SFN&3RRpNF-jATRTJq)h_$B-}=$~i&^2+^EKbd_ty71+9u9Y+8 zJC@Y_j+ga?LWbfu3VDUf7|h0vGv!BqV*3bCd+!ib;RnIiOKkk<(f9`w8pn)vR4|Q8 z^@-*A(5Tgh=D@(>d}wU5duc7al=Q0_|7zJ48Md7a6{$8p)OU71_u1WU(`Kc^AN8Go zyk>We<~c7Ymh#{J>(Bjv`wxQGek^hr!b1*c=r){yObrHy+TrDoZ(G{I#o_TWZz8T@ z^c#i^A9N=4TLc}RaZaUY_0kF5V9`=IA19O?nDryflvvu!cjteDayFsF)r;@tJuIXL z1P;c#*|$+WY$wVGd?m{NS6$OyPWWG${9oJIjl}=m-p=hmE4jG*PhI=ngQ9d8H!z%! zWygDUD(()>1^rymzZZgjth|nA&!MfT=Wbl%4hX4km>7FVhnb2>@fXLhPY+;{YiWny zw+{b?CmjLblue~CH&rC!g^e_6>DjsFttdA1|dV2%K64=`t67USBRC@@^4*}0+{#M=g7>1@#$ z{?sO?uP$K7n9?1Og~H{Vw@1h4`~MtYcmG*1Zg6Eu*fTVg8XZ!6{2M!+^-Gj2fhdc) zu(;rr#Q(##J+ZDkwZ*-E6yiTMMfq>1SI9+U zkb~}756b!K9$ZQM55m~y;xj+HB>JE2?H$qoYrDSF$oYR2SHS)YUB0ni3Ixd3he`W- zYxP_Mlxu(n%d(@TguxLWt4R-pEeEVfcWdbMaVBqUUQLFB7n=c;%V06E_!G#lqvJ3K zH4>`o9%qHCHJoz>o1IX!qClL*2ypE@^xI5KE zr@f2gf3(hCk#!hWkIvqd5*+yWsTb^Uo!SnbTme)`zro#`*wuKp4?VL2{=pQ%u=9a~ zg<3zn^^Z>oy!*`GRY=TRAX+?o2r~WbAD$6C^nDgMk|_H2bLv~n0*`a?`C}_I>;*cB zT`cMtv|-X0QJ=;8&96u*&1x)Z)e~u}sZLxtriBQMrvHVd|0OB?FMj%P1g$VpHtGUV zx^#lHO6jvgi86^oLo^zN`z0A}mI{YtU7-iI%!D&|4#qI4-gf`Z z0m$tC&7ECQ|I^6hf3M~WtpB{AHN=^=9S~LNQfx#HpFE+5(&Zb1@|EC&UkUQi+3s;u z7!mQ}?ZIJ-AIvL>6yBjc^5R|%;R{_!kv%X7UY1 z<|?}?(6XnbO7si$^auRp*}Z~$hlh`go6b>{0@JiTF*`Iu4m-rfRiNBZZORTRDNwP4 z1rbk_ozW13>!xzXJk*c>d#d z10Ln`{|c_a{NIDgr%Q&@!NeR7W);2L&3Av~BETO{1gQBRp3}+BA@zTy^rXA$e0Q&i zt4ex%_P)Mul*k7t`NljGM91agTSW(HtfndZ-fZqV}}!giGy}pz1yP z(SL-6K4MRyP&M@0MQ-KCWU;eU=r#ZYdfBAxz&dt~$te}r+Dq9teD*vf3>$>k9gGJG zZ;sE8e;_-X+q6|q@Px9hw|E%K+r!eP$5O%x;nZ->&p&gw3zOqkt3`IVn|@SLYOHyQ z!FcwelU|-^-UASI!Ve%toj~;i&-?@CfNNeK|GlL#LSX-DFWJ$Pg(W$z2Y9E zX?tYZLp+Xz9(4{xHXa)=BS9-;h47d)Bt6!)@@j{N$7`C?H~rk-9G_|z?_Qps zoxeFa(I`>kBfLT15V5eS$$2Z3f(1XMN1@p`ej=55bRhS*aSdVX8^f6fVn&HSDU20N+~ZmN4gY=?cs>g}|LoqofVct*n!#@zX4i(l-;p~073|(O7{I#1MKE@iqIrxE(9eZMZRk(IG2Z( z+Nx7|(qz6IIXm-Y&c@~>El1MW$-WBBl8Gtl_3gKWC;l!hGDyEOaX=5Magqy#*YCgk zv-iHcbPzQ~5lFgoCNpesEc0M%r8J8tv~th$_wfd5Aux4f8d&0PW|rs*7?NzapZ%$h8Y| zQ%-xlf{9GYwA5+&;<4VSeXdNb3N?e#Uk)xS5~nyf*N54xtc`MhPWnWdp9Mu7%6$|& z5m~9lA`5qgnhLd?Em)hOYnd*IEcUibZ&x~Gp)vf03u`fh_+KZn%F_d*^} z>sq|#=-%LGnd+-PXhgd|rRx$^il4*F|1^c30u3&k_vUFsIivisnIuW&idP!-snAv; zbas6%TU$O)RCy+8dzY;5oloPNQRh3C);F`>H`W@oh&_li#ET?;Sc;M}ie5qORh&u*a#cf_L-8aOc%kg)Qo)HI^L4aDY>Fv+ zwCF1+c2s?sUS>~2S5K$lP;;a~rcI4>92x2uJYfK1`^0p;t8R7ayMjer@|>6=X`~iN z+KO0J8U}nc$_^a6Rb1F#{1e^O&iv<9dOM=RZb{Qegp&p#8E4~JD z`dW!eUD5oyyaryp!q#d$#IPQ^Ht4;FCK{Z2896d~JPwWOeUdi};6p10`>s@w9u z&9Ya@{q}x%ja9O*D(80NTuRqucje6cW+^I_d*!$uSY15`=gg$8RQz16wzuwDl~URT zovsuzU%Ky2Blo?@eQ&-_-{dVl! zGCP5?by68IzSinORI2qbQ{K`^azXo7v?o>6wY-M+xEi->EMGoJek~+1&$h?=QM(7{ zVzO$YzsoWBArk#Vso{eqeDz&Ex6dq@_xat+NkSp`ke63Z5ur=P$>KqJ?#$6nOLDV_ zt7ld>3AK!F!>gc~dllRpuYya@n}Bo;76X@_?#nvWi*n_vY}}L+V>q^K-JTKalVSG; z*0sb~54B*l8Bo5I5-j)`(lTYt@#(AM)8oq@(`@{SN|q=Q`+zjbm#nqIwyOUte^#k^ z*5tUFx`*QK1^bJBUrYK5>m0uD4AAxZzxss;}Mp}ne0wKw_Y1CrBTn+aa*X@l!aTHLphs>?e4OXd78@%)eG?oNLG$4aii`5(Vj^V7fbqd)%8M}OSb z>0iH8@9ylc#^zI;Yf+f^rAp#X{;E_ro7MXE_D-`_t$Rm*1)tXPv%kL5D{1~8bYV%o zqyxYt^Z#x$dj8k;ZhrpfO0K~CPrH00AOnz|J~RijSW%$5n~MUuDDd@)0@dA+K#+2r z5k6y6vA0ztcFRc2h7sBH%~T9GObt-o+;LahR4>5R*02Px3hQq=rPK7=&-hjHW_1SS zoxCopGbDM{67s5T)?%}&ZPw?^sgjgcb+evStwy9;m>V|nsebCKV=?E`gVThz^fElY zfJBgQDYksu$|)6!qIMRD&q3TzK`bW9yXsc}%}VtNP~n^xcK_ zkJkBF=Grb)*~RLbTve}EDFGVp(Rq>Xt!?f$>eX%KE>@}@*`PXE)Sau=iG2dZ)~MCD z6T2;?F7%+eIsiP~-frwXt2b&-cXxJncboNlTQ`4qVL8$re7oTf%sJM4@&watcs2>9 zmFK2-#kvJ;_vt$-V_U*|6RTCkpNhT_M|n68YA|pcBPB1QcvZuTk9UGe2JcB+F`*di|0Y-gth84fDm7 z=+0s7VhyP^lP;+_H+#KXr940`j{ng*dqvhkoIg5yQwnUl<%LC&a#|*zJhQe-6gU{5 zqc{8VC-Y}EM$}jfpiu{JkH!@+A-FKaZIv9nXXb3CuFKthH=*LF|7)x*YF zHahwJYthvhNdF+7)5V!E_6oFg?&SC6iEbI)c9JRw~qj+yH42}lH2BJ7QeyP2=`1_%DdUpB!`PqATL43QJ^QlvT z?!U4@?!X2h?!o4MZf+|Qc6K>G!W`S=n=|d@@#(?&kABG=V*-PWvEC~WOLQfTb~ac0 z$Kt8rBdYU*^_yo915qMyHag{VoJR2zV}vcF4?xs{K5^)%3Ii7|@h+?~xrSj0`Ll1J z7a`@3UKhk1I<5deJ7$-19${&qFA&oPa1_^i-8C3SrZ(Pl$HNj9!amkPVt{kG9M?Yp{turA~>jj&K-+APgh5Cqnc6|ExgOlSU4aVA|la>ZQ-nGg!@Q^1lk1WCl2v;t4$!VQ^QWCg=tV1i1 zZ}wx6_kjKw;hQ~}7olmj*R9J}C&&rV`YWza`gV}{D|}hdY{I9!u9wSu6N>c#fT{|#(qx`jz`$jIx}5dmC3ghgRYgTY*FPK z`F(<O6Ljl>wN zSaJDXTkmQ;RDc2PbtxA*u=t0GkXx+Y8*D1WnX1kNT@b%4;^6FM;;hH!FizM=o=~1T zSr5%D<=FX#5>(s^cgc_Of9Q;Y^wDKgL|pPRDP9*#loUXQI0+GVo!8{hHgFI?Zl}U4 z6WTjhM(3liwZW$7U_!F)wsDzMcdFHpCrx;$zpREVXDtU?$Jx|xO}p#JQ&lK9&FZlAPX9vr>$UZ=w`ddvvv)(SfB38^V&1S9u-T!PRHnv#x}2onTKoTp0hSMais>Wfl%9wv}VoIn! zv?Bk^1>(iWDJvmsX`6kc+Gt)yV}=3jJbiGj&m1-m!Wt%s32kQ@I6NE-99YrN(UZza zzLM6^?SV-nuM8{@mUO(EFtrkDjss&`8dLVVX$_!4Fe&wpbTHTEAA;mEnvQt^lN-!` zHysVk(MNB(2sY_G^Px=A|H9O7jVBr^T^9BNOx6F^cDJ{yJA(dqw_0oF`rlPt0sp^_ zH5}slWPrk?Zuh4&+AfGG9h6dl4sz9RuKNADRKE&-fL#9@&;jZi5~>SBaK{OUf9`5KG8F|tNpuXkYHnF!wp-X~&AM=+jR{Smrm_!=Gd z6-d5au%Xfgf=np8d26> z-t}#;aKWg{-_Rv@NN3@|h~K$_OyfL@I;c#n2E#d^C-sQ;Ae}69p!`t)&3!z1txg_eOlp#H%y2yIvuecTHd4%jhRJT_^BV@$+;)((Bv z=KWKXemD+&$jMT@yuXIO&s^URwKbtX-b_)lL?e;$|bFzsz2jO3cd_Q7zwb-PwP>}Dm{7fvwAI_XRE~XxhwH}ErwB0xf!i3J{BH6 zSxbuE@$I)>+8WO(9FgVK!O00)Qs2G)Uab9J!ZZ*ZU|18v|5KWN%@?+ z{BebSciJ(qU});33g&BrE)hT|#t|Eho&%~^9XQnNdrh6p5F|KwP4th319CaFvr>^0 zhp~+^6{rW(&PS7b!GSCpSZ9Dt4fz-Y17|ZQnEzOJoWN+k5i$gzqP=Trq2V)aq6$57 zFvtvi7c+_`PE<5Gn-K6P46SS~a5W7I2$8em2-NSk#|t)t~pgw86Q=f7)?1S2R7sG4?OItA^rU z?AuD^MtpOhSrZ;J zUi4K@U+zmYPV#nKPCMFpLoTTy_50kCxO%;B4QAZu276GXXGGrSO*wZ{-fOZ%mC`+I zvcWxXv&MaFv)Kb_G$vyodIncgc~6+97;eY;IKq>y@1Lms{+3(!{oXANiEHoI?i01X zcf0tWH78JHe_*yd)YK?4mM-x<~zzth~qumH9!5pCn1M8Y%z}2=U zSL{<0T`wJT)G^3=;!MZXhtOop^&XamVTQd3P><(zsEhd<$4;E?B5$D$JP$ISfT<}0 zk!+*5ogle{U%?8#GaPg9GHxAUy(qYNe7Q%2mhd8{zptMD3cePHPB4J!>&m)Q0P0w_ z;VS&N1=g{qcE>=IIyJ(!r~S|7V4!a~SJt%#zcxF4^Dkz1zgB-%uixW&$$bIU9NxA> zK#81LzvNTY`d34*YdoTKx z27AXhIQZ=nPVsAO3hc3n(mv>;8H5Px`aMc;_eqBp&DG$$FioXV6}Qv`Q?~<8c%oF& ziXkpN@m0^V65q9TJNoWtp#eSOb2YE*Y1CY*DuQ}LhIoDJnL58sF>ktQV+@=@n{jZYuF@zYGO_!X7=BHg2^VJ_Z^ZC=8biGH{ocVHZRs33E z9=kbX=4-y3%gC*98TE3{nJ|<#7ftiU-#wb@7GzS%=Q$65-4gEhd=f7CWa^~yJ{NRv zo%`S4&p9^5XnemoG#7PqK2zeeWHw5jUX#DOmyG*<@1abs4_-Xp&KdU}OpulL68>H2 z^Sj~V_j|d3e2)a=kgJcoHQL>zpR0mze*hTY4HJ%^|N8uaFkzIwRb=3ASR>(vXYSMJ z6`l@!2{F@h8TqT_w0kxW<}7%BSTI)x-?^W{uPH3}`QFW+diw#f?|h5VMcFsz`(M59 zu}>4ezZ)?)q#w?u;8k0R#{2ms{70XJb2)fLyp{{XIS+L=t}D86F{iu)%mzu$W>v+Y;Up3R&+?^<4dKc~E$!t!@C z^P*=&E=oTfQF>=C?+W%qALI(=KZ2VDuycf;IR)G^e*Wqw>s*%pgF0G#^-Oq=Tn=+4 zyJIFxiTH54I^YMyWe`Bo^ocs0?hesIsA4n zMbodG5AV?one*AI=CymqXz%wPlqj070(0h@oB2|F*K)4Rxia6?b%^Z(%mc}ARW@3B2v<^z|!3yUDDmPulJMH*a_O&ML`-t#3^vPJEakVSI z$*rZsTGGDS`rtCQVvJ0g%Bq_ueuq14JChz`g~lXtT~{y!&d@B?p1-Mx&gMS})1e{| z*AmSJ1y@kl?HRZr&T{U)TxoIoskgWDR^wL31n7lP&Hj@;ubEq`MHAO7eMAe+sm zVl^kBa&o!^eb)6kc$78?BW#vwz{0ds5Q|%;Stu?$uvnne^T z6b*is38=1=Dclm-n(ol%#z&DaRYg5e?^F4~Y?hi*RFQPEKfX`w|Mr|02VSOEH4)%e zYP27cF{GqjwyU14boz~CnR3L#?ZuzTlGwjrQ|Ny$TNe_$@YKu3CkVevS>ZqOLmQc+ z9nNrL0Y~dHbrTtlb1CxIjH-<))pmP?2_F+S+*!YFka6lM{dMbSou_tOye{i5k8PgL z?Qz-rsa|;jzevQ zB-GWxvz2gYo)p4B$E+BBvKL z1M^f(W*3`oD1RrW4faI7YRP%h{{ovfo|d99uqmO7^V(eZjUf7#Wgw{N#rjJ;sb-C& zOw^PwSYAY~=^0z8?FVCjvSGpZDSxt6+iyx4v^{qY#wgsG@Y=-Mf7|-hakn@HS`F}@ z?D_h7IK#UK;}-uez`PI7hy`zjv9Rj?W~i854c1jWs}wYGlW-N+{EkKgS&A`KUy9wkrHT4)^8a^Up{0L?jQi*2oZ+&@qSEJD} zh>mUHsSz=vX}Tm7xEWvVFs(Bx^j%nF#DFUTAFnNH+{ALYzUWGkn zJkch1W~)AZt3FcH*P7)K(^#CtA0C3v_Wi6@IFnTi7he0g{1{@3D#sefk9WkInhYwG zedKXwbBO`TV$7L+q}{p=dRksVNPRGeqbQxp-XC0N5`)FdGYRSnL|Hp%s2F$R4LgR!S-ZP4Im{=iqrzUea9qMw*J z%o%{_k=+jTo&QkEs*QEbX#hKDx9xgWXMa;7!p?ma!u7f~K|mzzO`J(uN|5zOfz3YT z$Su6;s*{xmZRHzh*JhmH{Y>jxm_4=vPGhw{CtFHQoQz%C)7d{3FUFK;zBD`zXPnKO zaz~3H9xlSa>}KlQ?qy<6O%Oth>2Ty5$!+%<=p$GByBmAM$W!rdi~d4eQmPmme2*pS zA4Xs2vO#}^jrE^pMpS_83Mw_rZtdcKe}1fcb)Ws7s$}`s^~2n+5Nz3Bt7OY^KYoN9 zqvG2C679!qUO4Pbq+R@JrT;!hvxmj6IIabK25ZmUj!OKpPkaYsZnrxh!nCuvu_kI} z7C89%og&Cl|2r%2GS8pK&$Sd%cOqpWN^<%AuboR8vUQ%@2Wx49i6G=?&+j|IE10Ow zhhJYzn&!8-d5Yk0hN;z2G0K}PxI+kB$}ulQO0W0feP+ug5wm)M!8)bR>_t4N!ixDV z$e$U$-)ZzXNjhJHc7(KC_^E0RXjNL8+4B686t?pq8!5z@8&mm?2vvmZR|)?5zx)=g ztQv2a)C?8y-^`I#y!Z+qY$%u46Ipn`_Ho9q{=-l{Jf~PBNaG%_yqD)`9b?t70L_TM z?j|nPw!OxIUq-jq;D;FKv<>phNP#VsWetBBaD3nVWc8ikWvVt81*97*c32$V;|%gv zv7Al%brocXI+!h4#^zW>WX!8}0-Z>h5y+Ii`OI^0w9%$#P2;%)PBY|a}z3stQ99)Pd? zB7g=`xk=rO?By1QfDFLR_U^G>9ULvO|s&L zY+km0JQPX7)Pzcs?K1C&t%HA%NqbF;fZ((e!d~8fE`Bfuji6SMb}@THgLrML-L1e@ zaUrOfgrBF2lgetlDA?CyGWf+|*I5Hs$^UDeaD7^+&Z3kT7V+uAJuSMA_n&RTn5DNH zT^2^hvq+ES_lloh;E!&Jo;-T``yay)_!N<~*TKqdq5sPSL0BnFycX(x{p!x?r)p(a zT;vblDcO*rf#4wLCT~r=RwOUJ^gSW}6ObUPw>dI9l%O#9ReIVDcUpzY%1w&9_}w4e zk@|!I65>Lko=#S=crI=?C)@H-DsEhyQmijl%QkW4b8Z zD1AH%Dj+{vi5vHkiqRWw0j_@cCsGfxhw$i$3|k#n5cCx6=j*XgKoz8Se~Fzb@w>%3 zo$5gH_Hcyj1G~0gR#3Rcj+4E`pEhjqLWy!@$>da7l4sSeG9>|9ueJ z>p#^GgY+#=;y7Zt2=Fgq@Y;9Q2w?PNUI3)o(!g)zMH+twu2}eq3y12L&AR^Ux?Bfj z-x3ytu(N!W%)$^(EKgtISB0~riHkUYSBSGyrtv+rTy~rqA3dRsbZ1EGiHp1G^~4ms zr)dqQ6DO%{X)P$IY{RM%W8+l1TFlNcBt^)t9XXJ#_ai`bbaV+rSGl3>w}rrXur?kd z!~0na4D_mm?8S>C1I87Y+_pycJ-(s72l*UdZ$Gs9{74b6LUn&Y%MTB>NjK0uFszE* zyuobBz)u7pqNecg&QG5(jC!?B$$r2n%wv*{g4zE;bxtaGI|9F`QTH|HfY#hy9e?^d zC1wbVisf%Mryqu8J!`0O1agnPjr>(9I^&)M(>fKO7bQ7A*^`S68I4P3brJbtWc`6o zC0MA3i2sm}gPz((UXO~KN$v4{5P zq($`${;m9||L;#5D{kkL)N%V{)Nki5<--5&6iRR;M>{xke*GfkgB@{IDeTIxJ#`2A zEpp!x_-48!^bd&VQPmZ~5(|hfK}2D9(0{%O=Mb?u)NPTxDtYX$OzMj}=E0V^FT8D3 zWyxShf=lQq*8hhg2>XYf6>mjRc)RGeM670 z^CPNkIJbX8p1NBBCUh@v-J_&&{Yh9?ZBg((z`0h3_=qJy@3k2=#p)!r8J>;Jlq~&I z|JwF3K4rrKn}Iq`&R9PDxkSV!gZ`<0p>|06kK``Lto^s}^|SstWU1q&p_K4_13!&= zu4m(uz9%xdMU(^;35>Hm#ffR~b`8?u#E%Pigii1IGT!kQ9bfsxMz_<-XT&$~*4vxS zq}zS(4}o2WLC|@1)9%* zYaHN@A^%^1a^)A#Ac7-g(mvP%{uE_Vn)I%XKU8}CR72z^GoF6h{@k}iito}(wM`OE zxM*M-c}d#PRpEb?niAf%-t+y#?^=JKar;^qNX!s$g8i1J2sjAh;?T=*^#qTM?t?|L z_i5H6&l*l`53)VftI+U02Rxl14>*pn6i0~{5c^QUH|>ub&pu22;!JzLN-p^(oAuWb zO@e1?6^m+UDBdrPeE#|OH32R^X|l3Rq$Txz-P`4%Z&SQ5nCARPmbL@@EhgS|W|a#| z4$Xi*jr4m8i&7=jR&z_yb?#W!kF=t+mH*8}b^ehZ``PU?%KLGFN&yLHsz2ce9f4Dg zM=vzLnLUf9t)V0lqt>ai#~gyX47LyU?p>#uF(jcf2v^UV(U8MT z#<6*w(JPT;!08}|)D^4=1E0bug+?#ZUld|}j6{^I@E0FnUSXYLA85&fV56tF{P$go z5q;)vDM{5KFQ0Jdpels@)QjbOkI~|zZm(hc)VDsQw82=bO`|k4@C(7`*+6F-Q+@Pn zmyW$zmd{0@GcGe_qMDq~W3e^$2qcv7u3wC)Ck5Jy7TK$qFEmUHF^!Wa@@EG01#Nq( ziROVKAKofbwI<#6md%!F8+}q6cDmyPtB<#$vVX!6x#|1iqr0XhcYUCF+@XkM3;fci z5*^=y%^HiZteo@SJjXU(nA#(Bep3NB^wGO0`8=n@b$myNlKu#tEJrpc?l|xo0~H%M z^8iz~^EfrdSU|N-+WdW5`NDg({e>-VaIMUjA_CmPMGvm}+l+7K=$x;{P5!8DRm$WG zw%1NX>Cmr*ev5E=2sbzVu8>;p|9j3PCGLSS@@o_$UFlht7~**E?oXNjvfD**M}S{M zTK$J_+#0V4GGw;sqIkH)n~9%#AtV_5i<~&74qHVM5+q%3=H?wf#7VR91 z%>o40$-lfi@D0rmD4cxNQJ5*t{hqRcT9{~n!2k86}ENpnVy&< z?9hU*!eMkH`lOV{%&e4UWV-!ml1%D$I*cu#QeX6iy!$bym*qy|+>G%UEOC>&^Rep^ zTatpm4=DJu)TH`roMk!KG2`GeG^8yW3G#w1l)msvY}*O(k%KPEJ%Ndj6$+}~CxVdC z#B}MbHf+u37ll)+Pbc$xA(5+eo{|$d4r)cx-d=l^`jt0(Pm*4o#8S3DJh9 zzh3fHXR0)MhVLiB5E93QRa;V7uq%J|H zJJhR{b|O53Ad!_%p~kipZ~$~9!Go9d2_z{zPZ+)Xnvc&KRmtm5-Y|o_Z(~V0>9DK ze0bn^X{PGq{x+no!_Vcd&nPw2udwsg?%nnN0;}?6%_JW=@f0>h@JcNITRvaw3NQGr z$E_cVs}oHyY$ZAfH*;TC(4Jj8gx)X5t`@2o<3PP?&Rxrpb7bG#>z zDG}%{<=K}}6>`C9Sk%0`)jWpj^?KS(EKC#Kn2FI>f{RxapI-Xd5Miwz4q_gVJ7XNzvas=zj|3j%U2 z%QOsEr(&E&<6TR&=$Y3mIbGW-$8Hs5+TKiI3Nxf1@52-PGA#!35K5nWxx(_ zONU@uPQ{W+04sK+-;hh_5r}usZ*kX!!hrKBLY8nQVF2DikG2 zI)_ts{la8E1eM_C_FFLGbsRANGYVn6bZtosSiI3TfroRXI>4)T3Iik#z`cb5?k7JJ z_VvMmjYE~qB}ckhT~uHnbj94)wvk`+;-$m}(j;R8NM-X-kztWv*vGrzoNje#me4Wb zvTaS$T-M6*36a_yrAP1YSRwY;dldv|`tP5J!(*$K9VfyaU9smtM#x}I?*;to&Cba>6~+-Z%wb16+uTZo=f4jl@<)D4Bkz3Jm0$aFVP=gJQYv~+`{ zcRH|qr7;!#H}rvos83PV6WtqF3Di?=zIBB@aZ~&`XeyntC3?@lEbgtQ_JMv&FuADo ziK%j4?%ekGU|0i41txmkZpPp0A)Uf7YLvGNbk0t*}mWjyyd}{g_YDm1?IM zm-Ox^ic$&ioFsPx^Mc+`e=v-HJqS&755TRM`1u#gUu`9XCeGX|D&?2MOM0Z&sIjK?qjh=jS<0z(ES%7 zR~P~xnFz!jy!j;xraNv_gtv-VgcZUF7cD$w`zsbjTYe3uRR}yWAL%#JJ@Lcigfu!J zm_}HMH~IX)XSXRgC#0zb6$~+q1%RZ@F0)xt{LmYGGJcKO?-LxSe$PC~wWsbK@znOM zok1d1)75jib6(u-SF90#Dz|jl{y7TFG@ki++(lZ2FSElt zA)!mUk6pPHU7QBZ8iYgK%K`B@f4f-ION5q}wOsAi(l6az;N&!j#>7W3Qs6S?2v{1N z16Z3|gD^2A7kAyX5go^X-%75c2ccoj_jwOz<#N@oS%X2BY;J60$7ygkE0Uom@t-euo1ESA!)eWa5rselQh=}n=-CFx5gwo--whF0YExnQXuM?q?S3tL(IWuy zpuph_^e26(yjY=wk)H7@quTs3hCgW2Ls_X`RD9l9p;OnMqgs974rUQ02n$nqvblY7 zIq}F&cPvgjI#eg|f@TUi;mq%D$;Su$FO{uGBqkQUzV4881>i*|ETX;g2Cyqk?O(_S zZqnxx1C6WYQ5S%U8Pgh2op?AY_!S!^pvMx;Dl&gCzS@v-{;QyCB`R(8Ga`nXjk9oq z4b&a%F7z-*GZcQgArejzZ85zujdSa#yuA#?5w9wDbeSTNMLd!?vMfegi_AB_$D+oG z<5KwKNpUg*@-`kvIrVo2vesb(zLGWHS;cJd$etR;*pc~sL_B^8;*EmL1>;@I@8T2^ zc;QF-gSp+dxr9}ntY(%yDEqus zCC;j0@HFV>^cyxfC47JW!Ith<{c(MpxY$rSqV619Jn6-Rtk+pD%8p_qsVUy!#%8SH z>$S<2R(d*Ty1_FNcyHhorr0d?!o00t<4fz@S)5QZdm{LCzq6!51|U28Q~b9G-Q>zb z5VX%cKwgpunEO)S(gdJ?2u5l`bw2+FoD$fyE)DX_jr93M#8j@T^NCcX3V5Hv-ezlj zG`cRFU@AE@NDryZ{Y@Foc$$JqxYS&BF=IMJVx01k*|9?GTIskpgNGl@qQzEWtjfEx z=$wu$$L+7)zLu^iKN@*HXe zm!B!z0C^6!WoJOgi`N^##g^UWC0*RfaL2hG%0iW$+iqc;| z)>4=&_1E2fQ=#c1n#2K{0`#e{&rM5)*+-`FG{}_`&ew-fm681Or;8jOg-o1Q-0mCX zru)@#3e9|HvMr`NKm+%Ifo2wKTSLJe;Zn>1BF>Wi7SJ24um9BX*0?~y*glf!YI9rZ zf=V%COE86d(DAME#rdCcu~DSA9&!~KMSAP){PWhEbY$}_07sb3eQX5zh<7#q-t_uW zU(%E?5$9Y{_wH-#*G?~gzF7?v&iIs=Y{ObY1{gw3-ptS*u28r zIA8J7^QKz~4tm0T39XOG8TK6eNQXDy5H$9j&2+fQwu3^Ii(S}vNu*fTIaAyNM`R7{ zy|3#`FO&aLo&nlIjNDq98~BEqSepgBc2>Q`!>3_BX8|eHm7${|J`j%lU}T$nc0bbTiGWJ zBcYa2P;vK)D5Z0VEUuhVtjdA;qyDWG*U1~YnI$Z)%m`$KuUPoLh;XEGeo{p!8fgba zIm1U$+6FH`phs~8n!eXsQEf^5XYXE`+|;O z;>^z0##;^!-S_u;TwDGCK#z-)>9_AghQZ8_j+?8g3WkoHzc3T8!MwzPt5u27=r*$B z{SyGzrY&ewW!evUkKfj&5~~W_9Bi#$W9Fk_IGpIid%#00xn*$9nuyDdNeHetwP zLiMmbcV!;&44+Nb>L{r3IIhl(h}!FmE5=jFyuAxa*?_%V?k6-m_}{+Yc&*Vg=#nj} zyG~Tt7+JGb2u?hV1z?h`6O7$H*CI=)q?PZ_5v;3Th5fvZ@z>k#Ebs6D*`WJ_&Hv8+ z?zc0euzFJA52RiXr6vJX_HAt@v^aE`h`3|} zPf=iv36ZN!{0>Vu<+V!`gG}(mt6i|+DZ88*@;g?_Yy-$>IqL4X10;P4IfoA0OU5?x zgP5FB&BcHB4BioN!0w?dCmd~{&o}QM+n&-M_$xkrJG3`QT z-o8BpDyshLkOphdt&9O>dVl6pn|_Utt=#HL#18`*?bftzv8p$K%`ByI0+2ZhhwmmE zP%JtMVa)dMzMAO7jPrPb_iYIVo&=;;dM0Dcc&OD^m;Zl~4)P&04Y<+zTv>~t{<#$} z**$t$1z}wT|LoO1zW-{cli^)pwW4!WfLhQTMMG48#j;7Y+?Lr}JlY!b)2hxj_9orJ z>Ip8id9xcV^l7+E7~MHp&V;1NRro^y;b?h4Oe;%#|4mbubdV|Pq17!~91ceqKu;U8 zT^+hV|8vvqgVA%TZJc(Ua59{jH+7%m4MfG&I#Fz(BpHks%&MN~`wF3Ve3%z^jor1= z+Wl4aQK$M$OwT=Eb)10^pBdsdWtG*OsZ0Rw(>->m<~lnb{XEFov5~g>x4)ZTfb)XS zd!sw-Ogn;diBjktnSwyid^zVH-FYc%=On%F)tKr>B*^X&-DBpc#Q1b2*IYW2{70_TxW>`6k4x_C_xn29%bvebV47{t_3njHm{)=)a z(=uwg0tNo}y49*wIR1+RQzg%``;dEcd9Q7Fn^iOA{TK1B_mKn-xoX!;oa`ly!)4J! zX`gaZ@4wKm?Peu&M`r6Es|;8AI7xMsKBa8YDz?FTIZNTj`fk^p#=zX+vqxip!8N3H znr;3yfO(&4mS)ob?F-^=5t7n+5nG;o`8Khv-5d@|V?V)W*#y4y03?nsz__LX&Le=e z6Ogqkc>UMUTkZ<<$EW^T1dw$K=#9Fcom?D^cCP6yE-Vdi)=uNbciU!;3wS#92Y$Yh zH8FJp<-9#sx$}zZZrSGTgzm)5OQtXbl2@ zO=Db4mQND0&(;5~**i>DowhthOr)X#wI>GjgfD=(g92dp#Df-a#4Z))Yox}4 zy+ahTyX6FE&L|V5jDO!4;y#YDb^P&1rX=>xUZL+rU6mGlM=It`JrQlWQ4pAtuWrgi zS6o71b#CzH`uH2alP?a0tB-j!G`UqkU2}6U;#8N1dxh%0t?$k8b?$wiIof6A z4#96w>Y%D7*07`S_}xV=pSSd8g!p~0ALOQk7FK}AoCMLc;Y3r;Wv7qG%#H*&~v%w z0<38o?jxYr&^n+A0j;ONUf1hEZ(f;F@z*zVK1)IV(P>I~B)YC`IB zRx7SQHfpi_d{XX(pQ*y>sf2MYdTkOwol=-`IK*a;o7ki^JQ0Lxil;L$@miTM2+Oea zu;L>^SHyzJ+jW7L%qXQ0C|%!~MQa0N#nczI>) z5zuyxKtOYOk*^?lKysLEo3YQ{LrCxbz1QU>pye{U4?GCp0;7*$S76Nod6?EM@aV^c zfZCgNa?AVzqN0HGIOMcTs}jgu0z6OdmL)r)?#Wg>F#h_|0JUw_D3Z*8<1YMPRK5V( zW`V;-{x8c+zLGcqXZh`Rs`+Chi8x@}n6U(Cxr+Npdx3mqEe@w6LhGVeah@B%xx47c zNd0M|$9if?iDJ>3Scl1I#fiy+>#fEcSkJ~e44=%x`Tr6;-s+BI5WRaf+$9@#cCJPi z8d#ge|8kwJ{WS(r^7GGr*R_?{sHUCU^izXUW$#c1>L|>g8~ZUop&!O4R*!_|coAjxQXjs2iCL`@5wXId@A33l&n$=SovY$&GHLOX8IF4f+9I63g zVm34#rk5D_Y@uBiha1E%mw)PtKyAJghJtsGm)7I{HqeN<%=<3lGdeyDE>#aMb#B?y zwb4Ya6681fUwN?kh<;l=8(#g!?%U1oyTxa5evxR5Ik_a^WAK^MK{I)B>75(Yg0h-@ z+S-cMS5(6T`jV;|f8pN~2!5jRVfgSRIua1tAhtd@7b&hxOx;(OLswe1^06{;zv|ri zE#IRN#EH&>@r(%!o{HSB${gpvA#rZ_9U9_2uUNm*}%eV zkFGdj`_W!Ik2AjUMJ%f9;)pTP+u)X<;8FD3;rcrzLPFD)`PyWxb|iCsw@D8iTXnNL z?*oplxUJ zmTz}Y{WD8gQ8lY-kXvsXKE5;y^ydKS58(1GAGv$rp_Ew~tJ&=BzXF8?EMa@zk1I3|5@4=$OEo{w{F*4KSt!d^P9hPJrPy zZ^yW@THni6CYadl|lJ_4t|Z$Zqu{fy2(xcKX#mf+h(Ijfa{ekBsjc%4!yWD zM!rro2H=N$ibL_}R_moBFi80UJ1Ta*?UYhe6m%c3k$^BrxL3c+u^kf-u4SF=boix+<)LZU^*ep1qf7kJ#IOv|ypNX7 zd z_b>H;1%rXyy8yCHy0;?eJ^{h}dj>TxQBns;rq)%(o0eVA95{plPCt0bGEhaC4m7$x ztbM7}0YHw4mIRh|2u~;Gopgo0no;eV-POQmL6Z~wpBwml#lEgiUI9DB)JkE>&9x>+ zy7`Xt6;!Z*r#T_b;cIle$UAq&kc+VNk%&+q_Eez$^E#Q|C+Y81gSbs|KHIeuSRrOV9ak5&ozFP8)WC6}@)gw6YR8 z{^&wLALzM9gw21B0FCX4xN~4^7x-g9*pIwFV8E(x^r|Cpx|9QCa-XjqBCqY6x$bm8 z{NE;fC=1|#^o|A~$9Ln^yU^|PTy2+?Oc*e>4ORsj53DC|mk`+KC-%7jEd*d)Lu$$% zuI>Rdy8uMO{;@2PP~!@Wye~K%rInlD z85O$IlTHuGQb*Va7VQR)O=L@mVn^ac;QFbN}z^yOE`r#5g;#id1YJFF&|PCzz=y*?qu` zXFdDSPZ^8d*F&^TX(jTb`soV3&=_7`xW)Y^-$ljwnW8Y)6cN02On4&SWK}ztM&sKo@DHN`*d%DbzNU!14JrSR?ssz z4P`!KBVY%O>*q=;#^%d1lHn&3f*-I}0E<|Oee_z~6~6q3k@6eP_@@kj@}fC;Rl}E} zW?lai2f2_~{26GhltrHKdI@;x((wUtoV+C0!6hRrds6nhIqR6q%$&C-4_wmCd__7j z=6Z**Z<}X!G-C1vt*h8R({M}RNO$SZTuYR6@{>q z`X8Of>!&N?*u;G(L!V@VLyXWiD4tj>yG88xP%Aq&I3VS}L`T2gOkT%&F5NgRA=Izd z@IUGGLyuua+aUW}Dg2WX#|P=f8<2hYe*G~+z5f*ct!7b(h}Imv_!4DUDRIBh;-`*@ zAB||GSF5yi8p7P7o@x22L=gXc)^UU=~?lsy1`Ds~Qdd>Iu(tg&z;BaHdb@}vPeSA?T`N%|o&&#?c6uf50t zL~(Ng(I`>iw!i5TY;~(6bdPSp0w2G3MTnWhjmx4CVESh}hsdnXa{ib&24shh11qCu zcjB#zp#XUd%G;Ilx8dk`}ySH0=(IfsVZhBexNMdISzd)9PX8E`?m|Zs$HBwL(B?Nh;v z3QP7I+y!&AjOKjRH%BM~c4d%#c^9%r$TO6S!|c&?TJ_~P!o+y+(*kQ28E}7KdH60eCMxfC3L0;JFV#`A*B>BV7)#+qN)z z9$$3Z%b9$c>);P)8^Fhx0pB-sZ41E5Y@qEj_e8(04cnhKX$VoJ4+4ZO0qu6c7x{xG zkr@kqdJME2P8XccA*#Xx4tJrw`+&PD)F_TQw4Ki+tk3~z2H8JSMdDuK=;XHrAhS>Z6VN_>_zm<$OK_>|M)*v9(n3g8j z*q~uGiFw#ovSkrv2hKX2E~z_0E8Z2N;j>kp8-5zu_MGj3mdyDpQ{=ks)wfyt^MIpp zOtW>0Quz?twa^^hxBuD6-FB1z#rvRt%}tj1L_YFL@%B>T4u^1L){Q4e%A#Al`s}XJ zL|`{s~T!HQju3C`=bK+Y5X-ko5JipbU@%5PGq2E+P!z^*6*>W`gQqM`~N&hpd zMxAxb3hR99)p_gxsrvY>so)f-oeovIW7oS{`tJ9@o^Sjvz$;R7Yg6j;h7yrEKEk1M zR4-`q9r<2h`%5UG62Q ztypf1;nv+`_Yz6(p zW1a9FeC2m_n$F9IS8}0tNqHanlz$F6BvQ$#u}B+{%c(Kg-Rt*#6Z+hRt~K`9pY^r@ z&RC_9SCiCSz}ZL(?8Kp@o#1-EgR{RtFH=3>Y_E83(sXa#!3t-PaJRtnI$VW4Rmei= zO8)8>ojDkgKYg9)h5Hm$w<+A$S>Q&Fd>neP7yFKOlfj3Uh~uMzxntbpU8$b;O)XF> zZLkbhn+>j#DsOB)|4edslFQfpchBo4Ua%!5Fn)gSgCkK$^`O92oY!)^?w%e4`mmyB zf%HHIaf+8jmYh!Pb>7>k^Fj1Nwq2Hp2B#(-hmohH>RzfC$_pRW8690>0(Pdb|C%a&~0SFrtJ)@TxKdJ|PP9+Wt)x82jLdzq6Z zoAdj{v~TOpUE^UVIfC@GmvgV1={PAh*){go&-P$`zxtRhjnKSc3x>WnINHS&8+mH$0sC_~&9NmP*`>Wwc^OU*-uW{aCDd~LA8@gWG4GsSL9h&kNW`!HH0oHgdKMZM{)XP_{}oQ z^h*+cCheoF3EL2weCC{Rd8#2zyE`jumtu>g-DSR%HsdET>k;+m;cj}T;1-SVSrT0C zGsAHZ`Wj+1Gt6lEy0q?n6Vur4=Xp%noC>@3MEQ_4JLRxVlY)Dkru;s{jAJ1tW|{nOWy3j5nG>fui#B}P;<%flk%Ur^_)esP1Ie>qJ4zMGozf=`$y z`jsQ>`B(7AaEwE~nIc_ttPQd)!4FeR^zx>zS+uP-_97|tZQf@DKg@z@WlX)kT9s|0 z;LE4Ylc&9#_a6QE^TtM;B>N$oR51lDpOd^UUh?nI6_p~ybSdvy?5$$_9r68>`rKra zBh;Y;#l6CO;S7<*!PaaI;iqvi$w82;j6%mEoyO%it;}loTTUi>3_LWlb47mX8gB#H z3Li!48N+szmd4EKX1nQT!7PZ&^Ke2C_^rMF-C2IaA7fSu6cUIx@oreoz^h0>8?Kh7ZTCuKoUMo+aEd7pEYEMr4b#$#NK^ya8o)*%Oqc_Q0c{kpa&vGV>rXCkm zDr<7UlO}_w#DF#(-`SHVElJE}fJ^ej4Bh7wp9HK5!`Ep2gH~YProJ z*{cgfqoJ|d#cf^nIik8xvD>`Vn#nPKSzi8*?Pj*$4wafsNynLIqEtb?RR3^rMNjo$ z)~8P2Dsn|ndvDe!#UaMa^@pdec$@xVzC(qEQ-$U^r9igPN!pWxm#@++UIokWJmX9J zmiO#U@OY&3#7FvI8M0U3nofR@ykp3ILWxTh6z`Lw66LAH6GJrUHzv(9YMyArn4rWf z%@fzXIultpt&x{)86>w9+|(RZmbAfs<5|6)PD<>;`7tvvV_ZQ&W&bK$W;J&jw&U#A zTub7zJGAHbniHP7wz+X;wc0m;ziMIgG7?^kyI#+hR;s-Y#tnWdNDS~%F zD?M3&8;KCG&*+Cx57?NdF?2!f8VZ7urN%0O!^ulJBuc>AT!0P281tMTBXqf2wcOB>2rX+t8{x6(!Hx2_q+7VrkXF*WT=!ix?}0n07J2`_5ts2~u?vC$D-dTNvt5^5 z6YJr@9Fk;dBztG|*s#GO53x@UEoE$Qd*wlae3 zGJ>v(0eX*PXbs7VSsxhQ$YZxea@eA7EOfVO;PN_pgqn!^wPU=>yk44A(-!#+*d~j$2!=5p>;GJiml|#($IR zJ^X!>0A$1r+&f}dB2g}9dwZ_RaN*~^)Xk_A;KdW2?w2A!(DLVwq6h<$XIDAQgYI|x zYUUz%kQ%%M0w=Q6JrwB=c~ND4TAyP@!Z}|Lqjs4VP@|Y9Zk>hn77L;1#uCX6^l9az z6d_gx-d$0mK9B#8T%C6a^OS)+9#tJLxVf4u8BK%^^WJ9u*Dckhah82Z=6fBCX4s_8 zP)w0BtEksAimg>#d_0~N$F%fo*8$8&6Cp=EaTsnoq{2}52i$9PyGK{mzcvm`3s z!e<;J=(u07MxM5sn1OUH@SeScv^xG?C!5%6<0#c+E=7wFvP|`0{A^QB+gpc9o!&lY z=<3CX*=I0TByHxc+8-EBzry^HY$h#Vhl@1rBhucgt}X3>%-h@PuF=!6K5Dpd7S?=o za98B+6K3)El#qi%Z#VS}(dvE{hG!K>WG#7Max`({dYi<6wve}fgYz?qg{zqKSBV>B zjrsf7bG%I|s!z@8Jp;VX$w`+qU6}aEtwQg(t0?Ck_Qd6o7`=Oa0Vx4E>f7XCZ2o=6l||2O=oiGEJ} z=RyT7+5^|)x>c`Xz!!lAMqEY2QQ`n_eVma8RM_wC0_A%+13=yX>PGyjL&9{$%Hryp z4x>e-ET-KYBDV1~ma$PmU?%mD~qSCMZwVv2b|_7tDZ|5XR}*9}>>Obl;Vzk?N8 z_&V+y(%sA`_-Hu3tz-@AyK?`~`Sh`@Gv;5rRoS=Q|!-L^_rSfnBaeA|rFwIUk z6b3>5cdpEjSPUu-0-xTdO)k;2KH@c!#+R=p4YIw~^kd}YT5)L8D(h6LGwfa2${qB~ z59ep(`aH-dAtL3y*Nx5L_j(jSC;crzKKHo!CLIa1CtQL)BOJH>VeuVET|xr^KpV-A z0!sj(85q#j^U(@GD;v+*q_2MU?sU@dq+Nom2xUt_$Y5kDfX^u-9Otw3Cv$4CtSO7^ zPtD@TFF&|dlZpFbsSopfK$pSF%Akchu~PXgSD!&v4mU)$?PD_q#ppdkQ^gyUd^MkYIDk zvi!K^{l;NR*gqpNix-0tA7r>EsFH-1jdn)D_DH&3byvr_kl#We4v=Oa(X6)pI(hwX zDmh9vjqO3VZ)#MoJ?Kr}sXHW1E^{4o8PY7gP0n|(K)nL_by@=JzE)~WQDVPbG3jXj z#LJ1YwbMkg+AjR~>txe8?Kq+KTrkSwf<3U$Msk@{pG{tzaj>^DGsVNt$74onTN=Mi zjr@vX@fJNc-VdUxZYmh`Dg`GqHj*8c;{Kr_GCHton! z*F?VXIuM?NIFCWbquB;Ct<*xfx}WWn*6CU6^pd_ygBn@Rv~#s|z^zP(ftRlOjD}A~ z#W4&8MI4_1uewvMmJ+EVlr*JF&RefzdOoE_KCo(~E}`4Kjy|=nX+JyG&N8f+k#K!~6V#k3{j{|pr zH((|+p>%YlXJJW3U2hJa*f9IiL2;lvS12=i_5xlLHngxdqJ=F|13{JP^M7-V0=$)` zBlc0CvjW}Z9zL<|j*0xFjox?)Bk_9C3A;47C163xy*9*1EE8{1b7s!O7=9QP%O0A0 zxe8&Pt-I3M-DMBH1bWu1X^6u78rO?4lqP)Sahd;FL*X;pccHJE{#OZv$~qyH1x`-? zmNNK7z)}WeIx$5vjvbemFzP0a?J1?N&(jpr(SRan9}beB8n;%+#@qw3h}68bGB(x9 zcyf03)*DsnF&NXaDD9+=FY&4PsHKoBmer%lVp%(yEX>OfT-S0RuO$7?L?88*Wd4!b zf2zCU`S07!YQFz(C09WIgI%7Re{%KD*Q@?fG5;Wa*KWxMgdA2T)VNcIIUfIp4L?C6 z&nFA$3I%kUj@;}O*v)KjE~Cg!k6T5s6lDD-H1p1w8D!^av)0&o+CwAAj2S`Lqi4N* z2L39qju)2#B=dixxg*B^+S%UC=l_*lf%zZ%yJEudIdaSijM}JKrN{JH zLl|022d2ez)6i}%8|1RV*DD)Tch$rK#x}x3wv{N^r6XoW_d~n8&BkptwE1Wt4YWfc zm0-igY*q?7FFVG>O|j0lE0syH81GtK3n@ALnSiVp@q|EV@GLia0P$`{hi#4n`zgi068f?5ud83qIEnyX|T z?8|Eh82p;}P_XKv;{XqJ-LtJ>!BxT9UK*GB63X(SQEhyv@9cc;v%B4O22< z&F&h_bFbC0i2wFqfA0U=f3U+Uq8Q*Xf(IPVF9Dc02H(rzHvwZ6I%xZ~cg)WQ9sb$G zV-VxlsXh?ZSfMfk*?xra9Lojr_TQjHO(VG*{};A}txPcV64?-3g5f*-7IF-47{qOajs>D%iodWgT+*mcAYeWMkmQVBVajh zLLTaMr@n~_G6ViGKW8525V(>WVJ{6THqt!LTKrcA!&2(Fcz%Lw%2 zeNuBDLlgYnuwgWExz+uMFdO=SaWv#aj|FefCb&Hk#w)*)9Cv+vI&vMzSZ|jCMfj=u zGnF}Rp4Nooq<>a(KdT;P`mFALw%f?`S%c?RhtD3t+5-L0-=CcyU1%?lU$;(=jt@>l zaQxFvhjp4;#p=;+!^QC8GNgV|t-}XLv~A#%5ljvR^g?*VZog_N?e?xD`LExp=ynGP z`u63&=1%ndr$&DM?`p2CjRM(-%6M45JQYFDXRY`DTNs{13MoADwzlhw2 zFfpQEe0?(ue;W%6e;bPme;e6^KUVQ2h<_VN;@=)BvNB44=|Wtw-(ef70?NCtX$caR zug^;kJb-Zre)^f|?)n|AV~&A>v@0NBkTW}zo4tbX()x*dDLPcmL(X3vl6rmT=_V5u zT)$}w`q7yE^pr|MA8vZRwEv2G!l&bbj&tbEWF7!tAY;`C;na6O+&pcwzeW@O8t@-r zRJ$K;n$IW>{nY8$`lNI9Q*GyGeD=Dd*&Skcm^!5cSkOx52uOdON*}1Agva0Plh=pZ z+26vhkyK!V1V#57^ilw#GrAu}MbSO6#=R2*`MABocCZ8f!TI6k`?F@XjG46#UxFM6 zU6fpokX}>(b&Lu06Ilmn}EDow&5&^2gZxvJ6IpeF&-&2S~ekxscQB@KTNTmf+?(P1iOK!0^D?4DKXoRj4L zP6eht`2R9|0Mq6FT61@IH*)^tb}g6xS8)aOzm5SbzALm;ne?PqCidi({#*t8hf@Ko zS^A6KAQ@Rhz?ho2h)}Zs|0e22%@IseOfTBAELR;G)El#t(BXYYW2M4H3VcKD{GxV~ zCEaJJ^evr&mYS<2$(B5E^{djX4_+P;`0wc8rTYi}J8ESsj{B8Dp|)3Es#bETsCR}} z9^BS}jvwx(UL0;_Obvgf&tN8lH^3`w+1Vw(PR-88!Hh=N1%?|LMwfbsxV{BfmQ6=m zVs$!GSdWfi0-y=oM&BG^EKsh%X3gM=Yql}QjfeZBhST?6@YRq%<O*zSwQ+co>K^Zv7bvi@`%1+ZSA%5<(wR??e#uxrQTGS0 zVt#$u^(Bx$&ZgeyUaBv0lJ)2jC&rF$ccUa5py~k8E|o0(j=mkje7X4lLWIfLNKTe+ zN-0sYbTK5!UaXwzydf`<+T6qvT0;WTo!M|au~4sdZP~c6(Lrv(CEoxe8P1UUaC7Xh zQ@x7^V02<>D@s7pF``a32zE%lq~3Y;lraTe@?{+wopS;`mM{d-a>flq^hNSe#Oqg! zA&zW>6@=$65`beS(g+3lVA07mFrE!V)DufsF(X?*C;(b(jU05(q{PNHhLbidDPZ^- z8@35+mkue?0jo%OQ}BYXd8Tr<>>^#uV3at7MS}j(7y%0I<|eWlgmA?aEu0Da%5)0_Tzh^oC@~OI6tu&w2cVlhyG2`TikvGa= z?KOJpg$7X0wB0pr@ilcn)yB5bGjGIq{hJ%j6^pf)PdnqW=0@@tUK=Aca1zD5|`5ub*hxFs9tcAuWZ5q)({<63C? z;2N4X`kH$9f)Ez-#)3&y@5ey)(c=OYeiN!6*MJi>RO`pUv)*FOdlTsp_^2K8(GVEP zgdUE*(Evr)pbKDBjlS&~9TP@6jc#FzzDD&^SEE!NeL1;8x96C`Oa?Izt@bY+t>20C zC#;Hl^=NVjXxoT%FKZiT=AhOm(liN=$3`bY5#x`2S0fP3qCd3fQewPwt)c%ctr4KeMPnY4yV8{6#ngZ?n_ z0}Cl`ZeE+4-Obd>#l2s!9&xoeF+Z|M=Xx91txPpBZar9(rh$GVX!C^^jt*{UVg)3DkCrf(m*{rPEG^8W6)w);dSSTgV6Lo zlGklmABUKecsdD^cYvxZc!c4oTbWoDXxd7nUTMd2$JPCsxaey`3q09Oy~Iynz5f3A zU;cLT=Jf3CzdygYeE0YFKm7O)G12zU?$c-0TD{SvcWOh5EAv9Vfk5_A4~#eKSEU5e zmrJnh1Ahq;w(fA&6Bdf1orQr^yj(f^2CXmg0`J%t{J1&QC$XzC5sMd>5MG;QPgWDk zAbhJd;DiR9xM#vZWX4LRQ4y4@?E~v*CuQYQZ)RP#)G{nv(o`W?mo0%_6ci#iYoUG% zt!1zfu*@L1%zzdZx>!s)EF)Ti_QhZJ(4~h6<1J}KfaqHJRtaT+B=Vp2DcM zoCqK?|G(O<=>NC9yR)0y|5kAY?0+^I!kA1J@tV#9_W#AZz*-&CSs zVejjwk!;y$fVg1xbkhx81BZYtOb}L=MFN^By+x z>H90ZlIDL{d0KX_Vj6~V`{%!Ji}8PVc5?s!)m&-%zY$;BdCG!ZB*;aAhb|IipV{ex zws*_wHC)g4$Z@OHV%~|SKI*VoE9ewv8^2D0P4QGGY^~$NLz)UC1awKqU43Xbr#@vE zh=q;bK=O_;Y!BS1B{*+8q*C3i_Rx6%|L!rb21;=b?GYP~P(c{iY3>@&L7}B`9VLws z^mB*C7QD2GPGi+LD`GFBM9KNX?GFA6hbdM7Xq*bIw5tVzcJz#g*c5%_C@K)b0EIqs zw9(l?W5EpQ%MoS>0gO}neuD*R<6dyDEvW{$R}zi@k4@++f_qF=6-*XGoGC`}_$n)r0PJe`7a zG`>O=mYJ+7QjlFK2rK1JZ+`e0yBPiN(TmOOnH`-oCrkmyKWqj%@KisI)%f)&_0zl| zNsnv%f||-%i_DsNc^8> zHIM(Zk}G)rD|We50a(wa{ao7r>ZSeeEld0EvF*pFuZ~ZlXZY{agHzct?#CC9h_FKX z4_zE@2JE70kiW$bU`h@>OFi`c7^Gb7AFcB<;>!zuW+!K_Yj4?TAs*Wvm^I>D2EN7v z)F1ejH2-6)Bz;nG^q#SB3=qluzq?Zx&;Qu1HuLk}S902=ZWMJs@3=kM+ zbQ>0%u+GDQ*~o)J=VHNw7Yo96LI3P`@}1FcKl^KYHr*TY$qcvn5PBN4;~v(F{bZr~jnFRdQ}r8d z@?MwJs+3ew%f_^E&=E8Z4gL!?{(KuO-B#^Va(-BO75Aj z>O4ds8#LXXp9|2%$Z#B25D86RlbcCw5NsAPn(j}*n_u`%x7X#j?2c*y+tc1p^`E)U zL#IHjX*G^w1)Z6>C(oesHP1Iy!uR1n_vU z^_g~lbas03V@OXE?(Odop(Nx;PoKv8*f>eIyLuWj+ZbBVlIw1_QtVJ60IuVdG>eexX;*|+CWM?(kLy6o&*x}Q_IU!KF zS2zn$ftnswUuFXq9jlqbPeR2H z?2O_&YCK(8=c;Skw5eiF5U(PX=?7~NDrN@jg%|F3zcD&E9b0Ic01Btw@Bi2=`WyG$ za{t11cKw2RLGgbHhR_SfhQI>-5)2#>C=aUy!iz<6i^W1d(EW$Fp&F+ircw_U2d~gk z%VIt;)Ey-5z`4ufm(eq#GiFI?d1bj(Y9iw*<@WO6=v7M7Pi&a(amH{4x^qR%HCtWd z(-y2R25fK%#1opMbw(h1-oSjg2~*z|Exga>tQwK?>jT$?c6|Qs;v7=L-FvuGZDBl^ z9LHP#89RVI^oVvuOzz?DPXB&zGAC_#liSuDM50s$Ub;stp1-C+cTI0JE!^Gj+}+G= z9fmE_rg4mE2o>w2K4XVMv>j`JW5igWTsdNYhemKphaQa-{XsmoMzLe|BYq4(Oc{Y- zDxor7+bBQwsIh9m%rdcsjO`Y$-f| z&SRYJaH>x2OK~=4<)_SfdiLt<J8%_dzh*bgmZ7gDQDYuM@BT zsn)6y`_E1z*Z-{Kdi2d!+Z=58kEV;RN3^ZHGtO9C?AB z+&wBMe3MFb^C`XmjG>CbGl@Xm>+eoM~TF`)mtu~}DcJ8vLiTOsR8 zro1bPnfG9*0ydJh`68LW!jp{LBLhDN96T|P8l@86wpH~k+-=!0FoCWAX=vCgjx!y? zOaKF`8|89>@fauGA?ef~`lJlA3-ADSR7S^EoCdBWnSi^SZx>3L7{a1rN z9PbPAG+!R%%Y%orJdgQ zxxF&G-_re4aoIB~G8B!s!O5X^aB@jw?zI3sJA(&x+du>b(4&OpzuZ=KTF4R=RklX{@?X%t;3}A48E-n%8+;1cn zO&fH)7F($C)0*3Bf`Qd;yCb;QuxLeo^HMu}cdorT_@PYN7Hb1s#|N9jD@3TwRLJ7R zr(_3h*ttUH;B3H(!#xq`*$}n*cKx~VV8`2-7bp%2lfJ2_Z5#T>z2JAx8eyDg+tu*z zMiOj24R*U3_>ex?*{)V=2~f=hs4rf_)9L^E%5Vcr2U;J-Rrmyb%=Aw%e&Yz>w={3F zVH<}b95?7+j!#ETczE6MEQ~ya>bEpunMO(V4~g_}N+BkfQ%-GQM2Pg<;j z^h?uHvRY@OR%yLbEBOv2A%5lugz!`23x2(UCyP9`b_wE|rT{H6Kw)bwwyW92do_crBB40lD-tBpJ-+6cY-rbAH zmw$;oIq*`y^zIJ5yCd(e75Va&_wKcK_q}&_?A`rKy*Y@r@ z-d)$bGa_I1ymx)??#jC}y}Mr`Uw-u74ZORdcQ^9xtjL#R@7=H7o$cK@-rXef<p?{qEg;@$UY!z?XDH>)`z1u49fb&d4Dtwsprnpqwo#VLB*^ zZY6PpY@1C1ol-e^HdMlp8-D2zyflD$iF88ALNjCdI4L$RhhY2xbS|PRTuF{W>k=>fxFWkK_u%mtOpY@~@Buv& z)***)F%5=dpi<zTFQll_MEE@_K5kH_H9l5?lH)}!P zsrkx$^lBMpZtP|%vrpr0(OhL=h!S=bC}F2e1A+vX8y+R>$SL9GL!(;%&}i1+znvKp z!_EKu|NP(m&;Gmr`D}4&*s0f-(X!S03aMeI*<41Mo3)je`RP*1yt8Bq4lKQr2pE#! z;$vu{y$qJ+7guI)qW#P9g`9G~`%tepV63Ra-<=P&-NuJ{4aT(X`U|Au@BWAX?SJ(@ z{O|s6|LOnwzkjhXA@6Lrwq*@mmp8CmTyG~sQX|)wMHoA~b?I=dRBqb5t1I`@gJ-Q} zl$()5rgAF~wXZ)&BA4}5G9U@m>h;UNMTO4SFYAq3U4^(Cwd#jP9a??|2z+;k-q#xUcCdDf`|yaH zHSdEXZkHUEOxz(YZ4!CYM3lg5Ppgfp%Ic}UU4>SLmaf)5RCnOM27h;}t6xp2Py{RM z>L@~GMb%U&cerh#{LR$zH#1R2NL!yo88i{p@ZIIB%2TCPbromrCi{CAt7{cbV`aQw z^q^X9y2@VC2+=iq`gAaP9)4Tnwu;nPlo*Qgr=R`p>j7hzKCw))P7~1ZlND0?nHB}p z@$Vz5b@K9<(cMh{v0*jGJ_6&^$q42G}gGqpq6LW z1_hp)AKlGA;3epB6EcfA0R43F(HxIy%mOIVb98$gb;-zb4VBD(>b2IN@ig4Xj?qAo zdH1=U!H2^U z=Ov8^LOpybH6Ux`K3}=d*F*OC%6uZ=Q#EHXRVOfv_e0q&`g~#zjl?)Wl9T!T$Toa- zEFNIcW*V1)v$xC2ZuAjz1T)kod5h6W$l=5uR1Q&dq_-`5f`?9*Jjq~hFFXSSj zg5~|BBb7ob&;LVssrP^t_&d+bh<2zmHbxT-2)x7J_qrO2dN}m-x=sQj{sm&+3kxKk zsL?kjG)1qg&&c|>tZ<$z=q7q~#G)Lof9vMu32yM_q6K1IwM-)K+?+QjpP-nXV4#4& zn<;y>O=md%o=HrsBglHq$7TiN|98h{bs~tnrRAN!iw8B?(Y)WAT>7i zit-O$Pl)&NRQ#Itk|51}2LiDN^jiRO%)+s(7u_0TbaCHK;IJ7+^@1Gq22fD9$WJf)byl zNIfLAqghE0wh1)A9sy`l(x$uv0 zW>!^qb)y^KfJmx)cPO&EKC`kiv$FDof+(Gbokb>gO{Zazr$~xz@GzU)6P?~gXDfVc zHYj}g;ro;Q>id(|m5crAtFzO;RZi9(3ul&)Z!9adS>sagcz)&FotN|wJRwmhZM3_+ zTSAF1I=RlH(*P3np2Kly-Hmax&ZPvi(crqxpP6g1hW#3YE(nK4U8e7W&+HeLWiK%F z;+i5J(duo`D98f*yi)la+T4>cB3t2_*9Iv>sV)EM$rpH;w+Kj5qr_`n+qlMjO08Qi z6ZJcA0H`q_Rl0f?KpwUp5&3l^+5!FYdZsp`4u##?hbulTn-07iP zC}dW);h=LpZ0oeuNK=H@wr+p%3}Stalj8?(dkoHvAL*lz))f7HoL(UOiIV^Mc`Xex z+n~Gb`2X2rF#cOv%f|BmN*-1J4>Dx0$8Fg~pclXa3*>g4C+tAR+6M8`bR0cC9K?r% z_;3)B3cyD^{Q;RMXJfP~U$}IOoImZ`YO4-y$b8{!z}>ioj-PAgSsjGSEc}yBbD3zs zp6#++CcC2+c}Yd&H9i%|W{S%F@*t1{GY}x35)cpu;xetvpi%3r+1C-P48!5*Y7Fo+ zgd%Lsq|E}t6;BIUx2076)?ifmv}^}Nu_@?APEe0 zt0eBq9k(%Crbc^sXHd8E@R7hCV_JcdV(tz@$pxnY32 zlP0(7sRV{Ia#9|pf$60P3QBcPo(^9*?f#&kHW~-D`-6l-Gr8wj`17P#7*hA8S~oXc zT_5(tWYP$PF&JOY=d#6ngY-1ok$CUU=U$+G=zL=AUlR7m3Y3TZMCpG-+!c)fm(I_b z17K|Y|C}~t|5=LT|F7gx;{QM9njoD!$IAFlYndU0@NxqDo8HwshGSIe7j(OgNyPnn zqV_)=->(;B{xLTHd!bMW+J6+Zc>k~D@$PU)A9p=A_P-XZcw-gs{Za9bv)4vLY^(Og z28Qz{^Sqj>h^`|onPh>_PzeV*XvS)2?CnxBAdwbU2f1p!Or2KDnU|-v}i;w}v z@PDn84f6j|K3k6Y|0*8k{`aN3=2t%}K49TuKz!31ivjmY4466v(3qRv279yj_e%Bc z=}F~c@9ekg8;qCjrUdf#QHX^jXV-UyzeLmjdZV!#`+p?+L-zlLnEtQiQRqJ{d7S$# zCj37%;a_U*H`-z;Mn)fSY!v^}KkQlHusFt2NV)(VoW6f`T;XlFFORDmEwhKcP=#c6fYIm4A3&PY(_`F>qf2-W{C26{gA!Wk4>k2%Jm9Gr@H&$0P$7 za=cV?QWZ1XH6#jCO`FJ5Zk?cOb3fQdI-4PRl(qg2df z8}7N+H=d5s)WgSwxtfTU)yjYPw;n!4>=@nkPsAR%>=>?PZZ zswdRKP->{enrpg@<6n2&adY><8|HN;5QbNGGS0sImFBuYF21l(4J z`)%}mCdai$9w$eihp6nMGauo^MlL(qt>4ef_<%& zzSf-%r#{*&2f{JuzkI$Fxc|#(aL$O&f2(+u^B=5q)m!QK92lPiAJRE+S-zf~j83z6)y2rrUUFh|twbewCX?X@&}+R43qes}DE6b;B#-Y1 zCCIjkLaR6_#+#5LESxC(luSmErm?tVko{s4R25n^I(6QrDh^Yx-y)_y(A`wVQ%y>M zgpX!HvlPK2d7G0=PzlHF9kAs2hBt#p8|(*gs)dI%D4rYv98@FlT-55oI0yoYZWV8+ zMfyJQ6>y=O+?hNm`f&ID6IFb)QJ?Yh-xi90b4Y&^-2ayX`u|+ET*$@p-zpwe{@bd$ zD;-OJvGf;9e-B;y+lrFyw&s;@+(!IqM}P}o>#YgI8;tP1>!U~%q}!pm9TQ77*oqsS zT1WsW>8N^Xkzqv2Kt9>VP5BWf-h@au3zS|~CA>_j|H&;u|5F;W|3m#x?EkfrXA=Dn zaw_1^UYcjuH#C+EV#y$u45pC`#Lk&SG+3G#FvQI~w&kfI*v2#85ncV}sdW6h94-*J zwtuc;snhRb94xuG>&`k>lRL@j8a1a@bGxM2h)_l4ALMieVP-qKr<0 zF=GkVeEe>IGDh&n&q|knP{z6%)L*yP;YSmH80+#+hClN1N0xmH#`Fl0WYo_>jYHSm zQj&6G6^F-EjnV;OWiO@(k!|_bi^_r%!p&vYdsk}o*9EVHmR-(TaCnFO7_mrhbvCqI z?x%aQY=_5tudBzE!;2*@U3yt-H+~-t|9EI?hl!0a&mc1z4a_sOyk*SBTX3<<_$~6f z;fK0unf)?h;?p*47B0N?K~5E7sop}Xv0E;l)~<}&7sHDXDwBzV&?$r(qwb~caQ(GM1mS;|5MJDg6IFd7RUcy$uk`P>E_Cy zgRahcwq7@JgTWyTNL8nHrJ%nFghg+mP2t)L_T-P_)BU~UO7-w;w_(H2Z)=#(1e<%} zenI-$u{y>MZlsRDecs@%S87dU6_fST4Yt{LY#JpmTsInS6O0+PD{IIU64>5kgHNm} zY0PG7$|VEXRKr{odD+V4HTYwV6M@|)-c;Eq8Bxo(votTL)+cD=&p&xH+7wNAak-|T z8RPeVtCpV6{A=v}pEhj&r4?iU-<3S7{;yT5#^ztKnlD!K&9CNL$!*_=n>|0#4psV% zlc{~=VCpNZ*#72zJmdL)KIcQF8TuG!|6R`KgZw|M6=VLtibv)D`CRqm_2(%>03wvz zu^7Y=!@K_CNSrBX&o#L#0Hs|VY3;3fr z+m#peGqd8hI9g3RJ&;3zV0O%&NlB0FARG>G;uZX{hd=1gSMEFdap(uj!r>fwQ=npm zo97+DU4uQ%y=ax0rGzUnKA}h!fm+ngNX%L-B9MlcR+*K&{G-ETfN_ToLAn^T=QMjC zjNEryEKR=!#$`5wJ-7o1#m@=F>}ln{W$1r$A@W}~w*Owq6OjL6{ZB0R#bVzNV*nmF z+s~vXQmIC)Cc1CWl=j~i$>Ub-wSIHLGq+aQ9n%e{s0Q zFMu=fYkDi}8kh=Ab{9-V7j+>#el`Z_`{s>Ua{`}Ry^|2JmcqgfDgj{FGPytEPNgbju)FRsE0~s;;0_qSyGzL|7R)uKc6oS z>3_A@{%{x|0TG5>!^3ZRhzz(z-Z9UmYp;E}wwaEIir>HLwmmKykV?zm{7 z+O4^!xU{IRTXE3WAK;l(|Fh!z|6(E5|E%PR@Bi<>{l9OE&3OOs-=+(^|KIX$|0SIN zN?Li?|2r3-|5ox$aQ+kFA8A9!kssqDVSFTfsF5GHqFvaw?q=M_{HNR;u^+c)33oPo zth23vGnRh_&_rTdx2CN*;*xDGJ)q-E;GHL!+%SNt+o2OMD0j9*l1I1F90^$cC{>?v6Z@`Ts2U{uhJ21^s{Xas0QHJi+`A@%?Xn z*pCnU59RGJekE06?uw>j0oex}Mz9OeJW-13k;m?HjpR14m9Ls+zd4}viWAQH*|6=j)#})q`n)&DVjQ@OR>^aeoWPJW##S^sui4_2`0w7iZ{Ll&j zZfg^+0pQ;rk_tezELw#QfclFt$<7Y4*&5Vex6u~6i9d{W`6qKNwezzX!*lDS8Kr#1 zbZJ@Ig4tGLp3~H*wczj$`7vUV-0Ey-x!h0pWZ9-uKg_mtbLk)E+egDc9@^T?qR*IZ z8Rt@H#9MH@g2c1C4QNQz^;(dML^e68j>LCnh?OMwPDwK9`G2YTpG&17|DRkO|79i5 z@cBPB0F96N@iG4a8GwFoU!OVCMXOXPP8YpsnP4LOzxmuh#`}Ndg89F)#d6I5SMmhx z|6=YRbN`t8KP2uyrTfSDjL-AP16worer#1|aQ)c&&YmAzvp9ZiNxzS+*zF^JR`X14 z|FMkx&-v_7{O?jM|E=U175}?u>va=p1rR|I_Ii8_a320UEb#YaF~1iT?t8MqPZaWd zWK(m5{r2sw8RLHYcjpv=zr{0U{`Z-VfaA`8xzdpTSH75y_x~y$_59bWh1-9{N5J?9 z7#{(rI|8ocyf@+;2UOc1**l~_$Vrb&`+=)w{&Hd0%(A&jub6#gX|Y$#-gIX@)eaq5 z=bT-@x?Ocwv?JDmSYvHZ7+CqDmuzw@7O zXU%y2^Y6}Ood34w4gWj-{;v?U|H+n%@%~@Q6TJV6Pk-_0FFyUn7l04p0`Lw+{=FOb zfpOU1_z65y-v8y7r}nZo~@GWy1@-?2~_3x%=k_uX;*b^{;9?%#LGi7|Hn zzL&nIvHSPKSi9K$``#{N?EW3Qf3Hk+GNt|B63+ixNy`rTf5-NJD|#le|BKK6@%cYK z|KE@E|72%<&I*Um`SL73-x>e?h%^5Cj#;x{py6lz(0IpvUPZ{2JnHe8-q7LfUxc%N zj=j~LuV1Vi=Zncz0Qm90|5xSpMA`t=%5ie(_dOSV{bLN3eJ7MQgOX;{R58r+Sm|?_ zXZG3PmCG(4V)$|OP@DY7JR9WFs{maT*zj30=%zif&IZNo14O`YBM2yEP79%+qsXL3 zDB%=+h6iXJe>CK8aQ@Z`Ie8*~>lSeE$5;IE1%Fuh<3>4?^8)nER8HjLJiY|t+={95 zwA6V8AY1Y7SRHx(j_8KZL!r+P4+TdNXwta-umn1$(9=`shqpggNTOpJy%-w(@Q{#* z^nEd1m~G)EzNedY$%1*P?jeDl;x=<0#2!l7bzf=f3g8u*SndIk(T9R+-$FgAe+UQi z_>wxd@4wg2l=uIu^8YU8WB<>UJhA`x_w)buN7kCn|J%PimlXfY^$45|$41-#`T-VUmj!j7AM$Lz#UzxVmsk}QSW`k>lNGA)-c6ia0-^aMf-9|6 zZ`l>y(tV#jyR!BA&YSj*F5)akEz8)o4{_Vx(IsEdzWre~?j2pmWmq~)aIko5XP7iW zNSvWIwa(5Ay{UH+3p-h0AHJq1JsyQ@*oo(q%dTKn;+c7JA)9vM38q&vL;uuR`0gDy z!^n+0@no}ieK|+%TzwsNrEGm~#16hP26`P{wDlGTgVpbK`_x9GWdSGeG}B!RucSNu z_9Zmo?RD&Xk994_?3vew_&yzsf6_T{^BJw6m9ko~lv|u)Av@4A+qqo#xuTJBDKtKR z{>efrz@M`$eNIHJuk{&%x(ad!#wg-mv#*Z3&SqZ0!-qi*4(|>*n0+%H-s#O`EO|2-OW91B z9Ic@7JUfk?r&P;MY!x^&FDM#I5i49)fU}tD1gKVA4elGuAww{M{4~ps6JD(<$5;;G z3Pt;6q3^M=98o3$ftN{wjU|y_KO)XdgPTjH!Of)!G|LyLo68}h0u5J!e$5}13O1J~ zzOCRS*IW|$TP5lpH}5v(>x`g$)FfW?*Q|aAUFFl-&g4_CL*snnDfX0FSfu35{1cZ& z#YlHqVOEH|J3T-8u=(NqNCHM!G;!x5z8}%wZ3ds4+!KI__M|RMMdk!TaRE*eP21{| zGi#%zH)omBdfh|sVyT>B+uPGjihukV2q?kQO#6)UTHjueo>?4LU&S7|jaz+QJ_`1h1tQ&*eGkYEA8;HU-qC@g|-Q zZc%yv?g2nUUE`(z>Qt`ii^RsrA9n_-BV6*P0Ps{!@DCqtm+g8##mY?KEE$vG8J+we zK0+^!4u2PHy#BNi&KKwizU3-#R=D1<3YwMf&1B)MCABw~F>bD8hCN|7vPss)=StV+DC z7OaE+zF}b|z9^Y2G|Xu1(ER9;#T6Og5AU{Q8-L{7A6@+M+$|Cze2nfj7u9Rt?Uni} zxIesJvorUakLtDL_DX$ixj(4a^n7zIMD<$pLs;{7xYQd?E!;$RRF&NHRr1qUDJ)rH z85`vI%CLP?TNK{r#`o&&n}y+RKC0KS{>zgi?^L^GbgzcL*QMTb-~TNW89QU* z%`-N9)7-qK<}UE?4^N;7D==!KMV+taW>Q=84L4$k&Nkdg?pAh(8!^(UhC95qXB%!L zTQn9r++muqw8QrOrx1}*T_&dx<3fvlM+z}JI^D0D_ly$WFW@eMCfy5)|D)9OmgQb> zwjZUYw=6LSpMrxgLaj7u*vF+RmI8XmC{5u~)l3T+!<7T%p4c;e%`PS-y1j!Q7(@Qs2^|0sYCe3TXK%X z0rz-QE-59!#Lyj+mf*qeWVJ$0BJNwafP+82 zD(6x-nSQ}{6m#juEkf_i=;Nt-K)qifL31mOHa=!u)HN7hq0#H2*1dBpG&3)7hn|g^4J%fX-@=T=(XkF5dmf93@meLQE+3PIXTZoX-sA1^!*b4ebFD1nM#t); z_s;i^jwoxg4z1XZ%#rO=-p{Cm{*=!a?51Id1)mShc$d$ZJ$=dy+Xg&>7nP%vzwaFj zee$=p@14Vao~POAx6I3Q!yFjSCMLCZHUYn#Ufs0l&vd_4OJ57fX_?wAePrP&l?wDP zJi&i+rDEwXTE491N`+jZT>MKmr)Benzp(70CmZ(kVXxYZ{l&Jd-l%fpzTeYF?l`N# zV5O^ar8kmH<~GmZuGqJ_x3<~5>amUeB;`a0E~ag>L)^^gR-<>L+Xg$d`klItl~U}e zQwvXfPy62yRbH@LtIukBhuKEm#65l4?-|VOVZMS*$|qkp8@JewiPCf3u!#r&L1;VU zQ^#Ze^e(<}u8canq;{}I)UbD$VZwKt$@`zY>_aq|VwR1KYybsw(|^4=WllAc{zU6{`mGzc@iF}Oo1I9U7S?T z&)MPW8QWv;_RcPj_TL}xow0ZC&)%J$SAedb8#pWj8yErL2CWeQv2OHqv*qw<{|1Zd zz}Q-KcBNk%u(&nDyoQnKz!ST-;};Ga(J5UvUC#CtFv8G|8o(id!#FU+msh=B*LktI zd2@4<0cw`9?B-^Rx8iL6EEoie*0$N}0iZ5#*(7RdFC*Ttv9E2K?xonOFESO!HjFvKF^hCqjZo9)UVFxjP4=f-cN--|x4(AgDFo z<%0X!q`9((kkeqvqO$l@n#g6P{hD02H3*gzmPmu$Tu?vf zt{s)bL_50DYTAbGkXq%CF+m}E$OQd*c=U`;=vSMns)3jhQV5hQ`9P{Qo2{8KRX9koc?jvdG zbxQ~g)KOwUdll*+!|=$R_`K9{#V(Yw7+K1duyr>$%VF{x%(#E&&J@+0BmxcJ0=x*i z!GCJdHnjij+;70lN%=}07?Lzl9oX%F1dzby7m0v`KN4_X*9^s!fB#4q;wO;znqA@P zXLOCGSjk$)dGV_9J9yLBHrP6tGWqMTbe_ot^-aboH5w>~AdfE$#wU$r3J@|c7T65( zawerqDmy2bsc_G-gO2arsa+e$=L3!PmjqJ3f>McL$(Y~U3Xzd2{|4)ijAz{68 zlyrNG`yHfQRb|fVE3ggsa7wl zHUJf66z8b#H9r9No4`2(H=$*C10W);8lH=13w?+?{TU*#Cdj50_aTXdGI5eBqjMZHGR?2+ss8Y1>;44h@eL6%XQoC6JcLbdN|H_IjPT}F;nk}e? zpG!t;+X0a}!*;+npn54tqLJ;ouu6@i6qG80uQ70uDvguX(rM}{K$*d?_TF(S!RF;H z*1|PAj>t`}CX3yEK~f1E>P8j zy_@RFwA1gAC7|i$k<$m?Hswi(8{hi3ER0-$+8x-9FW-4?c5L=c;x_PHojEt(^T^0I z;qEH`U>d~t0`tnw!$Lzz`|}Q5PGM;on0sgSLq8)e4ne&jni5b z#OgBSlCBcO_8dhxuxPdnfqb?hrXq=XgcRFv=4<2psMoE5NyV{Z&}B7f8aj!#xN%xS zrGommZ9$1Avch&=+%QLBU{#;D-VFY@4Jm(e(hVCV#oN$sg{F@y~Jlha4K-a{z{q(L{m zMNWt2_HKe=`H_fYklm(d1t^M)@HgYPlNOgm1=BpQ>-uqn|kOD_w37Z>iK z)5|Yn_EpqIc`JLOT6TART3@;?@-{4*7&HDQX(asv(GRG&5hmrAHQNvC*%_y1Ek zXMRVJ#gRs#0N`#z-L&eX`5mug>Au~sF~X7f#9lHY&slGN02_UiP`9Sw-Z}P~m2k;w z><7Wu9eovQ&fbnS!_J$ILu-$3?914*6#p)WDUZqOk@I^e_a~5Ja5$eYkdxvyY4J#5 zH``f8_HT?TPa1rf8n|c1p0id0?hi+~mu#`OD)w$%%3d~Kd?&I%D=h15-RIlF+2l?0 zJ18Az;LK1FCzfzu8UO#1_elE|%W(nHP=_?Jsd&kU%0rG~{|ES{=xm|qPpeH*#&-QC z?DX@008W0q`^WxPv@|(J_)!Y=C{?%6kSfnDY95VFWvVfbak9)=a}?`XS@5rsdPe{A z_f6*-y3$C*AkPb5q>56RI=PD-+mw*966_X#e21wk)$uppkl586x4TH2**{O3c_03w zMf_sqmkVt+%J&^YP4^zZ4ybZxdh_pCr3I}N&%Os+84q1W1II9hKfjp%|Chik+Q6b6S7U3hzPs|-R)%ec>-)b_&@(C& zjJ@p8a)leVv~ezcPYd^2-$)-Gr=fD>WDR$tGnQ`j*Rva&nepu}W`QAXB6y2bF)E~u zCP0fSiH^G`U>f>gx6aKL(h7fbl1QDy-_Gu1f5(erfmr18HqeZali z{s`b(FL|X;ImL~rmRD5d->f+No0eS9GbRl)nYnGz-0(h3t*cq8g&?r>LA1-s zJxG+HF2RQ(^Hn$yTvziaH%Z=PmcI!dEsX6XGv!G-HN5EOz}3|d0FIrC_VpUQG$xW^ z+JxF(Q?2C|q>g@=zTXV@{(ob7!W#aL$gX%}rk=LMzN$Jq7dxAVze`5AACgj0a%Xcb z{`nRgmq;&9ZA+(Hr_Fr`RX!!vMq6my=Zo&YUt!5zxC8aV(K!B%!@62MX~^C%Y?NlU zcF}+E2B!1M=+sJ<9bK3nU~Did##Q68&4K2@+n9M_{FN!%9%7$PRy0dpL|6{Pc}8HC zd9`K!i~ckFE)3$&WPM#cJdqfKW2S~qWoppgc74kBLwSh&cBYX|LNj#*>_b}sgh2?q zX~hs7{IXk=SdXYOE=+@7EZuficaOd&Wlx>n%k=cK9G%ZbKD7*NH_i%#-MF=z7DXdm zL;aK74F*IkZD&>1RgeE~&zhK+SUR6Ts@j2q$i(qCPHrAvBhSmN?X{t~?~j8n=I86L zwT^`cn7CCZ&`=Y7P*R}HJXR2*<>(ySW<0*D9eqW7EUk*^>PIV3j26?h6$U2!RihWz z&wc|^E|ckE&-EM-F|2h(&@^xcT*#2u`|_0wE_yb0J6l^OfmNoItxfAY)vT#p@EQTC z4K`0+pv5CvPm>q_;-0yw2@DqdaNn;c2#NWjaeh>vR8i5s#hU+sxUlZG8{~!n-B3!Hr$asAF~>l5}G%=WWU5q>iDx>${!+iKJH zIqqjd{en|8Z5|#SP*HX09~0Nm^M=$8>qx-+=ihm^c2pxv>}(1@7d7XRp1V6qgwaKf zI(XyIpQA-JnYtjibZ#*EbK+g%u3DtNUo4jy;OL>D}o)LCdoif-b z#{;Luy&kaj2j?Fd8Gc``?R0N=pWbiV`Cr8FqK^5l(2XB6HJyE6(E==vyod>t0QW;) zKW=RwdenEtV4g67k|+f~JGZ!{Iby>ix~Vc_n~5Z-UmY)MsE<$p&&%4?vdRZP!vEJY zLuPtKZgMKLq$sl*bW`Ojr^2!) zgeL(_*7~Bi2wjotM3W`;QCe7z2h5lOA2{j=v*Mf7G)Uin*4lX83w_m9Enr0wsj7<& z5m>m>N|+(42bavGXw^qVW6@`v|o>Xp*2nb0T*0q)Ue#`nc<;%}+!0w&O!1 z^$8kMPJ@}o&JTc9>ne-jt1d%B5_8G4ViA3B`Y)sOfs$;Apl7kefYCnd$oG;2Z@yL} z9M)Y8BqLq2MeUaiOW{EP(dP~IE94pE9wR8wV2a-coy|Cw_=eX#RR{0{*}`{}O5_ab zSf!>#;kEoz19pucw@yKM4SgIDZ1mnx8FWew1d<4-e5F=9ezG96_^wg13996)6#O}{ z8E>9t3i~N-9M1}#dqeSCVefT-6>)DjG_~0GaMwu$<(rbya6f&%?ixHn2km;^n~86p z9#d>ipR{~>)H;|f^`f|XhDE9e6`}2Tz&n`EQM|{%hEBs#a7R9tcn3$pMxgsCHB}k4 zqKSBT_`!+RvR5^YADOqmjjVJZcIuvchJ%K;Q6D)ljQICJJH-AS@@%lJB z#Uh8G&5IEaru2WYgmVVdc$rQ5ZOzTtLgQIZ=5q;2{#l{|mn2d}eaEfp_2RIOG5s+r z9zW=vSathnl}Z{dlBJOc-{yl>ahPv&XhE1yGn*R|<@JzmTp{$EE@r zQPu%c!1fRiI}Z1H)yluYuYC7R{(Es1kNB&UUDP}}A2BDq>o#9NN4*=;-x4ZrMO3?8 z3hD$V^l)OL1EHHBo^{(Bw|Lh)hx@BJ(aXlsdd|ww40NfLnD*{z!fJ@x_TB8n=)|cKID*_?9R;fd7)PYskEi^` zEW==$dAy1j-+ar{15y!#!N}K>n`|;%o}LsTudkH#$LT%c!`DaH$YN1TZDpRGVm;Wz&vB5SZvAn3B5X;LCnp)s-w5)W z#gVH-^9n6~rdSMDlOoW6g-o-ks-5e1)?BWmedPYygLUTR)7mz`y_norB`C!Q1H$h+1h}`0{c~P29#I|5!%AkVO9f0C1NZ=JcR%y zf;NV3D98fNz(c~k0W3BeI(EYD3NDcVJ)F6spym8>ayHY0k_PM=%x@6F`>Ik^1u4GB zNlD_cJ~AZOy_;D=2x^{1Uy`1H&d0A7$VQV&n?!P+g=m~lU=dq1{?Vn=$Kb+~^w&Z% zj^Gbm^3%pdiZ;sm2NJ~ zu{!=)8I{*5sMU4_N+{#gVR}I-G=Q5cW_#N|>GXJ;M2pOQDNMV}yVUxUj0;&|Za)M6 z{d~i@oCP}fUoEnKE_qAY00lh%NLKJi0=5uCB$#1cM_{h9&}|Io zuDAE6NJKhB^Au<{c_kh-gX~+}A2ZaI!iPFE+Qa938@q3R>VX+Gb_27##}<1NJ>kpr zO*nB9i)|?(B5)|?=(QPtC862wjmn)VLGrDmX-uZIwJ8lX{xeZLKV|LQ48cu3 zV}9GoKFk~TcEXQa?_*Xy#{O7C=+Fr>=+KvR^2tEjP<|!{p3ap)2Ragm*V(Y3IxiA~ zNkKA}Gx7vdXT}_}5@pigtPQY_IT>$Abv(y9EEx8==S+4%D~%cKP1hjo&nO1Gh_npH z2EZsaz{+n_$T<0)m@xwtd#uAC?y|q`S}*F|?^f0QXb9?ZZ@_CZ)Yi^{&=)0Kb22u~@D3LPfhOaU8l21gwUDfwj+IzWq_&gds47|mImE6Ma z%_(wZ`$JD-F_OK25tZ?l!8$!#2&i>31EXa$FWnfgyI3n~POy$GQ2y=TpzY8^LyTKw?c%tbMU zBnerj>0^?H8=W;Z-}8_s+_G-|hqgt7mj0vdJzsB_?6pS>+n8mfRq$hKrSrNHd2G>& zk^eb4Cm+n7)IrOD6d+7V5=X6IO@zv`q81@}eE=)87L>6?9 zDDL?BmEJTQ`D#ekr}}SOYBYr>b^#G1NiA z%wA9SEI2i}X7lF)x?(&}Z^FDBBOEFD@El1#-_v;d8roa79SG6;FFbj%fnzNyLi#+Y z2PLm%kH+L02k#7)@qpk8D!LMdQ3txF)ZWMT5hFWr%<5O(e#KzASWT0{0WfquL%_P2 z#di6$Mp4jnW)o(%<#MtvHZarz)jvJD$N8)qPE5byyE`7^t1{_tPWwsnj)zJe4GgjW z5~Pq=jA4_-{o4}lut;nS_~R)zwd~nc@n}LA^ZYDh*z*w;50KX6s|7SUb|c*Yl6fLN z=~Ft#Q#a88*$QuZ8xcnU^>5$S`<`aj_)oxmk3|5XP8qMV0HzSxxPNL3ZvhMzQ33{I zBCM~_?zS=$!+K>6~FKLRKxsle@p zl>8a3D0B&FmIpQk@C60d%gP)>%a9jT*=96p@K>)uWL%A9Q^`_U>xeg9|zg^yvNOqlYnm ztk~59CZ7ll(VRNie%OsFzR0B+TjdXuGYg-h24tI2;a zi8EMVxvI0{eV;R$%}DX8JeY8yBa;Tc88=3;qY?Yqb z^A(}utusrA5c|S%+;Gk&ZC~||wJ%t0c{~%Z&c6)-XBkz5ijO2GF2Hf0$BO~g#>NcT z@*hQ2#5!yB_&;RU#UDZny;S|sWVA7a)Q#2^+anb1UivC-VOI1)%@SOJ9O}Q(ID74p z4lu}>YxZ~A#&~G)Zx(`bo+fSOGMw6+b~T!c^J@anV?tCp^L(Q@pI(jLyvh-qNg+J|S+d%L59DyOfnv!6#i zg|n74GE)y1zeL?a^<2K*cBga?pqG_oRtz1UZB|?OdnlMq9q}d^v_g4=|LCm6;&GM+ zBy4E-Pi3~D{Fdb{ce4DyHSm@Mmn&t5N&3>Bt=w~6`B%uLHBl%1r(G#k+)l{vj`?VY zv%GHCWddAUa5!|Jeq;R5N63bPGV(v$uz@|;=jO`%1sTO5TmoGIrsR#yQ>9Jbyl?Al z-c}oUx*Nx(O*V2}%~Q!$S62L!1>6XFe#f)xYy&H<|NV=gt=WgVqT0p}Zn(yVXTv?T zP9!4S4$9bN;KL6AybEM14kVW=++s3DLJgYdeBM!EZh2NKhWM&o!R*Z)>gf*l-(z*? z#`Pm1A~32nyUAH`4~yDK_kzvgq-#TL36~G-l=^!HV?lvlv%s(TfrGQ-QXt~ail6ni zzu`_wOZy9-<-z&U{O`el7P{~Sn3*iz5p$Jj;=ARbGJW0Vc(I-?yNRp5SKMvx;!}?! zb6Qz&2B8GkJ>qxI726Ite9QJJ{X(7Tu;x;>1r!4^4FA#kZSKJ11`*TI5CN1AIr>cZ zUOi#&K}SK!9VTre6vcuxKzxV!*mLh@$hB z8J&T1o{FVqAY95wm=#5O5B$N>&|%ev2cmj)eWHh>$nl3V$H+npYB`T%YLfk77Z ziWu+fA~=i;2m`l>QI9hn3}7kIh+F9fw`fPQk!vODeos_!lUx{3aum-7xO6Q01x{?5 z`Fag!0bn($%mFI%jjI47@|oiX)@SS2OUWo%*)I%-wuD~ixf zEU|5Wj--M{zK6d{z(H`Gq#Kdzls=@GT8rl|PD&`f`iI>3G@Qr}7YLaUCP_7w`K1Gg5xe)6m!zbERYcN__J`gi>rr*4oM zqw72$Un#uMn`c{hX0Vs8aJoM)w@Z`+01q+)@A-C^v7YID1`w{luHQ zvFDA3B~fpgMr#zBZ(-UaofN=e7#&4z+Og)@i8TkfGb96ykb(miMFIc^W42ErlzdgQ z0C(MVz+Dyz;DE~Rk$_%c)3=kzf>8Wnn|Ovdd=<($n*pc$N{rVk*5V8Zq(!Fz0@S(N zZ*dFM+OO~7ywXHN4{w>N=ho&S;GE%jO=(XLJH`Dz)M(|rxGVFGqRi4T)a7X#eLclB zTCQuHNx7AY!7}VMW{C|*`HC&CXMjInF{NU{rLzVuer5OR+{;!DkN~OHe7S+fPZ?K@ z9haPOj^*xEn|7K-&Xhg{)?EuPpr<@boWNY>S3PD5EdgVOCJF}>d*m{K3P-Mc8cj4!%xmNgz39)C#@26O^y9=qO?kFkr>9O3PlucRN1C=A z_j@osa*j9}Ce;GuIe&$lm&)evA$7M^(WB4(PEF3YkGZw8v5oODaLB2)KFkp7j8SP; z>5XK#T|CO6ag%R$t`;1ZLQ9zeLJURz&!7}v?~UE7F3e^h^=_%zffMI0gTZq?(G5Xfvx9(mh!wcl)J{XSeZi1%F zK-`bYowM8JIJQQ(>lNuPJ_9Hf4wHYFz=E!+NO=Yt*qif;O@F*pzb8s1GmL#}vbsPb zIy|j73NiqOSexMKSbDe&QZ05}R}6}3z7@*b(HEh`eLIEOIfBgsoes1Ex?1igW)38Y z5I*acV=?qDf_IMCLcBy2!>qP^1x_~Ws*uS@mzpiIK33wEk;Iee9og&tC$usUE2_`L zYzbr~=~Hm**G{WOF;Enm4pIRE$@kc)<&IIP#(&CX2P@<0d9Tjp7W^{(IsO2f@o8HL#(%x}Q&Vq=O71?tqD=g*ylVlXhu!c5gU1*)iF&z zUDnw_5bEa$kcE9rv=x$p4(?t^C6Fg<9a8m0DqBZx)y+ zHT?ZJAE;s)X6rq9OZud>532}j&wT=H`sN)B#rVVdaqjmkA_;uBF}hly@8SuhSEd>u zt^2Sp;vnOn=&#f^p6jdH*Lc;WZqBtzZBb1)9`cA+=Ta>f66G{nRgGP;$-A%mo9fT0 z<-Jd{KGC{3Po$lL_N3pm5|nhI(M&P>>KgMDQIxei;GPeRLsG>$KFq@|#!?vG?xRPFFw6SDOjQROahq%5O3hmgr&ajra8c1T$Y)`B}~*?K7DPPOL&8inp4>>Px_nB@(JWZ*;q zEB?g-zR;Ji=CIfiPN^9nb2cf4_$`X3o2Ye)nZouxlrviYi?g@2qJwE%-9-%*LQ9AQ zRmca#6?b$;UDwOJd6eHxLG*p)<~gf;RReludm7dNZ)uFVfzOE=BCd;WFy{My4!JR!Woi$(l@K8tiNzN zR!%<19olJ~VcmPtPf%X?KAs!C2JX{eart?NAnviaMMmJrIkAfWP1rN$_Pe>eBL?vA z5G-5Wo`avWs+*6`TZPvbaQ-O-5lrIoIs*?9o2=Y-D=$f$Yamw$JWHV)rbGsxCZ4Dr zE+e7Uo65MDo#_mDh{RJ&A}r?5cR(L?Em_O$Z;BEqi}ag3kG_{{7lkNr76gkHb}s8EFMmd)RzE-?KmbYu2qjEcfZMG-Xwe zPuqvFFv^{L*Atm=K*+uW06HuDh zs!~GgBq2g+mlpOwnrT_0VUd{zPe-ajN&Z~-80}abRNi|_ure6537{S_dhJWD-K-g& zW2u=(GA`F2OcBM9nPp2z4NWmV=$Fo9gfL7v@(LqzA3AM;$x5DS97HO4?ICP&*KVPo zPe%}NTcU820!i&7mlYO!tu+e!Ae|K!kypX2Tqp_2u6%0+b}9=OSUwu&D@~^IdP<~? zwvh0fkm`O1gh%g!d4|rGYyMaxhX=A+-j=W?_iqQIxFH5ROvS@7LWbB8zr`Jil+*Ms zJ~g+Bdfcq;JjOCdp(um)=yHeUdH+TuuV0KJK6t`op)<kown;dBkMmH7bUnMRi~tswj)1*z*LxlWMM z$+uVtV|6cxtK%U)H!b_<9MV#BULXS4F-HmU*Jz}UTF%FmZmqdWk0o^U`k=B!XrX<* z>gffCRWzYwG)I zTd$X*G?gU;jX~eC-v2C_mhrhy79%0wPQr><Nr47-8IDU|RaCIOA2Ken=l^=JjCi-J-L`ez%v%EY)tgf2m z%^gVIm~;RXRct=p7tkR2^Hg`g?-tiN%2`~mUr1HkMUMOabBHt?CI#{F^DQpWV zLN*0!o%rh`(}Ax&I*=V<=f~twqcMs67cPOEiTT-LD-Y84)hA8lTsj+JfKX3C>qLog zJJO}PF5T;@O+>DSoksu9Jyq*<9OMTw71HQNRiIQl^Y4!%VE!zI#{vZh5c7rcm|m>j zwR;9j%jC=MJN}x;|B8e?W&;XkohR3FXZFvh(8h;rmf01?p!Uv`G$#(lSt&)qk$mKy zx27g;o_inWvM~QZ7$>TXrnF`JA`XV<@@1N;Ggk<|J((a1DNTP7X{Dd&Q3quTPJA{q(*@iVy}y0>_K zGu+Kzcl)wO)^Lk6;9Sg=+oGd0^y!+F8HkzHTsR-y0jlMG3;!2Q zT3WqvHD?&rvyp0cW?erg+&868W=kI=o_y6k9SnuVgCr$y64KvJ=s4bc#_)&eWfg}B za@CVhc%S;!dE?~xCm#3Bz|gI6C`?v4jrW!_e-x15uiS!s1Ya()&&(;Ni6u-9{jCCb zGDmM&ZL-BhiPqk?*3K@@$F?_M6wo{E;(Sf@g(Uw$%wGx+*oVwmZFUD}#l}_0PB|_n zGU3=t{}btzQEyn=`F$($!B>quksmd%2UDWd1v2?WLUB}CxJr?(|!iMFe zSK;kh*yPNpT1(V2ZLpxJ6Do0?1Rq{|o<}6A6W1-toiPa1<7@ol|sI!FR}AEdMEze8oEAdPXALT9+wG_=TE2H@VId2TIHU|o>fV}{FTB_G9SYXe0a&?G) zqxdm9!kmmQ?d$AX+wl}JN58T_J}k4FzY*uCE)=k zWWPVRVepO<%n4BN1bGrfYo;|;G1=)eR89DD_7q^%tGi9k1zh-eK|QfPktt{sO!#L4 zrBFslo+w;jFccAKf|?~P6a)SXP|L#2!>|16ngNij+kp(E)XfCwoG;)~K9|0o7f)kc zP(y!`fouE4=W@rp0H03dh-y8SArskzMIJ`l)f(8}FS-X6S}WDTO zz^bUrsnNaYh?N4vlHn(b4DxIuZ6u!dw&x&)w6FWRVuqIIvg)>LBomoh$P@5TD8Gky zDb=b21;8KAqpigA!Niej5#)g72wzEz+Pr7osxu3WKz%1#Lf)gV`%jNy*^8{f0MAWC z^#88dC~mOyWHxQe2!olSiHU=c1(Z@%!$Um$aJJFEgVB_Qbl&SJr>-F zBkRUP-IBi|$ALFCdfa>5WIUEuC>(Ez_XCbGnu!BU6%8la7iT)M`?DNnR+S+~F_bUQ zWy#L%{|#}Ow;J>iu|)`=7~nr*z*v%0gE|nPi5=SOc!DJ$p~0GV7B4AY5^+L#)J%AS zW>)|Kt-a8d&W!fH+)bzI)j^n3tv@aYN%EF!w6#VLH!K2;e|;8CE>(*Ov7%4j zW^-=-)`NGm`)xe6;p3IHy(cN{fgm{!JQ~c^bjA(Qr|HB7djNV?FFu^Y0|MI*Zr3xG zK$ucz$ED__CSfG=N2>ew-#9h2GfIL$17%Qp179ldTpqoR18`)aw%YR@88yd;rczwe zbFOhD35`J8RhY6bRDner2~3x*u(0zRs0PrwRa=V{ zgKN82#h;iIL(;lUv>dXzb>B`Ora(cvuzFa#f^jS*i&U3 zDtbMmQU4U0x(=)Wx8&|QqX0+hy1F+L6IpR5_=N}3q3?|jpM_NWfygUTx!OC6y*%18 z__@_`UTQIMqiU5$L*NN~=I-4&(VE9f_S>zLro$(8>fPS|9bgRNq}e)sT<7(P&Ok#= zUe>F9>hPHIOQc*6&%c$S+A$xR9Z%0SKv$%`=m{W=r4|cQl$J~SdlRSmRJ-6|x zzwDr&n~v{u74S~TG62rG7U}l%oZgb@Oh0Y`zgAD*P(HTDZi$= zh3?Cx^G%J@YNUaLCu#kcWMhp?;#vZ~p)*Vb6}8i_iK9?*{}2-A9irmwada$L3n>9s zFd%~BwJm|&Rrr~UsP@1Ss|#27^?LSiPK;0ld=^^3--BNri7g;@;mb0s?{VuImP3Wk zr*g47+F%r?*+YcH;&P=!MHIR!`44i`ph+!j;?~6E)2QrWlI~Kaz&B@e*{wVdx)BeI zBZpc8!2y;1y!@-;G?HR{2t9VYbMC;(-gL`}VuU&r`V7-S3!kTQ3+&L-go{n7JbMQP zjXB@#sox`}Y+X82JODWD{sGF>4l>Ph95DS6BeN@jnF6WRWwn?s@R*FZ5 zcX)j`B{HK);o&Vx-_{;}pHJ(DjWi~H15bY;l#{peh@Kp%M>Qgh#qTlr`swAO=0D?J zbVOu=sGFCRp>H0N?kAu%2qpF(7;De#`)uVyyisU&MU>9!q%{Qi^x4|_Fm(PHRE2g2 zr<8Y91!???!D4dirMDNbXL^S!oTYjhFY%RyKzK_qJ2gdHji6eUGon>-J)LQ1}G!VB=RoEGEPxYT{4dujy%26z-SJ4Kt?>){daH852Pb*SU+#V&S)U+tPNT0L>W}vLqvj zpXg4bOn%|`nd1D?B)*1Z_qr|Hs|s|wSjOb~9ZS%t&RJ5ySAa&Dqdoni^&g7hJ8PN>xqfQdg!Ap%AM8AO;1F3ZbaVaZikwAZ~;J{S! zlC+g3vNx;z3yBZDL^bYdPPA7|6}y8R zTZ6uR=X4^=$hvV}@Di_&@(+E%;oZ2MxblXx$u`gUe4A4&^XlCeFSv{2rJcwrbc^ya zmf`cHSNCNy+MRU&-(&}m%azYipI|9)a#!=m;Z_agYyAcmP!$3mAAri8W2X>c?c3+1 z*~R6YCdJctZqb=F;pIn}ui)lik%Jtt+hrimS2)p~vNE_fTR*Mi5~?X<|0jtz zl!lbi^iR8F&cUD+RS>F2;VrCvC{oPi(U9!S+}<0Go@QU<1&TXu9B1M84)KO~-8Mqb z!5tS;7tN`M_UfU&=<3Fj94u{zf`pJ6q@T{dug5-s24V`{>nMqS{3Qt?Hoy-zW9}CTB6M^|TE8^u(G~c_0*nzbntXX8WiA zbXVT60cWC)XJHp0n)+ey1cAfzg6CN;s2eR`I`33`)SPhfSrb&KrVW!+5;V)%^dVp> zNjY?vRCM7CE2svc8`S2@ym49OUh9#o+y|vMrkY< z32AFg0#qG=AyF&mbaNJs$U^Hju%B*I-?sGlwhG%fHNUQ8D)}j>}#G}5U$zwItFR0iIeCf2Z z$o@ys&3{Ef*P!?`9`(s!ggOB_|GtWULdes*7RxMuC!q`L)JcNb4>#G$ObR6l_8*Q0 zYbd#p74{m1U5CE5Mgz%rcXE%vCksd2?_F<%pY|_H9d%u*B9Jq;?d8!{__Vj*c{vSq zMow3%9vMF0h!LmV(^)^&i{$B6F5`GaagVEfJS}ERY4wF-7XA$xTcA-&gFhF7k}X@~ zF7bP^Y58`yeNa^#EerkvkrF$m=~1Ar(TDzPAD~rTh#p<^O5NKkt*^C@J3`ed-1Li& zkAPg@dzdX+>|y-#OS)pKt{o7t{IS9wxKZO-^NjdAv}OnIYhx#7Cnu}>pO%UQu=F!`;zORQ#5w{UMnBpX4452UxdPk?SBF`jxKGHBWH5}O^6Xpx!erP zEr4&Sx^gHl;ykZ|E|l`0mOX`Q(Mu8^veZRM%NYOSL8uB^ zlVVKh7_)B&;E#w{HOZ_suIm0nYg&ZKhH&_E0uwL2yzb)nk8P256`V25`n4*fvX>*pYraf`HwIouuLq$7Akyo{2q1SjO(8SbKA-4~X zpo?0{{_QFrm(BJWKyY=x4&KV! zB7RcklaP&mAPvnMeyT!FJQOLrw7<7{YC%#Ul+hDjFVyh+HU9^GQWgDnH)znRf$uL8 zaU3YaR49^Moq$0##x#-MjhO13;KtBu!BWUXG2Kn3$N9LNEf}##FM)-%Lq>eIb z5GyjNlDcDoorkPgSp8%SbrR3^)CFC`k2` z_;$uv9tp$C{L$S0r2T7)o27%UySnH)y!#7eOBL1q19mP;_ZMYRyP8cXoStXCfhc z;3^*0dLp7wjo??`8XB}t`&2x#dR$E%SlvJ0@)gwTWkv<1a*Q|c%){^qI7yy4I7g9% z;AlxRtkf+=NzU9jH#+_?C|G`rD+@_fP78_}U7!y3HicNNzO!B`DtFBu@owpyY=ek4 zN!Y&}kllZA{h?Tz#F&Zk)dJ=$ZZj(oNG`OVen}B*x)Rw3k|}h?xINHh%P7hpz0I%f zUuR6GFP74IKWaBo`8>Q38(Qx{rlBt@)f6;1=+EBViwptmmgm)Mx>8)Lo#Vbvq(K=d zzJ0q3;fDb9m zk>$=Ju1ovS7kax4$}y&IMKDOj^XxK)32YHAPj(m=6;Z5tuSV1ZRM%!gZNmCrYeCc( z(}zVIy%!FeWiABy)k0o3IG~T?{??8W5zyy}@3VrN3&9!)h&-?sSi}450N-ik@|x)L zG_Poezsb`j*giA)_2-?1VONL1hh9*N)0`C1#A;TqAWH!PlKYypa^)?PS3hhiuwW(m zA@clfj{i3gvcCkSas|morDL;X-Ps=$F{%vL@oX=c%)(A#TQ0_MFc_S?x)M0n!hZrt z&|o;P!mCd1O5#))T(70yfsB{Q$U6A}!bbM0WFHN1u<%y=couw(0D;H1xYq|S1meAu zk&$-2RV@3f5jg$F@vtS}$6iwKIsYbZWK4dkZ!0}6{0_6NMLe5p_1j;E$%@smset++ zLpCBn-_4Nvx7N_XP^B*FGmv@OmVx+5$yrs^zH0^usHZRb-(Kjzk7E4X>l=Kv@=&u5 zcw8SJr!KmjR=rW$9wRtz9hOzoow_o&ZR0I-xHYU?X;cz|gDRuFzYFlK3j!yh)Qlu( z4Gi5-I3p|G5F^a2@|}twg(nkJjEp@!KM(Sm;g2PA8dK}Tm}qCJBzZ1rOto(rH}|6cj?fN>D^-i&RL_2B?3Qg1{6db6Lo zsTtzOxnP!`N;(e}xy(M(h?RUVL~ma~XSzl{zP_)#W@nk*p5bmDJwv~ziVa>U4Bz~> zYB8qwO`t<2z2Ku&Dj3Gg-OFm-lfy&CfrMSu2J8w>d)DeR7>0r$8AHBP$B**9OVnwG z-g9wT#lW>Nn_PJ^Pqk`V{@83%fCRN^AHcQchsW!Km z)_y)x{|Ed)1HU~cXffRy?65lfnOyGDX?{5{V9$2hadjh?$>osGlei|X0l!O;i&E609;|6VZ4^sK@rSDdM>G&Yu&t-(_K!>}z0cv)98Nd07! zbgDjlSEaXEUnipA+oO~B=hc5y&Q6EQ@=lIAlpW|cqNAge!=n?};#B+Sa!4g?=upa>F5lFM}u0y7t{%$}|-!ZViTqW4~)V1%0>e^ia`bu$~=3dU{vc>NN zcdze<2zqqy<$tM*0Nmk>yw1$8GVh*bFhLUyw8%I;WE&vk9-O{SD#jUdBvRPGVKZo$ z3Zi`mCnkJ0&|?~Z#RVSV5Bh_8#0RZp259>tS+jVr+Q2X=cA+mmcDkX^2g?3101?0g zMkJI}Nb$B{F+3SmP{0(sO^&GYGPDL-s;jlW377-auPqET(J~a_QTztdqdfmbo&TYm zTx$`RzkeBj|67DJfAIXT#pnN(Jj(f>mRvdhhoAc=vk8vR{qec~PMrJwO5j&^zhkjC zI_A7%FE8=0zt#Xrx>)&VZu35wcDSwgt^$|56hMIzVqGQH&W~Q7>|MM+t5o;jRQCUd zagktmr5H`EE~1ZYD1Xs8(rdrbvh?22C3L@bgN=t?EI$^(rUZ>wnsz?{+i00RgnE*R zUmia`c0a!bR6)B)c6{*axGMirK9iUvztSJxM zsSKb24=V$Jb!(ZTRxE3!VySeDV$?0k7w*gQG4Cy)-?=k3pXw8N|9k6TR5uDJk*+;| zo~g|)3yih@$`9Fpma|&S|5x$&?tgEcO}XYkdc0(TaF3#Sc@4c=Jix$DLym-+x zdUhWJU(mHiirkgZWX$f@FjWK>e=zCz=R+&*L*qIP~}o zr3(3CR@1UuW$*l~yxls!lV|0J_(bvl>slJ)f~F}{d%AY*%;5z(#{V;)D+KsIY(p*f z|6IxA`F}oU?=eIH;Q |}+i|9}_R)0feiri0qMWQP_R6f>q4Z4 z$BPjf9xp&)CokZf=a&~AFH~GWr)C~YYd7<4Ef`tL zxk~IXf2e*QkJyID%1 zXX5hW__0P`u9b+l_L!ZDETxnrnY8wNcad!s53-B(C{d8vTc>b)gl{;~jM{`_fGks2 z+fd_8Q|FWsi6UcDI6bOu3=F$widf0|&6jlF&8I4ob#b3>yu^10?>ch(b6~E!1P6ZS z`F_{g&(t@S=INXC=L7E*1@b2lzMz2p^imCeFZ{EuFO>I($B`4jrVKE3sI6X^L*_Itcyu2DZ3x82PGQ7(2-&Ue2_O{ zcsKsnb@^w{!id=QO`Tn`ntT~Dt~S9U-NxToo4sXkv(cq%78K$Awq+^*8ewPH>CbLt z4_VH~5*SPu`~8{ewO$`~rtDH=oO3JtKf^LL8Is5rig<-X-U zk^Uc@p3yXH5gu~6@!txCA^*QZtp8cfqxygNmV6@_uK&?u{ZFj_xj*`!F@F64GUxa1 zZ<%cjc^v7=FYkg*UL9SWvkeTH1@qhJcTf{V>)b>8L|B5eDile&-XExz>F59#e_=N8 z+&_MI9ZY@)4#|5+Gi`_cP8t;WS9+yzOU9>cLwnC&zGT0NgQVw3qnLowbVCe3quS&% zH`SKqt07C(QFTqSrW{uztyZC-hFScoQ{gLTjss0TFqB+0aG=H91TCiXp+lXd$#F0* z1_qlS3%7DajZt9BPcfo&F=AatR4I>G${#}e7#aW9=pos~F!sxi|4_(ghvGk#OR@dW zN**cyAy?+Oz?7v&DXia$F!?FPl3*+eJ{U<*C3xz!n-c!ld#5`N#*yGHG(Zew)#_EZ zKk!n%o?o0*{(VDFvCAaJRI)o1j}`w;F|8oNE3G}I7=@9Q+&W%)Zmts+K!T(m_JJ{eo%W8@A7>+L$n=vqI{T^kZzj3pCQ!GSGQ)!|LCr@c$)Hz?Jg-Nt} z=>*%TlR^|zkMoQ+uoEz4ZxW#Ys?X_*n$FitWY4%d&+Xd8L2*>#dqQ9l>eFCbT$>Kv z-eS5y%t6qp<4&=8jxmu0R_gMY(>Hr~K`Amd6Atn5@`;eQs=UBNLE2rZZi*L7ftVtI zPl_`3d>4cg=_X6Lv3?WeixQT3UazFRqT%RCynD9$9m*;RTO8ASQ-YMV2`CCOHs*un zHzdxj1E7I{pyp2}aQeh{u60!_X;@jqp*`c81@cFG?W2firgUl&7)b5+Z^XF>g zNv|bdr9(-Qc?wUV3YNKz`(4biM!8(v#KumF8JVV+zMABP*Od#*u#7fnqWMdjHB_p% z%+42_Ic62SZOgw*N}PfDSsD#kg$~aY&Ni@Z-e$wHJhv>J6sgyiTldPg`pqlm<`@?P zx`4mex%QRlAxM0{G6+dBl%wY@EE7RPZ&8|YnIM{SCh|7cgCdX{$#Xq}xPrEMGM!|# zy8qkjUyn|zRgM$b1z#X_2dYsukf3yVI`9NfQ!WyMb2Q|%g>4Wq;D{I;PJ)~6@%W~b zlxKYSs>RuWd1ik|3_&k{!dq+{*Q@I0N*SB zN9YOQ*+eIRI338+(t#}F6hLHeiWsk>j|u$_taE+50vQeb4>8P7!lS*IB_a{@i{rTv zBIC$%>7T1{&5nloH)Qfy%4DH_2aKTtp9Y28r$JE{DKp^TY#H8RYK<(W(BLWB5Yi@eM#s2VNaL+#>ewFd)jcy3^h{)&bbOj zK@>zaokrdYm>~rJNT#qAMQ-H}P9epDZL1kAq{=Xu&BD#w5SqGTC?Y|ihd{oFuxt^U zmoB289O^Y9UB$fpBBV!mJ2HceR0Yve0Q3#oVkDD_WaEf@RjX6w*Z&(z!4%&*;;#g9 zkKk%~4i^UN995 z;%as~F|x01K+-HAW)0dcL4V~OuUAH7hW<1SQ@y}DOeLf7zbQ=&^i#&vG4M^x^YVqu zF?~T@{gTf`!}K#yKL>5)VElP#zb4*cs+vn2gU-KU8k!t@-_G&Ab2*yV^37mJ=zm+5 zUe~V|kO5$v{-!?mdKu$`!dB`zv zHgEQX2?6kX_k~|rsHb@oFW65FhGK);A~Z$vftxr-icdf!-nI0;V_x!XwKOC*fD=C0 z9}e*)%VJ!yVHw5gJ6*G8T79Pld&Rn8?l>f=!SR5E5;7jOgP$>U6+YwoxB`MTT_@kx zeDgqaPW%<5Ni0J}cob(*m&bD644m$eoarsc5*xXWR7e-8r%8@V;VD_wWFnFi%6HHX zqu(|Ff1J?K78tc>3uL%`ee=*#9yA*+mlQ4WZ=l>kqL-X+=|tfdURd6r-r8 zE+(m=zp&6Fwn1AL%T-QJ&wo2dq)=a7oWFk;d{;TSP{N7f6U+xkSPNB9-uLIF+VQP2 zX|cUTRKDO~qRnzS82d||-_K0hCki3a2=6~;fm*pMF$^7deFC+MytX#3b}qc{Nvo4t zupdzfaQz;k*~a>(&U#YhUgR}hJla*~t>pM-9P8bZYKXcYQym_u|1~>vTK#&@*!VBQ z@!txu|JQ0BMgGSnkKMmx(f=Wd{&&Xx8#h1cAO-{`mW8tpA@t0f1-0i>-W z16<_!-{{nP)?x&JvHrigA^u-36k`6ribwVT;A=is1rQ4Xu@LZpgn(OT)3It_j9|3& zG3R;OD=-djS`=aw!eg#-lPhFx>{&|KA#wR3#EgU&7GYX(P;xj3(CRc#bg zmi(QJ^XrCFv(0YLvfX<|emfI@P8CLh|B8D6{51mynJQ0R$#&V^VfE;wa={h-IR7d% z3L_WqQ!Jt7%9$+uPfMiOQ?~*9MO+WK?uDn4wgc1vMjP+8OCn(ZzY9j(Yl6=%0yU+ohhMo+xA`|@ihv3~?z1llC zR4zit&Z^cz5220i?c~Js+}^%>^ZbFYe&~sk|1cM9+B6Jf0Xcxj$bVW{8?yh(Yq?nd zTg9W?|G<)KasJ;}3Ve`K;6!i`(=}>l!xWB@7{%@M{OE(5w=^P8 z>iNmu3ES|prFscsqjI-~rfwB~>i-SB)v{`cN4N880mkY7^W|JH z{+E`I&;KiV6#B0&d29s`6aR-p{3kX54mnv*el?(MpOkyz-v}Q4`M<;zg4g)cO{v2V zv#>Sy(QJ;Rhkth>uu+YVJLg}0*ua=o)ndE|n!B<~`0a~01p&a@2CNezsokVa1bYr$ ziZG8G9qv49Uh+cfz&S3r!#bo%$A4d9hBI;2a?K>s=FT^+jg$As$0;5P4JHXEF}4Yn zpW}J2qaM{fi%9tnW?NB$(eeWutb5I}0e^aMmUoPvYI01y^J0(4?(%KrZDj^10q6~Gw⪻r7=f6Vi|FfD$@PFc_-kOIo{p@zk^kb%ff0(}C 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

3{GN0tN5_ z!bbPBfLV)uerw(_C!g3W#Z_AGjYtM2qT;y zzupt7j@eWRQ|;-J5JbML2f>TW`U-E0SCImmFLG;csXR-B`D(ujfB<9gI;`bWx(21L^e=kX$d|AF^?!-!&x+|E{wcm`)NhOX4FHp_^(0#`Fd>H#1jFY+&VHAXXOU!c zK*iJzURYZp7}OZDrL4^@cXduGy#TIT8I4B{)FqC|!qqq+wK?-WK_&@Z^g|hF9YUp& zlUh*c+KD?D5Y221^JpFf@WXkXU3ld_g1FpJ$Nim+C>8iD4Hki&I&hJ8IV?_No2E^S zS2yw%ECw+38%r`smpY(PXUcpQ(BH|3Qof2WyI=x3CyTn*81#?(R+JND?4PRrgAH0z zKp_7oK}~9U*z|R%Hx_ev+W~E(K zdZIIewmE|bm>C8wiwA}dyoupdrJ$7LcXY$|+E~)wTBhXGrd4|%%8%!7b z-+-2>EDNzlOd{oAqE7Y~E;Pk4-h2OP6KRF%|DQI8apfNgoCcP$l5V1q>ex4?9({BI zx_KpGXQv^f_Ua+_u4>it7Y) zQ8|5`S0gF!ewq$@N@WZe5g@ZqW7);F6X+<8PG>}F6wzgu3FZ-V+0HGP z+;M>z>#m8!FzN@^BhPX(wvMyUL8@6DEjK~$)kI85Hjss*{Y&Kw`|`W)ZOriBkj}ay z3~tb=)+>B*cl?4OIvWIE&C}QEw>?a5DeaFeCM>FEB28d z-sn8fOZa|x>`k(ZulM{)$r?jUnx1=WwwOEmFUHv2indrxE6+V6j0G=WX^0mhh`OAL zT@deZcqyx2Zhk=N?&uwt7TYR>uZ$&WXWW^rELNS@^I?0RcsNe9qJO+KlO-{5tIld21&w?>eiE*vtkcu>0q!w@yCu^r z!iPIqBBPulD<9+ex-bm7xD||4pgvmCK8H1Nec9k^PJFxfgHWvuh(z#^3>ha@E@5XN zud&QAjq4#O7~3l9Dg}}BvDSqui`6VO*ZyXWhFdt95N>`z{-8#hG_~^LPNFy>z47I- zZ?R?!=F+PJdDErg+oCXi4}S|3CQHQWIba@Vhj82r!;Mg8DQUi3v%O)&Y?77A$(J6ihq zMc$VG%PY~X{*%n_@<-UFQH0_uAmuwJ{vR272<#sbPvdGw2*v{;tT95|`6onubJ6Q_ zxo*ZnkZ;EaT(#HO0(lBVG_OAx?nqsSYk^`5(@Qe9o|F%X_&!{|-f@EmCJ=i`P5@ja zaBGOZg16eE7nu@N4DEG95)~nhetK!xI~0)8)!L4}4*1+y@N1>|f*`XBpwUEa6)dkJ zqDCv44%ad}y%{+pYZ%m_A(cTnO0P6`P-S{z|A#Jz^+HuCx78+4>IKr10%_8G43t{L z9~nOV0*<423!_zn=doDaVi>KCv+-uS+hvuP(gL+sK3Ypx3h> z(dvLNf&-HnxMS@oQd`f?&8e2HHdKc=w%dcvb97>EScO83c_6rE4i*vZ`5loZrm4Ds z>c;GgMd@`6Ra1zY+`aHu4zpsq2zjE0p^@r1()lfvqy_SKszNIo8%Tc(VC+wesDKp7 z0sBvu2vX6mBrJ&DBIt63^#S^-jD$JBv&dKu~`W?s}Be zccK@IvBi0f6_XtVl9xoI^l}!aRHg;$&Y!sz2XvHhn^pq!c#4!IMb0)D0r$wHi!|k# zVu~cgxFxac3YI<$xTWhmTASO)FteyU2=ET4m?i0`EF9n+`C{shF|6vZx2sD%T|_`b zx2#eL#Fih#!>+a=@B8Yfov*#u2?1)TpeAv)F42?#HHsvZW2bAMnsDFzN!2v^9xcbV z{ybq$w`&2HjrN#&&vfq97qzm{{ z`FZt+=CVEWxnCiU5~3ioNlLEpJ_LC=6DvR8PGDm=hx z!bw|9r77Vi&qlYSQVAV%waPTCZ8)9Eo&hQ>X^%MU1~#yXJPkG$KM2|V(9cplVN4xz%Eo5N4h<>Scpuue%>?l$QLfERl00Dt zApsJSKpIllIf&#o0F&tyna{)VqHi~LRl$PV2c$mBy7K@SGk=IvJ^va4dep`a;>KCH zp3LvWfrGI(WXg9{BS2Orl1|`>CvkV^CKP7Y-z8saw3Di2=@_ zsNinF^uG`iIQ)Mh#F|M}ksqUVg6H7+t$)zM%EZ#cNNdja|o=l4IOcb#Wslj}il3Td6c^?M%V6&kFyWEWj`Q|H%UXL0#~j zXIaoW9FUPXADw|D3IEGFEr4LLNOJO9R(M_cz5aZ${zXR=U@9R^GhuhzN?*jRfYCRF)*b5jNZ&#OC?`?S&4Eif@9r`0?b74`IpIoI%srw6p61>#$U;KmS1 zJL?-D467IUQv}C8g#IsJ)tUYuz$*9l{a?I7;QcRNc~_(B)gbn;e*jQp0?}v10KgP1 ziI_3he0&`8taK0{1Kbo60`vO~aJ__Ic~$NCjAs}F-~_S$DZv;C5QbwY zOAs7@EdVOu`nIG(+2{Op%hMYq3`~edZ0|7;CuIzQ1L>r97mj3&r2eA`S@r*iCb)mJ zQB`F6hXJ$TI@>?`z?ei5uY4?P%uUx-0-#qEg~Z!h!mx(+oFXDmzEGydj64SBS^&L7 zCJj+?Qh+u9cJYLbyJw#U$!7c%hDalVTS2b9`=X}{emsfEw&;1+p4RwUFai|y5p{1k z&zPb`^u}RWJ4bBrv*)^=}O`&IMTU*&&?k}75|GxlJvNO}>>B|6v_8du=w-&QUR zl;;fQhMC_W(p&g7{p1rDHjva#k1An-_7?eeBnvml$4RJ@vA(@yA#C*cEvv`K#bI&< zMt$|JUZcsmEY`q|tzVBW;g-2fLNwc|O6K*U4 zK2Z7R_D0|{#!b*RgbKV(C)f5&BrU=BIAkF><$dpGgo0bloS4Z! zEdydiXwuW?W-rkPnqqk!dpDaIH-aw~N>Wob=?^`*!$r+GnEygF>8B=3psbnmgv0%B zXQD`DxyAsK4{t`+KaG6HOVl!g75EcqT{c{>Q*xlQ)d}!56t~kP-@yAUB{IG~+%H ze+IQFPbWvxkO9O$*WMuVA3~{chZ|aM0!fA$sC#!~+~OtP9UnC+7|OA~qYnk2M5p#D z+EiSZ-t^cE?5!MR+zr042>%wWGAE+)o`~)C!qef0Xrp1((cKvCClX(dkD4!n1LVF0 zGu%Rly{lm$-6V8MV_lbX50qvUKX@+Xa69VfId%`XPXS;Ol&;5+ca@R}mCDZ*B1{q~ zub!_SB}t^30|BKbPH|Qe7R6(Zj|AnHVClC)L0h+EsxN4}L*j?CqPZge2GjNzv|Y8W z9_>s0Pumlm6@m>+TcaEoUAoX9U$};TB@?g{T|E)jx6J^?)!+;BlImnly5Aq}UT_v` zNd3V{6Ix)xT1ogK{t}G;XuwWxVQ=t$|L&pq0x*3;>rKeILTGJkTEfG)-ILF)8f-5P z8m!%rD&WL|auueDG*`{5 zM+}OoRzL!IIT><4wx6@oz#;nQKbJ|_@aA|hx*R&8i27w(rXj=nW>6EKTa6)N z@$SU{_#cc@wB#*87dg3SHt_7QHb0e=_koA;6A9&B7yXLs%-sMI{@5lh-yOa^2U&BBcNI_BjEz&?Ejcn5V@|`Le1k5h;6AgN z^^1O@Api!-l1p9;T_EElSfyI)_-G3PI-sN|5zN1MNmlU@i2YFqPVSh zl?d=%r<7`~-I#ltjGG|PU|fS7h-2bBPLEh19-&k3OgHjgriL`@n~rMTW5UY61@X{4 z@qf|T+OTii60gm{O#W8~TJ-r?gItm{Ps*bQ+!yS0Jll<|&KkN6q{~$v+)P#Q{?ZUT z!$a36{lfC*J)t`^)s%v`J|09`z5A7Pg|g5Za3oDQ4Q6g!Jie&!(GI3wYdqsb*j1}X zSC!5t47d^nwCNpQeZ6=tkl@zq0t$~a=UKn)91U3@x%h%hF%;(DQ3WKoFPC7S*&DCf zz!ppm0(SQh_#{i$Fh8R;+z&oL;H6UZzEH3Ko-N}ph|G7E+xLVlXR7@{WZrwd7%N?= zSQtP4TKpYw!J=0BueL2Gx|=}0$K!o)H5U10aa-CNqx8Q~m1z=AyD@lW-wvF3jP%@b4oXq_(E*4iBgx%eR)qtjK=d$Ff{Ebl1!J znD4j^-I}I8JQ#TR&FeAX)8{T&uT1ru)!5x@xPso_Z%TjTdZ+e>jBL}WNbe8}R_3-= z*Mj)(7{2Xx{i)q|W%NT=mMQox&`WVDkXOMj2E}5=3f{TR&ge{SB_bgVQCX3~?KS$y zumkR6ov^6K?vgZpmMp&|k+{QV&p2(OkP|(b> zP!ICHlFgqmdoN){VdI2l`5BCuZi1iVr9eb6d(F93$!LsaI6g87r(8mn_>fqzXYq~x z0T*~h*1VV%`70Y{%4qOHs3zA%_YJ$BSmW3b5#9>W}sLwc~j8AR5E3YNjC~Y=V^M-JOLRzwG9qAAHxv{_MIPh8xmNA%9Xhu-mGm^J_VP?QoP_!AN z)MSX8%$n?{V-*>E3U!}tePSUm=ZfVqeZ zGuddSSTru)?p6bPDif>q`C2LIpYK_@rO~zEd{q+Xo(7v^paocRU&3#+*QCmMeSTUz zBO{^@HbODNm{{npfU;}2h*bF{ruXTDz)FU(r6TT)P$88jiF-mfym60i-p996YyP9? z86ePdGjYAB;aT$*4t4Z~1m&8TMX<>2M@`KS28rQbPA=rVGFDEd<8c~BHUUhNYe>$S zkW=<_Q9QV=lM5L{+Y1^X>q=7{K^`O3iL)h>WbWR^xv+qBVU)yCE^){}x^MJ({wr3w zZ!B1lStW_OB#&F5kvP=M0oiT#yL$DrpJGTf}LIK~@7CkZ_FABH2E})TjOj%piM#4Kx+htV+EZukD z-Y^gxE~99#CLz2T7w`G>6*S=ZfnFLhOcg8mc^ep2@9H2Q*4?`Jm#=SFU@bb!Hw0p} z^p#H+Jj=6yw411|T0hZ!>(#~z6T-6G0Nl!;l*ZrlX}}-AmBLPv z@|=E5)R=SjKn#i%1==KuiKxE%95)HK!I2wB#g?dNvfRqqV z#FrGAqzdYEhF+xhaikP@KGFanz*`QmlDA1U+1=wCT`PPvHGUeK-H`_=XUdUi)S}#Z zs^y6JrW4dbBQL7v$+?|#$!G>zPISFl>TASHU-dx?Snlsbq9b$fs3#y{=@7;vLH-ac zH*4aup>{USy_e46St186he6AFwlqdNYTP^x%cn(MeZH%-1+k}`i$I|x&0Lxl6z%il zOastVCyl`R5OttxQdcWT&z*MwIo7ARP4Bg*=YK03Fk6+dq7r+G1(Tt%ey+8X!=mS$ z`%FVZ+=?o&0$il97OOVq6YI##*8$}FG3t4b4JRPqF!{QMuIh1jm}s*SW=Gv)-0&Z< z<~J4#Zdf*`xM%EhEqDxjCDi+84T{tfmO(^)64M7$F0k@<1WzcZzFJ)lEb^lS(izbG z6>m0(<27vU0vK^nA3lr{EChF0TvG3Hs8RX%xH6QHbBwP(5J|Zdro?NR;yQ>329Ud( zQ`s*a%r1uh5*TEgI7RbIs3S>(t z{USK*rd8i9iOJkVC1U%{kjF2~(aM$l930Pq@Kr1s5<1;Os6qY@76@vueGv_^LXe?#wxBbZKuOfD!CNN+2D*G<(kU;1Q*7Rx4l%P10e;{ybh*c7; zNMSwewjmKRcVq7+mVOCv-ktJq{~<0sNi|S-MxEET$`)*nBFDP{5z=as=>L-Fm*N|% z0m&LA`5I5Xn-Zre8F?Y7z}G}@e};#5gGm_w^`ZYe)DiRQ56hmJ(hzn7O* zesIr1cH~Wlmqwg#>5YbmD|_1%e~#I&i=(cOmt#iTe1>$r13kb|GL?dUBn3sm`;#l3 z=<4}#c4rxEY>0yu%N?s59zO#JwbMR-#}ntWn)gb%c~Zzs87`&_KHm!LTI>sV z@d)v-dB~;vASLgG1?>KJ>ycb^Tn|mle7*gHcc^p7G@&707B~; zVsmF7m!5H2WkN(HdO-^Uj?+FzB%u!L-=Tl_)3E3yZ&x$-y^H7oM9*<&t)3L3GvY z^2FeA&q2%E;oju@+nc?=VgPI&$7S!ig=G}ZYR`^7W_>kFka13PY-t}v6bn1dL8Lp$-TLjhG zkj8y>#DR+-<}RNuOE-9|0MRnEz1iRc-W4wA<~VQqx*hH_KS^8!c4@_Q zMY@6G745nb1Lf1c|HssShc*3s|KqTff>6pXOJwg|_7tHEkv(NY*&svqMk!E0HnNwp z1woc<5K0*`rGN@5vO%0I6~yuSrM^Gk>%RZ%_2|hN$w_jOXL3?UhrIY3iz-tmNjbXY zef4bvFC-ZUc`|qrf}x3vE%Y0VbD2$(AME zlNjlc@{(@o2@?&$K+?GS8>+Pfq|V%QN=b>mx6CFvQ0oyFIU*q>C(F#mkRB-*Wt>Br zho}QbqzOj!vX|A<_nNE2!Y}r>Wr|x^SqVkprsXH*ViHAZSlD?ayjOzcVtKa428L$K zNtfqTBX0e_(2Zy)#u!5xHd1VbUiA#|CosIL*{L(3mT#*rBDGB*?~m}cO>d~-v?|;%mP?83w)O*&PO8eJZF;0%9C`g9mmlP6 z)jUE!w0z)D8|wID5h7Lq{!G1{C+^< z@mdXYf}jJW-BL;nt2cJ z^J1oo%UI_jg*J4tEZo|f{PosHRteh#dTX+s2YWlhawV5ISg=jQUF-P4yLUm59VGd-0o=cC>|!h4=KS4`YE!>u=0X+ex)?q{Wie7-PSMayFwRKG(GDqZ*x-c1XW}u9geWtcS`!}ibZ(3@ z9fjSB)_#ky9@VFq08<Xu$;09a0&1MX^h5Y?WVAUe5(!~ue z**O9e`zGSh!<19G2utGk4r5B;A<5*o2c$#6jLO1| zuz5F?a^0&t_-AC!YnP?k_4eR3|84%ys)!3+5j{#<6uG@?*^-Eoi z-sI zr;x?=v_0B$t73BtiU56D7kwkm0R1b=J^`pam78f7^kqpc&~lDEH6}dQwG%G!qJIg# zkr?sr$ET{3F?<_FRy{<2O1MF4xGnOz)&%1&q-RP3O^ErZ#hPH96LVAQTA?N;T)Xnk zn49K>dfbIU{QA3@6cOR{*9{&0Fr$86G%Uwp9HrizV!I4ZAEI=ls`-`a`1HALRDU9qk6y{b6Dvfr20A0| zBCF;i-10_$(u8ixaR&XU5~PZ3^iCEO+f*>9nqcUF{?IxMwVkVWcidEJK}&< z@qHnrFF|NaORM@zg+88R@kNXwXPXGAM>D zs%7pCCM-A`jtKB%`q*stfPY*daa`DC{{}^5-z!RRVed~1D$k=d?}acUhx9jP=*B`^ zd${K3_XK+HC;Bn>So@+tI$(N|r+UxXe9+_dIf#f23RjM8v-3=d}XyIQwpu(7udEm7Z0D&GN4p~OfwStS9|YRv&u$gR6IP+ zV=iSTnbB!62Sbqv9V|oYJ>SkwOaSuPzhV%J}(Yacw)q!xlxU)6iNiUBt|e(=oZnsRqAN!7LCfN+P$UbJafdL zaln!75bn6T4P8;HPX?m}aK{ej%S{@QcTQlb(4D{aHhB&z;D$c>#Wqs+7Q+2S4QpQ) zcK7?sP|8r7%Z+qvsc8OdnkY;^7DMZ9J+r3J8Ycc!nEzwS40KDKNt*H2jxz+SDJhsuOE z*nDZcz&S;(>}HptB=Y-%y871G=Ns)8EHz(4f~`sT%wc!>Z#}?LUV24_zT1#s!k!oW z9T{JD`0!WrhPF;nyN&T9?&ZZRZs8gJBA*8evX!2Mb=tT*qH8W!&IpnuvsGr4h%J{m z?1WS<%-X2HgY`&9OqX^` z#8Y(0;iZ!6-xjUvQ&2|87gXRnR|**=JbEN{X#kz~{bppxBI?~oaNLb!^qzb2Tb+5u zqfm5r!o&5Bm(z>jrRRa*!G3Z~07zH~X_yj^@xBCVz)%!|#OGXLKY`n_Y6e&0|yymGi z6stDIgxii~E}i~TI-98~lI)fLR#rJNyl&!&glGL-8*;@CJmxlWjjP!Io@UTn{b!H5 zlf0AN=*eRG2FDLIba(u!mBzDo7?wEtCO0mpkTBgVv@(I7&)J^Ty#Im|18ZD2>f>o) zj>xfMy)fJ&+2YgsQ1hKulM7#6m${b?rq&Ub$* zy7z%cq{Vl&Cu(6s{62J@mW%SX_v9$n%&yOu=a02D;CzvtR^Xd6O-}~=;8D3(VJ$)8 zI1-;(RgqTib#IlUxKT*yFJ|&*{gTN_*F9>P>sbpGm{%T9!`awu26aweZJ5lg!Rp$=AQK7exgA6TrAzy-^rW`%d z|5#!idu^surLnMD-i5GuP-2+*Drr-v?uX&d?{JI6Ft6m9Crkm}zxKl4B_H{}d2>F! z_~=83rn;7dptmn0$i;g{s2>h}*2VX}Y`oMl*MNq}(kr1`;pG05Xz?FjrN8ZuB0byF zVnp`~=t8?5Zk04AI8lyp2w9EG{#pb-BQM~TB)QIg8BP^lRu})5qtMKNQ&lf+)^E z&Z*@I1cqn@rYMvSu?_FS`KwaSjS0(ZSzaBSA5}*|#(E>NC*z^iM%( z8=pO?7wldD#q3XrUKR^3tK5*^f8(nrPbA$Re$jyhwN!Q1Rygx!kYRflZH*#w;W3?B z#%+cITTM>gQ(Nz}dJH=pyMg(Z*U$_*)`-U8^N`eru3}Kyx(C`imN_Ylah&&qeb8HW zJdwyh{JJQ_&d9g;WI_8&#l1HuIE}B~{cw{kO6lFhs>T9x!6v4Ji!V%E_q8=SO=)c+ zg@-ZMeXtum-}8#YZ|tw6yolpe6OLGH{xcP?_fOqeLvYsSTCID6Hp{-EJu9kf}*L zc;QOlCCf=YD+|zf0PR&L`+QdZ!mXKVyPzw>P4)9Gw;wgwYTMjKw52#NrXE(SP~3Vo zqq$Q0ob9CgS51!GPvPUNYbe!^yWH*)?=yTBzMJXU#Ui}hThe`k*dKGd`vVaC$m#qk zyts(6Fo2r~affoe&$t`3)SMG~Cd@4TLU@L1U5MKcjX+=Lr*_S`3=_e{B&_p4Xp z-GmKCEWEWX9fyNpqi(PeO64s6J>|4H)$Tm=LqsXP)pBk*z8enyh`PtWrw_}#8eVCB z2(_a(TW&AMw@?%RDCFO>gE^9Bkc&n_zN9vM@-cQvGIf#UvCbQdHLBf?$Dqhesu^>` z9Op&goT9S=J2Cf)Pej7S+GGn89uhJe`dju9oI&Qr29qoT(q5LIL(z&7WIc~*uH0h> z2Y+u_6gTBwdsGm`|KT3G!BTV8c&}XgYO+4ly_vJ(c~#DWh4bpZR%iP)GULur$kq*+ z_ZiC4ypK!=GO~XT)@+7Udoa@V+s2dXF8Umm5+EvVR}@wO)QeDsaEgUfTI8q{5z&jAh<>61a=+C@ zN~uU%>*i5;AC5kkq0FDo;s=)qzaZXh(80nhR7T9W!~htjRp%JfM)JF54K41Ct{sqn zm7FusLeKQWz0x9zo0Dy8<`9zDZB7gB7ZUJflr*GI2VFjN)-fo^BIvd?&gN2Gf zlPJ315XwhEi$An$H@|yqOaWMd%BXN;+ZRUpF>LV&*6!~e$8;7>(&{mX%Cl;tGw0E~ zV$$D|Cf7U!i+viue9yCLO4NqD(NxQ$)hcn?^^&rhL1e9@5%`? zzFxJX=O#>94hF#=oPMC#bYh)11wsW4N6~n{*`}VV;-S6PSR4IP-0Eq<#=gr#=~rj!(SKF-v&To#l7#A-zJ07WBF z7=L&g*Eb}V@|qgk_u!v~7k3EZlobErir9ODi=k%40|9GzcyM}-mY5*-Z!PD5{b`pL zZI`d-QB<;%Uy?4{$&zf&$M($@j2folSE-4%k7hcic^YY)T^m}REEp9}$FKe+61zky z==>5y|9tyb!u{<)%-A>Zhsi(Vf6$1TBa+r{9lUXhNr_^^_T5qar=TW{Q3a@zFOF}0 z50H*E$cSxXjUzQOzKg-|2R#w~txreAv+%1%M5*@J%cUxys@@KCFR!_TUvv4o_fKkV zS9ZOz#@U}AEnm7KioXMcJctH;%F(hA0__&F{Ns)4ESbpcpASUlk}3cHT+;MhzIqXv z4?u#wKY|Lsbui|xJbPJW_MHmQP&wo5bm0Xh#qj!C*V7*~jMrfyJ#(OyY4~*F#o3H+}nVpfm^|qEtU-q6M_X_h@#9k)C-M-gc z|6B4e?+$2!SD}eZp`PY_Tab4yyC>W8I(KB?PsCmln2~n@(am4p(a?msZDSXho~A;! zSe^EKSN5I`_liE?6oYUV>jOl_zr0b`W92@#~!cyfrSrw{dpC|SZ6Clj|0P0j8Yi8}3DH!oO=#6NXnD`q&Mf;IiK zZ|Opd`GvO~GDv}X7R0N4SuDfTYQQSq1!N!;@C48Y09|?Tk9+%!kD-L{8tQ$Djo!jolsvD5g5Rk|$m3w(ia!&EjX zmW%K(pYBQ~&uXp4Vc=h%Syti6(VqfI`(E%(ezF9i6BD;+4bA(rQasvHZWJscbe~^E zUJ4pd_>eM2S(W8fu@C%GXg6dKerrK8DSS9T=P zT}kIzt=4#XCt}72{!DCgz+RtXp_LUc0)xiblut|!Bz$%;L!~;6(@C0fuW)S1CBJ5J zk4R-eeG^FzOodqe_gLbgbWRKREq@Un?QBJvPZuern=9x;2dJVGt}#n_OH4JVj&}6)gDSKH3v4mt9S^i zECt?TS~=ZX=$C$V?64K@Pt>hJJCt|rD}Nd`**N%w!xdM$;# zTJxpO_{F;Qlaz&l+%<+>Ymr9HWn`yy(_X(v3emu_^jFF8vh(iHP36%St*EA30R|L$ z+oW%!J+GLFB)l@s%(!K}p9SY4F^fwzv%#jn=j_?ApzeO0 z1-1^fn^PjyLaFDIvkteAWJ^wV+-up$+3Lf$r_eny)y29m)>#Fm%m>+r9pK+K@ckAx zDh3;lJ7~s2n1(H4k|GjBiWMG@;~ZG6&Cb5W9M}j4QWq_2SRL%5ZFJ#=*dqjXedzQq z7V`3=Yk&WR4qd5>OZURqis5`BfX#nAR5~5AmINMRhF(KH7tCv9Dv(VJh51p<%&6jC ze%wWSlY@^s3yj$H+kto#CjEX6>!y_}tlpzR2Favrgt+}{L`qy+lE1EPX{IXoy9IeY z-uo{8*3~l{3UgEFhY+jFwg6Ue%~%6x$tqx`l-P?u?W)R{<(ekUo1XS&Y zbGzjSDQC(d7pWA_MSp1|*Mt`0Ial903Ue!7F$p97X_sKQs7{*a!mqvgJC{WQF*!l{ zXagkpof`{%L0Jsr~Ch;RIjW<-uZ&C$GN9BH5C!AfB%urD7qkTXx0vVH-@Iu(>x4 zGdOqFV^gI&?|(7F+^w5y2XJJHf`n!vkgOE%or3?#cxo$r-r+bC$@h#xO4kCZ22w)0 z)B+KAQ-G?GpCG3w+yhFv1reW{^E-U-2;uUpNB6PSiI-`QghRXKY#f{%ovVBy?*UIm z@I`vO0q`795Jwm|>r$qKFnYf#BL$5SNklojOq<)bXN-ChoC9R=1FMMA?}cQZWAViQ z?)T97xDot0HXQ?Cb1JLX9p6z-r~rH72&ne+GUHJS_roB_T=eibFy}om=TwzBO(4nx z>@n%GkT@Av+H!@m7Sp^l#-5yBeqvf_(DTr3TCP_K6(>|VZ;i9F|e+?SBNXM#`&8H!-IpbGe zXqgN@;qp5lb*RRVrEP4S3^&aW_mr`o%inq^ifOJmV^2)DI!!CzX5A)rl6#2OGbi`N z$0y@|K0IinbCIcdyeq~Wkw}+iT=^R7_2E&<|NZyGbhdlui9o*)o6E8m*0bl8Ct3yW z1>~G7Q<3%mEpFKO04;qNUV&*u=2Qj#Em4#}{5h04^=oshMmB)-*Q4Dq9|YEHZeiABfUFxnz6z6)eElpP2d`6p>rr z+$2CtNjuLk?BUx0zWlY_RJ^NK2+F2bsu2>uMUIw%+X8jIT&EfzLiaOy;={DZBSc4i2e@GBLoCpPy~)6ch&aM{xc=pXk4|1;u2 zJ6$7buLY-zkO6itFdvCzx#0)6oQ6@gza_l%qbFl&rL;sEvXL&i=oA9_d0XM`gHK{{ zj~;~e%3(ZTb>sYO0_y_*#$j9;hauU?*0iFmh54Aqz>BScfB(>mBhsJYk6~Bo3acl! zjgnx=0b{sw)(vx||NaUwyPi(3SnHQY50;u%m1JIm&)z+fz@Bgoc~seq6dLvThWTTE zqydk`!jdK2(E1r3BIW-bmSb0_Z+h@J;?-a94Gx%AT~~CzAUNhKj6DfGAxqsA$Yen8 z7*t(<>U$y2CEs9E?R(2r6%Jqa!qy8+<>eY7&v15hQ*Hy{a@D&_J_A@CVu{;JDCq!Swy#`=#@g6DZ&NR{ zWX4yZ)J{0n_;clGdG5qKM(>x8I6&q0-p8{%%d!=|SC{_B5Bm`sTdvXMsehSd$t5!n z{IdqCosrd+bJHUg_Smjw9_L`QT6;Ktq$;6Zt;?q#Nm-4WSsjq3TYkpsV{x`M+r-RU zB)hA?G;k!^IV%Ated5w)w3#k@%T~BQq@T?X_mr};v_gT@!lfC&zq0L8Lq(;7sT3lW zFohp3Nh8^l-y(*3|0AKwEvt4MXs8tPviy*GtAFm=T4h^dxDD(m>`JUBRANn##0~H z^x?&Lnd}~$6@V_a3Yhb?+6tT3dAGC$wWFFc?Oqq!{gnPk|E(CS_g`XwFMFUX27ma2KkA%qQosF2z8@_|{NvA!OiUkg1qhfi zu}ke8^LV5ah=x4AJum~vy#e{|sRUvsu5dBVi4^4ZetEDAhI~?gFn1rw`|Zqtx!+ErAEH$A8;KaDJ?QfX_==X5Nauih*9<%`5j|$&K^4 zP*z_eeoY*)ue-wNmBbPz+8LO>u=pz@TY9nnkSsuYD0R&X&fK`2vV2Rlll*!j(3Ai) z_4N`TvzrMOn%uxa?GpRR1V{DC@GPxQJ*py=EjU9aROOi7*o-c|!isab)f#Q$C(@bI z*cA3=Q%D)TmuEScNJ3m<0o=|aJ{Am*;~FHlsLB-VdHm(;Ggb?W-gv=NROdU6I<*h- z_!vnhxY+~Hyv_B2n=2{IydH)1A=2fk5w@bNkLXEHTuh04OvJ}j*!YgMR+PdiIiXT5 zmfmhfQIPuavr;_SX9*L!5|=GZ&|ryqm19lnG<@k9tFuLK;BOv~4z-qqb}-s}gaGpY zQziPsShB9V@|YWZz~dV!JKJ-mNGx2ujW!|O2Lh=MurwxzQjLK%A0(2A{1rlSHEt5+ z&KeZu{?&KkAwGtO32s${`H5@+ihkV&lkU3F2SGA>H_^^^^7QyVq5&knZ4_zLPThKv zEFse{e{l;QFld6$b2u5M1lROyF=ttACiSR+5->qgjoyT@JXiCsvYBX^Y@^zzDDx0y zy-yEjTs>fL$ukLU!87k@QdLjU&ay5V(hwIlBK(9I=I}`_Ji$?x>CId;(Q)qsZDxI$ zd5tA%f{=dq8wmm7=WxU1BRMS9>ADY3uvU+ry*({+QRDRq<5Jic&z=cfEvq%Co&Q9r z#+#6wpKYdZ1W~1P$TPip9G(u$>jn&~BE${*!=9zrXi}aEqF0i^T9iitOGO*!SG6)L zp5c?q`Rk@=r@hYvn1Wp`dJhl9nA1MI({wXgF|w$7_c0ror{xD@;ru&>+PNQJzuBGw ztS;~XaT^I>lRfBKrGy+TyGQXrkPuMjbP+T{D6noj+a?vh;vrX<^;CxG&6j2(cRRrS zERQ)YLNxLv{p7|X^vxHu3d|I^4idO|q$n|_Qr}q#`Q<9wIq*Fnz(nOg(28r{Q+8sj z$#Ic2#D@2*yPy@|k3}3Je_Wx;9a4+HwUgE-Y)-L)kQ4aB{VQHoO8#wlzVekH=2e+p zXb|VM%VVi*PIXNEju&S{<~LqK-!y)ZU_`P^yg*0}Mn1$&l5MEoY38u-epn+38Vm_^ zPd~61KCcM{M_Vi;Y{cscoZOE|*`EDm-S&pDINe!7xpNmqUtXy*ue!ntVrD8W0I$W) zqsAH~7Q2$97`@$Uvw;gG02ktmgXVU#hEduZi*^RN5u;R1&|}z16Sn5$yCPO>0gI0| zXwi%ZA`VIsDcDIp7u`{(6%8Ux3kHrFFW^?hcGCA)d^Ubb8Ef2CibQgd6A(jcZ7x+x z$3{k+uO>uT3rWDxd1kmdLn?pZMdqEXlUD9 z(6v*QzpPqbFlWxlC6wRslBtWEF4nl<%)Q~)WnEBU^=u5~e&$zkiT-m>1EH~0l8+?M zWdpEJ1fF~zEuzmFZf3d9Z(9KdnBe-u-GztZh`tGfZL6W-QS!U6WKj>adPapvY}7Y0 zs$BUCa%>54v`i{f4bQGoI7ptj92#yK41UY1T*(oa@^^mNJ93vY^yYQq5OW&{Zoek3{fgv^UHw;K1!ha6 zHXn#m=t}WL&p3PNK4=F2jOSw9-ypMs&SItIuu?~^q6z!lOOp4eCp;5i6{S8(l*P25 zO`SRKjG}g)2jr6Xwx?90F1E_?f}UP05_^}0jehJB`s1SOfd9k$1L_Ks1n5QUa(gI68^`m_3qz(KA^|mWI1_);v zx(p@&b0DN71k_S$B-Vv&lSwi*w8}3iBm+ zaGYWE{YryLm8`c7=yH#M73cI+BPDY zGv6X(cd1dsJ}0dHphGfE06&lYB~PUzT52|OI}%pmGW;BLArz>E3J@_5#HuZ1%zZ_u z*uEh~L{&h=k#uI>$J05}EU_gTLhRsZ9##`H{MA9wzMd(9=%eBURLZd*|BU4kQj^Bn z{C-7xSH+*BOQ+6lR23+%7d^leiQHFxnO&bk2ZE^vW<^-*1wjx>XS6vJa?3td#XfKZ zOBvcUAr0OVAzwg9a;o`M75ljPX{h1<2EyLeE)c7?O2k1eb`^wqzb8o*?pW*#CNhIT zA8xd{wZO;hy3H4PFt0+JhfY)^8&yDq2(u2*N8?coWtl82OJ5LLkusP78AGt}squla zWZ&;J{Va6&6c+Afv9Iu!8BBd(z&QZT6pEqj-I#{<8-@64fUc!s(HjY3t?|gCYRk_} z^#p$bQqV+`CHV1+TwQdIK{|Jn_!#%Q&m};dNJLZC+v!SJHx?*9->pYSf&<#gRkGN0 z+TmL+i;Gp@F|D(6H#;%RyLm+a`+E>LwPamD8%SdVVhCPnm5dq@huGi7RO6f>{hdkg)k1DWDv>OGV3$FPk%Pfo z{ci_Wk6*Ue(2uH~FwX66eT{dXII(VRL&mGU#K;u>nD2)_q6A~Q1^}fLK=eY})4j4_ zQ1w>x`$aGTECC)-uTZo9nGbHPK>O=4L@%lbGCu-GXFz=_Y&R-OaA5i`9<{mZS>1 zK#$EU{W3z4G<+aVcn~**YGyZyc)OBiP*t{NULP$YT@5M#`-GYI5ARL=cG@D8B1bqe zssOF;91Auhbj`96?13VzrS$)c9k$Z5?NevjvKx)@UMo12QOUCLw42}!xMLnrp z2{RZ0&q5c|@_`xO`Fs-99_D0IUuOEb2b58?0FFafh958D>ZY60{K(-_BZ2+O4fcas z{xSNQfz`_{dSm*zt&TAFhB!PNmg2`x*SqQZSkv=$!H_6fcpM&f{ZjfdB zQ@u4o$kd%%gB7!6zZWR3jJioC%{4tNfVo)~Lh z{k?)3%UrU9`xVs@#@#Bwqyj>V^vLEsZkb%gH61tC6%m7~^zTcKj@o}HCxFVXf4+_H z^M2f%Rw*=aNf*aTa)$AuC5h3?SdB3>*GZ&BsC&YE-*s0OxDs$&-W%$S2(NpQrmO?5 zBBAa1xgdxrt`DR)V53Yc%3Hf7k59INIW}AK0Vcprf7@`&oXr_9wy_nWShk5@&pY~`T zJ3YP;qioqEPsROf4nrDA-=YETR54iu6&gM8SjI=1+P=f8$8y{%3FQG{#f&QVh)HJDdZnPeFN8sP1 z-i{Mr{dr1Tel|CflGbg;R(4z{S=TRS3&S)EAuUOk-7y0rI)T=b8*k|`?eyN&pXuau zc{fVL1EqQ?zD|+Fs`9qckRSw;waFav$V{7AjrSl!9P}ES{tD5MFeZ@9T!~aNVW}_v z)-`A$PrS+q;UCXmfTuIyse@?>%q?q>fcq0kBk3HVv^&J|mFXD_^8_oR_>>WyLsO!7 zlKx5I6Sy6%S{@lE8OsRYKc4%%HM6qbR}KxC&y;&9IA@3o#iy^LN`$;`{zJ(CI!_im zAdDQ-38?x%+DHZmsL4M;IGq6b7zp)0>Er->Pm~V8t{8~KKaj=&I{(ik0MhemUL%@$ z|02uCYX@8pAEbBE-@!DY(8+z?9kYznIlTGLCUwbR)epAl2{}32jj+I{_Zih4I@2Ko zdX;O84L&fyU=7ML!X5>-Bkw`-s}VMv!%hlrq8Gx@I09 zO{f=sIBkQpz2L}{e0q#H136szFD%bietjcryTKPoA6xtos4r5Prtq2an>-mf4ak-F zX}kPzvzp^N3AA7M9+djK4tOB^;=&N4-{l1aG~8?>*kLDNxQO)pg<;u)b{ro!qJhFo zKxjR;rLO+qet-pd74{kFl5agd`h#3V?oUW{u8LQ4a=m#KudU_O$)kqu(l6k(Z~f}; z?gVCVXPhBZNNcT{ygM)PhWB7{1x45a7^gn=5j2&*);?!Tze2NiIqT2f2FK4HKH1Al z9EKjJ$1n%|v)PzU z;+NL1v5!=K0jK;flu{%QzN7eDec?O)*M5+!w-iWDej%b2e(=vLfTKd@E1w2}mWm8a zJ`EvR&!Qmc=$3d9qCqFQK>Ivr;5!ig|APX7Lvj6|mvL6kGJfmgj1;6?&61{0NPN(s zfo36VU{Tljzw&`}Nl^BGejb>6@&5_mK=xA5?EcSBIV;6RD<#0&COES|`W*>p^ff4; z9Mh|O#|}JldxKZ0km@X4`vOZ;DwRHxkp8(uJbr;JId+n#EgkZLimUpW5t8843(8*) zte7SGo({=JEbYR!=l@WjK>G6O|9KyRdQ+LLljSSma34O}s75vfT!j)BBGaJw-H;h~ zNT#J;PrpKRQySo={|FB+^m0!AKZn*S(MWFu^*LU=G4j8{A4hVk%SFN47$j*&qslI0 zL}%V8WqaWm0~&4kSq^O}6!@*>0^$E@VyGfmdK^eM=}jk;9#!C#RMKMdWz4f7aZN?4&iV1i5kUuO|t*Ng+m4331=hxHoAL{TQ13ZHJ=9S-IMb`>t?J8`*B8%pwyz@-gq|C zg!cOuj9dV3Kl0tI#P3xlGNUHyg1U#GEuK;r8QV!nL!MG!!p!kW*`@~jv$I}~ZwD8p z{>`m%;aC9Mr^-sQI$UrYC`!D3vjW4mNrzCNeHXyv?!bO9`D$6?)rVblKveqP{fD! zzhce~l&dI=G>CKJX*Q^i6p1nAx(>Mw3Nk}YKWXGP`6Lvm+)gJmjSaxj!dOccNJBO! zuDhHN%&2&Z9Ja{SD&wm@fF~BeRMM}gh0dZn*F<rL1 z7iDrAU!ZU^JkBoyJOp||xK4%LD*Hv>t3onr;f7WaXEO!bPopO5IiZrq+}G_W!7GoX zz+*;DY$*B+rPM|eNXfL!+|Zn>$DmnnFQPC)r1XO&@tX~@Ncw;;zyq#&@bJGel1>m~ zL|z7A2EGG|1*PqU8O-uGCZP<2HaxjKV!!v0!E2hEtTIS?&q~kavw>}w9pDaGw;8psmtCUyx<4eh29@@E_p-J|#%Xs7^(6=TqC%b&HRV?5}!- z`KNFY3s;wP{N6$h=&0S23zbV92Il9WQ_1sVw#*%_nyj}!xo zl>N3wCgy5#he~5q8-lQ(7?AmFq$fic^f7Za5%$G_F||J_g#>f>M^#8IhA0#O`cNW& z6>-xLEDhjpWf&jnInV{Zkx(&upEzJ+7?GjiIn!9SP)OM|t`55Qa#8&IMk=p#L|9wsNf}+A+q#_W zZ!-&On>}GPs6rT~rGRfvRf=H9&9)W(*0JO$D79R)^ZW_*17Y;O4Ef#|MLDRa2llD! zs~?mom@P$$p9d9SM5Lh)LFZ!uRbsc-o}@q0_L8-j!7UJUvHP9KpUf}riaI=uuWFV> zN=FyFSFP`UOr@l4`b?C`{_-v|~GEidPzBs2b+UrF! zEfX>{4v60%if5596g4r=ZM$bMLI5j5#?cTU$f*N)cZnT~gGrK&D!ZdyGhT}LaYnyJ z`4Mn^XNOggWO4AMEc_ohj>vve|ru^NfaHHKqzTjp}|t>z^oezaSKTsvnI|vgnl_)0Ee0;7`-T z)3??ykE~SS1=po?`zda}uOt-`$qD@Ur4To)oUovZHPZi+J2^P|b=O}mYXK92&{LZG zQCIr^{yWK?%peWg{PBpiRXE2+cS;q$F5)NSR=a+4GVnBh{0{8;q7gWzK^g%RHMSF8 zL;G(BrP4T5#&3dU8QTOF+l*Hh;cu<02Dr#bJw@0R zgNyQ|5`&OO9zDuubM){;@SS&uo{F*L+RP_0eRv8t+ORUCx2S7fvKGC!`}HDB zqx7qKa3qGa!_@ragqX7IYI^+CP7`iuxGi02pfcaha4572vuABFd|eCx=O`eLe@x%Ab>5R3a`2U=CfauhUgkMfO z*Rd)EtlJV@V6EL{Og3{xbg!Acv=*zlyocE%g`>uOA91#%KPuW35AXX(&~)EGVhBIy2Vx4m&h;$0$>Tty_N_ z(BIb)WxcCP6mjoqI&NSxnC>e^N}Q zo(BatUp5z!20cuyPJh9D@-dhqBFE!Z#`4Dq?)B50o7^@%i-2K_ROWVrQ1?8TGPjtiUs$VFz3BOS#F=w+}(p*tXs_uPfR{Sd^QR=lqwIyN>>RY|Z zh@SJTp;tgu2?it~_Wo`TX?1rAzpN!s)LDSS+Pnwssmn4<5sKg_?SF?MpN@_5)6ADf zs=cYnY(h;xC1qX{PE!>I2ZSTPH2Z5#>-5pP*mh<>#LK$aU1S-ix4!DTeC1lZGt(`w zYkaqiu~0`$L_=ltVPUt{F$n{*0(_11cg3eLHzel5&(gUSwMb`y{C+VBY* zY(c(?5uW|?gH-hFx4fXq zI+FvYU${#*Ynm0S-Z|R^&MV%nGQ?o#eGJ{$}YU)t+*M zSCo3@=eMT^eg8kAzB(YvrhEHQF;GH4T0tZfmRvwoNF$&Ukw#K#5s>cOZ`S8|f8W1n&YU@O=FD}Snfu;*gOHG$Y;rtckC>H*Kb{t#vz#Ze zHA#@gwAN1avTLlQP2ZK5@O;OJ~QU!fsuU`i=j zKI)(71*OK1n)W4BqfL)`eYYREi5`PLL8-qvF8h_3;{NNp`eCvj@cr0Tn!xH?^saqJ zn7rSGs@!SoiLgm^mx-1Mcujr#(e(Tdyi2NQ^i{a#h~weIrlrE9D#@$W z;GZ%4K>Ni&2k4xUWgI`8GcpiQ==fcb-<^gV1l`8v4i>x;g7Q4)*nS{T7qYx?C%#Ty zL7xl!SE|ix(00^zYxe|}R$d{}RK?ElRXwU^WFM0-mSrp$`Hr0)n6)XHkdXh#*gwkd zIK4VL-JCH6mSh*a^}e-N4Xnydl&sVmdpFS~*Qx({HIU;)9FdS0EcN`R%kpNu4Oq~- zW;HS7!Pk`DsH@x5K1C&R1|eVEbfNy(C=TNLVG?QVZ}vM?jpF{>@Auu-bnQzRG>O=I zeUGnsO&wr*9k?l`-q<6|poAcQ#kTBPe6)zGvYvT{%=J>ZgzP_`Q;%{t?^1OGAQwD6?^6U)oq zo8*7|6HI=WdrcDk#&U(ADx|Egw-@B~2^;V)Qq_D1j+&i9=IeMQ3+jn9eW22;*AN5NJRvj3-^2FRTOO@X)x`E-Vp%&N zA4KGdx&4vT4>&*G4;oczDv4Z89`DR2>)?yaHqw{@)Kc;}Qy}$SFgImFUwa6s3EZ+B zFB-f#7wK;;`^@TglruSmcYsE1Z}63z_%wC!f|(4J$!Fnqg;rZc?TV3F9Al&rc)1C@ zBsFC6O!?oJqy`E|sAA)CZ=@!XTOJDItK+=HmO%JM@$HC*cKWKVLrynGtSJ_#HM;2f zewY!4A4C4=^l<(V)Ya|Q)TC~&?G;^p&BCD4%dUZOQ~W+W&7bw{O~Yk|uWivCo>smV zjHKLy<~^@H2qJ&5-$?Op@1-e+H`Q3)jfwZbAT~fm;7@J-I~vw)A0m zHQ(hzRhuoo50fOWznX=wGP(B0(_LA==>fU+@x!o4-rI-UcLIKhnpzWOLxy#H6w|OT zh``5h@B3`f@|*VRUBa|EDVkMCQhDg9yr7xp$F?_BN#wV7u-ManZKCkG+44J?Pe{6v z^4F20;(SFbnMa1or6uA3*m8I-UrYWQ)w@#GwJ9FN{fF!~;PYSjAlHg0Z|g*AzBECG zhA2n9*&6x6Z{Gf>{IbN_Kxk)g#e=j`=KDTw%i$=#KY4F{c$GcSG0zS8J#yoQ=>o3* zX9{Q6CswP3@rLA<%JS#YxxdZiD_+6KoEqm$PjA1?(bqI%u4Qj2B}d-B{RWvhk<|OA z#xP~svufjU|8ChOs&N)Iaft^*%(alxnM((_JQ*!5ROT~#o^VN2(md`DgK$glgFJNh zfqdEa?<#0WMe8lKvZ26`3sw}%cz!*(Ro!mRU#SxZ7xe?NCt4^}AxgX56x%)AXwD}0 zy`l6*3PWCRuX`2e!V71_>g*geJ$6PoK;^ckIri48*zJre=su4uiVQPzFCdZ(2u~Gb zw^@L2lOLs~u!(E7AcXMmy4~sV7}Q0bjH&g8WV#>yVh%*2j>SR|B3=24=ckX%zYThO zY&o@b_xen?LK#Lhvo737`Avr0SAMw!08PIjgh&Wplh(X!@YHdO7O(lD6`EWMG_Ml# zo2(=~KH4%um^Y{z)Ap-D)NvAl+QqB&0!O`gp_(ymq&yHx2mTEE>QzZ3#)F@x2KW&5 z4=~MF#;+GNH-np(34o(XH+wv$v{5JS9K9QntM_=0LhuGOfK`5A;8h@P^U4@U2&zy58XX%MZ0^>sHKCy)a!G)ctoMyM>0^rgDcS`o0c? zVjQ3?AGGmzX;6_;gEsNqHKmP?l9LTGA3fm9LZ`(3>*!og24+pHq5H8F_Ihz%gE#>r zZ647KU5RQvlNm=?b|CV&lFAaJ$`S<`gDcU9WN5jC|V`DIEBiHs#zsk8!IrU?g z85zNV=3u~T6OQl>XXLR%Wc>cD%{ZdmUHzAO0J52$oeEv40$$_4Q2@oQGh>4eO^tmU z3B(k%P}@}zmCKYaCx^9y>3;hR^%}3X&+?(T3hxs`(gr2}0slJx7L7{Hj+(AwRu2mdpOhb9blV&QtZ+-fesMiI`o|ctWq*keoRL(J$CQR7TNoc&g{`uX%CVz8 zuqJ;0@TCQHC?k)Thca^sN3tr1kNy}Tc(%SR^c4T?lO-*DnV7n9DDTA81aV*iz|C4Bn!{-3-K)S7|J~osp&D}y@dC9%?06i zzLS_s=sx4RA^IGAB8J}{cpRLFJl=gMuB7CF*uuKMF^eP08aH`K+%E`BJB($sX(WCx z*e2`lHd5x2-rEu=h5BDOds;uJUvZ^N`I1M(Hem9SB$5|6EpDKqbhHNBweT@7fyN7l zkx7YE<@FYBHi!z&1wtsyeN=&%EexzeUS4nG*ZfpM|7Po;a1~k2Yr7_VX(1M$k;jII zjfn|I)(l*HMk=hc^sD_o|N!pJ<^aXDtr5BXZK$1dIJsFH_6WKv!39G>J$cjt<*=$ z(o~9B!d3N!slXv$;HUUKMWv$-_D}bBjG$NUu1hh$^Z2cW!Vxcf4t#^}CXEF%N5AAy z%$lsJPq2DPu0jvlU7Oy|C8YR{^VF-`de_^!P215u#r^9G&A>PH_U^NjgN@;r359iD zGJ8>^F)I;ac=u$&K(L#6)G1bo4IA@4hU%ZZR8}vzxt5aCbc-A*9 zlrViVfyUc~0{;y1dc_SJgao6fT+^O{9$8_e;Qv?dGVp3*;Xc3P*cu27U(nG%c*r(H zzn=xN1^k1S|BO6atoQziNw4AUr+g?>q($K`K2yXhV?PP>&@PzZ>Ebstb1`K7yXz6i zTz?MXqpJ?M23z_d*$-X4K2+XUN$CMNbH0wUHn_Mq97Pnff|XJU&zW;FMfiz=e`!k9 zQFGpox*W4o(Nh7k_DTnsF!&>>mOiK*Pq6IUF4xKRXpo@%c=>M=>v=YoM*dhTmk^eC zMR!--8ZkW0=T|p&scUK(r~q!tO534+s1#x;P-e>k9OdFT+FTnE)G% zy}zzL6h%KsFB>Eq)b*?Hfe9Fy5sW;^sH_xEw$Jt82^R)B{lbP*nq~V>F|_gGXleM{ z;iD3E8K9q$s#}H7DcEPP01Iq4ipY&m%a!#t=tP>u0v}s>X&hf&^vfTriGrpVgj$wjw zlO}lGuJ(hh-n3kO**d&~KxNK57Im}aYOW(g=B>;Sj`R~B%yaJ~i9MlZieZacESZ3i zweNOzyF!nxZpT_YdSaIcl`GKqW^M6c&_*fi`XvNpN2*K97Iv{TE3YGE7d`+RKVCni z%Lv`u>$<7Ti%}e08#VXUJ}VJ(m;ffVhpmG#`&T$t-ZNpg109iFIpDc$0^hE^73P-jItw`^nPw z8jnizBaSYXS3U2PxSQY4beCmyE%JP4y?v5VkIBACeT-5GkQG?_g102it;)Bov< zlN1H%N64=DMO-5)LB8ArS@P(4m!jLz>()JRF)>~R#Vt52$z=N7V!iXl%pUi4VU;T{ zNgFPJFL`6_=-Hh{8AO9E07GH*MN-KUrhJr$Ye>Eo${Gp62F8 z91gOZ#GB2Z$qKr(ex!+RF*Oy8Va#TWYH{V2S<30XYrkv!@}^4oh+?v$(*3{>_eqj8 z_=6Ljf##5jV2oiFTa-k>w{2k7aaSacgi*K66o>)zX8h>DcCI5)txEjivU6m`30>{O z1h4vCrlad2z`$g+tMoVr0|^FYtE80C7AWIa0LFT5{PGrQ;E3YuEVjYjzu~qB{r#)=^zB?qjk}+k&BB zOgi}Gfx*HA^A%vDQiL}x(4x_r4ZxO_(|Ys}2fq+q2pN~i0gV4C-l$Dvo+he#KsMZR z&a*I~t8MtDj-Gc$Nq29AGhbTZa-B6B{NJ9vpl1TzKnuTtU<@GZGJ}o@>P{UbioWt& z2vzbrT3ZK{47Y3y@7ux5Nkkcdz2<_1%v#Xdc>UI5es^zb^*b`IMO8tC!)&&}mI-QE zJ!G^C!_d^80(6TVMXn1+i!Br?6f&KBgDTIo=Bq0-tA83Ap*$vo?_y^dO12#u; zKa^D+$m%0el2$1S%h0?BwHR$L0l{dhF@{_W)aB6zn6pfkb?i*?-w6)GP){}Xs$C0O zIphNqGTreJ{@0}7J?XNoKbn1m3t*gN5Hc{%M@py)E4`ac-{9%L6R+Xm?=bnCtryag zZoZQKe`A{ts!Jdn^A2t)RP?uR80nA}=i@SNp`|@7lZqv)Rc7@s0<2`@;k} zJkIOUz+#+Agk|b|wDyTPP|NfE0DP=A0e`g@_w*;AsE?ea9{x}8ysr%ULiQreesnK-*1RtR_ z_Wco|WN*_O))lJ!5|5npUVrqTcVv5{ESaAw4pBoq zTZ53R$LoO!sFL=6MIQNuo3}|hM*eYPr_OEA=)4_gNk4ll4}0*P-oH}qL?#03W2+_3 zbU`+u10cu2`|(*TTWvcgiAua})^p{%LjMl+Z|>pnrcT;QbA6`yu1q>!k_`2+IKi7I zdygB~wECusg8kdybe9(J{xHIzM2@q&Ch{vhwfSb6?$kzX0>BXZW=}&r=-jo$Yk5Mt zyHDAst_UE@eskQOI?BIs>1UH4MwUycgt*Zdd1R9j0IVnm_43 z;c7Zu|LkB1zPV+n%Q;Nc5aAXYg>n2A_LYj_!AA73;^VGgnN>`Q;#WE5ODkU*d|Hy| zyP@*R&DevTO=L&rvc3@HrEiERkaHL#0t80GYFZ-tq#|T;tnHm-zsI@F3#hi%e`~zkz^4`QPiVn3 zFE^X&lspYka+x55cAxy4~Rt?>Q( zxFj4$BW*GxCfd+!MVQ@SXy#i-ufu_fTHOWIo6={lDB)RM*;D=t(w$p#Ol1k|J~A%L zicM!6jfrfkK39wB4wtQunCDgk6HZdHS4h+S@7x*grZLiSl1nT7J>icuyxdKm!Y}HX#ZOS(#qo0{RK|KwN`e=p25WwAHIetdlsow*3j_qHu+po$KO> z3t#>ADm|_^-azfqI1-h%Yi)rA$w(+d`sxan%6)ON)ZpG3bhc`^othehqKA#W6NxCS zz1%wFAs8e2TEhaHX%hNQpR^$dtYnUUX6sxYnn8qRLwOmg}Gqqz-j#M>wGvZ;!&tMfl?`TolQ zwa@X}rd4>Ht5VD7LowY8MF;-mT%j0Z+zY=;dbMD?)SdspIdL~oYt)5KeX8#vF5ZXn z1;H!pCg-o3-YWk??Z;vIyH7O=M>J;(|*ISn%^|M7DAsTBhlJk+2}tfuV{G`L_37Y zG0`1bJHzSxYc~lF-K=97N*_%N^6V=yw+a`!G^@pOsC)Z8b`k6qd3lSQm7wf9Fxu0W;MD=LHN-VM>&B}`VN-faYo~1aL zA2pHRFsE;bg>6hJ8l&&k=v4y0wH7*6-N!UkL1p+l&-_Ff+3a9~W=vMVT=KVwt>f?c zLM84qTTFLpr=F}^e)E$@fJEB0_$#eXivIb-;nN1fUuTD7XLFikuSm!w?G-m>bBfsL zbcob}q4vsz%IiK6T~op}i&(XqItcm@ePQ^**?;XUrefKCop(9rvCnRC0(-SJ(gSuH ze@3FEB>4P7Rg_N1Ai{f@q|m?zhc_R0f&4=gbZ-5#*6Qaue$Tb?2r4ix82U_#D*7c~ zJQb7o|LCQK<94V!nAlv}X{ltvkU6V~S_&3K@o}iToRS(Oh*^%rmHQuIBtO&o2$s-! zZhf~g)eu!f`n#Vo5`R(omaj^4e90m)s)W|aEgZ_ulptXfG>}>amu)|aDwp5qTpV`pm%o)_Y zFZQE1{Fo#x&|5>#G=EolJLD znictBKSgl2=;$D&?J@D}hdlFcQ$$i_om0&dG{M_TUlUk!bF!~_(LZs@okOM_Me3=3 z9_{X3n(&RKtYM(wU{K1{{&a0mIv4i5uqmy{J8|O3%S^Dc(l*y=V8g^~_VFoWKsZ;f z`3gqhl`-_>f!zqBufq1uJ*!7sh%RgFj#D|}vuI8mK^SdDLMBhOyLE5>tLM1pN~HRm zM~O(XcZ&&XqJ2jDAc^?;_zZhlXkHf|Ju?$53CYw%M*mF7`dSyUl9e#I-zvd1MjZ)R zKJ4k?DgO8?EP6x{N1V{VTJVq4Wac$o^5@2eEz}yqN@y#v)7lzc?nXaGwP{DhGopwj z?d^FMU=yOF1ybFkeX4ocSkW?G4^)oNraK(^yeN02W=34jRf!<#lAR|b`fr)wxn!Q& zjjM=z%xl3rnzU+2Y}yyMtMB+S6Lb-K6p?*Bbc;{xbTJV;iki&mI?JFXfRw%LBhNi0 zXKXM$Hc{|dk7V4P;ezfETkZWDQjHULw*7BIvp!qD5&o4PoRXbr25^qcz-#@mL|1hI zl(KRC@g1(~yljqUgn|mQ88U9yOOs8iwL_#bG2!z#(+@0#{8SWS%?iQR~MEA@{k z>Pc305T6G5u?7}q7p;GYRVETVRI`JsTsulr-<~M-xAzwECseTC8*b?CjPd%Oxd`)R z*?(*vXC2!R6Mg4mj5OVV^GW#X*9I6{SN7B+hhONo*0>i@@rG!oS1J5HaQfOl5tn}q zl7(GWw>cYM#x(?rHH0d5@>yq{&|?wzTKw-c5bF2oH6KcwjWCvM+$2Z`z^SsB#D&e2 zm@&E%$@3D1SgK%ug7XU_VkK1 z!TtUP?~y^PyqayyD5<)fV3YoipMzw5WSaLTSTj==QqnETHR~)=ORRMvLBP`tI+3Vj zO&lC?OYCZgI|f6>YF8*-b8dbiiIGpT5;Ez`F_+6aB*j^kh)>7Bj0)+niH6G+5xy0_ z7^Gl%y?+7*`YC7I1=N)6(r9|ghwhTiem9`?n)<3D`Dptf zj%ep!u8mp6@4&KDlyNJTJNlRHeBJ}O-2Au1!riDM4t|xvGxhB(L*5_l?!EA!6gK6$ z7fHc{28e4c#L1x#XP^COulxa*7MIN%JF)d^zFP?8lHgt0xlX$d79D|L;j;C-E^r~uVm%cX#)r6;q+IQl9GSrJW}fkB&faM#JT=hIu* zV&3e=ItcUA>m{%Mba5ME#^)^s&zO z>@6TMa-VvVp<~;1bWLiJF>+27TkI|77ng^uu^X;~P0|j|VW6;*S2oXDf%3TZ;62ccWBM-~NmnHfM^cQ$@)xOF~UKrBK`u#9vVGVUrWdPx)eCg*7V+^wf7mZ+;_GZ0*n_xV zhk9j45!9sxmL|#IVtWscLs(nKcoy8hX#uSyN9<2iBi3tqX4*rFpt$48opgsO9M@;n zD>2pQqE#E~6A-nQ-a@GV;q~Kzj&0LNsb5%Qs6-3v$ypV5Id;b!x+A%9VX6{V@>wUi z?9IpgV3ZaORHGk%VnV{|9*o58bFx{up7$uF8&Mx#zal%UK+MmSW#SQ}Ysx`&R z&%gd6tnHpM(`jda*H-w7{ZsgSMjul@g2YtfTUj0$?)CXtPY2HD_-W()NiRy@vmH!f z-P!71V$$Rj^;GCkSk!g@Ecmy&_g3173;RdnrvHQU+iM{I$+@JKkSe@eo zVOWRY9d&P0+Rst&7?e$9yL#p-@{#c`7|Oruu5yGJk>3I>nyHeFzkX)%uzSs##uA3@ zOFbLLGO0?~E14^Q&!)~)(i#nIADF zvALZ3_dzo23IeLt5e9d=A}`i*0$dY%*Ky^B?E7o-@ysyn&*-z?-am4In26jPEn<5m z0+QfC4o8Wfjih8rA96L!*G05aaPaHzY1>g#{KGH@$41`4rAvv3BkrfL#S{b>fIu3r zs-qeqOEQHY$mKh;yE4MQ!o6AL;}`|LBKX#j5($b>pvM4aVNA)~Iu$oY5q;b*D! z3MCGNzYWRcpF9Q8-@F||{?r!?8KQx$#>JgkCLS`T2H3_b*7QQ2E`+jS8IZ@!1UO5L z6l(2^3bR2Zx)HHq#Z?r(An^)q|>P@qel~Qs!X*T(JgYT%_8DY>4UI@C4*Xv6$a-tJe;Hd_$Oir&MPR_4PDV-c@1hry}1kW@GOW${&ZL9303kS)|dUZ`* z7<$8MCo$!gu>tHR2U6)E>MCSSKc3gY04xchYtK>QcTx0je%X-Dh)3#{=&qSu@Jb z1`WCJyIjPiu$K{7JwH_=wBkao&T34X4eJkld%xFR_u({5s86XqY(J6cZip&q)6T6- zdd83l$CBQ@c(2At@0QVMHdUx^H9z2iIJ%WMTge^rEl#mK9=Y0iUgL43j}n(SjFdj} zO#gTm7p|?l9QusG5sp=wvaPq;s4^H9=Jq)^M)Y=9Sm+P5@2+*9T`KYComfbC3^j&s zzzgndtJXlz5Ph3yXW786c$i&(&4cicKCq%1ILnNbLM!H{Y?4WwHrt7UlK}k|w4Fih zaiV9xH!--}^Hm;Pg~vYalHr@_wY%C%|1w>@1i$c?pO5#s8(EW!mv2#C! zJ)nBDB2>`Gpd+&zhD_S1l~-d7PewoxhGx3Y$lm!2p!>r(p?1(Awik#9NQp zQ8S5qljU%UW|!gav+3EM$PLZ2+AZQ_BV*l!99&B30~sQ1_jOQ0I0HY8F!|20E=73GBnF=i*MN<4 zO+VNCtt0YT4jt6WO*e0l*8vt^k;jv>-H`>9$f)=jRDo*ch5Y9&qB1DX@pv*fw~%rq zD)g@y0D!dz39#)C5l2h0vP_%3Dp|$je6pV=HnI`P*az2;;80>)$_4=PXim-oVQ`jz zHtd(Z_gMN%nJQ{8du`0%!(9d!P3)%ML-7-tvwNSTBme-^-~nKc&jN9A;J%aY|B{2r zhArm8^&GzmDEjc5U^6T0LMDUm69T%TG6r&6P^2lZH?c8>aU_j=$MioTs|Y%;m(d?@ zIfHyh|No@#@_NG>V^StIKVO7Ap-P4BtjU%u6+SwoiKK(_J+5g3^nKx1cKq%B)$8OMZ09)P zzo7?~S`B+5Ia1l?gq$(tb-&sO}A58R?6Jsh#m5syS3 zEA%6C@aR1 z!bY(E(Rsb4IF;i8&6}pSKK?HeSTm#C^q%2Z(e_gC@K?p3Rs4iEEROM$0d&aX@pLsl z_@F`LF!XFVD@9dePyrMqO?4mmH}*h!aF#%EyC7+llX>4Y#rbKliJmk3O$A9!?D6uF z3`NVXszeKbGTbiS5QvKiF6}Hn@yi^<-2-hypF)${>)LaGk3xtAc;8?Fr{t$W=D^oF zwgtbY;+HH(O1>H?&#<5koW-9v`VrGiJ_d$=e@WXmbZw(l8I&V2(< zuX9gL0k){@sMFhu>`sKWQg1DPJG>8P%XMu0XrZsxF4@stcPx&xvbIi{|H=t9fXZc; zl_2z~RKOE(tpCN(aL%8e&rnLHpd#g{AaI~Ox%d!+|XELF3HL>C6%??71Acs8p zD&>2@7D>pJ+ryr8Q+pAxqnXX_Ev}3YqxnNyd!^yk{$Ug|v}INX z6?OJfk&LOVTd?Vbw7Q3|X*H6x4h?qieOM8vv^|-zylbOM+rT6+hh2Lj@;tv+J&Te!ilOGWT9}b`66W zOzr8Xfx}ArA~{|U0`P=cpj8AGnme=pG13brJv(DR&Nln&sU0}ESnH^uoU$BVcN|v1 zrDvx>!}%{`d(hws8s4A}YZitUkOM-M^fg`59#~yeEKAy``f~b98A?Uz*-87~Y{GMV zjzB#gsHY4HPj5@@BL^xg=&R&3JuZOyV(#cr7KZ)qtgRufuSMDe)0ymIc?1sEUIQAwI6zeg!V>#JLP zKv_yl(vJZr8EbHoY0VU>UKkGV{#`pkJjwD@WUfGw?I)Kvn#E#f;bY8Wj&uiWA)lDv zTY7cSpJk<96ECwJoH|zSA_or3=o{o-dn6d36if6DT)VzEwBEDu(vY4VwD-Fbv$aLg z07aSA{K+Lx_I)o*ayeJ=!RvJ%BWDJNDL7k>*8Q|bm+W4l++hfKM zrATgYpy3G)Ub2-z6fzt!Z+v@%a!Iee>o)teTaqpB`$3%R@JV(Cl<=v8|CN|?UacHO zHY*-)^dF&f;#Vrcq-Ah6rt1enytKEkd;on;O0v7(49yx%VCQ5%clRoh%8ap$zm~hr zAKqQYdRm^sO}NABR;0ESBUcoQNMs4gl|f8=I-gL9Bj{3=yDcbAE5he(UT_gRTm$jx zmFL(M@}OUxjXz8i6ZV;#CH8*5{Vt(e+2YYPa@_td4|THIZew0&KX|s^7Pl+Blr%}d zMjbk4*m$0@y=hp#+j6TC_h~t(5bG@VJ72HiD^}BmQ#zpWojDZO!+d?y5W{7FCL?C{nvLE%8xa+QTP{ye9nn|>XtO!hwIOE zb5|^U`G%)kX65_h#8s4Hc3j#N`X!)-If<_g!)50SGt76*tm*u^u8$B=c>;o);3^y=(3Uoz>h+@AyzO1GsC0)-x#y zY%TN>9;sE+ZvFLVJG(ghC&{(bHoWBm=MphFhcgVPjn?Jv?&#CqEa>T&B06t@- zucB(}f}6pdEfco{q&;Zb2`UJ-St$(<{cd;@7k$4RLBFv?lr9{r_uC9#SYa5q^bbK5^-{`w55aa~$3;Fd*c*Ctyx9iPH;f-ZB}iYc{8{O{?7t8Prf5hIN=|@Z;Y6u;zLOq?iH#E zPn+*I4_o7#W&)3DIs8DRg8If=xE+3$2quu4ws?_FY~~*19x_uMnA}RNL-dSV-fj;F zM3csp_17_$6jAGrFLLQtNVfu)Nbg^~4NU>Fjt&%^DS_Dt+%#=Dxjg}<9e5~7Wjwxs zS6l#!k@qj6Lk+#e^SEWhx&Ca&a_Odv0Jls-{PX7FGm%D*61nW1bjzisXedS>{M7mUX`!CzzKA3S^B3=Pyk`pOM6Ey?VouNf+@*n)$LQ- zhlAW-`_A(yITWVrA_=cn!gwEutYh;TOFUjUNm6Ti+-@fb^5%?ZX~3S-NYhoiS|NkM z1$NcXcXF$1Gm%!EinNd29$O$~fN)mgTo(p1NLErN#TahE1rZ@Jy}VFA?atA#a!wO8 z_1U-;fr5Q+jsH<~+yLL_+UyYcb3jxMvC&<65Kg#$JqP!7b#jK(%5s(ePGO#DU=Ii# zBhy8C=%$BwKq{tRwXURq%pAUHdij)aUOe}x;Lwz&!arygxu53@0R{+%Q*us{4^8QG z*hR+Q@^x#|P|z_PG_maaf{_H&X`vdA9gvg2(cV{$IVW#{B9C20j;#?=7|0aWZP0$d z&*OtQVwt26l9(xCQwh@q9r!*o=sa8;&Tegn^!}?ykM{d>9^Y=0_|)1Kd5Sluo`?pC z6xGhvbqCQyQ|rx0K{GTQ8=B%J9^fPcmHY{9KbYwN|8QTPKW{M;X*?CJs8$hP+<3^B z%BQrRb5eaMNoNE+smM36-SSm5Qd9?tIfoDTD~-umzSl=$Yyw%iqOit2KRw$hmPuJP zJKgs2`P29x@mUA3^X^k7Vz;sgqLB(%xM)KpVYv3{^EQw{Ek713qrXm6gcf%l^1bDg zyN5oC0DAyDF5gj~)Z}}8EXKx*%}JNntMOS2=4I)8Jg7cN#aDqBXXThu8t(bsko5cJ zda3<}g|VVhuj)e%v27sovSk)7FApfU(0{?plcdb*AMbQ|dv>ANm%b|}|0*Vl&XKYb5^UA@$N~+Yp;Nwa!qBdqqHa&Ht`vjiXa`U6ET>9- zdZcFc4bV}#Ms45jZ^wIP>EFLla<|eLdw0ruJLDdH1oNglCn-_OMg;u)eHz~s6@5Sj z^BFtkBbsb{?>gM|H-U)RtsK%;y+Kz0Mn994PpW`@Z;AiG%Q~t1>Te2_!R~1kD|c{I zf(+(mo2(suk`kBc%0=L#iFma!iwwVH-g}`l`a+a3r!0 zNIRcBGD~WJZ3F_TM#bUtkw~EHXy>k~{cKmWnz20~$oS`sBusqUPj(^pC1Pb9+AclY zK@ep1bEf3Kd`c^FwWT#p2fLuP%+^7w4Zu=s6|>02bV@9ck;^@1XPLQ+@85GE20!Kk{i{~0?U^C^0esEIW)+8l-GJ}f zQ|C6Fr`t8FiA*J0k8C#;V6)qPijp0(OC?LvsC$hd#-?TUg&MwNz^K7hy^0q3%9i+F zyt0$0I!lLjvu`Bdk1W+7HJ{xAKC#$s(jx)uT_NGpB)v73SUL!J?@9RJK?Cgg3K-up zVz)24J{AcQt=Txf;xMV3(W~)NFuHx)j;C~R8t5tx9W=m?nSrkA*wO9Wv5LWZAQe%a zIDN4cSwH)xRqFez(KW3VKN^a=Jrj`}{`2QF!4W?fYJQfqf1m9L2>LKFqk{HZ1?cA6 zg(yWtRQC|NL?T0*B2{za3KcV8b0vTJa*aacrsXJTY)Y<2ANl^a3nRt zgAf15HS-?2T7O20yORNeNPt_C>n~dVI8EDXo1Si(zB5fMD%b(U=kzE~v>-9x`VY=m z(ee-ZV~z8PQ$Av$e?+-~uUBVzcRJ`4*=+2v5Jvij`>^*Ubq^k%~<)V!ms?* zppM8cPt9-*E;N1RC|-5^c1G?`l_Bqc)`B_p^n5wh#7kS=^Rn?)Tsh_Vm;7$(G}`@T zzdzSVG<>IltDfjcuhC7dB{hIZiEkzUB|qHkGSzRLIVX_rx^I~&XZQSwBx6_8zwCQ! zJ|zV>_0TbIRTluq)OwEjc>@g8Pd~Cy)Ud~Aam^WRX*x||e zU&I#w9PapGuju8TqyjY#?G*3&qHd5w0tf$$q5T#C56X`&oAcy5gZe2# zv?&73=q;W#H<8?7pORAAeaCV zbnj_oy_iD}jjkU6glBKgKZK@uiU%3Xd^auZpMkiHlEYP(x*q1?7u50Pw); zO52DCWMlSf+)QK`@ux+Rijz7nQ`D$M@%C-Tx#enzML3KSyrxuh1UZdBzj+d zz9j#p{vw>QCF=fi^?)6jDdt~of2lTVz@$-(cqy@IHeRY{=MQUp2rMf`PA%)Sc$F61 z=T(|i87h6qugpSXWpAAiuOD7MjepMja#BUI^x@!g{}EXzHRYkJvDR4iDM5tU z)khNE+ATdVgq`-DGKG0Zdv?Wgz1{~Isn~zesJ890DZ^V7)Ttn;TRuK~8ehcwY!atg z&I5}28^o!I3S51tp{Mw}R9lkh z*q{pQ;&gn(%qwv3tqr}!O;S@CA3%uhMoc8}zBSq6WJVgc{k}Ro9PG$ z?C3ichfNIj>w-_rvy()}1XWlTCjm3X3%+R+VKb3hogXAKGE(!k|6qL;wcs0K5bahS$&lysptX^-3~BM2P_Q!s}Ca)@B@<_=Nc=BJ%e@o_&ni&+2yY0Bn|T z0T=Df$CF`1(ta%3!K?9YJ5ighhSmx=uY9cEujqF0Y`oN=)E}UsvjS@NkL&v%|K-7I z3m4IZ(ryF*Li#`Y|I(m$|AyBvw0noX3P6qVX6{MBA-!eQ&2hs>C}bM2uxVs{;f^YY!DY$T7_X^}6F9@Cl8Jrc>f4dJBI_Wb`4^grIY_ zZ^lkAzH?S_Kf`{Ws}SD9gW_&R;9+n{yR!Fi(hF%i))agz2nr?ke?+!&kE4XZ$4yCBLiG6nBL;A^)+7P7RSGb%jBY;bUM+=*vpfiqVlT;Hz@IqUhZ@0;Z+2^~jrr8z8Pn+1>nJwU z#!k_uaK;ixrwBFWcG17Zd+XOfzZyad0f0vbSwlB;myE$uvmvgN{>OyYy;6yl-RU6b z!n;Wr&?iBF%}#K9)OJRJ9pLytgS^LyIm!Yjwvyrau*YS8i+FRybqKm)36vYt-=*la z@uxsgguREsW)Hw2a#tLi7Lo5r3&5uMXEPvD{OMy;9GkEt9bXR$6QYIE_mzK(`0&XT z8%?bxP+-zsv%J3f?;(&bkB>UP?C&9v&GLFA%y$+LHnHYMSkH2vvoIKmx$M0=?7Rs` z<6Z-)u4Xj_sK1#en!W!$2+GHrj_mYuxZ|sRDPfQQD)=tv0-Z^YLwva@EqwI90)APq z{3C257*yX;ueVasDIVe(#tK+H0l;0mcs7y~K9X%y0ZdZGTx|{t^(8!}e0sfA{Ff4) zWSsjzP2aHzs>ny{zbIhhhkmlm;Wp;~<3p?KDd?j>5In2DCjZi*g7A^z2v0pDH9bq$ zmoW1lnn_T1(**%l%n1?%f7SB4R4FWc8c%SoW$yv1PJsHl&+oe+koNsg`fur8@AsV* zNdJ=IP}%!J4yTpe{O=ax&dh2CdWgQ54pIUur110{Rig)1I zk#<{UJ!A8aU({0zyPB0mrY-YgIH_{?I>zE3vp{wwz2^d8b(?QP)FjR?n#lz!NYeNrwyhZUA@x<5e>z6SfH$#fKMQ-}x zuQc{w>Hlu1SSzdYb^iPYyflSJ2m$o**V3fU=Gs21)H-;*FAe1s#;Irk^6C=H6Zxnc=GDzax-EJeI`en zY^(8;a0*KtiD99(v$#zlU6wtVdW&dMkkQ(Z{mcnd81)??SK~lXQyEPSkNsDq|L=xs zYE%f_uyG#$IuYgkMK5;jBL}@Q{mFgl38u#fbGm4dL{SIiM)}}U6Msw9`dv&QZm#n zH+6|9p(K@N!=;=fQzi3E>PSK(SEeRI8A>8^#)F8W4w*A^%qNr#k$LL-thM)Xd*9FR zpWnZ0@3Z$l`>eB`*YkQ_&ue+A#N`dl-3jEV*Lfmc00EExu#qRgw4#{}{Xf5cxkBb* z=LdZRy^K94v=GJ6uTymyc-L$o=RAIE>U5<5mQr>3Egi^HO-wLsRJih_Zw4{~k*c0G z=03#Ylv?N+=hgvBql!!NKBEVSq6)q%EE$jRdh?ej+~`CIdE7fv3;8I3qEuaemWhtJ zOHd1kX<2c7MR3Jj`ol;_PZ6=Op{Y}ZBo>TsrY z+NMqgF-Z9MVGszdMsr|l(4Y}smpHgKhjdHmy{qcrgn!vV+GG;RE3B$ZHQ^F=`;}MV zu(2mZ`=|-lxf_3a)s&9}N*I|B-+&bpzUi5|7rE=JHI6vE)B(QOIc33FL(m2W! zfC>LU!fqs*Iwrk=KvO&-DTUi8ZiO?_Jgsit%l^tN0njc}_Le9A#F*NU9B_8Q_m+!? zc|sB|Mw`rFBdTWvqT+E(DYVmaW5TDomHZS+t&W8Fo+w0t;h+Amz^-C?!T(#uNOO~E zWbH7@i^LUX)$5#IweKsWT;-@7Y3_srBQwA>N=0KFW1jeQ zWM2c^I&1OkVKZkYb!Xe6$>6F}Ry4{S1E7J^BKi5PcFZ`2!Xk*SD&?o6B%K!3`&%3h z#N$sHdT3m{JTDGnWAp~?uGzF)8!LgK#aC3#x5{wF0cEPH9QSsyx${7B+A!cQYLLuM zW~jr{V?PZpwr_(M!?X?^gtND76|>N%?|Q|V>{eXx?iTS2vo5UY0N(W2E-JyBYN%Oy zhWOS9U-e(+%h!Fdt^r}a=gs=*&IEUQXcq-@r=#C(B%5Dj?(~#K1?EnI$viv-F5LoQjK{iRl% z;l3x^VR9==?9$a5QwE5twO#0XU<1z{!RK^D59pqk(ZmeARw|Enq77!?gA;`%Vy9Dp zwn!R)K_kq;^Ct@__$BK zA61KF;tLmG*Zqu03Sa&>EL3UjosXKt7^aBJebf9wgby(NFUl|4JMY2hX>ybqAn!7_ z77*5cKv--FV&Ic7rs9pQcF72&OIHL6h80JUT6VP73HS}s=gStZLNz6p^4}2n-uImNM;1^FP zZY@*x!EY}WS9%6%t5TW`&73Vq5ohyE*!3w<>lw{y>H9{_;({1_bl}rTV#Y#2nhhHH%MtJOrOS7eX@u{&%){492t@8wdPu8Huy?ekA*}12j0$E{^!DT& z)+|}AD_wKHGDeGClQty;U;Oz^kAxa18bkNZavya(Y4u9%#A6`I3@ZbBjF>fh+ouup z|Ncxa3_6=fNv=!LomwfBi7h%TKXBhFT4;;;ar7bmi$RP{X<>G{+ z1AuIOe4A5l!%Vvw5m3-%>O3Hnw(;Tw+;iN5O@A#n3+c{qEW2IXg5L1+u(-)EJxNW4)@&65`zwyX$wqK;GdejsEPnDXoGhmO*xADP7StEdTGvSam;Y*v zG9Xd_IgxMo0M>s25Z?bGNo%Hd<~QKEEP&^t1JAXUZr%{*+5^S)SH-!;rK@uQ>htTR z3-UoWxrAfI=11M%0GP*4NT>RJh!DjV$PL@dnI!kcGjK`s9b}Z$HGdusH4m(W zag+pj!1zit8*v6+tqSpKe=6j~H_JhC@~PJ$ zSO-Ym)iVg z%uyG93AnONU4OtNFxT1jW%=ThDJ+?vnGYSF%6;!}8Fdr_XwUPP_(=sQE4-2Km-o%5 zJqvq0Y{b9quRkN2|1vSLgp|dc-&6QS%=9Cmao$R=^i3Fr43mc=g+&Pf%9X>f$?KuH zb<`1r=e&fKPE2t_RU>`uo9dx#$~u(Ni_&K4|KY-T;4z%E+)9Cyvb{VwQhj_4d^*@$ zScy7i1D}?ekgvzHIl2eF384ProVYv|EKK9;IN|qKE-R^RLyL%*g4^G0=oVQ%(kyLi zVhJ+P&|7FcM^y(W2(RbLXFt1woHvo~WZJK6F=?N*F zs0e9Eo6U}U3}Bhz>a}}EvWc$*Fg83!X{>Ep^DQ&deloQWuO(VqPop0vMA&@+!J$)a z(5a4TtQT7I)ic}~p38VInw~8c5JUiQsaesP_}PF7BcbJAu3ltNchaF6CBs$Wm#;Zy z1&h4Qclq(H>zfH^2yE_fW}F*-@#}lTyOs6o8t2h7?^2jgIuSJ9J}u4t{&!f`mGx>b zadbd*|I|O}LV?P+s&dlX4`x$U^)hWg0UVUttuVj84hTbwqXF`>TN`dvOwKlD6}*1i zFRxZiGYi!aZr-xxaCwQ6r!MXe6>xRm_M*fS@xh&z$BWxPWm-In26ULI_pU&2WOcFKy^|^ zvgIXN26y~$7?;6W1vVs-gU_YlN>Y}6h#1ViUp?B+)Nhq5=m&ItRzFjMuYJsoi#6W+ zh>wbLQ^rLmm8>JBnn&R>QkJ~}5l@$T$4B>udZEnJS3Hwl_s+JwT=8%VDkNo{XLDu@ zN{vy)!E8aeUI3F2PiSq|$)MxB)S;V4YpxMcbpt&?w@7RPn6<3)kmiDR!b9RO#9_Ih z^3R&V|HG9zwE9tI%b*~naL)=(Q-IS18U_y5RlZtZ{R<00D-RSlE-FxlS0I5wmN}4Y z?JyA?IxDnrg?sk+p!s%Gb%!RZLP{M` za3&QvqeVZUvX2pj0_Vee$M}^#QhHQ)4@<2!mx|?m0ghmxGI4KuNg_-}u6lKPN#t4&?7i>oyj;PA(X?K$y(LD>kM1ZBQIfU=LmBq$Sf{1=qH z2QFgVO|>w?7gne%6?iHEBy-kgL$V5;a40cG*FpGt*!LS$$Z5SjX3O%jpqa(bC~u3s1C82_`dD{&+wbHq3;V;bP% z5rwIQ-_0VGSV))?D%c9ToD_7859)ihhYta&`&a~{^-_40>w|ip#;_OQh#HZJ?7(De zAYnz#Hd~yaE3po)U-UX;)N#;K;*<`8-dp&C!=5c}nokG3SKMXt&cNVQ=YC*G7$%#~ z#7{m#6mv^`6a`N;ecFgGI}6ZC)AyI=#f5G-wS6H8z;kLNrqI&+KPnK_?&}4|%(BBR zMKQ@A4X4LX2SU0=Q}EkeI(CYjY!V7n`|E&;t*-jSih--|kkUIo2}9w{S~%~tJr=!%MEk+fbesdgYPGh6fay}Eu{L~4 z-(bP@L+l%t)c9Ih9>FWvqQY1+XA4p}Q&YP@s8O1+{O2Y^CWBr1{!@K#sS0tMAJku~ zHb3r;BD06G6F~T4na=tn|BkAjfccAJz~LW9%QTM!WXXU`%kbzO`Dxe<_cyE-GP=E+ zO3bn&p{{{Ju%w}1Kw3GB&7*lf?!H{LRw>WvOGk~i3+Uh~5^wb_Jk6x{ORx1!9D$0Y@3PM) z>Hz=4+z2W=l#QdG^m>C>TtMPobzjpEM?cYLRuoX8sHrF zu8CAFR~%HmSt@n7@vrUGpY?DM9RCSO-$yUMA~`D8+Rqm>F`W_qvxFWnyl54B_N>MW zriuQ3>+et)Z zq&MvUf_P*!k$TLYPf+HHXQT)Cs-_VWj1tSKrq3LB4Rhg1pZZxK63wN;MFXQm@yJ1i zXSKP{*DLVPTx$Njl%!~P=>y{oWnHPVN_A~5A|9Skhg$;|X&(GIEGZ6a2@P3@)kdZJ z$^KDN^%b}c9tI>S0t~a~cJY{-E&NkwE6H@T(rTPAeK8<+H6^)GOjZmPOB5Ac6R?DW zc$v2mF$)~&YpFd7uG(y3_F@#9m@Q1JnGkc3ohFFc#pZ|D#4I|%CT2OG@Ue+mQ?uu6 z(bsPR$)7;FOKLP&=mB~kHGk^0KzO`1a_?9 z%m3=eCE|-v98v%ZxLn`KrYjb1W8S~4o)oOgu$}^HBR+gqnb50#GQ->(W-5NSj>B?Q zfjJ)pzR)H46|N^9*B5XFwW{b*$%hgITVnkS9ZxQwskX;d*M-^q*psvaD|Z$) zjOl3qYRv%^Z*#`7w;y_0T4@LVmipp!5|b5Uf8R)nB(m-{RkEDa z&r4BfRrr*?y8Xi9D_0BG>x8h!zhXXsROMu3zh5DaL^(!p@~KEYFQt_v>*Q>K8Hufv za$=x({?$W8fHQVlN$Y@?5SeZr?kqB42wvO7J7EKSPS;$b>U z=Fhv!Y7XpxC+|NLYC*jKA|9mUE==yXKK2ek{F~x}bwiDD@1oJUnoUgxb$MUiiZ^n( zUE0ZunC3y1OKViQb9w5)l?63VKQDO_iY10wH}N2xua6ASl~;z&hltOGrP@(pL+n_zguxz@MSVy!nq17+DLSt6{QjnWEfC< z{rxEf;M&poG4+6-*hvC#8JZ0dfNS?iUi=YEzmK&6{;7F0ap*4 z&IVi++r>Y&Y{wcysb3Xl_7Q-qmbE4AfS<%k47egwKwX2Xms|#lesFqY>hWL$;CHxq zQ`7u$0h5cl9=Nmf)(^!%yo!o=pt7BSxL0+&lekVd2zR(eQqy3)MIwvxRpf1Pm^?@u zkBx(Rc=T}f;oJ9alxpE+Y;9AM8L7ATC@fpPD@!#1FJpJZT$AuJ7Gq@aLpgK&78W25 zH=Fti=yijBRlvj8>`dG=fL?*jKTkf8FzO#fX!>55YZSSPm1zK?e}$0aVcK{Gsk7LA z2*mh^?Spz|6A-(Db9a{Vt8W*-3~3;6gQ%W4p14rYgnUsL<%?kzu;hN8%WC}NSl8CH zr)D5&1kMG@oMwP*vDRV>yg77@B6N)dwDB9aLCbS9;(d{(>7h!XWRa+ztGL2VYgiEe zToY`Tabztw`})^$K8}zH@kj*d)N1}Zc6oLTc~F?TEE!TZSfq*!ca9+j*x}PG8bfF zM@U&%CR-M^P{{O~8z*I9%pvIw-Bf4LS}@#PRO;lQ)@bzT+;Opl3+ot5iacEOx-+3> z$ci>QA(nUn*0Z8Omm}Q(?O9b{SymR_^Pvmi5Ea| z=odEORk9ul&b);2-*JBlWofp59`{2!aoMC=-^4Fob;&oC3hm4Wu7|CQ@7c*@{58xNPWn|O8-U) z0Iir$q1x*`4K~&RP_~3pTm@w1Xr7^KT4!tas6n}uTZH~Clk#63zOjP)5n`IXfQJ%K zya38p&%c;cMuZN(e09Zs@uiN`m%=bC&78^+bMF8lVUmN;O)8fz^(8M1?`KZAh`E1) z;XVPL1L8{`20+Wl8^dbad>$c1ERgLe$iP#LCzAecrPh2S5;A_|kkl_a4h&d_l(oWl zjc%wUv67`Z_2u;HFY%(EBYj{Nsg|c=CsxwF1^sZ;i5%pz>Q?D0h4b1We z0Lkwo;#+DOFJSi*{L1{9VeWB+9tHfe+jEo{67+3O|P9Chc-yQ{jG9Qs))EA7)RrC5il&$G()k zEO`BFV2@h8Td2dii#|Wuf6|ezT~2k?YACvSV=dG9QS6-js};#^9NcU8)fL4(9tHsL ze`6T!F#oCqBpJ(&tSf0ww#fj1b}83&djD9%tM<3bc>*IZYEqhEqV1WFa?_gQ9+LZN zzxirm)osIufbH0}+T}5`j*wPH1vt?E=E`MlFbe+JqrYWQNRvx1Q)?mBV9JG22 zUrKT8?WN`b-Y;s+kD3OVYga_c`-*J|G?4uG=eX;Q`RBqH47;CrMt9&eTtD->Umq-D zUY_w`F77gB88hex-*e)i!(-_>`sU2};=o;PeDGUm%}r>{*TM|!S09|cE8&i=tVoap=y$pA5hZ6Xq4y1611`CC zGWcuOl)u*Z>KV1DU*6vrbT=*)vg5vjzFturh%J_`6HDxe0CCB#!{|DzO-Xag3bnF0 z{xQ==-PI<9o@nB4$~*&}s71IqFO%Zu#0fKXa4zlm=|P?Z5S(;9u(9(NvRipY)xKrA zS1cd>)kdPNUG!L&+|f1b^EIZtU{O~MX&KY)dYP8AFRQ&~bl~~g&G)vQ_K?ras!!_^ z$=fT+Z~IN=;*7;*_p=ZSy?qpNld(d2aKwso=9?Rbul(TG>fY((nOwT9ji?N@2-@H9*Td1!L(MHErY{6UzZ(o4ZusvYR6Y04s1lVS>&rqB zR39ewarXCG@5-ZjV2jlqR*T;dX?~n?~IYpgPMm<7J_78NW*Xe!+jzY-PagDf``$xEh z7&EvDskc@eDw!9MwP#SjgVKI#9sV2UzcVTrc%=U&( zvRcTNXYRc(fzWseB3@aKWSi#L4)_vT+a4xD?~mR`coEivT`5?@bIqfs_I3+(Ck>qo z->i)?wgS%mN10w?qhq9v&NUzGQe?Lez4fv@WLqjQ^CwKh!;WiU#^NfFxVo13d8q4b zo`QwtVGbyAUjXT6FLG6+4qcpn3=y(Dl6%QEBF>JZ85=Vxz6ST;sc&R^`-@#{<1Cv* zb)X}0eAyC~{rAx7S!Qr0p$`=K7R3SbCliZp)Qs+bghg3@u#1=S7=rBvN|#2)Mu?Fi z5F;&G4n4|KeCTlCqPd7fw{HIB&+8xpU*FJjNZ_U7U6-pMyBO{|aH7PM=%)RxVa34R`YpFt%k{g!t@Sf}VQuVi+(BoT8Jyjk8aFjwKDb9-$p z(F-YRzXldr#IQOk>^NZ&;0;kwwL>zGY=`_VPfgs?lYoWPnl0}#$y(6*qBy=or9@ki z;X0?`FgCe*D&uK!0&1w`W@UK~Q81y;z1oi=ew%EF^vRjrPf)98JM}Z3emaGj)x!>J zl!yi+NgJUA>MDcymSynDc!RwkYt2`=C|#E_cevJ()u@&dq&#`PV#D zR`ka3nN%KM3IFd?$NVU6H6{W z;Sg6pWgM3@u*iV=&>m`#U|su!8}AUkRm`DHcbA-52Gh_dS7lXjX{Ofq*E4Fl4X>?$ zNgV*jVx47K_tQSW^uVNGI3Ail3JR+RMw0p-U&_BWvC&?Cw_cCE_^)r5c*Zij6$1charouj7dI;vvR!%| zR>_Mwxi3b{Ac#9So$t1OSU9lnSKf6D+n|+N-&`QGRr&SpP0ws*cWU36%lWaZ6j!VZstDZGvTBKRr{Pyx_S0$YHakF(@{(bR=d&b! zId{FVW8gfc`vr(A1v!cW(kMJ~OZP*yJ=b9Gi77#Nso|V{E6n0skocA7er9Q=xO1C8 z*(A5TsJdjR#CaCL3!%eyK|?XKPa!Uph3L!cv5@c;4f<1{wz^cPT9n5~Tu-;F2iZ|~ z(H@Fg=aL&^F;;gf+8S29Gd z%AzuHjFhs-ncde7DC??nNx?E}lXxRSKapYJ7BeCUjWye@d5qNe>0-+HuuTvk@@Pl z96`NCsToGyBn2*uAsCuE1SyeOQ?ouJph z*pEAmk^@v~=oy4IVwHO46>mxMuBrrVLM*KrRcX32OJ4u*}d z!s3Zws1w4rndonm#8L_023g12MqJ-+%r*EQ!fOfwjCE_$kCjHOZ>8Bb{Gi?^qM$;i zAX~hj86b@Ht^9`C<}FEWCkVmBou|k@07b$GhaAx2stgsqTYBvG=jdz(7W!0W8K{vG z*Hw6!Y_xUE(LF(wwP)n>68j;>nj-S*8ne!TR8RP`m?eG?JyAsD&opR_f7|p0ia1=$ zelJ3of7=MMqt{Z_IWJ#ydBd+z>@S}W*CDm8$Cz~-Y%YIMW@_XnYk8z~&4`y#(|hc& zak!m(gP(Qnhub?IJF0GyDy6lP7alCSpoLBqN@WT*G=I?*>45`;Fl< zT1Fhv3AsRd@xXaU#PY#=!_zju@a6+OyncyVYD38ktzW7qRgc{Y00)x}Db1YAz;XQ# z?d9p!TnEen@Da*|{;Zag<_|W7wIC#h*5w>16*?ixbeOd#GnGbTN?k;%W7WnaC>N42 ze;*vU#FWZ_1M)s_fLzDUb{>QSmzh#ymbs zTWke?O$Noc9Igx8O#C*=TmdYCT^jh*8FcDf+E_pd#L$RwDZ{4~7a%8?LAten2KuZ5 z@<-q$8xEwhW&9q?m~}ws4gjkqxJYP-Iu5)9H(Fmg=<#+7O8&OQerOuNO8%wR+U=CS z^PFel6UJV==_TQ$jey~6+Sn_$m_L5HG@P^&FwCQk-G~F4rsj^=aM%-*0jbOnsEx8N zsd|--5yPu)IDGw;2n`*DS2hm@fq{|de{K*p+{74_d_B!Aqknet(|H|*e47Wh9FWMu zF-6U(okMb+#mZ{2!kx0m(Q>#vjF@Jk&zn9eiW1cO3_=UP z(#%+rx_D9)Q0gl)1QEtw|CK}l$ijI2)^KPiB{xIPxhJWOPEr@~MN#63G*DU>bu%^R zTmey5UFs}@sg}pw()uf60^ERc=m1JXk`_8mtyjM!7^U#jdfs&nc7KmS^T=D}fWj0z zlYxISHD7M}D&6TYH%>voZBK3X-i9Qb3`jXI>F0A`+_qBN<*`*mO7k3gg7ydu+dK!F zdaIkZ7v;b;g@T5TcK;3dgEjcE1jd+XOdG5iDs$U!l4CRI-r7S4$0~uf5%Ci@ix;xv z!e8=aK>kfC1To9%ZV6&0(ZfMx~kfWiG{UGP~~#Xc#?@GvUT!MJ|W}2^u

S)|Jou6-0U+t;;Bn$~l?+WhpR0gqmEj~Y=WGRFt^B<1uP`G?4Ez42LJXn(ge7k&deQ@(W_kZZ{&8h97bT63o@>w*))0*eMOA7kS+ zFZ>%gyxaxPXt>15Rl6Ic7A$+at0Hi32RqgU;A##Oat%(0W7Vt2&09O*fHNGhLYG=K zIGsl_vHpEjg&~{JLG)IG3k^V;iqx+y{AG?sm3rMU%eY0dzjzYT*O}|igOk@Zdt9#} z*pvOmgaQ+d!&iH;(`*&tit;Guv?ht&${maR6EGY5p=B(NXb7iUg)d;Yas$xm0#nv; z$=9*8mtbO>TE?Ki2hl@f%smU(t=u3#lEiN1j+H^wmurB-fKx&HN@BNb;#Qn_zBSzN zTs(!@U!3p?$0NvV_BsGWu9uY1%dj7uR>W*nC z@XdU1+K61}gzXDa3lh4BsAB`9&IEj0ic#HRgzDb3i~-s}O4pgIi{)|?Ept~wH@Bgb z)0|FJ#SBmofZ%wt+HEvhHfUMAk^KeK4IdyY&p!Wp&K4S$5NRA-YT*7Oh?_zS94o12 z)W(XjOv&Nu%AdJnqJQ4{HzJeyRXdYvYHh48^CCX2)H@`H;M2G|lk%x!u(VbE!y1%K z#8T^%Szky>?W0)eB(>h}QfUohjd_gV0MRNZw^)90QbO2x;B!oLGwd7MiIkz3^5X%a z9yky`8wi9~|&KMP^5PXa%ujL*j;cP)ZqThcKK|CDOI za9d1~ml=G2)(1rGlTNYMo$#M{lDVf9^WnicZcj&C5Z-SnXo3Tw>;pkL^EyQ1T-rNh zib5}O3whCmGg{c6;54h4n&H?sasep(>qZRSlSJHY2u`#t%I*Fvir8VFj3i<{CLf~< z=zIqDR%l1P2QEPsd53M16>{FD|T zVU@cK{?pP%12MDN@FvX5s3IhrZ^UR`pw|S*asu2poCvUg7;e||g$ap%6u-4rXUJl} z!vt_Q7>1_?qppijh&H)pXOjdVh~i)ATU`W^Gl*V|wKOIx531TnAZJ*DbB66FeXTX| zRehWKPLVmo!uA!F-F3k+EQgJ8T@2d*Yj}rSK;4=)@xE zVTz8HIl~NZ<2XfdX>nog)Mt8765;2q$tI*fjAt^bC53>oMWa_xK-aHo6n;(}ip9vA z=Ua6YnKcCYJkZ0|JZaSdx9vbpD6Qg9$VV9SP+ziJl}w*ii-DrwyzDqM5ks@DN6+JB zv9t$zcOSX07wKPm>~jyOr?DMD1q6oWB;~+OsM!MZzcnX<=2HZQH0goA5aH`z;ge zQhx7vwEoaT2*DZm#S3Kx=i>RTV3f;<9#XWxtz`#fC!X7il(Sq-wrvz#I3JysFH0-~ zGan1|zzo{A)0-+zyECwSu>=nMMjUuc`<92j3N|Qp{h7HvbEi)L67eo(mUEIGc5nB? zd#a+JM|K64au&DgJ6Jb|wiN7IyotwF+{!aOAQnsyI?smE?la63s{1M@0mA9ZXF~|C zrbeUu#?zs>9N3EgL)IvAJS1FC0se?rI>1j#!g>O_B5NCVdZ7zQv2U*3^ zb-MGRDssuyEMPjyYHjzPoPv(v&N~U`C0na3A!)r79M^g!X<85JJq|;TpAS=WegWP} zf1qbY9i$Z;D}CK7NchGhLJxs1<04=x(&u++OUhNFrdfObjMghr?BY`iA2kPr{ho%* z@`kwlUchCS6GK(Bbq7GMv9g99VyETa4(KagPre<#ST{9V5dKi>7&db4ar4)JrORq` zcnkBgB2hIH{(^g8I^~_5gG6FjgJoX~2dWZPQ6$)-3J0|3M9_hr1D&Fhysaa zmP1+d8{jm8n6m>OukbwFJRf<5Lf0Ww*)>f%ab27dkcW@M~BbW4_Oir$^F9$ z9}xuH2Itj?m%DTlfV5F>auVj>BC63~_a!~FPP39DMjB8NkMX3Vgk9+p^i(4dUFOoC z*Hl2QN&w<|qntHmcw)t z8VeKuRd$6%f$W#JBfl1H|NO>wF8cy1U>W+~5w*&xnc?^XZg$4<1BtcwTMs&e=_rH8 z@C@l@_p^E>jrTJ+t_TU<lq` z__V&c%SLd#9mf?1)Sf|kQ(l(yU)n8X-MDBq_!Aw5l3oF^-N;-Y%b2fCl zr{H$>fisi^4;Y!*N8_M5EY{(-UiUMi9|dnX2DC#BjmJhCKAc*O*hj$|3zXY?2_-uA zvK#+7h+U7eood15sK(X65=THdkFnmw#%$Irk|^`Vn1j3Ll9!HMeCR*RVHckk$M3c> za&npbjGoOHa%H)@exY+eIflJ_wq38+1r6^vShu}3&S)VkpY-3%fhN|3T5*Khlf6VO z>NH2vEBLf01X-0kXHF14KD$Adi;6C^HGNKGCJIgthc62;mN=~(fs!d|MC#S)Kt>L` z!9XZy<kBVAJ2V}F3V*4ITWka9u&cw9NIspNC68w z4({x@TXTtKFTD_VJF)j;J7J2L{8?{{<>ly*qo@IH{l0k)Jc~;AD{Iz>v>rshh%>+T z0qO-kM)Qg%5z(LT+G?#U2i>ddk}-e67g7IbiCP)B-!naQ3FUd9P|#d@MO|@7&Hn-~ za)lb?Ep~r8GJ_CVljR1T&kt=kLcRR@%&L*cMAKU?<8I=phTL7`jp({`s*>PvYcp1- z2CVB7MdpZEl^ecilZuS`b0qR=S##(60o?1xI#h9CC%qcd&8%%3zDJcnk&oeEv|W#c zO3m6D-;a}BZVwYkq%>d^>|XBN(Ek-PK#Foyp7O7A3YC*jx3>b`ao`ft!P z0g@L%!3p7y`3rIkt|l>3rja$Y;rlB#Z+n#b5U@O;x`??&W9vzS#KmjRQ`kZer2}(E zD3E%BN@JggRsadjn*Y}L9(y7v1bHO>S<3ZLEbS1MfTVBMa3`i%alqQ&DW+BgvQ$!@ zGb8Jorbo3dKhaZyy5<|(J!;M4W}#nsIqmidIUlRE`(lP6Y@zHP?#A)wa*OMMW6Ql0 zI65nf|6(aC&S(=;&FC~BTeMukjvaWp^2@&MY(ex`S{KT(A^+N%6Se_pmh~5862_Z7 zVm(m>$9rKSzz~J(uM~|Y`YWvqq2&@eW5_MG`BPM}UhM(W`_Mbd-pY`xvcKOC|8m#_ zi%c4CEf|h9ALYNC9C8%?VI9G+Z?;<{EG?tDHmi0jHmN;>8k9V(lanZ)KT4F1dlWt( zidQRICs{pD8kQ}26h0_g4Gb=vdxVtx=n7s`^LOIK<@21cWH05dMBjqw-W)G1Ei;&8 zOUrV757dNbqUj}1?|i;sfKfvylsWJvfEUKTn_jyY25FtWY;51B$|S`)jUHzRaBmT_ z!-fs+*SIY-P_jP_52`KZ{&~)$x$x${*Mz$-Xv<8IwhRSuxI4+6g zKH0Y}CG;Aa%&t@-BI?(5E-1^GUH?Z}R!D!xR+jDa{31)o#&!%_Z&m1FMy9)~0H-@wH z$)u9?i2kw4^}bcZ(S8ss%chuJF6^ncX2o;PJTK&N$MY@o-2@RHSJ5TcB-s#3jeH5W zCnH4&#B3Zo-?^KRYAkN)f+Z&G1PI@Mj>INeUrTPV^lfvU5pVwk^5Bc@8tXdf8e=cmgtSjJETJ zJ_^iX{PgnQ3xBm4R$(t?LGkPbjz3SrjS^d`c6H21;68}RR+A5WMQ>IYXOzL>*_LEN z>CwdOk|RA=`VH$wlQZ4S>iL$6+Im|Q(BxS+Gx;wmXsq;pW|lLi@Z(%lxBCgAroHo6 z^3lumkS$P|g=wVi4!;eU?SGni|@G7zy-ao%J%^)lF!dBU{vC#nV^SJzoS z3Lh86o3|QTZu)AXLK=3F)`;y3T1Qs)!HAY z;nmD`)_|;bew;C%A%6Co3|DY!eGZ9gV~|kegbl$f_%au$vX7B(^2mwfz+6vGu*P9m za)z;zl(YybP@&%tlbE$aPIGtJ^J_eXMc!#ik%4;x=_KrmYnkXD$%(`m;IY~jZTk?agEaN-xN=$=HXe_U~a6JIqvUjwgV zCpTs01f~xHS7AFUW2o@RVdKRXj?wJQ47ZClia?;;no;1c_lurbgxt@wvNBd+|3ub! z9%E$aIAZ9NzKlNcQGx<$38q*a5 zUNprgzBM*oeiX6==8}11>wT{{J7`ig%&d%j^x4q%DRT2MERoeYL3p8m|F*^S@`I3H zKx_uJH?={wrLePp*5!MGx0+^9>Fq)YGzlYDVe9YCTH6(i)gAy8Gv|M)Hpq7NLBmCA z4AW{68&PYk4-FKL@oUF|6;eBpb%(7cE1>A!yhGhDl4s`9)I}FzkYc zO|9>PXW2N>8YlFJA~)OK=O3Gq6q2dnxf8aOR00{kmYq6?EryT!a~N;lmCijR()G=m zwfv`(8OxrV-*?ZQX!T*eJ0oyFAp5AgId3B2uc#7oCGbL2<>O(IRoldjH|~0@M)(as zQ`@Ue*scV79VYyScQt=p!3TNdFGlCjZ4}V!1d@!OVSaxb+im!&#g~4A#Wh`%ZYX+ zTea>*K<5#-FrG>f4T*CF%fUnZV)%lnbBTIif-is6?UX?m^oQTFzw^drIxw%+d~v6daFERYsBg_&3HqKBAy-5{58-p7NWUdO=0TmrNngEYzJ zVobdztOqYAM7>6bXBf%QvC-m}q9}4N5VHaP?!%|fr+6>(8Dsso&obpY=}4ygSL}Mi z$>NlVw1v4n+)o(#*o}Fg^Vl*<4w)VE=lQeu3>lP=vf%gQL)bb5El6{~vs^~)$NX4Im%%D6*gN@#w zmoOZFHl*O&60Z~jW(}ds(%rvkd>3^~!*z`91TQpX?96Lq2kd>qya5lv=iQhxw z)r&4G?6MZtjJE~xfKxe%xwIr8(xY1#yW17YTYn}k_9Gv|r~%$z292_<$4WHcj)db4 zW~5f?O`lpYxELW^_N9K+n?6Wd4)iYgTbNsaX1k6(#{L$#)%38j%41@OnM|e3=_;c0 z?N7aFeWLS?(%sT0LiFz*r;pwu%@%Rx{F&w=ZAMt!1xmQa_kr=eMdQ7n zWnDnvik~#vM5UeZxT6_gdvzM5tEj2gW3z)wJE4aCVfZG4*1?H|Kq6dvuae0vJXonw z>lf_y3jzsSv9i)Yw-clcDD^dU8{3BLwe@GOIB>6i7U8#g!9vXNEPXVMXnFgvEepBr zBUd;hkqK|YZ2x}-GpSxGk#;a`mgw03f4GgUu)UyHh)vTP88%oD>+|{UjK0b#K=MmM zGG*4zI53vI8$O!fL9f3}api9)T2h!KQU2B~ls1hBiR7#oE3k0UsDYl?XN4TOi^2?a zF?^q)3lr?=vADNwlD!Go{XC4BRD#{lncGsbO9QdzQ;H+=BzEh(6MfuzXnR^Uh+&2F zGF=0}Zh(U)B=4YvIHBt|8lpWJf!19I^GOx`lO}|!zrU4-g7ZXScdv6)n(ub3M0Uv( z!D%A5_I@u*>UhEhkXZYbGgAoMzBK-zqWBEfD;iDENV4ml*xiH@=tu*u%ji2Tj#Mii zp^I_il6Mi$pepIgDSkJxBm%b{rQA|r?*Ve$H2!YD;4RSNdgW+L8KH9d-5mzLi5HaM z&IT?2!*W$1y|d)tk0h7T7bq4P2|E1`$JGXttLX3`L2=nyNQ5TTKT4x;m%INeG9bA- zI|o)&T;a|D|AJBIuIG8x(t3!{@H?;0vcAT^Inbw`L3OS9k{RhixhEOO$`-sEz-zB{ z6K*&Xyn(!RaRTIF=>%PazQ7)SdvbA&d0z=D8~z}wb%Sm3wa%PUtOcV5;GqQ=a5C;T zY8HPohOUZS0aKb=2^&sqwD9OzOBj;uH@C_t&R8&()p`d-D4u!}`xfx}e$_3(Pg~Va zrak_+?kod=cMqU@@eWuUnp^q!piKlC+>cop<8TM38c?u6vFERzXDJkrRYw^5&?bO# z2YuqJCHy;1*b>&~k*%(J@8rNVGdL>v?(%qSz~e`o5N3N<945RgJoY!Y7U7sjW6oyU zKhurhX@-qBeQF2u;;}$++aixEwU%p1gJCPDb`rL`3&qr1nqV6zj}OhQ6IirAaHvY- zy{-+hN~O~#I4GdARu#MkJA3qzl6@;D$h43*B6tk^omdBYT~JvIn8GlzP=Oog^Lk6z zUJE%5r)A`JqgcZ-=QDPKwZS)wBaXEseXMx5kU1+WaW3g+7@I}Ct30Vzr z---3Rk0PZ_bJ(PMEz)6hixi`^g9RsHYND>L10790u~o*2|=g;%or zJNMsOg!RA!{{*{Ro(S(ow9e_gYe3tPgl;BO>>wVwze3ZT&rz;_F@ri zFruHa6K~pgz_KLkoHBMpcc`nUTq%Y4%?uTnO~qS-Xxk{0PUvR(DJgXl$g#jOB<>a3 zW^R5j>w5R$pgH91?M;s&jnMUz3ouO2GG~hA^}+&96=U5FphA`6Csy1*%w!&NA^0ow ze!XR-4t7Eh0vE@X;NNV2h!vbp1+gx|=lXO-J|(obSa-n&i$t2~tsFe)%BO_40fs@eFKX^zoSVGSl zxg+YQ8`bUo1_no`KVFB^l8}}8Aq8R&kkqWRgbkvh!v}TBOaZcYNP-Xce+HzcpRt3$ zJb&Hd;O-) zb=1Dok38n~unz86yq8||&@9o9z2nEJXD$}Y$J5fmP?4)}6ZkmmhLz!Mu##0LM9KEs z82vChA$Ap`*^&A$T0yK?qIwa*lCI8iBGg}1^(_8$>T@eh$Mbu)<~%3*+LSwmVAzb< z3hUiq>%vx8r87id+u8m$qUNLQ*xt#etqvPcz!ngw2e)~K2k};E(1;H^p3&@d{*Pk6 zbTBanx3s~gYc0bf;$aZ440UOC6hdfYRM#1}Uhgvv;xEHwVqGluILu{acRS*3Knh>? zw=oI&%2L;pO<$>&4Zb2(UkMi%6#K>fZU3si4p?36O+bN=M>)-9C~g*Zi4u|(t=MmM z5rn2WNF`C*-v+LBK+1c#dKp#e8bHrB7W3}RnaIP|hX0OZyKUK=iEE^^Rk$6bt!hZj zVU*_bujb1MF3m(5)|UP@s3IV8{>Du&N8;L($a_&fXCj3x{m>9~g+p**M}OO9LfqPu zU&?J4FA#!sw@b|?_EIoCpZ?tdkzb^@Va^0dzQ#cS4JOqFKwm9b8@Bb5ecw&pZkaoM zQBhyUr()3cN6FVW*da?wIwwff7+ORkcBdm+tNghO2m_XjnoLw1_Xqt~xi7UPXCi}? z;3OL8lKX;8u(_?jLNC?#mFr*`&S8^@Jhnmgq(>d~1tH((4``iH#{u$A)K@-@#M7qO z-Knf((DeoO-)|h46uKPWKqpOjCfqbga%*y{YJ5Wq&J7u+6Tk)_8=lemE0qQ>tZowA z*4~^6wr!Z>*M=`Tpym3 z!Z4S9unY4tOUxt5tRFXvYzJ#Q#995YS)@akPCRVEg~MS@Z61l-yK>X0?chrXCxbB= z2kBAm&#KS`q|(@rp6MA6$z$#HqgjptqJM!9z2EM*w^0q)D)_A?JOp^~AXUGrCa?jY zAR^5Eb01x!u<9Pag z64ysu(%is1=1Fye;`KZ03rWOAS+G@60@@eEr|HuH90G$wga2XRO+gsO7h=1h<>>6E z;Tcus>^ih>tu&v(e@Uz8r&fFb-hW}qnhA&{V%Ht53z4Mjjzg}Fm0Lw$prKE~O!2{q z_7kM@j(lsv&i3su`-dQ=96dO(hT_ryem*nnJVP>icHm7xlsCRq(j<2Uk!Ql$^a4;n z@OxNH1ZiDqhwM6WRfVioxl@8YbmVeHrlXC`Uc<1q3?9bYgK*tXp8;99P#rCU5$*ue4y5OV$9&|qyt{Rx<-~;jMFNK?YZ@@6PXXC9Ln&*h%$SD8k z#CE&V)iY?TkHh8@K@`F$__qM#Hqt4$ta9*0%=klK^(Hooz0W1L3JDHxJww6!WTk2x z>w&$jPNKc6KK0LwkZwHq0^^9g;;Ih{ z?%WY{iL(BAqko-(bvf8h!BRQjlPtlz;#|bzB16-}Yp}rxHUti8b$?N9s-(m^vh~kH zLMHVBjYQbIW!N+aj!Ykb3fuMD=7$+e>82?mz$O}=pndHT4u${zsQ)YlQK)W2Buer+JAxJzaJpYcvfba8;L`o+ciTO+IP}&Ut6gIZF5BW@XVZHQxOdb$=IaMr+5&g2QKhT z=21)a)2qeI5Mh6}6?_%2=b>t+Y8rK5Hr3FwAG1ZR->KND&fWr?uc!k{(hU31fnfNA zIK7k@CWZM(1BhX74L9x1K_716YhK zR$GyIkaFsb(*HQ`BhPHOD*RcH~76QG@76nj!|#{3xEhfO;`a@f)MlMo?@ZW)a+$%rgJ91C4sZ&Enr zaT}$)%&heyOZFxrM!fcMeF`vZK20_)uC0(2jPk>2f5-o6q@*wI6$8oOQXzq@vWqin z;Htgos=sBin~zdf#Dv+&9!DU@FYI*`u3r~fh3f6i#4-u`PoO?PTKqTx!E4RG!9F76 z=vle+*$zC`KUUfP3cNz`|(yl9i%_R$_dU`d%wvs5#z3Kx@gsn|o|brUbjHHNf12jlVeA zBCljt5!5VSqIRQy#yb|&&|RZx_2`B$X~CmrU5oaVIP^8Fs+Y#fdi>9cRJ=qgq8IZ! zB6WT|;Ce{mZ+H?ie1)s{)S(gwu4d2^0_8!wf<&h(D;kohet|5#Trfxoi@E90wx*;RUd_Z~( zbk$2HVCP^~8tj5by1A0=l!jNwJ4kb}zhO@YDs186@DgpYYIt+JgR~C*?k`fMo58AJ z#C}Jqw#Rq}=`R)t+jt~4JDag;v3>R-m#=wb)se-OPDT5B^v$Eca-<^oFM#n=b=55E z7dVgw8-Kuov;47&lN#@!0j{8GhJBz9*-!^3D8j~QPQZ;M&p9m7jig z;J|AlDb40d6@u;uoq5eumWOKM6j}(eNz7?_p%C>{ePN#cM^B{o__f( zYZaD$3DGWn%EnSNs0!9bKy$$LF(rBWi^ni;BeX4&{heuef)jn`s(o9YACdoEk%_>t*m znGEfSu+|>C2eN8E+1WPt7=Tbe{n);QNc+%OL`auwQw;xA_tjvKPYV<3|7p6P5b9F~ z)$w>yjPcdgUD{;OUzQK1y~G0Fs7JUj#_l)TKt3j3?;_(oUhjg_45i9ZxJX5m8I@(D z8i{o>xkYP$NH1QS^YB8FmVB>-Mi4wzU^0iwEq5^j-@-GZT?xGz3RiW*SDLcQ5@zXs ziuXgI)hV7MI)FndPRRSfX9-H?L}Qih*dNQA;1wJpx|`T#h2Rx0oOxAY7AUTd6~u*E z2&RAkQ;+(D$ZOb(xm~V32eBnov&6phGpyw=VlABJSR(R$_uU1&5b%%XMssRJ8^QCs zr->?^jW$vLEqh_jt-d+9n&A0;UuNPwKRonHqO@HpF(JD7X*}q?^VEjWj|BJ6X>K6; zf9t11HCVh#r_mfvnmGtB@G>LKuhZ{E*YKO(CLK>*7=b`0>@I&3S4eS5yKIo5^w4?l##`z&=EmU=TEp?od^WqD%?n&!j)-Um42ip{@ zU(H|p!j1xAq>h_6TyMSl_=Gd_huXIAFp}Ch&AxZsa{lK@3Ee^{oGT9!`O>rjwr8CY zFh1LpijSIs{?omsac|dA3)DboDt}m3mCR= z*(L#rLwPa4PfPH=7b!~q7i%UZLzxb~hdPNA{w%1Il!=`aEG+m%6A^LNXfOVVZI_Yc z609d}KZJ_x?x#R!HBsmz$i7$JWT6L*M@*YrP|LL|oRRMgS`GX`5dP4N{$R=(`Ocy_ z5iA-sb7z210UGM^hTRA_Q%@^hfY-oVCE^uF6z|-N$giG$A1H(=NtwQH69tiCC&_Ci zc1_0&MBm)@wQgdBa9irGwy4~cH@gics1)&f{-qmEU00k+?COqPL|2|~Vrcw>Q0wVM zkMTQY`tdzuccr9#Cj+rtSz*JwDbu<4AdCe4bm=*!berfHe$&#@@By{}x3^%~PZ?SP zsJGy1<#d1J1WphHt7m66HB@Tv3d+ha;t4;$rc%=e^Rj$O7-mF!LuS6udojY7Bkr-*L z{i+YkWHAX3HVqx%7RPXESbB~@I;&wAyLH}z0eTmAl_nUANZK*E+Y?D{=zyhkE&s|}ti!wf1;#02_{;fH%A zY(db4)zYC{*soFWM3&{fKt`77yiqv0g6MQGbn%Y9Nuhx zjeHSY*MhG5he+&87548~(-7AME~!TUPO5zuiODS4W8~R9q*&$jYT(J@gWeIs?NB`m z6>h{dV$I%|l3I2uAM(TzY;s~n;f3w4nMcgE5q&~(x+OI|zd+MQ&5A*zN12PQxJc~R zmPk|_>bfJ8gvENjwRTwVr^{o#-oBKTB@;FHv;T)j%Z8@FSQ{<`+0;S~qXPV5_M2NM zGhB%n`1bvzLA=>RV_Rjwo}%6bK|cv!eE4sW>&OfYedTJzI+tat@yo9#8ts1lO$)M$ zpwVtfCu={c4^>JB3;8}28jc17mGAET)GM_2l;sACVN|Mj+HU3_K2wcf4zIt@V^xWV zoA@BTO|f#~DN%p_4+Af}sU_6J;OKF?hXD5e3IG`kj6(r_))Bk_zn@hlS0)BUt@nQ~ zYW;jKwC%ylMCti+D`N=8>`hI;vf5JZzs1pruDkU4lUPmboZlWlhfp;Ot$2t14Ak78 z1kNY;iXYV6-wWFYxR$T3MCtSgze90;7gUEK@M9>1wsN7E?B&Cw68+71ohZNa&0|p2 z393P;2wl)@Ajq|T2tCy*p^e|oEx*yi4~77N-oSpSEpy|GSBR2k5sLH`F-m!If1 z(wXsxshw#3P|#urP`+22|z|b%>v*O%Q?#GpDBS zK~7Xb80*NE1I5p=cF()H6MoRWM8}T>CJ&CA^n&0AK=nThlzBv`phClF3vCM9iZi+~ zEM^HJbWuTd-AgVwp&O)V@DY*6sOmdbpN!l8p-ZBl+xzWf`u9>SXjBMCfbXt7LoiM1 zg(@_X>b+$##-E)3=j9`(9;PpB-Zi^yS^JBS1Ml~fij$(SzBZ-%AMjk6t5tz!IjCO0 zOy$JK2X-&f9%0BDNHF@E8LIi4Hd9sMj|-@IbHhN5BqarVMq*#5xBC zvb00Bh~`L7yOD?t?I~!o{q7zSCqTEywLFXoJ990fNGYGowpJa!MZTpX z>K|zi&9#anQ4dN8Ly24Oci9%Sh#J)Eu`@H&G-TIfJ#2W)#fOQFbt#sPTd)gs=;rgi zlO^FoK`>x04q-XeUQ5Vx%dOB}CriACO`P3Vu9yrckH=J3yoZeiT+Tgl-U~;gs28-K zxj2+!KwVRX7M5qv7GTY`q+|_dG;yk`gyXO%YU_Mx=J)mI%+WUy@w@_zHBDZ z!*WIDqhZW=K@UsSXXeV^yFnPteD7iTPPwkL*~FfOcNV3EdCnlkh#c&e zIkF4uoGNP%TkWv@M6zf)SMrORS*C6ayV_L7ZCDx6LW(}RvkotANMb^%}@$qg{dcdxEjizS{ z^0JC^2f5(PNXH+q-l-Bb_=I{x#iU7gAGE);;}$Aoxu|n-nE~AlYc#H`Q|6+Ma2BLd z2JLOROL#}qVlE^LBDMUtKL1Ce%}DvHK{djL!8)ZapF?wqV`jB3cy0dOR|Xm<{yuOX zq-D`G+x-7&iPYc{PdG%i^Yp-qawj0rt@AGs3RnwhlXRsc2Wq}$8ghvXq}We)yaXI~ zvjeu5_@rFy%nZtM>^%b0v~JiZI>zG;@#J}^OaP;5R#q+A0$l5Lg(XWj51cCp>s4eA zH6`%oZij~@grR|#XD4962|MRgg!$^s$*{9a6wD3+v&hJ(BkFcyRtD~Pr3F?drC?B~ zb2pi`bOAwg`e6 zHaz*&FHJSj9SK}&VKL9(Lus6D8LWTp?dOVq|x9nXeBp`|%?lZJKeNL20}QVX8E zA`lOK3O-3LipA)R#;L=t616^6$8(@azh87y-yER?f+ncu?!k|LhB(ya@W;ts&%VrI zGXAS{!2aQPvFN8*Mja$aaHF4<6I%|fg?wEgH0ZPUiAE%BE5L-(>)B9}Sa7FBB5)&E zdsKn5vXv7X;Brtrf!1{P?maMOx7iQMODv$lD5lvL3{Un-z$lH@z}>&)5^Yk$!;-yT zVeLqeLLWvkc~E$0ve$og`{-KG=wB9u(P*60h9a3wjLAw@*7}`(!0nWJ zs;N(B4|Ie`%af9R4%gbzULwx*9DO#6AT_=v?SL6#P;gR>J{x2M?I28}qnS0LAd9Nn@YJDc9yI1Epi^Yo+n#kDs1YSn2ZY3lny5&WkhuD?Zb`Rt61h4nS!8OTyN8PCPJEQ`-fqLifrd zvT0v4%_hoC=?YGwq04^gd=9PCa-m0!-X$prepkWInPU}8WQ6Dt|0tEx{GBQL?H_|& zo-7muX~h595GS*7nQ(Mt9QHqnt$vArD4=7N6`%j{hwq?(wr9TIKxfWW9f1r`%Re%%+U!0jT9Y%&yBzzO8y4%#ffDNnaaFYjf~+n2gqPKnKMCaI8*X5`Lo} zgSag!)k;N@6Y%bCGDDLzO!s55fzxvzBlkx?elubvW5}M7rV4?FXb>a!KXXbI&_-=e zAy**=O4;Du-Ex}FV0{7^hX-oDcc^4kHYXp!k^Rwu8Yu09wL85F!+QRUsoM9ZXY1JIux%R2he_hDso(^FiX0l%IB5l9Mo zSk#Oq!crTW&3UY@O5Pr~=)=1l0k`m!n9Ao@7P_v#uVZH}o z86B8TBm4nrR*&18k~hOe))8xpT6F>HoZo_FNZP-Mv%8F8{3Y+acJYe)5~u3hFZ{XU zfyU4_doUop^%N;)^zjq-+33Efe#h#&)@zk_IrMD~VtuNr4T0+x z=`$*PX4fPq1It})Dr-ZuVr7g@DW0bV(rR>Ampxw5N%O~@S9JzK0wJO`CV9(sY=+pe z3D*T3cSObMLg%!TwQ+)g~|4cWuhxuxX4I z(mXk_y3UPOB6jz^d9t~AQTl((kRx91SXA^om6)Zod?``I>obw**Xaq1%*75 z_S$Bd!of6^S~7idD|tGrZvzDW&Q$6r>jK-6Xem{6-v1E0zDG5(bmXY1xnAPN0DP&t z`ra}cG-IU-LK=1JZOY(8U`+BE^_Am{IM@Bo%M#lZnx$`4+MM|DKOSKT6^-2+@B4L% z_L?c_C4SwQIGbv-o+agRKjCp>_i&`wrz3$%5(O&B+jsI`U|D(GuU7E9=*$;%xJcDJ zaNh;iRgZ_&B(H=#9;WI&{*O{BVeyuS6;BI@z-#IJFql2PEy#3C3SP2m@5kC~&4v%t zYNMxwm_6tFHV3mlK4Lm1rj(3+96$f$O^*`{@z-WCSz6s7=g>8%x9PZ7@$i$_;2NV> z@=D~{W6o!lnIVPd$u43$GCFlwR^%r`Np7>jeL_NBKj~how>e~XLu``QpV?cT#~e;b zDTyvAg`XvVV@w3BN$um%e9tH)!S<>ZEiFH(&VkvZ-M4v7Os2e&+k8=<&=#-GMx%Ng zSJNBvFo#KVWE5%fs59RhEx!Ir{XvJop%+xPlzRSn05l+nsZ&h6^%C0xYT7;>*ivro z>NPnnR(J65{9D@Vq`Dzyj}c70B1^v5ZJyS*g&A=7SZ%O*P-L;Y3gh@-^)S`zxm@h1 z(evs|Gd;8ZRB8>B*&X+fjY>#~=8g`h!tE~PkH<2j;;WrrM8l<8X5;8m7z~SzN=%7f z>o139Z7X*7W2g;QZw)CvXLyk^eHov24o#q$f4!ko65i*Adf9%pB%6UH*maO=GUPV< z2tEt`Wl7Su&Zb(OD{sQe&J9+3Y7}cn){gvi^PolY*(96!AI`C?pjMaL)rZxRH#fpx zbWMZw64wU^DJ}nW0Og^GxX(U;iL%#Gs`MjuYp401!3wqW$KTdAXm!gdJkq^V-$y>x zpLE*n@)MWXCsa?pwWnsMmF~ZnN;R(Yc8VaYlx!G0d+^|#X~!~gIdeAC7k=Nfhj?JC zT^4-a=GMoKfG^HEZfB&C8f-Qz$VPGd)_bw;2;Z=#zkhv5g?Zm*KC?`D7RmFK+{@^t z;gJtK(&TV=9){px^=kf(3z3YG)6Qh86KWzaVP&fM6sRFX%uoNx5h@JN-)ui=HoFy)oOYGMA4^N|elf}2HW zcQge6(x6#iZudbZ}BO{~RXkOpfey<`KUKeC8LKz#4>2wg^>3R{KKDlkC zt5-GQx{z1Pe78=Ui`o!8)d(wn$b&OsR`)xf&I9LkVbnST%+-^bGKL1&fcBGAJ+L=3 zbq7!aimbxCrt=ywYmdP+1%qiap}TY^#zw`TwZ1)C1;&N}#-?$d$N0$gx+8%yBKi_$ z15>bRD1WMJ6rYO}5LS3#hz9NO!T4C?gtO3K9LAEMZv@=K;LpeY#_?xOtT_1!8DORc zz)aD9G!XGhhPT-;JoXmuk&5oI)~@5WL8>U&*cBCG0VvnRoySaBYHH+Q-S2_JVj&Xs zQZC4x@|Bb_8nj}i6hhEua{Hw}<+O4dU)(E8Ve##&Rb|%1bx$T3OwROezFk)=^u*p{ zcs!>1-1K>q$2y4(fw?}P4s5brqFOp8oYlJ>eREP@I_D(Ghc+=xnbve(#pt}fbiP(Q zb*oS1rvrlGOSk-4nwF4bGTotNGbtzS8tz_h+NLxyu($5_)fyK=bdrUARO2nBLKnpN zJG3K9$?wk>x)%y6oP`nUA)Q2Mb8&+=pkbP#PaG1hbs18RA+HSn?iLa%M5te;B>Qm+l2!48hjZ zaDy+#Zz#g^;xT-P5k#BO_*Yn|Z_5CRXY%=+YY-5-lY@&E?xt zJ)g^&vG1l6d&)~yt*?z zzqsQ{MwD^Q=G7slQHK;Z?WLn}MtZ(Cne(JC(Dx9HB`jjQDc=pA<5W|d5{Y8yT>jbMaj&tIHS7iL`y-nvLWq@X{q(qsXbfDqc)^Y z9L8Lr;JvoO{@#cLTdOyt+8U-e?t}f+92g>nfc-9EJD2*U*MHUy+;@?66%tGeher?8 z9a&>fatY1i2?|$GgD+0PW$IR}V|+?9+qbknz5dze7}!)0_8wB4n6?Kma>*SWKcBv| z`%{?t^1zT-2*3#^t05Xa>7W&}3$_+?q0A2kXC5?I1Rm$pz>u(p z()q|*vgC|zS$er2vPU*9Q^|xY#ID?n{9EI|kbDS&6h|368QNbg&9oYspT*QNLfF6Ip3%~S&TGRL^OTjY%z(eGh2$?|S z{h(uFXe>)JR%T+!t|;I z(%ew`=7+-Io;d9kYEdG*of6X)L%Qj;1MsNzln%n_4dhk2s5yXZYIGAN6CN*OD1ANV z?_}HksbIBYqaV<^_vK6HK6F+tOA^#`}MXS2ajy1+x&MKbg@Ce`bOTr4~LeQ5pw zvkMSakp0x%Skc6@)&&rOG?y^LSJ&X#$KC~S*>T6JGn*^J7eu$g3%DNTHXRQyKp46l zmG8G$61W3vZtbRe0ZLfw2V;9ImR8=elyYem5b;Wp^S_VAi0foq!>C@-a+0zhJI?FA z(=8uZ`e8J%+;8q(tt1>0KAq<@n|aOAhm6-EaMOu@6vOMeuaXtkC5e_O7sVVE~Ri*nX0SA z1F&5xkTtaMjeP)I0%`HDU9xv_8Q?t2EvLMua0giX*Dmchp8>h^j%QH3$YGCte4%ptJd|4GdRU5EMV5Htyg#1P)H{Ra<^Hn*y&!|MvlD+aQOs z&w$w>y@WDF@-PPXEh!XGr5~fh>ktbwoXVei4I;2uDb0QG9)q4>4w12Cuw9v7Ni(wa zT&{{jx;F0+d>>LL@~7T1Lg3Q*7pe;BF1!GvN~DhGPc?!D%u?!7`C1JLR1O8)h*%~? zLt*YXI1IzCTV+rV1+Cx9WjNk43J^s>fI=EL&N{$2YOEpB_z1kbKnW3D@K}A|u~aOl zs1y!h%M*gwgcGoMpA3qm!u&C3eZvu{V6rIZj=U;>4^x~BC)l!`stFV{+K&DT+9 zyb|ADv8Xg1)$rzHdVQm~=6PrEr9UatD0Tm_n=On80f@d5Z7rt*I7GkOHrIng^xX!X z+89I^gt0CRqD!s^XA`RZXrmUayGCkV{!~+~B^Vqz_ksPkdk6Q5Cj=Xjd`z~x3xrV{3H-;T^4-CB_80YHW-C=G)qO2ywT!0XajgEbyr9nx4v;^?rGZnPED#rVOSPV~!!PxQM<#bnkrvdPPmA&Dc&|K!d7@=b_($P;y&eF?`KIXSj^h*ls8Q4ID+}b=hKnrOrdf`L@uO9QKs|2AaviKYCWTyyN9nt*hsy^LVPlUjkx5(gp+>AALO!UERWR7&aM=eXM;lmw3-Jc3HX~ zYYbn2@`n-agQi-Hl}Ep9=JUy%3n4A&JD;5swjw78(GvI^(P8{_{!-V@NMktn$FgZ} zW;0yGHf5QJ!B1(@ybw!;4HnBzezOR}^_eDsFZ`^V7vNh>f#LW!KV)(~rf0AdWO!a# zO(n)R)!%!&^B1!#oqGDs_OkPfe18G4Fg@UPa9>NhBM=wq)19R;nVBti(+lgjjq-x_ zVm5QkPvI)2i*2&vz8S;`{76<^WG7(syVJ|=!HOF@{u z@_0GDJ;-cqH>~aV=7sEk;VZuDnRCMmo+)xK0a>ns_2y-m)Xl?31$8cpr*M=dD*mDQ zOnZY)G|EPrO?_;BIvrS=-ak?Qo zO~wr88$k4>Fn`H;4XSmq8P&RgTYO0$>=j5DH)W`TvJ3`Wu)+OP6K8|+ znkB-E*VX4Jc&G!Mn7i|n)u48g$pDbEg5s4${;7#z`9x^T;2jRwWr9t+c0rv**E!A+ zT{gcf{rs^|mx!PQMDV5sYF^A391imO^!sWh@d0^T$w66REkx&!}&A(oL zwTMXodf6&zJCmviKj_HOEV9)?_$45XbXCqOU>sJB<0!#lnQcBYIkLCz2rs{8fWP*e zE=IC+)+UO511bAW178!Tag^j^+)RAsCRJZ22~KF(7{0*LJd)Dq6X z^L`SU@9RaV!UUt65Gx*7D>DBL_l^pg#C4EuHa~=IC?D1D_fcU;4VH*fz2e~;4W_$U z!RA5azu-&KbS)zl;GxW{JykCWM1-&(c&zys$3|?yYX*5msBQv347(4Kmwn_9vF#>w zZg6=lZ2f|RC5HUQ7b8oj6@l^M!`FYDa+SrUvTnfFWFu?z$nSO6z#j*Hk4U|Ii%&M)Fduv$SDgD*E)bS6}w$9Y5|58$v~QTAz882xcjqKGlT*mIoEcP$;` z&+3t%q_JW8_b~l5K-BB$D>X zjpU3JPd4IxVQ`Q=2dLk>rl2cE5CE7DWP^MT@)rg35_f5<(U=o2(D5Zw(v*>U20vgH z&6G8cGdp;IBfTsbP9k@+RpGzAKI+=RTQ-$V5u(8IZ#DT$iFhT+`LOq!ChO%3qs(!@ z*zlV9xrA3dHjEKo)=fSkRB#98z=OqN!w6IQnKb!mh`=Gz=f1CedyrOudLe-9xPcN& z7QC4BpBY<+%hSuK2-RNTdMjbHgf4hFOV_BSn-9UpM6+Z>>=T{0&usUktQM&>^^*>7R4iaCB$Z3OaS1S5PSA0;EBTpXCYW(q^~0z z{{&tOQ`Vl@X$fec*xk>bQW9{-e8mG7I+1XS(R3V=vRBW){Xo(epbkodqMFkky4 zG}Qr&g4FBF=p4j^=7T!3^z|)e=%!Kk+#-xuT&x0t_K19T)Awd-7fB>O(c8L9i zX&jdlPa;dv#*^AY%!7h}DN{Z$b+ru-`Dja!Y^NY<)Q=#+Vajw2hRm!MX&ks(3tAEa zwD>&02KEc5x!N;al(Zoi1T6K#41cAL7a0r2HAnbDe%ln4HAjmZU2zl;(GAXsfCd=0 z+7WHjNxghgTRaq`V#)74IpGZcLF2d3s4UN#%?9tc1%bSkVRMY0vHjx>fM#Q57KH{F z-Bt2pz~tcO7TR}c))nzyg8UcQ{bvJg(SHH6hw1*_?z5WCXFKJ~4p|F61g0Kzt^7-4 z6OZ9kvsla$u-@R~kLZhcBEVjOzYI*>VEh8k6$oUCQ^*a3!z?=aFdV4*7!zI22sM@k zT#n3=u6I30%W@OqzD(>mBSrp_VD%>!8@=i|>Xy6~7%WqyOur^znS_$<-17rx;1EzF zb(As_BtiUK|s*8CmhS>L{b#*zESO*X?3(*;qs z;hd3VA`rAMVSGflv#I;*6ij-7tp5Gx1=x>vkcB4%_htFb@0>pw$JUCYw(5#_b z>f^aTJbWJiCIBZV-VY*PlN0d(RaU-RlPrpDI{u*u>?|NN>tf}D9R)@|%aT0KIIm%> zFz4d4m4_xL?CXvMWk>pJmt!>R%0uH=cu}QejlH1HF4(9dt)bXHgNZC+{!@j;=3D6` z4^;@vO?E#HGP?$+pz`Yxl-U$mK+3x{_Uj%-z@kK2OEH2qQ%m7shqVP3RMc=_5=h_8 zrsz}EgBG}s+L{t83MauhGlhf3HWn4Y)C*}iuxj~Xvu@ZgpQWt^Bv=jk+8jZ!+Htd zV~ijtZ2SpCRqi7{h3%T4qDU_EVhxsJ)C9b+D+ESUpjSp*wVeQF!eg7;6(A-Ma8sa* z{~L6X?HWYj%;?K@>$*R4?7-sO#y{4L{_H;)_vG)vBktGqjbxl#d~MXEp|ON8>D1wX`lO0S9$!z463KTrb{Ef^&jp2V((VHGqi zhN)|QW@w3)?J1{fVIOM`jZoJlguua|HUUhrB4y%DEntK)o{$}~QCX^B*KD=Gu0@gD z`+CFRY|z(p2k~4k$$)NaGgMg$^QWCxDaR;%L5!FoTEoad&2^l!?+GE-!nw2|0RW}~ zW#Y@ur)V<(0j7!(U_n}dF{vc?UYxRLu9b98GO;s5_}enX2s23p2WG1!^uziL)wOMr`a5Cj=Z%C>N*86TXc@olkD#ZC*~KU`WmL!&`kq%Bxe!7 zXDFtD@ZeZ6Fi&_xi#v=~=)vhp#64jmu@vM9JH;p8V-{;MbM*L3DLB(uYR$Boy*tLQ z$^rjiZ%oE*R#bd^tSEe4yRVojo;Syg*0kDtY`b+jMmTIzh_rsI3N9Xr(qt zp3d#tq9R0%JM~?sW%!+0y;V;Iw};OBAnF>&*@z85<2(fahDow6%!xoa(KosVkv=DVQ$TZwZSWRocUg>9>AqD!KQzX!}U&(B%%j7T1W$W-YM5=cl)6J*4?ylth4% zc)^LHma0F26qG7b1@;!BzL;?s^%cbbF*g=SXBowF9)URVHTp;12nMfIyi2pKaClXu z3X~aGuhCmy%w&QqfL;|6eIZT|^fN;0relY}YYFr=BXYi3NqAvReU!6D-Q%A$KyJV! z-xpc>%wAph`@rzcgAU`YYggUG;XEbKJNg9MQAtHwjgOtq7~i$HT)!U; zTEJju1{25wAiK2xtS@@6^ecv{rUynfs70xAu?vT+B3tIyWA3ktC9*VtIEm(^oArh0 zQV21EH5rwpdd0z|0#=3SQWRuFmtq80bMc?`#pqJpdW||#;iUL-^z<5sagCpcP;}`i zWj>$qgk`|)miU0O0!-r4$Ox#B0uQAZp#Mfr!HYAkftxMi_HR-D0dA)R4AguWZnc77 z!jllAMMlemi5V@wkgjR;l*k#tQ@WBCE;yf_bA7F=Yr0XK3BQ;cOQZusQUg&zUMu^n z<$`p}KJ@Iu?2|_a@{DQ4%l+~`-qErnqnFBV>Rd^15{wmhwJal5Bup9bVj&HL$xkAf zE_E1AGGV~0g{%%{h=PY95MbkXPFQX=w((mch3w`7^xkQ6%q3_0gAs3KnT!G>=c1{Z zyO#gqeJ7&hLsRY_*SXV$0v+M&@W<8R(!QX7-goasmYEC|%eO!HA2rM{g-LC!Fe*I?6XBo6WPSt+|JcVHNz zVty7O9b`^$-``~v)(T-3GnkGf4;`@o;&q?zs+(Rt0JnME)afb$aUkF5N2LxK z!NbxSSfo)bgE`ENH0Hx|GOPXsfF%`JB?8)+6-Z{YIuVA;tNxTnzY`2k5bB!>G261w zfZ2IhWH6%?=1;=Q)yRWE=4Ut}VuPf4U1uJKx!u?s(-7thZN>Co!=4h#}vdZ=yIkLaoG(P6-25V-KAo;{~Kux|lv%AAdmF^Vj<{KYuNtDpX8p9m#(dyN;iam6(5)mYrlK|4soN2hC`(?=kN5@4W^W zz9F7IsLrdSHWv6sqn&p9`WqAWYk<(kN@8jyRS|T!A8O1V=`rg=-A1H<8NTM-!#02z zS^Lg`{r!#Y`!&#sP)!P5ZXj=kz&dZ9TLod{{4MJcnFoKGuX?D(QJ%tR8vz>Q09 z7y`f|<;`wNo!$0hMj~RBXJY>aw9MWsjZYZDu{T*WK&LRU0s=uoiHo_o+k2&7(9Z}5 z@m36Nz!=j(lt;-9&+gs{K_IK7IZzoO8N|ITasv~WL3}M9!#Gptq_RrIyA>eb60(H= z1QAkvtQYGk4lXYwb64D=2GFsX;%{AkmE0hZoNaK3`g>`YEykL%RZJi0#cl=G95G+B zOIO;6sAAIo{!FvYW+0@l`fl>5s02!Hihrxat5t zkyG$0(F{PUVB-PAxz8Sp8Fr$R+*|5=AFhg+mvwXp_7stmJXbWl#<63cp;rWk#em3! zh6}rjJ8oxG8rOgeyb>Wm+9XXU#z9|z9r|eR14L{E=MVuo)A$e+24JT;$KO(heoKNN zWyd#OJ8J1d3~H3AIfW`JI{)P!}2eqkb*0~U<;L-XaI(N z1&U#(f~JRphA5c#AIddWXDm=Sb&CBo<~Cpp3mmamFn|UP%Z0 zZ!}B0Jpe~^XQ0AN170Q+r=v9{)%M=L;sSIKUq<>a4FykCXFk5-AChGIZ{$hmAz@k0 zK*hz74v2#)`}lr^bx5j!FybnZoNnK^V&)E*1Q#=lW$a>+yo{asf{UFBv?Kor1Z>5Y zI!GBS#p$d%ptEX!H@&e7_@msWhhZY#aln-2)w6B2%6q_At$CQSD^+3fBut=mO;Lv- z*meeFVq{KN);|fYZuHYDQpU<_HGr0DKcfhdMcO0^7e$fW`g`G3T0smFQC~oxu%-T> zj8%6+wD$0aw85m>AcA=Md9Z?_p`>G|EVd?9>rm)H7oeTiEIl2sSQ%1`WXvO%(;0o` z>E#?_5`)$<%MCV$Ql0Z?3A812w-^$LVRgV1C@xFmU^8P%ET7C>QCPH*A+U^tT|T-R zF;{N4JeMB_4o25>R4-PTkTLsNYse~isspQHaJSAf(jm!uo(JikUy)||di!C1 z>S+n3{u_lavb0}HHwJmnQD>}AT zcxlF`y{2Q^01@r;=p)2}hI`DASkO#BaU8@+LR&ia6rEuR8omO0($CQiZ8nDL(J z-Pm4(&X6R}GoZA0+}QEbDG+QIyU`bZUf5>AVO0Lw9V#f8ZN~tqy-sB3$l9B28zS42 z!-2|*q49N$qFAj4;kE{sk&@uF3I6htaawTtB`VkY!#O&ejQp*QZRXZ$g-qA`X|h^I#qAFzaX6uUYuBo>*Lqn+-nu-McmAa5tY*R zVqEO<2@t%8LYTCd`5arWpX_{Z9#<0hV{&cCLF}H;_&gSnY##hPvFpx!kn@zZ-X3)8 zR7+rqSFhktmwWYMhc_k}dj1q=xuvR+s(m1f#o3tl+}3LPmPx-}Y)4QH7_%*Y zb{gKJ)9Q83hsVxcoGlCoYc?unNtsRThIceNVl?S?V<8-N*Qk^YWj3OlrP(kt^4o{* z8a~qr@Q%5jV9EH$>9OAAMS7o{$gpBaN?=pxrvoA?4jM}n z^SOOOB8oh-3V9}h5MpFYc~NG=n3AAj7&-W%yCUeAOfe6vsr;(OFnK<>Pi~7huR^X< z6)>fvQgGpnDi&43-Iz}rbx9GPEH=d7T4MB-#W?-S|#hwkMJnW0`~mXf9+Q#n$2WI$g! zKLQ315A}+%lr9)D8L6JHGi;dy0J!*9`OmUNx@_#3XjjtMXiHvS1oA>iDjuy`Ck zsO*Qk1S+>Et%gU~c}*kAeLfx@!Eu+yzR)9H0&$iKfn8L^@%aOF2Nk}MuhHI(GGOPK z?3kL!Wkw~YFzz$4DS6;V2XbR26_$=U8~$F}dE|3V*?y+RipfC#=+@dWsyBpE{7=in z=pLry3it_NR7b@7C44y{KFc-sX&>?05@&gs_bauCGi?h|7LTpGqzoahi4ex$-l4uu$L%I5eQR^PdmdD3K6whnJ z_cI<9wZ)`s33PUZwqZr~5a& z4+lab#^mRziI`YNNK9Gl|AS5@E_S~9wRaaTcCIL;XP&JIt}%yCDat8|1d%Z&yXDzu zQqP+%698+jUjkwsku z2M?v4pz5+JnCwtM8fSL?Ylr!5JI3?DjE~kkx??Fn-ai$Lo(P2f#U}U1;vpY;rGv+2 zEZL`hmJl`%ri&{DVwNj)A(T0cl8p{ki!0r$8H8Utb%D+ljRW~}deb9OCKBNUH+T(= z`U4h-vvcX*g++Ke3ysNy$tsutnJjXNqhDZ?Lt>AAK!v<9IH}>~U|cE1{k^-uTMYe{ z>an>}NNFYDjnoAy7UN+XjlBy4gJlap^QkIa-yhuQf~OHdwnMgo962msdcW!n@a@N5JF zNbZJo8bh$X7c2UQeoM~Z6I2plq~0N`ef&wVUAuj%aa*4-{1hWzI?CBW!yU^2wlC(8 zvzXEdvv*Dw5qbxs!BdzZu%NvG7dxCCwc&Rx>)JnglH%9DFt8HiNPCvtGW>%uI-TvJ zWH62i9#S_ra?&yTwXrmSJp%~JI(8}C(sO%mF9mE|>oXYGjE*2ytkFx>-K z56(j(grl2SzuD!OR13(c{oGnJqA+@$G0D`=s!kKe)PRAV)P*m-`S6y6B$BlHc_}zc zDmB!UinF98rABbE=tBcoM&K9f!Z$({NPh0;gUJHHhz+=ED4mO}Jy(&Yn|wgR^x7^E z108A2P*T97H^O6g_n2KfgcL$BNJ6oje^6I~rKGw4lY00Q3V)Z7@;eDdvoT6ETnxZ zCW$kUg*m_vV6~zxJ>N$mGf4i6lz@OiMyPxnRyCVy86a zDR`92gH7@*_&nLsqs%8+)zjLz2Q;N{+B@M3y=t{Uvr0bTaNCN$2y2R=TZ$@pse)fs z;z`o)4~&q`zYmkZt59VDkY_5V`kLEDI*D5VkSB-JNpoE@6u6&NcA6th!W;mFGk+)D zGK%DF?7Wp<$tCGhf1tc{ek9ECday}=rF0JF2x5H9s?HJ40NO!eew=D4Oa&+(?7!bX z3#OK|03iffLf)9PbP}d0c9AgZ51fN;7w+X|gEQY|md$GQrY zyF|QG^46$|ysJJ8-f|sy%TTI43sAhyy=n6Efk3mzovOFs*1eA@i!T91>=_I<-vz#I z6WFs*sxQ+RGEmrzWwwoS4|Tszo1g``yC^K`19pt!X=KztezONTQC{Y|49a@PD4z3x zIj)+nHLzS4utjMNEOj-D%1lL*w7uCwuigPZPz0u~kMs;NMo=~5uDM<0-LRa+1eu=$ z)DN1>(YKG0Z^sm=6;LM=hhbud&_(rn$i7g#1F;!Zzd_r`Q-`ojpCl<&LjQ2D@`V5< zfLL8cW5R3sJaR>y?681=ciqcp6>!IQx%9d)?)WCZe!|44BbVW_6Bu~cHL51O9<^J$ z9Lsk7`n451A1dq~=-cQ@*uG0EE+Og_6QRERI+KTK92NwwD&%Nmpk2z3vKYe@g%`Xa4udX% zpq6I?s9Su9oeGzh1$A$#6e?P|4$e$(NT58#kA)%z61LM@PAbHJm7EvQP|||+7k1Ig z(*06zy@3O^6AR?B7;qOcNV1t0L|1N@nm>e}3WKpZe_97>*)kHSWdUh^qIxgKh85AU zU^!`tfrJh@-Ya1Ni9$s`!UE7}ZEdP%cjm8F3UuANkzfBJgUV}Y#u!sMEbz%t^^}5r!v`M+|cOO=B-1J#}gwhkO@YditF1z&O)< zSxace#hmWCPxjZ*S@5pi)ANk}hR<_{K=ArgZFYBErhRSEa_t-MN<&stn(~4yctPe| zBIQ9@{6NH-KL{mbDLqo2l*P9grPcnsokhQFGcG-y=giY$S(>q#OUrn_Ce_?6VF2M= z?#PNFqs$&ZomDN(c|i`i$ibVk2-^)9{B{@33>C?pa4@tId`O~)I10VF=>Mkm)Sx;Syt>Y zWH`-RkEeu~UXur3cdB*#5Rv0^kV|ecwhYY}Xh0$c_)4LIfrsI(>HsfSP0dGg`7I}d zY&XPj!P-kn-ow322;8OY*p%%Y0ZyzN3E4_W5JT7n?#F>U{1t}7i%Cm8Y~Tc8SQft; zsT#tINK0L~sv)QEJvg=zAg2P`sosRD;nE~ht|C~Xb#S4ei+$aH>}LyWL;eq~l~0F50K(|Z2-4jeU`c~LTS~c{R&H{BW@msxNbE~%IAQDIQ)4NAoz(C|o z=yul|>bGfYE}-FI`tay=$Z6zLs?T)})6U+g#Q;XAF@GyJMc>n*?PZ(&i8`eA**l6SP!ZEZk;hEf;Y{7eURX(owx&9W znxHAo*+3+wLvWHph8~H<38+;N9hs z;wPOK2A2uAvPYRf&PhU-XWjb78Ca}~6L7LvYCg29HV;Y$g%tFK{Q7T7tMRQNhTvBU z$>uw^039_05?O(sE~EL+z1=7+lnvF;)60k8fuh4Gv~OG(Z|B-ihlGEWng8K^q3+c5 z8F-7n8(Z4)26gKimtX;EjYji5Tu!S!xg}T&&n{d+7XYPq7ElI~%aYJ6TAczYW&h@2 z8S7B*{13XAPOBcRCT?^+V!K{*zI@kd6&qx4wG}E}4v_Jitt9ALaGlns0{A_0A0>Vi z3{NPGdu5fe@qTQ`{a}AAW>$cw@&alPVzQ$%65P)0N|v063=CS&iEZmG!`} zaLs`%0apb?Jp@Z`GLChs0&Z(mN{iyuFrE!3fAZ9fqPi&uqKW>w%>fiDu!IZ-b6I^M zY_|MIbxd^oJA-B5-Qn!Uwp}*Yo_8j{?Oh)_T$$8!zT9FC$E7gX%$vTBZ7;t%m`@&g z2GcuGMn4cFgh{7?t93p+BR^mj-c}=pv3U~UMH!>U8Q62f+S;N&!sCc#3xsenn4Kr= zQL=cVH| zbd;pJE#3!G#cNP^9(L*&+yeLqenz$c3u7fh8rD0QQD27eJbo8;Z^Vs`)k zG4|bYObcyUNolWKl#}L*Zb>a{`{da2GN`-XNr<7s<$FNN>RH)AD}5iLGc|8-yN;CI|(Q;pZ(?oG#U> z{>ZZ)J_~iE#yNU_4Y3YpJ=Dqb!=h}Re0OY4(&zfff4z%S6Yt&_4KPEUd?VwQgU7eC z14`Q7R29J;oZt>#9)P}seu$sk@gNclviaN!9TKPTJH*CtYri0utl9o4o37cEnsQTM z9^U9TePpXxie%WAcWIA^kHaI)K7Krbw;BWaI{AU60D?WfA$&6beh+@x1L$SFwkj28 z0xs0DCF;@H=p{umY3^UZ`pxDIi)XgC|P4idG{RXV0>0M-8~ zodQNUfM5aa@Pg6+XKYAvIoPumuXr2m!%=lrj1Y>-o>!mLYvaq&lXwWUo9SwelZn8H zBv_ZHYqfECeAS{)Dz)OTVB%Kxyuo#vl1_|n0#twFi{Xpb$=^&O7Id9FKv>rxfWZTl zxFET1+x}0fZ3wJ!UjSCL%d?GyEPQlw;KCK?!at(5KZsU*1E*%&=Z8Xeh9v@M8@3jf zWM??Gx9o*t&S`uudN&W8je#6d-FMh#<}ptvF3<7Ewf==2!&$LKu9+8xinl!SUwn=M zKh`Fth}xrJe=2(Av=*jSc`A$%EkxljHe z9sFZsnH7bA?R15AdwUFE>r?Vi3&(4S1Hl(#1^p9vaskRXppE-Q;yImz9NBG~^x@qo zNS#*qAHhoh$+=$q5c#Ivu=r_=49JpDeoaT1y6qWgZ3jPSEYsKZGltVtg-N2RpFAP* ze{VVYo@71`z6d8wZ1K;Q7Q{9Qefj(6Aab2HU_NnAgMUFiFJ#LIBP_h!BqLd>8M zV8E8|d2dKkpwXxiG5Sr(HYt9px%_!inT_7WZQ*-5iJvjsV6UlgJvIz2H0glcXk{JDNmUJ$f%)$0#!sC<)iA3NDhnR` zYTULG8-G|D6evm7<)VRz6p{?x3wzUh+TB=xz-WHwl>u83aSbK5`LJI`@a}g_KqEKE zO}*Gld>M`)-Qn+{(Ax8-4eXwH+j`;e zil$*uSN#_a439F<=;oXcSWUEUS>o+vEx5H1ZtZ*P7H00;xW@heckx08hR6Szx|5!55&u2mddfJR%GPt|N~K z;=Mw;I1;GI_KC8Gm!-+aA(`5)u1A=|IyB~+_ySHNi1bX@cXea?t^x0LwuBr_ykmto z(fhudd1#rl{8seuOS|ex>5y-HR8+1J91+ADjvUG^xwLyKY^C7q&Ve6~9<8F?ISMj4 z_S!oNiR+8<#twkpR`nBlc6PGsK`l7ZTz0RzUJ3^VXjrVhgNwHC%BlyrT_oP$e?WmF z*fbnk8vNl2uGkz$g-3{j?Xr4xaw*{W?0)83w&rDS64VXKDXNvQGnVq3I)Dr+01Q98 zw;DjUBXxbR#Diy#9&MxDQScwWKo4BnRU@kea8SVZ?#dA-r;EIQPr^i6-hA8CS*bYb z;rw9bS@_G2NF6n;^zyo8nL(et3&oPpdNohj_zy$)k6`p4uY@)33I6F1gG#$EKHMB? zce%s_*4r*omuI;C0VofIJGjd@n@YRVpy)VD9}X@}gs0r^aZ?~|d);>Q2o%Ekg=5u& zs0VjpJ6yVsxYUC_98GkPg0s+FYfRxy^oY7HcR+2cy3<$ZfJYFsoH?Efb!xL^)9|<< zbf6A5d{_2s`XA{S=EskMa7<25f0^fY&& z5^-2m*7C5ZGi++1%N41|PlZRcta;`Oymg)&u<~VE^qLGa{zp>|Z z4EQRBdbtI}0IxL(4F-~}B)IaDyzXAOvR2du^OA6oYkVQE`zwsqi@G99E1{e0D-Zuo z6lm50QCCiiIbM52qZfnc=R>lK}qNBHe0PI80V)tEegs zs%)PQf^Lz2Pm3-c~vDzU$sAU>R zAAZe;^Fix=F6R?)ZTLAq9Q9FGDG#dgHNJzy?&;+Q+ph&2mY7EM zL*jWgS~;_2+hb5gsE?{R-d}gfmbh&K0CVFDp}Z0-v?mL;6Xnwd+wmt+DOLddi08`> zz5x?CPuQ1iBknQCCX-$ilyPsw%g}4DD%V8>3%&&uaav(ksEE^j@`Un;8>$^nb{jXY z{!>$GYXFr0`75i2{I_qZE;y%!3Mpy!yOWK%l8IH{!lskBH22|IMnK#eAmux{%n^~U z0dF*0TJ16NA@jJ10BB9D(=6)h?wg-M(CGG4t^H8H&R3pkHds3x=@x}16;pZ35XLvA4@Gj`7HiYQb7J~9Benypp`Yg0`m}l}Y^Zu) zs1)=EkQ58Q);E}9Ay#b-Q@25Wgr$D1<$O>0)?YardGX7z^%C>DEh7l3-J)r+$a2&= z)D4k4zBz_L+U5TIf`KIYCYa33@9q!bdGsdd>&)>j1g~PwU6NPf`h+USEdGS!9u)hM zj_`uuo$iGec{X6Wbb%h0&^j!OU6&?iWpj|#!330!K7ZCZW0)iIA1$yn*bTts>sN~k zEJx5Z%AS(Cdlozu@Xzz-p5bsMf9UC6B`CM(hq!!XY%Njv-#rc2VJd-BV>h@ZBFm-G zrL7OK&jK(&(RgzN*ww+p1&GUP7iP3-<#C z^Xh;$gK0b&k111%cK1vxqWb>`r?F@B48tUZCCh8$=uwie6Ew528-U=Ch#Ed#!9Cq| zCk_KWXXIMu5t5!0Q(WlRL24hzYMnV`!QRj79+`IdvL~;VFD{&Hod(tXy0vW0Q4Jo% zh9|L$JZv&YGwMR&WQopm)p>P^Ium<=;I(UpN%3$jGZit1lB~s|F`zY~6>QFa1|XoPFrxdv{%{p<3sR zy|(uhGgVw9sw)kZ`KxA>HTx9RXVl@7q%^PZWLEAJUe7p*OB2?>H-_1X`F(dt7}xVo zC|=Bti_0;5;hQGj07hzPB~vVVPp)J}dWK1Ob7anI5#e>L=!kDLXQR)55V{E-Zpcf{ z(noJ!1l}2$GC*WFhB#(3OdbvUHpQ($919n=CxKn8nxWe2Q`8gooMcdW>QZFHbKRp4 zVeY^VRv!qbK7`u(tWPILfz%~75fa*3m}f9rM9edwdJ)T+AK&bYy1_vAC3r=fr%$eE zT7Y1TJ|T8SxYirH$jw!Zg16Qdw-Z4az#!8_T*UeMf55dlP#qxHR?+V*3ER#!QUz87 zIvVD-rI51>yiaZLWH7K@>eo&Jx3@QEz!nPBF5uZElH7}~eX8Ww?a{WBoMA9V+z=RT zz>U1|@Rq3W@s4;WVm5=ydHe-h&cIA{2{Kb9d1{%u)YN)3+(1mNs^))W{09T5xg~Yq zax3{_*=_E%ZdIcT?%hOlOYK~D4mr2BD^A)sRo6j@QV?l2qt3ZBmN>C;d2!0r-1_R2 zu9c{Ek(2bk#^%F|as%Y9`q_*tJ~?o}H_syTI0K%9{Jw_f!x1^NK7lphcW;PRcnwGT zAdqn|ljqO3W$?2{Yg?75-IOT6GENSDEWp~e@yaHi<2cwTwb45UA2=&|6N-`_1_kA% zR-9I~83J~GusJVI|Ffp%e0Hw3zYj6deva#)g<^Xhj+^@=w$}*?KSv99U3_g6G3}uB zb-I+=E}3D3eQ!T6E}!7@Sf*8+j(ge(i~D?jp7w|i0b(riC?58$jN1uT0jFRkc+iVs z3~`w4h(+Z{fjPGC9p%N%rYMOu@QWO@$99G7?(Ry2UEy4d;MsMTFqVM^DJ)}!(y^@u z(1AK7|ESPgK!Rn#xHQ5*!729yFH*;COHv4B2J^Imsz@wnrKpHP2nO6VfkZIE*OT9U zXiKxs$R{NjVlP^ci`tEk;-YGBc!;Ou6?uqeHckkg%1D+F7W@3D$+j zEzkdotqV2m=z}HfJTSp2I9T6TJLn3f8Y%@|i0s)^i*vJ8yFF$B-Ewg+^1;OY!It+F zaldXNj-&t`w;cXu4%TpcHEC1w+9T>VSYF$$H%y=vCeajeKT}dp8WdRkBt0GPdmP9gcLsmc9MI8rz%#DiOaB)aZ8r zQz`vgk>`_pvjQA@R|(el4D$f)0zZx$rKMlwC9HQIY=kOoUfq~5)`4_3Db8@nZ_x4j z573cv{PKI+c+fw-`(tk2u*;#i+0ZFJA%CNA;x)Siy!RA*)7`qcv9!wge?gA3mkvI* z>LAA%8Zm3EWvy}5CPYQ;PVW99!3wYh9#L{8-V2-@!F8s2@@-o_-2LbeYOdYfKWVaV zNc**qE=ddS#b&xV9-Z=6%_u7n##AVNfSf5Bsy3* z?d6GrP~T`uShS5!FJ%$JB0WQJ9LxZbPE2B9VK+A=_0W>ul`YBBCWg(;*u+p;&Bd`> z1{?8qz{4Gkpg)clJE3Z-q`T9PIxDe=4cs@G49sEvi*}5nC z8;{>#nI+hm)&HeT!M3Jx?E-9Qn5Uk4qPyMn%!{|ObB$m9a{&Xe1~%?iBmk>?V-p5o zL!UMm4IluP6MZrBm4*uVWNM-@5tc_@_IqSX$|Lu|AmKjYzNqB}={~W5E~zC~t)d;I z`@~9-D4qaZhs{cBRl(B|IgTeW^FV2a9LLj2f6BFdJ?F6i93I)mXb6@d!DumQ+eA|}d>xK$o6^dF zr~?9TuQdnEFTtvVMt1K3UgQbCoc5K>lNjh6i<`{A;Zda!MQ z%ht>4o5r(uZ@2ydmO7+50#h*EiEU>sUBtU@-dhY5kP?7`)i#_a6B9D-Jzd99g5`#J zUyYD+M^u7`>pG4K9up902^$j6CWnH=8__XbxrJZnZNLT-*X)u*cZRy6Q77&oavYcL zU6r;Mz*ZzQ;=IV}ZR>^~a>A}9kyVCfAmsk@{kvBByA-*re@$79+tQ=1RL!fc@J~rg zIACTlKdqHA{xZ3er5FI`NDY&#;1GToeV(s=0A49DsUZ!Lj$BOGvq}~o6xsd(f_(7z z>L*mTiEI8{{Yvm94j<-9Atjy*AtRQWqP`y>|He zhhXdtV7u%=ANG_pNR<0`dEg0pcnMgtJxj*o+JZ?P*6;hEf`4sha94+63cezyc3Qs? zt`fCZosC<-(B+j0^MW+cb4|LgislEtYm&vn+P0L6b(>s>NfY_5DV8*rP+P^e-v^-9 z>-~G1Gw5SDV}thYP7dDtf(~%OYMJmUp+7t1jLmyx*jb*yVPJx1i|UW>ZormgdK9FL zM@2mj0&+) zXtf_4b$_=ey%3~od${>0H-W_C-!}2CF|*`aMemZ6rt!e2c^oP@uC++w5$trg^KT*jJ*iVOC>Q`i z8G>#9BkIZdoQogi)Z6Seejd)2sSOuQ{gx+f1t4`_bu)mm+u<1dCTBtK_-fqQmQN|9 zcVN#Y@l{)Ry1uGJ#eTbx-b+;MDjsRW9MGf$ZI^XE4CqE z_M-e6A3jisCc%G7x~AFHYdjgW0Z)Ev4+NW~31qXhU)W@7TznAv(=#>jC{n70O*Cl} zdZMq0K`UageOje<*&8(-*CJe%4!$y&rvE->M7LJcZx$STJv=vm(s4u~8~0MuZaG+i zx>j$}__skf`b5{^7Px6(#xaQ47?@D}7L?G+OEX1VuzRn|yLQqEAWioo7T1P>!weAV z6o83%pxej|arHwv24FGc09?E=f8cx@Dd2bwTgAL?tgW^D0S(4(L@pDyOY=I&7GqTE zunK6=khb6#wUUx>eoMkG@ETu<@AP!oh;n5_Dj|X6q7Ek^C_18ww&gF z36{Rd9XPnyY5a*E3@*h^IJxen6h$8m5)}Ph_qBM*>Q4zlk;7gH+ZGp(Vjl_` z?^2N($bJI-J~%Ih4QPYQ_J1-4H1=Y-Gg|I3V9>?gt^2~K2rR{f-e)slW1Xc zi8%k68Q#dv7Ws*CgcA?3vUX~|8L~iVh5nj!M9zr54{9vZzD#Gpm3^zBVtm{n0ev}8 z4<(8xzyg7_TnCJ6rGT?OQK{V~7zSTLiSi?a$$kly!wLEH!l@EOKfE{fMY<>41FPR3 zG)SzluvTLFXe@6uWo{2-Y@CP{6~!jFf?8<#>j2*P>4@RNN@JaX6Bk595VK*HSbTHy zV*kU)3jtT`29CW`eT4SEXosCNtW>D5o~mX;i7BtVR&NJe9$O)7qfbQ#lgj_fSKqhK zKLo|$KZV77t_9Shi7I;A!3qWPF2G1@@@}v@cxDu|`v$3O^!gh<)tABvUD-saZl_%O zBxcdI?v0lofP3!}1E=0zx@g;3&e&EnufG(+u2=wm3_jzc$@31#XZ-$%S!AudrtK-f zT0f4xI2Uar}B{QHpD0WQW z)2;o}#{2Q`E>;UC7RiF@11!bwt&A3MIO>?TRle=2+WnZ{ZQtu4{uZvwrz`Z=^u}&*P>nq7vVLZ@X+tvog zJ51OU#QgE^xqT!`f4C6KxV>CJJ_adN!F6|@pYAU0+yspmmZTj+rLK&K4%&t1Y(#f* zt0s8)+qAq%UjF}`;&tPJ`#@t5R&DdSuHHC+ir(^$8MbW`=;}i`Njwq7z;WSY22Oux zJLx`{`kaKWE<5D)5v?AR`hZ&Zrb}3jChJ~`G59{k(v{hMX$!E9R;l?ep+~!A4NtQs z6k}Gh?v+H(u=Xg`GxYM3DEa>jpHYQfiWH$i^wn7 zlPA)Lb5-fJlqDew`ZM6$G46SRA<&{oz_F^uUjszw^+z2=ykD5@$1^B}bz^n$LPxIowVS<)9w znAG2EpiJsDev$O0kj(prY3BW3qBeDGDJZT6Q~DCpPf*sA^b>RjI=(H|qy5kjoKF&H za=f`~H$I4il0;s})-~2gB?*u7mgUz0rf|qFaku1D3+VxuuG{SiXR%6j*xw`RdqhH1 zYQ!+Gxbg5ST&Oqh7UHrOZSlNsPb+d){?$CEf!d6k|{ zKNXA@<}mRq87vj#q@3VGxYjpd*Lnn1fmttmvn*6mPhJT;u}2pRy@!30zDAN+vtk;p z+E=YtaQ|zE%;KAerMTnipi0<)6GulTkh+lqNq%!aZaX@2wdlxpUL+h!@~8=ixB?G#miIjY!h>oP?~#OM52Vwh|^d$qcc8Fu~ECjEnWlTl5FF1?4GK z>-qK*h*iRrrB$9{00CI(xp;~10;pti>2#@^I=K%r#9d_M#^hj_n?APW^^Gm^Cc~$i zlY73!=~KROGzzIY$@0s)@Hid>DlNC}1S_W^m)_$=hIZ1R`F|{?Rbc-czHzKnD8w2ET7`zv0`x%U?|R@RsB`@ji#Bd}G_O1#ka`f#a9#LXH;#49LswLm?Z0Pic0K zkoc6CCiEh_Z<>=W)hq-b;Aq%#>$q(3{&R;4R3NWeR zf^Bj~w2@tx^pWlNK8(2Op%Q)Zl)5^R0OZhFPUwZib0RU0(Er^}BcI_>MLU*~?l&Xi zxnVZg`zE@x3gZYxM!vxuT%GeR&b-Ifx%*bDn|ttDC0002`rd?}wVz0?vD;bmCT&;! zE}dP<;BSO-fbJ^6b27{?yOfIjZ@j|w?s}8lzd-nh_wWz3a6l^9tz4&zVFlH|Fc=rY zIE0C5hCb7q?4%$m&2Dv}x@s!N5>DegMEz^=(gkj)CalRSDb~#{0rD69P1#?BjR%iN zJ6DVus+M0$%|XYttBmmyT(iH~DA0l%X{e?)qZ=8B`c0`-%m!|>kahE958NmSZZwDt za>7g(MkXtl$>$>@obR}$fUe?L&mGnuN;h#t$W00EA&ZfAgjZ&}bq+9_)AcV9h!y*sfFBTd$^#O80^80%^C%U=$ zS&$-0@$ZG#h@I^z+#v=2+`M^wA;PJL;#QgH@kg&J0#R<#|1*r4DC z^`)lR!Q@q+>@;5s<_E#oIx{{?iT6Db_Zbt(@a2El3IdyPxxRW1<&VR+ASllPTCER^ zY%t~dJh#-7FfUm$Z)@e4p`_wP>IYNk>Ro5}PPYrY;nT9=L7>dAL#%LR9Ww6I8U8`_ zQY*tilyiD380(RxL43Q22`R9@ukW+!k&4Mp4Q=VR077d=X^oOX# zG-$0yR)mmmCYpgmHU{ArSU>x35_zaxasnr5AW}2$+#xF1vj(Dr5nMZO3t{Xfvt;YJ z}AjaKxRP_gNhlru!(FKuUj0pE8_R8FYjPby5AS zW8N4l-OCv(Mxh*N?!l#$!xw8(eZ7vNiBYl7zl?3NeII6Hg#FYS^T}X9Mn~=@Jbv|s z@6o}&MR1zbzEWA8e7JI@9#BE3c6qd{ll24QO??HWr z9AofJ#{QOf$26igPBy{^FmO)v6H#T@3dad+HQVtAX#K9$1BV2{K=lgh4o)_}!%~5( zhY53lNn*4fMx|hsF!(AYMkN^`fUv?H{1&~m^xv7Hp>t(B2p*pb@;1OiXeJp74$g$G zn3r-ebQ6QP?#FcktnZ3G7-Qg+5JDM>Kzz~_FSFiqWF-y}AV5{DJul0@`V!1j) z_QH#|m6!5-mSgB$`n4WdC1BS$%WlGfBIYLJVF!++l3h$o7>+g}Q!1=OMIVarB-0$L zKUZtj;6Y1OKn3B(hLqWqRj*X`WK}K;zocgQYdx?_0DothycP3a!2tlzDk@e>jL!QL&b2G>r)Np&K|3AVy85rhqgi=pSl7CL6;`SI3QL?0kv zl(1M8r0ZWMELI`@tvZ@CiuU@J*#&>tNhFNO3#)_33CR2a!&=1fH^ORD3c7y{JH#EX z7j%Etdwz`Q$a93mg8R62Z6Sn&j;ZF3UGX=>Nly&3seq1ojtQz_}9yJh@d*i2!4ZiXR_Nb7JYC&qI4uOFEJ&k}d?-Ypysx`~H6J;i5 zbeBuz+0<;?p6K-(!@ziAbT-DoCZ$XOyH)F$4;fa>R|owq^Pk)60~T64b*=_^z~+J3 z$F^M)-c78!!w%_FU!);6tsCT51@bPv5)h#5&P~*gw~s>=3C> zwfgV!KUZQGki5n&qF3k(ELHx!N+{5*h2zi|0*BlY1R4X&2C6fpSjT-KCT2V8)7YA@a?D%c~{7Ph!vMPZ_2$e=Jhbzm_E7c1IH{<---F#+AYS1nHew04j0WwCMK8tX&>GDkP4r?RCmzG{JDqQadK1cAZ`r>Dlg5Am+@s0j`#BaVN6olj*eg+ zeGMj=f{I-tG;vWIduw1A-1~R?=ivQ?zJE|U;skcc+dA*Qm4%ww0Gm}>O^eYSXSI0P zW7}wZJBVo}Jy^8{?Hr=WRE|*!H#4GeGq0v%Z=z4s^6rT8UnfKWJBHRVs&O2LrN8Cy zO3a5S=mBX7VOHTynpN~atkfYYwVHRwl{wJWMv0AOr1Q9U-L8!f;z4i50Ol-?UQd5c z`P}zP8p-aEin?Sq?hY07&7%&PZ&|-|6Hu8KACNZi9cM>AZD9SP`ah^#YPyQqutg%A z3|L#ZM+8}qFY%?w@e|$-1nwak#Hkt-TZTZgf}Yt*ATEYD+O%dcDW5 zw?GoJGQW1x(|!r^w8tT6>XHXI1kG2;yRz^vEl{0#u_11+2N_eya0_ZI?(-WX3VF|S=wE0oMcvjVm(MlZ127xsU*KWWuN z2D&_7x-JU)%1bZGQHL1O!w?)2M!DaI2Ayw+22mpX8fONrcL?|u9C(p`JjcnZhfX=$ zBcK%q6>d3MDNS3SB(Q#2OWaq6ovkj5eaN@3D2at(6XNBPvem=M?1XTwkGGbByU+>7 zgtEm;sdymuAS?Xx*F`!HzII5$Anb0n9~I9);2tg+4I~4U35wYtw9cmrM0t2Y^!_@P zx%bYcbzX%}1;Q_079EbrDwMlAF?+^Th>MOvQE_@*I@IZ*f1c+?Pp5T^o42ip91kMX z<(TMwaCuY$!+JzMxDMA2WUb5zEV90uCB;#wuFJp{>3l2Dr5i(HmuovMmR} z#r5a@jS8h?NQXKswAePf!&&np!9KOKYWBwL(&fBy~71e;VrOM$C`@3UzD(&>nrQpN2Y;W1ogPo*@hM zPeUCQ%TQY0XQ7VMgH)*Ff2Q<2w27G(T4L8m5OWxlbmc;FLM@2~H#3y0-8q=3J3nfk8F=8*&6`V%d*_pCtyJeb-2wB`1_* z$;hCntMkZXBwdGfV2(Zd6`AeaK#`iM%%DwwyvK%y4^!bkKc{zD&u(}$5^oL>$Gdqy zf5#O+#+xCE2z70pSE+{f!|iLhW`jiVi?rb@siMB}Yg=K~{pVWPS#seT(;?%7H1v7U zKMRK`H=Zle$?+iCM?dq#&x!WYb3NJh_^IGN6aRg=lUl;yWazf3T^iN(90Y^rNJyQ%P%BzZKP4dXG{5hSZt8V;U-WXH0Z0zzbEFzH9UFfqmda4$BeGi%*1w)}Qla zERR5Q3%>JaDpsiVW2{h^CmBu^R^kxwmTXS`%=4mb!D6 zq)zi%&FpvCPo}EkRjC2Fru)zHwt2a|ZKt7~CZi|Ow6e3uTpW7NEHV(3n>?zrxxFE5L8aNaP{{}7a0JpT zRVtQVH%CMqj)CwQ83-zP?HhjmE5ySQRA1KhH3kxmYKcGGo#X@PFy!I16eof9Z$gd5vYt>cfKNO=kdQ+nu;B$SE;y*=I+}jce=NHj>Lq0x z;vsBv0I7hP;AIf=WIyNju3FPGj#mDC0o$EVLjHU zRm)d@yKLU9tjuB`(L=cX+65uyQn}gblFHqa-37lW%sj-*{QJ*|fhoVqdn+|1%3s~= z|AKpIQ(0=PH$>1{*VnbA9dibne9+sk7^^mdq8y^c(uMxl2EuG z$Vlb30o+HqkxlQiu0sb_K9s>|#Htkw+vU%V5^mtyO}wj=&pk z)(q|=6Bvf+7Ide+E=374g#vG!vZiw%(O_5`hHuo@Ip8VRwl?g&UBCf--1L^e#9;Ka zmBQ0dU$yu7_fhLnW?TL*>RTh_V|u9%b-ndkBC?+MZ?L{U{?}=UFB$AS^)MDmXTUpVG=Jz`4rqb2-GTn8?x1BwDT&!{PS}0J#HbcFjAuSoJ zWfS2q3sm=zH!!faYVpQX&t6HjOo|UZadK0X1u#u-$4%Wf(M>w>c6iuOZoDuq9Cpdsf$*o_wJ}#!-iy)H zN9JgU{jQF+8T$%~pj<#9jnPi!+q+9KTQxw^{sCCxGAkxxf@v49Yo@GQHK8aovQ;`t zaO#yBDZ@;qqst;nVINXzEGN1}V;iZWi^^#{Gi;l{{ho+`(aCeAIz{#%{(??Xe>RqAkwjjw8=E~Itj`SLwMbH^GW>S@4i<6G$8!e>r}APC#l&8 z>Gg8kMdhBMAZ?WV;^kI~kB195n?sI-0(dONe-KZGo}n7c145v~z+92^i~i#Yifdet zu!zU;WL)DcsmP7uCCz5krWCJBffB_k10d@lsMUPJSyoLw~0 z^|{Y#7(-IQhV-ENmYIC0r&^tV0B-QNpIc|@|WrhQiT ziiE~klCk%dS6%Q%oOBi=;8~IE=8Am1OPJg&W!KW5P+fJHWB#D_46kbYiNNSQ>iNRxkm2*9<_b7%BXhO0+SG~=*jpS}MBZx=QjWG9z4WZmRm!m*90f>1Y7_=@F zde>kxRta!Tip=I=#QkSBu!H1CD(O<^(rU1ndUb*ATmufRP2l&+56S7CHiOuxdK73D zzzI0z%M|HM9t1Uub;%O^{}RLrnC;wx+@UpnXPgK#e|-rIB9P{yx8^*d)&Js=0=~8w z(Gn8V*l}khUt9p6LgrI64lGsRFeq51ts?E;Y{KClT462d9^o}iN<#fC-O+mwl4JB; zO#LXw;G3WHo=BYx;XU0vH}TfVlMuH-8o=r7%~**yIp3ILS03e77;h1 zOE^P^8`S=>ak?_@OdB}HRq7I=>fXMmQn)q!i%6^j14zt@^@ut;SQ7#C(Ra@>OVHL?~>I&j5Hf!^*|4cjrZf=&Wl|KBZ8HIg(BW_TBFI8 z2xr`$T~UdThi#h%68+EG66uV6l}~8Jq&nl-tPr~pSJbHfvAItGhn^76tFxDsEy?$R zU(N?^yD1^fczeEtP-ZYE{RfHjVFKhjVt%UPIU|andK?Y9AkwPhxjVsDsV`4_9|vRU zM+Kcw;CD}zvob-1t~qpE3C3KAu_%(7nh!aQIrWuLut!Y^<6OEsk|2q3F(fe(wAA#; z)0LKo;+bNVfdZQf8{nBT%_f#66y62>^q!|#SvP@`nzt_OQLL2_yXfu(7nMi;F5&Ng z+gWLNIP+vj&1UJe{}Nybf7_Y44ErQSNpwjwx5zZ`(Lk2tU-`H2Q;?r;{JlH>bmkCl zHP7|?#E^9poU1f-`p(YGMR@z_w=o~3cY>@C886&Wj=AfNd_#ih7r(OK zsUL;K7&0p!pJ~E*W~bDdkMYG(ph2{Dp-sHzSAzdt)hWIN__T#n*c(f7_l^8-YOeYJYH$Oi>qnKLx z<(Ga@B|;IRjFgF%&0zQu`;vcFknrcNa6)@OQo4?1^Xluzh?6PLai|7ZmFN&gns4mn z;EH`#_6MrjY>h@sa60j#><=K)Mk?wP*3mFpiW<%`tFk|wCYgbpMOyNNih6tY2k0gf znL*|0@{4iwC#*zc1TX7w*34;MR+5pG_t;g?$h6Q}Zd;QAjX3Zg_}Cg0jKVurajMp) z&V7NPM*v z($%*B_{XsbX!Bc;CQnC@yi>zanbG}W0s}Ss&15m;Ue_QPHpNJr3ciLdaRIsa`H$&M zbdgv)tvN9I-s4owFD-gbp3Hr)^4h6!mR~M6urBSFnvOJwZ`w_&vnqNSes7jt(qC7w zW9Nd?vmuw5)^Mn@`EY#J9KIoVXRJhsBE21hRpE=2ZxUdYfR#rYi8urw54FKK=mt6u zBUO4vzCi?1WgDS8LT-4KuU1PT`w*9`rR09cD&F8;(gvy0eyH1qQ92PHuKK?#FX+5;14erv>9u*#})R$~>gOvh7p))z}kfkwqW=U)-9EEWfAg2QEe%SL{$_$6yW_Wv~c($=@9b$ z8ap)$&eBRVmkeWF3WWN>mb(ePUt2~yX%Dh)&$62beq%VkK*Cvzo{1EtJ zYU)Vkg@e8>$PImmpT*utNtkHm)}dm-JGUC3&`@mMc7_J-y4p0Pu>}AB znK!Jnc!TRxvAJlzF;uHe3~*;e78mq~#2&YhWz&gu7mv=km{7tCabn%msw|sMxzyVa zLCN^%jrw$jKaDctAcl6H{`W5HRfC%3b#}wFUQGid0&UFq*9s~m;#wBQ!Fm4>Fagx7 zuLReIWB$u3CfA*mV90tq2H-R^>ys-+4umpwJ*4MK&U68 z3mx39)Ua9wKy;8KR6sBoWTgk$Lp=AT)yM zP>sp4kFso>0?iNPh+zHNoW%|y8Vc(9IAcIVM!U0MZAnFxDyOkP}T)kby(2A0eKR7`AQv3R1S4OZ9A0pyMQZr zKrlt|{g5Gu#>zP0w9c#XW@7~J81L|BuDuI>iW^qzkkgYL+@6dAe%s!J?j-vJ7Qn-}$&ouh!MQ+C-rX^H%b+{VT;Y0#4*8(S(iS-7aK|>}H zoe`Ad3J3en!k1FHYRTVn)A9=Yn#C@;E2~b8OMa|(G*NR^S4{&SB=(8rv^0(tt2f>c zg(|8EG*zQS(UC{e&_|gc#~306tou1pCNYsmGEr3SH*t&s>@ctNg9}YH%H(?F5f&O> z7{?IdGRjRk|K+9RLQrD>-$%3jsXcI2kk@48;@o&S!#I#RG$GZ(r3xBlFQ4P$lw)o_ z406!LTmbt4q!Hetq6-wQp5o|&JijhX z<#W8pDd@Kgg<~JYE;^7J3+HmGp89`W?ZFmAK_f-bxasU>c1CeEqH4gH|o|9;2H{i1G3Ai&NCnFK_6C_JtA^(BZ(2hYT zY9e#7LI3COruM`uI9Mt>cbKq<2U$46RV@JG3a!oc8$?W(Fn!@;WL=Bw9PFJfiZOZs zh^HL7rzhMKV1fzEa%u2C&sm!qN|+WoTYwwvXSLHY-q@#ci%4`YALMM|sY7VO-p!LM zGy4&(`?J*~lSJ z+yLu)xx=4iEzZbrdAbsr;)0@r=hH>-_jalMtg6Til8J-kaCuEGFwX%`59(Mj@70TB zJBK7hsjALR{lFDndNw)h+|&-5QW8jak_a^YP<94XR<2=_mwq)zl&Yhk-5G1{Tnn$T zgXi;s;Jx^Uz92Tkojgzuz-AaGyI48NdLMNC9OaW-3ki2DgW|`k8kdORGDiz{%mn4n zDk*g&Agc1$xzPD1_QE>Hg}4hNU6nh{sTy{8UzJMe88kxQ~xx+OiD~2gfKX&vFtSI?!auwu` zVQNcS*)38`@x5Bb|3a=J$37)jY5p(ds%2&W3%P1~kRn%QKYy~2AS-a*X7yqDPMBV8 zd}PM|;8xjk&AFEd`2^va1+31+L9-X8y?kM!MsNuY%Mw0nCtOMh`W`b&fIBxZ(?VXp zNKUrr!%T~cIC+qU$W>D-736-KR!*et)>4l1?;T8fxnF$1I>r3Kv~)u2-7`Wuv0pE$ zHaaW~^^TZ-EvJhQ1NVUc=IzB{+fx7v*?#?Fe;-t$K}y9Xixi(C*S`?CcW+4A!ukZW z1p$C6Xe_z1nd~cj+t^7X>9pC;FLizIf??oe_x`6r8$GW9iZgn@PY?*b%gLgWS&D(j zL?dvs5`GoS6F3mfbfx+&QmB=zrUc6@*oNGQJlRh|Q?~v0MSZ$Z5M(U&h=bV#nugPv zO4hvZm3RO`QHlxT5AIMw?AOVy(;@BsPO|=R3gg~C2^RSBmr6wsN!_%olDVoBu=GyI z$GAeQ-7cu-{iQbsbbBq3v)+2% zWC`gTqJ&TLcXStcpdTh+Y8@*pnC+iE(AoL1@Uo%JV(}ec~Ia8-LAp>OE1!kJ2ht zP1cKWvpY+;Rhuj5Fg?S0oAhk((#{aD`2f~}i{!3DCfJVnE&}Aro*9R3aK*J{kn9{U zxgKd~Sf+wH$Cq4958W$)b?d$IcyDL4*)fw1>wkcN2;>&B#U)?Ce|>tq6-xB^!DR#d zD*t1Y8iZuR%X24Qk%>On-)g9Gv?csSG-$j@ z0hyEsgXXp%j%?G==1sn(`Zxj|)qDWC`jKY$Z&!B;%zFO`m?fdWto&&(OVC?{J>-K# z#bxs#+y@(tOu7xKG&M{iFYmGqy>zvc<1--8z@_&V1!N6SKo+ORt^GqcuwoPUT8_kB ztIf}W;Om6Du~&rY7c^IJ3wWz!({O%|#e-?d#Q&$8)}()l>EGta^N&9j3^V{rDN&Ud zZ{DYYh)ZsD#8L5J{W+7dT;S?Kzq!6d=#BQrAl~J#9Fx_zvTz&62&e#LUXQ=YSnB3^ zs0RDQP)q2L?EaH2?&5HydR~!D95sDa#_Q{APz@$%0ktgh01OCha!Bs|k%bVfFd>gg zI*fq6a7fo73ivQdOvcuJq6Tx-IZ)J5ehm(8suJ}Hk6iZpjH+fM%}xqt7#MF6UF0jRR=_V_?HZgAW+ z^1k(OGo?ri=&}_s!E8G`gp{DrM1;FGO4g?}-3FC)z_bqRhK&#Fg9Zc5&@i5F1qEHv z5+WyHYei8#aP3*r0+898E&xp;30+OSW@jQMki^Ur-xic}vmGh>wf8%c)kh3o|z$DSo%J!Q3E_DhMa`9PW))R|&ia@lx0$`rlWit3PKKl&U z$rQ{G)!Xk2mV6ITIKyAGsWR-(&1JJRC<;7>d zUX8KQn52qciq5X(kesQ>!p5Ylaz+`Hg0($;DAHaUlaDpb;`AwFQfK&Jpp$@>yMmPS zU@*akNqZ8@sxpl={{y6NK@S?nuTtvOj`SgrY@pd?olb-3dI{p8H<+C<8Jm_*#6ivh zQstbL#?QTPrGPJu`|7!6-$r4fgUqa)QB`B`*Q%Pc z9j>I*t2BQh;b8MUbx+NG)$Q&&(>A5jgeLYi%%0-mAw!@cojvo2s=I;?G>pd+padvX z($y#~^6t3ekv?ZABEs}?|BghUERt)qI}XZfx7Bvya44JS=H^dV5+aFE8k7ajP!=@r zQu|Rg1ST3L!M<)!#B5Ra;Dt2~$?BSX{Sz`(-^Bb~k+z51j0*i3<2+SF;WQBdBjMLw@>a>CrrHgS))P3Y`gKN_zMu}pp#p41-QUs15-N^_6nOl zQbEi%##WNx?sY1TWFlv6SG7S_cAS7Xs>mk+FBl=`nR_rT6l*4A-OA7bQeJ_vm14Jh zx$!=Oy7&(&NTGyXFzq6i<;c3V5yazl39-E(r~uGCY;7K&oKrelEpGPs+-U4pN2((d zVl%Z_@4!sc&oJ%3?ekp&gl zH2y8w!D0?4j^;Oih2QwkRZW_Vjl=CYe)NEZWdQiaB}!`zgw3>OVM8$_B2*61C6OHK0`b)dGmNF4|gx1f|#79MMF7kRxaZ8H$Qr%T5JCR<^F zwQ#RAaZgSaQP%(S4`p2v0MtH2&@W{~e(#N%m=p=n zp;)q*m2zoNWuPIsY_Bb!G1F2W{b#CJv7{oai}0LvJkJ|~!5Te$i^i&^`|L4LlXy79 z`)VUX2Cp-sfCH!X@^I}gJvVJ4i`cR0OI5uERl3tB%7Pa-BrT2>i6SJ+e(QYa7AAM< zzbqVHN;)u#2;Yj+pHm{tN^@`L5RlhPd%rW`>9@%v>mUK|U@{Z|gzo9PO$Do~>*MNz z)Cz={+-c{`<8WU*dVG3o(V@Uu6tV}{*_f_9WeNJRz)|BjY(bq z&Zyqqb8MCmHKlWaSnDk=va{hS3CERRh3D-isr1>%CBS1*5#Hlf?B@dJ2ifVc-&Wtsp88U|)q&(7La_E)DPcCHWo@nz8i z;ue{EX(=#Ev+PJ`uUn|xDbFVVIf|DN+z5HyJGSHoLxSP2SZhXG3)r0O{-0vt8K3oR zF)*}uiF7_i7qm+5Q~t}Dn*uRkvtG16;Y56RnVSM#g3*a>+pkJN#e9yxCT*zqNxRrk z@l1~kgBIHvQN(haS&AjE=2P1G#5~47AOI&fJ(mkkz@dLq9Iw#HeSkm>(Tw*i(M7;~`W3XT=pit^nRvf0{1fT9k`HDM5nF~%k0~AX zEuo)5dwR~qG`ZiKA`Fu=^m+)()gJVyX^Fwc)RTeneO)zum@wu8yM!$aPo4J;Gi%)e z67(koH?S2#1^a%j=gWvQ>AIScTn1st?<1E)Vb#;5>QyLX$*_sKA?#K+!;iH8I^#>~ zi_gx62SJX~nwlrP#>J7P?a#c9ogtK6JWtQ>t6ssi?O<@u#4-h)D|$&UVRr#-M6eqz z5{@U{kuwdhidzsRDLtA;)Dfz~>SKps`YNNh`fFdkBtiy-IHF4}m9b=yl-&{ijf{$E ziL?s-Aca2+bZ!C{-Qg>h8{#tY76c$w5PR+<>-td};R$WTaPf0{Gi@S`ShhFEecVIC zLvO)NL&*y}i{d2A0|qm15Eopj!;l-bRXs{?BG%#!2Ol4PEZ4o$*GcBwx6Bw!p-b{=48aU0FsIFru3=& zT={C(|A1IZpVqj(r^=h6Gv`*R_%J58rmC^(Zg;kt-MQh=`*i1**NX_aa>TaPmwMo4 z46DT*6N3qSj*?W3YX_r=h?uEm`}sM#!1A5yU8(oS%sFEPp2<;#j0G-+-B=`R=(@O_ z?u}U~gmLJ=lC09s51MZ`&~Bmbf8nO8a*PFT-yxEm^i>>X->zq1k_n7}` zqkrhCLc*_>pFDh@bZf+U!DNSQ?ULCpou3xf&YH-`bTiozeaZAZ2m`YjNYiQr`CchD4Om+?~(A9#5eNEZ_n*mj-yfkMynR|| zT<=S>YVYyd+|B5u^JZW2>C8a2Jvh%-E0TtZdvlBaB3v%HtCl#=2aFLqR`8qGC1%F@ zB{F%GAaNXS$mkX<)xFYILH=}ZAj#$QdZ0ekgad`OW>>qf>2ZWIvm6}N3=uo`ob}f{ zyYyTKDk}054=G#kL%W+=`_<119}%mV=1^iFxs<~z4%@~wo3NR{3GKlvYpeUG)!GxO z7(Tw;*ad>>z1ugI@$}KBhp3VhJlfjkk}8m0$ly0Chf!dN9)oKJIR{=EbSaMtM4>(` zzR%c=6ni|kmh((v&H5l><5YW)Ry$PVY@{>LlZO=GveWPF9=*O1p%3<2Z@Hp}VR#J@ z-Ne3$`Q?NsIw$vHUSGmpc=*BKSIl$N1Gcf2cnW*JPQDI$6;rPE$(x7jIxNk1O8K4E zKp=x$LTq{bxiNy6!nz@>-XD+!;n3{vd~pK$ zL#XOGH=+0(NytdmJH9f9kr6s-47t8GW2@GZsxB>*J`<}MazfE0lhl85=Y@FqqA|*q z-brr{+lJPMLw}YD?^lDG%sDbk@#Ybcsa8bVB}UYaQS~$1fwTB>)BIkPlB2%KtXO6- z%>b=D|J~l*Aw(lFN7bbZ9S06bOP{sq$vm)ujW5 zekY{&s!D>nWwiSdDd%}D%OKWkG#?9;IOi_*h@j!V%QA*3)Q(d!Mq!~#G|)<4sS3)W z4Qy3f>Y=bfer7K1$7J%8Q*SU`TpuFia-*eun6?yas&a-&@e-{rOuY0rNHKjW%o5JY z(H3~{jh8>FbdmPRoM}EwgHfe!^^~y4KO#+8kGo&ab7!~@=WU?5&cQEWT1yw;lTD3+f%l>S%AFrLLOalX!3EP1*9FWrb+Tj6 zUC}+r9v(U7vry*53PW0UT_TrF%X|vvP4xESx8S3Ecz-UNffZtK07wH!5i4GJSZ(!T zWv&|EsSDn5gas9XQXz?jdIC9Zb%H58;iyFVkE)zi^RxF8UA>t#STsx; z2X~!!u{Dl1kiVOxei5G#EyZCGh~J!gt8yzyzbgMqJsmNuGx{pNQ57`Nb@oV8K|$Wr z=-Fu0o6l^Y1ih$4-xN=tT$`DO{)T}|Wx^P&GqIp9i-X5cIT5hS~eTQK7N&WU)GYBInK%mz?M@ z%73t!k{6un=7LyZpK~YwnTOeJsX;SzUlrpfkGnfRbLUt^_hB&@O!#9Auzp_@l{$OJmIH02dJ5?Hhy@scq=bX5>bt9A#nE>O> z#?ChKTk&CQGLPwPk=$?{k{t59+Y8C{K>zd`AHK#lj;=|P2veqXC-t_|$+leqUcZyBnrDM@Y&rAjL zLAkL%spe$X6dkZi%`a}U$loHliI_r4r}d7cMWFs;ohl#Cjg|thl#n7&dUY?RErJhU z14+;)^PafQ{S8Wcf;N{XW~0T0(fF){B`t$dBQhx$Ef?)BX(@W!spvK>`orJwF&YYx z;IT}qAA>Xodd11F=HONS>XllEAc1#_Km!d&yl^{O=&$1UA`y4NvFhiBWZmC-|IVab zf7l+{bu3rPZXypUeydXLuV(I#t!aT9KxyddQ9p3FN?-Y_c)!pFi@>M$yeO1}naFk4pUWMD(I7{e-EY16-$B6{jT$tg-6k5Vg_&$nTiSoLubUI#RE#m1kj&Vv=KR`zA1x|&;GD>6Yn+8R zb7+k!FHx#?56-2x99#v5iLBn-E8{{AItED1A5HdB#3nv**Y$aURIL^!-R@zV%wf_c z>P<0!^byrZJUHz1vV+nZ`S&1miN_ZWRrVk0MAJrMQur1cmmg2f%r$9V6ABG;77}v) zJvo=5hq%?m=i9fja*3wzL*0geHi*Wkqxbj5M0yHJ=_>(SlJ;&DzD~rgDLixJSi-F@ z0t-s56*AU`P}8SMxzfS=bP(*;`>5sHRxj{p%F#_5H274uES|ZH4{5|}NF!wX4-{wZ zM}fMyhD@VA-WxR1i;~^9;r@1&>~(>P8EOYft&u0R4xPHN>o4xje0%aW{x)_Yr^9^t z%d={Cm0M{`|DlY&xJYc){SEqhc0cunvLAPTk+B zgf`<5=eotWz_8oED)o*_nzy|V$Tf~z8of{XH|($bGxrYB2!6=_uoi{voXVyUZcikb zeckcN(W^&kSTp%CIkksD$K5*D$zS^ZCyRzK3dpMUqNcY_SvV&yHF~utrR3$t+45iW z<|A0X);2kzzu(97B$Vu4)>TcUJvB!4Oq?-F1Dn^es-}3ZBIcrlw4L^D(~}yQ`bSmM zMU<8i1jC^c+`rpw0F4*CE&_T)Z5gA{5*aZT8%_tJCj8u%Ux;QE`26zLQ`&hS_Jf?b zJu&};KU9G{7bRB%r~-|M3gBq6OCvaaC!~v4C`KW$iQ}}gyGT-zxZ2M3ZM~8LNulip zcpq{syme(g9&P3R;R#Obk|=2df=I_#H6_7V6c694Cep{;*YGm_d95v<15#hgTiL^b zm8Lp>BfM#m8v3nu^{0i`NZ+PQ>*yuM;5Gn@zNTO*4YZnw=R~hY0XvBJDs3^y7#@(p ze%qx{9w=cBYTy+_kd>C+4i2SN6R{s|c@}(*$oGxpCMVFrVbhoI%#@oS<;f=AMc?Q> zR}kPn*zz-}W-xUvcB9pq_bw{WTxsEL@x##YrJqVK``SDl7~N!F4|U;;s|hj_;lQIyTazxq6>?p6@pnd=lInDBv@Jgf+)v~ZT^X0#1F;XmF~&gH4ObyzqzrC< zr0RxL09_`w$%0%;R3DgtobX`qXN72>b&dk-Y(7pV+tVg-O5YirVcclNC3S8{XtVOZ z+v~v55=FQjWlUqiomSpjRN@0`c*q8&^O}J_iEn?LZ_FI}u9)1=-!E>~_XXb0n(C&+ z2stDU4}R0L&^gF-!)^>+zb?xKjplB7Hjo%uwq+&!ORS>Td$>V@^EYSt#h1S#_Jj~# zQ5qT`&VL@6;xV=XA}?Itw1 z>23E@ciRp!kl6b$+5C6duzXfD=Yazsp>%lfrfg85NMKX=GJ=%(&~-I-B!A_Gl%D{= z{CUfDC>eWu)Wep=K^y{caXvZT-3ZBpl>fKcl?pR;DIaU@e56S^uisS&O?S|krXY7c zBr^gaNp|c=&ddK4P}f?Q!>&VF@De;xJYNS#OY+Qk)w%N#t{(roDO+#ZxpZ!62+#8pxA7(efQsu4lfiS$Ab3}x ziBEnirJ=7##k7HUm(}<8LSfVCF_oiL?w=EeiJn$oOo$uX94E*(t@^<@6m~1KyL$hC zO~)%eHE&=(ws&H*)XYrWodmBFixIs-cDTpsCBH5s)Jb*KGtDR+Zw1~;V%rQ&y-^+f`B>%mzv-bvt zoM!0Ji{2p@J>n#&O>}_stjARE26>&BCOo^jyoB7vDJ<`bf=)UmM3t%MBzQwyY8C1) z3cNnt=)O}=sx;3DvgP7R7HiauO@7$0~; zKCnPl_zI1~Ta`nc-abO(iqcs1vrS9H7sluIkQ(tX@>6;H<+$&*B4sV9Y@9Ef6# z*0F=h!oN}#=9l8vFYQsS)?v=%;LBBoWwcgvFn(U~X$cA#6h5B^e*JPnWr)trHR93~ zd}Bf`+{^TEJaUlnE_!)?g+*!j69NleSvJv#hD`^g{l1nAx<;(^NLN*{7xN}bRd9{i zs?RZAOQZQ;enV zp=t_84X2O5R3*obDHL{GZmr!_X$zn2B7==HY7Q;1b~*1TYXcxOyi~VXsk8bfzoNWi zuLd?{ImzNv5)>$KvP)-y0xhRyVF-L%hV0yAvmd6-@Y*#8N{IW~7K!25R~_?p7}UNMABQfndU`TI~G(-#Hcm50Z~nu;9UqnzaF&i0iJOZ>=wv zh(~Ul^y^naQwlc7y=8Zw(fKiH3}$e2{`%dv8lXrqjtn1K z{K{DfA%7?_0R%l_$>8~Ib%{FDmSW1&Q94XK8E~Qw8w)`^jA)$k`=F({hR!D1D`Ka$ zChUAhKG7@rR{Z)3)N9A}-U_CJ(I*wY4A%UlMW*wLAu?Pln2F&)4EGUjg}Ckt$=lc9 z*ndgeT5NZTAHpK|?<+rbnRcWBZ?q=biY8jT#4wA)$#xFE69yLV+5N}lFCn-gG5iHV z@4r$lvDbbf6h}a+HEF!Yv`+!wXF+udM4tptpB#2w&e*@3csdO{qc}qSuNjvk8T509 z>ghI$erl;Y+}pYm;Sv1>{ES>-2SdAMf~|kbaz`mTkb?g1XT%t@*UNz!K*!;c0p);S zy$iwBJ$e2TR`1`WCEm4$bQKL9G#%8(zoXy*JKjdDH!$9#hR(qecXFPAAYk2~U!shc zD;|~31`3d~@N?~41j$$=b1zNG zR-u^%^Kp$@BJ(1tzR)U>ruu@$WI|&2WqVk$W-*9iI*=&5mYNLgw%E^9SAdQUeTvwB|LtDaCwhzu{lT?AfR*3b`EwKZbb7pj2KE?*cK{sQAt7$1hFeu{G{h~0Z!HF_Jx57d)xDj;u^w(H7AVXl zs))cF%g|5t36c(-qlMdz^4=NY|13}BwaUU4;+ep^^VvsRNdRCq+)GFU_^!=l_t#u+)ujE&B@h5V+xXvX_rDQi{{{d#%_X(0Pk`yBw4&i z8;T(!m*`L6Z6>aeW{nD_55ak1j6j|}?i9pWhCbY@zr`CQ%e@d`=#tG$LDjvL$@{nP zt^$sF3pmQ>rC)>F(0SsX2oMjK9l%$(n!s})4OtHvI&Lrxqt{)Bes{UII|Zu5STtv! z$||)c)Rn`?Yq+}1qlc<1q(?vXcVS&YJb&YAxD5FM(sFlywp^C&(z>LI@6YD`&+cz& z{M270y66R3%nuTPhe`RC{NX(5`JgeRsZJ(3(m@A%*6` zd7$9a`GCCAtcg1a$AnuXu<7|<%nQTWuA`o)og70=l@@W7K2x2jV_`27H~i`!Mcdyb z8jQ=8d^y?d`&+ppt%ZKwV?1W@jqyAUVz@n5d^4-HXb+F4+SX+ry@F+B>$WUCZM#YS zx=LW#9!6}TI`IJ#Rk($?MPpnC<0pvH_AAwiW)=lgP?5hLfN|L3ftRQ{LAn9ZB#laO z^y`$dX6NN5@QR56$PBMXa|*B=c37M$Z9;~%yTA{o8i!H(@s&`Fx^IYKXo|NO>3O&z z1kLr!K31!h%m{J)+ZQaOJ*@jbb`+WF#c3PyBewkC)SICs80>L-s})*j|BPsvNS*NC(*z5O%AK zIH&)D!AOGX5UuWy+@JRy$pN)}_aMFF`6l(i$IrkjuQB;1aJ6Izllh#jy@Fk3>yl2@FcBFUNz^i;_cGln zv|o6?TpWDNe%ZYZE;}|YOcsw?lVt3??tzUc#USL447sP)XJ+C?5 zZ7i|DWlfQ3pE4ehciS`Qds>z24`f`u6sSh*5slIY;IXzwd_24EC#D~D#x=MN8esQd zmoM}15)tnEroa=6iGd=x%SFD981f+l3tfCAc55Qekh4{D?w{=QWk?OfLczYpnqH64rnG|^WV64tNt*huZv4Mflmn41i%XA-LLn8HNc=Ekt~CKkTg zYve-fI=xqZG+Bc@?ieAXh6iVeNDfC#Kn+aN#yK+3sqdu-`f}C@0QB`3&rz&&FVb6b zk~ESlc=hrdoecqmC2L*%BB;i3Xq2=+{4)>fh|dn6`{XLOochW|1?ZEwif4QRuHsX= z7Yrt%wdjBVk!USE%$14Q!s*TKqIo($N={^7_Wis`zHnzSO}L~&gOzy+(8xUPZhlm~LDi9F2C?`p-ybzXN+-Bc{lb_{>-&NjsykE`PJLBuR*yW38h0y;z1<6-maedm zxst)3+3GZ<_myMq<9*e0JXsRWi%b6+42KMVul0j42~sqq{7{2G*RkyZbZH@y+LliF7UZrk1nuqsFJnD&lDcS!ViBqD<7} zwFo&NdJoJti9oM_NgFn0KPo%4btT!Mq9->Kf^x(-FU8QLP5)HuUaTKk>jnIZ#%7sl^Y;dJBGb8Ps^* zLKs+M)zI1RS6ZWLx6*9x|5C7Knn(OE1#6{w#77F2ujRGaEs5j^2sLSG1>Ka!RgY|` zAd(AMNlNWBkAMUp;V*Z_`DIqudO(W*29ZX;s?9(PrRP$|>iB6feb8JmMIY6(t)%F4 z=u@dnfwAc4M4;68sx~*enkFQa-YOY8bKX^vZyatJ0j7Wmg}8>DLXFRz z(lr43C_NdvZWnD(_;ipL`tcz!X52*#!*LM}3slGJN{jJ}dKx!1rX6r9-HgvTje0Rb zu<=qmhwWmB!3cJn`nmJFs5FN31x-dUkPmuFTqOTG(w^O_@W|vCTuGAuz0E6tcaEjoS=h@s4P2lGvOI|mZ!rj;rOMMFD>?W5!5G@36uH2$tL zl90IHgEleT_@(OM1y%A*9?NB}U+z(n84SYr35%<+UuouLEHnP#fTV{`s`r_c8#7Q6 zJz|@*nWg+)FHxYp8QY{3iZ}3P{a& zsI~cN1cYj5ePEiBBv%6&AXb3dkXF1W(h9V-H;aNrkO*>E+i-#jf3dmS|3Mt+RIDvr zwfQ69pqea`lL>Q5$BbYGNOeVld_93aA&A(>ShvsA<4 zE8qafut&KfZ6U{KjKkzrXo{&bNL?aiO)Nho6=(5#WvI3=AXs~x1vmz(Ep1X7ZP7S& zPVS70+LqcHlJpkDGKZ?tMC++7x}E!RJvkMN*3(IykzY3ohyMsup1#t;vgof)D=NJh zE9^VH$!Zi8fIq*l(%&ehny}4-aN{4ul}4j0QvkIA-R(5=I&m{0cI?}B<}6kjVa{9) zR_|jVhy$UQ5?6&}#z3riw7uVZ54C~F{ks!> zQazvqskI1A6B**n3RSqfrK8v;E!>u^x8MXw$&ws%%VKpmty7#IJQ`YO$!}jzswL;| zR8`F_u7`V>OZP}lq!d+3SUC;7VJnSi-Q%~is6%jOAA>reG3MF^GYd+g*=b=JOEp4` zi+$@XuJvq4eCJN#h(y@&k+uNGO_KEA+prqmyw1)TT5No9c$#~H5hKo3Qgv&E*x~?8 z9x&)m=`>0h?16Y^qtra!@5W%qv%o{5gZkJ(bPCXKp2ZSs06TQ57H>O%FCaOR^AG4S zRu65MrBZ?*$F$7!0HM*ZRUOOur`Tw!MZk$Qs$(VS2M|# zuUgvc4c59JXfP&tb%_kW{lhHEZ@)uuh%3S4O;wwTRolqaY+X2(5*CfcZ7zn}^pX_?_$&G>tphc9jNt|RJ%-#a^brRK588p??{Ik;VR z@aNeU1OsxZg{h%2PM!SL{h=JH>f)X)rHMPSY-6)6ms)JCB-^?n-50%>8Xfao(VXx+ zcpRZB#iy5C9mDPvGQ5n5hWVaq9ooBrX_dItLyJg|_+>JEaTOcLcE$Unp`Set3N;%e zOM(N{ptk1c^-uzY=kkk_N;@_o7}fz`;{5>`H&a~n`1X-BwwNK%_4yga6erES*qnVw z6;sFIv&wT7?OA@KtFdPRE%D)wzZMl1i3*Vv7S*~nnOrON>-d6baz#l58Gfpq+vqhM ztG8}#`q>{MMg(G>wFaLGpZ82$ScUG=DllI2i5P#I>wr4{$&ux>(D)uuT*y#jjble2 zB_eB*L@OR3%MrCsfPTa&*?lShHnu84Yv9L$P4-Wk<&3bmO4w)9>;(q0?(Ek1A<&O~ z;lM5CKcszCm{jVIGp|?v3B&wm@N|4FVVkv?6tj3Q9+?d&gTq^Tmd6hQhd1?JTxPU% z!^M)sx68YiwvGv9{88fJz3wu*qra&;j|yO?xo5F_t#E95($3TYH+O-C@$g5yDvFaS zWe5VZ(qh%@R*F_hyGL(|;*1A^FiNnhY=*J5)m;JJap(R62ok4$9jA$>|3Fno)qF~j zbuHzXx5BiH;UWhFY4i5`AZu^L-r>>AKLLCUw(br(zHnT-PAFHM!ha}Rn?mwFV4p(Q z`~Fp;V&V$RG8gGEL_oAKeHD6|VIx-urj#k{L;~*^cq>?=A4cx$woE*CHI!fs>w7ze zPq?8EUL8{l%!pyV*_5`adi)n>i_{Yfi(ld3a07r~@d^h*b_R9tR<~BY0!%|M@;z##iD6hnhWhHexc(S=ohJbT? zqnr7J9XM~}V-R264**bfmgu?v)y`tVO$!U2Y~mXL+mxNU&}f(WZmP$>7d+Wc>46zh zE{fV4(ssi-IKXKlh}-kPK8OFh-!#(fBpm&7w{!`eY3;gq_EYJ{M^CR>iA)P*+*gym zl=bdECHniQ@ZkRxY7)}*g)Sj_Pw3YDkQ+P2=5?g?=A9_+I0{zHZk1D`i!D>K{I+(f z5nXI9x@QN#-IQEaf$$zEAUH$tC^A?HDq1g6F%cTL=EYOI(L;ee*PB@~l zCeg$v1S$eO9Y1yV?Wbh?)ZYGGwb}y7l}ohzst`~je7(jlX`8F~Re|S@CO;2b9Uj^@ zHm-P@@J&$O2dFl=Z;rRXzo^DBHC|8GqBPJjJcO@j@Jii7^OTIgWoW3qWMULP8C7t; zwI>pv-0<|}H}a+@gYjriJsCg~iFI2tX6or%m|sXXIHZ;vpLW<)nANVb)I&^oT)Pmp z9KN3MBlXGePRY!-yRLnGs|6}KF40PxLqL1rZ0F^V{#tvn3e>HhPd2qQ$rKwuu;(>$ zU(Gpi($ooHsMp#P@hu}>ku@$4jz@3UvDpF($K}Ds#T_AFJotKT)$OerG#!HE%j;Ne zzIrhz4@iYG-=%bLJHafSKkbS4Scu2nwDVp({od02Z@6OySYcl|^Plpxz(IA{I`ZE1 z25&qDd*|hJmk)ePJO{O4;qmxF{)A4ki_{B4wLT#>RJA6-d(&&YK{D}5x=Sa#ifSC2 z`Ro;WCM%u!dHo=kUi<2B$P5ibg%cT1%Qnh-9$&1bKKaY3x%00jzl-qJ_8U&YZ*pIE z(+#dM6eEqt_VpIzujO`-ds^+xujM&_SKGUFwV=`TT4Id>x?it#<~ON?#GaD?lOzAd z{Kek44C|Yg%rkr9eO)#?9Hj%dt8(khx1^`%BPJYQ9INJTh{8j~O34WA``1(9l{`EA z*y5sru2_l7`MQ&TIGzcA(^1uB%-1ef3Vdd$d>|#e^K9JR6H@NKRsOAWtu9cFw5px$ z%r9p`;r2h|-8P)QiJM;3-4x7q0K>QO<+J3+k)7NR02}6+rFsw30#2jdzP_bmrnJ|p zRCg0V1s&`n=g*5D)&AC}1c1xD6RF-kYVMlY+q`7UVwN)8xaXOb#16gKl`Aw*lH z{}Lk5XM*6(bU_uYJ+>>{QgiFsw=IHb3QF zj5XEfnPC%al+!ah(+9WPb;?bSO^BHS$$elac}(<);-E^THt5f1<~%?gY+1j}jUg`| z;y>j^a;}rD{I~8VZ^~VEnSD@=xRQQ(JEWwtVZ4i0Z|bK?%!jAxnOWG(hMZ+m+J@$l zPA3V`F7;;nc^k<-npwjVYRvQdWo@L5ry@nFs|%o%<&3qiwNT{f-rrDJx~Vj!SpKU$ znkvP~6|pA$pxvyteSh;#O>3;f?*vmgtX8c}U5zWBcb#Tnb$_R2l&q|B+$|*QA^va3 zGs&dLtc8@Vta2PB5h}#t9!iSrW(27!-A`E|PGyu%86zO9%!eZk1gW{!Tq8`(Z(fUC zbR|4t2(SRQvUXHEqaL(voX2z(?D0=Js;xeok>bdJAV4U9j>34Im`F5QB0g4=PMx$x zrL+S1_-GOoy(WZ8HJ)>CqM6#YCpk3hREsr^I-QzEsqjI{A z!x~GwHNPeFyN-GQuH=Ao=U6)0x&Tq=3Z2?fhrv{0G}_|iN?FQrpD^GmPSH{`?XQCd z3uesN;-@p6N4UowDH3|D=KVRgPy-}17x3(KWDU^B8*UpQo>-k4Q)TFNNzaXYU454+ zEoO3V9N%!FWV%0S%1Vamw&B*sIzMjR{ZyknHhxD;7H@^kKvJ2O8t+J?Q`PR0EWN1g zy9QQ5>peYv{-3G;j34gN%F2iG%U&^mb!hnV@gp|bTKAYzTVh%;!(R~y@vFpv`u;Yt6(WZ==hXO)6aDA-LM}_&RN`+}BrxQ@<{M_V%ln@k^eTN<1-FXZ;Y{R@HEpbjU-9Ahhyj=5sI0RK?UoT@-$=I^sV}%gu@Rd%c3v>Fl4yN?FsO@*& z8edq%LAJlUZoS8V-~e{TkiCBg?^QUFh=b6)11SZeYVb{#@rzh!9dpPr0iNdFY{G8-)@_WS3ySIgh@yvWoPQ;>NuNSB%1GTUhV zySnYE&6qBZ=_?(sd(?AkN|F66UB6esG%7v*Ise#gJp0q>!gqWdypq(-@t0z{InvzL zKM=P*boGUCV@a^B&if`gtz(6K##-?|FV>iEG#PW-(afK%dA9Aey3FRDX@g?te#Wr= z*jUHd7vM|DElG|ot25b+?5aemBvshSB3~;>TlD%5eTmnYILOhW4p;asNc1Km@h6Vj5jBH?X?Tf`4e`;fJCR>G z3Z2{-T4~MsI@?n{dwsfb@D%VthP?xFL&KKj#Ij5bVl4~!^O(&1ns`T5yU}KvnG0Q@ z$01||^A3LQpy>cy3c3C%z4QzyeC{T69G6muqL$BFcAANQRXk^JbKf4sIgW#KGfOGe zFhGc!hY;hQW=10)?@6;IrjfYE)pBlP4i1p2Y2ujFL9~1fi*+`&nr$3Y2QoPtyyMa3^S6&m8$wZ*yZY zv4O-eW%DXg5U7B}!-0(^}ht2sL7jtwq$>IOQyu2%Szfl%_xnIWSpSrZYT?>Cq%~8vGdh z%5{bjsEGB^gwx<_7L_`fII)^ml*QgXl4bd$*)Ur0%Q*!=FDx~R%b@DRJ^c@~*aly& zwPg$cmjJ(|yZs^K$q+Xx@?GxH-|!9Hr1GgGShvbGF$!~MZ;9KViFjgf^t zACc&oOm`mSz+5dt>DEsQm<*8VJt3TB8)gm?**r+`K{f3nnrOI#E=o>^PyMo7O!Mq# zj8ez5q^8V`;q&G0m&0Y<38vEPG#Dc)*VsDH>r$R*x*_UbR5t(NcY;X~y^h$%l&Bt- zC#vy|pjT9l`n0Qk79*SQnD0Ui8{pxeqhy~x%2&CSIdO@o=4Vl`iuN{1HbjRMV%yiv zojU(?v`Hs1`CDnH3mdeLcvU5|7N3+RMOoa0)*_)7T8l0INxIS2rESm`ij_UO`DJy> z|MK8{-adj)x;V)bT@pH^)c0WLyyrBS&g@H9p0y;Ow$`qBYzQT{cT3H}sgDVsxlZ#cq`S19}xw zLOd@!Ra-H}K1f9zOdl}xgt8gdu@750Dow^YGqK2{T7!u{EHSpGsT+H z;_LNfSR{*6;BI{$-*@cageyatKCquYz$Dslb9n$d3IHL|eAN+ofhO^>(RTlq9=;-Q zC8wG{04Fwx46hTBAt6;OMjMK@Fha~CZSuG>HpRSR?ba=?gXW$LgT135(%D8)TO?COD=cW7};gK+d%*UB_5byy%?X1AqJkYusJ4VeLN@MPmi5Dw@Wu`Zh>Hn;^~X#8Z`h(V-* zi_51zE}O4yNc#yNbWiIO*x`fqdKtly6lHMPZs;b;xFVR0tA79HknAWN*SS;5Gs|{G z)maqbK-Bc;*w2O@JeqO2h#zUdjn?2sXCfi6f7r3fACQ%2uK(1z4ej^e+b6bsdpm^h zsAU-IHt`2?rt0;!XQHkrrx)EE{vCPD)2`7Fns>c+F=@qx8tlr|W+Oe>XrF?M~xQ`{yH3+xI?hD8}dzU&ST_xzGF)DIH!c2;r6KF!;tV zMZbULzG9ca3`31Rp;?)ony@-vfDiPk*vQTxc_2UuibZgF7t=QSnft|lf?pZGW^kdu zhBnUkZ9i5m;eNxlBx#GVYxE(UlkIc)C+~LpnBCx|lUw=3dAzV6zlz=q+c9-5*NaS@ z-8~BK-UIvG%U%iOs*2M9hJ0B&IJY?aV4cn-7gy#2rQ`x)&f{KC>B{E-cLeP26hCWTl*j#M4fX&5BW;&0D zQKyi`XE%G(_b@2^qVCaE|C5e+eOo(N%pwy?jn49>EHW{=n9axndqo);kcq)q5i+4+ z0Amp(cs?zUJo?$BY@sMA0|+tM&A{`9l~Z*UyWHe&YLZuI)jc}jAFnW{akJkF$H6zx zQtrAg#G@{3c{Dj7*pAfhpo+pDQP(B2B#N$*>{!KlJck7-!iA2R3~q|S5*9ZN?aLjc zxT#lT?cgf9zd0&J2<_ve`RYh_ly0Si|EfhfrS8edwU!dGOp&3-(7;B-l8{|=P#TYx z4Dtmh(8E<3V`Tyq*8;wtXX6t`O_d-55n$^OV}RB zVSov<>v8YfDv(gfe$x3_xCob6Ve2;P3$1|j6q&!QSzJQpQ&kq1;3qWedhhTpCVQK# zNd?{8>aQVr3+GGV+f**^bRA8@r=zZn=e$WsIj${zF8KS6XKVBqv^8vbYCPx2=D5c- zF}AWu|2&s{zwuPf$mr|~;BB_%TO6@YF{o0*jwdbi=MzS&?{zczaV<03Pdw)t!&}yk zU!r%2ucHE}R*dWU?lmt3E&9|xshq1|=O!OS@m~$cW+sY8{WI!mrs3GhSH(|DZD94$ zT?O?oTNdCKS2_Qd3(Vb@dTCB^`{Ta0gLyxJvpZ+)RX?kRt$+FNnNQz@rzE%%ta)gf zrD$=9V6VB8LYolG!$oH1#i5Kp-FPQskKziUA^3DP*8r0Ps*T?tAtjB_xPx>5w z;e3J#o^KqRys@y-ktRrS>uN>86NBYs&@qrxr}lAesbrPyP_Pj~8M#G_XD`c^e-8B$ z*eeuO%G}l6EteVCYx*Jzd!YzhqI4l0WLUylmYq6-;9f&vi?QBw>(rj?XN5H$5pZ~sN?O@2`P#^q zspR*0G~Jc)(HixzbwTiYqP+*nL5`ADx+~+PWxqx=K1RNvWxDG}FD)9}Bg0WTvyw`z zW8JihG|JNvPHQ8>N02~ErPO7x<}@0~7!ShuFd0v)JJTT|+hE)qontkWs# z`cSI&9@2|R=|uWSJ##!z5RLQ5`0@0S99ANmdN+VfZ(xT@7?tcd(YQ=G#^L^70wiPP z1;cDkxT5=3fwBgrQtNQ!=HjJ!)MSK#)=fOa-#PVrQ>l;I70S~pCJ)6SeWZ*Y5<-5e z-zPdEB-g>m(h|q6e_>@}HTK}gLhd83WP36y3VfJe0Bt_i_Ww9*iPZcn?KXRe>}v9M zrlbLZ>msIZx4T--vDDMbRvleXn2|ys!E-({K#SQ$+sdDmX@loQd~7^zH-k*UNXg9Y zPr*FEjdVa^9>7x#>Z0``bhT-_NyZ9G=7 zT=GfTu3a?{X3S2mEm~yfu;bq3&IQBMj~qiHb1%mJ5aa^6_UTJPyUyAThQSUi;{2GE z^)7=tWgKMux`x8J4kS%T5Y1o=j7sJ12~`#ut|fb6E2 zgB)5Q3U}l3QnXVVUG({;k)}>JPIJs^GCM|8k@KmIsdb(zgmasVn!t_8+&FSJb?x^h z>`#@FcBDh~W28~o46kxIZw#-%Fp9!kR2pWWmW%u(kbrGXNpnS$Ej5)! z%@C+$eZ8c;R$%xC3}YizOKwE=MQTRhcx}S)FBqOlW;d<+2$vz_+*Q}!0_=ca=^c7{ z;v&E*|5fdKmlZ4x1<2r6C%C~4MGb@`Wp7a;0&3A%=@;rIyn%X`7O*Zd5hVcsWh3WX zal?%Zyb=x|Pn(4xZ??<5jj0;lp`ZPk{FA={FWzrY{xz=vNE>oDe^ffSS;A^IN3#hC z)_X5dKpgHYbWoc(bZYJ+!K8$9ckPn`jUP~fdphpXAPigFDz``I+b&s~J*5JF2nh2= z29mldFSd@OF}m~A-0ti@DB4S~A_Glf8cos0S2+?U?T-X38ve|qm{)SX?IsW{PNM2R2$%aeAkd5{z7y2J!Ytslr<;#}OAAKhst^rcrG2DAz8Jqq zbF%S`jzarVDHI?ZL%y1LD5_x^|nNEn(xH2)1Rxd%LkZ<)_K=f8}5nS25=N)8s1} zEM3-*RGI1r?ZMk=SU%y#6o`11-r9C5khhHgJ|IW>4zN&}1qgE8nt78SSlxBuylfzE zi7??9UfAT($6{rAyv*>-CgXOM z_UK>CgntxTv^&Lp^=4qw*D>66YKJmOp!!!`2|8AjQ=y6Wcw!o{>$hETa7-i|oUUna zG+Y?%*aPdVoT9tfq*DDa;EM$jU^glaqnx6<*r!spE=)GFtO&!m%EoOLgzMdzC^eQSG(puvU zAux-GXk766{l(C~ek0@o40?)|(?Shj%D&MW4@Y+$_!?ET_vIB+w9QuV#E!F@e4!U$SU$oPvDXgBfTTb ziDz^b8C_HBHhPl=j6&^0(LKAYuij)I>(!Xu+Boz{xgE{qXJssjE6U#X$=z2bLRY>c zFh|%b@utEdkHN#z7(9&sSAz?6knE1!=9dzCED?q41u34(vxa<`)8X`iV;N^7f>taB zF=i=0X%kbrHZ0>JUA31an~@`@qFkMnuIG7W`QL4^sZ$_!k|x#3PQ^TD;6G}gjAF5s z7hNH1h+}VqHmfv^zwLjs#jP%o;nob;b^SrtQKRl_%{~43_L6m^j3rDSVy(Aq2KT=` zlNhvv?8s8tG3tE`xh7`YdijPfi;_%a?i>dj^rixW&u!RZFW=B@LG$?*2OBMxTodD8 z^RgmcpSo|2)Kni}Kzx&qeii_m*PoIEME$=thf+^t)Q1HNamJfN|eqRj18#-`@_2dWSe=82gF&n4Vf=ua?MJ8FcYUnI^WG;te)MlrX4<*^}+5f zVRGf!#oUNnr}JZgQR4!orV8-ohRlGXmQg&Y-QqSRK3AJW~VD)CH}mAVjXZ@(Gs6_4}9WR~ip?yc6U~H(Ors4G?Z_1A#rf&>6kCOR~Zjml+-cHN=}_QI@(-_Y#FOpptM1OUDs8v zB4MP+$lZ+|dA8Y`)Qgln48{t0z{B3{tMGhalhs>vcNQTI;?j(b>71I+&KE7t(kDeD zFD$~v)Q2S3|ICFSHZJ87zc;`976%q{-EZZI(<6BwdbTQRgfzi>@?-E4hI>UgRRb&{ z@%DxZvog1o-(1Ip!|j;&k$c4=68kLK>ow}xIH^tidTLi!<9V2%!T^pQ-47*p@O8nZ zo73^1Q!Ck}YEu-#9vOR$SIYf=I@g4OJPcDA#@VJ>z$5@3fGg3gAuES~NLH%Z{Tu8~ zcIB*Kb-6PAvCJ)EcCy3QmcNxU9twXW6}`UbFFWmfT4KVE@0K52)X=5UzM0%rZseQY z<@1=WOyKIfZ{L}epcObWS}ClBDJk`5opVXiIgvUD?s%WaLK42Bq{>YD+d=9d=>PkI z?3%AvlATQF+D3LG+tlP7#G#hBk;l8)WhJyvq{~WA2bh8GDZkw1NAh}f@|w2-VTnB6 zMkUj-QD{fT?>TFSkNUR%K^rHyRxQJPZunZM^S#G7P}z%i?} z=&svC&DyQ)FGn}iIGF2j#%F%38!lDmONlPIy;KoTpu>tSjr3qNdaafUh?FVe@et!8v1 z8xp1Z6WOJd+iN%eB%%SP7cSF%M#}!##wMEB{ff=4=%$Cs_bKl*LmqSYFk9YG^2AGa zuUbfwD^9ZdPi9A&lIwR@`eCo~+x&ET!}HClzB7vm)PLl4a=lo&U#EB+@#Q+a@XS{Y z4Xn1+w!?uHBhDzQNTFgx&kZ%Bs#*<@SvhL$*;jn#e9#IICx9KqWDheM>dC(}k9>B{ zn~1$^J0SKVZXyOp|2*DOQ_D1Bd6^8ZETg1;V3Ac=bR`Obkj!;s#MB&wXw; zzL+KB^haN(TpTi{%SxzMipcUx#|$QmSeW6{`EJXofwx#~xyLZWm+xA$cWi)Y6A?@t z4JLD`h4<1IYvzq9qqiLKoas*<)KF)f;%_xYYr#LBn%3AEOul2B;+q#)o|P_;QiTtc zr%BD|M>DQasK-3X5&v!S#78r(2w)WrKvx1E#~^EE%(#wUf0%cFq9En{Iy%EwSuYb z;D4EMC7cg}W^6BRE8e%Jk01;_70Zji-BsBvcSE>%=AX*bgEsFi2@z(`@^~~`d@^>; zUDpS@ijNYR&$AG_h!^A4t(w7i1Yu1#9+`H-FEiiIt|E~Nd|bj|7YpOr|Ksc21EEU) z_}|v1-H`2uD0a6^eM_+sZA`XpOIu29xfdb#Yg-s5R5mKN?dld*7Uj~I#w`pnp^}hX z#x)dT#@&p&-{*PG8TH-o@Av!naps&eXCBYEJGB!}927{@fQ zISM$o(o{{Vx{6@;lb*_0i9v$42@UZaA2kV3N)$CDMSG3^;vEw4%VD3w8DQzR3^2E)9t*KgOZF z(ZQ9qYk~r92!2;IakmBs6I#ZWO7JvdP$fOLmOQr7-mhuN*q6uWssLNqhB)jD;QvfA zWF-LWQ1sNoL;qQF$;x;+BSBSM%Ty`R(BrDKn&CL~?17E)d0PS47!VMV#~NEKfZlqn z@^nvCe;P6n6Z3y;^v-y*MJ*aN43B8Z>n0f@3$uR*Qx)AHXvlfWZS^K$xl%c|uN!7^ z(US}+@2BKcSZfvDSCQOSvJkMMfp^zQ4+UK@=dj?(LsL)t5k=Pxs~OfD&*gCL+by*B zoIdCadh~3e!SC%GQt~zjU;Nm>Dl=QDm3mcCc5X-ILW862t9$tagUL3l#7g=pc9+wl z%&PwrsI}?jo)T3eU3#sB)=LN{^8d6JA_QAuSA&&`sxl-AO`eFjb)$jRO?LArQAJ7O z*7xoMS8x-4eiT&#INL}v0b>c|B9(uwm!O+2&l9{Pnx@A#Ji0%8gmfEdq4C;j@B`*f zuJAa<`ML<(=PH~L2yt6x9g&;zgxJ7V6A~ME=Yg3O0XLPt(L(D6SE--GD^6Tn3bvBC z$#pr0CFE>vJH~#wM+eip*XIe+h$d=_4atT-1-U!q~nd2sS={O=cpk%X**~QgP!-#^x}nzeQ3p% zgdk8QqMYbeZmSD!rH%`^tEdPk09erJ@V{E7T8O5^iPadK8U^cy{}&t4hhPO21-ab@Q2>d9hEPmkc_sOGu$o3~KIXgK2ZU^` zEvxRlJcJvnk27eo1^azYBDd)htt|S{Up6ZlX8YK0sF(cR)sC#g)mwEPm)u zU@Dcltw7#Ju&2F?AMPjSm@2mwYJ6xn+@m*b3(pwgMA)F4H9`HVGuP#vR^Y8rs~KDp z5uEbx%|gt>v}=^G(KWsTJEQ;vYnWs_l#q;vQi*J0a>2O}7aqe43Y$Xy1$Y>50m2Jz zpVk}tAEH)rsX+>OnwTOvlXDwRwEHyfC@^jz{3{BZFA+1!5{(7p8CBTajJLj3k0Z^} zr0~|~^W+Ndm>zekpSA}L5^57GU+0B5x&G^oMi8SNbvzHT*Li+Mf=85x(gAlanOrXv zdL9-wT_YyZP!vg87|Mf16!qfEXp#1bGFr_MLYhP5Jk3GAznO&O!We95s2x_mznGXj zlRM_=5T8g|4n9KPL!Yb^(xoE*TOc;@DBGOq%^O`=sXVSDh>B>~*auy*%ceF~ z<$6qLA3#FD!RUTEjmS{p^eOaNxQ5?qfqpKOp_*H~c227%lz82<5)5FU3cqYY&~--6vyUU_H| zlUjT~2!-)ajFZl7+#ib6_77TodDy99nSy(Y+b%|G+=#AbJa9nfz<&pT5j(>S)9OAx zd+cAQH5BB3t#KwBBPadOU8}VR9jZgm%t|=R!xrCeLL<0yDB7^LY8t^`f6tq1ozGdp z8Tz$`!~!B3XCQ%q-u8;FTx-Fnu$@DvNN$;XP3EnZp}bWOjM}2nR-_ipSg0yDZdg0G z-~im*1NXTlx`n_(m|cuVufrR&s!nbH95w2-)YI$0tyR>}9AG>^oCkoX2z-ahB4I!` zr7q(>^q;d0d9#%<1<=Sjl>Gjz;HH`(BotJ6J}Q(chkZYMto8ji%BHE$U?lA9N<{o? zaY?lH_4Z!$Yc#+nJE|X9V7=gXjWcbUgxQXE9$~hVXe)pi74bp@tFj)r<$`7o?R-Br z&S)V=@`HQlLeuP{oi~cWi=T2(b^qK)?6w0nLcPB8uuq}gFT{P$5AS|Ed4|b#ANhEB zVxR7t1ye-qTw$4DoYWMGG=o8*eSj4QW^SCIY=7nvk8dt>5N>kz>fG?4H;C@aEt)p$FB!4Ix|b z^W#XSB=r#V9bl$6KFl4VTkGG(;Kk~qd7yEU6d@HXb+B(E+gbOG!DkC$Z=@bxN5GBV z-FzmQc?25$vmo4tkCQ9bG49d6QLysOhE<1pXe;4y2slamXj8HVsPu3zDHF83gfE3k zfTbF}J!;Kfz+8~tb|6(3PO;oF1)XBwIvPR%`cExys@cUN$=wXlxby4znu%`^T=oc5dtSWXY&`Lr-nH_gk@w-M+k$_}53LkF_iG9=61Rc~eg_ z8JMrEuo#5a*3zb)VvO}RJ(7PFLR4^N8`_>bNq_$9^@7_+LpN4{Swvvp)n_V+|#2}6;QvQuL_>?UHQqdFJ6o2a*4fqjTXRqZI z?Um5_J-Yblll1S?YUE4anZtYB@r)&*Lh7F=oZ>9edH*YIumRkCZItEq-@fUiXu|D- zhW7oo5;54zqJ(+%;G0mA_&3chI!?CUANy?*Y${Sv%o9Tavn>qze(=ML5cv06PE)`Y zMTQ|K@JT+=a$#b4UI=pg=r)eR@-rH?lx%s0L!- zt5I@LI7sH9&ivmvejYKbM-apxe6}Lv^;2wf0nG0u6{_6w>(8wh zPM7f;JnPm_ugUD-<$L)To#5_KSv+OIgDaSi|7PB81ZxgXg!)@ZK+uYl@8b|n;Y8>O zZV@ziAue;1-O~ZJ5WF>(T1fZ|5{4Hu7u%c&k5@D}3a;c^Rhy44^2xR%QlWvA@fW0x z(?p9kwsA67=D&mFDw3ZzON_T%C%dO!TC$CmAm&j|*9)LoDmD6*HdV<8f-&$g~7g-UU&ORDINaxLM`R{I# z<(#!15|&1mc_mMHjR_zpM{w+j@6L781-l75kT&AvdQSurLvc;xAO({>OUi_!!}3Fz951l zZ>gayAfOJbGL9)>$qZLSQrI(go%#9!VPdGZC_vaVw)x6yTOwCwa%nw*b2wza$QWK; zF!C?@DPulS6@Ls{&N+SwNJ7ND9ntC_vGJw5-@U~shtb*f809d4-bF<2{oBPb?;=T| zIUOuS##>6cw&OQH@w%%vtgE=(LL@IqSuK&{XJv z3s`l-qGq9&g=DN-Db~s#pk0-F*A7izz%^<=V8Ju8SxXX?CEtO`K`hYycHS`bsskx0 zwzP;_M9mTU7`n%}l|s@9NwTFADEZxlZ`01+PN5X$ja;jMFqvCBc9t}@u(p$spWg&a znXh*eo1i#5BS3;=#jhJdtaxYiZWhiTyb)jqz6`efGQ`!w?iSLClnaEBq1Vih*vJrN zq7v;SVw?S$_3+{^CiOmi35Bq?5bMkU!vn<7V$baC+7n6wm3Q*mRj>gtl`?#f_H|V1 zL4f=5(<36CQm_87b}rTT)n4A1{hLw1NPJnt45-L(WKT}7{yaZ*rJchDw~4r2R?ACO zPL&~h3o$s7u6f}&T^2N3}R=Ke#Ot|oWIR5(MTa93;x($qf?;r(%# zssteclxo0Fg&j*lDBMonNU7t?{j}i@#H!_HJ1~q!V*NmZVOB#uLfBTx&GvGVU~8}Z zo{k3V&@NReH`~Rr0mN|S_xQ+K2pM%?upe)Th7GoL5v9o`i3lfiop zA}Q+yKhY%)TbFQMjV;^Ge66a#l|O<#FamsA2r5l+!c{%%XgkvM$=^ysi^h)xY_7)g zs8_pcz<#v?zKzaHIiDe}8`uRKe4p3%Ff8?Bvg*RAUh7Xb7?1vbXz;+U1`b~3{rvJteT{$L)>4zPTf@kZ; zV8A~x1rjEwC{eu$Emk#&C@^tMmB17l_K=MMDV{KL zLcwmVrFC9*0i2AFJUBs9-%8SW&iWiH_CUQ?vrDc5L#!c;G-8D@ z@;Eh)!6zoXH6w^Kw{R$^R1I)1bYwhtjNbt4Z{pgq-kt6BkTi?DpvKvkYB4SUx170S zhCGa77uE~zXq2z@v!-8MjZcQVtn(la;j=jV6v^RQpA4Zn4_Cc!6~mu1w_r%jf1)9t zCJf>)Ghe^i&g3MkewkIAB3vY`Ub_TAJ+$W&0da8 z6MI1r`mI7?+Ms%~@8W4ky&!lsY==m6^bO%Ec6#-+vl~gMp^d&IYJ`mRkyK_z8<=T8 zpaSU*ZK3XJXI6~cUA21^k&lp2*q+}LjB^oj$>y-x*_D8w25Rr=vJM5$F6^6W{6ZLO zDcFRz3e{H|v`%Uf*@zg5*8q`?uzoQhSuUf2oF|4j$lU-JoN-fP8fsvg=2m;)Oa!PN zD&a`f<`eLBWBdRGD`$d*kr9x4wLz(bNi{gE0<|rGYABP{LU*wZs8WdAd`fLYeS{jU z_oz}hgRZoeS6xYBYK{)0O5qZuc=(oA4a7p+=yMe0R>`GOXmk^=nhs^>g-~`TV=i4( zY&36-Z`1TX3?*}-Yq1SEXVhe97t#nd{0h;kUGtU~a$qmOTYcm3ib0X51uy}fnfE;x zJ+N67R4KQk^D&QT*7rHt;8ADP=%lX-7Z5{_2+VV^t?^~h#HZStqAM)Q&?c!`6mT+$ zPFQWTZ)5?8j-=x#lkahsbkaBV=RUT#-$ZUpZU3oZ|AI1;m4^SuL;DZPC zhsf?l0C0_A^PW4Y9YR;>MTOl$65!=JBV($*>S4I!&TDM~gfSJ@UZGL7%MHRNh|i@Z zrY{MDu}gIi$x(J*vp|!l$k-3OYpB}XodRV$ zVJFS~x$iB+aj0ievmcO!2$v92hr=x-N7m$RB#eGJbnGR~M5%>FT>^zmH^af2Da!0- z#J2dG(B&ceS!^`&cNrl=9!iI`7AGMX^U+tQdEub2K=>pq9Xc#7Z_JN~;iX>XDlK?t z_J+QuYjFy8awxvlqEq2sfGN1Msnp~YX+Vnj4V?j+K6bDObtBjhay(g_WuHB}$Bi+R znwQa$It>6+IlIuaS@K}s4cT_^gQ`P9S4?N)_~dt?tX6}TUmXhuv0+`iPkukbDmTt8 zO!GjL13*Cd?`iA=tOT&x?pz#0v;e}5m3E;GMfB;uiycACs<;G6MT?XTY12=Ul|{Pm zLMJLZ0fEl=wwJTxA2=^m8AaOI9R18ZnhEi&_@YekGeAACi^OCrbEAa_+at8; zMqzHt&0@{ocyRAxtMZ0qbqh~KOUa(R*+8x1J=^ZTAEjf>8#}YfIc3pil)W-VT4n|c zk^AjJfr|~5XZ;2KqRGNh5g5hvZobmRcAws7oAohAF@!(fMB;HVz1w-CB;!8H^hooD zJVDCE_LN8wGl*mBxh|5jxc8pQ405Q!N72O|G%ydP5{yHJMc41fGq zfD#b$rtdSF;J>CU)!qx4)!*QB7HUo(1zp95VtaUgGR$N5uDL^_gg7n||vfH4_Vd!`J7 zC$C7Y$Abtw34`@)I;7riS8Utz8?YpM@HJv=%u-$(+V(JBr#1!Z1&Tuk(P9Tjz?Fr_ zd`9zbgc}XAVX*+CR8&}!&8e%@j%K+2$KsArwp5@b;!c(rZx?WPz`-8htD%Ff8Byrq z4Wgg0lOA?ni!ItJvyD@YueGDugSU#i z;4gRKFK~x4hsqda(^xShBPrF{7+fvNI?i?wdgW*@VKXAb=bjgq{$&-E4X9y<*WlIf zU*SrS>)tV86vptsMgR;V|zV_XQ!-s+tyn&R)-Q1m)g#(uSL{t~6uL z8!6ziw}sB@nEaf>HdBT7&&enqg5kI0IM|7%cz(q076S)ikTAE9hQSXX`#^m5=%Auj z-{gJf4Nz%W@c)VUi$}kzx{foxzo5bKd=d`4bY8}&-ePzQJ97qz|D`t^Y-2A;9cAQ5t*!4*UeD5x@K zx(7Fig=&RPswx2J2SA1t=-xtB1geIMghW&2J+xtF5;Vu7!I-h{6#&A8BE*URaZdb| zHk?9KtIxoJn=v&h{5}QT4MO3RCmw$xRB8o*6scbreqE?r*Ln?`KZ)4sf&`WbzZ@!a z*(5$m=S|G?M=XFi^26O2w*Uy2FgoHN$^@y^`T??GXqe1~P4oz}VeI*ASj>fCVK&Ts zJ{zVxJ50JkT?@8pfpJF^o%!48LXMVToW4hth!zAJSLVHtB3uc$67!*0!}A#)exLN3 z`EEWLCi^59D5qnXavCrXj^K8x2{U2ug_$r*+3XLflr2ryjyb1f9u3W4YAzLTxu^G? zX`hqjXx5sh?>Y=+@M8@b5ZU`-OR+$$Eit`B8zPtEPJ+G5a*6U{R2GF4JPb`BUa{w0 zP_))(5z|V>TkZ=pJL@9ot_Uh?CrBhGk2ajE8;iEabE+YuLWtptVLlpAW#Z&Sq7%X4 z0>JlAeUk@OMB&}>G?znyxZ*>1*qk!6D<$m2wl>|sas19%LpbdnYiy*#u+rdTAC*(9 z>+ZRECq!%jUA(O$2XeL8mY|rt7}7vcnjVtz{MmiLr#^&qH4Pcjo;af4<-ZTE1-=PL zR}+;5vDNPYlz+ZI|2~L{5Z=4qz5QQph7595q;AceKt}yr&{OSgkK3XOj)eFLcbMfp_R;D$IJ@2aPq4(S_iCx|QeVZAnF}2c- zB|&dW@kRvjW*cqtRSmM}F+G|eL|F7dtTYN8*O2?N9WBcbd?^k3h$7{!v`NA$5gnLJ zSS7;P8b9lv^?jNVb`#&0m@u_gnR;k;7~RU40nRj z@-xo;s5GAr6CMeJ^iTOP1y}*$5us->Q$fmbz7{9Cu{Ym@hf|ys&IGQ$@uz|9D1)2Y7g({MMc5?XhQC+_3T+aJA59d5IYr8wXp@kh zM>e-d_kfAP22keMhTo>lbYRfZwoOz2qvi6Rvb}|8-FUki>5X9}?<8{zBsm~d`hVLa zy2z(p#X1RjX9D=GI>{G$^$g|lsK^YXw6oGhzXbEX+nnn0?s#60U)>wtd>F~ec!U|0 zNeR7c3cL%#APErGBtX1x|5&xcNF_}sGCl`Z)l-~cefy)&4l^pTgv|@NwomgSwnW6vVhv+?JO-`L@XGqW@qx0%)UEyJs z?ryTq$oVoz>IW?&MPlk{HDw0S!JPXuN1kzxGr2}R*X=5QJx-VX^0#Ly7gCWCf$P3A z^slB_O&^)plIbdk|JO)Jvi-y5 z2)Du2({l&46tD>X4kb^x5B_&}MSF)eHrqB4!-r6kKKu@a)~G9bp4(&nrZ?rC^5*H z3r?JdT~v170L8#o$az&J!@3Ct7HDb(AC+R)x8)F9F_B#tTyMV8xE-b=IFX@m&^F(6 zU&?d_*=n9XJi#Fj6Tn`0Zf(U;R6Y5ySVX09^bnTEXCgDP%9t6bjzV-KGjkIoypY8i zn`xuf>d&mkmBuqK{Nw_qn+)Ntxt#-U2SlaOa2QeK)%4+OxbwL-pH&)VQKiv>pBnMk zx-_UXdi%UUg~lpeX!Lt*Q*oNx;}9$F=HC%|-6r??6KLa=EIm`{Gr|=|nva-|yF_3q z0;dZK=wa27m*)|vg^jJYmPD!>a~(ccf|SEsvW@DqBaEDHfK28#mlOM`)cD9ng^48b z{{P`HAtMX_KJDR_MMm{u5k{_e;P-%|wIv{BT2%GUl4VqH04IrtljLwY8$V?u>eVBD zBs4fxT#gy3jkkPaR4)Z*L6$~w9A>4Q&)@LBd8gPJLOC$BfSwC66|jELya4*6Ps0#& z1sT+|$w3VdTsKQu?`f|Tb7Daq)RNKO9sm!2vy^_6n|E-;Vx*DJ2d3Bb0hF3Z78V;z z^X$smq3|$f|MC2B^^ers@YxR;!py^brLpy}26o#VQXDqEPAG3WYBT!&U1n@OOp}AH z&+pQeVC$A$`dihYx)tbAQ($9;(m?H|$(9`Kc|lcQM~H6TSv=d%bY533X#(%-a4-Gs z29OAPslbnL>myY+riVp8l^3%^h}=U*#rYmma-*oyS4ZX^^20-%nQ5`1AffsF*=9H| znR}ppY+%+yskixB!MKbuAh67jpo#)p79#o1!{FFF$Dllc0_-Ox7+>Ok=L z@UOa6#yz3M82c~o#7Z)lPlEjJS2%uHPn&&9Y=+M{=tj{?_p9eI zTBOBT2c&m#`^x?^m9d1yn6W3i3J3%Imvcs>gdtT5x*IY*Qn&ZHS*+fBE0!w4zQ~<$z)Hc{#maB*97(k(0iCI|$eGGE&`6Zy zmFow|h_PLy(HQ!J7pWBteB~8w$i9yLSw|S%1Hw3dpEWBaEWIDs87td-gQuYne{gC0 zgYVYS4J+Dm4r{VcujNlSDR6edYXW={e7i~B>DBY3mg{Hk1gYgZ zl*|@tx%OLB`eH3tf7_l;k0`k25dEyR z>F-nPd05I7A~m;!Xr4aR2P`d2Kn-}o83~m`&C>z$o?-Hj>tOs9cHNFY^9$!qVo!g+23SMax_1 z=c1gIErIA!ILKAvl$fitCuBboqE2 zc${iq1`t5`nPY7rcL_Ki5Ip&PY3kRJXg*}- z>9w+fWWeu!IZEv)!;BDy{LV4L>f)lD?(`2tKPv#ZJjrsk=1`3^>cofR1UOwfYD^KL zuscMB`q3DbggP+R=a9}8S#p&Z z)?vHftS{Bc+4GZR+}Nat1sGdgrCo}7R|4brfq{S8Lc*9XPXHIhDMf)hbRot9vI9c| zeCKfkGs0<= zy_RPx%d8!hA|o0%(iW%ofWqLkW~(0dyih(v8+t=Bz`vkd^1%x@;HRcQ1JdZz*OUT2Nl)<#!|q(xk4^SuAQN>3xwdk*3~L$^}=%0MDkt?3luM zKm{>FgKb%Rl&m2WuL(DtKQes^ydX41(pSL2Wj$bv2>eE5fq)1{^$YIa9~1HWrlKA& z8f@wQl58R3s1C;2;V{cO&A$e6Lg*b^nr3lmQMy8(o6F_#xBai97t`+C7xCC z8J=Db*vYp~zEFB(^a=!oL&_nvA!auaPdkU|Uq_`}<;260B7Z3P3{9_uFCwRFdJ-^3 zdI$n}g9c^@u^4VN+Y8ox-? zlDId+v17{s``rYLlJ?lCg7F@bMVX$mwsdn@8Db{|OuQhyF`mB8XjRt#sbCq}QT|Yx z%?-}3-}83s&Xe~HBkN>KNfM=De~C?~*>ONuvaV&?vCLD?UXVxV$`7U&hQ{4M<$E&9 z@Lrv)*EI<4{nC%QB)a&fT~#cYl=!pLU&f2#FnislV~xMKmx|j|AEtqq%CG59YA2j~ z94pl+1cS0wmx-CX42`zo@xyRhQ=|Nt>li-?Lwqc8cJcd8DQP>gjCECiSMl5AcQnPGp)-f$?i{bcELP!Lk z9a+k%{&qh^U9Q|0p+Y2h%3H5^b8L*!a8sV(J8YJ9e>k?E@akc#*BTB z6)a?c(+aK_PayWgfL$tJr{RM5;il6si4D;-ocQo6gvlzQ3zf}`*MJd0Rv4CBd^$f_3OsjVJLq?zt7;Zrw21zcLG#*5oCU3hQb`OKVDdp+H=ppe8rYp zuTEIT#NZqBu+1Kkl!p}>Xt-v4DGY~~vp`5o7Jc;kf(c&?UB6wqz-tVd;PbN*1Ur<+JdyJrWrn^Zx;M;I{r?uD~ z0}b-YwtN^QdJz>|m13!6TmGw1wP5UUyD}$CSEw1(j>7gB{$Dqj+Yq^k3Hg!u)kH30 zm0VROZEf|H^#H0shtejB$y|gFb2CxtDPvvuNMHa{e-xTdi*=e73}e?#5m8#L z*DVcfUk4z@4-Q!LJZ@*nFm`!Ebo(frRca%JHvT2{tl!j$au1tzq3@$M1bmx0e+s)3 zb=pm#n*jTo^S&-5^IFoytP2B#=k)tOQ3D}v%U_=Z{s^D7D4O`d+w4SB`2gAL`d&Sd zP};CZd0>u!v!taiDEovCtZpio*Zkx<&4&gbalh;^Enz0&-XQ9PbcfWuIhQ}YQ5UqR zZ;onjoVJCG7E;@UKVeOCh-Ss9m0)jO(!fQz+h$Wx&Z0zw*UZ;iMyVEDBzZ1%Qu1Yq zXPbU z^8Gr6L3x2?ps`Eu28Xv9@PQ@AGs7xY@yhG=!3bG$htV@h$n#R2IN!EY~FgfbybsUNw7&jdBrdx*RhA zU5(7kj9qpGajXDyr}VlK?~`TBO7`yS9EiX|m&^rXo2a;xcg1}U;{VCbieqYXXXvFRzA{WuJ8R0#9ws(My44b2NhZ7~!q8Td`}g>k*)y~y zh9>zojez$Ob(%5qKJ3T5Sb$A`Y#W;1i}t;p8WVch8iP9NL76)MhErCrLwwdT1JJ4F zgyvAuHooo~t)WeksyQe0hI$dN6=)Tri`JD+-*-bv(95|qT62PF*oBC1&bG4){Hs}y_9licaAfG()TSoZaP2?5Yq6Nm(41I?Zwxy+e*yc5bl4T zgEp`&9)oR>Ivz^;Le;(Y2ClLsY)&yVD?~#q`YP&0W1Csql4IS& zqlV>mTfB&7o(6tz3=y(RpWbRh?;#pp8BHlu1c~j`MV2GW;+vZsS@c@kW=a_x^@bjy z>80u6X$E4J=OJ+w@I`Y9JompL1j`bQ;&_#8+7B_6Yxq-^7iorgs-dE8ODSQ7_*H+c zB^khnG$n@<{&ahD3`m3)a>4K_QN=D8;l(Vk-XU$63=bR^yQCNeK}glE>`xneg<&+~ z>$~0bo*|&oGQS*yO3Li7ZXumT?-3q;3S|X;Yfgcz0QRRFehk}|(+x;7|IlB1Ncawj zj%)%4wt!>JDF(Qi=aRp;6KlKv4tFTGipS>|(B~0aR*DYX>+m~UpQX3X!{kjGz0f#p zAZz_$ToUe(g4kgLJYStoQ*T<- zYY(E^m64ccP

~8?ppjE9lkGH3QP3tAT~C2|Z{>@L`~>v3K^@0@45qvhB&w?q`{P z+~D+hbMU4AG^beiW--2heE!u}2mL)~B2`^LuX_1oQ;KzCmO07AElxObgmB1cZ%TUxs&Fw5^% z*KLEHo!aQRzV^o_h#b2>(CeWKDbhDp)0U@9=(#Jg%3=RmI7wG-S*Eq2xaSAXyxVi~7l174 z%9=EJ)qbmh^I6YWljXRib7Fg{Q=cB2$jC1f^n!Ughyx#-X=tiT0TKZeronQpR*DqO zmv&^C?g+tphm`U*($oC@;}cN4>xL~Tb(^dlOf>L{x}T25kkUbMThzSqG#W!P2gPkB z!W!Z4(4_AV8c;@#BazLL0Z2o+^c2)hN;@8Rexf{(ZZ-B9p zK?itvK)uZ#>m_$S$uMu6$ExbH^fsY~kT4pjpK^$O&tG&!Uz3*`RC&;b2tEWt;%!@9 zilw+^62u;cMv}s+;KFQE-Ui3q&EiFWywRyqGx$|<)^{-WtCG?zQ{HNa#`Cc6`MdqI z=Dw2;Z!{kI5zWnQOz3i@2qqcq_P(J88@ldY{*bWjvHb3*AsnZl{C!7Z(@yNKskk8t zCmiCM=t9RH#$Ct`ASTk-qatnd_I?D*+Lt>Z8(GF(?f>os3$Q_psUF?FXd0(D2q*b zefFOrP_O%UA>ruqCNMaF4BM6cYw;;(Q3pPJn$TrcY5{u{(pimj&s5g#ccc^eEI}pE zT;T+>=mcLk_1R!i{OZ5)S(p6W0g~3N`buo$GbL3u4)m-oxbOTlZ3gIBN{IGH(6jW< zql$hy%ja`h7Rrf=k7U-;?&!~y)5g@sCOZ4Hg9JFjiavcxTRo$8AgpmfdsCm5=G?DfhFP{U zux+vhVyn#%Gf5Y+W@|cifhXv?3+yu5g2~jwL{p!HoNpo^qHC^IxXd_{$p@WxroN+u zBd6XBQ2WZZ8YF1h@B1|Cm_}xJRX}Y9D^a&-PJ=hzvZ$ zkn z9E*I|lzc$@8>;+y&u6Td)fH2a_(*3vlsYy2I|gGEHjR-q(_(^V3L_)L3TD(WUS|fD z1gglZqioi>4OEJqRG879X4?um88B?TgvrY7#l_2VX5SQmuLKGq)jZDOtOGl) zOgOv-hWYM<)^t$$=~6g47mkJ?RMp)*Kp2aycAZIZbJ;h7lMj6%!sJ8hMVRwoW?_SJ zH6|XUqfegjR!kSegE-Z4tqiP7-c`AqFFEOJ*Je_!39fK!^Ky^RM`QMO?IzXv5H!Q6 z3ejF|#a;n-g8VSRS#GDATepz6-08G~Xs?dS6~%zb&d_`HddqQ2o_{_JCsc<{4`)H# zgmJg2n>!nuxqC{fg!3`Y9A!@Te`6aKP{{YL0^6BN1XQ;A`dh zXc7EnnXW%v!2Ju`V5|^*H;KF^&??v2s#=pBz52#%u;1LzJNpw7TAZ=l1lYf_>=KE-{`Mql-AD`+{PSkGVf>q?t6r znABWCI#aV*p6wXH{FyWLGC@~@aQ75CQ-9lEu_Y7&vQBWOo`f|vne@8|df%GQC%vg1 zefyN0ya;~{_UZl#Xc-~Qsmt3Y4+WBD8p`3ckvd{Kbubs0_}Wzxjvi~_i9j zx)+Xx@$>IgAP};-qM(aaMu1Jr`r*<-uZ*A%trz-+0#Ll~U^oN+T_c1GM!>`7r~#s{ z|B84NT-ro<>D#ms771z&DS@qJ1L?&f{gO3N)Ts-}bUB?>k$Xs{?yL8$(>)}dviB7U zzm-w=!^LNKo^nbayHgB~pJ%%sTGT~_U7SHzc~xJPdU3Q^!6%9`L3D(D9ahx(e5 zyA~tLuLEtQ1iu(GAK&YfaaIQ=V)b}C7}9Ko*mP#@FJVedONi%6@SnD=!9qfidHpLN z1}rW@MHuOOr1q{pxNLwBylA{Vi}Z`Fte<+Lke&Pyb({Tv5M6#d-fO2={-F+`vqUz* zeG`{-&x08U1{cT=WBdajm$uuJf?FW8qd4o;2%x0t^90!4NI3W+y)msYqcqLF5n&vZ z)CEN2nd38hUEm8gyss5D6PB^lS=#@L>iVezX}l<45c@BUR~91T{7d77N~!;?@e)TL z{BMod06OTC#%nzme)Z$Qb7cNYdp`d)?J7lfo5^GJmo@4v%RA*Y9t^1~Q{QJu=7pg* zSmuRzltP&odI9*C%nOD8pJZNF_rcRja2iYgp=0arx+d%ES=rye@s0nAws6w08U8=t z=&Pp{c$F4;cr^u8@>6Tgsv$Fwk^Tf8WuF$Hlz76t*0DK~vK2;|Qw6!zv~4>Q}D zGR^T@-&EA02G_TIJ`^oe!0M~)sh?Ib3gP7Zom{|v0=buYrTr)|t7r`g4QhB6%e!mh z99%2I#4=|3du!0tQ>C+6-u?fM*52{?SBMHxX|U&TN;qKVJIy=z{Df|B`00#$73?|M z7f#WE!S{Ur9b6x3uMgP=3s{1)+sHRyVkVu-^5#u!gc{Gzn1<21*k{|z(B8&=%i}>Y z3f#)rAD<;>&;9@*6>?!qbarX;!Y&wK_sSaE2x%^4!lvv_n|e(cma&UspAkkF;3UhV zg%%!d@n0_i`9N^YAl%fl!Q&QrVfrmD!LAbcibCnDEl5) zmB1U8r%Og`=Zb|{vt{ww*;=&eTwuP?564V4ttj&qll*6o@>yDwP6MAvoejOIi4;Jr zQ}hqdNyVsXZgMx+NeyY2t~4z{Z=T|QS=ogo5?q)(Q?{c`k+zI4i%YW$=u`xvU$ZPe zD;uh2hzg$lh1%0G?f$mtEX<=#rws(c*})uy zy`Uek3uq8C{mY0Ed&!y_<_SBrn}ADS zfTo{IDg{d@enwFtpqP;jt*k>EiHULg82BHUOH|7WvS#$b3Vm7$ zeOlC^ovaz-LGxOTa&UuI;Nb*845Z`=c>!o~pj1Gs}-23hE4LU(=ks7yJk! zcz)z-VeRn{QF|P6&K<;W1g(1cVMOf_hDHe<_=3ED_4q8epLi1{2P(zr`De z|6qK#&&AuUmzYJRe+THN zYv^L$&#Sgp?@_Ysy~T(0 z_))${6THA7|JqmA5q}Gt0EoB_K)cv+>?Ip39PDx#fL@XaNHBha)B}&c)%$a&Mf7d| z<+O-iUKpR87OhKAIt{s|0Ol)^oN22Ig)n>fuOZo+2Cs?BkD_E6VN?*7&LfTRRu>wR z)O*5c5t$m0bcs;N*8kgR5yAC887;1W7qEh!VBfGU2Q1T7Y!w`#StG%K`sHbkNt;w& zuor&MN?&iQ;1EcxVLqmiU(fBTt@LZgxm=hYsil4EU z7xKE|Hpl;R*hze0;6D@)g$XNSS$bw2| zSh9&dBxco-w)T7ktjOcMnZ2P<;_jSXL$Fc5LTuDY{w!guxY!oCDz-2Gi@KjZ$eXdm z0*cRpsbX!dTBHapV@@Qvn9b%I)v-q8R+gaR46jP=3qaxwb(gSD31cmR61gSD^zYh_fxHXNMG?ZPrJ=8dJm%4aQi)Y=zq34i`yeCuKg%p9RO) z-yw)I?;HH&`y+s$mH|7e@B92m5GEi4qXmLlke(ik?xZSvnh^F+`ymFLf%dRZRZFxO zfS6*cO>;&E3_!YX3N3=rOanVxKw_-5Z5UVUA-!1843a0S0M04S^L81nb00|;4IRe| zvga)cQ!4b8{m7-OLGbA$qr4gIPicxh>SUV2-(>*2c2Eqaz2GiOJa^vvhc;L5luH3G zD4_H*dY!6*_YsC1?M+ia z3rH)^xos~0Y{!gVwRakF1!*vi?{);AD0vT>L;hS+U;fSauWnkhHk{~H)lB%|r+eSo z?SJ#ArRBVy!`8UW{dQ@!#{Eb7bC#^Qaif1?p^9M1oPWSZ-DhppJ*Vebw;<(43C@mI zdXu4`n<}NsZ_A4)h;KyIPL_#=!IOQ1Z@s>-oMMFmwPGt2JG1gK&)t&s1F)}@vRd2J znu4T8w(AU|IW0P{`Fqb2uRWFn-hYAGnj(%e8JXuoO@2^^(`K~>MELyOhzg+DCK`gA zeSg%zq21oML8DI**K*>zJ9NusA8VZu^Gp+sdN{NR4sG+k2^xKh z_#LsRmc}O~TW@OAiOMwf*XU>+%>p0@5# zQ@TSA^YNxdmmW4!j#T?h` zOB0POrj=ux*QH`t z?vJgUYhZXB>;)pcA2c!s_mJZ7Nd-GA-lu&G(sT)G@4_o8aj8 z+*bJr@6<-d(d0%=x^)H5P{~j_s%1)rse3|0(&vR!j6q75JA8eyivF29Krs{-txvD$ zOt!l2ln+nu8Ml=cwEMWz(fli#X~u~S&r+l|>6G`kRQ8;MFJSV#1`gbs57&9XZS{Lq zaMa20*P#siI~I%Rrhh9dA+%EV)A;g$9V*2Xp7@r{31yxp${8aHnH*XPV~mV$G;g)x4&Ug^9XKWMV>%2-at=wRofmp{j_6_ z9Q63j1*T_4Bklc)RjwvD@Q&PlPBlsn602tZ#KjzpUPQ?}+|C9J87orazB= zH)wx%>Y*jQF>Y}0^|_Yd$fj)5^l@Ky-z!rCC!;^(blf6$P*20G?Q$D9?CV2dh+ri&J|6tmyvaDP=3$X# z-(sr97#6L&UI zI-TF6vBoF0vG{2AuKW)*GR+J)SB;0t^skv$+BXKz<(|)@C5d>X!Dq)X!o zp$(aNnT`xU1GwXlQxV>YjSN?*p|+Q{9u6D}QMze5wOV5P)X7Y%_H7*l@A0t#2Ix`& zYkcAwi=G#+8>mYzQ7~nl9*U8-;wRXbe=p{dZ&EIqM;%*OO7pn~U20BlMeM6Qd!F-F z6UR+3+0Zq3HJQu;+bV zen+M~;}*KfuI^Z7{4F~CXKix#WII$_Y(Y0!uC$$|mucC4m^m(U=V>Pd52IP4OQ4&rrqXD(+mM?{w=2x7Q1IO!Z}zihe~O9a9t>S24@nJJkKG zPxIju@4m%>29pZRdOZ_K^Zd#h8BO%VB)O?vhGA`JT^^teK$)0B#FA@q5zPWeGVNF3=W3g)m<6v5g zL*2V;u*6=gn^97^pq=R#7f~jY=}y->msBSzx!*)k_>z07Hsp%6oCciN{e_hZd{yO+ z+&MSvfrnX&%{0ZM4uV}fs3kCm|LU7nUsFJbWnIghW}H`_RwNFy_4uQyHtX?A_M&?i zU1_o7nbJkn;Vy!n^!tWE%j4FdLfia9EFW>$`c6xqZ<*W84n1Ka-78s_m`U@KY0ffz zs{Ao`Zm++5N|y4fM{;cm=HmT^aHw0$+>gKG?k#g0n3eEg2flAhFwSat1)Eh+UjJMqz~k15 zDLNi-5IEElpYP9|GqE;H&QdHM+%^Ui5>EP5c_4R==5O{et9G%(`mFfODdN1RrKv4* z>p{}00X>mwXxJWK4h^d?U0@xJ^i19N>C}U{a|YIJ$uQ$a46oJo*C&@)!=y3qaGPuG zc2pY?MH9?oopGL7pk$OMEC)C0XQm=p$uO*7AqB$@^TSIbSnyvn_=ClA`6Swo*XIaT}N z>tmPw_cYAZN5DL*0ldAyh*p*Q0_K_cTt@qBl#bR>o}F!C`cx{#w)TDE*yYmhL8nCd zWImKP7-+EmJ?w%0<_$9*5kCJk)*LNKpG>9nynUYqqjn85f(Tf=5RhU5M(f^(!06eA z8Hos=`;9e&P1aUxM(zKohj7eoA{^?GTZ0W&+_5?e-PSZ%XnG&VfVa!mAoUej&=}CA z7J?$|24H+C!m%kD+)>Bl2q=kf4OU)tcTbvy;~=a?f#v%CX32a&Fc^wJD8`0ROmSON zgik`Fl2SATna) zaIMDE;6E;`GIu+~ai#c_(yKtyGwAH6@NrRNph=L=*sf4bOXNt zm@$W*8~M8=yDN{5r^>N?D%Ke(8K!>QP3(56464|Y9aKm7Di=?l8PBp8?cC9QP26Gd z8GMm1p1c}d2TPquY=Y&^vn8{I2qa2#CUW2=3J{>aZ=)%%4TFm;Hm3~+P)q4hq) zU0P3EXqO%Y=vuW*ZH9|q*46&x(fO(rjOJ^ug9=n*+sf_izHY?Kt=S0Xj#{|fo*=m4 zAxSq0e7>33^(r4G4za>0>hmW{!iLmu1)M4IEkfu)KW=XuDgItuJ zK%Y)I**khA{QUDZIW7^ZRQMCQacX4bL-KlRj%yp~7TS~u)WEMDt5=$jhm!1#lF|#; zms{k>4!VGWsbPhss?S*fVn|iyR(f>ZbhWN@K<5U$W3V~z))zZ*P2XJXdbo~K6i`#^ zz^PHitdU^b$4ZZun?`8v9{#KDW;?TStAN#o1-W{yce@aSx6R(TVzNCx zF4xQl%#rLi2bl?1ekpk41;Y{rf8xY*gq=AxVa)@kURG|e8!G!~3OXeK2Un1$)YAL` z4h9N-QuVKXUIcLCczn2Cz@P1;?2R|qr^Jzt`v7v<9Z6TxZRG@me@u68Zqmyw2SX%D zFIaA(KKBc}M0bTxe$gHn7~jFE>1ftJIc_!o1B?;RHo?8OaB8T{`X|P%GEX`UOdM|U zvIWl+rWcUHZh+tAu1E8jUS2uuDM_<}<*Mp)zrt6Ki`?ow-UxrQ64(OYkfzk3zo4RQ z{tvQ$lx#0KR_Kp_?`6G!yX~$3e9QjT)X)=0V@IB93$-XRRUv)a~72W%9vU5DL}4P3csxt2#|{7*aOW4~S!1W}p7K z#_4(#wt{CbtU!7^lMtNOQ*eCi_R3xW-$eATF6s&XXx|IZU_5u#zrx~2?eWoNH}lvH zkyYki$KSK@nXWL?vxRA3WW=y5IWY9Yy(y3GO?9!SX}=U|^uBm+-X(F(|6Fa(Y2sQP z!0vVRo*HT0Cl%MG9vI;4Htjzo|5d3I)two>%u(2`zsQ}ty7%X!C;XX3IqTPIpP~N9 z3^!3Bb;Z`DuAcn(NMZ&shu;|;`6`Hb|1<2H!h8dJs-EDv7xX$Lg_JFxtBEF)oo^n% zV2GzG2qkP4Z2UcCi6)jFQ!l{i94t+Rrk8qBjMdr^B^gnPx}|n)tUDW>k$agDeCs?Z`=&#UWI7MQ<$&JH+z(N@kTz;hkZq<3pPghET4Z2j)R zX?c25-O5MndOChHwkw1++_ zqZQ52rz@p?PA?FsrTHb}4(*QWNfjs0QE*hY zB}q~Smg7Jq1U>YS2Q4=|ab7=R_L|4hx$U`O#%GdsN^U+V+^gg$(@xQw-$Yk6C&{_* z0`By%5^x)CY^8j{>|GCgPvNrS`qM(wJMhO;cv>1xOaKG*mr%m$)1Jj0H2@T(!YJWj zN25F>6_+rdHW?g2JPiHS*pMYg90)fS@J|bWQr3Oy1orVGZ)%J&cRlz?@yAl^4}h-RBGLJN_qWN zNu%Ev_bdwT@v<0u?S4`F5V$YNGdNN|^nlLV(38+zA?*zxg}_ghgnzKdAc#_{`jw91 za+oS`!ooWJ--50iY6ZB#b9M5jGO(a-afxi|gY%e=lk?S^|Cw5L(pENgoBqKV1=vW> z)W!k@N6FrRaP55b4+7AKs7Z|zC?KMMt{_xfurXI^EVnNU`8r7_N_e#kKi{KaR>vyf zs)faoi79|7*SOvELCoI`4LF^)a(!%yg?3WUl!UjTftLzL`O) zRZB*L#aMVp|CTdkFCUT#+)G4#c0ucr3M|Bvs!k74qVzpPd>tv}$-?*NMqfm(J?O@O@V5epBt0v{~rv05el zmvCg~t-6ZqM~Y4~F$=r_`L5idFQT8DS0XEgtUTi6ZQFjmxSHE1~YSH zlLF!EnzHB_31Fg%zCF0rItx1rVF`UVXNW3QeZnh8QrQr@p7j^tdMUb+J_F?TE6GLW zwMSq99khTWi@rVqNCR{Z!d9ycQ|ufBY&b3cSasQ zza zwo6h1jIe7*KF@>})J49kyhc03S0Pye_=Edu^ML~Wv~I+VWUh}o+p-ZznfUX%^M9}v z!9%E?2y5udDL)7R$cX^T;(9`(#4eNGbfMQrHIw$~k_!PiAjpk6Z<270^Ev`-#z5+ZkGL#Vcvu>LUn6&8vn*SC07L2yuOi4z}(!; z4B�mxD=7?~it^JS2;)1P&^~$S+0Y;8<_Ycd6Hvg5Tr5*rPsYQ{wpGi1x)(BKM|S z)D&4|>UG?$Cke=|$E;%P6`30jW^3=5<`@Hobb^B@BpJ@E&+pS5020doRT* zoNa%jnm8am_w$#H9~b=K=wq4Dm5Im#$?el_DmYuP!z_;=t%OXVyWXribaw+Vzu9wQ zv^j57p*azpDfu=tjiMf82Jt?zVGpIXZy>)W7d*FByqn(ae#|^6ZSnjx+Uzx<(AGRu_{_EqO3JD;~yqgY(|pTQeRLod9gy#@d0lLVu$2vVexUt#RlVsJ%MYK9fMp z=qU=Ayx0Kf9#IC@$J%9Z%0ROupdnoAi6fZJ=e+j~I4V!FseF^B&{quR@O9v{83xLQ z4=*-0V3^#op7;Kph=5WN6HxKz^=7wXpnTLKqAbWJ40e(n;Z$@;3!Eb?OHS34CHaoT z21pa6!36_l(e91ergQRztelQ~mxzssq=ex~5f3FA#<;NPDdlw?_Hq2l)uqK2jUM$!7N z)EN7=Ti1*VTNLdgWNnezTGE}?AhJ%SKvcDyQAO;{VBqu?Xt1OsoBFHW)NX6~A^C5P zl_<5OTO~=>x(p9KcK@XBdQGAADXehiJTr|g@c3l5*B&CN<#m#JSv9cLq=s{i7#cyR zOTus0@6yX_1T!tYG|vbk`-3GJLoT%h*ikzvL%9zikcBN6m;k*5RiroS`33uq@B^h? z;joq^^kZY~5Zs>_cMM1>7|+otV-xogKR_ZO-6q-&qYVI8DO_vq^MHjiV4--TUSJIL zT2hfV))Q(_lFPg7=+!feQ-Zf}qFx zgxLqcWSA(LboP;9l!`{vnRu$^CO5UKIZvR_YJ&oNSC7rmoSvjGDi_h%cMIm0VRN-L z7JePwV&3I}W^I5zHz!L6zP zoSC!Cux*mF4MGn%`aPWDX{#{0qcqg_X$d-bSk)ou@k$Yq&@hWHinxI2PE+zAgu=gn zwp#4^0Q|xp;1{@2`-NgIVf9$`{(hV1tP$A9`lj3EtFi$>=$~1HyAkE)5XG>5R8vGJ z?EY%3S!GT^<>fC^rxT57rLtG$zrD|BsDj;cmeQWfuvGm%D4H;wpJx&r0$Bs)b#@QS z`|Z+D;-)~LaN3#w6sX-u)%F4j;HK274CCah9`w`-_Hh?Crzz-yl@Q3Cb`hj|EI$}M z_*O$RzkD;eMw515f;Ui=`o=+I-~oVB;QsiuamovrY+|dcn@t$_LAlh2z`mP~JGf01 zex0jPHbK-RPIYY_`^oNMgS|5XTmKG?UgwZp?rWcB9STn~^)EfU7LHz5>^0JtaT5G~ zXuJvM7*_0hw%=#0%8)vNcA_R<&?I6S3YNkhCgBbf0H_U}qN_1looufed&zf1HYAEb zL;ns>4!2t#C@ORS<2P`@6kIS47ZBirMrc3}M8vhN@I=?(iCod2K#?@>MNWmh!u+E` z@dX^XfD9KjO__DAtZ%x0;x8Ztf@xq}&T+U9wgG1tu-^1=Akdfax3G$j(i8q5qD6Ne zro^iF@kSA&(O^IjT=Q7IS@P~9OA-ERXAJ{WZ~~D$N6?~r=$YL(T!uW5Ru=2^BQv+q zz`7y)1(KM>JJ5l5qm&D^;S2t1WDVPE%o#$I{Gee)!Ee>jeQp{oSy*8MpxZon;Reyt z4#^=v&A)>nQ^F}abn#wGNXP*lS*1g;kEVfj*FnZijx=vXpa6$jdBf@}<_93&&m!}? zhc94=d5Evz^>K)m0KnW?!|Z7y=|Fs_vhw0zx_mH4exxYZ7O>(qYdKuc(UOfV^H+e( zx(5(OqpX*xOB{i_lO3WbU9rt4wbkitd3OL4@x{k#lnh?LDSNVH%Phv4v94DSz)k+d z8V;AQ%Ic|UYo57yW&z{j0T<8jzT>Np<(}w?;C-aJ@Kb;$qP@Fp>@jr{Ze7C~ekY>ec^A(> z?gi2XYU@c5gvo&aSJ=T3jy8{fR$wGvgvo`h;W#ncpMd{g3Wb{s%(#PGgkH$qAtONc zzLGiB`+bO2^;96GFFEey3w%W+{F3NgYs{^Z&qNP8i@2_5Vy^1}Yq(70QkMhWgmLS; zo1ZIHH{o#q#ZuTV@WyLuf8}uJn)M+&RvDpNAR^(Vo-2jEfUc=44P|9=VNZMlSjJm) z`Y+Rk2z3X~ub3M1M@sVc1jt#>FBg&To?mIJ&)Wc^@hsxYc;M{4)#6@!lO?#0D|h1j zdZEx8-(ebzzYH?Xv1d8+c~E$7V@nXkBSyF1nd5wW-Dq_TJ12W%g!d*!4s$p5EM1{{ zG1r;$tA()qv0V)KPUbxO5z!Su{o*G142`lHqB;iZk1lvtm3+#IqxAeS<#gtDYVV*{ zLJ2tQo7aTj7f>~*stx7l;B z?~KPC(e0{(R`^~>tuMGe5C=gfH#QX%a&f5)2rE*7S?R0KNf z9qQDB_CS5XC~9)N8uBI+J-Rr5{LaT2s2?&b{h<~ijvLG4e=Gw zxCD$h!U?kEYde2_-JfrMv)T*Tv7fqQyftPGOAb76SLUAW-dUGg3JLH(#v1+QA#l9k zMvV?ABi_AfUm9?^Hgc?SCN+&sRdoxiJ-F|6SN@@$A?(-7R&37SZs0tf4asF4G^&M< zE`?D7N;$vQc#)L6)#K@orI)gpG3>QOe=u1l%NLVBw_XR9>#yH2mMfB)(p+y@(O!h| zI3_pzFP^~CIQ7;hA&qe8kdmPS!`&ukIUo%Q82eaA<< zH)Y2LPXb-lU)Tl~uadZ**pIvnT)==+jg`o*-|5iy`^;6OQ%BGR*}ON=#|ACN-JguJ zM!OPvUuh+mOpY#-_Q~5GN|?RnarEHQ=n}i+@^y9{){xsrkoTh{c@hvr@st&(E5Y_P zTrdS*B`tsZjCznsN%+vLQ;DVP*{JT{nIIa_l&VPSV}PhIg)IE83GN(GnNHQVgFE-| z-W*6*&g5$rA7@R%o!@FDYr)@1dN_Z(jK;!oKvo%1+da-E!#Xc9B$uN5QbdMrwFf^5 z4+N>ZHZ^YG$9)()d&!D7=`7gh4+L9eWr}X&KNvB&K)s8Jc#`Li3F5y1o64oznWVV< z4WI!R@ijTCJLa88O7r>GE_EoehsWjc-W*D|&n(q^hQMtWw1h?;k~P-YBvpNK-0{)S zjl@p%dM27W!Fyw#ZlA@klZf8p7vj4OGC<`Bqz36-Oa?K%inQ|<+wli_kEEOfKjjqM**h@Neb`bvOX|&t_mmXuedJ_a>z_r8A!`)6|`JXvX9xiy` zZVw{YYxz5a6>J)4<){E>n{k8D_6W;XYqNo~g=BR=%V#NLJpU6zOM+vCHcCnBGednZ zbXmRu3C(U{3SS+QI#f6CDZibaJ%i2%y;8T5WB{jz+R9Go#lqZnONzdW?kS zsSC^WzW_4zJRFdnAqJ;Fd)|!^{;Tdf+ce4c0!LL>Kf6hc#u|%pG!_}fb0OP<%%kY| z;dDqZXMs)j%%O;(7+MZNF(=F5WK8uiM8AFn4Pu0@WpE6R!+c(faadjYtTxI_GYu4H z_b`KfCp)vRkp}{t^$wXVOh;hShsBl5m%x*z>Hyd3@ZfRC)7hWlnCvTlxrcukySJXn|!Do!%OV0O)EcnCD; zBFOSsPIoyqbfc^28esskbjLU!XwCYNki$V%TeBkI{OfwORQ5aIul;W?w`c-Y!tgSw zrG*(XIL%tOG{;=BrIL$i%#LuJWgQkRxP-3B`H+T_tV;FkQmj;L-A1Ai$(o|yDkfRi zh_5$gb!^8;)@I5Sq%Ltq#kZtcO{zDLf{CBkrC8?KV2F0a!6Y@f^%eoNZLiZ_e9AtA zV?;U5hfmnP3R-i~u7rTgDX!=R-)0j5nwV^gh4=bkz0mBaxx|tfN(S|Ccg+>GMSbDo zCWVHWxr(Pz$msu~HWj#E@!ZBBj}erqzNauh*pE|Y!}%E$4Lnz!cvrG=6SlYdc+v%ssPy^a#t4LB-Ys1f$WBCnI z*&M4#sbb(k=ByKIABXS{VR8qM`Yd6#_}bsb67Y|S zoUg`4swm&4ATHNWZ%&==e-drLTo`^zd4WWJawNSuT>T&#Rvjrq?Xe&3n9be^JWUbJ!wm4A4?}_{$8r}ovV1vx6Js|GF5ZEMOUYe^@ zf>T97;?ZYM%cpi-=|v%}JtO1=MorX$NI?_VLwusR8epahPREw%$i%dNQqNKr{)988 zHb%zXo;-o?0$B+MMo6nDM0CxH#X>(xxEl1XxE!M5B(?#+CV%dx+H0VM(B*5=4*h;2 z15yunZ{i&7iajJZ@YqkZwa_4AYFAh3(^rnqR~DSDz}J-;rnrVW3rc_~Vn1I2!+4}A z*#W}@eiX0|8bIrOS(>PrU;V;9A4ej1(6n3w)jPe7zgwkPtx*V`4U9jb9y9q}}L~skX8!1WT8Ucl2!{8d@VL0v! zDe<&?Q5&hKJk!MIe6x&DImBVv%8wAiiK zR-1DCb?b*t+yoXTazy)#Q*cL2KqPX+o2>c(dmOZ@NcIOa#k53dO@*zx>tpmDok-8K2{PpJk*a2QFOL|ynF;pP!*ZPD|@(%8RcYvU&H+a#Mwa z-4xlYhKpX8+z5Hj%v>j+?BfY~i@~vq8|M&l`bR-oj-t*}^)i&skLS%ti{ ze?+r2{+p4k&xT>-Xk7IccVX!2sbB8L(fXeJW`wR_xEe=SGOPVA`Z{@AVo_l;HDyqY zu58wkD%3G_b)PqXKqP?=7NaXUFTK!sj6O{!rTSOeUtpIb_1lvagO?%v}yA$HX3O?aR-z3oHy_Ozp2Q1Ydj{*(^vic zNCH9kX1EIj^M_Bn-l?QAG3x}s#(J@JQm0IS02bso4ssXtKmZFKQ7Ud#Mdi~lFiXb&~Dv3s_tspf?#rr_0zVTW-D@Z^Rh%vf zK=5&}D5qOngJfLd#6A3G8RJfu)t?6(;z~gm&jYpc8fTP#oSiQ_1ybc+>bUh(#@Q-x zRx&r&2jT=*FEv@p9z;lwxJOKgAD@97H>@-X4&Bg`R$bFe9ZF6FxZcKkIPNl=4t$gm zgYWs|1SV3pEnW~M99gN-idq*vK?-H0^J3Zy*rwiA2`^SI(kMq6_c*3c0&}Cu^K2vM zDd++cWIBFKlmVab4Lduq;mJ(rYADjpVzlR0f5eFb+1$|{{kjJ&eAsnSzm8>0y1 zTW>K`X<@Qt)+1?>R=GP&Gu3IDJ_rJ=RPB^Z$LehWsx(VI-iaj1tPJVpTIF6a&9dSJ zbaGB1@2~&OYhP|7XaS@8dtA~}fdvzmem0E4#mE(YcmKvyoj(tc)>|?rD)FT5R(*=xEA_X=wV~I8t%8GRw_(XmZcnBWOS0Hgwd%#xQA8i6 zWSXitRcZstX51Umg_nFO9WM1uv#Ag8?vzyMDP4~Xw~iYXPUq-kn@2*|^h=H_`LBWG zG6hxb$3i|f+>M6+#ebb6Rc-F&`2J(z3>w~@9~H2KzJpWOol0lFRdti3FTGJ`-*2jN z<~$L;1KClvs__d$^)$_f{`#-$5Lwaff|7=a5I!?D1F2(VU7Hx8{;&8eG{J<~o1|rq zwTr64LcP*p_@qF8QQ8WU*q^&2CS7aV-y@!svBJCE4cEI%IH&?%#fVbnG)H5wPHyp+ zX@Z|HNucr$eZw?tCqep#YnJW}C3Tv!o2w2DE9e$MH25uv>qGX2)Uy8ZpvZ05UUHP> zzmCJm(aQ0lsC2E1upt~b@LzZ1g23rQiCmp3v#<nx;+z&1R@feD-ws?&@Yk zRMPe<|MiSm@V=C}aW5`-|A8H0pdM@wHGw&`3I!8Stg(HS?yM?o#&XrAD@d@0g)ty@ zH@O&^U{{9>q@P22tiEAxEF)fM3Oqo+ vwGdMBsp6P@}{XI}sA)MV-w{Xk=*xVh? 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%0AE)6Qz>DpAlwT3(Pxh;**@HGM%L)TEay!&x3 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�^GJ3K?NyYz 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 ?`76=Bc;ad4+shxRMAavIs;gJl$ik=^&mosT{ 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ĆcMS9gUmo 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
u{Nto1$<9U+mH(~jv$*Xdk>h<4ab(ybk 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¥uL8>tJykSxvjc5JxAmNh>7Sb}~ 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 z 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
KYS(kM)ew6T3zILaG~zXe z)o6(SP}<$*GU7p79K4YO*hQ zRNm>}zar+~*}JRj%aae?{*Mhj3+uOTLuZHFay+Fhn;BKKM9X|`x6JxhnN(ERXCAa) z1=7}HWac7cb&zOXylNI$%2BFDb7lvnqOKRx6>0{POrT>ZRO}YMpI5RL0_m-|(u(Zw zLQO{270}65vMWcRwv=0d{K!YAR_yoHlC5gUYIJ+6zEyR0^=Td!!~-vMu%W&x0Ms*M zlA0{DxxlM3+BJ8zwOk<3;Q$I?J|Mw`re%oKfn54nt9jtJPrq+)XdhSl zZp~xA4Zs$iQap>W;yR#T{)3k_7Ty1y4@LN1r_MzsRqRslW7o$(v`#NgZx6-r?3+`EtZ?$F+-PfN5yRo8|ZYorb+Wj?5N!fkZ#XnsQx0)663 zRh6;4vY@PHlajZ9if!beKASZhJK%()B;_k`v*L3fB2eSvnA|msN6ls24x23+%F(&fsN_1+luQ=suwi6_?1V;q<%>U9G^6iKMc;@Ifn_vv zlq7chL;(wyXgCNXjBUknZB-!VE!xNud(RgtV~FJ6KU?;`S^%&LRGu$|_vIc~1|ST2 zIs8)9Nwk?Zw$^}DSNe~$AF<^~MEkYstm^-oBDJ`!WNtV>e=*1@D!Mfv9$>q86x0uZ zSxHH>PqjiwORxoLHg9UI2Og=`=8Di#t)=BwZLp#m$i_xK$yRw5dk&n#QtsK%20p6g`O-M*?HX1g2Sbi7%#e^*5?m2;jM zHDea|U&?dSyS~1>cCYs}3A2*l1oNBwxQ!f82@GHm0AR$n+|)QV()y!R8PHay+f%v; z+t)y4WGklJlgE`;MU`4lyVltG+njQ$x4cYHXd|~>8bvj$ymCscsLepfrCRon_Gs8r z!E@>X2X7W~_$}%5$`pQTY=!)Nro~6CX#-d>qjoCCsNMqOH-EA>%3W|mJ2MIc-oen= zF-{us>MLZ`1tv7j-&Z=1tWn_4y>v45zL?EJg{iFDzc{

fJEbN8y>;VEaW(Dsk>I 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 z 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

k59=w4j+| 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∈MdIqWW3cp&c!he7D-EpZEymK9e z$aVQowpOT`C^jX4UcT?h6%J~n+x|NYG-XUbpo&&xm7IIfkLoTZtwH!nT^=qaA&Ci& z)_Wroj<5ZLP>I6w(Ca$3)k=CZ!WTSmVGknBR(2AX#}kx60qafrRGW3!1&Dmr@!iP7 z43k}Ss-At#BXr&eR7ZKlk8|gFZ@q{>0EpI1p$D>MQ6sIxwUNq)53<7(DDr~jzh$`M zw7+}oh|^y2nOI38krA-)zw_aT7sha2@wexT6$=4`(pRkCtw(TaMvqIklnmi>(%m#* zr>uSpIhxsf3T8gp8DAZI2cz$QRw1?7U=NZGrwj%h0GF{C4`+*U!`f-%hkdCyUs>i*HU%Q{z>&nC=4+D@(UL1-9!^wq-HH;D6Il{h5yAYMd=L^=G)8z zRMfo%7R&bGx1Q6xtZgY}5kQowKsXw!SCukYo#aZJAbx*)*s6Jh_o2Lm4r`kegCOrO zIwtO#-{C<-y9e+?+?~8U9w4dby&&K(3t|Fgihcp>IY8`=w*g&dfaUoAE%?4-m*Xfv zF8|j$nT{0J%;Cov@__+^@|Ea=l@C5LkD#^yy~qoNJq3bGec!NAl@1H~`_W4*v-C}~ z6SJ|u9ye<295yhC7>XKP2D3AkA2MI#URX;!j;AKLVmTzL!W)!WX{fg19hb;h;rQ2u zdf`d8Xzu@q|p}Uir990l)49WR9Bca{MS@?xfZ%pHvCQ~VC`~i4q$(= z4+x+tSSNCTv=N3Js99<(f&OHcwtZq@`?vE~8>y|Z+8;+N(>pDYJtj!f1IR#1yJH&8 zg{@Xl(Gwcn)cmZ$32r4wVvIMY?SJGMW|Uhhl)+}^nQvFqVuzpGqqnGm}DL`}u~z77`Hx*g4jE}Q=}p-?@JJ1Rz`DaT@YR@h|_D3MEk zjUM##$tyX8_k!Hy$)@UUJ2T`_)X~RN_}`aXpf?``TD+b7)NE$ua0jDOWy^eLdaisi zT*J28w-`{heQs->FGzF3+4T^D!cQY9<9thH7QF~Ima?QJ%aPcRO?{FzJJ?`T7c{jrp_cmLfp0CWDkXeLKZ*%=7zne|`(i zz0>s4oRHJ>A`hqB6F0DkDsXqH@!kNqxB<)GKdQaGDIp5> zW*AoVcFLvfULPPsQO`V(7vDJmR)qJX>!q>tj&Jne1CwrkAk9D82u-mU@^XCJEy?_x zWCqa^oh1pYeRkTckG==d2YdT)Vn2Ol65JCwMTme0HB@i`n&Za|Mi2OkI)FsE72CCd z(?^T9T|WfcjytU+uJvP2@B7t%j>CRU;`Zj(0_^HE>?EBN!1eP5-#`yO0D!^w+ewP~ z+IuHt4w>CJF+JN}*>;^smN<`79#pWhr+dO8s8+Z#)Sqj$Z?8t~>13XKdtf8lum%!= zjr||sK>=|a*oGez8b^cwn=%CS%McQh^$0SOAsYI{?+Lr6H&s^w)PsH5MT=izznfLK zG(t-E`kWH|dkV{K!82g*%|oZEVb52t3QQU@KEji{F>NtIf@78KPap6%M1CdzalxJW z4_xLXpwTY@`aMty8VAQB(9PKnxYWsM-hYL#y4$?`*ZDn{KGZuxs6US~4`Z9|VK*K; z2P3WT{5wQmWAWpRJ??B9dTt?ZnnuAcbTNK=an5>tQ&9+J^=@y@?EbPTSnWa=QvROJ zr7@-Fc=Sc#Q%~0@m5deiD$@lg>fSEDnrqFm?3hg8D2wP4wS3)Rd35||R{ax+?=R%M za~5b90a;Fc0Ej!T2ft7?9KeRRl7e>k&q9>Hx50KErJp8wjEx#c01gE{V@V2=L<41r zJ+ji?vYy}Xmmv#yDnx8pgx zSb0&|GHU@EULgK}O*bGEgNK225IlN|32D4gh@-%-sq)TPC3YmtuOzgsub;&ahn{XZ zE{gvY>L_lSrwri&T{BDGx9yWh5{@W12yu$T!<3*g<(V@;=Bb5TxD)$pIw`E9d#_{E zssFmHpDw#DhVsfM30D!Gx}{T{`)^DLYki>rKm z`eBVh6wees0js4ep~SC_wl|4kVJ{Il=uY34$8NSndk4@KlzkF*JINN<#|fYGx}CSd z6YIUKO&69{Dx{xi6|v!DPTb8@N{nskjF0_5ykqVUHNLzmz!0T~f@&kZhu^&g2!!%M zW}Om0pqXQ1i>k);){u10n%BI9hXh=2f|)GB^TF%J))FkN=sl>#dtm9%2t+2jHY3?R zlsLq=D(QmS629sx$=f!36KV5k3PMzYnxiJpi`eSarl)Du@`reqHB%` zRJfeC`(?XF`uxx!RS9fyGxyX6R^;8Kzny|&lNB&M@+lcEQRtxlS#wdyRm|+Rop38C zWsX*o`>gtC@@cosrAdHocOZ&e)Ko`i`jyB2JN)Ym*T3@(Qm9Og$|sWM&Ef}@AMBd*;!(3+}j;?iUSAY2XcNgc)$&B5>e84u=SL{DO z8-KHYukOKmR4A96hWql_B3W?sEfck(JEpuIA?#ycQo4x!rHIkavr}GpO>SnVcUiq> zGAWBRLf8S%X}O3y=3wDjAnH;o&-Gp4eM0yXrYM)^D%pJ%TXB|H;I@jr6ih34eBs5c z{3yIFU4FI=T}CB^1BrhdNe`2}peZ+JjUY?L<#38cIPt%Ml%4(iHe}cxq`47a!@&;X z+HF$wHptl;35g#sbMZ7*W3wmV4B4P%d6#O3Q)efB(-FYHX8NIGXo?E4SY0rF#>Mj{ z;IpBh%WsxXqz1uu*_4?hYe_ge_BM4XJ(@hN03lJ4*Upd2NwBl?$W#XKtY7$#eV+hm zy}aAUsPs4FFfE6~9J&0VB#RtNaZCZvXN?o}9(PEH_M+q`=eX@U(J#ckBm#EtFY#Xs z*d7O{xfR7WL=n{bPr;Z9=a6EZCEWhah!+}B5iwKg`|E5Lh8ev&={gs-bNR1+aO+In ztrFH*WRrV%q$kuYXs|Jv`b{;fb6OR#dB!UHiJWkJ;hsAq8=~=11^o2MA9YCP;o|9k z1loSAn<-8yMYn+-sQ)D$W*7Sc0$OJT2YLbXXv~`o9YGpVR(Uy}ecK7Z z;oc*FJxnfN2H2+xyvz{LBt7O2Xz%LhbD(_j_C~sx?H6-> zlIP5k+nCJ~jBAFcycQk|Rm*X8%w>7pU;kjyB)pjPX1jff8_O2-E3U$6Fcr7fsoQP6 zIhNA3v?csPN{9op5|J9Kx;pJXIYufSW!SRU?kmE|lF*V&YF$+>bb$3sIl8ZcH!_}9 zmn8wG>(}=tkUUSS!qHTr89NdM$xSqBSIW(D5*@Pm;Na<4$fSu1P#4FXO&Ni?jicgU z*6Hs+o+LjKk}v?&vreo+$43}OciraW9;$@?(qRwS5$IkBWbhEVqRjkkyD!v2hS#Yv`){7@!kfk_L&nZK`q3@+%#>p$0#0Dm1A-Pi|Y!T7ok=SLv_G*IIz1grEx zO+^9hnz=)Z5|cna_*o1?DEKoGw=4XG*ZO}dev>$UWp9KA)zi;LS-dw z#I!m_V-;2bP&Ov-BJHj7Y1>CS!MMlU71NmbupWt5bhTb)uM;&&cBF#r z*_=_$mxy`MhosKJv^OFc(pAQ_)TX?|RYfAionZym20~8rtXoTbn88LSRH@&Ei^gc@ zN5Wph!O(UcaC0vh#(+JYlib`|@2!6gN_AvIPD}lbqRdGeCY_u*$VNFPrj3-Bk_Tx~ zp!+?8Wa9xyz6?67cp4hf7W$l`AF>0-kf5tCdcn=qLj}L%6X6}dc#RFFe=u@qs0t4h zI+1g(Z*b`@)wVN2(0b^DJk;M27N)@5!Kb>@NBGUbkMaidZ*}$No19EE&02NGLS&=~ z913z()(Wj#=RRW=O|L;Ee-c=uj=#ij<0Ci)Ma^GjtnJ^p|E z?_U~S&?JZRWYIReUM&MZ3Z>bst>TM!C*=7GS>-d38N0N@xbP@_9ofL+`MjH+s?-8u zcxZ7k1ls6?|H(|!(#s0}H0tQWITGROPO1@UW}M?bLMWw@akQL0+2Ppyu3$0A)#Fj_ zMZGuaD@e;PFr@W&##8xkjI?Ciz6&|0=U+l8|HoZ*{m7*NUBr-u^mNYf{l-qAkxGk? zU}4f+Ww7G#52=9~i|I+vZ@G%4?k7s0w$l*L?>odb2810x1(`h_W09x zww6%2-Mpg*U0j#sSWsQgue{pD{Vx1jZSsu-U2nlhUIn%F=jH)@DTA9A&R6`itq%pL zU4VGzuTLnx$=;Kst)mlzP#a;gBBfrDeAKDxAe>DF(`RfJH0TP zc=Ou9a%!$hlz)#mp_Ru%H~brRoV`-L)JV+PCbDLQg*k0-O~+<7-RV=}ostWWn(~Gi z0U_A@`uNFuhVcJ*>HQcoJw$dd4!}RsoL;ggu1WoPTV;S~?#R2Npw6&Byp;#7l8KlZ zRqXi>-mf8-$N;*nGz_?Ys$bM+QNIELz}%O6C+sm`g7Y2;YuhCtFKst|L^Q<08gA@C zV+(L7{bZW2XOt-puI8*yZp~A)4=E21O(OPb=c%V9OyB0kqWpIezdOCR3qlqbc`p8J z@79>5X2oGr+yy%@u{3b)_=9z3m|+gv+YOyD!e?C$&)jz2jBv`C*fz>zsWnzBGokR+ zdH-BPp{8=Q0-j)~F&8Mifd2q(V%4DP#(t&XbQAMr@Z?6u2S1bGe;X!Q#Xzp}cIgsE zam}B&FZe+1S4f@TsS)?e*^2f5Ve2fzq6*)2KeU8^lG2?bNcVt%f)WZSDiR8U2uMo9 z5CQ_yt%P)lAT2p`N=tV)0}MH}&cgjad+&2y=aV1RYu0+#`#kr3|8BpM-!gP}M^|B{ zBzOz)$W8W|a!`ALu|LKAyB>qBC&)$f{VC4cQzELz(b_}^Qf{_vM^eqZ0%8nts-izM zq;bY34iGqhI8sOaXBqa~QA>Px@Vp|>rE(`?&3}zEJje|;P#K290A@JlZm%O0sJ>Ls z{7Yah!M5CE(LnWG-!Dt^8qth#v1o_(?CV4|pYc>gkOhE5uT%IFbx4nC7=%4qd3{~XUnvZvgN6gutsmZfqYU(W0Iv9-c)+`^%^elWv1H`f9+G@&4Pe|NA16uqe4Xj# z<558FzW8?vFIeiw_V5oW2THlpaV3g*MY)W&?2Xu9*Jq+XD`P+A2o9OYFm|&Lgm$Oj zySZa(ko=Bw`84M6y(aRd=J~_-Zwy8~-?MH02)BDSBAuHFY+kf`iDsDz()Gg9?;At{ z&j*0K7%`yIkHO9VM*p=&K=99S~)}MxHADmJfa;K`0;qIn52>Xu7ZVYR}Vj zhlF^tcB+=){Ey(5dEsL+1BRmm*O|;e;j9f{5AeEAbG(bu4pGtkgOy&5_p!cpQ!>Ai zm~*_@je7^o=%fS!cDZ9m967brVCeld@<`tIkzbfh6fN!Y32rOHcJzp?5nDss6!PKl0A(~ZGpz254B&%nh~1ApAG*I`{W-)uU_ihPKaHt_ zXjO_SSL!%mFL+`}5*ITyfV zDv0r_{F;qxIVHJEMQ+Qu?({Q03~BpubDN8-ye99~w#*abx&qeio~Y15#4Nqnehe90 zI)IBGXN&cs*&`yTc@7kS)Rw0gdh0P;0A7S8EoxjH*F{9}?)jdBkBbI(tEmN>xzzsp zjZlv~H7nysV)R4f9==k()_;14KSW$W>+CSqxe$sW4TfM0%dIZC**60qR?MgLve!lOc}n+g*F)oZdD!YJ%H6Z z+M>iCVCL7k#K6auOV_~L=nS9`)qw0t@GfxS4Q z=6o&rPeF`khp)J#QvYA%;<|_IpPAM%g-A11HLd5z%j*PtF|7UEePh?CTig5FrTI@O zsDv_aP}aZ(EMdYrhUYT^c#OSUO#1WXT0vzLWu)a%f8yff4hE-rp?T zCV)V|Y#lW5lOmzJ?yrfSfBWYD2LsmAhYdemqWB92=x-DMA$^>7_CmyNWfQ($lxgca zs>;e~)^*!iBk1k6oJ@1F63wsMqpyCMq}N~iH|gK5Gl?V~n=Y~<`;2_6i@zsqmxaQ9 z-Vp>Vlgz7=LV@`$fg@-X(-l{t=*+AN$$q0g2oG!Z{9`$|-WjFq%-w|5_lt_)^eP3* z09MUnPz@bDgd*dT`5;yjZB6I96Yh)UBjsZqEs8*;RmiW=Wo5kWeJJba%6b`+n5%u- z5tNBP5o1QCwF&1uGg9ABcO`s$;Z1#kn0&6ke|V!Jp2~6Ov-BO@00U9}=`H<@%OSR> zEnwGz1~B_U`Ui4RUsDc=z=#c-(HVPQ3?)D!53{~tFC7iN@cHx+*o2 zL>-}gT7cpL3tg|6Gm|FKb1(L@K>Zqc9tq4BT|K+c!El!C5>!X>TpDt!hNrSG2B{t9 zs8UlQC!;K~&8;PkjRvaAivk$Gusl)x{;^U`^~@lG;5A9<_Tc64qbR(vt?NUU!*L{P`SSVu_JZT(f2Ey3OZV%W-+zmKKQr^T%*~cHO4C?7$)#@&il$*i7aSn2U5~H& z6G@0mU+C9EF_^T)VYNbHqaEQ#Mknl!o;rz{Zlb6zM@4xV-EN~Y&d+}mfHxaNCla|j zw0*YNEhBM>(a(1;Y+jNG9?no^Zp|}nd|XnTPBx3NIof_%Ae@bK{W*KE(z~E!@mjAq zvC6YSIl6v|-^E}gTy$-Y?WU0DCp`lChYh$On#>0Hc&Rzo!Da%;amxceGr1Rwn>jz~ zE#Tc-4t5j*v2agkTGTfa@dSn)BI1YsZI73{$?^TJVwyvK^$18G98 zd9^|*6oG}$B?+C$@<>z+Z*Su;zw_H%9)=NV7%0UHf!2G!Wy8s9U}tJB)ejz6QNUA! zT_ge5kNdkm7&XHB@bz%LmJ3kgbq|6jSOc(<6@Z=f-|j5~6dFYR{UQlECJG0rQfdf2 z_#w|{9!>!+a6-+Frv?LIU`Q$*c`vHJP7*G;8YZ|mG`WnE-K5HFatS2p=bq` zq{f5>3XyNU(=81Z|6rg(8QXZ&)*d_2$8=AgVe}@cniPaV)>qSrZ0uzw2E@@n1PAW; zL5Id`NhpPZKMLKc?k`i_Ys#ep9dG_^1RHqjDq_umOhHqCUXWYFAu7x;J448H%!-px z(2nlC`?D>RNlo2n0ohg*k;}g)S>sHG)PIYCX&XQ^@i_X!&I)XivFXWykAR=G+|ME{ zg^ApevWLRb|6SShRh1hk;iQG`E>f9x!p&GepKp2RN(>X;orKnFg}_`py-%LT&z>BQ zt4`d`RP_4!bu%+Vd=EPP0tu>=Ux8>^G~&#O4#;7-IS6~hOd!9HYthwf#eL(K2s*Te zzg|>OZ{3(V#UyUCaK&+>Z0cQ(71V3``(wPhT~1ypYJ@X^8?Ym~%-Yv0h3&mI>1!gA zWLYF@ZE2UsNdz-uig-2f%DNu5A9pQzYybXgPbb**^(_v-y|yHe{rXy;u)} zT7G!4TX61vx(oA`u6v9{aY}WUvA>+@D$CqN&tXutdA9+mOEV=_>1um^oe04G2A9&I zmH-%dY9n+c)rI~Mqi39RoBSq5L}K2S;IA`28$HqC1X+31g;K}=)kM46U0eHw#fi88 zn_Q{Yc9Q@0dF`LFA+hY8Yv&E7A&=MxS}ve8c>;PzOM-0ufFpf@;Yn?QI1v}CeioGy`qWwo zmAGTQdP5sOk&Ba01ORMTgBcqo9*zJ~Q7BQZW)D~> z2bpU6Y5xkxT~68~;c{Dyy64;S=%T*&=gg1(W*#1yQg82zRNRuNFLo_86Smm|jQ857 z-?N5JD9?ZionBmKdd~eTzBy+i#HzYcW4s#x#Lk85bjIP4LQWHn~=^Lo@@l+CE(B*M2Pu;V( zG&{$ttEJkYDt70`Nmov$=~KSohB!9Bm&WTayDvBt@4_t62siNNeG@dh5UslmpOhBy z#F*|6*s6FCTo+@#75a{5sk1AKUp0m)`c_qlNt~!UNtDBet;epV=*k@Mc(+-)MfroV z?4@O7h(L$1LWhe}Rt8w1N(>zK(2xXdK8shshq}moz4TSs?t*t47EOny;(~xa2jZe# z*xaQY%FN%csB$%3k(86;^soKoH(_16??irM2&|?rrl8B??=BSG>8d^O;)j4%hh8$T zCJ)$8KITWC3k7%=GxmZ?#_MS>;nNA1z*?aRnC!SG1n{TBp_kAii3ocGxeQdi&r>kA zLS=crJ}83@hZuv`l1`v<{=LyAJP&LYwW)No>(9Nx@%cAm@QCG!B;A-QUUS%rYU&)> z7d$9;g=nF71d6Oo5ny|Q3xPNXvWYQ0c}2=-rhnbshu4A9!z*O_GSZ?Ev})#n8z-Lu zvr*ZHQfZ@?ythWlpc;$(4&2S3QXlpMS#YPH8uML@2sJRr3ggAmT$)^2xxmhwkA7T` zsRO>kphdIWM=m6Aw56VTJ<%*)t3hi(n96&`&8FoZ|kUD9Nl?j~7sW}c}nr;}B? z(7qKI5#d)XKmE<}V^g`>9@3-YYhwELnH1l2(L=hY0aXW&_W7k}6+8B=ZL69d^tHew zHly~N7Y(iw<<7Y?Fr%wV)Nr5$Wn%89nakw2fgM@{(Bo1sIz zYb`yZ{GxOMox$B%sZFMfsgc^fyE3g1yG_D5I=cR^)M=F7 zMKEhKzToB3#cz*%15&j7TMqS|A>dW=9`5!lcd!2ffm(2TXcU!`$m9TT1;)uvnyr32o2;S-Q6J5uW2%?;;KXS z*1_-W36TLYuqb(6fD>K-YF{3s7HwFcf=~4J1&F;HNhBD3aeQp>my9nuT`8+Wu246| z)Vhc;bQQTV`TfRUBvgx2X=$JP0?l3%10-Gy?d$%FQN;ixEX&6lnAd2zi*M<%f7o)j`M~lQ zUf1fUnapj!!g%tEWq0M!&mp!Jw-3jVrvPL#dSvs!%e z;~1|*kRnm8xq^e^Z)pcH!=`vA^W2$+-&>|kAO|AB(i*QZ8^6^TqIa)@N?&M@;B5}e zk7`8l6dAcTUWJUdMC@d{jWcIVQJ?&@5c0#r8GDc;N#da^19Rv**d&I8n13c1{_F`C)a9GHYjX2{p>Mv5-#^yYKQ z$h#(J$s->nkEicwP`&t6m)=+F`**YONRNBNd2Zx-~dRIzUqKs>?1gRz;!Koj`c46Z@}6sJJJPpqgR z?omCUI1WrobXy+5Rtp=kuphjuK$XJJK3o~?=rL?nbJ;g8q5VSc4SvH3SpM^KBN~!e zFci~1zh>1j9hoylChH3X2gh}5u8$8wVsKL0cwX2=ADS8A3bniE;%nrmfDZWmbTYgI z3n1EXuy8fPJ#c&3rm7M>+yfF@92=iuW=V@AQCEu2YNieSjeGs_^)cyRLIVG`V2GMDok(rSW&N2Urg| zi}$LOkP3}K3Zgd&TKXLM{X4XuNBT8C;5pfA|By{jkHi1Eefz1RL0OM-zv(>w$u8`3 zdXolhW&>l^3R5n|!1_4{F4*4d`2CjEPge=cwgc&L)lVW zKn?M21QyN&6jgwX>`$j~68~?0pQlFH5)VXd)szB%_m>DPSH8a4>9K62J(1aM3`<< zTP*4FmCmgpN1FtqEB4dHDC(d=&Xn-zG<~}vm!l(SyyP-@b$Qr>yBxLqqt!9V%I)k| z^-Si-5Mv#qMDjY37Fa{=CB5fgPzGy60g3*t(-`9}4Sb!)T}wy#HT%6@(s`OaJoasOR_BGp&33(TmEv zri{>Ao7n$>-A})3ya$|`ZDm$Nam=r6x3hwhVX6fdl1xL70ar0J4c8?){-6XFUT;)+ zq~U(wjjDaQ0h$GGRJ;(TRTtnWGyQ*<_X@H9OQurIQLej^smvKEflKU$e0wY3jMaTY z-o!(p5nF$4taV{dmR!0_w6EE#Q(EL99yDr1!7wjjC zcF!yCHr4Ayy8M(K@c050g>I*dT90S@BL44ED|Yg-&FBCdy~i`jfw-TEJ=j+C7u0eae-K@HwEl;K%Jf?UrB|d#yygwDuvRZW>jiEp{t5!Z za(=;lycZ&ws?Xvg;bB*+5?{pvy3!tbyLz`@UVhi4P>f^^Y{_DZTml?pO?rR*)qDIS zu7n&4Rlj1vMv_{=my2oFXgDH<`3w-DjJr)e6WH>(*=?L=8FhY5O)BIR4TIP(EHVnO z0IL>PE5`%FBiKVuCxEI?j5@R^Sah1tp(KV4QO7|>(!+y+bTwb2-E)!T&(7ud07e2T zgIC#+ovBR?d+k=ZVi^hDUSgO!jxlJ&gB*bF_mnka-3o34nN+)-phNQ&2)ZoGajU$- z6Gj2rC=*#M`9u`!&8~tZ&p!kZ$_tJ?qj#aqPPaC*GPGE=5#2Bci?dASogn>NDdzuL z9wn4M82N}YQ+;_GOL(i6@V9Uwb-hQlwJ7H=dHKLqCGZp?o;lk6fp1yRGm zk=B()-2$jl?fJ|x%g*r6Bfbg8JQeNzmE@5Y9j%FEHxbW|E@hmxuzHlMumUH(CK|Pm z4G_C+lh%a?+2+E#c7liZs(t8F`_fct%Q3&7eu7uuiKj{$=ef#KL?`~h86Z`bj%|U_ zg3j)@pvm`#!8UkgdtT+aK0^vpZe1*SSetVVPqz}|#S3yxm2fJ)Qz?gxtF;vlzN`3L zHm%C}$@FaJ7rV7JSueKa7Pq%OBE!v$3f+7B;bq82+m>&PAvcV)pSeu-KOcNSS(9xo zGP#&*DhO5CvNoql2>|fi?tk2EKs;;(-n;+3K!96G%I!mF_8{!_3l#Ifn(jv&{MiI2S-+2=!aiO*{3SyIK3`Fj??I>q%#ns zhhp_rQ@}Axp6?rT?WlQ}$x4v7d2`8~Z#go0$^6w3peFPk_#QitjdNLlo)Uc<>$`}w z!Qd6+75X~%9Kfxvihc{Acz4-{lC6Gen^i92q^3VFt(oTPKOccx*{kx=T)VA#CMJwj z8weL`pm%R(eKT=FR#w7`R&&OeO-0N<)=)nvakFpeojY~Uy(B(-a{a4ShfO(;s%g5< z7Y07^*SdsZM%q>>O#uUckhiH%ly>+kut0x1@QxMyQtSQzmAv2+91xC1u%*EmqFrzU z9TZvTHw*m6k?uDXaCh{h;PS4qWqrs@(DwPm&zAU3Bpy84pambt?^Ct}lLpt5EZ`g= zF=Up?Io09u&9RBJwJrD-j>M6ASdAjytPS<>I(_LXOwS-f`nx`VauhM9lwO-#3FuLu`whr6n%mbhqq!!nkM z#OYo!XA;M&mN3&aI@ojXJ8o*@KtOipAMO(xul0`S0*-c!W=HM?VQs-Q?RmE+n0N2g zWUP4Ny9C&3Q)YW5Q_(sm_9&Jz^eZy+SLrOiocP>gEqd@#dg@Q|QNe+$s~o3uU+NLk z{H$vWo~~10L6zi+&m9?@!1RM zlpx>Q>qzpw$?;FWS5w)Rx;%3UlB^ibI6>6fAX$&wFG);j)J-67UJ=Cp|5ur3Hl8f; zIHaCnn4j&8b?}pR68;R`7?~i>+Y-ABLhXapUi|?5L_O1%;?HOB&K>cAB7vaa0ZWm{ z>xA%!w?Z_|-?Ea8A6niD#?F1y^>W~g>y*(OxaYhg(&;u2JzsF;XKFv-G0T4|7l_Up1im)ssr2*vjF1-7|>8Sx#mo z(l^3HorH=hEqpGWO7$ujGB>+ zmTY3`q00B|II>}?{I{OCv_VR?8Nw;(HEK5p`$ZSLmsxJMDCyr?gyNrQnN3EDKDgT4 z)fDu5x~Hz2xzAtWv!Tmav}1tOIHoYWbj@0aiMF6wcEQPf?%5H0lrS2k(RaWa_{gEt zgA#?3Z6Igk3Zmz_olNL;mCj3*t*bdj|ryWW8LkaG0ZbC>49?F|;HNGRtwo*9kdQ zt2+NkrXWXVV|pex|Y8cx#;50vtC-xvrUa=dZl9?t&RBcr#lNVHV#BqoBtQ)wpC3 z!3J6eerGbFQYg7GFTtCYu4=x#yETJvw)ZsLE%}E;pe( zz0f{t>M|RFLEcF}{V>zyPm$xY>gsd))$xUUAM7rlRp5i7pKMq%#Mk$gCC_{vRtF!! zCcoIkJrztZutQVq2$C~fY6!e?D&2qb`*~%i>7N7NI5(W$a~IJoCc?k=0Of7NP3V=O z;oKxVI^GrPfsH||g8jl#NmFSSP|a0eKDmgKYN}5s+N8H7nU)!ff_xwTqx`AzExdq% zAjTtD4(}|iMpp>^FU>E)az6N_sMf|BA5L+B*q3-z5&7t4^l&jg|g$UNB`DEl&k?YS=zE8MT^n>ffPXIr%+ z@Oy;%2qBiWypKdoO(;3OOW)b_a@n7v|LQF)PVQGPyY7k0%)5kDy~Sh>I{gR-h5VvT zXc)qBp-AUu9+Ef|8S~ZC-}+MMclAyw!yRA5hvZe}h4&NFIn6cI8724yIY-#wHjL#&lTqRUQaj->h|x!EuICoWM1LU%oQ;NW7N-%djDdfxSZ(RY#zZWzW*HxQ#I%}l|4(cbRqq=ecWlY~_EU+s?XDxWNaHh?zF5ZYuD za0nj+$`=97D>rUENt~Q<+K%VP3ZA<9g{fRikqQPwzJzT%aSmj3-*jUe*GZXSgAJ=l z)tO+!3X~N5Oi2IIu5G-C?q+=fj42nNz^^?2C5sxnW)Nc?uoVn($KrD8PKVp1`o>rW ztAw#BYv^vI#WaCsYFC%LyVMtKpQmE<2^u<#+Aq5*Je7{N#6(|Ze4bH;;b4}~P4pDm z$l?|?M;ed)!n@-A`?|Q3IQ#XzVV4abVUk`7?DLb8*FNumTT+hfbBC-R{PBq2V|}xJ zyXmf?Z@LZsLt{%ce%^_>G+TxhU9R3w^7FGR9C2Q7xI^aACimD7ILfAk`kS?_ZOJaM z_S^^I$o$Kn=8ns6t*oix=aNOB+2%+%O=BN!uu;wtT>I%8af2{~D%tAufg<3mQagJ4 zp(4@K^2YJ6ieCZz1%%JLwDSj8E%%9ND3e2o?Vb%o>;uZCYSmm3Yvo$(rsy;S?8a~q z2$qBUPBe-61r}$Zg$>QVJD834x_c8bx4|ZG7Y?6(=7mz4;)v3tM&2o^VaHnc^aS3c zXg`)&SyYg4k0JlB>(b+idTy88|7*HjJ^7z$c64^c{P%Q>R0n9f9Qz;B<$plKU4?+# z{r^}m|MwItwg6@=v84Zh-td#5UnIH(mWsc`OkW6cYTZ7Q8EsJS%fo(ky)@%&zbbGm zwM;LskCd+oNr&)r=b3w`TLgxRH2il-Ti{YO#h0L`bl9Jv+tsp67a9$F@8$d+g7&yi z=iU^6z5u|UE^rKM7zL8lxT2u`y-dpA%Ma^+XCq^ zY!nel>7TL6)%ZLn9WVAicVVU^j(v=*_?Nj>q@8U{{hbg@ke(?&(en;}R7DbTTl`NA z)Kv)jU1GX{KV$sc7ujp;nwDV0lq{fGp=Hhf#&e#H=aMgO-KKaD|C35q`2HbYU4*f` z^1kkq8y_^!pPhMRDs3Mv?$a&A?~#C|GC5l?WB$m8xGVMz*ryA zP9h zrS;hrua)XHN`{>|^xbI&jtB1eF4k8StSw?>aYuyy)?qAtQIc|l(o9cpw}!byu+)d_ z&F4K49I;fa$pvS<@ytYpH2+vg1VM*m!FGE~B_jnv508RlzjP~8BvDQNcfuo=>_eFv z6aU6#2XgjRwYVE|3@J}K)06ws{PxNuj|yZqLXGY98QdlYMjL=ptEt`Id0^DO?9$@?U0Rf{Xpu*x&N7;~aOGBY z3|R)R=rIfHT?sX}7DuVwrpG6GmfCn-zqb#s3n2Q{g^3uB*(5&pKwf-a3WM@=lLg|~ z|2_f~*kai+C6M^++8GNXUg6oi5Ali7CH9pIB{lshW}ls(6{DtFrng0Z)Tf8AbgjXp zyc%;~C5cD7>Xi)UoNh^Z-Zsv^6RpQl=awmSVWW|HmYD(PUk0d*w*dKvm|Clx3g8Y{ z@{{?|Pi+oY*F6s6vbR}k)zRq&m4V50Rq7iY4C)e`gTz?a z0?0Z3#&?Fk$uGbunkj;rRD|FOcV62mTo4V^f)3epXH7)_G)7wHkUd`p@hY4Cd)j68 zp(Q(??H((U_%NrS??G@BmM#=(yfeEZ+Oq-A9Tb)^szi73Aq(`Y2)j`P|LpZRCQi)A zX73SucU&ah&v!<4aM5?R;1!!8eqNdK`Yd=GHb8220m^d4C%`(G8RZ9qzj?|1xzSGQ{!JmASs8*8^oTRt_pjh^chnS+1CvQ zqmx4Vn&NJw<32y@0B87}7Cftxv!Lyvve5aF=(xaGp7Z;aTK9)z{?2!tB1tv~LSyu4 z>^Um)w?62{Z{6=Riz8!D|7yPTC)2yqJy|~3O2|8Zu2p&H!FlG`F;Klfc)kSznX%pW zyf~MCSE?NpRXQ9w0(&nNy@cHYW3+Q7YsBvqAHDg0UYK;Gbv=oD%?0?ytZbU$w@0W!+AeS_L;~$;9ZT_ed&pc+= z+f+-5#{l1sP194%pl)-WGK|*5dP*pl2gUpdi|9$=K~HO@H*1*%*%>twka7? zAf{~%Z70xHe@(;!45=P$+B+REcA5!TOt$9w3s6??5EqL;X(2-BY-Qp zxs#KNIf9{)!;pke+bRC=>xo5dL7=szO6hPB%P`%-sOi+7QL<((Pm(d-rr^yptB;yy z{$2zIpMMp`Am+d6dQjmkYAw;So5b3fUM-P3<1}N|S@sVmAAi&9iiAaMiWb*lbK*>a z)sUvva;^z2pm5qQc$k7vBkBI^h%Eh}3e=`Tl*4UmNwTVWCpF3la1=ebpa`72} z%o5qJT4}O%80a?~Dg3V%QgGM#8kTx+{pn!}Qf|6*2s1IA{E@5~b_dA%jA&NeR^eSI$qSf!OtW?{zV&_vDs`tpU1)a*Mf17hW+(sM_D!%R z{o=?~?Czb+2LnbUkCdHHZoX|SSV<8$|C{Wg#rbNlr>X@kM|Nh1pPaI0-dIy-(y!O# zpSYRb`|XtK*0P=}r*=Z?k9?KqG&-^z!P}Yr<(_|SIExilq`QRh9sKf3j-SXYVqde3 zF8`e{Lk_UBU*0b=)ZuLBdm4A5Rsa1vQ5?w}jNit|{-%`z`%8t_HMYF!KQXlr_MqRh zLBeU)5?H}=VYVJq4BP+#6}cn?uniW@@<)rVn+xwby_v%~I22gK)>p_XzMXsy!+qI2 zIq~Hp;-yOL`;qYgjL=V8`*I`(0Lv3Hr6vV#P+qW;h89-_wh?i?2Hc~1vsK;v{@hGD zRi5(Fx41o-&t{|k5E7)5vGxj$=uBvk&7-H2AkcrfAejH)xg~;5%4u)Om<6w1t7y_q zfL+-o@(DExc^#{UGouo~e~oL5z1Ux6PfN>zL zs`#o+)daBFjM#-vo4J51LL#8MGuLgHZs_^Z+j=aQ~ zfw?hud|sJW)SA5i^(cC+kLZ_M7A*wMh7+OV_dYRW%D%L?%}(A!{WYC~)+BvVlh1e{ z?>t-cGQIv=G~4!+$b0@kV~?@)ca#fp6>{d}xkk->AU5U#QM=JR2Mb?^if{HK0jFxv zbMWaB9x+u)T9rV4%}U*asFA2Hezlr(#&js}-Ll{JH%^ORW3BaEc}aa_WM84!1=gfN z0xCX|IO27Bwxh13-c9AG2mXCZ>*2FsU;{^7`yn*YY+BI$^ZX6+z}q`m_o%Om^^iuY zm$xXwq`5u-E_&PHbkVHM@cTN9{(eNA)?OA!AV5g2Va*Cgimn#P7wl8F20X(z3oL|M zir}8R(=L{B3#U>_k5$H|x8Wo??MLH#zo4m@ZvWNTk>_a)7tf24VXvECbVsTGeg5vw ztI~Zb`kSL_v8lAAf)5X6Khv@V2N>khu&KDuDD5&_;OA%1@D6?cwE0L!WW{3RKJ1a_ z1#5O2GBsM~77iMKZM`Ym; zSM49UJ20EgN6YN*W;W@u0Zp1a?)l$-@$o+;t8|Tg_Ir|@BKS8|iJ|IX!GSF+IDPh? z0uD9n7iDYi>mVG#W(8h|1IQx*AP4JjkZ9FqsrA-#hw3yq&JTNz=*1z{n`axM$4C=f z!L>Jn`qEew$9vy>x-)tgq#wWJu&2UUMEsny(k$=sbCfBjMca@YdNS2|-{JVcS=#Su z4pB|d`Cs2!s=if#`A0L){BzizBG_-$djx!aFkp4{Sc2@tQ2O+v(h{* zZp9oXIxZBb5@Fz9YnA;l@GELgI*W`D8uZ}z1G$sz-Kg9^meNp=wy{8Wcg6}!m1MPg z*PgZy2*(0i$lvmynbHsqo4r>8jHEl1PR0V~-y%MgDf^Du^Axo8jtmy_QqZqo<7az3 zQYI@bqZpx>)%(0L>qX&@6YzkSw%Sx8$msGf$nq!e)6z!0cGfj(t}Czcw@jZA9?}2~ z@f)wa4#FdzAI_60Wd4;K!C@+g-W9-ES&7Hqi_w zlg$OK{E`p>X&|*Xe*eWh-H^kh;A0r_2;9a3P7kVq_eLNwzDf!(OOviN@)Oq%pU$ux zt&}X1kI&S~3QvV{(H#S9l&{Gqfto#FENc@=2f%!00)Sah%;Ew#LsPv%YR$^gs2itp z@EGfQ)W4OoeOKfU_@aTix-j-lidTgIR6h0;_z8MVML`D=yl|4efbh%v-VwsC7a1rC zpK8Mvz=g%f=gO*r$OZKwaOD76SPV3y9{f@+;t1Vc{@}Xwz|Y9qS5MOu16?FIqk6oI zgA0O-WQCvcSKZ>OI4JLNg=y;pliD}m*)FOLx#ayl-7J6pByk!%|NSOjmn(1Vnb2MA zs(v$eku3oR^U%Z~+!_qhLGz_PrkjpXB&%Mz-iL&lbomyoZ~sLy4|j>3`&+-Mux(Ef z(y=jOp?uNE;|rK*7YsJl1%NA6g+wg)to8xkVmRRn49x&e=o_3rR}r_^zYMU~3KoH$X$#v-|zTwxa_7vgv1)%FdLutXC4wC{UcWJA#&ZL~ujOT==5bFl;{GE@>>(-}!uQR>cE|_0Z#A_gwtJcI?fFWQJ*$V^ zp~Jpr#=yJv!2cJ>FcG|1Ouy;_96bQop+r21YkTM)VN2UZ7Z~8kUeOYOfg3^)w2Fqw zl5L`4!$VM4fXZvNU;zlCubcs_hm$VMqOXvd3Rg>*f(r0}tWgFc?%yk=QK4XY=5fJb zbp9(I-n+z}Gxhj37#f7LNeEex0|JpWvD@ovjLwWVMZ6g`fxk=o?~F!PTnZ4F~De( z_xE~hYyQ|M8WKeHB$i6d-L_Bc=0&}ae{DE`)+GJzh=soIIfmst0h_85-U8h>+}PjZ z9_;kg;({pjuz1bRebqogU;4iU9Dg{j%*6-vFI~O1MzRnNwhl+{VLlFFW-q-Yi@m== z172V_Aj4&RF4Cbi`TR2l?NBXfZQ%TMm-h9iN^*L2f!|a+QB4(UD){)rj&26!EGV3J z0-u%W$^LkigX_?jgTpjCCMNg7VD2A^txk^qYQM!`(FvJ^}n%cCJS@t@?Zcd7cryzCXhp228)-9y5P`3u8okr`%Yr za8}~lqi8cAhzZvPRy&)v>-r~B?4|b12eZ~5iP*#`wzDviDh+Xp+}75Y{SY+ge$Uw@ zYO-|^ektu6*33GndAjNP@G@kR&bjL{?p3b6(@k!@dsO!y6daaR9(ibPRxfXZd{TO$b&9jxGi9fSxfYJmd_2}%;74O zJ)Ib?Q=={**wF6Z!F>q_S*j2o6_A}cJb|H7#!D?JbHRK3JHyh8qdmw#g}yBQCHugJ zSvh-4(it>b9ADrskSTBm1?$G5ox$gJGxk2jNy>N%CrR6%*~j;tLg+Jqb-ghAce=L& zUKCsWg6WaKcuC5cK~CW5qPWqNlO6KO)fMB4n{3hv2#0~!PH!KcH5Blmo!468JKdr8 zd<4!>cI(;fX@!k9uoznVz67&V6A=H3S3B1E)eaVA<$g@T&zi4ycGVs|eR;8AfQQoq z7q$7}fct3i70ZSOG*S-&av4DRENmV820dm29x%R-PA3G-82q682y=aPWp@<1u<>*Z$AUnES9%`ijt>tzAGra8V$mC3W8XKAgH(WgmFbm zgs+yzNrv=@D5m$<^a^EOTb)sxaVsFSXAgm#Kp60v{1TqC1u*Sj9oYKo0G1F~;5x3o zdDakqX`*c34n*SvnD+Jy_?3A*%MJ%)x!9!d$t2se4!(S$OxFpB&)3y@SzZ&7KouRnkkP{9%^6ZNM zZ$t2dvzTy|%XtFY53?TZ0;)Q{+e!WJ|0qnudrW~KNy8WTy)Z7P!b!IZ6Kx#m?gH$D zH-X4LTrJBC3Ikrh({Ch2OuTLaMA`3jS_6u!1Vh-%N=qRskNw26?R;5r$2^=1B*L`U_e?a3J}$uHI{&P z6+U0{5hGtn-KVQUgm1cM&t0&islfxW^U~~55}LlLxT^}hkN5n zbq66DEF9KBp!P&Ni&)KwTP0CHEB)}@qQE?qpX>jj z>n)?A`rqhL8l(l3?p7M4yAf%n8>CA@nxR2Ly1P+8P(VOp=x&sTp}TW{nK^g9zyH1K z-Z%ICtXVVXeBycb-p}6DNE3!_8&-rxV=D4Zon8VE@8iUL92D_T-ZvO1Be&BOD4`D- zlo+9ZO&p)-<&k~EP!H)Q$lww9g~Vml>ScPNN$Hcup_}u1U^gWa*InT0=Qe2U5}aF1 z_TQEmy#xH;T_p7m)9WrKz1kbn(+NY!bX*tqBf!C?|6Pt(GRLzXU;P)Na|G-_EfV#sKK!52hoZZu#{Ekk0DA`+f%R4X{J#h+Yl&%2DKU@8vi#YkxWhr0WpzS48uvvt;I&DB50; zPgEWZOh(*kK4$f~)zd?q4&Gzi8Me`l7{AVaSpqS37&V4BY z#o^5a3M^CSgiBKJDAP>ef5@KfYS3#&PHCJn~1oFmOfDn>N_ z@6_f!uN4p?weuQJptes#_UvxGOX{>pBT-~(M9J6FEn%>1=AXwfNywR|@}Qrssm2pa z$(>5-ZZC91^gQYRRZo;dap4P~lK(&bMC{JF)}KZM=aKoupsh5E*T(;&q4>|aDm+%e zCxI{=VnIujZ{fpUr6_t*M6gar)A0yj0i{iT!Rnict`#0!W`|#I%77s>4OgGEoU3$!qE7ZxH)@ru>jMK1yT`;d%CVRr*Qv?Lc&53p!hej@w`>FV zE@#MGE~A+KvFw&5!B6ASWN}gCkj8;C=8ocDbGLP+S zjSQ@}ds?MIzk2;)pk`KDyl=fproqnz>s5CI(jQh2<%Q(ci}k2zgUsLn7x0u=R z#Ja(UvIATCJ)C-y=}t(#?`H5lIIu^-{49%^pdO2aB-$Z4Kw*q51x5F(w>0fD4yZe~ zy!xPnqs~{`^fFH}uZtfNba6$YJwmZ_Xa4OGONp#ob{n2Ic+1sN&l?1*vBZ!nEb4c6 zm^mi?s#t%E3tQM-kNb+5w<@&>Jn256myb}WM`nNc63f{{^Dvw5{bLgI9qw#tflcKi zE&g(_-k|xyfkaM|#r?aQCz%J$UsSH_$Y~RA+Ywsr>X#1_)4A2=Oi|7f2L!zB=#+UV zA_~nzZ*5H)6+gA>Jn23h>O!$-4cn%$__&$YO@`*F8yC`kHsWfK^NDWWpOZdHJvI?bB+F~Fpmuq~dM}^C!BC=(L)VO^TUOwi`X0gu(48n1LpukYVRSFkgJX>l!UPno^5)X5%^< zTwCZE_X{n|AzAvy3liHSET7(`jm52^f2Nb?s*_#0siztw5Ru7TWzEW0wHYhyQ_ zC&d-MB&yvSNKq$KFn5G~C`o&c`RXI|o4it6@E4N7{=+7z=apl5^j{{DMsx9IJ>vRD zdRePGSn{oZ>~0A3zsH?ysKz(_n)rtXzaArSH(5d>c|it#b=0u6gg18CbG>T}ivxcHVP1 zP3>K3S>ySSZS6w*=jxO(_q{;xB_O8mqG;8Y2ekx(vsVuNZ%w``Pc+exEIKxG)X`|pgro|mly}h> z#_-^H3cQcu`cXz>7*R+`E@o|wnJ-t;6oSgjzt#m9r_;VXlGqX|ZRA#61`3}KB+q@bS2+#w_vR9I^uMS_>vW!myfxF|748ra*1hc&hPI^5(a&= z^$A&y*C&S7(y<7-qU%@&XlV?_tsQg%%I=d;Z2mmH{jWyp%#eWnxk8owZ*20l!h?6I za0j*ya>G5eQatUI!i9xD9B{B3(@n!o9-X`cHLB$@bSiBXUJvy>1wJT^Jb}E@c(KCL zaB-)Y+Bz*?h=7!Jvcm)xrpbs!!`QA?;y+P?DI@(@d8*kRnD5*ooVC)>bR={klV z^4;apv^cu4LYZ!MtX;b3Z)0Wl7N`PC%Rvx4=~AP)p`dTLkM6W%4;IM6`9p>zd~T%0 z>Pqm@V6Ki-X_DE9Rf|#Y2f!q-nAD2@d5`WwCK%qXDJ26M-*@`0(aDy0C=*eudvsOcjY3^@|drad*k zSAk}0R)WOBZ|vGU&vU$i^m5G$(I~M3Ro01F3>iV?-UWqMttTn1zy19ok5-Zoe+J;D zI&(6fmwy*q{3LMBq=WHYVf#8~2o=?57IPp>r9~jn3OZxRt=6sUv9Dx>;%Jd5!G4wR zOn*xCyf>0wHhT^gL);(Lj8pl9^|i_<9wt**L$ZTtHBM?--rd66UB}3(^%GsK&Xhyl3|woY-b=w9h+vP{ zMb@vrZh|;z{$%Sin7kkpT04xnv&EoGX0{OIKztC_fgD!lb^89nqdq_VW7IF`r4JYv zk=o2{$CczaR(aixownWMQ02+x|8*`Qf0`(9!Rn%s+^>C5BnRi5n)@vRblOU9FlHBt zW*>%p#&s~?)G=U5yygMKsx%I0u+a$mZV04L%vD&TnA%>sBwDhCmv&zo^}1W_HqeIl z;%twis+OXhxf{`Wm###mwO&Ub+k6(fE*-=tq7?3a^}-T98J4GfNiQM@CC74oY*7b) z+Qu^EH!Y58Hx!mXAS#=!>izQ?u`Amk8Jo9Yb?`cJeBpF*l() zqM!FKEZC|D)Q&vxuJxRGh%dbv+J?9+@?b0IXcjwv8`(imeIE0Jiw)nyIk7qHRNOgy z0KE${lZX$aUawr0TakKlBxEXem+zUJmEw`*a&z5Xl#xdwhlrEreX1?WW(EG{rPwoB zzZqU-42}^%smKRUAoLD)&*6*28ETM_q#81;bdbd5PtaJ0%#Y6QFLZh4IKRXKWO*`X zs42jo(s&A~A#G7ll6KE1k{PwKEK4{^y43{}s-_IG?IoQrR_X5nIh`V)^*M*x-R+Sb zHB;z3A`c9dO#&u5&+h==lj5ppk>Y{}H*v z6RymXm*0{eotTW%W=CqTqFiYaOL#kuQLqYs`p~%9ykp~-urJJcKhpYKodrtPlJTpB z5Alz$|JTfG*SJiO%%l)k@TEr3xNo8fl;h1k>}6akz^=&${x%6z`D97}GSzUPhSUEc z>0JohQ-Oou`YNw_wWP?-j(xW!sg*ROw6@Ewt&T z=pK-fcKdf@p`-%^KBX14kLFlVoIw!E{>^J!dVD^VB?gGj`=maj6Hw&I13T;u=f?Y^3kN z!m#0h1DkEU)`CthxAarHsUJ!b#T~}(TXG0wdHPSZ^uy@TThp_y>e6!HV?xl5n`_(g ziA;@5)pPYsK(H+$pten8Eoon5o z2Hm2JKQ8sv=fIW1y$$J^C1jLh`5LUZgaGM20q@^qARws038O&`XbhF8FT*x51hKww zDkfh!5TMrZJaHy$AILh{2hN_3@qCs)*w0m&xy#za&~_?pD$v~k1c}Zg>L^2-?}~z8 z_IL&hHx_a_J0Qk1K#ZWu2P*`;e&S*tN@PhcZdmK(XhIP`yG)@YO&S$`vT)6Bk`nJ+l`#Di# z_(-Lh$5;BAsZ3F2oBH}E%JQJ}PW58bzQbkYQ0yjU2Sa{|29@4^1VNxCQ|&J|CGdOGlzb=aeCfaDtC+6ji zLKELH66ane?8#wOaT84eXRgGsJ(2hq!CD~y+bPOzTUlm~ZjwciF z@}EgT+>`TkZA80eMMQ=*teMMIUS2E~7P%Uu7+aq8ipMf$pt_h|2`fuS2VvySVy#BO zwa1NDq-yJyvm(C5fm27VvDC2)EqLlS>L~r)^4*K~8hmsz&=8<_x?GvM-ttsfy$bgO z;=HkM&KRgK-?;_3UA=jZQvPu}jIXTf09eIQQby@|_6ds_B@d-*-Lk`;!wE=Y@!bB{ zP{;3m14>2aQu-iToZ=XOpZ?@ipcK+JFI8x2a<+^ptw*@Zci0d|82#Dm7a9?{=jEVZ z!vohK_sE4$2h8uliE`PN4+`m|m-S6yWHPcvVXX1ipy9iS(sJ#zPeW7$^GxIu<7m7# zjX(HSaO6Kqa~Sj5hg(Zo>(nYvh7+Y_H7YV503PaK`QpQ z2n)662cWlhYZPW*@%f%?Uf|6K;^)X-q%Pu>t#n35CG%^geuUk_;ZILbQu;r^3DcgS zo|iC$q!Cn@qU&y@hQ&1W&wNLALasLkm)gc7Rzs>1g_RxgMiCxo_CdhzLt|xQz;Na^ zDIpE+uc6dpwpH#BW*qUI!?^*XUvDL45LXU2UN3zR_Mb=GL+O71+-tr9tauP*AD%!4 zdKi!HHfjiI;WK9Yw#d$P{vTx*%(w|qe$DCLV$R8K(=7_`O^WQJ;2|YT9FlxAC~NxE z5xN9``#P(suPW{8dRHB`9G8o*9~*9Wo-FlfOXP2Q0!nIuB08G+8{{9q25&zT(O-7~ z=JO~UF!%`8OGTS={?y?7a@)+ER{EL$tgx2y<=hxI!>i#&8KIa!u@JfEU4^pJd}{jA?=q2ra$`b7{X$pg z2?(15?gpo4fWs6Tz$fUl_6qRozn#AaS5kk0*n}rEm~U7GEWfFCA;RrNW1SpV%QwsA z5<16I46t?V7@k6VCR^}3CtBOI+w7QFR_9|HV8`RwM?-G7d0O@`lv8?ld5+fOeb_==lKxSqn)!!%hWFci#pNJX ztB!YcEiX{2%YgZB`2aaky$yQJ>HkEZ7xWQj<2(^+6a13$de+H$*apNw0#0P34^=&` zbvNNUfy(6j1i_^abtkC5N3708{zL!HX)}~3G-Q7B9yGYsOMsD62dFVp?-biser;H znrQ^+(^Amok6d%^5!Pa>-$Sr}?gb)t``r9AhIby*{F|vNA3a~FeMo_}yDXhiyTu=6#Kw@%GX{C;y^Zq*vIP6e3B8Jx9S77R^P^O+T>P~kq~Hp) zTVn+$ecUL+_b)L~YqIvr7iiN}YJUkoB)=jwVx4KUPsc|%y6=Y7Iz>jy-~o%hv(q6MV2J47zkf=8#~vcx23HmD1NKBy{}W z%_l3>B_C1u=#32)PCi3X6vj2fuyBdy-<`>1`}BEw6iLchT0S zshGKiY~GH>Mc#2jH&WAojy4AahS0u3P2?%{o;DR6PK8^fZ|0@=)Hu=8ekQedn zra-C(blNc*0$%3tXWxGPY~!D1iuvzNua{CgUiGJc4&qY*0At=K@U<^kZsroydSa3Z ze4TPaSSY3J$dIw5kg{NLh5C@7c%qN*S~}VOW{{(UeW9JU1-pLsGI>-{GZwAPc!3in z(|wsNm6_0i|B7Z6v6MYN^Z12vdOY5Sqya0OtF>N${fL)9CX&+h*GV8M4u66r_b)%|7PR#k7|r9~dsp%sI?NU^fTA zWA=#&&(V_wll#vBe(y)%vV;ck4f1?H24s+h0eu~K`@zqRBYlT2QWRF<`If(vme|*s zBt10~tKocu z`qtHHpHR&QLg@B9BzxMoOJlEU5}@Xxw@SKd5scPHjO_zbVs*RVw{fz-Qb#-|3V(Vm z7gl8gmQziX_;yhsok26qX(S5ePBUtkMFIfWF)S+^1J6B zxNu;A&uC3$G+&dyW<`ON_>DAkw~qw+eyDI>V>Si|0J@WuV9(PRrofZ zwG?BrAL*pE&e1R5WmRH{V_`516een&{Y@o(4We|5^Lcou6pU#1Fx#hUW_Sz2vvHUL z8H)i)efqS3j#|n&kW*(`+b5n}H5Kd~th%-#w+^P9D8;@HVM$`y#5?%?y40$1SKdnj z#;ig3Q<2fFOGIIzkTjX>IS_ctrTwS%4*2%=w!6MV(r+qpTbG_}Tu7yxsweefYe)w? z=Li-CI-Oy|;-N(%U+J@G_g!-N(0=KTyQ#XtcrPvO`*gh#5?-mJlb|Fm&wCJU;lE4z z46;i^3}354KPF8jsAv`5Ju7Y1L-bYdvda2ird+OAuqlBUBX%5@RH`oTgmNyMEzPc3 zLY+NMhcr4O#J3@qlHG8{^g7z;pz`<=Z_g^bR2b66gIVL`#P?(D!@P^l5p)ViiVI#D zGp+9zitHq=?tsR*WuPpTX%Lj^zdr|v|DaYD97OpuKYc&}0clO4|FIhql@b+u2+^oP zG=7bn3=gnH1OSDnsovSoEUA4X4goA5X*5_G?sUC-Hi>?7l$?u2YRHi+Uz%cD6 zmm_}4RF|ZiReU#;+ts#Bi8GZx_44kox8Y0IXh-QiJtzK?gMIrkPW@pmrlq!!FK&5q z6dSCE_6>pTxO~c9FZQ!>+DY8Se{S@mJrO(ye(t#6LkfL|?o_t~>Z{h)66a^vHoH-FX z6{tJ83qJWdH4D;dS+v25pZ3o*HzI4M*I}Ik(&@worRQ^j*IdR};O|T-*w_R0gAdab z`0UaC>&VNu`*h+{pmibj>7nhSyVjqA&-M44NrM*mz6erc0(6oNkxku23yaeeQ_Yoa zFOT~6gD%LD|Lw6ac!Tq;{p06dML}xy@azTH-SH{mK#cswJ->AGk4wF{KqND)M2GN{ zSwNMP^_@P{n9>Ne>?%se_Cqoidn%a!hXYXnNE_Y3{44u=6v-CfUYTdy%~0M|!ovn^ z1hrA=B=ye{FKzZW<6;1ryROc5*X@ILAhXE&7~1iRT5iuwE%z?Fk|T#e={r-#qK}sc z12M}b1qKC5dadxo+4&@oTOg|3TVfXV?8=uv4J}bmCeKbxL(q#(Fz!Quf&kQvgQ2&X zFI-K*s0 z-BlY2`-v){4(w*Y7YiDflJv1#7rWJe&pGq}b|{E`3vcumjAOk3D!}mC@*$iTAbE6k zepwp9pcod9h25ytaQI!!!qeVRER5bTEX9yxp1FR~mXlY37_KOQN%G627kL z_j8`FNrC%EI_Irk{MiYhU^6ueGw8gC1HMIUeMXKy?B|KT?iRS-UhMbJb_96o)h=Ki z8xM39@>g1zhEiHgj%kbGZw`WgCA7ZAJz;tCyD%|CY~4XT3Rk{dq*FOplv+kRvreeG zv6BgnDk#7ywh3mThX?+>w@-pr_zkGPgn5%QyX6h;(9+z3>`Cs~1iKWMy;7}q>`csWHA_O$@}<)_JIh=}Pu z5#eRdMgvEfT@qbN7+E^YkUk22L3N+=bCUhuI&>x1XQPV2JqNWSC-44#+Hdvc(JIOd z3g=QJKXW7%m)V;TR?fXK)l)g=S{-H1|E_z399--G{k{Y?ufa{Z&2~rti?|Qz^eg5M zbl07oJPA@1q!-HEt6#wZCh*P_XxSRz-H>U?`-m8_Rz*(rDvlJn#?1C~CI*L6JHHa{6tPCyx3!VMRD>3am&1^ulieh_&htV7sqE9pW*fr{C2c{~gk| z5;73U(opgTlqJUUK;d|eqZc#II+E%sy%fIlKrbz^F_>+DmCc2a*|~)Lgjw(|0P?XZ zKwpS`ANbo?jWUURFK_i`Yi^*zmDK4RTsHPm^YeIemxG<77vU@6j^Jb#Cdt&|CR7&f zUf=H7Rk0lQS01RMQzIQXnjosMvb{Y;J}cJAJO=-|@iK-WLqd6hKPDSa3; zi|2~IT7O<2hpL!dz*EvslZ3tC??-P`o)tp6=jK)o9}z+{S5TSYu&3XmPem*U@P{oh znS3csO9EuCSL7x(NUngLZ4VFlZg`#19N(&CqCt8S(Wuy81ymFOqk4Yd%cF^T6dXVAcK?c%i@qcoop23#l)KAa!tV`Gdzn%`pght-KxRc{Cn1 zFQ(S+=yO3x5{WuT>tusAl?GkR(?mdFzRYyp@g_ND%B%Me}A{WjN>um0kbF=ymg!U;9VX3Hg7E>uOQ}l==&4Da3IB zLhibF#t{VQ+rPzf?sD6njK5Lhx2Gg6F4`Q#Nph-_SKQ!FKZsQU_$1ZotJ zR08f++NUsbu0VNN01}=v>p=Ytz#HcW z0LHg>s3;hX>@;HG14a37pFP8=yNQ@ltNVTz*tzbeg9a@Xc(FMd+(yukJzgp54!kPAxT#@?1!qb`A22pP?0Ihdw%>Um?#Un-V_bRC} zrINP08cm8Sn+r=y2HkFHy(Ea2O1*|K}rXSGX1cj~_AZ)?< zm0z>)zpK^RxBfUS54~qQ)`7rI0;VGzExUuHU_5$ri>6b3&dsG3T8(E}rJu_`v@RB( z257$&RxHYmr@~!U#UsP7m(yEe(nMNy3Bq)=sO6Jr5K^22LOgY&#$`haZ*OA21z%)OE<` zWd6=(|Jtyg!0U=pKukQ;ZW*-vA71=D3ub}x<7Aza+_}0|( ztVCv+l!+5adoa69$j1t*1cpkwfrYfYH8b$d19yrlVL|4laoZpzp{`FbzWv=NN~ltBy!nHq5+rGLVlmm!!b9+B^@%eY+M0)M5@da| zV;P@xmI)nM+Ok<6{xy&^QDIXC5-;SxmfTON_htRbG6eFjY{b3;xVB~D8Fdgz5=FN_ zP%SF*5L4kk15DHqs3JUDk{!1^>2>D;q}XI=`afn{wtYN z-$B@Z9T(|p$Q>89`i!1^up?z)GS#}Ap*Tv5_LK;`+3IOEBy|0C19oZz!wM<))LU|m z@2paah%6ygy4yeKx6qFJO_y$Q2g{rng=Q6X8(zP!MQ*T%KYXbfDwr!2ry$V!TQ)P$ zE~j;x5Ml8*FghnC&V^diLEjmfP_S-t^YzgC-}O3}=W)N&ph$if*Y#;(Az$rt%RY(g z?;CIZ(X;CLyPsh@R*bl5+ZzgdT$(rFp@tX zip?*J5MPpgwlkzCH`eN1Nf;k0Cp3;#Qbe(RTTLqZ;`NKE*^VeQdShauHw)918!Dxt zM;{oKnYYr%hZERV`!8POwI(H5j0wEzU+VZJl&QWyTD|!7Y%49}#Y?ix<*ebT_A8}E zE|vPA5}p=ELPxWP*I`V}zl51pM}U(rWJqIAU4uES4XL4gsT%*Y+2)-zv8^ZWQkI5$Sutsf6AD>O|5e z#GgES1o%J)fP)RWuR-MU2{4r>sWx;BKx-(sG^64{5h@Y8+1>Sblj z0fRi$z%Wb>XLm4@g`Xo|EARPW+V#kRDs3lq5?1F3R=Rc&HP^n>>EeW>DjiVQmfY9I z0Gz+t3q%HQ{MUIz0}$$Y-19G*c{3Qqexc5S=ysQ5Yz`Hu?>pRE>G}>g zIYz_bag^S!CVR6tiH?Vs#$>MDz&JOGWIU4FkpuKxGw#6h9GHM!B%-5vVL!SKP0IUC z;1L(M^!s!_d9_XjUnR^n9Gu*Kv|WK%3=6aYqU`D?MFxf4V{q56_1$W}o?&&fX+;<)!5yqB+4Daq;I8Y-?D!zsC zHO;ulW>>EZqD7`$0b6z%`<7F`fWJs}%brzd6Yx?VA4m(aZ-oe)w1JDwWehOxpTA?b zd|_miJJALtk9|ucf>X*$Iw8=`vJbCa0~8ZtH*my4`|jzdlo`oNKOd@HpnrVhFLU)b zm!)7s|4k>v6x2SiK@_iS^6y>Fg=(VTA5xz53E!O+`v={ajNc-IX~OExFw!z1c>NE5 zzy7v36>ZD2dF4!)@8ZTbvLJe>XV|(0%Yhr27#|`W?ajWbr`TOb&$*tZ6bZp5ym`|ll%054kGN12pciaeG^*iVtZXTa+`Xjt z^A9!zz=Kxb0Pe^|sLblQ*aOgmY{~%NReup4)~|uA506Qht43iD^v-Aqt#U?) z0z$)a_~#16RNKAh5yEY92Z4$xyj`0Dio?jq_yy*$#%n3)MUahfc+I_Y9gpJF2}qUefgS)8?3xn%Bt zvr8;vk=G{dn|cLg?A3LTO6lo;wGU}?rZ&1OQZ5(*+>l)&0(qp|0xm*lAO?h4uDkix z2ly)r?Dsnh^IZ|F-W|kPC><P{!{78I|qQ&@^Qq4&%A!NKG5?Sa{FWLax;1*)>Y2fsittkq9O zw%1#d?*nxsWv0614#v;Z{xA(Z81p zAuQGF!Aq9k>yFc2uCCG~GuAo|owEGc_B)8wd%*F}(gEcMfjeE_Xx>ty-nXv1nipTw zQvoXkgl1(p7r1npT0u5ix_}8X+`8xthU=c~Ry*AuV;97bM%{|CE{fEk>sOr2w>YY8MxeRecXrbK#rcs!SV$eU4NDghpuy8ar&4B z{xSbJ|C40tncmR`Al#B6u-Wr4j6h~s*%^crDHA;8gw@~hNGNxt61It4I6tbsSRN+g zpn8$S%IJ9`Yhuk8!|Qn;`aYm)gNQnu%3ICtu9GYE9FURVBh(ke47FVbqG0rOpPS7l zkw}9epaP%F1rA+G7`Z~tdU&h1TB&R|_~bO%NW)tMyuG6Dv5HO68{y-#d+X9Vth2bs zlyo0Y-adb$N*)W<_QqszL@PfG-Hfw+xl$e*^f-rOxiK|JeGOJ_7M()bb6UcnmGU@o zV?E$W^AVO4XFYcHKnXo>7{K`Hifh0L)Ju)=>9;weG(y4a#9QEFWDSPLr~{}VoA4VI zh^gJ;gCQ%uE1Sjyd4BLg{q>F7C_tQhF7B26{@Q_A4}cJFgGXVY0pc2{8L)sdgSv_%D{+N4m9zHsjP_1j}z;!wlV6D5BjfhKHZNdAPGRS<)% z#&w>>r!ayI`R$?MZQZk~nxwMAKs>UQKLqq}MlLKa(ZJnY4f`b?#M+ef<8Wf^=-9KE zgDJ6TV5j>T8+K)E<1;qRD3sdva?Fn=3PI}pbB!-rR78RwPl}=e!b?bT&lD#5D?KE9 z0tXQ~e}ozEH)$Zw`#oZRW45uwHHA{Y;?f)VADrL4S9Jr5SSK=l3(*7?KyrYupW*9m z5H4d1urw)i@se6oz)k*yb5CFo|0T1&vkZZ_wMj5~p%aR=Uks&k(9d-L=sIXq6;&II zUV?`#1*qrQ0g2XT-2D&oX}uPF`9y2T+htER#p*;{)Cu*|o6oA6$WuyA2YM(uWbPp+ z&?1E%pydPa1DKfPp~&uN8yEKmfhp6Nu7;+WvV;n3n1M!Yt_#81TKUoe^pl015O>w9 z+oDj9y=asyZUFBAlsBOZ7~rVQgO(poXk_sgW_9rt9fd3EPoG3y_ti`XqZTWKA17}; z3n`|KiiVy!%A?nXWvk%tUhhN%s#E!Z$Q|$~f$70{p*7%3c5w@SLH2GQ266jzNq=ix*AH+-Q#@&r-#2Xr zU_hx$1$fwoMtwKHuiC*ODbF9})u8S&KyKC|Sx!u!Ph!js>RTtQi8Mm)iO zKi;aSN6-KETfhap{^?+@vg&z9%{Zm?*+1HX!dq;q7g^paeMSG`&v6p)VEGAud#YC` zZ~WBX4<74jO-IVTs^&E=uBU=94Jq}P)g-q@PrxA6D(C3vXpg%u<*i-h-@K+gE?N(71Fh{n=!Cy2HxmAN#(D-^h$Q(R63a%#$A|=}#t&OBIO{Ju3c^qiIi?{@}A;{&ap%$|bzMH_tXNfED z4x{dag?^TRQ(dPNpl)F@3H(}-euL18wQc!_{qYE7>?4P8&qUBiP1_-~yhB0;8O{dt z7R8LXt;KrXyV3^ww;J&bKp#5-=$mdILD-nGd&r2EjR&y#GAO=e91g1M%tMnEw*5Va z(qOPxftD;abtaA?`N^doL-he8Nf)mn1t!NnK@_NA@9FUz_%5gQn5zC zgKC6y3)vtj#OAX3aVRoFv!TWwCVE#yLlwV)!-we*_A;G?GQU@DTlbGux37UE>=`PH zvj;i)w(ekLD3QZ2Z2@)~A<{-PHS%0a-KkaX{AUdP(tpN?V*R&!nHJLO?6B*{n5N4N zVnO_$4ygAk1M!r24^fdI{FC+**b{lz2_J*b?SY|nzcg`!Rp8B$$th4i#bauA2K@dF zM1OBsX-XLYV*XJL0ss2?bdiTb#VOEGt5OHHWp2$_WT)nln@_5aHkAAOQa!P+R$t^V zXBrlFUsrpuXveMDc;C=|nO?KViJKLzW>69B@2Go*fKwNsQ;9kUX0iVO)_47{9N>rm zsBa6{P})XBlPDQXr=vJSh5cj1WUt2Cwa^S376V=;gUYdI2~RfwpJQ6tN_b1a@HGfo zJ#$724+BB_?vDHLGhsXPo~PHYdJON&!{NRujKVfH$yd6m5|T+1J(^blH-RkD%kSkm zpyN!3EGBVW*#XEPAjoh1`4%PdvKY4+|$ZPXNq2MX--v4{y&v2?6Gk&*zp&z~dza|?2~SI3@>(S{jN zE+Tp48%VqHY%591cdPp{Xf#>5hU!q`)Gmlu^#a64^gz1 zGi_*(PX0h(8~e-@MYUnk9t(tX&P4>S4y}tUB1!MXX0yMV; z8p;5zxB^$H1x^Q-r_Ct7A5dM8O<2e^Q02M}KHGw)odSu#&^4$`{}EXaQa*yX;OExB z{!n}n*5c?D*pV<9irT}X?Tq)XXc1r4J}l@C&DWc*+a&B%5}T#yUI!~9{pR2F4@6PR z5}MsP;0GsKN6CCB!YiqR$#|}yt*>+2#s^!xMV6r}F^I8sQCDgcyuWZ)XK+2La7ya>B5>bdoo)dp90Wz+o_>xm3R+0d`;I26=?bLj=Z87NH@rxJ#IZ8Ab zyS9FX${xHTY^`!dOSiiRXh{qJ>wgm8A?ih-Fi6ZtM3yy&Jz^^F!F}S`*Y@VL6?SZS znb@QUgK)15?*ME`fJt4}C3rx45?Ta{W}MmuG_g9)&z!(dZtB+sPy#yIJ*`ya58|2z zs*sIo3HK?`@(VaU0hrY{vKt95G!ZhAqx*NCyX*e~Dxq{7nt;V1h)jNE7qqGdfc6!W zmi#x%9|1+-!IKjY&PUKCotE54OW5aY;I%gLqX41WM*$u|HFWXtlBC_D3XO6I+JSLuYj zL{)v;$m6=5lNgYvuHfV4gmeNSk_OyskWgqG5?Poc=({tUxO<)uYPj(fb`)~hu&8p) z3LlujXiD&uflqjW!Y@mrBOTe{bAz`T11VasSPmB3J+^T4$yM_Id+zcF{HCT&^Ma!U79`vidM! zcJ#j=VXv2Q(~b+Dj743(0WMva0~cME5G>Y4G)j2l`hh7SUzF-mZ^$J9YSL`8nd@!fkb|f`sUlHh;{2Mvdb~ zn7rwt2>4jJ(xud_)g#4{mNoeWiVKUTqT$n3>3i@w)&U0Zp$ZrNMs>X`tR;C1-WmS5>Fk)2%ty^bV2C>>|=O@ z1f~B6cbjdzF%yv_a`Zb+8p7b3%GK(Szi7Qk7R19uU1+%Y@)~_rNl568nZl5K4}m$A z80{y~;&3I?>kOmvSFu{S0bA5s18dvtB7{)g4t=U0bw=TX8)&xB%~rt_chb}<=l@s- zduP8q<~ga8&+L6ZuIx(jKUWIu9??JpL1&Sy3?Eba3TRdtp*30>%vBQHXNY%&pFeUu z-U`J?Y+hC*pPreWlO=3RJ`&QsDj|Pr`uRET==Jx3(@I}|vL#J%>jhPGVT7puP}-y- zlQ#S7Dz{?(JaCwZoyZIk7ljNdvi-9!%&?(eLeRsI{Qvh12Vh0N!pnl6~4X-I-VcnnH-o8ZH z`~EkF@RdiJsb8WCT7*j6{*Ur~jxyZh=2>>`s|}L_INf~{>n>)GB;A;|NJxxWbF(|eiAR8ns9+*%2+lY4z$Vhr7jL90#Gy?Gdn)iD#Wjh zd4KfF|8qB_s*6Cbh>GlJtDQ2G@h!kE0s^#{RKUR$B)1@){YG3_(|793K1Gi8Qc->w zkxFcP9v32UxGocu+C;g2L~bT=ryDx03$kr})LXyzfV$aeXA2Vj5Qpo0_^5FZ2R@X1AZXo1Fr0N|{hg(CHp zxNrQdRlSsahX!?nCyXBDVI&^tzoYjjiya=JJ(Bj#zbf~qlS6W_QG!v<<8G~idJvaf5yAuQpMHyM9gr z_9E@W1U+MHL`RNHkxe`)Y~g|=Mq5GN{F35?fdg=xHV;9eA_w&n>-TbCO`{6TBT4%?M^eerfT2Viu?(CRqUe zxE4f{^fh#Dqpsp^{C_C&J8<(y&V?U`5T>PwNF<}Gv5r`9YC%e6h>^S*;mHwFbL;r$ zxm_?rA43UgG16lAuR`v}u(A3tApatQSkh8^(LPI|eEDlj({5_KrX0Dc6BZE`6WNnB z8%ic4&bjal({d~^fRwi!dBJP|0nH=lfXP1rAdtWR@jo1tEc8*naUW}T;fM2L$jMeq z(%xQ%74wAh#=n6fOb=3&Hunu;S#u{VdfzW@9Ha%LyCtNg zC51yum!yc4q=0nCp;JPTZb1-1K$TSH#Qov~#Vxw$V${)c@IgLr{L6g~Ba<7xW4QEty*%gs*9G;2sOTQ)9oDpae{A>9 z1U9E|_@V4Fpk--;ESFBQQ-vX?VpzYMF;8G3=UPL;`}ILi8N#HpUXC)r-@M@Sh3T_z zyTG==y~Efi^}kxiZ2SngfdXhbD7t?SU&i#8d9=hw`RO8lI;c*YPT zk$ssm^xoJLu!C1h_?W{`trmd&5J0oc=nfoU@BlfO+Yw~-5bYy`-ulxndi7G5LRJ4p zUKMF_gH+&%=9_g1@GjHHaJnC9_P%W_bHLhiJ6$EOL1WElP`kKEh^&1L@(29j?;c9o zre=3PE#&7BdLqh>_FdOZ=n*!KI7Exyr@W4rTC$)C!n3+2PD(e9LlXFMn(iaT48-j` ztPXNY+ENG0=6#w}2^gdvQ%9_O_kvA6(1l*)*annVn3@%-$;9#tm>M;p+wW-}xY1O< zjAs$-dIbrRM=RAp84xEx#N`Tn>j9?q_05s65pXX2QvsgV{48-mM-DGK`29uEqe(dm zT)ffOQRvw}XYV`+H>%${5CrDq2TM8&f7FQq4Nc{)s#Nf4pl?h6n*}<>U!;8&DF&Y z3I~uim11wgp)>bpiyzhU6cz;p7}}>HA>rfc@^^q%@RL6O7b3+)eOxI88yn9Bt$&9H zUxlImirh6sg+XE{e_!FHp`<%<8Ee3-uwbOgyP7Solu1W5 zMvo7R2(W63ZxwP_k&q_AQddvVKXyP?^CV|S5=`jl5g~rsC6MoU0Kq@>HL+zivkcX#>n{qAt(9zr zDK$r*6`~T{l6)yHK%zUkVy~|Kl;z83mVQDe`C~m+WEHgo45H|cxX>Z^2S{8I4BiuV zjkTZcfU>hYn11bldmtW=N3AM-T=Z8n8yW?JSO!gAjB!^_sldteQaQZ~mRs&vDW5eE zb%~Z;ezV%gKAz=YsiJjn%;j<)Z|i|Rp}mf#**(tKykQ`;$Vt0$!bJcDLBPz%hj%$k zOyBtJ=O8}<_7!J92sJI6+0X5U^-qeXc-L3v%{<`&upj8B61);K4``kJm;yJ&i-t3R zya}?ar~K@A)XY?3m})}sn>wuvhJatYd8WnjP0hKQ`~6~~KLFh*oy*+gx~pFyHv^nN zXbKux`ziw{0~JEZpIfXZHNx*UP&W=o=jy{yFQu^1I#l_=$9dH`vH#*pu`AtPUJXl7&zSnN5>g9b7{08 zwsA>ZxGbPZOv?p1&T~8g!r-t&&j)SmDNy-+Hn1K6-E7C57>P&zIpL~X%en!6*ck|U zeJgdA9?gnBdOJXiQnWDW<&ddV^1BmCTQ7UOfdS=8E0+A}-GIUnVu|V&Zr;UWNz-H+ z{6(SR%W^h4;+#acq|9^Wx(QM$R0cPs!*2!+=}tpibUP(!`NYjs8ymqJS-W#eF~uUH zo0Qb7e-1*FL514DU+-x|sfbVP(0$jkykyp=h$=A-Zo4-z2qzHC*})wI44kk}VLyHC zK&zJJ3_5;GRR#^JrDAkCV#E!*)=W9*IwwHbv0ZladO&@{!$@;H;L}+934J1-e#V!Sx!UMWbUr?6$wcFiZB)l-ZmGy^NIxP3$iTumH z(jAUZ-^*7Eaidt#T$NM);tkI>PWSd+7qjT>zl0fP7HLI*Xa4{o3->Df3-+WDTHG+) z<-ECVt{}Pz9xZwcGh2zgHE9~bm42s_>M}rXH-%)Mr=9pFMs_doy;ksS%OJJxg-Fsp zl=^6LnBWm-C~%-Y0nogb1;GlGUpL3QeIUjbiY|Q|fB&Z|1jX{XESKuJ%%EcN&QBk0 z#+J#N(xYdh`V^ftX0Jc$I&Q==6u|aY0wrEpo4EV`Y!t5eS*{@W#M1g8C+|w}{iS5z z-Z9TzsIu!?!g9&$TTDcV6(yS4J_VsigjIq)wjKZJ#kK}Mg~eO<^b@>oLF0{#DDjRJ z@3vpv^*C!T#qn#Owd%q>tr7|AN(m#yxd zKfi+l1c;Ke9e_#BRMhr(#B^c;8()!RT4G-l8RCps_OY3ikj;r5*sT%lAlWuMIpy80 zbh<)fQh?GnZy}}a*gfKKd3iu#2afIest-Zn=jQ~4-a?epsoa;qPeaFJYyB9xm9Vno zcj24Adxxx&Xb|m`H9qbNGX^-{oEZg9{PEe@tSO9##6N4DYFERefTiSkH=ok~omgFW z7u7JKBmHKKl|V+ob=U8Zv01Rvo(>oO3F2OnPzreU6T$ zviC4%i-Y0Qwzwrj=5rEW|Ik05iafgClg@fvT1wBppIpBEvl=&q*KtwS6-&bW#ds)w ze)o>ylw)jWAWHK$8dU%^A37earg(bBNjsY|HQ_CAGf#IRE;mnBrA7z5_Gd$V-`$qr zbBv%=Is&%rJ>wlM2LOB~;C;1^;UKtd!~#+G?_z*mIb!TZP1K-n8z)>8u{}I5@XHxh zlzwC7QQ$n~o6r;R!gU8E#Xr~#IKJTV!=c;a2HVq&lRT+rT3Ez_61&~)4&UDFetKnv znN1Ph;hi6ZC&}Lyq`=6B)-BjQJyD42vAUrm;r+QcS!Vdyo`yij&6?O2o6DP=p^kWq zrAk5>O!4Jx?V@Cs0wi$A;*8P58T=KX*z*^@!i}MSjEH-wky%M8sl4=jKvQa;*_(p? zHg1+ou1iBvv2To9SZxrnhhF9Uo^37uUB|?{Lbuqz4jsODgnU~&447ampFxrp5EicG z{#ew%Vvh{%ddnKWuXwGL!*o*9K;<%Y?e}3OGQ`AmT@b>kd~518TbJNBuf>C!uu~Bt z&Gz7?0On=gP_77YGdhIh@t$D+vWq0kab$F~+xZ}Q;pO{-WeX_X3(=G}kqB}??wpz~ z#0emqDZv-mu0NBYpt5r#ZXTA1%KMWOq0jxHXjGJLz&ofY)k~V-7BjH#fj;$-K}4<& z4Jbo=z`ixj{LiJ-2TFo}o67m|p#-KkkNVa|b{aeJ_*&5p6MR2ia+hRCD*uW4lMFBT zuCuXjVnO8j6wGJD7c;DjBZ@HkNpzO9dv_LI6hO5cA7&C_%8vbBlxPH>;Y*<5MY}|J z3V5et{PZ=Qzc_vn89bu5_5AcrW%Hl6e5dULe^oA)H2XER27#MJqtT@ry?R1;qbBLl15w}x0n1XUWYa=`%h5BY*GO8f**!A0?ZSQY z3-%X}Sh|x}BM0S#x8i4dUHG@{pIR*5R5{CnOu2GyEvzyp*Q)3;Y1OlNlNUflhUrzL z13WS_5h#7L4xx~DKpO0N^`a);A?`2cuL-L(WsMtFLttfMi=^f72MB?zieuE#; z``;%~YH4wy)&)r+c&RAl{gazprPPmu!0bot9lquaG6IQ0v2JOE9rcv38a&NdRj;kX31^?z^77r}r@Yr@e_fm=naAUZpWC=sT-iSz z+dVw~g(Kj-=!d?trE#q^u?tOatX zO8{9chp zj0n-Mlep>Mz+Y7?IaC?Pjda4fSs8gS{_yzkA(O{ZC+7t2Zm12&&vOJwM;f=dQiijJvUie4Enwzo#82eTn8z1!a1GPrrZ0tGD4f+%hc(`ZaVf$Mp&FLu( zp-By)DGdi^efd(^FBvq$>>a0o-M>>P#oDJ(1^h8WK|*d`fEac z65CaXw`*+f`LUl<;fmAsyxS&S5}6X}+k?EEhE9mYKe4mSQ#;oiPhPT84*#>s5a7E~ zE)dLO_IwyQSB`U+=L^zh6tctcG1SIrHvw}iadE>P6eImKvQD)gwa%%_A0`>MN0}^H z!QLM;kJA<~-nAHnDUtLn;^?w{;PNrl9GO(rsMcd>dPW~n1lObmPJX28Jj|o1LBKfs z1NCYRhzR=&&G_Trig2~`ysh9y;|}a4eYebr-%%yqW_#Dw%(kA7MLZ|VKG8)y(iYrl zWc-Z16qj{>@CDNxX`U6WK-84hFW%hS6})^g9s5l=bu__D z^xwqPa)F7KqH+IX$+3dCa)fCs=N&)`R-A`}Q5}jp9EoT0eo|+T%p~E-q0I9i?b34J z{|u0OL%A@`m?e~S!vE%6rF#3O@5`2LfA%9OR5li!FS~A-2rrhIDIchJ(htAe-fSid zI-3vB&=7Z4>?Emv^T3E}7d3;j#L%wh|CjuSi@ zIri@oFK0A2fI=8@d5ujn*3s-<$@-r&I|8gS5?ZbXlF0eRIZ zJ67^xVm$$E)LbWNa2Yzjo1FYNCT17(`v%5y1Fd`e4Os$ew}APMO?SXM5+cPn?BJI9 z5sj$(hkfU(Nm8MS+eoC8W=;{DKr2@Mu`sz$&F4m>2*$nX&kKMn!VnIGZ+{Rs$&6mC zr?)|Kw(iIsms4%&l8e~>`wvZxEtMpHLFzB5sJ*F+_28tT_z}L9^u z>3{1X(M{(6aC5uVZ5|8=wZ3RnE~C156c=F{Y?lxJk^4MVd~c}9arp&uLpdH;9Zk!u zc;| zl}hZ!*7|Ikktspr8ycbgTf5hiM%R1!HzaWh5V?CiC~!0GWe2WU1Z6G2oO$)T2R#4( zXjdnsW(0+Ky^iPg#}nrp+1sT>#Wee=%n-k*17jjAB4g{DI~gknN~P+TSd9_F@2F$! z4KXR%3Vk}f^xd85xFK$9vRC2`)xWP!JaS9Y1-B;C#dt)K)UUQwO3W;^6t#pqt=|j1 zJjz>zl$7MGO;8R|dBc7={MdH*Fl-XA-(s+GEw0#lZhFmy9neYfiFY~fS)~-l+-2n7 zjvnpfxqz_B4ukmtRTCJJ3?MKPJ4PIQCGhHn$s}p_wHAI6e74gnXkIpT&nI^LT@k^5 zIva5N7)m_jb_uRF8el@K9Q{aSGxnaPM7d4p%Mw6>0_Zt?d$;KG=@)1U>47gc&!5v^ zS_lth1#(b>$N3@miIhsF?V{cOmG6<8Ck(5c)c45^aZ#wK-v%N``BU{oU}2W6<%rU9PM52kH~S=Uq2>rUhZ;}J+t;s%D5Pf%#n%e zlz!Y}TiAX5C#qXo%7r+EqJ}Q|%G=hY<3z0QT?r(BqohbEX%Xs(g&SDbvd}*b&_6~p zfTIQ>|2dTXdLx703wWH}noZSND04}aI>v)P7y4zKp7BPWhtUC@olY!x%E`NCH3!+E zur=sB@@GVYrg?Xp-DSi3Ed`lW!G*)MhASL0*HR2T8W8!*cO5ObbClIT+diz#8x^=|jV8&w=PWWV)ujX>Z0_S|F z;DitkKdv=;z-C!)@?3WM*z%1N18vG`1JzFhe@bj1*yshx-V14mr>EM=P;WX}bowl$ z!<3WGU}b-FY%<9q zlBH*8>Vi$~HbNsI7ecR*faBp!#P&APJ=T{2K;0ZzDNjM>J)G>ISeP)`FRj^Mj!qAJdt;L))DW@_9FAr>G3A=BTSnnq2yN5ZL5e9kUucw!Xn<*Fjc325;O3ykxphpkr(q zZK?70jPHd7JxEU425hA(e*G4b6uLIy#WUVnkj``5X$nbGlPCJ3)o!r6P{VC0Aw@dx zhW3scS!+IzZScE=G!E5D>hqs&s~2L@BHR_MQXXsr=P*vw3L)MMx`FBYM!=CLW@B$mIbMQNf=b8r<% z=`8yuT^3M#u0)O8*qwaTApFMhJh+8SNF*(#;#6G^bBMe`(ymOAthIc#-)H9JpO>OhF{PzmCBb>5ppQ zd=ucaM{Q7yDQ#wH9Apqg{uMpA83jo&8N{|O{{~-%ROh!Dfd{If)ck~we7kdr8g#W4 z26~fIj{~rX{k)P4qK@uP)%7a`v5a$bT5yvH$ed<3oIk?^Bvq^>b3j^vQ;^6kA(%A9Oy2=*|4n~64rSFJ-`nJ4lW;fR%K)w-{+N9R_NE~ zMa8ZKHVk)NFG)ay0E|q2(9Z@;)vEwHVK4;v5UI6;?Q8;yPWl-?qkxg0e^Ia$TM2CX zzR|2oeqI6y)&p8;-hwqk;6OSTj)0bdl#X0E;52_+xv%!b%=ou6-6Fg)xZ)j2G^;p73X}ZvLITJF`(ATA9W2f3SlT=Vz&r%8kjAeDV?PyLnY6js9 z7(`h>+?52$eRRSIA=*cR1OsD*%WK0rf(l##7zWnMp$&T+?0SoZCbW3bHd`$0`6iGJ zb)MGTY@2o0gS}oWm|nd~|K+HdITDw<({kA<@!I5=;8}8lP3tf2vA6C%oRyKhNn6#| zde|(k_ppsO3foXJIMnD+-wxmkW4VHY$?#)jsXg#S9L1J(#*$#?dnrATl)l?sc*%5c<-;z69N01>~;VQP0NA_m}<6liLpZo`R!GjqKM7*#>l{(B#Wd)AYf#)>y$TN z?LTSV@c9N11Flod?#O^2fHGRCVd5qWMo3s*(hP%BX=LBlSssD%E%XqCJ50ARP?8z} z3OMwC@mp(v;NErQMU(|W2W9(;b)yB5ROc_EhBNs{%VP$*)2s(MLN4B7#6aH)Q(HPy z(?xo<{!yAz@yqlkOaRYx8 zH6JO<4+2F82Cq!~g8m^Oyg=HmY0Og>1c3wu4e;5QFjxPqSBP4qUUC{--?pTn5%n?e zDX07n!yQfF2xthApc`*by&?xhdTs#gvI~GCY#z?rFhoYe8&GF+x2^XD`^z9k@y@)9 zhStgbA*MF8`~@SmWN;KA-ISgP=kE;xo~5*~m7~p;EL)OahfD=Oy=OFyQ!<_&m5py7 zYjE6*5oUZNBLj3myO-v25(x%-*P*sM=f;h7Xnieo`X{UUrKiFjdnNq_rnsQ)?evn2 zui?`Fl|LpRvM&oaJ*d(?0v{e>0PT**3qiARi4_Y?RAMw_v= zY&R9u-k|gjoj9{rw-;^% ztPZKj8lF$kL^+=j(cUjT)>@i5?fV5zh`xVu6dazhAC^GqF30pt>`#uqLeg1SKW#>q z>bA+iDEoy!adum%SDm51$VC~NN^nDIO0A6?^Mv?| z?$agATqiOeq>bKc(c#a;x)4z4BH?FxJGzKBGw?ZHQw)Zk7d3=AVte?e&8kJi<3sf^ z34jc63={z14?-+=aj_0tZ@I*&3)XByd=(J`ri2wM;GGh_ir?M%sd7Bo5Fc&$Zf+

b@`Zx{_%0i%Sl=baatHo_$Un9z+1{4Y48YD`L4-iRI5*@jb z^QU1D(>|&y)fE;^LY)t8Q4Z+9$7^Z65wKPe-2si~s5e5JHTLd&{E(6a24HQ#N>y zpe*w>!7yWS8Y8cUTZPh@gbL;7Z3_tFhYqkudv-hN=6g{4 zdy}=|r?zFyO|!o*ssCoyW*%(R8v-2b8aR+f!S8brR7QvdqH+*1<3U&{!UVx&y$BSB zAl@4;>h}hW*MJ`XEYO&<`*Y!@3^b;ba=>_51dK;>0Ymoq*G0O>hkOe9pHT#qkKzM= zwJV_c`kzK)eWRI=|Jqz%=zkvMp{P0>`Prv{XgQ=hLa)w|-$%U#gT@@?&>ho2KAdvs z?kOEVE7`|dW1%H-oI9-azgkkqp^l7raJ0K4G0gWf@hmeRw1hg-Im8O)WX_w-yzt># zN$3!=M^s93YCy3O&LWzbFV;ygBMEZH_4w#kaE>~5D7JAva=Czu1ze5>LlQ*p%OpyI zPgVLtW^p9ZNH^Hfyq@xHiA+;vOtI5zy*oPj$YO}Jfj(g8bgg`Lh7LD^9X#U+iE$eR z-$*ogWrB9F>+T#JtU0Z<^ELeA5CC=OU8|ev4fjPwrdL=^kA%D|RgOCh1K})N?JQG6 zmY-p6%(6u_#7_}s@-W=|CcU^!5^gw+#JML0>H6!h z=~^~(PdV0EVoeUtY8Gu}%u~a+1$iH6&5o@(##Ud8dcu0zCnQ-Ph>S zOG*}18TWARKMa_U5fLZ_7Qk2OT}M$;N3$!zR!r{vIlgfHX7o`e;ZU_^kJ&>V#ZijTqB-1K2B+UA+{w zql_8twUU-(#Q@|I4D|e~#E8IF>9%GR=^JyrFLAo*z-g?nZ>(W1>GcL_Hl-=XloW$o zG7ze9-mEPzJ;(u7o5F6xY%x$F`}f_qEFSJ29e>At|8PBfZ{9`^{+&nm+1udrH=Hob6J%^mi?cS{CRz zf%ac9lhxw+oTq62f0l%pR1=$|SLahFcKST?a47fk$|m{)Zz1e}o9N8l4I(QUAnnk?5T z!6+KgC&ck}Oz}jm?mb#=S}ltXS{l!^T;miggtENESJndf_lUy~dw_U=RpdaKe5%f4 zpNaiU@^H6juBhuW1j0E+xo0ln}i5EQ3|Lj8xfFPuHnp% zfx8Sa2dgm7iME7Tr_+#YHIYREG&b~Eq@zr;$u|UT7(Cjd?kX-U^R`JND_JJZ8l{ZI zEL&`$h1dE?!+G_}Nr)j0@#i|<@vBjh;ST`P8x&E{NN_}4cZza$bg4|M&}1(5Iok;> z1vHC-P!q6j8jMs<8|H?Uq{?VY=XE9dD!q;bSQ42u=UGt;&^Lxc1T}z#DRQ;S>_deC ziQYIv|JoS_u}q)gO1pc*#1G%Nz{gV>*w;=YYp;UG&m|jA5Pn?5t$y6tp7XIu%VfU7 zF2WhbTCnDg>UQ}@+>mBfSLG;o6)NOi0X~!_su&+B|F&5zH!mU00)WCRsNrh3pxS+) zIMQOx$-Ze;%`hBR6I8I`HyR$)BX9v93l-{h8-Q{Z)-%Oqb22e1VQR7sG1Z72x9iML`o`zINw-siH`o4M8-Wvw^ov|iWEn{`oBB3oX2Kl$|P zOh$Z+CvafZLC<}v!hp8t)@{zK+f;S4pZbVL41gn+s%$&k&ZP0^QO%h&A3Z9E#6AvG zh?Y}udm2o0Ga(}7ShfD30&GxVr}Fp@GyMXU%qnM z9klxXv6|l;XtqvM<+pl2WVeqHjrT7COjyWvVJo;mE41A!aPU@03&inFgalF!ZN$1Y zOC3ayh0(Aq;Jua1y00i}w0bV7HtFII$p6DMalfYX|Npu*|92Cfy#L?&=K4bZe~1U|?qd%HNz`*= zMquXxL~AeZU);>d0lxVcGxA!<;|qCwt_R?fvuZFj!=0Hz!U80HJ_jHtQ95$|o3SE#2G1I=_b0^}YA7TEFxpauvyIiUa- zh++qZB&&&+RjhUuTj3k&zPga7K<2;=3f3F@=?nbbSj!EK z<|$*MBt>*f68q$+g{^vLn6RL)R!)`*ZNmD*p`cJ4kXU7Pt4+wvn4r`C$P31PjBDgH zivtNldqvbhV4j0%-~WTgB8N~~8btl6iAE+Eh*L+7@oWbe-dr!d)@9h!pvi5nIUPYH zw#`EhoWjU_rfonUCiIb`wxT$ZQQ=*jy5&#tGI0|}aWsxnj8~0ol;RCxOvjAU zN=Wh{6<&qfQYb@ibNf&=K$sInEP+>&$ULx4Z@=Ajx<_w&fOc9A{60Q8df(n_?Ky8g z!pD|#(t6kG^tuj)8QVST@GaEQN!MB4=|cHs{D2K1>T3OXe1cd9kWTyX_@E7~2sUfC zxF;HhU92iFsr?GclThYeb_?R zp>_v4c3SW8wywLsb8wKECA5^8d`pe^bLrn%QXY3=rKKIYdhtQm~%pyqUs zTf1%i(fY9kQ`tHBSd(VEt^YcOLhun=+uJ!r3mB(z%d%h~&C`?CAr2T8qI>$L+iUku zdoAbP(a~NPn}X)Mt&{id-Bx$oIXLRlik)^_HRzS>*v zoE~HBt|~UP53<*LkiK?zp!Oau@==H842y);JkTz#2kk-4`LN%D_b0ffv}!xJ7F}4q z-5$1Pm4selJ$u$+?x)5p!i$YS)< z0^J&IsndSz?Cia7X?<%6vv$YMU^2U!Z z{gHoDb)G$LY(9Rzxs=MJ&?IL5DZ6=blq-m zkGx*H7*NhdXSwIkpRYF#>@a<<`}UyqV;g|c#iQ}jCes z9my>3_V!PXK4cowZ&Z;tt#|DX1&iz2uUnlx^Rjq}otci+gp&)&ZeV__&U3qLD>pe!+3e%FpXpxY8y&Tl}a$tEWA6C_9P~?RRP>M>`RTSg; z(|Fs`NGLm>5NW+7=a*K!2u6c#U3Cq)0VhxdEHdiHsnxs$TG!3CL z6q|{MgOXuzLu_n^vS3-w{`J5us|+=X3&CMv$8j)8k-Z2d8f{M5bK7$j#F&BFf$mVS z03jkIOQM~g`*v^l!(L`vSck8cXXJ<3;o<5+k!V=K&(#@K!vO8Caub89K3fhYN}ws< zVU90F3q%)8Ri~1J7KzZbTFZlx`jF8E&VLZncc@q0zLj)AMmlsH1gwK>%COMMmDpJ$V$XflE~pNF2aX> zV2F?h;1-^h4g(Ha>LdGW8^|JXsL%rdE~JmWjvPvz3+y%;Ap$J+Z~DsSlf}f5_v;N7 zaw>d$ucP=`WdOY6T4W@w?niMLAopI8%$x=& zImjgf4^*jqsh~C7lYF~5I=HtBo@ju02MD7Fhu?~ldjiEoae?V%-uy=)!oZ3 zpq7P~fW>(4n$oJGr?~&gLmS4LGnlgII8~~6LiG|IK?hjqM|jQ1vfw3%LtfwK#H8Fj zUAjVZ(gLnC$FJ^RMAxBHKcV|c6g{mqR;GXf0geh#t74+mWqlRk)cE>RC6ME0$ffGc z2lP{2lgo(x=o+`XX243JoC-By#9D=;B(1F)>wzpI=jo;Hd6EJ#9B>yT?*ZOkQ;3Vq zf~Kq*)IRk#s7go|Y}mv8&mvUf;3zm9<-`Y|(Zy?Qa4BG|GUt&@OZy@6GTne!$Ke{u zy(qcJqBk{h!pU5o=Od=PP?3MEt;yabG@klv^Qjxj>f6hS(z1BD)-X;vX|7}=J#(L~ zu962N)8|(51+~~~zuWJ*yB~LfE2cQfDmu4?unJ`eaW&T01sid28Pu1KymMY73f+WpG0b7JtQ2Fr!61w)^K`IvxI5)JYtx+C9+`=WoqopbtaFA5-yNo2Q(d1{2Yey0ELx$5{%KVU!x(~ z1Qm2=6kNh8@APWUZu@Pw=Da=aw(81M5GU=Y{WUrBvJgb2^z?$5WP``l7mT8R!K}a# z1kDRlyhUVjc$10!WF1dRhkyV;E06ObF#=bAfb(R`2Fw0~hlxETrb+5c{dJPMnP5F(6r!aS+vs%N_S?fA-G7@9PFDaR10i=~52HCb zA}9|i69^4Jw&4ghy?}Il8T|#84}}lI$=N`{NkCYAD>p2fWaOJKo?nXa?rK(B&hO@I zgbkbpV{8Do$wUm}00RXhBGw}h0818y7^Wb^q@5^%iAs1dr6Z|eD#6;i+{Mfzcd10F5|j!uPv zE#u>anM}iTC^N*5x(ac5mp~Q*ue5 z10lpRGU7}}w#AZ$8FtV@%*Y*J{CqZ893TXgb9`B7(IZrzb{uOCVIO1i@=cRb1DyHk zH99MLS~FJG7>8I?S6~IP3%gkJfiij-7OSi!9tTW^#N_tdx0**Lju7XW(kAFcKlCwF zQegJE@l%e0=gVa#5;tW$jJ|l7UVvc}#@HhJOccYQ-LmGGDfNIgytbJ*7=$;FD^iP* zisWw0PuI#C`+y|u8hM*ANG>GTw^hHQ92DWiQpe)K=9TWIk5`d2_9_i1<`nSg@n&x6 zDDivCumC|=)>c{$WS#)JFfS7?h_%Zg6fPZA0Z5IIZAo{e^f0o*=*F;w*#~bTC-|Mj zG`7nn$zg(*+OVa@poE1@vEm3zL5&l7PZQ`YS<3|$v&Ww~#hH_;9tQKQ6-1Lr?OsWoO9w>Jxj8#8_C)mox^cWFUF=z9TuRp5!5zQP53$~zh>DBVkR0uNr&Q2tlPTJ1%;&= zVvU1v8srX9j>Ts^EW@UxG(|+3-A*zSq6-RQcgpxb_Ev`PJ_y)sC2P09DIsV>c;>}R z4sHQ+BBJD5Xu;e+dHsIL6%@1}5sJ+<)cvln=(-8(ZKGK;!ETz=U#mK03^C_?EG{SB z+2AL05tfHl)k1PJF1-gcw_u`kyzgyO8pG>~DpJjG;BXLmE#QA;cX0MannhLMT#SZA zY31bTsCT@B&esR6_bs}osni?QVj=xmo^?H-NgAW}Pv$fN5;xk;4TuRHG>nL?lbw%! zg$Da~%X&~0hrC3>25(Mhz#9@!FGYSqGg|m5n;5p<0PiO$ z+tm>`aIoPFX=a%{!B_#v7%RDhl<6iZB0n-po-v{t)Pu+XwsYHKYs9QuIGHz)V&pmF zEH=wFuxn~G3k~G7XQEvazNSRN-#I;C@qVMwREXF|h#MQC73z0RbcM}AeUxIo0r4tx zW^-h;3r~u(iBb;mT7HYRcWg>;71uIC9pC)LY@L`HJT0_9lJ~aY4(3`5Exfg=JS(&i z`{y8?#(Z}3Rok7mp8WGdRTEKuP_9krbaiq20#m9Z7gK3gouLO^4@xQ@{h%rr!7z+; zeT+5%hoz*6u0bA+A|Ph(Mv8SiN1YbeEka(lt}@{Rq3^t813s9ljUo{08_?+N7v%M= zQ>$G`l8cC<67d1XtI}<$O}ZggnIP_m?$GGWFv11oyLZ&-sXK1G-N+6`-EaduI%{hx zy0I`pg(do^uk1;0o^6UR!N|Z^Q6!9O4(mhG>h06yJg$yl9a22qYoLY<>_r`zM>TZX(SRtpZFY+?(m`$JnJk0R8dy{s1x z3T(nmkb$0LEs2Z3kX42L^PDYRNod9KPmP}~&Q_hi+`YYOf!HTSJb#*Ds0Qt2tbm~Y z@3OJmmcgF;u5-GJSvXHx|Ha8nP0$tkahrbGpssg{}Nm3O#aNPGHikejAc*{E$+buL%e^-^(C zaId{Mbf+PTRxV!)(JXbJ^Got+Z&;vh3|G$8vzxTbg zK02R_zCsY7TjKvbX>R4?|7>kEnhXEGhj=LJM~HFHLb^J-jvOyO3(}aJaTLW&W@P%^ zs{ds}zc0K37hZvP&I>pf*$;hW?|Wv}LRYp9H>R3zsu{8FJCpb(UCOd;SbJJo6?cUm4N z7~UCg?xGNlzH6jY#{0!LJLpiv7gwQwJ-VsuV2Wg2E$(!aoi5sx|M<#!IoopE-oOi!K39DPPpX(mEC09*qZHr&L>gishA!Oz;9(!b3hIknG%$lUqA{FW7;NThp4#9uO{bi<_Bx8iGg!6v0BLoij?XJ~*ebHCkI*ihLMtJhRULStz!H-@Zkr}_(mm7ID>}lN5MB6! zN>b1#CKskk&7mX9eN*GBSPn+8O;sMzZ#5d-WBw$Ql$(7CtxQV#tvQSm)Tz;3>h@*a zYJ`jIU|;ts$bYDqz$B0!5YMj^0QMI7ulZ!NkpF9QYil9@J;Z}Ij1;om;f-gWg&k!G z#hs6Ww0}`90ZPEv^(~SBpDiT7g#`GoDghpQ(~;9UKlft}N6${R=nTi^xh=FFc{3tQ zfBEdC^F&2UDC~#nNDyjPD5NiWnQ-96=b3lQQw*&?uv)-Ko;(7VUUG_v;ULRwBcE2| zn;E>#s-agDbJ=JY<)-Y&^h$y)A|2;jukV~AclV^V)624eSDs7$-`-@~ydnEj0DU0j zRN2Jk!{yC7QXQWh9Uk>sd+y=UUd!#N^dz|RJfIo}T)7UQ@VnhzXVY+7eF~_Wz`wv# za-5ri1OZ*)%9Q6g8B^9~HZ&@Pw3GS5uwjXL(77?0;X@&mm!MG9;?{&284lFC^De;3 z!P@hB%UWY!7$)7V+p#Kl?pmiEZNFG@e zA!d{9FD3T>o)o^epz!~m6uyiu8>*@iU6v-3iBq;D89!k$>(!?qMSWQI?LVeb>Std8 z;SQpDJ=@9hxet8DC(;q?oT8O+avlt-j(l_E@1-T=#h27*vkEq)Z_W~aq&+p*?SmGS zn3(9@-{>|>JuVBSvcx{q35EeyHJraW>gOyo-WO1MLUF=j?jclgE3^#Za&=afTrGre zRSka6t(U6`d!?(w@7tS+koXBB&2SE{!cK^TzxQ&Ss(m0 zxPV*Yzrz1-3IA8aVmHFMZ$nA&SqO zmuHvo&-a4LIqA!@e?3-Wp)B|x#7f+H8=OO>Sw5pAxl57tu=2fRR0Kg(cy+hiWe|zc zMJ!R*%VhP}IX%#92>d49yD=G*5B>gyn_7H<@t5+$>6jRY&QWi_-FfG>$@;g2(D$*m zb7KE}c+~0b+b=$}T0hu-@9liF{{*Pb)^B$((Vg|C+uA+q?5Q_PzdP4(6cQJG>s)jT zRO5$o?s4k`?JJ22Z><+T?TZC`#V)%FC98#^FwAUGth?$oH;YAahMA&Rchz}XEJ=$~ zEV)tAKdx&@qZ?aKfMNWWjX9meogdx3(~}+a{MRkmFR_K*$Kw{}H)tQ89#)V9xM@|C zV=NSUG5MGPIHhnP#i2IxlS~Fi53j;RAI3QqjfF5CLwFgx1UGIPxzJ37;fefTY64uV ztIlNdE32&N4w5)mAwsJE3RMtehSe%nkZalBXO8PX95kPx{C_Df`9hhUi+|x=#3B?J7l2QrAMCm%&R6rI#rRQH5un-X4dC4 z5V`u9m0{pmN;m5V1* zt_FE$@~dno=9ZfDQ>{H#)6*HC@K)bT*g+HiMOFuvEd*MvT}Km?{xN7 zd1cNMaN|A;*yan}GngpQZ7 z659K5JkDiPe|a{5-1r_K+$c;h+yMp?HCt^V+=RhEc07imDkRIl%V2F?HgJ;EG7KZ* z6Iy@74;WU-3gos@Utz>BNf<2p7coNve9@4AA8oUu&)TthgO4#}TVeRLp0ma;aaOVu z0DyR;?e+lpEXcTfx3GcpAO)Vo!@a%vTTDBg*ucwO0|;vlOnp53uxBHS znSi8GNd7o~%pB)$%8v7AAs4Qy@VkIkvHQa>>3%+XxZ?;ueEkuilz;aD?0x+KFoc!% z|5xDjV9>MSe}7*@le-by{e6qna?Lqp_5x%Nlxxt1Q7FY9OKSIRLR-51FTOH8{TzbY z?v#x3i-=}p4u;#`KRlc(dcr309_6>_uEcWl?!l4d4l;fVnvRMSAQgYS&BT1zK zjxQt9_aT(?fal`E*=O>YB+eWl+CS`m8DZT2+JtfcPbQ1Bk9X|9`}O*7{A*Dnx%#Xi z5=tm`0^*^Xy7jE;lxci38ieYWkKuDRKytHrh&1qL$?_R`^O%%itB%vfn@tME=3LxN zF4!ztgQX`z4#h2Xl zG91vHHN-6Phi2&*6I#ny4oClZVXQgxlgW|~Azm^Kot)XOMCgLbl>&#-&3mLtB@RU0 zJDvx4W2(3kQWJ@0OfyTY#r-=jhGRK?a`0 z(GI#A>u?bYkT4n=z90D>1y-a8Ka$Ymb5wj*lUid~Xp?tHjl`e9G#Jh61hwNxc)$D3 znKh7!|5Ls3v-VS)`1LwBvPvBYd9e>M()Zt0Zcnjbzy(Hu`!Pw}$>Ra0aiIXDbPi#G zgJ`fc>#XwUQoch?wzqBlk=TFy3S%W;A515T(;yWaIo~?NNg8YQltqv-#@DQ&p2G=t zjt*Ogx1+g9FOL~|7G~&`V}@1u^5{|3EH*<0{LPT3w^iDgx4lwaaUZNzzaQ4h>&)(k zu|8TDYwund3x(}J24!VcLw7(|EcYvXh2ypF%jj0a+THBfjKWwq$FxcBpz155H6^M} zO4EitJhH&4AW+)^f5qYX?Ze*)j9H5Unt6$Q24!Wc zIn8)Z<6WxrE>U^Ux^Ov@9gVWIZF=PO!Exp zc4-9|wxQO(q9njn=fU)o=?Dg7n~?A^q3hvSHj_TD`?BkV;=z!kQF4!n7dn_z%Jz(L zx|hL(71%a`HTj&ZaGn5JzhF`;-n%t}P3}zH32P||k56)qK7F)hri9roi8uYC0Pv~+ zx;-PBd0{Qv?aP#{zH+njLVkT*u^TFZ72Ap^YtTDmfDWy=^D3jEv_EIjjNShB98lol z9^N+GjFHpljhC93J>X0aw~zS4Z6mg=us(0V*uw1b+U?&y+<}ISz1s$EnTvhixS@gB z!?s$#ebg7XjWvUaK5MZ1b70tR{r16*Z-wER==mN%-0sW);Y9ldNj4))d=nN zd6`=unwr{DTlr3bn~rB(R4g{{zQSmMOo{AC@Nlf*A){ziVjKyjn(AahYlkzoL&6cucK#9 zJxOmy@M`%yoGvesAUp8Gw4QorNu5iF!3aOJ!T~iQae?xVAB$Lw{}Y~q|IgSTV@jH@ z=ly%D|8HY!<4NBCcjM{8|K~v-5JuFFa~@vwoWWdt9{J^S-dZxzWThv`gov05u^=1d zw6pOwgF$Zp#l3r)ly*Ju%Y)4<+<6|#ooAckq-#koDvlz){gb$)bJ$bPQ5$1XRyS>1w_i{ePTFgwR)R8*9zm(T#bi;92MHZf!2j3% z>tK*xd`$vy3;y41Z06(tZa#UkvB3Wi@nB#-m4`B$Lz2BKWYEs@Nv*1ct*5=W^=I;`=B%4IOPRao0JAq? z2Dx-8NL()MPSfEtCVX-kN@6`zH_Sm!H_xx6ZC9q@RP39fZttY^UzmZ|si+z?XPL&d zTys`VSLlus{_}Q)ZUo^!&)`4n`v2KB2%{kbARM&cxE}yaPuy<1^X{NUK7W$76N5OI zXu+}s+Ut+g#@BQnXb%lLe7v&d1COb{mGYhMJ}^gCW+ig#m2$f9fty>eS5CdLee1Hi zT-jb-R5X+~`BL!kn;V^GQj+sfR&y^&rel>j`2rKRV?G&K zs9YNA^2uf2YPVus4PiB$3Y{Ok{Oebh^QwGPb`I?<48vfi6tmzo3@8$qNBEhWQ)$dq z=r2~@lrDTR%Iyc4v%<6({UCdKJnY6d6cCS?jxdcrMn=`BMrWv{V_yc-)=c}ZUIl$B z^lhtk7i+&Q0VbFAllBy<7_&_ zc%bCZOlF^{^COwwpd20i>N}kps|7PjFmx->ZzoD+o2MbA>!t+fa4aj;8t%N}VwVgt z4k(1{bcEVj&V-I#<#K8uR80W#&=?JK)%tWD^n#kCzY>)`mc}VdzQTH~6_SHdWTA!e zKLG%TO6R2p=px>5BsUpr$UbSs7=XU}?!evY^-kJv@WK}WsI|Rd3H~Zif&O1fw8O91 z$1U`Kt@bCQX@dV#WOaFW8H9W* z3D+^n)}AxQR8{AaG-u^%NHRBhHe!g=n!~NvoSl<*-6|)S0VyBG-Z?##>`|P!PvEbX?15E?t+6^Gma>Y7FRNp!h_LdrEf{Q`+)&xNgnaKwTwT`TUz~9yIc{ zvvb%|*^M{_*(4^uk($WNZkYhK@n{@}mQi3e=li4!CoBXNO=9ir57NY61cn#Bq10`Wh?l(Y-JaltqKRrp5X694OT zXAef+y4HVf(DFh1&F<2-4*%8N-#KaR!Jm$)a)F2#vs_~GSgc5#KzAQ6Ja>-{ zj}h}jk$%m2hi$n{cisGKR+qS{o7{}gF!m@HMLI_a-KA)GA=uZ4~1FZ$8;*Ea?A3 zJfzjmTk;|`->CgD3Emery$gE$$Jq3W8b{IDlH5N=wbBadz63{yl46)p++f%)h5jzI zxdgWgCEf1P>B(-(7`#|7nE}wkmdWs^n#&j%b9VG>xPA}sx6KUJGM%6rnn0@EJpzFM1oLn(MoYJb z)=UG70w>~{Kugt_;%MF@UyWQAq0fyx;2WnPLIpap0jd@`Kn zT&i*=lwF#adQOG2wU0)uf9HtZeY6&1oq<9=h$2!72tc|Rj(t2tM>>$&&i$0nk5vnS z`J4~l8r=uR6fh6ly7u+z;9-s7=%$2Nd|Xei9fhMCY696vy-H;VY+NN3%wZd+J^aY?uR-;{B|bgtewl?q>* zR-JmIT0|$y!;$}K?4yBpCV|J>or8nk{>jnlyM2-{U>1Oyc3szb={!Y#Uiz`hL04pT zh*pK)vXNPNIoE}GGChO#Q1yf+XX!;8P0ue}w_4RwLKfGEJBKc2 zCUZ%zi26%>bKE*CnCCU;q$4~>Jbk3tBQpbpx zk}>i!WCTn#G|PfiaLpk*2O6xhS%BY{0qKJ5)xcmk*ItrJBG&wx$Z$!w;Zq1TS_xRh zAmz#loEeO?&jnF+d*accD98vb2sQ|;53H0}nJ7Ms_(I^^G3+xF_$e%Uy^gFz9e9K~ zqOBFSz!(QiH=?s&5YeHIDX9s6i8*5l^Ti0I6lY@)DO}1{5x@oZnF;beqD1f?Y{T#! zMcVO=enUJ0ygu1E`3UC+zY)m;sN3o7?&IgBB|fy@I2BbbNX|xHc!|X;LRjA%>~wz6 zBz3Q~d!Sy@5i~})RI}2r!lCFB#IL~rVMFrQ-_sRyW-T0qM%tC60X$c;N@9M0JaP03 zPRhXpy#uL)W7Nw7g0j0#H1)wnMfzNyNuLz}QkZg~@(F7r3v7TgM-~+ej%W8^r`x52 zE(lkz6OEQXW9p8BR_9%Be?}c;BTc7{d0sS-zQ8;)AssNH?l}rNCXp&hk=gJ_u$ID<5`i&WB!=FFD*GQH{y_@==u3Ew5<}Lk`g48@$=VwA1Pc!J89gUb|HU zVIC=4nlp;SkO6}2_0B2;htVK{vzyd50|%5f7+F^FdfXtF?E$$tJU!^O-+b(mtboFT zt!B&8-|~%iw($C<0}wv~yuR{@!V#<}G<3^m-R~jxy+SBK?QhLl_C}KnZ<&@W|7nUT zmzHOCL+zE-8%5VtujCU=Z$^_d+w(@@bX?xvr#TJIY>#49l($DWaQ7YG1aVk-dqCGF z7x!(iAExoBygi}=%NBn|*@NgplnwtVpk=7Bvq7(z1saJY$qE+{oCCZDP53B;$nK(x ztMYClpC`KA1+>MXDGFXPlPC#3jc!~KHny3N5bvsV(5^NwqC=RVj|GwsB;gJ*wJn^^A*Lvy_&-X`mkI4 z*UUkR{((x>oDPyj5VIx}`&zxT#;bg2q?(QF3oVtkQy^`HS`~3MCoYa8%c>5>tqVPJ zDxGT8qIiXcV#P}ZitnnyQ0Ptd!j`}VB3ukTxYl1*Txp(q*<#`y0Q8Bc+6dXjPXyZt+SdlQbHFXn!MEQMn3qE2*(3waxImO5>A@O~&-PP5_E4EvGGOJ1OD&NL z1M8KPBB8v|jISdp0Vq|6<0ULlBb^P;M}D2AZ=8LvDRQa!Y!WFBhIorH_S1`KkXu{Q z-tu}<;F&UJTd%C)GguCA$;p;b3NNYX?39b?DuA{X)j9d8oY#KjG=4S#p8FGw;vu1C z^Ujz(rP}fwVhMArcFQ*9gjU8J+&0CBLxtr_XZ=%i9eF(Z^ELeWRQY8JUq~NNM*q~@ z%>KQ(p8b2Pm_D$gmad9na=*2FPOTVhv~H@Ri4{s>(!q+OLN*?(d}Dqto1fpBpZ{S+ z@{?EJnXi9eF~2M3XVv^%E!KZzzShjoy7{?gem*W%UpHSH=4aFV+%P{ki`Ac)uUqEl zQ}gqg`T4w9{e}6uZGOHqKVO-juZz|HR(!Q%D!eg2cg@c|^Rrc~{?>ebXMXORpKbH= zKa16WFkcVM&qMRGV}2eLs~?-M|7Cujn4ewqvsbKsYQDZVKR=kCKboH(i`Db|7?E#AM?{K*7wZUGxM`=eh$n}zgT@}zMh+(7v^VRe*RLderdjr%+Im;8JeF_ zvHHY({fGG(o1cmKnHH;0&DSgQ^V>|)_3?L0J;QIb@QhKL<0)r%pj;2+`e%FgQxJy37f(~e93JaQ1;uTmYsuxqum`?i^Fyg?ON8Cc*j6Aod&>Zgs%T-f)@pq!#D2k z=?U%{2C&8@Ze-&{jL(qwKsQHD2Z4|HJ;HeLSMDtgxa4gbWy%^>MJ8SRz!TSjWWzKQ zEf(*vyitETQilHI*(vdxa(pbegc07&(a5rji4EE+5ZZT`<_F=69X%t;o=`P8B6#)y zgXY?`!rlYl>7As6NeMFeI*f1mKB(3(6n{-8Y_>N7A2y(HD$rvP20TVHB3f=<{nAk> zP%0VJ?18BUiv!CK?rsCbM}UDM-t(_Vd9ay3sBg@Iy?mvbo9lUCJ>Pw&2LP4zz4T+f z%L0Sd>U?Jg^{nUCq-}h|aTdtLE<*f10 z;BVbheCBK`KEIc2c5dn-D!wv{@W^1_B4F&6AU{epc?a0A(1uwTgV3Z`#vu9m-0k$+ zJt&lxCe@;8)Z)~g#@$XdJhrxvEhlQ)*yXM$s{BAz%fXBj z&Zv157R?TrZofC6^1JX%iqk+qC|t|oU51IRkW-WsQsq^&wnMKWDb$45nY)hj*6#PE zqJo;WQc7DdhNu3ZVC63*YL5P)Jp@e!A!3M zt4zt5GHwP~#k~jy13z>zBTA(>8{1%kHxPG_?GFI8qt#5#(t?lgpKV?J*MAE3|6Y7P z`Kr+$ZnOX2ditc1kN>o}{$%0*_aF}LrTcsS*!dYy4CJq4qoQnC;-S$GPe7!i(6A^^y(`!?x&}ex@_t`| zZ{jr9p0KT{r@~5eLv`2(F^DDm613)!{nULV&I%j8v&rWQd&jS!#R~0gzwb{{I+6K4 zx7IeDia#9sDj{og?P)bPjt_X1MPn{?$7fS{8d1XbVq)J&+Lj1Y)%U$A!x)oWv8g?S zL5|SgbVY5S1cxy0{VQx*3r*j!;t_-tg;ew`ixEDx{r799Nw%N*#j98F2Bds>aoFx0 zonX0F&Qr^TqHLZOw6v*~*@M%{!yiIz+oEzdbhg^+wj~12R_xy zt{Y?W+@PN>Z#%ospNmyB>?Re!g;~}m_yTlUTL&+LXe=2MmAR=YO#4h>RjoGhy3%x6 zvwmaT1#I0t(H|vRg|S9n5erbYw=1gh3WsV%yQ=Fb9wa$WBi)I%3T}dwq&Ef+mVZ36()v15&(U`LP{U*7H{=jq@oMC8hf zFCk(Rt1k)Mk#5_#C0|}z{NKv?p zB|V8fMZ)+j6MK>*hISqu_h8++z`Xb)itR_$&LY0&K8=9b1!U$mc}>4a**{~ zGQs@R&?AU(9AJTqDh32!11UqMXu>SQSlo8lI6$eg=n7t{V&g!>y}^KSoXH~zAGrU3 zl6IO=@nnhE@ykTn+nag1I|uEZE{Uh+s+wm?vv#F9iP7A<$W92y3w7QqicLoSI6aE_ zQ!G0Db^{7TbyhK=MwKF>!uuTQ6iXv=^3kT?n`hkZX zXvTzlS4+nJaWtKOOao-pr=cWjHEVS8&gGvw2fS2h$d0R3SS;vSjZ`YLdcvL!y-=la z*9TEwX+uial015}!_N<`k3=QcYhqDPHF;KwAEi}Cp<|k2xJuk4Wk(SrxfyBDr|c9p zj8;wtIFh}V`B~nS^EjGfGF_4!Di+gAP6a`nkTEAzR-Fd8%d*T=xw@@AU#1wLs76r0 z_b4Gd9#SMCaa53{pbhgdA?})}#Za2zZczmoki{(J=uMoCTUqY4e(Wt*5oM#0at)l0 z^9lGq47J)euXgV1IJqo%t!sj3dS)utMY@L!H#L*9QHG%rqd>&=Ny{^0Aq&Lw6@Nbi7_$ zTdO&+nf0;!uEWbZI(D?k38;w55(|;Z!VGzWjH1_hvx5*QySM@IBA7HM90|+63ZiMk zJt(2eaWHBYJ1ngv7PtTstEpoaq(vCZfI0%d%o8KIhH_%@*1A^GIo>=elpwd(NUNr4 zH1^JezJ2%;c18l|sn==SaF-@ifeao}y#8$c~nSH zpKn%iNJrC`^HsKw}&M zjn0wVJK5=UWtp5x;`=-_;Fzjw>_tC~CwK-Z3^j*wt+DC|Fcr}#%s$QuS&7*}NpdRw z<80H(08?}PPsr%V2^m_*5D%5rOeQY|D&{Gni{e`ZgWJ324Y4pf+A6F@U@NoSJKCj6 zfuAUXDq|;UtG-gr98E%Sr6&m+aYrZ=e{#P<1o97v~iiKzs6Qh1y2caFtB&D zT2_?|Vyh~rUHJd87qD}Eim|wv{Zvz@YrAm+m%FtBat_5rLV3nzamsz=$dNu0EzB zPr(7ph&`o4;qz*dv2~DaErDv=DS0rU?DarWGO!mZg=EhQV`Pf7U8uX9FW0{aMuQpU z6jwm)v*4T)kwMm#n}M9#NlEr1!8?^z>Wv8snzc#TO%R1@IxZ#@xy!9{VVYQ%en_xY z66;`ya(PRB#bNCCqw_HM6%Gw_ng}E-e=$EF_1@j-wdaY>SlMn?H35cNJs`^43QnWkm9u@$32xDL%;w7)8?& z-l$-@mQF-eSSgZZp%P?qJSI%AtlUxs`}z%+tBNh=TiOBG%r=!UPdJ#@if#cPXr+s8 zn%QPD=TR>=93EICCRT|fOG%<0;|;TSdd1ZKlE;OpvUt9E@~3tUAvHMDl+JaXi(5CotqLyLfc zt-&Qw!-lNVB-p``PNOO2`V*BM=k^;2Dj1EdL0{vHa3iJ?@>?g#tl4KrFuFIOU@>-w z#D5G?MMqQCEi*4q?G9!yu`T5zlS-yB*`B)y zF8!ADzzcwZi?~_Znll~mEVBqguxTMBJ{sc5V1S|H08;vwln_bjj7B#W{WEKg_Y)~5 z$Ru&TI%Cll`pGSNlkx-TizObYJ|?uT2`1r0M7x91@wFEZ1n&u-ge;%196pC8QAlTZ zzkRUhwmZkCJuMX?p}DDPK{;i9Pj0M4(Cb16P8g;20$U(F^9SwE(L*jPHN}G6$5`SJ67fC0MtCH8DubaWpImk z_pQjSCEKct)E#pdZQrw61Gh4H2#FQV8jaB0IArwBa=+`Dv%8+XGb&!~I;*nKnfp_w z35vs&lA_h-`#gOYj{VAI1{`U*J1X2XmVS_^VKx7c#?$Agj%7S-6}80|XBxZI5mgzv`vM zR%k6{t+cp7nN4g3Mg@mN(bM$QE$RUCXL~haWGyPl))oPy0MZsKFvw_ZgkGzi-%;vp zwyij0?J*3W5w^vKU?OHOOw}zz){;(LUnZ=2n zM&0si%oh6B$P5XMRBj!KKSAuKuRF%fdT3r-U1gG`Kbn7uDpV}}6}nPa(V=dTIIjea z-SHoyUEG#A^Q^w1D+lO&8D(co*kh?|)YPhF7q`eZxz_D%#%jP*TOsqOD2boa*mKlX zv2}y4xeGO2qO{h<3kR(z-2LKxg0*}e8qLvlFQ%I0rdIxbwPN)BoOkHfOYS$Vw?`+f zy4-ay|NUy2Uhll^wNC2#2ArFkcMZ;Fxz`cjNU=#Embl-o_>M)ajCK@o^*m&&LS@K( z#JV}EisK@ZAptC?Mf#f9>L3=6tgBXL_rebWx_F%^-~!;L2ypo1g;puH+ODbI17mq&5K8p2oW<)+wzJf zgi=S@;m|7S8xA@_d|St9lLcApMsYwI6YsYUj$LksdAy{?2)UNUve+}DS>3)G1jlyH zH#r;u}|_0B64X-IgD`>Ze5MN43*kNDZbIvKC81L zgr%0;BTU7C^H4{CMmNhc0mc!i)RTz;4n$0~N_;@>vc)0Bop|*Dv7|{PLXKj*tcmb) zk+Bvkp))r(HER#8t83&bBonm2k#*O>!j6F$#&naZS}`HUSrxxo3>qlDr>#WJMHtsX zfT8h5H~LTzuBxnJIhTi#yF|&P7-OL0s9~;41FDuBn+$=RTBeP3q*W|Hx@gMXLmLV= zh)~{9AZpQh9hK)usZN;NCGIz+n>LUqakd)hDcq?v$oOb5gC0&?E~d>_j+MM&UlxeQ zo))*bcV*HP9m3<2mfR5ItsH4a=pI8Kw+SjH2bSouHm9+pZjW12jWx546|5TPG`8Q` z*=wCR*2p%uOfs95mDsV7B)EK>c1}u{grf_b^WxH^XK`Ki;?n`pOV$xd9+t9t!W7562ough$ zPx{G>()v1Em!w#$J4)s-29Dh4|K>|aU*E+OLNfA#p}I;1qwxy|%pxGwtcQ}2h3wg^ z2PtEsp&(#&bv__mC5xpijiXOdn%YYKC`C3jW5o7BQgQ_u`` z*3=WIpFnArF;ylKLY{?B)qD#N)))uv(42vBud}yC&0cOzJ^Fqk0=6g~jIA8^P6i^D z#J^2j0mXfZ(Cl#Y+S$q0J~%vhmZCF9uO_k0v}nD&T!zNDjuEC&siaNy^tknqV}HbQ ziCjbRA+4ZK1Mq{v0Fm=@H9O5f-}I1GA6XSxibGGLpOUqVSYW+7IXXRNNEPWUEYUk8 zDwh0+M_H#)6CIJ%q|&Fh%oK{4vA*Z2j$pM%mTjo80*e4(F_GvfG)4D zjSVseqk_G1Z5{H}jxxlvR|{(PO-wyRGgo%QK{)U~A?U#n-zz?jE>`gRI2FZ{7M;ra z(p_OSyKVNmFK5kW4_b%U&0x6?bXADE#(1D$93WyLvi#97bH|f0_!s?E#tvCHB^+HX zb1SBBDxyufb=0PF>LS2lBNDPNkvmhwo2f~rqhfmaMHv}B+;u zx4D(~jIIe|B#F@@$R(P>E^-KMj|Rf*BR@PxDAYo#z0q37p$(-4?6Rx@4~k`Q7AW)? zcqf2t)09nw79@_n>YX``$RQM#UCyIJAUrK?%}S z1DHm}S@q)>6KeXHx6FQIo!FjhJ3j}`|Gj261nkDVhOFdHWvxY1hDp8NlQN4yZtge^ zuHaiuW#CZMhbN}!nPL7ctCvb>g+SLX3W~9a5GlP?irj(1MFEus*{XOQ6kok z7+5&8nOz33ZQ~ABVp(745YL*j`1TTY(3E7Z7)F^EwnT?mc+Tv&w62l-%_vepVz%T* zvLe%ZO0vtCXjcMY^hdZAV%F$PVO5o3Bs6*Ep`Hfsv!ZEScIm1%-Jun1+AGKju8T$r zHaO)i;7FOT>{$q`h5Bn8Xz_FN$iFg+7N-knoF{KMbPR+*F`LO41C~uGIbcUAcC-+` zOsAxERW{X>hXm^@;gPZeDK-erhsfm^ikPYt&_@9)>#|CIOM>Rzxvvi+iHDi zfVPhkr=)e-q+B3E_Fi?#8Lj)q_34$aS&ylr>;^iUG8H@QA8P}>I;bmon zpv4r$tYP01vzIepEoM1vE29#CZT1E_rnS|AS7@6s+U^nLbjLCjT}nHV+($D?qD8@u z>UA?mEWJW^5ESL(oRS$D11i;NpHg!mVlAqn+8y`kgtb^OhvMk)%M#>k@l#CABZxBW4V0mL;4=r5lY58{Wj!IT@BmM2j}DPz2M}N z!IZndCzhtUp8jz)XpOW6{L1Pz8^vEirB7Sd1{#y z1ki{#)!@k>@=|x7d5#eJFN+Pxwh2vWs~R*otv^5N9cib~B{VT0KTsg&xS(r~Wih;x zH*!%Y3Hc{fK26WfB=9IB+#{U$5|40f zGxD7CM&Kwi8b&IyU4R2xUE2gQOCVaRKes5Uqqbif38>|JE|ByWOg394WRByP;8QS0CC4NSqJHMTG*ZC)T) zi~c-pnf77zi<4`z7WApY)NbR_&5weFtxa&NI#)tjdcx&u zD|+fV6oM4)OQIZbxv`wVYRYH2iWvA?qf&x6o=XyJW@<&C|&W{uwrAGn@CS~zw z8-TkJO^`M$CmW`Kr2_S(4F zcsLG;w$VqufcUSR7m%A(Q5bWliOUFdDuJMQz?+|y)0n`pteGe~2lAC2qUD4OXSw`P zk_x>5JEX@Bt#lIvJEErsg7UOBl^*Gxlu6xW7sw65Ae>`r|F@tDu25Bn5ZNN$kb=f) zcDJ+*GAF;~&l*!l>(aMDMcSBdE&EU^9YT@WUx!@{tC#(bE9`TrUdaHH`uuc$83e%Z zf0RA? z;n`z@!`pBpsiqtS>o!cZwC#*s80SgSLL{^mGw}yx7umzt78Z_;VDm#v%57VNJ%2O;ec}> zd|occq}OlJY;s_ZGXyCB6H%^b0Jd|Vc&pEnReKkY2F_%N=2-Unwj_GpE6WHT^8M^d z$;6ocEM3}^wrQU@6(0gj&c~tW$@>rJFupK)D_RBEFk}^U8*(mo|3j|ms9G(3J0SbS zhUXTXt>>zP=LUmgaak+YVQ77=@8T~^z2N<<0hXf2zJOv|CBHfI>|b0J^nof4^@ZK!ysE=$ z*d^wn$*}PZNm`s`&3fK^>NZT<=E2nA6MKiFbDBnwMCX632bdQnz1#mr1YhMkBwU;Ab)S5+fG*&2JVq6Ln5Qj^$ZIs5>#r z!$1bEdf1}D94X%2d-8M!iL$>seOxMJJ!`=0x8aQQ^v zfLSfZ(uVB1?o9~m^jXS^J{ww0iCrLzhKqNM;JqFb0R!WduzxKy{p4dYqzaMTtQCh5 zNLwo~fAOlb9R73_s*DIv1DP9-<4XpA`Rz%s5*MbTBwCj%e--tD=e+0 z7v8O?F^ne3qy&aQ||s|AQQ8MxZS--Su9FH+KZrTr`~H^Ny@GwCkO>W~S^RD3%{ zC3Qj)#B%1+Yv@BoZgATQWQc!Ek$cLnQp*IMS;f)2k(rg2iG?aLhW!$LCWY;inQR=w zM(ijlEFhFr`y0^z;dS$I#S@+8|FmII-mzB0QBH@6{@2&8d$-WG=c9OWquOK5Ixj%; ztZ={id-hYdqJy}N$q9=mORs+qeQL%4Dnel9Ba0$~Pve`s6PifRtvL1NWxNTvq^BB66U+fk$F<*1C|6dI0(1b8gZU zTWrl0BP{SrF5}dK3K(K@^5s~20-sdadtqphNu3m`b*7fWLv$r-5kvp@({MC5qO28^ z&$4bsVl=4{bwIWFeWHq%se{U@ViR7?-FVz@atTnMMa=d(Ad~#uNS^1B3Ds!|DQfKpeMf#&p|B_BzuCvM|o2ZPzlrk223fXfX#$3WNF)`a4#S z(}j|FCct~3X}K%7Mplmx!fNif)nekwpSt`uz#RNVYvi=(I*o=82xH6Dd}d`yFN*OVpo_petbdjY^*=8To<# z)psbqAO{)ySE&qH7eN0YvvtXus+uxgErampENmMY z;Qd69sw~QxTQ2{^?j(wo@RF9Il+=t2op{85<1Ml4iWOhTRN$v_uY-e3U;UDb&7`gT<0_Wq}zwTEi54&8WyZBz>9d(ZFmt^`JN|;Pm(la6d~ip>nTb?mygvE5dbS_*~;ZAApwA; zAZfrFpAtVI$WEK=ECCObOcNYQLXZCY`%PsksSyQBbCKdQT6x=RSY1~v6%yn3SFqN; z!bz)tV3v?BRqWR-2L{sOoXgM?_@jdJle`iiL*7enZvNr<`U6 zA6HH8_3d=VX4lfX%iG1*`|eJyqtm-C+2+>C8v>vAyX{pa!ruOi$o0fuGaS(bpFs)E zuJ%u-yEFHKwz?Oivy+CSm|t`a=?`!;#RI(uja;Ol)c&}gz88Bt!J$VY0pWZUrDsRbU&QD#sN zB1kM-p3OJGBgpyT{N#Xb`{BxLR>yJc9VDs3M2UPK;&TrNnMrbw(S6IZn3#c{VC)7U$ZmQ)|Rb_tq)h7?#s-TIK3@9MX zF2*9UIb(PLzg_H&-3dYSi`;|~hcUbTl+s#w#G;pZZDwSm3MYLY8#wmq1gt%i{;;UX zXN-&Bk#WJ_5wN5KMtzCGRQX|KklK|VYeJazgXjl*Qasm-%CxGd-(@#D?pgD)LfD>$BOCQ||?dR-lMsv1CfP7{a)sG|api(SrRU8D%v3EHQ6%?wQ(0d|^DUlAZI z%L(w=-Ca*(WE{dF9%)8~5l)RZFHTr*Oh~v+Y{oBL+W`j=<;yQsy(AohoV~Sp6_i8%P|QG(tJiqD+dg z`oR;yrM0M~ud`smkC#@BmRT_>(?MQR&k<8eCD>iOXt)9?M;4)3^kvtrj%2}L5VnO_ z_NXE2P#29N<2jv?7yC|h0ImW9wSECs<~UI1i)2EW`dI)T&uAmT>DRq1#fj*EGy3Z+ z*-{*Wp@yM3OtlXq+nPD?W1lqi_(|#SVw!M$6HYRry$&au$3jfpR!#n?=^wF>ppA{DXYXVZ$Njy9U z`1)C^S#r1qHkTAyK8OIe{}cmQ#J!|K@k5J*II}_}8TXi2o-4hFS1~>r!2GzyL89qG zH!Nk+E}zCoBn9ijf^hENOenV&cL|}Lo zNSe2CI6J1_Xqu<}829mak2%5`D&IA?tgHdNDu3E7|IS0dyQD>fl~*Kd*SD(JfW{YM zqPv_EF~qv&gKkXZBsb_Vt(0rh>C0V0EY! zxaDAZs2T3_vS_Fo-tn?*8AOpimEFKwT5XmL^Deo%=U`b^-kkHYe4&I-fKmD{oiKbf19-b4dE$g zaG7^xkv)OkGM(90ih4VLfhf1n;rWWQ*f5>pQ~U?`{Da%XSS}lmOqKU}J+?})o>uRG z7h7kt-vULh8jghiMezLxh52V9ln#46zW@AZ_7wi}Mf&F(Q}&H=|EC>#yyNxgDflnr zSMEQD)PKF9{0or#=jAE+?~v-h&b(#*nK}Q-7|fpbJ)D|BHcFC0d7;oQ0Qw;n>kyJ#F;Is zNGpugtR@Um?fq7vaHN>e&K_;>V?@^PKKudZgVD>r2wwM%v}__JqOP6 zdtUmeA)joi%jp8pY9gY|0r$FEAbSRwC9v8MP_5|EHSy4 zzqwgV9j9HMq-FnM+MHps6rFLBo4Jq7KJm_8EfIgZm!3IpyF6-RDL85`IdT`Baps$; z!sJ=z;aO&Kw~4M`A?igqyk?!0b2M6JJD)pTspezgo2t|Hu}EPRbJ^U1#Fki5>lZ{p z&#pxj0asEh?e9lJudl5W8OV(Y?)wQBK##>bY=)8ehn~GaKUQ>L7z-|d6${*!8FtTX zCAFYVpFoI7Du5e{_0bID{tx|gfj*-6z%V{sfFKrl2s13Q`HEVh{;c@GPF%16F&uUR zGc2V!hSnVYXraDgLa+cCT!0*w9Ce}X%v^3_a32L+fHD>MoX z0}H%`8P>skWu-`eR%&1;C0KwS4tszZHryNoXP#cXSl=*hSSg}4O&v>kzLr5|AU8d@ zj|DEk3X8Sb9K&gz{<&BmQFdUM9WKBD3;c)~cJ6yrCHk|n13Ov40^D%ecg(P-<`^6E zt~N+FuxM;X8+tj#eY`T*Z_IFy=2++R%qu14hW~*Aywc$!>}yR{|3S5K^WTn9Ug_Zf z<2ZRuiQZuFJ$o_&+hf2$jXq*fM~#_1WS{~2pFE9qa*hKAag)^FY1jTY!T-}!TiWip zbk2WM{{Njk4H*38$`hTDdE}$saP79QhXQ+xEWOzvwV@MqPgKWD-A^Y}vq4{hho6$=r%p#&xg%WB8^sS{gfH^}`17_M;jm!BLcFZ9 zECZO`uG4E>I#yxBnmrc=ZpQ=g2e%5gyYI?u5}uMqOT5bM>&mYq)wWQQtt2!DU1>qa z;99HlTBpmB%R^jW$#tCDRs6bjHJo?~;gg^2^uAC|)(oL)aGQuik$2RQRP{gBRL2J= zg7*Z|9?oStHu-dlYrylYX{)`O=oyNjVRTQ6KaBh`dDIwsrd z6^oG5z6kZ1wp316L+v>c^2N58AEi`u^8p!CDE$QjVRL^{+vn0E35MzW{g zO?F?puG%b9Fa9)Q8wu4ima4mmu$(^qV_s8SbqyF|)?7s}#e}m8K};L;k}M7+`LkIW zmvp+w@K*zEX+~$z6V4YOlQlt8Ko+ zcxhNvaU+x!H~_8sYxvs8;NxxGR`$_&|L8Omd{V7eyw9XfaqQM|V{C?r+R?``d6^ch@3?+xozP5U1chQpv3F`C3US;G6DCCvS?e z5f?V>c1moUk=1oUcXpzZ#B-&=x|EngtraJ9ppnFfIph(PU921hVlpzq6NoenSUJEN z`W;}X{4!4U0Hx{m%ES%k;TKYr{fq!q1-Me$DEtrs)mlNk(qO!y=iG88mLHj-+*ek_ z)w?@*k~%Bx%}_f0VM_Z_Hq-Si9hAQmcT|dZL0k-`=MQd*Rc_W^8A?&P?RB8^_QGw; zSasad5N_}4uS4(wWkY;3c%7Td?P6Hq33J@tam zdc>ON^Pqs(?muhVTKAp~peEC;ym7Em0*V{Dx8QxOk%93kD>rF;>JNy1tey9fkU#^C zgW6IDtDXTO+Q2>Ns%ulL#0`-RX>ACrTl#)a9Di-L9*~w!%o}9m$DPlS#*N!ef(0m% z9K2OX&qDV(2&-;KE5!z0ix(r4e7U(yFleD}E9LRUMi}KsMuOwTVj{c0Z(g|#x&-}@ z{bjoSu<_aHJOiUcsa+}X8nzyf_zIC_J>x$_c@QwbF<1WH3m!dCQ2!1yI7PeYPQY%{ zj&;H!f-y7M`{CWn%}kxnJD4=>0$Ws=KERjQ0L6#-{ow_?l!AU5yLW*25%A;($|kC& zkhcDi9*&KefLeI8FCpm$E6$fA&-#i)+60V0&t6||!vre95|9`6sP%^N*9S4K_yWK6 zo3(@7kOTcGQuQ7O&Dz`_JB!hS$HE?0W~7L{QFOp&un?qSlPx;7)}1; z2me@1M-PYQFQPaxiF`|A?G&xU6<8?p>+w-yQ9xf+8d4fqnW@Mv50$##I8~ki7a`I> zMSnp_BDS!IIGfiTZ;I0d#a{W}0aZf&uxr#nV%{X0924`4Kaz|?@`88OC)oY*v3$Dy z*|(0WF>@R;iT1^(`Tk7AmV9RX5&m!rBVmMjNtEC%*~v1m{jpjC?frUQxI@UWzev$M zrY~gbE9f!fa)4mnAoxbBW{-X~!1d zHQ*{SmG>1n$a!Q}IhhoA6(zf^Jo^Ma$9zQCgF=2-g8O#Td|DP@eBDSGB7HpwWY@Rq zp3+`jTz>BU*^-s>Cs$Itmd?QRKk~`4iCe8t>*Ap z#o&-ANRG3MFRm}=hS<4I(xAeQGjyKotr(q?Qz0|A+TP-K)B%}_bkAzCWS=fJX|)Hc z$&^@P^>e-oAg?eV$$Q*n?$>g))6hFlAG&0_+fHAcjB@DdvzUHJQny$Yiy@7&zUwfz zITvxBmbov|w^~qp?DqWI$i?%XmIk3*Hg80uf_K;hE5LoC8(V#res6{xk%$b`&suY> zf?(A-%nM~Q#ZORbV$>-8$wcj<9cnzz;DxM6y&6|j8|et1npd3>{tkMV2p5ouLVqJ3 z2`-C0&XT#@x`Uy20494w@}*)MEB$g!IJW23Tax-!kQ3;8d@4@dE%_Lu`O`(6|H~s3qGfGwJPB}xT2k!=rG{`R zfigv42}lhdPdSGoqEGMx=N*HjC6IR3+m;pW?HBhb5iNaiI-9=OWnP6sW7wW{JXfAQns8$$ zOzJcB<6Z_Bk}l#+4_g(g| z0bGDZu0$ee&W3vFa@j!-$er((!sG zEP@7EA_K2NcmH+g7`q`4Z~b=w$WK8A|XF$vNA zISZGqE1XjNna)Aa4rykIM9fz7hvn+VhjE+LLg(ft1sH%RkI3s4+y`gL&5MR=Z_Df# z88$Yy+e=Sf>z7w5gltmRKHYImt65E>a^hRhme({cRL?+MaZliT1#ji& z6C8BU(=tx@Tai8v^d>*Wbji4wIPFQixE||nV)W)HHD^M~J|?P#+3>PxdHDeiUeN_I zJGDN7D)JJLzZk)pNoml2mlpb>uBQN30l;8rL+q}hN(za-Ngx??hX_Qe@L%ynoijMG zTN`P^?QDyvh5`(sS(2e$w3e_23a$!n+A88bE`pbU>7LkiH%Va0k%1S*r?1rxngg7A@NY4M0OGOKbNuy20y& zR!fo!)_M}LTtV9+Rhj-s*=Xd#A)*w#+WA*fv>GDimz1B(52*T2fDNa}bqclL66Rq0 z%bn`JqbVMTm2jGVjx4xqtV+g;zux(~`D6|g<{zxBwDFfb!|LxMx1CIPD}3{iSl+pD z(s5~?AFRZXe*UQsg%UMMxR(%It6033p3N`Zj=N5k+V59RtwYQ#2wTIl57{AK2wZQ` zAW8uS_1q+e)e>6J>ZsNmFb|Tl=BtB7H|T_0JURaFYywi#oD#sgQb3(kpI7FNRCHg~ z)b~9Ick-T1701XblqikCVq*c5&jOs-Z__X2;%`5@YoC4Ufm&zZX^H!5$dQ^2j!&jW zJMNDtf@yYXaY5s9hby0phZyfHRuJYD9v7Jdt?|e?kh|zEgxK(ts`B+#e!emnflP}8 z*TDjvlAvzRtv?FDVEinJdx8W;!Wn#F?G1apt%lrvgYX7yb?eCCaCuVXpVCAIGZ~!g`6y0jsDJ3+nT+ z65^aBEV@G%zIQNPz`S8` zeqht4lQ+LgizIM_>#`xb_e5(UN(hhC@{tG!4fC})wNZ?!;+TdKeOKn}VwFh-a>y>* zUjCj+1wsM2W<$7J^aoS?@ap@S9@ zjxg9Z4}}X*164Pn0wW_$X3B^{*ma9m&nI-7#L7=|v~TXgp8olC!&_;q@Rc)c&itHy zsoQexGc`2~*!r|}bnN@$nN({1vgP*K;@^%UUESiTGQaD7fP1Cma^R-geG@P0*84!O z+}4eM$e3AIhj#5CezQoV+@X=RMa?_fKU3UBxU)Gg`UwWc=RR_z8=rPz)e>hLK)|`e z^~QCjdD*9PHe%SaX^*gG`@3o1V-)ElbETZ zHQ1D~KUn;!G|yl~+GafIDqPpNnE6bJ@uC8V%ZS^-y4yow7PS zLtpGj4P+1T9H4nEBEBhxVc_K-f|vxV*d>XRS;T01)H3>;rqHDEeaEn(XVUM_{Ta2tu|mQv$L(?pQgXTHe>&}}Nd>%@P{(v9k#pqta?SHY z`^lnp_PK-j>&+DY9(l?5d=PY_>QmM23hB{dZ(Bzh>KoU|-@8{DuAwZRXW$vATr)UwL< zsM|&_-;h$O(=&p6L)htb>R}6S=7M+k{Y4Iww{Y=Ra-~6wsh5;QSq(Ll6`YPu0?Yjg zBKGPALPLYYRly`+zm$DuX2zJQHfD^|bCN1}>UN5ZU?y|a>QX<25oSi$eil^Qq8NFxFZ2&CQ`Rd5u&MrRAq;P9`*jJQ@|{?nW4Xdx`22-vTXp<)%B8ei=hQfO*D-kF_2~k!HvSZ~oFz7t0OVFC_Y-Bn1*GLW zytZs6=OM|WJBsrf)bH3iTY}(W6W%Gyk>3|G<+CPWDE!O7!R0~4J%6NpZ{SdF-?TH3 zMAO;HBJU}2vS#{65Qn(XRc;jsKR{Ag4>LodkO~F((O9Q%fU;n zWGX}NR;OVINDz30!JVL@m=tD7`UZe@%!ks9g9wfWsLJ3(T&8NCScW^*_k>CHMaJ7EGj7=1$P;ZCYPNNM2MSS!% z%0WXZGeejuPjNUeIoycxJx|kN1gs1yvc!&>y{*mXHP@@Sod`!!y*|UbgB(b<2XT*{ z#__tV^a}m$&+zd>)r+P9SC5?@K!*alD=fjoOPYjy z!jQJQbm#!i{dW-4cj2yVCOw9gWPCSPwFY{q(XH8nVA4Dpqg9#&c?~t1xF8oqk z`L0mrWPZ_Kw>X)WJQ*qo#6p#hx%e>PRx;rUR92(l&{ND_*t*h`BA+ReLxtbwk0iYk zd;I2v-k!8Py95on3FkRnW4DAHm5|KTK#8!T9_pZUr#pEc>ofjMy-CjMtZEuBHdlU4{x@7cp_}(=*F6r{wjH4mBnvB)VDo0uFd@6&Ksz zD$M@KB{k;|`Si79716Ijp=v{Xod>~h_KC#Kk%Xv`!YQC+7Z?aPH?-4-vu9jl+99O( zgRKSP+!7;V3U+1M-s6jDF(RhMk6BV!fDLTLzp|XCzW1+Z>_iT z_`h<$=U?x`mps-1m*>zu5!}2?Em~0z>FK&9Lj|E_^8NJ;s7aN(bdqyBvzx^@E`3*? zapHf}+hBBbi!LdEIrsc0FaQS9LSLE8^ubKpbDn-qP@vYw=IO?*N|fI(Hci_wjDLK@ zhs!paas>vs{n6)UBY>W13PKkIU9xG-K2h0?7JIq)78O*Koh{q@1D8}6E=s)pV#$5D zHO5#cDgk2*a;dPr3u>xDeU*z^DbSv7w+V-SQpf7p`)pdzIXH@vC<6p@Xni2`#Qfn( zo%eXcqjSPah<>7~X{iUu?ixS%<%{{zz)%Av>r`SJXm%Zg9BYpuFZY}#mp~`ZCIDix z-m$Jks8O+rC_i`8L;<8!3%FKw1SY5>YuJc)0>>1Se@~c%l>ioAK|#nrJ-nl>*pplvd7~<;F=43#&b6}LIRc2La?AeKoWAWAVIEYW|sVxeRwJT1J%RE zDn(jZ;*jvp{svz$C!Yw%1O)yLuJ=U*{;7m|u#0VZ#v;8>KO5N34gLmsUH7`)9Xp>) zu2D z4Fz@7EI%gtJ3vK{2h!M{##7!l%>Oum{?Mvotb0|vNJ7{(Ny|8pp5VcR*UBG^=dO}W5wZ-FB7J#qQ`5|bvY;wnJ9MT+9 zR21hl%8n$~!Nh*4Fx01x=C~<+U;%PE!3v=nSyD|p;+Jua4h?e1U!V;JBy7gS;-3r3 zVY~=&1$)+(zo9Jk` z*}Hl{{r#czS5Bx1jQ2_PYQ1Lsg@@-9&Knh+8M%*Mvd>`B4JA$vA}ow&VQON53(>u4 z3mtAzwx%U_tHm+6&iX?BJ~`5!)1IAp5W*}==qPE!Di{zTIFf4(sP6gdFT;=18AUb< z-mSIpsFfJTR$WXKI+4J&1>PV)VGnTRwXu+58lwn5#Jv!lhg#o8LGwCQ%M_>i6bIoA zt}?Cs&I%aXyz|5cL7UM`%aQ2+xM-=ecSuT3YHed%`xa5m-5zXbass^j{26pH9_w?- zooHbUEc366J6%k>=X~`>DiLEf#xJp2^KB_u#0YiAs|Rfqgr;U8?Kr9riR=b7WEtl7E1Jx)UsynQNudQDormS)C9n}4sWtSH!I|=k%NTp7 zzrNYWLpGl}Y>rA>d>rn9d5@cuN5)ioqFd(eouZiDl2`dEMkjn_a&X%w_@7+Vp(i&3 zyM;UjfM%OqW*ul_ZTGhqH(Cc^*4wS;gtghO$fJtiSmtcMF*tk4wP1`fD!3zy& zaGeC>QQe8#x?)CXo?5*&_A1!BI|xQvca-$8EB`jrG*`8-jTu5;>fHWXt=KrL#Ky08 zH?$AI0^2QWecR{gca~}P^XY%G(HJ@g&0OehgDp6lJ*TPDWygEU-F)fWB8M z>!o}-RhFJlat8_I`6hG(O>6h;FdgNeQeQ4Z)8kJ94J20(4??17;Mm03=PINTq65mF z+fD3EWKTDb+N7KWd+hBYKB6d>*LgCs^gs3uNulEHVI z456`%Ozq?>^9nGMFhn&Hu$|V30jD|Xdaz|a(+gl^{MZx~1pXGkbC_QE(QL=pE;{cu zuEI`WIn+I~3B2oTg3Q2QkFYAmAW6=HJ#QCiFKrieExIVBgn+x-=EHy}pteuCQ(1D& zTi6Ki)G%sODpZ{!mj{_-3m6SmDsykc#H8Y1dUfLWhsZjw>G8UtnS9%zA;Xh#`62$dlklyA$7t7gxHCwu{Qj>p^2 z2ZcjD{;jQ`kVKd%&LCuptmejS;9A-XKJR*Q*ta5lgHg?CX64~emZn+ z(DaZk)1cBRy%?t?@aX9nX)0E1P+|cjP76{#cQ~C8fkzGDIKK-UNpIGRG8Y=V8ru^@&2tW64>t*Pf3oXw;9k3F6AK*rW;)^5~Z6|5H0!D;3aBdgYQ{bMtpIQiZe+V>;<`PkEht7FZ+PP(|nu5Ojy$?1iMGnJRN-Bn<&t z|IPco3@rQ$)F8XK*G{HEHGkD$0a$}+t`%j(PtW8yaY7P#@%mmP>43YBzD&ttWyS(b zlzvPC5!d-m$LtywwXpdS&4#9kWtO5rf?j4|_m=|^&yk8vE@9$MUq_Maej;(ms~{nM zsY2GVEDzDo(nEaD9EQEH1Z&2w7zSKbJ#+!Xg1te9aVj*qm0g$)tL;bRM&ccmNfL!f zpnd;dIn*FQfjiIepYhQvR3S!q(Xw9L?ox$(3c|hxF?-riZIXg%Eb<|*B?N>ZoQj>) zzCIRv!a}$lzNKmUePDegCd{+6VudW&F>xJ4?v!9wFcJ4O7!X8szcvw*n(SP!4jM^P zVfM+~KBTTPkvESzfa9=ShEUvM(_pqFV+>e^Ac<=8F^(CrD5HB#L++XIZjj)p1!%x$ z`OT&b(Vz)AVJ`Hz?y)pyum1LPB7b1urf*>A%IA3My)*)Q#=p6Pr3Bsa`DenP-9&Hb zk3I-xJm)L~2HCmZ*~J#_goz&O1pRt9n}(@SB6HLlccIXEV)Ns}+L5&L`lgLT+Qd?A zB}D`CFymL55+^u@WB07u*rb~6LlYPQv?=H&xcz>Yqj0f(cmiJUjP4o}=19=5$sf>H z*y6!!gQcbQW-_ROSM+OWkc{h|hYPO8>Vr875KrmJpa;cczXnbjt%_I^12&=WJ0caOR^{znRP9nzXq8^(uXNa+QF#mNV^XSyO=Na0YOoI@`Xak7(@wz1*W!n zx<2|cW#vKz5kB`PM+ShVK{@-|eSnf6Ie6t=3~<0_Rf16E3lu(=i0ToD=&hhTQsM&? zw9KlCVV@^@)%!Em>aOgn==3&$nBMl8eCT(yiAPX-`1&Ka4Q!E(?c4V}a5`|X3$I}W zAO5V;S)~-oS|V$%qj%Yfze?N@QY2n9-2m6!Yi zy5AkGtuI`vUKMaD$%kXKyMQqLjA_^N%k*7hqR}FO+@Dn`II?e2*`e9KmPmL5`eN()oLLZ8@k94Fw_zG@7k&G?-TH#y^pp5(=u&P_HQKIIc%-F~IA|l1+chHZXJLl!kW_PCcuX>(N zpT)EaeArAJH#`w-_$D+@$rn~SA)7MByUfadaT+n4SeHNa4G2e88MSb6RM_?nu}s1= z>3S$eBfwx<9(96e8a5`Z*~fO=^6`Dl$@(Oy<;h*{@&rh47{;pDxN?Mgzo&o9$$^G3 zvn96EjqhCOkeMw;YJhX6Isn1&ap|M+_@^&L%Hc;Uet-~Cu zV|1mo@9|`SANNetsI@B1lJ2^5YZ2jD`!un_%3550n3HR`ddnx$SOCD*iqUY}K@UrJxZKrA&l$6+~ zZ?s4S{|0XQ%$#W)NX?bVY>=?Zs)u)qCx}-#D3I0X3)n`8E50V!K~X9z*B<*W2R#6` z$KJ4FGN-(KmAsgFy8p2sUnF6c7~kkCHZpzisUf;SYOEJ^e;K~YRQFLRuMq4Op7f*&!MBJZBgu3=JhcM)Q%=FXKnZJ2jF!yYHuzausGm!&TNo+I+EB?i*UJ-3NeD2Aoj z6qS~EVFR|A-@W<_UjVeIEz{SaCYKJV?!9sML^58%$gQ$fPa$`5Y#a8lGz40cdXubWZKqA=dk+82)| zfWUFNyuw^Q+X!4j!ZA;dXu;BK2CCMPsz$r-j89S6zh-&Wd4}WcaiQ((sMtv?0H*o3 z&?E`%!Rc>?Evj2xgb%k3N89Zp<>pwdAXCBZ&~>iCJ$dh6Mt3{ML2n7XuN3j4YF)a` zeAxC7(qpVNq*(SSlC7-ZKrC~H;fdawCitR>WV~xB&88e>g$$%DNmfxfEEs-KaD z6RMW0R!B;7Q~Ozkc(lC&6NXamb3LnHDd)Hlj&Qsu}X~j4rWrCh}z`PR?oH#ESu6Utvfr&O<|` z)g7wHp>t-ZtLV1vW-UZw52oh$Yv*e$k*CoFM7%41WVrUP#8i>&pbX^Kj9~^g3&Mqj zkh6pqg8N35m)>3|v{*PxqLH8UF+8+0;k)mg%#*X&ReY4y5Uxxaep$}!%ChtAiL+c? zzB`9$;*F=dc#lg?<|40EJ~oorFp{le>*fuTSBeJ-Z=G*jG*}D?*Fxh-`0ssr<2%z< zo5F}SfuR&4=AIN#*|Gvmv$EQmlQ=MTDx&U4Hw`$(z_bDKW9J%wIU<0Pcp|kTYd>)&Ukv`*JGPs_@v2<~k)s zau2&?m{ZoO>+)~JYf`OJQImeRyNfbv&yH>f@S5uRuockEB>?!ISY>4eHgYRq{VfZC zZ#S)VIo|2*?jN+?w+?V|$QU23+9HvFMeTLtT==6&LN~0@G!at?U#!Tqp%tfI71dsy zHA(gJe!nh?GqQ~$FA3$ePYi5*Z^ZF>+o(*ycnh)8j6v%wyoxITZzGJApw(~*n?ths z7U|buQIp(}yW1w?YO38OLpqE=fOphs6pa$+JdQ4%&Qb5AwX?gAX&{&i9mQTBprV@s zy^8=O*0%1^`Qug7;Ob-jr8gY>zjG|@26Xh zh5h$KJQQl0cvizyk>8R?Gi0%ezI6;0TDP6I2X8!G7=bU0!2b=5z)2}#+kxk;zJW-# zdZ#BH+vwZ8a~jN9Im?+tvuxdLCHBRL@(B#B+@GODE8-x%d{qVXCrpMcjihljQZ~jh zrHRCa`DHw*kmwgj*Lc&4cOq5J9Lm;>*xJ~~3xOaRCl)wL#0R!cHPRrlpn7I+PdmG` zHifsCsX}X+wcU@IB4?b>;Sk3uX*j+4%gm za;&<6<(ivYCSHsgD^*ygp1NkPDJ!8&rxyN4e9U%%k=fnY7d;?r8F|T4B<`dYaHV|_xjbyRf{POg*SSep#4HK4G50qfe#$2>#CZ6HY}0QMM<)v|G<1@D2qNTlcq%i#R}`6o-`Wk;;(YrIX*dZcSW2;D^@)C zfV#vah2~L;%uzGQm|&`WvO$neg^hCE3XDu0bsRyB@Pt0uISH(|7MaGJd~37Bdrqtk z`-AAoNiaAapf@ME2~+RW9r`5W7O3S^RBzS%ZCwUDq_=kWh@GjVCzgma8XN6Gqg_TE z)}83)oY$|Ag>S5HkcvICvzvSgpV1J&>!(#)uToLVfGstiucMIa%%1H}KdCwX{IeBi zW@dSqt3RFqP-GPJS`OFiaQ{^(I8Mn*G@1nvFI$M$xDa!PuEFl}=c$GL&!IFFmxf4N z&dQ7~0k6=2v`D6Bp$R;Fgd!@dSO>%TJs_f(eSC0Sx1ZYl)nB2B%<|jm8pfz$PAt1S z4OIhw0tGXucIbQPu*i#8cUCk6tdP=6r-cuGWj8W`TuiYF@)Btg4Tn&X%#y^*+p0Y4 zVfPohLPh&JY#@y+-j;`9pShJ;!$3rmABYg;FYA3Sg2v%w`a}~nx*Ntto!fii5i4qk z8-T%^5hx665Nx4i!rgc2uh30x{vsHa9735bFT$5UQ~y)Y|DF43J)R~2$#pOJI#D3! z>;E~m8&u@` z@1s3DMgNol2+Q7JKwbbG`wcBumu-73@it4N6jQ69->CBI3*vMN@5VkH4njLHJ5OUQ zCCH0uxi&Qs^F6spl{)A}9-d2t3(~NC^7~WCjgB5G7X&~+;2;R6pUSM8$gTla6xcqP_mxU) zrxv%kcOn3JRa}ZR<{<1)c@&IQI1qKwO(ros&*&`iV`^PRxU@6yT>5e7kJv>y!9GbF zi(8LJ7w4ju?u@$SV_8^-o#VC=0Lj@I^9H1BwvGl~G%+A!sqPn@7&Ab|OUZN^&~c<9 z;A71(uJT3*G`PkDZwp;R3U^yT(Bew3duDT_rhM}n&T%N zzMp&*oUP6JSwKTJ!B^GzSYX3#)H-RN8^)7mPSy1i_bTvQy+s;Yi)DDRqPQZ)SbIUz zpRx%P2BuN{vjY@ClmUhu2xxAJ-6hua?jc5aj7Roy;*W-p$9NFvDnZhvB@~7dQ}vZ0 z0c(F8=M4%P7^5>nPt0>*M`|V&IJymm&ZlQvF5q&8l%$q1)Vh5Y5KC=3KfG}+fYTFo z`yJMo7fR#v&3P=Fb8PY_8*{f8q#c0VWOY2oTkbvH72%X$hQU zhA8(qLMhEy$N!iDW`QlTtxo}^K(T>CR(x6=Gkc+S+J6je0*dpHc3?`G&j3^1j`8;V z3^46P&ilh1LH~%r5KwuMdG?eX_Wn>Zp+KE5AcT~w@n>v-S*LrTvW$W0Je0-FVH~s( z;H=RNvwpFS!EPZANM8x*DJRj5CK4cuCq|?kzprxvAx>7TvG&QGplasX`+p~R%Yw(w zD5ax*I!c`5_R((VaOarDfPcX6+s<3}?c>ISkEW;hidAXMG~NosTX&^27L`^;f0%7_ zggzqI7dN~Q-3X19l82i--x1qP-5-ohcW=(GgYXU$6y!i5`po4A7ln0y>8yWxCTcg6 z>2>~g8Po)G98CLU*l-=As7*URYdNijz}Z{T@a&0agcTbd-YT>ZBw#@=jKZ5S^5ERC znb;daN*qW*=U2$lag1GlZPvDD`AnE~Ry=2Rw(}c);~#ZvsPej;n&yu}d7s{;ABQ4) zQxmlU1zpQhPbFhgJVMhTD_N{jbFZGco5b^--0em zDE6~08>2N0?2>#(Dau8!^fUBT&y*YXfo@8%2)KosbL5`v9d!;qX3Ob330M%R5eksd zEQW{o1~mz4O=Co{odqT39gpg!`3$TvBWF*eR*zS;kl6vfAc~0{lqSH8k6X64D|?TW z$+IIY0z&v0j!x?L@ywBJjndl`B{Ul7At53qiS6vt^%cFfqELy{6r?&wJhjFRpwQjg z?J3U757Ai1G)d>eutB7kli?zWU1+C1YvAT8GQ^{L-tVt@Mi;{i{IQFp#5<4gzRQlp zURwnncTKPXBMW5@aF8`;JPlExhOSNURahL-`7mlEoQP{`yRh4tG*ofxvR1dSUbvaP zGxTMMT1MHpd^Ps!_?dJ{B|vG%wKRuct>c`f%?0_~-)aAF>bgrR?b|d6(@7e;>C&9T zB6qx$3`19Ntb`Kct|_H4g|JIMx0m>qoks*KxYIf6d^|ilMMj$Q%29m#5vJLDxB)>c)eeuv^ObNM#bw@n@uvQIei(M^T}v8eRQv_5tQ!E>|PdV_1ucV;oGrXv-R zP-hcZR}pW{Bec?sLcf_yu4vj>!)_=h{x`1(mfUvdZM)O%eUvuPt0Z5%KaKJBzN|Pt zzy0Qv)p%Wa3*AaO2Tnp_Jb@f_YYLM}k?XKEbh<^G^PuQ9XXpbBLWs#adC$f9ry32? z_4C*Zr^r-tOdLw{Df{rX2_!>(Y1R<0Y&tf%tz#j`K#1J z6jIsVRx!^^?gbd?K1DN@D7sp9DylJY4zFLCj^4zWcDN63fY;6r`kp6DpR=+$FZBXc%NM1jQg-?~ zWTWF_nymz#4x>qNw5GjRpk!g|b5~?XE=-h`2jo1KL?|#6nKS0_Smuak znuCW)gGk9nW{ku zW2XmGvoOKSe6AXPSo)}xq;qHTa|Z-k(yAQM+ja;agVsv{Q9WmHhA#83v#I1W35fV9 zUG2}G)$3Pxo|a9@X3gsNrLy0-X%xo_)@>`LRz}d?{fPUL8H?!$Maq{J;F&Q=hIb1l>sGzj<~S92j?ZEh ztXbL&L!~lf1W4PPcO&q$MyAo1W^HFo9iIg`S&$QJ5dXI1WI;Fn=h2OFUK>9WgZ)A& zB8+IQH4!=4+EPi(z-gr_3A0MvW%GrEbSl^VsC>5ecJ?A2H)?0grEb0`F+Agh6wdNqsYQAjBJ1#~sb zf;?(J&MuaA#J4arvobFSO8z8x=;M8kDVq5STk zN!IH#Z!z(#kwe)Zt6HYH&K!B>LYP9$=8PiLEd=p709ihV3!-erR=|2ec*NfnZgpm; zsWp*yIQ@(0<-6VqU-Hb zg&y+GkbvylIHqq*?^dWeU@m|@f#=L+N|bYB^2zeS4p z0ZiwN48Ttp$$uCAUH@wST{Gi8&GY{$yQy(>-9Lm zHA7C7XGYz!F>bRZOa`00+3B{FJtSVgcC1i9labd~t~d$j%Ave^bjC4|b?@+aO@(Fh z4OZd^E%dF!(Z*2+m^v6aH+7n_rq+rq$%$1K$r+o?Y(WiY|_g*e6`+s%4k6S4Gb5Sv&)MXRXYUoT!s ztU@1;9#KO^FXlaZlvT@nD8AuZ&DOlr;Ihg+SzKJc?1#cVol#KcCuzP~s>`zBTYaD9 zhku5{Kg$h2H;C+Ns*Z7g{Ba*pY=t&MHWHS!LbI!*P3o%3inEHJtHg8P>j(qo!c*)^ z9vL{WL=!Wm0lIaKDs8n+2<@Ocl1*#mlwgFfR#--6>F@I=$K27+ocYof*PU+MQ* zD98?AvaWV={pamjWg4nXBU1+Z`9==TWF3%eLk><>ot;HV z^Dq3bhH}+KDUP#0WbvH!CCL4qG2&A1Z2V`vKP!D{;lccZn)7GBO;desbq}0q?|H*{ zY416d;&smLZ{}X3K&NJ5RB92I1)EKEV+F*D4m+r>vAQQ7o>b^?CD znpILpq-hBv%{Oxg1CKI1Zc6?BCAgW2A*X~*NpUgzRwx){J&gPgO*|5$&3z=>EN4ly zd~88Ja1=;%3A2%UKzRq}F>Q#;EhL`9-8qy!AM4IyK{UM!)uH))p*kvk3i_V_HsZ=f z1L&`&1G**tcXR7$A^uNu5&!359*l2x;l*B`bniY|cZOPV;r!8BpY6Z6)~8AFlk++r z(n&1TJYQ4I!#W;ps-WiCMw0!NqWH{Pt{e`)pZ!g@%!1tn@)y)M!tRft=3I(Z0fz8 zqr)Hl7yH{k9vz!bglSB7&nL6; z(&%k%m5!!!U>|i}ScT(cP+GQg1Uq1_W0gJS6L0CNk3$YhM$F3u#lBLU=#2=WVMW&S)0i;K zt14VXB8Nw?<&$MO=-j*K6_smAx$c5;Yf|ooQBJ>He@E{c%X!U=0gLxSzGwMXrDU#e zr6qH{lalh<>7Ut0)lXz3c)U?#f|Jd|x>tEx$(t4D53xK@;YEDnj}0KL$Ish^a55b6 zGE(pq|G_HmVRm6F``2$}|GKTLuU&gASmoNSTzf27rA&v$+6`-+t>!*=l^tZc-a2Dx z>iy!m$+dHx*}>AE*Ut6U8cTm}JJ%TxmM&-~uQC0H=^+dZaRr#r3Yrjm5*f{MCVxsH zXfnP-DR{R#J9~R5q3v~!8c&}-`lcZ~5&5bL708~8Lri6XA&FV0R-< z&IcHUv8qDs={P5t-T+#ufJ}MPsi=ZAiI${|77P3fUx25EVRT9i$E$M0Ach7n&)`i@#XhTX-nA@x9Z-S!>==Y?s?6ayP~ry zdzDQlD*Te{^CFZL2R|v|t&Fq>n4@EGu%=$Lq7CPvy0g+`4yeNj7XQrUE&R12&VDr0OgSU}5lL=H3s`(W6 z1}-)7_Mh==oFbRFITO(N`u`^nn-3qm`v2CW=B@t!YkV+lQnun=qoGhQi(NNcwS{=XMrUSh-3;i3Jg)TDt)LX>1{3Nf3#JwL7=bVDbc=N9jsOmU% z+WtuH8BW9cUZNnbp7~72&|9(tvB8SMx#*P}Ol=b21Y)1E^zz=p_CHY#f9N0lu-pDI z7k}-2Km5Q|hGt=C_Tiw+#Yx*mrMLfIX} z_+f&XHBXax7^Y#3&ebBK*OA z4_BL#30dXKL}WaCd3<#8x>IH=E3fG^mTu%qF0l1OO0Sr5qA>N)q(o)&p! z_6d%26FdPilFwtK1!@wnTCR9LN+6q8cvpM6KuWrvNR;%3xY)g#P z>fl5_nuc?S@&W^P@ZQsn8Vz-RJYLV^UK*Sh;2!PDg6BB$xdVskZ2u%1OZ7pbIb(o? zr$sB2bz8kHx$foy{Gvpg^@n|oQ8g+FUCH`Q}*6Zxz#xjheeY!A0_tSUmz%i z7eBt}5b!-Tp<9Sz3sAsd5Hw3b=gA-dv&oRQ?JP`jOCG)M`g<=iK^^i$Qm5iX=?JOL zROK6@>uYN4)pmygW_cISg9IvpP+WySb(D^g$g@(Xh6;8Kh_AtsMsRQRM44S=qL=xg zC$q8b+mBseG7v$f=+63~6bZEI=vpJ4AzKtuC~*jF9V>QjT|;wK(}YjaJw2A{K`n#g zRS)W(o&sxl1-xz^kbGSuQ|dp8Av7%KU&d!QytO=R2OJvlh| z*>6@~BqVbH3t~~JX0mzAYpQSdq(I%P1hX_AByzK43kH-4_4nVsd?k#sUR0&LMlw4s zY=vsT>Y=bpX>Po=)yEIkSCPyVi!0@A^uyEHSwSoFYJ8Za1>GvIF#yErrNe8qfeA!r z;dR;oS=OIKlh7T?oY}oh=FYAbNz@cSESuiBbG2{BG_Y_g2GI4Em1&kB|oPJui(5Q)7v}d`83a2M>dE3&qLN zo4WTLdQh$doK$seru<3JY3TK5{@rk4+Awz z&O<_S%vF7I2&{QGb2XC+=u(8HPV%e8mP8wlr4s?|Podv$A8OZ^!CNxPwm~pH#@t> zM+b#(j<*kX_c}jh@APfS03`e{yFJT%(^M>~=`6%c6IWQ(XhXq8%qN>RV7%;x;MT3MhKA2z#>yixZY63~U2T*{00byCC0b~T& zrdK5?>h#iMAp+kqW(#sbLrVH|x5i>wMWmJUsj+(zr}RZwp58M-QN?TI=>~}SV7Zh- z@CQT9>q@QCN=}UeHav2K9HWNxE?)`PL(!a?ISwvbRkK}JYoW^8+R-xAg!cv72~p-) zYBM|$zUbI$Ga)T}cvxa3nV-f!E076@?%zj^;c5>zyUN-P9Ac z(_|M_CcVn0qXx87|#cB(Ahn5fzUGt%qZ!{a{=w=`m&$v z%W!^Q_K)%~j`Bd_`A}Z$wmUlx7<%TwfhtLF9w3bSxV`T{;)f0>w8RUBb5{yTqq|h_ z$X%=1a4wXSgYDNY&cGuVX-2_h9+V&2$9crzhYlnW{O8Tl@zG8W7C&_72o9(7VQuFC zZRel_^Fi$Fe)ITo(}BVd9YDQ4KAbz*hkHkd?rh^Tce=+Q&d&q1+x{^(GJ56!;-lOg zK<%HpYdJ{#&;b>GOxGM(_!>Y3vtjDesqZSAA`N}YlGC`{V`8!n%glxqx+s#8<8AIr zr-(OY#!X7M1ybvz@yxo+Q7L?~(s?E(wMbUU!o^zQ;R={=!ClTA#qAeNQ*YO0%+1FsrlT?xzQYD5UhSp~8Fy9|y$1um1=b325 z1Hv&+$k=rJ7ULCE>eR6I$&z8iL)7YSA-2K)y{a`2brTGmtZ|%MtWv$Go?5N{)z&jpB8qbCx?GiMMBCWvI zz1CxW(xgN>+|4_fhD*vA(mWmjvOdv?;n(IeBDV9izFf1b-Ju!6cPINthcEqu?Vs?m z^mxl_A8#MNY&(^thQed`lNAsg*P}<0q)9P{Aoi?vGXh*<_A(=q@q%q@-DwDZS^Gd= zJgXpQCu0zOf(bjH!P=gqx#9z%OBWXV7so598eMB37z`%z z_@Q^-KESF^)##Nj{&ZpKbyeC58H54E*Ij*y6KlojDldZ}M`Tw($F9wwk)>jIS!h8> zp7o?oz-z|oG@cSdZuk3Mh^g06H+m^vonA^=-UgD?7Uhyyhuz00QUUpF#M6GrQ1%Ai zVVf`5Q68Zi&gl&EO^=h=G|WQwn|y=V_8()ByMJF6HjKu}1Og?WDqW*r#Lz~dqr1ybR< zW&>YRDmIPmG2-3{{0;MUI4iJE!XtfyIwRP6aZG^JSEnXB@rOxT@OY&kBI51# zV}#_@;(Ryu=bpm1dyH_4$l^T%Z}j(YVXX{n?`gDMSO-wAC{q*Q6l|ztJ3BjVu+k@SPD5rrM7OtkN1||y zhtSP@8HJF=MG&Xn@{GYOD+9dgCM~4MkK}2@hZz@+?YyqU-D07U{jQ68gH8hxy2!KX1u7aI zglX@=2oVmCM@fF)sktNTnJsOJ0+OhOS9NnK>TDNKyjF5wzGaw>%!B2kGb)h#eRWC& zjCwBz#Z|ZG`q(vcB){x9#?9mtz3Ct18Ao_)_JibYIzXe`T`L!TNjeQa!1+!o>FBTB zoq$mzJeMOQ{LPjso3G5WmvsE_Hyew2YT{4;Tk3#pEDN2Jk}wqzRVrzolk`kX za01M;5`IKY$mb*X2!zJdeBYp;lhRHCQV6z?DHR!ortc;ukYg^(YU{?M)G$;(2Fne&IEW9yC13 zG3>8PxhT!%xNl%sG4euH1&H<)Un&;Il%7$>ubFO#sCf7iT zEA033y)GBDFib>4XS>hY>RG*bTvDrKtJ~XLt1Am$n_Ie>AIx>ObH00@zlp64oL!P` zs`rGdXHjpH?i)EVB-$>Iy~~id=#o+N3Ol)Q7tha;qQk2m&UT7Cd%+i!6y&+Fs%wHDDWn~c32P=tH)94(ubE7H=Ih5GDN6>8?0Y!|VyC5q}Y0yrclH$`MLY4zsfsVKzI51SCHyTn}$cc`AC< z$^-LS4d3QDlgtEr{lbzKoEMRfEsjAHgJ)Juv5i|z*5u@q!_QEoZp$&i1I z!@+zq)CNERG|~{=(x39PF{D|q@;uy=*{`7m3VCdG{JjqD>#Dq2O;V66`eDtTsr;Zz z_FbXWGc8JSGX-uaGndC1RX|yT>E2m%!z>xGwkaz~v`2;Iycp?k>fF zIcHn^d|HHAtgp*0ZB|dY7R#QrRa|aY4OI{cu0YY)c#5ssv;+WRF}$iVQe+9A#A{4R z1yl=AXb^G1VnZdA-a%H|0P?shmT(yD$DY|T%&}IBx=h$)5j|W0j~~k{*K#Y+{}} z%FZUAAB#&z5(e31JR5<4TIXw86}2@p`oV9OaHkY)_*ZEH7zQf>1_`r6oa?&R+%M4u zNR@f204#=aUCAi;fzIYe4WlV1gHY8uB%9xlV1ktvP5O^Wi}He0Ffzl*Ab5BP)}TdF zS^8WwM52RzE{? zQUu|KbSTQG)M=x3t4g_HRmxHk+LmZn>}6P*n(_Ka60i?m-Mw~PK!;Gn+~;VunQToNXi%U@msG1M1=5?T z{|;l!UGkn1J|q(D)K2Dw>ME6T!r%m0{EWgCr=fOPlbjsrXB`d=^{eA3_j&xnUjM>G z^GXHCr9qjUef5u4NHI73rO8mh?q7A**bla$`mz zI-M9&8|Vlns}Il8hL`O_9Kx3_3-nIQZf=Y zFQD*s!;~%(P(P38sUJx327Q`f@vG7@^b7xZcYo&x(+Ty3-)VREe|V!vCO70`;7HC~ z#JQH#)fWZAzd%#%4|qq0ar7fJQbl=gG7ZtaT|Dk+B`D^oOv&2nV-Dz!cuG?-h=+KA z_#vDsw{B@p)o0UK6?c;N(nYA^%?k|&5@Yl+g1G}8tS{!OZ_Y2NcmG0ejB_JH)R#Wr zN$yB=4o8u6wWgwds-RNYlvu%!jhW(8#Hs|G#a1eIFbBOT%omKhb?*pP<>+w#XM;r$ za&w(h&C`GeL;o5=1O8kcDiSFRo_~+_zCA3_X}5ns6v!80&jgF?saNa@Y`jp%8;o1; zRk`DJjaw)V<1-=_wggKC9<*QYP+Fbt@q*lVSFwB*b-e0GPU2l?09&X`;g6lhN2mMC z#&CE96ru1SsH1h5efa7^gDWxIiVJ^Nabb?NC{G(12mi_TqJJ@gLFh0hceO|aEm+~s z`nm##2o%Lh#Np=NZDFtc7gY-0pQdFCijrB9PD)W{r`2+KK@zj zRgQI{CgWKv1sZ!brk9TWPEpWRq8Zp`p%v5J5+sy18` zAqyGYf_nmr<5BknJ+Mu4^|@boZ{Qa^zkffgcz+AfY0`N1VU(i0aF(9u2dKl+a44J= zjw@`?D}dl}WDOHNYo3L?__+d;!U@+sQdf~kxtRRl65k(Dt3g^gxz5kfKRWd zoB@@CP)JbODbo79X#+L`K=dqTlZZZ^Z+|@K`mc^UU5v~1ZWSNLgMr;3Gtqefj-LOs zz0)nJp6BCwR>g1zyI3;~X(9>*v*z$BWgp{mH>#d5idSQ9(aMHv^;1^Tbur1*la4iq zE8Ey>SIn~uWEwraj@(%GS-1!#y`Li;&0FD4_vCpI=+8AZc7v$t7SBY8y4H=El2qnn z>GtuL8Pf@HSo?5`tF#9nuQ`Ay^~W`tMst0 zJR>X%8r$5HEJ(^;u5elo`_|*d-cJYZ4P_4MPf=kr83yAqN63ejMvLtJG`Qfz)ZXi( z4v33^6@^X3=w~%m(qjz{#{vSxIH3rDY;US`EA~AG*>$NNkog-NENL)xw7A1=Q>b|U zTI3<=+IMNoO3IR|7R|B%ReXSpP;0B&_R{K`nt3UT0XzQi6E9lUm03C%HH)aau9`D( zFe_gF(93WOy+xc_H|#q3hdWJvnaP6`|Km@@=HCKq(IP77k~;3UW4WdUdNT+Zl(Xs7 zhLL-~-`{@T-nWj7rKgNJW^!43B_<15fr2Ta?wR4tOn3%E(GRUj|70uCa_1c9jDs=m zmL!J@>X_*m!OaFq<^n@BvLvRPxScQ2c{<c|r_l;Sejomav>xCi)1#ft_>mam6 zd$ndTS9jm2r#F*k`u6h|{p9k0Pg1{k4n*(f(tj_=|J`amdA#Q2|9<#n?a6Ka@2~N} zkZ!W#a8AIKh2c~uq(;@wGUY*-6F@^|r^sI10wzx4nSBeIE>Gqj9u~scL#52sf)?fA);>i$A?h9)6oV{BMywJj>Pn z4=4Tf4J8eiJfQYdEAh9=;fOS>F^l?kGV#hJy==f1`v4e5Z&2pJpiE(JHjQARLAXgs zR{|%03CcT)#?c7P-Px-(3oa_LNT&gw)N!H#hmxpIfm88hNH|OKb)Dj?1=BR@&4$5L zG8Qz@{0i^rVHMB96s?u2HPqYV#WNWV%#sP_$t6^{ZR??46V`&=-}tiw|DV+?Zx)qzRy24;* z@9eZYZf7UBN(pfyoLcM?9%IOM2zz@0o1cD&2_p?o+}(@bTa$`?H`dL&=T%`jkKg=s z@;m>1DSwaH6`9_ibdK@q8};|)@oRNTq+tUj8FpFeh2xjUO^Uw1gu8ka0QH~*A3z;? zD*rEh|M2!5Z}1sy*KkI-fEJXqZ1HiNSP%CQ#i-ZMgj-|$ z0WUjo_Ep4ZgOw9wf}IJVXCpE-we)ZF8c8;sIM3`rc`7M^Nvq^&{7DdC4@3cCpCAjU z^c|EXV;WB|WEqU$LBc4WwV`rdU^oWOa0gs+Ntz^rtSn_UdF43Qr{OTZpa_5xfI>XF z5ry6k-f-jXqWdz=6ddTXBq?5|Z0FvO68BYoWC>aKI zP#jz=AD!adw?@t z(u-^z9KBvCFj=8;c-aybfLu5U1C_ZF1RUUBm=#$teFJwD@k^GRH@v&auVaisIXx@% zSf{Ph{%No4Bb_)oZqJ*((%V66;tkso7vTzg^5zUBjbpZt&@=#slK0#z>b=niS-pJI zs^!W_5}d(NNmGlroZV-2b@iRypsrzYySlI~+|B`6*qDq(ao-~80HEiVq|%G0(=eID zV~#t+oU~Z_p@67(2Qg+F3rzMljV38<{k#3uLg+f(JsyqnXI*@(&$~JRKb{E`!9!w$ zvTnZ+JYSzoXX7k32x$kI7LG z={aE3uFQR2V<|mRQmh0}$>XjTj-WFM;!kYm2q7`4ZpcSjspY%LvX-6-XFZQ~X6<;n zc(%2iS1wExjN|n%4CrnP^8v!?`HT#gzJ)Ih)}(zer^IKg<-4_Wg5pT0c(=;*&e^aT zU&kZv-K3_dTm{cq_;+o!)hb*DTYYmkS)i<$yN4`Q%O)L{X{%EJXWCA98pmDS!`;jo zu_@Zpl%fqE9uV-|(ZlrxcSf8V2C|vgn>Z`82GMUiC2On6Z3(n&W+W{~R&!HeD zfLxP#YLR8{j3xGBDR3UyM=2_ii&za>q%vkoW?5qHPwgE;(kmR8tIN;nfAKKZ zNTX4Ba|+=3`rl@=weISFA2pk6xBB0&@hQ?>{X={e@bZr$Lv;5J+Wy|*{@!7m9=3n# zwvP|xiJ?f!aOb>oduQ~w_~iHhW#UIM$S$kVc=h~7+E}pv9{~Yy_y41{=I#Ff8XwdL z%}$dvN@rqt&8nSXg2HhyMTvlQ%#0N0&kF8=)|$k&i8b4(j_xVVu)nC0z?1z3{Hcn z%THi+P=^I04I5O5km_s}OhtOcE_~0Km9w5fgWmUhhdcWxyKVmvnD6)A_xQ&tlcf?} zI8@Ey=S_$Bi9A|u5lv7YnXM))b#I6pg-AlRhKQV9I8kAI0*H>DMDR$XF`u9d=m`b8 zRdADH!1ehcP%#;hp$*=GB$J?r+Rfo`#yVCpPP9ES^jv{dv-cd99X((3S7=72O9~c? zlg9@dL}ZkRUYs26?6!CI{o~jB6x^212!QIi8?!9Ic?b#sZ0bY*=+HmuP`1i^O{}^r z^Bx0{{P z!Jfohtd>1`DE^0a%b0CF4S!^N`Q{Ldr8z7S4j0UjzkRriDDUI%cDI9gX(N|~TJ*0E ztg-J4>+_|*(fG_~Q5LV8X2VdSAa%jPW-@5rdDSM*Y`Zy?*Zz3>jZf=E9ba;HsG89V z_p2X=;>;dT@k;E{yNIXnk>(_E?|qmi#aZJjctOp*_PEzFPUNW!DguUaSuti?ks`zJ za}E(F8h6!#f3_%k`}q?-x$_@LY9DR@h(LG0(Dn~M3(kLQ>rZm_f6a%t`k$}z0kXg= z?ll?>b?)P&Y;U4*KfXxly_PeU{>anct-;>yVeo4h>;clhnMP>}6Los&y$<4G>^+ai zzky6X$DmI{5s+Ti*ZlqV_900x2k>P{4393NF*5wM)$>(8U061HBnl8HDV~I>FICtL zq3*rd^}9zR4e>d`gj2a#U&GRDzsHgb?#`v9grn##q3})nRSR`2zn#tobrorMh)FEy zHM%piiHo#|z%c-f*^4U0LQ&>ORA9>^o2$KDDP!MmDE|twB6IF3RGbF9S<$!Xsv^ms z6cGUjfK8Dfe4TsDy;bn&e%*9{_wv)31?Sc6PgV1`J`McI@&AinGC7^Tzey2b0sn73 zZas4O|D#8bZu$S$_>etdFzuZKF}^@MU2)cCO)$~sfG*SF3%%EdoJpY~xYfF<7l1*5 zpHFA7TVDlai1zI%{`$TLY2(5oD?Z$c4}THyp-?=)jfBR$m|t0}hAa`_0ymCh zk1w>gfm8h_U6~fq|K4bFqbI;c^#9SLhc5kp*u1^}`zjx_Y>7t`q+FOJ%wPex^!=8; z-_rLlrSCvX|4j0}@ROteu)X3jrZI%W;tg?u`SgG7;p0{_XaDiAbxZ%h#s|>)n2*L} zj;j{m3ox(?QdbqjH=x9!Y-(NX3jFw133yB8|K?OaqumxAwESg@9D4r%XWamu@i43m zww^u4{ntoPk!U_W50di+v^N=s_KQi7o{xf$_CwBJ#~U<`MxyI>g9tVo_hS4Yj48Tj(z#G62PlMij+s;G5%r2JI z6Ypv3o3)$`&F<03a~Nr7f4lPvbI*ZZ}lE3*e$4Qv!9eA_69@3A3$MUJ^M(Bl%R zV`a6%Sz*yTW)hFd(Qz!ACk%fX=m4q;P7=adB}n6G0yFqvnY_A_%MtDqG=ag?y#_2w zrV@U{piE49LlsaAz0heFEQ{sU5?eSdnfsn2`mj^A=?+M-ct~$9YUNxdEWwVilB*Tw z)^Gnrc=3`#>SWjQcjhgjTvwL0AS78Vr#{Tq4cm^EsN~A4ZsyArr4jX+j6c*5U^+Y{;`)9X$HOIT!)N$j^%YPXpM8HG;?USzV0py-SdgS+lNzjYP#r=s=|5IHLsh)3iyy{jdGIz;7 zls0f~2_CSI?Odr~kB`!rs}`ePUa1ZWKi0KIZeH-?q#VRYpY){+t_|&yDy@dO0=C0E z;*YpN_u^^4w2~1Z3JDE%)iX*%3Xb!T3Kh~Dq)XUQ21;QuOd>%Z_n%Lb4D#aA zrMgXwun_Dec*gM)jEEIeF22$yd#{!7V>%7|)7iiX5@+sf%Ix4igt57g2&_-cn8IK1 zW@hL{3J8;ioSQ)joycE5&Pjj)f^-kuHkVQ1{b08^q zbPW4i42;rF%m+pmtL*U?3@?Jq#QQCr#w6swj+5vkMP^ReHWv?Va8g-gkG)PqEJzqW zngzqN-J_28)5e2A96vY(q{)Oo9gagU2i`;@BNXdvHe2(7v+1PTGT1vHb8SEG9POWU zP2S0+?4eIp)J+z5H8B-HQ)cao>J~&j$KAqlgnQ>0V}Lgi&9MoIiZ!IUZ?%|NoMu}h z$Y8f9mI4M46~MZp>6tEln0WW?hO9zrq?6o3-kf;RE?MYRBUwr1>u!0v|EClXb|PO{ z<$^KO!Cz^0&A}8}3g}f-;Z}3gbhUxXL{7~fQn(!5%i;wag(HeJD~rVc8kKU3b$`nu zGww_g4ZeRLx&qwD?8w}cMRDJ-nm%L@8ECz$;Zfj@{d7&97LB#EPx^(&bY=dc!;HJ5 zCYnOgIlN89Q*<5RCb@7ao%az2CHeP^QV(HX1z?pVhGqxAjGdd2P$c509yPaC%SL(s zzVNiHwHH9Kup8Kr=IbU<>N*zK@}%>~1MTU>C$&ugug4?M4?(Ixl>oxit&+PifM}>` zuwrIdu_dy^L3VixJVU<}$zNTz8Xj}Q)a-mvYXzXPN3A?`6ZN2_=WyosIKUAs{f8)? zCD}yQRUCF`IN&Vk>Ja1RG|)8knclnx>A3GX8BJ+f8V#aDo>k9U8GM8B*kN_Jup68N z<;rM0v*PqF+=uKik}?VW}{GjySj6m%5&Y4?wJqvwRv!)iK2asJp4*{IGPi94_ zq&OTO4ruUob0!K|obkS#VK_*nBz4SyphfR35xoIFQC~72i_lMvtQ;x)1fqH*3ddf+ z`hJQV7>)6OLW~4;1gp6<^P<&o6;&%hpvI!~hm%=6{D7oW9sTfNm$Ju69)hNHdw9-zV$3YWLx4Ra6eghr+FCb4Z$*TM>C+hAykJk1bvuwy7~ z7GLQlB;4`F%fq5OCb}w!3FuhgQKr)XuiPj==BxMubA{G3(1knKZLUry$Vm`EPcEWf z$f_rh4kOA?7SL=I?FFrnQ_9kNs9iI5=9Lk&j2adqVL6()+q1oYbo9EY*gQP`)O*ZW)%Tty263FRrvg? zO3-<`a!n4jUCUzNXb9(go zBlZkP3;V2PF8#Fb&F_DnF75#O4`xGQlqmd+f=g6@1whjxqGIrGoHdL-wK;+TlGZ5x zfP_Mqdpmwd@alSE+zyH8$Olm+s~JO~f5yc~RiZ3IG`-rKE4}I9<9sy^BYw$_=Gw)( z)lsj|V5EG}!a8y;mn-&fSgESf_FPM^SV*>j2-e5my_ zb0#c5xRPSUx*PN3ZdClx9X^F3BR&ZS4mphLIAvZq7@&-RTOk+#<`=O>{8;+GvXv?# z7FWW|&rm=VPn2jSHp=nf8p;XvxhW-u`pjc$H=?vqpQ~ys=IRsG$5mpePmaQJ2AVwg zbWccgrC#EqC@f=YH&a-~zADvSCSKf`cknENj~_?AIy~w^W7iiUihuDp{C6SNS?lCz zbOh~|J{L2brIqeoPmPtWyi112o6k^g+z}m+-b$sq66>CYIpvbh7pVB54ugL#dx;DO zxX`(E+pV-mv`8BzkoZ}4NiiRCNxCWPYU$7OM$Fm&vM~2G{Xf>8th@2w9`cP8GlnEhyrKEMM7MjNoAJt~*W>_QLQ?Og$haqF-j63|FW zVx$9-$vNh^9c)ON#mLpmx-Vpmn1Ph$DU6bsi5l%8vv(@Y?VL7U&D%{E*;i8tI_x5; z+<;j&PA}ox=@6q3;8k!4cxJ>{KM#Y6vU5Ddy@jSKbuZ8$yp{pM%+0t$krT}1t*8-Y zYbh?EQ|Y4Jtur){0mjDNtt2;4BldJ6TTeAYr*ksmHD{1wQz?n4Aor~yWgfH->;_nZ zk$zrLq{!$0gDu52-#5l%7V!V|Cl6i!pNCIwwv=rqOjAcD&C2gZji}Fg zF9tC%feS1F3yE1`sx?V~hf!>#v*LL`X@{Ec@Gwb%Kt&cXB6cpp`7{LDU)ia6|H(oG zqV*I<^AK}s{7Nt>{a1!qJx(%!v&BOec&2T!*{4m09qObYz9?z~$;TpHrhSj!n`{|P zs&NT0qL?x_i#KZ=6E#G2IjQPU45Mmz)p$y)N*fxHlyr>hl7Bd~dQJQ~KaEa4rw>iV zf7^%Ks0=x71OMIb;`b{KkGmKHedJ_!tRm%{UZNkBtX-TACdTCUi1X8s#xCI<7kAzV zFus7N1mL-`%=a|Nea!mUe+8U-eM7)FEwzNHa)+chko%&#ef+XnBk!bz(||>R!5ntF zAUyHSgZ{a@cU*IQ7Jw>Z)}ZuUc`BGGXu^+SZ$<{`#!8d*LofxxNR+!rD)4ww&tOH5 zGxZM2aZwZu38Xl@DNyT5+!dSQ{XlrC)TaB61xDqdHURQxtY!XUM@zXt)+wa?;{@ zCN18OI_OsByOsIArp))U-K8uyhRBya@>-5ABbUSZGI@|*PQt{BAgKWy9{Kxw2YX#i zl}ajyn%8J4uBCTk-BSr;@#^&>*}n2~+M=EAaeMoKWsxMM%T2O?T)`$@caKR3Q$IMT zu(D3j*?S3)QcS=Ck-nkM<-{|OAawSAX%mWFrXlSn3bU^hpnyJ?Kj4$=RbK$0R4$4L|@vK_(^<;5NmuVbVWxF1nzhG@^bb&9#sf{Wmi zMsBeG@oaPoz@Xb)m8$7!>*I~Eo~J51$l^M(98VYq^PFPv2+&_(k`> ztw)bt`G2i-8~^F6eDH>4?9rm+y zQhVaW1D(Ca9L76|(kpDA3dHoM6 zGhw3N-`oZ8BK^;!M=t$;)O>hL|G&ydA}meV6lns~Mecp+sLCqfTW!xRNBD2V5t6hI z2b^5|Zmrh2nsps2PLpIdl1m-gDsqp83k{1p7Hh8nuYNX`_!dd7iU1FK!L;uky?B8U zB>5uAxQgRx)YRCksvA14P{Ss4(29U!EDnka*1b-<{e!=Aa$G|X_g*+j8Q17`EJzVy zby!u@E+Hhq`*A#OAUulD$&`VI2rMs|VZJa}k7yDmHSX!j1k)YQdU#h?SB$c`s$Wf} zA@JAPG*sc$lwpY~>Q#r)`%ngfJ*s7u=~AptdC2J6j_$}L7zcebmjGv1fZ`n*^-h+> zFeju`Hw~T549)n$F>Fdf7g=*klbEf6c`>Fh*H||u)`X=tT7Nd7FZty7e>9BGPH*-C zXwmua@#CESXZ_K`TmJtwJ{SZFg;^j_4Z5WV8X-{+3(tXTw_N|0>;E0O{^y(n(K?)* zvpQ%`OSdHAIltYJZ%a$CXO@^~@_mWN=RxPlNF}@~pAjX!L*^=n4uuAIc%e0`RB^Re zS^8rbNsj&p$#^n_G2NgNaMAg%`S6K*{%bWK-_rlD@j?0@Pe&*Rf>bt3QO-jH_tF%A zt#7{hh75YwuI&VN>+5~X2Cl{im#6xAuQu<&))q z&t-pi^1a`t1HL^&{w;)uzr-1`Bpoo4*1uFf;9~vX&02sgr2oyl{%`%(|MRPSZuNh+ zwELEJm+Aiu_1ug7qwTIi%(Y(b&)&gb_9=@0GzlrT<&E)x`SgEn{ozBG{y$o~z5n?- zAJ_}~G3AP6pGw%Fi~*9Auh8`4YMI`zEA%%X-!hI{#_<8hXGCMm9lQf~_QMkkViQ~Fxr=Ah*r&CI$(vSKWosbUQ zslw=G(i1ML=#O62$4G-azK`($AEN)xV|3k-rw4n7N5{Tj!_+koy>HcHf9W66bMNKO z4j@x-HjWca>dbM_`(CB-MmpWlZEsQ2m4a}M*HE7te8g6t_Anqq&iV$kww9RW6h(_P zpP|NrpUG|A-pQP}sfkcxX_1>R!J zvlaTu?9@!LoWgH!OGb|Gbb{gmIn{2d^x8|39bi*|#SrKe9oOEAxHa4)^uo5Ja zt)3sm6;XCUuk$PJZafB1v`d8g7%l6v4jCzGLNG~JnO|5fZ&ti$7K`!sv#@tQ?p_b) zT#R#n7m%byvR=1#mOmKOF#Gj)e&--k|7zL#q8>V8SCoGWu*D=zG3v*v5^TA6^wd=(38 zOs>wx37mC6cEj%0oXQ0$kLUI+lh(}7q-dE`Zofk6c|9_*GEvgtH3z#gxx(O_9s76M zpENmnp|*IYuDQ)xWg96=$i!)W^a6{~3=NK~Jni7KLr2YqFk zXKzpR5aw1}GBpX-QG`+vshA?DhcOOK(~x7erPE-X4AohkLx)($iR?Yhha5n?s$@A@ zk`shc2yl|yHJ3TxzS*#GWQ7+xax!TNjD&H_j>=DA21HJ+YM{BSf>C7QfhJq0O80pC zu(QA2-8(w;s<4?_h;Rx0aC3Qgn{}^skPw0I`3F(`z5vw zSKX`JO}y&eq*keW`57?L)iK}7W3HYGDak>-7ou#y(Zes!vaXI=J3wf`<8eys(c5<0@v3^#8cpL*6mDP8Lsx z-eIWW^GU@g3x|lI8?1XqH^^U%GvK0XcYp7>=yunTwW=qg*Y%#kb5ibRMW5l5U!`eG z#KV`BeJFCW!)5e)tO$>2X#S7w;||g{fZ6=mY&9P(xg?RNGe7SJc@nc$JCCtFJR6$v z&RoZgWJ(glrbP}F43!bK2#PhWWafIsikvPOmgm6(ru%zcSR?L%Ns5aQ(4e;0Sac1* z1kYl`qEdv@`HtLib$Eo!RQyhE$t`AuiQVJza+bwi!9;xlg;yQWwOSupF3{bC?=6Dq zdsZErA4(Lroa8_tQBFJ}%RrlKAe$akqG?-BTzD=V<)E5t7^H;W`4kB(u!iUZ%-~r0 zFVOR`CpjXL(Ba;Ek;C<(I zYr`00S%1nZXC-n_Y+h?J^NWx#CtY6NiAR}~8&4B1g|ZOcKPPD%_qi42czvlZJJsG} z8HnO*%2g+eNr0l0I7uk^A~qypjhBpFLLSf{yL^cHbYD7-8}Y;z5TWBL?{TVTTOmJk z$DA}NlVCAOo}xcTzL)+OO9dRQ1W}yb0i5xAO=*C&`R(P9?8X|-h>6h!_Xeg=5-B8B zOsa~?Tg0ji=v-bi4|*|8EI*%RlP!ej^roJI&JeLebP}Qy6sN4Wm+vTn?$n(bTP&xVO|vtbc5+xuWlrNdi#!# zo^W&%&RX5y!NjD1hZP+Ib{;JvD6MyOPHeTNRHBU4)e32}ejQg#Emw2XNIztZV6Aur z#zSq_@uj0un+`S`bgu5@&+nBNumZh$3=-gLU_{eCl%i+9t~b|zU3>V%cvCAI-Jflt z_s4#6_MgclxET9`fXtM9kp3}_&6k;iF0lW9xZZUAzn?t3jsN&{J{14aG4E_%FR^D= z=Qu<=IkeC*to3%h{pfUx$vbXsJ8x|}{~ETPpBMNY>EhzR@3S#1YF|eWAsx(47U;wG zlgk8Kts+_VN5RJ$s(SmBcMx@IUbSYjRqwd{dVhPT&3U2y&g< zd=+EaNTLTP5lu-w7uN{rQD( zZJ`+cnO~5W-`ip|m|t|nw@diPn3i4-IBbUhI6Xjl%vryGzhDXkLMEV-LX#=pZG4K) z{^aHV=uDRHE5(0mJ#Mw!{I8FikJoSI|F7}El;y}DfN_ps^OJWL+7N*db_(S5J?iIi zUd~p>Vao1bPj8P1w?~A(^$~&g&EhixYQRup zFLrHOQi6&jm1D?UMVrZ>2Bwc(xIkPVLlKy^H_^BsUnGDKFpE(5v+F9OT20XQVAgyY@cCB7pZW9;Y8-R1IX4-b`y4K{2_iH_G_zxsc6`OHauwM zf+-|}Gyrj`7owDh$B*Q4+&iDf<9L>2UBOxj-P2w~J-QHtO7VsA>$wPJe@iz!+&0ob zjo@TgvrKow=XeZ}O8pqEy=N)ka~*(yNA3U^h3gE^p*ISW_f--H#aL-F4Y4bn_mo`+ z1eCg&V+Ls@=;CCfa^>dr(EJIGJ}@RFEJs)-_LA9P0GpemI#1#hy{e#`o+X+S+0}!9 z^RnV}4u_328X@)@^Cy!B!`jBKhD5ND5Gfj!MCpt%1t_h=oc6@83GA}`5dbk5Cu)AqaJS*;KwhTaG`Myn2?i+89-Tv1;M7OE7$n{ZJAkF-TD9T5fvrwv z1{$5c&bEJew6nk4=^njC;-Y@P+1~5c0S$TqPJUU{8U$n9?L z{Ez{|oij{fHhQrB&f=S}QqZ56Q(V)Emb=iausU zN8I@|<*Fj>fG#Gp3AR9(i~V8h#&wW{%eLU%ClIn74AoDQ6c9dzy^ZvM=mc?Mvr}Z= zHjKva`3#w{29OeFDClsf(INJ|7$A}tuhm)c2HrUjp-_TX{m@sWN#xr|>^xc3Zo0|{ zORyIY>*^6llHGf`z27D5EP4kk**-o#dEG@@4T^GJISxNWNyIZ{Gzq8weyAg#YsSDM zvvfg6v$PQp8o=StLSy0(!h1AkIE&+cW};<(iexb1C?D3yLx&0yPvYdwSoIWe3BgD`+LLyJt6o755c@TKMQ2*rrSZi$j~)J- zy~A}f^t+Qi^LKuJ3D3!Cd#0w%Xu+C2v*pK@=Fb@!H;z8n2=PN4^}Xtfyu*a^bos_r zB#C$@BwYw+3r|Idn6Ma?1iqRva#tVo*&PRuH>tEjW9CRfYVdoU8373M&md61cCgp# zv*ul-Ysm_Ii19idwy(OQ0^#-Y?IBFcJ5(@ic}=J-L$Mc`rRK!T1RNZMh2GLA&eM`^ zQjb|p7GF*3SybOpDFJVRI-?E|D3$df9`@BU0t13>-&ff)>94x0g(^zZhr>cYe|!W# z?^t7ohwoOiCCORpoQ%VdAh03>($c{u2OXH=c>#%jKqvtMH!vUEcjPVS8tY)|TU!e6 zvdeE-;Htc+V+nuv#lF7rwterEG1#$|?TkID=9qZo6wUcyH*PXjzleZE%qA2jLG#Ab zIDY>=3@LR@5@$&*fSpX26Af8q%fkC*P&%%_!1ju(0FxxRC%%9$mK_WGJ7bVD2 zGZZFiAndF2ore2{E+g_!}ee(T4o@(eUlR@?Rqz} zC?`q#f_{U1A)_%R3!3FI3zj-ph$(K63SZ0J3}I?5j$Rc!Xu?tS>`YG7KurR)t5K-$ z#ph}w)GdJCA!yP#2X7VHR|^ZFo-y(6iA>h+!pU^EhS(^2U4?`2x9;V(Y|YA9JFgeo zsGM>1IW90t6VrGyjSxR9I^og&E*qHM=T{lk;n8mUMf=zpQ_$~|E&e@(MFXn|HBn*^ zZ9D(@{t*hgQtX}(8GYBVM<=#|eZiy}ksjF|8dKoO9IC4EDavHfsZC=^tGY+UbS&3V zSh|Dl&JS51>uiFwS=QDkk-JE45%tc$XW^8YhPv9KT_jo%3d4fQYx?03XxUULG%_hb zD+7dGZSQpDvgI^Pv_4v$pLJ;j!WE9N1|48iJJXF7?1sXUQ;#VZojKhS|j z#TBX-aljs(a%j7&dtK{9mT`YP8vtJ~ihEB;7Z7oNuxn#u%BP`~LqOHw+KPBI>zRFFCwKpkX&NKEH~nh) zpB}A0$;E$d-o}6ZIv>);s1-+|a~tvd_U8WYeRDtX?s!$DRd+J$nRhNas&~zFPs#54 z4W;^((*@#TGoQ>))b_{igYCV;-S)AkiR>_YD;+da2xjm0{VIDy4{M%$`NuzuyO$T+ z&pW{IPZI;)i-V(GZveZ>c(&I$+&)BIW-uP2=_bupZa(JrIM?AT^tGU)1^q1SW}hug zQR2<@la^slR|mPi4lvchf@vKT^mb6t-9cf02buLY-{HU;`|9VQvxENl>ZU<@_FFgw zc}hb>cvXDnJ)l=LF|@S{K>wSo%^H-EZ`oa%;9fQ>RcYvBT{U^h${&s(HNY@uAttEA z6KwYTl73&J9j$J|6p^v^M-+gqw{k`iMc7A7@_ZIdL0C>SDMy(azhBx%KanRtYA4A| z7Dolt7~rJjC0@OQ5Kb{R+s9hX``@1N;Id}ML6hN{0m#tACJ?nKEN?tSRzya+*rku8 z1aUeBgJgW59G>dwrG9!@bKp;-4-u(y5+V9pWi*b-cw?3t!df96d-|i-c$V#w>c{#e8wUm6B%DTZ-&GFM*D5N~Qbhy~^o4$3YcX+%88SHm`s~PQR2EkI(he|zO-#LKWi6OBjR`9X4^fC) zQ^2iE?XkeKm&qWK5a6=%<1!zb>!WucdVmXc7#wEPMP#0dQG~7&MKufcQ~>BB5C@@H zAf;Rq$t<8M(4)-n_Rp5Q{~Dis{tt`+)xeupv^QG4yn#06p8wX?9Bk+t@ovU`Eh1 zXD3F>&J=I!P<}cOW@1crjBcI(6%2nvAm2_C`1bwj>6p8TGVMR35e#RF)}!D4>y*A^ z1u*jH>07zs~5#_h%qW4mA`Y0FTMEs842> z{qS^lCb`A)Kwm@ey*8Saq~5n7{rx_@h{nk*>lRWNF;Er6W9q}U-)!+sK_a}}4qE1I z50jV)M7|N48fmAOtj>DFU=^fU>3H)YMGq6>R5;JYN!W|W{RS*Mo)TdH5~)!15N~nw z^}4^P1nT$}d8yd-^5i@b3-TVBl;TD~LW_nqN*rb*;0z!ld^l|YF&H2fXJi!ASLXod zc}QF%2~&=TN?rg6f&|*Wf1b-%{2XlmwA+5&eFdX5p6(s)b@_2tLM$f7azy;onOqK1k(AxWyC;`+J^F2&^y7$vTdxKX6 z-KoM6klKL!kdMO=>?^iJ&4T`oLNtAd62cykB4%vGqRmT`Xm}AW-@o8lx%tzE0TX``#c7$Y=%)Low+9Vj^x4%vUBIOT4w!N5m^g z9+lWF2&e%#p0b@VVevTCBD8KJ@s=?>VW8LzM_*c2PA@^P7m}w7a9gL%$Ey#$YB(66 zdlZ=%t*t((IsIslsl)!ueSf>#J>GkM(rx=7gC1;mc{_64!-Vaige?*siM59g!Vwc6 z0v?@04~Mwzmlaw{$SB|EFTTIbi%cOIk(5rOeyC`U9->m5Wp?~)Mv67>zE^!xkc!P% z#DY;(k(1V(MZ`$JJjw8b3gq;@b6^2pkZB2Z(zv@gj|M5o^31O=6C>;fSYYMgQ^#lh z=tD#fW83&^ZDr-T^4v+MMm3xl=>>YOf=X>3b*YMWro;G^Zk0qe^cs4pkv1uUZA|6>Zmc#2RpHPVA z!cmg&)JRBXLJKgKage0m`Wnlqdz~Y12gJ@KxD=14ZSUDL=v~e;v!PV`fEe3o3MnB$ zi`aKHTs>Q@dnbo`J4YSwn^m$A4ZNLcaOwTrIC$-~_iN(5mEgK%vaU?jESX`*b>&M& z?UC%%d39`t+eIVT2pxxF#YRC=$4F*NGun#1|*FH^}&`Xpq**}I8zhV z8b+9|Hd+X?h4%pP)p+B52PfhhzO3pR@@9kHJn*V5@7r(jbqyA~iqGzv&tQD83v}~v z+C4@MWA!nrTj?Lv|7Qg{-Q)KEk{;>+r~H%ct8q{KNJ6WSZW5xkD=Q1)z*cNKPvw^v z(5ZTQsZIe$bnw@zGoCCEo3DPw>)16}dxYI(sh<+q?Qb>17YQAn+lT!hJ@i z;QQXe$w3hqe!u;b^Nin`mTc_&gPJVB|}RW7aVQ>Kg30{^^;oLNGFDvQ1wZC1-VS zb#;|j@I&AaqlCgcCa8NyOgY*;+8{ZOxiv_G%c8=e;El^FALVy)nKGEnU~g3`cm~<< zDww_f@QL$mZf7KbwzYQ0 zHCRnQI#YWcGrfX*J7Z&H*xl?=Y~1T9$2&G_rYWHWNp!~o;*eO@GuBg+6xuQcVm%nZ zBW?`(M-4&AP1R3vypv2F;Yad8AI9?+)<^-S7Rt2!o3no9qD9H~SLBL`%3fjBxj-1YbOy6xlb z{f=o~fw7jMOn2{~?KgoWSWu9tz~s9B_dY2BR%nb>NpR2sy=e-sdt;V|QH+@Yt7O#y z&L$b+r<~_Caot?)^}<6=GzQdB_ZxioEkyWKKxjK>GlU#fQ@&J(b>`f1U<9a#>ABaP zg$b-pZb{*p&ob9g0oV;lC43Qv?>D^;-Yt+erD@cqYD{ZXt#sr^NgqSTVdO2fLs;MW z8ys%U+Vqr*>u7U0(^!sFm4Xl+$-2;&ldf5v*dUhG;qP%*^EOm$+$=v5ilB760|P)e7nHwgA#G#ZK79nz)V@UFKv0sK&0c^^P+h(UfVNdyeO@ao2agMfRP4) zuRy|&7!(5}OCdIgYt0;p4ker4? zJH#K!6oNsTv+S|nzrUG#cWJb` z%DRHPD3Q7)iJ_onqf__+7OoZ7p&8|3xketa*jrddjxby97`=w~@EX2R_Bz>vr)-f9 zbTpHjpDP|A(s9Ba&SpVDVYnFa!+w3Othc32@(j*zc+tYzeZjg)7Dzw9r1jjsJ0->? zMU>nH@912WcO3g9;&X4xeyy)}XpRxR^j$2~+^ z%z^S_N81xoQL*>3*4=PC2_;3FIv$M3bm`kdPa#Fg$weHz8FLZD(~P|EZ&VD*sK4{7 zsLJh}JntUEX#6+F+pm9QDgr=OkteCY_p*luB9d0Dw7wSStRMHB*H;Fo#YF4JJ?Hh6 z!LjU_eYpkn$l>xDQoqfA!zR*UY8@%Y-yStye-UU@Z zbEyj;eda0`K)T)n7XY}%+7=Duy31MsW5J4AuJSr@ye$@F41Jo>CZ(;#h*e17N)BS~ zISj*mpX$Jj%7DEn092Tgh?gYA1j{;c)^q1gJK((B7C;~BqKgT8OwipOmod(- zg)Ah&xZ`EaV@z+Y+`fU*S~@CAC0wG=BBy`{qW2{JW(KTu=0ncaa=%p>qI%&Xq=Y-9 zFiD{{|Cm*5sng2Aiz$lm{Ei<=}A9jQ8ts9t2^ zzB>Q#kl((0+iIbMw#W@Mw2CY(jZOa;!=yeKL{sB^wbR}?I^4xXV2G#m!y_}05#k&i zktkZ}xTw>H?*q1j*^A`Y0I(!I&wfS&<5v=WG=HHLqwzb$%fzh5k@+sQOAei?=|woi zhT!KXIuqunjt;$g-X5CM)|rhpq=Pv7-kpW|` ze5L{CzEDS9K=48IQSRLMVBC+$Ac)V$mtG{%Oce66B@pz*`;d4Q{8BT+e2`dQcv8*> zU`s*@_M#IyNM2PPbyJ#bv@i>EfTox0Na}F4YsUIZo?X0W1sPh-6{>kWGP#eSRBO$a zT)*>@vAPmbTWCzF>MC^?=Us63z1BO&tz@GNT;=ugUjJbGr@GszT5Zmui$T0?BFZfP z+FahW2Hv#e$Enl`NT(=ks9u|KJqLjr+7;aRl(9ta zYyJu|)6}3rWtwDa@cez1x;!CW{4Ym`Z9ltTA)&2%yx%_bpW`(_c3+Fx5ixrW@Q=#I z!NEqSQ}I4|oBC?eRHiIt>J#V($F|asgvMt@U`%gweUa2~lH~D)r_uj^``=q%H zs|(HGak%W=UE>`^Oes;9gRYt_6}`V}z5k^9WYG>|V>sx+`$KDWH(1-tm+BJq zR8(>0k`6{{!)Cg=0Naj6`ovvXA)Zjlq)ocHiIF9c2Aa%SHx3%RHSccop<->725k1iA1)uTm2~w?(WkkicCIWMgrmn) z3zI$jWX?*a{=BngfYXojp4$Y_$Yna2r9H2@>@6EM7A5lnYlVO}%z3HRodIW#xdq+v zwrr*C6-Q|(hV8Y_UgW5xz6_T(?Gse#7?H~x3%ybHlb507-C%d|NprdoCm8G`m z;FeK)b1X6*Z(KN*u`!rpWL~}7{06zy*z7_^LRDun{o)qeZ`e43#yFFaV~As~vaw3n z!eM=FmfP5ug=>2)Bxc!SG z>Pk9-@A=}6oLqOr)j|q!d7a4xf}EKPXxAimbI79k?RL7#cSWf#C=lW~o5WCEb!Uj7 zz(W*-BQnqsA1s059+uoIPiJY}*Y*k*ZA!9lfVoEzeBRbGtRZAl)wMK;ffej(1tdX9 zCv4AfuFu!P;?l8}jq*xT?>stn(%qRi8;;Da=%~otR>QS|+4$UfunZ7BlPZ5XpUO=4 zqy=DF2FuDwA@yAW|8;CaXPI$#p3JCJIHD_)^OSiL!m=5Z^C?YkHIuds<>3dU0IrE% zcKZRZjX=>N;1Z0@r4kl)KO?bO2wLf# zdrH^5Tlz-Ic*6%i7l=~rI?t7Yx){_rF;?DC98h#B2{p5kp&_kL%m!-@(ipnKCF*LyR9#7IwFPmNNLQ^J?!!x1b;Jj{ZSe z!%NYJdf(^oAo}m^?rk6D>rlVE^yqkZ?{ItHOR;57{+5?Hkx{!fmD=~T_Jq+Q~5@y2O2P}62`n^6VE?J-Tx$9IWz`)arrBxE5PN_^{MXv1 z^~MsP9LY=KDirE_ie#P&9nP&#PS8{8GE`v~hXuCN2wG zfL)qvVUC~*kkpex098P$zi_-`=0YslWrg6*FHfgY|C$}-O2u1M?Frt4Q4;%4A2(aR zu^Dlbx{nJ=d&}MB>`7KPE3Qbj!2#THSf&xZy7yl#rQ#IVkD5)&42!jl%E^9Ktu1dX ze_7N2wQhD|P7fYlr3d)KFocqd zqmv-14?o}$f)vf|j{&;Xdo7xP<#xM61Wh@@fbeffv6MhE675WwsGuM^9tE_N#Rl#E zvbEfvP2)-U;8i$GqVfA^neFo%eQz1#S~Z%F8|zJv+O#^eR^Azrt?g#ElPGx5jo)9! zi&{{bmUS!vcC5g-G~~iYNvl4hE((J#z-ol!et@a6;Jhe7Q^c+-8?;vFQlyMHro^^* zL5XX{I^o1?EHQ2j&^5DeD}u@FqKciYNk+wR%CYPCNLc2SDq-7D<~A0I?mw#?3am!m zSeD)|D@!T7jP;gn<rJ3P2j47k+`-t711!yJa`f-+BtURmc7fh zUOC%U*$z33HP1z#4ntX^a1*m`D`dfdSRo#FQ;G|QaVQWX(s;*H1l>Y{%R(y-V=i*D zkXap=a{&D-Erkb9ull5>=Zj{_IV8<%!yz=q2H{9;*6Lm>Pi($Otiy@FYFG6@|I7~a z>@K3}^Jw-OGO40oQIOueiLP-Ifb{;J^~`{yIwOYXtJ!GqmhC7h6L zuNdW_j`5+VgPf9slXdNuC9Z{%1m?ldKf7Voy|WmT%cA{nFFqSbzabws8^$0YLkyZ_ zMuQB`f}RzQT;c{c&M0Oo@?kp4d&7u=+@sAA2SqyG=>R)E^Drg{JGAZ%Oh6cPm(;=> z9V!||>1Ca)W^nu%6NwlRJLTsi*FQvqN?0t{W6t%uQnxJSmpx@QskV0fR&H#%$<170 z=l16!n2zcGP8_zft1(MX)aJ&Yzs{0fYtAVt1VzSqc*RN2rd(~Sw?F^a@c5n^Ua#Q*Nh$&Qbs+VwLJ58 z-L9JEk@lWrzf~Ya=n~oPTX%M!jMpCK6~;@0eNr;sY>loqrZsC!XlXY`BKqo+ay713 z$nVw)`JD|H#hROJ#76Qmr3-hWOw_mrww7#|dE>e6b}+}YUZQ3bMY*e2b(N%7LGV25 zM0U|QIB4wd=5f7%)L$Ld*)8vjkiBrXh#Uup7oGrhTSga|GUSB^CRd-7>GBcQb-=Xp zQ1m_Bmw@3RVsB)fwK%WuWi|Z&`Y%`|H+~U3UCkCShs&P>MUYy-x;}`kA9^&|)$(E} z2C*pKo7aZpjOcTK6pTq-c+Urt+YkpQ``x|Q`#-AAN!t-D1|r@nMa%vCD-y)agoPZe61LJ|Gn7=W|g0xqW!Def%>Hf!PUsY3aVdXg@!e*ZS?6 zetWQeyz`0%pS@kr=I!bITt>uwv-s8ZK&zp>uBkh8Z(JKZCynZ0c__1nXv9|dssHk(NxZn?MFOm$eZB zw{E-kTj^H8+ZV7=-0^0((b?{v96RkkzRqqU{(&Sp$!`ag&Q!Oxq$YUUG8d$4A-++} z*gQc04)hk1TpdK2N-2TCsD6^D-)Vs!ZaZ6<_q9mnYX{jpTdyxQABTH~r7dQRqT4PlWiX8PzV2AAl(FD%+WRkxdv7q1 z?UzRy#o)W{lZ`yD+J`&BSKU(c_aVg;=De0x=wB76s!O?QW4+_$bs&6 zF4nL?6rdeFe{430A2tZ`nl(goj&B~0FEDt=K^TlR;-Bcc^D3X{`K#{4Y%>9rt!6;k zSK%Tu%{70;ihML@^5P0cr_tFgo+X>IDBH6n zox&;wpNZVCrBUM@84D(|SXRla4ObNdvT4>{F7_X_R8(wrmEd6Xq~B$%FyUUvLQMIU^(+iAtmSsM)Nj%p;|^ zGzWv;w6B6eZ$ch3TbUX-^roFre=)GCU!i)3a9=}t-szg0rUc6KX_Q9Exm$VrxL^bg zsl2W#Z%@y{af-QYb)#3R_k0@s77dL`1>-HNCrwS80ET(ky0m z=B$QO$61W_yx~4lRdah?SD!c9T=o25=e7P=cbr^Mhxyib=Cz)yo@@PJUh7X(^#e@h z5JUxoKbY5izJ9L#*Ynzcs_MTEFbzNfroEome6D&P(SOL0CfE8m8c~Nq@;)d)^B;E0 zQO>QMYx~ulk+<|leHB~;QIv1{)pmK$-P(=qVK__Cg`)sW`4Gy%pJP}%^B7inb%%N!T&WWWQ6E`-t`7(8U%sgJ zRYu^}&JCdR%NGM_&zprcmk8zt(w;Yv^6E|}cIIKyn!BJ5GIfe}RIYL-o~7riYMvF$ z>%h7>47c@z&JS0pc@QT(6##=O?Uu_*Zl&C&-7DI()r@cDgoeFwKPnh>=jEJ1YZ}~v zb51ZpOJh~nf4i2w z-O0aQ&))9l-#*OVw)1ZvWp7{P-#*UXzRbUUlD&PEfBQ6hyO)3aP4@PO+}l=me6H;0 z-x_mukbi5;)nWG5%g^&s{;g5>b^fg}&;Kj`)|ltx{99w5JNdW9JmY2o)TJGh>7GvV zb&UD_G5^+>-#59p=KTJYe{0Oq&-u5;9Q~4ScaGxY|0#`g9Dc+NCHwK!tBr#LPPt@c z_@(@6umN#rX8GCn1|F78bbd~9djuj#S#6EfOPFGb^9qC^$Muj@f>G~1HjBY}HZ#3e zy$Awk&Q6RhT@hudK2Ouh#)AhJ7ZUlaE{v!>}{N_`?xn9Q`(Vd54IvJT_7nka&?;bsXbuWp9rqmbCTr@v!P=*HSZo+ZrktY;DvJnJ90 zE)ONJHo+>&GGaO*W>r@tICe=~JiwEsH0C(kS>9^3fsEXkjLFGGl=jYH_4U(i3H#w7 zm<`hneb~PAUheELN0xxkyDd6YX0&q4){Cyv4JKO7K~t&hmi--S~EcK z->ofv+AIJ%xh~NA_``)vj}&OiV5MTwANX_?`+U1YX@0-qJiqQ+D^9)qG6L13NZwM( zeihS@%0L<^;UrOpgj%RmqFEIxpYAJ=EwBn1$SnEa_2TIiLmjAqY02!A68vEm>Ly=t zD7>{Pq#YE0B!Q82NPK=Ep&%(Bs69{#g0C~Ro0CMuf`bL(bn2+}6s!IoMXc^qy!y8d zs~(_}v}=bD<#6@=18YtAxz>FAlvp^=F&BIMP2-zy zRI%1K@U!*JH{X~nif9D&0k)#qe)Wo)tjn#* zMeXXUVm?~+{8^)GT(xkLH$q<9H-4w#05vJvFWTt}9_blwmS-Eo=8(8Z-rjg+ z$S&C+@lR2;pmtm~(ky1kA2`yixj(QG`Gv%;& zo(L1sP$uisFulN#04v)he6KvGZ9EEtWHzNEPnIn^IvdBtY=GtG|7I%j3CPk|MKv}+wu0JQ@k7Ar2gt@bQ63rTY$A3N?<8F^KN z&ylwh)VXXA(|F#)<56sdQ=7`c^9BmySy}I%x32TvoN8dF*8p}}3@jjt20Qq`TYCgW ztMK(Me*IRY9BPtFoo1y@3rYnKsT7a1g#yKz(dq2nsq@ZQVIS9mgZyt%R~k^WM%`+W zJaI~gxcm5yf5RUQh?zHxCL1f1&_7f$1%CbUBcRk=>3(r99OigmFAAcIhE0wbh7878 zhvZ*6C{dHTHl1!%ZOUnsKho*KAfV~8@ZBn^3!%-uDumI}C@S$k!ZGYT+)FN9F-0lMZk9DYFsjH&@pHbzfgmOYFt%@ED6)r@dRHr9y~6e}})9 zSC?}m&fBq<54$R@euw=T7tBB%m9HCK$@I*d9|BK3vgM>69ZUL7I#Z*P-BxDO-+Z^~ zu8CCEWr~=+VZeOT%MWMX33{DSdiu$5hWCARXEEh~e$=$=kKinb#^!;8R#7c2oU3>} zJIl5xTu{o&`*+>JUT470pyza`v%E<&@&bCpxjq->>ilFcRYBPsUakDiRpKs(Y_b-^ zFt(I+p;R`pdQqFSl&TQ?%qBF~tKDflq1>i~LPRkW3x}M0HXDzaOd51nX?g1&_WR$O zfL4iUuKc^U>HXWB$(4UADk5EUfMxNijG#9Yj^0O+Zp`99ny$U!U7^{KGcPZP;YY7Z zLFc`nf9`aDe%drn9lgMyraRZ7X;NAx#MIK|e}35ka+Q zaAsWshir`ay5e_e0lnclVUz5cx_^K1TA!PRLfPDko~rOc1#{?lz+QiL@K}*4BFzul-1U015gso?I86t1&?as87}M*7y(rN} z3U<|r8B>@)I1TM@V@xvC+BH?mle+V#9%<` zLz$jYd8~pq>uf7Myf7FuVsbLoh_&bWE-6QEwA>k9;OREN^xKi)S)JV+u&a3Fo~Cg& zl(J^Qg3xK4o0vU{W1`29G(7}L4LTfUnt^JP)4NBAkDB<36m1~c}0 zeD=$sx<2>-s$WiwS2o5G6RIxf&y0qeD?5!CIc2qOj!m`<3D>|W3v;crkIluhBgL;S zLzMpXii=mB($pCnHWD49My;rZNubqCD@>%}-PzJ9FFvWPlQBBYol`D^fsv9N?MCA% zT5gR!LV(I>APL(kwS zDc6Ts7JJOi((JLhnBpUxYD zl_d#g9^=2Q|ssdx2Ni(hTg*A-#uLt)%{sXRQQ*bq+5inDBUBJ zLd6~%VDZMHv}|nkATI9#-LPau`D(r(sVfKPghgD|^SdmTqeMh8Ibs^TS7|qRS1q&o zr^<}M8If62&Q*K7v#YQ&6C#7C6{=aA)v^WRsOorAsohLG&?;j=rO;R4FCOWwSMEHT%mR?&@XAC5n%0d?!$C zwrY59g;vPRs~OW4OVAloO0v>rV;vp|<)VquN)Mfw&%*}^6b*)OuIXRmtp~i($rwRWi&ALZ{f=zcf}F$5UVN6I}z!P|%IXn@}Mym--=4T3o~Jm&Ho4!z_u!9;(m z(e+jDHD@+1!sqX#)I(JY)5R1Oc%%wssYwgV9UgU6UYysGxfgr)fCkKYlwsP?cLPbi z8yrCL<*YTj!Wlskupquq`4K>gydbGs=VhV#{46iFvPmQu~#*%Sa zKB6OzS{^p8g9B+ru-d!(bK~x)akuZ?eYJ7-VB;>?>5p_)t0iTx>}+Fmo-VMP)A$4I z1;7_P`>S|7GgishRkTe#n>HMO&}lkqaJim^&KT$ZVvaN{>o zD{89~Ev>Qoi0GY4CxkMKkzogigka5+^ukQ>_9HYeb#n4#q#rtWe@o{PQT@7Bg7svq zMC*H4aP$t=6?Qu;T?KPD-AyWH&U7-_On)m$qyA|rXYsh0=9kd>VhYYf6Z_F3Ls2pT z9a}b_7Mdnx4@&=3Y}R2}rKTgpio)*)93(P;~PsSYPS3DU7gAKrOxI+Q!32 z8_njjQy)HKq&!17e9x`FURwW3AK!N?>Nx@ao4^vgBcq;;8{tPzTjKR+WW&@K$G%2F z44b;VSx{BtehB4Pdh>#kz@ZZbh{>8EqalYE)D$EDo^(wSy(B?Jx%~oc zsW2!ho;l%kQVq!Hd0FG>a!pZMArzChyU$;mw1H#;vWTH}smbu)bQJK={Kz~T&<(J0 zI>=YUbAeTj9vIc|sF1HlhXk`4hkD(zj|~OQ;eo+wjzXqx*++6 zCTdi=Scgr|}0Jm`Rei0Kbv^eMuYSj8CFMhVPL-3 zCPl2*LuoZ4?+YNkQDze58T!FSBT}`flx+_6$=L*zy9ppVA#bf{Clj0;Pt_Zk+z=E+ z;y#pZu`BXi3-ld>P~A~DGOwA8;#@vpgzCkkQw)y=N1)AlbjK@a?uFGM)^lYCXkM$BkebBP=!`P$kqTe{n783gXJdn$Y>{S8(-CnC z)Bpid5mQM&=tM))5{SAWU73an)U};73aEx#Pq}l%7slB_i7&qi$=dSH!ZaLzfcfnH z!uw10(U-$v`Wt#8_wZcAl``x|e=GLHWUt=$c(Sy!yn0nNm2Cu} ze+vzovU~hqEx~I9>IDW{Q-}N{ji*YZ$1SO46rD9`@m7x8os<2pRuwDqohIRMz)Ba^ zU!YgWrT2QSr!)e2t>Pq-Q@V=BhZ+nW_?x@Q4$3{=4Fo8rlza$e=Db|ZcL-}R5{bCyirY_P6`I8AJJCC!4?Ecc}9`7B#6lt;m3)em$ z4d>utJu`hnIdw1$&XNKE76Qu7sTZQJoD;Qho{l!1-%V{DeielQ6+|MFj$FYyLurlW zW{>E4%1%|ky?H$FW zR^}iLm9sdFFC%Uo`zY#mNRGzWtPcQQ$!t{3s)_*F-=sao9hI4TC- zzMYLxN^LNxG;V;@I*HMFN|6S3W(NE@!vGqA*Ld@<*=W*0#uuVyJ4!wA`qU@Rd^~3S z#m3OhqU0h=+7g>088!G;=4o*%SA(*RGKm4J=1r7Ddf*C0A{p)y z(!k~GI)fq*ZYkSxjkl`QvWpg=2N^e1mI+JTuC4q=rYb8{HYm(+#fG}_TY-fM_1u=H zT87Y*pB%UGk~tAd)N-Gilca`j6+w#^ir-+@TucrP5IIx765Re|@(g6mlZ-_Wu_Q7w z{f)Kn_Y9&AzvwW(Jhovl{X7*A{jfI-*aw!6KNlEiNbaO0vUNZgC`7EI)Udi0vrfy51y=@o zL4$Pki4(&0NpID%DudreY9dr_k(A}#^ImTsciR5$cDGIRnG_l|GEq@0;aGFStgq@j z0^7gy9<*mBQOzB)OZv0OS04EeMq?w51x`M!2AO&26JWtU_{8J4Q?@o`R+MT`1|v5a z@{$uWsaNnzo=avbd4azaG#%kbRf@*)O8Gcz+e#@RVu@WsY$}zULT8>4mZtl!tTO#% zEP%$vO%PsF02u*0C2=$3#PV1PW-5!j5hVw!Bt_5ZGFiQ7W|NeAM!?;NxeGr7Mv~^9 z6&B>J(Ul;T~UuePW`Mqb!eMl~kb|G@ZCudnWm!0f%(PtL^ zkH-^pYTbb4;%u0qi(GTet$}8JSR=c|T~tHa#o9PIr%p@v%RJ${p2nwqYmYAzW&a>H zWgn5y;-Mb^h8QH$`}YhsM~D%a&?-~gaInLw-YP0QL7H9tAIwL?t)-O^`*qDA!hK19T9W%S4vE+|_U*V!noLz?!<1f!#-`m(kpte5Inx%{sD z%tIhBBedlXfvNYj+MLYX5|F~x1>e#YCQQw&bI{;ZlY+Y8RSY*#foVz3*~|mZ{OkY#FWg6SUG} zI7R+?r31hkFobaYA)3ad4OLzXQvhvDC4c5RoXwx5ToWY|^=YX9d=Y3i<5hQtCWaPR zWCA;e^KnvYnVAiQb<%o6QB+}78zJFcB@piH#)=#@4XW(kVLB$C`2!$Ze6HG0*x+-u z(B3mQ8x;z!QpxSnEA6C;SG}9m^7fsw$LUFdrRS0YH%oh76)4*>Qac3c1|uvc7IINW zX0__jj}>#leh~y3AZR!|N54Bq@!#!J`0v(%+NHR^7q7&9`@~%<@e{lf8*(cd6^&6m zEAsTS?(c=MQ0Wog)S}@ekvj~yjko$a#j!MFOwMOELlkClGnZf5%4M>+6|Ecj{8lV0 zj=2q92|K=I@ft*2O8Q_@*#d30=jfMioo_|`>0qA$|IFd0-Z-ar8@arn$XgDw7Ox^7N!rG0+7xJ_Lj;X zT`Fo(I7prar7Kn8vqgPcH#L?y4_c#YE-->iTFh&`(G&yzR4rxbmZb3h&Z`8YO0gho zem1;(^$Aq3Oh#m8R=QEY#F)M>)8S3|x;L))oSr zvk=#izL4CEo3Z|xg>TFprU((T%e_EFH#obnWtqa6>;vt4xCH%mwuz5$KMUqg4T87(@b(ex? z_pEczXQ>@nJp4ErM!g85x+=U&3|X0N`hW;u@O@x5g&;H6y)%@QWw0DrKJ)l07>vt$ z%ld2!$h!aOsF~q~#*t0?t%*T$KV`hNkWF1}nYGoWn0Y5=zK;#)u?t-VNY|{`d7s^H z? z-6Fs2vY2>JC1FHx9tM59=7sZmU7O2}q5?)C_ZecxiRlBLG@)VmzotnDg`Gsl<#6=H zMlq;Kjf&L}n7EZcN44 zYq8*P8lIy=Hw@BK23-;7OK{NP62TA#q4MOXpMGj>U`AvWvr$H6glR02xzgX((C$yT z8$zj&#r%D*+}l!54cEmelj?iR_`XIq@jvC_9?dJg?{Z?0WeK%r+t^^8LXqwc zyt{gErz;D9_$d|wb*ETyR5SFib+4qO_?cr1Q(#$awyQINb?AJy7Wlb>{yQsl23YkrQ7brXS zwcJ72VH|ff@cB%m&}UKifGl(B4&%E1p+Waf+e2f>Sj!;VmC-Is&yyu5WOZ*2Rikll z>N3)zc$LzUGNf31)blWgyXYIQS<&;@%SWRQUs@v+&So?3w2*zCz>3HST}qKxF;uMv zpzlWW_c5X3U4XZ+QEBcv4eKh|RxZY}u&E}oFzR*$^&YLt_Bf}YV%QZ4roqjHPQt-1<2Y<2UuKsBS54*8DE30Wd&?9%WIzYA>nJh38S)lc3A*0Z^ zLZ}h+`?vyn9te8!fD*yf7c&431~mbGpX;t*xPUWK7QNZgX6yc`4EjLXA&k~COTFGS=C}@M?j$iVSQDz3ZZ+QliRraL z+1!(j2M=Hv$?Dm7Mw#57u0MK`uY(a4y1#6-XVZ8RK6nLZ<7oUo@_sEE9$ULL*kP-% z1brHPZ}|Y|2J_q0`k42bbX{ijYQy;zL78cD*O-(tJSkM|FnLF$ z$y!0`jiMW#vOPvX=#XZzcT*d;*y5-{v6;l4+X&s{ey$Yzb3w=H8TS+#{MkG3c2T1D zFj^-4vsh$vB83)&2o-doh@eICLUF$gT6+`yGEZsc0Zfa47=FN}#=Bq`_U+oI0{xka z2ZgrO6%P7Y(V2~-LF057_uf;!nz1*V^oa}d34n8DWep@TSK=BJr*04rDFz7MGpjh% z!}t{M1_(xh8l}jxr1;t;9Hs%AG?=!~mQtQW-YAblZ6)!KXwVM_Zqn$i+AyYo;;A=F zdzg4qS$mv~(in4${KL5^kbC`9IYgUX$ea|R_NG0M41N_}lA|IrW{@Z0XSrqAcZe>W z9Ga!ixurL}sxbo?{s{v<*RiD4+)y(k+)&pR4Jfkef@C$pfbA-tRU z-6ici8x3*DLQG0Zsou?Un;h~z15yD}+*BQ?ptd6M9ygmAT$R*|{8mT`9T8D2><3!h zTuvgC;V*>{b6n1gbBP8*qUJ>~#)NJv*LnsjjbrZ|?XoaJVoX^~ki?S()dlL|PD4U& z$4n;zde93}Q?%95MkkXYTC++BdMhTJOn9WCQPa4%dRlWO4J76XOqd?u7r*nm>RK2S+l-*a~YS}{@M*pEvv0;O( zc@GLJ2@ga5jWWm@{Kfy);lGDQ!4f+H84O!hi{m{KWJeE|SIjB`++ylmRJx=sy}7uh zwM8wdVckm?7hTiJ8@*rdrRxi;!DRIxV$p|-LJdHPa(Db|u#KzfCixi4+#^^dUsp=q zB1)KrA;hs1ufhx=%P?@qc&QTLnTTnek>^Z+)g3(H7?@{VbV*Q|-<@U59>7K@Uw}e| zq@%v^ERCZO{JFQ2mO4@)@0Dw4M7(>yk0}%vC?>59>FyW@w-*6{);8zO4?aTer6?}v z@@c>bR~z!>3dQTI6HAnd*(awov{Z`M`Q#ui);gLRzr5n{nrg>BrxPkwJKnI;u}tM? zD+?`sBWuixwElVbS|hba{+4*ur| zvl)rR_N86y%%5`=XLAz6VLXDpb;;S@e%V4FaQldS$ICm+J5!Ox2C)6Gt$|#_<-HXA z$r#w(G=Z^n;aLv+VgPeo(3MTGc0yNkpk+MbX*OnUW`(?Qu7D{lI$au|G1!JdOIPnU zzrmbXCPl54@c_c1>9hR4;8#2{RAY+{M0Ij-OJyXvv3q$**}l&$&7%wNNe^K~^JY zU|T*Ql{+>&Epm43KV*zKhex966e^q1YKf%qjiov9NSui8>W9RK#Yc7!cnn?D1?gjH z2~(qD4p6U(*cJ3tGO3l|gAw+gav!rEosHME<70cQSUI^`pALiZdyf)|f;bX>jMCL# z$G@h}Ja%>*42HAhoI*^*6wwBr8L%ZGgbw{Gp;QNF7{>&&SiuTsB`K^#G$!jZ0@8eE zvpYA&c7M}(VWcB6X~rEV>^`hwpEC#ZN*csM&%^UTr96bLQM$wNa>~isr#J_dJny@M zA`FrS?N9~nh}&>!gbAAg^$Wa=b(ajd8EY}TX3$xxcO7?IW^Ah2vD5Cg?q7`b9a+XT z&rVN9ToC(Nu;D%@8=Iq}qtnJ9`WPk;;M)V(%;&4U8*QTrpU00M(qH(vf19m`>;I#*{-m|`_~F{a zCy)LIJZP>x{vTfRMtf26nW3Sx=lzdq9H;ZjEqebq{rn>u_lC26=zR-hdk~$ioOE$wVHy4<|o#ed~b zZvVp>K5XbcSFO)re-vJbU07^rkzwIKlOV!u`eS@{xG`Iufk201<$UwWu?)K!ZIpN&xm zz&?*BDt<_+Z}w&hCNdzQ4sR*n>~&uqopinJ!=Jr3+sDV-huxnyRag?fA|)%x5nndK zsHVY~ZeJ0?LHl^;6;#=NzPG>E{Ta_XFZQ~J?M}ygadhl$V}5|{-pzoN5&>BrK+)E0=xhPbBhDA-zDNh0gd;wGoqYtP?00q=}Gp z?b$T0QcC!7oYpBM?6*pnesOW3Rp~>9l00}OF%D37KaJ89ChGLk`)4%r4#LZDs&m{d z6){kQFY3(&ywNBdPN(CTc&&ak=#A5%{RqTm)RE*KMse;DkZz~t-Z|{l22KUGojsq8 z0hRiVhV*EFlexe5+<&oi*xmO#+b`P37|~f3r*3g+i2&`1c#yB>HFZ#8n78Aw7f(4h zht4e}>sLxs5Vv>U?6PH3kg9E`Ho{2TL*hxBuh&&w3}k|Ii#HSAwF?FFVfqPBtd1KT zrIK8PrsyA}x~Ece4rb#Xbr;){%vgk3oYO?Y9Z6t@4^e>msi2V>ZjfO}1k@YgDZU>j zy=gRoUci12*^2~whNKL;g*};sQ#?aUOnb}_hnc#F*g>`4Fiz0-?PP+{k71+CrfdN= zj=fPhqA5#sANzHtCovl`V4G-rX?G>@gz6IP{-!>KVY_OJDt0IRT%2dP6Jrcux{XL+Pe3=-D28c# zMlr58*rvui>O4SufN6+~y5;R$o?XCUpMdNfc|V2Y=p&3|dx&`lJG1do$9qV#yElzK zdXHAub!v0UfG&Hd?p=n+nGj4r4inT2QA8UYKZbgwgfG7)iRlNXUR`1(f-ZZ1rf<9H& z*fzD=Mz(EM^gFNVZRjuzq_Z_OI7sz(G_ICeB$o^^~Y6c1N&l7BvgSC?M(U(x9F`yg5!Md@nT zpRxE8^n;0XD5awo>y<|XusGDS| ztwzW-k7I1vJLtjiU<}nM{WiM*6LomhZEw&)sTaV>3~kdTp@|k&>0pQF3nj<)wG2!u zk{xe9I>ijWt4q&kXNgKU&apxzRr&0!aR&Ro_dUq}lhv#X(1V*$z~Kqti?wg0PWmF% z8y<_7Ts7O5>e#+e!S-d^wd<+YzFe<%lS;LJM1wJ25`lQ}e8*5WnKFpzkxV5QY27R( z7izu$kUSiSW~!eDjQbbH$&f8A)-*ixIb1yaQ_$=%f(?=A7RWy8`D?%P^MU^g?cPh9 zJe@R>%TYm#T)PS{YjAQMWo^!QQhX*h$|6ev=C|sd?kCUWMHsyIgJBdTSvv}lTL%py zLp*bl4vBqlU>hI8MnjWwK!pyW&9D&B@L}g4^+!5E8?pw69iDNpzBR*Zk>@tJ?E~=(sltkUErfuILjrzL3hrJ7F47^vn2yIMGLu+Oxq z3Z_gU$L}hmYt7Tu?pr1=DhrU%lri;T91|D ztod;upA$^Bl;ML4y!0Qv#zsd>fcP6guD1yArdzzAb*CtH<0&+r!^vVJIU&B0<$IzN zYCe9*88!0=zT!Q_S1Vhd<2B~``Ysx2v{_c6V60AIGmJ3*%jmY35q?75Y0xLNF^DI_ zIGzYP0kHx64+Hp$I6|6ylGX5qa`@DEnvo#Bh5)gm_x_Sp(sbVdbw~?6@K$gyNYew5 zyjNr+5p@#*QGS11ZMIBLL54`rH^7tfqDw`U0VKAi>80Rs6YHii(f_}b^&jUCB z!5jdCKzzR;1&w%)U|O0VpEe5#%nlaA0|~kIo&y~O;gm`$1k&AVpllm3=R$vEcSg|| zH=F<=!_(XvqUSiF0b>ZlF@`z;GGZ85l9x2rSkKBPM&YLz`F|S@RZ}GFnCxVjkZ=UT z_9QsNS;>H?IetTUsdZkUVBMK21PkBgB3$ z>hSmY&y(6F-_wSw@_P}MpjR{!a{b{cGG+lQP@hO{!#Hss3WOj<(4dzi3hr}nb<-` zWq=3#R{#@CQntFPJna9~V5AOs9~lL`e=$9ScJNMhf~WspYBmt4_&?Jy-!mpp)vVcn z-EXa~uGf@PJ>3=3ZS5#XX?fv5g}K=ol$oF%I+x9GlvMrT|MUO_6i4=p0)rlMbnfhZCep|s4T zgAql~xJZy8El(EfL1CUN?lAu8;Kpd-p!x}oqV&!u#bK1D!?1xz=0NhnjDSDDxtduU zc{`wjMY0cP2cTpoY(#5;5Y+~=DfV3;vEc?=DHg_&D?*14E0CMe`0u8hfM&U#EXkx)4Lnk$v^5N;gp#-HKP`->}(4>G5Z) z+5fVi-2D&VX@A}OpC|eIpGU3R`=77z0g5YD48Rr8vt7p@u&;&irl-Jo_ttXv)^hhR zYPnlzn5%*TpfsALTg-~GajbL6fYwT|DJ+xQFEij3Yu%#D4ddBm@&MJvN&Yd=tkg00 z4U%Lw4Q*53ew?8FkNprY4e@C&NR=~le*Fuk(upPdB;xU+1YvCj+T+_#okW`?G2REK=?Yl zs57=)5cZv_IATL~$Hm;5y->1A#?{%-nn%HZpCO zoY^i<4{wH&)qt%D1C3G^pD92Y>U6Ua)$t{nz$KJ+RD#m5*r+`_s59!Sg00drzvvYl z(58rT*kP5Cl?E#N+-MN`gkqdh-9imoJ~*-jeIyUi`xO+4Pg#9E3f@!oK|fo^SQh#_ zg7FDo``CLw-CV-G08}J<M86QlC_eMGo%AN7E37b~2yPuJL8s$zOt=Ree?-JC z@RDIn=gSCo%13X|-(;4Cm&zX9#iXQySEo~DJdM?0*vDcmh@mhgQeNt@MI)nP`|#+X zeLzG8QBzOWa+b21Ff`n+)hzW-AD@_pLK#mcQ9H5Z}BV^xv(DeV}2r zs2$1WHZQy|r;Xp4lZ^#P>rr~0O+dX4l(bYX$((JLd1_elAcyn_Ehfm@JLXXVE&5BIG zzQ>)y^S9h5suY~r2+ss(=`2irs#Y~KyQAT+L6&+K)D`~0$7Z_D87qrg+H#vJc+g(Q z-+taX+CS;GIc3S=HV`FT+?r+N3*@gqoA3*zqjT()~i17A|{=P;uPvJRRs zAEpWxiHw2k2t+Ivfp)&gvB8W}?vU;Ci`_Z^3ImKq<-tOcwuP(;2xCUU zWFq%D0~C`J=H#ShSz_EanI2hW`)5OcHlBuOAPl0ReV+q`IP~?IL=Z0}wThCKkzBR4 z^i%CWz#EEZ^&ptOhe3K~&k1;sTizRHi0U7l5 zrY#Yid3|v+4+vBhTfHX$YdZdX$KUH9C9KMu)g<-d1RU0Cd41ZQJnJ7=xnG5JSQwSj zPCd+8p7XdNPfCb``iR@XpkFhemJkbvyEUvR%MR}V*~-NG!}c3SeL$ue=E)2AF6(H2 z_r>m}oS9iU3h(Rq&l>%^u5B;*Smt@pQJon~&t^=D)TZJ5L|Cv-mxr+OdFejU2rM0P z5t#Zz*T;yddE%neB3up4VFpJIt^=o}whQo`o|m9Ju`XQDc-Th-q;NLjg(77ZPE!%Y zN%}>l@E1S6BTqEi^JACt39m}t(rY1h79zva?y9Bin?z!h*F>aoZr=25bVJt{>;@TG z!G@qWdQTWU-R|j)?Tl=$uDCgPyjvx^L&s0zV)OZpJHtrAjahal7@6nPo?e4v853tS zEqg{yzLhzYViC2U_Y{M0&eRU8psTvE7A4QMyvY0~NG-0C_c6te*oQ10m`U$xi)b)H z9bFDDWWI#MYdqI;aK}U(>5Nrkv+#n8*FbcTk}i$!vXEIL)u7xqX4nN<1DH-Ec63a{ zXy?j7t`|?SAk1$2`S$J$wW`L5@_dB=5r2ZWxC6{hr0^CFsa;@Hn-)$kStYPRLpoHK zH@y7H1YY#bAok%gSt)hpnc=CYoa@YWF&9w~uV^V{=P4{?&qV=8h%8QwrCxFW_k4={ ze?G=v^Zuu~)@tSa{~k7P{eQm72X^N3XpDxO;m6)^mY@ms(Q#&@MMtp<9czFx&7d^Y zSiy*YeTx4(O9zdo_@waK=+XS}FQ0LPwD}jmL0TjF?cNu$JbHU&^mVR`HYpIpm&AJM zL>MmdpCHW*l0;&Ighp%%R3(5MKZ&M%E5L-4kPcX11l-X(_<#R@a5kPUC*EO*<|M0E zi5MdU7_Vl;^@5)$a|!fdpQ6bX98Xepj&)uo)1K>&VJgm0#|K3+Z5axl2yQcPtez@! zd>8?FBv2++`Ymyugr34YjQf}@m^GK%U37UPE7Q*2%iZ>i?UVg(rq4s8=8wKbmjS2( zCAPJ0A>i`(cVSuqfRuzO7SCX6|4pO}td3NrU}pp>dJ<(s!vNvoRB0K|>=LR}Ggx)+ z9`>X0%uo6{2z*t+lf=Ph452@pApT$W$@71dATfgbd2mxofcgA??a`B5{EtTuAKvo+ zukzuDUFdj)z80a1-cS6FNET&W%Lo=Zh0M|zE#E25Td}R^8i^2(=-(&T6DN!#*z@UZ z9DA<SX)2Ch zRD&AZk;Mb}`apfd^ddD@;BT9|-lJ$=JRNdho>2wy&@k@O-FIj;_A$-k7#Mbi&NHR5 zKtmhUHYR==`|0!&M1{>IZ6%biV6-?(2T!re+jriUl5EiO@1*;p@syo*R#CSDc!wL9 z{6#T}!CvR6@$~7VZ}5h9JejFVwJu=CQy9GJHpM&prsZ8rD7RGB`{T}WToy^ zvUimGgKXD6ZC-7J|C$ty?+L}aP!p#Hy2rbP`j%y>W49=@X!-b5S(7OWf;UXcxfj5; zPj(vreC^=^u6mvG7|wg0S9>qI{y+CRYRD9)7Xy$YMY)(_3}T{Q0vO{x1gNsYD4(m| z>oA@S#bq1QeublP1~R+ux*%U|OopzTqcO>iVL|~5Q>pcAwZrW+JTa`xs1C3_g`= z8{iE&thPMCq1jL1NQyzLjVDp2_vTxz&H0S#g1=_9@KF)3q8DaomANQh9CVL=_V*6` zqvPH7F?ExzU4)E;qe*&c-qo96#1b^KE>L&(`r>`>@W<_aCu*-1rI&41sl|R6P8uXQ zk-;mHIJ0k7s`5*sAcB#}RMv!zZ19WRxQorUEQgo*4wuY4 z)=;qS>%!tWyt!n=Hff^Wtub5CJ7tTp=|%VN^OUJ}?{B%V5W4i#0i!!DSOslycon$} z-O6AnBXDU(8%asYJ4LIfF^h7Um*HQ{%aBwCf)MX7o^Kl4?kmtb5tN&_FHUw%*;!D9KoGjAf(tdbY^s?BYie1q&U^7Fm5% zN4X<)7q>8C#@I6Ka;Fy&(3xR(GVFm0!Q#)Sl0{>vI=nc3U{fE)7kCL7PE*MraN*J7 zo5oxk&vd+RlYluTTsd1x+f*$N7ifTG1eUq^Y(O88)(umj8R#C>|B6|YXAxff z6c@Yabi<*7%>sL+9Qh>on^N-0=4<=W`w-X6SEsl-T1=H_tz4*%`b z$U;#7h4b{u(%Tiz8agNGx}rMlJTTGYT!B%ZrRNhd!5gD@Up6aZpJEJy}lVAq4wdnM*<)+^u**!f+nGs_|O3G|gDi&Ct5rEc}Y2{##+D}f3gm)kq z%pJv*wbeD08RQX-9Ur$=AIWGi96~_R%{Y%#k=*(Z4m9TbFEI+W@8d|;aKET02YZJ{ z$M75*tf7FE6@7+Je&x2H#vL6g+dtXiBI-3(gC~1CM~6T9KemrMdq;pl}ZNfYovkZqjMkJ=hiiu?14+lv`E_fRkif zdGMfnynWc&-|JTDS)&;${1H^WOq|Y!bY)OEVqQd=l^i+^!=P|BtP#7^SD)%61c_1X z=BB0egmIyK~kzrV%@XyyN!g;U8HkCwL+KtK%BfD!JdBZ){A9J4wahN z*4I=Mgw2e6v%k0sX=Yjna#_WFRAxbXn*GvnmOQ)ON^+U_n$eo=)r=^Ft9_V05D|O| zbAudN*TO{Q#=Fg|4kB#=+dJ`-aN^Xl-Wheyrtypd{Mp6TW259K9{clpm3!~ho!7hE zd#7$mFU?m*4Nhb7A@tFC(5Yg*GwP_oe?@hycSaqK#MHa=lgrU*JalR~Z;g6`Y0&fg z(HSP!vFjLb%<=fW1nozAA&4gKc+7WJ9qcSDM3S3 z*|?-<_SfsOfQUmLjz*V?Pi2{9jg++4q5cn6NQJQSpokAh{AA;L z(k7KqtFl_DXRmE)h_B7Jn%=oD@h5<@v!=VqW z28D=vVcs7JXV9Qz#5^H*XR3nn0C{BVEKF@6lQa#ngFwNeF`RvaVe}hjr^Yv&A{+1! zh!oOrYr5)&^_kjHlxrFn*Uu)aN;k`CjHx8NY0)Aoa-)8xfsWV%Q=bfBoBFz_IkCO- z2pUzd6oFFsM2X>GE+WokMr#&N)rLn62@Irnj*Y?GrLfT@`Wh7CB^u+U)o^%8`x;^7 z`jX9gQD-nrLNuNMk(rGt!3+(Q16iOYL>(qQjfRxNJ@JOK-up|HJ`7W?09zYPQnv6` z6VG{pY2V0zh#tXmrsuPS<~YDOa7Zv@JbET`C@Q@VoWAoK0Sd{g;+)cU?klQ`2_|5j zFC|k^wvrU+f>IMtX#O}}L|tV)r$@jSCS+*Gx%$*<$&SEIQc_{Bwe|#)g`Z!3he^1h zLFzX!su_l|F=N(E7{|2Zxu!!-AgB^j4BP8lMi z3%1s0=8c=4F&o}e3~qRXt)BschnUr7HC&aX=(M_ASXuVaNTHb-M*Df`@4Y;%iNzI4 z7QCA++K+hzD6Nko=a?)lfk}uY2#$qrlu8gLK9a=m82S)^s(wlYM1-WWSVvO~6pC|M zrTI|l9*xD86j4Cq-&bo7!jECEDp}Nq(fg3etBS3tra@652944eaTVt^^_}D_F|U?1 zgJd;|6SVVce-|?mY(x7Xuk8J_fdVINnajj`D?k(oJ&5KaHbBLcM3~0ywuhwoIaDQQ8)%lT+Zv+3#S;tMNa~n8cSqGiM^PC z;jJW6?`$k9vkDS81#FFavtcl;yL}<4TmxZl2hHKOnCdu}uyKZxmqTS8SMmro!#3+0 ziuAV5Y0?9}b?P2^0j*)@bt-%21O~NTG8D_g2e~1y!sDm5@ zNTx)OlcGDp>V|cu)EdrdC^0x-=BRYGt2C6LH;swshrP_mIQ)oH6=icQ8wB9=VY9}} zphHOkH@vhPDFUq_0WJm8(hf!s%Gvw%*k?3sH{4OA(>J0?tKaipiCz3dLB5IHkT9 zV;$k8gLdCGybSH=2cR7sbTho8hX&fs!2;;$=ODq&;6M=yMB{5?z>Oe4$@-s0oP-Bh z2W&M`AKonSXkCqXm{qTd08T&D_xT9-XArBb&2A>`DCt(^wd(~_)ewc+1EC=3BlDqc z*s9@i0@Y)@C?oC($ke2#IN1J40>hybKfOF-Rmu=ENE8y>MRidmH7 zaZgTMSrG*X*gf|M&qow(8fSvE4ZvNoSvmp0@glv%0_t>@T≠F|XBl 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