From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v9 09/25] x86: refactor psr: L3 CAT: set value: implement framework. Date: Thu, 16 Mar 2017 19:07:59 +0800 Message-ID: <1489662495-5375-10-git-send-email-yi.y.sun@linux.intel.com> References: <1489662495-5375-1-git-send-email-yi.y.sun@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1coTM3-0004Lr-Ia for xen-devel@lists.xenproject.org; Thu, 16 Mar 2017 11:14:03 +0000 In-Reply-To: <1489662495-5375-1-git-send-email-yi.y.sun@linux.intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: kevin.tian@intel.com, wei.liu2@citrix.com, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, he.chen@linux.intel.com, ian.jackson@eu.citrix.com, Yi Sun , mengxu@cis.upenn.edu, jbeulich@suse.com, chao.p.peng@linux.intel.com, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org QXMgc2V0IHZhbHVlIGZsb3cgaXMgdGhlIG1vc3QgY29tcGxpY2F0ZWQgb25lIGluIHBzciwgaXQg d2lsbCBiZQpkaXZpZGVkIHRvIHNvbWUgcGF0Y2hlcyB0byBtYWtlIHRoaW5ncyBjbGVhcmVyLiBU aGlzIHBhdGNoCmltcGxlbWVudHMgdGhlIHNldCB2YWx1ZSBmcmFtZXdvcmsgdG8gc2hvdyBhIHdo b2xlIHBpY3R1cmUgZmlyc3RseS4KCkl0IGFsc28gY2hhbmdlcyBkb21jdGwgaW50ZXJmYWNlIHRv IG1ha2UgaXQgbW9yZSBnZW5lcmFsLgoKVG8gbWFrZSB0aGUgc2V0IHZhbHVlIGZsb3cgYmUgZ2Vu ZXJhbCBhbmQgY2FuIHN1cHBvcnQgbXVsdGlwbGUgZmVhdHVyZXMKYXQgc2FtZSB0aW1lLCBpdCBp bmNsdWRlcyBiZWxvdyBzdGVwczoKMS4gR2V0IENPUyBJRCB0aGF0IGN1cnJlbnQgZG9tYWluIGlz IHVzaW5nLgoyLiBHYXRoZXIgYSB2YWx1ZSBhcnJheSB0byBzdG9yZSBhbGwgZmVhdHVyZXMgY3Vy cmVudCB2YWx1ZQogICBpbnRvIGl0IGFuZCByZXBsYWNlIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRo ZSBmZWF0dXJlIHdoaWNoIGlzCiAgIGJlaW5nIHNldCB0byB0aGUgbmV3IGlucHV0IHZhbHVlLgoz LiBGaW5kIGlmIHRoZXJlIGlzIGFscmVhZHkgYSBDT1MgSUQgb24gd2hpY2ggYWxsIGZlYXR1cmVz JwogICB2YWx1ZXMgYXJlIHNhbWUgYXMgdGhlIGFycmF5LiBUaGVuLCB3ZSBjYW4gcmV1c2UgdGhp cyBDT1MKICAgSUQuCjQuIElmIGZhaWwgdG8gZmluZCwgd2UgbmVlZCBwaWNrIGFuIGF2YWlsYWJs ZSBDT1MgSUQuIE9ubHkgQ09TIElEIHdoaWNoIHJlZgogICBpcyAwIG9yIDEgY2FuIGJlIHBpY2tl ZC4KNS4gV3JpdGUgYWxsIGZlYXR1cmVzIE1TUnMgYWNjb3JkaW5nIHRvIHRoZSBDT1MgSUQuCjYu IFVwZGF0ZSByZWYgYWNjb3JkaW5nIHRvIENPUyBJRC4KNy4gU2F2ZSB0aGUgQ09TIElEIGludG8g Y3VycmVudCBkb21haW4ncyBwc3JfY29zX2lkc1tzb2NrZXRdIHNvIHRoYXQgd2UKICAgY2FuIGtu b3cgd2hpY2ggQ09TIHRoZSBkb21haW4gaXMgdXNpbmcgb24gdGhlIHNvY2tldC4KClNvLCBzb21l IGZ1bmN0aW9ucyBhcmUgYWJzdHJhY3RlZCBhbmQgdGhlIGNhbGxiYWNrIGZ1bmN0aW9ucyB3aWxs IGJlCmltcGxlbWVudGVkIGluIG5leHQgcGF0Y2hlcy4KCkhlcmUgaXMgYW4gZXhhbXBsZSB0byB1 bmRlcnN0YW5kIHRoZSBwcm9jZXNzLiBUaGUgQ1BVIHN1cHBvcnRzCnR3byBmZWF0dWVycywgZS5n LiBMMyBDQVQgYW5kIEwyIENBVC4gVXNlciB3YW50cyB0byBzZXQgTDMgQ0FUCm9mIERvbTEgdG8g MHgxZmYuCjEuIEdldCB0aGUgb2xkX2NvcyBvZiBEb20xIHdoaWNoIGlzIDAuIEwzIENBVCBpcyB0 aGUgZmlyc3QKZWxlbWVudCBvZiBmZWF0dXJlIGxpc3QuIFRoZSBDT1MgcmVnaXN0ZXJzIHZhbHVl cyBhcmUgYmVsb3cgYXQKdGhpcyB0aW1lLgogICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICAgICAgICB8IENPUyAwIHwgQ09TIDEgfCBDT1MgMiB8IC4uLiB8CiAgICAgICAg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpMMyBDQVQgIHwgMHg3ZmYgfCAuLi4gICB8 IC4uLiAgIHwgLi4uIHwKICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkwy IENBVCAgfCAweGZmICB8IC4uLiAgIHwgLi4uICAgfCAuLi4gfAogICAgICAgIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KCjIuIEdhdGhlciB0aGUgdmFsdWUgYXJyYXkgYW5kIHNldCBu ZXcgdmFsdWUgaW50byBpdDoKdmFsWzBdOiAweDFmZgp2YWxbMV06IDB4ZmYKCjMuIEl0IGNhbm5v dCBmaW5kIGEgbWF0Y2hpbmcgQ09TLgoKNC4gUGljayBDT1MgMSB0byBzdG9yZSB0aGUgdmFsdWUg c2V0LgoKNS4gV3JpdGUgdGhlIENPUyAxIHJlZ2lzdGVycy4gVGhlIENPUyByZWdpc3RlcnMgdmFs dWVzIGFyZQpjaGFuZ2VkIHRvIGJlbG93IG5vdy4KICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgICAgICAgfCBDT1MgMCB8IENPUyAxIHwgQ09TIDIgfCAuLi4gfAogICAg ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KTDMgQ0FUICB8IDB4N2ZmIHwgMHgx ZmYgfCAuLi4gICB8IC4uLiB8CiAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpMMiBDQVQgIHwgMHhmZiAgfCAweGZmICB8IC4uLiAgIHwgLi4uIHwKICAgICAgICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgo2LiBUaGUgcmVmWzFdIGlzIGluY3JlYXNlZCB0byAx IGJlY2F1c2UgRG9tMSBpcyB1c2luZyBpdCBub3cuCgo3LiBTYXZlIDEgdG8gRG9tMSdzIHBzcl9j b3NfaWRzW3NvY2tldF0uCgpUaGVuLCB1c2VyIHdhbnRzIHRvIHNldCBMMyBDQVQgb2YgRG9tMiB0 byAweDFmZiB0b28uIFRoZSBvbGRfY29zCm9mIERvbTIgaXMgMCB0b28uIFJlcGVhdCBhYm92ZSBm bG93LgoKVGhlIHZhbCBhcnJheSBhc3NlbWJsZWQgaXM6CnZhbFswXTogMHgxZmYKdmFsWzFdOiAw eGZmCgpTbywgaXQgY2FuIGZpbmQgYSBtYXRjaGluZyBDT1MsIENPUyAxLiBUaGVuLCBpdCBjYW4g cmV1c2UgQ09TIDEKZm9yIERvbTIuCgpUaGUgcmVmWzFdIGlzIGluY3JlYXNlZCB0byAyIG5vdyBi ZWNhdXNlIGJvdGggRG9tMSBhbmQgRG9tMiBhcmUKdXNpbmcgdGhpcyBDT1MgSUQuIFNldCAxIHRv IERvbTIncyBwc3JfY29zX2lkc1tzb2NrZXRdLgoKQW5vdGhlciB0aGluZyBuZWVkIHRvIGVtcGhh c2l6ZSBpcyB0aGUgY29udGV4dCBzd2l0Y2guIFdoZW4gY29udGV4dApzd2l0Y2ggaGFwcGVucywg J3Bzcl9jdHh0X3N3aXRjaF90bycgaXMgY2FsbGVkIGJ5IHN5c3RlbSB0byBnZXQKZG9tYWluJ3Mg Q09TIElEIGZyb20gJ3Bzcl9jb3NfaWRzW3NvY2tldF0nLiBCdXQgJ3Bzcl9jb3NfaWRzW3NvY2tl dF0nCmlzIHNldCBhdCBzdGVwIDcgYWJvdmUuIFNvLCB0aGVyZSBhcmUgdGhyZWUgc2NlbmFyaW9z LCBlLmcuOgoxLiBVc2VyIGNhbGxzIGRvbWN0bCBpbnRlcmZhY2Ugb24gRG9tMCB0byBzZXQgYSBD T1MgSUQgMSBmb3IgRG9tMSBpbnRvIGl0cwogICBwc3JfY29zX2lkc1tdLiBUaGVuLCBEb20xIGlz IHNjaGVkdWxlZCBzbyB0aGF0ICdwc3JfY3R4dF9zd2l0Y2hfdG8oKScgaXMKICAgY2FsbGVkIHdo aWNoIG1ha2VzIENPUyBJRCAxIHdvcmsuIEZvciB0aGlzIGNhc2UsIHdlIGRvIG5vdCBhbnkgYWN0 aW9uLgoKMi4gRG9tMSBydW5zIG9uIENQVSAxIGFuZCBDT1MgSUQgMSBpcyB3b3JraW5nLiBBdCBz YW1lIHRpbWUsIHVzZXIgY2FsbHMgZG9tY3RsCiAgIGludGVyZmFjZSBvbiBEb20wIHRvIHNldCBh IG5ldyBDT1MgSUQgMiBmb3IgRG9tMSBpbnRvIHBzcl9jb3NfaWRzW10uIEFmdGVyCiAgIHRpbWUg c2xpY2UgZW5kcywgdGhlIERvbTEgaXMgc2NoZWR1bGVkIGFnYWluLCB0aGUgbmV3IENPUyBJRCAy IHdpbGwgd29yay4KCjMuIFdoZW4gYSBuZXcgQ09TIElEIGlzIGJlaW5nIHNldCB0byBwc3JfY29z X2lkc1tdLCAncHNyX2N0eHRfc3dpdGNoX3RvKCknCiAgIGlzIGNhbGxlZCB0byBhY2Nlc3MgdGhl IHNhbWUgcHNyX2Nvc19pZHNbXSBtZW1iZXIgdGhyb3VnaCAncHNyX2Fzc29jX2NvcycuCiAgIFRo ZSBDT1MgSUQgaXMgY29uc3RyYWluZWQgYnkgY29zX21hc2sgc28gdGhhdCBpdCBjYW5ub3QgZXhj ZWVkcyB0aGUgY29zX21heC4KICAgU28gZXZlbiB0aGUgQ09TIElEIGdvdCBoZXJlIGlzIHdyb25n LCBpdCBpcyBzdGlsbCBhIHdvcmthYmxlIElEICh3aXRoaW4KICAgY29zX21heCkuIFRoZSBmdW5j dGlvbmFsaXR5IGlzIHN0aWxsIHdvcmthYmxlLCBvbmx5IGFub3RoZXIgdmFsaWQgQ0JNIGJlCiAg IGVmZmVjdGl2ZSBmb3IgYSBzaG9ydCB0aW1lLiBJbiBuZXh0IHNjaGVkdWxlLCB0aGUgY29ycmVj dCBDQk0gd2lsbCB0YWtlCiAgIGVmZmVjdC4KCkFsbCB0aGVzZSBjYXNlcyB3aWxsIG5vdCBjYXVz ZSByYWNlIGNvbmRpdGlvbiBhbmQgbm8gaGFybSB0byBzeXN0ZW0uIFRoZSBQU1IKZmVhdHVyZXMg YXJlIHRvIHNldCBjYWNoZSBjYXBhY2l0eSBmb3IgYSBkb21haW4uIFRoZSBzZXR0aW5nIHRvIGNh Y2hlIGlzCnByb2dyZXNzaXZlbHkgZWZmZWN0aXZlLiBXaGVuIHRoZSBjYWNoZSBzZXR0aW5nIGJl Y29tZXMgcmVhbGx5IGVmZmVjdGl2ZSwgdGhlCnRpbWUgc2xpY2UgdG8gc2NoZWR1bGUgYSBkb21h aW4gbWF5IGhhdmUgcGFzc2VkLiBTbywgZXZlbiBpZiBhIHdyb25nIENPUyBJRCBpcwp1c2VkIHRv IHNldCBBU1NPQywgb25seSBhbm90aGVyIHZhbGlkIENCTSBiZSBlZmZlY3RpdmUgZm9yIGEgc2hv cnQgdGltZSBkdXJpbmcKY2FjaGUgcHJlcGFyYXRpb24gdGltZS4gVGhlIGNvcnJlY3QgQ09TIElE IHdpbGwgdGFrZSBlZmZlY3QgaW4gYSBzaG9ydCB0aW1lLgpUaGlzIGRvZXMgbm90IGFmZmVjdCBj YWNoZSBjYXBhY2l0eSBzZXR0aW5nIG11Y2guCgpTaWduZWQtb2ZmLWJ5OiBZaSBTdW4gPHlpLnku c3VuQGxpbnV4LmludGVsLmNvbT4KLS0tCnY5OgogICAgLSB1c2UgZ290byBzdHlsZSBlcnJvciBo YW5kbGluZyBpbiAncHNyX3NldF92YWwnLgogICAgICAoc3VnZ2VzdGVkIGJ5IFdlaSBMaXUpCiAg ICAtIHVzZSBBU1NFUlQgZm9yIGNoZWNraW5nIG9sZF9jb3MuCiAgICAgIChzdWdnZXN0ZWQgYnkg V2VpIExpdSBhbmQgSmFuIEJldWxpY2gpCiAgICAtIGZpeCBjb2Rpbmcgc3R5bGUgaXNzdWUuCiAg ICAgIChzdWdnZXN0ZWQgYnkgV2VpIExpdSkKICAgIC0gcmVuYW1lICdhc3NlbWJsZV92YWxfYXJy YXknIHRvICdjb21iaW5lX3ZhbF9hcnJheScgaW4gcGVydmlvdXMgcGF0Y2guCiAgICAgIChzdWdn ZXN0ZWQgYnkgV2VpIExpdSkKICAgIC0gdXNlICdzcGluX2lzX2xvY2tlZCcgdG8gY2hlY2sgcmVm X2xvY2suCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1KQogICAgLSBhZGQgYW4gaW5wdXQg cGFyYW1ldGVyICdhcnJheV9sZW4nIGZvciAnd3JpdGVfcHNyX21zcicuCiAgICAtIGNoZWNrICdz b2NrZXRfaW5mbycgYW5kICdwc3JfY29zX2lkcycgaW4gdGhpcyBwYXRjaC4KICAgICAgKHN1Z2dl c3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gbW9kaWZ5IHBhdGNoIHRpdGxlIHRvIGluZGljYXRl ICdMMyBDQVQnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBmaXggY29t bWl0IG1lc3NhZ2Ugd29yZHMuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAt IGNoYW5nZSAnYXNzZW1ibGVfdmFsX2FycmF5JyB0byAnZ2F0aGVyX3ZhbF9hcnJheScuCiAgICAg IChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIGNoYW5nZSAnc2V0X25ld192YWxfdG9f YXJyYXknIHRvICdpbnNlcnRfbmV3X3ZhbF90b19hcnJheScuCiAgICAgIChzdWdnZXN0ZWQgYnkg SmFuIEJldWxpY2gpCiAgICAtIGNoYW5nZSBwYXJhbWV0ZXIgJ20nIG9mICdpbnNlcnRfbmV3X3Zh bF90b19hcnJheScgdG8gJ25ld192YWwnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNo KQogICAgLSBjaGFuZ2UgJ3dyaXRlX3Bzcl9tc3InIHRvICd3cml0ZV9wc3JfbXNycycuCiAgICAg IChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIGNvcnJlY3QgY29tbWVudHMuCiAgICAg IChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIHJlbW92ZSB1bm5lY2Vzc2FyeSBjb21t ZW50cy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gYWRqdXN0IGNvbmRp dGlvbnMgYWZ0ZXIgJ2ZpbmRfY29zJyB0byBzYXZlIGEgbGV2ZWwgb2YgaW5kZW50YXRpb24uCiAg ICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIGFkZCAnQVNTRVJUKCFvbGRfY29z IHx8IHJlZltvbGRfY29zXSknLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAg LSBtb3ZlIEFTU0VSVCgpIGNoZWNrIGludG8gbG9ja2VkIHJlZ2lvbi4KICAgICAgKHN1Z2dlc3Rl ZCBieSBKYW4gQmV1bGljaCkKICAgIC0gcmVwbGFjZSBwYXJhbWV0ZXIgJyp2YWwnIHRvICd2YWxb XScgaW4gc29tZSBmdW5jdGlvbnMuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAg ICAtIGNoYW5nZSAnd3JpdGVfcHNyX21zcicgcGFyYW1ldGVycyB0byBwcmVwYXJlIHRvIG9ubHkg c2V0IG9uZSBuZXcgdmFsdWUKICAgICAgZm9yIG9uZSBmZWF0dXJlLgogICAgICAoc3VnZ2VzdGVk IGJ5IEphbiBCZXVsaWNoKQogICAgLSBjaGFuZ2VzIGFib3V0ICd1aW50NjRfdCcgdG8gJ3VpbnQz Ml90Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gYWRkIGV4cGxhbmF0 aW9uIGFib3V0IGNvbnRleHQgc3dpdGNoLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNo KQp2NToKICAgIC0gbW9kaWZ5IGNvbW1pdCBtZXNzYWdlLgogICAgICAoc3VnZ2VzdGVkIGJ5IEph biBCZXVsaWNoKQogICAgLSByZXR1cm4gYW4gZXJyb3IgZm9yIGFsbCBoZWxwZXIgZnVuY3Rpb25z IGluIHNldCBmbG93LgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSByZW1v dmUgdW5uZWNlc3NhcnkgY2FzdC4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAg IC0gZGl2aWRlICdnZXRfb2xkX3NldF9uZXcnIHRvIHR3byBmdW5jdGlvbnMsICdhc3NlbWJsZV92 YWxfYXJyYXknIGFuZAogICAgICAnc2V0X25ld192YWxfdG9fYXJyYXknLgogICAgICAoc3VnZ2Vz dGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBtb2RpZnkgY29tbWVudHMuCiAgICAgIChzdWdnZXN0 ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIGFkanVzdCBjb2RlIGZvcm1hdC4KICAgICAgKHN1Z2dl c3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gY2hhbmdlICdhbGxvY19uZXdfY29zJyB0byAncGlj a19hdmFpbF9jb3MnIHRvIG1ha2UgbmFtZSBhY2N1cmF0ZS4KICAgICAgKHN1Z2dlc3RlZCBieSBK YW4gQmV1bGljaCkKICAgIC0gY2hlY2sgZmVhdHVyZSB0eXBlIHdoZW4gZW50ZXJpbmcgJ3Bzcl9z ZXRfdmFsJy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gdXNlIEFTU0VS VCB0byBjaGVjayByZWYuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIHJl bmFtZSAnZGF0W10nIHRvICdkYXRhW10nLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNo KQp2NDoKICAgIC0gY3JlYXRlIHRoaXMgcGF0Y2ggdG8gbWFrZSBjb2RlcyBlYXNpZXIgdG8gdW5k ZXJzdGFuZC4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKLS0tCiB4ZW4vYXJjaC94 ODYvZG9tY3RsLmMgICAgIHwgIDE4ICsrLS0tCiB4ZW4vYXJjaC94ODYvcHNyLmMgICAgICAgIHwg MTkyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIHhlbi9p bmNsdWRlL2FzbS14ODYvcHNyLmggfCAgIDQgKy0KIDMgZmlsZXMgY2hhbmdlZCwgMjAxIGluc2Vy dGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9kb21j dGwuYyBiL3hlbi9hcmNoL3g4Ni9kb21jdGwuYwppbmRleCBlNzE0ZDFkLi43NjkyM2M4IDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvZG9tY3RsLmMKKysrIGIveGVuL2FyY2gveDg2L2RvbWN0bC5j CkBAIC0xNDM3LDIxICsxNDM3LDIxIEBAIGxvbmcgYXJjaF9kb19kb21jdGwoCiAgICAgICAgIHN3 aXRjaCAoIGRvbWN0bC0+dS5wc3JfY2F0X29wLmNtZCApCiAgICAgICAgIHsKICAgICAgICAgY2Fz ZSBYRU5fRE9NQ1RMX1BTUl9DQVRfT1BfU0VUX0wzX0NCTToKLSAgICAgICAgICAgIHJldCA9IHBz cl9zZXRfbDNfY2JtKGQsIGRvbWN0bC0+dS5wc3JfY2F0X29wLnRhcmdldCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRvbWN0bC0+dS5wc3JfY2F0X29wLmRhdGEsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQU1JfQ0JNX1RZUEVfTDMpOworICAgICAgICAgICAg cmV0ID0gcHNyX3NldF92YWwoZCwgZG9tY3RsLT51LnBzcl9jYXRfb3AudGFyZ2V0LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHVpbnQzMl90KWRvbWN0bC0+dS5wc3JfY2F0X29wLmRh dGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQU1JfQ0JNX1RZUEVfTDMpOwogICAg ICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBYRU5fRE9NQ1RMX1BTUl9DQVRfT1BfU0VU X0wzX0NPREU6Ci0gICAgICAgICAgICByZXQgPSBwc3Jfc2V0X2wzX2NibShkLCBkb21jdGwtPnUu cHNyX2NhdF9vcC50YXJnZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21j dGwtPnUucHNyX2NhdF9vcC5kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UFNSX0NCTV9UWVBFX0wzX0NPREUpOworICAgICAgICAgICAgcmV0ID0gcHNyX3NldF92YWwoZCwg ZG9tY3RsLT51LnBzcl9jYXRfb3AudGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHVpbnQzMl90KWRvbWN0bC0+dS5wc3JfY2F0X29wLmRhdGEsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQU1JfQ0JNX1RZUEVfTDNfQ09ERSk7CiAgICAgICAgICAgICBicmVhazsK IAogICAgICAgICBjYXNlIFhFTl9ET01DVExfUFNSX0NBVF9PUF9TRVRfTDNfREFUQToKLSAgICAg ICAgICAgIHJldCA9IHBzcl9zZXRfbDNfY2JtKGQsIGRvbWN0bC0+dS5wc3JfY2F0X29wLnRhcmdl dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWN0bC0+dS5wc3JfY2F0X29w LmRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQU1JfQ0JNX1RZUEVfTDNf REFUQSk7CisgICAgICAgICAgICByZXQgPSBwc3Jfc2V0X3ZhbChkLCBkb21jdGwtPnUucHNyX2Nh dF9vcC50YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodWludDMyX3QpZG9t Y3RsLT51LnBzcl9jYXRfb3AuZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBT Ul9DQk1fVFlQRV9MM19EQVRBKTsKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2Ug WEVOX0RPTUNUTF9QU1JfQ0FUX09QX0dFVF9MM19DQk06CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvcHNyLmMgYi94ZW4vYXJjaC94ODYvcHNyLmMKaW5kZXggNTMxMDVmNS4uZjhkNGJlNCAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L3Bzci5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wc3IuYwpAQCAt NTc4LDE1ICs1NzgsMjAzIEBAIGludCBwc3JfZ2V0X3ZhbChzdHJ1Y3QgZG9tYWluICpkLCB1bnNp Z25lZCBpbnQgc29ja2V0LAogICAgIHJldHVybiAwOwogfQogCi1pbnQgcHNyX3NldF9sM19jYm0o c3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHNvY2tldCwKLSAgICAgICAgICAgICAgICAg ICB1aW50NjRfdCBjYm0sIGVudW0gY2JtX3R5cGUgdHlwZSkKKy8qIFNldCB2YWx1ZSBmdW5jdGlv bnMgKi8KK3N0YXRpYyB1bnNpZ25lZCBpbnQgZ2V0X2Nvc19udW0oY29uc3Qgc3RydWN0IHBzcl9z b2NrZXRfaW5mbyAqaW5mbykKIHsKICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBnYXRo ZXJfdmFsX2FycmF5KHVpbnQzMl90IHZhbFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVpbnQzMl90IGFycmF5X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBz dHJ1Y3QgcHNyX3NvY2tldF9pbmZvICppbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGludCBvbGRfY29zKQoreworICAgIHJldHVybiAtRUlOVkFMOworfQorCitzdGF0 aWMgaW50IGluc2VydF9uZXdfdmFsX3RvX2FycmF5KHVpbnQzMl90IHZhbFtdLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBhcnJheV9sZW4sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBwc3Jfc29ja2V0X2luZm8gKmlu Zm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gcHNyX2ZlYXRfdHlw ZSBmZWF0X3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gY2Jt X3R5cGUgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg bmV3X3ZhbCkKK3sKKyAgICByZXR1cm4gLUVJTlZBTDsKK30KKworc3RhdGljIGludCBmaW5kX2Nv cyhjb25zdCB1aW50MzJfdCB2YWxbXSwgdWludDMyX3QgYXJyYXlfbGVuLAorICAgICAgICAgICAg ICAgICAgICBlbnVtIHBzcl9mZWF0X3R5cGUgZmVhdF90eXBlLAorICAgICAgICAgICAgICAgICAg ICBjb25zdCBzdHJ1Y3QgcHNyX3NvY2tldF9pbmZvICppbmZvKQoreworICAgIEFTU0VSVChzcGlu X2lzX2xvY2tlZCgoc3BpbmxvY2tfdCAqKSgmaW5mby0+cmVmX2xvY2spKSk7CisgICAgcmV0dXJu IC1FTk9FTlQ7Cit9CisKK3N0YXRpYyBpbnQgcGlja19hdmFpbF9jb3MoY29uc3Qgc3RydWN0IHBz cl9zb2NrZXRfaW5mbyAqaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWlu dDMyX3QgdmFsW10sIHVpbnQzMl90IGFycmF5X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgdW5zaWduZWQgaW50IG9sZF9jb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0g cHNyX2ZlYXRfdHlwZSBmZWF0X3R5cGUpCit7CisgICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKChz cGlubG9ja190ICopKCZpbmZvLT5yZWZfbG9jaykpKTsKKyAgICByZXR1cm4gLUVOT0VOVDsKK30K Kworc3RhdGljIGludCB3cml0ZV9wc3JfbXNyKHVuc2lnbmVkIGludCBzb2NrZXQsIHVuc2lnbmVk IGludCBjb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgdmFsLCBlbnVtIGNi bV90eXBlIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBwc3JfZmVhdF90eXBl IGZlYXRfdHlwZSkKK3sKKyAgICByZXR1cm4gLUVOT0VOVDsKK30KKworaW50IHBzcl9zZXRfdmFs KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBzb2NrZXQsCisgICAgICAgICAgICAgICAg dWludDMyX3QgdmFsLCBlbnVtIGNibV90eXBlIHR5cGUpCit7CisgICAgdW5zaWduZWQgaW50IG9s ZF9jb3M7CisgICAgaW50IGNvcywgcmV0OworICAgIHVuc2lnbmVkIGludCAqcmVmOworICAgIHVp bnQzMl90ICp2YWxfYXJyYXk7CisgICAgc3RydWN0IHBzcl9zb2NrZXRfaW5mbyAqaW5mbyA9IGdl dF9zb2NrZXRfaW5mbyhzb2NrZXQpOworICAgIHVpbnQzMl90IGFycmF5X2xlbjsKKyAgICBlbnVt IHBzcl9mZWF0X3R5cGUgZmVhdF90eXBlOworCisgICAgaWYgKCBJU19FUlIoaW5mbykgKQorICAg ICAgICByZXR1cm4gUFRSX0VSUihpbmZvKTsKKworICAgIGZlYXRfdHlwZSA9IHBzcl9jYm1fdHlw ZV90b19mZWF0X3R5cGUodHlwZSk7CisgICAgaWYgKCAhdGVzdF9iaXQoZmVhdF90eXBlLCAmaW5m by0+ZmVhdF9tYXNrKSApCisgICAgICAgIHJldHVybiAtRU5PRU5UOworCisgICAgLyoKKyAgICAg KiBTdGVwIDA6CisgICAgICogb2xkX2NvcyBtZWFucyB0aGUgQ09TIElEIGN1cnJlbnQgZG9tYWlu IGlzIHVzaW5nLiBCeSBkZWZhdWx0LCBpdCBpcyAwLgorICAgICAqCisgICAgICogRm9yIGV2ZXJ5 IENPUyBJRCwgdGhlcmUgaXMgYSByZWZlcmVuY2UgY291bnQgdG8gcmVjb3JkIGhvdyBtYW55IGRv bWFpbnMKKyAgICAgKiBhcmUgdXNpbmcgdGhlIENPUyByZWdpc3RlciBjb3JyZXNwb25kaW5nIHRv IHRoaXMgQ09TIElELgorICAgICAqIC0gSWYgcmVmW29sZF9jb3NdIGlzIDAsIHRoYXQgbWVhbnMg dGhpcyBDT1MgaXMgbm90IHVzZWQgYnkgYW55IGRvbWFpbi4KKyAgICAgKiAtIElmIHJlZltvbGRf Y29zXSBpcyAxLCB0aGF0IG1lYW5zIHRoaXMgQ09TIGlzIG9ubHkgdXNlZCBieSBjdXJyZW50Cisg ICAgICogICBkb21haW4uCisgICAgICogLSBJZiByZWZbb2xkX2Nvc10gaXMgbW9yZSB0aGFuIDEs IHRoYXQgbWVhbiBtdWx0aXBsZSBkb21haW5zIGFyZSB1c2luZworICAgICAqICAgdGhpcyBDT1Mu CisgICAgICovCisgICAgb2xkX2NvcyA9IGQtPmFyY2gucHNyX2Nvc19pZHNbc29ja2V0XTsKKyAg ICBBU1NFUlQob2xkX2NvcyA8IE1BWF9DT1NfUkVHX0NOVCAmJiBvbGRfY29zID49IDApOworCisg ICAgcmVmID0gaW5mby0+Y29zX3JlZjsKKworICAgIC8qCisgICAgICogU3RlcCAxOgorICAgICAq IEdhdGhlciBhIHZhbHVlIGFycmF5IHRvIHN0b3JlIGFsbCBmZWF0dXJlcyBjb3NfcmVnX3ZhbFtv bGRfY29zXS4KKyAgICAgKiBBbmQsIHNldCB0aGUgaW5wdXQgbmV3IHZhbCBpbnRvIGFycmF5IGFj Y29yZGluZyB0byB0aGUgZmVhdHVyZSdzCisgICAgICogcG9zaXRpb24gaW4gYXJyYXkuCisgICAg ICovCisgICAgYXJyYXlfbGVuID0gZ2V0X2Nvc19udW0oaW5mbyk7CisgICAgdmFsX2FycmF5ID0g eHphbGxvY19hcnJheSh1aW50MzJfdCwgYXJyYXlfbGVuKTsKKyAgICBpZiAoICF2YWxfYXJyYXkg KQorICAgICAgICByZXR1cm4gLUVOT01FTTsKKworICAgIGlmICggKHJldCA9IGdhdGhlcl92YWxf YXJyYXkodmFsX2FycmF5LCBhcnJheV9sZW4sIGluZm8sIG9sZF9jb3MpKSAhPSAwICkKKyAgICAg ICAgZ290byBmcmVlX2FycmF5OworCisgICAgaWYgKCAocmV0ID0gaW5zZXJ0X25ld192YWxfdG9f YXJyYXkodmFsX2FycmF5LCBhcnJheV9sZW4sIGluZm8sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZmVhdF90eXBlLCB0eXBlLCB2YWwpKSAhPSAwICkKKyAgICAgICAg Z290byBmcmVlX2FycmF5OworCisgICAgc3Bpbl9sb2NrKCZpbmZvLT5yZWZfbG9jayk7CisKKyAg ICAvKgorICAgICAqIFN0ZXAgMjoKKyAgICAgKiBUcnkgdG8gZmluZCBpZiB0aGVyZSBpcyBhbHJl YWR5IGEgQ09TIElEIG9uIHdoaWNoIGFsbCBmZWF0dXJlcycgdmFsdWVzCisgICAgICogYXJlIHNh bWUgYXMgdGhlIGFycmF5LiBUaGVuLCB3ZSBjYW4gcmV1c2UgdGhpcyBDT1MgSUQuCisgICAgICov CisgICAgY29zID0gZmluZF9jb3ModmFsX2FycmF5LCBhcnJheV9sZW4sIGZlYXRfdHlwZSwgaW5m byk7CisgICAgaWYgKCBjb3MgPT0gb2xkX2NvcyApCisgICAgeworICAgICAgICByZXQgPSAwOwor ICAgICAgICBnb3RvIHVubG9ja19mcmVlX2FycmF5OworICAgIH0KKyAgICBlbHNlIGlmICggY29z ID49IDAgKQorICAgICAgICBnb3RvIGNvc19mb3VuZDsKKworICAgIC8qCisgICAgICogU3RlcCAz OgorICAgICAqIElmIGZhaWwgdG8gZmluZCwgd2UgbmVlZCBwaWNrIGFuIGF2YWlsYWJsZSBDT1Mg SUQuCisgICAgICogSW4gZmFjdCwgb25seSBDT1MgSUQgd2hpY2ggcmVmIGlzIDEgb3IgMCBjYW4g YmUgcGlja2VkIGZvciBjdXJyZW50CisgICAgICogZG9tYWluLiBJZiBvbGRfY29zIGlzIG5vdCAw IGFuZCBpdHMgcmVmPT0xLCB0aGF0IG1lYW5zIG9ubHkgY3VycmVudAorICAgICAqIGRvbWFpbiBp cyB1c2luZyB0aGlzIG9sZF9jb3MgSUQuIFNvLCB0aGlzIG9sZF9jb3MgSUQgY2VydGFpbmx5IGNh bgorICAgICAqIGJlIHJldXNlZCBieSBjdXJyZW50IGRvbWFpbi4gUmVmPT0wIG1lYW5zIHRoZXJl IGlzIG5vIGFueSBkb21haW4KKyAgICAgKiB1c2luZyB0aGlzIENPUyBJRC4gU28gaXQgY2FuIGJl IHVzZWQgZm9yIGN1cnJlbnQgZG9tYWluIHRvby4KKyAgICAgKi8KKyAgICBjb3MgPSBwaWNrX2F2 YWlsX2NvcyhpbmZvLCB2YWxfYXJyYXksIGFycmF5X2xlbiwgb2xkX2NvcywgZmVhdF90eXBlKTsK KyAgICBpZiAoIGNvcyA8IDAgKQorICAgIHsKKyAgICAgICAgcmV0ID0gY29zOworICAgICAgICBn b3RvIHVubG9ja19mcmVlX2FycmF5OworICAgIH0KKworICAgIC8qCisgICAgICogU3RlcCA0Ogor ICAgICAqIFdyaXRlIGFsbCBmZWF0dXJlcyBNU1JzIGFjY29yZGluZyB0byB0aGUgQ09TIElELgor ICAgICAqLworICAgIHJldCA9IHdyaXRlX3Bzcl9tc3Ioc29ja2V0LCBjb3MsIHZhbCwgdHlwZSwg ZmVhdF90eXBlKTsKKyAgICBpZiAoIHJldCApCisgICAgICAgIGdvdG8gdW5sb2NrX2ZyZWVfYXJy YXk7CisKK2Nvc19mb3VuZDoKKyAgICAvKgorICAgICAqIFN0ZXAgNToKKyAgICAgKiBVcGRhdGUg cmVmIGFjY29yZGluZyB0byBDT1MgSUQuCisgICAgICovCisgICAgcmVmW2Nvc10rKzsKKyAgICBB U1NFUlQoIWNvcyB8fCByZWZbY29zXSk7CisgICAgQVNTRVJUKCFvbGRfY29zIHx8IHJlZltvbGRf Y29zXSk7CisgICAgcmVmW29sZF9jb3NdLS07CisgICAgc3Bpbl91bmxvY2soJmluZm8tPnJlZl9s b2NrKTsKKworICAgIC8qCisgICAgICogU3RlcCA2OgorICAgICAqIFNhdmUgdGhlIENPUyBJRCBp bnRvIGN1cnJlbnQgZG9tYWluJ3MgcHNyX2Nvc19pZHNbXSBzbyB0aGF0IHdlIGNhbiBrbm93Cisg ICAgICogd2hpY2ggQ09TIHRoZSBkb21haW4gaXMgdXNpbmcgb24gdGhlIHNvY2tldC4gT25lIGRv bWFpbiBjYW4gb25seSB1c2UKKyAgICAgKiBvbmUgQ09TIElEIGF0IHNhbWUgdGltZSBvbiBlYWNo IHNvY2tldC4KKyAgICAgKi8KKyAgICBkLT5hcmNoLnBzcl9jb3NfaWRzW3NvY2tldF0gPSBjb3M7 CisgICAgZ290byBmcmVlX2FycmF5OworCit1bmxvY2tfZnJlZV9hcnJheToKKyAgICBzcGluX3Vu bG9jaygmaW5mby0+cmVmX2xvY2spOworZnJlZV9hcnJheToKKyAgICB4ZnJlZSh2YWxfYXJyYXkp OworICAgIHJldHVybiByZXQ7Cit9CisKIC8qIENhbGxlZCB3aXRoIGRvbWFpbiBsb2NrIGhlbGQs IG5vIGV4dHJhIGxvY2sgbmVlZGVkIGZvciAncHNyX2Nvc19pZHMnICovCiBzdGF0aWMgdm9pZCBw c3JfZnJlZV9jb3Moc3RydWN0IGRvbWFpbiAqZCkKIHsKKyAgICB1bnNpZ25lZCBpbnQgc29ja2V0 LCBjb3M7CisKKyAgICBpZiAoICFzb2NrZXRfaW5mbyB8fCAhZC0+YXJjaC5wc3JfY29zX2lkcyAp CisgICAgICAgIHJldHVybjsKKworICAgIC8qIERvbWFpbiBpcyBkZXN0cm9pZWQgc28gaXRzIGNv c19yZWYgc2hvdWxkIGJlIGRlY3JlYXNlZC4gKi8KKyAgICBmb3IgKCBzb2NrZXQgPSAwOyBzb2Nr ZXQgPCBucl9zb2NrZXRzOyBzb2NrZXQrKyApCisgICAgeworICAgICAgICBzdHJ1Y3QgcHNyX3Nv Y2tldF9pbmZvICppbmZvOworCisgICAgICAgIC8qIGNvcyAwIGlzIGRlZmF1bHQgb25lIHdoaWNo IGRvZXMgbm90IG5lZWQgYmUgaGFuZGxlZC4gKi8KKyAgICAgICAgY29zID0gZC0+YXJjaC5wc3Jf Y29zX2lkc1tzb2NrZXRdOworICAgICAgICBpZiAoIGNvcyA9PSAwICkKKyAgICAgICAgICAgIGNv bnRpbnVlOworCisgICAgICAgIC8qCisgICAgICAgICAqIElmIGRvbWFpbiB1c2VzIG90aGVyIGNv cyBpZHMsIGFsbCBjb3JyZXNwb25kaW5nIHJlZnMgbXVzdCBoYXZlIGJlZW4KKyAgICAgICAgICog aW5jcmVhc2VkIDEgZm9yIHRoaXMgZG9tYWluLiBTbywgd2UgbmVlZCBkZWNyZWFzZSB0aGVtLgor ICAgICAgICAgKi8KKyAgICAgICAgaW5mbyA9IHNvY2tldF9pbmZvICsgc29ja2V0OworICAgICAg ICBzcGluX2xvY2soJmluZm8tPnJlZl9sb2NrKTsKKyAgICAgICAgQVNTRVJUKCFjb3MgfHwgaW5m by0+Y29zX3JlZltjb3NdKTsKKyAgICAgICAgaW5mby0+Y29zX3JlZltjb3NdLS07CisgICAgICAg IHNwaW5fdW5sb2NrKCZpbmZvLT5yZWZfbG9jayk7CisgICAgfQorCiAgICAgeGZyZWUoZC0+YXJj aC5wc3JfY29zX2lkcyk7CiAgICAgZC0+YXJjaC5wc3JfY29zX2lkcyA9IE5VTEw7CiB9CmRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3Bzci5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9w c3IuaAppbmRleCBjZDAwNzMzLi5kMjI2MmQ5IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20t eDg2L3Bzci5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcHNyLmgKQEAgLTc0LDggKzc0LDgg QEAgaW50IHBzcl9nZXRfaW5mbyh1bnNpZ25lZCBpbnQgc29ja2V0LCBlbnVtIGNibV90eXBlIHR5 cGUsCiAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRhdGFbXSwgdW5zaWduZWQgaW50IGFycmF5 X2xlbik7CiBpbnQgcHNyX2dldF92YWwoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHNv Y2tldCwKICAgICAgICAgICAgICAgICB1aW50MzJfdCAqdmFsLCBlbnVtIGNibV90eXBlIHR5cGUp OwotaW50IHBzcl9zZXRfbDNfY2JtKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBzb2Nr ZXQsCi0gICAgICAgICAgICAgICAgICAgdWludDY0X3QgY2JtLCBlbnVtIGNibV90eXBlIHR5cGUp OworaW50IHBzcl9zZXRfdmFsKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBzb2NrZXQs CisgICAgICAgICAgICAgICAgdWludDMyX3QgdmFsLCBlbnVtIGNibV90eXBlIHR5cGUpOwogCiBp bnQgcHNyX2RvbWFpbl9pbml0KHN0cnVjdCBkb21haW4gKmQpOwogdm9pZCBwc3JfZG9tYWluX2Zy ZWUoc3RydWN0IGRvbWFpbiAqZCk7Ci0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=