From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 10 05:57:49 2023 Received: (at submit) by debbugs.gnu.org; 10 Aug 2023 09:57:49 +0000 Received: from localhost ([127.0.0.1]:41438 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qU2QM-0001W4-SP for submit@debbugs.gnu.org; Thu, 10 Aug 2023 05:57:49 -0400 Received: from lists.gnu.org ([2001:470:142::17]:54302) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qU2QJ-0001Vn-8q for submit@debbugs.gnu.org; Thu, 10 Aug 2023 05:57:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qU2QD-0007UR-Rp for bug-gnu-emacs@gnu.org; Thu, 10 Aug 2023 05:57:37 -0400 Received: from mail-qt1-x82d.google.com ([2607:f8b0:4864:20::82d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qU2Q9-0007zC-Br for bug-gnu-emacs@gnu.org; Thu, 10 Aug 2023 05:57:37 -0400 Received: by mail-qt1-x82d.google.com with SMTP id d75a77b69052e-40fbf360a9cso4836851cf.3 for ; Thu, 10 Aug 2023 02:57:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691661452; x=1692266252; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=sHoOG9FtIkRZwFSGWSkcY4GcbdfraLKceNAUktwaDBM=; b=UNl4qYG4S7TjzwqV/9ZBlPKfPiiRJGbxa3rEUNQJlyOHxlnNtzyoQAYZ+xTqxvovuo V1I2JXyKqPZ8i5Iw0WksmBpEtkINE5+5fOf8PhjgqQzMv4EZwLbxZh6mcxPh8bK23TaB C1lxsROdS4p3ArXYffiDHf6hRs5iGqMBdNeUsbFphzIWVhPGq7GtfkgejU8PsfqiXTR+ v90WvuEiuuNNpOd+I8FpeAcodqHMoVpm/stDwEAU55xdavn2rm2LEd9XoCHcWKIVD86o AiX97lg5wGig2pFGvwmsLJKfw2Z1rxxkBf69nzMMk2NdVT71TVTXoP52reS9wm4XWROw QE7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691661452; x=1692266252; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=sHoOG9FtIkRZwFSGWSkcY4GcbdfraLKceNAUktwaDBM=; b=OlebP6BOqFVfgwq4cPhWAdafTwOYWf0dpeGJWqBr+fbw1f/CoibZ8wMsSi4MB4uat8 B2EMjh8Y3alT1/sPqst1vWk0A9UghFKUPvPesx01FSjKxUfljn6PJPNhZ6e/46o+/mEB f9Z/HErcaYQ9HXFJ7DU90uwLcZroYgnBhqhNLaWS/WsIdFT1f7CpylRVJjWlywYwY3c2 5RpLzSuqdOpyNXIGF77+kfBzNzinZaqCUkz0+iV1Rp0fWZmOIghhbdr9MO6ok5EETO9x NOV9uwU0QqYJ6dApJu/hSv9ZLFT19f91UUXkiP7H+TX0Whg+cJ5rtKs+qsfm69lNV1yx uGuQ== X-Gm-Message-State: AOJu0YwW5QVK6Tga4UHwtlcHIST0c3LnXZAwtXSRVNUx5KhROMQ5K/pL n5CiREhN8WAhfD6lcAiD8ba1zhLULwvU8Mbcwklwp55F/9YYdw== X-Google-Smtp-Source: AGHT+IF68WM7JXrTewAlD8m1MPoTP+nDcHd/VW3Q162H507c0O63GIIveb0isQOeDpM1s0YokwNdfWRfS5P3S9B89jM= X-Received: by 2002:ac8:5c06:0:b0:40f:ef6d:1a3f with SMTP id i6-20020ac85c06000000b0040fef6d1a3fmr2477783qti.30.1691661451523; Thu, 10 Aug 2023 02:57:31 -0700 (PDT) MIME-Version: 1.0 From: =?UTF-8?B?5byg5LqR5bOw?= Date: Thu, 10 Aug 2023 17:57:20 +0800 Message-ID: Subject: 29.1; Emacs29.1 crash in function face_for_font To: bug-gnu-emacs@gnu.org Content-Type: multipart/alternative; boundary="000000000000e5fc5d06028e9ff1" Received-SPF: pass client-ip=2607:f8b0:4864:20::82d; envelope-from=zhangyunfeng0101@gmail.com; helo=mail-qt1-x82d.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.2 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: In GNU Emacs 29.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.33, cairo version 1.16.0) of 2023-08-10 built on zayfen Windowing system distributor 'The X.Org Foundation', version 11.0.12201001 Sy [...] Content analysis details: (1.2 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit (zhangyunfeng0101[at]gmail.com) 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (zhangyunfeng0101[at]gmail.com) -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 0.0 HTML_MESSAGE BODY: HTML included in message -0.0 T_SCC_BODY_TEXT_LINE No description available. X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.2 (/) --000000000000e5fc5d06028e9ff1 Content-Type: text/plain; charset="UTF-8" In GNU Emacs 29.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.33, cairo version 1.16.0) of 2023-08-10 built on zayfen Windowing system distributor 'The X.Org Foundation', version 11.0.12201001 System Description: Ubuntu 22.04.3 LTS Configured features: CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB Important settings: value of $LC_MONETARY: zh_CN.UTF-8 value of $LC_NUMERIC: zh_CN.UTF-8 value of $LC_TIME: zh_CN.UTF-8 value of $LANG: zh_CN.UTF-8 value of $XMODIFIERS: @im=fcitx5 locale-coding-system: utf-8-unix Major mode: Dashboard Minor modes in effect: global-tempel-abbrev-mode: t tempel-abbrev-mode: t editorconfig-mode: t gcmh-mode: t eros-mode: t undo-fu-session-global-mode: t which-function-mode: t global-subword-mode: t subword-mode: t desktop-save-mode: t global-so-long-mode: t savehist-mode: t save-place-mode: t minibuffer-depth-indicate-mode: t delete-selection-mode: t pixel-scroll-precision-mode: t winner-mode: t windmove-mode: t global-treesit-auto-mode: t dirvish-override-dired-mode: t vertico-mode: t all-the-icons-completion-mode: t marginalia-mode: t doom-modeline-mode: t which-key-mode: t global-auto-revert-mode: t display-time-mode: t recentf-mode: t general-override-mode: t override-global-mode: t straight-use-package-mode: t straight-package-neutering-mode: t straight-live-modifications-mode: t puni-global-mode: t puni-mode: t tooltip-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tab-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t buffer-read-only: t column-number-mode: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Features: (shadow sort disp-table spell-fu ispell mail-extr network-stream nsm display-line-numbers hl-line hideshow page-break-lines tempel-collection tempel rainbow-delimiters highlight-numbers parent-mode symbol-overlay hl-todo flycheck-posframe posframe flycheck find-func jka-compr let-alist lsp-bridge lsp-bridge-org-babel lsp-bridge-lsp-installer lsp-bridge-diagnostic lsp-bridge-code-action acm acm-quick-access acm-backend-copilot acm-backend-codeium array acm-backend-citre acm-backend-tailwind acm-backend-tabnine acm-backend-telega acm-backend-tempel acm-backend-search-sdcv-words acm-backend-search-file-words acm-backend-path acm-backend-lsp acm-backend-elisp acm-backend-yas yasnippet-snippets yasnippet acm-icon svg dom lsp-bridge-call-hierarchy lsp-bridge-peek lsp-bridge-jdtls lsp-bridge-ref grep compile comint ansi-osc ansi-color lsp-bridge-epc acm-frame diff markdown-mode noutline outline warnings editorconfig editorconfig-core editorconfig-core-handle editorconfig-fnmatch ligature emacsbug message yank-media puny rfc822 mml mml-sec epa epg rfc6068 epg-config gnus-util time-date mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils puni gcmh server multiple-cursors mc-separate-operations rectangular-region-mode mc-mark-pop mc-edit-lines iedit iedit-lib mc-hide-unmatched-lines-mode mc-mark-more mc-cycle-cursors multiple-cursors-core rect rivenemacs-lazy mule-util cursor-sensor vertico-repeat add-log derived vlf-setup advice eros elisp-demos re-elisp-extras undo-fu-session undo-fu orderless which-func imenu cap-words superword subword desktop frameset so-long savehist saveplace mb-depth delsel pixel-scroll cua-base winner battery dbus face-remap pulse color xml windmove rivenemacs-loaded treesit-auto eldoc-box icons dirvish transient format-spec dired dired-loaddefs vertico-directory vertico all-the-icons-completion marginalia doom-modeline doom-modeline-segments doom-modeline-env doom-modeline-core shrink-path f f-shortdoc s dash nerd-icons nerd-icons-faces nerd-icons-data nerd-icons-data-mdicon nerd-icons-data-flicon nerd-icons-data-codicon nerd-icons-data-devicon nerd-icons-data-sucicon nerd-icons-data-wicon nerd-icons-data-faicon nerd-icons-data-powerline nerd-icons-data-octicon nerd-icons-data-pomicon nerd-icons-data-ipsicon compat which-key exec-path-from-shell dracula-theme autorevert filenotify re-python python-pytest-autoloads projectile-autoloads nose-autoloads py-isort-autoloads pyimport-autoloads shut-up-autoloads pip-requirements-autoloads rust rust-mode-autoloads jsdoc-autoloads sass-mode-autoloads haml-mode-autoloads web-mode-autoloads emmet-mode-autoloads re-lua lua-mode-autoloads re-popup eldoc-box-autoloads re-indent aggressive-indent-mode-autoloads re-fold ts-fold-indicators-autoloads ts-fold-autoloads fringe-helper-autoloads tree-sitter-autoloads re-formatter clang-format-autoloads editorconfig-autoloads apheleia-autoloads re-treesit treesit-auto-autoloads treesit re-jump smart-jump xref dumb-jump-autoloads re-hackernews hackernews-autoloads re-leetcode leetcode-autoloads log4e-autoloads graphql-autoloads re-window re-binary re-workspaces re-tty xclip-autoloads re-tools bitwarden-autoloads logview-autoloads datetime-autoloads extmap-autoloads journalctl-mode-autoloads pkgbuild-mode-autoloads systemd-autoloads docker-compose-mode-autoloads docker-autoloads aio-autoloads multi-vterm-autoloads vterm-autoloads tldr-autoloads ssh-deploy-autoloads re-files treemacs-all-the-icons-autoloads treemacs-autoloads cfrs-autoloads pfuture-autoloads vlf-autoloads dirvish-autoloads re-natural-langs lexic-autoloads go-translate-autoloads spell-fu-autoloads re-latex auctex-latexmk-autoloads auctex-autoloads tex-site re-docs edraw-autoloads crdt-autoloads nov-autoloads esxml-autoloads kv-autoloads pdf-tools-autoloads re-extra crux-autoloads re-org consult-org-roam-autoloads org-roam-ui-autoloads websocket-autoloads simple-httpd-autoloads org-roam-autoloads org-present-autoloads org-fragtog-autoloads org-modern-autoloads org-appear-autoloads ox-hugo-autoloads tomelr-autoloads engrave-faces-autoloads org-contrib-autoloads re-data ob-d2-autoloads d2-mode-autoloads ob-mermaid-autoloads mermaid-mode-autoloads plantuml-mode-autoloads graphviz-dot-mode-autoloads json-mode-autoloads json-snatcher-autoloads toml-mode-autoloads yaml-pro-autoloads yaml-mode-autoloads csv-mode-autoloads re-lisp eros-autoloads info-colors-autoloads helpful-autoloads elisp-refs-autoloads elisp-demos-autoloads sly-macrostep-autoloads macrostep-geiser-autoloads macrostep-autoloads cider-autoloads sesman-autoloads spinner-autoloads queue-autoloads parseedn-autoloads parseclj-autoloads clojure-mode-autoloads geiser-stklos-autoloads geiser-racket-autoloads geiser-mit-autoloads geiser-kawa-autoloads geiser-guile-autoloads geiser-gauche-autoloads geiser-gambit-autoloads geiser-chicken-autoloads geiser-chibi-autoloads geiser-chez-autoloads geiser-autoloads racket-mode-autoloads sly-autoloads re-lsp-bridge yasnippet-snippets-autoloads yasnippet-autoloads re-debug disaster-autoloads realgud-autoloads realgud-recursive-autoloads test-simple-autoloads loc-changes-autoloads load-relative-autoloads re-checkers re-project consult-project-extra-autoloads re-vc repo-autoloads hydra ring lv git-modes-autoloads git-timemachine-autoloads diff-hl-autoloads emojify-autoloads forge-autoloads yaml-autoloads markdown-mode-autoloads ghub-autoloads treepy-autoloads closql-autoloads emacsql-autoloads magit-todos-autoloads pcre2el-autoloads async-autoloads magit-autoloads magit-section-autoloads git-commit-autoloads with-editor-autoloads re-multi-cursors multiple-cursors-autoloads iedit-autoloads re-undo undo-fu-session-autoloads undo-fu-autoloads vundo-autoloads re-daemon re-editor rainbow-mode-autoloads hl-todo-autoloads anzu-autoloads expand-region-autoloads highlight-numbers-autoloads parent-mode-autoloads rainbow-delimiters-autoloads ligature-autoloads pcache-autoloads tempel-collection-autoloads edmacro kmacro tempel-autoloads re-ui focus-autoloads page-break-lines-autoloads mixed-pitch-autoloads visual-fill-column-autoloads svg-lib-autoloads re-font re-completion vertico-prescient-autoloads prescient-autoloads find-file-in-project-autoloads vertico-autoloads orderless-autoloads all-the-icons-completion-autoloads marginalia-autoloads embark-consult-autoloads embark-autoloads consult-autoloads re-core-ui doom-modeline-autoloads shrink-path-autoloads f-autoloads nerd-icons-autoloads bookmark text-property-search pp project time dashboard dashboard-widgets all-the-icons all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons recentf tree-widget wid-edit ffap thingatpt dashboard-autoloads all-the-icons-autoloads modus-themes-autoloads re-defuns re-emacs-keybindings hydra-autoloads lv-autoloads re-general-ready general general-autoloads which-key-autoloads re-gc gcmh-autoloads re-builtin re-bootstrap explain-pause-mode-autoloads exec-path-from-shell-autoloads use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key use-package-core straight-autoloads cl-extra help-mode straight re-splash re-defaults pcase rx re-loaddefs ace-window-autoloads avy-autoloads dracula-theme-autoloads esup-autoloads flycheck-posframe-autoloads flycheck-rust-autoloads fussy-autoloads flx-autoloads goto-last-change-autoloads js-doc-autoloads package-lint-autoloads pkg-info-autoloads epl-autoloads poetry-autoloads popup-autoloads posframe-autoloads puni-autoloads easy-mmode pyvenv-autoloads quickrun-autoloads ht-autoloads dash-autoloads s-autoloads smart-jump-autoloads symbol-overlay-autoloads tablist-autoloads transient-autoloads info compat-autoloads finder-inf tsc-autoloads package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib re-vars china-util rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify dynamic-setting system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit xinput2 x multi-tty make-network-process emacs) Memory information: ((conses 16 789144 521644) (symbols 48 36361 10) (strings 32 239057 97417) (string-bytes 1 6986378) (vectors 16 62923) (vector-slots 8 1738733 519301) (floats 8 794 931) (intervals 56 868 345) (buffers 984 17)) ;;;;; GDB INFO ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. 0x00005555556859b8 in face_for_font (f=0x555561746d40, font_object=0x555558465ec5, base_face=base_face@entry=0x0) at xfaces.c:4931 4931 base_face = base_face->ascii_face; (gdb) bt #0 0x00005555556859b8 in face_for_font (f=0x555561746d40, font_object=0x555558465ec5, base_face=base_face@entry=0x0) at xfaces.c:4931 #1 0x00005555555ee682 in get_next_display_element (it=it@entry=0x7fffffff6c90) at xdisp.c:8322 #2 0x00005555555eacb0 in move_it_in_display_line_to (it=it@entry=0x7fffffff6c90, to_charpos=to_charpos@entry=412, to_x=to_x@entry=2147483647, op=op@entry=(MOVE_TO_X | MOVE_TO_POS)) at xdisp.c:9829 #3 0x00005555555f002a in move_it_to (it=0x7fffffff6c90, to_charpos=412, to_x=, to_y=, to_vpos=, op=11) at xdisp.c:10500 #4 0x0000555555604e4e in window_text_pixel_size (window=, from=, to=, x_limit=0x1ce2, y_limit=, mode_lines=0x0, ignore_line_at_end=0x0) at xdisp.c:11455 #5 0x0000555555605ae6 in Fwindow_text_pixel_size (window=0x555561746f95, from=0x0, to=0x0, x_limit=0x1ce2, y_limit=0xaf2, mode_lines=0x0, ignore_line_at_end=0x0) at xdisp.c:11629 #6 0x0000555555771442 in funcall_subr (subr=0x555555d0e5a0 , numargs=numargs@entry=5, args=args@entry=0x7ffff0bff1f0) at eval.c:3046 #7 0x00005555557b6523 in exec_byte_code (fun=, args_template=, nargs=, args=) at bytecode.c:809 #8 0x000055555576df83 in Ffuncall (nargs=6, args=0x7fffffff9570) at eval.c:2995 #9 0x0000555555771ca7 in eval_sub (form=) at eval.c:2470 #10 0x0000555555773eb5 in Fprogn (body=0x0) at eval.c:436 #11 FletX (args=0x55555d67e733) at eval.c:958 #12 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #13 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436 #14 funcall_lambda (fun=0x55555d67e013, nargs=3, arg_vector=0x7fffffff9810) at eval.c:3233 #15 0x000055555577347f in apply_lambda (fun=, args=, count=...) at eval.c:3103 #16 0x0000555555771ad6 in eval_sub (form=) at eval.c:2588 #17 0x0000555555773eb5 in Fprogn (body=0x55555ef746e3) at eval.c:436 #18 FletX (args=0x55555ef74b43) at eval.c:958 #19 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #20 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436 #21 funcall_lambda (fun=0x55555ef738c3, nargs=0, arg_vector=0x7fffffff9b00) at eval.c:3233 #22 0x000055555577347f in apply_lambda (fun=, args=, count=...) at eval.c:3103 #23 0x0000555555771ad6 in eval_sub (form=) at eval.c:2588 #24 0x0000555555773a9d in Fprogn (body=0x0) at eval.c:436 #25 Flet (args=) at eval.c:1026 #26 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #27 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #28 0x0000555555773eb5 in Fprogn (body=0x0) at eval.c:436 #29 FletX (args=0x55555ef74d83) at eval.c:958 #30 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #31 0x000055555577212d in Fprogn (body=0x0) at eval.c:436 #32 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #33 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #34 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436 #35 funcall_lambda (fun=0x55555ef74e93, nargs=1, arg_vector=0x7fffffffa170) at eval.c:3233 #36 0x000055555577347f in apply_lambda (fun=, args=, count=...) at eval.c:3103 #37 0x0000555555771ad6 in eval_sub (form=) at eval.c:2588 #38 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #39 0x000055555577212d in Fprogn (body=0x0) at eval.c:436 #40 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #41 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #42 0x0000555555773eb5 in Fprogn (body=0x0) at eval.c:436 #43 FletX (args=0x55555f141f93) at eval.c:958 #44 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #45 0x000055555577212d in Fprogn (body=0x0, body@entry=0x55555f141fc3) at eval.c:436 #46 0x000055555575df5c in Fsave_current_buffer (args=0x55555f141fc3) at editfns.c:874 #47 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 --Type for more, q to quit, c to continue without paging-- #48 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #49 0x0000555555773eb5 in Fprogn (body=0x0) at eval.c:436 #50 FletX (args=0x55555f141863) at eval.c:958 #51 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #52 0x0000555555773eb5 in Fprogn (body=0x0) at eval.c:436 #53 FletX (args=0x55555f141893) at eval.c:958 #54 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #55 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436 #56 funcall_lambda (fun=0x55555f141953, nargs=2, arg_vector=0x7fffffffaab0) at eval.c:3233 #57 0x000055555577347f in apply_lambda (fun=, args=, count=...) at eval.c:3103 #58 0x0000555555771ad6 in eval_sub (form=) at eval.c:2588 #59 0x00005555557745cb in Feval (form=0x55555e11a423, lexical=) at eval.c:2361 #60 0x0000555555771db9 in eval_sub (form=) at eval.c:2501 #61 0x0000555555772ced in Fprogn (body=0x55555f0dc2a3) at eval.c:436 #62 funcall_lambda (fun=0x55555f0dbcf3, nargs=1, arg_vector=0x7fffffffadf8) at eval.c:3233 #63 0x000055555576df83 in Ffuncall (nargs=2, args=0x7fffffffadf0) at eval.c:2995 #64 0x000055555576e472 in Fapply (nargs=2, args=0x7fffffffadf0) at eval.c:2623 #65 0x0000555555771ca7 in eval_sub (form=) at eval.c:2470 #66 0x0000555555773d06 in FletX (args=0x55555d799df3) at /home/ zhangyunfeng@pudu.com/Download/emacs-emacs-29.1/src/lisp.h:1529 #67 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #68 0x0000555555774453 in internal_lisp_condition_case (var=, bodyform=, handlers=) at eval.c:1428 #69 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #70 0x0000555555772a25 in Fprogn (body=0x0) at eval.c:436 #71 Fcond (args=) at eval.c:416 #72 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #73 0x0000555555773eb5 in Fprogn (body=0x0) at eval.c:436 #74 FletX (args=0x55555d799fa3) at eval.c:958 #75 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #76 0x0000555555773a9d in Fprogn (body=0x0) at eval.c:436 #77 Flet (args=) at eval.c:1026 #78 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #79 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436 #80 funcall_lambda (fun=0x55555d799903, nargs=4, arg_vector=0x7fffffffb558) at eval.c:3233 #81 0x000055555576df83 in Ffuncall (nargs=5, args=0x7fffffffb550) at eval.c:2995 #82 0x000055555576e200 in Fapply (nargs=3, args=0x7fffffffb5f0) at eval.c:2666 #83 0x0000555555771ca7 in eval_sub (form=) at eval.c:2470 #84 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436 #85 funcall_lambda (fun=0x55556088b4e3, nargs=1, arg_vector=0x7fffffffb778) at eval.c:3233 #86 0x000055555576df83 in Ffuncall (nargs=2, args=0x7fffffffb770) at eval.c:2995 #87 0x0000555555771ca7 in eval_sub (form=) at eval.c:2470 #88 0x0000555555773891 in Flet (args=) at eval.c:996 #89 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #90 0x0000555555774453 in internal_lisp_condition_case (var=, bodyform=, handlers=) at eval.c:1428 #91 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #92 0x0000555555773a9d in Fprogn (body=0x0) at eval.c:436 #93 Flet (args=) at eval.c:1026 #94 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #95 0x0000555555772a25 in Fprogn (body=0x0) at eval.c:436 #96 Fcond (args=) at eval.c:416 #97 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 --Type for more, q to quit, c to continue without paging-- #98 0x0000555555773a9d in Fprogn (body=0x0) at eval.c:436 #99 Flet (args=) at eval.c:1026 #100 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #101 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436 #102 funcall_lambda (fun=0x55555d741ba3, nargs=3, arg_vector=0x7fffffffbec0) at eval.c:3233 #103 0x000055555577347f in apply_lambda (fun=, args=, count=...) at eval.c:3103 #104 0x0000555555771ad6 in eval_sub (form=) at eval.c:2588 #105 0x00005555557721e7 in Fsetq (args=) at eval.c:483 #106 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #107 0x0000555555774453 in internal_lisp_condition_case (var=, bodyform=, handlers=) at eval.c:1428 #108 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #109 0x0000555555773eb5 in Fprogn (body=0x55555d6e6453) at eval.c:436 #110 FletX (args=0x55555d6e63d3) at eval.c:958 #111 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #112 0x000055555577212d in Fprogn (body=0x0) at eval.c:436 #113 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #114 0x0000555555771e22 in eval_sub (form=) at eval.c:2449 #115 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436 #116 funcall_lambda (fun=0x55555d6e5d13, nargs=0, arg_vector=0x7ffff0bff058) at eval.c:3233 #117 0x000055555576df83 in Ffuncall (nargs=1, args=0x7ffff0bff050) at eval.c:2995 #118 0x000055555576e398 in Fapply (nargs=2, args=0x7ffff0bff050) at eval.c:2619 #119 0x00005555557b6523 in exec_byte_code (fun=, args_template=, nargs=, args=) at bytecode.c:809 #120 0x000055555576df83 in Ffuncall (nargs=nargs@entry=2, args=args@entry=0x7fffffffc760) at eval.c:2995 #121 0x00005555556e74de in call1 (arg1=0x55555baa90ed, fn=0xfd80) at /home/ zhangyunfeng@pudu.com/Download/emacs-emacs-29.1/src/lisp.h:3248 #122 timer_check_2 (idle_timers=, timers=) at keyboard.c:4690 #123 timer_check () at keyboard.c:4756 #124 0x00005555557c4814 in wait_reading_process_output (time_limit=time_limit@entry=30, nsecs=nsecs@entry=0, read_kbd=read_kbd@entry=-1, do_display=do_display@entry=true, wait_for_cell=wait_for_cell@entry=0x0, wait_proc=wait_proc@entry=0x0, just_wait_proc=) at process.c:5386 #125 0x00005555555bb074 in sit_for (timeout=timeout@entry=0x7a, reading=reading@entry=true, display_option=display_option@entry=1) at dispnew.c:6264 #126 0x00005555556ef589 in read_char (commandflag=1, map=0x55555de3ab13, prev_event=0x0, used_mouse_menu=0x7fffffffd1cb, end_time=0x0) at keyboard.c:2881 #127 0x00005555556efe58 in read_key_sequence (keybuf=, prompt=0x0, dont_downcase_last=, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=) at keyboard.c:10083 #128 0x00005555556f1a60 in command_loop_1 () at keyboard.c:1384 #129 0x000055555576c587 in internal_condition_case (bfun=bfun@entry=0x5555556f1880 , handlers=handlers@entry=0x90, hfun=hfun@entry=0x5555556e4b40 ) at eval.c:1474 #130 0x00005555556dd01e in command_loop_2 (handlers=handlers@entry=0x90) at keyboard.c:1133 #131 0x000055555576c4c9 in internal_catch (tag=tag@entry=0x10080, func=func@entry=0x5555556dcff0 , arg=arg@entry=0x90) at eval.c:1197 #132 0x00005555556dcfb9 in command_loop () at keyboard.c:1111 #133 0x00005555556e4698 in recursive_edit_1 () at keyboard.c:720 #134 0x00005555556e4a40 in Frecursive_edit () at keyboard.c:803 #135 0x00005555555b00d5 in main (argc=, argv=) at emacs.c:2529 --000000000000e5fc5d06028e9ff1 Content-Type: text/html; charset="UTF-8"





In GNU Emacs 29.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.33,
cairo version 1.16.0) of 2023-08-10 built on zayfen
Windowing system distributor 'The X.Org Foundation', version 11.0.12201001
System Description: Ubuntu 22.04.3 LTS

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG
RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER
WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB

Important settings:
value of $LC_MONETARY: zh_CN.UTF-8
value of $LC_NUMERIC: zh_CN.UTF-8
value of $LC_TIME: zh_CN.UTF-8
value of $LANG: zh_CN.UTF-8
value of $XMODIFIERS: @im=fcitx5
locale-coding-system: utf-8-unix

Major mode: Dashboard

Minor modes in effect:
global-tempel-abbrev-mode: t
tempel-abbrev-mode: t
editorconfig-mode: t
gcmh-mode: t
eros-mode: t
undo-fu-session-global-mode: t
which-function-mode: t
global-subword-mode: t
subword-mode: t
desktop-save-mode: t
global-so-long-mode: t
savehist-mode: t
save-place-mode: t
minibuffer-depth-indicate-mode: t
delete-selection-mode: t
pixel-scroll-precision-mode: t
winner-mode: t
windmove-mode: t
global-treesit-auto-mode: t
dirvish-override-dired-mode: t
vertico-mode: t
all-the-icons-completion-mode: t
marginalia-mode: t
doom-modeline-mode: t
which-key-mode: t
global-auto-revert-mode: t
display-time-mode: t
recentf-mode: t
general-override-mode: t
override-global-mode: t
straight-use-package-mode: t
straight-package-neutering-mode: t
straight-live-modifications-mode: t
puni-global-mode: t
puni-mode: t
tooltip-mode: t
global-eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tab-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
buffer-read-only: t
column-number-mode: t
line-number-mode: t
transient-mark-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t


Features:
(shadow sort disp-table spell-fu ispell mail-extr network-stream nsm
display-line-numbers hl-line hideshow page-break-lines tempel-collection
tempel rainbow-delimiters highlight-numbers parent-mode symbol-overlay
hl-todo flycheck-posframe posframe flycheck find-func jka-compr
let-alist lsp-bridge lsp-bridge-org-babel lsp-bridge-lsp-installer
lsp-bridge-diagnostic lsp-bridge-code-action acm acm-quick-access
acm-backend-copilot acm-backend-codeium array acm-backend-citre
acm-backend-tailwind acm-backend-tabnine acm-backend-telega
acm-backend-tempel acm-backend-search-sdcv-words
acm-backend-search-file-words acm-backend-path acm-backend-lsp
acm-backend-elisp acm-backend-yas yasnippet-snippets yasnippet acm-icon
svg dom lsp-bridge-call-hierarchy lsp-bridge-peek lsp-bridge-jdtls
lsp-bridge-ref grep compile comint ansi-osc ansi-color lsp-bridge-epc
acm-frame diff markdown-mode noutline outline warnings editorconfig
editorconfig-core editorconfig-core-handle editorconfig-fnmatch ligature
emacsbug message yank-media puny rfc822 mml mml-sec epa epg rfc6068
epg-config gnus-util time-date mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils puni gcmh server
multiple-cursors mc-separate-operations rectangular-region-mode
mc-mark-pop mc-edit-lines iedit iedit-lib mc-hide-unmatched-lines-mode
mc-mark-more mc-cycle-cursors multiple-cursors-core rect rivenemacs-lazy
mule-util cursor-sensor vertico-repeat add-log derived vlf-setup advice
eros elisp-demos re-elisp-extras undo-fu-session undo-fu orderless
which-func imenu cap-words superword subword desktop frameset so-long
savehist saveplace mb-depth delsel pixel-scroll cua-base winner battery
dbus face-remap pulse color xml windmove rivenemacs-loaded treesit-auto
eldoc-box icons dirvish transient format-spec dired dired-loaddefs
vertico-directory vertico all-the-icons-completion marginalia
doom-modeline doom-modeline-segments doom-modeline-env
doom-modeline-core shrink-path f f-shortdoc s dash nerd-icons
nerd-icons-faces nerd-icons-data nerd-icons-data-mdicon
nerd-icons-data-flicon nerd-icons-data-codicon nerd-icons-data-devicon
nerd-icons-data-sucicon nerd-icons-data-wicon nerd-icons-data-faicon
nerd-icons-data-powerline nerd-icons-data-octicon
nerd-icons-data-pomicon nerd-icons-data-ipsicon compat which-key
exec-path-from-shell dracula-theme autorevert filenotify re-python
python-pytest-autoloads projectile-autoloads nose-autoloads
py-isort-autoloads pyimport-autoloads shut-up-autoloads
pip-requirements-autoloads rust rust-mode-autoloads jsdoc-autoloads
sass-mode-autoloads haml-mode-autoloads web-mode-autoloads
emmet-mode-autoloads re-lua lua-mode-autoloads re-popup
eldoc-box-autoloads re-indent aggressive-indent-mode-autoloads re-fold
ts-fold-indicators-autoloads ts-fold-autoloads fringe-helper-autoloads
tree-sitter-autoloads re-formatter clang-format-autoloads
editorconfig-autoloads apheleia-autoloads re-treesit
treesit-auto-autoloads treesit re-jump smart-jump xref
dumb-jump-autoloads re-hackernews hackernews-autoloads re-leetcode
leetcode-autoloads log4e-autoloads graphql-autoloads re-window re-binary
re-workspaces re-tty xclip-autoloads re-tools bitwarden-autoloads
logview-autoloads datetime-autoloads extmap-autoloads
journalctl-mode-autoloads pkgbuild-mode-autoloads systemd-autoloads
docker-compose-mode-autoloads docker-autoloads aio-autoloads
multi-vterm-autoloads vterm-autoloads tldr-autoloads
ssh-deploy-autoloads re-files treemacs-all-the-icons-autoloads
treemacs-autoloads cfrs-autoloads pfuture-autoloads vlf-autoloads
dirvish-autoloads re-natural-langs lexic-autoloads
go-translate-autoloads spell-fu-autoloads re-latex
auctex-latexmk-autoloads auctex-autoloads tex-site re-docs
edraw-autoloads crdt-autoloads nov-autoloads esxml-autoloads
kv-autoloads pdf-tools-autoloads re-extra crux-autoloads re-org
consult-org-roam-autoloads org-roam-ui-autoloads websocket-autoloads
simple-httpd-autoloads org-roam-autoloads org-present-autoloads
org-fragtog-autoloads org-modern-autoloads org-appear-autoloads
ox-hugo-autoloads tomelr-autoloads engrave-faces-autoloads
org-contrib-autoloads re-data ob-d2-autoloads d2-mode-autoloads
ob-mermaid-autoloads mermaid-mode-autoloads plantuml-mode-autoloads
graphviz-dot-mode-autoloads json-mode-autoloads json-snatcher-autoloads
toml-mode-autoloads yaml-pro-autoloads yaml-mode-autoloads
csv-mode-autoloads re-lisp eros-autoloads info-colors-autoloads
helpful-autoloads elisp-refs-autoloads elisp-demos-autoloads
sly-macrostep-autoloads macrostep-geiser-autoloads macrostep-autoloads
cider-autoloads sesman-autoloads spinner-autoloads queue-autoloads
parseedn-autoloads parseclj-autoloads clojure-mode-autoloads
geiser-stklos-autoloads geiser-racket-autoloads geiser-mit-autoloads
geiser-kawa-autoloads geiser-guile-autoloads geiser-gauche-autoloads
geiser-gambit-autoloads geiser-chicken-autoloads geiser-chibi-autoloads
geiser-chez-autoloads geiser-autoloads racket-mode-autoloads
sly-autoloads re-lsp-bridge yasnippet-snippets-autoloads
yasnippet-autoloads re-debug disaster-autoloads realgud-autoloads
realgud-recursive-autoloads test-simple-autoloads loc-changes-autoloads
load-relative-autoloads re-checkers re-project
consult-project-extra-autoloads re-vc repo-autoloads hydra ring lv
git-modes-autoloads git-timemachine-autoloads diff-hl-autoloads
emojify-autoloads forge-autoloads yaml-autoloads markdown-mode-autoloads
ghub-autoloads treepy-autoloads closql-autoloads emacsql-autoloads
magit-todos-autoloads pcre2el-autoloads async-autoloads magit-autoloads
magit-section-autoloads git-commit-autoloads with-editor-autoloads
re-multi-cursors multiple-cursors-autoloads iedit-autoloads re-undo
undo-fu-session-autoloads undo-fu-autoloads vundo-autoloads re-daemon
re-editor rainbow-mode-autoloads hl-todo-autoloads anzu-autoloads
expand-region-autoloads highlight-numbers-autoloads
parent-mode-autoloads rainbow-delimiters-autoloads ligature-autoloads
pcache-autoloads tempel-collection-autoloads edmacro kmacro
tempel-autoloads re-ui focus-autoloads page-break-lines-autoloads
mixed-pitch-autoloads visual-fill-column-autoloads svg-lib-autoloads
re-font re-completion vertico-prescient-autoloads prescient-autoloads
find-file-in-project-autoloads vertico-autoloads orderless-autoloads
all-the-icons-completion-autoloads marginalia-autoloads
embark-consult-autoloads embark-autoloads consult-autoloads re-core-ui
doom-modeline-autoloads shrink-path-autoloads f-autoloads
nerd-icons-autoloads bookmark text-property-search pp project time
dashboard dashboard-widgets all-the-icons all-the-icons-faces
data-material data-weathericons data-octicons data-fileicons
data-faicons data-alltheicons recentf tree-widget wid-edit ffap
thingatpt dashboard-autoloads all-the-icons-autoloads
modus-themes-autoloads re-defuns re-emacs-keybindings hydra-autoloads
lv-autoloads re-general-ready general general-autoloads
which-key-autoloads re-gc gcmh-autoloads re-builtin re-bootstrap
explain-pause-mode-autoloads exec-path-from-shell-autoloads use-package
use-package-ensure use-package-delight use-package-diminish
use-package-bind-key bind-key use-package-core straight-autoloads
cl-extra help-mode straight re-splash re-defaults pcase rx re-loaddefs
ace-window-autoloads avy-autoloads dracula-theme-autoloads
esup-autoloads flycheck-posframe-autoloads flycheck-rust-autoloads
fussy-autoloads flx-autoloads goto-last-change-autoloads
js-doc-autoloads package-lint-autoloads pkg-info-autoloads epl-autoloads
poetry-autoloads popup-autoloads posframe-autoloads puni-autoloads
easy-mmode pyvenv-autoloads quickrun-autoloads ht-autoloads
dash-autoloads s-autoloads smart-jump-autoloads symbol-overlay-autoloads
tablist-autoloads transient-autoloads info compat-autoloads finder-inf
tsc-autoloads package browse-url url url-proxy url-privacy url-expand
url-methods url-history url-cookie generate-lisp-file url-domsuf
url-util mailcap url-handlers url-parse auth-source cl-seq eieio
eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp
byte-compile url-vars cl-loaddefs cl-lib re-vars china-util rmc
iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode lisp-mode prog-mode register
page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer nadvice seq simple cl-generic indonesian philippine
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads dbusbind inotify dynamic-setting system-font-setting
font-render-setting cairo move-toolbar gtk x-toolkit xinput2 x multi-tty
make-network-process emacs)

Memory information:
((conses 16 789144 521644)
(symbols 48 36361 10)
(strings 32 239057 97417)
(string-bytes 1 6986378)
(vectors 16 62923)
(vector-slots 8 1738733 519301)
(floats 8 794 931)
(intervals 56 868 345)
(buffers 984 17))


;;;;; GDB INFO ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Thread 1 "emacs" received signal SIGSEGV, Segmentation fault.
0x00005555556859b8 in face_for_font (f=0x555561746d40, font_object=0x555558465ec5, base_face=base_face@entry=0x0) at xfaces.c:4931
4931 base_face = base_face->ascii_face;
(gdb) bt
#0 0x00005555556859b8 in face_for_font (f=0x555561746d40, font_object=0x555558465ec5, base_face=base_face@entry=0x0) at xfaces.c:4931
#1 0x00005555555ee682 in get_next_display_element (it=it@entry=0x7fffffff6c90) at xdisp.c:8322
#2 0x00005555555eacb0 in move_it_in_display_line_to (it=it@entry=0x7fffffff6c90, to_charpos=to_charpos@entry=412, to_x=to_x@entry=2147483647, op=op@entry=(MOVE_TO_X | MOVE_TO_POS))
at xdisp.c:9829
#3 0x00005555555f002a in move_it_to (it=0x7fffffff6c90, to_charpos=412, to_x=<optimized out>, to_y=<optimized out>, to_vpos=<optimized out>, op=11) at xdisp.c:10500
#4 0x0000555555604e4e in window_text_pixel_size
(window=<optimized out>, from=<optimized out>, to=<optimized out>, x_limit=0x1ce2, y_limit=<optimized out>, mode_lines=0x0, ignore_line_at_end=0x0) at xdisp.c:11455
#5 0x0000555555605ae6 in Fwindow_text_pixel_size (window=0x555561746f95, from=0x0, to=0x0, x_limit=0x1ce2, y_limit=0xaf2, mode_lines=0x0, ignore_line_at_end=0x0) at xdisp.c:11629
#6 0x0000555555771442 in funcall_subr (subr=0x555555d0e5a0 <Swindow_text_pixel_size>, numargs=numargs@entry=5, args=args@entry=0x7ffff0bff1f0) at eval.c:3046
#7 0x00005555557b6523 in exec_byte_code (fun=<optimized out>, args_template=<optimized out>, nargs=<optimized out>, args=<optimized out>) at bytecode.c:809
#8 0x000055555576df83 in Ffuncall (nargs=6, args=0x7fffffff9570) at eval.c:2995
#9 0x0000555555771ca7 in eval_sub (form=<optimized out>) at eval.c:2470
#10 0x0000555555773eb5 in Fprogn (body=0x0) at eval.c:436
#11 FletX (args=0x55555d67e733) at eval.c:958
#12 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#13 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436
#14 funcall_lambda (fun=0x55555d67e013, nargs=3, arg_vector=0x7fffffff9810) at eval.c:3233
#15 0x000055555577347f in apply_lambda (fun=<optimized out>, args=<optimized out>, count=...) at eval.c:3103
#16 0x0000555555771ad6 in eval_sub (form=<optimized out>) at eval.c:2588
#17 0x0000555555773eb5 in Fprogn (body=0x55555ef746e3) at eval.c:436
#18 FletX (args=0x55555ef74b43) at eval.c:958
#19 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#20 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436
#21 funcall_lambda (fun=0x55555ef738c3, nargs=0, arg_vector=0x7fffffff9b00) at eval.c:3233
#22 0x000055555577347f in apply_lambda (fun=<optimized out>, args=<optimized out>, count=...) at eval.c:3103
#23 0x0000555555771ad6 in eval_sub (form=<optimized out>) at eval.c:2588
#24 0x0000555555773a9d in Fprogn (body=0x0) at eval.c:436
#25 Flet (args=<optimized out>) at eval.c:1026
#26 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#27 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#28 0x0000555555773eb5 in Fprogn (body=0x0) at eval.c:436
#29 FletX (args=0x55555ef74d83) at eval.c:958
#30 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#31 0x000055555577212d in Fprogn (body=0x0) at eval.c:436
#32 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#33 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#34 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436
#35 funcall_lambda (fun=0x55555ef74e93, nargs=1, arg_vector=0x7fffffffa170) at eval.c:3233
#36 0x000055555577347f in apply_lambda (fun=<optimized out>, args=<optimized out>, count=...) at eval.c:3103
#37 0x0000555555771ad6 in eval_sub (form=<optimized out>) at eval.c:2588
#38 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#39 0x000055555577212d in Fprogn (body=0x0) at eval.c:436
#40 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#41 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#42 0x0000555555773eb5 in Fprogn (body=0x0) at eval.c:436
#43 FletX (args=0x55555f141f93) at eval.c:958
#44 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#45 0x000055555577212d in Fprogn (body=0x0, body@entry=0x55555f141fc3) at eval.c:436
#46 0x000055555575df5c in Fsave_current_buffer (args=0x55555f141fc3) at editfns.c:874
#47 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
--Type <RET> for more, q to quit, c to continue without paging--
#48 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#49 0x0000555555773eb5 in Fprogn (body=0x0) at eval.c:436
#50 FletX (args=0x55555f141863) at eval.c:958
#51 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#52 0x0000555555773eb5 in Fprogn (body=0x0) at eval.c:436
#53 FletX (args=0x55555f141893) at eval.c:958
#54 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#55 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436
#56 funcall_lambda (fun=0x55555f141953, nargs=2, arg_vector=0x7fffffffaab0) at eval.c:3233
#57 0x000055555577347f in apply_lambda (fun=<optimized out>, args=<optimized out>, count=...) at eval.c:3103
#58 0x0000555555771ad6 in eval_sub (form=<optimized out>) at eval.c:2588
#59 0x00005555557745cb in Feval (form=0x55555e11a423, lexical=<optimized out>) at eval.c:2361
#60 0x0000555555771db9 in eval_sub (form=<optimized out>) at eval.c:2501
#61 0x0000555555772ced in Fprogn (body=0x55555f0dc2a3) at eval.c:436
#62 funcall_lambda (fun=0x55555f0dbcf3, nargs=1, arg_vector=0x7fffffffadf8) at eval.c:3233
#63 0x000055555576df83 in Ffuncall (nargs=2, args=0x7fffffffadf0) at eval.c:2995
#64 0x000055555576e472 in Fapply (nargs=2, args=0x7fffffffadf0) at eval.c:2623
#65 0x0000555555771ca7 in eval_sub (form=<optimized out>) at eval.c:2470
#66 0x0000555555773d06 in FletX (args=0x55555d799df3) at /home/zhangyunfeng@pudu.com/Download/emacs-emacs-29.1/src/lisp.h:1529
#67 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#68 0x0000555555774453 in internal_lisp_condition_case (var=<optimized out>, bodyform=<optimized out>, handlers=<optimized out>) at eval.c:1428
#69 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#70 0x0000555555772a25 in Fprogn (body=0x0) at eval.c:436
#71 Fcond (args=<optimized out>) at eval.c:416
#72 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#73 0x0000555555773eb5 in Fprogn (body=0x0) at eval.c:436
#74 FletX (args=0x55555d799fa3) at eval.c:958
#75 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#76 0x0000555555773a9d in Fprogn (body=0x0) at eval.c:436
#77 Flet (args=<optimized out>) at eval.c:1026
#78 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#79 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436
#80 funcall_lambda (fun=0x55555d799903, nargs=4, arg_vector=0x7fffffffb558) at eval.c:3233
#81 0x000055555576df83 in Ffuncall (nargs=5, args=0x7fffffffb550) at eval.c:2995
#82 0x000055555576e200 in Fapply (nargs=3, args=0x7fffffffb5f0) at eval.c:2666
#83 0x0000555555771ca7 in eval_sub (form=<optimized out>) at eval.c:2470
#84 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436
#85 funcall_lambda (fun=0x55556088b4e3, nargs=1, arg_vector=0x7fffffffb778) at eval.c:3233
#86 0x000055555576df83 in Ffuncall (nargs=2, args=0x7fffffffb770) at eval.c:2995
#87 0x0000555555771ca7 in eval_sub (form=<optimized out>) at eval.c:2470
#88 0x0000555555773891 in Flet (args=<optimized out>) at eval.c:996
#89 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#90 0x0000555555774453 in internal_lisp_condition_case (var=<optimized out>, bodyform=<optimized out>, handlers=<optimized out>) at eval.c:1428
#91 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#92 0x0000555555773a9d in Fprogn (body=0x0) at eval.c:436
#93 Flet (args=<optimized out>) at eval.c:1026
#94 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#95 0x0000555555772a25 in Fprogn (body=0x0) at eval.c:436
#96 Fcond (args=<optimized out>) at eval.c:416
#97 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
--Type <RET> for more, q to quit, c to continue without paging--
#98 0x0000555555773a9d in Fprogn (body=0x0) at eval.c:436
#99 Flet (args=<optimized out>) at eval.c:1026
#100 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#101 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436
#102 funcall_lambda (fun=0x55555d741ba3, nargs=3, arg_vector=0x7fffffffbec0) at eval.c:3233
#103 0x000055555577347f in apply_lambda (fun=<optimized out>, args=<optimized out>, count=...) at eval.c:3103
#104 0x0000555555771ad6 in eval_sub (form=<optimized out>) at eval.c:2588
#105 0x00005555557721e7 in Fsetq (args=<optimized out>) at eval.c:483
#106 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#107 0x0000555555774453 in internal_lisp_condition_case (var=<optimized out>, bodyform=<optimized out>, handlers=<optimized out>) at eval.c:1428
#108 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#109 0x0000555555773eb5 in Fprogn (body=0x55555d6e6453) at eval.c:436
#110 FletX (args=0x55555d6e63d3) at eval.c:958
#111 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#112 0x000055555577212d in Fprogn (body=0x0) at eval.c:436
#113 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#114 0x0000555555771e22 in eval_sub (form=<optimized out>) at eval.c:2449
#115 0x0000555555772ced in Fprogn (body=0x0) at eval.c:436
#116 funcall_lambda (fun=0x55555d6e5d13, nargs=0, arg_vector=0x7ffff0bff058) at eval.c:3233
#117 0x000055555576df83 in Ffuncall (nargs=1, args=0x7ffff0bff050) at eval.c:2995
#118 0x000055555576e398 in Fapply (nargs=2, args=0x7ffff0bff050) at eval.c:2619
#119 0x00005555557b6523 in exec_byte_code (fun=<optimized out>, args_template=<optimized out>, nargs=<optimized out>, args=<optimized out>) at bytecode.c:809
#120 0x000055555576df83 in Ffuncall (nargs=nargs@entry=2, args=args@entry=0x7fffffffc760) at eval.c:2995
#121 0x00005555556e74de in call1 (arg1=0x55555baa90ed, fn=0xfd80) at /home/zhangyunfeng@pudu.com/Download/emacs-emacs-29.1/src/lisp.h:3248
#122 timer_check_2 (idle_timers=<optimized out>, timers=<optimized out>) at keyboard.c:4690
#123 timer_check () at keyboard.c:4756
#124 0x00005555557c4814 in wait_reading_process_output
(time_limit=time_limit@entry=30, nsecs=nsecs@entry=0, read_kbd=read_kbd@entry=-1, do_display=do_display@entry=true, wait_for_cell=wait_for_cell@entry=0x0, wait_proc=wait_proc@entry=0x0, just_wait_proc=<optimized out>) at process.c:5386
#125 0x00005555555bb074 in sit_for (timeout=timeout@entry=0x7a, reading=reading@entry=true, display_option=display_option@entry=1) at dispnew.c:6264
#126 0x00005555556ef589 in read_char (commandflag=1, map=0x55555de3ab13, prev_event=0x0, used_mouse_menu=0x7fffffffd1cb, end_time=0x0) at keyboard.c:2881
#127 0x00005555556efe58 in read_key_sequence
(keybuf=<optimized out>, prompt=0x0, dont_downcase_last=<optimized out>, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=<optimized out>) at keyboard.c:10083
#128 0x00005555556f1a60 in command_loop_1 () at keyboard.c:1384
#129 0x000055555576c587 in internal_condition_case (bfun=bfun@entry=0x5555556f1880 <command_loop_1>, handlers=handlers@entry=0x90, hfun=hfun@entry=0x5555556e4b40 <cmd_error>) at eval.c:1474
#130 0x00005555556dd01e in command_loop_2 (handlers=handlers@entry=0x90) at keyboard.c:1133
#131 0x000055555576c4c9 in internal_catch (tag=tag@entry=0x10080, func=func@entry=0x5555556dcff0 <command_loop_2>, arg=arg@entry=0x90) at eval.c:1197
#132 0x00005555556dcfb9 in command_loop () at keyboard.c:1111
#133 0x00005555556e4698 in recursive_edit_1 () at keyboard.c:720
#134 0x00005555556e4a40 in Frecursive_edit () at keyboard.c:803
#135 0x00005555555b00d5 in main (argc=<optimized out>, argv=<optimized out>) at emacs.c:2529

--000000000000e5fc5d06028e9ff1-- From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 10 06:06:41 2023 Received: (at 65198) by debbugs.gnu.org; 10 Aug 2023 10:06:41 +0000 Received: from localhost ([127.0.0.1]:41455 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qU2Yy-0001mk-O3 for submit@debbugs.gnu.org; Thu, 10 Aug 2023 06:06:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59160) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qU2Yw-0001mV-SR for 65198@debbugs.gnu.org; Thu, 10 Aug 2023 06:06:39 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qU2Yr-000197-Ef; Thu, 10 Aug 2023 06:06:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=l1fNozZGk6LMqktxF24Z4u6noPaqhuxiIXxDtcBrHX4=; b=eKPfvR8DV4KyJ6ItqYjg Gq/Efug9kH5/qesbjr1EmTWxRn+v6/sRU0f1Njn4IAf/vzXb3nr1pXQDoHdGk28GN6tO7FJlvzJPl cikHxroRug58NB02/UL8VhrWhpV12qUulIrVPVK1LWsdm2rYdEtZod7Lf2kfdumUf231U/pvNqXqC +Zo4nQaXlmnIJNnrvA9+JY7LEI2QIFrRq2fPEcUZeV99/EPwtZGJnQi2Wz5HfCUuuixjv5sv+cutq N6d120FwFqNnC+qedWvgmx+bJVwL8ZCQSwGtnmxOjdcRXcfItk8XyqcB3+1XiLPqwQ/5mQDLapHQt wXJao9Q1V5q4sw==; Date: Thu, 10 Aug 2023 13:06:35 +0300 Message-Id: <83r0obi53o.fsf@gnu.org> From: Eli Zaretskii To: =?utf-8?B?5byg5LqR5bOw?= In-Reply-To: (message from =?utf-8?B?5byg5LqR5bOw?= on Thu, 10 Aug 2023 17:57:20 +0800) Subject: Re: bug#65198: 29.1; Emacs29.1 crash in function face_for_font References: MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 65198 Cc: 65198@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: 张云峰 > Date: Thu, 10 Aug 2023 17:57:20 +0800 > > ;;;;; GDB INFO ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > > Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. > 0x00005555556859b8 in face_for_font (f=0x555561746d40, font_object=0x555558465ec5, > base_face=base_face@entry=0x0) at xfaces.c:4931 > 4931 base_face = base_face->ascii_face; > (gdb) bt > #0 0x00005555556859b8 in face_for_font (f=0x555561746d40, font_object=0x555558465ec5, > base_face=base_face@entry=0x0) at xfaces.c:4931 > #1 0x00005555555ee682 in get_next_display_element (it=it@entry=0x7fffffff6c90) at xdisp.c:8322 > #2 0x00005555555eacb0 in move_it_in_display_line_to (it=it@entry=0x7fffffff6c90, > to_charpos=to_charpos@entry=412, to_x=to_x@entry=2147483647, op=op@entry=(MOVE_TO_X > | MOVE_TO_POS)) > at xdisp.c:9829 > #3 0x00005555555f002a in move_it_to (it=0x7fffffff6c90, to_charpos=412, to_x=, > to_y=, to_vpos=, op=11) at xdisp.c:10500 > #4 0x0000555555604e4e in window_text_pixel_size > (window=, from=, to=, x_limit=0x1ce2, > y_limit=, mode_lines=0x0, ignore_line_at_end=0x0) at xdisp.c:11455 > #5 0x0000555555605ae6 in Fwindow_text_pixel_size (window=0x555561746f95, from=0x0, > to=0x0, x_limit=0x1ce2, y_limit=0xaf2, mode_lines=0x0, ignore_line_at_end=0x0) at xdisp.c:11629 > #6 0x0000555555771442 in funcall_subr (subr=0x555555d0e5a0 , > numargs=numargs@entry=5, args=args@entry=0x7ffff0bff1f0) at eval.c:3046 Thanks. Any chance of a recipe to reproduce this crash? The backtrace indicates that the code which crashed was called from a timer function -- any idea what timer was that? From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 10 13:22:33 2023 Received: (at 65198) by debbugs.gnu.org; 10 Aug 2023 17:22:33 +0000 Received: from localhost ([127.0.0.1]:43958 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qU9Mn-0002co-B3 for submit@debbugs.gnu.org; Thu, 10 Aug 2023 13:22:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44718) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qU9Ml-0002cc-A3 for 65198@debbugs.gnu.org; Thu, 10 Aug 2023 13:22:32 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qU9Mf-0000Wz-Qp; Thu, 10 Aug 2023 13:22:25 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=IbVtyb5Qd0QXumRPHE41AXybXdNLLmlMKlb8OQ5eJ74=; b=j3XAYZ/9a0bMCsyWAHKj 4+RhHtyb/J25H9csJtOG/HJ2UQ5UyOHRbLO4y09DCwpBn0avt6cFl0RWNmkkW6bUYqUqKY0OecROd Xxae3iJl1VrxHNhtOdctuDlm0rgtZL6Ph2ir3LehaIKjBz3mtF5G9j+jyccg6WLBBPiJ/eRny1NhN hg3lhq1PRIDLpEhAavF71kVhkUZWX+4+jbEkJYcxXGkx3TQGlY/zpy3Zdk+b7GokcRpdBO+7hyba5 MLkz8UnEZBhSN2HVohgtBE12sm+gCRvigcI6HOxpAhUVAhz4/qPtQVZUkXiLb7fmcYtzSSPjtSueG ntEvQeRSdkm7AQ==; Date: Thu, 10 Aug 2023 20:22:52 +0300 Message-Id: <83bkfeizgz.fsf@gnu.org> From: Eli Zaretskii To: =?utf-8?B?5byg5LqR5bOw?= In-Reply-To: (message from =?utf-8?B?5byg5LqR5bOw?= on Thu, 10 Aug 2023 22:56:23 +0800) Subject: Re: bug#65198: 29.1; Emacs29.1 crash in function face_for_font References: <83r0obi53o.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 65198 Cc: 65198@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: 张云峰 > Date: Thu, 10 Aug 2023 22:56:23 +0800 > > finally I fix this bug by removing a piece of code: > > (defun +set-chinese-font() > (interactive) > (set-fontset-font > t > 'han > (cond > ((string-equal system-type "windows-nt") > (cond > ((member "Microsoft YaHei" (font-family-list)) "Microsoft YaHei") > ((member "Microsoft JhengHei" (font-family-list)) "Microsoft JhengHei") > ((member "SimHei" (font-family-list)) "SimHei"))) > ((string-equal system-type "darwin") > (cond > ((member "Hei" (font-family-list)) "Hei") > ((member "Heiti SC" (font-family-list)) "Heiti SC") > ((member "Heiti TC" (font-family-list)) "Heiti TC"))) > ((string-equal system-type "gnu/linux") > (cond > ((member "WenQuanYi Micro Hei" (font-family-list)) "WenQuanYi > Micro Hei")))))) > > (add-hook 'buffer-list-update-hook '+set-chinese-font) I guess one of these fonts is faulty in some way? Or maybe you have neither of these fonts on that system, which would effectively specify that characters of the han script have no font at all? Of course, normally the latter should just cause the han characters to display as hex codes, not to cause crashes... Are you saying that just having the above in your customization and typing some Han character causes Emacs to crash? P.S. And please use Reply All to reply, so that the bug address is kept on the CC list. From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 10 13:58:53 2023 Received: (at 65198) by debbugs.gnu.org; 10 Aug 2023 17:58:53 +0000 Received: from localhost ([127.0.0.1]:43997 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qU9vx-0003bJ-Ay for submit@debbugs.gnu.org; Thu, 10 Aug 2023 13:58:53 -0400 Received: from mail-qt1-x836.google.com ([2607:f8b0:4864:20::836]:51583) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qU9vv-0003b4-DO for 65198@debbugs.gnu.org; Thu, 10 Aug 2023 13:58:51 -0400 Received: by mail-qt1-x836.google.com with SMTP id d75a77b69052e-40f0b412b78so7730461cf.3 for <65198@debbugs.gnu.org>; Thu, 10 Aug 2023 10:58:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691690326; x=1692295126; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=lVfv8y3U9ItBUiH0OMlRT3N/FGBdV569vufVtNDmjBk=; b=FkCb3cFd3+l7WQpGOqyDE9D+r0QJlPGG0Pv4i+TTXbgDMCG9QbYGSaHniN9xF9n2co BmZwDFAsXAQTBGmGWduAHXyPrS+DMwdt2Y8odeajqXpf3tMhAnjZyVaevGPk7XXExtHY yhW01nH9I2XLH+fEjxJWKx5s4R2/NC8AoYH7au7csz97se6jgOQxP9SD7rnQ5dEhqvsc P/tox/j1TDRorfvBtn9jDEL9EsrXLw2ZrYO2zRG7sS+sVKAZoigiLzXON2KF5jYJnUqD LyOeEqI7LYTXJ9dfGyxYb4NrhS5ljX+HACr7oznsm7vUxaUEXmCz5MWmPL77+uU8FUJJ ftPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691690326; x=1692295126; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=lVfv8y3U9ItBUiH0OMlRT3N/FGBdV569vufVtNDmjBk=; b=UD0yy4ufwlRZAN+LgDHAsjzECzQTRsqQKYCP9BxcDvkcE0RNQ1EX6u+xkeQMEzduOG 3a7+6y7mhblRh+ey0KyfaHOkwQoEKjjjMv9+3BaEN2j2akUP1wl4eL7BzLsjZq78cU2p xjObIvKB1YN2CvXh6vipaBTajxOoBa/gRL9amqv5AW+waC/F/zDVAdHLvEZAnHujafQV SBxYyb05qDuQltZp5c15+LrX7xEpHhQzqPzm674nIa4o2c0p3gBzJ35hmGJfxfXcSaME Fyz+cPw/TKxdh7pACfpbSKkyfaSCBxnIEAuNaRulAbttt/SU/lKcCDpJ/XXA6OmmIMkr 7U5Q== X-Gm-Message-State: AOJu0YyZN/5hxQV3EY4+28fxOE1G2SqYVKQd0g9016zmNKsAhcS3g/yG 1frKOCeIACnXftNBC6bcyDweZW4hAVZmBRHV5anRDHvBypN8tg== X-Google-Smtp-Source: AGHT+IETy5SM7+IfpLBt4Y5S7Jj5JKKZz7eYL6qFKO9oL5a965DMJkYuUwPHDxEDM0G/No3yWwGBg+GGQ0Mo52JUL8U= X-Received: by 2002:a05:622a:58d:b0:406:98be:bda2 with SMTP id c13-20020a05622a058d00b0040698bebda2mr3961217qtb.59.1691690325423; Thu, 10 Aug 2023 10:58:45 -0700 (PDT) MIME-Version: 1.0 References: <83r0obi53o.fsf@gnu.org> <83bkfeizgz.fsf@gnu.org> In-Reply-To: <83bkfeizgz.fsf@gnu.org> From: =?UTF-8?B?5byg5LqR5bOw?= Date: Fri, 11 Aug 2023 01:58:34 +0800 Message-ID: Subject: Re: bug#65198: 29.1; Emacs29.1 crash in function face_for_font To: Eli Zaretskii Content-Type: multipart/related; boundary="000000000000eb3aa10602955803" X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 65198 Cc: 65198@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --000000000000eb3aa10602955803 Content-Type: multipart/alternative; boundary="000000000000eb3aa00602955802" --000000000000eb3aa00602955802 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable [image: 2023-08-11_01-53.png] when popup frame has the warning-icon (marked in picture) , emacs will crash immediately. Eli Zaretskii =E4=BA=8E2023=E5=B9=B48=E6=9C=8811=E6=97=A5=E5= =91=A8=E4=BA=94 01:22=E5=86=99=E9=81=93=EF=BC=9A > > From: =E5=BC=A0=E4=BA=91=E5=B3=B0 > > Date: Thu, 10 Aug 2023 22:56:23 +0800 > > > > finally I fix this bug by removing a piece of code: > > > > (defun +set-chinese-font() > > (interactive) > > (set-fontset-font > > t > > 'han > > (cond > > ((string-equal system-type "windows-nt") > > (cond > > ((member "Microsoft YaHei" (font-family-list)) "Microsoft YaHei") > > ((member "Microsoft JhengHei" (font-family-list)) "Microsoft > JhengHei") > > ((member "SimHei" (font-family-list)) "SimHei"))) > > ((string-equal system-type "darwin") > > (cond > > ((member "Hei" (font-family-list)) "Hei") > > ((member "Heiti SC" (font-family-list)) "Heiti SC") > > ((member "Heiti TC" (font-family-list)) "Heiti TC"))) > > ((string-equal system-type "gnu/linux") > > (cond > > ((member "WenQuanYi Micro Hei" (font-family-list)) "WenQuanYi > > Micro Hei")))))) > > > > (add-hook 'buffer-list-update-hook '+set-chinese-font) > > I guess one of these fonts is faulty in some way? Or maybe you have > neither of these fonts on that system, which would effectively specify > that characters of the han script have no font at all? Of course, > normally the latter should just cause the han characters to display as > hex codes, not to cause crashes... > > Are you saying that just having the above in your customization and > typing some Han character causes Emacs to crash? > > P.S. And please use Reply All to reply, so that the bug address is > kept on the CC list. > --000000000000eb3aa00602955802 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
3D"2023-08-11_01-53.png"=
when popup frame has the warning-icon (m= arked in picture) , emacs will crash immediately.


Eli Zaretski= i <eliz@gnu.org> =E4=BA=8E2023=E5= =B9=B48=E6=9C=8811=E6=97=A5=E5=91=A8=E4=BA=94 01:22=E5=86=99=E9=81=93=EF=BC= =9A
> From: = =E5=BC=A0=E4=BA=91=E5=B3=B0 <zhangyunfeng0101@gmail.com>
> Date: Thu, 10 Aug 2023 22:56:23 +0800
>
> finally=C2=A0 I fix this bug by removing a piece of code:
>
> (defun +set-chinese-font()
>=C2=A0 =C2=A0(interactive)
>=C2=A0 =C2=A0(set-fontset-font
>=C2=A0 =C2=A0 t
>=C2=A0 =C2=A0 'han
>=C2=A0 =C2=A0 (cond
>=C2=A0 =C2=A0 =C2=A0((string-equal system-type "windows-nt")<= br> >=C2=A0 =C2=A0 =C2=A0 (cond
>=C2=A0 =C2=A0 =C2=A0 =C2=A0((member "Microsoft YaHei" (font-f= amily-list)) "Microsoft YaHei")
>=C2=A0 =C2=A0 =C2=A0 =C2=A0((member "Microsoft JhengHei" (fon= t-family-list)) "Microsoft JhengHei")
>=C2=A0 =C2=A0 =C2=A0 =C2=A0((member "SimHei" (font-family-lis= t)) "SimHei")))
>=C2=A0 =C2=A0 =C2=A0((string-equal system-type "darwin")
>=C2=A0 =C2=A0 =C2=A0 (cond
>=C2=A0 =C2=A0 =C2=A0 =C2=A0((member "Hei" (font-family-list))= "Hei")
>=C2=A0 =C2=A0 =C2=A0 =C2=A0((member "Heiti SC" (font-family-l= ist)) "Heiti SC")
>=C2=A0 =C2=A0 =C2=A0 =C2=A0((member "Heiti TC" (font-family-l= ist)) "Heiti TC")))
>=C2=A0 =C2=A0 =C2=A0((string-equal system-type "gnu/linux") >=C2=A0 =C2=A0 =C2=A0 (cond
>=C2=A0 =C2=A0 =C2=A0 =C2=A0((member "WenQuanYi Micro Hei" (fo= nt-family-list)) "WenQuanYi
> Micro Hei"))))))
>
> (add-hook 'buffer-list-update-hook '+set-chinese-font)

I guess one of these fonts is faulty in some way?=C2=A0 Or maybe you have neither of these fonts on that system, which would effectively specify
that characters of the han script have no font at all?=C2=A0 Of course,
normally the latter should just cause the han characters to display as
hex codes, not to cause crashes...

Are you saying that just having the above in your customization and
typing some Han character causes Emacs to crash?

P.S. And please use Reply All to reply, so that the bug address is
kept on the CC list.
--000000000000eb3aa00602955802-- --000000000000eb3aa10602955803 Content-Type: image/png; name="2023-08-11_01-53.png" Content-Disposition: inline; filename="2023-08-11_01-53.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_ll5gmbgy0 iVBORw0KGgoAAAANSUhEUgAABVUAAAIICAIAAADhT5lPAAAACXBIWXMAABYlAAAWJQFJUiTwAAAg AElEQVR4nOzdZ3wU1doA8OfMzPae3hu9hCJVqQpYKCqCilcFAbErNiyvDQuCol7rvdeCDUWxoTQL KlIkSIdAaCEhvSfb+8x5P2wSUjZkd7ObxvP/8WGzzM4+c2b2zHlmzpxD+vYfCQihLoQA0I6OwQck MTrqmZ6qgRJGbzZ9mFW2zix0dEgopBhpeEqv5JTkxKTE+OTEuKSk+AT1wednvb3L1dGRIYQQQggh AADgOjoAhJCvRJf1jnk4Xh7LCAXVNcuPVf7j7OiIWkbE6iUDdCNZAAC5RvN4L9u2g/rqjo4KhQgb PemhJx6fNTBKQmrfoYLLXFOcx4vlBAxd4XoVQgghhNAFAPN/n5CU1KTveso4ABBMj/9V9Ct/IYfR OTCqFRPjr2Qbv0ndPxw880JV98w25FERzyUpNAQA2JSI8IcSTDfnODrtIUAYVknO/clyRNZavwVW LBkbrRqtkSRKuXARqxYxasb+xq7CdZ34MkdH0cQlbBmgFAOAYF3+d8Fae8ce89yQGx67MT2Slu36 csOfx/Pz80sKC4vL9J338EQIIYQQujBh/o9QcJBBPZJfi+cYAN5YOe+wvjTYGRkhhGmQUZOWlwwN /zZQsBs+zFMtS5GFEXA5bJ+eMRafd3mpOuydoZHDxaTRdlEuTETA2T7Jbcj3YDfmdDgAqDV70ydr N1VjuSGEEEIIdVL1+T8RydVh4WFhapmz9HROlQtbcKiTo3a3YPI8Uc6AnGXYVpYPOY5jwyUcC+AS ESYE67dUVC4rEN0XI40gfG5V9YqC9r676ucG8hnZeVNy2UgRMTrc1vPXKER0Xe+Ipsk/gECJsh2v UYZ6D3Zf7mPr/vvnpJcmX/zoi1cff/inHEdHB4QQQgghhLzhgBErtbrwcK1ayhEAEMxlRjcm/6jT E8xLt59aCgAArCry61Hhvdr9hnh7E5y/nMj75URHh+EPnudLfblKwcpHqj2dG2hVddUrZ0xZdrfJ JZh5ij3IuwSh4pcXn0+JXXHH6Lveeqp64dId5TjYI0IIIYRQ58P07tcrLT5C40n+AQSLwYj3/hFC 7YkVc+G1N9zdv+ZU/aZ3FNp5Ayb/XQk1Z73/8IqfCknCtMdem99L0tHxIIQQQgih5jhpo26ugklv crfXdzNJEZo5caqLtZIYEbE5XUVW54kq448l5mOOc1cg+vVM+yJVXN+1Ozf37OxsOw/coHjdzTGK XjIujHP8d3dh7fBXrHzhgPCxMlGkmNGIWDlLeJ43OV25RtvvRdXrqlzNeqUyMTr1jfGqEWpJopRR sIzAC2YXX+VwlRgNK08YCloIXSyVz0zSTtTJBipZh9W2Kaf0vTKX/4OUkYv6pH2YJGIBXDVl0/fX lDW68sJcOajX8mhCAEwlRVOOmuyBhcFwI+PDro9RDFaItaxgcjiPVZq+y9fvsAoNvq1+ZEFaWVhw 1XErlchnpoTNjJKliYk58A08F4R/5exTzIEF4teaWz9EWUX46osj+zfueiDSRm+eHF37B3V/e+DM sgAfiRbPH5m6WOOlYwNvrV6wq/zwubWSEX3T3k8UMU3+i1G+MD7hahEAQO7Zs7NP2xtk1D7tFP83 kIwf0OutOKbRJwTbGxn5n5/nGQAGxLVro2bey2Lq6LgN6WoNAQCaeSr3tjxn/YaItFE/jgiLBwAQ 9pzIuavA7dedZ383MMQ1EvhYMXpFxMpnRsbPlBECQKnr16P5T5W66goqwLrOH0LlrleX/zr6nWnp 8+de/sOzG2rwUjJCCCGEUOfCCQ6z3s7pNFICQN3GGlO73HEjnPTmgfEPRIrEde/IpJIwqSQ9TDU7 zbE1t/zls5ZKL21HquBYhpHMGBj/f9HiuoSBDxdR8CTHlCSFyYeKzrXlWZYNl7HhMumwaNWYrPwH i5wN85+hPRLfTpWpGjb9WSaMZcKkolQwt/A8OZMWG7uwl7p3bY8JUCkVcwcmWK2575v8LQaaZ3by IGIBGKk4DqAMgFWqLmfMPxspAJck94zxRgvMzmYTaPsUBidVPTE0dpayPhljw2Wy8YmycXGaDceK ni9zNtvbRCkWpUZHP9df25+rfRhbGvgG1obqVzn7H7Ov/FpzoIdoVxHYwR/kGK5IT3sijAAAMIza EwkRzx3W6/raDN713aG89wwUAIyVxr+cqmskBID0i1Yl5lWdrV0JSY9WxQAAAOWtm8r9S/7bLLg1 UtuOOkZy48DYa2WEAADl954uWtog+W+X3c1pe116aR81A9Rpd2D/f4QQQgihzofLOl2gjO+tAwCg vNFobo/0nxHPGZT4cDhb3/VAEAQnIRJCCABhxT3EtH42K17gjS5BzBI5QwgQhUh8ef+Yp6NFDQYF Y7WiuonFKF/qADfDVznclU7eJADHcmkqcRgDBLhL0nRDS8r21TVLWYX2kZTaBjHvdp0yu/QClbBc mISNlnCM013lPXjFnf2avkcYyeQoyUcmv8djM1gdVaCIBWAkXCwLB91kQFzkYlbYarTYGVGC1LMU PWtxNV2zL2GwsruH1Ka7VHAfr7aecZEknXKQlBBWMmNAXKE17wNT02RCHB79WSQjI+ddsz/8K+eA YvYtDn/W7PshSqnFJZgIAADLEhlDCAAFweqCugONb+2u7XlQJ8+bXOf66NR/RRv5sVP830A3z5tc QACAIUr2fNGKWVYnbvr/Uo6tPfBBOHcc8tYN5e7piSIWgFOrJiuqP7JQAABGOimS86SvpkrjXwGM O+fnBoauRvKrYmyGGd4z7qHaz9JT+UWP5dnrewwFWNf5iEgjegy7ZNSEiWMvu7hnOGc5u/Obj979 YouhC18dQwghhBDqrjiBUWk9A29Rt8Fgbod7NiQ2Nvqeunaq3qB//WTVHwa3lbCJWuX1qRGzZObl Z6zmuqVP5eRdmkMG9079OFnMAsijop5hCAdAqVBicuTaXZUO96H66cGo4+M9pz/ghYZpqiY6bl26 OowAK5b0EJF953puS9M8DW3Kb8jMWdrgthohTJiImqFFDrv1uzxDJsjv6qVJYQAAoqUiFs6lxyq1 +hod520IcVpjMG3U1w6xyFudZwWIZYAQcYKUgFU2JVIUxaqHn7LsEonjWM/tf0d2Cx2nzxsGSYiP vFnFEADBaV65v+grsydfksy7KGmxjmVYyb9SlGsyTU02k2EZWfA2EPwr5wBj9oFfa/bjEOWt1Yu2 VXu+Ykz/nu/EswRAMFfP3115qoX8x/eiA3B9uT/7ywZb4enkH4z839ed4v8G0l0nzow/AQCgjE34 Y6AySA+CC4dKTAUJYSkEgEgmR4s/yXHwACK1aqLnIgF1by8xGxp8wOffoH8bGLIayb+KsYnY2Njl yRJPUZeUlSw+bdU3+N+21HXnxaZNX7583vgeWpG94tTBgz++uWbb1j1Hy9twxQshhBBCCIUSx6k1 apYAAHUZ9ZZ2aLYR0ZQ4uRIAAASnadmhsi2ex8opX1BjeKPG+IkY9C0PQUAYIgWaV1bxwkn9fi89 TKmj9uFhRiPhIiRcpISLUrJ8bcJEJA36uQou3gggBwDCTh+YEldtO2KwnTA7sgz2YrdQ1eLD7kJ+ acVjx2tOuAGIo0e8ZpESAKBxnkG0Ot2DvWVeZy47nWPdrHd78gHqdJ510oulBIBLkIJYpJwkJwxV Xh7G/OMSxXlSAd55xtZ8x7QWBuEmRsskAABUb7RXy5WT5LX/U2N28TqWAaLWKfoxpr1NSzGYGwh+ lXPgMbfGrzW37RBtNRTfiy50Aj34gxzFhkMnNwAAAKsMXzM6sg8BAGHTodNPVXipidwGw2az7h4V ASC9olRpOY7TDTr/C07zpuqGh0U7lXPQaqQ2HHVydfgr/VSRAABUX12x+JixpHH5hWx3E01yepqW Fu39YvWG3/8+nFVixREbEUIIIYQ6M06jVXqyTKfB0MoU3cFBxL0UtV2CHTWmv5s2PWnN+RujVDia V/RAtsX7eGqMaExi2I0xyqFKTtlaN2m3wfCdQXOPhmEAOJFkZLRkZLQWACjlC2tMX52pXOs1QxAs 72XVnKhN36m3ocr8QZ05VgApAGFiZdxQhToaAAgzLloeUSUOBwAA3uLIa55WtBoGEaXIPMMHkLCI iFcivHw5ETHa5u8GdwP9KueAY26VX2tu4yHaFQR48Hcw5+YS2+0quRiAVaomqypPW+o7/9OSMsP+ Dok4WDVSwEcdkc7tL9eyAABui/6JI9WnmpVDyHY3n71pxavmcRePmPLA0rlP8obczO1//LVx/da9 RS0/qIAQQgghhDoOo1V4mpxOvT5oLTYmUi7ppRBpvXW9BSDsuVYw8fcreYfhzZaa2kQ0Y1DK2711 49UiFUNAECpsjkNVps1ldr3X5QX7qv1nHzyl/8vgNAhwbvhywiaGaZcMS7zL27jrwcbnWmpb3nEK zZWRLAsAQDQRmpnq2ieKrVZnSSBrJkxr4VOXEGi/X3/4Uc5BiLmFHMuvNbfpEK39ukA+1Y7aevB3 yAbS4lJjbZJPJJOjpbJznf+dv5TYg3pZxtcNDF6NFPBRRwVauzgjkQyUedtxoarrqOnstm8/e+nh +6ZOuvH6+9795oR09NyH31/3+ar7h4W1Q+2JEEIIIYT8xMk9zWebQR+UZzbl6rAVgyLHyQgB4N32 744WvlLReERu6iy0AygBACRaxQjOuL1xp1YJwziE83Tvpi39HytX3xTBsgBA+d3ZRc/kWysEAABW Ffl1lNTrTWPKO7fnlW7PA8IwMQppb5X0ogjNdVESFQHCiK+Mlr5vsAXU0ZsW5OUNz/NpyTyLUwAR CyQmRjuJI26z9YBINlKinBNHPR0z8s3OQGKgfIWTgBgAaHlR4TVZFlsAK2l57T5voCcW38o54Jgp rS0iwoTXD73WOAI/1hzoIVqfhhERq/MWhWftfhVdIBio7fTOiK/sGzFJ5H2pAA5+3zYwhASHeWMV PzqKJQApUerZXG3nf7fJ+LOxSTSBlHNAGxikGingipE6VmdZLk2PHMwCw8nvHhxbsLfk12YXc0NW 19Vy6bMzNmdn/Lx64+Kv35l+0S23XPX9wS+LcQ4AhBBCCKHOxXNXVLDqDc4gNOaJaGbvCE/yDwAs J53dS9e3yW0g6txeWTvlFSPRPD0oYrycYQE4lkvVae4cmLxpbOwMaSC3jhiJKLruKzLKbJ6mtlyu uqOnOrl2ajHgGq6Y4aIkjCdTooJQYrJuK67+9/HKf+o6wkqCMdB6q/QWl2eWbFbEqQnNLiv/tNzN A1Fznn1Dz1oC6ppLnQdqPFdeSGRs9HOJ8siOuiXtezkHGrPgdNfdUGVGpkRfq5PESFgl0+AWrl9r DvAQpSa3UPuot1h1V0/1CLU4UcppWNIuc+kBT2vTVUaivDFJPSUh4o3RKS/HSxVelw7k4O/gDQQA APf2UotnX7MK3T1xIk/n/2OlxtwgrDzIG+hfjdSGitFmqv6/EybPoH6sVP3coPDBTYY9aLe6TpI8 tE84Q115mUcqMflHCCGEEOp0PE1CItbGpaoJgOCoKio2uAO+FCBKkDVqRzJiLqLpbTSalV+5JTb2 CgkhAFHhEW+PCXfylGWZukY2faiveu9hQykFYJTPjom5lCEcx3jyNUaqfWu8xg1AXYbHMsr3NViz 4OYNAOEAwEjnDoyNMPA6pWJsmFh7rne59KYBccnVxg+yTUUAIm34lxfpwgS+wu6ucPEmtyAQNk4l Sa1rJu+ttrflhpiPeKsjj0KUJ0jq/KvCfkBsqU7QRta9cybAURmFfYU1mXGRg1kgjPjKvkmX93YX WVylTt7spmZDzct51qD2CGiRP+UcYMzUZTtshYuVAABSpWbpcI3nfbelam5GRRb1d83+HKINFJid dhArAICwg5PjPkyufd9lKL9ub3VBiO+Wl9ndAohYAELEl/eOu7wuVBtPZM3y18AOfl82kJHq3hoZ MdAz1gLL1M5jz0jvHtVzvgAAINj1D+2pOBJoaZgqDX86VbMkBKB2u6hg3VwWnNEKWt/AENZIAR51 HkXFpc9pJG8miEUAck34yv6u+ZmGorol26muY2OveuS1BT3F5mP/Wboms+uPkoEQQggh1P142rBE JFMoFXKlXCy42jTgmzPb0ijZd5jtZ5qtT3AYXzpc8be9rq8tEPG5Ni5Q3nXExNc9CkvkIk4nZlV1 t6cIMCoxqxOzWo5pMg0abzJuNHrWScK16luTddPDxVoinK00H6+9okEiNappYbXP1UslIjUBlmVj FJJ0rfySCOXYcFmamCEAlApZ+SX/rhDaoYOz4HTkumq/h7eYtpnBrjfvqOuNQd3OM4GOy8Cbq544 WnO8buUMwyWqZCPClZdGq6Zo2Xbru+1XOQcYM3V8m633MkoiT+ufavFrzf4coucYK2rWWbwcMw26 J4QOLa0wHW2cBFPesSkr/4VyLyEFdvD7tIEEVCJW5/mRsvVXA4mMq3tTTLyOye8r3rqpzNVwQ63V xt+DNHaJDxsYwhopsKOu/tv+PlX8ocETPImKjvl3L7m67v/ao64jqmEL//3MxGh3wfdPPb8qy97G 1SGEEEIIoVBo1BKnbrPJy0xzvqPu9cdL0vqFX6UTK3i+wGj64IS+yNsKzYbqxbutkxJ1MyJlA+Sc kggVNleBzXWy2rix1HI6sGcRqOOzwwV8r4hrdNJ4MbE5nacNli2FNeur3TKt5s4U9TCFOFzEihzu KgAAEDntWyuZRKkoSsKqWEZMqFsQ9HbnCYPl9yL9z3q3qw0l4U/YzhwrgAQAoKDCcooC8JatVcK1 cSwDwFsdZ9vQjbakvGyuwTgpTj1RJ+0jF2k4Rs4SjhC7u8WHloPO33IOLOaqirJb/7FcF6+8SCWO FbMqjpGxrIjn7Q26n/i15gAOUeq2vLE3/1iC9lKdOFHCqTlGyjBSFuxOoR2yId5a83+Z7JM9NcPl rOByZlYYvjyr32mjQxW8AEyTHgCBHfwdu4H1URwuNp5NjOhRmwkLGSXm6mCtOrgb6GeNBG2sGHn7 qsyygSNjxosJAOmdFL/MmvdwodPVHnUdUY145MXZfcWGnSuefWVnDQ7+jxBCCCHUOZG+/Ud2dAwI IZ+QS/r3eDeeYwB4S9WttY82XIAkd45OuVtFAEBwGh/6u3hbOzyog85HNHbJ729eoTL8/sjVK7Za OjoahBBCCCHUgjb1xEUItSPCpSlYzyM71M1bL9DkH4ATJUk8r2hlueEfTP47npCXnW2/fJhu0srN g3JzCwsKigoKiwsKigsK8k4cLzTgLkIIIYQQ6hww/0eoc5NyrIpjNRLRgOjw+XXztFutrtKODasj SFlWJZWMTYmaLPaUg+vnYis+ad4J8AU/PXy7/sZZ40f2T01OS++RflHt9CX2jKeveGaTqaPjQwgh hBBCAID5P0KdGJE/MibxFlmzudmo++8Ki6NDQuoYZFDPlA9TJJLGBWGtrl5rvGB7QXQyguHE1g+W bf0AAICR6aITE+MSkxIStOVHrB0dGkIIIYQQqoP5P0Kdl+AQmk/MLuSVlL/pbVT/7osKhHCNC0Jw Wf570lh8IZVClyHYakpO1ZScOrK/oyNBCCGEEEKNYP6PUKdFBYeb2tyCjac2N29wuQvNtr3lxs1V zgttiDW3QJ284OQFOy+YXe4Ck2Vzfs0Wc7vNYoEQQgghhFA3gOP/I4QQQgghhBBC3R/T0QEghBBC CCGEEEIo5DD/RwghhBBCCCGEuj/M/xFCCCGEEEIIoe4P83+EEEIIIYQQQqj7w/wfIYQQQgghhBDq /oIw/19CYs+2r6QzW7Hsft8XfuKpd0IXCUIIIYQQQgghFJgg5P8XAh+zer+uFCCEEEIIIYQQQu0G +/8jhBBCCCGEEELdH+b/CCGEEEIIIYRQ94f5P0IIIYQQQggh1P1h/o8QQgghhBBCCHV/mP8jhBBC CCGEEELdH+b/CCGEEEIIIYRQ94fz/yGEEEKdwuDqssHV5R0dRed1OCzqcFh0R0eBEEIIdWGY/yOE EEKdwuDq8lvPZHZ0FJ1ZOub/CCGEUFt0vf7/l0jda9WudQr+yq4XO0IIIYQQQggh1DG62P1/QoSr xDQMAFjhco751UloR4eEEEIIBd3qHukdHUJngX0iEEIIoWDhOJlap9NqlFKJiAXeZbeZasora2x8 58yrKSW/OUkfMWV55hc3Jv8IIYS6odU90j/vifn/OXgJACGEEAoKrm+PRIbU/cVIFCKJQqmW5+cU mviOjKtFZIed22Hv6CgQQgghhBBCCKEuhfMk/1QQeAE4jgEAYMS62Ihqc5kVb68jhBBCnU83nikA B/lHCCGEQocTnOaq8opKvdVFGXlMas9IKQAQsUzGgdXV0dEhhBBCqJluPVMADvKPEEIIhQqXfTrP LnheU6i/4S+43Z2m+z/D8O8phJ6k8buUWWFm/2jaQ4HeoHAvYmGjVfSWu9F/DJe5XxbRLLvoISc0 /BAhdKRYuJyjvRmqIyACsFKoEkipwHxhY06EZIMQQgghhBBCCKH2xtUl/4RTxSRESgEAgNqrq01C B0bVCAVygifG+r8J9GCpJhhrJoQukPM3slSgkMcz+UAFIAoixDB0OIGvCAA+AYEQQqhz6x4zBXTf 7gwIIYRQJ+KZ/4+ItbEpCTopAQDqNpUWlFs7TfoPVGDesjL1fxIivKjiRwVjzWpOmMlSnmcWW9lT 51J9FgCkBFyY/COEEOrcutNMAXgJACGEEAo1DohIGRWfFKngCAAITmNZXkG1rfNk/6EkJsACEABV s/+yY/KPEEIIIYQQQqgb4SKSU2NVIgIA4DaXF+WXm90XTOpb6WZ2CMJEVliuojlucoQnJ3iSxZPS C6YEEEIIIYQQQghdILg4lQgAqMtcVlhUbna3+oHuhApkuYXbIRImiehgTpjJAQBQIMVustHJ/uiG C6s4EEIIIYQQQgh1XxwAdRrLCoqqLd36vr+khaH8KCU7nOwOJxACCQztwwnDWDqOE+7gaLiFe7/T TIKAEEIIIYQQQgi1BVdTmFtcY+s2ea4ny5c1fnOY1P2gCIiXxRt8kEIBTwp49neAfXL34xwdwlKG JxfGSAgIIYS6lcHVZYOryzs6Ci8Oh0UdDovu6CgQQgihCxQn0sUk6xq8wZtK8yutXbYrQJUAlIXB IhrtJmUAOla4SSJczcFpHjRs04U5AlIK5sZvskRIIRSAVFLSZYsBIYTQBW1wdXlnHU4/HfN/hBBC qKNwSoW84d+CqcbZhbNest9NakQ0QuT+VAR6AbQMAGVWW9gMzv0e23TD+ordr0uoUSAVFIwU3ABy Akks1QDo3cynrhaeGUAIIYQQQgghhLoarvGfgtVk6dLPAhhc7LNEuENM+zAgBtjtZL5yMKcoxHBe FuYp7HWTWAaiGJoMwBKwUVLoZja4mA1uUt3uwSOEEEJBt7pHekeHAJ21MwJCCCF0YeGOZB7r6BiC i5x0so84m75b6uCucjR987iTe7rZkgghhFC3sbpH+uc9Oz7/B7wEgBBCCHUCTEcHEAjPPH0Ue+cj hBBCCCGEEEK+6Xr5P8vQaAAKxNz6sgghhBBCCCGEEAJo9vx/Z6djhFkSIR7AzpPsjg4GIYQQQggh hBDqKrpA/t9b4n5YBGoCaqBiAgSAUvKVg8Hx+RBCCCGEEEIIIR91gfxfBBBLqJ2SMkoMFPJ45k8X kyl0dFgIIYQQQgghhFDX0QXy/2MO7ppmQ/cjhBBCCCGEEELId11v/D+EEEIIIYQQQgj5C/N/hBBC CCGEEEKo+8P8HyGEEEIIIYQQ6v4w/0cIIYQQQgghhLq/LjD+X2ewYtn9HR0CQgghhBBCCCEUOE4u dbdxFdUVJ4ISSqd1xx33dnQICCGEuj+btbL+xfnPra0u6fuq2kdbAu5s24IQQgh1XVx1Dc6thxBC CHU8m81d/+L8Z+eWlgzTSQCgusbh+6raR6vxnGeBzrYtCCGEUNfla/9/BiDBxSY6WZlAbAwt4/hc Mc+TkMaGEEIIIYQQQgih4PAp/1fyzDPlyihXo8ECbQz8rXCuV9tMLA1NbAghhBBCCCGEEAoOn8b/ N7PCFzqbizTK82UCTDaJl5eoh9hEoYkNIYQQQgghhBBCweHr/H+ZUtc7kdYmlwAAQCGQ+ysUF1vE wQ4MIYQQQgghhBBCQeNr/g8tXwJgABZWy5NdbFADQwghhFBnwTBwSW/Lpf3NHD70hxBCCHVZLeb/ Km+D+7V0CYClMK9KHuTQEEIIIdQ53D6x+r9zz751c96Sq0o7OhaEEEIIBch7/q/hmRdLVSlOL7f0 W7oEkOpkezt8nU0AIYQQQl2FTgV3zxLL41IZsXTWiJrEMGdHR4QQQgihQHjP/wfZOA3PLClXprZw CWCT2ssEvMOtOBAgQggh1N3cPoPRRoVzKp00JlksgoUTKjs6IoQQQggFwnv+n+TiAEAukMfKlT0d TS8BpNtF04yS5p/y2l8AdSoM68eIDwghhFCEBm6ZqgSJAgBYqYKTq6cP0SeGYxeACxQ2JNoHljPq TvB47lS87wy5UPtCKpBHK5QNO/an20X3V8hF1MvoAGrBy5vdFhM56amPdh7Ytmfji7NSusCFD6Ie +sAXGw8d+Wvn57cN9mmsBknM8Gl3/99z7616/7v1a3//a/Oef/5zW2LX/fWKLn5uQ9bxjBMN/h37 aVE/X3ddNysNhBDy1YJpjDqtN0Skev4Uh8eIOYpdAC5A/jckUCAu+HJuY4MNdS4X/PEMQMKu/2jb ieN/vTXVy+3zDuH9iX0bc+7xfolAHilXvhVpzpK6z5P8A4A7JBE2JYm5aPZdd94+cO89N350nG+X r/SGqEZcf8OACDFAjwnXjY9cd7ZUaP1DwcUoImPCpYKporTG3vrS3IApNwwNFzMQcdHll6auPnzs vGVHFMMXv/PfRf1UDAAVnDaz0WAsL6i2d+ERHgRD7qGMDHVtyq5IHJIe6+uslVYnNdEAACAASURB VN2wNBAKFkXcmHv6RjX4MVCBd1mdljJ9aVZRbpbR0e5VY6dAWKlGzFK33eDquPNUUOhUMPe6CJDr oDLH8w4rVXAKzbTB+lV/RRRUB3/23/vuu/2up5/0vKaC22bSC08/Cx9+EfQv6jr8O92Hjn8NCRSo LljOwT1E29BgCy4Sdv2H614c0+DLqcA7bDVleZkZW7746Ie/iy7MblChTEBQu/CewRRzjVpsYgqL K5Sb1fZpRklLyT8AlHGh3aNc+IBrFt159w3DE2SEP7UvpN/VKmrat+6Hk+nXpLCF277bVtEBLVyi nbr8qxcvNq1dNPO5Xa5WF3cf2/L1vksWDFJU7PrxtzOt7Ck26ZpH5/dVuvPXL1/+9uajRUZ315/u ic/6/JmFn9f+wQ66Z+OaW5N8+2R3LA2Egou6jPnm2lSfZcRqhTYtVpcWkzYod/f3Z6u9jBfT3cmj hy3qG+ko2vXeyfKu3da5fTqjSEgD3lmcU/rhRqnLDfOvcKaEx7itxoUTKpeuiwvBd9Ka0/tPVPIA AIxIro0ZGJng+Y/hMWLigAuuBvbzdB86fjUkUMC6XjkH+RANvMEWEtRduO/Pg6WeiocRq6P6DBk4 cU7/CVOGP3vTY98VXHjXuEOZgKD24T3/PyZ1U4CGib6YwrUG6fnXdVwaqp1KVD2uWnDH/beOTVEQ EKjQ8jWI9iOU//r8bb8+39Fh+IwaD74779p3fVtYPmhwXxE4t3/+8tpD+guuqdUUlgZCreENp747 UnDuTgiRJiYMnt4zLjl15CTTHz9XufCX0yWFq+Hm62JAqoLKnA83slsPiQgBoxXevrd2FIBV20LR BYA/8OFj926w1v/9sJO5HwAARl4xatzWU9tNeDh1DL8aEihgWM6djPPAZ8se++PcCY7RDnnwozcX Dbj43nlDfnrpQEdek+sK8HjuhLw/wFwm4o9L/T6e020cF5rMXDTsX8/dOT6Frfhn9YpbH/mx/bva X2AYhUbFEmooKbdgKwtLAyH/UXtBwb6NhWaByPrHx8k6OhwUoIUzWE1SMrjsoC+22kEQBJ4XLDYC taMAwO0T22MUAMFS6nnBKHv8a7KmE9wBQAhduAT94dXfHnYBE56WrMX6CHVBLQ5g9pXOxvt5TA+y ixZXKM7zgEDAqLvmyA9vLph2420vrz9U0T7jDFzQGIYAgMDzmPAClgZCgeGLykuNFDiVLhIbSF1R mIreMisWJEqoKQAqyCWCh1ImQO0oAOqpgwxJ7TgRgEDYfuk9cegVhFDHIoQAUJfBaMWmIeqCWjyN FoqEbzW2OXr/7tsMtHMPVCjejrS4SDB/EK6d7y7aGcT1BYjtOf/bdXf0b1Jmjh1Lxj62wdxk0cSF a9YsGWho9myMaOyLP30wW3n41Ztu/qSoYT8GIk+ccP3say8bOrBnXLhKJgan2VBTUVpamPvXf57+ 5kht+4rt/8Dn396d1mAM1PAbV22/sf4vvvTzede/vL/BJRJPJIPOBe36Z+Wk+T+UN9s/niesUhus Oubm947eXPeHUP7lglkv/uNZM5Nw67sbnxwqOrv6pqv/c6TJBRn56Jd+fn12eMmnc/+14kCA7ULf SqPBdyaPu3nBtVeO6Z8aKaeWipxDGRu/+PLrXaUBP3bsT2kghLyibpcdQMOwIgJAAZiY6WMuThd5 /pPPytz4U4UAwIVH9hgVFx0jk8lFIrHhyH+O5DccUEgsjx2amNI3TBcuETG8o8ZccarkzL4yva1R HUbCksYv6qk+lbl5XaU4NbHvqJjoOJnIaTOUGEoO5eecsXl7Oo1V9kroOSQqOk4uFYPbZK3OKT3z T1G5oWHN7E/MjKr/guF9Gl7s4OLHPBZ/rjwMBTv+d7rKs3oi6/GvUYOSiDlj/+9/GZtVyBE9x142 7rKCHR+druqweub2GZwqMQXcdjCWAYBGAZRSANDIa0tTHB7jthgXTqh87odQjALgnVQu8ZSweOIz O/4z1dMZgFq3PHDxs1ucQBQpk2/916xxfZKjdVq17MCy6+77qcHTAkSeeunMebMvu2RQcrSKtVUV Ht+zbd3qbzcdMzQ6QNjEhWvWPNpz24Njnv5TN/LWe26eOX5AgtxaeOr4gT9//PDLjEJvQ175chry J2a/TvchPin73JDw8PcM7hefTveilFv+97//u0Rlyvj3nDu+y60rEKId+fSa1/6VbNu94q47Vue6 GmxdR+/uc5G0Xs4k7PoP1y2N+HzWrFVnYicsXnrfjcPDana+d++DP2RL+8556pG7JqdxuZueuufN vyobdZf1qeg8I96NOPTsZQ9+UwXK3pMWLLp+2iW9YmSOsqy/V7/2zheHDHXh+N0iFafPfv7O8T0S 42KiwrQqCeN2mGtKczL3bPz8i7X7KrvSc+HyfjfNGiQSqn7ZtNfa/D+D3SKtQ+RJo2ffcvWVYwb0 jNVKqaUs58Sebb98+83WQ+WNflR+lLMf2UoIE5D67fO9fg5BhuUPts/iH1fdnXz4xcvv/9Jbp3Tl tJe3r5xg+eahy5buadadnih6XrbgzhtmjOkVLW3+szon2D/YRs53Gf1XtUNE4TqDzK9bNwPt3H0V 8ncire6gXgLoDKit+EjGHkN9mXER/YalaYOxZqIa+tAnry0aIBPM5dmns3IMDoGRqMIiE5IGjNMc f//coUXNBUczMipZAABxdL9BaRq+/PihM/U7V6g52+TBSGovPrIvw8IAANH1GNEnvMUgzIWHMvaU sgAAkpj+Q1IV7rJT+3MMdWs25J47hISiDeu23TP4iqQrZ4/++MjOhudGop04fXIEcWVt+O5woMm/ r6XhwSVMffx/L03rKXVW55zct13PRfUYOH7WExOmTHn7kTveP9a8avaJH6WBEPKKkynUANRlr310 hjor9eW5HJHIdLFSwjIMEFFqj4tnJuokdWcZnhNLCNhrf11MWOyw63snhLHU7bJWmSxUrIzQJo3V JQ6OPvrd0ezSpu1FRq6InZA4+GItZ7cZK61CmCK8lzK8V1TM9sO7dhkbLc3IEq4adFG6guVdplJ9 qZVII9XRF/WK7h95/JvDJ4vrl/UnZuq2FNdUmAkAACfRJMjFgkNfYK0f+4BabOcaAtRWcLCyb2KU Ij0u6m9jWdMWgpwDajhcXN1hyX+4Gm6eHQciGZSdBCoAgErG8zwAgFJWl61IFZxCPX2I/sO/IgpD MBFAcwRoVXm1Z+8INbl7M/YoGGXSoH7xrEjMAaMc+cj/Xp6frqjr2ejSaZUE6k6K4qRrl618blqS lDoMRXlZ+TQ8NWXU1QtHT5sx7bXHHvrsZJOTBRHpeky+c95Tc4fKTQWncnM1ST2Hjus1dOwVEz64 467PjjRa2tfTkD8x+3W6D+1J2Y+GhN9ncL/4fLp3nf3ysZf7f7Vs5uh7X7kjc+5/TtoBgImc+szT c1JI4Y/LHv0it8lPrqN3NwD4Wc66sLDYSQs/XTo9jgFgVBNvmDHomH7x24+OUBBgyMBr5k1eve3r irpDxM+WEqMJ06nTpz/5xoPjE8ROk8HOizVJw6Y9+V+V8donfyrz7EW/W6SCPPniMf1IWUlpdtEJ s1NgZeHJvQZNvnHohFGJC+e/sq9DJ7doHWElcm1UQt/hY2ffdtMVKfqdbz6z7I8mF29D0yIFAJD0 ueHpt56YlCIDwWkuyz+T51LE9xx53cDR181fuHXVa8/9b0/9UOShKedQJiDgd/3su5DUSPzZo8et NC2tf28OSp0AAEz0qJGS/bvz3QAAbFqfHhJw7T18qukpnKgG3vrIGw9PSGzxZ+URih9sI610o9uo ceRK+FtrZNEuP6bdHGQX3d8dLwEIRb8uvePX+j+Jdtp/tz09MQgrJprJN9/aX84f+3TO3PePNtqr rFwlcpw7fIT8dctvX+f5UORNn3z/3AjL9jcfeXpHy4M1CBU/L3voZwAAEE9amvHOFS210fic9U8u Wg8AAEzc3Pd+fXKQYet7dzy/1+uqqX77179UTJ4TefmssW/8/fu5UfGYiCkzL9EQ+861m3MCvJbr e2kAAEgG3vbmS9PSXFmfPv7821sKrAAAjG7IzSvfu2vMfc/c+8+8lYcCueTqV2kghJojqqGJcTJC TdXltW1QWr078+/dQGLSJs1LUbCMKCZ55MxEtcOQm1FSVmq1W1xOa/3FAgCxdsDsPgk6ajyctfeP MqODAgCI5QmXDhg6NHzgdb3Mn5wotTX6SiYxdVhYzenvM05l29wUgJFEjek/bIwuYlz//gV7Ms8N 08xoxwy4KF0ulBTs25BT7MkniShs9IDRE8L6TU+t+Di7LvH2J2Zqy9t8KM/zOVX82Lv7RDiqsr45 UdZCVeg8VVRkikxVRSb3PFN2vEndwhKhOjezA3uWLpghUickg9MCpnLPOyp57f3/+vwf6roALJpQ +VxIJgJoigjWjL9rzy3uw1/ct/ALYPs+9NNHdyaKJeq+d/775fm9zfu/+fz77ScKKmpqqmuqKqrr drps+EOvvDAt0X16/eOPvr3xtEUAACJPm3rPa89fN37Jiqfy5j3dpB8GN+TeZYn/rHriyo/+zrMK AFz0JbetWDF/9PDbX7n/0MxXDtc3on0/DfkTs3+n+1CelP1oSPh7BveLX6d7WrX9pUc+6/npgvQ7 n128945X9zpSb3r6mSsj7EdWPfzS9qrmv6wO3t0A4Fc5A9ENuf/1cco9y69Zvi36sa/enxU95bkX JJVfLZi4puzqdzc80lcXrmaggve/6AAAmOjJz7636KLo/PVvzHtnw54ShyjmshdXv3ht/OhrJujW f+MpP79bpO69b00e9rq70Z1ZxUWPfbD6tpRrZw79976MzjqZnmzqa79dKRKJWM/joNbcrV8/+ODq Lbn2JsdRiFqkACTiiifff3ZStOPshhdWrPz+iOd+P5FFD51yzbxF1yRKrJYGpRqacg5hAhJI/eyr ENVIruOZ2e4Z6b37xLLb83gAtuf0x17Qvjrj9X8cAETdu180I+RnZjW9PDTwzrc/7RFTuvntBW+u yyjy+rMCCNUPtvEnWt3EY1L3k7GmNyMt25TOHLG7ghMKRcIeueuTMGu+qMWTiecSQIiGA+x2iEQm 4wgQqVIjbXKdhbea7J2yT5Rjzzcbs91EM/7qK6POHUVs4pRZI6W0ZvvaXxvNicgk3vDp7j8P7Pfy b8/a+X0abbQ/pUHCr7z7xgFSy86VT71a+wsBAKHm0JdL3z/iZBNn3TgcRx5DqH0xrDQiLHnSkDGX 6jhwle7Ir/R2giXKiEHXpijLz/798YFDGSUluYaacqvF7KobZ4PIBqamhjHuwpx/fimtTf4BwGkt /O3o0TyeqGP6DJY3PcM4a458fjjrtK12jk7BUb4z82CmgzLypGHh5y53K6L6jlCzzuqj67Jrk38A oK7q3SdPFQokLDY1xfsF79Zi9pNbn3vEQkEUPSSqWTc76q4qLjJ3VPofroFbp8mBE0PlWaC1Uajk lOd5nufV8nNxsVIFp1RPHRyyUQAIp4hMTeg/2vOXLe/Aqr3eGtBM+GVPvXh3yun/LJw397nPf/xj z/4jp3MKKw21c1ICE3PVvTcmi2yH31786vrTdU1las3Z9MYDr+2zMNEz7r662V63ZSy/8463d+RZ PYu7y3atWvzM5jKBS5k5e4KyPsJAT0Otxewn/07KIROy9oz/5WzN/PihF7ZXcqlzlz80/dIFrz4y QlW17YVHPsn0fiexa+1uIFxieM6/b39m8ymTXV9jpUSsq/7p3vs+2V3urKkxC0CA1NUqAcTMaPv3 ca17aO6N//fdnhIHALhKd/y0s0ogbERUWOuZQ0sEt7vJ5lLL0T0nLZRRREYoOm/G4D6786e1a3/6 ft2vm3/fvf+0OXri/DfWfPT2/eOTJA2WCl2LVDxo0SNTYohp28sPP/HVkfrO/tRWdmD9B4uvnTnn 7caJbVcr54DqZx+FqEYSyo+dKuPZ1H49JAAAbO/LL+0bN/6qizx/pfXrJaLGk5lnm+wGNi5JtO25 RTcs+TqjqOWfVbv8YH0aRocCHJa5DsuaXuPZJ3ctKVemOL3vE89wgEEfC6A7Eir+/PG32wdN7THr oz8mnti3f9/ho0cOHzt46FShqVPm/gAAwJ/c+M3+W54eOWTW1YnffpjHAwCwfa6emi6mhRvWbTc1 XppwUoVM7u1w46Vc40PTj9Ig6mGTRinA9Pv3Pzfp3SKU7N6Xyw/pNXBgGvv3sc5bigh1D1zE8Ecu G974PeowF2w9fiiz6S0SDxITGV2at+u73CrvfRHZiFQ1C0L5sTJz04aMrSizemBypDZVJ/nH2nDt 1G2zNMmZqbv8aIU9PUEap9UwFZ5n78UpEZFicB0vKWxybZ7ay89aaaJCFy8n2V7mmGstZn9R45Hi ytG9IxPjEsOKT3mu0Nc2zdzG0iqX5HwfDqWF01mVVg4FB8F5rlWpU3pu/4Na3mhhcVis22xYMKFy adBGAeAmvfrHiVcb/P3Scti1AQDWbzldrIj09ok+ky458eGdj7233/vcgMoRo4ZIwZXx68a8JucD oejnTbuXDJ/Ud+TIsC9zKxoeTvaipteuqHHXr39WTv1XxIChvblfD7ihLaeh1mL2l38n5VAJVXsm oHIWitYvW9Iv8f25U199F8CV89mSZeuLWsi3u9ruBv7M9x9uO9e7iFq2ffbdcZuXBQOK2bljxeJl WxrWkNRqdVAAwgSe/nvCkWrjUlPj4+KiYmKio6MiY/sPkQIA09b1hpIr68f3lp2b/4/I4obf9OST D929fGifl+cs3lTo6UIWshYp12/cxDhG0G//alOzp94AgHd6u/jalco5kPrZV6GqkdzZWccdcFmv Xqnsn8eg5+VXpLAsuezKwSsy9jije/YNI+69WVlNd4xr72v3PfZdwz6BXn5W7fODbdMwulaGrowy n+cSQIiGA+x+hNItS67L/W32NdMnjR456vJbx14BAJQ35+/buvb9Vaszmj0b2hkIZZvW7rx/xKT+ M6cP+PS9Iy4AyaDrrk5lXCe//zazyTEv5K+Zk77G1xX7XBpMVEKihBBuylv7pnhflVajZgAw/0co tKjTcNZkpwAUKM+7LHZjcU3pqWqj99wfAIBaKw59n1PZUiJNRBIZA+C2m7x0HnAZHS4AqUwkBmg1 E6cWp4OCVMxxtak1kWrlLAHSf+CM/t4/IZJxnhEL/YvZf9RYlpudGtFXmTxIlb3VKAAwaoByADDr jYLcW6IbehEauOVyDqJ6gr64Yf6vkFKeFwBALWfqr1MAACuVcwrN1UP0q/6KKAjOKAC06sSerAoB gFLeaTVVx2VsHwEAABVOCgpvnxD0f7z4xFv7WsqsGHWYhiNgLa9o3oWUWirKjJREaCJ0BFptXwpV FZUCRMrVytoSCPw01ErM/vPnpBw6IWrPBFjO1LT3m5+Pz7lniAScJ7d8f8DPPjWdeXfX98yp/7uF 5QKKmdodjmA33NnosfOefGjWZf10YqB2Q0VJUWlRcWmpySb40hu5E6G24r0fP/J/qm8/unviHbeP /H1phgNC2SJlwsLDGKAVpaU+/Xi6XDkHr372JlQZluXUsVx+co/evVXkROJlVyRXHT4sDLh08shX 9uzp1acHK+RnZlU3jVeoqda3uv/b5wfb1ml08BKAnzipxHtBCfrsXz96/dePgEi0Kf36pw8eMnby lCkjZyy5aHDEbXNfPeCtxyOlQFiO6aiuPFS/9cdNpZfenHzF9aNWHdlpV1wy/ao4Yt25bl1uW7sZ +loahACAYDi+cd3BSm/fKRgPFZwnFoZ0vm5QCHVFvPH0D0cK/EoxrBbjedri1OWwCQCsVMkBNF0v q5CIAKjN5ct5m1FJpQTA2uDkSACAOkvK8vOdXiNwFbRw3eL8MTfdBCAMaaWOoa7SA2W2PgmKgXGR O41lLiKPhupsADA5KcjP+9GQWTCdVckB8vZ7hv2rVz/+v6pZBi4Oj3FbjbdPDNZEAPyhj5+8d8O5 Sw8P1pSPOP8naM3p0+cZP1wwVhvcFGSRESoCTR+FlIZFqAgIhmq9D/uWi4yNYoDWlFfVFU7Ap6FW Ym6ysC+n+xCelP0SSHumVYGVs3zgvSsWDuYqjp/geqfPX7n4yNzXD/rxGHFH7e7gamNLyUetHaJM 4nUr37p9BJP74/PPfvDr0bP62hpZNO7/Jk9Ia72262wNNmf2zt3ld/SOTB8Sz2bk8BDCchZqqmsE UETFxorhpLcuHg21tZxrtZit1ApmAhKs+jmoGVar+OLMLCPtm9avh+TMxImJpVsXvc6/8PGVV41U lPRLUxLrjsyzgQ6D1h4/2CBMo9tpLwGwceMWPznv0mSudN/aV175ObvNM2/4gVIqUCBSubTBtTY2 8pJ7n39hqoqB8w03QR363EO7cg/tWv/5mqvf+vaVKXGjRyWwB840O4wcdicAkUREygl4b8SGnP3g Nz9k33hvzymzxr6+a9+46yaEQc36b/4sD15L4/ylwRfl5FhoX6nrxNfvfZznz7c6nS4AogsPY7F3 AEKdEV911sj30oUPiFIcLrQ0rOGIJK6/lgVqyNM3S9ObNUaIKGZwhIRQ+9kaY/1DhRUWF1WyvDl3 a36oHrF3CwIAcBKpGM5b4QNfUJxXHt8vKjK555nyPLk2HAoBAAIcUqDNam/+A4DQtGaUSwnLCC43 aJVNz/WsVMHJ1VMH61dti8ivao+JAPxl3r830zFuxNDLpyZsWN2o6UQiJ00ZJQNX1v49zcZIan44 hV02Y1I4w5ftyzhdWz6Bn4b84PPpPvQnZb/43J5pXSDlzEResfTFOweS058snfeh6ME1r9102wvL su948McSrwF0mt0dZJ3kEFUMGTFIBo4/P3957f4GD6MwKp2aPX8W6U+DrR1b/qKwMAWBc/0uQlfO 7pP79tTMSQobe+OVUdvXtfJr9q+cA8xWgpyA+Fc/t0eG5QvXicxs9+yhfdPHCJfHlvz55/6Dwu/F N8y8auwBaRLrPn7oWIAdC9qnkglOTxDPJYCz4hYL0HMJQNSuwwFKxtz75O2TB/Tq1WfcnCUPTPba ZTBkBH1FJU+JbOT0ifFiABCFp097avVnH94WUXjK0HxnckqtWty0cFhtSs9YEVBnWXGVl/1PrYX5 NTyIRsyZOzZW0kGXRfnTP/y010Y046+eOnjyrDFyoeCXr3dY2rhSP0rDsvvbjcWCOP2+t5+8YUiE 761OobSgwEEZ3YSF8wdHiNoYL0Io+Kj1aF6+gbKJPUZdHqWq/3Fz0pgJA9J7icBUeuKgpUm7g8ij BkyJ09YPC8hJY8YPGtJXDA79yb36+orDnVtcqKdsfOqoqXFhytD0h3TYzFYKrDb14nDZ+a+zC5a8 QzVuEEUPidb1UykCHOMoWG6bxqlauEMkl4KYowCCVunlf8XhMRKOLhhfGdLwAiaU/Pz+jyWCbOhD bz0yNa3+CJHET7jrrSfGamj5pv/92HR4fEZ35cMPzx6gZc8tfOc7z14WDuY9H369r75TSqCnIT/4 cboPyUnZL4G0Z3zhdzlL+tz2/IvTom0HVy15+6BRv2fl458fdYRPfubl+4Y0GzkUOtPuDrrOcYgK Ai8A4aJjouqKmAvvP/OJd39cNl5FgEglLR3Z/jTY2q3lz0ZcsuiuSSqGrzp8sKi25ghdOdv2fPJx poVoJj716rMzeqjrT1risH6XXv/U+1+uXTK0flP9K2c/s5VawU5A/Kuf2yHD8gnVZx0vENi+sxde FVv2+y/HXe4Tv/1Rqrp0wW2DJULJiaNe7937ol0qmSDc//cIaS8Atv/1ryy+REMAAIgmJYwBEn/F M//r72n8uQ6tfvg/B5o9kUlksvqDkhGLvD/OGTKWnRt3VF02Jfqq534d/0CVXRYeJqXle9+984Wt I9/4rl9q44W5Qfd9vPoWnaG0pLii2mB0uECkDI/p2StBK6LVu//39q9ee724D6/fdGr2/H4Dbvrw jxsdZqPBZDGbzaYzG55a8n123e+kYdExYT2kAKTPrJXvj/Ocy9xZ3zz+VkZgU2p4CKVbvt66aNTU i+5YmRwpdR/7fv2Rtj5l6Fdp2Ha/8dQr8a88OmH6C2umPlGRdzq3tMpgtToctry/3vvvjtKWBvox 7Pp6ffGEG+MvfvC/2+9zGPUGo8FY/ssbt717qMOm20aom1NEpk+NUzEAErmcAFFHD75e5QIAoMYD x4+ebnap3FGd+cNp2exeMRcNnDTIZa202qlIES6Tigk1VR39/lRJ836QvJvr0XtieqqxxOIQRIpo pUJKwGk+sz7rbE2DesNZc/THbPmsHjGD+k5I72WrMpsNLpeL5128+WTuydMNnqLzN+Z6grEg05Jy iVI7cvCVIwSXzeVy8G6Hy3T4xN4DTS5bUFtWUek4XUJS8ohw6eFfW1hhewjXwLwrW7weIpfAa/eI rA4IV3tp77FSBafUzBiq/3hbRH5wRgE4LxI+5bEnb+jBAlGkxDLAxEx7+vWBJgoA7lM//N/rO2qa nNeo5e9Xn1we8+rjE657ff20Z4rO5lYIuqSUpAgZw5fvWPnEC38Ymp4JqcukvPjZb6564PTx7Epe ldS7X4KKA+vxL5c+traowbUCn09D/sZ8jk+ne48QnJT9akgE1p7xhV+ne6Id98CbDw5R6v9+5vEv TzoAAGyZny55Lf3rp0fc8e8nsm9auqlJ+6AT7O6QNdgCbCn5o/VD1Jrx+1/V46cOWPjp1wN257gi 0vr06x0rKcv4dOV3Yx+ePXDIvHfe7X9s34Y3Ptnf5BDxp8EWopa/eOitTyyfVFtMhJOFJw8YNjBK TtxFm9/74NyMJKErZ/7M588+lrDylTl95ry6evazFWdzSs2cLik1XidjwFaScVqtY8ESSDn7la3U C3YC4l/93A4Zlm97Jfd4loXM6JGqyF/z21EXABz9bXvx3H/1UFHzz1nZqqlgtAAAIABJREFUgacT 7fCDDV7+DwBWhr4eZV5SpkxytXgJ4L4K+TuRVreflwAYberosaMjGjZLFPEXjY33vHTYN3trsNh3 fPzBH71uuySOlO754n+/tyXJDQCt+e3Vu1+0PTZ/QnqsQqLP+fPj7z/46Oejekjo3/zBUpYvPrLj YEpibHhCWkwvuYQTnOaa8rzdm9b88tOaDUe9Tp4FAM7MVQvmlcydM2F4z9gIrUIuU4THR8TY5A0b A16KTps2alxa7RqYv9p685ua/lq7pfjK6xPio6hl19of89vcm97P0rCe/Pyem/+eMPW6qy4e3j8l tvegXjJOxHH0RP5n/9txnrB3vHTnrceuv/7S9F4JETqNUh2dwGg75cAoCHUPRCQNSw0Pqz87iGVh aZ45bCh7hiXgal5H82WFuz82xA9PTOmt00SoZdRtr6nJP1l6Zn+Z3ualSqeOqiOfF0tHJqekanQ6 jlotZSfLcnYXllY3rZf40oKMj6pj0mPj0zTaCKkmQcmyDMNQQ1XBydPneowGEHMdoWbHwZ36xJTe WrVWLBazrEQkV0ncEm+fsFflZtnjh8vkKiLoW1xj6C2YxiqbzURYz+WGvSd4q52OTRfLpV4WEIfF uM3GBRMql64L1kQALSOS+MEjxw2tP4PJkoaMSvLEKd0l9drqt5364r55B666ft51E0b1T0mPpZaK gn9+2rZu9XebswxezlzUvPOlRd9F37Ro1qjBg+LVgj77762b1nzx5daCpvPH+XgaCiDmOr6c7uvC DvpJ2a+GRIDtGZ/4fLrnkq95ZcW1KUzpj88u/6HwXM+fs2tfWjrsw9enTn7h32fzFn7caM60TrC7 Q9hgC6yl5I9WD1Fa/eezi2Q1D99w6cCRV6TZK88e//3df3/wxd/5NsmGav7x2yYMHD4xVchY+XGz VfvRYAtNy59wiaOuSqyLRuCdVkNV7u5ftv/0zWcbT+gbJmOhK2e+/I8X77j2j6vnzZkybmhaQt9e lrLCs/u2/rz3r59+2n5uSkC/y9mvbOWc4CcgftTP7ZFh+cR+6mi2e8ZFbOGWrUfdAADuY3/9XjRn QRJ/+ojXuTh8FvofLElJHRCUFdVTCuQ8lwAA4FutfbM6eOMndxyinfbfbU9PpDuWjH1sg7mjo+lA bI+71376wACm6scnrnxyx4VcEgihjkHCksYv6qmzFe1672R5FxzSg0SmTFyQpiXTf1k2M+sEALyl jXxTF3WeTzxYU75YX9F8yTCdBACqaxwtLdCSCC38+Zakpc7/AJBxTLhtmRUAVt4ru3qM91O8reiM 1WC87u2ezUcBaDWe1yqKZpn1AGAjzIKYpN1SxWi75b3ywnujEkbbLJ7Pfq/UPhoZX/9+w2WC+dqp WGXNEX31zlerX/n5T31ovysk8WtWWU9xaz+tqN74zEO/vNZ4mWFJfVo9GOrtzz8Zujh9D2O03RLK cive9O53N8xL33b1lOFbz3ai/YivfXjt1/Hsl04Sc0h/g/i6/rW/NVJniLkt9S2r9aFZ4BcngX0K 10CbSCN4uThHAbaoHGWirjFoyvkRef+Zt41NgrNbVv1+qjNO0Nde2KgxN18zQlP89YvvbPU2NSlC CIUWkWmSh4XJ3KaCvVVNRwXoCog6rMcQrVgft++3wWYLAPwjVeyWna85MtpuGW23Nl9SJuMAwGbn W1qgJffNYsekn68PlEwCfx5wS0Tk7mvFWqX3bgKMWCKYKqVi+tdxlY8B13uzokgEFAD+kclvM9YA wLPVZe9rwp+tLhMBTXK7ACDV5XQRUv9+w2WC+brq7N6Fj/Z44Vne6bg5pyS03xWS+HMP3/1o6rNP HDuQ86+8pvHvl/o3sUSI4vxAE+F7DD8V54aw3LRp83//WsRA4urN76o6et/haz9f+3s8++6n4txO EnNnKOdu/9rfGqkzxOzX6yZHXTD7/9czM/SVaC9jAVCAL3W2w7JukitziYnxLAgmk7Hd5tXtlJRj Zs9KY5xHN7TjBMMIIdR9sNHDYpVEqDlisnfMxXGdisy9opWhByM05JfXFJQC0/JVAlaq4BSaGUP0 H/wZWaz3r7fyZoXac/9/v0T+njay/q7FEYns49L8+mXuNFTVv99wmWC+jrlowK33j5/We8A1t84P 9XeF4PWjU554/sUHbT2L+t338d3NlvFrp3ygiQhRnH6FcW9UQgjLTZGa8MjKW5657c9xKR+ckXSe /YivfXnt14Hk71HXGWIO3W8QXzd83UmOjdC9bnKBI/j9/+vJBdLwEoAn+f9D1Z6z8IUMIwnvNXr+ c08tGKq0b19xxV3rK7rgDaegEEdfvOT95bf0sm15/ObFG6sv1GJACHWortz/n5H16HnxdQlqZ/m+ jyZn5vrYaT+4/f+H9yHfvhScQfuc1aWOyuJFH6f+c6bR3YZW4znPAv4+y9BWbOLCNWuWDDSsXTTz uV1d7I4FnpT91pV3N0IIBSAk9/89Gs4IQAHWdPnknx246PUXr00M06rVarmUYwiAYDjywbu/XXDJ P9t73ptLZiTIlZqw6CiNjKX6jHff+hnbGQgh5BsSnTjyimiFmBMrJFIZS8BVsTO3qF3naWsoM4fu O84P79fW2Qep2+ky1fyToziU598NXtQmeFJGCCHksxDm/wBgZehrUeYpJslZMX+oy3f7JyJtTFKk 3GrWF2fn15SXZGfu3vjdln2lXfqiRkCIJLpnr7QIh8NmKTp26uiOnz76+M8zXeyWG0IIdSBOoo5W SF2C22HXlxnLDuWfOtGBAxc4XDBnqStCy7NtmwWF8m63O6nawvJC2+eERj7DkzJCCCGfhTb/BwAL Q3/UdIfR/gHcB1fOGbayo6PoDNyZr1418dWOjgIhhGrR6vxtr+R3dBR+oEXZW1Zmd3QUDfECKQvC DeO29iDoFPiCVTeOW9XRUfgBT8pt0eV2N0IItQ1OeI4QQgghhBBCCHV/mP8jhBBCCCGEEELdH+b/ CCGEEEIIIYRQ94f5P0IIIYQQQggh1P1h/o8QQgj9P3v3Hd9E+QYA/L3LTprRJunei9LJ3lCmKCDK RpGp4E9BcaEgCCoqIi4QUBBQWTJlCiLIKtCyaYHSlu6ZNm2TNHvd/f4odKZtrjS0hef78eOnLZfL c+N975733ntfAAAAAIAnH+T/AAAAAAAAAADAk8/e+f9whLzNNB8TjUNgepwspluzmFYrzO8LAAAA AAAAAAC0B3bl/05W/JMSJ1dzrc4Cehxd5JkOC/Rq2qPPGAwAAAAAAAAAAAAHsqv/v4ZGbHfWm7Fa eT6HQEPVzBVFgk56hmNiAwAAAAAAAAAAQMuw9/3/22zzT1JdnSYAhBCPwN6S83prmS0dGAAAAAAA AAAAAFoMhfH/GmoCwBF6tZzrZ6a1aGAAAAAAAAAAAABoMQ3m/3xbg/s11ARAI9H0Mm4LhwYAAAAA AAAAAIAWYjv/F1rx5TK+v8nGI/2GmgACTLRQo72zCQAAAAAAAAAAAOBxsp3/R+vpQiu+oMQpoIEm gL8Fxvp/76aDgQABAAAAAAAAAIC2yHb+72umI4S4BPZhiVOwsW4TQJSBMbKCVf9TNvsLgDYFp1EY 8aGNaI8xAwAAAAAAAEBbYzuz4hIPfmAT2Adyp5od+6MMjLfkXAZpY3QAAWHjj08sXDpk8aYLN85d Obp8nH87aPjABJ3f3n70VtLZC1tnxNg1VgPLvdvINz5etm7zhn2Hd586e+zK5fUzfB5rKk49ZgAA AAAAAAAAttl+Y1+PV7/ezyKw90ucVks1yWxLI8k/QsjikAir0aVRL7w8dvTQzh08nTmEuiDtxsld 2zcfTauoOxbB44Dxu0+YGCFhIhQUO3aA9EC2jGj6Qy0L50ndxWxCLZcpDE0vTY8YNrGzmIkjSZdn BgVsS7xrbWxpjNdt/k8/z+7IxxEiCZNeU6GqKMkrNzzeER6oxExtbwAAWgjPs++bYa41qgaSsJp1 Jm2xUpZckJVcYXzsVWObgNHYQiaNtBhU5kbrWgAAAACAx8l2PldIr3XHxiTRfLnTMYFhZAWroeQf IVRMd9xtDjtk9NtfLXohUoQROkVBQa5C6OHbedjrnQcM7fLx1M8vlT/2JgBSfe3AX6lRL/jT8s/t OydvhTtcTDRixZ/Le6t3zx6z7JK5ycUtd0/uutZnVjRPfungvxlNHCma7wsfzAxzsuQeXrFizbE7 BRWW1mhjoRIzxb0BAGhRpLkiV/Mg1afhTAFPFOjhHOgeGJ2VsD+73MZ4MU86rlvX2WFSY8Gldakl rdwAMF8pb90AKrWRMAAAAICnnO38/y7bQiJUM9FnkuhFFbvxdd1jO+YuB3fu/fbXP8yOFhpz//3u h+/+vJyrJRFi+Q57a83KsWETPph7/KXlVx77/SVRcuKzGSc+e9xf22xkxc21019ca9/C3OiYMAYy nd/61e5bylZJ/RFCFGMGALQeqyptX1Keqep3jO3jHTMq2NMvoMcQ9X/Hy8ytV48AyL0BAAAA8JDt 17mLGdZ7bMoPUaP0dHrDvQOaDZd0nTAmklt4+vOXZ76zKSFXW3kfacw9uX7tqQqC5tZvQHA7eP++ PcF5Qj4NI1VFJVq4aQcAUEca8vKuHc3XEBgn3MuT09rhAAAAAAAAhBp6/o8Q+tNZ/6mMQaOS/kUb GPPlvDVSrRlryayRKPlv2VzdLvnlK8V1+heYSks1JOI7CXg4QvCKZQvCcQwhRFitkP4DAJrJWlAi q/AOFvKdpVhODlQmj1kCh9faIdjWZgMDAAAAngYN5v/5DGKvUD9ZSe25TaSB/nbLNwGQ6juXrtT/ My6NjJTgpCXrft7jSf5pwTP3HpgTXmefGeMW9PvwiKbOoj6v7ty5IFJV73V0Rr/lhzaOd0r85qUp vxXUHDUA4/rEThj/4uDOkcGeYj6HiUwalUIuk+VnnV2/ZE/Sg361tPC3t+59I7BGfwfxpM3nJ1X9 ZpVtnT7hq+s1hmKsjCS6Omjz5VVDZv5VUu/40KLfPLpzakCNVbtPWXdnysNfiJIds8Ytv1y5Ztx7 6tqjizozsre9NHp9Up2BH7m9vjj+3Xhx0e/TXv76hgk1g70xU98blQH69Z8y68Vn+4YHSLmkVp55 K/7o9h27Lsmq3yHBXCb8euBTydZx4zZneMTO/3TepG4uigvr5r7zVzo7bPLi9/83NJCe9ffiN388 W1p9DO07ggA8PUiL2YCQEKcxMIRIhHD3UX17RzEq/9GafPvoITmBEF0sDerp6ebO4XAZDKYqaX1S bs0xPJlcj84+/mEuzmIWA7caFRp5WlHGtWKlvlZ9gLn4DpgdLEi7fexAKTPAJ6ynu5snh2HSq4pU RbdyMzP0ti4SNKcQ7+BOrm6eXDYTWdS68kxZxuWCElXNmplKzDg/fFa3DtIaveDoXn0/9KreH6q8 uF/ul1WuHuMEvdwz2hfTxF8/dbb+KLaS4H6D+w/Oi9t0v6yZQ+smsHkJbMi0AQAAAFBLY+O5nxAY GSQaq+JQ6tMfaaDPk3N/kuosLdoLoB7cfeS817uyiJLjvx15TGPvk/rCpPgrqqp9Rpd07Booaok1 Y/zO7/727ewIDqEpSb+fnKkyEjiL7yL19o3oL7y3oXrzSE3enfj4UhpCCDHdOkYHCq0l925lqB7u akKRra6920lDYdK1eC2OEMKcg7p3EDcYhCb/VvwVGQ0hhFju4Z0CeJbitOuZqodrVmVVfQsiCo4c OPdmzHDfZ8f32pJ0oebNOiYaOGqoBDMnH9mX2NyU196Yqe8NRPce8dEvX4wMZpvKM1OvnVfSXYMi B4xbGDts2Jr352y4q6u5Jc4uLh5DXv3901GeOEI4f+DE56PvKuev+aA7D0M4FvnC9KHbzu2SV36B 3UcQgKcHncMTIESaDQ9eJCJNpcqSLDrG4jh7sDEajiOMERDUe4yPM+vhVcZKZ7IwZHhQbnEXj64T Qr1daKTFrCtTa0mmk0Tk28/ZJ8btzr476bK6ST3O5XnE+sT0FtEN+opSHeHCE4c4iUNc3c8nXrpU UWtpnOP9XHSXKB7NalbLlDIdxpYK3LqEuIVL7+1JTC2sWpZKzKRFW6iQazCEEKKzhN5cJmFU5umq xj4gtfrq1mBSn3ezNMzHlRfl6XqxorjuC3dcOiJViYXljp5XBwAAAABPlybmczsqNGaxrFMVHDcz hVfsow2MtxzbBIA5xcxcvXSQxJK9c/Hq049rhDqi4MSnc05UByEa+fO5JQNbYMWYcOiUqeFc693f J0/bcKdmDopoXD7DWH0HSOQeWPHagcoPSV/6bf+y7trzP76/JK7hwRoI+fEv3z2OEEKIOeTT+J+G MxtY0Jp5eNHswwghhHDPaetOLIpWnVk357OrNldNKs/v+kc+dLL0mXH9vr94qvoI4JJhY/oIMcOF 3ccym90rw96YKe8NVuSMH78YGWhO/v2jz9aczNMhhBDu3GnKqnX/6zvvk7mXp6+6VaMTgHOnt77r 73RlxQsrzrl9+OeGcW7Dln3OKv1z1sCdxaPXHnk/zFkswJHcihCVIwjA0wLjd/bx5GCkurzkQTMZ WZ5w+2ICwtwDh0z359FwhrtfjzE+AqMqK76oWKYzaM0mXVVjAUJMUcT4Dt7OZEVi8tX/iiuMJEII MbnegyI6dxZHjg3R/JYi09f6StwnoKuL4v7++LR0vYVECGe59g3v2tdZ0j88PO/K7byqhjhc1Dei SxSXKMq7diSzsLyyFDNcekX0inXpOCpAviX9YeJNJWZSn3PsVk7l5/he/d7oIDGWJe9Jqfvm2kOm tIICtTSAL/ULzii+V6faomFEedZtHbw1AQAAAIAW1fR87nfZlkUe6mg9o7Oe4WPC+QRuxFAhw3qX bR6iZvk20C7g0CYAduj4H9bNiuaU/rfso68vqtr/DRLG4nDoGMLYTkI2Delq3ixadeq2ObKB8cqe o+njZ4UOGP2s6+ldxQ/uq2k+w8b1YJOKf3efqDUnIu4zccve/0UzbKzIkr5t6su/pT6GrcTEz74x KYKtjftq8TcnH0aMCMWtHZ9u6PP3wuhxk7qtvXWxKp/A6D7izGVTPzlTbKWxFDoSEzuXH5o5b+c9 PSZSaAiEIayqZ0x7PIIAOAhOY7sI3WL8OnZzpiNzUVxuqa0GMMxJEv2i2Kkk++L+rDK9jX/nRAYE uOCW/PuX/5FpqqoTky7/3zsMlx6d/Nw7xOQWJ9TOkE2KpK2J1V2VCGPJhds3BT17RXN9u4rv5ckf BMJzDesuoJnKkg6kF1Z1vSfN5QmpaUE9o7w9AvyzytNtlNumYqbIosxK0vr3dXLr5MpJKaj9QgNp KSss0LT/qxsAAAAA2pam83+EEIlQIsecyKn7WPUa17ygxMnf1GATgCOGA2QFvfjdxvn9RKpLq95f sD/3iZjqnZCfPvjva9EjgsZt+m9gyrXr1xLvJCXevXkrLb8Np47W1KN7rr+ypEencaN99v6aY0UI IVqH0SOimGT+kQPn1bWXxuhsHodr63Szsum2Z6FoaZig65CePKQ+tf94ce3++ERRwrUsa6eQyMhA 2sW7VbvcmrH/13PVj+5I7bk/9t2zfc/fLo8gAC2HLun2/uButf9GGjV5Z+7dum2weQXA3KVuspxL +7LKDLb+GdEkAQIaIkruFmvqvD9D6gtul0f6SUUBzqzLupprJy16bZ2cmbSU3JEborzZniIhLq98 957pL5EykfleUX5F3delSrJ1pA/P2YuLpdd9eciOmKkiK5IKS3uFSn08fVwK08pIhKom3rVUyMrM LHtWUmduP46BjhDS69tfpyOYpBAAAAB4DOzK/xuiw8lVrppGmgBafDhAhu+IlRvfHyxVJ3z37lt/ 3H/05y9tBCE7uWBs1r/jXxg1pFePns9M7TccIURaNbnXzuzesHlbfL13Q9sCovjv3Rfe6j4kfMyo iN/XJZkRYkWPHR2Am1P3771d59V/Infn5KidrRPnQ7irtw8Lw+jDVl8bZnMBQiQU1JpJgqxz1jZy ErfLIwhAiyFNqmy1gUSIRKTVatYaKgoVsrTyCtu5P0IIkTr5rf2ZpQ0l0hiDxcERshjUNhJZc4XR jBCbw2Ai1GQmTmpNRhKxmXT6g9QaY4u4NAxh4ZHPh9v+BINDx2wV+CZipo6sKM5KD5CEOflF89PP VBAI4QKEShBCGmUFwZXauZpambOyxaIDAAAAwJPnkfJ/9HibAGhew77atHC4u+by9+/O+y1V1/Qn 2iA6m2V7RxHK9BObvjuxCWEskX/H8KiYTv2GDhvW4/kFXWIkM6Z9c8No4zMkiTAaHac0PmMLIpVn Dv4tGzTFb/iEnpuTLhh4fUY954npLhw4kNUa4901uTcwDCFEqO4dPXCz1FaARMWtvEcIvDlHEIAn hLXi/l9JeZSG/NRpKxrp306ajXoCIRrbiY5Q3fXSeCwGQqTebE+7Gs5nszGEdEZj1bdhCCHSVFSc m2uyGYE5r4F2i8ZjrrsJCMMxrPH6mTTLbhTrO3jzIj2lFyqKzRjXDZWnI4TUJhJx7f0mAAAAAAA7 PWr+jx5XEwDNfeDnm5aM8tJe/uHduVtStHasiebZf/6i6YP86LJru1euPJ7+OPMvkiQJEmFsLrtG 33aatM/czz4fwcdRYz0zSaMy69alrFuXDm/dOXr13pXDPHv19KbdyKjXj9xoMCGEsSRSLoZs38Q6 nOHmnr/SJ80NHjau33eXrvUfG+uCFIf3nC5phfS/6b1hLcjM1JJhbHPKrnVbchwYot1HEADQIGtZ doU1xFkc4cpLzK9V42Msz3ARDZGqHGW9NL1eto0x3GMkLIw0ZCsqHpR6UifXmkknmlWTdSbXUa/Y WwgCIURnsZmo0QofWfMKc0q8OrpK/YIzSnK4IjHKRwgha1NxJXBsz+3H4bTX/v9VGto0AAAAADy6 Fsj/keObAHBp3yW/fjrWV3flx/fmbrYr+UeI1XfuoteGOuMIhQQv0F8///bf2mZ8dTMRSnmplcQ4 PUYN9LpwosDEEEc9879Fc18O09xNU4k61r25oTuJuCZVRe28lSbyD/ZgINJUXFhmI1sldfm5City 7T55Wr+LGy4UGVujCcB6/69DV2d90GvA6BExomf6com8Q7viHuN+rmLP3tAm7D1a+OzLUfPWLNIs 23DwVmlz5ye0oTlHEADQMFJ3Jye3hyjAJ6jnM6arZ0rUleWVznbvFx4VwkDqopSbda8FGNc1YliF 6XyRsnJYQDrbvW9EpzAmMipSryqrCqElqzBf6RroFdBzhOXmOVl53QEGWoJRr9GRbnxRQG9x8bmy xrJxQptzSxHyjItbJzdnLp+ubnjJWhLYvAS2jTzZxZmFECpXQIcjAAAAANjQMvk/cmgTAC309fVf TA5mkVo5o8ecH7vXW8CStuPjX87WnQUQ43Cq5mfGmQzbr3M6jPbC0biywcPcnlt2YsDbZQaO2IVN llxd+/rnZ3p8v69jQO2F6dHztmx7xVklKyqUl6sqjGbEcBK7B4d4ixhkecIva07YnOHQknj477Tx MztGvPTrf5OMmgqVWqvRaNQZRxYv2F81dDUtfMLK+X2EGEII4S5BbISwDuNWbehfeSttSd7z0er4 ikfYL4Ts5K4zs3uO6DJnlZ+Ubbm7/3DSI2fVzYrZnr2hT/h+8UqvlR/Ejvp854iF8pz7WbIylU5n NOpzzq77OU7W/CSgeUcQgKcKTxo1wpOPI8TicjGECdxiJvDNCCFEVty4d+d+vb78xvLbf93njA9x 7xI5JNqsK9UZSAZPzGEzMVJddmd/WlH9EWCsFnpQ6MCogIoirZFg8NyceGwMmTQZh5OzFTXKoElx 52A6d1yQe3RYbFSIvkyjUZnNZqvVbNWkZqXer9F8SDXmKkRF3m2tfx8nUY+YZ7sTZr3ZbLRajGZ1 YsrVG3WaLUh9coGsv7O3r193MTvxRAMrBAAAAABoAS2W/yOEdDj5natmQbFTQ5MCRhro85oxKSDN NcCXhSGE8by79PO2sYCJ9p+NieUMcVs2/hcyo48nJruy/ZdTj5LkNgOp+PebN5brP5wZG+XBYykz T2/Zv3HT8TtK5B1e/8VSmrUwKe6mv4+H2DvQPYTLohMmjaIkJ+Hvnf8c2nnkjs3JsxBCptubZ00v mjY5tluwh0TE43J4Yi+Ju55bs585Lgro1a+XpOYI+6LAnv0DH6wBP2trSj5KG6o+u/tk4bMTvL1c Se2l3QdzH72Xe/NitmdvIF3q1jenXIwdMfa53t3C/T1Co0M4dAadTqbk/vFL3COE3MwjCMBTBGOw XQLELlVXBybHJZCDEEKIpGXQMGSuX0dbi/MTtqi8uvn4hzoLJQIOaTEoFLmpsozrxUq9jSqdNJYl bS1k9/DzDxA6O9NJnbY4tTgzIV9WXrdessry4jeVu0d5eAUKRRK20NuJRsNxnFSV5aXer3503oyY HyIUcTcvKH38Q0UCEZPJpNFYDC6fZWHZ+oShLCvZ4NWNw+VjBAzfBwAAAAAHwvwDIlp2jU4E1kgT AEJor8hwTNBy4ye3Hkw08udzSwaScQv6fXhE09rRtCJa0Bu7f387Ai87uPDZRXFP854AALQOzMV3 wOxgZ33BpXWpJe1wqA1M6j9wVqAIG/XPl2OSUxBCq0XSH51dm7GmJ7L//zuKkso5Dpq9WwAAAABQ qeVnXtfg5Co3TS7D9h0YiVBBA//U/uB0BkIIEY/zvYK2CKMzWRhmLTi8+zIk/wAAQB0NpyFEKjQK RWtHAgAAAIAnWcvn/wghDU6udNNkM+vm+SRCO5z1iZwnZCp0uo+PFw0RenVFC44j1w459R0/LhA3 3T2y9/bTvSMAAKBZaG5dPZwwQpGkNsBQoQAAAABwIIfk/+jhcIA1mwAqk///+E9Ep0ScJe4QO/+j 0b400pB0O/kpfrub6dZ7/rvDpEh1dtvf2U9Kxw4AAHhscE5QUHh9vbAOAAAgAElEQVQ4C+lLM5Ia GVAAAAAAAODRteT4f3XUnBGARGhnu0/+aZGzv1v+oo+LSCAQcNl0HEOIUCVtXPuv/Gm7Y6OFTv9x wfPeXCehi5urkEMjlfFrVx8vf9p2AwAANBPm5tNjuBuPSWfyWGwODUNm+YWsgurJUytfd28GjoGO ENI3NuNg+9PsvQEAAACAOhyY/yOEdDj5ratmmJqVzbTeavfd/jGGyN1XytVplIXpuYqSovTbCUf3 nbwma9eNGs2CsdyCQwIlRqNeW3A37U7coU1bTmfAw38AALAXnSVw47HNhMVoUBZXFN/KTUupMy9g M5NemEAAAAAAAA1r+fH/AQAAANAMVQPdA5tg/H8AAADgETn2+T8AAAAA7JTA4T3iGjicJ7D/f5VH 3z8AAADAUw6e/wMAAABPCBdnFkKoXPH0vZgGAAAAADs4avx/AAAAAAAAAAAAtB2Q/wMAAAAAAAAA AE8+yP8BAAAAAAAAAIAnH91g0Da9FAAAAADaAVZrBwAAAACAtsve8f9xhPlY6H4WBpfAdDgpo1ky 6CYr5tDYAAAAAAAAAAAA0DLsyv/5BL5cIXWz1lpYh5HnOboD3IoKnHBMbAAAAAAAAAAAAGgZNCe+ qMmFTBhZRLf2NHJoqPqJPwNhwWbmYAOvgGYpoj+ZUw0DAAAA7Qifz0EI6Q3W1g4EAAAAAG2RXfk/ QqiYZslkmOs0ASCEmCTWy8gpplnz6GbHRAgAAAAAu0D+DwAAAIBGUBj/P5Fp+E5YbsbIeqvA3lA7 +1sYLRoYAAAAAAAAAAAAWkyD+b+AsPFPDTUB0Ej0WoVzC4cGAAAAAAAAAACAFmI7/xcRtJXlrgEW Zv1/aqgJIMjCCDPbWB4AAAAAAAAAAACtznb+38nIFhG0JUpxkK1e/YlMwyGuuv7fexg5LRwdAAAA AAAAAAAAWoLt/N/PykAIcQl8sUIaWu+pfoyJ/YKOX/9TgfD8v83DaFjTCwEAAAAAAAAAeOLQbf6V RzzIEjkktkgpWSkqTWGYKv8SY2K/r3JhkDbSSAFJYTTBdg/nuizr7z/JhVaQl/PaxZKsui9EtDkC V5/N/Ty7scxXbt+feUeta/IDNGZPP+lz7rxgJ5Yriy5i0jkVeSNPyXLb/Ja2BnxU/27rfNF/l67P yoJxtwEAAAAAAABtkO38X4dX53hsEluklKwSlt1hGhtJ/hFCFsckhlhkTPShSI7tSBEyl+UNP1GQ 8diTUr679GUJk4lQsI90EFeepX3sEWA0Nx6DRVpLtGaDHUtH+0u7cTAcMbv5i4Luqm83Gi/G4H8w pMObYjqOEEmSOpNZZTblGsiGjoJDUNtAAEArwNiuW8cEDqjR+EuQhNpgzFJozmQX78jWyJ/OFkOo vgAAAADQFtnO5wpolpq/MklsgUp8mKt+QcdvKPlHCBXTzS0cXSWNRn1RZqLV+SvG7OjKEWNkYbm2 rDXuL9Uy+Z4yp3EiLDev5LSuFSLAWOJvnw/sZyyZdjAzjmhycTIpu+Syl0dnuulCetn9JuLF/IJ9 54jpFnXpZ/F5h0uNFa2xhyluIACg9ZDm1BJdZaqP4biYx43wlHbylLwSlP/6uYLrjrk0tGVQfQEA AACgTbKd/99hGEgkrJnoM0lsvFbQ+LruMowtF1g1Mjsjc1pG7b9hjMHdwn9xI4vzsqZfUyod8bVN IXTli/8pX9waX908FSX5kw/k27csrZMrj4GI03eyd8gd1K0DAPAEIdTrz6YdrG44xtykbsv7+j7j 5r22q3Z4grKiFWMDAAAAAAAP2H5jv4huucOknMzHmNj0hnsHtCBal6jQNSFsrSx3xqWSLHi00uIw XMTEMNJSqLNC8g8AoI4slsvmXyzJITEPP7fhrNYOB4A2Cqc9TQMnAQAAoMgRl4kG17idr7Q09G8N 6GRiL1CJG3lBoEXgIaEhGyOdyLKC2eeLkqnGCOyC4RhCCBGPpTkHAPBE0peWndaRGM0p2hlqkicK 5jJh07mUe2dXj2hLLTu4dMjiTRdunLtydPk4/7pvDLZBmKDz29uP3ko6e2HrjBiuPZ9guXcb+cbH y9Zt3rDv8O5TZ49dubx+hg80H9jGGfFV4r34xPXPNtFzFQDQvrTNC1BjGL2XHUm+F59S47+7h2Z3 tOMyRf0yYa8Gx3PLpVn+dFJN1QgprS7axPpAJf5WWGbGHPLgGPPwDdzSTeSkKppzNv/a436nFAuN jDoWw2XU/qsxP73ruVJ17T/S+J77n/eNMdR7+RMXrhwTNpmp+fJo8kZ1rX3E4zu/FCoZ6uYU4sQQ 0jFkJRRGk0xryMwrWJCieTD9AsZ9f0TU26IaN9Mc1+0vuVb9ZtUWTT6Uc6XGiisj6Vz9CfLi1ZtT 0kz1jg/WqXPM/nB2jTOCOX1oj+kPfyF0sikHsy9VfgxjzRwas8wVy0q++8xNTZ3jwPUMPDfQVayR TTqafZVq7wxqG4gN7d1tU+CDOQ212amdLipMCDkJnWeGucaKOR4smoCu/vRQ2v6Huy8mNPAtH44P j+nGYfBppNVKlGv1iUWlW5JLLuttnrK4n6fbzCCXARKuJxsnzMaMsorTWfIdueqSpjcN9/f339jT NRQzHL+RtiBNp6nxb3YdbgDaN6vSSCIezntwlaNaYBFCCKOzh4R4vOwnjBYwhRhRqtHG58m3pJbd MdYqsJUVXYe8tM5xChcP9/nhroPFLI7ZmFKuPnW/4PdCo61B+HB/b/fXg8UDJGxXBlJr9bcKS3+7 VxKnrVm2qcRMqfpyXC1KHe45Y/uuhZ0ZjS5kTVk3Y9za9DY7vwnG7z5hYoSEiVBQ7NgB0gPZssfe ORDnSd3FbEItlynsGPSRHjFsYmcxE0eSLs8MCtiWeLfRXYvxus3/6efZHfk4QiRh0msqVBUleeWG xzooL7UNBNWYbr3HT5o0sk/nQHdnlklRkHbl9D87tv1zq7T+Qyy2X+zYaRMG9Ynyd3PmMCyGijJZ Tnpa0s0b546fjM8zPsLC4FE88Sd/G9nANhJGyyJUWbfi4wUPGmt5Pp2iPJj2fZLaZYKKxi4dx7ga JolN1AooPbqJNrHeU7l8Jyy3tHgTgLO772+9Jb6YNaUC6x7sJixVnSsxPM6h6XRa9UWZuWqf0dm8 HqKWufgKXH3+HOQVSSfVOn1qmV5pJWk0upjD8peIhGWFNTaRyC2ruFBZJmjMSAlHSJqSS/SKqn/W G+q8Z0tajYlFKi2OEEJioSCM02AM6gr1RZmRhhBCuKeLUyATycor0h/eiBNGQ9W3INJ46L7yHamL n79rn9uac7UuYPTBQS4SjLyTWXyjOXdflDYQK1dVXJDhOIPdWcyi4zQ6wgTuPlsGeMQwHp60BMOZ iaEHzR0YTyDs74LJtMa0Up3aStLpjAARb3gYf7AH+5V/ci7XuRLTuS/3Cl3qx+Yg0mQyZyv1FgYr 1MM12tN1TrTilytZP8lMDW4ixugbFfJTpEBoVK2+kL6m2FyzzNp9uAFoz2gsPx6GSGPxg8s41QKL mALptwMDRvNx0mrJr9DmkIxAoWBslHB0kGTF+fuby+peCRkszvAYj88j+FyTIUVlEPE53bw53bxc BiWmzLqr0dZcFGON6hn2bRCHbTVnlKvPGpFUyB/YwX+Qv/i7sylrS6vWTClmKtWXA2tR6kxFt6/H G6qeJOPiDl1CXZAqMym5uKothszNffzT3FBAqq8d+Cs16gV/Wv65fefkrfBmICYaseLP5b3Vu2eP WXap6ecTlrsnd13rMyuaJ7908N+MJu7qaL4vfDAzzMmSe3jFijXH7hRUtMbIPBQ3EFSiew9Zum7R +FAeTlo1sszkbOQW0nnUnK6jpkw5tuarL3bcVlQdfFw6+JMfvp0UxCGN5dlZKTl6xBK4+nrHxAZ1 iR3kVXimVkpPaWHwiJ74k7+NbGAbCaOFWZO3fvLq1ge/0KLfPLpzqq99n6R0maCkiez1IE+dyTDN 1IjcLRTy3E4m9vst3wSAMUdHuofREUK0MF/3MF+EEKlWln11KWun4vE8kSDzs7KmZ1X/LgrscLW3 c0usmT483COCTty5c3diorb2TSouoJHVRYA07E24t7fyX7huO14I6G1WfnMm82zDtzqErmzZmbLK Twzr0+3XgIY6C5IZGRkPxlnEWLOGdVomMZ+6mbJYZvsQlucXH9E7T+W4TPLKPZ9TfSeCc10metIx i3JHpqE5R4XaBhI3klNfSUZ0F58Tz3r50jChi+e6AR5hZvXOu/LTZQa50VJmMJUYqqIjEq7f6niN qPV0j8Ff/Ez4bKFkvGvu5VqpN3NEj7DlfkyTqvSTy7m75KbK22AOl/9ciMcbwWyWxdLQXsfo3Jd7 hy7zZRnLZXPjcv7R1NmHdh9uANoxLCjE4xkWZtWp4pSVRYBigaXzPxwQOJpPpmakv329LNVMIoQw OmdU55CvQ0WL+/vlHM88VfsGl+7q/S1f9cv5xJ8L9DoSIYzZPzLouyhhz5jgd0uSvqjOCfHoyNBv g9jmUtk7l3L/URMIIYQxunQM/rWT8J3eXvHHcq8/qL+oxEyxfnZULUodUXpixbsnqn9nPfvjiR+H 4yk7lr26046eTm0EUXLisxknPmvtMOxGVtxcO/3FtfYtzI2OCWMg0/mtX+2+pWzLzTCgNkzU8+Nf l03ww4rOrP9kxf6EPJ0VIcRy6zl+1gfzRo14+807F+b9lml9sOzQecsnBrJkZz5986u9KZqHRY/G 9wzu3D3IeFVfa8UUFgYAtEuULhOUNJ3VJzGN77kUdzaxuxo5vma6gMQNCBUwzHcYhmf0Tn4W2z0G HdAEQJr2Xkw8g1nkeitBp/uJReMifF9zl3wxkCj+O/O/dt1hGsO5dAxDiM2kczBU6xELSVS0zTEO LBU7M/STo7iDgsVuucUPWwkwXz9pbzpZll18rNaciJhvWNjRGCebp9v9u3fH3dE9+lZiHJfP+4uC lAWvnMu/0kCzN0HWvZclzZp4BfGaiO7KpWPIXBU0U+q5yJ+JGxWfnsnYXeOQ6HXqvxLVh25jGGH7 zGZwnT+ODZ7hguXmZL2eUJJSf8Pa4+EGwG4YRnMVOA0M8vogTMAnzacSixJsZbFNFVjMI9D7FSGm l+f873Jp1sNiQlr0R66ligTRy92l84IKzyTXzpAtFZ+fTNtWdStMmuJupy3ixfwaxJ7YQbRaXq5+ +NXzw3hsk/LTuJx/qmoq0nzjXuY675ilEteX3fOvF9jIe+2pZCigVouCpxjOE/JpGKkoKmnTfTBA Xawecz+c5EdTJ/z42vy9mVWN+8biyztWvHTq1HMdCo5lVlVhzM5D+rjg1tt//rKvOp9HCFnVhann D6XWXjOlhQEAoBa7nuqTCN1gGm4w676KkcAyLFZKAhtuAljQsmMB6PSG3MqfzOY0mXyF3ICPCJ8j kEzxyj2d1Z6nqSPN/6aX/c9VEhza8aKP7rJMdbNUe7NMfaPc+DjfbqCITMkoudrRv7erdCy/ZH1l oBhnbJATkzQeTKs73ReG4Vw6zdaZQrJbaKAmhotz3/KCmWfzrzTRGIS78NmBTmxPLtOTy3DjsiJc cVR3KEw80kfohZHl+cWHbN1uWW0n/5hA4rm5k+cAjjku8f78u+pym0u1y8MNQKNoLqsn9Vpd+2+E WX/w5v3FmUabT5CbKrB4Tw8+G5EXMsuz65QL0ng4s+Jjd+cID4Ek2VBc818sxmxdnW+zns9WyAPd pGJBGFZ+lUQIIYGbSy8mUueUHK2TYJOmS0V6i5QbLeHQC7T12+LsrmTsRK0WBU8xHMcQQoQV5uRp TzCXQdNGe+DW9K3fHMis17PPUnz1SHGtv7CYDIQwJsuuV4MpLQwAADU90tvrOpz4UlTaSBOAg4cD tGoulxOzBbgXn0lDlvb83JQsys54Tlk+OVg63EvQJ8AjNgAhhCwm/ZXcknW3ZRfa5FMgQlu6o9C7 ly9vQhDv15saM0IsqetYAWYul/9ZWveGPefe3eB7Do7HqFh6Lv9yI/flGDM2wu+jDi7hbAyRhEpv ytcaC7RGjZlEqM4gF6Qzm4EjVKozUTqvgn1d+WzMolb+nqmxnfwj1E4PNwCNIc33irXFBEIIWaxW tcGYWlZxKk91v/5Iow81UWAxuoSFYYgo1pvrr0KnM6pIJGExnTFU3FRxIfSmUoRcGTQ+hhCJEMLc ndgshBh+oXf9bG+MiEW3OexN05UMRVRq0bYK4wUPnvX6xOf7hrixjcXJF7d9+9P2W6r6wXP9+k+Z 9eKzfcMDpFxSK8+8FX90+45dl2SP0o+CFjxz74E54XVuZIxxC/p9eERTZ1GfV3fuXBCpqvdaKaPf 8kMbxzslfvPSlN9qdfrAuD6xE8a/OLhzZLCnmM9hIpNGpZDLZPlZZ9cv2ZP04Cyghb+9de8bgTWa scWTNp+fVPWbVbZ1+oSvrte4kFRGEl0dtPnyqiEz/yqpt8sqXxMNqLFq9ynr7kx5+AtRsmPWuOUP hq3BvaeuPbqoMyN720uj1yfVuWxxe31x/Lvx4qLfp7389Q2qZy+1DWQO/CRu/QghhhBCpO7k272X njQhjOc/dOrL4/p38HNzFgk4N74cO+/Qg/GPmVHjP3t9QJCPp7uri4jPwi1GjUKWefvK0a3bd18r tdlxiOvba/wro5/tGxHsIWKT2uLMlCvn/tm758ytkqY3jeU37JOfFo0LxvP//Wn+4r+SazTv23e4 qeF279uDj1lvn/z7vj13EuaUO/fNwyNCXpw64tCXR/Ia/0pKC1NB83l1584Pgs+903fJaeceU9+c MmZAhDdXl59278bpg7/uiM+v8SiQ6uFGCCGMGzBozPTxg/tE+7nxafqy/HtXzh3Ytvfvuyprc8Oo Yk8lQyVmSie/48pg1Z6jdorasTeoV18OKSnNCaMqnFa8AFGvvuxm92XiAYwbMGjMtHGD+sb4u/KQ Rl6UcSvu0OEk1uh5Y/KWv/RT6oNgMJcJvx5Y3v3W0sHvPOroda3aBICx/Hk4hlCZwdxu3lDEcbbt 4RRJpbL8l2vlv1xDLBY7QuLUxVX0jJ9L72C/7q7Ml47lXG3gRMIwrPXmObKcul9a5OPu/2D8Klq/ ILEXZj2XLs9suWNt/wYSBl2K7TH8H6zJLzT4lxgBrpQvvlBwvNRQ/rA4DOzpMkhU50swhcFCIJqU x2Ig+99NIG/cSjnkGrIq0PXnofiiM5n71Q2dmM083AC0UYT6l3NpB6m0ljVRYElLqZEkEe7KqfVi TiU2m8nHEGk0N9zKVo3OZUkRIgwm+cOFMQwhRKrKyvaU2Lx2kBUlBptFt6lKpi47qq/HUYs6DsaP nPr+9+/F+jBNapXByhT6dh256Gd+xYuLDhXX3IN07xEf/fLFyGC2qTwz9dp5Jd01KHLAuIWxw4at eX/Ohru65n4/qS9Mir+iqh6UV9Kxa6DokTbpAYzf+d3fvp0dwSE0Jen3kzNVRgJn8V2k3r4R/YX3 NlRvHKnJuxMfX0pDCCGmW8foQKG15N6tjKr7T0KRra7Ty8RQmHQtXosjhDDnoO4dxA0Gocm/FX9F RkMIIZZ7eKcAnqU47Xqm6uGaVVnVd7lEwZED596MGe777PheW5Iu1MyNMNHAUUMlmDn5yL7EZtyb U9tAQpF1Nf4KD3fyje7oRWMw6Qh36vH+L1/NjOI97GNndhY5YejBZwiuX+++HbHiIll6QYrGRNA4 Yr+Q6KGTOsf29Hl15sprdZI8VoeJS1YvHOLPQYRJU5ybkWPmeQX3GBvZa+zMV89s/nbZL1caHvgR F/ec9eMPM7sJlJfXL33v5+vlNS6zdh9uSmiBEaFcjChLTsm365JO5OzftG/cNy8FDFt5IOz5Q4cP Hz977maB2vZnKS1MGcZwDhr6+vTF0zpz1XlpWVlC3+DO/UM69xseu3HO//5IelhiqR5uxPR98ctV y0b6skmjqiAnOZcUB/j3HP1qr5HPj/z2w3f/SNU1KwyEkP2VDJWYKZ38jiuDCFE+Re3cG5SrL8eU FOq16MNoWvcCRLH6osL+ywRCiB00YcXXS4Z7sxChK8lOS9bSpT4xI2f0fB5DyHr/53rL40IXZ0EL jF7fSk0AGL1zWMAbEoy0VJwssjkSG+bl7f1phLMfZrqcmvNFlv5xjoRKkiRJIoyOs2pk+3SuaH7f wOdZGGq0iBiNhhsFhhsFpZuTJRtGBw/nC3s7YVfrt2ZZCSNCGJ0pZSDUSqO8GopL9ihd3xG5TPLK jZOJJvswkKF0R07Do+JT0sIbSOvi7sRBxKnknB3FNdIUjO7Cqvv0HyHinqyiLMxV4uU6iqvca/8D ecJwKCFZberwU5hk1TCG9Nz9DWVNvJli7+EG4OlCXC3SGL0FXf0lvhlFObUKBPMZfwEXkXdkFWVN r4cxLMhZipGyYlXqg5WQ+SqdDnHZhHb7zaK6Lxe0FLurL8fWog5Fj3x9ze9B7rJja2b9eCC+wMhw H7x82/IXvXq9EOt8eE9Z1Z5lRc748YuRgebk3z/6bM3JPB1CCOHOnaasWve/vvM+mXt5+qpbzazh iYITn86pHrgQE438+dySgY+2VZVrEg6dMjWca737++RpG+7Uuj2kcfkMY/UlhMg9sOK1A5Ufkr70 2/5l3bXnf3x/SVzD47gS8uNfvnscIYQQc8in8T8Nb6gDtzXz8KLZhxFCCOGe09adWBStOrNuzmdX ba6aVJ7f9Y986GTpM+P6fX/xVPUYgbhk2Jg+QsxwYXeNN80poLaBlsTt817djmhh7x7a9LoPkyUI e/2Hr2aGaq7v2br/fEqeXKEoV5TJy6vObsvV1UO7flfrFg7jdflw47YZ/i+O6fzDtfiac4FKhi/a sHSImzH7yOdfr9qfVPm8H+O4dR72wvTZL/iwdNqGSg3G6TBx8U+LBnub0na+u+jrk0W1o7f/cFOC O4sFGCLLyxR2lmZSefnLGQvkS95/bYjPgJfnDXh5rqk8/dK//x7YfeRUisr6CAtTRu8090ufy5sX PrvpYo6OQIju1mfG11/P7NXttZVv3RqzMrEys6F4uDnd3l35+Ugfy/3DH32w5uh9LYEQwriBI978 9rOxAxZ8vThn+pKztV+DtC8MRKWSoRIztZPfYWUQUT1F7d4bVKsvB5UU6rUoQm3hAkSl+qLI7ssE wvgDFn2zbLgHWXTh+0++2xovM5AIIVwYOuj1ZR/O6MKz8RHcbejSdQ0NBk9NZRNAJr3BQ1XZBMAg Kc0kWA+dTndz4nbxEE+NCtgyotO+LkIxMp+/lb3DZrsQTfhOT89nJNwOYtHUHj7DG5/ZuKURJnMp gTC6cIwPi4kQwhkxgX67n+swm2NMNdaPFuezaPWOLeYi4HjQEGk1FhhsbCBpMuYaSITzp0aIPB/r FMA1g9DvSVfrMfqgYHEXP2l/BpmbVXyuhcavb+kNJCvLqBuP8XBluFQsXTo06hsfOoYQm47XPD31 RUW/lloxlvOnsf5jRLSqgsJkc4d08Pt9ZMTHrg082CNNp6/fm5GkrmALPxrScYkns95yzTncADxl yMKsgr0akuvm/Us3cVBVDUBjDekUstSLTupK16Tr69xL4Wzxwu6uUVXNrjTWkE6hX/gykKni5xR1 1aVYUyg/qCaZUu8NPV27cB7tstRQ9PZXX46sRR2L5unLOLds9sQFu+ILjAghsyzu0IUyAqNJXF2q 7y0w8bNvTIpgay+sWvzNg3svhBChuLXj0w1JJprPuEndGp6WtrVgLA6HjiGM7SSsO0KNVad+TNMy UGS8sudougUTDhj9rGv17qf5DBvXg00qzu8+UevROO4z8feE0zeu2/jvyu6ZHVqkXyEuHrx4+Rv+ 99e/On3asq0H/7tyPel+Zn6pquaIIES9mXRI7Z0rqVoS50klvJqFkxk9+/1h7pj63FfvLfwzqaqz P6kvvnF44/wXx0xec8f2czyG2+CF67ctHewqO7Vs6hvL6yb/yGGHG8NxGoZIkqRwSbeWXPn57ZcG j353ydojcakK0jlk4OS5P+7b/efHsfUrEkoLU6SPX/H6nDVxOQ8GVLEUX9o8/5NjxQTdf8z4WCdb n2jqcOPuz82d5MfQJ66Z/83h+w/bakhd5t/fv/3tNS3u9vwbo/3rnnj2hdHsSsaeU5QCamWQCiqn qAOr3DZVMbaBC5D91ZfD0ILHzR/jQTPeXffmko2XZA/zB0KVdvbo5QbeIsRF4R3MLZY3OrAXAM51 /eUZn95sOp+G1dibhEJZtuVW7oYCo+0GFgznVr3CiWHMlmnpsJtJdSDfNNSfOapvzMCuVj2dJqFj JUX5M+KVvQZFhAvrhMp759nwGWyLTGsqNlgqLASi0SU8Tgc+nUGaL97M+9tm0xSp/itTPzmSG9kx 7FIYoTZZ1Car2mxJz8h8O63qthiL6BD0gScdRwghTCLCEULhIcG/e1WeseSd1PRvCx9lQCGyKLv4 v2jBKDev1QIGm9DuTte02GtoTW0gxnFe3NMtBEMYg+2BIRpP/PkgnppECJEp9zO/zq/TZ9gan6Mo 9RFHRXU8IK5IJxjBzrwwJ7yosOirVOHCDk5dIkI3uWgvZ+RuLLaQCCFSv/lChvfAoKkubj+OlC7X GTO0FgabHejE4GBIr1Wmsuh0ZG2gsdNy9XbKy6bg37s6vzogXHo5ZUGWofoYNu9wA9DOUSywiDSr vjyf4zHQb0hoyMlA//wKQzHJ8BOyXOmYRaf86lz2yXolhbRanDwDDvt7pyl0JQTdz5nry8SRRffH pYztNZuJLaqVF3K9Yn2HBAX+Fegnr9Dd11oqLFaDhcjOy1+TX/3snWrMNUKxp35+sKgDa1GHMl/9 dt6H+4prbA2p0xlJhDC8xt2XoOuQnjykPrX/eHHtOyWiKOFalrVTSGRkIO3i3baVUhPy0wf/fS16 RNC4Tf8NTLl2/VrinaTEuzdvpeW3VAdrB7CmHt1z/ZUlPTaWxyAAACAASURBVDqNG+2z99ccK0II 0TqMHhHFJPOPHDivrr00RmfzOFxb94BWNr1lbpjoHYb0Sfn19Q/XXbf5kKY6FLbIMyDAy9PT1d3d zc1V6hHeiY0QwvGaYdA79h/oiRPK83/+LbNxDKwmm4UGF0a9uv7N1/q6lF3a8MYH264rbb/Y45jD TagrtATiiUQCiokAocq4vG/d5X3rcL5/11FTX503KTr6lU9/KHn15U31nx9TWthupKEgt7T2DQ5Z cenE6dIRL0siOofST9yod/fT1OF26t6zExuZ408czakTF1Fw/O+EBd2GhPXo4bIjS17j0/aF0fxK xt5T1F7UyiAFFE5RR1a5bapibCMXILuqL4fBvfr3DWUg3dm9f6bZnzuY4r6e35LPjXU4sUJUukQp aWhSwGgT671mTApIWAiMiVtN5lyTpUxvlOmM6QrNjeKKiwrb9f0DFuWGREWHSKEXMl5KLjzxuHMq 8/GraZ9Yfed4O3nSMaVKuSGt4OcsrRKxIi31rgQ4KihVXuezvbisEB6HQ8NIK6HQ6S9kqI6lFx8s NTXwKIhMTLo3WeM+xYcfymOKGDiHyfTmsHT0WjvXRSgY6Fmr9cNZJBj44AVJEs/DEXqkUkualNuz TSM6sLy5SFNQsr8lh7BvYgMxGquzh6hb1bbR2V092JUfZBdiD4b6qqE0N3PaZfPCDs7R7uJgqymr rPyH64W/FRj0tNIywm+OD6+7L5sozN3wcHmrrnzpv9qTQe5T/Zw7i1jhzvQiteFyXtnl3NJ9eZqm ZsW2JqemTTQFbe0lGd073JmdNvee5sFo3s083AC0b1QLLEJIr5DNOVYxqoPnRB9BlMDJE1lL1Kr9 +aVbUsvu2uhIhUizaumJEvcwz4keTp34dNKoP59X9sdd2X/1RuLQlhe9dlQ5JFA60pMfJWCFSbk8 HKfh6J666Kf8R4q5KhZ76ucHizqwFnUkQlGubPLygbt6+7AwjD5s9bVhttciEgoe9TrU8gjZyQVj s/4d/8KoIb169Hxmar/hCCHSqsm9dmb3hs3b4ovbYj1NFP+9+8Jb3YeEjxkV8fu6JDNCrOixowNw c+r+vbfr3C4RuTsnR+10cDzK/5YvXH2tkcyK5tZv+qJ3xw3u6MxEpEElLyqQFRTKZGo9UXdOHoS7 iF1wRMplMiq7nhY4cCLfGbfmnd9x7Jbt5B8hRx1ua25WnpV0l4QGifGbxc158kuos6/+uTzxWvG6 fe9ERo4aFPJbZkqDJYXSws1ClMlLCSTlCpxsNWg0cbhxgYuQjiFdibx+BUdq5cUVJCYRSpwxJG+q /qsXRvMrmaZPUYqolEFqK7b7FHVolduWKsZWvwBRqL4cBnd1l+CIkOcUaCicxKTBaGzhfuManPii 0SaATib2CJ3TYR6lRjBT6ew9pdSDIZJSUoemUP9cCyFNmu0Jydvr/tm46d/Lm+r8zarecjF1S3O+ w3wzI+9mRmNLxF25EXCF6mqNW/69bHc8xNX7JfdCfSKR6Z/0suKml6cUSWMbSGhk4/6UUVmdNTkj e1pGdr0/6w/dSDl0w9YnLMa41Jy41Jym1kwcjbtytO4fyeys9AFZ6fW+rrmHG4C2hzSUTP2zxJ4l qRdYhBCyGnWHktIPJdm7PGHQ7L6RttuOJUmz/lRq7qlGJ8puXsxVX9BU/Vz9PQ6sRVsbhiGECNW9 owdultpKgYiKW3mtOdgBnc2y3dmdUKaf2PTdiU0IY4n8O4ZHxXTqN3TYsB7PL+gSI5kx7Zsbth4q kCTCaLXfJXucSOWZg3/LBk3xGz6h5+akCwZen1HPeWK6CwcOZLXQLqa0gaTi/v3GBsHGfcauWv1a dzzr4GdLN564k6180KjH6P/x0NhAbu2FCUW5gkA8Vw8PJkrV2xuv+eaG2cdiVn3x3Lgf1jGXffDJ odyGngU153A3gSxPTMomuodE9R/k+tcuWbMPgSnz0vWCtyP9xWKXphMVSgtTRJd6uOKIVJSU2Rw3 tfHDTVSUqywk4kglfAyV1clV2C4SPoYIVbnSjiSmfhjNrmSaOkVrL2zPye/AMmjvKdr8vWFX6XZA SWlOGPZy2AWIUvVl6/NYS2whqdPoEMJEEhGDYnFv+ffGG28CIBHKZ7TFdvPmoFf27iAbeQT0VMDp OBMhi6ZsR2Ebe4QDAADtwZNbi1oLMjO1ZBjbnLJr3Zac1kv0SZIkSISxuewaD2Zo0j5zP/t8BB9H jY1bRRqVWbcuZd26dHjrztGr964c5tmrpzftRka9I2U0mBDCWBIpF0MNz3zpUIabe/5KnzQ3eNi4 ft9dutZ/bKwLUhzec7qp/mp2auEN5HXqHs1BxtNbv9p9vcZDIZzvLKDVuzW2pF67opjs69Jv0rOu 5w/Yv0Gm3KNfTq/Q/Pz9hOe/XC+WfPjOluTGn/bafbibZk07efju1Pejur02t9c/Sy/VyW1xUccX nxXE7bnc5EvhHA93FwwR8jKbCcyjLNyIekcAcxn8/BAxbi2+Fn+/ObWU5vrV28b+3Ts/M8L7yLZa KRcmHTKsJweZk69fqdswYFcYj6WSsfvkd2wZRKipU7S5e4Ny6W7BkvIoYTTOcecGpeqrFpPJjBDm LHahPXoLnTU7KaWCCBT2eyZWdOlEzSqG4RHZ0aWRQBzSQ0GDE5/bGg6QROgPJ+UN5iPMiNCWYL4C Fo5IncnydL+vTRsQIg3GyNvpxYntYMRqAABoa57kWlSbsPdoIcGMmrdm0cROkgYHMXY0QikvtZIY p8eogV5MhBBDHDVy8bY/fp0hyU9T1d/pdCeRgFn33okm8g/2YCDSVFxo6wEoqcvPVVgRo/vkaf08 WK3UB8B6/69DV/WYcMDoETFDx/XlEnn/7IrTtsy6W3oDCcJKIIzu5l41mi5dHD5m4dqDXw7gYwhj s2p9h/7Kb1tuazHhwMXfLH0+SFA9KK9Lx0ETFm/YsXtBZ1tDXSOEiJLzP746Z8t1tXPf99b89lHv +oP3Nudw28Oa8+e3B7KsmPfYzzYuHBL0cEAwjO3abeJ7fxzc8OWSxe/0fxg1q9s7G1Z8Mvu5fh2l 3BrvL/OCn13yziAhZkw5ebY6taK0cDPgzs++9974iKqpkVlesa//tHSwGGmu/LrrWrM6shNFxzcc LCI4nd9d/f6IQO7D3c3yiv3f6oX9hGTJ378crDtigZ1hPIZKhsLJ75AySOEUbd7esG8DHVVSKIZB gcPODWrVV80PyvLyjCTuHPvqzBjJI49Nr4s/sC/TgkmGLv1xdn+PytVhbO8+b21YvyxW1EiS76hx 4+sPB1iZ/J/gttB1qHXhNEaop8fiIBYdEbfk9s8P/+TB3D29P/RnImP5b5ltc0xkAABoy570WlSf 8P3ilV4rP4gd9fnOEQvlOfezZGUqnc5o1OecXfdzXPO7RVOjvXA0rmzwMLfnlp0Y8HaZgSN2YZMl V9e+/vmZHt/v6xhQe2F69Lwt215xVsmKCuXlqgqjGTGcxO7BId4iBlme8MuaEza7KVsSD/+dNn5m x4iXfv1vklFToVJrNRqNOuPI4gX70x8eWVr4hJXz+wgxhBDCXYLYCGEdxq3a0L8yl7Ek7/lodfyj jABByE7uOjO754guc1b5SdmWu/sPJ7XYcJJNbSAmHvbhoolBNITx/D1whLuPXPJdpJpECFnS/vr4 uzhF7e3SxZ86Wz5gRMSrv++KSMg0SwI7dAz1YBXH/75qX7/3xkd2mv7T2vC71458/9t1JYkQsmZs Xfqh96qVkztM/mbb+KXy7EyZhu7sG+DlzMGRvij+vsCZhrS2SxCpvLFpzizV9z/Pj522Yrt45etL jmdVP7lp3uG2i/bq+rnLJL8uGxw9bfmR8fPT03IVhMC3Q5A7DyOUafs/W7Hq/IO7YlpIt6F9YoMH DJzyHmnRyLOzCuQagiP2DQ2ScHFCfmHNkt+rM3pKCzcHaVY79V6657m3799LL7XyfUM7evPpSHdv x6cf7i54sGaKhxuR2ovfLFrh/s1HsWO/Ozzyk4LsLDnh7OvvK+Hg1pK4VQs//6/ezMf2hIEQhUqG aszV7CrdlRxQBimdos2rcu3ZQAeWFCphUOKoCxDF6qsaqbq063Bh7CSv3u/8fH6esUKpqlBVlPzz /Yy1t6qySQqXCeOdnxdtiPn1je49Z2w8PiY3LVvB8Q0LdEbZ//5xLGL6SI+G4nfgvHE1mwBIhLa2 ++Qf470xKGgCny5k0oUMnIEhhEiVvPCHnFbq59d66M7uP/eQ+tBpQg7TlYXTScuFpLy/n5BuHQAA 4HBPVS2qS9365pSLsSPGPte7W7i/R2h0CIfOoNPJlNw/fol7XEGQin+/eWO5/sOZsVEePJYy8/SW /Rs3Hb+jRN7h9adcpVkLk+Ju+vt4iL0D3UO4LDph0ihKchL+3vnPoZ1H7pQ20Ohvur151vSiaZNj uwV7SEQ8Locn9pK467k171pxUUCvfr0kNZ/LiAJ79g98sAb87KM+ECLVZ3efLHx2greXK6m9tPtg bgu2KTWxgRjLK6ZH/85VW8Dx7dTTFyGEkJl9iV1vvEyy/PTS2RzFexMHRfYYHmgozb53au0PG7df zNWzjpRbP5oRG9ltYAARv6pquBxryX/L57z43+jpk4f17xzoHRaiLc7Pvnbm+NWzhw6dr54SsAG6 e3vfnq7+cuOiUSOXbHN2efPdnUkP3gRo5uG2c59l/fXJC0n/TZ3+/LBeYX4do32MyqLUsztOnfhz 74UMTXXyYb2zYeIzF/oP6dO3W2SIj6ubV2hXAcOsLs1K+Of8kb1bj95T1DiQlBZuDlJz4YvZ+9xe mj2uZ0y0l4BQpl888/fO7TvO5FVPskjxcCOEkD5t+7zpN56bMH1sbM9w/ygPUivPu3zo3IFt+44l q2yEbE8YleysZJoR80P2lO6HYbd4GaR4ijaryrVjAx1aUuwPgyLHXIAoV1/Vn1THffH61LsTJgyK CvGWOAudBG7eeO1H9ZQuE7o722dPSJ/y2tihXcNCQ8KE8vQzG39cv/kMY9Yf0xuOH3P38G/2xtuD R+DP6Z2y6KbrrPZ+Z4PxPx4V9hLLqjFbVUaLTKtLLCzdla0uegKf1zSBIfU7OdhNYrXqLJaiCs3Z 9MKNufp23bYDAGjXaHzP/c/7xhhKph3MjGsPXegdVot6ergghMoVFF5Lu56bOtfVO4HN62XQrivJ b62fu/p2eMSYe9Ojflecwv744P2F2+SlrbktrfyzSbhZl0bf/bu8/Ogn7/7zbUvv56f5Z/t3XXvU y6BN4IV9/v6br3wy42Qnl9czWK13DvM26zIZf/7057aVx08rW/24Qxmk9DOlkgIxO+ZnX/VHB/aH 59LGjp/O97hUbxmaE19k/wY3gxkjk5nGIvqT0EXeFJdW+HNy0ebU4u3p8oO5ygSFicp8C08OQqf6 /W7B+uSiX1OKd2UpElSWJ2VIRwBAu0Sa1Ltu56++p8htJ3Wyw2pRPp+DENJTfJFgaXlx5f83CMWt 9fN1dtNDJjcRc/Ft2UcfSBZ+YzaY3pC35ra08s9lWYlvfBCwdOHdG5kv5xS1/H5+Wn/eKJRQ2nXt zqHCLISwmad24e/P8dl2zEy04jmcffXVD4I+X2o1Gadk1j2H28HPT3cZpFRSDhVmQcwO+FnG4Qs6 fbussKfnC7dz6i/jwP7/AAAAAGjjNgolSSxO1ZOB1vr50WOe3/utJe/NN0UYB0/4ek6rbkvr/vzB sIWfLX9HH1zQcd6WNxywn5/anyntuvZorqv3upKs/Wv3TZwedf7M3tfPZLfaPnfvEjH1rQEjQyNe mDqztY87lEGqP1M96yDmlv+Z13HLyU2WXb8k7PnqL1fv+ss4vP8/AAAAAB6PZvT/fxLgLHFIr5nL Fs/q7GQ4//Xw/x2Wt5OOIC2O6dZ7wYYVr4ToT340Zf7R8qd1N4Dmovm8unPngkjV7tljll1qvb6d bSSMZoEyCFoTzhIHd31x7rtvD/NmyI++OfLLsxobS8HzfwAAAAC0O7TI2d8tf9HHRSQQCLhsOo4h RKiSNq7996lL/mmh039c8Lw310no4uYq5NBIZfza1cch8QDgcYEyCFoLJhr28YrXu/J5Tk48HtdJ wONUXg3VKX8sXn/OVvKPIP8HAAAAQDuEMUTuvlKuTqMsTM9VlBSl3044uu/kNdlT1vcBIYSx3IJD AiVGo15bcDftTtyhTVtOP9r8bwAAKqAMgtbD9w4N9DbrdTqtsqQ0v6JMVnA/8fI/h84mlTU4+h70 /wcAAACeEE9p/38AAAAA2IfOftKnMwEAAAAAAAAAAIC9/f9xhLzNNB8TjUNgepwspluzmFYr5tDY AAAAAAAAAAD8n737jmvifuMA/r3LDntvBNwIiHsiLlqL1o3zV2fVtlpHravuPXBUq63WvXAv1Kq1 rVsUURFciLJ3ZARIIITc/f5wMAQhEATi5/3qqy/Fy/Hke7nLPd/xHIBmlCv/11XR81N0zZV04R/m 0OSWTp6/fk4WB+UtAAAAAAAAAGo0jqGReZkb5dFsMo9pKedxSMGIP48lTnmcTjJBAo9J4jFVGSQA AACUTSTiEkJyclF4CgAAAEpQrvyfEJLCZaIExbsACCF8lmot50u4TBwfdxsAAADVCfk/AAAAfARd 9ibvhAqVv5nJlVTx2f40IWPTxHWUHI0GBgAAAAAAAAAaU2r+r1dScb/SugA4LBmZKtZwaAAAAAAA AACgISXn/wYqemmSnkNeCUP6pXUBOOZxGijK+zQBAAAAAAAAAPiUSs7/3XK4Bip6RoquYyldAOf1 FR/+vKWcp+HoAAAAAAAAAEATSs7/7ZVcQoiYoWam6NZTFO8CcM3l9cwUfPiqEucLQI1Cc9So+AAA AAAAAABao+RsUPzucX5ChvpZolt4Yr9rLu9HiZjHllAdQJ8p4YdaizbrNnfHzQfXAs8tHeBQCzo+ KP1mkw+cCw65enPfqKblqtUgsGzZ8/tfFm7Zue24/5F/rv4VePf3UXboPgAAAAAAAKiVSl6xn0MX LO8XMNT0FN2NZtlPhfkfSf4JIflVEuGHKP3204//2d+eQ6liD3/jvfHBp/rFRYLQa+UzqIkpn5C6 nv07mZ2KSmLKfpFm0TpmliZCJkuSlJ5b9tbcJl6DmpnwaWLa/IsujvsfPfno06EonZZTfvtjXGM9 mhCWycvJzpRmpsSm5X6OFR7Ua2dtDwOgGB3rDj80Mi90aWAZlVKeJ0vOSHoaH/k0U/HJL401AsUR GvA5bH6uVIkn8QEAAECNUfJwbgK3yB0bnyVTJLp9pMKPJP+EkGTup7jNoQzbTF/U10b6+nV+8RqE nxKbFXTqZFhqjiIj/Mrxa5JquMOlDL1XHvr74o6pzctVdiH/yeXDQcny3Ozoa6f/flXGkeLY9/l5 dCPd/Bj/xd93b+vZtMWXHbv69Bo473Dk53crr2Y7a3kYACVjlZnR6ZLIdElk+uu47Jx8nqGTVeNe LboNcTAuYbHYZ0Bs0WJcO6+RTia1YHYYAAAAfD5KHs99IsxnCSmc6PNZ0lcq/Pi+ngmrPv+nDDpN nznQ+vW5mXu4S2f2qPLfVzom5dLiUZcWV2ME6mEzH24e2Xdz+TYWuzVtxCN51/etOBKcUZ3dLABQ K6ikL46HxOa9/zsltLNt2quedR3H1t2y/r2QqsR1BAAAAKD6lTz+n8xTPRMq1d2Xaw6XW/rsAE2g DD0nLehnkey/duV/6bidrDK0joEeh2KliSkytDIAqI/NjY0NOheXzVAiZxtrUXWHA2qrIcVia0gY NQRaAwAAKq/U75JDRjkqNXN5t1zeFInORxYIVBJl5DF7gbdl4tnFa25lfH7z0D8lmqYIIYxKhfQf ACpIFZ+SlMkSrp6R2edUG7bWU79Y7Efw2i08+/RZwPNC/z05M65xOVZFaDSMWg+tAQAAmlJqPbc4 HnPMIGdIhnrjNi653MkSnU1mMiWl6cyRMuo++6evzROPfbflegZL+BrefXlw6o0+dmq8c7E2U9yY 0XHm2exim9qN9fOb4SI9Mq7fwtuFZ1LwOi498+dA3Udrhg7fHV+4E4MS23n6DOzbtZlLPWsTPRGf 5GVL0yVJSXGRV3+fdzTk7bxajvPkfce+dyp072QyeOf1we//pkraN9Jnxf1CFRHfROJWELTyrm+3 0SdTPjg+HLcfzvl941ho15bDtzwe/u4vTMrBMQOW3n2zZ9r2m83n5jTjRe0f2vv3kGL1F8Vtl11Y N9Akcc+IYase5JEKosT2bQf+r3ePDk3qWRkKWVlyxPPAaxePHb0SnPLBPimxY5d+Iwd2be9Wx0KP k5Ma9yzw2qn9x84/kRZZkUIZ+2w/tbRV8IKuU4+mEt0G3caM8+nZvr6lSJH89Nb+tb8dCJa+axX1 2/nNW6/jMXxM3x4dnB3NxKxMEhEccO7AwcO3kxSfNgyAmoHNV+YSYkBzeBQhLCG0Za8O7VzfVrBQ PQ09d0bCEMI1MavbxtrCUiQS83h8acjvITGFS1zyxVbN7BwaGRuZCHi0SpGeLXmR+CooOSOnyDWM MrbvNK6e/ovQv0695jvaNWpjaWEt4uXlSBOlicExEa9ySlqdxtGtb1vP3dzCWizkk/wseVpE0qu7 8SnSwldmdWKm9ZzHtGxYuLODa9Nhpk1Be0hjb2wNT32ze0pUd1gbN3sqO+D+P1czi12QuU6Nuw+y EmbE3tgRnvqpT3D1isWWgZFGBgcE6L8datCxc3e1Kue3t0bDqPXQGgAAoCkfq+d+SV/BY0l/qUit oRuXXO4kifg3M3m+JrsAKBOvKfN6msQdmb7+VlZ1DUqzOQkhAYHS923GNW3cwslQE3um9JpN2712 XBMRk53yMvxphFTB0AI9YzNb+yYeBs+2FdyNstmxjwMCXnMIIYRv0djNyUCV8iz41fuEkUmPKtY8 bG5CSFCAjCaEUEZ1WzU0KTWI7LjggMAkDiGECCyd3R118pNf3I+QvtuzNPL9byFM/NlT135o+qV9 j4Ftd4XcLHyzThl27tXdlFI+PXv8UYWTf0HDQfM2zu7mICJMXnZyzKtopY5Nvdb9Xdr2Hz32ys61 C7cGFlRc5Nv3Xe67sKe9kFVI46OfxrAmjg5teo9t2/PrnmtnTtsbJi+2b9rA2Ejftdec9VM72fLz sqS5Kr6BfYuec/7Qy+w750zym/2q386Ea+s9a+uynvWEeWkRYUHXM7jmdV06DZjt6eW1afr4bU8+ VRgANQdXpKNPCKvMfbuQiM17nZESyaUEIiMrIcWhaULxHOu262dnJHj3LaPi8gUUyX37saaNrVr4 NLA15rD5Snlqlozl65oa2nc0smtq8fj445dJxXMgWqxj5WnXtJ0hNzcn87WcMdYxqa9rUt/c8vqj 27czi2xNi2y/cmvuqsNRKbOSMpLklNBM36J5fQtns2dHH4UlvN9WnZjZfFlCuiSbIoQQrsDAVsxn FBmx8ve1D1hZTkFvMJsT+/B1IztzHVdr81uZyYW7iSmepZupkLDSRwlp1dC7l//k8uGg9mPcdCS3 yy4WWxbV033zx+57+5c3vcz21RBGrYfWAAAATSnjeW7nDBSRAtU36SILpRpFjN1yeT9qtAuAMu36 y1wvk5gTY3+9V3yc5BNi4i8tGn+pICrDnn9cm9dZAzumDLoP/8ZZrHqyZ8iIbY+LZIocsR5PUXAH yMScWvntqTcvMhu6+8TCVrLrv06fd6P0Yg2M5MLyaRcIIYTwuy0K+O3L0sZeVBH+c8b5E0IIoa1H bLk0x016Zcv4xfdK3DWbcf3wRUn3IWZfDOi4/tY/BTUCaVOvfu0NqNybR/6KqOAtCmX65ZxtC7pZ KKLOLlnleyLkzXg/JbJo5tVn5Lg+dgK5rKBDRNRy2uolPe3yw/1n/bzpXLiMIYRQYifvH9Yu7t9p xqq50SPnFRtaoy26L9gyrrlFjP/6kb+dDUxU8Cy7Lt2/tK9N2z6eRv5HU1lCKtDOApdRvy7r6aR8 umfW4k2XY+WEEEIbuQ/33fJdh0nzJ94d6RtcZBJAFYUBUHNQes3srEUUm5WWInmb/6fdCb11h1CW Tt1GOuhwaJ5lndb97PQV0siAxOQkea5MmSd/31lACN+wycCGtkZs5qOn9/5NzlSwhBDCF9t2adKs mYlL//rZu58n5RT5lbSdYwvj9PATAS9e5uSzhNAC8w7OLToYmXo4O8cGhsa+v3LQhh2aNHcVM4mx QWcjEtJUhBBC8YzbNmnrady4l6Nk18t3ibc6MbM50X8FR795nZ5Nx+8bmipSnx59nlzKpTDvRXx8 lpmjnlmdeq+SnxWc1ZSOmX1dHqVMjQyVV8f3nVrFYrU+jBoCrQEAAJpSdi2ZJ8L8OVZZv5rJrunm RfDzJVwmjscEipW7jeUxvFIzvDddAJopB0ibef8ytYdRzP4FW+9q52gnJRCJuBShhLoGwmL9LCp5 Vm6N7OpXBB499zKfMujUu4d5waeIY+c1oLWQTb9+5FKRZyLSdoP23Pnvwf0S/gs8Mrph4TfNdxs3 3cuSyrq24qfZh0LeT/Znc5If+P85pW+/IZsKekhoy68mDq7Dy3m0acoa//B33QKsPOL8+slrg2S0 xdff93Yo1qK0oXND5alpIwb/cjwwUUEIUSbdOHMzlaE4pubGFaytRJn0+H5wE6Hspu/cNW+Tf0II kx58cNG2kDyO3YDBLYsvpKmKMABqBJojNDWu0829QxcjLlEm3Yh5XdIgNqVr6tbXQTcl6tauB8EB iYmR0vQUuSxb+a7qCCVycXQ0pvPjIu5eTHqb/BNC8uRxfz9+HK2i9C0bNhUX/4bJSw/Z9+hpeM7b p8MyipSboQ9DFSwttm9hUtDdrWPeqJU+Jy/t8amXb5N/QgirTLsT9iKOoYytHItfNsoZs5ryMyJD ZCzhWbibF5pmR+k0sTLjsYrwhPhsrfzCAwAAgGpUAkGC9gAAIABJREFUxvj/Gywhj0TKR6Lio45B YuWMFF2HvJLvlN6UA6x0LQDaoue0X740jNwz77eg4nOotQUj+e/039+6edcdsOPfzs+D7gc9ehzy 6MnD4BdxWTUy9yeEEKIKO3f0/v/mtXYf0Nvu2PZoFSGEcBr29nbls3FnT13PKro1xRXqiMQlfdxU Qm7hdJfb2KOzNc1kXD90/oPJvYQQVV7hRQW6rdq4C4ky4NK56GLbMvEXzt+Z0bJbo9atjQ9GSgp/ AvNurJqy/HLhSQGsXK5gCaHoiqb/+i26tdEhWf+cuJBctDAlk3gnKFLlXt/FxYlzq+iCTc2HAVB9 uKYtp3dtWfRnrCI79sqz4NDcEr8BKEszi6To28cjU3NL+mfCMXXU5xAm5UlydrFyr2xOfGiaSx0z Q0cjwV154b2z+TmyYjkzm5/yWJLraiu0NjSgJW/W3vMdTM34RPksMa7YfDI2NyVKztrpGNmIqZcl 9DaXFbO62MyQhNdtG5jZWdsZJ7x4M+uH1rVz1adJbuzDVEz0AQAAAE0rV/5fGjnN+ppnf6QLQAPl ACnDTn06mNBckzFbH4z54F/FQ/xChxBCiOLq9PZzztfa/gEm6fKM/pF/D+zTq1vb1m2++Kbjl4QQ VpUdE3TlyLad+wOSa+J9IJN8/sjNH1t1c+7Xq8meLSFKQgRu/Xs70sqwE8dCiy39Z2L8hrj6lWev tLGJMU1YSVJS2e+Z1jc24FJEniL5cFUIK5MkZ7KUqYGpEUWK5P9srkKh2VE12tzWTkBRXK+NQV4l bsAYGujThBTJ/zUfBkD1YfOkUVm5LCEsYVUqpSw3MyE96UVaZsm5PyGEsHJJ8ImI16Ul0hRPIKIJ yc/NKmHygDJToSREKOLxCSkzE2dleQqWCPlc7tsxdkpoKOZQhHJ2+dq55FfwRNw3FQvVi1l9bGZy 5EtH00a6ddz0Xl7JZAjh2FrZmVJMUmJU3Kd+yk25i8WqU8S0xoVRriqtauK7Dlw8oVNdO2tLc2ND PQGdr8hOT4oIDTy378CRoNdFLvw8h/9t3fpLe72sgA1Dxh+PfPfhpgxbz/NbO6xOzp1V343fH1nw 7Vf+1nizn3IVEgYAgM9apfJ/8gm6ANicsEuHd4V9EKdRk759mhpmP//r5IMUhpD8lxE1MUX+EFco KLmhmIyXl3asu7SDUAJDh8bOrk3dO3b38mr99YzmTU1HjVjzoKSbE5YlFIdLV9ejtdiMK6fPJ3UZ XudLnzY7Q27m6rTv9ZU1Jb956lRkxW9cmfS0dIbomFtZ8UlYThnbZqZJ81kiMjPVo0hqsc+X0NhU jyKMNC2j0ll2me1MUYQQRvrs3KmHr0t660xmcGzl7+Wr+XADfIQqM/xkSKxa6YVclvmR+e2sUpHD EMIR6nIJKb5fjo6ARwiboyzPZZ/WEwopQuSFOtwoQgibl5gcE5NXYgTK2FL6LT4ec/G3QCiaoj5+ wrLKpAfJOQ1tdVyszW5mJis5Zm7mYqJKfpj46ef+l79Y7BvlKmJao8JQs0pruTHiOu06NKaSE5Ne xj/PzmM4IpM69d26D27m2cZu7OjVQYU6jJRRB2eucD60vF/biavHh474PSyXEEKbec+fN8SBiju9 /OcDkUU+1Oq0RrkLCQMAwGetsvk/qfIugJyQY3+EfPBTTr3Rbb9uaiAN9lv324NSCiRzrD2mzBnZ pQ43KejI6tUXXlame19dLMsyLKGEYmGhudwcs/YTFy/x1qPJx0o6s4qMyODbkcG3/ff59d54bLWX dds2tpwHHxb8VeTmEUIJTM3EFCn5JrbK5T48evLl4In1vAZ0XHc7yKO/pzFJ9z/6X0ol7jPyw4IC 04fYG3cc3MP8+qky9pR9/16owqNVsy+8bc/uL5JhU2bdvNqIiPLp/cDiHQPqKrudVfERETK2kVD5 /PCWXdFVdJNVAw43wCekSo3KVNU3MmlirvMoTlb4I08JrJ0NOYSVRmd8kKZ/kG1TPMumpgKKzY1K z3xfIUQiU7K6HFV25JWYqkqz8xmGEMIVCPnkoxd8oopNiE6xaWxuVqfeq5Ro4zoN+ESeFPW8GmYH lbtY7FvlKmJag8JQu0prueXf29i9xbr8Il9BOs1n/rl/lEPffs02BAUU7sBiU68vm7633p4xrhMW TLk3fs09hePQefN7mOaG7Pxp2fXiraZGa5S/kDAAAHzWNLPS+E0XQBS/1MXqb7oAeBopB1hegg4T 53zbvUn9+g09hsyY3F3nE/5qQpgMyWsVS4la9+pswyeE8Exce87dv3f7KNO4F9IPE0SurqE+v3jj cAwd6lnxCJuXnJBaQk7JyuNi0lWE12rIiI5WgmoaFFaFnzxzL4cy6NTbu2n3AR3ETOzFwzdkldpl TuDuXaEyyqDz3DULvq6r//4Tyjdu3MVn7raDR2Y0e38smcQL204nMqJm0zZO93Z6XwtMYOP53cbZ HQ3YlPNbT1f0MQTvlKedZXeOnUtg+K6TNs0Z5G5azqdbaz4MAC3Cyh9Hx0hZjl3dNl+Y670/q7hC S88mrvV5JCvp+UNZsWSJEps38bI2fH8p4AotO7m5N+ITRUbYvYz3l9H8yIS4DJZj49jG29pYt2rq bShysuUs4Rg6tjMRfbyfnZFFB6fnE56Fu4VRY2sLPit7HJ/8KburK6qGFDEtZxgVqNJafkx+fvEi FbLHgWEyltYxM9X54HotD901bcn111zHESun9eoyZs30Vnqp15ZM3x1aqTWMtbGQMAAAVAMNjP+/ 8SlqAaiHEonep0k0n1fycs4qI7t57kZqVy+LrxZe6jQ5NVdkYixkU+5tnrDkSuv1xxs7Ft2Y6zZp 1/7/GUmTEhMkadJMhZLwdE0s69W3NeSxaXe2brpU4hT2/Ef+518MHN24ydDt/w5WZGdKs2TZ2dlZ r87OnXHi5buveo6zz+op7Q0oQgihjesKCaEaDvDd5vFmOCL/6dFZGwMq80hFJuny4Svj2ng3H+9b x0yY/+SEf6VXGKpe7Vsw09Z39ZCGQ9bsH7hAEhWRlM01sne0MRLRJCcxIFzfiENkb94gK7u1Zs5K yzWzPPuv8+85Pz4qUsIY2TvYm4poVcoN39lL/q3EMtS3ytPOOXfWz11ts/pnz15L/LxnS6LDI5NS pXK5QpETfXXLHzeSNDAnoFyHG6AG0zFz9bbWowkRiMUUofQtmvroKQkhhM188Oxx+Adz+RVpoSfD RQPrWzZ36eamlL+W57I8HRORkE+xWamPT7xI/HCBkCqfW7dBZ1fHzESZguHpWOjqCCmSl/3K/2lU eqFLQV7649MvxQPqWro18nStn5OanS1VKpUqlVKVHRYZFl5o7F3dmN9jMmNDZQ7tdQ1bN+3RilHm KJUKVb5CmfXo+b0Hxbot2Jyn8UkeRrb2dVqZ8DlMVvSjzNoxVbuGFDEtVxgVqtKqFkpoaO3oaGNt bW5paWFhbmbl7C4khNAltgUT7798RmO7bSO812wmRBmxd8Zy//hKHvVaWUgYAAA+PY3l/4QQOc2u M8+ekaxrryy1C2CSRPybmTz/U3QB5N7Y9ee/9Ue1t6aSAg9s/acySW4FsOl/r/l+ac7M0Z6uVjqC jIj/dp34c8eFxxnE1vnDhaUcVULIjYcOdlYmtk6W9cUCLpOXnZ4Sfee838Uzfmcfl/jwLEJIXujO MSMTRwzxbFnPytRQRyzSMbExtcwRF/6qpw0d23Zsa1r4BsTQqY2H09s90Fd5lX2jWVePXE7o4WNr Y87Kbh85HaOBGw1Vyr9Lx/f9t/fIIV4ezZxsG9WXJcdFBV25cO/qmTPXCx4J+EbOiwOTRj74ymdk f882zg6uVqxMEnv3zLVT+4//9VSqkbue8rQzkYft+2H4LU/v/l+1a+nsYNXArb6Iy+Ny2ecxe7fe 0EQU5QsDoMaieEJjRxPj998OfJGx05sRV5bzikMR5YfXaFVy3J1dUpuWdg4NjAxM9UVsfm56ekxY 0qv7yRk5JVzSWUVqyL4EYes6Do4GRkZcVi5LDkuOuBOXlFb8NFElxQbsSLN0tbJxMjA0FRrY6nI4 NE2z0tTYsPCCwfcKxPwOk37j4c0MO4cGhvqGfD6fwxHwxHqCfEFJr8hNjXyaa9NSJNYj+S8TYtJq yQKfGlLEtFxhVKhKazlxLDqOnDNtQNfGRnzC5kolifFJ8QlJSVk5zEfmWLJZ945eeDbkB3cByQu7 fOKBBhai1MpCwgAA8MlpMv8nhGTTrK/Fx7oA3HJ5X2QJ/tKvbP1k1cvd/V13f3wb+eMjk74+Uslf VHFsdujhld8cXlnsx3F7J7juLfYzxaN9i77bV4HfwaSHnNsYcu4jWyhvr+nYZI26u03Y971rueNR PDhz4nm/yU3o1MunL0k0dTeoiLt9bPntY+XaViV9em7HrHM7ytiMTTv2rWdJe8x/5OvTxPcjryy7 nQkhhJW9unrM92pZMVd1GACflCzhlm9CeTZkM2KvrYlVd/dsTlbcjadx5e5EY+VZ0f8+ji7PpgpZ UtDLpKCP7q1CMb97sTItJCLtw/I1JWBSgxOlzZ0MqbyE4OTSn5mgJegyiiJWiSqr0krb9ffd+G0r OvL04gV/XnoclfG2M4Ln8Ut3TydxaS8Tu0xcNbYpV/LsObeB62jfKSEj1j2s/DBFRQoJAwDAZ0bD +T8pqwuAJSSepy0DljSXRwghzKdcV1ATUVy+gKJU8f5H7mZXdywAALUQh+YQwqYnRUZqyxdkSfLy lIRQRibGnIqNtFdc1VVp1XFv5SYiiv/2rThyP6vgx7SekT6ntH4O2uzLRUsnuFDhuxeN3M6b6rd2 6Kgly1+On3o6UVOtUu5CwgAA8NmpkkV62TS72qKEcoAsIQeNch6JtGQOGtfOzoZDmJyszM/7mbq6 HQYOcKLznpw9Fvp5NwQAQIVwLFpY6VJMekhCujZXaWeSYmMVLG3kOXZ0U9PKrj1TU5VVaWUYFUMo roWl+bshD66Jc7/Zm08v76RHEUoo+KBeq6DhqMVLe1rkPNw5Y9PDzIxA31n7HitMus9fMcldXJmZ ERUpJAwAAJ8fzY//v/FhOcA3yf+/elox/YwWmNRvO3pWb3sOmxsS+lSbb9jKwLdoN2WalxmRXt5/ PgojCwAAaqJFdes6OwtITsqrEHn1zSar6mKxhBBWevuwf4LnYJt2U/+4PkmRmSHNlGamXFw/anPw +2/RKgujqqq0ygP+uZrWybvJ2D2Hm9yJUJo6NWzcwEqQHLDH93jHnwa6uI/8bbPzk6Cz63ffz2AJ IZShx+Rfp7rrZtyaP+tgmIIQQnJC98xY63p4XqvxG2a/HLrofKFQ1GmNihUSBgCAz05V5f+kaBcA S4hfrU/+OS7j1i3ta2dsqK+vLxZyaYoQRhry5+a/NbbmvbbgNBj564yvbcW6BsYW5gYiDpsRsHnj hdpSswoAoLpRFnatv7TQ4XP5OgKhiEMRpeRmZHzlHp5aOVVeLJYQwmbdWDbhmyc+Pl1c69uaGhno 6lvY0oZF5iFWYRhVU6WVTftvwThR+k+Duri0/tIp93XUs382b/jzwK2YHMHZNNWsUZ4uLTs7MgG+ uwghhFunz+pVfR3opNMLVp6MK3giZdSRZYtabF/n3X3Jhqjosbsev3sQoDqtUcFCwgAA8LmhHByb VOkv0GEoryxBFF8VXOun/XObzTiww8dAnp2dKc1MT0l8GXrn3PHLQUm1ulOjQriuM8/+NsRUociR pSbGPr5xZseu/15W6sHFAACVQBnbdxpXzygn/vaWsJTaMBOJsqnXfZiNUMnkK/Jy0jOTg2NePJdp InBjIwEhJC1djS+m+zFhE81t7wh12ubKtqTE4c/lb7q2ubIaEnP5/9zCvqHanyoAANAiVZ7/AwAA wKdRgfx/vPT1BGnqNgMT/H+CNFWt9Ph+TFhNiFmt//9pYKr2pwoAALRIFc7/BwAAgBruTwPTEIHo /SjxZ/5ntZpuorltTYhZrT9X0acIAABqC4z/AwAAaIkKjP8DAADA56NKnv8HAAAAAAAAADUK8n8A AAAAAAAA7Yf8HwAAAAAAAED7cd+sFQQAAAAAAAAALcaV5+IRAAAAAFpCLMyv7hAAAACghsL8fwAA AAAAAADth/wfAAAAAAAAQPsh/wcAAAAAAADQfsj/AQAAAAAAALQf8n8AAAAAAAAA7Yf8HwAAAAAA AED7If8HAAAAAAAA0H7I/wEAAAAAAAC0H/J/AAAAAAAAAO2H/B8AAAAAAABA+yH/BwAAAAAAANB+ yP8BAACgJLRu4z7Tdu/5sa0eVd2hgCaJm367a99MHzdDTnVHAgAAnxjyfwAAACiOb9vp5z2Hj630 ad2wWTtnsaY6AGgObjyqnaB+uxaNmvdd4nfIb253B1F1hwMAAJ8Q1ci5dXXHAAAAAJohFuanpSsq tw+erdeP65cMcDXIi7y4bf6KY/dfqyofGKXf7Mffl37bTD/z/q6J3+15JK/8LitMYNmye78vWrrU tbYwMzTU19MXRf0+cNKeWKYaY/q0aEO3fnOWfv91A5E87PziaevORlbyMwMAALUDt7oDAAAAgJpD 1GjYoq1zPCyU0efmz1t48pWcLbYBt/W847uHW5Q2dVx5b/0Xo44lfpBKc5t4DWpmwqeJafMvujju f/REA30KFUHptJzy2x/jGuvRhLBMXk52pjQzJTYtt2bdEPHaLTy5c4jpRyZLFGpntTZ+g8kIOTFr yL2bs5ct8um1ar+l9aS5fwZnFT/UAACgdWrW1x0AAABUH659/0Xbf/EwkT3dMWXGhjvppQ+IM7LY pyFxJQziK8NSFCXlkflPLh8Oaj/GTUdy+/Tfr6op+SeEY9/n59GNdPNj/Feu3PTX4/jM/BqZ9LKy 5Mhnz9JKTOk5hjb1rHQIo1KxFdi4kJyYs4smxiet/n1Sqyl/rFSOmb7rGWYBAABoOcz/BwAA0B6V mf8vdv/+0J5vGpCIfd/9sOpOZimJ8Zvxf9PwLaMGbH5ZbXl8Rel9vfrGag/q+nLP789n1MjUvwyU vtdqv429xHeXDB17OLmMFQvl2ZjSaTZ5884JDQXxZyf6rLpaKxsFAADKC2V4AAAAgBBB43ELhzTg 5z7cNH9tqcl/bUfrGOhxKFaamCKrne+QU7ff+C+N2ZS/d50tK/kv58as7OHmuWtuZVM2veZOba2P Rz0AAGg15P8AAABAGX8xclgDnir86IoDkcrqjqbq0DRFSMnT4WsBSr/reJ8mPOVTvyO3ZZrbWJVw bPXBx0rKts+ofra4MwQA0GZY/w8AAPDZo82/GtBWn8oLPHL6aZ5G98yxG+vnN8Ot4H5Dede32+iT KR/k3/zO82/87m1AEUIIK788ud2Cy3mE0nHo/s2wAR4N61gYGeqLHizvP+lMkTJ14joew8f07dHB 2dFMzMokEcEB5w4cPHw7qfASCI7bD+f8vnEsVLHQcviWx8Pf/YVJOThmwNK7+UWiocSOXfqNHNi1 vVsdCz1OTmrcs8Brp/YfO/9EWmTJA8/hf1u3/tJeLytgw5DxxyPf7YMybD3Pb+2wOjl3Vn03fr/G +lPejOcT6X97jkWVufJCrY1Vr84evPnNqq6u/fo4HaiFyzoAAKCckP8DAAB89nTd2rjwKdWT67dS NPwQPDY3ISQoQEYTQiijuq0ampS2IZMeeS8gUIfWtXdrbMPh8bmE1m09feuK0a4674aklUaGuhR5 n/9zbb1nbV3Ws54wLy0iLOh6Bte8rkunAbM9vbw2TR+/7UlBccLsuOCAwCQOIYQILJ3dHXXyk1/c j5C++8XSSGnR3gi+fd/lvgt72gtZhTQ++mkMa+Lo0Kb32LY9v+65dua0vWEFe1ZGHZy5wvnQ8n5t J64eHzri97BcQght5j1/3hAHKu708p81OJmC0usyzqcJn4nef/hyelnTF9TamBDCpgfceKrs0rJu K3cz+mXS5/MkRACAzwzyfwAAgM8dx8q+jpBis6JfJWg682MkF5ZPu0AIIYTfbVHAb1/yS9kw/9GB SWMPEE6jaWd2TLDjC/QbTdiwYnSD7PtH9524/jxWkp6elp4qSXsfn8Bl1K/Lejopn+6ZtXjT5Vg5 IYTQRu7Dfbd812HS/Il3R/oGv50EoIrwnzPOnxBCCG09YsulOW7SK1vGL75XSmYuajlt9ZKedvnh /rN+3nQuXMYQQiixk/cPaxf37zRj1dzokfOuFtRHYFOvL5u+t96eMa4TFky5N37NPYXj0Hnze5jm huz8adn1VM0tM+DU7T++hzElv7f3YNlTNNTamBBCCJv2KiqVaWVubWtNE+T/AADaCvk/AADA547S 0dMlhMmRl7sqHqfRxP1PJhb/KZt58QePxVcqv4KANuk6d2knh/Dfx87ecl9aQlCUSY/vBzcRym6s mLvm8vvidkx68MFF29qfn+02YHDLzcG3cirwmy2/mji4Di/n0fopa/zfT5xn5RHn10/Wsz+9oOXX 3/feceNAZKEp8vLQXdOW1Du8otOIldOeLk8ZOb2VXuq1X6bvDi3h8YgVRel1HjfQhc+mnDl0NrGs 7Fytjd9h5XI5IZSOWAclAAEAtBfyfwAAgM8dK8vKJoTW0dMtb/U3Rhb7NCSueILLyiPSNDJ0zG3Y rf3z7RNmbrmfVWKPBKXfolsbHZL1z4kLxSrbM4l3giJV7vVdXJw4t56ov5Bdt1UbdyFRBlw6F13s xUz8hfN3ZrTs1qh1a+ODkRK2yD/5L5/R2G7bCO81mwlRRuydsdw/XpNj6Jy6/SZ8aULlPffbF1hm 4T+1Nn6P1tXTpQibmamtz34AAACC/B8AAABUiTFRuWxDsWOjOvSV8PIkrmys/+pvq65QHJPx79LZ G4NKTv4JIbS5rZ2AorheG4O8St6BoYE+TYja8dH6xgZcishTJB+mwaxMkpzJUqYGpkYUkRT9Zzbr 3tELz4b84C4geWGXTzzI1mQSTel1/tbHRcBKLx46+qocg//l37gAbd7IyZhmFRGvivd7AACAFkH+ DwAA8NnLfhQQkvdFW6eune3+DK8BCSCbHh7++mNhUBQhhJE+O3fq4euSklwmMzi2IgPwTGaaNJ8l IjNTPYoUX70vNDbVowgjTcv4ILsXu0xcNbYpV/LsObeB62jfKSEj1j3U1EA6p26/CT1MaFXsiT3X yqzlp9bGBWjzzl0ac9m84NvBGP8HANBiyP8BAAA+e4zk4rEbU9t0dx40qM0h39vZ1R1PWVTxEREy tpFQ+fzwll3Rmpxpn33/XqjCo1WzL7xtz+4v0oVAmXXzaiMiyqf3A4t1DNBmXy5aOsGFCt+9aOR2 3lS/tUNHLVn+cvzU04ka6EmhdD2/9XEREHnA4QOhZVVWUGvjQkRuA4e15LOZ146eR+0/AABtVt51 fgAAAKC92Ix/9uwKzaVtvp7zfVOd6o6mbLI7x84lMHzXSZvmDHI3Le2ZAhXAJF7YdjqRETWbtnG6 t5P4XS08gY3ndxtndzRgU85vPR1RJK0XNBy1eGlPi5yHO2dsepiZEeg7a99jhUn3+SsmuYsrX0qP 49Tvux4mtEpyfvelMmv5qbVxAVHDsb8MdKLznuzdfUmNOQMAAFD7YPwfAAAACFG+2rNoZ+f9PzQb uXjZ8+9+PpukkVUAHGef1VPaG1CEEEIb1xUSQjUc4LvN483YdP7To7M2BmSyhFAmXjPnDKrLIZSO gxVNaMue89a5ZLGEkPwXJ39Zd+ODtDTnzvq5q21W/+zZa4mf92xJdHhkUqpULlcocqKvbvnjRsVH sVnZrTVzVlqumeXZf51/z/nxUZESxsjewd5URKtSbvjOXvJv4ecRUIYek3+d6q6bcWv+rINhCkII yQndM2Ot6+F5rcZvmP1y6KJKDai/G8/PCz2593ZZjxNQa+P3aNPu85d/58KXh25fvOtF5R/dAAAA NRnyfwAAACCEkLznflNm2x/Y0KvHst/yqZ/m+sdq4EF+ho5tO7Y1LTzd0NCpjYfT299IX+W9+RMl sGna2qMZ791GInv3NvaEEEKUwttCipAPh6XlYft+GH7L07v/V+1aOjtYNXCrL+LyuFz2eczerTcq FXTOiwOTRj74ymdkf882zg6uVqxMEnv3zLVT+4//9VRauFuEW6fP6lV9Heik0wtWnox7n+fnRx1Z tqjF9nXe3ZdsiIoeu+txRR8EyHHq+91XpjSTeWXvmVdl9ceotfG7N2D55cL1q/pak/i/507e+1hR wTgBAKC2oBo5t67uGAAAAEAzxML8tPTKpHFca6+f/ljVt4EgLXDr4hlb76XkF/xb21zZlpS4iea2 d4Q6+LNaf74jrHGLKjhG7mNXLZ7sYZYf+dfc71afj1VWd0QAAFDlOKZmNtUdAwAAAGgGj8vk5FZm 5j6TFXH74l25Y7v2Ht28+7YzSHkUEp72NjM8kxC5zcBkQVoyIWRBWjL+XP4//2lgWomDonECB68J G36fObCxUHJjx48TN19Nrv5nPgAAwCeA8X8AAADtUenx/7co/YaD58z9qXc9vfz4Q5NGLb0hYwl5 M45dQ0bUa92fK39QNETQYvrOHWPrCuXRF39bsXh/SAYq/gMAfDaQ/wMAAGgPTeX/hBBCuGYt+v3Y jzq09OgzrAzXIlzHPvO/1b3427GAJNT7AwD4vCD/BwAA0B4azf8BAABAq9BlbwIAAAAAAAAAtRzy fwAAAAAAAADth/wfAAAAAAAAQPsh/wcAAAAAAADQfsj/AQAAAAAAALQf8n8AAAAAAAAA7Yf8HwAA AAAAAED7If8HAAAAAAAA0H7I/wEAAAAAAAC0H/J/AAAAAAAAAO2H/B8AAAAAAABA+yH/BwAAAAAA ANB+yP8BAAAAAAAAtB/yfwAAAAAAAADth/wfAAAAAAAAQPsh/wcAAAAAAADQfsj/AQAAAAAAALQf 8n8AAAAAAAAA7Yf8HwAAAAAAAED7If8HAAAm0FRbAAAgAElEQVQAAAAA0H7I/wEAAAAAAAC0H/J/ AAAAAAAAAO2H/B8AAAAAAABA+yH/BwAAAAAAANB+yP8BAAAAAAAAtB/yfwAAAAAAAADth/wfAAAA AAAAQPsh/wcAAAAAAADQfsj/AQAAAAAAALQf8n8AAAAAAAAA7Yf8HwAAAAAAAED7If8HAAAAAAAA 0H7I/wEAAAAAAAC0H/J/AAAAAAAAAO2H/B8AAAAAAABA+yH/BwAAAAAAANB+yP8BAAAAAAAAtB/y fwAAAAAAAADth/wfAAAAAAAAQPsh/wcAAAAAAADQfsj/AQAAAAAAALQf8n8AAAAAAAAA7Yf8HwAA AAAAAED7If8HAAAAAAAA0H7I/wEAAAAAAAC0H/J/AAAAAAAAAO2H/B8AAAAAAABA+yH/BwAAAAAA ANB+yP8BAAAAAAAAtB/yfwAAAAAAAADth/wfAAAAAAAAQPsh/wcAAAAAAADQfsj/AQAAAAAAALQf 8n8AAAAAAAAA7cet7gAAAAAAPh+0w7jt535y/uAOjInb+0OPVY/yqyMmAAD4TCD/BwAAAPjEWGXy i6AIaeEfvY7KZqsrHCCEEF67hSd3Dta7OPWLn/7Oq+5goMahOTSjYqo7CvUg5hqmRlxkkP8DAAAA fGJs1o0/xs+/q6zuOGoDXruFJ3cOMS28ZlX1YtfA/tufqaotJtAu3KYzDvmNsYr4Y2zfTWEffqwo /WY//r7022b6mfd3TfxuzyN5NYSorrJj5tiN9fOb4SI9Mq7fwts14lJUG9u5NkL+DwAAAIQQYR3P /iN8urR3dbAwEvHyczNTk6Jfvgh5+ODahcsBsYpPGAmtY2ZpImSyJEnpuZ/w10INxUgjgwMC9N/m /zp27q5W/OqNSPvVkHOwhoRBuE28BjUz4dPEtPkXXRz3P3qiqZ6nKnyDVRazWtR7gzUjZu2H+n8A AACfPdqs68Idp/74cViX+vrZcc+DQ0LDk3J0bZt6fjVq6vRhTT/taAFl6L3y0N8Xd0xtzvukvxdq KNXTffPHjpkyesyU0WOmfLv8nyRtnRpcc9SQc7CGhEFI/pPLh4OS5bnZ0ddO//1Kc0lpVb7BqopZ LWq+wRoR82cA4/8AAACfOcqw+6Slg5wESVcW/bDi2PPsd+kVR8+6XrNWdRX3cqo1PABtQ+vZd+hs EfXXvVjkOLUBm/lw88i+m6s7DLUgZrXQFs2/cpbeuv4qQ1tOyY9cZDD+DwAA8JnjN+vW3phWPTm0 9XhB8k8IUWUlhF0/89fdZIy3AmgErevQ7n9z1//136Gt0zwsqeoOBwAIIYRQpq2+/23ffxc2LR7t Ud+gVifIZV9kMP4PAADwuRPweYRQfAFWVQNUDVrHoYP38P8N7NvBTo9ms2OCjuz756W2jDQC1HZM 3LU9B+qP6tt20MyWPpMS7/qf2H/w7LWXWbXpHC33RQb5PwAAwGdO+fxxuPLLJvX7fuN9ZvnZ2I88 lIi2/WbzuTnNeFH7h/b+PaTYo+rFbZddWDfQJHHPiGGrHuQRQghl7LP91NJWwQu6Tj2aSnQbdBsz zqdn+/qWIkXy01v71/52IFj67ol3HOfJ+45978Qp2J3J4J3XB7//mypp30ifFfcLfiXfdeDiCZ3q 2llbmhsb6gnofEV2elJEaOC5fQeOBL0ucs/Dc/jf1q2/tNfLCtgwZPzxyHf7oAxbz/NbO6xOzp1V 343fH/lh/WtB/d7LVn7bxVGQ+uDI3Om7gzJr6uP51Gjn9y8RO3bpN3Jg1/ZudSz0ODmpcc8Cr53a f+z8E2nhpuN3nn/jd28DihBCWPnlye0WXM4jlI5D92+GDfBoWMfCyFBf9GB5/0lnsljK2Gf7qUWm +wYM2PnKynPKokmDWxqn39wycerJl8JGQ+ZO/667Ezfy/Nwffr36+u10EjWOYG1G69p36DPwf8O9 Ozro0Cpp+NXDGw6d8g+IzS5hVg0ltm878H+9e3RoUs/KUMjKkiOeB167eOzoleCUD87K8h3BKj0H 3xDX8Rg+pm+PDs6OZmJWJokIDjh34ODh20lFSoZWfRhq4Jq49x02qn/HlvUsxKq02PDH/x05eL/E uRhvKuS7FaRLyru+3UafTCnlSkCJ7Tx9Bvbt2sylnrWJnohP8rKl6ZKkpLjIq7/POxqSV5E3qMY5 WKGY3wQusG0/4odhfT0aWQvlcWHP7v93eodfQFzhin2lPiyA13HpmT8H6j5aM3T47nhG/TdYkZg1 /+EnrPT58VU/n9hk1dq777AhX3cd/GPbQWNj7146tP/YyeuR0pp9PVLjIkOJHbv0Q/4PAADwmWOi T+w4PmDNUEev1acafX3G3//C1WsP40sa+GDiz5669kPTL+17DGy7K+Rm4dtDyrBzr+6mlPLp2eOP iuYqtIGxkb5rrznrp3ay5edlSXNVfAP7Fj3n/KGX2XfOmbeLC9js2McBAa85hBDCt2js5mSgSnkW /Or97RmTHpVV5GaQEddp16ExlZyY9DL+eXYewxGZ1Knv1n1wM882dmNHrw4qFJsy6uDMFc6Hlvdr O3H1+NARv4flEkJoM+/584Y4UHGnl/98oITknxBh5wmTezXRoQjR7TBiXLeT909l1NQOAEJIOduZ EEII377vct+FPe2FrEIaH/00hjVxdGjTe2zbnl/3XDtz2t6w90/dYtIj7wUE6tC69m6NbTg8PpfQ uq2nb10x2lXn3QRZpZGhLkXeHhvKyNjYqtvYPYt6WdOE0HqdB33t9iRjyqafW+lQhKZc+ozsvv/a YcmbjdU4grUSrVunVZ/hg4b3beuoRyklzy9uO+l39PKDREUpnyJBw0HzNs7u5iAiTF52csyraKWO Tb3W/V3a9h899srOtQu3BkreH8NyH8F3sVTJOUgI19Z71tZlPesJ89IiwoKuZ3DN67p0GjDb08tr 0/Tx2558qjDUQOm5jNu0ekobY5rJjnsa+jSdMqnfYbxvpxxZSYui2dyEkKAAGU0IoYzqtmpo8tE9 N5u2e+24JiImO+Vl+NMIqYKhBXrGZrb2TTwMnm0rOP/Ue4PqnoNqxUwIIYRj1nHS/gEDXMXyhPCY GAP7us071W/esUfnP8d/tzekIk/gU/8IqhVzlXz43wUiT7x7/I+7x3eZN+3sM6z/oC/6zmrbZ1Jc kL/fsYOnbr+U1rSlcGpeZN41HfJ/AACAzx2bcXf5qBmSedO/7WbXadikTsMm5qW9vP3336eOnP3n eZGRDzbj+uGLku5DzL4Y0HH9rX8KEmLa1KtfewMq9+aRvyKKdRzQFt0XbBnX3CLGf/3I384GJip4 ll2X7l/a16ZtH08j/6OpLCGEMDGnVn57ihBCCGU2dPeJha1k13+dPu9GqU+lzr+3sXuLdfmF78co neYz/9w/yqFvv2YbggIKd0KwqdeXTd9bb88Y1wkLptwbv+aewnHovPk9THNDdv607HpqyfdKTGaW nCU6FCGE5GVl59Xo5J+Us50JIaKW01Yv6WmXH+4/6+dN58JlDCGEEjt5/7B2cf9OM1bNjR457+rb qQ75jw5MGnuAcBpNO7Njgh1foN9owoYVoxtk3z+678T157GS9PS09FRJ2vuDQBm5/7jOQzdwZZ+V 1yxmHto2wMJr4RLB60NjOvsl9958dnojIxN9mkjefEDUOoK1jq7Xgn82fGFAKRIf/LXp8Mljfz97 /bEnrFOmX87ZtqCbhSLq7JJVvidC3oz3UyKLZl59Ro7rYyeQywoaSo0j+FbVnIMCl1G/LuvppHy6 Z9biTZdj5YQQQhu5D/fd8l2HSfMn3h3pG1z0uaFVE4YaKMPu85ZPaWMof3x07s9//B2TSwghtF6D nuOW/jLAjXxwijOSC8unXSCEEMLvtijgty9LXyJFGXQf/o2zWPVkz5AR2x4XyUE5Yj2eomC0W703 qO45qE7MhBBCaMMuI7rc3flLz+03IrIZQniWHUesXDGmbctv1/z4qN/qYPWrv6p/BNWIuYo+/MUo Uh5d2vLo0raVDboO6Dd08BeDZ7Ya/N312T3n+JfybVEt1LzIFDRdrS5vAAAAAJqhSgn8Y/LQrr2n zdt89kZYOmtUv/OQib8eP3LoF0/rIoMFisCj517mUwadevcwL7iL4Nh5DWgtZNOvH7kkKT5EQhs6 N1SemjZi8C/HAxMVhBBl0o0zN1MZimNqblzxGxEmP7/Yb2JljwPDZCytY2aq88FsXnnormlLrr/m Oo5YOa1XlzFrprfSS722ZPru0FIHuPLu/rZw9aEr165fPbJhru9/FRkI+6TK18605VcTB9fh5Tza NGWNf/i7pJKVR5xfP3ltkIy2+Pr73g6cEvdv0nXu0u8dwn8fO3LEwn2n/w28HxIeEfdaqig4DBTX ziRiw7fz/3qRlZuRLmcpvlHamYmTdt9JyUtPz2YIRahCB0bNI1i7cHR0xRyikjz55/zl81eff/S+ nBC+27jpXpZU1rUVP80+FPJ+sj+bk/zA/88pffsN2VSQUVbkCFbFOUiZ9Ph+cBOh7Kbv3DVvk39C CJMefHDRtpA8jt2AwS1FxV5SNZcC2m7Qnjv/Pbhfwn+BR0Y3LNQUnHr9v//KjMq8s2ryxrfJPyGE yXpxdtPKkwmVG9ulBCIRlyKUUNdAWKz1VfKsXM3MHy/HOag2VnZ7+YRxG65FvJ0srky6uWvK/PPJ DLdO/4GeehqJW2M+8Yc/PyP8xoW/z118lKAktFhPj1ezrkpqXWQKNx3G/wEAAOANRvrq7vEtd49v ofUcWvT6ZuykwW5u/1u0IWXssB0Fg/qqsHNH7/9vXmv3Ab3tjm2PVhFCCKdhb29XPht39tT1rA93 m3dj1ZTllwuPybByuYIlhKIrOQ5BCQ2tHR1trK3NLS0tLMzNrJzdhYQQusT9MvH+y2c0tts2wnvN ZkKUEXtnLPeP/9h9M5P2cO+Sh3srF+InVK521m3Vxl1IlAGXzkUXS0mY+Avn78xo2a1R69bGByMl HwxzcRt2a/98+4SZW+6XPv1a9erE9mvJ73fMyq7tPf7sYwOIah3B2iT7+q4FW3P/N6jTNwt/HT4t 5qb/iUOHL9x4lV1iHsht7NHZmmYyrh86n1TCBqq8wlMhKnQENX8OUvoturXRIVn/nLhQ7AEhTOKd oEiVe30XFyfOrSdFYqyaSwHFFeqIxCXlNCoht9B+aesObevzSPbNsxeSip/4lR7VZST/nf77Wzfv ugN2/Nv5edD9oEePQx49eRj8Ik6DJeTKcw6qi82Ni5YUzRzZzNt///e65zBT52b1uRcfVKLUgqZ9 ug8/LbZv22PosP79OjsZ0kxG+PWd+/0uv65Z8//VusgUbjrk/wAAAFAMkxV179DSR0HJW45PdXHp 1aX+7ojn7+8pmOTzR27+2Kqbc79eTfZsCVESInDr39uRVoadOBZa0pxtNldR2prnCuNYdBw5Z9qA ro2N+ITNlUoS45PiE5KSsnKYjzzcmM26d/TCsyE/uAtIXtjlEw+ya9BUTg0oTzvT+sYGXIrIUyQf VjNkZZLkTJYyNTA1osiH+T+T8e/S2RuDPp54sMX+tfSNK3QEaw9V2tPTG+ed3mre3Lv/iOG9uw3/ qdOw7+MCLx32O3niSnhG0ZSKNjYxpgkrSUoqe5J7xY6g5s9B2tzWTkBRXK+NQV4lbsAYGujThBTJ RariUkCYGL8hrn7l2JA2tzKlCZOakKIoe2P1w0i6PKN/5N8D+/Tq1rZ1my++6fglIYRVZccEXTmy bef+gGQNLGAo1zmoCUya5DVDzMR6ujVqxPtTfPg5Bo4effsPH/xVewcdmsl8eeXQ+gPHzwUmymve t4U6F5kiTYf8HwAAAEqUF3H7fvxkFwcTE+Mi9/FsxpXT55O6DK/zpU+bnSE3c3Xa9/rKmpLfPHUq UkPDIyxLKA6XLvXWk7br77vx21Z05OnFC/689Dgq4+3tHc/jl+6eTuLSXiZ2mbhqbFOu5NlzbgPX 0b5TQkase1hji/pXDSYzTZrPEpGZqR5Fii9lFRqb6lGEkaaVWOiQTQ8P11hZ/goewYLXUzUqLymV IuXBqa0PTu22bOE19BufQd36zGjb58ekkItHT/gdvxYiedtdxqSnpTNEx9zKik/CylhvXYkjqJay zsE3SzkY6bNzpx6WOCzKZAbHVv56UGYY6uxLkaMghDIyN+YTov6y9rIxGS8v7Vh3aQehBIYOjZ1d m7p37O7l1frrGc2bmo4aseZBSd0Oar1BjZ6DH8O3sremCfs66YPlXB/gCgUlrhd6R5NHsEo//Fwj Z4+BQwYM7tnMRkwxGZHX9hzff+jCndjcmv4VUa6LTJGmQ/4PAAAAJRNZWRpThJGkFr+/z3149OTL wRPreQ3ouO52kEd/T2OS7n/0vxTNpP+K3DxCKIGpmZgiJVfd03Fv5SYiiv/2rThyv9CCA1rPSJ9T 2n0mbfbloqUTXKjw3YtGbudN9Vs7dNSS5S/HTz2dWNr9NGXY2Oe7Yd2cBK8fntr8Z0Cp29Uq2ffv hSo8WjX7wtv27P4i+Rll1s2rjYgon94PrPoaVxU5gm/k5SkJoYxMjDnFxpZrMkXS/XMb7p/7w6pZ r6E+//Px6DO56df9j3zz1a9v5lbnhwUFpg+xN+44uIf59VNlnEaf5AiWfQ6q4iMiZGwjofL54S27 oqtoXnTZYahDFREalsU46Hf8wtPo1sX0QvvjGNrbaLLiBKvIiAy+HRl823+fX++Nx1Z7WbdtY8t5 8OqDD6xm36CmcOz7De5uSKuiAq6GvwuZZVmGJZRQLCw0O4dj1n7i4iXeejQpbY2Aht9g1X34OY1H 7zs6pj6tkr66vffgMT//ezE1cMT/Y8q4yBRuOi2YYAUAAACVIGg5ddvK+eO+6tjYTFxwX0Dp1Osx b2oXA0rx/PLVD+5bVeEnz9zLoQw69fZu2n1ABzETe/HwDZlm4mHlcTHpKsJrNWRERytBiTflDKNi CMW1sDR/N/LENXHuN3vz6eWd9ChCCQUfvEzQcNTipT0tch7unLHpYWZGoO+sfY8VJt3nr5jkLi7l vp/X6seVC0d29/TwGPDj4undyh6TrhWYxAvbTicyombTNk73dnr/3gU2nt9tnN3RgE05v/V08Sc4 VEUYah/Bdy9Mio1VsLSR59jRTU15VR6nZuUmPjy+/pd+XX1Gzj/wz8tCy09yAnfvCpVRBp3nrlnw dV3996ch37hxF5+52w4emdFM593PPsURLMc5SGR3jp1LYPiukzbNGeRuWkaR+aoLQx3ym8ePR+ZT Jt0W/Drew+rtp4dv0WLMhq3LvjCqZFLE1TXU5xePkWPoUM+KR9i85ITUEvpINP0GK4ISN/Jo56T3 7t1zjd2HLtg2o6UuI/lr0+HQ93k9kyF5rWIpUetenW34hBCeiWvPufv3bh9lGvei9MfiafoNVuWH Xx559ciScUO69J6x6nBgbUv+C5R2kSncdBj/BwAA+Kxx6rfs3t6zXqfOw39i87MlUZHxkmxGZGLf oK6pmGYkNzfN2/PhsBVhki4fvjKujXfz8b51zIT5T074h2jscW35j/zPvxg4unGTodv/HazIzpRm ybKzs7NenZ0748RLFSGEyAP+uZrWybvJ2D2Hm9yJUJo6NWzcwEqQHLDH93jHnwa6uI/8bbPzk6Cz 63ffz2AJIZShx+Rfp7rrZtyaP+tgmIIQQnJC98xY63p4XqvxG2a/HLro/Af1wAjhGBnqvrsp5uvp 8ClSa28JC2Nlt9bMWWm5ZpZn/3X+PefHR0VKGCN7B3tTEa1KueE7e8m/757TTZl4zZwzqC6HUDoO VjShLXvOW+eSxRJC8l+c/GXdjfRKNIeaR7BQ+NLbh/0TPAfbtJv6x/VJiswMaaY0M+Xi+lGbg2tQ mbKPYnOSAo9vCTxe+GeqV/sWzLT1XT2k4ZA1+wcukERFJGVzjewdbYxENMlJDAjXN+IQ2ZvzsPxH sOLKPgcJybmzfu5qm9U/e/Za4uc9WxIdHpmUKpXLFYqc6Ktb/rhRwilVJWGoQ/H491l/uPw5sU3r kdsu9I19EZUmtG3oZEJHX1yzNWHW982Lbc5x9lk9pb0BRQghtHFdISFUwwG+2zzeXOrynx6dtTHg 3QIirtukXfv/ZyRNSkyQpEkzFUrC0zWxrFff1pDHpt3ZuulSibPSy3qD6p+D6sRMCCGEEjUdters oNToV7GSPLFVXSc7Qx5RJl/znb3oUuGRdNnNczdSu3pZfLXwUqfJqbkiE2Mhm3Jv84QlV1qvP97Y sZQWL9cRVCPmKvvwq54dnDypQq+skUq4yBRqOuT/AAAAnzXV422Dvrjp0a19h5Yu9e3MLWwatNDn KbNeR965eP3ssX3nnqWXeJ/NZl09cjmhh4+tjTkru33kdIwGx4zzQneOGZk4Yohny3pWpoY6YpGO iY2pZY64oK582n8LxonSfxrUxaX1l065r6Oe/bN5w58HbsXkCM6mqWaN8nRp2dmRCfDdRQgh3Dp9 Vq/q60AnnV6w8mTc+6QkP+rIskUttq/z7r5kQ1T02F2Piz/gL/f6rm2XG4zxsKESA/22/VP5nKrG yHlxYNLIB1/5jOzv2cbZwdWKlUli7565dmr/8b+eSguOIyWwadrao9n7QXaRvXsbe0IIIUrhbSFV qZrpah3Boq/MurFswjdPfHy6uNa3NTUy0NW3sKUNa/+EVlXKv0vH9/2398ghXh7NnGwb1Zclx0UF Xblw7+qZM9cLHgn4RjmPYCWUeQ4SQog8bN8Pw295evf/ql1LZwerBm71RVwel8s+j9m79YYmoihf GOqQP/GbMOjlsG/7d2vRuGH9hvopL69u3/THjn+ims/58YMOC9rQsW3HtqaFP1yGTm08nN7GRl8t NAGFo0oIufHQwc7KxNbJsr5YwGXystNTou+c97t4xu/s49el9E6V8QbVPwfViZmQvIQLi9celjft 38+jWb0G7vp0jiTi5n/XTu47fiksq2h7sOl/r/l+ac7M0Z6uVjqCjIj/dp34c8eFxxnE1vljK+TL cwTVi7nqP/xa613TUY2cW1d3LAAAAKAZYmF+Wroaxa3vx4RN/H979x0eVZXwcfycmUxJ7z0hhSQQ CKGE0KUJKBaK3RXbi2XFtaHu6mvdYll9V9S1YltFseEqTaSD9BJKQiBAQiCEQEivk2TKff8gQBIS MzMJEC/fz+Pjc0kOZ86cc+9wf3PPPTcoYrPRfUhdzbsn8x3cLlj2/rwpd4ysfvkO7Us/z3C+ni60 ff6G5jRN9L0fLZrZs3LezFHPbemEJcGF6Ar91kW2OzaCuqEv/PeTmz1/eXTCzGWdNpulXR07Bi/p 7ZRuPehnti/254ZDLs6HTIv3qw0IDL9grw0AAM4rnYvNVOfYJZDnSwtP/f9Db3/Htn173LXsK52s 0L785TueDv7dLrk92zug40PQHumTMukPQwP1/jH9ho2+9torJzX+N2G4W/bqTIfn1N9XUXzR+63r bHdsBLWRo2+enGTI/mXO0lZueTmPLnq//U6304yOrcrRFdrMdhfcviCf/KdcnA+Z+QW5Td8v8/8B ALh0zfYOSDe4nrky4ND2niv+d/ot3oG33vTngIgf9Y793a65fQE7XuqCe44IbvoTW/6hL5xYH+v+ ipKL3m9dZ7tjg2I9tmHeR5X6g7kXNPx35Bi8xLfpZ7a7wOeGQy7Oh0yL98v8fwAA1MPR+f9O0wcP ffLDV6bFm5b/5bZHFpWq5954AADUi+v/AADAPtqEO9988toINw9vv+Agb1etUr7pnbeWEP4BAPh9 IP8DAAD7SENwXHxsQH29qeZY5oE96+Z//OmqC3ujNAAAcB7z/wEAUI8LNv8fAAD87vz+H5cKAAAA AADaQ/4HAAAAAED9yP8AAAAAAKgf+R8AAAAAAPUj/wMAAAAAoH7kfwAAAAAA1I/8DwAAAACA+pH/ AQAAAABQP/I/AAAAAADqR/4HAAAAAED9yP8AAAAAAKgf+R8AAAAAAPUj/wMAAAAAoH7kfwAAAAAA 1I/8DwAAAACA+pH/AQAAAABQP/I/AAAAAADqR/4HAAAAAED9yP8AAAAAAKgf+R8AAAAAAPUj/wMA AAAAoH7kfwAAAAAA1I/8DwAAAACA+pH/AQAAAABQP/I/AAAAAADqR/4HAAAAAED9yP8AAAAAAKgf +R8AAAAAAPUj/wMAAAAAoH7kfwAAAAAA1I/8DwAAAACA+pH/AQAAAABQP/I/AAAAAADqR/4HAAAA AED9yP8AAAAAAKgf+R8AAAAAAPUj/wMAAAAAoH7kfwAAAAAA1I/8DwAAAACA+pH/AQAAAABQP/I/ AAAAAADqR/4HAAAAAED9yP8AAAAAAKgf+R8AAAAAAPVzudgNAAAAF01cQt+L3QQAAHCBcP0fAAAA AAD1I/8DAAAAAKB+5H8AAAAAANSP/A8AAAAAgPqR/wEAAAAAUD/yPwAAAAAA6kf+BwAAAABA/cj/ AAAAAACoH/kfAAAAUAHXgLvfnPD5p0Mnd7PjFN+hwkAHaOTFbsGl5reObpeL0B4AAIDfB11A74GX D+sZHxEQ4Ovh6enmrj/+zeOzfjqhXOyGXUqkd8QTs3r3EYXv/nHXloaL3ZquS4aOiR3hJys25Kw4 auvMwlqfW/456KqAmgUvbpx3uCvt+i7+d80aONan6Y+U/J82PfdDlfViNQnNSPfE7o/OiEnwMO// ade/5pfXt/i9QyPIcNvrt49u8j8AAJc2l7h735s5OVhWrH7/3jfTa8/+vPv0dx6fGiorV7xzx78z Lad+qAm6/p8v3J2gVRSbuc5UU1Vx4vDhzPT0NWsyDp97CqaNvG3WU7dGaZXq9DcffH9l+dng4DFm xhePJpUteOP+T7ItTrRZel3xwksP9ded/YmiWM2mshP5ezav/3H+tpzqzggp0rX3bY8+f0OUuxRC sZnrTNXVtaWFVfVaKURXCkFoncbFJ5pDUAIAACAASURBVECvt5nLis3mzi3cJUmPwMkTfV3MZb8s KKppb/90qHDXpZgL9pdkejT+yTXINyaQC81dS/SQiAQfjRSG+KGBYYvKc1v8M+HQCDLc9mnv6Cb/ AwBwidMZDFII6TVwUIpHxrrTyVmfmDo8WCOEotfrWp5jKZbS3EMnLEZPH7/uqUMTBw29/raTG76Z 896C7MrWriRK917XTghd813BmVM/m9IpkcNWdjAzq8QqhBBSa/QOiI2NH31T/LBh8a8+M3dreUdf QhM64u4p3dwshas/nvPl+tyT1dbfb066FEnPkHtf7Z1Uc/T1x/buae9bJocKd0mayPHdB3srpatz Vh1vd0d1qHAXZq1c9s72ZY1/kLE3D3/uGreL2iC0dHhz/v6+Ud1dG/asLsw/9zK9QyPIcNul3aOb /A8AwKVN6g16oVgsVo+k0ake61dXKUIIoe8zqp9/bU21u7veoNcJ0fyaaF3anLff3mERQhp8IlOv uHLadf1H3PVIdNjsp97PaJG7FWtDnVUXe8XYvgu/3GE6/UNbp4QO6/5FH7+05uyMUl1g8vRn7rk6 Zvgfb96++8P9LaeaOsg1IS7GRZjTfpm9NLvq9xySoH7SO2TKBC9NfeniRSV1nVoY6AClZl/2y49m X+xmXELsOLpZ7wMAgEubVm9wkbaCPdvydf1G9/c7da3fLXH0YPfcDWn5ViH1en2bkyyV+vK89d9+ NPO5hXtrXSIm3PXgKJ+WZRv2rVpfJvxTJ484+yubrd3bk51hLkr/fO6OSkXj37dXtLaDlUlXD1et FNVFZSbCP7o2TezEmH7uysm12b8WdW5hAL8j9hzd5H8AAC5pUqfTS6HU5a38NV/ba9DwICmE9EgZ lOqat25tQb0ipEGvb6cOpfbAL7O+Plgn3AfdPDa+xeRC2ZCxeP0hq77vNSNiT//KpnTSHQDnqC8s KrEKjbubW4dvDNVIjRDKefqqAug00j9s6hh3ral44eKydpdHdKgwgN8R+45u5v8DAHBpMxiMUghL 3ZH1Ww/cNHX0ZcGLfqgZNLK37sD89Ucb+ggh9AZD+wve2Y6vXrf9D/EjgpMGR80/kNPkPk+NVPLW z08bP3PQZZP6r5i1rU6ITlsA4FyuYSGBWmEtKik6J7Ybw5KvmTJyRP/ocF+DYirPz8pcu3jZkl2l TU+TtAlT3331iogmcwcCrp7509Wn/6CULX7u2fczWt7Fak/NutS75jwzxEMKIYRi2vby7Z9sMgvp Gjrk2nHjB3QL8/f0cjfs/eiZl1bXKg7W3LgaYlL2O/e8/Uu5cItKmXr9mFH9IgKM5pKcjIWfz1uY de4aUNIY2mvCNSMu6xcTGehhsJlK8vMy0rYuXbojq7SV5e/sakYT+qgRDz98zaBwXXnWqrf+7+fM TlmO8XTLXcIHRU+aEJrUzWgw1+Xuyvtubt7BMy+g9brhH0MmRTT58scn8s+fRZ75k634yCtPZO23 Ol5YCE1IzHOvxkdsT5/xTqFXUtSUa8KTY9yM9bVHc8t2rMxdnm46p+ekMSRg9LjwAYleYYEGd4MU Zmt1ZV1JselEWs7HSytaW2dAEzE66d7rAkN1DQeX7nlvfpkdi/Npe14dk+SqFCzK2VjWCYVdfHyG T4y+rL9PhL+LraI2P6do1eKytr9N04b07zbx8pA+sW4+RmEqrcnOOL588dE9xU2OP437Nc8PuzFW Hp638a8LqpsfmNI9tc9rD4W6HTv0t2cPNl8czo6anSKN7v0ujxqd6h8bZnTXWCsKK/elFSxbdvxw 893U8eG2s82afvePeWyEy6mPgrpNu2a8d9IipDE8cMLEiORoNz8vvZuh7MuZu9Y7uDCj9I54YlYv n0Wbnv9vtV9K/F23Rvb0bsj4Zuc7K2t0sRHTbo8dGCFP/Jr5xpdFFU0qtrM3hC74wff7Dja0sSPY an/++4Zvss++TU1IzHOvJnQ/+0mq7P3P2n+urL+wc6k0MeN7Tx7oHuRv9PHWueqFrcFaVVJ9aM+J ZYuOZnV4hRj7us6Z4W6seaB/bJjBTVrKimqydxZsOKAZfkt40ewtP7T5DA47j27yPwAAlzRp0OuE UMyWusKMNXun3HfZwJi15aOTtfs+23XSHGdWhDTo2jrpa6bm0L4j1hGJgTFRBpFz9jECUmikqNy4 cMu01FHDrx385fa1RYoQijgPV9Wla+TgB+7s7yFMu1duP9bsBbTBl932wkNDu+ktFfl5mWnVWr+w +IGj7klNHfbVOy9+n3t6XQKh1BbtT99XrBFCCH1AdGK40VKSvzf/9PmcrTq/usWL2l1zRUHG7n2u GtewhKggrYteK6Rb4l3P3XddvOvp3rV4e7kKUetozaffvbuXp1vCyNv/fHvfYJ2lpqrB5uIe2mvo vc+6VT/8warSpmeMupgr7nxqekq4QShmU/HxYwUW1+CoXuPie4+bcvXW/379znf7ys4Wd7AZQgih T73xhlFxRimEW78rbxy8du/KzvoCwM1rwp19b05xdbFYqusVrYdbj8t6PuZufubNgsYWK5bC7JLM CimEEC7G6AR3N2t93oHqM69vq6itOVObQ4UbSRdv94E3DLpjkrehxpR3rNoj1CO+v0d8/+B+3+94 Y2FFkxtupVti/FMzo6MNwlRafTS3urZeSIOLp7drcFyAx+Hc1t+gIXDyH0JiXKUQLkmTYlNW7vi1 vaUnZHDE1JGusrpw/i+V7S5c2F5h6RYX/fCj8YnewlZrysuurJSGiH4xD6R0a/1GYq3r4P8ZcO9l HjpLw/Hcst3V0ifcu+/lPfoNCZ73rx0Lzzzaw1b76/Kiq+8PjhoZEb8ka3/T3CwNg8YGeQjrvpX5 h62O1+w4l9Dwex/rNSRUCrOlqKCiUDGEhfkPn+o3ZFTot2/uXprbomb7h9uBNlfll2RmumiM7t1j jVqdViuEW+/4xx+OiTmzmJ1F7+GmiHN2PjtIDy+D36CYp2eE+GuEkG59J4TFHmq44c89ergpQsro MVEDFxWvPH18O9AbtrqD206cc+VYG5gYGOMtham2sPnar0q9KSezpE4rhJCe4b6RPuKiMIb59YkW JcV1+TmVdQ1CY9QHR3qnXOHTL8n1tRf2Z3VgiRj7u87R4dZFRNz/aGJqsEbYLOUF1bm10ifEe+gk v2FSCGv1grabZPfRTf4HAOCSJg16gxTCbLbYyjeuzbr7wcE3TKtMUg58sLlcsVgabIrUG9q+/78J pbq8QlGE9PJyl6LpRWyplaI+c/XP2cPvSho9MW7DFwctwtY5CwAKodF7+AWHBUfFxvQZ0G9ESqSX qMz84T//+qW4af36+IlPPzQ00nz4p1mffbnpZJ0QQmi8eox/4pkp/W+585aMlz7Laswktvz1s15c f6rZQdc+Pvue7tXbfnjh/ay28ob9NVsOLHvphWVCG3XHW3++KUSn84i66cn7r4syZS5dujztyImy qoqKqvKySsXxmhtpfYc+MPOGRL8Tq7/93683ZhQ1uAQMeOjley4P6jUm1Wv10jOX/KTv8NtfuD/F 33xizQdffroi59T1fmnw6zl0xJTrR4To65uud+BwM4QQQqmpqRPCKIQQwlxTa+6ssfae/FRquH/d 5rlp368qKW6Qfqm9n/lTeECf0H7ex1efuppnq133Sdq6xjca+Zc3eiWair5/PTO91QF0qPCZViR0 vze45OdZ6xfuqq1XhNAakyYl3TfFr8f1fa47sGnumdkCUpdyVVSUUTk8f8vL8yqbB0Wtm4ut9Rex WWrqpHAVQgjRYG6/66Su76ToBL1yZNGh7ZUdLSy9Am9/KD7Ry3p46Z73vi8srBdCCOnuOfS6XtPG eZ8zBUgTO6nfvZd5mHMOf/Bh9vYTViGE0Ojirkp+9Cb/qffGZj174GDjvqFUbsvbfEPQ5UGhY5Jz DqSdfVea8PAxiRpReXz5xjrFmZodZPS96ZFeQ0KUY2sy3/u6IL9WCCGk0X3QzcnTL/e/9eGehc9l 7moxC8DO4XagzbacxbteWyy0sfEvPR8bpNO4x8Y++EhMRG3Z6kXHdh+qLa9qqKqsL69w6g0KxatH 7IMDdPs+3vRVmuHWf6aM9A+66wFN+ZJtjy6pH/b0sJtj9J4eQpQ53hvWimUfpi9r9lqasNHJf0kV wlSx+M30NSebt6PsxJevnzhVbMADYx4Z1tH1WJxiy/py3T2fN/vHRrr63vp86pXh4cN7HMxKd/Zr aAe6zrHhlu6B0x5LTA2UpTsPfPJFXmaxVRFCaFwiBna/6+7oBNe2m+TA0c39/wAAXNKkzmCQQjFb zIpSsXXrDlPAZaNjLRnbNlcoQlgsZiENeoNdNWm0WiGFMDe0vIQmNULYTi5fkF6tCZlwTZKH7Kz5 /y4D//T6D1++/P7rDz8xbVgP1+IN38159sHnn57T9PK1ENJ7xE2Xd9fXpf3no08aE6wQwla5f9m7 3+eYtcHjr+hp3xs8h9M1S6/B995zS3j+1y/84+n3flm5ZV/mgfz8worqBsX5mqVnXJRl5Wv/ePzt NRlFDUIIS3H6qp2VitT4+nmePeHTdb/hjoEBmtrtH/37jSU5Zyb7K/Wl+9YseOWRZ56Ye+hsVnXy DZp3z/3k4yU7tqftXDLno8+2dPA5DGdoDcEuRZ/+dcv7v5QUNwghlNKdxzMqhNQYfL066SXsUV/y 1d93zttZ2ziV2Vq356fdn66vV7Rul40PbHJ+rjEYpRRS76bTt8g+VmttW/OgzSX/fS9r5bbi3duP fv/OgR3trc6vDY+cMtQgK07MX1Hd7jXx9grL8LHdh/jK2t1Zb33VGP6FEEpN1ca5+89dS0z6hEy+ 0lNnKvrmnf2NcVcIYTNnL9674ICiDQ0f3btJzGgoW7G6yip0A8YGN1khVJMwJrybVhxfl7eryTeG jtXsCL/h3ceGyYYD2W//pzGzCSGUupotc3Z9m2mV/qGTR7m1rNq+4Xa+zd6Bt8/oHpaX89qz2z5b eGxHZtmhvJqicouzX5pJTYjh2Jy0T9ZX1TaYK02K1OsrV+98c35pmdlcdSqmnu5/Z3qjyQsFj+jz 5F1BPpbqZW/v+D6rs77k62SKteU3zYqpYt9hiyK1vr5ap9eIcb7r2hluGT4ubmSgtORkv/Hv3D3F px85a7Pkpx3/7RsWHDm6yf8AAFzaDDqDVKxms1UIpWrP2rQaRanbuS6jShFCsTRYhPit9f+b0PgE +mqEYi0rbzHZWyM1QgilcsuqFccV76FjxwZLpXMeAGgr3L1x1Y6CKoswVx/fsfjHT77duPtEy2Ql 3ROG9DGKmj3L15c2/5VSlJ51zCrd42Iinbo45XzNLt2G9K396ZX3vt7b+i2+TtVsTvvk7dmbSppc GFXqTGZFCKk5e77nEpOcGqRRKncv/rW0lWtfNrO5ySxsp9+gUnFw/gezX/zbh+/+sK/Dt2ufYSn7 9pWMtflNTm4Va11Dizd4/tWbCsuavyfFnLHhZLkiXWO9z3aHUrdj1YkSqwgblzLrzWFPPtBz6vjQ 5FhXt/Z2tcqsI5+/nfavt/Yu2lPXTtdJfcrkqBgXW/aSQzvbvcOi3cLSNamPp1aYM9YWlrZ/dEq3 xKBEV1GbfmxLSfPfKHV7M2usUhcb59HkvSoFv+alm4ShV8SIsMaPE+keOHaIq2woX7W6wup8zfbT 9Uz21Qnl4IbjhS2W8LDVbV5X0iBkVJKfV4sPO7uG2/k2u0QH9a458tasnP2ddI+MNe/Y4rSze45S W/TLiqrWFupwqjcayYAhfZ6cHuxnrVn9btrcPQ1dM/w3klqPYM+EpKAhIyOvmpowbXrSxB5a0fi9 tHOc77p2hlu6Jvf11Arr7mV5+Q7NcHHs6Gb+PwAAlzRpMOiFsJgtihBCmHasTS8boFu341QuNZvN inTXG7VCtHc2In3i+3TTKObczP3Nrz5IqZFSCEU0HPp5yaGr/qf71RNjV+zqlFX1bUfX/TBrTYNb 99FPPHvjjX95svsnb7286FiLy83SPyhEJ6Vr6tPfpLZai+Ll4eHUhSDna1aqNs/+cE5mbVunzc7V XG9u/zxc+nh7S2ErKy1puYhhpzXjvFHMFe3dDH+xKBX1lTbh66pzbdIdpZvSnz1WOHpMWEofv15D o/oME0Io1lrTgW1HF/x4JLOko+9FG91tcqpOKc3/aXVNu4dT+4U1hgBfIWwNxWV27BpC+Aa7uUhp HNJv9pDWC3h46pr+USk/sXxzXN+xXiNHeS+ZW24RwndwZH9PUb05b0PzyQWO1mwv6eLlLqWwlpWd e7FaqS+tr1Gkl6feQ4p2F4Y7d7idbrNSeXLO2wdbWaHTeS0veLdeyvnekH4Dez95X0igYlr/QdoX Oy/wkn6O0Br7XNvzpnGB3bw0QrHWltUVFZtKiutM9YoQHfjc6sCO1M5wawx+vkLY6guLrA71qoNH N/kfAIBLmkav0wlRc3rSfl36mjlzdGmnVrlTLA1mRUi9XidF3W+fj+gTrh6dpBO1O7dvaXnxUHN6 wqlyYtXKTTfcN+ryMYNz2ru06QClNmfN//3T6+W/XTng7hkPlrw+a1OL0y4phFCqj6xZeaCstVe1 1Rw87mRrnK3ZVp13pOI3X/N8tVmpqKpUhJuff4CLyG0/552/rrswFCE0UmPnqb5DhZvT+hp9NMJW Ud/ixtuavMLFnxcuFlLn5RYV6x3Xw3/AkJCeoxISEgyvPLv/QEeevycNw6ZGRWis+xbl7mltEUbH C1vrG4TQ6H282n/chxCNAarmUMG6rIbW9gGlJqvF91vWfSvyj47s3m1YZPJP5TvqPEaM8dXbalet ONkyDTlcc/O/LdsYQsVSWaMoQuPjo5OiZWrVeevdpBA1DfYk8VaG29k226pqjnZ4IXpnONsbPv0S n3wgLERTt2X29s+2deLn+FltjqCDhYMu7/Pwdb6aY8f/8+6hbdm11Y1pXSbfE9QvogMZuAM7UnvD ba2rE0Kj8/LQCGHX13BCOHF0k/8BALiUSZ1Br5HK2Zv2zXnLl575rcVsObVCgBBVv1GJNnDYLTOn hGrN+Qvmbik+53LRmUilVGcsXHHisuv6ThqT06mXjZXarEWvf9bt9ft7j3nonrzCt+cdOpusbCcL jtYpMXrLoV9+/LGgM09Xf481Ww7vy6i8PNQ7eeJw3+2ryn47eDjdDOkZdcWN44dE6sv2rZ37Q2aR 3WeyncpsNQsh9QZvVynavT3ZocItSP2A0UHeUindW3K09beqmCtrsnfVZO8qWLqk5OHXk1KC/HoG yQP5576QdI+NmHxVUJi+/sCK7MXpdW11nS4++tpkF+XkkZ9+NbXbXLsKW2tzDluUcF2fYYGeuwqb zrTQeLoGuLY4YJXi/Op6xUNvqVr17eET9u0b1vz8FZnR/5McNGagYc/JiJHdpCX76KrsFn/ZmZpP sZhtQkgP77buVzLv31Nu6e8bPzwk8NcjJ5vWLA0pw/wNQsndU1rRbm+2MtzOt9kR0r9//LRJgcHa uv3L9s9dX+3cGoinOdMbXkk9n/hTRJi2Pu3TtNkbTc4/hqEN7Y2gQ4Vd4pK89cK2c+G+1fuatFTq PD1+e+Z/u/3cSTvSuaw12YctSoQ+eViAx+7CphP5tQHe3dq4GcPxo5v7/wEAuKTpDTopFLO5tcyj WMwNQgi9sa0zLKnziUme+qcn3npyaJgoW//uh9+2si5307uzLQeWrN1T7xLXv4d3J7X/NOuxX774 9+oSm1v3aX+5ZXCTNcaEKXPp2mKbLvYPT027soe3UzOH2/B7rLk+68cfc2qFe+p9D8wYFX529r7O K3bQmPuef/5fd8WfeSyVs81wSfrD/TMmDxw4IHn8H6bfNdjJ1RU7SjGZCisV4eJ3+TX+/u0FCvsL S++Qm+6IiPE8XUZv7HdjvzsHGURt6aKlZU1yhsbVU+fSsibpEerhqxOKub60srXaXXyvfzjxysEB yf3Dr5+RMMDYViOMI6+LCNaY0xcc3t/uJAJ7C1syVuYftyreg3s9dH2Af+M1Qo1vYvRDzyalnrPC Yl1G/saTwiW++8PTI+N87EsUSv2WZSfKFW3vsVFXjgsLlJadywtOnpOWnalZCCFESaHJogivgdET exhavdm+dMOhX4uEoUfcQ3eEhBmbjeBt/V2U0oIFq2tbNMfO4Xa6zQ7QBUy5JyYlziMiJmDsnXEp bu3/jd/mYG9Ij8SEmY90i9Q17J6T9v6vNZ0e/oUdI+hQYatVCCl9As78VuPdPey2p4dNH+AihdQb 2hgmO/rZiR3JPtbMU8fgkMSzx6DUBvaNe+KZxL6trnLqzNHN9X8AAC5pBqNeCGFuvP+/OcXcYFEa nxDQjDHljkffuN3dJzAg0EMnha36aNqn7307f19Va+c8zdZZUoq2zN84MXmst7RnirFDlIpNsz/9 IfqRG2OHPvZEwVN/W3G48XSoPn3O7E+CZtw9cNif/jlkellhXn5pebWpzmypK9jx9bfp50xYsJ/d NUvvoXdPuzJSI6QxPEAjNH4j73swrlYRQliPrH3z8/Rzntd0/tpsPbrgkzeCZ8yc2G3izGfH/7G8 IL+01sUzNDzAy6AR9SW78tw9taLW2pFmaLw83U7vMTp311YmyV4Q1ooN66rHTPaMnpjyxhU2U7XZ ZLKYTOZjazPfX1Hdck+1u7BithqTE18cHpefW1Vu0wV38wx014i6quXvZ6wqbHrBznvqX1PHe5nL iuvKKs219Tbh4uIV4B4ZrNcqDXu/O7il1cf1aXWeZ/KGXufaxo03xt6x1yRqrQWHf9rUzn05DhU2 H8z58Dvvx2/27Tkp5bWxtfkF9bpgrzBvcWJD1sKinpMSm5euK/3+nf2Bjyb0HdnruREJ5cerj5c0 1JisZrO1cGvOTztbf626zLw1+WFTYqOvixFKUd6KHa0tWeFUzUIotbuObjgZMCbY/8ZnRk9tMNdU m2tq6rd+sf2/+22nS5R8/XaW/2M9+16e/PJllqKC6nKbPjjMzdsorKXF37ydteOctdPsHW672yx9 gm6dHhmmEdLo5qcRGv+Q2x/3MilCCCV/Rca3O9uefKLRGvWnb1zXaHQa+27TaJtDvaEJ6/bwozGx RqFUNcje3e/v3bK2mvScL9ZUn3n6ZdSEPjf01UkhhJBekVohZLdxyY8PODUQypGlGfPSW7l5vt0R dKSwdd/mosqUkJipqc/FlR636EO7eXUL0pbuPvzNcv+bx3vFXdvv0diK/WsOLtnXvCV29LP9Xefo cJuzc2Z/7/3Ezb6Jkwa8NtaUX9BgCPEM9RLHNx3Z2j1qcEDLXnDq6Cb/AwBwKZMGg04I0WBu9WqO teHUpGh9i59rfcIj9bU1FccPrDlwKGPr1vXpRW2vZdfilmrTjoXrj4y8Kvp8nIOYcub+68f4V2/q nzTlqenH//xBZmPGMh1d8NLfdg4cMm5EUlL3kMDo2G5GF51Go+QWzv8uvUMn0fbWrAtOSExJPPOe DaE9e4UKIYSwGPa0fn38/LXZVrb5w9ce2jJi8sSBKT3Dg2MiTCVFBZk71mfuWrVq9/7S5jM4nGlG w/af5m+KujolWBZlLP92c2eubeYQW+5/t71cFD12oG9EgN7dVWtwMwT4GuuNrd+IbW/h2qI5fz3m OzFmZB/v7kF6papmz7bjKxbn7TzRfKq+Vik+UHwwzC3A1xjm72HQS2G2VpXWZK47unXN0U0H61u/ fFpf9PO8kxFTAgOlae/POdtbXcpb4z5mapifNG+ffyS33SngDhUW1tyf017M63b1uKAeMZ4RUbrS vKJFX+Us2lKTMD3u3KbUHT4y63+L+44IH9zXNybUNTLOw6jTSo2Sd/zI/J1t7BvWqrUrSifeHWCU tpxVR9taAcGZmoVQaorn/GN77vjwAQkegd56Nzedb5B0b/7dZcORvDefLR88IWpkil90mE+AYikv LFmfVrBs2Ykjrfa2ncNtf5v1brFJAQlnPgqMbvF9Tn3lo+h3/+ZCq/VFS+adjJwc4C/r9i06tL0z Div7e0P6eYS6CiGE9PTsm+p5blVllUe/aPJHz3C/5ORm3xt7RPglR5zatMltrV97t2cE7S6sVG7N /D9Dw01XBMb0Dg5vqD9xqPDHL3OX7qpt0BdU2XpOTPHsMTBUST/wc4t67etne7vO4eG2Hlqc9sLR bteMC0qI9oyIdinLK1r4Vc7irZqr/xHVsqyTR7fs2WtQu6UBAMDvgpvRUlrmwOPW4xL6nr/GnCfz Vv/w974jdvsF9y0tfG73era7wvbF3ikuCE1IzHOvJsRWHX39sb17zsfsZ7tI95SkVx4J9TyS88KL OXntrKzgUGE00zWGGxBCCKH1uuGlIZNCaua/sPGHI40LGTp7dGsDAsPPUzMBAMAFpnOxmdpcMawV fv4h568x542csT/t1P+/i+7FdlfYzvQNvNh7xfknPXxHjfP3bajcuLTo3LvWLxCt51V/7Nnfx7z5 8z2rjrXXCIcKo7kuMdzAKVr31GvCYw21u5YeO3jq8TzOH91c/wcAQD0uhev/QoiucMWb7abbN4y5 /jyN9RVfzDlPNQPAJYj8DwCAelwi+R+4CJgQfklhuNEVSL0hvFfY1GlxA4M15b/ueOqjIlNHq2T9 PwAAAAAALjbpGXTbI917uGtdXV2MRhc3N42LlEKI2kOHP/62uMPhX5D/AQAAAADoCnRBUe6BFku9 yVpdVl+U11BaVJ2TfmLD9oqKzlnCk/n/AACoB/P/AQBAW1p/+CIAAAAAAFAT8j8AAAAAAOpH/gcA AAAAQP3I/wAAAAAAqB/5HwAAAAAA9eP5fwAAqIqfr8H+wqVFWeevJQAAoEsh/wMAoB61dfzLDgAA Wsf8fwAAAAAA1I/8DwAAAACA+pH/AQAAAABQP/I/AAAAAADqR/4HAAAAAED9yP8AAAAAAKgf+R8A AAAAAPUj/wMAAAAAoH7kfwAA9crKhAAAAs5JREFUAAAA1I/8DwAAAACA+pH/AQAAAABQP/I/AAAA AADqR/4HAAAAAED9yP8AAAAAAKgf+R8AAAAAAPUj/wMAAAAAoH7kfwAAAAAA1I/8DwAAAACA+pH/ AQAAAABQP/I/AAAAAADqR/4HAAAAAED9yP8AAAAAAKgf+R8AAAAAAPUj/wMAAAAAoH7kfwAAAAAA 1I/8DwAAAACA+pH/AQAAAABQP/I/AAAAAADqR/4HAAAAAED9yP8AAAAAAKgf+R8AAAAAAPUj/wMA AAAAoH7kfwAAAAAA1I/8DwAAAACA+pH/AQAAAABQP/I/AAAAAADqR/4HAAAAAED9yP8AAAAAAKgf +R8AAAAAAPUj/wMAAAAAoH7kfwAAAAAA1I/8DwAAAACA+pH/AQAAAABQP/I/AAAAAADqR/4HAAAA AED9yP8AAAAAAKgf+R8AAAAAAPUj/wMAAAAAoH7kfwAAAAAA1I/8DwAAAACA+pH/AQAAAABQP/I/ AAAAAADqR/4HAAAAAED9yP8AAAAAAKgf+R8AAAAAAPUj/wMAAAAAoH7kfwAAAAAA1I/8DwAAAACA +pH/AQAAAABQP/I/AAAAAADqR/4HAAAAAED9yP8AAAAAAKgf+R8AAAAAAPUj/wMAAAAAoH7kfwAA AAAA1I/8DwAAAACA+pH/AQAAAABQP/I/AAAAAADqR/4HAAAAAED9yP8AAAAAAKgf+R8AAAAAAPUj /wMAAAAAoH7kfwAAAAAA1I/8DwAAAACA+pH/AQAAAABQP/I/AAAAAADqR/4HAAAAAED9yP8AAAAA AKgf+R8AAAAAAPUj/wMAAAAAoH7kfwAAAAAA1I/8DwAAAACA+pH/AQAAAABQP/I/AAAAAADqR/4H AAAAAED9yP8AAAAAAKgf+R8AAAAAAPUj/wMAAAAAoH7kfwAAAAAA1I/8DwAAAACA+pH/AQAAAABQ v/8HbLCelvekaxAAAAAASUVORK5CYII= --000000000000eb3aa10602955803-- From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 10 14:36:11 2023 Received: (at 65198) by debbugs.gnu.org; 10 Aug 2023 18:36:11 +0000 Received: from localhost ([127.0.0.1]:44110 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qUAW3-0004dd-90 for submit@debbugs.gnu.org; Thu, 10 Aug 2023 14:36:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33780) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qUAVx-0004d0-O8 for 65198@debbugs.gnu.org; Thu, 10 Aug 2023 14:36:09 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qUAVs-0007iz-Cm; Thu, 10 Aug 2023 14:36:00 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=HpqOQJn8cwqZA9bjFsYY/LGQe81v2x2QYKh6uJluu1k=; b=ORik2JJ7zS7HzZzIJfP6 cicmEs8qoBOyFUD3CT1zbynO2UfXMntgAZdCOvP9DfOhJY76ngvG9jxGt0IA9vd++jXq7BnInFFv5 CVor3nmxUFss5aGn+zBzDLUD9CoqjZ/IHOIV0sXo+svgeneCjtTgdVpP8epvYzL2RmEDWmbrHPTBT 6zOZNJtYikS/ZR2NKDUJv3rNuVu9LnWzzvmjXdhjMDSvSKAPgQph3bNfZeZw3cuTrDbQ3qM/2YUUe m7d2eTXKBnIqs5gBIQ9iQFJRd7DH9UuGN0XemdYv6XBJ5mbJCSCWU62zzlAzPA9jEE4FNejLJ9+7W BEPhJroFfL0Bmg==; Date: Thu, 10 Aug 2023 21:36:26 +0300 Message-Id: <831qgaiw2d.fsf@gnu.org> From: Eli Zaretskii To: =?utf-8?B?5byg5LqR5bOw?= In-Reply-To: (message from =?utf-8?B?5byg5LqR5bOw?= on Fri, 11 Aug 2023 01:58:34 +0800) Subject: Re: bug#65198: 29.1; Emacs29.1 crash in function face_for_font References: <83r0obi53o.fsf@gnu.org> <83bkfeizgz.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 65198 Cc: 65198@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: 张云峰 > Date: Fri, 11 Aug 2023 01:58:34 +0800 > Cc: 65198@debbugs.gnu.org > > 2023-08-11_01-53.png > when popup frame has the warning-icon (marked in picture) , emacs will crash immediately. Can you try the patch below and see if it prevents the crash in these cases? diff --git a/src/xdisp.c b/src/xdisp.c index 9cddcfe..b25bdc7 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -8312,9 +8312,14 @@ get_next_display_element (struct it *it) && success_p && FRAME_WINDOW_P (it->f)) { - struct face *face = FACE_FROM_ID (it->f, it->face_id); + struct face *face = FACE_FROM_ID_OR_NULL (it->f, it->face_id); - if (it->what == IT_COMPOSITION && it->cmp_it.ch >= 0) + if (!face) + { + it->what = IT_GLYPHLESS; + it->glyphless_method = GLYPHLESS_DISPLAY_EMPTY_BOX; + } + else if (it->what == IT_COMPOSITION && it->cmp_it.ch >= 0) { /* Automatic composition with glyph-string. */ Lisp_Object gstring = composition_gstring_from_id (it->cmp_it.id); From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 10 20:16:02 2023 Received: (at 65198) by debbugs.gnu.org; 11 Aug 2023 00:16:02 +0000 Received: from localhost ([127.0.0.1]:44300 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qUFov-0006OQ-Tt for submit@debbugs.gnu.org; Thu, 10 Aug 2023 20:16:02 -0400 Received: from mail-qt1-x82d.google.com ([2607:f8b0:4864:20::82d]:48210) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qUFos-0006OC-HV for 65198@debbugs.gnu.org; Thu, 10 Aug 2023 20:15:59 -0400 Received: by mail-qt1-x82d.google.com with SMTP id d75a77b69052e-40ffa784eaeso8761901cf.0 for <65198@debbugs.gnu.org>; Thu, 10 Aug 2023 17:15:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691712952; x=1692317752; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=hwanIGtp9NMQ5yGWtWAHgPG0GZ/N+ezhorCJzdEfpPA=; b=OocfVsBZsIMrSCDw3UXXMfoEjgGVl6jUNxMGdJHXPjOCvcSIN2O/5Cg2/xjPJl+MV/ nF8BtgVOap44jlzcmKcRdcee3yFxE91bzJcF4g+EWKeuhvpRUP9/SPEWUN2XqGU1w2Bv pS1zsBntBurphZlIgro75HjQMYNsueKRfPSxxM+SIZzq4S7FpDUNvn2uB/GGOx/yN+JR aooYa3me8BA9qCbcwCmct39qpvXDKtBupT79s50xzbAJxtzaqlhihdz9yBd5KjUhta+n kfphl0F0UbQIgWiznEEHW4cIb6pvYmOddspqc3Rv9crsyD/4wQR+qOr8FqzPyYhb6/vz 7m/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691712952; x=1692317752; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hwanIGtp9NMQ5yGWtWAHgPG0GZ/N+ezhorCJzdEfpPA=; b=CKxK4kXMn2K8XpfBBcFySNokFL6pkoH8vuNauVay52YR7xY1dbL3GVmiRFJ3Puaq5G WEO6JCBQymVNn5uSOc9dahgQVWaSHIdSiislVtvH5AG6yKEEQWpY/zHV4yjpAVWbL7E4 BHyZ+4TExzwUBrvOejFuipERYrvoQnYVgJ2mRifEHP6GDAKFr0lTHvPK1BWglp1utvb3 lMbyztXUr4SF0CTDJgKLVnRzbZtmvjtz31D8MAGmC52v/8LdSggJPtk5ulMMK6I6y+vZ USvM8NQ375rXjkwl051YzhU+muVczRx35PyYg75EGxo2Gl7r3c1YTgBGpu+8uqaNesmu Mong== X-Gm-Message-State: AOJu0YzKBAnw0qHIA83iDM8wl6cj6J5BLMVrhtob0R2Zr1lbPnx0eTYk /xaFl2269YAmECvLBoG6ppdiPdGb+1lTRYX5XS72oM+mOnPfhRTO X-Google-Smtp-Source: AGHT+IH0f3traDKo6kINcSQ/c2AFoJOMi8p3kjZBqMrTqbs66Hpmg4Vvb9gihiNQneqgvAFJPmi47ngqkCUeIicKbu0= X-Received: by 2002:a05:622a:1ca:b0:40f:cca2:4a9e with SMTP id t10-20020a05622a01ca00b0040fcca24a9emr362151qtw.44.1691712952572; Thu, 10 Aug 2023 17:15:52 -0700 (PDT) MIME-Version: 1.0 References: <83r0obi53o.fsf@gnu.org> <83bkfeizgz.fsf@gnu.org> <831qgaiw2d.fsf@gnu.org> In-Reply-To: <831qgaiw2d.fsf@gnu.org> From: =?UTF-8?B?5byg5LqR5bOw?= Date: Fri, 11 Aug 2023 08:15:41 +0800 Message-ID: Subject: Re: bug#65198: 29.1; Emacs29.1 crash in function face_for_font To: Eli Zaretskii Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 65198 Cc: 65198@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) I've tested this patch, unfortunately, it doesn't work, still crashes GDB information: Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. 0x0000555555619516 in produce_glyphless_glyph () (gdb) bt #0 0x0000555555619516 in produce_glyphless_glyph () #1 0x0000555555640789 in gui_produce_glyphs () #2 0x0000555555623f70 in move_it_in_display_line_to () #3 0x000055555562935a in move_it_to () #4 0x000055555563e84f in window_text_pixel_size () #5 0x000055555563f526 in Fwindow_text_pixel_size () #6 0x00007fffe7dc07a8 in F6669742d6672616d652d746f2d6275666665722d31_fit_frame_to_buffer_1_0 () at /home/zayfen/github.com/emacs/src/../native-lisp/29.1.50-9e9f496f/pr= eloaded/window-0d1b8b93-6f4eee58.eln #7 0x000055555576a032 in funcall_subr () #8 0x0000555555766ba1 in Ffuncall () #9 0x000055555576aa04 in eval_sub () #10 0x000055555576ce6d in FletX () #11 0x000055555576aba7 in eval_sub () #12 0x000055555576be0d in funcall_lambda () #13 0x000055555576c3ee in apply_lambda () #14 0x000055555576a49b in eval_sub () #15 0x000055555576ce6d in FletX () #16 0x000055555576aba7 in eval_sub () #17 0x000055555576be0d in funcall_lambda () #18 0x000055555576c3ee in apply_lambda () #19 0x000055555576a49b in eval_sub () #20 0x000055555576ca2d in Flet () #21 0x000055555576aba7 in eval_sub () #22 0x000055555576aba7 in eval_sub () #23 0x000055555576ce6d in FletX () #24 0x000055555576aba7 in eval_sub () #25 0x000055555576af0d in Fprogn () #26 0x000055555576aba7 in eval_sub () #27 0x000055555576aba7 in eval_sub () #28 0x000055555576be0d in funcall_lambda () #29 0x000055555576c3ee in apply_lambda () #30 0x000055555576a49b in eval_sub () #31 0x000055555576aba7 in eval_sub () #32 0x000055555576af0d in Fprogn () #33 0x000055555576aba7 in eval_sub () #34 0x000055555576aba7 in eval_sub () #35 0x000055555576ce6d in FletX () #36 0x000055555576aba7 in eval_sub () #37 0x000055555576af0d in Fprogn () #38 0x000055555575666c in Fsave_current_buffer () #39 0x000055555576aba7 in eval_sub () #40 0x000055555576aba7 in eval_sub () #41 0x000055555576ce6d in FletX () #42 0x000055555576aba7 in eval_sub () #43 0x000055555576ce6d in FletX () #44 0x000055555576aba7 in eval_sub () #45 0x000055555576be0d in funcall_lambda () #46 0x000055555576c3ee in apply_lambda () #47 0x000055555576a49b in eval_sub () #48 0x000055555576d66b in Feval () #49 0x000055555576ace1 in eval_sub () Eli Zaretskii =E4=BA=8E2023=E5=B9=B48=E6=9C=8811=E6=97=A5=E5= =91=A8=E4=BA=94 02:36=E5=86=99=E9=81=93=EF=BC=9A > > > From: =E5=BC=A0=E4=BA=91=E5=B3=B0 > > Date: Fri, 11 Aug 2023 01:58:34 +0800 > > Cc: 65198@debbugs.gnu.org > > > > 2023-08-11_01-53.png > > when popup frame has the warning-icon (marked in picture) , emacs will = crash immediately. > > Can you try the patch below and see if it prevents the crash in these > cases? > > diff --git a/src/xdisp.c b/src/xdisp.c > index 9cddcfe..b25bdc7 100644 > --- a/src/xdisp.c > +++ b/src/xdisp.c > @@ -8312,9 +8312,14 @@ get_next_display_element (struct it *it) > && success_p > && FRAME_WINDOW_P (it->f)) > { > - struct face *face =3D FACE_FROM_ID (it->f, it->face_id); > + struct face *face =3D FACE_FROM_ID_OR_NULL (it->f, it->face_id); > > - if (it->what =3D=3D IT_COMPOSITION && it->cmp_it.ch >=3D 0) > + if (!face) > + { > + it->what =3D IT_GLYPHLESS; > + it->glyphless_method =3D GLYPHLESS_DISPLAY_EMPTY_BOX; > + } > + else if (it->what =3D=3D IT_COMPOSITION && it->cmp_it.ch >=3D 0) > { > /* Automatic composition with glyph-string. */ > Lisp_Object gstring =3D composition_gstring_from_id (it->cmp_it= .id); From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 10 20:50:25 2023 Received: (at 65198) by debbugs.gnu.org; 11 Aug 2023 00:50:25 +0000 Received: from localhost ([127.0.0.1]:44318 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qUGMC-0007Ho-7Z for submit@debbugs.gnu.org; Thu, 10 Aug 2023 20:50:25 -0400 Received: from mail-qt1-x82c.google.com ([2607:f8b0:4864:20::82c]:56482) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qUGM9-0007HZ-09 for 65198@debbugs.gnu.org; Thu, 10 Aug 2023 20:50:23 -0400 Received: by mail-qt1-x82c.google.com with SMTP id d75a77b69052e-40ffbc3488eso9594501cf.0 for <65198@debbugs.gnu.org>; Thu, 10 Aug 2023 17:50:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691715015; x=1692319815; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=WF4wR3w8kWy0+SfttlSGArJQ9inWSxklYtG8QTxY5Kg=; b=i1VyH7s/2kvtmP/FYyu1i2MEtkW0SV/RaO4h7aYPv8kjPZ5Hlc69jrny8M1BLQ//9z b7psaYm3NH75sPNQ68DmfKn5DR7QeqZ8PQMPihG5nBkKvf2lzkqHONmwRput/p1SIpPe jJhohYukG2CtWa7uBdNuIg1fzKcSfRyL9oUjtZOzs76XJnyLI07b5il1CTsBPpfQBtT0 ID2SZykr0OCNoVaXYchh62875ONhBZ1JQZlQpQy2RwDtlHDcw7OPo55vUu2JjwTxTe33 gnsVsEfZo00Uyry5nNjvuQPuC/oGe+Ndcig+n8H+oUeqBnVQkwmAvN+bBoFH5TyF0zFW 8Rmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691715015; x=1692319815; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WF4wR3w8kWy0+SfttlSGArJQ9inWSxklYtG8QTxY5Kg=; b=LTy8H6c+7ZiXhQtxyQmf1HwRd5lZHvPixEYDlBuIwvn+4KG/J77qxd4ZckHjipQIC1 sKSt2a27Dx4w3qD7aLxAwUInQSn2V2FxQ27V8eSPR5nusFYLFXo1b6g9GfTVFC8DbuF5 hae/lwfm4+fMz4I7dtXPy0p90Htb0TVw8S6HF6Wa6wnzSmn52TAfw3cG681M3UqfrLEH fJvdRotvu9iy0BJjg3b/KQIyOnCb3zm+Ao1Tms6H1Aqj6ajJsOPwiBdfU9SD3TcBluY9 lJOtQdMwVwjay4mDhWbsegj3jDIhr6FnudHvDO5l51BBYlT7SxrTMHl3lg3eDzUYQbje BFzg== X-Gm-Message-State: AOJu0YwtBVIjMy3ktypRleiLzg8q+vzWWajChVUUDUpyyAbvBMjsXUpD 889meVjjrx28XnWwxmT8gmbmDpz/60ZfsLWvb2Mv0Y2v4LUmn1+h X-Google-Smtp-Source: AGHT+IFc9pFkkpvrIizcx/pEaAtFAr8cQivFvKX+Rc6N51r674YyAG15xWyJ4IZr/i8J/EorAtQcfh+gyBAadkhCdLs= X-Received: by 2002:a05:622a:178f:b0:403:fb43:bcb0 with SMTP id s15-20020a05622a178f00b00403fb43bcb0mr381781qtk.46.1691715015291; Thu, 10 Aug 2023 17:50:15 -0700 (PDT) MIME-Version: 1.0 References: <83r0obi53o.fsf@gnu.org> <83bkfeizgz.fsf@gnu.org> <831qgaiw2d.fsf@gnu.org> In-Reply-To: From: =?UTF-8?B?5byg5LqR5bOw?= Date: Fri, 11 Aug 2023 08:50:04 +0800 Message-ID: Subject: Re: bug#65198: 29.1; Emacs29.1 crash in function face_for_font To: Eli Zaretskii Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 65198 Cc: 65198@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) more clear GDB info: Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. 0x0000555555618c06 in produce_glyphless_glyph (it=3D0x7fffffff67d0, for_no_font=3Dfor_no_font@entry=3Dfalse, acronym=3Dacronym@entry=3D0x0) at xdisp.c:31791 31791 font =3D face->font ? face->font : FRAME_FONT (it->f); (gdb) bt #0 0x0000555555618c06 in produce_glyphless_glyph (it=3D0x7fffffff67d0, for_no_font=3Dfor_no_font@entry=3Dfalse, acronym=3Dacronym@entry=3D0x0) at xdisp.c:31791 #1 0x000055555563f321 in gui_produce_glyphs (it=3D0x7fffffff67d0) at xdisp.c:32639 #2 0x00005555556232e5 in move_it_in_display_line_to (it=3Dit@entry=3D0x7fffffff67d0, to_charpos=3Dto_charpos@entry=3D382, to_x=3Dto_x@entry=3D2147483647, op=3Dop@entry=3D(MOVE_TO_X | MOVE_TO_POS)) at xdisp.c:9906 #3 0x000055555562859a in move_it_to (it=3D0x7fffffff67d0, to_charpos=3D382, to_x=3D, to_y=3D, to_vpos=3D, op=3D11) at xdisp.c:10505 #4 0x000055555563d3ae in window_text_pixel_size (window=3D, from=3D, to=3D= , x_limit=3D0x1c9a, y_limit=3D, mode_lines=3D0x0, ignore_line_at_end=3D0x0) at xdisp.c:11460 #5 0x000055555563e046 in Fwindow_text_pixel_size (window=3D0x555556296d25, from=3D0x0, to=3D0x0, x_limit=3D0x1c9a, y_limit=3D0xc32, mode_lines=3D0x0, ignore_line_at_end=3D0x0) at xdisp.c:11634 #6 0x00007fffe7dc07a8 in F6669742d6672616d652d746f2d6275666665722d31_fit_frame_to_buffer_1_0 () at /home/zayfen/github.com/emacs/src/../native-lisp/29.1.50-24bd8136/pr= eloaded/window-0d1b8b93-6f4eee58.eln #7 0x00005555557650c2 in funcall_subr (subr=3D0x7fffe8360178, numargs=3D5, args=3D) at eval.c:3049 #8 0x0000555555761d93 in Ffuncall (nargs=3D6, args=3D0x7fffffff9570) at ev= al.c:2995 #9 0x0000555555765a3d in eval_sub (form=3D) at eval.c:2470 #10 0x0000555555767ddd in Fprogn (body=3D0x0) at eval.c:436 #11 FletX (args=3D0x55555af1ff63) at eval.c:958 #12 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #13 0x0000555555766ded in Fprogn (body=3D0x0) at eval.c:436 #14 funcall_lambda (fun=3D0x55555af1fe93, nargs=3D3, arg_vector=3D0x7fffffff9830) at eval.c:3233 #15 0x000055555576739f in apply_lambda (fun=3D, args=3D, count=3D...) at eval.c:3103 #16 0x000055555576550b in eval_sub (form=3D) at eval.c:2588 #17 0x0000555555767ddd in Fprogn (body=3D0x555559f14b83) at eval.c:436 #18 FletX (args=3D0x555559f15073) at eval.c:958 #19 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #20 0x0000555555766ded in Fprogn (body=3D0x0) at eval.c:436 #21 funcall_lambda (fun=3D0x555559f13a93, nargs=3D0, arg_vector=3D0x7fffffff9b40) at eval.c:3233 --Type for more, q to quit, c to continue without paging-- #22 0x000055555576739f in apply_lambda (fun=3D, args=3D, count=3D...) at eval.c:3103 #23 0x000055555576550b in eval_sub (form=3D) at eval.c:2588 #24 0x00005555557679c5 in Fprogn (body=3D0x0) at eval.c:436 #25 Flet (args=3D) at eval.c:1026 #26 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #27 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #28 0x0000555555767ddd in Fprogn (body=3D0x0) at eval.c:436 #29 FletX (args=3D0x555559f15d73) at eval.c:958 #30 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #31 0x0000555555765f4d in Fprogn (body=3D0x0) at eval.c:436 #32 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #33 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #34 0x0000555555766ded in Fprogn (body=3D0x0) at eval.c:436 #35 funcall_lambda (fun=3D0x555559f15b63, nargs=3D1, arg_vector=3D0x7fffffffa1e0) at eval.c:3233 #36 0x000055555576739f in apply_lambda (fun=3D, args=3D, count=3D...) at eval.c:3103 #37 0x000055555576550b in eval_sub (form=3D) at eval.c:2588 #38 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #39 0x0000555555765f4d in Fprogn (body=3D0x0) at eval.c:436 #40 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #41 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #42 0x0000555555767ddd in Fprogn (body=3D0x0) at eval.c:436 #43 FletX (args=3D0x55555aa10d93) at eval.c:958 #44 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #45 0x0000555555765f4d in Fprogn (body=3D0x0, body@entry=3D0x55555aa10d63) at eval.c:436 #46 0x0000555555751d6c in Fsave_current_buffer (args=3D0x55555aa10d63) at editfns.c:874 #47 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #48 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #49 0x0000555555767ddd in Fprogn (body=3D0x0) at eval.c:436 #50 FletX (args=3D0x55555aa10ce3) at eval.c:958 #51 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #52 0x0000555555767ddd in Fprogn (body=3D0x0) at eval.c:436 #53 FletX (args=3D0x55555aa10cb3) at eval.c:958 #54 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #55 0x0000555555766ded in Fprogn (body=3D0x0) at eval.c:436 #56 funcall_lambda (fun=3D0x55555aa10b93, nargs=3D2, arg_vector=3D0x7fffffffab80) at eval.c:3233 #57 0x000055555576739f in apply_lambda (fun=3D, args=3D, count=3D...) at eval.c:3103 #58 0x000055555576550b in eval_sub (form=3D) at eval.c:2588 #59 0x00005555557685cb in Feval (form=3D0x5555591dcf83, lexical=3D) at eval.c:2361 #60 0x0000555555765d23 in eval_sub (form=3D) at eval.c:2501 #61 0x0000555555766ded in Fprogn (body=3D0x55555a5f1ee3) at eval.c:436 #62 funcall_lambda (fun=3D0x55555a5f1a73, nargs=3D1, arg_vector=3D0x7fffffffaed8) at eval.c:3233 #63 0x0000555555761d93 in Ffuncall (nargs=3D2, args=3D0x7fffffffaed0) at ev= al.c:2995 #64 0x0000555555762282 in Fapply (nargs=3D2, args=3D0x7fffffffaed0) at eval= .c:2623 #65 0x0000555555765a3d in eval_sub (form=3D) at eval.c:2470 #66 0x0000555555767c26 in FletX (args=3D0x55555bdb6543) at /home/zayfen/github.com/emacs/src/lisp.h:1529 #67 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #68 0x0000555555768379 in internal_lisp_condition_case (var=3D, bodyform=3D, handlers=3D) at eval.c:1428 #69 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #70 0x000055555576688d in Fprogn (body=3D0x0) at eval.c:436 #71 Fcond (args=3D) at eval.c:416 #72 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 =E5=BC=A0=E4=BA=91=E5=B3=B0 =E4=BA=8E2023=E5= =B9=B48=E6=9C=8811=E6=97=A5=E5=91=A8=E4=BA=94 08:15=E5=86=99=E9=81=93=EF=BC= =9A > > I've tested this patch, unfortunately, it doesn't work, still crashes > > GDB information: > Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. > 0x0000555555619516 in produce_glyphless_glyph () > (gdb) bt > #0 0x0000555555619516 in produce_glyphless_glyph () > #1 0x0000555555640789 in gui_produce_glyphs () > #2 0x0000555555623f70 in move_it_in_display_line_to () > #3 0x000055555562935a in move_it_to () > #4 0x000055555563e84f in window_text_pixel_size () > #5 0x000055555563f526 in Fwindow_text_pixel_size () > #6 0x00007fffe7dc07a8 in > F6669742d6672616d652d746f2d6275666665722d31_fit_frame_to_buffer_1_0 () > at /home/zayfen/github.com/emacs/src/../native-lisp/29.1.50-9e9f496f/= preloaded/window-0d1b8b93-6f4eee58.eln > #7 0x000055555576a032 in funcall_subr () > #8 0x0000555555766ba1 in Ffuncall () > #9 0x000055555576aa04 in eval_sub () > #10 0x000055555576ce6d in FletX () > #11 0x000055555576aba7 in eval_sub () > #12 0x000055555576be0d in funcall_lambda () > #13 0x000055555576c3ee in apply_lambda () > #14 0x000055555576a49b in eval_sub () > #15 0x000055555576ce6d in FletX () > #16 0x000055555576aba7 in eval_sub () > #17 0x000055555576be0d in funcall_lambda () > #18 0x000055555576c3ee in apply_lambda () > #19 0x000055555576a49b in eval_sub () > #20 0x000055555576ca2d in Flet () > #21 0x000055555576aba7 in eval_sub () > #22 0x000055555576aba7 in eval_sub () > #23 0x000055555576ce6d in FletX () > #24 0x000055555576aba7 in eval_sub () > #25 0x000055555576af0d in Fprogn () > #26 0x000055555576aba7 in eval_sub () > #27 0x000055555576aba7 in eval_sub () > #28 0x000055555576be0d in funcall_lambda () > #29 0x000055555576c3ee in apply_lambda () > #30 0x000055555576a49b in eval_sub () > #31 0x000055555576aba7 in eval_sub () > #32 0x000055555576af0d in Fprogn () > #33 0x000055555576aba7 in eval_sub () > #34 0x000055555576aba7 in eval_sub () > #35 0x000055555576ce6d in FletX () > #36 0x000055555576aba7 in eval_sub () > #37 0x000055555576af0d in Fprogn () > #38 0x000055555575666c in Fsave_current_buffer () > #39 0x000055555576aba7 in eval_sub () > #40 0x000055555576aba7 in eval_sub () > #41 0x000055555576ce6d in FletX () > #42 0x000055555576aba7 in eval_sub () > #43 0x000055555576ce6d in FletX () > #44 0x000055555576aba7 in eval_sub () > #45 0x000055555576be0d in funcall_lambda () > #46 0x000055555576c3ee in apply_lambda () > #47 0x000055555576a49b in eval_sub () > #48 0x000055555576d66b in Feval () > #49 0x000055555576ace1 in eval_sub () > > Eli Zaretskii =E4=BA=8E2023=E5=B9=B48=E6=9C=8811=E6=97=A5= =E5=91=A8=E4=BA=94 02:36=E5=86=99=E9=81=93=EF=BC=9A > > > > > From: =E5=BC=A0=E4=BA=91=E5=B3=B0 > > > Date: Fri, 11 Aug 2023 01:58:34 +0800 > > > Cc: 65198@debbugs.gnu.org > > > > > > 2023-08-11_01-53.png > > > when popup frame has the warning-icon (marked in picture) , emacs wil= l crash immediately. > > > > Can you try the patch below and see if it prevents the crash in these > > cases? > > > > diff --git a/src/xdisp.c b/src/xdisp.c > > index 9cddcfe..b25bdc7 100644 > > --- a/src/xdisp.c > > +++ b/src/xdisp.c > > @@ -8312,9 +8312,14 @@ get_next_display_element (struct it *it) > > && success_p > > && FRAME_WINDOW_P (it->f)) > > { > > - struct face *face =3D FACE_FROM_ID (it->f, it->face_id); > > + struct face *face =3D FACE_FROM_ID_OR_NULL (it->f, it->face_id); > > > > - if (it->what =3D=3D IT_COMPOSITION && it->cmp_it.ch >=3D 0) > > + if (!face) > > + { > > + it->what =3D IT_GLYPHLESS; > > + it->glyphless_method =3D GLYPHLESS_DISPLAY_EMPTY_BOX; > > + } > > + else if (it->what =3D=3D IT_COMPOSITION && it->cmp_it.ch >=3D 0) > > { > > /* Automatic composition with glyph-string. */ > > Lisp_Object gstring =3D composition_gstring_from_id (it->cmp_= it.id); From debbugs-submit-bounces@debbugs.gnu.org Fri Aug 11 02:12:19 2023 Received: (at 65198) by debbugs.gnu.org; 11 Aug 2023 06:12:19 +0000 Received: from localhost ([127.0.0.1]:44736 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qULNj-0007Ma-Cj for submit@debbugs.gnu.org; Fri, 11 Aug 2023 02:12:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37880) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qULNf-0007ML-Vr for 65198@debbugs.gnu.org; Fri, 11 Aug 2023 02:12:17 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qULNa-0006XR-HE; Fri, 11 Aug 2023 02:12:10 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=UO1sLYUfm2UQIF88hINykPmTgXtfPRQSt/KQhxr4vh8=; b=hTEJFeO1QU6Wd5C+xRrm q1oi51wngsGIDYFtDGhoruSGVhpaIZ2XWJ/FTULPgAsNzHJaJ8+PkJyxiZiu+RgFnmlGs1gqOA428 4At4IE4bzv3qsS1GZKrxi01nEx9px5R/u2hNsM9ZQGz0n7g1FjWujJt5zDQ5X6UkOocYX5ghqYQ0c OmcLUzvXphv/uZouE/CkaEfDo8thQ0mFidzGwAJe/ZCHmhehKkfldtId7iOYivy6TnstZhFGAXAel 4CmR5cp0gng5oBCAZWtSbI7beHX/eLDPevGZpWmloGAk2uQATZFuBceTY97iJL8NllsOhUOElc3WJ +H0wvmdIXobr2g==; Date: Fri, 11 Aug 2023 09:12:38 +0300 Message-Id: <83ttt6gl9l.fsf@gnu.org> From: Eli Zaretskii To: =?utf-8?B?5byg5LqR5bOw?= In-Reply-To: (message from =?utf-8?B?5byg5LqR5bOw?= on Fri, 11 Aug 2023 08:50:04 +0800) Subject: Re: bug#65198: 29.1; Emacs29.1 crash in function face_for_font References: <83r0obi53o.fsf@gnu.org> <83bkfeizgz.fsf@gnu.org> <831qgaiw2d.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 65198 Cc: 65198@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: 张云峰 > Date: Fri, 11 Aug 2023 08:50:04 +0800 > Cc: 65198@debbugs.gnu.org > > more clear GDB info: > > Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. > 0x0000555555618c06 in produce_glyphless_glyph (it=0x7fffffff67d0, > for_no_font=for_no_font@entry=false, acronym=acronym@entry=0x0) at > xdisp.c:31791 > 31791 font = face->font ? face->font : FRAME_FONT (it->f); Actually, this is progress: we are now crashing a bit later, while trying to display an empty box instead of a character that has no font and no suitable face. To resolve this, please help me by providing the results of the following GDB commands after Emacs crashes and GDB kicks in: (gdb) p it->face_id (gdb) p it->c (gdb) p FRAME_FONT(it->f) (gdb) p (it->f)->output_data.x->font Thanks. From debbugs-submit-bounces@debbugs.gnu.org Fri Aug 11 10:21:32 2023 Received: (at 65198) by debbugs.gnu.org; 11 Aug 2023 14:21:32 +0000 Received: from localhost ([127.0.0.1]:47678 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qUT1A-00010O-2I for submit@debbugs.gnu.org; Fri, 11 Aug 2023 10:21:32 -0400 Received: from mail-pg1-x52d.google.com ([2607:f8b0:4864:20::52d]:53332) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qUT17-00010A-JC for 65198@debbugs.gnu.org; Fri, 11 Aug 2023 10:21:31 -0400 Received: by mail-pg1-x52d.google.com with SMTP id 41be03b00d2f7-564b8e60ce9so1326592a12.2 for <65198@debbugs.gnu.org>; Fri, 11 Aug 2023 07:21:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691763683; x=1692368483; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=NEVDVMqG3JXKI48PNeAJqjypPk6Qbsdw3W2Bz+RDcJU=; b=eYucTHZ0ZjulmA58D9xrdhOezqxpH95DTthMjONwnnT5K2eKEW/qJMtcQZxOYB7ZZz pDIRZcOpHkDRiPAo3y3tRRq3GcYMoNx8PVLHhzkoe7TSbHSr9YqOgFqXru5XXLl/k/kI fFqi3a8Q0dc6VaZCa3QtR2uVIAcR3wQ6X1X4z8puedJhAbP0DmqlG6p6KzofXqHU7AY+ jQWqMGr9KmzGGYY1uz0P3YEQjezsd7ehdyF/pLowNeTuBHhKLjrvJBIVKwX6lJkimF9s vvqD66q5bdUpm7xUG6qDTaROEiX+ojZQjHBH8Z6wCz8QFNGautyDGZPSQ50GPiCp9Ait SmjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691763683; x=1692368483; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NEVDVMqG3JXKI48PNeAJqjypPk6Qbsdw3W2Bz+RDcJU=; b=jQw/0UMjShhPdvGQfj/7RlrT+2PeJjUHifqyW1JX/sOwL1jtW5cCQ4ighc1rOOgq62 voRGdQSXhjKRFLhXi11Gdleslf0yNT9MWGCe3FZAMqOnpQ9XceeU9kF7ThpEDiq9a7vB EMyHpMNErtm09p8UhKf0zgdSXZbYadnC7Lz2npIkS1aAfDzio9g7LLecFLJdgJ+Tvqt6 MhuIgnjEbsOEU7eyIZ7cJYBSKWzHbJLrQZgczjCKFnaaL73W2ScmBigjZi5GmzvNZtEk E6yQXZu/wAcUyqEyw/Kc3+zV7qnAAGVmtFRsCu7OT5MjMw3uNcuLsXh+DxyeQtmGrAKW +Yew== X-Gm-Message-State: AOJu0Ywy7v9oZNlXlGsdHM0J/KKHo9Cs8M0B1csrrdGjwlldLWyrCSoo wN5VSGV+lGLBiDfoyqRP8D/hTqNFNyONPJw/utc= X-Google-Smtp-Source: AGHT+IE9NOu+0WjxJ42+972g1I8hLwEiG8M7U0a87UAsVMTP4N2z5IZmYUiZxnDWK496FH7iPY9blwYbnT+GxgeYNaU= X-Received: by 2002:a17:90b:23c7:b0:268:5558:de4c with SMTP id md7-20020a17090b23c700b002685558de4cmr1378694pjb.38.1691763683526; Fri, 11 Aug 2023 07:21:23 -0700 (PDT) MIME-Version: 1.0 References: <83r0obi53o.fsf@gnu.org> <83bkfeizgz.fsf@gnu.org> <831qgaiw2d.fsf@gnu.org> <83ttt6gl9l.fsf@gnu.org> In-Reply-To: <83ttt6gl9l.fsf@gnu.org> From: =?UTF-8?B?5byg5LqR5bOw?= Date: Fri, 11 Aug 2023 22:21:11 +0800 Message-ID: Subject: Re: bug#65198: 29.1; Emacs29.1 crash in function face_for_font To: Eli Zaretskii Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 65198 Cc: 65198@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. 0x0000555555616206 in produce_glyphless_glyph (it=3D0x7fffffff6cc0, for_no_font=3Dfor_no_font@entry=3Dfalse, acronym=3Dacronym@entry=3D0x0) at xdisp.c:31791 31791 font =3D face->font ? face->font : FRAME_FONT (it->f); (gdb) p it->face_id $1 =3D 0 (gdb) p it->c $2 =3D 9888 (gdb) p FRAME_FONT(it->f) No symbol "FRAME_FONT" in current context. (gdb) p (it->f)->output_data.x->font There is no member named font. (gdb) p face Cannot access memory at address 0x120 (gdb) p FACE_FROM_ID (it->f, it->face_id)->ascii_face No symbol "FACE_FROM_ID" in current context. (gdb) p it->what $3 =3D IT_GLYPHLESS Eli Zaretskii =E4=BA=8E2023=E5=B9=B48=E6=9C=8811=E6=97=A5=E5= =91=A8=E4=BA=94 14:12=E5=86=99=E9=81=93=EF=BC=9A > > > From: =E5=BC=A0=E4=BA=91=E5=B3=B0 > > Date: Fri, 11 Aug 2023 08:50:04 +0800 > > Cc: 65198@debbugs.gnu.org > > > > more clear GDB info: > > > > Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. > > 0x0000555555618c06 in produce_glyphless_glyph (it=3D0x7fffffff67d0, > > for_no_font=3Dfor_no_font@entry=3Dfalse, acronym=3Dacronym@entry=3D0x0)= at > > xdisp.c:31791 > > 31791 font =3D face->font ? face->font : FRAME_FONT (it->f); > > Actually, this is progress: we are now crashing a bit later, while > trying to display an empty box instead of a character that has no font > and no suitable face. To resolve this, please help me by providing > the results of the following GDB commands after Emacs crashes and GDB > kicks in: > > (gdb) p it->face_id > (gdb) p it->c > (gdb) p FRAME_FONT(it->f) > (gdb) p (it->f)->output_data.x->font > > Thanks. From debbugs-submit-bounces@debbugs.gnu.org Fri Aug 11 10:55:52 2023 Received: (at 65198) by debbugs.gnu.org; 11 Aug 2023 14:55:52 +0000 Received: from localhost ([127.0.0.1]:47754 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qUTYO-0001uI-3A for submit@debbugs.gnu.org; Fri, 11 Aug 2023 10:55:52 -0400 Received: from mail-ot1-x329.google.com ([2607:f8b0:4864:20::329]:60419) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qUTYI-0001u0-Ic for 65198@debbugs.gnu.org; Fri, 11 Aug 2023 10:55:50 -0400 Received: by mail-ot1-x329.google.com with SMTP id 46e09a7af769-6bc9811558cso1916869a34.0 for <65198@debbugs.gnu.org>; Fri, 11 Aug 2023 07:55:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691765741; x=1692370541; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=jGCxcCCpU+YI7UqW/l5MfBu515JnyLthdyCW+q7cq4s=; b=m+47CslfgvvrwIO3i+Act0PE0uDZGF5SMShWCLGcWrgBC5I96UioAfJFEYdHbxhkS1 bNqND9ZGomztLRDAqMWAZQmJOaIgxqWiqN72FCb3RcKJdIzSyiEhZ1xRyuGoM9MWOpRF pl3jiuIJcG88kikZQpBYxu1lbeoaHPVB2zOdbMV37SnyNMcpbxSk/1xiyXPwnRf1aDMr WU7LoICDzLAG0ooZnhdvEfz+ox5IVD53eaCq2P2KpjhFSYcrdcvEDwcUS95GZPkVgjsT 9cHfm/DM4SaTJc5/l2mVJ7N3MtAy4d/Nwbt19Gyp4zGD1cBbgvAH1dYoy0MhTWCyyH9g E5qg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691765741; x=1692370541; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jGCxcCCpU+YI7UqW/l5MfBu515JnyLthdyCW+q7cq4s=; b=BWD65mbXy1IK/7/5q/ffsbqs06WxCtlRuCD6wpDlV8VW+2JE8Jegt1PzT10cSySIZW Tz1cGfkoxEFCs6QB0e2GdsD4ZbXbfOUXiW5StGcsEpKOfSFc4R4SVxlZmu6qw+8AEga9 QSrZN/RuzDTkN7AZ7Q7g86ANGJkRr4vyeNNmbiY5LexS2YaSGPoUjgFA3jjEA7pb7Oyc 5st34yr/BcerzWSUWDxe8HOZwfbwlypDEoYUEwwdUk/MGxMZ/W4AS+fgFA8jCy6I2eIA 0cFtrP96n3y4KXSyEvD0NwG1LG5qd4IueotX4UKtlBu98Oog53LG11EeKfHP4b61QR3T eMwA== X-Gm-Message-State: AOJu0Yydr0DHu5d4fRp3H33j5hlmj3yiM+7qKgGc7sFi4B8yBJWUvc+F f9u2STRu8ndGfNDVfLhULYszpwCDr9RigpRkfmE= X-Google-Smtp-Source: AGHT+IEkrWWbpwn1D9u/LH0lLI7pANdX+JCsW4vI6Rayx1XTqxh3VC5ZOxBRx3eh3HtRkioYTgZgixlUhnNBYMPkU0c= X-Received: by 2002:a05:6870:80d3:b0:1b4:6d3b:3e15 with SMTP id r19-20020a05687080d300b001b46d3b3e15mr2298956oab.3.1691765740862; Fri, 11 Aug 2023 07:55:40 -0700 (PDT) MIME-Version: 1.0 References: <83r0obi53o.fsf@gnu.org> <83bkfeizgz.fsf@gnu.org> <831qgaiw2d.fsf@gnu.org> <83ttt6gl9l.fsf@gnu.org> In-Reply-To: From: =?UTF-8?B?5byg5LqR5bOw?= Date: Fri, 11 Aug 2023 22:55:29 +0800 Message-ID: Subject: Re: bug#65198: 29.1; Emacs29.1 crash in function face_for_font To: Eli Zaretskii Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 65198 Cc: 65198@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) (compile emacs without pgtk) (gdb) p it->face_id $13 =3D 0 (gdb) p it->c $14 =3D 9888 (gdb) p FRAME_FONT(it->f) No symbol "FRAME_FONT" in current context. (gdb) p it->f $15 =3D (struct frame *) 0x5555586492e0 (gdb) p (it->f)->output_data.x->font $16 =3D (struct font *) 0x555558ca8c18 (gdb) p (it->f)->output_data.x->font-> ascent default_ascent encoding_charset max_width props space_width vertical_centering average_width descent header min_width relative_compose underline_position baseline_offset driver height pixel_size repertory_charset underline_thickness (gdb) p (it->f)->output_data.x->font->encoding_charset $17 =3D -1 (gdb) p (it->f)->output_data.x->font->driver $18 =3D (const struct font_driver *) 0x555555e04fe0 (gdb) p (it->f)->output_data.x->font->ascent $19 =3D 27 (gdb) p (it->f)->output_data.x->font->pixel-size No symbol "size" in current context. (gdb) p (it->f)->output_data.x->font->pixel_size $20 =3D 24 (gdb) p (it->f)->output_data.x->font->props $21 =3D {0x7ef0, 0x26eef30, 0x26eef60, 0x0, 0x9bd0, 0x14102, 0x19082, 0x19102, 0x62, 0x0, 0x192, 0x2, 0x555557cfa953, 0x0, 0x555558e5d854, 0x555558e5d874, 0x555558ca1884} (gdb) p (it->f)->output_data.x->font->relative_compose $22 =3D 0 (gdb) p (it->f)->output_data.x->font->repertory_charset $23 =3D -1 (gdb) =E5=BC=A0=E4=BA=91=E5=B3=B0 =E4=BA=8E2023=E5= =B9=B48=E6=9C=8811=E6=97=A5=E5=91=A8=E4=BA=94 22:21=E5=86=99=E9=81=93=EF=BC= =9A > > Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. > 0x0000555555616206 in produce_glyphless_glyph (it=3D0x7fffffff6cc0, > for_no_font=3Dfor_no_font@entry=3Dfalse, acronym=3Dacronym@entry=3D0x0) a= t > xdisp.c:31791 > 31791 font =3D face->font ? face->font : FRAME_FONT (it->f); > (gdb) p it->face_id > $1 =3D 0 > (gdb) p it->c > $2 =3D 9888 > (gdb) p FRAME_FONT(it->f) > No symbol "FRAME_FONT" in current context. > (gdb) p (it->f)->output_data.x->font > There is no member named font. > (gdb) p face > Cannot access memory at address 0x120 > (gdb) p FACE_FROM_ID (it->f, it->face_id)->ascii_face > No symbol "FACE_FROM_ID" in current context. > (gdb) p it->what > $3 =3D IT_GLYPHLESS > > Eli Zaretskii =E4=BA=8E2023=E5=B9=B48=E6=9C=8811=E6=97=A5= =E5=91=A8=E4=BA=94 14:12=E5=86=99=E9=81=93=EF=BC=9A > > > > > From: =E5=BC=A0=E4=BA=91=E5=B3=B0 > > > Date: Fri, 11 Aug 2023 08:50:04 +0800 > > > Cc: 65198@debbugs.gnu.org > > > > > > more clear GDB info: > > > > > > Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. > > > 0x0000555555618c06 in produce_glyphless_glyph (it=3D0x7fffffff67d0, > > > for_no_font=3Dfor_no_font@entry=3Dfalse, acronym=3Dacronym@entry=3D0x= 0) at > > > xdisp.c:31791 > > > 31791 font =3D face->font ? face->font : FRAME_FONT (it->f); > > > > Actually, this is progress: we are now crashing a bit later, while > > trying to display an empty box instead of a character that has no font > > and no suitable face. To resolve this, please help me by providing > > the results of the following GDB commands after Emacs crashes and GDB > > kicks in: > > > > (gdb) p it->face_id > > (gdb) p it->c > > (gdb) p FRAME_FONT(it->f) > > (gdb) p (it->f)->output_data.x->font > > > > Thanks. From debbugs-submit-bounces@debbugs.gnu.org Fri Aug 11 11:24:17 2023 Received: (at 65198) by debbugs.gnu.org; 11 Aug 2023 15:24:17 +0000 Received: from localhost ([127.0.0.1]:47777 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qUTzt-0002ZW-CI for submit@debbugs.gnu.org; Fri, 11 Aug 2023 11:24:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59326) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qUTzp-0002ZG-R5 for 65198@debbugs.gnu.org; Fri, 11 Aug 2023 11:24:16 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qUTzj-0000ib-H4; Fri, 11 Aug 2023 11:24:07 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=L9/ymLX1bHL+NxzV2YAVyYLTmcifoJpxeKxhj0GODl4=; b=rmyHQDXc79fHmLvgj1m/ 5uDg0PqzyrrvO/SBjZWlEbVRiCIn9gJwaQJaWc9uw5jI1i6i9Dmab/IrFclp5H7mjTtWD7yw8eijm E+4Hzn85I2iK+aR7H1CWlc3qFaCa7Uw9jzqYtZOA/zYtGQ25d1TyHmygKzcgit1owXiyILuhOjSFB oxdeX01hYUbfRusPdgYlVXFRxqhxUiVaaAGziPTysaIg4lso7DbglUchB5BiIRTmRZXaKgixdPGfV 2Ap6hvjVp53Ufv+58m7SmPNjn+TsHsYgfLBW5PjhqVC+CQVLfPM6gCwsitoweJf/H64Pmrw5FwQx6 zCpGPBM6nyfzIw==; Date: Fri, 11 Aug 2023 18:24:35 +0300 Message-Id: <831qg9haa4.fsf@gnu.org> From: Eli Zaretskii To: =?utf-8?B?5byg5LqR5bOw?= In-Reply-To: (message from =?utf-8?B?5byg5LqR5bOw?= on Fri, 11 Aug 2023 22:21:11 +0800) Subject: Re: bug#65198: 29.1; Emacs29.1 crash in function face_for_font References: <83r0obi53o.fsf@gnu.org> <83bkfeizgz.fsf@gnu.org> <831qgaiw2d.fsf@gnu.org> <83ttt6gl9l.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 65198 Cc: 65198@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: 张云峰 > Date: Fri, 11 Aug 2023 22:21:11 +0800 > Cc: 65198@debbugs.gnu.org > > Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. > 0x0000555555616206 in produce_glyphless_glyph (it=0x7fffffff6cc0, > for_no_font=for_no_font@entry=false, acronym=acronym@entry=0x0) at > xdisp.c:31791 > 31791 font = face->font ? face->font : FRAME_FONT (it->f); > (gdb) p it->face_id > $1 = 0 > (gdb) p it->c > $2 = 9888 > (gdb) p FRAME_FONT(it->f) > No symbol "FRAME_FONT" in current context. > (gdb) p (it->f)->output_data.x->font Since it turns out this is a PGTK build, please show this instead: (gdb) p (it->f)->output_data.pgtk->font From debbugs-submit-bounces@debbugs.gnu.org Fri Aug 11 11:30:25 2023 Received: (at 65198) by debbugs.gnu.org; 11 Aug 2023 15:30:25 +0000 Received: from localhost ([127.0.0.1]:47783 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qUU5p-0002jP-6L for submit@debbugs.gnu.org; Fri, 11 Aug 2023 11:30:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56236) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qUU5k-0002jB-QL for 65198@debbugs.gnu.org; Fri, 11 Aug 2023 11:30:24 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qUU5f-0001rz-CX; Fri, 11 Aug 2023 11:30:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=uGTOKY8D1Eq1xF4WitYJXo1+EceMr6DPdfEVjONtf6o=; b=eQ08UsN2xiC8juP9YBRZ 2X/aAQu9Gfkm0G9c3yZ3UxfctEAJ6loXH2zNelgxv4ZkIxOprjtxEZL/TFsF5vB9r16g2vF2VKXJP HKNcZshHYKEu3qfKhww2+Rh5oy1304R/b2mHM2YTxvZRVUZhE5b4WWqNL0q6pxFiKAWWHqiunjthS M0vDCz9KXi8JsFVe0QToJ1ca9qsZPBZxyWtn+4vOjvZb+vp24gcyLi81mEuLkrNcW3TEHbAszds+D IVQ83GtXernZSMQw3GK8kiK8J8h2Vc+YbkfidRzYFAw54OlA5OiMGjeIFk2WPcTVFtk5Xebq3CS79 1sgl6tI1cB6TKw==; Date: Fri, 11 Aug 2023 18:30:44 +0300 Message-Id: <83zg2xfvff.fsf@gnu.org> From: Eli Zaretskii To: =?utf-8?B?5byg5LqR5bOw?= In-Reply-To: (message from =?utf-8?B?5byg5LqR5bOw?= on Fri, 11 Aug 2023 22:55:29 +0800) Subject: Re: bug#65198: 29.1; Emacs29.1 crash in function face_for_font References: <83r0obi53o.fsf@gnu.org> <83bkfeizgz.fsf@gnu.org> <831qgaiw2d.fsf@gnu.org> <83ttt6gl9l.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 65198 Cc: 65198@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: 张云峰 > Date: Fri, 11 Aug 2023 22:55:29 +0800 > Cc: 65198@debbugs.gnu.org > > (compile emacs without pgtk) > > (gdb) p it->face_id > $13 = 0 > (gdb) p it->c > $14 = 9888 > (gdb) p FRAME_FONT(it->f) > No symbol "FRAME_FONT" in current context. > (gdb) p it->f > $15 = (struct frame *) 0x5555586492e0 > (gdb) p (it->f)->output_data.x->font > $16 = (struct font *) 0x555558ca8c18 OK. A new patch (which includes the previous one, so please apply to the original code): diff --git a/src/xdisp.c b/src/xdisp.c index 9cddcfe..830b622 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -8312,9 +8312,14 @@ get_next_display_element (struct it *it) && success_p && FRAME_WINDOW_P (it->f)) { - struct face *face = FACE_FROM_ID (it->f, it->face_id); + struct face *face = FACE_FROM_ID_OR_NULL (it->f, it->face_id); - if (it->what == IT_COMPOSITION && it->cmp_it.ch >= 0) + if (!face) + { + it->what = IT_GLYPHLESS; + it->glyphless_method = GLYPHLESS_DISPLAY_EMPTY_BOX; + } + else if (it->what == IT_COMPOSITION && it->cmp_it.ch >= 0) { /* Automatic composition with glyph-string. */ Lisp_Object gstring = composition_gstring_from_id (it->cmp_it.id); @@ -31782,8 +31787,8 @@ produce_glyphless_glyph (struct it *it, bool for_no_font, Lisp_Object acronym) /* Get the metrics of the base font. We always refer to the current ASCII face. */ - face = FACE_FROM_ID (it->f, it->face_id)->ascii_face; - font = face->font ? face->font : FRAME_FONT (it->f); + face = FACE_FROM_ID_OR_NULL (it->f, it->face_id)->ascii_face; + font = (face && face->font) ? face->font : FRAME_FONT (it->f); normal_char_ascent_descent (font, -1, &it->ascent, &it->descent); it->ascent += font->baseline_offset; it->descent -= font->baseline_offset; From debbugs-submit-bounces@debbugs.gnu.org Fri Aug 11 12:14:23 2023 Received: (at 65198) by debbugs.gnu.org; 11 Aug 2023 16:14:23 +0000 Received: from localhost ([127.0.0.1]:47853 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qUUmM-0003qc-2R for submit@debbugs.gnu.org; Fri, 11 Aug 2023 12:14:23 -0400 Received: from mail-pf1-x42c.google.com ([2607:f8b0:4864:20::42c]:60824) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qUUmJ-0003qM-8h for 65198@debbugs.gnu.org; Fri, 11 Aug 2023 12:14:20 -0400 Received: by mail-pf1-x42c.google.com with SMTP id d2e1a72fcca58-686b879f605so1656732b3a.1 for <65198@debbugs.gnu.org>; Fri, 11 Aug 2023 09:14:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691770453; x=1692375253; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=EqKKeEjHc5e2dIarCvzoIbkGQf48FV/Rv+HD8XZNIn4=; b=VqHhjfZFm0zoClfTEmPXnxV0sAoI2T//tEokmyLU6ubpNfo7KSHCFr6HENitzHFuul GvQxYmJ2LXR0gQpexhh5/KrpAl5CvE7i6dqi5QGG0WCFwy2JGwnNXeLyRv6p2yd3NFvC oAVIKvLIOrHX4SY2+5OuI6G1uPWWIqCGTeWXX3aF0K/qBz+ChWlazjt2f9YY8r3TVlMU 8QlZn9iVgqSGeM0LqBnD9lY0OSWAAnAxX7vLrn1XOzMSy/K3Bl6eOeK1146ptSKsNon7 2XlkFEOcaPJmcdI3j11x+DvQyInXLB/Oj78ZNRWEMwhy/795BcifLwHv27nBjbjeDIKD LTIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691770453; x=1692375253; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=EqKKeEjHc5e2dIarCvzoIbkGQf48FV/Rv+HD8XZNIn4=; b=XhC5j9NbS4JO7D2U6zo95rGyxfIDDKbdoL+qSk7FBcQEnO2YwcOFzPFc/Qqi9o1u7i r5hFPfPU0ualdvDqSlC//L6XraOJieOPMqp6hlCtrkURjOCcp8Be5OXCJIYIsvhmUW99 QMmymzp5kmMd2pZA1rF9Yg8G992vcH7CQL7Yi8mGt3sEaAujQ0t47DsazAm6NUNLYthE onPNrY9qMKFnfZ8Y3hA0lIfeRBomymgblHziCkrUzcr/AWKdyKS44o4DpmIPtp60Zxaq yFd442mT65ifcnUv8zru6G81Vb80cPnh3CMxkS2tVBdF/z5XAUccWkpvaNwOck93rI27 IZqg== X-Gm-Message-State: AOJu0Yw625Lt7XE42c0MbI+MOLtQbXe1GswpnbvNBsoZZZutAx+gpP0p dtzugAP8yy3EKJ6XWPW7PbaloisGRs8KFfFcww6nNujFj53QJw== X-Google-Smtp-Source: AGHT+IGMGbYGjkNPY4/JODgtFG3eqCRgaWMh7Ug7DLr82a5lBBFwAPFKzkqzu3kk81LSGnL9IOFwVKj2YXyuAsZk4DM= X-Received: by 2002:a17:90a:f193:b0:268:1e9:53bf with SMTP id bv19-20020a17090af19300b0026801e953bfmr1600028pjb.37.1691770453273; Fri, 11 Aug 2023 09:14:13 -0700 (PDT) MIME-Version: 1.0 References: <83r0obi53o.fsf@gnu.org> <83bkfeizgz.fsf@gnu.org> <831qgaiw2d.fsf@gnu.org> <83ttt6gl9l.fsf@gnu.org> <83zg2xfvff.fsf@gnu.org> In-Reply-To: <83zg2xfvff.fsf@gnu.org> From: =?UTF-8?B?5byg5LqR5bOw?= Date: Sat, 12 Aug 2023 00:14:01 +0800 Message-ID: Subject: Re: bug#65198: 29.1; Emacs29.1 crash in function face_for_font To: Eli Zaretskii Content-Type: multipart/alternative; boundary="000000000000e8b4000602a80017" X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 65198 Cc: 65198@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) --000000000000e8b4000602a80017 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I made a little modification to this patch, and after verification, emacs does not crash anymore, thanks!=F0=9F=98=8A diff --git a/src/xdisp.c b/src/xdisp.c index 9cddcfe..830b622 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -8312,9 +8312,14 @@ get_next_display_element (struct it *it) && success_p && FRAME_WINDOW_P (it->f)) { - struct face *face =3D FACE_FROM_ID (it->f, it->face_id); + struct face *face =3D FACE_FROM_ID_OR_NULL (it->f, it->face_id); - if (it->what =3D=3D IT_COMPOSITION && it->cmp_it.ch >=3D 0) + if (!face) + { + it->what =3D IT_GLYPHLESS; + it->glyphless_method =3D GLYPHLESS_DISPLAY_EMPTY_BOX; + } + else if (it->what =3D=3D IT_COMPOSITION && it->cmp_it.ch >=3D 0) { /* Automatic composition with glyph-string. */ Lisp_Object gstring =3D composition_gstring_from_id (it->cmp_it.i= d); @@ -31782,8 +31787,8 @@ produce_glyphless_glyph (struct it *it, bool for_no_font, Lisp_Object acronym) /* Get the metrics of the base font. We always refer to the current ASCII face. */ - face =3D FACE_FROM_ID (it->f, it->face_id)->ascii_face; - font =3D face->font ? face->font : FRAME_FONT (it->f); + face =3D FACE_FROM_ID_OR_NULL (it->f, it->face_id); + if (face) + { + face =3D face->ascii_face; + } + font =3D (face && face->font) ? face->font : FRAME_FONT (it->f); normal_char_ascent_descent (font, -1, &it->ascent, &it->descent); it->ascent +=3D font->baseline_offset; it->descent -=3D font->baseline_offset; --000000000000e8b4000602a80017 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I made a little modification to this patch, and after= verification, emacs does not crash anymore, thanks!=F0=9F=98=8A
=
diff --git a/src/xdisp.c b/src/xdisp.c
index 9cddcfe..830b622 = 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -8312,9 +8312,14 @@ = get_next_display_element (struct it *it)
=C2=A0 =C2=A0 =C2=A0 =C2=A0&= ;& success_p
=C2=A0 =C2=A0 =C2=A0 =C2=A0&& FRAME_WINDOW_P (i= t->f))
=C2=A0 =C2=A0 =C2=A0{
- =C2=A0 =C2=A0 =C2=A0struct face *fa= ce =3D FACE_FROM_ID (it->f, it->face_id);
+ =C2=A0 =C2=A0 =C2=A0st= ruct face *face =3D FACE_FROM_ID_OR_NULL (it->f, it->face_id);
- =C2=A0 =C2=A0 =C2=A0if (it->what =3D=3D IT_COMPOSITION && it-= >cmp_it.ch >=3D 0)
+ =C2=A0 =C2= =A0 =C2=A0if (!face)
+ =C2=A0 =C2=A0 =C2=A0 {
+ =C2=A0 =C2=A0 =C2=A0 = =C2=A0 it->what =3D IT_GLYPHLESS;
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 it-&g= t;glyphless_method =3D GLYPHLESS_DISPLAY_EMPTY_BOX;
+ =C2=A0 =C2=A0 =C2= =A0 }
+ =C2=A0 =C2=A0 =C2=A0else if (it->what =3D=3D IT_COMPOSITION &= amp;& it->cmp_it.ch >=3D 0)
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* Auto= matic composition with glyph-string. =C2=A0 */
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 Lisp_Object gstring =3D composition_gstring_from_id (it->cmp_it.id);
@@ -31782,8 +31787,8 @@ produce= _glyphless_glyph (struct it *it, bool for_no_font, Lisp_Object acronym)
=
=C2=A0 =C2=A0/* Get the metrics of the base font.=C2=A0 We always refer= to the current
=C2=A0 =C2=A0 =C2=A0 ASCII face. =C2=A0*/
- =C2=A0fac= e =3D FACE_FROM_ID (it->f, it->face_id)->ascii_face;
- =C2=A0fo= nt =3D face->font ? face->font : FRAME_FONT (it->f);
+ =C2=A0face =3D FACE_FROM_ID_OR_NULL (it->f, it->face_= id);
+=C2=A0 =C2=A0if (face)=C2=A0
+=C2=A0 =C2=A0{
+=C2=A0 =C2=A0 =C2=A0 face =3D face->ascii_face;
+=C2=A0 =C2=A0 }
+ =C2=A0font= =3D (face && face->font) ? face->font : FRAME_FONT (it->f= );
=C2=A0 =C2=A0normal_char_ascent_descent (font, -1, &it->ascent= , &it->descent);
=C2=A0 =C2=A0it->ascent +=3D font->baselin= e_offset;
=C2=A0 =C2=A0it->descent -=3D font->baseline_offset;
--000000000000e8b4000602a80017-- From debbugs-submit-bounces@debbugs.gnu.org Sat Aug 12 02:39:15 2023 Received: (at 65198-done) by debbugs.gnu.org; 12 Aug 2023 06:39:15 +0000 Received: from localhost ([127.0.0.1]:48490 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qUiHK-0003FY-Ob for submit@debbugs.gnu.org; Sat, 12 Aug 2023 02:39:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42918) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qUiHI-0003FL-TE for 65198-done@debbugs.gnu.org; Sat, 12 Aug 2023 02:39:13 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qUiHD-0004Fg-J5; Sat, 12 Aug 2023 02:39:07 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=rm9WGLitQBMDWYQ0HJv/FODxc8RHliH1/Yy8LLwoa6w=; b=rvTGJzet6iahRyAl+pIz OW4pwhCHP7IAeH4PBSfaHNP8fYerPYmzVhSr3Ve/sfcdeoAolyL0b4zJ+STgoeVV9q70uNXBC2EMB t089i5lRt3rEx2kkoKpRIvDSnpETzd/ildg+nq5oIq9rb8b/hKbtXXZrc+2xCNvKXpj5JkcVj9JhN U09AgHjEcUg18Wy5mSvoWORCizMlxrTR4jhcnvr5Bi7333kUu3irHL7OtD9yDG9rx6PxijG5GX43j Y5rWZfGNJuh9uOVBK1pw606+Il6UOEtYPMwXfvp+6Q9+NgHpoWycM9tkSFmZaw744TiVOj3EiWBU+ iyYfk1XVBu+O8g==; Date: Sat, 12 Aug 2023 09:39:38 +0300 Message-Id: <83il9kg3x1.fsf@gnu.org> From: Eli Zaretskii To: =?utf-8?B?5byg5LqR5bOw?= In-Reply-To: (message from =?utf-8?B?5byg5LqR5bOw?= on Sat, 12 Aug 2023 00:14:01 +0800) Subject: Re: bug#65198: 29.1; Emacs29.1 crash in function face_for_font References: <83r0obi53o.fsf@gnu.org> <83bkfeizgz.fsf@gnu.org> <831qgaiw2d.fsf@gnu.org> <83ttt6gl9l.fsf@gnu.org> <83zg2xfvff.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 65198-done Cc: 65198-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: 张云峰 > Date: Sat, 12 Aug 2023 00:14:01 +0800 > Cc: 65198@debbugs.gnu.org > > I made a little modification to this patch, and after verification, emacs does not crash anymore, > thanks!😊 Thanks, now installed on the emacs-29 branch, and closing the bug. From unknown Sat Aug 16 22:46:46 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 09 Sep 2023 11:24:11 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator