From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v8 11/13] x86: make Xen early boot code relocatable Date: Thu, 29 Sep 2016 00:51:30 +0200 Message-ID: <1475103092-27893-12-git-send-email-daniel.kiper@oracle.com> References: <1475103092-27893-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 1bpNiW-0004gc-57 for xen-devel@lists.xenproject.org; Wed, 28 Sep 2016 22:52:44 +0000 In-Reply-To: <1475103092-27893-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, david.vrabel@citrix.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 IDE2MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCiB4ZW4vYXJjaC94ODYv Ym9vdC90cmFtcG9saW5lLlMgICAgfCAgICA1ICsrCiB4ZW4vYXJjaC94ODYvYm9vdC94ODZfNjQu UyAgICAgICAgfCAgIDIxICsrKy0tCiB4ZW4vYXJjaC94ODYvc2V0dXAuYyAgICAgICAgICAgICAg fCAgIDE0ICsrLS0KIHhlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYyB8ICAgIDMgKwog eGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmggICAgICAgIHwgICAgMiArLQogNiBmaWxlcyBjaGFu Z2VkLCAxNTYgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L2Jvb3QvaGVhZC5TIGIveGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TCmluZGV4IDFk ZTRmMWEuLmNlMjVhNWUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L2hlYWQuUworKysg Yi94ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKQEAgLTEzLDEyICsxMywxNSBAQAogICAgICAgICAu Y29kZTMyCiAKICNkZWZpbmUgc3ltX3BoeXMoc3ltKSAgICAgKChzeW0pIC0gX19YRU5fVklSVF9T VEFSVCkKKyNkZWZpbmUgc3ltX2VzaShzeW0pICAgICAgc3ltX3BoeXMoc3ltKSglZXNpKQorI2Rl ZmluZSBzeW1fZnMoc3ltKSAgICAgICAlZnM6c3ltX3BoeXMoc3ltKQogCiAjZGVmaW5lIEJPT1Rf Q1MzMiAgICAgICAgMHgwMDA4CiAjZGVmaW5lIEJPT1RfQ1M2NCAgICAgICAgMHgwMDEwCiAjZGVm aW5lIEJPT1RfRFMgICAgICAgICAgMHgwMDE4CiAjZGVmaW5lIEJPT1RfUFNFVURPUk1fQ1MgMHgw MDIwCiAjZGVmaW5lIEJPT1RfUFNFVURPUk1fRFMgMHgwMDI4CisjZGVmaW5lIEJPT1RfRlMgICAg ICAgICAgMHgwMDMwCiAKICNkZWZpbmUgTUIyX0hUKG5hbWUpICAgICAgKE1VTFRJQk9PVDJfSEVB REVSX1RBR18jI25hbWUpCiAjZGVmaW5lIE1CMl9UVChuYW1lKSAgICAgIChNVUxUSUJPT1QyX1RB R19UWVBFXyMjbmFtZSkKQEAgLTEwNSw3ICsxMDgsOCBAQCBtdWx0aWJvb3QyX2hlYWRlcl9zdGFy dDoKIAogICAgICAgICAud29yZCAgIDAKIGdkdF9ib290X2Rlc2NyOgotICAgICAgICAud29yZCAg IDYqOC0xCisgICAgICAgIC53b3JkICAgNyo4LTEKK2dkdF9ib290X2Jhc2U6CiAgICAgICAgIC5s b25nICAgc3ltX3BoeXModHJhbXBvbGluZV9nZHQpCiAgICAgICAgIC5sb25nICAgMCAvKiBOZWVk ZWQgZm9yIDY0LWJpdCBsZ2R0ICovCiAKQEAgLTEyNywyNyArMTMxLDI3IEBAIHZnYV90ZXh0X2J1 ZmZlcjoKICAgICAgICAgLnNlY3Rpb24gLmluaXQudGV4dCwgImF4IiwgQHByb2diaXRzCiAKIGJh ZF9jcHU6Ci0gICAgICAgIG1vdiAgICAgJChzeW1fcGh5cyguTGJhZF9jcHVfbXNnKSksJWVzaSAj IEVycm9yIG1lc3NhZ2UKKyAgICAgICAgYWRkICAgICAkc3ltX3BoeXMoLkxiYWRfY3B1X21zZyks JWVzaSAgICMgRXJyb3IgbWVzc2FnZQogICAgICAgICBqbXAgICAgIC5MZ2V0X3Z0Ygogbm90X211 bHRpYm9vdDoKLSAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9tc2cpKSwlZXNp ICMgRXJyb3IgbWVzc2FnZQorICAgICAgICBhZGQgICAgICRzeW1fcGh5cyguTGJhZF9sZHJfbXNn KSwlZXNpICAgIyBFcnJvciBtZXNzYWdlCiAgICAgICAgIGptcCAgICAgLkxnZXRfdnRiCiAuTG1i Ml9ub19zdDoKLSAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9uc3QpKSwlZXNp ICMgRXJyb3IgbWVzc2FnZQorICAgICAgICBhZGQgICAgICRzeW1fcGh5cyguTGJhZF9sZHJfbnN0 KSwlZXNpICAgIyBFcnJvciBtZXNzYWdlCiAgICAgICAgIGptcCAgICAgLkxnZXRfdnRiCiAuTG1i Ml9ub19paDoKLSAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9uaWgpKSwlZXNp ICMgRXJyb3IgbWVzc2FnZQorICAgICAgICBhZGQgICAgICRzeW1fcGh5cyguTGJhZF9sZHJfbmlo KSwlZXNpICAgIyBFcnJvciBtZXNzYWdlCiAgICAgICAgIGptcCAgICAgLkxnZXRfdnRiCiAuTG1i Ml9ub19iczoKLSAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9uYnMpKSwlZXNp ICMgRXJyb3IgbWVzc2FnZQorICAgICAgICBhZGQgICAgICRzeW1fcGh5cyguTGJhZF9sZHJfbmJz KSwlZXNpICAgIyBFcnJvciBtZXNzYWdlCiAgICAgICAgIHhvciAgICAgJWVkaSwlZWRpICAgICAg ICAgICAgICAgICAgICAgICAjIE5vIFZHQSB0ZXh0IGJ1ZmZlcgogICAgICAgICBqbXAgICAgIC5M c2VuZF9jaHIKIC5MbWIyX2VmaV9pYV8zMjoKLSAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5M YmFkX2VmaV9tc2cpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQorICAgICAgICBhZGQgICAgICRzeW1f cGh5cyguTGJhZF9lZmlfbXNnKSwlZXNpICAgIyBFcnJvciBtZXNzYWdlCiAgICAgICAgIHhvciAg ICAgJWVkaSwlZWRpICAgICAgICAgICAgICAgICAgICAgICAjIE5vIFZHQSB0ZXh0IGJ1ZmZlcgog ICAgICAgICBqbXAgICAgIC5Mc2VuZF9jaHIKIC5MZ2V0X3Z0YjoKLSAgICAgICAgbW92ICAgICBz eW1fcGh5cyh2Z2FfdGV4dF9idWZmZXIpLCVlZGkKKyAgICAgICAgbW92ICAgICBzeW1fZXNpKHZn YV90ZXh0X2J1ZmZlciksJWVkaQogLkxzZW5kX2NocjoKICAgICAgICAgbW92ICAgICAoJWVzaSks JWJsCiAgICAgICAgIHRlc3QgICAgJWJsLCVibCAgICAgICAgIyBUZXJtaW5hdGUgb24gJ1wwJyBz ZW50aW5lbApAQCAtMTc2LDYgKzE4MCw5IEBAIF9fZWZpNjRfc3RhcnQ6CiAgICAgICAgIC8qIFZH QSBpcyBub3QgYXZhaWxhYmxlIG9uIEVGSSBwbGF0Zm9ybXMuICovCiAgICAgICAgIG1vdmwgICAk MCx2Z2FfdGV4dF9idWZmZXIoJXJpcCkKIAorICAgICAgICAvKiBMb2FkIFhlbiBpbWFnZSBsb2Fk IGJhc2UgYWRkcmVzcy4gKi8KKyAgICAgICAgbGVhICAgICBfX2ltYWdlX2Jhc2VfXyglcmlwKSwl cjE1ZAorCiAgICAgICAgIC8qIENoZWNrIGZvciBNdWx0aWJvb3QyIGJvb3Rsb2FkZXIuICovCiAg ICAgICAgIGNtcCAgICAgJE1VTFRJQk9PVDJfQk9PVExPQURFUl9NQUdJQywlZWF4CiAgICAgICAg IGplICAgICAgLkxlZmlfbXVsdGlib290Ml9wcm90bwpAQCAtMzAwLDYgKzMwNyw5IEBAIHJ1bl9i czoKIAogICAgICAgICBwb3AgICAgICVyYXgKIAorICAgICAgICAvKiBTdG9yZSBYZW4gaW1hZ2Ug bG9hZCBiYXNlIGFkZHJlc3MgaW4gcGxhY2UgYWNjZXNzaWJsZSBmb3IgMzItYml0IGNvZGUuICov CisgICAgICAgIG1vdiAgICAgJXIxNWQsJWVzaQorCiAgICAgICAgIC8qIEp1bXAgdG8gdHJhbXBv bGluZV9zZXR1cCBhZnRlciBzd2l0Y2hpbmcgQ1BVIHRvIHg4Nl8zMiBtb2RlLiAqLwogICAgICAg ICBsZWEgICAgIHRyYW1wb2xpbmVfc2V0dXAoJXJpcCksJWVkaQogCkBAIC0zMDcsOSArMzE3LDEx IEBAIHg4Nl8zMl9zd2l0Y2g6CiAgICAgICAgIGNsaQogCiAgICAgICAgIC8qIEluaXRpYWxpemUg R0RUUi4gKi8KKyAgICAgICAgYWRkICAgICAlZXNpLGdkdF9ib290X2Jhc2UoJXJpcCkKICAgICAg ICAgbGdkdCAgICBnZHRfYm9vdF9kZXNjciglcmlwKQogCiAgICAgICAgIC8qIFJlbG9hZCBjb2Rl IHNlbGVjdG9yLiAqLworICAgICAgICBhZGQgICAgICVlc2ksY3MzMl9zd2l0Y2hfYWRkciglcmlw KQogICAgICAgICBsam1wbCAgICpjczMyX3N3aXRjaF9hZGRyKCVyaXApCiAKICAgICAgICAgLmNv ZGUzMgpAQCAtMzM5LDEyICszNTEsOCBAQCBfX3N0YXJ0OgogICAgICAgICBjbGQKICAgICAgICAg Y2xpCiAKLSAgICAgICAgLyogSW5pdGlhbGlzZSBHRFQgYW5kIGJhc2ljIGRhdGEgc2VnbWVudHMu ICovCi0gICAgICAgIGxnZHQgICAgJWNzOnN5bV9waHlzKGdkdF9ib290X2Rlc2NyKQotICAgICAg ICBtb3YgICAgICRCT09UX0RTLCVlY3gKLSAgICAgICAgbW92ICAgICAlZWN4LCVkcwotICAgICAg ICBtb3YgICAgICVlY3gsJWVzCi0gICAgICAgIG1vdiAgICAgJWVjeCwlc3MKKyAgICAgICAgLyog TG9hZCBkZWZhdWx0IFhlbiBpbWFnZSBsb2FkIGJhc2UgYWRkcmVzcy4gKi8KKyAgICAgICAgbW92 ICAgICAkc3ltX3BoeXMoX19pbWFnZV9iYXNlX18pLCVlc2kKIAogICAgICAgICAvKiBCb290bG9h ZGVycyBtYXkgc2V0IG11bHRpYm9vdHsxLDJ9Lm1lbV9sb3dlciB0byBhIG5vbnplcm8gdmFsdWUu ICovCiAgICAgICAgIHhvciAgICAgJWVkeCwlZWR4CkBAIC00MDEsNiArNDA5LDI1IEBAIF9fc3Rh cnQ6CiAgICAgICAgIGptcCAgICAgMGIKIAogdHJhbXBvbGluZV9iaW9zX3NldHVwOgorICAgICAg ICAvKgorICAgICAgICAgKiBDYWxsZWQgb24gbGVnYWN5IEJJT1MgcGxhdGZvcm1zIG9ubHkuCisg ICAgICAgICAqCisgICAgICAgICAqIEluaXRpYWxpemUgR0RUUiBhbmQgYmFzaWMgZGF0YSBzZWdt ZW50cy4KKyAgICAgICAgICovCisgICAgICAgIGFkZCAgICAgJWVzaSxzeW1fZXNpKGdkdF9ib290 X2Jhc2UpCisgICAgICAgIGxnZHQgICAgc3ltX2VzaShnZHRfYm9vdF9kZXNjcikKKworICAgICAg ICBtb3YgICAgICRCT09UX0RTLCVlY3gKKyAgICAgICAgbW92ICAgICAlZWN4LCVkcworICAgICAg ICBtb3YgICAgICVlY3gsJWVzCisgICAgICAgIG1vdiAgICAgJWVjeCwlc3MKKyAgICAgICAgLyog JWVzcCBpcyBpbml0aWFsaXplZCBsYXRlci4gKi8KKworICAgICAgICAvKiBMb2FkIG51bGwgZGVz Y3JpcHRvciB0byB1bnVzZWQgc2VnbWVudCByZWdpc3RlcnMuICovCisgICAgICAgIHhvciAgICAg JWVjeCwlZWN4CisgICAgICAgIG1vdiAgICAgJWVjeCwlZnMKKyAgICAgICAgbW92ICAgICAlZWN4 LCVncworCiAgICAgICAgIC8qIFNldCB1cCB0cmFtcG9saW5lIHNlZ21lbnQgNjRrIGJlbG93IEVC REEgKi8KICAgICAgICAgbW92endsICAweDQwZSwlZWN4ICAgICAgICAgIC8qIEVCREEgc2VnbWVu dCAqLwogICAgICAgICBjbXAgICAgICQweGEwMDAsJWVjeCAgICAgICAgLyogc2FuaXR5IGNoZWNr IChoaWdoKSAqLwpAQCAtNDI4LDMyICs0NTUsNjQgQEAgdHJhbXBvbGluZV9iaW9zX3NldHVwOgog ICAgICAgICB4b3IgICAgICVjbCwgJWNsCiAKIHRyYW1wb2xpbmVfc2V0dXA6CisgICAgICAgIC8q CisgICAgICAgICAqIENhbGxlZCBvbiBsZWdhY3kgQklPUyBhbmQgRUZJIHBsYXRmb3Jtcy4KKyAg ICAgICAgICoKKyAgICAgICAgICogSW5pdGlhbGl6ZSAwLTE1IGJpdHMgb2YgQk9PVF9GUyBzZWdt ZW50IGRlc2NyaXB0b3IgYmFzZSBhZGRyZXNzLgorICAgICAgICAgKi8KKyAgICAgICAgbW92ICAg ICAlc2ksQk9PVF9GUysyK3N5bV9lc2kodHJhbXBvbGluZV9nZHQpCisKKyAgICAgICAgLyogSW5p dGlhbGl6ZSAxNi0yMyBiaXRzIG9mIEJPT1RfRlMgc2VnbWVudCBkZXNjcmlwdG9yIGJhc2UgYWRk cmVzcy4gKi8KKyAgICAgICAgc2hsZCAgICAkMTYsJWVzaSwlZWR4CisgICAgICAgIG1vdiAgICAg JWRsLEJPT1RfRlMrNCtzeW1fZXNpKHRyYW1wb2xpbmVfZ2R0KQorCisgICAgICAgIC8qIEluaXRp YWxpemUgMjQtMzEgYml0cyBvZiBCT09UX0ZTIHNlZ21lbnQgZGVzY3JpcHRvciBiYXNlIGFkZHJl c3MuICovCisgICAgICAgIG1vdiAgICAgJWRoLEJPT1RfRlMrNytzeW1fZXNpKHRyYW1wb2xpbmVf Z2R0KQorCisgICAgICAgIC8qCisgICAgICAgICAqIEluaXRpYWxpemUgJWZzIGFuZCBsYXRlciB1 c2UgaXQgdG8gYWNjZXNzIFhlbiBkYXRhIGlmIHBvc3NpYmxlLgorICAgICAgICAgKiBBY2NvcmRp bmcgdG8gSW50ZWwgNjQgYW5kIElBLTMyIEFyY2hpdGVjdHVyZXMgU29mdHdhcmUgRGV2ZWxvcGVy J3MKKyAgICAgICAgICogTWFudWFsIGl0IGlzIHNhZmUgdG8gZG8gdGhhdCB3aXRob3V0IHJlbG9h ZGluZyBHRFRSIGJlZm9yZS4KKyAgICAgICAgICovCisgICAgICAgIG1vdiAgICAgJEJPT1RfRlMs JWVkeAorICAgICAgICBtb3YgICAgICVlZHgsJWZzCisKICAgICAgICAgLyogU2F2ZSB0cmFtcG9s aW5lIGFkZHJlc3MgZm9yIGxhdGVyIHVzZS4gKi8KICAgICAgICAgc2hsICAgICAkNCwgJWVjeAot ICAgICAgICBtb3YgICAgICVlY3gsc3ltX3BoeXModHJhbXBvbGluZV9waHlzKQorICAgICAgICBt b3YgICAgICVlY3gsc3ltX2ZzKHRyYW1wb2xpbmVfcGh5cykKKworICAgICAgICAvKiBTYXZlIFhl biBpbWFnZSBsb2FkIGJhc2UgYWRkcmVzcyBmb3IgbGF0ZXIgdXNlLiAqLworICAgICAgICBtb3Yg ICAgICVlc2ksc3ltX2ZzKHhlbl9waHlzX3N0YXJ0KQorICAgICAgICBtb3YgICAgICVlc2ksc3lt X2ZzKHRyYW1wb2xpbmVfeGVuX3BoeXNfc3RhcnQpCisKKyAgICAgICAgLyogU2V0dXAgc3RhY2su ICVzcyB3YXMgaW5pdGlhbGl6ZWQgZWFybGllci4gKi8KKyAgICAgICAgbGVhICAgICAxMDI0K3N5 bV9lc2koY3B1MF9zdGFjayksJWVzcAogCiAgICAgICAgIC8qIFNhdmUgdGhlIE11bHRpYm9vdCBp bmZvIHN0cnVjdCAoYWZ0ZXIgcmVsb2NhdGlvbikgZm9yIGxhdGVyIHVzZS4gKi8KLSAgICAgICAg bW92ICAgICAkc3ltX3BoeXMoY3B1MF9zdGFjaykrMTAyNCwlZXNwCiAgICAgICAgIHB1c2ggICAg JWVjeCAgICAgICAgICAgICAgICAvKiBCb290IHRyYW1wb2xpbmUgYWRkcmVzcy4gKi8KICAgICAg ICAgcHVzaCAgICAlZWJ4ICAgICAgICAgICAgICAgIC8qIE11bHRpYm9vdCBpbmZvcm1hdGlvbiBh ZGRyZXNzLiAqLwogICAgICAgICBwdXNoICAgICVlYXggICAgICAgICAgICAgICAgLyogTXVsdGli b290IG1hZ2ljLiAqLwogICAgICAgICBjYWxsICAgIHJlbG9jCi0gICAgICAgIG1vdiAgICAgJWVh eCxzeW1fcGh5cyhtdWx0aWJvb3RfcHRyKQorICAgICAgICBtb3YgICAgICVlYXgsc3ltX2ZzKG11 bHRpYm9vdF9wdHIpCiAKICAgICAgICAgLyoKICAgICAgICAgICogRG8gbm90IHplcm8gQlNTIG9u IEVGSSBwbGF0Zm9ybSBoZXJlLgogICAgICAgICAgKiBJdCB3YXMgaW5pdGlhbGl6ZWQgZWFybGll ci4KICAgICAgICAgICovCi0gICAgICAgIGNtcGIgICAgJDAsc3ltX3BoeXMoc2tpcF9yZWFsbW9k ZSkKKyAgICAgICAgY21wYiAgICAkMCxzeW1fZnMoc2tpcF9yZWFsbW9kZSkKICAgICAgICAgam56 ICAgICAxZgogCiAgICAgICAgIC8qIEluaXRpYWxpemUgQlNTIChubyBuYXN0eSBzdXJwcmlzZXMh KS4gKi8KICAgICAgICAgbW92ICAgICAkc3ltX3BoeXMoX19ic3Nfc3RhcnQpLCVlZGkKICAgICAg ICAgbW92ICAgICAkc3ltX3BoeXMoX19ic3NfZW5kKSwlZWN4CisgICAgICAgIHB1c2ggICAgJWZz CisgICAgICAgIHBvcCAgICAgJWVzCiAgICAgICAgIHN1YiAgICAgJWVkaSwlZWN4CiAgICAgICAg IHhvciAgICAgJWVheCwlZWF4CiAgICAgICAgIHNociAgICAgJDIsJWVjeAogICAgICAgICByZXAg c3Rvc2wKKyAgICAgICAgcHVzaCAgICAlZHMKKyAgICAgICAgcG9wICAgICAlZXMKIAogMToKICAg ICAgICAgLyogSW50ZXJyb2dhdGUgQ1BVIGV4dGVuZGVkIGZlYXR1cmVzIHZpYSBDUFVJRC4gKi8K QEAgLTQ2Nyw4ICs1MjYsOCBAQCB0cmFtcG9saW5lX3NldHVwOgogICAgICAgICBqYmUgICAgIDFm CiAgICAgICAgIG1vdiAgICAgJDB4ODAwMDAwMDEsJWVheAogICAgICAgICBjcHVpZAotMTogICAg ICBtb3YgICAgICVlZHgsc3ltX3BoeXMoY3B1aWRfZXh0X2ZlYXR1cmVzKQotICAgICAgICBtb3Yg ICAgICVlZHgsc3ltX3BoeXMoYm9vdF9jcHVfZGF0YSkrQ1BVSU5GT19GRUFUVVJFX09GRlNFVChY ODZfRkVBVFVSRV9MTSkKKzE6ICAgICAgbW92ICAgICAlZWR4LHN5bV9mcyhjcHVpZF9leHRfZmVh dHVyZXMpCisgICAgICAgIG1vdiAgICAgJWVkeCxzeW1fZnMoYm9vdF9jcHVfZGF0YSkrQ1BVSU5G T19GRUFUVVJFX09GRlNFVChYODZfRkVBVFVSRV9MTSkKIAogICAgICAgICAvKiBDaGVjayBmb3Ig YXZhaWxhYmlsaXR5IG9mIGxvbmcgbW9kZS4gKi8KICAgICAgICAgYnQgICAgICAkY3B1ZmVhdF9i aXQoWDg2X0ZFQVRVUkVfTE0pLCVlZHgKQEAgLTQ3NiwxNSArNTM1LDUyIEBAIHRyYW1wb2xpbmVf c2V0dXA6CiAKICAgICAgICAgLyogU3Rhc2ggVFNDIHRvIGNhbGN1bGF0ZSBhIGdvb2QgYXBwcm94 aW1hdGlvbiBvZiB0aW1lLXNpbmNlLWJvb3QgKi8KICAgICAgICAgcmR0c2MKLSAgICAgICAgbW92 ICAgICAlZWF4LHN5bV9waHlzKGJvb3RfdHNjX3N0YW1wKQotICAgICAgICBtb3YgICAgICVlZHgs c3ltX3BoeXMoYm9vdF90c2Nfc3RhbXArNCkKKyAgICAgICAgbW92ICAgICAlZWF4LHN5bV9mcyhi b290X3RzY19zdGFtcCkKKyAgICAgICAgbW92ICAgICAlZWR4LHN5bV9mcyhib290X3RzY19zdGFt cCkrNAorCisgICAgICAgIC8qCisgICAgICAgICAqIFVwZGF0ZSBmcmFtZSBhZGRyZXNzZXMgaW4g cGFnZSB0YWJsZXMgZXhjbHVkaW5nIGwyX2lkZW50bWFwCisgICAgICAgICAqIHdpdGhvdXQgaXRz IGZpcnN0IGVudHJ5IHdoaWNoIHBvaW50cyB0byBsMV9pZGVudG1hcC4KKyAgICAgICAgICovCisg ICAgICAgIG1vdiAgICAgJCgoX19wYWdlX3RhYmxlc19lbmQtX19wYWdlX3RhYmxlc19zdGFydCkv OCksJWVjeAorICAgICAgICBtb3YgICAgICQoKChsMl9pZGVudG1hcC1fX3BhZ2VfdGFibGVzX3N0 YXJ0KS84KSsxKSwlZWR4CisxOiAgICAgIGNtcCAgICAgJCgobDJfaWRlbnRtYXArbDJfaWRlbnRt YXBfc2l6ZW9mLV9fcGFnZV90YWJsZXNfc3RhcnQpLzgpLCVlY3gKKyAgICAgICAgY21vdmUgICAl ZWR4LCVlY3gKKyAgICAgICAgdGVzdGwgICAkX1BBR0VfUFJFU0VOVCxzeW1fZnMoX19wYWdlX3Rh Ymxlc19zdGFydCktOCgsJWVjeCw4KQorICAgICAgICBqeiAgICAgIDJmCisgICAgICAgIGFkZCAg ICAgJWVzaSxzeW1fZnMoX19wYWdlX3RhYmxlc19zdGFydCktOCgsJWVjeCw4KQorMjogICAgICBs b29wICAgIDFiCisKKyAgICAgICAgLyogSW5pdGlhbGl6ZSBMMiBib290LW1hcC9kaXJlY3QgbWFw IHBhZ2UgdGFibGUgZW50cmllcyAoMTZNQikuICovCisgICAgICAgIGxlYSAgICAgc3ltX2VzaShz dGFydCksJWVieAorICAgICAgICBsZWEgICAgICgxPDxMMl9QQUdFVEFCTEVfU0hJRlQpKjcrKFBB R0VfSFlQRVJWSVNPUnxfUEFHRV9QU0UpKCVlYngpLCVlYXgKKyAgICAgICAgc2hyICAgICAkKEwy X1BBR0VUQUJMRV9TSElGVC0zKSwlZWJ4CisgICAgICAgIG1vdiAgICAgJDgsJWVjeAorMTogICAg ICBtb3YgICAgICVlYXgsc3ltX2ZzKGwyX2Jvb3RtYXApLTgoJWVieCwlZWN4LDgpCisgICAgICAg IG1vdiAgICAgJWVheCxzeW1fZnMobDJfaWRlbnRtYXApLTgoJWVieCwlZWN4LDgpCisgICAgICAg IHN1YiAgICAgJCgxPDxMMl9QQUdFVEFCTEVfU0hJRlQpLCVlYXgKKyAgICAgICAgbG9vcCAgICAx YgorCisgICAgICAgIC8qIEluaXRpYWxpemUgTDMgYm9vdC1tYXAgcGFnZSBkaXJlY3RvcnkgZW50 cnkuICovCisgICAgICAgIGxlYSAgICAgX19QQUdFX0hZUEVSVklTT1IrKEwyX1BBR0VUQUJMRV9F TlRSSUVTKjgpKjMrc3ltX2VzaShsMl9ib290bWFwKSwlZWF4CisgICAgICAgIG1vdiAgICAgJDQs JWVjeAorMTogICAgICBtb3YgICAgICVlYXgsc3ltX2ZzKGwzX2Jvb3RtYXApLTgoLCVlY3gsOCkK KyAgICAgICAgc3ViICAgICAkKEwyX1BBR0VUQUJMRV9FTlRSSUVTKjgpLCVlYXgKKyAgICAgICAg bG9vcCAgICAxYgorCisgICAgICAgIC8qCisgICAgICAgICAqIER1cmluZyBib290LCBob29rIDRr QiBtYXBwaW5ncyBvZiBmaXJzdCAyTUIgb2YgbWVtb3J5IGludG8gTDIuCisgICAgICAgICAqIFRo aXMgYXZvaWRzIG1peGluZyBjYWNoYWJpbGl0eSBmb3IgdGhlIGxlZ2FjeSBWR0EgcmVnaW9uLgor ICAgICAgICAgKi8KKyAgICAgICAgbGVhICAgICBfX1BBR0VfSFlQRVJWSVNPUitzeW1fZXNpKGwx X2lkZW50bWFwKSwlZWRpCisgICAgICAgIG1vdiAgICAgJWVkaSxzeW1fZnMobDJfYm9vdG1hcCkK IAogICAgICAgICAvKiBBcHBseSByZWxvY2F0aW9ucyB0byBib290c3RyYXAgdHJhbXBvbGluZS4g Ki8KLSAgICAgICAgbW92ICAgICBzeW1fcGh5cyh0cmFtcG9saW5lX3BoeXMpLCVlZHgKKyAgICAg ICAgbW92ICAgICBzeW1fZnModHJhbXBvbGluZV9waHlzKSwlZWR4CiAgICAgICAgIG1vdiAgICAg JHN5bV9waHlzKF9fdHJhbXBvbGluZV9yZWxfc3RhcnQpLCVlZGkKIDE6Ci0gICAgICAgIG1vdiAg ICAgKCVlZGkpLCVlYXgKLSAgICAgICAgYWRkICAgICAlZWR4LCglZWRpLCVlYXgpCisgICAgICAg IG1vdiAgICAgJWZzOiglZWRpKSwlZWF4CisgICAgICAgIGFkZCAgICAgJWVkeCwlZnM6KCVlZGks JWVheCkKICAgICAgICAgYWRkICAgICAkNCwlZWRpCiAgICAgICAgIGNtcCAgICAgJHN5bV9waHlz KF9fdHJhbXBvbGluZV9yZWxfc3RvcCksJWVkaQogICAgICAgICBqYiAgICAgIDFiCkBAIC00OTMs MjggKzU4OSwyOSBAQCB0cmFtcG9saW5lX3NldHVwOgogICAgICAgICBzaHIgICAgICQ0LCVlZHgK ICAgICAgICAgbW92ICAgICAkc3ltX3BoeXMoX190cmFtcG9saW5lX3NlZ19zdGFydCksJWVkaQog MToKLSAgICAgICAgbW92ICAgICAoJWVkaSksJWVheAotICAgICAgICBtb3YgICAgICVkeCwoJWVk aSwlZWF4KQorICAgICAgICBtb3YgICAgICVmczooJWVkaSksJWVheAorICAgICAgICBtb3YgICAg ICVkeCwlZnM6KCVlZGksJWVheCkKICAgICAgICAgYWRkICAgICAkNCwlZWRpCiAgICAgICAgIGNt cCAgICAgJHN5bV9waHlzKF9fdHJhbXBvbGluZV9zZWdfc3RvcCksJWVkaQogICAgICAgICBqYiAg ICAgIDFiCiAKICAgICAgICAgLyogRG8gbm90IHBhcnNlIGNvbW1hbmQgbGluZSBvbiBFRkkgcGxh dGZvcm0gaGVyZS4gKi8KLSAgICAgICAgY21wYiAgICAkMCxzeW1fcGh5cyhza2lwX3JlYWxtb2Rl KQorICAgICAgICBjbXBiICAgICQwLHN5bV9mcyhza2lwX3JlYWxtb2RlKQogICAgICAgICBqbnog ICAgIDFmCiAKICAgICAgICAgLyogQmFpbCBpZiB0aGVyZSBpcyBubyBjb21tYW5kIGxpbmUgdG8g cGFyc2UuICovCi0gICAgICAgIG1vdiAgICAgc3ltX3BoeXMobXVsdGlib290X3B0ciksJWVieAor ICAgICAgICBtb3YgICAgIHN5bV9mcyhtdWx0aWJvb3RfcHRyKSwlZWJ4CiAgICAgICAgIHRlc3Rs ICAgJE1CSV9DTURMSU5FLE1CX2ZsYWdzKCVlYngpCiAgICAgICAgIGp6ICAgICAgMWYKIAotICAg ICAgICBwdXNobCAgICRzeW1fcGh5cyhlYXJseV9ib290X29wdHMpCisgICAgICAgIGxlYSAgICAg c3ltX2VzaShlYXJseV9ib290X29wdHMpLCVlYXgKKyAgICAgICAgcHVzaCAgICAlZWF4CiAgICAg ICAgIHB1c2hsICAgTUJfY21kbGluZSglZWJ4KQogICAgICAgICBjYWxsICAgIGNtZGxpbmVfcGFy c2VfZWFybHkKIAogMToKICAgICAgICAgLyogU3dpdGNoIHRvIGxvdy1tZW1vcnkgc3RhY2suICAq LwotICAgICAgICBtb3YgICAgIHN5bV9waHlzKHRyYW1wb2xpbmVfcGh5cyksJWVkaQorICAgICAg ICBtb3YgICAgIHN5bV9mcyh0cmFtcG9saW5lX3BoeXMpLCVlZGkKICAgICAgICAgbGVhICAgICAw eDEwMDAwKCVlZGkpLCVlc3AKICAgICAgICAgbGVhICAgICB0cmFtcG9saW5lX2Jvb3RfY3B1X2Vu dHJ5LXRyYW1wb2xpbmVfc3RhcnQoJWVkaSksJWVheAogICAgICAgICBwdXNobCAgICRCT09UX0NT MzIKQEAgLTUyMyw3ICs2MjAsNyBAQCB0cmFtcG9saW5lX3NldHVwOgogICAgICAgICAvKiBDb3B5 IGJvb3RzdHJhcCB0cmFtcG9saW5lIHRvIGxvdyBtZW1vcnksIGJlbG93IDFNQi4gKi8KICAgICAg ICAgbW92ICAgICAkc3ltX3BoeXModHJhbXBvbGluZV9zdGFydCksJWVzaQogICAgICAgICBtb3Yg ICAgICQoKHRyYW1wb2xpbmVfZW5kIC0gdHJhbXBvbGluZV9zdGFydCkgLyA0KSwlZWN4Ci0gICAg ICAgIHJlcCBtb3ZzbAorICAgICAgICByZXAgbW92c2wgJWZzOiglZXNpKSwlZXM6KCVlZGkpCiAK ICAgICAgICAgLyogSnVtcCBpbnRvIHRoZSByZWxvY2F0ZWQgdHJhbXBvbGluZS4gKi8KICAgICAg ICAgbHJldApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2Jvb3QvdHJhbXBvbGluZS5TIGIveGVu L2FyY2gveDg2L2Jvb3QvdHJhbXBvbGluZS5TCmluZGV4IDI3MTVkMTcuLjY0ZjhlZmQgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L3RyYW1wb2xpbmUuUworKysgYi94ZW4vYXJjaC94ODYv Ym9vdC90cmFtcG9saW5lLlMKQEAgLTU0LDYgKzU0LDExIEBAIHRyYW1wb2xpbmVfZ2R0OgogICAg ICAgICAvKiAweDAwMjg6IHJlYWwtbW9kZSBkYXRhIEAgQk9PVF9UUkFNUE9MSU5FICovCiAgICAg ICAgIC5sb25nICAgMHgwMDAwZmZmZgogICAgICAgICAubG9uZyAgIDB4MDAwMDkyMDAKKyAgICAg ICAgLyoKKyAgICAgICAgICogMHgwMDMwOiByaW5nIDAgWGVuIGRhdGEsIDE2IE1pQiBzaXplLCBi YXNlCisgICAgICAgICAqIGFkZHJlc3MgaXMgY29tcHV0ZWQgZHVyaW5nIHJ1bnRpbWUuCisgICAg ICAgICAqLworICAgICAgICAucXVhZCAgIDB4MDBjMDkyMDAwMDAwMGZmZgogCiAgICAgICAgIC5w dXNoc2VjdGlvbiAudHJhbXBvbGluZV9yZWwsICJhIgogICAgICAgICAubG9uZyAgIHRyYW1wb2xp bmVfZ2R0ICsgQk9PVF9QU0VVRE9STV9DUyArIDIgLSAuCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvYm9vdC94ODZfNjQuUyBiL3hlbi9hcmNoL3g4Ni9ib290L3g4Nl82NC5TCmluZGV4IDc4OTAz NzQuLjczOTIwMDQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L3g4Nl82NC5TCisrKyBi L3hlbi9hcmNoL3g4Ni9ib290L3g4Nl82NC5TCkBAIC04MSw3ICs4MSw2IEBAIEdMT0JBTChib290 X2NwdV9jb21wYXRfZ2R0X3RhYmxlKQogICAgICAgICAucXVhZCAweDAwMDA5MTAwMDAwMDAwMDAg ICAgIC8qIHBlci1DUFUgZW50cnkgKGxpbWl0ID09IGNwdSkgICAgICAqLwogICAgICAgICAuYWxp Z24gUEFHRV9TSVpFLCAwCiAKLUdMT0JBTChfX3BhZ2VfdGFibGVzX3N0YXJ0KQogLyoKICAqIE1h cHBpbmcgb2YgZmlyc3QgMiBtZWdhYnl0ZXMgb2YgbWVtb3J5LiBUaGlzIGlzIG1hcHBlZCB3aXRo IDRrQiBtYXBwaW5ncwogICogdG8gYXZvaWQgdHlwZSBjb25mbGljdHMgd2l0aCBmaXhlZC1yYW5n ZSBNVFJScyBjb3ZlcmluZyB0aGUgbG93ZXN0IG1lZ2FieXRlCkBAIC0xMDIsNiArMTAxLDEzIEBA IGwxX2lkZW50bWFwOgogICAgICAgICAuc2l6ZSBsMV9pZGVudG1hcCwgLiAtIGwxX2lkZW50bWFw CiAKIC8qCisgKiBfX3BhZ2VfdGFibGVzX3N0YXJ0IGRvZXMgbm90IGNvdmVyIGwxX2lkZW50bWFw IGJlY2F1c2UgaXQgKGwxX2lkZW50bWFwKQorICogY29udGFpbnMgMS0xIG1hcHBpbmdzLiBUaGlz IG1lYW5zIHRoYXQgZnJhbWUgYWRkcmVzc2VzIG9mIHRoZXNlIG1hcHBpbmdzCisgKiBhcmUgc3Rh dGljIGFuZCBzaG91bGQgbm90IGJlIHVwZGF0ZWQgZHVyaW5nIHJ1bnRpbWUuCisgKi8KK0dMT0JB TChfX3BhZ2VfdGFibGVzX3N0YXJ0KQorCisvKgogICogU3BhY2UgZm9yIG1hcHBpbmcgdGhlIGZp cnN0IDRHQiBvZiBtZW1vcnksIHdpdGggdGhlIGZpcnN0IDE2IG1lZ2FieXRlcwogICogYWN0dWFs eSBtYXBwZWQgKG1vc3RseSB1c2luZyBzdXBlcnBhZ2VzKS4gIFVzZXMgNHggNGsgcGFnZXMuCiAg Ki8KQEAgLTE4NiwyMSArMTkyLDE0IEBAIEdMT0JBTChpZGxlX3BnX3RhYmxlKQogCiBHTE9CQUwo X19wYWdlX3RhYmxlc19lbmQpCiAKLS8qIEluaXQgcGFnZXRhYmxlcy4gIEVub3VnaCBwYWdlIGRp cmVjdG9yaWVzIHRvIG1hcCBpbnRvIHRoZSBib3R0b20gMUdCLiAqLworLyogSW5pdCBwYWdldGFi bGVzLiBFbm91Z2ggcGFnZSBkaXJlY3RvcmllcyB0byBtYXAgaW50byA0R0IuICovCiAgICAgICAg IC5zZWN0aW9uIC5pbml0LmRhdGEsICJhIiwgQHByb2diaXRzCiAgICAgICAgIC5hbGlnbiBQQUdF X1NJWkUsIDAKIAogR0xPQkFMKGwyX2Jvb3RtYXApCi0gICAgICAgIC5xdWFkIHN5bV9waHlzKGwx X2lkZW50bWFwKSArIF9fUEFHRV9IWVBFUlZJU09SCi0gICAgICAgIGlkeCA9IDEKLSAgICAgICAg LnJlcHQgNwotICAgICAgICAucXVhZCAoaWR4IDw8IEwyX1BBR0VUQUJMRV9TSElGVCkgfCBfX1BB R0VfSFlQRVJWSVNPUiB8IF9QQUdFX1BTRQotICAgICAgICBpZHggPSBpZHggKyAxCi0gICAgICAg IC5lbmRyCi0gICAgICAgIC5maWxsIEwyX1BBR0VUQUJMRV9FTlRSSUVTIC0gOCwgOCwgMAorICAg ICAgICAuZmlsbCA0ICogTDJfUEFHRVRBQkxFX0VOVFJJRVMsIDgsIDAKICAgICAgICAgLnNpemUg bDJfYm9vdG1hcCwgLiAtIGwyX2Jvb3RtYXAKIAogR0xPQkFMKGwzX2Jvb3RtYXApCi0gICAgICAg IC5xdWFkIHN5bV9waHlzKGwyX2Jvb3RtYXApICsgX19QQUdFX0hZUEVSVklTT1IKLSAgICAgICAg LmZpbGwgTDNfUEFHRVRBQkxFX0VOVFJJRVMgLSAxLCA4LCAwCisgICAgICAgIC5maWxsIEwzX1BB R0VUQUJMRV9FTlRSSUVTLCA4LCAwCiAgICAgICAgIC5zaXplIGwzX2Jvb3RtYXAsIC4gLSBsM19i b290bWFwCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvc2V0dXAuYyBiL3hlbi9hcmNoL3g4Ni9z ZXR1cC5jCmluZGV4IGNhMWE5N2EuLmEyNGZjMzYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9z ZXR1cC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9zZXR1cC5jCkBAIC0yODYsOSArMjg2LDYgQEAgc3Rh dGljIHZvaWQgKl9faW5pdCBib290c3RyYXBfbWFwKGNvbnN0IG1vZHVsZV90ICptb2QpCiAgICAg aWYgKCBzdGFydCA+PSBlbmQgKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIGlmICggZW5k IDw9IEJPT1RTVFJBUF9NQVBfQkFTRSApCi0gICAgICAgIHJldHVybiAodm9pZCAqKSh1bnNpZ25l ZCBsb25nKXN0YXJ0OwotCiAgICAgcmV0ID0gKHZvaWQgKikobWFwX2N1ciArICh1bnNpZ25lZCBs b25nKShzdGFydCAmIG1hc2spKTsKICAgICBzdGFydCAmPSB+bWFzazsKICAgICBlbmQgPSAoZW5k ICsgbWFzaykgJiB+bWFzazsKQEAgLTY3NCw2ICs2NzEsOCBAQCB2b2lkIF9faW5pdCBub3JldHVy biBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogCiAgICAgcHJpbnRrKCJDb21tYW5k IGxpbmU6ICVzXG4iLCBjbWRsaW5lKTsKIAorICAgIHByaW50aygiWGVuIGltYWdlIGxvYWQgYmFz ZSBhZGRyZXNzOiAlI2x4XG4iLCB4ZW5fcGh5c19zdGFydCk7CisKICAgICBwcmludGsoIlZpZGVv IGluZm9ybWF0aW9uOlxuIik7CiAKICAgICAvKiBQcmludCBWR0EgZGlzcGxheSBtb2RlIGluZm9y bWF0aW9uLiAqLwpAQCAtOTMxLDcgKzkzMCw3IEBAIHZvaWQgX19pbml0IG5vcmV0dXJuIF9fc3Rh cnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAgICAgICAgICAgICAgICAgICAgIC8qIE5vdCBw cmVzZW50LCAxR0IgbWFwcGluZywgb3IgYWxyZWFkeSByZWxvY2F0ZWQ/ICovCiAgICAgICAgICAg ICAgICAgICAgIGlmICggIShsM2VfZ2V0X2ZsYWdzKCpwbDNlKSAmIF9QQUdFX1BSRVNFTlQpIHx8 CiAgICAgICAgICAgICAgICAgICAgICAgICAgKGwzZV9nZXRfZmxhZ3MoKnBsM2UpICYgX1BBR0Vf UFNFKSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgIChsM2VfZ2V0X3BmbigqcGwzZSkgPiAw eDEwMDApICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobDNlX2dldF9wZm4oKnBsM2UpID4g UEZOX0RPV04oeGVuX3BoeXNfc3RhcnQpKSApCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250 aW51ZTsKICAgICAgICAgICAgICAgICAgICAgKnBsM2UgPSBsM2VfZnJvbV9pbnRwdGUobDNlX2dl dF9pbnRwdGUoKnBsM2UpICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgeGVuX3BoeXNfc3RhcnQpOwpAQCAtOTQxLDcgKzk0MCw3IEBAIHZvaWQgX19pbml0IG5v cmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAgICAgICAgICAgICAgICAg ICAgICAgICAvKiBOb3QgcHJlc2VudCwgUFNFLCBvciBhbHJlYWR5IHJlbG9jYXRlZD8gKi8KICAg ICAgICAgICAgICAgICAgICAgICAgIGlmICggIShsMmVfZ2V0X2ZsYWdzKCpwbDJlKSAmIF9QQUdF X1BSRVNFTlQpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsMmVfZ2V0X2ZsYWdz KCpwbDJlKSAmIF9QQUdFX1BTRSkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGwy ZV9nZXRfcGZuKCpwbDJlKSA+IDB4MTAwMCkgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobDJlX2dldF9wZm4oKnBsMmUpID4gUEZOX0RPV04oeGVuX3BoeXNfc3RhcnQpKSApCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAg ICAqcGwyZSA9IGwyZV9mcm9tX2ludHB0ZShsMmVfZ2V0X2ludHB0ZSgqcGwyZSkgKwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuX3BoeXNfc3RhcnQp OwpAQCAtOTY0LDcgKzk2Myw4IEBAIHZvaWQgX19pbml0IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVu c2lnbmVkIGxvbmcgbWJpX3ApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgaW50IGZsYWdzOwogCi0gICAgICAgICAgICAgICAgaWYgKCAhKGwyZV9nZXRfZmxhZ3MoKnBs MmUpICYgX1BBR0VfUFJFU0VOVCkgKQorICAgICAgICAgICAgICAgIGlmICggIShsMmVfZ2V0X2Zs YWdzKCpwbDJlKSAmIF9QQUdFX1BSRVNFTlQpIHx8CisgICAgICAgICAgICAgICAgICAgICAobDJl X2dldF9wZm4oKnBsMmUpID4gUEZOX0RPV04oeGVuX3BoeXNfc3RhcnQpKSApCiAgICAgICAgICAg ICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICAgICAgaWYgKCAhdXNpbmdfMk1fbWFw cGluZygpICkKQEAgLTEwMTgsNiArMTAxOCw4IEBAIHZvaWQgX19pbml0IG5vcmV0dXJuIF9fc3Rh cnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAgICAgICAgICAgICAgICAgOiAibWVtb3J5IiAp OwogCiAgICAgICAgICAgICBib290c3RyYXBfbWFwKE5VTEwpOworCisgICAgICAgICAgICBwcmlu dGsoIk5ldyBYZW4gaW1hZ2UgYmFzZSBhZGRyZXNzOiAlI2x4XG4iLCB4ZW5fcGh5c19zdGFydCk7 CiAgICAgICAgIH0KIAogICAgICAgICAvKiBJcyB0aGUgcmVnaW9uIHN1aXRhYmxlIGZvciByZWxv Y2F0aW5nIHRoZSBtdWx0aWJvb3QgbW9kdWxlcz8gKi8KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni94ODZfNjQvYXNtLW9mZnNldHMuYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMu YwppbmRleCAyYTIyNjU5Li41ZDdhOGU1IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2XzY0 L2FzbS1vZmZzZXRzLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5jCkBA IC0xNzksNSArMTc5LDggQEAgdm9pZCBfX2R1bW15X18odm9pZCkKICAgICBPRkZTRVQoTUIyX2Vm aTY0X2loLCBtdWx0aWJvb3QyX3RhZ19lZmk2NF9paF90LCBwb2ludGVyKTsKICAgICBCTEFOSygp OwogCisgICAgREVGSU5FKGwyX2lkZW50bWFwX3NpemVvZiwgc2l6ZW9mKGwyX2lkZW50bWFwKSk7 CisgICAgQkxBTksoKTsKKwogICAgIE9GRlNFVChET01BSU5fdm1fYXNzaXN0LCBzdHJ1Y3QgZG9t YWluLCB2bV9hc3Npc3QpOwogfQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdl LmggYi94ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2UuaAppbmRleCBhZjdkM2U4Li5hNTRmZGQxIDEw MDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2UuaAorKysgYi94ZW4vaW5jbHVkZS9h c20teDg2L3BhZ2UuaApAQCAtMjg4LDcgKzI4OCw3IEBAIGV4dGVybiByb290X3BnZW50cnlfdCBp ZGxlX3BnX3RhYmxlW1JPT1RfUEFHRVRBQkxFX0VOVFJJRVNdOwogZXh0ZXJuIGwyX3BnZW50cnlf dCAgKmNvbXBhdF9pZGxlX3BnX3RhYmxlX2wyOwogZXh0ZXJuIHVuc2lnbmVkIGludCAgIG0ycF9j b21wYXRfdnN0YXJ0OwogZXh0ZXJuIGwyX3BnZW50cnlfdCBsMl94ZW5tYXBbTDJfUEFHRVRBQkxF X0VOVFJJRVNdLAotICAgIGwyX2Jvb3RtYXBbTDJfUEFHRVRBQkxFX0VOVFJJRVNdOworICAgIGwy X2Jvb3RtYXBbNCpMMl9QQUdFVEFCTEVfRU5UUklFU107CiBleHRlcm4gbDNfcGdlbnRyeV90IGwz X2Jvb3RtYXBbTDNfUEFHRVRBQkxFX0VOVFJJRVNdOwogZXh0ZXJuIGwyX3BnZW50cnlfdCBsMl9p ZGVudG1hcFs0KkwyX1BBR0VUQUJMRV9FTlRSSUVTXTsKIGV4dGVybiBsMV9wZ2VudHJ5X3QgbDFf Zml4bWFwW0wxX1BBR0VUQUJMRV9FTlRSSUVTXTsKLS0gCjEuNy4xMC40CgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlz dApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVs Cg==