From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Jackson Subject: [PATCH 04/26] xentoolcore, _restrict_all: Introduce new library and implementation Date: Tue, 10 Oct 2017 18:41:26 +0100 Message-ID: <1507657287-26452-2-git-send-email-ian.jackson@eu.citrix.com> References: <1507657287-26452-1-git-send-email-ian.jackson@eu.citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1507657287-26452-1-git-send-email-ian.jackson@eu.citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xensource.com Cc: Ross Lagerwall , Stefano Stabellini , Wei Liu , Ian Jackson List-Id: xen-devel@lists.xenproject.org SW4gcHJhY3RpY2UsIHFlbXUgb3BlbnMgYSBncmVhdCBtYW55IGZkcy4gIFRyYWNraW5nIHRoZW0g YWxsIGRvd24gYW5kCnBsYXlpbmcgd2hhY2stYS1tb2xlIGlzIHVuYXR0cmFjdGl2ZS4gIEl0IGlz IGFsc28gcG90ZW50aWFsbHkgZnJhZ2lsZQppbiB0aGF0IGZ1dHVyZSBjaGFuZ2VzIG1pZ2h0IGFj Y2lkZW50YWxseSB1bmRvIG91ciBlZmZvcnRzLgoKSW5zdGVhZCwgd2UgYXJlIGdvaW5nIHRvIHRl YWNoIGFsbCB0aGUgWGVuIGxpYnJhcmllcyBob3cgdG8gcmVnaXN0ZXIKdGhlaXIgZmRzIHNvIHRo YXQgdGhleSBjYW4gYmUgbmV1dGVyZWQgd2l0aCBvbmUgcWVtdSBjYWxsLgoKUmlnaHQgbm93LCBu b3RoaW5nIHdpbGwgZ28gd3JvbmcgaWYgc29tZSB0cmllcyB0byBsaW5rIHdpdGhvdXQKLWx0b29s Y29yZSwgYnV0IHRoYXQgd2lsbCBzdG9wIHdvcmtpbmcgYXMgc29vbiBhcyB0aGUgZmlyc3Qgb3Ro ZXIgWGVuCmxpYnJhcnkgc3RhcnRzIHRvIHJlZ2lzdGVyLiAgU28gdGhpcyBwYXRjaCB3aWxsIGJl IGZvbGxvd2VkIGJ5IHRoZQpzdHViZG9tIGJ1aWxkIHVwZGF0ZSwgYW5kIHNob3VsZCBiZSBmb2xs b3dlZCBieSBhCk1JTklPU19VUFNUUkVBTV9SRVZJU0lPTiB1cGRhdGVkLgoKU2FkbHkgcWVtdSB1 cHN0cmVhbSdzIGNvbmZpZ3VyYXRpb24gYXJyYW5nZW1lbnRzIGFyZSB0b28gY3J1ZGUsIGJlaW5n CmtleWVkIHNvbGVseSBvZmYgdGhlIFhlbiB2ZXJzaW9uIG51bWJlci4gIFNvIHRoZXkgY2Fubm90 IHByb3ZpZGUKZm9yd2FyZC9iYWNrd2FyZCBidWlsZCBjb21wYXRpYmlsaXR5IGFjcm9zcyBjaGFu Z2VzIGluIHhlbi11bnN0YWJsZSwKbGlrZSB0aGlzIG9uZS4gIHFlbXUgcGF0Y2hlcyB0byBsaW5r IGFnYWluc3QgeGVudG9vbGNvcmUgc2hvdWxkIGJlCmFwcGxpZWQgaW4gcWVtdSB1cHN0cmVhbSBz byBhdm9pZCB0aGUgcWVtdSBidWlsZCBicmVha2luZyBhZ2FpbnN0IHRoZQpyZWxlYXNlZCB2ZXJz aW9uIG9mIFhlbiA0LjEwLgoKU2lnbmVkLW9mZi1ieTogSWFuIEphY2tzb24gPElhbi5KYWNrc29u QGV1LmNpdHJpeC5jb20+CkFja2VkLWJ5OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgot LS0KdjU6IEZpeCBsb2NrKCkgY2FsbCB0byBhY3R1YWxseSBjYWxsIHB0aHJlYWRfbXV0ZXhfbG9j ayEKICAgIFNwb3R0ZWQgYnkgQW50aG9ueSBQZXJhcmQuCgp2MzogQ2hhbmdlICUubyAlLm9waWMg cnVsZXMgZm9yIGV4dHJhIGRlcGVuZGVuY3kgdG8gJChMSUJfT0JKUykgYW5kCiAgICAkKFBJQ19P QkpTKSBpbnN0ZWFkLiAgKFJlcG9ydCBmcm9tIFJvc3MgTGFnZXJ3YWxsLikKCnYyOiBSZW1vdmUg b2Jzb2xldGUgInh4eCIgY29tbWVudC4KICAgIE5vIGxvbmdlciBjbGFpbSB0byBwcm92aWRlIGlk ZW1wb3RlbmN5LgogICAgQWRkIHBhcmFncmFwaHMgdG8gY29tbWl0IG1lc3NhZ2UgYWJvdXQgY29t cGF0aWJpbGl0eS4KClNpZ25lZC1vZmYtYnk6IElhbiBKYWNrc29uIDxJYW4uSmFja3NvbkBldS5j aXRyaXguY29tPgotLS0KIC5naXRpZ25vcmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICA0ICsKIHRvb2xzL1J1bGVzLm1rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICA2ICsrCiB0b29scy9saWJzL01ha2VmaWxlICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgMSArCiB0b29scy9saWJzL3Rvb2xjb3JlL01ha2VmaWxlICAg ICAgICAgICAgICAgICAgICAgICB8IDEwMSArKysrKysrKysrKysrKysrKysrKwogdG9vbHMvbGli cy90b29sY29yZS9oYW5kbGVyZWcuYyAgICAgICAgICAgICAgICAgICAgfCAgNzcgKysrKysrKysr KysrKysrKwogdG9vbHMvbGlicy90b29sY29yZS9pbmNsdWRlL3hlbnRvb2xjb3JlLmggICAgICAg ICAgfCAgNzMgKysrKysrKysrKysrKysrCiB0b29scy9saWJzL3Rvb2xjb3JlL2luY2x1ZGUveGVu dG9vbGNvcmVfaW50ZXJuYWwuaCB8IDEwMiArKysrKysrKysrKysrKysrKysrKysKIHRvb2xzL2xp YnMvdG9vbGNvcmUvbGlieGVudG9vbGNvcmUubWFwICAgICAgICAgICAgIHwgICA3ICsrCiB0b29s cy9saWJzL3Rvb2xjb3JlL3hlbnRvb2xjb3JlLnBjLmluICAgICAgICAgICAgICB8ICAgOSArKwog OSBmaWxlcyBjaGFuZ2VkLCAzODAgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRv b2xzL2xpYnMvdG9vbGNvcmUvTWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy9saWJz L3Rvb2xjb3JlL2hhbmRsZXJlZy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvbGlicy90b29s Y29yZS9pbmNsdWRlL3hlbnRvb2xjb3JlLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy9saWJz L3Rvb2xjb3JlL2luY2x1ZGUveGVudG9vbGNvcmVfaW50ZXJuYWwuaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHRvb2xzL2xpYnMvdG9vbGNvcmUvbGlieGVudG9vbGNvcmUubWFwCiBjcmVhdGUgbW9kZSAx MDA2NDQgdG9vbHMvbGlicy90b29sY29yZS94ZW50b29sY29yZS5wYy5pbgoKZGlmZiAtLWdpdCBh Ly5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IGYzNmRkZDIuLjk1ZjQwZjEgMTAwNjQ0Ci0t LSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtNzMsNiArNzMsNyBAQCBzdHViZG9t L2xpYnhlbmNhbGwtKgogc3R1YmRvbS9saWJ4ZW5ldnRjaG4tKgogc3R1YmRvbS9saWJ4ZW5mb3Jl aWdubWVtb3J5LSoKIHN0dWJkb20vbGlieGVuZ250dGFiLSoKK3N0dWJkb20vbGlieGVudG9vbGNv cmUtKgogc3R1YmRvbS9saWJ4ZW50b29sbG9nLSoKIHN0dWJkb20vbHdpcC0qCiBzdHViZG9tL2x3 aXAvCkBAIC05OCw2ICs5OSw4IEBAIHRvb2xzL2NvbmZpZy5jYWNoZQogY29uZmlnL1Rvb2xzLm1r CiBjb25maWcvU3R1YmRvbS5tawogY29uZmlnL0RvY3MubWsKK3Rvb2xzL2xpYnMvdG9vbGNvcmUv aGVhZGVycy5jaGsKK3Rvb2xzL2xpYnMvdG9vbGNvcmUveGVudG9vbGNvcmUucGMKIHRvb2xzL2xp YnMvdG9vbGxvZy9oZWFkZXJzLmNoawogdG9vbHMvbGlicy90b29sbG9nL3hlbnRvb2xsb2cucGMK IHRvb2xzL2xpYnMvZXZ0Y2huL2hlYWRlcnMuY2hrCkBAIC0zNTIsNiArMzU1LDcgQEAgdG9vbHMv aW5jbHVkZS94ZW4tZm9yZWlnbi9hcm02NC5oCiAuZ2l0CiB0b29scy9taXNjL3hlbi1ocHRvb2wK IHRvb2xzL21pc2MveGVuLW1mbmR1bXAKK3Rvb2xzL2xpYnMvdG9vbGNvcmUvaW5jbHVkZS9fKi5o CiB0b29scy9saWJ4Yy9fKi5bY2hdCiB0b29scy9saWJ4bC9fKi5bY2hdCiB0b29scy9saWJ4bC90 ZXN0aWRsCmRpZmYgLS1naXQgYS90b29scy9SdWxlcy5tayBiL3Rvb2xzL1J1bGVzLm1rCmluZGV4 IGRiYzc2MzUuLjVlMWM3Y2IgMTAwNjQ0Ci0tLSBhL3Rvb2xzL1J1bGVzLm1rCisrKyBiL3Rvb2xz L1J1bGVzLm1rCkBAIC0xMCw2ICsxMCw3IEBAIGV4cG9ydCBfSU5TVEFMTCA6PSAkKElOU1RBTEwp CiBJTlNUQUxMID0gJChYRU5fUk9PVCkvdG9vbHMvY3Jvc3MtaW5zdGFsbAogCiBYRU5fSU5DTFVE RSAgICAgICAgPSAkKFhFTl9ST09UKS90b29scy9pbmNsdWRlCitYRU5fTElCWEVOVE9PTENPUkUg ID0gJChYRU5fUk9PVCkvdG9vbHMvbGlicy90b29sY29yZQogWEVOX0xJQlhFTlRPT0xMT0cgID0g JChYRU5fUk9PVCkvdG9vbHMvbGlicy90b29sbG9nCiBYRU5fTElCWEVORVZUQ0hOICAgPSAkKFhF Tl9ST09UKS90b29scy9saWJzL2V2dGNobgogWEVOX0xJQlhFTkdOVFRBQiAgID0gJChYRU5fUk9P VCkvdG9vbHMvbGlicy9nbnR0YWIKQEAgLTEwMiw2ICsxMDMsMTEgQEAgU0hERVBTX2xpYnhlbnRv b2xsb2cgPQogTERMSUJTX2xpYnhlbnRvb2xsb2cgPSAkKFNIREVQU19saWJ4ZW50b29sbG9nKSAk KFhFTl9MSUJYRU5UT09MTE9HKS9saWJ4ZW50b29sbG9nJChsaWJleHRlbnNpb24pCiBTSExJQl9s aWJ4ZW50b29sbG9nICA9ICQoU0hERVBTX2xpYnhlbnRvb2xsb2cpIC1XbCwtcnBhdGgtbGluaz0k KFhFTl9MSUJYRU5UT09MTE9HKQogCitDRkxBR1NfbGlieGVudG9vbGNvcmUgPSAtSSQoWEVOX0xJ QlhFTlRPT0xDT1JFKS9pbmNsdWRlICQoQ0ZMQUdTX3hlbmluY2x1ZGUpCitTSERFUFNfbGlieGVu dG9vbGNvcmUgPQorTERMSUJTX2xpYnhlbnRvb2xjb3JlID0gJChTSERFUFNfbGlieGVudG9vbGNv cmUpICQoWEVOX0xJQlhFTlRPT0xDT1JFKS9saWJ4ZW50b29sY29yZSQobGliZXh0ZW5zaW9uKQor U0hMSUJfbGlieGVudG9vbGNvcmUgID0gJChTSERFUFNfbGlieGVudG9vbGNvcmUpIC1XbCwtcnBh dGgtbGluaz0kKFhFTl9MSUJYRU5UT09MQ09SRSkKKwogQ0ZMQUdTX2xpYnhlbmV2dGNobiA9IC1J JChYRU5fTElCWEVORVZUQ0hOKS9pbmNsdWRlICQoQ0ZMQUdTX3hlbmluY2x1ZGUpCiBTSERFUFNf bGlieGVuZXZ0Y2huID0KIExETElCU19saWJ4ZW5ldnRjaG4gPSAkKFNIREVQU19saWJ4ZW5ldnRj aG4pICQoWEVOX0xJQlhFTkVWVENITikvbGlieGVuZXZ0Y2huJChsaWJleHRlbnNpb24pCmRpZmYg LS1naXQgYS90b29scy9saWJzL01ha2VmaWxlIGIvdG9vbHMvbGlicy9NYWtlZmlsZQppbmRleCAy MDM1ODczLi5lYTlhNjRkIDEwMDY0NAotLS0gYS90b29scy9saWJzL01ha2VmaWxlCisrKyBiL3Rv b2xzL2xpYnMvTWFrZWZpbGUKQEAgLTIsNiArMiw3IEBAIFhFTl9ST09UID0gJChDVVJESVIpLy4u Ly4uCiBpbmNsdWRlICQoWEVOX1JPT1QpL3Rvb2xzL1J1bGVzLm1rCiAKIFNVQkRJUlMteSA6PQor U1VCRElSUy15ICs9IHRvb2xjb3JlCiBTVUJESVJTLXkgKz0gdG9vbGxvZwogU1VCRElSUy15ICs9 IGV2dGNobgogU1VCRElSUy15ICs9IGdudHRhYgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy90b29s Y29yZS9NYWtlZmlsZSBiL3Rvb2xzL2xpYnMvdG9vbGNvcmUvTWFrZWZpbGUKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzNkYjBiZAotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xz L2xpYnMvdG9vbGNvcmUvTWFrZWZpbGUKQEAgLTAsMCArMSwxMDEgQEAKK1hFTl9ST09UID0gJChD VVJESVIpLy4uLy4uLy4uCitpbmNsdWRlICQoWEVOX1JPT1QpL3Rvb2xzL1J1bGVzLm1rCisKK01B Sk9SCT0gMQorTUlOT1IJPSAwCitTSExJQl9MREZMQUdTICs9IC1XbCwtLXZlcnNpb24tc2NyaXB0 PWxpYnhlbnRvb2xjb3JlLm1hcAorCitDRkxBR1MJKz0gLVdlcnJvciAtV21pc3NpbmctcHJvdG90 eXBlcworQ0ZMQUdTCSs9IC1JLi9pbmNsdWRlCisKK1NSQ1MteQkrPSBoYW5kbGVyZWcuYworCitM SUJfT0JKUyA6PSAkKHBhdHN1YnN0ICUuYywlLm8sJChTUkNTLXkpKQorUElDX09CSlMgOj0gJChw YXRzdWJzdCAlLmMsJS5vcGljLCQoU1JDUy15KSkKKworTElCIDo9IGxpYnhlbnRvb2xjb3JlLmEK K2lmbmVxICgkKG5vc2hhcmVkbGlicykseSkKK0xJQiArPSBsaWJ4ZW50b29sY29yZS5zbworZW5k aWYKKworUEtHX0NPTkZJRyA6PSB4ZW50b29sY29yZS5wYworUEtHX0NPTkZJR19WRVJTSU9OIDo9 ICQoTUFKT1IpLiQoTUlOT1IpCisKK2lmbmVxICgkKENPTkZJR19MSUJYQ19NSU5JT1MpLHkpCitQ S0dfQ09ORklHX0lOU1QgOj0gJChQS0dfQ09ORklHKQorJChQS0dfQ09ORklHX0lOU1QpOiBQS0df Q09ORklHX1BSRUZJWCA9ICQocHJlZml4KQorJChQS0dfQ09ORklHX0lOU1QpOiBQS0dfQ09ORklH X0lOQ0RJUiA9ICQoaW5jbHVkZWRpcikKKyQoUEtHX0NPTkZJR19JTlNUKTogUEtHX0NPTkZJR19M SUJESVIgPSAkKGxpYmRpcikKK2VuZGlmCisKK1BLR19DT05GSUdfTE9DQUwgOj0gJChmb3JlYWNo IHBjLCQoUEtHX0NPTkZJRyksJChQS0dfQ09ORklHX0RJUikvJChwYykpCisKKyQoUEtHX0NPTkZJ R19MT0NBTCk6IFBLR19DT05GSUdfUFJFRklYID0gJChYRU5fUk9PVCkKKyQoUEtHX0NPTkZJR19M T0NBTCk6IFBLR19DT05GSUdfSU5DRElSID0gJChYRU5fTElCWEVOVE9PTENPUkUpL2luY2x1ZGUK KyQoUEtHX0NPTkZJR19MT0NBTCk6IFBLR19DT05GSUdfTElCRElSID0gJChDVVJESVIpCisKK0FV VE9JTkNTPWluY2x1ZGUvX3hlbnRvb2xjb3JlX2xpc3QuaAorCisuUEhPTlk6IGFsbAorYWxsOiBi dWlsZAorCisuUEhPTlk6IGJ1aWxkCitidWlsZDoKKwkkKE1BS0UpIGxpYnMKKworLlBIT05ZOiBs aWJzCitsaWJzOiBoZWFkZXJzLmNoayAkKExJQikgJChQS0dfQ09ORklHX0lOU1QpICQoUEtHX0NP TkZJR19MT0NBTCkKKworJChMSUJfT0JKUyk6ICQoQVVUT0lOQ1MpCiskKFBJQ19PQkpTKTogJChB VVRPSU5DUykKKworaGVhZGVycy5jaGs6ICQod2lsZGNhcmQgaW5jbHVkZS8qLmgpICQoQVVUT0lO Q1MpCisKK2luY2x1ZGUvX3hlbnRvb2xjb3JlX2xpc3QuaDogJChYRU5fSU5DTFVERSkveGVuLWV4 dGVybmFsL2JzZC1zeXMtcXVldWUtaC1zZWRkZXJ5ICQoWEVOX0lOQ0xVREUpL3hlbi1leHRlcm5h bC9ic2Qtc3lzLXF1ZXVlLmgKKwkkKFBFUkwpICReIC0tcHJlZml4PXhlbnRvb2xjb3JlID4kQC5u ZXcKKwkkKGNhbGwgbW92ZS1pZi1jaGFuZ2VkLCRALm5ldywkQCkKKworbGlieGVudG9vbGNvcmUu YTogJChMSUJfT0JKUykKKwkkKEFSKSByYyAkQCAkXgorCitsaWJ4ZW50b29sY29yZS5zbzogbGli eGVudG9vbGNvcmUuc28uJChNQUpPUikKKwkkKFNZTUxJTktfU0hMSUIpICQ8ICRACitsaWJ4ZW50 b29sY29yZS5zby4kKE1BSk9SKTogbGlieGVudG9vbGNvcmUuc28uJChNQUpPUikuJChNSU5PUikK KwkkKFNZTUxJTktfU0hMSUIpICQ8ICRACisKK2xpYnhlbnRvb2xjb3JlLnNvLiQoTUFKT1IpLiQo TUlOT1IpOiAkKFBJQ19PQkpTKSBsaWJ4ZW50b29sY29yZS5tYXAKKwkkKENDKSAkKExERkxBR1Mp IC1XbCwkKFNPTkFNRV9MREZMQUcpIC1XbCxsaWJ4ZW50b29sY29yZS5zby4kKE1BSk9SKSAkKFNI TElCX0xERkxBR1MpIC1vICRAICQoUElDX09CSlMpICQoQVBQRU5EX0xERkxBR1MpCisKKy5QSE9O WTogaW5zdGFsbAoraW5zdGFsbDogYnVpbGQKKwkkKElOU1RBTExfRElSKSAkKERFU1RESVIpJChs aWJkaXIpCisJJChJTlNUQUxMX0RJUikgJChERVNURElSKSQoaW5jbHVkZWRpcikKKwkkKElOU1RB TExfU0hMSUIpIGxpYnhlbnRvb2xjb3JlLnNvLiQoTUFKT1IpLiQoTUlOT1IpICQoREVTVERJUikk KGxpYmRpcikKKwkkKElOU1RBTExfREFUQSkgbGlieGVudG9vbGNvcmUuYSAkKERFU1RESVIpJChs aWJkaXIpCisJJChTWU1MSU5LX1NITElCKSBsaWJ4ZW50b29sY29yZS5zby4kKE1BSk9SKS4kKE1J Tk9SKSAkKERFU1RESVIpJChsaWJkaXIpL2xpYnhlbnRvb2xjb3JlLnNvLiQoTUFKT1IpCisJJChT WU1MSU5LX1NITElCKSBsaWJ4ZW50b29sY29yZS5zby4kKE1BSk9SKSAkKERFU1RESVIpJChsaWJk aXIpL2xpYnhlbnRvb2xjb3JlLnNvCisJJChJTlNUQUxMX0RBVEEpIGluY2x1ZGUveGVudG9vbGNv cmUuaCAkKERFU1RESVIpJChpbmNsdWRlZGlyKQorCSQoSU5TVEFMTF9EQVRBKSB4ZW50b29sY29y ZS5wYyAkKERFU1RESVIpJChQS0dfSU5TVEFMTERJUikKKworLlBIT05ZOiB1aW5zdGFsbAordW5p bnN0YWxsOgorCXJtIC1mICQoREVTVERJUikkKFBLR19JTlNUQUxMRElSKS94ZW50b29sY29yZS5w YworCXJtIC1mICQoREVTVERJUikkKGluY2x1ZGVkaXIpL3hlbnRvb2xjb3JlLmgKKwlybSAtZiAk KERFU1RESVIpJChsaWJkaXIpL2xpYnhlbnRvb2xjb3JlLnNvCisJcm0gLWYgJChERVNURElSKSQo bGliZGlyKS9saWJ4ZW50b29sY29yZS5zby4kKE1BSk9SKQorCXJtIC1mICQoREVTVERJUikkKGxp YmRpcikvbGlieGVudG9vbGNvcmUuc28uJChNQUpPUikuJChNSU5PUikKKwlybSAtZiAkKERFU1RE SVIpJChsaWJkaXIpL2xpYnhlbnRvb2xjb3JlLmEKKworLlBIT05ZOiBUQUdTCitUQUdTOgorCWV0 YWdzIC10ICouYyAqLmgKKworLlBIT05ZOiBjbGVhbgorY2xlYW46CisJcm0gLXJmICoucnBtICQo TElCKSAqfiAkKERFUFNfUk0pICQoTElCX09CSlMpICQoUElDX09CSlMpCisJcm0gLWYgbGlieGVu dG9vbGNvcmUuc28uJChNQUpPUikuJChNSU5PUikgbGlieGVudG9vbGNvcmUuc28uJChNQUpPUikK KwlybSAtZiBoZWFkZXJzLmNoaworCXJtIC1mIHhlbnRvb2xjb3JlLnBjCisKKy5QSE9OWTogZGlz dGNsZWFuCitkaXN0Y2xlYW46IGNsZWFuCmRpZmYgLS1naXQgYS90b29scy9saWJzL3Rvb2xjb3Jl L2hhbmRsZXJlZy5jIGIvdG9vbHMvbGlicy90b29sY29yZS9oYW5kbGVyZWcuYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTg1NGIyCi0tLSAvZGV2L251bGwKKysrIGIvdG9v bHMvbGlicy90b29sY29yZS9oYW5kbGVyZWcuYwpAQCAtMCwwICsxLDc3IEBACisvKgorICogaGFu ZGxyZWcuYworICoKKyAqIGltcGxlbWVudGF0aW9uIG9mIHhlbnRvb2xjb3JlX3Jlc3RyaWN0X2Fs bAorICoKKyAqIENvcHlyaWdodCAoYykgMjAxNyBDaXRyaXgKKyAqIFBhcnQgb2YgYSBnZW5lcmlj IGxvZ2dpbmcgaW50ZXJmYWNlIHVzZWQgYnkgdmFyaW91cyBkb20wIHVzZXJsYW5kIGxpYnJhcmll cy4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOworICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UuCisg KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5z ZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LgorICovCisKKyNpbmNsdWRlICJ4ZW50b29sY29yZV9pbnRlcm5hbC5oIgor CisjaW5jbHVkZSA8cHRocmVhZC5oPgorI2luY2x1ZGUgPGFzc2VydC5oPgorCitzdGF0aWMgcHRo cmVhZF9tdXRleF90IGhhbmRsZXNfbG9jayA9IFBUSFJFQURfTVVURVhfSU5JVElBTElaRVI7Citz dGF0aWMgWEVOVE9PTENPUkVfTElTVF9IRUFEKCwgWGVudG9vbGNvcmVfX0FjdGl2ZV9IYW5kbGUp IGhhbmRsZXM7CisKK3N0YXRpYyB2b2lkIGxvY2sodm9pZCkgeworICAgIGludCBlID0gcHRocmVh ZF9tdXRleF9sb2NrKCZoYW5kbGVzX2xvY2spOworICAgIGFzc2VydCghZSk7Cit9CisKK3N0YXRp YyB2b2lkIHVubG9jayh2b2lkKSB7CisgICAgaW50IGUgPSBwdGhyZWFkX211dGV4X3VubG9jaygm aGFuZGxlc19sb2NrKTsKKyAgICBhc3NlcnQoIWUpOworfQorCit2b2lkIHhlbnRvb2xjb3JlX19y ZWdpc3Rlcl9hY3RpdmVfaGFuZGxlKFhlbnRvb2xjb3JlX19BY3RpdmVfSGFuZGxlICphaCkgewor ICAgIGxvY2soKTsKKyAgICBYRU5UT09MQ09SRV9MSVNUX0lOU0VSVF9IRUFEKCZoYW5kbGVzLCBh aCwgZW50cnkpOworICAgIHVubG9jaygpOworfQorCit2b2lkIHhlbnRvb2xjb3JlX19kZXJlZ2lz dGVyX2FjdGl2ZV9oYW5kbGUoWGVudG9vbGNvcmVfX0FjdGl2ZV9IYW5kbGUgKmFoKSB7CisgICAg bG9jaygpOworICAgIFhFTlRPT0xDT1JFX0xJU1RfUkVNT1ZFKGFoLCBlbnRyeSk7CisgICAgdW5s b2NrKCk7Cit9CisKK2ludCB4ZW50b29sY29yZV9yZXN0cmljdF9hbGwodWludDMyX3QgZG9taWQp IHsKKyAgICBpbnQgcjsKKyAgICBYZW50b29sY29yZV9fQWN0aXZlX0hhbmRsZSAqYWg7CisKKyAg ICBsb2NrKCk7CisgICAgWEVOVE9PTENPUkVfTElTVF9GT1JFQUNIKGFoLCAmaGFuZGxlcywgZW50 cnkpIHsKKyAgICAgICAgciA9IGFoLT5yZXN0cmljdF9jYWxsYmFjayhhaCwgZG9taWQpOworICAg ICAgICBpZiAocikgZ290byBvdXQ7CisgICAgfQorCisgICAgciA9IDA7Cisgb3V0OgorICAgIHVu bG9jaygpOworICAgIHJldHVybiByOworfQorCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICog bW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAq IHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlm ZiAtLWdpdCBhL3Rvb2xzL2xpYnMvdG9vbGNvcmUvaW5jbHVkZS94ZW50b29sY29yZS5oIGIvdG9v bHMvbGlicy90b29sY29yZS9pbmNsdWRlL3hlbnRvb2xjb3JlLmgKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uMzJlMmFmMQotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL2xpYnMv dG9vbGNvcmUvaW5jbHVkZS94ZW50b29sY29yZS5oCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiB4 ZW50b29sY29yZS5oCisgKgorICogQ29weXJpZ2h0IChjKSAyMDE3IENpdHJpeAorICogCisgKiBD b21tb24gZmVhdHVyZXMgdXNlZC9wcm92aWRlZCBieSBhbGwgWGVuIHRvb2xzIGxpYnJhcmllcwor ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247CisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZS4KKyAqCisg KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFs b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uCisgKi8KKworI2lmbmRlZiBYRU5UT09MQ09SRV9ICisjZGVmaW5lIFhFTlRPT0xD T1JFX0gKKworI2luY2x1ZGUgPHN0ZGludC5oPgorCisvKgorICogaW50IHhlbnRvb2xjb3JlX3Jl c3RyaWN0X2FsbCh1aW50MzJfdCBkb21pZCk7CisgKgorICogQXJyYW5nZXMgdGhhdCBYZW4gbGli cmFyeSBoYW5kbGVzIChmZHMgZXRjLikgd2hpY2ggYXJlIGN1cnJlbnRseSBoZWxkCisgKiBieSBY ZW4gbGlicmFyaWVzLCBjYW4gbm8gbG9uZ2VyIGJlIHVzZWQgb3RoZXIgdGhhbiB0byBhZmZlY3Qg ZG9taWQuCisgKgorICogSWYgdGhpcyBjYW5ub3QgYmUgYWNoaWV2ZWQsIHJldHVybnMgLTEgYW5k IHNldHMgZXJybm8uCisgKiBJZiBjYWxsZWQgYWdhaW4gd2l0aCB0aGUgc2FtZSBkb21pZCwgaXQg bWF5IHN1Y2NlZWQsIG9yIGl0IG1heQorICogZmFpbCAoZXZlbiB0aG91Z2ggc3VjaCBhIGNhbGwg aXMgcG90ZW50aWFsbHkgbWVhbmluZ2Z1bCkuCisgKiAoSWYgY2FsbGVkIGFnYWluIHdpdGggYSBk aWZmZXJlbnQgZG9taWQsIGl0IHdpbGwgbmVjZXNzYXJpbHkgZmFpbC4pCisgKgorICogID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CisgKiAgSU1QT1JUQU5UIC0gSU1QTEVNRU5UQVRJT04gU1RBVFVTCisgKgorICogIFRo aXMgZnVuY3Rpb24gd2lsbCBiZSBpbXBsZW1lbnRlZCBpbnNvZmFyIGFzIGl0IGFwcGVhcnMgbmVj ZXNzYXJ5CisgKiAgZm9yIHRoZSBwdXJwb3NlcyBvZiBydW5uaW5nIGEgZGVwcml2aWxlZ2VkIHFl bXUuCisgKgorICogIEhvd2V2ZXIsIHRoaXMgZnVuY3Rpb24gaXMgTk9UIGltcGxlbWVudGVkIGZv ciBhbGwgWGVuIGxpYnJhcmllcy4KKyAqICBGb3IgZWFjaCB1c2UgY2FzZSBvZiB0aGlzIGZ1bmN0 aW9uLCB0aGUgZGVzaWduZXIgbXVzdCBldmFsdWF0ZSBhbmQKKyAqICBhdWRpdCB3aGV0aGVyIHRo ZSBpbXBsZW1lbnRhdGlvbiBpcyBzdWZmaWNpZW50IGluIHRoZWlyIHNwZWNpZmljCisgKiAgY29u dGV4dC4KKyAqCisgKiAgT2YgY291cnNlLCBwYXRjaGVzIHRvIGV4dGVuZCB0aGUgaW1wbGVtZW50 YXRpb24gYXJlIHZlcnkgd2VsY29tZS4KKyAqICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoKKyAqIFRocmVhZCBz YWZlLgorICoKKyAqIFdlIGV4cGVjdCB0aGF0IG5vIGNhbGxlcnMgZG8gdGhlIGZvbGxvd2luZzoK KyAqICAgLSBpbiBvbmUgdGhyZWFkIGNhbGwgeGVuX3NvbWVsaWJyYXJ5X29wZW58Y2xvc2UKKyAq ICAgLSBpbiBhbm90aGVyIHRocmVhZCBjYWxsIGZvcmsKKyAqICAgLSBpbiB0aGUgY2hpbGQgb2Yg dGhlIGZvcmssIGJlZm9yZSBleGVjLCBjYWxsCisgKiAgICAgeGVuX3NvbWVbb3RoZXJdbGlicmFy eV9vcGVufGNsb3NlIG9yIHhlbnRvb2xjb3JlX3Jlc3RyaWN0X2FsbAorICoKKyAqLworaW50IHhl bnRvb2xjb3JlX3Jlc3RyaWN0X2FsbCh1aW50MzJfdCBkb21pZCk7CisKKyNlbmRpZiAvKiBYRU5U T09MQ09SRV9IICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBj LWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0 CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvdG9v bHMvbGlicy90b29sY29yZS9pbmNsdWRlL3hlbnRvb2xjb3JlX2ludGVybmFsLmggYi90b29scy9s aWJzL3Rvb2xjb3JlL2luY2x1ZGUveGVudG9vbGNvcmVfaW50ZXJuYWwuaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi42NzBlMjlkCi0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMv bGlicy90b29sY29yZS9pbmNsdWRlL3hlbnRvb2xjb3JlX2ludGVybmFsLmgKQEAgLTAsMCArMSwx MDIgQEAKKy8qCisgKiB4ZW50b29sY29yZV9pbnRlcm5hbC5oCisgKgorICogSW50ZXJmYWNlcyBv ZiB4ZW50b29sY29yZSBkaXJlY3RlZCBpbnRlcm5hbGx5IGF0IG90aGVyIFhlbiBsaWJyYXJpZXMK KyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTcgQ2l0cml4CisgKiAKKyAqIENvbW1vbiBjb2RlIHVz ZWQgYnkgYWxsIFhlbiB0b29scyBsaWJyYXJpZXMKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOworICogdmVy c2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKyNpZm5kZWYg WEVOVE9PTENPUkVfSU5URVJOQUxfSAorI2RlZmluZSBYRU5UT09MQ09SRV9JTlRFUk5BTF9ICisK KyNpbmNsdWRlICJ4ZW50b29sY29yZS5oIgorI2luY2x1ZGUgIl94ZW50b29sY29yZV9saXN0Lmgi CisKKy8qLS0tLS0tLS0tLSBhY3RpdmUgaGFuZGxlIHJlZ2lzdHJhdGlvbiAtLS0tLS0tLS0tKi8K KworLyoKKyAqIFRoaXMgaXMgYWxsIHRvIHN1cHBvcnQgeGVudG9vbGNvcmVfcmVzdHJpY3RfYWxs CisgKgorICogQW55IGxpYnhsIGxpYnJhcnkgdGhhdCBvcGVucyBhIFhlbiBjb250cm9sIGhhbmRs ZSBvZiBhbnkga2luZCB3aGljaAorICogbWlnaHQgYWxsb3cgbWFuaXB1bGF0aW9uIG9mIGRvbTAs IG9mIG90aGVyIGRvbWFpbnMsIG9yIG9mIHRoZSB3aG9sZQorICogbWFjaGluZSwgbXVzdDoKKyAq ICAgSS4gYXJyYW5nZSB0aGF0IHRoZWlyIG93biBkYXRhc3RydWN0dXJlIGNvbnRhaW5zIGEKKyAq ICAgICAgICAgIFhlbnRvb2xjb3JlX19BY3RpdmVfSGFuZGxlCisgKiAKKyAqICAgSUkuIGR1cmlu ZyB0aGUgIm9wZW4gaGFuZGxlIiBmdW5jdGlvbgorICogICAgIDEuIGFsbG9jYXRlIHRoZSBtZW1v cnkgZm9yIHRoZSBvd24gZGF0YXN0cnVjdHVyZSBhbmQgaW5pdGlhbGlzZSBpdAorICogICAgIDIu IHNldCBYZW50b29sY29yZV9fQWN0aXZlX0hhbmRsZS5yZXN0cmljdF9jYWxsYmFjaworICogICAg IDMuIGNhbGwgeGVudG9vbGNvcmVfX3JlZ2lzdGVyX2FjdGl2ZV9oYW5kbGUKKyAqICAgICAgIDNh LiBpZiB0aGUgb3BlbiBmYWlscywgY2FsbCB4ZW50b29sY29yZV9fZGVyZWdpc3Rlcl9hY3RpdmVf aGFuZGxlCisgKiAgICAgNC4gT05MWSBUSEVOIGFjdHVhbGx5IG9wZW4gdGhlIHJlbGV2YW50IGZk IG9yIHdoYXRldmVyCisgKgorICogICBJSUkuIGR1cmluZyB0aGUgImNsb3NlIGhhbmRsZSIgZnVu Y3Rpb24KKyAqICAgICAxLiBGSVJTVCBjbG9zZSB0aGUgcmVsZXZhbnQgZmQgb3Igd2hhdGV2ZXIK KyAqICAgICAyLiBjYWxsIHhlbnRvb2xjb3JlX19kZXJlZ2lzdGVyX2FjdGl2ZV9oYW5kbGUKKyAq CisgKiAgIElWLiBpbiB0aGUgcmVzdHJpY3RfY2FsbGJhY2sgZnVuY3Rpb24KKyAqICAgICAqIEFy cmFuZ2UgdGhhdCB0aGUgZmQgKG9yIG90aGVyIGhhbmRsZSkgY2FuIG5vIGxvbmdlciBieSB1c2Vk CisgKiAgICAgICBvdGhlciB0aGFuIHdpdGggcmVzcGVjdCB0byBkb21haW4gZG9taWQuCisgKiAg ICAgKiBGdXR1cmUgYXR0ZW1wdHMgdG8gbWFuaXB1bGF0ZSBvdGhlciBkb21haW5zIChvciB0aGUg d2hvbGUKKyAqICAgICAgIGhvc3QpIHZpYSB0aGlzIGhhbmRsZSBtdXN0IGNhdXNlIGFuIGVycm9y IHJldHVybiAoYW5kCisgKiAgICAgICBwZXJoYXBzIGEgbG9nIG1lc3NhZ2UpLCBub3QgYSBjcmFz aAorICogICAgICogSWYgc2VsZWN0aXZlIHJlc3RyaWN0aW9uIGlzIG5vdCBwb3NzaWJsZSwgdGhl IGhhbmRsZSBtdXN0CisgKiAgICAgICBiZSBjb21wbGV0ZWx5IGludmFsaWRhdGVkIHNvIHRoYXQg aXQgaXMgbm90IHVzZWFibGU7CisgKiAgICAgICBzdWJzZXF1ZW50IG1hbmlwdWxhdGlvbnMgbWF5 IG5vdCBjcmFzaAorICogICAgICogVGhlIHJlc3RyaWN0X2NhbGxiYWNrIGZ1bmN0aW9uIHNob3Vs ZCBub3Qgbm9ybWFsbHkgZmFpbAorICogICAgICAgaWYgdGhpcyBjYW4gYmUgZWFzaWx5IGF2b2lk ZWQgLSBpdCBpcyBiZXR0ZXIgdG8gbWFrZSB0aGUKKyAqICAgICAgIGhhbmRsZSBub25mdW5jdGlv biBpbnN0ZWFkLgorICogICAgICogTkIgdGhhdCByZXN0cmljdF9jYWxsYmFjayBtaWdodCBiZSBj YWxsZWQgYWdhaW4uICBUaGF0IG11c3QKKyAqICAgICAgIHdvcmsgcHJvcGVybHk6IGlmIHRoZSBk b21pZCBpcyB0aGUgc2FtZSwgaXQgaXMgaWRlbXBvdGVudC4KKyAqICAgICAgIElmIHRoZSBkb21p ZCBpcyBkaWZmZXJlbnQuIHRoZW4gZWl0aGVyIHRoZSBoYW5kbGUgbXVzdCBiZQorICogICAgICAg Y29tcGxldGVseSBpbnZhbGlkYXRlZCwgb3IgcmVzdHJpY3RfY2FsbGJhY2sgbXVzdCBmYWlsLikK KyAqCisgKiBUaHJlYWQgc2FmZXR5OgorICogICAgeGVudG9vbGNvcmVfX1tkZV1yZWdpc3Rlcl9h Y3RpdmVfaGFuZGxlIGFyZSB0aHJlYWRzYWZlCisgKiAgICAgIGJ1dCBNVVNUIE5PVCBiZSBjYWxs ZWQgd2l0aGluIHJlc3RyaWN0X2NhbGxiYWNrCisgKgorICogRm9yayBzYWZldHk6CisgKiAgICBM aWJyYXJpZXMgd2hpY2ggdXNlIHRoZXNlIGZ1bmN0aW9ucyBkbyBub3Qgb24gdGhhdCBhY2NvdW50 CisgKiAgICBuZWVkIHRvIHRha2UgYW55IHNwZWNpYWwgY2FyZSBvdmVyIGZvcmtzIG9jY3Vycmlu ZyBpbgorICogICAgb3RoZXIgdGhyZWFkcywgcHJvdmlkZWQgdGhhdCB0aGV5IG9iZXkgdGhlIHJ1 bGVzIGFib3ZlLgorICovCisKK3R5cGVkZWYgc3RydWN0IFhlbnRvb2xjb3JlX19BY3RpdmVfSGFu ZGxlIFhlbnRvb2xjb3JlX19BY3RpdmVfSGFuZGxlOworCit0eXBlZGVmIGludCBYZW50b29sY29y ZV9fUmVzdHJpY3RfQ2FsbGJhY2soWGVudG9vbGNvcmVfX0FjdGl2ZV9IYW5kbGUqLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRvbWlkKTsKKwor c3RydWN0IFhlbnRvb2xjb3JlX19BY3RpdmVfSGFuZGxlIHsKKyAgICBYZW50b29sY29yZV9fUmVz dHJpY3RfQ2FsbGJhY2sgKnJlc3RyaWN0X2NhbGxiYWNrOworICAgIFhFTlRPT0xDT1JFX0xJU1Rf RU5UUlkoWGVudG9vbGNvcmVfX0FjdGl2ZV9IYW5kbGUpIGVudHJ5OworfTsKKwordm9pZCB4ZW50 b29sY29yZV9fcmVnaXN0ZXJfYWN0aXZlX2hhbmRsZShYZW50b29sY29yZV9fQWN0aXZlX0hhbmRs ZSopOwordm9pZCB4ZW50b29sY29yZV9fZGVyZWdpc3Rlcl9hY3RpdmVfaGFuZGxlKFhlbnRvb2xj b3JlX19BY3RpdmVfSGFuZGxlKik7CisKKyNlbmRpZiAvKiBYRU5UT09MQ09SRV9JTlRFUk5BTF9I ICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5 bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRl bnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy90 b29sY29yZS9saWJ4ZW50b29sY29yZS5tYXAgYi90b29scy9saWJzL3Rvb2xjb3JlL2xpYnhlbnRv b2xjb3JlLm1hcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjVkMjUxCi0t LSAvZGV2L251bGwKKysrIGIvdG9vbHMvbGlicy90b29sY29yZS9saWJ4ZW50b29sY29yZS5tYXAK QEAgLTAsMCArMSw3IEBACitWRVJTXzEuMCB7CisJZ2xvYmFsOgorCQl4ZW50b29sY29yZV9yZXN0 cmljdF9hbGw7CisJCXhlbnRvb2xjb3JlX19yZWdpc3Rlcl9hY3RpdmVfaGFuZGxlOworCQl4ZW50 b29sY29yZV9fZGVyZWdpc3Rlcl9hY3RpdmVfaGFuZGxlOworCWxvY2FsOiAqOyAvKiBEbyBub3Qg ZXhwb3NlIGFueXRoaW5nIGJ5IGRlZmF1bHQgKi8KK307CmRpZmYgLS1naXQgYS90b29scy9saWJz L3Rvb2xjb3JlL3hlbnRvb2xjb3JlLnBjLmluIGIvdG9vbHMvbGlicy90b29sY29yZS94ZW50b29s Y29yZS5wYy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NWZmNGUyCi0t LSAvZGV2L251bGwKKysrIGIvdG9vbHMvbGlicy90b29sY29yZS94ZW50b29sY29yZS5wYy5pbgpA QCAtMCwwICsxLDkgQEAKK3ByZWZpeD1AQHByZWZpeEBACitpbmNsdWRlZGlyPUBAaW5jZGlyQEAK K2xpYmRpcj1AQGxpYmRpckBACisKK05hbWU6IFhlbnRvb2xjb3JlCitEZXNjcmlwdGlvbjogQ2Vu dHJhbCBzdXBwb3J0IGZvciBYZW4gSHlwZXJ2aXNvciB1c2VybGFuZCBsaWJyYXJpZXMKK1ZlcnNp b246IEBAdmVyc2lvbkBACitDZmxhZ3M6IC1JJHtpbmNsdWRlZGlyfQorTGliczogQEBsaWJzZmxh Z0BAJHtsaWJkaXJ9IC1seGVudG9vbGNvcmUKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==