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 1lPB7o-0004mv-59 for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Mar 2021 21:33:12 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lPB7H-0004Kr-E1 for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Mar 2021 21:32:39 +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 1lPB7G-0004Jt-Rr for pgsql-hackers@lists.postgresql.org; Wed, 24 Mar 2021 21:32:39 +0000 Received: from mail-il1-x129.google.com ([2607:f8b0:4864:20::129]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1lPB7D-0001Aj-0Z for pgsql-hackers@postgresql.org; Wed, 24 Mar 2021 21:32:37 +0000 Received: by mail-il1-x129.google.com with SMTP id j11so316968ilu.13 for ; Wed, 24 Mar 2021 14:32:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=a/kqQbtkM75io+vOU92CcvOnJijhk2o/I43aGbHKvHM=; b=Mof10FyvfBcN7w6TlO4gxXJPXWmQ4nXhzHvXP1ZxuTJgFQ8bRjlq2glu5kg+VbByht +wbsb8uDpfDNInqO5JI1Vx+/Zpa9YDPtDAl0GrRqZXQmfQTXqC8KLX/ueGVzNab2a/uw pgj2NzORtq78uMq90mL77ofRGRVcHNT213NUvJkcc+m3M9u6We5v+LTRP1bgh57EdQk2 7dHU2D3LsgGHll4fCyuDpfz/asbfzXAAYX4Y2nsvl7h+TxjZZVRPucBtc9cEQqxCprGb 9uWxzGsjA5r8cUspCoXhwQxnmJU3iLwCu4D40QWb2DrkXXWbCvlAzchQtFIIj1GgZhFp ittw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=a/kqQbtkM75io+vOU92CcvOnJijhk2o/I43aGbHKvHM=; b=K3dHKUgzFQ7OTAILC1GDpWnT8lSpMP+LUFHu205ZRDkrxP5NVnLDeLRxsMTvbCs1+8 kYRY6Jlo3lluG+xVzEHl4GwG7p3Wy3g6aL4Jft85YyuiIIYwm4JepcEG0mPmPCVulYiN VUfJEBLePhrMyWg8hXwSlOXQXigDgJxI1JnCaC1GTSKi3RnnHq1Yi1YisU1x5qayjNSK 01D8IV9B/2CUzdyI64YosgABG4ISBmy5pWAg77v5FPzE4XXfnNH7noHnP8eD/mHjCnwM TFFZOVTUidLMROn286p6var/KrUtIhkdIAOmtnj1gHhhIz0jB/b7ib7/PM1KgyUkBiVb WL2Q== X-Gm-Message-State: AOAM5308bsJLGvmmZ2Z/Cii955c9bM4hey1CuY3i/3PeiMPd2yTUf4Y+ iJuksTyKK9sc74zKGaI7T1aFdgxXov/b7jejcw0= X-Google-Smtp-Source: ABdhPJx/pGPlScubpxqAi2oP9LxegqhYc7ToaZDht0rcoIVsG9qkRce0FqfnK3ogrqPeLyGSO4d6TDmKhOMM/rtz8BE= X-Received: by 2002:a92:c56f:: with SMTP id b15mr4226127ilj.41.1616621553924; Wed, 24 Mar 2021 14:32:33 -0700 (PDT) MIME-Version: 1.0 References: <20201028013651.de5cj2xadgmba5nf@development> <13D8FD63-559A-4737-B7FD-05288D1CEF8B@yandex-team.ru> <20201028233243.ygm6yqlynkqpzekr@development> <43F3DE92-F236-4EA5-B4D6-39BEF6BD849D@yandex-team.ru> <20201029134933.xd4mh2cofuf6tdfz@development> <65C1B4BA-D16F-4939-978B-AC8F370F5A5E@yandex-team.ru> <9b4d17df-b811-8323-16be-3cab913216d1@enterprisedb.com> <35862787-8b4d-a290-789e-6e12dc6527e8@enterprisedb.com> <13F86913-C01B-4983-AE2E-493F5A028280@yandex-team.ru> <6ba7eae2-8b0c-0690-11a5-e921e6586180@darold.net> <3F5E23A3-6250-486E-9CCA-E2A5B6A28B4F@yandex-team.ru> <636f694a-4d69-d6d9-78d1-c88714f3e2e0@darold.net> <3319917a-679e-b07d-b194-473552b72082@darold.net> <1E3DD5BF-A54E-4203-86C5-94C9EFA0E095@yandex-team.ru> <04ae150b-6442-148a-bb23-77082f6fca1d@darold.net> <3768803E-4794-409D-88D2-C3EF7CA1B7FC@yandex-team.ru> In-Reply-To: <3768803E-4794-409D-88D2-C3EF7CA1B7FC@yandex-team.ru> From: Thomas Munro Date: Thu, 25 Mar 2021 10:31:56 +1300 Message-ID: Subject: Re: MultiXact\SLRU buffers configuration To: Andrey Borodin Cc: Gilles Darold , Tomas Vondra , Tomas Vondra , Alexander Korotkov , Anastasia Lubennikova , Daniel Gustafsson , Kyotaro Horiguchi , pgsql-hackers Content-Type: multipart/mixed; boundary="00000000000075bd5305be4f0906" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000075bd5305be4f0906 Content-Type: text/plain; charset="UTF-8" Hi Andrey, On Sat, Mar 13, 2021 at 1:44 AM Andrey Borodin wrote: > [v10] +int multixact_offsets_slru_buffers = 8; +int multixact_members_slru_buffers = 16; +int subtrans_slru_buffers = 32; +int notify_slru_buffers = 8; +int serial_slru_buffers = 16; +int clog_slru_buffers = 0; +int commit_ts_slru_buffers = 0; I don't think we should put "slru" (the name of the buffer replacement algorithm, implementation detail) in the GUC names. + It defaults to 0, in this case CLOG size is taken as shared_buffers / 512. We already know that increasing the number of CLOG buffers above the current number hurts as the linear search begins to dominate (according to the commit message for 5364b357), and it doesn't seem great to ship a new feature that melts your CPU when you turn it up. Perhaps, to ship this, we need to introduce a buffer mapping table? I have attached a "one coffee" attempt at that, on top of your v10 patch (unmodified), for discussion. It survives basic testing but I don't know how it performs. --00000000000075bd5305be4f0906 Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0001-Make-all-SLRU-buffer-sizes-configurable.patch" Content-Disposition: attachment; filename="v10-0001-Make-all-SLRU-buffer-sizes-configurable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kmnyl6i90 RnJvbSA0ODE3ZDE2Y2ZiNjcwNGQ0M2E3YmVmMTI2NDhlNzUzZDIzOWM4MDljIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXkgQm9yb2RpbiA8YW1ib3JvZGluQGFjbS5vcmc+CkRh dGU6IE1vbiwgMTUgRmViIDIwMjEgMjE6NTE6NTYgKzA1MDAKU3ViamVjdDogW1BBVENIIHYxMCAx LzJdIE1ha2UgYWxsIFNMUlUgYnVmZmVyIHNpemVzIGNvbmZpZ3VyYWJsZQoKLS0tCiBkb2Mvc3Jj L3NnbWwvY29uZmlnLnNnbWwgICAgICAgICAgICAgICAgICAgICAgfCAxMDggKysrKysrKysrKysr KysrKysrCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jbG9nLmMgICAgICAgICAgICAgfCAg IDYgKwogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY29tbWl0X3RzLmMgICAgICAgIHwgICA1 ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYyAgICAgICAgfCAgIDgg Ky0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3N1YnRyYW5zLmMgICAgICAgICB8ICAgNSAr LQogc3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5bmMuYyAgICAgICAgICAgICAgICAgIHwgICA4ICst CiBzcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJlZGljYXRlLmMgICAgICAgICAgfCAgIDQgKy0K IHNyYy9iYWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jICAgICAgICAgICAgICB8ICAgOCArKwog c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYyAgICAgICAgICAgICAgICAgIHwgIDc3ICsrKysr KysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSB8 ICAxNiArKysKIHNyYy9pbmNsdWRlL2FjY2Vzcy9tdWx0aXhhY3QuaCAgICAgICAgICAgICAgICB8 ICAgNCAtCiBzcmMvaW5jbHVkZS9hY2Nlc3Mvc3VidHJhbnMuaCAgICAgICAgICAgICAgICAgfCAg IDMgLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvYXN5bmMuaCAgICAgICAgICAgICAgICAgIHwgICA1 IC0KIHNyYy9pbmNsdWRlL21pc2NhZG1pbi5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgOCAr Kwogc3JjL2luY2x1ZGUvc3RvcmFnZS9wcmVkaWNhdGUuaCAgICAgICAgICAgICAgIHwgICA0IC0K IDE1IGZpbGVzIGNoYW5nZWQsIDI0MCBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmln LnNnbWwKaW5kZXggZGRjNmQ3ODlkOC4uMGFkY2YwZWZhZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2NvbmZpZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtMTg4Niw2 ICsxODg2LDExNCBAQCBpbmNsdWRlX2RpciAnY29uZi5kJwogICAgICAgIDwvcGFyYT4KICAgICAg IDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAKKyAgICA8dmFybGlzdGVu dHJ5IGlkPSJndWMtbXVsdGl4YWN0LW9mZnNldHMtc2xydS1idWZmZXJzIiB4cmVmbGFiZWw9Im11 bHRpeGFjdF9vZmZzZXRzX3NscnVfYnVmZmVycyI+CisgICAgICA8dGVybT48dmFybmFtZT5tdWx0 aXhhY3Rfb2Zmc2V0c19zbHJ1X2J1ZmZlcnM8L3Zhcm5hbWU+ICg8dHlwZT5pbnRlZ2VyPC90eXBl PikKKyAgICAgIDxpbmRleHRlcm0+CisgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+bXVsdGl4YWN0 X29mZnNldHNfc2xydV9idWZmZXJzPC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwv cHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPC90ZXJtPgorICAgICAgPGxpc3Rp dGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBTcGVjaWZpZXMgdGhlIGFtb3VudCBvZiBtZW1v cnkgdG8gYmUgdXNlZCBmb3IgTXVsdGlYYWN0IG9mZnNldHMuIE11bHRpWGFjdCBvZmZzZXRzCisg ICAgICAgIGFyZSB1c2VkIHRvIHN0b3JlIGluZm9ybWF0aW9uIGFib3V0IG9mZnNldHMgb2YgbXVs dGlwbGUgcm93IGxvY2tlcnMgKGNhdXNlZCBieSBTRUxFQ1QgRk9SIFVQREFURSBhbmQgb3RoZXJz KS4KKyAgICAgICAgSXQgZGVmYXVsdHMgdG8gNjQga2lsb2J5dGVzICg8bGl0ZXJhbD42NEtCPC9s aXRlcmFsPikuCisgICAgICAgIFRoaXMgcGFyYW1ldGVyIGNhbiBvbmx5IGJlIHNldCBhdCBzZXJ2 ZXIgc3RhcnQuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJs aXN0ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtbXVsdGl4YWN0LW1lbWJlcnMt c2xydS1idWZmZXJzIiB4cmVmbGFiZWw9Im11bHRpeGFjdF9tZW1iZXJzX3NscnVfYnVmZmVycyI+ CisgICAgICA8dGVybT48dmFybmFtZT5tdWx0aXhhY3RfbWVtYmVyc19zbHJ1X2J1ZmZlcnM8L3Zh cm5hbWU+ICg8dHlwZT5pbnRlZ2VyPC90eXBlPikKKyAgICAgIDxpbmRleHRlcm0+CisgICAgICAg PHByaW1hcnk+PHZhcm5hbWU+bXVsdGl4YWN0X21lbWJlcnNfc2xydV9idWZmZXJzPC92YXJuYW1l PiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgor ICAgICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBT cGVjaWZpZXMgdGhlIGFtb3VudCBvZiBtZW1vcnkgdG8gYmUgdXNlZCBmb3IgTXVsdGlYYWN0IG1l bWJlcnMuIE11bHRpWGFjdCBtZW1iZXJzCisgICAgICAgIGFyZSB1c2VkIHRvIHN0b3JlIGluZm9y bWF0aW9uIGFib3V0IFhJRHMgb2YgbXVsdGlwbGUgcm93IGxvY2tlcnMuIFR5cGljYWxseSA8dmFy bmFtZT5tdWx0aXhhY3RfbWVtYmVyc19zbHJ1X2J1ZmZlcnM8L3Zhcm5hbWU+CisgICAgICAgIGlz IHR3aWNlIG1vcmUgdGhhbiA8dmFybmFtZT5tdWx0aXhhY3Rfb2Zmc2V0c19zbHJ1X2J1ZmZlcnM8 L3Zhcm5hbWU+LgorICAgICAgICBJdCBkZWZhdWx0cyB0byAxMjgga2lsb2J5dGVzICg8bGl0ZXJh bD4xMjhLQjwvbGl0ZXJhbD4pLgorICAgICAgICBUaGlzIHBhcmFtZXRlciBjYW4gb25seSBiZSBz ZXQgYXQgc2VydmVyIHN0YXJ0LgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+Cisg ICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAKKyAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtc3Vi dHJhbnMtYnVmZmVycyIgeHJlZmxhYmVsPSJzdWJ0cmFuc19zbHJ1X2J1ZmZlcnMiPgorICAgICAg PHRlcm0+PHZhcm5hbWU+c3VidHJhbnNfc2xydV9idWZmZXJzPC92YXJuYW1lPiAoPHR5cGU+aW50 ZWdlcjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgorICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1l PnN1YnRyYW5zX3NscnVfYnVmZmVyczwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8 L3ByaW1hcnk+CisgICAgICA8L2luZGV4dGVybT4KKyAgICAgIDwvdGVybT4KKyAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgU3BlY2lmaWVzIHRoZSBhbW91bnQgb2YgbWVt b3J5IHRvIGJlIHVzZWQgZm9yIHN1YnRyYW5zYWN0aW9ucy4KKyAgICAgICAgSXQgZGVmYXVsdHMg dG8gMjU2IGtpbG9ieXRlcyAoPGxpdGVyYWw+MjU2S0I8L2xpdGVyYWw+KS4KKyAgICAgICAgVGhp cyBwYXJhbWV0ZXIgY2FuIG9ubHkgYmUgc2V0IGF0IHNlcnZlciBzdGFydC4KKyAgICAgICA8L3Bh cmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgCisgICAg PHZhcmxpc3RlbnRyeSBpZD0iZ3VjLW5vdGlmeS1idWZmZXJzIiB4cmVmbGFiZWw9Im5vdGlmeV9z bHJ1X2J1ZmZlcnMiPgorICAgICAgPHRlcm0+PHZhcm5hbWU+bm90aWZ5X3NscnVfYnVmZmVyczwv dmFybmFtZT4gKDx0eXBlPmludGVnZXI8L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAg ICA8cHJpbWFyeT48dmFybmFtZT5ub3RpZnlfc2xydV9idWZmZXJzPC92YXJuYW1lPiBjb25maWd1 cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPC90 ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBTcGVjaWZpZXMg dGhlIGFtb3VudCBvZiBtZW1vcnkgdG8gYmUgdXNlZCBmb3IgYXN5bmNyb25vdXMgbm90aWZpY2F0 aW9ucyAoTk9USUZZLCBMSVNURU4pLgorICAgICAgICBJdCBkZWZhdWx0cyB0byA2NCBraWxvYnl0 ZXMgKDxsaXRlcmFsPjY0S0I8L2xpdGVyYWw+KS4KKyAgICAgICAgVGhpcyBwYXJhbWV0ZXIgY2Fu IG9ubHkgYmUgc2V0IGF0IHNlcnZlciBzdGFydC4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xp c3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgCisgICAgPHZhcmxpc3RlbnRyeSBp ZD0iZ3VjLXNlcmlhbC1idWZmZXJzIiB4cmVmbGFiZWw9InNlcmlhbF9zbHJ1X2J1ZmZlcnMiPgor ICAgICAgPHRlcm0+PHZhcm5hbWU+c2VyaWFsX3NscnVfYnVmZmVyczwvdmFybmFtZT4gKDx0eXBl PmludGVnZXI8L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAgICA8cHJpbWFyeT48dmFy bmFtZT5zZXJpYWxfc2xydV9idWZmZXJzPC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRl cjwvcHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPC90ZXJtPgorICAgICAgPGxp c3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBTcGVjaWZpZXMgdGhlIGFtb3VudCBvZiBt ZW1vcnkgdG8gYmUgdXNlZCBmb3IgcHJlZGljYXRlIGxvY2tzLgorICAgICAgICBJdCBkZWZhdWx0 cyB0byAxMjgga2lsb2J5dGVzICg8bGl0ZXJhbD4xMjhLQjwvbGl0ZXJhbD4pLgorICAgICAgICBU aGlzIHBhcmFtZXRlciBjYW4gb25seSBiZSBzZXQgYXQgc2VydmVyIHN0YXJ0LgorICAgICAgIDwv cGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAKKyAg ICA8dmFybGlzdGVudHJ5IGlkPSJndWMtY2xvZy1idWZmZXJzIiB4cmVmbGFiZWw9ImNsb2dfc2xy dV9idWZmZXJzIj4KKyAgICAgIDx0ZXJtPjx2YXJuYW1lPmNsb2dfc2xydV9idWZmZXJzPC92YXJu YW1lPiAoPHR5cGU+aW50ZWdlcjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgorICAgICAgIDxw cmltYXJ5Pjx2YXJuYW1lPmNsb2dfc2xydV9idWZmZXJzPC92YXJuYW1lPiBjb25maWd1cmF0aW9u IHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPC90ZXJtPgor ICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBTcGVjaWZpZXMgdGhlIGFt b3VudCBvZiBtZW1vcnkgdG8gYmUgdXNlZCBmb3IgQ0xPRy4KKyAgICAgICAgSXQgZGVmYXVsdHMg dG8gMCwgaW4gdGhpcyBjYXNlIENMT0cgc2l6ZSBpcyB0YWtlbiBhcyA8dmFybmFtZT5zaGFyZWRf YnVmZmVyczwvdmFybmFtZT4gLyA1MTIuCisgICAgICAgIFRoaXMgcGFyYW1ldGVyIGNhbiBvbmx5 IGJlIHNldCBhdCBzZXJ2ZXIgc3RhcnQuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRl bT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgIAorICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1 Yy1jb21taXQtdHMtYnVmZmVycyIgeHJlZmxhYmVsPSJjb21taXRfdHNfc2xydV9idWZmZXJzIj4K KyAgICAgIDx0ZXJtPjx2YXJuYW1lPmNvbW1pdF90c19zbHJ1X2J1ZmZlcnM8L3Zhcm5hbWU+ICg8 dHlwZT5pbnRlZ2VyPC90eXBlPikKKyAgICAgIDxpbmRleHRlcm0+CisgICAgICAgPHByaW1hcnk+ PHZhcm5hbWU+Y29tbWl0X3RzX3NscnVfYnVmZmVyczwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBw YXJhbWV0ZXI8L3ByaW1hcnk+CisgICAgICA8L2luZGV4dGVybT4KKyAgICAgIDwvdGVybT4KKyAg ICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgU3BlY2lmaWVzIHRoZSBhbW91 bnQgb2YgbWVtb3J5IHRvIGJlIHVzZWQgZm9yIGNvbW1pdCB0aW1lc3RhbXBzLgorICAgICAgICBJ dCBkZWZhdWx0cyB0byAwLCBpbiB0aGlzIGNhc2UgQ0xPRyBzaXplIGlzIHRha2VuIGFzIDx2YXJu YW1lPnNoYXJlZF9idWZmZXJzPC92YXJuYW1lPiAvIDUxMi4KKyAgICAgICAgVGhpcyBwYXJhbWV0 ZXIgY2FuIG9ubHkgYmUgc2V0IGF0IHNlcnZlciBzdGFydC4KKyAgICAgICA8L3BhcmE+CisgICAg ICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KIAogICAgICA8dmFybGlzdGVudHJ5 IGlkPSJndWMtbWF4LXN0YWNrLWRlcHRoIiB4cmVmbGFiZWw9Im1heF9zdGFja19kZXB0aCI+CiAg ICAgICA8dGVybT48dmFybmFtZT5tYXhfc3RhY2tfZGVwdGg8L3Zhcm5hbWU+ICg8dHlwZT5pbnRl Z2VyPC90eXBlPikKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cuYwppbmRleCA2ZmE0NzEzZmI0Li5l MWQzNGFhMzYxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jbG9nLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY2xvZy5jCkBAIC02NTksNiArNjU5LDkg QEAgVHJhbnNhY3Rpb25JZEdldFN0YXR1cyhUcmFuc2FjdGlvbklkIHhpZCwgWExvZ1JlY1B0ciAq bHNuKQogLyoKICAqIE51bWJlciBvZiBzaGFyZWQgQ0xPRyBidWZmZXJzLgogICoKKyAqIElmIHZh bHVlcyBpcyBjb25maWd1cmVkIHZpYSBHVUMgLSBqdXN0IHVzZSBnaXZlbiB2YWx1ZS4gT3RoZXJ3 aXNlCisgKiBhcHBseSBmb2xsb3dpbmcgZXVyaXN0aWNzLgorICoKICAqIE9uIGxhcmdlciBtdWx0 aS1wcm9jZXNzb3Igc3lzdGVtcywgaXQgaXMgcG9zc2libGUgdG8gaGF2ZSBtYW55IENMT0cgcGFn ZQogICogcmVxdWVzdHMgaW4gZmxpZ2h0IGF0IG9uZSB0aW1lIHdoaWNoIGNvdWxkIGxlYWQgdG8g ZGlzayBhY2Nlc3MgZm9yIENMT0cKICAqIHBhZ2UgaWYgdGhlIHJlcXVpcmVkIHBhZ2UgaXMgbm90 IGZvdW5kIGluIG1lbW9yeS4gIFRlc3RpbmcgcmV2ZWFsZWQgdGhhdCB3ZQpAQCAtNjc1LDYgKzY3 OCw5IEBAIFRyYW5zYWN0aW9uSWRHZXRTdGF0dXMoVHJhbnNhY3Rpb25JZCB4aWQsIFhMb2dSZWNQ dHIgKmxzbikKIFNpemUKIENMT0dTaG1lbUJ1ZmZlcnModm9pZCkKIHsKKwkvKiBjb25zaWRlciAw IGFuZCAxIGFzIHVuc2V0IEdVQyAqLworCWlmIChjbG9nX3NscnVfYnVmZmVycyA+IDEpCisJCXJl dHVybiBjbG9nX3NscnVfYnVmZmVyczsKIAlyZXR1cm4gTWluKDEyOCwgTWF4KDQsIE5CdWZmZXJz IC8gNTEyKSk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nv bW1pdF90cy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY29tbWl0X3RzLmMKaW5kZXgg NDhlOGQ2NjI4Ni4uN2RlM2JjYTYzZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0vY29tbWl0X3RzLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY29tbWl0 X3RzLmMKQEAgLTUzMCw3ICs1MzAsMTAgQEAgcGdfeGFjdF9jb21taXRfdGltZXN0YW1wX29yaWdp bihQR19GVU5DVElPTl9BUkdTKQogU2l6ZQogQ29tbWl0VHNTaG1lbUJ1ZmZlcnModm9pZCkKIHsK LQlyZXR1cm4gTWluKDE2LCBNYXgoNCwgTkJ1ZmZlcnMgLyAxMDI0KSk7CisJLyogY29uc2lkZXIg MCBhbmQgMSBhcyB1bnNldCBHVUMgKi8KKwlpZiAoY29tbWl0X3RzX3NscnVfYnVmZmVycyA+IDEp CisJCXJldHVybiBjb21taXRfdHNfc2xydV9idWZmZXJzOworCXJldHVybiBNaW4oMTYsIE1heCg0 LCBOQnVmZmVycyAvIDUxMikpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0 aXhhY3QuYwppbmRleCAxZjlmMWExZmExLi4zNzBjMDFlNzJiIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS9tdWx0aXhhY3QuYwpAQCAtMTgzMSw4ICsxODMxLDggQEAgTXVsdGlYYWN0U2htZW1T aXplKHZvaWQpCiAJCQkgbXVsX3NpemUoc2l6ZW9mKE11bHRpWGFjdElkKSAqIDIsIE1heE9sZGVz dFNsb3QpKQogCiAJc2l6ZSA9IFNIQVJFRF9NVUxUSVhBQ1RfU1RBVEVfU0laRTsKLQlzaXplID0g YWRkX3NpemUoc2l6ZSwgU2ltcGxlTHJ1U2htZW1TaXplKE5VTV9NVUxUSVhBQ1RPRkZTRVRfQlVG RkVSUywgMCkpOwotCXNpemUgPSBhZGRfc2l6ZShzaXplLCBTaW1wbGVMcnVTaG1lbVNpemUoTlVN X01VTFRJWEFDVE1FTUJFUl9CVUZGRVJTLCAwKSk7CisJc2l6ZSA9IGFkZF9zaXplKHNpemUsIFNp bXBsZUxydVNobWVtU2l6ZShtdWx0aXhhY3Rfb2Zmc2V0c19zbHJ1X2J1ZmZlcnMsIDApKTsKKwlz aXplID0gYWRkX3NpemUoc2l6ZSwgU2ltcGxlTHJ1U2htZW1TaXplKG11bHRpeGFjdF9tZW1iZXJz X3NscnVfYnVmZmVycywgMCkpOwogCiAJcmV0dXJuIHNpemU7CiB9CkBAIC0xODQ4LDEzICsxODQ4 LDEzIEBAIE11bHRpWGFjdFNobWVtSW5pdCh2b2lkKQogCU11bHRpWGFjdE1lbWJlckN0bC0+UGFn ZVByZWNlZGVzID0gTXVsdGlYYWN0TWVtYmVyUGFnZVByZWNlZGVzOwogCiAJU2ltcGxlTHJ1SW5p dChNdWx0aVhhY3RPZmZzZXRDdGwsCi0JCQkJICAiTXVsdGlYYWN0T2Zmc2V0IiwgTlVNX01VTFRJ WEFDVE9GRlNFVF9CVUZGRVJTLCAwLAorCQkJCSAgIk11bHRpWGFjdE9mZnNldCIsIG11bHRpeGFj dF9vZmZzZXRzX3NscnVfYnVmZmVycywgMCwKIAkJCQkgIE11bHRpWGFjdE9mZnNldFNMUlVMb2Nr LCAicGdfbXVsdGl4YWN0L29mZnNldHMiLAogCQkJCSAgTFdUUkFOQ0hFX01VTFRJWEFDVE9GRlNF VF9CVUZGRVIsCiAJCQkJICBTWU5DX0hBTkRMRVJfTVVMVElYQUNUX09GRlNFVCk7CiAJU2xydVBh Z2VQcmVjZWRlc1VuaXRUZXN0cyhNdWx0aVhhY3RPZmZzZXRDdGwsIE1VTFRJWEFDVF9PRkZTRVRT X1BFUl9QQUdFKTsKIAlTaW1wbGVMcnVJbml0KE11bHRpWGFjdE1lbWJlckN0bCwKLQkJCQkgICJN dWx0aVhhY3RNZW1iZXIiLCBOVU1fTVVMVElYQUNUTUVNQkVSX0JVRkZFUlMsIDAsCisJCQkJICAi TXVsdGlYYWN0TWVtYmVyIiwgbXVsdGl4YWN0X29mZnNldHNfc2xydV9idWZmZXJzLCAwLAogCQkJ CSAgTXVsdGlYYWN0TWVtYmVyU0xSVUxvY2ssICJwZ19tdWx0aXhhY3QvbWVtYmVycyIsCiAJCQkJ ICBMV1RSQU5DSEVfTVVMVElYQUNUTUVNQkVSX0JVRkZFUiwKIAkJCQkgIFNZTkNfSEFORExFUl9N VUxUSVhBQ1RfTUVNQkVSKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2Ft L3N1YnRyYW5zLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zdWJ0cmFucy5jCmluZGV4 IDZhOGU1MjFmODkuLjBjMjQzNTNkM2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL3N1YnRyYW5zLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc3VidHJh bnMuYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy9zbHJ1LmgiCiAjaW5jbHVk ZSAiYWNjZXNzL3N1YnRyYW5zLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3RyYW5zYW0uaCIKKyNpbmNs dWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJwZ190cmFjZS5oIgogI2luY2x1ZGUgInV0aWxz L3NuYXBtZ3IuaCIKIApAQCAtMTg0LDE0ICsxODUsMTQgQEAgU3ViVHJhbnNHZXRUb3Btb3N0VHJh bnNhY3Rpb24oVHJhbnNhY3Rpb25JZCB4aWQpCiBTaXplCiBTVUJUUkFOU1NobWVtU2l6ZSh2b2lk KQogewotCXJldHVybiBTaW1wbGVMcnVTaG1lbVNpemUoTlVNX1NVQlRSQU5TX0JVRkZFUlMsIDAp OworCXJldHVybiBTaW1wbGVMcnVTaG1lbVNpemUoc3VidHJhbnNfc2xydV9idWZmZXJzLCAwKTsK IH0KIAogdm9pZAogU1VCVFJBTlNTaG1lbUluaXQodm9pZCkKIHsKIAlTdWJUcmFuc0N0bC0+UGFn ZVByZWNlZGVzID0gU3ViVHJhbnNQYWdlUHJlY2VkZXM7Ci0JU2ltcGxlTHJ1SW5pdChTdWJUcmFu c0N0bCwgIlN1YnRyYW5zIiwgTlVNX1NVQlRSQU5TX0JVRkZFUlMsIDAsCisJU2ltcGxlTHJ1SW5p dChTdWJUcmFuc0N0bCwgIlN1YnRyYW5zIiwgc3VidHJhbnNfc2xydV9idWZmZXJzLCAwLAogCQkJ CSAgU3VidHJhbnNTTFJVTG9jaywgInBnX3N1YnRyYW5zIiwKIAkJCQkgIExXVFJBTkNIRV9TVUJU UkFOU19CVUZGRVIsIFNZTkNfSEFORExFUl9OT05FKTsKIAlTbHJ1UGFnZVByZWNlZGVzVW5pdFRl c3RzKFN1YlRyYW5zQ3RsLCBTVUJUUkFOU19YQUNUU19QRVJfUEFHRSk7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy9hc3luYy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5bmMu YwppbmRleCA0YjE2ZmI1NjgyLi5mNWM1NTkyMDU3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j b21tYW5kcy9hc3luYy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMKQEAgLTEw Nyw3ICsxMDcsNyBAQAogICogZnJvbnRlbmQgZHVyaW5nIHN0YXJ0dXAuKSAgVGhlIGFib3ZlIGRl c2lnbiBndWFyYW50ZWVzIHRoYXQgbm90aWZpZXMgZnJvbQogICogb3RoZXIgYmFja2VuZHMgd2ls bCBuZXZlciBiZSBtaXNzZWQgYnkgaWdub3Jpbmcgc2VsZi1ub3RpZmllcy4KICAqCi0gKiBUaGUg YW1vdW50IG9mIHNoYXJlZCBtZW1vcnkgdXNlZCBmb3Igbm90aWZ5IG1hbmFnZW1lbnQgKE5VTV9O T1RJRllfQlVGRkVSUykKKyAqIFRoZSBhbW91bnQgb2Ygc2hhcmVkIG1lbW9yeSB1c2VkIGZvciBu b3RpZnkgbWFuYWdlbWVudCAobm90aWZ5X3NscnVfYnVmZmVycykKICAqIGNhbiBiZSB2YXJpZWQg d2l0aG91dCBhZmZlY3RpbmcgYW55dGhpbmcgYnV0IHBlcmZvcm1hbmNlLiAgVGhlIG1heGltdW0K ICAqIGFtb3VudCBvZiBub3RpZmljYXRpb24gZGF0YSB0aGF0IGNhbiBiZSBxdWV1ZWQgYXQgb25l IHRpbWUgaXMgZGV0ZXJtaW5lZAogICogYnkgc2xydS5jJ3Mgd3JhcGFyb3VuZCBsaW1pdDsgc2Vl IFFVRVVFX01BWF9QQUdFIGJlbG93LgpAQCAtMjI1LDcgKzIyNSw3IEBAIHR5cGVkZWYgc3RydWN0 IFF1ZXVlUG9zaXRpb24KICAqCiAgKiBSZXNpc3QgdGhlIHRlbXB0YXRpb24gdG8gbWFrZSB0aGlz IHJlYWxseSBsYXJnZS4gIFdoaWxlIHRoYXQgd291bGQgc2F2ZQogICogd29yayBpbiBzb21lIHBs YWNlcywgaXQgd291bGQgYWRkIGNvc3QgaW4gb3RoZXJzLiAgSW4gcGFydGljdWxhciwgdGhpcwot ICogc2hvdWxkIGxpa2VseSBiZSBsZXNzIHRoYW4gTlVNX05PVElGWV9CVUZGRVJTLCB0byBlbnN1 cmUgdGhhdCBiYWNrZW5kcworICogc2hvdWxkIGxpa2VseSBiZSBsZXNzIHRoYW4gbm90aWZ5X3Ns cnVfYnVmZmVycywgdG8gZW5zdXJlIHRoYXQgYmFja2VuZHMKICAqIGNhdGNoIHVwIGJlZm9yZSB0 aGUgcGFnZXMgdGhleSdsbCBuZWVkIHRvIHJlYWQgZmFsbCBvdXQgb2YgU0xSVSBjYWNoZS4KICAq LwogI2RlZmluZSBRVUVVRV9DTEVBTlVQX0RFTEFZIDQKQEAgLTUxNCw3ICs1MTQsNyBAQCBBc3lu Y1NobWVtU2l6ZSh2b2lkKQogCXNpemUgPSBtdWxfc2l6ZShNYXhCYWNrZW5kcyArIDEsIHNpemVv ZihRdWV1ZUJhY2tlbmRTdGF0dXMpKTsKIAlzaXplID0gYWRkX3NpemUoc2l6ZSwgb2Zmc2V0b2Yo QXN5bmNRdWV1ZUNvbnRyb2wsIGJhY2tlbmQpKTsKIAotCXNpemUgPSBhZGRfc2l6ZShzaXplLCBT aW1wbGVMcnVTaG1lbVNpemUoTlVNX05PVElGWV9CVUZGRVJTLCAwKSk7CisJc2l6ZSA9IGFkZF9z aXplKHNpemUsIFNpbXBsZUxydVNobWVtU2l6ZShub3RpZnlfc2xydV9idWZmZXJzLCAwKSk7CiAK IAlyZXR1cm4gc2l6ZTsKIH0KQEAgLTU2Miw3ICs1NjIsNyBAQCBBc3luY1NobWVtSW5pdCh2b2lk KQogCSAqIFNldCB1cCBTTFJVIG1hbmFnZW1lbnQgb2YgdGhlIHBnX25vdGlmeSBkYXRhLgogCSAq LwogCU5vdGlmeUN0bC0+UGFnZVByZWNlZGVzID0gYXN5bmNRdWV1ZVBhZ2VQcmVjZWRlczsKLQlT aW1wbGVMcnVJbml0KE5vdGlmeUN0bCwgIk5vdGlmeSIsIE5VTV9OT1RJRllfQlVGRkVSUywgMCwK KwlTaW1wbGVMcnVJbml0KE5vdGlmeUN0bCwgIk5vdGlmeSIsIG5vdGlmeV9zbHJ1X2J1ZmZlcnMs IDAsCiAJCQkJICBOb3RpZnlTTFJVTG9jaywgInBnX25vdGlmeSIsIExXVFJBTkNIRV9OT1RJRllf QlVGRkVSLAogCQkJCSAgU1lOQ19IQU5ETEVSX05PTkUpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9zdG9yYWdlL2xtZ3IvcHJlZGljYXRlLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3Iv cHJlZGljYXRlLmMKaW5kZXggZDQ5M2FlZWYwZi4uZmFkOGNjNTcyZSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvc3RvcmFnZS9sbWdyL3ByZWRpY2F0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3Jh Z2UvbG1nci9wcmVkaWNhdGUuYwpAQCAtODcyLDcgKzg3Miw3IEBAIFNlcmlhbEluaXQodm9pZCkK IAkgKi8KIAlTZXJpYWxTbHJ1Q3RsLT5QYWdlUHJlY2VkZXMgPSBTZXJpYWxQYWdlUHJlY2VkZXNM b2dpY2FsbHk7CiAJU2ltcGxlTHJ1SW5pdChTZXJpYWxTbHJ1Q3RsLCAiU2VyaWFsIiwKLQkJCQkg IE5VTV9TRVJJQUxfQlVGRkVSUywgMCwgU2VyaWFsU0xSVUxvY2ssICJwZ19zZXJpYWwiLAorCQkJ CSAgc2VyaWFsX3NscnVfYnVmZmVycywgMCwgU2VyaWFsU0xSVUxvY2ssICJwZ19zZXJpYWwiLAog CQkJCSAgTFdUUkFOQ0hFX1NFUklBTF9CVUZGRVIsIFNZTkNfSEFORExFUl9OT05FKTsKICNpZmRl ZiBVU0VfQVNTRVJUX0NIRUNLSU5HCiAJU2VyaWFsUGFnZVByZWNlZGVzTG9naWNhbGx5VW5pdFRl c3RzKCk7CkBAIC0xMzk1LDcgKzEzOTUsNyBAQCBQcmVkaWNhdGVMb2NrU2htZW1TaXplKHZvaWQp CiAKIAkvKiBTaGFyZWQgbWVtb3J5IHN0cnVjdHVyZXMgZm9yIFNMUlUgdHJhY2tpbmcgb2Ygb2xk IGNvbW1pdHRlZCB4aWRzLiAqLwogCXNpemUgPSBhZGRfc2l6ZShzaXplLCBzaXplb2YoU2VyaWFs Q29udHJvbERhdGEpKTsKLQlzaXplID0gYWRkX3NpemUoc2l6ZSwgU2ltcGxlTHJ1U2htZW1TaXpl KE5VTV9TRVJJQUxfQlVGRkVSUywgMCkpOworCXNpemUgPSBhZGRfc2l6ZShzaXplLCBTaW1wbGVM cnVTaG1lbVNpemUoc2VyaWFsX3NscnVfYnVmZmVycywgMCkpOwogCiAJcmV0dXJuIHNpemU7CiB9 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9pbml0L2dsb2JhbHMuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jCmluZGV4IDczZTBhNjcyYWUuLmYxNjNjYTE3ZTkgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jCkBAIC0xNDgsMyArMTQ4LDExIEBAIGludDY0CQlWYWN1 dW1QYWdlRGlydHkgPSAwOwogCiBpbnQJCQlWYWN1dW1Db3N0QmFsYW5jZSA9IDA7CS8qIHdvcmtp bmcgc3RhdGUgZm9yIHZhY3V1bSAqLwogYm9vbAkJVmFjdXVtQ29zdEFjdGl2ZSA9IGZhbHNlOwor CitpbnQJCQltdWx0aXhhY3Rfb2Zmc2V0c19zbHJ1X2J1ZmZlcnMgPSA4OworaW50CQkJbXVsdGl4 YWN0X21lbWJlcnNfc2xydV9idWZmZXJzID0gMTY7CitpbnQJCQlzdWJ0cmFuc19zbHJ1X2J1ZmZl cnMgPSAzMjsKK2ludAkJCW5vdGlmeV9zbHJ1X2J1ZmZlcnMgPSA4OworaW50CQkJc2VyaWFsX3Ns cnVfYnVmZmVycyA9IDE2OworaW50CQkJY2xvZ19zbHJ1X2J1ZmZlcnMgPSAwOworaW50CQkJY29t bWl0X3RzX3NscnVfYnVmZmVycyA9IDA7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9t aXNjL2d1Yy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYwppbmRleCAwYzVkYzRkM2U4 Li5iNjVhNGFlOWNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMKQEAgLTIzMDUsNiArMjMwNSw4MyBAQCBz dGF0aWMgc3RydWN0IGNvbmZpZ19pbnQgQ29uZmlndXJlTmFtZXNJbnRbXSA9CiAJCU5VTEwsIE5V TEwsIE5VTEwKIAl9LAogCisJeworCQl7Im11bHRpeGFjdF9vZmZzZXRzX3NscnVfYnVmZmVycyIs IFBHQ19QT1NUTUFTVEVSLCBSRVNPVVJDRVNfTUVNLAorCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRo ZSBudW1iZXIgb2Ygc2hhcmVkIG1lbW9yeSBidWZmZXJzIHVzZWQgZm9yIE11bHRpWGFjdCBvZmZz ZXRzIFNMUlUuIiksCisJCQlOVUxMLAorCQkJR1VDX1VOSVRfQkxPQ0tTCisJCX0sCisJCSZtdWx0 aXhhY3Rfb2Zmc2V0c19zbHJ1X2J1ZmZlcnMsCisJCTgsIDIsIElOVF9NQVggLyAyLAorCQlOVUxM LCBOVUxMLCBOVUxMCisJfSwKKworCXsKKwkJeyJtdWx0aXhhY3RfbWVtYmVyc19zbHJ1X2J1ZmZl cnMiLCBQR0NfUE9TVE1BU1RFUiwgUkVTT1VSQ0VTX01FTSwKKwkJCWdldHRleHRfbm9vcCgiU2V0 cyB0aGUgbnVtYmVyIG9mIHNoYXJlZCBtZW1vcnkgYnVmZmVycyB1c2VkIGZvciBNdWx0aVhhY3Qg bWVtYmVycyBTTFJVLiIpLAorCQkJTlVMTCwKKwkJCUdVQ19VTklUX0JMT0NLUworCQl9LAorCQkm bXVsdGl4YWN0X21lbWJlcnNfc2xydV9idWZmZXJzLAorCQkxNiwgMiwgSU5UX01BWCAvIDIsCisJ CU5VTEwsIE5VTEwsIE5VTEwKKwl9LAorCisJeworCQl7InN1YnRyYW5zX3NscnVfYnVmZmVycyIs IFBHQ19QT1NUTUFTVEVSLCBSRVNPVVJDRVNfTUVNLAorCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRo ZSBudW1iZXIgb2Ygc2hhcmVkIG1lbW9yeSBidWZmZXJzIHVzZWQgZm9yIHN1YnN0cmFuc2FjdGlv bnMgU0xSVS4iKSwKKwkJCU5VTEwsCisJCQlHVUNfVU5JVF9CTE9DS1MKKwkJfSwKKwkJJnN1YnRy YW5zX3NscnVfYnVmZmVycywKKwkJMzIsIDIsIElOVF9NQVggLyAyLAorCQlOVUxMLCBOVUxMLCBO VUxMCisJfSwKKworCXsKKwkJeyJub3RpZnlfc2xydV9idWZmZXJzIiwgUEdDX1BPU1RNQVNURVIs IFJFU09VUkNFU19NRU0sCisJCQlnZXR0ZXh0X25vb3AoIlNldHMgdGhlIG51bWJlciBvZiBzaGFy ZWQgbWVtb3J5IGJ1ZmZlcnMgdXNlZCBmb3IgYXN5bmNyb25vdXMgbm90aWZpY2F0aW9ucyBTTFJV LiIpLAorCQkJTlVMTCwKKwkJCUdVQ19VTklUX0JMT0NLUworCQl9LAorCQkmbm90aWZ5X3NscnVf YnVmZmVycywKKwkJOCwgMiwgSU5UX01BWCAvIDIsCisJCU5VTEwsIE5VTEwsIE5VTEwKKwl9LAor CisJeworCQl7InNlcmlhbF9zbHJ1X2J1ZmZlcnMiLCBQR0NfUE9TVE1BU1RFUiwgUkVTT1VSQ0VT X01FTSwKKwkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgbnVtYmVyIG9mIHNoYXJlZCBtZW1vcnkg YnVmZmVycyB1c2VkIGZvciBwcmVkaWNhdGUgbG9ja3MgU0xSVS4iKSwKKwkJCU5VTEwsCisJCQlH VUNfVU5JVF9CTE9DS1MKKwkJfSwKKwkJJnNlcmlhbF9zbHJ1X2J1ZmZlcnMsCisJCTE2LCAyLCBJ TlRfTUFYIC8gMiwKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCisKKwl7CisJCXsiY2xvZ19zbHJ1 X2J1ZmZlcnMiLCBQR0NfUE9TVE1BU1RFUiwgUkVTT1VSQ0VTX01FTSwKKwkJCWdldHRleHRfbm9v cCgiU2V0cyB0aGUgbnVtYmVyIG9mIHNoYXJlZCBtZW1vcnkgYnVmZmVycyB1c2VkIGZvciBjb21t aXQgbG9nIFNMUlUuIiksCisJCQlOVUxMLAorCQkJR1VDX1VOSVRfQkxPQ0tTCisJCX0sCisJCSZz ZXJpYWxfc2xydV9idWZmZXJzLAorCQkwLCAwLCBJTlRfTUFYIC8gMiwKKwkJTlVMTCwgTlVMTCwg TlVMTAorCX0sCisKKwl7CisJCXsiY29tbWl0X3RzX3NscnVfYnVmZmVycyIsIFBHQ19QT1NUTUFT VEVSLCBSRVNPVVJDRVNfTUVNLAorCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRoZSBudW1iZXIgb2Yg c2hhcmVkIG1lbW9yeSBidWZmZXJzIHVzZWQgZm9yIGNvbW1pdCB0aW1lc3RhbXBzIFNMUlUuIiks CisJCQlOVUxMLAorCQkJR1VDX1VOSVRfQkxPQ0tTCisJCX0sCisJCSZjb21taXRfdHNfc2xydV9i dWZmZXJzLAorCQkwLCAwLCBJTlRfTUFYIC8gMiwKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCisK IAl7CiAJCXsidGVtcF9idWZmZXJzIiwgUEdDX1VTRVJTRVQsIFJFU09VUkNFU19NRU0sCiAJCQln ZXR0ZXh0X25vb3AoIlNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHRlbXBvcmFyeSBidWZmZXJz IHVzZWQgYnkgZWFjaCBzZXNzaW9uLiIpLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv bWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0 Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IGIyMzRhNmJmZTYuLjMwOGZkNTY1ZDMgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQorKysgYi9z cmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKQEAgLTE5MCw2ICsx OTAsMjIgQEAKIAkJCQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCiAjYmFja2VuZF9mbHVz aF9hZnRlciA9IDAJCSMgbWVhc3VyZWQgaW4gcGFnZXMsIDAgZGlzYWJsZXMKIAorIyAtIFNMUlUg QnVmZmVycyAtCisKKyNtdWx0aXhhY3Rfb2Zmc2V0c19zbHJ1X2J1ZmZlcnMgPSA4CSMgbWVtb3J5 IHVzZWQgZm9yIE11bHRpWGFjdCBvZmZzZXRzCisJCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0 YXJ0KQorI211bHRpeGFjdF9tZW1iZXJzX3NscnVfYnVmZmVycyA9IDE2CSMgbWVtb3J5IHVzZWQg Zm9yIE11bHRpWGFjdCBtZW1iZXJzCisJCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQor I3N1YnRyYW5zX3NscnVfYnVmZmVycyA9IDMyCQkJIyBtZW1vcnkgdXNlZCBmb3Igc3VidHJhbnNh Y3Rpb25zCisJCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQorI25vdGlmeV9zbHJ1X2J1 ZmZlcnMgPSA4CQkJIyBtZW1vcnkgdXNlZCBmb3IgYXN5bmNocm9ub3VzIG5vdGlmaWNhdGlvbnMK KwkJCQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCisjc2VyaWFsX3NscnVfYnVmZmVycyA9 IDE2CQkJIyBtZW1vcnkgdXNlZCBmb3IgcHJlZGljYXRlIGxvY2tzCisJCQkJCSMgKGNoYW5nZSBy ZXF1aXJlcyByZXN0YXJ0KQorI2Nsb2dfc2xydV9idWZmZXJzID0gMAkJCQkjIG1lbW9yeSB1c2Vk IGZvciBDTE9HCisJCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQorI2NvbW1pdF90c19z bHJ1X2J1ZmZlcnMgPSAwCQkJIyBtZW1vcnkgdXNlZCBmb3IgY29tbWl0IHRpbWVzdGFtcHMKKwkJ CQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCiAKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICMgV1JJVEUtQUhFQUQgTE9HCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvbXVsdGl4 YWN0LmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvbXVsdGl4YWN0LmgKaW5kZXggNGJiYjAzNWVhZS4u OTdjMGE0NjM3NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL211bHRpeGFjdC5oCisr KyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9tdWx0aXhhY3QuaApAQCAtMjksMTAgKzI5LDYgQEAKIAog I2RlZmluZSBNYXhNdWx0aVhhY3RPZmZzZXQJKChNdWx0aVhhY3RPZmZzZXQpIDB4RkZGRkZGRkYp CiAKLS8qIE51bWJlciBvZiBTTFJVIGJ1ZmZlcnMgdG8gdXNlIGZvciBtdWx0aXhhY3QgKi8KLSNk ZWZpbmUgTlVNX01VTFRJWEFDVE9GRlNFVF9CVUZGRVJTCQk4Ci0jZGVmaW5lIE5VTV9NVUxUSVhB Q1RNRU1CRVJfQlVGRkVSUwkJMTYKLQogLyoKICAqIFBvc3NpYmxlIG11bHRpeGFjdCBsb2NrIG1v ZGVzICgic3RhdHVzIikuICBUaGUgZmlyc3QgZm91ciBtb2RlcyBhcmUgZm9yCiAgKiB0dXBsZSBs b2NrcyAoRk9SIEtFWSBTSEFSRSwgRk9SIFNIQVJFLCBGT1IgTk8gS0VZIFVQREFURSwgRk9SIFVQ REFURSk7IHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3N1YnRyYW5zLmggYi9z cmMvaW5jbHVkZS9hY2Nlc3Mvc3VidHJhbnMuaAppbmRleCBkMGFiNDRhZTgyLi5jYTA5OTkwNTZl IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3VidHJhbnMuaAorKysgYi9zcmMvaW5j bHVkZS9hY2Nlc3Mvc3VidHJhbnMuaApAQCAtMTEsOSArMTEsNiBAQAogI2lmbmRlZiBTVUJUUkFO U19ICiAjZGVmaW5lIFNVQlRSQU5TX0gKIAotLyogTnVtYmVyIG9mIFNMUlUgYnVmZmVycyB0byB1 c2UgZm9yIHN1YnRyYW5zICovCi0jZGVmaW5lIE5VTV9TVUJUUkFOU19CVUZGRVJTCTMyCi0KIGV4 dGVybiB2b2lkIFN1YlRyYW5zU2V0UGFyZW50KFRyYW5zYWN0aW9uSWQgeGlkLCBUcmFuc2FjdGlv bklkIHBhcmVudCk7CiBleHRlcm4gVHJhbnNhY3Rpb25JZCBTdWJUcmFuc0dldFBhcmVudChUcmFu c2FjdGlvbklkIHhpZCk7CiBleHRlcm4gVHJhbnNhY3Rpb25JZCBTdWJUcmFuc0dldFRvcG1vc3RU cmFuc2FjdGlvbihUcmFuc2FjdGlvbklkIHhpZCk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j b21tYW5kcy9hc3luYy5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvYXN5bmMuaAppbmRleCA5MjE3 ZjY2YjkxLi5mYTgzMWUzNzIxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9hc3lu Yy5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2FzeW5jLmgKQEAgLTE1LDExICsxNSw2IEBA CiAKICNpbmNsdWRlIDxzaWduYWwuaD4KIAotLyoKLSAqIFRoZSBudW1iZXIgb2YgU0xSVSBwYWdl IGJ1ZmZlcnMgd2UgdXNlIGZvciB0aGUgbm90aWZpY2F0aW9uIHF1ZXVlLgotICovCi0jZGVmaW5l IE5VTV9OT1RJRllfQlVGRkVSUwk4Ci0KIGV4dGVybiBib29sIFRyYWNlX25vdGlmeTsKIGV4dGVy biB2b2xhdGlsZSBzaWdfYXRvbWljX3Qgbm90aWZ5SW50ZXJydXB0UGVuZGluZzsKIApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvbWlzY2FkbWluLmggYi9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaApp bmRleCAwMTM4NTBhYzI4Li4zZDlmNTg1ZmI5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9taXNj YWRtaW4uaAorKysgYi9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaApAQCAtMTYyLDYgKzE2MiwxNCBA QCBleHRlcm4gUEdETExJTVBPUlQgaW50IE1heEJhY2tlbmRzOwogZXh0ZXJuIFBHRExMSU1QT1JU IGludCBNYXhDb25uZWN0aW9uczsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgbWF4X3dvcmtlcl9w cm9jZXNzZXM7CiBleHRlcm4gUEdETExJTVBPUlQgaW50IG1heF9wYXJhbGxlbF93b3JrZXJzOwor ZXh0ZXJuIFBHRExMSU1QT1JUIGludCBtdWx0aXhhY3Rfb2Zmc2V0c19zbHJ1X2J1ZmZlcnM7Citl eHRlcm4gUEdETExJTVBPUlQgaW50IG11bHRpeGFjdF9tZW1iZXJzX3NscnVfYnVmZmVyczsKK2V4 dGVybiBQR0RMTElNUE9SVCBpbnQgbXVsdGl4YWN0X21lbWJlcnNfc2xydV9idWZmZXJzOworZXh0 ZXJuIFBHRExMSU1QT1JUIGludCBzdWJ0cmFuc19zbHJ1X2J1ZmZlcnM7CitleHRlcm4gUEdETExJ TVBPUlQgaW50IG5vdGlmeV9zbHJ1X2J1ZmZlcnM7CitleHRlcm4gUEdETExJTVBPUlQgaW50IHNl cmlhbF9zbHJ1X2J1ZmZlcnM7CitleHRlcm4gUEdETExJTVBPUlQgaW50IGNsb2dfc2xydV9idWZm ZXJzOworZXh0ZXJuIFBHRExMSU1QT1JUIGludCBjb21taXRfdHNfc2xydV9idWZmZXJzOwogCiBl eHRlcm4gUEdETExJTVBPUlQgaW50IE15UHJvY1BpZDsKIGV4dGVybiBQR0RMTElNUE9SVCBwZ190 aW1lX3QgTXlTdGFydFRpbWU7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3ByZWRp Y2F0ZS5oIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcmVkaWNhdGUuaAppbmRleCAxNTJiNjk4NjEx Li5jNzI3NzliZDg4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3ByZWRpY2F0ZS5o CisrKyBiL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJlZGljYXRlLmgKQEAgLTI2LDEwICsyNiw2IEBA IGV4dGVybiBpbnQJbWF4X3ByZWRpY2F0ZV9sb2Nrc19wZXJfeGFjdDsKIGV4dGVybiBpbnQJbWF4 X3ByZWRpY2F0ZV9sb2Nrc19wZXJfcmVsYXRpb247CiBleHRlcm4gaW50CW1heF9wcmVkaWNhdGVf bG9ja3NfcGVyX3BhZ2U7CiAKLQotLyogTnVtYmVyIG9mIFNMUlUgYnVmZmVycyB0byB1c2UgZm9y IFNlcmlhbCBTTFJVICovCi0jZGVmaW5lIE5VTV9TRVJJQUxfQlVGRkVSUwkJMTYKLQogLyoKICAq IEEgaGFuZGxlIHVzZWQgZm9yIHNoYXJpbmcgU0VSSUFMSVpBQkxFWEFDVCBvYmplY3RzIGJldHdl ZW4gdGhlIHBhcnRpY2lwYW50cwogICogaW4gYSBwYXJhbGxlbCBxdWVyeS4KLS0gCjIuMzAuMQoK --00000000000075bd5305be4f0906 Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0002-Add-buffer-mapping-table-for-SLRUs.patch" Content-Disposition: attachment; filename="v10-0002-Add-buffer-mapping-table-for-SLRUs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kmnyla9b1 RnJvbSA2OTJkMDMxNjdmNDEyNGU2ZGFhYmRiOGQ0YTcyZmYwYjQ5NGVmZTk2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUaG9tYXMgTXVucm8gPHRob21hcy5tdW5yb0BnbWFpbC5jb20+ CkRhdGU6IFRodSwgMjUgTWFyIDIwMjEgMTA6MTE6MzEgKzEzMDAKU3ViamVjdDogW1BBVENIIHYx MCAyLzJdIEFkZCBidWZmZXIgbWFwcGluZyB0YWJsZSBmb3IgU0xSVXMuCgotLS0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL3NscnUuYyB8IDg3ICsrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9zbHJ1LmggICAgICAgICB8ICAyICsKIDIgZmlsZXMg Y2hhbmdlZCwgODMgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zbHJ1LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJh bnNhbS9zbHJ1LmMKaW5kZXggODIxNDlhZDc4Mi4uMmQ2ZTg0MjY2ZSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc2xydS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL3NscnUuYwpAQCAtNTgsNiArNTgsOCBAQAogI2luY2x1ZGUgInBnc3RhdC5oIgogI2lu Y2x1ZGUgInN0b3JhZ2UvZmQuaCIKICNpbmNsdWRlICJzdG9yYWdlL3NobWVtLmgiCisjaW5jbHVk ZSAidXRpbHMvZHluYWhhc2guaCIKKyNpbmNsdWRlICJ1dGlscy9oc2VhcmNoLmgiCiAKICNkZWZp bmUgU2xydUZpbGVOYW1lKGN0bCwgcGF0aCwgc2VnKSBcCiAJc25wcmludGYocGF0aCwgTUFYUEdQ QVRILCAiJXMvJTA0WCIsIChjdGwpLT5EaXIsIHNlZykKQEAgLTc5LDYgKzgxLDEyIEBAIHR5cGVk ZWYgc3RydWN0IFNscnVXcml0ZUFsbERhdGEKIAogdHlwZWRlZiBzdHJ1Y3QgU2xydVdyaXRlQWxs RGF0YSAqU2xydVdyaXRlQWxsOwogCit0eXBlZGVmIHN0cnVjdCBTbHJ1TWFwcGluZ1RhYmxlRW50 cnkKK3sKKwlpbnQJCQlwYWdlbm87CisJaW50CQkJc2xvdG5vOworfSBTbHJ1TWFwcGluZ1RhYmxl RW50cnk7CisKIC8qCiAgKiBQb3B1bGF0ZSBhIGZpbGUgdGFnIGRlc2NyaWJpbmcgYSBzZWdtZW50 IGZpbGUuICBXZSBvbmx5IHVzZSB0aGUgc2VnbWVudAogICogbnVtYmVyLCBzaW5jZSB3ZSBjYW4g ZGVyaXZlIGV2ZXJ5dGhpbmcgZWxzZSB3ZSBuZWVkIGJ5IGhhdmluZyBzZXBhcmF0ZQpAQCAtMTQ2 LDYgKzE1NCw5IEBAIHN0YXRpYyBpbnQJU2xydVNlbGVjdExSVVBhZ2UoU2xydUN0bCBjdGwsIGlu dCBwYWdlbm8pOwogc3RhdGljIGJvb2wgU2xydVNjYW5EaXJDYkRlbGV0ZUN1dG9mZihTbHJ1Q3Rs IGN0bCwgY2hhciAqZmlsZW5hbWUsCiAJCQkJCQkJCQkgIGludCBzZWdwYWdlLCB2b2lkICpkYXRh KTsKIHN0YXRpYyB2b2lkIFNscnVJbnRlcm5hbERlbGV0ZVNlZ21lbnQoU2xydUN0bCBjdGwsIGlu dCBzZWdubyk7CitzdGF0aWMgdm9pZAlTbHJ1TWFwcGluZ0FkZChTbHJ1Q3RsIGN0bCwgaW50IHBh Z2VubywgaW50IHNsb3Rubyk7CitzdGF0aWMgdm9pZAlTbHJ1TWFwcGluZ1JlbW92ZShTbHJ1Q3Rs IGN0bCwgaW50IHBhZ2Vubyk7CitzdGF0aWMgaW50CVNscnVNYXBwaW5nRmluZChTbHJ1Q3RsIGN0 bCwgaW50IHBhZ2Vubyk7CiAKIC8qCiAgKiBJbml0aWFsaXphdGlvbiBvZiBzaGFyZWQgbWVtb3J5 CkBAIC0xNjgsNyArMTc5LDggQEAgU2ltcGxlTHJ1U2htZW1TaXplKGludCBuc2xvdHMsIGludCBu bHNucykKIAlpZiAobmxzbnMgPiAwKQogCQlzeiArPSBNQVhBTElHTihuc2xvdHMgKiBubHNucyAq IHNpemVvZihYTG9nUmVjUHRyKSk7CS8qIGdyb3VwX2xzbltdICovCiAKLQlyZXR1cm4gQlVGRkVS QUxJR04oc3opICsgQkxDS1NaICogbnNsb3RzOworCXJldHVybiBCVUZGRVJBTElHTihzeikgKyBC TENLU1ogKiBuc2xvdHMgKworCQloYXNoX2VzdGltYXRlX3NpemUobnNsb3RzLCBzaXplb2YoU2xy dU1hcHBpbmdUYWJsZUVudHJ5KSk7CiB9CiAKIC8qCkBAIC0xODcsNiArMTk5LDkgQEAgU2ltcGxl THJ1SW5pdChTbHJ1Q3RsIGN0bCwgY29uc3QgY2hhciAqbmFtZSwgaW50IG5zbG90cywgaW50IG5s c25zLAogCQkJICBMV0xvY2sgKmN0bGxvY2ssIGNvbnN0IGNoYXIgKnN1YmRpciwgaW50IHRyYW5j aGVfaWQsCiAJCQkgIFN5bmNSZXF1ZXN0SGFuZGxlciBzeW5jX2hhbmRsZXIpCiB7CisJY2hhcgkJ bWFwcGluZ190YWJsZV9uYW1lW1NITUVNX0lOREVYX0tFWVNJWkVdOworCUhBU0hDVEwJCW1hcHBp bmdfdGFibGVfaW5mbzsKKwlIVEFCCSAgICptYXBwaW5nX3RhYmxlOwogCVNscnVTaGFyZWQJc2hh cmVkOwogCWJvb2wJCWZvdW5kOwogCkBAIC0yNTgsMTEgKzI3MywyMSBAQCBTaW1wbGVMcnVJbml0 KFNscnVDdGwgY3RsLCBjb25zdCBjaGFyICpuYW1lLCBpbnQgbnNsb3RzLCBpbnQgbmxzbnMsCiAJ ZWxzZQogCQlBc3NlcnQoZm91bmQpOwogCisJLyogQ3JlYXRlIG9yIGZpbmQgdGhlIGJ1ZmZlciBt YXBwaW5nIHRhYmxlLiAqLworCW1lbXNldCgmbWFwcGluZ190YWJsZV9pbmZvLCAwLCBzaXplb2Yo bWFwcGluZ190YWJsZV9pbmZvKSk7CisJbWFwcGluZ190YWJsZV9pbmZvLmtleXNpemUgPSBzaXpl b2YoaW50KTsKKwltYXBwaW5nX3RhYmxlX2luZm8uZW50cnlzaXplID0gc2l6ZW9mKFNscnVNYXBw aW5nVGFibGVFbnRyeSk7CisJc25wcmludGYobWFwcGluZ190YWJsZV9uYW1lLCBzaXplb2YobWFw cGluZ190YWJsZV9uYW1lKSwKKwkJCSAiJXMgTWFwcGluZyBUYWJsZSIsIG5hbWUpOworCW1hcHBp bmdfdGFibGUgPSBTaG1lbUluaXRIYXNoKG1hcHBpbmdfdGFibGVfbmFtZSwgbnNsb3RzLCBuc2xv dHMsCisJCQkJCQkJCSAgJm1hcHBpbmdfdGFibGVfaW5mbywgSEFTSF9FTEVNIHwgSEFTSF9CTE9C Uyk7CisKIAkvKgogCSAqIEluaXRpYWxpemUgdGhlIHVuc2hhcmVkIGNvbnRyb2wgc3RydWN0LCBp bmNsdWRpbmcgZGlyZWN0b3J5IHBhdGguIFdlCiAJICogYXNzdW1lIGNhbGxlciBzZXQgUGFnZVBy ZWNlZGVzLgogCSAqLwogCWN0bC0+c2hhcmVkID0gc2hhcmVkOworCWN0bC0+bWFwcGluZ190YWJs ZSA9IG1hcHBpbmdfdGFibGU7CiAJY3RsLT5zeW5jX2hhbmRsZXIgPSBzeW5jX2hhbmRsZXI7CiAJ c3RybGNweShjdGwtPkRpciwgc3ViZGlyLCBzaXplb2YoY3RsLT5EaXIpKTsKIH0KQEAgLTI4OSw2 ICszMTQsOSBAQCBTaW1wbGVMcnVaZXJvUGFnZShTbHJ1Q3RsIGN0bCwgaW50IHBhZ2VubykKIAkJ ICAgc2hhcmVkLT5wYWdlX251bWJlcltzbG90bm9dID09IHBhZ2Vubyk7CiAKIAkvKiBNYXJrIHRo ZSBzbG90IGFzIGNvbnRhaW5pbmcgdGhpcyBwYWdlICovCisJaWYgKHNoYXJlZC0+cGFnZV9zdGF0 dXNbc2xvdG5vXSA9PSBTTFJVX1BBR0VfVkFMSUQpCisJCVNscnVNYXBwaW5nUmVtb3ZlKGN0bCwg c2hhcmVkLT5wYWdlX251bWJlcltzbG90bm9dKTsKKwlTbHJ1TWFwcGluZ0FkZChjdGwsIHBhZ2Vu bywgc2xvdG5vKTsKIAlzaGFyZWQtPnBhZ2VfbnVtYmVyW3Nsb3Rub10gPSBwYWdlbm87CiAJc2hh cmVkLT5wYWdlX3N0YXR1c1tzbG90bm9dID0gU0xSVV9QQUdFX1ZBTElEOwogCXNoYXJlZC0+cGFn ZV9kaXJ0eVtzbG90bm9dID0gdHJ1ZTsKQEAgLTM2Miw3ICszOTAsMTAgQEAgU2ltcGxlTHJ1V2Fp dElPKFNscnVDdGwgY3RsLCBpbnQgc2xvdG5vKQogCQl7CiAJCQkvKiBpbmRlZWQsIHRoZSBJL08g bXVzdCBoYXZlIGZhaWxlZCAqLwogCQkJaWYgKHNoYXJlZC0+cGFnZV9zdGF0dXNbc2xvdG5vXSA9 PSBTTFJVX1BBR0VfUkVBRF9JTl9QUk9HUkVTUykKKwkJCXsKKwkJCQlTbHJ1TWFwcGluZ1JlbW92 ZShjdGwsIHNoYXJlZC0+cGFnZV9udW1iZXJbc2xvdG5vXSk7CiAJCQkJc2hhcmVkLT5wYWdlX3N0 YXR1c1tzbG90bm9dID0gU0xSVV9QQUdFX0VNUFRZOworCQkJfQogCQkJZWxzZQkJCQkvKiB3cml0 ZV9pbl9wcm9ncmVzcyAqLwogCQkJewogCQkJCXNoYXJlZC0+cGFnZV9zdGF0dXNbc2xvdG5vXSA9 IFNMUlVfUEFHRV9WQUxJRDsKQEAgLTQzNiw2ICs0NjcsNyBAQCBTaW1wbGVMcnVSZWFkUGFnZShT bHJ1Q3RsIGN0bCwgaW50IHBhZ2VubywgYm9vbCB3cml0ZV9vaywKIAkJCQkhc2hhcmVkLT5wYWdl X2RpcnR5W3Nsb3Rub10pKTsKIAogCQkvKiBNYXJrIHRoZSBzbG90IHJlYWQtYnVzeSAqLworCQlT bHJ1TWFwcGluZ0FkZChjdGwsIHBhZ2Vubywgc2xvdG5vKTsKIAkJc2hhcmVkLT5wYWdlX251bWJl cltzbG90bm9dID0gcGFnZW5vOwogCQlzaGFyZWQtPnBhZ2Vfc3RhdHVzW3Nsb3Rub10gPSBTTFJV X1BBR0VfUkVBRF9JTl9QUk9HUkVTUzsKIAkJc2hhcmVkLT5wYWdlX2RpcnR5W3Nsb3Rub10gPSBm YWxzZTsKQEAgLTQ1OSw3ICs0OTEsMTMgQEAgU2ltcGxlTHJ1UmVhZFBhZ2UoU2xydUN0bCBjdGws IGludCBwYWdlbm8sIGJvb2wgd3JpdGVfb2ssCiAJCQkgICBzaGFyZWQtPnBhZ2Vfc3RhdHVzW3Ns b3Rub10gPT0gU0xSVV9QQUdFX1JFQURfSU5fUFJPR1JFU1MgJiYKIAkJCSAgICFzaGFyZWQtPnBh Z2VfZGlydHlbc2xvdG5vXSk7CiAKLQkJc2hhcmVkLT5wYWdlX3N0YXR1c1tzbG90bm9dID0gb2sg PyBTTFJVX1BBR0VfVkFMSUQgOiBTTFJVX1BBR0VfRU1QVFk7CisJCWlmIChvaykKKwkJCXNoYXJl ZC0+cGFnZV9zdGF0dXNbc2xvdG5vXSA9IFNMUlVfUEFHRV9WQUxJRDsKKwkJZWxzZQorCQl7CisJ CQlTbHJ1TWFwcGluZ1JlbW92ZShjdGwsIHBhZ2Vubyk7CisJCQlzaGFyZWQtPnBhZ2Vfc3RhdHVz W3Nsb3Rub10gPSAgU0xSVV9QQUdFX0VNUFRZOworCQl9CiAKIAkJTFdMb2NrUmVsZWFzZSgmc2hh cmVkLT5idWZmZXJfbG9ja3Nbc2xvdG5vXS5sb2NrKTsKIApAQCAtMTAyOSwxMSArMTA2NywxMiBA QCBTbHJ1U2VsZWN0TFJVUGFnZShTbHJ1Q3RsIGN0bCwgaW50IHBhZ2VubykKIAkJaW50CQkJYmVz dF9pbnZhbGlkX3BhZ2VfbnVtYmVyID0gMDsJLyoga2VlcCBjb21waWxlciBxdWlldCAqLwogCiAJ CS8qIFNlZSBpZiBwYWdlIGFscmVhZHkgaGFzIGEgYnVmZmVyIGFzc2lnbmVkICovCi0JCWZvciAo c2xvdG5vID0gMDsgc2xvdG5vIDwgc2hhcmVkLT5udW1fc2xvdHM7IHNsb3RubysrKQorCQlzbG90 bm8gPSBTbHJ1TWFwcGluZ0ZpbmQoY3RsLCBwYWdlbm8pOworCQlpZiAoc2xvdG5vID49IDApCiAJ CXsKLQkJCWlmIChzaGFyZWQtPnBhZ2VfbnVtYmVyW3Nsb3Rub10gPT0gcGFnZW5vICYmCi0JCQkJ c2hhcmVkLT5wYWdlX3N0YXR1c1tzbG90bm9dICE9IFNMUlVfUEFHRV9FTVBUWSkKLQkJCQlyZXR1 cm4gc2xvdG5vOworCQkJQXNzZXJ0KHNoYXJlZC0+cGFnZV9udW1iZXJbc2xvdG5vXSA9PSBwYWdl bm8pOworCQkJQXNzZXJ0KHNoYXJlZC0+cGFnZV9zdGF0dXNbc2xvdG5vXSAhPSBTTFJVX1BBR0Vf RU1QVFkpOworCQkJcmV0dXJuIHNsb3RubzsKIAkJfQogCiAJCS8qCkBAIC0xMjY2LDYgKzEzMDUs NyBAQCByZXN0YXJ0OjsKIAkJaWYgKHNoYXJlZC0+cGFnZV9zdGF0dXNbc2xvdG5vXSA9PSBTTFJV X1BBR0VfVkFMSUQgJiYKIAkJCSFzaGFyZWQtPnBhZ2VfZGlydHlbc2xvdG5vXSkKIAkJeworCQkJ U2xydU1hcHBpbmdSZW1vdmUoY3RsLCBzaGFyZWQtPnBhZ2VfbnVtYmVyW3Nsb3Rub10pOwogCQkJ c2hhcmVkLT5wYWdlX3N0YXR1c1tzbG90bm9dID0gU0xSVV9QQUdFX0VNUFRZOwogCQkJY29udGlu dWU7CiAJCX0KQEAgLTEzNDgsNiArMTM4OCw3IEBAIHJlc3RhcnQ6CiAJCWlmIChzaGFyZWQtPnBh Z2Vfc3RhdHVzW3Nsb3Rub10gPT0gU0xSVV9QQUdFX1ZBTElEICYmCiAJCQkhc2hhcmVkLT5wYWdl X2RpcnR5W3Nsb3Rub10pCiAJCXsKKwkJCVNscnVNYXBwaW5nUmVtb3ZlKGN0bCwgc2hhcmVkLT5w YWdlX251bWJlcltzbG90bm9dKTsKIAkJCXNoYXJlZC0+cGFnZV9zdGF0dXNbc2xvdG5vXSA9IFNM UlVfUEFHRV9FTVBUWTsKIAkJCWNvbnRpbnVlOwogCQl9CkBAIC0xNjA5LDMgKzE2NTAsMzcgQEAg U2xydVN5bmNGaWxlVGFnKFNscnVDdGwgY3RsLCBjb25zdCBGaWxlVGFnICpmdGFnLCBjaGFyICpw YXRoKQogCWVycm5vID0gc2F2ZV9lcnJubzsKIAlyZXR1cm4gcmVzdWx0OwogfQorCitzdGF0aWMg aW50CitTbHJ1TWFwcGluZ0ZpbmQoU2xydUN0bCBjdGwsIGludCBwYWdlbm8pCit7CisJU2xydU1h cHBpbmdUYWJsZUVudHJ5ICptYXBwaW5nOworCisJbWFwcGluZyA9IGhhc2hfc2VhcmNoKGN0bC0+ bWFwcGluZ190YWJsZSwgJnBhZ2VubywgSEFTSF9GSU5ELCBOVUxMKTsKKwlpZiAobWFwcGluZykK KwkJcmV0dXJuIG1hcHBpbmctPnBhZ2VubzsKKworCXJldHVybiAtMTsKK30KKworc3RhdGljIHZv aWQKK1NscnVNYXBwaW5nQWRkKFNscnVDdGwgY3RsLCBpbnQgcGFnZW5vLCBpbnQgc2xvdG5vKQor eworCVNscnVNYXBwaW5nVGFibGVFbnRyeSAqbWFwcGluZzsKKwlib29sCQlmb3VuZCBQR19VU0VE X0ZPUl9BU1NFUlRTX09OTFk7CisKKwltYXBwaW5nID0gaGFzaF9zZWFyY2goY3RsLT5tYXBwaW5n X3RhYmxlLCAmcGFnZW5vLCBIQVNIX0VOVEVSLCAmZm91bmQpOworCW1hcHBpbmctPnNsb3RubyA9 IHNsb3RubzsKKworCUFzc2VydCghZm91bmQpOworfQorCitzdGF0aWMgdm9pZAorU2xydU1hcHBp bmdSZW1vdmUoU2xydUN0bCBjdGwsIGludCBwYWdlbm8pCit7CisJYm9vbAkJZm91bmQgUEdfVVNF RF9GT1JfQVNTRVJUU19PTkxZOworCisJaGFzaF9zZWFyY2goY3RsLT5tYXBwaW5nX3RhYmxlLCAm cGFnZW5vLCBIQVNIX1JFTU9WRSwgJmZvdW5kKTsKKworCUFzc2VydChmb3VuZCk7Cit9CmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3Mvc2xydS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3Ns cnUuaAppbmRleCBkZDUyZThjZWM3Li44YWEzZWZjMGVlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9hY2Nlc3Mvc2xydS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9zbHJ1LmgKQEAgLTE2LDYg KzE2LDcgQEAKICNpbmNsdWRlICJhY2Nlc3MveGxvZ2RlZnMuaCIKICNpbmNsdWRlICJzdG9yYWdl L2x3bG9jay5oIgogI2luY2x1ZGUgInN0b3JhZ2Uvc3luYy5oIgorI2luY2x1ZGUgInV0aWxzL2hz ZWFyY2guaCIKIAogCiAvKgpAQCAtMTEwLDYgKzExMSw3IEBAIHR5cGVkZWYgU2xydVNoYXJlZERh dGEgKlNscnVTaGFyZWQ7CiB0eXBlZGVmIHN0cnVjdCBTbHJ1Q3RsRGF0YQogewogCVNscnVTaGFy ZWQJc2hhcmVkOworCUhUQUIJICAgKm1hcHBpbmdfdGFibGU7CiAKIAkvKgogCSAqIFdoaWNoIHN5 bmMgaGFuZGxlciBmdW5jdGlvbiB0byB1c2Ugd2hlbiBoYW5kaW5nIHN5bmMgcmVxdWVzdHMgb3Zl ciB0bwotLSAKMi4zMC4xCgo= --00000000000075bd5305be4f0906--