From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v10 11/13] x86: make Xen early boot code relocatable Date: Wed, 30 Nov 2016 14:04:17 +0100 Message-ID: <1480511059-14062-12-git-send-email-daniel.kiper@oracle.com> References: <1480511059-14062-1-git-send-email-daniel.kiper@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cC4aB-0003gC-Nm for xen-devel@lists.xenproject.org; Wed, 30 Nov 2016 13:05:55 +0000 In-Reply-To: <1480511059-14062-1-git-send-email-daniel.kiper@oracle.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: jgross@suse.com, sstabellini@kernel.org, andrew.cooper3@citrix.com, cardoe@cardoe.com, pgnet.dev@gmail.com, ning.sun@intel.com, julien.grall@arm.com, jbeulich@suse.com, qiaowei.ren@intel.com, gang.wei@intel.com, fu.wei@linaro.org List-Id: xen-devel@lists.xenproject.org RXZlcnkgbXVsdGlib290IHByb3RvY29sIChyZWdhcmRsZXNzIG9mIHZlcnNpb24pIGNvbXBhdGli bGUgaW1hZ2UgbXVzdApzcGVjaWZ5IGl0cyBsb2FkIGFkZHJlc3MgKGluIEVMRiBvciBtdWx0aWJv b3QgaGVhZGVyKS4gTXVsdGlib290IHByb3RvY29sCmNvbXBhdGlibGUgbG9hZGVyIGhhdmUgdG8g bG9hZCBpbWFnZSBhdCBzcGVjaWZpZWQgYWRkcmVzcy4gSG93ZXZlciwgdGhlcmUKaXMgbm8gZ3Vh cmFudGVlIHRoYXQgdGhlIHJlcXVlc3RlZCBtZW1vcnkgcmVnaW9uIChpbiBjYXNlIG9mIFhlbiBp dCBzdGFydHMKYXQgMiBNaUIgYW5kIGVuZHMgYXQgfjUgTWlCKSB3aGVyZSBpbWFnZSBzaG91bGQg YmUgbG9hZGVkIGluaXRpYWxseSBpcyBhIFJBTQphbmQgaXQgaXMgZnJlZSAobGVnYWN5IEJJT1Mg cGxhdGZvcm1zIGFyZSBtZXJjaWZ1bCBmb3IgWGVuIGJ1dCBJIGZvdW5kIGF0CmxlYXN0IG9uZSBF RkkgcGxhdGZvcm0gb24gd2hpY2ggWGVuIGxvYWQgYWRkcmVzcyBjb25mbGljdHMgd2l0aCBFRkkg Ym9vdApzZXJ2aWNlczsgaXQgaXMgRGVsbCBQb3dlckVkZ2UgUjgyMCB3aXRoIGxhdGVzdCBmaXJt d2FyZSkuIFRvIGNvcGUgd2l0aCB0aGF0CnByb2JsZW0gd2UgbXVzdCBtYWtlIFhlbiBlYXJseSBi b290IGNvZGUgcmVsb2NhdGFibGUgYW5kIGhlbHAgYm9vdCBsb2FkZXIgdG8KcmVsb2NhdGUgaW1h Z2UgaW4gcHJvcGVyIHdheSBieSBzdWdnZXN0aW5nLCBub3QgcmVxdWVzdGluZyBzcGVjaWZpYyBs b2FkCmFkZHJlc3NlcyBhcyBpdCBpcyByaWdodCBub3csIGFsbG93ZWQgYWRkcmVzcyByYW5nZXMu IFRoaXMgcGF0Y2ggZG9lcyBmb3JtZXIuCkl0IGRvZXMgbm90IGFkZCBtdWx0aWJvb3QyIHByb3Rv Y29sIGludGVyZmFjZSB3aGljaCBpcyBkb25lIGluICJ4ODY6IGFkZAptdWx0aWJvb3QyIHByb3Rv Y29sIHN1cHBvcnQgZm9yIHJlbG9jYXRhYmxlIGltYWdlcyIgcGF0Y2guCgpUaGlzIHBhdGNoIGNo YW5nZXMgZm9sbG93aW5nIHRoaW5nczoKICAtICVlc2kgYW5kICVyMTVkIHJlZ2lzdGVycyBhcmUg dXNlZCBhcyBhIHN0b3JhZ2UgZm9yIFhlbiBpbWFnZSBsb2FkIGJhc2UKICAgIGFkZHJlc3MgKCVy MTVkIHNob3J0bHkgYmVjYXVzZSAlcnNpIGlzIHVzZWQgZm9yIEVGSSBTeXN0ZW1UYWJsZSBhZGRy ZXNzCiAgICBpbiA2NC1iaXQgY29kZSk7IGJvdGggcmVnaXN0ZXJzIGFyZSAoJWVzaSBpcyBtb3N0 bHkpIHVudXNlZCBpbiBlYXJseQogICAgYm9vdCBjb2RlIGFuZCBwcmVzZXJ2ZWQgZHVyaW5nIEMg ZnVuY3Rpb25zIGNhbGxzICglZXNpIGluIDMyLWJpdCBjb2RlCiAgICBhbmQgJXIxNWQgaW4gNjQt Yml0IGNvZGUpLAogIC0gJWZzIGlzIHVzZWQgYXMgYmFzZSBmb3IgWGVuIGRhdGEgcmVsYXRpdmUg YWRkcmVzc2luZyBpbiAzMi1iaXQgY29kZQogICAgaWYgaXQgaXMgcG9zc2libGU7ICVlc2kgaXMg dXNlZCBmb3IgdGhhdCB0aGluZyBkdXJpbmcgZXJyb3IgcHJpbnRpbmcKICAgIGJlY2F1c2UgaXQg aXMgbm90IGFsd2F5cyBwb3NzaWJsZSB0byBwcm9wZXJseSBhbmQgZWZmaWNpZW50bHkKICAgIGlu aXRpYWxpemUgJWZzLgoKU2lnbmVkLW9mZi1ieTogRGFuaWVsIEtpcGVyIDxkYW5pZWwua2lwZXJA b3JhY2xlLmNvbT4KLS0tCnY4IC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0gdXNlIHNobGQgaW5z dGVhZCBvZiBtb3YgYW5kIHNociBpbiBCT09UX0ZTIHNlZ21lbnQKICAgICBkZXNjcmlwdG9yIGJh c2UgYWRkcmVzcyBpbml0aWFsaXphdGlvbgogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gp LAogICAtIHNpbXBsaWZ5IGNvZGUgdXBkYXRpbmcgZnJhbWUgYWRkcmVzc2VzIGluIHBhZ2UgdGFi bGVzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gcHJpbnQgWGVuIGltYWdl IGJhc2UgYWRkcmVzc2VzIHVzaW5nICIlI2x4IiBmb3JtYXQKICAgICAoc3VnZ2VzdGVkIGJ5IEph biBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4g QmV1bGljaCkuCgp2NiAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIGxlYXZlIHN0YXRpYyBtYXBw aW5nIG9mIGZpcnN0CiAgICAgMTYgTWlCIGluIGwyX2lkZW50bWFwIGFzIGlzCiAgICAgKHN1Z2dl c3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gdXNlIHhlbl9waHlzX3N0YXJ0IGluc3RlYWQgb2Yg eGVuX2ltZ19sb2FkX2Jhc2VfYWRkcgogICAgIChzdWdnZXN0ZWQgYnkgRGFuaWVsIEtpcGVyIGFu ZCBKYW4gQmV1bGljaCksCiAgIC0gc2ltcGxpZnkgQk9PVF9GUyBzZWdtZW50IGRlc2NyaXB0b3IK ICAgICBiYXNlIGFkZHJlc3MgaW5pdGlhbGl6YXRpb24KICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBC ZXVsaWNoKSwKICAgLSBmaXggQk9PVF9GUyBzZWdtZW50IGxpbWl0CiAgICAgKHN1Z2dlc3RlZCBi eSBKYW4gQmV1bGljaCksCiAgIC0gZG8gbm90IHJlbmFtZSBzeW1fcGh5cyBpbiB0aGlzIHBhdGNo CiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gcmVuYW1lIGVzaV9vZmZzZXQv ZnNfb2Zmc2V0IHRvCiAgICAgc3ltX2VzaS9zeW1fZnMgcmVzcGVjdGl2ZWx5CiAgICAgKHN1Z2dl c3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gdXNlIGFkZCBpbnN0ZWFkIG9mIGxlYSBpbiBhc3Nl bWJseQogICAgIGVycm9yIHByaW50aW5nIGNvZGUKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVs aWNoKSwKICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGlj aCksCiAgIC0gaW1wcm92ZSBjb21taXQgbWVzc2FnZQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJl dWxpY2gpLAogICAtIHZhcmlvdXMgbWlub3IgY2xlYW51cHMgYW5kIGZpeGVzCiAgICAgKHN1Z2dl c3RlZCBieSBKYW4gQmV1bGljaCkuCgp2NCAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIGRvIG5v dCByZWxvY2F0ZSBYZW4gaW1hZ2UgaWYgYm9vdCBsb2FkZXIgZGlkIHdvcmsgZm9yIHVzCiAgICAg KHN1Z2dlc3RlZCBieSBBbmRyZXcgQ29vcGVyIGFuZCBKYW4gQmV1bGljaCksCiAgIC0gaW5pdGlh bGl6ZSB4ZW5faW1nX2xvYWRfYmFzZV9hZGRyIGluIEVGSSBib290IGNvZGUgdG9vLAogICAtIHBy b3Blcmx5IGluaXRpYWxpemUgdHJhbXBvbGluZV94ZW5fcGh5c19zdGFydCwKICAgLSBjYWxjdWxh dGUgWGVuIGltYWdlIGxvYWQgYmFzZSBhZGRyZXNzIGluCiAgICAgeDg2XzY0IGNvZGUgb3Vyc2Vs dmVzLAogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGNoYW5nZSBob3cgYW5k IHdoZW4gWGVuIGltYWdlIGJhc2UgYWRkcmVzcyBpcyBwcmludGVkLAogICAtIHVzZSAlZnMgaW5z dGVhZCBvZiAlZXNpIGZvciByZWxhdGl2ZSBhZGRyZXNzaW5nCiAgICAgKHN1Z2dlc3RlZCBieSBB bmRyZXcgQ29vcGVyIGFuZCBKYW4gQmV1bGljaCksCiAgIC0gY3JlYXRlIGVzaV9vZmZzZXQgYW5k IGZzX29mZnNldCgpIG1hY3JvcyBpbiBhc3NlbWJseSwKICAgLSBjYWxjdWxhdGUgPGZpbmFsLWV4 ZWMtYWRkcj4gbWtlbGYzMiBhcmd1bWVudCBhdXRvbWF0aWNhbGx5LAogICAtIG9wdGltaXplIGFu ZCBjbGVhbnVwIGNvZGUsCiAgIC0gaW1wcm92ZSBjb21tZW50cywKICAgLSBpbXByb3ZlIGNvbW1p dCBtZXNzYWdlLgoKdjMgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgLSBpbXByb3ZlIHNlZ21lbnQg cmVnaXN0ZXJzIGluaXRpYWxpemF0aW9uCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCks CiAgIC0gc2ltcGxpZnkgWGVuIGltYWdlIGxvYWQgYmFzZSBhZGRyZXNzIGNhbGN1bGF0aW9uCiAg ICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gdXNlICVlc2kgYW5kICVyMTVkIGlu c3RlYWQgb2YgJWVicCB0byBzdG9yZQogICAgIFhlbiBpbWFnZSBsb2FkIGJhc2UgYWRkcmVzcywK ICAgLSB1c2UgJWVzaSBpbnN0ZWFkIG9mICVmcyBmb3IgcmVsYXRpdmUgYWRkcmVzc2luZzsKICAg ICB0aGlzIHdheSB3ZSBnZXQgc2hvcnRlciBhbmQgc2ltcGxlciBjb2RlLAogICAtIHJlbmFtZSBz b21lIHZhcmlhYmxlcyBhbmQgY29uc3RhbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGlj aCksCiAgIC0gaW1wcm92ZSBjb21tZW50cwogICAgIChzdWdnZXN0ZWQgYnkgS29ucmFkIFJ6ZXN6 dXRlayBXaWxrKSwKICAgLSBpbXByb3ZlIGNvbW1pdCBtZXNzYWdlCiAgICAgKHN1Z2dlc3RlZCBi eSBKYW4gQmV1bGljaCkuCi0tLQogeGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TICAgICAgICAgIHwg IDE2MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCiB4ZW4vYXJjaC94ODYv Ym9vdC90cmFtcG9saW5lLlMgICAgfCAgICA1ICsrCiB4ZW4vYXJjaC94ODYvYm9vdC94ODZfNjQu UyAgICAgICAgfCAgIDIxICsrKy0tCiB4ZW4vYXJjaC94ODYvc2V0dXAuYyAgICAgICAgICAgICAg fCAgIDE0ICsrLS0KIHhlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYyB8ICAgIDMgKwog eGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmggICAgICAgIHwgICAgMiArLQogNiBmaWxlcyBjaGFu Z2VkLCAxNTUgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L2Jvb3QvaGVhZC5TIGIveGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TCmluZGV4IGE3 YmM0NjcuLmQ5OTJhOTUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L2hlYWQuUworKysg Yi94ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKQEAgLTEzLDEyICsxMywxNSBAQAogICAgICAgICAu Y29kZTMyCiAKICNkZWZpbmUgc3ltX3BoeXMoc3ltKSAgICAgKChzeW0pIC0gX19YRU5fVklSVF9T VEFSVCkKKyNkZWZpbmUgc3ltX2VzaShzeW0pICAgICAgc3ltX3BoeXMoc3ltKSglZXNpKQorI2Rl ZmluZSBzeW1fZnMoc3ltKSAgICAgICAlZnM6c3ltX3BoeXMoc3ltKQogCiAjZGVmaW5lIEJPT1Rf Q1MzMiAgICAgICAgMHgwMDA4CiAjZGVmaW5lIEJPT1RfQ1M2NCAgICAgICAgMHgwMDEwCiAjZGVm aW5lIEJPT1RfRFMgICAgICAgICAgMHgwMDE4CiAjZGVmaW5lIEJPT1RfUFNFVURPUk1fQ1MgMHgw MDIwCiAjZGVmaW5lIEJPT1RfUFNFVURPUk1fRFMgMHgwMDI4CisjZGVmaW5lIEJPT1RfRlMgICAg ICAgICAgMHgwMDMwCiAKICNkZWZpbmUgTUIyX0hUKG5hbWUpICAgICAgKE1VTFRJQk9PVDJfSEVB REVSX1RBR18jI25hbWUpCiAjZGVmaW5lIE1CMl9UVChuYW1lKSAgICAgIChNVUxUSUJPT1QyX1RB R19UWVBFXyMjbmFtZSkKQEAgLTEwNSw3ICsxMDgsOCBAQCBtdWx0aWJvb3QyX2hlYWRlcl9zdGFy dDoKIAogICAgICAgICAud29yZCAgIDAKIGdkdF9ib290X2Rlc2NyOgotICAgICAgICAud29yZCAg IDYqOC0xCisgICAgICAgIC53b3JkICAgNyo4LTEKK2dkdF9ib290X2Jhc2U6CiAgICAgICAgIC5s b25nICAgc3ltX3BoeXModHJhbXBvbGluZV9nZHQpCiAgICAgICAgIC5sb25nICAgMCAvKiBOZWVk ZWQgZm9yIDY0LWJpdCBsZ2R0ICovCiAKQEAgLTEyNiwyNyArMTMwLDI3IEBAIGVmaV9wbGF0Zm9y bToKICAgICAgICAgLnNlY3Rpb24gLmluaXQudGV4dCwgImF4IiwgQHByb2diaXRzCiAKIGJhZF9j cHU6Ci0gICAgICAgIG1vdiAgICAgJChzeW1fcGh5cyguTGJhZF9jcHVfbXNnKSksJWVzaSAjIEVy cm9yIG1lc3NhZ2UKKyAgICAgICAgYWRkICAgICAkc3ltX3BoeXMoLkxiYWRfY3B1X21zZyksJWVz aSAgICMgRXJyb3IgbWVzc2FnZQogICAgICAgICBqbXAgICAgIC5MZ2V0X3Z0Ygogbm90X211bHRp Ym9vdDoKLSAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9tc2cpKSwlZXNpICMg RXJyb3IgbWVzc2FnZQorICAgICAgICBhZGQgICAgICRzeW1fcGh5cyguTGJhZF9sZHJfbXNnKSwl ZXNpICAgIyBFcnJvciBtZXNzYWdlCiAgICAgICAgIGptcCAgICAgLkxnZXRfdnRiCiAuTG1iMl9u b19zdDoKLSAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9uc3QpKSwlZXNpICMg RXJyb3IgbWVzc2FnZQorICAgICAgICBhZGQgICAgICRzeW1fcGh5cyguTGJhZF9sZHJfbnN0KSwl ZXNpICAgIyBFcnJvciBtZXNzYWdlCiAgICAgICAgIGptcCAgICAgLkxnZXRfdnRiCiAuTG1iMl9u b19paDoKLSAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9uaWgpKSwlZXNpICMg RXJyb3IgbWVzc2FnZQorICAgICAgICBhZGQgICAgICRzeW1fcGh5cyguTGJhZF9sZHJfbmloKSwl ZXNpICAgIyBFcnJvciBtZXNzYWdlCiAgICAgICAgIGptcCAgICAgLkxnZXRfdnRiCiAuTG1iMl9u b19iczoKLSAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9uYnMpKSwlZXNpICMg RXJyb3IgbWVzc2FnZQorICAgICAgICBhZGQgICAgICRzeW1fcGh5cyguTGJhZF9sZHJfbmJzKSwl ZXNpICAgIyBFcnJvciBtZXNzYWdlCiAgICAgICAgIHhvciAgICAgJWVkaSwlZWRpICAgICAgICAg ICAgICAgICAgICAgICAjIE5vIFZHQSB0ZXh0IGJ1ZmZlcgogICAgICAgICBqbXAgICAgIC5Mc2Vu ZF9jaHIKIC5MbWIyX2VmaV9pYV8zMjoKLSAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFk X2VmaV9tc2cpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQorICAgICAgICBhZGQgICAgICRzeW1fcGh5 cyguTGJhZF9lZmlfbXNnKSwlZXNpICAgIyBFcnJvciBtZXNzYWdlCiAgICAgICAgIHhvciAgICAg JWVkaSwlZWRpICAgICAgICAgICAgICAgICAgICAgICAjIE5vIFZHQSB0ZXh0IGJ1ZmZlcgogICAg ICAgICBqbXAgICAgIC5Mc2VuZF9jaHIKIC5MZ2V0X3Z0YjoKLSAgICAgICAgbW92ICAgICBzeW1f cGh5cyh2Z2FfdGV4dF9idWZmZXIpLCVlZGkKKyAgICAgICAgbW92ICAgICBzeW1fZXNpKHZnYV90 ZXh0X2J1ZmZlciksJWVkaQogLkxzZW5kX2NocjoKICAgICAgICAgbW92ICAgICAoJWVzaSksJWJs CiAgICAgICAgIHRlc3QgICAgJWJsLCVibCAgICAgICAgIyBUZXJtaW5hdGUgb24gJ1wwJyBzZW50 aW5lbApAQCAtMTc1LDYgKzE3OSw5IEBAIF9fZWZpNjRfc3RhcnQ6CiAgICAgICAgIC8qIFZHQSBp cyBub3QgYXZhaWxhYmxlIG9uIEVGSSBwbGF0Zm9ybXMuICovCiAgICAgICAgIG1vdmwgICAkMCx2 Z2FfdGV4dF9idWZmZXIoJXJpcCkKIAorICAgICAgICAvKiBMb2FkIFhlbiBpbWFnZSBsb2FkIGJh c2UgYWRkcmVzcy4gKi8KKyAgICAgICAgbGVhICAgICBfX2ltYWdlX2Jhc2VfXyglcmlwKSwlcjE1 ZAorCiAgICAgICAgIC8qIENoZWNrIGZvciBNdWx0aWJvb3QyIGJvb3Rsb2FkZXIuICovCiAgICAg ICAgIGNtcCAgICAgJE1VTFRJQk9PVDJfQk9PVExPQURFUl9NQUdJQywlZWF4CiAgICAgICAgIGpl ICAgICAgLkxlZmlfbXVsdGlib290Ml9wcm90bwpAQCAtMzAwLDYgKzMwNyw5IEBAIHJ1bl9iczoK IAogICAgICAgICBwb3AgICAgICVyYXgKIAorICAgICAgICAvKiBTdG9yZSBYZW4gaW1hZ2UgbG9h ZCBiYXNlIGFkZHJlc3MgaW4gcGxhY2UgYWNjZXNzaWJsZSBmb3IgMzItYml0IGNvZGUuICovCisg ICAgICAgIG1vdiAgICAgJXIxNWQsJWVzaQorCiAgICAgICAgIC8qIEp1bXAgdG8gdHJhbXBvbGlu ZV9zZXR1cCBhZnRlciBzd2l0Y2hpbmcgQ1BVIHRvIHg4Nl8zMiBtb2RlLiAqLwogICAgICAgICBs ZWEgICAgIHRyYW1wb2xpbmVfc2V0dXAoJXJpcCksJWVkaQogCkBAIC0zMDcsNiArMzE3LDcgQEAg eDg2XzMyX3N3aXRjaDoKICAgICAgICAgY2xpCiAKICAgICAgICAgLyogSW5pdGlhbGl6ZSBHRFRS LiAqLworICAgICAgICBhZGQgICAgICVlc2ksZ2R0X2Jvb3RfYmFzZSglcmlwKQogICAgICAgICBs Z2R0ICAgIGdkdF9ib290X2Rlc2NyKCVyaXApCiAKICAgICAgICAgLyogUmVsb2FkIGNvZGUgc2Vs ZWN0b3IuICovCkBAIC0zNDIsMTIgKzM1Myw4IEBAIF9fc3RhcnQ6CiAgICAgICAgIGNsZAogICAg ICAgICBjbGkKIAotICAgICAgICAvKiBJbml0aWFsaXNlIEdEVCBhbmQgYmFzaWMgZGF0YSBzZWdt ZW50cy4gKi8KLSAgICAgICAgbGdkdCAgICAlY3M6c3ltX3BoeXMoZ2R0X2Jvb3RfZGVzY3IpCi0g ICAgICAgIG1vdiAgICAgJEJPT1RfRFMsJWVjeAotICAgICAgICBtb3YgICAgICVlY3gsJWRzCi0g ICAgICAgIG1vdiAgICAgJWVjeCwlZXMKLSAgICAgICAgbW92ICAgICAlZWN4LCVzcworICAgICAg ICAvKiBMb2FkIGRlZmF1bHQgWGVuIGltYWdlIGxvYWQgYmFzZSBhZGRyZXNzLiAqLworICAgICAg ICBtb3YgICAgICRzeW1fcGh5cyhfX2ltYWdlX2Jhc2VfXyksJWVzaQogCiAgICAgICAgIC8qIEJv b3Rsb2FkZXJzIG1heSBzZXQgbXVsdGlib290ezEsMn0ubWVtX2xvd2VyIHRvIGEgbm9uemVybyB2 YWx1ZS4gKi8KICAgICAgICAgeG9yICAgICAlZWR4LCVlZHgKQEAgLTQwNCw2ICs0MTEsMjUgQEAg X19zdGFydDoKICAgICAgICAgam1wICAgICAuTG1iMl90c2l6ZQogCiB0cmFtcG9saW5lX2Jpb3Nf c2V0dXA6CisgICAgICAgIC8qCisgICAgICAgICAqIENhbGxlZCBvbiBsZWdhY3kgQklPUyBwbGF0 Zm9ybXMgb25seS4KKyAgICAgICAgICoKKyAgICAgICAgICogSW5pdGlhbGl6ZSBHRFRSIGFuZCBi YXNpYyBkYXRhIHNlZ21lbnRzLgorICAgICAgICAgKi8KKyAgICAgICAgYWRkICAgICAlZXNpLHN5 bV9lc2koZ2R0X2Jvb3RfYmFzZSkKKyAgICAgICAgbGdkdCAgICBzeW1fZXNpKGdkdF9ib290X2Rl c2NyKQorCisgICAgICAgIG1vdiAgICAgJEJPT1RfRFMsJWVjeAorICAgICAgICBtb3YgICAgICVl Y3gsJWRzCisgICAgICAgIG1vdiAgICAgJWVjeCwlZXMKKyAgICAgICAgbW92ICAgICAlZWN4LCVz cworICAgICAgICAvKiAlZXNwIGlzIGluaXRpYWxpemVkIGxhdGVyLiAqLworCisgICAgICAgIC8q IExvYWQgbnVsbCBkZXNjcmlwdG9yIHRvIHVudXNlZCBzZWdtZW50IHJlZ2lzdGVycy4gKi8KKyAg ICAgICAgeG9yICAgICAlZWN4LCVlY3gKKyAgICAgICAgbW92ICAgICAlZWN4LCVmcworICAgICAg ICBtb3YgICAgICVlY3gsJWdzCisKICAgICAgICAgLyogU2V0IHVwIHRyYW1wb2xpbmUgc2VnbWVu dCA2NGsgYmVsb3cgRUJEQSAqLwogICAgICAgICBtb3Z6d2wgIDB4NDBlLCVlY3ggICAgICAgICAg LyogRUJEQSBzZWdtZW50ICovCiAgICAgICAgIGNtcCAgICAgJDB4YTAwMCwlZWN4ICAgICAgICAv KiBzYW5pdHkgY2hlY2sgKGhpZ2gpICovCkBAIC00MzEsMzIgKzQ1Nyw2NCBAQCB0cmFtcG9saW5l X2Jpb3Nfc2V0dXA6CiAgICAgICAgIHhvciAgICAgJWNsLCAlY2wKIAogdHJhbXBvbGluZV9zZXR1 cDoKKyAgICAgICAgLyoKKyAgICAgICAgICogQ2FsbGVkIG9uIGxlZ2FjeSBCSU9TIGFuZCBFRkkg cGxhdGZvcm1zLgorICAgICAgICAgKgorICAgICAgICAgKiBJbml0aWFsaXplIDAtMTUgYml0cyBv ZiBCT09UX0ZTIHNlZ21lbnQgZGVzY3JpcHRvciBiYXNlIGFkZHJlc3MuCisgICAgICAgICAqLwor ICAgICAgICBtb3YgICAgICVzaSxCT09UX0ZTKzIrc3ltX2VzaSh0cmFtcG9saW5lX2dkdCkKKwor ICAgICAgICAvKiBJbml0aWFsaXplIDE2LTIzIGJpdHMgb2YgQk9PVF9GUyBzZWdtZW50IGRlc2Ny aXB0b3IgYmFzZSBhZGRyZXNzLiAqLworICAgICAgICBzaGxkICAgICQxNiwlZXNpLCVlZHgKKyAg ICAgICAgbW92ICAgICAlZGwsQk9PVF9GUys0K3N5bV9lc2kodHJhbXBvbGluZV9nZHQpCisKKyAg ICAgICAgLyogSW5pdGlhbGl6ZSAyNC0zMSBiaXRzIG9mIEJPT1RfRlMgc2VnbWVudCBkZXNjcmlw dG9yIGJhc2UgYWRkcmVzcy4gKi8KKyAgICAgICAgbW92ICAgICAlZGgsQk9PVF9GUys3K3N5bV9l c2kodHJhbXBvbGluZV9nZHQpCisKKyAgICAgICAgLyoKKyAgICAgICAgICogSW5pdGlhbGl6ZSAl ZnMgYW5kIGxhdGVyIHVzZSBpdCB0byBhY2Nlc3MgWGVuIGRhdGEgaWYgcG9zc2libGUuCisgICAg ICAgICAqIEFjY29yZGluZyB0byBJbnRlbCA2NCBhbmQgSUEtMzIgQXJjaGl0ZWN0dXJlcyBTb2Z0 d2FyZSBEZXZlbG9wZXIncworICAgICAgICAgKiBNYW51YWwgaXQgaXMgc2FmZSB0byBkbyB0aGF0 IHdpdGhvdXQgcmVsb2FkaW5nIEdEVFIgYmVmb3JlLgorICAgICAgICAgKi8KKyAgICAgICAgbW92 ICAgICAkQk9PVF9GUywlZWR4CisgICAgICAgIG1vdiAgICAgJWVkeCwlZnMKKwogICAgICAgICAv KiBTYXZlIHRyYW1wb2xpbmUgYWRkcmVzcyBmb3IgbGF0ZXIgdXNlLiAqLwogICAgICAgICBzaGwg ICAgICQ0LCAlZWN4Ci0gICAgICAgIG1vdiAgICAgJWVjeCxzeW1fcGh5cyh0cmFtcG9saW5lX3Bo eXMpCisgICAgICAgIG1vdiAgICAgJWVjeCxzeW1fZnModHJhbXBvbGluZV9waHlzKQorCisgICAg ICAgIC8qIFNhdmUgWGVuIGltYWdlIGxvYWQgYmFzZSBhZGRyZXNzIGZvciBsYXRlciB1c2UuICov CisgICAgICAgIG1vdiAgICAgJWVzaSxzeW1fZnMoeGVuX3BoeXNfc3RhcnQpCisgICAgICAgIG1v diAgICAgJWVzaSxzeW1fZnModHJhbXBvbGluZV94ZW5fcGh5c19zdGFydCkKKworICAgICAgICAv KiBTZXR1cCBzdGFjay4gJXNzIHdhcyBpbml0aWFsaXplZCBlYXJsaWVyLiAqLworICAgICAgICBs ZWEgICAgIDEwMjQrc3ltX2VzaShjcHUwX3N0YWNrKSwlZXNwCiAKICAgICAgICAgLyogU2F2ZSB0 aGUgTXVsdGlib290IGluZm8gc3RydWN0IChhZnRlciByZWxvY2F0aW9uKSBmb3IgbGF0ZXIgdXNl LiAqLwotICAgICAgICBtb3YgICAgICRzeW1fcGh5cyhjcHUwX3N0YWNrKSsxMDI0LCVlc3AKICAg ICAgICAgcHVzaCAgICAlZWN4ICAgICAgICAgICAgICAgIC8qIEJvb3QgdHJhbXBvbGluZSBhZGRy ZXNzLiAqLwogICAgICAgICBwdXNoICAgICVlYnggICAgICAgICAgICAgICAgLyogTXVsdGlib290 IGluZm9ybWF0aW9uIGFkZHJlc3MuICovCiAgICAgICAgIHB1c2ggICAgJWVheCAgICAgICAgICAg ICAgICAvKiBNdWx0aWJvb3QgbWFnaWMuICovCiAgICAgICAgIGNhbGwgICAgcmVsb2MKLSAgICAg ICAgbW92ICAgICAlZWF4LHN5bV9waHlzKG11bHRpYm9vdF9wdHIpCisgICAgICAgIG1vdiAgICAg JWVheCxzeW1fZnMobXVsdGlib290X3B0cikKIAogICAgICAgICAvKgogICAgICAgICAgKiBEbyBu b3QgemVybyBCU1Mgb24gRUZJIHBsYXRmb3JtIGhlcmUuCiAgICAgICAgICAqIEl0IHdhcyBpbml0 aWFsaXplZCBlYXJsaWVyLgogICAgICAgICAgKi8KLSAgICAgICAgY21wYiAgICAkMCxzeW1fcGh5 cyhlZmlfcGxhdGZvcm0pCisgICAgICAgIGNtcGIgICAgJDAsc3ltX2ZzKGVmaV9wbGF0Zm9ybSkK ICAgICAgICAgam56ICAgICAxZgogCiAgICAgICAgIC8qIEluaXRpYWxpemUgQlNTIChubyBuYXN0 eSBzdXJwcmlzZXMhKS4gKi8KICAgICAgICAgbW92ICAgICAkc3ltX3BoeXMoX19ic3Nfc3RhcnQp LCVlZGkKICAgICAgICAgbW92ICAgICAkc3ltX3BoeXMoX19ic3NfZW5kKSwlZWN4CisgICAgICAg IHB1c2ggICAgJWZzCisgICAgICAgIHBvcCAgICAgJWVzCiAgICAgICAgIHN1YiAgICAgJWVkaSwl ZWN4CiAgICAgICAgIHhvciAgICAgJWVheCwlZWF4CiAgICAgICAgIHNociAgICAgJDIsJWVjeAog ICAgICAgICByZXAgc3Rvc2wKKyAgICAgICAgcHVzaCAgICAlZHMKKyAgICAgICAgcG9wICAgICAl ZXMKIAogMToKICAgICAgICAgLyogSW50ZXJyb2dhdGUgQ1BVIGV4dGVuZGVkIGZlYXR1cmVzIHZp YSBDUFVJRC4gKi8KQEAgLTQ3MCw4ICs1MjgsOCBAQCB0cmFtcG9saW5lX3NldHVwOgogICAgICAg ICBqYmUgICAgIDFmCiAgICAgICAgIG1vdiAgICAgJDB4ODAwMDAwMDEsJWVheAogICAgICAgICBj cHVpZAotMTogICAgICBtb3YgICAgICVlZHgsc3ltX3BoeXMoY3B1aWRfZXh0X2ZlYXR1cmVzKQot ICAgICAgICBtb3YgICAgICVlZHgsc3ltX3BoeXMoYm9vdF9jcHVfZGF0YSkrQ1BVSU5GT19GRUFU VVJFX09GRlNFVChYODZfRkVBVFVSRV9MTSkKKzE6ICAgICAgbW92ICAgICAlZWR4LHN5bV9mcyhj cHVpZF9leHRfZmVhdHVyZXMpCisgICAgICAgIG1vdiAgICAgJWVkeCxzeW1fZnMoYm9vdF9jcHVf ZGF0YSkrQ1BVSU5GT19GRUFUVVJFX09GRlNFVChYODZfRkVBVFVSRV9MTSkKIAogICAgICAgICAv KiBDaGVjayBmb3IgYXZhaWxhYmlsaXR5IG9mIGxvbmcgbW9kZS4gKi8KICAgICAgICAgYnQgICAg ICAkY3B1ZmVhdF9iaXQoWDg2X0ZFQVRVUkVfTE0pLCVlZHgKQEAgLTQ3OSwxNSArNTM3LDUyIEBA IHRyYW1wb2xpbmVfc2V0dXA6CiAKICAgICAgICAgLyogU3Rhc2ggVFNDIHRvIGNhbGN1bGF0ZSBh IGdvb2QgYXBwcm94aW1hdGlvbiBvZiB0aW1lLXNpbmNlLWJvb3QgKi8KICAgICAgICAgcmR0c2MK LSAgICAgICAgbW92ICAgICAlZWF4LHN5bV9waHlzKGJvb3RfdHNjX3N0YW1wKQotICAgICAgICBt b3YgICAgICVlZHgsc3ltX3BoeXMoYm9vdF90c2Nfc3RhbXArNCkKKyAgICAgICAgbW92ICAgICAl ZWF4LHN5bV9mcyhib290X3RzY19zdGFtcCkKKyAgICAgICAgbW92ICAgICAlZWR4LHN5bV9mcyhi b290X3RzY19zdGFtcCkrNAorCisgICAgICAgIC8qCisgICAgICAgICAqIFVwZGF0ZSBmcmFtZSBh ZGRyZXNzZXMgaW4gcGFnZSB0YWJsZXMgZXhjbHVkaW5nIGwyX2lkZW50bWFwCisgICAgICAgICAq IHdpdGhvdXQgaXRzIGZpcnN0IGVudHJ5IHdoaWNoIHBvaW50cyB0byBsMV9pZGVudG1hcC4KKyAg ICAgICAgICovCisgICAgICAgIG1vdiAgICAgJCgoX19wYWdlX3RhYmxlc19lbmQtX19wYWdlX3Rh Ymxlc19zdGFydCkvOCksJWVjeAorICAgICAgICBtb3YgICAgICQoKChsMl9pZGVudG1hcC1fX3Bh Z2VfdGFibGVzX3N0YXJ0KS84KSsxKSwlZWR4CisxOiAgICAgIGNtcCAgICAgJCgobDJfaWRlbnRt YXArbDJfaWRlbnRtYXBfc2l6ZW9mLV9fcGFnZV90YWJsZXNfc3RhcnQpLzgpLCVlY3gKKyAgICAg ICAgY21vdmUgICAlZWR4LCVlY3gKKyAgICAgICAgdGVzdGwgICAkX1BBR0VfUFJFU0VOVCxzeW1f ZnMoX19wYWdlX3RhYmxlc19zdGFydCktOCgsJWVjeCw4KQorICAgICAgICBqeiAgICAgIDJmCisg ICAgICAgIGFkZCAgICAgJWVzaSxzeW1fZnMoX19wYWdlX3RhYmxlc19zdGFydCktOCgsJWVjeCw4 KQorMjogICAgICBsb29wICAgIDFiCisKKyAgICAgICAgLyogSW5pdGlhbGl6ZSBMMiBib290LW1h cC9kaXJlY3QgbWFwIHBhZ2UgdGFibGUgZW50cmllcyAoMTZNQikuICovCisgICAgICAgIGxlYSAg ICAgc3ltX2VzaShzdGFydCksJWVieAorICAgICAgICBsZWEgICAgICgxPDxMMl9QQUdFVEFCTEVf U0hJRlQpKjcrKFBBR0VfSFlQRVJWSVNPUnxfUEFHRV9QU0UpKCVlYngpLCVlYXgKKyAgICAgICAg c2hyICAgICAkKEwyX1BBR0VUQUJMRV9TSElGVC0zKSwlZWJ4CisgICAgICAgIG1vdiAgICAgJDgs JWVjeAorMTogICAgICBtb3YgICAgICVlYXgsc3ltX2ZzKGwyX2Jvb3RtYXApLTgoJWVieCwlZWN4 LDgpCisgICAgICAgIG1vdiAgICAgJWVheCxzeW1fZnMobDJfaWRlbnRtYXApLTgoJWVieCwlZWN4 LDgpCisgICAgICAgIHN1YiAgICAgJCgxPDxMMl9QQUdFVEFCTEVfU0hJRlQpLCVlYXgKKyAgICAg ICAgbG9vcCAgICAxYgorCisgICAgICAgIC8qIEluaXRpYWxpemUgTDMgYm9vdC1tYXAgcGFnZSBk aXJlY3RvcnkgZW50cnkuICovCisgICAgICAgIGxlYSAgICAgX19QQUdFX0hZUEVSVklTT1IrKEwy X1BBR0VUQUJMRV9FTlRSSUVTKjgpKjMrc3ltX2VzaShsMl9ib290bWFwKSwlZWF4CisgICAgICAg IG1vdiAgICAgJDQsJWVjeAorMTogICAgICBtb3YgICAgICVlYXgsc3ltX2ZzKGwzX2Jvb3RtYXAp LTgoLCVlY3gsOCkKKyAgICAgICAgc3ViICAgICAkKEwyX1BBR0VUQUJMRV9FTlRSSUVTKjgpLCVl YXgKKyAgICAgICAgbG9vcCAgICAxYgorCisgICAgICAgIC8qCisgICAgICAgICAqIER1cmluZyBi b290LCBob29rIDRrQiBtYXBwaW5ncyBvZiBmaXJzdCAyTUIgb2YgbWVtb3J5IGludG8gTDIuCisg ICAgICAgICAqIFRoaXMgYXZvaWRzIG1peGluZyBjYWNoYWJpbGl0eSBmb3IgdGhlIGxlZ2FjeSBW R0EgcmVnaW9uLgorICAgICAgICAgKi8KKyAgICAgICAgbGVhICAgICBfX1BBR0VfSFlQRVJWSVNP UitzeW1fZXNpKGwxX2lkZW50bWFwKSwlZWRpCisgICAgICAgIG1vdiAgICAgJWVkaSxzeW1fZnMo bDJfYm9vdG1hcCkKIAogICAgICAgICAvKiBBcHBseSByZWxvY2F0aW9ucyB0byBib290c3RyYXAg dHJhbXBvbGluZS4gKi8KLSAgICAgICAgbW92ICAgICBzeW1fcGh5cyh0cmFtcG9saW5lX3BoeXMp LCVlZHgKKyAgICAgICAgbW92ICAgICBzeW1fZnModHJhbXBvbGluZV9waHlzKSwlZWR4CiAgICAg ICAgIG1vdiAgICAgJHN5bV9waHlzKF9fdHJhbXBvbGluZV9yZWxfc3RhcnQpLCVlZGkKIDE6Ci0g ICAgICAgIG1vdiAgICAgKCVlZGkpLCVlYXgKLSAgICAgICAgYWRkICAgICAlZWR4LCglZWRpLCVl YXgpCisgICAgICAgIG1vdiAgICAgJWZzOiglZWRpKSwlZWF4CisgICAgICAgIGFkZCAgICAgJWVk eCwlZnM6KCVlZGksJWVheCkKICAgICAgICAgYWRkICAgICAkNCwlZWRpCiAgICAgICAgIGNtcCAg ICAgJHN5bV9waHlzKF9fdHJhbXBvbGluZV9yZWxfc3RvcCksJWVkaQogICAgICAgICBqYiAgICAg IDFiCkBAIC00OTYsMjggKzU5MSwyOSBAQCB0cmFtcG9saW5lX3NldHVwOgogICAgICAgICBzaHIg ICAgICQ0LCVlZHgKICAgICAgICAgbW92ICAgICAkc3ltX3BoeXMoX190cmFtcG9saW5lX3NlZ19z dGFydCksJWVkaQogMToKLSAgICAgICAgbW92ICAgICAoJWVkaSksJWVheAotICAgICAgICBtb3Yg ICAgICVkeCwoJWVkaSwlZWF4KQorICAgICAgICBtb3YgICAgICVmczooJWVkaSksJWVheAorICAg ICAgICBtb3YgICAgICVkeCwlZnM6KCVlZGksJWVheCkKICAgICAgICAgYWRkICAgICAkNCwlZWRp CiAgICAgICAgIGNtcCAgICAgJHN5bV9waHlzKF9fdHJhbXBvbGluZV9zZWdfc3RvcCksJWVkaQog ICAgICAgICBqYiAgICAgIDFiCiAKICAgICAgICAgLyogRG8gbm90IHBhcnNlIGNvbW1hbmQgbGlu ZSBvbiBFRkkgcGxhdGZvcm0gaGVyZS4gKi8KLSAgICAgICAgY21wYiAgICAkMCxzeW1fcGh5cyhl ZmlfcGxhdGZvcm0pCisgICAgICAgIGNtcGIgICAgJDAsc3ltX2ZzKGVmaV9wbGF0Zm9ybSkKICAg ICAgICAgam56ICAgICAxZgogCiAgICAgICAgIC8qIEJhaWwgaWYgdGhlcmUgaXMgbm8gY29tbWFu ZCBsaW5lIHRvIHBhcnNlLiAqLwotICAgICAgICBtb3YgICAgIHN5bV9waHlzKG11bHRpYm9vdF9w dHIpLCVlYngKKyAgICAgICAgbW92ICAgICBzeW1fZnMobXVsdGlib290X3B0ciksJWVieAogICAg ICAgICB0ZXN0bCAgICRNQklfQ01ETElORSxNQl9mbGFncyglZWJ4KQogICAgICAgICBqeiAgICAg IDFmCiAKLSAgICAgICAgcHVzaGwgICAkc3ltX3BoeXMoZWFybHlfYm9vdF9vcHRzKQorICAgICAg ICBsZWEgICAgIHN5bV9lc2koZWFybHlfYm9vdF9vcHRzKSwlZWF4CisgICAgICAgIHB1c2ggICAg JWVheAogICAgICAgICBwdXNobCAgIE1CX2NtZGxpbmUoJWVieCkKICAgICAgICAgY2FsbCAgICBj bWRsaW5lX3BhcnNlX2Vhcmx5CiAKIDE6CiAgICAgICAgIC8qIFN3aXRjaCB0byBsb3ctbWVtb3J5 IHN0YWNrLiAgKi8KLSAgICAgICAgbW92ICAgICBzeW1fcGh5cyh0cmFtcG9saW5lX3BoeXMpLCVl ZGkKKyAgICAgICAgbW92ICAgICBzeW1fZnModHJhbXBvbGluZV9waHlzKSwlZWRpCiAgICAgICAg IGxlYSAgICAgMHgxMDAwMCglZWRpKSwlZXNwCiAgICAgICAgIGxlYSAgICAgdHJhbXBvbGluZV9i b290X2NwdV9lbnRyeS10cmFtcG9saW5lX3N0YXJ0KCVlZGkpLCVlYXgKICAgICAgICAgcHVzaGwg ICAkQk9PVF9DUzMyCkBAIC01MjYsNyArNjIyLDcgQEAgdHJhbXBvbGluZV9zZXR1cDoKICAgICAg ICAgLyogQ29weSBib290c3RyYXAgdHJhbXBvbGluZSB0byBsb3cgbWVtb3J5LCBiZWxvdyAxTUIu ICovCiAgICAgICAgIG1vdiAgICAgJHN5bV9waHlzKHRyYW1wb2xpbmVfc3RhcnQpLCVlc2kKICAg ICAgICAgbW92ICAgICAkKCh0cmFtcG9saW5lX2VuZCAtIHRyYW1wb2xpbmVfc3RhcnQpIC8gNCks JWVjeAotICAgICAgICByZXAgbW92c2wKKyAgICAgICAgcmVwIG1vdnNsICVmczooJWVzaSksJWVz OiglZWRpKQogCiAgICAgICAgIC8qIEp1bXAgaW50byB0aGUgcmVsb2NhdGVkIHRyYW1wb2xpbmUu ICovCiAgICAgICAgIGxyZXQKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9ib290L3RyYW1wb2xp bmUuUyBiL3hlbi9hcmNoL3g4Ni9ib290L3RyYW1wb2xpbmUuUwppbmRleCAyNzE1ZDE3Li42NGY4 ZWZkIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYm9vdC90cmFtcG9saW5lLlMKKysrIGIveGVu L2FyY2gveDg2L2Jvb3QvdHJhbXBvbGluZS5TCkBAIC01NCw2ICs1NCwxMSBAQCB0cmFtcG9saW5l X2dkdDoKICAgICAgICAgLyogMHgwMDI4OiByZWFsLW1vZGUgZGF0YSBAIEJPT1RfVFJBTVBPTElO RSAqLwogICAgICAgICAubG9uZyAgIDB4MDAwMGZmZmYKICAgICAgICAgLmxvbmcgICAweDAwMDA5 MjAwCisgICAgICAgIC8qCisgICAgICAgICAqIDB4MDAzMDogcmluZyAwIFhlbiBkYXRhLCAxNiBN aUIgc2l6ZSwgYmFzZQorICAgICAgICAgKiBhZGRyZXNzIGlzIGNvbXB1dGVkIGR1cmluZyBydW50 aW1lLgorICAgICAgICAgKi8KKyAgICAgICAgLnF1YWQgICAweDAwYzA5MjAwMDAwMDBmZmYKIAog ICAgICAgICAucHVzaHNlY3Rpb24gLnRyYW1wb2xpbmVfcmVsLCAiYSIKICAgICAgICAgLmxvbmcg ICB0cmFtcG9saW5lX2dkdCArIEJPT1RfUFNFVURPUk1fQ1MgKyAyIC0gLgpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L2Jvb3QveDg2XzY0LlMgYi94ZW4vYXJjaC94ODYvYm9vdC94ODZfNjQuUwpp bmRleCA3ODkwMzc0Li43MzkyMDA0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYm9vdC94ODZf NjQuUworKysgYi94ZW4vYXJjaC94ODYvYm9vdC94ODZfNjQuUwpAQCAtODEsNyArODEsNiBAQCBH TE9CQUwoYm9vdF9jcHVfY29tcGF0X2dkdF90YWJsZSkKICAgICAgICAgLnF1YWQgMHgwMDAwOTEw MDAwMDAwMDAwICAgICAvKiBwZXItQ1BVIGVudHJ5IChsaW1pdCA9PSBjcHUpICAgICAgKi8KICAg ICAgICAgLmFsaWduIFBBR0VfU0laRSwgMAogCi1HTE9CQUwoX19wYWdlX3RhYmxlc19zdGFydCkK IC8qCiAgKiBNYXBwaW5nIG9mIGZpcnN0IDIgbWVnYWJ5dGVzIG9mIG1lbW9yeS4gVGhpcyBpcyBt YXBwZWQgd2l0aCA0a0IgbWFwcGluZ3MKICAqIHRvIGF2b2lkIHR5cGUgY29uZmxpY3RzIHdpdGgg Zml4ZWQtcmFuZ2UgTVRSUnMgY292ZXJpbmcgdGhlIGxvd2VzdCBtZWdhYnl0ZQpAQCAtMTAyLDYg KzEwMSwxMyBAQCBsMV9pZGVudG1hcDoKICAgICAgICAgLnNpemUgbDFfaWRlbnRtYXAsIC4gLSBs MV9pZGVudG1hcAogCiAvKgorICogX19wYWdlX3RhYmxlc19zdGFydCBkb2VzIG5vdCBjb3ZlciBs MV9pZGVudG1hcCBiZWNhdXNlIGl0IChsMV9pZGVudG1hcCkKKyAqIGNvbnRhaW5zIDEtMSBtYXBw aW5ncy4gVGhpcyBtZWFucyB0aGF0IGZyYW1lIGFkZHJlc3NlcyBvZiB0aGVzZSBtYXBwaW5ncwor ICogYXJlIHN0YXRpYyBhbmQgc2hvdWxkIG5vdCBiZSB1cGRhdGVkIGR1cmluZyBydW50aW1lLgor ICovCitHTE9CQUwoX19wYWdlX3RhYmxlc19zdGFydCkKKworLyoKICAqIFNwYWNlIGZvciBtYXBw aW5nIHRoZSBmaXJzdCA0R0Igb2YgbWVtb3J5LCB3aXRoIHRoZSBmaXJzdCAxNiBtZWdhYnl0ZXMK ICAqIGFjdHVhbHkgbWFwcGVkIChtb3N0bHkgdXNpbmcgc3VwZXJwYWdlcykuICBVc2VzIDR4IDRr IHBhZ2VzLgogICovCkBAIC0xODYsMjEgKzE5MiwxNCBAQCBHTE9CQUwoaWRsZV9wZ190YWJsZSkK IAogR0xPQkFMKF9fcGFnZV90YWJsZXNfZW5kKQogCi0vKiBJbml0IHBhZ2V0YWJsZXMuICBFbm91 Z2ggcGFnZSBkaXJlY3RvcmllcyB0byBtYXAgaW50byB0aGUgYm90dG9tIDFHQi4gKi8KKy8qIElu aXQgcGFnZXRhYmxlcy4gRW5vdWdoIHBhZ2UgZGlyZWN0b3JpZXMgdG8gbWFwIGludG8gNEdCLiAq LwogICAgICAgICAuc2VjdGlvbiAuaW5pdC5kYXRhLCAiYSIsIEBwcm9nYml0cwogICAgICAgICAu YWxpZ24gUEFHRV9TSVpFLCAwCiAKIEdMT0JBTChsMl9ib290bWFwKQotICAgICAgICAucXVhZCBz eW1fcGh5cyhsMV9pZGVudG1hcCkgKyBfX1BBR0VfSFlQRVJWSVNPUgotICAgICAgICBpZHggPSAx Ci0gICAgICAgIC5yZXB0IDcKLSAgICAgICAgLnF1YWQgKGlkeCA8PCBMMl9QQUdFVEFCTEVfU0hJ RlQpIHwgX19QQUdFX0hZUEVSVklTT1IgfCBfUEFHRV9QU0UKLSAgICAgICAgaWR4ID0gaWR4ICsg MQotICAgICAgICAuZW5kcgotICAgICAgICAuZmlsbCBMMl9QQUdFVEFCTEVfRU5UUklFUyAtIDgs IDgsIDAKKyAgICAgICAgLmZpbGwgNCAqIEwyX1BBR0VUQUJMRV9FTlRSSUVTLCA4LCAwCiAgICAg ICAgIC5zaXplIGwyX2Jvb3RtYXAsIC4gLSBsMl9ib290bWFwCiAKIEdMT0JBTChsM19ib290bWFw KQotICAgICAgICAucXVhZCBzeW1fcGh5cyhsMl9ib290bWFwKSArIF9fUEFHRV9IWVBFUlZJU09S Ci0gICAgICAgIC5maWxsIEwzX1BBR0VUQUJMRV9FTlRSSUVTIC0gMSwgOCwgMAorICAgICAgICAu ZmlsbCBMM19QQUdFVEFCTEVfRU5UUklFUywgOCwgMAogICAgICAgICAuc2l6ZSBsM19ib290bWFw LCAuIC0gbDNfYm9vdG1hcApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3NldHVwLmMgYi94ZW4v YXJjaC94ODYvc2V0dXAuYwppbmRleCA1ZDA4MzBlLi41NjFhMTM5IDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvc2V0dXAuYworKysgYi94ZW4vYXJjaC94ODYvc2V0dXAuYwpAQCAtMzMwLDkgKzMz MCw2IEBAIHN0YXRpYyB2b2lkICpfX2luaXQgYm9vdHN0cmFwX21hcChjb25zdCBtb2R1bGVfdCAq bW9kKQogICAgIGlmICggc3RhcnQgPj0gZW5kICkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAg ICBpZiAoIGVuZCA8PSBCT09UU1RSQVBfTUFQX0JBU0UgKQotICAgICAgICByZXR1cm4gKHZvaWQg KikodW5zaWduZWQgbG9uZylzdGFydDsKLQogICAgIHJldCA9ICh2b2lkICopKG1hcF9jdXIgKyAo dW5zaWduZWQgbG9uZykoc3RhcnQgJiBtYXNrKSk7CiAgICAgc3RhcnQgJj0gfm1hc2s7CiAgICAg ZW5kID0gKGVuZCArIG1hc2spICYgfm1hc2s7CkBAIC03MTYsNiArNzEzLDggQEAgdm9pZCBfX2lu aXQgbm9yZXR1cm4gX19zdGFydF94ZW4odW5zaWduZWQgbG9uZyBtYmlfcCkKIAogICAgIHByaW50 aygiQ29tbWFuZCBsaW5lOiAlc1xuIiwgY21kbGluZSk7CiAKKyAgICBwcmludGsoIlhlbiBpbWFn ZSBsb2FkIGJhc2UgYWRkcmVzczogJSNseFxuIiwgeGVuX3BoeXNfc3RhcnQpOworCiAgICAgcHJp bnRrKCJWaWRlbyBpbmZvcm1hdGlvbjpcbiIpOwogCiAgICAgLyogUHJpbnQgVkdBIGRpc3BsYXkg bW9kZSBpbmZvcm1hdGlvbi4gKi8KQEAgLTk3Myw3ICs5NzIsNyBAQCB2b2lkIF9faW5pdCBub3Jl dHVybiBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogICAgICAgICAgICAgICAgICAg ICAvKiBOb3QgcHJlc2VudCwgMUdCIG1hcHBpbmcsIG9yIGFscmVhZHkgcmVsb2NhdGVkPyAqLwog ICAgICAgICAgICAgICAgICAgICBpZiAoICEobDNlX2dldF9mbGFncygqcGwzZSkgJiBfUEFHRV9Q UkVTRU5UKSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgIChsM2VfZ2V0X2ZsYWdzKCpwbDNl KSAmIF9QQUdFX1BTRSkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAobDNlX2dldF9wZm4o KnBsM2UpID4gMHgxMDAwKSApCisgICAgICAgICAgICAgICAgICAgICAgICAgKGwzZV9nZXRfcGZu KCpwbDNlKSA+IFBGTl9ET1dOKHhlbl9waHlzX3N0YXJ0KSkgKQogICAgICAgICAgICAgICAgICAg ICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICpwbDNlID0gbDNlX2Zyb21faW50 cHRlKGwzZV9nZXRfaW50cHRlKCpwbDNlKSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHhlbl9waHlzX3N0YXJ0KTsKQEAgLTk4Myw3ICs5ODIsNyBAQCB2b2lk IF9faW5pdCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogICAgICAg ICAgICAgICAgICAgICAgICAgLyogTm90IHByZXNlbnQsIFBTRSwgb3IgYWxyZWFkeSByZWxvY2F0 ZWQ/ICovCiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoICEobDJlX2dldF9mbGFncygqcGwy ZSkgJiBfUEFHRV9QUkVTRU5UKSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobDJl X2dldF9mbGFncygqcGwyZSkgJiBfUEFHRV9QU0UpIHx8Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChsMmVfZ2V0X3BmbigqcGwyZSkgPiAweDEwMDApICkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGwyZV9nZXRfcGZuKCpwbDJlKSA+IFBGTl9ET1dOKHhlbl9waHlzX3N0YXJ0 KSkgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAg ICAgICAgICAgICAgKnBsMmUgPSBsMmVfZnJvbV9pbnRwdGUobDJlX2dldF9pbnRwdGUoKnBsMmUp ICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhlbl9w aHlzX3N0YXJ0KTsKQEAgLTEwMDYsNyArMTAwNSw4IEBAIHZvaWQgX19pbml0IG5vcmV0dXJuIF9f c3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgdW5zaWduZWQgaW50IGZsYWdzOwogCi0gICAgICAgICAgICAgICAgaWYgKCAhKGwyZV9n ZXRfZmxhZ3MoKnBsMmUpICYgX1BBR0VfUFJFU0VOVCkgKQorICAgICAgICAgICAgICAgIGlmICgg IShsMmVfZ2V0X2ZsYWdzKCpwbDJlKSAmIF9QQUdFX1BSRVNFTlQpIHx8CisgICAgICAgICAgICAg ICAgICAgICAobDJlX2dldF9wZm4oKnBsMmUpID4gUEZOX0RPV04oeGVuX3BoeXNfc3RhcnQpKSAp CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICAgICAgaWYgKCAh dXNpbmdfMk1fbWFwcGluZygpICkKQEAgLTEwNjAsNiArMTA2MCw4IEBAIHZvaWQgX19pbml0IG5v cmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAgICAgICAgICAgICAgICAg OiAibWVtb3J5IiApOwogCiAgICAgICAgICAgICBib290c3RyYXBfbWFwKE5VTEwpOworCisgICAg ICAgICAgICBwcmludGsoIk5ldyBYZW4gaW1hZ2UgYmFzZSBhZGRyZXNzOiAlI2x4XG4iLCB4ZW5f cGh5c19zdGFydCk7CiAgICAgICAgIH0KIAogICAgICAgICAvKiBJcyB0aGUgcmVnaW9uIHN1aXRh YmxlIGZvciByZWxvY2F0aW5nIHRoZSBtdWx0aWJvb3QgbW9kdWxlcz8gKi8KZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQv YXNtLW9mZnNldHMuYwppbmRleCAyYTIyNjU5Li41ZDdhOGU1IDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYveDg2XzY0L2FzbS1vZmZzZXRzLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9hc20t b2Zmc2V0cy5jCkBAIC0xNzksNSArMTc5LDggQEAgdm9pZCBfX2R1bW15X18odm9pZCkKICAgICBP RkZTRVQoTUIyX2VmaTY0X2loLCBtdWx0aWJvb3QyX3RhZ19lZmk2NF9paF90LCBwb2ludGVyKTsK ICAgICBCTEFOSygpOwogCisgICAgREVGSU5FKGwyX2lkZW50bWFwX3NpemVvZiwgc2l6ZW9mKGwy X2lkZW50bWFwKSk7CisgICAgQkxBTksoKTsKKwogICAgIE9GRlNFVChET01BSU5fdm1fYXNzaXN0 LCBzdHJ1Y3QgZG9tYWluLCB2bV9hc3Npc3QpOwogfQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv YXNtLXg4Ni9wYWdlLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2UuaAppbmRleCBhZjdkM2U4 Li5hNTRmZGQxIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2UuaAorKysgYi94 ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2UuaApAQCAtMjg4LDcgKzI4OCw3IEBAIGV4dGVybiByb290 X3BnZW50cnlfdCBpZGxlX3BnX3RhYmxlW1JPT1RfUEFHRVRBQkxFX0VOVFJJRVNdOwogZXh0ZXJu IGwyX3BnZW50cnlfdCAgKmNvbXBhdF9pZGxlX3BnX3RhYmxlX2wyOwogZXh0ZXJuIHVuc2lnbmVk IGludCAgIG0ycF9jb21wYXRfdnN0YXJ0OwogZXh0ZXJuIGwyX3BnZW50cnlfdCBsMl94ZW5tYXBb TDJfUEFHRVRBQkxFX0VOVFJJRVNdLAotICAgIGwyX2Jvb3RtYXBbTDJfUEFHRVRBQkxFX0VOVFJJ RVNdOworICAgIGwyX2Jvb3RtYXBbNCpMMl9QQUdFVEFCTEVfRU5UUklFU107CiBleHRlcm4gbDNf cGdlbnRyeV90IGwzX2Jvb3RtYXBbTDNfUEFHRVRBQkxFX0VOVFJJRVNdOwogZXh0ZXJuIGwyX3Bn ZW50cnlfdCBsMl9pZGVudG1hcFs0KkwyX1BBR0VUQUJMRV9FTlRSSUVTXTsKIGV4dGVybiBsMV9w Z2VudHJ5X3QgbDFfZml4bWFwW0wxX1BBR0VUQUJMRV9FTlRSSUVTXTsKLS0gCjEuNy4xMC40CgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg==