Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ncmb9-0000ZO-WE for pgsql-hackers@arkaria.postgresql.org; Fri, 08 Apr 2022 11:16:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1ncmb8-0006M0-R5 for pgsql-hackers@arkaria.postgresql.org; Fri, 08 Apr 2022 11:16:14 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ncmb8-0006Lq-7p for pgsql-hackers@lists.postgresql.org; Fri, 08 Apr 2022 11:16:14 +0000 Received: from mail-oo1-xc2e.google.com ([2607:f8b0:4864:20::c2e]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1ncmb5-00015X-5H for pgsql-hackers@postgresql.org; Fri, 08 Apr 2022 11:16:13 +0000 Received: by mail-oo1-xc2e.google.com with SMTP id v19-20020a056820101300b0032488bb70f5so1419183oor.5 for ; Fri, 08 Apr 2022 04:16:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=YDucLv410KL1bPFj1HY0I3Ng3j+MrCUnAmfgIWHCl6U=; b=X/ikNH8HNJZdiHEYg1okWdw271eKi817xzDJoRTYJTvmDUj4aeYtMCpHgiBi8r5hPp XBurZ40STz+tGhYvjBZt2i5RcDwtlmeLRAMm9Jx5IwqFJN3CJWOrA4LpKCJkpf0Kkf00 R0k70pz/Ko3b6kuhGYlBA2KKmmyJCHSQ+6+Usg6bkmQyUiw4TCivJbgUVYN6dl4+azjj GRVyRPBtTku5cKJxNLVLJ2VLBTvI7PwaQffvPoM5H2R8IKYvMv2YXqpQ3MODkEMM3YLq L97JysqsbtCCgIXchsGXqS5E3L1onkjLN2XJjFWRmUTG0inn4yTh6t3tU0KKn4kvWaie cRvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=YDucLv410KL1bPFj1HY0I3Ng3j+MrCUnAmfgIWHCl6U=; b=44lBb7Urr+2hroSKNGstIBAleuU/weIjkYooz7rsvv3JUfb5nsgVgmZzwkt5bAPVOV eSdi3XRRltfNYuRQHdYnGcvJuCjcXB8F8VDBJQp6ipa5baW+oERb1mU8wHGFq88AXiiu Ir2XbOVLvKifBuulBiyGvOPRuT+Zbw5SuPvxoEzN3N2sN7g7BbGh4eJNpuppEdhQsb0Q id31G8V7T7r5dEuCA64wASQVADHjQZAUTIDApv9cUYzxWhJkoAREzcUtZAlYRb/92srB uS3HAFsIqsKDV26zH7zdc3Anr8s9c8DBB69XeLzUnjhW8Aud83jlIksYEISX6pD3xAQv Nwfg== X-Gm-Message-State: AOAM530SBQ60gyj5+WhOzWsQgKdnB+k6Umimv2ALPwLjaKRc4yh6vrCh g8R9dcEx9Gx53JK/Vl4MbgiDrU7hvh3aLm/tljU= X-Google-Smtp-Source: ABdhPJx6gYwsZOak2AYLyeH4Ux0xF4KJCu7PKNaKP+MXvYVhjCRICP3cQ79pEQAiiH6SyVzdUREvY4EqR0CfM0GfxI0= X-Received: by 2002:a4a:9c4d:0:b0:329:2eaa:98db with SMTP id c13-20020a4a9c4d000000b003292eaa98dbmr5870582ook.81.1649416570603; Fri, 08 Apr 2022 04:16:10 -0700 (PDT) MIME-Version: 1.0 References: <215356.1647286703@sss.pgh.pa.us> In-Reply-To: From: David Rowley Date: Fri, 8 Apr 2022 23:15:53 +1200 Message-ID: Subject: Re: generic plans and "initial" pruning To: Amit Langote Cc: Robert Haas , Tom Lane , PostgreSQL-development Content-Type: multipart/mixed; boundary="000000000000c71e0305dc22b828" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000c71e0305dc22b828 Content-Type: text/plain; charset="UTF-8" On Fri, 8 Apr 2022 at 17:49, Amit Langote wrote: > Attached updated patch with these changes. Thanks for making the changes. I started looking over this patch but really feel like it needs quite a few more iterations of what we've just been doing to get it into proper committable shape. There seems to be only about 40 mins to go before the freeze, so it seems very unrealistic that it could be made to work. I started trying to take a serious look at it this evening, but I feel like I just failed to get into it deep enough to make any meaningful improvements. I'd need more time to study the problem before I could build up a proper opinion on how exactly I think it should work. Anyway. I've attached a small patch that's just a few things I adjusted or questions while reading over your v13 patch. Some of these are just me questioning your code (See XXX comments) and some I think are improvements. Feel free to take the hunks that you see fit and drop anything you don't. David --000000000000c71e0305dc22b828 Content-Type: text/plain; charset="US-ASCII"; name="misc_fixes.patch.txt" Content-Disposition: attachment; filename="misc_fixes.patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l1qbun7n0 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjTWFpbi5jCmluZGV4IDA1Y2M5OWRmOGYuLjVlZTk3ODkzN2QgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY01haW4uYwpAQCAtMTIxLDYgKzEyMSw4IEBAIHN0YXRpYyB2b2lkIEV2YWxQ bGFuUXVhbFN0YXJ0KEVQUVN0YXRlICplcHFzdGF0ZSwgUGxhbiAqcGxhblRyZWUpOwogICoKICAq IE5vdGU6IFBhcnRpdGlvbmVkIHRhYmxlcyBtZW50aW9uZWQgaW4gUGFydGl0aW9uZWRSZWxQcnVu ZUluZm8gbm9kZXMgdGhhdAogICogZHJpdmUgdGhlIHBydW5pbmcgd2lsbCBiZSBsb2NrZWQgYmVm b3JlIGRvaW5nIHRoZSBwcnVuaW5nLgorICoKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogUGFydGl0aW9uUHJ1 bmVSZXN1bHQgKgogRXhlY3V0b3JEb0luaXRpYWxQcnVuaW5nKFBsYW5uZWRTdG10ICpwbGFubmVk c3RtdCwgUGFyYW1MaXN0SW5mbyBwYXJhbXMpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVj dXRvci9leGVjUGFydGl0aW9uLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFydGl0aW9u LmMKaW5kZXggMzAzNzc0MmI4ZC4uZTljYTZiYzU1ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY1BhcnRpdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQ YXJ0aXRpb24uYwpAQCAtMTcwNyw2ICsxNzA3LDcgQEAgRXhlY0luaXRQYXJ0aXRpb25QcnVuaW5n KFBsYW5TdGF0ZSAqcGxhbnN0YXRlLAogCQlBc3NlcnQobl90b3RhbF9zdWJwbGFucyA+IDApOwog CQkqaW5pdGlhbGx5X3ZhbGlkX3N1YnBsYW5zID0gYm1zX2FkZF9yYW5nZShOVUxMLCAwLAogCQkJ CQkJCQkJCQkJICBuX3RvdGFsX3N1YnBsYW5zIC0gMSk7CisJCXJldHVybiBwcnVuZXN0YXRlOwog CX0KIAogCS8qCkBAIC0xNzE0LDE0ICsxNzE1LDE1IEBAIEV4ZWNJbml0UGFydGl0aW9uUHJ1bmlu ZyhQbGFuU3RhdGUgKnBsYW5zdGF0ZSwKIAkgKiB0aGF0IHdlcmUgcmVtb3ZlZCBhYm92ZSBkdWUg dG8gaW5pdGlhbCBwcnVuaW5nLiAgTm8gbmVlZCB0byBkbyB0aGlzIGlmCiAJICogbm8gc3RlcHMg d2VyZSByZW1vdmVkLgogCSAqLwotCWlmIChibXNfbnVtX21lbWJlcnMoKmluaXRpYWxseV92YWxp ZF9zdWJwbGFucykgPCBuX3RvdGFsX3N1YnBsYW5zKQorCWlmIChwcnVuZXN0YXRlICYmCisJCWJt c19udW1fbWVtYmVycygqaW5pdGlhbGx5X3ZhbGlkX3N1YnBsYW5zKSA8IG5fdG90YWxfc3VicGxh bnMpCiAJewogCQkvKgogCQkgKiBXZSBjYW4gc2FmZWx5IHNraXAgdGhpcyB3aGVuICFkb19leGVj X3BydW5lLCBldmVuIHRob3VnaCB0aGF0CiAJCSAqIGxlYXZlcyBpbnZhbGlkIGRhdGEgaW4gcHJ1 bmVzdGF0ZSwgYmVjYXVzZSB0aGF0IGRhdGEgd29uJ3QgYmUKIAkJICogY29uc3VsdGVkIGFnYWlu IChjZiBpbml0aWFsIEFzc2VydCBpbiBFeGVjRmluZE1hdGNoaW5nU3ViUGxhbnMpLgogCQkgKi8K LQkJaWYgKHBydW5lc3RhdGUgJiYgcHJ1bmVzdGF0ZS0+ZG9fZXhlY19wcnVuZSkKKwkJaWYgKHBy dW5lc3RhdGUtPmRvX2V4ZWNfcHJ1bmUpCiAJCQlQYXJ0aXRpb25QcnVuZUZpeFN1YlBsYW5NYXAo cHJ1bmVzdGF0ZSwKIAkJCQkJCQkJCQkqaW5pdGlhbGx5X3ZhbGlkX3N1YnBsYW5zLAogCQkJCQkJ CQkJCW5fdG90YWxfc3VicGxhbnMpOwpAQCAtMTc1MSw3ICsxNzUzLDggQEAgRXhlY1BhcnRpdGlv bkRvSW5pdGlhbFBydW5pbmcoUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBQYXJhbUxpc3RJbmZv IHBhcmFtcywKIAlCaXRtYXBzZXQJICp2YWxpZF9zdWJwbGFuX29mZnM7CiAKIAkvKgotCSAqIEEg dGVtcG9yYXJ5IGNvbnRleHQgdG8gYWxsb2NhdGUgc3R1ZmYgbmVlZGRlZCB0byBydW4gdGhlIHBy dW5pbmcgc3RlcHMuCisJICogQSB0ZW1wb3JhcnkgY29udGV4dCB0byBmb3IgbWVtb3J5IGFsbG9j YXRpb25zIHJlcXVpcmVkIHdoaWxlIGV4ZWN1dGlvbgorCSAqIHBhcnRpdGlvbiBwcnVuaW5nIHN0 ZXBzLgogCSAqLwogCXRtcGNvbnRleHQgPSBBbGxvY1NldENvbnRleHRDcmVhdGUoQ3VycmVudE1l bW9yeUNvbnRleHQsCiAJCQkJCQkJCQkgICAiaW5pdGlhbCBwcnVuaW5nIHdvcmtpbmcgZGF0YSIs CkBAIC0xNzY1LDExICsxNzY4LDEyIEBAIEV4ZWNQYXJ0aXRpb25Eb0luaXRpYWxQcnVuaW5nKFBs YW5uZWRTdG10ICpwbGFubmVkc3RtdCwgUGFyYW1MaXN0SW5mbyBwYXJhbXMsCiAJcGRpciA9IENy ZWF0ZVBhcnRpdGlvbkRpcmVjdG9yeShDdXJyZW50TWVtb3J5Q29udGV4dCwgZmFsc2UpOwogCiAJ LyoKLQkgKiBXZSBkb24ndCB5ZXQgaGF2ZSBhIFBsYW5TdGF0ZSBmb3IgdGhlIHBhcmVudCBwbGFu IG5vZGUsIHNvIG11c3QgY3JlYXRlCi0JICogYSBzdGFuZGFsb25lIEV4cHJDb250ZXh0IHRvIGV2 YWx1YXRlIHBydW5pbmcgZXhwcmVzc2lvbnMsIGVxdWlwcGVkIHdpdGgKLQkgKiB0aGUgaW5mb3Jt YXRpb24gYWJvdXQgdGhlIEVYVEVSTiBwYXJhbWV0ZXJzIHRoYXQgdGhlIGNhbGxlciBwYXNzZWQg dXMuCi0JICogTm90ZSB0aGF0IHRoYXQncyBva2F5IGJlY2F1c2UgdGhlIGluaXRpYWwgcHJ1bmlu ZyBzdGVwcyBkbyBub3QgY29udGFpbgotCSAqIGFueXRoaW5nIHRoYXQgcmVxdWlyZXMgdGhlIGV4 ZWN1dGlvbiB0byBoYXZlIHN0YXJ0ZWQuCisJICogV2UgZG9uJ3QgeWV0IGhhdmUgYSBQbGFuU3Rh dGUgZm9yIHRoZSBwYXJlbnQgcGxhbiBub2RlLCBzbyB3ZSBtdXN0CisJICogY3JlYXRlIGEgc3Rh bmRhbG9uZSBFeHByQ29udGV4dCB0byBldmFsdWF0ZSBwcnVuaW5nIGV4cHJlc3Npb25zLAorCSAq IGVxdWlwcGVkIHdpdGggdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBFWFRFUk4gcGFyYW1ldGVy cyB0aGF0IHRoZQorCSAqIGNhbGxlciBwYXNzZWQgdXMuICBOb3RlIHRoYXQgdGhhdCdzIG9rYXkg YmVjYXVzZSB0aGUgaW5pdGlhbCBwcnVuaW5nCisJICogc3RlcHMgZG8gbm90IGNvbnRhaW4gYW55 dGhpbmcgdGhhdCByZXF1aXJlcyB0aGUgZXhlY3V0aW9uIHRvIGhhdmUKKwkgKiBzdGFydGVkLgog CSAqLwogCWVjb250ZXh0ID0gQ3JlYXRlU3RhbmRhbG9uZUV4cHJDb250ZXh0KCk7CiAJZWNvbnRl eHQtPmVjeHRfcGFyYW1fbGlzdF9pbmZvID0gcGFyYW1zOwpAQCAtMTg3NCw3ICsxODc4LDYgQEAg Q3JlYXRlUGFydGl0aW9uUHJ1bmVTdGF0ZShQbGFuU3RhdGUgKnBsYW5zdGF0ZSwKIAkJCVBhcnRp dGlvbmVkUmVsUHJ1bmVJbmZvICpwaW5mbyA9IGxmaXJzdF9ub2RlKFBhcnRpdGlvbmVkUmVsUHJ1 bmVJbmZvLCBsYzIpOwogCQkJUGFydGl0aW9uZWRSZWxQcnVuaW5nRGF0YSAqcHBydW5lID0gJnBy dW5lZGF0YS0+cGFydHJlbHBydW5lZGF0YVtqXTsKIAkJCVJlbGF0aW9uCXBhcnRyZWw7Ci0JCQli b29sCQljbG9zZV9wYXJ0cmVsID0gZmFsc2U7CiAJCQlQYXJ0aXRpb25EZXNjIHBhcnRkZXNjOwog CQkJUGFydGl0aW9uS2V5IHBhcnRrZXk7CiAKQEAgLTE4OTQsNyArMTg5Nyw2IEBAIENyZWF0ZVBh cnRpdGlvblBydW5lU3RhdGUoUGxhblN0YXRlICpwbGFuc3RhdGUsCiAJCQkJaW50CQlsb2NrbW9k ZSA9IChqID09IDApID8gTm9Mb2NrIDogcnRlLT5yZWxsb2NrbW9kZTsKIAogCQkJCXBhcnRyZWwg PSB0YWJsZV9vcGVuKHJ0ZS0+cmVsaWQsIGxvY2ttb2RlKTsKLQkJCQljbG9zZV9wYXJ0cmVsID0g dHJ1ZTsKIAkJCX0KIAkJCWVsc2UKIAkJCQlwYXJ0cmVsID0gRXhlY0dldFJhbmdlVGFibGVSZWxh dGlvbihlc3RhdGUsIHBpbmZvLT5ydGluZGV4KTsKQEAgLTE5MTQsNyArMTkxNiw3IEBAIENyZWF0 ZVBhcnRpdGlvblBydW5lU3RhdGUoUGxhblN0YXRlICpwbGFuc3RhdGUsCiAJCQkgKiBNdXN0IGNs b3NlIHBhcnRyZWwsIGtlZXBpbmcgdGhlIGxvY2sgdGFrZW4sIGlmIHdlJ3JlIG5vdCB1c2luZwog CQkJICogRVN0YXRlJ3MgZW50cnkuCiAJCQkgKi8KLQkJCWlmIChjbG9zZV9wYXJ0cmVsKQorCQkJ aWYgKGVzdGF0ZSA9PSBOVUxMKQogCQkJCXRhYmxlX2Nsb3NlKHBhcnRyZWwsIE5vTG9jayk7CiAK IAkJCS8qCkBAIC0yMzY3LDYgKzIzNjksOCBAQCBmaW5kX21hdGNoaW5nX3N1YnBsYW5zX3JlY3Vy c2UoUGFydGl0aW9uUHJ1bmluZ0RhdGEgKnBydW5lZGF0YSwKIAkJewogCQkJKnZhbGlkc3VicGxh bnMgPSBibXNfYWRkX21lbWJlcigqdmFsaWRzdWJwbGFucywKIAkJCQkJCQkJCQkJcHBydW5lLT5z dWJwbGFuX21hcFtpXSk7CisJCQkvKiBYWFggd2h5IHdvdWxkIHBwcnVuZS0+cnRpX21hcFtpXSBl dmVyIGJlIHplcm8gaGVyZT8/PyAqLworCQkJQXNzZXJ0KHBwcnVuZS0+cnRpX21hcFtpXSA+IDAp OwogCQkJaWYgKHNjYW5fbGVhZnBhcnRfcnRpcyAmJiBwcHJ1bmUtPnJ0aV9tYXBbaV0gPiAwKQog CQkJCSpzY2FuX2xlYWZwYXJ0X3J0aXMgPSBibXNfYWRkX21lbWJlcigqc2Nhbl9sZWFmcGFydF9y dGlzLAogCQkJCQkJCQkJCQkJCSBwcHJ1bmUtPnJ0aV9tYXBbaV0pOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0aWxzLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj VXRpbHMuYwppbmRleCA2MzkxNDVhYmU5Li5mOWM3OTc2ZmYyIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjVXRpbHMuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj VXRpbHMuYwpAQCAtMTE5LDYgKzExOSw3IEBAIENyZWF0ZUV4ZWN1dG9yU3RhdGUodm9pZCkKIAll c3RhdGUtPmVzX3JlbGF0aW9ucyA9IE5VTEw7CiAJZXN0YXRlLT5lc19yb3dtYXJrcyA9IE5VTEw7 CiAJZXN0YXRlLT5lc19wbGFubmVkc3RtdCA9IE5VTEw7CisJZXN0YXRlLT5lc19wYXJ0X3BydW5l X2luZm9zID0gTklMOwogCWVzdGF0ZS0+ZXNfcGFydF9wcnVuZV9yZXN1bHQgPSBOVUxMOwogCiAJ ZXN0YXRlLT5lc19qdW5rRmlsdGVyID0gTlVMTDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL25vZGVBcHBlbmQuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVBcHBlbmQuYwpp bmRleCAwOWYyNjY1OGUyLi45Njg4MGUxMjJhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVj dXRvci9ub2RlQXBwZW5kLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFwcGVuZC5j CkBAIC05NCw3ICs5NCw2IEBAIHN0YXRpYyBib29sIEV4ZWNBcHBlbmRBc3luY1JlcXVlc3QoQXBw ZW5kU3RhdGUgKm5vZGUsIFR1cGxlVGFibGVTbG90ICoqcmVzdWx0KTsKIHN0YXRpYyB2b2lkIEV4 ZWNBcHBlbmRBc3luY0V2ZW50V2FpdChBcHBlbmRTdGF0ZSAqbm9kZSk7CiBzdGF0aWMgdm9pZCBj bGFzc2lmeV9tYXRjaGluZ19zdWJwbGFucyhBcHBlbmRTdGF0ZSAqbm9kZSk7CiAKLQogLyogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogICoJCUV4ZWNJbml0QXBwZW5kCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3Jl YXRlcGxhbi5jCmluZGV4IGVjNmIxZjFmYzAuLmZlMGRmMmYxZDEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYworKysgYi9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKQEAgLTExODQsNyArMTE4NCw2IEBAIGNyZWF0ZV9hcHBl bmRfcGxhbihQbGFubmVySW5mbyAqcm9vdCwgQXBwZW5kUGF0aCAqYmVzdF9wYXRoLCBpbnQgZmxh Z3MpCiAJTGlzdENlbGwgICAqc3VicGF0aHM7CiAJaW50CQkJbmFzeW5jcGxhbnMgPSAwOwogCVJl bE9wdEluZm8gKnJlbCA9IGJlc3RfcGF0aC0+cGF0aC5wYXJlbnQ7Ci0JaW50CQkJcGFydF9wcnVu ZV9pbmRleCA9IC0xOwogCWludAkJCW5vZGVudW1zb3J0a2V5cyA9IDA7CiAJQXR0ck51bWJlciAq bm9kZVNvcnRDb2xJZHggPSBOVUxMOwogCU9pZAkJICAgKm5vZGVTb3J0T3BlcmF0b3JzID0gTlVM TDsKQEAgLTEzMzUsNiArMTMzNCw5IEBAIGNyZWF0ZV9hcHBlbmRfcGxhbihQbGFubmVySW5mbyAq cm9vdCwgQXBwZW5kUGF0aCAqYmVzdF9wYXRoLCBpbnQgZmxhZ3MpCiAJCXN1YnBsYW5zID0gbGFw cGVuZChzdWJwbGFucywgc3VicGxhbik7CiAJfQogCisJLyogU2V0IGJlbG93IGlmIHdlIGZpbmQg cXVhbHMgdGhhdCB3ZSBjYW4gdXNlIHRvIHJ1bi10aW1lIHBydW5lICovCisJcGxhbi0+cGFydF9w cnVuZV9pbmRleCA9IC0xOworCiAJLyoKIAkgKiBJZiBhbnkgcXVhbHMgZXhpc3QsIHRoZXkgbWF5 IGJlIHVzZWZ1bCB0byBwZXJmb3JtIGZ1cnRoZXIgcGFydGl0aW9uCiAJICogcHJ1bmluZyBkdXJp bmcgZXhlY3V0aW9uLiAgR2F0aGVyIGluZm9ybWF0aW9uIG5lZWRlZCBieSB0aGUgZXhlY3V0b3Ig dG8KQEAgLTEzNTgsMTggKzEzNjAsMTUgQEAgY3JlYXRlX2FwcGVuZF9wbGFuKFBsYW5uZXJJbmZv ICpyb290LCBBcHBlbmRQYXRoICpiZXN0X3BhdGgsIGludCBmbGFncykKIAkJfQogCiAJCWlmIChw cnVuZXF1YWwgIT0gTklMKQotCQkJcGFydF9wcnVuZV9pbmRleD0gbWFrZV9wYXJ0aXRpb25fcHJ1 bmVpbmZvKHJvb3QsIHJlbCwKLQkJCQkJCQkJCQkJCQkgICBiZXN0X3BhdGgtPnN1YnBhdGhzLAot CQkJCQkJCQkJCQkJCSAgIHBydW5lcXVhbCk7CisJCQlwbGFuLT5wYXJ0X3BydW5lX2luZGV4ID0g bWFrZV9wYXJ0aXRpb25fcHJ1bmVpbmZvKHJvb3QsIHJlbCwKKwkJCQkJCQkJCQkJCQkJCSAgYmVz dF9wYXRoLT5zdWJwYXRocywKKwkJCQkJCQkJCQkJCQkJCSAgcHJ1bmVxdWFsKTsKIAl9CiAKIAlw bGFuLT5hcHBlbmRwbGFucyA9IHN1YnBsYW5zOwogCXBsYW4tPm5hc3luY3BsYW5zID0gbmFzeW5j cGxhbnM7CiAJcGxhbi0+Zmlyc3RfcGFydGlhbF9wbGFuID0gYmVzdF9wYXRoLT5maXJzdF9wYXJ0 aWFsX3BhdGg7CiAKLQkvKiBXaWxsIGJlIHVwZGF0ZWQgbGF0ZXIgaW4gc2V0X3BsYW5fcmVmZXJl bmNlcygpLiAqLwotCXBsYW4tPnBhcnRfcHJ1bmVfaW5kZXggPSBwYXJ0X3BydW5lX2luZGV4Owot CiAJY29weV9nZW5lcmljX3BhdGhfaW5mbygmcGxhbi0+cGxhbiwgKFBhdGggKikgYmVzdF9wYXRo KTsKIAogCS8qCkBAIC0xNDA4LDcgKzE0MDcsNiBAQCBjcmVhdGVfbWVyZ2VfYXBwZW5kX3BsYW4o UGxhbm5lckluZm8gKnJvb3QsIE1lcmdlQXBwZW5kUGF0aCAqYmVzdF9wYXRoLAogCUxpc3QJICAg KnN1YnBsYW5zID0gTklMOwogCUxpc3RDZWxsICAgKnN1YnBhdGhzOwogCVJlbE9wdEluZm8gKnJl bCA9IGJlc3RfcGF0aC0+cGF0aC5wYXJlbnQ7Ci0JaW50CQkJcGFydF9wcnVuZV9pbmRleCA9IC0x OwogCiAJLyoKIAkgKiBXZSBkb24ndCBoYXZlIHRoZSBhY3R1YWwgY3JlYXRpb24gb2YgdGhlIE1l cmdlQXBwZW5kIG5vZGUgc3BsaXQgb3V0CkBAIC0xNTAxLDYgKzE0OTksOSBAQCBjcmVhdGVfbWVy Z2VfYXBwZW5kX3BsYW4oUGxhbm5lckluZm8gKnJvb3QsIE1lcmdlQXBwZW5kUGF0aCAqYmVzdF9w YXRoLAogCQlzdWJwbGFucyA9IGxhcHBlbmQoc3VicGxhbnMsIHN1YnBsYW4pOwogCX0KIAorCS8q IFNldCBiZWxvdyBpZiB3ZSBmaW5kIHF1YWxzIHRoYXQgd2UgY2FuIHVzZSB0byBydW4tdGltZSBw cnVuZSAqLworCW5vZGUtPnBhcnRfcHJ1bmVfaW5kZXggPSAtMTsKKwogCS8qCiAJICogSWYgYW55 IHF1YWxzIGV4aXN0LCB0aGV5IG1heSBiZSB1c2VmdWwgdG8gcGVyZm9ybSBmdXJ0aGVyIHBhcnRp dGlvbgogCSAqIHBydW5pbmcgZHVyaW5nIGV4ZWN1dGlvbi4gIEdhdGhlciBpbmZvcm1hdGlvbiBu ZWVkZWQgYnkgdGhlIGV4ZWN1dG9yIHRvCkBAIC0xNTI0LDE1ICsxNTI1LDEzIEBAIGNyZWF0ZV9t ZXJnZV9hcHBlbmRfcGxhbihQbGFubmVySW5mbyAqcm9vdCwgTWVyZ2VBcHBlbmRQYXRoICpiZXN0 X3BhdGgsCiAJCX0KIAogCQlpZiAocHJ1bmVxdWFsICE9IE5JTCkKLQkJCXBhcnRfcHJ1bmVfaW5k ZXg9IG1ha2VfcGFydGl0aW9uX3BydW5laW5mbyhyb290LCByZWwsCi0JCQkJCQkJCQkJCQkJICAg YmVzdF9wYXRoLT5zdWJwYXRocywKLQkJCQkJCQkJCQkJCQkgICBwcnVuZXF1YWwpOworCQkJbm9k ZS0+cGFydF9wcnVuZV9pbmRleCA9IG1ha2VfcGFydGl0aW9uX3BydW5laW5mbyhyb290LCByZWws CisJCQkJCQkJCQkJCQkJCQkgIGJlc3RfcGF0aC0+c3VicGF0aHMsCisJCQkJCQkJCQkJCQkJCQkg IHBydW5lcXVhbCk7CiAJfQogCiAJbm9kZS0+bWVyZ2VwbGFucyA9IHN1YnBsYW5zOwogCi0JLyog V2lsbCBiZSB1cGRhdGVkIGxhdGVyIGluIHNldF9wbGFuX3JlZmVyZW5jZXMoKS4gKi8KLQlub2Rl LT5wYXJ0X3BydW5lX2luZGV4ID0gcGFydF9wcnVuZV9pbmRleDsKIAogCS8qCiAJICogSWYgcHJl cGFyZV9zb3J0X2Zyb21fcGF0aGtleXMgYWRkZWQgc29ydCBjb2x1bW5zLCBidXQgd2Ugd2VyZSB0 b2xkIHRvCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMg Yi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKaW5kZXggYzg4ZTViYWNhYy4u NjNlYzhhOThmYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVm cy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYwpAQCAtNDA4LDYg KzQwOCwxMyBAQCBzZXRfcGxhbl9yZWZlcmVuY2VzKFBsYW5uZXJJbmZvICpyb290LCBQbGFuICpw bGFuKQogCQlnbG9iLT5wYXJ0UHJ1bmVJbmZvcyA9IGxhcHBlbmQoZ2xvYi0+cGFydFBydW5lSW5m b3MsIHBydW5laW5mbyk7CiAJfQogCisJLyoKKwkgKiBYWFggaXMgaXQgd29ydGggZG9pbmcgYSBi bXNfY29weSgpIG9uIGdsb2ItPm1pbkxvY2tSZWxpZHMgaWYKKwkgKiBnbG9iLT5jb250YWluc0lu aXRpYWxQcnVuaW5nIGlzIHRydWU/LiBJJ20gc2xpZ2hseSB3b3JyaWVkIHRoYXQgdGhlCisJICog Qml0bWFwc2V0IGNvdWxkIGhhdmUgYSB2ZXJ5IGxvbmcgZW1wdHkgdGFpbCByZXN1bHRpbmcgaW4g ZXhjZXNzaXZlCisJICogbG9vcGluZyBkdXJpbmcgQWNxdWlyZUV4ZWN1dG9yTG9ja3MoKS4KKwkg Ki8KKwogCXJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnRp dGlvbmluZy9wYXJ0cHJ1bmUuYyBiL3NyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0cHJ1bmUu YwppbmRleCA1YTVmNWRlZTQ2Li45NTJjNWI4MzI3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w YXJ0aXRpb25pbmcvcGFydHBydW5lLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFydGl0aW9uaW5nL3Bh cnRwcnVuZS5jCkBAIC0yMTIsMTIgKzIxMiwxMiBAQCBzdGF0aWMgdm9pZCBwYXJ0a2V5X2RhdHVt X2Zyb21fZXhwcihQYXJ0aXRpb25QcnVuZUNvbnRleHQgKmNvbnRleHQsCiAvKgogICogbWFrZV9w YXJ0aXRpb25fcHJ1bmVpbmZvCiAgKgkJQ2hlY2tzIGlmIHRoZSBnaXZlbiBzZXQgb2YgcXVhbHMg Y2FuIGJlIHVzZWQgdG8gYnVpbGQgcHJ1bmluZyBzdGVwcwotICoJCXRoYXQgdGhlIGV4ZWN1dG9y IHdpbGwgdXNlIHRvIHBydW5lIHVzZWxlc3Mgb25lcyBmcm9tIGdpdmVuIHNldCBvZgotICoJCWNo aWxkIHBhdGhzLCBhbmQgaWYgc28gYnVpbGRzIGEgUGFydGl0aW9uUHJ1bmVJbmZvIHRoYXQgd2ls bCBhbGxvdyB0aGUKLSAqCQlleGVjdXRvciB0byBkbyBkbyBhbmQgYXBwZW5kIGl0IHRvIHJvb3Qt PnBhcnRQcnVuZUluZm9zLgorICoJCXRoYXQgdGhlIGV4ZWN1dG9yIGNhbiB1c2UgdG8gcHJ1bmUg YXdheSB1bm5lZWRlZCBwYXJ0aXRpb25zLiAgSWYKKyAqCQlzdWl0YWJsZSBxdWFscyBhcmUgZm91 bmQgdGhlbiBhIFBhcnRpdGlvblBydW5lSW5mbyBpcyBidWlsdCBhbmQgdGFnZ2VkCisgKgkJb250 byB0aGUgUGxhbm5lckluZm8ncyBwYXJ0UHJ1bmVJbmZvcyBsaXN0LgogICoKLSAqIFJldHVybiB2 YWx1ZSBpcyAwLWJhc2VkIGluZGV4IG9mIHRoZSBhZGRlZCBQYXJ0aXRpb25QcnVuZUluZm8gb3Ig LTEgaWYgb25lCi0gKiB3YXMgbm90IGJ1aWx0IGFmdGVyIGFsbC4KKyAqIFRoZSByZXR1cm4gdmFs dWUgaXMgdGhlIDAtYmFzZWQgaW5kZXggb2YgdGhlIGl0ZW0gYWRkZWQgdG8gdGhlCisgKiBwYXJ0 UHJ1bmVJbmZvcyBsaXN0IG9yIC0xIGlmIG5vdGhpbmcgd2FzIGFkZGVkLgogICoKICAqICdwYXJl bnRyZWwnIGlzIHRoZSBSZWxPcHRJbmZvIGZvciBhbiBhcHBlbmRyZWwsIGFuZCAnc3VicGF0aHMn IGlzIHRoZSBsaXN0CiAgKiBvZiBzY2FuIHBhdGhzIGZvciBpdHMgY2hpbGQgcmVscy4KQEAgLTMz NSwxMCArMzM1LDkgQEAgbWFrZV9wYXJ0aXRpb25fcHJ1bmVpbmZvKFBsYW5uZXJJbmZvICpyb290 LCBSZWxPcHRJbmZvICpwYXJlbnRyZWwsCiAJCQlhbGxtYXRjaGVkc3VicGxhbnMgPSBibXNfam9p bihtYXRjaGVkc3VicGxhbnMsCiAJCQkJCQkJCQkJICBhbGxtYXRjaGVkc3VicGxhbnMpOwogCQl9 Ci0JCWlmICghbmVlZHNfaW5pdF9wcnVuaW5nKQotCQkJbmVlZHNfaW5pdF9wcnVuaW5nID0gcGFy dHJlbF9uZWVkc19pbml0X3BydW5pbmc7Ci0JCWlmICghbmVlZHNfZXhlY19wcnVuaW5nKQotCQkJ bmVlZHNfZXhlY19wcnVuaW5nID0gcGFydHJlbF9uZWVkc19leGVjX3BydW5pbmc7CisKKwkJbmVl ZHNfaW5pdF9wcnVuaW5nIHw9IHBhcnRyZWxfbmVlZHNfaW5pdF9wcnVuaW5nOworCQluZWVkc19l eGVjX3BydW5pbmcgfD0gcGFydHJlbF9uZWVkc19leGVjX3BydW5pbmc7CiAJfQogCiAJcGZyZWUo cmVsaWRfc3VicGxhbl9tYXApOwpAQCAtNTcwLDcgKzU2OSw3IEBAIG1ha2VfcGFydGl0aW9uZWRy ZWxfcHJ1bmVpbmZvKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpwYXJlbnRyZWwsCiAJ CSAqIHRoYXQgd291bGQgcmVxdWlyZSBwZXItc2NhbiBwcnVuaW5nLgogCQkgKgogCQkgKiBJbiB0 aGUgZmlyc3QgcGFzcywgd2Ugbm90ZSB3aGV0aGVyIHRoZSAybmQgcGFzcyBpcyBuZWNlc3Nhcnkg YnkKLQkJICogYnkgbm90aW5nIHRoZSBwcmVzZW5jZSBvZiBFWEVDIHBhcmFtZXRlcnMuCisJCSAq IG5vdGluZyB0aGUgcHJlc2VuY2Ugb2YgRVhFQyBwYXJhbWV0ZXJzLgogCQkgKi8KIAkJZ2VuX3Bh cnRwcnVuZV9zdGVwcyhzdWJwYXJ0LCBwYXJ0cHJ1bmVxdWFsLCBQQVJUVEFSR0VUX0lOSVRJQUws CiAJCQkJCQkJJmNvbnRleHQpOwpAQCAtNjQ1LDEwICs2NDQsMTEgQEAgbWFrZV9wYXJ0aXRpb25l ZHJlbF9wcnVuZWluZm8oUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnBhcmVudHJlbCwK IAkJcGluZm8tPmV4ZWNwYXJhbWlkcyA9IGV4ZWNwYXJhbWlkczsKIAkJLyogUmVtYWluaW5nIGZp ZWxkcyB3aWxsIGJlIGZpbGxlZCBpbiB0aGUgbmV4dCBsb29wICovCiAKLQkJaWYgKCEqbmVlZHNf aW5pdF9wcnVuaW5nKQotCQkJKm5lZWRzX2luaXRfcHJ1bmluZyA9IChpbml0aWFsX3BydW5pbmdf c3RlcHMgIT0gTklMKTsKLQkJaWYgKCEqbmVlZHNfZXhlY19wcnVuaW5nKQotCQkJKm5lZWRzX2V4 ZWNfcHJ1bmluZyA9IChleGVjX3BydW5pbmdfc3RlcHMgIT0gTklMKTsKKwkJLyogcmVjb3JkIHdo aWNoIHR5cGVzIG9mIHBydW5pbmcgc3RlcHMgd2UndmUgc2VlbiBzbyBmYXIgKi8KKwkJaWYgKGlu aXRpYWxfcHJ1bmluZ19zdGVwcyAhPSBOSUwpCisJCQkqbmVlZHNfaW5pdF9wcnVuaW5nID0gdHJ1 ZTsKKwkJaWYgKGV4ZWNfcHJ1bmluZ19zdGVwcyAhPSBOSUwpCisJCQkqbmVlZHNfZXhlY19wcnVu aW5nID0gdHJ1ZTsKIAogCQlwaW5mb2xpc3QgPSBsYXBwZW5kKHBpbmZvbGlzdCwgcGluZm8pOwog CX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMgYi9zcmMvYmFja2VuZC90 Y29wL3BxdWVyeS5jCmluZGV4IGE2Mjc0NDhhNWEuLjhjYzJlMjE2MmQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC9wcXVlcnkuYwpA QCAtMTIwNCw3ICsxMjA0LDYgQEAgUG9ydGFsUnVuTXVsdGkoUG9ydGFsIHBvcnRhbCwKIHsKIAli b29sCQlhY3RpdmVfc25hcHNob3Rfc2V0ID0gZmFsc2U7CiAJTGlzdENlbGwgICAqc3RtdGxpc3Rf aXRlbTsKLQlpbnQJCQlpOwogCiAJLyoKIAkgKiBJZiB0aGUgZGVzdGluYXRpb24gaXMgRGVzdFJl bW90ZUV4ZWN1dGUsIGNoYW5nZSB0byBEZXN0Tm9uZS4gIFRoZQpAQCAtMTIyNSwxNSArMTIyNCw5 IEBAIFBvcnRhbFJ1bk11bHRpKFBvcnRhbCBwb3J0YWwsCiAJICogTG9vcCB0byBoYW5kbGUgdGhl IGluZGl2aWR1YWwgcXVlcmllcyBnZW5lcmF0ZWQgZnJvbSBhIHNpbmdsZSBwYXJzZXRyZWUKIAkg KiBieSBhbmFseXNpcyBhbmQgcmV3cml0ZS4KIAkgKi8KLQlpID0gMDsKIAlmb3JlYWNoKHN0bXRs aXN0X2l0ZW0sIHBvcnRhbC0+c3RtdHMpCiAJewogCQlQbGFubmVkU3RtdCAqcHN0bXQgPSBsZmly c3Rfbm9kZShQbGFubmVkU3RtdCwgc3RtdGxpc3RfaXRlbSk7Ci0JCVBhcnRpdGlvblBydW5lUmVz dWx0ICpwYXJ0X3BydW5lX3Jlc3VsdCA9IHBvcnRhbC0+cGFydF9wcnVuZV9yZXN1bHRzID8KLQkJ CQkJCQkJCSAgbGlzdF9udGgocG9ydGFsLT5wYXJ0X3BydW5lX3Jlc3VsdHMsIGkpIDoKLQkJCQkJ CQkJCSAgTlVMTDsKLQotCQlpKys7CiAKIAkJLyoKIAkJICogSWYgd2UgZ290IGEgY2FuY2VsIHNp Z25hbCBpbiBwcmlvciBjb21tYW5kLCBxdWl0CkBAIC0xMjQyLDYgKzEyMzUsOCBAQCBQb3J0YWxS dW5NdWx0aShQb3J0YWwgcG9ydGFsLAogCiAJCWlmIChwc3RtdC0+dXRpbGl0eVN0bXQgPT0gTlVM TCkKIAkJeworCQkJUGFydGl0aW9uUHJ1bmVSZXN1bHQgKnBhcnRfcHJ1bmVfcmVzdWx0ID0gTlVM TDsKKwogCQkJLyoKIAkJCSAqIHByb2Nlc3MgYSBwbGFubmFibGUgcXVlcnkuCiAJCQkgKi8KQEAg LTEyODgsNiArMTI4MywxNCBAQCBQb3J0YWxSdW5NdWx0aShQb3J0YWwgcG9ydGFsLAogCQkJZWxz ZQogCQkJCVVwZGF0ZUFjdGl2ZVNuYXBzaG90Q29tbWFuZElkKCk7CiAKKwkJCS8qCisJCQkgKiBE ZXRlcm1pbmUgaWYgdGhlcmUncyBhIGNvcnJlc3BvbmRpbmcgUGFydGl0aW9uUHJ1bmVSZXN1bHQg Zm9yCisJCQkgKiB0aGlzIFBsYW5uZWRTdG10LgorCQkJICovCisJCQlpZiAocG9ydGFsLT5wYXJ0 X3BydW5lX3Jlc3VsdHMgIT0gTklMKQorCQkJCXBhcnRfcHJ1bmVfcmVzdWx0ID0gbGlzdF9udGgo cG9ydGFsLT5wYXJ0X3BydW5lX3Jlc3VsdHMsCisJCQkJCQkJCQkJCSBmb3JlYWNoX2N1cnJlbnRf aW5kZXgoc3RtdGxpc3RfaXRlbSkpOworCiAJCQlpZiAocHN0bXQtPmNhblNldFRhZykKIAkJCXsK IAkJCQkvKiBzdGF0ZW1lbnQgY2FuIHNldCB0YWcgc3RyaW5nICovCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9jb21tYW5kcy9leHBsYWluLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9leHBsYWlu LmgKaW5kZXggMzQ5NzVjNjllZS4uYmJjOGM0MmQ4OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv Y29tbWFuZHMvZXhwbGFpbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2V4cGxhaW4uaApA QCAtODcsNyArODcsOCBAQCBleHRlcm4gdm9pZCBFeHBsYWluT25lVXRpbGl0eShOb2RlICp1dGls aXR5U3RtdCwgSW50b0NsYXVzZSAqaW50bywKIAkJCQkJCQkgIEV4cGxhaW5TdGF0ZSAqZXMsIGNv bnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCQkJCQkJCSAgUGFyYW1MaXN0SW5mbyBwYXJhbXMsIFF1 ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52KTsKIAotZXh0ZXJuIHZvaWQgRXhwbGFpbk9uZVBsYW4o UGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBQYXJ0aXRpb25QcnVuZVJlc3VsdCAqcGFydF9wcnVu ZV9yZXN1bCwKK2V4dGVybiB2b2lkIEV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVk c3RtdCwKKwkJCQkJCSAgIFBhcnRpdGlvblBydW5lUmVzdWx0ICpwYXJ0X3BydW5lX3Jlc3VsdCwK IAkJCQkJCSAgIEludG9DbGF1c2UgKmludG8sCiAJCQkJCQkgICBFeHBsYWluU3RhdGUgKmVzLCBj b25zdCBjaGFyICpxdWVyeVN0cmluZywKIAkJCQkJCSAgIFBhcmFtTGlzdEluZm8gcGFyYW1zLCBR dWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVz L2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggNDNiZDI5 MzQzMy4uYThiZjkwOGQ2MyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVz LmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKQEAgLTEwMDAsMTEgKzEwMDAs MTEgQEAgdHlwZWRlZiBUdXBsZVRhYmxlU2xvdCAqKCpFeGVjUHJvY05vZGVNdGQpIChzdHJ1Y3Qg UGxhblN0YXRlICpwc3RhdGUpOwogICoKICAqIFRoaXMgaXMgdXNlZCBieSBHZXRDYWNoZWRQbGFu KCkgdG8gaW5mb3JtIGl0cyBjYWxsZXJzIG9mIHRoZSBwcnVuaW5nCiAgKiBkZWNpc2lvbnMgbWFk ZSB3aGVuIHBlcmZvcm1pbmcgQWNxdWlyZUV4ZWN1dG9yTG9ja3MoKSBvbiBhIGdpdmVuIGNhY2hl ZAotICogUGxhbm5lZFN0bXQsIHdoaWNoIHRoZSBjYWxsZXJzIHRoZW4gcGFzcyB0aGF0IG9uIHRv IHRoZSBleGVjdXRvci4gIFRoZQotICogZXhlY3V0b3IgcmVmZXJzIHRvIHRoaXMgbm9kZSB3aGVu IG1hZGUgYXZhaWxhYmxlIHdoZW4gaW5pdGlhbGl6aW5nIHRoZSBwbGFuCi0gKiBub2RlcyB0byB3 aGljaCB0aG9zZSBQYXJ0aXRpb25QcnVuZUluZm9zIGFwcGx5IHNvIHRoYXQgdGhlIHNhbWUgc2V0 IG9mCi0gKiBxdWFsaWZ5aW5nIHN1YnBsYW5zIGFyZSBpbml0aWFsaXplZCwgcmF0aGVyIHRoYW4g ZGVyaXZpbmcgdGhhdCBzZXQgYWdhaW4gYnkKLSAqIHJlZG9pbmcgaW5pdGlhbCBwcnVuaW5nLgor ICogUGxhbm5lZFN0bXQsIHdoaWNoIHRoZSBjYWxsZXJzIHRoZW4gcGFzcyBvbnRvIHRoZSBleGVj dXRvci4gIFRoZSBleGVjdXRvcgorICogcmVmZXJzIHRvIHRoaXMgbm9kZSB3aGVuIG1hZGUgYXZh aWxhYmxlIHdoZW4gaW5pdGlhbGl6aW5nIHRoZSBwbGFuIG5vZGVzIHRvCisgKiB3aGljaCB0aG9z ZSBQYXJ0aXRpb25QcnVuZUluZm9zIGFwcGx5IHNvIHRoYXQgdGhlIHNhbWUgc2V0IG9mIHF1YWxp ZnlpbmcKKyAqIHN1YnBsYW5zIGFyZSBpbml0aWFsaXplZCwgcmF0aGVyIHRoYW4gZGVyaXZpbmcg dGhhdCBzZXQgYWdhaW4gYnkgcmVkb2luZworICogaW5pdGlhbCBwcnVuaW5nLgogICovCiB0eXBl ZGVmIHN0cnVjdCBQYXJ0aXRpb25QcnVuZVJlc3VsdAogewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvbm9kZXMvcGxhbm5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAppbmRl eCA1NTAzMDgxNDdkLi5mOGYzOTcxZjQ0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9w bGFubm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaApAQCAtMjc0LDEx ICsyNzQsNyBAQCB0eXBlZGVmIHN0cnVjdCBBcHBlbmQKIAkgKi8KIAlpbnQJCQlmaXJzdF9wYXJ0 aWFsX3BsYW47CiAKLQkvKgotCSAqIEluZGV4IG9mIHRoaXMgcGxhbidzIFBhcnRpdGlvblBydW5l SW5mbyBpbiBQbGFubmVkU3RtdC5wYXJ0UHJ1bmVJbmZvcwotCSAqIHRvIGJlIHVzZWQgZm9yIHJ1 bi10aW1lIHN1YnBsYW4gcHJ1bmluZzsgLTEgaWYgcnVuLXRpbWUgcHJ1bmluZyBpcwotCSAqIG5v dCBuZWVkZWQuCi0JICovCisJLyogSW5kZXggdG8gUGxhbm5lckluZm8ucGFydFBydW5lSW5mb3Mg b3IgLTEgaWYgbm8gcnVuLXRpbWUgcHJ1bmluZyAqLwogCWludAkJCXBhcnRfcHJ1bmVfaW5kZXg7 CiB9IEFwcGVuZDsKIApAQCAtMjk5LDExICsyOTUsNyBAQCB0eXBlZGVmIHN0cnVjdCBNZXJnZUFw cGVuZAogCU9pZAkJICAgKmNvbGxhdGlvbnM7CQkvKiBPSURzIG9mIGNvbGxhdGlvbnMgKi8KIAli b29sCSAgICpudWxsc0ZpcnN0OwkJLyogTlVMTFMgRklSU1QvTEFTVCBkaXJlY3Rpb25zICovCiAK LQkvKgotCSAqIEluZGV4IG9mIHRoaXMgcGxhbidzIFBhcnRpdGlvblBydW5lSW5mbyBpbiBQbGFu bmVkU3RtdC5wYXJ0UHJ1bmVJbmZvcwotCSAqIHRvIGJlIHVzZWQgZm9yIHJ1bi10aW1lIHN1YnBs YW4gcHJ1bmluZzsgLTEgaWYgcnVuLXRpbWUgcHJ1bmluZyBpcwotCSAqIG5vdCBuZWVkZWQuCi0J ICovCisJLyogSW5kZXggdG8gUGxhbm5lckluZm8ucGFydFBydW5lSW5mb3Mgb3IgLTEgaWYgbm8g cnVuLXRpbWUgcHJ1bmluZyAqLwogCWludAkJCXBhcnRfcHJ1bmVfaW5kZXg7CiB9IE1lcmdlQXBw ZW5kOwogCg== --000000000000c71e0305dc22b828--