Received: (at 73563) by debbugs.gnu.org; 30 Sep 2024 12:27:17 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Sep 30 08:27:16 2024 Received: from localhost ([127.0.0.1]:44931 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1svFUi-0007jh-JB for submit <at> debbugs.gnu.org; Mon, 30 Sep 2024 08:27:16 -0400 Received: from eggs.gnu.org ([209.51.188.92]:41966) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1svFUg-0007jB-JQ for 73563 <at> debbugs.gnu.org; Mon, 30 Sep 2024 08:27:15 -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 <eliz@HIDDEN>) id 1svFU3-0002rx-K5; Mon, 30 Sep 2024 08:26:35 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=sgpgEVTf7WdE1Nl18d8mqVd6+UV3/Hl+BxkoNBW23GM=; b=lCnMA+IuibSp S12j3lTimeBAZKSIy4XBj99Cp37SCkMxfiZzkXoxDZawJ/yhHW9RLplEzuPU79rCER0SNHCm3XEsC qxVYJ8qkB/mzedk404dhI7zQHJkadK942uRsyJkaRCVl92RNGs1hHBdmESeT5Fe74FxHNs27L6EuY 4WbENr0pLyLYlUu+q0HERvyhk/tZ55O+6IRavr514I7cO+lREEGzBVoi4Ej6GUasZZaz3jEspjtZ4 AQ+hzFltD2ab1o5bbDIAUS1Y1S842XZfALIoFj2HEUFhU+sobwjlhyOoeZaH2vUpuVIeUoQqEGibe kNbME89h/vTu5BYx876zbQ==; Date: Mon, 30 Sep 2024 15:26:31 +0300 Message-Id: <86plol2uq0.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Stefan Kangas <stefankangas@HIDDEN> In-Reply-To: <CADwFkmn9fhiU7XfXu5Ku+ouuxH=J+cx73n-APP7Gkq4FdywD0g@HIDDEN> (message from Stefan Kangas on Mon, 30 Sep 2024 07:21:03 +0000) Subject: Re: bug#73563: [Ben Simms] Performance bottleneck in ns_draw_fringe_bitmap References: <CALNBX0aNy78GFVTfR_4O6hdeOcBiFLiKUJSi+kVbciXqLOd+jw@HIDDEN> <CADwFkmn9fhiU7XfXu5Ku+ouuxH=J+cx73n-APP7Gkq4FdywD0g@HIDDEN> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 73563 Cc: ben@HIDDEN, 73563 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) > Cc: Ben Simms <ben@HIDDEN> > From: Stefan Kangas <stefankangas@HIDDEN> > Date: Mon, 30 Sep 2024 07:21:03 +0000 > > Hi all, I recently started using Emacs (ns) HEAD on an ARM macos sonoma > system. > > I've noticed that ns_draw_fringe_bitmap is a fairly large performance sink > when using pixel scrolling (to the point of 99% of cpu time being inside this > function, with Emacs drawing at approx 5Hz). The slowness here isn't as > obvious when not pixel scrolling, presumably because Emacs never tries to > redraw at 60+Hz otherwise. > > I have performed some profiling and discovered that in my observed worse case > situation, of the 99% of cpu time spent in ns_draw_fringe_bitmap, approx 50% > is spent in [NSBezierPath copy], and approx 30% in [NSBezierPath fill]. According to the posted profile, ns_draw_fringe_bitmap takes much less than 99% of CPU time, somewhere around 10%. What am I missing?
bug-gnu-emacs@HIDDEN
:bug#73563
; Package emacs
.
Full text available.Received: (at submit) by debbugs.gnu.org; 30 Sep 2024 08:02:59 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Sep 30 04:02:59 2024 Received: from localhost ([127.0.0.1]:44622 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1svBMw-0001Qs-MH for submit <at> debbugs.gnu.org; Mon, 30 Sep 2024 04:02:59 -0400 Received: from lists.gnu.org ([209.51.188.17]:50282) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <stefankangas@HIDDEN>) id 1svBMu-0001Qi-Bt for submit <at> debbugs.gnu.org; Mon, 30 Sep 2024 04:02:57 -0400 Received: from [2001:470:142:3::10] (helo=eggs.gnu.org) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <stefankangas@HIDDEN>) id 1svAqT-00015S-DX for bug-gnu-emacs@HIDDEN; Mon, 30 Sep 2024 03:29:25 -0400 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from <stefankangas@HIDDEN>) id 1svApn-0007ve-HO for bug-gnu-emacs@HIDDEN; Mon, 30 Sep 2024 03:29:19 -0400 Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-37ce14ab7eeso1335559f8f.2 for <bug-gnu-emacs@HIDDEN>; Mon, 30 Sep 2024 00:27:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1727681265; x=1728286065; darn=gnu.org; h=to:subject:message-id:date:mime-version:references:from:from:to:cc :subject:date:message-id:reply-to; bh=nca+oUsU+ZdAgNPc7kYpDTpQ1SKouoAfbK4g/qjl0Ec=; b=Z84zTd+Cju5fGWCLcHCPiTKUFospdrvzAhUgyk6UmLXkRTVLeIJcpOtgLQD7SPDr2u 8XkkNwgcOYLs8u+kvrwYbcHmRGOhil41gkFbnOHrb6JvN04I52g99tVRx7YrgI8EZ9ce iZ7dBrE8SSeE2ZcFxCJQZf1Ow5E5amAkc96WWhJpZesaTdQo8+8OqgOcriiG+agKL4+b zF6QF4we1MDAEAHz1JO5khbTImZ4iLNufUKu7wyxH34MvlnIoOPp31hoSpKBSSaMuWqc fJ95jaiSHiSh4BWjEuJ8A8MWjaQoyyeoZncY9h9qErJHxqvH8ut3tKbONHflhtVEnFC/ 1KuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727681265; x=1728286065; h=to:subject:message-id:date:mime-version:references:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=nca+oUsU+ZdAgNPc7kYpDTpQ1SKouoAfbK4g/qjl0Ec=; b=BGjlPYZXL9IOalWH+eI3PwUXZz9WdjZ/hhl1J1r9NogTFITS5ErO8Ox5Vc9S8SoF96 6MHeFSJ4+I/wMtgfKdOsXyHfS+/+Gr6/fxAB7g2eFeJkEFZTeVa/OBnsVsp85C+vlExx AcUn9whGseSS+N1XE2ceHjTZXhen1umtuGNdDAPlT5sf7pFQeTaVFIJf/OFav+JNcrY4 d4XcLFNeTSaEKAiGWW9IPE0SE8ccskWhY3sm7Im97U61EoANdYo8cZjJO8WKIYktFfSR yjaa0yGv2wWaLy095Sn0kpcko21JmtkavGe7/XsQPfIVqCkR6VRK7DSOmlin16FdHLez vYhw== X-Gm-Message-State: AOJu0YzwW0jiHSDmQZQZ+VAI9Miy8MtXVYaSIQoadSwBeWsG/oQ6/OTJ wEXmX/L9BO1BvINCz7wdPyveEl/SvO5VCR0gBbVK1qpnTywwnvIilijju45VXPCeO5r2AKCr7T6 Gtf+a7SvLvPENTFF57rq188SLJykDdw== X-Google-Smtp-Source: AGHT+IEgCABam4U7Nkv5XlRhtMOIgzcBqaOm8+hdRVB1FoXngnil0ijfzOxdvxCGdMzLpmcLY5ybtfNTabRa/RrBu8c= X-Received: by 2002:a05:6402:909:b0:5c5:b6ee:e95b with SMTP id 4fb4d7f45d1cf-5c8824d3c0cmr20532107a12.8.1727680863699; Mon, 30 Sep 2024 00:21:03 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Mon, 30 Sep 2024 07:21:03 +0000 From: Stefan Kangas <stefankangas@HIDDEN> References: <CALNBX0aNy78GFVTfR_4O6hdeOcBiFLiKUJSi+kVbciXqLOd+jw@HIDDEN> X-Debbugs-CC: Ben Simms <ben@HIDDEN> MIME-Version: 1.0 Date: Mon, 30 Sep 2024 07:21:03 +0000 Message-ID: <CADwFkmn9fhiU7XfXu5Ku+ouuxH=J+cx73n-APP7Gkq4FdywD0g@HIDDEN> Subject: [Ben Simms] Performance bottleneck in ns_draw_fringe_bitmap To: bug-gnu-emacs@HIDDEN Content-Type: multipart/mixed; boundary="0000000000002a887a0623510c8e" Received-SPF: pass client-ip=2a00:1450:4864:20::42d; envelope-from=stefankangas@HIDDEN; helo=mail-wr1-x42d.google.com X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, T_SPF_HELO_TEMPERROR=0.01, T_SPF_TEMPERROR=0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) --0000000000002a887a0623510c8e Content-Type: text/plain; charset="UTF-8" I'm forwarding this to the bug tracker so that we don't lose track of it. Original message: https://lists.gnu.org/r/emacs-devel/2024-06/msg00900.html -------------------- Start of forwarded message -------------------- From: Ben Simms <ben@HIDDEN> Date: Wed, 26 Jun 2024 13:56:43 +0200 Subject: Performance bottleneck in ns_draw_fringe_bitmap To: emacs-devel@HIDDEN --0000000000002a887a0623510c8e Content-Type: text/plain; charset="US-ASCII" Content-Disposition: attachment Content-Transfer-Encoding: base64 X-Attachment-Id: 583748d02080dd75_0.2 LS0tLS0tLS0tLS0tLS0tLS0tLS0gRW5kIG9mIGZvcndhcmRlZCBtZXNzYWdlIC0tLS0tLS0tLS0t LS0tLS0tLS0tCg== --0000000000002a887a0623510c8e Content-Type: text/html; charset="utf-8" Content-Disposition: attachment Content-Transfer-Encoding: base64 X-Attachment-Id: 583748d02080dd75_0.1.1 PGRpdiBkaXI9Imx0ciI+SGkgYWxsLCBJIHJlY2VudGx5IHN0YXJ0ZWQgdXNpbmcgRW1hY3MgKG5z KSBIRUFEIG9uIGFuIEFSTSBtYWNvcyBzb25vbWEgc3lzdGVtLjxkaXY+PGJyPjwvZGl2PjxkaXY+ SSYjMzk7dmUgbm90aWNlZCB0aGF0IG5zX2RyYXdfZnJpbmdlX2JpdG1hcCBpcyBhIGZhaXJseSBs YXJnZSBwZXJmb3JtYW5jZSBzaW5rIHdoZW4gdXNpbmcgcGl4ZWwgc2Nyb2xsaW5nICh0byB0aGUg cG9pbnQgb2YgOTklIG9mIGNwdSB0aW1lIGJlaW5nIGluc2lkZSB0aGlzIGZ1bmN0aW9uLCB3aXRo IEVtYWNzIGRyYXdpbmcgYXQgYXBwcm94IDVIeikuIFRoZSBzbG93bmVzcyBoZXJlIGlzbiYjMzk7 dCBhcyBvYnZpb3VzIHdoZW4gbm90IHBpeGVsIHNjcm9sbGluZywgcHJlc3VtYWJseSBiZWNhdXNl IEVtYWNzIG5ldmVyIHRyaWVzIHRvIHJlZHJhdyBhdCA2MCtIeiBvdGhlcndpc2UuPC9kaXY+PGRp dj48YnI+PC9kaXY+PGRpdj5JIGhhdmUgcGVyZm9ybWVkIHNvbWUgcHJvZmlsaW5nIGFuZCBkaXNj b3ZlcmVkIHRoYXQgaW4gbXkgb2JzZXJ2ZWQgd29yc2UgY2FzZSBzaXR1YXRpb24sIG9mIHRoZSA5 OSUgb2YgY3B1IHRpbWUgc3BlbnQgaW4gbnNfZHJhd19mcmluZ2VfYml0bWFwLCBhcHByb3ggNTAl IGlzIHNwZW50IGluIFtOU0JlemllclBhdGggY29weV0sIGFuZCBhcHByb3ggMzAlIGluIFtOU0Jl emllclBhdGggZmlsbF0uPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5JIGhhdmUgdXNlZCB0aGUg Zm9sbG93aW5nIGJlbmNobWFyayB3aXRoIGVtYWNzIC1RIHRvIGF0dGVtcHQgdG8gcmVwcm9kdWNl IG15IGVuY291bnRlcmVkIHBlcmZvcm1hbmNlIGlzc3VlLCBob3dldmVyIEkgY2Fubm90IHJlcHJv ZHVjZSBleGFjdGx5IHRoZSBleHRyZW1lIGNhc2UgSSBleHBlcmllbmNlIGluIG15IGNvbmZpZywg YnV0IEkgaGF2ZSB1c2VkIHRoaXMgYmVuY2htYXJrIHRvIHZhbGlkYXRlIGEgcGF0Y2ggdGhhdCBz b2x2ZXMgdGhlIHNsb3dkb3duIEkmIzM5O20gZXhwZXJpZW5jaW5nOjwvZGl2PjxkaXY+PGJyPjwv ZGl2PjxkaXY+KGRlZnVuIHNjcm9sbC11cC1iZW5jaG1hcmsgKCk8YnI+wqAgKGludGVyYWN0aXZl KTxicj7CoCAobGV0ICgob2xkZ2MgZ2NzLWRvbmUpPGJyPsKgIMKgIMKgIMKgIChvbGR0aW1lIChm bG9hdC10aW1lKSkpPGJyPsKgIMKgIMKgIChkb3RpbWVzIChfIDEwKSAocGl4ZWwtLXdoaXN0bGVz dG9wLXBpeGVsLXVwICgqIDUgKHBpeGVsLWxpbmUtaGVpZ2h0KSkpIMKgKHBpeGVsLXNjcm9sbC1w aXhlbC1kb3duICgqIDUgKHBpeGVsLWxpbmUtaGVpZ2h0KSkpKTxicj7CoCDCoCDCoCAocHJpbmMg KGZvcm1hdCAmcXVvdDtHQ3M6ICVkIEVsYXBzZWQgdGltZTogJWYgc2Vjb25kc1xuJnF1b3Q7PGJy PsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICgtIGdjcy1kb25lIG9sZGdjKSAo LSAoZmxvYXQtdGltZSkgb2xkdGltZSkpICMmIzM5O2V4dGVybmFsLWRlYnVnZ2luZy1vdXRwdXQp KSk8YnI+PGJyPihkZWZ1biBhZGQtZnJpbmdlcyAoKTxicj7CoCAoaW50ZXJhY3RpdmUpPGJyPsKg IChkb3RpbWVzIChfIDIwKTxicj7CoCDCoCAobmV3bGluZS1hbmQtaW5kZW50KTxicj7CoCDCoCAo aW5zZXJ0ICZxdW90O0EmcXVvdDspPGJyPsKgIMKgIChnb3RvLWNoYXIgKGxpbmUtYmVnaW5uaW5n LXBvc2l0aW9uKSk8YnI+wqAgwqAgKGxldCAoKHMgJnF1b3Q7eCZxdW90Oyk8YnI+wqAgwqAgwqAg wqAgwqAgKGZyaW5nZS1vdmVybGF5IChtYWtlLW92ZXJsYXkgKHBvaW50KSAoMSsgKHBvaW50KSkp KSk8YnI+wqAgwqAgwqAgKHB1dC10ZXh0LXByb3BlcnR5IDAgMSAmIzM5O2Rpc3BsYXkgKGxpc3Qg JiMzOTtsZWZ0LWZyaW5nZSAmIzM5O2xlZnQtdHJpYW5nbGUpIHMpPGJyPsKgIMKgIMKgIChvdmVy bGF5LXB1dCBmcmluZ2Utb3ZlcmxheSAmIzM5O2JlZm9yZS1zdHJpbmcgcykpPGJyPsKgIMKgIChn b3RvLWNoYXIgKGxpbmUtZW5kLXBvc2l0aW9uKSkpKTxicj48YnI+KHNjcm9sbC1iYXItbW9kZSAt MSk8YnI+KG1lbnUtYmFyLW1vZGUgLTEpPGJyPihwaXhlbC1zY3JvbGwtbW9kZSk8YnI+KHBpeGVs LXNjcm9sbC1wcmVjaXNpb24tbW9kZSk8YnI+KHNldHE8YnI+wqAgwqAgwqAgcGl4ZWwtc2Nyb2xs LXByZWNpc2lvbi11c2UtbW9tZW50dW0gdCk8YnI+PGJyPihkb3RpbWVzIChfIDIwKTxicj7CoCAo YWRkLWZyaW5nZXMpKTxicj4oZG90aW1lcyAoXyA1KTxicj7CoCAoZW5kLW9mLWJ1ZmZlcik8YnI+ wqAgKGNvbmRpdGlvbi1jYXNlIG5pbCAod2hpbGUgdCAoc2Nyb2xsLWRvd24pKTxicj7CoCDCoCAo ZXJyb3IgbmlsKSk8YnI+wqAgKHNjcm9sbC11cC1iZW5jaG1hcmspKTxicj48ZGl2Pjxicj48L2Rp dj48ZGl2Pjxicj48L2Rpdj48ZGl2Pk9uIEVtYWNzIChlNGUxZDBjZDApIHRoaXMgcmVwb3J0cyB0 aGUgZm9sbG93aW5nOjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+R0NzOiAxNCBFbGFwc2VkIHRp bWU6IDUuNDQ5MDMyIHNlY29uZHM8YnI+R0NzOiAxNCBFbGFwc2VkIHRpbWU6IDUuMjA5MDA2IHNl Y29uZHM8YnI+R0NzOiAxMyBFbGFwc2VkIHRpbWU6IDUuMTg3Nzc5IHNlY29uZHM8YnI+R0NzOiAx MyBFbGFwc2VkIHRpbWU6IDUuMTc4NDcyIHNlY29uZHM8YnI+R0NzOiAxMyBFbGFwc2VkIHRpbWU6 IDUuMTg0NzQxIHNlY29uZHM8YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5UaGUgcHJvZmls ZXIgb3V0cHV0IGZvciB0aGlzIGlzIHRoZSBmb2xsb3dpbmc6PC9kaXY+PGRpdj48YnI+PC9kaXY+ PGRpdj5XZWlnaHQgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgU2VsZiBXZWlnaHQgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgU3ltYm9sIE5hbWU8YnI+MTEu MzAgR2MgwqAxMDAuMCUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgMS4wMCBNYyDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBGcmVkaXNwbGF5PGJyPjExLjMw IEdjIMKgIDk5LjklIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgcmVkaXNwbGF5X3ByZXNlcnZlX2VjaG9fYXJl YTxicj4xMS4xMiBHYyDCoCA5OC4zJSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAxLjAwIE1jIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgcmVkaXNwbGF5 X2ludGVybmFsPGJyPjYuOTcgR2MgwqAgNjEuNiUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLSDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBpbnRlcm5h bF9jb25kaXRpb25fY2FzZV8xPGJyPjYuOTcgR2MgwqAgNjEuNiUgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoHJlZGlzcGxheV93aW5kb3dfMTxicj42Ljk3IEdjIMKgIDYxLjYlIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgcmVkaXNwbGF5X3dpbmRvdzxicj41LjYwIEdjIMKgIDQ5LjUlIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqB0cnlfd2luZG93PGJyPjEuMjUgR2MgwqAgMTEuMCUgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgMS4wMCBNYyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoGRpc3BsYXlfbW9kZV9saW5lczxicj4xMTEuNjggTWMgwqAgwqAw LjklIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB1cGRhdGVfZnJhbWVfdG9vbF9iYXI8YnI+Ni4w MCBNYyDCoCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGd1aV9jb25zaWRlcl9mcmFt ZV90aXRsZTxicj4yLjAwIE1jIMKgIMKgMC4wJSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAxLjAw IE1jIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgdXBkYXRlX3dpbmRvd19mcmluZ2VzPGJyPjEuMDAgTWMgwqAgwqAwLjAlIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIDEuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqByZWNvbnNpZGVyX2NsaXBfY2hhbmdlczxicj4xLjAwIE1jIMKg IMKgMC4wJSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgY3Vyc29yX3Jvd19mdWxseV92aXNpYmxl X3A8YnI+MS4wMCBNYyDCoCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgMS4wMCBNYyDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoF9f X2Noa3N0a19kYXJ3aW48YnI+MS4wMCBNYyDCoCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgMS4wMCBNYyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoHJlZGlzcGxheV90YWJfYmFyPGJyPjEuMDAgTWMgwqAgwqAwLjAlIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIDEuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB0cnlfd2luZG93X2lkPGJyPjMuNjQgR2MgwqAgMzIuMiUg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCB1cGRhdGVfZnJhbWU8YnI+My40NyBHYyDCoCAzMC42JSDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgdXBkYXRlX3dpbmRvd190cmVlPGJyPjMuNDcgR2MgwqAgMzAuNiUg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgMS4wMCBNYyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB1cGRhdGVfd2luZG93PGJyPjIuMTUgR2MgwqAg MTkuMCUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGd1aV91cGRhdGVfd2luZG93X2VuZDxicj4y LjExIEdjIMKgIDE4LjYlIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgZHJhd193aW5kb3dfZnJp bmdlczxicj4yLjA5IEdjIMKgIDE4LjQlIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDEuMDAgTWMg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqBkcmF3X3Jvd19mcmluZ2VfYml0bWFwczxicj4yMC4wMCBNYyDCoCDCoDAuMSUgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoHNldF9idWZmZXJfaW50ZXJuYWxfMTxicj40MC4wMCBNYyDCoCDC oDAuMyUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBkaXNwbGF5X2FuZF9zZXRfY3Vyc29yPGJy PjEuMDAgTWMgwqAgwqAwLjAlIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDEuMDAgTWMgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgZ3VpX2Ry YXdfdmVydGljYWxfYm9yZGVyPGJyPjU4Ni4xOCBLYyDCoCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCB1bmJsb2NrX2lucHV0PGJyPjEuMjggR2MgwqAgMTEuMyUgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgMy4wMCBNYyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoHVwZGF0ZV93aW5kb3dfbGluZTxicj4yNS4wMCBNYyDCoCDCoDAu MiUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgMy4wMCBNYyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHNjcm9sbGluZ193aW5kb3c8YnI+OS4z OSBNYyDCoCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgMy4wMCBNYyDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHVwZGF0ZV93aW5k b3dfZnJpbmdlczxicj4xLjAwIE1jIMKgIMKgMC4wJSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAx LjAwIE1jIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgcmVkcmF3X292ZXJsYXBwZWRfcm93czxicj4xLjAwIE1jIMKgIMKgMC4wJSDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCAxLjAwIE1jIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgcmVkcmF3X292ZXJsYXBwaW5nX3Jvd3M8YnI+MTUyLjUz IE1jIMKgIMKgMS4zJSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgdXBkYXRlX2JlZ2luPGJyPjE4Ljcy IE1jIMKgIMKgMC4xJSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgdXBkYXRlX2VuZDxicj4zOTcuMDUg TWMgwqAgwqAzLjUlIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgcHJlcGFyZV9tZW51X2JhcnM8YnI+OTEu NDEgTWMgwqAgwqAwLjglIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgZWNob19hcmVhX2Rpc3BsYXk8YnI+ NS4wMCBNYyDCoCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBuc19mcmFtZV91cF90b19kYXRl PGJyPjQuMDEgTWMgwqAgwqAwLjAlIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgc3RhcnRfcG9sbGluZzxi cj40LjAwIE1jIMKgIMKgMC4wJSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAxLjAwIE1jIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHVuYmluZF90bzxi cj4zLjAwIE1jIMKgIMKgMC4wJSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAyLjAwIE1jIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHJ1bl93aW5kb3df Y2hhbmdlX2Z1bmN0aW9uczxicj4yLjAwIE1jIMKgIMKgMC4wJSDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IGhzY3JvbGxfd2luZG93czxicj4xLjAwIE1jIMKgIMKgMC4wJSDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCAxLjAwIE1jIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIFhDT05TPGJyPjEuMDAgTWMgwqAgwqAwLjAlIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgRmdl dGhhc2g8YnI+MS4wMCBNYyDCoCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLSDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBjbGVhcl9kZXNp cmVkX21hdHJpY2VzPGJyPjEuMDAgTWMgwqAgwqAwLjAlIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IDEuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgbWFya193aW5kb3dfZGlzcGxheV9hY2N1cmF0ZV8xPGJyPjEuMDAgTWMgwqAgwqAwLjAlIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgbnNfc2V0X2RvY19lZGl0ZWQ8YnI+MS4wMCBNYyDCoCDCoDAuMCUg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgMS4wMCBNYyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBjbGVhcl9nYXJiYWdlZF9mcmFtZXM8YnI+MTgxLjI5 IE1jIMKgIMKgMS42JSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgZmx1c2hfZnJhbWU8YnI+MS4wMCBNYyDC oCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHVuYmluZF90bzxicj48YnI+PGJyPjExLjkwIEdj IMKgMTAwLjAlIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg RnJlZGlzcGxheTxicj4xMS45MCBHYyDCoCA5OS45JSDCoCDCoCDCoCDCoCDCoCAtIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIHJlZGlzcGxheV9wcmVzZXJ2ZV9lY2hvX2FyZWE8YnI+MTEu NjYgR2MgwqAgOTcuOSUgwqAgwqAgwqAgwqAgwqAgMi4wMCBNYyDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoHJlZGlzcGxheV9pbnRlcm5hbDxicj43LjQ4IEdjIMKgIDYyLjglIMKgIMKg IMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgaW50ZXJuYWxfY29u ZGl0aW9uX2Nhc2VfMTxicj43LjQ4IEdjIMKgIDYyLjglIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqByZWRpc3BsYXlfd2luZG93XzE8YnI+Ny40OCBH YyDCoCA2Mi44JSDCoCDCoCDCoCDCoCDCoCAzLjAwIE1jIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIHJlZGlzcGxheV93aW5kb3c8YnI+Ni4zNSBHYyDCoCA1My4zJSDCoCDCoCDC oCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgdHJ5X3dpbmRv dzxicj42LjIzIEdjIMKgIDUyLjMlIMKgIMKgIMKgIMKgIMKgIDM3LjAzIE1jIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGRpc3BsYXlfbGluZTxicj43My43MCBNYyDCoCDC oDAuNiUgwqAgwqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCBzdGFydF9kaXNwbGF5PGJyPjQ0LjAxIE1jIMKgIMKgMC4zJSDCoCDCoCDCoCDCoCDCoCAt IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHBhcnRpYWxfbGluZV9oZWln aHQ8YnI+MS4wMCBNYyDCoCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAgMS4wMCBNYyDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBhcHBlbmRfc3BhY2VfZm9yX25ld2xpbmU8YnI+ MS4wMCBNYyDCoCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAgMS4wMCBNYyDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBndWlfcHJvZHVjZV9nbHlwaHM8YnI+OTc3LjQ4IE1jIMKg IMKgOC4yJSDCoCDCoCDCoCDCoCDCoCAxLjAwIE1jIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgZGlzcGxheV9tb2RlX2xpbmVzPGJyPjEyNS44MCBNYyDCoCDCoDEuMCUgwqAg wqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHVwZGF0 ZV9mcmFtZV90b29sX2Jhcjxicj4xMC4wMCBNYyDCoCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAgLSDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGd1aV9jb25zaWRlcl9mcmFtZV90 aXRsZTxicj43LjAwIE1jIMKgIMKgMC4wJSDCoCDCoCDCoCDCoCDCoCAzLjAwIE1jIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgdXBkYXRlX3dpbmRvd19mcmluZ2VzPGJyPjEu MDAgTWMgwqAgwqAwLjAlIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqBjdXJzb3Jfcm93X2Z1bGx5X3Zpc2libGVfcDxicj4xLjAwIE1jIMKgIMKg MC4wJSDCoCDCoCDCoCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgdW5iaW5kX3RvPGJyPjEuMDAgTWMgwqAgwqAwLjAlIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBXSU5ET1dQPGJyPjEuMDAgTWMgwqAgwqAw LjAlIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqB3aW5kb3dfd2FudHNfbW9kZV9saW5lPGJyPjEuMDAgTWMgwqAgwqAwLjAlIMKgIMKgIMKgIMKg IMKgIDEuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB3aW5kb3df c2Nyb2xsX21hcmdpbjxicj4zLjI0IEdjIMKgIDI3LjIlIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgdXBkYXRlX2ZyYW1lPGJyPjMuMDYgR2MgwqAgMjUu NyUgwqAgwqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHVw ZGF0ZV93aW5kb3dfdHJlZTxicj4zLjA2IEdjIMKgIDI1LjclIMKgIMKgIMKgIMKgIMKgIDEuMDAg TWMgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgdXBkYXRlX3dpbmRvdzxicj4x LjU4IEdjIMKgIDEzLjIlIMKgIMKgIMKgIMKgIMKgIDEuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqBndWlfdXBkYXRlX3dpbmRvd19lbmQ8YnI+MS41NCBHYyDCoCAx Mi45JSDCoCDCoCDCoCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIGRyYXdfd2luZG93X2ZyaW5nZXM8YnI+MS41MCBHYyDCoCAxMi42JSDCoCDCoCDCoCDCoCDC oCAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgZHJhd19yb3dfZnJp bmdlX2JpdG1hcHM8YnI+MS41MCBHYyDCoCAxMi42JSDCoCDCoCDCoCDCoCDCoCAyLjAwIE1jIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGRyYXdfZnJpbmdlX2JpdG1h cDxicj42MDguMzUgS2MgwqAgwqAwLjAlIMKgIMKgIMKgIMKgIMKgIDYwOC4zNSBLYyDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBGUkFNRV9SSUdIVF9GUklOR0VfV0lE VEg8YnI+MzQuMDEgTWMgwqAgwqAwLjIlIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBzZXRfYnVmZmVyX2ludGVybmFsXzE8YnI+MzguMDAg TWMgwqAgwqAwLjMlIMKgIMKgIMKgIMKgIMKgIDEuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgZGlzcGxheV9hbmRfc2V0X2N1cnNvcjxicj4xLjQ0IEdjIMKgIDEy LjAlIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqB1cGRhdGVfd2luZG93X2xpbmU8YnI+MzEuMDAgTWMgwqAgwqAwLjIlIMKgIMKgIMKgIMKgIMKg IDIuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBzY3JvbGxpbmdf d2luZG93PGJyPjEyLjAwIE1jIMKgIMKgMC4xJSDCoCDCoCDCoCDCoCDCoCA2LjAwIE1jIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgdXBkYXRlX3dpbmRvd19mcmluZ2VzPGJy PjEuMDAgTWMgwqAgwqAwLjAlIMKgIMKgIMKgIMKgIMKgIDEuMDAgTWMgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB3aW5kb3dfd2FudHNfbW9kZV9saW5lPGJyPjEuMDAgTWMg wqAgwqAwLjAlIMKgIMKgIMKgIMKgIMKgIDEuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqB3aW5kb3dfdGV4dF9ib3R0b21feTxicj4xLjAwIE1jIMKgIMKgMC4wJSDC oCDCoCDCoCDCoCDCoCAxLjAwIE1jIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgcmVkcmF3X292ZXJsYXBwZWRfcm93czxicj4yMTQuNDkgS2MgwqAgwqAwLjAlIMKgIMKgIMKg IMKgIMKgIDIxNC40OSBLYyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGNs aXBfdG9fYm91bmRzPGJyPjE1OS43NCBNYyDCoCDCoDEuMyUgwqAgwqAgwqAgwqAgwqAgLSDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHVwZGF0ZV9iZWdpbjxicj4yMC4wMCBNYyDC oCDCoDAuMSUgwqAgwqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoHVwZGF0ZV9lbmQ8YnI+MjAuMDAgTWMgwqAgwqAwLjElIMKgIMKgIMKgIMKgIMKgIC0gwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgbnNfdXBkYXRlX2VuZDxicj44MTUuMTUg TWMgwqAgwqA2LjglIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgcHJlcGFyZV9tZW51X2JhcnM8YnI+MTA2LjE3IE1jIMKgIMKgMC44JSDCoCDCoCDCoCDC oCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGVjaG9fYXJlYV9kaXNwbGF5 PGJyPjEwLjAwIE1jIMKgIMKgMC4wJSDCoCDCoCDCoCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIG5zX2ZyYW1lX3VwX3RvX2RhdGU8YnI+My4wMCBNYyDCoCDCoDAuMCUg wqAgwqAgwqAgwqAgwqAgMS4wMCBNYyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBy dW5fd2luZG93X2NoYW5nZV9mdW5jdGlvbnM8YnI+My4wMCBNYyDCoCDCoDAuMCUgwqAgwqAgwqAg wqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBuc19zZXRfZG9jX2VkaXRl ZDxicj4xLjAwIE1jIMKgIMKgMC4wJSDCoCDCoCDCoCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIHNwZWNiaW5kPGJyPjEuMDAgTWMgwqAgwqAwLjAlIMKgIMKgIMKgIMKg IMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgc3RhcnRfcG9sbGluZzxicj4x LjAwIE1jIMKgIMKgMC4wJSDCoCDCoCDCoCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIHVwZGF0ZV9vdmVybGF5X2Fycm93czxicj4xLjAwIE1jIMKgIMKgMC4wJSDCoCDC oCDCoCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGhzY3JvbGxfd2lu ZG93czxicj4yMzcuNzIgTWMgwqAgwqAxLjklIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqBmbHVzaF9mcmFtZTxicj4xODguOTcgS2MgwqAgwqAwLjAlIMKg IMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB1bmJpbmRfdG88 YnI+Mi4wMCBNYyDCoCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCBzd2FsbG93X2V2ZW50czxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkFu ZCB3aXRoIGEgcGF0Y2ggSSBoYXZlIGRldmVsb3BlZCB0aGF0IHVzZXMgbWFza2VkIGJpdG1hcHMg aW5zdGVhZCBvZiBiZXppZXJzIGZvciBkcmF3aW5nIGZyaW5nZXM6PC9kaXY+PGRpdj48YnI+PC9k aXY+PGRpdj5HQ3M6IDE0IEVsYXBzZWQgdGltZTogNS4wOTExNjIgc2Vjb25kczxicj5HQ3M6IDE0 IEVsYXBzZWQgdGltZTogNC44MjU5NjYgc2Vjb25kczxicj5HQ3M6IDEzIEVsYXBzZWQgdGltZTog NC43OTMzNjQgc2Vjb25kczxicj5HQ3M6IDEzIEVsYXBzZWQgdGltZTogNC43ODU5NjAgc2Vjb25k czxicj5HQ3M6IDEzIEVsYXBzZWQgdGltZTogNC43ODI0NzAgc2Vjb25kczxicj48L2Rpdj48ZGl2 Pjxicj48L2Rpdj48ZGl2PldpdGggdGhlIGZvbGxvd2luZyBwcm9maWxlciBvdXRwdXQ6PC9kaXY+ PGRpdj48YnI+PC9kaXY+PGRpdj44LjU1IEdjIMKgMTAwLjAlIC0gRnJlZGlzcGxheTxicj44LjQ1 IEdjIMKgIDk4LjklIC0gcmVkaXNwbGF5X3ByZXNlcnZlX2VjaG9fYXJlYTxicj44LjI4IEdjIMKg IDk2LjklIDEuMDAgTWMgwqByZWRpc3BsYXlfaW50ZXJuYWw8YnI+NS4zNSBHYyDCoCA2Mi41JSAt IMKgIGludGVybmFsX2NvbmRpdGlvbl9jYXNlXzE8YnI+NS4zNSBHYyDCoCA2Mi41JSAtIMKgIMKg cmVkaXNwbGF5X3dpbmRvd18xPGJyPjUuMzUgR2MgwqAgNjIuNSUgMS4wMCBNYyDCoCDCoCByZWRp c3BsYXlfd2luZG93PGJyPjQuNjEgR2MgwqAgNTMuOCUgMS4xMSBNYyDCoCDCoCDCoHRyeV93aW5k b3c8YnI+NjM5LjM3IE1jIMKgIMKgNy40JSAtIMKgIMKgIMKgZGlzcGxheV9tb2RlX2xpbmVzPGJy Pjg2Ljg1IE1jIMKgIMKgMS4wJSAtIMKgIMKgIMKgdXBkYXRlX2ZyYW1lX3Rvb2xfYmFyPGJyPjgu MDAgTWMgwqAgwqAwLjAlIDEuMDAgTWMgwqAgwqAgwqBndWlfY29uc2lkZXJfZnJhbWVfdGl0bGU8 YnI+Mi4wMCBNYyDCoCDCoDAuMCUgMi4wMCBNYyDCoCDCoCDCoHVwZGF0ZV93aW5kb3dfZnJpbmdl czxicj4yLjAwIE1jIMKgIMKgMC4wJSAyLjAwIE1jIMKgIMKgIMKgdHJ5X3dpbmRvd19pZDxicj4x LjAwIE1jIMKgIMKgMC4wJSAtIMKgIMKgIMKgd2luZG93X3dhbnRzX21vZGVfbGluZTxicj4xLjAw IE1jIMKgIMKgMC4wJSAxLjAwIE1jIMKgIMKgcHVzaF9oYW5kbGVyPGJyPjIuMzcgR2MgwqAgMjcu NyUgLSDCoCB1cGRhdGVfZnJhbWU8YnI+Mi4yMiBHYyDCoCAyNS45JSAtIMKgIMKgdXBkYXRlX3dp bmRvd190cmVlPGJyPjIuMjIgR2MgwqAgMjUuOSUgMy4wMCBNYyDCoCDCoCB1cGRhdGVfd2luZG93 PGJyPjEuMTIgR2MgwqAgMTMuMCUgLSDCoCDCoCDCoGd1aV91cGRhdGVfd2luZG93X2VuZDxicj4x LjEwIEdjIMKgIDEyLjglIDEuMDAgTWMgwqAgwqAgwqAgZHJhd193aW5kb3dfZnJpbmdlczxicj4x LjA4IEdjIMKgIDEyLjYlIC0gwqAgwqAgwqAgwqBkcmF3X3Jvd19mcmluZ2VfYml0bWFwczxicj4x LjA4IEdjIMKgIDEyLjYlIDEuMDAgTWMgwqAgwqAgwqAgwqAgZHJhd19mcmluZ2VfYml0bWFwPGJy PjEuMDggR2MgwqAgMTIuNSUgMTIuNDggTWMgwqAgwqAgwqAgwqAgwqBkcmF3X2ZyaW5nZV9iaXRt YXBfMTxicj45MDUuMTIgTWMgwqAgMTAuNSUgMS4wMyBNYyDCoCDCoCDCoCDCoCDCoCBuc19kcmF3 X2ZyaW5nZV9iaXRtYXA8YnI+NjY3LjkyIE1jIMKgIMKgNy44JSAtIMKgIMKgIMKgIMKgIMKgIMKg Q0dDb250ZXh0RHJhd0ltYWdlV2l0aE9wdGlvbnM8YnI+ODEuOTEgTWMgwqAgwqAwLjklIDEuMDAg TWMgwqAgwqAgwqAgwqAgwqAgwqBOU1JlY3RGaWxsPGJyPjQ1LjY1IE1jIMKgIMKgMC41JSAtIMKg IMKgIMKgIMKgIMKgIMKgTlNDb2xvclNldFdpdGhGaWxsQW5kU3Ryb2tlPGJyPjI5LjA3IE1jIMKg IMKgMC4zJSAyLjAwIE1jIMKgIMKgIMKgIMKgIMKgIMKgbnNfcm93X3JlY3Q8YnI+MjIuNTMgTWMg wqAgwqAwLjIlIC0gwqAgwqAgwqAgwqAgwqAgwqBuc19mb2N1czxicj4xMS4wMCBNYyDCoCDCoDAu MSUgMi4wMCBNYyDCoCDCoCDCoCDCoCDCoCDCoCtbTlNDb2xvcihFbWFjc0NvbG9yKSBjb2xvcldp dGhVbnNpZ25lZExvbmc6XTxicj44LjAwIE1jIMKgIMKgMC4wJSAxLjAwIE1jIMKgIMKgIMKgIMKg IMKgIMKgbnNfdW5mb2N1czxicj44LjAwIE1jIMKgIMKgMC4wJSAtIMKgIMKgIMKgIMKgIMKgIMKg LVtfTlNUYWdnZWRQb2ludGVyQ29sb3IgQ0dDb2xvcl08YnI+OC4wMCBNYyDCoCDCoDAuMCUgMi4w MCBNYyDCoCDCoCDCoCDCoCDCoCDCoC1bX19OU0RpY3Rpb25hcnlNIG9iamVjdEZvcktleTpdPGJy PjQuMDAgTWMgwqAgwqAwLjAlIDQuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqBOU1VuaW9uUmVjdDxi cj4zLjAwIE1jIMKgIMKgMC4wJSAzLjAwIE1jIMKgIMKgIMKgIMKgIMKgIMKgb2JqY19tc2dTZW5k PGJyPjIuMDAgTWMgwqAgwqAwLjAlIDIuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqBndWlfZGVmaW5l X2ZyaW5nZV9iaXRtYXA8YnI+Mi4wMCBNYyDCoCDCoDAuMCUgMi4wMCBNYyDCoCDCoCDCoCDCoCDC oCDCoENHQ29udGV4dFNldENvbXBvc2l0ZU9wZXJhdGlvbjxicj4xLjAwIE1jIMKgIMKgMC4wJSAt IMKgIMKgIMKgIMKgIMKgIMKgb2JqY19hdXRvcmVsZWFzZTxicj4xLjAwIE1jIMKgIMKgMC4wJSAx LjAwIE1jIMKgIMKgIMKgIMKgIMKgIMKgQ0dDb250ZXh0Q2xpcFRvUmVjdDxicj4xLjAwIE1jIMKg IMKgMC4wJSAtIMKgIMKgIMKgIMKgIMKgIMKgQ0dHU3RhdGVTZXRGaWxsQ29sb3I8YnI+MS4wMCBN YyDCoCDCoDAuMCUgMS4wMCBNYyDCoCDCoCDCoCDCoCDCoCDCoF9vYmpjX3Jvb3RBdXRvcmVsZWFz ZTxicj4xLjAwIE1jIMKgIMKgMC4wJSAxLjAwIE1jIMKgIMKgIMKgIMKgIMKgIMKgTlNJbnRlcnNl Y3Rpb25SZWN0PGJyPjEuMDAgTWMgwqAgwqAwLjAlIDEuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqBD R0NvbnRleHRTYXZlR1N0YXRlPGJyPjEuMDAgTWMgwqAgwqAwLjAlIDEuMDAgTWMgwqAgwqAgwqAg wqAgwqAgwqBOU01ha2VSZWN0PGJyPjEuMDAgTWMgwqAgwqAwLjAlIDEuMDAgTWMgwqAgwqAgwqAg wqAgwqAgwqAtW05TT2JqZWN0IGF1dG9yZWxlYXNlXTxicj4xLjAwIE1jIMKgIMKgMC4wJSAxLjAw IE1jIMKgIMKgIMKgIMKgIMKgIMKgQ0dEYXRhUHJvdmlkZXJJc1pvbWJpZTxicj4xLjAwIE1jIMKg IMKgMC4wJSAxLjAwIE1jIMKgIMKgIMKgIMKgIMKgIMKgRFlMRC1TVFVCJCROU1JlY3RGaWxsPGJy PjEuMDAgTWMgwqAgwqAwLjAlIDEuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqBvYmpjX21zZ1NlbmQk Y29sb3JXaXRoVW5zaWduZWRMb25nOjxicj4xMjkuMzggTWMgwqAgwqAxLjUlIDExLjM0IE1jIMKg IMKgIMKgIMKgIMKgIGxvb2t1cF9uYW1lZF9mYWNlPGJyPjguMDAgTWMgwqAgwqAwLjAlIC0gwqAg wqAgwqAgwqAgwqAgd2luZG93X2JveF9yaWdodDxicj40LjMxIE1jIMKgIMKgMC4wJSAxLjAwIE1j IMKgIMKgIMKgIMKgIMKgIHdpbmRvd193YW50c190YWJfbGluZTxicj41LjAwIE1jIMKgIMKgMC4w JSAxLjAwIE1jIMKgIMKgIMKgIMKgIMKgIHdpbmRvd193YW50c19oZWFkZXJfbGluZTxicj4zLjA5 IE1jIMKgIMKgMC4wJSAzLjAwIE1jIMKgIMKgIMKgIMKgIMKgIGJ1aWx0aW5fbGlzcF9zeW1ib2w8 YnI+Mi4wMCBNYyDCoCDCoDAuMCUgMS4wMCBNYyDCoCDCoCDCoCDCoCDCoCB3aW5kb3dfYm94X2xl ZnQ8YnI+Mi4wMCBNYyDCoCDCoDAuMCUgMS4wMCBNYyDCoCDCoCDCoCDCoCDCoCBGUkFNRV9JTlRF Uk5BTF9CT1JERVJfV0lEVEg8YnI+MS41NSBNYyDCoCDCoDAuMCUgMS41NSBNYyDCoCDCoCDCoCDC oCDCoCBGQUNFX0ZST01fSURfT1JfTlVMTDxicj4xLjAwIE1jIMKgIMKgMC4wJSAtIMKgIMKgIMKg IMKgIMKgIFdJTkRPV1A8YnI+MS4wMCBNYyDCoCDCoDAuMCUgMS4wMCBNYyDCoCDCoCDCoCDCoCDC oCBFUTxicj4yNjAuODMgS2MgwqAgwqAwLjAlIDI2MC44MyBLYyDCoCDCoCDCoCDCoCDCoCBFUTxi cj4xLjAwIE1jIMKgIMKgMC4wJSAxLjAwIE1jIMKgIMKgIMKgIMKgIMKgIGdldF9mcmluZ2VfYml0 bWFwX2RhdGE8YnI+MS4wMCBNYyDCoCDCoDAuMCUgMS4wMCBNYyDCoCDCoCDCoCDCoCDCoG5zX2Ry YXdfZnJpbmdlX2JpdG1hcDxicj4xLjAwIE1jIMKgIMKgMC4wJSAxLjAwIE1jIMKgIMKgIMKgIMKg IEZSQU1FX1JJR0hUX0ZSSU5HRV9XSURUSDxicj4yMC4wMCBNYyDCoCDCoDAuMiUgMS4wMCBNYyDC oCDCoCDCoCDCoHNldF9idWZmZXJfaW50ZXJuYWxfMTxicj4xOS4wMCBNYyDCoCDCoDAuMiUgMS4w MCBNYyDCoCDCoCDCoCBkaXNwbGF5X2FuZF9zZXRfY3Vyc29yPGJyPjEuMDcgR2MgwqAgMTIuNCUg Mi4wMCBNYyDCoCDCoCDCoHVwZGF0ZV93aW5kb3dfbGluZTxicj4yMS4yNSBNYyDCoCDCoDAuMiUg Ni4wMCBNYyDCoCDCoCDCoHNjcm9sbGluZ193aW5kb3c8YnI+Ny4wMCBNYyDCoCDCoDAuMCUgMi4w MCBNYyDCoCDCoCDCoHVwZGF0ZV93aW5kb3dfZnJpbmdlczxicj42NDYuMzggS2MgwqAgwqAwLjAl IC0gwqAgwqAgwqB3aW5kb3dfdGV4dF9ib3R0b21feTxicj4xMzkuODcgTWMgwqAgwqAxLjYlIC0g wqAgwqB1cGRhdGVfYmVnaW48YnI+MTYuMDEgTWMgwqAgwqAwLjElIC0gwqAgwqB1cGRhdGVfZW5k PGJyPjQ4NC41OSBNYyDCoCDCoDUuNiUgLSDCoCBwcmVwYXJlX21lbnVfYmFyczxicj42My4xMiBN YyDCoCDCoDAuNyUgMzY1LjI0IEtjIMKgIGVjaG9fYXJlYV9kaXNwbGF5PGJyPjMuMTMgTWMgwqAg wqAwLjAlIC0gwqAgaHNjcm9sbF93aW5kb3dzPGJyPjIuNTEgTWMgwqAgwqAwLjAlIC0gwqAgbnNf c2V0X2RvY19lZGl0ZWQ8YnI+Mi4wMCBNYyDCoCDCoDAuMCUgMi4wMCBNYyDCoCBvdmVybGF5X2Fy cm93c19jaGFuZ2VkX3A8YnI+Mi4wMCBNYyDCoCDCoDAuMCUgMS4wMCBNYyDCoCBydW5fd2luZG93 X2NoYW5nZV9mdW5jdGlvbnM8YnI+MS4wMCBNYyDCoCDCoDAuMCUgMS4wMCBNYyDCoCByZXNldF9v dXRlcm1vc3RfcmVzdHJpY3Rpb25zPGJyPjY1MS43OSBLYyDCoCDCoDAuMCUgNjUxLjc5IEtjIMKg IF9fX2Noa3N0a19kYXJ3aW48YnI+MS4wMCBNYyDCoCDCoDAuMCUgMS4wMCBNYyDCoCBtYXJrX3dp bmRvd19kaXNwbGF5X2FjY3VyYXRlXzE8YnI+MS4wMCBNYyDCoCDCoDAuMCUgLSDCoCB1bmJpbmRf dG88YnI+MS4wMCBNYyDCoCDCoDAuMCUgLSDCoCBzdGFydF9wb2xsaW5nPGJyPjE2OS4zNSBNYyDC oCDCoDEuOSUgLSDCoGZsdXNoX2ZyYW1lPGJyPjEuMDAgTWMgwqAgwqAwLjAlIC0gwqB1bmJpbmRf dG88YnI+NTEuMDEgTWMgwqAgwqAwLjUlIC0gZGV0ZWN0X2lucHV0X3BlbmRpbmdfcnVuX3RpbWVy czxicj40MS4xMyBNYyDCoCDCoDAuNCUgLSBzd2FsbG93X2V2ZW50czxicj48L2Rpdj48ZGl2Pjxi cj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkkmIzM5O3ZlIHB1dCB0b2dldGhlciBhIHBhdGNo IHRoYXQgZHJhd3MgdXNpbmcgYSBtYXNrZWQgQ0dJbWFnZSBpbnN0ZWFkIG9mIGFuIE5TQmV6aWVy LiBIb3dldmVyIEkmIzM5O20gbm90IHN1cmUgaWYgaXQmIzM5O3MgYW55IGdvb2QgYXMgSSYjMzk7 bSBjb21wbGV0ZWx5IHVuZmFtaWxpYXIgd2l0aCB0aGUgRW1hY3MgY29kZWJhc2UgYW5kIG1hY29z L05TIGdyYXBoaWNzIEFQSXMuIEFsc28gSSBiZWxpZXZlIE5TIGVtYWNzIHdhbnRzIHRvIGJlIGNv bXBhdGlibGUgd2l0aCBHTlVTdGVwIGFuZCBJIGhhdmUgbm8gaWRlYSBpZiB0aGlzIHJlbWFpbnMg Y29tcGF0aWJsZTo8YnI+PGJyPjxwcmUgc3R5bGU9ImNvbG9yOnJnYigwLDAsMCkiPkZyb20gZDU0 YzA5MTAwMmFmZjhmNzRmODE2NWRkMjFkNjUwNzVmMDI4ZTcyOCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogQmVuIFNpbW1zICZsdDtiZW5AYmVuc2ltbXMubW9lJmd0OwpEYXRlOiBNb24s IDI0IEp1biAyMDI0IDIzOjM1OjI5ICswMjAwClN1YmplY3Q6IFtQQVRDSF0gRHJhdyBmcmluZ2Ug dXNpbmcgYml0bWFwcywgbm90IGh1Z2UgYmV6aWVycwoKLS0tCiBzcmMvbnN0ZXJtLm0gfCA1NSAr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjL25zdGVybS5tIGIvc3JjL25zdGVybS5tCmluZGV4IDc5NDYzMGRlMWMuLjljNzgxZTNi ZDYgMTAwNjQ0Ci0tLSBhL3NyYy9uc3Rlcm0ubQorKysgYi9zcmMvbnN0ZXJtLm0KQEAgLTI5MDMs MjIgKzI5MDMsMjQgQEAgSGlkZSB0aGUgd2luZG93IChYMTEgc2VtYW50aWNzKQogc3RhdGljIHZv aWQKIG5zX2RlZmluZV9mcmluZ2VfYml0bWFwIChpbnQgd2hpY2gsIHVuc2lnbmVkIHNob3J0ICpi aXRzLCBpbnQgaCwgaW50IHcpCiB7Ci0gIE5TQmV6aWVyUGF0aCAqcCA9IFtOU0JlemllclBhdGgg YmV6aWVyUGF0aF07Ci0KICAgaWYgKCFmcmluZ2VfYm1wKQogICAgIGZyaW5nZV9ibXAgPSBbW05T TXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6MjVdOwogCi0gIFtwIG1v dmVUb1BvaW50Ok5TTWFrZVBvaW50ICgwLCAwKV07CiAKLSAgZm9yIChpbnQgeSA9IDAgOyB5ICZs dDsgaCA7IHkrKykKLSAgICBmb3IgKGludCB4ID0gMCA7IHggJmx0OyB3IDsgeCsrKQotICAgICAg ewotICAgICAgICBib29sIGJpdCA9IGJpdHNbeV0gJmFtcDsgKDEgJmx0OyZsdDsgKHcgLSB4IC0g MSkpOwotICAgICAgICBpZiAoYml0KQotICAgICAgICAgIFtwIGFwcGVuZEJlemllclBhdGhXaXRo UmVjdDpOU01ha2VSZWN0ICh4LCB5LCAxLCAxKV07Ci0gICAgICB9CisgIGZvciAoaW50IGkgPSAw OyBpICZsdDsgaDsgaSsrKQorICAgIGJpdHNbaV0gPSB+Yml0c1tpXTsKKworICBDR0RhdGFQcm92 aWRlclJlZiBwcm92aWRlciA9IENHRGF0YVByb3ZpZGVyQ3JlYXRlV2l0aERhdGEgKE5VTEwsIGJp dHMsCisJCQkJCSAgIHNpemVvZiAodW5zaWduZWQgc2hvcnQpICogaCwgTlVMTCk7CisgIGlmIChw cm92aWRlcikgeworICAgIGlkIHAgPSAoaWQpQ0dJbWFnZU1hc2tDcmVhdGUgKHcsIGgsIDEsIDEs CisgICAgICAgICAgICAgICAgIHNpemVvZiAodW5zaWduZWQgc2hvcnQpLAorICAgICAgICAgICAg ICAgICBwcm92aWRlciwgTlVMTCwgMCk7CisgICAgQ0dEYXRhUHJvdmlkZXJSZWxlYXNlIChwcm92 aWRlcik7CisKKyAgICBbZnJpbmdlX2JtcCBzZXRPYmplY3Q6cCBmb3JLZXk6W05TTnVtYmVyIG51 bWJlcldpdGhJbnQ6d2hpY2hdXTsKKyAgfQogCi0gIFtmcmluZ2VfYm1wIHNldE9iamVjdDpwIGZv cktleTpbTlNOdW1iZXIgbnVtYmVyV2l0aEludDp3aGljaF1dOwogfQogCiAKQEAgLTI5ODEsMzcg KzI5ODMsMzAgQEAgSGlkZSB0aGUgd2luZG93IChYMTEgc2VtYW50aWNzKQogICAgICAgTlNSZWN0 RmlsbCAoY2xlYXJSZWN0KTsKICAgICB9CiAKLSAgTlNCZXppZXJQYXRoICpibXAgPSBbZnJpbmdl X2JtcCBvYmplY3RGb3JLZXk6W05TTnVtYmVyIG51bWJlcldpdGhJbnQ6cC0mZ3Q7d2hpY2hdXTsK KyAgQ0dJbWFnZVJlZiBibXAgPSAoQ0dJbWFnZVJlZilbZnJpbmdlX2JtcCBvYmplY3RGb3JLZXk6 W05TTnVtYmVyIG51bWJlcldpdGhJbnQ6cC0mZ3Q7d2hpY2hdXTsKIAogICBpZiAoYm1wID09IG5p bAogICAgICAgJmFtcDsmYW1wOyBwLSZndDt3aGljaCAmbHQ7IG1heF91c2VkX2ZyaW5nZV9iaXRt YXApCiAgICAgewogICAgICAgZ3VpX2RlZmluZV9mcmluZ2VfYml0bWFwIChmLCBwLSZndDt3aGlj aCk7Ci0gICAgICBibXAgPSBbZnJpbmdlX2JtcCBvYmplY3RGb3JLZXk6IFtOU051bWJlciBudW1i ZXJXaXRoSW50OiBwLSZndDt3aGljaF1dOworICAgICAgYm1wID0gKENHSW1hZ2VSZWYpW2ZyaW5n ZV9ibXAgb2JqZWN0Rm9yS2V5OiBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDogcC0mZ3Q7d2hpY2hd XTsKICAgICB9CiAKICAgaWYgKGJtcCkKICAgICB7Ci0gICAgICBOU0FmZmluZVRyYW5zZm9ybSAq dHJhbnNmb3JtID0gW05TQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybV07Ci0gICAgICBOU0NvbG9y ICpibV9jb2xvcjsKKyAgICAgIENHUmVjdCBib3VuZHMgPSBDR1JlY3RNYWtlIChwLSZndDt4LCBw LSZndDt5IC0gcC0mZ3Q7ZGgsCisJCQkgICBDR0ltYWdlR2V0V2lkdGggKGJtcCksIENHSW1hZ2VH ZXRIZWlnaHQgKGJtcCkpOwogCi0gICAgICAvKiBCZWNhdXNlIHRoZSBpbWFnZSBpcyBkZWZpbmVk IGF0ICgwLCAwKSB3ZSBuZWVkIHRvIHRha2UgYSBjb3B5Ci0gICAgICAgICBhbmQgdGhlbiB0cmFu c2Zvcm0gdGhhdCBjb3B5IHRvIHRoZSBuZXcgb3JpZ2luLiAgKi8KLSAgICAgIGJtcCA9IFtibXAg Y29weV07Ci0gICAgICBbdHJhbnNmb3JtIHRyYW5zbGF0ZVhCeTpwLSZndDt4IHlCeTpwLSZndDt5 IC0gcC0mZ3Q7ZGhdOwotICAgICAgW2JtcCB0cmFuc2Zvcm1Vc2luZ0FmZmluZVRyYW5zZm9ybTp0 cmFuc2Zvcm1dOworICAgICAgTlNHcmFwaGljc0NvbnRleHQgKmN0eCA9IFtOU0dyYXBoaWNzQ29u dGV4dCBjdXJyZW50Q29udGV4dF07CisgICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IFtjdHgg Q0dDb250ZXh0XTsKIAotICAgICAgaWYgKCFwLSZndDtjdXJzb3JfcCkKLSAgICAgICAgYm1fY29s b3IgPSBbTlNDb2xvciBjb2xvcldpdGhVbnNpZ25lZExvbmc6ZmFjZS0mZ3Q7Zm9yZWdyb3VuZF07 Ci0gICAgICBlbHNlIGlmIChwLSZndDtvdmVybGF5X3ApCi0gICAgICAgIGJtX2NvbG9yID0gW05T Q29sb3IgY29sb3JXaXRoVW5zaWduZWRMb25nOmZhY2UtJmd0O2JhY2tncm91bmRdOwotICAgICAg ZWxzZQotICAgICAgICBibV9jb2xvciA9IGYtJmd0O291dHB1dF9kYXRhLm5zLSZndDtjdXJzb3Jf Y29sb3I7CisgICAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0gKGNvbnRleHQsCisJCQkgICAgIENH UmVjdEdldE1pblggKGJvdW5kcyksIENHUmVjdEdldE1heFkgKGJvdW5kcykpOworICAgICAgQ0dD b250ZXh0U2NhbGVDVE0gKGNvbnRleHQsIDEsIC0xKTsKIAotICAgICAgW2JtX2NvbG9yIHNldF07 Ci0gICAgICBbYm1wIGZpbGxdOwotCi0gICAgICBbYm1wIHJlbGVhc2VdOworICAgICAgQ0dDb250 ZXh0U2V0RmlsbENvbG9yV2l0aENvbG9yIChjb250ZXh0LCBbW05TQ29sb3IgY29sb3JXaXRoVW5z aWduZWRMb25nOmZhY2UtJmd0O2ZvcmVncm91bmRdIENHQ29sb3JdKTsKKyAgICAgIGJvdW5kcy5v cmlnaW4gPSBDR1BvaW50WmVybzsKKyAgICAgIENHQ29udGV4dERyYXdJbWFnZSAoY29udGV4dCwg Ym91bmRzLCBibXApOwogICAgIH0KICAgbnNfdW5mb2N1cyAoZik7CiB9Ci0tIAoyLjQ1LjE8L3By ZT48L2Rpdj48L2Rpdj48YnIgY2xlYXI9ImFsbCI+PGRpdj48YnI+PC9kaXY+PHNwYW4gY2xhc3M9 ImdtYWlsX3NpZ25hdHVyZV9wcmVmaXgiPi0tIDwvc3Bhbj48YnI+PGRpdiBkaXI9Imx0ciIgY2xh c3M9ImdtYWlsX3NpZ25hdHVyZSIgZGF0YS1zbWFydG1haWw9ImdtYWlsX3NpZ25hdHVyZSI+PGRp diBkaXI9Imx0ciI+PGRpdj48ZGl2IGRpcj0ibHRyIj48ZGl2PjxkaXYgZGlyPSJsdHIiPjxzcGFu IHN0eWxlPSJmb250LWZhbWlseTphcmlhbCxoZWx2ZXRpY2Esc2Fucy1zZXJpZiI+PGRpdj48ZGl2 IGRpcj0ibHRyIj5CZW4gU2ltbXM8L2Rpdj48L2Rpdj48L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+ PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+Cg== --0000000000002a887a0623510c8e--
Stefan Kangas <stefankangas@HIDDEN>
:ben@HIDDEN, bug-gnu-emacs@HIDDEN
.
Full text available.ben@HIDDEN, bug-gnu-emacs@HIDDEN
:bug#73563
; Package emacs
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.