From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Kangas Newsgroups: gmane.emacs.bugs Subject: bug#51296: [PATCH] Add WebP format support Date: Tue, 19 Oct 2021 16:27:56 -0700 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000f1a9de05cebd02b8" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="373"; mail-complaints-to="usenet@ciao.gmane.io" To: 51296@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Oct 20 01:29:13 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mcyXh-000AUd-El for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 20 Oct 2021 01:29:13 +0200 Original-Received: from localhost ([::1]:56238 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mcyXf-0007Nk-Ux for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 19 Oct 2021 19:29:11 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:42668) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mcyXW-0007NM-A7 for bug-gnu-emacs@gnu.org; Tue, 19 Oct 2021 19:29:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:40712) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mcyXW-0006ca-02 for bug-gnu-emacs@gnu.org; Tue, 19 Oct 2021 19:29:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mcyXV-0007zn-SJ for bug-gnu-emacs@gnu.org; Tue, 19 Oct 2021 19:29:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Kangas Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 19 Oct 2021 23:29:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 51296 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.163468609430659 (code B ref -1); Tue, 19 Oct 2021 23:29:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 19 Oct 2021 23:28:14 +0000 Original-Received: from localhost ([127.0.0.1]:52258 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mcyWc-0007yI-VW for submit@debbugs.gnu.org; Tue, 19 Oct 2021 19:28:14 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:59628) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mcyWZ-0007y6-5V for submit@debbugs.gnu.org; Tue, 19 Oct 2021 19:28:05 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:42540) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mcyWY-0007K6-TJ for bug-gnu-emacs@gnu.org; Tue, 19 Oct 2021 19:28:02 -0400 Original-Received: from mail-pg1-f169.google.com ([209.85.215.169]:37847) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mcyWU-0005iH-NP for bug-gnu-emacs@gnu.org; Tue, 19 Oct 2021 19:28:02 -0400 Original-Received: by mail-pg1-f169.google.com with SMTP id s136so17591794pgs.4 for ; Tue, 19 Oct 2021 16:27:58 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:mime-version:date:message-id:subject:to; bh=tCvkhpEL7BQouh5WaxiSJTCD3LEA2TQwDXF09srfsow=; b=oG1+GfHcoxLxQRjMddjVRs3zrjDown/SU76yI7UAXaM6o1lxVh73bIlfUHFGfcEisi fclgRBMx79SMucWs18fL8KL1KkzNqs8Euzbyxh1d2Bh7zFaRTE0P4BPbr26aankPxwux +pXD5eu/pnkM9BjFbxa4G7/26paBNTLKZxkrPWVXUZm0AJD0JnbfVUMHJWliTM6q5gNO rm6JZgwRd+JiJc64VV6zWDJNqpwT+3K5tcUGbwo9CTmrTFq8T9ST9k/Y2DSfv6UEU2hm sUIyzP2Ew6Gy81Xjh9E40cqbFLNmKFnV00ZRXyv1kAUbbsjxkZpiRDhJU4AlAH1cZsP5 wsLA== X-Gm-Message-State: AOAM533FE3Zy59DHx1j3MbYCanHTmBqGOPgYV17ceicwau/o92umQDXu O40zzR6Ty075a4NtpVZkkHYGlWPNsN63ELEskr0EFlUk X-Google-Smtp-Source: ABdhPJxRPQuYNAaCm9VBsB48kyv9KSGDyeNLe877H4myzs+qn9nGqJ30v0InH9APLX4yDvD0uEFe7a8rJsxKXzcjv3U= X-Received: by 2002:a63:370c:: with SMTP id e12mr2241358pga.359.1634686077074; Tue, 19 Oct 2021 16:27:57 -0700 (PDT) Original-Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Tue, 19 Oct 2021 16:27:56 -0700 Received-SPF: pass client-ip=209.85.215.169; envelope-from=stefankangas@gmail.com; helo=mail-pg1-f169.google.com X-Spam_score_int: -5 X-Spam_score: -0.6 X-Spam_bar: / X-Spam_report: (-0.6 / 5.0 requ) BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.248, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, LOTS_OF_MONEY=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, TO_NO_BRKTS_PCNT=0.776 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:217617 Archived-At: --000000000000f1a9de05cebd02b8 Content-Type: text/plain; charset="UTF-8" Severity: wishlist WebP is an image format promoted by Google since 2010 with a promise of decreased file sizes. Adoption in web browsers have been slow, but in 2019, Firefox added support for it, and other browsers followed.[1] Since then, this image format has become increasingly common on the web, and is reported to be used on 2.5 % of all websites.[2] I think it's important for Emacs to support it, both to support general web development and to display images properly in e.g. EWW. Given that we no longer promote ImageMagick, I think adding our own support for it is the way to go. The attached patch does that, by using libwebp where it is available.[3] Reviews are welcome, as usual. Footnotes: [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1294490 [2] https://w3techs.com/technologies/details/im-webp [3] https://developers.google.com/speed/webp/download --000000000000f1a9de05cebd02b8 Content-Type: text/x-diff; charset="US-ASCII"; name="0001-Add-WebP-format-support.patch" Content-Disposition: attachment; filename="0001-Add-WebP-format-support.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: 9a8ef89c71cc8e00_0.1 RnJvbSAzM2YyMWNiMTViOWY1YzJiNzcyNDk5NWVmYzZlZmY2MDA5NTI1Mzk3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gS2FuZ2FzIDxzdGVmYW5AbWFyeGlzdC5zZT4KRGF0 ZTogRnJpLCAxNSBPY3QgMjAyMSAwNToyNTozOSArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIEFkZCBX ZWJQIGZvcm1hdCBzdXBwb3J0CgoqIGNvbmZpZ3VyZS5hYyAoLS13aXRoLXdlYnApOiBOZXcgb3B0 aW9uLgooSEFWRV9XRUJQKTogTmV3IHZhcmlhYmxlLgoqIHNyYy9pbWFnZS5jIChlbnVtIHdlYnBf a2V5d29yZF9pbmRleCkgW0hBVkVfV0VCUF06IE5ldyBlbnVtLgood2VicF9mb3JtYXQpIFtIQVZF X1dFQlBdOiBOZXcgdmFyaWFibGUuCih3ZWJwX2ltYWdlX3AsIGluaXRfd2VicF9mdW5jdGlvbnMs IHdlYnBfbG9hZCkgW0hBVkVfV0VCUF06IE5ldwpmdW5jdGlvbnMgZm9yIFdlYlAgc3VwcG9ydC4K KGltYWdlX3R5cGVzKSBbSEFWRV9XRUJQXTogRGVmaW5lIFdlYlAgZm9ybWF0Lgooc3ltc19vZl9p bWFnZSkgPFF3ZWJwPiBbSEFWRV9XRUJQXTogTmV3IERFRlNZTS4gIEFkZCBpbWFnZSB0eXBlIFF3 ZWJwLgoqIHNyYy9NYWtlZmlsZS5pbiAoTElCSU1BR0UpOiBBZGQgV0VCUF9MSUJTLgoKKiBsaXNw L2ZpbGVzLmVsIChhdXRvLW1vZGUtYWxpc3QpOgoqIGxpc3AvaW1hZ2UtZmlsZS5lbCAoaW1hZ2Ut ZmlsZS1uYW1lLWV4dGVuc2lvbnMpOgoqIGxpc3AvaW1hZ2UuZWwgKGltYWdlLXR5cGUtaGVhZGVy LXJlZ2V4cHMpCihpbWFnZS10eXBlLWZpbGUtbmFtZS1yZWdleHBzLCBpbWFnZS10eXBlLWF1dG8t ZGV0ZWN0YWJsZSk6IEFkZCBXZWJQCnN1cHBvcnQuCgoqIElOU1RBTEw6CiogYWRtaW4vQ1BQLURF RklORVM6CiogZG9jL2xpc3ByZWYvZGlzcGxheS50ZXhpIChJbWFnZSBGb3JtYXRzLCBPdGhlciBJ bWFnZSBUeXBlcyk6CiogbnQvSU5TVEFMTDogRG9jdW1lbnQgV2ViUCBzdXBwb3J0LgoKKiB0ZXN0 L2xpc3AvaW1hZ2UtdGVzdHMuZWwgKGltYWdlLWZpbmQtaW1hZ2UpCihpbWFnZS10eXBlLWZyb20t ZmlsZS1uYW1lKTogRXhwYW5kIHRlc3RzLgoqIHRlc3Qvc3JjL2ltYWdlLXRlc3RzLmVsIChpbWFn ZS10ZXN0cy0tZmlsZXMpOiBBZGQgV2ViUC4KKGltYWdlLXRlc3RzLWltYWdlLXNpemUvd2VicCwg aW1hZ2UtdGVzdHMtaW1hZ2UtbWFzay1wL3dlYnApCihpbWFnZS10ZXN0cy1pbWFnZS1tZXRhZGF0 YS93ZWJwKTogTmV3IHRlc3RzLgoqIHRlc3QvZGF0YS9pbWFnZS9ibGFjay53ZWJwOiBOZXcgZmls ZS4KLS0tCiBJTlNUQUxMICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBhZG1pbi9DUFAtREVG SU5FUyAgICAgICAgICB8ICAgMSArCiBjb25maWd1cmUuYWMgICAgICAgICAgICAgICB8ICAxOSAr KysKIGRvYy9saXNwcmVmL2Rpc3BsYXkudGV4aSAgIHwgIDExICstCiBsaXNwL2ZpbGVzLmVsICAg ICAgICAgICAgICB8ICAgMSArCiBsaXNwL2ltYWdlLWZpbGUuZWwgICAgICAgICB8ICAgMiArLQog bGlzcC9pbWFnZS5lbCAgICAgICAgICAgICAgfCAgIDMgKwogbnQvSU5TVEFMTCAgICAgICAgICAg ICAgICAgfCAgIDkgKy0KIHNyYy9NYWtlZmlsZS5pbiAgICAgICAgICAgIHwgICAyICstCiBzcmMv aW1hZ2UuYyAgICAgICAgICAgICAgICB8IDI4NSArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCiB0ZXN0L2RhdGEvaW1hZ2UvYmxhY2sud2VicCB8IEJpbiAwIC0+IDM3NzgwIGJ5 dGVzCiB0ZXN0L2xpc3AvaW1hZ2UtdGVzdHMuZWwgICB8ICAgOCArLQogdGVzdC9zcmMvaW1hZ2Ut dGVzdHMuZWwgICAgfCAgMjMgKystCiAxMyBmaWxlcyBjaGFuZ2VkLCAzNTMgaW5zZXJ0aW9ucygr KSwgMTMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdC9kYXRhL2ltYWdlL2Js YWNrLndlYnAKCmRpZmYgLS1naXQgYS9JTlNUQUxMIGIvSU5TVEFMTAppbmRleCA2MjA3ZjQzY2Vj Li4yMTI5ODQyMmFmIDEwMDY0NAotLS0gYS9JTlNUQUxMCisrKyBiL0lOU1RBTEwKQEAgLTE4Nyw2 ICsxODcsNyBAQCBYMTEgaXMgYmVpbmcgdXNlZC4KICAgWCBsaWJ0aWZmIGZvciBUSUZGOiBodHRw Oi8vd3d3LnNpbXBsZXN5c3RlbXMub3JnL2xpYnRpZmYvCiAgIFggbGliZ2lmIGZvciBHSUY6ICAg aHR0cDovL2dpZmxpYi5zb3VyY2Vmb3JnZS5uZXQvCiAgICAgbGlicnN2ZzIgZm9yIFNWRzogaHR0 cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9MaWJSc3ZnCisgICAgbGlid2VicCBmb3IgV2Vi UDogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vc3BlZWQvd2VicC8KIAogSWYgeW91IHN1 cHBseSB0aGUgYXBwcm9wcmlhdGUgLS13aXRob3V0LUxJQiBvcHRpb24sICdjb25maWd1cmUnIHdp bGwKIG9taXQgdGhlIGNvcnJlc3BvbmRpbmcgbGlicmFyeSBmcm9tIEVtYWNzLCBldmVuIGlmIHRo YXQgbWFrZXMgZm9yIGEKQEAgLTMxMyw2ICszMTQsNyBAQCBvciBtb3JlIG9mIHRoZXNlIG9wdGlv bnM6CiAgIC0td2l0aG91dC1naWYgICAgICAgICAgZm9yIEdJRiBpbWFnZSBzdXBwb3J0CiAgIC0t d2l0aG91dC1wbmcgICAgICAgICAgZm9yIFBORyBpbWFnZSBzdXBwb3J0CiAgIC0td2l0aG91dC1y c3ZnICAgICAgICAgZm9yIFNWRyBpbWFnZSBzdXBwb3J0CisgIC0td2l0aG91dC13ZWJwICAgICAg ICAgZm9yIFdlYlAgaW1hZ2Ugc3VwcG9ydAogCiBBbHRob3VnaCBJbWFnZU1hZ2ljayBzdXBwb3J0 IGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgZHVlIHRvIHNlY3VyaXR5CiBhbmQgc3RhYmlsaXR5IGNv bmNlcm5zLCB5b3UgY2FuIGVuYWJsZSBpdCB3aXRoIC0td2l0aC1pbWFnZW1hZ2ljay4KZGlmZiAt LWdpdCBhL2FkbWluL0NQUC1ERUZJTkVTIGIvYWRtaW4vQ1BQLURFRklORVMKaW5kZXggNjhjMTI0 MzhmNS4uNjM0ZDZmM2YzYiAxMDA2NDQKLS0tIGEvYWRtaW4vQ1BQLURFRklORVMKKysrIGIvYWRt aW4vQ1BQLURFRklORVMKQEAgLTI4Nyw2ICsyODcsNyBAQCBIQVZFX1VUSU1FTlNBVAogSEFWRV9V VE1QX0gKIEhBVkVfVkZPUksKIEhBVkVfVkZPUktfSAorSEFWRV9XRUJQCiBIQVZFX1dDSEFSX0gK IEhBVkVfV0NIQVJfVAogSEFWRV9XSU5ET1dfU1lTVEVNCmRpZmYgLS1naXQgYS9jb25maWd1cmUu YWMgYi9jb25maWd1cmUuYWMKaW5kZXggOWFiMDMxNDQyOC4uMTdhYzEwNmQ4NCAxMDA2NDQKLS0t IGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtNDQ3LDYgKzQ0Nyw3IEBAIEFD X0RFRlVOCiBPUFRJT05fREVGQVVMVF9PTihbZ2lmXSxbZG9uJ3QgY29tcGlsZSB3aXRoIEdJRiBp bWFnZSBzdXBwb3J0XSkKIE9QVElPTl9ERUZBVUxUX09OKFtwbmddLFtkb24ndCBjb21waWxlIHdp dGggUE5HIGltYWdlIHN1cHBvcnRdKQogT1BUSU9OX0RFRkFVTFRfT04oW3JzdmddLFtkb24ndCBj b21waWxlIHdpdGggU1ZHIGltYWdlIHN1cHBvcnRdKQorT1BUSU9OX0RFRkFVTFRfT04oW3dlYnBd LFtkb24ndCBjb21waWxlIHdpdGggV2ViUCBpbWFnZSBzdXBwb3J0XSkKIE9QVElPTl9ERUZBVUxU X09OKFtsY21zMl0sW2Rvbid0IGNvbXBpbGUgd2l0aCBMaXR0bGUgQ01TIHN1cHBvcnRdKQogT1BU SU9OX0RFRkFVTFRfT04oW2xpYnN5c3RlbWRdLFtkb24ndCBjb21waWxlIHdpdGggbGlic3lzdGVt ZCBzdXBwb3J0XSkKIE9QVElPTl9ERUZBVUxUX09OKFtjYWlyb10sW2Rvbid0IGNvbXBpbGUgd2l0 aCBDYWlybyBkcmF3aW5nXSkKQEAgLTI1ODgsNiArMjU4OSwyMyBAQCBBQ19ERUZVTgogICBmaQog ZmkKIAorSEFWRV9XRUJQPW5vCitpZiB0ZXN0ICIke0hBVkVfWDExfSIgPSAieWVzIiB8fCB0ZXN0 ICIke0hBVkVfTlN9IiA9ICJ5ZXMiIHx8IHRlc3QgIiR7b3BzeXN9IiA9ICJtaW5ndzMyIjsgdGhl bgorICAgaWYgdGVzdCAiJHt3aXRoX3dlYnB9IiAhPSAibm8iOyB0aGVuCisgICAgICBXRUJQX1JF UVVJUkVEPTAuNi4wCisgICAgICBXRUJQX01PRFVMRT0ibGlid2VicCA+PSAkV0VCUF9SRVFVSVJF RCIKKworICAgICAgRU1BQ1NfQ0hFQ0tfTU9EVUxFUyhbV0VCUF0sIFskV0VCUF9NT0RVTEVdKQor ICAgICAgQUNfU1VCU1QoV0VCUF9DRkxBR1MpCisgICAgICBBQ19TVUJTVChXRUJQX0xJQlMpCisK KyAgICAgIGlmIHRlc3QgJEhBVkVfV0VCUCA9IHllczsgdGhlbgorICAgICAgICBBQ19ERUZJTkUo SEFWRV9XRUJQLCAxLCBbRGVmaW5lIHRvIDEgaWYgdXNpbmcgbGlid2VicC5dKQorICAgICAgICBD RkxBR1M9IiRDRkxBR1MgJFdFQlBfQ0ZMQUdTIgorICAgICAgZmkKKyAgIGZpCitmaQorCiBIQVZF X0lNQUdFTUFHSUNLPW5vCiBpZiB0ZXN0ICIke0hBVkVfWDExfSIgPSAieWVzIiB8fCB0ZXN0ICIk e0hBVkVfTlN9IiA9ICJ5ZXMiIHx8IHRlc3QgIiR7SEFWRV9XMzJ9IiA9ICJ5ZXMiOyB0aGVuCiAg IGlmIHRlc3QgIiR7d2l0aF9pbWFnZW1hZ2lja30iICE9ICJubyI7IHRoZW4KQEAgLTU5MjgsNiAr NTk0Niw3IEBAIEFDX0RFRlVOCiAgIERvZXMgRW1hY3MgdXNlIGEgZ2lmIGxpYnJhcnk/ICAgICAg ICAgICAgICAgICAgICAgICAgICAgJHtIQVZFX0dJRn0gJExJQkdJRgogICBEb2VzIEVtYWNzIHVz ZSBhIHBuZyBsaWJyYXJ5PyAgICAgICAgICAgICAgICAgICAgICAgICAgICR7SEFWRV9QTkd9ICRM SUJQTkcKICAgRG9lcyBFbWFjcyB1c2UgLWxyc3ZnLTI/ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAke0hBVkVfUlNWR30KKyAgRG9lcyBFbWFjcyB1c2UgLWx3ZWJwPyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAke0hBVkVfV0VCUH0KICAgRG9lcyBFbWFjcyB1c2UgY2Fp cm8/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke0hBVkVfQ0FJUk99CiAgIERv ZXMgRW1hY3MgdXNlIC1sbGNtczI/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtI QVZFX0xDTVMyfQogICBEb2VzIEVtYWNzIHVzZSBpbWFnZW1hZ2ljaz8gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICR7SEFWRV9JTUFHRU1BR0lDS30KZGlmZiAtLWdpdCBhL2RvYy9saXNwcmVm L2Rpc3BsYXkudGV4aSBiL2RvYy9saXNwcmVmL2Rpc3BsYXkudGV4aQppbmRleCAxNjU3N2QxM2Mx Li45YzM3OGEzMDI3IDEwMDY0NAotLS0gYS9kb2MvbGlzcHJlZi9kaXNwbGF5LnRleGkKKysrIGIv ZG9jL2xpc3ByZWYvZGlzcGxheS50ZXhpCkBAIC01MjY0LDEzICs1MjY0LDEzIEBAIEltYWdlIEZv cm1hdHMKICAgU3VwcG9ydGVkIGltYWdlIGZvcm1hdHMgKGFuZCB0aGUgcmVxdWlyZWQgc3VwcG9y dCBsaWJyYXJpZXMpIGluY2x1ZGUKIFBCTSBhbmQgWEJNICh3aGljaCBkbyBub3QgZGVwZW5kIG9u IHN1cHBvcnQgbGlicmFyaWVzIGFuZCBhcmUgYWx3YXlzCiBhdmFpbGFibGUpLCBYUE0gKEBjb2Rl e2xpYlhwbX0pLCBHSUYgKEBjb2Rle2xpYmdpZn0gb3IKLUBjb2Rle2xpYnVuZ2lmfSksIEpQRUcg KEBjb2Rle2xpYmpwZWd9KSwgVElGRgotKEBjb2Rle2xpYnRpZmZ9KSwgUE5HIChAY29kZXtsaWJw bmd9KSwgYW5kIFNWRyAoQGNvZGV7bGlicnN2Z30pLgorQGNvZGV7bGlidW5naWZ9KSwgSlBFRyAo QGNvZGV7bGlianBlZ30pLCBUSUZGIChAY29kZXtsaWJ0aWZmfSksIFBORworKEBjb2Rle2xpYnBu Z30pLCBTVkcgKEBjb2Rle2xpYnJzdmd9KSwgYW5kIFdlYlAgKEBjb2Rle2xpYndlYnB9KS4KIAog ICBFYWNoIG9mIHRoZXNlIGltYWdlIGZvcm1hdHMgaXMgYXNzb2NpYXRlZCB3aXRoIGFuIEBkZm57 aW1hZ2UgdHlwZQogc3ltYm9sfS4gIFRoZSBzeW1ib2xzIGZvciB0aGUgYWJvdmUgZm9ybWF0cyBh cmUsIHJlc3BlY3RpdmVseSwKLUBjb2Rle3BibX0sIEBjb2Rle3hibX0sIEBjb2Rle3hwbX0sIEBj b2Rle2dpZn0sCi1AY29kZXtqcGVnfSwgQGNvZGV7dGlmZn0sIEBjb2Rle3BuZ30sIGFuZCBAY29k ZXtzdmd9LgorQGNvZGV7cGJtfSwgQGNvZGV7eGJtfSwgQGNvZGV7eHBtfSwgQGNvZGV7Z2lmfSwg QGNvZGV7anBlZ30sCitAY29kZXt0aWZmfSwgQGNvZGV7cG5nfSwgQGNvZGV7c3ZnfSwgYW5kIEBj b2Rle3dlYnB9LgogCiAgIEZ1cnRoZXJtb3JlLCBpZiB5b3UgYnVpbGQgRW1hY3Mgd2l0aCBJbWFn ZU1hZ2ljawogKEBjb2Rle2xpYk1hZ2lja1dhbmR9KSBzdXBwb3J0LCBFbWFjcyBjYW4gZGlzcGxh eSBhbnkgaW1hZ2UgZm9ybWF0CkBAIC02Mjc0LDYgKzYyNzQsOSBAQCBPdGhlciBJbWFnZSBUeXBl cwogQGl0ZW0gVElGRgogSW1hZ2UgdHlwZSBAY29kZXt0aWZmfS4KIFN1cHBvcnRzIHRoZSBAY29k ZXs6aW5kZXh9IHByb3BlcnR5LiAgQHhyZWZ7TXVsdGktRnJhbWUgSW1hZ2VzfS4KKworQGl0ZW0g V2ViUAorSW1hZ2UgdHlwZSBAY29kZXt3ZWJwfS4KIEBlbmQgdGFibGUKIAogQG5vZGUgRGVmaW5p bmcgSW1hZ2VzCmRpZmYgLS1naXQgYS9saXNwL2ZpbGVzLmVsIGIvbGlzcC9maWxlcy5lbAppbmRl eCA1YTZhMzM3MjFiLi5lNmI5NGE0YTFhIDEwMDY0NAotLS0gYS9saXNwL2ZpbGVzLmVsCisrKyBi L2xpc3AvZmlsZXMuZWwKQEAgLTI3NTgsNiArMjc1OCw3IEBAIGF1dG8tbW9kZS1hbGlzdAogICAg ICAoIlxcLmdpZlxcJyIgLiBpbWFnZS1tb2RlKQogICAgICAoIlxcLnBuZ1xcJyIgLiBpbWFnZS1t b2RlKQogICAgICAoIlxcLmpwZT9nXFwnIiAuIGltYWdlLW1vZGUpCisgICAgICgiXFwud2VicFxc JyIgLiBpbWFnZS1tb2RlKQogICAgICAoIlxcLnRlP3h0XFwnIiAuIHRleHQtbW9kZSkKICAgICAg KCJcXC5bdFRdZVt4WF1cXCciIC4gdGV4LW1vZGUpCiAgICAgICgiXFwuaW5zXFwnIiAuIHRleC1t b2RlKQkJO0luc3RhbGxhdGlvbiBmaWxlcyBmb3IgVGVYIHBhY2thZ2VzLgpkaWZmIC0tZ2l0IGEv bGlzcC9pbWFnZS1maWxlLmVsIGIvbGlzcC9pbWFnZS1maWxlLmVsCmluZGV4IGZiYzllYWFmOTQu LjZkZjQzZjczN2QgMTAwNjQ0Ci0tLSBhL2xpc3AvaW1hZ2UtZmlsZS5lbAorKysgYi9saXNwL2lt YWdlLWZpbGUuZWwKQEAgLTM3LDcgKzM3LDcgQEAKIAogOzs7IyMjYXV0b2xvYWQKIChkZWZjdXN0 b20gaW1hZ2UtZmlsZS1uYW1lLWV4dGVuc2lvbnMKLSAgKHB1cmVjb3B5ICcoInBuZyIgImpwZWci ICJqcGciICJnaWYiICJ0aWZmIiAidGlmIiAieGJtIiAieHBtIiAicGJtIiAicGdtIiAicHBtIiAi cG5tIiAic3ZnIikpCisgIChwdXJlY29weSAnKCJwbmciICJqcGVnIiAianBnIiAiZ2lmIiAidGlm ZiIgInRpZiIgInhibSIgInhwbSIgInBibSIgInBnbSIgInBwbSIgInBubSIgInN2ZyIgIndlYnAi KSkKICAgIkEgbGlzdCBvZiBpbWFnZS1maWxlIGZpbGVuYW1lIGV4dGVuc2lvbnMuCiBGaWxlbmFt ZXMgaGF2aW5nIG9uZSBvZiB0aGVzZSBleHRlbnNpb25zIGFyZSBjb25zaWRlcmVkIGltYWdlIGZp bGVzLAogaW4gYWRkaXRpb24gdG8gdGhvc2UgbWF0Y2hpbmcgYGltYWdlLWZpbGUtbmFtZS1yZWdl eHBzJy4KZGlmZiAtLWdpdCBhL2xpc3AvaW1hZ2UuZWwgYi9saXNwL2ltYWdlLmVsCmluZGV4IDIw MjJiNDFkMWYuLjUzNDNlMjZkMDMgMTAwNjQ0Ci0tLSBhL2xpc3AvaW1hZ2UuZWwKKysrIGIvbGlz cC9pbWFnZS5lbApAQCAtNDgsNiArNDgsNyBAQCBpbWFnZS10eXBlLWhlYWRlci1yZWdleHBzCiAg ICAgKCJcXGBcXCg/Ok1NXDBcXCpcXHxJSVxcKlwwXFwpIiAuIHRpZmYpCiAgICAgKCJcXGBbXHRc blxyIF0qJSFQUyIgLiBwb3N0c2NyaXB0KQogICAgICgiXFxgXHhmZlx4ZDgiIC4ganBlZykgICAg OyB1c2VkIHRvIGJlIChpbWFnZS1qcGVnLXAgLiBqcGVnKQorICAgICgiXFxgUklGRi4uLi5XRUJQ VlA4IiAuIHdlYnApCiAgICAgKCwobGV0KiAoKGluY29tbWVudC1yZSAiXFwoPzpbXi1dXFx8LVte LV1cXCkiKQogCSAgICAgKGNvbW1lbnQtcmUgKGNvbmNhdCAiXFwoPzohLS0iIGluY29tbWVudC1y ZSAiKi0tPlsgXHRcclxuXSo8XFwpIikpKQogCShjb25jYXQgIlxcKD86PFxcP3htbFsgXHRcclxu XStbXj5dKj5cXCk/WyBcdFxyXG5dKjwiCkBAIC02Nyw2ICs2OCw3IEBAIGltYWdlLXR5cGUtZmls ZS1uYW1lLXJlZ2V4cHMKICAgJygoIlxcLnBuZ1xcJyIgLiBwbmcpCiAgICAgKCJcXC5naWZcXCci IC4gZ2lmKQogICAgICgiXFwuanBlP2dcXCciIC4ganBlZykKKyAgICAoIlxcLndlYnBcXCciIC4g d2VicCkKICAgICAoIlxcLmJtcFxcJyIgLiBibXApCiAgICAgKCJcXC54cG1cXCciIC4geHBtKQog ICAgICgiXFwucGJtXFwnIiAuIHBibSkKQEAgLTkyLDYgKzk0LDcgQEAgaW1hZ2UtdHlwZS1hdXRv LWRldGVjdGFibGUKICAgICAoanBlZyAuIG1heWJlKQogICAgICh0aWZmIC4gbWF5YmUpCiAgICAg KHN2ZyAuIG1heWJlKQorICAgICh3ZWJwIC4gbWF5YmUpCiAgICAgKHBvc3RzY3JpcHQgLiBuaWwp KQogICAiQWxpc3Qgb2YgKElNQUdFLVRZUEUgLiBBVVRPREVURUNUKSBwYWlycyB1c2VkIHRvIGF1 dG8tZGV0ZWN0IGltYWdlIGZpbGVzLgogXChTZWUgYGltYWdlLXR5cGUtYXV0by1kZXRlY3RlZC1w JykuCmRpZmYgLS1naXQgYS9udC9JTlNUQUxMIGIvbnQvSU5TVEFMTAppbmRleCA5ZjU0MzE1MWE5 Li5hMzkwNTdjNjZjIDEwMDY0NAotLS0gYS9udC9JTlNUQUxMCisrKyBiL250L0lOU1RBTEwKQEAg LTQ4OCw2ICs0ODgsNyBAQCBidWlsZCB3aWxsIHJ1biBvbiBXaW5kb3dzIDlYIGFuZCBuZXdlciBz eXN0ZW1zKS4KICAgICAgICBEb2VzIEVtYWNzIHVzZSBhIGdpZiBsaWJyYXJ5PyAgICAgICAgICAg ICAgICAgICAgICAgICAgIHllcwogICAgICAgIERvZXMgRW1hY3MgdXNlIGEgcG5nIGxpYnJhcnk/ ICAgICAgICAgICAgICAgICAgICAgICAgICAgeWVzCiAgICAgICAgRG9lcyBFbWFjcyB1c2UgLWxy c3ZnLTI/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ZXMKKyAgICAgICBEb2VzIEVt YWNzIHVzZSAtbHdlYnA/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHllcwogICAg ICAgIERvZXMgRW1hY3MgdXNlIGNhaXJvPyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbm8KICAgICAgICBEb2VzIEVtYWNzIHVzZSAtbGxjbXMyPyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHllcwogICAgICAgIERvZXMgRW1hY3MgdXNlIGltYWdlbWFnaWNrPyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbm8KQEAgLTU5Nyw4ICs1OTgsOCBAQCBidWlsZCB3aWxs IHJ1biBvbiBXaW5kb3dzIDlYIGFuZCBuZXdlciBzeXN0ZW1zKS4KICogT3B0aW9uYWwgaW1hZ2Ug bGlicmFyeSBzdXBwb3J0CiAKICAgSW4gYWRkaXRpb24gdG8gaXRzICJuYXRpdmUiIGltYWdlIGZv cm1hdHMgKHBibSBhbmQgeGJtKSwgRW1hY3MgY2FuCi0gIGhhbmRsZSBvdGhlciBpbWFnZSB0eXBl czogeHBtLCB0aWZmLCBnaWYsIHBuZywganBlZyBhbmQgZXhwZXJpbWVudGFsCi0gIHN1cHBvcnQg Zm9yIHN2Zy4KKyAgaGFuZGxlIG90aGVyIGltYWdlIHR5cGVzOiB4cG0sIHRpZmYsIGdpZiwgcG5n LCBqcGVnLCB3ZWJwIGFuZAorICBleHBlcmltZW50YWwgc3VwcG9ydCBmb3Igc3ZnLgogCiAgIFRv IGJ1aWxkIEVtYWNzIHdpdGggc3VwcG9ydCBmb3IgdGhlbSwgdGhlIGNvcnJlc3BvbmRpbmcgaGVh ZGVycyBtdXN0CiAgIGJlIGluIHRoZSBpbmNsdWRlIHBhdGggYW5kIGxpYnJhcmllcyBzaG91bGQg YmUgd2hlcmUgdGhlIGxpbmtlcgpAQCAtNzM2LDYgKzczNywxMCBAQCBidWlsZCB3aWxsIHJ1biBv biBXaW5kb3dzIDlYIGFuZCBuZXdlciBzeXN0ZW1zKS4KICAgd2l0aG91dCBpdCBieSBzcGVjaWZ5 aW5nIHRoZSAtLXdpdGhvdXQtcnN2ZyBzd2l0Y2ggdG8gdGhlIGNvbmZpZ3VyZQogICBzY3JpcHQu CiAKKyAgRm9yIFdlYlAgaW1hZ2VzIHlvdSB3aWxsIG5lZWQgbGlid2VicDoKKworICAgIGh0dHBz Oi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3NwZWVkL3dlYnAvCisKICAgQmluYXJpZXMgZm9yIHRo ZSBvdGhlciBpbWFnZSBsaWJyYXJpZXMgY2FuIGJlIGZvdW5kIG9uIHRoZQogICBlendpbnBvcnRz IHNpdGUgb3IgYXQgdGhlIEdudVdpbjMyIHByb2plY3QgKHRoZSBsYXR0ZXIgYXJlIGdlbmVyYWxs eQogICB2ZXJ5IG9sZCwgc28gbm90IHJlY29tbWVuZGVkKS4gIE5vdGUgc3BlY2lmaWNhbGx5IHRo YXQsIGR1ZSB0byBzb21lCmRpZmYgLS1naXQgYS9zcmMvTWFrZWZpbGUuaW4gYi9zcmMvTWFrZWZp bGUuaW4KaW5kZXggNmQ3NWUzNTM3YS4uN2M5NzdlMzRlYSAxMDA2NDQKLS0tIGEvc3JjL01ha2Vm aWxlLmluCisrKyBiL3NyYy9NYWtlZmlsZS5pbgpAQCAtMTI0LDcgKzEyNCw3IEBAIExJQl9NQVRI PQogIyMgLWxwdGhyZWFkLCBvciBlbXB0eS4KIExJQl9QVEhSRUFEPUBMSUJfUFRIUkVBREAKIAot TElCSU1BR0U9QExJQlRJRkZAIEBMSUJKUEVHQCBATElCUE5HQCBATElCR0lGQCBATElCWFBNQAor TElCSU1BR0U9QExJQlRJRkZAIEBMSUJKUEVHQCBATElCUE5HQCBATElCR0lGQCBATElCWFBNQCBA V0VCUF9MSUJTQAogCiBYQ0JfTElCUz1AWENCX0xJQlNACiBYRlRfTElCUz1AWEZUX0xJQlNACmRp ZmYgLS1naXQgYS9zcmMvaW1hZ2UuYyBiL3NyYy9pbWFnZS5jCmluZGV4IGZmMDU3NDFiMmMuLjZm ZjE3MjUwNGYgMTAwNjQ0Ci0tLSBhL3NyYy9pbWFnZS5jCisrKyBiL3NyYy9pbWFnZS5jCkBAIC04 NzM5LDggKzg3MzksMjg0IEBAIGdpZl9sb2FkIChzdHJ1Y3QgZnJhbWUgKmYsIHN0cnVjdCBpbWFn ZSAqaW1nKQogI2VuZGlmIC8qIEhBVkVfR0lGICovCiAKIAorI2lmZGVmIEhBVkVfV0VCUAorCisM CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKKwkJCQkgV2ViUAorICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaW5jbHVk ZSAid2VicC9kZWNvZGUuaCIKKworLyogSW5kaWNlcyBvZiBpbWFnZSBzcGVjaWZpY2F0aW9uIGZp ZWxkcyBpbiB3ZWJwX2Zvcm1hdCwgYmVsb3cuICAqLworCitlbnVtIHdlYnBfa2V5d29yZF9pbmRl eAoreworICBXRUJQX1RZUEUsCisgIFdFQlBfREFUQSwKKyAgV0VCUF9GSUxFLAorICBXRUJQX0FT Q0VOVCwKKyAgV0VCUF9NQVJHSU4sCisgIFdFQlBfUkVMSUVGLAorICBXRUJQX0FMR09SSVRITSwK KyAgV0VCUF9IRVVSSVNUSUNfTUFTSywKKyAgV0VCUF9NQVNLLAorICBXRUJQX0JBQ0tHUk9VTkQs CisgIFdFQlBfTEFTVAorfTsKKworLyogVmVjdG9yIG9mIGltYWdlX2tleXdvcmQgc3RydWN0dXJl cyBkZXNjcmliaW5nIHRoZSBmb3JtYXQKKyAgIG9mIHZhbGlkIHVzZXItZGVmaW5lZCBpbWFnZSBz cGVjaWZpY2F0aW9ucy4gICovCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW1hZ2Vfa2V5d29yZCB3 ZWJwX2Zvcm1hdFtXRUJQX0xBU1RdID0KK3sKKyAgeyI6dHlwZSIsCQlJTUFHRV9TWU1CT0xfVkFM VUUsCQkJMX0sCisgIHsiOmRhdGEiLAkJSU1BR0VfU1RSSU5HX1ZBTFVFLAkJCTB9LAorICB7Ijpm aWxlIiwJCUlNQUdFX1NUUklOR19WQUxVRSwJCQkwfSwKKyAgeyI6YXNjZW50IiwJCUlNQUdFX0FT Q0VOVF9WQUxVRSwJCQkwfSwKKyAgeyI6bWFyZ2luIiwJCUlNQUdFX05PTl9ORUdBVElWRV9JTlRF R0VSX1ZBTFVFX09SX1BBSVIsIDB9LAorICB7IjpyZWxpZWYiLAkJSU1BR0VfSU5URUdFUl9WQUxV RSwJCQkwfSwKKyAgeyI6Y29udmVyc2lvbiIsCUlNQUdFX0RPTlRfQ0hFQ0tfVkFMVUVfVFlQRSwJ CTB9LAorICB7IjpoZXVyaXN0aWMtbWFzayIsCUlNQUdFX0RPTlRfQ0hFQ0tfVkFMVUVfVFlQRSwJ CTB9LAorICB7IjptYXNrIiwJCUlNQUdFX0RPTlRfQ0hFQ0tfVkFMVUVfVFlQRSwJCTB9LAorICB7 IjpiYWNrZ3JvdW5kIiwJSU1BR0VfU1RSSU5HX09SX05JTF9WQUxVRSwJCTB9Cit9OworCisvKiBS ZXR1cm4gdHJ1ZSBpZiBPQkpFQ1QgaXMgYSB2YWxpZCBXZWJQIGltYWdlIHNwZWNpZmljYXRpb24u ICAqLworCitzdGF0aWMgYm9vbAord2VicF9pbWFnZV9wIChMaXNwX09iamVjdCBvYmplY3QpCit7 CisgIHN0cnVjdCBpbWFnZV9rZXl3b3JkIGZtdFtXRUJQX0xBU1RdOworICBtZW1jcHkgKGZtdCwg d2VicF9mb3JtYXQsIHNpemVvZiBmbXQpOworCisgIGlmICghcGFyc2VfaW1hZ2Vfc3BlYyAob2Jq ZWN0LCBmbXQsIFdFQlBfTEFTVCwgUXdlYnApKQorICAgIHJldHVybiBmYWxzZTsKKworICAvKiBN dXN0IHNwZWNpZnkgZWl0aGVyIHRoZSA6ZGF0YSBvciA6ZmlsZSBrZXl3b3JkLiAgKi8KKyAgcmV0 dXJuIGZtdFtXRUJQX0ZJTEVdLmNvdW50ICsgZm10W1dFQlBfREFUQV0uY291bnQgPT0gMTsKK30K KworI2lmZGVmIFdJTkRPV1NOVAorCisvKiBXZWJQIGxpYnJhcnkgZGV0YWlscy4gICovCisKK0RF Rl9ETExfRk4gKGludCwgV2ViUEdldEluZm8sIChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qg ZGF0YV9zaXplLCBpbnQqIHdpZHRoLCBpbnQqIGhlaWdodCkpOworREVGX0RMTF9GTiAoVlA4U3Rh dHVzQ29kZSwgV2ViUEdldEZlYXR1cmVzLAorCSAgICAoY29uc3QgdWludDhfdCogZGF0YSwgc2l6 ZV90IGRhdGFfc2l6ZSwgV2ViUEJpdHN0cmVhbUZlYXR1cmVzKiBmZWF0dXJlcykpOworREVGX0RM TF9GTiAodWludDhfdCosIFdlYlBEZWNvZGVSR0IsCisJICAgIChjb25zdCB1aW50OF90KiBkYXRh LCBzaXplX3QgZGF0YV9zaXplLCBpbnQqIHdpZHRoLCBpbnQqIGhlaWdodCkpOworREVGX0RMTF9G TiAodWludDhfdCosIFdlYlBEZWNvZGVCR1IsCisJICAgIChjb25zdCB1aW50OF90KiBkYXRhLCBz aXplX3QgZGF0YV9zaXplLCBpbnQqIHdpZHRoLCBpbnQqIGhlaWdodCkpOworREVGX0RMTF9GTiAo dm9pZCwgV2ViUEZyZWVEZWNCdWZmZXIKKwkgICAgKFdlYlBEZWNCdWZmZXIqIGJ1ZmZlcikpOwor CitzdGF0aWMgYm9vbAoraW5pdF93ZWJwX2Z1bmN0aW9ucyAodm9pZCkKK3sKKyAgSE1PRFVMRSBs aWJyYXJ5OworCisgIGlmICghKGxpYnJhcnkgPSB3MzJfZGVsYXllZF9sb2FkIChRd2VicCkpKQor ICAgIHJldHVybiAwOworCisgIExPQURfRExMX0ZOIChsaWJyYXJ5LCBXZWJQR2V0SW5mbyk7Cisg IExPQURfRExMX0ZOIChsaWJyYXJ5LCBXZWJQR2V0RmVhdHVyZXMpOworICBMT0FEX0RMTF9GTiAo bGlicmFyeSwgV2ViUERlY29kZVJHQkEpOworICBMT0FEX0RMTF9GTiAobGlicmFyeSwgV2ViUERl Y29kZVJHQik7CisgIExPQURfRExMX0ZOIChsaWJyYXJ5LCBXZWJQRnJlZSk7CisgIHJldHVybiB0 cnVlOworfQorCisjdW5kZWYgV2ViUEdldEluZm8KKyN1bmRlZiBXZWJQR2V0RmVhdHVyZXMKKyN1 bmRlZiBXZWJQRGVjb2RlUkdCQQorI3VuZGVmIFdlYlBEZWNvZGVSR0IKKyN1bmRlZiBXZWJQRnJl ZQorCisjZGVmaW5lIFdlYlBHZXRJbmZvIGZuX1dlYlBHZXRJbmZvCisjZGVmaW5lIFdlYlBHZXRG ZWF0dXJlcyBmbl9XZWJQR2V0RmVhdHVyZXMKKyNkZWZpbmUgV2ViUERlY29kZVJHQkEgZm5fV2Vi UERlY29kZVJHQkEKKyNkZWZpbmUgV2ViUERlY29kZVJHQiBmbl9XZWJQRGVjb2RlUkdCCisjZGVm aW5lIFdlYlBGcmVlIGZuX1dlYlBGcmVlCisKKyNlbmRpZiAvKiBXSU5ET1dTTlQgKi8KKworLyog TG9hZCBXZWJQIGltYWdlIElNRyBmb3IgdXNlIG9uIGZyYW1lIEYuICBWYWx1ZSBpcyB0cnVlIGlm CisgICBzdWNjZXNzZnVsLiAgKi8KKworc3RhdGljIGJvb2wKK3dlYnBfbG9hZCAoc3RydWN0IGZy YW1lICpmLCBzdHJ1Y3QgaW1hZ2UgKmltZykKK3sKKyAgcHRyZGlmZl90IHNpemUgPSAwOworICB1 aW50OF90ICpjb250ZW50czsKKyAgTGlzcF9PYmplY3QgZmlsZTsKKworICAvKiBPcGVuIHRoZSBX ZWJQIGZpbGUuICAqLworICBMaXNwX09iamVjdCBzcGVjaWZpZWRfZmlsZSA9IGltYWdlX3NwZWNf dmFsdWUgKGltZy0+c3BlYywgUUNmaWxlLCBOVUxMKTsKKyAgTGlzcF9PYmplY3Qgc3BlY2lmaWVk X2RhdGEgPSBpbWFnZV9zcGVjX3ZhbHVlIChpbWctPnNwZWMsIFFDZGF0YSwgTlVMTCk7CisKKyAg aWYgKE5JTFAgKHNwZWNpZmllZF9kYXRhKSkKKyAgICB7CisgICAgICBpbnQgZmQ7CisgICAgICBm aWxlID0gaW1hZ2VfZmluZF9pbWFnZV9mZCAoc3BlY2lmaWVkX2ZpbGUsICZmZCk7CisgICAgICBp ZiAoIVNUUklOR1AgKGZpbGUpKQorCXsKKwkgIGltYWdlX2Vycm9yICgiQ2Fubm90IGZpbmQgaW1h Z2UgZmlsZSBgJXMnIiwgc3BlY2lmaWVkX2ZpbGUpOworCSAgcmV0dXJuIGZhbHNlOworCX0KKwor ICAgICAgY29udGVudHMgPSAodWludDhfdCAqKSBzbHVycF9maWxlIChmZCwgJnNpemUpOworICAg ICAgaWYgKGNvbnRlbnRzID09IE5VTEwpCisJeworCSAgaW1hZ2VfZXJyb3IgKCJFcnJvciBsb2Fk aW5nIFdlYlAgaW1hZ2UgYCVzJyIsIGZpbGUpOworCSAgcmV0dXJuIGZhbHNlOworCX0KKyAgICB9 CisgIGVsc2UKKyAgICB7CisgICAgICBpZiAoIVNUUklOR1AgKHNwZWNpZmllZF9kYXRhKSkKKwl7 CisJICBpbWFnZV9lcnJvciAoIkludmFsaWQgaW1hZ2UgZGF0YSBgJXMnIiwgc3BlY2lmaWVkX2Rh dGEpOworCSAgcmV0dXJuIGZhbHNlOworCX0KKyAgICAgIGNvbnRlbnRzID0gKHVpbnQ4X3QqKSBT U0RBVEEgKHNwZWNpZmllZF9kYXRhKTsKKyAgICAgIHNpemUgPSBTQllURVMgKHNwZWNpZmllZF9k YXRhKTsKKyAgICB9CisKKyAgLyogVmFsaWRhdGUgdGhlIFdlYlAgaW1hZ2UgaGVhZGVyLiAgKi8K KyAgaWYgKCFXZWJQR2V0SW5mbyAoY29udGVudHMsIHNpemUsIE5VTEwsIE5VTEwpKQorICAgIHsK KyAgICAgIGlmICghTklMUCAoc3BlY2lmaWVkX2RhdGEpKQorCWltYWdlX2Vycm9yICgiTm90IGEg V2ViUCBmaWxlOiBgJXMnIiwgZmlsZSk7CisgICAgICBlbHNlCisJaW1hZ2VfZXJyb3IgKCJJbnZh bGlkIFdlYlAgZGF0YSIpOworICAgICAgZ290byB3ZWJwX2Vycm9yMTsKKyAgICB9CisKKyAgLyog R2V0IFdlYlAgZmVhdHVyZXMuICAqLworICBXZWJQQml0c3RyZWFtRmVhdHVyZXMgZmVhdHVyZXM7 CisgIFZQOFN0YXR1c0NvZGUgcmVzdWx0ID0gV2ViUEdldEZlYXR1cmVzIChjb250ZW50cywgc2l6 ZSwgJmZlYXR1cmVzKTsKKyAgc3dpdGNoIChyZXN1bHQpCisgICAgeworICAgIGNhc2UgVlA4X1NU QVRVU19PSzoKKyAgICAgIGJyZWFrOworICAgIGNhc2UgVlA4X1NUQVRVU19OT1RfRU5PVUdIX0RB VEE6CisgICAgY2FzZSBWUDhfU1RBVFVTX09VVF9PRl9NRU1PUlk6CisgICAgY2FzZSBWUDhfU1RB VFVTX0lOVkFMSURfUEFSQU06CisgICAgY2FzZSBWUDhfU1RBVFVTX0JJVFNUUkVBTV9FUlJPUjoK KyAgICBjYXNlIFZQOF9TVEFUVVNfVU5TVVBQT1JURURfRkVBVFVSRToKKyAgICBjYXNlIFZQOF9T VEFUVVNfU1VTUEVOREVEOgorICAgIGNhc2UgVlA4X1NUQVRVU19VU0VSX0FCT1JUOgorICAgIGRl ZmF1bHQ6CisgICAgICAvKiBFcnJvciBvdXQgaW4gYWxsIG90aGVyIGNhc2VzLiAgKi8KKyAgICAg IGlmICghTklMUCAoc3BlY2lmaWVkX2RhdGEpKQorCWltYWdlX2Vycm9yICgiRXJyb3Igd2hlbiBp bnRlcnByZXRpbmcgV2ViUCBkYXRhOiBgJXMnIiwgZmlsZSk7CisgICAgICBlbHNlCisJaW1hZ2Vf ZXJyb3IgKCJFcnJvciB3aGVuIGludGVycHJldGluZyBXZWJQIGRhdGEiKTsKKyAgICAgIGdvdG8g d2VicF9lcnJvcjE7CisgICAgfQorCisgIC8qIERlY29kZSBXZWJQIGRhdGEuICAqLworICB1aW50 OF90ICpkZWNvZGVkOworICBpbnQgd2lkdGgsIGhlaWdodDsKKyAgaWYgKGZlYXR1cmVzLmhhc19h bHBoYSkKKyAgICAvKiBMaW5lYXIgW3IwLCBnMCwgYjAsIGEwLCByMSwgZzEsIGIxLCBhMSwgLi4u XSBvcmRlci4gICovCisgICAgZGVjb2RlZCA9IFdlYlBEZWNvZGVSR0JBIChjb250ZW50cywgc2l6 ZSwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgZWxzZQorICAgIC8qIExpbmVhciBbcjAsIGcwLCBiMCwg cjEsIGcxLCBiMSwgLi4uXSBvcmRlci4gICovCisgICAgZGVjb2RlZCA9IFdlYlBEZWNvZGVSR0Ig KGNvbnRlbnRzLCBzaXplLCAmd2lkdGgsICZoZWlnaHQpOworCisgIGlmICghKHdpZHRoIDw9IElO VF9NQVggJiYgaGVpZ2h0IDw9IElOVF9NQVgKKwkmJiBjaGVja19pbWFnZV9zaXplIChmLCB3aWR0 aCwgaGVpZ2h0KSkpCisgICAgeworICAgICAgaW1hZ2Vfc2l6ZV9lcnJvciAoKTsKKyAgICAgIGdv dG8gd2VicF9lcnJvcjI7CisgICAgfQorCisgIC8qIENyZWF0ZSB0aGUgeCBpbWFnZSBhbmQgcGl4 bWFwLiAgKi8KKyAgRW1hY3NfUGl4X0NvbnRhaW5lciB4aW1nLCBtYXNrX2ltZzsKKyAgaWYgKCFp bWFnZV9jcmVhdGVfeF9pbWFnZV9hbmRfcGl4bWFwIChmLCBpbWcsIHdpZHRoLCBoZWlnaHQsIDAs ICZ4aW1nLCBmYWxzZSkpCisgICAgZ290byB3ZWJwX2Vycm9yMjsKKworICAvKiBDcmVhdGUgYW4g aW1hZ2UgYW5kIHBpeG1hcCBzZXJ2aW5nIGFzIG1hc2sgaWYgdGhlIFdlYlAgaW1hZ2UKKyAgICAg Y29udGFpbnMgYW4gYWxwaGEgY2hhbm5lbC4gICovCisgIGlmIChmZWF0dXJlcy5oYXNfYWxwaGEK KyAgICAgICYmICFpbWFnZV9jcmVhdGVfeF9pbWFnZV9hbmRfcGl4bWFwIChmLCBpbWcsIHdpZHRo LCBoZWlnaHQsIDEsICZtYXNrX2ltZywgdHJ1ZSkpCisgICAgeworICAgICAgaW1hZ2VfZGVzdHJv eV94X2ltYWdlICh4aW1nKTsKKyAgICAgIGltYWdlX2NsZWFyX2ltYWdlXzEgKGYsIGltZywgQ0xF QVJfSU1BR0VfUElYTUFQKTsKKyAgICAgIGdvdG8gd2VicF9lcnJvcjI7CisgICAgfQorCisgIC8q IEZpbGwgdGhlIFggaW1hZ2UgYW5kIG1hc2sgZnJvbSBXZWJQIGRhdGEuICAqLworICBpbml0X2Nv bG9yX3RhYmxlICgpOworCisgIHVpbnQ4X3QgKnAgPSBkZWNvZGVkOworICBmb3IgKGludCB5ID0g MDsgeSA8IGhlaWdodDsgKyt5KQorICAgIHsKKyAgICAgIGZvciAoaW50IHggPSAwOyB4IDwgd2lk dGg7ICsreCkKKwl7CisJICBpbnQgciA9ICpwKysgPDwgODsKKwkgIGludCBnID0gKnArKyA8PCA4 OworCSAgaW50IGIgPSAqcCsrIDw8IDg7CisJICBQVVRfUElYRUwgKHhpbWcsIHgsIHksIGxvb2t1 cF9yZ2JfY29sb3IgKGYsIHIsIGcsIGIpKTsKKworCSAgLyogQW4gYWxwaGEgY2hhbm5lbCBhc3Nv Y2lhdGVzIHZhcmlhYmxlIHRyYW5zcGFyZW5jeSB3aXRoIGFuCisJICAgICBpbWFnZS4gIFdlYlAg YWxsb3dzIHVwIHRvIDI1NiBsZXZlbHMgb2YgcGFydGlhbCB0cmFuc3BhcmVuY3kuCisJICAgICBX ZSBoYW5kbGUgdGhpcyBsaWtlIHdpdGggUE5HICh3aGljaCBzZWUpLCB1c2luZyB0aGUgZnJhbWUn cworCSAgICAgYmFja2dyb3VuZCBjb2xvciB0byBjb21iaW5lIHRoZSBpbWFnZSB3aXRoLiAgKi8K KwkgIGlmIChmZWF0dXJlcy5oYXNfYWxwaGEpCisJICAgIHsKKwkgICAgICBpZiAobWFza19pbWcp CisJCVBVVF9QSVhFTCAobWFza19pbWcsIHgsIHksICpwID4gMCA/IFBJWF9NQVNLX0RSQVcgOiBQ SVhfTUFTS19SRVRBSU4pOworCSAgICAgICsrcDsKKwkgICAgfQorCX0KKyAgICB9CisKKyNpZmRl ZiBDT0xPUl9UQUJMRV9TVVBQT1JUCisgIC8qIFJlbWVtYmVyIGNvbG9ycyBhbGxvY2F0ZWQgZm9y IHRoaXMgaW1hZ2UuICAqLworICBpbWctPmNvbG9ycyA9IGNvbG9yc19pbl9jb2xvcl90YWJsZSAo JmltZy0+bmNvbG9ycyk7CisgIGZyZWVfY29sb3JfdGFibGUgKCk7CisjZW5kaWYgLyogQ09MT1Jf VEFCTEVfU1VQUE9SVCAqLworCisgIC8qIFB1dCB4aW1nIGludG8gdGhlIGltYWdlLiAgKi8KKyAg aW1hZ2VfcHV0X3hfaW1hZ2UgKGYsIGltZywgeGltZywgMCk7CisKKyAgLyogU2FtZSBmb3IgdGhl IG1hc2suICAqLworICBpZiAobWFza19pbWcpCisgICAgeworICAgICAgLyogRmlsbCBpbiB0aGUg YmFja2dyb3VuZF90cmFuc3BhcmVudCBmaWVsZCB3aGlsZSB3ZSBoYXZlIHRoZQorCSBtYXNrIGhh bmR5LiAgQ2FzdGluZyBhdm9pZHMgYSBHQ0Mgd2FybmluZy4gICovCisgICAgICBpbWFnZV9iYWNr Z3JvdW5kX3RyYW5zcGFyZW50IChpbWcsIGYsIChFbWFjc19QaXhfQ29udGV4dCltYXNrX2ltZyk7 CisKKyAgICAgIGltYWdlX3B1dF94X2ltYWdlIChmLCBpbWcsIG1hc2tfaW1nLCAxKTsKKyAgICB9 CisKKyAgaW1nLT53aWR0aCA9IHdpZHRoOworICBpbWctPmhlaWdodCA9IGhlaWdodDsKKworICAv KiBDbGVhbiB1cC4gICovCisgIFdlYlBGcmVlIChkZWNvZGVkKTsKKyAgaWYgKE5JTFAgKHNwZWNp ZmllZF9kYXRhKSkKKyAgICB4ZnJlZSAoY29udGVudHMpOworICByZXR1cm4gdHJ1ZTsKKworIHdl YnBfZXJyb3IyOgorICBXZWJQRnJlZSAoZGVjb2RlZCk7CisKKyB3ZWJwX2Vycm9yMToKKyAgaWYg KE5JTFAgKHNwZWNpZmllZF9kYXRhKSkKKyAgICB4ZnJlZSAoY29udGVudHMpOworICByZXR1cm4g ZmFsc2U7Cit9CisKKyNlbmRpZiAvKiBIQVZFX1dFQlAgKi8KKworCiAjaWZkZWYgSEFWRV9JTUFH RU1BR0lDSwogCisMCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAkJCQkgSW1hZ2VNYWdpY2sKICoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLwpAQCAtMTA3MjUsNiArMTEwMDEsMTAgQEAgaW5pdGlhbGl6ZV9pbWFnZV90eXBlIChz dHJ1Y3QgaW1hZ2VfdHlwZSBjb25zdCAqdHlwZSkKICNpZiBkZWZpbmVkIEhBVkVfWFBNIHx8IGRl ZmluZWQgSEFWRV9OUwogIHsgU1lNQk9MX0lOREVYIChReHBtKSwgeHBtX2ltYWdlX3AsIHhwbV9s b2FkLCBpbWFnZV9jbGVhcl9pbWFnZSwKICAgIElNQUdFX1RZUEVfSU5JVCAoaW5pdF94cG1fZnVu Y3Rpb25zKSB9LAorI2VuZGlmCisjaWYgZGVmaW5lZCBIQVZFX1dFQlAKKyB7IFNZTUJPTF9JTkRF WCAoUXdlYnApLCB3ZWJwX2ltYWdlX3AsIHdlYnBfbG9hZCwgaW1hZ2VfY2xlYXJfaW1hZ2UsCisg ICBJTUFHRV9UWVBFX0lOSVQgKGluaXRfd2VicF9mdW5jdGlvbnMpIH0sCiAjZW5kaWYKICB7IFNZ TUJPTF9JTkRFWCAoUXhibSksIHhibV9pbWFnZV9wLCB4Ym1fbG9hZCwgaW1hZ2VfY2xlYXJfaW1h Z2UgfSwKICB7IFNZTUJPTF9JTkRFWCAoUXBibSksIHBibV9pbWFnZV9wLCBwYm1fbG9hZCwgaW1h Z2VfY2xlYXJfaW1hZ2UgfSwKQEAgLTEwODkxLDYgKzExMTcxLDExIEBAIHN5bXNfb2ZfaW1hZ2Ug KHZvaWQpCiAgIGFkZF9pbWFnZV90eXBlIChRcG5nKTsKICNlbmRpZgogCisjaWYgZGVmaW5lZCAo SEFWRV9XRUJQKQorICBERUZTWU0gKFF3ZWJwLCAid2VicCIpOworICBhZGRfaW1hZ2VfdHlwZSAo UXdlYnApOworI2VuZGlmCisKICNpZiBkZWZpbmVkIChIQVZFX0lNQUdFTUFHSUNLKQogICBERUZT WU0gKFFpbWFnZW1hZ2ljaywgImltYWdlbWFnaWNrIik7CiAgIGFkZF9pbWFnZV90eXBlIChRaW1h Z2VtYWdpY2spOwpkaWZmIC0tZ2l0IGEvdGVzdC9kYXRhL2ltYWdlL2JsYWNrLndlYnAgYi90ZXN0 L2RhdGEvaW1hZ2UvYmxhY2sud2VicApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZGJlNzE2NDE1YjE2ZTYxMTFhYzky ZWMzOTc4NDExZDk1YmUwOGUzCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzNzc4MAp6Y21lSHc0 fHA1Sm5mSlMrXj1jJDVfRjdTZFZxNiU+aVgpcGlrc1pmelR0WmoyVzheZGVDdmlpZGx1R2BTJFJW K2YKej9mZkM3YmdkfUhOeitzcUg+ND8wPEVDaiFJV0FDMkltJUhkMVBDO1JAVFpoPUp1YzllcXJI QVR1R2oxSmBXXkIyCno4JWEpLWthRzkqeVFnPGcmJTZGPC08XkdEPUFDIW1kMXJRWmNmN0t4djJw aHVNQXN+LVloSy00diZLJERiQVVGWQp6cjlANWpfMDZMVXJeSDQjdn5CRURnRzN2PGBnPlBpU3Ry KDlkITRaVWpPPGlFR2lWeWtrR0Ejb2dxb1h8TiR2fTgKenprUVZ5ZEZBRERuYnc3UXskU3t8X0ty UlhyM2kyc1o5VHBIcGQrQkd4QWdaJmRMTCs0VFApZlJgaEwpSmRMYmFfCnoqSk9CV24qT0R2KlFN eEdwPEtOIUU5KzQ8N3NBRTVFVj95fFpqMUc5MVd5JXN7T3VkTmtVbT9KcnJSWmJpPTtQaAp6KmFY PjluPUdORHF3OGE8YVAkTDNiUnsqPmEldl8pdCthX2NYI0AzQklnVldqPjckam5VaVN5JDdwQ0dq QlVVUzcKemIpciVQSEJkS2dxLVpLVyR2T1pKd3pJbkpUUlhvcDZ7SS1vaDtyVlRuRTI7ZUx7YC1D ZCYhQjN8OWtKbSNDdX56CnptTEMoMWNiJCNqSnhXeWJGOT1WYjRmQjdRQ19oMjskZyM2d3QjPVpB YCEqdWFrOXdsTChOc1Bie0lhIWNpR0tZeAp6cUd7ST5PK1FJd3w5RHomeEYpYURTQUl5OzAkblpw S0c3SFY2UDJ0KCtTbVZxYSZ0c0RxcWgmXyQ+PE4zRTI8SHgKeiUwaFE1VyRwQSkmYHhBOVlpI0t3 ZVd4Y0B7X3R4aj94fWhgJGI7aV9gdCgxSHpWWl8/dWxybTU2Sk16XyFBTUtpCnpHJk1keTBCZGg1 QmJsYGh2ciR1fmlWN3dyTCg0Um9WbzRSfWRDPlVeZ1lnciswX2RQKyVyXmloY29aQlozWURESAp6 QG9tci1YWHN5bjRyRit3Njs+ZWJHI3F+bVJEemJxczNQKW9tUUZ8VmJsI1NoQ2s5PTleX1oyUVZE ZjxIcktjSTAKenB4KilnR0g5N3U0Mk5IUWlYZX5ObzE8T1B6VjVFaEhmbVUyVXcmbntpWEh8KCp2 PWZVWStCd2REKDYtTj1UXmRRCnpEdWIwM3dIM2tJaWJiTXdlcj9zRitSQkMwK31xakotP1deOWw/ JX1SXkFPdk9VQ0pkWlNMKD1gcU5ONmlZXmgoVgp6OEtQWDBQMF44fVdmXjdjV0FYcjk7NzVeaT0h JUo3VExHeHFoPkBRQC1VJFlJZWkoXyRxZihTVS1oZ2M3YERiTkoKejlLUSNSJG03cDBQOUc4Y0E4 dFlNLUA0TyhZd3JLT1d0WHxyRVpRR1d3fkkyPV40JUdfNjB+cFZZfT1XZ3AtcUBpCnpGZXt2clIj SCpOIU9IblRPRVRTRlk3dGs+Jnt1KDBaY3A8bFhoWkR3Ylk4OEpYVnsqeXtxPi04aFNUQV9wc21C ewp6ZF9mWT0oOSg9LTg1JG1lPj4yKVRWN2dgNE58RFYoNVNeMDRFR15IWDhvRTc7OT9xZ15HJFY2 R0ZzT3s0RWg4SUUKendgK2skVzY5OTNYKyMlfG9vKU57Nj5DYW49fCtfZEUhJk45QWs3MWtTY2FE Mm1hSzV+SylRQD8hNWAjZyFhZDs4Cnp2VXNjK1RERTdONj5pSS0/TzhPflFoeDhHUlhYVzNUXlgh Y1Iyemh8czFPeV53VXcyJTc0elhxLVhBOUdQMEE9WQp6PXtIaSY2YWlhN057P35ZVFMyZW4he3Rm dCo7KHx3M0B4dU1nZGRXclJ4VmdiSEsxaUZXY09FfU1QSHF2O2tAVyQKejhNKkBXOHFtXmJITihQ ZyRrMXkqZT08V3lLKH1TKzgwWippblo4VkNlSE9oVGl8KSN6Wjw1Pil2SWxXe3YlPnFiCno9PjlC dlF4PzVCaXs2Pz1aX0E9VGxTTDFKUEN+OTh4WT5BeWhPPyNaODlFNiVrKVp7QT48LVhVdyFAJXIw fVozMgp6ISFZeURmfVNrbmEyOT1NN1g4STZkVmh3TmB1cX1Uc24xN3smTTRAc0t0QlFjVWVLdSlK MTxCRkd5RmtaYHhAd1IKeldiQTxOS2E+XnpeKF59U0VjITElcl96QkJgQWc4VXIjeHtIPE9WSX1L THpeMUVkR2JHPXg9NmREZClwa150VjlFCnp4Tmpyd0JjUEBIelhiajU0M0N1YXVkLTsxVjZaY3kt KytnaVg8Zi1RRWc0JGNVUFlGRD0wbkwrcDlzVnRGZWdSTgp6S0A8RjNoVVpAPWkxdVhZOEt7cmw4 Q3UzXjBrQFJyYWAzTUxFcWwtZygyS0x1N2dfeEMhNlM5RDU8SSRAcnFfYUEKeml+aVhfXyVfZj5H VzxCRHZNaFFfN1g1azFFWmRnIWg4cXojak5AYTdZaTRMUjZDTjsmfDEwMj57N1ZyWSRiYCVECnok fUZDUzRCWjMwJkJAfGZrVlNXOShxRDtteXI2bDZYZ314QCg1WlRfM2Y1YyZ4KHNRTC1Bb3QrVFdK TEozRDYoTwp6JThPPEFwJC1oZWN9aDAwcCZWIVppUGNRZ1FjaTBvVDxaTHVFU19iXlJiSDF7Vkoy TDk7ZzRwOC08LXdZMU1XJXcKenlFOGg4WSRObntSeW40bTgwYz0kQ2dgbzhCYT9EcylWQzdDTilQ eHVncyVWJUg0JWY/VUkhaW5iUnA9Yk9rUHNYCnpxQVolcyQ9Oz1ecmFWaVlzdGhlPCtMPVkpb31z cylGcWRhJip+PTshVEJlYE8oNl52KjFUKFp1JEg+cWlOaW9tcgp6YjhaJlRXbSk+IW1CazsqcUEk KFJ4ayVeQlM+WlJMeXdjdlRMd1BAKDM3N2Rea3d0VSFZfjkoaT0rZW8yKkFuZmAKenMqOD97NCMk d0BIIXxyVU52aDchNktJMnRTPmFiXihWQ2dnJVl4bzZDcXA5fVFad3xvV3pVVVckfHpCck1GJk0/ CnpZUF4jaz9eUkd7Kzt7I19eODlieUMtdnxAclItRGtkfmkpbj5GMHk+XlFYUV8pZTlFUFVxSEJ9 bTxQfiZ1QERrZQp6ckJHMmJVbn47dTRfTj9AUjlVcjlSRVd3MlJyc3Z7QXViZTF8MF9NeHBTbEw4 QHwpN1lsbUAwV0ZyfFYyWTdMdy0KemA/TWY0QmVmdWlqbmNoa3hfXyZuXlpVOFYxP1VieDAyekxv eiRPUiRsU2kyfUhvRUhTQD0kJktsMnhtJlVVQENpCnpCNWJ2KEtNQFNwcnY1RyVoOHVeZT9FXkg+ dXYlZURudSo/PlhzR2tzLTw9M0d3a282ZjdST2tBd3xPOStrX1IhMQp6Xjt+YH1veWgtIV9JNz93 Jk83Oz1hKDxFal93eWRoemg4WWt6cTxHZFQ+bX1yN0h8cjlDfEB4aiNfYHtRZHdAZ3YKemA/VU09 eUd4KFd8SmR4fmBUc3ojPD9tNXtuZzVCaE5Bajx1TX1kOSQzaGY3OyYtWklEPHVmeyYtJTBvOTJX Xk0qCnpvJUJIZDUleDt7M3pweUhVcldFdlo9VilIZGFYYl51b2oyYD53eWhHN3RqT3Iwe3leZFVA TmM8eENPV3NGbzhJYgp6MDB3fn1VPkMzKCphSVo8Q25rbzA1bndPeStrRW88M2dQYnB6V2taUntg QCFuQ0hXUEIwT1dyKXw1Qj5TfEh0MTIKel5XUn5XYERDZmVBRik9Vzk5TXclMG8/SCljMSVuPmd5 WHt3bG9mYXNjbnBBc21wclkrR190Sk0kaEhCO0UqeUk/Cno3cj9YfSReKkN0PmomKEIxNWg9RWJV PyRrMUtfTEY/alJSWDFofT1nZkEwaGV3UXVCSHFTNUl4QFlRSFBTTiQ2MAp6VSFqZXRiMlRkbzxs KW9hVkx8UTdmbStTTjRrQz5ienkjdkpBVFNEeTB8eEhKcFRPfTc5MX1QbTEkRl5SVTw/USYKens0 cEdkZlpmYH0jMnlAbmFvbXNOVUJMYW9BeitgRFB4b2wxcVo8NElAQngwSCNPazZsWWs9bGpZYmp0 JihpfFdOCnpSTn5zQEtvIXNrdE9sK0YpJkxEYW9qaHVrZ0VeREBUWTtzWjNsWWBgSTt7UGpkS0w4 NHRmX1BaQD9IWk5EMDd8bQp6NGVNNE14OGRqcEBBY1koPkZ2MUkzYUJgTDZ2d3ExcWgmYUAwSSE0 WiQ0S2BMQFkkYEFKUXZgIVVaSEZnUzE0cTQKejU9UmB9c3VIdHV7X2V5emJ0VE5yemlsaHo3T1JK b1RFdTU3bSsqXn53VX0wbjBQUjJyU0lPWV9RNjJ2I0hTb19YCnpqWGIxYF4xc3VAXyh5VU5AT2lk X3l2dz18ZUVXZ0JmT34pPkZicz9VZHgwM1I5dzJUSTt8ZClEZUlJYSl8N1BMQAp6RlFUV3BQUnw0 NUpWRDMjMnAjMUk9e2JIRWBNRk9pO1o4K0JFKzZFJkFJQXI5dFV9eFhQPUBQc2FENlc1QW1+Y2EK ekRyayo9aSNVSXAhaERGOWErNy1hQT9rKHZUWEVjbTwxSHg5dHZMNE14RVYoaWFwRkolN3pCb1pV QkdUJjVBYmA7Cno7O2d+KEktbXhxMSNTU1kwQTItTjE2fkp5NDc+cTYlbXFDSEVKTk9wQD08ej4m OzBQP3ByNjNDPncjWVpjRUFEVAp6MG5nY0hEPF5DaEU2P00yNjMzVTJBRChRa2VUYlhwRTRHUD1T QW99bipNVDFjcj1hKEBQK3ZhPC1pSDMpO2wkcHkKeitwWGB8UnJNRlpGWVYqRFUpbGR2c3BjZiF3 ZGN7VkY/SU1HeU9uLXhjaFQ9fnsoR0dOSkkrdHp7QlcrU0pfSX1yCnpKT1ZybEpPKEB0Sk9SOHIo YihfK3kjYyRDJnBUUUhJVHNpUTYyS3JaMW5kSEsxQUJsWkZicz9VZHgzcXhlJjg8UAp6OT40KFZm Q2l1dTJtPyFqV3ghUXtlQlFEV1hhUUNPQHxud1ohMWNmbHopTXo+anpPTGkhMUk4NygpNjZRb3NK Xj4Kei1IQkIjbTVPfUdFVDVWQWZhP0gxNUNGPTY5JnBkV2FWYCk5RHVGN1g4bUl3a2Z5O3BfMDBV c2FSWHtWYTVALVA7CnpLc3lpdlQ3azh8ZFl9aWAySFhOezIzNytseiMyVGgtaGc4bGEwdk98Mmta cTcwMCk2bFVfV3BkZlhBMHwhanxHZAp6MHZINV9mTCp8RFU9TSlEaSE9aTQxSUI9UmZDJGhFdE9h NX5KRnAodTNUeXpuZk5qN256XiVZJHBjbkdJSkYjUnsKekUkTnswMDJpIUYhO3Uze3p5YThTTjVL NmtARUd0b0BDNU1nI0leUENEd3Z7V3hlQlNkMjVHcWc7PCtCTz1qIUNoCnpieDxDej4zfGIoMGRC d3A2YXEhTGYtVjd7MEd8KSVleE18Rzt2KWd6MkJjQXpZam4pWFVBdWEyPyNDS314bUNyTAp6JFlZ SU5yUihzQl9JbHQzKmxAJmRueW87KS1RIXNjIzFPWExabjEyQHU/clp0RDxseGQyaWd5bSp6Rlhz e3wlTWQKejE8Z1NOb05HNUppMTE0TDFYYkNDUkVeX1hJUjdiZDh1QWRWalI3ajQwVVdSYzRqPlFF MFZtKUIrPCpydDFkNCE1CnpmSmMkdlZgeWlPQmQ7ZiojdmRjaUgtTXdMYzd7SCpySChFS21rO20q QnxyY3UxTGdwOGZnbiVgUX59ak00TndiUQp6MGxZaVc2ZEkmYSlZdXFzMDV9TDcwYDNGdTJPYTxw MH1sWlkxQ0ljWTAqP1dZMTVXQFpZQnZyZmZJKG1nKmFha2sKelZQSDN+Mk4oaE4we2VqZHorSiNT MExFT2E4dTdaeiM2KGc0JVolYVowV0pZbEttI35uMk9LfmlQemRPTjZMMH07CnowQSpRYXIoNSRG KHB5PU5DeGRRaTkjOD1kRng+WjJvJV5Gb2dacj92KGZ4V30qeGxNRTVia3M1bGklJjY1K0xBcQp6 UTw9TXI8XlhmdV5Dez9WTXs0IVVvdjFWbkR7VEg/azNJRX0+O3AhVVE8dFZSRnJ8U2g0TlBmWk4m ezBHbjl7KE0KejJCdEpIckdZNjhPbGU/QjE1K0I5KCFpN2tyWmgwNmZoaTQ0WDwka05ReVE0a3o/ MjUyRyUlJXNER2Z8JVVgaGoxCno4a298K3BPKiQyUkBGRGhxdUxUT1IzK2doTHkrMStIZERCMnJq dj5ALUd+UFU4dzhtKXw5fT01RjdAUmNrWUFTewp6PWJnT3NGdXRGM1FlQ0tfWTFMe0BtMW5sZyZ1 cVE7a2tuSishRWZQZzlsdTRoRlRvcXJtKEY+RWVuNFZ3N3JtPFoKej1Layg5UyZIWEV0Q21ARmIr LTFqK3k4cihJRE9HOUN0RkszSH02dFBsJHg5R1E8aFdoKjhOSSs7X3xKaD14d19FCno8ezA9Ri0j aikhN0d1K0hPMHJOdFc3Z0FFVFYzcSNpSkh4WSRtXyEmZGt1Tmp0fkEpdWlBQnZmRDkwdmhtWWQ0 SQp6UVN+eUpTTV42dkFtN0BpPEVNdk5aSWlKMC1AREA0QS0zKUc7eChAKkNQZkUhRH5CbFpuWX5J cXdTS0F5PXxwZFMKenAzMFR6KjQycEh3ej1pc2VlWlNOZ2ZHMTw4K3dZXlJxc1dJRUA4N0tKfl9B dEc4Wmt7JTA/JEhTP3FAbGVqfjEmCnpvRzdge3VDeXRFV3A/R1hhQHAwQGgmQXRPRFp+NyQxVXZR SyUmSkAyc25kbmtZdVJwRXhWP2w0VyNNKVFJfHpDawp6QD9BOUdSKF5vclRKVjIoOzRiQj5PNmI8 enBzKEVLWFhFY0pPZE1wX29VWWx2bzJAd1FFQj5rU2dWU0RMQT9yRXEKel5gNDtNZ3ooOz94Umd1 MVotZjYqayVYPTt5PiNwODZVd0VSbnZDQV82Jkc1NWkoaTklcFZveD9tSCRKbCFaQnFUCnpVRUxf bHlSNn10cip+cllyezRkMkV4V1FWe0NsIzU+IWktWl4qNjk8LSltaVZuN3c9WTZIVXsmcWFmR0xi OUViNgp6ZDlLYStzU1RRU2FySDskRjFlITZVbWJNaGRJflNqUXwtPiZTcF8tTV43QXcmJiYkY3I8 PDN1RUhOJV5LUUJWfEQKem1lPz03eFEzUyVjd0NPKV5xSTNpPFA5dlduVWh5a0k3NzRXaSQ5Ylh4 eldueiZHWHReYjNaaEZQTztQRyhXbUVICnpSWCR5eD1Gc3gzcyNTSF5FUjZCMXcma2VXaFlJIWxg fnRofmJYJVI9RzBtUSpjJjhJeC1MJmU7YyY5MmpkR0l3bAp6VUt1U200YngmT2NvITtjaEZIaWNj dFg4TnloU2xuM0QlbnlNYlJBWVVfc2dOZFY2ZGNpNSlFSkFZRW1LMzlCYmgKeiNBfCN0Wm4ldiZJ cWhVUEx4VWVEeTM4Oz1fK1dYMTkpMU9fZzt0dSVWOH1HJnFCZ1ZLMFZodmReaW5FZGZ7cEQ5Cnpq KWt2UmJfK0deNXtaej9oWWRwQll8Zn1IZXBBOW8zTnp2cz01KHl5NldYUWs0am9WdXJBY0Ulemte S09CKDs+aAp6NDlob3xvdnRRTE5walFoak1zVk5WVCROVnExUSNPa1JfeHBpK2V7cVhHQlBHMjFY TDRkdWA1OzhEWWs1QzR0eEkKemJoMj1EejIyQGw7KWNXUDRDekM5MHBtOz03QngyPl9BK0pBZHNs P0tXOTBIX1YlU0krU2w3VDFVVVB7V2M5S2V9CnokNFVOKkdNZ1RiTV9seGZJNV9Te2Mlb0ZaI1pS SF5PXl42UzhzYmd5Q096ViRVM2wmRGZVcyVBMVFzenVWYDg9PAp6JFU3VzFkN007VDwkfDBBOFhx K0Y4cUF4Rm50MDxiJnJlMyY3RlFUfDhaPCtyIUFTQj1tI2BsPyhkLVAzZEhJWDIKenk2TCZFYmEh fUhCITB2IUo7cUlDIzJFQ3Ria3FBI2kwTGpkWGZRMCVxPDVJMXYzNiFfRVk8NT5ueGJBaU5ZMWhi Cnp8OFE5MjJhbVdFUX05a0cqU3Bza2lqM0Z+U05KJnU4bFdKbSMmRnEyWDVEe15NZElQMCU5TGNn WCpCV0BNbllITwp6cTt2TzlEbTYoanopfUp0JlgxUGpaOTNTKU5YVi1EWC17fn1OWSlTR3dkWiRA Y3hpKHtWVndgPTZ2WmxadXxJU3kKejM/cVl1I0QmUzNnVkVsb3VpY0MjTVZ3Mzs/bzFrMjhQcUVM Y3BXY2ZYPVpyV3A3Qkh3TmtgWj9ZWkBVOSFhbShWCnppbn5jYCFmU0hJVXtpdzxwWE81QlZRNDl8 cTs1SDNuX089fHUwdFd8XiFnYS1GVlc/JTQzfTNKU3lEJGRaRVRXRAp6cDM1dXBJUWpMdU47emsp JFp5JnchIV4+KjM1UlAtckQ4b1ZKZXw2UUk5Wlg+V0RZVkh4bE0qb289P2gtSCVxYW4KeihAWmdA ZSRzS3lvfkoyVWxGNGx7ekMxcm1QaldEN1ViKDdlMjxzU3BwMDs3TmpSU05hZUdAQj1CeCEpSXFk MHZBCnpEX2QtJUZWR2sxZnoqQ0MhVnxGR1UwNylDSFg2YkA1RCNITE01QTtrVnQqQ3VPbChFOWVJ Q0A4dXtPeHBAY1NpUAp6YEFlKWJGb15JaztBfXRnY282RmdqTiQ1P05ULVc3PExVc1lBO2k4RHhF cmdoWUB1dGgyMkc0VU8qYk97MGxGRW8Kej84MEpoT1IrbDAzZHBuLTlHa0ZPJSU/JHI3QXVZVDtK NTFPWUFnV1BNSUhFVSRNMVVSKkdlQmtjcTcpWnhoOTI9CnpWK0R5JXJabk5nYFdoZGg1RWgpZm55 eTVlWWR9bD1JT3F+dUt5X0deV2l8Rk5SdW5PaV92YXp+UER1NjtyMlluVQp6R3k8OHJwbjxLQlp3 dGM1cHRWTyg+TXg8aHd9SmxfdGNjVDNKSFlwczIka2pEM0I3JWQ/IVhsajV8MUdqc2thQnsKekU3 MHtmPXlxSmExTEBva1AyTll9TEZpJGB5YXpoekxtb3AmO3ElYmtKLTlqeT93ZTQpUGVBNSUkaCNN RUIlcV5CCnokbV4zPnc8SDhhUVQ3e0FMen1VdE5lYHJ7ckF0dyFSblA8KUhgZWZwSylNKj5UQ3RZ S0VOR3p+WXA3ZlVlSnt0Zwp6UGE9LUEhV21TQmwkdm01NFJBSDtMJDFBe0t8ZnhzaFM1WUhOOVpi Q1RaOHoyKU1pWHFkUHE9Rih0c35od0hpfSgKekQzQmdUZXo+dXxlemljTi1TOHE4LWFiKF92c2h0 SzdOQWlQRit7d0hNRnJRRkYkP2B7X0djfld7WlY/M2o/LVYkCnpfcHVKIzMzXkZNQDlvZWBDLWs9 d1REJURoNEM/MUtxMGk2JGozdkU0TWI5RklXQXFILXt9N3xGXnU3KTtaLWtEegp6NVdEdlJAb1Em cXgxeyRjPXl9OV85NVRFTDhEM1Y+ZGs1bUxMO01ZaHklRio4SWA9dS0mcV5scUtaPTtnPT9Rdn4K elVaJlVTcT58cHshaVh9M1pwNlAoeyhETnxtaH1EfGRKXiVVZilwbihsQUo3bTJXdE10UlEjSkBU a2tMYnFMTkFaCnpwRzNeM1gmaFIzMkAqYF5BNEFERUFkTjE+bWh0Z3dgOG5IOVhNTV8mLWsoQz0t PWlhdHxIWjhRSjUhYl53YXwrKQp6bHZDYiRAJVBNeyU+TyZre2AwODZyfEM4MUtQaThFc3tBdGtP fGIyOW5zIzNOTVlGYkEoKSlLJT9rRExucjFBc1EKejtIM09nXlhzQWlqZm1aYV9+K35ZQzttWjhk VmQxYUtaKksoOHU0R0NBMWRpeClfZj1RdyptMmB7TzlNdCQzTG42Cnp6bFA+Y3AjR21sP1NHJE1S TU5YX2s/V0RkMkU+OzdnVkNSfSklWWpORktoMXpeblplVzFwOWtNTiQ9flJ6Wm01Mgp6ZiZTeklu Zk9mWW9iOWRSbj1SQDZEQ0dZaGU4fncmQEZLbVNyMXdzZ1QtdEFVIyh2TXd8OHZFWT9QbmE7SX1R bjYKemtrKDUtUHx+fU16WWdCREowLSNVPHpIQlFuPGMkfTdjcmtsM05QYUtsezUwVXF3SHo+PnIx dTJeWXU1Z18qUDRMCnp8NytDVEdxQ0BZc3JzOSZ8OCk1flFufTBhPnBITGU4O2Z0VHIxdkxMP3gq T3hEZVhVaFBXJFVqPWBYR1NeWHZhdQp6QHZ0U21lOzRfR0FNKEVkRXh2SDN7TD1FKnFYd2tART4h PThTQCFiYFowODc0ZEcjRnEtSDc8PmtWQHxiJWlyYlMKelkpUzhycnxlSkd8SC1XUXR0azExUlEj P0I9Nn1ySlhHIW5VZTtyNXBXcWU0R0BqdWRYclR4bkdCa2t7ZWApUXB1Cno+M19iOSpoa1RSZXUo fHRgaX4pZ0g+fmVNP0p1YHZ2aSgxVXtHVU0hZEtucnhUbU4hRlM2UDE5e3g+MjJeWm9CJQp6byQr NXNBXkI2IzswdXVjdHBBb1JTSVJILWNPbX1+b2p1dzl6SnM+PUViQE9Mck43RGNCaXEwOVUoJGNk X0czTkkKemV4P05tRWIwOVMkfWN0V0JLK1NBWFk1em5wT2p6UHpzJiE5YCp8I28tVHQwfHs9V3pO ZWZmPDRrZG4oNXlmRyFnCnpgXig9fXkzM05AQTRsMXJMaT5GVkoxcFEjfEZJdE9jT2FGWDMpKVk5 UztDVXVwTW15fExIXzRhMF8rKzhsa1VHZAp6ayRZZE57PzZDYEMoOTw9LT94JFBROzdjeE84QCpC YCVtans5ckVzbjJIKVRRMyhJIW9ydVYxVkhgeH5VN3dtN0AKemNpOVZVeU8hU2ZEMGBIc1ZrIT9S Z1VWaXxvVndMPishc0FuZFZnK3VmMFJBUFplITF+N3VmXnMzQVJzNT98WVJ5CnpsJGkyNDwkJHRO eGVNXz5iNiklZHYpez19QEJocCR3Iz5DJFgxVXVeWHR+a3lIYyMpNUtAWURoZnxhdXElRCpIMgp6 OCMoOVpBMiU2M21LeCQ0TVY/fEIjdXxCRj5rMmpOZ0JUTzNSR19xdzJyd0hYencjfjhMSzsyfGF4 JSt5KHI+ZGgKemxOc0FoQ1JTbzJ0VzxXbWx5WmJ9UkczRTY5S3F5ezhGTUF8b3RsWW5FYkExfSZ8 RE5eK1hxNGVCbkV0ZTA2dXNrCnpHNzw/XzxvPW1TTWVBJmNCbihySD5tdVMzPEhRTz1TWXVOcWpC cyVDdE93WFFLRFV+fmdyU2NMYnYmVnwzTUV2Mgp6NEJ1ano0JjF+RmpwR0tMc3xOMW08cjI5OEVt RU5IZjtpNEBCVntTZzclX0F+aVlrKTNfK1clTjYyIXVeISpXUWsKemk3N35GN1J9KkFwO3BvcVZa Pj0xX2s/Qy1edkd6OXNXOUphLTdkY2VnRGdsYmtgdkFlZ2EjUENqM3U4VE1rdnAyCnozSlQ5cVJB WDNaVU5jTz4mREY0fm19Q3pQUUBtTX4zLXhpPDBjfCojWmE1NiRFfUxBNnVSKDdacGhOWFVyQWor KQp6QkklZ04pa0A4RVV2K3RMayRERSNea3kxMXcyMHt5JG90NEZTSFFIWE18SXNDIVV9JWU7MlBW cFkrT30yeUBndygKemRzaU9MJHUkQ2J7XlhlSVd4fSpNWGBvVUtQJS1nKXh0Xj9CbVpMYkRpNFcy VUd4aS1maCM5Q3YmZ3V4aD1zTWdoCnpDfDtCJll8NjFHQjt0YXhJKldTNXVWQ0pTNXs0VkJ4Y2tS NGF8UTEoaSpJT0c2YSNGfDhwc3MmYFQ/aEBsRjU/eQp6alRAJTlMbiEzKiF4b2ZnMnlJb0Fee3p0 JkhyISRheHp7aj43YVNMUUB5LUN2ZFlhVjxvcXtTQGVZQDxjNz59NUsKeklUQjc3OHJLY2I3bCVr dDxzbE0yZ1NCREZKN1ppM01vfHwmJSskQ0U4SHEjT1QoQDhyR29UTUpvcTFWLWA3Q2N1CnpqaS0w JnQoRkgjRj5UREkyVUombD41ekM+a1QzKyVvMUQ0RVJITH0hO2hpKTw3TS1kTFMwISRHT3M4QG56 KS1MTwp6MH4wZilvfC1UMFJKbl4odH04a1pASS1FUElRZXNZakFvZHxIelJlWDR2fG84SjtSdGs4 UmYySzRkPHtoT2hTcH4KemN5NG91ais8bkokLV9pRU9lPmpTMkw9b0dpWDFFPj9IZmpKMGF3NlBt cTZOM0BLU3NSOWBNXkpQez92OXNpPkdWCnpYenVPeClrU3IjMzcxSjs3JktSZmlWcC1xQSU7N3Il R1lSTFZHOVUlTkRiPnVjJnM2fV9teSMtUT5eOUdDfXVaYwp6N0tlMCNea2l+IzdtTHlNeFBvPH5G PXY2I3RYO3chLTVZVFE+SVVeQUR2ZnhaUThCST5tXn52czsyaC0hc2ZKSncKenZ6K2FnUUp1ekFu fnM/QE9uSmwtTUJ7Sj1mdy15S092NW4+PDNKTjBSWlhVdyZSN0gpQiRnKiYzVk1WTDdGdDZUCnpW WEVkfERBYj88eGZ4cFdGLTM3PChNM2xxTmxVfGB0Z01acER0KXVMWndyfTIxQUhpZVBsUFJYQXk9 VDtPSjArWQp6bUwpaU9lRjVWQmgkPktmMTg2IzxCZ0JOWk9IcWVNTmdTK0RPK0EzeUtTaUNub0Fn UnVDQDM9Kit7RGFXU2pUdFoKek9yLXxaYXh4TSN7NnI4RVlCNUZQJV5jQWpmYWY/JlRHKGJtRTdh IUAtRHl7aVhIaDFLYyVzdDZzdG88T1RHblc/Cnp6KThndzkqLUNTY058VG9sbVlAJVZecXdfVCV7 eVhxX0QyPUNOZTZBeGJHRnIkJkhXXlE0Z3JYNil+d1U/cCVzRQp6Kz5BSF8kOEFnKEM3NjNuaHly I31zTTNwSXtaR1RBRCNPWXtoSTYqVFU5a3tmal9UZ1E2TXx+P3FBallfJSFlXkEKekw9MFhGWkFw aHNRckh2RlZ8TitIMmdkQnZjZHwld2ttK3QrSDdeUDxRTnhRWV9fOTtyVFVCRyE9YkEkaXZyWStf CnokMkhXVlJLVXRuWUIxNXBGZVVlaiFScX5SZE08LUpJeXVRQ0hLZ2s+P1VMMUREeT0rPiVDVE1a NU53XiN2PDFEWQp6JE1ueTVYVFo+V1k3P3tQPGJZNDNJRXBaJm8ycmxUQWs0SFJ7Mz0pMkU2TkQ5 MnJAXys5YTU9WUR4R3dwcUtoYlMKeloqUVVOejA7WVlqbkMxNEAoXzBsTkQ5KzExLWBTc2pNPj99 STgoP018QjU9S0I4LXdWWHdYbV87SnlWYSluWHUzCnpvams9enV0UDYoNURQNCZna3B4KnFNRGd3 U2N6TGJtfFMmblEhaEE0cldmfDQjbyEzclQ1U1UmNGxmPllMbUtBUQp6eWVASjNXaSY/KHZ1MmVp JnxnPnZQI1JLV0JUWGt3aEA9IW4kVT1lTGlmKytPVTEkMzgoUFgmVUxjK3hHS248OSEKemhSfXQ4 KmVYN3hTTD5YRkk0SDV8bzJsc0RCdmpfS0JwNFk2U2BIZXRKcGxfdDlrSl5nJWNeM2UrYzZ6JWto U0dECnooTCsxWEVyfXNDNH54ZCohbyhEdXQ0IXk2V240akpEKHdgUT5ZMkhaPjJ9PkRSMXV6K2FG dGFZIW03Uz8xfH5SbAp6JW8zVUg0eGR7YXBlbXU4SWpsakpxX2FWd2ZmRG4oTGVRKz1wY1E2TnB0 OWdNaFlBOWs0cmRYckA7UWxOPjRoWUkKejNydjt2O2opVnc3MVFJNz0qJGd3PGZPcmM+UCpibzNP KGZaeHheQDF1TmtJPFpvMF5tQ2s2TXxzK1hFeFRfajJNCnpSemBHPE5eWHk9dSZgb1VxbSE/Vz5S XyR7ZVlZMU00fnViRkkoaEkmQW40YjU8KFN6bnZzMlpCRDMkNl8kNmJNOAp6enY/TEFSNj9TSEJJ SUpJPm9TWE9GLVVPM2cleD5uYDFyLWd5cXFPT1BAWEdFOGsjZkNDfSF7LVc8cT54JFE2bkUKek8h VUBoWE1RIVZIdFFoPTRmd0c+PU1jZHlraGNNJSptQlVxT3xJNEBWa2FxNGdPOUJGMDZaVD84IWF3 NUVnTElGCnomNX1gb1pYTTNYNUNkLUU3Q29hYi1UKXQjNUg5JWc1RjN5UzFUWXBiNm4kbXtMbTNg YTtsTmttayR8fX41bEZgSAp6cGxrcVgoZzwkV1Q2KkExMX5AbURjKzY5SlU8UTlBYTFwY2M1cCQ1 WTFhIXJFZVVjSm0ldiRGV1JKUm4kdlk9QXAKeilIKktzKkw2YmAmQlYmaylQI3gzeiMxMT0tJkdl dyhMXjJSb2A0WDAxKU1NJTdFRks9UU50KGNMT2ojWkU5KlctCnp3dCtkSlNSOVVRYDx0ckxUISVJ ajI8VWRGeSNFWTJAbk4pS3BuTG5NOFI1bERiKWx1a0xxLUpzPCl8NDVrRDlfTgp6WXo4QXwwTnhU VTBiY1p3ezJkcl9rckZ8VkljaER7VkBaRGVxYm89VzFQTkFkK2ZtOVF4PWxlKDtydG42TldUKk8K eiN0X1ZKKUowbD1iZUYkUXVhRGJNbXR+UV9mWm1XOFI+bCNXb1Fia3w4JiVGeDdFVEFtP1VaQW9A Zyk0dHhFVm5VCnp3eUZGIWwrKXgmKnJ+VnolUGg/VTM4Z0AxMFRyIVkmcVhfZEB1fFdQSmMoQXRl YXhqYElTYEh+Qjs8d2JNVmdxSgp6d31uKWo4V1FUYlgrV0tJMl50VGYpNC02UExKSGIzOFchcVFw OVBoZEF1Rk1janRwUj1GPnM2KitMJWFzQzlrXl8Kem8pVUolIUB9PzYkbDcrR1VOeD5uWX1YRmhN KzFkYVlUPkw1Kl53JHVgdkBgQF9AditGOz57ZyFQJDVNI1kwT3tfCnpHJiF2MFBUe35JaWhJWHcp YW1ScSFeeUJwcXdycWhEcVdndTZFaGtwdXszJGdvYkBDUGhre1laJmwhZnFzT3VBSQp6JT05SGhq dnQ9dihWKXlNc04yU3ptPjBuNFMyWWV0JXlRakoxdD9DO2owOXA3TSlSYEVeK3VgKE4pd1gzTTcz M2sKejFZP2Y4MGxoaXRoZHg1XlF7O2diNGhkZHd3eFgyO1JqKF5EdGNWKG81QEZSeTcoQCpMcT5w Q2doUmZuYEpYU1dZCnpFVGF9WStKTVFIPlk7WS0zS2pZQXUlTCZMc1JXeEB5e2tmRlhobkVUWSR8 b2VwdHYoSmZHJFE1RC16NTtRYFNzPwp6VmszNXlDdWl4NGJUMnBUR15tVigkYVdFcE13JDFwdXln bU92QihJVDVfbFZZIzwxREV6NSFLRzxiVi0taCE0b28KekMwNnt7N2lRZGc+Wm4oWiNVLW5hI2Rn Pm5Ka2pEUm92ekZ4JX5pIU87XnYlQCZRPWpETGRfKCZzWndDMiRZfXQjCnpwZU55X0tvbDVeKk9r eFVqUygjV0dESTx4VChQKDwqIyFPSXBeIVJvOEUyPj53SyMje21ANW97M1grNmdwJkA+Vgp6TD9J VlFPQ3YwUFZeSiMlSk8mJDlSWk1WdUQ2bXNnUWQ1UlFldllBJVVYUnJqYUJsPkFee1BISGJQSSt7 KylqQ0wKek8/VSpQc0VUR3dAWSRSamFjd1g2aSMoJkNndWxvZG5tSEVRUl44cVAzfGx6KT1mdEJW bEk/Tll6Nz4pV0hOWEB4CnpBY2wzPURlKEB2K0wrVCY0V3tlaj5HbFVIQXh5KHtkfmRfaSRqMip7 bDVpWGtJQEphazYwQzk5SyE7K21QUTZMPgp6Q2NTJENycGxXMm82dSFhYjdAa3oxRkF0MGwtWmpj cGo/WWxMX1dDaFdFcn5Ya1licG45KGVhZTJ0KHY+cTdMXmIKemE2VWhkSU1IZEYxIW04WDU/QXlI MytkT0lBLXlxNGtyO0gwPVdwSjxWTik+O1poMUl8PmRZcFNtPFdjTk89enopCnpqPU47MmBsV2Fj dlZ+PE42JXZEfXBnVkdgRlJHRDgwJFBab1ctMDMjdlclNypyUUZiY3lVNik8STRHZmBXaDd4KQp6 bnNQOCNIKENebiF0XnBXakF+MHpHVDtqJm1ramJtWFRyYkJ3RTJtR2Fic1ZUdnx4KCpAV19MTkFD RUhKb0w4N3AKeikoTWU5PFFULVE1Z2RAbSk1S3pDPjZOeTxvTn02TmFvQDBfNWY4WihiJmE/Oz5B JUU2elAkb3tjRW47fTsxVjcmCno1PlgtcHQta1c+SSkqaCluPGwjK1ZSR3tVY1IrI2IjKUQyZ1Rn O1ZmWUBrfmxKI3F3SWQ2dk5ndyE/ZmxteX4zOQp6dVh4Vm00a2JnM2Z9Vz5zTm9qSW9jcDA4U3FT WWBlUyElfV4odUBwfFlHWVhDQ1R9M1lodVNjYm9WbmxUPmp7YzQKemE7P2N7Nyl8UE8zXmAkKCte TTNzNyp3Pl5sMHRmcVFNV1EydnY7fihQPHZweUh8fHdBNlgtT1M7PVZLKkNwfEp+CnpOWFBUNDtT Uyt1TT5AfWRjXnF+KFBEQEpvKCFmcUluQHVWbmpILUd2KURsVFZGZiRkeVAkVXdeUCZKOUJ1QmQ5 JQp6Qm4+dyRPMGhGaz08KjIpQkB7IWprZWtRKHBweyQkPFB8VX5RYGNoREhWOVMwamR7OVlJdT9w Nkd8RlE3YjgkUj4KeiRJeG4pSVE0dyNVPEIlV2lpUi11SE5iMXJSRERvYSsrPFMxdSVOVGhZPT52 WTRGLWNQelRMXzRMTHhST2hHdjc4CnpRRF8qSWFmZldHIXItR3sqSnJ7QVAwTDhJIU1+R01NJj82 VSVAZkRLT1NkPEtecXw/fnZOQFpFKEVHRTlYPW59eAp6KTEtU2p5bnVwWEI9YkBlOSpvLUAhcjdw UDdeZ0JfJShTcyshZilgO0RoO0tCOSZQI3ZJZGU+OEhmOVdDNGs4WWgKejhASzdCIXZzXnR2dXo0 a2N1VStjOWxLU2duOUtBKSh6Tl9lPVd9I3QxQFU7YF9UJHJGblBaOT5oJlFtMUQoaWJyCnpKVktH VVJ+dykpbGklR3k5dGVjP2smdnEjNEpke18mUHVWQ2V9RVN9RGJ4bkhaaVcmKFZjZ000eEt8JH1u Kztycwp6UWo9YFUyQGVWQypAWmNyVHxSOzRCYmJXMksoYj8kNWZ7VDQrYDZFQWJRMGJZbzVKQDhy WWxaXk11KjQ8cTV0QyUKenFrJSZvQXl3SEdwYXpvKi01RX1uLXJsKHE2QFdpOCo7SSp6VnsqS0tB IWQrKmVxT2plZChqTVEyc2c5MVV1UUErCnokc1MhNGFOUnA+Q1c0TCVGU1gpRTZOfXdjbnI1VUhG RCtvflMtQH03WS1VdU9MQWJ8WjUhS01QWlZ3OHRKN2xzRQp6Zz5IaGUzVXBBKT5kPChec19jcSFh PD0yeXZ5dGRJTi0kMSE3SGgwNiZ0PT89YXFuSTtQYjRDbTgwPSZRaDllUEYKekZnJkh0bzIxNjNv SzckSkl9P3NMSVJ3TzRVNTF7VVk7SWA1Rj1CPlk7YkNnSW5UKXt8NmZuNWt6YDlxKkcwYiE1Cnpe TT1ja0xYWF4hX2U2SGhHJFZ+RDU/KjxMdFpeRXBNM1k4T2RyYnBsRHUjK3xpV3xQYmpDK0kySDZt fFB6PnwpOwp6TTl7OyRQTz9WZ2hzamwzaHRkUSlwPlImaGtrRiFWbVY3JmpOUF9tbz0tI192RVQp NDB4OFdgSCN6WFNmR0p5ZikKejJ1NWA+WEBseGV0TkpsXmd6ODdlaGU8S2ZQOE9eJHJJNCRtakBM IVcyaTx1fmFFRjtKVyRHMTZmOT1KPmJLd0dtCnpea0pYYiYrdENaOFotMnpyaTVAdE8tfiUtVTxl VjN3Kz0rPjZpalhAJkViTD5XXn1NciFOZGskYUx+UTYhQkVuMAp6KSMwVFBNe310d2Z9dHR+QEVt UD1rT1UzSilMRmokaVpVMlo4WGBuRjRLXilHN3o+YVg7YVZ0M1pVSn1USnoxeUUKekxFblg4OU9X Mj9JZUxlc2pPRGY8PDdPanFyditBZXhnIXVhVCtlRVBffSsqYTk3VHIjcjtFbHpyNm9sJFNLVGEy CnorTEZpNzYmcH05KStiXkNKcnF+JEY/NnliaHROfGhPZ0xrTVJrJEF3bl88e1dBVGlFRDc/Y0VQ aVNyJCs7eERCcgp6UXtwRSVnSTVeOTlxdVYqSUp7fXBHKT5NNV51VF8yPS1XY0BRK1RoejQ0fTg7 SG19fUpKekE4bFAtaS0weDk4djsKejN9WldLN0VTKVFzVX48amJrPDhhWiQmcVN8R2hBJW41ZVVh en5DJXFRRDZ+PEtUSHUrbiQ2UD9aKm1DO1diOG87CnohKDFrTCo/fk84UWtNKTVoeTAtKFo+ai1C M31RSz5mdGEmQVgpPCV6cl8qakItJCF4VEQ4Z2NAaHJKZD0qREdLMAp6cCVyKV5yeWVDR1B0QCNX Vmh9eGRrPlJ1QCY8XiM7eDlneFdQemh3c1hxPz0xej5FR2M7UGVtWGtPUlZAa2hDTisKek5KKyFa RWt4d0RzbShpViQpRlJaYW4rY1NjIWs+UG4pWWtLT2JXMF8wYEsyWTlzWF5iTSs9JHY+b0F9TSVA JjlqCnphaC15ZGs3N0pHallTIXtVUkdDKXd2an5OVylgNnIyXzVxQEZ+SWNAcCR+eEhSSjVreUF3 OEB8K0AkIyhjYkl0Mwp6JFQkQDdaTjB6TEdAUWF8bT1SMV9qI0hGLWJNIzsrcnl3PUw2JVYxUmJk P1AweHlMY215QTMldmxmITR5OzUoUkEKel5MWCViakg9XytzMVJ7WDA7MGQ/Yi1LfGdNX31RMiRR Tl9UQXFfX1M9LU87KE90JE42ISheSTE+UXJIKVQ0VjwlCnpUSitGZnh9eVRRYyh+eStFekc/Skg3 MXlHNSE4eTtHWnFiPUdSb28ralpgSVduRENAZjJZMlQlQlFBRU1oNnwhKAp6KEB5WkVhaUpRY08w cSFwTU04TXIzZDEpJXhkXipyMlhnUFM/WGBIQ1J2JlEmQ34kbmFqeHE2Z3p7S2RMKyh9eDUKekQm aGdrS0BVOTtDcEIhRDFARUAjbiE1VnlQfFRAcU4mezBHbjl7KE0yQnRKSHJHWTY4T2xlP0IxT0g8 K2FBanpECnp7ZTk8YjtzZHN8VFQ8SzUoOWpwWl99Ql5lXmImOE8kMzVNdD1TXzN1JlQhXkNhJjNC XiE9Q1JFKTZlQn02Xk5vagp6d2ArUWUoR0dyYUlgZ09IN1IoZSoxei04dFRLPy00YmZOI3VASWs1 blNNaSgzV0tHM19pbUhrVns1UiFiYTNOamEKent6M1d2RFh4WDs3dEY2LVNXe0MmUzEtR0VkR3A2 c2lSRSlFRCRBPmE4I2p1XiVESCVXX1VFKT16N0NUVG42ZTw7Cno+KjB2TTNfWHJoKysmaXdaRW41 PT99fiQjSmVvdW5KdElSKUs4Mjt6U3EqLWNwfHxBVjB5YTc4IWZFMlFpQnFJNgp6WkVWNXxJNUlQ dDxpeXxMNElIaiVSeE84SHR5WV9qK1pgXm5qJEZxfj1rJEVuaFlCeWY8VUByO01aIU9LdyghajwK ekUtREh2RVMoZHFzSCY+RWJvUWRmSEk8am9vbktXYzZII243OHk0ZEJPcT1HWl5jSCF+ZTEhTChD TUwkSWZhNl4jCno2eE42THVAcDt6R0kwIVYpI0U+T0UyJUFBNmpATTxueGsyeyY3S1F9WnxQRH43 TiVOcWEjUiZwS1B+XiZ2UmFWaQp6XmozdGw9X3tnRS0lWU57ZiFwdXAjZFF4Sm5YJlQ0Y200QlFk KmUye2B5JFdHIWRXRz0xRXBuRTN0KTdNWVU+LTgKekcrcjVRVERxI2BXMj4qaEtibWlBP153R28q MTVpfmY3OWtJVFd7WEJKK1dpKHd4T043aFZLfnAhcm5YZ2VSMlFUCnpSfU9zajtNV2Qpe2wxNjNg Uzc8TWBTem9LXzFNdVRrM0lHREdzbUJPP3htTXNgTjY5e2VDPGNDenhtY3JlKV9Zdwp6fE5mbnl8 S2d2MXttO01vbSo0KkRAQlohZ3ZSdHk5bFV1ckU9YXM3Zjx6bEw4UUxWQ0UzZm0kSlVaQ2M5RD5Q P2wKemcqQUg5YllKQkZjaCVpfj99SkJkI3EoRmJKRU9KdE1aNFF5XzIjVTlsMHszRT5fMW5xXyNh aVdHWCo8YXVHaCg3CnohSypnfm1JOGRUQFVBYEpZRjN1R1I/LS16YT5zVStuayR5TCUpcj5MaC08 fFhWR29SJT1WNCF0WWVrc3QzTEhlRgp6V35KJClPOStlLTdoKm0/QGBjVlA2QzZkTmUrO0FgbGhW cil7SGJ3OVYrNWBKRjtKbUElWHdQOWtmUSF2IX5UQl4KekFaPis5WDVzeiFLaDZxfmBPMFNOI0Up cHJAQERaTTk9QmZwayp6KF53aWBTOE1RZ3twJmFURDJmQmVwT2VXSjV7Cnp2RzFBJSVZKH4lPk57 ZWM7Y2RNZ3RGflIkKHpmbCF3bmdvfWs2YS14LSYodE1XNiNFcHs7MWZ4YVlJKk0/YmdNPAp6WG5T e1NNPWZYPkprS1htRWQ0aHdfUXxhM3lMJnJDKSFlR04hU1c/ckoyek1Ra1ZiRiYrUy0qM2poUGcx dyU4WnoKekA5KExkSHhDMSh4bSlKWD9lMU1TdUw0N2hkQk10Z202aGUtRERTKHV0M1NINnlzTkt4 R0tHZVl6UDhAWnA4bjQ2CnpFK0pFbHdzdnBvVStoRXZEWnl+MVpPSyp5V1JqTldzZjdGYit2aGRt cXpWTkEhQFNDMXUlPGolU3pmdEYlQVBMTgp6Iy04UU4mJjJITm8wfUApK192dEdeUmBCTj0yZ3JN JmZCPjA0MG03dWxGZXVIeGdkOTYlZ3NGPF5IejVCYiNMbHoKej5zWWU2cXBRRG9HUDlseW9CRmN6 K1NKen1nSHAwP1hrUi1JVnkxR088aUUwTWRHaV41c2p6ak84KyVnUmw1PikpCnp6M21LNyYhKmxE c3E1YCteRXgoa1koKGFMTlVgRCFaLTN8N3ZzR304e1BNfjxuSW5yYz43Syhtc1RZfClsdm1yKAp6 LUxeXlEpWVAhcENrM28rP3s0ZEN1VDdDXytnbUZaRVR7XldTMXhSOEZSJHRWd1BAa20xPzMmVm51 Pn4haXQ0c1MKejN4YnBCRzxFZyRONHdmT1dJOU5CWllMNjErYTZ1Q1VfdHhCQDxzRWo3TTU0N1VE UV9JeD0xRnt6OT18PFFCXzZOCnorS1Q5OHtIdUZBVmNwUlUrNDlKQStMMkM4dXpKeWcpe2FIeEg1 Q2dXTT5OYDZVZW5nR3dtakhZR3J1QWo0T1VtUgp6Uns0YX5jV3RQLVh8Yjx6RjJxV21IZ0FhYnVr RyZMeFkpTz52dW80Vk9sVjh6IypTNn1RS19QZT5pSmRHSE5sRjcKejMjdH4/RUw+UWI7YUpfIytY czc8Tm1UXnJSd0I1KXQrbypmTVBXZGw4Pjh6dz01NlV7P2VQaHpfKiUjZzRNd0dmCnpCZ0lzU1lV X0pEcVcjXnlFIzJLNDdXPD91TE1BMktNOEBFMm12eShMcU5GJUcrQjVCfkYxbF9XJGEjTzU+LTtP TAp6ViU9TjF7KTU8KUpkPCVsejVRRmRkdkNuRF92K1U1OWN9JThBb2x5WUNnWlAhRTkmZC15fTlX UmlHMj0zK1MwO14KeihjT0Q8Q2ErWjtIKVdefG9nJnBUWW9sI3g0ZmFKaGNlTUw1Zm8tdjkqU1pk UEpHNm97VGp2RVZaR1AqYmc+NElpCnohU1l+bWVydEpFVGtISnRYbSQwMUAmJj1GX0p0a00+UDZN VDEoV2dueTRVdF5pU35BYyl9aGkrSCElOEMtSDFUUwp6TW9LNjd3IX1KNm90RmhHQHNJQyhzWENG fkQ9b0tkPn1XaF5pekdja1pJZCpOUmh4UXhIZ3RDTW8tSm84P2diZ24KejI0PjlWNEBOcUJKciQ/ RXlYUiYhbXt8WVNUZT5jcyklIVM3QHNAU0FiIyhRMFVyQE5MWXg4N0R2LX4jMU4oR0BhCnVrbVEt WjwlJG91aT1NaFByR1k2OE9sZT9CMTUrQjkoIWlncTJGfjd7YzY0RW93Z3ZafF4jMV9YWFdzfF8K CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9pbWFnZS10ZXN0 cy5lbCBiL3Rlc3QvbGlzcC9pbWFnZS10ZXN0cy5lbAppbmRleCBhYTg2MDA2MDljLi5jMzRjMTUy Y2M5IDEwMDY0NAotLS0gYS90ZXN0L2xpc3AvaW1hZ2UtdGVzdHMuZWwKKysrIGIvdGVzdC9saXNw L2ltYWdlLXRlc3RzLmVsCkBAIC00OSwxMiArNDksMTQgQEAgaW1hZ2UtLXNldC1wcm9wZXJ0eQog ICAgIChzaG91bGQgKGVxdWFsIGltYWdlICcoaW1hZ2UpKSkpKQogCiAoZXJ0LWRlZnRlc3QgaW1h Z2UtZmluZC1pbWFnZSAoKQotICAoZmluZC1pbWFnZSAnKCg6dHlwZSB4cG0gOmZpbGUgInVuZG8u eHBtIikpKQotICAoZmluZC1pbWFnZSAnKCg6dHlwZSBwbmcgOmZpbGUgIm5ld3N0aWNrZXIvcnNz LWZlZWQucG5nIiA6YXNjZW50IGNlbnRlcikpKSkKKyAgKHNob3VsZCAobGlzdHAgKGZpbmQtaW1h Z2UgJygoOnR5cGUgeHBtIDpmaWxlICJ1bmRvLnhwbSIpKSkpKQorICAoc2hvdWxkIChsaXN0cCAo ZmluZC1pbWFnZSAnKCg6dHlwZSBwbmcgOmZpbGUgIm5ld3N0aWNrZXIvcnNzLWZlZWQucG5nIiA6 YXNjZW50IGNlbnRlcikpKSkpCisgIChzaG91bGQtbm90IChmaW5kLWltYWdlICcoKDp0eXBlIHBu ZyA6ZmlsZSAiZG9lcy1ub3QtZXhpc3QtZm9vLWJhci5wbmciKSkpKSkKIAogKGVydC1kZWZ0ZXN0 IGltYWdlLXR5cGUtZnJvbS1maWxlLW5hbWUgKCkKICAgKHNob3VsZCAoZXEgKGltYWdlLXR5cGUt ZnJvbS1maWxlLW5hbWUgImZvby5qcGciKSAnanBlZykpCi0gIChzaG91bGQgKGVxIChpbWFnZS10 eXBlLWZyb20tZmlsZS1uYW1lICJmb28ucG5nIikgJ3BuZykpKQorICAoc2hvdWxkIChlcSAoaW1h Z2UtdHlwZS1mcm9tLWZpbGUtbmFtZSAiZm9vLnBuZyIpICdwbmcpKQorICAoc2hvdWxkIChlcSAo aW1hZ2UtdHlwZS1mcm9tLWZpbGUtbmFtZSAiZm9vLndlYnAiKSAnd2VicCkpKQogCiAoZXJ0LWRl ZnRlc3QgaW1hZ2UtdHlwZS9mcm9tLWZpbGVuYW1lICgpCiAgIDs7IE9uIGVtYmEsIGBpbWFnZS10 eXBlcycgYW5kIGBpbWFnZS1sb2FkLXBhdGgnIGRvIG5vdCBleGlzdC4KZGlmZiAtLWdpdCBhL3Rl c3Qvc3JjL2ltYWdlLXRlc3RzLmVsIGIvdGVzdC9zcmMvaW1hZ2UtdGVzdHMuZWwKaW5kZXggZDVl M2E3Y2M1Yy4uYjkyMTczOWEwNSAxMDA2NDQKLS0tIGEvdGVzdC9zcmMvaW1hZ2UtdGVzdHMuZWwK KysrIGIvdGVzdC9zcmMvaW1hZ2UtdGVzdHMuZWwKQEAgLTQ0LDYgKzQ0LDggQEAgaW1hZ2UtdGVz dHMtLWZpbGVzCiAgICAgKHRpZmYgLiAsKGV4cGFuZC1maWxlLW5hbWUKICAgICAgICAgICAgICAg Im5leHRzdGVwL0dOVXN0ZXAvRW1hY3MuYmFzZS9SZXNvdXJjZXMvZW1hY3MudGlmZiIKICAgICAg ICAgICAgICAgc291cmNlLWRpcmVjdG9yeSkpCisgICAgKHdlYnAgLiAsKGV4cGFuZC1maWxlLW5h bWUgInRlc3QvZGF0YS9pbWFnZS9ibGFjay53ZWJwIgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNvdXJjZS1kaXJlY3RvcnkpKQogICAgICh4Ym0gLiAsKGZpbmQtaW1hZ2UgJygoOmZp bGUgImdudXMvZ251cy54Ym0iIDp0eXBlIHhibSkpKSkKICAgICAoeHBtIC4gLChmaW5kLWltYWdl ICcoKDpmaWxlICJzcGxhc2gueHBtIiA6dHlwZSB4cG0pKSkpCiAgICAgOzsgVE9ETzogZ2lmCkBA IC04Niw2ICs4OCwxMyBAQCBpbWFnZS10ZXN0cy1pbWFnZS1zaXplL3RpZmYKICAgICAgKHNob3Vs ZCAoZmxvYXRwIGEpKQogICAgICAoc2hvdWxkIChmbG9hdHAgYikpKSkpCiAKKyhlcnQtZGVmdGVz dCBpbWFnZS10ZXN0cy1pbWFnZS1zaXplL3dlYnAgKCkKKyAgKGltYWdlLXNraXAtdW5sZXNzICd3 ZWJwKQorICAocGNhc2UgKGltYWdlLXNpemUgKGNyZWF0ZS1pbWFnZSAoY2RyIChhc3NxICd3ZWJw IGltYWdlLXRlc3RzLS1maWxlcykpKSkKKyAgICAoYCgsYSAuICxiKQorICAgICAoc2hvdWxkIChm bG9hdHAgYSkpCisgICAgIChzaG91bGQgKGZsb2F0cCBiKSkpKSkKKwogKGVydC1kZWZ0ZXN0IGlt YWdlLXRlc3RzLWltYWdlLXNpemUveGJtICgpCiAgIChpbWFnZS1za2lwLXVubGVzcyAneGJtKQog ICAocGNhc2UgKGltYWdlLXNpemUgKGNkciAoYXNzcSAneGJtIGltYWdlLXRlc3RzLS1maWxlcykp KQpAQCAtMTMwLDcgKzEzOSwxMiBAQCBpbWFnZS10ZXN0cy1pbWFnZS1tYXNrLXAvc3ZnCiAoZXJ0 LWRlZnRlc3QgaW1hZ2UtdGVzdHMtaW1hZ2UtbWFzay1wL3RpZmYgKCkKICAgKGltYWdlLXNraXAt dW5sZXNzICd0aWZmKQogICAoc2hvdWxkLW5vdCAoaW1hZ2UtbWFzay1wIChjcmVhdGUtaW1hZ2UK LQkJCSAgICAgKGNkciAoYXNzcSAndGlmZiBpbWFnZS10ZXN0cy0tZmlsZXMpKSkpKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGNkciAoYXNzcSAndGlmZiBpbWFnZS10ZXN0cy0tZmls ZXMpKSkpKSkKKworKGVydC1kZWZ0ZXN0IGltYWdlLXRlc3RzLWltYWdlLW1hc2stcC93ZWJwICgp CisgIChpbWFnZS1za2lwLXVubGVzcyAnd2VicCkKKyAgKHNob3VsZC1ub3QgKGltYWdlLW1hc2st cCAoY3JlYXRlLWltYWdlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjZHIgKGFzc3Eg J3dlYnAgaW1hZ2UtdGVzdHMtLWZpbGVzKSkpKSkpCiAKIChlcnQtZGVmdGVzdCBpbWFnZS10ZXN0 cy1pbWFnZS1tYXNrLXAveGJtICgpCiAgIChpbWFnZS1za2lwLXVubGVzcyAneGJtKQpAQCAtMTcz LDcgKzE4NywxMiBAQCBpbWFnZS10ZXN0cy1pbWFnZS1tZXRhZGF0YS9zdmcKIChlcnQtZGVmdGVz dCBpbWFnZS10ZXN0cy1pbWFnZS1tZXRhZGF0YS90aWZmICgpCiAgIChpbWFnZS1za2lwLXVubGVz cyAndGlmZikKICAgKHNob3VsZC1ub3QgKGltYWdlLW1ldGFkYXRhCi0JICAgICAgIChjcmVhdGUt aW1hZ2UgKGNkciAoYXNzcSAndGlmZiBpbWFnZS10ZXN0cy0tZmlsZXMpKSkpKSkKKyAgICAgICAg ICAgICAgIChjcmVhdGUtaW1hZ2UgKGNkciAoYXNzcSAndGlmZiBpbWFnZS10ZXN0cy0tZmlsZXMp KSkpKSkKKworKGVydC1kZWZ0ZXN0IGltYWdlLXRlc3RzLWltYWdlLW1ldGFkYXRhL3dlYnAgKCkK KyAgKGltYWdlLXNraXAtdW5sZXNzICd3ZWJwKQorICAoc2hvdWxkLW5vdCAoaW1hZ2UtbWV0YWRh dGEKKyAgICAgICAgICAgICAgIChjcmVhdGUtaW1hZ2UgKGNkciAoYXNzcSAnd2VicCBpbWFnZS10 ZXN0cy0tZmlsZXMpKSkpKSkKIAogKGVydC1kZWZ0ZXN0IGltYWdlLXRlc3RzLWltYWdlLW1ldGFk YXRhL3hibSAoKQogICAoaW1hZ2Utc2tpcC11bmxlc3MgJ3hibSkKLS0gCjIuMzAuMgoK --000000000000f1a9de05cebd02b8--