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 1pIDoe-0002aZ-Iv for pgsql-hackers@arkaria.postgresql.org; Wed, 18 Jan 2023 19:09:45 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pIDod-00066n-GN for pgsql-hackers@arkaria.postgresql.org; Wed, 18 Jan 2023 19:09:43 +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 1pIDoc-00066d-QD for pgsql-hackers@lists.postgresql.org; Wed, 18 Jan 2023 19:09:43 +0000 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pIDoY-0001yH-Vq for pgsql-hackers@postgresql.org; Wed, 18 Jan 2023 19:09:41 +0000 Received: by mail-wm1-x32e.google.com with SMTP id c4-20020a1c3504000000b003d9e2f72093so2101152wma.1 for ; Wed, 18 Jan 2023 11:09:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb.com; s=google; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=oOXGSP8SacqUjuhEAfah+qWsY4rvm3NgckbtvPaWvdA=; b=Y12vOB/SzfDS4pZ9BorGvNW+3efG0AfWviMFp1KiZoKo45xYKA2lEZmpq2jhUDwS9I ZO0GLBKtY8IX0UslnM7+YXvea9jRSMkGxDCAa4hNcursGH6ViMdxFedvG/NyO6tH9dXQ QosDSOYKzAnUJh2l5gcU70VBeTUnULkkoKDV550XCpJhkXnqf4JWwR+1vXs9ZLhksRzn owXHbHo5F0LI3VAe4CtwTBnBO6nuyZx9YEO+T/KMY/4rXExn/4848i4Sq1Euf4CgZIr1 JBWBQ3xMZIUEZOdAl8vy3Iji/SVpMUBN87Zs3IQX6Nz1Z9TleXxrn2KyldA/J61ZhAYw iugw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=oOXGSP8SacqUjuhEAfah+qWsY4rvm3NgckbtvPaWvdA=; b=yvzd5vhVMmmHe0v8eNwv3CfxI0A723nJxpfQ9u828NnopRcmhM9XHsEzWuCC0j2ilZ bQHgAS3HryGU/n2srTqXnITG4GuzbaWsQWxA7qU/LsHQnrbDzg/YLuM2wwkGG3Ps1qvy NRHf6Itzc8eLJj7ECJ4iIU5DczvkFDxLwp++D4KJhfwj+Uf9v4QGeG1XFp64zF59GC2f Aj25HDDvH3ZdUF4HA36v9zGnKpZQMBAuXTdvy/wo0TwZPvrHlObYmBtIkQT8Nck9BHPF v61TcG210XtXabWoGvwje+3Q/OLVD46jHOUuqDpnenDNrNEQ6vkD0V8MJqIR9VVopscW uVkQ== X-Gm-Message-State: AFqh2ko/4e2+jRKoY/S2d5uaiiCCHMBiLwSTMvvcPHCXsxAsBzpeuxvk itS1ngYMqEXqVn9Qf6x3/gO0+GMq25lGKizU0wRzW1iD2T7enp+6s3TgFUKuEgiZ0Rg69QS+miC 8iB3ghHNsYzg9jlLRYCO99UfYZ4NKeYfm95/UFamufUylDVtPH1XBmhAf4SQFw4mvgYTZJFI8/g jlC3GW69E+5yYTcQBpjo8Mu0fbgK14fydF5rXSJNCP2BZXSXj4pp1hpvjzOSJV1locqdRiK04R5 lxGzEiY9xOoAjbO/0TnLq99TN0cR1IqIT3e X-Google-Smtp-Source: AMrXdXsxiOmwbLvYoMoLPB2+773F4NsdDcOLEPK5nEHC1iZUFJkcE4C5dgNqQs5xDTvWX6WDOE4JDg== X-Received: by 2002:a05:600c:538e:b0:3da:516:19ed with SMTP id hg14-20020a05600c538e00b003da051619edmr7585222wmb.29.1674068977293; Wed, 18 Jan 2023 11:09:37 -0800 (PST) Received: from [10.137.0.17] (static-84-42-175-93.bb.vodafone.cz. [84.42.175.93]) by smtp.gmail.com with ESMTPSA id ay13-20020a05600c1e0d00b003cf71b1f66csm2988398wmb.0.2023.01.18.11.09.36 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 18 Jan 2023 11:09:36 -0800 (PST) Content-Type: multipart/mixed; boundary="------------zRdKMQJjbL8fPXUmSNjb0L0K" Message-ID: <1818a285-59b9-e028-c5a8-539f715b9371@enterprisedb.com> Date: Wed, 18 Jan 2023 20:09:21 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 Subject: Re: Parallelize correlated subqueries that execute within each worker Content-Language: en-US To: vignesh C , James Coleman Cc: Andres Freund , Robert Haas , pgsql-hackers , Amit Kapila , Tom Lane References: <20220322004805.vwmgjp62tq3mj2oq@alap3.anarazel.de> From: Tomas Vondra In-Reply-To: X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------zRdKMQJjbL8fPXUmSNjb0L0K Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Hi, This patch hasn't been updated since September, and it got broken by 4a29eabd1d91c5484426bc5836e0a7143b064f5a which the incremental sort stuff a little bit. But the breakage was rather limited, so I took a stab at fixing it - attached is the result, hopefully correct. I also added a couple minor comments about stuff I noticed while rebasing and skimming the patch, I kept those in separate commits. There's also a couple pre-existing TODOs. James, what's your plan with this patch. Do you intend to work on it for PG16, or are there some issues I missed in the thread? One of the queries in in incremental_sort changed plans a little bit: explain (costs off) select distinct unique1, (select t.unique1 from tenk1 where tenk1.unique1 = t.unique1) from tenk1 t, generate_series(1, 1000); switched from Unique (cost=18582710.41..18747375.21 rows=10000 width=8) -> Gather Merge (cost=18582710.41..18697375.21 rows=10000000 ...) Workers Planned: 2 -> Sort (cost=18582710.39..18593127.06 rows=4166667 ...) Sort Key: t.unique1, ((SubPlan 1)) ... to Unique (cost=18582710.41..18614268.91 rows=10000 ...) -> Gather Merge (cost=18582710.41..18614168.91 rows=20000 ...) Workers Planned: 2 -> Unique (cost=18582710.39..18613960.39 rows=10000 ...) -> Sort (cost=18582710.39..18593127.06 ...) Sort Key: t.unique1, ((SubPlan 1)) ... which probably makes sense, as the cost estimate decreases a bit. -- Tomas Vondra EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company --------------zRdKMQJjbL8fPXUmSNjb0L0K Content-Type: text/x-patch; charset=UTF-8; name="0001-Add-tests-before-change-v6.patch" Content-Disposition: attachment; filename="0001-Add-tests-before-change-v6.patch" Content-Transfer-Encoding: base64 RnJvbSA5NWRiMTVmZTE2MzAzZWQzZjRmZGVhNTJhZjNiOGQ2ZDA1YThkN2E2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBqY29sZW1hbiA8anRjMzMxQGdtYWlsLmNvbT4KRGF0 ZTogTW9uLCAyNiBTZXAgMjAyMiAyMDozMDoyMyAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMS81 XSBBZGQgdGVzdHMgYmVmb3JlIGNoYW5nZQoKLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3NlbGVjdF9wYXJhbGxlbC5vdXQgfCAxMDggKysrKysrKysrKysrKysrKysrCiBzcmMv dGVzdC9yZWdyZXNzL3NxbC9zZWxlY3RfcGFyYWxsZWwuc3FsICAgICAgfCAgMjUgKysrKwog MiBmaWxlcyBjaGFuZ2VkLCAxMzMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2VsZWN0X3BhcmFsbGVsLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2VsZWN0X3BhcmFsbGVsLm91dAppbmRleCA5MWY3NGZlNDdhMy4u OWI0ZDdkZDQ0YTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vs ZWN0X3BhcmFsbGVsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3NlbGVj dF9wYXJhbGxlbC5vdXQKQEAgLTMxMSw2ICszMTEsMTE0IEBAIHNlbGVjdCBjb3VudCgqKSBm cm9tIHRlbmsxIHdoZXJlICh0d28sIGZvdXIpIG5vdCBpbgogIDEwMDAwCiAoMSByb3cpCiAK Ky0tIHRlc3QgcGFyYWxsZWwgcGxhbnMgZm9yIHF1ZXJpZXMgY29udGFpbmluZyBjb3JyZWxh dGVkIHN1YnBsYW5zCistLSB3aGVyZSB0aGUgc3VicGxhbiBvbmx5IG5lZWRzIHBhcmFtcyBh dmFpbGFibGUgZnJvbSB0aGUgY3VycmVudAorLS0gd29ya2VyJ3Mgc2Nhbi4KK2V4cGxhaW4g KGNvc3RzIG9mZiwgdmVyYm9zZSkgc2VsZWN0CisgIChzZWxlY3QgdC51bmlxdWUxIGZyb20g dGVuazEgd2hlcmUgdGVuazEudW5pcXVlMSA9IHQudW5pcXVlMSkKKyAgZnJvbSB0ZW5rMSB0 LCBnZW5lcmF0ZV9zZXJpZXMoMSwgMTApOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIEdhdGhlcgorICAgT3V0cHV0OiAoU3ViUGxhbiAxKQor ICAgV29ya2VycyBQbGFubmVkOiA0CisgICAtPiAgTmVzdGVkIExvb3AKKyAgICAgICAgIE91 dHB1dDogdC51bmlxdWUxCisgICAgICAgICAtPiAgUGFyYWxsZWwgSW5kZXggT25seSBTY2Fu IHVzaW5nIHRlbmsxX3VuaXF1ZTEgb24gcHVibGljLnRlbmsxIHQKKyAgICAgICAgICAgICAg IE91dHB1dDogdC51bmlxdWUxCisgICAgICAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBwZ19j YXRhbG9nLmdlbmVyYXRlX3NlcmllcworICAgICAgICAgICAgICAgT3V0cHV0OiBnZW5lcmF0 ZV9zZXJpZXMuZ2VuZXJhdGVfc2VyaWVzCisgICAgICAgICAgICAgICBGdW5jdGlvbiBDYWxs OiBnZW5lcmF0ZV9zZXJpZXMoMSwgMTApCisgICBTdWJQbGFuIDEKKyAgICAgLT4gIEluZGV4 IE9ubHkgU2NhbiB1c2luZyB0ZW5rMV91bmlxdWUxIG9uIHB1YmxpYy50ZW5rMQorICAgICAg ICAgICBPdXRwdXQ6IHQudW5pcXVlMQorICAgICAgICAgICBJbmRleCBDb25kOiAodGVuazEu dW5pcXVlMSA9IHQudW5pcXVlMSkKKygxNCByb3dzKQorCitleHBsYWluIChjb3N0cyBvZmYs IHZlcmJvc2UpIHNlbGVjdAorICAoc2VsZWN0IHQudW5pcXVlMSBmcm9tIHRlbmsxIHdoZXJl IHRlbmsxLnVuaXF1ZTEgPSB0LnVuaXF1ZTEpCisgIGZyb20gdGVuazEgdDsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBHYXRoZXIKKyAgIE91dHB1dDogKFN1YlBs YW4gMSkKKyAgIFdvcmtlcnMgUGxhbm5lZDogNAorICAgLT4gIFBhcmFsbGVsIEluZGV4IE9u bHkgU2NhbiB1c2luZyB0ZW5rMV91bmlxdWUxIG9uIHB1YmxpYy50ZW5rMSB0CisgICAgICAg ICBPdXRwdXQ6IHQudW5pcXVlMQorICAgU3ViUGxhbiAxCisgICAgIC0+ICBJbmRleCBPbmx5 IFNjYW4gdXNpbmcgdGVuazFfdW5pcXVlMSBvbiBwdWJsaWMudGVuazEKKyAgICAgICAgICAg T3V0cHV0OiB0LnVuaXF1ZTEKKyAgICAgICAgICAgSW5kZXggQ29uZDogKHRlbmsxLnVuaXF1 ZTEgPSB0LnVuaXF1ZTEpCisoOSByb3dzKQorCitleHBsYWluIChjb3N0cyBvZmYsIHZlcmJv c2UpIHNlbGVjdAorICAoc2VsZWN0IHQudW5pcXVlMSBmcm9tIHRlbmsxIHdoZXJlIHRlbmsx LnVuaXF1ZTEgPSB0LnVuaXF1ZTEpCisgIGZyb20gdGVuazEgdAorICBsaW1pdCAxOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIExpbWl0CisgICBPdXRwdXQ6ICgoU3ViUGxh biAxKSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBwdWJsaWMudGVuazEgdAorICAgICAgICAgT3V0 cHV0OiAoU3ViUGxhbiAxKQorICAgICAgICAgU3ViUGxhbiAxCisgICAgICAgICAgIC0+ICBJ bmRleCBPbmx5IFNjYW4gdXNpbmcgdGVuazFfdW5pcXVlMSBvbiBwdWJsaWMudGVuazEKKyAg ICAgICAgICAgICAgICAgT3V0cHV0OiB0LnVuaXF1ZTEKKyAgICAgICAgICAgICAgICAgSW5k ZXggQ29uZDogKHRlbmsxLnVuaXF1ZTEgPSB0LnVuaXF1ZTEpCisoOCByb3dzKQorCitleHBs YWluIChjb3N0cyBvZmYsIHZlcmJvc2UpIHNlbGVjdCB0LnVuaXF1ZTEKKyAgZnJvbSB0ZW5r MSB0CisgIHdoZXJlIHQudW5pcXVlMSA9IChzZWxlY3QgdC51bmlxdWUxIGZyb20gdGVuazEg d2hlcmUgdGVuazEudW5pcXVlMSA9IHQudW5pcXVlMSk7CisgICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg U2VxIFNjYW4gb24gcHVibGljLnRlbmsxIHQKKyAgIE91dHB1dDogdC51bmlxdWUxCisgICBG aWx0ZXI6ICh0LnVuaXF1ZTEgPSAoU3ViUGxhbiAxKSkKKyAgIFN1YlBsYW4gMQorICAgICAt PiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTEgb24gcHVibGljLnRlbmsx CisgICAgICAgICAgIE91dHB1dDogdC51bmlxdWUxCisgICAgICAgICAgIEluZGV4IENvbmQ6 ICh0ZW5rMS51bmlxdWUxID0gdC51bmlxdWUxKQorKDcgcm93cykKKworZXhwbGFpbiAoY29z dHMgb2ZmLCB2ZXJib3NlKSBzZWxlY3QgKgorICBmcm9tIHRlbmsxIHQKKyAgb3JkZXIgYnkg KHNlbGVjdCB0LnVuaXF1ZTEgZnJvbSB0ZW5rMSB3aGVyZSB0ZW5rMS51bmlxdWUxID0gdC51 bmlxdWUxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTb3J0CisgICBPdXRwdXQ6IHQudW5pcXVl MSwgdC51bmlxdWUyLCB0LnR3bywgdC5mb3VyLCB0LnRlbiwgdC50d2VudHksIHQuaHVuZHJl ZCwgdC50aG91c2FuZCwgdC50d290aG91c2FuZCwgdC5maXZldGhvdXMsIHQudGVudGhvdXMs IHQub2RkLCB0LmV2ZW4sIHQuc3RyaW5ndTEsIHQuc3RyaW5ndTIsIHQuc3RyaW5nNCwgKChT dWJQbGFuIDEpKQorICAgU29ydCBLZXk6ICgoU3ViUGxhbiAxKSkKKyAgIC0+ICBHYXRoZXIK KyAgICAgICAgIE91dHB1dDogdC51bmlxdWUxLCB0LnVuaXF1ZTIsIHQudHdvLCB0LmZvdXIs IHQudGVuLCB0LnR3ZW50eSwgdC5odW5kcmVkLCB0LnRob3VzYW5kLCB0LnR3b3Rob3VzYW5k LCB0LmZpdmV0aG91cywgdC50ZW50aG91cywgdC5vZGQsIHQuZXZlbiwgdC5zdHJpbmd1MSwg dC5zdHJpbmd1MiwgdC5zdHJpbmc0LCAoU3ViUGxhbiAxKQorICAgICAgICAgV29ya2VycyBQ bGFubmVkOiA0CisgICAgICAgICAtPiAgUGFyYWxsZWwgU2VxIFNjYW4gb24gcHVibGljLnRl bmsxIHQKKyAgICAgICAgICAgICAgIE91dHB1dDogdC51bmlxdWUxLCB0LnVuaXF1ZTIsIHQu dHdvLCB0LmZvdXIsIHQudGVuLCB0LnR3ZW50eSwgdC5odW5kcmVkLCB0LnRob3VzYW5kLCB0 LnR3b3Rob3VzYW5kLCB0LmZpdmV0aG91cywgdC50ZW50aG91cywgdC5vZGQsIHQuZXZlbiwg dC5zdHJpbmd1MSwgdC5zdHJpbmd1MiwgdC5zdHJpbmc0CisgICAgICAgICBTdWJQbGFuIDEK KyAgICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyB0ZW5rMV91bmlxdWUxIG9u IHB1YmxpYy50ZW5rMQorICAgICAgICAgICAgICAgICBPdXRwdXQ6IHQudW5pcXVlMQorICAg ICAgICAgICAgICAgICBJbmRleCBDb25kOiAodGVuazEudW5pcXVlMSA9IHQudW5pcXVlMSkK KygxMiByb3dzKQorCistLSB0ZXN0IHN1YnBsYW4gaW4gam9pbi9sYXRlcmFsIGpvaW4KK2V4 cGxhaW4gKGNvc3RzIG9mZiwgdmVyYm9zZSwgdGltaW5nIG9mZikgc2VsZWN0IHQudW5pcXVl MSwgbC4qCisgIGZyb20gdGVuazEgdAorICBqb2luIGxhdGVyYWwgKAorICAgIHNlbGVjdCAo c2VsZWN0IHQudW5pcXVlMSBmcm9tIHRlbmsxIHdoZXJlIHRlbmsxLnVuaXF1ZTEgPSB0LnVu aXF1ZTEgb2Zmc2V0IDApCisgICkgbCBvbiB0cnVlOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIEdhdGhlcgorICAgT3V0cHV0OiB0LnVuaXF1ZTEsIChTdWJQbGFu IDEpCisgICBXb3JrZXJzIFBsYW5uZWQ6IDQKKyAgIC0+ICBQYXJhbGxlbCBJbmRleCBPbmx5 IFNjYW4gdXNpbmcgdGVuazFfdW5pcXVlMSBvbiBwdWJsaWMudGVuazEgdAorICAgICAgICAg T3V0cHV0OiB0LnVuaXF1ZTEKKyAgIFN1YlBsYW4gMQorICAgICAtPiAgSW5kZXggT25seSBT Y2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTEgb24gcHVibGljLnRlbmsxCisgICAgICAgICAgIE91 dHB1dDogdC51bmlxdWUxCisgICAgICAgICAgIEluZGV4IENvbmQ6ICh0ZW5rMS51bmlxdWUx ID0gdC51bmlxdWUxKQorKDkgcm93cykKKwogLS0gdGhpcyBpcyBub3QgcGFyYWxsZWwtc2Fm ZSBkdWUgdG8gdXNlIG9mIHJhbmRvbSgpIHdpdGhpbiBTdWJMaW5rJ3MgdGVzdGV4cHI6CiBl eHBsYWluIChjb3N0cyBvZmYpCiAJc2VsZWN0ICogZnJvbSB0ZW5rMSB3aGVyZSAodW5pcXVl MSArIHJhbmRvbSgpKTo6aW50ZWdlciBub3QgaW4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3NlbGVjdF9wYXJhbGxlbC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9z ZWxlY3RfcGFyYWxsZWwuc3FsCmluZGV4IDYyZmI2OGM3YTA0Li4yMWMyZjFjNzQyNCAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2VsZWN0X3BhcmFsbGVsLnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZWxlY3RfcGFyYWxsZWwuc3FsCkBAIC0xMTEsNiAr MTExLDMxIEBAIGV4cGxhaW4gKGNvc3RzIG9mZikKIAkoc2VsZWN0IGh1bmRyZWQsIHRob3Vz YW5kIGZyb20gdGVuazIgd2hlcmUgdGhvdXNhbmQgPiAxMDApOwogc2VsZWN0IGNvdW50KCop IGZyb20gdGVuazEgd2hlcmUgKHR3bywgZm91cikgbm90IGluCiAJKHNlbGVjdCBodW5kcmVk LCB0aG91c2FuZCBmcm9tIHRlbmsyIHdoZXJlIHRob3VzYW5kID4gMTAwKTsKKy0tIHRlc3Qg cGFyYWxsZWwgcGxhbnMgZm9yIHF1ZXJpZXMgY29udGFpbmluZyBjb3JyZWxhdGVkIHN1YnBs YW5zCistLSB3aGVyZSB0aGUgc3VicGxhbiBvbmx5IG5lZWRzIHBhcmFtcyBhdmFpbGFibGUg ZnJvbSB0aGUgY3VycmVudAorLS0gd29ya2VyJ3Mgc2Nhbi4KK2V4cGxhaW4gKGNvc3RzIG9m ZiwgdmVyYm9zZSkgc2VsZWN0CisgIChzZWxlY3QgdC51bmlxdWUxIGZyb20gdGVuazEgd2hl cmUgdGVuazEudW5pcXVlMSA9IHQudW5pcXVlMSkKKyAgZnJvbSB0ZW5rMSB0LCBnZW5lcmF0 ZV9zZXJpZXMoMSwgMTApOworZXhwbGFpbiAoY29zdHMgb2ZmLCB2ZXJib3NlKSBzZWxlY3QK KyAgKHNlbGVjdCB0LnVuaXF1ZTEgZnJvbSB0ZW5rMSB3aGVyZSB0ZW5rMS51bmlxdWUxID0g dC51bmlxdWUxKQorICBmcm9tIHRlbmsxIHQ7CitleHBsYWluIChjb3N0cyBvZmYsIHZlcmJv c2UpIHNlbGVjdAorICAoc2VsZWN0IHQudW5pcXVlMSBmcm9tIHRlbmsxIHdoZXJlIHRlbmsx LnVuaXF1ZTEgPSB0LnVuaXF1ZTEpCisgIGZyb20gdGVuazEgdAorICBsaW1pdCAxOworZXhw bGFpbiAoY29zdHMgb2ZmLCB2ZXJib3NlKSBzZWxlY3QgdC51bmlxdWUxCisgIGZyb20gdGVu azEgdAorICB3aGVyZSB0LnVuaXF1ZTEgPSAoc2VsZWN0IHQudW5pcXVlMSBmcm9tIHRlbmsx IHdoZXJlIHRlbmsxLnVuaXF1ZTEgPSB0LnVuaXF1ZTEpOworZXhwbGFpbiAoY29zdHMgb2Zm LCB2ZXJib3NlKSBzZWxlY3QgKgorICBmcm9tIHRlbmsxIHQKKyAgb3JkZXIgYnkgKHNlbGVj dCB0LnVuaXF1ZTEgZnJvbSB0ZW5rMSB3aGVyZSB0ZW5rMS51bmlxdWUxID0gdC51bmlxdWUx KTsKKy0tIHRlc3Qgc3VicGxhbiBpbiBqb2luL2xhdGVyYWwgam9pbgorZXhwbGFpbiAoY29z dHMgb2ZmLCB2ZXJib3NlLCB0aW1pbmcgb2ZmKSBzZWxlY3QgdC51bmlxdWUxLCBsLioKKyAg ZnJvbSB0ZW5rMSB0CisgIGpvaW4gbGF0ZXJhbCAoCisgICAgc2VsZWN0IChzZWxlY3QgdC51 bmlxdWUxIGZyb20gdGVuazEgd2hlcmUgdGVuazEudW5pcXVlMSA9IHQudW5pcXVlMSBvZmZz ZXQgMCkKKyAgKSBsIG9uIHRydWU7CiAtLSB0aGlzIGlzIG5vdCBwYXJhbGxlbC1zYWZlIGR1 ZSB0byB1c2Ugb2YgcmFuZG9tKCkgd2l0aGluIFN1YkxpbmsncyB0ZXN0ZXhwcjoKIGV4cGxh aW4gKGNvc3RzIG9mZikKIAlzZWxlY3QgKiBmcm9tIHRlbmsxIHdoZXJlICh1bmlxdWUxICsg cmFuZG9tKCkpOjppbnRlZ2VyIG5vdCBpbgotLSAKMi4zOS4wCgo= --------------zRdKMQJjbL8fPXUmSNjb0L0K Content-Type: text/x-patch; charset=UTF-8; name="0002-Parallelize-correlated-subqueries-v6.patch" Content-Disposition: attachment; filename="0002-Parallelize-correlated-subqueries-v6.patch" Content-Transfer-Encoding: base64 RnJvbSBjZDM3OWFmYmUyMmE5YjQxZmYyYjVkZDVkODY3MTlhMTlmMTUzMDFmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzLnZvbmRyYUBwb3N0 Z3Jlc3FsLm9yZz4KRGF0ZTogV2VkLCAxOCBKYW4gMjAyMyAxOToxNTowNiArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMi81XSBQYXJhbGxlbGl6ZSBjb3JyZWxhdGVkIHN1YnF1ZXJpZXMKCldo ZW4gcGFyYW1zIGFyZSBwcm92aWRlZCBhdCB0aGUgY3VycmVudCBxdWVyeSBsZXZlbCAoaS5l LiwgYXJlIGdlbmVyYXRlZAp3aXRoaW4gYSBzaW5nbGUgd29ya2VyIGFuZCBub3Qgc2hhcmVk IGFjcm9zcyB3b3JrZXJzKSB3ZSBjYW4gc2FmZWx5CmV4ZWN1dGUgdGhlc2UgaW4gcGFyYWxs ZWwuCgpBbHRlcm5hdGl2ZSBhcHByb2FjaCB1c2luZyBqdXN0IHJlbGlkcyBzdWJzZXQgY2hl Y2sKLS0tCiBkb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbCAgICAgICAgICAgICAgICAgICAg fCAgIDMgKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2FsbHBhdGhzLmMgICAgICAg ICB8ICAxNiArKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2pvaW5wYXRoLmMgICAg ICAgICB8ICAxNiArKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyAg ICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wYXRobm9kZS5j ICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmggICAgICAg ICAgICAgICAgIHwgICAyICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9pbmNyZW1lbnRhbF9z b3J0Lm91dCAgICAgfCAgMjggKystLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0 aXRpb25fcHJ1bmUub3V0IHwgMTA0ICsrKysrKystLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3NlbGVjdF9wYXJhbGxlbC5vdXQgfCAxMjggKysrKysrKysrKy0tLS0tLS0t CiA5IGZpbGVzIGNoYW5nZWQsIDE2OCBpbnNlcnRpb25zKCspLCAxMzQgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcGFyYWxsZWwuc2dtbAppbmRleCA1YWNjOTUzN2Q2Zi4uZmQzMjU3MmVjOGIgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9w YXJhbGxlbC5zZ21sCkBAIC01MTgsNyArNTE4LDggQEAgRVhQTEFJTiBTRUxFQ1QgKiBGUk9N IHBnYmVuY2hfYWNjb3VudHMgV0hFUkUgZmlsbGVyIExJS0UgJyV4JSc7CiAKICAgICA8bGlz dGl0ZW0+CiAgICAgICA8cGFyYT4KLSAgICAgICAgUGxhbiBub2RlcyB0aGF0IHJlZmVyZW5j ZSBhIGNvcnJlbGF0ZWQgPGxpdGVyYWw+U3ViUGxhbjwvbGl0ZXJhbD4uCisgICAgICAgIFBs YW4gbm9kZXMgdGhhdCByZWZlcmVuY2UgYSBjb3JyZWxhdGVkIDxsaXRlcmFsPlN1YlBsYW48 L2xpdGVyYWw+IHdoZXJlCisgICAgICAgIHRoZSByZXN1bHQgaXMgc2hhcmVkIGJldHdlZW4g d29ya2Vycy4KICAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICA8L2l0ZW1pemVk bGlzdD4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2FsbHBhdGhz LmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRocy5jCmluZGV4IGMyZmM1 NjhkYzhhLi43MTA4NTAxYjlhNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BhdGgvYWxscGF0aHMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxw YXRocy5jCkBAIC01NTgsNyArNTU4LDggQEAgc2V0X3JlbF9wYXRobGlzdChQbGFubmVySW5m byAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsLAogCSAqIHRoZSBmaW5hbCBzY2FuL2pvaW4gdGFy Z2V0bGlzdCBpcyBhdmFpbGFibGUgKHNlZSBncm91cGluZ19wbGFubmVyKS4KIAkgKi8KIAlp ZiAocmVsLT5yZWxvcHRraW5kID09IFJFTE9QVF9CQVNFUkVMICYmCi0JCSFibXNfZXF1YWwo cmVsLT5yZWxpZHMsIHJvb3QtPmFsbF9iYXNlcmVscykpCisJCSFibXNfZXF1YWwocmVsLT5y ZWxpZHMsIHJvb3QtPmFsbF9iYXNlcmVscykKKwkJJiYgKHJlbC0+c3VicGxhbl9wYXJhbXMg PT0gTklMIHx8IHJ0ZS0+cnRla2luZCAhPSBSVEVfU1VCUVVFUlkpKQogCQlnZW5lcmF0ZV91 c2VmdWxfZ2F0aGVyX3BhdGhzKHJvb3QsIHJlbCwgZmFsc2UpOwogCiAJLyogTm93IGZpbmQg dGhlIGNoZWFwZXN0IG9mIHRoZSBwYXRocyBmb3IgdGhpcyByZWwgKi8KQEAgLTMwMzcsNyAr MzAzOCw3IEBAIGdlbmVyYXRlX2dhdGhlcl9wYXRocyhQbGFubmVySW5mbyAqcm9vdCwgUmVs T3B0SW5mbyAqcmVsLCBib29sIG92ZXJyaWRlX3Jvd3MpCiAJCWNoZWFwZXN0X3BhcnRpYWxf cGF0aC0+cm93cyAqIGNoZWFwZXN0X3BhcnRpYWxfcGF0aC0+cGFyYWxsZWxfd29ya2VyczsK IAlzaW1wbGVfZ2F0aGVyX3BhdGggPSAoUGF0aCAqKQogCQljcmVhdGVfZ2F0aGVyX3BhdGgo cm9vdCwgcmVsLCBjaGVhcGVzdF9wYXJ0aWFsX3BhdGgsIHJlbC0+cmVsdGFyZ2V0LAotCQkJ CQkJICAgTlVMTCwgcm93c3ApOworCQkJCQkJICAgcmVsLT5sYXRlcmFsX3JlbGlkcywgcm93 c3ApOwogCWFkZF9wYXRoKHJlbCwgc2ltcGxlX2dhdGhlcl9wYXRoKTsKIAogCS8qCkBAIC0z MDU0LDcgKzMwNTUsNyBAQCBnZW5lcmF0ZV9nYXRoZXJfcGF0aHMoUGxhbm5lckluZm8gKnJv b3QsIFJlbE9wdEluZm8gKnJlbCwgYm9vbCBvdmVycmlkZV9yb3dzKQogCiAJCXJvd3MgPSBz dWJwYXRoLT5yb3dzICogc3VicGF0aC0+cGFyYWxsZWxfd29ya2VyczsKIAkJcGF0aCA9IGNy ZWF0ZV9nYXRoZXJfbWVyZ2VfcGF0aChyb290LCByZWwsIHN1YnBhdGgsIHJlbC0+cmVsdGFy Z2V0LAotCQkJCQkJCQkJCXN1YnBhdGgtPnBhdGhrZXlzLCBOVUxMLCByb3dzcCk7CisJCQkJ CQkJCQkJc3VicGF0aC0+cGF0aGtleXMsIHJlbC0+bGF0ZXJhbF9yZWxpZHMsIHJvd3NwKTsK IAkJYWRkX3BhdGgocmVsLCAmcGF0aC0+cGF0aCk7CiAJfQogfQpAQCAtMzE1NiwxMSArMzE1 NywxNSBAQCBnZW5lcmF0ZV91c2VmdWxfZ2F0aGVyX3BhdGhzKFBsYW5uZXJJbmZvICpyb290 LCBSZWxPcHRJbmZvICpyZWwsIGJvb2wgb3ZlcnJpZGVfcgogCWRvdWJsZQkgICAqcm93c3Ag PSBOVUxMOwogCUxpc3QJICAgKnVzZWZ1bF9wYXRoa2V5c19saXN0ID0gTklMOwogCVBhdGgJ ICAgKmNoZWFwZXN0X3BhcnRpYWxfcGF0aCA9IE5VTEw7CisJUmVsaWRzCQlyZXF1aXJlZF9v dXRlciA9IHJlbC0+bGF0ZXJhbF9yZWxpZHM7CiAKIAkvKiBJZiB0aGVyZSBhcmUgbm8gcGFy dGlhbCBwYXRocywgdGhlcmUncyBub3RoaW5nIHRvIGRvIGhlcmUuICovCiAJaWYgKHJlbC0+ cGFydGlhbF9wYXRobGlzdCA9PSBOSUwpCiAJCXJldHVybjsKIAorCWlmICghYm1zX2lzX3N1 YnNldChyZXF1aXJlZF9vdXRlciwgcmVsLT5yZWxpZHMpKQorCQlyZXR1cm47CisKIAkvKiBT aG91bGQgd2Ugb3ZlcnJpZGUgdGhlIHJlbCdzIHJvd2NvdW50IGVzdGltYXRlPyAqLwogCWlm IChvdmVycmlkZV9yb3dzKQogCQlyb3dzcCA9ICZyb3dzOwpAQCAtMzI0OSw3ICszMjU0LDcg QEAgZ2VuZXJhdGVfdXNlZnVsX2dhdGhlcl9wYXRocyhQbGFubmVySW5mbyAqcm9vdCwgUmVs T3B0SW5mbyAqcmVsLCBib29sIG92ZXJyaWRlX3IKIAkJCQkJCQkJCQkJc3VicGF0aCwKIAkJ CQkJCQkJCQkJcmVsLT5yZWx0YXJnZXQsCiAJCQkJCQkJCQkJCXN1YnBhdGgtPnBhdGhrZXlz LAotCQkJCQkJCQkJCQlOVUxMLAorCQkJCQkJCQkJCQlyZXF1aXJlZF9vdXRlciwKIAkJCQkJ CQkJCQkJcm93c3ApOwogCiAJCQlhZGRfcGF0aChyZWwsICZwYXRoLT5wYXRoKTsKQEAgLTM0 MjcsNyArMzQzMiw4IEBAIHN0YW5kYXJkX2pvaW5fc2VhcmNoKFBsYW5uZXJJbmZvICpyb290 LCBpbnQgbGV2ZWxzX25lZWRlZCwgTGlzdCAqaW5pdGlhbF9yZWxzKQogCQkJLyoKIAkJCSAq IEV4Y2VwdCBmb3IgdGhlIHRvcG1vc3Qgc2Nhbi9qb2luIHJlbCwgY29uc2lkZXIgZ2F0aGVy aW5nCiAJCQkgKiBwYXJ0aWFsIHBhdGhzLiAgV2UnbGwgZG8gdGhlIHNhbWUgZm9yIHRoZSB0 b3Btb3N0IHNjYW4vam9pbiByZWwKLQkJCSAqIG9uY2Ugd2Uga25vdyB0aGUgZmluYWwgdGFy Z2V0bGlzdCAoc2VlIGdyb3VwaW5nX3BsYW5uZXIpLgorCQkJICogb25jZSB3ZSBrbm93IHRo ZSBmaW5hbCB0YXJnZXRsaXN0IChzZWUKKwkJCSAqIGFwcGx5X3NjYW5qb2luX3RhcmdldF90 b19wYXRocykuCiAJCQkgKi8KIAkJCWlmICghYm1zX2VxdWFsKHJlbC0+cmVsaWRzLCByb290 LT5hbGxfYmFzZXJlbHMpKQogCQkJCWdlbmVyYXRlX3VzZWZ1bF9nYXRoZXJfcGF0aHMocm9v dCwgcmVsLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0 aC9qb2lucGF0aC5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvam9pbnBhdGguYwpp bmRleCBkMzQ1YzA0MzdhNC4uMDAwZTNjYTlhMjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L29wdGltaXplci9wYXRoL2pvaW5wYXRoLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BhdGgvam9pbnBhdGguYwpAQCAtMTc5MiwxNiArMTc5MiwyNCBAQCBtYXRjaF91bnNvcnRl ZF9vdXRlcihQbGFubmVySW5mbyAqcm9vdCwKIAkgKiBwYXJ0aWFsIHBhdGggYW5kIHRoZSBq b2lucmVsIGlzIHBhcmFsbGVsLXNhZmUuICBIb3dldmVyLCB3ZSBjYW4ndAogCSAqIGhhbmRs ZSBKT0lOX1VOSVFVRV9PVVRFUiwgYmVjYXVzZSB0aGUgb3V0ZXIgcGF0aCB3aWxsIGJlIHBh cnRpYWwsIGFuZAogCSAqIHRoZXJlZm9yZSB3ZSB3b24ndCBiZSBhYmxlIHRvIHByb3Blcmx5 IGd1YXJhbnRlZSB1bmlxdWVuZXNzLiAgTm9yIGNhbgotCSAqIHdlIGhhbmRsZSBqb2lucyBu ZWVkaW5nIGxhdGVyYWwgcmVscywgc2luY2UgcGFydGlhbCBwYXRocyBtdXN0IG5vdCBiZQot CSAqIHBhcmFtZXRlcml6ZWQuIFNpbWlsYXJseSwgd2UgY2FuJ3QgaGFuZGxlIEpPSU5fRlVM TCBhbmQgSk9JTl9SSUdIVCwKLQkgKiBiZWNhdXNlIHRoZXkgY2FuIHByb2R1Y2UgZmFsc2Ug bnVsbCBleHRlbmRlZCByb3dzLgorCSAqIHdlIGhhbmRsZSBKT0lOX0ZVTEwgYW5kIEpPSU5f UklHSFQsIGJlY2F1c2UgdGhleSBjYW4gcHJvZHVjZSBmYWxzZSBudWxsCisJICogZXh0ZW5k ZWQgcm93cy4KKwkgKgorCSAqIFBhcnRpYWwgcGF0aHMgbWF5IG9ubHkgaGF2ZSBwYXJhbWV0 ZXJzIGluIGxpbWl0ZWQgY2FzZXMKKwkgKiB3aGVyZSB0aGUgcGFyYW1ldGVyaXphdGlvbiBp cyBmdWxseSBzYXRpc2ZpZWQgd2l0aG91dCBzaGFyaW5nIHN0YXRlCisJICogYmV0d2VlbiB3 b3JrZXJzLCBzbyB3ZSBvbmx5IGFsbG93IGxhdGVyYWwgcmVscyBvbiBpbnB1dHMgdG8gdGhl IGpvaW4KKwkgKiBpZiB0aGUgcmVzdWx0aW5nIGpvaW4gY29udGFpbnMgbm8gbGF0ZXJhbCBy ZWxzLCB0aGUgaW5uZXIgcmVsJ3MgbGF0ZXJhbHMKKwkgKiBhcmUgZnVsbHkgc2F0aXNmaWVk IGJ5IHRoZSBvdXRlciByZWwsIGFuZCB0aGUgb3V0ZXIgcmVsIGRvZXNuJ3QgZGVwZW5kCisJ ICogb24gdGhlIGlubmVyIHJlbCB0byBwcm9kdWNlIGFueSBsYXRlcmFscy4KIAkgKi8KIAlp ZiAoam9pbnJlbC0+Y29uc2lkZXJfcGFyYWxsZWwgJiYKIAkJc2F2ZV9qb2ludHlwZSAhPSBK T0lOX1VOSVFVRV9PVVRFUiAmJgogCQlzYXZlX2pvaW50eXBlICE9IEpPSU5fRlVMTCAmJgog CQlzYXZlX2pvaW50eXBlICE9IEpPSU5fUklHSFQgJiYKIAkJb3V0ZXJyZWwtPnBhcnRpYWxf cGF0aGxpc3QgIT0gTklMICYmCi0JCWJtc19pc19lbXB0eShqb2lucmVsLT5sYXRlcmFsX3Jl bGlkcykpCisJCWJtc19pc19lbXB0eShqb2lucmVsLT5sYXRlcmFsX3JlbGlkcykgJiYKKwkJ Ym1zX2lzX3N1YnNldChpbm5lcnJlbC0+bGF0ZXJhbF9yZWxpZHMsIG91dGVycmVsLT5yZWxp ZHMpICYmCisJCShibXNfaXNfZW1wdHkob3V0ZXJyZWwtPmxhdGVyYWxfcmVsaWRzKSB8fCAh Ym1zX2lzX3N1YnNldChvdXRlcnJlbC0+bGF0ZXJhbF9yZWxpZHMsIGlubmVycmVsLT5yZWxp ZHMpKSkKIAl7CiAJCWlmIChuZXN0am9pbk9LKQogCQkJY29uc2lkZXJfcGFyYWxsZWxfbmVz dGxvb3Aocm9vdCwgam9pbnJlbCwgb3V0ZXJyZWwsIGlubmVycmVsLApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jIGIvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3V0aWwvY2xhdXNlcy5jCmluZGV4IGFhNTg0ODQ4Y2Y5Li4wMzU0NzFkMDVkMCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCisrKyBi L3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwpAQCAtODE2LDYgKzgxNiw5 IEBAIG1heF9wYXJhbGxlbF9oYXphcmRfd2Fsa2VyKE5vZGUgKm5vZGUsIG1heF9wYXJhbGxl bF9oYXphcmRfY29udGV4dCAqY29udGV4dCkKIAkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0g UEFSQU1fRVhURVJOKQogCQkJcmV0dXJuIGZhbHNlOwogCisJCWlmIChwYXJhbS0+cGFyYW1r aW5kID09IFBBUkFNX0VYRUMpCisJCQlyZXR1cm4gZmFsc2U7CisKIAkJaWYgKHBhcmFtLT5w YXJhbWtpbmQgIT0gUEFSQU1fRVhFQyB8fAogCQkJIWxpc3RfbWVtYmVyX2ludChjb250ZXh0 LT5zYWZlX3BhcmFtX2lkcywgcGFyYW0tPnBhcmFtaWQpKQogCQl7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wYXRobm9kZS5jIGIvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3V0aWwvcGF0aG5vZGUuYwppbmRleCA0NDc4MDM2YmI2YS4uNTY2NzIyMmU5MjUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BhdGhub2RlLmMKKysr IGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGF0aG5vZGUuYwpAQCAtMjQzNyw2ICsy NDM3LDggQEAgY3JlYXRlX25lc3Rsb29wX3BhdGgoUGxhbm5lckluZm8gKnJvb3QsCiAJTmVz dFBhdGggICAqcGF0aG5vZGUgPSBtYWtlTm9kZShOZXN0UGF0aCk7CiAJUmVsaWRzCQlpbm5l cl9yZXFfb3V0ZXIgPSBQQVRIX1JFUV9PVVRFUihpbm5lcl9wYXRoKTsKIAorCS8qIFRPRE86 IEFzc2VydCBsYXRlcmFsIHJlbGlkcyBzdWJzZXQgc2FmZXR5PyAqLworCiAJLyoKIAkgKiBJ ZiB0aGUgaW5uZXIgcGF0aCBpcyBwYXJhbWV0ZXJpemVkIGJ5IHRoZSBvdXRlciwgd2UgbXVz dCBkcm9wIGFueQogCSAqIHJlc3RyaWN0X2NsYXVzZXMgdGhhdCBhcmUgZHVlIHRvIGJlIG1v dmVkIGludG8gdGhlIGlubmVyIHBhdGguICBXZSBoYXZlCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9ub2Rlcy9wYXRobm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5o CmluZGV4IGMyMGI3Mjk4YTNkLi5hNWJhNjVhNTYxNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvbm9kZXMvcGF0aG5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVz LmgKQEAgLTI5NjIsNyArMjk2Miw3IEBAIHR5cGVkZWYgc3RydWN0IE1pbk1heEFnZ0luZm8K ICAqIGZvciBjb25mbGljdGluZyBwdXJwb3Nlcy4KICAqCiAgKiBJbiBhZGRpdGlvbiwgUEFS QU1fRVhFQyBzbG90cyBhcmUgYXNzaWduZWQgZm9yIFBhcmFtcyByZXByZXNlbnRpbmcgb3V0 cHV0cwotICogZnJvbSBzdWJwbGFucyAodmFsdWVzIHRoYXQgYXJlIHNldFBhcmFtIGl0ZW1z IGZvciB0aG9zZSBzdWJwbGFucykuICBUaGVzZQorICogZnJvbSBzdWJwbGFucyAodmFsdWVz IHRoYXQgYXJlIHNldFBhcmFtIGl0ZW1zIGZvciB0aG9zZSBzdWJwbGFucykuIFtUT0RPOiBp cyB0aGlzIHRydWUsIG9yIG9ubHkgZm9yIGluaXQgcGxhbnM/XSAgVGhlc2UKICAqIElEcyBu ZWVkIG5vdCBiZSB0cmFja2VkIHZpYSBQbGFubmVyUGFyYW1JdGVtcywgc2luY2Ugd2UgZG8g bm90IG5lZWQgYW55CiAgKiBkdXBsaWNhdGUtZWxpbWluYXRpb24gbm9yIGxhdGVyIHByb2Nl c3Npbmcgb2YgdGhlIHJlcHJlc2VudGVkIGV4cHJlc3Npb25zLgogICogSW5zdGVhZCwgd2Ug anVzdCByZWNvcmQgdGhlIGFzc2lnbm1lbnQgb2YgdGhlIHNsb3QgbnVtYmVyIGJ5IGFwcGVu ZGluZyB0bwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbmNyZW1l bnRhbF9zb3J0Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvaW5jcmVtZW50YWxf c29ydC5vdXQKaW5kZXggMGMzNDMzZjhlNTguLjBjYjdjMWE0OWMwIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2luY3JlbWVudGFsX3NvcnQub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvaW5jcmVtZW50YWxfc29ydC5vdXQKQEAgLTE2MDAs MTYgKzE2MDAsMTYgQEAgZnJvbSB0ZW5rMSB0LCBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwMCk7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogIFVuaXF1ZQotICAgLT4gIFNvcnQKLSAgICAgICAgIFNvcnQgS2V5OiB0LnVuaXF1 ZTEsICgoU3ViUGxhbiAxKSkKLSAgICAgICAgIC0+ICBHYXRoZXIKLSAgICAgICAgICAgICAg IFdvcmtlcnMgUGxhbm5lZDogMgorICAgLT4gIEdhdGhlciBNZXJnZQorICAgICAgICAgV29y a2VycyBQbGFubmVkOiAyCisgICAgICAgICAtPiAgU29ydAorICAgICAgICAgICAgICAgU29y dCBLZXk6IHQudW5pcXVlMSwgKChTdWJQbGFuIDEpKQogICAgICAgICAgICAgICAgLT4gIE5l c3RlZCBMb29wCiAgICAgICAgICAgICAgICAgICAgICAtPiAgUGFyYWxsZWwgSW5kZXggT25s eSBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTEgb24gdGVuazEgdAogICAgICAgICAgICAgICAg ICAgICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzCi0gICAgICAgICAg ICAgICBTdWJQbGFuIDEKLSAgICAgICAgICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1 c2luZyB0ZW5rMV91bmlxdWUxIG9uIHRlbmsxCi0gICAgICAgICAgICAgICAgICAgICAgIElu ZGV4IENvbmQ6ICh1bmlxdWUxID0gdC51bmlxdWUxKQorICAgICAgICAgICAgICAgICAgICAg U3ViUGxhbiAxCisgICAgICAgICAgICAgICAgICAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4g dXNpbmcgdGVuazFfdW5pcXVlMSBvbiB0ZW5rMQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJbmRleCBDb25kOiAodW5pcXVlMSA9IHQudW5pcXVlMSkKICgxMSByb3dzKQogCiBl eHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdApAQCAtMTYxOSwxNiArMTYxOSwxNiBAQCBmcm9t IHRlbmsxIHQsIGdlbmVyYXRlX3NlcmllcygxLCAxMDAwKQogb3JkZXIgYnkgMSwgMjsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gU29ydAotICAg U29ydCBLZXk6IHQudW5pcXVlMSwgKChTdWJQbGFuIDEpKQotICAgLT4gIEdhdGhlcgotICAg ICAgICAgV29ya2VycyBQbGFubmVkOiAyCisgR2F0aGVyIE1lcmdlCisgICBXb3JrZXJzIFBs YW5uZWQ6IDIKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogdC51bmlxdWUxLCAo KFN1YlBsYW4gMSkpCiAgICAgICAgICAtPiAgTmVzdGVkIExvb3AKICAgICAgICAgICAgICAg IC0+ICBQYXJhbGxlbCBJbmRleCBPbmx5IFNjYW4gdXNpbmcgdGVuazFfdW5pcXVlMSBvbiB0 ZW5rMSB0CiAgICAgICAgICAgICAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9z ZXJpZXMKLSAgICAgICAgIFN1YlBsYW4gMQotICAgICAgICAgICAtPiAgSW5kZXggT25seSBT Y2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTEgb24gdGVuazEKLSAgICAgICAgICAgICAgICAgSW5k ZXggQ29uZDogKHVuaXF1ZTEgPSB0LnVuaXF1ZTEpCisgICAgICAgICAgICAgICBTdWJQbGFu IDEKKyAgICAgICAgICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyB0ZW5rMV91 bmlxdWUxIG9uIHRlbmsxCisgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1 bmlxdWUxID0gdC51bmlxdWUxKQogKDEwIHJvd3MpCiAKIC0tIFBhcmFsbGVsIHNvcnQgYnV0 IHdpdGggZXhwcmVzc2lvbiBub3QgYXZhaWxhYmxlIHVudGlsIHRoZSB1cHBlciByZWwuCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9wcnVuZS5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9wcnVuZS5vdXQKaW5k ZXggNzU1NTc2NGM3NzkuLjVjNDVmOWMwYTUwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9wcnVuZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wYXJ0aXRpb25fcHJ1bmUub3V0CkBAIC0xMjg0LDYwICsxMjg0LDY0IEBA IEVYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBwYXJ0IHAoeCkg T1JERVIgQlkgeDsKIC0tCiAtLSBwcnVuaW5nIHdvbid0IHdvcmsgZm9yIG1jM3AsIGJlY2F1 c2Ugc29tZSBrZXlzIGFyZSBQYXJhbXMKIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICog ZnJvbSBtYzJwIHQxLCBsYXRlcmFsIChzZWxlY3QgY291bnQoKikgZnJvbSBtYzNwIHQyIHdo ZXJlIHQyLmEgPSB0MS5iIGFuZCBhYnModDIuYikgPSAxIGFuZCB0Mi5jID0gMSkgcyB3aGVy ZSB0MS5hID0gMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIE5l c3RlZCBMb29wCi0gICAtPiAgQXBwZW5kCi0gICAgICAgICAtPiAgU2VxIFNjYW4gb24gbWMy cDEgdDFfMQotICAgICAgICAgICAgICAgRmlsdGVyOiAoYSA9IDEpCi0gICAgICAgICAtPiAg U2VxIFNjYW4gb24gbWMycDIgdDFfMgotICAgICAgICAgICAgICAgRmlsdGVyOiAoYSA9IDEp Ci0gICAgICAgICAtPiAgU2VxIFNjYW4gb24gbWMycF9kZWZhdWx0IHQxXzMKLSAgICAgICAg ICAgICAgIEZpbHRlcjogKGEgPSAxKQotICAgLT4gIEFnZ3JlZ2F0ZQotICAgICAgICAgLT4g IEFwcGVuZAotICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIG1jM3AwIHQyXzEKLSAg ICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKChhID0gdDEuYikgQU5EIChjID0gMSkgQU5E IChhYnMoYikgPSAxKSkKLSAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBtYzNwMSB0 Ml8yCi0gICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoYSA9IHQxLmIpIEFORCAoYyA9 IDEpIEFORCAoYWJzKGIpID0gMSkpCi0gICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24g bWMzcDIgdDJfMwotICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoKGEgPSB0MS5iKSBB TkQgKGMgPSAxKSBBTkQgKGFicyhiKSA9IDEpKQotICAgICAgICAgICAgICAgLT4gIFNlcSBT Y2FuIG9uIG1jM3AzIHQyXzQKLSAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKChhID0g dDEuYikgQU5EIChjID0gMSkgQU5EIChhYnMoYikgPSAxKSkKLSAgICAgICAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiBtYzNwNCB0Ml81Ci0gICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6 ICgoYSA9IHQxLmIpIEFORCAoYyA9IDEpIEFORCAoYWJzKGIpID0gMSkpCi0gICAgICAgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gbWMzcDUgdDJfNgotICAgICAgICAgICAgICAgICAgICAg RmlsdGVyOiAoKGEgPSB0MS5iKSBBTkQgKGMgPSAxKSBBTkQgKGFicyhiKSA9IDEpKQotICAg ICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIG1jM3A2IHQyXzcKLSAgICAgICAgICAgICAg ICAgICAgIEZpbHRlcjogKChhID0gdDEuYikgQU5EIChjID0gMSkgQU5EIChhYnMoYikgPSAx KSkKLSAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBtYzNwNyB0Ml84Ci0gICAgICAg ICAgICAgICAgICAgICBGaWx0ZXI6ICgoYSA9IHQxLmIpIEFORCAoYyA9IDEpIEFORCAoYWJz KGIpID0gMSkpCi0gICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gbWMzcF9kZWZhdWx0 IHQyXzkKLSAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKChhID0gdDEuYikgQU5EIChj ID0gMSkgQU5EIChhYnMoYikgPSAxKSkKLSgyOCByb3dzKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgR2F0aGVyCisgICBXb3JrZXJzIFBs YW5uZWQ6IDIKKyAgIC0+ICBOZXN0ZWQgTG9vcAorICAgICAgICAgLT4gIFBhcmFsbGVsIEFw cGVuZAorICAgICAgICAgICAgICAgLT4gIFBhcmFsbGVsIFNlcSBTY2FuIG9uIG1jMnAxIHQx XzEKKyAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKGEgPSAxKQorICAgICAgICAgICAg ICAgLT4gIFBhcmFsbGVsIFNlcSBTY2FuIG9uIG1jMnAyIHQxXzIKKyAgICAgICAgICAgICAg ICAgICAgIEZpbHRlcjogKGEgPSAxKQorICAgICAgICAgICAgICAgLT4gIFBhcmFsbGVsIFNl cSBTY2FuIG9uIG1jMnBfZGVmYXVsdCB0MV8zCisgICAgICAgICAgICAgICAgICAgICBGaWx0 ZXI6IChhID0gMSkKKyAgICAgICAgIC0+ICBBZ2dyZWdhdGUKKyAgICAgICAgICAgICAgIC0+ ICBBcHBlbmQKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBtYzNwMCB0 Ml8xCisgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoYSA9IHQxLmIpIEFO RCAoYyA9IDEpIEFORCAoYWJzKGIpID0gMSkpCisgICAgICAgICAgICAgICAgICAgICAtPiAg U2VxIFNjYW4gb24gbWMzcDEgdDJfMgorICAgICAgICAgICAgICAgICAgICAgICAgICAgRmls dGVyOiAoKGEgPSB0MS5iKSBBTkQgKGMgPSAxKSBBTkQgKGFicyhiKSA9IDEpKQorICAgICAg ICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIG1jM3AyIHQyXzMKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIEZpbHRlcjogKChhID0gdDEuYikgQU5EIChjID0gMSkgQU5EIChh YnMoYikgPSAxKSkKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBtYzNw MyB0Ml80CisgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoYSA9IHQxLmIp IEFORCAoYyA9IDEpIEFORCAoYWJzKGIpID0gMSkpCisgICAgICAgICAgICAgICAgICAgICAt PiAgU2VxIFNjYW4gb24gbWMzcDQgdDJfNQorICAgICAgICAgICAgICAgICAgICAgICAgICAg RmlsdGVyOiAoKGEgPSB0MS5iKSBBTkQgKGMgPSAxKSBBTkQgKGFicyhiKSA9IDEpKQorICAg ICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIG1jM3A1IHQyXzYKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKChhID0gdDEuYikgQU5EIChjID0gMSkgQU5E IChhYnMoYikgPSAxKSkKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBt YzNwNiB0Ml83CisgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoYSA9IHQx LmIpIEFORCAoYyA9IDEpIEFORCAoYWJzKGIpID0gMSkpCisgICAgICAgICAgICAgICAgICAg ICAtPiAgU2VxIFNjYW4gb24gbWMzcDcgdDJfOAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgRmlsdGVyOiAoKGEgPSB0MS5iKSBBTkQgKGMgPSAxKSBBTkQgKGFicyhiKSA9IDEpKQor ICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIG1jM3BfZGVmYXVsdCB0Ml85 CisgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoYSA9IHQxLmIpIEFORCAo YyA9IDEpIEFORCAoYWJzKGIpID0gMSkpCisoMzAgcm93cykKIAogLS0gcHJ1bmluZyBzaG91 bGQgd29yayBmaW5lLCBiZWNhdXNlIHZhbHVlcyBmb3IgYSBwcmVmaXggb2Yga2V5cyAoYSwg YikgYXJlCiAtLSBhdmFpbGFibGUKIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJv bSBtYzJwIHQxLCBsYXRlcmFsIChzZWxlY3QgY291bnQoKikgZnJvbSBtYzNwIHQyIHdoZXJl IHQyLmMgPSB0MS5iIGFuZCBhYnModDIuYikgPSAxIGFuZCB0Mi5hID0gMSkgcyB3aGVyZSB0 MS5hID0gMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIE5lc3Rl ZCBMb29wCi0gICAtPiAgQXBwZW5kCi0gICAgICAgICAtPiAgU2VxIFNjYW4gb24gbWMycDEg dDFfMQotICAgICAgICAgICAgICAgRmlsdGVyOiAoYSA9IDEpCi0gICAgICAgICAtPiAgU2Vx IFNjYW4gb24gbWMycDIgdDFfMgotICAgICAgICAgICAgICAgRmlsdGVyOiAoYSA9IDEpCi0g ICAgICAgICAtPiAgU2VxIFNjYW4gb24gbWMycF9kZWZhdWx0IHQxXzMKLSAgICAgICAgICAg ICAgIEZpbHRlcjogKGEgPSAxKQotICAgLT4gIEFnZ3JlZ2F0ZQotICAgICAgICAgLT4gIEFw cGVuZAotICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIG1jM3AwIHQyXzEKLSAgICAg ICAgICAgICAgICAgICAgIEZpbHRlcjogKChjID0gdDEuYikgQU5EIChhID0gMSkgQU5EIChh YnMoYikgPSAxKSkKLSAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBtYzNwMSB0Ml8y Ci0gICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoYyA9IHQxLmIpIEFORCAoYSA9IDEp IEFORCAoYWJzKGIpID0gMSkpCi0gICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gbWMz cF9kZWZhdWx0IHQyXzMKLSAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKChjID0gdDEu YikgQU5EIChhID0gMSkgQU5EIChhYnMoYikgPSAxKSkKLSgxNiByb3dzKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgR2F0aGVyCisgICBX b3JrZXJzIFBsYW5uZWQ6IDIKKyAgIC0+ICBOZXN0ZWQgTG9vcAorICAgICAgICAgLT4gIFBh cmFsbGVsIEFwcGVuZAorICAgICAgICAgICAgICAgLT4gIFBhcmFsbGVsIFNlcSBTY2FuIG9u IG1jMnAxIHQxXzEKKyAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKGEgPSAxKQorICAg ICAgICAgICAgICAgLT4gIFBhcmFsbGVsIFNlcSBTY2FuIG9uIG1jMnAyIHQxXzIKKyAgICAg ICAgICAgICAgICAgICAgIEZpbHRlcjogKGEgPSAxKQorICAgICAgICAgICAgICAgLT4gIFBh cmFsbGVsIFNlcSBTY2FuIG9uIG1jMnBfZGVmYXVsdCB0MV8zCisgICAgICAgICAgICAgICAg ICAgICBGaWx0ZXI6IChhID0gMSkKKyAgICAgICAgIC0+ICBBZ2dyZWdhdGUKKyAgICAgICAg ICAgICAgIC0+ICBBcHBlbmQKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBv biBtYzNwMCB0Ml8xCisgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoYyA9 IHQxLmIpIEFORCAoYSA9IDEpIEFORCAoYWJzKGIpID0gMSkpCisgICAgICAgICAgICAgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gbWMzcDEgdDJfMgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgRmlsdGVyOiAoKGMgPSB0MS5iKSBBTkQgKGEgPSAxKSBBTkQgKGFicyhiKSA9IDEp KQorICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIG1jM3BfZGVmYXVsdCB0 Ml8zCisgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoYyA9IHQxLmIpIEFO RCAoYSA9IDEpIEFORCAoYWJzKGIpID0gMSkpCisoMTggcm93cykKIAogLS0gYWxzbyBoZXJl LCBiZWNhdXNlIHZhbHVlcyBmb3IgYWxsIGtleXMgYXJlIHByb3ZpZGVkCiBleHBsYWluIChj b3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbWMycCB0MSwgbGF0ZXJhbCAoc2VsZWN0IGNvdW50 KCopIGZyb20gbWMzcCB0MiB3aGVyZSB0Mi5hID0gMSBhbmQgYWJzKHQyLmIpID0gMSBhbmQg dDIuYyA9IDEpIHMgd2hlcmUgdDEuYSA9IDE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3NlbGVjdF9wYXJhbGxlbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3NlbGVjdF9wYXJhbGxlbC5vdXQKaW5kZXggOWI0ZDdkZDQ0YTQuLjAxNDQzZTJm ZmJlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3NlbGVjdF9wYXJh bGxlbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZWxlY3RfcGFyYWxs ZWwub3V0CkBAIC0xMzcsOCArMTM3LDggQEAgY3JlYXRlIHRhYmxlIHBhcnRfcGFfdGVzdF9w MiBwYXJ0aXRpb24gb2YgcGFydF9wYV90ZXN0IGZvciB2YWx1ZXMgZnJvbSAoMCkgdG8gKG0K IGV4cGxhaW4gKGNvc3RzIG9mZikKIAlzZWxlY3QgKHNlbGVjdCBtYXgoKHNlbGVjdCBwYTEu YiBmcm9tIHBhcnRfcGFfdGVzdCBwYTEgd2hlcmUgcGExLmEgPSBwYTIuYSkpKQogCWZyb20g cGFydF9wYV90ZXN0IHBhMjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogIEFnZ3JlZ2F0ZQogICAgLT4gIEdhdGhlcgogICAgICAgICAgV29ya2VycyBQ bGFubmVkOiAzCkBAIC0xNDgsMTIgKzE0OCwxNCBAQCBleHBsYWluIChjb3N0cyBvZmYpCiAg ICBTdWJQbGFuIDIKICAgICAgLT4gIFJlc3VsdAogICAgU3ViUGxhbiAxCi0gICAgIC0+ICBB cHBlbmQKLSAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHBhcnRfcGFfdGVzdF9wMSBwYTFf MQotICAgICAgICAgICAgICAgICBGaWx0ZXI6IChhID0gcGEyLmEpCi0gICAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiBwYXJ0X3BhX3Rlc3RfcDIgcGExXzIKLSAgICAgICAgICAgICAgICAg RmlsdGVyOiAoYSA9IHBhMi5hKQotKDE0IHJvd3MpCisgICAgIC0+ICBHYXRoZXIKKyAgICAg ICAgICAgV29ya2VycyBQbGFubmVkOiAzCisgICAgICAgICAgIC0+ICBQYXJhbGxlbCBBcHBl bmQKKyAgICAgICAgICAgICAgICAgLT4gIFBhcmFsbGVsIFNlcSBTY2FuIG9uIHBhcnRfcGFf dGVzdF9wMSBwYTFfMQorICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6IChhID0gcGEy LmEpCisgICAgICAgICAgICAgICAgIC0+ICBQYXJhbGxlbCBTZXEgU2NhbiBvbiBwYXJ0X3Bh X3Rlc3RfcDIgcGExXzIKKyAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoYSA9IHBh Mi5hKQorKDE2IHJvd3MpCiAKIGRyb3AgdGFibGUgcGFydF9wYV90ZXN0OwogLS0gdGVzdCB3 aXRoIGxlYWRlciBwYXJ0aWNpcGF0aW9uIGRpc2FibGVkCkBAIC0zMjAsMTkgKzMyMiwxOSBA QCBleHBsYWluIChjb3N0cyBvZmYsIHZlcmJvc2UpIHNlbGVjdAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEdhdGhlcgotICAgT3V0cHV0OiAo U3ViUGxhbiAxKQorICAgT3V0cHV0OiAoKFN1YlBsYW4gMSkpCiAgICBXb3JrZXJzIFBsYW5u ZWQ6IDQKICAgIC0+ICBOZXN0ZWQgTG9vcAotICAgICAgICAgT3V0cHV0OiB0LnVuaXF1ZTEK KyAgICAgICAgIE91dHB1dDogKFN1YlBsYW4gMSkKICAgICAgICAgIC0+ICBQYXJhbGxlbCBJ bmRleCBPbmx5IFNjYW4gdXNpbmcgdGVuazFfdW5pcXVlMSBvbiBwdWJsaWMudGVuazEgdAog ICAgICAgICAgICAgICAgT3V0cHV0OiB0LnVuaXF1ZTEKICAgICAgICAgIC0+ICBGdW5jdGlv biBTY2FuIG9uIHBnX2NhdGFsb2cuZ2VuZXJhdGVfc2VyaWVzCiAgICAgICAgICAgICAgICBP dXRwdXQ6IGdlbmVyYXRlX3Nlcmllcy5nZW5lcmF0ZV9zZXJpZXMKICAgICAgICAgICAgICAg IEZ1bmN0aW9uIENhbGw6IGdlbmVyYXRlX3NlcmllcygxLCAxMCkKLSAgIFN1YlBsYW4gMQot ICAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTEgb24gcHVibGlj LnRlbmsxCi0gICAgICAgICAgIE91dHB1dDogdC51bmlxdWUxCi0gICAgICAgICAgIEluZGV4 IENvbmQ6ICh0ZW5rMS51bmlxdWUxID0gdC51bmlxdWUxKQorICAgICAgICAgU3ViUGxhbiAx CisgICAgICAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgdGVuazFfdW5pcXVlMSBv biBwdWJsaWMudGVuazEKKyAgICAgICAgICAgICAgICAgT3V0cHV0OiB0LnVuaXF1ZTEKKyAg ICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHRlbmsxLnVuaXF1ZTEgPSB0LnVuaXF1ZTEp CiAoMTQgcm93cykKIAogZXhwbGFpbiAoY29zdHMgb2ZmLCB2ZXJib3NlKSBzZWxlY3QKQEAg LTM0MSw2MyArMzQzLDY5IEBAIGV4cGxhaW4gKGNvc3RzIG9mZiwgdmVyYm9zZSkgc2VsZWN0 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgR2F0aGVyCi0gICBPdXRw dXQ6IChTdWJQbGFuIDEpCisgICBPdXRwdXQ6ICgoU3ViUGxhbiAxKSkKICAgIFdvcmtlcnMg UGxhbm5lZDogNAogICAgLT4gIFBhcmFsbGVsIEluZGV4IE9ubHkgU2NhbiB1c2luZyB0ZW5r MV91bmlxdWUxIG9uIHB1YmxpYy50ZW5rMSB0Ci0gICAgICAgICBPdXRwdXQ6IHQudW5pcXVl MQotICAgU3ViUGxhbiAxCi0gICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgdGVuazFf dW5pcXVlMSBvbiBwdWJsaWMudGVuazEKLSAgICAgICAgICAgT3V0cHV0OiB0LnVuaXF1ZTEK LSAgICAgICAgICAgSW5kZXggQ29uZDogKHRlbmsxLnVuaXF1ZTEgPSB0LnVuaXF1ZTEpCisg ICAgICAgICBPdXRwdXQ6IChTdWJQbGFuIDEpCisgICAgICAgICBTdWJQbGFuIDEKKyAgICAg ICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyB0ZW5rMV91bmlxdWUxIG9uIHB1Ymxp Yy50ZW5rMQorICAgICAgICAgICAgICAgICBPdXRwdXQ6IHQudW5pcXVlMQorICAgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAodGVuazEudW5pcXVlMSA9IHQudW5pcXVlMSkKICg5IHJv d3MpCiAKIGV4cGxhaW4gKGNvc3RzIG9mZiwgdmVyYm9zZSkgc2VsZWN0CiAgIChzZWxlY3Qg dC51bmlxdWUxIGZyb20gdGVuazEgd2hlcmUgdGVuazEudW5pcXVlMSA9IHQudW5pcXVlMSkK ICAgZnJvbSB0ZW5rMSB0CiAgIGxpbWl0IDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg TGltaXQKICAgIE91dHB1dDogKChTdWJQbGFuIDEpKQotICAgLT4gIFNlcSBTY2FuIG9uIHB1 YmxpYy50ZW5rMSB0Ci0gICAgICAgICBPdXRwdXQ6IChTdWJQbGFuIDEpCi0gICAgICAgICBT dWJQbGFuIDEKLSAgICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyB0ZW5rMV91 bmlxdWUxIG9uIHB1YmxpYy50ZW5rMQotICAgICAgICAgICAgICAgICBPdXRwdXQ6IHQudW5p cXVlMQotICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodGVuazEudW5pcXVlMSA9IHQu dW5pcXVlMSkKLSg4IHJvd3MpCisgICAtPiAgR2F0aGVyCisgICAgICAgICBPdXRwdXQ6ICgo U3ViUGxhbiAxKSkKKyAgICAgICAgIFdvcmtlcnMgUGxhbm5lZDogNAorICAgICAgICAgLT4g IFBhcmFsbGVsIEluZGV4IE9ubHkgU2NhbiB1c2luZyB0ZW5rMV91bmlxdWUxIG9uIHB1Ymxp Yy50ZW5rMSB0CisgICAgICAgICAgICAgICBPdXRwdXQ6IChTdWJQbGFuIDEpCisgICAgICAg ICAgICAgICBTdWJQbGFuIDEKKyAgICAgICAgICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2Nh biB1c2luZyB0ZW5rMV91bmlxdWUxIG9uIHB1YmxpYy50ZW5rMQorICAgICAgICAgICAgICAg ICAgICAgICBPdXRwdXQ6IHQudW5pcXVlMQorICAgICAgICAgICAgICAgICAgICAgICBJbmRl eCBDb25kOiAodGVuazEudW5pcXVlMSA9IHQudW5pcXVlMSkKKygxMSByb3dzKQogCiBleHBs YWluIChjb3N0cyBvZmYsIHZlcmJvc2UpIHNlbGVjdCB0LnVuaXF1ZTEKICAgZnJvbSB0ZW5r MSB0CiAgIHdoZXJlIHQudW5pcXVlMSA9IChzZWxlY3QgdC51bmlxdWUxIGZyb20gdGVuazEg d2hlcmUgdGVuazEudW5pcXVlMSA9IHQudW5pcXVlMSk7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0g U2VxIFNjYW4gb24gcHVibGljLnRlbmsxIHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBHYXRoZXIKICAgIE91dHB1dDogdC51bmlxdWUxCi0gICBGaWx0ZXI6ICh0 LnVuaXF1ZTEgPSAoU3ViUGxhbiAxKSkKLSAgIFN1YlBsYW4gMQotICAgICAtPiAgSW5kZXgg T25seSBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTEgb24gcHVibGljLnRlbmsxCi0gICAgICAg ICAgIE91dHB1dDogdC51bmlxdWUxCi0gICAgICAgICAgIEluZGV4IENvbmQ6ICh0ZW5rMS51 bmlxdWUxID0gdC51bmlxdWUxKQotKDcgcm93cykKKyAgIFdvcmtlcnMgUGxhbm5lZDogNAor ICAgLT4gIFBhcmFsbGVsIEluZGV4IE9ubHkgU2NhbiB1c2luZyB0ZW5rMV91bmlxdWUxIG9u IHB1YmxpYy50ZW5rMSB0CisgICAgICAgICBPdXRwdXQ6IHQudW5pcXVlMQorICAgICAgICAg RmlsdGVyOiAodC51bmlxdWUxID0gKFN1YlBsYW4gMSkpCisgICAgICAgICBTdWJQbGFuIDEK KyAgICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyB0ZW5rMV91bmlxdWUxIG9u IHB1YmxpYy50ZW5rMQorICAgICAgICAgICAgICAgICBPdXRwdXQ6IHQudW5pcXVlMQorICAg ICAgICAgICAgICAgICBJbmRleCBDb25kOiAodGVuazEudW5pcXVlMSA9IHQudW5pcXVlMSkK KygxMCByb3dzKQogCiBleHBsYWluIChjb3N0cyBvZmYsIHZlcmJvc2UpIHNlbGVjdCAqCiAg IGZyb20gdGVuazEgdAogICBvcmRlciBieSAoc2VsZWN0IHQudW5pcXVlMSBmcm9tIHRlbmsx IHdoZXJlIHRlbmsxLnVuaXF1ZTEgPSB0LnVuaXF1ZTEpOwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot IFNvcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBHYXRoZXIgTWVyZ2UKICAg IE91dHB1dDogdC51bmlxdWUxLCB0LnVuaXF1ZTIsIHQudHdvLCB0LmZvdXIsIHQudGVuLCB0 LnR3ZW50eSwgdC5odW5kcmVkLCB0LnRob3VzYW5kLCB0LnR3b3Rob3VzYW5kLCB0LmZpdmV0 aG91cywgdC50ZW50aG91cywgdC5vZGQsIHQuZXZlbiwgdC5zdHJpbmd1MSwgdC5zdHJpbmd1 MiwgdC5zdHJpbmc0LCAoKFN1YlBsYW4gMSkpCi0gICBTb3J0IEtleTogKChTdWJQbGFuIDEp KQotICAgLT4gIEdhdGhlcgotICAgICAgICAgT3V0cHV0OiB0LnVuaXF1ZTEsIHQudW5pcXVl MiwgdC50d28sIHQuZm91ciwgdC50ZW4sIHQudHdlbnR5LCB0Lmh1bmRyZWQsIHQudGhvdXNh bmQsIHQudHdvdGhvdXNhbmQsIHQuZml2ZXRob3VzLCB0LnRlbnRob3VzLCB0Lm9kZCwgdC5l dmVuLCB0LnN0cmluZ3UxLCB0LnN0cmluZ3UyLCB0LnN0cmluZzQsIChTdWJQbGFuIDEpCi0g ICAgICAgICBXb3JrZXJzIFBsYW5uZWQ6IDQKKyAgIFdvcmtlcnMgUGxhbm5lZDogNAorICAg LT4gIFNvcnQKKyAgICAgICAgIE91dHB1dDogdC51bmlxdWUxLCB0LnVuaXF1ZTIsIHQudHdv LCB0LmZvdXIsIHQudGVuLCB0LnR3ZW50eSwgdC5odW5kcmVkLCB0LnRob3VzYW5kLCB0LnR3 b3Rob3VzYW5kLCB0LmZpdmV0aG91cywgdC50ZW50aG91cywgdC5vZGQsIHQuZXZlbiwgdC5z dHJpbmd1MSwgdC5zdHJpbmd1MiwgdC5zdHJpbmc0LCAoKFN1YlBsYW4gMSkpCisgICAgICAg ICBTb3J0IEtleTogKChTdWJQbGFuIDEpKQogICAgICAgICAgLT4gIFBhcmFsbGVsIFNlcSBT Y2FuIG9uIHB1YmxpYy50ZW5rMSB0Ci0gICAgICAgICAgICAgICBPdXRwdXQ6IHQudW5pcXVl MSwgdC51bmlxdWUyLCB0LnR3bywgdC5mb3VyLCB0LnRlbiwgdC50d2VudHksIHQuaHVuZHJl ZCwgdC50aG91c2FuZCwgdC50d290aG91c2FuZCwgdC5maXZldGhvdXMsIHQudGVudGhvdXMs IHQub2RkLCB0LmV2ZW4sIHQuc3RyaW5ndTEsIHQuc3RyaW5ndTIsIHQuc3RyaW5nNAotICAg ICAgICAgU3ViUGxhbiAxCi0gICAgICAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcg dGVuazFfdW5pcXVlMSBvbiBwdWJsaWMudGVuazEKLSAgICAgICAgICAgICAgICAgT3V0cHV0 OiB0LnVuaXF1ZTEKLSAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHRlbmsxLnVuaXF1 ZTEgPSB0LnVuaXF1ZTEpCisgICAgICAgICAgICAgICBPdXRwdXQ6IHQudW5pcXVlMSwgdC51 bmlxdWUyLCB0LnR3bywgdC5mb3VyLCB0LnRlbiwgdC50d2VudHksIHQuaHVuZHJlZCwgdC50 aG91c2FuZCwgdC50d290aG91c2FuZCwgdC5maXZldGhvdXMsIHQudGVudGhvdXMsIHQub2Rk LCB0LmV2ZW4sIHQuc3RyaW5ndTEsIHQuc3RyaW5ndTIsIHQuc3RyaW5nNCwgKFN1YlBsYW4g MSkKKyAgICAgICAgICAgICAgIFN1YlBsYW4gMQorICAgICAgICAgICAgICAgICAtPiAgSW5k ZXggT25seSBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTEgb24gcHVibGljLnRlbmsxCisgICAg ICAgICAgICAgICAgICAgICAgIE91dHB1dDogdC51bmlxdWUxCisgICAgICAgICAgICAgICAg ICAgICAgIEluZGV4IENvbmQ6ICh0ZW5rMS51bmlxdWUxID0gdC51bmlxdWUxKQogKDEyIHJv d3MpCiAKIC0tIHRlc3Qgc3VicGxhbiBpbiBqb2luL2xhdGVyYWwgam9pbgpAQCAtNDA5LDE0 ICs0MTcsMTQgQEAgZXhwbGFpbiAoY29zdHMgb2ZmLCB2ZXJib3NlLCB0aW1pbmcgb2ZmKSBz ZWxlY3QgdC51bmlxdWUxLCBsLioKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICBHYXRoZXIKLSAgIE91dHB1dDogdC51bmlxdWUxLCAoU3ViUGxhbiAxKQorICAgT3V0 cHV0OiB0LnVuaXF1ZTEsICgoU3ViUGxhbiAxKSkKICAgIFdvcmtlcnMgUGxhbm5lZDogNAog ICAgLT4gIFBhcmFsbGVsIEluZGV4IE9ubHkgU2NhbiB1c2luZyB0ZW5rMV91bmlxdWUxIG9u IHB1YmxpYy50ZW5rMSB0Ci0gICAgICAgICBPdXRwdXQ6IHQudW5pcXVlMQotICAgU3ViUGxh biAxCi0gICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgdGVuazFfdW5pcXVlMSBvbiBw dWJsaWMudGVuazEKLSAgICAgICAgICAgT3V0cHV0OiB0LnVuaXF1ZTEKLSAgICAgICAgICAg SW5kZXggQ29uZDogKHRlbmsxLnVuaXF1ZTEgPSB0LnVuaXF1ZTEpCisgICAgICAgICBPdXRw dXQ6IHQudW5pcXVlMSwgKFN1YlBsYW4gMSkKKyAgICAgICAgIFN1YlBsYW4gMQorICAgICAg ICAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTEgb24gcHVibGlj LnRlbmsxCisgICAgICAgICAgICAgICAgIE91dHB1dDogdC51bmlxdWUxCisgICAgICAgICAg ICAgICAgIEluZGV4IENvbmQ6ICh0ZW5rMS51bmlxdWUxID0gdC51bmlxdWUxKQogKDkgcm93 cykKIAogLS0gdGhpcyBpcyBub3QgcGFyYWxsZWwtc2FmZSBkdWUgdG8gdXNlIG9mIHJhbmRv bSgpIHdpdGhpbiBTdWJMaW5rJ3MgdGVzdGV4cHI6CkBAIC0xMzIyLDggKzEzMzAsMTAgQEAg U0VMRUNUIDEgRlJPTSB0ZW5rMV92d19zZWMKICAgICAgICAgIC0+ICBQYXJhbGxlbCBJbmRl eCBPbmx5IFNjYW4gdXNpbmcgdGVuazFfdW5pcXVlMSBvbiB0ZW5rMQogICAgU3ViUGxhbiAx CiAgICAgIC0+ICBBZ2dyZWdhdGUKLSAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGludDRf dGJsCi0gICAgICAgICAgICAgICAgIEZpbHRlcjogKGYxIDwgdGVuazFfdndfc2VjLnVuaXF1 ZTEpCi0oOSByb3dzKQorICAgICAgICAgICAtPiAgR2F0aGVyCisgICAgICAgICAgICAgICAg IFdvcmtlcnMgUGxhbm5lZDogMQorICAgICAgICAgICAgICAgICAtPiAgUGFyYWxsZWwgU2Vx IFNjYW4gb24gaW50NF90YmwKKyAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoZjEg PCB0ZW5rMV92d19zZWMudW5pcXVlMSkKKygxMSByb3dzKQogCiByb2xsYmFjazsKLS0gCjIu MzkuMAoK --------------zRdKMQJjbL8fPXUmSNjb0L0K Content-Type: text/x-patch; charset=UTF-8; name="0003-review-comments-v6.patch" Content-Disposition: attachment; filename="0003-review-comments-v6.patch" Content-Transfer-Encoding: base64 RnJvbSAxYWEyNzllOGU4MmE0ZTk3NzFmYjFhNTA2OGU5YTU3OTJhODI0YTU0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzLnZvbmRyYUBwb3N0 Z3Jlc3FsLm9yZz4KRGF0ZTogV2VkLCAxOCBKYW4gMjAyMyAxOTo1MTozOCArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMy81XSByZXZpZXcgY29tbWVudHMKCi0tLQogc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BhdGgvYWxscGF0aHMuYyB8IDUgKysrLS0KIHNyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL2NsYXVzZXMuYyAgfCA1ICsrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGF0aC9hbGxwYXRocy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxs cGF0aHMuYwppbmRleCA3MTA4NTAxYjlhNy4uMzU3ZGZhYWIzZTggMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci9wYXRoL2FsbHBhdGhzLmMKKysrIGIvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYwpAQCAtNTU4LDggKzU1OCw4IEBAIHNldF9yZWxf cGF0aGxpc3QoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJlbCwKIAkgKiB0aGUg ZmluYWwgc2Nhbi9qb2luIHRhcmdldGxpc3QgaXMgYXZhaWxhYmxlIChzZWUgZ3JvdXBpbmdf cGxhbm5lcikuCiAJICovCiAJaWYgKHJlbC0+cmVsb3B0a2luZCA9PSBSRUxPUFRfQkFTRVJF TCAmJgotCQkhYm1zX2VxdWFsKHJlbC0+cmVsaWRzLCByb290LT5hbGxfYmFzZXJlbHMpCi0J CSYmIChyZWwtPnN1YnBsYW5fcGFyYW1zID09IE5JTCB8fCBydGUtPnJ0ZWtpbmQgIT0gUlRF X1NVQlFVRVJZKSkKKwkJIWJtc19lcXVhbChyZWwtPnJlbGlkcywgcm9vdC0+YWxsX2Jhc2Vy ZWxzKSAmJgorCQkocmVsLT5zdWJwbGFuX3BhcmFtcyA9PSBOSUwgfHwgcnRlLT5ydGVraW5k ICE9IFJURV9TVUJRVUVSWSkpCiAJCWdlbmVyYXRlX3VzZWZ1bF9nYXRoZXJfcGF0aHMocm9v dCwgcmVsLCBmYWxzZSk7CiAKIAkvKiBOb3cgZmluZCB0aGUgY2hlYXBlc3Qgb2YgdGhlIHBh dGhzIGZvciB0aGlzIHJlbCAqLwpAQCAtMzE2Myw2ICszMTYzLDcgQEAgZ2VuZXJhdGVfdXNl ZnVsX2dhdGhlcl9wYXRocyhQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsLCBi b29sIG92ZXJyaWRlX3IKIAlpZiAocmVsLT5wYXJ0aWFsX3BhdGhsaXN0ID09IE5JTCkKIAkJ cmV0dXJuOwogCisJLyogRklYTUUgPz8/ICovCiAJaWYgKCFibXNfaXNfc3Vic2V0KHJlcXVp cmVkX291dGVyLCByZWwtPnJlbGlkcykpCiAJCXJldHVybjsKIApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1p emVyL3V0aWwvY2xhdXNlcy5jCmluZGV4IDAzNTQ3MWQwNWQwLi45NTg1YWNmOGU2OSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwpAQCAtODE5LDYgKzgxOSwxMSBA QCBtYXhfcGFyYWxsZWxfaGF6YXJkX3dhbGtlcihOb2RlICpub2RlLCBtYXhfcGFyYWxsZWxf aGF6YXJkX2NvbnRleHQgKmNvbnRleHQpCiAJCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBB UkFNX0VYRUMpCiAJCQlyZXR1cm4gZmFsc2U7CiAKKwkJLyoKKwkJICogWFhYIFRoZSBmaXJz dCBjb25kaXRpb24gaXMgY2VydGFpbmx5IHRydWUsIHRoYW5rcyB0byB0aGUgcHJlY2VkaW5n CisJCSAqIGNoZWNrLiBUaGUgY29tbWVudCBhYm92ZSBzaG91bGQgYmUgdXBkYXRlZCB0byBy ZWZsZWN0IHRoaXMgY2hhbmdlLAorCQkgKiBwcm9iYWJseS4KKwkJICovCiAJCWlmIChwYXJh bS0+cGFyYW1raW5kICE9IFBBUkFNX0VYRUMgfHwKIAkJCSFsaXN0X21lbWJlcl9pbnQoY29u dGV4dC0+c2FmZV9wYXJhbV9pZHMsIHBhcmFtLT5wYXJhbWlkKSkKIAkJewotLSAKMi4zOS4w Cgo= --------------zRdKMQJjbL8fPXUmSNjb0L0K Content-Type: text/x-patch; charset=UTF-8; name="0004-Possible-additional-checks-v6.patch" Content-Disposition: attachment; filename="0004-Possible-additional-checks-v6.patch" Content-Transfer-Encoding: base64 RnJvbSA0NWRhOTdjMTE0MWVhZDFmZTc1N2ZjZmY1NDllNjhmYmQ0YzFkZWQ5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzLnZvbmRyYUBwb3N0 Z3Jlc3FsLm9yZz4KRGF0ZTogV2VkLCAxOCBKYW4gMjAyMyAxOToyMToyNCArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggNC81XSBQb3NzaWJsZSBhZGRpdGlvbmFsIGNoZWNrcwoKLS0tCiBzcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRocy5jIHwgMjkgKysrKysrKysrKysrKysr KysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgNiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxw YXRocy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYwppbmRleCAz NTdkZmFhYjNlOC4uZWFhOTcyZWM2NGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGlt aXplci9wYXRoL2FsbHBhdGhzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgv YWxscGF0aHMuYwpAQCAtMzAxOSwxMSArMzAxOSwxNiBAQCBnZW5lcmF0ZV9nYXRoZXJfcGF0 aHMoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJlbCwgYm9vbCBvdmVycmlkZV9y b3dzKQogCUxpc3RDZWxsICAgKmxjOwogCWRvdWJsZQkJcm93czsKIAlkb3VibGUJICAgKnJv d3NwID0gTlVMTDsKKwlSZWxpZHMJCXJlcXVpcmVkX291dGVyID0gcmVsLT5sYXRlcmFsX3Jl bGlkczsKIAogCS8qIElmIHRoZXJlIGFyZSBubyBwYXJ0aWFsIHBhdGhzLCB0aGVyZSdzIG5v dGhpbmcgdG8gZG8gaGVyZS4gKi8KIAlpZiAocmVsLT5wYXJ0aWFsX3BhdGhsaXN0ID09IE5J TCkKIAkJcmV0dXJuOwogCisJaWYgKCFibXNfaXNfc3Vic2V0KHJlcXVpcmVkX291dGVyLCBy ZWwtPnJlbGlkcykpCisJCXJldHVybjsKKworCiAJLyogU2hvdWxkIHdlIG92ZXJyaWRlIHRo ZSByZWwncyByb3djb3VudCBlc3RpbWF0ZT8gKi8KIAlpZiAob3ZlcnJpZGVfcm93cykKIAkJ cm93c3AgPSAmcm93czsKQEAgLTMwMzQsMTIgKzMwMzksMTYgQEAgZ2VuZXJhdGVfZ2F0aGVy X3BhdGhzKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpyZWwsIGJvb2wgb3ZlcnJp ZGVfcm93cykKIAkgKiBvZiBwYXJ0aWFsX3BhdGhsaXN0IGJlY2F1c2Ugb2YgdGhlIHdheSBh ZGRfcGFydGlhbF9wYXRoIHdvcmtzLgogCSAqLwogCWNoZWFwZXN0X3BhcnRpYWxfcGF0aCA9 IGxpbml0aWFsKHJlbC0+cGFydGlhbF9wYXRobGlzdCk7Ci0Jcm93cyA9Ci0JCWNoZWFwZXN0 X3BhcnRpYWxfcGF0aC0+cm93cyAqIGNoZWFwZXN0X3BhcnRpYWxfcGF0aC0+cGFyYWxsZWxf d29ya2VyczsKLQlzaW1wbGVfZ2F0aGVyX3BhdGggPSAoUGF0aCAqKQotCQljcmVhdGVfZ2F0 aGVyX3BhdGgocm9vdCwgcmVsLCBjaGVhcGVzdF9wYXJ0aWFsX3BhdGgsIHJlbC0+cmVsdGFy Z2V0LAotCQkJCQkJICAgcmVsLT5sYXRlcmFsX3JlbGlkcywgcm93c3ApOwotCWFkZF9wYXRo KHJlbCwgc2ltcGxlX2dhdGhlcl9wYXRoKTsKKwlpZiAoY2hlYXBlc3RfcGFydGlhbF9wYXRo LT5wYXJhbV9pbmZvID09IE5VTEwgfHwKKwkJCWJtc19pc19zdWJzZXQoY2hlYXBlc3RfcGFy dGlhbF9wYXRoLT5wYXJhbV9pbmZvLT5wcGlfcmVxX291dGVyLCByZWwtPnJlbGlkcykpCisJ eworCQlyb3dzID0KKwkJCWNoZWFwZXN0X3BhcnRpYWxfcGF0aC0+cm93cyAqIGNoZWFwZXN0 X3BhcnRpYWxfcGF0aC0+cGFyYWxsZWxfd29ya2VyczsKKwkJc2ltcGxlX2dhdGhlcl9wYXRo ID0gKFBhdGggKikKKwkJCWNyZWF0ZV9nYXRoZXJfcGF0aChyb290LCByZWwsIGNoZWFwZXN0 X3BhcnRpYWxfcGF0aCwgcmVsLT5yZWx0YXJnZXQsCisJCQkJCQkJICAgcmVsLT5sYXRlcmFs X3JlbGlkcywgcm93c3ApOworCQlhZGRfcGF0aChyZWwsIHNpbXBsZV9nYXRoZXJfcGF0aCk7 CisJfQogCiAJLyoKIAkgKiBGb3IgZWFjaCB1c2VmdWwgb3JkZXJpbmcsIHdlIGNhbiBjb25z aWRlciBhbiBvcmRlci1wcmVzZXJ2aW5nIEdhdGhlcgpAQCAtMzA1Myw2ICszMDYyLDEwIEBA IGdlbmVyYXRlX2dhdGhlcl9wYXRocyhQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAq cmVsLCBib29sIG92ZXJyaWRlX3Jvd3MpCiAJCWlmIChzdWJwYXRoLT5wYXRoa2V5cyA9PSBO SUwpCiAJCQljb250aW51ZTsKIAorCQlpZiAoc3VicGF0aC0+cGFyYW1faW5mbyAhPSBOVUxM ICYmCisJCQkhYm1zX2lzX3N1YnNldChzdWJwYXRoLT5wYXJhbV9pbmZvLT5wcGlfcmVxX291 dGVyLCByZWwtPnJlbGlkcykpCisJCQlicmVhazsKKwogCQlyb3dzID0gc3VicGF0aC0+cm93 cyAqIHN1YnBhdGgtPnBhcmFsbGVsX3dvcmtlcnM7CiAJCXBhdGggPSBjcmVhdGVfZ2F0aGVy X21lcmdlX3BhdGgocm9vdCwgcmVsLCBzdWJwYXRoLCByZWwtPnJlbHRhcmdldCwKIAkJCQkJ CQkJCQlzdWJwYXRoLT5wYXRoa2V5cywgcmVsLT5sYXRlcmFsX3JlbGlkcywgcm93c3ApOwpA QCAtMzIyMyw2ICszMjM2LDEwIEBAIGdlbmVyYXRlX3VzZWZ1bF9nYXRoZXJfcGF0aHMoUGxh bm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJlbCwgYm9vbCBvdmVycmlkZV9yCiAJCQkJ KHByZXNvcnRlZF9rZXlzID09IDAgfHwgIWVuYWJsZV9pbmNyZW1lbnRhbF9zb3J0KSkKIAkJ CQljb250aW51ZTsKIAorCQkJaWYgKHN1YnBhdGgtPnBhcmFtX2luZm8gIT0gTlVMTCAmJgor CQkJCSFibXNfaXNfc3Vic2V0KHN1YnBhdGgtPnBhcmFtX2luZm8tPnBwaV9yZXFfb3V0ZXIs IHJlbC0+cmVsaWRzKSkKKwkJCQlicmVhazsKKwogCQkJLyoKIAkJCSAqIENvbnNpZGVyIHJl Z3VsYXIgc29ydCBmb3IgYW55IHBhdGggdGhhdCdzIG5vdCBwcmVzb3J0ZWQgb3IgaWYKIAkJ CSAqIGluY3JlbWVudGFsIHNvcnQgaXMgZGlzYWJsZWQuICBXZSd2ZSBubyBuZWVkIHRvIGNv bnNpZGVyIGJvdGgKLS0gCjIuMzkuMAoK --------------zRdKMQJjbL8fPXUmSNjb0L0K Content-Type: text/x-patch; charset=UTF-8; name="0005-review-comments-v6.patch" Content-Disposition: attachment; filename="0005-review-comments-v6.patch" Content-Transfer-Encoding: base64 RnJvbSAyY2EyNWJkNWJiZTFhYTY4NDljNTVjYWI1OGRhZmUyMDJhZGFjY2U5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzLnZvbmRyYUBwb3N0 Z3Jlc3FsLm9yZz4KRGF0ZTogV2VkLCAxOCBKYW4gMjAyMyAxOTo1Mjo0NiArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggNS81XSByZXZpZXcgY29tbWVudHMKCi0tLQogc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BhdGgvYWxscGF0aHMuYyB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BhdGgvYWxscGF0aHMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2Fs bHBhdGhzLmMKaW5kZXggZWFhOTcyZWM2NGIuLjlkZDEwYTEyNzRjIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRocy5jCisrKyBiL3NyYy9iYWNrZW5k L29wdGltaXplci9wYXRoL2FsbHBhdGhzLmMKQEAgLTMwMjUsMTAgKzMwMjUsMTAgQEAgZ2Vu ZXJhdGVfZ2F0aGVyX3BhdGhzKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpyZWws IGJvb2wgb3ZlcnJpZGVfcm93cykKIAlpZiAocmVsLT5wYXJ0aWFsX3BhdGhsaXN0ID09IE5J TCkKIAkJcmV0dXJuOwogCisJLyogRklYTUUgPz8/ICovCiAJaWYgKCFibXNfaXNfc3Vic2V0 KHJlcXVpcmVkX291dGVyLCByZWwtPnJlbGlkcykpCiAJCXJldHVybjsKIAotCiAJLyogU2hv dWxkIHdlIG92ZXJyaWRlIHRoZSByZWwncyByb3djb3VudCBlc3RpbWF0ZT8gKi8KIAlpZiAo b3ZlcnJpZGVfcm93cykKIAkJcm93c3AgPSAmcm93czsKQEAgLTMwNjIsNiArMzA2Miw3IEBA IGdlbmVyYXRlX2dhdGhlcl9wYXRocyhQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAq cmVsLCBib29sIG92ZXJyaWRlX3Jvd3MpCiAJCWlmIChzdWJwYXRoLT5wYXRoa2V5cyA9PSBO SUwpCiAJCQljb250aW51ZTsKIAorCQkvKiBGSVhNRSA/Pz8gKi8KIAkJaWYgKHN1YnBhdGgt PnBhcmFtX2luZm8gIT0gTlVMTCAmJgogCQkJIWJtc19pc19zdWJzZXQoc3VicGF0aC0+cGFy YW1faW5mby0+cHBpX3JlcV9vdXRlciwgcmVsLT5yZWxpZHMpKQogCQkJYnJlYWs7Ci0tIAoy LjM5LjAKCg== --------------zRdKMQJjbL8fPXUmSNjb0L0K--