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 1o6Se1-000111-Kw for pgsql-hackers@arkaria.postgresql.org; Wed, 29 Jun 2022 08:01:54 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1o6Se0-0003my-75 for pgsql-hackers@arkaria.postgresql.org; Wed, 29 Jun 2022 08:01:52 +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 1o6Sdz-0003mp-BJ for pgsql-hackers@lists.postgresql.org; Wed, 29 Jun 2022 08:01:51 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by makus.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1o6Sdp-0004bG-VK for pgsql-hackers@lists.postgresql.org; Wed, 29 Jun 2022 08:01:50 +0000 Received: from mail.postgrespro.ru (cyclops.postgrespro.ru [93.174.131.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mail.postgrespro.ru (Postfix) with ESMTPSA id 1ACAE21C0360; Wed, 29 Jun 2022 11:01:38 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1656489698; bh=uQKtPS8son5pw0Lbl1JcrAzchNSf3MhUzV35mmC6YO0=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=RNfLJEoWw4nRX64SVAwUwoiny7zV14AQ0jggGbVCuTWhuvhWBTq5u7EWMs5avPtGZ gyuLzTZ257P++xAaI7clHQOHXLNDtAeeF5n5v2B6UUU6gXktBnGqIyTEH5cFTjmGxg BDS7HbV9H6eNHeX4fEGPCIUv3aE5m2n8qCGWEnCo= MIME-Version: 1.0 Date: Wed, 29 Jun 2022 11:01:37 +0300 From: Alexander Pyhalov To: pgsql-hackers@lists.postgresql.org Cc: Masahiko Sawada , Michael Paquier , =?UTF-8?Q?=E6=9D=8E=E6=9D=B0=28=E6=85=8E?= =?UTF-8?Q?=E8=BF=BD=29?= , =?UTF-8?Q?=E6=9B=BE=E6=96=87=E6=97=8C=28=E4=B9=89=E4=BB=8E=29?= , Alvaro Herrera , Justin Pryzby Subject: Re: CREATE INDEX CONCURRENTLY on partitioned index In-Reply-To: <20220628183309.GD28130@telsasoft.com> References: <20201031063117.GF3080@telsasoft.com> <20201129202221.GA9477@telsasoft.com> <20210128143013.GC7450@telsasoft.com> <20210226182019.GU20769@telsasoft.com> <04657227cc37b6353cf0c72bedac70cc@postgrespro.ru> <20220628183309.GD28130@telsasoft.com> User-Agent: Roundcube Webmail/1.4.11 Message-ID: X-Sender: a.pyhalov@postgrespro.ru Content-Type: multipart/mixed; boundary="=_37f0de76e2ab40a5d828bb75a5990eec" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_37f0de76e2ab40a5d828bb75a5990eec Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8; format=flowed Justin Pryzby писал 2022-06-28 21:33: > Hi, > > On Thu, Feb 10, 2022 at 06:07:08PM +0300, Alexander Pyhalov wrote: >> I've rebased patches and tried to fix issues I've seen. I've fixed >> reference >> after table_close() in the first patch (can be seen while building >> with >> CPPFLAGS='-DRELCACHE_FORCE_RELEASE'). > Rebased patches on the current master. They still require proper review. -- Best regards, Alexander Pyhalov, Postgres Professional --=_37f0de76e2ab40a5d828bb75a5990eec Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v3-0005-Mark-intermediate-partitioned-indexes-as-valid.patch Content-Disposition: attachment; filename=v3-0005-Mark-intermediate-partitioned-indexes-as-valid.patch; size=8496 RnJvbSA1YzExODQ5Y2ViMmExZmViMGU0NGRiZGYzMGNjMjdkZTAyODJhNjU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgUHloYWxvdiA8YS5weWhhbG92QHBvc3RncmVz cHJvLnJ1PgpEYXRlOiBNb24sIDI4IEZlYiAyMDIyIDEwOjUwOjU4ICswMzAwClN1YmplY3Q6IFtQ QVRDSCA1LzVdIE1hcmsgaW50ZXJtZWRpYXRlIHBhcnRpdGlvbmVkIGluZGV4ZXMgYXMgdmFsaWQK Ci0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMgICAgICAgfCAzMyArKysrKysr KysrLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbmRleGluZy5vdXQgfCA4MCArKysrKysr KysrKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvaW5kZXhpbmcuc3FsICAg ICAgfCAgOCArKysKIDMgZmlsZXMgY2hhbmdlZCwgMTE4IGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYwppbmRleCBkMDlmMDM5MDQxMy4uZDNjZWQ2 MjY1YjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jCkBAIC0zMTM5LDYgKzMxMzksNyBAQCBz dGF0aWMgdm9pZAogUmVpbmRleFBhcnRpdGlvbnMoT2lkIHJlbGlkLCBSZWluZGV4UGFyYW1zICpw YXJhbXMsIGJvb2wgaXNUb3BMZXZlbCkKIHsKIAlMaXN0CSAgICpwYXJ0aXRpb25zID0gTklMOwor CUxpc3QJICAgKmluaHBhcnRpbmRleGVzID0gTklMOwogCWNoYXIJCXJlbGtpbmQgPSBnZXRfcmVs X3JlbGtpbmQocmVsaWQpOwogCWNoYXIJICAgKnJlbG5hbWUgPSBnZXRfcmVsX25hbWUocmVsaWQp OwogCWNoYXIJICAgKnJlbG5hbWVzcGFjZSA9IGdldF9uYW1lc3BhY2VfbmFtZShnZXRfcmVsX25h bWVzcGFjZShyZWxpZCkpOwpAQCAtMzE5Myw2ICszMTk0LDE3IEBAIFJlaW5kZXhQYXJ0aXRpb25z KE9pZCByZWxpZCwgUmVpbmRleFBhcmFtcyAqcGFyYW1zLCBib29sIGlzVG9wTGV2ZWwpCiAJCWNo YXIJCXBhcnRraW5kID0gZ2V0X3JlbF9yZWxraW5kKHBhcnRvaWQpOwogCQlNZW1vcnlDb250ZXh0 IG9sZF9jb250ZXh0OwogCisJCS8qIENyZWF0ZSBhIGxpc3Qgb2YgaW52YWxpZCBpbmhlcml0ZWQg cGFydGl0aW9uZWQgaW5kZXhlcyAqLworCQlpZiAocGFydGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJ T05FRF9JTkRFWCkKKwkJeworCQkJaWYgKHBhcnRvaWQgPT0gcmVsaWQgfHwgZ2V0X2luZGV4X2lz dmFsaWQocGFydG9pZCkpCisJCQkJY29udGludWU7CisKKwkJCW9sZF9jb250ZXh0ID0gTWVtb3J5 Q29udGV4dFN3aXRjaFRvKHJlaW5kZXhfY29udGV4dCk7CisJCQlpbmhwYXJ0aW5kZXhlcyA9IGxh cHBlbmRfb2lkKGluaHBhcnRpbmRleGVzLCBwYXJ0b2lkKTsKKwkJCU1lbW9yeUNvbnRleHRTd2l0 Y2hUbyhvbGRfY29udGV4dCk7CisJCX0KKwogCQkvKgogCQkgKiBUaGlzIGRpc2NhcmRzIHBhcnRp dGlvbmVkIHRhYmxlcywgcGFydGl0aW9uZWQgaW5kZXhlcyBhbmQgZm9yZWlnbgogCQkgKiB0YWJs ZXMuCkBAIC0zMjM3LDkgKzMyNDksMjggQEAgUmVpbmRleFBhcnRpdGlvbnMoT2lkIHJlbGlkLCBS ZWluZGV4UGFyYW1zICpwYXJhbXMsIGJvb2wgaXNUb3BMZXZlbCkKIAkJT2lkCXRhYmxlb2lkID0g SW5kZXhHZXRSZWxhdGlvbihyZWxpZCwgZmFsc2UpOwogCQlMaXN0CSpjaGlsZF90YWJsZXMgPSBm aW5kX2FsbF9pbmhlcml0b3JzKHRhYmxlb2lkLCBTaGFyZUxvY2ssIE5VTEwpOwogCi0JCS8qIEJv dGggbGlzdHMgaW5jbHVkZSB0aGVpciBwYXJlbnQgcmVsYXRpb24gYXMgd2VsbCBhcyBhbnkgaW50 ZXJtZWRpYXRlIHBhcnRpdGlvbmVkIHJlbHMgKi8KKwkJLyoKKwkJICogQm90aCBsaXN0cyBpbmNs dWRlIHRoZWlyIHBhcmVudCByZWxhdGlvbiBhcyB3ZWxsIGFzIGFueQorCQkgKiBpbnRlcm1lZGlh dGUgcGFydGl0aW9uZWQgcmVscworCQkgKi8KIAkJaWYgKGxpc3RfbGVuZ3RoKGluaG9pZHMpID09 IGxpc3RfbGVuZ3RoKGNoaWxkX3RhYmxlcykpCisJCXsKIAkJCWluZGV4X3NldF9zdGF0ZV9mbGFn cyhyZWxpZCwgSU5ERVhfQ1JFQVRFX1NFVF9WQUxJRCk7CisKKwkJCS8qIE1hcmsgYW55IGludGVy bWVkaWF0ZSBwYXJ0aXRpb25lZCBpbmRleCBhcyB2YWxpZCAqLworCQkJZm9yZWFjaChsYywgaW5o cGFydGluZGV4ZXMpCisJCQl7CisJCQkJT2lkICAgICAgICAgcGFydG9pZCA9IGxmaXJzdF9vaWQo bGMpOworCisJCQkJQXNzZXJ0KGdldF9yZWxfcmVsa2luZChwYXJ0b2lkKSA9PSBSRUxLSU5EX1BB UlRJVElPTkVEX0lOREVYKTsKKwkJCQlBc3NlcnQoIWdldF9pbmRleF9pc3ZhbGlkKHBhcnRvaWQp KTsKKworCQkJCS8qIENhbid0IG1hcmsgYW4gaW5kZXggdmFsaWQgd2l0aG91dCBtYXJraW5nIGl0 IHJlYWR5ICovCisJCQkJaW5kZXhfc2V0X3N0YXRlX2ZsYWdzKHBhcnRvaWQsIElOREVYX0NSRUFU RV9TRVRfUkVBRFkpOworCQkJCUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7CisJCQkJaW5kZXhf c2V0X3N0YXRlX2ZsYWdzKHBhcnRvaWQsIElOREVYX0NSRUFURV9TRVRfVkFMSUQpOworCQkJfQor CQl9CiAJfQogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvaW5k ZXhpbmcub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbmRleGluZy5vdXQKaW5kZXgg YTRjY2FlNTBkZTMuLmI0ZjFhZWE2ZmNhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2luZGV4aW5nLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2luZGV4 aW5nLm91dApAQCAtNTcsNiArNTcsOCBAQCBjcmVhdGUgdGFibGUgaWR4cGFydDExIHBhcnRpdGlv biBvZiBpZHhwYXJ0MSBmb3IgdmFsdWVzIGZyb20gKDApIHRvICgxMCkgcGFydGl0aQogY3JlYXRl IHRhYmxlIGlkeHBhcnQxMTEgcGFydGl0aW9uIG9mIGlkeHBhcnQxMSBkZWZhdWx0IHBhcnRpdGlv biBieSByYW5nZShhKTsKIGNyZWF0ZSB0YWJsZSBpZHhwYXJ0MTExMSBwYXJ0aXRpb24gb2YgaWR4 cGFydDExMSBkZWZhdWx0IHBhcnRpdGlvbiBieSByYW5nZShhKTsKIGNyZWF0ZSB0YWJsZSBpZHhw YXJ0MiBwYXJ0aXRpb24gb2YgaWR4cGFydCBmb3IgdmFsdWVzIGZyb20gKDEwKSB0byAoMjApOwor Y3JlYXRlIHRhYmxlIGlkeHBhcnQzIHBhcnRpdGlvbiBvZiBpZHhwYXJ0IGZvciB2YWx1ZXMgZnJv bSAoMzApIHRvICg0MCkgcGFydGl0aW9uIGJ5IHJhbmdlKGEpOworY3JlYXRlIHRhYmxlIGlkeHBh cnQzMSBwYXJ0aXRpb24gb2YgaWR4cGFydDMgZGVmYXVsdDsKIGluc2VydCBpbnRvIGlkeHBhcnQy IHZhbHVlcygxMCksKDEwKTsgLS0gbm90IHVuaXF1ZQogY3JlYXRlIGluZGV4IGNvbmN1cnJlbnRs eSBvbiBpZHhwYXJ0IChhKTsgLS0gcGFydGl0aW9uZWQKIGNyZWF0ZSBpbmRleCBjb25jdXJyZW50 bHkgb24gaWR4cGFydDEgKGEpOyAtLSBwYXJ0aXRpb25lZCBhbmQgcGFydGl0aW9uCkBAIC03Niw3 ICs3OCw3IEBAIFBhcnRpdGlvbiBrZXk6IFJBTkdFIChhKQogSW5kZXhlczoKICAgICAiaWR4cGFy dF9hX2lkeCIgYnRyZWUgKGEpCiAgICAgImlkeHBhcnRfYV9pZHgxIiBVTklRVUUsIGJ0cmVlIChh KSBJTlZBTElECi1OdW1iZXIgb2YgcGFydGl0aW9uczogMiAoVXNlIFxkKyB0byBsaXN0IHRoZW0u KQorTnVtYmVyIG9mIHBhcnRpdGlvbnM6IDMgKFVzZSBcZCsgdG8gbGlzdCB0aGVtLikKIAogXGQg aWR4cGFydDEKICAgICAgICAgUGFydGl0aW9uZWQgdGFibGUgInB1YmxpYy5pZHhwYXJ0MSIKQEAg LTg4LDExICs5MCw1OSBAQCBOdW1iZXIgb2YgcGFydGl0aW9uczogMiAoVXNlIFxkKyB0byBsaXN0 IHRoZW0uKQogUGFydGl0aW9uIG9mOiBpZHhwYXJ0IEZPUiBWQUxVRVMgRlJPTSAoMCkgVE8gKDEw KQogUGFydGl0aW9uIGtleTogUkFOR0UgKGEpCiBJbmRleGVzOgotICAgICJpZHhwYXJ0MV9hX2lk eCIgYnRyZWUgKGEpIElOVkFMSUQKKyAgICAiaWR4cGFydDFfYV9pZHgiIGJ0cmVlIChhKQogICAg ICJpZHhwYXJ0MV9hX2lkeDEiIGJ0cmVlIChhKQogICAgICJpZHhwYXJ0MV9hX2lkeDIiIFVOSVFV RSwgYnRyZWUgKGEpIElOVkFMSUQKIE51bWJlciBvZiBwYXJ0aXRpb25zOiAxIChVc2UgXGQrIHRv IGxpc3QgdGhlbS4pCiAKK1xkIGlkeHBhcnQxMQorICAgICAgIFBhcnRpdGlvbmVkIHRhYmxlICJw dWJsaWMuaWR4cGFydDExIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJs ZSB8IERlZmF1bHQgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBi ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBjICAgICAgfCB0ZXh0 ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK1BhcnRpdGlvbiBvZjogaWR4cGFydDEgRk9S IFZBTFVFUyBGUk9NICgwKSBUTyAoMTApCitQYXJ0aXRpb24ga2V5OiBSQU5HRSAoYSkKK0luZGV4 ZXM6CisgICAgImlkeHBhcnQxMV9hX2lkeCIgYnRyZWUgKGEpCisgICAgImlkeHBhcnQxMV9hX2lk eDEiIGJ0cmVlIChhKQorICAgICJpZHhwYXJ0MTFfYV9pZHgyIiBidHJlZSAoYSkKKyAgICAiaWR4 cGFydDExX2FfaWR4MyIgVU5JUVVFLCBidHJlZSAoYSkgSU5WQUxJRAorTnVtYmVyIG9mIHBhcnRp dGlvbnM6IDEgKFVzZSBcZCsgdG8gbGlzdCB0aGVtLikKKworXGQgaWR4cGFydDExMQorICAgICAg IFBhcnRpdGlvbmVkIHRhYmxlICJwdWJsaWMuaWR4cGFydDExMSIKKyBDb2x1bW4gfCAgVHlwZSAg IHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgCisgYyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQYXJ0 aXRpb24gb2Y6IGlkeHBhcnQxMSBERUZBVUxUCitQYXJ0aXRpb24ga2V5OiBSQU5HRSAoYSkKK0lu ZGV4ZXM6CisgICAgImlkeHBhcnQxMTFfYV9pZHgiIGJ0cmVlIChhKQorICAgICJpZHhwYXJ0MTEx X2FfaWR4MSIgYnRyZWUgKGEpCisgICAgImlkeHBhcnQxMTFfYV9pZHgyIiBidHJlZSAoYSkKKyAg ICAiaWR4cGFydDExMV9hX2lkeDMiIFVOSVFVRSwgYnRyZWUgKGEpIElOVkFMSUQKK051bWJlciBv ZiBwYXJ0aXRpb25zOiAxIChVc2UgXGQrIHRvIGxpc3QgdGhlbS4pCisKK1xkIGlkeHBhcnQxMTEx CisgICAgICBQYXJ0aXRpb25lZCB0YWJsZSAicHVibGljLmlkeHBhcnQxMTExIgorIENvbHVtbiB8 ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2Vy IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAg IHwgICAgICAgICAgfCAKKyBjICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAg fCAKK1BhcnRpdGlvbiBvZjogaWR4cGFydDExMSBERUZBVUxUCitQYXJ0aXRpb24ga2V5OiBSQU5H RSAoYSkKK0luZGV4ZXM6CisgICAgImlkeHBhcnQxMTExX2FfaWR4IiBidHJlZSAoYSkKKyAgICAi aWR4cGFydDExMTFfYV9pZHgxIiBidHJlZSAoYSkKKyAgICAiaWR4cGFydDExMTFfYV9pZHgyIiBi dHJlZSAoYSkKKyAgICAiaWR4cGFydDExMTFfYV9pZHgzIiBVTklRVUUsIGJ0cmVlIChhKSBJTlZB TElECitOdW1iZXIgb2YgcGFydGl0aW9uczogMAorCiBcZCBpZHhwYXJ0MgogICAgICAgICAgICAg ICBUYWJsZSAicHVibGljLmlkeHBhcnQyIgogIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24g fCBOdWxsYWJsZSB8IERlZmF1bHQgCkBAIC0xMDcsNiArMTU3LDMyIEBAIEluZGV4ZXM6CiAgICAg ImlkeHBhcnQyX2FfaWR4MiIgVU5JUVVFLCBidHJlZSAoYSkgSU5WQUxJRAogICAgICJpZHhwYXJ0 Ml9hX2lkeDJfY2NuZXciIFVOSVFVRSwgYnRyZWUgKGEpIElOVkFMSUQKIAorXGQgaWR4cGFydDMK KyAgICAgICAgUGFydGl0aW9uZWQgdGFibGUgInB1YmxpYy5pZHhwYXJ0MyIKKyBDb2x1bW4gfCAg VHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCisgYyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwg CitQYXJ0aXRpb24gb2Y6IGlkeHBhcnQgRk9SIFZBTFVFUyBGUk9NICgzMCkgVE8gKDQwKQorUGFy dGl0aW9uIGtleTogUkFOR0UgKGEpCitJbmRleGVzOgorICAgICJpZHhwYXJ0M19hX2lkeCIgYnRy ZWUgKGEpCisgICAgImlkeHBhcnQzX2FfaWR4MSIgVU5JUVVFLCBidHJlZSAoYSkgSU5WQUxJRAor TnVtYmVyIG9mIHBhcnRpdGlvbnM6IDEgKFVzZSBcZCsgdG8gbGlzdCB0aGVtLikKKworXGQgaWR4 cGFydDMxCisgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5pZHhwYXJ0MzEiCisgQ29sdW1uIHwg IFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIg fCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAg fCAgICAgICAgICB8IAorIGMgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8 IAorUGFydGl0aW9uIG9mOiBpZHhwYXJ0MyBERUZBVUxUCitJbmRleGVzOgorICAgICJpZHhwYXJ0 MzFfYV9pZHgiIGJ0cmVlIChhKQorICAgICJpZHhwYXJ0MzFfYV9pZHgxIiBVTklRVUUsIGJ0cmVl IChhKSBJTlZBTElECisKIGRyb3AgdGFibGUgaWR4cGFydDsKIC0tIFZlcmlmeSBidWdmaXggd2l0 aCBxdWVyeSBvbiBpbmRleGVkIHBhcnRpdGlvbmVkIHRhYmxlIHdpdGggbm8gcGFydGl0aW9ucwog LS0gaHR0cHM6Ly9wb3N0Z3IuZXMvbS8yMDE4MDEyNDE2MjAwNi5wbWFwZml6bmhnbmd3dGpmQGFs dmhlcnJlLnBnc3FsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9pbmRleGluZy5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9pbmRleGluZy5zcWwKaW5kZXggM2Q0YjZlOWJjOTUu LjA2NjczYzE1MTk5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9pbmRleGluZy5z cWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvaW5kZXhpbmcuc3FsCkBAIC0zNiw2ICszNiw5 IEBAIGNyZWF0ZSB0YWJsZSBpZHhwYXJ0MTEgcGFydGl0aW9uIG9mIGlkeHBhcnQxIGZvciB2YWx1 ZXMgZnJvbSAoMCkgdG8gKDEwKSBwYXJ0aXRpCiBjcmVhdGUgdGFibGUgaWR4cGFydDExMSBwYXJ0 aXRpb24gb2YgaWR4cGFydDExIGRlZmF1bHQgcGFydGl0aW9uIGJ5IHJhbmdlKGEpOwogY3JlYXRl IHRhYmxlIGlkeHBhcnQxMTExIHBhcnRpdGlvbiBvZiBpZHhwYXJ0MTExIGRlZmF1bHQgcGFydGl0 aW9uIGJ5IHJhbmdlKGEpOwogY3JlYXRlIHRhYmxlIGlkeHBhcnQyIHBhcnRpdGlvbiBvZiBpZHhw YXJ0IGZvciB2YWx1ZXMgZnJvbSAoMTApIHRvICgyMCk7CitjcmVhdGUgdGFibGUgaWR4cGFydDMg cGFydGl0aW9uIG9mIGlkeHBhcnQgZm9yIHZhbHVlcyBmcm9tICgzMCkgdG8gKDQwKSBwYXJ0aXRp b24gYnkgcmFuZ2UoYSk7CitjcmVhdGUgdGFibGUgaWR4cGFydDMxIHBhcnRpdGlvbiBvZiBpZHhw YXJ0MyBkZWZhdWx0OworCiBpbnNlcnQgaW50byBpZHhwYXJ0MiB2YWx1ZXMoMTApLCgxMCk7IC0t IG5vdCB1bmlxdWUKIGNyZWF0ZSBpbmRleCBjb25jdXJyZW50bHkgb24gaWR4cGFydCAoYSk7IC0t IHBhcnRpdGlvbmVkCiBjcmVhdGUgaW5kZXggY29uY3VycmVudGx5IG9uIGlkeHBhcnQxIChhKTsg LS0gcGFydGl0aW9uZWQgYW5kIHBhcnRpdGlvbgpAQCAtNDQsNyArNDcsMTIgQEAgY3JlYXRlIGlu ZGV4IGNvbmN1cnJlbnRseSBvbiBpZHhwYXJ0MiAoYSk7IC0tIGxlYWYKIGNyZWF0ZSB1bmlxdWUg aW5kZXggY29uY3VycmVudGx5IG9uIGlkeHBhcnQgKGEpOyAtLSBwYXJ0aXRpb25lZCwgdW5pcXVl IGZhaWx1cmUKIFxkIGlkeHBhcnQKIFxkIGlkeHBhcnQxCitcZCBpZHhwYXJ0MTEKK1xkIGlkeHBh cnQxMTEKK1xkIGlkeHBhcnQxMTExCiBcZCBpZHhwYXJ0MgorXGQgaWR4cGFydDMKK1xkIGlkeHBh cnQzMQogZHJvcCB0YWJsZSBpZHhwYXJ0OwogCiAtLSBWZXJpZnkgYnVnZml4IHdpdGggcXVlcnkg b24gaW5kZXhlZCBwYXJ0aXRpb25lZCB0YWJsZSB3aXRoIG5vIHBhcnRpdGlvbnMKLS0gCjIuMzQu MQoK --=_37f0de76e2ab40a5d828bb75a5990eec Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v3-0004-ReindexPartitions-to-set-indisvalid.patch Content-Disposition: attachment; filename=v3-0004-ReindexPartitions-to-set-indisvalid.patch; size=2440 RnJvbSA3MTgzOGUwMTQ2ZTUxNTAwMTNjNDg4MTg3MTBkODk5ZTY5Nzg2ZGMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKdXN0aW4gUHJ5emJ5IDxwcnl6YnlAdGVsc2Fzb2Z0LmNvbT4K RGF0ZTogTW9uLCA3IEZlYiAyMDIyIDEwOjM5OjU5ICswMzAwClN1YmplY3Q6IFtQQVRDSCA0LzVd IFJlaW5kZXhQYXJ0aXRpb25zKCkgdG8gc2V0IGluZGlzdmFsaWQKCjAwMDQtUmVpbmRleFBhcnRp dGlvbnMtdG8tc2V0LWluZGlzdmFsaWQucGF0Y2ggZnJvbQpodHRwczovL3d3dy5wb3N0Z3Jlc3Fs Lm9yZy9tZXNzYWdlLWlkLzIwMjEwMjI2MTgyMDE5LkdVMjA3NjlAdGVsc2Fzb2Z0LmNvbQotLS0K IHNyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jIHwgMjMgKysrKysrKysrKysrKysrKysr LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKaW5kZXggYjIzMWEwNWI4YzkuLmQwOWYwMzkwNDEzIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYwpAQCAtMTcxNiw4ICsxNzE2LDYgQEAgcmVpbmRleF9p bnZhbGlkX2NoaWxkX2luZGV4ZXMoT2lkIGluZGV4UmVsYXRpb25JZCkKIAkgKiBDSUMgbmVlZHMg dG8gbWFyayBhIHBhcnRpdGlvbmVkIGluZGV4IGFzIFZBTElELCB3aGljaCBpdHNlbGYKIAkgKiBy ZXF1aXJlcyBzZXR0aW5nIFJFQURZLCB3aGljaCBpcyB1bnNldCBmb3IgQ0lDIChldmVuIHRob3Vn aAogCSAqIGl0J3MgbWVhbmluZ2xlc3MgZm9yIGFuIGluZGV4IHdpdGhvdXQgc3RvcmFnZSkuCi0J ICogVGhpcyBtdXN0IGJlIGRvbmUgb25seSB3aGlsZSBob2xkaW5nIGEgbG9jayB3aGljaCBwcmVj bHVkZXMgYWRkaW5nCi0JICogcGFydGl0aW9ucy4KIAkgKi8KIAlDb21tYW5kQ291bnRlckluY3Jl bWVudCgpOwogCWluZGV4X3NldF9zdGF0ZV9mbGFncyhpbmRleFJlbGF0aW9uSWQsIElOREVYX0NS RUFURV9TRVRfUkVBRFkpOwpAQCAtMTcyOSw5ICsxNzI3LDYgQEAgcmVpbmRleF9pbnZhbGlkX2No aWxkX2luZGV4ZXMoT2lkIGluZGV4UmVsYXRpb25JZCkKIAkgKiB0aGlzIGNvbW1pdHMgYW5kIHRo ZW4gc3RhcnRzIGEgbmV3IHRyYW5zYWN0aW9uIGltbWVkaWF0ZWx5LgogCSAqLwogCVJlaW5kZXhQ YXJ0aXRpb25zKGluZGV4UmVsYXRpb25JZCwgJnBhcmFtcywgdHJ1ZSk7Ci0KLQlDb21tYW5kQ291 bnRlckluY3JlbWVudCgpOwotCWluZGV4X3NldF9zdGF0ZV9mbGFncyhpbmRleFJlbGF0aW9uSWQs IElOREVYX0NSRUFURV9TRVRfVkFMSUQpOwogfQogCiAvKgpAQCAtMzIyOSw2ICszMjI0LDI0IEBA IFJlaW5kZXhQYXJ0aXRpb25zKE9pZCByZWxpZCwgUmVpbmRleFBhcmFtcyAqcGFyYW1zLCBib29s IGlzVG9wTGV2ZWwpCiAJICovCiAJUmVpbmRleE11bHRpcGxlSW50ZXJuYWwocGFydGl0aW9ucywg cGFyYW1zLCByZWxpZCwgbnBhcnQpOwogCisJLyoKKwkgKiBJZiBpbmRleGVzIGV4aXN0IG9uIGFs bCBvZiB0aGUgcGFydGl0aW9uZWQgdGFibGUncyBjaGlsZHJlbiwgYW5kIHdlCisJICoganVzdCBy ZWluZGV4ZWQgdGhlbSwgdGhlbiB3ZSBrbm93IHRoZXkncmUgdmFsaWQsIGFuZCBzbyBjYW4gbWFy ayB0aGUKKwkgKiBwYXJlbnQgaW5kZXggYXMgdmFsaWQuCisJICogVGhpcyBoYW5kbGVzIHRoZSBj YXNlIG9mIENSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkuCisJICogU2VlIGFsc286IHZhbGlkYXRl UGFydGl0aW9uZWRJbmRleCgpLgorCSAqLworCWlmIChnZXRfcmVsX3JlbGtpbmQocmVsaWQpID09 IFJFTEtJTkRfUEFSVElUSU9ORURfSU5ERVgKKwkJCSYmICFnZXRfaW5kZXhfaXN2YWxpZChyZWxp ZCkpCisJeworCQlPaWQJdGFibGVvaWQgPSBJbmRleEdldFJlbGF0aW9uKHJlbGlkLCBmYWxzZSk7 CisJCUxpc3QJKmNoaWxkX3RhYmxlcyA9IGZpbmRfYWxsX2luaGVyaXRvcnModGFibGVvaWQsIFNo YXJlTG9jaywgTlVMTCk7CisKKwkJLyogQm90aCBsaXN0cyBpbmNsdWRlIHRoZWlyIHBhcmVudCBy ZWxhdGlvbiBhcyB3ZWxsIGFzIGFueSBpbnRlcm1lZGlhdGUgcGFydGl0aW9uZWQgcmVscyAqLwor CQlpZiAobGlzdF9sZW5ndGgoaW5ob2lkcykgPT0gbGlzdF9sZW5ndGgoY2hpbGRfdGFibGVzKSkK KwkJCWluZGV4X3NldF9zdGF0ZV9mbGFncyhyZWxpZCwgSU5ERVhfQ1JFQVRFX1NFVF9WQUxJRCk7 CisJfQorCiAJLyoKIAkgKiBDbGVhbiB1cCB3b3JraW5nIHN0b3JhZ2UgLS0tIG5vdGUgd2UgbXVz dCBkbyB0aGlzIGFmdGVyCiAJICogU3RhcnRUcmFuc2FjdGlvbkNvbW1hbmQsIGVsc2Ugd2UgbWln aHQgYmUgdHJ5aW5nIHRvIGRlbGV0ZSB0aGUgYWN0aXZlCi0tIAoyLjM0LjEKCg== --=_37f0de76e2ab40a5d828bb75a5990eec Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v3-0003-Try-to-fix-create-index-progress-report.patch Content-Disposition: attachment; filename=v3-0003-Try-to-fix-create-index-progress-report.patch; size=7910 RnJvbSBmNWI4YWZlMWFhZmI3OGM1M2E1MjdkMzc5Yjk3OGNlOWYxZmUwNmQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgUHloYWxvdiA8YS5weWhhbG92QHBvc3RncmVz cHJvLnJ1PgpEYXRlOiBUdWUsIDggRmViIDIwMjIgMjE6MTU6MDUgKzAzMDAKU3ViamVjdDogW1BB VENIIDMvNV0gVHJ5IHRvIGZpeCBjcmVhdGUgaW5kZXggcHJvZ3Jlc3MgcmVwb3J0CgotLS0KIHNy Yy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jIHwgNjcgKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvaW5kZXguaCAgICAgIHwgIDEgKwogMiBm aWxlcyBjaGFuZ2VkLCA1NyBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2luZGV4Y21kcy5jCmluZGV4IDE0OTIzNTc4MGI5Li5iMjMxYTA1YjhjOSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvaW5kZXhjbWRzLmMKQEAgLTEwMiwxMSArMTAyLDE0IEBAIHN0YXRpYyB2b2lkIHJlaW5k ZXhfZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJncyk7CiBzdGF0aWMgdm9pZCBSZWluZGV4UGFydGl0 aW9ucyhPaWQgcmVsaWQsIFJlaW5kZXhQYXJhbXMgKnBhcmFtcywKIAkJCQkJCQkgIGJvb2wgaXNU b3BMZXZlbCk7CiBzdGF0aWMgdm9pZCBSZWluZGV4TXVsdGlwbGVJbnRlcm5hbChMaXN0ICpyZWxp ZHMsCi0JCQkJCQkJCQlSZWluZGV4UGFyYW1zICpwYXJhbXMpOworCQkJCQkJCQkJUmVpbmRleFBh cmFtcyAqcGFyYW1zLAorCQkJCQkJCQkJT2lkIHBhcmVudCwKKwkJCQkJCQkJCWludCBucGFydCk7 CiBzdGF0aWMgYm9vbCBSZWluZGV4UmVsYXRpb25Db25jdXJyZW50bHkoT2lkIHJlbGF0aW9uT2lk LAogCQkJCQkJCQkJCVJlaW5kZXhQYXJhbXMgKnBhcmFtcyk7CiBzdGF0aWMgdm9pZCB1cGRhdGVf cmVsaXNwYXJ0aXRpb24oT2lkIHJlbGF0aW9uSWQsIGJvb2wgbmV3dmFsKTsKIHN0YXRpYyBpbmxp bmUgdm9pZCBzZXRfaW5kZXhzYWZlX3Byb2NmbGFncyh2b2lkKTsKK3N0YXRpYyB2b2lkIHJlcG9y dF9jcmVhdGVfcGFydGl0aW9uX2luZGV4X2RvbmUoT2lkIHBhcmVudCwgaW50IG5wYXJ0KTsKIAog LyoKICAqIGNhbGxiYWNrIGFyZ3VtZW50IHR5cGUgZm9yIFJhbmdlVmFyQ2FsbGJhY2tGb3JSZWlu ZGV4SW5kZXgoKQpAQCAtMTIyMCw2ICsxMjIzLDcgQEAgRGVmaW5lSW5kZXgoT2lkIHJlbGF0aW9u SWQsCiAJCQlPaWQJCSAgICpvcGZhbU9pZHM7CiAJCQljaGFyCQkqcmVsbmFtZTsKIAorCiAJCQlw Z3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFtKFBST0dSRVNTX0NSRUFURUlEWF9QQVJUSVRJT05T X1RPVEFMLAogCQkJCQkJCQkJCSBucGFydHMpOwogCkBAIC0xNzA1LDcgKzE3MDksNyBAQCBzdGF0 aWMgdm9pZAogcmVpbmRleF9pbnZhbGlkX2NoaWxkX2luZGV4ZXMoT2lkIGluZGV4UmVsYXRpb25J ZCkKIHsKIAlSZWluZGV4UGFyYW1zIHBhcmFtcyA9IHsKLQkJLm9wdGlvbnMgPSBSRUlOREVYT1BU X0NPTkNVUlJFTlRMWSB8IFJFSU5ERVhPUFRfU0tJUFZBTElECisJCS5vcHRpb25zID0gUkVJTkRF WE9QVF9DT05DVVJSRU5UTFkgfCBSRUlOREVYT1BUX1NLSVBWQUxJRCB8IFJFSU5ERVhPUFRfUkVQ T1JUX0NSRUFURV9QQVJUCiAJfTsKIAogCS8qCkBAIC0xNzE4LDYgKzE3MjIsOCBAQCByZWluZGV4 X2ludmFsaWRfY2hpbGRfaW5kZXhlcyhPaWQgaW5kZXhSZWxhdGlvbklkKQogCUNvbW1hbmRDb3Vu dGVySW5jcmVtZW50KCk7CiAJaW5kZXhfc2V0X3N0YXRlX2ZsYWdzKGluZGV4UmVsYXRpb25JZCwg SU5ERVhfQ1JFQVRFX1NFVF9SRUFEWSk7CiAKKwlwZ3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFt KFBST0dSRVNTX0NSRUFURUlEWF9QSEFTRSwgUFJPR1JFU1NfQ1JFQVRFSURYX1BIQVNFX1ZBTElE QVRFX0lEWFNDQU4pOworCiAJLyoKIAkgKiBQcm9jZXNzIGVhY2ggcGFydGl0aW9uIGxpc3RlZCBp biBhIHNlcGFyYXRlIHRyYW5zYWN0aW9uLiAgTm90ZSB0aGF0CiAJICogdGhpcyBjb21taXRzIGFu ZCB0aGVuIHN0YXJ0cyBhIG5ldyB0cmFuc2FjdGlvbiBpbW1lZGlhdGVseS4KQEAgLTMxMDUsNyAr MzExMSw3IEBAIFJlaW5kZXhNdWx0aXBsZVRhYmxlcyhjb25zdCBjaGFyICpvYmplY3ROYW1lLCBS ZWluZGV4T2JqZWN0VHlwZSBvYmplY3RLaW5kLAogCSAqIFByb2Nlc3MgZWFjaCByZWxhdGlvbiBs aXN0ZWQgaW4gYSBzZXBhcmF0ZSB0cmFuc2FjdGlvbi4gIE5vdGUgdGhhdCB0aGlzCiAJICogY29t bWl0cyBhbmQgdGhlbiBzdGFydHMgYSBuZXcgdHJhbnNhY3Rpb24gaW1tZWRpYXRlbHkuCiAJICov Ci0JUmVpbmRleE11bHRpcGxlSW50ZXJuYWwocmVsaWRzLCBwYXJhbXMpOworCVJlaW5kZXhNdWx0 aXBsZUludGVybmFsKHJlbGlkcywgcGFyYW1zLCBJbnZhbGlkT2lkLCAwKTsKIAogCU1lbW9yeUNv bnRleHREZWxldGUocHJpdmF0ZV9jb250ZXh0KTsKIH0KQEAgLTMxNDEsNiArMzE0Nyw3IEBAIFJl aW5kZXhQYXJ0aXRpb25zKE9pZCByZWxpZCwgUmVpbmRleFBhcmFtcyAqcGFyYW1zLCBib29sIGlz VG9wTGV2ZWwpCiAJY2hhcgkJcmVsa2luZCA9IGdldF9yZWxfcmVsa2luZChyZWxpZCk7CiAJY2hh cgkgICAqcmVsbmFtZSA9IGdldF9yZWxfbmFtZShyZWxpZCk7CiAJY2hhcgkgICAqcmVsbmFtZXNw YWNlID0gZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9yZWxfbmFtZXNwYWNlKHJlbGlkKSk7CisJaW50 CQkJbnBhcnQgPSAxOwogCU1lbW9yeUNvbnRleHQgcmVpbmRleF9jb250ZXh0OwogCUxpc3QJICAg KmluaG9pZHM7CiAJTGlzdENlbGwgICAqbGM7CkBAIC0zMjAxLDcgKzMyMDgsMTEgQEAgUmVpbmRl eFBhcnRpdGlvbnMoT2lkIHJlbGlkLCBSZWluZGV4UGFyYW1zICpwYXJhbXMsIGJvb2wgaXNUb3BM ZXZlbCkKIAkJLyogU2tpcCB2YWxpZCBpbmRleGVzLCBpZiByZXF1ZXN0ZWQgKi8KIAkJaWYgKChw YXJhbXMtPm9wdGlvbnMgJiBSRUlOREVYT1BUX1NLSVBWQUxJRCkgIT0gMCAmJgogCQkJCWdldF9p bmRleF9pc3ZhbGlkKHBhcnRvaWQpKQorCQl7CisJCQlpZiAocGFyYW1zLT5vcHRpb25zICYgUkVJ TkRFWE9QVF9SRVBPUlRfQ1JFQVRFX1BBUlQpCisJCQkJcmVwb3J0X2NyZWF0ZV9wYXJ0aXRpb25f aW5kZXhfZG9uZShyZWxpZCwgbnBhcnQrKyk7CiAJCQljb250aW51ZTsKKwkJfQogCiAJCUFzc2Vy dChwYXJ0a2luZCA9PSBSRUxLSU5EX0lOREVYIHx8CiAJCQkgICBwYXJ0a2luZCA9PSBSRUxLSU5E X1JFTEFUSU9OKTsKQEAgLTMyMTYsNyArMzIyNyw3IEBAIFJlaW5kZXhQYXJ0aXRpb25zKE9pZCBy ZWxpZCwgUmVpbmRleFBhcmFtcyAqcGFyYW1zLCBib29sIGlzVG9wTGV2ZWwpCiAJICogUHJvY2Vz cyBlYWNoIHBhcnRpdGlvbiBsaXN0ZWQgaW4gYSBzZXBhcmF0ZSB0cmFuc2FjdGlvbi4gIE5vdGUg dGhhdAogCSAqIHRoaXMgY29tbWl0cyBhbmQgdGhlbiBzdGFydHMgYSBuZXcgdHJhbnNhY3Rpb24g aW1tZWRpYXRlbHkuCiAJICovCi0JUmVpbmRleE11bHRpcGxlSW50ZXJuYWwocGFydGl0aW9ucywg cGFyYW1zKTsKKwlSZWluZGV4TXVsdGlwbGVJbnRlcm5hbChwYXJ0aXRpb25zLCBwYXJhbXMsIHJl bGlkLCBucGFydCk7CiAKIAkvKgogCSAqIENsZWFuIHVwIHdvcmtpbmcgc3RvcmFnZSAtLS0gbm90 ZSB3ZSBtdXN0IGRvIHRoaXMgYWZ0ZXIKQEAgLTMyMzQsNyArMzI0NSw3IEBAIFJlaW5kZXhQYXJ0 aXRpb25zKE9pZCByZWxpZCwgUmVpbmRleFBhcmFtcyAqcGFyYW1zLCBib29sIGlzVG9wTGV2ZWwp CiAgKiBhbmQgc3RhcnRzIGEgbmV3IHRyYW5zYWN0aW9uIHdoZW4gZmluaXNoZWQuCiAgKi8KIHN0 YXRpYyB2b2lkCi1SZWluZGV4TXVsdGlwbGVJbnRlcm5hbChMaXN0ICpyZWxpZHMsIFJlaW5kZXhQ YXJhbXMgKnBhcmFtcykKK1JlaW5kZXhNdWx0aXBsZUludGVybmFsKExpc3QgKnJlbGlkcywgUmVp bmRleFBhcmFtcyAqcGFyYW1zLCBPaWQgcGFyZW50LCBpbnQgbnBhcnQpCiB7CiAJTGlzdENlbGwg ICAqbDsKIApAQCAtMzMyOCw2ICszMzM5LDkgQEAgUmVpbmRleE11bHRpcGxlSW50ZXJuYWwoTGlz dCAqcmVsaWRzLCBSZWluZGV4UGFyYW1zICpwYXJhbXMpCiAJCX0KIAogCQlDb21taXRUcmFuc2Fj dGlvbkNvbW1hbmQoKTsKKworCQlpZiAocGFyYW1zLT5vcHRpb25zICYgUkVJTkRFWE9QVF9SRVBP UlRfQ1JFQVRFX1BBUlQpCisJCQlyZXBvcnRfY3JlYXRlX3BhcnRpdGlvbl9pbmRleF9kb25lKHBh cmVudCwgbnBhcnQrKyk7CiAJfQogCiAJU3RhcnRUcmFuc2FjdGlvbkNvbW1hbmQoKTsKQEAgLTM3 MjMsNyArMzczNyw5IEBAIFJlaW5kZXhSZWxhdGlvbkNvbmN1cnJlbnRseShPaWQgcmVsYXRpb25P aWQsIFJlaW5kZXhQYXJhbXMgKnBhcmFtcykKIAkJaWYgKGluZGV4UmVsLT5yZF9yZWwtPnJlbHBl cnNpc3RlbmNlID09IFJFTFBFUlNJU1RFTkNFX1RFTVApCiAJCQllbG9nKEVSUk9SLCAiY2Fubm90 IHJlaW5kZXggYSB0ZW1wb3JhcnkgdGFibGUgY29uY3VycmVudGx5Iik7CiAKLQkJcGdzdGF0X3By b2dyZXNzX3N0YXJ0X2NvbW1hbmQoUFJPR1JFU1NfQ09NTUFORF9DUkVBVEVfSU5ERVgsCisJCS8q IERvbid0IG92ZXJ3cml0ZSBDUkVBVEUgSU5ERVggY29tbWFuZCAqLworCQlpZiAoIShwYXJhbXMt Pm9wdGlvbnMgJiBSRUlOREVYT1BUX1JFUE9SVF9DUkVBVEVfUEFSVCkpCisJCQlwZ3N0YXRfcHJv Z3Jlc3Nfc3RhcnRfY29tbWFuZChQUk9HUkVTU19DT01NQU5EX0NSRUFURV9JTkRFWCwKIAkJCQkJ CQkJCSAgaWR4LT50YWJsZUlkKTsKIAogCQlwcm9ncmVzc192YWxzWzBdID0gUFJPR1JFU1NfQ1JF QVRFSURYX0NPTU1BTkRfUkVJTkRFWF9DT05DVVJSRU5UTFk7CkBAIC0zODgzLDkgKzM4OTksMTEg QEAgUmVpbmRleFJlbGF0aW9uQ29uY3VycmVudGx5KE9pZCByZWxhdGlvbk9pZCwgUmVpbmRleFBh cmFtcyAqcGFyYW1zKQogCiAJCS8qCiAJCSAqIFVwZGF0ZSBwcm9ncmVzcyBmb3IgdGhlIGluZGV4 IHRvIGJ1aWxkLCB3aXRoIHRoZSBjb3JyZWN0IHBhcmVudAotCQkgKiB0YWJsZSBpbnZvbHZlZC4K KwkJICogdGFibGUgaW52b2x2ZWQuICBEb24ndCBvdmVyd3JpdGUgQ1JFQVRFIElOREVYIGNvbW1h bmQuCiAJCSAqLwotCQlwZ3N0YXRfcHJvZ3Jlc3Nfc3RhcnRfY29tbWFuZChQUk9HUkVTU19DT01N QU5EX0NSRUFURV9JTkRFWCwgbmV3aWR4LT50YWJsZUlkKTsKKwkJaWYgKCEocGFyYW1zLT5vcHRp b25zICYgUkVJTkRFWE9QVF9SRVBPUlRfQ1JFQVRFX1BBUlQpKQorCQkJcGdzdGF0X3Byb2dyZXNz X3N0YXJ0X2NvbW1hbmQoUFJPR1JFU1NfQ09NTUFORF9DUkVBVEVfSU5ERVgsIG5ld2lkeC0+dGFi bGVJZCk7CisKIAkJcHJvZ3Jlc3NfdmFsc1swXSA9IFBST0dSRVNTX0NSRUFURUlEWF9DT01NQU5E X1JFSU5ERVhfQ09OQ1VSUkVOVExZOwogCQlwcm9ncmVzc192YWxzWzFdID0gUFJPR1JFU1NfQ1JF QVRFSURYX1BIQVNFX0JVSUxEOwogCQlwcm9ncmVzc192YWxzWzJdID0gbmV3aWR4LT5pbmRleElk OwpAQCAtMzk0NywxMCArMzk2NSwxMiBAQCBSZWluZGV4UmVsYXRpb25Db25jdXJyZW50bHkoT2lk IHJlbGF0aW9uT2lkLCBSZWluZGV4UGFyYW1zICpwYXJhbXMpCiAKIAkJLyoKIAkJICogVXBkYXRl IHByb2dyZXNzIGZvciB0aGUgaW5kZXggdG8gYnVpbGQsIHdpdGggdGhlIGNvcnJlY3QgcGFyZW50 Ci0JCSAqIHRhYmxlIGludm9sdmVkLgorCQkgKiB0YWJsZSBpbnZvbHZlZC4gRG9uJ3Qgb3Zlcndy aXRlIENSRUFURSBJTkRFWCBjb21tYW5kLgogCQkgKi8KLQkJcGdzdGF0X3Byb2dyZXNzX3N0YXJ0 X2NvbW1hbmQoUFJPR1JFU1NfQ09NTUFORF9DUkVBVEVfSU5ERVgsCisJCWlmICghKHBhcmFtcy0+ b3B0aW9ucyAmIFJFSU5ERVhPUFRfUkVQT1JUX0NSRUFURV9QQVJUKSkKKwkJCXBnc3RhdF9wcm9n cmVzc19zdGFydF9jb21tYW5kKFBST0dSRVNTX0NPTU1BTkRfQ1JFQVRFX0lOREVYLAogCQkJCQkJ CQkJICBuZXdpZHgtPnRhYmxlSWQpOworCiAJCXByb2dyZXNzX3ZhbHNbMF0gPSBQUk9HUkVTU19D UkVBVEVJRFhfQ09NTUFORF9SRUlOREVYX0NPTkNVUlJFTlRMWTsKIAkJcHJvZ3Jlc3NfdmFsc1sx XSA9IFBST0dSRVNTX0NSRUFURUlEWF9QSEFTRV9WQUxJREFURV9JRFhTQ0FOOwogCQlwcm9ncmVz c192YWxzWzJdID0gbmV3aWR4LT5pbmRleElkOwpAQCAtNDE4NSw3ICs0MjA1LDkgQEAgUmVpbmRl eFJlbGF0aW9uQ29uY3VycmVudGx5KE9pZCByZWxhdGlvbk9pZCwgUmVpbmRleFBhcmFtcyAqcGFy YW1zKQogCiAJTWVtb3J5Q29udGV4dERlbGV0ZShwcml2YXRlX2NvbnRleHQpOwogCi0JcGdzdGF0 X3Byb2dyZXNzX2VuZF9jb21tYW5kKCk7CisJLyogRG9uJ3Qgb3ZlcndyaXRlIENSRUFURSBJTkRF WCBjb21tYW5kLiAqLworCWlmICghKHBhcmFtcy0+b3B0aW9ucyAmIFJFSU5ERVhPUFRfUkVQT1JU X0NSRUFURV9QQVJUKSkKKwkJcGdzdGF0X3Byb2dyZXNzX2VuZF9jb21tYW5kKCk7CiAKIAlyZXR1 cm4gdHJ1ZTsKIH0KQEAgLTQzMjEsNiArNDM0MywyOSBAQCBJbmRleFNldFBhcmVudEluZGV4KFJl bGF0aW9uIHBhcnRpdGlvbklkeCwgT2lkIHBhcmVudE9pZCkKIAl9CiB9CiAKKy8qCisgKiBVcGRh dGUgcGdzdGF0IHByb2dyZXNzIHJlcG9ydCB0byBpbmRpY2F0ZSB0aGF0IGNyZWF0ZSBpbmRleCBv bgorICogcGFydGl0aW9uIHdhcyBmaW5pc2hlZC4KKyAqLworc3RhdGljIHZvaWQKK3JlcG9ydF9j cmVhdGVfcGFydGl0aW9uX2luZGV4X2RvbmUoT2lkIGluZGV4LCBpbnQgbnBhcnQpCit7CisJY29u c3QgaW50ICAgcHJvZ3Jlc3NfY29sc1tdID0geworCQlQUk9HUkVTU19DUkVBVEVJRFhfQ09NTUFO RCwKKwkJUFJPR1JFU1NfQ1JFQVRFSURYX0lOREVYX09JRCwKKwkJUFJPR1JFU1NfQ1JFQVRFSURY X1BIQVNFLAorCQlQUk9HUkVTU19DUkVBVEVJRFhfUEFSVElUSU9OU19ET05FCisJfTsKKwljb25z dCBpbnQ2NCBwcm9ncmVzc192YWxzW10gPSB7CisJCVBST0dSRVNTX0NSRUFURUlEWF9DT01NQU5E X0NSRUFURV9DT05DVVJSRU5UTFksCisJCWluZGV4LAorCQlQUk9HUkVTU19DUkVBVEVJRFhfUEhB U0VfVkFMSURBVEVfSURYU0NBTiwKKwkJbnBhcnQKKwl9OworCisJcGdzdGF0X3Byb2dyZXNzX3Vw ZGF0ZV9tdWx0aV9wYXJhbSg0LCBwcm9ncmVzc19jb2xzLCBwcm9ncmVzc192YWxzKTsKK30KKwog LyoKICAqIFN1YnJvdXRpbmUgb2YgSW5kZXhTZXRQYXJlbnRJbmRleCB0byB1cGRhdGUgdGhlIHJl bGlzcGFydGl0aW9uIGZsYWcgb2YgdGhlCiAgKiBnaXZlbiBpbmRleCB0byB0aGUgZ2l2ZW4gdmFs dWUuCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2luZGV4LmggYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL2luZGV4LmgKaW5kZXggYzMxYjY2YWQwYjkuLmI1YjBhNzFlN2Q0IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2luZGV4LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9pbmRleC5oCkBAIC00Myw2ICs0Myw3IEBAIHR5cGVkZWYgc3RydWN0IFJlaW5kZXhQYXJhbXMK ICNkZWZpbmUgUkVJTkRFWE9QVF9NSVNTSU5HX09LIAkweDA0CS8qIHNraXAgbWlzc2luZyByZWxh dGlvbnMgKi8KICNkZWZpbmUgUkVJTkRFWE9QVF9DT05DVVJSRU5UTFkJMHgwOAkvKiBjb25jdXJy ZW50IG1vZGUgKi8KICNkZWZpbmUgUkVJTkRFWE9QVF9TS0lQVkFMSUQJMHgxMAkvKiBza2lwIHZh bGlkIGluZGV4ZXMgKi8KKyNkZWZpbmUgUkVJTkRFWE9QVF9SRVBPUlRfQ1JFQVRFX1BBUlQJMHgy MAkvKiByZXBvcnQgdGhhdCBpbmRleCB3YXMgY3JlYXRlZCBmb3IgcGFydGl0aW9uICovCiAKIC8q IHN0YXRlIGluZm8gZm9yIHZhbGlkYXRlX2luZGV4IGJ1bGtkZWxldGUgY2FsbGJhY2sgKi8KIHR5 cGVkZWYgc3RydWN0IFZhbGlkYXRlSW5kZXhTdGF0ZQotLSAKMi4zNC4xCgo= --=_37f0de76e2ab40a5d828bb75a5990eec Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v3-0002-Add-SKIPVALID-flag-for-more-integration.patch Content-Disposition: attachment; filename=v3-0002-Add-SKIPVALID-flag-for-more-integration.patch; size=4021 RnJvbSA0ZjE2ZTcyOWE4MzVkYzgxMjNhOGNlNTkzZTZhZTQ3NTQyYjgyYzgzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKdXN0aW4gUHJ5emJ5IDxwcnl6YnlAdGVsc2Fzb2Z0LmNvbT4K RGF0ZTogTW9uLCA3IEZlYiAyMDIyIDEwOjMxOjQwICswMzAwClN1YmplY3Q6IFtQQVRDSCAyLzVd IEFkZCBTS0lQVkFMSUQgZmxhZyBmb3IgbW9yZSBpbnRlZ3JhdGlvbgoKQ29tYmluZWQKMDAwMi1m LXByb2dyZXNzLXJlcG9ydGluZy5wYXRjaCBhbmQKMDAwMy1XSVAtQWRkLVNLSVBWQUxJRC1mbGFn LWZvci1tb3JlLWludGVncmF0aW9uLnBhdGNoIGZyb20KaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5v cmcvbWVzc2FnZS1pZC8yMDIxMDIyNjE4MjAxOS5HVTIwNzY5QHRlbHNhc29mdC5jb20KLS0tCiBz cmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYyB8IDU3ICsrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiBzcmMvaW5jbHVkZS9jYXRhbG9nL2luZGV4LmggICAgICB8ICAxICsKIDIg ZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgMzkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9pbmRleGNtZHMuYwppbmRleCA3ODRmNmQ5ZWI4Ny4uMTQ5MjM1NzgwYjkgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2luZGV4Y21kcy5jCkBAIC0xNjk3LDU5ICsxNjk3LDMzIEBAIERlZmluZUluZGV4KE9p ZCByZWxhdGlvbklkLAogCXJldHVybiBhZGRyZXNzOwogfQogCi0vKiBSZWluZGV4IGludmFsaWQg Y2hpbGQgaW5kZXhlcyBjcmVhdGVkIGVhcmxpZXIgKi8KKy8qCisgKiBSZWluZGV4IGludmFsaWQg Y2hpbGQgaW5kZXhlcyBjcmVhdGVkIGVhcmxpZXIgdGhlcmVieSB2YWxpZGF0aW5nCisgKiB0aGUg cGFyZW50IGluZGV4LgorICovCiBzdGF0aWMgdm9pZAogcmVpbmRleF9pbnZhbGlkX2NoaWxkX2lu ZGV4ZXMoT2lkIGluZGV4UmVsYXRpb25JZCkKIHsKLQlMaXN0Q2VsbCAqbGM7Ci0JaW50CQlucGFy dCA9IDA7CiAJUmVpbmRleFBhcmFtcyBwYXJhbXMgPSB7Ci0JCS5vcHRpb25zID0gUkVJTkRFWE9Q VF9DT05DVVJSRU5UTFkKKwkJLm9wdGlvbnMgPSBSRUlOREVYT1BUX0NPTkNVUlJFTlRMWSB8IFJF SU5ERVhPUFRfU0tJUFZBTElECiAJfTsKIAotCU1lbW9yeUNvbnRleHQJaW5kX2NvbnRleHQgPSBB bGxvY1NldENvbnRleHRDcmVhdGUoUG9ydGFsQ29udGV4dCwgIkNSRUFURSBJTkRFWCIsCi0JCQlB TExPQ1NFVF9ERUZBVUxUX1NJWkVTKTsKLQlNZW1vcnlDb250ZXh0CW9sZGNvbnRleHQ7Ci0JTGlz dAkJKmNoaWxkcyA9IGZpbmRfaW5oZXJpdGFuY2VfY2hpbGRyZW4oaW5kZXhSZWxhdGlvbklkLCBT aGFyZUxvY2spOwotCUxpc3QJCSpwYXJ0aXRpb25zID0gTklMOwotCi0JUHJldmVudEluVHJhbnNh Y3Rpb25CbG9jayh0cnVlLCAiUkVJTkRFWCBJTkRFWCIpOwotCi0JZm9yZWFjaCAobGMsIGNoaWxk cykKLQl7Ci0JCU9pZAkJCXBhcnRvaWQgPSBsZmlyc3Rfb2lkKGxjKTsKLQotCQkvKiBYWFg6IG5l ZWQgdG8gcmV0cm9maXQgcHJvZ3Jlc3MgcmVwb3J0aW5nIGludG8gaXQgKi8KLQkJLy8gcGdzdGF0 X3Byb2dyZXNzX3VwZGF0ZV9wYXJhbShQUk9HUkVTU19DUkVBVEVJRFhfUEFSVElUSU9OU19ET05F LAotCQkJCQkJCQkJIC8vIG5wYXJ0KyspOwotCi0JCWlmIChnZXRfaW5kZXhfaXN2YWxpZChwYXJ0 b2lkKSB8fAotCQkJCSFSRUxLSU5EX0hBU19TVE9SQUdFKGdldF9yZWxfcmVsa2luZChwYXJ0b2lk KSkpCi0JCQljb250aW51ZTsKLQotCQkvKiBTYXZlIHBhcnRpdGlvbiBPSUQgKi8KLQkJb2xkY29u dGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhpbmRfY29udGV4dCk7Ci0JCXBhcnRpdGlvbnMg PSBsYXBwZW5kX29pZChwYXJ0aXRpb25zLCBwYXJ0b2lkKTsKLQkJTWVtb3J5Q29udGV4dFN3aXRj aFRvKG9sZGNvbnRleHQpOwotCX0KLQotCS8qCi0JICogUHJvY2VzcyBlYWNoIHBhcnRpdGlvbiBs aXN0ZWQgaW4gYSBzZXBhcmF0ZSB0cmFuc2FjdGlvbi4gIE5vdGUgdGhhdAotCSAqIHRoaXMgY29t bWl0cyBhbmQgdGhlbiBzdGFydHMgYSBuZXcgdHJhbnNhY3Rpb24gaW1tZWRpYXRlbHkuCi0JICog WFhYOiBzaW5jZSB0aGlzIGlzIGRvbmUgaW4gMipOIHRyYW5zYWN0aW9ucywgaXQgY291bGQganVz dCBhcyB3ZWxsCi0JICogY2FsbCBSZWluZGV4UmVsYXRpb25Db25jdXJyZW50bHkgZGlyZWN0bHkK LQkgKi8KLQlSZWluZGV4TXVsdGlwbGVJbnRlcm5hbChwYXJ0aXRpb25zLCAmcGFyYW1zKTsKLQog CS8qCiAJICogQ0lDIG5lZWRzIHRvIG1hcmsgYSBwYXJ0aXRpb25lZCBpbmRleCBhcyBWQUxJRCwg d2hpY2ggaXRzZWxmCiAJICogcmVxdWlyZXMgc2V0dGluZyBSRUFEWSwgd2hpY2ggaXMgdW5zZXQg Zm9yIENJQyAoZXZlbiB0aG91Z2gKIAkgKiBpdCdzIG1lYW5pbmdsZXNzIGZvciBhbiBpbmRleCB3 aXRob3V0IHN0b3JhZ2UpLgogCSAqIFRoaXMgbXVzdCBiZSBkb25lIG9ubHkgd2hpbGUgaG9sZGlu ZyBhIGxvY2sgd2hpY2ggcHJlY2x1ZGVzIGFkZGluZwogCSAqIHBhcnRpdGlvbnMuCi0JICogU2Vl IGFsc286IHZhbGlkYXRlUGFydGl0aW9uZWRJbmRleCgpLgogCSAqLworCUNvbW1hbmRDb3VudGVy SW5jcmVtZW50KCk7CiAJaW5kZXhfc2V0X3N0YXRlX2ZsYWdzKGluZGV4UmVsYXRpb25JZCwgSU5E RVhfQ1JFQVRFX1NFVF9SRUFEWSk7CisKKwkvKgorCSAqIFByb2Nlc3MgZWFjaCBwYXJ0aXRpb24g bGlzdGVkIGluIGEgc2VwYXJhdGUgdHJhbnNhY3Rpb24uICBOb3RlIHRoYXQKKwkgKiB0aGlzIGNv bW1pdHMgYW5kIHRoZW4gc3RhcnRzIGEgbmV3IHRyYW5zYWN0aW9uIGltbWVkaWF0ZWx5LgorCSAq LworCVJlaW5kZXhQYXJ0aXRpb25zKGluZGV4UmVsYXRpb25JZCwgJnBhcmFtcywgdHJ1ZSk7CisK IAlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOwogCWluZGV4X3NldF9zdGF0ZV9mbGFncyhpbmRl eFJlbGF0aW9uSWQsIElOREVYX0NSRUFURV9TRVRfVkFMSUQpOwogfQpAQCAtMzIyNCw2ICszMTk4 LDExIEBAIFJlaW5kZXhQYXJ0aXRpb25zKE9pZCByZWxpZCwgUmVpbmRleFBhcmFtcyAqcGFyYW1z LCBib29sIGlzVG9wTGV2ZWwpCiAJCWlmICghUkVMS0lORF9IQVNfU1RPUkFHRShwYXJ0a2luZCkp CiAJCQljb250aW51ZTsKIAorCQkvKiBTa2lwIHZhbGlkIGluZGV4ZXMsIGlmIHJlcXVlc3RlZCAq LworCQlpZiAoKHBhcmFtcy0+b3B0aW9ucyAmIFJFSU5ERVhPUFRfU0tJUFZBTElEKSAhPSAwICYm CisJCQkJZ2V0X2luZGV4X2lzdmFsaWQocGFydG9pZCkpCisJCQljb250aW51ZTsKKwogCQlBc3Nl cnQocGFydGtpbmQgPT0gUkVMS0lORF9JTkRFWCB8fAogCQkJICAgcGFydGtpbmQgPT0gUkVMS0lO RF9SRUxBVElPTik7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvaW5kZXguaCBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvaW5kZXguaAppbmRleCBhMWQ2ZTNiNjQ1Zi4uYzMxYjY2YWQw YjkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvaW5kZXguaAorKysgYi9zcmMvaW5j bHVkZS9jYXRhbG9nL2luZGV4LmgKQEAgLTQyLDYgKzQyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUmVp bmRleFBhcmFtcwogI2RlZmluZSBSRUlOREVYT1BUX1JFUE9SVF9QUk9HUkVTUyAweDAyIC8qIHJl cG9ydCBwZ3N0YXQgcHJvZ3Jlc3MgKi8KICNkZWZpbmUgUkVJTkRFWE9QVF9NSVNTSU5HX09LIAkw eDA0CS8qIHNraXAgbWlzc2luZyByZWxhdGlvbnMgKi8KICNkZWZpbmUgUkVJTkRFWE9QVF9DT05D VVJSRU5UTFkJMHgwOAkvKiBjb25jdXJyZW50IG1vZGUgKi8KKyNkZWZpbmUgUkVJTkRFWE9QVF9T S0lQVkFMSUQJMHgxMAkvKiBza2lwIHZhbGlkIGluZGV4ZXMgKi8KIAogLyogc3RhdGUgaW5mbyBm b3IgdmFsaWRhdGVfaW5kZXggYnVsa2RlbGV0ZSBjYWxsYmFjayAqLwogdHlwZWRlZiBzdHJ1Y3Qg VmFsaWRhdGVJbmRleFN0YXRlCi0tIAoyLjM0LjEKCg== --=_37f0de76e2ab40a5d828bb75a5990eec Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v3-0001-Allow-CREATE-INDEX-CONCURRENTLY-on-partitioned-table.patch Content-Disposition: attachment; filename*0*=UTF-8''v3-0001-Allow-CREATE-INDEX-CONCURRENTLY-on-partitioned; filename*1*=-table.patch; size=15972 RnJvbSBmNDkzMzYyNTU0MWIwMzBmYWJjYjE1ZDE0MjZmNDk2NTk4OTQ5ODk4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKdXN0aW4gUHJ5emJ5IDxwcnl6YnlAdGVsc2Fzb2Z0LmNvbT4K RGF0ZTogTW9uLCA3IEZlYiAyMDIyIDEwOjI4OjQyICswMzAwClN1YmplY3Q6IFtQQVRDSCAxLzVd IEFsbG93IENSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgb24gcGFydGl0aW9uZWQgdGFibGUKCjAw MDEtQWxsb3ctQ1JFQVRFLUlOREVYLUNPTkNVUlJFTlRMWS1vbi1wYXJ0aXRpb25lZC10YWJsZS5w YXRjaCBmcm9tCmh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2UtaWQvMjAyMTAyMjYx ODIwMTkuR1UyMDc2OUB0ZWxzYXNvZnQuY29tCgpGaXhlczoKICAtIHJlbCB3YXMgdXNlZCBhZnRl ciB0YWJsZV9jbG9zZSgpOwogIC0gaXQgc2VlbXMgY2hpbGRpZHhzIHNob3VsZG4ndCBsaXZlIGlu IGluZF9jb250ZXh0OwogIC0gdXBkYXRlZCBkb2MuCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfaW5kZXguc2dtbCAgICAgfCAgMTQgKy0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNt ZHMuYyAgICAgICB8IDE1MSArKysrKysrKysrKysrKysrKystLS0tLS0tCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2luZGV4aW5nLm91dCB8ICA2MCArKysrKysrKystCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9pbmRleGluZy5zcWwgICAgICB8ICAxOCArKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTg2 IGluc2VydGlvbnMoKyksIDU3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX2luZGV4LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9pbmRleC5z Z21sCmluZGV4IDlmZmNkYzYyOWU2Li4yMDQwYjI3YjY4NSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfaW5kZXguc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9p bmRleC5zZ21sCkBAIC02NDIsNyArNjQyLDEwIEBAIENSRUFURSBbIFVOSVFVRSBdIElOREVYIFsg Q09OQ1VSUkVOVExZIF0gWyBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9CiAg ICA8cGFyYT4KICAgICBJZiBhIHByb2JsZW0gYXJpc2VzIHdoaWxlIHNjYW5uaW5nIHRoZSB0YWJs ZSwgc3VjaCBhcyBhIGRlYWRsb2NrIG9yIGEKICAgICB1bmlxdWVuZXNzIHZpb2xhdGlvbiBpbiBh IHVuaXF1ZSBpbmRleCwgdGhlIDxjb21tYW5kPkNSRUFURSBJTkRFWDwvY29tbWFuZD4KLSAgICBj b21tYW5kIHdpbGwgZmFpbCBidXQgbGVhdmUgYmVoaW5kIGFuIDxxdW90ZT5pbnZhbGlkPC9xdW90 ZT4gaW5kZXguIFRoaXMgaW5kZXgKKyAgICBjb21tYW5kIHdpbGwgZmFpbCBidXQgbGVhdmUgYmVo aW5kIGFuIDxxdW90ZT5pbnZhbGlkPC9xdW90ZT4gaW5kZXguCisgICAgSWYgdGhpcyBoYXBwZW5z IHdoaWxlIGNyZWF0aW5nIGluZGV4IGNvbmN1cnJlbnRseSBvbiBhIHBhcnRpdGlvbmVkCisgICAg dGFibGUsIHRoZSBjb21tYW5kIGNhbiBhbHNvIGxlYXZlIGJlaGluZCA8cXVvdGU+dmFsaWQ8L3F1 b3RlPiBvcgorICAgIDxxdW90ZT5pbnZhbGlkPC9xdW90ZT4gaW5kZXhlcyBvbiB0YWJsZSBwYXJ0 aXRpb25zLiAgVGhlIGludmFsaWQgaW5kZXgKICAgICB3aWxsIGJlIGlnbm9yZWQgZm9yIHF1ZXJ5 aW5nIHB1cnBvc2VzIGJlY2F1c2UgaXQgbWlnaHQgYmUgaW5jb21wbGV0ZTsKICAgICBob3dldmVy IGl0IHdpbGwgc3RpbGwgY29uc3VtZSB1cGRhdGUgb3ZlcmhlYWQuIFRoZSA8YXBwbGljYXRpb24+ cHNxbDwvYXBwbGljYXRpb24+CiAgICAgPGNvbW1hbmQ+XGQ8L2NvbW1hbmQ+IGNvbW1hbmQgd2ls bCByZXBvcnQgc3VjaCBhbiBpbmRleCBhcyA8bGl0ZXJhbD5JTlZBTElEPC9saXRlcmFsPjoKQEAg LTY4OSwxNSArNjkyLDYgQEAgSW5kZXhlczoKICAgICBjYW5ub3QuCiAgICA8L3BhcmE+CiAKLSAg IDxwYXJhPgotICAgIENvbmN1cnJlbnQgYnVpbGRzIGZvciBpbmRleGVzIG9uIHBhcnRpdGlvbmVk IHRhYmxlcyBhcmUgY3VycmVudGx5IG5vdAotICAgIHN1cHBvcnRlZC4gIEhvd2V2ZXIsIHlvdSBt YXkgY29uY3VycmVudGx5IGJ1aWxkIHRoZSBpbmRleCBvbiBlYWNoCi0gICAgcGFydGl0aW9uIGlu ZGl2aWR1YWxseSBhbmQgdGhlbiBmaW5hbGx5IGNyZWF0ZSB0aGUgcGFydGl0aW9uZWQgaW5kZXgK LSAgICBub24tY29uY3VycmVudGx5IGluIG9yZGVyIHRvIHJlZHVjZSB0aGUgdGltZSB3aGVyZSB3 cml0ZXMgdG8gdGhlCi0gICAgcGFydGl0aW9uZWQgdGFibGUgd2lsbCBiZSBsb2NrZWQgb3V0LiAg SW4gdGhpcyBjYXNlLCBidWlsZGluZyB0aGUKLSAgICBwYXJ0aXRpb25lZCBpbmRleCBpcyBhIG1l dGFkYXRhIG9ubHkgb3BlcmF0aW9uLgotICAgPC9wYXJhPgotCiAgIDwvcmVmc2VjdDI+CiAgPC9y ZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYwppbmRleCA5OWY1YWI4M2MzMi4uNzg0 ZjZkOWViODcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jCkBAIC02OCw2ICs2OCw3IEBACiAK IAogLyogbm9uLWV4cG9ydCBmdW5jdGlvbiBwcm90b3R5cGVzICovCitzdGF0aWMgdm9pZCByZWlu ZGV4X2ludmFsaWRfY2hpbGRfaW5kZXhlcyhPaWQgaW5kZXhSZWxhdGlvbklkKTsKIHN0YXRpYyBi b29sIENvbXBhcmVPcGNsYXNzT3B0aW9ucyhEYXR1bSAqb3B0czEsIERhdHVtICpvcHRzMiwgaW50 IG5hdHRzKTsKIHN0YXRpYyB2b2lkIENoZWNrUHJlZGljYXRlKEV4cHIgKnByZWRpY2F0ZSk7CiBz dGF0aWMgdm9pZCBDb21wdXRlSW5kZXhBdHRycyhJbmRleEluZm8gKmluZGV4SW5mbywKQEAgLTY5 NSwxNyArNjk2LDYgQEAgRGVmaW5lSW5kZXgoT2lkIHJlbGF0aW9uSWQsCiAJcGFydGl0aW9uZWQg PSByZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFOwogCWlm IChwYXJ0aXRpb25lZCkKIAl7Ci0JCS8qCi0JCSAqIE5vdGU6IHdlIGNoZWNrICdzdG10LT5jb25j dXJyZW50JyByYXRoZXIgdGhhbiAnY29uY3VycmVudCcsIHNvIHRoYXQKLQkJICogdGhlIGVycm9y IGlzIHRocm93biBhbHNvIGZvciB0ZW1wb3JhcnkgdGFibGVzLiAgU2VlbXMgYmV0dGVyIHRvIGJl Ci0JCSAqIGNvbnNpc3RlbnQsIGV2ZW4gdGhvdWdoIHdlIGNvdWxkIGRvIGl0IG9uIHRlbXBvcmFy eSB0YWJsZSBiZWNhdXNlCi0JCSAqIHdlJ3JlIG5vdCBhY3R1YWxseSBkb2luZyBpdCBjb25jdXJy ZW50bHkuCi0JCSAqLwotCQlpZiAoc3RtdC0+Y29uY3VycmVudCkKLQkJCWVyZXBvcnQoRVJST1Is Ci0JCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkJIGVy cm1zZygiY2Fubm90IGNyZWF0ZSBpbmRleCBvbiBwYXJ0aXRpb25lZCB0YWJsZSBcIiVzXCIgY29u Y3VycmVudGx5IiwKLQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOwogCQlp ZiAoc3RtdC0+ZXhjbHVkZU9wTmFtZXMpCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCkBAIC0xMTQ1LDYgKzExMzUsMTEgQEAg RGVmaW5lSW5kZXgoT2lkIHJlbGF0aW9uSWQsCiAJCWlmIChwZC0+bnBhcnRzICE9IDApCiAJCQlm bGFncyB8PSBJTkRFWF9DUkVBVEVfSU5WQUxJRDsKIAl9CisJZWxzZSBpZiAoY29uY3VycmVudCAm JiBPaWRJc1ZhbGlkKHBhcmVudEluZGV4SWQpKQorCXsKKwkJLyogSWYgY29uY3VycmVudCwgaW5p dGlhbGx5IGJ1aWxkIGluZGV4IHBhcnRpdGlvbnMgYXMgImludmFsaWQiICovCisJCWZsYWdzIHw9 IElOREVYX0NSRUFURV9JTlZBTElEOworCX0KIAogCWlmIChzdG10LT5kZWZlcnJhYmxlKQogCQlj b25zdHJfZmxhZ3MgfD0gSU5ERVhfQ09OU1RSX0NSRUFURV9ERUZFUlJBQkxFOwpAQCAtMTIxMCwx OCArMTIwNSwzMCBAQCBEZWZpbmVJbmRleChPaWQgcmVsYXRpb25JZCwKIAkJcGFydGRlc2MgPSBS ZWxhdGlvbkdldFBhcnRpdGlvbkRlc2MocmVsLCB0cnVlKTsKIAkJaWYgKCghc3RtdC0+cmVsYXRp b24gfHwgc3RtdC0+cmVsYXRpb24tPmluaCkgJiYgcGFydGRlc2MtPm5wYXJ0cyA+IDApCiAJCXsK KwkJCS8qCisJCQkgKiBOZWVkIHRvIGNsb3NlIHRoZSByZWxhdGlvbiBiZWZvcmUgcmVjdXJzaW5n IGludG8gY2hpbGRyZW4sIHNvCisJCQkgKiBjb3B5IG5lZWRlZCBkYXRhIGludG8gYSBsb25nbGl2 ZWQgY29udGV4dC4KKwkJCSAqLworCisJCQlNZW1vcnlDb250ZXh0CWluZF9jb250ZXh0ID0gQWxs b2NTZXRDb250ZXh0Q3JlYXRlKFBvcnRhbENvbnRleHQsICJDUkVBVEUgSU5ERVgiLAorCQkJCQlB TExPQ1NFVF9ERUZBVUxUX1NJWkVTKTsKKwkJCU1lbW9yeUNvbnRleHQJb2xkY29udGV4dCA9IE1l bW9yeUNvbnRleHRTd2l0Y2hUbyhpbmRfY29udGV4dCk7CiAJCQlpbnQJCQlucGFydHMgPSBwYXJ0 ZGVzYy0+bnBhcnRzOwogCQkJT2lkCQkgICAqcGFydF9vaWRzID0gcGFsbG9jKHNpemVvZihPaWQp ICogbnBhcnRzKTsKIAkJCWJvb2wJCWludmFsaWRhdGVfcGFyZW50ID0gZmFsc2U7CiAJCQlUdXBs ZURlc2MJcGFyZW50RGVzYzsKIAkJCU9pZAkJICAgKm9wZmFtT2lkczsKKwkJCWNoYXIJCSpyZWxu YW1lOwogCiAJCQlwZ3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFtKFBST0dSRVNTX0NSRUFURUlE WF9QQVJUSVRJT05TX1RPVEFMLAogCQkJCQkJCQkJCSBucGFydHMpOwogCiAJCQltZW1jcHkocGFy dF9vaWRzLCBwYXJ0ZGVzYy0+b2lkcywgc2l6ZW9mKE9pZCkgKiBucGFydHMpOworCQkJcGFyZW50 RGVzYyA9IENyZWF0ZVR1cGxlRGVzY0NvcHkoUmVsYXRpb25HZXREZXNjcihyZWwpKTsKKwkJCXJl bG5hbWUgPSBwc3RyZHVwKFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpOworCQkJdGFibGVf Y2xvc2UocmVsLCBOb0xvY2spOworCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQp OwogCi0JCQlwYXJlbnREZXNjID0gUmVsYXRpb25HZXREZXNjcihyZWwpOwogCQkJb3BmYW1PaWRz ID0gcGFsbG9jKHNpemVvZihPaWQpICogbnVtYmVyT2ZLZXlBdHRyaWJ1dGVzKTsKIAkJCWZvciAo aSA9IDA7IGkgPCBudW1iZXJPZktleUF0dHJpYnV0ZXM7IGkrKykKIAkJCQlvcGZhbU9pZHNbaV0g PSBnZXRfb3BjbGFzc19mYW1pbHkoY2xhc3NPYmplY3RJZFtpXSk7CkBAIC0xMjY1LDkgKzEyNzIs OSBAQCBEZWZpbmVJbmRleChPaWQgcmVsYXRpb25JZCwKIAkJCQkJCWVyZXBvcnQoRVJST1IsCiAJ CQkJCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAogCQkJCQkJCQkgZXJy bXNnKCJjYW5ub3QgY3JlYXRlIHVuaXF1ZSBpbmRleCBvbiBwYXJ0aXRpb25lZCB0YWJsZSBcIiVz XCIiLAotCQkJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpLAorCQkJCQkJCQkJ CXJlbG5hbWUpLAogCQkJCQkJCQkgZXJyZGV0YWlsKCJUYWJsZSBcIiVzXCIgY29udGFpbnMgcGFy dGl0aW9ucyB0aGF0IGFyZSBmb3JlaWduIHRhYmxlcy4iLAotCQkJCQkJCQkJCSAgIFJlbGF0aW9u R2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CisJCQkJCQkJCQkJICAgcmVsbmFtZSkpKTsKIAogCQkJ CQlBdEVPWGFjdF9HVUMoZmFsc2UsIGNoaWxkX3NhdmVfbmVzdGxldmVsKTsKIAkJCQkJU2V0VXNl cklkQW5kU2VjQ29udGV4dChjaGlsZF9zYXZlX3VzZXJpZCwKQEAgLTEyNzcsOSArMTI4NCwxMiBA QCBEZWZpbmVJbmRleChPaWQgcmVsYXRpb25JZCwKIAkJCQl9CiAKIAkJCQljaGlsZGlkeHMgPSBS ZWxhdGlvbkdldEluZGV4TGlzdChjaGlsZHJlbCk7CisKKwkJCQlvbGRjb250ZXh0ID0gTWVtb3J5 Q29udGV4dFN3aXRjaFRvKGluZF9jb250ZXh0KTsKIAkJCQlhdHRtYXAgPQogCQkJCQlidWlsZF9h dHRybWFwX2J5X25hbWUoUmVsYXRpb25HZXREZXNjcihjaGlsZHJlbCksCiAJCQkJCQkJCQkJICBw YXJlbnREZXNjKTsKKwkJCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CiAKIAkJ CQlmb3JlYWNoKGNlbGwsIGNoaWxkaWR4cykKIAkJCQl7CkBAIC0xMzUzLDEwICsxMzYzLDE0IEBA IERlZmluZUluZGV4KE9pZCByZWxhdGlvbklkLAogCQkJCSAqLwogCQkJCWlmICghZm91bmQpCiAJ CQkJewotCQkJCQlJbmRleFN0bXQgICpjaGlsZFN0bXQgPSBjb3B5T2JqZWN0KHN0bXQpOworCQkJ CQlJbmRleFN0bXQgICpjaGlsZFN0bXQ7CiAJCQkJCWJvb2wJCWZvdW5kX3dob2xlX3JvdzsKIAkJ CQkJTGlzdENlbGwgICAqbGM7CiAKKwkJCQkJb2xkY29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0 Y2hUbyhpbmRfY29udGV4dCk7CisJCQkJCWNoaWxkU3RtdCA9IGNvcHlPYmplY3Qoc3RtdCk7CisJ CQkJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKKwogCQkJCQkvKgogCQkJCQkg KiBXZSBjYW4ndCB1c2UgdGhlIHNhbWUgaW5kZXggbmFtZSBmb3IgdGhlIGNoaWxkIGluZGV4LAog CQkJCQkgKiBzbyBjbGVhciBpZHhuYW1lIHRvIGxldCB0aGUgcmVjdXJzaXZlIGludm9jYXRpb24g Y2hvb3NlCkBAIC0xNDE3LDEyICsxNDMxLDIxIEBAIERlZmluZUluZGV4KE9pZCByZWxhdGlvbklk LAogCQkJCQkJCQlza2lwX2J1aWxkLCBxdWlldCk7CiAJCQkJCVNldFVzZXJJZEFuZFNlY0NvbnRl eHQoY2hpbGRfc2F2ZV91c2VyaWQsCiAJCQkJCQkJCQkJICAgY2hpbGRfc2F2ZV9zZWNfY29udGV4 dCk7CisJCQkJCWlmIChjb25jdXJyZW50KQorCQkJCQl7CisJCQkJCQlQb3BBY3RpdmVTbmFwc2hv dCgpOworCQkJCQkJUHVzaEFjdGl2ZVNuYXBzaG90KEdldFRyYW5zYWN0aW9uU25hcHNob3QoKSk7 CisJCQkJCQlpbnZhbGlkYXRlX3BhcmVudCA9IHRydWU7CisJCQkJCX0KIAkJCQl9CiAKLQkJCQlw Z3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFtKFBST0dSRVNTX0NSRUFURUlEWF9QQVJUSVRJT05T X0RPTkUsCi0JCQkJCQkJCQkJCSBpICsgMSk7CisJCQkJLyogRm9yIGNvbmN1cnJlbnQgYnVpbGQs IHRoaXMgaXMgYSBjYXRhbG9nLW9ubHkgc3RhZ2UgKi8KKwkJCQlpZiAoIWNvbmN1cnJlbnQpCisJ CQkJCXBnc3RhdF9wcm9ncmVzc191cGRhdGVfcGFyYW0oUFJPR1JFU1NfQ1JFQVRFSURYX1BBUlRJ VElPTlNfRE9ORSwKKwkJCQkJCQkJCQkJCSBpICsgMSk7CiAJCQkJZnJlZV9hdHRybWFwKGF0dG1h cCk7CiAJCQl9CisJCQlwZnJlZShyZWxuYW1lKTsKIAogCQkJLyoKIAkJCSAqIFRoZSBwZ19pbmRl eCByb3cgd2UgaW5zZXJ0ZWQgZm9yIHRoaXMgaW5kZXggd2FzIG1hcmtlZApAQCAtMTQzMCwyNCAr MTQ1Myw5IEBAIERlZmluZUluZGV4KE9pZCByZWxhdGlvbklkLAogCQkJICogaW52YWxpZCwgdGhp cyBpcyBpbmNvcnJlY3QsIHNvIHVwZGF0ZSBvdXIgcm93IHRvIGludmFsaWQgdG9vLgogCQkJICov CiAJCQlpZiAoaW52YWxpZGF0ZV9wYXJlbnQpCi0JCQl7Ci0JCQkJUmVsYXRpb24JcGdfaW5kZXgg PSB0YWJsZV9vcGVuKEluZGV4UmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7Ci0JCQkJSGVh cFR1cGxlCXR1cCwKLQkJCQkJCQluZXd0dXA7Ci0KLQkJCQl0dXAgPSBTZWFyY2hTeXNDYWNoZTEo SU5ERVhSRUxJRCwKLQkJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bShpbmRleFJlbGF0aW9uSWQp KTsKLQkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKLQkJCQkJZWxvZyhFUlJPUiwgImNh Y2hlIGxvb2t1cCBmYWlsZWQgZm9yIGluZGV4ICV1IiwKLQkJCQkJCSBpbmRleFJlbGF0aW9uSWQp OwotCQkJCW5ld3R1cCA9IGhlYXBfY29weXR1cGxlKHR1cCk7Ci0JCQkJKChGb3JtX3BnX2luZGV4 KSBHRVRTVFJVQ1QobmV3dHVwKSktPmluZGlzdmFsaWQgPSBmYWxzZTsKLQkJCQlDYXRhbG9nVHVw bGVVcGRhdGUocGdfaW5kZXgsICZ0dXAtPnRfc2VsZiwgbmV3dHVwKTsKLQkJCQlSZWxlYXNlU3lz Q2FjaGUodHVwKTsKLQkJCQl0YWJsZV9jbG9zZShwZ19pbmRleCwgUm93RXhjbHVzaXZlTG9jayk7 Ci0JCQkJaGVhcF9mcmVldHVwbGUobmV3dHVwKTsKLQkJCX0KLQkJfQorCQkJCWluZGV4X3NldF9z dGF0ZV9mbGFncyhpbmRleFJlbGF0aW9uSWQsIElOREVYX0RST1BfQ0xFQVJfVkFMSUQpOworCQl9 IGVsc2UKKwkJCXRhYmxlX2Nsb3NlKHJlbCwgTm9Mb2NrKTsKIAogCQkvKgogCQkgKiBJbmRleGVz IG9uIHBhcnRpdGlvbmVkIHRhYmxlcyBhcmUgbm90IHRoZW1zZWx2ZXMgYnVpbHQsIHNvIHdlJ3Jl CkBAIC0xNDU1LDIxICsxNDYzLDI4IEBAIERlZmluZUluZGV4KE9pZCByZWxhdGlvbklkLAogCQkg Ki8KIAkJQXRFT1hhY3RfR1VDKGZhbHNlLCByb290X3NhdmVfbmVzdGxldmVsKTsKIAkJU2V0VXNl cklkQW5kU2VjQ29udGV4dChyb290X3NhdmVfdXNlcmlkLCByb290X3NhdmVfc2VjX2NvbnRleHQp OwotCQl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CiAJCWlmICghT2lkSXNWYWxpZChwYXJlbnRJ bmRleElkKSkKKwkJeworCQkJaWYgKGNvbmN1cnJlbnQpCisJCQkJcmVpbmRleF9pbnZhbGlkX2No aWxkX2luZGV4ZXMoaW5kZXhSZWxhdGlvbklkKTsKKwogCQkJcGdzdGF0X3Byb2dyZXNzX2VuZF9j b21tYW5kKCk7CisJCX0KKwogCQlyZXR1cm4gYWRkcmVzczsKIAl9CiAKIAlBdEVPWGFjdF9HVUMo ZmFsc2UsIHJvb3Rfc2F2ZV9uZXN0bGV2ZWwpOwogCVNldFVzZXJJZEFuZFNlY0NvbnRleHQocm9v dF9zYXZlX3VzZXJpZCwgcm9vdF9zYXZlX3NlY19jb250ZXh0KTsKIAotCWlmICghY29uY3VycmVu dCkKKwlpZiAoIWNvbmN1cnJlbnQgfHwgT2lkSXNWYWxpZChwYXJlbnRJbmRleElkKSkKIAl7Ci0J CS8qIENsb3NlIHRoZSBoZWFwIGFuZCB3ZSdyZSBkb25lLCBpbiB0aGUgbm9uLWNvbmN1cnJlbnQg Y2FzZSAqLwotCQl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CisJCS8qCisJCSAqIFdlJ3JlIGRv bmUgaWYgdGhpcyBpcyB0aGUgdG9wLWxldmVsIGluZGV4LAorCQkgKiBvciB0aGUgY2F0YWxvZy1v bmx5IHBoYXNlIG9mIGEgcGFydGl0aW9uIGJ1aWx0IGNvbmN1cnJlbnRseQorCQkgKi8KIAotCQkv KiBJZiB0aGlzIGlzIHRoZSB0b3AtbGV2ZWwgaW5kZXgsIHdlJ3JlIGRvbmUuICovCisJCXRhYmxl X2Nsb3NlKHJlbCwgTm9Mb2NrKTsKIAkJaWYgKCFPaWRJc1ZhbGlkKHBhcmVudEluZGV4SWQpKQog CQkJcGdzdGF0X3Byb2dyZXNzX2VuZF9jb21tYW5kKCk7CiAKQEAgLTE2ODIsNiArMTY5Nyw2MiBA QCBEZWZpbmVJbmRleChPaWQgcmVsYXRpb25JZCwKIAlyZXR1cm4gYWRkcmVzczsKIH0KIAorLyog UmVpbmRleCBpbnZhbGlkIGNoaWxkIGluZGV4ZXMgY3JlYXRlZCBlYXJsaWVyICovCitzdGF0aWMg dm9pZAorcmVpbmRleF9pbnZhbGlkX2NoaWxkX2luZGV4ZXMoT2lkIGluZGV4UmVsYXRpb25JZCkK K3sKKwlMaXN0Q2VsbCAqbGM7CisJaW50CQlucGFydCA9IDA7CisJUmVpbmRleFBhcmFtcyBwYXJh bXMgPSB7CisJCS5vcHRpb25zID0gUkVJTkRFWE9QVF9DT05DVVJSRU5UTFkKKwl9OworCisJTWVt b3J5Q29udGV4dAlpbmRfY29udGV4dCA9IEFsbG9jU2V0Q29udGV4dENyZWF0ZShQb3J0YWxDb250 ZXh0LCAiQ1JFQVRFIElOREVYIiwKKwkJCUFMTE9DU0VUX0RFRkFVTFRfU0laRVMpOworCU1lbW9y eUNvbnRleHQJb2xkY29udGV4dDsKKwlMaXN0CQkqY2hpbGRzID0gZmluZF9pbmhlcml0YW5jZV9j aGlsZHJlbihpbmRleFJlbGF0aW9uSWQsIFNoYXJlTG9jayk7CisJTGlzdAkJKnBhcnRpdGlvbnMg PSBOSUw7CisKKwlQcmV2ZW50SW5UcmFuc2FjdGlvbkJsb2NrKHRydWUsICJSRUlOREVYIElOREVY Iik7CisKKwlmb3JlYWNoIChsYywgY2hpbGRzKQorCXsKKwkJT2lkCQkJcGFydG9pZCA9IGxmaXJz dF9vaWQobGMpOworCisJCS8qIFhYWDogbmVlZCB0byByZXRyb2ZpdCBwcm9ncmVzcyByZXBvcnRp bmcgaW50byBpdCAqLworCQkvLyBwZ3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFtKFBST0dSRVNT X0NSRUFURUlEWF9QQVJUSVRJT05TX0RPTkUsCisJCQkJCQkJCQkgLy8gbnBhcnQrKyk7CisKKwkJ aWYgKGdldF9pbmRleF9pc3ZhbGlkKHBhcnRvaWQpIHx8CisJCQkJIVJFTEtJTkRfSEFTX1NUT1JB R0UoZ2V0X3JlbF9yZWxraW5kKHBhcnRvaWQpKSkKKwkJCWNvbnRpbnVlOworCisJCS8qIFNhdmUg cGFydGl0aW9uIE9JRCAqLworCQlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGlu ZF9jb250ZXh0KTsKKwkJcGFydGl0aW9ucyA9IGxhcHBlbmRfb2lkKHBhcnRpdGlvbnMsIHBhcnRv aWQpOworCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CisJfQorCisJLyoKKwkg KiBQcm9jZXNzIGVhY2ggcGFydGl0aW9uIGxpc3RlZCBpbiBhIHNlcGFyYXRlIHRyYW5zYWN0aW9u LiAgTm90ZSB0aGF0CisJICogdGhpcyBjb21taXRzIGFuZCB0aGVuIHN0YXJ0cyBhIG5ldyB0cmFu c2FjdGlvbiBpbW1lZGlhdGVseS4KKwkgKiBYWFg6IHNpbmNlIHRoaXMgaXMgZG9uZSBpbiAyKk4g dHJhbnNhY3Rpb25zLCBpdCBjb3VsZCBqdXN0IGFzIHdlbGwKKwkgKiBjYWxsIFJlaW5kZXhSZWxh dGlvbkNvbmN1cnJlbnRseSBkaXJlY3RseQorCSAqLworCVJlaW5kZXhNdWx0aXBsZUludGVybmFs KHBhcnRpdGlvbnMsICZwYXJhbXMpOworCisJLyoKKwkgKiBDSUMgbmVlZHMgdG8gbWFyayBhIHBh cnRpdGlvbmVkIGluZGV4IGFzIFZBTElELCB3aGljaCBpdHNlbGYKKwkgKiByZXF1aXJlcyBzZXR0 aW5nIFJFQURZLCB3aGljaCBpcyB1bnNldCBmb3IgQ0lDIChldmVuIHRob3VnaAorCSAqIGl0J3Mg bWVhbmluZ2xlc3MgZm9yIGFuIGluZGV4IHdpdGhvdXQgc3RvcmFnZSkuCisJICogVGhpcyBtdXN0 IGJlIGRvbmUgb25seSB3aGlsZSBob2xkaW5nIGEgbG9jayB3aGljaCBwcmVjbHVkZXMgYWRkaW5n CisJICogcGFydGl0aW9ucy4KKwkgKiBTZWUgYWxzbzogdmFsaWRhdGVQYXJ0aXRpb25lZEluZGV4 KCkuCisJICovCisJaW5kZXhfc2V0X3N0YXRlX2ZsYWdzKGluZGV4UmVsYXRpb25JZCwgSU5ERVhf Q1JFQVRFX1NFVF9SRUFEWSk7CisJQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKKwlpbmRleF9z ZXRfc3RhdGVfZmxhZ3MoaW5kZXhSZWxhdGlvbklkLCBJTkRFWF9DUkVBVEVfU0VUX1ZBTElEKTsK K30KIAogLyoKICAqIENoZWNrTXV0YWJpbGl0eQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9pbmRleGluZy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2luZGV4 aW5nLm91dAppbmRleCAxOTNmNzgwMTkxMi4uYTRjY2FlNTBkZTMgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvaW5kZXhpbmcub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvaW5kZXhpbmcub3V0CkBAIC01MCwxMSArNTAsNjMgQEAgc2VsZWN0IHJlbG5hbWUs IHJlbGtpbmQsIHJlbGhhc3N1YmNsYXNzLCBpbmhwYXJlbnQ6OnJlZ2NsYXNzCiAoOCByb3dzKQog CiBkcm9wIHRhYmxlIGlkeHBhcnQ7Ci0tLSBTb21lIHVuc3VwcG9ydGVkIGZlYXR1cmVzCistLSBD SUMgb24gcGFydGl0aW9uZWQgdGFibGUKIGNyZWF0ZSB0YWJsZSBpZHhwYXJ0IChhIGludCwgYiBp bnQsIGMgdGV4dCkgcGFydGl0aW9uIGJ5IHJhbmdlIChhKTsKLWNyZWF0ZSB0YWJsZSBpZHhwYXJ0 MSBwYXJ0aXRpb24gb2YgaWR4cGFydCBmb3IgdmFsdWVzIGZyb20gKDApIHRvICgxMCk7Ci1jcmVh dGUgaW5kZXggY29uY3VycmVudGx5IG9uIGlkeHBhcnQgKGEpOwotRVJST1I6ICBjYW5ub3QgY3Jl YXRlIGluZGV4IG9uIHBhcnRpdGlvbmVkIHRhYmxlICJpZHhwYXJ0IiBjb25jdXJyZW50bHkKK2Ny ZWF0ZSB0YWJsZSBpZHhwYXJ0MSBwYXJ0aXRpb24gb2YgaWR4cGFydCBmb3IgdmFsdWVzIGZyb20g KDApIHRvICgxMCkgcGFydGl0aW9uIGJ5IHJhbmdlKGEpOworY3JlYXRlIHRhYmxlIGlkeHBhcnQx MSBwYXJ0aXRpb24gb2YgaWR4cGFydDEgZm9yIHZhbHVlcyBmcm9tICgwKSB0byAoMTApIHBhcnRp dGlvbiBieSByYW5nZShhKTsKK2NyZWF0ZSB0YWJsZSBpZHhwYXJ0MTExIHBhcnRpdGlvbiBvZiBp ZHhwYXJ0MTEgZGVmYXVsdCBwYXJ0aXRpb24gYnkgcmFuZ2UoYSk7CitjcmVhdGUgdGFibGUgaWR4 cGFydDExMTEgcGFydGl0aW9uIG9mIGlkeHBhcnQxMTEgZGVmYXVsdCBwYXJ0aXRpb24gYnkgcmFu Z2UoYSk7CitjcmVhdGUgdGFibGUgaWR4cGFydDIgcGFydGl0aW9uIG9mIGlkeHBhcnQgZm9yIHZh bHVlcyBmcm9tICgxMCkgdG8gKDIwKTsKK2luc2VydCBpbnRvIGlkeHBhcnQyIHZhbHVlcygxMCks KDEwKTsgLS0gbm90IHVuaXF1ZQorY3JlYXRlIGluZGV4IGNvbmN1cnJlbnRseSBvbiBpZHhwYXJ0 IChhKTsgLS0gcGFydGl0aW9uZWQKK2NyZWF0ZSBpbmRleCBjb25jdXJyZW50bHkgb24gaWR4cGFy dDEgKGEpOyAtLSBwYXJ0aXRpb25lZCBhbmQgcGFydGl0aW9uCitjcmVhdGUgaW5kZXggY29uY3Vy cmVudGx5IG9uIGlkeHBhcnQxMSAoYSk7IC0tIHBhcnRpdGlvbmVkIGFuZCBwYXJ0aXRpb24sIHdp dGggbm8gbGVhdmVzCitjcmVhdGUgaW5kZXggY29uY3VycmVudGx5IG9uIGlkeHBhcnQyIChhKTsg LS0gbGVhZgorY3JlYXRlIHVuaXF1ZSBpbmRleCBjb25jdXJyZW50bHkgb24gaWR4cGFydCAoYSk7 IC0tIHBhcnRpdGlvbmVkLCB1bmlxdWUgZmFpbHVyZQorRVJST1I6ICBjb3VsZCBub3QgY3JlYXRl IHVuaXF1ZSBpbmRleCAiaWR4cGFydDJfYV9pZHgyX2NjbmV3IgorREVUQUlMOiAgS2V5IChhKT0o MTApIGlzIGR1cGxpY2F0ZWQuCitcZCBpZHhwYXJ0CisgICAgICAgIFBhcnRpdGlvbmVkIHRhYmxl ICJwdWJsaWMuaWR4cGFydCIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFi bGUgfCBEZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisg YiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgYyAgICAgIHwgdGV4 dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQYXJ0aXRpb24ga2V5OiBSQU5HRSAoYSkK K0luZGV4ZXM6CisgICAgImlkeHBhcnRfYV9pZHgiIGJ0cmVlIChhKQorICAgICJpZHhwYXJ0X2Ff aWR4MSIgVU5JUVVFLCBidHJlZSAoYSkgSU5WQUxJRAorTnVtYmVyIG9mIHBhcnRpdGlvbnM6IDIg KFVzZSBcZCsgdG8gbGlzdCB0aGVtLikKKworXGQgaWR4cGFydDEKKyAgICAgICAgUGFydGl0aW9u ZWQgdGFibGUgInB1YmxpYy5pZHhwYXJ0MSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9u IHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgYyAg ICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQYXJ0aXRpb24gb2Y6IGlk eHBhcnQgRk9SIFZBTFVFUyBGUk9NICgwKSBUTyAoMTApCitQYXJ0aXRpb24ga2V5OiBSQU5HRSAo YSkKK0luZGV4ZXM6CisgICAgImlkeHBhcnQxX2FfaWR4IiBidHJlZSAoYSkgSU5WQUxJRAorICAg ICJpZHhwYXJ0MV9hX2lkeDEiIGJ0cmVlIChhKQorICAgICJpZHhwYXJ0MV9hX2lkeDIiIFVOSVFV RSwgYnRyZWUgKGEpIElOVkFMSUQKK051bWJlciBvZiBwYXJ0aXRpb25zOiAxIChVc2UgXGQrIHRv IGxpc3QgdGhlbS4pCisKK1xkIGlkeHBhcnQyCisgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMu aWR4cGFydDIiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVm YXVsdCAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LQorIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGIgICAgICB8 IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGMgICAgICB8IHRleHQgICAgfCAg ICAgICAgICAgfCAgICAgICAgICB8IAorUGFydGl0aW9uIG9mOiBpZHhwYXJ0IEZPUiBWQUxVRVMg RlJPTSAoMTApIFRPICgyMCkKK0luZGV4ZXM6CisgICAgImlkeHBhcnQyX2FfaWR4IiBidHJlZSAo YSkKKyAgICAiaWR4cGFydDJfYV9pZHgxIiBidHJlZSAoYSkKKyAgICAiaWR4cGFydDJfYV9pZHgy IiBVTklRVUUsIGJ0cmVlIChhKSBJTlZBTElECisgICAgImlkeHBhcnQyX2FfaWR4Ml9jY25ldyIg VU5JUVVFLCBidHJlZSAoYSkgSU5WQUxJRAorCiBkcm9wIHRhYmxlIGlkeHBhcnQ7CiAtLSBWZXJp ZnkgYnVnZml4IHdpdGggcXVlcnkgb24gaW5kZXhlZCBwYXJ0aXRpb25lZCB0YWJsZSB3aXRoIG5v IHBhcnRpdGlvbnMKIC0tIGh0dHBzOi8vcG9zdGdyLmVzL20vMjAxODAxMjQxNjIwMDYucG1hcGZp em5oZ25nd3RqZkBhbHZoZXJyZS5wZ3NxbApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvaW5kZXhpbmcuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvaW5kZXhpbmcuc3FsCmluZGV4 IDQyZjM5OGI2N2MyLi4zZDRiNmU5YmM5NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvaW5kZXhpbmcuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2luZGV4aW5nLnNxbApA QCAtMjksMTAgKzI5LDIyIEBAIHNlbGVjdCByZWxuYW1lLCByZWxraW5kLCByZWxoYXNzdWJjbGFz cywgaW5ocGFyZW50OjpyZWdjbGFzcwogCXdoZXJlIHJlbG5hbWUgbGlrZSAnaWR4cGFydCUnIG9y ZGVyIGJ5IHJlbG5hbWU7CiBkcm9wIHRhYmxlIGlkeHBhcnQ7CiAKLS0tIFNvbWUgdW5zdXBwb3J0 ZWQgZmVhdHVyZXMKKy0tIENJQyBvbiBwYXJ0aXRpb25lZCB0YWJsZQogY3JlYXRlIHRhYmxlIGlk eHBhcnQgKGEgaW50LCBiIGludCwgYyB0ZXh0KSBwYXJ0aXRpb24gYnkgcmFuZ2UgKGEpOwotY3Jl YXRlIHRhYmxlIGlkeHBhcnQxIHBhcnRpdGlvbiBvZiBpZHhwYXJ0IGZvciB2YWx1ZXMgZnJvbSAo MCkgdG8gKDEwKTsKLWNyZWF0ZSBpbmRleCBjb25jdXJyZW50bHkgb24gaWR4cGFydCAoYSk7Citj cmVhdGUgdGFibGUgaWR4cGFydDEgcGFydGl0aW9uIG9mIGlkeHBhcnQgZm9yIHZhbHVlcyBmcm9t ICgwKSB0byAoMTApIHBhcnRpdGlvbiBieSByYW5nZShhKTsKK2NyZWF0ZSB0YWJsZSBpZHhwYXJ0 MTEgcGFydGl0aW9uIG9mIGlkeHBhcnQxIGZvciB2YWx1ZXMgZnJvbSAoMCkgdG8gKDEwKSBwYXJ0 aXRpb24gYnkgcmFuZ2UoYSk7CitjcmVhdGUgdGFibGUgaWR4cGFydDExMSBwYXJ0aXRpb24gb2Yg aWR4cGFydDExIGRlZmF1bHQgcGFydGl0aW9uIGJ5IHJhbmdlKGEpOworY3JlYXRlIHRhYmxlIGlk eHBhcnQxMTExIHBhcnRpdGlvbiBvZiBpZHhwYXJ0MTExIGRlZmF1bHQgcGFydGl0aW9uIGJ5IHJh bmdlKGEpOworY3JlYXRlIHRhYmxlIGlkeHBhcnQyIHBhcnRpdGlvbiBvZiBpZHhwYXJ0IGZvciB2 YWx1ZXMgZnJvbSAoMTApIHRvICgyMCk7CitpbnNlcnQgaW50byBpZHhwYXJ0MiB2YWx1ZXMoMTAp LCgxMCk7IC0tIG5vdCB1bmlxdWUKK2NyZWF0ZSBpbmRleCBjb25jdXJyZW50bHkgb24gaWR4cGFy dCAoYSk7IC0tIHBhcnRpdGlvbmVkCitjcmVhdGUgaW5kZXggY29uY3VycmVudGx5IG9uIGlkeHBh cnQxIChhKTsgLS0gcGFydGl0aW9uZWQgYW5kIHBhcnRpdGlvbgorY3JlYXRlIGluZGV4IGNvbmN1 cnJlbnRseSBvbiBpZHhwYXJ0MTEgKGEpOyAtLSBwYXJ0aXRpb25lZCBhbmQgcGFydGl0aW9uLCB3 aXRoIG5vIGxlYXZlcworY3JlYXRlIGluZGV4IGNvbmN1cnJlbnRseSBvbiBpZHhwYXJ0MiAoYSk7 IC0tIGxlYWYKK2NyZWF0ZSB1bmlxdWUgaW5kZXggY29uY3VycmVudGx5IG9uIGlkeHBhcnQgKGEp OyAtLSBwYXJ0aXRpb25lZCwgdW5pcXVlIGZhaWx1cmUKK1xkIGlkeHBhcnQKK1xkIGlkeHBhcnQx CitcZCBpZHhwYXJ0MgogZHJvcCB0YWJsZSBpZHhwYXJ0OwogCiAtLSBWZXJpZnkgYnVnZml4IHdp dGggcXVlcnkgb24gaW5kZXhlZCBwYXJ0aXRpb25lZCB0YWJsZSB3aXRoIG5vIHBhcnRpdGlvbnMK LS0gCjIuMzQuMQoK --=_37f0de76e2ab40a5d828bb75a5990eec--