From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ross Lagerwall Subject: [XTF PATCH v3] Add a Live Patch privilege check test Date: Mon, 21 Nov 2016 09:24:22 +0000 Message-ID: <1479720262-29441-1-git-send-email-ross.lagerwall@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Andrew Cooper , Ross Lagerwall List-Id: xen-devel@lists.xenproject.org QWRkIGEgdGVzdCB0byBjaGVjayB0aGF0IExpdmUgUGF0Y2ggb3BlcmF0aW9ucyBjYW5ub3QgYmUg Y2FsbGVkIGZyb20gYW4KdW5wcml2aWxlZ2VkIGRvbWFpbi4KClNpZ25lZC1vZmYtYnk6IFJvc3Mg TGFnZXJ3YWxsIDxyb3NzLmxhZ2Vyd2FsbEBjaXRyaXguY29tPgotLS0KCkNoYW5nZWQgaW4gdjM6 CiogQWRkcmVzc2VkIHJldmlldyBjb21tZW50cy4KCiBjb21tb24vbGliLmMgICAgICAgICAgICAg ICAgICAgICAgICB8ICAxNSArKysKIGRvY3MvYWxsLXRlc3RzLmRveCAgICAgICAgICAgICAgICAg IHwgICAyICsKIGluY2x1ZGUveGVuL3N5c2N0bC5oICAgICAgICAgICAgICAgIHwgMjExICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS94ZW4veGVuLmggICAgICAg ICAgICAgICAgICAgfCAgIDkgKysKIGluY2x1ZGUveHRmL2h5cGVyY2FsbC5oICAgICAgICAgICAg IHwgICA2ICsKIGluY2x1ZGUveHRmL2xpYi5oICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIHRl c3RzL2xpdmVwYXRjaC1wcml2LWNoZWNrL01ha2VmaWxlIHwgICA5ICsrCiB0ZXN0cy9saXZlcGF0 Y2gtcHJpdi1jaGVjay9tYWluLmMgICB8IDE1MyArKysrKysrKysrKysrKysrKysrKysrKysrKwog OCBmaWxlcyBjaGFuZ2VkLCA0MTEgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNzU1IGlu Y2x1ZGUveGVuL3N5c2N0bC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvbGl2ZXBhdGNoLXBy aXYtY2hlY2svTWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9saXZlcGF0Y2gtcHJp di1jaGVjay9tYWluLmMKCmRpZmYgLS1naXQgYS9jb21tb24vbGliLmMgYi9jb21tb24vbGliLmMK aW5kZXggOWRjYTNlMy4uMGEyYjMxMSAxMDA2NDQKLS0tIGEvY29tbW9uL2xpYi5jCisrKyBiL2Nv bW1vbi9saWIuYwpAQCAtMTksNiArMTksMjEgQEAgdm9pZCBfX25vcmV0dXJuIHBhbmljKGNvbnN0 IGNoYXIgKmZtdCwgLi4uKQogICAgIGFyY2hfY3Jhc2hfaGFyZCgpOwogfQogCitpbnQgeHRmX3By b2JlX3N5c2N0bF9pbnRlcmZhY2VfdmVyc2lvbih2b2lkKQoreworICAgIGludCBpOworICAgIHhl bl9zeXNjdGxfdCBvcCA9IHswfTsKKworICAgIGZvciAoIGkgPSAwOyBpIDwgMTI4OyBpKysgKQor ICAgIHsKKyAgICAgICAgb3AuaW50ZXJmYWNlX3ZlcnNpb24gPSBpOworICAgICAgICBpZiAoIGh5 cGVyY2FsbF9zeXNjdGwoJm9wKSAhPSAtRUFDQ0VTICkKKyAgICAgICAgICAgIHJldHVybiBpOwor ICAgIH0KKworICAgIHJldHVybiAtMTsKK30KKwogLyoKICAqIExvY2FsIHZhcmlhYmxlczoKICAq IG1vZGU6IEMKZGlmZiAtLWdpdCBhL2RvY3MvYWxsLXRlc3RzLmRveCBiL2RvY3MvYWxsLXRlc3Rz LmRveAppbmRleCA0Zjg2MTgyLi4yOTA5Yjg1IDEwMDY0NAotLS0gYS9kb2NzL2FsbC10ZXN0cy5k b3gKKysrIGIvZG9jcy9hbGwtdGVzdHMuZG94CkBAIC0yMiw2ICsyMiw4IEBAIGFuZCBmdW5jdGlv bmFsaXR5LgogCiBAc3VicGFnZSB0ZXN0LWludmxwZyAtIGBpbnZscGdgIGluc3RydWN0aW9uIGJl aGF2aW91ci4KIAorQHN1YnBhZ2UgdGVzdC1saXZlcGF0Y2gtcHJpdi1jaGVjayAtIExpdmUgUGF0 Y2ggUHJpdmlsZWdlIENoZWNrCisKIEBzdWJwYWdlIHRlc3QtcHYtaW9wbCAtIElPUEwgZW11bGF0 aW9uIGZvciBQViBndWVzdHMuCiAKIEBzdWJwYWdlIHRlc3Qtc3dpbnQtZW11bGF0aW9uIC0gU29m dHdhcmUgaW50ZXJydXB0IGVtdWxhdGlvbiBmb3IgSFZNIGd1ZXN0cy4KZGlmZiAtLWdpdCBhL2lu Y2x1ZGUveGVuL3N5c2N0bC5oIGIvaW5jbHVkZS94ZW4vc3lzY3RsLmgKbmV3IGZpbGUgbW9kZSAx MDA3NTUKaW5kZXggMDAwMDAwMC4uYTQ2MWIxYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUv eGVuL3N5c2N0bC5oCkBAIC0wLDAgKzEsMjExIEBACisvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisg KiBzeXNjdGwuaAorICoKKyAqIFN5c3RlbSBtYW5hZ2VtZW50IG9wZXJhdGlvbnMuIEZvciB1c2Ug Ynkgbm9kZSBjb250cm9sIHN0YWNrLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50 ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9m IHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJT b2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlv biwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNv cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v cgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMg dG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0 byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBu b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAq IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoK KyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9G IEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1J VEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNI QUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO WSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9V VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RI RVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIw MDItMjAwNiwgSyBGcmFzZXIKKyAqLworCisjaWZuZGVmIF9fWEVOX1BVQkxJQ19TWVNDVExfSF9f CisjZGVmaW5lIF9fWEVOX1BVQkxJQ19TWVNDVExfSF9fCisKKyNpbmNsdWRlICJ4ZW4uaCIKKyNp bmNsdWRlICJwaHlzZGV2LmgiCisKKy8qCisgKiBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9vcAorICoK KyAqIFJlZmVyIHRvIHRoZSBkb2NzL3Vuc3RhYmxlL21pc2MvbGl2ZXBhdGNoLm1hcmtkb3duCisg KiBmb3IgdGhlIGRlc2lnbiBkZXRhaWxzIG9mIHRoaXMgaHlwZXJjYWxsLgorICoKKyAqIFRoZXJl IGFyZSBmb3VyIHN1Yi1vcHM6CisgKiAgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfVVBMT0FEICgwKQor ICogIFhFTl9TWVNDVExfTElWRVBBVENIX0dFVCAoMSkKKyAqICBYRU5fU1lTQ1RMX0xJVkVQQVRD SF9MSVNUICgyKQorICogIFhFTl9TWVNDVExfTElWRVBBVENIX0FDVElPTiAoMykKKyAqCisgKiBU aGUgbm9ybWFsIHNlcXVlbmNlIG9mIHN1Yi1vcHMgaXMgdG86CisgKiAgMSkgWEVOX1NZU0NUTF9M SVZFUEFUQ0hfVVBMT0FEIHRvIHVwbG9hZCB0aGUgcGF5bG9hZC4gSWYgZXJyb3JzIFNUT1AuCisg KiAgMikgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfR0VUIHRvIGNoZWNrIHRoZSBgLT5yY2AuIElmIC1Y RU5fRUFHQUlOIHNwaW4uCisgKiAgICAgSWYgemVybyBnbyB0byBuZXh0IHN0ZXAuCisgKiAgMykg WEVOX1NZU0NUTF9MSVZFUEFUQ0hfQUNUSU9OIHdpdGggTElWRVBBVENIX0FDVElPTl9BUFBMWSB0 byBhcHBseSB0aGUgcGF0Y2guCisgKiAgNCkgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfR0VUIHRvIGNo ZWNrIHRoZSBgLT5yY2AuIElmIGluIC1YRU5fRUFHQUlOIHNwaW4uCisgKiAgICAgSWYgemVybyBl eGl0IHdpdGggc3VjY2Vzcy4KKyAqLworCisjZGVmaW5lIExJVkVQQVRDSF9QQVlMT0FEX1ZFUlNJ T04gMQorLyoKKyAqIFN0cnVjdHVyZSBkZXNjcmliaW5nIGFuIEVMRiBwYXlsb2FkLiBVbmlxdWVs eSBpZGVudGlmaWVzIHRoZQorICogcGF5bG9hZC4gU2hvdWxkIGJlIGh1bWFuIHJlYWRhYmxlLgor ICogUmVjb21tZW5kZWQgbGVuZ3RoIGlzIHVwdG8gWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUuCisg KiBJbmNsdWRlcyB0aGUgTlVMIHRlcm1pbmF0b3IuCisgKi8KKyNkZWZpbmUgWEVOX0xJVkVQQVRD SF9OQU1FX1NJWkUgMTI4CitzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9uYW1lIHsKKyAgICBndWVzdF9o YW5kbGVfNjRfdCBuYW1lOyAgICAgICAgICAgICAgICAgLyogSU46IHBvaW50ZXIgdG8gbmFtZS4g Ki8KKyAgICB1aW50MTZfdCBzaXplOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSU46IHNp emUgb2YgbmFtZS4gTWF5IGJlIHVwdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUuICovCisgICAgdWludDE2X3Qg cGFkWzNdOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBNVVNUIGJlIHplcm8uICovCit9 OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9uYW1lIHhlbl9saXZlcGF0Y2hfbmFtZV90 OworCisvKgorICogVXBsb2FkIGEgcGF5bG9hZCB0byB0aGUgaHlwZXJ2aXNvci4gVGhlIHBheWxv YWQgaXMgdmVyaWZpZWQKKyAqIGFnYWluc3QgYmFzaWMgY2hlY2tzIGFuZCBpZiB0aGVyZSBhcmUg YW55IGlzc3VlcyB0aGUgcHJvcGVyIHJldHVybiBjb2RlCisgKiB3aWxsIGJlIHJldHVybmVkLiBU aGUgcGF5bG9hZCBpcyBub3QgYXBwbGllZCBhdCB0aGlzIHRpbWUgLSB0aGF0IGlzCisgKiBjb250 cm9sbGVkIGJ5IFhFTl9TWVNDVExfTElWRVBBVENIX0FDVElPTi4KKyAqCisgKiBUaGUgcmV0dXJu IHZhbHVlIGlzIHplcm8gaWYgdGhlIHBheWxvYWQgd2FzIHN1Y2Nlc2Z1bGx5IHVwbG9hZGVkLgor ICogT3RoZXJ3aXNlIGFuIEVYWCByZXR1cm4gdmFsdWUgaXMgcHJvdmlkZWQuIER1cGxpY2F0ZSBg bmFtZWAgYXJlIG5vdAorICogc3VwcG9ydGVkLgorICoKKyAqIFRoZSBwYXlsb2FkIGF0IHRoaXMg cG9pbnQgaXMgdmVyaWZpZWQgYWdhaW5zdCBiYXNpYyBjaGVja3MuCisgKgorICogVGhlIGBwYXls b2FkYCBpcyB0aGUgRUxGIHBheWxvYWQgYXMgbWVudGlvbmVkIGluIHRoZSBgUGF5bG9hZCBmb3Jt YXRgCisgKiBzZWN0aW9uIGluIHRoZSBMaXZlIFBhdGNoIGRlc2lnbiBkb2N1bWVudC4KKyAqLwor I2RlZmluZSBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9VUExPQUQgMAorc3RydWN0IHhlbl9zeXNjdGxf bGl2ZXBhdGNoX3VwbG9hZCB7CisgICAgeGVuX2xpdmVwYXRjaF9uYW1lX3QgbmFtZTsgICAgICAg ICAgICAgIC8qIElOLCBuYW1lIG9mIHRoZSBwYXRjaC4gKi8KKyAgICB1aW50NjRfdCBzaXplOyAg ICAgICAgICAgICAgICAgICAgICAgICAgLyogSU4sIHNpemUgb2YgdGhlIEVMRiBmaWxlLiAqLwor ICAgIGd1ZXN0X2hhbmRsZV82NF90IHBheWxvYWQ7ICAgICAgICAgICAgICAvKiBJTiwgdGhlIEVM RiBmaWxlLiAqLworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX3VwbG9h ZCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF91cGxvYWRfdDsKKworLyoKKyAqIFJldHJpZXZlIGFuIHN0 YXR1cyBvZiBhbiBzcGVjaWZpYyBwYXlsb2FkLgorICoKKyAqIFVwb24gY29tcGxldGlvbiB0aGUg YHN0cnVjdCB4ZW5fbGl2ZXBhdGNoX3N0YXR1c2AgaXMgdXBkYXRlZC4KKyAqCisgKiBUaGUgcmV0 dXJuIHZhbHVlIGlzIHplcm8gb24gc3VjY2VzcyBhbmQgWEVOX0VYWCBvbiBmYWlsdXJlLiBUaGlz IG9wZXJhdGlvbgorICogaXMgc3luY2hyb25vdXMgYW5kIGRvZXMgbm90IHJlcXVpcmUgcHJlZW1w dGlvbi4KKyAqLworI2RlZmluZSBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9HRVQgMQorCitzdHJ1Y3Qg eGVuX2xpdmVwYXRjaF9zdGF0dXMgeworI2RlZmluZSBMSVZFUEFUQ0hfU1RBVEVfQ0hFQ0tFRCAg ICAgIDEKKyNkZWZpbmUgTElWRVBBVENIX1NUQVRFX0FQUExJRUQgICAgICAyCisgICAgdWludDMy X3Qgc3RhdGU7ICAgICAgICAgICAgICAgIC8qIE9VVDogTElWRVBBVENIX1NUQVRFXyouICovCisg ICAgaW50MzJfdCByYzsgICAgICAgICAgICAgICAgICAgIC8qIE9VVDogMCBpZiBubyBlcnJvciwg b3RoZXJ3aXNlIC1YRU5fRVhYLiAqLworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9saXZlcGF0Y2hf c3RhdHVzIHhlbl9saXZlcGF0Y2hfc3RhdHVzX3Q7CisKK3N0cnVjdCB4ZW5fc3lzY3RsX2xpdmVw YXRjaF9nZXQgeworICAgIHhlbl9saXZlcGF0Y2hfbmFtZV90IG5hbWU7ICAgICAgICAgICAgICAv KiBJTiwgbmFtZSBvZiB0aGUgcGF5bG9hZC4gKi8KKyAgICB4ZW5fbGl2ZXBhdGNoX3N0YXR1c190 IHN0YXR1czsgICAgICAgICAgLyogSU4vT1VULCBzdGF0ZSBvZiBpdC4gKi8KK307Cit0eXBlZGVm IHN0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9nZXQgeGVuX3N5c2N0bF9saXZlcGF0Y2hfZ2V0 X3Q7CisKKy8qCisgKiBSZXRyaWV2ZSBhbiBhcnJheSBvZiBhYmJyZXZpYXRlZCBzdGF0dXMgYW5k IG5hbWVzIG9mIHBheWxvYWRzIHRoYXQgYXJlCisgKiBsb2FkZWQgaW4gdGhlIGh5cGVydmlzb3Iu CisgKgorICogSWYgdGhlIGh5cGVyY2FsbCByZXR1cm5zIGFuIHBvc2l0aXZlIG51bWJlciwgaXQg aXMgdGhlIG51bWJlciAodXAgdG8gYG5yYCkKKyAqIG9mIHRoZSBwYXlsb2FkcyByZXR1cm5lZCwg YWxvbmcgd2l0aCBgbnJgIHVwZGF0ZWQgd2l0aCB0aGUgbnVtYmVyIG9mIHJlbWFpbmluZworICog cGF5bG9hZHMsIGB2ZXJzaW9uYCB1cGRhdGVkIChpdCBtYXkgYmUgdGhlIHNhbWUgYWNyb3NzIGh5 cGVyY2FsbHMuIElmIGl0CisgKiB2YXJpZXMgdGhlIGRhdGEgaXMgc3RhbGUgYW5kIGZ1cnRoZXIg Y2FsbHMgY291bGQgZmFpbCkuIFRoZSBgc3RhdHVzYCwKKyAqIGBuYW1lYCwgYW5kIGBsZW5gJyBh cmUgdXBkYXRlZCBhdCB0aGVpciBkZXNpZ25lZCBpbmRleCB2YWx1ZSAoYGlkeGApIHdpdGgKKyAq IHRoZSByZXR1cm5lZCB2YWx1ZSBvZiBkYXRhLgorICoKKyAqIElmIHRoZSBoeXBlcmNhbGwgcmV0 dXJucyBFMkJJRyB0aGUgYG5yYCBpcyB0b28gYmlnIGFuZCBzaG91bGQgYmUKKyAqIGxvd2VyZWQu IFRoZSB1cHBlciBsaW1pdCBvZiBgbnJgIGlzIGxlZnQgdG8gdGhlIGltcGxlbWVudGlvbi4KKyAq CisgKiBOb3RlIHRoYXQgZHVlIHRvIHRoZSBhc3luY2hyb25vdXMgbmF0dXJlIG9mIGh5cGVyY2Fs bHMgdGhlIGRvbWFpbiBtaWdodCBoYXZlCisgKiBhZGRlZCBvciByZW1vdmVkIHRoZSBudW1iZXIg b2YgcGF5bG9hZHMgbWFraW5nIHRoaXMgaW5mb3JtYXRpb24gc3RhbGUuIEl0IGlzCisgKiB0aGUg cmVzcG9uc2liaWxpdHkgb2YgdGhlIHRvb2xzdGFjayB0byB1c2UgdGhlIGB2ZXJzaW9uYCBmaWVs ZCB0byBjaGVjaworICogYmV0d2VlbiBlYWNoIGludm9jYXRpb24uIGlmIHRoZSB2ZXJzaW9uIGRp ZmZlcnMgaXQgc2hvdWxkIGRpc2NhcmQgdGhlIHN0YWxlCisgKiBkYXRhIGFuZCBzdGFydCBmcm9t IHNjcmF0Y2guIEl0IGlzIE9LIGZvciB0aGUgdG9vbHN0YWNrIHRvIHVzZSB0aGUgbmV3CisgKiBg dmVyc2lvbmAgZmllbGQuCisgKi8KKyNkZWZpbmUgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfTElTVCAy CitzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfbGlzdCB7CisgICAgdWludDMyX3QgdmVyc2lv bjsgICAgICAgICAgICAgICAgICAgICAgIC8qIE9VVDogSHlwZXJ2aXNvciBzdGFtcHMgdmFsdWUu CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHZhcmll cyBiZXR3ZWVuIGNhbGxzLCB3ZSBhcmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICogZ2V0dGluZyBzdGFsZSBkYXRhLiAqLworICAgIHVpbnQzMl90IGlkeDsg ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTjogSW5kZXggaW50byBoeXBlcnZpc29yIGxp c3QuICovCisgICAgdWludDMyX3QgbnI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElO OiBIb3cgbWFueSBzdGF0dXMsIG5hbWUsIGFuZCBsZW4KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkIGZpbGwgb3V0LiBDYW4gYmUgemVybyB0byBn ZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50 IG9mIHBheWxvYWRzIGFuZCB2ZXJzaW9uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPVVQ6IEhvdyBtYW55IHBheWxvYWRzIGxlZnQuICovCisgICAgdWlu dDMyX3QgcGFkOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBNdXN0IGJlIHplcm8u ICovCisgICAgZ3Vlc3RfaGFuZGxlXzY0X3Qgc3RhdHVzOyAgICAgICAgICAgICAgIC8qIE9VVC4g TXVzdCBoYXZlIGVub3VnaAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzcGFjZSBhbGxvY2F0ZSBmb3IgbnIgb2YgdGhlbS4gKi8KKyAgICBndWVzdF9oYW5k bGVfNjRfdCBuYW1lOyAgICAgICAgICAgICAgICAgLyogT1VUOiBBcnJheSBvZiBuYW1lcy4gRWFj aCBtZW1iZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TVVTVCBYRU5fTElWRVBBVENIX05BTUVfU0laRSBpbiBzaXplLgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNdXN0IGhhdmUgbnIgb2YgdGhlbS4gKi8KKyAg ICBndWVzdF9oYW5kbGVfNjRfdCBsZW47ICAgICAgICAgICAgICAgICAgLyogT1VUOiBBcnJheSBv ZiBsZW5ndGhzIG9mIG5hbWUncy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTXVzdCBoYXZlIG5yIG9mIHRoZW0uICovCit9OwordHlwZWRlZiBzdHJ1Y3Qg eGVuX3N5c2N0bF9saXZlcGF0Y2hfbGlzdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9saXN0X3Q7CisK Ky8qCisgKiBQZXJmb3JtIGFuIG9wZXJhdGlvbiBvbiB0aGUgcGF5bG9hZCBzdHJ1Y3R1cmUgcmVm ZXJlbmNlZCBieSB0aGUgYG5hbWVgIGZpZWxkLgorICogVGhlIG9wZXJhdGlvbiByZXF1ZXN0IGlz IGFzeW5jaHJvbm91cyBhbmQgdGhlIHN0YXR1cyBzaG91bGQgYmUgcmV0cmlldmVkCisgKiBieSB1 c2luZyBlaXRoZXIgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfR0VUIG9yIFhFTl9TWVNDVExfTElWRVBB VENIX0xJU1QgaHlwZXJjYWxsLgorICovCisjZGVmaW5lIFhFTl9TWVNDVExfTElWRVBBVENIX0FD VElPTiAzCitzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfYWN0aW9uIHsKKyAgICB4ZW5fbGl2 ZXBhdGNoX25hbWVfdCBuYW1lOyAgICAgICAgICAgICAgLyogSU4sIG5hbWUgb2YgdGhlIHBhdGNo LiAqLworI2RlZmluZSBMSVZFUEFUQ0hfQUNUSU9OX1VOTE9BRCAgICAgICAxCisjZGVmaW5lIExJ VkVQQVRDSF9BQ1RJT05fUkVWRVJUICAgICAgIDIKKyNkZWZpbmUgTElWRVBBVENIX0FDVElPTl9B UFBMWSAgICAgICAgMworI2RlZmluZSBMSVZFUEFUQ0hfQUNUSU9OX1JFUExBQ0UgICAgICA0Cisg ICAgdWludDMyX3QgY21kOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBMSVZFUEFU Q0hfQUNUSU9OXyouICovCisgICAgdWludDMyX3QgdGltZW91dDsgICAgICAgICAgICAgICAgICAg ICAgIC8qIElOOiBaZXJvIGlmIG5vIHRpbWVvdXQuICovCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIE9yIHVwcGVyIGJvdW5kIG9mIHRpbWUgKG1zKSAqLwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBmb3Igb3BlcmF0 aW9uIHRvIHRha2UuICovCit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hf YWN0aW9uIHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2FjdGlvbl90OworCitzdHJ1Y3QgeGVuX3N5c2N0 bF9saXZlcGF0Y2hfb3AgeworICAgIHVpbnQzMl90IGNtZDsgICAgICAgICAgICAgICAgICAgICAg ICAgICAvKiBJTjogWEVOX1NZU0NUTF9MSVZFUEFUQ0hfKi4gKi8KKyAgICB1aW50MzJfdCBwYWQ7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSU46IEFsd2F5cyB6ZXJvLiAqLworICAgIHVu aW9uIHsKKyAgICAgICAgeGVuX3N5c2N0bF9saXZlcGF0Y2hfdXBsb2FkX3QgdXBsb2FkOworICAg ICAgICB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9saXN0X3QgbGlzdDsKKyAgICAgICAgeGVuX3N5c2N0 bF9saXZlcGF0Y2hfZ2V0X3QgZ2V0OworICAgICAgICB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9hY3Rp b25fdCBhY3Rpb247CisgICAgfSB1OworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfbGl2 ZXBhdGNoX29wIHhlbl9zeXNjdGxfbGl2ZXBhdGNoX29wX3Q7CisKK3N0cnVjdCB4ZW5fc3lzY3Rs IHsKKyAgICB1aW50MzJfdCBjbWQ7CisjZGVmaW5lIFhFTl9TWVNDVExfbGl2ZXBhdGNoX29wICAg ICAgICAgICAgICAgICAgMjcKKyAgICB1aW50MzJfdCBpbnRlcmZhY2VfdmVyc2lvbjsgLyogWEVO X1NZU0NUTF9JTlRFUkZBQ0VfVkVSU0lPTiAqLworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0 IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX29wICAgICAgbGl2ZXBhdGNoOworICAgICAgICB1aW50OF90 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRbMTI4XTsKKyAgICB9IHU7Cit9OwordHlw ZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bCB4ZW5fc3lzY3RsX3Q7CisKKyNlbmRpZiAvKiBfX1hFTl9Q VUJMSUNfU1lTQ1RMX0hfXyAqLworCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTog QworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13 aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdp dCBhL2luY2x1ZGUveGVuL3hlbi5oIGIvaW5jbHVkZS94ZW4veGVuLmgKaW5kZXggM2MzODc2ZC4u MDY3YmI1OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4veGVuLmgKKysrIGIvaW5jbHVkZS94ZW4v eGVuLmgKQEAgLTI1NSw2ICsyNTUsMTUgQEAgZW51bSBYRU5fVVZNRiB7CiB9OwogI2VuZGlmCiAK KyNpZm5kZWYgX19BU1NFTUJMWV9fCit0eXBlZGVmIHN0cnVjdCB7CisgICAgdW5pb24geworICAg ICAgICB2b2lkICpwOworICAgICAgICB1aW50NjRfdCBfX2FsaWduZWQoOCkgcTsKKyAgICB9Owor fSBndWVzdF9oYW5kbGVfNjRfdDsKKyNlbmRpZgorCiAjZW5kaWYgLyogWEVOX1BVQkxJQ19YRU5f SCAqLwogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94dGYvaHlwZXJjYWxsLmggYi9pbmNsdWRl L3h0Zi9oeXBlcmNhbGwuaAppbmRleCBhMzdlYmMyLi5hYjQ5ODZmIDEwMDY0NAotLS0gYS9pbmNs dWRlL3h0Zi9oeXBlcmNhbGwuaAorKysgYi9pbmNsdWRlL3h0Zi9oeXBlcmNhbGwuaApAQCAtMzQs NiArMzQsNyBAQCBleHRlcm4gdWludDhfdCBoeXBlcmNhbGxfcGFnZVtQQUdFX1NJWkVdOwogI2lu Y2x1ZGUgPHhlbi9waHlzZGV2Lmg+CiAjaW5jbHVkZSA8eGVuL21lbW9yeS5oPgogI2luY2x1ZGUg PHhlbi92ZXJzaW9uLmg+CisjaW5jbHVkZSA8eGVuL3N5c2N0bC5oPgogI2luY2x1ZGUgPHhlbi9o dm0vaHZtX29wLmg+CiAjaW5jbHVkZSA8eGVuL2h2bS9wYXJhbXMuaD4KIApAQCAtMTE0LDYgKzEx NSwxMSBAQCBzdGF0aWMgaW5saW5lIGxvbmcgaHlwZXJjYWxsX2h2bV9vcCh1bnNpZ25lZCBpbnQg Y21kLCB2b2lkICphcmcpCiAgICAgcmV0dXJuIEhZUEVSQ0FMTDIobG9uZywgX19IWVBFUlZJU09S X2h2bV9vcCwgY21kLCBhcmcpOwogfQogCitzdGF0aWMgaW5saW5lIGxvbmcgaHlwZXJjYWxsX3N5 c2N0bCh4ZW5fc3lzY3RsX3QgKmFyZykKK3sKKyAgICByZXR1cm4gSFlQRVJDQUxMMShsb25nLCBf X0hZUEVSVklTT1Jfc3lzY3RsLCBhcmcpOworfQorCiAvKgogICogSGlnaGVyIGxldmVsIGh5cGVy Y2FsbCBoZWxwZXJzCiAgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveHRmL2xpYi5oIGIvaW5jbHVk ZS94dGYvbGliLmgKaW5kZXggYjBhZTM5ZC4uNjVhYmRhYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS94 dGYvbGliLmgKKysrIGIvaW5jbHVkZS94dGYvbGliLmgKQEAgLTY1LDYgKzY1LDEyIEBAIHN0YXRp YyBpbmxpbmUgdm9pZCBleGVjX3VzZXJfdm9pZCh2b2lkICgqZm4pKHZvaWQpKQogICAgIGV4ZWNf dXNlcigodm9pZCAqKWZuKTsKIH0KIAorLyoqCisgKiBQcm9iZSBmb3IgdGhlIFNZU0NUTF9JTlRF UkZBQ0VfVkVSU0lPTiBpbiB1c2UgYnkgdGhlIGh5cGVydmlzb3IKKyAqIEByZXR1cm5zIHZlcnNp b24sIG9yIC0xIG9uIGZhaWx1cmUuCisgKi8KK2ludCB4dGZfcHJvYmVfc3lzY3RsX2ludGVyZmFj ZV92ZXJzaW9uKHZvaWQpOworCiAjZW5kaWYgLyogWFRGX0xJQl9IICovCiAKIC8qCmRpZmYgLS1n aXQgYS90ZXN0cy9saXZlcGF0Y2gtcHJpdi1jaGVjay9NYWtlZmlsZSBiL3Rlc3RzL2xpdmVwYXRj aC1wcml2LWNoZWNrL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmUyN2I5ZGEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9saXZlcGF0Y2gtcHJpdi1jaGVjay9N YWtlZmlsZQpAQCAtMCwwICsxLDkgQEAKK2luY2x1ZGUgJChST09UKS9idWlsZC9jb21tb24ubWsK KworTkFNRSAgICAgIDo9IGxpdmVwYXRjaC1wcml2LWNoZWNrCitDQVRFR09SWSAgOj0gZnVuY3Rp b25hbAorVEVTVC1FTlZTIDo9ICQoQUxMX0VOVklST05NRU5UUykKKworb2JqLXBlcmVudiArPSBt YWluLm8KKworaW5jbHVkZSAkKFJPT1QpL2J1aWxkL2dlbi5tawpkaWZmIC0tZ2l0IGEvdGVzdHMv bGl2ZXBhdGNoLXByaXYtY2hlY2svbWFpbi5jIGIvdGVzdHMvbGl2ZXBhdGNoLXByaXYtY2hlY2sv bWFpbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4ZmIxMGIKLS0tIC9k ZXYvbnVsbAorKysgYi90ZXN0cy9saXZlcGF0Y2gtcHJpdi1jaGVjay9tYWluLmMKQEAgLTAsMCAr MSwxNTMgQEAKKy8qKgorICogQGZpbGUgdGVzdHMvbGl2ZXBhdGNoLXByaXYtY2hlY2svbWFpbi5j CisgKiBAcmVmIHRlc3QtbGl2ZXBhdGNoLXByaXYtY2hlY2sKKyAqCisgKiBAcGFnZSB0ZXN0LWxp dmVwYXRjaC1wcml2LWNoZWNrIExpdmUgUGF0Y2ggUHJpdmlsZWdlIENoZWNrCisgKgorICogQ2hl Y2tzIHRoYXQgWGVuIHByZXZlbnRzIHVzaW5nIGFsbCBsaXZlIHBhdGNoaW5nIG9wZXJhdGlvbnMg YW5kCisgKiBzdWItb3BlcmF0aW9ucyBmcm9tIGFuIHVucHJpdmlsZWdlZCBndWVzdC4KKyAqCisg KiBAc2VlIHRlc3RzL2xpdmVwYXRjaC1jaGVjay1wcml2L21haW4uYworICovCisjaW5jbHVkZSA8 eHRmLmg+CisKK2NvbnN0IGNoYXIgdGVzdF90aXRsZVtdID0gIkxpdmUgUGF0Y2ggUHJpdmlsZWdl IENoZWNrIjsKKworc3RhdGljIGludCBzeXNjdGxfaW50ZXJmYWNlX3ZlcnNpb247CisKK3N0YXRp YyB2b2lkIGNoZWNrX3JldChjb25zdCBjaGFyICp0ZXN0LCBpbnQgcmMpCit7CisgICAgc3dpdGNo ICggcmMgKQorICAgIHsKKyAgICBjYXNlIC1FUEVSTToKKyAgICAgICAgcHJpbnRrKCIlczogWGVu IGNvcnJlY3RseSBkZW5pZWQgTGl2ZSBQYXRjaCBjYWxsc1xuIiwgdGVzdCk7CisgICAgICAgIGJy ZWFrOworCisgICAgY2FzZSAtRU5PU1lTOgorICAgICAgICB4dGZfc2tpcCgiJXM6IExpdmUgUGF0 Y2ggc3VwcG9ydCBub3QgZGV0ZWN0ZWRcbiIsIHRlc3QpOworICAgICAgICBicmVhazsKKworICAg IGRlZmF1bHQ6CisgICAgICAgIHh0Zl9mYWlsdXJlKCJGYWlsOiAlczogVW5leHBlY3RlZCByZXR1 cm4gY29kZSAlZFxuIiwgdGVzdCwgcmMpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKKyNk ZWZpbmUgVEVTVF9OQU1FICJmb28iCisKK3N0YXRpYyB2b2lkIHRlc3RfdXBsb2FkKHZvaWQpCit7 CisgICAgc3RhdGljIHVpbnQ4X3QgcGF5bG9hZFtQQUdFX1NJWkVdOworICAgIHhlbl9zeXNjdGxf dCBvcCA9CisgICAgeworICAgICAgICAuY21kID0gWEVOX1NZU0NUTF9saXZlcGF0Y2hfb3AsCisg ICAgICAgIC5pbnRlcmZhY2VfdmVyc2lvbiA9IHN5c2N0bF9pbnRlcmZhY2VfdmVyc2lvbiwKKyAg ICAgICAgLnUubGl2ZXBhdGNoID0geworICAgICAgICAgICAgLmNtZCA9IFhFTl9TWVNDVExfTElW RVBBVENIX1VQTE9BRCwKKyAgICAgICAgICAgIC51LnVwbG9hZCA9IHsKKyAgICAgICAgICAgICAg ICAubmFtZSA9IHsKKyAgICAgICAgICAgICAgICAgICAgLm5hbWUucCA9IFRFU1RfTkFNRSwKKyAg ICAgICAgICAgICAgICAgICAgLnNpemUgPSBzaXplb2YoVEVTVF9OQU1FKSwKKyAgICAgICAgICAg ICAgICB9LAorICAgICAgICAgICAgICAgIC5zaXplID0gUEFHRV9TSVpFLAorICAgICAgICAgICAg ICAgIC5wYXlsb2FkLnAgPSBwYXlsb2FkLAorICAgICAgICAgICAgfSwKKyAgICAgICAgfSwKKyAg ICB9OworCisgICAgY2hlY2tfcmV0KF9fZnVuY19fLCBoeXBlcmNhbGxfc3lzY3RsKCZvcCkpOwor fQorCisjZGVmaW5lIE5SX1BBWUxPQURTIDgKKworc3RhdGljIHZvaWQgdGVzdF9saXN0KHZvaWQp Cit7CisgICAgY2hhciBuYW1lc1tOUl9QQVlMT0FEUyAqIFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpF XTsKKyAgICB1aW50MzJfdCBsZW5ndGhzW05SX1BBWUxPQURTXTsKKworICAgIHhlbl9zeXNjdGxf dCBvcCA9CisgICAgeworICAgICAgICAuY21kID0gWEVOX1NZU0NUTF9saXZlcGF0Y2hfb3AsCisg ICAgICAgIC5pbnRlcmZhY2VfdmVyc2lvbiA9IHN5c2N0bF9pbnRlcmZhY2VfdmVyc2lvbiwKKyAg ICAgICAgLnUubGl2ZXBhdGNoID0geworICAgICAgICAgICAgLmNtZCA9IFhFTl9TWVNDVExfTElW RVBBVENIX0xJU1QsCisgICAgICAgICAgICAudS5saXN0ID0geworICAgICAgICAgICAgICAgIC5p ZHggPSAwLAorICAgICAgICAgICAgICAgIC5uciA9IE5SX1BBWUxPQURTLAorICAgICAgICAgICAg ICAgIC5uYW1lLnAgPSBuYW1lcywKKyAgICAgICAgICAgICAgICAubGVuLnAgPSBsZW5ndGhzLAor ICAgICAgICAgICAgfSwKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgY2hlY2tfcmV0KF9fZnVu Y19fLCBoeXBlcmNhbGxfc3lzY3RsKCZvcCkpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0X2dldCh2 b2lkKQoreworICAgIHhlbl9zeXNjdGxfdCBvcCA9CisgICAgeworICAgICAgICAuY21kID0gWEVO X1NZU0NUTF9saXZlcGF0Y2hfb3AsCisgICAgICAgIC5pbnRlcmZhY2VfdmVyc2lvbiA9IHN5c2N0 bF9pbnRlcmZhY2VfdmVyc2lvbiwKKyAgICAgICAgLnUubGl2ZXBhdGNoID0geworICAgICAgICAg ICAgLmNtZCA9IFhFTl9TWVNDVExfTElWRVBBVENIX0dFVCwKKyAgICAgICAgICAgIC51LmdldCA9 IHsKKyAgICAgICAgICAgICAgICAubmFtZSA9IHsKKyAgICAgICAgICAgICAgICAgICAgLm5hbWUu cCA9IFRFU1RfTkFNRSwKKyAgICAgICAgICAgICAgICAgICAgLnNpemUgPSBzaXplb2YoVEVTVF9O QU1FKSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfSwKKyAgICAgICAgfSwKKyAg ICB9OworCisgICAgY2hlY2tfcmV0KF9fZnVuY19fLCBoeXBlcmNhbGxfc3lzY3RsKCZvcCkpOwor fQorCitzdGF0aWMgdm9pZCB0ZXN0X2FjdGlvbih1aW50MzJfdCBhY3Rpb24pCit7CisgICAgeGVu X3N5c2N0bF90IG9wID0KKyAgICB7CisgICAgICAgIC5jbWQgPSBYRU5fU1lTQ1RMX2xpdmVwYXRj aF9vcCwKKyAgICAgICAgLmludGVyZmFjZV92ZXJzaW9uID0gc3lzY3RsX2ludGVyZmFjZV92ZXJz aW9uLAorICAgICAgICAudS5saXZlcGF0Y2ggPSB7CisgICAgICAgICAgICAuY21kID0gWEVOX1NZ U0NUTF9MSVZFUEFUQ0hfQUNUSU9OLAorICAgICAgICAgICAgLnUuYWN0aW9uID0geworICAgICAg ICAgICAgICAgIC5uYW1lID0geworICAgICAgICAgICAgICAgICAgICAubmFtZS5wID0gVEVTVF9O QU1FLAorICAgICAgICAgICAgICAgICAgICAuc2l6ZSA9IHNpemVvZihURVNUX05BTUUpLAorICAg ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgLmNtZCA9IGFjdGlvbiwKKyAgICAgICAg ICAgICAgICAudGltZW91dCA9IDAsCisgICAgICAgICAgICB9LAorICAgICAgICB9LAorICAgIH07 CisKKyAgICBjaGVja19yZXQoX19mdW5jX18sIGh5cGVyY2FsbF9zeXNjdGwoJm9wKSk7Cit9CisK K3ZvaWQgdGVzdF9tYWluKHZvaWQpCit7CisgICAgc3lzY3RsX2ludGVyZmFjZV92ZXJzaW9uID0g eHRmX3Byb2JlX3N5c2N0bF9pbnRlcmZhY2VfdmVyc2lvbigpOworICAgIGlmICggc3lzY3RsX2lu dGVyZmFjZV92ZXJzaW9uIDwgMCApCisgICAgICAgIHJldHVybiB4dGZfZXJyb3IoIkZhaWxlZCB0 byBmaW5kIHN5c2N0bCBpbnRlcmZhY2UgdmVyc2lvblxuIik7CisKKyAgICB0ZXN0X3VwbG9hZCgp OworICAgIHRlc3RfbGlzdCgpOworICAgIHRlc3RfZ2V0KCk7CisgICAgdGVzdF9hY3Rpb24oTElW RVBBVENIX0FDVElPTl9VTkxPQUQpOworICAgIHRlc3RfYWN0aW9uKExJVkVQQVRDSF9BQ1RJT05f UkVWRVJUKTsKKyAgICB0ZXN0X2FjdGlvbihMSVZFUEFUQ0hfQUNUSU9OX0FQUExZKTsKKyAgICB0 ZXN0X2FjdGlvbihMSVZFUEFUQ0hfQUNUSU9OX1JFUExBQ0UpOworCisgICAgeHRmX3N1Y2Nlc3Mo TlVMTCk7Cit9CisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZp bGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0Cisg KiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwotLSAKMi43LjQKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGlu ZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4t ZGV2ZWwK