From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 101280 invoked by alias); 9 Jan 2020 03:48:41 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 101270 invoked by uid 89); 9 Jan 2020 03:48:40 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-16.3 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_ASCII_DIVIDERS,KAM_BADIPHTTP,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=RANDOM, lying, resources X-HELO: us-smtp-delivery-1.mimecast.com Received: from us-smtp-1.mimecast.com (HELO us-smtp-delivery-1.mimecast.com) (207.211.31.81) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 09 Jan 2020 03:48:30 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1578541708; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type; bh=asxV1LKyyCzoLGcCwemVVvBITtuve0dessXW+cNSXEw=; b=gAE3dp8aeyGSGXO/6EqiRBPrnO689j5obijUfv1t6aVy/tz/SDNv4hULtI1ODrEiKn1tLX gug/B3aOr4zQYX/kd4zF9T/SDnZOLN+mrKc2hm5toamb1zL1cp0QoCQGw3XbjCIA67RiEK NdHa8o2LC4M5AH4+e3VSd2UzTf9Y5+M= Received: from mail-vk1-f200.google.com (mail-vk1-f200.google.com [209.85.221.200]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-233--yeEVbeyPdKdouPgU0SFaw-1; Wed, 08 Jan 2020 22:48:26 -0500 Received: by mail-vk1-f200.google.com with SMTP id z24so1926718vkn.0 for ; Wed, 08 Jan 2020 19:48:26 -0800 (PST) MIME-Version: 1.0 From: Aaron Merey Date: Thu, 09 Jan 2020 03:48:00 -0000 Message-ID: Subject: [PATCH 1/1] Add debuginfod support to GDB To: gdb-patches@sourceware.org X-Mimecast-Spam-Score: 0 Content-Type: multipart/mixed; boundary="000000000000a306cf059bace1ad" X-SW-Source: 2020-01/txt/msg00195.txt.bz2 --000000000000a306cf059bace1ad Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Content-length: 1 --000000000000a306cf059bace1ad Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Add-debuginfod-support-to-GDB.patch" Content-Disposition: attachment; filename="0001-Add-debuginfod-support-to-GDB.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k566wr5y0 Content-length: 49175 ZGVidWdpbmZvZCBpcyBhIGxpZ2h0d2VpZ2h0IHdlYiBzZXJ2aWNlIHRoYXQg aW5kZXhlcyBFTEYvRFdBUkYgZGVidWdnaW5nCnJlc291cmNlcyBieSBidWls ZC1pZCBhbmQgc2VydmVzIHRoZW0gb3ZlciBIVFRQLiBUaGlzIHBhdGNoIGVu YWJsZXMgR0RCCnRvIHF1ZXJ5IGRlYnVnaW5mb2Qgc2VydmVycyBmb3Igc2Vw YXJhdGUgZGVidWcgZmlsZXMgYW5kIHNvdXJjZSBjb2RlIHdoZW4KaXQgaXMg b3RoZXJ3aXNlIG5vdCBhYmxlIHRvIGZpbmQgdGhlbS4gR0RCIGNhbiBiZSBi dWlsdCB3aXRoIGRlYnVnaW5mb2QKdXNpbmcgdGhlIC0td2l0aC1kZWJ1Z2lu Zm9kIGNvbmZpZ3VyZSBvcHRpb24uIFRoaXMgcmVxdWlyZXMgdGhhdApsaWJk ZWJ1Z2luZm9kIGJlIGluc3RhbGxlZCBhbmQgZm91bmQgYXQgY29uZmlndXJl IHRpbWUuIGRlYnVnaW5mb2QgaXMKcGFja2FnZWQgd2l0aCBlbGZ1dGlscywg c3RhcnRpbmcgd2l0aCB2ZXJzaW9uIDAuMTc4LiBGb3IgbW9yZSBpbmZvcm1h dGlvbgpzZWUgaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9lbGZ1dGlscy8uCgpD aGFuZ2VMb2c6CjIwMjAtMDEtMDggIEFhcm9uIE1lcmV5ICA8YW1lcmV5QHJl ZGhhdC5jb20+CgogICAgICAgICogY29uZmlnL2RlYnVnaW5mb2QubTQ6IE5l dyBmaWxlLiBBZGQgbWFjcm8gQUNfREVCVUdJTkZPRC4KICAgICAgICBBZGRz IG5ldyBjb25maWd1cmUgb3B0aW9uIC0td2l0aC1kZWJ1Z2luZm9kLgogICAg ICAgICogY29uZmlndXJlOiBSZWdlbmVyYXRlLgogICAgICAgICogY29uZmln dXJlLmFjOiBDYWxsIEFDX0RFQlVHSU5GT0QuCgpnZGIvQ2hhbmdlTG9nOgoy MDIwLTAxLTA4ICBBYXJvbiBNZXJleSAgPGFtZXJleUByZWRoYXQuY29tPgoK ICAgICAgICAqIE1ha2VmaWxlLmluIChDTElCUyk6IEFkZCBsaWJkZWJ1Z2lu Zm9kLgogICAgICAgICogTkVXUzogVXBkYXRlLgogICAgICAgICogY29uZmln LmluOiBSZWdlbmVyYXRlLgogICAgICAgICogY29uZmlndXJlOiBSZWdlbmVy YXRlLgogICAgICAgICogY29uZmlndXJlLmFjOiBDYWxsIEFDX0RFQlVHSU5G T0QuCiAgICAgICAgKiBkb2MvZ2RiLnRleGluZm86IEFkZCAtLXdpdGgtZGVi dWdpbmZvZCB0byBjb25maWd1cmUgb3B0aW9ucwogICAgICAgIHN1bW1hcnku CiAgICAgICAgKiBkd2FyZjJyZWFkLmMgKGR3YXJmMl9nZXRfZHd6X2ZpbGUp OiBRdWVyeSBkZWJ1Z2luZm9kIHNlcnZlcnMKICAgICAgICB3aGVuIGEgZHd6 IGZpbGUgY2Fubm90IGJlIGZvdW5kLgogICAgICAgICogZWxmcmVhZC5jIChl bGZfc3ltZmlsZV9yZWFkKTogUXVlcnkgZGVidWdpbmZvZCBzZXJ2ZXJzIHdo ZW4gYQogICAgICAgIGRlYnVnaW5mbyBmaWxlIGNhbm5vdCBiZSBmb3VuZC4K ICAgICAgICAqIHNvdXJjZS5jIChvcGVuX3NvdXJjZV9maWxlKTogUXVlcnkg ZGVidWdpbmZvZCBzZXJ2ZXJzIHdoZW4gYQogICAgICAgIHNvdXJjZSBmaWxl IGNhbm5vdCBiZSBmb3VuZC4KICAgICAgICAqIHRvcC5jIChwcmludF9nZGJf Y29uZmlndXJhdGlvbik6IEluY2x1ZGUKICAgICAgICAtLXt3aXRoLHdpdGhv dXR9LWRlYnVnaW5mb2QgaW4gdGhlIG91dHB1dC4KCmdkYi90ZXN0c3VpdGUv Q2hhbmdlTG9nOgoyMDIwLTAxLTA4ICBBYXJvbiBNZXJleSAgPGFtZXJleUBy ZWRoYXQuY29tPgoKICAgICAgICAqIGdkYi5kZWJ1Z2luZm9kOiBOZXcgZGly ZWN0b3J5IGZvciBkZWJ1Z2luZm9kIHRlc3RzLgogICAgICAgICogZ2RiLmRl YnVnaW5mb2QvbWFpbi5jOiBOZXcgdGVzdCBmaWxlLgogICAgICAgICogZ2Ri LmRlYnVnaW5mb2QvZmV0Y2hfc3JjX2FuZF9zeW1ib2xzLmV4cDogTmV3IHRl c3RzLgotLS0KIGNvbmZpZy9kZWJ1Z2luZm9kLm00ICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAzOCArKysKIGNvbmZpZ3VyZSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IDEzOSArKysrKysrKysrLQogY29u ZmlndXJlLmFjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICA0ICsKIGdkYi9NYWtlZmlsZS5pbiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgNSArLQogZ2RiL05FV1MgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICA5ICsKIGdkYi9jb25maWcuaW4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBnZGIvY29u ZmlndXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxODEg KysrKysrKysrKy0tLS0KIGdkYi9jb25maWd1cmUuYWMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgNSArCiBnZGIvZG9jL2dkYi50ZXhpbmZv ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKwogZ2RiL2R3YXJm MnJlYWQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQyICsr KysKIGdkYi9lbGZyZWFkLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICA0NyArKystCiBnZGIvc291cmNlLmMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgNjEgKysrKysKIC4uLi9nZGIuZGVidWdp bmZvZC9mZXRjaF9zcmNfYW5kX3N5bWJvbHMuZXhwICB8IDIyMSArKysrKysr KysrKysrKysrKysKIGdkYi90ZXN0c3VpdGUvZ2RiLmRlYnVnaW5mb2QvbWFp bi5jICAgICAgICAgICB8ICAyNSArKwogZ2RiL3RvcC5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEwICsKIDE1IGZpbGVzIGNo YW5nZWQsIDc0NyBpbnNlcnRpb25zKCspLCA1MSBkZWxldGlvbnMoLSkKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBjb25maWcvZGVidWdpbmZvZC5tNAogY3JlYXRl IG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmRlYnVnaW5mb2QvZmV0 Y2hfc3JjX2FuZF9zeW1ib2xzLmV4cAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdk Yi90ZXN0c3VpdGUvZ2RiLmRlYnVnaW5mb2QvbWFpbi5jCgpkaWZmIC0tZ2l0 IGEvY29uZmlnL2RlYnVnaW5mb2QubTQgYi9jb25maWcvZGVidWdpbmZvZC5t NApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi45OTc5 YWJlODlkCi0tLSAvZGV2L251bGwKKysrIGIvY29uZmlnL2RlYnVnaW5mb2Qu bTQKQEAgLTAsMCArMSwzOCBAQAorZG5sIENvcHlyaWdodCAoQykgMTk5Ny0y MDE5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorZG5sIFRoaXMg ZmlsZSBpcyBmcmVlIHNvZnR3YXJlLCBkaXN0cmlidXRlZCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVQorZG5sIEdlbmVyYWwgUHVibGljIExpY2Vuc2Uu ICBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbAor ZG5sIFB1YmxpYyBMaWNlbnNlLCB0aGlzIGZpbGUgbWF5IGJlIGRpc3RyaWJ1 dGVkIGFzIHBhcnQgb2YgYSBwcm9ncmFtCitkbmwgdGhhdCBjb250YWlucyBh IGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwg dW5kZXIKK2RubCB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgYXMgdGhl IHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgorCitBQ19ERUZVTihbQUNfREVCVUdJ TkZPRF0sCitbCisjIEVuYWJsZSBkZWJ1Z2luZm9kCitBQ19BUkdfV0lUSChb ZGVidWdpbmZvZF0sCisgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLXdpdGgt ZGVidWdpbmZvZF0sCisgICAgICAgICAgICAgICAgICAgICAgIFtFbmFibGUg ZGVidWdpbmZvIGxvb2t1cHMgd2l0aCBkZWJ1Z2luZm9kIChhdXRvL3llcy9u byldKSwKKyAgICAgICAgW10sIFt3aXRoX2RlYnVnaW5mb2Q9YXV0b10pCitB Q19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gdXNlIGRlYnVnaW5mb2RdKQor QUNfTVNHX1JFU1VMVChbJHdpdGhfZGVidWdpbmZvZF0pCisKK2lmIHRlc3Qg IiR7d2l0aF9kZWJ1Z2luZm9kfSIgPSBubzsgdGhlbgorICBBQ19NU0dfV0FS TihbZGVidWdpbmZvZCBzdXBwb3J0IGRpc2FibGVkOyBzb21lIGZlYXR1cmVz IG1heSBiZSB1bmF2YWlsYWJsZS5dKQorZWxzZQorICBBQ19DSEVDS19MSUIo W2RlYnVnaW5mb2RdLCBbZGVidWdpbmZvZF9iZWdpbl0sIFtoYXZlX2RlYnVn aW5mb2RfbGliPXllc10pCisgIEFDX0NIRUNLX0RFQ0woW2RlYnVnaW5mb2Rf YmVnaW5dLCBbaGF2ZV9kZWJ1Z2luZm9kX2g9eWVzXSwgW10sCisgICAgICAg ICAgICAgICAgWyNpbmNsdWRlIDxlbGZ1dGlscy9kZWJ1Z2luZm9kLmg+XSkK KyAgaWYgdGVzdCAieCRoYXZlX2RlYnVnaW5mb2RfbGliIiA9ICJ4eWVzIiAt YSBcCisgICAgICAgICAgIngkaGF2ZV9kZWJ1Z2luZm9kX2giID0gInh5ZXMi OyB0aGVuCisgICAgQUNfREVGSU5FKFtIQVZFX0xJQkRFQlVHSU5GT0RdLCBb MV0sCisgICAgICAgICAgICAgIFtEZWZpbmUgdG8gMSBpZiBkZWJ1Z2luZm9k IGlzIGVuYWJsZWQuXSkKKyAgICBBQ19TVUJTVChbTElCREVCVUdJTkZPRF0s IFsiLWxkZWJ1Z2luZm9kIl0pCisgIGVsc2UKKyAgICBBQ19TVUJTVChbTElC REVCVUdJTkZPRF0sIFtdKQorICAgIGlmIHRlc3QgIiR3aXRoX2RlYnVnaW5m b2QiID0geWVzOyB0aGVuCisgICAgICBBQ19NU0dfRVJST1IoW2RlYnVnaW5m b2QgaXMgbWlzc2luZyBvciB1bnVzYWJsZV0pCisgICAgZWxzZQorICAgICAg QUNfTVNHX1dBUk4oW2RlYnVnaW5mb2QgaXMgbWlzc2luZyBvciB1bnVzYWJs ZTsgc29tZSBmZWF0dXJlcyBtYXkgYmUgdW5hdmFpbGFibGUuXSkKKyAgICBm aQorICBmaQorZmkKK10pCmRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25m aWd1cmUKaW5kZXggNmE5NzE5ZjYwOS4uZTAyMTIzYzM2ZiAxMDA3NTUKLS0t IGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3VyZQpAQCAtNjkwLDYgKzY5MCw3 IEBAIGV4dHJhX21wY19nbXBfY29uZmlndXJlX2ZsYWdzCiBleHRyYV9tcGZy X2NvbmZpZ3VyZV9mbGFncwogZ21waW5jCiBnbXBsaWJzCitMSUJERUJVR0lO Rk9ECiBkb19jb21wYXJlCiBHTkFUTUFLRQogR05BVEJJTkQKQEAgLTc5MCw2 ICs3OTEsNyBAQCBlbmFibGVfbGlic3NwCiBlbmFibGVfbGlic3RkY3h4CiBl bmFibGVfbGlib2ZmbG9hZG1pYwogZW5hYmxlX2Jvb3RzdHJhcAord2l0aF9k ZWJ1Z2luZm9kCiB3aXRoX21wYwogd2l0aF9tcGNfaW5jbHVkZQogd2l0aF9t cGNfbGliCkBAIC0xNTUzLDYgKzE1NTUsOCBAQCBPcHRpb25hbCBQYWNrYWdl czoKICAgLS13aXRob3V0LVBBQ0tBR0UgICAgICAgZG8gbm90IHVzZSBQQUNL QUdFIChzYW1lIGFzIC0td2l0aC1QQUNLQUdFPW5vKQogICAtLXdpdGgtYnVp bGQtbGlic3ViZGlyPURJUiAgRGlyZWN0b3J5IHdoZXJlIHRvIGZpbmQgbGli cmFyaWVzIGZvciBidWlsZCBzeXN0ZW0KICAgLS13aXRoLXN5c3RlbS16bGli ICAgICAgdXNlIGluc3RhbGxlZCBsaWJ6CisgIC0td2l0aC1kZWJ1Z2luZm9k ICAgICAgIEVuYWJsZSBkZWJ1Z2luZm8gbG9va3VwcyB3aXRoIGRlYnVnaW5m b2QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGF1dG8veWVzL25vKQog ICAtLXdpdGgtbXBjPVBBVEggICAgICAgICBzcGVjaWZ5IHByZWZpeCBkaXJl Y3RvcnkgZm9yIGluc3RhbGxlZCBNUEMgcGFja2FnZS4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgRXF1aXZhbGVudCB0byAtLXdpdGgtbXBjLWluY2x1 ZGU9UEFUSC9pbmNsdWRlIHBsdXMKICAgICAgICAgICAgICAgICAgICAgICAg ICAgLS13aXRoLW1wYy1saWI9UEFUSC9saWIKQEAgLTE5MjEsNiArMTkyNSw1 MiBAQCBmaQogICBhc19mbl9zZXRfc3RhdHVzICRhY19yZXR2YWwKIAogfSAj IGFjX2ZuX2NfdHJ5X2xpbmsKKworIyBhY19mbl9jX2NoZWNrX2RlY2wgTElO RU5PIFNZTUJPTCBWQVIgSU5DTFVERVMKKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFRlc3RzIHdoZXRoZXIg U1lNQk9MIGlzIGRlY2xhcmVkIGluIElOQ0xVREVTLCBzZXR0aW5nIGNhY2hl IHZhcmlhYmxlIFZBUgorIyBhY2NvcmRpbmdseS4KK2FjX2ZuX2NfY2hlY2tf ZGVjbCAoKQoreworICBhc19saW5lbm89JHthc19saW5lbm8tIiQxIn0gYXNf bGluZW5vX3N0YWNrPWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5vX3N0YWNr CisgIGFzX2RlY2xfbmFtZT1gZWNobyAkMnxzZWQgJ3MvICooLiovLydgCisg IGFzX2RlY2xfdXNlPWBlY2hvICQyfHNlZCAtZSAncy8oLygoLycgLWUgJ3Mv KS8pIDAmLycgLWUgJ3MvLC8pIDAmICgvZydgCisgIHsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciAk YXNfZGVjbF9uYW1lIGlzIGRlY2xhcmVkIiA+JjUKKyRhc19lY2hvX24gImNo ZWNraW5nIHdoZXRoZXIgJGFzX2RlY2xfbmFtZSBpcyBkZWNsYXJlZC4uLiAi ID4mNjsgfQoraWYgZXZhbCBcJHskMys6fSBmYWxzZTsgdGhlbiA6CisgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CitlbHNlCisgIGNhdCBjb25mZGVm cy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKy8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KKyQ0CitpbnQKK21haW4gKCkKK3sKKyNpZm5kZWYgJGFz X2RlY2xfbmFtZQorI2lmZGVmIF9fY3BsdXNwbHVzCisgICh2b2lkKSAkYXNf ZGVjbF91c2U7CisjZWxzZQorICAodm9pZCkgJGFzX2RlY2xfbmFtZTsKKyNl bmRpZgorI2VuZGlmCisKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgor aWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorICBl dmFsICIkMz15ZXMiCitlbHNlCisgIGV2YWwgIiQzPW5vIgorZmkKK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QuJGFjX2V4dAorZmkKK2V2YWwgYWNfcmVzPVwkJDMKKwkgICAgICAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6 ICRhY19yZXMiID4mNQorJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQorICBl dmFsICRhc19saW5lbm9fc3RhY2s7ICR7YXNfbGluZW5vX3N0YWNrOis6fSB1 bnNldCBhc19saW5lbm8KKworfSAjIGFjX2ZuX2NfY2hlY2tfZGVjbAogY2F0 ID5jb25maWcubG9nIDw8X0FDRU9GCiBUaGlzIGZpbGUgY29udGFpbnMgYW55 IG1lc3NhZ2VzIHByb2R1Y2VkIGJ5IGNvbXBpbGVycyB3aGlsZQogcnVubmlu ZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1h a2VzIGEgbWlzdGFrZS4KQEAgLTU0MzMsNiArNTQ4Myw5MiBAQCBnbXBsaWJz PSItbG1wYyAtbG1wZnIgLWxnbXAiCiBnbXBpbmM9CiBoYXZlX2dtcD1ubwog CisjIENoZWNrIGZvciBkZWJ1Z2luZm9kCisKKworIyBFbmFibGUgZGVidWdp bmZvZAorCisjIENoZWNrIHdoZXRoZXIgLS13aXRoLWRlYnVnaW5mb2Qgd2Fz IGdpdmVuLgoraWYgdGVzdCAiJHt3aXRoX2RlYnVnaW5mb2Qrc2V0fSIgPSBz ZXQ7IHRoZW4gOgorICB3aXRodmFsPSR3aXRoX2RlYnVnaW5mb2Q7CitlbHNl CisgIHdpdGhfZGVidWdpbmZvZD1hdXRvCitmaQorCit7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIg dG8gdXNlIGRlYnVnaW5mb2QiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcg d2hldGhlciB0byB1c2UgZGVidWdpbmZvZC4uLiAiID4mNjsgfQoreyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICR3 aXRoX2RlYnVnaW5mb2QiID4mNQorJGFzX2VjaG8gIiR3aXRoX2RlYnVnaW5m b2QiID4mNjsgfQorCitpZiB0ZXN0ICIke3dpdGhfZGVidWdpbmZvZH0iID0g bm87IHRoZW4KKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBXQVJOSU5HOiBkZWJ1Z2luZm9kIHN1cHBvcnQgZGlzYWJsZWQ7 IHNvbWUgZmVhdHVyZXMgbWF5IGJlIHVuYXZhaWxhYmxlLiIgPiY1CiskYXNf ZWNobyAiJGFzX21lOiBXQVJOSU5HOiBkZWJ1Z2luZm9kIHN1cHBvcnQgZGlz YWJsZWQ7IHNvbWUgZmVhdHVyZXMgbWF5IGJlIHVuYXZhaWxhYmxlLiIgPiYy O30KK2Vsc2UKKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBjaGVja2luZyBmb3IgZGVidWdpbmZvZF9iZWdpbiBpbiAtbGRl YnVnaW5mb2QiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGRlYnVn aW5mb2RfYmVnaW4gaW4gLWxkZWJ1Z2luZm9kLi4uICIgPiY2OyB9CitpZiAk e2FjX2N2X2xpYl9kZWJ1Z2luZm9kX2RlYnVnaW5mb2RfYmVnaW4rOn0gZmFs c2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxz ZQorICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCitMSUJTPSItbGRl YnVnaW5mb2QgICRMSUJTIgorY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+ Y29uZnRlc3QuJGFjX2V4dAorLyogZW5kIGNvbmZkZWZzLmguICAqLworCisv KiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9p ZCBhbiBlcnJvci4KKyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1h dGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQworICAgYnVpbHRpbiBhbmQg dGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5 LiAgKi8KKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIgorI2VuZGlm CitjaGFyIGRlYnVnaW5mb2RfYmVnaW4gKCk7CitpbnQKK21haW4gKCkKK3sK K3JldHVybiBkZWJ1Z2luZm9kX2JlZ2luICgpOworICA7CisgIHJldHVybiAw OworfQorX0FDRU9GCitpZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsg dGhlbiA6CisgIGFjX2N2X2xpYl9kZWJ1Z2luZm9kX2RlYnVnaW5mb2RfYmVn aW49eWVzCitlbHNlCisgIGFjX2N2X2xpYl9kZWJ1Z2luZm9kX2RlYnVnaW5m b2RfYmVnaW49bm8KK2ZpCitybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25m dGVzdC4kYWNfb2JqZXh0IFwKKyAgICBjb25mdGVzdCRhY19leGVleHQgY29u ZnRlc3QuJGFjX2V4dAorTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwor ZmkKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog cmVzdWx0OiAkYWNfY3ZfbGliX2RlYnVnaW5mb2RfZGVidWdpbmZvZF9iZWdp biIgPiY1CiskYXNfZWNobyAiJGFjX2N2X2xpYl9kZWJ1Z2luZm9kX2RlYnVn aW5mb2RfYmVnaW4iID4mNjsgfQoraWYgdGVzdCAieCRhY19jdl9saWJfZGVi dWdpbmZvZF9kZWJ1Z2luZm9kX2JlZ2luIiA9IHh5ZXM7IHRoZW4gOgorICBo YXZlX2RlYnVnaW5mb2RfbGliPXllcworZmkKKworICBhY19mbl9jX2NoZWNr X2RlY2wgIiRMSU5FTk8iICJkZWJ1Z2luZm9kX2JlZ2luIiAiYWNfY3ZfaGF2 ZV9kZWNsX2RlYnVnaW5mb2RfYmVnaW4iICIjaW5jbHVkZSA8ZWxmdXRpbHMv ZGVidWdpbmZvZC5oPgorIgoraWYgdGVzdCAieCRhY19jdl9oYXZlX2RlY2xf ZGVidWdpbmZvZF9iZWdpbiIgPSB4eWVzOyB0aGVuIDoKKyAgaGF2ZV9kZWJ1 Z2luZm9kX2g9eWVzCitmaQorCisgIGlmIHRlc3QgIngkaGF2ZV9kZWJ1Z2lu Zm9kX2xpYiIgPSAieHllcyIgLWEgXAorICAgICAgICAgICJ4JGhhdmVfZGVi dWdpbmZvZF9oIiA9ICJ4eWVzIjsgdGhlbgorCiskYXNfZWNobyAiI2RlZmlu ZSBIQVZFX0xJQkRFQlVHSU5GT0QgMSIgPj5jb25mZGVmcy5oCisKKyAgICBM SUJERUJVR0lORk9EPSItbGRlYnVnaW5mb2QiCisKKyAgZWxzZQorCisgICAg aWYgdGVzdCAiJHdpdGhfZGVidWdpbmZvZCIgPSB5ZXM7IHRoZW4KKyAgICAg IGFzX2ZuX2Vycm9yICQ/ICJkZWJ1Z2luZm9kIGlzIG1pc3Npbmcgb3IgdW51 c2FibGUiICIkTElORU5PIiA1CisgICAgZWxzZQorICAgICAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiBkZWJ1 Z2luZm9kIGlzIG1pc3Npbmcgb3IgdW51c2FibGU7IHNvbWUgZmVhdHVyZXMg bWF5IGJlIHVuYXZhaWxhYmxlLiIgPiY1CiskYXNfZWNobyAiJGFzX21lOiBX QVJOSU5HOiBkZWJ1Z2luZm9kIGlzIG1pc3Npbmcgb3IgdW51c2FibGU7IHNv bWUgZmVhdHVyZXMgbWF5IGJlIHVuYXZhaWxhYmxlLiIgPiYyO30KKyAgICBm aQorICBmaQorZmkKKworCiAjIFNwZWNpZnkgYSBsb2NhdGlvbiBmb3IgbXBj CiAjIGNoZWNrIGZvciB0aGlzIGZpcnN0IHNvIGl0IGVuZHMgdXAgb24gdGhl IGxpbmsgbGluZSBiZWZvcmUgbXBmci4KIApAQCAtNTU4Nyw4ICs1NzIzLDcg QEAgaWYgdGVzdCAtZCAke3NyY2Rpcn0vZ2NjICYmIHRlc3QgIngkaGF2ZV9n bXAiID0geG5vOyB0aGVuCiAgICMgQ2hlY2sgZm9yIHRoZSByZWNvbW1lbmRl ZCBhbmQgcmVxdWlyZWQgdmVyc2lvbnMgb2YgR01QLgogICB7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciB0 aGUgY29ycmVjdCB2ZXJzaW9uIG9mIGdtcC5oIiA+JjUKICRhc19lY2hvX24g ImNoZWNraW5nIGZvciB0aGUgY29ycmVjdCB2ZXJzaW9uIG9mIGdtcC5oLi4u ICIgPiY2OyB9Ci0KLWNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0 ZXN0LiRhY19leHQKKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29u ZnRlc3QuJGFjX2V4dAogLyogZW5kIGNvbmZkZWZzLmguICAqLwogI2luY2x1 ZGUgImdtcC5oIgogaW50CmRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9j b25maWd1cmUuYWMKaW5kZXggNzQzM2JhZGMyMS4uNTQ0ZmFiM2QyMCAxMDA2 NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAt MjMsNiArMjMsNyBAQCBtNF9pbmNsdWRlKGNvbmZpZy9hY3gubTQpCiBtNF9p bmNsdWRlKGNvbmZpZy9vdmVycmlkZS5tNCkKIG00X2luY2x1ZGUoY29uZmln L3Byb2dpbnN0YWxsLm00KQogbTRfaW5jbHVkZShjb25maWcvZWxmLm00KQor bTRfaW5jbHVkZShjb25maWcvZGVidWdpbmZvZC5tNCkKIG00X2luY2x1ZGUo W2xpYnRvb2wubTRdKQogbTRfaW5jbHVkZShbbHRvcHRpb25zLm00XSkKIG00 X2luY2x1ZGUoW2x0c3VnYXIubTRdKQpAQCAtMTM2Myw2ICsxMzY0LDkgQEAg Z21wbGlicz0iLWxtcGMgLWxtcGZyIC1sZ21wIgogZ21waW5jPQogaGF2ZV9n bXA9bm8KIAorIyBDaGVjayBmb3IgZGVidWdpbmZvZAorQUNfREVCVUdJTkZP RAorCiAjIFNwZWNpZnkgYSBsb2NhdGlvbiBmb3IgbXBjCiAjIGNoZWNrIGZv ciB0aGlzIGZpcnN0IHNvIGl0IGVuZHMgdXAgb24gdGhlIGxpbmsgbGluZSBi ZWZvcmUgbXBmci4KIEFDX0FSR19XSVRIKG1wYywKZGlmZiAtLWdpdCBhL2dk Yi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5pbgppbmRleCAwYmM4MTQy ZDJhLi5hZWEyMTZjNWQ3IDEwMDY0NAotLS0gYS9nZGIvTWFrZWZpbGUuaW4K KysrIGIvZ2RiL01ha2VmaWxlLmluCkBAIC0yMjAsNiArMjIwLDkgQEAgSU5U TCA9IEBMSUJJTlRMQAogSU5UTF9ERVBTID0gQExJQklOVExfREVQQAogSU5U TF9DRkxBR1MgPSBASU5DSU5UTEAKIAorIyBXaGVyZSBpcyB0aGUgZGVidWdp bmZvZCBsaWJyYXJ5LCBpZiBhbnk/CitMSUJERUJVR0lORk9EID0gQExJQkRF QlVHSU5GT0RACisKICMgV2hlcmUgaXMgdGhlIElDT05WIGxpYnJhcnk/ICBU aGlzIHdpbGwgYmUgZW1wdHkgaWYgaW4gbGliYyBvciBub3QgYXZhaWxhYmxl LgogTElCSUNPTlYgPSBATElCSUNPTlZACiAKQEAgLTYxMiw3ICs2MTUsNyBA QCBDTElCUyA9ICQoU0lNKSAkKFJFQURMSU5FKSAkKE9QQ09ERVMpICQoQkZE KSAkKExJQkNURikgJChaTElCKSBcCiAJQExJQlNAIEBHVUlMRV9MSUJTQCBA UFlUSE9OX0xJQlNAIFwKIAkkKExJQkVYUEFUKSAkKExJQkxaTUEpICQoTElC QkFCRUxUUkFDRSkgJChMSUJJUFQpIFwKIAkkKExJQklCRVJUWSkgJChXSU4z MkxJQlMpICQoTElCR05VKSAkKExJQklDT05WKSAkKExJQk1QRlIpIFwKLQkk KFNSQ0hJR0hfTElCUykgJChMSUJYWEhBU0gpICQoUFRIUkVBRF9MSUJTKQor CSQoU1JDSElHSF9MSUJTKSAkKExJQlhYSEFTSCkgJChQVEhSRUFEX0xJQlMp ICQoTElCREVCVUdJTkZPRCkKIENERVBTID0gJChOQVRfQ0RFUFMpICQoU0lN KSAkKEJGRCkgJChSRUFETElORV9ERVBTKSAkKExJQkNURikgXAogCSQoT1BD T0RFUykgJChJTlRMX0RFUFMpICQoTElCSUJFUlRZKSAkKENPTkZJR19ERVBT KSAkKExJQkdOVSkKIApkaWZmIC0tZ2l0IGEvZ2RiL05FV1MgYi9nZGIvTkVX UwppbmRleCA4NDA1YmQwNjMyLi45MDM5ZTIyNzUzIDEwMDY0NAotLS0gYS9n ZGIvTkVXUworKysgYi9nZGIvTkVXUwpAQCAtMyw2ICszLDE1IEBACiAKICoq KiBDaGFuZ2VzIHNpbmNlIEdEQiA5CiAKKyogR0RCIG5vdyBzdXBwb3J0cyBk ZWJ1Z2luZm9kLCBhbiBIVFRQIHNlcnZlciBmb3IgZGlzdHJpYnV0aW5nCisg IEVMRi9EV0FSRiBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gYXMgd2VsbCBhcyBz b3VyY2UgY29kZS4gV2hlbiBidWlsdCB3aXRoCisgIGRlYnVnaW5mb2QsIEdE QiBjYW4gYXV0b21hdGljYWxseSBxdWVyeSBkZWJ1Z2luZm9kIHNlcnZlcnMg Zm9yIHRoZQorICBzZXBhcmF0ZSBkZWJ1ZyBmaWxlcyBhbmQgc291cmNlIGNv ZGUgb2YgdGhlIGV4ZWN1dGFibGUgYmVpbmcgZGVidWdnZWQuCisgIFRvIGJ1 aWxkIEdEQiB3aXRoIGRlYnVnaW5mb2QsIHBhc3MgLS13aXRoLWRlYnVnaW5m b2QgdG8gY29uZmlndXJlLgorICBUaGlzIHJlcXVpcmVzIGxpYmRlYnVnaW5m b2QsIHRoZSBkZWJ1Z2luZm9kIGNsaWVudCBsaWJyYXJ5LgorICBkZWJ1Z2lu Zm9kIGlzIGRpc3RyaWJ1dGVkIHdpdGggZWxmdXRpbHMsIHN0YXJ0aW5nIHdp dGggdmVyc2lvbiAwLjE3OC4KKyAgWW91IGNhbiBnZXQgdGhlIGxhdGVzdCB2 ZXJzaW9uIGZyb20gaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9lbGZ1dGlscy4K KwogKiBEZWJ1Z2dpbmcgTVMtV2luZG93cyBwcm9jZXNzZXMgbm93IHNldHMg JF9leGl0c2lnbmFsIHdoZW4gdGhlCiAgIGluZmVyaW9yIGlzIHRlcm1pbmF0 ZWQgYnkgYSBzaWduYWwsIGluc3RlYWQgb2Ygc2V0dGluZyAkX2V4aXRjb2Rl LgogCmRpZmYgLS1naXQgYS9nZGIvY29uZmlnLmluIGIvZ2RiL2NvbmZpZy5p bgppbmRleCBjYjg4NmJhOGUxLi41OTM5YjhlNDM2IDEwMDY0NAotLS0gYS9n ZGIvY29uZmlnLmluCisrKyBiL2dkYi9jb25maWcuaW4KQEAgLTIyNyw2ICsy MjcsOSBAQAogLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBiYWJlbHRyYWNl IGxpYnJhcnkuICovCiAjdW5kZWYgSEFWRV9MSUJCQUJFTFRSQUNFCiAKKy8q IERlZmluZSB0byAxIGlmIGRlYnVnaW5mb2QgaXMgZW5hYmxlZC4gKi8KKyN1 bmRlZiBIQVZFX0xJQkRFQlVHSU5GT0QKKwogLyogRGVmaW5lIGlmIHlvdSBo YXZlIHRoZSBleHBhdCBsaWJyYXJ5LiAqLwogI3VuZGVmIEhBVkVfTElCRVhQ QVQKIApkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZSBiL2dkYi9jb25maWd1 cmUKaW5kZXggYjU3MmQ0MTRjYS4uZGVmYzY3NDMzNyAxMDA3NTUKLS0tIGEv Z2RiL2NvbmZpZ3VyZQorKysgYi9nZGIvY29uZmlndXJlCkBAIC03NTgsNiAr NzU4LDcgQEAgUkVQT1JUX0JVR1NfVEVYSQogUkVQT1JUX0JVR1NfVE8KIFBL R1ZFUlNJT04KIENPREVTSUdOX0NFUlQKK0xJQkRFQlVHSU5GT0QKIEhBVkVf TkFUSVZFX0dDT1JFX1RBUkdFVAogVEFSR0VUX09CUwogc3ViZGlycwpAQCAt ODY5LDYgKzg3MCw3IEBAIGVuYWJsZV82NF9iaXRfYmZkCiBlbmFibGVfZ2Ri bWkKIGVuYWJsZV90dWkKIGVuYWJsZV9nZGJ0aword2l0aF9kZWJ1Z2luZm9k CiB3aXRoX2xpYnVud2luZF9pYTY0CiB3aXRoX2N1cnNlcwogZW5hYmxlX3By b2ZpbGluZwpAQCAtMTU5OCw2ICsxNjAwLDggQEAgT3B0aW9uYWwgUGFja2Fn ZXM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgIFstLXdpdGgtYXV0by1s b2FkLWRpcl0KICAgLS13aXRob3V0LWF1dG8tbG9hZC1zYWZlLXBhdGgKICAg ICAgICAgICAgICAgICAgICAgICAgICAgZG8gbm90IHJlc3RyaWN0IGF1dG8t bG9hZGVkIGZpbGVzIGxvY2F0aW9ucworICAtLXdpdGgtZGVidWdpbmZvZCAg ICAgICBFbmFibGUgZGVidWdpbmZvIGxvb2t1cHMgd2l0aCBkZWJ1Z2luZm9k CisgICAgICAgICAgICAgICAgICAgICAgICAgIChhdXRvL3llcy9ubykKICAg LS13aXRoLWxpYnVud2luZC1pYTY0ICAgdXNlIGxpYnVud2luZCBmcmFtZSB1 bndpbmRpbmcgZm9yIGlhNjQgdGFyZ2V0cwogICAtLXdpdGgtY3Vyc2VzICAg ICAgICAgICB1c2UgdGhlIGN1cnNlcyBsaWJyYXJ5IGluc3RlYWQgb2YgdGhl IHRlcm1jYXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlicmFyeQpA QCAtMjI1MSw2ICsyMjU1LDUyIEBAIHJtIC1mIGNvbmZ0ZXN0LnZhbAogCiB9 ICMgYWNfZm5fY19jb21wdXRlX2ludAogCisjIGFjX2ZuX2NfY2hlY2tfZGVj bCBMSU5FTk8gU1lNQk9MIFZBUiBJTkNMVURFUworIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVGVzdHMgd2hl dGhlciBTWU1CT0wgaXMgZGVjbGFyZWQgaW4gSU5DTFVERVMsIHNldHRpbmcg Y2FjaGUgdmFyaWFibGUgVkFSCisjIGFjY29yZGluZ2x5LgorYWNfZm5fY19j aGVja19kZWNsICgpCit7CisgIGFzX2xpbmVubz0ke2FzX2xpbmVuby0iJDEi fSBhc19saW5lbm9fc3RhY2s9YXNfbGluZW5vX3N0YWNrPSRhc19saW5lbm9f c3RhY2sKKyAgYXNfZGVjbF9uYW1lPWBlY2hvICQyfHNlZCAncy8gKiguKi8v J2AKKyAgYXNfZGVjbF91c2U9YGVjaG8gJDJ8c2VkIC1lICdzLygvKCgvJyAt ZSAncy8pLykgMCYvJyAtZSAncy8sLykgMCYgKC9nJ2AKKyAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0 aGVyICRhc19kZWNsX25hbWUgaXMgZGVjbGFyZWQiID4mNQorJGFzX2VjaG9f biAiY2hlY2tpbmcgd2hldGhlciAkYXNfZGVjbF9uYW1lIGlzIGRlY2xhcmVk Li4uICIgPiY2OyB9CitpZiBldmFsIFwkeyQzKzp9IGZhbHNlOyB0aGVuIDoK KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgY2F0IGNv bmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5k IGNvbmZkZWZzLmguICAqLworJDQKK2ludAorbWFpbiAoKQoreworI2lmbmRl ZiAkYXNfZGVjbF9uYW1lCisjaWZkZWYgX19jcGx1c3BsdXMKKyAgKHZvaWQp ICRhc19kZWNsX3VzZTsKKyNlbHNlCisgICh2b2lkKSAkYXNfZGVjbF9uYW1l OworI2VuZGlmCisjZW5kaWYKKworICA7CisgIHJldHVybiAwOworfQorX0FD RU9GCitpZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6 CisgIGV2YWwgIiQzPXllcyIKK2Vsc2UKKyAgZXZhbCAiJDM9bm8iCitmaQor cm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBj b25mdGVzdC4kYWNfZXh0CitmaQorZXZhbCBhY19yZXM9XCQkMworCSAgICAg ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogJGFjX3JlcyIgPiY1CiskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9 CisgIGV2YWwgJGFzX2xpbmVub19zdGFjazsgJHthc19saW5lbm9fc3RhY2s6 Kzp9IHVuc2V0IGFzX2xpbmVubworCit9ICMgYWNfZm5fY19jaGVja19kZWNs CisKICMgYWNfZm5fY19jaGVja19mdW5jIExJTkVOTyBGVU5DIFZBUgogIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIFRlc3RzIHdo ZXRoZXIgRlVOQyBleGlzdHMsIHNldHRpbmcgdGhlIGNhY2hlIHZhcmlhYmxl IFZBUiBhY2NvcmRpbmdseQpAQCAtMjQyOSw1MiArMjQ3OSw2IEBAICRhc19l Y2hvICIkYWNfcmVzIiA+JjY7IH0KIAogfSAjIGFjX2ZuX2NfY2hlY2tfdHlw ZQogCi0jIGFjX2ZuX2NfY2hlY2tfZGVjbCBMSU5FTk8gU1lNQk9MIFZBUiBJ TkNMVURFUwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSMgVGVzdHMgd2hldGhlciBTWU1CT0wgaXMgZGVjbGFy ZWQgaW4gSU5DTFVERVMsIHNldHRpbmcgY2FjaGUgdmFyaWFibGUgVkFSCi0j IGFjY29yZGluZ2x5LgotYWNfZm5fY19jaGVja19kZWNsICgpCi17Ci0gIGFz X2xpbmVubz0ke2FzX2xpbmVuby0iJDEifSBhc19saW5lbm9fc3RhY2s9YXNf bGluZW5vX3N0YWNrPSRhc19saW5lbm9fc3RhY2sKLSAgYXNfZGVjbF9uYW1l PWBlY2hvICQyfHNlZCAncy8gKiguKi8vJ2AKLSAgYXNfZGVjbF91c2U9YGVj aG8gJDJ8c2VkIC1lICdzLygvKCgvJyAtZSAncy8pLykgMCYvJyAtZSAncy8s LykgMCYgKC9nJ2AKLSAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyICRhc19kZWNsX25hbWUgaXMg ZGVjbGFyZWQiID4mNQotJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAk YXNfZGVjbF9uYW1lIGlzIGRlY2xhcmVkLi4uICIgPiY2OyB9Ci1pZiBldmFs IFwkeyQzKzp9IGZhbHNlOyB0aGVuIDoKLSAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKLWVsc2UKLSAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+ Y29uZnRlc3QuJGFjX2V4dAotLyogZW5kIGNvbmZkZWZzLmguICAqLwotJDQK LWludAotbWFpbiAoKQotewotI2lmbmRlZiAkYXNfZGVjbF9uYW1lCi0jaWZk ZWYgX19jcGx1c3BsdXMKLSAgKHZvaWQpICRhc19kZWNsX3VzZTsKLSNlbHNl Ci0gICh2b2lkKSAkYXNfZGVjbF9uYW1lOwotI2VuZGlmCi0jZW5kaWYKLQot ICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1pZiBhY19mbl9jX3RyeV9j b21waWxlICIkTElORU5PIjsgdGhlbiA6Ci0gIGV2YWwgIiQzPXllcyIKLWVs c2UKLSAgZXZhbCAiJDM9bm8iCi1maQotcm0gLWYgY29yZSBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQot ZXZhbCBhY19yZXM9XCQkMwotCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0k YXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0gIGV2YWwgJGFzX2xpbmVub19z dGFjazsgJHthc19saW5lbm9fc3RhY2s6Kzp9IHVuc2V0IGFzX2xpbmVubwot Ci19ICMgYWNfZm5fY19jaGVja19kZWNsCi0KICMgYWNfZm5fY3h4X3RyeV9s aW5rIExJTkVOTwogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIFRy eSB0byBsaW5rIGNvbmZ0ZXN0LiRhY19leHQsIGFuZCByZXR1cm4gd2hldGhl ciB0aGlzIHN1Y2NlZWRlZC4KQEAgLTY4MjYsNiArNjgzMCw5MSBAQCBlc2Fj CiAKICMgTGlidW53aW5kIHN1cHBvcnQgZm9yIGlhNjQuCiAKKyMgQ2hlY2sg Zm9yIGRlYnVnaW5mb2QKKworIyBFbmFibGUgZGVidWdpbmZvZAorCisjIENo ZWNrIHdoZXRoZXIgLS13aXRoLWRlYnVnaW5mb2Qgd2FzIGdpdmVuLgoraWYg dGVzdCAiJHt3aXRoX2RlYnVnaW5mb2Qrc2V0fSIgPSBzZXQ7IHRoZW4gOgor ICB3aXRodmFsPSR3aXRoX2RlYnVnaW5mb2Q7CitlbHNlCisgIHdpdGhfZGVi dWdpbmZvZD1hdXRvCitmaQorCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdG8gdXNlIGRlYnVn aW5mb2QiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0byB1 c2UgZGVidWdpbmZvZC4uLiAiID4mNjsgfQoreyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICR3aXRoX2RlYnVnaW5m b2QiID4mNQorJGFzX2VjaG8gIiR3aXRoX2RlYnVnaW5mb2QiID4mNjsgfQor CitpZiB0ZXN0ICIke3dpdGhfZGVidWdpbmZvZH0iID0gbm87IHRoZW4KKyAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJO SU5HOiBkZWJ1Z2luZm9kIHN1cHBvcnQgZGlzYWJsZWQ7IHNvbWUgZmVhdHVy ZXMgbWF5IGJlIHVuYXZhaWxhYmxlLiIgPiY1CiskYXNfZWNobyAiJGFzX21l OiBXQVJOSU5HOiBkZWJ1Z2luZm9kIHN1cHBvcnQgZGlzYWJsZWQ7IHNvbWUg ZmVhdHVyZXMgbWF5IGJlIHVuYXZhaWxhYmxlLiIgPiYyO30KK2Vsc2UKKyAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVj a2luZyBmb3IgZGVidWdpbmZvZF9iZWdpbiBpbiAtbGRlYnVnaW5mb2QiID4m NQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGRlYnVnaW5mb2RfYmVnaW4g aW4gLWxkZWJ1Z2luZm9kLi4uICIgPiY2OyB9CitpZiAke2FjX2N2X2xpYl9k ZWJ1Z2luZm9kX2RlYnVnaW5mb2RfYmVnaW4rOn0gZmFsc2U7IHRoZW4gOgor ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBhY19jaGVj a19saWJfc2F2ZV9MSUJTPSRMSUJTCitMSUJTPSItbGRlYnVnaW5mb2QgICRM SUJTIgorY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFj X2V4dAorLyogZW5kIGNvbmZkZWZzLmguICAqLworCisvKiBPdmVycmlkZSBh bnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4K KyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1 cm4gdHlwZSBvZiBhIEdDQworICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJn dW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KKyNpZmRl ZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIgorI2VuZGlmCitjaGFyIGRlYnVn aW5mb2RfYmVnaW4gKCk7CitpbnQKK21haW4gKCkKK3sKK3JldHVybiBkZWJ1 Z2luZm9kX2JlZ2luICgpOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9G CitpZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6CisgIGFj X2N2X2xpYl9kZWJ1Z2luZm9kX2RlYnVnaW5mb2RfYmVnaW49eWVzCitlbHNl CisgIGFjX2N2X2xpYl9kZWJ1Z2luZm9kX2RlYnVnaW5mb2RfYmVnaW49bm8K K2ZpCitybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IFwKKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4 dAorTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUworZmkKK3sgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNf Y3ZfbGliX2RlYnVnaW5mb2RfZGVidWdpbmZvZF9iZWdpbiIgPiY1CiskYXNf ZWNobyAiJGFjX2N2X2xpYl9kZWJ1Z2luZm9kX2RlYnVnaW5mb2RfYmVnaW4i ID4mNjsgfQoraWYgdGVzdCAieCRhY19jdl9saWJfZGVidWdpbmZvZF9kZWJ1 Z2luZm9kX2JlZ2luIiA9IHh5ZXM7IHRoZW4gOgorICBoYXZlX2RlYnVnaW5m b2RfbGliPXllcworZmkKKworICBhY19mbl9jX2NoZWNrX2RlY2wgIiRMSU5F Tk8iICJkZWJ1Z2luZm9kX2JlZ2luIiAiYWNfY3ZfaGF2ZV9kZWNsX2RlYnVn aW5mb2RfYmVnaW4iICIjaW5jbHVkZSA8ZWxmdXRpbHMvZGVidWdpbmZvZC5o PgorIgoraWYgdGVzdCAieCRhY19jdl9oYXZlX2RlY2xfZGVidWdpbmZvZF9i ZWdpbiIgPSB4eWVzOyB0aGVuIDoKKyAgaGF2ZV9kZWJ1Z2luZm9kX2g9eWVz CitmaQorCisgIGlmIHRlc3QgIngkaGF2ZV9kZWJ1Z2luZm9kX2xpYiIgPSAi eHllcyIgLWEgXAorICAgICAgICAgICJ4JGhhdmVfZGVidWdpbmZvZF9oIiA9 ICJ4eWVzIjsgdGhlbgorCiskYXNfZWNobyAiI2RlZmluZSBIQVZFX0xJQkRF QlVHSU5GT0QgMSIgPj5jb25mZGVmcy5oCisKKyAgICBMSUJERUJVR0lORk9E PSItbGRlYnVnaW5mb2QiCisKKyAgZWxzZQorCisgICAgaWYgdGVzdCAiJHdp dGhfZGVidWdpbmZvZCIgPSB5ZXM7IHRoZW4KKyAgICAgIGFzX2ZuX2Vycm9y ICQ/ICJkZWJ1Z2luZm9kIGlzIG1pc3Npbmcgb3IgdW51c2FibGUiICIkTElO RU5PIiA1CisgICAgZWxzZQorICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiBkZWJ1Z2luZm9kIGlzIG1p c3Npbmcgb3IgdW51c2FibGU7IHNvbWUgZmVhdHVyZXMgbWF5IGJlIHVuYXZh aWxhYmxlLiIgPiY1CiskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBkZWJ1 Z2luZm9kIGlzIG1pc3Npbmcgb3IgdW51c2FibGU7IHNvbWUgZmVhdHVyZXMg bWF5IGJlIHVuYXZhaWxhYmxlLiIgPiYyO30KKyAgICBmaQorICBmaQorZmkK KworCiAKICMgQ2hlY2sgd2hldGhlciAtLXdpdGgtbGlidW53aW5kLWlhNjQg d2FzIGdpdmVuLgogaWYgdGVzdCAiJHt3aXRoX2xpYnVud2luZF9pYTY0K3Nl dH0iID0gc2V0OyB0aGVuIDoKZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUu YWMgYi9nZGIvY29uZmlndXJlLmFjCmluZGV4IGNhMGRhNzk4MGMuLjg5ZWE2 NGFlY2EgMTAwNjQ0Ci0tLSBhL2dkYi9jb25maWd1cmUuYWMKKysrIGIvZ2Ri L2NvbmZpZ3VyZS5hYwpAQCAtMTgsNiArMTgsOCBAQCBkbmwgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCiAKIGRubCBQcm9jZXNzIHRoaXMgZmlsZSB3aXRo IGF1dG9jb25mIHRvIHByb2R1Y2UgYSBjb25maWd1cmUgc2NyaXB0LgogCitt NF9pbmNsdWRlKFsuLi9jb25maWcvZGVidWdpbmZvZC5tNF0pCisKIEFDX0lO SVQobWFpbi5jKQogQUNfQ09ORklHX0hFQURFUlMoY29uZmlnLmg6Y29uZmln LmluLCBbZWNobyA+IHN0YW1wLWhdKQogQU1fTUFJTlRBSU5FUl9NT0RFCkBA IC0zMjUsNiArMzI3LDkgQEAgZXNhYwogCiAjIExpYnVud2luZCBzdXBwb3J0 IGZvciBpYTY0LgogCisjIENoZWNrIGZvciBkZWJ1Z2luZm9kCitBQ19ERUJV R0lORk9ECisKIEFDX0FSR19XSVRIKGxpYnVud2luZC1pYTY0LAogQVNfSEVM UF9TVFJJTkcoWy0td2l0aC1saWJ1bndpbmQtaWE2NF0sCiAJICAgICAgIFt1 c2UgbGlidW53aW5kIGZyYW1lIHVud2luZGluZyBmb3IgaWE2NCB0YXJnZXRz XSksLApkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGIudGV4aW5mbyBiL2dkYi9k b2MvZ2RiLnRleGluZm8KaW5kZXggNjUxMzdiMTczOS4uODkyOWRjNjU0MSAx MDA2NDQKLS0tIGEvZ2RiL2RvYy9nZGIudGV4aW5mbworKysgYi9nZGIvZG9j L2dkYi50ZXhpbmZvCkBAIC0zNzcwNSw2ICszNzcwNSwxNCBAQCBzdXBwb3J0 ZWQpLgogVXNlIHRoZSBjdXJzZXMgbGlicmFyeSBpbnN0ZWFkIG9mIHRoZSB0 ZXJtY2FwIGxpYnJhcnksIGZvciB0ZXh0LW1vZGUKIHRlcm1pbmFsIG9wZXJh dGlvbnMuCiAKK0BpdGVtIC0td2l0aC1kZWJ1Z2luZm9kCitCdWlsZCBAdmFs dWV7R0RCTn0gd2l0aCBsaWJkZWJ1Z2luZm9kLCB0aGUgZGVidWdpbmZvZCBj bGllbnQgbGlicmFyeS4KK1VzZWQgdG8gYXV0b21hdGljYWxseSBmZXRjaCBz b3VyY2UgZmlsZXMgYW5kIHNlcGFyYXRlIGRlYnVnIGZpbGVzIGZyb20KK2Rl YnVnaW5mb2Qgc2VydmVycyB1c2luZyB0aGUgYXNzb2NpYXRlZCBleGVjdXRh YmxlJ3MgYnVpbGQgSUQuIEVuYWJsZWQKK2J5IGRlZmF1bHQgaWYgbGliZGVi dWdpbmZvZCBpcyBpbnN0YWxsZWQgYW5kIGZvdW5kIGF0IGNvbmZpZ3VyZSB0 aW1lLgorZGVidWdpbmZvZCBpcyBwYWNrYWdlZCB3aXRoIGVsZnV0aWxzLCBz dGFydGluZyB3aXRoIHZlcnNpb24gMC4xNzguIFlvdQorY2FuIGdldCB0aGUg bGF0ZXN0IHZlcnNpb24gZnJvbSBgaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9l bGZ1dGlscy8nLgorCiBAaXRlbSAtLXdpdGgtbGlidW53aW5kLWlhNjQKIFVz ZSB0aGUgbGlidW53aW5kIGxpYnJhcnkgZm9yIHVud2luZGluZyBmdW5jdGlv biBjYWxsIHN0YWNrIG9uIGlhNjQKIHRhcmdldCBwbGF0Zm9ybXMuICBTZWUg aHR0cDovL3d3dy5ub25nbnUub3JnL2xpYnVud2luZC9pbmRleC5odG1sIGZv cgpkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJy ZWFkLmMKaW5kZXggMDQ5NzlmM2QxMi4uZjljMDZiOGNjNiAxMDA2NDQKLS0t IGEvZ2RiL2R3YXJmMnJlYWQuYworKysgYi9nZGIvZHdhcmYycmVhZC5jCkBA IC03Nyw2ICs3Nyw5IEBACiAjaW5jbHVkZSAiZ2Ric3VwcG9ydC9zZWxmdGVz dC5oIgogI2luY2x1ZGUgInJ1c3QtbGFuZy5oIgogI2luY2x1ZGUgImdkYnN1 cHBvcnQvcGF0aHN0dWZmLmgiCisjaWYgSEFWRV9MSUJERUJVR0lORk9ECisj aW5jbHVkZSAiZWxmdXRpbHMvZGVidWdpbmZvZC5oIgorI2VuZGlmCiAKIC8q IFdoZW4gPT0gMSwgcHJpbnQgYmFzaWMgaGlnaCBsZXZlbCB0cmFjaW5nIG1l c3NhZ2VzLgogICAgV2hlbiA+IDEsIGJlIG1vcmUgdmVyYm9zZS4KQEAgLTI3 MDgsNiArMjcxMSw0NSBAQCBkd2FyZjJfZ2V0X2R3el9maWxlIChzdHJ1Y3Qg ZHdhcmYyX3Blcl9vYmpmaWxlICpkd2FyZjJfcGVyX29iamZpbGUpCiAgIGlm IChkd3pfYmZkID09IE5VTEwpCiAgICAgZHd6X2JmZCA9IGJ1aWxkX2lkX3Rv X2RlYnVnX2JmZCAoYnVpbGRpZF9sZW4sIGJ1aWxkaWQpOwogCisjaWYgSEFW RV9MSUJERUJVR0lORk9ECisgIGlmIChkd3pfYmZkID09IE5VTEwpCisgICAg eworICAgICAgLyogUXVlcnkgZGVidWdpbmZvZCBzZXJ2ZXJzIGZvciB0aGUg ZHd6IGZpbGUuICAqLworICAgICAgY2hhciAqYWx0X2ZpbGVuYW1lOworICAg ICAgZGVidWdpbmZvZF9jbGllbnQgKmNsaWVudDsKKworICAgICAgY2xpZW50 ID0gZGVidWdpbmZvZF9iZWdpbiAoKTsKKyAgICAgIGlmIChjbGllbnQgIT0g TlVMTCkKKyAgICAgICAgeworICAgICAgICAgIC8qIEFsbG93IGRlYnVnaW5m b2QgdG8gYWJvcnQgdGhlIGRvd25sb2FkIGlmIFNJR0lOVCBpcyByYWlzZWQu ICAqLworICAgICAgICAgIGRlYnVnaW5mb2Rfc2V0X3Byb2dyZXNzZm4oCisg ICAgICAgICAgICBjbGllbnQsCisgICAgICAgICAgICBbXSAoZGVidWdpbmZv ZF9jbGllbnQgKmMsIGxvbmcgYSwgbG9uZyBiKQorICAgICAgICAgICAgICB7 IHJldHVybiAxID8gY2hlY2tfcXVpdF9mbGFnICgpIDogMDsgfQorICAgICAg ICAgICk7CisKKyAgICAgICAgICAvKiBRdWVyeSBkZWJ1Z2luZm9kIHNlcnZl cnMgZm9yIHN5bWZpbGUuICAqLworICAgICAgICAgIHNjb3BlZF9mZCBmZCAo ZGVidWdpbmZvZF9maW5kX2RlYnVnaW5mbyAoY2xpZW50LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVp bGRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJ1aWxkaWRfbGVuLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFsdF9maWxlbmFt ZSkpOworICAgICAgICAgIGRlYnVnaW5mb2RfZW5kIChjbGllbnQpOworCisg ICAgICAgICAgaWYgKGZkLmdldCAoKSA+PSAwKQorICAgICAgICAgICAgewor ICAgICAgICAgICAgICAvKiBGaWxlIHN1Y2Nlc3NmdWxseSByZXRyaWV2ZWQg ZnJvbSBzZXJ2ZXIuICAqLworICAgICAgICAgICAgICBkd3pfYmZkID0gZ2Ri X2JmZF9vcGVuIChhbHRfZmlsZW5hbWUsIGdudXRhcmdldCwgLTEpOworCisg ICAgICAgICAgICAgIGlmIChkd3pfYmZkICE9IE5VTEwKKyAgICAgICAgICAg ICAgICAgICYmICFidWlsZF9pZF92ZXJpZnkgKGR3el9iZmQuZ2V0ICgpLCBi dWlsZGlkX2xlbiwgYnVpbGRpZCkpCisgICAgICAgICAgICAgICAgZHd6X2Jm ZC5yZXNldCAobnVsbHB0cik7CisKKyAgICAgICAgICAgICAgeGZyZWUgKGFs dF9maWxlbmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9 CisjZW5kaWYgLyogSEFWRV9MSUJERUJVR0lORk9EICovCisKICAgaWYgKGR3 el9iZmQgPT0gTlVMTCkKICAgICBlcnJvciAoXygiY291bGQgbm90IGZpbmQg Jy5nbnVfZGVidWdhbHRsaW5rJyBmaWxlIGZvciAlcyIpLAogCSAgIG9iamZp bGVfbmFtZSAoZHdhcmYyX3Blcl9vYmpmaWxlLT5vYmpmaWxlKSk7CmRpZmYg LS1naXQgYS9nZGIvZWxmcmVhZC5jIGIvZ2RiL2VsZnJlYWQuYwppbmRleCA2 MThlNGNkNTY2Li5mYmYyZTRkMzRmIDEwMDY0NAotLS0gYS9nZGIvZWxmcmVh ZC5jCisrKyBiL2dkYi9lbGZyZWFkLmMKQEAgLTQ5LDYgKzQ5LDEwIEBACiAj aW5jbHVkZSAibWRlYnVncmVhZC5oIgogI2luY2x1ZGUgImN0ZnJlYWQuaCIK ICNpbmNsdWRlICJnZGJzdXBwb3J0L2dkYl9zdHJpbmdfdmlldy5oIgorI2lu Y2x1ZGUgImdkYnN1cHBvcnQvc2NvcGVkX2ZkLmgiCisjaWYgSEFWRV9MSUJE RUJVR0lORk9ECisjaW5jbHVkZSA8ZWxmdXRpbHMvZGVidWdpbmZvZC5oPgor I2VuZGlmCiAKIC8qIEZvcndhcmQgZGVjbGFyYXRpb25zLiAgKi8KIGV4dGVy biBjb25zdCBzdHJ1Y3Qgc3ltX2ZucyBlbGZfc3ltX2Zuc19nZGJfaW5kZXg7 CkBAIC0xMzExLDggKzEzMTUsNDcgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3Ry dWN0IG9iamZpbGUgKm9iamZpbGUsIHN5bWZpbGVfYWRkX2ZsYWdzIHN5bWZp bGVfZmxhZ3MpCiAJICBzeW1ib2xfZmlsZV9hZGRfc2VwYXJhdGUgKGRlYnVn X2JmZC5nZXQgKCksIGRlYnVnZmlsZS5jX3N0ciAoKSwKIAkJCQkgICAgc3lt ZmlsZV9mbGFncywgb2JqZmlsZSk7CiAJfQotCWVsc2UKLQkgIGhhc19kd2Fy ZjIgPSBmYWxzZTsKKyAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAg IGhhc19kd2FyZjIgPSBmYWxzZTsKKworI2lmIEhBVkVfTElCREVCVUdJTkZP RAorICAgICAgICAgIGNvbnN0IHN0cnVjdCBiZmRfYnVpbGRfaWQgKmJ1aWxk X2lkOworICAgICAgICAgIGNoYXIgKnN5bWZpbGVfcGF0aDsKKyAgICAgICAg ICBkZWJ1Z2luZm9kX2NsaWVudCAqY2xpZW50OworCisgICAgICAgICAgY2xp ZW50ID0gZGVidWdpbmZvZF9iZWdpbiAoKTsKKyAgICAgICAgICBpZiAoY2xp ZW50ICE9IE5VTEwpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGJ1 aWxkX2lkID0gYnVpbGRfaWRfYmZkX2dldCAob2JqZmlsZS0+b2JmZCk7CisK KyAgICAgICAgICAgICAgLyogQWxsb3cgZGVidWdpbmZvZCB0byBhYm9ydCB0 aGUgZG93bmxvYWQgaWYgU0lHSU5UIGlzIHJhaXNlZC4gICovCisgICAgICAg ICAgICAgIGRlYnVnaW5mb2Rfc2V0X3Byb2dyZXNzZm4gKAorICAgICAgICAg ICAgICAgIGNsaWVudCwKKyAgICAgICAgICAgICAgICBbXSAoZGVidWdpbmZv ZF9jbGllbnQgKmMsIGxvbmcgYSwgbG9uZyBiKQorICAgICAgICAgICAgICAg ICAgeyByZXR1cm4gMSA/IGNoZWNrX3F1aXRfZmxhZyAoKSA6IDA7IH0KKyAg ICAgICAgICAgICAgKTsKKworICAgICAgICAgICAgICAvKiBRdWVyeSBkZWJ1 Z2luZm9kIHNlcnZlcnMgZm9yIHN5bWZpbGUuICAqLworICAgICAgICAgICAg ICBzY29wZWRfZmQgZmQgKGRlYnVnaW5mb2RfZmluZF9kZWJ1Z2luZm8gKGNs aWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBidWlsZF9pZC0+ZGF0YSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi dWlsZF9pZC0+c2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmc3ltZmlsZV9wYXRoKSk7Cisg ICAgICAgICAgICAgIGRlYnVnaW5mb2RfZW5kIChjbGllbnQpOworCisgICAg ICAgICAgICAgIGlmIChmZC5nZXQgKCkgPj0gMCkKKyAgICAgICAgICAgICAg ICB7CisgICAgICAgICAgICAgICAgICAvKiBGaWxlIHN1Y2Nlc3NmdWxseSBy ZXRyaWV2ZWQgZnJvbSBzZXJ2ZXIuICAqLworICAgICAgICAgICAgICAgICAg Z2RiX2JmZF9yZWZfcHRyIGRlYnVnX2JmZCAoc3ltZmlsZV9iZmRfb3BlbiAo c3ltZmlsZV9wYXRoKSk7CisKKyAgICAgICAgICAgICAgICAgIHN5bWJvbF9m aWxlX2FkZF9zZXBhcmF0ZSAoZGVidWdfYmZkLmdldCAoKSwgc3ltZmlsZV9w YXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzeW1maWxlX2ZsYWdzLCBvYmpmaWxlKTsKKyAgICAgICAgICAgICAg ICAgIHhmcmVlIChzeW1maWxlX3BhdGgpOworICAgICAgICAgICAgICAgICAg aGFzX2R3YXJmMiA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgfQorI2VuZGlmIC8qIExJQkRFQlVHSU5GT0QgKi8KKyAgICAgICAg fQogICAgIH0KIAogICAvKiBSZWFkIHRoZSBDVEYgc2VjdGlvbiBvbmx5IGlm IHRoZXJlIGlzIG5vIERXQVJGIGluZm8uICAqLwpkaWZmIC0tZ2l0IGEvZ2Ri L3NvdXJjZS5jIGIvZ2RiL3NvdXJjZS5jCmluZGV4IDFiYzk4ZDM3NmUuLjNj ZGQzMDZiOTkgMTAwNjQ0Ci0tLSBhL2dkYi9zb3VyY2UuYworKysgYi9nZGIv c291cmNlLmMKQEAgLTQ4LDYgKzQ4LDExIEBACiAjaW5jbHVkZSAic291cmNl LWNhY2hlLmgiCiAjaW5jbHVkZSAiY2xpL2NsaS1zdHlsZS5oIgogI2luY2x1 ZGUgIm9ic2VydmFibGUuaCIKKyNpbmNsdWRlICJidWlsZC1pZC5oIgorI2lm ZGVmIEhBVkVfTElCREVCVUdJTkZPRAorI2luY2x1ZGUgPGVsZnV0aWxzL2Rl YnVnaW5mb2QuaD4KKyNlbmRpZgorCiAKICNkZWZpbmUgT1BFTl9NT0RFIChP X1JET05MWSB8IE9fQklOQVJZKQogI2RlZmluZSBGRE9QRU5fTU9ERSBGT1BF Tl9SQgpAQCAtMTE1Myw2ICsxMTU4LDYyIEBAIG9wZW5fc291cmNlX2ZpbGUg KHN0cnVjdCBzeW10YWIgKnMpCiAgIHMtPmZ1bGxuYW1lID0gTlVMTDsKICAg c2NvcGVkX2ZkIGZkID0gZmluZF9hbmRfb3Blbl9zb3VyY2UgKHMtPmZpbGVu YW1lLCBTWU1UQUJfRElSTkFNRSAocyksCiAJCQkJICAgICAgICZmdWxsbmFt ZSk7CisKKyNpZiBIQVZFX0xJQkRFQlVHSU5GT0QKKyAgaWYgKGZkLmdldCAo KSA8IDApCisgICAgeworICAgICAgaWYgKFNZTVRBQl9DT01QVU5JVCAocykg IT0gTlVMTCkKKyAgICAgICAgeworICAgICAgICAgIGNvbnN0IHN0cnVjdCBi ZmRfYnVpbGRfaWQgKmJ1aWxkX2lkOworICAgICAgICAgIGNvbnN0IG9iamZp bGUgKm9mcCA9IENPTVBVTklUX09CSkZJTEUgKFNZTVRBQl9DT01QVU5JVCAo cykpOworCisgICAgICAgICAgc3RkOjpzdHJpbmcgc3JjcGF0aDsKKyAgICAg ICAgICBpZiAoSVNfRElSX1NFUEFSQVRPUiAocy0+ZmlsZW5hbWVbMF0pKQor ICAgICAgICAgICAgc3JjcGF0aCA9IHMtPmZpbGVuYW1lOworICAgICAgICAg IGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgc3JjcGF0aCA9 IFNZTVRBQl9ESVJOQU1FIChzKTsKKyAgICAgICAgICAgICAgc3JjcGF0aCAr PSBTTEFTSF9TVFJJTkc7CisgICAgICAgICAgICAgIHNyY3BhdGggKz0gcy0+ ZmlsZW5hbWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICBidWlsZF9p ZCA9IGJ1aWxkX2lkX2JmZF9nZXQgKG9mcC0+b2JmZCk7CisKKyAgICAgICAg ICAvKiBRdWVyeSBkZWJ1Z2luZm9kIGZvciB0aGUgc291cmNlIGZpbGUuICAq LworICAgICAgICAgIGlmIChidWlsZF9pZCAhPSBOVUxMKQorICAgICAgICAg ICAgeworICAgICAgICAgICAgICBjaGFyICpuYW1lX2luX2NhY2hlOworICAg ICAgICAgICAgICBkZWJ1Z2luZm9kX2NsaWVudCAqY2xpZW50OworCisgICAg ICAgICAgICAgIGNsaWVudCA9IGRlYnVnaW5mb2RfYmVnaW4gKCk7CisgICAg ICAgICAgICAgIGlmIChjbGllbnQgIT0gTlVMTCkKKyAgICAgICAgICAgICAg ICB7CisKKyAgICAgICAgICAgICAgICAgIC8qIEFsbG93IGRlYnVnaW5mb2Qg dG8gYWJvcnQgdGhlIGRvd25sb2FkIGlmIFNJR0lOVCBpcyByYWlzZWQuICAq LworICAgICAgICAgICAgICAgICAgZGVidWdpbmZvZF9zZXRfcHJvZ3Jlc3Nm bigKKyAgICAgICAgICAgICAgICAgICAgY2xpZW50LAorICAgICAgICAgICAg ICAgICAgICBbXSAoZGVidWdpbmZvZF9jbGllbnQgKmMsIGxvbmcgYSwgbG9u ZyBiKQorICAgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIDEgPyBjaGVj a19xdWl0X2ZsYWcgKCkgOiAwOyB9CisgICAgICAgICAgICAgICAgICApOwor CisgICAgICAgICAgICAgICAgICBzY29wZWRfZmQgc3JjX2ZkIChkZWJ1Z2lu Zm9kX2ZpbmRfc291cmNlIChjbGllbnQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWls ZF9pZC0+ZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkX2lkLT5zaXplLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3JjcGF0aC5jX3N0ciAoKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZuYW1lX2luX2NhY2hlKSk7CisgICAgICAgICAgICAgICAgICBkZWJ1 Z2luZm9kX2VuZCAoY2xpZW50KTsKKworICAgICAgICAgICAgICAgICAgaWYg KHNyY19mZC5nZXQgKCkgPj0gMCkKKyAgICAgICAgICAgICAgICAgICAgZnVs bG5hbWUucmVzZXQgKG5hbWVfaW5fY2FjaGUpOworCisgICAgICAgICAgICAg ICAgICBzLT5mdWxsbmFtZSA9IGZ1bGxuYW1lLnJlbGVhc2UgKCk7CisgICAg ICAgICAgICAgICAgICByZXR1cm4gc3JjX2ZkOworICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyNlbmRpZiAv KiBIQVZFX0xJQkRFQlVHSU5GT0QgKi8KKwogICBzLT5mdWxsbmFtZSA9IGZ1 bGxuYW1lLnJlbGVhc2UgKCk7CiAgIHJldHVybiBmZDsKIH0KZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmRlYnVnaW5mb2QvZmV0Y2hfc3JjX2Fu ZF9zeW1ib2xzLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmRlYnVnaW5mb2Qv ZmV0Y2hfc3JjX2FuZF9zeW1ib2xzLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwLi42ZDEzMTdiZmY3Ci0tLSAvZGV2L251bGwK KysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZGVidWdpbmZvZC9mZXRjaF9zcmNf YW5kX3N5bWJvbHMuZXhwCkBAIC0wLDAgKzEsMjIxIEBACisjIENvcHlyaWdo dCAyMDEwLTIwMTkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisK KyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCisKKyMgdGVzdCBkZWJ1Z2luZm9kIGZ1bmN0aW9u YWxpdHkKKworc2V0IHRlc3QgImRlYnVnaW5mb2QiCisKK3N0YW5kYXJkX3Rl c3RmaWxlIG1haW4uYworCitsb2FkX2xpYiBkd2FyZi5leHAKKworaWYgeyBb d2hpY2ggZGVidWdpbmZvZF0gPT0gMCB9IHsKKyAgICB1bnRlc3RlZCAiJHRl c3QgKGNhbm5vdCBmaW5kIGRlYnVnaW5mb2QpIgorICAgIHJldHVybiAtMQor fQorCitpZiB7IFt3aGljaCBjdXJsXSA9PSAwIH0geworICAgIHVudGVzdGVk ICIkdGVzdCAoY2Fubm90IGZpbmQgY3VybCkiCisgICAgcmV0dXJuIC0xCit9 CisKKyMgc2tpcCB0ZXN0aW5nIGlmIGdkYiB3YXMgbm90IGNvbmZpZ3VyZWQg d2l0aCBkZWJ1Z2luZm9kCitpZiB7IFtzdHJpbmcgZmlyc3QgIndpdGgtZGVi dWdpbmZvZCIgW2V4ZWMgJEdEQiAtLWNvbmZpZ3VyYXRpb25dXSA9PSAtMSB9 IHsKKyAgICB1bnRlc3RlZCAiJHRlc3QgKGdkYiBub3QgY29uZmlndXJlZCB3 aXRoIGRlYnVnaW5mb2QpIgorICAgIHJldHVybiAtMQorfQorCitzZXQgY2Fj aGUgW2ZpbGUgam9pbiBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUge31dICIuY2xp ZW50X2NhY2hlIl0KKworIyBtYWtlIHN1cmUgdGhlcmUgaXNuJ3QgYW4gb2xk IGNsaWVudCBjYWNoZSBseWluZyBhcm91bmQKK2ZpbGUgZGVsZXRlIC1mb3Jj ZSAkY2FjaGUKKworIyBtYWtlIGEgY29weSBzb3VyY2UgZmlsZSB0aGF0IHdl IGNhbiBtb3ZlIGFyb3VuZAoraWYgeyBbY2F0Y2gge2ZpbGUgY29weSAtZm9y Y2UgJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IFwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSB0 bXAtJHtzcmNmaWxlfV19XSAhPSAwIH0geworICAgIGVycm9yICIkdGVzdCAo Y3JlYXRlIHRlbXBvcmFyeSBmaWxlKSIKKyAgICByZXR1cm4gLTEKK30KKwor c2V0IHNvdXJjZXRtcCBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgdG1wLSR7c3Jj ZmlsZX1dCitzZXQgb3V0cHV0ZGlyIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSB7 fV0KKworaWYgeyBbZ2RiX2NvbXBpbGUgIiRzb3VyY2V0bXAiICIkYmluZmls ZSIgZXhlY3V0YWJsZSB7ZGVidWd9XSAhPSAiIiB9IHsKKyAgICBmYWlsICIk dGVzdCAoY29tcGlsZSkiCisgICAgcmV0dXJuIC0xCit9CisKKyMgRmluZCBh biB1bnVzZWQgcG9ydAorc2V0IHBvcnQgW2V4ZWMgc2ggLWMgIndoaWxlIHRy dWU7IGRvIFBPUlQ9YGV4cHIgJygnIFwkUkFORE9NICUgMTAwMCAnKScgKyA5 MDAwYDsgc3MgLWF0biB8IGZncmVwIFwiOlwkUE9SVFwiIHx8IGJyZWFrOyBk b25lOyBlY2hvIFwkUE9SVCJdCisKK3NldCA6OmVudihERUJVR0lORk9EX1VS TFMpIGh0dHA6Ly8xMjcuMC4wLjE6JHBvcnQKK3NldCA6OmVudihERUJVR0lO Rk9EX1RJTUVPVVQpIDMwCitzZXQgOjplbnYoREVCVUdJTkZPRF9DQUNIRV9Q QVRIKSAkY2FjaGUKKworIyB0ZXN0IHRoYXQgZ2RiIGNhbm5vdCBmaW5kIHNv dXJjZSB3aXRob3V0IGRlYnVnaW5mb2QKK2dkYl9zdGFydAorZ2RiX2xvYWQg JGJpbmZpbGUKK2dkYl90ZXN0X25vX291dHB1dCAic2V0IHN1YnN0aXR1dGUt cGF0aCAkb3V0cHV0ZGlyIC9kZXYvbnVsbCIKK2dkYl90ZXN0ICJsaXN0IiAi LipDb25uZWN0aW9uIHJlZnVzZWQuKiIKK2dkYl9leGl0CisKKyMgc3RyaXAg c3ltYm9scyBpbnRvIHNlcGFyYXRlIGZpbGUgYW5kIG1vdmUgaXQgc28gZ2Ri IGNhbm5vdCBmaW5kIGl0IHdpdGhvdXQgZGVidWdpbmZvZAoraWYgeyBbZ2Ri X2dudV9zdHJpcF9kZWJ1ZyAkYmluZmlsZSAiIl0gIT0gMCB9IHsKKyAgICBm YWlsICIkdGVzdCAoc3RyaXAgZGVidWdpbmZvKSIKKyAgICByZXR1cm4gLTEK K30KKworc2V0IGRlYnVnZGlyIFtmaWxlIGpvaW4gW3N0YW5kYXJkX291dHB1 dF9maWxlIHt9XSAiZGVidWciXQorc2V0IGRlYnVnaW5mbyBbZmlsZSBqb2lu IFtzdGFuZGFyZF9vdXRwdXRfZmlsZSB7fV0gImZldGNoX3NyY19hbmRfc3lt Ym9scy5kZWJ1ZyJdCisKK2ZpbGUgbWtkaXIgJGRlYnVnZGlyCitmaWxlIHJl bmFtZSAtZm9yY2UgJGRlYnVnaW5mbyAkZGVidWdkaXIKKworIyB0ZXN0IHRo YXQgZ2RiIGNhbm5vdCBmaW5kIHN5bWJvbHMgd2l0aG91dCBkZWJ1Z2luZm9k CitnZGJfc3RhcnQKK2dkYl9sb2FkICRiaW5maWxlCitnZGJfdGVzdCAiZmls ZSIgIi4qTm8gc3ltYm9sIGZpbGUuKiIKK2dkYl9leGl0CisKKyMgV3JpdGUg c29tZSBhc3NlbWJseSB0aGF0IGp1c3QgaGFzIGEgLmdudV9kZWJ1Z2FsdGxp bmsgc2VjdGlvbi4KKyMgQ29waWVkIGZyb20gdGVzdHN1aXRlL2dkYi5kd2Fy ZjIvZHd6YnVpbGRpZC5leHAuCitwcm9jIHdyaXRlX2p1c3RfZGVidWdhbHRs aW5rIHtmaWxlbmFtZSBkd3puYW1lIGJ1aWxkaWR9IHsKKyAgICBzZXQgYXNt X2ZpbGUgW3N0YW5kYXJkX291dHB1dF9maWxlICRmaWxlbmFtZV0KKworICAg IER3YXJmOjphc3NlbWJsZSAkYXNtX2ZpbGUgeworICAgICAgICB1cHZhciBk d3puYW1lIGR3em5hbWUKKyAgICAgICAgdXB2YXIgYnVpbGRpZCBidWlsZGlk CisKKyAgICAgICAgZ251X2RlYnVnYWx0bGluayAkZHd6bmFtZSAkYnVpbGRp ZAorCisgICAgICAgICMgT25seSB0aGUgRFdBUkYgcmVhZGVyIGNoZWNrcyAu Z251X2RlYnVnYWx0bGluaywgc28gbWFrZSBzdXJlCisgICAgICAgICMgdGhl cmUgaXMgYSBiaXQgb2YgRFdBUkYgaW4gaGVyZS4KKyAgICAgICAgY3Uge30g eworICAgICAgICAgICAgY29tcGlsZV91bml0IHt7bGFuZ3VhZ2UgQERXX0xB TkdfQ319IHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30K KworIyBXcml0ZSBzb21lIERXQVJGIHRoYXQgYWxzbyBzZXRzIHRoZSBidWls ZGlkLgorIyBDb3BpZWQgZnJvbSB0ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kd3pi dWlsZGlkLmV4cC4KK3Byb2Mgd3JpdGVfZHdhcmZfZmlsZSB7ZmlsZW5hbWUg YnVpbGRpZCB7dmFsdWUgOTl9fSB7CisgICAgc2V0IGFzbV9maWxlIFtzdGFu ZGFyZF9vdXRwdXRfZmlsZSAkZmlsZW5hbWVdCisKKyAgICBEd2FyZjo6YXNz ZW1ibGUgJGFzbV9maWxlIHsKKyAgICAgICAgZGVjbGFyZV9sYWJlbHMgaW50 X2xhYmVsIGludF9sYWJlbDIKKworICAgICAgICB1cHZhciBidWlsZGlkIGJ1 aWxkaWQKKyAgICAgICAgdXB2YXIgdmFsdWUgdmFsdWUKKworICAgICAgICBi dWlsZF9pZCAkYnVpbGRpZAorCisgICAgICAgIGN1IHt9IHsKKyAgICAgICAg ICAgIGNvbXBpbGVfdW5pdCB7e2xhbmd1YWdlIEBEV19MQU5HX0N9fSB7Cisg ICAgICAgICAgICAgICAgaW50X2xhYmVsMjogYmFzZV90eXBlIHsKKyAgICAg ICAgICAgICAgICAgICAge25hbWUgaW50fQorICAgICAgICAgICAgICAgICAg ICB7Ynl0ZV9zaXplIDQgc2RhdGF9CisgICAgICAgICAgICAgICAgICAgIHtl bmNvZGluZyBARFdfQVRFX3NpZ25lZH0KKyAgICAgICAgICAgICAgICB9CisK KyAgICAgICAgICAgICAgICBjb25zdGFudCB7CisgICAgICAgICAgICAgICAg ICAgIHtuYW1lIHRoZV9pbnR9CisgICAgICAgICAgICAgICAgICAgIHt0eXBl IDokaW50X2xhYmVsMn0KKyAgICAgICAgICAgICAgICAgICAge2NvbnN0X3Zh bHVlICR2YWx1ZSBkYXRhMX0KKyAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKK3NldCBidWlsZGlkICIw MTIzNDU2Nzg5MGFiY2VkZjAxMjM0NTYiCisKK3dyaXRlX2p1c3RfZGVidWdh bHRsaW5rICR7YmluZmlsZX1faGFzX2FsdGxpbmsuUyAke2JpbmZpbGV9X2R3 ei5vICRidWlsZGlkCit3cml0ZV9kd2FyZl9maWxlICR7YmluZmlsZX1fZHd6 LlMgJGJ1aWxkaWQKKworaWYge1tnZGJfY29tcGlsZSAke2JpbmZpbGV9X2hh c19hbHRsaW5rLlMgJHtiaW5maWxlfV9hbHQubyBvYmplY3Qgbm9kZWJ1Z10g IT0gIiJ9IHsKKyAgICBmYWlsICIkdGVzdCAoY29tcGlsZSBtYWluIHdpdGgg YWx0bGluaykiCisgICAgcmV0dXJuIC0xCit9CisKK2lmIHtbZ2RiX2NvbXBp bGUgJHtiaW5maWxlfV9kd3ouUyAke2JpbmZpbGV9X2R3ei5vIG9iamVjdCBu b2RlYnVnXSAhPSAiIn0geworICAgIGZhaWwgIiR0ZXN0IChjb21waWxlIGFs dGxpbmspIgorICAgIHJldHVybiAtMQorfQorCitmaWxlIHJlbmFtZSAtZm9y Y2UgJHtiaW5maWxlfV9kd3oubyAkZGVidWdkaXIKKworIyBUZXN0IHRoYXQg Z2RiIGNhbm5vdCBmaW5kIGR3eiB3aXRob3V0IGRlYnVnaW5mb2QuCitnZGJf c3RhcnQKK2dkYl90ZXN0ICJmaWxlICR7YmluZmlsZX1fYWx0Lm8iICIuKmNv dWxkIG5vdCBmaW5kICcuZ251X2RlYnVnYWx0bGluaycuKiIKK2dkYl9leGl0 CisKK3NldCBkZWJ1Z2luZm9kX3BpZCAwCisKKyMgS2lsbCB0aGUgc2VydmVy IGlmIHdlIGFib3J0IGVhcmx5Citwcm9jIHNpZ2ludF9oYW5kbGVyIHt9IHsK KyAgICBnbG9iYWwgZGVidWdpbmZvZF9waWQKKworICAgIGlmIHsgJGRlYnVn aW5mb2RfcGlkICE9IDAgfSB7CisgICAgICAgIGNhdGNoIHtleGVjIGtpbGwg LUlOVCAkZGVidWdpbmZvZF9waWR9CisgICAgfQorCisgICAgZXhpdAorfQor Cit0cmFwIHNpZ2ludF9oYW5kbGVyIElOVAorCisjIFN0YXJ0IHVwIGRlYnVn aW5mb2QKK3NldCBkZWJ1Z2luZm9kX3BpZCBbZXhlYyBkZWJ1Z2luZm9kIC1w ICRwb3J0IC1GICRkZWJ1Z2RpciAyPi9kZXYvbnVsbCAmXQorCitpZiB7ICEk ZGVidWdpbmZvZF9waWQgfSB7CisgICAgZmFpbCAiJHRlc3QgKHNlcnZlciBp bml0KSIKKyAgICByZXR1cm4gLTEKK30KKworIyBXYWl0IGZvciBkZWJ1Z2lu Zm9kIGluZGljYXRlIGl0J3MgcmVhZHkuCitzZXQgcmVhZHkgMAorZm9yIHtz ZXQgdGltZWxpbSAzMH0geyR0aW1lbGltICE9IDB9IHtpbmNyIHRpbWVsaW0g LTF9IHsKKyAgICBzbGVlcCAxCisgICAgc2V0IHdhbnQgIi4qcmVhZHkgMS4q IgorICAgIGNhdGNoIHtleGVjIGN1cmwgLXMgaHR0cDovLzEyNy4wLjAuMTok cG9ydC9tZXRyaWNzfSBnb3QKKworICAgIGlmIHsgW3JlZ2V4cCAkd2FudCAk Z290XSB9IHsKKyAgICAgIHNldCByZWFkeSAxCisgICAgICBicmVhaworICAg IH0KK30KKworaWYgeyAhJHJlYWR5IH0geworICAgIGZhaWwgIiR0ZXN0IChz ZXJ2ZXIgcmVhZHkpIgorICAgIGNhdGNoIHtleGVjIGtpbGwgLUlOVCAkZGVi dWdpbmZvZF9waWR9CisgICAgcmV0dXJuIC0xCit9CisKKyMgZ2RiIHNob3Vs ZCBub3cgZmluZCB0aGUgc3ltYm9sIGFuZCBzb3VyY2UgZmlsZXMKK2dkYl9z dGFydAorZ2RiX2xvYWQgJGJpbmZpbGUKK2dkYl90ZXN0X25vX291dHB1dCAi c2V0IHN1YnN0aXR1dGUtcGF0aCAkb3V0cHV0ZGlyIC9kZXYvbnVsbCIKK2dk Yl90ZXN0ICJiciBtYWluIiAiQnJlYWtwb2ludCAxIGF0LipmaWxlLioiCitn ZGJfdGVzdCAibCIgIi4qVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlLioiCitnZGJfZXhpdAorCisjIGdkYiBzaG91bGQgbm93IGZp bmQgdGhlIGRlYnVnYWx0bGluayBmaWxlCitnZGJfc3RhcnQKK2dkYl90ZXN0 ICJmaWxlICR7YmluZmlsZX1fYWx0Lm8iICIuKlJlYWRpbmcgc3ltYm9scyBm cm9tICR7YmluZmlsZX1fYWx0Lm9cLlwuXC5cW1xyXG5cXSIKK2dkYl9leGl0 CisKK2ZpbGUgZGVsZXRlIC1mb3JjZSAkY2FjaGUKK2NhdGNoIHtleGVjIGtp bGwgLUlOVCAkZGVidWdpbmZvZF9waWR9CmRpZmYgLS1naXQgYS9nZGIvdGVz dHN1aXRlL2dkYi5kZWJ1Z2luZm9kL21haW4uYyBiL2dkYi90ZXN0c3VpdGUv Z2RiLmRlYnVnaW5mb2QvbWFpbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAuLjdkNTNmODAyMGYKLS0tIC9kZXYvbnVsbAorKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5kZWJ1Z2luZm9kL21haW4uYwpAQCAtMCww ICsxLDI1IEBACisvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0 aGUgR05VIGRlYnVnZ2VyLgorCisgICBDb3B5cmlnaHQgMjAwNC0yMDE5IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAg IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDMgb2YgdGhlIExpY2Vuc2UsIG9yCisgICAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAg IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor CisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlz IHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uICAqLworCisvKiBEdW1teSBtYWluIGZ1bmN0aW9uLiAgKi8K KworaW50CittYWluKCkKK3sKKyAgYXNtICgibWFpbl9sYWJlbDogLmdsb2Js IG1haW5fbGFiZWwiKTsKKyAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9n ZGIvdG9wLmMgYi9nZGIvdG9wLmMKaW5kZXggM2I5MzY4M2NmYS4uYzZlNzAy YmIzNSAxMDA2NDQKLS0tIGEvZ2RiL3RvcC5jCisrKyBiL2dkYi90b3AuYwpA QCAtMTUyOCw2ICsxNTI4LDE2IEBAIFRoaXMgR0RCIHdhcyBjb25maWd1cmVk IGFzIGZvbGxvd3M6XG5cCiAiKSk7CiAjZW5kaWYKIAorI2lmIEhBVkVfTElC REVCVUdJTkZPRAorICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sIF8oIlwK KyAgICAgICAgICAgICAtLXdpdGgtZGVidWdpbmZvZFxuXAorIikpOworI2Vs c2UKKyAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgXygiXAorICAgICAg ICAgICAgIC0td2l0aG91dC1kZWJ1Z2luZm9kXG5cCisiKSk7CisjZW5kaWYK KwogI2lmIEhBVkVfR1VJTEUKICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFt LCBfKCJcCiAgICAgICAgICAgICAgLS13aXRoLWd1aWxlXG5cCi0tIAoyLjIz LjAKCg== --000000000000a306cf059bace1ad--